7741899284476810924322172524700467277099199469528376870987823237163290536038244118209821215452664578289152274289800907954236774449328372794966758661625330653706826314417346080983257151498732192337185920488105851666424917477149901405595614441638572063836422609661294664922635659886590411445413656281997205476710658315482570048642757398175760417964778882933455603207442444519538003256585895711549876084288172549454341037001257420369898624043933446984471727565670322791405022690576918474640909703226577283197778794503121283480505660100054367683437853486992024552381861068426513345356334150721169552778234004652774674943822229043131677073023674055922665163239105899652899958483046901418240623826893987286103852032279793130775726408212091057949033832672190971251324843708368887159396608327870348079686160852447633790587091243136227601190738358079133410498890351135406495929629927435274682173611505047191088290311518558954684493420796449500422762409697086870461169158019359491287002977649371679392121455845027621246542576734995594025400452516512753096118510582887972320192797947471955719569095217552203937095278410490244133062302636791997110128647748787302461979883578546035713944624405545711588870216535513379449087459065571760051555275742343436978227687739115902898461746496856184796951389477145613844292986561392719677072918770658300676308124665270192128228943278481479993639406460180451051752970106012697430668801462315103204235936052873104430550761259141949239068380160517590042523650312319186982405516994284598703547611557387241098009037617465877508899822149730416736534300553209535726768728589439822202280342771144031381498045160664062347800747571711966339110946871679267961052488192195476330821666703832136413378967059339259852946571004896840832748719798092334647629148618485637068589839328763753624480525996151304523999093826344953786398100314973657875973861404213506141113354632934046547476061567139670610947596545168024342601597774299628105797923779477749547041222393914642771030605592787112850645618938347009035447237608219821266735887789695603731367479449977011367198647049276180494058421229366561081285821151530770825474078009214459394578973049379342852990426835474815982678944773805528214761697662562796154835845364641829769442452545639561386915580235325768335719220478073758223793770917263858693598892377386337545370856985433152245293517108738289873672262570094587593883280091546083498085581244420881964521617817744598514610301287997086407631699062604201081743404939614427852378134859549271316485814953162199787790115892896234091389362681555818024435101631344279748800202300816785101914175077238224575804607939182554607564806017414068479210454731749438755352652810638644137734195757747440984261427857349745518501845387549922009541211890266617517327916250130178774884679865621623497144206576242349776773569373322369866161731722318399176661481401666077186337973989558180424567370439936489862491406601891009919277503277938312476257544412781263594443074642711514800693555258938582983600562197203028932561606432785660348469596243953556418912456247914483521807217176714393466869863224098528061040384486130377335136382234545499812210884893917810275282373890172384270342375848059535795334293479590211630982862906000491791400055680738855645744208838512335875192915644658798336353028101800111010952170479193473421410321139402510505847147291504182191621072805108038311246496228463867164456574149046014245331478072761342939304408814226557187880398735051680768596005538070707574089454543885173944829679791813507949072719157124378542038043246652201944743698613313475487997839914132381888385064440357233486856179400987372709563556050568812342494593113760665734777429753217043138010291283954032336410617921236127139614030748843127474924834265174508906202828085934993609258156519274742565179395151730919345466322073326301127823663819847258519239284095841183377058613821885624911817402906809093754587612839397393841433406649926546100531992573838170909135022716404890778620082476096939063606447473817191585531673060074588128362028052505757419370087737158178864496218482584511772083519714965035544962824163877225860854857331173820602512026998272058220047347523054756168332625035116552436865670770604315731324437749900767212115076717331748945415209822904251838708360284339945800849023712973028343507189148570127325983894385720285527416794199969703427282880709282034483515207102743393872667562927322523820568188903825674260422190544794106244009706398214614566365193189463564250423382645731630862545591331367011883324841835335570867908569939639066838658495403127922936323440234781277030654643505657038331639649140958311848368831141079722541558722406599539523851170095037034816356477934702171767740617451756667613653190606383400108625744463250919183554158811877245581285816208272176102717854972340260745010806639149892974936829292361279214611704415199908712083892353996255935356527995162731678530000117893052165570601275068065190269039787547024015786108103581617117061054706406970219817733199475526155164115113895105411422732560638290220612006585366800114463353610898278753636966676934374237359621410089378737031174067519695042233218561498966814893907315157637821829602433922461969764159360370632613006918092914669469542167327093540159695507457773600433585147119810515098833867250895288842344424301686748790107544052536269061441526820861674973765928199773999464871325487346973003107608546737216078516029547283383801215920849912471345043670338404153663774180377236184474777938086112743251577508828481990427938541388802367942103376088985466403260326204848997595604940519046888320526101616777514609905300910517629180093647516707975191218623476596918398805068980329201958644416922523002221817047240749148669015131476570315566586598048204080017865506217469265569355825568873772092993978053817652066417266050470141692583393704602979139684725679299861935362007463956410071206754300985631290820184451569286884078806625146350645423405206332680021537479942842767440881027038327358021632580257022152306192776641488297310780533942359321553442984816871847991585180984600229537105385477270312207374587001005159369252232257481222211161081219404445870902384192432715207682442804857331225162040434242136994872948239992631884740597989874043612023167721743300497136342180240850599977858107533345037602008885378537194416364350028057757951255323736608591319828004382354435874782813991460394063322474462473941385924727332935133083281908783836530009016498130579427388308113984272364677555207976464440423578224477913423777136894654807822028866482440814708158742849087091143094807086700195455615873458660538453732995858208564509827828191962740639418349000168209882114572013472620905371180535964278622786538177840317613484805657325663933765910396398904928578459625032305828448112711605658666464063931723444113116577908712684002793530931902722942458669633038695830796160565059724479737777290099724671717554433858404838451757869879651060586051148130227762650609616177402011407096887697374665917847427821173002774906805105931147721875126304872527309109487607385522923571169838619593679801368616323286390236751073748670518021711371001173325864965298940108894279976559614449224105977928048390192260491864321005917772968760518883569672441272338899247696453237811659358978864987277267666623237499185082403042817733980169274271022510743445532654125806182943115465055557285823530865680895097229531482411402383331222493738255211300304108531971649194253612030685185267386566267069078355479290937988758350222933517509569711190012987939621163431047586772095743541049552556100656420517140466381312497128612443252267189274384002561974071001406274019538943023348839304753261329795067639448329366331210949516447075961948357144976369679694618829148084617110951806865024804205110679129152102914453094224169463432938695300308000912647886099384413018362176531138185815928011187313836823824555479180559573438926942806032466039193483831188384490075159921185451193826554392819274992418781579413064376364082569647811299491083705673932256178501471400076020209009482862186285225160392828037310054578689587792987523359148332657327043216194406217289431899241721386762471125085407449026013902032472554373716583676170940509909069472580333796259410562925699587470625928165514799349031504124186289711112176549883839130435039718819049467333727132670201463918006947007423927760081023367493316825468877062738978872517845742029533709661091055768054300650557675051975761237473450628858878505270182120275112376434026160778905257279001763884366910820143880522602788957207898879128569512239709019034995394324984507969558049111960106285379105253227206150345648601486469935210933802868530999320851324732769233304700047640846986623138224781749066179194899482295102762200767542113640521343147170165291418477504305565203497262366166107112534267783985801445732065325091925957576193824258152588694838897564585983431676554076117278293374565121165334058516993931168332637141037799006248625463236292831027978439029998897980989235167903871431791624778103163675441657588601879940193301008048923059102650322440958957589719465967135034463458204352400092233243618938529159132412344475437874654731413886116506908435156584551421663941733538178983536447846885548873068844358795424146852763668322479216116642683893985500924758010138852954274107814341857114598452638201729657668378164384487803088859349181983350540036621165276320145125890799103006706306393600775892797000170548552306160482546901760644156149050424250214329197823451585345877173380668224050446339857682941073882806986692227719397973307693800289605957340021627486134630956346128794503250091752988338369208747095542087617168908516111989916742811590148515574625443377142094955392988782148985552425502432621634266576334545955499800080426744182313811155877871375934219500229998270724138506521561290643774901299078714235211538770681661765905225713888573166129172047818194405697189744396990868055621422188956228582565078380392866611962549242972568944030279557263453262054457006644743151412064503455582666856731672953822706388981572152308706524716383734233654723428573892665689124532352273172447797780286963871073552514937369027047193744621569595479417008396449142925370292800925863057610054074271138951988158493773808434951386429303403236999856648408409878379572833732043890877160652468864968884620307642644041554677402017476690165050475643926546300449265374179271919054232602701428331312513443549489973008184868021370743032438123233419658275043437274459862069622137719869699388521856940485285088360863298069656358422036136620524233639847319395251506109149756768342460141578054765306389599338333204847728730205377598780705952809089197096934724297554524796702249597400849688318279366146679612129480504442837552814000673723807885429090438314831622625053160220946340320798547207371081502367418747565194378156049353239666471404001143993490318136261827062621394444891080370439144542870098867059656939626400312686436233134505916338288667707897132906895244009291493410145128502131436512020958598318675203541314566773966324422401177137663468979072866197325767515508482159533868142564428747454841140167299124430486068707808688557161729640045124417004378691119956859689804833877876861074064040975627881267298087913195680149341699114581189738241686635814415017434807664404871688943499698665861412438727001210817991336121894032336178145866824812409322735006481919426278348368713924928612578170783619269973294085686892179765423961594630834663255253436405342163287773868169801231666360507513872059490097373578021178170008337247085383902214217216803198853614342974827994456883084750165607764671781614457105859232693374558253840693109958514060457071213302361408797831134728097568593392967161886156895731958527397445055557347030901361399172793437147236048284938321106689342475938643084045098398924087945071845618871182228336130552429304181248720989065808957146977099539410429995842597426945636568041517880959452451888692419246731745084580915280667509870462793429317362775415193104521678478537522186003254186565209105793872311083632277267245488805742625284691724810910899389966137881440781213652895141208168224594734809392416292773651556983049484105947706292926644928548109692831269221967931010534162085029878634455388613982260738754921036104866011826394129634078023861234616352175341214964436903291260854021967795712905459534305554198834512950184833303704586019298502631315869808212450676361674973786840915478848554529073184536649147146590970085354052538380629909643673474463495130035182633494434987915491614394174482559675660768451149764450490411825167849765964296420827122711087315059128872534899399246850559128098712758464391433724726902173359155969970539160247614940183347172575293113461268893752201449772204198091055172816736742728841578394075640727640088643581446706283655800509657862455878804873696268029110938803079696934138699332574788539015316152988340426799859290586864491485274303955571541235218094153743135737398639114217694371544990893344965330737640610866400502849457132365081293640034042463537065852220590463902900132402134004052914981789661389888961604735585568443627384129861530037773612509515187092490212199979719042277665550947400696207830550157476362248843145257397799204689778609321222098442154186047396601811823884889623991932398354434181975812665319365184657639439598300558151153364228515917370846696909274804689995306161375563231789172294964972929089356616020214967620942078883678606195765141126004427100281638221965513131664582990912651227199191096672133348246027465294796080954900297428416213716926772663689474464703156617853598740433301947173174837324840104183110912340066437923001406449847507859231110390955485183393951230706030818172727658398894450672046587947360335757015222289464306679859221001636870435493486895170852755059879981307195395923662526314191653301657447555346306940234618686488255541210978854335138346808433108229178964611231910407090891322677858009315960549005529169819114445103060112590977387854137924330443664247239062125172723256505786776572873902884360257512224321574461882428376160198324120537854833013287658376035148674802883761332638777170556929164003746974799977608267386566296965942482788284918549764977090328779572453952300958419758477924429878113589218177884525211853114356161464792329893191696231140501718298075765794111339050234697000355871611916121457791769737450240652580232125180831869913144817721663855187247392212489245054287508080850621804027411079250538648188663961772166902762334378589131577750606779936008495495753670740747234568821825961367117977795086594265387735889429853057934021966329489333285384603127495919005069689187344958489483743669759418841615375458218050617024491655996392396284417565591783581382130370077508324873629167003750000076201928808443089767755766704405366421218815703406140154418276988735984290383664193816235727334385739794217650089682405803102770767238952584692606863174260763332923607494755870624054051076576702487957735950973108538540738616836501780436805323161173692414025524645827114157865840136575447260185923325573294997478379340224992250445480027999189960298092194016820540071560091764639467583235431993280106901109726885103874215779170693923377244549734966941993058788078262259048870889058006773397755801355242182352282184261154975149284535480770150180442585474884927317221744895343820696671066721658164967969186615857157047682255719591026980701482997225615239302936303121499693796472151333471089157607854486698134105409575129814537615984321784638747238981515037324955721755646960854304187090897896275810215108855407733381222799186671439183448981716565126346472467501677699963187686887095993978071022096276241118703503787129655608025923782623890098762945886054941896398462789111108710033484400257030120992481183974062480187559635075545890864321112559418511247823596880556879900772043572555647942162425811194774570193931377188441855724041229074778423262950258584285168796639536597297973758001310480386775078803296628146086955359208470183161759078538172877757344938102082833665273825115344014272504032188826608417698293400773406771352459902520475028600171932684707319842081613684465407325210135415708505682157533691992811120038195944169210477037355003886249924413893659792636104384607709984451440482268217143238455932732489794368286958212638655100880891081671397415997730370576618302801892866734337039094360232614722871055167892841719791637917432110202911339929761324833226613181637229995115571621046562569545981700860580467247060201023720189351289137904333094022759160346630709326684514894397395829961568054194403897928415578183153690294549845138938292768046676217246102095289031321863965727287177910342004122061704511528014294107657058069588264770372500244220860849189305866913962234360409012106774328317307264466925504724573116191792195307884989170590066920660385062431826517884885859535806349570177885769258122704616078491080495784635732941707339962659425297259806732709401258166105919488587130913573971266061164822697006589890190240925798009713972239712994776497857443203615102063474670224647410593295074694595174304968639487524733126578453092608582989869212204317569492880840295634372559740347674240937002754787779224494958151411735784934164557647386269331194486549668364988960271921168025500208478896734552707349629403708333570354175435014154552406975451132469435891790329247147664283438071030523690641353404812608414926713121779401288646126426085030585139237972138272387892158828667722923609922251393446616041056498358995149091553328019499218714582155766491942524296731160853058070656930398514921544032714254445264454712436566531788825346008222035511188318930049838987761712188329016666054364941704086401577686491563516118151086497652062651896524791133962165493093737064780478016569034316862820335213750527052099561754658390057991427818201849847567176416949610020564658433661208018965828426570857102241098390572594808178625546473222174787111788998926998042287116163036648122324167981980229901454200005892303801096447838070209418778384030078363085055040513143325123165452017661345110701356592992233202461380582093633061362250400691581449205923052204591694252936460216352311066050582363878593670209912281678185391656241436615352005428929798734508826737707854841955381075539343875195818270531701652523239285462570280297094713951540067835206344416678552601727955782108928150744340357222967100050025167119553990060793927508740878105972855035079100118478926823865434122303890398875649321032003245565107905022384285492392537934098623221764548217190546322775162327191443754755519697894902600718343381026640924686224333600816388955263237923956838597858077780542444421125230359654643151773148942224066097542747246595109043890321782326803035127275206866493473290735047677376808769475850332811264788978030623815350359113998233827070488887800577076241523110776512278570906361280037082337780859814112243531346222331659948294382955170273945729079764142673904397290154500113928401985792537795738234337802483247146573952736009970539074856902525679782113575478386988673573106263607361755491563594028082466287855649041061013323052474291859163182160931176136715628885183990417720560480953374926029594243362406095876503405149183310502228453278728249575882289367029882793517887970843081300651516785409323549168981342919219306080376885823225931358780345847269249357779081490314204475548322920050090719015861487932777656324514082355999056285772093252039710186473835507740808129575610938590335351756096761305514553674264259060444898554264513005256494902420409010294840021939203045229243612412842213752812217123612740628159478890336436296906364343146564375792192763818779244123066720636289610703802064556830400072295092138142806149034066796013579723804455117007164873966977382576237067845235746112732762763041568011312518384612309839011279065462316149757965831413845837326253291785382745587304412306052051949609654495491698000725092740990986689615999920558158930811421498093951518532708267206000733001747655534240017074282318151553265467105949567200043974141575362318819464714026837871413179700163466146605780080002253479163696752147110797836979140661873102236659981391852559615186379255224729186801028419186629470067616457712003379755663634789703076675301592238436240457281049539875672809511035419972285990731424327425239207571751344734395495826443089363163968250434457567408371240781330234254677234269644577793962767511736162639782714790324440005402152108442955703539500678185063595363751941208938531933219463168581497962574522018761655430368678573216843420841812726957294859893906335766407548915761650111702692762845896520285669722590756346203666902419733195824433883728785259445239583384862515696871136515157448949131617298237679340044702464097427924508109898979263489085772858708716360840798518632567391298436735354848593279692258495362596542473940569716704008719784157875392435695117532413786949067224971115029586723650330061232362921258834571911411271817463134248340273477245044576719677938293291239249915897587326227101340529354850013942742787786816014466967058441403018807415577579194329408170074646908316039837979409089464813576685736016029971681213853195125449053855796612152288151604193141710259986133857614726886859909163261920319440589281315509138967767063794903979121738602812179702277886786973638870160609723914967288573305035968303306912951522967038242587282971613316394715211932361484108744440019523103129040506522738031441908712381274534665880709566724016155487203289714991046736707385887490530086005576386545066195532719993420321937730506079758497943593385774799998490481528631145591363876250789496708001233368610890925906861123831909418802043516446024312736100368790409303502980987062481702550192660803991078439826758803100845062377665533999933261141421757870906150500984462680756214615233097401352850677405154099100233828603917148616805842005072215154189783222467178947223362433004141985440623986634482237266363735828372573161784091183644999416085786625683338339608526108295694262893276390204627322649745821055612924138995497426090258290417561482582734998555762042729839305983426827663453426719327207718124717426249951454438173034699173267148904382733259772360681616932887907829276434692606499564224620941839728042007024757599134475536112397036323524432429268679761196926193403605120403220070193547434824628814798316706165138477198631889900133966714065192747262885051162732619941217649570116037555914396146707890437094273680168325239162131813440551372789245190435300768036866616058432690155897377338743536070357559181198415324233667058700071392894188149884697082830607388031542241376378958570788629637376215955321671206898940899453434263065537310507472505946233222228891049788441356818366232320814247478416032600839354749936744350437401518377199303039924122807745827082477345458194407670637710491145953191694863230957321820534961736046647731459435078160306790042680505037835635972653764659787640858395358324337356384468113620114499005330803126185759051536937576192935637650641216315341621325607813306600675443927771410391787290909724402130336126467456739041089706862184147112900153835890397010398060628266324310656202314974386268749365838485556027778800219122644098502176445960313578633908281423963308447352491651953229322037093644159178480469593831465813104241968303162310402208287651744253227791276181590689484624268747966931062927009345333213132744732799745039934194089303385525010580425928838227770011569872834444650694908068028847615832942107779503207772928812523517588134598451651429442048814762293062129245978550922566387103087223432991089224002173849694046830396531567859620711491115101682093299351391951635297396326944517448824497399400123850824813503596517663315286352182986246613840503588627808300905748979438569401228721794809087382077649850058001940384476470915546038886632776599425401969250975360820077799184612121586286783092015507445602536543775927407732182424673423659340626536493655863569592970020970342495752526856606655023495264468283786799714719833021849952365700302687967408595659687150028835270403560610475270789217667336831356992732422177333124176445987441200335599782229971956683183660682724729832580501293065894744401609938116259283132325340360829964098582720260840517402181558441194786384229183666721712299361101793950269232295068475147014227550988467865276631248886364067083731665698188027129819835899277780660377841738307293964257689312409430549056282663851545994855564877850643271981030830460609271568738077610066842413265107735853138559622235873827241783015789924929829456310575046757102993974642357479259134453782032191614820564910074087814156509024833058909800740596880223672736798192111873548530479694175007831413343397133416522086453039484241005955594984321730640450132131379488199680094321788938906621794355314594812742869566532294197807429145189274139608818130641924963263489366499462021913494083580041379184814327238275677745394719967782349733045706767893037791304547107610928131980510282273772825591184019418393003599073739047622772365458100672219885412953255071193994649002983613817190093249562781545167006877794794319306723457810969412803678321622270206987949955598700737891607594409792678348275687490039737987499407781092348514857333567606647105131364550707151721297024590308160742830635039023743033133166301728155411052978093734885183023561126036577387724385591542916169526220737001395890664479652758512488142692102271682629422161318156348733091939084509879543231745301732921122054511293567066839903106411602388282617381823798051561607849437225847308065481399253493289366628835532843427925699195610132027556067264096063894147015486984358209748634829053152718178318516390973033453887528154612127665933670566678266144909492595488638533272824904022121004543613454383419290487324460302020301346337021873712863748801710708399153234555029400697323121669927716829998017562185166254959154831704616991999286844606681072310940856555155249048320529158225362457087269576253819048147811823570931188442364968728191393452000263603037923140547851233648705749411837569268631667325888694997891409822897116320142515764383560774935448715270564819521393861312050120839358138479135520220663542552023852472924614490353174635688136805688393616734231314241954736260468079558640098594307516180490771230130039831410676983075856430863208511816398936308016619138467818469069170807332187481253513901323134688388594419216127727116490353217521885806513041957662204356586483471153852104229837821733763738073265685413245671814547810831512054588847622961860440475309330432738171873669417434015611885364856970304986387762458920741199801981020673876184831245122747649174815349408321198081569934873102352214444365262247013766949412269384276887674545497710938397354788225193793587060035556541271035308038418555413262506719640650163402791363864115442561284165176976653031458447202791015690112705531108658056032761744742927003063604475518951072195018398133708840611938561302747938654441494332186347424510601518298859678223827811005975955072761507552236007740123953390296277461935259607948350987827184311678807713830415755680101271679712248423412625496097381043509493653604922285434986822644646016278594180960377723663558116428627968873231343428038412235817100533236743626628494869182499628241665234157203163192033541524279457214637688245690861930642324020485898065762495373101128938037186899940286864586116312541614263237348094839868609285650201612485835757314294723691190283290891780683977576425803147607592559666971997874769799864524577203801237719790874468225018010490143661269618733398664535592045269890733098833761857813789143013052782872455947114517386808506451118100436271837153184577759262055967434141656254592184606501374885034971211318978339875638880857583115440738134993118814702134714953453276510782777551209098371223329720988337877949006731914422394500419943549875246121533062349037407023617200267664133093339208976040224750139391255979884555464639829726027093348877496104919162477357455426972647409516102552239148484513789804052491872761929024404127482557802390029657276400386638901295257251802755240825004932514982100508405031457418659322798093981307425784414633332481693565877735569521346128760703459147293357967789840092861032176075642473195926029821589149368307277480803474500230610781369960877555385534002061749273588793644815699058909695912009843809385353979891479942429466197070106604671913565362588193146348141461531995595498546944462386465654381517404139114504809874006059959792143662411359746858155422890334110206229360083262228364982242101467064456053270228798051215502529154843506312526045546333583330023951638769594177960034232382474975673710122723959013630835153401821559937471289707830744477662508152161938976276015496946207536711106313917933264837620030462929576935561734368733406292391956751510603081880033200984973705746442857352773164705874912323838000197272674388537824363818606137880826836760783231993137742701074522778548050632340599919163598519989283270742802151100471580906236996758699186049147434738634172792042878035983450807379530294147014833336680375198666370339605026126681666430437758084104897974738948946558944510622919690413942700480896969876683413394809358208731687949919074553503974617767722193305381272894766809220438999895345295910887094797453652249593509274717916994294592120895393894906323298840180503627591734447866707569431588119545500100269050060507362806331214676522616934855796814095180627356610083878269350156490790482414775179367397795447590214724905598812352471922464959464794026221855902770285783489643559664132607926972264881913053411940490075413675047380086012513642635454295542186849370431873763935708199303992864475983543137602827262177885223306579471868203894731252444644188343273379508986302520526249863665103365024032606183027690155948110578156701709123569311116795331345661346276470557792578065454264053929284816308356315448727604473143473707501529160882781841454117175869050166286072563307695360494083876047525217534421255402965012085883788858731013618997101388746408225505102793470869575190618913888424730493639760457138949084024312908246484023754192955773660188935049441572473974913828003357673687518010762876250972017019702533861185487806810564658698199899176581944703911001231303755884143260732683209366546412804135993823935365756770370219076854968246152476951386171204128450196879884221941205542575560726454227908914449464606159074501708049615092993534931751016209626675358429853659677465111927929016232126905758245091122224754930865032020031165469497931195688899019836323697056778638250531892690487483662722012520566373693918101055258096937479618933220244600852167054159996454269150096415822644272435306359122758703184340743821942284638551520069702271341089021518815741454416374592354372833384621932002645525139486487670423099776812439986203316482850227994221936073784439693882834811347277856365938102472081262181491566214339998618401912377963590405096501854751004619350234774633062273401801400987096463013669290089737429661561050249898817651425880925829272343040777418028564568743403428628397434932480457490961413413312970034180039557021574515244217371353581639131837602037593453811580925256929915277676906225629004230556899853567964213702907079344252339540272922836674158367014327051047251935759558622895717907506132417195558127817335991635662429410313252913754123970680140549367819192627481860081045693558159071540234890670980916594928791192197486918858728484871441253469130070844881759441012109966304054243561843154618398629359315785494719989938053724207669207377531990352412767448839261856034234205967712515233153105042725128826563341700753973829531702953518480747010792959903544148646209055131896605244602670239954281062587384130594972055465698522755475315742861705714193519791280084008304281163178194623405411210498707151757609166257552711968939599441256315691377634557496472508718198786859978536007976759341878550517809144585176184870528859873360451506752246697225696985456089870759998035132838917439184096045582511630935970353622933242124617104640147512342717024319632179330576592123960684566552412824262405783929544873793984440242917439130026770447889201923333270314285777912604759275251420490472630807891554721852338377898702643173823866296215667799590909893288186769987397659973261795631679510717144351021210104251219656743205006222866993927630483664636071070738480925609382916033783152324877227650779394116792111900836098117711060221909981402858481290369708839638635205127333435050824132631714060063871316456279616737015566850190100940947634985329942425156574046620361054280510902858100111984648076610905889937145782694109351322176952583062495771124651932612008348639839291314978547060541811235102348669469955926889360320775228435955418987080514557669723317172724847283071717145856107962199503291115939137815991424258420335475061110540342917676973648342519393915657613733629180787908340932638556113096326409936393839283606934053559112796101779196164535908506591931371099632164983147139324033532476678011644892790104580842043660059413349991881968350369941978664637699574583662681333773115515449199972164217002763731226515043747970908345377591677178945508599314548748807908857450917282317775137474325168312506802242745137363552291254248900283311032867674186597998398726257538449740521997041796930083464536003817410779279587580668861731170685181474984159584028388763498772537402870639621006273508958769073271338143895856114659662715450856453799434430774003708834430905038844590320286386888679398556336598817827093431451747101833543478681765895589537405532339214816504153646998014871574832894214671384614797219127945090257088753442427622484845231237448791076454633827707152588605982169369337914562015212994745425887990839023347290223912813689510527091994335825864682292186300035681845396418615427731470672945512473803708671263715829116897929489289067912294966695660824548733510287307032798019415595174691666492275381849636407976648371794570671359296059624655426219190355660502231205949485302515249251007284031160971559444086815365049675621478386233788782976424469000622097844258988988953396179295584473041204731643888254274958328095733158840570475154624514643807631819192328776015974118874525148002017842371389200459156332313451435468337977158274106261178305730105412072575022622746343940812301891203929488207663420712992710247325760272693149290631994986074697120545052002499102621407231428322498300998822859360042925107586252120512289347324189647363809167402649896197248484712052684429785306896562982731496332401132093579982579991388873612068518920763950508616188622104844265005223725575760258353893531473651673417895281042997719736381071120174533220924718548369701044185944673478389930698776065120441655038797507196672524287386666399450400318852234050165204771421111439201136542609694341643898769615433841447950742178962166765024935109918611739771417450717493187906602647701880429840405073937525041222043141522663636745302600369430151545309672522382974638120223919761244885015485341184869902957615499429722786520941421699002856662365440772560081011532520608225273423825184788112195203697871187545218779724725847650246407890188062270549769084016976357360618895931641198409567343177255646406963319272885790008762754666993278251125480077042626811504834164751225914698157459178265505566645560839515496605645780932282488092955323801833290111634091817331590749021500371585231126084531749146934990200820848617009544181283158988453705986445077809718195982228269742222585806187799453944876605808888457341420610098729102127720489734065730545062120557771050744559045197825015133435860874710553441134160048783336628235220819909131368667606358156236859648679864268271536088310110297655446617032907418575528238387530265010060961855189412877637427705211151117534588193749896473266194983627693526013969881277985570450058962184709225461343674812455731451917033005762409723531861893647233054670450072477763654294752456236575550717038409455878354737373978515370444563962217209096284100305979862054538944028207351937988348792566255933569267133838996805919877830419948631009331380458487760829621881218602372712546830030468078050317353900019566150746566846306438665817298820038750661497061652706801857458197623964119127804801089571567709535744094942252768313688027771359393218772581397925598893657074323938869990604889941037862588545186309789080304329965237007422150969426574886637788288549911310185649360007606816961258616823935184347201743032003304883041425535199538097581854758156120562041209256113490697768555177323666052597634613888321918214035169248638428180575017258015919995200177305031326009398381152419908638384235666991997868942242582404504558123083186422747944341076525073247184534367706211521553356929884955716543372560864483384801733281951505203820497805888794606852949076830927441172689933677969323742724535747393610477942805034165304062560201178312010941553164363576457994251084840491329125545410805426903708074578279641978701071963202404408138674782250841122566607032397986606388679270139187921933122841961521394662141271231559702625583578196340085792598788193062873035904176467435796401109693482057713487275434134881740209014265517620213024966398993807899073009915641114249723825605548585389751775935097312843130611092905828478587856613097962874933169321864445956467108957729385328423398093360809844441530172145556042368041955036721689225246269246451987074911404867522710399513312219728218014306573528594241565939129193481992236991240282159733190481443342222213411801956774571014081892756611792364482085980169560435356149176380940564507711697269933721469037164124476169472949681347260526452799241305504725732932188866328031110090550278017957988533650195413066139627714877253909999352409764485597245026070423046479196284238441704270947670363783266853038588222498122604039585566247942735378116050630777457417308188413870532655276997916401926506167562086066463326014945769643762913349569423013898322446505822957951102074906545864297862375277409784808499816410446568210009816246899300391130746159240671007205026278106622945892637318966520329641395956887905979347763106441689639144024285262215770891006644239437661082916056124001873458366760778975738513943475913906714515663132451240975590418127444565990187577779922389420811752442284687248874559181893568853244451955162243313556792913235395874721288008346721427105822642084821501564442370349539241438844285402520010893703951354641531512132344819571628330737310832920736728354270917195436768902889207500676240523916962862629162561288149914540858118932915075265979735846486781733012393770612559603032112034531479937517640038437814025020663287799907015445196817225796721621770112534707281416784124724490436611283606956963842755231081039436559230020149058727626923477085990535186364824640095382757599217078008988664076791969158493344635514681331907662497303553736417348947974638303963488949522797284346979180651721455674018442841663752826883733328090107888353238280422717949853837015363261190069427604929635054313048449908892335508829220915713901744480486242441563046945340804952977883146462294322305733627306783371592912618883510367782715435642858195923967631699387145485469645116751151150173546511039564626290864754218058729097645529327271549141931486659240938594595254242624828058299138724669817107976050943383664397796297477972796885090384042915507331348911281656502382195113757669552236803271211433115916856570679954876916709063988049539023991885130151961401583297286566867062950042037209762311656324970286705406651406242128218337310728650565502179863509430747390899880449669405774291561556346921618276033615916410984275281097777366193079193557317843293033672541700777031390346372665958072788975660745281378792647230973409964663439155041662028607577285780613332290267893841566596226217971475812059734375411345407937728931195779505218561128774859871581847276736972397049699209414667524322337930011534863777141785232066724342385208910065440347755361188641168915209569393874191773924343852583899596704536810540082634465344207534328189183337740378723392131667789105087093553790303558366714771307694166896837921322697656667481414494428854017168014222204986948135810068625099643696880427786593652349420013308978752739591680032413170320645674280785698721289782921854836936620358976204024796352792936398743139426108418779524891453082987938040206134557682199847101741959193293448281675634065315878651359283668315112962995421417026937311568153492920867843282662178300042707132208109299793796294349228030902127155643559802911266993535263259083969061038748193732216774656877348983917760314513200306695403163206691110735059243049279121133157823822408496045080919245644520357761373665404268064638252269246578679469137007968213783203337744412491012220934727272854240230894417223999149059807793122430961184015143674487726646187955885332863602085756877301729110164804728929439243214349804427099863958730702209211889379779951429071437442018963151009080179288512516302709905602222759750096941702925058438873928561643557229592773782319082271125478243482883527928491620157781761295407520040427646327937727327742089029718955608633858561265868600528749721442397830343567961206903427224192977896267700482569541492205867081208079086951947925287473870691115209226552286457829638445316468544956122184471781753909099248844090979029622522785628649181590084412035345964767395655310303817945350537279088920456052407393640029304485243184944054533620250459923881782815232286816687457665220456505234790429375562857196864542423300025899532351607491236250947301676428903737145502393122051829905507745105566723683699109616652724646857129915795532317435530468237810707665900386225532734173881084388136237724351662046108917251822236453718427402489917694993729607353073073916766166361968621677763513392968937868306779737031794518704559328223608629102137759302447184061581186356648516935954275502289171101616644145593753130783652767546348803953412985954007590783719613128593740151591996837325878358390871222609079995719126701651679951840006987559567637225270944326061929171324726405230125409992354875207983464608670400904544912589528569562909359996845459149990931969473337464843384213071577179451241369486415592375568162318961204621855121386432578056183076460656276864524220347951298612536412541010011023865283916810725105725649702656779179835077725048919518577321028966323857983395422760579172873364152163499741109539557597355030244019740849852987556494412306033045618818292811842874980007391502403097455732507070623879183384762173164513983544557158698065281029061160474579034824326454681140522406728026526930427179738078460776047474147536820091491808472879168052209721681304684638431978202394449042898315256640831762716727594859965883449551640010564441713808873769120983341699281862514184546652891840509687424899413419143424130806605907584634570173994480552882384509007174284521654099472876363201087965948425416046694560338836489602058567645935564403438242778410602426291177392269091801421917792983803506638385459952119989439542424820469872703709403310403588969802315150044060989316292555738028001134713535173241399781214061053963346439292680866648830309130220068935177144029209980568272672674774532269622751575836478735772692962040126785660017414643475796664869944292594403511104671254987673738773768742751838325613731504026074239458467445081383678319474842990269451697298676918240267408033115196889359978786892628792454022743165383090147859438941344911246115344837481524125513945083042058790233324212361366594833862156191218515633149460654466270697954435536707166620284895813785378155685138085922417751586123119208427378985978161596719417810833035959148657980460696483442621325270075484520188555221042334903705800676356339124530676840798904259056435220853917051009768594320430119030133833954868001107476518901134354660629301116647441844093184523897972398331953220649002626660066155214657329316942124909178733165069693042029456148224929576520810819738916636522148934215963871255237559837088689724365961280652189355269492231056540364993133186985946935314275613284949942658747594059438794003732038770862216465162905130826073704118511809922194398615003150144942355307779450528344937723501896976082615642065488004032160484266503971945508706898924014256033469524728221704157067073740402521522123338303469545865971657991430542239204501940236417542483123632939589126863441788199607245568076013887325845345126807543450331631033867798895688063053681636483836786800359910682920136788736769029356823102667638532551580582526129782472564676911089797788049602208404894250627468505022780586301030033023943939944807811216817431064348497449417792470086728463804010498957649501971718842036659244782559765403928485793869458830723937747572770723717124415259199152042265119617784041407492857983387763788545521358291527302348116502880060351955500694382228637460986669035783393773264527165203848229347560402414693006815035633838630908994805733763337273364855250135599018104919393371104397781367504205949968031690441820345757957457303881206786234157936981733814924943037479133715919410115489257055515595166659228224711759375699986832698560485530202097012430204765813635300684892637164939865388347048278096976708081932612899798683009687161462668054663370679813519265662301351634093763818832786484974842618702816291560929326834790408668113997399602797004699830215255350133962961868822543802312150781435675038568915404029155697144268919276464624588481685462114801325503993176457188205008332217685864678044136811022323265032435481727505290608214656321700945246502742208476300661211581374467322751472955665615003489926305677287452603084168358049055410462161835838562735862084278066401257498147381772131432865372229686534125299835975286827041159217955937026846710084860976391368409099152784705567278713109581469515679743533697974730610629903278309129571015574395068255571346714285690514348529622223988023564824688330919290810394002237451593715771679302457519053274875485148567518794107307289003681949786769337236689971218983794455191442573481929183064661259963239658043877093823602149077282748147929878091035195557066533097190877371396732202242493688471495935749590325941685421365501115624085803391024663717913518136950858507436696226923319222287583507642566295011550676335293868642555805545815121677155329504478232478852998172684279977777980229023995803549245541279820759782998867954630608171554199505322198681511738925047316587905025182280786994449228511788589712969248864971551793222608551286606615282489050444827804796512251894346184349014838552229956498999000480353524547097199808076249960827644810098436949197437590260226304620185444248382886016579572611816860847574753512819305576136243428035002477159184323455932872933461147324894157662137512640885476758162915925221599555660560808113830853114205620390342463755894752388321212433441373171300399621342911127657343611314766667773285409782638766300970436023647309225630820077922695620861912401273570708881519526252919930399054767665941714841549836427985134605934780312176964258827817161926474598733991353820194968623038060748204705068103343561245600898140414755248323393837671998321353784335699548775289699576015407699720973764922924851999806060011258689135199095700752776402688337566697789315308102711634665589959909028610925570120445152745376049576135889273836785096246487258926024904345279255805195440770942599996829980234678547126523849517368235266774299096691577238889944813805220611052366792924967422561900844952758907697873883255698795432440956598313156566399089261133434324897317330608926383027246800825218873064734774153753924135633821982878600123801361129235479626138800781418841737809125823464411308952313837157143316010556702620514396721946260367042830306991960493619055022723809448126192178252944250327446828731912346877615037669663747340603255610147005005046133909920888997218662161455576125309387868141447658461075867001854252273065338246755376848928065275962905317088443483542471725240717941691407267283598370790242059348452720668096557382533582458486712103707094130093001751480773521535627701905531650600281940631433436416611238616917098774721740887529678266098602661136490895962508365897239927254001609548082349688126577508658100831361886630203359831528281676777149897127118555171355219039031563870120946805341200898373459077938163596211440203086348469858054981540465075916133804157928779097506945147311373928985919475854510143609132697313603712387421829482663071815579779693403843601399611264791918418207574880243392135989172987651755332193424788287389972005174583965303352028334779923908223876095933791978638996417932468754583740401613963817922891125849039274628923538937868437629098054344493845958739297630805194004196257842617469770449833879101059159019332445613427719425357497728049414341316788942823205797580985686221923078163118662109612144499881182665386696114329613489074637738610439004410856839089138654293999725873146115517607677918345907211794012785360235186560017592131839888178052860751069513557646488807630165262242232191046656840648555374522439091065606248616550866920761594167802883697956364244379508133982231795522085872386918938574760595253216188196349170341677675538702215780354776675949223646912271067261549815071263826493862642371036056590064512455878253083566908547064012917821911307408886505921993786084268721378640071873691993813719025939584890104878796465569828814685715734652939477184057494123587505865906713184894028724536900211936631198921680714409482421006137736161201230296937978931444345288509253224353841458611747292676570365309086014717740980373938393481252597364236668881168611062996446410431865651165957406144063063094124486228808848711274897151780515995299034482055732051783112536465693278306944415197689598545290222052797146804719115102415642644692159481890824959831057294989496475693846045285118471017799256576625571703622821974111577150331761949804721990569206746538162280079885019562151857113790204147511018498337627285061675250327322369583243427162912740129185578942398104425863535549876272990407110270471916694362056977675837942196657365982389908303349189202780216165361301401515051837728627279001223819599829411764354260232655900459066763578251036956460719863562590054020307208840095820869098725092045218268006003064826455950918964433843309277425255356481825838360180697015535373584457001683153983423957618646219073705674431154869836861240680380065334655755299859415642589222504038251132733381058539315098545253682167690397875884872175643201889856898279554134943707226969390958602628193037543410114630774576392590808313062978202877700943731942206602454105206143537899915659769153024155442224883866852122378784772627641478381192653690358293910387241019313672217088001142172853710037613175859827685235639501761014334522566833491968610652503118843066240002356755260773868185243032028145635468307019393191630618291363162835560834803302757504573378622231645578457838481468033493598319760173319286958429552147316458239195934915643906488779685012685878414282576983468249116281467070999965385091483563943906277725002891112254335227435721307435977818986459545033264565110540859703602057940342740703846674064313228494476346677786057728851751975579196030866474929879524603060371130442125355106089269426583751208830405619298755372218359476686335921483210094303084136608942697226609202412103210612660815116025289581420588246708918176363318088908919163351123998947234357663484489480255074372873541962339334240216458790472268042403647613601666931572402242829559241000830707009434899850469313447529768125485031955738396258345581529010763136081889737572905330759959867039952296468551062713848980512671222891449357668827385464390496504014138283024731009436619303596818987488798693005054043322755190188552153515195964338598983815982309475250561162673727560725634149170314931277564187704167171639280333700121631666044810784380606672975326920223243612052075571732909231155333663697570170298360845347917953428937244459668037743792452600684798942506850992716561356318618924407258257641189839278107774524836832817812167023291106057446415861013548655626769819529575733710215591018147795258846487927765099780040019727676625776197379911940922659965477820833850012261905448354249258208374312168054588288638361293236154779174809752860460502830964318285710664071963701880997477689034388017947135179329803536491053421806400008636573028874806631617070269507721315492467144199920443099095774016731917908071249747744918025700393560753393644328207223416151175512805433690831911397887469243845494264775427939456449243049713872385233837823697444706629805542036830666095646468698834149517146513163044192891486167500382571947268032316831279684869214850207094238658259637489378074228310647478026929722682610212395720132766591145652531924592193913471635463042512969659761105674361981518611955808620604319628699931390554586654444909687688394319939292309262415015645003985422934773857838938283587227590834009040582199350029773093659464390698337755283381484157213651067605884602248316763847871438583913591171291019132271286198990596872920993377270333514089913828373115491514221207361705974433319131233437126373528069006903437276572550065198772950370787713534277457338931304087518956572662661066012531945931833632998545172324100370025647433907425691715233468702566559460218799378643997608489296795070928258155327063904274072020059376415407770267983387661757165068083460536748354195064894128254732570090549331517848781388076181471385379289196366453287206092309715748282750737841210428230483260785104874972712176965146155075750619013237207767445029029624691477798319175978243147100154240209641330266680717113988039184450497476121427817196243221536341275558649744394197988504308664577848048009714771065629163904447896667991261520222376687632558679596555191788397149268484800528562004448147316461825029724029946796712306330013798127779834919333070595829181057066399357699694926447366388702362871445199818128951043081675505781029779732622728281325776299887218303059779044949654357347234709045990551734776983816476373586030921619453997623142939508110451993031817052738770986782540841096545292749488065250554234509497403619009715469961324196614343608126423853814333026552348742602697068979058239922223968641000889785198899084660114244447580048854620207566526230635170282580741954645885048642624269008460895508704954236803845322323020251518354738527147547617372294095434606872265319046173267486458574916165703931360649388307779528640299509536517073868089648214616909084649836343091009982166244650647664483009152127852945573730237616430891394100018773960424792857344879823012651776167770344213421621849807325098969147938021796971610190723030155321378515082698748636805093823435486808475427782397061684770136331703236591791970560675080346334605792966012765708618727574341186343085978298850163735858132568789931979701143255845902934479248784246436687281034236529736107424205112322011984364873423214405993243187120056848864085043137331976827753303075423995445602583744514290410859014592477853642300019206223791831941155525255327577865217528758362821415999307429317344289683965734737076794735764022583154754417646128167432221020315632746778656130660767541228153987385718455704786298372310820293566851687254176821861266181185255723757584865713954312228353849493683182717807091171667747074622677110023648239744457200521670002749154204617314666573750156253499274311837368505717670921725987039554357059894897463449293633052955486369612806746463292691095886569770648180281788308921180076552891383575848266277041997078453984735246573456803390372659931942817759476609018098587862349636467647992786537659207133708768540603503984718823038910946823382716835341530175380016856196059667617128991116290476722672828537246538162306083070937314975949494542141167364120688712574478007773155049853598570164809434776803723963968267690724743344721927232592204505915838277595752045281979151972017569631086447630466294298547549270327071418169494912778141715584984586879323182980078689129783112291932841521066600045376318244280073000771833932199679848675343176729854971847021570511421260507195256215801779066094686412566807357170538901103293344081047642488042189984371989147722667014235684102532084478996166321380181338155650256202000727376199222505971878729773670130524653159045936765522512076239827997028257858310253862028113211158719857806556460321797405578201537935425500912792887081378029917631955836470833639585820289524422649768298709572942971961738870546150157663402945935073608942767722628841025597367445760035331402712848121164736067048560286600682169911305823857830177447171372559611001901830019124090394142694260366129832383621722265107372219954111144887506014615708980845888517059539309105693768137577489915874984251983260303581761855322898833983824264709164751463585391922234236185292480126087497498178660237149700631948648901122072675050260176817694808604798643857047946045212393968293320230402218408628150199327395488763443102735989052286296464777676223827610837715713822497175929235362356831682464803941141922326832647563234429245959381954308417513013778743844276945461933845818852237874946217712912536762495641877661333349535894146138100806461980202342549300377041024864557392844742275851224763365013916834141776987874408577883709115892915856391500765297122122380063477665709297105229468217145243150925948613625081613694364151844539789539351207615263210668557797006635910421144290243461627544380613802191688721250133815381669140487982323351700152689990552585210433469076157724055415041587214693144024134269942526346554589627102342595989644782668731443163873187169133845031485140765739079173200701808581297782058305868324741435045624613538776633902159770224747402492791120595029709274736780859195245502460971980482895505299656405789715051824630062309090987062675370318682823472704011495734325660421723325471948388011753712447072039439361462341438595232075991412789406238343775326869366002922220227637497384298231175432422851667644125327097130045796001557823605386487312715619195382649053576672391346487845536978139705076158467549121943796514997558171622004823765233873010461445274903614312335993256127690876662910089665867659628186710984530914238127017099984745827960993117726947773893485602318459027513535562059973149814968380532485885691297951192409560137876249044625348506720377834810376896049581866011027686480838022292854269584195115702264776362854847029642668718005471635705790370327417721119412112816765835941509405284109501742153160317204525943074541515502041375950075010893879925199989309323292638341972917693998441844941170964877973867573855417983801414676502588866569286813327714876130026628435895986853446219541354948348012765900380993143423452814352764144484069179297349793222180194170975479103862875869229401882518248022477883803323950151570730927745326880156971334073365421676984951354674081021025680649547808340018836426179441720119801425387026067271261867849573265435918883451389287615585423508096435131293814920125212080592308275058191547744783554631280016955688780802674422691677554773063242345649940223551234940177068793763500544635235858011030076517919565887525116851192005593225709460920330230656102946690766726770059672521386390175901396969661095657875921514536932210755251643245239745595467015909969795928033748894652642186720989389239751521114653828451563647424378381748973495958649032349383387900411320279789711211650716622826906417671943993867898293552122992203213427181994516880748076880047802589412139546605171892417730663881234958553469054929262277758556939152637459962861666471086164049491187207298480235037680407326242317928107043055409929847949616583332093769890315832718472184449760904559242944219498761629098427261836226340634497274492567028740520794764763395916129573800261390252704989593335555560628651829484509756942804310749737960136220497975385438519185407997735728583076257019168959526398281957959675023638943548544109969225698812729483099488449877105564072666654509462745707753035413915365861945742463743502980017661603666454146770757427607309353817497047781044701015171648224917525399704955588921268729502678319852430870102003627203310787025009998668734759059614535978432993491589694301902595478681060740409625717325552501378506686693209683146466658129355864447444601287289210376860929216079186223516257076864789408615752243532209856702967851590595219429769813849672780732633771982903464262755253270415399926540567857285608765970834982515281732906020830042829768633665079595488580370355633933019645565864039085682936165872761107671456031767744978743044330184425737178558997324663838810693567970119093717779715590632230776183956233791675081442730523704133206501506176727204444273164995981064524612938830633843719721996857073419684141809845495212539390735238665797259125558777384198884775316101699355798682871004080815386959552095416517461825575476443517409253566462932713570013007034954591159222711368210526132630287675909028089710363837367838375740382215866389011739084183850178573257434377288394963301918729114442101427259374996190027777213744465937011619584016707710375058856199300826349138299179145331121997744474891575982170719884386440604880043614188961869331760189066804210908672218935028781395078567610222393586134360185604808118223993798253205712247260257246420871983310640953720584229679304766791830628124175586856267222119451572449600168284897708957179525006377536823159438754340358970116812803771582804204845955655630857033479955419318030356473592285778344639462606763603618780856852899221021744055764303661963147165033834433639830291266522559613216899005942118172564435360145194578631722674246613192178240551642834155699086497540566639638742615397422946617304552373854189593943272280318408394236019423363876905388490523762397363654471438737088320782103725011994719046502184113415833182053881366839897579226921951407238497990464892911521805059312922139940231671177275272857897354981227582465929315249952028796360306245470381685653511241683846905097440255113723201600983884669507890876189675031602665920879238949355425142182156776423158984018583423636654383651834702627139869007162019641754641327679244871254088980681768738998337103950032730460370966899395880307077943765429483270771212936677040569648780264328818616652026176513076073183882077475381907023167098694501535549593312850473059529191657322806931201626863432480386539835144841423041188090883614247539345352156456455044739847258622351619927792601048183372276860208075211944449377424088656677921357431519383922612934532378328119223174718982718833214655116830105997998271999130658497534498001551083507792349167297342490329005879973383808439031815151914489630897302147094816604279749810677827032665941526991164501648083380587161356233157421983126293454958119955862978318800725467522983703584974391002371499805424181971143032616198858070869442266047133269441254761168951143659469606392517793983251041905807234605197898470157957073392854711217095967859622519772559087818933592663732578277454971811848714200979342196738747896290040558341530578891637274143295886616258504536673535199472934790700323323827169160756971421188855397130796115094300394545972866951654698039105182333983810922612218665411760592561538084500645110988522100006128628341250786187892718906097573459621243389387643495626006695546324030101383203377258817201944991581150924613712614595122240860819321356023511150553208477129312552002668442533186423320627490296440332270612325750860667071812706356412794797346281466544581603750937136359949521277498161328106793436641091509271038846045381319711823160378597756153364504900998785267290673207813532427604071176758034508283016110617241132621766715363520559887698683713467414741514113854203444075023517316362616749505810630658190094042420069217189801653936045245955359100087819025033132428193464178975117565646483184956061552578652125590990701292673083406164208060504986991738340548655337580776983472337728600214508027158801930316604638072473698122223991255054511257784061356301367909516658703586536124039735765064710813144999394122804848354837184889886794541695648697972232442681807676230932564366087418513732046131929946373264977576845183416294393789703016130570389479142079331304302468117023225893549518826275112801637590160386687091858034343454668171118343149155950568260663333562687117870961134417687430326927595860221983706222215352150891579107090142266092545418006279229025457309513868002103037186206478764411770233226856741229490491242180539006394127280284005116284481141995259455986239137703941228886809022871050875004515749230760555846444533098253603192993039593794445685941145620317098054182366203002554179719188665910886507690955188802739842416674671561246143982951067961281637823844014319681256359417392550424192429125540771224407757782744044137814068486299573025610261515690101701677219952266817691042137583816067547099910901812470734278537144208829148573653516053778539357284271896710691248196285581116248829062799170568336474581718162652714294589183313610287750865056840606447064341302205295568447941646507218418465771494315168123626094954531927588697473577069309843840318888706007418941157442787626766285896889649464778897617045490554632532976164310712080108781840961971384205501057632181093195268258774210522804523992098879294731737148763375866999171041658311896851665539960141860247647319441816530513419416090321386275978448703152940941773942413323470365145190613551876962249255573148357104357664146594670190810769865489092610135158579138295406275220799650504389155289317822237195645840353060502848391480749247519784225273194098056278269558091052688064006576968456192389460739806617868609089315633960564761680987170961484326394991586647063239611519894304576704648580745836971508100471151230093178143493754137678583603399640235270783874844538292909027734307566123463264849402017011579116902749487564052750239531532096564264973530542060186040177209570266072967856519218496082549528437672179006684510461173100224735469044626521997862282738894839649954904146915904332995869352215815444164667654174633126430811491792877458946343396696277911368928270400599578452634730613573710783964655685220909620794810863696296711451496581615240814034534805616551708617824682919927058356310981104439075542226375236458765142473231758568964878739900244245430217359134288077618553629693276526055266764301773485907837271326883039663226758204896240908971104507957978002068498922663566695548414001543869942562488149408054989226979398317410052859059223248373118933771366872485602205684566606998199141529711539477556655736358255655746751781479025249836050101539686712828459845078763285768734390358665936315314401425921328122162971041962885339522333818877651513021442872736236370167439188421219203663803443415716492277199593868132088889638639075753360256827871869549779952894929633001003212488300296171217069436696159973807720588296525833083689899624337928559525345134379490967731866244674352241058811201431624068481444956832012443528183716551902048515190904379436382044650868458591333463715140321132304987891337855330781671083362458988917790587009260631527083407996191990849730272955856969838931524431787977872431949695704658552005443279461571543334395268594984711439662789290996308950039663223165426741459483685393522466380335310847854509181775436995028013610243230998249481159561545751655910293929933435445475883560013479086355968827158547372468143272053288570181321298199192407849762812653478131501225273587082157142075829992584707062272988070214085132459132791131144987885765611986778934817982767612733773214093728600998482344288973248818564040677081674683198467122057448475784917434673410242792897054129009330137104753286507900675071119999277841847884358230788055214961083031053275182184850171630275255449181408164964122840077588947113252050910209764896194496097204961551600632054470111440968610225491289269380414959056708666051572293105010077221364093855605780301482860007170774615371831092287370564289001609592994573069548754725476648703791970154679606137398094889162912333389126881915585057827810376099312456350979257970854324488702593947231674140306495755727684604840621757086069109646784801790361282435525180124946377897229970961614091252612995800870060219127608177647675355596026792010696075966473454283729958743746696091229674193864655111837821329769525658080526210912435107030437275689216525595803511052789461277066106598720643264506696203877003918997118648675519429340202953866926685662124799374499737210227194954635130429734395182390214561210021592311850939206289949181920177289740957755126842137326152106607257147340194345658487447716395298196855334737981548939172283447502629266648444572969064539857944968481432032355638171096998230577804996775054500086482739556456169728496013860380670352845409289548009856730272658060270561371228829676666775364796770420773503431941643707449482662479373187301734987850667931596447149992733808515612614429027826633729627264928632050499570465195682739366843133335432081433806499589463205120316556047475389932931783971110127275944462279261966738633792479302529046084382253277814716492995421086723873037655915179135184510987767503249610285576724225907534900586054135342820714002221760582687205518947295647976289545712597244095598426358277163201661279460590751628312574497133612120760956812911335919210207044864153666743722307925448927399380057885066773732893710367905941060563380325386734418934434431147553575801245285632651480195942194588946765141278621299656078450537310687308467044945119859904821132117127385933286047478744100593311849386728334187686177797203232610967620163945770973758518802587075635198067101577947447696841678331369703517209207119204061903931949428280003682795272810205190870742777969295600088626286735224274864776571244422858048710611423605934358076107192389017266953917397334099982474908579111590901841334177909099926961987143672751460692718460483763770265688576778715201725258969763899109249532307653200069695039150943218199541686566401310953022746143245726257566094916403227968903488385911157484646707119183233184022318481961811379200054620497180482508882455541540522575788560923376644925751860283822507073692003007246842188250098382777264553641661153176109144717713382115688329774721483069805345667453446756389496356886540616766396883207185018523147214081475773980126688140746353995342360003686853857590786253850307009129939000609794780642073892526438917631035067310636301295348035616533511638757579350962116121586966300161212716940409020259063013759735998436421048987264736440384088708726159517810586664984679482153798291246268569631738387962630777962371186624889655306975770158831211429741422900217515050255255604262232039513901558834202845517979070817003974462851403884262640219892909316897947076248220222445941307313138691075353665471230068359593620739067208716330407607427241908378831744361787034625496497169393001029576818811666938764372868241932446037109718918338350073921737933139089113688130278088685068936967900369577209165835551981490591836325251680211859770873633614608619973613666420837794494446083010807084165065608867915043101497156382726161757530382602876818687135545762412442907778020634226082174024152436347329699932872821859202955589320273977239632068820730554396164757943418054929753516947339425275677347720022069574411480961987092699323760669727148284372538209235102652834090353278864402227440221874287685036319960988666903454565050568290766871599322603933397227316903035407176403796281978734022156049047544138908599883559878551758984055805208979437985594479521487135558247181239541271147589174881104171994602207902127938502894362845664571602395918645305042985072621734284860707040099818433035513499044957709183795505585362789035103682793580555447946592724123914477341061715358875473076442650051038080607178804198968108685539379859834969171441902780729567482268578679703021814494281999051621296957635086869506963694576228708981437564939380093457787678159000325019227752059893163196050844768974560253250811791855907578937126273823946895073405143956210037759580608803316985563909750181156281370646869022598808291794631948193170063776541551580442026312148842079137350845126233533560552847617926606023063077653258480761775782323744621513541634750980391062258400833162263731123120855864612603409864065975476610803983481813550498816956536250896197702025654260852182715808069103782486552160497489784666662563578595798131152657534782727107163633557911669685487801723300406896157363166237879513284186120729223923714607156992788813365969894455631510059122187464272350831176505922756399173149523681996713687835789524921359252866998096813855308484169386642718380886456392582911258200088366582989801510061926441908470306163692816146547397525099954748460380612787854551547745745207635424033454488973600638471908284394554074208466293368580894160682121014665589953747829507521183377109112806794715590311683050333178550679249029832418203551698127704778760537024979936505972088114928227014586654124620471533568756522384872366470203023566568565818603931505937874958497318750138307815379645223034263954569011188678198851999910028659068150143810650165198061118371149984730658846798165172819367552149837098683865330136771599419666861133471837648715334045985636650048311547931325533248361524263478594263825142062703647545292075957464704808651433057937972155591825237837767221416549255623026520450501909324180176028639088215305370561334451080475319795165277577869572897644458578633284608564151484436350232462023848744208354737442391918409521170412855785367454854445171219230828350956672517232507425200092765222548494754521816191262119310577362945492367264790506369674094234288310466499541517476393730784963253683065869406695122005383544436588391946110108425518324068323447270203846322531693408759778630247597781309186030722993878959958628991105906941097428663013159528515347698409227166087056767365473038912391466845229135189161791307793477554519573866180232563954269488560385244691013514348107957941091088687439172181888363125032760947030720174833401822166818211673729361458448469502578212690601869481936906656742391063615368249749733655514134581827175611226442361610718577940321776527811310211755294824957863478822820263529673283540525754889001704647630260650575925407398758693800027015450847196953836596291363271380602846200037946040920907502761352468599672779400873075938746674321467541785557236955367888769157794706282001780076437893245424720368520235818727837725247414947165798847650405693016046875480412427809208716195547876783776228011113182425165627259359627931533530827330404698054859313047904238862064076988235040717849768176477125540601287293321581474610853758154656395585620746875128988923506002016551971868459628322777678272451660602124326879809038744958139156633627110437908223259363813643384648827443383721479005492823096968036372413013430852079083208378900082525191260558102375136794470259527222344686683484411033787175967443035679844924150866799275913343729359839831693989616994651419110749286929879591172085969103075947003360147395362759389786199467782031244995932000047291300137225771824034037445004155776134773694915494743362809611591858483518312671724672372066700083774462767500359230158571055643774731969318960525224242414238115600286661544842079482860807232502631301310770461447439246332338790745966825238853766600444839535940869970748643994978918516689209087257048578763221527679651491932207073637130463054570460192210642350642122873876215689475618283750111301977093718347960174129535440279798120767823663407470950665066617694097462768624186887014347797300507936511132374058460499446404725605616613607590521188576264079114631702412689913730803710893240878217770402004339134261516634859723521232896591202063850231883292179032001464114723073191404808376830135424813810077069675455303880347465472422695173157202269081375248314330584571381770363468859937165641766002530795547459360735463294633357966984323466041501503018416195819221801736263666219550465042803899856511311976984404723331292043898950485331043475428506930079271906254229438051458710777224793230957944107542220646441752400005523584589133835459794706045994160839926112938695403345989426513317133131407350594441245775626721948800391982735759544992922533137912211570175435037786937415958113317693136664462330478684119550734366367893944212419591510001378310429776972265496978315132765627112808175249821806051097007390721150377105926684924495030779902607452911283161782068118010811391970160727094098168613066770982494429725578484352465727391269834997097494808693368622819936949663337217129433272902150720799703016510275252916111426562782398971746003729715432003940259494148632988117850054883501610276583184361635469359429860506362568987462626252785887360712895943308393754748362035918842798838694898988068850686799502927287499093353461515270746452201216493516879794391387810389885859212837620500204682951603016336543862594673292040425938621098049424931386450010140428334973795818811878693523527641567046453437961041666189978807539667156437630238910786120835748567634025487142913129217606677401742885608964121375989924488339642166287717900122523961092852741262087223248180337540978584520279323343207520431467579448204451175263278913796737395119738659601681214060961290091450346005898841760090834478517971315805898687710571143911599530981102600725300747922505694679482827569594434096277142155098400083059472479509640597545925606342869414859610608607861347020529726627602515699878913147275771321680888581099683596290255606910553668552346498256093810607029881029836198516985639687400344529661988744829818865382867846239231024988246348615601557465706265100755793519057215090544994879957335346627713046759667908380606934745879815984970079864701599872538404977304229416755168031127994036151453186884813480981652292064001635886991928827943331835400829274071430211006858596642708670110293814468506007859149239753014937190470870936845431283454645472687378191644726002734028421366815089779342270019686945463439777972370106643494329404180961995116313738954066076547738491691334839922971811127777976499318102330700044899617712529925631740475005488531395827918391041969559861545547662866485466879152336664890489114924541649994322477456127352835808905243906720337874122198966048260802169553762460931907639629551892539307828526179682805075345169978856671098449920122559792879800565011197626588647268093086196636445365686749467543120837265063701908768683902337787695419496818061070707185972885694140793881964590520117094010888762873309083500936068255221389389849089483410950656985972891786105550845480201377826108440050374028822684298050560761946274616921921291605469962173226053599187531141463332390454839340813301064680663267051316517546834896833983975154372636793581792196391911967301660225639491551253590001560520466175231605010087723749442370892804184530429425390656013619961557778534213925295375010951317785047304681767024573041830475007681642446646303198040307854388912819108546826966977028689457977936350892629071460303954195539900946936838365001210756566633124059015691024994720331332724570521215060363471880908838482272498197584188981274997408910927694868049756910767119515631383064384468567886277880439005230917923128566038545922262350281754861397479908760736192389446378463861111441374249040287642066137758057115900622740476284814378879100376563265604792255921130536088728411363804012033765214872552170123743637385602401571098464911866231778440571482439046737693753916615490759812940608860264908546798534395818111312960390038139061738269983365500618514559903477073291586335222782767537146609802531380765687072298097934531571267177576736372588759588861065867471107797201880733664344466855759250755366700431680822492233385932898149977835073162393258088406690318174563221107357969701311482268115571359633507941150344024722920394904723010696325798732517381962189457180216817971188680627153050585034163868971800076892320491759676260502496180605329278642370116450683199713798309854706171811237696041890805071084100304985939702708060464566425659395801148461778275331055122816247083783191015770019039290400223064663016102923358998980052962579855376092893374586749747722658621068258479510634863604548839002729409384804551816476706428083652278551963413972348969106837796155283100934798785872272950474874220830701011156087642837150238399785686962619535161926419133355800114516842089723203898492535363114329503791820874910146784334079382549006526495339917739222372355094506542267187753144877295240789025554454885650686031295094481542182788454489207132765158847496842503531935861330796490207643832568374224280174109811748650302074398243959214744549697247494750333605253823779629561519839795477661837319372261777076042435349848195660684438885100234518556772758895006329063399486866749755744403880413923409986541680430038918043268371346548304515991218355588172738739354028193935822160594992256617713538727966942712062537567560211888889660953458350695699841761680422703650074885997454925675917834441395189264292181280156259857804417901543601543918460162406408290422005329095901900795650605206782903823853638842904341875458301598967140639080937059666691891909719957232565650074085979240741846166114379040031507088128208336703170824245629862722125242149091893165035484709414080134490794616847785156711883878257712598867928758633963440776864245898037412729087622064046865740172181201696830431523640296016494732091748136538729394157804807850790356647678578652017941956307607534191345238548307342708212386740903471230227103197224452709857101193810277455653508075550205055991975331449437674925665004677002790073474061224855959220738388335763996247527167584793491541404173176257768225515877984635410206065203034274816847798066978802219582812168638019753146091840920596286732944107896649924163707855814355911272037708224716199616254539298652339692609100905832467446687637324916240349905565715005879110270885050086489282726828203838076577598537646420059645879825504637419595932198387052576914795635726975185183352128482955527032440037970269933893395179874355638490375611823905209640840824629945022538909343832870357833451352341695689628113311490681360259727169259610169066269006205366761234258151514127626605468956107214066388441432076199559250059205798950571148005116356424983086086632668730607479469829867856267722161032052876082828951737704036295278580453664961336403644674942267405957736342993089560856944526220565197740085361286715549518544035539798254588324008486067060343897249345227300309620016162845897870110843946319719860027065925256583316235508983630328969032395763709103628662772432754857462704497959138318154065847453084242206150388700147229724497517923914038383738147927852774489056356165848597446884334932020263682779559309526331773144075878711645392927053591599020444207849557893270257250535100488470536760700255175331215687618211967115096400899745952348203078520151810635411575491230093179559775028645943655014168101189600683542706256492029350545059442096652598321852723799926120957587672013323557547677368230730595794606850927757554453549450206905613642294731741272964407908280005173259470059124801890052036947836890176610888324898647135237347918469009257034987517843384586115918608935430177875771537914716098421865829195694021802111202092594949519304951675973021561672055026538525357897056058921247719994700826299321112048443400104553237778767046743748671445585495414838407159471773743163341297598616109192666081856973337053343125388906814111910112487865948904880404544319199825411533720594541516850985207812904828302481553399741386023060086792982745041239835288059337965804690655443936939900023420952576977142400455343942491850230811407984130396248669953720058650917077953910195622796207688936911415178145743799550822177834374943960986500023954489837875379808305008326832021586716221479968222507802175640719716123765619961330790050697590071643306743963113488111541149178264252659661490503167972224287256852334155026143120553748050771944070199113155758361406718989246914772082349778171870470028733714451905646710740895477998873224797005136658071570305386322577287650953586825662045197476377989715764588841002815000726649078381651531512410331128420044909412409840898535515028412613110915934205249323480395762284726478907829875910643799063585438844712080113890414662671790132753879446264674555322402831224343948749590887711249899455639616730391415990794341648594650943718140642511158882904314581089858592429483049184164340371640120723973428901916012670155077985494886548169968581367134867482426299106998718660162482389727587246797572475898127935922578731712304505443675587998352489429603946691992338407535175855162305383712607531830733292879829737420211108382958688477179926615158924692525401315736626640898632832339183319605698354502336979837851402020784634938550847737906647480807924332452336452903521152944243686008018072890572784167851816776978748403758736500598657396500629727500736626877239902761363286672911605478723988807773345083755714796365443402270745821764029655301103654268687245980375362939247966967696839040675294218974151230265959508573105468119463726137921415156049018690466275820118065145565902827521201476133468606682337826989605712210908884956299365233924193683851768788593241233968938862149661857226263644691917834631681108267982229161617204676277467763848598909349605939374722437281002998854950760291885268438898650373572047735584562835084743394815099918732945271604987654660755394003163853502283120753106752683291618487056753974819845259184937548776779716055742249858764306463602582687082541788754990370508860471243684359764935036847195475993704848699225135817233411270005121577251449779053033329386875445165740499069989048217758377483782053796355513236834435256496604590364278626120563816874973488283633521343001083946091188985227796199173355156645937405530229598253029487374228945695193968654111550831936076387583263347599637204308943921917403418168055372209377930566584925694412283176571833602778357206282453615627022257583209944040596549873482886824788348722990131510826284396239610200623352338589859867230534431740656762249641509113576447567614153053465563007815040722122712184771979858014528975743913901879151263790013121191016777895308907205809934380144763658040690910065858870400775475642196270749528479291004701218152212563446635232574422008653879062875204710961115963900404919375313888494817599635953274120541337442224861334717209067296461408323131486047993163367889045167546233664296929509468650470848481243009683250217737946477263606300066781039090872940624900919766531072976054054791815247498974158087018044085911720247740573100455728969657206886368426097097071266572582021857277292270049111636773237863807360108911651495900453753546617500210777161348734027876279824320158220955450516269899317927529157545716412465717458428551350412353355588698823420012438799153268315901731880989259345358887619426671580265756827681458070595758284236879461465704357820424812125900556873178811765503343411438499803098559573922825415964357995078114051398645576708498171068715792894979986813349521823145785381623051475751348270018346708445996514813460295828294325094715400034049260826889752088974282799636751912716574520883870061015012509594672452900342834235164561445324799265464047470181101483744178089211167682710867716366502376087574207031888760683786597366037143100340351645529471490504573520041113190909177063814234654694112060340192062991045382160455215133169197417255314737663971760991109290125435081911759018374617848597185769231452713980759236539159361391836827200364488754875095522585318817556678528633494200666523214329834414007957092880497106121532319920613463278859998971427298359786803213790774432914795193427933211744758711657194209324416829599288941803263055554061748162676162601492820168622906542986059779182196703161924547668949554898700975711067934583973639023261696359503470389056877139255907080215636362305597711832226990571276939709723898499063132219281932731782542481258028844220417944749412094731409136183047653301139961923965398333271855257739557697498603094387031858652634283745155332245786860579130933204110818102055102748452474166608247185040445810701414951727450957873526801983636017571642997452227333162170850362274907435311921205194778275510047961819535130265377683575481195927029999164122592423812204240769196997556595779631238833944054325956011684644480399246733368901263254004021270092144656394049741177096258994758609096142219972629503188137594087121211242680258101709164864690345775347728413680660115087779006091727100470466274363020848841634463634827310864815357697272085162471017648592506520233715334775931136318332767746867931547471010135326273830007205160548009954371212747495188986696834398408546897306668300590360997039940107026035875011200773058062515376040428473807114787761357718918365700380263716063507621041331064813000102965316831188679638249938541575865856373887089710446766625754663045696999095741170782663214833342328284542404721433154428023612272746146449255913146069844358923119953465666911245781980465316547642492990505430685509963331025351828501968082134657650029687319730763045729395278183737354245779801833093404475517255787212718337321732665123937479399865558576101389864914041846822348159742135818056102136595701339561079153085071190805441369153916297547213996445671490273028334430883772084496961380357108810076493688259908199467407913913316823877649911585991992541842827050360141376251019846996330440880823413996956969255363521942402977218134882369988401732782515149852102606304514159301296076328257552347617486411306694743232122181846166788829466776899179974306636967712863368853423396083713605861371500275565429076331850319697464374313801549280322330979518352770206826267533294382051108842851660834800425357028103618090090986290769500797437970861357208256161071910465403166727994335975035396068590870755084899762540470109461543347982686571791768439088552596168243800822056201345151099555031996263952790090931022082981392570559547366448733934145259511131558310875956669612695266729034109066265711401138390373499745160769420559669204850418649587187893857033815955109923382628779386922366469005032924010180578635944283436886381615401161323445673166196384943402754166796246439609814361871931971847653214167098065538879294168034048644264069798034540422390878585802294358283976845889446641291111125957974501732124858219770381019064981897937438963634432164326257431870307638331594382410317659671499506010756574573815228980706124298564541778222404168461101008766491522525428825255815021015294696131424883155458255543443516302850189268130045812315771950393140095576528893967743662482683660011602269579030355963713434247319522139506430196060048393564175562796544948898500177570736719320970169414570784630731803785138109467785188085348349593186449841863831898626488966757107674324042522481634695912165068175319619093764111825900890935042517533382334259691730829617180452281518052760655980775290685333128418201567930893975564919908385069922812877184384936103648723305016761511653028117175460786596397688205825355110831760647913139582742483814337238442236055355463334191858825539769887918874383381093811389740300852051068005065329464570985380332821714443262517340251724983572486190228172638097254846395409670510218687522449808746694513229656722815191919820575947193858016351214709741609187542365166594380098645941146839258795557708801992450720095203681122429484838440288238279636985219475807536382277159858152002465388083782011460578039367905815984010049228520320437971635335895867405094515128238660820634337615075752413209156161285506494009389077330097584902703341674962096781325254527803000737298877001353338283178713384392896297565734890650109342196061542017915048306059000292537607329022020081908223289265398068226208775375147666368915394110777393404079095178036268697092617940542024563073821810132393045393363463460862856140172411431379033475392513506644983959941158148214262504341992649609220670816859622116071500554064426187851732846090796681948015770483463882583356411634279312721017836747870143818532974307776076594027877321713962463414432593328377549350987949647157908572249467516278968786560952047795003359934621266879856628011718470427032304927493160808499962722564864710902267854090541442042118557268137224803781387852264768392056848141679503747585929634403007298739128595389579107466243257558964126073676003728752021041805528784620652589631919468174573517925480448379273588798967369397378065198072369388181543525432048388302962716354648663089170642676777826384819986653896029111971833176042742283149117453502248313145494863751874211865196180918557505887713354723720271105933374685836098057159385170254829635102242897592221770440517214388229125848983130409664769222016842141710800125287369749259983145034452134551343748730970608051159019748883845921775318298983643376461637296613327479037559749524481890804428999759433039334123124918254469017769134270769745435651610175156252256234682421209347936241433205104320982554885272629455436925641180913637998725942053977450058809536964109180858840768390788084751154021736378644329929137826130424073473465035585906815732434110080682512638627105912962014086950627192692167397939604577878231212522504327546213287628048817997421045881411518710684687596278350005996039660795764671997895479169056272533522432945178058855296993335045344629907159586115027897916225499524140595348881586580539634457734091780611993520576974856393508129601771147008782886784169465912154180633158754815752562497703991288571921083147807962526613097874214583598045798159937210832904650860359863058919823842910964591069432597069745708260339876053681836852953693285047999910753026119004209996638191511515203258980859233476449046485380747156670853088526604478176928239225822788159365968527681733780050705482790635183957164448739064535365711088472104865008579700320023654826066998765857841669471218445418798983881096500573955507116735907734651736043799830063910868569509575512016543139628462854286998164109640043508830451330046997994651658401291922093214810450376167178483778421288389274826401664960917342614542316968950975609057671201544630779784352878775784643541330493193860316319236401293024241938038315687185800886140356711360391504746640604364998937715743315374915037910817708408762796601275096136156830863818778704966011743941850844529673017786990287134330156358038495909789520698127111605266234076964052553280039192328604612792357287444069018716515604709282958442115701439349548739061970785190098301776022365640361191434127928813848679644886123238201788365470794762296650307464428298254521831457037555687044038249321901162100963087236449561778488153198210244070531393801872340837523950958886120697319578733183403009585353706415646337472175161659779665523406002600570976936930542608956664265833663662478131185124053717753767497617536396590156385858442859071181013586196289247775434569533576161266098721036988223975206264074985146572762552776584477094352738366163033521506883402358959639681956625439964999993516046406646805362495385874095581298115466311210091431623005225434596223253880800962878877623940570637026334489786339726838497368657996174783541520261639788082399631685403364950547885748191752941463589025405939560431557585480442424393484699440308306227315132660508979236815056494222496504430375138008066454979113060495598848233959469545446393814560048736720785328200236449695693259347245467358855172116402685698580393271239232466750350934114871291550857067014067425565824115058519493339277878139966831360698331648390013809659022654702264716698350065961854499957935426288523508545682855041647127408689929161041149712438072026424578493453978820192208106693347010459745918403345735300916233152650738845407456628201453527597090876294219217157578793433328311465846703797956065769556267893075399893489770497332902630584458013390864422337929073284451550960670132182673063888503730033038417555965620895483472609577865987371817274486243290873243465621967568529517090524141547585552319819668989654164943750865498516040080729825670406127098795929336798091834481462827806778389192163211326974171932439668638281875883075218287651332866378101258659832200171081397471226806058633043511048382506916931580492326380170648665250818177887098850649980794059810530465065883561734076075625441335072588104727620327049693687566777558066046632850354418919336179048155287454827162779877300741275255242401984861630294080135580360288397865658860263495243950026625034762055977996802575458774757857418864571220681301893010877428242391421057157726446533514165056810185093322743372770842643588799725104756969934480289795519545304363102603685926620149822544562292282828239213194950305536697067173508689872083915698133575258355857785718573815863831329759166975020778200643960185347593178185037239132866428636769124213723034389872989664609177681462453661547942849137775431321859412005554564785098053327985607481445427651418830138683938480683600783831014818998417304806061830021195960716265419373448528844703958106023199419475204164740596782900724194407415772601179122827044309776345385690270437589862518976299841250187270050128531064638236381407929223615830405614080256891755240856950276022633241134648581703557537598658331262677891704367644411283607206774463124852791807862614889943854149729388455619125763381040142296276897899840541985689368092389957626802133802792873218133190540087421973782651583588183525159410006912580836596849841032526358622343614555967765854653628911388529379456548546646157596453891534591162468059643294438516097649793362685675263405909017615013583720217178793230599404631816038697134009125943822254463997803559178748105515395618328756538915603167964689415522806814795285427568367792681420606158789727246536344339045536142578111882928314207877917690993143714020137298382468856855211723031982376566913904256169438318313176349425262419162749711469676038519237612080016920809369031318150284892644617288809446634022318569700595890407401089029859030222471527913072341172788664698179840075375965605552868103199245106490397439894127931978274070286830078861610810207089645231750784071511595409997538400012232351041738728603436605317548995929468104937620865659897289123541182265629716092077856303525324673088385415321199316509752065595101117260135091588594725268655040098448508082419831021971963164516506999891358434561227948554635057470490161511479535896060242988419819780127257198995181728716932300713317151994978344575050404139024669542736415816465746929160455266481612699986899465723414197380412349393297766970909678436265507401429415001127441276749504420117811648337398918743111510238755557047928872522039455289013427033372783289390524924883130608747616653389827641869312887696903027654764148570993063582331482831086034537581863070610777974711578728588568286958170696865923882381331417353297937725166574054804675558041460870245780728249913155822529530927473588995076113359105897236902228940178305756718838969066001207127764750046535500737069701354947158501638845599705974642353048414714327480132006888674117091802302339644055435820843197310191898043653651813163294359249629995566919731452366641622019606971020778725972661609360464764284507449764665682636530142750542787820177428253792421679159699539106704880173750164598959764369178908280062383667948928977130102956250120631213677477622027450053387459705170134724311727998822274347061121699860742633026846914905078678617062367456044913904081424756288877046313083716667571802087441595669776218038168620456569909881643052413429058370925856113987180686118387126387413847334016787733945140067082129096002841543113874453394571749855748521803396552160317628886678192657870762031231728982421497707284929575412227685249211868501756031337900399473115731527811845989854288208695153035164891793387682387179030345355060771044224485620123972046355889298173164457156095646530068901756503605700361290332438470814775158470685748512965923895978518886639188186107017376923721407984099252781951295478689707988956051064699880898843103078001537892732337098933905305450495493489392269118470712181584104714504031355209430488700383738761517493573069155799333409999472150640022423902291754846596664362775815476894159577015096833994739036342429198088571915283001999757535366483093381195169849087632859668648511836156344539002854945403839286730415258545753854204808480597821143953173825122490450328227348068849825022097859747588335042665627229053994801056997721424105173078135383820891903859792686452837386785439062086525011961737572296547103036497235392916686490785482957665254136377408721448247444536247106221956703271909664652531173519178262659989396500312530014119834836846896882099880846720080519484037571238372679726003075480313900178219142005211216501317295698771139203472740880448410300285415304968577238403960661646456306468817225664483438598549628951132571740995313136193330701341868984612547023082842481988620313439401310564395124852262135436924845250262281335338065579411581280207067548829072021164285417722728251674258239926045531159772705680902081979134013800422444826248859713400315215777651623970294936108603983119187356118426598617118340852251091349971293504292800727042762654881662174889698280666872770057078100683038777253223825394539341554422612011994761152284237907465107558816266101073626923085302182350965397111563109935568891217589425109796600874202113584609876025579662229686753995943615681366519895688439683990018125410477885968275446472218555532923301747826550804077434437963295928497156915403855772797586714944938547350462798479104197726218242009844714137671809134865185891829120822833922045780357261361724162808304153003569691008989673715558812668959905365669251624585475949327141970685752276249393789118688051280675092212795782050408439171192981544670566979409826036297648938897611587521103590417575113027213303090302251268894491544390023349415958517439672665677861667569879682697529764611253592932472242554900493711158250189431372093711704572001059476721004387730199506792125851798700873719970280496669790034615226144917529467380933745457931931079877735783208530035915795131138714335043718755663706825105690165796830683552915560383618279394770896967763539641307282631582105907894383507396531001181435500534517541168927126441593028497717875021609667497651765791531603077569632746601638070272953671281498387768679511978639871149417980224748163582916776066633857268754939837974166928095089578733790974311070555323606555178303459355708176083740967421141731266385542011447434352912768738209157916128532253848407006239551394914103619512693759636734245286257465501734803353120482029194954402034626140201013604391066102189274471241085546587924165820009481054983752283257039438975819715392361340219260663393301199751851203488614901769158833614762845368046133942999823899541641871463916958581241210644056641950182646919319738501626084835204291419174172922090171117332594648675305585434371844053938723207590369860479590634870567656193897569156971862097544350429884156070003333033537251367956471827998741651444501941268589471983154295738248250848105522070174397933257985225813861393804657197714630860218875561747730219358627786394703971672814788312700966986331636806750872791743250549798906869197135622960886255719910318985783290632007793764537353522437687635808335388321232753491836099720235579158690636278515833430357719554282598156326221884396060350937308121285133080206701366530105042682516012541255026287750462111517341806803852009459790276358458204492092037165899673944915721054070627941435801214747618967005626125470279567901972774170380653426208835707000353995105454899259189008393827108448320379304754691297596050202547442928500065206011377816109337156599409871589686277897764111288306782937634276595006621309603062617828929930974915532534299723842685329132392875760372093195717042159983295018752033961880763482353361875431312134381721047657735578332210723892032321677369320461395558874805863487497075203542803213728043611283536976217764605103120870933381732054609009375831332641326119480112251277682717878015708712753367870385776228396852581710191452731348220149104238525833572814872509495760990650440742608184837621468973660858838215222721885539682110311430080736658166935220921492639375412920771380189722749874408367108663115666252380087118566649787983867542499283292130475063117018014896415535198739707026159191177074503946718179079405480716713194178589457321850564246843975914502068572713763966017270810918968223725398732956063443798217931143208100506132473439814737167971988138865438346194664577612863137581940480353146830300504398003124494902769584277777424778148516108564932743679442765201685108323799852495708789805698083590285199813060422749389070075106085259360553537262714858204460347088792509226475623964609726910494118496313670374539464817698504150463445777849415111630520615560144865495160165813424006179335030276281554485061673693993581550875281188366450294448602093626915129848659718636630657343831490563821823783594110235647012820748890533264553056718502712050606034444522775100433314919106102803656179332647460638959858211031044335356293544263183186599655061475659949102259534545392402918998386569955774588294577319235123119866798827087977438281077673814952819882631779712689672278779739590424740360136789828828233730778771661387155334978825424151230512941032972323064536238191189133052310237152422046779644930542569962669506519573563099265551242717161871196919808385996191580595187001018767459981036066178248045177432891817297049867479546823205960279254378416287915784498835101524152678432803390100695058722197735659276845084351384333926117218788587922730038295915028706467987488301776988540268557096965305381191717768577322714435045719365516081192276313764776973393284997347470819531187126867766854350833732235704556811480997380343839454690117538244545148868106560096818422373166636474382574563579801873623611937996635887217937533946075809757944822889563075008242451635158228174039638922621507748337091406167783487725315859160383647673323684659840625624764631132609651866781441454690046288833953746629536813165768636698568235158777393352126750625699266431768717814299028486296064223692929835503160520843833300489194384414219099335756425182045227566148233793496844003718326865262979904012186869637327546005957328971642364720577784825118826546522276534825970911677122373460003493196386898047952053561247459969949437599223213177677921801678929172628777756772253296220561491112202358004340781838293298107790833327214933535024403584045054405905584293244049687550280770800360126926740372816774764238705777301921479748619024616634074667048959277239396245512699324951762388215013816817678588982753511282807073142574853408254615388341214128094675923231950375924003296644643240556663095082432877738821542000732242628946146934653127635158549129283969018838525360812486359775768894158976899828301145455055250224153918681350808377195884959860626599381779173557204151728437263860500108909012866267149273716192318598907569407130063308751664691110751497614841295583190812858647336421492333571106106918884948893011912581643927682826711667928686378096784839347501824957036547770324657846505145372291633612442142162340244206715184771500319881774693091811011366079333931785275110258255219640864301852836352920521362535285162042308236064714156835296862183744497424345970029600943644998904432296200035955952097952381584045300633823155356755561322298975314626568640923709111522336348995988419786009132971022471211096113704044642374512911285109587720434997387820722243896847468410713096689984436810973985229435389765861940812787024360344342544881935942889511316036958662052649484424681825458263698683196242160751213223850927814523602639434801636214052082998637290577507911978061960952354231169343629827133786065228798897186272025979671392865075347064714154016071600990828167565295713256758436335899729664736345998361120047914870127575536092412502451075937849127312229790198555105345492982834919254530070951248512233980878067488733106527093072556908152451330272092285080175548410566816939680320115184928869183072827221146963598541494416731463914407075273513482109915216962839402592200777062454738308266825010565481643991250714606777681150258359377161830514384174198742937751513949900520607133611106440179706995693850814027718658845390491181952881057768711646846040120633394361118959487108937656627492760399006145607842764990686990405147197935075733461901781360249787226091151322103180715851637785957971191275122768387213829570243474033775891620621880320836030755771785754758089582496532595483926373512642870500839268234400112329910373177521486337876320461204197957614367135846561905937943385172499416234222773611904143270878117789663316885494662933851449376335932757769942670546217273034004183868593873809430724417479627971744998233408792184593139331567436129640960619378667998079747654035174810454563944509812216459710340531755332960623910943696321401497797735369361891889553785739694788477577072804497385804566670707387577411986996519041126046414932992942121462313265952742090100409497678223164599043756174615520492043452889372353061760190071045622476073988475349297680981024743483857107381704687598512494596706522163342771692546645751161201000980499127817685449346490899736450235429169612537422211494090682985626872349286069626450830250366353575097468154953194748282168304941815210959766024103745822823873483995907569023067209566937735218605772157392725992418519505929317785643622661612573113822518811037145022207043563526589101384710493786708183081867652051658750275179634524351900650750300626277057609913860527524317064086836409577993250783074306224211039067920257338711659349242627034192300316036070593535618665135428320456712198890461050247955037711494776733942716411579960325292302300313484219726597133274917765577353117804754977248186537750958493810551123326925809237979750852969193235580876051733119654076369487418989574525289419202305667344206198532934777699409889205674208853939490134736374156538621814979124254248024610128349648848934024286928972383083879864523108054388147555618163097791721527808665543699447643050566411604570900095645069285229493961604255405894399049896035898196117865750728394887476106503527918551600926868599690685542842964326223801838849848233257347027680569349182836447382529886000066856795376348732629575869999122546424605948926361418578329506022259617590754674579316494862165273073672753701622027495047494191399541743699847904501328540119417048940868956782286513004218854949994788380577559053187651835923798779977569080077874094757999706014515798866359711766595344294639002534997021281953776249556377871245883227179473318924732159255801114241438652989177656679124244560666973370751340700489292494470152554496120097394159007326955703056181546790805937208553687963594234563439701487052702228051860850376153287031544630892585564491637445925053021516807092941472294182058507159180931408069647885078439735962146552873246152532103380609564025043204531484410021611997173202855782995348851561109654534827478334851338033079961774302822106234873825656058695277291385510593610401772895380751502286312654720763441234909581379853949725813798460550563608093856676969079803315373836010212325051265967749082599516976003374184178007649670175348266428880037170990314233357554611047032206345645030105970894831074067735160164452111143528744920771210516810021482547976072444964381527858160481839221274887953837888864612423802356147419738188669843919634411978797270541697024580524631330366516307628239244351258604298457737321262663264904755016425604758948950115343087559490990963715818902513802430396743331813362365241030899615350110070556367209468572324680457580966382972740694224731406835991852305884248137731191703044672850890457624647823818304279854423769010780527327373039262082793979319939936974746162489352766596743083491159830311696937476030524678503569832679107988694236772259178508216286306218812541186487877073927696711764336581413728801777324884782274625059002273914140598879099425756468168441318976650342937051424170643884390439424168076130586467613637156945785904934391546241422656799831854692880193919250185279907749658022706773730327693232878971497098380071123991132617756786747787520085221736703798711529034568192876433471750456388562697668813976654392968711321464733037601656748920369787785426000895507094348531883919430904739021732740863102303022864316038013591113520677688860757088847493999324502242974453798885251107580041477063784017089378155800289182564632542618937697676967114541569273070114132602179022888965903672806284844205183989262994071361397501790769237552469922185006347049595151541054053180802910707966891109290855983138587655861971211208044890773578582202085407616703933789417030324513960738707392998116185653772792672310012415270150503578623025851417291768349158912417134869345867187596616322061538489062114569758894701208074333591226175938181761846379418544748788231666324856521474617201531136353385639989875617972617190123267973980636776285319348367937181952476454186151925388287883560325065416874976295492716898513945882351784035863121466778676322637706653434463315437722555572068844953415451828897145481752676282374551395031302156773518253455954919204415245852623100657045632993186967219814958186570514811336898124623500953529301368982707516089806333613924733069208832829746975775645725680250167957290820342039651075699332705203421579659345680927470322173486236593297091978938849334362374773171080587146790172269713147104870575866883550489473827477036609796349188808357505402807158570039493018761670548020660637056908787056033541762662335885506555882938506172124694083693080681996934717213603303208582013320543403913739408594619700187342057745325281075947517006594717931995352207208332937299281648171400565239517367689930106411098709674025189233556807244862243581524412185313810042327514899270272796386723383814305321320014974636224342649392573812717941421072085667522466478785996673542600567716181581415041221070350147079083058064408846471116373576741776239027294594347723790800082785570523179456651634297762116991311090194005111994362324871873611927254451531273641033671574110273721433940205686656196711633686699731169836261189416483948169536583074247188247979004092560457972299200360572039453706363514127510433896822209568081606106567246138456008770428086509415374420726905037298626075271414093655569348920485921246275506248188694112085093917750935182227975863850552868357174038624694308519054135476266247040001399848200763116936979124832559508960575732309176451398810344268304237971853631311386583168435293386562312735175321550849130280430152091065346037228178208704299871978972561723983912431145858198142490700190126316716390969960883591100919229963677598630987853617185791376893901352423051072824603329549285005395613572774909505182831944925162628372957642971103256714361401912211805037524024051495465087431137646848211195335220616514934943812631218313264020797744521372590048814373541551951912678263435797304107783746993407665907177953158386266720717557323467279072390521791285824253478560099041150071538243566008177757921181586265212676500532271186340667844366452582288031891860175259807136709754217250086741306424507158101960854283818914041999649374656123877598216900154364115612597040890241449009918438733524109825428444909094607861496407619803392057282020701484890553905541438361520736225010877341007949783218492044843243302187781594361720549641813989645915859947375573379436320397917021001572806448321673893208917880708084932418812052387187172608014820446402588833546230536898545091307344333815383767955330547440968752820314654789545974690010796057630894232344709236564916954498455530054863288421847983006490365359571686256810437299257712969373193923836452896807705246546630457848064099089105063485295490978636042875289412496076929423438965713490803818411760911802274869989919173172430445009703850790216925735572678617404407524712481570146279178836927472144427699982872412176762019006103723161192071860847031176417625886567836862525561591371827574975370708079837025511960008731376418004982974742549138536691373012339408647813183386460014446901293620102076585525196752045935957264258615031469515656856460450184982857561167282058979841363287658797954312092911088618365727103427898295506554832969579127067606507360538690039597010623456840778620734917617880364352205058901956500325268763690327834334202141438380116848162881006455105016337461850051747583018581643409965719870061235434773375879641685167428228553894890846730698504511582161641124617271246801325381684456608423446920009145155989856640087101176870987451217905359136903860230970335094796780651529153841552575059496283305391227977745401476208597780383360620715342910120890396689324961311246952686061759337041288066698371568447017457187471625760118495053466341837961876112967170115682673662896823318915638475117498886280947642503499551078800858747616205156428744216201205338415798513627833592196833255722809776489386483749752791259287870091879393519463945267364568196929329406067086329043252263485311741008605160822175671373360814004657871413353129561351726178057978309199569669582384069382840488268624330968240534277709846650389545691733632047089293473477660599477192025847237446241738117336801597268463868529220025358662909944714439570736879722833517297171263102306508402896931219508618175751880966522356980128813262708525966358430964870063994603969020080485591948018246962263194393214539014006977185086160768622691370013673124729507190184534534982457449523822149712606603684308473112235977863242575820167133923963907604762832713799800715876036945261649261199100563138432773992217954918202054847005065377329155296734990590793246419099039583828785365956444576089606758533581391650693422218169932492916051064256282874483452583383477146596109389256133344170718623909473070734148292118079630594724633175424832903427081989514908531187044251804877505546734715731848936312571446503134674111520554580812428596209350760251792476048121055245680901378547862949691591939168724724008302177375571038943469184232970760946480844650668146231992180276044417051214563679741824709384289473840663010696797984292220696084286619935163593196207187209709742242978392419852715073390209115970867161916842790243730910953224490540774132384818696788277032129309749936682080330059314522253715731164211025348910227175242475250371267299883538459161521874294627144307096442612404040345529415277197713805740858583472729228217311818389884271092388613269707638094172988642490907235910668576427124657130868902378601284222271292252943049629622708607690210655225140278387370398224846078244449241275130431207351556128190617242027439274353685841157432414247460023977278142121646618148374099684402312513005420286593052510583381449703095828457409737782304019583078967740054270773785144283306885510276442185567700138943583569824741353283346692244486492224598666011776704321726065175742671764697176989869214899777588896154345225448066549568609010090335185157117328526859257398236208579253545553680266215810427588513483197471455304355670055940461935444555352861758613522854445771916873083975518802746663757824122133388335486658848541156504918767360135896908585917897182043217548573841014334908541110078128027855245178148586524531863835755603095939234422232192752082498652007015236755587638997003283797053082085009104596980900731430002601641484923409628742912456237695000297976977688289227903480743632634671697755781378658845505091601974165498305417297296395551928002315367412533975852525591539817521181090753687729795153583052928925656773421529086947515836465083525609989236310761974040258007737078608396346785887621040979879916234804386061338978548474486657465138745727344823059934930399998909817600890526826353020833941662047889967575172515289523735997854005220487491559903854132253815212272096932696827403500223843454790722791345831372129759250160016329934933447317910403364598257522911326319224093794648075725087302230096056727891022669938385860564840206811649658481645375310567072800744825091871166134628025500950469873992891961327667135730328480284723955002020803270092360359948855034994334441430465216588903705567254457867874877034444646918875568958443828437338135320679453546449262377638383173936871318196322108686399548101812407623369025509555895738798998474188946417124697900588736355991686146341313710222988297997905992752266273257386248002657215448179450913139861890330260503976725432022760888708948537339964122788259421682831896447675504100757816968764060747313343101604461698573435119968282956484056632984734484506032769417458719963207296807896500845621815875938630123256851174189582757728798637221388950909504783586910672417388331838661792064290920445950787658752388702978281468694859776435239252088031329024557807743589090817315573726989834074762237068628757785001030377363593653442564176685237410335902464380887683056832400204929657027281990243885581316274113780660449313376843854896335247373984342801548824596503645300809527038696845156175309025649529938177639746691935094438236900017250752212643232864568805373436065574135425160590011110280024380161836410551060727325500945818285158448177008535853442091420308990731935586121110168955718038833967617687982151862953554196832351280204393457653867692365823388393329379403929444193643781642428071015215705581349400416316184462373251557446471686468904503865769269710961080401402785496704470145999465411225128773102222995137903459014534325351968800465923128676035615555891880411406274615036114114191242680945295963384038770086997295522932609582065363693565968310822952846065951675431270755730677993528991717003963046984626860288252643067035067669685692321752396634722611634715507646455759847884892461540225238833036115104253052898119869040152783562032878428198814858635005760731998954213371931185989551973213450364771077105099296253124317591010129576252429790572796559989162109833452366145035474769613710865614962475699061658371909004444149044852912430674605186111184612521104308161518434154633568759972923689651639320154005073753716246175189978042413628282111044619362569431333004241345668352129213686094002626666986786187178085568758702895043665828129301166363751978945755836782374735582473681973142398230390383438619980435174471842537838086638764786363170213713460223314444684276352106747614758026037198881738697946472074811038551957215917827687549417708738145695014132197491032374970450123962925993087269068940560116233864966781430492949174503183915228835295664496783310446812794184816895946086839938826778234588475540946553340880285830959065938469331595385868464535579317139650804237362111924782915836433701092894886376588826371799784121013784251439837098927060930397883650098371458230061830179423619869963888743280300114455861090369594868001067470206054794238584619330756539175944349025177701611220039000014562815805286645925409830978118098315849606917828852870480060868976649446233005839238859668258640867657036102993650645952578900780281457528702655231562580415019268981403840445478468032950726208040242119734587424302771664550413954118357859398513614438282332217850959355853590237565150163941391833662503514547311301913996448960626866171584382444810732039481473631498787167744779294892865263013399862367621010510213581731007070146701179636214060044726695158236070693093610953712679800678946108472184335931417531878803634748701810297650002296338377917137552805005835283338797752942273235868655299226400668982721831733205912974799102439216371817181345627029254576989148417226264796978397684696452624404696514014095331906784763119053642299707460408429686424457619359334668955909545932933647540926188323390200320906865558437195781272186124817667110105618669756845121819885892886285192811531470952395208807776247549102169828083005759119830906627782877979304444869835144948407031150289400401170648332355317559702171504047705968708624744395406536454506959525606091642625320424331606806301942999664454377191550898203098915253327598163970981388093662841375158218648178830759998839631228886951015562668254029664018596874064930874593262973358108343365438181102319066427639377957560447664535464115768449344077854561255918506684818263641807532712382108627385321179674682812174650247003994134572498335470585503985371267546700873277493804944401147023601824923725817556452572584119146872955888180271801131564477067333478179282716739538725909309260158231709649641123747885538986690662430902044823736309295317683764474074307664664137078616538982510483850893392912871625210551325763324098381669126271367545493859487059678964945414835712156076423210976345855739608600276420968856958517321030549197266918038016395529590712379897483672402530215792940904631226220499668702524548822326133639157915332787331311832367517300091499060023454938174157063850226665013025717401742815373731314874751170245244545830414532348616883228687990126558262654952616759239010628532712243588605552540698403214157637409106489571323645121186729139078070860753974044930149749103540219262741743525185020122345479329969966541837308547198545211708451578982975478489741033248331801891682539198894045248534485410691746949355753737689065070972281095661077942682901510115843917827032333039021054192256159126077922147486078991972267157574560471515599720735359457086992853912988005675944317340432839362105949065774602212240449986800893293968111293182711246062639480560479951309660590354501280022685105017692590183719895650925035053370732386310780532703486998218143309172551311947895366431812105252936057386953541338013160567639065441598698157806194328117809928878182994186635558556452913767347978380490378971438593229296536012579601711412837185331361830197081771635872013463094423018017154832940882234047211276840805127589448182582903502503823082710833262986281854405386382130977411755424578316603544258949407876562068538017967208152896379591016982497774656212919041973327594776975793207004908599618767142611478682552118340394248936604982515306720531768816344433110065750090693837982697134138225010946244524019276521254931823012614556648684100329312549670969872312441766324697380170221107329645467061459803951635811396682399664112972041088391688768327731739954157221875888232145578432138818166577179841833743834830617335917623971873459131530964995302834256139945517250887346728069882717028962451106198586527806306190370581418521400275781057675482479807319154554718740856967647941387814485722051653984936255674313778237045509063200224960221328596303481315088861338397212460267112095080008986695436263084399445686215408808522053108963306218023460546776054974982854516116133524920307911811064532297553325658232980421019352934913856136467422112668499922323803323790428578276489494010657197769602905629295184586654005749307825623219823943203675910901504911058676393156334352238895588982053379442435165698499280502161876793429681056709973274057403404398446296464740394217260979406057897436665809188158716318609022177572973971858389162354830370611456509789379280302684045198161795644487808255206988538256546076029551625750706933797704784585468186006764983050391225663695126773870315251657988080410296425195677098999520595006726683422295981729953365527149154430742075434474168548659608739073488723655855265066023124432912113025544536139393975423813177627036073051286742133895851716759807109733555561687354680803259144056232181309871386988949589016868501796596282630998269284770900556895793035230793300466930876298470256715769746202424199455117079122308666848731003330919398731557607221108393234942253037964738439904562329151516237580696566450246200147734712801443091056158453589625893737622100747490801529466253516421084015972278286947645262979917978670544896972728732023493172885706161829864323241857910285073659827557679441610032569313483447514541736217287095949727037687059862815806338630535999506618276545360298234041327386934288846842402581966621904967679763401002520029460278123744991323274955300773877100132756045771577430813028276015731780875650832642585443417469002987220454763350598619274174136475941462829915904163764379797126227342813289419224519919785315193685784575708349990796295471052857890714087611762221851330005751120720856917985062585931550226714594451321647167655420716298142932603490976309779920165644118863420002371830620155326663123897714769850444518355039876979433555740499161507725852302269892427300595071207830111770821822690434242023783631089897895469613776531248736049208853017884293887427897153572679687616437958429959451299412356633198754440680915140975420558598276627210666244949707568992463520863353029383202823931088018520769957248468337210642015428717730271411176510231324017773218525616587906634637069839901594955115512037217316346465935011156797540950575963264288518894328989944675421404738887507638373894894381532956126589000208047521468540220706794323498283564613377645138308467584757040931046118226890796624592430982538725313741048835549315218895906598820962883065427593989900040120020782920439772313927326662708028371796331525745437481624101454165633447323049271615720196678617707564563238770423754829167350440725026058243512973693300880261113137828501130085603084636456954811266066626477785231103005865288865716654073013673084718645567395905486069308837822288553888908339529801366260864802087527569819178074076842567157960546441372412459468168649056513648147441607951726107978175651684227096473320546153677120188138416759018764281310814961951575050744497595622879665525626738884692773420327395061200078664439155081652340847195678646068457746820949217711733134593989633362290123519275865640793833639790368158668614581939678175157624613230154180622087441978912921666166210353316499376551980073461774387185566845304140974324557180810680421184193056831318915795294087564442805986581591933126062795340128182827595171553625869428295884852322383992105441916764644168950577656497403877367659851567480142682116446908742041873838322320719469813016974144733848645760439190741513878993517723849125816587557379145447915558461942428375724371777881269602394474161959596059193177230408412277392953539266208983938117910027913279728802229329350790874424733840893816326311679520803995139328194911920553428835016229798807947645040837671494516243885425125040766774680022889409846049012558683276313074307511473393604349303888976837489984676963245744682476149690398166118030707695087907446462846511096467166699784519975213570913079686916506157907883307774741400707690456268942551590893140837577130519155282968159681507459346046375814688020358538640743624354278262067303078169228033849219224192471707034122911991242804125033041974890551602258280509454383751834953600851805254417478535258023813884834548677628902188404560561849233118343405686206704728553698015341261062433976879587093835977619491489582235692055827028557784183116207544234166803298903188388389653997677042672182309758312321663036026076905994385970893853219949064108403121215535737288336033253069961985423014244712847341009353528352010764468786922734398136505314289159357286075262630628668340382120564183853968332994394921317897466441717401384299141343620474771246290521887325829472122037726570516800901634034611022174737891575394418497187139649052605528632771846610435985675134211149912313155632197135258933075053602743288187353712551611095712369360322231289902973381314585265392784839559201653804435941315247068395479125359633409039668881333133058038355047652134821621945373560785498654351220588371396959737146276576606225275249176871685855237208867828134292868713692735516607764284182284036770762142590346937061612156425455205409297466085693513827811324121155521471259366796700011562774220471578355769263721151685573738852751520891148076519931596621759799520671214180716317820521134020907168092239106284103449885432578771831805338032157762899269656255480192217810618202895063845424562934484648255435417359284724301198790309754875890607066422457015877388369632643318706795476451830015040064608654167236394744433950179578036468800005618353526629011627170692569746190047873366328602583328647345361367751913321767663701607692800930455522284834545650827923178898281245053105386568195516268959764620114685049885091818989567459767745564301802990295866013203570938510415562012005634674584654703193520554028294058376090344720967422150395263601710674222105706525845143951748658425210818349794449254913436968625778374751132761876939634080889574015782533955759273909612602995347952069023789079204354398998213833582442965309398437126151729914920494393352336811185128182460367667551227640283911709834236366202798161856705976630752358495877795174836243079911074457234593090682608405552369871778586788020885594381076670849834827585646288980484691737946564637970390536222395366199959393585297420247815772632825973377142071830876136353877225617937599736468613524941415380641212522599043376045661398757015187461558960312011464540919829431497900279252931646302116904569011102890837118258098507345325271322875006833254476890390566817443499311372218828448279925760766826501015529129327305700500025806164530821175091266212264108764524947008993097561993416833251078848069439596971142082793199992683172992083548817960602656190652769422031404743058429728450200890284700223811862642420592021325650472133771653397330838105630793742010498077046504175545634882928867404615616801959179722105064147673965125382108909365235064419878876528357323697784845799398888662406973826008179498976691212228202618476727265748832735767286101063942168991632514622084454086317728229984073899929159675088336173922309333530782254645933743458075119281955900240518483480524885107280519249310409188544063557083481403534418047239714853283738086097608920278415747796746601176407584302148331175580816038958138849487860547685670495597504584176912042389193756086647176758142220223540837590180238164616283811273772600919534501768648829942541023386192283069137379668046963408697820079742813274673690473138781539870800171225055557739380842875421745260022741677021528002109073730410238533099112636553006646213087814517084059693793888943290920645827389039221426488213420257828213277573031710951701748999076880663939494667941388624535611502504893477909299119181842837185670681229425228102166387119957291441450182085413311977780810330605361341749681034850307666962886565083990244139369813777492556548921768634337869946785792408978538892862830042005868264858559263172647932341896897572756265990990699523026240878245598200159640527717508110427580891008564676470532435381536794478610662021829551849475463211693067466905472659558625892477434162689474244833017035034349744818465371839400600795545091559338167637667299233908836005491847453587918819497258845705601911029298600842036124184917755916425634053283480931213235340471209550273818466695727608392781587981391389815659490595654016863526727018882233049875591940674758985468838469100209893645749986080350012903147078742603041425261176787750398412528378830297573459993973422779194345039058482364148003146599372559514029194096126660298490004293042658447067324666541579755686004334404243638705752996522922534466005194548005469520245593065904665878186488285517343865479803254956747496321078635814917588923030752308586684598228511467557491911311319315506325530198290501460557710847649929443596678186937529149924119436728695070842811705963336764126231907397738998149494880650192162963753138233065603690794048523006944124959899162782069030166497536761378369121683142443042253782729517272425915371687434147421214623077229228063226254252295791257486457764353834491175369416726624229500958288582413670987685358735365538053748028323359658525880433223908925676694104138618638877855690811815477186860022051804665621778660210331788648544590237410719693499403421119144396126313912808073739974353095300418405065176876522264627987103419786764150944832228515991836614470364698246573154636701745345064740332222455804250257550271789180382632095494314992782066569441441734474725473279659512536761831383519639266941035986760703828331240201630666936697562600311788328010614928648919348904947863136070092851799201368674146361824459902801409634008411841285384438421298897804794618351641813846191054546819121605563840183600826515454251380200417642838480591917339543766148925981965105908497126580609185336230828077177685587226434528568727743972820671039719244746645334072399038771074362243527981211552970732802383730315548479713541594517788253664767992090105261301394090480624304584436597948637732282587189984069748120000764473739613896165251409367280951219687160551097801359190226751608147966227997953841523438803125549590645911929361389038015253518264338933771096953370765460265410369959158661349302080044504783632610126081845432668492466728281508840574282239009899825131446060245759625667854441327010080875072423017661078755644143376370863007696899365062769986434969644299141971411216104312999478482485329704214579091977813746124376815075259290566502229466846965106681080081080703111155556657973246096523999509001186141050211499789056975600017159938503602104979760090611420537221243834459623738074153631772908111969700868663587052098299964579748625143237570510370662142614649264161026088951856095295410408272336613646571346945120346401322455017243592138083832255825904586577021420191848822353895557070406814642656986916367676860577840633553387090692475568466850686808391314430717453131219633190211526599306672925306676490151833204323602830370403877838454488636730465615651571079787243993796628917470201359619957156195623601125254585327992030451415595317576201297663735195797642505746683249803969269751690425026865517596941320071141658022718359312679315344581027977993341205319143182804816617509128267067364417962433731796291091287289714140070179809543332302656054469276364492729860153504811875273381651103062228643464802942427404897280434121583596581546168383171758509769777066095549569121609109638895610259691333065960913151225368559006266670769055726924308761547460628232925906469094638184021603136504685004315230387051536262611450215714614859766126578883422873094761266860147225400317750454772842334465557685258684769912584655875281797228500746631625429476285723075422096673223482223145138505685497654398897591316670475113943353707474720366885786614470256602482659373890328186329593918538360790815713138075594201085338624372476358081188161545096756809347048071127861711415006921460720004415615767848594862408443851193479277967181538407221160334619763783761473816671994049683971443436261402098434830166416195801991434890730449046852015536789112949284232178710415730910843119126559432339046810000199463979076854951937556828394540611103872275080780996393494434725724484867666787602537176960637656314632725390146566295092579243690432333247294778832825173089282848226851413390828648309990482933777325392369801929853359102748788465983277163682813282861749360279430129533850206300491777068062104797339903016481725441041188344874432014391610651447373214792356843336953933962719942790553837639151112237766234633534568339089564036708763921439310413636228184873857224430472280679384932372226780424724271655082443693526450708780530469578941798096583991837009343737076411847144550919464977245347081941678701204714593935307825744908919952389847608347565406018320707392335225419766663860033101316767370733275476880688607373598541492631428517203228018334703759457127823704772270061746420209601953683600332917988701959595064742339982494477103532325979185296686218170286637310154795762769899885619642006594912930245503395165888946713384411692289126070565613118376065006539308731677181969060054449257601777178731298027099893754493499200997272174618011868072612560756996562527207714935684316497147444492137271033641114736648179722094360879539329719806631887406684579963491405660941814594656614292742494956225930199405495044839544907620067596569508982286171170326542699949389285950845340978669829219303234974296360096293472012572675722964204015513306161815890114162599916480774006170484825053417111921249935387488507816515001064575336719151574102910269117861131446821110369574397601018685103590089808263930928147528542082043513582081414716578865763624915901267858546214632378180335122803362987456567662165238833188558021222801807766455817289668591776725558624663617392917701717231807557593710204405339280429512252073238472933443570753019045354843644904581056062115297147840309112426395597660084551038230339183606496775288806869252407951409011889501399104901068500021465170958646794692330045485065650164621623186253119716834125635941238551971739361997143842014727198844039773860081683746858945509027058402948222939727383383447317852983317352313461579229211428568779449007279267862437754284646586856482982076584492039705315239020411535875814786990107081800627251503442355173656579856057530734059569347291278535255064452655636065290749940952627284668278070672808328345757905224648076451433183041191625746864665200556335759451239538463337895599455390802038966856804150691584593485290380002049632811629486294116938564718846165590779688030734153160381804040881378369373809085925128215413120739591929805530891962018827942041004427026467602177042910617092221653787282882026713593707325377528093715282655659169866771696089563472436791587215259187991648229528734032081952015749096377204996559954286429097576506157282056668550380700299614336400043755864306980610799646902150824919943066834264623526206111933240903924023737776227497190137032058072460734955075120811909922383465432221302342123483400121517544186841642030838606553560553409377078917470691703972517849568616436776183962518033692069385075531361702750770540060186421985015530234658139655651816234506602925631314931283286325733965247266007551674502487008472795211439325193754455314255196567578472197613033434537785410042882581767432929853035517363777237237214030743541048157469056471965826237217459469674219737869353645111481798063959561724972001852206360940377922241126642051388957117238053907466109381064402113644372033645228866799606353978139235868065560228970927461954345422276134355729058435921295952046058125970009318275222165295278063860045741006350765362731217000379401226329679492879358385653952959205063670336672694083380373600273682422372381385497458007563777127121119081624039885052964627204546063691195952585113054890247543809992090452705139121704090896912591813572264396840344485655486917073799030331110272803093456753086239503291254047273987197077620016889718453705150553964969841928879007136828816809793518716457536484372960837039361469543747028253355666085360520217439377772127407713492289885007643075649333656664124755796349678897623882506740219012453427710877194692095249003904653405722016124719452607580441663999985947148250803987802252483792703190516237315307770807524988931364536751876435687046750706160134042498667373618095143465365118569335583958133657248763177231911205416707196635142120097229473543975426353704194925330708335306513529036495259994963716677179608377211696664065013280539402838694275124230303761235560845040508100533822842053089123170628984914884906989408190690760888486250434596246155387870076638478646971474063327652128478582788819985972503242664734844884784889736244102281664358284649808840628035048893512611389003427666861818249696279493208788698987894955771115319840799861774007793440437721835787375346172941250803303977425706245919242647095384239902692718289904129667123172127730405286725307294151820975249722668241411481300740935387143318820442038785132486203859536140868858056454497250319726557574220117145090544044460588633266979873722620501820627246932427471856179600673206438846932428254523976845022428420022432836211338637551739946474833248219681634748662373673656489853292275565393089962008790270257371591045132927113423616791533182291003018026613048434215136107029586350557830845077229463278535925911101354494969448044041466381445696207879268680742892188976401869603179019851659781286616529281987848262104614531058946666485913500031876258274097788034846372626157120468520976979867528243437535455284453190707100749875706474484974862805264279075753845367654511919873784377876507377180207557393258601093825752352803047237688503679085097722344792941191904116058056022839403744769823875162472558767904389503989782144551104662326413814442886352121716072259512887086002922194879698586674343251666222851730255627273481644146078366593508978879391107085010980825798309169015794375841644130590299600973554181611896139713718410321294673484918762429114176006476584525749743462825995667099670639852126124026721091525895855863716600500335880679802597799325246216636717408119791378549496905515461042487371152856155410120050032528794714241741220814395197823730655317162232222392672226437344849080167629722652269914008937911727754049773748623409939655320954587124765621577811079840625081963090701557734139018681015755704669337351420515222600490118415133641227992256454945116733919023925454721227618728427709402304074248501049419918673500705206680748039213771414347695158249749329917521175981449889981053826641079652811677692587794146842610333833384748108425919143812828053749783262374758321304028346414463492679197627374953968559175993630910356775273807420038417812827840610556858005897963032562709828945399278205242546760668456135504886929683840008834869606121328037552053882086580368425321862661125111364152511379917099538771288816547512379982987687514816697438518011114541554631524600999028519325780407319683423906372278944109342584236422693844866097512002783294403629344002647677175516460620243372928164814396292412854467770427635456420410253690880943479709345391171482032488845485067076062976421781092236070322380900650233575563640590226346509189873392396640267556622954648652768045289011518998374754116295312639872604761500904812330757874319119235986555177656694853407432308986474173141653762210877739825209919511974075527389013749347262282944081805886975136644159109383373782348745480634235019933833948149804995477856827166060007398466113609861040529086059753306760755055234836268768791550621824611211329646846246201834691570789158481775548859965675493387043446883825611819487449440377758069073790252631655592417303548750030913197576677525010591111844248907001987420540864573998560243114097759677739666217033608763777677386510702528107504059534787187061722873536294767028545549711369255126335596827307071490615821019869410784079745913721146316438208995310462667429529077127351309982578338256755740542261622825380671144479804520793329361608201139257558532085547375834588005898509774081964955052893042846735597339468717096433202504233693728347530817646706640116870918842270913477914017207167245874900660711693745043691104180075841795174923698499275861294092497832210730882202960702243826962455016049010153828003408448471374663406364098691537680910840809541088406258626078701250789677723596413878921122476223664242097996965067199201683246904777790017314224255389660406986127326713670302277824512490552399301672856222902074960316026863810461197024364160894371214988923943249010990389339803575216814215628331590339949187797749947037182340699747448167237508260699729303678503025013156112209776931259825530910988664226369450664385716352512383629426440024413048361364114004542922084763813495631405873146013251777063325675107351259554698316599820770648725158641872520122414594572081526689331025262363845262926169557493971746960692103596672490792560682639955630260306088666506836281740669991330146087457331156938412656702190543975811569043849709095391316715885103498917294529637295067584670963251370067744980652581678420170728827417191197366819835156690099040707632159529345073072919822970522660521846328174145619467140142682041295299568396983795555319824475336353756790891236686211503163412283940551742631330873030613394917627797828040477584845735734496593745567801472841478935404167201888327359916614966310073806149661176947614068762082699038023498404032775463820952077238686463668839748964287640892932571274713838763310322902143548749834355505369613915127027801453388985966887955937899570430794742052346125538505061422507018762921317629616698878994838096221431810586882722940398289376830952901138062202672259187705453114490627681284420574425893032126175492397709898189781063856604786821278752074911937422143980305271186452256677779371747177835335161678541523583103507083116302965103429696578712586716596328759242748139452885713881700670072384041081060520209148500820139273093197368469600079534260344594767446471093682490104828568663672656033163745759321211457215911299361695066488688727888262220402081283885702568833212601187108988992656347575427693935337665554443874248060018306198261786170430420934033081858741648354831285178335771026975030979916309519448889009073780389630945436263981187978101753874636119352945859387607039007838480364181481113504101940499258443089517190967013402177560860966763348626164474218509390895432875199516893707538366555131340852518849589332588739749324331397591619294638124708149298706483007996442014962637231723652237212456588466066393593228188548102586724162386767725816972428012826401018319697617404107758333212558117007429731177583492586383140148976486049473156285615192029076888926177027294753968251418192819747915950728015846502966163546061634065785550517250190405149729470995958379165509919130515783337310801375678196589661945045685787968157594329347553317468620732966698881512518942371169850785602938652301755907291799347893565968669375667205287627670055342571790915198207042175289380493126532888476731754297589059473411984028344474544492503420365520343076881542474758731235533674608412540893837820819704554742099983036292324467181110762074866114532051632977802231298719899186052703436336512319635938023723792252038894889276786820572814443712692806333530884486544981070490209986661436129206452962178966447957189224394910909202885571790117833190819024884420682335041782978979977333312004050433639983204600459673471029615074385739663950368805905044551344911999951227392470421205908448192672312026280901029002881755166797987248314337801224830132181010577893856944086280346790025532642571276862722084881036762805097817829457724735923126408170708419137897221985034210681880493495145629587893444714291021596349904452143801651116338193507273631854192774104373725655346723150823976807498184470035695727949956259995686021639034064604445905426714193615530684890759209960356942971847787577497477477446784570955655410255197588828824754126678957022507290144203062823555431190985749828428598272077103482078306987025675057557179642935350625054037227238856347194405348751282440959174923444666022215753199805106101208567439734912786819933701847414808724377296717904289903836245429229720779961011139543418490939494010277365636950207643287304835230811223103152346841977068043067657329649755184161580786045955663898577515928709361062351281335640322388630639242027841122095572405691074386809014850312292288397121056551262322527606944817155213684438314494154653684011187144115744527138038908616384614483248672840429695766273584920295986695453179171299658958308091146887114521322553846738970610418186975152017334974351203105552172976253449108411648218732997586657388954837444370337772179841419662097820091616943661734161154276519481319347978547242520532763323093963127110880796500551322823119152563048617284582891385521203378151083288565856792294066239984961460322827865604827166468095761266668157975888302811709745722364229233623936069786508337979777950598422483145529190298886535550626938023451361179277340921299020064510238770274317511455689965936024868864658398272033280195412508530034292438985321546690024202949039970615447165478358503062258783240967594869297569244691208026615462023033045303561905540087236673342377774453093107958112399418739867853497112379916765659203214283140247129428810685233919206161978235069073381841586235639096811586336972127154927555836436293327578520858332752794253945319704061228280869568478047575007361446190679354020846383596414712453037184422876392026036456533761935627417421124845251247335786001900836045974269470476103732104824521823650850396311562298105445427790218622661588036224238365949519169722496058921341711954579007140096973907151858464368377666217452427042009746233591323452148407312276031774575328270527766949054448760205839997946719259679941860393093501450822988940906947397332005454851054353291082068596626405390618488565657138529718299423697404017315464047799341579964468171028962750930289513234887720143948470481711098718781073571377501678758658647053939417154319462270801312639141063403623427890366908537284035426839952724204060230873223116862222468720140347624231866362925012936384949752911171838614291028489883218369625794406429537709111878171255731758288048247902485063501789296474326501000878815296803938912439605920516735450499852520296303142396675919493216073903987930585404065706107427185866201066377788059998480448506458871348990473832980462006152232260200109879450052189315212267732018818015351548971516934630018077224399322334664682236821186676782667729526145678976418926417160593509830641480780435927868097678330614442296502853984223327948792269529899291478248875423767693649442681822711013291983552503510904045080289168429228043881341980535304225840563562789625968204288522093110358502896375795492254842192349097624296504138787129689727021858701209521073530078910979540431974823452464186724011416002531438299547035584748497635359404550606857006196562606209944394088455154036009073120784884099988128695027514285336663465237916426035710640474180446866949946734272081018311659578476777693837117164559089981191776280318598227555341805263907198494239585601811780120820187815363347920718993384316142801289442336110876652214421082256350547814987923947330588374183311322631872413808105330717807053534570115408790445749794930927704603237399197656113366841482616823937694609601710949001006964675500376438680223390200421009157873261616904717029133791881753400026067590017347518437348901255463550511419294690441621422443201853462042882354753676735817221090855805595250847932576077128032069545605327873795299940430371163590833577002286092999355424103916270820395591319591997644647189341294580696254330082202214958135712727596420849984168664470878881057362977194077828933390411494294966721006236198800657878769111149941614819177496276572846904666544143686364950514638827000703528689137847460284758776215142290698063974212670348464111123575497796095471255327117374249970993584065257250581239779345019584314087551630802329130148150064732171566157012342023861553116495106806269988784060689218602019959894167015665574703214080967481837683673782597154879447595020673693174572520589801548428411610415574697630396458154034831979363123294922578015813787455820551156781117668452651848163774769897516175671140790534906366956159983665277997170756445363860030916070933091533831605641969508304145111561845749454464464509931570869397163635074734369264084276003486005773298776922385650403466427110425382532887723052051784080411566981106643581625500834450189689298882564503423269209448240614045465345974260911405561989310492555164244269996274670369008271713750225183667188345270837029137263458623302531789208283345740096577570519937612196673779573567119823075255843955352477834117576580243233471406324574212935304759829429740493582898320056054359800429251329274590428265611188976683461986559006055460729497179236453469439043644044169056076399905819803444459141448501321493901464758098857874839249050446362132488605054767804409713334252872100535765838130824592606061596495642349569323559303336680779003908924495184522972228008956858952905249426218630600566196734660968680237646669225722336663509714588896292681173322625815237430981028299351015382972683069991976119741592107520704950147210354107683565431995106981106330621097368874112183694173498441771664677416875185241712554201747890608534499295077971216743608753128433077129607168973848809856496627483832660464336152919188564979970277393254240376733030395653458861074793736281297246459490339344179914778215317624168946306085625874084201679581899846056259160066559010383794902331895928444359303817188561517429556984101439652132070324305810954565747999704811017384709658806765395516619068886367118181832326300520612581697666459009350601752591116627807097220392010393771268601369067264517091055466731414338703635541887644415620739452758410742000731013553625387669944921339015759442414138500443921940353606567623394195543022026755155629371614683765752323003948555574746425597083539738637627476902397004383929565794424137995963361332679966022254523084004083710377034721086585033930505068088699557031664360036735445909677970552980154541822168490419852484346853534453032066936518270246520310983308022270156484465325162880742314579181411935595906759040018314947392823518414125099776340266614721579256836419961592170462831131116520964002973768519047527188053729033938523655410015291744496241702509910215800479555436704779694900286010207017542844720020714462640984302479660744861308456796657474083142345995006472168797145290736947501888957033412638548221698013462062729556051536200329524961132070957869451333496379161081237299626770868689198461352531906860103263839810370600669673876888685468951471010446828963324368965797141272945339810298744391155650696872334758207523541032225610329248286054648424435700633208789509672903145309518844853800878267661827883511397807078471632602675420177278593558080125869071863853748431615551675951488564522234667055642526541606229751432919571834023224243271099994340789311952381790841793845611779555528721115561981858458469391134769972762105261326976012693939156315350782238587515003048646115410940035487724732912272931773148193417797036692251694537724201452561710121042020144904360149370854653345531398552230744153780551320126406078392456732288829817355495065373614974164545747909107301473273272767997163363531304785299769682930942093070846402342614080339521406062296501081512387157214312312525862007592250318101282013422659633216241329770304504889846507995006815571221307593853413276396774433053718359482386154081171535498698865552323414184439232105779616320058900485259717658641763388741055585970010482096102370085052598905353894033052790120398339829758089177918942985563217813001938925490707365448761332492078005835375388098515353783613227380513335890032125629488514096161094701250640922871366686585417508714786814418603383856269964076741333751780680812200347159174254105547124713829674857985925865114545303938749242671294528703607103564613180385109244646240272315677943475193225563997661216551787021819207929775709432808898602673341055966103213220374039535592788360744482013019382453359565676681562578242246535522336642512491543578198661746363475529340031015198228222662912028903250340407005738349267411879906057553300655512593698517448852389813981595816950874877613683108768549313483011469576110160310609630177483469978258878335472872541809532935214159179802551314309143577831890713884124718893081690719862165981136070875446571344398756143673522213203757950516250859078825974611609712007755774491936271464353277792849390342906406523489784522786898405615574109543016388085335242857550746767042555335530806845444437632599523034680188787785001673629906948058225518441624521870075927731924901904085469964739633945042003664399273516719105675780259419049178481088048609522058557096797031730900359629512266385172853709326699497315075467352961843929184513149678638545220641489770573609033107469673343324321108668709754177653723640469570629223119756122992798848456824697697473481693852164451725374989424116627496080888629485451579497254849553388923144908500797732089611779167585307737203280156821734850863634792253358626477300399978271951889416789749211998632897405749417479214928683173494462674318457875360432053531830934154434568027207164468819274148560858692757311160960311813049264063536658765587684072169390357705463680658847338936859916237401474112608188648543755857921403798383367212257276804366450107362199793690141827596512321992504794875193252957448444684885748140403934814626764880702614371316371623528481380266475763241122583243238299622458329098469936416571328091482595839354604565608173704423950173439361508053979345176026332181543051395775795505045807702236454705129864859300330454200640329846208554151298698355604248135250887413660473852604272018062556053319255988173683474888690053411890653122695321315647476724624524527607584407475824836123527555186683790081411250042233754377214739513255965750715079060808622382835708151042780993176559715163656849789590028585334761194603215550269421725666343227044526043676106367913573108355970823121250136079430447340852427769263426791100941866430046116102514014249217094012312287762380479719528106150815872957496118261700842362086976971129713964587206716729062951645346018314946458929130725000908168119788671974194745804667111785520475097415821244178743366347425491499489560120102884327954198098834972252971344741943063228796863940056276477360928938711945425761194701681611707249024681887313667166534642757255937256410038265349275116184802235930396141971196232089971794352313210238430240860354577656409504668001657365292674730915223950099076479663511206540504613112146360957874118785646637398019683218572048781481083495047867752166180856343992697392255802174576776637352686221740964711232025434447461224070610402985683918980391196804128131506555585714079368272651330917208576008026859901763073713398865279241822918105973425258601988772672379475695038240586288706864083253682573677123006199137553916578959072801916970580106179707090595678899117394612661037576008708870050334454203780710575099387332668184560129473921257187355409891485901237029608551378575892879346309317418136454009968857513135378042092031281853856061803587847604222226264463619308598816614959593197384067536581806357806996943688267400567937112011740057476830033369078445105945305273259213332199835076754398209393468485527773221349671417911426059954955344956530836877782980206659081449961428763886178644903924183173673479448518753112084366623825169578936451039984445707954590501037619568596491663345039491995561945431354440024266368811231617599336369535690750178061229929994511123714680568536779839339816827534927748882935852458879696844221672848767984814488532856425575514745670022765444745879427065755312524396627770645277462761461615686336526312661326138519564454669134666239540626260562158333347212553661540781392455187396429987828186062001107931718705906511085262785243264330920342479886141690206596092309805748095017241087908961706513736775790304551471950360566282207510189386077639605523182619913860249679226906261275789357463733903041465450609686365992466715879389212224392433841959895388674870443672624282291776378464223006335377153418910133890719898302105754796016410736270699014572603827365567967761972088173051710357184346378288567372254599321080597882520698444059688418825129665245666125129813278177389175112592884391941400112496399217347230088466540811995637741307948340610226144817376491922845751696467935225791561700679886157729761036288101236920331795531648431172559706406387793432484101169757859269944478996915013265797064494390525408459440905502898184923028826003702358200213921373084745363464610086782422330433093152133744131551786193452360003968866998506722680255297689803085558680173692967887293415746394610071290333010861332762969947174899141878518397728951320143821180951140568675846991074967451012521116121607301779001744278104869146104981321736920237352690657485866777404416428452624716530891264829707373537747458000059742511107024272557433892969372206200073715765048274287244021386257346674914774135971147827431987337377042192679005319273923136848638571643961440344307982084549295141550933090176690835312356894859194901821954380613111424488381499728937306784732924748090729699721054908552307269093187685205203501252728107943215124991067552409096909173423772964435023449958266042644287515338795412841809570513139703263820610079205987808814135405398799248234460086373278893216220059152030204503614624522019191402055221940577167084314484632606373364674761836935612806690067432200717206333282892279401801659903052411954944573176134855571499906737545040459479784217958085268130735337852193800413671420138886299443812567423045121738067211131959885669678794249161558996798885892109496941727123389409524222678817048632693456173790766200653022266012366876770543565542688973430918963107836831920602015070569827281539523848138984995027661713229777932778535667192392106003027221483096712010980969407027021865413967531499097988174499677296436492188198044808884144909595836691917436701947156354633058637275255361170038004203123901982494145182506537651603787047561464120565146360041167861037363191925892173113178510207424815455954582010469524007205048028050196762052236224111185921266205532278548908402528143189935072580685262199309162643145009025327227501750147527757887250142645212076256726175044696991794753553075101962167312201791505864719563299775621476049544258166036354432306883438815477642899489647969119260491150205641205710295241441544835966670032000672354003166368743021320526723243049771921330261631842733281910528547309235941953272950374212366274040649860021505296712404147071603946043606043440635826554758814938310872080624183558716598560986961455694391774366656689155433602516479135700944440654026127516913766104532362449716585379060098346575214978885388406994730280857558625164594549435494859811314891869297506481720006270469333002085807990950097736089375051831052854897890932418114907822821575492281417169430180126401393393290380608299889544109885754215648014914501998553434796872856802093153365471089054134177302390870303488491089326724119977884342845978693146573381891985767462280331984365229783404385507277204663651740091559605512974618236056312364281259112795399040051186774713884268961538584210827151937303102053860404465752110191509365703366102774298362156037106636309186724868788583230299298393325249082893776593167127867284771261884363101873033317274397724091263311484933351234032514687865711011212639385419340396957004633493897107512330185633030308447730971162210888045673477305741444666957554871827050343001490022779767618317639925204425924371060728099612291407831865552799351400261267546690880196195726904385101365758960714337829042159660785286169522203560620023342961745525870255059689231014579454370624461355506725108051102614831044978475944006741781433515380711741646046752201536873213421963741275551121608193852727081259662324975907138484699103694777830542282358012860750361916433987417041767819390845422093797361710473430031219446211686826264661508182372780083545814929524298027719263950733966058553004758916636130476428764084436239027305552116920283339689955975062373657256310198992667879922205577830355883848293257162562311454330891792231175135277610865004597698873084139842867374132511236154910059708694701058873681456278875309862235124913896461805860129786151328961818396208727392462970326475161577532925668478154348608697362068028327527547293095470661747086652449189764283277360398463789022497981343640046910973417904369929177011994639093753882555670618099596670016537667290826724860617048754662505414651961889142753641518957729677844402444361131729963221438405465807692133989124725469329526345248706094880129616066126896084703747343990209447772021099249781067246629781265392684853231792621538384945231617693091438881164836392085751575533950167159201644007345766200852583705658137727876851272802361581405414664319905367110657831974130489798810609881422316838593571120946857065613013756722223747697463088752545460630627891863091803014527416857813929205920360013036329041170971040682058237423322172759418042366494409546652312787086578529118949846418983289910383406889058659666996228797497665034884946329143410562901446283112656946305258877363769971027110718631943916700149494625091580046620658501991014292754092921383056411807865665233476158626094350077615675887640873147091802213436052635132328930973877724950365641325460413546918494043833095640572155463241085944698613948218219163308286655270718248166828663171769190624342718538834254745551988765852998499536574320412450575434271215845125852616569147141250403673325020676140536343439397915053641902303576183945149797311440292068828801700336558254151581950791606231771093715174308272310792438099392904277700711501172319231129074155108067957826145054994959647204774096747393395129420831051150411772625604761817132761342064772696878326446507329317016410478096818711810134394329344174708980160241217949201717320215457821349998191326179544403012663084132379666625113205293140721490503407000530979281491795526400469652239659544862197736456978663715013419169695165316519375564630776685055231838897844792123394353748469623306641132989076102800079770276132014984844926437686159109940397599832626320586826429386502538276831597869309076408844802640756884738074102729979623437477108033714245334328546822137809340861803058024201366344199073395680032432165949278785224906439623078387788984856885591974580111176056660228858247947960689325888555245341064556079437130449544900042362093793063296759437595209662687199409961118736913252876684589730053362097076471718215988083661952374973556329210583804108118168731174020670240082037773524470140679068734407724601075594073917411597686551124271926128062470957955278286798757212460155674799042425622768831902542164879029735603678900116058047489809176944909187859006259864172808780275298276687204050943955702830401521724169821692759506131844179027462814836734597994384237276504143462037803635980954470000487614776216635015948721489051438959223574650679180981370916672319806414759454105607374315483065758098036248553115337838975484232466399112523492842259412883477174191564817750696460646043650089479994904049880918321934311648872149846519070602434735719895186595695668290371767006552730004899736066466648524818382088316870066764586785562151585495570336617509435064746509657488736679922538693431616267294022711293828890145967449836455649431468924513125060827821833552534336564627953668707167589270299992031077835396512041125604052321014075964792006641530636954040151910272733137584172696898830548675950528921132693355759175502443099830742319146821479015674767990142201191109590294083244471330663866285704880385812762470187053137028439586411219551178296444160941978575834638114283801786156199268466248737603904447332056082845013359998398727603494067650821672815132178845040332685891135054430274400007399578233414576020961135510721665506566900457108826587277410973371399654713993291754665508072513493763729369830328946547363893293370036707526215323630379006493842860718236454916097955243254858427777338429354522815461858773096398445493624084985433389981796741540258800046098314518827516939945804938212134727421917731908897823590568596119252676685271328772581016192754655461061847699905358358110185201747661918904001815884325473521202446721041482800757328559561487802488120910606542429822623230877213590142877437467486922904091031433115190090654075237559769817968589269875768612876773405531121543651449499385487218813093601662737729244676100629594120388251382140882382604813009015904126201314395975920679222120385429856860989898898793344132274856528250910503251979859516171581485750615166290247933314358436617302198524829991750116986370778424910174780474473653080247874182868188351724681536929778565224256422865751076064962689508185469267074020923330031978965186122738462764671215676002623790837460785892096917785521867274855659929923494072685226912789044021418253117861159969744397291370661825442039617958783647774245488686950318187046688350866370420035117050228351438966284697979847637732485770282559433227276011459092092921787609912621022660045630545073787530734455204590464202573544651653787131366287911430817286840646326268363112472121273482296527651972787669406195485498742467929647521245008526825871378288856973470765520397189163534617509126640274903628435080381650086418179913466861111095298926277443549889666546093593140417373225710799255652010850871377684670417780136489461831185013656875142297422354622119956196904281601418451350012225933490167837020020032919252274572758735002304813390954234574101269761983335232232816689458067026803884378558198990081905626406284275632201383153755598007469692334953383297441935980042446585272773118608405201069983454933861005291396578082348061288005911663997707709754366599845064348065360837468360967784001979397552660525067730822872502046962905188801287072203888281815813039065534552993300457211700122816927342715226242138229178226854655068516060103936142394907589115415955661642479828335646669007763804792130487559654214454230657773079846061522568342282441181725623088358172228872052760114196456747886635240114188214321639579205028086099484908320015031876850044576900924692478911761177837491705086760555353242715610382974102836694910940195418967456390015136562895865444696322951508234947876232893998757366555171249353020169339232455469760019201236709600662148029226164486640022119138966351597228843080725002684934388354672516538706061884430911702474065996111441705219046383599636028064873314481022849672258716142654944890530506234446332590650809673173646309634986742984258414866116913915469321427908950548595208133282190959840123756900546948737632022743955910478862485595906488724631648426777130887363817191492611177112527025971069360021287722650593892888982945453962571703151747181444925112013113830416025346606406072357586443607188560148862862151036878703375865057929530932320417468302904113698362922582238111277604237269579531934226347497593181446093530394023489655540024626247254142829093951025393101727009330667682553817818090695949911795638490793634310698728928257610221753218827578453062288851333859850780210394023482528064023650053269545142401813801238377179008508069822046096685009670173986286937708220644333160953940042862252356807933197577598881536646499367955072930883964414356533400871532330892450248306524942248846064490941441480355789118033423528252100643247411324451945387673468401557612156394244209809020330126641831253948625522811920893059897289339876940226169884124125887339457143271027480631485729438768318613005489198902383495446070075945624212151675967676017665421431583919888650522898701751001177310674180970758394858004528989503675700554012210199991205560989530220027615425707951436571355662467874554455011594803737494164390468790337026987400591811718459779057960978870307169459054472642640607850910958618696008652376587141352638300208890691730140484716998543635784305501537506055935983686724961406759572947900842155167197327425659457580063291274300461090338483049922256709866084278654156108512072574984909716941211094352179972100711856103821184077909744583133280593540251016233905197138114360213209738908520976558278847603805523503412369048151162431233585811542042832330602304838199824004047314616763585137493518406766564003195374655744279354666622126682821693453139459142954532786994170309474774415839563139480762199918156926024849013308872362136827392196624418332074712374928061310076359362411983868301115453184843497704305188177622602168428368700267460409221262147725378812174296372778763868711636321583012716498000542120768289512223020734675696485320770250184277427004375303135228038989432671493478624014516506310822553533235287548220007177117124607745627749615272554911171345888964902195966081562569694551707293956809862859913296889459434273523773854681650872975718953894717304746145560162483472705264763256063920795809855313776271579048876384988123636108736622364922426356014989108058644934762988211092598493061941575091711237435375651987201556134114236881161743511398298046117975917283694121461108285551891782861890981159863829445033944349475147471673597801583556904166848595370941680619487961816302815955737129776015371830442295019694434876900594290167444242254764512338652746278570598696699092813917636642649012925158529637459594608629060142860192602374228176315059220716397670742086397613356436537081334474116645455750631178605227844019817215169991272594732630927006714904322788247356309336706440683835935311984105983899273271031400522399703495524491197853667042898501107213295811074598200714081322015831377365900044431115706455090804616909359557383043859207127714696307151929753337220050123036787565129471620736831680171380498837977145985013050349678700905447837206305577449533784901955672296504985583733893797824645522285161652833323069315619876563674233578563643223237309652831125225815351951688725466820280946609810394506990340126301410254638132785107285288138668849816089956107947727757796093231076109727899077706429249118424318448834085064229010276338103286093627120681896666865955112991958313255732693746183872927851011001852759813980590357070207490010070427027429937617185953598503163595858251572348366739962241630283975454733386507762706886190014701586517684197560335857775279224523091551607826640655948001869705414683355162150624988591623893691877716865635497028281424403508858776304569688492969259084146530510634911073165932953399571487891884153990227520351390534563855077148975369242192680894620236060448849809595197002377595409005721170396760311585884922351382820508750575917037602735106126005886539373124895301207436916660572843110810830634666868096822690633194671286995119888208241399632713969365695906156952284700526849842202021702794289627609942125658137292150262415259728905827140993063531742002186969961637264066709697225932339910176162812783214413420419076392615312616457522685045033784722753524555510319919283977165948416353939608600926244830291261952187183487540476369837446039149346489144423583025514174086262863877733496055309475202219855775462761575881685068610137578924865322046435892423761401805148999878871206133772634315346460279074073824672963693452165783263722942697257718995018518293119019862921139277980288680121492037676356614943776515708261067351811320316427401419591830339799275407682182982164797584521309070361403382152939699444271568608189658509756794267451278221081323095193823421109898845811830417308972784867588918824182004437505978725412829731195349285605579981871882889761192680455251101000745412070701407145678564231735502962817113035560868263401511467566064123820513619441509752832984402146098548907980929312662161452743030694526573190316553861628411075267264721880513382644221457265756978602811337853397740676344186641310896209185402124102947529358580974369389375996113654964482999561853500743325712335977718158839163023857001751778415507306788579471829678032552118045835207189182245043870645649398370724514088384674565010711401479943637721490151853220573040334875186985773972287197361217221205922732876242355509039834577509045797268231247297175857841579503389536431048064827769068466014419818437133588779881109305996440676840773651190026438424299157577542189140545803016081793038006442715493161277457870198473327747272575296530425466960753302162012358728435273749921209804458195520199614411972278818762485734506741441288340944293620187443134720289750063593196907969755693597387129863980858243307559573072033755083980822769254627875935703636488110339854192784349194205569836463331652815289164331199856121346981175509269743946782948909395424504696526321279851196347980325570989281741318283464680744533968103654388668916353925216371542238622325357860669341559371885798824933471895798299543720550428956776801457531485923151022474142930216164257111917059433270766043281339874587892335560384138132444195331009309348156399311878318900725153278166701739399057770677369271587409663016460201732805720177295905016984083419007183910557338112347689739600060847035757499624260158041020195676715785168100769377353032428503843921229273501941340536439906844246013888209128990425801900976627221277534367216485880024328160626183067169323285670477231566342904297833458291800075500107715093037369337027454232859523713898215185188910611955329368739047035807377085970385621342399171664044943298060374778917116676622098252206897810211920112340581010039964087346477442735051455439524597097349725034988763441567546328257596032800998020275254496474217474911272168393770862147212763234481957799448571218570283555761909786102823575693668907887815079867649962360732812814558223195193361046137989589543381937468838695751497479448213362136654684794874954221277331084783942208578391223907196035188465163217952742761842978137187196623841237243434595536448512343907539927248142134444342395499190781593990025111408088127840269861741054965381387569114659718103673865083090338655689626269997918405303800456147448655497309610024695994713178039669892977695320801998499610957020223066647053583923349834820255242159666356505045913803220834965264707957728376650170518978785036316442350377311223931253036451362738095278696025853605447241660271239838825947102586191159296528042248005108135053722856821975541331637069004547723976144780299186936277474549140398707079978818114280049635601217624216684351794035269781132997844054312991976069191563982223363790591438766238445089348120209575113384486782778430455882504387572997596974940069505701572429543496023986027132947495885511141211859137772829855241240568586691094274571843076231737025717138942791636535215661314902150527068158496131432361927164011116802892836994263918729861871656010108904135935925982827590962241731424311916001128209218773461886229140825047718104118397011806853157526250025257563618487351505678007967283203796284559722346226766331656800587744984612546396681199253147462285459556225047402131914244238754511904207226838261503617829899927794243318494781757406247997176456415190107021277425721390987138608638271589377389023089122436427360294159734655924814185844460973636555615230296324567367229186406369778759358036991516832768974258657088679783724504317837813299365515691326948881514584330257139844507726084621023124172167655645193750995124763362220313061949017677298598220363171158020101316376582855234875870379922472876695596707742272056726332386212199342077960277466813469001140444173943173752204560783205229295959622775976781828680225606180061399428540687320667218423653345843585102685391151240088162231715699764774389604413462766566249986792392014250588804080976617273443507883855803020120729327888635066082372898266459559754927885125128322035836568676934844126768986636539013046852787727156343422787062694908166879368363782292106822618442210342521878658264884565462745313504975546467478529281142395707753939348322396660545123876737915210180525860810521164676982875054544360158864708499614471049516592002255986614202715026072532715699763926732459067338751839872279361320989311903027370177771029687971322030809158627444013920667600918332660078375772400243614500727025722031480656429593593960448646334393249940507430447033270456237761825759650849613826603515941404004212094857635827640026601779915225804635482756030430618455836000796016821806093499051691680965429260480196334089838880309853821448435036737024175006226295232816899688793273142514184478111968968921263728351977786314351501422663468290229620149702061575920687479070749619373890462633668277853847199552987586486315084471505001378803942463494503595338760363536428795163148243002892203396065611393718598535914219366674784863398063027087221238961784923930745308053350889746343505826664996152855736141737690139362109708420748072864308176265750112709605554208299167051577604990958110090096050768689636845386046015568659567108858413048498846602345547471848978910486964443989105587163749543218279744076111800588763868844258177147411253272269747243808278216042641896301436192317246872693580693742570596429899062607005569576844241675610120961173347589281521493700927279393651470963602638871416977153332521558635999064658142332790526223135863196954704878558435521783637294283360718843747570929918493755585711740829325285010154242802690559136736738663687565767420222512767483538155763105728613930551754435365852305548179613920245566241205220231417350563478789335485895122431665380126799441646560139947445573557069884109898908190433621647743961288902996404242334079907433978758059679372552852529026377934732171859383342327166889236788322303238016142836212286000345998761204100025024095952974095184978379850504475681466956131913958802867566268267072400435096487298657879511835308249084275007143268615702378918553317209594689994281517317650578818285355240726609848903316688238345461865058495092962096425204387289865071811553015981200079997572303955823204455228671754985527366512461550585426866956039716765759449698289717935455073504450655246852896848404359842997400573814575863044998762554880126245950467948203693647174904268784373785179418765748360621153354460190495558170606901346847383337472736036786740098986048137617172309538926429798405430561022826891654514973784057233218600758834000908262129866555784428648459693512661145886985739148978890536746566112235891281163045077681633564591364598001507421809004054578967701967504886665693101602341245979614063287645291271044544582721401779770094089449567664340430123474335290887254387254788175325852951406550398945866019450432359998663504423745520779738748295554007628397391485790766553730737901468931273067830680444936542770591107840978102445804911590779857475646361386433999637737858316815363909392482127703384323531359116720497270359302851664262312404202564405642059901766060382328324206284547057173751974173270240154007110114782046537492515189867297913658218963434940821991741569196570552161691731094072408189870396806095368784641713563435626339598467571418854762320225790502492734956297287262971617982161563715736692906328684146725769277427482682004748774318093032941824947607865286295086332236207397447374441900055148976228853603666837999621120695194935260454786708275717843935133585333095574778538621359050761890553665734586800997883183524125353802549026857879134529790873286127399057640956797541747887399376572588876259203509002960564071709629724934987057703880786658521181264275673315859102343594102054980537992525071803529953087685690330436438450343106725799833401806997096316862298984935118256109500446664988446043320498264408433429868679434435536649698396228769762150164544855057010655437230828909306948579434060425753898286982291798937191684183454727934143420165816386811022153413996094276434366627691022062596514930973876278037037832235141950644122296417052700220158185112319305940810800709340064945692028430731908612217221875517037625385881452326105944125547485755287206780165454035330405833527939225067188276905230833405988698466461551161135943316247267374809671828031585994313845798960028365359427198978790332967066745709878713523199348616176595434168032155341769114254439026896156949714722988320024534651181096498616717714333904042918338897116773376523322819145678990847248377091273167340074539265134059123243109037289856188391623908432047292410806343330554420532811531988984059439573041982027774397952021895068746234288414480655513357088698308233172873840938393432710408099362999053491657760658673230591604849846776744122034697967834871150267590973194949910014968340619716443167267674674869465554187745893033473956743779678299455570142660607698619872173814444405613335265514805648860424786694298038022569257044132636541071926688673619289256585101214320566307879803624009926041796806781458832661548443882052940051458634239550904414510282178591124763660689546210919016985262919354803882399612565403526189242736619540810361108579555285922203351205744612441437106982597840501437971846482489144220197719436373020669126142574031639635518888471129071080145210743442275763866200384258557083258619579110876205981791375405802178287360236286721958837932182011122400018981264715953436316632869376778218713928296873938394069398348056826931561225618217295592474317886335646944910565050935918934135073529350758761381908235683589843534427166851721390220081529231989084060914375915912451136587967576026969238056525658106714150412266400837222075590366100328337899355437979652409019192089156737686255943334872429882407733902389111223032404012102635851447999341007561500537327300251092819386321112494854440522294084257389259890442161751735188475037853498436916710080797063827503149861749137570222951992220689734655885302212155547206955754373283323026909119701356073299576662383978533059597415731607020532368975540624905177693623772588668235908272212665369190240843084832867034472702861996278557596804551971907066733820875411931909462404226645009262953314298314043128421168505533655120935079319658799356019783278402388758931258224476516685943822167511611507963392203885418224186043085760452008792515906557249487957105275623752112725199846463001907832380027068042572742474388405782755633973512929631402816112068310237752593890855884573917201888715339536609648398954798310972124764186991688569848035769623170319477832502712418417105476278263376360433547938090444216365180506453456298797148841022281113388744112965437831424080320511383429434032624283934956598996749553945826763734986848934436503824423121281058915989409167423050048628062968301046287244675095754409434854182312952137286731628671717767436723364375885955277597255620814922527202034870989112531000400577429382243253813719611091360626277393025110024543591585537049708746753892128983278479371465548580449919130774916290446760250148343821645816181756390344551406172878401983879383169745799690171571598628079651450884831441869230508956752205582006326747837011799515174016874990302802713046437873436419042747178854367205544890573526176430558911440870161839736583638507981908425918766629832168349501483843778821746629463434168082150701848081787757157511973142920857664155258258402441665490302351375612316123837981289929157637175653615122358029708879963620049226484736274509017880552620901882707078205496245851079593256390753627889210617130896088609758774062917467577355143772333493655578111252021566206280136024919648499163262438486161040411869812419528924927824531710442520861717123574635047991974692847099379894833935221368391054921530621906948192295126314741627736795947798974099521872633466052747664361290761923440411975201837347360635658418767449410510606346955401700137119528210623455881945639228068847052416113414149338971713899587289611734846811189636416617252058178752990587719722160616729122561039439007631031710364425722403589122585294798460090037609812991304471791528551442500240209964125847404180197199531838571267478253501723284616374013903013661146799553697931901026455719336526325531858397626376877334973718550013074601454961253959930336782491071448461634869619044110152032181602839091804570379006606756680919830652847678533756524733963647212110196804644319063850525799393402741829863461275164044443311859684322458536429163560414373239486774615566500777329154985566850962498943266924330273508439648155675428228629503830108001828300761149175572423392909690686983624787821604614776621962030874825098726557161995369287311445796520182355962101117148308726613603944628955473795067255671892637635930688392041870795128522500572408000474744716094465834721638329455666420142320843704561228564325650684993583048555282184419281295594472645588505828711311317884456955450651791189822488841853204269929452836106049187147219716470039369116317212949533264847621509089918816421633863161642202576580947700524991648608483807116832868768714557383098488149551858464099474599833597197604849828058757483872651929893693963791287234266395446701346259191737740823946845611993522583097746311499215373180873643458003999244793483890345737598440721509916423970863525092303681003687421017965171398406255762809470734444128167533225339066802520408774732303705505450779882290618814313602900366856190219287550407764199847758138410079233147065068698916111483478532115156025622790469362109405575097631766118497772313675273114167205127371453142231189328506737253352105314864749107105806765474304430240783263341150621293839081444782934440609012993567436049150311846905157449466479996814561576712661710358475518490587440631736503348730049568078852987751844618477685606669761720375372485581309867813356354897966760060381616456547127185986515724685368935406149948122733999455485025395907710404850996637716647078658518445199976358156181235774083610517250093729441903298329804800150258724040812318794894286103423594567785079326227448083903688074219236057271484897674601375852160617284558739685924629095994358038352737374679296080403347761665548760045069651590520742082831347160945615114328918490884358353059263581700989376719750410774764313158105833410253435201941865733053186476111392417747492087546533238660682320023281629925614038767853651072770688131732484761900283667510495632878181377148710727921511425076621573544869477835289502946223978848764878746254955327093020562460186829538454860991739454246529580470517094318010405705475643873008557916609626611580931268897057367781822629696930754024167367436485092723098974936483023194288968315827191151381376712921188447689567378242535483038708817866767440746287093587160521407677903030036670374789132525847150986482110752821923670167211485435786728638939743236917263533172439181275009435571071304314190550301397515864498392183653423038459289256988997205091847436338094989615024432720471790729793318255604902132663034665479198449744072384067802734358792924272607192487698107311057961451917273230948886512369246830017313252191676210998640852042061348992580945235035082250105064965137108915318222245716745618750986106292458622602401424260199461543177877846284523655629501908123242249833815076017397142210381713259164416407010529051943072311602215470209318031801218908213402944427064257829548060416714369659062433341942218947256528300123635860772939463957201182825029188864689569874629040056187509226525278974444546111980356723679989210174302391960358720079528738346934080763370843242067890090550430265433353963053214202452532895950645383795166159012622271775338922243400759251605445270203373907029365525525063436536246811778492033383691963402340738736825128037045209897239912055391116769634892615213591135919388799613611581691140573800714160480532124542293093592616338341459619188074939343891966071560350188641965032029973701848832215218394977908184144925133913568611176274450173413668483297233003896311528576769009799839108949424514584261634864251811510799324416723180570944164656330133433925137097833931861878878347175775079854294261117191067829149173544054723528473402404410529001008571566472051144467698323542080894848233528066778540811819057992982886556060963496502303010043143330662806338789561084899714243742911900880954814663204849565891040685776982400919416493164114151852489453795945624815005659621832699570174598239447485510828043785396830350189641843099297759803759263091975291385944425129210889880790978674780902160274420624587767422510107365119582153206265371470409289594858004553280645433006079734784155564171744159812149657724807257381486971997043866411138243322731473755242381164900670298112129577971748981212654390470771179816114266161583724632762075868057904522976171965568573049480136458938571458241074566213898729067589919403156263846947374918864997129045010605821706759725138634608550604234575308319039609172253834501480577450121562073348331287945482220336716218994967612862443893191132699138056647659004509431758320834857860081250195440565713771348005183602671242656614660224630363147073156357193297897500297911419807785612540534502244264102371018678836817760178450292307134407564237288737651238747495752195431325236523866359679381812197476962463348419110079286152024048811683459122133393649123811048896830161741803880156534710850129341474360650933158955739165556971641621340859497034983446538578299327347133454346755514864520955175034707676125945428237573294005102882335304840733512690731709692798562979838396857556698939413316648399763000757138186602201924002455958385250133328503639053514569808719497242441340562453000015131167349145990089760485879847605620157207017652812245191529410922753303074776133516388718182747706089906605368654971969072443825799715213752027307393814485607396206417305941353854624414658855787065492439708389284956724125903197968122069576469945408682837241315806016441592536979517826691563569877530441847703293506933152398633067100920719122421525661653376007032726730623292770968277098332705164739201530900510852326650789117413914100245432241060795047938476388445948714238199073557152944858520299326611487950870300691363788114123246447175069045874027623577833805510226895188463532210739748402933342220330048699913636571428719710274011380441006517302326149380624699550442719771449381547814006567559847419413499895498279348495940639908444475075532485337351089365862059555475544592158495230750274385554340031435828799521394221779628029403016570946620363762190200248254743343249985507050192468653905168873001087775213278199431542896399728371111458120742947160677792295071356945565939246677500086678741563316901897972847161311363439731590403752830026198840139783727502715085405261440718863725410611624344069096807998806216503498792829477914872006272245973182706686880851104449447458632965409570665103077185159527617757951401222827363999695908841343747970470878347293953540709810663164172266227542528375548116016208283585526148896590904990545506517104675142516977187459769820181490942741250443679031319943541634055300509651423049294772496888892135781026522708005360403610393208533894804265089151213789564652706392055688248746142905759259690761318848011961916690416732612232632900022022681727550221023469367130366413130427879918473005113993091905817826214853924948624199540538930614325707799861408245530831540407514283792989198159667492508558756725540643348941239878068461717147139286726229990263759280560809448278756976044454229290627688382014258232818492695614428205103089222139572504072867687248579233859581439541081977619941832394446387609320716540026184978939316594578997673498338296003052458603534109905663067320631709844082295637911240736295451268197497605383436313688819709385434866029781631075894943694962606639685837297880424992213168831541093370990560009424150016165949492710759774442980340893064472992470912311518299429098946432686466424310547082741969460897710760766166420652874065194617007341832209181046136130051719715759846636720831304247586396219523408622564619613460314953437392734189554679630631639866254330353722449144684589712950825557953730060457984592825148882404397350749141940950847660524649774697335704200806567524349876294369895783161318547611015964776437533123048558480060637366044223660398289867604732939221401160796416631923797152685141129941159071408306449014278851582406059843603694864625878381293126529751399588561611149485955606158041368550463288611524450677661302178419391040103487679535675894631187464154318585331276775986375109929792402553648856619844041728836359914689777644593158462061527128984526350726670370404651104480614752675405049584507263439230353913662169560463902456975143636819780860971678756115239155011376847209525370068638082877262015824475481349547175261215793081582168351753990348549438021539743667680015206194837493290095682544364111242449849039073663510007890579294104416868778297571212925531143640783885066253748425541876582719612942000929736471620353050192032257003324369545677647587256153790082920916683344030766442585302308743713313828070666905272068676826422027138443821180963162058775477745975100563704391721056634137532442802384435500606062788512996919037760580158478154863207457069467693365591069167244727489496753575112746841207619548724601012572865617844117051077508049775862868496998338014032145104259546650870998766676489262008122387810030861783211404893827474472324979466827020797340497058935484923107298032407215387911983187911121710607169208081455980655444323979820298729183301421193385264382566561659599409666123422786640277536835077229088396586020213717036012556550373136467695830799580785880767213578334571555499773700454487516996925662274109785777731223003419325428818525545347666482103654660691436854482826624653629271162175384610997608807832834212482322963156069294483071627822510762225196647840663687404098906328802824577189633280582201723686062546848597675295575652008807167361470615919556857143828978664385061546215444466429104648153500793862357702170755450669081436790519351354588765853100325640935626625421086513522434368902708378334899068914307301593928146347571975228945282431659401540792697294095738460693999584821098906622496957534769646985913511246859300083850701978955681237454971543851043911040879878273980870796629046219694707336338992660786463342646320656317746345717138962935347755577578558710404589754925937380949135634963461858691692412057910750503885661026905088631930900279900248008232371443272307812366252823922552813194885369610658644848214517299649000139522399438198233081924657679894723099878424251335647631402793335501247160214260977366927703799784764272689215713709165822980588593866360145227655342471670337339848166466116415765752087401299818138930386192317435832699948538365729766999132276714474630358146378517240162345139624765443373085312480228622924212709715941615970584623294474614024687826886336964196632696992463951944717508808190860013228355693141235106988490548219892577172918307245520279236247356843982350775914513797413374088532075556615897502453283369681060877345378690064910231783692569101487813253489625581478101981782531967883302637551391303942646087143346310178529380768623724305052082164347661457048639680416841732427197274739282507508878414879076495260484695034512813246948947199381695445650206633567822691522185751723357735028874048634343060370290377318932423892331633778835475647386074309822561643120216881785238491403656379198775649888198486108043820357590158003339177990543714287851770894121977137368993976050039031320904980283193095226668267445202974848606202467076965215326310038409257892633292887114750161689166148570168767751513248458012026672011576074639811170093303652826636340966026281025309088872646208027191129768891773081928632215664289043488885750260177702551436040684936129922114541695817360659321098214787983236355641816670514489455132918279989597929137079837562498631532008544488248439159601173877527596172169378292757928001308510785516199327717498928916464746666402008320637328119564093721994343965598867741335759964196101403966321976299000320200163178813545520276543804891744464360104013196486601561466893864748122921815158862050629681628842052875634508108603106217478627103936426301333584661137883588460257369164468586435208435249514154255360287691992914324283545475452048683969153381723751758508696050434993165926790306713906156580916136910350830964266434156332218617834720368435332534919501664668395777126882624862887704247270316705547922684018579779063901071053822932841583917468978667336551618582131118776963546880946037053815449053368990253017667885385175342525393967881012423624548010321065714384027835798632834099543523163390294131181519000685143428836439734519565635723620911471240574901832761704417184002449775585870210609628653268099585541393611518877429269733689489353358039288158436755258185012538541405627817470688909549864729687891375119645682977583945276494711198317969766598226419874819613440140733437449832744097412859859111386072185331596585284500924882864385856713129444648277676750014141718675546645647785803030241519059507406632558149372946598304415632047349929278680271467326987047836185947568976128647700127656142537672775264686468049782151534712366467622674875433576865495816420937363109235338407455657463402079194017871723308089533460588609448401126719853645660207422384053133287349752660131475795568352281299649019267120675144802471563719935582273009863543648459738399156739164494162626117565471755888655211456358981994901787483418653907776370971959477883822271713235270834991761963239927325189105068768899351247573922623421893915654284191394460299240797192234076502798536017660966448293979978174371419982489361003353183624333610995564680540702678531649895860645028467511335794183066988798000015178981047862314481772098338143435423792566525312149011015103436544794873847301067808395277330972424773615447235188939636351508532715826704787644087500951838638589808709890163832969304099885813609553632897794901896899387400535293528214445286348364537238829581729892323683831540101550693353216458459942756372066860430444493032120573749551944264996751144487370600590760970225390658367153212463340239732201251665250465747088700726070194136618900295287039980480990790648855818951415070529981525234980576679874415045673269134676880064059403211427981131357899321748335990991437261057476719257869601806680995104492091956660632541849370742142079909123174299590619146923070001478332361124714052750410585059334686634699858717650528013653454319896781412682584095886020619240796233687586151354719137592152135735916594608124012316877289265074757428715476687233306439666001874054924494334663797563379154728143929180782661750779182587448463018524261433240719221055964704395939111738940089057691810442563971583480844033271607456989718845097742743856396769435250054268252638871055212502742454109889534651405552275412425142690103018530537525102454160232815229684414707834179882260102685688908341897072284186213347064039829874369066966476491354995308569375608284864371508796274799983674843809293077187051429832695454659525292273115450773751320872028792331605141500075473967259018236677986776294605783915419957857898745971352066370054607275115532764635276064388203436817801310729825032275430849793634588887203322838002280103807531257809976288363051339449151809430864123713683463227584423347078610201453312664293576436897284134753149976787255021102695551750388280338017214272835880299269566525033951322202591127283059670149866966894649318125127885620117637995275011518118427355112554376001547502618222217923645775059339836559693490875780057033907573139555649434940491907488566486748020062632767239502675174009112366962893327344745458907649141896802103358913824563891709632629525517478766124629642451976014680524927129247651823152725002486399703442267075908380929027848897340019210571640816681289592429345296594183659373427129048457446198960641837252568024531986109973295485198065366992816371159407515602833839944374017812319208903117677726852944020822249200522016044166796937718941670775934428649120148550627698709851525375600098458421888818635025241301410061019667980226766232003810901255211976741074611353453590534205846611170592099758103062514362159709888192233760448758990693770016108416789640592791036468363707805665133838080119400517285329285191856292647500737127458390880756032554574892147054306410158315396658014520579761386108168624597257842351358156614954405335177057598282244972335829981357610358850847397313670273060640447416898013870788190199102142391622372945266288871836416275201008456077805177185683532547593850374646646411368103023281142766644421238423302721019035242784346028686542373616432338241577368580719223868389544884457259723865411293157482235921580091442764261672713762123642690899368482075436668248412767069240173544355924548436308691645404549666454662493869273659876564603759750139759479786315488557977155087818516282487141975696405661494158179690368553669961037326482623400097550733221011236531583003257726456993388514593025548087039389154070784799488769709768642378378093111104206639739557687168007414454413836719344144078407150642280115287732606793228679597795157099625782891496739523291878077960548220037215029834223383881202498680694539151945624828651632552825052437194987875707770579590056808055145273155458691252447378965124652637161861751109671106466036757168067550795766505392735686071561193488042270771486927432371949825958361328365618815514089426358883690872525810893269070043201620443580993892793788986789759094963233430226234042422552526385652234815772199790205922822251107205002370311616575017593941894743615891974265680358801532812403046895777851046550457655617353106283393456728255199316624603155290161324852759713114878134342497493650572147302257452892758620113539451828432165723785995091754226640121742132175605406880151878829058798345818696321358498194265252763143629625738612937456822569907007052228384849765995899676574495706565584433428796310804220103085567512646417233170824600109142542408095118081938207729800132745917711419961241341685163169745064010216933648060352198086737403428474517023357045143545829424785276502287422478401163272103817460972348289026616112288192921436783674703265662281316174661743121713130968987089483800706219142764289013591736078405563799702204197312509467344495821649065725576659036388050505233393221447372222331871906369431928003781967247370950165454601532795704199240980667401951756372552944882186107145692717560084862203399178104471852074256302100522603379279587665620230670422329813892981601525973751372096163842533114086746919056665491281178615161635699091252655605025471296847411136691297263378839170534435472541457406397646336097936887665089772986281946336927264172342914772570602667740530433987282174491658859906663593226354038351216910841885111744984981889675279902104599014411076098803374891909620242980402280063300004147236414492802965779747480740902949571815356173902468701679583875963381052583117885533382654168422556348777408855684865560681491533792346066722114773700924150247589133953065689050864084058567238502625808701441994962952763850853768753996555758746269977629428256067396564471505683941239610698899989292958798731512761467255308378752630496034398459593268649471359170674737172642267311835491243924856300676107734478497629476324384382607968430802610410603889090658168143568123958447667313346409229456760044106683519240973491012383518410622315481166166021124047044831018921987863149769456007604585914364332622710348505829186673707038907728478626097712404719917703584349886928985245241057175746402322252877777018808090316818385453227676536598842453404909409941630314140986582712815968312590564514451854297826698913232807027762728022716666193405176371450018950438924786222846548748757460246527710998838555569775266287959361844620687368227189696440911002455898432844096612334283544265501503564010894648149292057588206243464243383510368922033132258059754992311253318605237679329105366911101464105793575827661740419108020422349454147622200779410141038167229210869625919784092985775052734785828589787950262228054707055280145029136710552312547965073233833646152444781751294204292462637683090196421267901330839702741276410260180437224610749542450423110741515604943686902175258305683627860975483788903075612649044608433376468607109406756726554484202424206008157956397494483493576079868954020427727133147746062966214076749074186206917611402230459005588008874836867557685519394738997061213758581074512908743015806584410057365807830472172811765038154247268912110142812773691814414914728224618323168560530790395176758657098212656688542912153409796269005639029834802067389567573948592688297272560322614616290854938952594337277752319759962322724288547409727606349960123452663012610942815671552005788976322226087533487823264930467544209784407539085770632790605678466754108522901051483071000801709998668257008300372510169214486183975368831973610649956118556307286224846023262044689575395702850917856703382696909156650505479798131715161504032243127190026757854796598560820049159309208816204595537490869122464447907925300921285596641686308643754081693546308092521854512950752394346396584180062426083808990658805275896171607760775216500074463459503712319053019611225541016970391274827649555909404487003099740498210950203250015927595437806128534669125119963983078542070786946146737283026960431929116861849294716776841480099460429365003438324258939664482872682268820019117120340432906234959967234124829549075981373480132661895142315645763074374025206040058373744677324725858758592630089731007404120947620656468959991148258987855554522115214177666532385218793056098984709674470202822884777963607663223235544436602145093176441268996405861592014089387636692471507774985006651686237642226186899742545318639785491883580302949108109051661635896325653951946124508351659106731015688232207133043914888361857798126551974748115239920102485163004874208782160500779475426326577357416853727953310966450364727984926695336504564233371902617644638653161232328817606282236904082248510786940550855766058523485042835193753388394917384339838965056216945115714580943272429878118716924267609128098639887375161684786989298580129751616441672426824745701697397239035486766928536377069167066498905730978366507062753983132467353628369251077053272638323755666254176627860923572892025293760987524371867556692289653934965486361893214105838389069367124812489380169631053417325202791190339335698261275108787976788429187025264130214810856981380306314735015016918388169578883018872222241545264238018467721609973288081303300041719500295740335013409537433880299624265775880860289409911279176503240744380200459001786475645246554708881152116531706629771680116353551441508744059160713197579666334608723036929430001721249893480211329049396570888070533395053616733052963713866290024883841137189405701459662673534080210856360167563817617117483718436761754628420835857417723538679519172091447481265497128094258945722146370905103414147330459869930103103318956333722818027733305527090063046113754726322445613056950891960269114267567803536651048862876487740134593590541329126142954798652151573592164525568471531561345669601607411333319303959314068599605887883414852515482861918165599284611733102321339224341677455381159536629124023320856136699534170165745245335688541531660835041860493472898418617612991836552836198082586536137698233886672726410879092027147159687192558208756486445880140415615963259738453728600792499855357705306027749133615541917951767784415582301154464578135739356683880623145447697986271467435902254886455909546541554160394221543910914706193723595282976407817801217629876342229808479353558938545859764086194396819169123535010123216670173149147441691621161945667095204059643079524376305506667935264914832793295125006684016291163525504624816726922172831714990590683548909823653392154151874466018744011753892683612921867681775458360780178096583472377409472142191228895745142514252924232107239982786187661778676775586468690491693334126179774638477185795588089354332545718888023435921105595359630912826412374983708913825830954439920826561990216877778409386509155600257550420354820392871042820822461858956490647705280637874156602678675068948830143477539932024588806027294620816299399588326304957915511976491977121731826516208865059340957623580350934401982702594332888520457662455558310288690030620161010105072740994302577613103841064839867551275082252797646193481420862940692891063180992397436253584564103027702616880335365993224245070729682685342365904087437322473994868182047838952729471783795459676889271293100075711233813542210409533815334512422355011510270028741063294596719972637582334565280108570354954260966177863937413443314118956748279628652296957609373748401762297308695194542357289651151880350741768100230002367396465273539076050553259673950909204483849027340012206756321755997590945777770754496498898480958083999505770207964055211436578242123702108637786858572412677979809447162668214244501880386573631696080674488063587785120243157505777749069497081304208724211047475010554829028730493864423137107334700690802215527554025432055326489999434185894659219169007268447047573902941595132851793765227878719110961926931677070997765027922318308062313281823708066941645030690321410056197563436308682101631117063068641871350775905679217473229564981601648826631648267998815306500356807906189684121769291790324070318946425506952332785002403940372869994415458532260402153793369368886060718364312375376448683440990872688409062714985859780516571539940811754515336360100609588776012229920497941884627139134621122276177144291795595468799726254656251973139132458178540884742191798841446829355364886210052899158020729050836823217600314144155561379334807089686016620572231088859369666586951066746974522417910719358421482831259367474253354440456217666882276487811209743872417498216118322262098986885059207266771389922506889281086977716796240573430808794887140103808281637348892264947144228890359605978267386516332783394906139441515100221159186224565412554163160360977161308299566462386462580849839639789495737260728045289530978206664526845163347378808692565044092558395485922585651454923353015709312499515932537279838061476651085637478030967763881640374606543406092010291727012269928906346661910647492661958610380439875988674748187061320375596768149062131908475595908008785888581024797048853718719165650843025292115979074976408150808411033824598119332604534279994322636137034151406257075038497126769735366158896421224801862781529169747514615493433567751537564858902102261586353085180001693481904150236876508391907701226868823374412430063656444768474352506093796642473351447545995321107336263886621551888909484093255737122851306149044234040734608376050939833233961190682268063615697167714213540910681353344250743236887313915618705805646283629361391902693784640646469984099638409899899271729578261181482366418624155004665965508270193951543147994753212240724546438744645052790587138346069151982945601694730674937967171181828554983112140185821781879989875170558994673874940399318828312160355693659463353489026780489859420905594833950736837870951352774953352528221078455756318534342270914440193021022231056182490402108471712966397584542822703789324370543229481701372114346009179425283289553163016089722228300006436445813013242543552245677394289077290037261322335976955637805842452718126408407801676257643796466228903776942904818588437219450781879838230524303022940753300616554660923005229673029712762671972048915331550853310312146856308626037523885883148545143919046985975400589644099244356458607942748591964540324663595471435815652141634714478309439640339230659320626558304852652273194768747474533896898051961173414119821315559470576051665493218429398243979317084867760497461882544614868994235415675273420156779706992653719421537079473219961646496345057623834826860493215992209259464833216010551450879476737973204396122035619762387744073764737904644161620841119000578095900257754466175788219317463214917735056991948518216081929571900165977915574981868335398197688889202538884175155001265621062045946254028897718150567482392475318526228639213939880730555331424588159609137608671812078691671354345680371328941845477236475629220859277214064141156713534434461982912106083052352007052630102600487085475834195189557400270062327766815725028666272573939839881683705597769939803755386959685295542059646438737914347047853855077536765453934551834856852921864337477138221663265364365850635809058253173359128014710149858725135772986870921686561751083307385815527407107051094888632066962924984420726091162502127926835558219292359378216034097044633665934551266373516659755708848002228620932598975298899800781587931122164212166330121873817903456062442676958945593996656469673041785363260623923744085077735124159418644279193064620193748015790750221263855291421161095182457198210853797343167061805031772791126811733968933040577488989309206902853658943010584989932917701356377542780172824754306137869028961420331404590901692756672459632208865500332656622379267392600519314174815673479360329004321024432455193363318096742477016571163633934014298407459995360804828087604200411619594296053000290069786563156704704670363152130824128556907133223776089700561532699467926956207773607520532297613043151501921091664925546405818088454838199398256967780797231595778281504409099870445548023111625278894504885027728408038239305171840719865143685171525596636821274413336536405652796549073191954773119992261982509340925591346635555804830563643274981813822263661407274638471390170160731234539206295027587413874782695596794243895896774309623242144030277174729504430230004589366063803295488669642118754875422307516301215808714629974701496479381860361576149070097012366248745161492169295340187885161024934456962958640886445723474091115428037331273132372391548237078485404912189624475765212997408498707652711353554472128123086048093302521373000108457765571594033514871146508877283370044243152882086690799525588250737776665028695856214891427057606409181155822900427668313765421584336965187440261829556511081848650269951003528714772906742678924570819370167504860548229701333043956553115116719623707975850935068116858674690640031086594353218126286870204937362861477036190027520045772779897175089686010238542551334174225131561862996592383843195160721789700692568500668493958464151998969447865479799286003023052695149679490611426842156679648557454044464323517847518579253236423925590118907091395151508718425036253715976390708942289596103722571737549312324893576438295347231360595075259844482191082605095487544816622745897106360249254808570797119924509077587484119880983869353418576602251487624954154549193267156850861610308150449086911500815547801068981784092610193434417077451267381443408030638196534300655497060480427571558583320886574188156968246429573286902604523063255182574394094546730033654405131693440071668706897429006481102252991658666022788268833706241813187892694172696067021828711942800136401834774079952223172894800192860384617845684391858418067739738129001061797938686005636143863531255794196938826690173868605759937525023789601462537917679232132595623779714194766798798529036936390514605136336538216344712194826969309419331235432896114943672836888755059337009016718975851625149084924538850696319131260525017907656864737018172909279556802831835603827447390074694342052018097765248190996438819728828957435551153035467132828645706130768346380380433847036618825277489570922507306774286692034801911760678323735952716084708674431695556806985197854247101881061345985623275686868197794105158721864114437763039546586328548157263782357955268375587601985401289744660301451520109260506452798701112340419062760159682638764736778496244741205684950119202340321078005052172215505673398816116124024697229666217128609922740112949025010914328435546538355062570763013250837226903730816116918589443033931580140008960364945708853834005404521960286651722837652763063640763132326024508715090219125189014526943864054956493319047820238655387604689107220189207591541600638000014866580780225904546355863774151608367429031012925262435294615009066684819575859265512656375225750097618716467033115696765611845973228142535145968994010296836434707098412866848559306274140978565708552898314949742573495551722255236263000847450642900366239998634487804731939511620903008333926068575717287032232069344779621519002217662728083466560255215089121444699540365322943942488854708715926951381327698878038141006630304742044255573247118694897016074426637358466939851595220526549608011283772943357010639596387840144387006280038872119536621915394261282705788480962957981103367272393639401831742382638200647530843790092982601130315579815977798123753671375625644338575580735094763519584264966733555873345202261134315298826134104067447356670683393351583684109983184022713603091302091129739265101190276401597966708045404054324535488920270107437545035775311013973451483206154649684221979744469617344826365045724768837327846980934194941723378540477026896260538126551366200659743305739775831104300176760348376157442783346131719626518326459243380373246284186138763606635404667478346611598600058107005396931714239414213773604387124180561002118247145599417312690621869200583418651190554697356123359804031220297795020793143987175646368665815595589797905763079314915702066415444987137739207328474834496271598319302488052479085749311504110169887763576726744589057557024696427447793720069607455466022425119273762800615165414426768139535896965760760501103218031347520283764066972279410857165867743289838647602796963504303820677370097687878072827965760676234758617342577333876904450763542067692263066281857252650505700726918508596721266268588976941524704527773261537848559554943830572847760486508184479383605327699278360813569568602429615498642446620155834524329353630833236389999607274463183304895536599228228535233959531025096528074575237302906439767832285492272046124603637740563891960652405890603016927943104065651028025137528726321497641402779181777818990416579749714808278797415557852649532727873156136984149836502859411615121796607463697305440035803753432832072301915747164036741487938780488868872043217041185975215802458512792807538229229172199535245126941910110639697085525017510556882047146435490624505741596519734686553750113926888883863797531167010583912175027178566703425823891734837282088734932689210097227433741295648493247088156456323239149264491485720933146801340781875142245222966661564941226200525823229657181081009509745810193242491195131411035498135053300516262572814345871639069288845288790740290925672633264069274055228548363323903062115304115497871446629505892047426484449373512592897375033929176831786925015904958098137158527056007832002501253387041751514909989014710963042706296734660619050181731393380971873090205572178710760899502029058012757359954408795894533933409862091469476415951140108258436430252273461849766876430153440823178860584286500199305958516405321211692725925628283554235577918064012785476602501377347261131553726155734177348182180677087465959489698852372156643065292388566731859411239306591862929958380550170987381252914301799501579087101151055352743518130644298008382560820186151095844552469205559406503407568644709219094237434885010894421748296799502190098337958100447818798068483246597525813088483292336613213646323687957244530590116060090994016943562803551527775840350005332040318170355182856076203425783024721371927140254881659811531696483678011401454473979977424407935614499297545761731990183256573635672003030353553331678434778279360015655563644743980955133819741532762361316719692578330990652606078216743647446791534688143812929090091357026776245865681085552892970787889118319138292202837019290975195477359018942129977293674770728570729486429284694428377382114574912065590010421255019926126303144702572779182627985851122656309114509656300858344728922186084420499499631379035588726989095374135511776941094218362995278341896996046339505153905461730552714204710788285170268781918813660871948907798380687884435993852035719728636870254847833091560815914692395892771019856431995342497024506486105270696294976261935665923961227139154665643549302169639800437731808217582435664812417390244775515699666279028459548046047528253685762186546893471299120922113392870114628031923615698922902736719406272457066030991281406803145407646832111983161691757466634654139724629465561794315384873689191694714738373297254699801746412498240733762022236533445717529049994691204405366342912203150374010206165165609557138818299280938514926578902951924452055198638612334280222094302332993321875429902240902933655697860666168496667804131680677934543800038179368462891947529784582629426443470058368330391291625758446254776935911636354604069764903663802842286774260725476648313545063654594090115326539186471485742515132882353825991955149558257254685075037091155094261878661973659805090066873002590357637792943336113105311176461598315496519578532480842298561210245056035891758604366114307343304189178155259358749214240184891160561720855641987471465209167188756696748594150674624325698557606218156152926925113580865084460877242108509533284850986528925498976839409971314764938678706148675532390783670749144060336186540334835001726896803960641520839680943156551709809458948345502012330669334314532411542554875756289708853292275763025264746680382990963001835456936520466438470607373969699898216753753491472778490233791391093927535807954818101739537797609806766867064070782850676377765277385573593722677559380619638389812289794717228337978703947398394670360757403693051333376582956084968036817410217215644848486519325506801130263426565493864586459593587363934748875575925755020243447584747840878155540943400636667389419522984057517880939571429469954205083646062931836220783866220501555581147699280981341863942813374507674664951812831324320519531367695545844499384355972676654303726802820098263362250374039484948429078029077042852774010821655030982106951487301977753497532008032687266814927856961144922865481599711676157609261549026780127372314933664766969012267130940438777259560774433200628411022362165981375602254857883821197336590156560132285896228367619538079460515974953094133944671336184209254768516962584269774377651710657345120728898568512178468755664121459695677530916851391481295450121945840524106285760613426223737418041338014037767867400060495023472357239899888652060569781376983957703655585492902624001653874861376944437186000690134645289460393830989762910756804645881429396148367276442701464310870573766327272749272865178252895030492108414773690720633545873207419580468714812732578040726724453513583856797000955138664966251269280449280789575986766998637889460423073479876783837419681109310539898092555736759516989024067478728096396101089186819705778992471818970295991658400499092749996289476688561179403845066994699856964800887839337576342523858344762176106342101992976649391231724184464959521643561538923806028253787796531743973483665736623529269811062400057244429515231829680687570566937352884565592982750545933969952926912484509505364088016826150435419761919116653614169958713083491993635822751660033031646549845566456211736497035308621005460613835336000247221566613823465271024201822003303474684815803151760071638074849765791243234997267763236817345135503884917202459103473900089467380540232112670649049404231111074303877684888525502551917806048881951115866946968016980548668986781196221376320785891568971081060552699544705468166244544738010815596599920233467702431989572286694381178200546257061834919509125225195178879255290028579501725730480804938971540051804406763922666449536923265360030988357403766440559684145710953115605083821933422284362930790497597964541229409830211916746450574672943472072017241727289024895378279570812650997298358133694651954410767180470502423907625877141228161685838146400531744023620375698259628807180666476091627938466238606234687836766902220438893950048283620222309190871418890765353841712417704419069927771699316297042926104830285185788311693465879728242522819065871159543831449661222928563007939960174063754989550587384790106440646276928141550020456825426392289196431029463595726901775963073610984184737021745149857173138608942927097597168375930312143404838446953150827959307360702772176338108612150692923138625882017300322777625031645152036257895403867667014372635952152533313650245687188383008724270619330500912419984415203158953811709247200523508123032769004217189074006889463062830478032824012786870111416088250312653505104254681754192505883847093327374026731408997590608649990646019532384746596411602029907052856598853792237590319547522793994431240507095256790017733557223481836322648715503098245885388578833000593240079170059591010334046682191273354350301430761466028821394965953027010162376667328164699954486286311109159000602649660973939788245256964287950845039152920485164960388039869700037218586781150159038100660549061330670587510273228238826934698112128533118865111974753491952336251670707807300027691768700104589667094595702538853599480756735394673180313779059407260141558304134295866381342481653550479748823987167417450846812672362172472565281755548572182912179701228042653715585451567757418388903559008855865720888589406373132438748123518157102362038025637493073835131223580695534722714934217275335129540614165252083009817921928071329693323283695871401307487391862826746997270216389734091100240221228091622653032712082163494673327597547924131541265455547789836384953067594312590422051329401771461154710411298897886747867042558464669107098078169441662631876674801608761620597499785612220162379738136729543621746670021522628264014632878297557784194675786448451975301039986173919388747276345565715792506991975821955959566668037214042408104555185431860145979348608831716900132366643186162491460171111494622370254275287248164299352846563937561789094567507026923373556410712072851997303132509497044895924189689932543238199357818812475141079280901431047830477370713817315566525632252696565253179427335125117711186683461000928063120075302378053197488333173762626179227076188433936687768986913935056929356445848743862190243409147256333826055060985835516838137353772147010455538974250784426705085489024196277783766070294680270665073665523505440655930545382875483048400473811401634936391856923086982180613724848491275324833868480023225898958430412198807791874932686002029705894896100200918690346256076818206593327194890994605812390869375208813072101276029986506676184441894406756538610275680609571873242843770182082607507016785896261761194770943712615709437037574910387729820071002399193516385228009305038566044908575754264635202919642880183170185474846820826535226473957182941676770163711878214203847149228995096803464793681413139962648525928805731504882314506526416872050508915931186637829814949870946605357714680182681185610834539224523061450345671946062836090036745144890789944066879299941951029311273005445487680998465127378806056411746906072724837051594128900702181220781716667626323358511617711285330302050038008176456430053016679034466839386411131525175296363272848846413933582943141195782954700253747322333971388316354115972944438008128216042137989006484559000958333992119007780562091357899883610466324947455190847909368465671866888593904645209748075052689590395427840711175151172500696123839048039601860885448784093061848428444152079374277451998886233672971230113660234946333302060106714574212085080311526733229227896501317637116633206503325780160691012958896450757226646649149685675804470880145163507237383885281372574935408323361096539586920008267630864339399826485163014268483803866436034452317518236240237644513591455503042090799598318683302931081290928106240895461149888447455394303562557304197518392508896890030507725885560702613674057453260915349055199130589622076439459825103098888124714723968296701979866059930734101171048040252101153790564153545574421595098070376735741565625928032093199227638334219655583202242869329462642238799112426569609327235006759546304437705787666774026827620927191358392919212081997854949472721035907182477403824865779322022144038999759049315858671721486866369561165279572722914003474929501704856805845831273418539669809606485737730538138509779598478852827297464869598959564252639100678774214561760947908852342952594065673314453960884753355459508816205651754981718701930292255734553630980505604558348425927115597179153404499684422318570372436267037644765297820242375723515316380828246145490375974398966220519722879656135139958816370820404249874184224385259520563358382432786306004913897279370997563146790578345047230348118300702135823842470635990443126491592471756793457936237491076877673691908691326674414819274740097081730880009077061526225655684881719549974314865753606351410305765869738431835745284352677282336766809494524229824851969973612572589837250934926992735726241905426104420285082679752159591863009242064173932270851903608806008233543056170205372561002948672103151155087596761311773742108585357666593040133119007292334098710811970432376112925258503481308752912377186863044681496599140628284063530090674235936485510004861260467792240029824088214225093518665144781626231426241799104445305264249747571083227488207039295118933690692534401148615347463000257596607170948648072992228748310201570460216864873912987677707332460868022471435086865913554701779752791143326207789501538936845620343012315996721127635460549683642736588876171514397056238526600831258820326444944857727982337486137856960084194643917051330007473553931511263041545901231527856082951633220699868793540837311877775968262503675770266151084768030306717985823695823627070767621941585829909274811020626411591705992216590253336960871467378899534012061075454983546334511903337227005451911331102779214414910460722860005533937617135096159097907746567251305807089092826988448024315009407871298012973454593159107236786085422657613957942007403736965259465938603369738133258627848209355929558715994057120505276340346020431734798771629189379605397239378890926286968098381565877495937587974592951111426562100260654850132940916450551052349996219600639052310134569572781271059535283773404362255912199479945804007939963480189558539351925280762585807154432790463023277902846387845093690505915063727690460874840893461783890340486523144000024708181889305947417317442409334195734863377275958900187678748559894828157435122630773294612586718780671934326059539980825790238185311128221630196795595255629975882983163274799637994330172128228166389090438576841627733197488235029649121391196042036693362273539493044922559180232164011426239686449779794439383523101317996336691918084525886864362862144816196396545974024816732058867711596456775138681682233655237525813933014036047749595652519636568445316778464889291285153317366029819752172590487124669920595257037116578603502543874484009568018782641843461037094485232484385147570197103350072939404508250712228431979522674061145163070285961338805063983874512035221881904357221419018826429593484880424814837460241492890878572573174483133786923461410898327401902465581451900456264602660912320136597154335048923488430326023806010306656074358849750007899243203314724451649393582947105528363252786442699482119599563892111598042943541184223475167745211719066037975623640467858724601141952627561405602022583664572219282653551665205899374534964562813146317929187514527402788567700117530085506467555440438883019127148042857312319388004707994694365588060748895523587202061814810121852777256652507337543958649663325493090245279563165944310652893695226399975681071231351912402167702088965038878468430412344794479525338493035250834757913262089055730855634040007001504047651746659020844410645122948494069614935630248915868555830581703926054142290968867067419443466857089478130445011257574640318394173742394357033940296863546528861074507180394388059566961368908283657103509642757496812909534800005995861960675365412065851489136397591430848795485390058304898617854859367379566316622352177307117217996959586909614006509925917649310716307750838888540210395150485679505018871465575152630043982184232385987236826068597404827660147627194825479037419832460249165042655932019189740061521685269374715027574918555946583678942977980243724783616410071215393384708948878942577025834906166827832875869366193571349530760636217222943076049399692913338367059864957181101019802410382258942162916828621267174301388323966648496551248562914330002128220610633646692144405517632501100940312159682992299133029545196370205201780039905443610719403197760725404057638872251854518344845768324171930124198147841446312392993365201101396794850727317998791973126401534375527965554917411500495981258200213936866792011129687076353138030461508472425539960728733686897649090613299635038268612882113017300815626379602489343927189878554199015556055040518274931006022170208686840873476236816683349114405128371707723777230015692291473856447121678545765473138447563486430373885093397851838990042393957163563859136841522111604215545994584062353071441651028470048284462338461168492166835646000206855682200868004610565465634440859151949474893073389077028288134549617360888596485313692078861346306666684695202943957796922291947250531029141540687766290039363093428007830951447144904373459569247364017725088445238593394493405111312583056558434622074010686028521247327909700424873193408195085655702174490970906757133762765347668961933225337036269044352034410123810547734252146945056363819930650070505490198725902015811850465651728950253819340591155292546349453651062424347379086939026977317590240108148755621702227290917192755125993265202855125095458098101642833095749818885533349409191538891747651107144322574319371319096349962051359017963346012133289319098766353396764970838735313409940859246168181240152083621698127382256267793820948831480208106060922991058032382557781951312272501804133953400960711300714463353286593702682101506624909462911263043210205688471532786561640020359581900456311311908096471450626861302547240171116091938390799252323678196490576169336107817561248305780149803193871697487004015242218564365872947853114376674396600117994039653796275351796773757533743753700766967406685320998009753305511763812825152160075833094909320240061656715993129573251906458368063776217962489797970519050497466627821607494094682546914859117912292579313934456055718173857519212247190393847248216503079426128732949744292242094497001466192894251534944612764651229679181500195175432393778685418189637358906345728742064027046278694099889892476248111403654187810065987010911687772599453154938903672077787186640134465376302413582783426577680827754757935504156698989223746961951028548213342754986561754466809574483542816455753372610976028256955999396601039354473279970296573710491458914816662714271975601249865169397423625732448342959637865167592442715272307200259379502416575783297590040282109402238135208283493084534303527922905665016099636634773126349153013453879901284366498633953314916717532874323539799154413754370145162298097038597082151773994048390919024667117042954197303664059561755464871524209628086764976491735233983241895480924810581281374914021744622234669010142516396359604172448227341938906784903121013141588718071199037108064247516639985565785359953868909018185841194866453439649921542661946641496933978954487088021064413524936370719347600130998139270569006796816347275118805602201971088234129229330214613316016663626742166926698302766276994433189913948453739117023434641359510642882012272070555804087287616699643646636901899784356038730766584819283625216564673455664280594219631698485016971420861308054152093721279896832116555796481033036689741052596951295917580220763540345021810490457445913810401291606867493727940584423826238094180217170038559174061867757621469439465003062716801713232486524434363451293788528403148703903307118962965620677767790422180943658737355110114782424118524798858650253030788430347150097043874158486951998420851603579210925134707878292515100537252870478052293283340697350720951080579343271706461905115357430378491373149946492690947282534407129777174011695604337388767819305902818410222304592332001538093096161994895273786092099914607109619344956652047181007114861241624886822261984415343663616568506896536885299453861094228862967474592066463204711196745152294765621579791979292181784470184968186173011305447553376226959527689535811709033463511769331564070049168116361295358700143423075758171470781140437070079272075318617233191038210314521047749866545960646649413248111723175871666659736875122802423262412914078445813386865595405597440488299552849504303997785696318461990664691540252452685608467910286162954206947140406705003141058230985736350846949683772718447739641631056182365370413357236465387200484103785533504072709557080795441409965897203763704039707920314971539173105090828816703272064597444975843423009541616873836623710269286327024475949681238580338826267831436746350628556890902110256715749550505221783177187894909557839085162612099809306734978952371742405045887471469659296639239011298507137890440317851021434745331968821300745380788599089882410926935987017446350281470180018567383669041226295285681931937198937119037698229840624701998427022811754198323093864974994564833918799098701039914044922915566012936218795780542648409674367031922740516806737248582777072376789812050250409954682774149260257531885232015157708276765847490395160223123246916158678115938977649619357295050211850575047627900105189760970823728638094513429342025191609075520264201285000211962155387900532433925387764539081567037454061268242119238688330213384160490586121735406193367488341147010137454316764079059792338084840386527265262004201231736258014682522499382570159749005877101409133527020180179223140878886229318154599465771518837609966717566114284361726852754925655032720513989875687039845634306863655082475349108796055982154040590556033979306605641666290668643424837471867139005880726578031448878482886246263012649965034099825298704690871883245592521713563853949662260487991967623323221332988180986285013939993935218455683643938277284600315936517789730957185045411057811663719080699274083596933781530870711104468996206009027236594847578203107458282597115348844200145655719079870833499884467062144269838042664536366537994642129683876468371602389919281784295166697562325158338251682113590785699411273264979928083974968879903769269855514879326229473512970703139228296085576755131343671600374810219358277255810855204549125160271366322215885518980920193174531874054284269190570462933070297570232782836982823932815284309371850696753992707988764473159222445075870929870886131742869432490166068159310680458525062693570885348214536766955977032600734932061547718200781934486090824488164764424856865783936240002018711877433244569707407907377774945065516040412058205449802625879668515476542364204771053180004565217324582154748632689025819047028870106456620676931401063402719622996718022413482151625350449105182545577193496433368659350061807102876925158987636277634226656187492113921844528325671072401078044965979717975123397056659361101854024529078848779093166475518543907949615175250292785616736664875468364141570464211071333239766744258349075404230493163346640486914351850865537219025770244411140963898901176339505459899905956109535312238327430712532774320832314239974806147271198391874576451171577962324667852211798629124391519658987828025203325508951086168021782104760338257663070558811128866191485948537683103860895814237751687729385565151664520240763624252958074418683355377978035086005623991380942574820795114901464583745012506569172078450998363848250528150541456653700636875867499202544296118868269053516136949508491822388831574026158533677090193249618533912084129063472451879791911241694304639186421058509239455342855142964295178388659216946407469099370255372908610031794908837312154323614652501479426996048657497612089909393624678245143037610174257125482535923204570114227954615288472309711624565651322069396925519476520913848956666771880803363345035657457551675051772658016754899490668607512350629888486824590007784204025457707660857623616393396945625043359304493162663585420318235347524462370669062980380222699797589591144985797202750147588904971562318143064820565739258611675179709250960940560430657240214239151318655339248767677690586355846143590886528000484282953361018217716003446880816157333496559041012503743574636608720223389954557388624157164548931508664806543956715309493234153673965418251653854976175000336174960941130199766473780017120554713775220401673009650928491561976004604065177910356639161144034080634138169071972723937943735379286401408906080111679519244192761914965027348299760260769349680060886995624245539949660150016398486265717529067676005542518868607570544135743836999791702778274272393429253879001966327967341984214631570646727581441848782405353113496314772666892769824136296566655855156241135083035078737136837201838916536734935609575732630452887419352819186898560579259718591259066554407798827033541679973403020779779738342172244798704380906877276932032422790194494471187969908590560302404119616793365647639532383179925359489374252232461515217545309600338548057078200821303289084230865956355342171014306901537342572927669010143950523162168762839916658046746817927999865472876189042765231878386954024890271604848587132047746217938628765779927675087117768034329639569010905764290164352426902761851735569416239098242694734150574350004909983772755194654721267016328595554367115255090801074719363412188124468411821765083022552897465394666469431692166649260044594715068132828421843414988773629121049187515295825261764861400938841654389346302329967516454816238653939003223610234344321964065648534305933839351922806462499602365898102336570598271378508781046409079461606217126356987080576797004827860090261346612366179293081197751705352500696045970863898669701439903392915639371794505852410043257758542259085251158229797558951941146318528680873520188612796395691062248239828426727193892562359981178443754843164720045550935652134847219340315612089757781929411067108345813639902936901512391263585946247107050300196945448461542832459063482241121088782104561631545603966068966317007175550339342449041039483470408320249087704202130999453058576995282700290966816529669101066522973739522962756456988089190919933370757114802676894248422911177821034073255095395547388986256705516524425999056757310842427353774118054599872904939074768335353305550258772797336938743888434371464596669440845731966086363754902971046636493788048156273883876846217232818857617734006171422911724279083684866482264539056141464545054376285974580915931291071792987858087802238861445072966666189833627530857658747398350336646820665881558381391395474486734803195738515864945888604264208319987061602595272800074230481192112197645504751932264142412645126673783307794661491299269623809392450470275261726310003328864928978450000596550193199975843129045534315127462423979784262756008003985686737628201126951144608998020548932559748741769107377500465778288921365750776162973710721995818402949858362049390270162056190392547101629477179580052500181014578527555353776318253940889578125262677439655701478560826673005108777473914784867871354176536582479926435393025551192092949594002680252257407081995525426561502614469907091069514085210880140229906104947839601620448509346720918185441496533104488013964289644708607157058364980794818124288428523370425610190960006072912897294988165597990230252004310403516937817543389018390073703374600505309063332562088745191068269575109785881297715256553367598878215086438712282610824787562992268321610205860774605951352678332257904956419770361124358491155418972670339207946167777817085586103673001505499282446848967156012902323350907754111680263546519995142558936334965615267375276659605923460599696657735928841455043214570014719541028036121838046819576520190891732460774500368947810757289426504772771297266110609909326220344196102713573116446015510109857165462301225443026951418911335406624249103545810640792015615330155179538073318281918709140692491840700729847664901639842746818307748666905704250108001108775942707270530807763026597273597884494749076093868910976421292104621700209919320690513770082133826013512776795943281425983745183399377760500480321010106936201078948236177827255192674099871158672514002235397720373099501314563069920675813867882985346235430773034818721751773783640307134759348593781885239659231056119755302230251935895217412492010714687654629775570472362823181024705815111604690300613436679867549265766239752473835959131459291270039525436570233252500945553385331874527120671610820435851695666002501558298443458204369274566694048892746078739409083673813323940073034798279070898373759967375378029299872239527876118499167447374206617999874422801895669100789852382582923971198907039216034095394007605544418002699354644312166993188192746209946470235517615455486502743365012846661244022116890909614746881843600378386427113547674342305120431186339206405043787881138778220358390195381206942812400907036833073489303808882773140122552966923967380769763446073482075087433878661250082050245403810461577887246537605505520996916846880279216600859202157821279158896535894260300670086426848090099651372786613946662662700817551121197077889734042017745654380257592721258437201348041188676662230027576583244396374077238829355364569052466389600514398491372523358813059721248255053865792069756300952967182547163655335502397618189426574588083868450259814272528523987572369248668689486358270458317955533429112626378878006633796347923853120174150112079998459104079835132969087807797662638634116071378804922939285916029341621101271154501125822071838203585287524780788410500967322826762027998543154520050299738608253877411640345872576176791669974522178591232500921838927175184965971773064193361349599804387583338752132742683137428058331119875163012893652156876364821473295244084587099405066530262072955579107062373818509944633984839547125026700386910075316177425629806791819969476954131593972883924081743045530757884429833373386310965562308046172458609984287794079593147696558647903881493900283636638409029309006367628816341391254332088147957528891252339142769495036608348280282448904469495755143485511353404799801486079716605155560041925114410061491237001808738268941173101087992833847386999341768703200026743208980042456423478406411986334728373529798052059156158996186461520581327116116559768154667612881566425618151440919650006281869849792080234328241836087181832859130320715473423163834930616140202189532141031375213472404462834703427222863312322132228239085500779520589155153812641052517206708888976852407566727279871814351487851879826951890227308871190832410976518627114937539935617381807385948281467208316438953021010473094175627898073143525274246470329452789220252916827484132586426250043805769696902316955906315354827295654315269441856889560512646377691328268057275291706987065515985866744635944672748051064521030577361008879798281949060417681503121794651246908920783183969418958418177377705255128633442119356638671598932623981162488999393163439201257343536095959015310413236201310995125052704353880653233885450311164068571776557916281406328686932401869712607957153680987151611286661917839936881112545498494104026886062674945422631373278183231769396790146371647358144904494258825732632765355507330892576098484984563130984276341226310998557553917904888033341222901307279413696539095455960674080829385275383391606798761709375176010181173209091539860716809940157789077929550190095983031498899118740635080248791642741273580512018153971538945151329854024316837031980799235258170618511817745828121070988403281258932730448788210670767735025631532663358963299696322113594470895403944207110538248453694482600999060750319622575783288230002524654045165890236292110611020584575962510822808561974624393949460318868747264748072504521549920269689158540172661320799153605250134410577447050951936177376735871845695664308471063952513018672230200433336334121092315523768026548735313536815870535297434521859428122713524916927999807963075961661230586615814558228186295031855794918183905488873172761402018864441083876830804907889838377885588314502066297463627235278055259434354679571656961997362869416890234426505721970405566208853581726912789006813051770787583643735772441655754441466461938190685160330211891623885080521170873117143567721053322882526002633014152872891517521313733666265788725920181456185338339025150849262596832016909122958789900006735704936830647797127656637045460791761958086660447618545830643500719476576618207310603587018266678992224728619644420522853171472778421376730233208168293648349337157113356520633399108623060564311956011208610173931296239499449633222234620482280399304127070064197440366498863761026773728316483373856599344504951327832167200231079027443630253106010762779156895883266219286992210977634479515406944858707754799881441358923317172460203544722715359232303068422049147539811646413410568678571271888518671259932490786411607412597260162902043229171374450673714442970230084269504077916755961778105997559307590429286191481794590362527294700421661474625256334217647244899330319486589996596134183165213632643130460290842558907778651700236909393023043965612368642700399080839818494998682233654792626370263965776687808505793375132236904448142188351732643876361251943143164942184183210488252277321790015657295893277521904266929762036467782664017005550169891123209678087453576722333611267244709813998849651990563216092484955547779332887676993503377856756752749024690323795858164560670734968233121121257406058206046631109483454479385469018271230246930573617585908209251420002642119870948846646310355818940633708333781005481576030272918882759060792305953242932164192605962785996287419348912966271342606966226440626777806680884316501354507903652294624546313470267794382904334855137114438611523252180286419785914918766564518648899928331401831672041488650634923916420708671699277811255490085568971345651826959584554994037246011368152049218584653487874143326212123341792708695514025251317902323719922465441643060762522033181247725642409947929737847097816379264289764557551253261129312634233956526278702601248359015347825178798399549659979982625660964506372124536426131119488101778140636577033209990399191718354492804641206934789026913176771869217003299982364367491822733919498131599494421743330314705701256558689280145599810517085119016213375685077877957612298110275349586841986119313235166686392865668941524329502034819882234662821997360078300205776406837988574313519196443399577373798911167470937862302203076895513012397123114389076216027537706572118799645902899773828334158797255659897142897002233508621137576089776464996796801118847167526404832759515895878846803795685764123821567916438724567928352564882638014887906503202579557755071781177359400251964093680510043405152192122908405663112323328613837042941541338842883986488353002778556480623912751475271257144079491022021665682623728717264567244882306949544311475249459118327676658098438733728959106221134917532836120972311000084490449506945201897141214909629249315909599428826096777177571403115309293704702621101801299463170356331371946382740381041888195208203144955538845145134965475559079113580646266651964699406287049493813354432762293250607426805419510791501838722041665436105991731724448558539634456522468704078892416224380574184738764603216662075904126404804018417327291152475267384932149295209864687113247945435442686212251976657020915851968918497716570000569954579076274040163830401223531239944196424379522143724432759147565765840167160133238430697052586061012194721873126769800167818316833356708390852768977827734750768212565149244482866032605193976083446841577611561745150878896508274207447544625342170436095530362844827022173875195681544973431055398338617741934833173524101222373177109429307523172360457366268146158925855368714304672667487642678104973537841442949120100924410208799767837992197924399898465121340487109708303344213660819135540100459405597428309375698149071114737074444028984709897919002203295038953745547614893907205101000183477131728136042365419619843978310717291370100182428599875963660826473094797247976189129332338214652597740582156535735341857033146905733234897856939174991473759946715186651910401353845632969657704876035540168152489702750787166087705126692773739229934574124764498594671808024198434389231172284571158220330769197572838770007258443637221590014473744078850641222735775370255710325371396938345924775635665842704499587065233184349662610280612603250258451368787390906399105876759658220764124558938341656481460532216322658092102682182877006504225026411590937669676407627791360946785358869632180501099655334133463859340720996730131910184832209713124289546116228766018640841572456913167278133439580925251851733779927098867282033615737227132717097668433146596500076303590928940668565379602029577193623641254285568760953596846035549516113633141450447492131900044620965912239667148116577551935895034405227597056451692339577236724635264945276124901863575774661384392950975996132399016325340295162269963760764057022263596797324250357232277114636907480243960498767346517361483983470773030955686036746377633713447019306249410946480532958081830017971596301134279265772032164159044800689994828745172276549125692938328582485117372097818580070042131479505075007549795546294323133378907321274208703431657368015248657269545778974068747480092693262624850980394869037134997747721783425741309903609648418425573661488015212902802502723992078783312456255225139045037052347370679879874646631484092022195398061276485782393058144541235988927516615811489618919521246965912202576851634966244565761767965689738818248033538486575284521726254246774593400237393748221141964255542565478155543310627408678509135751719750220586111275652713224529803049847705589376333877572961109817878125853589111725955810731099646757444898300729065227379527155387585910218687663386981710937730339615770493567436902163990812291826321050856031437315756037262201342032712590436681995768857468164800013817440650562761437747486839538190262102251697973578100884548747493154535247118210427213543647256995900755802334299684542676607988271214740003632592830942197493927742233970930964648671358050898273546330046491989471041374833949285373486353999608044903221028291350870890912485103550513403940043058783746309832502932853767015223360538288322433880117309084729941932890423347204795092524719988338949263875985650420845856496562072429400088352277756629750923315963716690550109741615208843158528129578703519735970427823577275469431529982361176077014737137927794351834758595134127216619473029142682249581360841590971559963891392189338371766420643633886213793399446819299213951006349804573898980913352156273071912442824534403043192312665821536026577793141713320009826020884145046540327384479072099123058948901552064050618328494744652690845944842025833755779802266564922192440801989927685633788941095855539576461469427014604485936701477615135163944638681723465752992394651440011837361803327477223759441157691826929044926604159064952973286115236965007333115205609680929403502513381386799936863942547544066601838829545774994119795226959465541590387225984009897529887988434945760402369390775888958328333735793075161147487340828042645529805496934160126469607304119990206283370006085692961968865054015929004865821507247757712539992136708683259671572428450764911025598117882230923806471146193458579184682040064470834281359842462295217616620639595307722832874473906284307254988712395027872764167677829687191175505356975956317347274533962278090728171438872419034484370516382554039168627159113262107384802569417402907882704186349401474429770938082546245031116160252305036278242793867974792867385021526235642498605949844090181627742163578157959884387445961479551931165090135209884046461065831711974725063085206925910116864270096208600463741408066656592557859154628593956455860992723368195851504619655533492565177258831105253248000905923697439029766403620888737567383652473727003337803969538369248632402446346463208897135505262960583905709958099541568946861876383686940018970074514895397512627501559793437126232104128562959090942048256443157942822561647581912232374033688698159576273189285571923552105284322502185752254119460213563934968377025608621220462436947453179690871755241728684688547949872321580613361229638521051571446198702898532869739994406819237364777502961379488653488832272903073170982417362720047845192414319251857151197462586559136790252518958982395548280641453252557867794123210552693688474607711304117883332028433799448925987531724775141674685698299975029242911636923021900596400244226262991185990079003356262806132874718671568510253976330179903191457582435902115416065315983381695884204880600388875429330371172908722478250339608931272439029799892333339978610117326161320175545890169401856304230251179075469716096439211527173340860540188433526388356645068580230563439462319274707196102658799054490663546283807660523983653320843172827154960283413490405665577212628239802461112788489656521346564508522095742296020921594880431993641909365692148535087612143082399307112276463310562799740112230851200036340417762338625314351463693920085555812977452013824559690307251275477957933283816860079352116841592102485624110399734539652755025708747086077308910455126230519952567277630134257459320377259176892315627455934772936114528305911899033400956762271965343365622242746726001636454520664003993898720556909175239856676610619496981028019623678115620040207726286932660673052062383104560794483873026123210592917287308387653264173630260841146609792855293815914279609098586157788541108537711521705211241455061138215626015579480426326951878846140400053636158762180355188291535981984358052254449398965082995214038680261209805184921053863791350457981441225474639198211773544879841305724810702558520584400213351066801471413783659535100687133388255125533035114068403467117216772226115004678390323881166987476004195261182887107382100153042738948509642807310136474909410150984048574572154692822858940806344182261221524241583425434280411422611160840244853586259606526033025051080362532829899061957451579013142816908069320109558119850693351135100969092038283817408699785463130114163237603711987378570566120764266623151422292530398257696297231143932917088015323847197686102988082255772100850158076063751426971012867495007970008106831699235685562816825773297909583596687885631454088925609724694465410652807154692623605802733178424316641183084665996717749397117036508085310962534947912753934518711986534226009344105319599271529685863455189601419779709611663117961062559860091848588448401465734024721770709547423172570929642122474063729496213645552136302585883186394657799938001129942354943269704883866401658343896539910675452891563076552719838374750761254434032161901682737664506668661750679796633186428503166413116932659316020668174828712312368091531213590474759557009549911344837467663012949503162525021512678888175259610694087168728711881987110829918196899087560843299481338468936997821701439284530862346688423799385594907037575483386686365165798483757650237331046141550032675016599439263918653732743073208560590020407930938491936200183011173694177633353070352764440496001233885628933855821262704118078445354472209460802246466688904974300637275926668711432156119467753156802267571961619306177049851391512922930333959321717101500746222549629287899489484042993174434733067431233834265227248561215010349982652155402156968554689173434042533843020708292005618278509464898916446536528238856334114358206765318331586480161693686198708342704882525638666041716047885313569741441013722805360889909501947558563716758634426048099977639101270900076045123558554266259094070695614127297834977630730037514782633573260787364315980509813696322711171527342155159712111753121612899071289159148761189134530693697653626040777631561452723641086574236995829627796482939277689449894959784884196263794907642196053138407234889459534905346446688360025246366625241341777733674912648848553961076647168138310597081222284075221069925187261796090594049552658350352868039293770510870597182315619643237684522068848477750104242204009474966473459409455898389496762399251989293792337782799430174077498844625979594739507920908419500129265617162402904634124058568453268220083385796894022257551757969663782789592204234213321681346808397922793533893262312249281157669336394894749196770045454831977888344412974583590669472353551557292205718423911730306129139737248943699044421540042989021668315007749507857703991057576373709558732218100636413212521687377303369047060446335628766043415876158443684624187258246263780611666796688634679518510380000310334520913089443739032487147064446855469807113220451934266535124186680057599193913857400303860689334235445946331074037365785435209465700052391340075254923970448197984347303977168516561027488340971973605767177580198386854624117461503011961708536102012311967749030530120118519445508162750879545498855316285654147995716979508516335996793274304303920006345271951670731788655767300269911256975709553207472562796650188202674770113858928567696456245487995705654785294556061163525475533403238395966178896571209958773320453850172541206997450578246191563386325234018589642985075513885155652347399752462696823946299306464208628782305928430299870202844610839369686770307921187977796601092260105331500505642874800840153867050008557036302243505099797634525459440526810431170775516654202748945318233718200000195183453586707926130341779036190746048284190130943056557312995921756575725255289587705980708729515470155056876615096888384385356611851500285084892373504286257485893998643103432971457707370363402359168797084730556558503895546706373196922763358104515812730600617043253775051844361235090013757031623776180429101871235497945236521825305400144203612034007014624085213980630321530417251664829969074598143301144843186447740650937433688835836705430483371354272658455014623817369047379528643594559474910554953575687990705379763284965314455770681016405721287417403181515269619749862974740143734342200375958042202803859182010817434064746273031127998907630709925278300037193679780295860101803664954610564359891888037257319999676392195176138240623362783982418247346001906096579771658035412869650802114889083137518509700775577997067534065671274778960681391657464923275678620368783055308470147541177383611353161103755658844328414286169094070262352114626490796658989922459115689360123903169775708235031683251142587866150730572979662751990634607573400645748899041488861757318759773005185011424211955409387059615800582831568446134014750880576158500538115163448511126244735289070334198924623453744111729105066077354731791373567572579005554762176671190606943279624389254644307827931302729791646649462257898516186335137732627150998299126092187702644861921813156635423230811731901249001834772514026781046569343971201615474651453264607177744325464746615303802517914490518161718118150699379971504808663390444284479451761589458546208079488219189642445923265275767976314618334183353017845473971826115146636282926603239841600172385161026271327744483899017296201277730745551779207965759343748873171850721394394977181549106248606765190619805077049251083450183487563473783018288282296103475663216370389257957230016368454038458377954056320511106878902989361395185235568299257948855440301870120241255627090783456857568288753537528482334341459531046878725775484683801115008269031485225734377012493828883725489471029881282318169305772409511311466438457537238961492696161359616412495557101078881018369441774416577755898137202226868589538699548506980372693000182424478792065212103723118715734625396600647891294259079558017801283070105985825971797214649991416837833598738034846715694570761257942323336249716567340335443203289614470841865985043450510851645914658575331655027544879645038679057374920315997765036095179205963973853142580092930211774879304007721893481538692212788988681963730625803449268293400340128176403318098109961955370477624220910340116272712758758664196468303541175172658172911745177372313452300119506467266995768805931286383892716849611314402525535426797540162215991053280989245398908425593843945338288530516202963046751344254215070285246381076410153114253785063385531737719089645187339127908825578059339739912307097201862673285464549107582947866641980421514202829969105993900979756817301784630569617490924618295309781422765062384852673989296070979584332017824998116297052527979997594058428445489074795957401422858739546653877075768835060067738231127479441455280437428541223141056974465771196760217521540908841769230698826723654952049259393742551346745861407365558754550505012780196724228641729966635541590173524263602936383875472706150214321374993985805502239265663878659525895452117220054267734162249799974617831269315647358125274828587717806559225288973589194828753115610297427519694993264037712084676259594368363654868644841656718677424818327266509775419983294271338522737907161036982430909920018027093225619235157095008859054972627351427483849350959424578752426014544554881559115613726118783833372435769153448110469678785559515593290562455495494484743075433319425533298963654279169841773329097677108141694466223684284424083409458483421445630077809125694548384081831888594314346073413502785179540836819800024051410066182768931969776556789956446044430801307882794786466749464787728246347033818021693853124894269978663244560040859239517823234298868662934187530107733945938408184438107898886478427397732253850097601265291994291548252142809221650654526876122747901577376438067962524165953170575155857881406445281108657678975692108481307840232432864211446740671980476766930533028375246528827906671415548554559158991596183167899397744518879811525774248874246109714322001827742519431907922291463290184426842922338145269643043254249066325713914710041196069594953248715397448771480886944702600917157246025763717168682318735231813966592287595644651893138247631231415421963862548263064093407042169826734774207798908661957225349117402478540140685969982137158434349516555163692084004806487886184352169717659579564014676936223906051679495180930475508893353479631892245171101207317211972627905690796953736750069808103178755659338058337099513179155544505498702343249057111405886860818749709489102813543844740777142251073989392037384732519630580069146099893987991618291248802676394394247462972377096305525900321277975468257651717739141456364943965544625292841009447975573711321590579431153094793047180558989270410174341700195637150170735428648226427371596249216648711787821172131616508657561060496468812741002784100761238235802342730564648933663605840750723458101545139073201181002586879691782204176214218523062417858539853519126740933982018552218648661285556556800211388961448136727623043578853515684091290865497271432002922838478090389306694115199314042110409111437507910949698330344832321382493479334060716643333447990915302346667933535617197519383139803345832047115204349044861878668346110049912829982994868612365715249549451657560511807256483552377162166233155934830800538319218065532767119750302956605172512793238117215719275749848877978763205467543791146916630507195245173317369795532559765148795843966196592000259509539484845115138090628270237452609931266717945963610858926732851674463012941885883714140094576128662638487539711813652623027857968941224690788302963985979682604232825042076980350150468237990156207313086719811548521529477384449123033249312804309303264536256916049505026974393195878860882072106884793879898338413170998559860333207440525824974347827946895695834700744404066509667517985300027554064192543388832923282122667075052766115844432183945859861868363265778869769035095383706034193222300787406851879255482770957810679532947094278542987567889568724474203486530083277889311227388311733934038269124637128861897945763954731321487906150233871819173803995740749231568598269399136969938592513376885557523541806153023262602580999343575773053328848761153738725269053081995755203515913420853583723857301324657580444993697817203117811647560594279064957862647245286127856174120043961004994234047439319187161580353202600559739287329436626987228158131924133926937352625500312880537573054260840369022307637768253691814502226359320762636076838447301893459071100549326125065787787452412587903312694813053761197036589466294831001795975946259667749960888631295587643652616398021627802245104731276506231610678261373593502683788070845310370923771669695062057449923950608016098396044143320286459920772849411556242881373935443764815040861900982428673553823124383434730652876541998177107693150073254878788371199244398446412423893108281437279736769632533482201767775399127070016629799101410104681098352544867675986407660824815311175602940053202169971731183596307014861834101659130999464447281911412656772783438796460519215324332930690781556165741510963476571303594906044187342264317834332954586263323926530658185206373096301394511506827025270270922277336128329865177624970217859429541030096869114809441729320010637862827289521207612453056401467839199555799426142813180100583577045395252346807622719748467203018336983418736852579959686766147641678916632724393856276224671212457217537217955979178891392581252428725459725331788053140357166617456755887935446383824847928347876114551643609164874902884970997050364313468167030595854018008868815343068152513560352938551123540820458342039582196710788957900685370213290571848933372127854682485802562659998813870419664687893028347176191181471204683102280491925599126792692503927069131783105363011229769480179615926655404173989811829762732503919368492511948609805747831012563569899863072678923402180560706089377593358571891829971404091936000743043996576750333959164950507416141320506412963102427643540223011659871522023195545977251718299034548792527935932552187868950494185082998030732597826509575371957657831966551437935607846793667760989675884439097544737121820798608296103508706951260040460609811827073265538220090857395641553774000075639201403154989617297488209677155557222317686301921062694252408400032818634784288433910054094695382399310136819113713658030704992678763035004877394684384375890714689801785829323299335930570924619885316739341718753652373298511646664401230983950229539772060718052062240275845673541530774935089778477387861747750577376221333294874360884943998309049908331507119202790350435690242021472054921625005530368937461463679032996777164547642232765493380323216145752210156174821812020047741844753634801156592992734369215034704964190042702999071176368201217719968955612653907461208463688197703274817968576559333472996464430455642733872624731279020187801185480952706884209446523850161078191944604247517759483559320973915586393565830986778695119709763257051279895222069431687268470002043017753757883570100898274483992336656385701254679112892400051434293859932225382304378886070705433602221681939995043829914134783073235200599335809497712129402231201062581938644311548667406519633319231725821098059651458600284764791305759985084633349203238106563436060737456179267090618897447216279738740532564398799332952102234778603968647710874038407590185907530521181288519283763315935933895525659444352552109951271122528709018693602644344823989446252139892208204248964613207152131280874139321946261446096957770490464269301942913870650702261336962703385015097266317865445660044945514475526705298257237821502268304316008910544598542565500453716275716787382806252605762827280595669968931587067876375932706276518205701630213196328021118960610508522360615803196967239795532735444542635462436467945410553371501259500144544444045743641943125169360668599380977771024640384217679874543751005354818878471737263807468728012612458318753316483170863026434293313481801375915778886070498690374393208198825169081002022068806648521807317342350221693054535173465048962835729399668779039192988762760252816222497967963279611063937085248034043293801367420690960596358153972562157345478049798997212835970734775098664931596654235784095590948606043759981035125708374355873232008932388595654969114234290257904306547956138752967826861517997501675528013226845273399618002635858032652896620548651553690709254931979988815080780694733879693008469357608298245539374083925973474174942438503410785213276706134703717803276500689669830823463308162888351303078826188963767969271132250160221430834733740869378102200770173737462380102739853996627391201959533901037094646462097517502585540970712576507961682040341045311285166372947851901863008161269618854869295527955304451463656723628981708459013973268854919937004522907868512497376305845151760304155584066538996411911563914314144688537643903233740727128152492713495589946108475276036690474915795231880150199735219485877896506374960090441154399013455195304884046224995223514552398638465235293871510778261882714907486231659760067760140096548748195794254497657987354275852332951789926338778436541467535718391044997894435384926637464281566511957466072880947877697968079197091635987866764393606313120045930492417097599285251818685392779281866438330448950260669265706972125738104696245367923642635444010339607324999408096571279048033376951633325349440435354893476116926150355959671698321928859708274738778578267419559388220530615116542520539529338072368691389077809452559839140533998421029585132040544077119791167072580231397258196985602458584903534155276799542256580559151285550817064447985409356913303579627985223787268838278188349823032880468909518777068374465183348633463934552787732785167097878667713933686496454062139540080860871206131102103952055478838902026392476965266900025176125625711599681050208304774915379355616286223836737559324565943220983297842915531735446121729335218088348746501863149723447514238829605962528534066922100285322987951986568397134046729836716607222905822658405465712676313998224717525356128475234578587224615203698638125376090296939728478985910250732049412751737465009298070943981107280022540991347087752574917044066194999593279456989205671021461216697924481690492190025743346430916327516485530933614677244067898076702631218872247405221456813547307674614685543091835725897568568742681660526589678020549757116149380762366882896611447981134803556943311233779315367522282806240303921133053751953232119752240896966845289788341937943252747842876439104422779299572873429643824662688176644134973258818241995502208794557130894567275514114345411260415141539641678009191915611657476482683480779098987011131507008756707967829361652019542631451619407204012465920211003744009565840145987061190558056375647760109100598329848381274311190348557616191209013734384499381683625517408512530690761604037153966083469088436866455197284535727815490534085655362862953636776947730219085559776505444586417171834563323112511147774582561669664683220829982455888497308875271029323706394747520729919626939451432433623099002544364588021043669824790544800333494696882961454030843210329540334442333185869937271424190172465899520781087371949371260975990211691341450410721259963942305969975807654618667577333119432785266407986508804465470749606097581253831505587039997625084939964270114965456171711674962038741595635459970713437691688910786776235797708218462263911070290007168711052163824023179192466192285310091832560389475721333467188562842400762617581475116168718125355391816816255683168841434085163851083054040087481816772869639375823931088412530275463500086123039467033228861692349299774746708385000053714839401218433447321078628049873813014181906566925450112399323492786778445906557549768480529316018513804985370371417278292381253945039499365047484153152879879998977935563098815880828027733991601442568317181595293557305058058150880747498783637765563582453100142886835222775486562195310769509263758159789195139869005982355125034461918353934121547301035860011967828694825730445830425681886256415780443095009485174092643550893872680899624001345382312970703435686457619788574528068830199695109510081027701062917946296185744756765860377621807922594759344449553861403815692336059506079074568692742700192191995185666815779852641227129188193403258543870680652690965410827387018309567391610178432943433756425943617872467895016755440492937391733274235805002754683193527996089947330561979920039055522062641841934989247218226822032221046902562915149906823629368964733418934940688506142672249651833873469558170777645502628457473676316537204687448552601078845425936627569344069525969974829731612624725394846448501221776588149296312264199737776338555303486719947966601441759528926648866436011076820284330944870991574953826563561091709731367671001556059044848041292678821975371533114574746315911378314601845571313972133601996864086170741588310781524258741823109754188885354760594308929179660550157132069704571633506762112118914334729768121717475047000506752362439615515896910808445826393437840827136286102740627242534389696434342466746772582590220464064122163951870181367769312338281333347142805636944783420776138520318367893699928806173517357935747915517574424712585156184305670904670149070849497575802046809902965791510534249858245452990022305643897538593075816376271254378213091963538740658301027225852976969857738980020927504527207375756873049681428990581381873541122295181125276572518823697935882786332792487152727012819070079699198032213199286217386957981839242736613755291933836586016848800312095307055063477431375550564649048853471148500625468316056313717566606466176926978754500702150566109185559317467565752237624264287143506140771792683804959138003038269454785509838197674278705088007958679309665970806322548390357816234604621509609316466639929632848949049074077970944962602056010328138694490705949922016244283003839453927621370463116064451776550172051020734110174024585777712321810983998601581342889252533868719883394210244522913740150868588349286016925467216806213287326102839838319930115742667111566098465017998070392747365381846789639908077096393054857981571858254728481576740584479725734609837410991275166382155123989305251310824505265828816238473389877354233886856121279908822310634000135288472168047968757906163132095386904422371114439476148007013418319973101838517425709506913146888393068039233683555485734176197215392596976857386067637150682754824891447384912183861630390457936332068176218695389487192950983697459673237199385819697546833746868510651785170551545484906579043591023649224526907185814437773735675828461326652292840879911296029273220782626024506572784901972108141093268369283727743092152576897832405509017717174733932673230142880561368538336698894936544369468403716410807295054333425836307383000591228308378482713191468906972565736541062830904879179520536446818916701529885421676475647220775227968425515254515966562643867736083371510097807507423120563526484745825471682183811429055640103499195439149427466354149234673051110239855770492102326398367944988789074938183512237019229300327042169545451073546985307928039625269252525094572882517715394961954818526018868530734487721739964957410611592844624078152447875743530120590204360977485538749584354994177983164093526106546967880265322824383128934075512827368922136190678590471632884195396963648238706441469036069304811816585634715609523267318997751575024920325685318914945601282496524214418064161377847128202556414111070550433763974714232766099469928081517586026376515554521971466578358455485546001274498049909619578073435976331850915735306967479200353361423644494279846677451760731570001427995527310996050170417838294525451233833063944725985403689320434123683977902027165804355379884737946349267653820193444144393506360931302207547748372303400473595955413483053238381938711932148253094101415641354483806477430334076053782027514821009660986909060430031098204909465418942983335265425868086008381360296698305402033218087159490966951092606135482730907257338284736533896686446419971356398069719492326457995309086135741343138870662891962984857290195873873583812069596476487475679245504508352960452149406195189827669062062335556997391361021974951095474147819776775593054510713279871097322337912685088969993154352938327366581339098574938542028815797915497292805474291915305667884310924831447921454127104649770748130959098320900177511970447620954455247718633551282035366307576820799836652781001807628217266518851087259891684914881654831450532906273215253474438407140806391719889455422492662398893494449158931058342962399005794223625193360951352734605980105789099527715526492974646670250130758385223586565249834830631301356794231046943285012983520732880404291800221183993299073015687588904170346598285510826250665957025567781903819265927197054292852667100565494034295255203396884272885529673900513876469137970036854010224853004657534586973591248214129950293001440273287926797591346857163806494216872923790756684555224440650195562162681782625499470544694956629172382891218304658117262458992936463203789547633197234374309001413998698651120013092282330209588775317379356134533889848212119779978972189343591448929821670719958302549391780569138524358503068334856731064376931391799957978332201271192892005705578929874858015992460275638131681614095771392060409178429689646902920135031394994048058335997997672207635959201344596636587787779552845101637132208974841738577438876114450848733875147232341243176731656734261501222378912723947392714119446545365435211012373922938444161018094236467982641948239720547838123648457929262938973852904156286111036254472793950540131063277273821033744832270119032664693316662641631487801049384642006916698461718854110621170582069954625545052450915047673164193204572926283946320833990232419760587555628261459333181880270367261569931435807052145080956975864745566336115053924458984928424681354656475701401364379076009902853579055215812493882238943151221569298893514952982030427477663991120341745085513208861793394626198882860498917856242809547540231492430472498413406218075114851593783174667838163953201973292321217205859668343726246781072539493234429536753596568051472512486727214493344112723082329662067488561262064833098034123757298019044171418129149382864033829034537112007190443147027022245305482876386373069398383102232812837886559566207911286390773555432644770516039065091406586403323107054703964610377280349570296388321925217467762827822502905178857579148213894489018195076988102390503489458690236915330698274370156584010112626143341306700166432807078437886386014774478461059795014983073126662343236338531880502440004170866779831514644881892106370204289401981365261514214742074607395567734597119047326364279535911298765893151074974682145330916181818136885761740135400604088781929565792804045673504788036901939059160324309196776410712771252915607864284733973432383794004301334740894265080966632115449677196664072443162671961378696596736925081546598723371602019616470184679236971067439561920237478061831324253709280414324626344010633047298748927513104233795051396203126820645283468177958610015926293591226019973825944650461275529973823443119454392811516201201508522679269850917549620643984933803191413232181851791865942649609214561036948450351524735570240825627413290538391648555899475823855966627192439153596963128900034062957595177274898191875050441534690404983328047558130585152370011630529486671138803139280140648772949770883049454732505845768041487823920813842263849788149096724905685865346264674313583099233376084615706044139107228483364433177258210669406568693179742516482489135269872627467557697155361439548787760227188503782037020076322794742868937711991827685722454993123476426275817335193991563444924454421656338472392517114310316468919718865948696884023053858772530978142641280553967946481406713000790047795710620872811933545840397350861102718315924608858963975060892523287585845868669456599486601788492649491438147256492085188799629385759186319891786048876773348260713216542813352915737985114929052686049914420080974300727721055670509236552717225082876191185853616138854065090099520211900935936353606853532527318707026731463681090372886228593513015141936533507449174262497822790099566417837559208919958481944975710831326021550490789773686989757371975995639409648321203040751188509711920552588278994209472149024495733518264945012193472050415737467139827195179638593543515092436370933476206851181357639947443525393255744989631025892756540331822797023368319134281875192852400148713143624420993580708856275495768027539860838191216043156203096137573930464954449211227016559474846824320790690708003312299179432002565666170837653375004526703175815892517031348949628308222501658061037513976502891409077037601452868632923209185838066217820791524851222661526992284587291271597171050641674217345096915016407386652250018864905107299473216867365369208846106853000781899413848857624297944993114574825754479194902687821111583894243075433006223111554129717692290883826486123804488248610511382308309226464000587450468016151133649079500334514435569171909885947826495701178278792772208336004501159191479377963043423771536289341271006874155785860468763966269423010652815009437547311408336513876595183859826072747606039618460216434390947066655720916269023132034553574333788794799530909091948436815860238730409675329513825259083498095983525711950019054586407100865412519059006432258790321438594576173667146887752244857043710627223944774585510976850070042029576213822107155624785507690075677947714641758236848154912772139284229124371615626029466685384630494842547679250258872208192790443029214570357457962184294768050259685657238979295084585062454946827458332286202867619354095351941822884408194799376989207626309723678459657590789036859651172941043029862660079835633082126152249599995470317836500533665541176566426717125108579402925201298200178807283956319046243585215907110890663160085011116427448919538959929288836424685428897810879724112851167974600717093477852244641493351364308211653926772366785758176638175323755102211001576188097257603151995929847091558809195112148525882180413635661375841336836501600273762498305981193904593398598216701827422573814200529099824677073211216537042552526426066297202958592480323324313762259767124708303044396710385754641150851936409710890173299582582829896117447770770918306494836924105168354399774663752252809236340212454362688577050596813654378019746906839762037248195336365491361134278949852784925270423386450087257875630258168016726801412312064414822895928119100805412020561101818017698208087803858987399747475209264277992633146201948774917180511889040241837088152251712658774563527296460277205195167886223637632186095180417265397520073170788697354224654952418101633011820621271491480107596506071664714752715165318496020351471637428437292708863703636706330243306411933432685545403661352894201421745117132593178742542591067540457609761027452559706719351638808900859878877965021950258440155680724446897514564683823235242715741156624356859183489551510562043835910961120074790794380599872566251419170785932885568371103075082138467727779127659449763994494914880829979903413037938594855818637077776897099586312241477684176232657371997789816827130372440108660761667495636072521499686258869950666004019247291586005013595244180430737481568417067617586391137588396779122637551249362564676225561289463440000725893407767661991916605541165341637585002330985048562311995692097902838284014319101448123952828918814137485912552421473553146095590855122276634589684248639487846544633362577897301334827694617738225153299197746474848481097224392814819719571776043959363407854007850037607075276781163763194989103455742853700734242664014010115618549839540417458873202878882708142977529259938015930460031048974849713232948286068657629378974703700129794646136218555174423404363827302116489775102838967266876216684609541992429060687108242915202872072416090093194939441338841089967879638229091465605744116236679751931925175222854765845806921408864102810746647849778406803817821285396431599961526518095810679589471556577154283092974705263166919008792010338315560104085718658188529173267035876120746076034889346476862755988328742242991127161710104716459293854002995253783694816078464503437870972847521360983976090809726992885713860822355007091870676016297926003137043885911141243760361616484905052501070427812343871612917828794148831526898055853498139088557956859996444428208159358293869047535721379747706383382138770758578496892274792921581814798744482162772446360518326793881023495272764912637210065647841122525489150603990829839728629234209908240035783921818793874007773786085518047082483498472605402565734566186216717932467308272123609471228516255333468157866615108301458066989959726134098418765419580375891477360439179810589969781962718867901047942205811148584410449324562668409826427510442094071538678349885884737178254251733943141865694818944325731336727641912408170759362339510987007409258410914857614143245844139681692334726621800570613580598378058559014550918004667417500050600925974553364228700558430196875834633460903752747980321156652405767239137524012732143751855859104856406360480993226238989898286992494175784570987645983433568682618687697322822741642671153422462799888069220849711493299350801935785860946152237223505797868955196586056372666082892121292298536141510047629403164992706045107613109544386490341360661194323838037693197075661481598716064011373995281015418561218049765407960992745075622680393203003988349009106466003016977418137065838844775051905321771366725096338346386042354731344719754604532574880997014903455815200366556501764482669931298291844874763154260030786617458497089325000005146866690115685073084698073401472574499312983883985267447257249552604346155066464560077724161317396540411831519572945280057324469898240014474948317963029473390645072355495186143674572748967596213370056322592084482189075805978142029667063027381739336284669645853432576675249223810822260520020428225073991843680994999343279010856509135467597631385086521386593837469848195024804655448292898839224643662679554792069077807638815533519630725182728143723419604615326908918282490957419656301335136556820556403553238910541521338914500237028467080877305521909876741521779503573217197345153862597398941059684127321904824870725846309872471972685816039456814945768661192636677457725958730720650856069939677759432685778956794067567699202322750894601501519229165829119500303627938947864948196859420099808953883353045525471297569934517151215327306971826998362505322758735446092273389591228071265735683539626201166926546699301907474511242216667076831959494906875453624609103625498940923265196453166205249695902284323216046660078341099841539906921322809715926641416154199965106501971433981124793417411274965068153367340439682333514213210409077657600398752662415895533669498767240831153518320913891471650638375054772254276053494291464233993254685559764697592889786368956971048666752891159068645265285044235857558632436489419110852539924964095383053866722604099964677182534115617584937680838343648179810192616060923150665623217984833115350017576873320683743098666465341366451496083210023299906611357460657598076528188574896861346406366679090268953962867327366546330380559758379066798806475088449445072249685647751009005595713317143096711513604891190378882996105977756139452223502192019097449174715150360814742364627896361366419499193220971627378894867810741835007366003385474827785599939859610789102620666504307600746237080938084044519298912139217148156672023608858614356621078284151878513199889870590378021506044885235570125261860542680786339812588374625449477267069664510411898164777513978537061102096886022080689779080368828679444023791976479832363682783830750929083799841179978329241313072346017776941396205004128033967319251634340797579812999579796506684743748998434301654894650107498578747315355231570762774490086151962852283522179379012252471920414493893391824869131421166651761232587729316580853750764766081212756659938680317963412162446700244730579450429794526006859876222357509563477135091780795689159345233585328142960236335018628327239251311793854936638127185051676866505686569406829113686463157416653384492639087839096175456869869208525348016405665918084504632989825531035397374291677722143979091498636965479538460197362263213846875203892707548662743014482456892237234680586001941184462775315382182123429843673848447607509465057039042671240597616234223130840325326282745702945159637337283601830396757304727931165591449754985347196080459498200629924574878659295762218350824458611456491628894073250477052495380387693188447041824192166630929229400714643908682643697279232533990277098131186774379938892658518467984045708672626935812402544670077039464616648304497270750926469283003096629865005996594082858160154603501724018420333805424440795792703897063890338463217193671894623824319400467009840424808826689084382201412577270267906053747325367738299710816469449673820015400506492017890305177854898161222203421172757917095613196563547865313968153089985047428825355379721443095337846839519305303909051054201973114682959068539841649656001717334719531729781897561399665679155134246067215681134493679234981364641021464404440105853911763613006259519231912618484711305644251450622310727322956641159102431980056532714700577046801170196175483710115216193262212299042459186095987325809654940874172687125736179779718794203820651505477494644839569889602895352110450244121142507195626955223498020618689989930857952465639796118103197067250964562870732268937114004502026869640970038109609489882604193764162401418824199918486908456779071453296134538778521764499770761305560285835365497222699099853064926603718002282023648595466879146949161673514624971246420816667186496053540701400530179507738675173328214765430061459086697508016106243516199777572523693851668222344224190915639699393565768779033285941583108434339804174510245547268526514276475393928986136194812448043273354103924176274203238622781132882867042189681093663854611430116052680744711682279808622465234074029273528279927550373123434202781091070135965611832634003870467335677504417150405330651065154722143968795784001031288321995496705474050639087875054086589267798664223204402792168619916601415528621785949487670281233398400499435221339405394114392987931247658025089286457180832502110638955299628393777245536240874105378891850681979237223510544211614972738857039799093235323944735892028917929150090113364293536870877295272275321864091397068035779721509865851036400051896971226514561333679964998759474168347517283913088456236533482269979413159763974811903353975953225011343481790216207788888265438700253740482480603089182758870922919425074398903307234075134807045559406485506745154901270971799738879215398233376983207317556687136349080102762667689487376474912182302497186991860618475215622163895359626173732088886426949583462664717555063382553421900220547141930620420772679484972182529699943477414083143645422210026375817552837193667875779410415034897921993755724481663852347189300415522482630225525127091393976552470813547089882355747542405971342332945984283720970054185197464371235324231164567949296285495849054470523613314785715181382235317224900669554852488003489538185946240139531424113085774130576943409937921551384733168721283195821595426882004908713632494107590005914816679140624383997190220651483164386236913858871898152575582673638428729663702243246704455247762698941349695980951554714494167074282554666377582737642486179042426442028924842951954254098796504636713082575432915591483188401889093466530556747793433639200172848479675841801403314894651128840700358020739207989461577497986435742400240929061278405187389706625279943824879326891895918174098069381239710334818037781002465066578357296542401764795631881517551060173749228361893163714218662618335702878900611048622774281618687954255529339825844640745899057804475296944416252953263702255513651737578590343923538631721196466672278076151902748050970925148339799974058180729319969407065311938152987091831875230715502299898168145944002859494829877686189120709844996209151356546816195854470899695682847267373689554396729793235352179880230028959282386169280032698231675654839365394146104400387071201425224516851952991856045765484864908692117925468056737820370968149442512053646804462974427371631012858370113108015830834685861489125930396679529323481101550769467501963730420409197804723746742619375522572981422424201899523317623302247714258536908280986354847729725389843154078037260828829219357037605037574737974737314418942398930848306407840981704237348971769990385149880587623208056500175691033494790677985827168175214477997152206348745325473158707568493824727869277677279918381002621999933858646551006268109911684055823006911770324629241567889774421296290950799226112483213009822881397730536778456270375490419339379904686950967721429513448349757760146491311512876143613577325565214543486639744771179274946386931790945069565570127090861476369768593466132892101477567586871925635403359796332788248980913314524379339780313188421138824288193682368033794259362200409789656474836924384062821829362858913959937416683823140091822126123609114493836983105099959034780596660763716681773610875297872728897426893559083232922147860865959396755902713714008332181843206691163812737784709165626597028598502968641248461246497240282241405429668078467890469700155553269472049418057240109810191205023194747215431063126788057301287384656279906539891426673790144883840436652675199239764789149635924394006067922430129155180655831062071332832701561523884685784317740085309668713290394163227998872999850631514113918341183762936167780332228315309347420172386550141796071247316505337061242512987966743941820615760752397384982702002096965436791499774476876006810646647400172194471976612766393623001645660720312369380531975403617121689235408791620116131624988312892522218319167866213227393750028920673153803840194796344771531211056039957438947604820721622791019133516536719909088513930092499788866987701355186220512117419626780042326439730453611558461313070432514301767238944020474072439037818892979322630805675775950229514683610597075734405471416449685980931419868890652988982561661260080770248890755314727339044523103023886278079149785670643409240722761228791483861653919125186559453336343138002510056308097595923274436595779885179860922211301079424297318231246500055649518144256982299589687564326880219713932821329089909229870447313465578059910277262817519087410155711071510466828858300201979173759000369710787013375137894075682359561271758792856694009522143042953223077542806912419405596278468919013030093587745977891384910689212715345746740001211715830575115433201090237587915644872960008432728425875198415486550494251592793417997913501278897317973243988425352788695193133005200581158358836378517375834127724803479790929431792204797783482648847606619446439720601291655348201590438957673537213897730642500611087266695536727248470941656384099799226683834017901433382500728195530432597723653411997588480542397741886394218013826273356917533272274877827031939491656080504928943684778644485551778026045572497232731920482300323843114343077726432549252193283751808210113193269828712945627200545182846000391792477932038555064615575676840528587405767259179144327004112605044477297620216488075273562636912895050739140278545694681943225509619824926529030985456133644779719062194421979785122589525343183146786328837933516408287458232827252013414172410794626027652049079881363504370937770591794847311341388334338316263918328751770076298572339607772598873659635979128047898424441030649986942406807514607472475460940910249156590893374247858928883378200976491751090346671670920245363927437463505416981010168704259835760271073573753321333634837245093278302228068864311076907053689499968853942759493415341830520910735089109738173350331325043523538961420478003177999705308781562093539592934245067772201423683132098774144533972385964359761154130060545567513393080576175454364327635821738741295630008121564743633082852222288727393234444590552697020513065436248117254432012061308060075827594337622450549522064777501628667856566034281957457345180130546947952266063986617576666162860365624588262094269390851347137999257100061758557642578741776331196930221093504076468358457330981028660949228375857690345966187167427165218163106166173107843029585840552633455812007330795632687986830461908849507857924933981546469233933109984351411961656906333903952365651706595853293474781767366049891180577903318280942045758434539797332190812360160064180929294690208577023337629803382819748231100495140386176010640501906416374714069434053402679708686806472706118549943754574390236364068090214565431352900403399025748636672819153147428196608250765003472116436684239656018344912801053046761167235957523582259104944915629704885911620057513727288087898243610816165609357468083230969362728621692013875053165814742854437289668074947033862854569878609063123439641273802972522588379751906755310696740844783202062041140631657769274497911148293868234396800739550531351539354196381986081478833723657029652397778845058633046967869881094219178759207751065156258437962682673407795712668716457363013224502473310724219444133092570216149903950920801660593052400602917768275839200158193717490974354596984263521119554557461245451557393831342920856841347831082959221646968078971759261995179250508584369720884844759430693863616111307474064579770360088767976446312624103326422452249773490173679365128055269216122918761859039154322525124988266227697310282759559576416209020128926179401306178358991796287771040467978177562863337356210607370922249248060681635508878697864201304094916504233981719233165226099477056151456199413097606684076578864585429949480937281102148622475151479858622335662232335099360551295188402953579318667414473577436621198135815601914550409790508859387080037973994297083619484551603137087083410778754871346480506069254866021309469183415718364102189335237841904776279681872903446596926910270995288309652328468537185716670554453808801727188366342767567076546469472118753271568679354302161529469646897781822867284488523453420994756712566685340949062844935385121557804426811780698645100719631821738409798719716461988831276053637061957950650986918740748952787044256736379033579090300197053222041192120256663238257300561589423106365931028181527739002375113735995907028356973299876479024714035728592261464388636483151514128500356690718925055884455494791647229830661747399568195119154685781524603977422059034309284511763071336793487771818042954221074880112092399438859498458037188083301740910352614309084733894255927192371351675859771737420301012388170077595168642010284772200997163735725636773580712942157796879480034213796911608975974907737589430709818871029703107989774971582894067191646550618217419491280947163192208468537801261404699555346814657112376886878622640182008559739018595672073018063016876935158198873568362532119745015398517360769085512758075743669045409763181688619889337861778569932715154799704591130859832819229016269294942902968864692819351248511913770031121976269383772407906333609829416036585270550679915096687713680211876513657796001638935776702428086080364784280019245425467348966139158498419439343893202986752270229461624912487951178792412181593908086500188670509940735649233185145123276100459940367709739468040758381371197959996265906842347974579410629514729662008092326883447579543973171189055593635500035374775177863934296564337982867876695375071808962676345671055117644031989419485535788887927249472238292335481174314479507497358453355847524598457601274926848695025637243700277825307393899225153731779990467282553023147924111538879211839255105638713994801194338785235238068143153783594787559213014899223946146943656461600157079313650557289990373350539852679581187059612556471944181435166358825995587253264062212877265898641281495567004132407076269183851483385989806825699846577430670178909863409487973787807986194162507404167858239532590122856518588849842337686046564815937872587451065500924964255346532312485273850096578503305445881984762575875622243187492042868323150230145418323614756527527940501246813218886059845871662615240520012250900937975085004222608868589468623865938792620666263595192248849843956754288820214620966243660997798738154699440874949083939737170910113329651755451805292424214914179600019280943251244413209887064199261122546454679549733523738620546940635219152820065249404022571643699722465734401991986811583543587786273239116267955485427657203552541077274218322679925691628140729421661118752416192295624763408028482335071154619554196837021556968494118392349795315143295519423927314194486600198638185017264616236843554900554224951974828334498901584003167847337442942849680881616510923749330509883534882560521827354123869330125867685443827261284760807935688303259108729561985678372814554244991906744023261597319933389214523701605069349330973994445905137805590178701170521210353555165406304731542830533686065445512825859001542436122741757657374553982754073676397595840602351416597256460059921057584407393911723228282792352608969097397072420753474919084145270308223899677142183655008651807465052668018592574932406660549611511679042934762074208015005699640462939200707493078373594076955450449307290054459333660760248710825682430519381840489198050787590850620657423890436036467654381736826240684136911088624772840158775594290271884601984848794092766062068338968496502959437090167486652172919138227852807369331314709420082882108563223872393398872074422646643223257846393596465661132218497870000577288484564407765386282435979418884333153681615251474764555926954149480439420256575535620281229384623701776601209055502496682094577610176445398586676098343124443836578442417071491088655357974291017568620818486831939278237462996750457095943872732747441369852485844105190843214894770135115496676758661317238590215448230167431635832586869406628470602296727927222011278884678457542331513012559009468384386047812747587998067644663968803219626625438374921365420769239214377426374998900988771294878583317421713965166158042815313617970727351827316116234791229788845478520390996029286857570282874416804098746875675347997430224840309811411366700405962629166542447284655795846651214660893597519286583194301850056490268371082198360587550887869652465402091158774089952594681219504721029280792501298898004503018495924941144445221406955310557637807491404130786824614979202995444015162678340552207792037991578759604434739951400423138915229159618885944814458863930920680341137883564274478510101994173616989897687156842502767459017167419000539070863696524408789344814197642763616247412513368946152001917183431853091949549624045514813904966541595178811890341808852266341040497585342003601213143094192745015762387765181604504622903209543107728938973949941865934775913821917775535858894418145013382810322137505090147467954936960394366047484693111005628188900992720029063657953921571699522921391827880841173282895419185903567689818556240881009195638479182905401517513713018867697916272984613394751675594290216013351993799573499758385016811541329996319633888896270125605777556273514189308199535875645084743220225258810941127536094708076876666910406653290159752198775443897747653535634307966908039904704522466084799172400227620866584513239638435295435926208582689340042256724476083735627762639703333913508966964265857654070396902697354376202733502396234325339849628308768984569650749049398334909205415089027139441725098659497393774736053789209363751935109924909198177382541646164813048180504572681944482168113484773603908008806562310586696173286184990359344909426413023949210211751678946070737905818028716455644079565201527129467112958844039712315135117322363730370854833681327292962193294096331499030052470066920961874624713084591642277719881399154086875253551247904277572562743697395803962096401176439935541983950547634335757617392536132440330667505706277913718498569949327611998416189238036260247853515794765124196296405283134510155308012698955946023726943651620854352983153856593450658827814698731346357895476393594946024866565526297658785500491898875755715154562052399158797969185842113255384538525139498527867264367637023220748689541046127466703701621674752323177133856620637314739703497883877421130738770176876912885927312532814299241091196831628190469920273132954076394536928295799633182042470524330484231537909063419179714272761298345975473731512483462850336056226927539024325689002995296840355691442778448898368245128999679407311401849841503303174276852232676572045043482490013310435705779901635605120516711994422807117392576242785077778816781756043040688863925825848805377968310294160452322441984725032922841854739891684962834228496138783491561498876340557889597692027930764123603176351972928733973878641781191858962537884987179633667410968606096103625272837116523968800709352037283498530405602501593948089339867387002967090474051052400552440947216154059380196386028460757850516976278978093443484202846594000642356917214542447467632194915867550598926932720306231060898631596939194094294195532823583688950708467997188892496745479903788857393495303005848084703905445529962316146711332569137297275525003840259604028999905107945701428857447897967998474080646502659749347096150780219642646090926287888952015277447249346124088523438800224859068741978141826924200539886325856443406403376245768136645913228042174744223939968983100098266760361968904905848869462020294038130770031650785672941775093097104959695960683045401118324302901563839113644389133097468598253083467236221876973258205454987539624574716742047419007143521394157874003794200390492698456193647388747797592742353791146613349731440359847479383960823133396839034687009960570416251175682799834103862758707886142031803579396349274905028144487453686233033818279420165387851451000162899332792451768129762379004355165056019556440259530005424198199813503041377221668641584228086550316954856032090891167358270419082796765038395855605095670694657542317391207941314640953868423055369733094209625513297923429408125160169521265502709062931234459583050383351679936398921674957808669861173662228167637691113719619417816155035276037819768944287072078829426368375804324789751979996724826354293575799642370457708392435948485865983646597323044045202834610421412006876938399345155822476883565421753519166293638412843281701973070801191642951740719535199622762902038705192544306901667565190337834140726185040639525350036849322370235975865417658628176400225381306415094848732390990199555813071671402090352168027812486356564143283190750554888292271526142583658425658663262580896056140029839334759556112597037434296855292996378125464659267401607902472072518995307029198651243695349585106717095555382945225680254645402726628506242370692525085624419470663740938170638059898139771794331525170387430698893315379755406945260676095754344979768328454216163367382423038772742773154602306122634034265429554674216925395322114723981992940736913777859893863847820609356094386738324223400266051426973443713161773063206458268405496053341142791360715414545793628541979551643512756140372253782430857151019069383668187827510163785369053193955126713306645219553820964931388166833012297230636844747698419756253685364898883345662185719998475184346232845465028888482803727522058541357001113022125483800636297227346284376963040642000299439762792560694997887850606157758901872177398840626359561258012849645082823490040410271900161109844301078058690330076311878143867282141071257970995754034968576265644276867212853868970575377051871426179031156760235018336773882268922395000673218266019307870224470373221009269020582158267777534270806246050494589498061478750128284686556610346152602514990516400726461324093553144325689371993315788015942966861998452557822095485973948604449871080887887351221575752768575500120390303834425048660775706351189164541759772846017973272251595608047168109401010107096112355077490553480990255858411652132707229089640265191714597659177247463611968393865437505164938806692844256738879898615446005506767258415105720341333127745257971860551203592279278497012615016775200224491346139408261976379240204995520198377119494863332078843628156844662397114405874853785172335363879718398518574436973160205124345790380538811973037141222168760244105186015931549416532736982789580651296780128134177794858779789001883059099894430188489569111795243627450387904217578380800642162132884988065849038716005557964054488795451973201165177916731615053220572660316971439618857750142979279900007542217134233845959216871124214210211337377933106748556059396838082147687856796477148372496923493787547161633110874507393595897041454878809866727246537739927909610616079138009171411412837603794807452682889650877881631121250248144706934114210841627517168604769386518175709807989680807514567073231978469689637745528236375855627777446286556403358136117642202337642929572529482437299926187300319041047898492927427055961260630686957872182276618846377743892821752113668019263763351379235119280154896553660042599046621159591710684193119891910091652715608782232292118819155399312337972112833949718286273481081650711680678053340735522139377892458295393115911852885984093834788875993649564157113316764692153037567545733294228652571783986403393720762278729762005293819013303870226319245801044540610354952069227535571966932808696495640766972784906176212775032268490838301362380224531938090760074809959260499522692759592433377805895435139305263159524238955777696147667269035674345530647341768618699565372128137067525891921392431517442002815948731149975892698387546164829325086623406413878847470381682293089931958113083349716947276611484418590276853022927264749467027070797325667396427706261122398919735347215866192880389104545859044890245779597524981181852108001591693812447290293291527773855560856145710309206949346041305042614027026098278410610137419859156917854767783029337816466106365776657406574839066555146984113152261733583671229031063271625339290445640187223439862205692659131047866173542740579166706618415031265569837190595635832675936730196773294331892425227706619999654712726842794491442562675997778033759213550580916093264738810969359515522936385025660817529122177067628475731660390194619493264487979258022193788047779801758351527691407797664652416529660967488450662170548132785028000093029522069945160348759032416697575393862335512723889761017872603742032210412904010471334495983470554733650669829264371325601924104503996925331048202811684856413825238400871067758398394046283959167983910541937869021072615588137658005527675107197448703472834954160760147425468532385885719735672911901802900822535854527440234465044851122500271006015268965130444532777725518794662013619022396329653262340303528295095924058524789866413995221369630629507017631182087283935828451405126942937305756000780035999078991977174910232257993270910942069454918700911689419144771570880779905900784801385140359556309112554778608618809281702339577434099704645908189155863087030070925600230623983381606150845742484510368970101456038583198820266196488261400022077686636852404811674663345993656985774857761696567052638856615986271786523163880279798690176877386534009919121947184855609902587674449782470534897461209314552113200541982745969637584184002435658256849196639958096619065736955292545717063968126391737790774357166546827502297971856835524843219369003810839712138366234369892519881659084012085138206278461918457456970843444872601253552937997625451948818376531870970001646749181491463164548775364878392036796762395764590605207014443371646777853994640538788528263818225090095543845527179860807462840352328399646003789985874087368282574950622645866217117700035965001684805240536581376890577945338032480009672268685558859250122586177007612251282147845157245160858874940644650369054684524499329064085848427367380350272860520152065655233174481246379373702140276845313140657874152465524749594042671861767192694106195185249044599119220996583615411952445841683657885681703138078949542984649055700261493497020671020402949012211410990606091203562838966234969332145292695752563586042368595568241102429341739648192126806673193525119435163497083556391069590697807980165336757965657286340182965454344339317612784444202993793709829433005058547577057522195737814081195882961067548118951209437988436526444377227153562258642964755802080264884301220411907433570953767966387133655145513208996997387576409478839396908601111943442864325324702483921605261294270281768041457134416730666680716437825100525844495865795718484433595180549817110770857179518861790913613793954295891359012264677207163820365609190281295548751646586151853478252079292012937450384289811028597403743382499628467835558398344040109343737700523510768080294306873900519881612467216923571510594516328670814980801762753472405800952490869540285329855063686383324774521195548246589516419146057858570514538779107707844868961821914162094022877469106221048934213388906316019358717223970353771143533089203786957773578716346070687888390391006839464240830178480915799386127283593041279180508979184544598724499206071069536100435588360665726726793463671495430612062425009268023324671484353855186979269520254781924616073973049423497556521113896908366582086754827657979952802249688001717800133142267212294493908048711109310909644035306643397839353698106728618865018296033495921399998147109484173602523365319567149697833001866031877926776770325683533310515515486726401457922474977621603235183777692695766888990167921784219467250650247273879326854056436302493258610071210010460220990678708853096886983402567939850792752615185532471353233402104876758215354125426424911723340292083595448269961506196155605262216723253937943413314207797568231906707384452309735300010329624724227086065222084867081234488574539966177161412345923843426171632175046868114295600003835350378346235343576644596125328882801468099124486138847214750645649174720742246739139100615078447927800026759086180402615320228098789139150341889328869757880561306050318834766913369820471067934451020017629806565151882478611861584603592222289300525112633453067490530399460590532511482216348229817763182144451971731357285268974078091399114928028221677221312502768487130814895297417273087965022207406634093425120720333947100206198173632161822564144097637410987881126159191912216798624081673804388063053894188266482297960654376338856317681824906489845280955637019693254819687216545807600743913969489305399141117480266273945485942850200409441604249055230405995260046253592935579893764829930301182666712807658059286016073426782309393593685364394344546940022544299672358916657147294563069894976199277495068236111060868480721241950652633357546423494629749337462774541317896301049538176984045079589193124940555573431838922252196090762582448056560785645886025173090074094751290541017488202034877135904331582014496313100264784611180540471648815918684239434980956613214587940288509857801315394422025779337938684704606854993645186784034095730345742553484208718141344238468400287458613559039355627806574047597363831262163049642836756459595810275920983326605451522453507336022856879713516960744570256583248397966095569494875337125104067386871067151608917635024628793791772948012565703236750109237159584012997345637569809016554965074388521490677061458833135025188938025869224146350066328878622495719108593333499318129575408623348494280720523448098536836525880618427781486509650417163263167088824957758166714128550628989480292538856670182255760384730189675176841434280096877881654054544098245132403537016095962115315515964559915968776920178680932044493977444801421674468098837820430097210587385991185582514172601094484522272509398060572070667265355668089528746191703817249495433017163259183790944246324630094020773005640217774194528190334799042303975481256854549988996138658833067900827477855309648320812954348791800793302477037232521693824784401416807508152186642649226483232133580438813990290672101946231224245158544475304911965567983402400766897824196852642801771138924028358791510009833817516473701615822673883391275162834680271822898521272141072027656463233704383159083963079646360455543232003748239597737487989378420931652556548124439937390764867456692349575436759725504249204449518257160100328225764180080036711780327025133014688710855357682626014045744822179621082434811123349126970725048412707113915173432918219286492564043952827250051432180050697335449870757113534975899536118866121076177831536189902130915615009982885745983642773056561400907053367032393112380526646563170847216482462473292359420745846432095138968584948855793323753720337627208384743031807919806436617920868886164396664443932928975059533894315409851362318419271805127168837379437186928362697219275522800561911965701990063604862236217772134266627649512001060423201856599972434119708366109120413705576986965072963598043536678708637404708114212138371912151484597461980216228986310464796463739924215115301069141462131670551878892775938520216319016018152466929647059588529391855596832429742320166151500014844701841319777135824652302966622725435617672164622714574980200587866811044837513768711052039914603680139185092603766336684770958969646493710344136118679066646961311430626002430123803811673598515346474816616262439299729307704072492732880958569981485994928415345500929549691240980680647639231457999189987337457489790407040882810038547812858210689217559058174206691129589966273379382484088035143698961867944543658187569527258985533540601114606091677221609114788894448752434815475906554270668909517904518777308954311695646902618859676111586485240154027353476625106966720320413024904307702523715312563563737769110345249340946505232763332826456128049334456326176322530302273499390772441468782893548628245372245248092337111667645062717520933911025036949611649199919953764503041606571375282824362264538912531084350448770847621513229106921037409350612675344830378845458974272712999464323091560484364909396734879628805690522442353116648038630850950855218316230580217270076042114788241684956512811761441845448196107988911426762741389910033268177206088166494065955380998938981416587756871923180296589243440569922701374827106028043660827492197169477069068924146635534758527117230179293300100482702970565923730916084170173151703636277923247702988626927262879194945677440823126419686441496691161472430935166310712589514243946251170579036206089161826050978215926942537273830406985420665922917649294200307312746826639463575629236816601011618909677261208909344174978287383547229774031167178129012030752304163209022747778483192747402586093384861717764776389119948114265002570999029243388361447480314008986766435953905971844580536228651200168808654413644195229572404910887565404066334271211571003568940936268155668183006837079591281826832516485723661203377652425963313926722565367041130337245536922602845983435167696245270402984478546854481759684780433889937500608246207248140594858800322534428161644195985477851508442960476366158253782171358053242030948545934060808209209321763566539863152917181417683061408515834934562582112062883887250148648106931067772782823961516479564206133896761840222477895161977293417567700920951510053213132022180949393985472660455663959750715667255570467901076473779047063573745070324242997157116286345621606749849135705236605399198604553895825616315828350065904075332028132477684307134668320866956697727622509094082282204050877183605904548777535803394635172278209435752945075660452793823121741409020811895959841253437854242058998016934697077635071563907639755695004725795970302785308778085589924305283579524070917590883973166020687764528084671400250249800161539507690620530098563038421622399908339738133382191163398592803845860061758695336442816531592065114920373985912082934050289451335483378331088070731779675759177157758214791220408754463616834034054849055264928030516148333319356035824916469242010041405008447478695174820621064062078552792396710097701495866271759344757846076702934569604981461734287130481273116053382250769090316574313045132344406341412339625100817048695029311565725383767329819225278305399074932237259414470665798511345243481548413367417645099918750076009106961015785656326809271476775791435176283538366044600226305839813105752889412486793038455982837712494782380992247664318574359967203051299308064775082973149363734979532717146169860670715279710598936172650780662354828465295905858551279368383501754035485325620476278850827558658819469063672421311599548557816450028715258587267844345129066866173269940000455694607360648675338981742955679828967673074076163187166821313321952623395496073574747477385613345464458871206368023012845618265398045750226005751065437824407967532326376206243616805085178710924336171144500191876353619961247800887593450504564935669565407325278224380436065941001321487213265035929300599015537393193472445745363038026836749143384643626838778749312629836292412340694943933804879516372057944196487279878481294069755228004014099887230976478185200055691976875463254994156132404494755485399755813671692540840035640537330390991473765034795276747492200997368218992370255388842353413710007885006946464764275096712788597805323345696661486052139567588573651729897126210904405265589366783671980960510132471349410219096353964168092178201896875706420451387313909158261809194564122668153588792032108263706496374410142956455738410140933940800533437935815013794065492884245785163176820842288810685768732468419273501969927243722442385699805203038529731807737428286286072736556014252092176846748378990446385060304000590820087147490827916267015048470496839126072279961470598153334389339180213624504314015552427031348499989626690825312803032647014906207040296393543062403241280435347380429340746877575489962944519629120043825906388513405200912340610241303988454022737943802929158299977592337875693362929758158060494356300074536623991708310794782596344059974390741408338722948029401480161989654015895350637454685648476107429517746711527570570503023057873673352555334696933013900383470752244256897816090353439254530472206103633739617407381445493889225634051362429627444860446233685419625675007515449326799774685705830321085913315499397450984660855218557408262208535317803896097194513487643727702206698245901089608205451630779476964312037806376048865993120786464970316624104221876548047893059961377065400406806078490404159450396016216958292964376110613144056508226875773686710277890170574252553163173233615804860005700314490152946955128805157783875030861688857901113473239711789137861702165130638593306054922147744284020740497374851460803397317013296004925812457698758135022410292166006216423770673444608787208339109188803156263543252222826226816004757721795584120809786591711504614993745619417688289147115184171638666697847726372878826219370420421253552502833927042988165177232427342036274666712719353148946970028781207184437772116712575031557951272772911732138025699212418809438480046845790451722503495579647396248253360847158499004748345101888137614853863438671660624047326115163872980701627319729242323673190358231786938186390243131632676715748848082909644231387412171918206283523495221984365939643983330122943159385442065063839004431926150840506876681368428360726638374313782206197314785094585255054459459647667796204527637277621943292150242255383271938543426719021951005741071793792620242186780278199935970144628389941092901041591070627428557314976155772147694087353564623624279993499919270248085295638520286544635314006499854362038249484846608950370755717890719395765632096058456520019817320514686896136419528298806916773415701139892141785568373867531259422348327574726896483760695929454075118187620345949033183750502153484099230201284123350992067767074581717844217225655272803459538818537897174247076267617967973556230881868983878965778832539709392673285130779672559810123036507247767962912442883942995736733509762125224240481097486867524027125326586425112113971358578281587114083353224838420502880708200977253685810159765187527600356599454228061454610290715290932174592821297288847088608342710442471047830203821278787778880380987059722614239386391457785775526370991913906253080187376254339261575401728520406697493925800959358568825842578256238414986962501389904861491159339087487330669481303517931532672893346083988702841115075619536883062516298255819656495916701992942959222745952925663452777078749699819940547790764724389596250276609160236226436700369679279432157891342055751664345837782929292839350769936948524819291891073467690357273699664060235384554604978909636880027760642037792145396302144015915521078676721803127393667920674016669740311374132525788138086589743656556632049066671375293529589118801997522301157213838819639747588791553736825619469810819566110240041802882172174972277078382456277197738260536414837208712193076244112540990278226800415343463804555841967697667436960982214635717730862012592107112459552562046087428929813573678563778698553453490781730931320355046192915739422255287784116958997160204589835293293205990074681883712041671141158973588744051365545346259317418388800399060740994090277170639966820063978683763862389345508532474058567111488878274438635698459909511162065345231282776399499693897857972737562712733851932844611937156972505642888634518537821274092335654088374777774138627307694539905055701003057110220532005652191134161587645800394166477977567623506134264950581522624358302285321759900710482608825211364948326490612777278736259738251180057047478745217230165449111298893993406760221992594630251670198963941550405236945757844977871522913900506863074994725289145496622240862004760970374870409694767228743427583720930632491611671248003076469328702382717464151192538094483567264234749020204506680182397872371610752422485023935234961833857169242980507969122606540467241912887487841577673747830827665619552686770297045880538712143265073144650135425150843937995792931137127724033572266937154278170470084362125095654536764491594982947453424621921162882640634504076610299149398579873998523657399488277143092570014755737674885622928781989765757858037345612132978946347499823997987273400516627598994059135679846936159086179639773254953022349259014456477588270182872850796443822377191065874976660912325328390107532212411570703752585334175869099400020193305941917848704728752115588370941154079855628914910363721378248022862331136739626060289004683427535763745981736903455233881082122495406736397034249806479652938521284512337080493074556676853684904855444980802741799799580358650443918220778811466435970402179207610977530035728630068496347837591222206211303627748510657432622718453245571803352910719155267884211589029444760846637930250208205401368126937657822062827874645005803626202503519740771401725306071812634669257892496642609244624794788263220776629848838780915492866501795966587915008930024586869828194882737925332888663426049007516138984712835753179058253791351811799927457936955804222858672901850139351418350137449912668813991831312147974961632491409094871757847015895316739912619213086835185601891788998779534909277617810742677145117597716474492952916894698150889724420727472422346878617974045027559448577326734460321476509476397658015263421324998165518852645981675676906546692826534993435029137774630795028242440654861611387286678130714465004865091308516322668529409243478328346345674911738328884253446857618829950218682294150266945616486025840526425538511023775178532660842696833780773825036988225523811898208403126005685581182999616052440691519645679950815611308622194499784349331270739001862340827761899355997210086165768337929745632282518801945660367867241544335644218159863289573215246027508373369214814188671298554848862840777510709999366857608340054962306245795939751929526784983491699275906740851747341209728072456165116307603308590535599155803485921322857360053410350258513870945772065200390140378817689910532708648310091341205774692117068278884478738766386699987028864717306310352942167969731447153320551328577490926615484392824963894989375046333096416132329630258223758153119274371868962192596785536041966109803779852581838334202551957684518251978559440367103153717658135837703659087522172051977279407420018321122288099578381709725845666135522719515462983706015150880047447281566201002065622786909562754631161005201966342663739295662844909867207916339534899160547826604962938036655026450496536458208623546746480856188210090371477536900182839692378517074063775716502449994388406512372352915762157486310497665109922008100343553236750242330227256657781882392183962793011826664027064208205642081790158992874809468019512134854968103150473823360069790198125625918385241237727118786824334781689814344778694212794721806001774957475921571860759536611882005278108920727438331933510482157014134978270094644028748815887988809098062268674479743269218306056189493562947206061578536919818811770135697349693276985595440282615991196791616507506587610946808191042499292510657406458712892732088896243834982145533744716616119956958920767762133084994952135527785152334192361642099607242004032565301174073564939862504894223319420129364794784590543613368005272291676258310272655968408610715408316685777017058533997216803617827931561535043494959118072083452868855770421901294019922862514565240519850896889580807777459183439019952608444759872867011589689017289575500534119681702307862600907097233574910340668509962989126895014978232105467147626326349350350968579778804284634506412675611683298324594522950704589907112930070932384959981563898782991868724609793428531475951159699010619809295645840989342191222340675146008973939893034920281696001840487776828353025386573977809881390053402662312766520435688484889484435980171472931286795944423790391384000256128269542261430407562654460880604107495747196989589341276866765493650889072931261805920923152349345604504707565539577453806825352668345627630155361268666821924701088357018432162761274771233750928860992309934060557476374271545876180208811149730898589587188479352224678123677664348868700212079643158822465181535292128134402151409648947438681333537605119543128681019895920713685345518167959534884155339365720879904148762754890511446399623023886620430489671033400372831814254601807822263318340026154429334408763633070181543552792439636547681422333630837302328678944628703587025809555898691298341896028080130215252954879260553207397203592033689868606077596480105517187329791862017403414258223646247862530801974240981664072915690869160561010539617742249262998042911311539709417191608337939513024136501090025381561669532172188353859753834189499679100527923347092164568932304697780505015910332646895451683467485180372577069345863309042460382753279047665954945213959553198619369434694039776034641193350843105848661112194097535096513082936762068538543691550817672682937308204591786730502224347988394594016019159442689087858382845682822481200306769261287259113019819523072245547773012988987762390629630491802914110683776054389250135862348312922472820181362599064527590511691537121344397888086648762381309110165936675766305617006950032688716094420872847100020543321639714741689564531456563864350289729763589016316989277237434443812411438114686010129686153132323411167342612393178896712616528054833815630795326086765608503577745849878300362234988371764109950583287276705062278456710237116190597297685300669595101549781378971449716285636396235381568366051981441328494609783687108852674252405842678192641938225240146026079811316619870487964284048425432303359620619132334402056114567748216675423975610674703869587405436771163928074399493010255927407024597136065346991305971738989684958786673217025646859793067786137018322809893200543648101181303415464440972276846597474241171185821271867403208114769226643511237663044388139645096182285574025579418859026019999527570799488461035730200180782015448332309107428526778300866670528661858622271253352521671175346037281101537658752736245353047987648904186966798079576121717054120058832960380889707683286379131150594047949488515986437461539071086157608298257937106540283543646687203047243214933138155259804013273978142799011937177246263659453251298224761676987966220116221841223968174146893337963828763906822360302947275479755124582708024897276112261332500048721728396408654350947663469946171562205300219705880474489166983988135904959552377275816379836245577427357114230346101528163125806972681243643873650757524279941246152820355708363077985179350758430315392836338282384574365344281360533871751995048435540200545935428240433806826620520291949720578889859059991417525638033047785772246698569869834764900122793584663359261987739657044132184783372192554360076828263144573008657316400663966807655386916463162775930660596012283345942969096021650810329380740167052131163438975185996452379106885096462834541328934691027056143179399985761761837988855457146548095779606430068052248583028632307964610337811964741391029964980318451280162160423633403519836634187854115497829508904151733073503069131512641261698407742669982903779098072028489543718758509114161128192528547636362846730913265726025391306339383988493791342543527012382527646545622626003458758651416836170185673963479838236509265951045148252763177031563753542504514095025705384770205069191335048166063991726227081036316965154388733762864632423664211043156577248964873811810307095103573499025930270297485028713603343101834813796745616892382557305270940456482863833692648166963419669949905829513900447911036835205391603619308947062945625746651536009664126095004459495024465338819804769720560989601298293555372682063899444568829554749920373179260766650013744837212461681708214845545247382185429918643393667458564661811492227216886618494806532287207115444799702704495877280040143274467284457653582169232928938097203727655839551942838393225975372827413221055755578072885424743642708367762590004733277446623088007454889719568604370842035255409143390897803607125204532722237313485124110649188287893465082951118922438200624852708256970098080030086208825170887803873011424495147596505053097042238814956484770863356963687566656207835950658459914253974417084520551766476058095508305594161962160623141056707756815756398796134847076585064791566193570939915309808724525748654701684822121862524167559902674137148860110155534723759581773230210035082777974995176415949811543069932040769754407311457339204182418029246461274634282575576642468097278054707568157143556477622291111261429371897121407726187576767525919671410524890613487921067434184385273762977835178600095798359434834477168284432843976107263410094660342583255651569913731523456615894743090157948636145322240404108164794639601372704328978588248473100724066765732738188717774057271809046420866575599773064105691353707236383721379493357056351834181070376423399925912428782324379249217300522961884338232189809366926014284801734211553870132034271883604559313868708744614372345516229598512817501692125465844377526064990861462410681814257697065519319066949520767054798858246808714221424572314042869734926186863639811924264843969460393435332707600837844316245998414951114401045124149045485877706434483848090135608748719294316634857476212390008493309637759884435999094557994766309059079292553213262359150825870319580970567444103932638098822961984291623963377552550008755094987300420685489624192018939131002600495117589512924664641762884509986201007566572724589636482267562997163339203688686625886458373547808025172197372218829613553804559211038759110639279211229046119975521768559548847745368026765514412571145331888801355115778525450076730125580426482179696914742327540288190681165413508765600164757546363076776349422785882626079060293502174642380538629831663145779492068465909386427712466853749524458786888738809222407708013298291139487712992066861802961737185312774906243623818956977722994434979460586165634308125884442592741656019870254022953786412151302047729308843768965189218038469825055127173379362051575212429307296233770169871491733743261725433032073035978073699835942395246843928717072748014699353005445833029634751663829578520542318354902584315282820242553177963395530228219165746574774712729476201678276999424505398576089849675122757486105653284943582562537154659192199864754833914493610512978024199002513823560597441825474776445974571173932175818462382603781674047312433403831064698559863628614089480052709272977733849928577523084739304192851166950975228477949269335494216173075014635395104640176367816620249826997756032903490659618440567178303664097065158193710069176974463566352049502144019614967460132867678921927816225098779327113855652091306931863036063467273485720196702605053532712229082292466809591626111824821981102036721362483818325301819416335618708992241358770537416136522786064437806605796967114749610518545952536597224159274506761785070859784419256279323613277070004462896432775731079484462984005921193240345740232487575267910689237034102188159508774900296937299335669684702786744379453436278860984962333617577256810182220532687640031522088574598052462586027216867189857508658244666944529164647064385627750052684368727818212076036835959914251405799535133224214608342161821568672629386236917566792230550779289205311221530095515903233874762195449683749292195301046662472268192233881324069091311378171704651518311608597785412627028466848182464993155232380967109907796566479101586375733732811542191676047527344782870098203907509938705900465946588880264944608057137636840927141299197968232784910631368560023837935058643520153608427353199432341129219347975135405048392495794332435541014679862610555704337019198865881328590370999675279061406966795840243670781672757065750514902464917491880996606483047276529202178164260900109878154873114883162039449312366541756381457507047675379787038398046706729164885454896834641631750126888624046939908550926892750537385172208179732985165062742852273869817328458632310874477847677116219346311816174956416882531082667069278806622555184557404358862377573767916758530634639804242268008046096888006520981641824958308834238070359110256503800426897998613044860465119842645737779687815601890620857027539558850525789065228948624608577921972000680884273179120644283180342343146473139890204868360710496418772235679288319790345844710422354760453353070859245238822277604462972504466345302663055860913548204210445519403682593931354703180514725106564461482321813923889769401648133170241057157608507257158785140876652226720542252161826965968124171556574926184470046978009432783311768458101893084117340459335188135033852675552183835320526378656558557699276394829672205083778590138014648691573318184165454888589214427112636905132434215415682621568984867187463664440662029410969175771691255427630840401093067989205243725401185528739219573685667675972272582343748572333428996645108037689794274951212114703993946863093873637808087787821398471870026457896419257402190350050852273559685528780774819216669567215246914602658102913144316411288274444450007426147027005417439884813754863770741862801292829206366232013845339652938778622090442516687610167634174782382584102040558433278351916001024130538755447001158756271641184617698301073812449681212358366764126719594738277845012717659549758755062955176622740839133422345383478078811972223231294488246176167096550083943187975294013595459506478554220676481062686959666586257148348453352783763080834101497745278562082527418762069200363074971979799303546798376739083781317978953389411991726973359514828960141368699729403079093627754968818715915043640671972133011702043881875575369057776411104140104419936552536028781866788600945746811023949266467387539439040102903333221725875185451958041355835294492730773613040904079643035884330315190926354019352339262444988424541634706566035462860441976826175846490616949703591328269823704415528675200340793238618986436958372798094212731378170535460084527849225152889589495845381205920976151904269491314418605195703860720370299842775781865611030512928459990015834717041764766865909907400068607958729900737205072949258741088890692947395375074097098485828446713958476805245536103563126297124949368337050108549058031725274866939490912096040749374680120628808062290368631089867349908304791163222376879495693475314017913183689189910329009944354042751511899969767040817591842052230330194474577159605310936146562097758533172973327912248411490989035769636459503236155268255683205681094869609467583908955081042275724186251277656691767057943459746086240823619059086723748920515322834447341938796945003178779131396672483938540643342605817230108230715535681279806128782826227626609200270759056660533773500331627555335846864134706919284608420330859956573489776445302242350468964325736364673094300936227545058991122308229296771430083494273631493320492709964094707897810180259867073569542736973577418349126096876581109702398104086630760995905911376239711905597465814739895104422005802247201457520419218793228552899757871026609148979549344478389258586553725307475521112994161537368440058904223007368512057403551845805728198054449075224159121684576862658448420895870011919941781723663601667676704606994433643040854714269663131617509534457477842874868750316517183983907495589929076954831470938966392952052992010828637400839413360151559248886944027904842682265796783036572002918356197959783761665272589559533215767452180051493596569094600060716458503833056196323372419025571172266158579266988661942306239736471003995041990697959488528082205301396744903583282460276295008652802525857127605084150650829792168062335463876425881496845221813209885427055584270590872868611619823837453321138169063751877509675141280461320296594198492752035657897990473440474910103142706536316357851920254202208530694040957328018463135117908502869673381091446588490493292782813829202588811770885322434498861716273023720053790184026070132719589820835574003836418497533846377511747029525462162250723192642881534730687432157459465319892410057511805252173347519715726499110590269462882752707451796922211147435580431548578363972690570237117441568676621334587862635905742279575536244713816991946503538021234199010260768249541604499561810821293802386699411865857331563644849837313755277037530466688886201008314056819231665148402562878543221245940396246509361613097154795302255396102404991404548219091176129908836056405289825092855736421752524151165085057565363979486145113738625313839220576235417528883771667869851921134267309222621283194856177107534214885611258703822783200844263268375037535767333395257183745550543223035539273657509815982658978732825248301499419607760454522189754337743846488940380420985673126835213564911492377552303234749749668658240235586055144884833022456989684153285115162443264239753124322602440859291137259370189175481519645358539788763407550402830680586530085179424333144095880827046412931506821430269458419249958023211194325685167794557354873966362333036322500812887367656676956228128447237629694942654209215344326522221810937747302733571663024885555602149706672490106290920287892341119488404278364562780141040641085956905136609973104201061982521331045312059342568541722052658473171438673732278194098923250544394213692028093059855074499431397844883292831801718532852955944668000138390444558264140922479652502167906659233529768297540694065245368421024167685247900354396616486539858203091987383195663712316591586864305916934957829282560231855742037906805831307180945272793183497079294691712352658965259692568822493984709156719862156037474079545669852088458822335821600738642186402326723355132803039827306328472006393951017104764772306987082110023496778007531797611775949507811209326254149347304326253652439096825094933489213580481483098181593835693392321431697816898853248013179782386061144872995179819875372910010536973646448166413484618806736938840385568186095174177608926963825623907014342679928696733266982089359709671290450067198991714800890790454914533919248932235778148142449520415212256011406497720853979942573440679766010986387514279626633084057495205569260495642485513978465984135590278662177517890250208651433778004217423965053297162842535721900605747927359986518479890970447852317541736689253542608797293541853606285406536230536203431550597550160305509717410777209171996556150037126736341043305445507807778364696198176153131627293056643982234757269445912503328073330801002047957586818969262869682777651356690732150052711462905935428692454675562641617963772754324215027245654414046198695140026691454394709357227073295766483636965455983614958670703094184191416701454076059445794753939237956477363064853754611599236732869756434400483077743553461131775731631580618619583956832173161137214169885605559486783498840300440781825650905687399953763691415238759556929964697177038832996355785379871701765922059395087456663749375222154794137927258033185123453139328738538610541536423646824382281487418270001243159500253579896371866828451727087568222169455195345651197451412607089306993109836519297304289715394373149973226632814973048844694184734869301021410949994107592427214972877603161257575321360301873698228754464314256452861435323672427675558946533290009577819843257035658310628785917589234834882706946384486255246139716828719717856795471017685033254713052437236166928559344863923154742719071875238433734690480223667567954704680226201928838352008172681335990636146084920335603220607681379773597808858123951272993554583601623589366476083361147351289761008085302738611629656987569784675928522972334803318579084172930281319925502848428744159563293859846040810975775706640526947665277425948372521044178506096523029932213889845980925440355166142537812627504177697595404964115172654774655767820244077781387127641418557525794437412781326843534365878726817711082123443219031219419457161625777183969875052061151496150950809071119470389132557446671709145468083244154884897046310996972126551559737046674192271122756296536679436308063287260859831537298705515579019003550272169326134042814009965170393095182692527295507163534299423858136078693539463206789152296917965759885400744571081084982447688478464684422435820784207493256236001547178077829267665480716719217842408853153659318282947588333053639159181213712838353595394347859599410192805277973357895594275880006916047542584234096082339874280438430330097652148200817057348963340293950215682266384024982048803171912936815365807299578136900100712834862357673793819864355336618291402094111526947983784239595782026356692608916113922560020242441487903752019244813896928021443486294858661434053896805705200469648185165721685029009494252943443705343463950578771806965978262779255680088940147571466380672821213844233111560494024428380944975453968279915545735778110953646677807507251977479516707647777979585754939754881915414319001582783534583413668505229461026082770093913708944777765304771656898562999600283290166028286531480424614289345496319220851704534456308020295885780595679860653963658376683463259453463731612611115768852040623702681242003408749808930473818500210108106944214209132037689079332489732647602984793135086587230281693718856671668424603698795905450772147669009202229671047691100073648611449585496261539155317081719002023780948871557271645489874771788737927439353547066393726298801270491302011500889555692972467054925391881107496229147147950627221076835270254274442424387863896355176078764220364841143616160586782716790203394456662955322486944274963607686323489120866594439800641104361612312871879108553204765061331744311816846947667174402437420179888201393633344735786696889665919966528649610596888691235822346627095592500768112905263985040934376554626745106664409756326155425740369415346659539011339281738986176293817500792526709853025467934930319328405990556388627062912494259385778015912763659090595435444745031413388216717912464876084519500221913371425116251082486479798043797204018973468485331696502738181321539186612118189825030431253250434317758575326659712297976129575592956672805430174310907661077027530539403714754989754675720887473624869082945662884713000418337185701221675849711960478554105737972224102774489700510077954303611876855988832651703528896812473959673472911881072846244489783276731418334171381500992926052196802800692407430217166995324831538138912302944592273433067988804725792499560149755938832746157253343595344694574179125045504939148829925831781319340417063916293021719712806035015937371952410721933294907958080303166427140616900461803330023691477791900974511299979674016747927315631759368703772598806245224855162353009570766965424632357791425552376462458118454292967487852024504574437905165651016485253022737627277133255181041644919441021298663736586907074904305432775710092626881678074038453910403425163236485059222629501949575902627559083104198210540786819359204831345942570708322930297647905438606245134019778809008003457052440873537718784707773605502326193471757722746633697642930237657801535562928002481070035946022072931112742446412668797717582854677456151434904780823903047027609861820249290064770515819865760139421273510688860429471160182866339257927977548230193628889957830422054160887267144130349051678321700349764598557240505799822606528385740275500426906170819575022940244886587420817191925781035611354301470730254804880461571065494670191473948149778257518973729815613522108141012032144502794469839060681010534983354395405281130709319686494982491291216346462777828840524392339017812050502378441921320183201063216348315365560933335167809547780043787808108345386222092006310010525543024836241675005835803041063461415337705067705468580724822573349691898349665334855907951213982041047977917256839773413307339575498922472946567357060235449407348700689776435151790957690256149429739323354510278897494952326744763180507518037464677142566292296311432225972338233045117680458927233748231122745661998071069445065611960453130838332011859512134282892184975907421321382482242290754397786445604589374186304066760720917390851025121175291523389981348426501581630178744818545524370421190191285057891149497563853686386557965616290801619744984033854226973531674741838011773751374424542527424736994928119282311209564816315668088685237957935949344000355328022095787314883326280524960236865011653159750190309303394457288213693499177342918004684267924563445835448486208805362566596811913642717630698363310988781243700674044168908828951647168023679871314517799163725727449138153734350119853129284394140990557221979413228281182758898003904815043292167986733081730291962480773656250789401533673927119991262246762426681875427581759428925616371817739258935372158771179469779924211182608594859195963887573092560000042073412541745936770710649370321828205276140707429166733547356430448235780304956285112252028974943210014392042287825015641474223914996287629906234137443852513683682902956241447281087020221984872867595778802573832256115600190569223292063925784134975927937907436964461836375294662569504712568750093717608194006979110851565985019631292887954393934708666339752797356082726526165525482716273945068241178476355610501869302915912830082918290286243946159620548152716566783196597084129980950064282143718600341235955955089281955337111055512939444995456989129642992068132877109156439284815142235318083593219543432313347574058608915952929692561610003673878109281011675870972876621710262586760241401591001394585198889056351740734824607797627589873468583123412075072472528532145385521865629279684326269536914221843597829200456796732294132861882497278912116389850321658563760444553545994510825968114504682487791241618976926490215115331787189249145298130288939406443391949830421242073012406204096252329197423381694466843138177326822293957281649247048760575064634339748004230851526260522587792540921314472808837005650925823544537786552781757585060313110551259402564136091107291905503017098919322705497685764612447952085509220459029723655110785073663646318177511055781666973008669745351961136018168427810808370837908336438078136256986400689959668093383653733405150338674913813105557670596856776338027414666049442828451608293585505109712573552963504308562456304253581892536110667207212472945904866633301727061583026958719867622515956192027420573296799760159695137167457327137911426373601327505287208389663629249976541237818846619501580197691420825877731830008954895877022422661118757381264869685306711247441688135476287628341374033596890242699414250820824759508391172665765003831491958743362906257591016867242394427518046583081440311520912725003064184856342107927283843944280669036173532224790023048976285629663001357580308101978577606501455838022936339909567340501660138491807575509553359672294481119349535197285128112364564324772742473626528459331959640629129153183874435021128709360356753976203236445651436027483846918568889088890288031599129493452332616900568099409179816894007789160265437966732333938913957153066533900337158420087189436697852426051532447066999736678493845299332651904390401546954258372429543241799856752610925549944952978616152953076397614861985900983611920244983499400239258486798658855701637857283270032008242678746970533277314556897320935398652058975323771887891058156314641197747230193285798647584806473106698259044502480648905638877574665174320654195355296177696237130041528673296048037371864713115643063896569694716513437343640592034384746015396218083484851396265498848307214580876407657302948526688515038902856925811325926443338438724198756257443288902286931668919796429896308721778499300147419590892960497705889080214711433905690919018379837642195259803005783325111534270258730003405102976255034249842910349522666067838154513025706070910758544870595937664648109850398683722241251560024461009314649054724647595282687056062377910581964977155373791234468983376688763376682720060824398785714796341808568032484150978007357235664233734417605385011061493469645175794722941244885834808201994604561744233596765154303703020016119888760221843774144737144892877613808948430902160595453532740411123365301729264843011861993792946617167901524515249946165899444726394071697782008511566194605577585609864000330194893508297456500411426548240406825263939513377931700369110575671266832415698947044605847368623632851725288682936255902211998549679690739421600559815858205247702834570013302975469324207466913314779320762466590663782803017839005626434443207052898669450808208441557698984919323468416688587516750462322925615345975326751882775446204521717810070959199717438122124226316683370805745217247875689917158517997413867346878568113639812437787672819111444535395103500366464121986869515254799826610633938098656593365133593357336505480440071104671086839211384858532840556030627511406925826369598219515934124402948022273445229906964044868606279613068134753316432615755752145322022213906319157346657962217713335529461224567968894761708246254567021109702433611368919501755888204907996772078731670376092050964841111266360224432355807683336629539602519659855031734515671615203664363907222114397871056077872734778011091033666267023007046236169209145972952727294046788162587402212611628828487037774362705158769209220636866969835773824536521823264544079333533578806206131404008448312456075456963976213976870085667063362710351531902564980826873464834208787468622107533247510136292118186366070917479253169039961496209476759398519939542147416235070082300328365655460737571709798585209632041143215372535195724996994983715322242374570070059951395739276769720956952649913997203059528868958912293001372409967797227386679603368353282399524526294230309762875070133273784822057265922827280936520532815104764792282762731041548157969022959021743070745628865101851083132051394302731005145726427122128712972237956534015145503368286128715652240100788728175233430528314501392945294660172078945229450341742847171197004009060468821366593224009627229234120874862177323778920987299993933078960578140348048607607862116253826484638220292100670288899261616944333017199700542933913864158757397573382211162206101572150967919065833161637846844611043573940043276946713864771065658231490901785485512276165141714222517988664391601821178340325379433547960637033817071256323669958260270362666701831143687736591508409141639060671028261460316165948942015096297205737117417724516665771682468252991496654634146732287733304276506055236325396652060290142984281850864046798413640258420358917204702597673461753433058644310436122839805725866899614231042964872212934352320886241970342668743919618478448758804804363518307111642300967043194283030885592624956376111545657782697923027683027495354867321108860691905498236806924271072604484597881834048572126153093357484471354502580186633300425514985191405001703757225605361512503213912926146790513841419170988854819679604460154124325107702894441162998905838060226548411679682728912561197218793458787515680747827180461997320706675874673210955864571034562598096219132746574819528441222884526039223610812595455921364735667777291384740999323473840327927710337399180795631477777378932122658903019775027953012840487089337083522660216035690072326870190157519270237548912926435576420759309980985217291527919172988323838301684127295996088108600663728454391713264385748522271003635307087244414627308171096428639484480096279674145699742938742855775989420406945251458594632705761735163771138968455395251027539846262927963717345404201141541887075615211901389094530668280217790665517672967024144775184093877176008532797762572632790258706870682749096860346911112652294340900588857563730733857985480293078105957694344698891114984501668883515609901855798082464272172892102169052645464721208523269354976636297964216260687439690484033289673266089517290253942131717527273339433857490894562819066709437677676160793594427878691527007540955592404198685343799385145750428725792730521190481036732427403145057627295060117742873154029215210183801548027467324844432139688604782495400055053979895356374181408016291607443541610147877818419608003895572816507087816616458884952389593407809034755271521266733444528227386930046478839124698179532498543101962307219183932496611261745256966534094898770889021112952722621887253162023756239525855965302955960230370966133190247610345058804111291975756405509511659142425932640784291315984696635976719599771363896513466868018495429632550558232404451990289641238988427443677667141690301720749388073958260535450849843080341556265756260874681249501366319436851412811935863961783243965297246526601962099243371926946841241928512137081962335074103306227014792965044022404661295591749361638398621836663797411936916536245550220499080394288675407492266835070316198617445523094561282084433270641217372325062429710040197240394092011666484130581833419952336473250718771024409482236767218452267714384618258024560136088413913812292929239510971145524916822503657101688119553357707219926203730320187997317737888312026877360390271053275074300465285325397196660242170137355281703191923495731225550579756758613140788587911023170538703112264444927974929124910361572602410257449333215583765526321369317310626453576478030620733756792588312955461189961022674675257116477605081270623947216409893950299130386421013138692692997217349646308995664409943047414136523276981270569740416174174226438486634575640351918466665958312118533945272122846040863808012166095414983804922014993780502292053673152494794847840702614009932884396026306334036202591632480361236641128355933479305559326275822664505143203841126075289018714092331347025490004910696408504568564805879341623967812497986259666729546780498655284043308271218136723029831202473510258756233585327237257657270422194908599057145104548993018146656070722593412017193742082481769595150400270975705332327102814459758895115928478562845172476696642201329244871272183276786299567796478682648696491532356685533200792490547291309425792636979008582248038313860366366772177664931526698889871104149834269313889551840638567825821208441872453229858773932759869566989645886846267650448000141025327832382353628694177322088770168054160331390767495256283035170750381017956644764116025658737284075817406182079517190040833387054582704990066769233522905516703590165047814008100094364482791003298810137079673503043652218786278989015186831953306241777867996749167683691276472052960902693357885388125942681305894816459940771532131729345775011043911347670829749924292767635656481114805859212913136762718462263341494203297347616880041262058630353597985191226131821766275689380078017582495180425232271827135580100556816029328843518020257432792021814163393492148740801227885758328543700964374606248498879596233360603345694155158110535028073518361365414981163467937645396405117100690210203479694466845884546251889063861337188506902100876970566523931241402719915617283435523195707446689575527479467263183256504208200376486609387825220281115969375130007827688387718636439148924028609377255794001104973947933726738702996922970036652608178139817985856964463076114715742611229784981112730325403461740172185685531488709007176556551184044420561508139206685050275620795567136409083359038114781699154548527419467896893624804405862082056867157247631296849280727175331077974788109962628768729933888391911250753117415757736880874366290651006706953033662497999184271782008676939330126564227184956912062356361002859752599724400720955755508926646827888244083695330883657530619005052187777363877707159005934406324204183926685578263349636219570038991235447037838352165984057727992344510448709298076403272385280805817103814466204667103666717868831361762397728876636779329468252283239217081057592976863801312133614941221577258657518677258736976386876240358192153486289115734975670455200780733552796720732329822728524410351783554026854837608063767480327330964066122947605748699545886329879103014937887297040410731036814637215604360267644990933400067639525339657516716336226111743149452778623918679140498850952593688898837339487590811774276739676337670824482983947306454355320375303496630992669796742546068713605435529254792266121453407052011072655789818645730124763641241418076554794749778124570433180392083931371449278246656576469585988225144128457961880987807174643241124805281666404798266994635388496756218180591309358413034669441916764558988558672044428417613794161078479096080716314401100612331730779434624774898449687038296192490344546273951030703319676842739752139613113740801210913718880613746195232415379113269054281352359235012969034624959836171696447377942274042252746244875084289293443374948810570620654088878798139740312206880741165523159138949858255559850483224236237984696207555201158856085048267421729042101372245074650930780122032703286070355970662151529873298516991296743336801288643352907082156894137316140704505901697954401119495935637115570429888438235211016094018413925491977026745861543437939163023098872402076140247355019201531203725544690280730662849677861346340886584816845069063825632898245591949570290770390189941617428346242070171337332772381540762429049712779154991179256407040586380542682556905130280097641693331686032225414478479873096906499552532403913320373915512471270965756040235703021468407424354457012629508014982523802809085608923338269811156018010588909967965115529632745826332877575608791972491289169020590519161126578595629524930809321021385918902526383403515182963642205883614285153653746666176832675429377678388120496498419158083306549983750722735316005848761800203195113100320943575832590833936518250140535303916397940228977360270475920112405733710243640786235234933203872499649782475492111236967848014632041822129305087164266335109632521515511050588583036928338075002080906919209797812983714830747069992839178236396035684938665047377181565510320868278354844478141025933451978849884504656854867833955699081101558750834388241978743719624505948178340718041280622291126619906631697573325570256772403843622020414224889837202945609927610147872745854099065929700573856745043567377357733439703779228318094885829574160266342559895699878408612761861576053702702751525955847861218589002425745801987469921841779836617956832520306638184240707836290819084313191537169504672016635197157651255846630205669915601785816979102597631598392896629720283516974526464328215591750320009517452026615344948619405926543987102593044777504494819688008402558306018133946515728144337644759419093886930455272467430209517581418790266214053964393743766789817347234378066612178640070393870787314173312719441737563183554205131739337889125202559733715344322033326767376924584457734905233474442608456990826625053095134696883796677172326063369412442564881856214450787123979248629805219083702552010636225452581417180313461339837012980015217809148292530082489530532522899924396392070185112309507655617855313937763519328507117334819590750887162044632501453918867672913128135642329650954796782648975039311857370342934635081800617493966794969789736325366302151765701997411987981881726574751635946974193214223042470355855425795140365778338927897758189436364311447940745888394739447236386042426946185564878467740244999313535563609434888227287697970184065719592178931492774594049364050466206985914431892188685113306208961656252717407612550172784341525143424191650110851993075362557332843012351083915073345158096335588929961909407077024369269382940358943854126885021863566749480063284595600424106322418328026262439035357281087432898512497047626059374885184572172288759170883002799341427380658636467727444344383301466233182822302726094898169694525027858152486015504135435917833054300099000334598125185929293318990161930146662392632919011064710995404099030323097909205395119034420425335556413696614665472106163578821709221325594510737757413502173497162025934382631975691198263969630099962525538172991879062854341804551221091879249452291767518067201869775300623788169827959431588655841744534524736221445713146435947764257992946809683549337996260141938846273189226381179881996955535611215013349189877527463357527146574298855531323847004010998053792236622542518966235950350711540541999200562106641070620644442595903665648971954685957241392230868188721352508760238306192351063127018320420267370907161928355524661105353744575571675009208042732441731459051454166426542456911889753494180338428233512106724216125162547291452095897623303448946637226888597692408709843476803173859824552048817296324941498488465688818636208097058725025112688585579545351873934875005524684329636885794050273758016036983426285056214299227309428770837029170731254186517618043759189814554225288174965580512079031161211129382944946108694208945475339726875520880613376340509780668627251321743810179250592786881667496929203090661120956311865397151703946986673826905233259169750337323007188858910066385856166722490293023642037477819195406352045326586158403802699826029119424221364524699956225971007558244968540199129039842658917341503410687888149368477168249305747191908979562574327956898756739482697799258231584278517885933725722464049079339184524246239877513900692356372708921039235733856564020162314199363423973342031537735589018234515784337766808577454490286180497379916640531438511204679697886171164016321535552305350523521517021360483922727282664302543533015390038727825605052232953077852222549498245139099466686243151643578050769891526513967969798524593517929927605218811891513560745336552541059594389924214238677339298848310650264024686009397068429765288169476946190411139431385606099602188704862383582219427300102017168769325298208166502162334605064063706712791849733858747051544937861576255784753329705916915937466591651977538011225086158341128137074854668881884391258790114086877233942293210741236520202708350383993912397898215378180013987784770886910953078145454050736041935759870719349359584391689960997801019882862136520556570046010230067579080379051440794269678266326154976198027274367250953976669174817561373940384688221100458552758860639891954691798897046023587543961800484217112294122760857471055966004697805073210325562661618246026373712214683800627476461609795068640069884665637562901530451755454547553603178168434684677101947497100477361530416941169640768869528602855538335727212561179408602581871705920331883218475153088682804415234297832078531216110861884526007597748669723753550013531931790863947599125335025233332011625273995394153850038029696172036404892744134435931390597102230970805361481937167071070467265538172641149442624507100075542407761985854665482323292509830472227306848494698725790226722724309270738754989383056804907179775854668200184921303645284721234156991983859936673241821611687193898993492365614929241305120817903738961370706100098938296306380449764307525923162075734818365478817793814084601562672535308551241793840373784100808823075466120250250919749840180748048231801444618378422602138583633709753563879169938144095330973054315018592629131488190082002221122423497487079663766138702930801969489523007526797291712421037079104436386328104917385888950420296914336949822207561605322952034237255364338548093364588694121911459886825637247368621307969383702666835889911787646312181321599372357224776704434567207786874955614615550025785538125697157233389099989183528028127811333210153665506106326079609707787787125252513495240107031054728283439798053464565195234536323768529203179303157937437151190928198667792761477461449027014614101241099129865889998261485045908705357733045335624248410770404417854937163002859318778075369999097332235056589936671556842146205401359880898929222873985677919315990898102124507417444464714260052258664320774729886893310118842669374328216344312207663827330722615482038049103107696084487677414886019254788855162282481429594885337689026789008281145067867194850518027788855010752178714669121364082139585584090946357198338676560937941506725313185187481615710373390593990624448400471047724580823166015796462431177829372713162498629943521858317072173639819129473574336010954572587062648114953881623081566934720529217372774543953349938865290967539994226632205458390210689715923991204612500952720954785799017661306743022588969806461562632082578133169876657472466832536176935422553965483020032976837227959950292600576533231139971354738671747911090228823242502297838000878039981834028014435020655940078531258613538882669401254894408700184104577353108579431873368891991309322728278249766447142335032161236717829514261961818441208156278513795274911783961067313897070378715097109274807919462864805039195397617791804708446461576273958044959768506571514603882150113940085636484736338753911177417281532503130002156883979618803993137995402986623119078117898144925026017861132667105448185218895167052147519946084548459304569048240653511801227987303341716424526353650055233669657011635262378168057823294806703025100309704591319215829322499598798537246099498282246116761610769214090308680144068585022800125981804554540425472672534773756957385629111804879139320942602111102532682330949476834181263141408039586163455905467022262944252817226269703443166063738999717504931751991237601023575639963304887364478032374846188234466551420640556161944554616589759319779998470319078053220743340946920307599501477551887998290624864329801953682146913986468569184482700901635389936138906448672092637776177488117537953163418808167323285243004241609477656463477949664544848395139466137880942071196156291630284752887966205125730131629509018144880951907527693123323893505556158250992724888688640616226555135667450589984916448213501113406371357314913121937629254467623341980437298032825440378800320895288239039775128737557898921751909828541844458182134017500694123609816183082083055849848316551678196428359462637880049818667780641607264246336381906763489118499052093442507111947958106052380686610466254416457367278075814992875490505396607005114954442559518384520461924667856438832965607942369558378472783264585383376086508308057385263160774012003474406929962178239059359599115229635276458234880890355259416443013682745217443320807815609627266727785769048915455556994523730077180783128041857714371230500756530658353380277941272791893360682225452267298300816015212205574861533678200981181671533797567250239280544393804995498026346179285207460885196932575204308067810797983948875106614882558842483532174528584356191079556717216564029913502738703977784862809582666453137026011499501358689112574624224491993418359308182130088616648469631039229240216588970232015864013529451965796843141212668910219466702955591827124585544832855737572306123876643384181707292085720249747904701422098454067745491749948852812921501644840468043050280861151003310388628106299135889619741126643540030509630389937025436286922732019698171060146030719291394815905815909756076994828843848258522132230173911108652089370035708561280827967179767256846949729338110073135771795500124009348969464591201830309322869834580002788683377824597261797793264935987059437404624756895983135864394411127852850543351163837339628838600755825665660239697491484751846626440097611144425161760881566547352555460141178227757871363607167154422533497025921361379588267664380029461357971364598751452503908956769984747729008826888235004674064284273106448463883425818393440279711937005062795811698027707594596906254604488731162815099256757847061100408061693060947078811579454943649889147453925877553335693898697612615014152859612561211436211835111166317703304439758348744019702220393770025576518566590568448947800785350482878495455801882771758941174506771228421243535129064760030618989650729775148331283417811744382664143547447474111556271119709066359635479984612394480231790599768742847826764518767741924283847215785210092704610933806255621045076681992269984907115249076319415620380770119415148922046395491211341688829990044982973807903525971429152438044146320122697834252108789697319200493267282089680249998033688223030798421373657017793642836711183348544981032314674939733855289675568121391688169182169942102309318106847638978345054193355334029518422798702358724939199908882161797726014983116419250803793114777008794789660666034151797194059883077539432735905133161511694170337608943226096299685819891333495662611053551580404419874003714078847907552324543448840779137847576665012039042376852804193435474700968563358084482242222941551670036586664054301922194005602998777541163906764052631727651385987548010187511984777293111722284648437565924916579454210128880592060256002827700562607208137750945304995454064099324241884501693670174246773318354991873244911129663042496317589719405893339883310764535686582814225684284059439329084897429135502855470987877447749571316418376655357987666263359491096910654912019903877517284739959365048551956094409931260550632399732544134710039880250443977343753443973480083853531151347523725099251587927664103867739217287022940810590310047964254841526792287719044440444352159286364314388409898780331132101820236417670304604255305765923330535769996339461024262126223732438022293441444085600265203271610091107806252502412626648024109281716596759509081886176369120593413503170590873761718734429987393706906811238348101462256648764174476681810229546856813548846126008893941951033312388742666487652202438976163801249257531579848354390838003198936726412950055166437752235431501524023381603985051956312371890903541049587418158661259205790307830780444364158962747613250684784732697193053685096559540360086624450079823666982871696585903607446329519067532040683598867165120080270924282993233802713931537338896420890358892633888806427562144282258831301274159132859230418470831717042568103373532875315392323049629959913444941754888578533058968951092420810136534661972732535912671584409398788779992967020200351751275702042457224336126893595481684385908004602448188805650182748436614516139080955511101161271178600285651318844620234149535655079215716860575417246965628550426324323497694866784795453568972370807421386623819121369520100431145671823883822299587848438033129290206145983823400097583427521967439322460741815403514813436079197498720442067009675206020241498772968898398346935627440333529349224939949249899804811018615545477976408778490160525288947082619233568487408414538198284327352942347386800295126408887080652938715743798161863411699749744749102710842771031817766580200978034514392809132847942903276243765406756015439953907632313865453519340015605563754481531774201133093508547329010712438973414330708969153768070483655989932122496839813576299044025043610136580567325902251865255767920066136964526254851531797486197467261110844816660925005625656553929776136479319021631044243263628011636186258729277254887023393701777739098120597871959014341914205278542893553487323462509191310802695694537927290005517239552023344147418789457575861927662337104722160620376636214039325928609919625206202882804802805919591989395437213030508206046645437209678011889003479484710548935770770515835310789760836421129577403923658602850960854976310427678679348988659376895936089627009583532792231978212229715810642792972516295269762514641734664955145922184258941613317569656105315835216368134825593447647940050388723284331611848607363792235502037607051155606824354370579486769471594208316023928022096517816649390163402268882564827277504735579999631288379597668661745107176177013136162602146324399794702827714882878502552802416074408860198208070348724047580130899774846477516665007266003017077933380932822247247803043181187044539917808622204813466111129043965121514330924166221702473100612028190400223739326116934644739508677340930044337223605713929555651784416993377994321231928254739946519668466800450698679686040132778092489376717866316129923870959828529634607896179922986433283758490342705221793361973798742328894781104983900610354315609851724576019151886964479574608596825418048327236924956163013959672853228621561755271200544685155228538732474011468175224432980031363269203763887380913654755904535955665579885757619334625720984684474978555818147291845340782050266761724435871313625370109015816445893705595659303145454486148726678282061739818321311225959627644997110022652809180285298824533870725573153203473635645505649792453393896283892176812220891092750294947883089730272584306892959686571206793574081476094458623550425763467337469849230902144668592271125870529183100698182343789515145329587687134317920785491618026430296883838905612975843378364017807311935530672284502894264479148005827530320266467652898644900321644734138114077996960066176568444580560912596269985987995739778239522408753098152633835620517303419748386056138557010371927205497505461608519342121728177540411869089187265518941674678317036909030601160666514224235112668570317713745775144566339778616403789314300809026345958509089760683703988955510713953643732213394300668782471683694741187108215556425374128081729537086171497025435323826724795013302904473245456909297229270905592027279221571297163553668050530655166847930295795056198064870596649357916653245493063975876672651776850990296856864462127755254595422696694915716419243250415953158271552742035165903741289921898197416499415657300805634596549457976352109127224359961243506384784935916567984371285024777112389708392950285636507568197350474562851994882967712149723408338346352792854285035568483218797210491029597332423942796997514572325201653628679219100348498989569167984132250231503606184710419210689568202167818629557287565744472049567586183650865675839376808775011274183067455285549202159059320555491565133386171961648679942738872380491800970129056312694711428676577698647756565096238886754310442794459503545660709180819236796548084623568377255041718734433104069001294606376260263163099355273823355682316880608315301805607064402384387636529674305057816045254313392607275815867123669594362261098988459509820743271600844245568675892757852163488631403493299931570737113992493922657620843483029063474760926285940116976168010202499733049230965773625780801220682182838276966337868974607476018504871244471064989404946023119307958380264639552605568947312017031290316733600930054057002371772858642677346804902823262132342118608625777051948238017049676160066984243268890532801534187492798721413753259092934450503211669555410061182988280781647131661718722403997273084311666673133854869855434561466681894661775748565356821588534651486314353421436817282369917954420008439860139878727234872853204480752559505007027471866653172501998309146154305639586550537263306711001607107779343012373116890675966073397781074895680841045824938225947410014968096971436420754351139442406538112960043249356599190139903121890045697323148966941850848560852171413869510334970889442166290288935057159891438981729917008011338284091118525675357023935313779186443407378608728437894672724393613224375614473798638094777385522729939687921849240922575299418503219785671427265825067191371217385016991184044415164660297454464350243226047993606921295328364761438976088418231189454163083399592899426075163650657222921211640939789146668532342838088409143546240670936201556318389509755610615564267550456339307360959828780761295506780393368237261753638063481986246682342946828474468410913475167300717300990877247311338368243395180587205128487847675540358971144245138544245260846550195368380428899241339601918682952094999952066092429269649428298503923091123660152764704101271170209171799666291961872443087087518007229662491081480224786594157581760384060030653823958050273386609653902950155367113018561243595080288544963677250345399896200897924469128847313026368345307047122237116816827310350904746640918857957548865946289389000293124505659294683473505607036186318646322410203364690116160676829564855415616103825188587677255528222760724237108740061650949463707176410942759406740615070379413617020096668738682102147736520750340499314984043474039387262520874184343724705329411521006443949739599690705364229212366478513926916495373866414852900686521475545026445962311740502988452568731916664185527009718480103025671886639015771780682663831973601042042974183298359367425992202770145756314428455522361452279806946062082734761984517145992489339761497876045224731507579611523292396072640279503072357796441536106982056551730797057530830773030660306747835914926610415567854280226223030852803399239149460778092389043579166255995237739761127117116469681441289414619055955176464509507429703164411070304011633750798748743963739803834584298173404157194766484724271466342623585449639983168922869799939123540965426704311467337450791868489612714950957413377721250975833561206603171441844772055509683307216734941457090978255359430602756896273728955738326266494882547724996945344501310792660728052352916321997769548805587846671408633680894967225546307506287760189032061994461458893211422615582421552283344164924004202218677887841928696033469847393682491906323205362375555748930278691204693884195004495645310690985845931917046993440594847415673052012492570169987990250217505294135059167863128455529128216173423089741252769955303954681583112976216452579627031415997148021481254120542302295568030010830750775218611872249256911917157092667343920390506257954081150165142669365099750724410681604509877322774075094303461237679030810927115461743503522596600930370571357992734062749591437768381654525480377205717972731672730773064595836728319195864435150307456571434039799366507109674939322637172330490815382109139412916909648178954343205780797420546206685343082926112166888434110199143327015088847887563667577130186178925164693856133893271479114545501376597123984667791659550751197766353287005292598510124488954315111696369203408108251988992702684585390095140887537658391817845294860883967404906615628483042760739422979378645880088649153568943695858568679134756085417233577100971083204945089907017006171533044095090605275485790721219350487581466668046341440764899987064184075927357907393682212510681807930209578277354188617499419092936865659182037173381061019914965110600541832149857861653931883731733943033398276841767990030638106971062855527579506194731806103860015563536342388356435809872633019079608282050228429720132200226370823296681481630142870971800984426082739920775189453111746210009670957608312736491083064674537494144088502658888092880655624893928933407800663521731776130451277736425370194982565069574787278412066425621864916212032976097743167931435997850871803773953563968652980603074216301177270091628372385611732114932395000711702991543582234727267995310017879828856789523991305513421816578953533883094944557566963018334344779897063405666309895194501021062583153021053231529840261484709289273948990202535840181011769238417422449601290440816508114347871029855181889073432945052336510484607971706909719539708924077374154080855984442890374288491939236678149021237065600225745716232271516191396152961806709179302638524807687424741899163214036295808832862377854606321961288562611831638871805918437141750436125671899804626297910114912994767323787658796550602048298066759802881462594996050744589812444930832520750639465239438383910339134065006200833866615974911955147924408818518126562457529397210595015687925503998651653070977201734964063518301360660484143587322400995016166916658197986118594161424653029418395564793381256122704216902734703199276020733231802985144677843067120759900680542090177103673105408862585963335388434962391422841220561803164695461152720205440110334785178991162199511762830145667039373060676593839845737063656424033109310438739296076118636680044818809896572700924042481966545269159974208616386920201484790923949034065276412661511355307107632899054657941799382383896351536419795787090848110477470103165866131606144182798725248969238449555923364856994444412653428157429179048851291068700923351229971200462480461480524991405800770737644330663576605824228594386151865128445263926815385734654421549957061554501587719954963254493372218397529869547165995677329396618868037340918230818138851417344005341448740236815390306235423421732008600237600635170125599626712625019553152490696631508779317238681237921669205803369778888744337449407698252034213685325411930470228011032215706770943756045187617338554644704226352430041603861198828870213716787574850553573204822761060904445327418487923382440262328842139286156800564315978820430938773814596425568161929899678430991417116817414026201363614229810299732564305227859115146899081617475872618062751675507834360730865095082219038695717746042611947545292677126910450086366268771068801564494239913791853908011492047616129927084195754265727948039985278632887880735500351017636149302325587294637940961432598626435171081466348633529382935655144775305189587487845182608276041638843674101776465910952582907283318854142901034911472657259619303389816966590741658575743367441894270737091019021197466788938274255228318235268118380422362454307908475896747565031341821290192341318862480329291851417727023067559467209376834362900797742826147197955160308172300918620203325822847902446278423140149392520947685702098568040693303225299447289885919739558265201552229980943502453930271470306501628880991698289272066525108887508547486926373099502079070878088157972309856364819205742194864456228347947299313280088345308819225815721399924349912590202208602819846338009046193857074275268460326433863040363998829036272396453248752708978441612889481343152622519044821621932707153232532458181393763231737881219656697329252810619315409860146433471225129056312411809715915434362305134356743747491320203805628867474648448201930429969087269303982488279344070896993029895715560037238250024183659745327200545244918663799851085804498892958307455623366696337239026138996618211675535287129740124843397725103869000052609028975590832266641529298692228232343525798271282478861137084535803273405711876158213922436044845152941660484237225048793838257455058738853733306012154165416906626254124930944175799261252424883591686316807156293338018521415722694051096117300704676202901491947369419922524388111461363262358715887327095513153764561282404629734576851163744418586520266217861281245938258136691012053929597242779241185263204175158072773755843924651338755298624785291780366918839912146774789865303109734316824945095814945477856282361017378235190639133134317451909274742901909353130901998485192639892742868940608537279160850942830557933325150969342727434783863506789210729565992136246437990421611500912608546268816607958467353993486858635106177663510190015291156336552582530289467523398648151959509791333441697872774658825584366179018062796241462343274865318606955477992061640617495621321018199601861698326708225266875491783674215942794359800314332343552897632517947831873691700077527905779907296892058161446295183636088002035602421906394872361633227640626473613809640260211926574490859663570661526568021677884909479584395539446051156111146610650417142873033676141283975334260506028371379450133107565513430309073451297142875597431095160476427143874861070468766136658275580104708080188558395468875932493708458810997819971770447823680099209264164698337870069353395255290523961206508930965929328081491564217100685639468442613219036724452218318759242880646465563202556891562346758361499462161263563849572518574464061492054048554189053347014620835406623905196921087555260119651707877215604471375648067001734539055893641315002762120807412753891117447163018772755908742109597827736611770900796608311479096967528131077462581365760084096129547029684375038572000285557713794682377724815862820142546257516283880341149807257908976230263709078331707846028746166561880222286348136576863942746371661213147153467425173573878198425090825960618638561115174886730941342143302391431242280232959871303765565431963406687320552288462200290064568921548419356537640912128046471261736310839635086688881475779978914916025419448940525995652042131116835128853834945612855003052135399434869640443139452643468394911002346034515723517338900276535600481185241623215734330438209744145763613672477426130608246521390925070642693888803678250795113105880649275248575546067640807193833623290684309793676535231148373866455098843100435054604883660776156724121979259173975663557603436748181733221779509569913710447060681702383267558837697555588681052663284708229262076588443973499680287990610273979489841986153053762779676339256767426938151063934520215991005718077663976732062904560842539991324072448142075540718693678890388436465190132477219918966828315621782689436672003704073864072369412574086493034298734522693294232051700736341898263365055440978664437733988544509039890146676573915146177028389013653054834822458811612559577132565569673209136813359199445891697770375689998738803398469812139768315119252834405415312206568942469816901587968910718335730214451194903999706542506084532977755435334939428572498467989783236916011706300158187362892276222874412353691592260828527056453206807675374184842685863308407077121816978844808787486951066014888910176378299217293660883686466680041827790169145957794849326990687601769959936221527873089045851110502053965066826674942193337701809809700820914609324562253918321098581659883976450541366626454136013868673720937725103780644501468853522499904277255182259721330746153945744379637362944282078918006338223522127026496658292867034592305721827797447824263232046320990678528883098830447358011421941426275502155938978968814331442027399485384447594176748294829852130197085369224651482939571242290307397540725677357371123870087749973867598973620439442224514111489319742658002349439816955989201918428706664674704238735258831507360122126028016875304179552661615930953041642384062381507405844519872721815348223250047734710935211694615947043574975547961009207761628109971064774515701557398162837756953711474208046840350336679241055222925033700748070928245278315454027713870557276524285477751415136035070281618987754416910284191675306634981927853548873114445212979014238270279096192233780159123262739316191480568509250718912303815629102879329480430284192189299882464699318399761604026657659187138888324942969477409404873261962133307660216962122185918718277122660065642823909967690975633168967443236896805686092814658467585142332320059455796058250563969018533158188327821896579946691351405762382201011494734083521992249287570935971963519951963608750532436802272479714098075795630075516569969580273494652631756506884109147226289160338073540476743399020976678131801922716440815034463987076441102255211612907303321958424656508898837838556713935024700048553822744781137077203139441006590931160233443283101015150360219175356569368103692415606204144494658916825617435535866921202478219481870157815722361116613518147041570335885903967081083962040445218020106351159881047580147095718787726077687022249965369749198976761402901490638250502970073336197514922467683402540526202862089591032012866618329283951926063849632703870091512202047036085046452503370603056787921065669337666668500172101851774730166123380426974073445369157686030858549939548180160418667797059792653283120660392798811362201566618954403565594447231414193935820058865745528357487798269449994532308057912913719650309686217436485306666737036902877873468102657537079537585005194325259211485316012108333303912609319096930454737427800323816266157860048950232010367848472213394293369086974694479155328794831808241700364956421338978089986122008747808806735023268774383195775267657222045916812937024781365814500192992675068850143196238483973863084595774670841262385069178859874948726358639948822025892778768921522389545229574584437392119151883778733712698544330341711262164012506748920971040298747389669934864549276660412996735704486453343580980110254380022556568580037528568973104762916614632056023306053424076618942587295499786546688990248750272221915911519000118967162259080820342078789501410184649180470076446826520340697944122065614698951392247985465611438668289841219032883556551299414497412669432480792033115262005755475253255452394561294221398806513537964903690973559277792859917946851377572541759352728047717062728883233486065994068060197353173080434739704960154170661558540963701647473986930438544855164733957482637095473648680932667407749667531929978574453860347713063205554872455949054859479329877396906687283550817470422499853425950395574039471554387981113841964387007755784492135724505373367631087253175389226029895633768664966691211174855735888652057109245144898398454322225895441201966031017833032317437180264003833760611180381432128271937486595247052735476010141728331928649547678342820125931434033899339277302677522474239616391188761451143948435013115784996399531021089844861852979371907692580773911630778184697724435907907806243122535735603280284183009578274927494476949352036854295480844803116182742848681080280165646378209268482018259863273518221456178826183078955675530033135115536488486218808621391714062261601112425213620581818235440101797041406830065116375907226465887553668448048765580260986551837681331364989347416884467440733747138784051562598055647569140344679584654863167958965921653171915436446323859995612108216675978294340332985121512787618330101809039099755085376182798868887388762664798022007683215550556815473740954682960305326345051627254792203224426179328168867418154626237589563362527044455528678766164188119670309032676605060146799742206654956817829260409566568296879870655047466184619159445263055250759365814879404195114517096849128302796802643192263836442339478588135565146038801256487830794343701852279588038854927707062601214446320434271024327222720007317224533907178670048983201289161685851802817992415872425197666698426117730640127790988668758083826017616624714873132735016696501994223917911083720707305371133329375775947261807371899160513573058658516983638982709750269047849795291890798971170454046837241079039406360288711183455918435579178431062642612049153279809015276497094070625686943120713548301027566203723853334060161422338218520870090250125659090962789819575253962176306238993196776177758411225213365972165609886976645367593829057094050761046600021011746603650520480136309874174226943048202076338904989245089105793517802841655306733849601599896660950411100976865931044837633277017009522055565534000479274874743651836205866847936630568920827763864953025097620828291987203613720306061421705951940456680926435947202623307143632349290615219817740382226446273234646760820826393484293975344561987390884495184009272855988409882423721566072114829420656324906946468720430710380483868116463308515931584272965411648687237354646109069381722757952602201391253580145819762792727636620617855828911341967571752137903519291852794709685001596579443744452569353169004079045669394487240775033904517129427889423632237995700664712475002560616372205058600848197284532181761893659459819652752088858886545583190129284226603026862374223309688901855464618526175455114672520140547325273641026838908258241439423970696168828743467726318077249755681966501308044877758638781231940947456086728071668647921710796711437216531700202092912757936135823517527183699420100183546027328878179443049934948787447808469785492901522668842666567018841950434920239527257047189020284936029587232062553942100978505495991072329245701253663836212149687390157906017687912798396883815682299106809366440898409962244749304718268882080918037882616595514321541032957572483937185448250220311838367645631564717286824151278319020677451594616020665540287629064120517810644426395159255396862444774179059743818685702243867939288111357155204478629759511488770156163364556202408584549242039692004252666050857885571686788473970757706604436457013281999659118268971018569788872640729744573400028950942809420569713400519588820660339191956352750882598715580052232175005889390590616074190239235045674652985703102725830453650136834991444729184514780771396303009419185508062175557551373101701807599720143827308229243059621640313552823557654834452773096236776476612359107317792560296460158507583337540564230043075367411278542035707879623380578759594704559968825893776233248878138236989662921260476030956401405338908662802065748564212936375897583976119389192142629721356591676986438692178740689599479673093014151113393001674555044927334895416082606148467098332720161418792064219239006344663230302803830756635192399091464432037265452628460160428750454162699330032024053035682925056262344964120016473595251891209715337297848165762640308168693603215263346683604340741442172239060003111741016806231263751277596668582925765444659268430364904440809823056548979133313691752861784878904356780313695289080121030580901735812876824325948982734220521832906343072608711161293889435342825448323853078664642849307815759315424017760700034187732385931492517941897135327503599439542092364030065838855327502474019910597649281233769800356487369490862883651018141018119810704505253887614783627511984852508342421276798619429168953500263874704492977329193269681529593260594470734941928016318409424206945980746369921900521419526767056772370372302228746697629245176710986632778514913993730415370558422390678750713992846815647454827953736750141593474324185710815633576831458371426115043728254287315644523223346715644158226824749553950244779974471254247160100702825036997074243139211521902708497651964208666227903574800991408328576024708833570106628078268501258945403485036357609476475692929412583339973871883759281501409795632336920585642778712786400042828472202262828927148955494562555665362482031325516629935823802808062451658702125125705147791310415633485896214862916576252505145228373554763176986650893363927197718308359013120919264873621116260694546063110460655639160166916913627573118118306810967618055969769090743101051228097132019315468359570202914558479127567247129523343742282534586224586845360627085360943806944181829271262475370855537928405527571888768154270915947954473977917729610421597066715404771071523537599189199442661699483459126926388559508289931697902149319264223038349176058123268934250583695151891996855761908365812171516799556732564375749130236669431130003789273852741188498642057462502963891150487876349009926175820134840581410906118792588385310057321134555731381506643389391458282033840777364761761734232695333904538363710659377409967052401952928342982299910378698112219426587393257084914474489496299611144868095714985738599130487098828516460325476297362224441631555774914113003903237643603766900797461910002863969053202439694961526468859106294449368250729358753354278907153080964228571570804413862394737125633561592054711575644857253637497119732649332487761656037506621408937241928703578116333722913755625847156374920393331743423383744530750689208433513542890837425981450594138291296286417599421090052682621700595956943852035520539956057224002251400124740284707071406791536152499647237232048142863935727897496831191098832375901485429751752935626009106952356845226269170698966125294335955443608010827212889882493664537301169937124534797451615020182339129543470256283006593868938736817955474219257645440943731585770728007226132636975622582389110319059710209179895194504515241312647008243715120013189212963448254324054780176408697471585318246721174704797546050756771745475327846021817790974124193995112437620013600030006860360751705541315669646475867927009376994766170938482598655136325012387059751996680000948662412066670126195130387808992410243413035576197184665131024896331637101813321767123883293892742106536305627985514348451645512579518473988462412126852164739627590541208717987544395568656134021615478373303439125134508960789219583198796877307809312477485401204525791067631150401560466961242940188585995459548806043797555615605384494287642363364773071387807734232722816664936337144012281838441825628759921680586607230871029162959679833628522540875525641747022219663490881720795183659452382038686671416989767915330969952358355260884675162889864523102253050629179052715815550910660646341335773454743937039909273050789380869772996055006491924549973542530367744644389655005542036551501974191637516155302931136592622916127500170535639376734466018309183659555417703931718635887822056201527562100792787542886000923261711456217331388738678476942844549504886211772499531973265164226780750278396457464764137295068948608632997833491904234033600134847330312752821668790145306693123602406472978686539758795698204920180242966154186105437693367509799301478931626671924044656956161330314695749290941693372403771366512715068021982300445804461138566942639324826283763622457947124647896960916642287669827344567156993018873159433052870612945968293642939080702492639847013699045926100485646370217946469084561077397521750545727754580598963898040157477982313125576367477033538339041209801073397681318091178223026777959563323514861147953368676946517009667117994167668842186780053786755246977754973496209893406698007096916408699945826497506018450445109460035551601298525033693043059782210263075362800029546866215332493265927414791500147161684735043495795661546284112231249130388902746708454989048744735566866849609985393813711439004171036600095927232756831433729428788829170588860234327163515012145358059153646255351697732527793272010858798544265934969821965290650175439899423404731920538820695253056506711891916937412282162218400128211751435981902969583031792013618913757907184693506083727820360553495714198448119398799350553877856814911363349860868229462042371408117168373957507329288784170243123042544677137360833084294991235011074534535143500081080404709041250933781459855499309611257563977293307407747585853502853887737806288981004678849819149979009443639412743101186948183911103666338302489718282367718299891344066861975797111961615552391993611192154669334969605624112052091593465121277974881912869482745119815044790279045508865532212885152259351281117053514734195283988077805444808722938141511213980434883899181632719739694232367827515448619374896254771552520195366414160562808344243795935563575863769354792029602886708067004090861641692992498259991243491534248059737226511563694885237946698737131352046613850816094772688526265580350003748888248041265181751218867892252599315550295182020207339580873073965344953990160015518326241949445211521066587774527162452765972651047089535769888066705820826149293576430655813950503498808811681021112242170582260600509152455174461321006340666689830162603326570189885410612383666168750403247964606945998725996351300189793760749602680722042819191212743866457894712637461263875748421751063032407570529908661185361037001954856811408964458863509657822870305967900648336902326222843357170470068418509431507069664260138027570655572575349807945895679805973618122219839291088390570295792493264069590086311960201378092145417415744596898118190091897165846784869930254201646513558732334883169485004098603195603071732976699565830045013227546041010376316937874680415734952592883605384290139370193956593828360101628268642267283800523780183197681555162392533123053518214752545988794652922541957974028594138319632619111179981863080906104748215258128117630120904919986306520568231845052047729963334450463229541116182377858774792572405654878680750251261595764450474827381947390558719941382845127726232111991934111814260233866752826116166682039001856877162396315145468304405265903685231202125211791223116113829747139444739547420390214777995781331564265368688399054062806792629449681597370390305724959433044522870405464322580385168204137016843705160637925949763155447111674792916784024214339953259126116336464753314462849559338483069430397497946675108917441875701562867771223955538438787325777994859017764930683710889958453359208611052347170488080574683955758422691901440079492433505723524063301292805173607050571859281541144678092112097078443846143789607856988604910429897845387410266005114770888648813579792987159094187750502721848105370989157271739659790903476266583060807998211008299380626052892904928530945207954347189585907227158811494349403658822966324934801216756135939918159405764131340297785973221371696899689989016209420368041173996521988705060867068761251485126787671174723849375583084378201101114714151633985362611294300192544392136366881296340518196465064761091818931804802388781327547679130726661513948108280168146219557363134171181569877907077475098374063315692951491979044123634702457040032633733374401742381395276914060280138739494231323663079999878045287548883044125253476616298973887270093584151725174553665193141394132571675135742926531882558203523335070607702521547327449360596392052090465172873992987802709154403729136999809531539933008664543630716430743117886502506670836071805247049637591443787758556123288541363280952901951933652958407759974460655471907200503651752363550615326727544257044427825358321888071616296016943598556559762242858703385934486616559486816353077073852924570466657512798529982098113509394172547834197689315346766270821532993157211418738136538937446601751859938782493444216970628919143002926299387259100005981308895240956993625642144222653926601181899612725001009537685385584103428958383506922510929552935658086988339177717938573712066739515303243637012949504540438890698932360001783183171199106814663821265107792110070858839792915511574116103813127430102829804877229712025482040988103024567776355976075286241104045971474967072046583033446379939012149363201017836315259475809029897470345561963342330992793833206242090199578569013169554501770083331902619460374197393700137028438335329347444124068036209920338097728775823450526419472419180413255660361061610289013537671617794927204715577005648631134916044120027401568685004933927588835315538588983726345619944606290099687639496273507667189452690072115376625558995915030865386833238914617341925652480518060499179402557599553986267888166145536044723609212528781349657339679741217600368908008424528709707394865016590297988122585357025092946154539165396921919999276940189240311183660055920524759549448544083806503380371180695135445900365449628647013277488256951704625361018476195068735480677418671894069251088217572067245674024531714129781280119785259336123557170542929364103530108111155526607843675171857730503667762580878698903729647491004511734458004447080569855645438279898380936398186322615179596447689521007382412671105841488158010103272986780358395670938182647496333387764197090158073432517355629670469692386284661558142375406710481970834465933936480076984615902010014936157421074134277927643019454292454453511313824039020558648823804930714955810989944441042199804388639410365722667150559004418295235173394886979648018766942321090325170682189907309792404627050642574138801266094587835285722030326409058866855277063640645802556644507540044778511312710588430556184079474644481865474601318124727607301223543758646845406662761843485986061146983457257658147638235996845318388837138105529056324907417254080966944771089311000509852660643630755169966274085960666479968505294347952581753394724316535508931501373371095567103274041550706602877674855667019076395783423851620995153470040675359608557655703264773844963441806244470143371301682740598893507430839559695532937290599303616698713270995228382168193943063515421348140579435139946085379979382967113863891434518616111038305703385069264430709055129527905049163785308891931677965663981874412243957007001472159469362029956486074590447592711714343446769398189282800147175860558171706364962351677932458621424391271200727996404072100899823220064706960251125535021288551518172598027536190492103176847800651877270474236976934279060528401099087858821429166326346836793622424485217359477711310111150747028533936829683669675285767838862848840229891891805322815502000875994581572859566861855878910022158440486705312788115083562645244607251948215836426137990031801332667564633705953282902419928997323445791210079283985254840004228288194014911438697656252995277566068917362724648386017843713595512063000161594642205842308753490590407156928771981642552195408924686634519713271676709246732349905628302525077536782005804810510879000126154130525082421696210854769511398979264297996606584426531792958044623976681642409086429429382192118207652475538100272689897374175752259261643835691507393887073982272187452856624026722795206633956964617577828960094461318022695012176444982392519482554929797453722182169528079590669700955737586727070006038744657217913511003278195817478053118913116962244310696602371495240663977950383511016927524987037855000443097680011217827024513357010796832422415608827340252883179012872156934931360687838659369809508573643618006845205430800637799898571655828353936264362586134840147858795936946017047074783954017895272092885714446401542023408218602834728064751526721224279089362136848669527599353867294185612960490220710171738487879912317388310667043394388553401125707065104730262794533445694412969144720990455852061084488081701419004885512354751672070090473138865954490914790960880673854796049108165988469456983260502182051821748755935014284277327457526663846810414056638947708632980189577297104731015692197970588965151535755628031579711160795380141067593514522003735821981488294388178732282472937405495206611981914139883566260751447045403424712642159568111623964829251004838843106979887129737793626831148921385502036558472908411217154117923156421883760074505852885465099568000121525440712865104217771760209896558618429835349716938591632962628335264807327082243788743520936979354790535739463698360466813637221181768871970119472012163957307190138184967035903843651431935788277461281411060814424660388163285982187275689655925795850161957171763658360802173569192185217911653129821839495770410201821045536292844799191618732371515720902390606815034167812927070979581791045848447882990251585070411602355475948226694549217709517971090045114580428714582886996976316676760348812057481013069537141536675306525793100184907767144030069368952200130667624083948972418319799272463244495239252630234031441529029206754355849553634963843120643818527699859930743191882982471879490063241890602132809324991823193907884884819257846487905389424156710563996444434694915998891594295537246120000446042212382275784241720575863377499794776934619332558012795816753221257917450295036168967578812222111032985263810000861529492624297125934638801980483917252817044240101574950267811523562321613558949807624545180205610727620648723092483622940176224188420348632986408127409639636912173670483448941227247645163412456602720203301887089264984650437160797562546949719619781724804084710806589486318075350911706660440783042742441992063703656734277757991062687492502903151267410254717875211141572999797568572672254604294768498109290891170718152285833391126547152419199305627541633198184969304060368294310555806026150304169383991662348305590616974488203802783458015417815386947238848795600273882358921643196340401276033529391688198252381381000219160801002868321718967291365113878662916131800426500582643062314388374738117697262808546308234592574187473212844316171371122692302170496280032660223271796551058792247995881860926909074858108207377996845905746287747544817887656837385851266042206235276424165916333977266178928831764962081660019578038984426798463104518991059221995526813426663096823855139683502389448547996005187335473925897798853664858701390185532869438921614597937960921854395423585926910875742839193048641373769332407165241133227390022089170052186979215317006704471783825088882630675396095084052273612891053069337781176452705951007403002029228952501670562598926896945688761454050898627449257585162570619841768818049352887152090193290683029432435602530982417643095717377164541710833957085675501541611316606328424595349990517683112573221295720402171626282396717455513829860937814187448957693789469630741632620156550433184931391150700283786845058684775429722195359475370522941882311474047814224521129715197613686390249497108967947889350168354364265004384973192080274377734773830734684794493756477898421602848920726632892811329012781434320835087239801893361406522069963095508213243156263691564519918685643553658487102295530265482922037271207922481231052524216715758981169666196002538703385104351045419852658239991745437581403363224356295297710246830697775620253777528044124432924777743134368136909086477234293512486045710631488842004425173614969394331116853348979162754479752425294906234789822546855305448325710709891617823162068033130774918927985702910526470540171468396278435841139264090860169518984344526167283524645080120559079896233485255188666692042576005445690350163499517792868047016166455371423712863295558121650074386538416042144545712769484136904587966369465475979631948799943949380224617809739432441619361810976994467507219508014839688234025987592874786835653970100201616595741983507447929511383249205674894927987678492496671468993315528893300566936852197627824425083976309729851054538796897818524448834140683574641015089940806651331598712896117728910923978637476884980971538556512667338978074834083965751987633100296800989801248514083133526823548274835012493540175561278130631297501349592482349163645850617037024409420898365139801118240702053343516743324967068000282154607984611616600971480849226042930135787519885450223472539154965188463609841283328531159121539946252505943368038108262916794025250802527408391103566545944289136490037333887075391204426784292563500606516874322606535090988228677700490207593950811538337710182701455128882450900688673272166660554031930351422413919282902336617822293296358836084283041081611873499821988332661953549375509393173315143197237940394897969989909764214993359908053728087619289225938616535928590902922761778920439315908080659629620652560547160971778817020348009201630297563732786801844535683325548242434543981799494544219139827271317309746893665422964354369303454448522155251962156490575998084803164033483143802903996930872938542394336389636334887535119709330478965884212971650735239670214310623141028179974034766514677908046331101818193104498351807762694878686787969273462451365098026673132488744394075029499663353675543805079822980233931750784576861283553170133272672078912190142220605642919300360884773482606470469999216315434790473611949704633089899316695035348759048480283282307277486283813062940797076859567726234865876260938855108316426458059039781561005083120443411667614546660211937918145263556215138460393845964302051161902929035184640712532411482778161301196415104805228406087821719219684537970496898493593472718872155941705507808332766457013338434320945114456450172671459456729008247942467625476885412085145334821514263336935428609998435560300354457713916177600955195185518063459012871190071595126214029366661022999320428638070601450693357201731004027211919279769714041255397883173042949792217722520764829415115718855719574190437113195735588164719935772832886688970998759452506737341321098628984705486370224803850646713324958417846758918422310363709309879996780778088249162569569826812447191175508135131293547830603130317713787826229298341738241026944353010927611417514702581870279250816573727343485195611787231458215741216632991828926660096881290930896549279514488684233909953130372261028021023168586744383210611173700787512229966351076688037303090967954662619121104473516915060866302493948004051535561534493932145760437685190034132050400479346131239659611119644415612437260102919283003285912354851502132938863708545036163054002667947978409282036716805629173509049257506238967939999103065279659378007443941223715715797574289001909025862012467161157966959293326651683770141547757512171479773765224335759499519473068284291389764297402317081248247300350007926218021402623371715319644924089388491174482994650518944278777922467885069969845489628280200215074154012342864285548508389404496196166688160900664838354155556493204049723386900502715052978644382900876652544849878317004790618757573321163885548983847055124218991900418054676123317648409363133851036542473629361254863882202736522860444776453661211984686711682677178262712966083708058412721520157148884500392425837240592469681422448432633283928865657874496642045692640871836393601149375292686873870444932254971110213541310119111404483516744700630731965960769411270304553498414809991543880299876586182508241988287184626089995686710125669978418280096489344186121567080224879896196050947785098168400266182058892660870244822717829761598863676925116851106636478923484777242275977012529302291157234320388220965613201692121625586789706513199557737706427649544260338709634354021528080679539621077678097984394443037120530145575382356668656103614377784125067354079353562335929485552178450114792137201476620802704063688706121014449534846309334755544462231089887385660102484823297635611625665891115285500103502715606408392915653636867996550894451874833797533387115335492633488673639634496861412824737757763800289055070450423141538857571293650863529936448844735033060498146514786759728084997638810138423218524124105998648457996377713374798519984437300586021504138004929483013109712743426295431007881204940613151714025840373705936155718170982615660287212440192594978258633592657495758322417839034766207998430933776317849185353272898461240738194569040084961170880156552849241266785824737149242742554317629541051977916003220791653699521595746546636369522001251261014602162635585137553409234710266429663743571137181312787736029235906768564628479603039726058161691043988784897542553361825957799122588237512638122985899702355460668958159931801417580327588749694679405507556488590901495503659456932746482948279503217402714758568755255247190587588256496851555594487915004104816385050110226574193520510801132011104114047570444294997016127428399621857781763503041118213100276484352108986860260747631368176215979228495957639660044501324735598957460539882163358030324738820023848901823883230600109886874546113217064184032734624234466250911882152185749046794036175968805710079136131961187140704000751211566599200103299725935228059130802958356160942832313202365799434393743038902975104814652537619073311718583538585027846040734511865444166739302643194460948442849892242557479785408604038123239921191762059847252288468078748213637342530682390763572618847413608392161902134781361375349686581948169903466600449727846416750681923575207792801685851820108954848984714285935969225719205658510424686424440947571653506771229903269478155807236600539485105901086167827681349616826645083011796991373094339374945984571367378639108066217445246815483442521576004644415323644058041193134666184306115287066013719872120562429450407588123021785805139642203175195907668982792918779374526644525123775548278248648216632500406514300596250243175902675864066858250478119275928452935160347767015922489471789532802738572357252955109130957854630133841091362239711148688319878452600475465578125777019726086412935802257767631310993482117523941367504004405321268901229534442115815138498817237982543136991095908734395693853219158215730705333212614821291748393908942653081395259625794625635008340543731439875086727753768115565992340218541100073560515944754541594761687729737076102668418223541553960360376949714568762168027465476630227676152319684246758004327484669610482306797129387633658515424088848561869886699584596363763343268367008997734612173309764512530869862751114751646399930986582129984129071570894942936011706860426594003958972596448735819002163197707648579614756335510531362924296066806536206897859704622080498340176385363760244591558080290273299365685577980180481463659518233463133073741156512741957065995580356869904157934271073917003579598176575558928163036110054096920748111277571190392574000512346581467583548783247094451168186565297052799909601009152430204988175742086060246288901121907853182910858993703618057113922315143927646206812567257681133616823365586393674880715526498414870258772169510047866839822848110907880375089134746692582844179454324990813083016371689190026017829894813420615015361397036319120262593637291657307093761413557280526112990636440712719648879872183024720992366146042229614710949660347523558962111135414582949647513205567600155356738535117696401042528962552806961691268604528250316412614686683380809521797798603535356700765022993343842376848794064149342761367462434216038304486122579811729611142751902072784695575581450827092763958634974173720336995704329003576321373260493800871381159745042515561624190398715849454722205276386879139587565276562495941183554407014282812489908115900519511042780715782820869225150219998533100251557067603329149438885523457068339711321716324552712917524222685132553934972706968709110660066099297287966350645252493261129820883870635478308561171048564490712780549785950394993824889091041416538131794699795008190324241676697691509292199573815346751382025541141030733121619384036478149871237238152046414571081077995341992785264779522049902696771114851547848728676063531136777290608907908437312386800595858852038473070250709391844919256395306821031374726452960798672641602681861196649020034712192715111032070289487387942498337229612544824675432240896533550075557593439013158145006784075366480590649690197539316143712223319502190604817648666370473487878533441383570989503983328574456189222835223654402490191197060917418082723258444905442924722594589788016483930180564235201745160796436006846142592667252569018309292553924909243430897120626887751492689233498131460803217482661278718718625015550935272016688941007710619072565728039693478011002498790311378404564556711180881362106746088807745464113314545708517608206280902784388456471810371612478505612782227687060966624654268032824466527103918471409775554851483608032942044730166671462281430039619397315028119928817831052110092676042422636574704878457313847991683686548251086496431547619891161884802003900754418676377944992843587822653283540599617879017390573648194777414404262251343732836592172959071621047054361831226820876696715388125331373975203338819734705833032153952073548142099576700124541723565505014454406981538904813693812107878984725680751837688957298226073735099101462624995082383508397205407777007036447872340259058663330671109298132042641982015475761164907777178384100492399619259325403253165481572143560244421282110107198704394193225197588587649011379862724842696390284988406611595275652415047342931849003138587867084249577107152009449950525302637424769053235857311298606124535427644679408073195466333980632895802793682541626192229503514248809564073767808378015092958566302905141344289890968613742384383748394419868389754738862283893011482280805059595266627899804105316863361660513136417178363148761072931357195220477230078156610446860193498588683727361416830049561156129658130081705539242509144296105350950164959406509487485525736057325348922987238377915200053890770013913277537615545167200104461292972664700163238074241997032984659521192033822024425143176379510629249622550190321787889727100578239079542413908524274480816455335899249276898301980053926352577611692127307105792560235997886759510562237481326783620910810129485103367983303357057519887640734184500283546811462403562351013636080040638909289835735968902528762536406244545792313638947518617098794696264520510951894437990118572905556370078069866856527987310036639326347811558679968353288000715600074438355039155410369995514644316525103636864580709121170899798503549647576364428192538522680025927736468693501650522380760091922789730845169702292660374820327370179871096118823829991478179289309762994426031649331033085242075808823162314930210402900133981507371671808259304261793908549982711761480388177810214837197637700126216790266159381315775218494056360137923780612851993480485125444506276189475746736944101585611375900834601517303526497212435801192571346874375236793042944107709154319302971745013176287624636995791314862135416397413476567515898636990490087789350656402666837249204058934197689843969151096236637192064202307311104050647543396854469397537194352675582152776398970718151557543681133589648162779462629121769259198372251693794247614853244426328611876906096014774629457910602262360078595405293542539192173607242626290261994982328851886098311263141847989376991030199620578859831675620518038217174042188869568201514600874136920603933253096534250356833459296051649059394857606905664625573904229409353031909555403179202366552822400524990884508224822740474076720600752747385710191856395443732879407674146028749832938006587336474470055084179530101573060335377535358248125007019096511978178158210184174909392079627926872259270975850824964421998957603503705323780703821202341121135153429240185754555565968385639143722767364072731155619294676904015502462023699727580068262222595535759928091196952362061551082229064276016853789055156918809746961822290823150400389922786782236905813408232102559437798056118954692057945411179183096996792797420935997783659126752814079892595179385719828734984479866460771149381870398815271993369265378912483750774050688993258457263589031381811364377150871345412787465623918596474982743567635244741688568203849659523826081717676283100933529651085467969135985282520587567273073295895974112394226694117523027681892856467822196672494947417534928281492272196818614449065916062964835693366058241534714877348974866562840349352422838555413716396938024217918308087421645807763146875528032410429417556353072636284022896194298828609816111815623776033104403597418668655684378941389734760170977192947975740411390013442003723706353975261371834890824391903865746654539881619286124794908861989729544712673280944966228510222541199362876235045687250505468755982571408465146162550363059889003522614195809450522502984530237297121721951581453246349391731689226096520752863075801026950383790836916445557876088009801062754035225682036818907740360870878444401854250694775335454981835707291775183657099047091357303381446240560729621301293406041096553534519539585224343440336878789690053708144225556602042825285339205746829894730063548182104880510224051936801559253357836586316775899290106598998105443134196228557260513832616964017652320185675408539250374528929279395403916252980733188714180651317519120207091349037910632926148333160820879912015758281068120737544146991120280007027096510777954970482632188494386788975490868355669456093814319512467579035290045621361820713152661891792843618009623963297018240347325969787629423678122314147012425270128923270391170243318817017693726546997611375812001575971902919206739156066830466777457309813278617787526757051631376210128663767683853198896386979187487737375027900472094348327840699281079282596802812930926441907672499167240240582616317854647601643616443250542486122713086890557825666796414855408747368296327525147860421057837347226469212401497533513792545699278608101242470162324673434931331603488409867471355595636581243238964336269684223634127177368936280808048614279311532956073376464151831937705701515941575851908649493840973834388674620082831725923493104286681634389370062495390915233826640744024853554598518869772084726985798588896746359723154875058316789329465453489529306272369579570533620276834284313490991311995002849024845539475055143080970835542640441785379871414182768434524362143636097461007361006352600023963861207237098493260101752934559022700882792751350429573407718255972273738319379458638848702469454165237512540093916562147347007793625444587331991512365027457055978237041258564755596578730326400593033374342924038471172642305797500221874130221479249313947922438225615021232795505328008734453426779793963024957214973798127829010249076186009257091970110268621734349030048458180094953267232500763880654528244914183866442339836341141528547434459881450470411254018973611379384038195846799140071620089042340055365785113863519005069345830047330038932372360812673863410604613342961172475927518766735511835150318861862332946519983480994016097981820964434669503352117346563338166467811547263856648403370763824932915456784157545610910834733024288347390288845565155145067373361638935768740844306906883423951615275677825425971945921667651290379389521365742919098861028197041846282380058571407346517889290989994065082098086087544173618603640451849417440453118779176685065949817165195377782984950463773927887108778526243369852483857240779715671750516367067576841060940400658729711498205320996088567469839180404747224569261780816911721991953567954475205050663036563068567710339357852687973806352111076571697034222027472001197795140136192905710634403357650254246023537402164189599344971387876203014312544346752124853185666718282149194780396110747936937586568238932662841706979384858077940319935333282001232689817997255762969454594727502259779678323868813921202951534606103109025023513678341417657963483287643841298395303172802856996908475684141699030440752138509264172903929503152941915492780054983341386107478858177287715636571364534525456972995401836511626240392150909274228384244640651394654715624921343125854051014506200583505533756005441538499360730995347150825157408833763135997219892371901740276632646938960642795015176118787867355273272538534951974523181267183199825895433228236119107456770280846425798695404033946131653797536255078959957052104093260066191997182599456855636459172772816748391383296311322421525384337132835352584573230398664323424773219134917648090345997895550058457847661940165147247991960523842546494683524367326171777841483487132356697026695780477785734973681467195310949758457557187329499615879961324431954122599672901355082254415170814087054870810095716641939958794859577674407664318832124352044929253095524033620998257928560213803371720980354669845025320844714665047594318861426929546423846867396635699550998705830275594768687828472147048739535706647561337862938106807853714945322593892653390470746390859447515494980557587005624249856175908789482519239844769625230491068758939302029145840865422643320144761564409242200841635300601461105267765171235982164187050044749761409241230164443379194193218612474734253126151022044920729615129076031554267095875243296142362838243404276172882066869898451448801468468697085047752829477231958276337871476427336693791356180734274081884424403147603157002240172597498976578104016745362115684018375463275039555656767861282918167603945988932505060026420667319875882466318254758545136722681950647685397982106572700646572568146986006764142087622538452654605388271152777204105907242018333927168620309958361956667844323715146300726078542081337708330089257112360414347157506771605376166162534358760210831015091655766385286846902482535178088831223664184164360541772115643763179904906764927054561892361988267832378598292112955678491923387689473496971857199505298353229476190801279555692280800723636135250564522940569514739311277923744309949136225607654224139775528092879296552146735007294726504079282359089484381883051866735201539636959945024916951715884937559825250558539010472797928682592571008494001810313964840362445339996588853623962762958561817028547417281533324617168292636227711981986815732162226839964832490161618250263616887963009274421346194539148149929007980849218480906425968372829178912444656661626966324260478532900194539528655870268910725351208317975477314654497704354898975410879885201413699076936089275530098848870664357819017048135323478185559872808485398534470714491776160588676364007097556266450798951766606871737486553732936526617140241561295407915288973086663158199700322457482443410129420614864412837494405307146425219764999173471160574028705247653244030807975157249804212445441354873084914039157518972753777444826208111218318909715901392328423162157770767074405679890362421895577575066757681184676198887495296018171509939933967230885436784748519243472154099937517960106961862106132252774543819401596267044705493806115790005702884587304914831854593197288828120394154500737215815085696238608502768877298053248179534086975917816471381032492442897419504489762816431844324846302372012981932773567122183285428305495487495905289969415064067138388135367350520692956098716539521755269387262795504130327439259906233549664046211664299128351227500165089454669403274822887093822150389180809383549725374924958961614308395687610011291640524675207130099995224185192724001359639450767676165919191280218338860681038023063135012208456096381585930657683909291512176043592900888148359730974086472707873855714935408274167319249807459333755596648980969788308819130750187376102358313147424353078355545572528739359643307734765580037470806051613350694327706473289506442232710429595393935361766109790574099879106056339592227608823648837565363501516337708239699882176800843710497664268360122701033891427705473984855018038421703795945398350843643332091103649139580954539006693875467856394645200653472510739796204538931195072467138154676553476183741368674013655563380047921549485336685900655701654631009118882828033756523431060546059702431255045655998078392196958381911531210087395545087290203956355393303891303907271001561893719448357807665342469222024457210038684947369678059161497403231619640631666410953793531265946367965331287249426975213632154822058705494217790527156659105942814186081180227096138841076681096331628148168947079597026111635414525028801161260566986263131595360129168369524425432739664431499510061014077639103234880299777116538499029933687315233906012327617969439365178420618198145688596370173560761906317899718442670011677803209560035767890089515067408584667044958852882320716596585617291103267351761979596893987528569993804033286431511643489471097022354383320670089273712110706845089860031299418695918317120404412595539856188230403958363224571125480534930473846882189207724473036999913776151318490298359801609328159172508355763464877301744091214906683162760049121502805714657795592705692631992204772257325048281406067364175267995866466744826006717418727291635800987240234168234624131694612376260580392038206924685029041243811533474187837881728909769059145130670953798596564041467389264421453088972922068704587479859862551018822287166776972689163737963952854258561411996521729427403155117626895128330053659153999175423502395891295816989485165356857667161293395692393318781395540611362206705000646159220691667668570246694838881258013678237105548685723713683949064217154928468213891260836423093243619307926050622428761023763662001608272671643521266577260094699463498585973065111965397403910868924737564845960134929030898050784119190723413792245126387129951064371748723647082613494663579731267978859069338222176412975458497766867636575718639773835447422859049397289318165270146078526765748037707366722910603067018369413164800695782457511101559592413686790455105429805042104488764344676280362950971803758988028699546000853676969357400675448614804217926620369359283851434468957373909937767939225068852335042560735517631979708393406332950943901356614812512607116135067414446735903073547607475453332154562707781411008895869952119655804760317929527595132886425568545791489946176699673330755485874601183912846555436597330321562318072929374821776031694146960278084271440938395282277329795193299731249758275333332202784298865307099503315260979888229280950520181133800477105358489757784691878954122053437330038815058117237435112462864484920643096714924902962318740556260407436726202521112217215008099726833578691050519817406571122174674672657225466958548910695295148974668669246891047790854683062432453578282061230996328340229942920143120289928681231702471431021532010765632970091123962208904386860211963963466273146827885560954303005798045406767331012414212832444576376114484348908829037950990594508659985226895696539411640351372471758357109596636800061805939032038488623370589610701187135184624201573557152760530730241876639593804624965381227506182127491458645352330787489315126186918553599142459622264704833598658220100644567682218068804433038734075080053658734791419557103806486343199928502925815893529882753913420314720695078595622898775330339463250305769343987397883505041510034800912081774334778267023270954437363415270486968957579321146888906559142643907285127475947783598280553700140805560112212828003304354511856624861630378013835044663662220100146464761457589912517796719499658229067672669634335619389974200145773068275992816763611382711427753908086609957329851611012239135611132049667756099418572877960650285217793771850815544412202141368144098355894383593593373845869424231110674777803155699468748831946914493241697416864280045137732364928435345819922339621747769555707603735180309311883530219399097440385104569389932911027777160078683721612685660160841133487097007262376174074799935023728005700365962497382702725654055084877855129982479454511454821603043416043269243691043359005557413531838178947139639360254298031160398927725185672825921799727542606321664567582033282731333418266532631854289328817594440042640963014203074780550627499183769508996203679794730911296471231081227706416515214704278298401134854395432342909878513389070027161951460952393755954869344371586672879943486413276667178930995147374302554881060780061623755186888688187983215570666920745396658927649850749953160036516985740745056189745338646983975895546071779694888390444039150623098005011432021157120497708394407287507258876618606043580451310325019403140623546594659257558857437443687473948572197857427000098709586125262760676145237106337396398639158382573791952367792069717586675397505267576326184233239705014739056072123542306642013351911528303223071937472426606689768636919488508149648247034352263720495230335437957689303169037606796292365815104887186874093414272965204597976649463180385521035764290277949082516827977664398227385625091977132384355943051556718064450819017584177311322125404016696560515435283678351987280274707930008202791556115498591051355591810025009396982796891338078583894582387695158852038856643458987195989058479502381469611568275128494999436420399896982791877756398126301170368166235804626350645200417851449222901926617225940883205402612052558115942122903381528441346727729619966596341546234528267675404685569868371967755605348881404672002912719795442474434230519913697466052739895430239722865626891850651095151614492792879725234009511518153987766994878723752760783212894785153199960813161129799872008056001144050666450975928130580398282375005793476702840481753854591714945601036529614809020534711583120189824023237310621246375704883075578160908188323522321745478476477648295404140294350882088337202042999564759150587445559103833199157900912928275101402398765667812773786117428380040295409655080559787020232977560856623598318233462269982727058612140490576369592536323128011301256774362757562996262883374627597400978453561165405035049955334039469940333369156688565252022981864134888404673098081512194544644190444206183789749171849594375493644404903041143211548958509907643684121740177642232081287867303382944211097703808125475710835579923624535514597385958611958468033437426293272282095865490143960501359579447205665385627424110883236464361568481006951171144478043659619081745941576439447612529878625724685322027931614256542493204203553884554626148026394553361363543112466029535995688399553646439445017000485499738172080176391088392265660704418933012547947814226888716647380662997118760164204031396614142067762815364784313302074083589200947166619064441574766758072723386929216738706260863066228155334123823264608534122904135779761053950755714713809682747989864099853890557989550048214629354476050685274134991559061985657138849928828432424303652168522012802189906962230640106506649651889259046419073070176762869036659025596385968495645769500704534846505494507653724660727303032405891632122451902404204813848493916362405036107488847164438433800410865800706546023064446602289442975236400429931256999259814199892443210971985681268762631065551744937873910034222498609514725168740205562130164313831666935401418317447645011337996211627343713986392778651518496481066302110726399768076929463549735437648712186094446192299513839897658709111988142546731635598004428729612363797757782129922949349496892860595888558269342195092793792586535513129532406949405626331581556152609122647337326921077873293666611574001300726819599362761017501135843452072464595284147630785630607196200126780360525658927508558373306389278106686437217229379210977371482554363525616890653111957525770338327827308460266858386360032950834493747448295891961138632676303471831761605991856050212483342079157449767819825295469307176633156066049072175252500830838048405390377690897931523766086119270474907256980885151626249957208162356541825519870227119483695935347733092772014405857907063450545654763072648831921031252103880972382067718628168403587721478367072068079832356047059603581722340697759150384359433553901310384566756903704234182548167464549411394421976927531805320016146282307214026118432096541049520474035667825674771492923960924436995564116795643608514290583502233158240287852770191958609402286452941972867414236846579073732315730555882968846607285536491648236218720584843995601161619281787305776943073526842096094018987098944320947550716732645350326772251965935887324964561680025403573014398047202039984829984007855221347619423504963048113455707001390404215784343897607463627775388701472699041120948084767790999028604779850383687670152562665869616632139890785976397144886714190898390273292214994236898028887525460228509285258453060390099005005895031964977665849148440987541755377507061630750257154250075583533608196327139646962858648363091450375707146533068512924307375807972239371522208906817753131732450264319145543776715185309519488420921444732565151767161569221293379995880655256409538814052036005726455333431087252888191130475292716766811305263885901066724837539850232124348981807613043242934188001888860797491180070800748176757049263802583230658166509136154783971320288583170739936673584931189470468557448310112248673508011142170264464391791308941468152748505676715748850292562719350839081524393423815955308702830477029865468564038911508664794081802191882184279284585312586913664060115727213833669228899872508796926897950024763471815675612045354517574868640061685704947198957853757658618842123103394454760484088158588573711005418348150781754300384178777977889441704511363482360603352948040742183807475922637738960422538680013738904715408487542040701739224291181131801767944742377433281973855511739236634873881448374228445868396639443777048635920799799371263305248799235863043202805312863701430494178940765311297655296358402613256743426003420418501993888193157868287641511567883020922999450279816548584887141439355618827775086409947026802315355804697391055200213852261317488325129985710571010869903246813858304651506077230703214221937497558132516460649365185835971534777036037904535533427886614803510362075095930883169326374455218018909502533587412761930146709946935671166702571827293585744098109216840081358034830508356973770954357931878384168030228746905326288403636530619313120996185751067536490781921963696042842238908517514950456895789658980391248435868249531121137850783476820857435443745438533300466554097463979621159526260797221764941824639494438950179781223242011956573287654057581259088411287595379224301562383809656561051859646971248661558590879251474714757423776394976954526513273325391041934314564731567129807211232798496283929440806292347642352088992836821953499549191631771578974972673475560785821394323529632890045912325783608590939633747708466755957324072817048243849610179616144659350068646711574349939996853900449543842496048197165572674769860709951805978564373820307113398011350927619019184917447430635362354873483254370116862806951052844645026567394798782018958035909382066181503856635993850289867127059102185328425086689463312303832599215873592377766111539153656666562922845070952640846280829601314115076552659148942851980948898597953351120814484833967250518181435056081409908989048764488673377686263517008284955637038407713418339604966060000743565542351358228659108090666776650903437265981418733459981049122824638237300298329409726878433643998544123867771397382654030454513224083547758217110587792606369347111839654736486371116943219878266119135379375640027809199777446660243703091569553906838453135758568086909263822125378983519488402922008191334201822091733404193331072415537826046766710872550810757308049506149913566365930894847916912374600366468964142794882997784326136581758232627111379919098088708769524088805521889854898895576869811459856145580583803467974509842657816866106651525485391790281002366095730656793437186208357033090545832296640130674092533991819095637280661314479427594861357264560885184600513169011337712033330555015614157706864634242350063435450688309750802694624629681775263353452105454510141088486308062331000223024319313072893323308591129124063454223046199499502626175946376977580611071877353913374588850982013427453235404719173586136322837931910260146090093080634415482972992619050351528535926936360501990603524750459092927491318239139894844869524620222922955189720780504435435608373588171125493556665657155008936287153599694020777976049876888489729749650347092403575881909241128621480436739671266123728486208580941952320657085145857623250999199637599603015312418730829689508427952857995293308613311078207690130421374473704355338907930863376289314241274404555909733293197240542790019952386091780313675816725117812722018414116146415879562367630828068561502401998411924435188331757104708429768893998156031957529330815775773450563802285937796822939586376685363170295991943109267140006344872239322543709379734022598394729191034594260680215106249806598757078689184832300625638334567838161088517279509280445873815667056314675208551315431335821166486388418132315095873722366626582576177419755008185501847158286135932897235166218723699436406043041459945277305243951698532382184234049813946412301056135528302268081763327889374386328817683007851037419072531980437955337561110878284901256697039007898275382156990178736080915780055519524017177859833283321575632826193539924788487597895679182563036277035459408432856104966694064392368714585855963417557842442897646903772418224027948296797141909887548733140775702317421269405299690248794079866507998253554906669871528920607232030896930229532477147405893723741333975382398753974836525481553597607139013016634505562369244435192668332080522565585090306534625541266548631691096826859358331361158922865522122423337249529343686698236331686347049373701240340358569053630046117904006383582856358138355763209537584116531317259540323254958251190937554875263492323462071986389351201151579363639231921571585450613147985429950199406911045423652026353521736954428206228190047470572080470667227320158838054918789135614241014881416001086422076780478070028029559642569586391307393032422795236869742662979507548097854811750956503937548485082100275515629639408919263428591985224666411891272428025411157887390225326452058973427218831633721281995988556452093516627497314397522862711532451464635218143573431420390138700599419381769959838451728372474683571674499091060712276306879421469849042829028608746104672439561915441586509111603923756007552288640713448848587804722976923283185444186778375741940319973467283695885499264757768950335541871772584566725293289657984559139064586791312052813904504821503809568190823675777643628743481058575436008462193326978688449669015197921072167284500095546496441658431671814488240333356058634750008283588549402542957998390863356526970084825579661902338885369376332547195561417312362206679658773228322225638759274806611333737161891668524778716510514014050489478438650852415300898693404406675776427953398232001642761068737020805580524169084085706019938439829695938990086002752396742301053065393394352550326883583881778208574669851223685627657402761082148074679774615403053997506582953029761552787528730859824466756442064511173750965131588045158935481946108887472063101576318398670166805175087737237823467773074960737736179783511413806702395817064872493435850918556599589893033740302820938513617554549235837802354262668537344764020120903017164320992204909954583914733245911060685564314442028541562409088941304130875200981669320997140467217334829408656072612961426601410857432132332899784281793728005298587008295605927352944915410722368457432770574965221106320558117776579093611898597161498007710037058946397249965894181179870055436299015538594280150996398405094151077740677155935263951200058545813031500936724064308764892943678234330218547541749088794725563184654080646491872713514449474503116673687288214961858586757757405901710676853965589711242159717338234841793087370021903887635617432933822240702517025760469977989493047606262115322840338239034301856800719661214822843671297861458000068198805424674104051233681146513417641113283312065228417652252151251982726496035320892333540669497066483084788568133193559369637782935440966151707220920545613283929674698655245408626053621555641607830209935265962612628355649386875089768086894807834378559997413383321036390920753506155599612432859086015942705672225835987048822873823217490305758062607636628273468776682849956851882267889848868102371525854620649716803108994730480169088607746848449496646960400085947340377679217581068941007714536178256685399375316605039356808082090866265095568769005511438624993374111939801956328935417345010357740071614583898441074867635652128409893997524002568816343738603657710557410391010036703779331564157027571850657612932139173334811512684816204090713021985387398128777926274689160601030252946873674597741373920099085370156959635660037677609367284344215205676136507127623074591700960050274659083987373968538580705462836540374758804650143084565926712738649014228538675450207971228726969418451218402148525640067727439133908277473087163331154618208251185997668203826086839214928045500473106802036429958344191358236975446487877083540640378553951412785013959231850725247296507362279500286904512224823027686699132975732909464317504245457555187033360692043713163273230664974918166646855713402827688163226679448588343199181459970197109157559147548555348254118017019237998897033109079483249061280474213953596401646081532494938798431669961883726593888711972863734905752644332109324314228839832381522826808550461186113517320181719386247975673330676914759644060791606412788088940033143497476118291925380445572204701464023838423288631279798552765998269793333244554073367833133782746437423049354718254618053391318233698620267321021522314071331098210108346564884675922527846906363560738850289583818561441176985300249214480556376556722934023187968472869748039524535833915515075247788594635477540090733390648808398537417553044213681108440240018304012188813610857757287054351295700454452898834415750231482791683293038060587363565823475691067660630048270837382849147800480089384767578217227437325979875509806593894070567189167712979168651267510382679429930330441278141654327636376888349139241928064501368766677790171618103712289044211714274101800213795380950743728167566881359044418344294988076270984988095144496364886616203733739596647328911239455656373472734893738716138474870804007097782060667948404887406597231717586646640871019061859435841998326084712870063335961472482198726253947736722138150493794585569270718597227127149006390678940915031537769889956332610867631835366830187536348228603969376072025189527421792559710049551850686703015760515284219974489671478322945224790222707045043214721563294231193566494322781837917561022118575296096723830057600631620693134770488467887824821106104410490262512431493442130580013857404653045754273508859504208912032941587171899180040844104240684349213161836517376772371740242614385878799291404693672660109059337959571566620847364158021191736219215913533444991006711676184622577149374623096736809717194436289465513652525354193289821753764057369100897634962065605885476400718597341142728964350707355758145602340885861300926866963234028839463004127686697982057433708090165208694030842283346380449638842597346655146567518962432290440870757832062187104157810153211170028291756805814646055448951836066869886575204216608004579450310235501821470754772432626286938188023151745808817523000111367647866106324436071206244632593307343671653646504552601328357557151398632359395827860166182285533383770860209799349863317281492969384746294918662259774826227990691112002275794373394410668563013831582336572120634458088985029444400953098341933324122658804848957015217458831506836888259203043496529621829037117472428947037409154738276809092657458432925466327491075153299016501882142363659672633261646964026598317898455854864378782857299788012495360409824044669543270635453554242927505582457752862840380647655218954302644250954024156581583521749533093786972987778596613184019635350727153451200848497487742435171181702055943697589438567364094595670642923982792966531150484712859349527879204428467914998744330670612150406798734280463565398337521351714824947669113992722082882075037159484144956649581057107515575209678535214342835147443778648956782163204248081168660664358680976701612069890409114891479898904547899989421636141040996173908410569324529475522906260580088353797087665898570846397598690333376486290111503351875522995312395652378913918168702903687136398991291484915788207493259013624594760065668908898499043975666170727051972359984463967251730224325021435851331575813523718240224148594081936987348407884244264613340519404061135589650571255104543194369623405127598994586367738611145947621091001169361906402445042851957507537253315447548531531142933993357711868936812110612361309376462915141599817178574591616476858314368393223617597105005010368227124257887921371963087630906451449598955322519923270948300510355570402269381550468181151175947140332681060007986119942389316433636047782737378554945284436698700289117798623030558375501234522815044329020731351929787850691647802518640592428737289063098377485595706264854116789342391568064013113312334902765706658433483254766490166390165741460957706905374965239004970982146966824691461737510083485055775513678910514685115389375746162236620029216618572693083727246767162823691864789565169644702713308271734005975972861814652061109288374435706790690502551123009266083965058053758027036007556913416441416679542666136272143157107473555320082096103996233784221625123270118812591853239792411387981518151319033484654215281637062995745399406669670887413234708922159377532345635034463241024391159145095426089924177968344670103500191061308773879169051419956674210033453444738671096341564125900430691075097856363313060215702083303472303555505343778126891747342128405667472931725823561554645241578329597214598236453628542515769981829070935973444179421803456692612563732505828066063355970824384302489342420554051729490276082194495504653296726157437306897633827000160138427208856740127064910716550183674446026256032368658484638494799656527228505867182175113399182801538398127994848310265830879755103707793252279956829991029917870617837526812940777788459126834053940668183545712204798820664773021541742284597155498310281749900690901401697140891362796799010714305962149337329065662132509841456370856461921272203086189852401674254140652877095222642000714102923801372135048534019801933697040621702816604209176120863120502954879566171630277588852014601030827496564732494894539352241680105763891581977303836591931369975550863874248583670184183276414017151563780273818533128090575343866347831142030024849011390420967236383560194343016845593524322528522503784690807868131842258172293064965110289041125975757760782938582764728687868643142494108516920866402537075066022584579816074580359473400178616394742015481388633970189706157206196499603872344333757581969725496720336127460223025151282876483493523666447951630111858136699507463437173407390881358819777138875176778929461102894352359607548124232153221695497871341199855663145424124086226731036687136000371245213220246110424820782029469993977979540410123910707511818581905965885673350352070965886386106905354584474042477422293306706929313685059719756474280495722583779844200657431842900042457197469397054160092724138879297681134912798593014746653942863373455517440898647490338180745586051490804826286514126880010427929795844911429660324999686554770867672518812827055976313707208635744233764116625494113256190428878694294653259380704163994453371622687980273343845573959528944740879794686828340372285068104747983390359200317885591076103819270136547172516237407565900662943257911457571844318396029377179724352598618929340297021706671045713721800886380514939209588406667960305908205293973357943812885151219197321973793663037127138813237218824184707131163409005284820563445957121537041439015762123288328793406639212955158411259068395305595117954832013669370235819833701349972954500888758411977810739591120790806286865328762376142167594596981638779896327567763185508513903588553421515215569128469659818456642699404165363590581654840338529198335988789646855666369984654304669856259111311575356431174617001572756397255097420442704357106154824834881407025562132571129879616709519366073393897722041696846974442252885409174711506096913862721942062736320626521548671108885451228414452592079658200817364140101225811517374646606644195241062524772115508422181544923016700923330109583544461390721037292944223472949460387184968822549383369584095997247629191630012278048082306357550927311834175979484657251944619199655375058614178554975917860240640560506143220388791257687420828815877353229967147904402973697477396908288893601186035844014319365458450667594102108615904371399638284497893232215357869243247047387473444849472849718882424664952492856387567455381548066232322496751587129838721840719533124943819921044202124167435085351428895634604482143579307637017473086417995242633140535060223199512074297535252907550785296651000333261571334267137386299313750098855837255729741633444429491199312380514723710202915188453520486375069983580523553596975637225118245364165518804371904472135726550208938464015118415592380905319420394761180842047365492089032974222849699342820248784792165006033012124824924009494058389919004599744098057433864016664197823465445962694483626452291383965946523590162274133902969196162767140974948014369496998610085874816865483898238406416537901290657686136756933455699001529788880678119349666711368990799376152163768407294739410899210104852896239644070132837357272819436463652426586367054987692473637910580466138507669682994163030526737766310570852385669692425656056050315113699113180294490819032975711189398102267251037008835039847706521371630636946405019787481658063085804011438619320263145856152273551373071300410663022661705189212511065163249478653524511191823291988902581642813986267594830979821085006937095651750105998363132525005560446169599713159969835271505182758605737378774322140937294604301171578792688133108918685218778471230356436078598964689483460917396001313707461723520817065187823855556654724727005393700478661727329326875586307433680057165894012486940386990758622178078309992827464001738015400592903019163506335864964531550828948460723674806988393766611283416603167493276935413539142566035964763658504127163279104094940759204983044892331366231914702418657886758017119274021901962794892222471188583336410084832380418347916888929417494999730005577013992189475879277338986840492509340374434617548428274048732863219499699197491137417780079088292545767438905802877394189111904608428022832660161542335232833920688465583213850408239736071308663164635029328324410791972135859174897082499210971989339550588759164849884487601306422169200609369856587069050513819741827874113487552123421815563470506257185297576045140461599918371926732594418299660465682050092829166062547137101261771916220983881853904540398550513870888634100411105018285383343743609207574370283007150793966190606169948222761563802528716305138726521798937858099995375466674644253580583150571804872152394412101215667936681638527966753793284053327576457966789989909294735816625900835691798662289808009943522428729694136745552659756466520305359499796253901216991213112695947513201311861707754276715580236239678578823220608844845556717450610291186117273800297148409329837022700622749251736161116847877117016937097546047918397180246974664180426586152391185885644279818728557302127254332176520662409735400028815856277973875992409321910057155281114146642468284750848870034970235664164346294367008992535214773695389573388698433388634816045361246336195418544639227488783684722606794624939730546841761711683596584606726743140980846171677147279129242187401103839222222375637755208635422278170225063886917420500416758010555016743587373051448118804962711407570531287461642622485858025602988494220756739499689150545660181475670263283537402498608316016568061446880677328121967173114082722294320275017429674372113929040844305577098041384205189577571744297901092034824480499704403050699808527268078925224026677256302313898800364710244789783162613290046324887391515845951490628973565620343195452841003282817947714253299501943148837130371499729338159199393753779241317534571522459868131450715709611739592540287762358184981517810779732647732607621995912897472879679850177170323363978197383119871639642110195389080807777292978397704643660656561746471404483120709050042983646438802283855827899289953460209548537400702993536638898698417664606980691110942946587771954534282415145476804825111629535935733970522893562253158134603891363090073347870420342604334850161363887795974308619632924837930176866378729795724894052024420001086188471404648241283987934662750484153611389948401690611658640286978480981350020054839458132605893197366884768876104199466557932454766532766777092435043561737071467616722444852198584276861379689294426366303466337408340980411684791910211617417416012496507143058574289560778905764615197137402464660700790315222343970852585040789098198872545708557154596189807187217212122549878558079779523750186298855019248317242480239640415632758134129754063081599869641910793850785111947609754037040576989813247193595036520327183561125052194715176902184326699705414655766140207324090444089453712941335400264828934914740181984300168761427101607915410619932965320892466445877422321216531648399585684690969379485535068698932373383010501317747058324162453088272142357298959396884867660312133878745469807995224463243575125996893250136386082709994517094978461456893112352543527958283252398371306482576789067793296289970629721100147021544151260286628599824416918831498812069268191727023727120530582232268422583130408142062320746293531663422253263291809985301329081630806419377789809813264264066849979300885162489125091868924431330641425925602347386178490907793359697782026855553255313914539078808857675591872622129676462449284414201374997422623392272005373849253993010397341496790618987054643147531019549645325023079877104705481962206758096947154654234150026341566590404759119455972049741763323216234692448404836397927816430806636925708649280337654475231882758341210389279711927980554753793424557302090254998769961016615236353689502856155582595781712444373209559675269154733843942401722877397102697925061523082811909525651075765174493390912842976915727366594494852615847772140534229764943897006619661248218971799272214761266463072074159037776916392550240367856105532110931604852070392914459757233585067870649491718210404943036792442113055919506412538658495204611352209319235370149288177776644824254413190840151440329200173825023869150137930126943060691109107098927600211964638653618392099539624849000575161478265996266934344272627562332777648774772052137607033395123788733692172638333574327613143755789955905533607659015180745579321982301829030565770144564412960899020233772051196165665397893133818933383855832354926223362058219257317314202848350034341004620617310160738041010256890918409633114990960822437490267208282946326949787702372083627286602750584089728387905356745061730714827477832177139496562440799161563119752055140152704002191197459120075907415557911471260234180475649371436344245051881142370539924248069119605383716621665949928878008273878563140087896485457703136718189245733373638770958150013672357166104997230147200147213199800883262397532739357255778295321942089493831420308099955589345544966276910485963626309538892243611963505479459671545568302116544539499831787791875697527719555938277298632547934721456872479415808347173341524114881938287778278796708452559948299377135783858288707658149182057951633038402290167684175861931347287017138143966427153139131958764792580450988234111955764900157516246228695690163642332839046049946709609574991152713595634883481446315087739883470209714298150219699014287415837246892664755281891547535550467091162817153620325639066823439881849584572600365058158740988473897639894584496579096763688107331458066188918493598804682324128350647639944869437975288846899753393636297589098394293754452451738170784141880752225218022978266764303256987415448545419141214306252490118956379339095259951846811817539755681177263553991106609895854404025514852164476757418194110398365286780807520265251557183943207280894213583876179609317655729815323122265591230966446616673433077108144870550510295832644781344304575991563158512860220198273928453952899848978353834836364455993829163583376820712327590657090212155067758170646536717133461143186421788250641067359816072232688182713911464430141728984163178233177280900530602592069939557119654714400224316702285935713660720001686364951344008985006235789494893251077276728476092439277474451327616832550977411246675390542179669737704848047090560244057760192574394993306980149474404650072872076166036645573994586838698468196228997344631083671661542740532145199794101209135808869279372158898464536390263120271752758880768652592034138703864697376508971499622517119966227799102707332599451412072877310925228190479816763035995272337358327684326985642978193269556269579811123899532297081362603065432322746544857899740253631953635392620719335220671880117252018203192529155518694654479905876966830988623200124916001107493380335390353063394517944259587846267401961571928924170506414647495874050974257902549423211165422267777781618472627310342466201656888121709264310394525470924170144322550376592633971323859084794480987691050717953220376550095192847796847839884038677742245906587838495390505982487786608583681852882940652281441974431238773734834631131137896865299073815340321281965939508447288055128143583779648343703456967877184035837590392364557343963389319575066548353456935832081989403198578570725313092539702721052516646373421297672405391198170754378563510041176146145189438052822883450060092575469112188486617514308124915310654387708698918423549169517335948152991935883619882410060859533964072852282267438225680014290194015919980298877171122813628539222843545002944690834710251219196971085026070889309976591653024986568149877641028108492337663337273037848281696907746011414440873255112261670928957850580466302575238853615746069288330707988412935344059108204097871626489531218488858217958128353362267407207262707188375443634501567507585257394141262216428586603696030411280620823870917800128569267037681658212361911644905885991235476768286327579404426054053267000640920393100151866914304701560985303081588683408722737644619411308965979026416354138344636080598687462362353987892267335701927177023807874646560008705079940897802808313982011330515835590716474155020334236736492318005545915787740796699168232913522827437476389781215635771309237049727854606474269924420914619220919982046998279072535405616409961072595888766356846249183401213324470945698185369939462379627382945189163694472315501985232177903713034407372021967466674966695785308260072506984973716794086618346870694357648719053856815886190930838754353885073150003734249168314685526726704348438755980293274748572627848916671276159950255294059569389583323919083776815008760307460450661803450461917106430745554306073252365451729801884540628336418147913843606547487270711368630452503912487352755354472651703320040896253479361684596583884811406705111788864104403934275995999167869801750079595454554962574385252138946956138293947928788496422178383154150735327672828690088682023111778004786248527304019176934658127713493384100216803325285009519299574382217146711337875327441761210156703016417525844706359525242955916687279238154912757330327746827590008454992106925585463718915205846498428477944995306531756419665286614514330810677630069459867941714975513626638169192778543085602830912931724899818992405691704431227880851508973045049484500234862840282474659099987153663651425480390910941606238286673686731126165453107305400593242385803734592517694098111433256721274705036573566192398722913358212792893233448360994357173209163568839796845120520721496237665338988577329322857494781308121359064183738675117783104447005387551571691358936949856930685537692209724998087737322170250579024236744218857810195377877027942417657427784226876216315671343666227162913596247024427985360684968572385739013266437478909689375237873270355147511923228432542884783250727835402863141428756899944295201749012295741500367158129505005580087001307772376480680773312318493705632518581133144729059270323146791715573601371290475354923801543463777693669576158950522238922531406376262517916794453392222909044941843902709192326607159433588767643534001300880939224673808888236527549278471350015279111889282058050586318603337766125115039834809569557648324307602937514875976111741486263816337574363153856222910018239018516387410494098951874857636005465718206125176266420717937673531096346867500240486598566059388318130908047595558076247845614920649718913652250210498159417172064783303552220384211771640662810974229221140867496250360969909825073060586389240750939315572603395800566001720831645134376906634727645548645442990000205965184454839874437355221835685234546112190506343126309829332961048456871723359086161094503105577635334118235615017381763981137044959182853578541637643690795734230676117455562286605525423129706371435537145841028722605378522271068067901499356818621129320073223145691230723053367891592734392105829139258961715243683345834166753270513101893812864708131987281785816577686601024759428333863575863067736315076599515474072689036295413020311132414530685100903330922444805132323472680626152092973641732354130526152257020500848342404836639450039939620060679785679989917641257745442002758015489758600824418187127674694761773079285945712224819381926976956898248785598678121634964841141630242291497720539806769097924259864231857503775323484542303212613702772538600765917341406467599917569587035863161136686073127925896936840630428811502935991316537587723115767709923058754337208756140276480984350056449997108359251178431701192610275945199227638743228765789591522261058867030850623287566467097628536603681776980038914297071421989978248340047162475317317836235548434329209786453024133632663753023926416481078153838242134916472225082554967895588080671189387344552960100272028327883639707306771109775883696981745342597527632575089266703694051945691263865475320534704143922510489019436573277471595359352613084078226433040755171368756732844726294772400403792433108955088958997417714503963395923635866357401347919009417921235622240870428027463787314442374983220001465631433896666276962276650259440542492204573581440489417242003412811144218750018318992003960998639807716086221832768455785225236551230330209244097751831172292463684688669482507161682510162461203990244435382184516864517851903788949833708010136410025552614571335815363390073332235179034832727665569116348978163123242381257888259175178213552763058576305430406078252033765582562359065248284045440701129024029377690443878396634886093710509264597483694765106723278406548318471552064956170561928328309806532608381042748383976381971435924473755056894718050576903927543146791879367376017774728584031364862732651564826992018789694202725305262198226565351081539871387387481461182571375385581473967879385040239253979998012910073184658892260391857968287027391933226523734741357001911628848933712386879933466217299423719830668420152516060097816895164946458885739235632113995191868673966253205336357172489639096091334214134068418576340822875471192314298410645992751605517530900518381748575852907343244410422869269093602695759783257488524785035278856670017425760223204494092758459509402873447439157105969689642794203711082174229342380874623483174165583994111646091933802944135215245802412138952016746112913955503966410988585876629357463044073693525485660594844929590928214674753006200544156085304796164999865768106698228326489999076105701606991727419438623568200754663104175950302989262246105964782114587871660818623562374169387471936008354010711948680205207450729367053959827239612081830936902747134341472950213265624925801503108130086776033860184486673968081871674068235467545167749042877203054968573857334122117678383421704310458166789048758503980636386611433577747291952199701621946822560522993389832488738778210650412362711147613895564547374244108847242596492515509940624714378858316144004464542758417176246134831329846619561430939994576797846404916047679669405204324105453618843842847651377518973450989324001040392016328157780084157103600493528247278310495941912302386059876558487960100542464722756353136203197370197128516490532763236892329757855859037917270158057679177428968159898683540206608111551750811938843433446800425719191603814447818303580873861734466969542580870533447726224077534865967144874000248439711176654676459566998045306962644021921236640322551569099684852240726519180131853877663007665012470940985050069011196848121993491093748006441711820853702072524987128671365629151139432264547154316301196288839692834607664626088973836227534785998629503511741201033572748267661871291541586749190081273712520173378715613211713064041215821752436865959401484141015742843337864668175537839865059014895190665065704302725060292037451246665024291467406538266250853084343061295968337342222770975678301348590441464986199662832487081118911590499501376428040974569947267028798965220490653031288381690382739698182116251886307914589236026372948097462427538361685577574822376542245366861542910942753367079960645693955251828592987038080399956513056916772404021572376091382571091958800162687745050799436276569711633236485941179770462622755817461110278747666652187904886615969074072670130550908440313810504780585662525297255307027875116361137439942896048035946103106050460626581383360952640440742953645367020553853949315415614022755953669032750907177574371650493614577760974961466604921731403104576595693590666671821295819867371524525735501093513970363974600420029495092694122750568628536587368495543441887373489151295976114328869192145980479216080578954391093653547577085981009410834025241901614098052724373885823798925707014303742083360162047364567053012129621888273528789382164931345103680528639573468576717600342667950286743030871952504184691674818514162249802562508042692109050753916294693673161257707622834242917268476092240194009067902682666358368637301279929645763890486485246735758125044926335089448874465895213332365160327112145959961192210401904916720220332947306802861032429617430694789794815141970645402563240445013135852944424637616623022748072805869693000084207402040330005176534471614265510793362759602007246926887460977414322473045972001857211662745385347125970737196435332556492827057030030040509582428958798151014748684233723895199504088402411763251707249863149593523926496940098170773736933385102314266567642053855787691781971656159105556861704148333776670437819272396736247562886161217657737848111872819844096806583121244965934085047256832128868140228935090832394278327963739432968297930534261404846929915895677886931769199807919515774062394023473460849255889777503937174595550735758801371757782632502602681041554947616646083705293318158692181245811599760129918002763201816282324356439074907397416876312745186338707443775995244938843154051520122710683795692485645134626988637498073997117861296044534394471610106293390282192833652658525033048095953210656012225442068225607712915692076419336484186415966629335950925234701944262153209219041282601010664763868660166419308491602904533647863429340783342203526359893346669312563614786141335748209542262806780848449820594612686041391839827920798670690397795972264406370174542321015181755167398615001824008274098930300507017432802701460958175050981846567874720498537155603803905803256472305507343536199617624193270960264680290890472164149574585007411891499437567873280570755011269548791730860629669943191082643630423678123145577833456294395115567340037529461373682961822326885436100093126551322440329385316682456264902933249365170804765342555666916283347054476692213001589429304752407915638765606895405293484981061955416844701973149800984422649800416391966128797829881259713548637821007633759238411536685694084389209349276107487757194077849116065762329494315727348369864603565416707433358731712438523418361444504108908702551844602508835039200263418321315733487644015568058985873428080587863582814052238420237030809973766541447943989799033166139588991578449737922294176462076257001466651167368517289594736261732095390926770709099352739783467457447431289167485401434299190465104360751790807383820534359651244668911725222130036424257624086602442324073393576294498130887700105118619297493657241505814371720938333208710176015014218814027389357779840980110003466644719878146126955104404428380144874345757259973670480533894310107218044142880054236510548609246717389082478533312432567022665977791006584652887961867901680064028576816817495002019267749462830539089956465813201554016006902053168843479948357946809824689362964060497037814275052341887941849662556694818128598925859287362761726272033725707225177044510954567414155106184199101130578244245083868308536197034029783546981498953233936879383895458560187683303052084216533478644613524219264184037697651632844257456131483381113384140424799717276888066463687439538506583036295162413941684114698894366125842428379424312933471693874344701035289116005132763138956674085296178488767373586141613131343934547490828203294433273840668034631767515552165118580918041268782331289151853501527623991359772449305639581876114463758546105669711821435868740746346900490098878992580447805914486944843390186618786425436513459409291306263009223121554307181600025466139779125436461205763470540542639363071314488094960119346795093169974725625489307152822937868713376433806045233138121260430577848085718090194971172862789195405266844521563378668663422112660330430163348216985735076919879347783699590804931527355141173321380156600711573374532422622114690806582761139538137758172394562082752347276451996857692119683342283726484318457714433992917009765091138558014061941630017556944659083733540746166924635311764467113417193693498342590479636718383587323693472371413388242619751528013298715110354453619372499631030477857501099736270004147612641792816413233001188075681029879401984261198317205224429188351969857410716419913095949799014016842834908308336452373401734004511210984996443146872501306217695899208420971531331679669712671516212511538334014689368614775044714960050051608659473291810406377015050686898610387709554614263610501434586942967681213415433706531598371834713749666326519080610438177975175004598936333708160803680796958102751043732149575553516224952902439093368278238758653754004214037645846804668358238367285412423562033023747177557360490346638010852742621260536596550651475018979177774325399668377436271126151795451500592260911388835249816608843353149101404764539923933293242209277071067469460011517319557010220941707457286766262322615570671535655424483819487632001716492869606966771588525392750396585681955375745954426873635052746169366356557889469141290584216879071272345882331971979379888453804730975238413278328418186359045865447368184977558478824578705269031786084053819297528461756253086055838096012607326799417615181712608101707884463602859474179514300304793519790983032270397577748563498421068288829470129480855238278063093090889402662350480704372705754628797934288366092267588968216588488465091050155252849619384830957823370891319904777218289235628447294694694925558602409074183741888308176170054619373419335755368213638707801686649796600638776383308610351500404065929462529399708443283301238960344589650320778599397596391849029183430549029085224512007460789711221658659180007739195326366106438149992844440870038793700916131413849355431367149168800561754889706775205677127593998972633181923235877558949415172513757537095904915288090785065979191587754300887079666997290914186719321904014407351544930407342425660774388868301278584548455472088101572972424502882631908279746463480780762067290946829164757166736099260283462051352086111187965915153637667223016548016722153773863075800048143865135218144311544133644716811499370055232014178881297335294789117254188389316231253056243655884432260536633837675311616183220159698688984811992099989662469206864019847847811517345293558277057812240064749164380922300432493883511969373504893251482922629538030587537904271405487243090461357169153015144974441807446505329590731036666058539970835234864046946959082776305454263732608121618230541857814662560444850622838282701747758325058440610228811749683549324206083026259460421975405826235687886260031280605783019086763714680877381511710561193060735863215767092155200922429486793552960663830099626374022633398495444455224597002689278566868379370024138802340569565223122608869954270543728528154920250727762981475233019283270437912360651638996586997747207338460846855406116231685463969862629675793884845636820566986254296240416705511334139729737577874683775238904418711602142117625541547518390011803360005104711515189725984215516138636056455682584700472583710441715727494970018112144112311486331042474349283435084251377385206782858371818046156954932161665561601734529805137987955410775512523934911966376828172919748108700830040211565139268167473664539324984457043002220757416752568317137618803586934688922338966640647750830047193981116551425127942288378242231663863347266196910345544272132097254611861727512321033576408131781953803328495202422184380753282860531402370039905220382012805194473984380310170075901935104118795594571620103307480057001313653953697615825871835629565474511558143634925053456336135367982235077590343353303929365631940745100006266455276882997689369396086289217860151610012136788959255118319758614278632872899284975155555465569707542189763493585384661665166328291494351253739134762443442363839064560361137305099483427083412496357612069610327175148619290604625038443985581513363913084627163292714692546196531762108881030821726601604164765082519270009224471487248208591422597155871916493839921778006043865835055047075960726219505589373951368009983151110917610722364660998306164858928439797132072272519848046318574298770047330852776283172706384521116417674294356847954806384477869356527952235980418986795200479835321550187347138976262564139474996857965298268038773198474095821007231316708784522342661442450480486600395199362890089898990110041303872496783641568121670931823203272535253496494088684265625119617679423171996321583519003272724950085832458991181790243794317419961266341171269226277936859696037966642484555518467199985448630817228569349860568327580374527868419937063117283746256019626188913266022273186505402258624582100379574001292369695921477024211053007412536114696004828373898311213040937492660243153435034236712703933376491736835590766895136405353071695990101364656650502258282437979757510830970516727432317662930969544274997749246553394809160543050044588763814324203967703156706391390023104411467049099887880669250044303173812916501278370957760587858672035471656341610195338695643648157906103939468633288256600638035806374481914698401966851541943294107311810596358161098361615382790111884250472850901032890289628598380558157942195515511078270058189259208159304370469825646927178830063405249236034831806776772239319812939726697795283567059755984158455534462506900174095676315415810136244261611889240534434399878254464726033519289475918480961518612665022083462453370656952753995848606962730749629123140116894558614406353960400302609253389631796412724980333536228849673387445531975005973279748224241517235112066118534849208602363179971298519472592379252328323429360046297078051150116428320672115972727454734134009114134336535254557142120017733282149919340819832618109310775278692300491041621358975878607917277298660966356776823964791276625055959029761704176087017037067875589680343991510820135851550870555997803661765451578943233759189267633286941693038157736801757579039695798839258445368274136712257421199237013209361016640355213911061439552672107503475806103651314857944912746048895844494368813895793267589708465530155558603732673780515261812253131241532354549310567667008101573107863754806472766073353322315740571146835333725328431766274548239051269966754595325320497494839137623518661412240574956925220936850564694745175514822905691743464561169094222729945362817422220623347811937218400796036251160664384076591650018566165342097562032532625091473554399762441134957072433637598552284764440361726397342632212147199988100302024547923595557396712812408713152735661723806487531770199930354002428799566801108695156110024736890070602974351080212958605424604514769454542341245977364378933690954065409846572250373651528514381728781887049627327341504166537483581177337200633143092295998243080385155677233043332321028574326268919215983807513264175171825404179779969758012393354759209731885901798431134481113057225739028023037448506187729731430976189314175126582649823486919067593687047650269536854160621932277339041094791245733591001634972741370907060801609354265908128201223709264327185026535982162273124439962013081328411720536934145830683101280064753889338595091167940156561754178221368810874658640938056915271054716049658609289194995237435934767662008826222395855799576205093240118305135495456525540619981181346854925462153477192725628670128959735329653985469193080875056704570860978474958478696749427373641931739976839258799153430589354861812010468998644156782015205237140432963551671890874376672261235158333620904888813489141231721197005611944778406052111901482081594058445960737353132373176034428033830297457115455038280169888715352336748031050369544895614830712109236259834027305083425824598971191231305041430308592982179228940961963625476842674157554949136173552214512965657237573758583251003732625009882035944086896491299559286490416091666260568824838963539278391440269576193501585550104100551119385849207937783151916772164481611210333703499554319972466276175102118756330160822372024388824000066732824050380744005180027831373495730449672841297153422599733015860004193159573821289900944738006894407916107366798277694393476745185626382708042879694969769713720415839798308996274330723907926371148134027512438582567880927190784837750114624095171131798042974994441954686587622595575439598553819964333287005546457342547191268110729175246015600802274909350526867163456124667787649171538783141719470631092271526076821863237902039946141422543568288922581570999065162749701119902752318589140006257105623874610330229494339909848309516849761601718017881661088163837597457552701628425358487475588182045559348507780767153004497991250333978951229205338375332650630743398648999042148447980298779682083379464860214067627664330638752814557687890200607632194853549656436560928363360085127574027361667800754864347109568123976375115835090871919806603243765353151039672518319425405518516640203417006448603763141569860796938605743489558500969911704395351793328623375914709538620288379153656381839987592497096381589860890434517063384803583924571762916599878975070669465290052767638916682832297137023619177219530657420006163639855799030643359013151009200614075773228518063833255843753537985626145209227561890921216680871938456894744197485858256074894472696209194794853711394457134221874069979990182176220699988867711242325729097344681218960669593230569149422735928681754059363358745172641244859459433454619172680237133165523176189531114203187365098246219888617497437713090762199308596038873145927556031673191266008225006851399857092315342199049164773474657179533542598203387135617284235753236832586433544291446191205366658866016585356273803076839987236779179337303493320746935832180020208353466889498047553087711325788287149320352098082624477515390959370901661945951985769187103382270135280156246495872746489964600321667267309902903347766100361946189974152433458570831120924266717225828849934536443984796555311887449512636034440342345407677160766660962716661061500721175842205446291944217537043774020827088657699964762742085968010742622112768583141229966207178046495190289358473083650250285374307648020101408597824937953296044601005046176914409676318831868626165762446420699081898007531600096007659864465139582440770955731070623471032949739236085035188454449136173520072083956679043250651414542741564191793922054859563226241176727804204423915089730284110248820305102584939766196300967223029342190475946260487053627733590781254526032227746089383846687385371841279187916025777490109077656674040688412906196411157425923154743129929521357328803370463109864170463763057300183298338470484763671045225264598033965829673752252824631126888805253939140768911729144636444353185912460889718168168037388922961508920198291403347761437113500258434754420474252435322285813047983409357160591558925861649303017468157042359334392020070234873803519786464491737886226868693264038005127417535979867241075364526361339008977437244301049737214079601832487512853654426922844475530903128772419652104713860280211231624872833094167293582289851138441403227233224309278415922589033441188199262106137826664907168165924001099604437919307533971600593672155174998387944602437434887104979598635635498570748000108645506832862159123106131388346386041697813116329491706108030674526621463436805926770480323002172565569255462230560961933412250218220452118885685599457870908455287327780618477018552534052325294413887084722332245309515140086318606494423453648224484883237949248568351297133357050224535153576113029912671958187737540314037986096840959107230198100043924079430775111856411892879995789675251905059042475117498722323320373639129188140876703836616248007931143352191245667769628436923673937741237843980990609101277924018131413500604334612675402216288057082366060848736857810862316607240662235016058677832376204019769087934547276951886042899082785699233227122690590315185163723058944871194947509698325003140471978052898105422045676520938957697737703080358679522265070704816332026267649227486259805578812295982339003771991037839576540204189856997239345112112899851183632877077614113140975813170723084265090374859567975876229317135518289539991293309329610735245504264222793332879783577762933807820774356661840227256987855608020436554343505680910148695997193946359170581538638347183014943044715358423765318715756358065359047753775795472502651689598314005562243250528250290277802405451209488231818152462084353600135232600218093356315160781528517915742421363294021787741877619944185557280031428020961621169329704645714374814989160018880054651925773477792289739706889310158734983599361973226502746772161034069737448838133035257864641512884497858609298545824420538985867833724654170297495164085265949544590906089203627969445209909176697133819367005480940317399380685129933612072826573121258047333479126186759309582061358154932730936466116984293306349854788080935018505087531370456893307310184394965503759548047718709675610688969014141570445491577847655513622826311950793270842798014985273778922862415118260522488653548265549516527146310937570085111457578352530924276870798099754097327069453941178079996767535798604959614543747676354885936048448683673610751740338650799720680762404546946897980919816168997679092869478163242802829562320218103538847320003864524204457369992626887630001203617855922999075415803804084143809342813639849643011342461867357720626879261298502627856535968607458698997078714440831786589778815212733094160335162874227233832644641729972360247176767130428358502967451590801642577214729367702184859645191916965665842901749050740042757448768925376301342265991332333852195626660281435796133973099027523104546733194153027474233442854348370002368699146938108664331299691298078799683012672080575310152841617749929693337192579800712120842071092948951496754183479329040730578413671780526406280827429252502708124599390607774838440054702578427072923366326688963448364180207724121604567622395343413032247595000988332419406342412251486048146671309680810340785438968856632697288446137461994159105275987726735444392048238658995801020825671756558780072055981313133161853047664829484102456826160578872373593458288835702400277790216745074369903092706410311717426029496386451362705685451788068540527119972602487771143269830475475005997938867030605691626385687172597355621833391828490305192754085835290490625326388211700491142470763457959609096110311612258279773665533961074579735741768012253566198921848711796423876422454375114935790993824083871583638516945139659583754899792147160527559601537182496282385403378417371980114130978702990741982282842240925701472405320664350285270292720455185444916909584973784764392039452509833468190660649184767843837375949444821935761715052431333207052545578088085530704579999287053219317103927962582113595655463586836287066834268149259542621505548966816802651904681224794674120326169660408361774579567537826417925780534154588276347810835443122950186841350993358280004314500319273872572182515838775634603051100411218647527076904268556660619528611459170856546698846642958368039315152921612623899259305233343987810716851223803561411984083444798207968918566069880839651466694222150822188914560390145907730438450436937372581609107088148286951981668888973063352005624051439794805917017845590735013895913297359626158705777179436299041315946910323773210421654169363264480780190539907571157706145438992054142240560837491887118591375669427196546135711867516520768478228638032451303614630883177482475468778642205497441708407586491843280416302773078426138389113600130941454599993930171166489141436134864966105386760924317654354998980354480482849042276889241144117638755775168304580483921732543462310294335306308712391192409604421558398587300877547317269399953106264993427145851882927405155647819689651635102605305527688162345747647210763001634666344620289245935756883614591566387639990773352506541962991561772618213453482924220775191754547133585821207658202759823257934282233347742219134860295347103162755898231546954834141942128740000258629499591867835389181100765011879817706208475325119906172055272159310034484327594459063759384221156211376155402871220737231573744005803356432133233636437956227518855867156273755763926568762071515046843326697820859075052160050593143641764942336331279846843668046705420536771549892343543376760009477580186595773274880251743683672929547898584982450813723406468434690690239891061743969040891582505983542407082907931602878988892614327114140496864270860780172727992910094454689074604282442900394908983182014670195427768581543001532498173696734559343955334062234013529355450840146882243966072652799683928446762781220779417765661742683536542078354452508161094542744111764071043246607184562868284984636231464942757905003914833571426428493702648903494315281574118525436436583598828962185514022450306351933254518982324643485092781579484589846265664330819437820145873868653675160913262720110360371824087505988507923553549097380492280943941891176186793608153126356710795991301633529944694040183406876398094165525408797502785428755237320941423895784774188181116372283606340526280533562232407546834190959161685406013154308272929676035464721770292425973097066524325719342649526164805471065880336369814191929619409685525017477373423133743516871863658479579910115872303830068247222032524325414225927121731093009611549928299011129074009861629758406812662239793281259166094451152224936716920293191677535381311134024320062906891507064342616931750779071006475176580933661900128077637268147270722995739754025417406225379243512513955204130451219815984960443864816066795575548485473254785599773833719341800416987644501139858959984432480066129795183295003168606727754773634877292020769727945125060992429867419156553977906376440630655913955707113565601350498965911472027838008152657857372491745952358999870498634723053885943240448902363334608030925538440391871813260565161333394290614061279418982032544665227833960044030831009654290397980537494075601907926925493289699536984422858492719226082655704192281593487897679422728647078815892113566141010014817970560031997958924568949419846667872472865845748674213670933777279584731295749797423323743498622416075771016860503320538466721288581193280757229393725325943943612830739437634868984500684863916719646032146062546131590633129487299431608766481437515115396434709473967383276689593654328580803114032390419544714124426558462282922613798071230484900959938616724104314974445196285099263343992834445636728961843068822372477624060059976585844760343514245603545292567103110417125450840976845140745281918364896116519916799547129256677537104705359992733133310157085204138981689627112152058999846887345014647194768111592407784068360174803852564488949980914957908329844156802799920143498483569770911440098767164694339641423585714443458176167191299451294268971110330500408450926994940287090387997905645687359769453888066423394455863168156896895045850166498822190104673339549672272382058868747446389460750253967498696399587571637217993726253369685743978868106555329878130264383484359479676584736431970729322327455888009189625757491021567098573795291108014140085795851855807128048639675545360323962033581845335830646253235014607529442388962056217731632952325176571395771431776990098224229643930169279204478048081973034616619500705432668096016520788982083269100149662149559646977609667721331764987304650392579573704220968986515017111864068971066745198107451895836839936583697859730819025989252492485351582588843700948313974325288022668840434203078620428122238721991263248908786322628970631333233205051364027091973794568930954786137777621570966724538163178293613522410569561191316166128447316158561190666749491083552803448676005818835384026263024149671554334680264456683463705824229748054371268011053908316945507200989892017529665552123025975829377267600845374314239074208408951755271059253678738743919324538114571458049193377514970735379089520092798517974024518328889475301247642398152072006868086590185771170453712941831466054703213944678479919359293787323238618423581438128877845174284479113341444320751163359259288818158255232011888411019926980341966411790205133112193947729643396891205404395812264969606069210562538682510248500602812930495237443678390992584442984569800205686798393904346340246656266341656889426472280553772016582560962880978696200390130741960654851476260461453227848937006567036451275388967098246702905481443909477934211906934071753043669163961943920349438296323957322011740325404159289985180593481090210562910520193320076929942694046887121622291990197766441937082847684648451707168841861393164623889084492984161568458533769421502696603135114474084499475988032909157312719211391436818233656625477062477641447697046384533806947867969086858135212621169463747362031348385399727768288481890384889012759979997297370432255920006935801781311855818031990465892276689729322631831422870982476688700681059734572240700684754517165719781947097927988956963275128067595448444622282046063915243432200757012884382634782478736712450516137084661361965656672483789130043105968973734095678165259134809522585459287868090132807879606877281611866370002562894837864967390886529335761523763358004423256274513946963285277156657827904385379546224472121002192468362188613025169103610659969981501503789923056519672602071104507477434814138869805568399489728325395661504385517654892742654724323908344711667457416091801891273584061876918639707750200068960458022082387353236990784257084520841998726778050106862335829385970671479596781495778157861721723131985637613312906106096708259727316057082171303844790057573445192146857847267143678874529424561484501465473745556233214281373379800662186774245406579244943380658803587667900736521098771465465535313264953060718973840819857646136564866703714955420100938271507958430100135766255871250869251586150806055500278249604846901406029101884395400240826894536187519822234534613865449301057688282845631836476927370921664552713570611611836752284950517062635913267915093860267245792401079389273070943124164892404548588505682661801344290687938217302779924782311533289094241750829673174702089282507352289651771620345986195830373769901632587191906558107832627098273988536203586060691811546414742530733340089400776281189361981310333479349133486849954707373353147161865333458599219425394792302348130482840469081315692937263723835688398535814637616067199681500459448599656079435540319046658300288248875836496390335738767672813649986626617721216185593495008666014380596821841358170657767836835822103615653143224826875416171778645114252887699528439663931574438069803224163086846464887695830131700331347981832283386082613051550938161136032960809095051173174856643596342506350247004526311483955601754926307958596162695845724972152852738159650297795145563188112660876570841523696639074438043061825175182054261482504071935025553856598869415668438797936191212691892643485708867186135053951110595332719023820045881408473180641975016101002174655461059938096211806201201885366841225918470995121902030851425057429850907093069233060906219762260903114870860654929680325683612113237167698004419725012001126975436397611068197169875585443557419538336357882724185211816255949851733827166274209462946607318242240020549595225621601660192229274419602013253158522993157324073811011868582178341363472966596628989199814328231481322753144395296649014249163255872355016465351949347647955871977325454897965790679426469883156858871581752781949696413579965331579395152954114784107139784412013363244159821539410034538066180029540486671050410109158837699213191488453276230317007210956270907395351642892216371443786613373292761773617442148739398339263518223502827054261696109755510247824361097848663937338216202480082139693084410766659004315739189222025365585925900002700526268973248416022285713696976346706401280439045878826061190807369411401033000948785302186730850062425482625807501227368377427879057215658736980779850372821428268455138973253863545024175583944081169678480869255348385005541354504166689654670637265812036880691456244111959178752424963422554661614240661203424316106213024868934461376483657945856382323228365399445971936392044816646265564888543235575214438324325622116497314636256551167257987020364164525313279701646840522307024124756975016327239741517473657734587600322827866608624441761698950532008386991888530900742577954861400517612172062817025747401479912189609614664108223534557678201007197400947022160328075653508589063062288486737982426354464908021437728668818377430509021067482162666028328658074096563117225426109146315634819311506012182396992609878604659411675477561590050551752791752347726659711252814900201497935189749313309206010699085628444513774279377608814129103749850071186879375316028096156568735465247272736118610570466736636345607990102290633544277324455370532040943051620047401282229190434847413532640596446754400663479360746570719156057560714868859573210044803622064822958568904471149203507566456851238638245740363965035121524090282211906177662521596878298843641931026934169222191837529540509928223751476545942405684386564444388905024741598691464229984309390262611082612041994444063908444782511308306605438985752145254299365050493105764584435977013710272560602637082242487917046590832113344120421985384820407360839184037886141257229469750558036600075479695303886215378095607147791447673315343617796866941130087582917282858347760394821590089060003022416549001052910619699250105276718738319918967481915294997687207576260762133866911656160590193849378104245082882790860620390222692757909580878481477413793108133572930176295931217297293887596519303419803661517323820604487340608954477533879925373221384109736758690385378934952623425776137907750911147259808281885636717054649972066972511478690551500239824383150025110699010525586799366949207182098831992212311410081398272583232822210712963736714962282881693187880143980329648641142223613687267069235388180345079732373443624810483959330207790667960584812848742498729266010599017692183351487299584165778851371397888869014252554564277876671544489611788641748189962933066532088133134405859643736440017858964054688074306597107335127608409646293538511766317428953986200410920541607584269193357945921977733115251693792838730651170653809623416834220506584508970882078999231496740941194329968600156647151609814381774991405922474661557214241437320019408071076439192584865549883989669444584784073039993489371727223146178603640726051225808943274435525466827626396481327597343994902428007666448626489366912539474332945967526830202548433736161387001690851856859429009854125404207951185999296126889618342393718597866847420982223936879191386799632786717602535465770928035539018003929118348615868811726863223536623683980415616902729903793204258811271765334477022336654870220927470096403739665741625801649651172248626942904263743805303866909623775955094312608190180595625750151921050587177368073638048340671580831246456897620287121147334750463608329416807552833139046821947469882355729116970162287492149779512822387895481543103138962220721838979819577664094877539683527531727259688512257052286010055315615046241579072251091561090964841495357945121388032431780681713147770660351919081669892926416388272489887775068321319888691055384931745128156423416473415600841757744238943986228581717090963309741973262371148721152429362338524948908888170378703906909542411500755374267341626124160829924625178411783193346809917374905560541948127363822815985807423278465324558769125590702756893514620593660810589945797167508822578127147514797693239339085656257985355428559544864813712794096234784495413487942069928941354286131927979928038953302999712900371200982939105848991483134182140165154311026474754546726519796715949978978066475432865456388598970986246607759416095910918304908522235528497015054662882515745894762586421620600281550100095982702653750074141628093451714285720812020325834773340780119545310800410537960882488132353748057663471678349838015299603449536600702280913404839634048206053038759806538934585451061764614843163810557163126601969305175480120301490264042333861972217241139730985227538378524901834772258020228280994137100487461103615330384999512128396830834001744907133413737107316493269624136892020101276735782745459197306863322388991818645945780296181300366816566246039055133410526383089055401202133864892348078726904330583969495749079864545045584831225809745234876485598443974352404538184983383402053087548536549181359755140660973947992019987601329940288977594889919257634615212993415178525706365331292754144281068458497029058297015899324468651916666709437204037004619164587132337079856864401132785024551519768215459156097919845705520368427751042627035128163445505519376936740960259898221713630231185193513133344077340932802849301328874744184883513380218131750857944036172293092519487808159349289127804431160110079471733468557612592687257222787718727668048686621142094699301340047982917287620387477503672502262541820719053886562406485781368820868701136133511543033287293522553698036634754480032772030983172738598274188073354453120360394391895427373984804646543518250858015273311039543921907781076964523114735782140628273499153001954921869586116320969586802218117432093118978371186048305129515301090349830249306207719545617785478854239304248838937580702923658533704249087163792975400254794424097200720148624817037360440204068591977363710213074040312785525783434130135606547256455499592667596085992744080313589534582075850153680017921153137152361792423902621625402489588104919772152329530517335962875899685337591624435644383002970158290995943919846022525629146318869108922464696511239743449223535888061537107846197757417480948872404455002922699665222398359512087579082281444671532015780774188453484134135210550953275667202181494000613082836093250376023130061466416129625881843521489340484849821033612345542630757634654662760727565790139757807041417359411272026306017398792135247315151328255746901998193953825151315976378578803962781635451174177291675361632535069000373901825663654228613011537349023818066414060082431406828855373012869661836286342023131563254399881604893881050718359588158349106225632592252673415756461285796950062384470017113702828394677700220972465914245160187386579772596176795774889848489775883847753575790299323183601905414590907418842652623173244055344733291096245285209899275842229082181363677643342281390056622443772674228806851038116781325804792898788091991202110208478132102946581242590469085915420683526441772088842221053464142679896631455614122793404943898284754384623323413280798919969074834199252545160178172570377877550576614493327097332142031180434768597207122903449419761304170107599498135704834423802887368454275498739078472461790744677971364181794808140860756597837493880607287164055941687033955775113609835706331569432234774701480672088928934018271513272721004323867855011746296789860864109856084258832823484458000406845017026644088783705917968602581146698807299829959718985661461689172656787178935760827349671741985685573379837342439630401424656172379428701734443555236037970928188641178159743961187248729724181071706931105212609483161965680987618200156143260739927625836513676136429817572337564758394871803564121630562495394216547955797740518838286373726127646174806387874982080200359274907087346547100983908821580623427244845484736234848618842862131291998115320925546083296845833389300995652942806951822554991127885822547262266669345192547523124415131001061770461215898894376727642493608935679121061970911399381645538614739420918628606516365756231587091005989606878460999987175894376170973950718596701596947569202802922170874542692480329180761147773963085285025160673699817441751437819167267892218153153816463047711126706892244606334563505516645368592876669651019430890950417343312313627339090321963852151286358632899769034771318109708418333727228893396864525527687605264121356804006869208786668794248701328123818696446068728938188087919314995638457147815994718224618886273494390721864047621509090660541429868655000893153800321945991741239484663141251307892529320182882039518933055987499705973538331406423633967222956544106270405610671821544972452261312679581244863674048698289896100834041431593066215207625410798675932354183063137646456722956222478901879051429270112956485328523255534526645239208350277732647632649119038199563155047672195705639825366608957714052372019843127127453045340592080153016222211294722237034407165213820683523366197093736600744544476132142788290006899947602325205471615239900013351915652751500826310005181950709282035160514580892706232579396410865888489614636764668927380114528094124430924833912966724290488489253899031715931885629539240720596446159571302683805657608614906525465176308510214269324490299072234838929891484801928627997666753610199913372784076170071568837620396455422526892913705730027856465084016242656217944345845957211153130022161312587654887871665890593772718646967435529963878983291552549639107399770985877110762636451984245791289979757733996197634238866349052337932048162129319364313511837914765467125651764209497850211212193135389949944214449413657118624736389128543718270546351930395881307919006615838705129348075172535436600952961288405011913457191845033345595070148863707046901072549470399489097612199858672237357170262876534285736112424344212288996132601482397790348890412695470681173981530026337661271767871489522667309689743246662160747676715117776580140935448624350753834857019332400344653808912967134075405401537480136500799141428762056397095939409613549355277120101087720725831127412466402341683043566284199557425844720722986476643926511790109198849346366002093468521038837132961542876801463686179628619985721192952810742878270624133646872514334291828715927602836581137860722400035130414510995223968334847807635501160337467378073183584606232647326169262378502644527359745105689322519266014843673418194729929628230659492274725476600569118221934331696563501627395511851829030533697721277845087734312660894281592438576444088743828258056459738798110457393640278874211465692724330073132265933653200957275632958519408084040163491587930658476336665434219189931714918105427285444793403642001109666555355260328022776851100919527415818371868525021751764172111220503733234843787060417375959192087769364169917368366947746796602222454435701166951121571511575935326173237419215294128334515964268610908159164331638959060673691457392240133258130782161208189774816791326406885353760707967257971272408168430626312910246695133544680338260404348832390031336844264913402678683311267700506038125301481906201079468012523103716326238762638560888152895434819491524852091092122351545452687199861784605195935459359569230007196809302555959313891023416860406649446673062071442785791992682073536096757179934861418001025359991324611218347754702912646432155096159204058474849008995648507247452852788956176271145649730001989460177065643997204265473528369269905387095835621114374962973976620617995456442815363006957274935072920079062755461103795830320064351871132689549853864636031941391998227114309179735244318690456571717475249060916342918014502417815808617379558634460239132431833546892467865480316932234192241727496148480798810733162814381554272953459111001449018516460666962985081981280754080544431013719485410553263234691273333405839896208610547322374871996003389280113355672804613738159236212822010891681684564202247645069771075570319453760567680479574761775992844539157611895410156084976230045995784867849617307806768701520809043168030313422267612368632727958298797287348118730316443490188896441563840082708516385650898113401013152069448770902580828239760138144401764924194428962688504537281194056157340367791252669953144928337881977768638389782065787630047543188106362604376074559505722590847405953299527411263434150626544336137353874524660110008334950549262014572174246788306635051198823383422351533834954094910167904962759109231367651550101077310650752122214795048689427828298161896945626209581441784310903029015667226927971654853471962265626625551607200088513919939051520472503581393339881552213394919203747119978956597409328661114878153333134978151885016201814949055321781436451713951472916284303630819941677630289335006292101848667615216020882288949498691935939022174180758414388866118875204571733773701942937454274981966822255217138007691380005498473041866438530563753334373746894520668380441925646913788366292039279496583217876582289787941697518375079161280656592370737379925913101607013421025844213163878521974148044757021531005125267003739731096075146330497777735411063717195679408152848757059534438535182218090233705347726253345788392639444153482731600593680077544012414247621992824409887997272692881736450032566216356172716867689520616956351688497491050656851330374694178403484383993156565873367714219550175363646954179193340024608524431412306838388762999675224007856494033591263236699831132123536660145597844017211390579404660414927797236211215248747325737092769954632076486926407505550334453899529472010015904848285361407528393683630617061679492532433664233424611066538422335863118437224361495064534755348642882676245398599815816512019873760463248989000870663111980154851367464432727133283551431682028271265183345473503952406981216089583068595726133335217290399071450865197463190869994148516650738652229202448407196459712591277599647574333226654858368819881083870499583594586997914086235022053711448838784123407492781443970173351322646558158473938712656001298657095370146554682785750438507286894944923135819159558720996714032289151613559451445533915911568018363369972984297742206275015294431543422352445746094643551004083337877766430371270090989238566559342658418400492764631206161303141751545199090289520306522096131722770048316085809897135553184998209108123566375706528396972328188594367888296498452148563860533405133283962159104214694555088656876282102900566015872776019104194553937860211700753693529833853297590133642024759321414466305339746387007240300234643041124442184832316268593775266481565529067554174947968090530846407450597146853110145739220702669803140434679080676859495391380792991508263482331083701099706287536805836628928865500820596086850083728173690442959185505588622812529740935350437480226817156941523486771905824085965161591898475156387535793605739120266676613105946585608701580776676609333381896156278984679380675091461144933869165467027806374618909647485682619593990699367833114856363957251841687660863068579127007728345201291372737272313520241824779002972105207470436588565856354007275105100292497686337081480373781961023603417734269000009090204806575512340809875032314862759877138109792643773358905457433928447494344878649901096245261854989789543528936308694484878821341937735637215118480191882850162863028034384978198665298381613353921033743201185683719527617364312190842940914159144788324496081409665850998213660106544316427616472589348149306230567783526566656620949643278607906895306576466490090864975387289736691104538280937667978964623423960631902157949226248730289963552515341416065802674211308116495567454306640917577896378450845801394236836776287480516642274328675883838966495648888874399547842515833781186752087049485538189931079872462826704833759456210035931629773182289973060819650012152107838308660510886868000105217327949389948548615395683308541956676364681210599830787275053523506595822047333623705557151469423728929132884487058286332696370427909000682144968373102582641965086827895563904031104451739020246021997898007449090998755579517784460551181594779549956626819584190114260949217483739341490382945332013249604156197310617064370202111322931083642403065274882551626948668275827211296030476456296744806249954223658623015461107929276816225369689522033799782524498318668665347416350338736888794809545454635564874653086140920116002625274408215029186053813470738034665808590203900174138873231258011694511163527478462272114453517977665824159598305210246423651824156168877782155059631077899639267351532218192651791842135279903786436086669790145503195005936772475910307786471277062861678039295711745138773290443211226621262021615410190725444917659487069366160260105693438624747973436405244492661528892457391867316487408942747212761522022631168919318578708078920561261255021808400429373057008968345022378493922188444214156990662647811119933656211805146230842759500724535502498278232685146326145435012451018634092111528505517975682580933662371783502389096790482508111189921479668309022181340911131069844658148750009839876333892093966781534398695997590812299769285981853502445644372947069396136392148213415077249156398182530029905241532328691661130320683970074119002282197122341562464074473149697067197579604013300251721822284649575433532004922858317068918687681263684279858509513577661426225903099365547256378643000396458874440126983151481236651745986612997076547929155975751249473514339280487999471839285077487006868564986954727490582571773888008305195187833945840956724260445132208731808567994968611131088724308430890371543644554791110514950861678833452216656682636288861017816575377093401421152634531587900943105743721194981480609937929852147018839157082911815344648083904213885780443720653907418772737013726443515899726523332714979924330221530734134480178411155728825225154299428184343532259266684008063689576888234703586309116196741345917162780877883596593158932398438647873441019923568993342642751465132216957572217117123620254916090656031803369690590550316039218936462029522341003496444584147537716131679528998879849510266999696106065441611900601575906124490758604642685588196573820855448075431705705054714733562343805238532647225484550930095831176031280650981051580354457455689079499727221467371071634882888235966700745148619751908957418264088729212673817292514844878509266091476680919222217718220972107852921758463272613779426969611642728133880344771874414719481733067399830910479765378281164754434537740687535383922208853321271016728447896500078987845744040823091320363595660003644767299114074419852914073661378099119236804652683747321819685604937383127099934884377820194401560307518143519892742714368595952710993077892179170305989064126400638528274462989521912902188334191032556127921669495946268822262345333168295893910269830157792523382870782447705431413040037750474362960942085022022512915239146615653816015246318011820274946598776738712132287292286489672656600596345246890527757018361029823796698416723196961489909405562127924089421695405405767232311157518465778155951578350441280283788369370366325803963670456028518957119229441698898388133696417130099007098625225778852816589348043030083420449240486052489940098468124611993863140221495592185333632179248219366644570038554366779624339976478603304769861028218352721177391699649855725842951113934111731355453727186768087353139042999791939843369709670187035246231697070738266165231968859797581676170563782870590586400926629609880127734741797265406091753431713912951271006461243191748000467960727251367852231404898830796132502161404478674408128165255120797665578217221599300717476853665226723073668918857389814236290040672529624282545459440807527231197186350879428485941175928751376023778477324854896135050415159352631318332387290169006230061912947834916097461968523782989049373049447961663341058051617687207360440038358701508854270374603580385475962075013057741476164525220806300489334364166381619720308553355300922346037463269466197307410337852846432965618846220133657783817996521222779165669613506485811143863372863214384144417339326102079785165102019056708589795719543063912779499352354208705429052877055958208563179534991338743966903081892630678839430320037345433210686571486249187761723956603868036648323633233892319318179713660634190319932614631706307194584602270420856578943891595402706975193942963963065442190368103264451296647951328084041243229179925195669730366002389418200013667279793479330484460516530436155414911014059918770678130593771837237294218944055566543475113238647736199224873240363178669593464417696652647909936442776540617089233752952919824523924150682435077361433913836103325141087963106553391596897362422553423683807070743227793142067108118330083858633387567292644089168143429802723456379391035577922118570844174897921472797656382866923922612217537001996448460252170388264480855926519353613653194467218261995862677172962659396676532866561144671693779103617084506290210736997627150180893239375682331416269258070138420237629977084112124169912626541612703474710732277263742917945836176473127117148155030269012642185385430606172894298171914116858526689027174813383475613427227256418739966254787484670453823103155830571533001337372666933872905560319928688295165207185947472196611878066589846611598395048053122285176049323879863996397223615291795771042196706801293173748177883012747871898370353385904384133836264446512043837115118763522655294967257805066902510510549472524323155865808554467392620981696010309661540203806602854311862969126871481552094715215124828139556218191508995303091551374546554654173293134110364225343409924509325913343940793871908448391442633369313825609716966719367541397431853131243056725999027656197690812450792126104861197685321443957235456559814550716835769129750708654077765680709879698361594657377539075418321196435389239358437358416966775690602670707592587949334559718363261274756178091980024385431699231458559083171477851638443822872431260161218602699283448413290821668317752771944402599571124424397905041891722069584193484658344640787087299156916287146705051302452737952776309410437772385012547642627308119313122490904069294285029586235405346954264102207968030265285270146460282813302106907474181005422398200418673611185631448081444804342752505934620343310025280061051755781456876800578818399201041411629454276478731855722068073774268181351990415182213974323630320758594386565941249405320932511913339286961126913641586806345646382721515792869833501222029174321909074006608048131003189191943807106614043510398276525882473777376334636826763550317999963472815655154219334783193397368090378571700372536440168776031032350859427910737365157964696852481231916099177112556012879214615917626947009965669481875493969833706848650381083468475163769950352458328473245150910616471488651328781147182682027789881209417568212657639342182912452294618623653539033025051720220767000967870604533795861334821133997578413874914149534545401688479363072460463488246387703191838321072894485512535784058048779686267297802707273014526110259572550523212767760556855396023291367155765290832106488837481544639614571109452819092783413085552830146275195736072260734365088066181771342716245091517657668476392533462914552294791391927405074090647263399146980057884174926510944937428940745767025973996041952427308817503741805786457802112344601712914364690825674732013575142375978717946427127257158517150831098040178239190689187812975371415187437584493857455810906881055473901822791304119833219554725388146326386243943692962495801336249684506119529760481998197530722494240174387334104325785631797653672778341653811265973765244260851650720768520776275170388657872295672084244279094994830613101225460846848965010916004555259564465431388105361075830403863287653197724632302882819544174164179774335373535479165970030456206308661428108888642409949245326067243821821566574475572706043613452431975311932853370207434712849769776849743605876057356497124612739989710357171260924042389528104862517858720118852431188818245005363435138433333321313458737306416447470143387508470068913201681858099451932989435388299926972323022701430414513602147464134098839756112465430401291091475100058618568540598933050520901307216729917428234976766173086741542436696285236445288696548636570195720669636934676347040549104417967325344695295803672964093786560109908594664509817996114757761937465209878181087811116135055580144297570414043587570096976119885829815116885647854152259327926220291560221496208041307130155879695026014142805630686500093430239617285897091526710268515746107416466962372698026554538075283938151130487746183455517305078687011678837340450346732381121778204154939353776878521616231030221561933091854128137912591514918231498066884403422786639147927761930542641509414245124138316247866225794754085035764298947696738972572631118359657676717236348030079471204334926035859694464554624536680352797128185979177886928554874778360981291941697130520166831956915095628541875838695554801736383870185517978274732247419988459123891161161267508580954238062770525418484435135884938121368563369547552261024209745079208109526291766773316553292412756839240325313773193021684010046139927056645083544004257292765631199173313045618309049970334699116766827825482601378661879031994934525274629720904596643566419619785193107915746541353119374662351241223634298126034701615748233167149280640607591717998937431108471687821144397888324111925784217873183865281706896035378871346262380433490432179628405363982238358229052847917292186472022569463177168391882671347847062994724559399123772115527634118965326734389615956463631886325774691143173625935225033326276826339764583018881172886899148263279532159579793478851082862265933225120337878269686696241054914717706408646041450621007018556114065498850089438395506031475183170961908378467012070180488481048995178377621092066403556295136043141547082395845197276739100732506386772565842953006932472811113050643241091299431183491181491045287092658060574186371109419311076583152852942046140779688464126531451688669534874876537233058413546877433762008591326715451994349582703617001168146182026773086142255725164225689086671127266299112596918423643759837535227223375055586368581094285062736670375062895643392209021080547135624852225247134578615014791291223318191336891491385431343331653179850718455791962443381066413617776249171738493927546722479486743288769833301308182875931354847927293581385917826737635098030591030299093647742011792920456712233297335575719743749667016468183351698699740024760047209492468693520583964359941941653384663682331832550386154226740451090802275333733969205320099727351439531674784998931317441377896953413728267597155083442411536797027307896857128389250187422732511301342515758470657496576115819053011410452505180356330676620124913024812560504129758120154350138287265251997906685282514136353870005865879484590204307945031686950935705760064501004598551767549634206214696732178803574504439824983952385592305346643505868045149013479502191418171214694355558129235820039134967019704977714570717309761735668401365435311289551254948522664754515572448816635449793498789757976239114864408261973001823710147265921456348295343323776861910928949063901448184834383454172458069465833413896678316400065246423363441426884600254907789132761195225032158149854494986474166601414917175622929304978181151388202143266182924718090962195884477737377531252738483704756103038494008994827490842137456312050929552055224427369911513889634365377857035084913280932519189993756555900578611593787325748328682543730059855907550562888823274639784515181474765723980525663075453698626030140176357144235053030205283319066173988875785577273609058090809893196059483658723061685597777921441323927786796086332148584141335487948021578136456625409743964723210461277875367666168870267703988590609238833609395776977818598595926720603387525550598703309032556867228862705293903197128071806265464952124351699317449015968807330087436214204231187801197753111038734237877808540418460761281243532474774256576467685523611373587431680293496315793318033576964779361804025197709347064602678220447239304057760544367154859581078951986414155214404012022540292244760958316810371405398143586484154284174623234519724668904131604117971400649268044097952248978487129869805828143328629662854901432943579675342140217584330290936524973872309532698967737405398885863588420128034527601144434418902843311941805197195944107537708216371709070725573631934406999888690851707375994810410531623537096877658645581391757663917829801995975456923275953788126170894972654896150780642774189453331197608326915704490518728815404621014041789045629204163705452175134753435056591207682487983030650724184766205371261165513042532073908937708680949333027608399674382677360798960518334368336608371411283057722239370322903413987288532758985677240573605440332464371140279085689642372882458523609988360942781158175947310109581927808365543854184674562428706269443478626940819784025883968838455815649028726228176366813362834044466201314935551813616920565831468766208465185436374504053510425024769705066195716091538318006093198678316595738241655601964129170220131241135462963609074711212702769723090117070371201492866584455123216641351875749845331837970846865886834782585333414391135088654401963754565461291721267361507778565245432081331919974481481046680139232637692317782288919927445289392668103660445606573448838754537067432131264277364455510300894145725930660349874341216761146440635470171653136535853881735614710015706354284049842031204415597862781007167989827695430752638350347662980805054543480476629561700236126266346141099128517248393874796397046104458087822996075539455419000657407836849537173100612599687620661540639719330748062912554802655505635498725566567951933695808778410452275529426697460732563844970257298309673113173017309274449053404089543005382850756765985503295991014167770710424905993678203683954117893264771441870488513049945679536424380382284285265954370429659303973463085355790677831846852900253283881615485150114879657710312392116278626295544953336949390878335222601546266881627867710810927938047359973580573866282177749654537287730241310921291160593458122818105501193567523864626847057390211100821543343571796433283305431361477572158667785995397356994006387442385421793997742460447229110077504709104803248039335231995106161361873396963446222850385603018798614907584042721649284117384333965356300353737362850366146212934085745226354804029677515488920607531353570112899112524050694511066845992175980590980774153368018001714409117155084716047264951475783454948735249934702519188739654763675236323902100496437206546877215101354348693554724709119713640598891456637690753635303371112083005828750469092865252583127674632314716296304430088261931613142234310218868747901132145843220726102034134999419074308984832838208558732389165713750880585536068274021688625672926144510840355869156785701699679803662399157730675494654752951892361774812992063934041752585985931276790855313216171709747630433381547706031731594932121784578305090414787499485479487067669023656381676861431072561642295312352755586064637525255621427713244625498555807407149968556916789009067343459123460518212324885363762317504800891737340624450365046323125183007334613568397768631171443515846865694181009176087800398882307085004234462039991377955893751278669626865159049355049487611344831805083258298140769772779871908645323845443385432930847368899943208318801725476805629659743497768973782173993722092794956539987452229027863137878826417188932491937416969004634949962133514183021144330881692873067024180260835230574010957196986271625496982915810443167698748456790191528927095348486390527051975648756502716389015083826860815838456237762418415003043172615034786420302122380830639819630122717553236699944927485009587440480094196267383600130996382811260235218405506830848994040828036559381630482755816476127157067088569338161873755896150990408714426076440064116669445412398287655076664447360645341863643045046753174241233855714997877773341834959344184045743659066912849817581069697718462459993539383589026585605717552987414929158369484204918341647682956835455888324316779695709005696041881703457696975816769597142542575409583465351308979034009409177723827665886279721044279381236982429684761725290807272145619421286337233870247615950740557364377155481935815205264278933874335808877878669973607205996433315361518392418844334204410812012195848087628109660768724413035598792481424916000849374714902488171636980232503383629799813651439378335122172854345931342599070454082870097477763097783420664226762171538209369906148439296352551886934107514088380149021573945117573999344818673542647829660390394532548939952598660861922114794341402475121512442425733816491767649123983952550834279922005939868566752694436511531829131394592314452061502898731118953294443070428870313774826962294961331935239852505169456440890452773743106197021478653460263010454699674970041227163909665066904615484528519373675121101757909229938013461374086410608298023086615759725740841656592881323829463029892449938069025498679417093649286266281345436180835491257162495990809160212752059587369306289330139592165858719477238396995281072577372420124576106754068066089523022744690837642373530395706884921933953894066591636266566966489850318578926903646708289530167076265250152529370546978033196988188416208694791763163913405718019465523998470622806157569621410513683883606164236373690530285534585668150995423684559447804341568628944430033251324881388360691840449153793425626655621564839124541811134971489568118238044209076086007607422761811495341490434634445877998510523294154248945744739693625404934455597913122541082904053504557493613318269386191275642328108575580256520584883982143898072727289232078042661882172273809689656199462906600117544922279813495574971858477927691543211706666277559996422402819760570428483450060486800083982799701158038013797689059269410025423554457579255529789787379043537465789632887701294487022124030620365073366035931070476053070686895686379499904144258200015709837037546295755902709637276979918196283046763700941101553089690412820909144099744751953944848228074643189541981733046052345437272553199054049054845133698085454798972130021332303805709420907672620026842036452827766510619580935261013080909559190670465419680716966165416161986891831506195697892672977965941931246017319716346367536112338542579569288935121637530709423199354588211750539208405023477745966486026880961780161961181744638641650950630561922144443760064507843288276040582143781198959642624341157282968967658120680461858496744044136814905506909034396412368458959847293821017827852476706913903401827173647232989425419505948455563700235198504168528931597941720243153802281063859854290772189689548176847144234222363491364202893791219757231681638058819571798695128897470107071961430390780236477169859841805988665427600350109429347923208246898445656754909150827502329174265299797837099038230703358460316780901964675649378396511201522978156109631301900165539672154341756709396708355417083539161634647235027150939096867222727633484293458199928550047700477393819116167525433868444386664157150955118485444537256218274174984949047949284313148325580288139898530396351276836811614085934885397545913829556644834083576444160604208148118121973274272396856175773761824442626762987913856500661294078502980557214210412203343827744656211667236101027567294684113891997172055301282504051006043635112522476809469122750075139504572370795463957206749792129731418589842007759623266138536423547993858747959567894459561144246226596894164579125788261491201774203581058379036558839062344516965676633790601158888246985746846362907516772470134610418681617675935173237652464100923536611897153060075507317147805095761405027151093654005503871006093354435550541426892069253195507360084833297089781793229700607680257833747099663245704644896871718763542613326667814172912436585091883183177532536427368468420540298010361384130695827531674209938507778407685588238454712230368475378131198712283299036280288441527315478434903942604071648505079010583638581246604219397297067243616217767141064800584277140438063297173161559945392643010551393859020957557043196412523877554497510873008650791668835276641992939211286115267739107921692432717911835699265880724559540300964251296982541718121860062277212960940969066429482280689522680516431962137954259150313737076883564029758354922113583349994975159826895044586658671362517513080128958992729796345407794366796561507962651194260967048179831953739814609256524702628252219846581367022479908976492027884407101803487476884181774341313319390903984745142542551970607998992112463018198370741896538915523077083378447687611140433350778030448965150195499981411169413662931290614626665961124782435139616694430518117633671962619319591817033008574047438472610892773652927420616553567573798547030478080051309974620589668294157305888993335903242230029275415663374904920877338919691848995412186483175397066520960250198529240431655382787334823906418481970614998781899197710957890489669272983420507596265125273297623743795856863677252804876355085174473427658649243789974712590512861244480139757869275829582089461305445433350992757099573219856170375288658864672608830679167305135425102821289303245087929667498329605461767155827586311094275529849032283304439479165089921570836376232032334345885681425334509822789111509964291757153102117735667618054901135761076931708740664927573596822758447598296958947833548090761518865387126045155685767517040345732013704636529705802452748025062517863452029181579329158976602770157507626409312450746180977528722514637981577456173352837953446592715907183597656531427444335516973293994832685986693343191191207809976713951002963520066202210918182080673087233841166367154030485574062773258574754497927372034248811806174088425523775255135610280596742858114998569900740314114207826184809743022913837089971052764573319570423384639315003122335430839460610502562068001219494325051119434137867309295433553055271327214767585012649609994992888350748933874056000880578643670252131681144990489807170348378663182109044054893517498266379544920160147121415816117814666626288633726294640316875219809431583370095060369583950121729343954104282391055578665394599097294067249497196567855237547620429527120358115993020593208587934694481012047075495720609929340396247298449395912278917898261239116558808930308236112092645925178656466144029414604042121822522982373509815990314067795075716653708371260757315903187378479254217519356904269048681235383858223767861536978733452301848957591693518975289280388367017847255437533127346706617643170629989362154168974781807521711015623898690304162924600514139637083281815412428284430057763632479708411788654172419223193912134464841151922082368155664301687406896870580952533629717023676983080477896102073660518977207507648843455425018192799802533260919727675248432674163844322274225371415497734184544162799310912370442661116256803612198986790546739168088705830303456484803530874465488645964507685921626824187987930310234987630562845153453514997698695164788500282421999664314330408230049755553808816581478719921475066499657385232440552536237942663748900442672719329814608954574871852431818999473565157603447253656516405775680336767536520451089937157933290816377163513253534300116294561696247328753632578249423982022823890995504720147856890729644466174004245126845303007701477464352350783342441986347839545221822357352454752343999639394642878191847946847378917957066825442679978531091825130585414804021632874403751654361621730051873487464459505674862349173671448556966801154602370974702538148693255669622298938872835913020416985330385220900847424524394434399391437805430484982471929669690781605746008396368902901060286723454675168294252727169174876809531663915370994729980579419446296667240637960918987740615401540695127337142772392775653107709697730511408560989421699150178053529254054901131736273824640780192849605825760765387416972305970548182841183628048148594658730392147166197128737555717311618287429844810150691285226451717778519975232786901654170546640593044876066358991493768606838616493733639400467424812357769333609759385113845460617202480326657995366954304819071876292485906668984715319672425724852413674389035039426620341459009120911361096295304797521857879568882680777101733590109083778777852400063950531354618354931749084203816135545952638453032459125356152169712798339985365349322201308171886578183658242550278153437604534916735621581454801831996121742305014398598698145599954934164745808390734856072493234018373168121063407336625759863130990007009122687720444413805199029979070848946551607000797420605483688126056112001341213582622832549144745698178816289500441945862582812681262784182004106578367741145731298433292119896654025355881438587609598453302108331307430870768524489214255742100468399841288984937685506791814487801094956787164434534674399880700879822193887968454104167430370521095787999571138318560598315271099107563513459745725774805593521418058547426738606314152179073179894697704455010105878962157338061041432571186145179032640691879455603932859344767894327152832322446645389547403848417580898076230751488995058296724721895867391660233453974005223600341904475160039766933367387371836195262508283955644341599161243235448126657838219104722345112674526579867429730183406897024130517240984394808195688519772622943756371569681027308114183847605445793702599788190918616271753688975975882053166111163237860913180956918980691201107381590600343143157171913631069331844246051285758361063533088785221964993965097599900752237835049586496130775109885338682738437103360829815840280786356868677881862143573945121222653739123816105904513627105780178742616483283051209076693953150999866748876847730515546925888912265081983591004101491136848609643375310373103737478695159904313281531281112503844225837692400407089539236777247351616773781952964250187568404371642942981336086441225628376641705211242941010229910028251803022273549712728444470373934870330042042747113988730785507100116453700316799134301496819389056575390350341511737769601115446394612823387901606622376216401838121610897385892442637069947946032763580392436126045715829836885073209114053638933629783853134151175410920593476775075697360854627768628475560116149001147845916271745789932550630757708473040782964168621739807223497759090437480636663509629167124876351895823810839867766720487606291038065068036103366259721271928390266378895163876068914593288646737042260854207380937736217958554131674880359377640077532411535984543498557967547008090029296475093060300663049567040512715399315959081683966205729929193173798759469299008157414558103088955594601744630205961961725516952023574066675821377931571836355309747020959398919727052766837604597983366206991886877709463257899020747128396261080436609415239354852914956406556470350695814863140664522421455336061782227198539318279850468349224502764561287774964913636747552003214810865960097954299504564631065893576383691970592785369337535156745566154615586449603123672638285440065450489310734587131767611509946422372620789608290805361590635383021020135885099965306488584498487445852341082570727226781446655201220766566504129555155272762441805210282892134918638484482733325059271290398279270430369276979028698484434048325483472938183460113278466702051623493815202727903301907144000214033734243300632147111156505840326832498164138694770568606956376948400376075009654391013184310505149758033780694604282108611062793344122237253188681148790053978401143783720653883256251900777059774169729029673114885361891840537159918596529669890081729216722216313622884253233235796613411136395450934067306279451250685824936896232422750578484934996148877133892890131271919981431557881538854728002072704474452439762292422232431157427256785387929304655441221547864994645395887048626511002934267821339324240850137673205691114679516433568752221090506334069937215181927599240181266103746900240802142354779530635560012800124218395266606311020955433302235049748433133077912267545936038948977827670619075693271144794983994947048373951945127977326518148530821400788852680203338528921306508039636687639875635924720078146793988009452217687039330880500750585527588503216322547218653665161331598444416095010729120019310904710258680769730368567887467053289514178130602805253410531204194431613007955809694599151186881521524788416091354710524935901457089476997419175973513875593383564093871574852864238820055570682482077448434504186321397797743892590972464059620579926398888028823088339895599635771836376987170457740399079617922047099356723391170820574947757322288379233795057739863505806107688768642687725271210540905273526619128767660921201430409656350302133567121217183048221143642728640265629112245402845140988283193854136431397327242081773569516209233444318266222350768617635023634103346156222545883447050233616748363435552936114543986112138177923921623597718144433197846161604414958698257323861786655882332689032387290825631835643889890826406566512152885035429655989799222628514327266015809537141015919615698928087243386327791847213357928384608450449447766403705643638430221192428505064733441381802215184327366966300441250606150513319979019519211459809066469850603552308845601348459557279879430796579730233095276704078898597618625941683002474347860035282279084458914965942489343223783203735992042412209275164121968801466172994481720544765839342160885483695821567116143458255255822188744759670044703418740797099403749035879323806517213530604471052429972630966412580369839789921328957019699841982532456351896867373402578936950366532296155267861764027470180262810161364880113645895588638469582570368921427175667070138776122150608670261624944411464562182274035485543809352808598368567046086589625055010126648770879242777618548336099963940015194132756338207836199062126760191114404021871131791708700928514483973775255879237878315787740750109117016196895035813764242277672328110671915275988405130062613685059882497474294031087545541453553339461723174569487536613910983742508078444025124655865133446985793667722775715543821018379426655971916327761331772166638476540078859512238469947961020624424088863466736264850937770991273269687963287039465606662935657807867477696578296376420340655122462979851518139949100477687659640669770814800030087562153931186874119312081323389263577816879256204805055897983907517997140092726426716923862414649393318506567099723367032065045994133251470583723687015031039908697449086029080437882823350126808110883453593620701336564075936349174558491746166341626305510241127338835838479512142563439770249049467642868517047574564812512662263786895250563524611995191078288868984618854476499336936500145707582080717656358304196039585645851104461600615596673857036990937565927391856776395868845723935590526966715610143628321690974251518009011139013827840146381358237421621449913213976179679659697815290994377207566244921141286420091573177521349504397724928833775704264886409646754698088121389122512320858134184678316520152518537784433688528222570533421709601670317857617908735354645030639973387059529814621465106953187874959035768880078943580536187411120955046603509059012719872427231472415727965486827169900970571397949455424378781914713322790293071865449647959153082638364440714524887439904126109437422989548256473239262854246294491174067915157329246351037069050357171493868830804618342824198604496416128270384490575274400506445618413304754487974196245512628363955941115000021859307052283310033824255919269363113879260656571746278166743702347391903501520311456134493138750242739144125434866080182455190132754112769886178372794954830975469627986100233373125520917347903636598861361074240230647564469935177552436810485436139343486215239782443580729208436989811616495888882723630714752909718393823655779740095713062370065056173032420525712819638501530431463792352199344062085957186762732089507367864709984512456913500620844786117415444385616345020569639313579109484127372931013203559213538875991775502126063753086295867321151936725708252814531557620572594630431856449937199765033171836772945198406130158104727114928927679180008235609338753249884263603816495521605933120702151274863670514442643313562285806478294743762760218081738518527359659824114509290932449001012654783614513795743074496701359817221418934572783189846983452475808832453732894689205303806727936056730762333321555348675308816298322615407706774161427366743311387978231788086726610647055308267950818695464560555712651996297853913078054847525865984305894329318307089380870097702249347083731091319786700767861802043355587517976399464530098670713299308865868932951792983819482873923702234838147661252934273596648991115498768042148330134611755832001102686746897471448155540792731879086244475303934746241189574812132178059812133043964918974992636904726852163703197381064642952979499379885896022303843856011689430506211724599390163162532032334781121271680205396395240871981978733094216719233519356629802386688889291917037982135864675068540231185252185816122233337086766890199234500293391822100848381535237082007690471052924270943296238326518748900028344040905605624070872832891471018492733638437345112406501641352276025766066221390150997233434113001189298959575185562915450094241947952268500172832666151955959418550366759836995311168096933862447037763503385668294085282581022830363915117548329083177542244108284016234715335628008309489773856612329315655816326307824822704914446202227155365217540453413622047892491653965893405247401512288555447313559065290702922620899953112005938407816273807675099227243382225251984028041463481184090720337166624420003489371505315506735268591069058978582116458178959343214801505522123074022632221911845954553014983239457147540857269662680558173965174824119186390745521077083246423417020828490933592974812221528980652408138082367478946854589288609531257261444695353539843173150412764184655495166098028665098713350979316998378083342578726557204428408140641888799115348566092468661535434597352226491280902194487260824612716971080097673097204130450895175933208619872305917071425552615712620490864398156255572845470380824422344946915811937114983408968602322270828002444058039718378096512545386771459620834240925511054884300747074610655079909355926870415565868012520059297658104886128871434472611815132842181008797406361477683521387194758273570531770794615021590773170164361647233660335985964997240634789571897174019306917762918418674925341192535730230248317293039799501762569852181501235714148565774266692885795220969556465287603864586666590292274902961519049807301822973396059556626972895129782350038510747806952799627616381307113561628679715183538910503384140366439708268908067373882020428067786775339514983535690638237231335523473363807365254611547466792519565157393020625410039268908008569085343835798366434614239490830330090774056949088965384414435368174190325302151431693143045008006704192979586549729980013118312492409129446821250522105723091004241405796149385406565041883384475131832879790303297414736091431887146072465004191167318158033923403243388027568045230328252219930291089184100720310001404430742669221907130859239253648343345327102090124485197338624076207812771163219561426311392991541861347582876232240097788460638422767627653323466201320247793712979196135665279645125493229000604031490166662034482239451479074406872716275549039824177881323846705545140725802754498282990093200887823640555584245923246147123802402993687247470075147707724590788766760502682422848957583987570464569793575534258346032411858025848035576186083252050161859291676339617155885282732089147697415714111608821325846672928125225145051590884449935599553958507634993070032626204555367487501019348828700489857750184737004262949987895850551820594012197528109147680206795626843912845770495810543966862513794813776738667973290785497714824361226195447937204893351503569071866052200158911105945771284071413948841895704260577198066710522064662546972390341258027482009562281802717398490921340576548680768482451614791017292428581313757938510254368173147399604970386154804237848264283746639807069963559370933218342396759424653261494772474507323390409358431814534604058175870848154755464289513844322500546004231751302833039797168042269293145436415090927891122740329939851166223188349948938947016680826408662587726408329474193665283479475667401824056003995066434219664306674490837949843164908655304554132803769431883209963763063729903068886576205951885238855147543077030554106619019176787074791150785961059139369837846876349143716504357981094368902594990912569069970973749840310005488444887320531121541992998144155576157294707294820108345260608016382159793228710417875549990489796761561714431706245069405398304794177212615971155955970266557070114885268759750488813136598299122203381061665195984884615710846320672745868474738100345909340552723296427638758867104838337362057032364509868014248712758341306942322241622999655249829628897921834883931034676991335503162612322161178829022989545351122464922398166381784947581671736845972716691458838037274408219056786899003590055740419575652006937388303977543894232614152235067416040200160616781661926765001122552783500388023444929663207058518302702098242356832793157513583838213524388159333381040390063371835102138374840581013667212095238386309160872419498659438663595842993899401466280297679282022705340109282377434533219904860677583839426071124729017340810171033058062812147385421580632702319735119071860579032703461954362599219578379027485130229842595466806603900810874373743440351928489363100586393193874882181486218353211036843537811324724268468086802278363837757545598362620629049639717983459128808306096793334936952347606548365246052192710251546530468070367041829398395912212450487791696180013284147790754591327191627699492728765100444893101607631022451002489441931608443997724582765968509793252401743940832604275404539163653413746925015511213644599111804207504609359054086752244751928615046870084087178620413649471576584551643380576087140328210235288790196245192704748357495386227526124013923955497480588262319988296488558417843882436323565722797416288549350910789408502447577825586955304209616013748115606612853449721660588613741536789624751752687151983021500465829663177934524894118872041310658966599236506203643643522050419372597908306282337348932650463060589260633698479414444844087384042469445409699665639355555426573303684592642637641347036023081325720882715667979985439262764822647233319689486248733605600374713510940056715138380912422252361792100011773791030059736072157282206541664132735421322789182634033153955469677081349547645210381362965644939264826318941922381048627772701908345752502074920606331871166568214811912718354775461392360540419762373687147370562667904413776551038322010442277140033925048149388031854213010733680189129518341713534901918859027781763164717483605748952601972519997661293506888328870973293167696003716799394270550498654512878378383400340190586968120732856047617193444294417918768843219559534259285544705482503226352429198832906216717619829897644334025274124441742243522405161179503446982786368707294486611099705974850912741356740371792949356497211314268633981165330558144345501145073662657443594567604298378431604044273538722601177052945420596021793772147926003906909332738399280222247844196307814700082686512413593149041336719781290142207669758313829996848597794025230827535691998093058226076956495426957297288932183033917332409676702047406333318940820921728076915030300696795321888406928963308192865464929040593286990885206885632507958908777857601208671804638176634778193543962784938912195733250885405668841576094812860545766109573304757683545327473008806827521646564149691451268004353749091326580847163422169538011888084503767855735897327768970360742852884051884737307440903221003386075409842362060284399622274507358165352971569855026782966863600737897678367197089398218593652675245751797426218006827700052873621019753579293281637038558536275249906071481334341384045717426225209320307968980419299789712275150475886603196648591631541450669190195976466091510611548127239275423550279220649057439356502526961985213141636050495841113790273995105357297664942563193944447678764388188008576680381035584163427361316089382231886156816209500251181258337499181015390342105464254771369702781320673141267614719177923617685710275919916641470965130904564756883874566527640563529628697768673807173733832996646861690871578134821666105599112246399758561482951004164363352254198640490804500260285698251540239749227261136954931902616281635613895605242789485797047735961230508115279111591747064603004241769377787861818745403883088652054965540381481492262426678781177485227143249066387006382574341853321909100216516763746487861984928601340260063229991425342486363776880171876183209456743819595625670138087502604786454003270341195147431486089285525622787552482999655499879835804390377538612218674342862579523342348540711121177756933761406670047612216393342774634128569591773033399867179011255955148008376672714113213875165148515803039731370256887476995611711617298146605437883811347443652538453535524298062109021231539985114442391067529558201028022745859093253759459772583321420664938077079850555441112643756163635657051403653508957162749965807243692544863350892910553991970423668088893275071317210304750881172286182815191802068908604526182768403077514359556569924711453658672653566277961723164181161776363968441628176311660580311078763438655026597932488911311728857975907928175977707176837456055719705341546701941162705817301802685186607756714556796171499175855039465431023266652249825413163937452644940748148763376467224431694892374907860065014215155956915333962431839079961287960883790190091109409425671716401280813617803120416068936667517108923245949770839326892322254621896719386513758758829521121803278155574724179545478621164686872062904092378516388852973445405685126611548891383616551897998114991099540847811466884989596398388615510441954485399750270081481751774052064002697297511952060389067856710281097933884634602499747891882769895377268753451829716105318193763814536439531964734631928499369492035086183577150626335171378705361923146494049346138489907935777447814174977463969082235428480578419616065137643736223860088740110833973157239079027635073585308199381553902663805485616290138994402145110263248686823965392292374484459049801344195325603029085711150080419741169036366703340893830189809255159005856155351591673691358462309647712697796061878005299490857866864190753747174266466759994626747124233904758002807396842828967635645039729367490644666256026202230928713735446355720631539035204542520930233447395972984202240988980652805525374121584958106111680338332271882333889356264196628351148081067005531378325540167306502337735297264889996462622733576605514282141701485223110836875973241364982005022534994843581315898412200644231653237945971068796438358219116767738927282510771790843284849560759660630991110174616233280710440835445237471595609236434827124829084725813823700957077862420662914139408677373830246006155340547235546489068115321918469848136356145096290166180234808519992755471359140059548238561288658947996088724316802320253850734111653785900954770445618339290709019391959265176496439383492311123120417593775379982626336097256731029876402051282353493541991357608159064899797849628184570427533091618776078504890423887941295748226019920833011614612826176867414827304098486807779922940604711735035936625454736527154180617335948928131277990478597880626597574653036682775389544387409124856468133930705322991171763768027671424205514985240415201387986303722693274504790476466833807427611994721730107064280778553228016202835272561527976368854553149076166269493505204160160534848361794558909385484119880076347489591278145825042497347410214046410096866388482256796568638691533057644169273659758191969606211831638894212640525592302181177583951005822721300995453178360806133243697121406316174954327177938159684841933255218696792339244939227201723452332289993120405536537470716197758768380280457171775593610108465746011364809712068541314594541963549705165805942299892051572496171518961990403447805552000408496189150228564734987804440037671963865415026805862943848995502086531748225525632745410507438945142248937469948861453167747152859106523379820630367747904099397330253969073562168800612826795605685422272529327940674462719567475137983860194295706679603769697008168828390471127073262469903002132924629742554696265877254394477498266076809247986676553764659526932133042184768165814588734614488015785849410458026546922094235373420412536527011046561049680316321162785382543297472322700719690532428949662528030863874483079232707854745035268371763411145353383748955762988509441088200450556876746288473376965375817074358534697407469522544510557313569808204769133183875043578008344231494295634796924706205490950830620638875947015922626090862469576337422693685659290340750374883979173140750286077469684659446910887517899212656852040590807573204455570175948313649836442607432659796381769788817224673409022923850394927042039193285008498551432729083686679051526736499825344521026822480694426796823822194848179002320378708419199901491688810480494574456685079681541372464021225840840575616468808450434104244397471179946347398468484591313715685044040464107489375076117233183753585889853280376310980268014908526496971520751030006927947366131720123592247157042365581799093895110048774732652222398899414024199637602966490474622683569259308340614714912292076131853659402385296161229597764810663127247695294208365064218744050633001596836136130094656623403357268320593231855110583194470832441672468424005926827972770142438870470555833482406620007788778117420108747893889359598030259501377571150588895931875734481338125925800510868224166276906888913422404209558616520196435003354393119067198484534178934257535090769540819421606085743456603572249845385942036114948360380429591917656669680219807940110203785079346805613868218200128312569208506912159119803203259407785430362190868043633720926251951623504469017209954721288453122384724689441079103279639644705601468588657642861119891195472494217973118020804196405154160385643264218754271727687791417374547860079936968429441004920978162412518346880011002426917889677603946108480492510190289457871038432255924112168935641488698010864913081446302902046461781424767965272628193665943275959496076243918867676564697620771934689082772545702898584585812418518621154550392676719581436610762001492751871623693601634736620078496146625188149401505211680553349249876190667876515667696201504722247261722756316591876374184730931744501621684876866471555624162057723938805261363748270657985412504844770047360341541018248479863374395459115538253761679196275217303560760739942420484594199206931291183618072066185290442567371499591191077876459905830820431189505136107833547608245640529220564215245544324978764929040499591714056011061131149966844897922214327622632011069618664887317005112788728571364137540716976416744364287467673227352342152155962381590559753661718117470255753123416859761941071405027589018348270176415382589777822467119593552759444723013902464489235886652540069172580461986027304781949892006548096275335593398838312009510531217267463773797086145853834710033867557218254936745159358865197947910303886555077970733716355632725080201197420913336232625874521214634819139057596584097666384769457623327161429872776789767188373402375055649915718340577736356798849557848141486086969427168470099742982600480412166827376524485688052775984317432048167070118942270711551528582918967432630214880498684555681208282061098236592476630229958897864246384106676165940259650756918769141215103246616405379714753267431021942290932318947730757499857703104647523480793756681974816318456874443369662023766589528785960075124095017332882340679282608186984797723009179050024932337340539054896489506508066590851633795210645805706354666218627535319892486674346633469277759489177026207991347849401243328794426490109357981111187565914272724956907824721973383614977532383073655792350700066524127665509147371683834366696533541458617836865633066393116191823778309973538468415544349176759075184189810047511625232968032922412854715071930006323713411725013388700386632006993416367633965497265201914611353215473087991780960626428884209913077774853101573084107734567078074902771431136142515298374121618328327904604186407694501475279486776354008573882769800107763832603300337665063340527868949758258268351407056838995321978051182936043578498977563536165994536442909053282269599227939460663409447305015324756690905200090419900168738412418148814343042866214145366152618505606765524975527166658136724257952714016722719778083170557668505616922406930329476429358378992847819269720230492850606897308885879000411625702764985670808334335804914540786635210208861416511767067987178871028513960714212604731938054792925959539918778155746938473093777220968086415016366616852151568954816183787216624165425067303630567756192390333842303453581920628127146340423028867912904526217203863769924378617508012696705521446763181979232047662158142159152948123782937052364588369420191423198258425168875194743731982964573977616221427591083936599014046165286786021702537534782815801413954679955291271031692954017764872856515905737078150064595830361381835250495499642179925721334673118157836246052052279987943137999437431333228934293177911094436909456287799233461262774943476091490178848390259765850388056274750462051485604616581769340755719796163229991768315170816216744903364210338014094170273875709835060843602094956552781865064915881767387158403931293069375067184290278127881943268869106985230998032707787672294649628967742913001300474995551470295346428985453036744428167818457632230669280735977875367487679766068214653444102877880956908373714587719399120848375686931963415200270136210019611613198868712723215721004963161946578613387405490671381423627470832177560504826126936661778041216620956827657897937339897673048226758018421613014768350896211512889310206023782019495110994091834153121737288307463959025067405988317544871637726841142484959615305534103488384276157411725531929261313943334018410139983980671501469868347600275272682131648853833547509317438131952180488736799561299985896076858115648749085818318268922486001108334538633441291677695236990737202683300750429956746553778487813290059618496846035531401292739236319973664704588459599239638615488922890140035266656071348063953775553945662129776211885673079374745530734168103490470739755894650289934508034475165102613914092096465367489579954321142734130078162373999170013506673138085911636056303564058086578540657450188106767321458555314286469918855111979301154193019063789396460340282400226176850612708829203639703260355310293777485465291414100763218016999894451638516927474697953596455297564332611262100365212624212709092272579186230637989517259825515579222578263715025732165087015938341876569729292035475375409336409546102756376816720075995360863817586474745117483739958683737470742283400874961779157858522345679771467941298287467575258394271364144989872754455016891277228037007478213220859258898099360972541432212038297726067595168969817404938560229494354289106150155814345794011844798526938710375428943746891486407208181271310141987488043957198035194955013954735043689315133518909842261455418863920456442650104403322139587408458931782153646456009805009219022363879648532313594175925437464805787527365045331082197038099616518715963752496483840987423118989084184151822322591275732547821816566670160083998319673172955333167600454981507406072718399482576554610829600191721628825542155578710636612035977057856177928306205317421152676558758888376202307022957743400182106725491470486691495826942950271509317286898942942882765092748498861548866330906262959991830192802625746828261014713639182206843774044080275625070717369764046970633656693935302082469754292981454182653222728032903576300121490808638222517279281005067878794361454592334479405475001490452139554701961711720828035124241783758028570948576640583499165616853969839298825499231577604319577528875927172226547035646192904154462061736953583078861755094024063419299451577277300840110570360806501186932605531161195962840053549469533533544600869217536447820731851689399723089755172145077592299390094817455233459793789903880824145557898260187020825680085182096497999879877193656053977310842183896836670868322732393646271519155965328960431518451268906303711555923644490672686243373015073460691986431875287491520000835839689851130258093847824650593795315258427151136340849667079160862087433198139269726606502163541045462083787082326800373274620156390590605994189516931847175803842626893731170298258096633002425893999214206567145406877633711728542467603690954287897751824490824050670552814836875602001093785270017452784452497146046187206371954984632352168197223982438002913530842163967733326859798175559162727601546476799153546849707827758577378097528627159919857158306811200100126076322554434139318596508230965331342896561012131495662047855094577305347290337278752426510663966303372175822971854044690884658734329810099502661416289596154616640617498120285726674310993545316883861387405694516091531759988763744653425126876801950030716413384003657853077979135123350744894675855130371195558143877981739283738494697922406627740244438014337287214533585816438854560995669072033295251222148929201751110971068466004322995165491752600972737662762933996606247546544264739665007355266845077677858236515706686116940522548534784645221894738039498211021716607174775665142762665777849731503465943817488983218781516260719791422992916631715730552558627303386867592425333274627485267936417646003413045672927222752741641477244047042954140260960458756868519771621467552237750802279547782243467205895459736496465646274909988226353776508225385977683892589131539259204384414770218601778628504752566872886041420201515628275798245815558119593935962862929181826537098765287832037741248617381870593931664994972098738173548053615656501251925111958622729526206322783330415440910493193416853133041595541858083767934663494882677227058579623669750629238055858242801490877477038086585144274407528579003618839271952505648344606639557826524513485657495607365057509042687253615242796764485978974733124342521162852406799604906978556809993598510994059473445361983453553840064250341418193508739008948420142992766640646818118042184629426209324999244679134037305786714674283005526811025112571126897080800771526685546922172418951249410249212640017740691179690122536826895431267363817976858114120420820323029692676927479544511561999981462687195372582948629677502420393767232005658753043255381109777984960247660556184710931996873436543078208098239127942957920584765152914487389532926206538542129267620855557181187499767860505182801535934496589918406325144543199729451208391009131337277335579791933292663989330147694103474066141902017606526155998221980820924200966369831068410455478910103993975134842358284399829971447633368905906200138022023234000680867755933985454136357257640130306126728694255640492678843471912387289951101255778615462391314216162327278169079474467147828056016330370427865767795616726331061465402625495506257713481202826973961343865312944341522042345049497348340558008744896545301644568810522782680443126395765860985392747215642254158074751360620390043874416526251409115322399028565247365669955126104170020510402925445667501447080077537405821527754703335765371185041683013205251774796888781241872456678945194898859517484488633766912781147525702798206985863643998338679667864252248772171600954124251253270362607240426824224832569026472757782297605983953209514882722887750110034365156346254547093017875226670703573399084465945390347621589551575622060335465700005967015441689771135826438686861373965108544689511923697210424900698166098889923036090522358220629098487949923912552413515992194080676519415322869100205655442274701416983976393985187929792715994357914282629399352987663296053206831841914113872135641623460026839471177613173034770419238428101655646025773047513011509598741515844735352984657430798614977140888089424216643618119798625862604726145442337198773525040256141916423479485977903455654393873548419952492439758271362110769269969621101671135002955725720124881863499841910481131673969301690529219574549892595052235910374650475328582389329315139975486151684412684261164248614387874844133344746026440527766061067258765403471542961705130931356153692854096427201612658474683269213398360004328904909588634664776477594926269061214424687936237379906558003149122581253201127781849919585292401425568030995279361687531696839900641367704467692028309835461176887099858931373403352904226455919339518173805267908254414383395926587738206751637338472623061705988649822375007964549985736896124515534081436853318694441086308659872176005295170934252426172938903227371490497050119729266689357331669065019911526508885493008517215533025206083756982604883834358528387485227850567436523775295921741260147071682089905982332765922527487650452037262410700744519062396372590765124996629108712572259081585426769452465419634730178994012965924617577048808533259366494253281622466543622387664298909274714679352020078580960371091192348043951140087481446560353404239683598383985192609664257754644982350377529830152384043431099830930158954623748946933619154776965082189360996645713474798116231495059038496754110046506489218886610992141128694741699105943837021652156228352720697970511773519186049919386273130092139869773634666548460397016652942431760067347424959492337096770225060020003049620089401230973877186331812122480754004750482347932331088475078869026722249671300145095630758156279401447545667740307736637172062489746672184405417918366064457152391034278468567567805247934046816289240550921546515096871190646303461669651882266914472844365585398009733295674848119651333320248415627351157722037003053253627276126294179858238436264726128130313810331707483242138449723821941593500605379194033625455764172410740706095997957625702325465739057063034962351817383330627680096673203801845111440581653614340438952555548553648980277669438642952071457924575652863855069308350153318018868256060601507212795709234799226611332987118657110283620991184730654797668971977087293578582258322699632825347481493360890117516692361794420572030625623922366983297524909294022926754104389599824882235957396632702294554563202835725009807801345048793035343207780595983169054467995767145298086807213529359921011836693439177289203198072745926413834793672996603837449168061244783322010955136480946468588075297386086897686694505108269468179138709716620274619709510819704481769682699888207108272000348936665530006106682963805200524176904479716760476767213152800879977534872455264296080795604041781325473107641501871841999733956942496957170571002932770884048260642106395543983406317752600237616897311379569338032169030303643031516157741426078627254916495584453733948991933890865722333750063827703374808788230408137990159921541127260277328595916462367953362624444335576043875159527785337750601312883048563819150286871731069297428081915495533950551536644870278168227444486575146776580671167380274786474555887841068756205966304875479847240107826571122159203666471069752317903830342930755225590463251179789125534995746110663105225584238898295695411241287222257949407055363308861518223763180009054134114424927782810900961468567617958091068484866384980516478917135057651056911482137369259676888754074983498670313371904159150185907442537254835510592524294083022920669314423900727951040953302134343021289248373445759134771073764305647122727843200038311903072962330852872222134539975917844160056614656363722864881789727390548998111344111980916712835496260853956821242165876699997529799261467853104278333244098534267830897072074703366099150428236961616014013856563822269818032429989231496287732156725926455168755950879192303236050031758121343238732538273710834079148535026255377607001167294685019829356898541317599238343191861342522898894025479231215995853511606129081749241213564672809406791917773829233011435023046088405458616201906328300637262433159022690701202950869401799120776841412390789552092616154569073356225416658756073822591691906757244738628205012949885447151121894760259363228002143673680880595663669418084772158127813056746603019196114750548211193409767624810358875546160115685622175124683365456625648005102008759255645029454141248771293087633318329172615648169927382963545953772337130104939528336578702055340114394075937349034941161094000531391902270211030473346868457169312756671188477653909275045365427528962446919654585917164869757690147913983103639346323236543087247424941263830265066052311964946094747344637645178673014801411666583198171005531513484220401105902830616478210703341566380034932467987803289590876085361781736854184512684196984588628960287769167345626052496947371752310375980307638090152779824230292407837305202185957733651492733090078346349839824026845832320098229135189767095347643278223926822890621341727272440217787518404843362724691970021236408106454616929372706715126345923288563849321905631270885398706514550152219448253402232422175584942636893751876767290517167545302431448976713371780134511895209265322718323162716863057031969701640584393988996669589153189624675947240253670792955584489370805415446164777572590230126582593661013573251343333524604253226350723524021629522082138049065640546683298974681860669749766599124408647350732509349939340420499319541623231380227205245492300618223649640446275698866921895777686913784897019911942907246514354498546319608967419582243461490394854799469895429584517773263840643691684829135514266723783447776740109576351874399400958214732968184435024181666967850461479404396288883148644397800323381935906815077798983247527297913057178087347318461150158853363268142612795038809057950769967452770428175266568474569139737111141964642775751706151350843951037186821695675986275973674266342758568731895034514141506963887619802324739478037289440362691313116480831451999081649910566907752642587847604019804051182039981491918136082568252602493476116627079542381862668169561296722307568562402129181237872039375819011626359206342929073557219059339692531999307694769893923240084348184219336003640541190289741411173767571440240227573497385761046332790703982865534097846998479888312003840697086724449212388723531763176261703504349935925764045339172732618422677558333749403123212114802592357948551480276199985004585993522691391519817521891285716668453344247311101501618245563605918105425659186804173753823619293700248071189640960268415140219618978660040458694295612620340328074064393817711430828676404552784527004928630760753487789363941954106247807955296856319389254178979000045361292697597228763290768141912453703057743673811664034757835830069305391301773776934914957064667118141082239123236587293348968422338804703937193867824661110812396260978575775459439466420234960359196809931323634126236885726463303254057922486247063130600281424738505663726025490606969440883044583058035028162612349521487953194645020430368586398287970588178908650846640955993360596774454725738377323544523844137894032690365772810546356411328150262288214760771744149676815184474791778229318516627871488321043126604082935107783164815637907341498453634816746037483704184240748747371416976096546859733773027029717321449169127412862743806784437749239424433262821873432957296081283273867960490288458733817769726260754224711438999791778906127300064003924235441620384524001923604009520983099416274645693659326643441160524868886809816269349198874327377171322676113721639073131269114281774079271887829539297984511230475921111342434236463295051835063834571716111416593437794190008125619297136423140518715357404126206821480260933311673126788683957320893422537179034357518551195860354258019194642640771471963431390980977397850274682603475901824472508586574938335539952478444956710719666806985863419981317339928466522847538340045018291703024057938671585073154525977406410975708213784524993801827746161521628875035154845558038867854798125387852411115970269097247771250110729453247715608421413786010262612799214133822486675323160157577538593434717758783271562646676016985823362670353681363891837388829345864656977676392962283127581260650021536342665078126349757865514734463354243903604677795175608065546409615328580893534282409851287517586694732294395555259515353206009927225300230001087632293797739576605613466301314463856161468045398778202131418175965634695407557610858101963720324320109143384748414338040527143044779517563396542128408861600985466722245171735453945416312295028573984188140666394593617103176230741940725876328757624485113955190383346270632385794605864467069378636960977058673080624380784627705204856871390158948259029841006024970517958363791951062047047434088213928161358475884551019703524058962033709673066279474120690613234393361391365986197669252870293333960181689920927575229565118948632762955900243961843156719919692848684205330232703910485503630572385044177774551822596424075713044454980322797695192733800200259152093945865304269262928010244604029959540525842111576724753563923325218761079425376965287738086278051435189634159951389864659200368147720555082879116921449133832634398281353918171000859438643265940998927054970232857605050096546728873075968091070035542182401318986422613071478549118900016866065719881075783858706985816216169247635831070600201336287947624081375433205081633029641327690025158957734787261675378443105147699365545743614637946286927489397582370969860604243179323461906455942227229693992438635248005717171483877055542110162759818359546021122985603074692319274513488876826531077233341130885646601006167475396438499835996121315988636711438460618666685893810561821112993989844252966113994362956309175103460441310794655854287305315553290312048903655160833507395489702803753947142826966557983518935273302241127654144903484221802939119895498117221587285470112632519349492913797262110511527058154842989292251558066450988414255747430557560421775779098792736669705724463756910275312070298617119415032983340889262607419123035357743704020950584727927862576678559682247629679979204154047151202994748957222599793058513410854054304557783445295173531366341234200803145678287142741362421590797113306303393083310816276905939571500308144646340723017376371407433921283367953494608862083946887119518794963058881259503329364253576266424634764964042260257408798310148284265948062556063083316996250974620268527542541555942263805579941198346681268649616475313767508812381814907477349248280761309436501087985521813915493082481711780386710472135333091162654036141510445684842059684055091404126098643141336864399971520890591093905998248199213457154664620689795026338038721009107299429155843693200949575899260071726656998999598957374679014167724888374954052418462929041439460835123119457620341094672829723617195211965038893048574792622468680770462120111328781560047870172998705730989577824431345756971113560946149948640669424166005756719817198314287026025560931986672248392116244880781103596520417531542202691012267797135609651210795447347965891163142430536936159548459851319351856730739449042854702356293390906204323692384637302613412373684249148133860222942114678286229202102644532506329413313707156598986063674189876248751072569953250780703845122557941253785839468270919697132467695836706372634539870330338528732846071397503352261816826322818347879785787985891335319829864762228951927585983868321149759259610491836990033712017405339857099085033767212448533153916832582491663893545824358203586044352437479922760599630127909495620703844034588760053903859677340992445791198248704882734708193339334485988555826568738829165177150510480447225405712227031583281332486754396649408454446767999453677121370114266525294694601330358457775502912161906843994828003036451049903303900425816113486290133346289358750910677059629755645637383974773732514099857752233143198780645672994984975253473971172919021333342198715248698686014339004023012891798324175855334517166075078774577699966436873540409002298673382371838049450552877398498832149417654527245937325607462883491069777146486429627327019142462928464578763651598279881858405115024662291870308645903460326960195285228385216103959891137406229247825166065609257440672727385221973548558983554642691559822108866558729417902380195577758658150129209910659547695869644470101525694084410549840604677905944893919669368471622320231567246367209532712867296163745108062635731668373251421104000652774881365568036457766237992702700230707035328089361468600425791965938813525594497411338219471173352809496164138835875930146500011953155625056675712788965330570780312221954463254470016284710716689959784609192278788176336937751377775438120528186792922073037045542194759981199231899577478794319804040629243224115973280021989088534687304267713051177282775681027051306234288980343969547472572325353638417552069329888915260351706009425266558660500903271431128462759712920529855039731080950476450804238212914355559756658788562674125160538826846662310245487508192684528793013976234916061390234425423293001092012036053958484787993697131767707147293894137513321989367772803900771067971747997781433942124796223435503034250935191575982440271980326248371454318269856961105450419908532796135060381050827137420774835961770329336804425402975504160822406942376589224505802867466322914983083989126848322106859032856864400750263787107797393996147358461884613543258632417431904511986673821059471947924470789386966433315221089760239361698023039332301646416295472444273898997670407458857305312300337609738535513800779645950070348221023991078101303828268702233812744921663294956528968625977962918890543942811164012225750196866362702923013784340695426379290737491691534276893855117163132143355310502474428832954331133248395817339066616865660450616068586075696230223121491511499164980202321528512672741355372832333774107909809787918718555836610537850202636680685294844186552562972398110636221643476689975706572691141550690015908921514423792303740331482228561422330251160057976078356497367635855480777594667035356728496445737540822157938154567094400387920560136481428598572737718211480385085284022772641056391708740676738291720048258516348059042278927024197073712520732389884554002499279435937684399378330959651631644014224410854703152439806232742621615531811739460350334181406039853171569416200236088296110804942392273878505189696304602819711354206147378724681428160849717187293864930830632348757880085070671123695322695142223526228061020127977592039132964346025763417656497861028387252918151387713055731309616856566246269644450946759263721923479702688609938373908914774863485855626547255930770335469789123957395945892387876959348887403749450715566977979666404839364220850373445387743835388227704454811619213787615481472402303895920216165379438289831955444457437847752741362603037300417594871903444777152339368080890277798334476281530975610177849198616636319065203637056134526730359827810849185579394202727582989567300692777631920932250763260906283913213406684691519091037113128158957424226633466591579742058730993258133621317162874618225116052390998591986268163034837786117519435195616084170443552389653569933166590662743477535458784668443560510291626656474947149047691677683573112431702381415172864059498127122228932257864375604176970728101957485117095943195087088142673014828087958192500409943439120410692387178745350472361476889481054835369898104247801577809905153881368324573080866054504727094454959845351630443599922841131138634229372899798654856916123571115150280930421953180462825533529608269020600660723951490642544678769034500510795876980913442980351346981404862128374781425357261775234957611132267124256446698313927485208801174055061743541866139097014415605475330387982325601087369778829037665718772057498292098752585661176837269540058844517504594766733849952927814855325707261818798992813214070660589944849400664793551446717286640837403431176618181343194671843951120275279801906958899439426243781154783462910054467813194442631837059490241804916346171892501608850440351785378162390056249405333407322235514305526468228328978069905902900546761626621698555916171400561468005084954537034157947976997178073999527572590862786050843317631900398078478178482988337813104228435348374861381394133553741133810691954465989255124951981939209186618104346788220038608473354427132913819137794449379955445283391977713211724135638061383032855769920848474743222175691634411459406355707136023759744326325976443598169683011772168210918852999133762564557930797414384130580435273385154258308920610691325917345785238961674733534848276517215953706473183498103411847791743559807407801874405390991558876993957098409547297301195547247336745848316642292140724600272751352228283790471000312473388473244006328053625910803825566827974645753146032964882355911423108483760432142164751147593409794787207109235103877646026258088373636931677686622804385754546905723882059659292814048939921831048537841718705513696969082995556129547263677910064898609183533789617779538394716996637499750044359613400024370009393120700904759648376272356807710121978400030399180913165862443737884882928202270715006631588558864700261070969420004769459506752479064454220662229436473787918432057687318301138965596287620721278105502198548050062866908780988341860036500139126562833317198472076566617086248745447362376243802554966548198259099904574994616974130343074148776896969205862129073831447871106035494480092195119544904308074371453360952996211242192468464623749200877316877834149690389175072975184024768692838610837452229437590316569630291057779097621508935525391626624621549625016863353343688384438299627148568645264390196280304937642307885605588081649155106860986263451853245758568295473698388141474082855421796955386440969242044606127496021312708244177853924052848390716914556826947525848960549515676793980744248181628910191243202231961270438657531442504049519603910687222416262991948797916667479440213719686127407054885821614808383609249012327163279835861327576547648467324927135197878260752339191922356910514247116612809016930667428828886016083373048414377738232193392677550281823904218228612749201895501868011245334198777265764951522144120490384935503304393278652297408058818789896699920271526753428197262241308583474489437605390389161626823838213966001772791751495223353732939369178781847558471788288657810636533323029074547552875103596811774927121907771905339376258235821253337635609835205181667332874129650557336822587239251211696214233054115010877418382309376256820534817994616112551424562189894026186889283759161445996626151033453686779508281670248390144475540938082252268981382096259982847214301216008546085774946380295103209460969813682752824726719244727516064535429941045565827716807325924549080741117152898962355562535856265352205445642838271952205440822658167262765507446781008790138459182238569078542349237615387868206228960296892339937352865181688619768081465322590202623647430868200596224708159202409754181465976538428567468333558539488324391278242833396122705614926133221013177811833165251574277561886170135834516416785955874743582715564400321664170377821296985906745841460763159222165098132481483758099268736071419998534584583194349806606682930066631602682276042544552429483054507921207172117318269909721780758268058554895346624926334244820067951766689658337332015667049641465218022006731829421270172701889931269382629870972394305942670869728334141320896569512201722178032527252566819426620917379171129020496675406484626065611213381175307619340431601745568726356253898782804467391897775144972646346099010241567312945228604722203081432729434558796056024528745778665195539754762065386322902971082984037541067915372835848885529607294006529028513192515476356753437320841233802651674042434566719091483132927363744718115770356943198632358368479474012267017661263895210666897504013967105103809914428475022829069594901605022920355043333409792365874188912816184490475412677090186189970650300319513028010062299124600077857047206431263291087931207013267485410722430836226609362337262979706914151963861849850882413440035899829953338111777281545409161007098393830603118840248613449156823307744131253189684285590445128506500326724837015027227588077019478620489279787414436513418100867041702832857929043081707840276714011783755931462426014931362473511917634902940476102832944494645585075989592528714441619724688769662573851692015938138929517335084878135459795336822951852361380485756787436093575239815249195092931261988643720082041711745083114824987110050387566320094401882538482231165969600358917948201550727931114967841732241805162721753971773008648658102630266818644580665159004077620650223406707603343864963566854244665500595917751532450051807112561655288245191118376032233072672427729577282212513129937067218538656220682970375558233235432730473306619176910975535336578285841963517906098549416732219832629397687658158375535516768149702529601797934749570277090433825509727891053419231401784251910442763760391997431053799717952739369472932386847919486265578687505541224584961697785248295700169579563207590315070422308786871302211043804666854838359347066694887978048058961759707031746163950148620543705909241435330637339187448362754908954982416497744343754851985379793932366962576784997762670541388961946768592938238074687376379319894289030012038853005000346627310977653704573926068861851908898692988795062134072910477865436511690834170341072980359887108580082734449330885596594186379256657459423163981479816334987122145957506311725252986932188183978569926195999958938181636369733756461176287103163264913976840884384524857979527289924330258479434935392783546948482391059414249944251623355255210790658615190298494147940812875167441533146033689608265950357813664638155139290043694620142737847143784326358950144972812456033015192479637157690286677424208053784083327980421556093040870987511766659097205288696149113955711937295976998113045192343656927397835435743244243557608260919379228847948742481562379008415402161141761919873914538813550773046560295889651896955987596463344438434590717814304684982863478125782435322101864306933250813109255153582828264936920214928196094365255656960189839825662640627984481931702143379951068876127672079874990718450838740673132854377928803782474352274762638771947340377476337961990623582586872499946409738465540384880628068057977343259683563060597773827248326821284080286302715282069330967526963848264090906468505441940801704267368446938535651032672391033837881898293678273002874019636834792754514595122813945540348520830685090832579299909674527434239167182030794577929429861050577261757617195940106269392598497580081478549454643735610320493826668464039151581680381416454128413707474461967900939916568860093363100424464836060024239631303063875162357313504967910950097977192902491934835972997066353357265800436372642682660875072685227411913793096492693656586603460997761163948424598260715788553712486234916493852032097548003323122866654789098081073276836890457464195135230721691188463186219771816888668772567782689935876905222881414434782110771814451061831924468199933758839506010341328091266928130376182770935858819343841628703486572830494298869170742319638684646324214882453047318282822463920170281102560938287391038743052063853974033100691265473928533907933038279336169760994787546280305792196283203827986566822304264564237041294986484945054322798447528204493160489754490688791149356110386541925635094733743096893954806235663077074878649801877239245551710250430318534132506309107677347203215081393783787529078525054663391282662288661532906180768560441242276897559199699807732395964847758642624569708935324086466401406470735880539345585023887767089166770053395435761720632585812663464267232952201419917966086981690662366202964072272576519309387117916102119039928683526143545218965493302896692174386705500090974687717511837250846871605933425227195645504225611520268503968271945489637252910175188879956932198427932604387143582412566323764455294680417368935718456911493052313591138785566611020665941946445547625896285141959684547057422557306719832931395183910945048364229265957802255528042741815811265986686325942536942813460776796416173310999985929437216691576541623169313896986527628925445824680319772631416952669453226236582929664291007314065394992539262070537229077612335274451798491411946098061168540329423419505852326726874938291639300961347418319458635350240450041470259631755114804284729396442042798314655003230971774287266585105107586376804470334254133784178309012911158095189082049141591412149770203367333133008210871395366134418680113632627003137692917823251877614106914216078829575385828916848177890805949470475854671755106839560270550939318504499296797269486709129837736115478117975771253376924899192010400135687198813556518366715655890452460696415960405564995470600260361853765057101096743342827007136452970378234266799160217582402019408229568569779895442780368594881654296952490390766094055692923341663532079612804526387098543457496246965911690183565148006030243878744339718331134547817870213396982499872259220534809898048203157980905538882357272856911242989097519222602925359270837509226407383994378740739594085437283348191236024566020137113959065106327214454244528266144016670415241024003311751435263756657599221611752893985949374547663821014802707962717367285057437347421900195341397718418473320464259021774577034116707865655145835672008203587174917337464013735499506889195948759111175467710459977699490272505672980778775388507575707874757632272182830950734595166347684785998074068361804903000463265877371740352047524622008184339212692523824988387326051596832434159737276362814520888825747937395704921692121418443102347672082274956166239622494101013092078403380820301951988808974496001201335829401891338713504330586029845045457240470351114363442353440302591786494950347120525802678243099907257621336262334644687708186003660160807518239617928263969263930979620907619011636368218648203785307710777121752798461187508524564233393401227435845212524820367815675140317893718362705756005431648826566259144311175910780916442738857243699686339759240618404644469300874490343261145458808544380201074224005828373560329841641026622083529881747665928096093761579087196771775553747439518805075277113313852444320805532512243614811287485777616059496076762956306867599781444723450149563542077500024200332542676852627986797556884783415418274116842656021651573111344298179292078607937307980728264157384209987512259159674570515487503496433913456973490342145158046905156432977541816096462480590975961394434510058298320122713883881590369843385074903339707424590899608632983557274976813634861369836920170169197868503545463037668852748318186517747878901969276631910614363123776875476552380478319085614966590368606624669053277634999514657675723521266653147415003811556023973012542567203241315802987041630762349950150233547911105235492970738981749738849678082080911045692276962111847316862478034094819210162117792589526059229623937625170767848585442863288433653609310027599640751343785721196201425706970490709832562175848280290537609890088103233309606124729896818366901352259499389536791919104375110280092951944203834809808243774977596719083392930248401324647486998951741483212879045583098090751900631315738913201611789666767985792577707151090593664927283398381240896498175003486413740347240525263353164505638458134195425402278421892317943485879349186215382640345378227984879986496071856378506894855324245403589430833213563575139242899901555941911314609954420730003467437182283819367467714478328806596573496077297613977620518951905112201958377931796014300946963129496287635123395209940828607795283150833099065634440894992718892443154763212455928410882214414863644252641459589070269806454518815830776072663599015672606946802281218902586604550099014713530884884357896642949291906403525064827713066436875138195511336889055231697223084502951878948343052640644619215137542509705074733318844186822973260681701784867824014533207495705668042987476605818465762983386827240513645435615659102864344647669340469024354924734257858968316017101880519024219801104480415050691117501203368539010294804017886870619292135517243573989428340399682745586036624650288576575446988867217735365214900318746186981420678959379408844255428566226850135254002089910610162488140222467673926755304826663974163239222506270864933010547339204976623310000233550418819208203851447613153880940277287156776399044734580894413784293774871873800644121537834777617970555210485488235207317850470281282913807915868924816260452719287439647092247004524146124928018452386170132532396575300429319871728676134880395536198480518592384449682009977046781661591547893454494292837407950450150060423605184616122417479784943993684182504872839578604693903092841027210523052062432068832305862077157779634800633446492861310758469142738690774102577292157960564295912161306781716668572788428441089064329639169475417357062178347373698772221032678619949296738792081605686339602730947848910418243938981065637818193415089130672260598281775404924086045259918681508493994066207608328089678608786166156168675619962127101523916573381949483017523122440015074999773128552431936717876182742751651479453028344850032797416772723889557780943488638049538901934060228409299086874106725108271203037054180486085232337905514373633126659335771676908084800730390363184141754502605816831131460668821769914008869564210009088718124823241335448815648101518395531727129995751029642943379745009679073482670501866324878611871126586006031671285861226254663561282466213416951995106477533936650028685722453561274541519550083879572937792172115848168697627178285269731738086889904623520041549938617968103012798341243272236495699758331752304387599587715693108095461782448208962309732824150149006321869290196724840051678553088878260340746346435604621014044307689196782923586807589670740013246579467894846901531294681480087530998714678137458179773636323280827975636627384527899003183388031336229911781034392698387971286067777462739921942230795299508757911847775879483099985855244744738828859807836901711853592773268624061247100998343304791811913878295387939383331665330976712425098572143764993376011068384559303377363399700938021826318312412753492919317139401200708917954682024858926256496781568463464468298678479517545758498536367920800467730320664493588818240853741251295403863493885805768219485345412264799816828716738191560381976183796740690973854253176375981524633526443184714578683648324871571979794120570837687564092359376745837149209554700661637806650384544470110137194920330761340650026660201793370513611559565824411368746344392162704404768098627141150963350123773148654028621346733079876178851613083419905363177448432615156243049071065777835207668513228051350599482263545122513184750068743651769406974965876199213967053599632771310320285180659836820571510108089184966910515691266902585709297437326472315210493663131131123082173427057723139351598729262290273023601293427141854768570270765228252895215820854685659140286570063240661796344409241136908290326534802707339450741854548382361373331122360968264062303000295048614955351551298197852910688125864766249592640755980099001996985372380100548734290764929642334066445094246137445543795606366265874043339108271208793242297350185732484156221940406362554680796653079972625330428607183366017266807552994463993694761709549003244961382435201073601612558839353778022207438186168153425099218764517876071414877622158539163220383348817453096272507333830033190546900810888873273722372688294602340184163272139984804478129715169988055628957221108656539973474165010009865208914609232814282924985729700246146954758966394976524606360309691817794972229615636221088745741158536352066130402641934869782379377227049571884744322677077140930011210458331455229577694102364413707806000247084823153221175780600716059657022687155719650892258166957861830257675371388448457479785367783395544410664888481938919801179765644837954251499205179643016185349784252326112904852739104439189293057358218432170759344569834844588993275344227739408152492968776319177611580929596848761183045679439294288381004050737512005294898082264837911616442060757425512978042563286394722721737607971484042223503172432926178789385418881302443874818366678454431735663264377233312324596069547654271529061888803243085230945105275793939943486322748279573685823136451314877158771565746318587176238617158592542235975786411896534288161225404660658021883368977821467898830008494359587742809571388782054296883561484352255720192386229581602722115068581586166463833118537256046249267519174533377577951799594398275069070621929068398722332284872373486319004324783203462983577986993179468089889299940417162319935725054270695702032885791917988099412892892633695727433661953022040068887002996690745346128936019534186163310672596947578350740551601880750489991058655454724744459263062889025702067787421794756077445731305129694410799798676184279995048322343993963888062012824087955428819746975063424075829665762712243756738784916495177793796805192482421435229147973605553894378778111785204463181698304469948993379325571008956804485748031197792289185189878165657654006994188387417167376624706023065501096180750650161148339038736016246004135612662306350901855166245053573831057064087587588697611469275913346715934469680927840815596280595632038723507049837136116631704241131382383868534779536230095504392676093743891532116309476976442560320172854335138196656315132651405385836023780073959369640871896785627756546795258284508371575063870672123955266960810338614366402813742603783472016043186358889136079128219274893335440683969089516229071046575262960987122464118374275362918078915669354299421377191051044864122923997253121104187563786326170591311765698824721630350568196253964696409792786951260455973085379295595192313255798615572262163363619966994635128289216292939527375913412443676194376685178076035394782212483728829798683218576306538917437757735620345678155629667634537498125600365814656236948458609044149276591346958862448225789137934589695672810476415519595954132617921748347671537465688729452990543653185453385765466390662208921185854442395893576965806351238065837774089446334302655237451422536599029169397205690124777436102521202654330232938055210062650340029275724243603402906803867389006835734951450801067222461425815680350260607660522010496409606992293725161739643556343049463255266244945888395052711200671442148453712694043682415519324039357937998886392886433541515197922810066654202765023318053878038786599173496299328115890463478889659575066215706388617384832148588715230042986830255081844872074868040410588364862541905577866731472664832186705670078599125457594068456410844546952177042287350316513338203480960468333699826852265313404304346671054266381646770381987572152919070039365893378440649140022145740400648090282287082673993070927659536704839537859898562948477070099199982877058296383553539934574684092113499062649961563636560282813976753080750263959850293384806502455197192083065221701987026363407011247943548418333102318820311890609726887490802710781285685798823794267893209569606160003418764996129432465353990135574184109036897916111097383879705110137471852998837513558540737998594009975318193461441548610759866760032952743827243763063317124165325615226363473795394772707426303017525352677722655923322691964504413856336964245713272282147479995227180325129060753029493170786647989088493489131406183025977843356418927850481738720652051848269908477598955810809510733952284476043024655974199820303328423688537703109175752114456616702132812387116796360671221802149199184995076002302465148860156245074063964145265245874038976520421867374116678175999450082490441579851467698380847298619514882385488718571176478502264533521396479413653841189448182907264011785235349095277063422301625493867920355255070777124761397878601772444798272942395173857457153082405463663669553903167479968269877396097444474935804830140601540295658674060591669363206237287194056601683679464618980993354023377502248674659003055918176020990530944421317568224015162711954710877923472419962347375798822788428218489705626966777438518390802548106456105635540503778406840678709694390889908263339202390372404574888320785387384924044075967985130198670746695332869165219918637088294760858698287717006808670482235220516864845322045837475103662663285199053422487490230185974340223860126268306315457847184052230963658735023920051229606041393116356300735494448259765516930700456655824199028480506840811057552655962352282721531440723324517162407431288230285702517336533301541593394591979731256419739128683591649110386075147692386399726067695347489035066603421379348688075414275857248812261869591026125072976050540806802359339764998696319319936340912222781156134074274415679378788373005458049320610353231748498556918054575730931214815669103973739667144903626185810655866199243894110048123163058186175924937291910295585886977254132743999077896462519338988444887346795357171508870375312453796904344307937320961987095164496170033030301674368664955354479946142293086202492645689579635947852051399911654737326524921348323024660464340880067633327335210599517212367009237054524580298382351994448834195759875452800516525956674777417149284334615906962971312547909099252846961414977871809096585169341832781720155860230362721769518956314061223853917860046486094757205846553131471949567017505151310073152409912091032223564497089362168412522855062577449392874066413410009719599775875576199368105022244097113068098918424651106518171847803349518144733885280721648461409357329339201616865314910225211491896964786328227898541166652061930449803520926246529682143729657611745143477914184944490174539930373512244709847747493195857746922816989807400976253703153455938571139285737342576686622468112438106141806509915941381866804198425168262045330903854588053696517169912072770819165289059852262262262348723103659467838055336520096217967193890264746132580844192243994642445768807204053040137455461843297252373721208410710588850785035369589357841446420165009437593726121223687815683979277323021156244319706820753085915778043093300552636514133277027930059261589004482466901399852439204928079162415205846109094737735470646292431647409410071461066326293652345344722264061850312747905903732993541323804981593176707026810659955209537583243604968797957791933721573816947912042946026829490352397652661642068457152243138567109857154536892587997120420677410965613142729054790720588014812094643536088088334685977731659588717261688963259743194343703180629765306634191935824507090931565060215033133344530356250168548425277116085579235719902456129294481166025594593480083149431865154076933805902883917278572321072736726462641991930674983719987378759632952119056805434642268816979682321240263333594419400634709763218631807034339268739101746616979997700348395199610507813115906020980450301777210581046328122822592419573866460829181545642627099909893535083645969445441328324382021219154418675430417745433241992786587751864358087675823716714576582691261426606427532855511796706305761834754570424587034498665253537086843930646198027672760538540199997894067002254574803572032699903890277805959014202240994006200390570573048951686311913943665453694802105900060961474178569537483344745791644586778659600826863914294255460844525650776537278485388152091526043967968673905001594731756517883890336553973004110889339109164523037165542622920408301918379005303513790714899855799250097893423309861203828603732148604268445660144704025357427072754974541600615236106752711428452048713528660053028133889326250980968920759956247008532257519800020176786394674017566170896188897057780217027195607784527676738852413257768104551563714016948351451310647727102111325918298478372472638939375135903016572204126026912746225976122600560496877128998668454268054190094836863689163292823704644745726982600457971066073112417061527302124830143774634698421604350700135953337008104230208359568993900503383151871348198865824205379540185047293527739930562598480223208723191296333685366185322959225903183799864254161141501322067970701475309398529234552957027849975830212934288478617893087347341047693001297947653394017294265163253188262686288484987355385536007198532678110186823774772964098403132850643084573223817948781198580198845660146382456780096804943922064634057082518865908884172042296929443490123060289735124941055300304482420034173310050685919666994174747130462679063860899880556120949569707506469152450583127857988078584993278611883179976232160942850632398017702149509562750110622328219787636457023423099913076786314702640092378056397425400364885944185758959015694769494365718343675838341687174588259913359072642646871840386477705317484575772329169084634467770589929128146263439414149820356252435092605287180334034403701395687921521615295925222155268985465003488701589606497520232526018985369613424721224691388501822802671867633323931590006563071899234876426005069304756605131564283119998502410050651155166308995448799473181753200563000069202004892396959878123638956482539080478979538909809940066766854377242359398003633787241101664714742874487450622823695246532551073451135656674696477508173076362767823563067237697235228772992079278949638984146221879397429792767509209152539199103089339620730089762713031125380000953217477074145384655275100809946129350722905568175218385717133256264411086217942516814360123253438911983641765765130916554853064040484921470624930422716031206254089950023910420633095258999768793078170226857075319229755335959432528861405176647422280494706995125563841527123851328008928731328576170005475890254274151439207954715883169354752285278223671571508561744310551915634696639208224948234759074672895939733689518745025379238397175100849849537490353953909301818473386858804785430801239251923077866236971374958392765536515596304874475014452157896630784833592285169496595949301075898898030499882829959241784466241305692113393844861761564014355656269034264275421828180345619205278478670703720674843866594531743295477451994501346557830684483485645557243290324200792703139158503971557762095506752636594809060149476476979011108694735221336606176477156936805838782289833932271384271521684980458024725660078728601381787053829515288666993545070897295396987774010477627451482835309810397768033137321286496657899760707385160294792717791992823083951364948805634780491347491164069971487297882455524538371094888867599827591686028383441915799755238489626865209494119783766732712863844210284233865958726528071506470449624722020187137760822033019792560675403448854803409753189261123099326848488100405726923246757543430151286138439379800458584700256124278294026639256652851453618497444840588561825929795130160198315522488049206948330189956882005066419231263697236435700381767565473230824352778386133821251895726597863009579940730292133554428824876307629149830841725741897950547841941884028277975851815683851121385423128176492021724093634451226394968407552089560753044995018516815483487403120578656290526876389608157551030195414823623509018908983354962356522473380880237074998891294950557979523040151698858944629147179196325665794179625761067136464168430803156517389426275077400611679626684469728720829195256656629387630892321844698903511294922856844227277512573090386193635036039854953343403267598970199951124971288298329335442416717450590553441925329406507196612065573524621757966764404840259808790725582009312554657719414412464317563610255896823896992049673556432315191043080238444176861877197071004259005112107125710584602627882287536590057317771010840124958063201854405956005091841514509948963644750765768573825918289752905292926856812073245993001257285541801053434194644391138042177563014394590958847347755706460928631814805251797254851291018948771702100731179450707862562309394932692736412456236479362837765999364276378821317375055278166402739372816605816141709249359967299480204058832429270191933499122179866064447856397284744312039221867038908112331529222559835714331395894521439676918441999781222191581671552751253650973343020985398817315927399180101170662072461710906693258042031646205498001643874481928608014667003910016721261457780775885051497788816971471287051171727731162727233895582811922469177493310214609714382607522015822284833299472323873726403496580638031986404097269634116434186519029184478930730225456163114656972132737700961809463085242868458847236944905841375569002840209258005784577951480073543704670425879924366758098191407716883089980100294359798058770387401283935543967120830481172101002055196866688258310856733943996993303432901129969963752290959050921756029604623607586331296734765495198209436574377371182319346347584444494287667610454531711395346227418725735828995165427322762125521669694566519806472817202636771048032195501778798287836026847999655871852079607642498788762328943000913108533227484583068713607885772088617851373828697732475952851679206520559038000104300952725744756609209365978269910620359776729172809189241038341118646425764042766182208927899581191360143479413123007729786722454530508904548869563167879205213493176605173492096894758566770051916727746978132338028745663447326000407029239401103117881446879042507056796306736101231785577169276900923678728475663892403923509731092036065502622050860860465764127916007482907773405584525527883484576199673340657193752549246604837207469041195124297566077031199141886907630555864172629789905595427862898979614900624962125740543067929401477682666740997421888996805015215925561049747981073380032835576054396992651845240353485821498348883800471173052058838494047485582697162678868209527123392719039911275664482479453745953267556165891190985219584389888080258994878200091082449572945165519019627428909605873890002665229486454130264647986562894445552694925622418245752981564001929076491463084281226371285877007605695343472365456439966909001320870317069054263626598433463752566818956372807430540019873908902108423691682444977373809240673899306158402598335455314288792172067738848038762238546612875206552597075829424215836017344090624087486924006809955475941063629773815856757760131819114602622430451665433209292109819422619815965110756602931479692201808760504772871601344848138140916345634480521502758377187887250944169004895836827458046899881799042783906198351345665505946913391710726123743609423550311406220643086440605172201232575083690948620443063860272995904316405658471540911199172750395999170999340983577893965037941746672404621886178194008343377499617167373574383606467607587347568006171897873182056671269470193752419672766295380762609413989776016155329112303952414748014999127284849783066485055385506152123911657937349867734242401815286263138504324472901666318116721616002705511744780462514827649551223718159690293602788374283352925244011114732145703216997651090774211544621458220827484411090212904880450117724845337558528465219316026622163759430363105452154326883889613278475418838316277670680475793900043423090355684798513889216422044346287815002004310810242687244952865942264790667060882926512561673095838299719192787215363908931281251552327472720281758920378337678936593776586971841002522082832121094571410444971443070600776397523836259757485951865054657445913865548274706180144785310080797835090147872729620621688808001886663834002795337731754264392227359169609514395323118409177850803575044498773772571952062358284933738095850352395598921613229571746906831418862472976798580023869018879627216910577460454314693615580582134304484548761776229436582496673260961738988370607279737305160710741423459691204508631752083813468489035142193987332095777185216326710573897671624244047729612092394756487526380072745025529793284569365741621586863451093866230445565726357634818226911523035477775742323640155128889355501561637688595748495173796637446149107040159217488370541351252712862108890619500112544826446535530432234280035294796363025215721256731503315139308823164453853949065983363420690842645826368683078612187704320751705596722598072202068347676730475360767340475398059643558814435429735799178141503673904212250918161763607497906352041094197280682083115566260946482383497444702346830106672030955042971540686656981031961119029670165359735283462560079136329297737635300463995417059858070408436210168920388434994825705999208525340066288855876238626921238569677513218721525368820191447008532186130283047013192466448611550758689406905795716631784207318353408992654721055375686038723176668534015966950203601884675756650012205310654990069207057053546444794401743660179893320871422673991097337124945320421155611463803921496614146828955900627864520704889987320172373391404697565623871725342067806513048902026695001917206387294090144121946462089830174622263285226747718283201898532722633998264010687130937712219375627426200295183802738629004629264713914502268581923429922060174673321987592653003456645646173751933827168809517147985677550179934727068466444097498634182897929192904731291549976379759617217903660687871313279767325453588066781079332041060444436109912340775624365443965190235795311293030572306699526364850263282189971051922162416676564013107831165281760028703438604398041515214361472491359380602119493428190922658360286766028816526389739361042149623124487244412656601666696722860440124873258668690643073757875868995873608482848528728206258041805730649596331108372984609494597456804768840527835176904029496418611943387790752534427390065128001468436560624555448038970121201757173937173171498300383489565968107324171743325826281596073981867373140044783754886098939592640488932577433809120634222591670916631432929018865491855230736908340457321975966366517825097636406081181187178660814712881426327000691894095012794212977064117278799833707015943757930777944773595647333173601213464869495152572103193967517586639932388155833752188193389428399226109001911450351833828776986656796752972440289411004547103460019029114793469197356393716244494335956206282775561958319137246788221830538074804996410772109984633047587649420307154052418307623204278891514768407973949669082511655934968794245202081277666992043159444877135913764596296125360016880559436012076769671365432925233653433064434484027696377938280790290070490888688654185834395996197452727973319232543842763076007521737840487230916069214417194208545554438093368618376471698838357090775657172500487639019077998901572204818495650751329709751544443660085772054383466001918624731669342968274723486614922587292423440724336446443775639838348587478719332711449816607332171930348592790710463260377929510224953288762057558730608411469431968392814012059059519323745866325312398406452593623734352045978358289357587469845599081658326531041335449729250369770683173799255124868306824508663589627853492023018890846717455490638189417554935374938761646683910673544295153470128740422571994090115102540855477759303147570915110830476746890211450422182121274807423447603285047603405713793516877077131614399507575512559255830040017829052845867237964445879471702461362388371481049811789108867966474734154459192989767159856531036630478360474979391119231615460286008928050447498635025349622366958917094413343753447550204506078080101813646743974538287488593644541184267286109138240779270486645493172496383693460337190488474526209086460859000231984976000733657899587061556140859412632655007772858081118883713271453287786808209400300912754621058838531179111007883359656889330836179575990505484023718019978223948498873849838345328963239995685251622493278638487259294015827998645536993128554683003376673725412371804238820089462508750723254788207790205113009101173440248895039820953977932017628703518852864046721094300429726374743235264765796258284396495516049018484393243108863064869532847114026765058692705858589946589797026068961017980825186319748115176627002431311230395452799728536207913640445632009363857746945739221753033646576293413580311372246757331333967594722132886803862184462395302596895824180608740556067376776095643765776780485964557710461250688462794100002626894004828496992900328015120893007536556474046384682217683504723596915334743394748543173935079055562565152854183104166052487792896543785014216037684784933187516685528790007850927854485964187980720336462727396894633085996091319737006446250635440159749559293191570816588884485290983609699713433195276510889946040605404542883587467262652776073155425673954976482611398845429793917952255451462703392040751496839305989492977851183222016084679276877624115326714938532949602518821242537704239153307052983406900527056792325308921161821126074704049254741010433112091716124768505445441837322866857083743593937076203207156699673600637330267755119756528259501682418580153643541946223212026361929533178868662204127220885518548303502561025683629504403876541337865871603973962323372990489697651518654370915791284424516108738580072407506034890955950931654062320430736982583149304409660647720576960955102046016967442061955433003604181389265367720029255377213774452815939288814383761090966679504342912823715661093537592583642737259608728244646949236414888220664112301995025213239683166851077370200439510598314291938650763812745096046406091391079286720240824398389787986619746516914700914772415400731768157247289792706036285348928183915172213005230705158218854231155566760632588913095778475223144861718912091921360275058920705302997234880247665746516733726397234109961495797992642884161120558178816319157958542479940198768279807797138126494418556112979682611628403807016783632936212383389595545282406096352045935574487799428996495568861308883469917058203694257668423460868415247584974569073559088351365159347696334395582801741694267559734880006464441411184337575063068124693109475908711624323682157136078716742131338021548015369011466122578945610585237443717286135167823607015413361515067635700320932129198515514152091149999800023055361224608794906768608279053433605939069350674704620742731655051053021384896753621932601303716758793402916283889211540866637385542338751348682176795909056205326098087438124950157740885419883773594122908377136846594248375121125031440901778442934229474111232948773462169251276011079187151921494279744196669618869591561484126276433248255279683716621014028046664440414774963428664256014268068973552276867985949208987429290226463038617116578485082367918696031834326194576366008158067352342245778467862855713341020894891648923223036531375814483641887243593689015563960648995240984586336552358626102399988654209259803525481180233400731931260522120999036577859816811814061493373243693370647885332163949905987459303370782078871179921688928702734890371614430305324567112906447388429894238390836991691134249017269547880769834467325712188163424895167930824113432018187146710593765564327522158225773722964148327608194836992413249067390209654705363560132127306317401726688843963080564974563435361605728070049897472990828531685466786150772398269335344716306191627076160593188910245584091311097808998884428014002203575959269196745564825379083890678585907596784014311785914024490418952688431683644114131659929103253290479233827171556403462647519243976695228063410499112959520441586148769445153048643269767090288182437338444661023260249415976180918751406924547463942617606108160276741872661752000747528242534189882542748656093196839034080274404709006956270378021184974511693957940297544167509402688844527470567425348075629989151184686767161179836645780079243354954065854922268070181330087304126971087639736828567332834798740149891689078588236618830595660688547308957399608275446983782764001617010084905435440703588534671840682738278436844055205894657050057568864735590014338676219958653130139752365744525690002309219440683540992010819829690358733217223227168341982718595183326560140773108616227234662885354645602553245032168652236675069747928055969514313686963087538050018476528791447911494103860507787293943023727155019161611943509981015304465456607866659234482687597394239708529954393790466651086981620592318506417861460187788984144946840729648739071636525674937623015392423152389828662592218443514258444074289809108629551312318217217304723749534548395073923578630386578844174449081621530151990825945731636159877405780154490639198041436467776604218972119338321421832908214350832634119285731492783718006683897851902859426750621910327950209009422532541919614042501609282625886980723597458210236448995118887299537459182557424797488146639733174546102653097534552446751041071641254625006460023498383857819882037898459319054766867375996936052661932465251502088859018830208405468345977175927064215194866204646885088013224614756715633494917709326488949533999867998612010152161805241967213826239755170922305704357808041719749351647850314369655948642303856338944866752365511216141974626863106356768068588702755853826785404011530520948047825434862623207966327219401512616440116016350153314646777885787250710403225091883875391525338606486288696823548086605482042464450691646035039014344933750045679468954081619654096750759773173800636472658746595752788856412590730063411201211777407360336531671125017535476236300455425257566052444065981860038070756479386077364646324286738078745826704579397299371338961037069616940562161472253985310980480467578702289879937772096145586178213213390362789482404733108726584495913439543765328591050461073283525332800675269658403682698402464319001799872054087886341788897993560088531819545524559984862642606645083094825651502163389405441921860568559366833259575701409583554302390467939365409188025320339479347995196296338636902743982714433890866441873362538382344971501868805820472507685745192495628400158548100444491717200761810847059965280903375193524055781636057004342819643122775565650682672372074892019372487438889308717408037116120290555303250811463297571786597210544684771026614946376782875613017434127117061260837539988205749619097384663149724749811970973938254747647586868840325767546737853806878249080847772626577382894810842713943057388830898714742093866037712569307908785178863203734475263187772039693897156217628641198583263248181057031490879234344917833664150772008646485240327912040145915836508845855830185047043955643923398403383067641295260958189689121107107402999109147419261683857140636489978942997602911683140172543664890761534599465021137873888486367697413706987085492782469485415532144562863160801608558195376425715546861287232684249563613025364765141875258106508186530631217789707202838584069489832124603161724209045071373193265128982447817940718072643474438734666100256701620312246947644776711644918253661305781343470711074911215855680098329477570403223310992701769344463415069182310581294913892488527130567454173302167750648197245051009119393478049726179635165433755444789579154502197685705974820282659533100241507145795957410908118748760101016002889713565028010281386848167386736042855203234524456832214499736006881708596948434265239438757272042004564940604714660773471250181670285281683660509540691456024753832833543123581647521951403906704471223834442518989298317047343193927608539260328977375275117382098696088448728286518066349372101827356847766380122950022120684154805110668111243384957107841333565211753741925356526858746289137318090537135921071575205516861557256595161129919402940282661929200665075434533400510792320536679010179496108660782845220004114634270328192075297073840883670834630160275214469939373079189001883705530934736873470533776850989796160549691022482070935583407323798456883905716292186058567407260613795154668993565712539522238862750109331967744018516807957597572379910216761224655837388532474545289639053111082370442934359671019979942525257827675517165291071349852842464778805456754063873651076596739105122773939778121300638286980556121411868683582450370389912583433695976253949753952319369721172619550270964691494542502816215946783946932537924507197638038457314640905749756360363406156804228126476895725519050740384054262073594279817713046041173327944936975714685405593902535117017828417557433541184423042788098976319407773095066249745434891343658077544635588183720022404257298345793722000405384500692477393847784958456334964507083488776180340366554244089632368886530625655373978465457433201329392082161795582918203595106290344571407615096138997281128630201810023941885901121649341219963645160231326006970769130453593605267663383693778563887419570483940160164535617718408280961216816709821550163656025103354014822325473744601499839771613640092131895569439925513635481713471595911047691147258061389597899490018320202165697283009448461242942147290712101011827385397988640825381299272001892991713800307096775984696267908367838335653078664625394917173884166978766148583256209866348730734744725127304498353133846185616471695124025331235122677039034896769130207549866512952339847540457225984238873505171320203901032446809597239167942930078483727837190365900356026952437435334700258405839563836211196928850018892856500572290956336538825693746582475328419728433925869775140666580490453396650255918802817220207311166519558320344022210132304197880094418582373623425082061099110926404862655730017081034388661213424930737070027044025468610957520264166654514678692701841163002422736498456141967228590203018924758436255776987901008271952817760952504829772388710819088977043168832386745974572981453528633771316102033451850740418317069038520807005203204417104544319096464490278065800301620828673025071000277062424953385736376012938060502823702181747488957764173455614164718348907220843394933907537557795365735434450737719255740621483522512121595600475104886866114856350719713466867174066546759335324077448976133975089368945115582175594720294640398905177382268774692908828491546462265951011549248535494374004239474921218985411785814805677989667510844347042692304642037248319137353764221524930932588294055918006693149591711844698408079599066602522929047334875747228905055755024515148941882077306367478916575573044750656741489168239232926098919119535723017235154756101638292313196423362162855269395486260512475502608389260126493201936488689067067385483483777807375188333725234570647653705568214256334774471476138938870629282189298960920428068915342531687378026830191898620557718532743950805708211772108399926697650147752224047728775951803067124305127290088387254691969932665922534059144086375564504207122447477640889215187036966401456266004467304769552913786728810327796976866472808921440828317182830269472938951610085992777862448741160915685971754054969370396084431651345191672326804355404200496340939846539153172428881114346642832111883920298081311298784058285439642789280814031796366927780124910077424215240008302025623055841422895664679531541642627356358501529773250186875276267658828507328681457892027897948261287126527589352660114767965776720002983499035659278192874400202056630618955698506990358001606284261572152814060712038656006467852356827536493793271903739860539023976219071349129270729096162885618421880389501119218874813193364896851918788989999917524636292014077190714317251813019268470235160090093918098562239660373872235761976676593801074449023537717982951076886247651874899531715960373503154036973516482960447785040051536683026264765918492889265046009401925475648101456283177976121825582033951284659670955305609181905820218243056592342082863277896246783182063865088067660783644414597354438078094383540278818910010091190696920149953665455338283337420148670633280269482596464775232070069407505950620163369551428105415620124027562572568975608746633693624535288101668331924525707031014755853526358272097490730855868584197789219002406625278240025666010934555277326115836807591190727559361473077841625348958399476565242517571318822852378611099159399111274208947670306997363449819019866510233973665182189977607177374925120260616644049528107056508649681639604075339166117533217498292681393354584537972450686055113475976912110755097950103203588063088943609440190225387198335449446961481901230481077507213252400154515922018577967344204090787664265857001818947440212526973118294918619459995540787773395014340281256267112756478736310937017171872707546741070589398765898180084367177623766950618474202991015132469577502836177584502555830671614009973714110759314131337595753805664493596758896865557985271624910418610419946863411759945869361518930672376732321792100858234683521764615114535427425271991086703743406104666466174159446647880173315065550052253499846893506868429771389140634473389429578130501960791005743725311948592467040805234073059323529497859320366810051070777141098883507604180728277020204525075061394852782467795846745289850995202016995039684603028014087578808024016028009982678084203876413802349310556865673202555689939775619580470662466938612407747684696218542451527844686036778543452880508680960683627390669072941781825498763644876569353920181730292487117264945632382969461751459621737664012192472254626338034328364878431650899640377771858169685565299391258302494192973784436822280881991681641290924156728932763871987971695503570315384287506801706880189958769136868409353351939449022983880490337430116470291059168491739759563137698245722892658062464464914638275408363253423364573410945460005129730852686007368855963602895057426463564526676084691297208966717221238309351360200498645439192077636602212398327637004140418307545481628037679121530131831726387681206396994067759666547606009018477277526258747738304939047368346330949712619828581454293232372286902306987347779499786897743455313806115756242578580669514184809989601088813390758808518160232113236131758194842651250828026317243891775984740592634859188856314048054417502417834895334108241902559782313460090769215230583557975461993991798336692616569844601339693183306865298650982678380778861255729045366724493214648273697610314124008209464468991925203478185250141893039210180383282065751689010992436698071193453612942263934969678148571773864132396123476179508294686516622688740057363501455114243891543001407996505554736159326053912333912668888043087591625399872218264273426824377284927313390746793424941676053076861972922526224226801523510850860192721220816811973770576793729111793751697670855713251167584860359651805726878386894137804064902721319013866367578854148321890055694844632916865607946461005363137473078538897181230195552125456173470143172727383269016894861812343928306136167577446545940923217533158681416518777283135777972069181404463114639248660988564573184462173983470769551221263667115357864236539925366955151485513627929202507954831402878354454532214823949053611709025580281483912138763480531904111830994202440250196997229886621375330924715278072753006654329026962780435051228361587765722427606842334463705560587627958027396606568156112702570857706355711606142679242084222638564499737599327939573429235243986692583010788424982827707132642881893525844630512053654642953311539407239888596330880381820193972407661158870889601606030251361328189101312421999154661224172555281537365781984067482778136406312444647626237912231185365398248091299713625192474693383962267326835761960389938163113264311636785755751544000096875914773031465738082052566315425500343065377255877124681555288417220546103744768515472875459083514468998562886966893588875405815100952545996412113055398128096032656617193957883831150664230829873800675217272994955660853170901954573884751045607810720634519980664388454984139471777332731039673430881282669262395685589443149581099130411540080350438684594379468009941921162738725686984515886606738802536356781346935664806038999337575870621050043774227118951726922129773015385048585865910590150872189037109340080106054235013307059160468008466623571490194319430112620547965700701596391891220035360088477962637168442363504480517897108019182838616207829686299726068464195700230436010370598787365435918891932816740751107971369448330800665972388368189663140854464930004405589538132856436325300778541425479454536606597876029956567519034128757457737433151197847520383462170796266636052045210975247664322844447922008746934963991569511293268457368265497269504723235089797390700344653436026386221658601184618268817661433297631606711708008043427947799003172425639878516825128113398335275337344236032226697217152796640265202107760502561888364727639678077650783233220014426956274499749065986043900363281294349538251365687122514034512115563721730915088246664425459345503286153182039153885621676327670350067375251396456810321619134708865074966430731829731385786271207007178027447377560571176129276255679998370411759692406759586553388060767867528386475457329137824270353080019340689507648157382995140313524618615469808372107322853874510944495906848486315638349020315551971675479087581421501237491677420139857259020784877604684362579129595425121852482194366545275116851299346730560353503634447010991511613166102205067259785772733608357994670461547459079730454457165985832606508052062460979225614779532669491200289919229719698225020225262839385584440438980946217865937366299981900503656235307018377686309683815363171884851374738814337350429864105426307156133372998844985610062154396468165489375863195236926706349037221068457679600881413668624431458793663271347441193870189499860502631103567853357598667364765623569255188025898913554773938930297025326415402203444094380043787457468175449965266578746306018990104201276160977781920623000936312277547341282759786862356848113483761029664602887349941072079447883278661269391127688116540074890766533951974031185933931521902951601431743666196421668251202174137133852766841123548549792531274477587620904293361787185576024044515144963367575164902468191487225067953553879930938041732137992568460310746320464905310398255357669089819901730283409004623697952363641719344033371041381676072067762939925102718814262492520131469593929655138871254524791033462048362108638544167688554040475310957798895677049734978116885581258895684557658982401626327549750097295266326268821098264096105293395383574163586344012524093803884347404306128151445660094480546065539231603781725942965260231589417454110929371377958683971041370034675385645593362037747148992745702090904733013003738175079121834249291741708160972574078324897786604879622691546902910231984150514678366088817320019047997061232454073314521098029170447202044107914928704548970910310593207781851815452885011548962638332673067905197847573127249382219924378790664090216010690386749947106066542373524599032070779701499768544283555307295140771029459777421217347285231704360796097276097769169346306283276755521026255801813571570924151739966581936314905409530484938034046415860934823959992710617270258196197810376539060798976828283373197856375534981862249079700850293864337194325616307424250102536681209364311940645492675389645748945239841300609088273823892986940315049424879716023862556284201947538459198256830433119430859207360706550487277660183265799504106189134024556896365562528302786878315846292703646512753840649372777390815138307096441288701296152113551682292014529089672812287290462347004100530007766144152861576981011878066422335367372071277984051814527622589765639059287673095440604486802641678659376491128705789164717792609062596169522644639928039028234308291018636374326278359360793725837673984743694562219777679688522493360551118470727929231632274819410480665229730420869521478884884824669127480199772626265497706045471890777057902193976679897050872855436114056501327524909317582030922851493091263721897288665125548698875705287874258270494390503834256672717798512551182942430476799359267296806669820126211244294845839048803001372093707989286606193690779512923993415364174088055160404641796249187706858643171785808154655081693706736686750494703694851624530875338247210258131657899309276164667894358938811655785874194641279408245504818979075092099935927020104710094669632569795893911969478037814692903215113703515832219612432819947149497328737962719638229055031308859824554968068795504392505519813262157007435034429789997208517475538929251642320754974580370531894151370895126408180913016431999309743412940241842976713672978234409671353724829584205904434340780617561247145248051813011369081691734658759564212792937091154165819558443620575729945177273957495148474309319590726478208674999451463561820908820311149241180203643594263305802482535833477068686388472525317567026634653658017362652499460636072962402508878086141824682632234719505759604476004813703534946519357291723324482894193621480078849728414222093626152603049525640586953499261547150613638381571443360793247343150338256572268830191809967353439278937576726507659263459211383136919639494927587402903644454960102081312721994772830093946488266873448742157466910221160400898078361579552229262764191935277569237393066652528991825249019792790984621172653490535330373327317379557813774043762834152615153180596250800960051565035245689955772159159705704926297110884971767043002773186631667732892580961815040993366129588216539395380312127959279697674500242635723029449463435642529646523483356077044872892822870874150813975167071954553774682213330739289304934273460372122064963103450280968404985336128049548481587198218066676760864340022937617679350267565214531732600234352312715265355988546286245836797688470060662345239332419240970135314261537938547148840747794161715256454036797753210816221181524886300204452826274459925123590109919689777199733017336740993653430224078211844232880236935547650243736971316851624726911870259679912218571642430269467753712286865213607706304013349430224272474183619388656594181072580176884055219322302071542265064518151516466944000344716703349650754114427898514300237415771719294384950532610288107402770936804776079905220703966981789440142941960999941359351778327885467460318506660752721583124167295024861291439176367075003310875836370731792695328279943661023422618563411406739166523590437744862060718438882157629165034154190066451700201651207141583347430175366149619656545323706647199111438098968240861951027592157764587184811972160476309892373035988753511091646198430949031534821412391570292535202175745818699164269163955400278921120377530096638729372626581520184506519976898391359398471038657096126627304208305185546797348950637197353867473875052479025001973640589024429388741195837916512024383768668725578045984901186675430970364893348009868932833391966456513852463356795375559790689162708790746376735501589381163267776241903588775516173942033288533337901458737973254142483758405806832020198570950285152076829308809424197800017477664748084547917672156787427651396603801715799939638857757124424352933414295357052574360593057208546772766391606901235074505481120802337801259302928642431505466041934439210509415837647682973247230213799486438881179100621973386327283241372496172722922921250010332752705167964801214957343154616460063098517103430704852651840373995307850710156118844624959833850805174631720209419188555259561316813471763270308861974880461114875675143653684246765969389895335137492723401755640530245019563331188910116002406603656498855450782843881398756353361657246882305537990408213735108691644740920514539328903460825890023499406102578071911096829001006872198714014287845256875552514159481900684201273837723695443821456042852959512886180298210584047595542515191052893597618629081507252146471353455567801420858135837716533632540235773954800029056724822356851670522906032756197569863919634987679852285049167214904703430897671364226934508812008195804239234213097191870483936876710249610776663562587212287682028513125050343927894256895806986948864260724511721959475369332702657380467995784951906392533770205188817624177655050553828651817724327886020705236423204847273394072662281180499483415437520265947277583194693702286096793276388347212306261787698153573131577023298871963399019519003772580447531272649954294379121383096878500601323875600111326684893890779448595358269353358221136925635040485156053608592740753266535703923376300953144043085683323897626894164810552564592816630036103398913211593847706110020912144048414220019723851693413642253569998542253277655082707683143507780556483965628223936905471580685878590046282630963732066380876876524787673444453819702627799495525257618847102765487091556987166611216119627033796294681160486064862419494678541079140246385583465359293502873237875642525192609557357426970101077223947964204011946836274259397095768240374938013055493393352942137166516891809509706300796934736600628736201516052898448373020221435212795312366916675811816850203932339373784305215196256291875999415832453967514111244681057866916002117358152282617275381264994657521584591493722004209068152289125581094788381594858964277697741341920665601791931191012724070231764333101257980524168840996471592331653491436168781860699305868163262129156372154657364130470051762576726443069343268761323894070499123110972906717245007323520992908544487751574022749158012875506589376232867832345389569659542983161871233009984557973343606030389632367348423698605901304946980358205030559542469719086477227745798145394674995114651859660305174421152211376043998196820763837675919913497705385146876913504954697795941158669007624511107126514048691794070464976067397072325420231560925057340588778610296738099712879393252274013115622576690721377434275778637917898044919386167302557172137396098312667659951290617537596878508974414290652758144875994267651545581125515189965524696839464575918275638367078482431654526060958865263538799366322027610845753559758017753896460538864965319612089364939824449221244450779997506760997967624229538304556062592097354209475104913474920102116479328808113260051984871182078032985613442357398395093116822687687209257192785223377642320568355156071204444386532855604795429911504634140750252980888943029227136597153868062162898811445416998046280818522965165152148014277806165972390947104493852596983336615185452323115677890187185519397859496750775432021789604798529976944226994690409272423770461759359474021431371409468377443663824370507126243042313104635934657216528233965676479956657267402753144000410675935803447144476974896897104697864457852965768428829757667353889570119566938554149011361930159250759384203051157330404220626895184798341479728753029913629057330367341122998797009117869925452764457831329252805589280140091549908005756583076964066827133989828657622365746132626036148799515382709146706723344943525461355157340817672908428304998386317640121593711518516593329798584878752583931483636654021249000275374976702379162608346231960407054977901295801562488600187280058432016011934600920597157483338530337770633340289080062953471855638811016217479853291096394226949612683160523382413374373777955379386037307021262473021827367170807443832818267905318665955972025374012443428427098820172196876072614366016616043058632188657909474758960094349519393326694649783484025649744664839615924324770468134805009701766385440508543491307695903018381115657940062034766150678717500998752071372721034348079239247445920327086393889838328585632068726385818925638549753680669551240287657182689079493537576130328322778199708826245336993187765949285359105829365712631313200907665355962218058190940806210779964820293680044537960272794791619169958442476715851625920419645108589798773723660348100520166814892419175627136569067216116622284384617419947516884908204997583698074159118972892414755884401401417492335025855964280035393259296702828419452234985555416285892156760352231299902453114483260370941990402730958593262425197567433603913674215402224748685896471615682014542587922190752150955072439132499437184908500566331472175373096180823896873807828705466621042966804916697130612215259668570483896905775058389062677748896049390559122906999768651034582484377047379601403267336928030950032314079682057012472403839459930529129294258157296058403665555662184331847612310946852296795310841487186982979105405415985265075918436565714750787603687445792336059229175529948755775336942947577686276418662177967110802049727340512788927990071055610655828832705272783431821012378581917282862202084302213517140216479393620061656259990638772475984256673865270247823967532473546109128059274089687446476521539411883438945844642152044760721460835644507375954936939072116818129815023593085598027998408464273224150006405613402994531821908015403350525475583695539757134960332045676000087670251145991937073184465715953623646073390600038180904677972100745436977405419735853082296536483869612086198830382974985385572847188521923032054145089494551552329604964250187865221083073622144007846506222430719723899776087663860464338462857567763186474943743159642669386310464281418374178117140296842555302586553978915311726649975267272461341392941977605318623407581139721750404522144856446221260858963984937687457337482838196551737476546058761592591492464380316189240842731766625964635323678822619446756151635553877793078923919613384130469925686282861237128043251047864423650638406490772923989844829626541754361631915026808327919351809465404304022470904216091332599910753837222871390310304597831905518014618197781784962027251808019651960449392648498571144924417119475965746963678595186513911973900153173371789992422785267753248999060497746937741207319674089564123948562523254771864825385734733298709970087790455771492993605119635909389458592148394970576833764406231163092206937497921353701655454251964133234254566630986215044282357099773474228739538108424880393787878704677362936254794148747594973178557056329259858500247009536283868890112942920398046477005376477216718624876635470727150754479446048908217831109669611717893291788654238702139549652680079986081301097878704233995202464502145083277039517326188141420767167595305142368793253181893188227322096248964818978509834931813301024766105387917236553865906978893499241129188615485923515835791460165616503950757547997329131603250423832962702919998642140333240379070769758124445889694571721043219269357573972719558823452332823100432993487574229370290060908600651889991590049238007713554134769350675299981737015843758115711187262261347696889469457327597982894188407052554740540398381582358997541983318871637820561431518974816507164931000370609731726208417988988793494423853301227692139335527918306603184010017076524061575428525656356818260746252359477080535857868093052511116846674196232881350010663786807529315176627414116963905157557935303407245692482529090103462085276084943501163816679697041038785087108717566674579897540707811253074477933839931160364725613028265801574847513158077688218581781462240512375904819104349243539715697041023480920089718495515124553447081721370276190030409157894890009108836204034881744777930753974127113460474877800111562177091749937960864653890083832263630162430839706766992697710965485260663604318397283765297406956104269100202903066780012189720467972926177457346242193643191509714263346542851649918125847185607796234600681682426063092841507709321085163017984732393681357239576517524265564469265597792580544158064285406178936829181975178391506956280761650305605038807025318765953020839406043610616817198125224062217704030484864951599048123802310292210855302856557039542861332305926531674672777355342708149335703171426958760699142087977732207194129738431773031991192155786219998657540230320877949319804627645513468830787076147314483713678449912397157601759094803207680914516255737082975771109040108692560160093935475833211561145404551495133014710193291189919308168029287042916893642421723092554400700294537248487247748883611938756855224017194423352858957439235493795612439874882984117745185597170198232251688955007043164068080231869139978796141386837720181899381007206128873815374709368776380886550223303341690868114859274185266944916428034398151069648025884527509809584524178890281087478947924839606233642089791966341314763114264439018047284362523695768280407129870752736560405432758925012806643184666445981829375108013748974313895858386263025035320572035048923561506266110243730768044949294073837690827176026349087023222125346576593527685278976479013887733343759870941594024383365871672586167374302480469858965818426118716946353866995848099773637034488701914967115258104174166387446934840912470905322076279929139636335259653178561303058422466211959100501562585367513100995765557055417729370001523784197629633910172992009952547977066633597222662619378618067037667882641529481605477686814558540487112534153273565473483738412285220821614269150248007484062386357595192053641575612015101353866766286619638345510316466286094778015569755043774927907911828481096337194199921309228377518417799979306209245117906665625664116455187380716018044403237873196402517822396715839230434403572898420046036693920638732537081222749596750473862836081598284646474611894756043688044173833028353836492874110889658470194548998092404766353945996141964438545340292644264195957200473849912495171984008028238204257764987361062479425257550000934369774514918769747722498813028132849376100033916848103363830495525445803504936290134136036469004361190840942893486107947468248826813817133813708404823096135683132183245445220660936133072872076754064756553928821532381946473346538674536398804163085703201187785980472192188479075827290964325179825127676797778246420507406558349931579517135352595825214900030015073885847042177135880502638857752174229775623138181434810179022098705411843707763583543562492654634812720007933494675800567575137817229905799304335316446575827383388821891979489026436721914410026940654629599726147578519614699848275357254574531003516079632590277133021275722686547763325655308947831946527923986651229503992560889903541677462253901913643904092096115467260125368791797109797217553775107644386795316003797895694102048607437476074045628395943594607495326850073060774244198838494449782945767045824982574491554851308806954477190226346802821399672889445036479377424845264699463932674637255191948283460283031572302721169439000498062519402329540954971731777466891353447703870529483012822031903564543564196308960211411011426117092149291793416027400855422761041491234894351517036998995650697561310809718650609086050664349985647306207971428065858469861810050997187595329705719528070396137502244422377252256866655691410991349248404091745851210249382543418969721918138293083560043525730392518987414291438877868474238178211138539622691071956775122306596968940112493183082644930160559033867260819717622614788800456937341886191909471128028554177189154699643375992613079666732081782213947836678093320744619935311194240578770305560573648483912270928246605391665432350957825443220370815575099699114019597766315187801548332097857158464688958709224318947995282706251798507095126454418790284585343583787794736023567689745356843664689818919740435230502215193614932605802144953951662002519167214245148032996585163274540543096281943884141681925161636870029792651130603193352692998417847988071257584936652003550286936174752291849534817764295780094993376074468315685429321240854767572531162437116142034119858467568205701424747690601294516902099681551070329948262948731904028825124836459331992465739633160344150419814630225910518575376889695883641309365859119977168834835072620442619884154497714596874849475974580747955484561640133400989231304538833318759246741222476523967234173945549925304525852881231359366093762924289114624444103672857731043981881318363275799578790417202159694178914358339374124037292854540376670258621436338651164664284096867845214730095303906211078460989587782425987077049598181431527668208642176025127221136534098664874680657646267460318244767889536704768641153483319906114715397893160824967098042772623046430336226820583499129795877038854323749733530729657474571791006567522619768621694944850019436044688520660202233063000990947151893165771384256565316821798389849053687621604956017228147533356584052684103084720442760963585987826369056896946999633081575049223303577738193370784573085297840795903513124740867291077561619635756876876793571518222242942912948488937292580853518891468819779946606799855978955212701370823404654065174327336609408538116403552751235027145368938363576157347018447375994141461801316924792807237346040099583885656460851982064776753885565225556607427233382474699131830566543353290414454175167024132723955715867505448057445013173354819406501812682549602980677367357243094750724642301098465992992541292680110028149267935138302377665422608816746622421128450544572690530327279415711935235966291806960773418282578978153531594674020227177597186094813128490556304977601044176379635976940674301555987787324354735859481897551716381940657147146142927521524496293798118217137735331597265984520212078884989787608753713524909074719270657051449156001524483746277166109577928713077994906827952078637331590032596175896126775960017669257906633857971680834202139291087534001061606605089600420678263917729175325279615014984995623382900183398513342484789221023217448056297370918867905038577134322396018492930321132148562957093541396078247776877199020171333074583676647079908004077891284919739724810781704294094212646181871124721258462460717869737856931557517234250486414102270993826903900854804224325910758095998489049439904509637450522799740554872147898916412575694474477430338590299797122169312530574232668252813071808423850684940416055251520207813351371131384828133602264842121392631531941934955462157300555039467886411302038193724682245840627514897071536553307331906114939760187059945980295904332656583691379228086413420450497560187647374123876034661986566485726236913802800666458578824896459874078699247657870893410755812920972761359352437363498909141046907162017545991386252967711163960024077379899837717890733393337864694515225817003955034384261904164213098570593549618219880890487191954473048433996288402606113841594139879282026555006805571690154413705162014346155511902066153913406987958392947242825218793103443991279473745489284593609632835463592707399509717413872679337679702874850386702934632201847594552979220140109302999820661702749823829489076638607645826887099885328849993152788048147368310956713201876903883020904879767319246650995046612756975378966590461282315751211000380286437698993253167918215756756570498697140689942750992985379638886608935122749546315354943476070749869333650295779759832821110578005978002810287474459132043761084841442920505137245806969327881826358361486604671665346045228191376707342543102710849560457236926936123372316736983548987987617897620562669917544807389445725415847239227435624488678497468362215885749081199614591440196673506518840904519237062490419627283438426501531831500948731018865005790730775281324103619413473935012257660786223849313980431593403487151151234942215611554292993639092488158612497213807953165728993253824701674087218932222028025803060141370668443067257153126871386891338664352548633266654345610191464960713161868583143801788611852401171251183317004013570757184233224504125997471830848468548835557406236030129251067034793382404555860469948033156064537660207205929069872662829080637993719774921818588116184873956541229286042875707068723820294072643025286968899642769612545517065488036672257640247610660816718602569917999516171814461245946383726321852772643677603152657169509231680835273487615685439497869218840913602494374842656295882843185009418081263432389019449630932745382775333088332178885776522173603844842851421537263532323239105225076699889328434319170858047579870178067786611997839746025938795362715020381140532747779860818135348975602755398246499228158068385724234699796251185733086365609134560566545940178940565116905343168708477632185177346424755617391519445132349184236860445813851798111056827679882146238934923667442493571142987412925237430082778777404782038045385265966908077870020820601113677119202792317421909405810224032813669001054030792496334307031095633066631811464410629889762982099407162750177204023728776234448341317314162676943875183892339581931687346400163373705888432382957865581480507468101013153689485694936451735588810164964212474510838329875307991948439461956693640724131390213956544775377144030735017125282781805813731728478909608898685625136781891389220239799311574227179564203792293967617898290212433905628395755708597490503966624774236532912722597862463446834808637619651282893050833369996543535333480526067953741836331101612786749900793439835555622607629093928336011525448672268991012705511861347770895310184335023642159001909998569570185768875031157336315860039574724599676365926893489476995597525424189868542756137737648559571716925111814516030339091151170247026814061874480598988332276418493622684404673903362581604092046596529440002337597413458054666618549306589116200441428261179483325407049796148656564308301610361438068006937583770349348198904031554018126393546575208310177172229472560219287161350852019882583427552859097550297121535208482587010602516534943258994068574724276995875640600911915620322123122912005106353274552719153550193144261904199410697053867623976445374389452162809743108887895334772174946080800593703116626786215274618863361690046388098487084124805024799539148166478923853790343920616011584489415759686610764712111590672754134974660178223974862966957112137398977721419261767118462083701133702215137152877899318231457310637935154169815534903548095811452442191027948879747649277162204283227072784930745798037969110337183364622638697062746812638604784340042671199061540322269816117444127171933223930630923077532248822089692322434818233695373028122702329360521485835994286067871510879361134354451376297691378503062634036320638515917512370293021550162882002445143281857084849576856033161793561891059567153658752164700682715194551108499543863459926192883723903135713732856092602969185656603991367416430365149880476517226868197065132404482097166239422845065935770282648489515381935740495770648551173336771443101458104738493452212407385022725144969010616178760011615430062307497147262408999630718621844485077834805972070693358328079780764288569639315736072719416693269842661563199624630433098279323024937981190832722311997805912126629441323089241548129558031612256886029355469236098063664454346361799002666275038500039803044975960182877430780287912112031337350474572146394537164768675434598200686472766027328620807053115729475617263049363068231672427109096328635186199593806507664430540235449634146366344510500808837896280774572868004699389136771003760566962901545603513380585934942407091933124379176715683321876106212432006171358523467289844694188792834404707930083360341270997149818992228025052056740521202724842523391602000476115506054141303528993044026346751923298937263933484044811837504698907662523760667537079915272042643217754365101026108352379458331395240898975255297331410570178046835219522650194351225387289043050740140239279630759358463368377532058421528909722617018754646048596547421838980448791402773535989463977064168295779277591068911226501400229582166048525059670861604135139395023682498659880601889426702888145255020391112958492058302148259690747600011158846408248451660408734339049196503412878369958336051745219595698601781931080632503770213259943768853875799006971901292845619372382750719475601685747315571603971571829943443716525496203786636373472233382863446463945105850524584466389262232964467647847037643777253177148866445951201051529767882434881706040262270828364546750453999862977808642980733828845335962293907664938321571191736654849424886505938256610561540275548343124435941484086989314440706663557421180662861119377856643916879843595422370673531910903074913097453616715133919304203189428033931213628569879325679337207008172626310699385824922438181402736030049659930404667716951393751357223207835390444314564437862194725465183931975460048919512980427349686260636636455762145392967437011440173968554627837036499311510796601084197084769710125856471626679463483526502322350438665512462635815828670120035134713063711281149956344323383697591598557666201822728579377664705020977182829988326330712191055213444063589331234867385951423947072652248636692336860030047990749428173916339476216022178671127542153181725739907589011582133266179028030715061862632451617435400656432487298047397217964836307035697108418847096944118735099529282700295595600720397369844883335378574654988965366206263449945800559907675479091394622327556758074448301636257576416078793572749974330994302743389098211219693036214489659080368882839304206953247615389148597087964122561672613941551405578260695604739958005924924877240684286966414370733533732925198993192723638582927033755233673822572813514447748282785900099744462672324627638186580757801626371532565124174610500136036560486064546777654742495114795051580974600449230711290525350291320693687142544140690942850265927042126872697257791526747855646536734747587943473699492094639033083290189923931566771335695235204064469993535017689186183087899291584362220890124475939842280308880210239745742847041667964695515570049106479648445508281897774766873027844356684699668176250327859035577726766855249347968291857297342185291127205345130331248572182373556257054806669330012992377671743355579785658954889050941639349608897110777573202976387772802511632791934274736689891648825554279420477137073379931409189088085458462877453850031517566793132441784513663717323593019282197890429086720821797997590662864371739666658538661331567555438558188158286070271053338259591226376607835458688932547205513487606397276400801424525225171700885837823931029935237220478703526945612700668345460175590731470422144765454149679164452176142204160496883983533509260677933520297882636716458470385297431646533470242104845874356087738298582630637251084726283953315193807542306340126609772037256843207544864465020395417236400249204981944340955054273113320137024460714045439418015346193580369190037650473905495546770356947130365158613833608575512797812626846780509513833859508871831519027203522247175698332360747975540220658956415784527940775269289771035644583101908458669562788345699207858881624119463123717725787911089078045961634469701247960096057297622877225006615634643453855706895848026351876583473399055923502687534216241736312194582628473056756609038571486792107013055548924256292361606437818822461681863147268683959835509299341909134560042727295394500602984002534962125456432616490648765418975658885472152245028183586976203363444263767011700234231751503396449417857416746920156058318765591174601316574241225999067097847469307259253368910327780867803806215813952134814679107600402195084308135736358547392202931648152580110594539345633502528877924288408687826125092531000943844509289330323993586659593913254360954621692315045754558841048619395521982384481215036092197485042766121798565961446291614973860707351978620068674998924989198775844881771812315688023147611483677255039649722945691116859887180988366840905735926195216902788070238992142500057998124780836120824080374114007930505645547666409608626916235595502290913957499471601416534681498663221103731917249313691284493616545710433184159457042260070081014011751725561375821186649313371879713470275586321846507387172600061639936084926096225168057656579840821179160309368991642121311238631712155712558351759810267018076597988756927466719406366828868168578185643809178708517008634366169127068243793162606193866751540866451316256242656094443224352479553920563267261806140488003128502223514932503871450194190141573012987648752203250127823239924573279479363084374254253711312614351046302940211015651995557085122014013409071331857961123143996302389269138757049070019985909114264113195338539121156959988177451164679380341873902200249121604535465934102368225708073094006176348950842191251782814361363707613684366429837031577411238168708060602263887004828587540765606271280170275381949987687685641907419112853773557733807475044634074767690013308336220948730276767115907364685788485518182700560211393255767566844252080901925444186098929020706790764132598358870533043518173344872836147553971168323929523330469338850709005956202157671144805033404234509344334300789409710257891115247846241185183684709749868023420024656301797300469967253193316603728406277349154234523498109220311809302627945202296350907200005081980060884018169843894496694279459858058395509889252203246871168317448266796399764715217252962175286750165411437397605567731244492831769387189269945378884260627687014868442636564822086097305885914178681635978523194867968884417958198354868620716499178055100554172336636728623765481856311641189929498203096949485306662349394813096513432288315248683161530703616389917583955237005199346141476315478081040656052345010503081308763046766479240502775839847281334877177918310474927966365231558778925852058917021007006557014189229359582116912015175245874137427430926120441376039772901799469198776636706821390436872072203573102919370106552577804778715559718729471790330776777498625557491555261496630182805970118342853336945307124053083192766419460554516599002413973073373663979649893971684299790316660275225996235257773050522044404010668552297808044484039832225835045333341531471776909052923621813919023748195598091464968345633750982513404126005580480483774895270198721484643937228931473528870681052318188200968308128997766798430499126634949396654795726403395781340217576739322433765469907203699455672338376496180022427911630917220915176858230930870007702111237895985643446979380446033026478907788198830370059221478131889957647840007962457584673836156087922418786602234090945895076270536587550154744804417685150912862104938613780416995879772953974511730741148450926360983356360556754489029065638225988494341594598796340594066753477185699227210763639122444539333506269598422197864140791271585214260133358123919324328587610553882781618448153184305204628911617620838584799408388980516607385292090173364506680208129957656271315913898001629362711963825888008885290705176775571926364418758023711206472554878292744007034712429220023295520711749621379266027212721253798119727727559414714423050227541149487529925427349123436022402044877927343023660195223181001167421339975593623057568772021590806432080768624557656678119989110962285525698315134747449106739853239785328830398603872130334708362547797922604049615750005644015266147444287677127617131597188941094110638472319468005347035903609574526158154761371221772934728745534953508915965463903837978710795395444949195585776365591294328861324840375077177793389863338508905613357790198847810128526766136113276345650660505486566922628423057991189923508309165350098278524099583993923361794450519999457471728930705863345690808356385163209573171534180850803233416451867513053378256064138382432265726109289462270991909838892894696395508499807906794926904607030625254543824640692756009715352836507790444346167564141578066158995842325525025036180386192394230939441841099199141370808567238925087821315414131930401708822351690867311639994916535283435724097739628975869707278895045595220243581034415399993881577945863562911216091774232222143346044902023413658048604503197772890794797237618998978277653135935062938386384476616285396527228925038579781293010836973562706104072876942991554710224329151652163137520000624894699000787520683420414662115013989406828093640407348793725527405197771460816228122599008717704374578122919505393386155685455877084776268408430267814634892946970151368280813147094418358158805428725897945932725175243364245077910827336035697764575200576197373496938031070798315955613461071794719489699785075120874693893752239373895259898351395196755336588699718028977765884395722188898452644654821220258339063800946553582385739424679388302157635554997994836123462212082756928181209147064056484455788683540220752689760703036153292940481743701510497995497555893174190893944372011592218632281836392213516679357309144108662751583112843377893065873673314639637409676527088932578373351967417633706500954524406137864215341334500107722331126671895474450239592764595314207019769130994485164411650642725582782599218739511180574601792228995664116259169624834432186300554886212554225077865752260303585808251299053281563744969512909749433497845037965775460872107562825888611856148525471255522115954456368929751962022105004428797974350342094371051415606233815045712763583906959949512851714708654779321418429400445814189560209207654241197171292767512679950951781048383126705467922298295871673742264898352912543363059861461106020469873227384651664819196962052009729056952550687295628624673017048588487311118907482758504590284355323273099425270954220648253360174666329309973693546455627969751413617851413826230302847976407322233391963219706220874923115638670728143011601614762508298742691055575225592705202967721090950949696838897915519739624781956109199760759555077542077984838950846899660818580944243127738191473366244520490982108491949766221614882618534895245773658955858332608321247876124303254750897950801673382194316582072313093648207024685452650339567631755074463956889106954461094869787474808650533866032053379744908288849289695153162632708105475440462776244816565599206705133171641799273312598153982756390372706453504565503692840609614313208064131721260317588599326120695356107357349693535642914102909316158279727937922485288060649056920298091030673953940287016055235911415063751235811231893813577338163290503200331383628918783217520181793891671027501420491741531845015898478826977011503877601833251050594742473958242561879439198434055315409088323287388053556164644698146229414618201297624455538507831767876182784816293086994604836456948372622622897853101432314149639582150251960112203647303651807640640253243121532728530938631664959620382048130946881449711348303101625814009872902023222921606573112768387534067179217450703503098198003584118513838421843407048126097684164744036611082828784293073770652865450598631945017045883184401727307315632460410724280587853795501653289239018773432355898021232883178096872550394747838288061358870695560173350825718571875065348952923672093247845497525650284822636956122668440147914147465415835898233616188714638852106901872098852504049137472091699490808404815708400663355122469079505782887264521868137687342448799950366235201213027123115197840776931676935969200708037848013812660315785005746212440021602008869581783953655288419233492594467120548512714044725257733307474585733563433338786502677847205255258289382438347283750439184558174641144619614206978872213840981955584630820501938336770473043189575955129166214720952336463734493091683128957857169108088111160700598739159100035596236249634248282379555400195956299196252358653340782630982020266486507193143566359574549767344174296816453323663951744472826883636615186948222002310024199254839014330075933537305580810048776940699573952275191251184428484040120710336206322123056060549935600771718635499299639648230201563339387447075031774133852862837653143759865871540647654569935114614100154428681387708466381696464687727765958065251444974432455473555663322543483349922605519663436082125544046153202433529456191946807142337019237001615052794350258135081315055169575377966730381439836304408080481293345439514899590167036985610966724567848876820157050128240145167481434202638615720168117238727129835478001180274299491298202983348980857230808025282061936638933359165931746094551768906609103433684290380256723027629579263781013388542101526808049607061863117569965490667840342452707802461752090971618860377844865226257985104056340788475998839690526130262338676918573246295067494083593966699416009195974304518502697300042030975031932636057718632577294603863825111305306715372248442350781414912598009067501477395400253381144920899068695803749023209626178093129509693531578975655219961715483959222271583526677475352656419528833516034546239014572041208310048695173952433113915322536337000153615583614290683551203322306227391427681188653278760881928208041462879803237144023704304481019827963018087508588218017077211526993471295161740540463586656463547544882085505463300095237663087639958415206987478280293988238036704499434487512125160840371835325325736657642381952184517534195252350678086307081948031130769772634099506866099522712603549904795262390624180880068783171724886308563944198357939076421653881121155452306248147107091238899138643722435111099699038656804045421074122401719562592680671623935427607054609498254731084830784972016977901607851895088480192398960494988471601574501599107823894232241286812142069614940035268204973143639488638190678330811127717924295017279187653351821957695007778695685710873754446551518271401035263350025821424434606460851705409188181675603726977558742680668908454058731558814376307410291494091443855702142182443670988319496362091175729284620072569290674005409956064676104389035977159063872202205899190737388069079743249463876842555108685259616670469307100344767081707201030647938437239912484895952392720597316732200607666878102416455700910188338396802799304446180615655532482958992891589320194493218551299430508657752755960532926985899456954861558070812474753636628097286476254466850195067955137522223746902787660301095952963235030745684380079459170277289770506018196807479176314528087892663484891502535269927675423147916053727958749642335226185763730043293960927311864314431898379741262029105206567382743525781017680718189429908932929956283718452545199319332024140045765610645323670448409266647340596844261597504873584908709549117370660348775663488487074403493140963396437620925646342642234221531131143248859494102828113113577767255112320973831723925045710658124962453366512024994449402509120537215645219579216275919897132024712735630327465764573311147589580403085702900806631084369442059322360448107213852920841588944301884053980668306243968990187443204893140111398250570262404967728765857341137851654590453205443417250350379499206233130811311778024944074956955508994244317929893728521696369549149597022734016884958597800652558269407399348033076778279345118986902950285050476216823989958266906700285647996424994504840424786663306649482242112193831445187855504053693848345765715646169902568446582685503813480778166352510424385796538582196708259131523687220092501324114231485290979231387453341679726032109718144825798341392406076809764306608702378049158044071887433848134825100749592459391533004555128729010511121047478937071125701581069874655914568929462254478796970738794943295988622551501636747230043835113893302301946103877725182567961871867244418035832347825521778144924874493422358910767305613807393596681720010589432498873559059184916248221321187370399714971908773012513939882878847390423900190170631580990905672493546326315751099126833422006597579604026527927804993272825878879821340755243514726250666952141194440574903415328877215895985767236152330401395453729361789719286170360280394439394888715834965612839373986518084240665975328386606521602111167872243201940981577102502967805269802384740999779849811918495029705334126165748113291209380902535023083842872303770550964877409576046166656169589541046070318843846035402779408485259320789106381049852797515043594070134688460465682553980413619187906339525253177522141229752319755447773931076210533311777683003307829765736578709034753140442651883855703749345080133251474426506099397206270358235110200974393535407635042823526127929845499548471883303777783332708868298148673982705712522228246800929573631187980028518121660271097995979498561190734157731400408977084711147998181123067071339785476702803696534324434650664581053791814258505244412407789954898484388938339997845648151053213882886808913310438978603225040624585454725272148222405155109187636877158584791310823054249939281094595703972577500299913707858127552734010653977710606781988336027065195979106507385697823318563328552042590873192675672303438713488689967460347052362796879641882524785582729415220053037270877628436080436028806238693889778267473516280966216450127756371428426244185162809626712840896712004764362926153107174168051622346579914127288448571064820006571274549983865719468983117854810248137560768807716988946250647684902338874132268766906686505075476021236887516982642035739428521360400805037615443382362496980252251510157902981961054396830170074640152077260467913451066296754714030725965151366252430207315511700715238178834024173753140547395167704692433744308833773378373323940376447420502346058531795733043531320211658882013309809774145416105694367296978799213601960825994436325178104016371712437601500796890000890005961969560968636822221606680195514165655715513645433686858888680558830991507243054365525461358729000980381961580666213774741691112359222235802350290112296800762235656315418988537221952281982936505601805384584475063275204377989164124707146169097469275261511467489704813155914762810654740454322086486352349042937707041912807322911439125418921304894415742903175722714399339786905335382275588813268179556940302263058507418742461311620664188350839434235432888612037069709342136491246137527971003568642415667955707518474351189746665906660542529578931284067666402867765273443337216838858880540945887035896509894551317611990017769943492221909025533369404308313962240517117392112385562851164741428896642413825830889663227776800739616687547852302334543174889664838346081384235221190936817962170692202176769659029948575941138248505245130383622731146316162292683819435064160595875776830066924690226871207685496332084222747791474988845815297913231135963716545952846439032224974202618951203098226202447451015296673698839833222214344764449327569872326566890796270936860636251968081645771768670026770525740138212276061729515868779295907406183449504821019118661161334713149682055378897203680342062145537393420130148728105768166486086574400276624815144026843443592968990156222524140064204727453780285740391120540581301531569268932588170081185682553843518369027553649278529871069185279650495539612255149853504565877901231190289356987086725499907533390110249516454554755488148878315188057683421732874329280642561170992230143589785845408286684019317947138230541465539783652489021575912051449434714924094766485091316048699907813701261069019834997963341687665265389942972094850998757709941921292944468149557016395553402897214877845062965062265033210641351819579580354958544577313043624717503841676197851853976877410222282014724577452140333347491360555474175952657981721922338921166510255355180087520769685839601847268507623014517791993178893197187871676738750619132173802171764329690806511788963091998918558319250307927150153204109470187648904133076774415023194413287166742388878848591600465297910187319623927597981536412056581787727912672289184989384721396286375342474434587173507396627608230424739704620498581076857300234023180888034875144015530414638497585301176700079305987974816288858847141038179436864488719931924842449850922318831003171373061696090000118983696804166636496838944914415936991766198611856109996420323236208415819572719099072676178394445471363000758627629628913144547917054013040537522360465535897368667996974605276683014003350547937605208212845857300065533742828399660220860449444346435759756736728668847174411711291646327612068341840941655426936535367337014252592772239463273187160448642629108398868987799051905486514674893729563998756106850512299770398501165780749948613834714599956061424117614861212867351322569578571471146571291379439921029495354352487621547938329105163744923800938029990759157357354995840586926708135763428244219608688355881040050899264986997528983827789483096080670214793004785230079868704588388285784949615598506290635692751805094723421182059338534392456781543578710581190685948692555366318886883901917837170707869063476073925866124900053376007441915152022633701406944005566648867081025375842785680907006811278649945230045318430230527113483242544432555274366998648990629611879431680296528879880651081174670749026620061499676204068617030381247654996050983993867835631203756969937240478920719843023323828682327550277923210353802303360141310475175901262930333565999529584782937602444898668934339542044849974541891284883898140428749131673611733664819065279777006173648685320616639938526984777208396035519097802624897222624213392096151389030797855502396634818859108986386267350033684303835320209343775571666091679249092234341880278038925667497414066531331222149646025077659454040531861279042813350763359130953418775899720195353434203263475969356971312015927903016529158854519722604367259243657060778507194703448309312822701300279578400325529901303277434204214845557009158919587597916305334964698068277731954132918127392210016302264594800998490661099584014154644097711716248487030496057865310773712963268882810223221158120016158708675342007373912140922765355348621172436214840712219578844955946086557676757658286667330493867197236968928192279372331193655754744830465793675075942609112917874786566739905541163532751156415043949007403554317387602092118060916145497352172178304252443110151053126465141359242506300403729164564568810401149350384411935778776671124347366559592112456065771951603099751662932369121804297753554294206592825302826902526969117818812247621722516317360920679450209260104747180751551203462409029567294497889495051645092793138540973867508471749602859699020809102298738566365858575878972403072256211434194339971574378454133768516401333110204732252111178543686087797054302370561113306445535750302342886076788423178920243393356240380358885503895482166804267676774230369659745825088726805238307723957689497051872905260925586253447154149075429938928826826906715551879826375822239587495999737486040073417188455294250254828374344857356381943503149673738616167007880430937988164185423617786951888951494578686417281294685808531808931817281897626108138376722452896768061379398945354769464312652188509487816944355838339510875698407090642810572594610111445243595724906928300144741854948388933046547894433520117689720230408062823058502760505158829318117755913715991248058881898103759460355951409747311625514061664061589161042676339527076541413831584946741932981094805681611693431691051596320633999967283584619063063431235078887182954382881285598093931574986544538931722481271989848880853841961938748878151253897251629459135836968787021486689446165925878740634660017710457528811103223092556955955930676703704119450733568034154184040765405603879151010312028127895294304035779541524276527398008134538649593596362736529689143565253282905894296350962457616317826091401216201813287584789185059486366227275398683881057500800361552810571293288896254250342391376118845567697447164798027579420584721578909847576018219952054090658888875265245003293012329051735629709328843438392027971447054520179795232382713571088025234685603954473935074983571251685563146800565285991874831951874035868905195801856917781812996090226368927779550308669843722819073768327099760349041674369649901546804901133479360664138317138055780808382121653435059569042719186090152604010953418596277515503540222172087087576895576954228772956650740223120078252132681797985345847704608072477214172614590313657980071608734005597936800070857713276667953427145335169552075521625158845228618941157778596066110436790138434668356699272547684832439856366598556107937327701993051241734934555601181043203049956157978136802467383150134995915012343584727681850551594511734843875699498228942400962148675061343768325197965225455459934954542668017598045991598953901513383679603394566932203761563639013165359424501032951926202615483171764578804552355465914924001033754273033272360571976685041362507420617290641538890143358400425991837234116356495472863057899499955565725225565825614136540285917674801182930221042467142420317015944814698637594744890416211589907894067641763583415761055515151193623107119074088347874090827540389772902172044374056587978040396220023545845377388295611091334916270209355832698367490887364956371793915393102806456927547502191816687336147267145081249555424353436794626801307742606747055887762852625843395857958620959048488331213673628013156194550053553300457618420655073342873314318438904855340487914444431614241975060761125004681239953454647302677598459985517253495814809663045189901868136437680039389414127944344932440988945862295941524483056408834635952648914375054316788086812195307026427205264329280635714901481101860271062759623336392271567468470393404766520637700694995594711949020356310125935689886176930481473169573767477370916801326258395858886512271995015723573544082356345512915582753599903740387533669154179918394938633642766954843099043871539373408973048769953802488619260273728343070094700209937491362943016606056859443403468320421707506572957930764175824347940357668123497463685941437668807124251857623965054563224759569464847669235432590644262768637610871293094233005235824606538080072436201292719722287685085402307087788795300371252801649102963209905124366939202697943075511858300199011904270146557972758233234112151007224953825281663383709595985346794972132043435827809760087180228003945894661547878589671996674293091883014580713702096302447625199629699051497838636308985238752305527327191081077961412562463324673416279476955405474086647014428308108103042524114721165911459708747578719638303830824985170089319751469168072804289074370670379005276065602560224915543976119460319370277248964528378811878551724095638150806753056143628260357300755124399837538076886200595217168473333373279766408224729291554234794997267997298080766996487785643501483297803067339295615052490448841027724207193787555969141564096067408337723337028202656202772957500905487820532197826324797955729609735550628747294660887976654075896652238202630335270009972655611958570645919922002735280908431890135352772196244604907027302288460814834405463285524853501112226627452700807080553145509247094848221658598836134072161921920824771115503065839715148904591444808316726894330108636395373198791611211151394154376116226032556926579565562366322504588316311315107287370654318319755039026610206945825949133569396736552818347842301045775880567217382240085782559442230190555112898991517945883792071593311308923103043131857298039840338760919716116938787599521809620247757916633819446913660240813035307859348672145444501760547247422147635987748913918766100990230172720524561133319570018785428621442829292496108976289675533998325786353327305568981386398064526539375729250861873018559406808248629923813646704415797104779752362649843973128858368222808303378548330862891870004671738822592266106536835778336475674234456114484466611016076701363692311317689357198046895791527153521535198180229022273233082218495250905881167595405651092567960303085016474365870434726102186437795341078865343811509452467918932561042239413532512075745145093265063873428487752338203309848956264714788867756032800585809935167127237174129531696145518383453887794052526312680911369273591579431298710533854971082751109205250852961261769943494665563112522619723086568223502515866701330633352754361146094228173115796234222160295378103791002873449823708180390702421022575882398094388228371898721445649131289472912850269838872036658079492623221034632168175817753151520708166879858614243159649390756144912020280945106595836093458079908003037086512402567929837157954667382587944107135630063882373859941813417488122094720772662348100367542598681563991100872244999266959605347075373106432214119995000293268723651103130944592852484627861636708265206346950562708980853614693150006955283539583158858512027376510193100221449032649712111586284889130948138805991392145433658608822655543297771076306492508873173796074402675300206536102902578897967128959397066073159918922658590304576752402387155642211896945368862875871432178595223988283859167480384330016718920683018847362546191314021165365686739631828029009575698012595041248481791854513666512388328809011233173504515333899037162176218466018585074614458706194424029103182089541146331682587144276739892560236758538609378822041250911756229416134991275058615756852643889151338166887192210706623520118075258363132912125446317374388315250739689318558697256782079894162300778097854779236861318497217560290426895842729858143991735974367277887105814269548057457663569402872233830168758273873155197004000315983726622812362988112073096683435788018041973510876392387574680131076420674312749127243281627983704175365212517392251850379093710730597886132188912776015724649226941950450681642510312450955071869757030323939230477336130404406550936682100238379241582798980108122009339450979568137856253731046841747655192625112280188220839812966333890398838043758905530079838154737710904831926565291309437493993536941837191669500234280807946327575438059087379753640991654054675015024377515272670843057012525600511891867756427032362947704571888647677270190454246787592502072948009709159442870584037949246523087694274979216854000103139533052977748988026411747855261496397467592537058037944731300368598037350023446823152510742414644820023830962580784019639524194972329161390158944427238611599899246552946896422470086586388872315903260354295197418388546581434491434365540018807007118401921642687079041698466313343026000902236421480937693713403354239459773479138957695585244440843956458829303454754442925344743088264499470981727056216659187363372255076013421570121101945897659095943397926260860959047486850271970051123269025790637218703137756801527061934096292661570999518635668285526727362981547414683369762361959949162808141035593512929131055253367247548523448816279193057677854171021831471766190618365256021894172931339936850541603394914144931487089217986615724357154019324384449879657729002936616955955027580404389428872702630455377368557594498215695211346561372257144389586358113372563654598664911303814873392935873088193914917157161302432408363117707115005605630145927524122346183895684627816666264773020646010359329390433232355723255562709238012275851413946221856294737010158793262914930560436971661245501977316693960077839209999013098997208948401207910805994296591983802536124199951440554415385338845075599281336429948287419041792193904941488642761950399920649663171604209389892828118902480165629714098191418933777174205743811808968728513566325288183696344627086018750284321620880405269629422242727274621052224948040196263269508710051938818518693911020110246245666922691587762343286370377135810162320138346739191573616801530310466902619356818262175812922484972864633809610371630441101929027354297309711964705294533364490966448731939400205433533632870443202200628572005118178625528342132999222826545008464642003205305560101803929334562140556921787538171461860883332633695611419594968151507495735384277217881727034131188344366050153417129762925425040199145338400160439691102428371042612845574858194002259776517938582006687147744597505713167484556174432095440085726156119049821066730759560211412029000090268999839547935761692457411917789607600239274167099228598424569734085599712137769645449214851758265406653338522685383546802504396768656084772998848881109755458273803358900495102171500751491721567609900920512876435755288132964605056741691472477425236459271672064003134020630313221047041084295741766739932102688942404769931736077857970931458951703203794928856199166581158013704314958199248038677014731233611374806269053722029329489731413910185224030343126982725222603296710224380373030190920150424045491714281752897878420029790517622961137185821584998807640187751355082826324546216360438973143438377555424563444051398716322759570340047308187372176657612775585300459660326772164359310368012301209789536671917388289510976356559016808548508396224045799598023926931997846370276857657440447674552096304997412321468975762879135052458535046597892519021015503910733411630715549727020446848625100933965616908436838595296371608151964472459977805791434383207666398978970945991421017742422407545171515875633266607214921761385523733471685368430791925805005554143101425128447291451789730899847879664276284275450325314364876273386919807094004469438036093745565278589074274159224427705190775668228132891374682786061579672174717177475540132677982283395264999238944295831236540338729313674552442943011354068751112963626093410356714041306856964533285617232006760205432765763123359359676460623910408937060921981785044279392611158612135693622212009336445292705280028522084485027638149329444765042334483109951849603618867050595015256021097319909661639086115476962434747971069560153482080456183636117342816017135707394860570311497148007089902284770029870633316368367140215943761989747327993015530620169583708117319894387928933499425614483175097164325724851275009517981323320982763876624839678474314441011624452897987207383111518501261055500127802894250833079792720025978150981948939088431546363092975241147345347517556376923714052834560254388843073178183691357616232112211859893195087240454974808585152198786688943494642864257568607884875415663266425630894161800721904979679293264088538405471046429764707525820614964374459342156660739069074856494264434544784847203762361969509625011038390999737122091481984685288604040427676565559536291258933873504853680135658713437681583165126648470983851224291747954226831334112936480585572510352755131882364082838121411270470763457157685359064761983216438342229383428060821825743145559933200861404412719271886386738909503731310782112818914383322513738187639069779994888959403419736848556766093769574906579157094554235426968663078527695902573443191745713242255977658333386110610377127437460071058660828469130339790143225313594987856540919945997018742364668565395572329525666296394986141886887404624561559368790077572285644648552801717286845473673007609550444015844401799532649991021858670140433308149330407461984330188428371329433326655725601972062443663910650646257323223930208082327850377166961217436991702441444157797370746325583651445985720089090510719284481288254530264170482480030130681978225028291716046747040379775422720953963543850288042068517931210929478593735689197789020036815968748468352791756838215819684200820469416219533579037479267455346705738651095147646315089144536351261993471027416942646050345488379257121676325378479275190020344070824947462742872501885725095920997140004806236627675010462009682904625399011558880666438202318386863469468965868897270256611450430276982501593531385733638554391434706790351708995942549129249292626400931661767393922909998287824807213539562839220691738025869301155090712222910365193833129192755538552704755265233314885441925939848288856547480875610042525270074086013385166813107337865648302559794825418696771160727432807143638813186972395407707796792613407518535075213005889774404237567746138207670382116732293151633454227768215272078476616762368734007408302623524712203323900266117022175143837872409926407854187882274662332593337976160806662214664447477831969169487542388359306168394178577969350089008442283736972708935928773874474630422884778561501383345811229312766287583444433798721883031248935101332286290920644968108591784371968001671075810591707846077904204346907500512286098231694685074858445432490795392378079445092146200793104415783829518043983024778839634567125102953755214716919408383781858246176683443816608434870847672745145742084326975829810644331199027982304044476188266506992643285532944234892532713377892669405302385645191204413668749581712474591090099092173452611922513725272826409913252440044386818059729335003183972121178709335048256573820613775535784832088491567957101592494528691576957291627404419096040284996399050812658357631898096867489205032431964522166059011922535072073592548685272499657952488305349611948855701262695037459115457542725978256500880113104626357541162269147768513510234327001931682044981981077115235696714756127902114770702018811377005154677454261689208681482261081115844539022065786287688987220343436412977922426910754509480335978900955861229140320018925490399652841741333699193826071095091273801270119384204892585011247701175486319074981341937587411951411282935870911965410023202608856841766536209739263552952409912171460552022886611933153690965626218164283190632839052000189687597318363694651069324397381260961810338602400292136280988335533046493169393627887688816242473043100006134942984687047763150889993622345485906757532577717927959604225718298453314377374872132367378014451621067185858036429965968211898697302357634400586863119890978853803657283181216667214701733734042649421929450676752547527348772284306944120873978520712150232095921420620408943704921361027919525228760536628077842264082135082203749454495300007093667334692741391472718840678738676515366584128858495750762539278066656208148786245401905843916466723313461327239163632475658521284629481377588904605070124443150303808309874774600122246601482107934097540885003441971871660977954085236231026800700679036786962195913846918476314597611609380684565206892617317010869771414144754762886143356988146330314693978651965803351069073264487392748101434165996238004640247632635799477861876402667808076209724480698256628997934529497669531862367080519636218698512107960747535228903074083773382703190907998042519446769513570128560771343317251500165278141831228552903943073735021321478038096637113422034504557018695348658046175062114178054340762710853293554504189588082347561100704417941561686123530057852551055969205567904623320729631368059223277567103279388802971326247635863162894128888592434383499713769719861006746290259224931673308354169055634856928089560370077740102370339758479672859551530705945079866747427442792136875527144769194389753900780453014131869223055640237711433629157605553408290228776972677601078706519106370837408145338507047595039542173266119309006134551570873701026121495684633343457300337201645562940757692685825940046917813162763481505140220555076068646523456934830371756629814977994923274316397397904495475486610197324607613087355094524233650335114765577679197213273572560210024007393947238924310635277581345372784195279710310084457418613062516327733121264399703011171567459978974669416167198789630473606472493239012173155361579633154737066312770146345591274284175461679837579684835191202930573313192873358404941640104878874618875770291188103060264093371914449613584198655406742369193643915524611445344088248506808989734391375975132901800843234232365362206559786554131347026395082511136325270060988199465962979378040402496097068173747391004137730162409507075465694118808163706837983152965352681525828440736549341751505367284784522176161127230542343668264814685875065098836912956381380032545379257066017410860828575070746807743358582107910843201386988116295422978088670738411963740749289638382642343592980785094598396695558367491356797402598085086979960678374092391463291842326274623389161945979922022256042291048272576914441649946629011752216692271410112311964201843908796985242290116438120579298225930588632233736452390967648494818284503675895183342889183681848908605655769367892378325744781042849803665789522921229921936670046485405408022062638823519566650325041244845603216299051690891311867172238095222120119789361858198639531255004738000157056187053707891244213311653214216452353720860630502266922917194643541155903073787734743797012434401640881717813104748131610830054816328554873149373152115080580086846056935011615273555837281539729678541321637992946403030374194356656248465717141956806852345775645799668473592835600339660464776619500914423640060453917370070187241561631434010760692546414180383368533546925497681923517703243825235431917518318500718618744042913477933801405164494557489762743169677379719540141531885850277517172119688127046615003184341068274839334328994424459581920599841447808091429627666361123525057483145662685928429530963625970049842023190278813332497737635014871409509109857317461653372022019844915289617961879340604628045278273292805018498478222345537892893298611389133783065494588839976710303540390858889275703030728736977820584857299014747297718770837640028549384913743144183162805961934095712406086290794314485537537717574597029783237161490721793033371687513639680165897152481057601636015512710753703014616130624098889612497944427722882228735778841611781809143219711800036177866882057006142320435647741381258203602519244592304544787687223944949772790101406417265110749853734519440567146393128401194109203504182331261685875461150713038531952942948949844665479798218754794253775653263082214223795296123529196009538436338993457109464943965206231710792071374768100676872296129493118422884106048939565239421667094544066138219183076401283752469355279839245679396000592727853615349192824421778986219200031079415247553425006927005513888053185516719169183832177866668129558226558052415496860265189065486651504674078544240705252622955620898709701608698836030847799520989274321117529353000365770752509114490295393903634602163393319087247934970542101644535587684000784760963769684104399414700800737950853467586286656290594471000581657420060600283865821254227699080705888043361582099487586978959610263140430435498726565026691410669361868535286254780146542851500466605008118828842976328779297045807580848393274635555177190114860124283729677181190791395673776083829746540699973917615553973515032007301983549446482840970706218105847907181209365723891986036255016781918349046266256606833575613194290850148779172226494099482185820032029934868824377114806605104142907687914233802292040710276633219972838916611078927955368535561931349271370302982811342730877950587566071078796637262800698397746731190833237978550901386289374722046794805326245242244462658733580879711012068423216374466562108099504380698249938349456249426582753063650304548378094966528479743771673644004584587916880778636633383986917858184649578608837707560079294530764778958533412870918024286562334497885602849228582706760264320063830487434365298805769353619061355578046429052372509501119140667950983611124647575439315074834964800078694051768241747377221697445497654101011666396929282707563440666641766793169300062135530955753146142480926386269529466440972166331019436151599361028283648559080869829129610507671021494938505900552331005435434271720902834275758687304292657568535669349459917951980602102388319541247377344261673586912123989360827532730584201792104194666668107719044668616150428258003390827499136382895971252272187633920383066145366385767534857047178364019802270163181568571894601380837158139881409775011318085468637671471894562881834090828633349947683259844882351635549328376925827116579169100880235115755999238568941956568895586990967660733916874037660343163848644178327155995749189509169582094075366685772176625019598885194988109239017488292521539151058817537595526061892061485439733694055091695615334079750171257541568797535303816506018901302604046518157362361708175035627632226533391916758163874800186328346296856683486065570416767006543460384939778549694331067617019584898632169678198317661988726593212882692049868883354032412442215971955951652436511016848803858727972688009574238337733295700042306641235021302463988351948553599513662594154631075367659938831153495567726916921217662124851855548350880394095982144432138642672689761713100984810500555356536074229926764789200025602275525420308116949270023221198197728270072196573936502708259782825445908433871380781270830880553923786199451255775803878360413069651280921830718471554489124542005218535360869873606043006013453626596615421599350155634777920599040313566841781626111335001729277600309846239798188715720642323514933742212722891138357332814867215755353169745046682195295767740889708843416965756417041372659091979777610883429993389527719497056417901574690820600795043724419564299341280697295939612273325758584940707335738947016192232118301900269485657682761040270296895382264607859282024355700795576906630564129404122320522116168137153030906115198175658326677676260638586733628152774903033298172663469000513636770340940207225434297670206708927651438180555732333702605987599699122400377032350599137386962408773504701805357498747560261407990073597529383943890294085841470176918159479771518650768417465609259262519222836275106924859779840195121692718767264758754255392508975106023672943467486010359607254302477846761074417042372413850140925384811691696768383167605070086299082825999326372892510468940037408339374724896375007760295704526896987970727471166401900656744682156404991945314354999612980333207240837603282620348172444267506514615809046331323649009676052866820336285319674588332876282984191929256601348204303749883517758021689964825606531809482882975399326734102184301862746960930522127552307501311875191938831977334476721720344744751749828249351393818273517723931206010535639432095950596384597417964039123410485455339978896682909563721942313872169844142847923891393252753398691902073795209603128235315438756794012762760252044409124895680096684681579340351049503619440140341036451091718470111507368448301591437850224676749056925499153807840215165335069326858127451015892542937135608702962358528542063278559543027874371367279603584177362537159452834505329397360776694620768413598577148978840291519001008013564272634623941217026484656934537350100451198945789773893571647087516542029827034524193102328562103220375287532947790791411562477632079216787695583229862087290348396228888693812961704155855970999916419998250795320514186442670536302616770543792211106727817556490208945771884849660565202788802760763648054179259608493122568075959625384947334394858984904145605430675133597207054861716652494732164782034599360016591056730798874358911744928482244959087543700225792293765972311316559238357756913812088471390655789565376732838160496974450991935026774095066705900911049371745563364645602135447984809005703103060792848944128148382809752795546501538896090738555945790892983061646749253601987379906029075495581400087182825085333021767920726007974133183274620282017050081698704494784509940296464282611910459120861561381440019290396641085515877480542370454160604312145587131752572063452644409945111983696169518919125605940224708973393314925336043117570265736523057243302566056165841470619278840142276290314194236364490353813390006424973387615185360964894887785105730437897868055020891315673210174861877938643524528324109760502022094806368735636720016833867033105974240670653416576692875437070477658214160010362941960567759954343108752837863899415028954235928841548754524877327723262916103654018803244215573550128840380375472288820738133536594777513401152898380552961246928412180715686191816337436953565504757327497084784111478089634009242159547407299340232828453678173240475992907161180829573821865557614823445468656024771197370872088431395492331846570413777454310622347562113142073021804281462607508513533859192959328305267347406448192795840977039618323910553503315478849721758122096140023147397416612324711751011418634547696465349422330732599884221783572707477730588008720375858312438103846816232989677061608057470142453740919986169244991647646251707252771441912393970662946626387408259989242164116617180449470114765719612006159489939341330473424792271242841960118070558319234185071959245804996326350741221804950899496032536932005296387844699032831076840731317393638075928326226763079026645467125825033179785625708665229469254515695450986828840641042111787188350298289304910991801707206287442693482128628783266899925957816842149083008205166866317051332585351170289653685485650871625688190875615406211936243231386570730539169238567859859380345303552058364299754595685615701676568859316314410336111187825342826358398677028369248722477872577476207654742404738792352967861182335115054386864984473830275098195875927752931078045914889478577566319136893828522169483671903914824178378333858759878106715114331429574087801705001203960514479587220967944169451465204203554361246529090402921760189272661589662366114575297320020194095516326184636440700128595684261004017892637265599877801353720215869702962607656505715070225764930785627054692812326734609468533892051800030276306352675576452103540233236339684509521427269244446807559408328825416896969237969589148908088330228840652918229992468882597539019415110251891139165568033030014787544871477418753330323195994082327751014543775028142293652784739143325832196480793958095623686393240902787863968149029473367413757940793119623498352408039447779654304933173995417802103156064149685476094672384496812018292494330504144076378554941253733599180233066821837406147732590515685834077302100866222450177734888015288087876175159348584873533465819867967080945906247969428838506904539110533592307827036393715796655449293518166378402961671051573543630603660382285871013192369303424799952164054525683863077165370138640293703783250975061393899237622030859561252484895840102928347241312559459404966353553767104156262121543033885278678463959549250857032662177835509675938740515102095617889342658680823458399101841089919044050939821780531814009398627666006958280785294749970798635933168776371011854422405035208372026643888838900510588100659948650026058280651304994728716932474838183435964934140901350777231144114967744242566344219230104358510190305149174657912527536677129250472308874170456609967115895052806073100998429032036093736448768673372016396918976761028784619265286445769619992031107172699738333564658920082880336389027195241675696602805564118820595865812838832672621057130017733620357105697186068287318275770703882037266849184478248126290641957614087654539948079025842766598611877827559162740637467434071392206218154886437441376655515614936267625170866619635016413453881397413642549744501993522951496958587695855265722537421165094155611341677180923123032503340673516271100324125030194007074845819126503020516706268871232681324936265290694175304789312913676257728043074664488966499247035434688408625590756553250715810517708328590390263679331175632032847015939635343840391116865496826391735167342895339634199950572288057287127261335519019941161542183599157043276107437753091429274201268077183978763928130397558747766903923218591246223746207547820737742937561856701689115948394800835364627291495361292234463784211932163612437897809385280064347100384665308970146747720802123572566723365380104073561801309769110434946558898890177638590767278649459499686103079598783585997701151107461212121336050953987417436279620917196742674886719294759589001359623242591490764082001280274018187698276472703378617110707606249877595184519778408204302776419952152388621287803998651668424335098885424877526860056881445404219735503186219508510827102791154488489406447811754723023664353582021318033808755543136567138104481179603373252503325315624571228216086204510954193645417079168499488418008782629553371360169730854366282854741936768261669900056345883608120589419387318503132020714511283740324489324417792000107074296782402460477900373110660905033746821499250499325820549400334297713750564390184469842919882647082561495966757082832549172411258515357636423644179768492759545202917098278526825261119555021047560587898866690167579192245958526037046329179378159225197395676035733937469362505920411411061243225331573074821357609723002929775313981790337367064259406909189394349339377928496818890388344968277647995707584404878441582047222011228220334429859499014819253681643685557577136290558364384435316289113066069088712040518024635339766130943202648593181691838337749461844331706116018441375720522979719276793872162817497555559176149005931421096062474650098794345224497714430709281083644255139066586209302612475225822122384511798243708110197074356593337597528006503071600696741277640898791925287527129097258429712486081974562494138646324424794634531808279943156094189798875205360025162030614470799963868053595580165908973161097895022064205880593942603617987085109266704781876760674580870350448983468028088142683494107187488045580559009901073695677037444654266690545205678600076608968650300723140026212469569254155115946554459693158572788236888155115268734042440852524613009858733073261519678717423034547989074870475805334744970658386662599905349553113576193375294345695936479095391105746548884148152370819273317304688028996202304213122303198668930909864238823281170653653567601493265694387007093853481672756423327205492218893892350962409381604977703573566498480890123068168008006029838046841206399164310039301053085366242336961965848279359402577442552517365606496889588029324925905968036613409381788574912982196032136687420955100127246348646703446095264657629148144200570126784057865533443836733662220817718030330067986948740774071008715082830877862188115733727678102601891507513117812071915894720956668711866438207139521040074460345709205673444635536804334904001133838310035585947425101098118613390005169450400765062866010879265466219544135775297993398927540189078753430991470070081834084006410155025880543496628250740961267283588834047921387692727147235302563476565412540397358256254468834221702623250229647147186132206396162161093037066304085590249814218272937407722384341763707758068195537897004886834458629825795906848337313724887452858753322623476544552456439740520944016552847799261796927718726894149076648199325142788048522136313170512347023990743279633438519274943407488912952510965329430545873028107784299025924818104959962548058818896219577808308212250150873425423190885880864551517613671575092255707005893877981012925022719320653543939986181952798399851451088919783432802509380123288428949705212197984401216468887079411718343165932132383070413362636181579390359442475687342611931924074968031820667490608775398503084747502977933996643084143775404838387252484716663335641891301267252322811521042147644666513022023633866617019794721039538380732055488538507588744213294770366526765590740532316362797239955103754430006946693865719721122678151490575939653264870606424949738040993045715490485482507074874474869084344969914994241361056881172526984135107482044372669985487400951985077977039946059134850592123804156122165465902528149405018697330415934372316580434772027109247841366797931407347708707264131705877655938365613808320122410737100225097650223332088944881763752312473987971685415821235818095789462481507770967915065180958699227314881620448606722052443347182789556613053046599428573141695989582995682866495008924663270215097438888137388225160912387136625545572140152865617135753155864514829535053211340344075538636094456130569555535735835140789193955246504371458452470308656205665188171201903146879185890606218912364704961751165432126292464276655755111768392231892511506083873872346447374423914432841846164926968045678673279432058254097586359521372670167193154151480982805007122090273057685634340282463397707805661534364791642402622798428649088248711418975226500212440619098330670195631292731444132744301482512846097843433316213755068556528432044703130743256503030691894149383351289179887789176111236906255776438522875863023607058780695283134016231414358068026664468434615170918767973084952540155070166774496915868946487160433204032104829872661701677920666797276756401194481148897204366418525480949693943846171572036189282299161948599952447393786388819234407289051158893513375551722230461939432633178535133385972245985281379952957469374335986295431598965846020784359925392697212560481509846563086802367409924393082519577630472225058345718043629232013015066001639177859270520397236516128888155819831649422184529904819778021222788433507874063711107827366935143209911687129774068681079468771794077314955673260251431203154940289788824473871855516580601160316401583902188807982660240923280072357808211733854142356935587709815243835994887949989571242101530345571585963456452496137764835094405577435384656455545304966415313880587995433397485090174511745883118774295241075918269721438034246180363658868208713896582207589015549339079979987318373188870777777315887123100790552860611160301370152737169058484688805132355619739412821748602949220685640539469631800201416469404563336225330509964022016821475384485095517044477379553188806535326978572259756754528321652153313803574344818615336077291504937387335416993437334409910567018127700038293143927299855497999846905144170499918491188758081745490538950284874994233418439429547626408911202113686003183407208235450682661085098247367212940302064261192249566313455585793394277405560740801320180375643783324237764602382909040384390971377132069729132525944945879075710514069408758558557120059575644157389541167155764155071584553602380627288604793828140334438178781731486016805336330820147259902526752143796610347367814481476297626466540076571243805381623795337885944525093227737218903045041625506743030016770627349436428096056301688946597980382113981192163880648112860841973800534009930966147931290598278633899761167506417790460269035102931355724306691620446923559289074412399800505982588021758566826050201464211127889540175584170078259670680415521464990523336562609418145839655333369262858962698291720581824974636330385304483631150942654516625122268868122495607300146791344823633953690434461286654189264332008237220289021336052842877007981129150795067401719045703981538933511785820224921068717444858271932588810489814421465219514433900163969381869732043512597589067874862708241258693579321848238464539885601057025155936724021988495167850105076042493510514492595340277025536961114878443402773785294562788218554104444897665281137080262871705696523551036567754211575010378287946844382752424177647891056345490929577928908432721024389212864039505611268114048600170546333134256891350994802146714642205362951503820844158615468019242643048806578708669129757569170491249722752911059133961573530969960766679526338210732230941743892700017152906741780168409573344105793902237809161910366858948559606059029943282643087844228098915580755693247206977823624591740246225092041676362984342188786554894973417722307364760084693100513329598345625783059503128063184683501464554806524882368299816538423559436659065593888799387446818277667952370677431258241044425115365940346939042701829105499839912514750409536051550099836073107725948668391403722860735453216312415100598795457239642846156253796793645344701627717318265910626657526796940439885873259255702528442777036139274031353368874989541322130017479129008634332168209411213986490511433656997945012699461704535925539525329138935110408125581698137739480593706217492415237283783279098382863221551251375925816463458612803011047815262885227763536166862991002881407019193679327562022117283907405418324149964756487092119956542856229817833651377305954076071319048907896776961165421206880205090335820143061653681558994566503400819172404129926834642597880696939251680723060430477493136211073630952549217319937241051608694915080910262283405292079061538482150012512698097012323510622993684677388652969678602127772307936506041792277692262454899456900681173756259116319243449884796735235562002609519456365061150700119589071903332474197996702273273945370263687986074796907392689373718689532430399793021434598486881083877724752329896958383473287530487268621986771761114773826018924660706670698789005711451425921636671304986442436433170309340465975100919375759784882615126276091818084461282865647822901105106346305479968159931971996537647357414093095267184849836897429695626244367841208751069879367404516062166907000690892760075304573023995018673275122989149568092290948024346364627607392376696440139771705658636312443927202484984448410315288832207472106197137671621044848288910128466297773197262498569837871360916391805968651325903273506849849355910165001709728790000109224845945921789247620692718778889511988806051853370713368136013935725770705733073007156912799018135471615415662213166345640379390758364614056228181569800078265546188038697853082874338350625100586490877837747354036106447434942618508049257723310431142494353286770694959154634973918546951347347285273388911542989138372629980737866724673461570923812145479177019073682821073827092081898219176027711591826062829499906323766791127418689781659460894423300735340991564943776106893744166826809620419995050449944610706985421150711949642249739611916988038904292342203682950984339738411706690704032600815179117720140796585526249715422637250368781935155560577643171148315014023172646447004085297047903727857259291053704955617900925784294822740054256296960341504946183938041064316202789631944726619528211606918039724635818400825823862272922510124093211599119600331549102074963004441853083979847168885413960628366014196073719503408320755537868516519775224235500253477232894869670980759336771703870369452770141423107419789030585991609049275931145748425681022177498389399999905697029537224609985448280666691147169921114936049470640169829064516750174892835268490678359397382330216384885451579035790018359392639609987491928486372605789756692321919785440972186517932312419748360619045760772797025552229115341491266634523371759515620977093796154405245641011289612749649353954080370835641889809214220149344025901976025329288823337575195206915419522227165942120860897146250373259463344457722025032394129015072152552161405384878293406302986680978454328471176506636779260310069231430378016836306896107246924830761908379466822722117156032133751909615453818071297919576763228889613558315750163786803065433349806656263661607634914958010691349235000994764768328725568571441688551850111038146129264327645496679822129155323793819900431624678337798445108920366339613660750229524570643616749124155610446001880847081934729622860391228094836541098070931946502989914932771624124898605648615386405972425792914012870038835793169808833403834598512697349738322281498576448847190293078846418373122786642558292915221744035808383806095543282585349178553066066449427126218334715743472240593783020545384948043802319362091240590752515336901020867665519742345909706379184825225145324938734088370888423685665227492853529814541312120033366896520469296795340687503240641011330359354686012903097636906839667302456688720471690091350919788929283798090023062827732565470312439802888331369885129991676868249697497122392239816277881183284049561864719601629094186699956456302090219637179630952221421442647921192856314968603981599376075090750777155003639071965796001209924140070815727022064443435411239380137597668637924522127860167706418560288313463752350627066951804275463492713336326369360691360777931002070687378373583606618427703987453266278267160042878941947207129966663924201484186411383311055689124136949360620630388889828860062134006195633218398991115082876374976656840937519952990307755254776129276692242081107018993698896088257600488361955412106149300119980223720135112387656099522833117867112810100080278038082878364681239446196916438776154896752294003069559828775805541944370345439485714927061424094327830169188455088627005493409408075602563463806884605299346535282477042845943812112449049119248929578488976270002028588102767007732223367445343437912874394259845384595203853147834810594693588270078472257357120997311058274824901089369963347303447968006984616901476372170928001639819329853211834194667028074603212335672963155704777492732700866954884911386322851403161318591369751535929718208804830248345434105050824110614416415002842404814275970075383933276081370427419852540852673634576384771685605512738298903617826968582853009354618918531136074313352263751460033784598682899138550689524029087751088685880751840583567035695693897116630925799978959978241800035812247696671464200813094918667857062017260516524329940045637876837991175229904208715495515151007215257621313992439359461386272305396812733074677552646489204844093450130714369430930113708498590732418161908410181330333910619169773954552990594203803296919817735423355941988522411024010459764632311298950333450747054865846257352057839429193489267183625349223766432718410162962325302625520271778390004375057557679056726601664628468365054196215219298274538885602198702835246954481807667726146658280013870273326014573175439518141422768515635992486437648577726484871118558696898956196162188239693634386012281810670918489205701406637759774272791252066872163172603128279117615224268716122133143128231429903699499435854800239742865996784345647065558337771847788720421258053454301381254083299999407642466374153870177094529955318024053733447440013896211921493628793533888167234668991589087903790745573316611357865541193787039826983402105095046738112507214868699113136134202151605815738169689447568741268428710042553206125483433425722382469803133740421988508727826918687318651412045069787322013013896876334813576333118896827035638289482994778260733631755905131698119769990777472701884579580564426965632994093138620079389736873533774899480685592736962563098985285862851991770070474109011070493495844360415733748485860317120380299094035685350097859792291976709572605470349142520323505943935300093152066366354827333623047969573453040499820777458238471437992328667735180336208489662308239429401930842396997441895491112512535561934473385441063105844103246677237230816774472923927690162444579480335224714668454675588292046436278916355141884363478677224012341444268785477574153548903466477685322530917509188562127238692450080224063495696333273671614417621095123842141507865999533823216823268425916449504529771632485204703306268940751989954135961149653528074242642342042337747862286218129877981693962135273719519413523354777308672408561041500040957356460616170089157970163778348437399331829698040890611100983110145502701833403192416802709205090881367238156205835431354405715838125852164442814529977970044287630412804198127973730683738708484808375428342282024508346494191733534609426772305183715102479074148836036650591017417893911993399324076332294034599824740777664286142205732812062118441229470388427353128852514851127579350272657906481549561375757884105606360957167294039644529655870250260484844326054531189725396080857401473622283581619003833656586484629866589231233647610986758691094718941811159334762495081680971371093493637931764619133704818488107228796377501059518122849973631751107713608138184892730915128878756981487607115585730365210285893599751190999024726136723889343013022083669404761373265372595908328727356177112584921692911450256132905768430264413508044146914690687738862430311681783474738436063150725080363883515808962801715501334765337074001251791150686850206712951017113825762922299751621933538612995352987346623771662111772724645175411330762437885882940427474730861581970542565027234982682695061594930532913365633685720776308560136488829309299748609242996872448849040363762965084396790929194840417699081046670109831233174922526580903974632818751404118668292811969686507479635384949395758386294518824915496884420191526205056121311825736560053408110610321885102633781585687063082992453112887656009619845334093571367777272074172715169923143283437352370239947219033729456203549696618324578776454532911440415893960483620554298877972701354285464704844893203313835285726739571964016916693286754407631151884106866992224368197592453121574492739943356452717943360497860129803405991536212454707649016024197068523996735043782626240076898333112803954016954707558281496851882086866712280527485349204951172918821097156768013956869520539633953187324376422911107749597557242417931097172948649474321200111974511111330552867808738668889491488846209021987499040830014863146929211728772182463487779057949379376574787828219247046563975488442537090878499754177787089149660070129138505518244118635127415219704223783521135347271648306420804164653536315509777684228428458615898578194996294503646365734104020387649596325241052972110291219155738684921930425182554841846523327130960918478728603643350676708934820724410640892723087818713155635548316738349834018232636830325966666872499122732608625952014243627315159204067501656798620166447225709845584118033620517807401178635392386821271407562751290787706809309967984831875913868459188336970305580069923301264734437037571643988445061455549803010856042734501647026892886528445365507479441987346337278286741126688505302097175412121425802900857601429932539689010455987782612533848279684586117528254830908643362682463764880449084748139254987113634921309026694188839954743006956802389739144673014656700049873745224187979499036020444874597924833764626229724862416675104919487506002926674447783159689099934298340562568462689440440196310034015052447129423161709723088075390595839185393170296611175083575665895554047600252673274872768410071044032185665926287359442016415113965602673250040261974778693503186318625967912104352633044758136353864574367229660527509750072909822322789084449135291231756248069523866406063665720060919433674154082294245509359240878441332089214919055565249526888366705763646259909277583936006510007453342594833696313624147996069668324115098979838060422089478159929572640148919886058899726571652495099769285820629827262398625331003647308791880342625094316284666359070345558178697032779786037496641233748032545476833094956126951636837641295384203065986373906653089071842244052103603536023774780879164606038186149568678835831562581837237261637884149548099257667751933424175911648500771442433469120540094800080353868209715275363659464269341568064344903319853711667631839630134951365559123522809525044708840633757742458498495616686623668312166142075168867492797683841835023664986463855914169072818334389294548857025606501825476741435711474473039668364061886982666575783212242762062676488882329333750096577232009856601656012191413030332514207585903183360953377281901482947745021712028694447321769580251723081914728678160971660813793572514048288172282353980135179805805231531596255504737365258227850027550346162541137670904764927148092454822245228094530067652496126054264663022357742655764132956316182230129178391509891203670528294705773913468790220122313751001511843071640203500644700666444931296664089158854896744920756244533541648988631382870824005060238594810779329623578287060046252085125576283835866720634056436207122515400902786293763768627601775020119778924418132760155223291670649584567957081571301033191448569087134536938695538357108324258527919861192920449928276268130786447801531322546568305847608904691997093502837058961557435524415130280581681846999709247714609136492108045655645541452430535265946379005228335527004599943765598576234290846683763510440330077771377472550312442950351694232436640467183910982762257527230109431585098226301964164333898159007813253357406191187631223791211814356972257286032178030105484616143825681636540344501769927991361949356805440019047408189806496311471996462694325782164312188573734390437524078747971100001025066013779613535719342343751872734701149429055942756643647784112391654680896884471818753670280758364325211129485822804525563112608749592825591856683306060023343257441548303081327831024258887282955490594979470219326109701136570701618604686300099476828760038062284013308281195449332155610894120711092086470996147027209991154793318127440681850337661139956344906340337386657626935296162999334111049569059368023006172775913181587399707546657669343852426061033461792942091367767451537543716384258055863352007219404259350930986935067529090333983772775377746822860343078217668171934019142575466946820559550867120316886275784710475521598222217406022598656476891029993755488753809780012585366415688827959379564866613996141557987293186300730642061014922547394335354610001378612566356284917834176047636983587167193965232336223092865338707720866952458522657473484123559546526608482570015781666782844732105194750153092139770464156611705852987740548836719961984541565370108111883621130391453157629004220330064976531980045406659693278369426480764048566923066977589788559694674588202275495338976744574027187560119221436693000444508066194707658505841037408338206436498127285749940865140548289377407039258099124336833530334960096196423902698587849578317178792712840902217805345425502601181486862532481066868335049439455118377160366426772054127848153414270498029064155382590565969336595800614965123672585364106335394414071318901427086442777061217377212231891975443493196114566934259793166587232394345400959525216017259785905328162554036262264944715078194092333195540507931940397618316562456002806267779496186766067790621911375786832564291631248473007961190223603159619851746412573222325537436070503610955140175276715124776906526014223485637238630574604879657810666548838877081018541893912631949940958196974690731531697436941177830070407450203878449362327908475669288658331564215219654654568090010748958273949674473100186484122230917542693445911850745041758051702318020310567463554440202875611722486197155554414507267948929192877379771097264991567746129008315901554167787377110975112937390327170960897525664233359616497800277510090818579891352418036433471853811985475692179308550312316975043018245299441082463770279390101028781118694885256095660229716178030344446704326767855152402725727435812882087844001243371705547454548455044521734969850564675392394091246414284183007758971812647153843089543523341214496286174918274187103928730209177302993768429369660781965390902270364723991532517696836184933238804985516583964358362656429266316858278532099125558592971800815800106233963964753224908583589451740898591502018760583892131365528544543269272672708404093370480118077192539078986655807632712978080400210298064780453765888223199799238643065405379329074960472094325091030345417199285398560355133702106481282412174995357398036584481755951753175438897009066290034088115994713088846958917728721831467284777588904763616721541059666563734791377209320652085352892311513837840000776006245064001950256590940677230757792853290979228589108850595666675981793917910021636522456121942430537268887080413860486760083883093145900870649695608161521068902762999517587908681644842752460756707480610784261200722226864181914657830512680995974637262559422484387374721045460998624346956427518177402288215614702981084609575830979722984652612503615747462195902233847449309310347211002940725700761814938115513160517768410396204113447724161817542348657549772273119481115608213126497454745561398644772341384656839298421895881082449095937128954457973589327113314029159894974329950711170730879350616976663014660852092488358771112854262761602558848114276820875900823577388930264906253416837929772939711421574957166116810689010951275922636289160362258268799668964549360501854706959689609329839474750936432679707000757168000044680123762980238953804947428739988840527186234788542082040550397142522307764769423841807011131337648067624846641130735466760024455794153847805555987773005023068112061701368608754890551889147439749683991027700967593623995317521461028962126418716219250099868830333256151494136798579106711221408875185219908366034947422153229302959819819009690956701751618014410262085764393411296483407880460808511649744012630599270179593121323293773717248315872394803302289665053936277740598010000101101557654816345569337306149819726994341637831224795194959240586493868788504496911657802222708564273574257071450039812076773425965841705950346223478039516585070819837980359239633680221283808536823390036968680001576518554056132050757017899631624969863849935571192507932874879467878494676318174645818230766069840077236909099867772368212426808078666373911413821755375937209005169208772135670990604171080410170157564891999305290699242567117606035882726019229193857121622437907222627088571092189252207491286312221276005233390315366556696096424288313351967521701610192788207320326228676922681899790737615143657155616845742409192929927060017373300238778718754501824901627145224294846923433204181880139838292767294524043670919467151609017905286102944107219386820153398474391775716830963558648095533594644577453556287232387679534172328532301496717355505240991628988589547013821709724524576482490308631787182313106793491493638337704286317403073827934886656972949463182601822520012167734876299052209154683599615578452667530827004656630556432048473001121875024638111196764778792380621818436745017197481107477347010149171734042304660930930420797799533695082667337053423151267652293083339028942722702604066235362672964287785021346073241225890646180130128432384693721543602486951599831284494497966722920200939680074673502394076333461223771715436391888619403358181514782336887019066277347851340452543296512624047713988803032227732755682382869687007548142230515740629559202919749773679722359983434553588146367057649066694496888685830514730928188062747139111453785769875346023698616833981544240531374104161650935802831498513801016315246130813468120489678968321332173173490556520729406629850477337987580454242921545982300869772284701969311877582081276016779713780503793889984788474325609880372216920672578813427465145331028029808774146309077014993978023026379237005818361422783774243411193686633842189468552486751178866816934458297063027139491748523738620444071050560806825033259385251881578668659684626356567372534201204680587243907369482217251109508280435165096341968862001198363309696018420882178881967996899290419463117671388525589796985640962490951550639878557046119018537791638366825223773067701070569953009666629305913321657492301815908506703022872317923192508295233350679800839168035588315615438339693820367192989274089986283713859986251142675914038159163435238885066248311486765102581997706098490690183218831822948082426756967905280801928627026051161050738323088612774187385929322633694586456532235948695737079300248114359717058005673876782607620453720013432589624789029277899150735110493382186877094979091697480654189378397262558962555418229875209290817563476397721811050388256075443494052247117080916904581292806057216251400313088327607502897922695189300196981622998962707199275000147111083199194686023419823033268343992198804511041657872534778554395399700508550954495837026914736559046643836714770935085297291585123604025651974719067083971840267908781893506155462352268124832181204748877145935384665452418113977851143840646734151029435082902100393953564977385120946742476845423145183460816675555855675584428806298425256756980820909426012831514054774560036990907203541556630311314982854599301250810817763114741370330032924429723599091662340295003460956068534075104413326742627598885142881400910394167965206872284334649419475148480515864863679981411902666861314453977012133140711278498065190010763665724495378900903947122239926451880505275715542084154174045541158169450774207939627980077186222069318403577651065840857976774094968204823406808946189423797310011727169014059282530633365570965525220502430142869342801231985047980418079936710698700144597383443457321723944896494089608063805593508181111634744026703088570706242345589593232141109189539259008413568479451395396281513910205430546608610399955603216963928053734911173022504398013991320594243795582240336485833055443436707329734739337593373037860579979197560860190688262976112769427962547168247847889278782948333208345009333764630115908401854330334572320893281872630873621759452065231183018374823387731742648539090388562339447868247522656100605244693925661830702390829918838752377780047060082445744007181440511901701970629927760364904136679687263772689478736756256955130589834124439274433045322693521902846627575082802844146491899975142146210070160863571242285557014693678914415218167043869921131236960149105706537086713772250999475858376525100215495688412495046084080517624213069957926344517764968599826131988708466931109914430393570315177570012660966689828011685552307338986097922446721835751879127173179642762745984132124794802715657166907446138684690778555977813454426120357363146824525992567411349852554874720609220185932100689619937969154259730759145493207981133586811268789685677542630659509156206209533883945864866733886841573092773159458447759636718967288405053460224558485536478212774693329132272762825182127622349228263345785350895390448015104486558881097654328040967709970332254750030602551698512015242639779125535573996586088546750802518081104389218838620561995439047857990522368618497361161564438586914980229884505597440723012235237821098272824053983094884072924662113548497878222906477737822343286571347441502411206282571013242956861804154985416150749993602514453037257568544469448452068718071352847595945650114669062327761994044102992941149270222473436319552273119606049996616945380782546712457921669169467411620253475480382613860673841074570389413961712839743577294909392369400341127526437021294491922266957664196750227144083682353224304173456515679650089348809053963062226491056494236759828644335792753758249727729573711960284512324154222802730168218142110505744669747143106182095551747234359378824275992179996339287790772248268647273251558114265612634745489421319677422341869345697109988042146035477931308650137220705811677129544911798610997277327863781688486247830912817563899327252094208463478034825441921269564514896426020974990723971797612485463919285394908419170408572317969806356786139042323234112974429079915343782620964503573533600572552541892332444268513002689575832343736146751980520036703995857153525316651058882667672608312908436908734392980981996947176900354915474237409444377531250539527242843015305583084766580390849626228009943755053514794851662899726251499548484005962545383096058534109722952754153115700105967239709313360048143958549282827056649963093193953192586760537270863302364889582136808052450548337859783912667018695085889331846819227910175133424424167696562595554169744308201806312377478139219643090588425943447516651529045713180039243472045665409463909828855748239669273892809061017945009328399229883232549727938530578952767366450145666574201690846449206930202491333769169614241112587128262076349803832472746575485385746986413451683382227876422345571588767736468242344663114663045784867813932597438920749275325491908077919146872598813050601484515311855614483675999010273593972390667056605945675764892921764335593261523025229406164742608555954698984225880395689430466261825540197151478275795221399447406047000023971792524077443791467178070028983489634337368958109866952693836827905767891998029361043333799155623566481308719304002686822003155562551103365830366876991676855205071106804415042274517071101648044242074980589520433108899341008639897571037246081184504239032230851313087693058545854829960602378430187288645038921057687911143759270774783903345539451269451085907303552725783347742585850974816853070785807099630176567269501086051207736644637708780822220347086981836346617448845576055574616032617240059178489802209536505362020162413938572635093531113674234458889637227304595740976572094385975607301772448522145644052859148203361991966654522786802875210170447804891209346088817758009418100820743649392535626640122751688579662812930488971607392436186001397774892227313084964387238279425146478978565720462504958739696155273888083517757246388625081490052460054394034173506845574184573458551226885589308656676746451856152773196207490143643783485158062947528683075224002007664231076524733163307536683669244061900294568813982446464712040914178085414894146104125996947595158664806414458889819928961848048418154484667919460005819310485096197885988005421579226754162648103081680567395536557429728395525305133627422023728925705971252776810809298118167333398197082625020637422579708413847304567841380773912515430450491382793360379678834195369774555613947857726562110876056348418551837791516348242765874347311268622470817338505103262168688530920078724973730117600979020362444390060737485243998381625776882230047572161098692189938839430899246344319691429226692677470810198209468065619251206769305328669508786516343712031556130052436792658843019082155182973802292058897561151290063173154462789705693165408660672088450104190784830871024833430448990918251656405394487814106160671227486977988977749380055646087972384138888658159513273072662804861974783036572719463698322948983827614652328947089731287245830762087983839034456013371076993171096473709310295804485122218476568813934782287793205133761533385539008870066756231037548415777232641859976346668740861257130135719618887267326800684098832318616964467417503868864116362606109819885991018503848471252459227889694982726511539149142977611994299094361064636588483800223681408471960398797214067925640796253895478539938275229429742091006923068365322649689711200783462802803839009520552794667751964664013419471763734214228671974086186297484480350384438667758187174756519957224849394738654462444948338039665660364491183288681881752686790951858865604906362667812612397865787907654211332758056458530610312757812869204061442151648240206498598372645270720358730351897158695085249302819409563709903828863031423134792154925419869508572818592615870988433608542181318353323237687840870941529432984094377328834731815980719150170064318549423337593725272883087228532818299807922475980866875403637418624472420669041530013216983111884027547036596726516495344043266617638638964622450411969093866598910834122553815020604135351806584333213821488828365659104336308638410375123841608121878343551724890140777341211403919826526857263994131750748622438466965027964545615217573864028582257030408924023347382266320700963901491799673447798161813663458213335924388320396021041313328423993925186907751100867998629896758711948663130523478071929765400652278570653090704464066887351944614255493074952125514860845302477842235138611038025987152808392236755362997443737327646293353197207613624128394526186396508247091442380754734434783939143129640646045038086406421952945158112038847166122125069511114459190519971845998999548254302728150817476283377087578849480602364397310924716430052961278405986117888714248021713417681967878426966021593535597990398569237561108091883724593131083810695682823418241680915732545610511991588125498858439804232045726246674920571788354708991307686322504572473024917929777846860745039495849600718510149286014334178027046001935092348614303157103391221458881839013599151605826062326091196241492681297873766116088910080425545414712131667301826363268860886787479344579968135026152006115959793721424510058899232127294969549368043523234208226381843307574009929218279455811002682792239663912719789543317341063856164471280331568665949266063975847159848158788889510880309853739133558174627457488956979459916421410628891257538296691637635444535607612267392663435642696716842601416930848535560600545993505270880594231527992624143052840056861163816486566344541656252115050630425138788469198814818391933560383590157158764195415412798082677200889597838602925837275952743841733979673627908903679590725648790389588355664147610836505565220919048207615954060480882139836322793052841212015386337522792816011393524297549748506555685593964150835316020441138812385296544464064082581217424956369358240295746794141786626798983332642500246913867536335923006039413273315246314763956652898266910068404247402703117782337599949005250505226415374373059052519906740231853161485737384448091746066464754604443946518668041513139418611111194447295204902170700176594950743771706367320674725157998771055244810958798260605668024145905658618505748257938244075637429051471021656114782498299872584319513991049571505643137792603960109139559193713373061211809561087623476878694439235865186789269398663696247480739900487629878555503077981628218738430025968882072382258557661707118923293072886323575363040023784133342084728436812539526487719001940158854371648780379221143107583627947630925589408222093870449766741507832534043916242303064183391984973874229856665118049584373945767595769808613858447905662108827546902844217631920653747486929068794168697410814354150553142016062155723136695928099324128692740663536504840352598612472921755680663617379196655845753903168304249124309046550270390389831215438093487789530911733811641583926180934815216869486223589023722796322067890487023562442287187810488370913510048853849933507130150306179702767090658684671467963564671624909564960229996001598058863370504954025846431518128554345371603016268205423305736930703604755434683441828299697718090437593136868182862186218702035359255412508623569567710932204382011187993827666446848701393519735774034772350447922586556607845665434846313957382568900699897928611775889126125074507187081799041242425668892912497553645351817280598675585657601815286789703992224576937718327172588455650090267487276867773042789535025019492654242879371614298922506518046117053764893340338080009377064430584086790187084198743593563840943006232174598112756780152577613971171119599625131143465399648939827998674368391977889221026030579391295623978281937669743546147716002197187456499295486005797281710391479418623724624166159663233301690368196377026716763534145542729112658180231530951262802407655587082944870444760234900901071127168211718583995355342985534301749537551671483205317111018734354859171296203040172188165580698130051162452182324013809570368957519763876386244907177954680268401157244440627773092022698166337930746618860303668508494208287470066539144259452187143040373912908166352823848628861178852458071096198749711040752093798479690208726465434986851451646035552745759465955392980229113360188913215732927162426752148249105719911886269960247459179693594811391524903102033109944880749323008419109592681397169900315096541717080993307377662204519601640980940067593182550008186603903019061959983380931816397617467821779524178386443816913661701080539288166279039584458040594105661366824242237718604769300750538170679745175559194113692918189296547034249129155907091203135902750278380076749268776210931286465883121058826852955066370467366207751581339754655326693529782428450296027838934753710245675876819271472747149669259987046464831876793689302206440768901741531371904106907392512108743853639277347449935801979419416731617472482410284424336915467207565292024139546744265786573753394366784837971346548477704904753591187027567679569277732093053000090624255966134377304351665239495476118997776223787026218900250345870752720670136833577964039235403354530061194728124949041454573323494712129352047790481096776941421543369421227985147780679034899573902491281986653810857214544839513333272818734990564145048304445349989042836328858786541241119484208253230460106727606679598476103229048102764998003911661291496204530075156517805573492923015826483978603516139428018430891177279885455223473420382131855067647149316404801613190197522666717204509232879440720000061738909026893052249817150134985178667356356984013967818370806434130432199995003539549152152215820525398471793675086239395448012783958409979312392627979016570905208687889196321738506201998929837926205823169498009507708456846559791988716291759366109778266175545399675407400787274995198211762308080154505398205447784726078013712588537755437110672413553586076517624387308087982197706081359203042745991061338851606269091951894143700429128622470645353222477724125418537191766630629736465845685472667568263045236664669281325286560087540742493581380533591951265607253923440079323657551313934261438916076604533508685986074421911053946653378741097210274036747979600290781757273200432217157857509488699329458185259864711291390140768113418019675319160909342793854346160810150959090904916311494731839715625983523751486356676757647846467842274785854745012513638282381260978950529726640218219815615029936582005907689664319660341593306677204222692734748941813118202941287967237838720206801372123130140772457501909890754789729897864535218931014748180540282207608364313447060837365871166006584172844063549477539950054109951261140205022405840708847234733943264795956655173492251032194528020373127861491499039480616665023894827566879420499430681687978904935115842165400891489540278884337565043654084743478258833298555189356211610407584554420820547340310125227500190480076391758933940028055887235790377147023054698876284283591488133523911168362094952089032188652481776961102071819514724516187880011043266865369182415607591371927125683458838383295579440187897417146161310670115135640934266853615568790381851466028307557560347917488436724619134173733700634157964226149185891687937007046216536244428080543183004243145800465507521572959276671153600691481643024366779487741170307115899030146445320400761930947628676312628506957731360326382205829878984818581545181368153039438888188495462560370837764634917177076960681733083968195113188574467428801112481463521660767844997022977998773605692236341995778027790593561368294458068313095498995529755034294288179936616313291495324895825694934367618378078741441881237308174281265291146079807984106582148289039923011011544835244558427848623059529091657131712977766067362495132620364769655799800390658959403340773113737926390725909701340354678678805725414115747547642653095794122112970861974544051595796639936115373864326615010324053788857719136037637397251337688058065288946580390903964378054160119116011059897743332895291940321805455092185656962675624832543946908259829410432069373628503570967435164307607897094122290677844869004581755997394014466525077394842184914309882616411397907329663737564410157838653243512970094051878475168721943812978682770693018824999533047088246590493528521564653693929666826591065141838407626968458935183475440603710699562709071928121493863270577130515081878971465124053754591538139900374916509772709237125911859585146469792699940110445135754276008466797165100232495997823240918662573926281473326411249860028144885649914223374840394185721818385469166622938485102045330644553690821242982116185931441625335631935381717547201105323772802680844806516048651822224799097233284074640533597209488842752535538226366067746218837026291661361471379042859339820001268007069457537729170522150270746886206601558437996608141518959120588565802064329115301217998191563549986785916176856206133661126017608777381769070939834063489756749853418766120056152687686172488910972661719167656151439991533615553787381266970657188825710124924075246298163659513004059042107797802303665957415368006463250267291366150174195429284183728518692361308091549234310855126048087111172667720366100778438569207059931957128050324581741540130812669117352451773644787905646091632322436257464614759237045587745824001766403328526341639825657128465050542475863315875927328575781765807129948717313804091118582920471792938487895822759886875188665744989295593979664127316358429113340946411697657822069541987044908421966896946278155854464704629084820768176067194118202093791148812619103283977631625278974819143264585687161140807039942756208138401269832428275715461505143947354593141312426740968327897975959589568223067481112001908320366360124724565612388829142449197838561756010583859696461443919931011138835274454761051176240933650858327054109936973987067486329776011820260110402469227922522390978981800898880222424541439659732881349288707249576400711495171801956875789493068693855227681032123421590363824172321312627722650999016259122226401293572903011300746954885498823242215512911153091681678162548192349282827462190233840494178882481362769469226048867288472600694330268728422734469063050124008277652218269218646393636918472221581968847149210744000688176397069879806749060232374885374427203149203205233026327712484741558069427766635019298100185201478258763478372840170353539567295558611022457456068451178557497171690739537271645558632715900434375290376725532781865584164428462386670505803152741921124050522725747213108582261598316632609805475135349909282640137434146303217083702494285218393190279435056733233463243486870344630527551292821872760656317556387712651668597172303606889370571744145804588846899480075782309437034170091726781508805866545485232837660063947143170500325329211973499413348958818086714390122805147264374053464782849963589895507656876181313818329007985111226973774755166194836471656673230178864102420490192835306755783178268493447616870285778308914871300718935552800104367385393488797065512676025803196149853903744761656190392258496340342652152512271466484894775348091779995419776600729481126310917753453501057869833785994925425359692110768105013596714396924364029165044019599666056467645388865252608180130244728126130173583167192859064642687824433019011765785161088004849092219542651640446264936898024370314271335142198059408685646638468987070920102433360379959680967385692840772507442124232343678355649297113198700143896868953990032173265529126547216628584776484750456704883618935606135776779688253963944421412921386103029808372433780284345658379530063714407042485988704834135799140040963309730886021691607298436442862211405805012897194015027723579231606619594195297798457948988285117586817492739096249312043074846027479968636152473999920115966424694518277146923632592232419557047223653681125856791441052144271433238732245698633347665437877548298378005410159476983403400113683975114577893381006915301709617507919309709633617370949758797592204338860054512026439734600803436946227279711955799524155429944913289388509995677609923583930207711448671301584232866626240627286941360669379652734395791127745733501860489289680486170548684167803277067333731304465343667588184194329576192534181053891774266203017241517418350773278603621803920541202177145389088167167227744824414394000323453624937129827844344504731725281610159893882661166913152972957670212433631757598957336147689671656168581188677595712847562759521496831886412220469289137343460218671815155097336960574961582363345215482929967308646242137876976288443853475035895260300595732815183593993296720483718331084316169688055670762052081795246145318004461566135960012171040356775663129629908818127681775913159607190911599560152290622924718955202587969598255549013317805867870329918721662048604584484568872153383412404767846839858944129028567726054374228993907658556231170589269898858782438718086260588704908784025701485639450960480094262168472769201668088600577889152030198327617336465358612526754010868198530015452346246466528131218787508177286427684808267378828223308419447494404867808361205339836937072050343056445170155604528534861491316842443448014260733257447746027771154742854068559085294299605713908676947334319387620034316729545399191449018332942193974084269600421307565697750640204003499715292816329164694377760668713795581530956300834236272712582697414593320791457410523938553714578930567544182117704109466648410935434825030354240062719148839253240364363752437046922446026948007186144559258987409254076755354142086806584915003993379694449452281211261925387551194202265774962680765148236201632745668821379090796136391483520639147656152430778521169502238084074579072703077418937370836372540792489694770324297713208906661975893825803388788744945035186122341224588818846985182345709232207557346337214196819074409760326597946725000169860648511689929591992384813085207173940403314296000285572793635542704361744208743731719089868356121010617739276706227904526460829679063284547722777100362793349482479111894249310073549554802695009822363383488620191970688328951909758350702796066108599293516749829024784167456346378138278812387240953897121130781580674937016918240180480350745237849748546660211687288705789364930081418556642124628274868668433770865716149616594747117102617525821484437308427895215871818721744574909112574225577962404690479587527685967661228027304525629188200680320802141208324963434752763482820211378039197680400529572632498766094506816075403402227903199903974291913639521395769098944613069688016880649376618534941683857232423910729354789413227742218362642095601182104609938518574506555472416893482037869516496337010984505630064078234916377171171646289155977127868595803012826991346022841588740445042364556233763482223861970136363164480324656475918371985329256332941403439524945651558972498392030972279704414115858458548499730355412367350462649241312007214143900240900826399982328887548421331632668726070259555271920929502639219095180154125326856808459884901566443005281452759353407094155163652482441561582746365028108202265971698474335939674438075251804629735290812436991901039228546950837920160509708914162967964684330487445986476605192804451543289340776380713799788497817227013120929378328053124843123966304088795168101202599036544310672866535533581085239506955776116012874618550582034270930685685827819519252505786778509948117259380570502231613541195269522744350241210386653894011864391601570468278235719861593669056103315676069954166443178060337605269129342805088299190742537253185835218185308494688584368206771289518979922409935887675757701822664553576626555386294253433635593199424155200881536952087840731342829304904754599563505601527778010399372095987028239185864049323064666509577064520749820485003552923403502383235345070796490023229819801998905678254852402609881544792204469876022510741403522437400574362176091633616763978515393752070304888448930774549782667448401032344117692703294613593924497858777165301577359053064304529411185977003078459138293888763385428924862951139686984748826188475828611227094304186197191219171274225630637665440086339438489472973057300917889695920068882223682784413462548567005322252639529149678078071639123382095100123621505693395741962295618173310429173771143478387144932560758302218814460191985372228695576401389064977675287719626991293592540459550837249090873960091546201980609645013384040457921908431089898968669236091126487079177963524338185258691562851260462118641881560149832206422956471901886172698054649748954954857775534844646670071284751009096086341916708971027447521487224375620921447167363858695380011890423147972523072497811294074282106294138070558238277380934350892999130967249519890712455030012426619173529464189813580439324404641609468498157844273165897533787689102982521310420487005607266162245868590028657643040504954585106421827949181966435097397616900127720709188659523835092580948527481344989175540155291310255199795318172015466293150669780729383454921254957165010603417124453935142327089313701370979297226538668586274023308710335135940938264895012196015139308430539628468720550483519702654107860182231368464309878536790743888869389668561516009543975399479893514590707365146692721218035368541263781860065608440742691365966542051946192103307837882798016186385145794885194533738892303711925830875399448354921882345878037007969989070643961811602304458503015525400155955807332906475212956071657042021025247647843988036603240166059761006257443397961038310556544626363389241740173627572902964609609067377990870002255673984579834098403790657225798362473362176450030354174480369286859876417319698505521226399551513269929580998226169725517387509251622736410204832994972729348622103301048025918159502240742683905609347806741772554936815307740374184752281316941669854669602226659891507513043196365367015329109478275198667641882989378211762445977072754564157596077615192104073551835630048115465665923772544970769008141786875081907025300403061335240315644126044660166734676880266268848687895157725269205876761005709050422163146333765908187139890939052758915266683161955946094350796723874180752171482978429699945573474112433683597838654445951438664123900099753752266971299517840984726564443122532615833469156924006626001381378804271901055102010779411387033283804042855654536376249898107121194340881690053926207715803058283467339690667843101556953821586159376053854491662496469890597062033701282334304255097910985000752701819118026820125544937694244499928815363752469827010710474057983936665996041305506246242242010998628977147372731124157954324945226608920069541983558173687808179408408701473309652376238818721532135343166924704827993944865260343157096110555440404107150254996837504784715741684097470454903506539221034370345989962822868443068121869148408629833681433790666664395272975597683002304004420133966457571518068936777532508351964498558171180394021166750039713965297057889413656038903748183037405860931202367020794882328845087970620466578324438006232983036683243043881070565047740288983226366222472908076165486653188293407468755938346454060676805976174349373911272808743882363100915140707098336101532301802126445535597538925971122337149222999407370583899739236605256795319922148535534410595245585315273954297307946661726036176085722332011345583118861692691040191912619798757129536148445372651490938779450451713732045557958501961326662052501613510907896699151141556439822117124375088115483180962746364475805281400814884085270665607024504507106495836136295092568718514649823899330820315853073145228500591718470151443884695163682991915363790521519797624525953075124115767602315417608964239697360736443930372536628838610554815264293855514291503540718972980026768703588317691489643554996764703822818395103616271986265176867482519467462738998095714848022794575521116885721757206678947597716912711658927002319049696089096931945549692907011304865133070799467269571894715559102691970330497244378979883805593399413905445362408115862255768411723834819497212725750907719526993684383303689811970112235934743379845719892014156241915588167506748392659268824093960602865801066072361025074919725503457890613638832458251610416436411950076964983161884179967611632050106599216162658789159945140876411298371385134515151706313620015762972599556807783637728337953816074178792883611365857303715167572823692745043528304762069746417727290770709820812576553834054987384875509626431858643399170167249893832534804183894118741917754947013446480431950736970272263888820907937046752804092435911186904291055694306544758850043893557345830732055668975384088970922441224552013737921468155981582815605109636534975470452190693043415874947107329202190373347088562660321128623138704695758604137257000778470795368405513844025966371199360077507615603951259139250149585534575188874505398072807292152913290131103397243664192215911308070020016440733991626386419059190531822748572799366229557665029965023763949001965069832835757810258473935817038173167159024291657174483485372990048221694327990775747654719796305183117948027669037170923519859821612938722448175618439965688962718218556324886345148511377476962094978090796490757192787149281849189874099258030424271398440734516584375381844385337229251675495388915032522157012798371361479889891877984815893307755654955933843159676823235090863604237959637595736992908842829970542627325878335804717372074002265310132370961639416284012742220680173000699644345290883038470850382743725363021769072526026961589985888362652630980158887061597471475155752985439148426138406487647281978131063092957774906506201075630041307672050902180565184985298493856629726375189317941638539462607677652722684457049147383674147709822672225807001124940044243992691873498722970783263544181106313814038179860755922714033303131079926737362123180793663295907683614577871942593944899524896624863146208213388125576762372628746863979161600277904904348138808823819465121989150507529196218119593904366259827276112014046923792281031075338367606497685855386289487759242442910205150495903143124757090034896355339644646421991372797542870418926528140600747934513846223614293279851478066907577245273922954958688252775163586020782799619970940658647280925281853097348189889337815084706776890437456212886118069661339137992222311565967062117891948733033246786438118835432034961023562571173356233984275249444307231297276040275717548139996279080151119227637569081242303120916624786083304169081564641163255240194075299538516242353778344481273660677032665506862376163632432395314836661276306398467783605971468689639468972870609312919691106478121822381663544968572517122375120930213004769442624773268621401870510767231663011142790721360687281194492146826508975856135360257591529704492046882568181288245803969014114546349729580097968602656442686511948840358776744836121013431538609819429387209392499925430574395660933675754557005232784778815176193079831643622836747009147430625110631616120231793153965884957835301602272801764033609294123198445690664883439718567199526057700877874588847785524466259576529544237738224942823025628791601679268352383354712945278789289222439770570793125301798293223625061230433258771115292982324553836815963675719053167731890536247848877625842209023293580974417265831327449380389945950781203913982013473529021738938291107978114410202414583218821232101753575627681091629197469975884598432755788964996090550140336186106586664659751732745785726582461126288418947835429694269281891398154518455963250457207515755571204318189209550382797554720624454455022257343345310686155227290734690602182918175838157246868594983689831627407330837281913665441989811006568584961354210482147938951783594762723012162175381727565006597018682121519889054142431795231415026788461240634600280515069089139877614564911212236028476135610278699214740639074895326461177533174916348710356820570834199236463533119990330667572823363214964256037505199640210174804311202277003959451612857228824494281957808682694066911163963017118571699558292456683193090956961240063046155448336775151932056165928031095298149185486515888538672140614445786568280637180300230365330708337481404618915691661157447583406724953814569330885252617749297692825588361427210465657797092496446640029494206752692791819583867785080620757864306055487630767959705121571771817463732572745454582109672969363532427366939140736319284583507372613473063009513030456345675484248389292071949666245003990612913794461283216113170839924193710375096229285926678614140958522854209554111835581419353275456087892998896643938865220782115703760696325729977091110802644397160495254269706309163524376949075452983366906328522313693476039061628219689256229460577132509893935943045636720090083604282787358243789610027738811081394410482385987758567879825539051677747446863224617895775043264386346770212096408783400010689308163558474837250656639637721896951483121165283936261866117435825398684189347688670710715988036710070914448418512246431749802530060904495178179633498251166963620925342412683929610502050653653276300900553246121681232231356955132038816440800976256432323417898064453411359737621164757681066052795021043467079303023331060954542848323985509060627681555429677867025704509319983519804592822877779426500310686614327425840684240581035352904897026444814462444254351096348742792632319744921195873521885580713791017159534905030340163752503176159511423126958340879227711578549241422699317904561636371630376024546512454090575113061807606054938084228110448543271469491902525442877285907824915336901893152724380419765612212773620631201254047034612116791982660091771014244626652460878951720877359768314237434724892139684543963380218541772868767613525884530032677533223580685145251229127106771636610909474477947650806056669075010147165617967688631255378717162166474028334860101458255870665597658574899669910505811931816373878652238796502172626607851921601594802846256854286247908790586592242758951649739015559121850696339729756347665762268330210133153064103095449581305820354651592504597236375388427589782202592450887586543103608852701618604093858226038906795643618363141244044077925028207135736199704703086774027470339977005620894368126386363007262618416068288641639509780330245011799767725462943679225280234694732490077223043017459657728031211954799546043060024380326636509632759590595025354792193167342778296005428043342984145083532202496279373721644783247071062854393830743345814337019203785098472566129594678240940216707832566426136114469310349588060893418171680276653683987571175879187621653983545170961644281987707062424101109263490074150745141634155639428937980286687430380986329454925977435612476538515760436600798851593190513615645963454107671369270755438314517704491003297849942796351410598744917126244847672879803921192021569651552396102697543296301638118411407568424472567909892361326945690668302369298952965979335713432790369221879109364218136042161147135956772391970362900592422515853203299562185688513781457529363956234390193791343215667238367095873817555317511473204113033312921305040330972267040620840468068282380444153918151985868341541001743948022017650884506283255681939902190572203229820442489675739409585409177107625903248677742376194344216166512866437640659335439546005119809821276303750378432505855527463108481701478024448850667448905605401935239156288245971255298603814314893878458322018577375190155334245123698582227184943216484284793857154584183017206454554806874130688469814970515929507299883854887572187540932107688067031311666102471799051057311487118700230866530336547189854296200168199531241215337023120476829211806156567404018421897366172044910791572351884009293022849762215325875105708893983478120113558002716687812459712384945645416168848589045230382487489208106356197295434351785859316386856625181356846754306853973098512559274770641467212803357185141201661080241909700409058763968601747548810560730829018421690670320283048121129419669216770091361681067373160340181468748924560935648764054627555964990168836877869735367361751110200541190928000591833172301026119409817925675839624901582420348630359347279970065499769810672755366367853490449588472087726612163090759451227941478164983022937262218400414881097547192221606401509151806451271025449345846280071129340011049654689138575950396043296330585791875654475798467402871260026691385677109021980469331137431371678698953291649722240765234748419769092147457012334040322749833750638457109737969697898433552364054683256003086422937067483330001205619715564003335404545916735750117859846913993508242506138404995101617805484084718164155366726264892118157737703543745320338700808663685384498456016084885340041875185417785652112290226935349806340450658825512271772214901122458151757338092119567141625434046372102086280371410195160593537353491303754287832356363183813001930050057463081599113549169348832503129841269850412342518990717929069503685962087285793281470019969671974005119132980108876907684744525041143400438857181179709352354061964030805374441983104075376284970006035451709259717675866432212524397476245184490479305639441851101889791193358159189410004504514291510119248595650004381911351545200080971120762652382325464860853306528056811604548978685482649039840907558430920604047041900174661466917535469340844162768304459696667838659411448657157178425853475444227680059047537234918881873240721764081206089994297844232784396798600018912853197487780846749551878525832900279708954241943918659977606241054404018136083133972083822167925689278174381662919155281586814215536141522188380360488866282442770932620821406792551654122684355323116750601619870948672551388924617144532219069063076246939081700788456197812045424618635384766030283148202565380831493073566051079337061383739767577194413302306457818844956082707459139158579962338393126911154462426384997420411742115838243898556317444736060878631065787480251180794485869346223661638726468008538862561053415851321849759741994006587247368640830585176347154234510810588439054426102380094405950128773440706346336923661787016077808085651019634202215024833046876391425830507229478860209211259713409300052111187579485766426183198925370872504764528594290866429508624745033793775198883556678713844090354078517017114296468235014077021329778714742649173571208539282555727074130399267219345908984383226356635449339491697634320183469703439756098915641305830162456796618755190209949827302304114111561196814322190519330794111906001395644394836769531823440948475734101108376999209403461163633289450401235868193867457918089446861311689344395711108736269157462589142315355843648076967708577687045936580295145780108631493542330978508922668740732221761588559191896440594513206656958223191021055670618968066092341502232111257475146688844775659584438354164390749248372727740866745897489771397991738944429116897309377604423455563923924652572058103042218788677121837749681174256696717034505468392460393014837766049290689156905149621505896281950977392889790771984928150892993404526508862083165962545669795141757391804775045741474386078368399764433873612229236112904281664933349177783777944658286377679008815253094028621701964359443338925399776041747416351255950285049317109822266573043857559713811796859441166646815376407845027373077317782575177192419887085529211834078186665083099630456712877279207670229651877792034508005610031356133042117397034834988044268144343570365828547551560267906930759534210088103805113664640276658682673479069871426334345866049810278649181521375798721473331191604210931267044446289746834693879182643046663295696305604233527354076651213184515597834212396541412377609039167395106762591664419168021695296601172283144781805126620315721857362535755732580865131145187118318574142157659078471122575143961052191868981609307614653985174069924047438492500572439884817904070929985512610793781314983860372537990071884673643676742648132710572381711171610393615239099058888938157390440676572458620633050831732207842732559405533122030047752452570776710679570641380084373133809832585428987984713444195659239081157905406452336106151209342614851828132368506913490557202161882709435488400098925876725067772440645422381150110543799423349539091605324639703046239963641388727555974853875499233325718708550745776495306699637388103217184151654048681933427037385180908661105436700805657032694690815196312667394107944555290580627123617444033443148609027496903677180216990864354195048718343170116794170625232088983604941585510956686119203560316320420311078213211460136931728645349239260901590961215691248060446284563666754774707157220959299556309977193377667856858323744423717145880591577778515136191181648786094103064929497242854407245780240666909726855938074850257961419888990183064798497283057834727765874471594511328240062111177052782437192843818135705848204669785620743646126496319956258008000718891249851390945601610399037155002614056844075898454617876827520836038306077721299205853685117865155647563736919246407302774702127406796581046009163329082884240557635469994422172835845724696195364927079512247103012576308188135920396246241818424494099908321835352397858834197542558770825156905270233528937686398482409840095341623470965712322451442825455945953827356461611513826525108268957217640041355099155580733953102247366167085067015136664437615124665141633917624918766753749601547596483625843127669572315486732734463860617791575093220575032721171748201909236568373265158571084392941061220268844641424924604993331789057104417683735464955653349506085393992353553682690299167781326600252658339756001147492318997353952035457913691963912909157843098557726948643530933557742767933514564690500101138341062962092457218253627945080823689794421541831340683537186728061766261728935291603412836784906121618715907700743110150647672889853704386156059863198616660961875340760959530945282426492529035696869528439338037807245336706102086669136219597128086262767043123342566492226443094852178188491175092292761672592432778014172250462471902014145890791026532152839589839937169779734377337842362728717024623301465491819292546520599676513731669856857319518585691644754553639454853804324888140207164275263892292648286345344976089685728685066077249453118421532079401399551018744063742066316479317359903392114254146689301885866435739220185816564546706356090852015135892025801817206494677053431141172322745537346811262503821752375837165878246508466033813302822448837145612782161790725169415194063453998903856803245316695673080835255727375134724798893765335946155465413516709491477826822636545791089919586145595850425750981401021429857745490988548125122154979748983714360677052920409076552495653771604728359179889529258279922218214702442367382294335357111469790912919126029655139180589515891758841533583790985576544439897010943031440275715618159423372918112974555494646630748800339332124145357658354584372090542208715107411263117579258106849704851030246123711303709540172999467645160873179858415054688317264076749667360570537992425814057347066797362403338095002392886708366309084623759729806973056090980294122981973799428676003747974662636214442863298021672064652757876449507119898108112669429991134529185594046410116761380358772195086468402999024341313671953122027505488251023339299300315069453858618803805644902460208152209479460813154536263821798963764470068964575121051763465736924667443099571606474766431147860352056723057710943693371869022527240206388776461011120805168172005202803905094162891324939072212356455704441403483281378096099978253791945257863833176474983083217194119695000514573915812759639309638125468323147627599092070175964266406710460724653993123306228464700868300109003794474811984939174592115992598091332682040835189935400504912290158410927634469268610807040992448239704415225929856147106934967073632518290376977665918565677117186590365718205365032540588895232030115204006794996995077287668278584485273894921900597826982172485628704378341783406991509205023093556113423057518085109396750120003765459581864314538132386057759259862700627953654799095133051490179363096373498026006588828480386953015831369010936622269511708455816618637173856215958271898048749233439679677921357739524681268137362183614016036028659932454843614906963350818324206498961562745901283247464917599496425348940653081395461648259586760952918183139978782623896312186990353876483258902361929492834567872246338918333334477831604486974721626323705276936755972576995179463054932092351941698343303759082682930622803862178925855319849396608764935167734332129123340364228779534635084313296158616673319405895425032849787784326830305809106415099691903489472380793241450331983245794284869164915275968723992934179313715756917363788671713933285303984718910907935292595823561455997444946648120021150067929111982379761983972136833819155555277010523223161764287601969152843752416560898211317902802094913188290249813417161786907666197221902051221170107823727197246217395564712469731651403471488642658227984799600780886931730781680197779088019597819253233583917795000851842576080091918322082465812320546077724583296460353086074861700355727407920208661675489012969873991734830549049818077616609738856582710668552547735070515369046960053133245378600530368007734208035228445054311482387613965990413910859732069444746852199622052931254529431185391317161332899733950340476035624406005057133523786985247718829979256604078905148192292591344834006067853193435125906254170694349355837512883834268279561324057038678800765836699166183278405288584502667832469849847651060833588605218684203980278277694862398476041058145736560290411059751466077329183752679131015270678390029155195162802071911781698939916569429118599106275217803564944104303264321458013259018450748313611179227889596066360547510988907849013450997096608125344166559654593488006669879537992722154554430865630753606564515160223520222890930400530965486780058732393121737309197657220057504819103984163714241141717913802868624371452784057299033859536309949911179965664750610536715632614309384400021450346223365112274827330186924251021281693945725180118225229973639836205386276314785323901797833280588928625645618950201420552138575399608199747654529973308324890931604371897095378046011559831051704482947463237357225558691984992282365791657281920924271499080410225036569520708856528832659476288545482420757217040027539116235133600433638658183710029850850211456140533038460194780832054666301997458018742527149834735827662400116067983881932012639992968480352042450296166437573854985478939237539716009928180419314660223542176175675101760079839556144139450328523356806068777424847707774964005019938739555700714531276831065612952342816369354633059924239773295142556691014346846070781269350381522019539860114234546478969301304458927478962760825567311252924273403048345129669735542237161559538797736726138474521957563343318213444640933548865128632238729917935910934594564003327849587071189921302026391621893454509418680548853653395460608497881294976635908381500129621202136934252292605050260110982234836446463296164780263862132663479507092908834712721369602135182987139921485500220232300981537075072159477919359948773548543794057846109277215791018870467076287729264004496797469710302133043240165832397216599295011997202772821525563398201394832438016441270893264252247821637286269003178456207533480892067560261761150997935830673278746221756927335586528892939349394961728227555423036827975841254120422128304409024581430252037706804454090848072565748192433485021181393088091095463738659055570822731433483850977223613719302519340050907423909578532369166077434169923340453604632050909069335595489098663902925409318283173719273937339399601180688089236325931512927535712114455249778002199992445155003679611575604413516138800136258333089706125213092000900736752270637997439499805724491832966678255619127802325139585083269136697504501380034069187650061559031885090623641671078007444547221106988075603773430238768877458111249129889570341261722175470340767946208970133581684025517694170443574758075149821805391240985809667865237041914711353784846050882690280874137152320865341770138409068483391182161164988394707650355165217286770390677699426059078382456298278103258281323348106105398540805924657809563178277249818225651012141684640512625600067450847299623627473028827328203081682796476222457625058067702978103491986190020681706838373707003770677608693022702377159258387561276768608218069281880250924995555931204196163440440718929236133176944490964979718835371690784470928824218950601100757495061778387630542495477192521175201156837762534556075633432813564274099810799111230113248074916898306573661014702687174752506232839484519437843873225824960484698928811707116678463577347290271367564903186317491316653077698415191850551764940934598870848113111122690462126008805308157819904223484145970074055763141956676233294674023523548514507785101390966583072887626500313983087197604088948890282977695535180916816585637333104570295415497521536476839650561074900538749322697809374765456381080292093810877832381322619503466477157440465874642319469166090602519286236910210094704975366443792039519926082877695723587613970390892977492561063380236166455929928688743197939491375195815567291150580420556106639809099730193940906901625304332889220570677175108929779984667307491529276049490209849906044680697696286416675730538033785178710607119120142248759428468185704069997030663550757155299422916062268106129604851530438806425283238875276432906882376120535576282357359410848893821692948562732069460188934583291057943066375094622829663940515478415294060292188811458825964581641950786325890365019280686171394695899048717351466863949124405668238617506139369990877457759137197396119866780413632990662807738268782681405397850111160520558131785491210293717207364790081719520757860904238792507281701537148242342640839246866914333503900805944244988762264917248094833801326644780280764352732302863769395521123831808266943106610729061488250828140211867343716203419509699106414214859437033351025423421214180073830807470301510967985835479690953971779850507484671399965226512305744189429748257196326668898698354957110575166550296799617364659999602822183489586684384613688783142657696097551848224867292582468045747346489263603440144709496818646460288479909169161777991045154229454393440431854722777148501634928038247209912091405658227491147296660583806919544975125255773252126851068805912789430516619724055528229597842649919756692950757563823430433615372468499638373077986771313076020306174011889884721819954304312942813751476654928720746122528808924647317909827858598219873309351844898983316195197467538415369358369151495795703774336039794513532214318333680067733004715160050531740073588407739243555574125524894431110918525003607919958954113275903680338639903847768114551821949797431991357208508795839688735246137170721707223705705180619296605035743423043623191053985357324838720055589439804332935879669662581857607507232909018902721135505008434544798846176818836469832697907489246593165049972410856960781969663006505843324844922090296688862576922544577450560493820225719548549044789130423502251244402630677340485897829610664100966057208247590943873108091261988321978673062574983986301824144690375017484140630639323805188640521882776698240472289911111559352152825162891806310181690732321495457328159145090550161959011177628136086584662301568771117732470207876065183736659658190612258865005211075919323221165153999185747310863289834587567427232641648288500577090781118695802737691650957644121546224371442892489900026134169425249810348112023971359099835103959919246129861822399237522513795311888090238416210784221688331816603240106441329920865021427912247910479421378747443603310190163716775907605535083026302695573515675129643733236146183334137654559124252862310139499925628496372249081993764171629981533624153482448986135814474655762996942330762770530623468547543480262571959747421180908333931417176684599605518519213983548414878096494400029788878356544236010539155346704959969411271696856346543737822789407948082322521420937063728236328965008952436130781421066563076295082007554533480317705045179197295491459897168646680280013055760126776545090539084760266379033389071157611478293619970470680198293630218613761409113016084330284380825855258194284687816265514577263472116890834329396660058975036497798974064125738540257079357089713954182521328763990685657536856547514615055999576295484929648377958874139274961433846881480771965390640076644245898203631633593132942442863837869906254535339595132073063265523498226636024403727420102489462066917326910119863768314692909034025302559712167883367519915526568276693449160958087439403412009353487878439669992426056663607966955438434348498643446004148875499420954122561182477683401033895393372805677018329512423526615961601257807130277365536223827980345869964751002763026985218324814925887562559625863947462453837472268557683320716956912264664778016136547411788735348784925595120853253804565959162387538532084534950670439123893242529019745249738735756527316505832230451450300904660548785261096392977198348826020085488719355977751212732788536548080884662459235048982586044734573813971032114257319692207880609725927774897647062000117373068448480374163727772350698780212802666638356358841927295378013977018210677576849756926375425323019822392303455339852092130910452699059605384049553982823494100778712837035717135088417468671914251503324107076253351157990899830512043219638453633125629754101170206780950731890402156026060990469266593763652603302262582136857493718815091226848355999286861315861374275586989701695326770353712318007850416582630904419477126405179341526140633626640830967098666467207790021175842020656183063839160295395169648803885301071015797110452837871855860796255002872439634379169645484157199947216226041365304745098990503919308767666119630741677978296549822222146434155793012071486340706322483196140565637478143362533217937392062933054572805761325694652662819504861483691357573034757112966999524302981106506503504676936434895209888396662607587505150725581281779843510312033699725196141634868967795948318258787469412641775995867836406781357145507250581975510422071960935778836628789771187405405461856078714717313989106992407790786435890782353078123426389329572552370631037551623479764678641910213173117717036771123020492649513538798276861502466668507137982763006414282284441214332266356345788836245495926356049230248841331346769865226552787235788866310954729349617125808009165118991031692922439494322172060583729348348611929630968262280682422407850645404705030971311061117427083365950727325866806516592979818930448716916238807382065345070820306248127239975851575485284566130216890846996031904497825002684606377092092113117213777235916676098639678016568104070915401473716410076325329434701851248634133099523987479218285521238511538438141506278138785787286971788332664395097893916246387601977896031210430338518948457742593369370283213094403144416746813132077106172663133705367225255638158538953610465978877393558005844970713769955273190890135548933719725182254323714637381613804759962607928846596078413137737247410415692762954688601524519022770417214667027006422519535890348230068598844290578342425109430697295168290005986035833887256414332602606909263525472978689226232378397935246728053567002627861689386891500826624496124018136141122200782775172329790942295354899495270758042153620482798333959896643269461832193875641981050023592836095580870062220834352490606416427682607112334497322708283457443956202020554091649709875236394755265755636935526965560618416879210199408947149413986710807992510402931890998572512985479187949973121660830714370694314171420137129034864975247510944333556845703959607723313165940508139252188650848671485420492019654036061214402278903882836667505515878709147842362962315875347564112530045064449309137448076349071568031716642734977384291262188300101759436798116235310594358942587950316359667953572772290333113931311774956093297700398196087144470106765944740229436175807479974585593689565433671185654352279191268275171066616910423257008774108135694536748825512030096547470146771574119376541353544129731150621437725460840852897949458013276554072302312984582201350080026847408699929544010944910135429960723681768112176298866102967637759287918230408084743302918177167802911940446188509630585191518759083627945252472123902770879631552856036224953226770815732688025614376242576129172229624719110638604313067660129441706005383135939614221524593987278072762320641472743122942791357630773338499397331895522510031859906118747789555627130089571654863990634482723358352812158256249263287848398322934189811739339319341598889468599606240286327465274632094750183135546184205303199083322267613896681989878398667568393324548480241958734442805974097039584954559024722128823678472401313417967022215922959580761609439408634544126660369524163672259103565094613778718488670237646209571197967086238065302379410419887562048094172582271064282726537677784652574117043557889122645485443074473317410714808214588359587174846341853499803953564985761885759586725314240111108232159316873044600641073110965590112945941589694099423255945262403360852153450263816433908231405141570164906956384015988602102323839898939230811759583564617147366017596957759078943885085384017946019826584481878028525935612170615705651675185651049875341291602245532751081295286179028168304692849353448300895028396372854202102562655855351400360441197546453031009080857910697228097080096241896652132298092389271197730635547572593441078195802297853428330814945919101123894816931009478486449890967404371339461374484059553028051178944150407193255409831493627837003948292921339357788014319750297620944654318857702627430936242865390879307595337769546231007766972182796066288227361986032288156930346145301986822273632751964232696940916240375422314349273818808970723697821328563307245963846997143239608201621575666293727921756191803977536516004171208761810413009954730340252251024545262554798738851717447285882330499569918649952522666722523972451895085947208240906398982147471435027349575763492346802596381781737698950657162477090620397785636844693136028778463211903108042877745838423681680849253144020538337188084763125043242426282631384282333921157673756223827114737686307348149239547311044388536959256799265745696897104915439660902474347160205006259115302188028903862262893125470263882040836723840907711756467262897378008324614286574140974259090978208356941854071997352113477485702944324729176297779248548567953659054665775722547075594940505720628680656520378902413474921149650133777029740690814909699487617600998064297409023648673178997673461433923566511859291575590321700514491775081255334849581602279556884685895250757894299533050393763335477086695470093526734915666272118846486168913204215676014313992749576036548166526684230051278546270981206916771574628457318327776249127749513342803373004799774348606128667741211508222024990137238382079644594915012208531821565106868757744451049144378063871081591188149744945083823494369028382016136703193209909559377026282047774836476660437689885933015731424229462459518240802853965457273774807837681777065132786443473807150427356122751725923846129657462678714945696739725853025637351196809647768961301291326136411131014746508813342062149097948579738369802152329142587692736485419074641743620390652277554112345111041153569598783111681315230499903785679798360760403495840830069331642293957997429523940995131418019250063873823154608365205149462043144785400048199088149202560213325143114170545489447685984074709278764523270596638666859395804820465955196813033188417602736382795042921509247254300885540305414761667754202002634798600762510942290036812014347329677733511181422786094806192737188636907083898748577753108836101744150073037174490836673026258913689985504195906457646564505383548940296859115585582819277499402870102281002137787235558346164791331147931253199291766832969281185084525209181579849807833914510643164224829233909675519577452862937901889189391375560955817725882709180080690403622711800503249556525056701817339447395427374266653429800721249453507266193756724217247269637630552677920716057211169416361363164025810164531485993558293347519996839492150210452519984398832151641496289902420340105813889789863912029194871609986760361590586605904005641544374863000333111109509738280107742833515626626444929643744704066051086623416042562915495876389723382503756353152742934730731591994967744987776573195228949793643601764344244608885544865249557249253162916454560878304081507257142311727666956489432853349128497142881831930890906085623202397260369451759294186827377079622518631976016150568516932059799983199687384759231346082848556303573984247930060573692436328530051734578544960437312761432405084674775489230356939066161581387997607596952477006761944776112244120053317190328567092115907860194880689847942272175894833614117070286864944126623958374195668453058832803676095615576931177074054139483114469359543107094851548105699993333881223719873597332943797312007950183385017730710533909454401190583395311499628834200027810220090864816834099445758292112549772680814949222941834159701791525317191898699059480234401001272788396697400434673809110775740551454899012835958849809348470791361545534740470567499881578141717118871703327404707350944685281128462166729094014955756972575641847374296066183239602390424664240379199621821278461136499716574285452961853914025200482051728127092820201674459734294384841777917328114644316567214514320631027470433557018958476595209979562397251767858330826157133145712940520061006976435476250900589111420068266917124680691773428642152164191217277806439095742639804319793009956079271241228963605715550003953072382720178355599186997437673248621391154229491300073202419452831112809396530023432921769433186909558295342141177634563022830387458999266251821957484556047620153048361325155174444432116716179599766282884733411917105772433146216456065554967655931362579486991774740852120401736239913927690176221659736992861811608533705119996533891183106619050925748312229253225798695287567641253489553653731100347761388401252631877644107455437700341792397132605869202914383216261134164625555772934609483233585511016071546386023258104214780391134775796591605184712421181154990589724571572863902559743462562193741126391615513048624873661298038182023575071920369169689158434905511001742334602788125776192845111860600579103545446120735487483784273405824543674739828993803410485827987531820019624254284868215047847541064428705978232458130392188238300331343198458562067130892819474234253018178169413460650507754496960041389758688106121722601709196787228775278067670297549124588668667104957276725790540392266564971762613104382991771688864660152137170034279480359514475705884410718211919442123447882290646391631003797213124557357266595250559780622571381893701058185273231311930122585707096614541115145678226093662305103865475499039753474042913542165551970964551854190948705012000699750251670596591572554098390860242916158126810995213866611071154401146238438924030263758171152935105102529015880053284025837130957464059641627525122016365856175797451545121753017373569680256169438455762067548167514705465011838283644930729641141800742556980397353913602298628748708874829796223372411172657578831597293424285245858512346682428656900542610132000212819512538471999311550037981584124469955148684341019230156270700522277311979862389740346118438484950189900369785357644373384982031589790321934857352558483250224096515282488358800927830497805683938713775648890263118207306291248614248739485477264962227422843691505079798114143352793003156297146052546615319269429910068736711412147772199735116610806381010042445904265156819639764922404493784761097630683415756248215732508586868101511641087057782969309522261532371091246976053052549736506071104674096296365480667047921273423785615114985099772085754267376934306437792171663250298318499349125624653248871869386954770255569357577997199912879207867137539544566108091761236588728118977716992457740322642335635430767836486507590720245162184501565072668265226902850962727769301958841436126594964658986547146896970466750331304722119167417143441695282979182302525595705378433464038482638092486850914331823412173901091707027901158136150825773348940644919554105647139865007940252931529520063299691739956783175925381249894473565063241040357437842706133705176666782312429278803787414435495730835311900269763980795818907447686423897667789710841170930875787310218624519037472292776179772257748242460253129619180364949617720264317074909765236295101878587605564225718700227780722971001050470232465027365159417061518272405051164569112902119511385766444293800679939806194677527199683441738120723725020414499837529925149121533798221621115373004443959790653672494292201367303691066666237244445767530589181714730287010337426091919980665158885120856834062939626240855155416350355528474662216873125440831342636592887609261659569597022938146848375341007023262799402601260925173263118589925381677611050890312453733866279103913698680327229799466556392886636424218350220166570276281848179290198178625560093081415375005690508304333033046846189800811273789624165068721427449106332821075283599740809684488235256749419401536536110743077247165727269295493832208789514081401777818722579402457776769556981192098419084946987822606462911065240677946786443150058997181290375941885322460412095810150026083107115712015699558341770094762148156347575406410655303020302909740785245425657649908225414170897028191461460925848716663359058112533246425701609478798269196265040528608201426665074278403268567718161628621799130578366272734146630154028102267035942747618676511633857917734226400150279848634989132892967536496911378224929948332392474659249972156310454577897295402000947315932446956748489490129462647204396673047334811560130555447508657389360636432348723547464602075472959907849917800647971801588014422958878648231162684141604626804384121802669877351974457239485270919046966331773955993171087073916082564304368687982228601682665280738953372081230190942550812217357667676428556557224661680944678646126867506071084117077720445274551181633265294072420503558533399391912929295717346767125062832811666658773739019930374281059255660037280100200393216032968717782881780023721687254494524856447628141302711795355102176520494380612202709741544555856690528525055497982663008773450909560425718324925754950816783336599546982063632863038088283851474518560648410545069715728660096596375109432666213614959517291298309731315954751762261487132722363049298621530662294720076497580275245099429263599823110476593393022527742283560744818910606575126563847923613375572550351569314487019791441845032234678787113983760342311661695882169888882354135830674952983715196077200912336788510442661732049988451867172549929046019103641337123672629093802295627298168772498847245652004998814740291718783106186198929001517063658222490435970708808102549626698611130600077853369992919922036656083055043465486805264188639992222218443904255346211567854505813095297379566371473201112385311294508158040796864214727945874345927137450623383400324027710749351289285824581438671379255523624044925336839874491020711816010796432716760341615743692630998316104865122081774604845217915362364385966042689088103404358811179702778964867896196643694117106220979298128183259219633730404076356700297531548013873517043173463641298454569370519235508301357451052984849593677328273769771799312577471779489337669881878902310847233016467466602639660001166128763428124427708466072114533137590035272088312341595262819394380469167164818893395945693294348940144798228049449576212322749214428318912089310577052044019927932051158142881844058396897693552874085629440012706953705631726899532298540387011284301694057428286962805636192529883049938630043807383846366636013856709732116831628038456268012240112980892527074285419025867522251332338476624885666771961801677614643551394375243141132478201645040488540936798852843568021057413813477480273222482947106671389514804052199515752391272773667187749489755826661040987879149063294676068175942901246511115618407745316163014602258535438967603243709676026342030347834979371066341243608215429803819753088685516615756983974658133045117707345396565737489422560042809010230492228077297788308799896558667734489841213080428347820312198604453663626561083993415295669145378288581818759704304323442678044455303988189568263691147182687852317415082684999872427798324764686961578537092971631547402566550332627673278466491244824552263622794877301747761212984678361936193024718934749698156372085208910791044003870774625695910412159610044862686550106559815311909789284343991433503746193312107341234969223206038109830788246858098588027034065879523137116954102423532610419396573795881875393398416610846783356829232931022544097143434697429698456095719273346381600710526031000323502301954975684270446123762022580107682046866812533506928680732513409743536949877089126293204231769006062131559564732727692370467094642334637500865450044405959083880261768978175822923008461692925043299533920307029236721138914954045894785955737609609516449479318753090228920060209273265968238261906484626655259284831594023009786045977366578538045595258735844494675301886961612459404717228043617704885633953818122764172202889515892228373165719517319946783204694393509708694033333870637526398552884079219628495134867253565575321632282598454147693434574593564268040029589922625403160640917649102896893283997684091513210340156618892146995553012974617896696617320370501010562374310541469489449768685753802468662598107158944938252589758842266498216167347875222955298029344034693045324032240840020168980833943852870837607042127802359713262134130477334656323353880119020984435898477755137205702540522381366693631481378142330719750284002732175309479013997653357475698879453988177978455336729100691654494245365214779084656080190384845812294664133435701331512433535340570823063190472371282227281364221432286514514403568795299840950116562497095524602437294752189807171022177822875821916781411702902235341548241596283030753906424604753356998564095710780588779450204391067932366459256375411543722561792061185254897236456973901671039592265156899066754886175835340805611342596181127065305877749602591360520288077048314718781093166595706595035263780069572560224362785371518650319829019988179373673310971538462465156303881791611718192163133106281458531495344456858243712010113547709998783329344809556577454101911346624876881391586257970375430896998520418289448136085206628119320942410278989633179468753332315222266775346782929706169518472698109520386590769961251502977436539980355338750256066583662645460492704573741486507215534598736734650953402052604711086233051524759733225944228237351966549138463772489413531288610552585430720469001817987983451876787562497821430735508192646891270875103340624827902925958884060274653850414137179976559897773443982110632482546464304375301842881740645569129230325367625437708064184307749885108872945922689876250539340829731631283854664360567577643664136453848967561418428267347702232330635613973077500629758604739931397190709353544844306610577362697139928693687728802070553643515596039894580493221119211833196963418358799519995999953550496520192554626572482567451475422514262963963215671379213436808426287280053579362643512696553754486144091516682597707871771547952975178457537968961381486313685510493695410319393811210675955954143849065453220338014388374202602158661027132393805085321921121805895161544059783066248456208929642346936266006035136173941695427428432455319587164739849627824358876953313176864989258991686183075730558476631452996579771683068820578985874006643304369038218102831569476901459473276932802098979815429834663399860400388211856610586339327862292547784407271260877465875451525454631406609811967203622391226997359628391425620966914080642486380260948025253218577432542690668250463914649368631192874318878722075786679902982445220615174440081346256074910320659136271993469111652671413653678670602807720931821808067608406044757700857069542212655186157097346237199552247689561867498660562439221910938039061414216231570100972038158570920580332077843225902442098217557950605184732947574376028674339935091645518381638605273207209002299283110320293945298202523194151503058435004326024419862554835253734663646522830359545334933473226310286938607111934879121283650298021012482721525601269598194477255312668855524699119717548796611132770065024538226720031923193841296362814336689464323884521467870395945184005650335973536880914091874091465065624359997837206270439501535519142398060243161027538459501388458462109190162750829578503656940970799471745624929352034682383724927564268742588794341058747609688806666443582452082624827952850359143200102826091807706639180263146813328900692100704759366749851379668865831469900903034546320068248971826275949832811022873612649245692188659089467143064165428575022895199866365932049161179470534000351283579424504059178862972307755794640008426099862494910518733272759029804314939242121663030488250803993531963314470253155857163456810157704116055932476206116749258801547453487262615140739281808769167634483810723411518466013455581957826083138733528581743431498249317216753809873372843434107897389565189443831876658021082644440001157443176398262616309951864924562016940156606629942126340703874380436484336552991084678397838587389372584547210368513001202023626816847378483642332195831207706536839029622667511294863344179743756151373793905059513250106100879645267463414850739302291843264480822209484966873012835707186132522267587750689836814266736753016903904238159534813446429025180203629599495612342529297620311714647354119487985981895238674927295550106010806667041683422087522475280603979603160531572045773058402412791367381726483335366548226537015554966798655514735072628975060058295424935003797239234079968358564256021101795317178606780796760581799009772579930869593009502692165835381075883359635136766854515891139591958594478798594854808658477684295282774958881201167716022689925945593021568647275940116139461910734808329917424985346149232581491879523837394614191130054916696606066568444985566589351027105833291190478525396391857211500248126021469452371625645907698081834598528504909332682644264086254019206946988881631505706410901570613282960254947179455021328203629845280250066528769194422025686174865907246359641169878252154006836552386872767173710303777477111099070071998119008872702391879327323241782182298329714056805938162593933343314663838805445021161386275430352058378401384769599376065481837082037989106761358471164604821165559369716818168291511417961475118822050707461789882033529683922473906138286190176515381171433925787995854148237025742402921540267685401617242686106823740207948200985282507498023133973723813286255607946209238038345495923210588200761306515846966137442796417576803361597741202027076284470999740482114168179217722406973009820101193571205655381707587104739626685057365182646317334864513779797424747440340265089600162581269902254495105066941427541594581830914798896052228909845680011329226133793654484049754340282286421669732933422249364338541493926584525653824166537566729348614823962970461482632550975188264400475889941707466774779542785181573705350207636333582331081608208666800395228337560760385672313883617152567879105999031257496869644872004508384183599486324641225201024035216793511042325281061704967395746870834648080204193218796528119456442881683522403905525204518180250153123018560528112263616230127968814306113571847661623222375402473407327143711223912879050713881338954483200199559362133342357193640083329011040509368611595720974625764753355405197906679339627929704841076130294526660469489462191723436899037946947150545908202723355061092583054217564235978260246247947039724776980512480511028686004497814336160222154648965500682860029767412262725227578773473664304142537378086225717980715228230601573264537668142633082343791533659581398978052385661183766286768959408408742992773555402798028676731689657517151202516809250681206650925608342426543755130191307363268172618352299591247053445399106030997651289783605120547461582318188552526412086505423118095886740352466178876926162237291737008083415196627056543029050403576171434392159689820205828727352295300765337015435770064011011134759749615650251104399571786290182328384315236535105099834434300234490034828820375930761554921813391408955112816330341045546289438306162952190909830161039580857488735328788339688909386015902211190680605021232479927133375854927870342362956130622257576077398218764102920663280352868617620315599482281486855523250659169437708983680265414941617364506939972418044968722066342179545912311690906807265285433145177078099298776951312581407653770006705595020185802571838022868600563327296316375847096631826147928678390797334527087474601813511152253502561345214847817143239515668485629094826128080596869200233057091712894476783267362587304315936016097198406088727494387735464127424684778045286948251526290869050037126107060622251864033949962114906539585746450252313620396838828874888762925389224189675656241203239808386354810138908229523799778097993239044495854685391887972124879995448175835380008001359536239648940732591588866685897689247482334697029334564751996795412599798694822519647171787718547861605834042022627496550375974563806125294218280490871537149388358271190732246560825602575478728037457641277476099278148499522702967426751264731779760445727562482832835917210292822726970917876602876431009626520555397285819941103223993570782933070940952674121144060233048921687190803713146824392820216238879188952314462488241238822225318835803217283601443077592187077710337210098534540869440111822837457497984143245355124176527280662495020314350596585966493993423161721599022960849871126247792843104912598313032617352627920732510961416161816028768802091887692415767011813940579456016583237081526909449060957321611169459695677702932216119995103083598943475901094998858610154257440956273289126382353887517933548402143073758639843010190966036938935487774967974196910015631017250087479016068773915729459560175401027592349518226790480845244337643484001919179147904140458031077919973385716671206802202047663725910594475637165111125292768268485143351250726468192566486623869096232646775856843945035415081798765106043737616084812699342070283041215952722328668693363225582564841686344400352505489989795643692684068826024232935599097016209386835089012301839725656197051550028493870322458202201636774890817829274171708399430989254691545586395425042244992003610538852901229338079101319430572306990854575329013779465071928969098980954742808562397615685424668127313472970935142419752001807432180311380691966433819055459439709781300291195411983976875352273253599050139118052524117761188952384309038778822817787552582042507989696009234396548993599432151592622341815653311623725499432903533093677506956073161747536318983437913698432178073532352248083266423523806440095469399976575158270491543311904640577931980750808057724942060645566327060351784343641324567578308435845148350225986299640808077235395077583429066787362635278306056948793580965611061429553935954005921058127792885466543528370260152862706963070697423326183674036699827637687356859850023397256647441287548801108364239831111501794855087782468974088489571292562096037763543214732208230634349192048416143373400984198633881192668897727242435688039208325526063885669238636601844184463271174046278896744632034340674144785139776675065709744053078295922305938592646503050291294197027189014320690183064613772096237084387201096326800290103015951274918161884715430245769542635559632740859174759298749366158379713922199047656384310559768276390442540350135838959412560266931433598900189369371831301825265543049536848794038223037848155084861980057635422159973962058016143883804895317236867704793967528371897144861936369857048612535786094767228680067191835240940707027521677895829519442427994937616573060931295382363515670742187096711255041998050086075831954670906014613184085173457593275442633242195281543842395668970493767800958862133813057907252451498360594230026942669524137352060294892443176660215794940134133016526409418042995424048095207901704680389608418187258251568188887039944262983454857624139619471876949817912850273041648734553720174761644383563496776267691421266466519292847069068868964155451212531168490656218654123403870906784989171051299654319441511708712502582103597861507240592398941997942598550494079235969965414866634205129421780897169533086968913438704732138339531239140911337578024869361477459615309043542753310114440906404570850689977800585324355056270770636691864420226326050044722252691669450349602489720463906363524624407409536453272131798800519472911638441852843441276137507464468677163908907797062966901959592779385807404918049475725959088701869600956237388424004437600491351816308994156714192233282907112448283217288454497225051972537400414192816074671359626179293888585776965200693542253223776127201956304467909091922202112995982155732875281507465704686714417541419668829771328930602763393901487562546266931696925920891347759117455653882229895963375592635706959884548949366872078639321533493554224763370339465218287424342542673605621682481694044437233627189009924298503275250952423414367400592750545623750002992513238177129963425209333415631573878465427149382339154526376950580686550323603824866691403448648643686487428240651382114971460860269864637511453520565031002087312236058772288934242390525644885479876450656803107394399733722378660237555465741076120378622077343459357463584239146959308525290490634644339454276403692840391266458330732666848757720523729331020823712355720952079886927532923886966666502689920397733822737332179515256059555711095492290018651407561875561700918957493585607985783431338677919588252796777403541884399170266131807863551762402116057402095951061505496349019749479506183494527893245777755340609271927347287315959981020368597947523378849594166892463110130419535338560274559615693627098883951725835369221483786497922265070564330600515281897101417983951581439761326148409658222043243535383065051408086462404965956071851298810712736723335910762424591896180159637984338086938507376743686803989720388782490552959473533860861542892996169241284281560195605843323278003297627130483105977202766151065718154982764375296790143203878081684864272638918991983822703347795435272668948071944610800954929191046664007602369946554495743069108788056821675695103744450550964407654119696522956755385431033860852854510823100663473884308585149826144927708917748663597351159230530100289569092318225596344717551615406996663123862479204278203635018473207757928165166935064708791954352247222268517877798497280644165495523767365578568332488889230871276484280063700275531204227497055952783522935203793946214674533338191682946186005542485349441452482628156111310907988333454646487706704416072637651083103500574209875799317640935010630179671561309505690910840877713835119489265037911765400155107936651276020253823216790227788731073169506554153746132703560474548815431197404715571185959997031236124645159728557365596642477535656890630445451715473914725825429066471541493462893798432557343620560814496773091164701776614071859502621945499805910802810814652830258206735717562742642892653870257414115100414635909764773198640070434709404290030863661537998539645179778791034723170135516145212248386033873624787200550349540122876570833252415034194303588611510129239795812338933211526179711147816090967255366517151285797061167222467027011977280415706501473350381985269669305928504880281006403653933048413918743487622597440876558621687450645177648878001429873274002421480394665663024239572926932217784769541377373763646253747616844773701787626136747091810662885947684254124661799002494067780158091435668392379483021497847182783163492769644395425656007925574696087448521624136981252313422420979460632304561405680967146823900516436469363201634057048386964844395129859321138260858721667445028445121062467908757563459867827566808324173027620490239087253944004266409651495287802568763310074831736690394888746750253565873574448286741480706168696529448408673286266814346812408772386609397215361635231591825820422683478102781551663733353210937303280632228405123550069742810149209851478756652923227561490651142257961859628042230745197710541343716634547742004290561626694658029741417098338061086471345768703138819487979008728151645124872261248706491929390017678053973019528754574931195274090087967710917693319768992832268430859901036486579642670123171219218476472781593191095154631670363619860852214634587679274484587118081402108805337542345011789028574981670403185068027144139743798394229491205350215815057727481941775566680319923271973843430410800867173926742833744938040349305162899515550254706011747780536822308318161475420513342725236156442225547726511502582812908373837861241399974788023216416308499069858197371135388054610063225711392880613666130602388784789416369228606747411282592972890766450147219857493937743231220007169736295512427192248473823462559777029020908149895767088980204014470064008694140442737513063551477438681838915783618254634198263393903136611770780060503299643207249049669748912890143543397230743702997297857634965877016960842196400346629191534981430874486816848375537464983860408791855986241374053359415860365835072940862440043046382327499522899480074360670446293278419769318605024705373022033443504755224711268422991241563398367395509987975169418473028690243160720212473123520096441986365075823732607384633410654492124365902524665235696622726077275061839546008121822269424125598592368031371736677115942996612389825799439331088006086502474116943382130051849519169570219328149563254941249651528678378966449684754983733696021607940220230871459319034444680395803497759546265764571469641251266560929035582607737175221902604586761059297897849730758402903689263643034801245643613026410537178253610889823927600230608611813397911728118815964099448181056447187800529079947715999953879871869390657444885993386775275515001058448484072950036578738823132440356283437152268274097401010178779575590923382875373316076080131828691575290821535778300414178449425817674053651204842206074972694440211001762672738555168034195323869160864123074782865008760188618508695573207066914184029223366963382386168173436514289786375145565098088796965155213788595893009369477618831789559181455670255653931407727604328708397376391293846625830258940088949492727059558468240705746594358051246328694336859151047254131036803613285145896144314515852161242219520319734193372372592015194506322242207617993698364316950460735164602080398028116712713945519698329284469782400446563589787124198329680232216024592872693111594443697395606545552889190269692192714661620389294090915173223462118536249995280121699231961010025729716505423275456271951278988845427143759319294378641048082737507607272303670808916480856819442118749127900142754716142791943640912214467621756183840829346656908430490486850338365048200637227177718168924371533187097492431459698069421105751387699246848531927115361733967962265770264571441780495082981798398060305068760581044939305182014202297441122589376252728612469643851957707785672002705685840176695933508438248995318861684934627465207627344498344100522024018318665310528591094685576999560408619257266006076762917758153901128342500169266322449782132901111264017976431140142222464320148880038311340425620111433643017106589618151857042782220180562348334342377101104762390542983021768370639018953819459130601766269742249268159785170721201330633505306203825098773914897544891618187114264521354176829325793062851311268508410998924220254878920009258447601034422511648852722429950740689670628648020364783371960299396719475199300776654844327270826370776544846289605526282672596914991631289372231642919295899174073482016910108304722214635047877937729019817112440845851215551214489509576077045047822180742181467202561888785407744447917217664668395739552278723911872298198894792136159676699917617722069367449946662111889982078452907483540988782684691408932536157850719450638931009406594289083373429219538507772865519113097937336913225945277757162471058150641687505508030331805355900276055234687526600392300280102058321317383145481058843747961380779020493724242542759806190056699642242243135556883606247208408096868803633086728628091779803337162943743068883115452853928701093977062485333901880388324094774445304434379220369937018762476807447777915763695500638554980796890980818378242859621492031616095025435913357275590582424697176445631145293045200249048518784974812003390264528894134913420157032451636816475212435653229855207012819987636287807571501410829824204235062521653369489032020747933846567540889379774069110099295076711672744612237445198317790108726405718166028601662847455705870499852029541507462497317304108624599601826804421631030733274875587265145890760738111119022286198156163427529477283783695178799094018626885402686430122841152361896223558493054661408989834506088890599060142016182636464838477626071960289697234931691257283588081758024703155789758643209048349008504474131515497086947004616235064390578087864852036988960519023433016409160677760573604285207461724192372437585989991835105099266162307490812582640922676820530495359063657026010293082084586948128509271142074190738190201334257750358754073423675635729151674726400280874979224818636206145483311794040512053200035881023666275320266869069814206198090081308155237472004587115295228887990388681764059462158365240789420159715698242543315961975466574382259292303491563747580011416722718789127724519455015370476067146097521792038732099212028096337014000844233019266142591095048766687786630849585711914467728912788684828378072662759793694005144882135668988164622670817333513005248776050444887850610438394607821160268923835008644015207849686145329420844876215515375228231313423349659278918899559697050103267876267341602804624340628096073420893610929949429292211132553576828697211771210314673435524429176426320085293854411113355235525442218867480691505376957447097151655214128186572781170281814171874579965681586714567828627911357098240127918036128169569358444521180947283421907249582216661095167317733039421974141974357875548209439542974224240488671287814253324737292048468743484023303917232233535275382158253474654736036828057616601896943986127988646467148126970825545249757702219490387353165241354776667919920936760934321785682344135332947608193277726588044538597656813261157706260301570187892570653934297005314848471177129351928257656924190400600638519264900808302289903133445260136568406778662734730500152879779005130992964636879250879231014495919221455597087044810768969520786940214744198026413784915216642105547801236210752151177288567608822317429279003886034634257880297836037276357937946067638995081109368353844583004466388738066044307672115973475731537681338961894097057511782874995741901033248875849100934587645240319436524646787408089761608143067966767886816219948904727444165797327184602032819295326791397368390084815098425434930237171266801920795104456463448595888921651853256951463031872887407474037998882429221975167322171402662680069035178095568657109299511055284164611090645162886954476440420238473342995406822664913201949729610038100294278371948460076584473818990945972792229343776762617062111829604584561311846849432141078191391406349417959040499257068105657563322555568107139225505317852961274141788164222679582456148519478210523141365234979044688886489694782864852703058675291639407906969134644637609310322985954004353383977411068229983345607426997403242850261557726997409201364640614575212066560259353101185970920878325406561539101102081924196629511962008966466483429006543351421846375131009255193942416915928484942009066339615855268215182840871113521428135040049636829053785842053800962858678821226236881266738468879375618437019560659272846296599793077919475685915673761878000481207652492512882433361935118620849113012804045928340877844963255589250521449071609669001828208138201488649712966982274613421371340905458248940520345439367446738541326383921106881987599111350362538708939058632469316300382963074767613618663757180208866458789276092302895035687481098082554665281432270328057245112119145983083143896042283419322251599416623731625169851168522268350627222593033618362004268236390876449207386111722884670515818028296610100669367002930553489426628052837214743360260996602883899927191252517478163099762792318966748790632224401084943350632597248684945463167481598057261073053535303035233399282626207509472588107810159743922950680533032898172694982182994181574113192340520748898782435715272942492131643913293804601708736049894323228687145399248469477806356477142882256907875491903541135407348715701262183929183815529601422567232951816647677668580519831036176080959945050593560179316407613482657603794611557325501450042251241729134903571678043617880009398259487174080399611042205053780450356032651825597501549141199010456024011626491226954595468700722681502934666695382589146601183854935807761697849102940870846851765802216348460881478541926791182180006869311792296356030610452685678790078192058581702369550485506298113405490265590170818479193073941812516498118097737502623458102637676702613713705396107489634883406245357816952298358870779553710970553926764359293379874198663057433999615704651949733287219090444817582600249131971379993277069015008578282545134407589097922199683582358784978039291958339214406272620075437367366581113372899218320126863060257040863038404561505352481055547987437680944757585172006294299604620624912219893647027252125863337081718818782578746791339756220667325354354148080201071274664885757471023383460953046580900591906143854789799141626991111750880127120861237964623074345613635596839753959344285061830779290227816120026952839159502527852299764953441809408625974540441122905434380439791687214069505739476030665715071461480556461801576722429327568627304280649427193463651097792738995030134862014731371868082593070607713089662655028473793535590175770228030399130620749927522682784625917324045872770430707228433666212060317925758000441967163286966296228823676976781595729671142571745734731365536420073649298208526676086571838070469260177479746399014857655215890230155292805034260452531546450821694281785794605765297019012150701332603233635348489143176256359971530551186317635806821233741489470925009358540093835448142891371380688725472069026259663321906694791801373305598748440801314085335729400328796482388061346236212954436671026230594586199084384119387427920021959569931262710998499105701384027113411912573021079930074994843422838204502043848596226042130184594643306562376467622058234415716940047743194361434917381056501720596664282583756299934754022188494998869282818906561631808527557961731595396327964798536215559709910298592700100886723757029737193593071991470313688963362276914929358412235178971013807383807791375769143599346352887117506640350116126515438036470386825261970893439725310934789473134588518721792974555566013177898295913342108859330760780132629933034374465496311966936972181828855999584331762553372063054909081926615813398700225781308253455621971896853127170569667229584685764291594217115223442647330863151566943194348824571372382715138924848239955452578064636828093012022131782804298750929393367319744187108512079513610088600846600250766862654850086007223305288534862587086393136338851412964700532903244442476553054462261019306626679228460083806779595894730822048505385437165874712811024865957371589030377824707412983667703013013926099125654172223649667592611732207624882793726642468840306730514336280719597080242016648430795815436891782742972392454340033185919649665917847930647631649541745290177913750480813363429808254771658667346398237810424818035361325744613485707129688055276840138141568381610309278569060761047861098882754181896138570323318143545215335321194178526786937933325142207733170492697461820773651406548901542489760492734405696832396975605542542138144624528414533293075864653422978600573047306766900867518651185302544898596234600023076276139367537140434043304794186707212889016693023055701814803001791544825953102544392867214452182789862940195243583204701682387398691735989558918660624205926643578132035487902698015498991225196743680914339159257124070692307728702074850335020572447592297403731702782309414644613747831467897493708772530046839266221063272452003199446354404827196402544440201813393743764227906698000574528104762150867242618783039099616980099390540066883883980622209214668073907227286377682304674767149116112959427123241921091139885694370451188885436095664197571904355449521731316754879305256657045896285526981849050588942980281064087161589293679360031010471425551735636907737772304785936883274302139368327145865153455906875685673959705140038613893453134578766416330689270938080337784861717887814256109983117503649164266007293636454443466046875792970693807782809083182682268918013504955203592042604445831641432345408909518548601134894255056687115435015468037126149359184139842926320188368106301937199415877763161162080785683622427507507441428134060126538017155163311561317318788105350486293068551951255273469065083033259482050252783369118613477168261376483337934221619715472601543210324769669079725199172454029737129626377539209680955051343110465793563296113090684566783859634105924543997559230178568387504709423411719559645943431619964757789849002970811395202585280629022211842150126050735363625430277841645995501098549890394001536177866853075924291624355305786499833381674306506011424307561051023199198130491068802870276292199442624391226895600423467512882073824999542097673263335805672411039865081040543301109018307172755229723812203507049127783764845688774819873109271489467125686001536489763452635294119195800386627056081449440361068687751405269553583453418188341713541665804660151081425953841081133485911174826818334441398078805096425311613007850682977785960802575662383091036124575353849011532631094363536134734338945039484362118739700215266474436101869211183127901781341065132131512190643494108654555535645579692062008958541623448993427485954993793681072314962071708042710199779628909775356699862653935448162930018643028184592088669720615505528774093848943200507847292837842825481429944203616887795652535397948592844865929028485217267873709987350901403757416506094705324880423097857720421686151464531604995963586684896213656225811470010392059858662678586557799188191439022548175420980495019001742145683370629202306111053556083153642396530885402388550823819106461873227526538696718423666147678943464750939419228359110770036440701630078573141651456035283709448772949549243684318572181074867977911587903375477876437346553948601188139811588594030675816232146976193734871325035918770278077211163786699250738717332785463955855393328174806942956044524785505553087304031702767480841127625800068570402935231799766969458100749710397281307055993592389940169967981829512343303543874261549551160118517106080474412747148255880471414166255525787272742874940348552975810149411607969822897664083397982758230607698647087275492047746788813611100299653922015609692381499076050721248515984508572132025716233564043763276456998428646317092037544325113126455504979466381700374354799966259565673618290553111875617198229473642031191341495780773644345114595675812249553468637081526879196164261712424970734955827983080740233850988693379075255901793297904531979778140791621797247067392016663075809356545676012713002489045908978597125688188253060149907359958787058074886261834034330673572629624422748669959556498052864292572433782953957900447743960863053292477337780435588481404953783406923866337071803232192423203956140032818586247922623995738785413659745205103373708043182066108350281137609529959039260965471020363987549295258181726264066232850647214682074575914585292691358849572087806176737895773077093678931321822361989505892745255644552311018552670907229441221068264305274773345914302203040806144920641526468248300359990051266332264612582050673012888443653810916005522163860758129505409621207630750379362196272978184542750329245614554219947447321238416022797052736092726897946593433886981366191885351185149610952178872612923883402566809949849858851346232350963297380849252514972838257197601850435991824054238940962925612503190257659696262062543057838701314501779443511809463792158280337579232155379304538922670942482493287171208226892135348375531045630890589021748062965170411932451727466339206043072976267175045992991178970382971716516315395190392162206759626484159786549036674894963092365417153530370220478473329667422313771890943452014448804109228519010657128185618803068539493012520409781619015920946206113338152263391842441710996532760476960483594871040219225814020074584746936292349762755765741264200527123559319974519996381485456368639162160804608318562632462262484210439881981770514270676769537716522390034149788605695369830664244002266230435873246929995484085739492031039982562594909798447687592841729255558577256857599387187962633867806179305108277678653985885637558730912295480504516365291860084108149032785218835259925148941410241369583640626330559034290263146885570385108817288616363827517575603956828117441891673597958049676021030399210724478762690924154916195522682454697776768448139779564230307750123501984086899527123596095369039171038855730662309165974102278045396728783043058257663881772408727583666461582649733259678776146726637379816169542145390082798902273799180080382804082131311511581609316645207405072239630543788839389187075466271107301878187588035703832738454368272711078886609285841683248930772950003346420740798805482141609367476770700404657066730039330606317400725974947941657344961210559460889057141453205019046180558036222156037249308945654795673082991704943225001252935008834923041328347030938706464301140252693486158401992233773349183831821496958411979074887131169824598059464863997045780158637419445007533788512690133505878015917624878373920909723304458911356383307664028691609916916123949429748268788503474529743791156246050102895396481076146765883079668642737651470454127247366454441538250347758749977833216108401481204618946397562312120253222969729733668442321702665129589345051826599641249507870731307411011614587550809865183900673105817985091142305086622544679430970574538406643511075750283740766044669313952039877618964490650509356598458063581988839453403235588344353414747811494380742067236486045093567541505874538885453967350022241662949149831546584789888053579259470319040626790883649388149293005500328103070593886097810502245408876707496878855812971927011224220581628765628299926000960515628387686580085289274064263132371725614677615579814716264849710196792099971580455893922286014471738385087869019244926346277762930147320200734949992112273643607323856757782979952906627687422305749430189568085127794873523045971373548671972174121314437286329694220487870196198272361335179043688525223552609221533482265317234934706126207782624376389619913929873884866929114122342888228402836228652406833126608834546054606226173719416045799054795891963486479806070849777087878561023379087963603940875111077610842215318895024068745388880755699956275372984186667110886804185123991738606358964657475651832002981038589865589673297473217567880872780780982406659538935621104694028647557887759149008442378625726383153703948366635287741630656378601925446400778564439985936141202265434622712103487004544839277001374005697253356513313987693668043679691485372020363170206591742056904148284354339001325804421730078903506791063934729045508333916753490499232677793702891833273998471472612554624795798236633683531716654569657053505909364469490690528820991617630528867167523584316317367767347131266330779773817821102285518370880986609948785626669145900034714704296197747065147748795596525439447072952783457852639380923923436091652290690507629817760149194643472730849837507651591706130854426249333176785589015944235394438007857726548433002893344659950005914957236902193118662758892048129061522040641078724684066873301121445234574263727265780214865550769014218457262960122334255337402984382545264760474623261731978791680739910494922720736273823480316839273795330270168023398869469472376942649374451819612176812282107827329172045563550149629343450862624235454393785156637086073104063663806352962372327590812427299007747240204849846020231372162755424154016645709464655292114194821569733819063734146486336074722593161757329480780474364565452415341655879313191563252253601742707963616890958983998286203567956304733456827710283315737578593779964515855860896265599069935861660540436948847599180386332731292221291394777058500535998980274598884192714551690974410811505824519168257112330694975676006730194553897238188879826067479171504930186928650787739172197418483979594081789341372906373488002128477988088730999196818412784480357908233426155126815062473122761083840528492105948020460449594692735476807614238261289811939661491864113125509077825710313896317167720532242142083548756050993314960974826670439642112206792040562647278227532590907935710377254717396098173030326544353089755210318074387841680110428794113943295530226477436722417901478134736103896517432161102284622713252723031623982338909650453757070245684768667063843675359483803050021314667607370663772194751172746096403072983661810531290348249884393123307349221367911349642122542160092544004470446692567371913743654129991456368932399774730382094620709468310469798763005044921608189080036843608019708706922042820373033886366678327706309878102278883799837599824898214571489980549033032812654633435263130417985521416593843653072531988942257435020329400648836807902230941133413825545864997584657208869565248836405886784018390929627619800113238242265917956586521927494169967802192999800363430126589777559371089857359125518140931242308842300150600185782924174766181061311318556917893472216998322824985166075169293913920522452426235634918199788799965415795258158086399232463805400964340860585548930536627681706900018611891788876787602523210822229998622123403895212507560512173756386594228268064834006756746749405486705497300928089156637590042349100500326637420177814780776032696091496158237501856164667455936323494550443239020445448498129734660546911771734886639808407993794250869994230559043935322564961889634245976089068211837456401234212328886503909888060895702412091825311824380486722034621844667531562294200823100515566612320916769891611878421588495529226590465595780218087261536715298162563348660822450204081113172326360956886451791894884138225282104192216512345352594677851777641087785798299896502143549408101127159167017439193538160229418709153999576227116212927887773029623671402898804726994765448003356608133995177290837704872625421088401113757892517409744965027193157323446481443937807820781678178100690460119017911279685030131772131581754034693581382452006698943552165903781278113806459867795266521053522413759556852355212544731651209159087090223041817750824565522229804317729325493162093949213251600142301094911249003989676571964635995129570515153173059364909304151008234041389955227199860308181200441343037194990759197593876279619740113911875300601227056459696235235137037940807791306192518969150939923955829640341859995430005354346874658888411117803674663955380120329235180469497201395005706738062467042154746189049883848547309349137514346820468428393019920591982891785883215894394942946427243320313261736316037714893059378223998579206797836971471234698512350070292895099434169265579228014607202517678539793020093086340682628935047294604013179983596983137621472611776312915367032841628684233121515055026529849502467506566440309700485259702061418212847760436091484818031935060224856827093328393586419356558277874863032468901745410493648995492829750340981796872173895427618598139283103523302773451106642987202917216852901173892252064110755810129694698222425521171838117292591826321320907887045691211684181378320845683687165194995903299202054481712794207170221067785212997457069205371467668761570716581889868373708633652861639750873074499415660633522455985257579807102843812747502714925068546886773292975657691589177556978608014220166547027852301899014554839393545387411346295422168230895771249084357331857314618791597409369032275218292269109680128761103911029242321051262088136982347799663399997454608443614051062042443101590412771763395575832818587915982357592678520209380250980403288051524383966642753453843999469882221206131070052239972773362506785651394546700731448604604632691187070211189398133530112616846888899917216426182502234776339505172353087772166982446207031304022586640729975239315967576024260535921398140449010244618436955159406363856176127976999694686180871395797803467629001943998940425055688246598319351938616907403192898206288969948729418965862816970976657988482329726774198012851237148190196376771989283224866562150087780978091069177618105996647925266082114463887183792746423368194260180757382866092184341259613022342913194837419885440878077916395530614358904368767027833915419214704009556141352138146079432651796854164811445453139479643230606994789119912203624843668703051253268345582709349319887207342544307468140181703663090477059909037954308533393970113138054043668599268656473014263746154822025942789707318621945414800410379860334143178831949099026456414521719299100410352078770964704537902478731118147348035499443494999522141546487522978122072652174617757620188128484945469730698001826420142355695150381426046078611165229994866836598267209560713968191392521672971794955272550785351806452059429506164895720739306095874272019797301999927140590010242341887734198073177198906195297607656946847324563171035536270526045843213082108850370484805367856842328096490389673430403743111358151174017601543748323703927648083803457761700199328848582543099185529525778564299092708765687541287419798137790440266722501604386640147765234196260300691847825198916167586016078357309194552913202278666019626215793607145173129994915016779656413200775409066563320635081932174991477923993403676228252844795890011265699297064504984703822211497084594448001257063983294050540122946054666865880141230755531110903914066454577688760143110820021257887158009861719174514497810573750094630011981994758210268726543082180940770463204378729050616876043638088232589025937734191738115626669929969375782132019691433752745577555227953904893756411811217192348368003713239426086105712719737778626246470416190052941472676649241515593795308305396434899461922791509889842859472690560402562960643896932942765623711690234808365608875802769332379568921510475080595005345098418018075316052975677120602999240685373536987181334549895986157269800195421371025384757866611001469365534989268566990554237385202421015407170131024123885849185209425431264212090574500748222815134441983983131125757529597202900568362310874536065275421326063622512841834030302324191795058215287899486594025522599930126187891318487661823975495647953815934112487486398094855720208267525900479369004049293750524142095927070280683589643594881070792976301697391272070111957696102049740244607112146640536506529311520913626512446157231706532853931281169866887993261077830716716423181766050767777161988527604254270332507311876563306541030006864858795347640133095679475883029644882568265860725703078064279800528855596484956705332890532147099907004019125741661243200506051170653502192964427232737846820286998499008324585232712917311165784812335695871890156609470424522506639689706135850834725982162548247618388036078907249263408962386252132379763422676971486633196885278455350410945794883852861556266951167367345611161981881971609729117044674229124423821847328549623975138822753650222604530903941496599853338088891352884483533219408335757567028281060513747869292163767288340112782665050891906186136621722742811403291717900473562943592409198482251458373262791700149415796509820746935706309745319066859383129907171513158157886335761506896446740877673484730806563009518398271984859844955050744935456307376688515494473020588666632583309745357574066864929353505884038649815574456422346592061554260469457989439184555744677396858604942783301459038675109754637955647160451142498912590487315277668047399803754593354863551413637663840768960225785428347915365375126319041521703443312276864303048002510633941938825341045554995171385727063423749646064104152551445562730545439743083866091531834061004810094294949579571496774442854242337399534539213646828387196694292599720479225808582697080889586442543305501851628393684887106140135058278593951022898567379438314326959504538172852879993245887330088188234328838470172898604465767608968743369267805122946643875541990461197090608718469049404115557661590644847605660453672567875804088042580665861104085250650739877048026125703218396819949385831116183721208052624898568824286955171575962210492398092614018527000688090096926668731504072994887488680949013511846247192180054982051154071763858701318394730958949576510008376935383339879882080109624249281475834967557626400559333863465508195060861118593221859936734538559548887241029550011479040791769821690086342786834189140262672133400004212458887299129354527425000144074369054860141105353342436567785819242816428484243593481415588876813844305700783165009877859209116740787535104624586014461185262514769785721650007347020171945231758757800315249753741922624416083259239190303638578888595375950066399713464812750146249296483553262156576091839328895515497911256506735110711975390958549350797285243785799331937011450135257647959307426977467833321264090989434903646446999109305523016330007907786781288777110020906939244154927947725491335718870360696705385403761643446680272712843789611635523285748161285348827662735899664299214070692799079317404438886329997661323896996638066913832425021840592689629316493433733163233215236769930490272620456952246954214976224187063068513261902673302182436919739113076562846640898724307612457607748139387570155213283677969468227148419942334967213431520277045753019144477455489849694350514808653400828402105926577726559762376199402228388500935425430598252997836084734231131840734645327648659841129802218873281842283726455557956258276061692427369439724231711155435247134013473826421266525023257749585241013001634726709626605382778982516729487597474138654513958065935023593544972460895502051500997862397289095366013588840718356314598878299538980348731060053735443404689873508347031823754480056292042128222906235948123154905545586379388755015815225690714924602106436199149793021293235005896886593811212851954303374195463554965338356149415824750619797050457589968006925400181257507765011248581352717290321703868551421543279644115890265696161086034987146393766158867729102393871025541097336475856877975749040214612749150556619603624140767334352803929017941084999510308054073785762866545731694806759070304338019821281376565790179677004912964733292696429226824123946046270919495991189295429696935284777752247592685461618908665119078113213512652702971253080421443904568882763758058804430810659795938138755673810556387381270716095574317193505172781655098860097986454945699126720486063630575106236793584216367151370565386960953752412832606579337391815775444135621348304143639127998971502299735641518454943961506913694836021750763754279712504293239385558769967185237247871125307824614792339017149142876450509687914453818856703162472865805441403301124687601828767557349657790142560177022017428741938477999863796213213451905537166094242189967056587014241630295083789247279003519037678167132541830328261782204984996131338890600880132781437964186205510380128171393803072549355666274008347308099331664501213413875521559361818622061293168807755482736395089063349304950171002355513473045988929028404572137002916645850319635069779506690598440227464159022068033594538861766114668846284988748731932829690273016749177327756474139709066255061788546696051748748889275426037438481079656712066659237353953868233730947747717835732639048414665860520998763990182676899415969469811965735586775762211931559566990885754637863962350663403592631827693005835924911585197414280317125394842210019929327140799909209097901270884527937632277857806836299954094469132874408374589382492875406451327202450252473860102247353175218835057652180638594186912908949674692985415645774532721270078108936828907689754618082164916857630279211639592426177388700741540700950362463610119018224379924083088818101668936075154381333251401012701529282277275523325539139036244327043368382544455130438789246340198019245247569501437837876614967246110693712544117645500669657890047726190584489816523913701911850609328651184515855172059477525088539250518046064403030295491943020663919814342793975345973058793483787334515816849790529783403260149937317479281998401548839740402826159542145031607992123393464828280954732153204514711939326023490710697749533892929599458613045417483843580848524733255030646333861903570372142731503198278388548174685733720341331779656080470071761174383109268706877769583267338277811175102702183155264165422514463487468236927081934166679416975016560593848114026704790101894526379824061998217674067634143435033258382966185394732663564571487331713678113457467040908159536596603851979166525805252078941627288990426016174363309635800580230412605296653104378271220232046091113545850610623226047936179258636287609588013565162114503641743714736103676940716750158221787139496975923904279563299120241787907989365782460094786656730557463809601279313616335573686214743969629376661657446712422921283284527150691275304322373121499976800131887740047445715872502167768421957700057670621218384204071705119841910534995097021826163042241154236562819137938592591687167687740330146027348254765590370678699452672849935309035926291015568403629328270562189382743832112333273802468043646689123456544238932488770507736875731898809517388468084158185310830439750448146029965349480235086918883758796983394315972223307447718837557257461668101094195636254440834962711868058834804078492675728198977778609103735721366095945015270539582898606906522305502351658122448653096966739044472532515234368061765072514687838930825137886114704824778033301331907563014277332913295233746011616483460832380403736106494154920223836617717572415395580831857949126120162347877771750343866371121054997965283622982430200097708087951520215633226455589127751893678462992130271023038875350675036852508669273131265124086600458592204018456759538923444867423307151271463901704291176875270331757144597030270997293334582706158691782549618745371372939821670210132163780632141704535891961764089955398716264502486576331787323378815808929012340910966064793365458328801945623217654474052730398564935019813487096642520737700840509897103675022562818379134406130435604442674765412862122663329574248993609569790757777011422206786054475838951786935034736808169903149241203170807208700622719880490977536360835584403646482367845212458298594068100316708054088236326124141131315671384911193428934636071000018611845196000086683853304681319563662502711215172284400222006746722311829709048315055967755611145914954861942076146915825272405585180444708114883816471380790804529536995029165709722759133166546684936939181585084541527059683257739144801586476234169450100053466012690563927400103239055231272446399863971916910722631499888273242325539802474526999620687519164073675157432094392912152088914306094060726147064256337066653877463472065244655993392879055771793225042780166804132694736957002239663383797850380478077403082904587187442930058737517671166198579777239915664313913559208250879853753246133826024890859515446156126056916934226076583284504939349236339452015176829234918825100372916624474128430825419538800140446689655017144402532391512029840073696082436882789249661487761130972081915855882912287247190185219218493346181611939946840489759961217654043196906238626551465942126543508604429119680283823781854086890657070663024842623955988718294801780878812905641179152943816904856862834884478248200673729776646082278186282943804327028761751129019109303271617106693609121811250913754394736229707251361546870622804238239795053080303892038919783941656189405264798113763290845916801498981020266348617868679074806135169356955130593234239167796216052969888044498885354193592788869881181473715358747305104076385758984966763739139656411261204652695958093186444080525369779842488440601535680424101385462709966822514678643351830341473447062927150024924085847042886645276657046405254940468747461758166737569398629192508942698791411945637199229274754104289365246300123721359354816659142834239604052565647051109677652697374904522008884994493892713764515990832169466855313022317806631063459677912989637406213786140406959486379876352857575400923701046375805668177593528863433200107491952699576004937696892100239309156125031035317495815577140431792154192755031981039540035805184239876780821578421597738412490551312740074804046050480493611383761535254703761725052128030797996754219207801392355856274443444801219897989054829687108380212767937056763894725751494445964311057594806842619123646065301472332784412674224659098103512363966143050404056691677432974062210594074872997109468839366248281380210310061532807793623878864443907027769602320462311307691019563418098572083326301054683037310990818297757753076391192437255495369721877367032501850950828194080963889877825825071462339246088320623746445709076807468388890324230152525361847540078450721424954741533559545117787704152847123972436968182085320818253933931134285776377144543947156754723971279042037734977922756813495149990539540512871046037936109224004341817644116939038189819380764639419297435945490214542175332514194172005515057151068025636758838291354459104880789422093715686481071543689377202533097776698793435673549689007338305324921135464248180686231454028958388189450825306998869819287552118281353251634686935055238360868066549290497424223626032374488560886339760036029250900795626465236670856445210804320917855169387249581053099086581014273417136053517501512169002423945641279500170263151845571612299004653988684407820308396873404668497931640962710700925480635448059237446360632079006085342435700765091110518000530893789547299209692602976791915231739907603733055720156209740655770286359488071917028009984661831689928447706984238219645025356065717364907749871058683858620674594005616671666136718392786739942037505408739995286442575539806646938651961149656587651622477843600545609393079077837032812990072445328420904421019850197978437026695231749023420376955589551291481991825395296519425736648701941880012774181149337924730042377790814420874553224017304256592786164810745875511609214584265387415849817808448285714921234690197274571521347162921181542296447468355367038367721487862559509380728387282614707328720769393020463283379838133346859145742024001016756262597191664565181418521241517224846072281489785632762987215837982588326530058490317455731604568952385383275306957504780381800705115773756253656498422933867724760121712128296234734302860912365283278067720447682957928990394285294690373893075934123224423297130024591049347716244265460740089939704419491240698866682400180662809174453501167491193259299888274601354003334107668744235795991149225777314674861144813238100205025253136941635366434352722233361439965161990955948293596660083650994762641712793231640843112010604741624260136358225745232591935993330808765689004944668138193148645999836837574956184855617284522498287212769226363023671826527488446895841041616991512337703292155281356208165816460737362994121831351966118800639931806297214058431956794247224654339007402685761090389643972476962298938190902296793230829958122025832068739697870091081978727211545538343777234478142264974288958959238495166042014925033033164787793119935404704247499939248652697653955758357308385714494093144222086553628643378778581821557132869462090371485382534686155903177425652669473195048506610799626927954493065815380710540545578200256277574831949921546622386963650841514708556371071619517771143773346207905702425803913365643000884293506891266484528199801667240214581399620647420753140665366182262576481175719257579753701653024292802044311665305853163304475041694659374320646964325574672785645524359211984280029708914644704120418697269296253785515454716788493596641415938850043483443971984412008896255855143105742163851352404826725115986579807942070670432936981369791724288321323651201576411290529439521829325914251478046299440658162678742602768904729727935151895691947741469112658157457982535532701955533058378781409070758007074128021057204358316879075681590311663093228488555678961882374699231981255811950467041671359540155372430193754227593030805150631697383712948877119267098967343555113937435367454388466911914989043807553128994751733522861010210300132968373057773341289608261786852483248883199064230151149996307707368457043579201970704596227950090767164372376883382105776856885743660887637617649554925548238530446229083783789384875671558822206415963069745062567256528871293842473981093599769221269405199310537428630267430692763537352532216804857739514550820270724564268217585393441778814669231419378302113748434801001835323736353354351010670041247984242037172209984291407083710449146313895425017909379667983524648886150106707025028395952994995517542914986820838644277374575776548570949643190188625667573028750357719957084403129099389200423089539025284149856273299999781576383877981985648686321896668273041953016506810367662654937521582444053054986042185471279907034116296036077956160238127227030043672071908780476075410542715890516002025756840137990592572172155747993863410676683088825875561060941412784157156105445397220156658793550527179807953172147224064348632125262573152822745623120856253623718373210049840949196336855379645035146370201467672949257370367182394375293767933377117598754482327157441175219354399314999325704462041920850046234510048562655397549936978116110184022906862815328442594816934068318481037272874914168099624364883978327260759842441278027699707366016391351907781651622674780942558571962765288564549531722556638027953339484256859733168526755875319795554325303731160512277430559940017460916461042556069715340889283111857049011120956694618483600067254364964645490757366371061728416055361027551344932080260650169861037554277968857846269472866532583968706635920164679250959629876964445705168095854793245125773591795005797991442676053036250504981812046625755619215541364942701080390676738903238292352801307573648655251861283926916946670320241196040455395110992506157601888303565230927008828395903692693325498499611166898074024819683170048646517567602649549440145158970589223842835327080557184871696901258126577023108483226516534026436857083874541020186784051307420717401584044681246181136540540419258806865026284812075268789947813303591319879956519068684572476124556476505740163929723018761732707082574444242840833157718583336344978452256656783771223041074922839487755645331656780283364002726055812092293540211942584802063074265681383765151919445287766503591800149692952746253699241008842076296330303669005640441089126004661246474253480666962256094752714780877255650217705355734692633124921759752438465526847941864588289929187674427720270289532725296253338024866464575498858950804593979743003046385343086199920291974133623718351407896260430594247611264362829704114639129043031445984103166855155051673457018884672643259199963342108097877764799547107191141810363616677943337370698698938185654078995256651460640680363551585295737696605474536355340161488819802097706631326865269050028006079205736755067444452214947476777176599061643599224164307841749686162782103962999115493816384545898170153853062364257967682476586797651789547910393104825657132288476819345625019996976671927317458275879534517580991134875169455899705753916110819463675347568072509512781202975802342005703363784086990841616260129022239676953816924312047812395424421061903193018135110803571850584673292064012464921492412777891209290558267192088445418017474506183293837741792593255297703326916622821781235831454569635052582205749913971553454228107545312740726914076908616785113407591627275354707579537152775809282653404284005370865499383118020648850588447593077380522912459187137487718064016913170480769207441203828592086081908999635875253390763188845609770097860846712272630370319727981195493746461308304183532680693578044819672737039408906793728197062497984392897586088976237705590273842042632204739275672388956736072541665002724211988916725760334346548835432479995759906144533693192010552820668743609867368313097031185395542473488464701671076470481027492339045184771446793468303667791196534317615436053252298612375671274843327194345546607711944135308303241818692201360291413406899925551664396693087535908455450227405530758709294758667293381362067670051631400442882218135065351808862909207081395165493648116338900327231739382911620665522552416427786683081262305305836432231789274933765187521345689857617839643486191459829118015841732548446951736101161830283978930117674314470204580798303881322886100489532316481033893008167964359484523918743848948205437279521863307550370627046857011027370883221638752807050442881493067713251123127050540984925370822919966188249134939244026131025603156598852491908887729650484908978320141824556863558752615146968092107297876946694088523639313262997536601647807283086271082188379991551165854543307933122043605687342289434218797483723486081690005186031984453108017116116915429112576225466860999701308028246053831688553307168277683383955876112476940245950075798690690250848694888355598012337984689636002236081778302489711363033357501874480339877116077064548956485573740076504993538324614225713129518311374092088250283599618359051226894313614244208279304782778989121180678525149924024112624664297522633394508872965875309915246726209713417102455970998972517649070908703273600363409090393437169632185635687751756938303564392918783172240478167400814544711898842548887379910184174828215949505060981166395599100849517109111817120613581734196399866595075431169797941361315430632631538569203471307483408359285089397752062412354955008040900272546310463554886797980868412386519377782929962941898113866655446823686512452515703251397902322364411165644938963035176357439549351468864477767982259224550506033227305367239301942871565300556505584566542083078214206898028573298147653351243895560147150725457933978721121701396095483057207540796893307793039186895752184305508122191221671566216283233962673874575269068287548872533026534467372253756500192909141482413222906374906837383557150241663937868716821862730472747650335414394463931369376417177700822449446720694159132715588454553631033091845239761772700640684260931360190439548753318294317753237836800434627634262682108666049494531159544464406731274427800676415208092759555709930447841724222869470920970469216350014377396935959814676548414640481491637653153080928641986539504016736393907560560672095792719077465987098963083539336320449245673521158327987786999241462731836757250891594209589494025122184034172020437808261592705110557541976948779571729344267452357803076236095125733093224555467745829004219395284978373543987455315609632375720272822337978642443540911183830838159196579780107391995182675755853570960378902895515401062201523408072743115659139820197900947958174905360840722408874182163358213053668638650590914905961937049075005055927102247906803881168351855900897132282237414241209235184255139673915077716521574370753726652217292161758643157714146510677172692915298676421632914018441950173869226829473809226574185169380186356024432483227177899433712693807916435014319094970299895551264764828440838878783866234869510439132978032011575998854486644569892483574932027464793872371747661056384875441949561981504265387973730151007517586690419062155389426031514657444051329319094111534415636222598309266726822948455576859446602833017167566773185427171125847182113302695623778334246250881143203068476956443887603427204895859988952961390558462063710627134877595617756933293034860384735127281889168048616049645953629240333767835917742109347193027275588386459351159089609230985440306058783683375570945184296293232521607343926442687067053772914561205681536343193700167392572975858570248187211392624522636660537249367613592668367841640634620386875028807088406201505533491718116142085226025300353331989641116009005186168169240070117923831747818942925632206637249779840442245245328076469601363382261860759875895288543173563494252176195631507414365904495438871889108783140918659897319034920280055297319783240204842816665045388098973706405189826248249133333456798971111108469293643860784714101038159856328781818483929940094922423951030348314376856729631317120207546009195860432382618601944282336180119561923647892560907747629494203307042370351686358128147322524975048173283826694097471039891573450335383458284032473135742684995881651924131152661221893274296044626855844589980360599866978024845179344949797216140157900795579866911597053399953955915261635639765713956424931550411300656505848590527937316796868889953292244853665706014894022574672814060765676873012022500221367031887977363080032627288845820858366354549209818007371317196982746729198057025826908957084839288950000905591295889631059692543224484364729722907704263374499297983377707612191290515043976760703523844735598303114791032193822001910852085392325814543559216119946032812619319456776244088893108269595772549995702694033418739057355122355495490695710112795579601419883742564568568253558772191277810849076393469169978313481083646566736212332594078353995382977035647833835938041595851263318788940458641931393669225705672121780809567867253681004312184763882463412038516740771453880268118270769240780128248034864664657745367087471372354473636634429555267811246016820396078425387707266695999678883645479627329314811069848376692130906465154213477343905013900725185415322627231112306749793432660337940995420442722350248076865087393600755260130618245312228795163540041028571597597456668730037386831860754996150228131600970440479452750240648487578661327408116577798583213562059438418648607034218953227107037415654233832877509852998532921390882494616147455213050005951196041830701830555362291928709921863027882184536451224334275155211433958561679972215359902094659559068517961763244535166398484788169145350673149415975670258215842744051949914800943697933174823154673705601354757944068886443632150515316707996348831940584646292643497570749784217030221355346319990056662873550588101909543197079643851362733414190296326920072549518566370859714907572602415482041360181884733044396263230018855103868092595884530449966539460786407125118870676070467645634395999554685114121350689046297276095066251122068939047659472103736460406133879474366323493017758455254067560467185854012502256434836156168758106137910434579591869027206879620045403427219708444527230130603377133953846129056469652151902623606604205821033487468004068942481954946781515704480714440733679714322902791085095779237114432603779245866039824792273739730568743245370265122294751040648645023301709329154709501674373022042783944017469488317050545117376085487507227707296277415592208026705180922131888557517138797563660488370952807964910010256136675374024838813913386132659186065421679008257890827348749557831659908830847354227417054829023145892936260405846891125337819981424847215945547571383816867081869436847930988678771796419985355132441704475305854669309025598906330326584023055336162488690998471850518001246514350366374154587413097807598242605246181869814557119277240958594963607432072078607072160394968279753072088122419219983593601745195342662201781059892699637836953994565534699234699617001948334924964075784487487039066543601646315993140360805435226129706272438489814914770205266622786491733755768118346339408668336498015068477148421495810454514470933848082066969375880199661504147702551464518070247516541983520744471301072699046420030739038688513421117538240510126969281183396987463971361288321425973967182960143325603494434598834551304297607299688454634913929146983820486516324972428756482718414640674038654878532754173879150423065945137886662938311837376900498405551411070356003958912779002031556844267959627722783773155296806237397054006025658285517759991842076384439767825106379243278783310878794269391081027779054468000001459759996950220265186923876004748990194989915963565028021388348449471931163002323663196072780038595616643862181004600353945162679660231544984871774186263085461227886148421758296885775448446232682755203122100698395960084718332006433973432622945094717054717666454610797080189726677775983069479756453856694028249243889130374631167508717890994857485920932805685817147983497835260676151487095312727565826737214233898312201521730065152665129096728497986178076998579867897621400554298332108150437430510456640481576350173264804389165006629582435237818034756210028759922804451161146621117671106297769236978717005517275858505137712468867954196848291412374871471744343747105298675878672070010687437593873211232100787754533853795281593199170542487640212482889688042422795714200013003606292570667152593866199836779446714193300352415034807901025890868413813417932333086847650582421237812127184150189506112000144623232098899704951076096709922078031432161539580293238962521404892926374586486556602483035096430411614560273279795680168298649615559183471664112618866668319310024048004421950038032552669473768309898482575103798974462473158906158982624036019377952874832105349812595732881248334720070977838507880239618110993000965373648590508428559247231347098792201571681254598046717154374757330296430992673525636099313333064841044480985778148190119346866818148512657133661722509573900764525220853919494816635489933460055214537472433185188186286110783066538741901454411162105794330152158089044444343825380356071587588686822131672308896004806178386598848359084349148537751173722948196783425338557067440255924098641205768873924163282245638137786651407440685270492779985911714315939994516079614039237687073996648091844454329810765585149572189625198755387578559802774801878787233029715829827104833316346976605723651443967233451306514888311042116645926847216403691750786580081945081263483682638350250754160606868212594163619452485699655195911196106703711644400520137186511921563664944491607435557094608726416762172737744989074670813410470380371651965526812212081500266581710840901898978482070652307411064822418991269453270043362121947338591765895938666528522052165104615864780465734183987785221852246324652912071722506771558033692567121269744425747624846321525746868024983550079118645034924594240412520787692540170415420939740772145960390921044238004254830846310702150923781958643181835466925300516694044595495452883883725326494946083966538668694147695929387046959153505760838380121024156209084338251175071962293427357594402201688148647861693036493717384986903080361516355398999817437435157515661563394679523503384735053957623693889272683516047058740942754101922329507437634974093570309569269853657612351627036278421000482543428230147108873807892043788515114572811690946336208897497816152082249035937206933264359752873967965898903502564855016816718974529407732778072381901583893135667925769374593888090260269811174460930114138577168173414308178773757566353391867879384818399751468864935922356536430520045467657688249334852770665670245290585323091190226691141574760585371390499939975986812349059747713072616752170675176702171697023258203688599095411727157258030938548142831465685913000811663931678087992989499283781838232537511599461276271683078908735510246987963327473121004597285854674558904337273515614055445934686886257314503837723258074515602053074027810733934597194580966521997555713201152281049862902287290316130528267736149035737449773707934656536204901552140938930557271053864221282128006159947664292466309499049191126701733859678843683522411789622832822337708171208470073214927944536452328238639301693528860296739630714477612492438545860937003509744467819302343249590279477649621147287263025606238190269382059624426412179998082167360927873217983520050518572273165166287441957307695349292831456739030799020693395080389887193628712127713485032564891084711205831613022175388467112404001915883926925536914187581186681199679098485767624358371413998686269631015333293437732455093820516135051998417671431609634356085676810107256271625619376506720778920099158302001364547609872511035088635036272078145591085437674128318537708081314590612662019636104256941278868752500444805578377404230131379024990637501898367550628007225143060703306658399078869013444160283445690832210606987034649743565406804162457707950932883264084427908423360780249773814041641047732616553429115600037155654574379843118321134191200412413112904409838092256201786858783097204214452646725471360690513338388786612616204260598776098072577765942629426685274790925934267747897689427727295091859327167241795684831821539197017475427959541978418332417644235748792994222242437803848232076611755360907721714967989119788902082535718259761480734015253986906991104628679098542069783949796647751584866617892351850397476396458228725641033380632584255538022063117846969667125268160528712888452649129117261913616903841781033106763436906363952516284008072095559282317795269176653489986464438498619137925202117815776425597345632149664227322255242382543938820972019106027037122717975535584794579027292108115984361506294982158291729466127745800602380948167827206104624557932021426633347752252183672668493420455763754004850232399432486740512033464102140572812615998619039800439097404251211913194538911499874802551586053344066241176867325138947644665163870043491962896223144908116381969339200611289811628782383990025112631071232853574642485768315229371736012243452611188822081645231846898804490828607276769770923456969581613595840323879594846581394151758574491654257605761727515930333032123625992554617803224203892894346162222369301560803343761125118239203952446082819056083053814136284769525829560920104262319267447709624367205616448997126533932003441497063651008920558261141245428622799104623477792547223833675845294248691386197383551275788905571803793442284056479267818220545134584634586884623035679639672278919687437011966318011080085610294581788629038219628511270109456907432480401453154673763791010039046108183468541806082846454885467050529165844419469009247128787997882048422440559690660618894275822728419530345831450741043965454698813090775794925168306637481434305887700741651152218161911832916101449485285541358746193700237238522260290022325591802785789760653373749171072347450098353801377381147510399207433817960572246733479605439978610291323724406544713208968905179808711369699649421281384845773099716962933874448019056496355879778931547855998814001604205943480423110699355848378761055721459462200225594711299090449799579429295659382133599528526922342702761060414262026069235476311687590536711456546215675283435622200097603541453727042408540569304346144110844384823448981313937438726872416388523075634505017731768950250760066519881391162699638934952832738240750235867326853404617338684923266106096516380142840103033453484972897209358630544514379003268791494518249102222125376166926719231123996522178551557485520375563395948435362588968287628442223191571786805060265418164055770034888344625273753580552290399486163436604328988202711943430343373185800008246767869579831793193477885477593825185567886550422436296537681954038362803763048835971856151686062411692749171557080910515948557777612492198327192811830248915212669129641922849409674958978033859615357960003748035159704037337290923790305162253634266003967495909702415460909046215775622591398374260800246489312926185669285703604684235277927009138784988094309011568355477446724263317913142203408079186325885176418257084602952978880100900989922229712848989420504086940000774518451460591828860931803666290000808122869917648190818557313455067392937209017355632804829984417971255507567328109705492343048628144189364029107282537640413485417507409147549808113461384927877166511801813872068940867946591957796516881300810378770795553877221613365101878980153649799141413956755447568834925680628560056055070199027244164137429989777415973244046516771710021927899384513736546284643494602489206664818961618824734769424108781895969364262094371946413270045822706086044107766438553752905349571253700171328057218059470357992758794181271046536353389716322399467941391907006249346949079001231253019980768518130228868859249925381584587699322899709274834880763187690371292032303523923652612013556398754159437015635569785872402972246550667187000116626645379618813610536473051303520236539027334532990984678517622296377013716046305390312369792838947580064567371408394517954313575628884301987454958593161490661264689100111904082277639396242298141909558965464397269648758637965687015956138788285424868505039364956630446724600195978057737012274284659784221055451453723121949501818334410915416835513767368159074669058244208186372485134567677599584824731596327209832178753694787114210206290197129326348422709118151841444718690368580870439472676881738176697451313425102853479355182725990607663039813915707467440557656393531810816595291716052846636778158142506310442167850373533042642598698612152342626799577559074383921333470673218202264487770827302046167604606009596965190863850698766765143006451816286135134023935653070848757410080881853979040277622945041319640954997096171810906577889001551537627215250336278108092441973546859193543899439041421462940666571080147400683342415396477086972658510376655272107134862778423200864982759937253607000577944571518510559788007315514592512751696720256479855260996307396458437685396871128589589485045245457724560351281397287520703630945440338150276623375233458233485130399684903936095078369440104328675884969164439528693481095516827381831517573852513405135771827246681870800500310572649046051685019944033007063425490377712284089619409765306836330905422654131715162335279054813098986368323731211884311430498643254269243567074138906710063719118822395892189240347437005092935806725196451329759952923190719308005641661198915495492058591152386407640228815803563761026873121030768192741697832863765194091065299846400232680943291102419317720123055461453971910120758119867337401842364197867606763604327738633236242047236165938660837254980232478444607168968502429766016906202457842381004430722159328146625928299855535276451308250538691171822889108016755654783219707652546327993785699776321146135781266441083511906647204663190932873472994707171160701936519840799929921943946208796277994898162187717190121476496443815661855793524021855099480807773747177918250054683913362732846300385011571260860488092374552264652049658187189953490833542985174866347623221526689157830863477474251697080522120592676814954516670558234143040284120266163547001743997632055299884017533187641227352326563765425193703564263555284234471518932779354192310723618761635854725698046184040872077641383118377437414208816515597980913989819482531092596607214758443003543679836127872575679869197408491052925907354804324483171355089978175019766596242058211646237500993432458616695318439580528845119629757289813636944414458834251152890149018279388844282021547103432381558019050450432820329167055090259731121127493197088329495978483785242147679088898827496912407151848005350696113151203701652827304094172656873887027000386658047587407793981561741119852746372151332871466565006846866218435311838670007933900394967076968320190050083807363575839517067909094448847376304897784247155812231311417578414442535336221526518687714282892360301442128655331721168969417729083571804749431691966225009916724411135968451285924418743275917255105978337606318035620822325939332864462295416388903058980826931225636556054312356400070648619794128484908321091252607965340592721162177543976404191410807907381457374011903077020614114129926918902322651033353030497540426246720030177771626125936458679256718107446058507663732174853055728983076847859730362079633131710499638051812929378610513467978622991701370208144855338091285716355613153768755659802634886506960374815732835456416011900661286603079011405528755047637253167254288027382611163301810151052270309452683446700957252615675510582815482418444194285068407199384374267966070618838198437671872113313740884415522155488211238893559355327634372002137689348567474051471672230208681067195319830057239551705261770707860724859479769335657618582339083212111892244619244121968915817678007298389851671960324035682537154888747786709074127392001874801622207272764621834961905609369862358857855990053453271007965084509875260735506164050335713568105500239020644028473966384814837656545038868950930456496011044971613086467642082800029440505939330129978958286546859379036563939529658554861531032899448921949664288231888630844487496053366911847938775161054852527175472907846867411920660093238593479078352954540262877143062233578194227324941023314182870353559120742363748978913812771548343547510967785301715113270601790229775850571878217831937244113741685952171806096437523345327849560170065727803163788167249668274850528915919391019440219498001350553469053498512764663836645425552951673379851623024249845538773133926113015222097043296702022673505557263083055077831122922297648633311394028449111471353833346168857586502266303438921803836910636971947446133126633116211317392028194531382581554619267507035308257731524411778975616359247004764593766115708500221849412485472052638675705924708477285375787250463115395876178451624816500037954342225114838259012906107422329167045752304210924195737529987849993505187538512291924221120100290727102340232972218307115573693076596390261911158009816477550419248026080670848866189791833062754802669411347777199107380359157615197448006015222156159503083991816319973056383327363681694936134988669651021164047330250664854383789104884645540339657724786484648327449698386372172278984498718238913516528413094230873025282980938918188103692827643724066109238537251759232879727910729306951849266988887985840767655062885872530141806314647528228855406904068513684015739870303571595538133743869068533702371291057593636081197239409009355984851965480771656256301398251394305049027321613687325255266059376733146151583115339682466188622743176970272215747274763710087841858771370302890968074887041840313103713096402673594435955453679743303221529876972278469811184133412153290057132071367996711929666108216971896027102689474567474895700577376422530701034975532149964073429590531462221398855831650966082785385908520836976399492599997884757656485612222641174385217993217048592143751512316401733681730723242027834582646282188628814866817732065370508132294410737443194068142257474023834705961780239161603162648982031390643315396527681100893665643932338230074808441021904783750633925784032963410973095550698483782116803960768019760313229368166824196896270474890936171957366575416693973109860292904616348949204878983909833118385813814058501748465863484801060890255522829461738461895870578799934317696400750670332943145394509941233030232139868962931142643660769212644008837250985258555272226221008934819444789539689689149936231670761224441339399888939066637504503722358727325207179050123262690501574764343937252295170673870917474324560242538934411920519378122540557950168293066211725036945531627354188541843619056991043232919170824988130287360800304647046006483253465795149863076830778504191277011691806815839861733017892608446627441705943437325866229193913615905234741965219819089450109731001397979274840377038935683859775182001681741941772049133936394231902946667025363504497385368443171960066097075107081282916310577191605613511232936592378435321995355236794205955903125434249420225076759584647106772756017564165823118293968254062584787653737715137136918121678221294639356051949653271692237946238582942707953578330270288516044058279774150976739714064445252125024050361124542792374827509497729175968392562095493522353335036043591309603289997127664545090812889952406650743601146805890172936312351658849360141943658053079032413636037385651186730261528061693869632553744796170743563012890723898070412598948587840592347230321338617549022716614571047331242127056288818615239306063840052874105027974618578000691253940124534276564396936678446427579226508760702555549096613126474692258581402905816975727854670934365320464919275666009857551887656083426887237876963122647482884120476755837720828938798614904452284768269466924868823768770028334534779171458548043799847594451119763663745028693018339457126027795848451251712488927399217076469878228942076851662083827890998027383875021528608996529817207120016606368713099758992415348880560017319104953518201172154060398838539330038753948034604345899648649066190751771702560751313343091058294362485544024189315410155122114201540340369459216199131407945115286164130857810066984797641211454664633527162846760217029506641671354318697825722389432941779613206509391027320109406002876151366971322637919608076787148130838100057078471348664065229560186712022687996582263280216166255804721354341922880711419756935483071421391847835534688618450172938014062848826321663178085098062591173520626651071728243195954114482742127702702581511139220839310717729072479309513488007816076139940501176478174765527753892458669216637048301708705503203857196960519942505999294590613635812491815596032787025281187028209832460485044754318475095164813886269458393593088820562377878847044296733377572195946251127522675584469068971013123336800226471508511039118133814419044943708719872790639521966068877503003742926658413539757264250980506769399356417835556954598589288387441282230188259227266161941249396750148793525215731291756408289507379119534947883010361181426874360454528847617731351046971847010441139490611529498892480399750607616558335335995534632437360686627915277048703072224564792809768810150113684914860279047683293491829704890046935316996001675733570967448174968371803443211729854449371061207297530266221665927261438531648974248998940108294579782450531220349335052165290230962942051329851541097756641764764140041871759213910756754394124562915885697246525669923067918935717628777213762588715670292070981115533342908563904594629028200217747044980310215395355564445304528641809030080351841930371763499041809498116324790218325066183450195943086369640589985618231729245122648380897711894333979808905155798674278497470328218069490669669525664625212969349415833461523637514191408437500378901711970852739367038074861797043225425291011307744389564459356903099631599745498508490015405805296558803066354286188038023868079379486539589062568863028510732629398121745981329426864594187952124967154364177918354171602679263363876403504303031676177665178662879674365162605219757490291243827462694857896250522186905235423789197349844857960860334764506766155119271900920721631525309476587331875374390195271426871119064791564541593348187901799427808733384779552597881250074527211795454934602536174724059647117754120950934922116509316064775829661991379721248142815904271606497701400603665834761284555377066787183663726222301418008115313259981878573801684064268694345347476699430534220021983510390728830437796403255250200939627785728710134680951022526898610984731148932641171535784977977764255026800418383854316654806394180464097651126517940167206659237201433946393856422560922061288966879078022000305304064904499638312064898778549432355052307519933428816999998243858000139978807362165668766203543964503484695021362044836735320364468782532930910434588447819234610001733350428509848270930308534466129141685952508990059959580222064991334719564630432060184998647471745018441391647386108919607352281549501401601349224804857320191677528365980765745071183403990243406486804808842523927498973647971670410206744999521897642964083960240452023147099660955542933767180841328810173443823776950215495957803395779293630874389017873575022896674481534126873239096143765285898089293326867384071370773535053375342617237820646627085676828674257233246116973587852514100644683769157304228647915273516000870338393653227396064775838710906013508878611708048931455662648239550216088160514008392468627471427779058130711504285420865859467164632349743824590215424735011523647560321184437513745802059492818704550610494683040342249523985198537796537354061486740522389260050641000166517057563495670908090662014464453092062207642533592966143279188136715915201645990324851039677975933952522736758456515400396711089746740473485183130418674665812002573289808490922376317253237349697942324387499790983106869423880374880339862781734137431033518505591002923365620260217249965593747824982179734406071618290441976096333434921067406954059388058581293948547356612323311462768541256201461693199821892044997849637723783254578553955434795634672549437597393116611795997402144576581588230284197316478239316663537892020150267624692808786632881403607472067434510523996467585110493646326288170240000087250959604540581005874848285569944416623258707728948111662415601645399823760433337419263406401830934043982707430444384222301582355705141258132010775095039557054536715394843764852817624351416799614880126362277824614076602891775578353370208830589733418151857351418212958605985035344454149891090684955212070796572051250466872238520398293110991563506321448739808791727344733196640008883993043951978854085443938703053747319818534547641468725611107461659947267326738420630589889152081355391796575166578265419231590749657293814909306637507958588990214552645412615477714911368255042929610530007782934626137703246326385638788384214025764058332804792343991198630167596104675694249448589059627847296276513302444978296143708443886149470885520673353259537063975541645493427909233850716887062305266367712100697110073080160965132092564061229917063829249278000325668891356434557440019553146517860442613769761447044679810242650138144707597036785131344736518063502345278040385316986333793629843103748986549556622580616318761172122532644435749614193252648601365325688883034704439664469820161354484452537746842711417685537394742430675703204858569209460104734260817884276412462893450258725886598489377459623874265606833929007047946499362087985966610786446850968256833179022210427141294903341557816674352557074772568655162832460679120786649878794631634039627908558885720480680648048316869837813673807119267443909933118180479536921385528569621143265664184469729087893077325004401635047304419998712966633800549736682243628886982219851914279063026878836105209710574254112055937957770663893268972082166674583399591335193305598685338130398318033941944132778658227463103080909577317457305121304232593667258620156816008949709018408519488803611291052350562315709957676179598060032755408261102861099293231673974634640774474112528919924615479735746337697227604726365978661944513751639101293727906763131265549061083611252373107091654789112473304797564794853582884524265066269251057817965081389217988525110819834421210432744195458698404023107444960529180923794994256217301827213884936860031957883153326342727555196589028869109456989457639281056294502792615362451976763501917912415668166411311156529379302928780204994667352828976102185790268354208888168315908807356766479216291700876662232837249857134660047122163538504073074119743671752880611246889979813538556108555854491795542005600308203059601512714968253593776746632059088604571679217761641360322212509913235053067250641297451328738383534366894204815690071097465947080263731839928653433548150423223331646829079696994425883859958313725771151933034269411307469174002749642187448602865453275486034489382136224554136184040630512763955106976572106013658647847074806276026137092505986201013744332100439038737663760798021796413689632195211202814190393650318628276580126934478314384090839913331852937623769854275138940279837499474309299213085729107938599450031199444885873250630354399950120212822083679850526231413033869356890629763801091323660205201895814486108950334060623694175495493867402437105358213944504221323703932462384814700983071669276248191609279818332497294323855737631198513089063546915012671978307682196154272464904593692263211584492582678113513640153449351115148396398847241032980501169230318201344824472348282733215864344906301454508766023656492498061301648023929789580294519472879143946295918662503743451058033472296159414714226668749123954747769092566041508786238086794030114255313878654083732395898744032806184348966874151480998066177996219095792343949277409142293385615227307384584489447932890218268456798362977363880291705043322463450431355902306515138468707358102408785663448156109854027629368743319511621026625597151693198970158274795264751697995814519489536553095599360465857745409409774495019322646131279848635625424809882571923967798965713252109639949531888199686676173345073454384161598711292655843950377403150906355486069871211941223779440198854288985549450867276059775807567670765685420053872124084876336125391553255403972610983408319739129503383362808432659633082994766715338930169989797959326965097791840668513817555654650238102465194243364231035486579200823299799525627552240425095757755092114265914322969828518465506299175450200144800716467961886462555123172390162298846790031528419564257646419662164935022693726059343906458325761672872011122232413078120612509104029632981483208200245991864741399749757899432719335657340221633141694049687366285988485655581319462489116964979401691543489702870213277491430471256611388757237012032757830781636384943526506496109761708906358868087809009591105362562101579653436258071090733957471551848630155849174063412748504138356520693004706772984916012317349634682113203407823044216885975822855096149082570292441203494260343842781930830751265541823500595023955942081711515631904215882032260262527983315047607297265410032513169693568127331179058242975456069019082877588130793205842285605065377554310042453172810833658158615994923588953451118567826806303241305118166697826898366849876763765095224743720064571856608851615798872129694483674161151448107464746801259754693123168333814577490965294837824888146733529825970312166727204656657293644717786480209589995429593187461143804902859312756134367966707273518672438081041399614714905419995344315325253621094924916467134252379205067514093299928532105410568643966775428971437451962712284143316223317465224477757707970801675849802781722180213652910042757605508683375663974246933779375467904856998824740250966069087062570313344069427023727516608071552486408089576562612743727837916005186844453119280723540127081720871630744286892554658877422827805941925032962788011624578516592345192149345561569627963998707170186029006613439132541827524019437063810778213973950360463273796735154899125299813066709459466117705164083137555546046715625997038748476819186611863229923532991825249789793070123646258139190783021051279458021009177820992334789109316378033819802089974992427259205597372920112054724904281020761489844732556558501437747806787909157787333692595083430963981226438272336373441688195034968121605007847837981768105340084148979794776563961517276297960227825184583255053107121691457894508298841677978175157261666065888429818749612887733837002109910497084973649432635755966648894580524832823333198219893300733974710762133633487196253358031103759824679541178812780725249518557685404730803560406600417720186242193045613909186201719329945806245127728580787916911750506835479564833649810556218813475236400551281557508355945970602556187879271908643221058667178950515823688771565835075665733842482536780347068362085370661095792407807300273712282526516843857680254871487534200324497415893773701741075230305202252429182502711637486275411199437201997309258772685338821778679025176048408336859236081286428853757382666794263002016666571300015777610349881567889056098841000611541724523047417615683959720086827065747949911806714698681374835700244201800116047758183526814390212137773698944949416914667452693388553218383730605676109676506550198675878110763144610641112999696161851468657498905486960369860813970481538251832399113935808908777078098100095901986479948519262705430826964476444448302425448366054181495208479676077986772750856768292125466133233568104347704065688090026645526455712790229729509104266386699062829510480356268940519447241744400371574310269154847211723258239782032776805912443185010998874430108996961961140697220326883808731101580548841086156984637616253293129292829668004452456685211284830188244014897776030153607415828467175672617970350870676826021480737741361353799286676766786610610383882600148513861554727144564905727528994137456095398013309338193150126051525717677649355912416451985080418630610334763015398025870663549265025622307580546133234480587988334512983406253557150536672843614072554849689035520681876731417411799128825361106082604818683565895013080982195092058598627371484857338882024508502744713266686194515325486380646003376371631237767403855110468540848254712749284726431259362737713942163605819284331279473735554912535974595297682721296778336209995985334884618291459082274695264639430217148870512882294322223089487212058406316148176834474054848439715387535315390304561037506780216206384318456616847045499965973571638136276422708360838623568058346161150396340997936857171099178067955413666917289198699704404205324811990246504780685508966615459903020971548187013696341071115514580283015934116400567282103441926013108972438526687924612719621502707192382862896992185676096437226143344961551970408933014626819671737795542249586816656154843164738005411757526858382039380471571092429566190615659463595589008484247224707040904169253332351784869651755030323694179840384793392031339074642041844923135518429508202321266583356642981283427364110425716931541501705951327725968954693194054808881135245987778424204927121116382798646692039051911084814637318274268397932394255802218406876049269504526295672982276172122019461520107841195117859808514046276193632935242906752203686621487182561982726798695610691791652636371208412958280597844707619040830580459454065728641453080843133474247593221213883162887704915714928396017186955444013604461112161901462082457880070459022387020071314580285897403202878746834834273091694106464886374562124264368052668990812582135434133153091803391137951159135022691434203227116303697421786245804619296932156041055755290640713104314927536305487478997021365002717389921701727893583070302481539437440837880277865824589804121016320686258677573439265984922424060977196288287151240663545217745817366620608662170048974968444980802776474048720591224458046249088961599933332835804191429788740442413151158219095910796748668712768572841935543673401225849917949829076362890038126126677039427999358551870358309991978569438241018582988102741086472946409121548371114734869763319053182516019151167953313407018281882507471550083092125550653542935489409131242001373175697470016905438449771891197049100140059518319215474865061205152983757291060736774262565043684983600045927047971057676978088018655841447471200071389598167676361823807478169483801594390281038673999472915657321946812467875106963794882974991412677947855965804968994439741596997428105925665478383282691740099054732195969241017292955882450872864954432114641677029407087607709536210369201275159143371409321708801748791186797452361018958220738483375417745961128844441921302818931813169223376035809505916089368724853139913328373416369819011233638270280281987822438867780219298623454372835725899810175657931751915761588721856573592886149933286271025225936172733489953743852956892280155684861833521651469410865113608950552904054190482856306153331001422734494645325469120395975113328629139287283531307993854149978217361215425764626609200658630280680937428643334612902006999193438488577127435740146630980594197070712581866816284668564103350231155586893202809086529534498805705747032829485964615460757168317462101476104787729353607450450798575549519597639331251327888001705478058936840454172823547259484413060922766851917550641836257661546085191104489362617715136941483079152691153856020930735877181862882000824550575890620339390815526239438938471302732916622852510545342755203806009677685122483622578912555108089467032335874099669467250380171299319415052954144851974514273469638888263679667887647313338713711353892221723862654147961627704082788994827805208300385119905816677660330000850310133053998589495176019980064684908468756788878101741057306603292075263910791885449348836016268279087170864447801095811010088786507380449355410368870554473212530791931330058969962761962962100165698660502183091584321329843740636836604065043549767953923111694955101050742818217622166894751443961164515187743979858249860318587657767825660835632754343834461829886552999739783931425027077620201781970407165426634163995143983556734675928987649240844623878250678679275015192542140701878371330608673044635959985805392924393044709969771954781919601308313585674817448926337229021182947538757629088313849400618126260511583476430810937703910483718488187007156624382158679098544145533928886372446044922961358221918617222585258562432486463974327814983693151733836873903376555840376046850474021613739860708562273908775524279830063208627322782457381421515359569782518374912897907163129863473803826753852219109075651363014062572451087946301612616109751821586069706653898170737270708017255122910977451036259118596912796615618299175527402620436348297700930449561659240158855809242796132052418305781558699605176886234563256332369715801358865959418695106440550217302121958873572247835908782324999687788474588049602756546926940386460789385420505651908234004492788691038022949545941399706201117855529060417736013848895238033620143334465297323135262601795793441740268763958428466544765082104521740330543108939566807575745751883232618387560316606337472633707514180862927319182749257001468659296357509087589298121532929901631025802320097423939665093368770860494604521380735099418033403841646556083703211572634118369249346181610349679164389227533972312532882058084033415356761212819138566086312269724272476584230036379487470080595146618541448277917294987270851714441980992576984783092246314932922723809595400269137311528085250520577113413076426698552521116837910728532156358537407731731530086706855599814954605916900655599992910520286891084043369112768680774406253353666207456520135843688154002882774834002889785272890395208940180473302040832038395360917843336588650654244144910394829564966444994198463490378133152481377293374321596677194237109144964792425638521008187333034743445168189711030481478361528147570159417535947153342887670256602258772484125366488446343104081148279932981347996288453526046206409751382836523450176991938520324842162684762141323111072170518252851511598600514621081300808866919485988908898215695075890828607709901241192767472061416978368449913835699570499978710470315513596902454934858942211348415211275156414104579760938970636684393252795315749752081694141618671706520212155882370364193972892344236305951868168398865489351743059072491229979635761342599806734040504886218344729389718154885185769922657586156195925690905334708857707257955407188238903588616930191740653761764903109900266861014966148459802016156591974991689588973536862202197301418877527067824390980477245043195098976315315915711449608727790817131903463760649679241163214008486718554797532367288505779635873202897270234869704083012769678434248196665016564564282932017497806082141041388269395973146252329745667481968514649218615071182388628202734666824821091860560627962362477295645771572054686171338216680471141963002745655229588358386813078936909583526289925833401696642446608786031169758971090140495382877272152490870052852095793102950072367529273870481857091858606310287282527900997775048509663627577343268873906956636429283659087682836558384269771039956728265172370777911282437934501287772079767024957612859614556527559729448017981574120714102780466048545437078817700369904497918273735997275875218697723536757338243159675450217536767021323170361396925019124057761283702015168589808656612824255141117941422974382708493665619260908628283928813471506587042272626222372633006855740466907491073642988908360703358400049360183091678172552255092211983991329309940079211979442592588790342205303274404777440145778654304309385183707238028091809240185149049436359110388783492239342615167268469914344608383109074358379661129961002970184790130574699720817001996764855571223179115531470852520281793293019187825436305740123494186702878009084093145037937122093431048994967406074173598256758693414537087845021730069716663248604334287541764209858147005232360476404711429288161284908322315197526964375806473674056502963420089686500982048057772060850394855287428750787077126281564726008525255886309101529149621263875698380177521446850904733523507966141777753081853365031963491204443684480809519613686826918985820429065175795975103682164001990170066459138509658471452823192012531844662385686769646858287280006555588697535202804373904115641817646254778831235741073501810889908125476085024013942777971190209693727710298024877559569716500885337883794623689021187170125615346152402366313656551231452947489163754503930625628163154294216641874282685852844356604303643378074444657214302158301167068338666607795889272974648447883018522359501873548581732898885237694876059784569305464701105834167143113218896831750701693002961686580814582408767798197280345956200903827988747315248894884583719647144712325506202179079353118588526986524779266126854504943445366159345840120596216209008978292832849036586475875525947438318543685617366977597126843709079307408257479110688532846236483282278623493106399720959199725177894241282243742116502697696348111835649217931501108520646671552846587226315520314546426941290366129430636483980403888467472923835276262673236130579660621644292343345511961611566928637560743447054284913127692832245489175619255831628363310885386038074333137683130396091394873801329321488598248919153974378194681179857295932198184099093315529140195282175817447483582747465646880033522961294128945309352460240660585072315157100202747661035336342101409331590956529637226001683393954618242124285187803610619534259018717215782508375145865825494763603946357988555777868163262809207386619490652158017224435616233870475537190548482270196302215812543245686163590483631932133601910898600013586056092786548137383244834701455083498741721922008850630213715076477817314930795218625595160142263862816483439324143261057174763399388730760954330976177262825395808358880665341117928813895264622372036375339193137187310640054167095217499588000557447380365919189421601657961013322660707690337207173464738107199642847480795368654931673668791752440117731453751916158410402363714342602371276431582762679813258492226905603830588437784508177046898991069045603812688767026301949369642624129872330413074951574234147301948027577235603391450244940944021609201564244285408018760550969897789434791807486606930433247452956038464681975749318231077795098451704592398397945835655898839201260504903034366949912917466357981411217750722797507521706125861096360786897797556558158724698892967029419595963062991770798076188065322648257523327121285706258944046922885610163749709303743400314280284782666915810995201429218774278952620490468658437346093350969226845828165198685330367802472709230698479734916219268358680227080363890324942813334988237579835949937561436432685122468089302603032734716914509332110492392617333539314268208552189038267462272446911051668508650699647694354809641920212782717380224038705673822679106535963842820349325233073990757473746519036882174664148611279970825133683805476014537119098709996742349095815250011231381034662949367767742964272683288746253930086524590591782693117463753158958819605857326950203773673236857598589275171091521694500290441460472953417374646024861307411450844213531965539148477152625837371205174756393676586632362842215206319142676454397271029564072992423469172399607654087143239947686225670536692554445340316619937445568410380708211198689316888080666893441478598058398220329700688589565345100952144958357028541631100559241375702973435660069035822850020331224253505446717577257110329162832401861665686120121720209902428144330772209628752226920214376801537694469072054914147075686643911213490776883195016388046363076015976746949019570105386169121600808608361806301826041035655611716065825431356971401131594399388207686635514103405855301197541595442299072822716263028294078109824755367716327332313344709464173812546712335149039275117264317421335902459037031575715771569005494173067635342124775926433285393867801845898748010845147954195712997607766123538749341535053678512324623422176267065893001219061949032222622710447668157913098563684408905420463226870833613823180560351337372101431950853803273774187758735863855447326496713330848189746367935441031842584397318985463602922032046543813365815168560399045947159671911874000817586486374367169175263169695089852209214997837150285809767966579725264600294427071270058049306295120011701160807362098055021758714598025801560772973426683106827308957388451721619851224401575934473781153326262174588292228789788580432846080073587201748144839300848722574253182619952698130090799944819538498666767139833665932613306399337071822193988760342180210367051757479088597461463990848882847005237972816961884504620398114470544308051963071961822386200840680361374895571661403756720509161194469416826721646328274412654756839533968379770031140963573344039837268498488770537202773978850267211405380963492567373160902731216870856858333485703082051265952248559568562716729620360154406695813263270434965344753167864539265019100716276170043608089771005083850353403532916283626530522395745311960045638242058979132647097484995263122623941693025378334171807220008982458784691707259192228736154627337755657089741172473852719821412336136970324941041479962136761489717521728759020578280087910594244727181084551538601546353474866488332585066870233356419875963869328375751737621800629860437513687185338331732956032532201896312081139562063180833647330898315800947584837428406717450435012010611494806755052496546194276118987546355736734493427229945596211125592898663938379075675848725987984308831258643636324751375880681594523991951421158055916720143957880004496938131576617390849337323882360435264687166115025100528244708079489631161576482036062445534112299117489771376949750541402126552180009489013605945648435075682461208811312101453865685835253144326640286255083813499961105366251372410681634077260488687840176448577659895987328642536230920319144687060758482200441962853538703762830036896306859017177071743174162159670057730264867812888861524720094563222904538912230807541659479412719049400818294473403021395894551986325619617260416043374563858717980510100579829097297621408369186472173909738876953936109351277842339143792203768959390005592626082551910204769064581678206243795456555214515059298241627237046717581821917026027659507440542251906479534875327910330972215520079886716096331051833782438491838677443146500969013614658295782506566730853401295688182292473731757622316273261009187286478851040996097227745374020429626917848809385970312634603723495949522165169325695719115153624792717216504883116052915605714411523433659423739532236678407089614106113953133217848630882255185913843497512041752996572069012773534314951741000974764346561147602521192910298361393827053281560142700302782521898200424510349647342387857557443354766342051592759216363346395432288429761391050335237507397079442955044184433821205758282442665004344533902799835534033893243367991629691076172487165179382998342363320176577504281071605926818627894250800845997985868474480635262581401709007811273165198357206028489622221162144275363743347113188634128251908371032144846023297926386158417837554444630073726336365166340164416405874158160785569426603412585052643984109624938459515707930788201368359635279524607591037980759198586870084459814841837016256463563064604207560089127723609431338992913416302735299833783770304893529590207909901201651650106356457522831418237456528694829296548798881105701226961030536659473932033886821165469207131858791557436750032852416547872568458630722832102576312810189188798432806179019835664159205675606054062674846530935786377832269575165050657683952171054191425981161214728307488986503048048494277216041017764863756754656358081817943418278602441900959910161196615080213041795658517603603047377094217735603758822936178759478194712880420342198697003260057903411472440800559384543342795124868236144127706685083075026535653061714473418198952914193069893919492257946292412421799263511096358529741331782631352211072228548270745453007958705060426554992843151229211896938662557998592114889559286878258369542547486183533133601273831005350839446088966769875273969825801208675024323296197176952857641675131896528429733740192147321976157639348602460932344182814217445046021966373713202401509303553611971637738267885369291157908318305479793964137106052219411883706885529110477248772270106891593821100723082613937805883861370029724943226661251971026912074472238542891910886293437207877875934556658266322059461162440461038935423669611634695947194305240495208248313312004193432606712272307601155023194950293825776210851526359057441419864514679169001408317784593839373590938951690143727128649524069563592534247241855388793805567007161697401210454832085573887277168687150642848592504384633152165040245380789044826291489709341716214264594835521257914717599844135804859359801337079653836311255810838974236925323125225546286749001453203124444988641986762406455136196944345665337284099680316361028143311391475111283458834826341070742596538777061750406145230051980789430652413244015097111511687485621523149438572573724523521949631064310350224283371156492110329318850519064595111521292705646181925752218086102912627072839651080366848812265881654528553912980611627576434776737645573797379855702981561958416479217069210941609182252034595237786762942281448078362133970011791029271586600881837854416251930997604238425571796390783449185388383129266408390245806597415181921325229693679265559306342145071836404800993779595991016804344692843750563563281731966686338425909179822464430880806166414935545212758528621583458067453176308833210118303504420354850075950646846246985753050517572363033244846648001062925293583527087850763030929860590995175819793151999188188512231921404062139574232800414989811987340106496585892393557087611420239842662384571336609143121450946141632734900447589844564410387118168582474704882827618161635032941697330333171196755444140299428696350573333505325186259786410997447490637598536644685682468665656306415353370029591873906583875391409708388858199996746352800567603328467041716429481000917732322410264723263360955990860131959866522270030901916779174067653081551545279000293677087993251257307488872291349022166694636600997910502503846166716415051453662987647840630037737266633375106854363461980013441547189822754621556194101800784109210147924175630260822907426842102860567271910774419009250897691277438810170700263099660370032185277658484927186929582047363132927418727881455701613741440878578045287334544092934109717451121758210771276672854610090814149159614875662088464611378917826601188275854539187811626256688140667622392349131117774303840541048201800250205101601290992622575916355035508311653708089321266702350105632044867346864651154509784340417038195569338479730429279154280852849585298221042792734877082968256208683837578723629486066931481063155827755381958783777665898039261502733124262966759921214943073260121879237605791079582516963344001373338435198745959251145114810076724112085304432114762959331392055375646745440188823319729969075708585470646712049653783372103160049118216716679610355593101670978654077468454768936572700980075967587362474584096476530371594779118769706440283350520841529710977509283357063458633292290681468953252568244587227087924467399225347983557104096318547319064172875958185485253647450794700513429365329177803722334075839489030649445358411289396220821867015490942028915130606550977751245267985786769614238247982143659635667616410054067378226670205681560448492859273369950940865100796766781509110868727305067648932367565838537861178940415366583812351385205746403588985572336553821574310621036663670815560341587699957302691332539743912082553701775662304113895195338931490244289499526940102659641053562505078964807176211712233906943801889405295687574636560537705456866839654037232386154293085158042859148531572084279865979276091854404491372167429137114833932021896295142015856318146723509618930007437613116075311591346492681139220472022493402293996390531750731605564751233409362676534071594365962904983305777227028708078292673213424652981580026865408755365228199157719378186405521239569189023928633202208344854252877408923220999773065042406160739796424529572326301320536600316370352837900558134607822548912303801788514642320017524434945595254312576749219559699591635610754541107290867583576615832004344218327694441644230743020500593355206317267050925177343965876670904966313773734317389473525298550471209886770085217097896091722036039672440312347460137818842872501736929335717645361130064525101942812236238306855071330783673018771303857301426286502414465884551646510480978527215357852411847483244778097994483384485021634663094860878154405579385438308127678612760653303337670967429350905659877925012373080016695866022494089883556779740080921390122949056586773175416457754449022042687245237703889087996023894874829712833120347345826442339379199792707792067263323426687893403569629406045508269898199836809948451619099606930848176921564211092859050972910259047249777007029603613920915183358956976878288162873733252024596828847609135067002519570183532789310885350399042773075122634594076442179980238843410562185612404034160413079378685759250990910826969024891277664868518194675053423087839102605304111513399584368874987379302770401311465217221172798869703254895888287571780057080999640153388989768592197659923777502519578580621696195498007280530006335848184633033206477111690747896738537699134096738493712869821998391749421154894011351310545206469476595879963588154196625785457545559433645172667332423095437422637647674481127601199987227848806623331262307148602547053738263531653905869210919032032513685709539685825750368267541429446195799275189152466105830961946691943806974886693894157374260653827575171342124838761535295698188000681229248204350587605890960592531212794083673313900228002356554272655176272086730949022497205071246552959455456248680364772541481041837253710047343876600170420157888533372985899419804702640241351185950164627865889122083457106698094527618153810169371554444076766001023698065912104274884589868552022993474210710435687507688063577336651852060725826313323323890752702729862311074035181959499709861743290600637211154163147487638021918080009082278698305262554618376936300167534939569959997129920782940435050091570351259830203569124591873052385825597928111840043660494053343264392805758138596709454291378264568822011143058502427458191496735679647921205127064682138957890621652996096549501579353020790935981275498760383859650545550763093560818064047993541854629844675911811945039858224355282852763690510620618215386169838900261886686474006479665962711230613209540285389307639334909509660114680209196339240872484980435384572828203677439404858107961863877753307471365945315820837036307501404750619256661466948584169142073247145105609485229791851419756707005229325158501600501668729325519171757301021395282627086542230671687055973417988382889494240065981736961926951313471218900605645407737295046616531068448032285209654892131058839669119064166313781850978796615856172100512106839891555086613405199706389794808346217196995722915295910254017184448202444583969152333225601817564069744833151371786145531150411439113055378095879563923594832668324674066323954683225619187179623211464293249531639804958349520290246230413401911541896051971317900327361250675773459263799646803448204722214356046896336621917188706815420345776485899926748000596127135783635607496576830888481124764389131225907540062543671309348339897211044129690680822299235905404640249099203563649425569041823570710331526565739048276221716990305348080827667021490039819850533572603229661003302009463588279071826163693728912214622759361002043059386685890309699822932347266022985213129957913073964933495853469044885112468079419180863165076942809373398661471069722268093807663287985687472583349548376629463980812355705393037912374799765636492081575054795963216316824621945792442477108920335367862366551372290796824208393089852299833835154428080341514217221916610373479978152844002276595831645904255902477220894405131316890564294487874574019825203370185611720163635280130998655405843125995253695749632430945018396487317639537106783801715225026303144663174617963192119051381473848403735627466138272315224913542738071008587826278542058721029849084763029688899305119324654366781563472241213004312257272264572616438741692052782212708827020289307619768184273001436925175324641449748571809410110545246979976987213662043797695525393876341048698095424096700448582423089612986367237748577169401473054567462694518644569892871137188080875043225636164141465975473376299495445624288592843728712668443995588116295703010460850286396756111356449597489935046633064746630487177383145267671178878945541825995277075732208918298644367230867007427749830446072981770837727740502465696721903517651950318863471381342698084835210788899418656962862112085456384544037032237511299322627680116029947968455139510687880652834167921050234493108436997886775943165206724520425056362595004862379734522852332539904965175776883751639122316204064178132313112244620280538516250302280736975373394072244228013912417452801689070726216187749968786281823214583933264386238025243854161050761889917644363299751841503979585431462261840286498539193273040459650761288408649805517497021450456798007273498877003733707774829932659003988852172018916129710706780342230366235889304971129820829289580909033960123633273340591491604893987877027727760380583824773538148232860591333608938782761483490586922189581439378514760685600712739209261075546358544450845569962682658843301382708839136910486712763652743538470957371215123014678142693405649553301706704486103089444226393383008605965429275032568236477802867627405943074702459489804267939512467506585905724672521637220077270675811528217678924872123518718440692916439228774125018898554222156137470796698230386470443359631078870065686739434395419588776318317364772099364073114737055083070376803659764432129085789118506945606265864184428690710001642421496413076025337095156453249432643754357578690296319950266873595625339944701869284536656574070330472082218714850978907048723252100808742064540607641508129195932468574827968345251956172833959105049103017811400683171136456518997055886529009393825732530385490923981003436645225082384382407272119775355309286054992668750623636403157815798989249884162410608644737641652950592631792648957770964843384732577887360125098313194363945454134357076744835123956102108400216631247616682915005079654905273838214758405458137903237038802993382635749415596460779272877541293536992128348094967493260945267805463586512123064589627768502035196285075995134299150505298921509003103809952114987768537096242665512871644651006126846013325794493194752275451275839673452968010954696784683758097694652112662285275328665789740474995836462895057204085137373857004979925459681651029599727165834198313990864683671294949667634452388942375514016680756428145505582261719107982260062685506016435197843278042330007741941921957305193280716181587837198979936734917996050586330483021196250956890216804827513052872835783717947742951574692708916058053398803802680703004032779404280637454489440312050779631308043708157946959562366814126524820405509600820466816959090884788203235835040223271703369972760898882720407886230850552830023929003085700367105810545720179736171174471341557548770658145606123549295557456403045275682918625851951496817317509465199744677674714871296123877011328057953648326777359502880648004872613056997393303119056048121007188614161888698819613819341547551866476558868371277673287893478618338197626975552574441493415003712441606223380805412103550996476472139089548334553527088134422987538817971895279097982138732979850590373458345775287530568418582297541215959742041244078281685094978802756995147074476431660079446730513259158879344193375642368786624578155780134182840243737078250702450395096395857113163202576937678393796109181814820670042056871987149188328787053421970852961880194561537747446390995396850222331115347634200954291041700987986530768350621813497761787593024912763508838010168815580602638720612044848119861453571279632673848542337203426220492378046307447014492126842047596544273911393760917912585690742951427896452489338315594699531332470432711379270108522422006970475595422441864528589021951169510499307481542298286574837769274810881918550351688567390386057827997971889213022770594064686463695638242113211620752125907215439071909230445160345871185500596064153349052927022537644823251507603832839419285777961111672516527127675655340667588244311950415160043440886918994238795164315822434901525068524861178780168978056974258350110888058546484719369021647084341310471778887988595222073769936962280333633016148155438480104182972171411923507202610911732296843642212140924947671560991408672335439021838149803440748657637563222710094466213651463257065202548573993770884108011525539050740862614671412861835748824966679718640107257972970805248148685602348442025172084066230432222373801641747452948378583333806908049769933013614785440306402641396114168501274144040974846282759110054018315329500617299877144086239757275446249360549739296469206090881419694799603501066378759604981321359227338387298897676474754245471259544678026088843075144257608300898382167557804625661573633623214249591887564025545166893975918012885291660643839950645076376955369817953986663590644831712227876126815404800139111965538164042269051864694852294606147488895956598205943115912750258582838487311867639719256340676239264224407390365780696252109254427277059392872100909956850813390357779398368605726077126733063035311850987199306901342534352271067201609554029659074394829079253645934425263173726767350365089789696395873298982649093663223760673772417862639068597145361901392198778632190537996047828892716786456094292378571383131435412854168767472158735233827592779314243786794429621232861629002537912229124222423681948489906767831052381397538102153630158969181362946228051934846951175546682612750458791733940314505347272264563866232388878924369371104236692422081907983111432464307738793951932130242072831884982069296229550251439939368392632046971860954878050322014482353999446587120012867030559981483182422329221189749773864503825973114068911355246725905261501059396222001501438835883798564358338719207629800491811638270804649277646799807442758783051251274293371750768468078493539711154650865928440310630448303495200258513034005527556832039830401208908999329423703184121039192200261619820785938059399181652784488117377280582542505211174730924414608171944891755733976222445959660885362388163052249611956739146883820385657754873536171275442953303064876125139464913275747599677503702541691346723176484141358137746510433755025559514663706776222491690085520473818457098660751379006961554150029114476353775737713773905369776877175333104895969226129464892779273660038543047450569996263975442544703513864557225974804940023988908652005343296511279119484542271467609534692440558447338455751122717110460434935373472453961721036747203541736413156348629547921614681184139210866567695669587113708452104068400951034477654591492972511089635249422246481343221942758706801914789073163442605460737123695085491285601280348830987548437106692026463739637041259488015484600468887935780521289705175805054168043876421119034829238366069567256281071872374808949580681262969738657202497024807500975462742498051475226382497218394652809197489167534938559462725376041815842211298852325388524030607781698385019783668329990309922702056287920956852389804364681996991501612947032125649703566436473283994538644176513170992199276884104481508470497574332937387016215391253952924120316795116426662046111101709133744903951352771972541493300247192177883704734206804731790646485129866888380831167786498280447120473527872019350329040272831568975190776485129658542742994658040243878467354312017685598186711123658256789670334194338802599095310071149561722614060387732541240723922426833756114691048453977157274428613405939069203444253850186206835020612862510277473490898997748801995366220601043515196460058695661128870267943448413397694147494861720267663070644787783339060621828502867912844541845271017786013106059111020358739161216372242329577181724828831271736993269844485201245369145488422812319611622567487986464549785951636650956730036800454615604173140358225728642283242515511835579476640463065465240023175703208253965993360628674904781037271310915352931476143959525125434265751308740019244423904435537579690901461710029783713306010135172173252254828364440126183797609710943744153008671085914826793300442387547914763867861311619241474070095323433299324031529241733347118913983861391919620188814132324493783833140439465086315405100916467490829094578839080882636705305512844405681362010493233317861881664586481788023083034535311078825202553245263931598978400525666106652630942017205581061829487605737715181289079227638805030686217869462812733809721802309201119331027384590147339750333845850205587459727036761274106925888933304881425481706396249439640088372818532144476837178871749937201224059204539372390359223077106728588427932547426642830877619222442055934649924122484139939089778264093526111769794805642190808215722334574925573301357663684588009905932411802626302869586269101682594334691884024093382945432820668138895655039550267319187349449064017688164127063992002900652170898005074293039638388961750546449295985363653769016821095061778108825875293096025107179744281875513903544504085952317423989952721335288967708355989359671268642631773877531163493540785834653433387858683283323365882245634959217318997891245568731497060599024856190604380799277847793448508536463878186863293962601012228684225128811679364341078665064728339986464944060615533620401835278486979209110125953822849577077139160167952001642824906403833753841202745126614817337561860193360440151320561361581531201795816790427358853511894575287712930619329074341339257048001591238200674303735738113869652079199061717288641362026283414699429846510138124614741388370277554969011241939103447835741647938719648495944184777681485867906225574567940236215145655775469013354228554732337231172370248976878058404846475423313446833305448335869290749915163148442236524316070141987560720183299623883664748649239539176574557503960852683203828080910399327865411196383678980994934928661165692350570025876150926870732440877767085742322964321409779980196683120171902104536846864808764476379321375124567991508876466103167463411653702143366813181909992448055420727536552606572861386526828898246660355420467440379851809902029407116309090943397556404398551249862125440615264300750739860956761896198114248435312316601786421052568329583510969348830948398788509292578788982485481382694434235073232492647251143527397813735414131675768767907229516187870641358246364344669310800882719023801886121449882288486429481905096567604158747790059910591723354773158884208118128874962557669307657268955112441018785752371001085757544359561600794350019308507255111667743584439165302814689331163277670509209681940573311373378988651489073712750271947189834217637466459927645253872996906246277577787198645725401760778165658406805654801900199394605665645151549363184536710692967516085371250941533497623197094042657333071212356131417438491705975947091948734522696838874300241394251761377992929237202052468676025519772947436712041364002674710354789106874480195682964705261959783258376095496876071905061523576195937301551634856849583451601023435876636396404466303007579343996213081224397161655727684206440722902868904133543819879684854874435332973061748073404629890671549798201429951116322995095858794716429285113642843389200200685720528178089848424128625797302545686771496931164677920628099965455722251299186274804694429583618236430275038424654196344607230634194254323213989629537914480439266782515298512102274440604520832145001855212802700251513025677359654922079395153481012550857142783756718621009581641478649275116197468072350455545153658172461922022545403153474321327874996071476251482629708077506073058285050512980274139904040567490719272043469754212129431687972999706233581618203110703174422024201567744816110514227623901761930809863871382448602772769690949674059600294925252265653100233441264458417109206309867887613303505028277118378274720791518392287308590885771234733532472656670465880241566406388756717102556102876407498807157089947701571458437629163996584414204834265071209580902041701376464156882927028556071067066860581628953978786080939690399549748436719274959743852896120255786479256758025820796365815140672930008442678951866104436102375214501692164445241495055939426290738781670597326783185267193162616544309044386122814208398290478785818337644575542818468398679335667616808437681008248984478188322389599235082911414914478415742971261867880449812284050120068754737656503056826136857248062254198417404604855768719693549477477143651804632399663507147212118295579649711614304442062717707801932782423728968231767750219971436168844587855365116552434173508938415668731215592540947695267558854299138753675647121241870029968561660119556837123429820154857371710840159333504630695779107063126881524273638565154135411273258274373301930249002240337543352881577002596196111359339528749211754135018637842516131954729962150338664642333119918364737446947858559406003935587229347817525312258480573729749237229670334335737764172850967888991478922535421129621528971312962313086046570276637491320411486171122256924821232727438918886682512822476005540896106262018377196285054775650589049723359865365437958272309546459034163121727668188539500062967455192594412362941492783162961503671472195716622181434788719899233252894046613753418896300112229496745931990004071652188020329122966163722635116987913251205494217010673628651835040840139671202208596934748557788188648713054019320738878605726089190336015322150068940692946241697739907092925898332204505283665035513567842268137968036609976643181508770109190797740048605526137880499665459830912248027848827307919040051561354854702704902940655139617696937429736192814154230789300257464833569275234176786472829225175580077609414515033356304818639197590828140194108513898220403842994443652028922589337376067393189099802986744826490948604616526610583621180488895738449027957032062373105450551189768321219456276498750927946440299516598310126549298414322901813591635370936572927754017913422314431901012467239502588480513044496277771481082385911265989785768197835382002442024699925046698595363900004919498274155202510902879889704094074958420619405477824562006539871664124202546228730907642170700147425674271864948105282149794912411064191379000409006604301076283711437904606755367671511193769241060789834070150085569571623746277942516851415421629169456233072479601630640667123856497873436477639785130781362083367115112855841977409221146165875362719249283734357614914597163555471708822710255397697883792876426903067598411172184389447397215190219311529310791507826525342407632838636612236431826024408604875623373564419401698993864044228439404442776537816663729056745277339044749336370723531666190141600062010437972389317668916444433352377936593735617336467152538258041868958887518759578302297891455283269485271066550716280298000233272845195594223672075401319739672281268010098924711503427709853987325630365632679244684661293525707478175933677021758297526247524796590913676519808623304410622895082772830742838537994844672128061799377659389898078044060841045974374237676068051223108738292578989820366843682663608423809742674165680043948664155384022599159527759092330337266797539366480194969420566637261124594201796807035310774123174406209858137235707867127042625514753220311080544797295800698470114748959946895261892715847614293140019490778083474332809881648366064060091170134620984256923785558987891489117581227588438692702436486637676382468749435007366904349540809728829587038128267353757533089073635171057583884975208035970058808105629284257926064134662696071773677091055402994602103427794722539796258631626268783192110201795663999684273307515970789672601775163569565474488613103866337333583005631151273780481604261225559893114319798901613342256161554269695747623712563140804883048395153025038831720817894589492254303060668275244220770681532034295852498340032611547648329624602807683207472560610274141446565009599640941790915930304473352619042468202642274677205855335530739059960181529712894866542094632373889338925040057168920827226918262582282702958001219645298580611350019909193818466047124226969080787530371328593666094387905244834458541220965407262610418792449893903486428735255718665216364203295584404745770266006259917099794089608231412623155232500000526898011411360028865007474105929347421762769355986142144410878046839791744154136026445671579096497183692754489254937585149379569950403480869473289291678127543562186311697775873682538419246536329889181042226953643568235477911397357371024739182312347754501148639379117922595564468702983647167666893664095233004311877804663454559080805909304894990294401555361874485122563974079500636342809561686243191293284854014019114527222183436477669377072725509238975769415505727989502353606889728900769516964523432212068970807218939036207489511529793616421529931462837504799921133151766612435425843617503871902739938340873751611016883176408158643769743656331179501690427555193707780591167301282487929731432392717913612681257776829991277785468872792404712424618882506117941485129760669938165752460184862875213125981093194914166227582513746962986953571596879421030319187648651536103693685542688093632863337799500415033125264951440781907068374150887763494872323578321690742311408947219319204957700199388080936954317952763266563381356594829823174047868365235800488043743973922415163744182793956950481286794989160810413903923099012180052676740280330567604582929324463499246839341969670685878912829260143469061958205637411006581902167699727633811465002082665661319851257222372565268132819079933248409360285408673710553244253581624253501876692864449648611619562724468321797127392142200837484110883394499350944322645419558118519748671494744748726792888439231859546331920553027607640339347575456353449233061431237606541207485774383646994689720964657233174718236741795781065303716750094767605046668447256342134091457172155712772008430500232182628061244961596362550208031113870541227850093327744005202683020814109214616205804899266616599714350751499465445530720681100327221325750082645639785863766785472010097379799754670678603101211851545905994360881027437996501984388895208025667993833713935559842991250028030970228490078022839994944339173479443303536168322946794844363672355514530526556107718842518259713320704223417115130142142976727654769033946514113868262295461585252355130004456930218313972562811865142757793814121624123063144860060215521520584818724898673283388964058784704158649383857372518772724583337398183008163715829641134160877737625840442401179257017328816880857041277598381849727961516959068896213448855417986233829971786153672919563398734061042187774048094192237139258795403128531902404770704177006605917176170885948150294153079574251425079619586876938223042492081781283919631440638980123835947041079866093274393988602881202790542833468478120842490483608992818073705559094211200734699909307100795093772347489865166857572226595499307788777502205354547975584699242704403843345533591273742370136442439490448739104926157999277025663212227447427799640604523164432469239012678750976633200751880192097142788866501768223565219302803518308475268106706652793383123528262037822127439671378087513564368365818375271774090077393409980817523099538162649943050264384881244364313544156691702848018558270308435972197628033767777093903694765745625497899542285385645368663824538319264377786251169642454146126298260727595859834878322691404317837083394101578432056484893872510359676239698315071830085325351716720604022450180704220683950844687523073051813835838213684859549644472489824807497727732932912306069755353865850048042285218314074956551727989910590460883342582048455071770101905150463570788865110116196270642929361854512900819437349999841870457351862924825208236021166699764895072459630378090508575362006777569455874156768689365438589010309637876708273970504447611093345558387007989579956167419619700323095646102735955832598092412136374469690477511240711940388409929603879343837281441014353481618605150894637432763740178843574127853919335284573519470983858138229005567812915660806780481449444723387119430559324351741260030997788117128820185277758329135009326192456482600933922840737650625032412456908560867278299140664215974061864846003425881966734585906488231423334693485014268028564115169830767985456258274638884550734796683841319918515286577252001346832078388667310307123421286664825859854915133969958940397394318003409006361481692786997106633964867747278826669378529478142747201865745964304684763561456735187470654345844718168853937760700045893101087821006030852780933587908931326191993753338984838125919294541390037687594941326148905523624838415714889560635438281475179887913019881124289003778610419983187094249813512231336034731120879232529128333528579104092892921071009291551447254879779500465072998384382128718834318287205414715213411242267939626261096238846220532760664065651894268059006659148568270638396316848037118053167908103944425355411692166223108711529834100079592405442379194290883829474444476646823412607360138971136655033704573000472615744123753102096438989500385506389461611780557199977913212691458043119962428334910616558507746486427901863817743590126592742371574624149197097126989034544112803944058175206517684164759983607342019771951759166399321499609232496968483790422697224769681212874427439260671559789411111128343511399749864157221653193447520664699806828047925741179822872002782327761441922700370480726784165274505786590379224349530941953570527331970581181262451733142253634820682562901738625716357804953343329868394704366239649120992902722003570091443698451830198843993301277309944515330591226515977832772581012904393406830778854690725320021410917192390149398574475584779497292592509790483655537672769504166804264900144150144931163697843642523521428632019415110097129026484979863825848400188882623000881644557656527033284890020510628459447830084858138686822644633720013022607181771984167127214148525742940136739827048247178357273914383716043264304239570864258406999133913876728637460673140735721758771095189534283143236056945449322205404746237169179357291222483745300674334514647026288388899675701948048744141526130385984768938459072426175358986251738323666247324818289071496175878075345178953487991862208521041222860058005386032996132434304170799748057075005908783234169877279154412883794903129648516633930497848662366194986204963541959950063681677801016476140281765366703776286154583810197140527496282143698517453797573900220577437690106032972064021273178997926271623457660078403738654006740153054540928532850124307403588935568518563953162277016742514956334153326701512348571787550662133389262349353618922318657082875627842579578876427049049746792802968680135306338860583819862512012927320742850729092342942666966222381884237972046661438781131519698064888889033981059473166841948285983960056739252412750901753634190134146985635345069882963723787667041557524548916297544406456849281518336924243764280594477889060190268869131947965317562400838924257714208147695714414061601063266423984618682021920223940457779259091860662478604696367888701982386610462283378912023332710519256136885292349659518632088612000423584268014926101167663915309570041546781788016166551709486518237232650495902518751747325945209729175141770826235284674520338972794409574180075413293873171304647266135714592976284578346142120207017730072806492636724762316567284906330767944615563888313670732003977633864490841728198216746098379657703106438423396389513086435677665249356890992423559196684953637700466923545437026788682085252931147403648718014621275868289735470426857133996512070519126126761231383182796598410640704405324796872190713326106671487053366819379549679753233143642086545686433182340169329579521342479780646607640305279017625411744272459310635493978520309558876981383606334550305862437718614084738204339535726936488995172191439873667008386277579666593338829233068684302982407620884292624180173665802280730192339851086156285538931555506183170790279850320994652343428229827412994596088350038128403123172964584690014294689971417383176512188509499063325060527327764718823688634969582104911904545646317896784164882250102427417988667175876696518287723071643675118877717525750042863943085566063754213941025150898143457932852647413092726909180697895555806839237794051000171989006143608680601554942773819157421051058216416031627183366080008952646681966953106854237904589649215556973740815268493475925748320143890880933742027905608365560262214837275467314342575034251278360303377381476252017533868099572954978111399038693155729747440276157564717266283022436004869401692846296636491875314577227801184030001286488478480786785075017452796135539308207990479687044509490462421655555308784548732617965876582884865946538826823088525130750317440246165862500255774320475199926776150386241095513413976159045628761502157420492261933848654045683710992804906136330441510174209301491923857529007593159831374881227213190851532005403415983107686130216754340477306334724403491352933208710071832375944787298162246278272674019129015666213174106228291661382687425333513619816753540340337662128446287185329245993870127352693656330751265875689906074451773771389964461637369275055226061086298298258065537016424972286480505725226196839681617900792711946556831809748984582915903455308386990675287240347260255046495013139912487298689601253758195275201457202181988592196238651753691497898101271625186185334892152397582387055547522407010576407356846375359556927512148348457964523349753427342927797382456644354373332274790611885218771627430719030742003723064153485821121493648754308842120257951575585868697254373808166734236866889571926694497009567834302692261722473161581850095588424624022043649300421879066414063509570333011207946878623899431651770227557894671050389092813284272594548320587963199129750125085810121162861069802419654466075574052444610676487026101909948581308041613001553392373982722084999820610569916621690096774719612991091384042945843180193192730356166974501585018824843435059964617272462502803250092718999104755694024141312044451854505183102928183976699397025344366957717486521904714354529417295619033543466125898876193865988339450288615876845488203976974409723215737297004841758817702299100742101232674055508298202523671278799741701488707807832729406238875540275420797638535548026459461145551680437356478245659552619042684157645182613130358203753431403876223979399110297691698720356339168946746423183234975676037119087431829775836154674127436937574440915059456866298302815862695974666741859058682413305979364361504357640237800588159710789612999424814357318105048693751719360158823431081512347095928234517470828210337573426419161692184788013134158929300144814641193576100687339743423702576553980833291295785897282653509452355525405192280707912520513116985769457973023489842062179306942992087416639477003276552274099490275773834691566730932155050685750280838509587991745648248121578657390044153724943119803918796449705685536066319717704316412474951583665773863867655483943399099552804764667502975901703127464454777085863901817921481990114139302250890395298315645013287538740393596116307940375524662233592206288344867415426271542379947454374333352556626966642441826333835362731762314451219707540794164291501101392256776988639644481693272941498792120215713870286022062091785848366440291104529533143552364767127452397752997770554615933608263239854060462127285058788187261390040369669354775627966377885352975666394127229933657211871610380546714350800655977058332548469747501043207527983746797754046293184974455255213737589783632987924080785490687874292022028170749255715396686175163178927703743508972238894887935324918251274426194986134936661113590226716208542842104679016829585081593696607091121640485013232494762830414756131357069144111153969302965824129585489342221993623393523954092734009369375617051813168507757215818437880100424378080396896132507167359590442368520097045612955911992064320301279374550333985995783340767471314324119230890323790276029674843308138296791016392733492512850660556959677828626789503276082265667552217782195198502737838279245919183982546728760521626718663921848570078377912183735175856890096972687178135516016451885497782020771556980837790183517944550153360870458157226871855309625325033695837544148914007724719330382559601655965069237377200341269772924404850363603595001828180714433198445467783669173154821473824154322354772289173063933211299962886412593608918499649837561341944179801472875189345608031123572113542570571535669223529856690420843287261302797177174106370707258403100981933959332696169213284101057548878382458586447852274788413591506521256577238979922760944282021169997554814120075664240637268606573006335118597001441817371452893407685251836259779977607527151976042131564076158203554916701890700953212696622270019651469018808526361336050681295948833861020792916756308051164121466457982109231665254680226191978087667159537890577154676845522068816898341690460673628984986309013991712631269610600078034658403687057799614766977775156044619656256392503491413970183081383638682063232387885571019285981464425441695208086291015519208534235876524372389907828217758470786910769068605064903642703874923987791026117423542760893117169211107235408198510092399105253111886370126279402427176675533657473170741004745675282740261557881833786757535287376594503358912853693507568519827867021216847038556262284881848365670089694631345257227470297722117584573272008369275715530973231042426163777865952008841585615515492182260606877971301375668828447564020145122165772001888741471480715243400170701922065839729085999893347128239235251478771450529988424213784996881065341739542127270606510011110987325894213380355616662589737830644585555298303430798626394731436943835796341119949331131843793042659410376888380694534596588530960445199658799373144815830730710991480605005874427356379661920933563111033900801135426252609858552606779956609328357237489588539508507818296830303888613835101723447980461525206916436638452816988947369498921149114836644416550552990686703772745787810904697158100830963233212147587906330483634148489806634511161704777938293787111895690180742727096806450819670166057903741428900671072898035541563131179851080517319691524425894317481907360635503806147587965194965263287002382462427706637916695671763183706216289790109650453532213906230480775557364532960247153798548351114827604341258618090796872321403371434797132882813378123145476162911343348808642057169944700419010598560457576202001053412074466034885184541487901601356042943289299835777694316864013454719629638872143343695187514584941492728553395542614193201335081126866704305297382083504549127066606257988792060805264831924819805312860802635376622255721457651451314563569002061776530296614733633778152144500042632282010570601649110997815905811947380710199765544089832665477756280551742858903000887367689998977944117209741282610535065416311741430134078455827951236181365414064617146841984315715784854976205717815051111653140351068573494993241489525287113041982076373582810957260776317917012585505112562855937158433130816749700747161585324100381439858685371410340130188792305723258514571830153016509797424323321828931950378109340398681836059707059343630879919017326905737205475718269139150372835086226167732613982153614867095074361068036637777121069327143908424746450627990613803253831406593143787614671203710829772799999004556229184229055802932346754475413409578157959646688518782035605194977274556919559099733651050947382264516954950657135818595446683562523754093856190448833452428007173211296320330990444690804224265469573723933393953670369091851391156677659920722049325651736344444481228873354483652263179959644308160109411988494987102544602164133808563430444010099735636649204955430445138062413185766348992482914847376059881296596208742856643177550738663688541804526335733432599085298562817222459135373785036399270546985713205485250616028901893818036640317142996360009159503763522540603551761925135715065462950175736478575619244001990548877974639512713350814398186119834681023979550671711363261836624514226724557180457382046211641224245877893950549250903450214990977359161929490356494361617365265012071349103941899152801427073089511986240645046977903325280222785347322955270715975361891636126481563777888480046445312671183873304764792540428819260282865686847137709245246575741284963181532393160392957386449242775511850875366922117510777795355304434692411744066678862600455615551414228338034637715995423477256682315813403464941444079859490441424930861797525785540624439204131411307707632596301166565532272530646883903356276374656914849668376443833298522870346616761000086877009287683337936626186463996923018417283986001719115918680355690129433880971771939877031921187432387291170301598312276713941677732649027634942688890156869752785342116525679947211890747456384364845313461418046357458927617498916237506018368172133699148514626073690668050631300216940344958237915181120780814877287523569154109823219518051942745129035050123297498993218402804983456372332407204956190905902372190673693519166598072317592739726380462027328539400749790823291574911540465041806960876867706713258508220674462677454664458332566345480729555166320983337054535230851706067932619544640855913462425367772510205015231933434107549101982639364507495483920179950923084673279769787564943774197981957515265548285714078896728520821783823681900158362601606785028277853429343099641884657833819241712029920563809993712738309006204154660190489557071752423092130884298057474666158281277184877199925254010166643817773452949517480909342621710889578355694269055136168281493299250902456335410259578483598556354184228042161436735127803937068381067917969378986474093809577331147219033772453381902130968719971631623589870384313471193330493431371289185711458899922014233305314210763061435696840676045466669362101760904879622393703165877067864561895862958339112393798360330464600854617413711908107866922742845211531949588952840088959306108356224679585577461998084791694096860268241221243821542179309560177285521591777518605949349685395343024125514669501517944520141283616873065371595036605464890312219964024266903191416647934172838821436160627873303110831817090058769788294074294990778983198898219171103290082752856573606348052548949015035317449177374422067196246836487156643680613648199995895890942985423725101492310993344860861649759584208448776478849707417642154955629403223681083827146082205896027015195329910462814928204912780428091541206817237805105794806083803478592719729303160572069770494169451301565421467414537447478424714443586261800976134732694707642752968484551336659471339861640026445606824085620549652610722785319604012343558271470582181876760404883172263137594335731532090768582783178758640730674473417319911359141747974391631987036217620657865515073807018789388390559759719899151621243919556818159839297127688731213705222304015810337039220308421737541061257587872021484513415332008272174779113287207133072766100786893004191496519169383068954530076189635548776355029147849320687286494114976013861191947880777560778853531348853293174927896780575039881403343747865968318138884727018297449838687293653236563572434197879082795503425994532076801406567291524975901851243989780578690974094165824008892577698931665148669549734734795794061145057093516330596895442955889082432383581677510836451463296029326620984331261718535404880886773627553543733536136468521148873326829685490076722789496905700834954304466209449548876241081624718166286515212211761581547936710704845453740078973435986546848542733748870692247963220252672253280384334264888347239597674706408770454162524468581251200734886764798401187132412255490346237345289691292544077645575244115886017357541551481971617938815641703388791338815617901574147519491325390978293905490849707803496106652607321916519326441928977159059012910793357999617738248701632198393512448396472075037350159539098350174926586115547480168233390083258851142839475561966430795816493034523891482085652746579113225095838589251453130673993535439515065712976338796741145848443009530282017931373250834178798973340398701778730585066842721227794325449135339517197372104449705341045673921695853529408093131904476291716579181014720206304179144421598181102787907688807994899769397872240215482738963438859961254370755801687415915505177232471701985883111579492780179187471427690332098856091119425856933119340970439511905433461981630881938944899353322190455531293297161788769180253126676363056566137814334782976426767388669803759579781822725589634118927887642605122985755788770366527289097775520844926547091135180577032321510933897755201897471962749718325869158038635255892336138305518602526987356090440718196445712328901099163971126523670364141579995790471616352886809765764896893041475854838390399856447101235174694726973410354427892542717929393568703777156556588105577008025711502648069839265998554697809219201421308678944201181931697781294811204267274455589237036253888725083766524474122938426721972502529893089083775491852514610420697496111335443591945201657864069832789695552531962816767685143818321312010281479551843370732381629819420943844513715384048296027237257206651167571879898918279665511307611600370087480868517727077177044320955116714984784335447529943747357030672693214736528133846789929692248771510093496962345177702417405674239500847504723978120926668178932666820262318533860687005825194901646770565482239790951089292106943690525281308737771912725496221787318406892368353149575601195695244149924415543327778254379498238083006482111680262864289266603727999735550190394152555341211663725978157139005565919745161787762238193125533915867382754271532505698691572900719121538382087695179824795264889098166768307334343615070770497161320855474436076195459232640266995914519832480651227810694151836645083386453400243198220966214457208546392247399068227539117009389851886850300910129743635851479810365741216002002466830239858577390721793437102309813636248397639555249258308575255677266772807542889446827019097334858460305531400178584565936417573865332687283418342464153581847651551476831320132242661963054933043218910855888654934496555764065877641854732038494189337897715121537375539640735383097018500095370793271991604496978643814764547532123129882221313733884115660728007298840977842361565661645368730320868199890081617554266344930538018423123020065343583243421197458025128832470425351902592488291428111421226222192213640063588602303645527470554739065691742882442049017691506151721189467889228912500257682204645895723532870732715037744561714931669180947673824313860255051163327343698554095908553968781105770901128928176819025661825590569552036811282397541608222783514036929395423654387083395731001943658887862294567969975845359405566261252279523874695580528307192355829839618731811404334496927984242396481100622460450825117210373412438756301474741413861007608256459445776346090371582306637259027187925793682845087063694783564576570226464449610220916266648459636979489779737326355478301289359112025415532480042279194704976853703724144636759979291265122650076756879497068180930482783186527846060243771451313388011540533992158846822818514412883362297244607107123874910713100484589540972158419760435577223539016337286995200208716191905659225400040631069034315500006174756070665492911182830691689608012209177996928903380633338446676604246386245538811389148526662309139006730402069392885002330048207983639496806380426471229006895337046621082835055743191069374268020245977516480423059977648037759888948587675568006642871029722019694137064155125118198430916954674806529457603804380648433391702371002580547740263921140253165032753109005259498122466454002690437444996066224901560693551035143505613954921710024263174293682910555742570730433900736849622350909720198971069607181131652730416031959735841554179757646711421925876492952944414773706971562666070558979294578091616780912299378235823455600383477080158624581990668320574267300244127983395759427029151961277740283754260384341434775078028816718465573925683998426596049953976078896346765728015175529255347510000188569413269556402025601805483844389989427473093876885158601005610546076169695568837372763263598509217253777978293891756936344812718249884283060575521010503385138489141770877949555332325137894982088725845773128761443541493075278448886005658589678469536493116679189708407205319070589820993664340421575318871819084987625310848236461306480296587683313523912943728115014525962066755259800790290676702951527638695404204713258603104993960159559623668625626660425739812861996157413289840687389813574101724855802720821104284415655602153374077494355749996041604882891358224849495014479945495962301973954630990086668131711726461607544516958400033612653091665633442861629243966675257090863261184780815013895226449942520482259030944562926332828308025665161719147715939525753344889939701485105956535308616685897934280598820704886528975269378333448224826524458193003413656802321036216659926188192532923710964757143120811371038603628930808025315589820103132358540061480905624438799588551521062335215117832483533441799143636863815432112192545771577352830798599602915554016053858522084366017216797759528004386202700873276573428378675373926439099163706982465523953301278419154959257969196518637540725533525613503130519210103171022588092770890836459860382832941904780926791169025611655172396179983436527393869147590080381648441424337142337757808350681210233081865862631419180697772212699233236949654159415566503369746856185763920674284108675735295297833465973203632910199158017981972324923451937200137490358584208696904959854872714602438688072084151990895418376608278850299530840431490952129647849055550939886206205673429171344134571866255428927321517049540272297111530847048955766902981771414704198255408806646267133178602573349053127815389754984155753979811628966706661143795062319613283102724301590952533817712893056269411828149162127647144092160098957231934226273870078429793082428750518482286823350938274500910654760757175438707744658284321157693263508726697367887101903832516979250659648858904535517499971430582629039171925980886973941350668704214057638392267933627490861560338275843032219539990463802229201957889319401663898327534772080703111614038631573728375871247857076701714205013580965093783005511734091071379151017458503013481583029007235422376702407441534560673924685345239463741344585998282657355478022782501619193785798467778222304520777760668759068159427255313960387919264036728674528795071751601486308595527870924508659696394483473047813426279655873434113083092408335465487580148126483473752526763796771143951637542734636068534785124906272429737613459285439176365115792945325499623416097624894606359081246218150488682829606464640756872765888113373269683571238474598757427415985150533041396163667146735710948547243612565538544874062029069041995156960573253864572918998291923172312111251341644213718391161374055328355413976548569493684189240114352545993636181649962644610437567301739295091036449665288142128616639551778291550673339459372881563376340847337874162965303139720169121951519391514585496977462374792703889747676260665190713519379155438791159974846693168426874105413919066467186323161152711184457510694005799465665513597450056943681479101427822629573371524312582569726580348171408680896059501655490685149786526990984447862882947628135624665896257223800279743759385122900335837682594811149172614938830783666597293466431963691077044924604983560760933805650703386596844049926984787128176198542291564544065698314652918870677621116540352499092647882771236416845854259866460758876146571412491102426420043759823854441665302747307598085851243283956485058300400423611328847897060347460343506273480961471602262600541069179082527812784146667896814888493816188957427231230757326919967267183032780969288880701332219228117414980177580123230174042474674723658756280724221323601992828287744641920571086149238683890081547624805838809907921487761049702799579284793361658807695371928319461879989621293492989646276823593222107996239648630492208689030489975047076192899173847135784987061516065566084751469885493806783975428714555565614524623461564051056242600928346197912844072657232641217495319777331783283959083079261866076283255645407194967257331992538317405495561184014332826864860036832655414128174107170325944001499281545154908084450287802813263650882577588522335238520116256093436669119682003775968444639320989479262156335219922106778513312991734517089616066843235869630555610300793924255960918563439751343965299826533213344775119716971245862138382010934856406552815829884952240888018390594535924487618859496931719969728420906477304475327816923574187312569008211099806613551988126388082987771961537963736659936452577292354650553895650269172156185459579572650314835917632543866489983565870294609350719928609986195831055357070874908474376055442269748511639926224055934785691719090782031731431798163445814740965072205849090412128877726649246493428178450116890474696428332094909988904482550814933764450468190217845619593614906382242035381308429934332108558074583069483184722427087593645288234790165776812327130872043077955451389056103761874292890272260034099243754239671919499503263227374478268579171492114705846601966045116225986539820027030798555328110312285886383597425991679203898034793324975830449026089812079809731434958604147478708319272822554335372574502235364273433339514065941572505310100128714152381567248872232087597763834625730666493383968041668686609664854069519892917036066509650241939848540633192740637029216748835112173331922541965405861635983414530595005263657996346553184513223452762206392796883449965358727463958735374401363470521406044404579075671442509120007722720370371991462128189865010886850564747433172194905736997406344260880965063286637539611973834613385653117883980914661384458065954013342096552067439980603156980735294107727356990626165517769174012955319621828049331930082879924814600355548432463852447369408227018133663906692149514623098143506800834801491004131436333866916622376789331917933430144044796572190473504356906727745544720669812976979422302223631693778534111265063437471087195159082041273260393279339229705219307999930737161086555010007600493211542621952131864359638065071653799520264045235732274507830270450015835827442128240110770376292093188681713711129301542401771421320604720227522898667977914795666492236395604044392198064979816310143589649980517523330118765104061385082055243048405142262312972929577404940972712171805138698647881579076445582190437458721602131091218286691451801178838840183980683989714320538478843530592261376810322561550441105526748659340745071586011724314299791723219279644940756741899066050268040257879281883043584697048689751826596772922348290908464157479370742693258331659266881318446378764926662685017007142283733728413217642007245616789601093234604451049246867963883499420280070497716852271364165652440824008449859780459376533985488312672939298217721927846855155412447148744168559099274844994215677610108300868644744509486163532225124704960079587440010925112107289465166481963504286754004969265633732727353975687076561953775152896372236066971469342631834490791976867111441289147344266514301477060225880440551168683346202286876363227378948732586683123271885941763661421074047769958154336600043186420982400122742113314168413714789530154022315859815705113316037156933825855306570411626734019131853522399110474363396118753499136689930464888215801631674578388057729184720021298439239974473053958237127580949548807069916638998487091721363272490829202216848066799416690791450398015237947713344321865682980003124481939971164395156291937940067804160868025506765634670602679843648387831330917084582575129307783707434509114895045857961177377107685849065679553107952161979316954162046081542864968826050061496795579228558489906806512633189898200067481983438774486198170899469208148312780394559106419732864005557564703109912381611903350320159933925832791490813153297319769595103558315774902162267726395670907299360316519664188710678914006569606753269539533773896297268203261729799284055496887222085735658666219602039603799594727142919462401076603091639127508488105803831640607704895064586181333186678369943350922821892343660034638959428824670258638982397269427446377305679744673945951322619144447071095976275937407299742247556542915894914619767048780566366613639928537460269159246828206097499401233667919811243703382240349390752303091526409263915083853258523436083621838427445039040545697513207669945858563640089394962895489450804199953932424071356408782981616448376974207489931410159432539588748313839437284273292555455336915755744333367514984450758596231562833073274335607639540027936836414299314704837587682758289670798164501590866384834180144402000165591458968582285157253599957365393936873128195670545817027198791228550571334314857463339286604454119080288472345232303312370270453594078333549319040930167796998958626098251876417433755023677180874091909340930825146371141933721153221907449402147488141383120866201904189571771626586707472256919126431274441518759941190776891721635353065652157352221229853005747086332191492993854211987664245645010868022443039647576275152180312872763804675386929668207059050801394374210307064393963616751571283330142959050645288763619301395276391110402558774284007839039522254321349432363608235113281178983738073985246673327935961479595269205160928610229185475210444903372288038292018307855883314974542867440478108111547889537812694236960133555437232436289434806565020972156044088519545609863380616278286706904712066994730149243327353698920761610905489868775021410419744279083960759283272533883429112953550312841719789149252150155041004148398118636383962607644659272608647423361302533983507203143931134578206756789622406542709670185008064573113188315020215877606705117396585231601920307352817893332702048213058846723342473252631861094004091642914434953348145008238149963765135390329007092718488571198016375538347972860691709511239681534671893958719189478148010716368178830400960124439263851007904469028296742369342055604083033240825206533815086668464266354931730202218731907417222246104708062289952731975051209683790386856960796186497283517034819030753610486907838095598407219892496768990197064433199000763367450699089253455190927185563930191465264694983841281157785667004433393254569839858408122444871056292479265714522987452157322896941396352186052274927255114663432493630691785214294785109724411578420659499202457126005879448460420287757923743421971710930728947486600153706416004185776413260361315818519422083642267264718293067728591095081601960921868331183089567791229832144277226068915712401616122850557120755391475442352249717200927647602237873365782256242063600749540223261921487174891602146943815163337097520742447812568969073000943722173568206055034477102929176501563301691733340578915376296972907164034675534958535400997801304067750452704646309870191625293949599029555239949836144658515506441750717841231543304462703927453863520543321794269776616737983796144653410559130836425811665138535065338139625033493197301486186355732696014955341351158179424129688662349827137838830902546298908888625870922495218494015362043642466478867038340313079122537421425116347443722155778543369819454143345785312102496747398546493205775866616732676195011028302795714511144939010468555322185721405616847888671658124077855814795482851213300380676887025071767968595082293011126883934555225214082699708305250938653275241349347001472878302238242763796560734270039407451954892899454925765498261949280525973778805523993536950881555650055045833833047466434578489565901851752578837657382556306047352452336691334322257770224139502681631171776722462489623278722672136605207633636133741077842439016103249939225021292054689937775292631333564741764116195948263867344711156038106027390927885715807428735540997939882836268370668658867770129012406935407224459631544952075318186085446560524285677969720838220119178532420087787631478614245905485654556536162582283048271167625882061182022644716447691244964910411251417613948993031657907911688228295449452829631491785107664317502826731697525307894480403483688710291467801549706060329456920940705948092162877692500556088378970692440410626044635219692153828346589992409804069958330055251717896139508449824274116822724070398024662732347619754736996253128153572473770273734463831148366160420567875103155053494028161748547275393965166468653994000718167323229790986040555985285367647557572812993012253440726991262604685724138682777845853722336765383183024315893249582523051465883477608901040336851580307909722569028111335654957803845631047363598184127664803794533819421410013997879935265672531002794685169331494960482681502348004542050694644288304678694330671323735928313943132677394928518758728117472437654448376014386718325434842064484538579627163050049242740237521710202933546634977206306178161272918127068387678820956132361568383581117451067773400079148522729629539232550370087812910975308415626075425598899956427339006380656982120794276381666944851702062281271499171508610932942751633476965131225415823083266686218645221268402041658314303969723315522347291403493815605387670833811587789724304412509635013981849720769232282749052433165832813758388959243624676478510752095053251508565599874175779265637258658546976400335230506528685849498319568662718648996361610473808257906943125741654012247901695514913864090874149254914732592620733233107915804550893786205723860402277996802952015843826509799009328855071895495410102407091142965340826797000786765979874465548732597854212583278349466818475606041660319635175160103601716723851413725313800814429506923519938315430009920896385299608497507413349404257654803174039762591311155376834145728252464700161939771388190970329434996356072739513292340583036866256068674399817537781798986691398883514378587690032903206440209316450175475619316317979595895598203190444179022711668596352138125272351786635422782303201543447421841075471842981744820741393911073951550315558058179739954960221903165269933725859012574132370705014117016266770469576045329152829402791573777105791514660606224027913966923844777476824388727481595859558163181979429671901068816305175454367878150241904323628773043465885500064525183934092520303625270707941429614748445241177576561195411322303875450050608936198826322785545850565483827743559790381949021244264474166069541363086316590930529164110805917236513765529173327737346510504794848428559317925471528647145181389650519141528033803780124937979731644489965018304488720859718676364367242836730753862249670455076719561711912230335999325912885160613383145184330391165429197366422427653224873820986766058454450008107353486745965630052346891400485385983554669256834430171373402479595422541620254395762175957710796474215217648873272400811780631737937693258359288365898285539552081271104068082618574594145907650599443848646530028397463901796122887180735798293727421265442802809207844270494165345736955768942958167290846229668010556018080424867142707423261376201237753612567232299301823978923722409206551219486401421406282812193182203403798627778483131371107237411244619342006197583959492022955628304953051427551926956192001889306774202053856292470229742885195619912642699232581451895300713198336420037608749461111154668242262824201075767660320525021985568279232873892043604951937584042456455963488345760259371339352209530170552950733916646087989232472718991779190394389741943430894093796773892279979296484222998034820845955525708369738291669169915023122936728137419673837391216848745738913497162717986236943065334063276626973971231984122484727693378129929201642836732353149838952980108900331618677549980465250543613264937475316423555094177257076370349895758041825080545573866189442654384804380023950181609959371820061298160073777582482684486963241117589191977177924753653848182773456998668474571352367975207855613959451071450691645661247388800373351678975740602134508006198267548836714121784911213477402905348501568841642753324832303790408208856555437375249310859478094895937568653520226041489343336928431588049576220575751516735452359665607441473478750199250942603399216641569616876489670232458611473545695901257957764466355226225724125330409616114456838670059196869455218612026081044347977482769776553678301358785131406727432845430452076456700613717020076252602270173752268694077670796428838088341752671154393030393268257292656291463831321609792874964553692513714295163917921280046325623950944175496120955336624352197302570789028117544071737142678876815461548196065817677046715967881764071804939341499807273934478791330553024453889909066974680674187739119546926757206157283114212407895087841805787390916505389468192937631654123507780331627705911863055671292190921658571101973424670838487748260261790971465611640710718026582065753975126981113918374102616693814000215136802221730203818970892847883244448825706581689010385753655027356014644283896851208879367953574889365266532556647097225990977392618076839655043498349312109418144448137834582627922258073972971515349959453184933073420252071303485836506151990130561673481618525972432696486144282255312254396814709938224286829404630636298835139150691585046642027024167511072823101838417523043616514092666933171772819504315026730097545227722475303868658968018430534821201255483581623331290686025984786149341821206635629217849409645538129169041994308734979729637708260862295316808855177320314207571316440150744079674383219738068599148195064598941680489328971711740312749753920831926176397674210106649930421504224293219979567940021432653310813249060495474369836447073410194640314683305111978151729864570622422761825552190389459259743483603716121415903421140108131851085740648541157777677707682181581253661943797204705845899811158735808441633018749919421712201520108385116486129403976735736947276890372619113417614634075978793080669352542858916767093518149848434497904538183615217846461660302847875331405956591891178271764173549534944958239884331659908183825624836591053865661360029121236911105194529393342020569717805709705156535611314504416212872810372909321267152126295155279637385757952234712548826581833118751769019216626458777848946423291292042354020984197788514611941264214175902383664560881864389010319236666491819266286179717179837164076263403391560590148903148659811635743984724269485006008963819734138506713306401883055876608963735293855879155619156527307354428054436077189254367832552377070544575434663961650508657535129584810883152211749013018400231029837365194703554551977635548215070808865174624683622541071894830147630099827468360029124811329264109214048332491367044490759137748115500421339873173595617759270605896126024394390838071831103671465639447802550840717501718640348188224921933547078464257019507244675687933869392949130721111455958167910132628781397086840040124805337545073095007027780268342349625402695834268346606059841736737936156124398994015628410290275021330824422893454408032213626962753993193014559920571645521508926453218146874633206660958700308938688174345966256900889335777594055359655778408356395904213418524738490700839375747719489795407467147785889988606416519004434402465015763021283347321237922377961812058200197902252364757636215704263594046148815633415384990494672344859359114555810885586997229628688262091421534347792843692628259924674222630277567358178830399108130238939301289773316170816390395043381223956475634163316061728623222783672377242252727861308222341992007661624251497005649229854444904044148852842100091481725691914565865637381222925196928418009307642468169637494618421178629099008570608840103664380928209440667692129683982518708440199780597379027562922146779834777227321650360219703673314056641640338290005106115575947732846610511559015102874272533405488754046032748888709236714570910712190509265960671533828721578041524779417399905422154875942990591916475274317605753145416495365751412515407244156525755272122541144562981020455792371796870630544527328127596680606465410346644344820433717331434231828124397246431205646505574207397382452722945811462549724548692529550121020623106938504989039503959255850038738974087307919417694549266466287378986522955779542870543862631291372225344963548998004302497847318678009924613662107926742796142547105559646685437647235505281955885687490944208695756725476678656780608498906294487558649956632856841445354258047189617037785097157466914341240428028943259701155582514441361360419782656335761754602567446265453015931954583671213065660298619084040451913498045254329073620660902315402805476947365925671247975648060707907230691950637795469439634868864839193651577893351991206164327768768267025552176637222563495511846609443934754408925228807804492085606616383126279887159399719844948637344153549233247993066024714024708775640838674079835061834286565845191486236071717552373613725602349596375858387714294512899401619157131883783188153430537926174168222462618820703496755277928558060914791477891823749107485903578140384506419711019652022337491480645375171158116950159210854768190088860267162324215538374119914321576880343602009224943717825302564359380845664254714838589379245575787627737053742213924541296060857523366124085628181835206805569968506241576515463634527757176455263331290936250541662933913188860921118816987103230510924347611956727234400739930245792679222123214004326051952141084096120683186018126370493353092513087102097920048497473265726268508795646121738904711423226363211854231052898148933571387834671084703374705115802408768689586052423945931309490648873506225669404289123278402657502058136302904951784942982073962384467043060893859580365405410130710335910685894010930948322364811274306502972078701931519928001817974572084662523727515349128547702327487143290310797330924030760373081782254302318651584508941073921573001527182799848319222046988215642244908187440775666909888637695742439434734643313100010757562010577465307454590193498571805063699723741871743691122543691014205638444530124736812558724661358211439606016560530265986125119743274251568635321854567636463463737282623638390571307638392864506633813632799552359606327555224739990758904673708156975218093306379060338035945141273920008439457523898468938113328381800608177242390831481815743726708726106060082040779123719729886828758579055733610165659466239477357716415891392678822374867698540023809213431473016773774085366816961761604373157985076632740075908484866814776712503333062007690660086571444431378353494053553591231521030863251681898956242637949985639057645759972491641371338268200587271447339912318603282460528393533511320406901037146524784266307508929770589023972308141574691797464662563863381510163482204820316785220426516259093875497325979813529285963699272170411331243368228373034723918938694577649476819058119010252610824369681688436305945722359930894530273771218679454114057162650635446668337630262131042837063950967283674749412464127087467801116701432925412084066366500589872730786375568617143405132819379665481745681205633940204288077951680760689756923222427170422485638660273175910627782754754963128945362216638642917795792435124352192858976791354669269017297672648782007566067164955430022410545727580947007899462641316313022195847715129136431118760412925773297768413344158419368821936375000864483014668331843286938510292373617082193227837740462261836726563037232167701736726727069719636347974787416331249073689533021424171050639445408310188473508833723003977592874905091443718755182126874290594403799117178807351487616165004992949345075616039520059920537392365652149422530492594296409382822533975246219406400427911688329085212159768125948556254713632665002785496742052519254128488555052557137172273132714460128697488146394715104871314534772209062972458154981306970065796137514352338050263325097257832824661068441709109605780677408695997270795021764683064723009089022236478275561583986801483873101619978090122683356664255261753069639565681641141782282590820784960142992782065646035289473332291455174942435400408807546725961935166700363036947619818017588810787799151606660321929843111851364962344046982302545043390454220220303467264131464412909285038940951179884245928632880020612167066151414439381077145228414123022699676449283225383804673415235560424278437202688328350055543511007317103596377793575228544185682663189978032814218272219708095559327170482883619391846288813237872908565191532171423460347969210280748040696543830657618797730482924401250404351858872029736471534933185351357929989001512011934025249662647667932437828165972379659580701021660933359316209816898402056437362866451471207357138188461940540668516401587414783256016095828490486754776857858713517100795305832346878085231605868291518496198176174651424465713336305033405755209030678146574029178692536580719744574176448449926325297151615343801618515825778109027077908583545413642932292221688472341894169078104907422501200674818863095154110183304550414650167714312216476519085876410582272814618213030358352236169351300580077941876715909582963652196383600683265949724330386705313578455620639566057130865522540969213734123052317818462327189204311390407981696185324603713742564429524873818710637077211627941879659983439369830191536353466624478653898111412035477755409886226009936869841449901632287726398883803136071678702475290351329597064181559183056803130024461129376430743444850133276119222060194613811109881778810634364494908738703681323592858887492137255948792413543002250046649228291947085482207583935372788761829935875899216251410984055038775333960790378965553508191317727132178698166437145729113712984067660100846088760057667447118017844099839686274409451682683808583125101869417786630271998276724869665339012934104426301535740889951909421673002142943157890835259189642074669244621061214965025538905748293744250349861674062137290065551171897379061529581327785860333503450679703901616795722502421761915068101391495990859394055170573947583860496876074567691718553595193889705393955353405625645529652213454576396228969098033891167781462000014116922625147135500969410397077849545909636783249916703334694569862975990246191901608551118274251193858240423467504815030169006961594899092302384267043465281309909469605999800430835778275141079238431537573411738101443743369292995740797215210002355892815588533483742321427004082597396487847707855925579795005392738392401582367977648495811809507399776352610123696436407349251767453761519239133885984865488841612750973336726354356651648328474671633075087768955540169983395668855055108303057872388132716554064166875230186470584735350128513213433930853396734736018033308845659730607586455068298456473685800940221877484575509637622844158213548080386369069433788716676981646723956947120259989046070962324477809190992700024264358373864503982702163219686823691906403090580977532351564760422771993806392836097092363333042872685771960267401053852975366100662693057576491928455605642928228900794725440115338108778426276741588459029980124760221825227086030513999708454467333427603994863773640129227620443682254866169226505548833320777226043796784237131983432896311922727597386832350351287034382170860264799107338032423386691102059914136464482020931668109548853897692827644361205201759071697260383173652691918628134092652291668462604903322102622117223421434032054655039588582655129302204156843264162999558279936234462583596366403868577254892499773422855339779497244579152734851356535452824503960958266208232154114312090373965041004192955096725546292530987498227048980012160047488820887698608624410200647948389178326363289512668958495433492401234726614308733798764322833000546156196177777978592208853953991558088397910616279934920303455610566724328119922418469073938753779990164497966955296199298737335666669859936716024283960256984591936314703563735986203774913296138739617213035959509921893497015466351340481913534978944916030430433721152536187034324959314476454098777541288011350449657262165894362774044977322937854468382045741375066462355380054257090510920524175696690937981005652947837820237093530633434809260342465371375083182247731450960317040626292417264668039109112876989380323095963239533582864304437715703404187202812461619812796992059158591065513952447169291893988257717551712171923318633662309871733152403084586273588552268049247901566692268394518146110464748341366852976534820753020352607815767271150961327092628103906010188407584500211454295878615232021384885945979885595214428835214308030439299656638513683355647119860447099326468073738221405865332044622767769249846160697410371146262471274056816579382824949265903145144103101519994248846440113451438239269759590058388872133352571657706038268768537426430346524457415016169756921954502210426960868085379116326633051537344371582929153963302867381870733165425266358601462136606380569473957125668157840823605005063350042111645357895111244523117361735126234785740702029574685560676890102943903603114385008742632697472725933317316938375976168316226308356787343834783371359268416064874526372914384098273814090325909053710196505643226708060154504630915505889201254897827779172901979952324737503714894893779754193521674048928498368590065203330710161114689324615197733728279847353441761325415944415483990694983203336083503316346080643057662735038446699143038313117596045241318031701297932418084654758871817168229146511067088947582387792091350338165991616988423807509220498625474846441071320850062522409686147052602033934423247329625204437312353165424952215447958369341114807096108516936841414725809782277338673087620984457050321761908302949310416860763695132475478937368267915610525257813764788891666869803103260838341581023394507820658748130971076235455339094635836642257922804896679267860131576736425750150016188630048243190040409917011152265166330464257872162154726301253388981140754042269357867841674151079459523211425389331581116603258542941997458263352219345850653779781180232096364520490724338857604785878932248385474488082201683992350461938499493307181550225830953000282439420804157086092661224922889926848679410997214134233808981222022636064702617763827429998255340194748563239217913283930381620973793337312657019043471987467907019510829120434486365048677917039230813810163246318222845755258520297581227992490655512542823819037275653948479592992990143594330014274903297260258675833577745665310364725887044851390552662177654930298006092883866785423749067100280236156511470664011816133740000896674018032943014134736341829703259440862824479203838732395521675754134123498703724684790228418748847537910226561777443182992149662875660839809058920413008997194851432970406832635636101270346777748291016914104728179591117220170829527832243021536521919953719629304607222380527962020259123971513261816193997013856124968177889985941040514665001856175032575650130804297975013913655335350686625251386740058740084798259969059346247669970797853743023065825136023829771529140905140741368119321250765387812481238906750776517063102062005257339920823920133700817568918439619225128247472421718129050403356955588035962207338815762227948133943964776957387719292152819467756853264304488950050140680447230577832225610379562470857982985016461732505112926667573314198402949996091459482073845280969778076260470017035223858035558677361936682000280252314484590027382504400167047600450150486105630962851165905561313184908430783527312644829299510658222702047367514343912949874848968045225739986790028241906828483859496231482088355595006053607372655585772531080374113100266979262425649554023550390954784730078038332762388853211764958893596332894346636763523602454482473550651320841629565866839700469206404608838352694186115396779210218136216121881018470669609356969166462082496987278129851372432641466966781766630995579161552523681469175888480203392131475345136074249471575869578271727807310099537868161722239027147573936186708129088821566435767359149158218512045887565199430917138798004046095124704589004585157962117036801297294218241531614048664853442688971161418985960209333752767186361934822510766192528681544331689149342623808263446058125260987390612449148037734621106402957521825449791179012316493120457721708752113517174511444956787767382072882999107255666655039987210872655823584238254413232142050428586338374374605062256856414065436844407698438238297551765569816263941541977093041650366153431985650885545824038727201802137088553830533156752976690555826266881951295034960954576402066759748395093853266688823038379907294933125360671466010406887220808762491952998172962292456859121735631156597592905837668980420158119607103323082151720714181393415718343674146592380372771725642619569326003692958757011105903516874049290187415063101702325901867049367508480366812117082309853456515750967554110115133005947795189362877816989445507700227755481684443578813445926368796806813443264869242143452961593623452566640860563951692552890693208141264595628810769729795886831028940269900996531540669186231234667731370261858207808269768747059321147360135374421564725760115541447760070429449439883765267926224193956465800053859019833619242646148220870076257837680910498976578425675564713129000775867776547043813443645668016982689455549247023379693411253375246753854250258877074410040937378782837630096264840382607547077117017334581690049638076539362045336538597388491702123291431262689560838389851844129235974085658061001574901176451706045297989426937904235382675203874947510699006464459194729594829022384066614353688362707361247463207926799313010638431974339148812729883827894090286656094716021300366313895629968391840995712593214746640501135977750504734537869082087068901118052525399385146209716569957281843343406092866718231660088669562135675606226949210719969892195393467763480052142132889996785998769240989573175058712384410511847501136634228238682319589590398270953096161523170951353566027620958371300353162500482575501372808888231107817576975752746329225019465193942308401330675610629943569383467766912805175132193194123288489778058241783289707543711220630446042562959164835695348570998046694003067617202486727551336813518366790345745503735021645535695422621596200485294146034740005948241226031946558209194698762397944026340563114415053596306791674640714866442336982499304175853990726762943139680266787713968202644676317097964937001998608450888132544153710438803076557502046166419090644493082524889801248471601507289160684117856190149540747275873364584530587218138272344941850316958806459709494417299072442009353964732807920673688382142747820921093598061203711982761319602820641111585960623935845250983379198658717343405270637535692286909334325464873799590461297373663819501644541212652391398243337985314582444570461917624471921280880103858554808045300364745183983794641129478315670050817795317833194104175870254629584253876435692481697419534813606301490983179794998406682014005396530227956320932517195583214570700510707452241509981936709393126446903480545860453774607194043383276904480696699731507432851227805967026539827273557004889866584100197149057623799289540411805269080740104395195993964583874972620176638757342518037161830574616166502889001932762750681296921386407475437603305550602837030908263755331982892529599273317334266432133763159656458880181601465818517514037442640549118068398471525371953092255845813555700242497495449614541123108583784206632988836482018823505841542936550756549044622408701754580309827846168541021523446765072961626786106888965611596896699316242873243519731373570619857264562988783321776338056954674215944236609865360821393911405180764871828267077007592404992970444533908747703723967540270823272324779844935247689861040295813048641707471888922371703676595333485640050676165180090882467819809321790845214271487768812840255829435860153323183701016413726223035675830881323966275329722421703014061922337347268792306680193878299753952092194192691122404087104068207092468327310261675248035667352883673263892531115731595893869261327759796404912990962171165301972805999310723698007525208602952988203466189293235932049177840901965870753925140632596174330439552232624609851060176972312376849405494875232826309466659327997306089937851678272943830500622515697142338567948844220207787169363179883595330883346077815251206609714191166188104464267183699107254661883921345219566673972101129366340827156528321561340381984596774335387052569650149350651992153787825203694520452836485365732568840247108635020382367603210389563361792599274087907658283056074585202121177127722634070412133404895094079297563697454073780137274648066566696785297740580843301355619073130175329634100547962032120941036349622065061022550058668431749559227285390086168191437889163821942760886718491284336455060005930075615488635867681509701095324323638704045841520717569131198303671143849430335240461112371345969970517371866361440080627977667829764501637760182152269053670225994373473491744505299964426570643189255872814555843909225499200731522133758866517216614164425083119316725435078602229278118162667494200320190193027451403302774063069067474101441596180706813991822402556669155022388658982042893226745948900715985364335501149404688571978537489419431867669984261277476968050216972737271713231524599083387611902842387713087506943269686807685108068875553080469919585792721594036943733287539388380382230487503931570980716301026813137138643840476749826050162699210134287432345680637565496705853607654347697403187234324742786870101659520970921376147900143544830772993862728337670259741836844950647177003883968134470179685321545763819211763256786671188550991357101664570728667897862257749497468521766584513390439779819699834666074832165063454525437551983206400637510596487328962483475838500194068423068100782948153388012418810371975531494476340672184139970733617424647735369237512947985110315334808620834174023094433691107956247050983184917112645208372112550543157538732145919416066262967739536058492002831854255636254680703086363933988884602600569053512029846933455238296351338715831801352943231029968481104623882102443756132104668785293199915359784719950800779664770673349998752275806030616623649434354300865740388397498294062503305852158715542666879752463493930056615295821895289250294560768137585797063066379850087021966802604930777378513885420176846461834588257500568364155652622892656252508250618300184349668641535519086347691126173118111856843008265006796935483044792609302108733854822684422186983342811263746219270235049514446438777062095885786970518685737850013952158954723804749817942452704321284980949431942432061775541376800529693375914349831254398393927964428724252299482545160370405624805821037442323055945254949253485996888659498419388128448042020615566053999548119566969539139674552927236309919443427689994057744019025299808863395503756672975840901275452343915430268483502627860962321048684542455864237893340815543588601337869490670188073545573447939593711179506855466045652517588065320155246341894885134610736847559407694344701762507816972552416134303813881978477529816090172408687156356788907683374960485381477389379229285661389530555581558049247452947946144146911287832432633423637482969432851601938262489560872261717616488302547615942048277303113376314679049945881688152665585256140200346849010181443659762851129044610420872154509328954749456224163542907137776003195573426699856987587739731588024806714828521664717868439402899719919206714674240328370389800491879580278949540426796745675582573206558963298879473820353546687858137952988524192393289017410804246993417190759235546800674668007252036961019443374243238576837821574327993289745218520138675716127814775399794198326715968106663982586700253298505278031292702941054716172769947630126261025015321917445077529451066677763542095530013633221164652739241038809609936090714256078981479709863750356809708222972238925720808594162973030771500536571714244074220164905120569346372282118877399314101407242252084406640040649771079800171354463930785297549844300594507109219684199518087329916101891763745515620880279499138110093956155828360772420416619982444698820386838905686126247666514094461165980990293602160520013501325428967911230877279693516744829538011388392787704042633997541159320401389303915356189498373027355817814686435863721935216541200512349397734371246520387601772456874854026440274510201379130991985495371545156600535879455675771043917772821649239720544712754962849929794789141508310327084627063804021724552141635530010514821876240031100652511603205246666830038221651517850080423879578417069069010529115485544889635513477971712069949506782601943701923905995640938979693978559420780912036156713871153186388344508995179608689585469710210987095339418550701213371313101608761569285133468212350363078295430848600785668870425874360163218667738887317432642280074350399276993417466904772896485682129798529392524361922909326328009240028358640766007432265742301521375513717603105691845984898296869210430940697291228813627352337417785326612448563042548395648532680243826320706945406783985519019744709714306118942023999221286871796271417890859492256934686027170374958547525229239623780501149068557784843146098857581505656200546689102855848921847802640791427061723465160952621987197191240238973795116048954764069061806994497260414485006067585891697109925807017587937304057834658716779786315576501379775695898348490751435000569976741214164549642831806895036522765173909192295108078959796529449315357923161945023013045249560050205167991849253133192471958131611137599368550283491390298775427035455467601248567577247587438004478731492091609105148244536740772255835188770021848081728525014670048563623388659095346387138920707095714113039249678269978932780518390283692870170592025379634058249910360315481488709456919267967515822105262242103848115524611893814037859163034124224801134703410473441682697773485137437587566379108750336936309415098468133600809192332586069534905891261387528541790860062217081701751115325206314239358395778910668105907917421630319524321201375025815236076956646991267614594398417054540824130166856639353087819315908102802606269469377452348381065280249613623535923227357645919374300659540775391773317096052061032308895191656098339352291256741905148205721618201054165228381443071662215972242646952261179315515575252871967123517357157786926910213974448992345424354698033724178154566841702095382897761128737816224452434920854644257151058509382125648456404647239548348765656107096896756536837257363606039156515991932184559710759953438402219478488924148786339784077921034097978403363219088048050172623394234369574700861828485927104059142965323329758949917282352869180686783928888926601258197642124139339960502853799341479756320319070020753046018198493485211463759082434026213028136816045417491940761259710869579158897055558142737900739825669607539248000597350405429690134347718003803660611984066076590436463216783122498246021721065926410137810371140356596214416559208720645154238591915503113518115076420090193329944832071022452186151831515670883736230431044921214233908195993087370945743194028793669422938388956996959975630501308455566235651320676111068014334103817123582717647922815857910407219092225580350196639939218131558225431658993327442207933467567825627700107344362395918207074168487640980290125568180511551386573849441456093069275539934670200289468664210401542728799360689796509804781927219660078771755869007249136520516199791847283599180620698987287243253277348749738092610392221004338714104614175443303384791576649453358304084396827311119297096744694909666016735661158822356136680430002515171413985585454156761259247270631112633499559432060156132504686506692524489735560860568025836709385228975648565145253164151667840441726168160917383360487485953532566269984751333053997733263312129336227723462849879197835391788847513883838545838015149541042492659484392164873675955610597560187207128492986716677404329877138719900146549999354290863073586027043007741517077351705231248211288153414716564296162576827122272424972697154100636825563388606584018600295510641426399811582708315339815740304792662599234661076448805680338879906352425395389228975136233093222379152687075042720200255284802311781553957541461186571725558850498792226389214336593274013459144021529639362970809427279116078430612898263535365467978443704351826992636678027379091159003121088194158337792982808315262786674439275525258785799386710483373067694311864539805141523707616134130690790271887911054725950009813427743872611442090288129851203885130240609138325732226103929949662345045332827653811422928438003544184872455315939878123607951684915354035159636465991667927497153960037775125037871036590049569854559955955900757906446921593932336153770662762665517361690439167492760412109320903103259151375574119091256189489378091115701666209727935337296038662582228960908310638277841175322803718538927961598974056231284196469091659901992816702394920992318976011378109818456649032401813216183708404711038760180432011294396574526664062327148021114647531544232403014563318162367240795360582396818918224800580563271127380772877078007361209412144186658289033966600696010654887708692669787049846718349025901763320402212240928850154815375129296843968890256841087828675589798216642786725058577073902964665368257034740936662987891738303451443700192945132681132688392708111982970987795071558408592062832971746034316526672025878286623786465670299622140582651254104549553739891752361339831576180132775468597421425205984970270181752694283654873935912945331979131704619593187856200938543070822593308810133828745519681733935833781537483015703655944219053559268531111713304243661767380691770576466522713669828459948643533995943295747182355302412253668008005716122914795402489383126104974421702050809116891355281453796499314560837099298190696345757380305948029206310632986803328021694838502689245071087771836325319745006161768572469878919250223319410171073297213734062682466800947946200573339910356491215931079129627533230581044745559241274007171287545903616117615316257538278252931629036939453067345680440360010674587109627160039307736274342541826668780485191691151480025615231924462637011462032135733119188894507790058065044935794362780390323798034955465151203561035193209886347043267230089298220416997620832289487566208712996562253029602323021365900105290482663286790785025889205002660049092624920209366415728100859648601248150640899784692518676397389906411110573022055359746480873354300187133912973665607383255032303671051160262178189959517030611741923150094009691251622988937867967644152517289236460287995980710197256672574318681273120965283040087653378609070633179768265111363891325049708932958058773027170747726472643238474573919322335843147202707397529151953668123555860509381548191869864082653869759452124938943593727043086322224876330328340214545292447169280753794257969690306593845023650477968334256174486841436680921901406529626631682799270767345930990890030106753898064469181781353196483517920555812721206303007094965037410968874619446595260560367335949474873113609489591621570580948219253254859359067864327793198783055521302252904672746883339903563978454421496897406780302614527427766703959286812010477440973601966816689936158609125010076431790613905041671863393108856623732708644469995969777432364831715416462453470628293790296647972060491863114570127409144841805723670508619819429102789920313948371909384289064990355252839482281459011033379609774496445519064821113407296899880288989879605059695401725328490913704830150692778117710051842251575652880222004878469970121956725763313026312609498635366429786557476080533477754106658154595220699385327422398378064916448389793763062435873030972329758468986610166687758880135737532028336986107651314790691477545983111506217850604175800716869183259330067879108686978179337129173049191630364550842068554300648106351619626392765980721074725970259522075583573118887826590607903349380233485341881181932543848003349175018378499272849231295782678238899272965317309270655786312766123829682652757314754189465130096390563651888613196117627812411700753614738955948558321541757285308448942263412544904052397483194768859123191186169453772512753239097911995373396075682977845926175571082849099037949194782378651155433435744336479539598424340120169743320198546723752265069285618814399568162074065706224376354482317632712875307427244303907418819632971460423285579588101403321093369811155860924678165692975285541708868479422025878817020302695182407410200809544152169827589108906483658804505498228596034254211771543986546556648164388544415584246325190688686223726468827409497700695535160852535052809325088283399355135706815481402062655646597332906537508091065757013005419089830459300670453609508394617455440214282298502425975760832473052369083755004356008765162541975354515073447324198841014082703173676955714380876909854782740316869265088877198852784288090991396022747305066662148386018778727355856208842545802542141093229151410723921293023677641324027173790558668481915669360651344122335841913024604069185243474758609911478732592645884841947378218571085671482823250402409025226129287991019883056357772367214882487770026186029321613815257124695712463087883656741023027216935909124996965346505142672406482602649170706903089783174559632883375968837821384186224094850346909536779927961160477433355526344740107063379320788889046275006704358710188926115040465996746370541170247329867042782006122706965101994730927939839196984320897138512232033192225186272338499228013480647973785636088083852578811414773912066335983724934041538138999903278541462968609343834180479470313112545440136740378281855719783572438683144588664058461725951053201507323013481736156890326534172940049893283409365491695827377181148084921488778815518306946351429166407000278278646115866033211625589282522931607389442659726665836645905413322632458106271274858500028137234184464560406272173374598097835226887864112101335368850757300844982477266731066773347800632838421328758456960758747397972279794429284970060254788195913081340218724436336811298453049886044088100506434916988413977632268009279785202720412010638679258983841245252539797696325007050112508336945143637241431196326926493120585529453219632360044106353313478846328742730891108888534789445022025978329854226713727320481441901189369099176740553341587390812793157725256931742643629150969793724105653996412974413486748427453915225699271654191112010304867049414522896873272222939958281716306946120792923333965703168220724780080188126233122358001040869929332380142718140332268917877063385359234479349243341451155780210942516596728577699757350125864194063847687175241043430150161020865073639438138287822794306433235594748359297711839401696859335551770350550069054311896151254937276406376305596657670820517534579511598555056683119414464145453843104521462260779439000197291409384393520411760871520574999144137829929367552947072541399218065423238021505215272646256864178054219542228742030294646689715091588485473472997459345892261905131150683686794692228835751110584941349593821088677996678505145938536120043411743058179881129438502270822823603575033751897682340047291633968833819204931359155705120144694273718135101436590501058944764488047631883569850935746409830352166033121089599708101333408945108731662307761231998923619967145087560533346115347270726376209500008708157973830427864970320954442374855696956119247655479196651196092827780946770941949990045623136538591437359019139129226513492123698041946352034033542735043295185837614721722240515563057913909703045846259415694144694772582835927937744656348569056293353792908311603488422302594425735646645355507431875075413631918534130969976649056912970997083089084181448327880751940546480011479282462678463174876589591169077770656141446959545027408134919405282274806645973802914324005296485126480280811053715782240005741461384026723425482611634072427248779382012089177222100839618811069486732988068937489811694359301276762120620203208218500247516936851677087346022381245366069280328730937649633192806529289589518791636716218822447689505420300710179307586885435391476645940955148909614887260275550199694868495990382322525630772415604261571371445392409337251927020994223920317424373201816866200662758968702044200301036277653822476616044866532618852191244311771865598187501260067104774291729001075265019428147422236090435946468052511069978062051152773222089588095879785353691740369789203353271680855777954238881423013447270790668492219517938310516437091200928964645648186607652517518960868024652535201192438725190438582335455905107149958911049353211052879723600603044304130862253991864790688839126034525064987355654116557373281455879343425347599777718765925360431339346084419345131112268454956737908121278987557066738293416446533609134813362683134958027867445402321551608619703022639969418881167886932366625303416480998372495641312051462268394043205653852194116459223998213545682915831832747056210711014753734138852757073128671420990018566131729323605600224135064605622872756359328541488818407031946451212979384958953008887235341763768213045311486898296702620255287180832084361198770271621885562030782091694851153069899223200699916952545800490177650729486692087409758929526913555516551511373239419936036612646484306760121308103122710040283846370704476638640765069159816595434985398603575875365720763323355103796911192987063600786259919502622393756513878565380703793807458080769931792992209090676847149210677789649095990582282537355865791742476103965288071757935167930727744953140212238060029426838442605947047561710773021885636683944812754091914939340183097677479192989716000194644791062208263507688256565800513618804950768251868301094990847076342750705970404057969946355270463579950725369625849204455321372021979558958170745951473745779870993155249303637492609951969407570696147056204826549095117146184584575454935763801125802312834820549103813241253911292417497821038772348240847451985079633930941707279997469597005071845163480972255531869660748362121027864391689176604427947536008647429958099456144370615054867514993673702068320017774352121425844697297141358669396965633038491608444261156790187779138147998103999708092272718538828116612497290270462098150548576003421013325597880786512516949930682921590339894802243152887721017842202987926955755475812898029649827814198450798656664601911617587429877245629698225134455713677412395058304392526634164900184815437581545751173352251100662105016083470193736422279598385545562761726280983770981893111049920483907143589919272809187938687744069136645492009937195563273100628653966486911209540994047208361520038196782227421118731771712786542270496612679989497611516991544269536613462326223477189229131556481426583641096545141781071354632279225722385096972976202018662725013369163586955612319684942246659010361747060766036849734794738276318151613217073059963280977505612103951351697378346925177080604004859967984638028239248339613482985187033956499902265327578935930984073595228670538619924417402810094999316126408163255498640302530807005473125326793000166216990788956921843269571068471301546407502264007579809392289637835001488537747500615216386931967748408638308106052050185752006024703617231301784960062214725776471697552626735495924674219170288617951033922048523212164225204538354047120009953936151944847742722262942034269089843612972249029530325033614327117102237873503148859671270088230217100930155731893554602503909484751559608978593206311320333727552389762067965702143297364424521509564956874083336715210911880466415088544672417632637565201260258108921784840145089240272631656482059212299732748929640281308161789011526375655859277286991509220685460374865049981119513787481452024757397650135247301832796631993821964033330417875004298996816470282806776303524202482308145173133288584080936975407666295855248477893596857458822460811258280203271965350183372437370331730156584688704622367740353104241130162776846879229245331336019844073655714319769584101814541784533496782728967410603772144349872275457303219916092836288483462922925741586778627342346796129310768765453442257823074451465377051987329898489903684146236280137877997708565367248434729307781164350721816252342155545844001727421411363030968293222928265120836882878663830427197373424544522563497703078459337407848191065170908245688572839071645347531910620414349129696790732063104446621100342838247492043551878291169445236355185537759451832865012340594627252784857530657400016025561367407715271083650871391489682911847374093636794710800303132440454128748619954356870753981812972067061662895659878727727219918695977985994697710301473247998391076614389485662634146535668412023342127775946838072029599194659312231982489814275806880159157407589407164689061553121851460804746147900853074611370603788304828217228214378835990812036414902698375906824147812348765928492139345241479696690115340170320700330016893436456128722830041271790423141776707317878389525681874483918533502248176746885387975655515932966058943774382901765093793694195761474614659236762035484267518527254138777849522509874563634854973232322751986959305515578457792989602527308866592436175913934037808767598156229887550958686201287453409623199824735041320984739613350988661952220175190968069001153932458108077552763223195876032472936072384057339029420509484336679350824041943161043797119593181535167637722714199923938319837853899856132012214012812347635686815109199876617910993948014207392732018647506082931975196860377926010188860420427638094451182845029482360117153009829566526134456862098014038923239167681679732460934295066291258283980549899389462806885880286811989105926084246883675070963925261737956327287110076112577116084647840600891695750021702917396355679369774622705308537784889113744920357966988242350745228676952377789675346197142744860165757642702249923282677776604958341870485676758176712103604500879857687960830881892006883098718325063429544748138101791909947539065409761681369449182852786417587385283187479984679546127163355919539899450564837778047668399881642530345700038120921779825644783025305447719484516517851290211626036266047248051381050875409425603811972485526301341075434826598352506985110439858880601812005882665552556625493945624169339785105818031425103330653069468575760943392152435012135356628008878658473885440393905767783470416813221834934660298858519252209610677084308863319542422785635103171007089356216599261635363199396123212548469065671244980243589436104529290348239581725650829145601089859588119166333346151604676940792360820857555452115606166396732441728206408191910828947086713584638816416401593379226156969812401298991903180478598744469663749264262357744863821187669078791275131981609086934621022173681469044766940165400233614070305450149616988170621026605684761126606196187850011453722679061147453296926362542876988311199968387826633964269800935544730260259957462354705866869274961986391418263099063269650563094471638700802636415416532375907324290001168840286852184827270760724053046880172299799764581110316399809867338843045575673313005472088679035315065164111977293511923881066193395084420075312966789915092827916989707839062453554011422817317266664825112832290607101344034328430709479010624413501699516547483704198713015398948837091045643596384890335448929522665116062442071997244132457779649510822756130898784552294932869576164237689711678339004921458546955304677358290342107868161065740921169759523154879210927453084987320685461947278762475900496386788348855068394129780841402575227501302378078155443820993651692326744995323268924215911738094333652284001346868783002408316242996881962357023915835053856201240228885954159663598503814187053695074729815315359479133948497863663668207637076105598829291521453284322968915768697792459699580583234874886784348669104740104661146920785382304150747646021508603678283917864964561650773963762091602602364255108048101606636393373290080070475790536178766956158952283326892681798727834809613725743635907562141343129314696993753092665758391577863764675357533722962767988098531880849054758538416875165691381000465883704854008763765011961764880031601149950335699550140040000695513193690411867357328782206172100560594178628652651208340451986929869660925068718623416142200443565480319616581484900996098881274995217872136407338275685340123746421767864943838899281890246922215240365015552441284153083223407569833547928265637811392313498132395641838838361046950845312019613940505178757920762202013278300438883637476422467687280139274831658331704541510511486265398258623806174089187173388862038201001548563642918275431293861598171566582848475568923677380244437555938169086997433828449086977692497554597909550828251694977859983412941918136896169788030046434922636756931516600586706641115472395831025273998567390008563652264997616096978647971034103761208302552897698025903293807637211272159773242180926535431469110566377845519343627232756124615994359709769060597669348007420885038477006935687913095416293052592771636450051980239084691272277157331095515400234298951160043367789682135694852658136326633616445974777506080751126147440464083281919936185321387988624543597579944407646083041623493610991789671411986781627092009435221469850100454164444717594203441248611595490117654560436800296287984189312461275769104563163128829996805426330266463119420070981225161399809220162961544109270078813753392555086686345712774892632514223122192989418762502558360305595467067732824506281604326699653937706649650166443508878780762737718449602134561414969298469039121878028350283743411264497165708687676469099186859415305873803759058107146497510704907571729116816297755252802292250582464227291517298712104768645069144959720088900304382991128886837147525778212779850097009715937247407974050301049134002170572140971968630409944820290581207701034223727753566588001911361553078909616810024171120337831220805825896708590370148137377445389094636129856544081960342617323061550902028845221610360083217230518555001856525371338036960440078769467315479711533454406369584945370242279480824732322860379095285898701433208344331908346384424727639179513141564693273111265011205024691709133886441162168572753442391503648944744355127969720990585120956276411301873954291475379718324829561942089998180914525163134589091770108886342380874167094909789737380564990264915485302234497896067082512206941317838920354320377628202893817204994899582389005877084688000561274874915208064459848413690419975617809309511288426179941194485968432019902642289598288636619037828685779653586939394776695376893663528110967766832774091286386838560773939231027861672714288838076085874626026980940442751196456906696521540479809993327069843948711038540108327208234517335076732898461070258885809878722319247772362035943218209192242671724376272752674337890813421227907999744059157096457038300591329154949006103509457355152809918929359397067207082408166450099208157282459409711590130576198660397147565597860999033463235154537686811923392348429776137820834979844187091664716847994522770056530664166869413009909900232726955469584451403306768572476602036524749870096886313400534014940841758212604024464023781930094767994349654160794004058310090625435307098588877779089574555070956172996983806820331971793974616681626116300815666414069742824212688566119480726794554247914916919928105195727803030186457640731633168592508793881621886004654796092263972655401672252203167977086665403536658400017500264670126658318231883135160520429108470782950692270535480857442753380934717285677662785027726943344936623789981523118826315633166092215302263843353650934533265610841015543791648048105214844492850664497494200313235009973252162817821798501667252678649045686133019151396814113283019315966365357122675348268038673876323575422620663417192253712051671195664641546848952424728113139001031600495506890819984163633940802018046187177121598772227917641498018042625754117292633296694136772080291362998326806492289413621572460539990328568391695621921950810575478920258766255728075237400567074854049907904492016805362607039728011831244796944067953779990182531885113764568472680717074683835450229481628588146727029332040134151940704767966528146930674163600413315483383551893100263631273884516179609032994459349034844851171325217130639220398056651789487796012250402961162858763724048977788492636257262029244501400489959875736676201106968815853471962841855675887827235502524319054424154858793171186803114275798029315336882759452250802239660391753378788251964585506649947308716460550081753567763835957092174515658190335281064332094138345052237442404142207304296988474546894964655823324826810625685921367170057975670534836834325624256051394841433832928969165410363526252940570116660050310128351536710812201093976261669062302106556152706405186501198098086306055308169642622803162987617880292479706216022776706808347959797753163006370998205922872626250348611120044276031013351159306497731954043129124073999403743183251690338420457635647238500437485559763819986653577062830462045925918182087098100941613914590031813361016479311379791529353747472372222383537156071113220398959037156821803499066616702460500854200489769755278598842795313584250036636070311118752628310960686241461404016428256545105131904745070450901771656664346686263144386774069505122795597376500709483015740652738910172356198377512277113571677372928700733848434803532956103771591299420916819086913843364502253994853671625399105377556521205332070873301838565455007253984969813517809498896552846010777023130511036166282785121074642716934764387080517563078561810623408339763100794252682432270223576786304119033672206413476217842776572360479094785451235649587879595712540204396892816916194460286829934877277865378249038552799369388584571475482929514679067235188540012138314760841127429406071648480635520126835183918990155885656402110005889239090003715558711972962722029472300115469259477485201974789383457442120576203041451249337625228829209606319985155826567301436925421821712478928493128256104486882083140528596445184667414056762130595863208935187935390491630823020639407267101946427251529700045493633583772081546643633988426168818013633802171088929878990331725364168934742613672792136340152878295169525671948881778981343693355930883645623687078525112796028312468026425913347419804812393301663235951652679635239868647322816295288722689035988066272411139405488051489002554254900018170436925882379852797052867054438372665205592052809071265052405919161978197170772433955143354775830459083063695897033503998332789751347983178401309606256179225384587762012330483111297919781460767240841859846291341540800387267507544848166325757528368055523851572282673662070657660853073886790642962796667169081412858537248495730729444311940760729195309897888896985901226225511195791691919902720354642810539251142527213850208968525936456929273495410761645707322774761007180808341114337781460545357506555146334074681920546065958482652280583431759990664152585450479706800628003677161784133197660725337227232440325812889903130786745265024620251809977051765665241240365118038138687969562155915731027054609906690472977963397327933353893718017945021919682612861235595746807838427697342289084725359689342682690328970585616026111673748748700125619253245205733782332333797172732040588499804061939823182803510055086456043627449036320300011108570543697107528088569900267932726774274173831880615127586693470581584539504413685757029067418816878190172907462619457862970792798394991689096216239616682856926592799041169953685686731700436146544110911464449830367811425044912468334984432525825149023743115845599776253913350847919365646091189611030018488041163206202140702051809559590502955469723201136503310313580212301261257691142538528319177228379656560013447843829144888328610315135783230951330760550105127492400691120874197966064233495264129647327487745676009322297438560133734551038951477801470145902541226734515706599703126474290454307040963142707033341853915861274631652542107933961197880710778017101538159414996946836673735318790442049197061343562654732318531634852767774963035351342133781279409469473066598371118134136660605953244619201138052085744997842731463313966180885391406347105099860591653492544879203405797223587119985445198371732968018672260740929954677659951118822291606582867189779400173956895759338131969724151487634551116111921059232667646877748283549584513763392466462516391879975103651855609310115590436692216973427859143031588667266836069992496499098369833058749723544668716139867336126359194559559378323487116963230905400171972245414603791555395278528331048734888933787388141724549787730707969864345233119913191440763181041606785687736079960348654357192202193746585161966691416481018323346240579727693701986079248153724727745303607654393578938671203539006015327808476665459404174013724931929342942336227288309843617419055780281152260455320816964239308611008625236552851936744834332187787877498341544765370256972081969563358490806185020770308705699317020125996523293425797344076633075164517275454053692885174863662410293127774039106256422072047594832236142288495282638503231991069231101226907448092255427828816801313513968917856292384316746893539440359336042964456851472647495011940444671277630602757150901876653693508220383137732244326663302080642389520190787388516254264335500003616069013543120600275865374205132623559886015888219501675679429205079546657516299903011783211074927474934323873295942352298891923829550754089223589182186526854008284795867767756366266784417104066671810180971724550892978815607496848735833066625521076599489435205193144351548644899459035278965602576650766553928183844868362499575794052544797902474638296975978948775823705151243704499304626604661502576243820959912773579390536199651516417256527716878645862574270192457482206365933752384306407305205820239338926812051153846994047861118192502168791050833138486679461826896030401933323800964960878146358874118320705389830887172055906488967066397371706011211104975367285286802044057673648033170696638998833719598226241863490422085965325971066582535726798062966288256988252579135498470384780270915870707049816477546340138140150995312362562877601812069017399433758677735761510308232729097393836016555904266535967477981309185890105077656063794519646224230399421830716743509020172315894880900626726482808113923571440794357259284355184431379462533518883982587467526103955937791328974787058163204945844071181185219725571301050341933279052046923874168599222958953311198734502048505358332778242829582928791999821126636284009203771571821633201281354591368400650913937409605158812874788960439671565907547699171600799281336255906393712001984465258212681080031810893896787421220435908695965972882450821182672583420757208416113350914509979789580997373475749681342790079816494946031805138086578891475142255304600067119300994760789518191476830557963176907319745960068670767856433158920777451352309387932640234735740857486427502609823150163764774872996955882450688884263827792863098340073554973631455268463470433737846247644888179163928963488508489938323652494544846424986042336106919971897499182259473446315849399816957559094905267307737381348504889775838489031289962634429815616986027105418279582506038961781717271916799612330391174046993257329768177542395882226228797868054715456175014540842524222637019568829936599740656061803951815831673756881651711404721766271285449650878831684691495634002349870832946276593922261004621408866806378592704005706951167021966450300471050469845736355057577214835748548237497360620062432263688571095714913332844334527078706744663263727491346002743955236918031375345483922468345586458714438206625157300687971479116621523066157709387513956085073412525298226214784276765207878178405383431882991377589790126273901846332658534845246907605956027983645914958989196467883831574543064589072778150525963287304882857407960513683147414455330109720152543419413216754667915576349783473910121953600265767124083609367467256718704406098059367039987449634900679117881004857802685442296929981819185896547682430589931941124381035589937897816382879662712455836827333299602090695107844713303927783510347387053738166873699010001782394021482940530273478649723781886322916808909065887761237890290946080270158838316155178674186681658476873634280831695192099353809561235203742007284078542255736176271222965049823949101002857563610206309991239241890936661412061172991472290692201633631860345029665967800809142643435543147449644103678031563870782570100097237387767266393144366094392101567107335430664866127560320777210010904765843043596181048341235498745193718936394654978031481566108503695069099035685246950114111256805573990981361908240965571189349678932767807568131428343175237086067938395232855647838568597529646884556827955410725586167091499984000234238288343634266535693538807431424560271601632328539972696354126812682150527264270341482689271264129005715722761063284688532016681300610043824130002746940364831515071270948039489687760675552789077678615221588111281844235611744212120115310925087094134664508442194626264312988955704035330720044851740870470269765876675937457969950449944491280816532036610544332982096308821311024943805028726135476902381246452053546319135114525951841476310495974299905347866192832090055307386401417521745693480127211690295700954098639237558829915075332370145666758920257902267674325170358563930356284452250606591173213641339236312081803069572820751883678686304622592147515229091821781742624589101406325797237155768105323781544498573399261920590827861627679053096343916756092123585320601307820984001564687461797833768609898290463551265117018195747261655485367339289389678885621266654055812934917962495358895860634780463973444858040983982591580685826353473811582676847433017949394462975757018503564587505937353839420308222112544549741622620765750933558919599433063357018479856244077583072964083602051129833733634994787399475654396697928804802035055069119177993425418293202307134593351989286755967060158068708957140535362269808794796987480565608924458605691646525494957820722513770274175701391695118702564324366821889829279733240538889256762902115476927260521494588818036981604017686571755764514997411517557582874722637333200449984412236382246408299459762872681554757573687677189047431868520067530317872824885130333884550680476144377209902550704878849452430420267484331321140833364717991440425120510599929613590381146317531752356747627310417942530946767733783622937747433676565509293681414662575131825163836802954409806595112968876567993320918383287725208464982901846406811421316466677033308612570766278067358552681742432926151806461877316052543516084556236195961853039200598117564300074971857269913828991656639910657093340621846998346597670537802288954805757720571679654880061851553052270067591483625876254466889342017494898177252823964173726435432884268300847283490546085870889690831170109601334692242416554782709808955119117996262061573630463024314829144098483294387935637601600823089299731524849639727567427485201537155875340549651065031727680043862892588218303917972965189398113133268777651324465374329996259293347021195419965367808486789508151735271095846975659806326616844503514591860546179672166093122653942401175250640718049248562703626822128535563540185721618223699325502008266636435482721690057059755137852879017141122287860217194440310416837156848044037478196682349073371648496763977610883612238942668448315987483196045692269027388921404326373897052581758313320835905969690481797756730515861983977186575706840558378431607750089671925375915218906549907803553343581944584239911536105157665216297011520831499866675247345016980099097321667157412930270195537880472130956252705199413538202498955920577732785676280684537960271610796811279174300762949356720618341509755527598582161508949926966230646520778591990042997762058277856494090028041026384333408620983859600859530350028601050919848363636363726748635217094598122351845365847572805291630154772633279147504548984170122038311846590092266401745184290673258075027051786659716231244736410654390525148825113317295585380027553663842917010952209753756299734824495321255520788828003253597311456000880994966589688280722637358041555068518892582583497862763912046365674091526091283609538274050796117936848438413372357230189510591739299293264834975665356555809280145463679359402103649828185937740553285935384028602888086134733937363037436467502721446170088530551464593698240308738720968266496161626843022529687279153553139140889560524765113673171460764341593380817627951713345048695869560960775586447024522771169199973659572954704699311741603733237007841657201085082950198154850186676331341693410680150472019175622754924334064256048291311077580542833542447537403387456551655413118271883498326740102591168306807894283983435927164204150835439616895072829681021528038034665430352514008240572242738682253369068835568650831715039346709936925921748464552805349741535844705089407314240509923927254752942145452147652233150082485177099259095798726226459386137391082924667270081465344563320412693596196242177009535614684535689900812971479671320739835311930217797393175476471995275206119875307372583278454515971403143577313821021454296061258482642400989279029063913362434394087561818732934360902532769827694177211611653523759477106432422489894115247553013880572386491450489513134532480338011732091142043049867754747162898414381510383257203626480759785494938589574489167510804594491687672652022996112371954478239379648336912123545106847511905437551720946196679613140491695093052840087753606803696975259333599550007181755696581120813186858770911905345534352145228942698479640006603899525348433916802652900255101203829447518150850216686180729803409373101741104146466003808924544013790069521787266695369527291763692858568162858116767259176801531590571329452649093136521267095398754369056797987857276441883836341509011127653021799952332121192088383315526406886758405132013007462067667084264447163739063601432174508967506408662871563375656305202845740074254114630493761092503388228651569772539812508793893126396234424141076316394520515878028090291747115326507057027447245973677711461689805679584641616650399423056594750831509867093772439967372804192336096859105199081907645325905047915588337717631337558244365677080183996543451500558144239091178794059879442875579804973918440666944849813538961012722387725668512272787257699585678514164468418614375761162169478226696658083160906606347934621181946936560873742671617588767043658289429897248550370632825430815961735102942878076674999482354551594700480366359092809479273592252495779230320367125111088265400415609712180349854763879583934061413340974290523663144852533933242339740839975411149731466464553366774734884383618328672593047505250430921459258011747907547720341957384071480349030217846473012495468958340326876536171099875257291885168038721965287814013511152720556362919199461814027286911188571021022847350175234416940783975029761754144283397990437513756012737969823659112020748985101050552950318618457637810632743759050336537755141280190551408310414761998932759853003670817460068709734592149951636454958847521892122813257118142387739884798818986467290980559675631013957803947168289587134074391544156983115080592513566346178061310725873832710908668710819556488354241109463597395264439035631907060235453435172169518245084257449208719878444834080357036902298739966741642238336172525702639386766479505711757069109620300961612846723548803753243062318155649223057276770181406427877915275393436990844699184489588408888594814610101723374778491113313262396451504472904492879194240803341878393524279178088767762396905618376639340370897268843478534610102136975942179661618967684247936274382742417644114995488078860270520874037989382991544862891757726801987897487099217354932565454058034614388519359149317797194105502017123141639955650624928134604699428151487703440479121384057260055835663376749721699787548918994366700477761862078445889397085642512269017482114372706657570248022479734385964708323408582062270269922360964118926208204785929145693538969842617949088602798584847717862857326663581263648601861202696435391191073867727054929293555290594286568964396806415211456716275121419636054947397081063374586234641167885717698240349746308890174399137839423184164260089892003028842422053488962830588717069100043741246893543026775837189594601913370716970863308273795847366090835179437417212845877540949735631298613904194238201387860982683892326313564483951052988890130265949852668955662351174417256321598093480849418665057924540217099449369564892626828066836609317705839168584741633790662686806290186087494905998246436872180606598026786284008195503512459202641534939689253278851117688383176141577888660427203389118931855970983578030187667993996046531874571888809137987112048159595399728134091491637802532344085473589409335896955899014738109337331143351709416403342340466963159724338673650174518816285865401862471316392771542399214893282844824043328997171126722499041340410853618849502939181769844621562637652412435043730899322473245148721578711014231093693444234080087677073937242994834389346518406325615482583352453823307405884246529412329201670405859587681484747975691886584333404150656897841883655642215734282693157072210948255538362873858739776576337413694520886413518487176800934747020571838063212206584398295132118593870628587144006493145434273328576149221580366557243350540979144509932606855671613239987091175982575357153893085098924153654273331231003433190972370958495301518933463465671939776937377627559094603367885558725449060616873593175542766948966171259126343506455641076973561528258922118652264828712085952524159399832083886041930749980143396652166491008518695594883212170497317502820740429521862301530461542880559392648665623618079774451655758281760555361199853221776379428903602957489632570244163791918426728425977580766234366948426562827678664541788224639764444177963965531899079895581798566995357554378151996215753504515746114980798073186900754142838207882657532461119490059657362632118767323689659397533681010078931032633699322334163109968467768536804671732916249680910985911041237159002458682559849054507063962912962785185989815197110354167284118979285265234697378408477364093754535147352418850685567754881624096037538159393313387039998997078079448007524473103266097221165485687161427755204981576981678540419709108287447138028473968718864159722377956950117667810373614251110082000084127492572978538196774067943806791303610861836182803781507251023622134827737966971201641450631714403877102339017708169559137537981675507311879168762192134767016433934900549273646909683581016380462291790172435459880884148415452171329912110333782531294603048028255803101354491976220989843125178897592125460731491358153860351008207052322213233571339535418536336220124005343040115619870864722177371219468636744442489969614942681781628265539940019618946258277633328864830908118723498921269129961046013620330980718843268863026565629568745075045327583372197957724191732794408451771752976440704186331039286595097670020521057459590780060941774307968428326834307608635443433855984208008249073189985650766598049354480466581018250843400560556913926348444671778564073230763104169540521235029305006901121180220638222311261450941120972683263205773501990804344238538738308271545351467372390467008223009814839227399039493304727357954739270701773876223799091033132657427457877619349717610412193007709602410171861086342249130613247460322701154733044137357114582165470588946422778727097959182214686911054704280340038547983654541584360208656748366482844159789783230929745305763632448973249693200229309584545686468476914153477101430812060959513478441109836188354835158146488950185697390622819289221171711991742406653484607003357487552703016068031441482557395618134785724796741243635131406101959851364789411345728334704002491752477870724345771962874944886144554365741900895496110156839468369848503703944224864981235001204758941326729024929917796424412075016450739089411223634971397952222968955990837090610679192602812516842786867690063196332617791338932617965704545542987672885190148908356744752456286596433802948107341062512967248694761293914409527948500674809189581919732884991382262361857348170654905611365298286730129576501145918092636337588525981118826298032123080424011296893309863375985864167595477379598676531088087482753593564192772966513468073432221245757301090446447702421978259983044481151305234685248098614657818871875846181465161902569950425364405759966069054500447574141401149805374827304622301228134694538086283135111543426283803501818930885964333079957410667364971829570197105941871018902440477704223182090583069142183474712582751436530789573670671611041168891974154473169414922372714416391281684366096321150717548097827589601457097088733180194047640095385735260506276533002807269043968319152423323893755314324412272633458418552331889071375662612800588899272858892363349458700161192447281478085080783606118027038073097611845466534832265022315964912751139578599208531653081444394961320916076797442485739021019717323477018683133836748978015620978005527187375320470298991319705865648459515995615569098633407335521083785639722279372282904483102079020092597027185043254064639649295764604384651162880637536754009108258694254343964662022775488297729871077671803517684372167360148406475013316813814400811586892548685650825385585990485211000822672051624529430904892022531058049165440155110402771049557904577136100723108497925609910050020546060844992457842028346116819160210447196675226888027438472776534247586406463562867211014003814726709969478259559859509583090751636738443523332419434909603534404603532886544881105815245639905621548503741442269527141501605192067645197060745197478958466211342299371896646503436385654024125148328848920253258621389322757987726683197331567717611294046757655950814436767810649513087255707797374502255249749828078266360587347496215169527480886921440620740042287123885190038408359100638409360154325974905881023362881829859794542912221041199519914267727215193746216664453986454364267448278778692749172718588022664918227291688822585402043545546847309114466037943232042705784850008234231398329591662031514705779157349858450198371168388538028477813542440877833945725035079111023078842132697507619166027821513780071512874921016237788087886099933649179914777667017039735087774713702798407571100034019919948898113837832274173390469582176554543290982507365751270075165425291196311786027244943166182638239247470683696350011804371412816483771199021645650180335257276562253281787519349795093055657270903181573839683928859309938607900130193198872003476621605472159951007045567725751396671157137309562449131542529857762575413697483015702822570374950904650724128169486027329038271096387286350472749829121436251725004218496064557582399192882665447034801050812212610821811911456742875937300827898122781098577690535504553174592458019165733785342247305694909171075219149648511474554806197573545856442605939667060028189241356955810946019400900476611489519496259584044695115483619394211604598622326615238473938541251139412748060296406072124162188703430615302727319284067436967502716627269881671496113469064476760721542471650603527177522436541045032320847708939530021928951745748215006333941351761975474037432173814126691393487901075017564242701543845469514113978102558189967202818577807546720270018447613710673670389234311695008878460635021428749986319548436228646588322819655446040413703064514986472037062208645800701704244188040545128750687712760528726977581889713012834111533668368632797716453831037012492007516446052735846567889635906722752184244303441502166201961103545661055719499558401586946172171290516707109815829391154941890227623292052542232688067747465825957596137586399345216783252876825841921715619951198492934272847126257920608601916921215074025900966074921323100632772562565543488624485125116425181178231348100066199848520566521333609861306839673395976980996627740355204481484032622656926965781815338847622707711892363581915728621433445553899986255755474830607230793759331945788030808453245332811531329067481526238192647298121289411994794061722152779595755743791776870871040817516338377805576113605106115783445039855694820461691865118698013639578831167103549675587871947602647258310344909153964801757421581480187885328167112933574110751542493242024407682451293449871146061250951159843070373921706164928637741552996483730620845507709987205436791197497644035243886366987880393288491141170817654600322494193927034838692551208719762858285178105267123239597569116789074847586591069758930571739802141086420962918065819396424236135872579049871565708388183379692998419192688414937253850249636871786628004884979042791883993983177277274277374101983982790029568783553515108845925384095646616959762009565942061503656919109854061022557287508586499801773161165578197622137323599564088147806417903769125879949636155582906010266669734842477194889815891900733716293857714572813180361994246971899872435890808125772370622407348874249096873852134111820192495675947281415466982373869855810825686326901784228638615331487380589345206033734688416201499344723378460620718202126610507711379103003332945860152068047926025279013256417065983376368937560855416793234542205066348274324471693719715026317176406195602847900479751938130166568654754297792310710997642963248611944720876363416950128579543243302795977965236724713627226169888953512411612007637502456158466248260566157337017221850456205634697039052013304075323506597387760422312436215529656173616284457428742931605729558976105480971487856108295947135903241929242641195534448584975748134049748187038623285627507994028247381937639219685098367557343002802906926380769123339654315394147683183144914346607940364077481956569701811798075794724668217899839161064625749024068075646069361859096368414992291494049977587537276299652574467649889608455640308831478801121339177914410098673302478777411265602310621221149402780523566749732754794966506088078249446731912811754417476002793129915444921989458163339819670677635822586812848427981902418903902487159520197689675240519473026647648616521738626633432799006182456167859886058316184390685873003652182642883101239104604758915507961343481475096480262435664405268510417167505660689834131878081692548552976048350367271298011289624201667889813938380629253319090947406138023200840495983158682904737536692245976396646481237247964102136714634708807588318388850004799258361668298129776086025164895699840714382240990562899842144500963513401750299457986053109832633039397029794446069497688801269552083874023277320575652553204695822234142190614420121810100754315096390805928072480510543313875254025633505642337349709132189440242565382058350561967648445555760324898384007599050416073927131077764028030098158859767802476809339574793910544186411036983384804365502578968204338431611998936682270042641504288491021859932625181131969981475718418889678250832826646675797762656865434388011649094205668878725833258934120285821875610141167703971105448304738474713644968422445066366028119641191520095273391363274516013667184670105166143255543968085252676335698746423045496639978480800778588386238973893393676156223368737574554329581202790992250062982640494276008222934329196579930524470013759824453946214610797989748312372378841356477857382378927577905491134761085352761790377618102686302048580099968791405785388775630740272005926412603538107051243722300764828054387530409713937253179857623155888168134694132899362905964595173997176048195850627736953985619667870729357072921177479708548048347973890400477013492056905346117536323900991380435975663428243873103108608931639193273959022112351600611472530145767438488103603532699745816856387296186357749125463715113177207776570486104656856121305926818597340520207536019267405127353538918750103069590140597784091392585366858813056914188145563691989954512896870701422996636132293063189694463406957626132015507415830030282975580483846131915830560188001517569877222302513136130639844311999611178256971334979554329251269229945165813530391698899388183811785838935421371138370325605146529424649300266961220245590137961032859856129864126299041747141916788594184502303188629813280528666923484003491831612752726265309079259805802201072184952168805269111770761563268792217946733321107438754920116758696554782287202969523939939083287522078722745931005330938001349571543224681971371124662604700926209320629478458028457131329899960832666360863650974045903330792681090516657481682057972154935099099573565739041161977081553855067869852331860133641294157865301705851160018066772476461596680317839051986920820836058572345884646258879290054720479173354365380084605927574645104994690547605303041892876501206383278242409728153909418148142531534853108042401064664372225240431219212825026289341573907812103048141234473475264989990631958048324293607997952609827165910535413556684945732856114106822137103087710528262785427204912400516881442158525481114079843518410004307164958941217990091220165401309374279006944505249658302023195802207360800022450373917886862721091755231067669645027090712127430257785369933897501111856252099134171947800905174837825345065513261730568787414535678452835120038563851647495643194793677891553191399326994107625293782818305316307882267387665672569438949217731731284471150688948146353944174688069443370946035129967619897465166307583337150715125253905832881478480053771228479259089542722022691374216622214004641687263525865044369496574980411500685699393973774715995233956344216007036106229619174434431726539426218515606607129766051615304584477933785968427958422779617599234516105885913779098520768964306956674413787611402911057637920554001252135978316284576780512928945292891421583816386142999551289073027126332975882050692000105373432828083177151271174539387857881960035999852954099139406697175305498394957836096815360474596198539772422289002171127891711469872585171012779922752598171901104110570736376078999728182365219808185736993752954958862369809155522319628698789915710089852308776356607401810461749473203270426224169506707732183272247170071600410077644452781401174654410802713498080539506803014931029413468335459622389431530623483253099041061425540263862356933681438509827578100381604056534429906268820880260447857717576396489119915643144182719853742765630592464493023501914943754575971696328534639563835820835137674289882578909394955923271896310154140227896407975946177881189517333700331313327860812378748152738256844438053205946444547329947178690787444368759879881331654801850051661488151431247949000252168933048759334508436803772073473921595684648534697129109770018063977909413797087309860419920208632254758970892499640360453152735826734156691127156470076111096627431782328150085208465437639672837677270440259430810841066678790326436436740722086882525448856541235119273113759099772240110753294668234363447507862399106027108395299071876673761646303124026783064499170652669348476291125094414906703886485111169643158763762616954785753690288523859363314676429621195274366370401913832513301765964586653004735366405524474287703910108221319331681002143736343282530263826936931265910036165143018114315097008901673783415677879107808741988918861920870591099832336185648801453198469665395538102743832358494538931888533672830918621416218979835953538610044493769040057264965367027454099688539606291086384505552046410042210790582765756276536527213004931313379192899554153103662230889836054645073362679568532642030726576219609700690015993877747702884856429321970989204277116448545576051549718626556464561655769781065850034498721209180582059979432563673333416787214346608046403014208904143501843443928992216732354130888490975413122029813787411850775117678993640211828687095586390839000641477168288046884408251717098561046292570090836103642081102791553140968286131975594392770193464174866885188701858501476794878757110721554272567498933297276991949514166002272906820817008425999703470245965139670865328044440217302522654127307886238851167563600808616847017784434198055126838739365901413343457089119793172544643490534195781600926437573236210800100963985061280886512097509935168271334201925768716993226915475883409094317776791930601812636009100933622668770833604629263603351766170744793139029792415442634340231259327719934626452898483893161740640434407202268618855125455505977709352282680639840599930045586540764544657712852209075179705349268417815458461179381029333948169461349217462980362511913309471710373844851126078407735674853138224453828411246132660288832799091308933129824253778442460424817447802147701612562412977080884354219453225047506046298095649670490028861569364740575210492458025092247157233253023265645495430311488208635893626431487307984865082398069921654884893919939064338490016430218136669577631626644898874122027395019495000252243326916077840967642604149543500170077650104342643579881621293938320652169551617973458077056195887871759034035148883705102727781871002848357599282651033833127256902521658385937248458042963486009989062776977954047219914696557957911466073377472438660235846709000507375286100389542218032893254825368873482989193903358999662336772020413873159523979755387619890380183358736834125972762911109525955250007369507860249973064968898376925512979391478291016207030425968962778246523830342005567354660148461087920312068823447977673182708452344222815694366767305091312159129644126429842256650536036734039140177569662360667003889240623582941049719046692897243879399547843059382694637409217595204917612014874907628428446295937604409721826699617275394546323520350228689368945101502773875742539495276691794889579325786521708179710229031227038635729713706050379967299056205445038720917098277110169124884132267911096662282994838125972459592448177794167322310329750183838879454016961033542196156600503308900759536843530277837636785810709915392265426791576918978885816553567442927093005422693800058526280234916732396153317664047222772308959697588961726706899542661621848476212603015872987555933762199525641387807681811539090020130002269170058873261153875985887631914396636604640142497225514630337520018563560556654758540207199545238528241086546713652124075528197792924684630652355081713750779320789330475070237157066869374658721669390015038501519712717716827070323997796973369107336620122804230834508579794804981087878595737851739080491493771525509317780334669788167232341040026811319362210016846512578778028214327062647662807529696722592487216115528958181441623512688450152383276597264874624275247795511722396722615166785581808317944784520894988520952444091678275595829072535836148182996696799755519949787643210006075295627186875555794053739782690042205815052390150068115143298633040459227851967257874267059891250938774522549065569300691648331760818515529092214448682226634680159015816262364213896721749543167953963043433646755231819132182228342938266702804116076814425064333591301992884664480347192516837344868225254450379016928951622885255386925564547021741986727743135265769876888813672632684103434680873872379585150393830113089109199255987603496062032191634662672985447230237534160016171265641315844547012035496371737198934198067299812955202135043322428022468364006929602285118076323395337770370335396143716595181062391347511851325934318301137870904617282923789734140789771245064626652181940854273057378102724271725571907371998179922148226887470634342390259104251244305981845312140705756111021506689386975736874801783345630882927175259064378016090444657148678605676416591381605527749232966710956772354201125685029101560094435936088100484029121932181817674500606051325186522811011182773876031763889210987139330085757025685837240813564079832041706319917750297773983286569272480009465700202744787811433448412979044885648282950437678823198055447387501137669980928001786032492195351213206540318144866404459181297465980536078050411942498344579868763010071800119195138895309549983463029220728302295131243363183071621153251253467026904187191826544741493874861428108139065462175809362499092679370682453168202112174529551253592800229527006551274729424859398216845434491147892427965115481425532598756936127949650190797961571246885489415924621479513766763556487784473899794367331129360075107742488955632373369372040462060384912963723386949381286544511722541991972399508912377582553708346567134502114118726083132635632034279956464076071834698123050317628931608334913662582095229635429226905829628977716701079076675949721297639849712030799601851168137338846932036115410536383408882380191164804043894734847925629978119461454975014009059507634002417847329642371216887831281955539001796321401644580432862508671344313283035591857873053216716379083927221804488073403588321034513938526773726953566027661095394935134497116372224080572677909215714159536079356839267222642305554213518502560485957271931095779947928134941578408711103387307227343499035429568502299250191199498867874298180650055856016476885436248265851973086110216124056080815219874771009362704841382147644931413175525502831006578400124061422209026264850464942737849149580699015790005661769386076819569761949801301478643840700358470659486130853590121471080912528931034111279425014534986832500876346188523985487154651429674972360341926943657383855349350176951926775681927778047710524979902433191304554740613389382341789505084703795785115959829670352616947633145057122830809219600060627345694471614432776633871942521712953429316054665869091596419318048624601493257656223967915980723603816064760306704970600527121848046081902323118662542648843385888888503231223176440135412922282838925126544743673356930509323878832063571337550551520468710305454443750502789646814704682386005885904525069606643767918304250603825101925253698259686166286096946109008792614607029248517305954397825293253720874958886580668016971774566643179653535137369225863544648765245287412725256322253871197644111843621768026358316608173030506703014177660317490514444960224880486589449312541343512796020502519635988939078427645323328979180130524852932547728979004364178362084051810102025712873990247274843131274523051922210907280517843236159777792840216699214705488473573643090940831092606074299576197055225133352142312426202940970952169342146911626243216245341535415692666868975395718065315415769601938248730317927070280532057136998160814193279253087475515742806617403213360510904726113976466144063998094806398720797300536365741066799145505550112307875198569534560665639332673131108213084617497355788468563363057554449989650836278048391692197952737113811648201782087871856956783061004745373039399899031652123713180017326344189541847945257047706064515486096693804869501108920611363427196708400758517189194456234717318691400925551767645934780120944840643566021060979583213362810142678048571136434289294021647810257259387577711579161914264025894512123226161842826265593215110232446888384460324272224299466744404043623709081868207955459135606462157594037507919121158982609343360377737416123144623058456259765053183809980544406219209927053401406285457130528585030364748194119638785323884749688847950844988133270245395688871959761479637540379555182916733795153860824510976700294017059070713980607293010953673548504297711054480657711942914222687588432791922197286318531773120518021548918173946231637563847967506113499900413337719002134770941887665998402144234156396679896180552453906370359778970365135869111356927371809129129597157851466414870661587811333986826161466379564442280204141919350896329743449545538948760691744887565324186010461306333708049986725568028715406666140292012624158955169216242580068611686649781272416387766680926083272583222923426414978437293076563270964023415676110180817834442535898271687532382964833412484111608826109049421492387636053475541870943860113109553743430776419246283161800009384298968737250952550590591286878787602295616458315058276221466904765385689851945529129943764288520699284720188424384030309983778688736724484313022206397663015720710019550909783794066060869529866036584930641813743473772484208129458339727881093867487680598146675933736458325585705868752565080800394451078631733586088618179375746698986725395668299191674935742964743584382870642933151131276847491066667989017294463331456454908826694031328902495597780781808626746099858783989147031951505365621202911094700236863640947782513099270725586234610194559429941575151814457767130899674780961798827505712287326109070633939710457861109656118420437408473771872382676561450541968874205868460300469065675479963573842648831204253451884642799543137734571936714047220075163304693833602458351398102839948592885299947474157995878725504878584772545249014855044331645022381901838502828852183139540264709014902208200861341759387964037782169562819219059353306306120066453931154491802899073152229490984603084751553071615666139576760443196280741237482174561679749176612025035185662583318160505437059231973398810763303368610020070482604595328654688350916408393978963702954543248035459746060058978834314858010350322914761686786823524900934209217845468828259461859215310036949031815402454936199938269606109161477235833209385064214816881992265352517135410075184687485076248739568794291332457936415379233388207881968163564888373261998255128564247351074058022064574280135525729793432065104702378507233983114030841256218835970781048477416987165976229974532510288365325393088510355113358054220278598447919748907318921031851673840557797196535802376161841796425263510652588216605570914780299802996769991583049803632096834308012594532715533621070951433827370036349814532709680912497177955549360680278056025694426625810938820449237405407441660950642612644500943528420185089912769205956411497835847456453136795827462684094296322335975790667312951627725172601677365292966775671254734754635480937029263580101464047588728480953095587425135223303831869888535724461932145411794332492985843493357797532968799615141060131429939004462663533693180186325310829601650664395091272210761313710447215511132792368747398894918858137262981183142995226722381718540996280976101148747114757075383218055675026125683975354106148700712939165549578255227256883174882566105990086175136088137852525254377825509864328445610165402289626050730553498529759465071596165850674646291489424391712485213978208055720322699160074710139747152490365376034746424647346589177972256775081714805953936697282634775451063661201149881273728575215133865884623882844796850576663566599132214987060578893317870284119062493503754643588182074927339619849219651934874328384285422579856727564558846237246584031278492929535974182078946176066462814904720569725593495559476502757117325454523691747322620201954578562900929620742789408489700913007203243010903824836459187437899125436598002586127494333925216049393579521155196781059539255166872734506896124898909584148115941080221568769172667384040689111004657712422332436214153479972392497673157287376017241012310757449504747761573808018734049867121650816554761958626975698615019918925635315685062923757406983048658847624769281741605928215916241237760504174190577402675173017169074406566513812487188940952662633200554543268679544847262700885267624766963523305887537133015341817563432782514865279027598563689797946032970223736348570162324893219499378415589296465999081218217215030567845809307157614987801477206474734610448897911797044473821630876445891814472345587474883779939327469541815836402153490936997310631650747680195215625498625793040603771966149893941296744040305114540843878363048626115090001772216319611074130284080306309573295779822391742671516076837291333326424659100220742107358186438534319803363119060625387983790107356293921421057099927612628425616215766450754692378181221030805963181987381807455450045565354527738678227986513912657645282656044228436606420486005222352396867340236099760001296176543812230366752889094055997455891795004623318055545276072992883659123981819159206198860054274309662291049726632979758788437499193039440724563854667057323842924404690632824337352249410637771063664945249026739381186957036788070986061275196604142760991565196647750819351921146762407269375489720319634987330789888356133284773632231219524032335831491551692880201911758271226707185715042665683869931230215315815330557851931411852210670851686580595530855412309035874849574228611132523428338640170612946753326839043647258341463976036133685668946802427815111309077108335273990341653860756105579705905305783899990182078204505837691540784897357946076839671630886431118701021552913696496569388289239741187695839192986113506914534437317252130755691854904006726570480363403016189891458162832894705070493818676078943062035137690545687876594113414629883329744303539090515493346013872161013918394672056000505255013425653004633710420572373461291535526517964950653839915652502451563978382053188513232249333413024220500504436146123187576104000196880423863998352455480709165855703038388122357214735922221644232155798928535225640175858159017023168594117666892789073561115993373331989318517530552794916596021158225196633104415847320639363686079280414576605874831328616767698446969112947518389608325456254797194946484584891617687919435660886460535637979112884094182638314796499466052609369462462443603965347505578292939721758432962570841753102846781630336048033518507648090787216586051198713591026147003954651305067984335700016339284968714853071180102164295965372852169335104126678079819060890468171651228793777325025847046263464896858880447391244261714649339030279191139181339689463860944326216108054002617435799830176189104739572407792283702534828563287038174158658911879083775205704906380409181620878335003376749717809083558757478567121241902981653144827376544686922074127785676697089341912884101165831362281685485462585922473880153588888892629141388381712541938457511990778808659625800853022231441379640371362524234803521878806119773714166448052023798485594411986702313478668447413569244379846497333308444821790627314038242463589620985920387630105987267988355779699816305632513811514844015482639295704125802755934698797327437949175671035071852559614829356781365155279382738631392263934691357115364873820521367536752797547718515773252171354717726953146240328202247584953525954656765747648053204189984395743817905515500996464366360990619455688337575935983916744655605205627755703907092502169549369548277181800259917960627768441116366770815427029005795394012576107951238098866484425914615869499868869679859963240558947650530773559250282881343268573478738699751217589920006826327695882159290725236864442701491193151025228742211671607086752437412246815521799130427523214818737621334723076856092079192075334218586980609860825485589800559701880900974887286663485435326566453589466746713113251266945819393223399738959309259567168886038219054989068271383749974724827147141252247781685036329949286066346101117620773874442886787917414443338678667558380781911084243610046018570009383549504847718302624191541687176339781821248816536481452457910524409425673300106667526868451516949751701508671585414477625352711151838087118714888967597146299024008665329870506727189460530484243164589681416693766850218781136246885194262067010643624019498497769499753330993202356292666778451958029776240828706122540050053535089297219272487732157720876074294480005326804458740334906876583479092049609256844678497993023616034153331881363653166587558836638067961261388627042299908171964873413105693101869019888987214005372142306541747060467709656922445920701883254985387816295745267110800042123866230361935966344202367069844347440230843137672986188256696604138952203680487254993097074897224604533475257235806955272475413452118190825747444959271460630566818834514340895900651978991247501530086506202815224490314267669698045757144176937321043560871966052123101157053470148136301419749873241252329690493653800968867593822687995215315329229762999411947233228178173802017797106966045785118619011689992234924318302821629155107228759046193069947274989700914080163572905083303757605454595540369033953351621908336153992993972207366176865454285121877949893576997332858945212435258011608493878787425638893585085096487737107586013296613735316220975163826317864911845565722758370589625914623253349450436497138262965966655949351973322147488899775264114795857666791827871059959417310219783116733500843691865817148281159302020186419914296035692052905238974238689064017202454872973763306415225167498823739867468680168984490816491368770014216002678894560573188489808662856593723998363162717460093584295584456562877348526698022830326905980421576881227113682838622399321541472888474748189527038222510933118531136710029483874411004193971608049858833588843318301798979216253746169407341529385694915510899264909078513763946511569440436154401507930919279487516586530557525778847760979823927676889601173739490069009662975466495999046055948078652354247876059283550931648022419721153723162994525899771835359798904526530520358641017769606187852069871679948836869863087628785765864492441452306868289787246257070703074680151164979649813095521022257349317159054867519655767467126688585461381462917116513152361749924965625347546076340451253135924130471044059621497562804785202041446714478123679657922370248370709161612224883111579557545548826031210635649631294270301178548744442921391918830452431883418438851962601398530263889545806380113956406992207753301837444722847446795745776657074253658856709674242704316676277423088083837605815435993873905020985524880536735827159467528994408290461019272615992378460395680263369551342768700125484511416467846908011272459377217959064415636821096214605288021178757606212807926679586077644437750790530678394445025026935571412050989598630441495387074882963931696712169278301026996446631259274600407965154635990996852130270892434551782063383025121171031974755405736794736153822384052453345581501487931424836331564521173226701581555029812853404806921655257964078481957912880381768013489006775567931249897105853819512001452404063491878019865643915909158346788738582944804511001689101276442724324802694356563805515604030760848367594401180781438726556774767370080829810294784324374405892675097244175921923363752308923873838972553497342179877554064586339296664947265666906514196591457968856318524110914464104189604507373397265230911413931440534000716358877350225514957188869143838719003595070707700768866253591121186440393860628005434260913281585659492179530620822108125832959680749205194353093281314248299188045722582287333233545390151900817478278224519769340919932622055252333728762720010844825904376233703658358598226946231603919911203451632273886128432125324423028637097076081618754256042442609776447656538013272321718007865286605591818675120087664105494049125781218078130788705907953829498927575608538795421421127708319655115189278536042601825518130618148106095475858982092229431867183195546431668365604366278296761407822228984430725260582960349566105050717387896220202019280463376959811171078951555165148373695750403810883215290054428967037753405726784919138489352589059689288774652416995077782787119533676785624176309674693187923094517869055674991320013496349577972135368497250639594357687160956179432812112595747308345686156445185757461492296134776318802670694942136473317580452234943057907126667231218309322009935036870934907933846005979543132021436025392155719535880294029086088470864295744032276664174501603794185596376906440315117787650964226821870644642931892187487362854332643285133821851568236828093246570484704218581134618272759705104979107549564277640570424348638404093031010590557371137321990472553293162089116026376175714456328084260722679457903704667826013294277616579696148193399863730495862439730381853343557566197914948087431036856708663586986868681558309118383281234941941824936751886403170826622872649434913376859908084405065482784541471388719356666437603443467561224921697709168592337622208792077798213211239852496526081030000891045788223566764881220044003652651683491017146392566139806487406645997948659191220019567540505663538651039653829510642130870879851836335739790474316489058800485661799158350045386700227479336080482878288416012463503495189563384154837650491620372669022474385862169466019085185542775513976263041830574913871424590321722623269192559121558677489022754850895841045577418138155251635475131143864169746700411710683071856874931330862006479759278736762919456628284753621687836986085126720918677310221750098737114311365354462109425111444854869193379850717101722783868303364558644479922301805507191541671884619095847759792875394074450435549754535949947946292680050541322873965667611442571067880941727211460819860643142466350010997039922372831742239746284630960013004940789866540405033155263393903943394828059999578351715780097280953767355832844067736010742269274158875926248912985125891813229868621601221227545367407423912406629557901243113466598861457242277090980504110137756133816687940659069708077908002934421758402145476767072306122314048642641160355233964556096567839069345692436320558750100023793694235700145940244929192721568578971880971804170329666767189983660764543249283118809691015876160428041550443509626267456602964739708725650147053056797577131166705701931334850434193782926400214391947499962450054380444245213684979464554506280152547359345854161668409662318878791401469969762533524724569603572127887217662891860653658307347106642428236035495628096832949054433129291261457971666024640192776606568152848235613662658245649365901521029136325185195715108174812352037999590463701502330570661403433705802530959968163152340300746829111775245329676384518149811673566654450393866770099241806300148968579721710737033900637695076216706907400142382256751458457216391176715726771904374901941468295431727157813129452923900478452131202428750959565642201886804931440678056663051029493583662417438432825133848284189704361796568952236609983343513749949611789945450542183622941653652223008328766032430178190826125777575564612875006441466629780825262440953809714053499373801983732444557074106886178741223294919450693037599114802394908749020462186752298212328533946432165008908076908032139421323535913887416608060927830692480218424417509590682447612735468951498656146742285227870306865651004294324169978412650858623423141730034575343229093040060830996844092726929659534521522670247693071067271694812177499542487546888864641680204686370162932520600919069074048197533118565824356197986049759948680504314223301003169130963690436838995723221716173223305607329920143790520164141990319295848477358168510696072638496514741343440414602493860328854010476751770317042485935528223762332486820424898009692776840048401594146505517036481851708608127721866801131829361379958711410063144700785790340501667411247914715404212678332158134680486865528171190780295224041722642414474943318725739363450537293155575023217982671605552787505489251900207703412862109484163032137121285452587827078811844238300479607080297246941226639536630845808134930358737602010477478808744549774977373205856473052389486317630244925458724708378410714052341634454525558279949772679684496956316935872057302434019806469798285403868091078103642843553947464751399161518709382628094562220866757127467611307483659558749406223763170985266805272033849870137574389721856688695956639958142669831145487903057686634550474428669329944971418384909266673273944165497053254125206760955643762033004968057830236084864144626653601019150438852823174531370629281924558571462636710457879896692990296690650986764963872976523912697901233640693402541006904513105034349548307933312893295286788447777512585634071108345175446058495675519602190011578681938964249911706529108887683837123057572424757760380417280219883546435809463972828454968331819019949645231605390339263950762420901105587035909984015491277059570403034967137634818101384670274204348892377454723742007815766934043987684281517552950812251358627762413328158556286358265731535985725718159114883194056118857970431372173491874132341323471232254418075819661276578575339355479614822335791156978028683459355034159625067958590422195511747179261038761300601093848859131833368441164403362684402027166133295864487819997243807161045955685872976827396507688068793335311238219445041170661675145958518389911488595866689388881250233834355036635907108228022418449560787408226327327327256960810792962707975320751621764191680287513818307282124689255925206527737728331313509653472665291849256748478347439202577215816463128878485715864170798259307766375331854101589427435402600281617524251599902761654312275763287026594727118971814721731480230683993867638843309835288703872512237814987495843921043045941205940367729577167154830252999569372806807812798129349073769507460986113176702742977644180859516046183002478133518686716332398520295122935122698340794076273464092543866239662226429079580447738727847561226574048944293518255665595036257455584315557388667792912635898604388974377578374328684688687903870348932702514097997467574566202055421479111886254053438139399418140036794776223640762220304224895673399970689466348594677471584185568269791188850998723281461583086888383674600363566084359732667394000225924238580539087604249003291576680738600817498023999529737585340558950883867096946812519014760945085902174334322243487168712937191667605481971249260580352098917418409586651052794965638165856465172902654807711169133877862253669531778308574453713198873018788846289819750816390225653895045609910530069349906951112768510313639192393012034993720623153239098077244780468565039717466195458339775897319215240462335920976491255568184532344221876722469119204261361632555094435142721655437022359322760684512018963487802704177740235791428615139458428183197173200151221004333731828461116976003917108953815214908409489426818902375678044152316461641475722569408197074305001369113724428923652926155649926707382310816608613533175997065746026073984210241344849494298718630176727986030262069523739522959469559100602167026801143374679264297457465744338387258623593304914484593648352591120126643015479490312829132478621792590866045584891005360022496911603607522346000329277011759448275882797890115766021526155388784285263648788529321711243834191733663348462958001209583288084496997762191778960127430605603913871169770345376758917943303509244310007771931139789897322282387708754531969561986974669650945592568725813479332273842892867631924151169087132709116615964831121331747062989142537828621737503392466794980645622978364513542581609927285500926599638399310676799971413301536918525207807790904955493661154535082842914109167842347749114343401878648151735035551547819641173333109475467769569415639759228224513044089046330614582732072625849115934951002976890226855133857739701418820512159387187874782569438962299320131579076036105625130243914935638256843809875049659885552278520591381672830432113703728964237098596749497048661934511289600332965085948683101778790329360365433915398446631110905416022449107427831480023185773086569952482656428058200109898853686586159613743594928774197294177352162591924811830838420293651671976677467398713514594123004654553187474871644052782934018550145255727381596330278535362809102330651065396525432254381557504360981379803143013513463444399695912887522643915345117121929942552744174947279858219110438849058719478608056625942617828925902815643531983295555113588965653833876356066291971558417299332041972563668707586064452427664140964683070039135926670636927050577030712236352600721484917254375218593957064633453012410738633617850622866764365188214646961359963553649953809748437836232318378561219647865612841172195816199357222707239399117953178035020941940521006381189077163176784047349594041762227210467321753069606337760917305176503810826150532198707840006875927100269954850419928860210085964803870130237532237499033109728009461290172070949815133583111825179096217644777206579303374690514421442603620472762146172168563259450107117524770068226611517026622679797017369277830094633047571517651006312249753754874537170179380096696138487055288133896138148119300942707151044536599032076086955719313720235921677432305573392403300928993047728673345921670906563553424248216457292994767446014828005867042447426800384243298392716070781727537710076633054045222030424126025176943597442073018219963302373338288879768332510862842084186921339217216057337105923997556391532022919233790459126805931641482314929259875482512653553419597461198150464323788960381275551649220595766227008713985464998768502968419685316829884472188988125597294931116987527990778644518351792132231005422876165607421170800226142715382834244932683881103339766563041253762855073950583924044766403589411596224007769123188223859180953765556521469470242569683950519176574047430551486575458430011781157289593635205365281800277002179931144513434184499292426764571148055001467583781313734261949329811708868964132019834738728861111774035893135444349172541175348753465539714368351093484177382830769396312209907320273637294044422731060321158366426303167648568075098574579228793632362527706365717269798580315176000272020523501252202810516410727337899286581611952626126976109482343324523086504050539852883133580386608507638727179508810912921758852482103772282551562875135838188273161295324634528114381207479969366935070151726036482711056352213476703326038307922042563800843514343304645894842089195659473674847702106973612318675123673250635892732688654146110786104189154537812281407763490179364573477138208092734855396585489384523573367854629038103827421920128652200311697394294415314158664380922075821105913322482248438666434933974455872359685160809761231178247651835543826881504634772826658405522602742032423216848972736077796311948022961011657407403921819477223320988019085618108908927693922356836906171704531966556686347762359000903494620035797265143598362709140994918142650542326586843245779365955342828889302570489508401667659058733774536881732685583653775442332174689095655492559892740352627658814918677656401993067240131744160566092003481091386907941210703339646811159710544061510607447306452908019975720945454012260714238584849718943277913231776199082922613081818056182693250311829869461345663407335700939488116393734191285315419465099885658049740144007883086666070589708458443489046075676374229333687394737593971051967959719558028383692703098177816770002258392293957473507970757122859551972703690924553569530584537621256172173449821014117330863720418499363390998557947370342170453460493491605975554173037860033300992196106476174291237976102081846525262385733117223983334099779393936060265215274511641922954970067157671173188000370563699793683009685032034666321329310797478262676652487651025799736131838106386845223227685338869730158703729553375426832325961436259638747350643647966457144315584164518135942827273198540023323261952996089977972557593811017210001150061605341289530335966555232205238725155039480650485037032041265582581994901558101101240936156088496724232868479477500626915272396199486413303195074378474900927740198956209380978381592611242849240281073402438957018744823823082773361551114369361111972063677845807047068881176000761344287408229142071424149263349542382540012682430626980855355106793480540041963439128634523442746860376902737424438652584087211954929034291765718231937572793808438005351874041691942157478283858161696839476295940077787981113954976466344229740911390947126632012223374375356582212529752554661046054821847230948523920398943971984862100298230550003074889590135128193003827204079170258622868765385522894007164368238427175106437923802312283316549693663861109804474116659090122430119738909459893441264016235317657232199263358401832270504723398569251942458641694874391435559247547403548460523906282827712689876689294444917046259555138074319761905640442464366980371311942530182629482443819780614447674085781626110401999251900747340055848668680693787762591444595342828206289661858341221042417246460459438601361473355097928598678258753355241148820915863403793090768967314329761976799985668337231518563380474056114991981161463974128450549396291148778718911784828442907400985496694923548414033541669669415960436140223123537512199526511251267160164067736144316203772904015825017385532548000143177771244336577425745856446072283631015595174786306707253644502398247922392412100232717858524039582834762008408543657591818145897946523784918770585020606846295847345927128288912997735937311290408822191197561080982807432007322228737262000549416311418589428854559853399880161754925229970588252763780531996392645615434838627554549105415519850506187264695191691518036569356508894921016715918104230986662360942768717581356596112154980610332648701133334945275956682880764735583000355199062141002764072642999259918973789547757703495890289889276518544098457490018349899509481353327871434076285703520452103073546912261992110200658022278716756819790296263476217681360855631790810084962178054743877194187149223999605524651450768419762323639960534558835361293199178197508403577549353521303226344204950763764573287456316237894112572748698420213410968420604159002496580367901645715461393907171446796760785247171048000745063788120157675556402123711811319170925314105386948305821979157102432898044484925491484392810640234148629257014551652801634978937934254376278825247750651652177229366938546526920202891661084869392088484565869390203847992863622155582033870733484655297819309513298547881209577918983138684625061926828264842524450434621614789848854596957010568482416877727745424940056261226230643226666663458681823108056851711788299111699468339039042507844793057229249278128225939063195918620130442871064700078811226833568708389249484095089426984319417828936781090364726563186301276894808617158275905119564179094053307319216093754479436346286740836127690464187658904620421952454759557977280686743942775503974603415274900827272164441275800212838847091183948531748060643526688285256716172461757268389083866788610781651250875281407066495799757292358344773793918528847124758004700850719681050197219824404104853459669549690494624747307735054458274932528971865635817807162625261040168605925791355461509433549536813200143548251586051251832227319093632003615712656298626459492048285876671864127009781384872038304846144877997979237009868622016358066249702422658014773991437174316683435943880677475828410837866837005687162615391921347414745431447887667798872244888332899923556477913671532842043668724379642566537684562972758523592655629432106427877662145772526583214552846542612696169014256614316694229763375511516908923809136322523846923101585120693719248869087928077395760324298565142192263968240712221847289538226693239949423001547740020452394649069152887108951586445030821474511578575033600049570465795128427580949085847449551773237049244300667568378225363327859964758683822782832272672697752124080998207337420564368584519342087696129650447398746944139538963848286573265022746205127743387363488661067373389943977316653552506058080046521204022083906335262589003596127592614671836845268222874073297268783778356501637742104868959905803289172872962280999318047204952355094771991828784389058701969039264485052282366431688635038564117437080910708512480090425212588452289219982535722760041460014262134473856549364895485772931520608521603066995221317634263891469353299940122591738360574973901291615363653338449870256475825984905776467358311079215325334390762953619759486482533176219768046908854650649257871047294967945378851360607569320847638430811196422226691538851335043311631983707162420950215831438995552839804866197680278236801089404335956582136910956823926067696242256961583019619977086150831988707836547001129080855346761725392791173779819461547471175461085775066376180880674498281272463888160103981955142239062002025316043351001436416466677983365684994838644442056291709384099119286158794408489994145259922725712414008106074811206933078760915093252694857637949784884889170826139698291538655005691560333239047552945034193351483232611544677307441813512290981590589566217807351236971846801975770873139462699230765269819022404077267796918869987856370409040429289959842222715177957365997969508491553558813033715747445650393289324860463531023792967547887501023874373381605457405203865475827314680070583885496222103349359673583954079509482755744572174879699771694851048618695209428326076262740899667003347369060054593100316225679963781890629805666419166625190963557308065441280888120854858413889705775214755281342278174396670278500351235256309663902778574439238967918981628354681301063810455409081817696701703708029662803691918470980015008373262959535190387451492373635340520013293264522736949126143822253913303630002252619632115919410753007912183188513434795518967838631778843858881817215279834803647932797569281308172489377986908932643000769011425167737737537176332370660919963593974539980978351054544204145828248066434624208239474980132144456880950319533323898440648615827163509630871572533771395191578703423527456466287337204046627949504354251720271605207403504474873752926038298173242142644572227488728493819379556165892217863474141578283078306205045966289337314658957682609684043526991988791413827442396317756464964918317147143186768358800180024140501461082914053021777803942264080340225797645590856465179752597509093983607298745801902485322193634352082117211985857250499420086191775069832054159782182061619720507222841790894111124482429212847621149600494498359481842451822672477563300047944460728886141489955425009651723057609574452022500503008066270103952075822404814294015787936181219862266449586134559796041081787288148076986064394524303395492383732752128081890063798658750517346937081573079797011822213330727332813961809700977565607234155497525721553841638654251189838876101028120988221896452718612500624715523314367414199226985544014764825125584122013248763058921457250929353541128069021282640537143585666028000856608720309275231693108904650661921651166307819721337323373016592016212685664982397064469383215122714069202526748379196843728395384578204030614408467896902585777956291944113638737468668723475129006462779414952416885496464021253425376227060341866298209489853561762894869836258947005254782095522634177559522154685963911199093435102423094795231198347867080190176883115166954719677670030928986670671661209049750622238420345848638432806045547730967493719458825333096639347293186721127777957481782084593811791898193981723165345977200176206535512946663813705991149012546013348142576121230021191550982635397992423504262244412830069784965777824908940238698701812512341603676448270869735008919424241221382663864049345823983191338508153467804248228224013123983152844427230533453530747959063381291759778645827958796023493303850206643009512860825662587038310994956916878178426847473189130472768818671629147246044376105629487433291054630453325751102115111931149802879334247529113393653321933139676993842064734268382472472297895433835214900140328913182133861051011801300247039653810332552727143970232122898220893305844753600657547441606136554921800333464664049385977381323004147108205193026170846985126394480068757175827046304737010617939086458981894544988389748097979350468990608167038168181971998954147647817820820901873278845491029081102451115760201890965268766549027654760294679705423750648143600376864061619836337736512983210796449348428824503058726282602275411389650072854475674123122406039975851649472476445221180692747993254615343514164368666849342856402535200062928189616512587235916774374632362773201065073490568901356766737665740076371420238283787892024703811997136124298973577552479300262861101912315139011868931696238120446511075749688065209539858246468055808774106200223486684518319691853481899155702322605041475708717679453749967835159811944069483337647399237251774431355564686050261247959544399811514861791561156018333524943089961035601920627561242467143732524551020179163338947678583857702097198834125770111292715078793095190578468253439420657147584192352321593609350243103459465973763524492671375447401289245022589574868375347747593486994582079102657063530573814825525110735287834594508018833459184178426039244357536687174864818835999962616469345116789658491621823851363525632145444711970728203829896028970239586298468898987559153787291171986559647608279035208057378139215336866413502681243744572699667309393652687809559462986302507341779371654968350862994943553938411256092972256840078282871074372478008068954259684847411774147265683111625424303256441448087978632502057251677704131037310930344381131794717215748628729406702764211071739421974509376843409196894517636367345084275549147588157039921316039836262766621445147925980562737642324135917636213859522356910887737963076455596853248748958747606457354190628039801505510441043879882235680142843005582172728661475952729831747899082204157043317107259316153713086106528777276164026991573270587073504038167280813192667630254387131859729705150923393206385403436178581408593958472765816383397085791412040822007114900818207686243641636743407816209156986254425988341414984506839732991509312693906527263030341244096538578606254288135272231522260568481806199638689203004035445346363717260804687645661579751842833175181349847915039416465578057139673556797294630802193238701612478502924847556463815542574646506459663177598306775807955885393390176995564704395953614606719792870776806466238121708294256393291007758398715803729217065273160526769585072229274543052381783787293162444727497780538429392685688990507692362398496936028329983169776153818990748390536443840044587384831190429412440369679299954064048959544008698240981938176406071128456415177312441550735953622763579715979285884113400098986715283266838203721326349820607160974142575260448751013155627744687235880715348248622752895500410195282813202187907285235811754373818019052403302033372074948375187487736438455294336578883821115111154323834186589101751150922031136194584606547738217262637760120403349433746298146454015732751215926345965526207155658951381597478231746067938535813131454519570564774004787882227365259746468321720773739524286363630361578321525383613864502804563273924835131740430535950913285814321620971129561501141707563526295005173379372780186105628463691597876781867303758404624759836501296549283937564602425512057812350659101437187137609940573016069920639873819143440404479041159455841638418904340304656009893785185790549335140090141219794487483286205800369496956493610102163203894824975121492860592959137221703267300095608998862516241993480848400179656632550056627322453627089168832745263398869103023618692231345121478169871394680057750242060693390876696782355835414565270162500782501529700327415148424500523405872978717734056061973426535549192770380781296985706329889624915676909860131019081414400173404355182645187559525061100617244468373560784765499602146207551313570411861267385831768819299818816407359474115194055510707873790486443483926065730626513224158794028413402170123829966791900152940350743326025484100649241507663924430635391853193270179103093509584070232505849994507901287734931915656561127938781262267528791621326155441961071554438772738082298854666730971209869721185352054604331167695102520514583896382785390574579051889900901848965595155600460284025343058503474699068809358927042254468576766468138221796811617837941013440627883551060344079286803463431354855953264441863117363102531938195808721399260716403157079000417203274085208908249514214417039644411282623498438255256203387615381548649535132422542890330689520049003625250765026526746634620085122433744238013160722088741591890262001386962356233152328305437032562720609868360542947723805118342146784427818264383616438302337703520497770227440186983940410528957301132500678176774738965828240432800560510452184547646608563048824726128136469298344700944129594122157805993965619492828267020299274071882161095184546170860757822206287952780995473735231384342173533240876058756062964767021689149507784953206162700448870212255135622954693474048882378368188314010777087570815446227231979954930518752649679708095392507723695634287091427489737373297927433245573753129375856227840351883118929440497179196850468411299813315350927322330440416166778486370679727701493961928638030997046488499309263055099777864082937764326890411612359710680797923343120060265043036840907330619422827494549993586255665086100406188402963348510969076090000582954661115867519367498682490517464900584647395653092806549032779803881562123011144775317186635764425250133275542087193365135847024288773581459189812449643830764027696898092901887760492837649170486109795514183198986255333958826796497083731515617870312232248667681055212510265527528871525854168499862368731628940642687199403318749077323690922600640599236923405611925853854455580876883483603433857325265903543327770005964916873003670592835266049316152417032407838148921500882446639164326106836695750975543566553614942971777902199423273839915091842815519017007485804596452671988799648003334052622462394629466229569898744981658174967092853200822241578210898320728691642304311398637963279786513297815265963710775357680525546267913501740070317159141702528800865135026998620471432139552831269114497220328411784252839424589976083266719000232518499215238395116201466371562664399255761710265943487297062122170094566104100008371470464594078219722293238271254269440054062194922943852511369646067643693749048205850808040697703702916987389316019960665296729493643980400711984765803514969534852751825744329303720148798204445679824787595335772907726906462297111944490153504856940415616623459936759412590706874152588936336028349657981301015004412763417141015828289830212440827643473050650109213233468437394129753440701938488138389283593940665954804913381288875597617331681168289184991629152697685331013956929326922024394242922193211825588243029897211133058196775100420100453770405633852919568411082312884550211583768551446155835172899634094093891407702942903856699128526814519001619608611364513404413544894340107871155423145188485474215268953289446116446527251933132863862719581811871095105210950811052716800178935241965639244205773691007190486529037834077024368554732244999653590830470719040919421042691507460787149096577262270703865733330332783862751174611406087368390657496569898800121960357471219958280421562665528516447730900332664326147275637574726891628933497103066099629035773774478051014791768263610329864213043425635757660211615745853806385944317153474740770505344703217949325744518564337889794039859223547914373155310784613808460343120971893080253208860922453440105036830815416283694970066679816777079665199922808434192329172155076776837593968982453559440954020004239525372039427002422999518244409771211132908878028325779507382835903998890689410502550196627867256916336075746310656390252205359472465501687615622042444064293121799239659656189314770421215730200343600881776345267484945761637410884419136599658041739092026049735970364923786633365953395248039631058696061709019440719710974791935830883808826311226961831500543766101036018944340039502819687409178021201046759067218096694139000100629347892620139421097491792086164503348259586858648594930638864595416768663923960288614122696773898136156280266907711611259216999762979461322688498487402699159165785516055507213412547712033752566134304455546340533271277060024991211356786295352660238831670977219016076137525620442377766420006294168891498058981021433844531694943168664137353906956945898359449061425002799211266123219194562237138099990513089053451426278004945031440309598969132531516635174976989621128426432163372116021832072191071416000221629665476321277337583311871632156349015816654141447916553693707193564411520154798292381266149968028460010868266273105350188196915327885965441834506576713287537195916977818814597175205087412292233824188563612965874759295573717525273989037924733911793755320024322813884154336135999168288170551913224382631783163559735826320298181576631541466444385071540598213220965033517946623303241299737200966939715769316297866871511436350213459550878764538307118993303497786739694541560473387542301049033617478691999982745568968898773242861860176203415823860892067369348947393640902297709982429101965015928030224339748788228308998054575771227640538214544053629357426545863161841667341460221423151322037581604699067161646424811541643325652579355803942473431862246896187530737499057575957642304547292634556368447917553151817576583156063319150483257361151293961842423360790219063099019420894173388074228620100660991607368492835278985456124876035021147181895153733462800104893726108542514303643672726623340536459257886410242081375495638880419245857502289502728261237200596714631817200999301343467753373662608526208968618325187696422250528218586932776025086090285669112530051076606256708380498837685649468963961853512995396020272947138319413394218292625216974901799668896070290370313175001502536366157236609308764574258792506964256857080356234728069177172279282968914542210463082202168748991684403872372156922981073227713495372547392063557455724798222445497875321393427390726553548947377877039487174673427957176207784815647745997066132491190029906264071717254941772445580481163884521783461351808148469879595024946957640199057581137045491114104283706727552997306092920629514644381228195462736421619597748905537765403329346306698916642860767363777790127929861574664681877202868989860962423746674381553209169574828847270838648832105145698964927854217220196294981890425941180909731945319122082522681479047427598320656135691059747811775665572154605428760466317387013400339689912195615469577706018785081689021373067973220025177814364257044808817273361435891992634730030243292146209972461082397693894121204109774971738347861519768271879371504038660534155675568393585941414242019632684530441099829771447558116789522514729310274995395855766901581840326698137876157192060935140873123610057462265844499692153053530785668342749677844121315307033366164943246300848058891117427182300767776154160225271552743609484119346764224414724937530559253947778530736842519934107842930724879925544430167287500569267146621235517359483007900523075400744857496829512086223044057678707311755516621935264985794112107566012029188949138592644590058957532908611142861528648085462648421931162928871394769232408552399247789115517450500860064675787910772652172991585375562282696394609544407880648163114880150743063443320736527456873622100737104369045984674247748562999438444452823491453450579749610730212826874391069918801757945390620323260701747767369896216233169808521737335316984466258440697696993771569581997422528857751851842480329783606385413133948266538163557182459107932746778420360388286033873232540650511043814812479581290182159453226720353526622172640066650461917526002425606126920506032570358967353834115749737156716164327290670493378012914831407865158500336633430330961492394292035715487306626385995734047398643677066338075526982459579240970185216813621511919130323930000520061906286280698735056230655352420018811326803121930276202101488287246332932552003692710167722836816529239321383294313846003136824048738617424529382629185543775468723286225946036497151688210342635509951372003797247989021610875148952764420173814230285042647999145392229729222299934037315494498559931733070460269719515136699577054141873904897042672340917017662030449774132268335292072106915952804550459017582848181287604638092916520345103605596377193731249395015230659182541855525783774902111554982977257582139686126000660650292467527276958768015955621254059951817723422840324386134846669860118099563394093615919301132482072611162286953414371678617116436672462654927068527416969250686537823488354885111261044140453597407407432533332732649915919089865828680019562193873137079101918537316784308120986724794734845999096759105482403307537711771425899890523268888461466976077039130386183185772155372391747304464743465035725849473076800082733249705795510486761592926549880642120285240273665801858536310014061608982490873658535599457849795047298094378569355479083723264883845755423072515265290527679524385448545098225740891842494849511572961574082103545686058080240758499274838124078211117929709627315820314240519537277710232699769182445839553199386394696311852257928872007582381873715335917861781217248557349803636477239890967398339625672575129092786189844910467011793331870774685050730220218036014770187958974049409231560012306199012984743925742936476448173451710789953071006574703017710238745289774575147031470252839952146756975300908812394929252299161345330981306387616072002044219641404371207754908611245263111384912309706513546701113220265748471400525152307291761972165214559696363506200373046828456932518457971200055412699606200377683721018274792499727837659648160916118306920254583608506871776819274658631625309715292113447318498573393559057805212923766440836516287287961763404218971256127255714297972188716539041445843399128696869073558504916795834326721158336246844754643344834581129946104388131811603338810636617629696158908313218438512797388752103587195872883957595803131630932003070774116854807602072124426911020623270151066322406847515323102034936695078499750567546179675346120270065212592222127030689689262324694584856759590644004683481267053095603145784614698518049939357070440001920319831371846456782739880156461214320019229205212136155882294573283509994230350062752943684940829628410130956493756027119046412561402275682896305711183134112409710197684099305774156387915085878727626885258802682519693606727042242018493694827031370123628880502369141440199433872916408161642567730645683451073207307733727951472626291836776979602400974189412206162771466761859080095749941680918917867034645426383269016671296175036143247732704371099539663085644210828168309622579082657710010121794311528458517163903811159456822699500459304258515346122894450498021330333746259303711954658722360595336063381177576009306697273653961616879384462194312095368795827961123866492432408065538462098525186707309604303781438822637235490714066774427090343843170945907468046550977204824377851616747412304738590294258684974349014959141162341586097687533469870123336661951331150850269924310598301836650671509570658724744875029399359734292551984827586277347233141072454791003491205908992902628946320537315973021008380402384720254979628954372173642162634708404138664860875753885863542856474919395017625706845888247628469132128937713479375730600783354785034293422556325604783887252909327367156928114172298310448521802831680035145567886728512251654338518020270980944581366959793237353837268063724642111088384939564861885373984935923309300799493049790745221270126034079608202287049016294023911275503068213858577289149895717239006235482418268705150301062262235487198358599532471616521932869008743974061057234568805949466343504572590360942685403320374601855661572991157569246987364391059578545455794364811255174348461964251243821596609651513528131331487074025484761706592264838942266377406690995513323894317923752337811856044290571174832219995765016616209982528270788609903030371168343699115197156139061609065041115219428485290297807533186685127756181990932161717850688759138537241838584961179246349526040711553124221205748939297885006962133474019352101928031201624175196342871858255830542182772195877259434133805085788714003952514969510302370449001606262737062496159161047975750468956793955528791149519830742219394029338280594134911054728750109192544877323340228098015590282959787293928050713978146564080453611068371862761160252500992070611441364461223002273453681949378469888937470979650152395864404357273058901253780631038416186123753419654409730850290794906400998396550455405794309785736390398665307422596105378763072664699863863521795864652449269693199948013407173050181606898274421481102165423634055538843005507279135144937309547269741929195851714823299921754987497561664592624783014639947851797717645899377303550880125104402177748837533489523822863108680412447118075192051983668287072035482554911783594146327285278483025102680336541417369478257015857460939818479143497409171547561497844968068141493198353664138431320083168479153637953135045538896282342828635443122296601541214936760039630009215058739497211494083825733961153753680053183113148883500973694762737493925479976004201050765470646940529320957662832688668664855685128337431468517221985631309823577815724380628060401468170686983906442535922697010410555210911608585975561431237946321462361927652197727552305407706793467140505575154277622763225820976275040857455971333502879772937910135317628490092916746280383003356721874596534177612994942470892586252888038695761733059698355476706022183321349621948601618840800734517566628933503983744703764180184753943677001243304900927085826460697681312551711665320634967108950700759514315188963244653107104442537517072322994242661163945909902014060072850518192359521638404112006212745857409582139533611191289659818880159374432328071633038372926617916473192085333880527541156242306850019839640195680551639700232239521787082295943899224565784537300087411791417511404740029378717596589572658321631376268406612748372663959898646881912822849700600168103919274935473895978565847293398482356990578736463792995504543109628106408467610269481155980182675382771183779113539132087730344724249324447641887025275283010509556209665583273329500121326531354268492350892135516859659946161745320741301225206939517334253954566492843904004119169873172634093673175715385910958158303854670251284299177551967700133306538223207770479135175718837429177574295960851344620091179587319496655045088066781410018763863068263998833438721550423176179545214075989327995656488247159767728231769026833930109575292718723662451238383362824183622635531579817850540891202375381753663914323983145056534736300350571748673374205662973022667105159403048282864658704389320740794581338128185169135687646046788272354656609506802412802318117028523752707980892094346362496145814434932499008297183456711483875928378034339610096065895213213382987155339912554331825473572187061383607215777183262378877583443745251068223831497723125753367269172058409615025326492838948071129529622107098559224471575001967562967812198510325889898396806715732572202398322385569138468578802508768273503712871756638750790757038827168963482001102545230717757278165834297999810835398294278029824781339476982404657477228824497666951588630002766083590379813547772198422740631458598718409971713496979351894800692977597250294839426357730974723067991222142541789783740006205239868238109404054026649860212125741458626981396531211477986758925007159257594951371323287130816230660656054509688179353241946500133872754189843647472733612960660899871533850636103545701447666213308646411436560665590489555685883612633469883726606219462802398409400098782977069107537905269541615877094122772845825676839465375914598407663535342342869428880881075414386871030429376747798193991378087510403198118683983027459480108072821491230998752655926764112281284881330555807602455355087344281614162922314443320182117661717670141479434455336451579105026281888168570753520261312723864783950608574007178114123814451564916177322872466616928730930870479508281698046387520553292529207285712662538028186026050872154881951288055843623213096755605591924778516624717782247058727103890964914852426523430388254343625765740893168075591752715862592118065391896888479176827059353943683346257118525218117615743417650710970229415013790422308910105489937883402034769949109276226238488374397953414099300722484080530659250671504450265755127772417315730203479537615805560107570547252492199394256753736869430667584104212665878687746993758414903924900614788250764037801128556373325726184625999497286943982285854699282742284966117230507550421968628387969881820134615646826018478510937451810451902929182695692353502693657548361647449272009769925726026652173865266931728537932886956668659786951158938537058835237076425698804165664458020475158272123110637327804407889809951096125835198739829805518560568748578184818412121469319428486563466291275697395914623872509577774805167492638371698242458419427158222952211609742047793745823711421526138359265415177509669967966034770178342667353050288653179476247009071476610725820815930109857036805192551659179594788368350724897649226534239227598634444429155437728497929693209147484026655929758638172641076650994713734646587595105593678697200155578035731932457037347552706122621299691753978556657248540754902729900366650308166203668030345648627578934467576236310165967181387575641880701182540467213195217416752040739359216902787168033778677835027271979872654634465544284448605701881639161465240485989609021802374924281130287298939953260827391967387986752800198067398374879902318321668904253244006661984363811788672391466934937124173981506901338582773240298979154202442609227824835879402415869865320690215565601010037932406671258496156927471621605818784360534378395612933701395956456823672558028653912535969906963757970899265117210557292199598115502412203306407763488025234690727659102523868570943560235364190171884107809040796108644598580002050529673319086970511660380125616893701006414925806605546781302176932610220901123196401725112876507030068230852439534953713286986012522407230561697615914126571189209222801246991430243204652714536006175589580414724904597636963714232530839929608638176302817769438285267872863492704993326256587629811800132034956200096069163207661684356780864058087418532515603162286500971124422820575746751591119792087538602670767822022644225319510132468726008439858803405936889702049822250853271819452058938382283211104671196613105683861464780266929449988483858158227941903767589752641228675206898180254876022563541783322861084010043053974715133071747500937348290775921043040666986382779074681286512465582214195013880518225946253533815242900006074025245229546788208638771135157196854454103672934456847638629067969940544604225296769716592464573946603344112421662993528660215531015786719535152383613212516540769134832658673775066845366849209266808280373779519516078089711492693110323546456229336779381091229967127276430572224460679632975458044966700917229613840999310060303394326799848184149497447446104863187996440277292414022282838105774760568500063796815917487228781604489705193910752938414137849139964715180101301716671267024054915998546239100497204785406665344805852318347095641058253059899703683795761098244541736682231961717668010834718980691051980471592653011395638977023149527390556549931945935578349674466888745321179936608864461799812980734217609834493521726496686279619170831734579576929703774630404332487876101217199370025656497811018083836093116218988340914853797697061809176446069334873765642351515221681538205236785387322353692621846479484439706068483769734753272160493437100271641606154373292674487923626638597266241814569390166717262047370130467332555385301791081651017624198584497010933744924796344164117124466952012732933825882144281247769541651040451103877027705637743433654425011380187242394053662039981099720740874981303484587200271912141909649327770937444674148266645259437726224286246947002171839996609758110209763552173826296756383062066362936984209431289407382856211838794424669056159294581159777933442075197690880576279271000766209808056958683197184794237936858650483844536704564306427912507166676325488400705729370785098656483279330651571632438980342953962571511911991401753180196377535050242446755442474350588920853348843727925707119523449812971591702517126589395034949673410249988712113533586072583236421361344345262227608373482464844485736115666085557858487862266006507058209244398239756120119825129213243709364649036573443055655207961200520055989015713765460213410778001142488187451548091346690456223767911448347748642274186809076987487860296503745578345696093650314340613800662240248200223864960480586651973919528313141387479818895234590865064708188455669736794155745947733168268460946675115852108607672650569253112912395382607164823066779898234749267940294060140243572252974350264466641344364036425048636214209831089058295786750553417889241256777197587959216608097459944094462599963373628966906554161048501050551757467684514052014767368868502992940359020719421718747451262885094622931742579837674520207893279632252661127693222137659363666263803710260956672510427409707163287664819918998057439408563907519114625226193380005681764649657164665852834396498652362275701444692825715737309091639852016204459871508997537349084246864835328937134951829556012137941834593483088723842203784717070374165992654402146786228954960542104243842639774257835546664467384401784800845973392778539022447090964694352118407809722101009560769472219313305214504352605175071143722831185264698544203216797238742916716533986887087939876203233152734655591233064751389003344368767136782546668224029249879454933804658512071409925367971776116646925721808783072807583841388773324558138097022304271839291550005454048721011415680340218888099207080770126860677419847877183719399182180596802552475977018028178930690656421062251107981585434150825369309929908000930270457009051788970255278769472546358574894967026865104637224842292296166383447843260001220780608198314131768502381306019110816831366927905581436157070034464027442461905310293085118040881007617001048038184148463172664805306147135068353718436250865935969816104781000241557384467104062697044519787781888726140574976374992297109004391317222949312138799620218275610216186192257519794504978912735836671723443851741640714576632771791205363721021384216821530370639433141154747675572695677111912797183983137682340721323355471256169340819542979118196445870503753652865318223406188345206665144298494611516729516603112904003217951887735332064771996364727578133434471348193549950585895309104812209706751621543789940064391383104294334397149382709602791884702295062807667983398124544952531879325756896476054194799489903839216161794450686266124549183026965784808822039921614938249127113107020788598679640539315981645132859140795190021523397097156299603302113179452161164677778171619938867996990518394953877701930316444892107934471054558731036217000649230929982492808591917070929088345941397446351092008916588483066059627668269698851194329601955696055415408686174484556254164206147108458340149625357150452661891689499399450635593223224256475440777365203075316885307675468305856655804283617985812282794919704302453119667389227972626962523894416946702878122559429844181082787131362741026912502033692009948785129252950121999220098945469426558796361748550510629443850836152242894987254676504337839547261460037497414845113017998500840063490049316574222259551328882861360734063160300778268533998483079131715172362672638874560380442450049697924935283532224460907372913934393463042666894591141670741783238707333097497414691549008155404618447972307522801902489740003174276797622436655749974107869868526507092892011985035896304398749158035871742166741930105213580375910024085175648742925622478393256079894275157260932646713786027046012402644060718264410067637411364655297188965366482787209149979493662208194063249867529583617083149613865664341925750424389152666692490934943495458621726383907956460079910352625865428064696045082857524395479712203195984984970760595535565440918629880486135467228301689564572421737982264399341478878575138990080652496704853752790683065582962850556233212582480825118545664715243308963558710015449735855644650634622764801437455286436228344327247444251591635144494996767743412955864660048733046364726083017936182770591369320890786808337672068912529127107816775688604221849388986702431486640732817540251383803614020188478978585699441986926606853122553438020899581339411318228860920689455607533795779683553605136935490567999842867197382013638441007900529319956603883712492988589300403950968418062883386429583010576275289289463662388545588047485403262970299218089046380969669081944938999020208464978995363391116249664668936656419738309202599610043186071780586038391336497819927151665039706009863092989534223715164496510348286827472715724434455908799265706994627553088791167585008203413472732691996833384868651547506780985501911070080106445904499681635508597703205289952567252439684267630434180967327390641039650031243068107676272933562720338382459045655761379987732924484197041854158186101499156223520261411834927511927163354052162045236086064051699675509180815642239739778297818515439237639636675562196595341789782261271342084760705138431624189908130417989914938195257584565016714099833850848288367116564492222147760910783896104583355688448279046384038094708362007974939682829945283575341122925005162347333161673748907431160571516009459416615942850655797074728471947605338463148199025991033877131375568829652469551310628390634534363114782797321425562695111179505696940652713597644464151150631091794882886759487774044393874225460344177345783339974172490022000925524457979620762837385079739523414346737278633090076359679353905149701876743476678464003326912334172413088778316058416498460844909688771342375261031591265029164991672083215356534213508210109640289377801643067560947881117389215887973642578948461168504030639080341547475648866015530422375483030589316486228245808535542125531681580767795508940130390853122215537665064216110842436678040607295707128636428216379017189079029074443803458914396295199977000816941226659012088402206181304320125913932201069746557350043259649325573869991409956050537660009419632147763413560182361317262049641731444927120670125003050090330132292335488501230501492215548615068824486559585077484903052687830075402767213019236977768399347848554861706961082561934806691174476855873026316676025103286257320722238967445722906249733957367831990747006160247660396238747951430204933202620683580195329025867756008994858390077349421273272073986447735247690850636920936424015246367168588710149166232123139870283607969863181026196299755856296763626111231915054659173413770016279330066557213925859909480817414829044431973003276777147817315031618570758182539233440480463201801603514967973178646963970203689392928059117454300003733235581512852625565821603862718709339816979371523710891012537177880470524232670910611848691690749040986478587684844632007993552885420981708742593179056484984966705482748200677615794898607291860430910281645827837298463577376674543783008362624336697563324250955103282752176660188804710234721770178342257275214472702399031453781846600794824351149592294770391036443886136550002803249954912447944512379147038065261330824953347599272692842407417851223937530412026668445911191239238263512842353480425290788408131001102227499077025879851480554207846091668620831777316140899238816223582563846279322115929997478122800985598650169475909752080376318138391377991188958679478864311956524890404350357308933139735933119174877060928086920504810925577612712199168535794842600152839245532658896729958049565045558173565045983974072256067416105996276901668287465656945616684257375306336891415587330123874942566022789475144610729727483160719131887389203239353036318217900630110571637265326007887432390835997914461973889101684106322611952154120259216483861760518966322626371017861165305612328761080817751361679220006605960470535860916282040161180104611398981771101215769597744923757962157019548276097558344703367814404529967316847446285751781461872097135271977122485898607532030292270348280947287827624579092748375640577732270389042652169266366504659161001174234921057237867582683781561331612694226707272629096712049982931114509624255859142029179798046342910978977889203727904070318591045402175896647038267746163733053363431678264992259693861872893772792281300130357777985748120918936667058990091991755454798712469783040104596394224734212960241636743343031217764487347422865513101375367511440976563771657746841186859215837263074397715869567492482016625604353044285018749244166591362161493825208719305696281855136826709868566610672838842173498660995988160256416645578418789572168211489295983609166986855900478210887554466990403528124816055005452728349314302817676009534584114135039457688756321674930388900595610503425784512220393537051244140037062944097034816543465750202518715226368346644108315667243498670960388541512094393389191578869563889793752337359227369878985081205232133115150680747005072794853318629691660176021957667918865268825472322305402512674401623598478938694177731817880131932388306878629012261542462288280303368523952133560538463374284383331142378922326248189156742447076380931125479957601857081043771745113559490150995333176568068290609644549289642267046308666222475382650654798444273302451092057022615974923416058541361322496482037910512838368528980520034349552578420282348245974738953118445782765653648837810212464488357779860455210625840843793742573224611988903971106857004679619199310827251026177288317746926792783021559814141777888343823089708261860041136148988521045934553888123081122866262404628315958541082147980509386217033463349788925216339243710287152566047536526213551117012769452379409230229192975651684490038376566733978658222905528767260882340220498236781848081384370334921270989359506503226727791055803354882210121427260613925866536462837390305481462173416010490143356140087048105820492904327403835342283964254030875016317752497849859893247748010325890627613998671832752632942785489869718375667448878124762955989994256602344311532037461415704325202023417096403065371664897558790375934479217970765278929837930680194840578420427564941891850115130188563876001938668481171205534829785753570005825813349507639065247422414472518214549621778837835539130051380347248984730183802724339291044548859043262339692947047807643574624590420357490016140521574028809985913106479613539952916717038589122328179702896398717577215326773144326504340664939583624577415150461165561170838412670806523427260399041961996555583636660467482483365938929936866895323327364341373735616144923250436484957231106467374984020836422397962573923747180055984220195866899386792009328435268572321003277898317935313038459193811254756188444735073972804393311523368197202637030478282452837016654513843834744471167263832842875464374559305317746575112980002581202243773432922550739888267479571386045936042797054811641177434195143882500080819428021035449971014291938868843017754503769220782777476845934866483588949129077718322647922894054114137381163422386982277699596413990787442249072610857282358186928299432559285272886847322557786003156718565872367465620973873380609846609101709260895345594399110622133376781146799208727225166803115536937802451257165673633053288946752224153363460939206565722325937031678176759366145992543447008656793669976636641126986504405500855870018929443029150111502093091269513542363328168150954025638010096800503508222774881499836343547666327597359479833027180377668305747219422075608154110780527311961735568791395231458471074094716584309499371056587979592025680090682870053003001043865317913003221918076255741198906295468778127586558537924752351381904295892043200134125848431965770787376836850744038930346477371670307286061975210032169368965911333345917012751356476874458222090870888190636033677192100656660241021133839545651257462192924268741747283488784348922420079023989597334400109141143812468210208955227141451388555189838146226933236020878491501390811626118769457876760992840135115582659358718083271982969549948461896111733724180709753087042897271048460991497845478415202251708968993651897788130009836216713977324170604968130385998826002314285610431414181381379715692792850707102774496904521516278041838562217339803092926802539474345561037686599434763158752092973783539027256842182572069871737319716005608515597236681461563169206314643362553254025937697952298402107177017674435133239476187009703009164078510585400071869817418764721390503535697543587818093165827905730502838819595973910860015242656789114772029861042588899747383438314154348914603486517663133067837793594847185712610153074543164204248434238128015071318350678837592142614497463022417467092350703517512507264736777947770821972222015823381677280265225298653823385538080623364298994597177297886010907559041797620814759424763588375578574493894596964301812091802236108225201775935227902396012987450577015482313700210343516239979535006935881549634767773989252486375292515644536933991404923429569485368066156044369033989369521110194107962434766535507814633721254448984197871551704692142221483093082113783341670284409383300817508211342150018187914463187471969912789214439277907312101935776283583605356009952658179226454510298678368791382292218235705311876126988141231931073116919523268386017374242919896090773738006622654195560338781853332717140919552861225330718977518220377819823324285477372465542477039250042341339028592134838717035157505470182151682923820177151892744757619069630879462421023517831985849000174914173315914932880015558067038377485538917986371706354364754959389910006419806132856141207601947992400923581558484570885385532633935027189330123635939100456115168654651128579974253945751192519352909006911006673976229852085102902251076404215572963352801760431400972660233781525808290834863223677902021699601500767571492292993965926400960049284078466087672924972170448574650973853827776949176082174284757481113040712678394871526753623361770646519612958865191549994980212988991451363237012654142823888131852924063706696138665661923288635555797401196681584831172896366673579340599928018202160765386862500755023288708501704645200807708175182451117762605335144152537854689579337678913428797817452051517243725803744974699726085448342647386765616472141269871787881187887223750386483552034508346613450747525011268361737642943673808723249853212880607462362528248096463773373213673944070640203247330100360699553698348324113560489831435156099850785989561942512615160633057389388506858113345363478188284876592582576195464605498288777193212896900472591307541049889788831863045897209357452167017034113157924964549335386147360529388695506315399549881757396268066890384802124456996151971120447735255366339367848013483618718362774029772569988860553559224833574559455823432462579988155033283758704638938785157515833222341920059368413670218003502502497701528303097429057054815049896816315971111630573567817870506571787799143721084216749382420430776103423327767450998747327981001306806266286851235285761749001670631759869677485252911594766093249270179726320179950592556371392964636510379497265702166946738704809300871377111461028735903675330151696631186146329774306402040677109795922578500606256703789406530676851831048170277662344218575486093310373950992447434574836283018947194689038453845660516630269365425314874349187872802633230410588626465296707085317201413164666244918453190934162074730218674594331724438464684221307094631912783734471797348474218056115803005921244514351071804001016980602055856159329853496875601408280938153881927907108149953991068794154169901949606432213970454772045794454727613124560030775261684396293765185654052880266379344706095720814128085493847864661505670859751845682183207003242190961805976636825323029719161880074244002873997603205157561234576542356283116590796528786985852634094563686298721876937951608983114031328464777850243810249155981652063319556220542529144786718723809782547373897377417141330847814871869987507056803611167316409015532761881385711682799169847261383295264197510458992769412542915247521833222224907634825771731910090550913865995748736790478995823001235129769613328404144243669231937359878026695708391448687697069402686973358818460653213343622804510185607129023708771250253740021895730437271203268190187427493256906811596159713358247661882310986188363423820472628218769976174154070494559894120555354862267955974700321969834220335848987873573343175498660498891361904346855548272429280882613101391283064922656980341296718631994174135316828382134942036074821212393939511292776651002351078108384652901658042411998050784687751532547227590975135136826971585010949890487316306105890132985876164710281029970700268113171138971786588102757061414760563085937016330264504019346747985539502060474773566779455467540353087631574800806357639358909192273968202030135328643664095169378493435215687387559507788958454551048282124556223793740111748068605148522566853217229714401510826033294763236819260860594630393412066534137254223245610240535078743679854875689092137663732636511231815778602847334652842218541859746584866783577240716912257912859535524648835091207415742497792399199609168557603635884573718064146430466675258409657531288748228931505733183197586682269063830193605015300734023970590702280198687581241688553924260853857197863677997121763876516314154467880668993322839935433802044291436912088815680436379094182729968698726613220080414801700096753839237538898178070778698607416048086385313471854133948926563838750819155158090459206791407160889660542890588393258227433127783528114052190292739284096618616268998532699952278994976581951875320273873660475562172807124392585205089590419872574429040726861391940752260847042098113141836514331195064538994069183687175696245512582337341733064718527559706401906647074363029260908869554302726681403557479361585233679035195379328739812760681720510246664902198298189868321724370962328513657966764787159727403730411400661511666773526987877391933370205142365417517887718649376433780546590638252297000736686443779280809636273499090936491703631014240586364468911563366192843568245255013311726893258809082216159379928241118104085914949814926427515531008143699344505192788952172567604332628407715524414012985038961568517458651707751362199415034036771435929344734147428202849413737657025043686546171728678495613708417947297505056061076867089825350379115163757341118526712137684145062410590409073199049129689694739858653975390014358833060057152627242899467283262855087019899496937923239990912493786786240181564257121059331662294812569788813012319720791569877763317179484646858706527034699676191651360180763206890326812550030534606578966453282281298294643011773049950801963164426204505759660352334622797544580669447314663543804524282193195997091488102472349998704182931161052368434395714922765822443076397353691075171362851445158404623502738280118130720603918814211171761292808107219592825829589605104478561042837255512566545075418002055468819215590530165508682745417439771523072440433155909084799537735933828777805329610234246866619866143950171972440612306466561325159696487022873173440786030187950487485875222043546647574930142435404497640977924299273459753712359575366784745111720332495506060457885240498176086652542984802721338409992134497677188586642466817671389723835713263426952145603826481776660779188429544784762282691754246825248584211036957072469391996065299142352839206173092777140555416755309930631551573474056804125008297045108240120694061525068914308829400078195677296830111433149866261007162995083722018975380048319015494469820765168253738542439542964770960648845349119602732443434777781955334955660051804404966100136100647101809735195364731452511396518767612546835830501869891104114136807313838688205740556714880989840818936350662200479405188045499025948198822162785514715538088053511433364736923701381904134323978882114393960165540225756866551053553230673169673023071583276028058051295150838765505117944521208335127319569278529404806692954349564307009431760741270225513510568629007497795303217678367868652777351875164701938527552368310538309194636650659380579353310319184668978130889657789821072789720506385377399597027114597359885871295725122558408964651218138785066581986709337519290690638976978998010593470586516408905048017917143955596703794029479086421338708656485532712265642600117797851558193397465154205439699556416851403165383483476257862914915949862001797655927714064325499662965168922956397167705726161174954326863201324011271690363870326805719668481575882320163498673916156986523473170774550198824040336180902512391441818436516022512892478000178046445704179814245472132142530585107800404634239396538287162558038289552504502031424674035163217197123571308001969425812512803856020438010316818252709586443148814711988106364819953971086916420424265036968370115197049764768326488084009911829056270142926379552456063982156780135076544586554876191410194673324800579643920777825504624977829851161418965622195044358756914469971602802131355384028003220619486598334837814726131784067197419787314445305683529565121362693880348970502469884405620509490019280203565605277947100720799209115502811053587902580163401843750396676993626645784354009376306145091854376782377991093197506195906441143591965349770454614752335242187185270065624574905507896670873198346154374672944545881693841299951691550711746235720529327081733529129916542788601717165386700179237254059802415033936622940534546660884213055406589053156012513993950527684031380418640538555984408339256568605916810087010162653754739020173695189121351259452449180310993092614048478382802203980794150997224879943357440151104144790012096581614417080704622416770681825123432314598459966947585406849056040967751997424465149919525337362576258229199525443799870407570273635754211695472011545248967225687595652026530200082809811924619250385863507243668813112963430177337612692969301724656619674081348970707127904367401057412424815845702799568826505496423181320106606038979975974467552353167515279542377584481965047953795629437642027405670548993058425247240727682489651194334390853107950085331907531678257848672043203292633729403719744518769935123917840311395231527237348818558784780818758964819636334488736459939073080979595335083082675523999968025386094676861943601583578327414592927605776156248682988150671991164445971313066029634961198465829889218191826159158426410064276371171496770459546298886158598263768032521294313111580505631922355914935401552681470041154191657909975843457033473642282528580057201683588855443292420587545884028554479513244587386667201499795292105066762072026355685605440066431170175958870148217362636089819953039543818078867301406108574551156511535671846948157349417580880878908685818748338495993771961516987549924449016273980545927204682237130555229508824229404541685710797298454382755486719639380266252913473902045145093613241422209283106292638709523787336973553685536808415081744962480511615232523469265500433064367770493147567232330116832597764954872984311738714521792537223698167140598345057094292551417944560712869972664787768884967346886434104697794354580146298530686418499995314109146226884856788576813229749407564082999977189172848271611364809128402750988652089385628581800889139628418787415384158864562622709748243481582033845155998782680652225414684763725473268418199409390559686332144347461386651248143518182981259802637363401351649891573254843925063057168648880438753360196780818313300081626437491235505939566906958994304309111223012273787299470774090414051639672459233672443319726624916680422951856727084251871673328126557321158146515399061268451444545828259772607058565218733032484994573904094723073158249032233583534059269581533552502281527882631754758273760765835612496804271937511042054426945352039980650479632573246974516028177670062166864148991930954011036428232310434125251912302029780328681845951887482589985632637471173261770760470084707253197131477325438794143388614315722373731509800140388137968230456705067274578521910480415019317532442099364864618026752537970271862441427312539174608993508164605647449675301104332085547158846767292054064885435407236216719061325666596590568534590538631657642123055554206934818028806088567607067354176073783348596837119073431989290728609462725868821755507472801495807437427096780492214032472939755187237618800838351829251885953878308753873659216030098508348874849137921625572862226463974072158713200054321638710730784846500856495028922408539541367044711992333159409584972679758519445289028000828983199859972770587542363604164197959994069259665648109858923084802343097706968407475792785761676744121753375120249837007944321986335269753610368753595663734161439268785265085209091360286358453246830647312963478499045899030535544275984337854850936116543803291535335873087955828950684503606179449625323917772429563033628718640040606065880419554145756184922861040005984770562988346363905853095176999834278676602361704031429530529943290301769563452428670984991203416485127341102617815129359996026450989671840019352218850860710356447298132493251273683511855446239254279426717061031705998234416443704894342534737833373931605934030740549104045182360765755812306138924938894305476591508378410296574862050208788462782512961407447354969669856740511421220792556819849865713127811772874679304017707450607515995790933633648091956504733022114401427468567431368959837226996375868057809285257969328292892524354659883391767105874911770625502363119972330844829636400749751601237970020140488264416202462386245402190926124331400278942939145409708315291178767659676615664706927533401852290543515001367855768169185022831372052820756486103532079169604860452080314855292131000989865050907425664447986322138503847735503898851254032281003348797035747650698344893886085672504154699127176710522854139967493918072238473307276256800070437750503306683891356251407881749725674244442130174725895291937913597466864351334776334775217413002864188871866188432445124822831049033598531379794527292837660532517545169699730727912370516106341592970014058751094786031877011619436884412470277973018822418384971446744300509167664656782365491044281405833311238416042912309270781201441209111549429970397573243650229165317353462432105072153401347952987852077412755479403008139544813781663573720088267333956701468318081847933671673844075662742898606998485137288943182631543391979432430318504637540430152332157172094323485143739901562309100048002896517422631985884338064921658597513974871549287937369392816676331026862967835841006821013830200011394190824189211450443436941864960686863293443810705082964407501916201633700556563442785650635445398334052214591211193490933309917533454047915572308238679732172120047260052245452747311587142008986377247575931825241877408409913162347748436533743357166533528140450840398829015268353290253920514559356230853591102341035142086036292205552034750531058659202982663880252944332309067071875765803052277984686816265572563862912991982474268627090684279187947273184402835713902368636332778517803273540443219110560856419310725088946869479543034234271961376552205960318397002560695463212735256579113551975488014347869285179084397406491876932900131558627589011470279747990309769963284977238640641157323000207853364595167182890899599998974943973586329701970037144280796128283374678299262109785525134338616086686205422451899657129704135191811933573816850399307986064117429398432306324236551209483126382280109708996157774633552537773722903598011191219224495277169631393560982295689556193243974464000949377202875067625690070164618743949398581548026721928590576121181789634981110469047307994542125132205084126887776949690492623114227717034886461768138898338039488884821073947169700018799505229045576697691886643230994062648934127058993566610881972730355037346372328065869616892801128226127403797100280583327357109645690161582968656526608454094491355193876852991706943271841355415960051976112354854250782358822607197292330712604663982592652756003448341302648546032426810443248156840178845429872384481061896922046213453073183608701965331528246127440084699737515220536586030191150438965441911632052009790335685211329104951208839392568675223572289837824746269203444477261810567311979762525592340805749667515440905510788852572056658462194937154035530835513681567452998838461286917221822143488797804112426124508667552546137968191645664413111560698755985338654994294439146792327303529085876031740608023682097323287469490438019252412733549262853034237355471875301436991688195553556391397077584822558396941573375536506261560531694299064133182703553098857852815426464140886571728169461292715997018234104566156430537200114525759253363987495446297781425776045861185569027228853426011387187184151932258708212196690004414190778229766618696789989466981914425014692042478587352897192692559402288474111586865126967402670058558084642285648493636941274767090316646087600230620150673474201375802011796193785451661678406351053202265773577213391332331712705703200175796275716067099121430744449974382249252396662649668517325542230305168709708063105927233491810756744999710154234096519351114090068817376857971424390511350471815037719049310668332400178317784777657652704002649139391482251321105881846363465536183842859105265989052631778877551382729031585424762385913514031281947425471663065198596674959131987337610415837091527073208505240166900157247454279101566687096588089445277750064616107435392484411906465791795306262628310400461246067435160731188069734344364009175261176625422525825151512214024373000609669863436152264816847509510644874520568345123443924496667865853874676915051988333042993444421785938604920526744211887706807824716236075209446498758840594080379653337281441306166730633611370757829969973172419191778137264661333584752705207860270500128955896325746432414958588004999027003893666912995023191711224338979183092294300317511600934077305146251052208627802007901414096311298153639364226498766746054937939036670607214199208430456006968509187469668400001107819186654850257687980235218988369021025739839713216053252109027631336214795917601761912498092391950737990243204289686848496584113843752032177716085842414113895764043682382770617576147741838582063978840047441595016310564073137614033473291742098276601163129972467620285665384158309215439813070609120253622390826590112808387637623072502142602402991324728639565523717200946986900538539568924658095828823088251211945771239905416803200286315426814402234341223905392867461595599781932903198030198793381551893246823994728121815058447073022478738963851799620152910241411473925880118201319120026711407567899179757907119597043384747279851036219620307363790202236872825322498616356654595850393090549846807976994673463369970339173110797505271539609329457115217872649997545326630602765141078699856239179226338569484821309514642399179551183812846998310447477472989725239466371234033164680958281198149370837466577706105032205864476503605072568948131967594250496991678327565317842676099393352741899699003294130466328754773457128927259508820365753494463284047042293030414044083338750945876079342422338547829906574948823096318065313961992272354520106148166298131856265097926539711090960035586998587123314253972124600327475298395690711577882275618340812247588072070793338796864256716250800157972755657114657757569804552043939886367271329985554432176147187134293921212564204105331174117469726647219331430048368119958317645787889716743100827500553101306992980383669770758355124877431219923470400629635180712106260882858786718529526036251230736357083058810866382989586082192696866874452986800214500710065765636223578009566471175225590101327442034302296094340567642012370108922985065468180667238963279304262852644351525444321186185780196507384324696798714787138980044957519714918246078504017418663711040151063633314077499652668121950820834634471528112669089905313139962752039712730558222261418196582286150522086542659166687658951842250912662338386648619993102873020798938792010388190676884522070567502228757528514128123215506977804989666754009266231904652936575081233782126017969398815324350744153125163222657858196598369373457465403356799360851063231489558910029798008615710946680186402010806297491641080429673016768167016246182045009513998117417278315614468317813226035074170087981429114203954074674488983520472205500962325938670918441190676497327695781564136496920004970063010265001949259394929747444607689655160515660496643555286444267537360208919737748805134365350694991585709435088542222030407852197746643985393230186186887107087855019748478921867733800420301120377517415521585572143334460595934893648348360262177919805517930718394819233928416314226216878544287898427399653335143813740080331695095300987727687453495935155889231818557562003523963101763178095632141975831127943393347256898813420236592919640638966149277651185453433032150562660864629476163921082328033878170045702946121854918533074385218784912495171858520139370799238025240512823691882228555869769530938546615151750056529661729535769032926128794661131246472654628398742448405774434489026958000409875452638117542264321863311386432591714597158690931164001657306953506118848697165367202371558352777517812236096811227390775676427562882040812429372759851566842427041435005625234491347961628652963533219935927942849499480793139895522510583825081601662184472302741748927946792060843582666332782517965494233270966417042415479907442596088239627480106729545501127944181113016733935320812925059754099758733561936114894935505521391305982112871568443167985913901207984381091206383540304935477266138485565835796600330158864195455661686649605296754333883712877431262747972513369180721895844343795652637631776355443720056994427338039965685479685905417709954659370081073833829801131224961466237101454444096320808574845845503449687548620173035877582739916982585632001963081671148567220076195985592122886303330558826963400153383034959248203757175919938961505996399915154285971402897497136562695567726215140434633786647015248758244384421414602137641410366856069421257834898115960060727000700420502490267131868638854240622044284706225991976261546893627632281699190227637829523134709139306208327921852103562256895019762684944563492719389638338028951162915147708433136108068808909126040696779959584263418883265954886004644552191519342233401814368925831175566921213062763922844506470595518709537810763014278070400189368970802524727029103844070640870740335166350297668425731464790952610343091838463318100754761142441621475452842480634208712778962041242618974728467959235943530374387212148323314517409555418576728960973041183363223287106032325142667824633218904320239584019005185021664079623052397381182214709234682469048913258524360173236960939711850440430414017032002343286439130075674756527692107875900599835510500767153627762528082918479728869558373168635643807531681800239334460390775446701078181734260323965416413836667519220436469544130312313479717566179610101087258577612949078662103594123704043183666484244216945346810340347300235131078293367826458151896442334460940345632686054041899913235489881436300942241248687916480288082763333144238731324361981546646536239096278391440098756962966695520974394569809715562426902790777744506915963436991515889625993135929488714545903777451299046240263765158025023618318125060528657721095964030748549724800991554192557631533638341639136801522258551979179788241178430840291357934566690171528481675402607114358267110773896562661299085728173190367703656398380302689841149197911641256624826880282034885086716062209394206998025039103709860992658220212471132467606134018297838588654173256376840072616560186690748300233925463025886021061277690226272507894668389025795097759695031767494707692448323680344342419830937626208533596947048280989442636785777516389225511023128492020388124670992283759970690600421941323842880245937836720793127984110377665392353883533805967028559354203418664935577318467423142258795440714715848105935930104337775676451549250501469572274822354516013551524769361861362513148898287338382815823823702133435794961478696760490317791264621560665208143021469200856193606706981655744824852622670589040541150367710533400110908728285659194284757650672197215897240061156643657794627505889426829617836837076170496585048235220211188083309094975822093879951053590006656520326960651255817832224947669754919560899910870126712605818929385249594852442787401406883498771736676835861876931612737606452300300974928287793653285275267358932995038073902577748637204666662631289117771069266615630439494618147360034028620621790323673679219130862588121318273409734982539369949968720793358795554066339579603736547205852728071448410254372788179015836622465711131369945128519612728636517109627682892651151370651701337040039787806570459929917050232477408206995752981165651159748872041961288526303911043658381496422655398991108818550490152290397001947702213522263453614974117434487581293419373662616275026369927292598759770710631983484920210329599296229399163684386798614517339562310500275737617068792751874317096614433057052415140083271541611232000820088601452211863726563251910086365335258811390753073837283754128115073821386397999898713972461938537636724193809502348665069781388982288416646736616876698872764019757094217802740350634157703009423534141958259530368815605818313777387368850933624179671826307729708414990747974752995870573833515189243647620272578251970890357817141413657746937368360355036658910822963510170065712808704002142035921963767013439463459246225655815517311695231084458385569661396373596140328802546480546737722256673200740187495887186611175350227707473521526397372003914106773573480326295645403834094080158883902797078829529971243502406295890102921197728606581458990915592722267952267437233521855169533109344745339016610553333489500490731943652976799316897279974993504070122568144967514468687873575912916005072890157712944965524338889529461369430277740174143908874294369733256110015332473443805688158775610454696981012337361478964809153289775224982757660130056903388876274921417407304331243928961404567007440898520992594676256530520458898417421160899447597267384422985918056723785587568185546177035803978268898886396550602852870115126221004361561891612889033447840976673253852885099083763358576277340202529888160317073056973342532969956308629452803841701134997131003707713343713679833397943757771224148588207637539082834978855432128124145520431657591201930079078692408898196805765321512198153449857068099241757561639325411421756979434104626693116567021238053368414640348641234784067793230797511490592780649417240073278242723675690660934151121864285832111718029442885199026198476641810305614392313731499610714388592867420908855779420590687013989125325151450961563337318584530283469127713074533701706877241529406140475733795635079448631548430385814678630497734698133752136190426718393363876750867445170981049984206539712497505068067593580806149404871989553394730232973232804639090660961574321770172183737280334780872091627514589384484196066640713225872240038069158592140727181876592095611008099847526556725797970243763343856024233709079802813605262873808319385296234431503613450131543509123208399632504426557040817556103345548061005795371192287033029307916863182833390813439953131982114611787884293815408935932262041750883718562553078600195336001267277208877369545326394771940843782683286912667590342167454233495269226061613718617905903160630760897860321598229316529920358786777890785477768024931363504999051470040076608397338925855640593781638300176670276280746295283631018861963932397080551310566525461512679567702410429925849762927912633828968194507812578352741422640358140722139092869550623829751212385892937935815638815157081128682241561942442083213523496673103284998614021429594555365123699508483597468468496514693982762803098732158138053397890756402795280498030062541725172320002188409634271709119361000564891465348554875712712907872919496019284469490794093229679081071477978463398027872210314747355805998534553136929598303087889735688383544529809618749521316519669519708348499922587961706513467386065292022152083001471444207316515269289274078883230688151448249635307716105684469096719239899565673214100446041935623152459241688200103294597430163652570718280909358838971030906580560331031701030286817540251687878623370686527866928890123230465219127647655534514743373401400444481514556495157860258417521847233282740754204812005127231475271499391781525376703152860916922857872168453671934958448139210045627809030817763162178627476120345464865147726550453234886918753893336168470769111974447964442588358773269031829875083185921843871762055979651964164636964171503711797702462752933602865130921807812644331020170354881422151631665532698986664242363437894204125138655686993005360101379340094897666223148354619962535738525617897878200422745049612639741702423759111735954540759811141663077228196781535956034241500881889251645666006565107768669079945361419974017696689163904416960485581710421579002240795774746252658120974102001429252673425221430349329888319156478133779197047779557815295857475360734693742410442713958151017574251632704056862178449648542053158328957690582221938013709989657627112061987531383733866737496366411019901812768669816519942901130243596461486907133684222870250763331018162707417393886195224225288168113115390140827384401530790772014580281847769392221583920609113907978098128036302648937054605445817452119829812100127962691717940495450008690818390965525609690935065780291886484360918764377793282793914423531866985011147593527410925640731199138459932841122112290559950270968725097559987945387511756059390180041576627412658940150746412101517085618701804798361316837664128518296278983016227484162783307866586319670204741212853579568095500477211006112162273294154385201304035693822063347302605150141994153344465219312890219646882413520183581917487204292858620140814876417890689650436321601945158341327824590295445427477554327003208173622316627252325281381187724281499942279715738141977753593528164233299448232744851286894232474050970958365622225112779838214805069957285237541434749118305584054670451798616094185181466024802537086498096012766429351495565902675167101322064766138510612468893944139769914625679714801220494754155194758107979795212056991332608146639566320978345567762046760441548137294066199107061155924302242956615967757952441492534133505003674985793018836743594669478046476373553305363432762867302350457237916329149242404920022581706663126767095018642100729805719489501068801475663680164438955408937142689322866367561214948637204140562690669475607908581655659898292595506924263185145947165001651526979852682340499952024459841270610173354969221664763613280886327578762293746198795393401330446025906230456649030272447987038059946951696311599155506713008259576319823372012940846326521977870713832100428203637556204660272058538666362864622217363548307345475830941900668513366853058453713002112454713258668214314734994366969950357868773513992189550216483061027158326903516637946444933055287733318925569135788585907526732688839325747102790096990004772569128483370923590310123982247629623705279622236939709420235772782544575774778088533335567921668886748019705901315038211391667439690762185124219168158807203474854428945430644425792904234454694728192054733178120525208255596939987121272564014629400364940448737109371096909229001882546988698678445680980942478960589945617493286172003315927514829687752414555560876138567049134828959906749414139731492627509481163878763574016482974274223899752405997234083241756098163235581212917567830102926484242221543523406684315740068609860303587897852141560487694193656402817390254911145759403053987819402541551085025793584883000275095757330522495048527576099146766768319490318465822510481447287085135514283348767168698905990749073114837304464433051595930613051002000557815379237428933511295585673596711969372966091424244791689650504123661902822364616728215802224661823943802803685507858303365336659032028999647087130134934485590017570283745674789333403260285932343514503552850238408743498654528323262307094491840958386539247728718438122049669478451452682520632580497919470308192977330701040273533106991890216614763604787027429369959519656333978992299850632203629320741291186802733845081312654347478113618184135897520756380507563539860725507214080006490620431357936971925351665410337114366614834453446150488048593506033888497273317889955794768545729042465353598486539953551679096638626114776592940871196534602109374435003531165763765252062927057862323538399887386679759197649377150294836865231532349561161917849080923357025288875744779890264506902724200423478468876096228864582660735513418021529421227603258815239120375678759452141182445146379442865349160929826067226435707422013229413587013067140721779531725256630469265597886441554088927846107147069367993425901198422835892746531799926842399892765987323971117990927057547967688274117654481010824621996037489047258055225101612991595454555593397893044540153634596593890934254094380825152419033179568721122265098837357351558060358973426688449758290844338652266650977658985787334836845067564298479153149441846178391768318872967131391669490382086436601356342351624792733191183048436893299373206708029186604959630529970196107420756094585989561936397833188100247761123560332282598950808439562044391212961568486973978127598875932489536242030456026863111973439094715539369868675589174624987871158658857740037575493670748575754455442966490937006447930568154860055332607035720049880416273918923215334167425668676356072040106102811059796990471567500095836617970448038265101204120736578592534529959057230545015735000404192001806040795109709225455748230826606310039707148975102309468145886055026328982523906929314865698491649478262131825974279782242764975609768405220279076007238572034187418851798433711331150034638534657088828673880625098123782784631730633213177968485260484178965978074247217820984624025421504503445058482358445065252121340172652849489635445382697010987547384793620160521884378449870211257349119322023130375391850316530308772683208064272605974642631205139864799057085420274810946071377274770247141649302543232486747485622227065171157714816311928804181004151228599341174449809083558980114326407809859543117749291184957027622383911553659425477337313731779774030196272458206119290052496886560800239041331912730185110009870264476903996996630249611969465989744009351914876324134287095252971102772051761411434793549961499740268125150650787762343961607807349852627851963612439439064434493813338499742715011851521827599415225398880569267770326882260518758414845504310007824948586687042569252686217823929026422152885459103864132117134771824138055698935759626202338771425839683698524131099902234859964549613366734929254966733062290763387964610641637943440452475286386042875830085720677451361158653536095270703473583769466927565384915011550527031139545352330917208788033318261133225411566092481761520951431642648424060989278877958933414484479978762964815926244307326475445359573318792566170190849930702127647326173705806046762322891643453341846370137835637202400165586626306316250655627643137385634953232749764378695442142757750507801481263505357264162674489843312997985187877303237103788810777274381460532606724042340423864357278405934597199461758454955460516330266472126981428485405920720122632194318327179847744829182608383399532082437441425214587156064681200754389041764798225557086861340577520152026884529430103855832977090748595785436955321905328480144810298482184467597578518638362821919799119095793476387224668261217777302147494550501989976638599696950381007421174687332307612946705941946391869860072436421544791817376787940984904392890140464399446038174108769474849796569686326711434297577456357430550817049766687927283820195557190224114120669672719546744113526714404636389050212180281759424916925174723817033821914251187712106337223472289322578054879638310273175108967197057756022243762329649204992432980064502399501170573186673885644965976809841088838727314635379758071297595608441087069946256678800543757454778837650333036214223270184278001158356701496072298080744393687504698538393766069400872544112007736184026170469602924222601826284820276355707937532081552602866507119134869838803065449213217097982207219015089686712254022581956372792991906602102953503433228923600953427293078972985801728744366973707805587992446799856824960842616956689126268112497627285822868921504981237831356200728391115337257143299795339828876634528976569219486461348513350643877744974014182174736616330290241558466794066451662672502184431181091922224450555819464420450574270002800310887004838227979614779800593850239638995140574186882572204175049146365704458105265485197314549380972624905283467619344293270903257679844246443537838442359412038690056050619063404420088047002164424502708894731033004875502993051630004631822632334232070051466544127911386685675700716353466797302340073482757419896629008882222076790191372471903794570294202717504776741865399739284361323009670186234978471032017473945203069981837757999459689259666277797808264841362281440923921983434545988240596835449167274353908063850431706691516487577042923358357863699718428529928200540642863336893286771177400738717897746953389622644317115908646529935833538898303393968753667194799477023019805367230606009999103044918680457082482768339228566980409511695629893518458779561895956659370186170791891617456559550331206083316280390019432719153073588616696455964081476517675367356983308230354380195710654124194712535951850744970493586903326835049947193103851779378663956417821493622942036183537920547467469464896051732774426869312346907585695409911808095771216479859595068786597462480300391357135771210232499026862587346904326896570670089511004470013085167827309100076561625219910704321002870050250598664203679213763480424492957765649526002044942510434715092645909905708757661288810018299066844970168192365209069289157354475478859484704943698993202467588514115021906603492423977248815385552351448639541537229314307006172028455423271367703752666966194670811594045549105524586319933522043778186371464934711361495390699619422475738877715772036994116744712536325959068046877002258822380991438352528979102030728451947952962067070137149252002405894271527584234376059086692499345612706110357902525787341987326233169828921152479765613095570743209802954589162024461202202322050600775291514352996089261366597327154444210305534418763962686447880505950849715958826143229990069918870420325425311174481444900559079816881357971273570936348125089138971571477705842899601951817510276812199308643232264960008605178540871792650975922406383084596188964290376467355040712234838446215787143192189722079355122694722728513687823230621062653662887782613275143170507073475905099864164043507706943711026011647882325885432628258422044117562888582926464197251526905721921280931246733398038531469951470131414334884920932760743810123260754251197728046270691945220397774740119384330537566952129020829380461969302023919853727342494787895002471869425581311331054845099822496862336741524233418483525748928092528449843317224449715042675001237435420968028606503439356990599967662516822940737343731180341939813330201973874191053367238705263858872000390434484879428180367890207448549607663764848586181549653554883979758344797930651872756493854589402500175872400563763891329145697000080559893338304597614427916499098770293489477790034065483884235830703507876509382717538867130027156753327465863245953013371758197399762107048919740942506345354058368661427804977077952351199392313900070465149126621715103519761389978809802719695553450582563669971614886345587412556264960030013517439260714577954505651982226623280240947611646133604491197221007553311379612749649156164578583468067564240628788183423850781850190163964942698130034961513689387313913816222249349193160825310768601150526614933206058174248842615229867815205621974587263539467997968206429640423509562801694427558972374261643596558442951182976857643993976947825087748288193549968636521707002913018794737397761808991984112516689501831731475271509049584308130988118887322909222759469413551168478093380060522816956837412463994070842503587526944398191508618688994221662548706089676596834673913508464918719942654387802765697226686080482980278168008062416648714311997744035484911841747277346781003099233961295543228536844392413822910272746754782314028496872367389337370083538927278008581538255779569335291129500798380351147345588478260205691672237516518151405208298540409597633501397880474745512046263425127376182988941385237489977870742403423721709646229279518914124897980898640513997715808255119394066719032017163826576259820892256681846447865611604109141374131729436713742179103531909700381269634210013873167032634528246120286836801996344207568456583361361348852208584067555308712508296017199080612458672640988319027666239528854883959923536354654392026098731318232175005796067459036509013139213930463607282447010704403365139957191835186978031770192975553422478538355914207199127340586299681318865768916788467309669316025507018154883299070881385005050251997869234513361795675475138750192448090016273048779580007232056526646752968407418480803246889973901981047526137275099634347610519786027738677456326403468238488659592405103888660658648526170995663526115185516295147693016160259303833539681877051060225807248726992958778053517659124061758544352627642536108985129385836417869298120345038322609687279974488247468207747609071664513279175654135628954309184020559948335290022092531383842866918047254944647650133290229090257853641304908806816468824425046958310349426342678744422602209422935837767587233292499779842013635103141402058751397417749947068451327860960676689861169819792044514255808644468694350020170554984380447604933568047999174488271478119884037225640551575761081644313490840159295888729385144857232201229729319299379576346697760710767620461693169144095968725302384827453752487698492960351914124573003954250398868636277547707579896646581460064856857866134790629866493566282424497609251162820972255730307563667388376947042030876626268506596264736649307811573809323115381677909697301034754940831004528021601702583726787890223709390055057160752178799580611083380389320452576389581287229432035851683784736386567795114654189448252809428517387943757825450185897280187146958166195414809629414564525424164526126344677795687885020563596456720972634440946139958611125409968318266833440101564054763780727285281296622933296944367374189303878224911963899048078168945346190861708643661687922600477349198325065375825799712111551002416175990866799252059062320136902242001186876610784648651451352553796190714859876468550342580511459266600101655693792859010341332453371315825653530784800684008321739111338844034909778843838555311787195889180221238546430801374306113930269751660367226069327291299274781313012646949655067439723530088189479210370387291453001539359229873293641673885819977540261187255927290085629594911320285179697341595417312975651775208124722458872649342536743573164917710765120032187439753684177601354006745941414340013057993547795641944102071450380275196697576195850519849621317066274644198198553377098309338815142565956043037692816142878198026654036524203663210437861286406416381144263477374258174227325949608146444970746667785070791369620123449159653077917432145798094388367994045482928649987375196144115403649653339742609072998967523588441185399312292939793367527685019131637150245207011212742641465838773823064355023693077777235729528907206960729128810483946544193410693204851226958792518739896888146202829101456546283044574151962566925543751500952673390438770425762158101977049903238139936643495496785046482485597533091971316621780376958564344874358484504866490252476224014305131482551478372902221134019541583212712322163913960174077871927493553418359226736646504926402741317406223432024314219709350825817767296931907114760310975782389201497403501629527839354588038130535759746623034716936985198265613994576152071676517140403837828807249991768092940604727897927419875017866313700409014163265584717421737888206557234409189323656251919298987412088388943785190824562651661072728521189220899091210163717270314885800294126390819503169090325432941621454919013734711307526814159435105948434736801265760359253820059751336346036978096631221361699614430100252235333716582973566431416471721945288083150717847782862469259143104951152112443990385979282941076943824591037764772026778917183756510521834947432194986184656937877444705597514388133466191215838582683032264456042684652388868520044780027803292964852076159457453754573428421649117895126324939213798910661753517486428427688300039937034562858709996459777801240449651536813737298101100553105286416360287834722041834177596613592494161604156501114821193327747104513281627482947910029568176608890983750712056806880564339961831297639462724300816217465014909200344995614409769177524328226185449363735311526186676240068956090137551391510581811508598838822083322647686339823232296278075462966857677070883550268299583106666637813983421191739943362442025964775534722016414530565440671421247977253219898857177755633953496658885032722053246408796620843553229045067843140002227809806785804727790542656252072826127600311156491384326076026752511618401436751463773135550581744213087451689411328725296921689658980114380718581964171637457188052363961165822304874309571598688347809355078346719550724784152703448147159091988109527508106571995282886218920798155638042315391646432181676919426503708758887122303415880408069711290086976855557884727744740066951479932988995424446886386748126233805287303181890429601982055395688380857811637737323886346256959852738677334168550831906657169136065081662935855807248027079654817330004240796286289047751514679928206143598303308727139417326489594404072294836900986683728454670735671105466188603855428781512902224307175165599077966756606481465809050009018230069600175052232370014275013282553730840171803217538429035160983980736689886054916742411115400813733671244015903491897993554433835137399319530435471838272029478383322802220381533625478054575059546922216803204691204413827505640762248942581655852774318601537505624529579818113618078294920962623892238535368812533796822384209433789612017358519978282559783170729219164688490421024696269400672922209026359753763633057271890069315570238006504505539835224927795776944759538693995999555299994527529966236768016896616084701201502458926920729308197290302015786549957568019433272368840821270581945316791102357863451254153476256791698622646914560939293965413068491485089539391650667598104307431103779251398818019456710339725327401562264743909711583603284503476987865050224366239644271700846045424252743693773789135945603495973237480015046315132526851426245533911998076291201179466811329250852371019455790277457315851778230433772268642863114687131726035843070506703234968821009890827384128697695102653915284905482473296637068948670836490653514349387185332972355555925625797154624517050017520035562947329236784663102157584093850258133956665386695512355795838355267901501964303731880450605266156043927574871410527200115542730794217501216848647934568043684327462747788502729265202034895649746534106100108865294770450486025136680505991850109437133725111498620634785062244356096535653955254787471681080269730880821564000159199696452610160445654276376297697308275697039896463244587704618972310232995692305353654427624451297700677738762537122485709200288646637473426564822472869117482619846593949770726609403468316220693088186072611509256568908973248798962181150398737762580344448012385253443451117441172736516484081835079832452877487936923769602594158082051003987077852312426313978070076564632677816010866983032631908471558992283772689936206233871950897325680385868395511813405774018604287093582660870352968630208038708605121073234602073291924421926352371177480129095642891945750646593604976481231905519675716992371463720720375462154825915970391786175158990408562825054401396179852618723155412230578430713302949223872140368703396110316812129653148075383295064936894422834856336752759198333057889350091123631709611789552675840737688467592022577114607041340720828680493294609421703036252333955315855913792539598057179049158143012660160601428608924370028581285262741455311834430700122819134846931542539156942322541010288644900957727406528422482135444772678350426109125866861977400013321076964518085503411013556172539971736150521274968093475288393154980863474690898383284897722491936211422632240381217047981434501970116186753003050676552317228566206178154437034327828029866154445896519272322203211383646133692325497592662892001484998547708161444558513581871579958665281456437003288579117412299675464947755922450787148569918251509537347859466102186264221828896627741134512665115453928140925622840365205455971276947609565295113749455807825946282963670569498139114209955928065849121761713059925517946857550686755986134144171352214572320830968240022202039117851834856526117732500721094425475601723282371217470469202180607447443344617675773739477486140204189489125200617969392841344187963119556677740711185668245431490109268324396095837261797161000443079748783530329084176695344596759639375680460060191989454786242503673362496603869059085498515419569517115811956619468075138157585142418321609092184301291208988265294291055786872324233668861215169189048811067044438531650042224707410518346071853267009549371649255744681046360444605243677327471550190584381749224441678745017559861440038365351135835872536481404696962977019672098057872017577566841601337097826081222980574706061157695186230979369169425318341883973962391427656620830316597837900628796381354113852336930596320459016992504784180161506543040879451114513298960687007370691848480283865534181131911677333450135045612952355080057356634239135063548166813520973786907790603438828586878299201272335237557756773294480769991183796164430569888485490505392846539610947405795862560275206334799466661489695944128580124787835579917946520110611917377906557575590166362356246938286205664372855408250305658268156099348644435232302612825997449853814972300774487249985244141681733033791562013173905675827272585588123406514532932854945718786363213203557628565927104839656577706120874638056733902846751252720679763134063869575956670080509175836902045164525703070631799598884468524117003775954848691010598058256631901241047878544095822464998850009790838599313558647438122770109189265263316811041539720643746452780870237919430972945808700011198776871962722707588875052493023992582891752108783880331623682964240188316054867443528502702752223236698718324278993570974755177125171652295391806394311906932223900410411772766655256228343405892458983084722047344101456356497705073946098614548363517921107603467310049596690811187576189065887550631335412336421406844836686869654479673948921277345778829510085868700016192694411947915163760934833532193776068307316074342146550879114369246175328682426219790405049506705210943014917889894182532584128207928399750417317732698900705999944125926733844165741953075866102822713742829204221948202984168311497830033049450592116965788666866231109772460042268669444330037614336636327334233208938408351332828827852496670101226036626209786648484371478159800382797580771853493387968579114573063338497824390067954755276161006966199044415319782070421678306207450002733040476214193519335849872402395157489758874768996035908579439701901263665828190798764823405958863155212191101763583408363646277248367354217413287979569715892034912005116507091042882294479137345221561404139871792268865683033426796713823022428853035322618803441838440739620728322388242202075260086922200273376042747390974504029401372457827009829958958063571783542557818509983176312440683133700516890553646207577921640917213177132178248517024688966491970449111660978728785234527600560557159184182364378671684959605010049554594347083227307089835090575179336793453014789415591637567209779203311714555903535953795168560297712078437059197243732354249235735632194037998154138711671718727539383917775465818247524502262765162433485717924811702541640040316127152608022124422080464410699191122564849205827362364613597031732410318124309482089382123267701749413314834396879166649939618717407724539585542256043295608622654858113656690116460495217054139655469665335095514540052720193251803554088137620165827019775539697658713636247124225060124475433707233045369787267286417031128208382390535770295754812820677535672533611335094046340903557699852086153923049625908669771080345842180791668184628764803396111762679293483443184288925720260352212488994825069160838769752527689923892410579785168858369813192284694787226434461392186470002931411813398153288482536365681349725752162700123049430361973121977502740356576527422348283357037174801832323900647631810493182580818719330854706001435382169731473635252401224030150959044932688282128154182719959221391307837200232370144331955834181399197631799437618912113544038473761164643200608457272793061580497836331456999932135840865224765787467052498882541069562635418844626498798342489979420527903849247889013542623778124369806768932333531018780755643725840010056117371707865398996710888154715420306476545172240432101950325979947830970901762200477841469929483856297189339261331364222194301329837590726280383925699459531124912921508375531447252725968284264360185010563706030577855637283539936452384320298351928854191626479180573093351911539510990918555395820577167213855901920284624029562915798378695113307998406404712611420077737295704486504124888992807301548432343214547958386423202302657469947513056880720923129477090826642827773413674373510756520663661916898145628857622442770036896039205654157780709459253320180496794382922816688367401872255502258481061698957064290555567327126515816636275161104728069007827809652582559978068063223392629390334757252444921297548434325293449071056203448776502350960054043900259999826230036518305080638754707044365716547279564875147666169459460348858255991191334742623070956779211061944065853887768065135662518944559001420559375752249332555917831502111965759346263074730907544358228146494239995599634217751314258392034282004863090064608610757853358394712056806843143214173667921853454975239707120991869027389957444295925028123675911278821935777564186031076652325141711660385120117255840023502078471633739101813258112726747631817293091685267741439674795198471214029261088081634474508707428313362880939734388249149846076826141918775260685594641911380468231233486873626831380304744954181944716536612656488917198750393064695904104959387517009858646264006161408482237329840149027083952531848330377681282392553718586146740143958775840327310885515524966869027929197786971370392708785925926451471755592093857478686017842091690462049553385894396174645916034176361745989106082412283612631529613241646537234830991674118071855308909997516517291134245513673582588802285343620530746538254218614988383828217541822851264015672510378376929198132551837301630451209036843646832615905954801554396504086376951962644174023986778278575249633069374581241370840494555895051513384150334913725279698049966788665114366403245033235448526402875086962151476145584428757807738689425505841369715648489132622727137619287871884516834904098100849137576570343659232287538270226762911731327953131967925639946823744959082743831424512340772813129136601959655893646223392392326969667381163974051901135934114664588397797161588176424847164461497025272491668103981824695192065427398011083395141714541853662401927998750174163796888270108053794609769627665367736955552114265304311374191723490699491195880399767406835588937039038752323549243788189371448355251040015882469754463786408807331484427116021406968903310817635715681961374853100910797796041713621962477479468979101953985043761152432573106066094028187148159738238157786736908383716073977591130014203670798023012033082229185243454518751989990846409764416026367705705142142030458685858427947008572626879890116182678413620185302198620954035562713895963611797183212432519070700927555366180920130039161241950809388063238884594331975308004027350048712836867080672826845171882976197827286213535742436082616255419520851724380521980863151111845723140247717318616678760125223034914593460460490365614248465030214039468139804902734802748960809069663434575100251606501736056202628728159488894697862220920391698004427130547241048520168389116862163531134751757783995018593020831531937884749755974333455646227343514536744350537402926450749630045583403712087856466674362609748751641477690981529342492668216648126009124001694694438402801379313243592174828054891485271283203938068527569630062867837341899269868917218964032626031539377238900847737030416599371065752385263122800897605165918259623124293358567515059381421706823094138028405417720014335403654442194957162177808191258720740541735060057142283980096862227134154050782310274035739036281739489290624712809340732406158821084780924966235982498729868936050447912560499425867088387665622416147747329142524158289795496303138907844370596527756640337383078150006281263546779262319141908433714077851462949508053805659737967288139782213127620460488124397545942175335838876751784483105775249952834080107616548631414846073351553229676587362323244168867184444786927015877345905760006006395317572884561300025974326034851170246099670861076059206606557994644796057297232459911624161274685269601207991501745018151863463890814962059546079337236138499827651388607844824068853878447900045121668179150761793015423013098488777091260752958730868605122717873265691316034422072940117037543473098493616987811978613690673509231154990128019291444902926589423465600803680157075283661700963838936300842368851822241067551147052681943215681137438041623788324992472160253506126717753330152992259242587115668657638918612001826818311722321703428651693596850871207971576135889593289987578510815633867011850996626374781969246207286710087447625114905841371915181804598327050991602822582921201999382548435936081463687784898488739709251274207924900182950287233937067845096215793895746576532696102575385475637686178562632799748454793727776553749883856543410248616541649534822598323175290116961913216855752889284681356308808281734435327610031475507932440214254244904238884394181603941258892523567295264927352827456961217874960385131499893881971783669548243893395234231878911861010015495692985906105940141023149321092139529307254844742161959175585807102041322036041860653691458013461287974724673565253912989284837796219215237848879724982935193289707578516135982226657726553021305018476011524647311280255364794184806104190481894734992544017535500980026320446983170583958241204644691310462305043913910512502410663921154218933274504539670901066650642091669943206849152184263180293301427473357698879394156273787956894231147451001827183257402647555912568392909331336480407157894321708962355789268827322941814894527569017723969322924824353598364136888464568592766064042653380080137970341545375331346602873028993877223847072579121609737039538336813030923382961293607506259406229592697551452502099112256063328651178193833763180326752210617922425671447555215755951908508990921165347652735756522926828945786163040438493081125709279713852116075022509516454416555090871845167373948904076282964100503452747679646051417289294600075391671735533061852556669740028837620416821319555859101065411345312925515967836664959537338465400039536181240394239682653370636856849459074983580475983983669846828613534349936641781710857749778911698916575030278992006176577693586564857323770838238790483291510733111262713590212606471646246122920897273705718299200822097311508171377498768666462883108774913259042083184992921204448979050609079128210987843036156120154857957631128993657155347481619551103883931152864892191143139370354903288057000287568103186833898194130877244386976243674749392020101807825653217858310557650690514765013778750316233693781485925042827731171898657494813865487065682823590207221352277414835500545968751701329997214007804775237949590523016520939558277709093898300991393175387943116577379206606455867106182152426610970680649020066819670816726618344424054910260665508728027169743518656034645912835043037270607172219757517564784010004897775032018561564548359906092145061728738608938945505448435520864177333147847498147883543692151378299070061376029669002994746258966722525262808632866112412972271754535601940531054202691044436011940526341598072719919719214683167436655051338958690311684100339606975543970114219704045643353279985992839410845639934250147890785945001366837447230494715001287083959602282799580492437675690252034684247614865034468686505386401193405543294394505525326875385927699858067280052462745821451804430895206436045563286676742370267739030702636267130126257378482944136325772522452650841853236979768482448962395123492998527497579362883504125539285118287694794437728558889845528497475861146417210495227353006529534345044381500798879537948433667523528555374776026718925130584549877568532277592002698388664061462366401677376537527678309671219846627135703266186745881170267054121340823622272524218881133327479429758915717789186226575630717917089053805440830149817423586547296596061746325696242075227492776758091356892380161363926912469748551801999620023850722815516484385870019505586073852135286821452448956481258053212938450908049258333802037860833279980601750700619232471490720007685814231148939993129414994837985023189030785115975863076208927792341905030333997272807581704789143719897026025531269657682438906418144901303072878228176716836779261241213163450911415847360821451734095403708373524730423551954246606945636853578228586874276964426557442745154693556469728091527031585839028575464170240932981509402591625779349753361219868021573385858241027065155034344325323622070849951716069065232261467274611394703634567625243872977266239000533834511332569752004700700353408521414427735101732407256597588627306112808234656431992138225185914995390861334297577786063207584934830411048888847224761863886294227317773617124096352158966408985769651685830400500501795793397998648144173297133900648452113925704352370469980104672908547591682481260044867090248146474606800187029084786818649215209952460465984242961765081537606436221866408488229448428204112712235639081253083633471831837753235015003125349330708168664022710795355019393768400066383267010607863315897238538961470455425884394271127466924195575385200652815852323128155254274519394925227341616298854085180056860626620859044882934932626763485265712422309176995226407785052917552415327368455900847658343983957839084780356446219286229639781399146904241632964892397076634752112345292899719413747934279075166317227503339901015809127070747276867673765231146876221085515882131912425037754217146251499551852346476862779451680659723942199756247928805435879479737887089736288928679618191285622241141627255848045594606562927235927864045062920014291144880355440953102872990955754749112231120613526315323356808035718680096363169756550967293558867294022534211867401768917084918854379859704142303732675245967323457652206847133954945787592703312663962981035497460479361963978549839578800990472475516438312812770646331242514609382430299644428649376235320957958179640683934094869866459951179756254249681454462458852234353698376727320116380893215528764773019367313252785157271802564733009855791107542378630808090879471051949019145003634775465324692143383290592161482592915768563734098017985615511080325012231186486396291839077618304379881460537939190445235080135036418711729817117352982876172574632583694820317302568546004928660780598006958957939891543515167840112951491915464677667044904143020018343227755672394434743844483197980400332033004384502391607479817092756936786158391018421885628009416257172105237313808783835029523292336143941719697719090505899071418870071487902829001727908018114540345922448549680068863885648128793434697383105042506809484913660038985632788621079583275276613641502427693288808171821164111083334822741421636759634615831396585826584542119441639341141438214271360638465229232554972897302949309055958814727074839184438970509236442883027150484676138077866626187544477171001116865433823101809139131199842070732456810927117590560082065102349566506699548346969792220887475867979779990068220600479116964156198407837422989375629098953589745314166926333890504859736450650492724997904903338684756542586478505735021041511951902514900295244861558177428516647048810378021536630560480081235685751617545997116239051810593118423418336469370865005621513426980744745247017121286206358192204191109118975717057095897229230329604692152615267541174502111007609685982016216912038183463176748165697130345514583272157881911226316431738838377766018057196200556453087756271483227843825958137265046753068830854874104192702407519601840727690569866261244766518482737264960765486482822733159889924843257764138503170156866303741152811184868891360215026468103782743513390681951656213571506354553107843440571090706465191497756495962211026670621155900870965257806136412757164484502237617185456395285972676383441420484562612096244948983328281933378512396673766889962740110986706213948893590513095499703494220083062533718125687498143893848511535693361628511056705537323181106279531030557502274944227924002629347612459456498266678771577749454082173443150653938633133393353819035717260437887258284679589771888552361649905551008568843743768151219783430466038712018477860883302026651520998755608178984756882525782928436860241316019968137890351008088631290110530496750741013359741769040821656871212464897010079975896777182791328839924751080396075984747547716212479079657373353113982370322662139186756788788539225261493473285586880315665424380917732104994858923846547700715151931183087468713354715556154471747194013389935192869312881525342387903068137546786106911630424540341618394726484317995859656721411280099684923631715416933886338001893966939549750932642913560759424400425856166872436170726738036474447574869632706490187735163447006815402081311844760990312804344485907777636742816266407900651315766698115438084289795146251328696655151773310794466037146907458728965002499958920777333439741282627450963483164526221602275061066005477035011881159311196337763355373038988492012262511696077114601225944773567213777403997476946037604521585617307840812038777220101441087633972871419143482717789723564273637268332037934872785001705037208066644634329313890349770155144863939087439756045988247691188084001319165906134127410279507411298237364951653469754613797406004548064140960972603537906007149503146247222199291158600249332929156179198365502969172718610033130753196900276956623924760312975284737115411642927265064853167948754761943399843013353949313604305661658915253931107362470981508782166475686567904521749894443066760252608385759957944950185759668794160552878624336090946514012868727211443708761087650701952974263594083430405407343362582230523214180367628100712312321862905873768260780173112402350268961425481601399765087116943626282249796188150854385849143862819794104881705206579180148278915085633697153163421660666210344753837113048433723000891279429900639870295252513774048405645591734901549772259171744006773029229752856594964324402095540261328302964542042262544481568359321354387358788800284510658194160638667600668284916107753701422884874276089743192917027264439308964763842516202965568685607768198133179255526487271483070431604264522693966679875438502292770491020373702329237191701063352333447094040797161520668572630020492536198299944065820735026714577011977299054030640032109652837276827817910969927672177292678439239251282178281145313089055096462463112584376338663834593818630119052912323094433083595268910112263870269669520552861292797617217810578636641261390144793882132305113869375816528822679416603753520735463961025244786962893716492149973421328332140110983704700080986177095280826323925017838325058431540324784867166829189058984404144091951166360093701769276987856706496937342459356705108952661209073908183865593323777789651415694078552103747072109209222230794889072758490581749604761078162597428055626042428064859642099908393079430184318463037375284363370666599540744420095548575733168047813533166412450758906990248049677538817681613375243865269589403123439602313022079191566679882112172702915306438161009565758260583719230150317963592220129418475093418303210540327291828367717077399051997459488097836038872364892899123500372745278435822959631233058145546520566792676400279948073831834188837619892203123390029751005020043579765901670019848274609901513777345271083447158125705700539320209534091604100466764302215232683984539931868698520247139341941041760903752756270175353473733163011054311209869291595613284324360408394901804679989950795768818238739692712936623896200577673549480857558336836073784780263775590494533928847139691418505948527431407811025053072254169589810996279441978493175655973061024695887615836967020546443910296133032289862972631657159134042042312460517394910052809443426751111280693039123936136257964152776267971841940490738745511431131725203842169325132957651101836381528690025209175670060864516612431084240827014678302535056457202487680804908885734766183024457687988068864568632720254636539532798450084377659071051257629457844134898549390327146670004523075478809287917308910884376486776101463376274713210883990758387663642730409334575926548195464769245864294737544415255019539622635336184187847119420322263494667747895831655009841524208427992317585606790946446879796862696621810695275289599713303585588313175338423408612988439620276248326822334777073885055638506369095366450864898083212612251287703827591132205679615869848810747549239963612556151740877211318019213792644413245325249812527439593103710263973978464562617751531983543848916155084206503255469946583962704635658508343473399704761206730778396685817537447086140303227858024177915581472761658693146132183462204195382147159555600782150934605565136199712338578980406957906643574804355260481726822335019067056705528869282899658291973644981130531807800223719038694340458081391172915010554662983321750685758260783213703780728299554926073637363859028696869666191927337474672550398908022834002651525274673228021006128612228470689865642161248610306822601741239733613324231080094608140127420400646301738696070177151520702092582454828423872113980908453056101812818222789231082287695952531137407901329760197323748737399747310373345030927896954587710074779865391763643956183761628562583334622401788530952876092086913114118386726941635858803616849477902478703633537750406790171262731814600506137255403219205883850407227669729653584602051176444794855256008893043411750579093058133398893320851414245015095482793776026284548070950079076443617460000539289759964820516096824660805215961682988566766042967244036808241125335887946244524530922800312302964920527064700811039919619943285057898483150869709327407017586840873445482603367332460260990511574020873887357938331601797512171434679466453326096631895548110727052222880370059956228595941242467820859119034782640274727733304520165011654541638615575677392052465735161093862654551222585951592116170013712752386781746717326751937601997318089066378170616584881397743070956188386429233680422272507963525990052597969509200529118946111191097778638775036895488390767938342097769374552363443706498555109024524907832096374194389852928445027866331054122867395466522124765778276620992638378738962746627008240083085770554384679066368138854253598813669618200174846516076247891004764081300441241395382234689902398000111469312722938083539748714309640950469648439205054347682071428598956000237695515939701110019791376277710001641399506536925579708227794516969444430708087893902550966989508544517860013768420029893815882990716960991534386083298408633061067172859189972292947503464900852530529096673299270760521683089025009906208017014048321559030499273758708369290525034648491277906006063096912967814285022333674682165139176186972031959753774676387908435860658039498459025907849856660007817499712562016086406039421300681147316839668132567128916059117957485113114070865864076392074375873831245045472634179900774585942589829253747120695315032634961011582824003011941768992925820288756033536999352641063583105452277539650717102637633341649134686668029327554473198635649455432053606982694709272925254225926832367185697655678165535677797158097286515009469936397166599084172647285107015734990334117898514711781640165284627789199617377956590488020993446652686789744363412505857845653143298851932331417314865878025961937445251225708701079890648715707400009227781467865185338038629058876527701757060041212541985813580108519988812623479442201319537865147854661946167911175413270190698447540360441857928914630497997741685336382613225600974915477916891556753406974003547370456039663184876011218545647697806132797004755114513067730687641970506684556721067158419390461521250172501189297033999151114479712798655408290228766872231613615947173380170174430006284438244830969114169455265837109084365987302471357028812428784958752370117910431512707538634120434821111973585270278707001665818159367265394756964575084656697308272548250353790878231710836893083067278281211395615290694769988702798795049805731951988756932397614154512542801878963964173914842993962011715063471843337736472073279142560460336037891311027249467253365979317164890934223204408613819052461270869146409207435361355409184964830823415582947076616208602334967480679454997756939867562735422547065709971506836569256975910620420366413671930538799363193743942647681172308009479960273490365892718184078840600223720570470643161256239667976598925144596405061245972257141844278650742170260716336863172544778073765522353649296300103907335113342616848445283976986834137946209498704412924388700554278967981858929102470790381823113306984782163780372574236282082176802062160247852112624522815021787601440226265118019585806668863012370489857326534897962102958403292368873402511076412474040429612474933536492166539446403416754768980791941241599247283302779441392666963741571463681557055118060942045725345795473611835424213761743466400963608575159844666740520059835103036110898532842883476436457238617324655248971785362137307593773689959374625665722621895601937235224079664074685827396064205932567074408344674813708017510603405092575226792309143247927870126886988631199673137975046939430196662394165438218374645389061795581184262456473866329732841455443030640043393840821194383312145372255609270623996678719298762782036404958964366980343960701318807294461921032916406891358932415823787689416143522080495524806985037973083734219142355999818591488136553832894050591132194284499455411284002045136094298496875549418870264426994731428383787668134721181966610743121946281336591359446639914508200797276779619708966222749539879849583950874140924309906063333779310563112489007386542084914277138103955997600357175389805233682214518740977009685761676685614790396161317040697870655770340735943542571282029354250286460475298913751998137455537828621193849878297418373358381255258826769064787489239779228601414272031517256397625939771387486246122474778016156719458920188344988500423008510539665034960936294634820749303455966236542304220047987756445231904178418904871587693354671329518372915705293670433794544987548393721263462260757962308377862961028376603751595104585113670446279582166590629321747497718663719291161826252484368521440101606831854039075555497033187720676156375200734407648629582193077946206503382766387420438958429825983063626954837887793699661268419452228685912492308607568689611255051443498988192377284181703895852002509524616234801677017069357082116163049861506162201872712070829914264827968191204966851140018497265736756422378336371378985040522747548960688197651016674205958072345633421513667422994036574222084942467742962757544664971311217117277502277522351225430023976662248670633875915368111801086156851500267844013826973702706942292228722996732592529007975262114806701417812594112067596170732548488034038561137389473962292036282593542836660877037682845758673220033523284723173457630263679278444593407739445599171067642912138719333101816304596178174540183935901571740325426948864705856014266264955911091879543161092132042320097162567401286678944108304124721349246410386078500771473518556352786996031840713050249046506399787333861920314254976228643079030888251527117532713585648708076455279978576533638741172585281564020215556533112351291632499710912859094961489942544273119579301040520756047811810564995308414712253166630259346931293930701539130755126529819728431451144240191062796353145274040091347378087605376559501032219421545954834049019573150310984880423224540124106389858568845626711198828498521709888247429798203199344856732217994695181594251624276547249864000240563224668188985080930224633924551447140157431731643704258220145851061352868283431560929636726497264590990349568009363043605985724673377400217843568531346838027267123142635287502208324317463576500973409638669937737975262645533946210528035429418423880076406102088502092494771953634351797211768075347159185979222208088077560515340159855415539140325106569386817545663008627620316641868552832544395021581516474146743488761712649722769774903330968176547626802607750764462578462166384038808470731803933673807065033245036412448466361431814210458865254731775051283665656990777460635745213488752624310448671798536917011417303891042521784133275164899315750006259494857759258548623667601452641027627292370173090212041104718094054136132841292176863518095248940543336204387557242754448375936512783056109429636357458616917114122451477778268822354613215675378923088093156996965567085998713468512638209128640073227118482058081351933192650609646584187501951271632074933146368656385240181585260526859437942808295746965415321550380380481713215943736611608725796758896948356156649267533327605408760378545857039245226780334888263438055065239782378503368031009116698788101853582407280638846765400896242876120508153062553040672484818312631612834041404339132314564876231589909792599150050094411053404665696277493920585480927005280575361933664913392653401679564053109825312372138652843546536155880711409639737373842665445256373337666398331239488797692135765545299997912761627092074366111326706449189814668055423122514863748820356102961649337118675924754608393148350086540596233908142415426510702009071324092594625452880694411898248641383934998396212417794964994554754717816783444372770052332357469572391858617470255969473768536912719696929536202664144736250191077135147725967252856123044175850339999030015453093948843832479134578878458326425507177544736514899576880961291589974727534464387068250692177861521403549824569910875795601942387465380528561240611734847910701199484340371739767793257276825838861925691268276176550975756150999232419423887177426272948875310871352091566373041164901709614014065484450395404476697739734685681672361483018031457717516394794820378228152913080386354656676131450387505017606739701300999679140358648658749527409589546458720264849649853674061390604825474154156984015101324469817061205476135893889397708809764754441950361061276689675843913808936586157767457318483818640738127035722049106385411074937739927601085129324794170096875255085148372381365672350386386663977865977709574981374895196942575806903944121945050198114550983664091974239385392401310729158297077113143083880593152682161560672186401003123204190825357314834408147026555320596932816148411302978797727585236228779010008619530147603504342156376861839592099745624184829224758064081789719999128047878408027498889006758126970720446548058660602235963552491403536904599692662718809338903239915784179386347233423625534782179740526293986834680812581781090563651191975829745676707498499160421735637263582916480199253402487051772125632103250819525386304143273434196437108864139968835859273810206508888319953631287815477552821622437178022077730391937799006273273937653541953385788030875245129470633277538123248965708962802225517612472785552777049705171647881874913319620793313175815716901000453943273873975693289732846230231305249603656653010444562358000005771440508765614491786592045033670745334389164245388208659874940185662937797403738414139473830164021227241535870130898648550994281602120223675670023120786435850929769849578935975002908115431676568595443060845213908870355789271299349108170540237401308739422207858159242111473922875403269772292745823557567093780560835162577967406894776854287605706993320394918778242330829389403543682882256307648883814545339797993511702582530511321426615185530223535115084775992547724955430836664871276114698332770855141929690050008163117189538998217245492485936490659178822538420296541817124257757452684355498066475597057422494991783429179899774543535857721356512891381121795247807134182562228791407175187179361754780177333678833329183559898127653536055220944178358897050531315448322474127791590062677133228138976173123751314449585401437458178995306927711973107844669706777922667239665389127264512688865692508796699872554158029303804739458548541248481384428814023319225280726098347878957370358287130231855804351630879345342328751431564814776409942339374502752050897736980268024406913075580892784439052047800144588503953668490379636747989466687396637029300826354720342428506422192201281570076296847076375050224025894267430796582886477298478008503263559507969053227888475779077424609957385904256527550223472121145247021045586771044746285998479747246088608347025093811062147341605962678507635987972206109789176064504117059729533214997685092959555912188433687605395828830508200848837018736789937249821448028984779798469011164751788734447575356794769415386688434501839075719967776192763497496657814166274041606777226834875572667486981420500489941270418569051276487602918362896378232342644557347728904587238484402762618109758648810694174307638886636356593299853903159133405108258722228252326822109857492488057350706856391511051644096155931731273693179358534351402689977318231961252462382677044825870598095403886354964698961506636166995073957047341406642256898571024264363060153165531891968481121576688017812694185370860162363030195569607993703861035676813564128848724412607575229798327915450897830556768988207322577849864446748776545112077962825777193868749254744131489650730737029429964003902645111840345579832334156347532584879933811464248520959224099119027338199515012942673869653989372404746754275610872551169589227271862281276102079018591447064740175492139512494482646544730446939924556588650184884359983651623878050952550871254299722330640469797213076677371464014390670940188790788702685672825371986058826286290283047659080430569653044515743029187708344047220748943951736087864722928425619084613154513888067804081214983083886424124459975095305498069056417724255467022449132939028758933565839518086068846676877177689652392782026475943959993601788675498187866636534117166266127149342746746201837568113468145403513919490944775590209636305042329498497274280297588118458221519167137408312665803799967023866619439030932313062587957580693555379435595542113536951613233320557993688890528131386364030192066011068130285549422347218829721112473330080257775724775539831635677183799993290006069160472927329966734135101892498501345125856656652409275620043217068505044390901538206989509058410613452362183101213946987170123669524016257568030592628296371144524782175855441472271416437221718776224694517419627362773693670107512592891204944169545574942437981978993997062376112846772259753465807912207075608029225794057329850148803773346946751110449695427258372621089037958540875831714109481577250990764658352579912961675283231090430581215562754126910550506896923423997176474274858799036781522897847596571521028466811975387272305778061855062018549992468656597845749613810490296032659999789727302747997383860321307921718902831367916964656605464543467539106381673200528724087450102021242342892213907212239315371312507641471876065043344018386518809536319197388433260581271837366360857808092655523401502222407544078549453496313184257742750236674590811435066458730559326516220594176321919898984438375263191835191795804513549079505176750823800451714707494053608541307315921976788903539673717779449535912186568944901569805319953703811810321622147717095343447653287638593883686704586671182586903478519053283287265002710923727815318171662858266626953727155344309369456097021475988840411069617968743228964695578693026178665851328744664504611053334105602639174708627887152548418080244683137315582563514171900163941491452738993488179228752056747826076197935747465005161468876832966803865118331892339043205467243744385047097309607105741447076369769941612149177226493353934792849400781100019826012786887488549941187470613439375467672714328245979088142832384994274609570938628402862451133940099368834437901253670133106349618069706502469315579356055445593994942683758451015614884680404616053333046327847438026958584682557420711565325914707613052079068526141653018477717149222227250187839364424901998131377717277906316450870714594726287302191355011993780418054048363140301852174795752624419960222316294707594792189555383224056901893753869215223267726285643553104329443770009498369129022188404740536498260580650770278627202878826862285449838444551077785471368968770531943293007386624963276998193593400085865606520214068545067351362577013143346222916536177661464629862201001392154750336844709439100392055743708522137240499592314083190489669373506159539500263688492023652237841196511631916322293172688908544153487088478077562583370302708454643689733789865096889014983101703693906809048511598949286971381937593241482970426242051692823642445005039951034512678876156365353136466108995740524245251611930393021084567342939575947470852276594941459211482210103987458713470530184419195964189342402067506552719019142896871080076914764904532523248107242737842748958918996477176259541219276563792416368007071545265374304543463355552416104741992051192676186342509424161761152784988486518762648779740911596231857429258153409928287422076055952765608285024092469708268544635759320797062963556338891622219281141243715140254115605843028863051733744677539343359217671841168088897455540630842906403181541117625633854839958685771062704538879724625593104750757130217527968368583721927167620057355532736447111632002721749066247987541513245425100924704950274895148827019829783660067223627192987283988244498863319518904750192124058603786507165304340673439207188930356563636473595856188669710846680728679894789168697350649876365267085834804759813419527442359182308354226468027711378679587414739263083179876136381296248688384258551258533316997355983372264695661747319490294073303710130243792881681838052393836171863842776685676817349261030285663040423919448702963546507732952241492371926542218116608049481783038572025621311540291290738936339447915248005462272819910222392909841927932570803890184019558489721067392124816569134835116490829148197337779012110201710637069071667991904907896457244419801925511305468997002419841392157623057840585301668126251795768453351464128391124213707073428949593826385482401449339037373392766052090288859491209152485833871391226848340149156703998662126307770633259583431485947068181963460078924370201845461788331828492471202608404550919594900810628848776465280859504438227445518696179726531896731714176845334175429280185699673808562814345297632814940544777145456775588893456148529810669542120829668815124137385332011639799225440074412663942680697834305096537518501909662554433615989877063023959309865611310064619164630413855061477174100508745615605472741470135255083807659019622701035342374483753966563007084686735481130437988681683309396435625084491693844026207174838138575145666302092531685301521884218399597948448042559131202039851676958963738775967175864157603858117504345692659567090443827919607677592035587340603750374860330665198408518954065039052795578538552792457591649240512474184531526282396599324497621440897355006695628587459307715943762067488453276603031068783744538342387640913559643939639823027911966056583029567196465507245466398701374295616841092160907996779141139422844985014121968964182565372548156774543417224354329213622690588135626633872407633784929199553506621931299879672613093869134070895459614398167423473287836172014708516880099272616119405051550301634755660755303611812088651879452736548476317450693595016931221234103431603225522178772122637411529432908818851301043934148424403644577462481560937003340691913264166383959215821851566499551186036653086435790955168083297001857098862616708987879139428120556370033176048877750234942757980409128020048157528744553797956162543309629589260893321000495338719453067242063486370727843895111680011968355984967722586424567848566076884985666104633090833862276302759934755948993471249536655358901597835329577423721621885045211224915158624907335748664831466579679714078267628542685314089027344766563725260587591162140628434696339767634729107556553836171602312613266574541056300002097734574094523867012844294738839305256830458968747435553022052460775538630001563358938175723127664795094480044546801517025928539317646086649404007606928530850986315568774207712933315022132819831695200823767036385956743015609126460255380098235647604083517126453002998853773825238345627380069257295764537611664283157974489049630894319030057593125627782074794358244674006448115244130516360029944635944946777371563128557698277780445144478733072442077950277775420450782163202561026822105818731054005517149888478563604626660380884788402479014816191086722310137010401357966912547050172066984374152203876319808874156914502865476676088248229793047192394514570455604879552257626482373467922903394841423347062365055511219631276100754096768859358370407486643578708984505633509209788009498348947264708051861071032755525912303410480771311861987180525173363113096127656194710803630181965924117968529320078510056316841411674884609500611780196550649441570362835056703529857470534493313071359802558314782315106937325536890625898976036741985309115365764810977197549048793080573434416150104579392114005793686630006994560315417809244180569309750943610322838415220321492775869973697657617238898099255418291648093427735366535061117804122542502842107304968767204710511951262342004850469162530948017556366659890636089538150685434093010337347959142084033011140965950122266853368437120062640456486075872405357056268960189191436381613154327258340110454082984505299333194489739553739962909306657673320812471248859913350876561497097800265083813667574607535468090715822793955542137469087259001884813415919171500461587342843201905848703716143311674104386880379289875378972833278856997170967345048034591296487128741994477346205527833775775319198866536717197099504697562779851883890818520607077646671860891080583493856868631577108324206143602831692814608498505025159120955640155797096442597689715470343681886231691421234211082324726060210556065001509123068504359230883592181053879827683541690546395932852617698976734852588348508760420438289677069415553162545654433168097162925948288563489005434136371792411789566955800038592085534919129076442331135689060308641094817568157824797436741683300077687598079618013028419562002044060493613704855113832105457743378111347255890639462592993820238781179925599099535810029612888356888659704684117310098305747689023898161922336566174047844721253603439997322925945026940279501451628620721071771859695493890213591510136346804590621064610987611326787983729847207219791409351969637761679630134903443195099766859962392484747822394161978548607800864777693977010275780727675637349866763504146585867892488691825859700258789412327054336493172372673390640923520092137427600909022419846828551583352682263603807296803670601613976569564356752380388470195476768198464204242367571150795316528307268720510308577448773041377927410224525382385357341810298473811335728321248568701952146790216904123790137177045962270075095582886424929957617179129733367498759623642475523239527859000256549282832432047623106479680319447833356798263842696487560432322953572520193108963882451520874970659390464244016496846176828834494948072737347155612714307586007997640924113742466260131423500345036717521754808200924823069509265607634382629036711966822868092473106751102611485686819988881150127636998389084275318251173855438724123344836131517935012592110496935829024474602089919428184429886563812309271609441666089992978268003461453669074026420975075847622933459032907737384595031684898176784259583263077517209892780531906292882460540586011753600075656154698608071273188308111456473332276047847191231133607215684335282556864027185852764003678963784694131033483542539662947019855325027274907916844074599832330116157528911615544829053095640618475136679198495668641071914921621398175411673956107645287665683789899926502616408355920366006512173584241539342497694224540838908013699934573639873576311377089912922479203936963165714808472698025253998507357354035597454131042704242515171977827478150655354079729327526477127087450160971295432528784022101794680752810202232943170045458852501748982440132602379150551175998572888704551770099954182633631888323743533969789841631634635635243462576661790523502484408445423662138620694671470330890303631973636730996057619169099968740115780846283905716856582668275694034931242726929746348416320425287683389654056478570325648028477117609273206857402975691405193342247113818798106461969901881488918316475831837661427438491136326651773064166420032950032597079194318532268970020838701506563252281116591989866725770714266276471924698354133857891637404603469287289431724419760823691209159635951494956286304926126811527047816780781101213785195783928491549065722389061958158893550724975028908419334624562503993723626653658729831065573027451836689083846639407251116475597555776290787745983394650348579182768465699228595791991930823138426200912251945745295798956586796220695061198838162590982184750873624544156404433131207770223230274757925950720347198095882260201560692164945495782282944225760616222328398424138092317177778695160798100257803980371782248061476342216311046623457370888797374728101382743112218485093295537471027969519759160764973267928471184406877394591957939243926953156239678399538486166324567017201355806798362471578881769982880212669705554602952968935552606664584814473805943018939392222683064148587244536985187646173450661142779338164923665560546336895011503310481569019606989065345709566767611892580910325726116988458883425726315372928055862146075804506129510871169707280322360915779483066594497525895959217636173371300826065426057956242720373403122543356689574918552918935226056428809647381395269014305009417388899632187141334998116639970631812182586898292276056150123199918288339318595768725695017691782671935002852748077646041310295159142179946746599649482658400186747444729998632345674686067678414221202183636201536453218986609413436037140130042903466782137028042135975021330143568244580172152510299850237677412782838290936764757383531360094064114803522381951376602000702695523166317812901300970948645345800533272080782809701268420160287171558851568146610156698080732157372137304733090939618427110611279174028625341394349426074598202125311690888184838496899955840433473821810701101443002210671931231638110459211647071281896821486207834457786703191490561672290672529243441503660167323117126997955709159644928802705420521138974215600889235529057116900154058073383674022767722835406199709662082628747826240772989634575115120274965170039132347416240838923750132359334225102024732857296912278692109149452323907682444949576756272404184437748387923363153918527320964378668236992482316439133770326807650535938190167092833208684844249355939482943204528169045164633284698331422528827182435600436648801598790912401660868846126254577322629869201638488848127688223570434109722490723044636245418496470732771321144356111004417904367172867486351561992613408061527084957182662245533601720568755466031201333339408797524853840517219416585642444243775522092860510856214381312308019044240516979895588205936507683850661808254849838283149740963095356887701670740657433519545962326697234511135433753393033038159786328774266845733894251089885698397579734715419748626222523269370646999487645278925078287721299478860834242622540222828097103084886422226771973198356309604237939222164782114380176834387943123642332115376323988130593800829319193835965579211329549958749575126688392216379268527630997807942983481102621180070934462649166233683653153606947965544636330998234279439412792960050778617976401806389740139098882224516453357975867773475103249616958785522976368309617832724076092134396376013980653891120100243587000582549761250879714193833580216788752307370506665003067263467036999664904405475164788901288227052408180814921566554359663927139196317180223575677836846045521382818329960432377367221631620732993966265415224883054117094131602168936443936968268858997826176817901113968422988970362217175678482274533066808235996941188276004251552094943533360943093775132677407215687914549509656719729786249190523367246773556008107529984467668167155155506205187691479565815602903305716473052912030501096450117364868778995569156348559018329564356748600963625925870785433106178075164188540277810583386947705185457018962403922335470237048514448355834461125377632489760652648237320338698023329626076963511608304466160446612450062951192459466978003333873488750383078942337982619046361708530591792827736999627542641792662543151976047971315263593374843760605942948742016408013410797546890354848899451061437159954053652471860688405639922561986333799176295691518600031134443826793161449073352531170254983947287563715626825873872852132596129979358875793540112994520048718991092868373846162566793317023087262854081247659995857411334026931693888950255828265505818072897441667322978836294339329406881803230532237697841393987495114325129488544277191755406573666931157576402700655842421783307740350945785277482097121510557862543345721219065433024286978344546755491732628311010483227431531196166500387747688800055699127525157244195881891265630976016008183425026741565764431854313393811947183291678038782217154116211837238188487712767783383706051822943179902203283098417502542298885073611217918228755834465423467317521228087775519918349062553040997489319482319935618752607056934539258885396382784460328302972811441428170462554533395589419489283535963078119961351981777035163037375769296772946908804483812375939075841374095952130373822288522090056796269703489108487476131798367026924522123984335529647897936779857892299715245793289696581211210228113884524875088010208655153253844173555607283420856999210120003242950436842744213957007117558567607187377638279474737050743924491767760320491902179191544557384198159346967885116080647411479525257715675926137694288544079232178495379372505053478110965286881462683324970413051634545479205544711498841097221969360599220503203010766024905875386839016559157898894252339762477356451406223074111643311684736985761277853114156718018563676065196764375329645991815332892370329775002712675895900364345371832750593377877799199490952191283615028244768606884776321811482482561015288844958922099394956491354530519829028722378758452099000106083121630544072008638367425035957574598204288314398502338068503690434444546780366934810813314877333624449354919708369117473963361203459528031099544882094907796691045594661191629768673912067306259180603484075041230676311774441385687869707522235202132966090230592141415318310726615730915645386498144600913816638658165231637670892504211274804127269527514501421162633186871320190478237898223414527738830479196230421241412092327390647442164781093692666466369714122246202997144847498827508334266547303192731978941410831562291657115909548375286399139254907527969883445983002859732695075430049122033765658725209417066122335293855831014064819804037343372353672311007043091793167041440185129326846945885728011558522128469630694871764747931003971022136041043763116827097979234892575609712642043242460611516200725017587435512352380715260429981825603054778643564170079045226816328820778765559290691936208219463567201243415777325670860627174629037822297718294967327040966902658760265272839006925100360476432901682272218354389122972128411276967060099353099744238722329057121436204714539537474087121738310489823448805298903402888945264236248373926735682722696723636343474445708838026558903957903870821457995129629710953284172437689944106276103306166663236963988332272881693333809195657772559525656419158088535833794883356335489530026062295146783999972776241861472303012266119706503777671914246183295568512187103283297031736523433153226346243106829366701040013603829160876449168304845345003225142469067003401154712999620548586346082861069458173093663909156852466045364387958191355104494906301326854730815190783777670014136689239834196236113407836375581874039405947650493698392013892942379479708156659254542535558381450566651814969990615173731872300849658768183239206627599782586008665421538805291109326413706909848123299831787636539610037865877525340808938782290800458575948671751295959882038667103279869856768191581611727928123840229034546000299935186997994613567082381779708252323174521594860420238862201681067858583599119495156699718450520559366454373531971286845491840229494597206424904709292656225071874661497107700229027532359762286371521814528337838894887340033264691372626034714047924424210026068565294909019170053928733238195671894059652743945891899221966990879446256344442567581355107032476024335059052453776862413858589887587350359480468554628153745074261616861758650031059375878862708264382482625079193202538300543701457577146039713124846034747047097154295242786217946725097527084270052301323814626393315842499073951811341064687576618385954244284997312131285506436190249361263123078092483930641489940208851836088381926680406621293333156287130806502356241455235578034766733855712567196905313980850311999274283237884893753045186166021880869822597296725917325057210930779709328925779716977594124279721471673503629073097024346274467963291720708646347689209197923695851909861428447429093343730568923799408472030771410824173579779356669819013408781220732330506580854987122937418732063977417772940571941715671888710821907418647808962792449055005158747615371602295806951858913186185881261247439473526553698020994145383270911831554138331767046820944351026047682552795839743356328963103558289749641251371978494127339299591441950646781527596143108038782741670636520514276090731971973469304123812261990998331195821739665204836274439627269669984783371591875974748528425583579890327671418762576810839206284903547037113077104669058816866227467507671055137323119974221319679147135019579314655087473026271438138565169726764864051314324276550174500601644246204918274522757555531146022477520556526322448683491606927801885235649134241660562449496870141177928050648485124515674878437003653298949647154595806237980866444940523806417458928460995068798219560777069836580794893034388753129033771938699164318721091261795251798755880436035453973126092863815114332534265226327054049222546767699698861655450401665468590874181057874011273974326845874435176964380455467425497494483977778320325178953018906468803258129884704205845681944382231922034981142974267714223062943873796701511127430529540118082680253679149523998870092905836993351668991692328403006922357057711015984988795830920454294711328020353822928067048265394259953980070741005387274314016139944617404964272026281693499297050717615767523815409383430764452573048586867891353559512912184635533145588881403496842686093728215608489475275751371362805885858245404938059774754023487551324129678356055703467458476008862442596761217404298694596051689504607693639801548381908710374361225494119599723566752112509173894723577144255718274081148172992362955460582977432476864802920995295981222197053532584844749992886035827913888692267099345562887386616622568460281263244822056657853636949489933184393598053021988823414346512989795392178881764596352270791307284936577405031126159459587348019692010976677863436385073721736468472240013783362046360345908316849533317410876339948743499290073050424990769456487266137683117614201691894425468694464739912985315203285121513289088264703738960002670865945556675885853472352463802960636746406131450958395921923952863060623922996708711489598829782213503503883069931380432859460274907662587371176244141544229277537795304779387596191709649924212729558365262812566429081507758137294558426516889472660732849148013506970890766969207997313147146436053616937237588874540283903061224947650857238904843050807557737241786074625626221539323395139371199986260504074390051231063477184827439348644785239900881496314287884117602918018879908475940224800189061119771440779069772761016650097575939391883040609954110829618777162150713772313366171698154459639943046443608122639447542466383062605263455814268627825908435014283454773255042173030841971923612207942758154290516490100821532282769705840175901605747796206591487943509526697505931793619168041951234383570909793428697742485451109409469655263644749259393509698397691931041643713942484021523036766702298626910461091632924112693701818221013383719317353834203180788397485327727664577886245690484590667827836456836382902590021770574303896360542254474340324504486446586108454446063468067616298656769085995871777790671997435364716126697643818196673343023418393823201045952116305345642926989928595909950420059845113704489757245659787719485567994669486679534305785935910118664242694114424607074092364774485740678601027336604981266164036163493979008614864133982065093114907205347267289320769264527115496245004843324245692717724776814698343749391867716253691471486812870595763704802904442768287652497273245407956365477190050443962908910625583848824921572499807938212620435097984885108445075502387475676912367217363736112277199735135634645039110159731795381160874270479830403536265167518141056227773846327011519429027173290666652309141187382633439262500295430726827146826561564453666632165603002056451895654296665618718990140130888645784380612086608181967406872384244792894442647819832134008133125632381520402050677688558224867126179866994620091794067903845918272808333374439529411644669280828212113616047229135273119554541666094657971449373737470239122495278757103225614610119830007915880758858097680610235395448588963457245378414611169936540217683712712799905388165347756515457643716817736554975373050308042751760110549410196183533734917246612238717114232134155983759730710754678944737072657829854899266657241041441086117571158911602896150643340032422936650638255688749464395998190886865709857885919418557801625353055851777939035472713998478522250430761906770592728165675602294436489786647947304811287483234743785408874312003503262969427069052677082897605029569816458422920591263508663427162915357970944730412283171675718176558745724614834778839552470246145578856562464687132359022757609343698165310997731176228729740000667714669744935625521402939419308102700438400312499429662344038238301324846263104660961676973859219728474589817903235790128512753246329676079584526875976202315873616135356708915079325052892826293658484194441408041571701279758518292728236176321183310356280884034603083446164262255015338701935896873983579424966016973249302792861445921358216502463710955559414296462807614892773072913497181541337184596315486864386962443596693399109026446016156521094137701513221797316329036419063827676339246513350017328164207849835960562482390485449938547565413341960488615733231139705387237019113031242963686068984941520245686192569850169123048010260775020631283284072686984939889795911757040293604681986236016682126095220270219279567995500143591292631684382237348279811948847154647411836550383469873877122383817692164142786210145713179719039719863725648715255777097098770357052799766561550555778881770322410057477726725421304278403715568149599913446289129971591141756395672348370609862523284363992566316252895813350010914580166477619273086343821459555334524638457239048682074197346729080086704576316486745115886689513133550603288694152934930254635368381344861394299916298905531476053161107838846001994961635335756271084754298425464978064541347984426625316946011932656585821642480498637020903242310118984744337026523331876373238167843195866967371353193104780920104713437931077870318084201376414242586384649974034007004714080787578453871392850817114804377497580480287678371877501576825415704215096126360712841500541709196386239463321905163067461040648845518047845269090381502519972084610698690499042500399637688648895782919497952418967510919177191953524456553796187065378804398716655039588682113404994790869251947027180798180211753183931898527600960600013671250793390895897800700187175995491289321438697742114929661786901897322324261485694054849564815839384420949255019800253103988124598738900532829823304239523937849695742961678135744886682751298255339561338774569118367965555719189652592697989389384890370904727025479547876541709088454598098524367628911146694576543682285143822630524208124263509372803004320604331947003758575173307224251682349924388157750463435517366121021610942815957834199479613415971407993835006958875913235703550158193646187066269359782777765361977546564576233684230316223870113467700980173672513920976114829858753801778846991239190684916340019771731645856902775305078942124042889907706085779235098625339458360062799983181805356140893376980955701473762013154713166164409741429054644465732227520374486638039701454600877516008126485861041613356223075721063282144950314496337739061568484624562140682772439810190288833378890678034403702941191519369289252961301575449403610227751447803933146525652224114631963418392961909109970340384263266514371931680147702300291402415965568901094976194411075733845094946136188835620711673528214029099600237822845374025907236154218936798564475108444244327946695375541756176034187664654238255576021614312305548391748958926407547354154289432157131495613235789387619609843697024992008115459210861550934781811905936197961479085918071940526761911564649241678428460163026619296218406928552284325623577783408886752015165937852298399213777012650390313289605338963554248801463776741909269531226459034292047309277461582946752350530837112758579350086632796121121441740320239018960815769009248672458806373405018880161387278754928084008630115923716646575343650156814311510915724396428005920151201518256908073514897499041380551585557883359828016782570903386767931381802493265428677584421108701154489659821402328031018186681671620052153412974543052831875200432387257312980336126653279911104286767987409081138676174633560676907634633348012629991987561592444939292992763265418783613286930175597439556124326068574973017240941441035091725229850235326803141666253069340637662218582783353011302837731069960184825844589202141792350843208765219955568195465826743311704495998547092802664966611240236865977690138940039873059355925555113863201583748703725529863904309586417133179400683416716663111540784882016205104392223528412622893443811104879651536730344632070089610860893168960465409824089261625325046285619437739562791790176323132426745497344210910619177274196044517662210914526137452158861483371035207210674456118778646794420654225897504183767693446891899382473550294471460645439286141647219182515983537429788071214386263003808106445461462266949689974302285463375540828914772758942945693012433327373542757314920230199957961794956502823471938489831010312315758582253753651704243848713095235666636032042600246548979907646714558749372230437959996321753351884753417579824361898148309305411154706985601773472296705175107054513345746627436034127480852400734114225041496747490131060784319534551108748352586847317336146715412548262763225741280767214317180649273134929713069043175578644790912058022109422999471967087072992721801630143132632598623997742518425306468888866616031750913119063392905433735928874446058433639308770385621775309786622494017871707910198843225776620584201360783234998433572005129088441403489164209713371306737083238979944064446072752901981426971896009270562233008783697609541509788688258817127604300357891734384174271611031181151035964896945582432860478771542409498088889069644425078286273336153799608285263745554806761444167932967671584489082590921927853735361891157314556517452786182711579046227295703393784431660821795010625959364493669858812823280612695254077429336324477397508677577851256518962051860456280982362150593235989370955981118227388907042983133500306068897277501638425579108559198406071603333126824453072509894001937890798464369352032871452223411745513280347231943256119491134707727844005558284335094565518807947374793684361204443947911831646826915705441778450666731968372478804952717934335724454809787080514623204434604134171884402885259111667210418129621778622328644950200611885424832611756967429302642180028635422331842823496374906435521876640934498815664945710256462808761474750621097019093541258503394973355854415798616752308742939011729574628443880508866515691018962219748834883738128398401442770428661753324520067043309226490463391898585151189756365819513307254402491639506508617605353935828566622819422858706160260201951461632896219502504508503976313540356632981786557419885166754361620963493706657590720096692688262011164592253101038726343157192718668471979181933890095117764258292014142094723430013130956345840265454679348005382832966031509385411707719147528076999596399084164120128699716711831994551726242042696943134577576432909360182117345509580987227492128784188905099085858864295385622913275996255712342503194430465381252568567614934255250961887987284776473074055248831316822469783321127456763444700406637603797390823443983114543958019513559788530542599354102610338407670345238423250153905038715708849427359646772030703548964364885072632599043679500345328912221118395787957844320177284092748150269465045427771408627543597610504222109598395413763287392890813725871186191933555446781887903468743604438128017576117588020191397026418321886916182107792050748038180700830900262448353709068068701650512939737370541912255322409173932049356263409963200839501776477251970210762663646082573823964319679527178699908639126681432186822687499576317176363345260667169205206240283546449096427893674947787818659924557966198179809611285807391078214957936495209688700072030778833916230209408841525203156128822619364040105385137589886579333563789696694735393267249237020112223219565655925652814429083843796293333704197986929124855010317366955053805142080067441990781417367828426709632870513549094012147044467230207898610544496327368631501309015403438051732860433390634334780563993058514835059604924276554976995295274508438787052259758943853014611424916593662603102931876020478794627730448855837045106050028661888087367695417225797507297517633706585669670867483280093335594946409133157016151896102095668125847080966796203164247377492894453484030415834602390528813040947975414482681119010716939709908876544607505872273342302184692813015549535978494400694957448290830199216553028078102393273602456109471515653719347012892504352146261994895776194851928549135470416579312064990516465168553868516639239052423457083167617544486329520579099576979717004146230295494964202376844191644676319261446866096992954128650406759473189106045625922142958495665249647060248655405619734968821327190455152105969587130042648083491289197672711525679372163123407408708585684953040958579710069457226727994151421543095714004628583380644485159320607329247581488888264396554268602663865860562775571678922856034641068441486633766062917233190271681781634161456667849288648043938953319553624539044936448282740552419650685585929339918206113930860084706589625542185900817954714552630687611918451292545676837899626040982540115292090472363538177586134045867812368729713747444188606654676622264502649128608264925698225632581816334058093645481257683209832141566451348366195081572418450925719566391553353290820587699170764924458881694271419045534297859891614051425774661388197689725946128334606861974725263993071400641625231874873038607536831276368122049265568664913895794461569230531857820749609149386445456757295028576276960839867050351242526517414700035267352909697866373316770200365308205044526201914865144065916253195839781925315562843679717737459252743517203402735835786277150587229979764393566368887260034051897484738923154708119392233250835435081953397463871472925679864493618781552145075470252181622016699050641031259087269266233811192913007251153686611432021932246651992224449776625653469729384583066320892067182536229025222151181127892010989043923338933701993988193024548046988915756762786901230302812487571656679425762483381829054758891643585303648108335274939163096373688550208487801628579798104758113854500433412172148279115249455048467953502083999190428419208789168942622865350065089261801800115648159992529155031589735137329316663008947032166316042501150517761576321509099626320941758128610890035999871095385883619887325966804086537449688832166928064030594062434010955882684020968842247289669580355375980386200243869063138000507501527000350623841149253131106961165467477394934242268435312055849904688143969740351605465116972996257707920825459415143610442634202373017579357238512368881769078854003415476705076505506236329716767142311360892052060291762048056589135066446661632197959166838835379703697247105169413492708105351262959645569622072178567922128102371855933060632098163519292143187732074067342555697912677528760847959154795108305621987653869205086686667034460625750339138014463175628508063975931552271094383490196471774599205913933693884766620950767613420172105183123719384604211749616221783379650833134636533675197037994820871684330343740848127415687295818804809552803392553633388047192690859319591883705708995611933013498656766317964665763586337551331513285118800252514257070822128243725954342989684923103732214689274440499654207945451780270759262091489384734012600689299468042024014350926959651132746576907697637393725087128906724880513248767252502642809915810050241563827210998280232946065490624563725827215640787044033589695509846687767008380326043570872795866697973956958626789390203015430280331256479259214955629357526395446714256317968413712206479158386767658379435852117872393123808942313218918791764714112895906051853924977941236540979573526069261915510920163157547933533576312767731486755765064904808469362118032400382693295164631634762416720476869170824940957135800473252245416991708666401391901631134976484769803769857560774843665260229802837554265636764283284283887989610166873169441545796902057802233457890137624784529710227946019919348870872413519384669392242018616995633989135937251849631955269003567102717116178233639329843432397710102527538358046432299168818809057441762238452863610830280288706098528348886713647234652576292578684678036988048724743627656313040940294653846024531501903219938366458327059230133964080561349247016790592158406828572180408931648017248056395870429743757766230920952808361951391099368848650000738143426657757448607838493569988620612120793069640771544038234065595546204456300139044986284343563537415630366871245061080575394650132117861454151516442282955262177379425351820688359186348715230687909311570844145534514892869576714139833302859977748208704453037249919785106020107424352683497653642203397032006784313638911922136185111415510638904666650371691909703689163265597058931658026552901212992500226895866639381798434389703612906883800542064227152089294937302707239582026124194362839639118827097101727450226921107996091195369521900453817336786481335480569683862727403468065166218030441499085892199892182028348791236888702838548875448309873379169670182808385187393992559019812812286232402000423465270423279957554578639090081690245874936958646707426564284731479911879593520683095009481535721129791717687953150702418788020871907234636115451854128268199812305875015982769644789708343211367554424158658620451865375360482234108716317794243673989803887927950867472089900855603095656141445435428014552627013542570833368993447418215167272631024575450052962784273059648900616690641668085514223035323040813117297971594044858239049256851363662096245062575965325676319504039055658003242909586888688385825931085768053817034693240759373540738631278397978456869058465222755928714606496614125392972934011539637686039773203486658944065451673143333847266072158584538866090442138849533903027984216152527887039162854395158297367293256375871691290356103853416280950203431679245885245761799998969355404303321220382266988377871768720162344423547713315050907131708420176030804069466252280866276059182314754484393719292178136358970177094719347352461413349713697503302623696331525818224186375009026949202867298761557102782700831423741374492460750924277941669085978353453405707299255433139374028467344880848334948607406142836825356744708822762494182116009078305915845538670525437088361060935355205599009331190645346141170920580745111062033064594034114675105587368685379135949776006626528508762784454156957282354020087790734328114803536260502605911997728726556485828546473993324375669156106502682127650530663359592905201136448220547785744845281694508218538061655363858179251015277673026111598674897569660131037190355884593786972035261873044711331673553479661537823275357403411768187509794439213872146645675554047045900401666957161700405398382713597459727298598186642679506844418152052416601916409697419266759980397818124051615629566285720259003155583656834207138851464256890158163760857036448883939661163116054343519529718359215652939132874889966158091796199013038891446632251995990115232722261568409328925413971382226446654382305400691231453914679899382614328716417002473768399323320210678976057461918171641750390446425295503366385190979423097859698009142864154335101393910851445728434790780980104497247929181315216010052913304249836775101451720570681610532750458632928083238559116749003342197259191892791575704094438720766348615694836038249074370913924245722279949933697852704326253293506696255222138164514987598391951831360439342452586733873537779965975867077809876205658212140731809309715730086615512558443706733244078629578457565875317024022171927255283879569272137472732308285881677444436609810291220974777443117021043765169973240841476839638312866669987598344952234329851928092558041789206436350949456816000155042169483689347270207978133331652193220356761423524162849126984124868333876126819851796697349547586390858097646224846709472059244569401085143412623860333398374518505415602862813805266161025607091278924488967641794541506055299251969769178337530918094792649328015238497474792855063654747677194936901597840218797507047076446557481986438520879557223055932394171253054189082511350907408769296673807992214467355427608036339993963323232487120348810460222063063114451647948924046750542111828899081082912884339596753266292815551109860814840530946777272617509750103279223356037716293743743077330913002693218900405335481038456269151614975582462460635593701618633387545890211064681137287931723888861285517308124642107131358191309542332848544577617541545550271361584865814784158233293754019968607355465334989427797454857028984067224195006862326635062344297942076403934585619281104817101862734842609921546238271484552778638639802679875901435171783914186103671267799435092773346804125227035662862090838676982022615333356328779093108815367104805360005046721062334125721373857495319206988247558455975389158561687968765716704762420016428592493113882503646754062466611007393929833528558374263419713362888795299589884430209508404622314220044723982800381585942996727634578224640834838319563583312764058243503213330616805231574880199612415372916252718778659182707348386873173120698653527552589076515134103409161070307550339026279897296406170337488825345432144792937096120009417544934551207442605977325055005275437113410178603858485921716976170861842428188921128433212655574044096955734756695622320671451268040841905869630428776472624927392778603091673986542393990570637887777868523391181508014445255780180926685582432580001196506407427560074635430584111158166860267228144789601597006198665887378447844003400950928009740144006974100651981721466331249607143737510778017273363747462961553637308860178558877488628853982270282527325079991707502197631464415935055454988180268550211860584693565390194918709550643490778923706756333266399546485986827247748370185880114229142700060082071394081055682838012435400801636896973551595739501165577244265209136412342783443071001980999243604113555861529551665699829249628854968003500550394309724652067912122106354225330373894002628594709320332076225070742139164601862610929206895939892048694899886654449549076515007172085446882730200786802362602897235437135725943372659617281135423632734242755379917848623736545635495346611805635704013705988345391516679886411893884227667418272141638558105641166091439671482477248713506199036319948376400353454181661796866858368007626175452800730636325318186123792479507506974872026428790387013618597380929470911149933441305455453384409339816118625995544518461756334418283067521880578881895298173416327716787647279436812772823310476004161410138009421577616227285782258981250394150858157492023475871241132546010584383170685273577082017186392344442999071460370789603669343914268820633484772948125453221607858384321555048360597040334904842777724762817396025459754791627346260317838898197976198824409031075615283078954199672096587916021058833120444700865724812651443964267770831037964537297952387355135562967344137410752398577752911807424497929161115550023424793619685986126769379220430856271754108746217195186910992884579406714811151580992289569861399398980382782336397804195195042698699103381509093463540929779653956407910099026921743347971727916740972441240691622974594715773712779521129637803700280254309748672178543880378723582462403818551169748004649986784487444472916777180308987586513746819399455399989255881698799241463995070711601207265917453529655101491585143159979973401471941381986030195737060446502494794041292932673213334850369777328493264878911703946906212500473399448397115966008651581471286549511663687207998243909552091007967222473931870554283751709289346706739398811448982072456906904209711607396887194468720376251952065021268479805285375245332940793117301273145025080254090908477224155173466147115477099946369093587202143214286051578040433577865643179913769789318046076645054057015843903809752361549431601924597363933833188636669076020773629847758148413631935101335266467348672913733437671160371315012205114809448033908688294235882140542226436542839252276808603820006941729961244247733830233966837773405406800159682995783462909318441585873414230484078099124861631748559598565576325599689062337080755078537101198508207870555207304640646496521018657173654603515943529858684068616915911325051533867091707387867164412079742964306874666911380379288674426064128805836855730023618925854008669849472016900631562315727681347988257238468488434131281923558497069936900874474287356623885855887365745319100976347642954765447946408221832509297107108941503374317698008088954718575147066199065519351438311978865415405138507449893949514619753756157359342720832185873008148356033873071111070689670506950186048481106753121816083971038146620447901944471320096771016675789766404651325970788813342169464228727621722528097987895214708781543028547218562263057942772253658293845566851103459843822840044786160227748152796857293661787941420296413428722651616521416173083916805443761221145775956935594431803717831057829038964660722178949038109007671218670635034322603594264510169592732792046605748592088875320552031060153805181820244838800886058773629487227587963721585801932235158987299821516815702455097839874795002098711991933787889236286660960145204838636109462159910554399821610399585465061549713706747800454073738288442123641173115331926817013486181307374965827085664674110244156997453777921049988246237931675170250897278040481011331237182521241713802283038222522018132687414408776798285871503270515599116012133722063317155942994825203882883807855054832599758651939918970759067021970870085752660534490352691697881004582507569838443535903922285071937351652997555632816979757123606495665219428406407209846535928863700878374966291728716303688660108425330538858173418847587644559624099461509984809963121947663476151915057949826521545906576183845711656747712022987489257201045160099318095062377370980237399979167949301321726748346845468294603807523336783754901281439898892529344493800869694736146205434466897302743560221196720364736490239292857673382928151810840516277518670738167063833797251603657593793904919577109640860040179126004947606129978320563619749022546460899263316130544461024305773620258730413239438199690507938587721364919422063925068213045465387915800037288291653723925776174763824457971953167200447883323061837300821561143471829775374143353452799431916642555104712795696978611485910814979220934402161900872627426289516626261064838641410691075070491326873198653903735546512435529554626545341843058684863742700321147602137645721758697108850673631905521654356106618939600906665705206940124241452009291223922997435549286109278160193574155395433425064621306355309564366678134838500599990981603803097727034555709776958303856286002621627199707318042992965454907744078174504716762107566258292913842990314972106747119806604598527240546868201171545361171988770380145898482712014684078557220826505379366375634097386116192967283248974527607227123984161676875695957509129733972897113856470232852619340516214800043823175787861252404110402974753387325982391597176669120986353669207796940512411499463316620777818111261230448931628242463335437512862572526343458222337986128301104608769567353311395063019668368530388442808075708625521606940781320257761991818184362691114175611742911975262994232404017683767760971239818242460928873899702400390299377092520228269281108059187729993096698497551883153147363452840584615231363333096800221768516325594505956838603012577962480620880377952916071421478772485403318151379451427546320293790613415881940157360830895141205750965607741178784008622454153920377638800811214628548400115265010143688440354756694046232288025309069896074481493916195188297537602389719110564288649664082098903128595179940074196578036333782357111680428036800124969532933425767454126559409363853588389575010223459814013268403888528071658042645394317218605945672168292695008952539876349181996369012206102748250255557116804093643262525657775482639910281507103428889964605905357911951905824719473642722131686428233333990199423881140027950576137694329325283699620340126064619382294866675428473280983893383591620842831560332628952731835272974757807648941217132657508328114608571267074132111259378304449501731915877678959127426173724527960650812544963962271251416989933464227464636845759123104595478849683583744508513269197835374763942543489892687226840216000663393293194869057596047098713594245035320873799192512330997734457127759840784671745815809350817663293813827093619661656601070679864923846314416015369501314656855529535461306132261400422026878288390834663772156600358013716064716467859585595097318361013543877484301560531948040992625285611167813264149850900400077778512676760505578464470752661191301021582095220227070116333466439793736144831412141169415732169505585886602776519928249788427815274784415401244644551601354667730546749046287953553177818536104071021009481166951235053408618488195269055251154584849289840050558638203085321088380730753588301884927295818404476542229362548360155019996329705972726614322106522154550956718316167680770077283382690352886672448710835235071418466133147484544076081239595530427028323137783623227669170067109110657925419352002388758686681949000039601679196724366183832763024936444190453125261063812797998983893400569400006457670575312770505656534475240522268927019684009098935819604068904286763907482361259003738477884029884537972250356568503708337423053796094970619537634271257250606947809368225953930816611518610371596900576424278980735871336539450176614502440500229500637757784798588192479534102534567398613698951489324285909533308070416171999289049093672238544733612266989935041852830765192945999167534827730199730508952388444432631172937369096515208854774819177165121082590623886660247855716288421045974144988463514915812203640896768514756576585662201294758236584851344723498906807365441336153436351247351278630848904080600104490499209911548555284452490983707974288140512248496931559076368461093242888914330600902016567519851014742920028093493814616776416826735751714056481819712276671014214822187510297727642393125423679535690456115372360468447030621811670562803193140463139627778735761863695168534682418897569736707469888297457527331701758659507036921235749933262195280985059136496512953078211530643076446578954421505170424874076225632098326050375073211275762952074829771287169756475903870172728886017213756108099906133903220827766543162281337737314541508605817395859864646559080917285955368638816441011748790838757361044451146230265906653222317434675755500010115101682848519005302648258897771369711567667928135437149923194770067130075009472080838754568546243212570417600212772466199034072082862877521344259978251237893557030353426724532754801459320836105478029756732597375086016896525564489500891718576696466614818779152750239998366571759941131234457618746503242480244503274148953031569714238334779252970775107816297464086795029258904377225714969245144361937279167321123600073715843310890966817122435945898036262462532250742042239373175971423753685357579582850512929282399358978559582419374202082100145368256841485589283956399728169623949687450221086827401282101888469000230164806962349957433217076819024478017268719443033950018910447379006442290780148271717126120614135839324931097061190898169518498288281949832031037630838197049503616721102026922863632334447829573710087368243349472608484351380277091692594048114927954399478859150672960302151006199236301267677650750505354423549792223208098066719520921249103180264980252806150056506403630716138431306538712798839297078758987672902412666505831527076982618605155485321499265698170738545061096287870322363849039504791433903239249915208032672262377907169488341100240925261872413235266922177307230967727273708083206258413650769591211210138432597568914488653095964196038482656651570402256166059709984554598934821298161483187564974323138697296334244375159093245100990534001296386733906640688845594244390792902520862663044325421405913686014097598451088446428454083085453108936001732695019406201241377688654662805305930737523764302857829102373766187682681592550612614138128970759894306394904283083169493142956177489649094945351241614673461422930551207968271006853423415055536792172744636264774022680632527065098978203405762513482065494510754323481136195074954796859407761911032304922926490941988498044984719609998259678632259719718887734169124693734149057561379533618814238074923375820270842687673141091587097088998149556319616798694202828445600801793092337058560407726128961542217646836587842975483629857189371369902037659568448096797649212991191975086894044211571293934512070418425410443418604668989306176763116614848334835603197545354762369632276988332077835487687967929715316360201053713019900354882542498887211026824922144399351106041595977306290673707229564545595625382473284677133532762032265496037781609462721288037979613821132145041036281409715254275426678968977409526352441153736401675230769805114330003675386997453011516938714176413288268727217582277285846246377316750226743872419214690222413277498921187967866594340942362676440436531257387215411970335299980045735650030542066113112505901510788459116801019083494051063923428347513870017241183040724077754341361636057421431124892697892216009336799689755220726774530185070519626048899999447366907495816473683092054367459265924728068594445451064121221176086241148289339288768993829378044276527967038902473175213795774870375958897812371359133573587530388066413182568052405984971800241506732522230802597261508036059739282571580105130586997731225624537253454676047111921423389015148385967049712779282296807259971929097052198264356591700384138458113506884567846069661529001663985731853073894557811043337477663479930466136603518427037057464900237067146105844745859229175971734983876739116719370127198783032898674635746787795965848346639508576590335973751885857659484194896001175157069977071180025256009697282409572413443187505282569965538967327354557130117126392733923946288159334211099329549315037513959210030958470889513724606887729877455581898190978230173720989217763472831061079005547505441121448665921666597336462719406986751248099439000127204759373442749022365823461794361288228249469932916709028424201164300289177378648264613902508474901089081208521866397525647582318786569388079689023812615021275039064651202027274098567388511787210272591234121315512414167467238810798160556720514816900711151704981407994871012246660435281356698684814607481144727791251638042614853734458750916384022514302783088103929546869031923158167299372099076000246390246680854790848645103868595475363128193289194219037301866777137905192435819152485904704192023848883944286635676130904127173385186876852062378034732469137242987783574343894494858290070506685660041981077118474971793061237671032564927507120015185580609328660611406798916656826124064431714178268719258144443673553376920743659709154692273668967364644731259071289557997083618197575540454458156943154174732301719282009405943038199625878005454984002184582620745936955182217238228009047772948135973362887671709901134842739126046161237138770789201315273683377762222015881995658325118725523743747727454505720272752665102371845459404954410889221134554481645836401545001721349641909622381896942406093768099419972721900852159924098166871621410136090553896265499361103282845468786796887058021315198032539838261899405276762766868542672956543369421831818200183283693818878110759780781235721822150406957426353096543563759914588812350771751938452819537048591486016078559084611366925830605772146825327849659467729180028636186735079298579830506457833100836371811472187900744408888700691735186802092706882896702270866915943465853721922922340416407151722202186617734654390838057472683184941385820974951581555926752491811190942821076759391665369490050164280197656324558487350033931785173246291782172980762453258222276214967791866670486818583489690093742615187907666017559756832071289518668681545303248619858011758602977271484732524528659688245387605458845755587637652530865390052137827356750012545410281158034349866316820470487501241773605247093171683774494055346788447868990497762524453981779185422248723372510027733309831696795543168972575878622495465011788449828987380099945563145105513169820352684634839955287511095729903181581081802191906343346244626417272725362221050408780454757292668077440219667925581323188004960611989312717845665523896756897505971844927507852894579120976607538190757132333764307360702055873510658086036169263053138853269851256146623715592288856518593903852996603179656217512550207302468379366374734653407739745598815648775243493754057806389894683586137051039735214670252936188224748883140649928044291793105087244826670146564062126039698926725248326777653149933489898139784966074468118933961110445472287572058180371857880677095370180096484143801986610541725494988325424011798095169878416302977351790052856085618677360123725016586483454795026385488254721433951839818359296312081894401761216204209101544202805361818227869733382301326304120676654254049741235916970491719549097744882271521232945567162538310528511647356682790650820275238947758804490438749161190204237138071067041146694062257699251192724340445861159161238203775749966408128084798733843867852213094480549145243926320282849422578985071850977244072286809941812335384498779216900368564344519960298161468735571525342758171058003630223715010087398341743131438298636832685738683404729549973720131508876230652470788674519558045875721280553851168526810639029421385852793391560743739708483225034092331043816562118117247806935011966234206561117296745439513343704422706790379887166577612072932695179358859178209371245313207475515044246474026964573073688550686032099605560939964176901786234816347796656421433353245137388151086494322775126938925010260883933147819582223607474709564501105094301476085022648314814191780807682857496589796400483295282720771569513492576632504741160736876703489791934680931248796959248584635181648536819321425798420334982742840032666097545336650140623240364317132440441651293951584346609537136481704784511657272178741888986686315288447292464100328199434649510351497501556342248143439882582638136705989965942669410590335613910974147923713202633578673762387539038487961536645654040504252047007875784433974141841446586295908532188449732212527460824723496697028539068744376012217337393788111497809462508408756579866150972803650794521298997311440729470337828344965769158792963577732899423878076295542020691584866759731400959034236745647819487747239744846758230812157833742766599630001701916950196863100694173688834548027818758845247908866919280258616754402850060635557586940068971762376119411869600447218940789181518067317244643223947589910057610434851978275385965517767177314730358232389223714550670912789046061307811827519368244620219910014988294495044691094870274291204110808375821641577306590718251073709341251342551198677100335089540877353599733013181011119816551975202304550383159479716817534238803546704364188026834932797050934280675229374623771860480262711349386482029976579341990278949410642900950373215703002301721216635756974796429676908291130142101514027967004543809841275178554097798132331928173490827249938788155096368366483655782873826281528069230831935405910479360108106428547344664736016043445114445261619578219837410164566329810216580613431855090558336830347418577957092825430705629068278033322917127843609500335025747084432491890362693562451115582557075081398812068606138352716557986849448085275627379277396761830914259045392506853651406221993705463065809935537351193523317770788311524453631556924167909768365175000239517796675656795332098522746344584084598204392572592507875004610140658461385653930228741797144967460184819290623662907614337123931057383452679093156357728390870122445278136205550019759733408595771579860061724438979688025463444880615722354541609314566003842981073376979995756946870663158569081275821087588540382802982776700250871807103299886941118097012527519537116076984200566209483518578808096515949055773019080073164178869636314290515701459563782634969259881496983136172231265036704152447462193617649227128172789462791172730042211399308724025099489588604154213361972501840432744864490910875338812231228563702478318424421610266411978377844542853743041816683161301837097035224978397437824869882205940468309773999727820471175817531197091841935640536850047259660564757263792693359564990880247160763296654415396678280856979101346156872754644375913257746863222859322504857732887937371969756804357066356519698462756714238495461225611940590069933790627839767572209659978275081575210855662392608000236483172061657733806606450531004178041297556610131418835395708758469205481341227569925780198645784109940568493983342384507182432932222261727274326773863752992789351208742237462289221700774536843646981828403411814702513278528965778505897512502569726202648695967508384498165463708560584627661316551453190317986142539127101781253652006538650454067951711296899147818847583411264261203235404995648002196966051436868261790890715264701819905219078035018728911251936946562448934525219027812120197266498945468599801261350162968552999208087390187136035110843196218000697190883696622400084503933522624222203450460100988287517395528611783228474190806933689189649142682715655333526636314302883014888612235570252223387495297281453406359081331559961716080423004288504681261003423709096504360222117364128404215997729870267045306931219652148596937159654967596678966181800829591436557917227783308538234928695812102551440396350079076970901344263563252957601691384854125901163476915088917229636290932127408413049657308452403660047449263468052992022188893320164674954553389447458952293894797729253338352756122441783324550255569906656865494873294820691149498650719164413085420327811286994568413725395691277002708678964348432661048534951143307596205610522414626879936128131047186082748957610955841076737584730860114657046246747532217764778640990932630919078715729236223398191859949254873338434648394119782869571907081347111903376069812533013764410989458385129010189279017211902175307083942756458497272148397808725279733839653673444339512588198008273599587908300404582685953142877777139072402253041612630380689962809012762068594665159653364433649696412855199943007173455509710195008741934751672430596934030499627262673794767337025534596150600658536407988999800561791981161428087032441716063357309287769149746051132246006802839061097020594173204738637925960369414790681514649067229483489076655660643898863281429891793843702479476323324539347286796132351130677423888265920312150990225927103675884154931411804285999303746277305866558859984873217262341720560371606521062698441233694778808032885599483689815656788474615924746922667379688870100163301984239700853009719839289311210517564083962836342326367379408451701686496643145140357963529781726907563958537059966621612245471016784651500583010364761482071691867808752435942302128562773472224220996500200259047094177584266757700449214350184232735004605306634851098462014876777256185907181361521576766792486499275490553272496641282128465364957584837521021818164755593704101346517407974985672027764578534048961946044379991312351904732554011177563349845882193767304287470533257758281706296823183283406534160433961614370080763639951606691570115223554370818913021498491188478418062739300397870194378686323833633242456332100324462727325499862073025798743072358736661716621866523899038003501701681291009018078706944270861929690988192094430719410900690840906679295616981788326912571756715225215802900397975988971040879386651512900861391238905327641252319562471908123379192206129447582184947442583965025775219515094015802723892077824239296934156098537879488455203289397852002410438333972519689168111551615692178503235572359809436890953570413061413212906919230041330013275333441840356945559743000329969278458999996021477637424933179947040290284717674807027481405816997392970042364770120595203800765983190231890921048873266327999566209596809382020793873544738591318134999238436682491221875206663934468563549639170758501218213499557845022308187992436582357730950596558118860049261873320094116513919328917900747207286679509197655374329410989194013094420353668999046057559431910500953532689379173838359852528181740289703176614751798200672275390063946747380882450816891547224087738099188374581332410088095331508392007961256005838740157845588344436469541997164668199119418917655549447876864062607980138428994731388511818675301235729232511437093883708026383910994185398743737817725172125823040483403137625254348779495201999185031990785109558834948250677311168483456269638156699417076273250952293246492166553305937296672728010463201778709398621610416284242623171324589922827292859857284140405653409898076046024093956239233150087557861982293703285962230598784902549351920504185492995286179893400551992621813091791394189450394136636050899466964780852407631099064598248046887039710835688347714852700208714304370868600712499905219538651500834869867845366704703365382823312782887345916841594173124124894509940000443352843305368471756919222811908783052826109843794618055567606918222221722348651758538855114537707358490578162190911711633051156441987121795551347629434957336067256998434536928665285920782278639844980765358507012426423230814744277179721098198741521201728332635496195256015295926337064990894366057582359341897948743918482943615121908899891789927966648573909896793066142284229244002015503654284092684173283963351230540122537992044904760692801727142360959965754843054034217252634963699014235935030987860537657617623009557848409953783532981410301888759775540633989264985555939436003591208855342128672232622411711233656050382477451268638807297668948629659691617978422737823989852599582267447318312216707432854260396307263351437236478350348003225211072995365764599355357309623916950158349521295507315640802639186303646781153237138142654233653208543328949367398747168750517903158343925771316593489242998732162812528992415106669227870273999811120435805920306094075532022513889911038077435283709968890112003683465930460612836479771169095485392306447834960716959377042024318781535940071084395530836773084836735112822395468392508515835786784482068234816027138301326039157065709257089738157639335037787943478387807076767120648889697051110064770747183396286321518581128284937609641277412223098668599971642642961731649480624108268049013000596185707643499656033749317188370170702589554724732995423230781031770378002278996413577113771617533951333499917363086024344621328886718112859824120775825909313288676503076527832207317342769309520296805129091000114970310437262237285520959159715769161320507772587911371583110913237917397391628501063505815158921742585064389284524148722288133488761313077779165465004318697404581805916681079081759877669809363916595281527258948762209342831464035149656993836384311953047291505556322178977165969812882725532821542044912828310555826950806456641548070794882159308582190615342237332866198179593883626602305965998075619161244038771881750391772023771874592008987210612765327641366642704021180751345577492290092712519019982172704616992849319324963983178119543225151589027532964496625109822366081933883239742730094869526827842276470812727351975564523829616903179489028537200332356790481558903386613501459391368588028918308304671432093469948681110049528088254476077096012529294860290561656854334141957382951859451362173889037346103120256009805932397150685846315429328093085883592661587954968617483404503234637502876991340113545385283611592024322194989358200381019237698380740440496281960304174524273181989372088758216485657729200278585664136497477763577049992474705066449379031931118218691959096257600893446179963784772192933629630162494889684962548102361070367797838667686617479054888023407852369834385518773065299308582881540892741196166842772253296729737051757665928232695168477101416929009526928745860911733240740632066734311663010292971316280913168720033885154758501497735572412045328627203576753010566085350144655327217038257190221910214306334671008820469364709530173890176424343931838798187470650057024565662317886438309133207589314350616582161473985842532592160770499338082085825348209105519689473465387324588802232109722990456472553349205890743494595416476523903571076214448238148732902812389311884548211599851572347445955374682229424206770612503389903630055080428502155469879229331039623001430346357381219387868127329651528230954043563017805033011647298639670290868318098883770830447081607999190540330557652261832746705378116213209575521066986079962492322270370444207766599429151192582860613291823997332402519097905293684908141098403215207769359488616848177721538453755637804859182432421509447422504172864792093279522516984635851541490816490707767882740293064007335889053806680826477082337710954664284790843713723056008876987748411794988541233281516529776663050911066466425638473499396665224754477552326574390403444531863078056371105350724892296012433552250240051586644387831853482279424978602136101272317141769252700530423473553201794300079949413125857170393436877440550762624425999723805200915209955536215912620599600311910036986482247229277078199828918148027582967038440084191519428871740011507943442306552715476728708522634594070710291533676104870824109513218829821027637529953293799188796417767754003685434436659021268993676232766225402478816943909370742333336583019122419191136803216126560546445457754451346440375383095087911651853180484486272693063429749689374495664334138292494352261400233482951013430249136656101478165702433983329338144241493682823274855901683587853273433276191678515027257260803722024268640712082362658838778026329571426918425144333047833739245599582514194279077176502541756657920659585919478043602904369642093061501449302291110591148333716949164329129782780830389680358490209763548184039519419254849218971416544231371824261869052820813942702162123574664493412183641000856953071253657665246332417084418265082514537388144532634899705653113351996203095499733511069724069329163373322071063191258101333152226107836449772991877550711178645773883391850162123522662851209446121024395015885928298113940737275146868998564962291784509558522442008900158111230372764466587631313187934349660784915924698287863556150949696351754334772734397856594905398445013798076350103439155630380584936585948010248658034485151166378622529083883692956132211941214932429307483958543618058598695373168284912862943721286902297065502209655630167971576324962938271294000487196204111567289813233249259136390181598637492103648386006083966985164031346627665856954881119348207612797629120694300043526213544518345749646396969220387641763942147590659586988965683241118649968515876131037656062983197912195545166070276927576259281055157162581496444062406105907806499739572136226988352031380253236856191078331740046135328585063704548852727898120052707989320009785676010124811721149428735404820253070163037763960909714629990265256217719526463942816679901071041201272788563002217576771191250965415184638465655546083614014226441379200249626878355662658928479829967727039620358543809753617051599220458474370711141914233724748881034770326638181622618237338168443748926963184998108502517364412271435836671797378720888205958955891182046624872993588121714978673197117556587061770563804562330192532300079687153350646691029705340955624718724140498389461209305179495810936821635180893635926011958983033572643827228516318328376948346829551645725951397205625042673061678620697204744782796622313861382318502018787936072076980386980944990534251596651054374235127439890007395578841903081333159306885616529918969933273485378174529122190422394620461337553930319380272306030798052090674017165893608182832866159428333299157966710844847557109078981978881343353643178532158297265125706996060289842222752964335572174437661383631826435841290198816959711635295372432120695735959004164164239088661861748358016053031416638332010541081587035758883161644249211594546748824663117567545790323830704660585190308829285148726499906878381081761625551853855247001565126987227098747719572690253152819220287527994874619361209182698793154969256378729030539079532046455902760674124190699222123652189001161866266559038462497946759669408593668404265576269626604852995281209376571647752481430174120087164759934950986845111193475348837171051845541258723876388595907663925106667791093894328428676108298991506407438660801638063427807647296317559843532246444813384757078209226647580852687966757516182680144885187261765012774618236662782064335627866974139693984642543761590737953383976984580748648850778784186369071436841377947430688899552714890220028813622012147956949242920635933234573472904881033673949767382527083211314130325582581145018349957642781573404050112252200571285331904873671267308799365369280084843130669067585071826754962753812002622648191114887292411036679526901834261867109616444767471269805831828087341256875538014762572099409787633828867430834237550473760571039358931622693229399447772171562184191527990900779060922301501215528694743354182891287572112911626153523590981078468627092173844045010453005751062056129922924318318873104570106787229088286713146200926999721581554109842604656050799381766699380056632428995472720482797307594834280456814330855713172838902616884320399338753697344176857154967520171697252898344584721462052655647320654414645503940992394620908306976870306547484872571032852199218813324855253828433329262894903929299706265657772266788117636290663266266296038599741469935579185600629966320563684216196671606076727900861739868266513696150189481878972490559187948905732919464896611937420404018160724555272698186625254867944869014243162862546865577618213176045276444527960352509173050968685603211996643401585486659844533604157027310305998045603785002078789122727539209533175511527670737552584843674010312011049868972545729495464594942181170897198571138135495137703089757362834920518026798554754507101850191082713723190274912455149750045282572512512343120332202004769336713340570689832007714284511547204806358084251179248993659118291745466790303573747181616908506181363317626264434390334816347834982345360871181427437628740867786379436871930954710465116041386433309051782268024697879981702045351123523148093309252749668123920804202828400560693569202920678052917901468531348679790970978610676954868125818703754553436883572107326038378098465554083491516196647234276139950856431192430397692025679665424663946640200212031590213565553901748368992132112733055703940043445131217055755457113781824991106190175164547338710051722767096613193578950159867625881923240700611297080477991347457208454176864808163686070890050368434982203094510364258014125229060039838079104540250170246854416125191426017558835856828038209517248521329503082141978341195266317012608368327019719971950180186104196503635758039948907554029567215403818715020388134894306267432969006335037735366654625597978287175647412161140048565594271847398452896251961026389462666870822211997504772199466463299816193037194646820979552030461145675909686070656411051896708375494944064533655415515221592797941034615384276496089066576241522303454805578027456842389577174993291701394179029430764295578703288202530924299883969162375025620022677209260302493780131813046478766980453886989157000797218712173258150089270438221463773659225580086653247916693751822399336545175579203167640658877106382902600760660818840166981221468717921809760687379403291844249272980487330902312068731668243223307419609792911418524955755758851375055191872265037607490758323576459252562626424590964852484290201287731697242412244889516521446353418007135106894010384777397865260705657515625164071033940186310978381370216673758683019384351660676404007241078849985385571337434615683674606445705579639132558230411274426098302196465394100674313801279955251453235809538485418420622711384903275725281727257738439994133404211614485984372091255654515134894877132917841853072801644771076211205513855350581665424306964530685136145458197516719755498459110123222955554037073985898915764364093838051016524179689184806806726036266093195716676805388572803976953806009437513311615250379611337526653250890204810473392614553602663706874336667966118821629790821462121523235736120055408608901616549676482038101995853634110236603217137966523740986825657280682215656594674633270977442023268307387675948758468818525382891362096284107057054311544119278520311170443097099696294772883243728371567714548434994855073396811552280955628324750836875247258535429867330971389326379789546758770212311799509511683257003168551872085229499684504132108710556220065008279026318081837709979604347714896477138335692228699235651572241926708274195435600813257335359003516279544235921913454020087342037763237813384265151687532746204014319293031063918136082126394594252135120436769400183159872421011079109978424514118291818234025320804115073918238289790966925490760926638830267487046225349231993743445828685433078159115537277389776710036309608586284337377178165895750653614039865529638618578098621826987934438001853763211915772454808366957432566611984732680232138970291049047795948434879157525743965501744077636052597502550148122862698497903553625261442939326725450042568539518594074913274903736530952217811992525399186119292483434497666268154862266063144014818952290102165554331949666008115870194508550669031288522984152426668512660129209446829485610605705047660160992896318004255392079326567238485460970919785914769874305896269228730526858029900882000018511754272976221877416820811897056313884967581271551954455095518777435682586535352607632345515113753216168698682402404826254026338860198701903525370275006040329341915324753948863705747268772966785126964728743259405477523725900323073442370883163110916036909895370070913251028378414087658303299189653905369507414629258446714270280311129518135219110023326284736199490109324125883774749008071398984149914835888363666308724401681897014114905066575731090325357610416749682146782643104710142973071366398955465538840054735343160552834594256963105429248175874972350482168607376821162043990731586092345127588312348227500997053991521641326389995289574008891860181240185364200710048004162265193242402620244327815305368124894833900104891693742534143853371605062103705694365291270215637797139217107196370453757593823127539983039025857646348852837426039383036092871928326287747442009838625129459773573730708259024194472076731441132355345795809196666085430894150502261136024142370652237863571223232872455726648193804276513190892334832098080096449645837762160062571450568329484983029629720937153360525474329024817161267321226418872524453958428745896715085847035532973480274359301698515065275534235512107728704231463247672182892804273700486576305808935964198878706166905560896186850294977098605992713786130513695599464554094023525541966183590101421508680736058530498170475297020734851687458254658257001970697569906131961227429184628153041932537059434738099546785589891811859278430851656651530788581333438465927132540415385349369863942160924934053323810922702643588713845446290151582458640670272416502294402511390691434088372874647887441987647301168707263777151360518745333750541508044348719497269726706873981173725749371886362144165285449625850745223723234673829249190508300217168125226428973181651783786288325278463580846180019661695212761351999021898896730437582306622135066515025186160359312108636543062135586595515932952940500091324408741291117306400163303470711373502467781051370229798431822924503409890518692387315941453401295753408463275364809732869075456052790694000667373608144397054745592275847295279063193337039501815726545411337250126388175212451175203823808408553162963294961009901014278554230751819790750676583470268032762164418626679586140186670766479489098920787835680325805869929278118900659459738702363687331423721541192873885733357174250645445094117403888672139142261907867213959177618919184686774377678681315445840494705186546806980762533869293608208527486355446751009573686732452320568761591226090498887725445545392741743390662018734976011303915296497483198540429855415765950084993524651976541724279810767994926413125103346169457218827303430174020322733833295449159265326300694432402833192410091054742155296728968355918683862767095820603648557088959408772438755363093850891705287006381555731965231832717487105413046555917695632489037500028827564614474951649197761854213979990889837920702220110547548179340250511444388778834192414238863543418227632740355507936229396752056239687818597595034198925614145158225788013961958514345550240831866719253725537951227965374795909881101904816300644971814519079803329706147660652823862076175192344332454436583557513335924589243966550821757564193853229658495158347769739364347747329611833290680402124639234766003391562730131929898187532648029457500871499097817163308546322008429767379149006222632318204722428987822666038687114517271952983536820032796450343609323098556325712397263183682607320652300387199723738518757033556907485262674921138269022367932992820833192954969310102316479360127197431673634107397689854697726925771022876563825808737020044637880949392245689282934337233497761189397654042864340071939122054094733932460917063798049320903359279072127789906328476936467957522295248228347847835242499355042585490747730223443664453395074565642443169293174666105143969239715221788641823392039511743624284106495997584881364381395860698393973709500235990715350313001515166594808094057582297727095412998665770632303462658660547793135045817116033637838865231067171752357962779916921802866182446046567335358119163836852709053185617514064337340392175300918224989902083114874430748450078918896328392129088744460928856453288731652093749674551550889345235403904176928833416446275756417258046471644433539080231883685538666291239153154155501622501653353979573668947425935387615084320342556092692384073114943106052156229020539294901856318930452776772888201446173773779428213292205390312340090692600902391738605135295868173873138148185511763645791044831228403359391699047729899035682769200037569773573933517553284538782820379078303331044414216618256716728741383660206473298211750787515944670509113649777630600325164219216944487312477277706722196208433629927934630217772644491077993048329990790483727040566854109258353224317800512324016387748604026605387759016199324082749778784718888309238151593898586824670068417689077882095972497499832012375747496954035157831434509269456723693485846836142921849415547463810918978195825595608359954185916972670672304360228214971722670523856710610020561720152864369349169668976060841597315572532214264714776085884757294278258341162700335088582528115242083353008005120026491787769331420904837414179146046732608647109329319751306937023960388577577655230517557870185677530435953951868583272348651324142464977711601933402899396767118622685253451691041190707694713137238467428953844076747904856987460990617015739422844322006504932636130994332432706694557988882394092306437027739983922506822927480815893247985918508441811332634713336874779267014126305942476829668740329602744396228276673799003700928375255074709564512868328976046482392129619225926825212635043755002034266835125635935633369613202670409214845354007386066044391852389432197605779525800308957535175032462326799213768983779948329875139675082398126743932176245732971868524236632581017670619350615325077916107879269402827591053221672669852177693719178932270550908674681561897926905724900079070596058271889563483558257385552616256672860335234840025145361889699582203578212866238226963479630806927890235090202396498796811146253123621338984223727497988649223895032613787738859278996916536150883020326250797983477972143307881150184432922524975859512218445158199204289375519746458938025479243374432001964405885614167513268990583965176692948669924082619961362419140688213740835267075342452405123703794562441536244306605928718821826264237727255758403995062994826000505046087964056521768411861558327120513436564427171925925215155060301299380280488606838353934270241585319635678581972078997471493369418374288779444959338833681332124121065203229728987978335233036883805162617670058877640383110124577712401853788050400417171298384423520437344972361603006544167649184035826335975690476562550245176088162641244597960398415963157110981620584979483179190314543643814626781521401263600370919131148901766678813415121322861468788607797293886716815508096737298046830926905905159309138341959720251296960459420857358123279269968452986966634073391065066815420511501687683024412979715125305143546010226926274161970703380479045546096977067770099030458837957439322010875667255363404923125923730133098928937185424966601804595694099005365586582931187814154466469213984200149524759469495230966531840088101701603159536728531506060268571818245641611047388243321696055235064297798900159860025566614650755969082568333424327205472820032728040119032969602582933063047227820896925530894911299435934610879445332428039547292146640271764224003300793761307974905021751521666284762427043266253235002208468126856063121703523014629282924445767213010200913438166996098237798789706299013289194220554467978398837470873798632146005281174598442959506564256381464803193086757300397279851912412103242806374165279052644837791936091305725764181547445509137079601181891580969145333001575140233151795061585055502374519903422522487452411720462526453415471024450762562763452109343049531529844339062057517207062301775179728756715900708302686287910181728786674262277146135964954410909164846084675524299499580407644571483321111441855617257989149003948920812568324033450077126184535296748151135938439844238148599399235416829095765243374385184207243622658447439868295362290484471239669846010161015540680116491335774096225566443243911868661217157604562847899770816675547352889552358111696230059291412221206522744899023813146619920791112981356985259076342724842765175469262053499294244621776510826447330743788381202798666911102826020959288283268884812255108860966280419007732831557790598451039319195844774416331702855302708560990390048166794965402222688852818968859921615207001200275225839514493100231888176541990199963414042937006736719489716451087976946118865748825694377765118553003389909032980657369465041728721564215500883849286185805403305532266467262101221770715710388716431697773290199612115696839756132861740927769273706279216784771231179905530424611573176768153107434585463814038707544159911643984490932159204423131883039570842919802017301644890339333845111576883724957834389177034268530703243595071915420102912416821681330124164187109580983519497327038872504847752888800049294985908131456790667279565099071059418666348166515979002504407025472909730703497755952864118980597244417597830480839975310393508675276860190210374871701641279222376783030065835629378859278540313246199885941940983355972074002712153010422977481222636830206000456031196841101251498618268548198401784811215167939061842834153532202346171244374497338141973022013958671231325206907002234772710578170214451815643021604895215131607703897700515346221094191602886080397551916476204661364690586731570604358585353281644484037361144550619803570523408071898873067323918542823889935843724773813212152018942262543854015581179769578749600037214632483593011897007918647803938180324890930158479166395423842956306933308866043286916291223356060303879396069929467958386429670154279241304488592496209146276566532837601938848378770734296944071150320489734392231444885706940987478967044755643560706505206963803497635421936628679269148483742766791335238415483680455563665227735492909567173021899137800435660884666062627424513527014749777411711990742963795825925818833994934646290213436489435075437882703084244342453307283771381227452106492565750048744426077161227455065810104747256231026814316281569801514607723142204718049166918851559705157112582429757091826897492803495028851612033869115234337640142286560823417295622963213038725591254195092474294585232819176452187808197690488168865021110352668827238447240971797281882758739272627424984216277598606964996583893193479939244242553369944336147874896067731191144189119519491075310380965954224788780175375624559747754464700555698323131140374168159393332186010001517534291367100246150609611539244497402471265374864101913319501884134973692174243800602334756061533246224774341124513586207819987908408821459244486350209058302578729836009664009810941168154341631168550094757239142772440436893648464725233422091526338943200701061891158330849023276278294164686352174142087442253084840840932859267866421203864771415767106777218232062329359839772732629988553382882056217627821495856407545783153951008511851308460277665563300325035118149272845559700715985430108939088263159939976217713485208491351323526225707774568316327386102697383147566895201621458430519342571897358767586272989621704535197719454142013044534442474236433105840822705127499959832943606696508377703294089634726890726877190107765365004207922568925697971784299192836996895871356345939786723697597864633811978792595913517699266640208765504241057786852933600410273255459523368212058063613182253511669704978108389305824991057358255513653058060385384468781702729004766412388504891518326398852387183424971861685307643075320569040662539209507847772356206311751245271250518169746070136494702520241687194026990107286725212272716982331670846733714933385628376930917729914450865606130475327664769896200664501526062876235366927770848219613003440143557247886926676338612185642504322119533108903191888078896233508281543603192290114699594117270923295971198733506518025812800851743493279477955619515593063987744778922794608481737150332403993878148419075398545424874096309932315192923975036416988548477651205088837778165471102891176592474373960736626533714248292976758922003048479785742844919839452639516577402904941011082375956748156715291008569390389755933293869858106098933547238544784424619838123529399978433208985184140797729752847576174886758044952576067432211695720245150717295791315908584203245549348511269750044394236602111723057987440946141169295381872047217936168143825719895924755027436858631462513095317534247953729004158879044342527770831224040359433419115806897411421052878391237709443542263639598492260796611197529347764133509439880487502408963616963610932050536587506319823195068635064567787946810661979922725808302391168519167031867604168930915729575411935343405355269253494662503038372916848315359592963426673069910401721588435847418396886305653176462148576767652453327483505384111058619368725946966645117892156892742124545976087266073442869782799515476930368653310942696984601910681151084362465118006810041444209358960309897319741493127048574209448078924530406793215355224711760782602388352923041717677440960060966881868270614127189204217422655491722053883502303203983430567561742781750576158143190809270029992507018235147091060192761634694379799406776701575550240943867516745681327095064939956836141863464630356183333185826043225784977166296350720993093812714354366615159397695626979935575726735422284673249569773943916458676792773351968729114101845433815853448888798400812895386215256859019272715472211990415103263949754622437459005975700567432928934015357529131904718371109169908095700621222927351616307587254026388081257007750817324396915915657235879955358741304069030078649410927734754981539448856046824175149090556791843927687429359420448759292721396633404509476166586849957182195379364915201849736935767561606183100605770918788274365984324687014683331673125128855858884033315658407647835312933382862972704550594737802876772839633529180581361745599853211478587460946088130768045426933960342537545957813435315265809650340215261467585697410387902140442296968836917699630478002092393351494794565351540665426866794476720826885702009438527508598396606287850188622347326733424573572073447162252388289901594901386654223235047217385959200457420006961179109763589640159032467380178960282419814316273867426421529772567353438294204703573303082126955377453509829122431802474300645792209651402644740899007633986318492904487216244850163314194829927888790359626406548317966479459202257155952272627876602571684225931447304582967370246484721702974473485595142358453332552622384273424636366353535141277587594070447065457297588534678172361207347845842429156618814829390034008111464358236787267162788773158371600866224665510936030981135381782609346542919144641997289984558499910060123027603888336034500171953175858092354142865133691323730428795868852838760542923037285120721174723815385797648742100482946012081728858063663066485030449588046992399152387630262228594791942702773378120266230680020159375475805571491453170907646288220184712692441278852588469489411605330788068014804752436602803628254646569528431482665805474562493944923220563560283405237501675958932007018627935047540560938744765680849394860661110867177331124473893525902826561773011943990138504816860446819514379346746691262966047878336895796671162051948113576440889704404600269295053588067429994432766733223399014562606804543618162598676867616825381562669349506658952994512256995588167580406399599956739235005164163659365276512765286335498068068082459152377111806231565991736290847367567781267986362756939320101131945817395923428517280690733787133205969960435686219680318139351077082210591106851926022151529608801019586085618738471729968772137414364477424604387182970480152677985669884078166422348211310163056710859516853197192709784428956420152658597024750732886650277752920252239891562885391387544587684075421921608334592930201929200395565981258569955863328942733520499593818056473933028951547198887904182323355865756986503309337358134417630428400871542759214162505892088295022100690579182787379253486463577974474057266268594104311444552253832352563961777349214707747046640560550697183529103498142844649597448018987991417214213515755457429510386387906209326107394759631443823993027456795970573990268189927793631242668506071418760493877707393787892698775499487488712816413165380682386287053366847910204178280316191350578967718004442381007925352485267875606362219775412301432026175855163303950110784217524938719008276900562516247281340141631116750855903234685700234465587769730027461322137532956186367546803289360078202276176112118013970941661146876214107750725213020731386749069261544859792598534078995321042514955471257844960582200689351686909576165067321337449556328777361095011233648261469112932934639740376003879042441446646610958292410988480094352243140579883487403646468416314456411063078626392218132949557088353957222953006796792685935090372725389996834346689697745450971765897713960960955230852118061235359913502079973077347616393683097222936301983558675955016946652233638753524546088995008635294247156057211963402261212358535834319489590453716507834108626242698273501351888323643195737059681201973897544971642471821275910937445539768605121978869297406062644648932311165978076165016932419219349846706050585354767312801655071371462235372974442835371643640553357616311508055090856611705753296328801233323857229886252890227928219630821624772639161100945009222327050428279431001810447599696880548937797536304122560222413368039473546069909937314652811799394380912306605249379994724093918061286534633258894046083244981654880720830470677275146660315245604187596904087458012897830157353887915540568214384149466750653381110609218169726569296941244991476960381241944190658313980196580311803652125636475888376494630427744573581826027462315904117931058354957365284526096535385343777780258905317978090223256090001466236256436143753055185134297868353056478593063286501286375781903846847091191520757303805767065664433838446258996858903767577725351870038028185338434250865946552607128600413061869213596315635140776048084787593477764843789679383849904840574808624750852659223106926453385292355942330067495748310204823330777265657560795904096602708863885539937226702430782761251612350026581805003924991805359990489558356925842111908957454505031994054044182654593760823109438099525206849154441075099213752699017470533593778824500403481722104674149616424598376228157256690640554477783702215237277355853726743713920060986459049521533706359394571285352040082721771662754588948462019399460664957089228460503539626044755784149918446336838715020831469659773610359946552146431534472419756895208184097233723299772840609520181890210552377483589320560721648420469609963398002649472184337968586453813027203985738941608428045531731443936571475830381571322934197522814631272892540383853526610667726030143554757998543194488697911603559337604112190099067076674102498035300179809415062187333186570639303862090663438673813415467680830659628982873725880896036411643933911490570756471643460022172226032221165009917481277673242666168635784042100150365690081629007040880839218992668618524503754973099705245080105165912948352064896696114295146649007815912842843954756516136462563012328094314400926153778564739365764380479703089700791367465603806955332370076940549206874946213152277801462496841615420195848159382329510201212056543791977713018136400377692043105851091934392301359624752838322103941847241580075851933783576297266633676402843395265143554890814342504250968985527239350777318534468662545305619421939711296093410135649359025566346172666172481721501221312074466160121596541475784855273558282736117608218259499985764106705831881270787702729709653658652928962095265135712441606564282394552910993711710670917037791308816778283080640177264060500913286446082795227931559448396967979315790958223685205352929583673205337299590273147372559072038905856185432825993162488709812745686987344409965631658273851822908590573687561545493997535017015277049118841413518020373383908596452748298309005178448564038910414033104269781054370907412153938752289470991515502989270732367663168695699437568645700410282377230404904451982605157918374326235934450014002547245105305234894046788363785491147255242628288318907751933352308640399343650550070381885704876061439469601121447153114359742979592653917263959977115045200011417572092526581668110405500132697738298398711838873298619890894195826343480509303033858112806985865237293200314333102279752377175265068335546155860471976243627761588423606264994538082287336381984484312958361677587818617856157779333036295845314527741609702568312508021749955451253609786481716290988151631655046748392158667232427735958268649040552075630737559224609761672269787490259500995538695386864444139103415879331065055220627242552017429701480840179954430501301428963825049647624617516895074806334830548586680222621500105557956203549242473964235017160579914620489331049757025990250692902390138335187600219291871496062254651989096273152417547064700121150904412540435059895867917521985459030758066711170166171391838098387313215226270326480675476599722294949294786235827406423528193287923737282042499697276012951913363094708920109700442801521179277649546607053373423186012360364007902818056849297785825279691402358047018277161752372005907573198384515521931614403878585474362948284123598432858013016789251940533703722076701322021480786333319110922779093336001581734362704523776976163200547730430535865700149021529362283897141710459193105256450039280812750429052033708663587057809268948596940173826284523771742752980940239737080927705060085324945385001372235885530762781274709897480321384992954858632370363093736897096230671297458051380188663260819462310870370955798338740563634309998187506502204997254030260719855640310029650602468139040501580091046642168368903173972083820777643743997985878252489528096538909669335875257867801004554555343607350600021520528745507226750353679168270048968374243396956534624464287406851588086020821255708796025017888461174376627559665171911996408317599537514362272737845597864200244930371010989203606649289658682833283397844650814492842220495559587666902331540072487347224984708754782754108251846041089070394280591185184211785400852451542273405935075326403337493306789627338500944698133099108023199439161053917155818586396710167012043926242729984360430721530486374825890248095187275937525449580536172189500616875413146710734565515608323211223019758721970342936538317559997670497760186017499698293476773575331930176095462461767178072925745706160932701318600721452358875825091576945049095225154100860973947561269755942258361843667679906868669920634691474112559560782149575191560941009707446089049780939264956203469894875754459283718128733789996192608810013156390119302449215826191552388367911356418404669734299191726842007799321705443022896136349454032728290169022253493902681272191112316925091445338699996462830375338267133130401880488101663296945822945547989698563820064208216359531784142342855892818411088472785928006258779854493205394048536650428554543087451765559407694136749051975145275196913676756368458201711637661627131198912430547208434433897830874723384473450678781519656480246460180414855903717421970771468761650057899462878697889500338364812395205634127648828710215595207416152223889966795863593417725862176713107645090563760257565449077940041894862575224991643237417469713812910338657196819198078539187331216912639895331863983006317696381752692082008194606088956343140866679721098602237965270667284359361553099385490993757074194521100788215228026165351253105802330638864064192079774359222255434643391348223704751133833084328168807256642195428279838915628653494618134790691766475132870208267119758745209784206955791601637751399983110104037218012646870976113024753622130360768905321969058558450458574084458907527208838539814967100457918753084554090846824147959078547904334627120279563063109770668065140132135488353544152781021390447400564882435716139030692454890964413471382345421165939085151521464364076303143739127383028000132242191628192552569400668113368582072690487361087751139650721137200330133705989436034794198358317354554258482884538813367690769433636077391509056363672463810588465364842502560680529708181170708822361531013387135383268920116697624638638102160197341363977626701261574777483003786294371451136736980093391563780664999330654630514700795056408452719241140719240039384225274297956305675156314987842437651022221227366545693025649339767924171797994592455091741235887202263636986393888640034158007066066097073388766795804251180553309399343685586298299410165597839175777461607138272530936470737557363135341787939808884647174117886060105858368315942840439663104189368247525099414801823059228749908126244832736624019940761415635210266982929202874472028931376536452602919558261252718462138580184930196574450202426096770949698830706169183981217458959826006226526517732199951435282532643220271134898231342106537451065055252172858176992028864842763812236461320295279228921400026432989412155926866709072823617276916494258710529631847041599751550551027328915649168425742926110926233724428478553714386729791582681963794712397889578906736170460885999689494400360810076346495680596818170746188880683769654805209360520067243956740581799650065768524767231788954624333199679529049669277327355558017349329945157861144371374179904573611832914673993791551370375408585925518348689556718527525086287958957767785275793118633811304298196901435370350816425892361228566722326335930986843266978233227585937277608361843444710969602753440778244190090806225873961966761384220679330496450123475488500261055560315214839960070633091117264602922779586706429355692496912649190918810363650544026415701662471924315087246006049102688039931013164404190396503882053418138205617924229577648847729453589590387769620894749850821435406411793358352279930792369808627643534436468763394089993327825942713115231068649489329173233532160930890702997589024416333998668895240113322965836994414473439380864547223464175745080732888650419546137760012937417797192279785687349497963762895564297211378543101881756254061333023475739632738168223842530273350759254823390477547901851616928385990381308960087968523261318846468501369789228976133149517404953388213592559863157952815988449079010163642282434612477324444490392552531350510920077468788823955517220143513426243342587574140203848042406932145780895495131125581037040840640665657139804317442511452843408128379599262035728229858198120166625100126556673017024808572882669985656869882600385742418200455444724328447580011387375919234413521108501560631360661293453762796395265930165043513472861365263275492978056316960019926551175600101279570891124526925541988864192904908750830428775695019210872108617594052505887664868157213213075880876792514787864806440848420981176439325577405097905437486543540188811418417588219720812063549184403203881062958592337598111491331460296608418555345924136656187633904860637008955240916721161444543159494002221397552038527604794371783226688157951516836034644753860570407042851471357066723878727587871656002434412340223304745808760927959970902613046718469200315495245717916611125466712108211260983157849243595484919681468399001025099536455716724286910319448776425882325735567880811118811769516008808190515212263052884638666356431238653677672081547881176552938046797919596919395660360426366605416503169492909535385259779235397972024980178827208892480932449418648715994848677877400011481585798192503873015106256136221728249704952853931672300398588679699900534429233752352521987780218425677229241239846611714112664174918036403387578298255481193290069266776156355724346993069515101480499263653576224571516754434205299072263854864230808060365678336745985982181981772315837192961533647350960565845367039439877468201948721466262191289246131490320546623622786943948169365267522160492988764456068646642300408174419821097452045238990614736828007700428467993112489397041854028762061658575649457102579867545263869579775670678983780552751341402140380461365654393198436958254758638807281228704431185512473701032985501105686771976981470058150437430119823539774715746131971487302072226782038585653759340112835573978089479385703256820189511182475354182679539757837293343013719874301602444007976824727444063235081580801321865478412222401067214351719301133994775452709142490737413808203979400198702624599278632057626254394038605258605164990222463819139577169703985871305737919887914170878236726950455342901722647961454048690995488802371396596590872853752623007182857056213524443570374824293430036558228752904992213569219690714122780595178724635419180751094985293605085471530877646649638276191720887510719733125299089229648708281707428901441374267145083923488491451035302697712921093942145032574375898827231993403865823585451969023582638817914599538856681645083648101002165103069727268352847362360976274100494210799320484629349051231731441420624054831046434248807795597392622817455131269656407229363166027926769617069751400341873886402715281934768655853785334494717709896077726165709649337831045338534837819885939242479670391784181124924508133422097165480665350844689804396970147825869061481775067161598022780811921092135685109146690469549927735816360426496959327695060999071780394448057994293647923984145682788638173673392822838675276763173283288657545648096642722013478985388429544728140397524694652069317991292797038409496414214429304563468743926514026412790130130110407333192078142986711888630138093079125585464480593229856318678198044141981448771866171906388128007815615967295196287116158515625188222230328630453603716398656802879460094203697274156897790691339040256010044972635307129891567849921832161468999572395713955949449435729208999830033700673506989060166498252143908525102582066706298935884012842959197009562592732518135575978292066905839205395554645873668838863209241704777204558011576137122375037212924936154330934066246273207247786555479700250244978267229916376210368563885413250535042467840502666146408765857985984110746250155233225574811524765054244450320083555155487011386099455781280729035486208693809337150791384778219049288078893773924275232796742211455667377858391525415861706112961158271611826814285309430047224629194344131657281111269742239960946416889260566853938649093684831594865604922347146154450462340986884091876249660876346716706892274988982944684103490287832654846826274696697897746552573259960757884699034284980352681482493037109543106206870093008572987081795335469071415455063710564563757476535374513191990175609862541152897932149527842915819351190912339918362433564169139545269333449919233130140108621567499938225771954955234872356481388136939861708569700677985476496014149375167839041061369729446835053583692950247208627533384643578941559852679163419535499437376105368975145755041054991594520688988320380530228456481293564133700816860709276067844941925502573883298515210810067771065806078805815066581124154878928768568638876308671227842907485613112963726168487318580975954753443089340459952575212860255472114067874232924909957519026867655281880936448710879406501399618219101659498470091829619360191706261634387908748044987038069457180760732800764263310403407931505243960649484829591328088255566924121248874834095510945397684227010729406919316585682536855112589987098700655799420416195071775560282974283411703266595802574366430814714733891485049226479797241350090291136760987259165544542005468349656421521182016150290769572248024290524467152027452306255368722739631704800460657945244078577084701192046050415447760942261188734831821074533475753679653686397538451946724130321911152595214303365636815172680235226732464480993627333962704209404431218453982714982190327575651108982966182276960101447357686327693909012281269741833482853251716098073059924406863384508562981556123085116390048466392260121779510405365957356435126129444147942528917045142420571469976474272154519300599200130628543881400712289051015575194965859713761459500767096312221220197226714547145854209304698782614884647847191821703271969420730067282853302238094592488298826058643060759611855481998630616349857767232936894652195882903986915507230315575237196212574338357227428142414669578530137058815222489148828500907643293252352484169265630112815750207455482262612968960774172873253707050625424741135242887611752131834303033014847033334011806018034530873694450842992529589729170566846918090403977024913874030563203809451462671607129100393147250316665729593397053777824450640805351841017067469382931993570060044320017925999068037406539375564133096644631915688330102102764679861874810402047123349986822233236013890458726171900469728937043044020175481669531008186405924686228506786805232479467427154359225429021482538645297620148188842783025573315684653173272693303228072325629035144173334946333261999610492343516127434096331356780609982509403672201028653392218827947199056303792369863761459043320868791788740751775827331752562414086574779171359322869300482133269138596904880142833342364235309801564847818441179424385648470494305285385772736527591412972658646570764881650711666337755041617093509180866091966740719678349902863927994760987346979882217617319601383601129842620942102076526781624879578122753387078386681673448744579491508947975122983234404847310116242726132092168942344300748587480812551157578868880943268823767868063547476028018545514611484563232152058294092535234144689862463632902270866245001034801800026935485589498339651964191131234060894953092334096756009152855761269977452122025021364459476971744592769101373142133703219686106460615772265455373120207105508664612307039689482878363950684494373871614084073035832186867091442493078126223074414237461034916275839677299580344914702406079948103087470366046111279567753144123708873745685453497023415942544061279516523272681388925155322564404613031314353921059892051757058367923162881687989814144099940021994168156098118255327218439530761757735914997677043995867427982964307401672833048044148069800218937080079139793336585198176347362809222838791336618324417531978155627066337752077687951048764582956250676521896252165796677648196454530968158602266503384244447273892210126363917174486246230532397295382147948915867995011477607068835984907957070193921437310463836333280001421814350964222470660775268408799078744476286904632445933731315497931103402633675715014861319313536540178336823864746693282507664980736363468335756484494514346186351790391057882660144017060775108372227466908602528761798938875835907123402242214586590885355220955061273363375786112758598653576972921273667767223029206901079715977771142943376981745766363912108069244675758079988810394336578279231005388116566128467793123165166447682009019829931595485065321718965741358786677482983276080638847123655377657468300820170881885540757987914163506844749125480182937158906162777046242599067361735171692930155950046808819346498459474354674063133135132228412067282114879412683083560171695260742321249936749560953431199873825368458659281555305128535009540788242012160122245246038840274637340969934372021197154857216533321429339982951034577980145216855274207838630445193805277140876502307092553232845465581217929910387156679646798900489517609689901266145354073981805244452794045953540920080283857304100196880257624625618989654062959570626764503827400133200263158233636932340522069742428917483244849033592465171617953512924540182375517197200892550119428902069357233638862018508464614472773243472664950826200276165243817578283304700024466873638164889917991814252783950277262743057910469929415095328739994019623361215388071857994585718063503670137779316157107050159395736664777902730578721260222439448895399662493427879890671875114471457820163350608185266744977758024079792423638582517275495196001485451843722021446505121109058291781942272908997072871953068884928207383691476601682878305004125787919160664178105636775985071829768474921629513691284454844075217127798354793301887960560642562195414903228731061487871928649718650258385563718495020777100409716415921232224163377885166305724848982135107243699354737390300940124050680661325834297412005869635967068791091892276410947803504420081978647828747790773085334893642798383312656213857460130066681338243869138840540992804334503246661964309597403499158023685427613830101513385166166215154356805944548919568902867972635557601187640041642313374890767024982777514465523150262350278197650701363984706671249653245962729112211912091032633268706060051861711799069623417409118733324014731405100251647475135559280211991084043996201957012097500309631638663083685517919602721639150428692476517471986059836592875748618083205154957978509338243221782715841934571087108796265224770597309804775579402281058714081842519644984596256973048014499975849477170150690406172578104565700504356554296700160190056238866905301726206109667677271756850828548858085036127444193318957684107221028140122065003231014317242568707366954364366425260822760193493414658173218252737935067430919039239376181152895305632741798584567877718161529824829988124268145944882208020846471720925392268333745662979471339548054845872847421634540683985535620351553613895583799732896275579216795605245112783148033741066085762452344315741788640389196232248900996157552568357363523956303294834455843193606679032908794260244027439080532852864450401412405441896629526470543042067126218892963951979636918876987911364654907799846236728700275622366974818786961089933939135855068541495591832440421866463518800950643013590724264451361106011064321265942794616365319744782315328021302003001519422454998789077765406949142578917574256248533748482884072338193919319163935230392901106051991629406329286513785023402806892974427898457988628593653702197565202393871538914600025133052410693344534071481622492849794938126918586324999773917069681830215708488160898766635976090805992186109960334484232037670495492921428205283477107323505194420034585157140319167667002324210993772509182185154846816773744676835287232473069299769658004283594107954459148738186593602933365117150716943877798531428986568443925468889142854905144756466462056013089465684240714893485840520576294364098951660845223266954367795887583810271158404063047990369054642513436489574875444668689649464319139766777365530389066855595874230962286497506954168605295225669746613895554597680013526570278944908143310970653431337715840316108658296600627445839051096314290888159716821728379123788640256950186606885362507233823563359616263031434522611980820795976613560890779653292877491411847875290511502380994371332452038331309672707773636624515484334457936739952492557555574048448081263059663029031172196076524420932156933152038377849125398817305638850617022548859741948126509733772786906011388657840378042122428367107464940255060674922868650558210449782201663735544606906787373297302144704571031175003854795622693111128615120451731449114711683854194563287981885453104084883046891401429872442615874808273735801807349330847556577349055720480285671054278616056307594843903401272499620606036122394215350300479948384617250894900354261782199537054029699807533231197094140355308066995663257026417270780102078102834782734698880563601079985895837273403917406617232449780693994654223703331678575820922422410415730389709122930209102921980308227373298139783901434098640491885444494051775224987944564177222798399577096947082578790908129181331314993122406199597106993342669257868593136057153211427215356198816388684162802300626196544268111480245031705670051301136000634791655800589775861961116182174843189553394205244383330908197558472053997006218660008948111696130037518782482640881894892297117619736013268925130552458805145057126764077340571780901387248276967451725020858492744388608588941096764768902433617360885411391760308997109327678394029412478134783080344784155798064985212651342088762902336143790792146157229878374184599249749816066216453290409993305122808078979933496107666196429372445165188454261612892961570563042450758015381933456164880704732702253100989436975956303902912901945879293599567098892680469907372154423677181110175021484856041932347715659045117277353109940012343566549033725326344765031521001111341165074287013314945539682271448791689492396337764721845720848846158615320247712106401559943017965070405177341011179764910564939628337825552798098160763766060224817597707569364225953173800568544745872218471548950470218612297807509750586910285784109132499279046594273217849583460960430222365867111919955418959113059447973895382697295308320364198856033807794569734557965862841825647890717265505601451259628845991261938140805937701018427426176574371864973566484365256647293098096214289316644694087742906685112151765143439516444502970777106403659142325369378423957786994162438020318380306898727570535088837067278641366222267901621083974442138930225956446222584498370334727812410875318759495285115073702320187094483169506022102878241638675758339474242598993962835263412653650771494553089958389077843922504670706654934587187013233305992868567180241866550554206248294406184307543696291374728440070975043837956294170164670657656575155550489326640857778468126865154223815442051205724465226455562817770121957292572787286589993809921174388940146493755681327127636249117584219865544630640241436759430761611177116118380931101002173236779240676683958297415326399377219858386965244613825245721090944469085669618568038521135157376723667760241868333464622531951506128834562670625759592500123903247659212601456344825612605004599010375395261835216792434291658787071230836962362906656419908242257253550559474627941863202782162950394017423032648085542109314728354532596360794585247809949887043869853282336144624817201134697890056316898072716119074332209656110906185233647108051716801081708492717011754954911944713525025674611073786850239361991583165952752269288418320344633881610890367272911092750289729621545824624534104248747033507160261219979353537926360227111414491654561675199655475966377325921622017592732017223628904580183828107048195013920201761731581274060163494141314847898016689591415753678454857503323586620441102729903002474227845954399521894880988560491620578926442042632235775217588669507793917234395375673663588910052422406668984983555073618713291414453587810554840378499735133210763921229163046447714526998945166392995788618026213270090630227537711610399876911004962743409689529493430304319295784577758901470191324078554824496729489635037246707565920642398590397277698495179846890611149693964702778471292753194341890148374669968508123603037156723557845677304761259300430183831645263151263262662805761958450348412262338739725698379097764311727132312157366420189999916237568372256805033259377908526398136295516162084423903423490980361049346205783034702942784776274446812040093691479799127512573045853404827209925601555821026198370916476858920870184295097396745832749716681119948114087674307715649779110722306953846896884271683859035925083949028319894242246393463562703135478178110823068074644264373538546694961287098766980459097249729717583569157465682811301947161931371318223441633670454299074225239009573695749083715979130755634345432828298253748411863345865888566041982739287222279107142311391631201231230397373435275942580024028432580707545861938056252668758955143389570547100478193036824241235122436774579102054654952606522774763669829126238454583002847402048432739469380292214695936998286543461864601076143337273059241731185371708032266434974180462529142344157053900383547140747111508558452655450284330149676035392244787024753752505566022800959393367664973083071130313753728235658480284015937557786465242779367081997481709133755027385782619559449819157473865876968447394242637856541105902400277870888404127603584967804098052660185616391904142641563149209466714922322811304590478255137515193508642627498283819570918580637690501972577542888094621240166613398062647851100777832622803317912094537125071048933433976445015648274132692865130140440527079331161001487507439583622103998877495554934488166551774947443393369287701177231493365574570708039813287306534963319765240176749632484523257419192368959830503349672862261783154472048278944552471640377313749484098660202936833940353535590216471801144938703125451559878524387877148770309830707979443274566988960793768349745991989867258483647933276517102640840791616909085040387033347393380238291525832314421116761340509590991875863278413858669986388559160300414783901735807235085771234177434212271184546233558799314184987874765920480072006705384144062581976119221558002927551525046524557404760030190536994526516313621555452212619896138518424126567416913795030785726388648118589183829010709323392136152920922579259426041408722273578324952002372780056438100740093262883229803174289204056505942391672505680723963090438491244037486325099761381507108805501433867710609716420619545741450629938226807054028186258712112302743331775422879958201729099824316422189832340231328270633671759265373709111551115398869781757237896261962841761717050082922738244127760598581438598847022959041268592040092955174451844682370997929681058714003838974365115858694176814606717694080548622099559567950537872718037995002364209779804687095314321545436437170987710804447505873238118407548827905642623127839167662999765841398310258538463526563144027009174048032448110205248881915455023316318278953169699949839237121530671435954228387059369177288745851218320263972526729694901620808575128619326664380207288577531413683519344729985491765988687924813467761586588091231350001400614016827521364623136743001451061515555974121855880456990260492542970877529105767539196473318590358606037922345810607006692195773205906493339883745362010356349047783855697045838578706447468372451637233373950071849191571094290131253259503754661496294460514645185766533455311700580239199100442189740779258716012810243854959199050576260037000287865090398309612157639758635490595617661494465769302047546867337572850930194985246023017299787681581663202898689521342643246700407368075796187678278689778849495636715763349623348154666005411843472650220565770855440663988196820230112028844146250680578379657898250313219718555929593152302731068639724233997325469054278728459330358885851674508692235032902657255226983077744962695575982688938019291150740555080791689971024870894856881296939347608392894166973153598569629974806101538735677046490747410243260328338645522464798388739563448186415485076400243867073034713158320443334601476060953969870093682767925120732223795201185854296414758025415116824118123391307385947519884010679524629155848580601547031369096602364240050122081226568371027606586560632689247742343867107108545695627881636771752551433110870232406087454042788591889421506272973977817810595436848753548713746544495698583640217035326514097355842447937336458805888783711143062036911473346990988998426550570784600084028445768253412482716942874354080580920339034889056486937241989548731784042341245476109297138976529368544761571169394305260356903481277516600657228580055998287220352380682972382960772931794167461033991343621930836908740322448332948339774073064823401750538125122065404330380827723455016553974494060926584939923145760468670517476741298857973011469740234392740035986364537607966542753645810469423040669918724797441991144091434297749768674156855663623801800886600355360311148391612895361282804017368829329924409347652917107360971195771667526860692813478909734795802672940306736375737875274783553100832081371004851568834421372374013625571080243274166715190537435439898696332829475954413143629385244463234321627156112817063175207837938415213872264768449445105054937668783573261283950638457516220536313592848761747190787270304135778715680605789231114618494515652347241177350636265670677468734813864885094137857092822510532094234750179801540281904823013642773966000348873543178257165093516724783329062188762249468481692106516775787594268716326204554507531449611214744940811544841920022609248720588749627752633722930519605713074370592134990771643169764997928741180831061404667764073652947544423337978675605671480096635999902157789187232222315768195118790093256427442750646071061764959296359451407392813030603506416694892935770706420921131537505358770142624183023478856190897471553192940949754497621547881128815244985466070127000710348456348744911081009846785650981606572091724333067371086228690242135598638225066377217251674709535587601490052098640283381166311335354983398002434582564672322129180450684105877201709426209372741715663240453913765991686845159968409077162586784264945606149430528118422053161045658391584231734674406800528048614585992874660813031505049432238171698498079009937927956356157567633569501810890203637579125968315172845203168522446094978350761598581729015730557418025836080656383862450167786268154302875791343501036095654071922134306537120746847769440688570954805239662965075778507751462403467050006393223596696972904225090210155748398065885107568374319053737824774029162427512347619849053967799548876877527469067442933148681170318151424178681492747428660627648700011837135621969587571213722508640987105878770228477724735375162519316087240371434708223092490662240740966155009640000443662790390924422480882694366666480810419253981424096126766831273902272435598697515010271685010114965672628919718527777226216128683830103648065973481710999804091619283106127751380351713050057108960662260942028009550106596345881336423282000185649963281974320659573516822863750737161346943780490464467963196379569177143596791325138421365677555893815629226289472472494807729806369585045051863808278296055158638774850822289645244612783435261288137742209107736419338868438026491404722679359503685707760022185425180944335482798862253518608861434708278266236994658266534991835278818193286278430357035026681981417406872471186682773533028580455813469001386901829734186405748998086594378811184900291627032959735146753786180643556690719341990335682885333187670477941138679846520972508127761641184923112371826370608241841553251026325304802494950251834431095878299954774121814840769689424658666363874135705602574386409532115428174188046416779079415934666947285614000647522648157082910339662361691590061486100835566444364618836605982558007526884388976886354636925292487212580743158624965808671655945511804235366877964245771892141538190098012171713867096562162530502817549359584727666650403994152697064284234721766586577942331199398742333159680876696877670797819757702153820297191181821337353258613374328953282588703380131842666899009767828750135131054288639867952459311696586636278528332529581013047523194784237756053222127979162337776738670275327162369864382286957694547028658583873210433835040989903956720834168632833072287093108932733064576643877699348708240323721881311513874874445183140502624667533151497896938892299562049624468740291752989306136449269410263393999250196867485219595674699446070262792585850036044743043274385075628832890402941653140276793159162859000217463837530047846456138331510222637934288159364014776544171568990940620213157301069714393405881219129761735784423919682137343309009703402968501106419175258525121720250596871952961574669708352522922999135353514585774211180899841311350243528996025180342040983751364594688734569019125428440366281924720140310915179723866383907511367017933959252863752398170548315499244851766884234337328556734752301446733984636766895694318160466250694271252252222081520856328614056327321623185119836805470523228760493882462771603253308167781597196000718753575653646697544238953824760610032257932995817519195974654408347396715290460478785323758183305934424634650564893124721058793267835536964512119271839792926792063110851453535927164339764315136790686037934087635551212941448569029306666890601327932883191789803096868786901962596025415709583679978833808875779410521957155247344787471051305642274699354227142669032061350815284934668999676127735434236745866288880548979319853835977953281599305034422212467543543316587431851333314222708928927868840968377047257533852245344079849277519169876024132110548201482930995619553278187044165087405010496903174153518297853288012403381465039896342888058765728126428525318856975456428096224461080910224391652637754679571926604907015380604172202996337628416007793100596476239282392886167690631796832067058888009089486541735569464758696553152114333700486483668261033055037459612703290534819554815037765477734866603176179773608488411390499816433652161342738385057281368383423279437937111330244537601494320685359159632541995544263609809575352990347163832355697695472577789963387256821366927094926235665710944362292102009025901317057800386591154118958426406569563816343199016760839130731099762247257217444324119860143212049875523246857526491338926020131309149762621819373066854421137322733652235211722786456467828991567476558405989577703046904727796142007241292600552445637784204750920386113892592712368965149488240137005991699054128110705361606337113569737537242267250712226570539156424113703757885111510021192897403767664741742468104374564244599440729493815554924267247371544527277379755435908375043863324178983949038867050311716287261554216277895309861363877405751589681465270678908479290969390976415512846567308943312053272009640979052260954585293676417913887358553921302702655449296408354584060682902172243210431448795949656160560510477320326390974122172325131908298204680621924968853923536381037326007839623938731698468409003992026602563887011399923509454412817764290987184607562949093757289672739934183849922506601059889038615733727609689423951634703171839610843836480955195299660673753451981085505729645757395894588001704814607190983797759742114628881486748205409622900218446692032431901946386377656914229801639511204749654392743491583484434926471110465552080167337890329836079344193716552714629515717542391939599660701220487681080832130633273603851421054991028414617906094348549535289255440838338489867072518141220386351287260097384698891184136471517871574399971701560426831807651249302380857297909064490924337583828129771559375856056050940106317043050319586212898469019840694009329333776810148371255988295040446693272434096111283287878159330612930376149243130635418738915940732483544140959351315150281195416463106543682559841377370895791950938250020322270791341648325850145325021008324780554480883319128489465485776767485027935209755043264394847930917442017507816612912345463056585266423253871407853822183843741622333349960320212911262169509464797013051399705570599737177565029607884101179625846169465098075845700344151403601428437458856172768806042907381626119745440649085827519752933091406261871848143352714714671955443126986153394624408389922639210225478192035578361414937479078945748263104448967442104271600035787436235091953060013537980820561211056976186623340281481484776860147864015679686486388650451306382248197755337683713423710050544409713329219710944855176395690652525387061276828275393781196211311441217020014296788513086486567320151053271282069115989315665588118223808267424949686241895311172657376945209636728074586675597931905557183196893033947981758812568670722459092172701955396331372732214341707492662216865670913989833558402916907849238200356519642599884941244227533652069267389956247670293441038602202600924121924993952989449180445990679389461282012746220779836672496360101630159167328305129031763210743024731801838063026076439615818940404234825959368495456610944285731828114908778156207302594769134619850331417476768720622882863201540455666034743920717607153482166767248441572713167347037169353546604485544761452635208502793724320491242515664029654899982282610153138260422984986198052914760747255090738217251559074902846116748879570464851682908910735220667331590221376316058703747418987965361796730167586481548776719800405147822514775267942964795323829563821839017044891488743016787961161272821041266387184218699185407198288150646663241244455007104857557080046882856794266075508227652572391756457334709770801167677621087114426831206655121960145527401519497347534245764114327895858506695650850786890077176300428076681392422200546353424376071645394198206576611498830426081423120443249395979742535025961536375213020981126693491315679135450242260148210485964464593846450446978113668095182122602870165236179376236358333535954955094993689692563033811087927112009910946977619435349428199214150904048934832112250257249371986009148310205164899146732583227902567859490437110145689625328790412414921817274896769228026582929081882727830268658529799309325205313204735862901606313711334346394341862718392074201115712943219807537478904580444749858463545563438290350481584493171392680610010242563126335546874960274555733027533705596980440660392314778665602018908758015834329330943686577007907451486810851630757660554904319670206674414730153599773574689736699380712765584833038861723598107083106837485749313267487490073780362790530663378346744169270923387488527954636769278821858628561813840739076310265974210073900425953530357499572895812865612854520171723976968299704320316508908246830397883188850978442023075737011367500740904302951853012058141443269359625597969986442232256086365796197278198739102720334277223958237602934374064984086362874189001106221531731794859744607302872351949828038561114637400961489247620622248633726289789285932365329899689804317507876672098552319566759987772321664879174149106563322070776788418543479765312645239012338208119907817905514103123532426392579292830410878991677127379333477762015348346249611753178665996395508660343082035094742054295286060678587874960465218608000319234693045097073407401853522493399200000029915257676216993303268855924385051706629262829377200762534718154573451801147228793214250146050451705653427079078667957560564102517918904658267493687444898405970037660858893407082852724990255690583208130418895274224940858819927039445429581259112758922278769484659184477017868614193201147466098300211039221576573891310528466243003721420872027318539452517307527418203535292157465162254806495864995183425500956126605223154744380024200806378096314842025902884623747009012657691898228549772967420421607170206041444811227635628417076291757167670083738887458276295936942529335945600727882326509164490178501190412219823401318458340812781436077084944298090535333341206854414384168308070254332479137042427374480467460294119568517701278610559063857262296095192567304245821369839578532875415193123403433991101733672098906799921391245656376562281590709280810500437771859090522041444014184068700612858252714534424059006854613203722385353044670587456943120311960014743929241011005130941493940944061243891410548231618392496073393122970673008205800724065738091905697124676067170973257431481738994394156251753880940281100525330184641772970315299634479858613630475207559312378903003454440962133278791232690517043374315286780284490565056920239460385390812217597740887974977337982578267601160106674909959334148426615265877356639003176958334813447731663694466830659548390222647908321139657836117640147556859577874435805565468266068761652881222532611222539227081523819189820359749137178518408287183014807416678541085397103856302809652476514588211282569820284959031685959571632045627297067809635979871369649672627463837765516844984069668542267168594380452884300059786466846528603820440237722582654481335385801302660045017095585161960836262722340272689905172612502600584541942431981314545157206494369429728833696422708495631546721849395417141587070137466496968844310436535049325114950511631955296531035708565795782935236226297316596902676472853273669245745434858654094122954411957918882759424687720177454812832693535127716398485864860291521489451041260686566740183130477258352004796617971702775583676551493599434999950957949280236763728830634789870732960748317793798788547414464418755287206604874361194122399697960704559920124900715264008471530512999177454326938242037614862616601956775255498654363919123366677712227073360379689469841172426231640804622939729126251518229460975714777857438502318954555215122706886923757201433909160480403045653142432875376301275471460748364736251876989567399794826091697522064688554212433832834907451355429049918720096518115021784383239686741234694034783855256062011284319747770489708179288400905405416666405404752624195495474052639827111755947264531849712250823491205378801143522040010412923670457609046888731889852188483356824159677260371792880823909515199446351655164087837452581838226887787946244700450988761345800216141275135255266008889670384029696269368742300625186151042668185270486784661512670908891796912060780658373521552304642225871970658106385330485752836554740063977159827340157078501718980572971079645352348505321131114015844676852392939390840288486658800958200420855483792010013568928256616392741351417698331227578227555922914968503605472831192240535200814385879723291351199035591003140604460231225727852257120183372925660526263721263609551987975595729354318779306465890391447714393321978510735642152783917224096911875780599282433647349766051552361684863749430783417137370400161688348217650272316634625524696284538787342574962143987418051453337590082309006040203722662844659302272601149393095004807922962629142286946813434275508402962585011297294257540766752843361933499407098551325667998302927902836033309604049969896648824396701139851968352921108477402287343891312414797881548000423168524106172642802600710209344016104724467456071675290282204125501121258821054610109730473261482033089996448987511729777376195467810389165655048309161250605229366551917500548025893436198636068490579485913154990124008714063000558976385030041350038591504660526966784763112029370898858065037785795611821463337161115481995454748701445459849111745018795490981727976963311553222014421196562988710779451240619908430783811671609373969747625357592931500680028957562287117922139843700606471033896948284772503033501132960155888755130871000752925692507158975699946019675338903596809498218104324557988843090451920277161814152881518806314447523739118595095313592591681159678556513817423491729882626394938944715427954868717362027402368840790643222170799482824388713124116441520181026803072792582521550459784951949383491011321234511471470178487265204615383417844937148884829191401940647143637039337670104521487047372313722874982590046381304554796791341743358330004853766271415149980494114120459277853980249618648464610861940833341692984350887663465101715508768977883862814212087388540233056881262359175885635397071190273196776546379565939890484423343287443852222326861887938834198504737983427650996259917141973026144218760568502200209683761772860447328980439734644650707642401817227612204473145107529276410203723840067907388999463212933442045116396172500348136139098666046431821100320050951978607867742709596615767827165483444116121279774522058984875332546950426341147572308286840336242309628436520727831324068020909074266414630385418587873595490241977961146696490839989700315361095590234935546025080699405900645923306363609683867354413170349198089242465704320582139337779857185903202270729796615620299534712349112835018997270226569853581810283243233393082538350742274145247369742631974066461683219320643652714587059570311658768718296223381450269606412241334940335880673662705437866345318398037667077746670853121964834096217570156637277169399505215858488151809044805901886023553087885042867270620152406413388969307847349707287251465920323464863085810905697284346711627025884228035021435786762708147269082554505074376029053327329316888818073061267402039130934675990312244874807890833383820456853206774338036048012897867231981850203849951309133849638347172396132194981919009916796874136160221941482361540922201177729236636764883493838677311048399526920160260470468522452927520313209533470550707524252815441818354416789838618024524464519095746662484836130889886333253526024517785351163495295635912688178087202403222392480111497086074038568915161153728720412493625450115497251076528563190056675356881386680434754956432157572415516849837095391187143303863793001302672005750010706488590203018726244329274129490536381693458023127567469610018012233177544179207170391472933094457465238928215356279342360953635894090792438223563366382023113820432833915179929193413295485545612177890912650407360704924884112991640229230269650419181483392314256245168346830622283927259157367184850986284791865623000221056312722508516095980792632084774936404766547577293325340352551543583471029556368156658800506283787738602432945044836531444749058864294005905733401055920564936593871721227444301723088440390381772970640488201376140515939961652628059299869789901298339954097757918571283743314080096982940354231651318742241506254815843929973822510751380067450446593496111718980467477609804978519328616273286328543226786126543173881932909834375416637910130745295592680451384374961824959253598740960945058725932384724490004749480667095823222930166306729910551701377571765655372836892708539795269304186016747202395313479565081126600399550681952332139455915960181894498890463613761257247018926285297623485169046169424636154200946165220454778616850578204721464761792368524519392628416177985362139438854388813527468732741566975946770797559477527912454777057086425479872233222789138458547793939405116952576845872774807622589968345020019536812457707572768087452240640017009856520657956724044836660124126776783039926678982196678182395998775678087448928279710709839440846318807984799067564829763765164068718704812571680546783283659168037098828101719476913154551963604055754450110142817341876575256712413218217824779794378295357109015005347629194015878512638365193975829399840870867456553731076744899098428340494407957020196583465200230040793938876416482554317058036362404711863818933811303212818850785411360460013355643148326580236461864611744827966292371758251121560757632765942101646493874670182758202925564717970824368921058034483641828730880441927635497578995985427363128165866751380572825484315715522679796910372415377970785625973411016159438186338544039494381935493541993931003406157892762210203428852975678660700551399181873677639567556080532882814743863738853481043367391302860555185039856252491349391511252033016099473152586305051016839933805717292685226763915808353665121565138818809109156540200382016558219028504868506469310035972386325258910991545755296779450606331333505759119098987620306780550854748091476476326902708772292070165398765344068780322790770219111156903732811303785648790664185363541761180842676683670964051551541530253702983929896178046113687354027507653389173542334919714551462866023407095622570093417458682392636637531076069167601694628915654959767766239004477918816668065623904284200242124727762350892971038599431689735004622723533954604053903882193509958511059253682850874422434613508602801127656608102414958054837606684001527725617129416876458673591476359946117755008272049827723480768455728620918043168375909783131072573941403975936155120458485003646109389767056018287015642828219950983136578676512819414078905575544272096259531237098350771604711428813007275976252047689735136919135869239584191967399346936283376008875592093242171698888731974861609648704052718008798998792215080517403497279271563002165305213954229241150223566979723628238320509710373505907560362888520951851716302538780834535541794008317003421181265421967059793134065796750042906874752876154677466498157832236861241934000283642833117595404814987310364849989416626257229669566104190381348750436064652492497824454341400748311805299559347020570716128738306960754832562124697425384758355199415496991072968496486257419290098775177243935299550298210185637050811204044006587583346565851363435842292506190362399000763609164130173180776026205175722727044353757365217438026459685990242655051006975743892907813147302052285389324895442571991091081351644617864392419759884575994822473042641950376279878810109536950373894509450965286627480305935455754782840303967767084994437448605586293641372099348290457561844648238678834152983932879746036563183728847057698577833416741019565939042825023524601624735384453519455839452096487589999339701031827542489762935505470373683561557318184286059453708979792430407817717299213058751863687767865007028071377946584015394444406135932159133193587226703436473179323014965969754548651840735553843256709134387400196820397845267717417854160713090397978078794579771669828578554424450519720872468550672610290218576968024005109561139222349191997079398560932315767318102231392833416157658604198451546111698512477435884907650128845712693368460080254356432916928776657133996895361058208823171851421778574653489605511534498166079109113348158477801809566777942681603747951458195839128358287921794294878362596440914229707547476529498998954834350916546213272315533735611304764995037271341306284398788298422291362095546674348537676424955274337974126831168919921330648297279883711126129485998866488934723361726003937043750883938387920452449190633071169561466366021728824601290598855746579809361629816679988897805257685378048763956756708138595276233377094781537153147155140016403907933671073672124903482762195828439168423727625535209966619944184619210795538864365137652472288721162077450393998790588736217325717067225916014920406839083234777010639718363788051267883685359656840497223825308022648907401253710484684448150632181946511432041604211593584854080210382726774031604564452061164274552125333056089944389906073101462250269669617834783045845833568193470705666680179833172151307581918461047133070645387817192785205335401467789114023600875405468684334604193902532300847946014670077862174413387297045279287517017850693203875799640663059153384642110305369171276462872666480010946700837669745266330578355732657690443950528440422511059122696699003231476912031707348355922876895465999997491751576133883407595259743884333284131782909303911442995263185193928896455842224679573887284086138760372209990945502525416396405035408564566304574299023714485219202696646507619953764647091655405722419417150646173981619873383060578357659353504556226471858142575304400515183711510601977645005238271036559287802873651476895081502469093104904570564689413163669075314907117832100473407298550453016360845011646720710988541067090761623021620555956897546448324141860794135737912714609594896619622587760458367722538556701299069251129987608727584607550419165569810353139682619468453810517068569245921816306156338726070920419720562991796683500956527506699536764227852822588453900631534728649212323253029746840958016278533778474327280621020953401025341946419122903922040380944807143546265767749432371280432196763335107894304929428953170970262630633639571992824976311322335780303341897022103658890061463360660849590671534571659319357816660879934238990686199282030686326606533862572704074998933304929784635532170784275971071900450072270165890245466978876221347776873798869386238885295621275283529814632705358797389969883785702454826295976715257913752460548528910797431342282646391877532161152928695858969501116029403482535614363633008720443367229817386476385013617147364090990339091506133051357254841118474775177262054201549912041668818108211937900606198953086027730897058046900478702901073564425132010465662810738469689551745854628119093027020023442310622730525828781784248799475924748331759764949071245942258280391721777522755002746311624145199582401222344920176905625990140651628244985485353865422017771778580979459608969993413987165577924431699921801332993311746633456613619770558424581110067387948918265521078788249169026175090922311713760717207100795795860854334828221380045920460452364436635030944767858381470632540223135142993897918591760814660291718105845954664396730261882282021949044265607747444571982601673700619587929873300959231189757753280621726724459157377199741578962164270417778073697183446063153253196785501176054377450839272097870007558430891121827520703369121744001530047317859537895352126446128216802914241147572964222075206139738031288801504769884040595792946764015274223591055012702381195305951308320150587942289009192199992387487268050013701420166511502273340546299673914546704418188502069609259880685524003758166538999361119411172185222596149656952336979278770366021639952766717219465915218409895297972488464727875043086175320504545895901198410781944373478713457755556705185562676330880610084728794948276210859752256164996523991581997385795448223191077095216669059411145380295896945521208605828361846206179560709388833912290890998219581454625140693115175662276752727479370163659948273146632509193761566820220168548235137715869240000743479409479021543323715744844061118668531443025983800483601309686111669497443098585700952456494145696996034683558446242451705438671138161495830735292076056205693958163009644565404423305480203253603808640344605224220668727241155833252211104735365189592503910845857471859296361987689965051792489306356205295613177250785516009938538992426299784925307904784737221763097322894405483457793377651354091588485912820881864728360772532155326867201301787715039536805650887089281935664228745713377564742906013798621603528071782587029303142002665495748292326142491481437205512656348414873352796921062374391613351792800105535847477853310015182703227967663178551485818471869733316809388899434533782407976632311351394667133513514901553200745231811032709720961996739740435007687415271805926496821025016687171209182767541380677171156717560102499207279449680191975291396823378177667183038121100151389011616955675775895579018900954646013784546804142595035609880610176575313767520709540344457434322227171777677677819186226944144842119828849255255942712073762656939243248682425777492302173814711505714550813503254530554326026593558532385048535629252249837957166712797001120557624855291599537644660103476231769130217889431760082612272841704894433348833304487202730992547602417464333647417973395887500559926578759228126945808906471426214941056917826676185937399421141239421222974087647246782698705973803408394002327221984535349029324287618735310939462639203037548019015521284321760460554928362787156931349284518167194481111436328819551957166018326126525630904201009943690983343127724061748128444089766303159532832308999666651750139028639080298879186261660015254980730181127929741207603692820482787026896364944021082790256386822799856468561808783337278429323887075949014943301290058980125555053737785946254465817637361391895430200572431601995665779564643443289280953087479314034766741033372581000647182577990892467729445703447945551068323987716493809780122375035992949296416135407784358717048672589496316382972762734322442977902043238602454184062726451014919223961913585016055493421939295773968853055958128654569263825817722287161455363154454961802672408099211287554611228567501858020577808076069982257323436716870455067833494922131555431166508737870487301801364972514537751339860670009791720489071838894926410977990801682028590453246713925892971333905824482623745199278878160449828913602268629474311387601355133378366431911247534888843094917847505159626976116388613382623453981620052051866811602709229419445578543670804128906364326745406580253257985831764816743816628798587709379419281067756878739498371209194063147085701587611619484038789229274019781714622407783001493256406272478864944921993118979568583257145580880904657446420361860546171907541830942415767784289639077155038128947309391324876949539337367637798370549577335876355300776890834052410280429528333359409914163768482392658163325443116836897566692562899568734370116906041646168673832621089913853113612039846868478046049560114822809714648091325653932922774399654948300045700933760723221540576791565583861300845635927567802800326374621976025708307930367055894942340569187096651399864158269649239018860709803273069422659390284243893394759020031510630761181145748038526179884345426581833636618111870697690304383095723773102818550658354177844301423911865998557391076125419602065861500473097132317146103865281107778988278628127700055066812790512064066775863139707840599288412442365124825701845409034871572183621016168482094319026982334398856632912334770544150874878424541692151616773920405884401912795054528259862356313672262481765223711787238137078485030549975163023165916712683395137754407744130464583902227999312197907948243765849141616704593781288565277996340205276618291434769579448662589283393504644568894347832806421297323471034098077953673934652861317217194653401157447297657898952063895217884608061000837983140669203607411339037390687246054734357192401880796464579623914486018859233214886430729408938526228737033774109276040104148434624994036693853725804419616770429186846711378196001042325908150073815831484222278286543402018940509645354493996534141315469362780059476896193616398651614928616707389450499307158967951530517860236387047720181794858767818423904052148951306776307340428706079236754138528996011073958490723859886221899740050937202020674760934622436527595077646909169901008250911968378391619812331881967802320888015061503291815232232970189267520106891022715424295940508431256569004222047884015110208515974011547584263887147325906662727613768251299946945440503631939851350230264908346745980878366254096398003086276803596841242420029591165835331665405640759931014216550746726617402448746997896667148872218736815013464706340059181338419016814781913161741642024175932316371901836307915990612292347007948902594748091366888716862846610625090838958024707951573506494671177079626913820187937549998575652357308462835168366783077005043822696366373711559938073758850204116741180791433393445075750789534150078831688216357506252905232552728574785816271223038084459096322399814192551520280439113386054817480208347332089576488122831994884848440748352079458070983729007503169923106774869574732010212851511331710802076199042970661074601915246781043748494321211705324637279120619891743463748376338414479808544931311662279344039259124578272744556042411237257761079889513389089985760259018077279335405775678634429221552156318782135296551444667873868415226356273358619698868735817365702724335958991489915561991356418445919322648208861132729954453410275118936640415209338824938473811365510018881164165943871193895578413308059325705570783090030108248260985327011063490728561048401990605555916933987685438585271467994766931416907672625042137536997082645959379991061217702716758382527854096080102886306215807122837702468252195690935528465384697522324605893592314287892670415298094325938113494494970732906739301027658342032910149477032675257315338287731647045047115908310925060063771290268399062143001701038569255568421109860912531698710713836592225785878547892388381789268296520758024704840474208207757454409316642844898831802283252185376136837763169527442747855180378137435805268648380866677775067480867943627710575881577305711430032411080566381512011665150934099837659175573110426535463017774202944467729634099646974789893053420939872121719523172449377500580980976179471262551991033787728361009280117554390908820070572116648041256921695298019949896811128338844056654796855757109272005045611607725128599117359607705861243238049864252647067032246682007679725722051705018622859409624808530181622341380247942827643409092972200980610251699598523165527726727880212761610955048604353824607033594857155720783658356745224890106439702455994817903946843933176195520732767023341263046329991118786264807409872754405399984037003080245784988996166588434530489744430968685191287862270672797932315828562986267889507434104435331133360433960772545562890368440842969924458398640095949748601682983661666789311328517734144604925774098936014031212277386159111950692767372746295687994384806361990508726790598649794247331381007348936464672584368025022361819254488885957008612897539325430772495845847161466248532093638351566473829038271316771921299993873442347291466872780550041831624972584562025578767834263688159949168071992485879750802333769741397188235945383016121935472408332328096342027682869543711736419932765867457918106918830625786343878031393507195157346340887271949169521454141568284058447584522731543441377808955822202617403288472082032501126559243739474041409107584812384816254997858397796195577223327256171630768442518147729267920966821666605423050889839531220732938471596439379907967556679346066013702058103195319111543611778340238447937760155084267697936725173648844341439812949926920692087672486987439366577668595083385935745504772548023893472123667618912320271235613111019441675221158150820113119436979960702634304543274268709290483145287047985871953649428682244630172955029350938766782121409082232855335324169052699229088990527393145082316285034456033126301140395906103474215498724012441923933010494295189652279072976682915781844254167365841669612772407191799587447210882534780594936261705112244477651909124517765619180190214925815158177941279740731613865911668101999556510928816136143317277897703670226412995315174541797259011200834176295602978221727742802926020101957160056290413860904795912224645830637053918943428944045999794670681156985064857720677912647222102724218296379003121353586177941419426945214697055703592227268795102336205694390566841235820274224588841947511318558880582033864728363115427871389835864052974756381955845166746354450105054172302497327360419070801194805970609773322236533720790676177659218995948648350741015082296135841576783790600596264228889931056577497507197175449049190243669046174042305757686383823632367575990683441759754433259648972882272757683482294877436747151307933055923905356680835144983922809858195353484241770103476698863009687584534394135165463443882825765518066877001647508225604661261775745406475498016631670692561687910960648899538893983397971426346259441745869007017191613496153041446510704390478580977418420022293754530586116444522231058212598531446235137605193061751392676932968921834097208466947491483702648077618767325176537811330798147382034431223680113780882952265282067053881503875952848124197353317614882465757913679802863976198222989370288525155245078891154322261372455408379546580671544681562027519552656080562452528640200745736297587854625391730458801754870181310853783855782581249637359658260925840618096394114889886073452859625757431539346134767234382756633423833728148806257647257833494421436122749726741164456294676753569633379033630880078702087030512669410100343832334164433180822380583621614070373201529103615108465448932839520667457085738898168667063892431129038462861221249338469614403515528420039863989551962916839048575453207902358863628315091847474374114582538386253776980602631873902841145780065364686008837641959460848587229512802435705183914484519444942253882609684861051440420470897726681542630128823027086639953211125085423151051017932772813840870250272720175895792590594287743980230770181524687323183177949887406439289820412102107592059756668379615782067486282685189379698292975015302456847939458422649060551126539387715627061425789069359712804075008265728423590112007118426398656052069132737240602101058600692189812725383574305256807873405984153716725189246483372208408259057943026358332707604433364552444172385429171552195260396477955863785951082689519996291703440529874598284868351666282093108194693382503263785798032111177665850199489487330725732747177999526837070301714609855486118437992614009233762105431191998926737135308597073377152755493296848038180606846527631364149499900839207897028141204964975185604863198161468950329822309240097492912910982645136290724796183036299638012029705103758349776322964999641359385086350544719784822290702684596607298899440074146699591597290968710795645624621152004025952130339981317155427416003986725970605780410351646149221471851595962164243619278315791403652420510153693245359197808400143424763696888953313267799456750174264822418333121439157117511704841242143014158252627418116614058068879501107120350103421204227293906028416195929615788485784946898856896710302138257714090743303920106309463365646449356688638785209678785284306197660104841714009147328443467212130609535154970683524874704445508199799162586712517528700459491272507159909015904810697914381604449410037701324728233396164614330831536857976007278682010044522678553351376577528800455034969709054789589164180982823199683488486958088164897147478727324717578543793500456792731030004701634166562494771089131963654410290417631474964368063704054058175579714320426456813587773815547494798734958480660528757333691674977039639896646640809645407573073043768149393670220129484358458972568067611762791529025113750765840078559189391529271393091835572126994850355160568343147905369098083968828080282875008985271415009084554809583577618743854814287315631818138622165284446288994150937003271307180601168222858738076916721448404380677007322391330594045859527668471574393184912995799432201216489042260605305776149529584104604704164833335671309903747659810808172584677335939578553836595516372787301315957306294918719373561882597565932909899547222157878124387220418666198177059785583806398563178266060219345291524318342040033938855868878772161448632964735301913603242096763297172959848577602506125953065929667115726065645039336460180278949351733391917979714205106521377505000372162629756319085055228838504572990585510178578138227670021432978536310774327006402285209285981982909816468687795858598880398004976722748619593765377767010635871595342446456100403847267390979296053341931819586089090457375760656742094531364701987517895944411280215150225986183732277524579325975391847148310417478902508878622579348402668074701555447680796443175831297979286567499437286585711763528877589807311522385877464374286363834642367455978899977684058326721858548331366737337206605145530932025058455632933947865913706124644725097164731618770049160727309944391839833968770086402456681607621598825333763186640578814081584828015268273423879311597695344060589001221720014738252261789530414335070468240316349065720517552005085203537989543901553358563169559700342987919902576996054445207148752443936123761580774028151778715407086108704732870348584239579238993151087524472865355514291428432971080002258130268566193311067643206354445838228951236772365384572935773545490877002309216164763102756161758510751841896282414752317837023262484598849885640494150060865792268243189822904854128356404445132014925386844861397153354823779011436323569734770964865443846479786451524591570891388937777127413859429534634477553006362914880090568855273164402396382271756865894578381755084838538320870956829835407024973671265000576802251241543507304393981523452743055258363487445196634387188392893021357277983568383123514530683983927314944553594023349521202723148211403574309452958616642197918160352668429220313572737723598642515273431620682771077479576448856875420338784315458050054037894916092820637098889110529033809938751250192918783465635838032908362795433073144129755766501073601383214080037515173912379586770406843748598079106189223815622552914467908548401001324781478043552068849600308606053524655450002908631726882324506770929709793955253433607202153827903012406476894323184129450602513047692216424930410982317125582139170833194314684191713339010486581255732694880023006272432044797228017543072254606113677965122712629912488848718532087723106704307020209414764487110757748630483485162949238516552937877715466656315660718648013580711489813174638680835944528074868690427514607124831025214039734322166087635965769555098456173486934900651012227163323626682210449801116475376440101186756521969104421904472291612931870178906674943253804737258561324954092406038859703916062125743821112230803411224230480945317768836132056982264532163558354261039742199024302233087739979802716133864604240257366590300910285966947602575719854350751182686620169380397906998545251535160588741169424425628029361028864403841189939129373888289847048375142050394237601910879084002475526807056941174612866994048369168154780254999718014190145457702145747247939375781355427480922235687031938663426078706005861109300531045100479358653580185973291558845908910949150329785949981493006399191054763661560687606855995338378743613269040934596236798923715764804289627105390794284767139153934766629031658766075838419796610782156149912649385288425800111895779999451328144034110598164060700878316115579929082617345160345665154845898153439386557435529100609570972178699645667137555447726635066678380457248287845120029652246690734106656638665784272594612782977998102322523530627297247966206211342009154210901617283185740095851942369686890082578946751322825207967100633885950216568369909020344163146832083729815292117780382319055247009683474847140805812343036242066206524854603138337347329254650628712559931130471746450125058631965897094639012281999832793958172280142819513352255246226261081995745572025748458224220411031558524001408590807805992945271727729095929255977785583002354184797767891628029606846781198615586790887874809533099946126988560984870139439344832685565904066735259539911099888972838511528916246459638433141807551559140960346771228882212764607921738011360773925545442050633233898284632790431148917720238268099696481681485342065509724289155665841494528158598816031864004016846629250928741780881641838493832105304882133379773659431619913053385390837788081230390811049507502281626254654390639672794422674208392121790287726168252022459866785650008296495330862869425582512016496722124841660146796699653499206562181760739606139374869022456459883664391659419465614679214910935207639984973616972571317707713131952130026275875976972304694861388772191608644768116986389809447059176402756670038544364387075786089250185208863837632307196827235372117347235814711430922993853630845484476289966808063048157776935843037107339055491518877331147410878457478707339226856808671769851840636608715942188433337191959622433665472001747326478707978863924596921260663371963070233396763344616100899010052240821553490625341561956741726039641605452771091493902740777590463639086870274966853296500484051941079634746338581216383024777003932872195451204244203225843194565257551760448248044862627184314825717547503845005648325240803482747721175971751419932909456397998306788880516981453752960106627304134809467298330610040759241515257056020355153474765431935630915733287002785193776943993975566462582309915233642426606346580212919924493066868342172186824441249221933661414954994978834272884706114537456793316020313619289331443644195186978686927521350434581975420910809358118491467793088202413026453940176356578049243804809459168343662573685144869959560992573850245511848021459574984391184995868307027271454017601863172967136188369170940617367853286628399989094137493302030994712318346779457193059544002224159764886355647595619640629888465867685318824749158265429624962256733611125639593301125214922451012219367996930865622525112188184293342855035673034985026923624968156561664200368268497356809841328118962859826965935339256541977013792289773986156128727099024702699857141459603760421032287642281650074453357273244094169054452578538935413655884148109663002682966218712134855580893708278603002461918767182116401864619626014602376036927817228504359641239487921824461507622510532411458163358574451043201892645791210902028871892295557633855634151575843949215653660606726312987518279396233188429977668258647766752624625392533650185378128421482190129336342690354386711621772770176518498641205494942468931579600260302415237182840392945416006150092332966462437442479450238132815395581096254470234658953614496022172451665042568860979375299171709377906972351349368591449921991666240582622811898710985360325016755916037931515875428097238880857510067899192974244733493083064639159012188807178724585046255738829497114408909279847132084354772891420687293266000381505724957999704627720654562553879131285806995600505049362632547983206398683394785506366512435205793075331317569119275325198667952993842949726059392946516418864273241638313575252412162226315218129649510052167254716873484867744126760812374661662803568376223798024003582896712115924393744268887252490792648491740602051141506474591427874504748245298752420727650964661869859289786917611104276081576573732078345236625791719886912607702986071380470504824946610721268857332122667765993158992125745794922018680399905523974524826207196282426501437534887570731729016829132070790722590539709006540612608850735602478582159679562414020451548114916641826243690956307212283748440480899435763655431945022972497468553027080560623364053877588831740251555486236832516575134982606214367340627390282266673951220647806370185684973126488715691543563277547700912194040794634567893642712491230519687923360944583004556764741507718852401720984862830199724113903628528682837846699567839860839243524144850884178907481857755133882213820643915940821704752656061768836338178430979254181320168452387972824508420464416507452498194471149251225725764970682347648934292599349162796368164843575944425047847756563550579812086901302535670847845814812206682994344232753722505941296157163239084496415063902727839943809670870302457984088197109120510725814109118230026343806251537443715663157217072244132339052266140479949842934300469747428831945015944051293110356055853735034832936126282187341138831459484933700454266723405265045088513869449291614222238813623286757084074610296486883062948827913708059396490493937584272052982732709474649391735949080392867445472966432478074270839783682241603346027289765410821917310096738083586146002244620350376158820809802744328476661231570007604324047827560688138056304760222784590322683172779639419110508697989795693480525250886285066740907856011872667498490102606623514847214239707589498857680616026796928188835671594123138870933730466532070262337364829441959898524122769974036616422932971926299244239639544530820073926642611325336144511823253496674294379850398308517941568410214085891107153268179881616281520069182466040391009710037536111366522210211477828049419462455497116271244535638549241175935977510067347256538878741091340843224904079212568559104206873750823493651559523035497626884088436625120228993641484664752896681742909983648308382539718613543586529665450271313983910290579180077878066074078370375925315097343016085115190137250947841238856806014477109133054481850035535952157930933646650737391486705390986783897272365487363583832418541807088059890628444118588779755978494886552625917727828631590881136447776039136408055719948623938291867405930841801221156068952234338108050839691077843516744673910566431586876106657858525648616588445233415545396671416067442115769565571017400371366416497394428114362794941234217677216309917479721037871446576861390170538318788120145301534559103900636065718728433023401411684190115468057033841755615309068033674317658927607458092076820308858246293378491683688078430428639262556839531816038668837801547585962168257333843969187340486880929669502191335382521582762317193186954868262271232704704163773858170378320719648942224200592563450997448566575673358649512859423897168347820822271844588309674785571585645671981147969952142553360257585033437349736168819444948548479770805410327512848407367035751017668754372641013595375123116827155514422918866147108904768644963772314720577492022911839723067721036458541540949607663992068983422668170212098833491987157897958147606416216004003614161914918941966008503046443804481848839828889601455470684955311470643614543324475204090959454676170369233050894017708080499280573869066018070979894831243791061078802177881688826308436991351064843742129911411923916246606655002725216428585216095814018866732219527828989314371768545109511771930306233184425419201632246084410139669918658371693294556937497688306930846394618174335354371174980975162279651549636650381099279670974985116606152527023592023770874294952589518655434581153660870782831846030437996090240621987675747227309860935060352647313655357866232424332904233700917410218437929373088381522625878748010636098116934726569874592405229089592110806480429282502258201807361806006381856308073942038294042809302750147553070322548498417250814169900938885730552446723169656825684947222702848017213422517896205820412821652806228876952669507350417555452166552298331522628251823327182261905122426109046503937033006250543420507023146066988131641218650846645776571574938214460350434825799157957658104080583333040501437884446474202381040317593235818847863864232440613683770883148850573832727652607087269526422841157659221233347224253764439689154165131828459998406169303162850502848928974587856314112859205949000342912646539711142509622694780939169927803191261791631795935491408498277766732753655109759543990525848047436277608577975662399032542601954146068134807342487201770285409787319550780194356603308120514254575173576960458743219752579523445799355848122355477119012773209719468943101992514627649700116764949811034557376802286403237549909709498023740625925519246512312315004962420661540266149738307946993013248198147911826475444485353121768707017340045628037566857383967219932839241896949424127609958790690866694608003739470007076105162676769067509935887926526177819678105723981460303450544413549017302956582691819129037891332398565746085194987127311865083266129995933799127982468173357049789202839637405403706225332205821292276837327581627079899608962642680664746848742527858779474130992625107033802851169148487523263033505315404512119914392253511478862491303434457702032410150286748678176829770893422475838387183407505641646967768197581574801061556315517682849420355977066302605169953503936847738589190761514705385271465830933956920614423350035797817496038331141884748601309515939446810175218892817302429386007442729813598193611854683242799006404111308145895681614033934076499202779348971459314941669479906053133623717228953952605076116292453879372048398876322742409132150337144510365117420149037020826202595863593274737096242449248425352793142736957925380754379407585945337203552113919143721032188683693845106777606143067357826812478380771114237942220537267709087531813455259480425945580361714158069027303288274258058789278672358176107698829423761432604110599006139743546702176609101954807537742171629540712548419801865103116572619845724318549798467971791790370242544260608076425154326279355285790367165037743734392638842150625544202600271818669720798944176759351019430128703447143446413536775005350140681688872588099083384338342035821239703403959061965713195054315000535580663001026219954464756423205067829856830939866774402275057276035764145581281258798440999587017758329336698710211715281124223261461649669402779109551328418721580449379911666486045190129265473483899833214811709028998441646235003484180413570898274720236039700211525814223528870602928904887156618585427066483022235769742751565384894037022974735547478761714225761431662736933812043187622503026085836570672927066435062726351631149165573800055588411843544336752801610853429005061224565975562999988515502199834956431777312461655072453066813068701088337706735668235501440069811525641129439150730234346324404916019187008167399803441071652422344871113850587977433477845146880117909221706724515098682901743603117558560637988237267786424816798491466775233215979754382128799538627948276758560709557851574097714204888303758061733478835962697706234600618744796210441690742345128462679828128239202264889564782565790505284006055327369791504964334134674822090218585011112960407545674888320773626959809149871011945072704554572672549195605490077711143128692485974506560637638993493297672305535396512972318828733844913697011466868302982490444683532771557177425975659239500924898179012722855994415554745870906803095988147827617771254443256927196609870575032143323528770236356643418211680180361566454243710051772660015929533122763148886755055881530747010573648641532320989175261512900933883430664735336911992034367671109152178360544139501204285612429585642117338720108562400725743293532939028027387865382805918729443739561545707394083813895773653343470520467168112256032987887581869737263354096253941531283863480691340109624189157170216990186899012268290246630957526431678867122338065776404379438353288926186078435242907522594968609164422881831092793020781380077161037402026184079572871874931455990596343860130516733254712515931406757017768407095898062898912347406039124667752779288998076510564155500042693402566021260428242060428290021376816477827660411301843123042451012415644842331128795091569442742550343241184839667946580494456109821264581526633279837404157594100402173786972259960814103771054255564561383245332638964649879428825146906030150507433393064060758342176509751209335861072015248851336735092704936374154994024931236927405559179473404263830024879116198610789644533769515983100249352650495172279957707129945922220764092973404636460237052964928794237359758310412939966491789973981049484120922037073874542071117469633412497763767181144382452276235825373412315212730337949828808944839871419417848847774094022033622902757028859181491100425684403524243701985130602869810362091359402351274552128989853262383608304546241900459502874686313256013611695433814514073504790023696382757280603366252404061695600566955188293071254983679481171308505274018568922941856303556881287444614840891182358682692298596264493167475548799461284126512474459526552820469781541201258143719102609582899000374031032174261870287450412833846435343537770555555585701274621967808256817200553795510212223967541905890720228338124138535458558221930874848333291500155735902347518965150039493676713180607849993032612264810804626020145279898277284655981486612273872624812982760736670015633114392503173215932999073148947236493448384504044820678462353369264688382948413299584478500679352389274268107920347476862231505801875558307276840904844929632528440152510388417290244114155770993478463860403573280761677998857526177840191641960816093043277138402261476750343538193179404909525635197917922873005893013383047614160670573260963236940629641770897498695915977070614927628871123775148160345374629285186175053686272954218950581009384493257316984494568008083164797024523084731526412552403146951597202708020870948849891958397805693202211244793665253064533278128914167003831119038213228814278734088623276917778535952208035464591246467527890344215282863348493566295473242864854843074647926329240421942367621337030110620671506916757649989485898059186602163987657514019303918080822690996780619108485040024871230382676153654044335190820106448500898430562125240947243033606514295197974220901902461443014055763625246118079126790620732346228475046523685369959181623608326336395069125104665674504182922297493755713122829421219792857786642953468944815193329496064805354316743767136586999742553888390677003011339375175328518412704337974539430487984653996234372651441930282998263345404874035708162230043260515647110903656617999146329026676099440982901374761326721185153780485627302822338933301952961310748504535711915125819430007993870081612112428775896445677423094854505175630826337898497281910028427094509266224439129559923847060219451258533248654339824741816144698132978233355261648063498209760484702010497090857443559646596352473017447852401969569440615830332377252748415097566488447201980351385961908377519947712293934473037755149636182598106257243991046790960320893704979274522172045850956935563447595121380278843245825668994739092320964386901350126856154060295025495254982349169443138941757793136901218942613274326493572768067161683366611340763529562023111809014441764101141461920455628172090497881401600316771122325243906872005231607481855845423369843842495144448483864642912765796662586220799978743992471585686510094027463716099435759780731749168858742607261160935996518970159144046127713190012800338030388892020977192489918037862816801663407227507240288279317456589392840863616828808447719487260540901339730352167979232305156693900781560304766567782036700733892287716358954124347318263983309874629939822061104286755463430754314776545300392067472424091397504000183528829520673833178577105954635782512500348071469721694634255054276175140781495300491902426297222005746909522162106501823502775495093608919204642095728194127484847676207065524853135308104946241789814628795308610061121796412240287682877371826992359933746320572786014320180883524905283307389223923760828429541281958163047704880225840422262993558004774465831607805986498183775054694937175396445793248788588023321765018895588289844840561681805964066496961761855018103405362677482308817628468722882200749476696738501494751190384678204589351657009117136913116376446988015546444384125190255754360035681850211153252285394909539708583559612125894536903318765876085597241316852014538877240460890928499227156239971983010242420501914932900865331499207443558722284174699151234487883558592574880292636239647281246741484832676629709387081925564652978354741127894803325434131974770235224487572249461939836259667955358317092888341545483844850471817923261827987725609836826792837757211511225892700395775172253793831059481276340918748011358418245108605844356553061541017101975603502430796704766667042951958064101931034114121288304385669147643337477857473297865362179587078954911674644992150661788136856066432353348642721026244552346130264382282150934315656382009508249716633234911515547964272672567274145077440111137814874630288955211110025224154709482053124493810888797730003552811396210768222512032557272117036170790900985786039147683812954847724585615286185462952642379956912368042967553696779510782018167241487726502513528750169381165524453626065408175982725311720641804144452592980275064414005672969435561672223198647618428616441372286130054190501631639086982631416878163305200649819390743042743665889040215500478417965253855667293616237590651083873897263376234700735696929067534518057389504852392905361473696662624908018993535529129662516237303111251912244676632234655159124505164984186901169561424372179675378474530965298010085216571914607848184686358357882489074931798047718134071454958476481433570296476900289933051915037457374145543358323808358370084878447606117455620837222568278637711337439327765949108074683199106982450992956179555771250411999479520108174622265010395590951315423295881442355228927077746337674879295292145253075649815482631815943132330965503101691761902491410917433138567904272247911558830927761327702415642735102136287976845091117997193270475044331469123000485790483374204807317445926144170607884806666710015950645344657027064647033092107573164778233542665976373676714465785146060062809882913954897510074492861452989112817173435684621326810052589846905261850735589440025278571733479966781184867580518914716188711913425292229970903566591730323474399237481514445312685693546633560910489240206514034595649842477001029796090716029332816067717950828684107420446693696954025479331254587605984944206350970217829159173681909126813689520025266959265735204502830385286695669628207569374468499354154213188534818422182937449100430860284316760538856421992596003889572218996690999779040430492659693465047191322915071791355228133910305117340079650662670073900647675691712164504209537413716086826206338751467958867312221073649963812365930949829939868439655816503598073115527606701498198051331089843618318962418784711600725280674836032028059919876053181614887180616925165412319678560147364940199492654177132311003502366370735312236248475987274325034765311924688706475792945445305482697816214378703904542527642286021424980004222209486207849963089423174633381516577651029323068918135761190546445591844545997012020782466051619160121438467354227071702048558230478241083588217471605514774620237863125489882342777517439777677511621601397400412686564939184099243076092341649822059743760025709221495202286713883090533326763316091992136706033523754558104536591263250059247748235015633379482182336360777384382707095919479959021816354420370355381155868387820576077800908574312107656877729824674351359772779188211723265110519282963224971068792347545143664616835097106134723143322360274142776220153605765371253123911665903118769761342088975946477061550966468487645437912013432306125942877057445036011941940566061765852922966381567520267310333008670470774795570922713806433901488315651484972761526728998938125538835461960269197439920512045944815090444539988417773074652692184623812427601997409157399443498350659526536963105327398023740659543354180447459918706883826422224744471712520492121331006384530982427290473465915540424598923360897811081458960294546424325830201689116141415887906429097293357648390479476892675005836837735305655878478663447977111803023845633654937891705439887056921520540132580436292143531653321966288513874258618521457845963473957203312149491266662715048897416679777125013044955226908468736470824354603191735011413526863974834264736007081289140169982295103132983817780305675426707742437096936027719158669646875661563771196150678857875667587849394633205292023824044092798414043595231768360313228264738205918180161130592070838318737472331924507109109377390785537937012992975402769676262144708737089960099584110509606907310984058481878992455162341518609941417562075035391968195646364169710657272286335944627788135211398904276183432626599953386415277162207930194609281767098395739470659442484972854334077336748859863683191482680005075212038785855523986451304280694681680039026316835089303901029351134201152689328912114916886945244995013449157793742506451883700213129425914575844163875749349928721784672694026592987946187275810965396432606799194274912868109140655420300541362723969707339164123725820924924614673664899031986585026480276462636094293160238593898813970166401218511427589137704679900705592994719962596401986461240924758813390915980101471989169395810080786715453842730090117619446894485979221975120854019175137964110647573968709141652091056265751623864282477159597571532596374904522019233890844340123108495244593885122682714386380446881581109259016643777614797300109152980522444768240804470839144107347407798356752368578666340809574298956444629703721918802795538836056330255230996948757965876290287806065325926172872150855762858032415368599059437769647263836903055468054116334851959151919848687699594679530572909216077345893507664478491368941894340794409465520068668110227182604586873212872775058796830135372148179164257761122390063159083847026773551333881753185865661266550520207151396330972636237515252148931391823766574699731492835730960055265143334075801392793219592666811902816063771569415620385080116289870066772145585143097947665680783736734613892128849691021201827812843677701458009337292240712825786976245380724393817712000884254597798051743506861843510248265373433447724159159271127126853289706128142361315947846283539999939162857224419042364898939210876741255770675647513145544678719038066665223603170556672907532861091850892046497864878722329901986943883962020022662512417440257424976628609940524388321836879765396579982502330352825344038746667388012883668790334790882511865063470506865958980078476862634906710482709523223937647229436479455221816788916348891572786061521804038440823713410105032099805093866458183636151352164445091642029016256171672822125363189823847465774162196301037952723064947509112213759143672533597823670337236660397589364407524114687084842864289958528211687725482864591400539388687945350950552558140653032982242441045507295640576681229662720998079521971273924832745005305114750700954811364429163952670820065400992483987648407373030342463042744447330669560739787512719271823887000388370330490154457554887666726729959362642694356628203483196379281950693919191391416641050280901344284558797832464625075515364612676364942212568751564711631718944008568633618215899092613216056167653541704545899951557662767300571164047314261847880755622507505740307592329405362280198362868282175534256171032327967290816198656810135850269755653155555614119317781721187825374746718188058669981688364388564185131009016422855856453725547644178741594224987526275064635221562602475214996620945328186598462055942026000642689337146502270649410351114459798084515404079645026145359495667209250340182291324391007357659981846641500806976164569970891686461060003284893276570098083460513433403061686612253511069414157513895976567759725301151345195865789117280662787992811284044232143350771339869377885636359808224249286226233680224839431312314341167743884543726669918265372120406054572381760190355095502934586228543148680333175506946551137958629829977221430621043813568114147961152669609985613605917256272166854258170149561101142277486920800049108492408236527489651905559833982581933637899108038826206853992212080575013381490434450937102048305831239029411853355749236526255656469518232919829800638115894398152154984985211779655708588913485473154985816221895096279893185877872291114719093876582822433060485318038093740987883625898100063815095227849420387361322891898372647602305381954717119220253491863363810388134611098030677511424874759062522896935072144218923468364606307992019682067104232894145460048643291101183394310715627195057965425643818048287727153490333460216829165566175769733617585227315531789234444519117635911372502800987661687651266880904662814379756069059569549266818918539420742668794424621699945799968586970864606367794170777343655998732733980398028300354985468498916252499105653892016755658504384710706639779758591890550071748132618420446258971082545322213841466430499849975165333959186271662031538800811597464955310352132269575505778310766468966942271106002543182956148715280050105293793751729686496319806318803766615684594548293647104338341478150179867681312891266788935516830213785006754625470543956094892705480106002737919684816226796999429660878623085405364784715489019601541579413380097612210665498500721355869858355992134752670516362286541925401228159801384652579860672473338999696860450179948118506364845363033643398417572269757596357948889986139352346365324398729093885728663026327442174584695039084598274121268149088942005435237899081026629569556164985842115705169065587219981383678463529271523461657744822820765518755301912960114836069578294487154939869095672566125756307884587051566693860380665215195013095875574100977920841822275654600043707118956288848417750372203828813541454311754285746663630011189856952933408519443090010946705182081234263299194563915030746101299602763166174282040909666748083544110851578756707489410268889595499449357198022844619603221698958623709332833679450945760875698674574718706369996496573580746904891056515417053953417659402146340834302181057492000605615495128798706247225418227190705466948540197902924014459999988975265644279428113241752410790927998505866051225387140692687491530878219770934142499380746543685364225431870052413784757900570202189385873736226158808082851452066316945797512938965716535016315113768200939265274193914420137103762682850800406239379833599560338139438937238275529352006659846515254650527702565841039863991650741442148967260394204109766665378881906558029595178766854534674298298323212954131300572934945007823268159752153052195277256615194046012431730190756383069066843514106331229944217624790480307462058227325507155944031606629493074878428486473209969256112769118748667408988139685633255584690665490111967325240073320219720778591728248350608366546869572619324549782981557583426863629156256634145461870767384624322906934430054829307359461359873808147899923348408927012600552658586931706825183105574051360970333981822320721569349515937141127808533368404727011972483639607993456208258428771211632738360343086001869997075816787985397753610783478885889299389497436295955961725378822105859712789872626497936517433033583435096597921438020219275873837024293288357182396346291822584634856552553514858336684082828820515304046752803426607873331707564771950284831499768307729349582510010103587560105643992432671380429872666007952645180495357142145132045360304708449250210183952101684573687577791724758360384606462213022743080948437104853210278858828806829329675214502355656160195458012608521379114011751090418311842644153719927073604599465732588416442750228172729573249128531337876558195270014392155233579024084885767815053356484528247257663935208317558775167655070121513963922190796423517349233437624891782670190056230184551780725911434980257159746715291805019006072524511191145654036940601472484550758407731218367717011168706861690911215439249573892481955408136719220667153992328474834646713147749711097781833476133486092402721506429983800213319800284492842018395271144171434077595907492333932264460116083739754311587221788846957637167621992053963902804519877957363276608100836489965133431285337054018283482626663596182926412947633622973690735060392483349075420462729937297266672351929895456251314258968237557934264729586292264369955081645732668251081643699562718628977285993572161643282779177669709923894188797959230179306580948990331118632012299899066071148073967808617014067901585159806534083238223488601355361384328570721699874468746810558513776624331425801018199272193785434545453079365000126321711387619868030800605682158215964906653083428406171174053932453266940872990858144222896520263302115961257746580771817408212562417788723371528429340750015063931950894418419799721824631837418230380980568254954945040312125694349705045664094816655397163687729364349752785760401360990040932680306052621909164880199495168097454849471910565757648456564879292294710061786863473779188234753710450044537572346490490237694420471719711833828088271637660689719634247972359083864569226619320346716678663045856912505871990577697455104890966821206467989978154388676437784415122531095007935942347727646316898133267098262355114409099825527994541965441533012710696239251770455992566334375496289731342955839954465106680569994100113922848204664786137684619860731577035197857965186606368203271638514495256132443103338090638966860529306977731677693307065276806128037246154338559397148967910058067082418006424271016698903373323451895740045047962252212186599951754727683320511417256469616153556999568042241479864141056300774468627382734286919289772583456258896860507615322770959260796175549032341845629362622997042186108065029805139086526930873301425030842845786370982023975501925269640423716944909124307636343203714264444047540149695727732046313946176213660033103210450000437991524313984420670427193989647117628552666478514610936478897794060269041451909798736241026830679013255741395571664983093895981649233699521470001768435179536775556281235795391854375891718241083588680772930827761911538328846001224465041059833813768102213331271733621304066251782420334030674646603839880419954374659253005168659648211763891531372190110568740759386806804021967031446751886709625183670195773456836861543630137366190207701947500737195855968348824675577827353561418136417084551174280700719765765998220672457225662146187881160896868723735103692390915238454827038371037830648829988281241758357216228490500632881563406547099274970940638081393255675810777918503327012328218992201167667826988437855639661924225672621125887050260378854043345265570757384859446816236690753043018943839610456138221985416115666298022785594449644966937950369675232958109329807112651434545415136051808613098404800608058711820565319490777299099807848780175576374134905729821540293702913065761288665628684553176964751209164616253242254423851544096407495797187579099586352091092618091074108775489430258823190957723401354084226636075532148962220810722647578143544294682357503081148233629683877083553169152316709189613634761224030495538787555087239701824527868792569956562557993041097193210584930321170733051957131998652655074984018683994344822289890610192289491986130067579661512476207769588998122537694680467866609785895050359999802145821768000923843347041130458017569212288669814633560824798660233705559468568050290964481360362637812756094607357045046674507634712110938381054856851026947523214825783293354892723697610382574313081406014691667380649542088722236864621156329726471675069489681228149439799399172172905147850839474003331256611179850822552050282777436295279130158845688311153082897372978819523973438101546818106257586116469113669132168721112960639691332265776880704740091216455595316624230933399425937137365651725698055693151427941499039769361899933790438806913246110250735165467129844353476156128672381541314012257149880909757894605119797353634273304960519475764923238162027526386479970047549285193817952752165846652262217192642956527761680946871368801239653302126852545668165937495088165203443720579996353062054413449179124661602740488007125690809929570388027558116381699766383355700675742010901335714562339651404352123091286343939094215140052932910966978167896480119898676045544395459825105645768062124823167913499469524469292284724136999356525889173063159142194358800494550982055750021899494889034647204443084286824841400201758018287514519418332693845685912243562559598136273483395624380475161064140292963526403037584244850620551137375389927345654301558149867424495059246255480331026628540374854405651560469245290793978306021303845850592794375507725355142047582127965296896362860586873466644326431919086851725216837916399929391843409602394264367071449824278393598163559563196702150192322404944768370163283220532559913262835333542845381965030601861159747236732598254859874233442413920571660109394238356009157729605716485610362232850843398716809750289972136408319418894159363438778439684136183186740154392134088423265322985267390469551728072635741846485345987760800095201286724696260555956010811465052358871138953551729077662353560092147578716774000115583166724723308235854523580763882517323853452799874235105919660022473148194256133669727130072256327520388670308310856733505478959737739791900094752720420977986790369850139295182386652151783258833444523312532599804149732344689160073261312828276646448669417029094906948299339453290003136394100318178086973069007703626434592406137606661442148083064801290707536269784872728174382763039125761890939646873296311601221541710413332622771368426788902628058580496374718941449318926623300725882184568651982177623611413191214282887937061169378703921289626760938857948762061580142131246393653787301291850151708885055128322339326704022646276678276955101822950901931780941468718084356841298928829944862827183085005512844796944465655371795517513377985439467802326599675445468168370561572603425555853555413025344411514152801441129829061929112101993851553502817523027914700723950662874024467245117152297006556182160002055605232156820394121947856734162621086652611638749153259011039559070621849289703039305389034633090516972717411563879598664276002132593068271470925343674429139637215345014405893008934534718124170534982554697586018806868363068915367012563774056400023224135226319310527838533852718851114064969420037352244188618848046603005947143345138120155128240910699088503829774523598664477463249170127893751054883750673383921750950959085745070467786687866174738827483862049457425026854164469410676433408594241319117499784747212487340345994333423724583810434023692231128960746035719770210269820937153725726697983012523826662001347737824683147594694626864916875850910453296838919649138982746840696448443195125556479253103140339031380124797321863011760442393709992023378664334681225714449649069134006726314322007997121258173700974515106304077070639616756642777810149940423184175035985765209201928810037904149447202570139584157415984238401616464785791754372877709433087133111608880142591025198229095667805433704533502344017897559309382970976359624550634654629702743217911806385161201462264978699944849073431619704480386473967018064426098191265065484451431631611943282565156992239090751299688017405654909307277956147110173542559094293659831035533450603400145057682083031660193300835982133536324583649056688349746912224330182533894495240494735473934383550079969933266935331832495183187296847876980320304634346494405787860467424148866466432992850554737845939024124305736263857131490953895943165391724408088199100238964919887875612394879795697769382076372127785990708841029849882806379278577579155582077538345048365023709445645627163438612394801310304227639974410492611086877280095064077211305581120942358755562762318764230662614558573544331299018603935270497851999509931477438084023488286423874375261132718326081806958720137796138392224087452906486882395854327895376629401096331037449388776399118734887721064837241210917564155353794240646847946282427482255253769810945111612464463474728069010710747138878690400001077888592150955139345221880039046203921568654652944580611573930929328551618020637919591471084609927255178164691197006766639205371157981459941917568677549116155909691937957100780126580246332321510920929751184104382789642217840256943307292370434187713578006748199944411693319520577228093831277329045559519961961391271647337590195217215873086677934323999103572728223905548293730153162385834389937009541745305044044797795353058293420590866837836570791999907748443550390028428567167212099061554873122158660514355076381186304047782832552361535868603187287327958593619983729335710276664238729573507723459220445757356739380266635889962678433210853175489356817010500197667058982586442150343019874880640417157980264754449769018462756798413876400005797982455535201159899938729427085505092654095848234369522760054270674921596981102846956017858295426402018635713182117727216339051219476613896556006162559531821301309387535170176224094911922343542751448582992087288079555810790318271536229138485596359713234362707367262072856970025852680082927312574702505665858580714929097540463156982319484421746242736563888245129925859535743430969634726519254510791860170356730415414654340418362431657842211246566426688405370306978725101546314503483273437698637978491301209387569583878330291918204980801703222880872928264277368430563405966086950723107705793444457939550227060186531757125558149052364283042716353172083027663684366372571921684382890822777968330120244816598073046063138052022255646984147763723714962040437208019627742025485692425054353057737078805433699369659270303214242122025382026368865138901123080191789103017022095960798455530426750732756015627721858067866353149700917036172902890035678971083070411620410293740380310035555797022964854129592957054873982820712481696046133508424015735142256548158246770516307277148453731542974522864921328182915327209797916553256529484728947762342912721688491822730186747698311560381994157305208490185914969015742341481407303277765638546208259159309324205666886112251504441809143404580759928693600147345535625760879589786700668018924778770254004450454948399412509635331228298632605820104305854001158721522186472929158560410428282620929798240963473359202261464871818718150892541289991172526026600906006955352226817214939415613267609595213626299877468310740389746398619332802577979372618659140652477214914170271570359267290033395766678258097315711157529423371254941659690984283879051022396512729508388844982598731163548644534872386417921803433898539837743048249553639460950453700507866856061843508732253642104864913820014166778355315227477772066532562193056061543354645741860869448735153563433989151826662863923549849858627410869759232834964813413093353963872416967099709302203736889335445011606902579820580247113395463389037809484537254749451966809869247302116147419100962242533922112273581139924231028860247924186105809058982960116727811533411337331841052273283898055309133593538562626261754232616761064235824747731630896771012977866354433196410101541001519655161901631699292131812841874148519296039636225155652153879514504431090045167533550130600378053603942619995945528329631301593099416868502281079471345760642552948511764387093935981283010821309177304422237285615703485884291567621596435540805653192704173453858302852990994681756755603396133023651911633530415607100609312046377114008855588051849138370942276686774801317611747584812901957910505750955279553904799358976945674079767784147600502330502038885523363251951815789991982742859465526307429828066696671627719153686994282510627757225822087435510671884440753040247150801680637632754970883205751701270672611729383500717864912441945950025341697515995542285277728497316114500289470490450920427751485232967823938369953209609641168021714066680449899332350075115385977826350832756143293523122023541099660053120709038420012148527149056351195884423544867190685742599785357646734137425611014989539121008182780214665809133393012568128957329616034887013816568266122845477445156904572999258176356225284433114638322757776665982708828495531850498862323091534755087453017075048826827548345254411813444700742393818587928956618408017495788366589049838235206689314836568583100498091544604517443176278847800938664544744552638276967437724379290486648861628422177704774600963157230979496510634977496470067000733712415743495666535535437643525704330045225251350699823825250647897712352885875759131416007179795780395320106203263385890896629254858538056422432110133897593152274794210123358263931799554512020571838814188391147113632594057683600280889282403396312471571272598040316953607078730636285366402294802206232832910791762957679837810173664038555254918303552095370807707327428187839730757354610009727752966562953153990642957537298144717505899238525015927047038750385046146453364874019602057065810033410611660752971282451752050762060359709097192198879810939429526589408276068215001549209624271593679545837775288528117022829524645898019751430934104716681885704918539876369393303437619048990007447475199228100860877297693436897187752920307966084244125862987472637972205335830467738076628242432644729381816377703073201939520959101252743951608375688991107694775999028254509409473630752043939799433029707132474763648928381015994943027404164713871673459573443236510593801214301052143438738208503464338608087649896227063024218626156363707878584952170954554293959141443383231792444539983319552975148932116327624779634725836674958043866597745161360965815704169700387855903863890757572532240312470936411910025617591491461049382890875002355532066634749011721262499804264864971416151553393529694129668927962526377463583689596168388863305159258105118261028402753883001638419499309836123012572259018260179584452052688649699396715193552317700082224978495344177994635289564970574091435063014247323452608681241854147979800301979953836306284892476741352390122384154084595076865962194920031964297008341284340421582026200475560010706839415879856432325978772839026404635383238139243259275017810629790153634099647610335276315512375320851254146242280911031100957386637777059025772986802299247013555852367109062930083118588941322878724294694171499133972368827148916347727754567681950654268244201047965624028432639766760514207509489191120916131623210160555068616978986551252118501945732706569420040026295279591413962645404135966830656483743423679569604509617828559335127587818261741856899269870544438621468164065656041987838872288097033564663296386493875707236616063899253500209292211891184506834003618096838638838293782933788606175706888307287733121881047985735414227940004194298180939974241829638971951513088392454932320626581989096725208998298092761398934232221528173412347905914710356631637289575320664169797805769944102370810971439695270015719927478158448245680638176979943525438860347306594723213770212494643992837954081120135470196577734266690679516407695309062152058217872623081204750700619193156946244098788931562708866423207799551097834431190544062313514162683223358748475955797350552684733561411317978138346653578018710529397586495622193753833115718709781665285372705835369846041806708696833492397474869615169102407854113508815090827182345575228315999121880695435824289407637745550013086127037458406670695804856423814823770658049949972314069741829810008649059772433605817878516890042363102555618377018382839652270170163853250961270086674302253935621856190521752512541758829324705807565942032659896562390819408781347232614047957105304486627839831524913505875942531060243230947666910247975223911262685800892393673346130293350480158445431824279351323036135852240346811338094972033964994812555990124031939962905074800931656356581328257554877309024742296846968751029544035404577544267904989523385468076383013708952198710864816451537301677573563262210147555691186990285734725524131369827203641450906681095660266468626108249692081293314156170049032313294638703580625999648748672264154110055950532898469680189563602714957657913584611177485184415009844009998172614322789878147095782072069676318647684735160447820536167305003987216251689866441769015754729808249416220374304471192610630246027802251451624044296045032991162022542982541436473989685145400809966073716979664983602499033959319050003955649266652848702713019238877549888957096318876723935157994964182023800007914513025841347507268607465680309074102407718457087254722109069772451069937714646388808706748969356691818139072156480660715139435593273187989892086641655866852257078662837635915182151690262616025986235034871021137806739833482594717763786078694731762628460061901584071517564654026295724006747112913410842172984491547852302936890261459613509180109086512292869002796862782499192108160099780493794091375955711737506752983545046599074096735179947665479927876774317647595834231842730615750804439184380918385091256267502013698101044732392196828963142339286680139225452654597671958546551047505605615544732845084945033190818936536904512944258119838867368159449621615959293162844984698344135516324606497490711677269662402363667831021994923181048774757513701277222799282742749013374158412563224943775626044657135439707484624555527644917039847615031630403899795354980871493708073154841444518588848330266774241081377760981382933115638286736671947274830065122276215759747000437576164341741663018971142545937424741324962414409926841673838756653699264974210563708256556322666596727687449777993540395713707755496625148059351952131011672942797351334638293440930225914899953876635419965931084812341795927732484502397163396991018699593066413966675587048724618173770352196393355496052434017541058389950079888771267567801100299175433144284397752630175620803174522009408617602755483227039961926419095054486555872614833865577326346335690115490173971205841789345214048506355951934547961119130629618191857686313126622076239945293794117454480957170523327919407258105865929297292305401107308565254519454887775464309872697858145335865665758231424519091304400590757803471654436810651608485194247796292906703897437034428011527670861844375393829607089632073479776033175080078303224086390626771145673390403371722461257739572911356710992697392696310232689610496605521243614404297404208274286985186816195058649275914589873943633744194682435175906242567782218318407683754978457058745022146892453486075354417906110642101087201256771561652392826122851334346194810277366836198366134824338805721937669026944522340815554186438974818841035134240302054953355081106018760612286077027845644737369382558508855945731091575659479058726393658174514439150588103637565844723666738261741599919561891710590710333851178193410338507153403716095546245443508805524815595464054610960726920861077948366749143336736931618890267922568278283972127090026317209485374701154182750949574999471212936597098399652600709658642453834166256740043745415096034337861736215748865611844360057947419593472324292856977961679819823924875948303913282270840327294487160152918605225242203440870360291480712739202391541673329016994172147562162379380629235240678747484889350894745079652765798945436904397305910199532286743312259819380469572847549506271574146324043232936095653083317131563096414267355725055261450543559065556624693045046774507681467410673477134973507019676655460439886945616935171764543589159202581602285098859475765603855647422987541679777265926707954432973654116525320068933331787524145972903764416363177195760446360689805224056710834750451755153666493227583973810651067131257491254473127221593306976382536225233420848603782959081727988531054969323277662506445072136065008867771158825277274371747054650466136057599672084195319866956466638716576835798094382629525924780312157047958791087061215007017070027720581835121645318241221370302848973128379935810108320957648862059490062110676379032477720221518043666061483057923012825874916412396981168213994082015458448061824962473751128304673949438785525402502603532811415959332341888644904424503951604133397775416607494660168270636393678203486696047385521001090914064379390251677970817061768904395683678300459243851622691787567843265008045275986155918628273660056316687710691983068226419554550007430626268095397880343973630816072208739158858850013767526493913084345693941371390342789496276098420768269585624008064072390351497073866860800817867556691361812754433067096102699748489918174140063331285804631743428728035176574030278246920570968327712037876283503443038255477004698441949464828599213882814530467567237386086254480587481180408630349699412192460394148866741067179294105840043842555754690578303213651024641186246904925386639216766111744609819874156740550141096008442749482564534802434444161171959436243992630278916951481856894024488556549655360134109354115732108711430887113760823189344424540230331942525466304786480790589567591300079596901965252777126913686224361079599108350476089551903758317100329471037779142994987293916269438007571883712521465448751828806719099049257130972804602503664499485235864882115461934326814870854504610004887478565095778415343154699673945289733852724593345296242944817607322352874191478804036913398793923468627358425796679203567256982177489911362425412809334889553295463243233051598998891493405946842693429610906183628086824001633550943562346659949884817823631396092698393832301314556445106265580313256489192609551137094568979890923519668707357212056898922761664302829382483901507742434482223271398041157516579138379978794308090023414213261296418700842219446715451501249805455284926192321422813154921599775468309410245935014790561215878349297444841649057910708935591635593844310828629844459135710081131274831205213150426933534111311829134361921900718146777293059920772697569105079500670974642410651480156102414404269603925646793542447509241759677801763873931242765599037389117074309087892102182874145557617648536260297203912688085275858877394936617940696865195823990625224651528985971436162399933869600785149572729939571492361759816079789618295585655715817585216467833722109014698461765411868665654576159664393779833064936744886412639535668355548385527288444573222189600817820886118765020023180649283890905221597720327903503257880340745189988301213021561561786475448790883830174585233538542228471046137957959470134917616976314670775163229031265926481329210769657711681479447131474471138233208848211444806806998489309894105347082740542605930106379684791117484862073520880319928604665284843825989081892705082612523179453809911732283270549857815660658370115728360104690087606200508833422830763050130765039279283283471901099137706095140259655011547689674571410500665452968208152962239103326049782703648086581176677541870067222215164335301022918882426485544642722162282151916799986675266031631383714742921764685899108194375665521828892532350841198884141824015794816643678092594936678439205119012608531535960131969192964084228508393257853562638942516368719750279062834995238972519835564959402780222430986166215708967518836299236395712718617714931369976812375033584050720930590214362815946672516327646444793182953902622556171964043862476041933497148585428883552067737023922789452047850232525527513160871322680886086895757542095171862083614667644294276496209993974699589907376783115306889936491950942146502011500566975195072228473840832876147446282413115665807771110984589893332354825023577148066770503160857306256944436180774057282003693732475057196351864154847363415595531168529248108638341203263627349746672697704183058250680916164051294942917676410764492910936954351286396047010079669941769598718723686871829341014714176680409824049698190465434552378476026981661471189762049925813596451973532072217248584206405783621520802777961005883729298956552336999038590044793421004918552482318279726474052831009630012664038732468889161385140433262246940782573227456507557874265446706118185038116625196565682142344269073346240486018168052065182783035327214340197570016300285390826667907891858561053618573461700394369467349468651698276548838481750453589702845934815892050099385961519723948553573914706339775846162016729899065402589387747578913978513296918467491432041124151835031568973371066499233688907579619076968009644802862743834278452916963940186752937578661131534994010356709338864409643789113849643922033205624374069100828622225002709505476332965673024294335067283757561623718100071445693289452023029269766505059860495016700383227269554254473955879339703913846729897286279285265286517429256813687542877403241464371929603757453984136709478847632099746869310190980205195778970984552534315090347034581998515911519482402132307761199641402201928613678583028507559377005721772127238548245828215024008263967126125995096804839828767657728265119834020164700040032389305079467391541541162856618921131184353820223249580030528259675152179253993720852620265788949161722406935256337132436976350993862625884859541019463464886891598673768968980942148991896015604045316948874557201435699678527765207188768183020210850092172633505060553700341315402108655374849828306372764443499851023343944255202690078825287970534791262829461308327546406685570861217014617923859014491746891086079330532006974485755360032893432624099234792885573657312449506687282429974198943319914240795434979995572162526465831942742972053373242053017999429243654027011472550931149581351531214491596430321319217010666503638602649788886406109846307180594456884439167638485563349982528795403018421237542161724131755497078894888228566388851747716186132493000119149724899293533078173609151946652546572083699167243836996043605830577589506598940092019762866116004173171482795950652620048239294587473976032332094539128128626207273113294801592395404903043341506483706848675226114521705548178930540368815056874962218663905292115004281685697867308266258971818512747304596920795642401809387012652040930251670538966838435384013433534436320512624488927880276282687554692078495002137801504054747776266795915539547754992874829805260131719283842447602407582628057588126951186790870660976001423153637813488290627821126475428227477496044796140083380260630536003444933015961650170012508209964041556214219505984414109066921152912917547678822675536643742086568672982565791309071651418920623687160435871583437810497522970230306663082805981582032785517493329456194734130385460646898986284345296832822478088585205849227852450364204197564337961415052074990369511868436288901532849887931225212503837874878995235839138180243954630308749164823673882606143877290641858319064148754095848608181603849062071790519283335371717692160860943620619861559343041073848788621436890766634656651324296730018534460492570886992076295790939158358538158927660615086428113896237793795562782136966672575210171901772711611809504884643306606188104934870197738880710826769336764858734187312123719668438227380092110132161882314474276524548738012738083605276333498491454025645386856757406543972457289714089303310676097384691155457673132845977802242112312339614170383929765871849618064608445277684924787337927617905056618636642419304229185613090763451365059368469150105556976376908826933655113793307354268634977330551706086745368459991762228091656905325183399158693409022129039486584630718163811558509600103059571127403368666681121535935178839088300320229240505363120862692290369710282189189109341533636314550417766749779436007987512787550189973840075330605748410453976794645193897229295121747950154332349752397123397531513945666210353359770125947886403633341632588151553529121502720985509702845851559355607866641702412134953636649095711213990204409880334482869530146612093026592717063381050198872938217254560347667605180226874811665609364030128688106231393896074829279270929576091312438475552105737333294768453087778370424984074746480071868920485595133192861921286460303248527062070046206525362372428477135342115110711423114368384194785329096694600229382171264102808048594840087323648449308971473372927435299095482642160287093072402651337051069639718911483448667769423607221730454242082566320003181541880999530044722340497377401897355130634752749570852143520095445963804162966436558355900325269126549782236965206918353308599940665997513214343598100963258341198112733395093555060595964099675933962503807093284169062064680157779886603050781962472916849923340707031436445922304950280865369826711509923333741586907053490315197316014981536480042707150662170535098704412303854602224803965032941231711710915669945876061054974823652214705518973664337176432058712086525428796255279604035294976069932609446997141961496300712312431046718104683202181875439718526952546857962036162121439953462930935834523555958200077605838693564403135397680934071141923806826039175636717334658281425952116779602301612838923985587882696058124154969803032800063277191159765809969638852899954370942588858698269158478048127427785312825018470127156634235597758846336381259304611363718489406296339209232282348252556394125796954663674329014958705916746870202464826308940222819374073318813556978929676619388189412196182471731785076080077248878476148114798985356411942154569625495166870062257981743291244696180132741358890754524706784505084107217819394756853824322366371986739128860328060561938175578113685930967942520681308600550509925959217129212370171155525641997613081089071555015756984320529931080510926735294401882567744477900842496037249441448287506407303572692890253929647696016186487881973002813258958869234549971900063945117280923415196118445148702212145559332370068630057650020416409129352480585995957174995669574156306735534317466079706421622372199452139868069351948769308463994554946614239913529163129496159098818887314160705874565643261166138394785520587378440911891727441668201376091629868731075537034379193934909110257015859402327033700376372280314307963134037053150169010028793077544815317575855758701420794274419612768273394025675416247714594314042656835390171993830507585254018885199901886187599998836992179964566839957283440657853302266131366797900494248155438260862134962442206691938881304996247189867439500144999293464817473412745678660772703382045038353163270597135000282946180886077895165653391208160033027168664595285928587700132060932266861832282706703355961205528321047055339192179610229626034753613821940843838228445777306467779092303504073367585339537084782400709805401752666296446527530993265289765856143331926203262687019677779723895380536291269872429814811902075764885065802802240963872715608481979235998623266899485987926732625295814554885928443152121040359760596983108748621259714840165892427740128895189301807647228486783313300386522023804266995975163391493601265997858674611150027153194005538350437941539385091082329534067110478329818276891864186033370573410162574714307228704495162322788990443818648510026520688437857797875144625982529102932539615092802364960746472835174039042569153592790185623350111480505012931926916464578149800052211559186993260188824909896450034893313474945976744003347333318120054164404485848242333705482035363189152053355484909017506187915218233389914000092592177645103193726747901891891084220794443640405801946146629649031813916739889936882557781807942845811986375700379898182605553078219618997234286903683507390621951570248522311043611920356146019065426480855813064560562168893803811841686023140734648654096651925892696334867275658388992836179779316253919808878999432169246431773510678772831014049203170476599154756444501231846421856967174228118149821498334250151528315271517468295746073659022082152565605368936886350195726801132803844097099788961337583541475877584159250406267626325652782355305068647678398539169266887111906904450009549823472795506779647987609102976262144181725344940214142499827078879279859858653616043441239502192234271203910079508546498564710631295311721857600241300501323989860897955519107763182742681735177051884071417271974105020161861433406413406411809760662905735751363688639611432765117169963277943197278432974702036737625384663710027758921072125379618457539641574128778997402437862180130351440313911604376583705060293535435328359864125485914826739706883146784181615931907284822664549287119872711757270669428926967292303741905854000637753482732166643951604617945483404369239840323551880431283070821903095637095662022563637807159142478665824604909292017988156341141711767368619010400641409473247644675668306596387123314406180860551201352668309017072789684993840581283304159456902455892591339314916774717082425345075600132221460438808703140067609288655037781387924518746519984558006945118074964465314702250629605340520012599390905556661175341845342313324829692258902779793802085299665131699984197205675162111597243595266542781460000511123617588556156181551139424579686838615400007527571338041529618079133713172982103577552721143638323790716880197169860345953158593305705964295777740858434276910448057364332100849148464934818056184245815234011913550098030121836652023992188972854671203038825154799156117741873434322885518618640250147176211486909904555599891604529600193314799009060522442228690201715745772298093398775127696703845291641172568973106931902780324362254754045815508916535700019918001906349519076025315714821250312869734279227023284364004600367495323765116502310625581271661581967629000256579947513053630941524834989912835182692912561614319651257132407303188041318582259735682583268144959294325761166644626850994028741354052487525655592183768309667636535520508814870512867686215124286204431070278144981671097363582020879529948720966825473765906721627918991668174337121678084248906463586908029746554886092606834316692753268272943005429693790870594286000038841631520113136542149597557724797400733085265884280244008543270853722881024168636613346344637877548676371310254358399487323683442405906049762783416927034010271266310412314589603991333327423832417262275619920958426664194062500093393206480284868676107297933697420549091756951141846618725784278678604536785684690606570658362078733752242506824779582656775654055571097013159666539265764016121262451050521720144905526555727351193078768536729692257194117724667597431786892027896273002928043156470715422256099300362992417780251092699700788333835783888386358115106994491350658923045800437653193676499358431490792954820263789806669375813841507167060015072648540508931090476911928994896272793999008350043875561086271514722977912183238981450814220870379996074207155976700240206373789443490101486370078739676777543621612441549370084948681380684124571731214701979863988030882784509439256092978981579679189839545845078217891328069266823984864500339409507565960548150572554282525914938129220625026508348067857209112707543494751183054866078182072681957704717721199785491687342789599969797346261035199346237080512659640442848390030373481063744351030059623022094283011969862719732971279212249610952449449905598472394412899559078748833630327460599875726307019712521673386677632874962530462863317026037757199743380977696974916829318367605151055912185478714139540968138955032433656623543693302529448371229688732991984267936166789469966373903104578247135475582600253593182521678664521605953812799168292646618551540344507843669248493894440628586044009553497522789148871724451446196427528719073750501403960666136715513222723053160483108782471189871564822584171629943154575614545915953725731978594811647420220962759115836860958401087282314483138735245841771707069932498877664833415504845876557958646804295782386643541007263149058404734359588523682352116512152768468104242765208346979560201149492980223777380053388208951275322303082198735764060544206595202193675351598230421589786947300233709968139751438494014730760166962166526155608681991998027924513834656201720133841329006077639208968594430903883103003524590071788288925307271108924552060357692175126227297053949371621997751944940638879852695959234054731358729774386822301796398623437943489090899592646855873128619411309303004665079597174402385361928132388494672428544073319556852732813034929258064390392228283755885640798830091102658474776094015841144040105387199839496684422286690414296040672769446317177596691724081704259859782023741859902204936106747672425892002097754224314758517576347144957560943157755508281901195760059282104375453086824432486852309008150914794700008403347951927174963743458283329889602492464985373290452403435938990741191560678536678601930710435982345784640594142864045616024846979672727037247664682528145541813748154466720121587805133638424217978950285316772963188837102587141367769183122154541230316713155712486853372671977978779180598969961768066608274476779834445304159684794852742882468293189010614618447166507717342212652476313061001144594852806382400092939574999761656126159394141200601628638679086340981536297968874303648066429387421408405311436557705978891422451381224456059403947971542411457698962768904173333137936163886570767753432948639959030335797009633547874551788358348277503952334793172669787950175411553704138973440413682515910128283130156825958923881951815855963535832014974395494534938640901540473358945943752516707576948888830953596936303917766603830081970997937469989761602273972663959645790557350706914155917159412185547905682405422720417223140321242009214331180604244117597680461899270371302303749885005263665704686952489153761911555573822118678983682603399804239913727165463855869576348675094881747481487510034506094212319312267374806762425327296333116086952702964889221519484994723531380507432652659758937149308711152645624202217606307121770323603522733147099589834415665048971808011671399533143059128637567952387940284053045447048813655330403380366292391622803058536392200112587518389472129879688381112665525544071858261770381125644524624154136341824655118508112011870141180549249937659680327759345201978878715889327637027795106282799967499003597123284852326436264993223808145812080327843274485668512477497928407187098584543940311212268366552276681245231784248694707498817717987406656379923729192632519813377578732428600044319424624592126153821304004398209656362354801325595163629845947699763016338248858171694572507273192529950835352589630487121296447158365231265559818808066675292267592629109262135515361393412863961417941402253606758691133915505932541644789145190160331739479370247781741603298910119892129160203233877431625976072910641689439158075118383524610739905161342133878015635221428793538975092179652002825777398867154157116834708659984229643357253899545448526145280201823781542242769612743966110062382773258381402228466920423576167883310083641819357461875809277113218135191976551609115444474174733810597608293659171437237276902727984772696539786713004529463554869374873237407560519000301449072494715968713478994462074807113671712182268103216048994080824742011748600690680529046083111113170949854353308980503862120295279220848509826572054768114111560879241810076187451356916299492368155778019432997860164083589535063808478951426145981838164871416659968091499758221728634618374260977777808715055000445391973033109352092712474626369529352646414424483735283641040205252114665099131213638687114626406148239030249983584725747613262232580418070566467378374716909017117661123084416942218496122072092916506017386759473223368655341263501067530966049365988188487525496166119294305001347082583099891492776099054371569873779098083664103669933513765567745600051953811103669227347133298624333019158276206327806337528733990025804816290115255723806470190360608228276807324798032088237799475632832235648950013734075238859262171688325310981027127772207210511767777776662130119512395838028173035128646424799441658196520455464922291698943838427182199636684935467748020049981636148272708363867762453582418989990961882238712769282515223769891054154861222082707956979185793364034936866653929655007520956612708279905486034958954851474125388852819696560691133900635937559498315877003962088148747542397052189824432929636797353316982893661021476005023942420696032025540367102179966660439552533561680247439122404685030951286414744612839340317345213408768217874843458697694785463080675178788771579844221690021549204763790907566061306339540795519320752796454406864486094429239521449131719871130158162815917935953375093843647677244123459484629934237699446607012893698231668442804139849116889069392226373408707591787521765323433479353386730022313804499276817379086628997399390808317746415651475071882260446482818742960245375357706366987329132022300311956487893771609036246948667287276331550320284090073574798610638466450266030372482707749577760519245407138405267894368001434666059584976828071097942322879715499516576377084729340974364713078632908938658112236003419760123198040467079167558889298790772987240450852464637503726827217881192718314481274310116464339895077671246735206465788852575444400566332188359333298501123749487843094385179403129077964163689880218616039697866082423639522455719892026506502317899422622726470031806695787469894639239750422416111141477663384832914743769818883544203465368697985869169790378152895988285727976974959693852668757518933322533345684909659377908263354120155920935247857743383349632239412825245019451878179861528830474463193905844761797526105017523455387368666245909223184211118705257375836295964964286044936059993633492263672937991735342240452581701015038090244890713106195548714297104630942144137125147650787021649755076105726166548526437445200342312254620413074539205987204768916700503058665660310778389750655674730303456660526455499061303928474563415122656855224987894311662554426822688604004110555507479661526390666353371215087226867093561945590181132819717601419613956354005554359775472317813335727081768312783294244942168181648507915981135105932165723206164437367194472805300465127603858983666242793005456719917112900587983429312015577352232114976333394927158610388577921531599007188483233087178549373091765982086610078071481908373990753572271791432513112064413404976587632893123275968171122868823571166900729242248735520920413124055246185241500071882581611112128384569509223720411030567096803444689734881764670673463939526702040518618341917455798691040965667984358351927101483801387174579484145792284890175970000000798309924360451941165030353091400242142845167314296339192834268050338188472098576991327713283716096332851377216613857859587435420347290191364948662161113982107882267150795306938329277839043255194478131684164283365042259280917219522781529459389308223805075196067967584960977223700479247227128403270812996543517292413764359559213015553907729715136864726740424270510245267484725259580082741526414228300863858590459629307048728615047300803097267795140754059452796922485640503219402413361870518443154571789514398140648718945893431985701778778538317862882528840979795390818503186245987838315374830451229476399313104424212695136522562728090215220545466462829809506979623448111225199784409776844749876308975093421762141236824083592414208318620326455742056353070913978110772041935201358752946082024534120780399299383415230425591585910337486169504434371533223680263072969238903598075120347351400337362420272480072349938454765605704147590582766580699219474373798732573094013226543549441289098823860127363741167986834748998361949127495979628955996707940904154989747191151186101848435270647295401159891203880559078229300762752205325485300331474625535633137525406556351259216542992795596355225249115778649064535218589979083477730752240294024787860290854951233579212943672888708167278538362330256885231771440091968067264809370088661515442356988789351097644168042798615872537495550402073537771143838222083591035373824459843037115530403273946236840399881944896774009849180027054792246914047797783025964571016944597183693938487993400823326818686036386699731217499956019460835796233334967060366375088638792371578637389628687067795519245891761103114024093051715859032397293364114303407593716449860959338593257984912461096657720534416760697036310281397928133072992775489638998378443405162103655047855742916029404307058997777723603911050965395931159510330241064243674312978184167454454439218293017653844425634725870242076782866900583890424521052350813868830072887928783921038280360383429202383668023559683969562500938062397978609952481337180442113962007401189112069534033107664295811948408592112806941825359446764870785558293246172658646788004528324833236322983152976792821225384329097141043817252174171643209911362930297934237850699898097187294534565355555229008842551732979516976903716064502900592358449619031877425863318338467222235052779542247489900137670605172152139588613128193673802857475885299152869301785668927417344769358042619760672721393343135962114064305620470529240858166669516292301286789843647413717752607901522713011278402935524548670361137973223098922632805414524505306467620976344094077738142929126584374163473294148296375604561517928357440768921329985877469780563843613318191205843392127888928413725362245264345522073206828798649478658014238981670780851627301706726169550406511417223150390744725174035754920441308527482702350605208550631281969707592926732585688934626477645699004545663710321436208741548661672465428040732424141847468101405479408334790082454749744029498522543967584224255891393344724168292830923175139834034137360114291796620472280197836998243830159926289187202723762211040613437518821158967262241905826182805225814892123525543955314773073380880967845808356664980421090296247744695427304208384104888566321249335775846625490984909897480644988728197423516385503337339060636565361155228108033107039584373473348656375659156961919144655280115984464310930349075108980735470587794035859033062107860871442428484257595691425506874683490993861067082989020400177892787966627683867070980032370241879945267838293098757539184076621183864120165758967945177238020092033331868569213567725862748418819898322635319244521934924266528896936604289351255088474114863189025948911510033840699209733845020959693614252710516224397117484776471316314801006469249090079920467016754017031392207889731237187835415122968794362160123227978931498445194100791956840153909388876311199496781567351612566799026688513258074017324957944160867360518547835997152765500054093961981959301545639170576945558259605017396404611101837583351220078871718827875031817724711837565989871417091164010451973250505506272108906133088634695120392230404323956170903203648107765978284859044048660327734770493137596301044900396687987881439589309264974268817835810219403205734159489935078025565655670902305537174007935555309694610876377278475641584709755104068272818515714134738914391600932690988740592337052777351874872024725807048057363899318751959055628918066459894261386294219392473313105042517644979601838307564751088338520861875718598963011853011336635314021010482344901692801904946816662162311370511077154357998006924182204617298301105612774106839109193607519096554941332416829584680815480458586843058696319786869270893224336787930598469957972092055610028476757902426496088738508455061842180491807222053447341341964447631311813993055613249809726497424432774426708255361800234801618953658219750744036049930598048682617650451009461184433021059247815717967796334837448196721215137360460330052214417919228219234684848879889081683231351885628964109714021393735261786328571038370542091836435467013062439051920030518158611775720820253955322614671079744989993698354673816225439450490037627053862699471923484170288285975875432741943261598990188264227912436294466592751583864173513326471758360681338432456477171172474330834010429266876589301683195732836601679329901028685653054139814964868288792070933538084859411249266764963903662320293224884593942105765908176242750537435991957243243273303498168968110371989900677838837050437923176350044506565468717915975316509167580800982139222333511608604863112125373186360777948438682238680021829683773886127855750467099898658560700955884877154623431497642298230912881083636563538962067377389804175197526385648068454123417110311108975057452885845718234837414257213740414822301463339237379300859335070434073232650210709817341233065821408754862725475274034833784049961698951885498690890704088055135214896410144785472430961527905448194116225420431519749599653056637842079544657665004487816983340687814369335523181419227295991675171294784900861284049365179403863159529217090788746667402201700289283094009439912445842937825776289173647280827514948666879610316772005195273876034015060481072967753488640539385371593070499557758839842282285174747063674026233050238075915663326302963653655459669426384799267301972040983702920194103386102580217049790899271217100092757257343811450013951245524013567781607609732267798601550026695332068225341262609222278492790849850432176824039665981445067094515192291684634839237026187749293725598833910878730296210100904600376922926925410771603031458135389767265055763499223796588013170618373816150103747095466363708250332023186603875880232512500068842661633585479299259261010755780814723067428887197293639401558413995810531790537917283968484741626080026016696107576992184920198995524371548654438762207270735876841641644470745480168009171070995963884469467969505330375501284542848182271447722877588246558198393242459292445465737325667464375601786023634929074244619488176273398138412241741953788928435785090643493212150318509242755354510978265664847879097153551618768879043709487359235735261115044709706632025494313212935375947362593341343887432267825233842198690180523968057150683812499751181287103911040185828069441214839020640377255547151829812290102381084640884752674221293443654009880324476967295742409867558692058889841943941833441062078495984989465463355882189657932692080414716031328633766894669542474572260471814947759591280701336776924993793625951323373762671955954200843367784717330134986929863327637024391040902490719920265592961618621080852594723905005480586585981303033481705101382226220196904714983258078246504125564759265818818929029890225651684065135145454852362528705743388088940669261907751820551690266937508095634527579222292968681443960753107584225671457560137458230350785533082012447515506843273783659611838517922773458690831140214282806868140364650801036981247479355278978881300177942394926991330099848324396196176653601480533374919544433845986831341129168694676416566237221820720654807926263416315156802896520388313178491478131151148642758339433301049474183794642246757970656574973389046776525954139877495362340890510490558731222150718741670353421346875898458527313526018237125138214726938769488050420105816528297661282966855036603720528598634935851054442680938660909210333085585069673108709106020004144984045305687864669222115537196412439000090619106124889941048366972574413479971522629309398470437315230066864688659575963970961890481822983499393318818850474255057510663368377009048958948593301619180589863418721581020897706103890245929945538708631767970043375639905537454848964850216971735537090487784343411564681570182776324329579641028009567705199331860997191674389250368428442505689948093467846071498869182199932931843063904314222680917121949899201389364632860523769548724302284752110344330512654429037443094399369255550044460902471127736572810311015814137390539475551963114433113475900516303832586801404254481892769278910352850460167911333174064350064728538325376935534085784326389689505610542757794824116908694992108899522990716700599429324764474976697493783148180033641380213945008310393746433187984472427369076845339148290316661294634854113307737069398496348336396161569575429814791765362180274490691141733925310784840614256082599596220020979785044564104202897152996381891631664824916006188075352252105743853492772729469738919184727220925730802038286592689429071510086288382987811676293762315174280235113889112201525522673057135253053217196639206118980304124390681111745866316677000171507997426358169569745910793831897297306918432733767266420294858174860572900941572296495030697477379865199693047444087120464347326905400423966176604089574322280490998974322400219694935858711785738059629468234307135835503453616399934053055803153321999886086264120704159278830671153873725291171552385901263269003876011173863099462972679602561309260187936284349835223404286700837429567839331373407583785830520369655324231120118447730963244532150064263060330180816535747648687743178443506319861491416484913235104195700872728249441230230787881897031206752327910228597353448679654534175334232967462501623556562257490299161636016259009723992519008471170457865732231451610485394153104535810747233946096501042953540795102515742658720237122907900399510768668244015449549972563884908302529777428280614970673094123713660786093058256321690340759185621628488077804267260822516545828508244978115479872880249016217498103579983066428044310851996718753363676139070431113015937675534944182734772817197571608693469782882051030264446083996236527200126806534286320055535217270288399619220560032625451115812037848371538716391906066249737014020925332959866409424695463967759552131933455134816407576202263632310172360469138263049939464428183072819324290584039229688747114042096511376664272944949355174890815125008457462608611872087848193812768211367374304538464345535200095146081974415823048942816256990318741976368264608240549053830309784106396052259379174348030508083301793815715118166644092842998734416491464217780066660103273531875241034830702921041793548560579540713312649318818270725444348694696261842871282292349654503782762242245456041606341489349610819191996855487115025502357800886334011256344511257925582631709683430651004174109345947985403024526841719857822930563832964084224646930451460436704885416844908290452798082609780808534139146715704067185324714231333182553427796752087055918207551364294547720520610136186657767728791962805137346706379433156326680934303539042538226132553307601442815091302271804897297680191427667717740090091030770981549819777825516967766615588177716831093342586894554226350398248820584581903152436873335620101680868140972542938276796894538369827457502879717132659881260688649562209219799382190238536994280820722000879464279931563122502775625632647180321267413144921156089643307614271471825701243501184349564605899215491680554773053318849217031499002965125220049842363811071800708196290079807608606134478405076694535675926104484568660831646756495441714492786261975984668102537651634374800201117304048436829630130928829094616881730531435340864708938751459467682000600240539481623584396999522441447338978661517768827114671382363775374241680579745162001295620058323717341197420361102719870554856309975340526541807546535851795011343750139061605426151397576484541844461337239399768815893715723057867458208132469228273125391513064560187565606298024270417647455966023072262069954256972882806515400129052978376573615420494928206998763398828245918333890828888923386685952094503073066100313522884100965490112727689395373260053793684888441861862600328793459753965521430001211841102632533866838920703120807631042339742072272975465926850030307509190684522762776895768099493325289091104983114071083343997340159617741049134508936651763348184597176886924560106307152374677895311033758479736134950373114557364443005020400411259616352567366573675891945203412690262687046031054216122215760059720906594455297379251875238886634217153051309955377555697507970358352820622432083476258037088803988213772563941844966748951144856413910298531145833162522120252085308917118276250545799414549003912658349666392772424964031708017103653081512350411739679140650987432736790238694224652765125813997264720934393380027367510253498927544223087604317213060592819338636221234769027592175970651916645883934975839249856768178974074147140538862647859489852078373682938849258730891474874469754686233119930491960262950844077274585442025492293066638979274322204891852805454427847033467133951209299034607306613360709929512034713872634494583879164742730989981134405941837289610318814108973047523883119081154584198582083243397440459579986340392081329242730346588521074093309154899959933630142378548445406674340151321566455877237546937341884966319325237091042184719805663053489721179377946180040572504668301900582856737889169658105817794680295354969069565133089755926539298996966794862142969566930670610201156408940624927752354955957196118186188926797800162636524413790467798364422652077937756599525927786314696056275061155672456898710138185060678959943011018630357908928802615772232966840308421399102554746266021749354937496072285284701895151306208289025694784079791354062801019013328013707500944654977398530130103647983373442633945452371421464971793366496938081652320291558634740227694032231098882375167678377420749504117421473858946138827264529971339944288416808265811796007418947780406989825630247515880232135106286795505765212813461074272340517913851101683507807466245962736122372497256654256283989135597559306077376769032056792027450667472871863817008042672251636472291314873290474601806700351389527101402113312958356718094260207227070510586277401400544501478039361129439088604440919108412274753660663799319153901993911538985207252922629635905656363236544347364664003072127789818687938478183582430848819932256056990923689370137883336098310694783239194980144990224955850119653003969374337085311085912011956275337982090335648938929754552095786886049550103006396450050807796752544158734974733950494006423706410421425296106733939301482115525976290249155694699057342643421005422487808908070241432667960590944764829492337557150639069337005635305462263413365202837109069314649555223501748025437385643175202867248416188993724677567149453991227571890815396520520592728249307741232391455021853407331245990579643358140007686721530689684819029523585405335331365503541996150429273952727588463000384517980991178938831001432926914731277914675954687474206259128440484726441032522248352329812072279534107668677480843567788152689407659536325897727446825709046194843402738252368206231849716051369115785088541563321092973081931170445402853254013038502841442152343869065078766599373441355058123608053749195775366057375242847011248198239049097170671149558874028531615905541909896215219171703248330640451787638702761389974418230233104162664278029424962083867493656966093507041874111834255466778558457876581245133622186798084634136680437645785497813366711094617647842407056345327585538020628704690259753836131382679413923791007904011977395633710214894568691720333208553589326870379389997604216470976519812516592149363317610709300453163359154479248550284492501196417162008664437972355728263580800907016243624003523215402181881424944300719057645763263042944984516771958379395460973040400684006019370285568985162654112613184070864326388273765458547238896831499985507707878212076162975998040215546514237914297125436261275984476923330537715549717446984919012407002804467127278012487126299137679237155346794293574818442811175705911711540650081034926126810820302818575965018642084771465460356636065702973689144474396842411451434880876636942683755470795160872084632163966173398078800877757980781161664896323259381088334989310306805343501066212278423092688962683816198289264848331568493896882967327187652519146765673751448711108753614536939327884102757442995483514563874730338480639196859135769778667863532090538676572645040846295123796111904669688698785710838563245630455003155974348761471721398134124622964322134878352031862220910954183834704027803673443229061205197360816085008316723595067868846765660159453894086182955413555782878976954164155073607542389093888631499789582601617580568912972829756454950028518071637031481649611124088107598488577573829347615571511932245558709996350582489867891514930067103711252622412234973205137369856802773666615361080461296694834389473725154012036234428214222687059741119876243217284860850819645959131940734290610490694084809707888050387134612700525217439810540848697267713156216950604499632070703965394746452020342683845843255288904561365217393050756127883216988754620101187121917316046343696105483783883857740261166856983520763316055120748757048544209352045580173745554108391998829655765910973608736946025536995247394343767690842144218640154311166445132062672960240283608440054597274399234422358871704118361007974923974073062820726254489606078349751537546082609067560670074053235315835835456689729197776025853560519891027139434228337296170902144934175163900422594255874791998995978632427184419708636876002246399515705115497669833221498267179344563907545254178373434973449393688075853249190087811921281562732910057325379835379253063413746956296311937292746487770729398094661832081383189470180169886300506175041292602538720927361676292280818257347248934340002614231746572164310593363281173619825404819398050629227378140452380356022173656867210566267880427917588008320602134437263335570716408688518935672430734209373033227442035194120251199414309340278919524152387673456800442716603872064016804597975144021907841980865534534471222287744706845997819843159263889178088014411264214990474440728912108811348607324861203060355334398272804374266518090531660202027188542700890139213318337145694428201806879976542254192534561415589814468169977938690398675812771002048245019283749582904518196140345096220565841277364171669172008028265976757094292804186506006005243635986063081946078424465017748235184638591604528128884245612093170929794884416777341852482709923676868204411542760804203041182628321385872068674720951415832825884045122434686856491196789416220440073733478743340889128126222603227283245701437934396792935424099702529212530202384275863699127522544850981654096450550567431724144795704342750819471480869150518634305002733025340702840063690387587729938096905898866552793034904153700491204928290251784088824075508570795323744254730429082108184103861735131315045921468147683956930039967413341565602659594225569595227648455779192096982863846669681528210134195506322105104742308337342900705482340869373603964625755458287712870347917872688850653373172639947881803207951082143836612477380042138174618536116453551087206347203759902861374635077457717702800363771109331776119476136935849228471823278688204806189792783999418605050970899175630693156611790427603047136117084592244673724977945220122517403261389841765101713498866473350148969391712523545381925177288029700477837143582085745728097864061224710122458626253753247083025976093093711317060212740470387310705328974627829592020602016208433450360676068795802681724475990232367058008173422158810947555615984224057760244387589611604231262604742770033136876473437298096285049470435392325123766025946885916161299262080562481367657276235635917046460644946320550417679950231335232090601124968746130047682303799586446959029569706427941449879096137170073124896666913981649931662487320663035842513877923992330336481333700271779105942643471772912045337110753384986446846513833764646483582121749524294677281901803372886113228821204256896024966514918032668020494926924037957699480699739530765819722652360948691071941226541584081175801051540200887634698232029723999586225822664628844568892740184448334431611257052027213799043519011569062391062705454192471269872305624189066801625773746566837300690510178808840591948230151634783177263145367676475596681684451163515791274808803390953198639363450396286949468040040772313802079617068035830742109320079314299337003863039998665083179535772933740734264704636015251401557596035867257104431228595055308544377685188280537222058080036200152331973091777950646668858200122016611153948915096072439172145129458868145627544043325029924888924834282168788699618168754225545648096935793440976342960596611760122446511057236413349456230035481038440901399557572190653107689393328115661842931197031184775109511942922133557866164683258845519499663617545734612851895012452279870346581297003839472446761113625587120224531632327686115448158185957321743731472714768276215412767128423131113090399905281674668165826377251390936040772073383631158933347669412464705472506526918135889702404879651167140368518845859017727681511201481172201028679289832817873200777521699554678489774861720857756396121797574055009248192643184482627355295748735067199504042733764107056913014026830873491368883135184435303513340840309295922934703224703948679532570406875969322745238598837247564785325271416337119327596286478474478984435677259976311449836220191412176490296730555338435793084177903228164079617855265217502372755196169860330436539377986426583153654712978415929611436790163888851950492471178461389963611515655789685105651933227176870513521125769856852514524968993490181652798521360350144056683422717819450415289748037797304343109826229710207331094545981090237688277055644683364728801760606327814151592933440845407176713193168587903729838937307122413781465252774710041531522623295154208099229281151371833120143082571652487409440549497855245717854685931528167768374893469342689971196471313882125816678304515312713160665276540220598411588444456334429592652214006790440231947712701107346773622548007735090694348498753672332100466545827851274220288892852045809166899565075147656884544040959819881541017170896675652246368473760098995041238451662359406702124525981827748284036752416058371730832683722839783739758550543626650419868543479052573412520732016952372908582052589299583841644577358969390170627024405055184529597952126691933775567007781453952879622085481311150627148219354380694219599332004608713886529150896082790886092848715043404580201627270638769314088005511003917339149259167502688955181134431314172142513461600289326127019853935644707102493361992391227167295721962396657960930440022120420669790823376246483990190256794038085089899358757273288318820946332446935202337716723792719730730478212877228156432633663645234848788258997134637706687466777848321439311095547067068661472547946330388079017923411969571899201379911722569135732565747601214164333379544914880983061961930881760071347167578376854785697206038536933512272289226530466589755555399476504996228709898858031729446719684133796890967210252378517365344027352523756457897731621184299606558894481907168927009561781726852575552538001135355988537807444437415804381017701863217359653382232317960369935643935841049721711637666841803887985144907850010481140817743379852314237831090253275608305364920240625315494677702356663148451290541136362938596506748038561102762144455650143747264908533187463209691383157019472443747853469313810514086739369517375922952492431563985885786522181241378799817609965640454461295658802221073548008847789333160338304934033090555813290111997670240199529149452974586889686238695706870947910972747325999078080393748768670147223346385841381510930331711280770340554479819608619256248904872892555913594116926882503010758380783853267834293816032075229989656994765507162248119047363115998380971748793205765923390682854295341149921588360368789393173317235637005492154527002793817549382391572616307561720860355299270312958854464252660473023727591639263806381028626174904521455659560567113148451874144955698727276338517202028486035782140353887589374384166279887792214078086162316265109623825349840301059148924684922052204199447607730522632026635943053891780671561679515203381343380253426966286911036827820825466787123416195352301597846371491297142279681473686248238194753652897508386318711778084297255641703621647407710969414561589877559796083420355956234316091913409674554173425853751121382000800073401044463361515768868001306554808362963867500573814011582667520430935080358142797703761290923695675908132077915221195169379151245524361488660475636128621786140212416010805751743139789902259564890265675285599651501702678392580413002949367041837492615145883048633866177974310365029909084139943802987494752192499156271049508776801603804574286584493961499129096058426408119030403491258690193879733294121107137508951373781403323351897722625658366388161033962074914326043606129832596616885374467950891034229673671503253872061684753861153475301855795028001641528124963029622749921287965513168476762821809930709254760245787583383260760856599896784070683348007377185239799272191863648619870013617831596115118850477041748431756826852701492852070990548677798085260279252408238147630916921574201453715686862633520118774763492607550773878138398558608955807748302032953488726605711124052279193815847690224820272528586520468943435885944255596622100555099803949086686453972721517430295337916059520556976313804344290755544813631887131403770690761291319272341292752380395488409325626051325238704080109570836662588338215419822280560323450927231896429801274946893651571018360831256173139000288543259304426025157804293576652651074265676382052563029094527789120223501224027249862857525570444793558563057241627677651501212430134121857087179630680074229618056942262204716451959385576161230976263068566833849205258339848401813520008685747976983413952224702135810835789402802606780020925291063997492114718745958054020290284454988565352380117341247177297623843265890051527074890917240596917861457540278427313636192272641362589788308187282252427145979383219084477125473496458887744182341597980129087676296180916396286767289131327014623724296237453709968857748647694130423012818254636164705273891112179238758583004139495725900684170357005395087644984455024748894745003425759235282040541224193440832958264081291294281640864696913140463388058559344509826656354619427904589383234311104949360011651678046470582306515343478697437582777646560034492146339897001037232026820370121146352307444774347760885820197431644567852806336733473560728633721903904537036386843521632078146006468464557576180251842119706199924380061744753510934781460804779373414646949749392808281319251022647948822572256680243100240830961411339839895455394486845662543535853613706738922253960585987453186107377707997986905499588376877547525478625434870199737655797659242286040350790970282146973390478064236216551718286124661544791555216937861197535521347888468694815441960096574940036018031245030381091150940724921012799310261357274904237434698011118289808008996973582851939070511095499409817886085656600349429462272578013152672463082553474689424645163968095302936872811791913083766258031589147610469192077330584971719643221666635454098756891005678286568944015669920366877869638999977896619577714820642635586024152589474122851964725886382994233032726442145429837178864340753856407792193611314587430946443343380442386155175730420974824256412614809603869424996058967826518553665565879896454170035042549649781837838929972028794039587987369302842247050719324011117508355145266735353086255173068927749749961828718218193592630536821521547095570836527766196784420147285982109909446232896150313887443267989333737956722194501416101818436757809719723814489387546611109355808512603166207022234995838688665394991713902543688037028497772397453028634417479471492261803848626831070406927307485628415700698744588396315147355530347680851957734067318260794146393619333859540836800756687124941513740248333948729857404101374791210225288239713732419596833576336853386665421145646589731411070438451315711396730239698111208016695082361618976827390966753714422471114647763633851031584983227481882159538116269901156832250483035716385767856887949713349738911312733771765990508095525339418982263894335630124677786335699466493391836579538939219244754462426728145270342506180872901613903767550559388744751085988861281339766366261192870887244947987103754264445074153087968726421163648318622127706495463381566941430765753319321003746909512663496031484552908444986686413777928142379373273673702165743654121511329652816765405605979253209510423745902025772112135711007365277350033026757240334061149972111472846307411461048631692076819757051651108114338346290609840523794892001859053827759571062294937045375449683824613302641115131761969878090851402760980846285743527483324579971638182019597760109133159766486108756625169917569222127627105284447024981373075236780625749388098639439039249298546490829819436359456280105191046206920873147164272357741149276711147808926480264687010424175206821306023537428441379925115592843195469439404307980553112193188556651655250745361043861437298010050073228492330505870646888297725928216857283413294577430286003919205791241774373941943707756290069771243706591340183567542752598595618521793187766558379695025739883266106282957696372556711700525495365289666719150368282745750917686668413864822646237132496498485526159498767876648501319812985869917116814612402553908315428577849785453462986680345072017360389794049938723885812726811555103351559617264478737046197580425401656985732326369635122519793684783451999434439516035245154173315464790230598866035507447884038341425987527781569690489766104251683719373930315972801664003610801908600355934821576960421756814079527931681385953994525049483852504743978491280209315368707591125266310843705281372156560263310491272506943560549063174615929594529203034798603860608233371314782138966930645924325647621584097610281402442550015054108742138492654470969065644457131761757308048925506191073763983026959523438995657793657484731019393728083909475729766482722417696298668708393132290128291361117675662437400333017312649931015351746411020676490222540862786089310736496643118765790643857655658811931004568832816194651538940080327953042847937429032816992745321627635529330073027766028539546685790447553019740521850739983490476350427423879841587220688858693046455509091814139427107287998975135668831309418386462660546350682509319171158407347327829805188578247846508997485336574805808819245562768808226495368000457521037134927910249485392401579304562696347035333954955172114945984521278416411744733077279828871258628182169958838915181177582549330312788547233596210214612843702253634948739888780178008875230466904302973256421753636906512989668561802401129655231044524323443995124172935874760873141186766015700265005511025450161388696145250716871674912545306203335505681084894201811300855118218562788235633973952785719893622306612232074503907949093550739841928267481264254665148103642456148369137295937248873875992421199278741883487802253493116841863175300967292770105868729241278158268278512487094942058093365452631902568963976604887069645525959978717244725404532403011474579384914126892063546704896261063547252803394159716170510446235487156443217705463067320002425182716015065893232697298049286827670938618463666257490087178536067510287112071828165869605635964321978468208958102590716002574111631276928637954813011904359117496612015394857328865418112813041567129702663735622284673048489183762153134509774571677866584002886819532438500713710506676702554360919330778036686669499837722270584806517056781863969994839176742690445435980676365025466968245866166345876427325572532212759082443572235751038463265748110283456030052872759822282344310110139114901909436588438542952429262373438160977099058781222321884216108269016325242895326801980106908025006650808125746188083376845274797182453770891761649885450716072844391712483443581712832484673127388346798450365472679625134774779317059561757243161670410854304514677653772831707018705765844773096228672534210291434655159933317929756486431616307285145153268560829946419169163440755922918001668772882877183219470525862501623166127694037167578763470559051543771052527865674908531061629724274455846432169048883207061694997207408167775329533033785178512316009560721054453627399696388849702249182804579635669189152760301940251619375739269049365813765208187470231280598938325095705067155167114590144755974875809759043243935532533479478757736204783544325807640754685392476137694006877286757848095667125643658623013946599159891508466344508020710670809520100571469259025657695830056405479441321429384650361345030885150273420168303513943070589058499112764554251933133858523964598953738794796016327462010756976572905133400727486712599440753308921404786019301749593753538543337364619246734392293260436914688941140928324807378200848936948796888681592109643690390452400377194835991878765712617942925412625594539411007572854513025957266281250707201813033967698181291922737883076032131248685430320218500811384346632695701097048648238060813851761340271286921510916670942267626707450648111787337169324967093542826213057971793391529272151652181245945425419671112890466130552340495857233312943856230451490237992872446252578669499649232166115940639224243673996227026284939130537523754557278847120279786313186481287244402003525225924119060287296274976589726467680739650631083219857937155187572463099538110728245607860737561193523081044482624624593137915572848081427976068016367022246700100543766207261161706109004801267073440613300656421958895989871181626303787959486320772570633034975511188270286950710835677963866413562448773013190796610405935291406995358548711564559159897068954754625945399435367876957638158055856013136843182966953921623710328158035488236908821411197627675697058845462502366757295490591424313828735715959289887939668111192303937064231364381735350255590901239426967054120365780061650836380346511876263185582578350082414802237302003882463083765968735640170907632265683169701976306742282631725189420574147184512336019922933284956511466118240047448883688059271552754321838736518793178974116987287256756112237111417786514806411704954677528088513920815963978157966982458794255335129245721009653517373072614692956010151336644784747737473255455865043528716054059443959864538795021598027670498351221575015481106704539247716285291604360050480917252621942848597657198235154750952878625811692736072572988471834638046233051946549592644724727248114986625863221278416564743021147374230834237898624195297531863821886733603568296976557112098888163843741910771157844852083674832237354828148884498541868856075465199521006812488546530605382186557584573802406108050092776248864864672658467006241493907033340685903390887387763883053309941915676446576912489306105531936464109194098353037007074320199619620004522246822393323543692189250095000461712330046104307294373601526197089189830578964442250921470711378072103389346807489544185605969052062208129242379465447672053853911745433923759158542650927815739163778161996203577345207578541252570872281946075396923237800323307584450555976044365510535059350661321855212136181092927463177444538180522042094670972656547634503745693561495701912744767461027630025184888380380087379061840478937516320029039397696727289766624322192023774388782612659477468223868006639567999899681709109587791811655009177782982130283305795779046694336493933862463377361187949664790449217553735358045451294804768733057589733159929678293625002699898310562297001647731635642831939247405359669341230899286020321370025096653526785052204218177223927892831763417942242829280660903536384968022275176182957018196821854269113218740793625156902952694888207191930005978878606842558419785176790429077815538686414329399116552231406104514453464997832104151907163427209658164548637558404794168531183939856129208928130858795885233899456002014937696184177206955215766738349442146416527256222322349978379254021557741095014846954847545629122194158864481489142812846257232124097606569045867261425802419876209147591041574490558760944928506033576599998624957337286636199721042767869319666194159248251716140977287038218020335768793423686440879519909156098329490907720052295837442182182444602423883694454480904092458213405184947187901298607866594346398782754464923028284089308635091072385915669507546211563323406430460848225673178013050265135201623540417275869476568989285302169960143977157764073120368154958316316515381473523558273730204756014512900707150207126459946316839977903274140068926091367902262545643602627757786141513967687541792502668594906122073628790854646914044490447860376795589888509889773088379945139376902707836054082829624772337127234976497476078762397581515801355683224593668637795829513322408844178332273641684717399884776267770704421557007038940099887883071734519582521465822007753212842034949705946420985111671858310355752937199149492837185351028604079228197017413413734810993907071715136988549698829855658843585859494742526285715673386020516442792292004358078904104523312544525533450651383297548139851687593989701438238915538728570753834016141233856113920690368648700850413901671240124116535447326609367465109550669667905818507307913844713294866237696384012452868494561917189309605582259684109032554497371445549891418969037621280757576307964848011000848112857781419654932857160967892465538488963767269068836816883342753872768092960347688913023564043963656558472950320097314350079939738667631469288309091996038664394898283021327850895655034672494365778894358024458008427597048882735562297194831246989486375544334297434059561390821840481019971634102877173880195606359125828095521480972847501820284387414225170763807097843871156126087100550762709690698837655611569129465823137965122324249005200028796713600771917340911054761641095250840696503416679238193961782554224159600566256333525287165039887631150620873911089274334134887130539931230439554040631342554366100974571661335033703107590358686472002890782676279809372318993801445648104804192997838922423485194286238788387502144127224556874889767769908061158696091595522153997995526000137864113298092867042849296895490342287818787197775459135951351737316110484401809972671195701871458472084700681589089684588815070706648905909702481924741241654542949843256193684185677148236605103498256271631574064703741095300837602180035220431335108334014816889506342358956002205050910670130177504747553363667840423137205980723133129609853639250857806700641748456504160330895270499613869210212999563985802255318821347957324320528155233553862246920532880503095308061798950065193147332848727504345992407338452665633859133433914310381472973365111711872638496889473214604384875286189679469304736530873786660431267954646645766814080716584201588106453594407520564021965158013367968211491173446014472411914726373476553460568511032609741711129620437456362181669963983550238849166811429409669155635021436305870636775340466900392114638020658034600907961410260924900195023811977294954695255518257969892875000966005760714093499819380493539586067566712165251013084812020399486031864623041178475493966365619397127547949826389573399641881271109130440215868529847443731461652183765221218175256763212053069166627651179674322113359442145534594217423653293842465346169148079450747420880028501870649381156124741058273338883113488876500119595502684567661145172176460177140167569367884345792365605705594083178545449457744979345624119217768471940900887285045976319902738488917560613921463888497214032994025623218158323494322125871451755127768016704253777325641904697443490333860224101708103283096018058353539850831786317569113914700735615822522406750319721019706851485648332234523506037099142382057929894375091369074713060655233865092705982923709284320636560608225839997840934113922145259618828358674603717779401018883813843585260303930536707928136393857205129228193862641207402258004313686680863240046556061090967948089659558857432130342183799202724113781777088448571846291242056238457082654390494773302738737597663108084120077505156610306327244591966536178463241467821288991470221234744875239114705680860594940853269667206352228485403035406571701185909681172115618051133043342219553024886151558572854227568461586425415386352462479710813740330840000658570457344377826555636807958297853360529707545150326025070075763751046020455734942467814232315699243899750399819896360141269769869645337355237920521578554546389403952383016588971061664338287588278982987411081851779899623372820617577998169651487526088601448607936565390836550011379857407491903207556082579143898335653082883864516227236473885543639727670707397620561444979681848137194112429136196261005565192810993179611201098236076912967014155533721253626994748526215930475285604482319195558993232137256567738811767727802213712430717995650114766271649544131373630544669353551342248717616918887499578542910455178646744324686283251684245893173002446197987779667422253522312817583958707571951487507320938872370168184818758385730788389274793006223233104519380437744633339962513500399249922286476024789547042892772953018479557527926701051855483017365725052094012301640321453276572995020449112439406152544455284246750114380619277712103959143845111030298541249317764978049230625901391703122460569649738974231943653662485717797792959389967728260966153587988875041440754730533847925394134507421207034189209402954812997903605224336484339606019170108693492645615925638683348553343979069941881401528408373233690918999885474762237799218925812540440970455809980204707858702181365194817715474495757314106152983297451518674751894768304478493229126476304167978870989684300089842283840089590488917291484413976966216320186154701391925163459801169508655438334146853281417687688508208206677828696993336530288947440618171705408359116122502302096712905535382653087658375349860609897360736070845850557385645445903783750452136505280992843595984394251401024253996177257221835761565725398012553192483754209408881459920272543780118587888265454382549518756307591088608945867129610864696319083517677449222345550140144261190642022529806916407682735524365693759829427011949875664909804338871012735456333461564197555145729279624930524996160308502108049647726083631953635707082049584243392946917044977804473235163646224122927040989151442271787496194834131489447595351580235977315277404071088094308656132404594045282180971327089091820542658070580724306309884801658417956445699256356042153015146098499335379629714156196123593049252642141721943377931875498709674756920482323971123862609107123884416657975299767502504770138675558245214290660327162805353905688561864455816682915912310939346871497669547494775377776321205543134617079083610032026864199459035288291112008008631830676802136588146648924990154213631807239825940865365400888182322749416835063753959995887057761183141187155523005860053639413046694844337484405892154889414427946305468949240314699862362959743431217424016125372761650479418968674682900501182280183523568810055250356179166946344895316153415918605662511787162850909580361935465776720672646181674517650470294709765531143160117551562416640829827760039554902668125133118125629834660486326586571189615898493497851456580658472286975808762948280023834984210771609396390918982632390993495599488828670172696802691433745250148557026609235770981727653556858787382197502041290274584617160099544125619243427703879191013972647337754280329094909843369428848586562960252422797766977499179039723759918260272795102636007967446426309550212749475488093546059249983404839963290767790769637310934915576593869503436827569389920874800065558317125610752570639218283892219853921063372173797558141147855703312341565892102539673633883814556502178391298722713885090087112379073077088665911034955250624145625724811715311468847260319719836304815161007466459993381844207715344255387060449740540362561972547490371636302264565169168201224673610988773087656206825453439373832649175059305625515409545925430404419336533133566961898080574893541191686143903427330168502030849632651386692734682856522754812352895607861114825420588837076199056671606953317368808924515260418379971885075465057873926518215648227055494367988766648869241369378415937886893494753586675777735150485771292349111540929941088122141041804263070954646874809858907903227795556320719283936869247812824537565337478200262149020189124775139548165774130122082175525177723767676452245166348843222156961113980999833735985251826670784077207610175599655986098351920036886628543054131884367055159567333135095287044193198638466118507336120745267654312737230497375813929219124004645383041933320025544123896923534525988871588192085928547938352355346231850670325478496451191712340507677673080674381402780699986582935047213095816176122335335287194201837773092598864520829767130986814872836648310333533193237332630131323068988961343062662014197789060770569955861797689279286439394048111654672947230571268913822359522134838438474303554083792335953116812244655095041999930048002621555515102317971515799344013140857132786443335719655832150097723109442798781882149479416883244108690837107389405314131493269536675226571637847144815929054520356890081182888688312336180742510580475995369155785727753218348572830973120106503349361279258190681256277453680853712561604539280438840452493306406661475966664983029616009618363687706400562271753369001424314901874245075009270180358839604467432940650017470370694408243149777508186740895970226374626040638609483904624162922743708212991764382068248338239210925374356321235575225496204858131211897067266616288040477387611457993727400312516763493271099775394188668180236577309687626280936750112675495092568588562106736675152415120407872510670940788935352514259829967947485710513547660927446762388016884354557140054786550813199615663578173396767218789666843676991204471773541817657783198136510980113905852391314620927767039299525987397480820899428145010647296122023598869688039528416002937134068628003771058728105529867215253701654564736749334785236689874845165274389971755500823941021878133745768614384293097296636762553674792388102507845769562146741023836641173522014300862341838036986067721531238963939209719517378232417609248391679493473788640231320155986843445294761223235800152241970940648835592853098788317374850292782575944562367948492051498767205910142557878775011777611012153159781038072051419867133328590787475181149841346497588451956524420204330015539044242348186792278659117357840834099757091663771191764112690056618055169683081889369553885735701629120507084395349353795786815714457122957222227801365910299564738590666418797166169543261323367173845472159802575457905887927718169998823340864126269371079663580378493710974982439196475334252051385054937658988021453695495566475802762141940977820059964721969587425781644077127072837965881965027551817225998135274313229110861044893650785139919830014377732580417826922583291797030919871789853137119871004144902165048529484574804085335852775578768681175505711388555020959199834848527272714032801968793080464627674909796389721980171225288365043423671508160401586125211836246954013424009171443524011973788438030796893612882163102199783102748681996588319854551253614285716307445212097278696707114770677384991362730099368874012151751144011248322615279318309405691426262177948515421861093156080173468258596826109177709915301278349510340762919109151592316385970176301609915805123851965709315743381288207607206846207892757967044520721841984998153419165281018016861925980813387963858966241312725610353921924856569984145515403677330470481791034490967898900157852687343380870082038495282546502312664346865093075370223811444692071383136468435825684702598575604235457804574544204559982312377300377227957798696326365574190153897098890791410498046173620483091982487248416946790245387602769568509538889216382867251503744436722843091574998083966585422568104576930702740385148637897223738267812748778124814440864677768761645888581454063098763848376096613506836464782921633874346541865733496117913237746668230319366781787759440872558061944355643071595256593077210459188734985880719648458656560045844328828941931055159779201952178405684346725109243779998618917277890997377737911233481881506337458359069423175146663196797992009535297184658932535270991189007805630566339854858353185939022800928946294366648754213837758652659180483761516776378365164825569634489201091224459921444558282743939322564541184335041604513864928318316686030468055215881766015567710990704277728321137645914973526354114621134210919124507743604702490673821710579225872235553602588265511630878053057343067141977615537273631777848456552764229501742821060229701572598156290531938582213937060001499379948876001993882407385705523040299265108129778062223470718494163707687555813923286878050336805762840825015297334813677084129686066474653262034577015111553173748195369356811994724707035618495027696588088056513640122490160302889065526818611520428470550228622757428532846015929966796487636926602947186789070671756684989890063904470833066017228089043111701332120385934640498631369858812880518491794111774850626849512658043077916844001730480535494947894164448329406661463332076574079572846931023031977457586948715505368862502799674402774691564553761098647557224257344213061633428810822194807705059024218588752307591614041627491888515909600346309333241216961069292895560035761518636168725532975773060039861139847278330035442600853003022073074925014851879645803933792489082076707572742794684368768582585116656688522371677138135046913221328646409493389986537918221042173290889270671504392488797064519599635381247831572147718884661912011349508694152760083737198471426886801083051760079484166992685001600788865571388082520258419093815706626707283260302033892922708607775916393987124928026090902266916250111055427807547742718737308678639769927986293297196374708432528184063465315876540289385433722869003754516520152641809488379195342970368240695161763605802943540321146562369437005241502906107253811134651863616459218536504332422850820815083537530502777154156349683711469666979017732957845994601459498643815179282595581876250627843489109849003170407770823598695309403179157231592197548023452483529853349474967053657284027789381917590010132064184940579893445594552528947901319937100431557465720585973183101692931069111388828395559759193954227581599254165552955389859210439116152965384460098010749532407164351713323533048089192026368752315228453645363433011699235195087323005930686895892450900940381055752069711567469554057572253699394256027399800471592855082434775304342411609880173658743869112709384810351248561876819373553288945249448235102269324630097292877722363958572404641866695054762590927731120013987736861664759208843605449545604861183024628749960954672530825007893274555678220061810918752344818684838762699805625908120756878993054595307821125901647688491922830288263082617648940370726277042222698250789869345059356444181326122971254191338545845340345689886368847597099218955185414398878853187860173945546283317022214737447642109324798580397570959217883244972550880932218023285571069877569525100336587610021763453564356685303164314711780869523811324625366747928718401343948118827550358754444650376156123416877115866219435526735208620740716873922588557263443615987230866053563421765948253940521790472236828458977547236226172621368063084313815941581753727000740611154525882841089414142386353755093705172810643650293159376804477834779959535561223771401818311947575048003298180890603102315549181060180936094812310155158609266023596004406967231405796009468002449332444116666630360594894063367716106789597238665221752745688568039305610858043506199446560678125909446096579087371229799102718415613476517925250225792703291716397507566690141908569617986855597049924797143495734729063579286885387423448487496598623043752200790387859036963761975954741415675822287739587419366209111094521580097930740270229817377459933674402660691501109829901782822198826612820135782873447733727116238648929217193859009331538611710147551691971413953170102122354398523248892188539761343723351617714274381477401224105672953786826104988130701841398600922435533072244676854737336546079393304840040879063302385565006025921620415630210959842121687778681795562400092353931046806957462652639090840730140191333919941518269190514684666822232872205779451898577821614072343385253628522554789262228402004920384517935200241915813961259986653682692485686532389199346584105615851520620956485597173099452457143567476581222012778826411628742895124693359718126637692959944249791847978001182715856046804896940092152190562846365954852916439544920501300226236510035697158012198366276937422555901820008275189572135210144231561559624836797472694166045455155194929718614675956624644106499045873458342244407581353032300018225628315819639410296259323915877799499884605723680299337210617616517973466413530542683953053205135338155262804105677826279309500316687848918770426945994902633545732695023682050728059330654114097687308865845398474201989964108827725049922102537342120932511686051076859471212223161726444057526756660119932820286192149246477633118995628209440225041820642584583924601166543231672868476399389786491055157236504192576982233194857993897270560536627140358985875003919273752697641772836450496775098602524141242223045227094428162557538161315541502712766036599115181836284335622543662420847683726390894794143912064615523568101082783313409368251702186421515301726899813870295108461859607108691936898936924101727085910732401451826542854507045324357483910018332343463906047930429145765181705429383263863129459671417340803693797510295990553503229259607436400579504894174042875240993676075180302324527488875136996356760512956408884375374080653392906106107156443574406815412046180720559110964856346671067823890385928883587100003485079234644259419881461011968058535389245184238224779664240337627005659317608547153273192505446065738477900557842058380819404648612087937453078404370408621372550335733607392277558730719945180837973351271234017470437211368970986211485339965676304080692102689336608774524473841636353420048624446281767184401323751133382668710069693184344660429616132278674080223166993670851257515593278492235009763084124624723317561999951169896127164935268561625701065223064786831909137168385299268090022612957240022036646823023650001699142327410357448144812997322386085561084223225400363305161665529333233298059814862008923982030257826523942886850959752497485133900280300460723009586875762454733911552438559675468864702329222678741193708765778092555366065789672046401422442084154095390394592138254324034858647144353235993391037843261528637377230888062420042620186472633276790486921723486184460383437288263021519007372826139616449763810481987354157919051403471390935073671501887601620910992104661869933954164470853020001547560762676073309461836278029849432136334284069950619942783228479547198172025668585926411472496203225929580489412144863023392458068372703671392642163379246070150206356809052361862378081543612561771036643348103770140840544324606540990050840636533531472660588530613977757665367920298256950927314758488267359325015796696912371538998402760045694316183628578469546365085705921783193054651561958084002630460587962229812426476143099854312396363500617062045185802221969629734192221624027975337487295882613227065555715520702666125888068101137691804903754030211436630142043054450312869972466352001899672534252389297216100190484816020960240766850239609752505782494549761654866664657114904731261791947536391768818443493964534757651497559483152422096558019226584403421983754746735036676784920719845261522321526085936185312152555782325057635734707339442335221727478221305216167124993818061877939505078995537877234798669736165158513446748138355393078241275672310033403395109069450438071967504049305060600367445424962353871798971768642776891667636774436269855720083679827696235775913514774852522637196563386928435886838999767379840232605263893330071153289172924689669117929817629714598477470034200496717881122557919972904649736494901411228763088705142658733813172307928607336371649528588017807439250601023879032706363730179253101722420735433503930757396584119081174033490597726769309864076206436892606931040243404389578234268641574371619327269232599955769617330843495608764167797308409521102302831923997811270797470117057136576509692662215526768297521665204808804579844123295074982726017885908536506753525252926829614042047966334456592503485816631560141164688805530706139480534124417317678046661333535812252957579632443210847109608700345071232601458338970905753043376871197291379367944369327457694391488712320596325947059669685659492610766757872991127950898381136394995144230078592764966685588223004117898062991683191440564829067366634848080597881290289575929440334973078196734845178770759822877601805861680382666859903134043829942879266863187582234763491833931726046888289253366253273298506075443613400306871937833564648047429563801492458921748418869420744300081519339715758341030147242370752722879199339412684623184369726383863082592098345345784116606942181733015908139563477903712970521779090719599355554585087821001817240387316203455967697829628656679302468956062419054856517809403186818359769509053003650271255856704715954950549802071774175055827644209131834228064600956170814652024858136934502448369784221801099568974358596951837368015929542891679218901100998998243613444998866597745033471531275623908362858894610046666442297483819862647329425564730243022335260935949921014162012871585847488650899435811166005552422626219334580948576029439868293966127330218858696199479714351927993831766831421921863256373476590380873463742442125184595843940239678382858027263852803152565537492127266705635290366558406633017859645718858565928347466751299634740750988038192812655781100540811588210864437600843304003783097873144755902674666662683444715535731314232538839857650329466910049859928910453889862443651961104395701782971097526635850579296980403035893318106245691650113527650145291516390862729733529326381171875149324881408994689902003082164773399390212688852311546380355062682264383378835820821910941478413515359102732271486306624600063129163829444789226994290083958629563613611231256761995947237302855190757387868620627090883854899530753735722759605755712744979737822345801399076967379303176174151981586552740058814446739260648612478512590158139763244865670530053243643646413263009104156410106719298907880454937865849600862476839452759613095323002095194233425540452143742316048005991170949160380559228266365638889800790390790193940755823370872735760437388562875977473894997653943972147515748973789470940800059316626173684017557315347862971956421710574281225725899740205116091020428982502584345665717738466864184761882195902452216848500416023551414336846179490176674467730052370340155277791821554124800736976684192937138821302737756629912609381492501904200271074216239773282969098311437762122457021880133033596308294890206121565861924542234918580222653106458337542945408811764454575112468141018131283104893421495581427102182225205619699521699719237497291857766652902857308921285205602578814756066012050007357387312936888190241467362280893216896201208214257704838420987404623762946339659868767255225112153991513130720933042560857154736499754391882428076899184226215163211901464884684491207109632864792095431962350928105635696959597887994417571250194180363994596314578902687655880389104058655986722016374686074216771103592767321367562607416583974924507133936422008546715552079174027445516403909507543822469372230361658483113902172058466893670425990815023176016104300057926288524446046545691268386910256779168305603354774892348392232613831189202166616078699615254403812138555079258460453087383604493374622672518645441731508719149225965036328703029738980369087724365481289792488732063985526567980248459568889105676910189484217052506904717124907385196525209373682310042047929071034472745444940599697065462225638190402272024517247991491278122994745354472738105337325992298769557666579345236623419371777650784229545828279713529024049723565858387797309468000388168813168644593924021892058319249794767754140378857727204864524395974119903124155272092818536115926078784914353786717731707536781342455563437543997617816578027869088657480339329156698256867534739801495839382821294730905872000300299919789312534183006284025346284207582261033882250705018798194037180379460211832899042498137865351720126848199304581186096210631843525526209230228790552128222058748917236598410077250947722333818763651816199455946704304581327326026421490341177254846512463217063083930598325657934226285835379053190814261751285298138742238961935913755483510265565609866253496709051755791807536085623227189243373744580529051728021101389924444189230330035575048377379325817920292964939188331767155761335109555086686504410713846839078866734804170510678866325988137232527763482080319745707401407203105839562724590073513702409165610288025843992102152077963693577664625063898393331018720067998980447880502920471777191731453565851389015050498818754075263564516735883723242715488393476929966450370961474067746803883593195938658508117563574060525205400550022636290388028544100635822861959425731333122907997782044656962993065512750153134309213124385960704360218595700928118232423639660394021328062611340294490847726988936409473196721194888036396166779524923231342680971163902132524941628208534318294241781001775994271308116992693575733048171230270314350719453504924509578134775428907376966175240914138896358087118805536188000201020506502992708739443417957879182064281210422671849181498251577630595846577293869219381031400558272767639440824561393853418873759189395450434950332580337877978200848236351254630269466029909130828893500263616187349154314155634703622216625953832177739066405008908892205706750538064019879150106782746720826493187555644238408318891445625056844931102841252139190766209614303277176929535663681191064360214457899879194765780060595512314591036450786615444706581161729518781597753245278473396215936063853486390908889209325642312385283157249085907165128173183192292644574053315761348635213933987049048664796647735275595823582366368354940690323952757277627601825335249021721709202658701378401190544796505378554445980346769704158043662351744076504796566496878718858089869628790587034133007791127303098677895609762364191466161209624852448513143088203735530142391508255254339680030222414959497240093082133537413781372117041001859072260397949891012264102887591806188584531538117482336843105787938568515582310174135606721977663487356161925469227150330384927299163169107423469179348777647205945802786120831795215093629047366970736296823836692361272489012183960716684585718092516064338018970161199909462844499181720150661787185865303957950384323284508049958832175317608333408846360761386334973486632511528706971588077185502866593548730438899006543628229790014714675873210974196406826346059384198185156328412232529760536272403375238794565140884867558842315539999355192343255307025201433776917121206519109174321183848451198548075373489740231367962174102081507987298833179606408315423854368888450684624389268574084374406269073655384703955035631647233755822736947909659535381120366538423300980723919668364539521459949735905893489192829842054179834612055001207891044483303407208512598648005061586781056737573716077095105655810862543324880498366322517803778042039428956449948352173364530259126521869560312388322194921998177962177939840332352360428706255951579749563902557641359430794121066969598242477543645938569547172157054511535292531383806811633460428459277887208728097327239879319412133715084500136643358235508702678574396404001288859032748525694309728248675717293684474519479626508282972058295320527457081439545309016447387879322911005580510965535935946975452443680723094376022232263429989256999335118904265415663914585750447135586223366858710677727116158339881404721842160622988364526511924113664003380607236133916903677172466507559718699355418531027852334995768549485237183341604473275812996832209900478496897298448320115198791280894671416429078157873341682060832750622439041462544899752134457830703191903720831146495403397315143676013599948357916840777748663184272168239194385217945266787889871893391736025173096884634676313660844240854558469716146322136232048329482063342391959421033376791158856117339503329734272275177828067320290520020302192719651677459901170074637741608721761251659739479429725541504809513912602018076070352355047367475427593710478381412987922581930771212297272956658347865831987538404140074859970754609793768133668703151419353190167387726568550684114153716183611911256740095501512505495823189527751828010243317603457337977684935500555938893443122192335047914768869870494911010847623260454126467300438822657106824693544885590948271840788162013976785276438443655306654250417920965165916922645459717474830522695128612253153846087157658741919799789978893510369802617222023157034280681152103669687665917939846102559833800940476635245123600407736515980413740546128684172455859093818550976343348486069341879810134116581272775055237620154618422208207788978063812796848876053895072454218549742410801380840009980630907933275456525342430963711802812397594767850451854618511922009897691583280339814011914993515757956588072738078943075647614677720463967541308212721064230472746105802261178067342627209217233183413886990414747389925194346652637018292202243538880532757964794170923648401489956603632897792972855972249824334781403419977161722413406021165646234283032844771613045692503539497626677351827436358197576904432546058113877121564899540381695417337734511828781065455949712897957555282771116726528590852638153107127267871647941978367977784999531431217396614914123242734746946929404848242933133877655442793660747737304223264993133257783863912313974827053338609541688635261339037086380345678678047627920374194180466090784620877890741819119217501138506449315089766513789589178935016564897839252853753831028150997068702908761907765840651219483907529315255005494119023790906001583169819713310913259486453742080217670456753299343418476842375841714655736143675828991861299718460047733912448834538792045489957235965516203956926455247171844123546141337490475597177765688367307828426836008172143198200496079634896578638863894341235358300228555994823064565732864357857034310089248573117718676560056920669232413482302784681039352565504443156851844906802532323566778075427943137691503699624477972343470863627221488559902100623199846958055159226536076477598442520429021652339848755859718720613962114070173113014770320234308830842827635874366483844243321381445214562157032081555892144710891093797817907294262451238221903601924843078194110079243256746285369883593497099100568029139287035026939520544500670118941678954059551433958622477163412673968562163485137942424663317718179290885166684835685266546455760562760974791291380083889171012711397486832258476552755611928707861930913333216029239981646778753399507005997940798623032232436812056100453572378201759521831301408739683800047038246035870115525996935514464746591133690815301131256962095393053934818875096350719483286456033333673113412968065975369663896362183135482026058314635040960806645599124616837663073905722343225112279650368939599268543082024341924562007381850487941059135195839290040112746197727124807711694220205505903199946109753215126099722178195071778373150297334442199866394958389420655574224773807228533486794233227269382373994453454308679166769837866261910482697563630480401522688299127236602263379258255544228523556467487090371658215740754276158454076587860125905625340234312329982383012783921765052074507651901158483821724850624988959671591820122754863797984707050433168541045898136160466657483518164803731165380529185403148480511411545767033894330781434800671054251393291341369095329502960265944446458574947684534766556549088737762175057063912519517320604057559622741283261470013359451028224430237624317992911318778253520779981539429249347446036580399223373691739287014255083412894083326145352703718911215508011250153156643637075440267659921648854519483884004746784079183482325364869858247671446923067365713890127447530050235414535558866210349832541104885650908427862593747260156130636669565047959143069375884139215357449969709745411342339350489062933625738758288551727435217607987812029987806326980987762232527630194026140076094747195928217243168797845393946412141881814380023294745579618603299292097194728162892438068942305040995593950152869286089887440747216493643164863079707000628467533873593520734652300805447956143874571680901204011881287032429672850139689155897370398730162193055470006974582130718306365311216328005677413991151849726484362660864988854218457176843076698410358718990454670274157070202072905230442229141369104115888717829505554746638479093550006080405758738734966634798384667337722449696516565666604616328392871838908848215880584895444056617929683479074915517890784382329793915412703311343900008471247476490956992137962013880673081979360993111099512056590640557832504117371863499182137037081832246430451827993865860272219477673011469552627728456032494491653226098736000118674696851213939322491322717067843381551727895786301471962740657837747879888904674604857413532516033402327129892323421345280446797417701294998801399308822116795411694382807963093153133563536668839655288890084931573126630862829949259131883764421919415674478589956931115606758673666832133612928523352864774259557554411160196704042243483343216213080769862685286469046517012975622625511708006144488009960652744048162836201159558074253768285285336168886018790413985237585859281009033932772032024513023360484568331115519581116874367747711587354812515547610500374446993928081973455813492394011293518811224603530073368870353627166262654987468272408063467237175464968170870745412496370672673019272081510065894532012526797667193348978728094761536041862361075777138450431859074030050396369090052846488106895009557137393446850511354657308090515119501502459870867266583226286621998486956628175627114904816625735982169899695669081621027554086706832874665115446361225363174459520194477845416841722109453543985980985274357029382982124594115122739185318976886916886996680700125677353413784750010095313935452149097421803586045418868826576644214438347651671179719305616935800490013736829546628807271941747025011164102740428770955366082217588888298127204006063378726138128930506723067419640951964291937054261848312611109622337736694197102949861588189891707418469522399359239999202545448430442436913233821499858535254271288076204942417810556913392700234294333712091809737073994091438132124514327968474693732353796792277014215585648990148931683221006560164683616421549091412118778829386788064210266006929193634487617951429472446629411091763112857673483632311934604542015006160735934608340820476889999913734733353046208216470599661270090443221461597729192797830534838399565213707656902859490805790847260860704399526090178148167494798679363619125877115115065615992594588784814401732945195738879509647018914430677376092605407891852781079178989336111072680281111361680360289323786349727424242185617547620542378396729243795355522774993654050424956247834787392112312709723023607135379452289346738650269832889104587018910282190238660392269702014700439802699495760349878022808906878902911794807679754518822358895438815466832796549083095240461593734567056223795142510658688574461325089923857131476387475031305179523872863539601994366723915232973631364966325100568914847204098056162527657728161926110588730937028866311309714396566467142988821696933925135345103407046345121928054545584690273336829200847392039923454767106627650658782165855298887842824184860890217645747279181926082041599456588235033187532756610886731481384822418445100633625757883603834603712119072570461189199118343668524699258095651305460748779072871573362033042352297026329897709016851365842729342234872754295675162363682369016954206317925515715327470083359477929458437364022385555202680186342936406401208399313868180624597849770552144706796864317505984669411738078974356372701139728173802873833909455644630430970666344435005812588346284871288453036929210315414122069229445706041062361978034152999267219086041127579006280318424436208737417610303583495674096293318800627490709515380887235287764258039718641908533624947855379055177712049460759310091109256214558095822910400547573002036154861017685357949935696248066040872633677222108417849910721490510304735059041485880506637359809812667744075251622601631905661550733133226814356910328341525275139360327997311044915012668622476287158544322887217755182375002588009567213028367804758870048641757599467265731936064451554075635698249160904667263773677119052944880233671060073629320524156036108297161208680187172697427870233779369701905470992462810280928285998258023345909487247689221314180519621078365258611059291823073340266954884475827835871418213614530751707576656240678568771658641696369567579857896318324029387062033479726657616529535603583731909127767771854809700514660723853879767732687852290753026387694981233698850860442923542484645790133082423094896802819052288138653595524324242646602464425727702764204569239145452508243202852125858137810844285920128330150707577479562902320094146192900176766034740029274715466524618456591763669876157890602388996824447461551897033569068442880830003805507689126913490187756397049362766851530419164944271593696605644296901385853254099735165003228229972488790561626670152287579534038499005432269213912591242709287714356225471605374445324581764826111242646604931784732977168342451694852641878182450143406623924343213753308761499529241250616576513971926702568596928387057661356836106995186935601864589990773224067502750588478431950638037963215548436944730722691874856973748768504975018301233117533809579077931320882451305314894081480598285599130040500203014051005291197266404573529695040710503084575096426135206943862269784469790719364203427825989230646640087141641296832679868237457420537820851840049470003730136403210301561181203045141649027900604890291844717311811400404025232658963624696966138344256304271365032518238820426069028249631715409018076990620887482485487114583512002343457457516841096550924338048750183322037426789937240835398034323850020937033971168497761280103166796547681922223134877966500049070868491568050984699063127186168454768617388748992598562127543401679578379469662760001989050078879455797479849196363528653838826176685628988170684383130844334763534005630866164114424379232807246566022966666242535148291307255319800107327475299277080289291578533076787089634098189639790222761102042103121043569376307694309909859767804199391112893089829217786961552806304777154256054741655217535238162261153868434659977148195954069181077124544239255961392105357105398765802911265661858419333140090775872443990090327376773024381391911508853048840616147444079462883301033604221940481068394952501609264017428830940645087193073032086275510079360265603803607925052056839370374558831879696806375750959165038887148213430849471743311393965058287938828189230096478012935866518718865196826260310250987258168990679712301391593888396705986913806301916834665519209090308428794403899095806046122796935277885911721265731598425035632507236902651852917196353198802998615980116551606746155163563519663865463405212536072853810955301073602002621736121560736113594988921779229903264530196752065715589165544661768654356480609010561882522015330794096320920642926674093137123472402831189071964986423638787170631116848361108891896689872991166240891935617657064163907020186722828239463741248806049856114720960203293066207630980690037963343236872272541109490837668623861329728573795613491829522462891159872130981007875619834396308313739580490815792831431529383930241994130412580453922729612704007004842546775866197170001039711580254742277366396760114956022256340583354836310717616818990231434931628202730616460081337506167729050477686720764780174905504218661554535508535858055066338319729460548824583938819769362922222457270934799406371742540152868612786150765339647109446887875891154372755819565928161005993916579251621308009538649597892598012847501494732175444884580260842728732577289720424412433281757603266022006965641842797877453808969137435293598480145652550286747358942710781312831703912469377923689900631373800814361218548428354874405120360919692446150738651220557443570714488790126639137496538193637333162992066498783668495067286590014784850957699617368306168003192932361594898779529808056472103717952127497700679470838027559821104939593240198250666611707769861483346834787659529721775533292450626139501010644395719096770716008942693225174884755501104844471340267316930189926259401875447697534602128090347495471758270766858938942083332195437230664546520523293759293430302771449278391879019178155035618797702527591778987729908444538195102441186692601781590492639771377006820904256863080334552405468330166499307334356923867811524944667110350144693069059356114663571439265706234068250714105276228172465476579043950887979703007453712604229027439875795322976741415568941383372927482171301228394795749490557062088044309223452021839962761172429396708616839558236272021344614707738304185787132993765631802196737897609602887380281275364293797001487043709600767913749172390072850586620502939020300811566598693798041429939767127690240060487795166396224686252050306361116132663110238056715869171757971944629016198183551683782918321855278527823134806046151700626072096977501510916032945245240431024713975972588892126025157059833844608124017180126974987549127867432057488351830952482207926216795106075745451641537554301161291266249403893100123878210704380631471455445064230636526679579398505282195828434096558947556300162781692107201443392105308291890654905195144744025007655384773275644653310253458958070197151803735705059858057767665556576080013749141235721674074393857641119572850300022025874556833131058820837295288772082109398168818560668462729181314763667591541289518069019790844741062267844303123539217179710222115926323024064071931628536516807802951479910435971419168913031299291847720050129884772130559077193222383863562044988477919300505318306080460365072665941397714500498817723399661061142731543622125225500027353562397278601160847040696922597469169875257917622325952736486127901127997005929349359241460145447752065682994621323832948384932363868344601158644322936694215026669266475069968652520634727844933918535728253289939818102040816678051559064983959502801323624314213155582865596243731684600529237272707744248996748756966692628438487850523077085553556674416094284676526836417472172035822168541167656841062200718302958451870520412539472284088462473434830016023212910196578442335745806994226285462376525620005399684253987189014879236641983131369903332646514705334033567464111862003686374462511118530129865439952428981510459795929662961419410997174418071077920395352327994214224577538351789298276404280430909169454492127049311327994807510783466435421820823517711364356708795205965143817777846695359298726385435596432474381374067131192382225626650124956100969843090700679941722804365468903897384532580548106818669395734497096049598568789958086280090154794642824410982315319517685169893036754827051306160851155005022411215620982112649877960320747860794168048395457357623273997670814057983463450781884014982059588644777390737025295394663745188829393393416144264393833579412835279234932445345768304484360649804877664373851414018415943325026094691306454460875878594528652345616782684088478018884868779555901463387186648409159088108100934542344825797614115226044525212428979960762574955816382188033714380293188478393774029941715032148088086145403786784635021147634374944049642954712634239735836779259194230760206108496763510817054003887211492264562502346559202239906507428104486662493194702414428774545632757031853327185014067489676524777795943744697021101226318712893227465878686210152908050749826478671557616067490437690764668263874337138656490205607466156733457006119172624141784784595867008355217745673014776493126851975501378531747721888939178525229383464897659158258631644851354169877563653244656541448344898561556658024964635144396146034755431015096221568868335598833827116734221265805486368483901296715636622663453187477836237872594279955563594901897736769788454433980180222183269770509398244516944611244541387392318420952522216744628446861593809348404956226037793719496250486916127300729953972167799776619751733191263712301905737753971283856007672929408315739931053589063170925828201217712691569898050472017648660544053654977517595220525655619227098972694896628223901572619552892983349260727168051817088141994966320774545942457799946553110849440806421504973401418588943554689703575258582788282872470228889085082302958462736894349837560420507299004357924637309466588978253081054132976448453867377844965553291463458637678905766747084696269886275507623105217467050812744265177306557336390744578149845573985238075831852200904408844144176611153006177129514731202835777236676004210997486339304413517116242226281060632059522382467394034286523699530870055106824470460130832361779840513168810946655628689737933988473263823373347458179703969325893281621777557080568584761733760804673849266296327212514215004251370327651140504332249568507571491384700310903292298332970417113919662422482126697482430407992353896528077647959940494419428383066493565295018904056441140494007905858542270835602986399245203711820765788046599380900749948573138173660039861898390111743842507418183389656988340140355607796051619066245095181076457786256288606131681397319762145317033404124102062205942063514378160740072452884028942406088939537689512857553743993919365290888602073650540113390639128709324000400863751918941177405534876326595455930273548521828467921354581558836999166490164188530462152222226133634711192631865498655890812041418088137371850761757938485439032059149548612112440886082218880185266999862438508396032404557357013007276991569207896368098127368203340940726239263308239101136826036991536486859845914204818481154029498612113567107540000304748831593514546655510691122184661266913336899500696698193349848593469139224073875667489347797824895011275981158748441905319518378682684914450281402561922540185240384686295524778040040887141454882820474582322526529822055601292366147283467794921726772669179849218794672704285099693699828657944038388709764064877210185492424665363825588997140744991103792516387168458411678330288537751419562733121391926168838457767761805757848763425399185103644789098236162507842566852599948876240936294838835546674843238695347192585652807939998439962549022301460915634351762830291192448987093136436856811864749112309563139729529704835600102477143259630023925991596801246512670261881436447193215589608790926884262964371031139203468288393172532373584940756019970675246156988374582249641128974547456634691662001837615103587782422417243615071806099909453513175124374752928137202032364110305241713330082575530006988614339262296031164449830016368846217066148773444538228651106915519443575189947637341333176025133059237311803884867925896750742814522909011915409830445401045970758344641600110460123206040208988179520866461460500790393335754607407304061865794458007854975853452305369515302336946102731120816471733309291560164293628038325983153680342132951221247452470039352670487101708539640537222817168468620863938751145517602727902138008343130243435415640481442238524388989496109335882270135752444920534776666472075896892484838283048446582589750129847827637286394084960575857891373903201213189301841054857190527391329294922535277473419062373047683093864018791589261346573713849360595328764767634650226105748775502917811113629558984813647878039160604801412188909551399802089870380600285194499699179031284367512085348583238104841077984943118101771139582904174512656166250127622611945145546848893896782800437284851778252641559495279246445107593121560122593075203427321359288661618160462340475711947629146745723730135818945617636288414353916161304995024377279927202494538321703261150971903980379683270329123389192270481279460961379999065643184562643774253075117580420025725440754190761236570935700155828675285150773800837751033587779017083594522998231912952576026232089457939499292615053976170575175824626414769843459180669737844747375759669148239320958104204085361960724555380153041893292455472193042046271706275838177750503830893143167226116893346362550621958298592540296146589874931631915063976625431667039596573511211159662595703684859345640934433927304204895444553970014993952348008015665123043334300611909710450725987002972230531941216515933964442880241419575820537597083307472699491872262735691775792997663804598329451228027981444990247169440572872062644976189850774715254214291347659875603213102550540101037747124018555536377490047482457776669954700757852482803760731029633035175804820256367783742076324018137119291127766251481318235288459907018526728972116792475880680063680877263587346511047436843529401517056175531050758108128566722222409443620831290879919117692839782532375638704187299559887945522051320045023875754448031219729402849760940804785224636057648302597242062783522694516207634606851838705071052975346055364880998184926473725657187577586779869325050768448549088040228751016828000165757324315915901895166439502300114574702407521214119277654142354704939530482154271215970129435150076561525844843824592836191753430910219556419370615250372309224288798012751664061015238256773332737187056286632612640830032386069488078918815297042408905186505140500211309769677951941356845716331645336573854535334976377773386987612151823222465344114110013522238516046526841786808551922177156246138738276957220024504777390277809578101401365493662137271581465622094078917716277944219444701571554498442453624295193196089706553551569120069821887229986401704905776645859249680029201828745584551187479937567684427835494810731003813056558561034531431806846793176726040412216434891341362336148533550016413471158250256624334651477826130914360892860588562496792150228457411905047048585811024290701640838868543900754267573398692008805067996950754688754570607074522070877276053916384624365862931646581368032044400671864941323709172352943572265732524269630357660380749123393588300454857636599262947194385946462387346483309866755540544907816537811366472038658965684159761467878244506029082446658043524477848703041861157601190760096253406929893126101914980840232721645547888184150097251337677588979317786200320889641986183661693967916891304955559687059723785567138089346857734168872582261526942381307459912769348454926851078831517181200714321241867748492021508989957769944448981684834271128429668913146652059076917291035013303682886077795312278422073136617378805606657071758655793851849186925828568187944176608452513852312343812288093261203630050022444677486480688364867203357189243409423289419008841352060305479928093975264589974907212879478429253726294563907228153937821630787809871214878310015962850812814025979393659212457919405387757081313647972293082387786548007483357465327695226012068540454599547741838563577300970510564079145030723007990446547813401495732077868896287539655459192452233015646108263115534378659052485834014825488727621871260332939260561066236995024967817798147416386323897336421651874640781892646256411931417738218421350681381771719595893920087340240031345898930600836032279384260173478301053759538333841654930521921569745153366073647004690386417590019496765702290340574084132945928297328432820359614544311236930439613590411193424064948195100367266596687635796795942014650007359908142451420583106467428371559259531997103003283703075990544026694566405771260124872130177292746810381850487240372576116614162059276171779205982640823978057327641753677339686446912838099429447034723808102563775449050796977263735065385980867236470669641926813124068913698874459551001085898964722508121023852951674209498947693544644221245072671761488375603384389517585572963493478323848294398626192379114257250446839033609669478706660016524932764488827129782672662243618741170000100201039263773811524211848310892733783721799875566731101631901456699486778364088683366700740905286093565071935125735642132118333698041365480717483808284449663091780932214984242186670422900347810443100963180430226539247994469744076510649984138475611479580519791431292814250145819706179216929764496560826323539563889911305360744631156160888928927016117020288805829228397284426196898969894840850133214458184435202659237066116378349446168601134225740451484086226601360763869403247341769865120368239304452051817079595343877562092384807670185677741554473823050494041174880664594820532919541492165608389168587925860039509567502714203923947003206130817233528189553609389361078039134623433864697712686422551239164923920946906890225270832060655575150658005311854918784173080746734706278176521672928542568907734692253674328875250896962454739558010555759050333020486058890365094834055568659436072412368394592276021304699196059053568050094558266948051849517147830115056072192831872522447711999168306478034411020380611134941947088274940303372487540002056760854094653727396765477761993212388692219459096233528626280225895990081295241681577733071494597344774075970955613883725073902884665131316761023853530014734570997966789962834407682216999311942179569914542373434817731711877861424237897744782226557320203031514690893638537712578123722701315978742270323285461088710214676906382874936690190162188214500001257250097261687923625587427444045196884798658574641150487367754381811321521310602353797310580235629729244161540998083783834416282810860587720374695190226388388835706546777483460441806466251840930526817326067607769844784660152506828723646010127851636808081026800815330863278553668936462654685847344418938817525105109315130688297894239783838631168109283234506234489146747485578970359562098647252037155866507941881090792919552772887350273620786901887180207742910128301387389528374088243702299572319543539213830254413229185072989579437504783673493690037041822037925709176831699524602850595370723651679727636503371070169418000561157009047506637774742421858100903932812499795985626732342645190916130290278751087638506716157706376432480520910018089063017226318345300138822538761733566488451172220694018575800630891973025415528760897238520967564384184261325368464578331539346022362619689344070972549054406991405846309477057744233134260191569969556982455084249301396693376605036454856221147212171897832055889567383206462705580374560458478988713215558443077692166337133717337385374555116402549860974247570178629460532587883197507702832367208853460248469059847290648118569652648786469155575647232153086317078996325830679712889053501601164258154034274900502561953696233320922393325565529771668446469778124303780771441770721380465509675558682086234748025972945349648245708763079863066159553564354950398224360954890775761832674980503251090301374652500398565403194103437817548643538813028299511074778551932674134943795702319120812760121080911884538908868569357024990755294357138861992257439960180997504129919836382257150617329124525678903919071371738238512854389078349987411343474111597698179342420173501917661741229648519063044706842243725072591036357686756981428310716286651808871723373476165173705578424077289832655705009562156484079243698092310599483072907743761186051836655568948338755512401538566868675280129003446385638044747214786763879318108901361647815508263949520518027377954687387488650050442809975631180681772893318088000774526844786588964079857400169589257912047146478347824041774052061782263792708384155862428338923859328434883529314373649846140373513745598085950807435010777277077934999493137127247270111106033778803677649935601959093070999510757153382019879251354518873914163190289797384776810704375032411290337144070135224527024504987833604691303555415070527150990971506372529003396298224884172270023661601586320998584708267038082977869572730968849374602072082016533525859955250670913173030829205765458667773577686400990877929990217429672635665307913220588600283856927193240882186245233203862228110158155204091278050184825658743526309402348606797558818690745293383466399580296788275787085680626582027906911086221990464212626460639746490931500019353853462996452868364271274370455465680922921874478682512015877545082481598898949746120680562164432787900400385371265630869861293716165537647720817391463270103964536897215461373334158729523970882058831258281126794345140223664025531045202462858397775178932122324374472784133712277526731054750955417777112143088929742843857301707247301346064224122390684311663646845260037063133146302366002303189416819022477288486833907132914775457420846116110879408811951507526841071870024944952223614385648969634730663222136403582660138387357341102240590432891238065027148937710226166255660158632356623370345142587587393364602355437359334721475062756631544632133487890416664704800127282281153685804633600301027714636064042410935631048504397932669048668802882446692272650121906089092356905835270620955862344205960315254764458815107363083497531554159634707267731170001152253082637032699091254180243273163632319691734765444092496583149345936257178953405791803767753956971194358129467510222566264366560792864127740436820783935846980130116059621605409225594675581514100143141027080630594847672099805152729968967268827304802981650134335168227832639056534092498875799608777665437911637626875822636379618347123297180423687871128733213068065255889430051114461028841811068003862685425152045841814410681942472647396232183392065870651732959932494376877402321301679480016194641541624769321393236607564359309086150493062682824317715413082026957523038744670049909558277205504895294246024999888441805420820789984427205175470955577423041676660465424093358215521870613254411058829790061370215627723339399889392368399103067769439463256246190505260570714852965762452493992177554004865442266649079490276194699550192035903864489096674000577204540984267661676766009117770500887818809709892199557985517614979874274403956664595948083245498278231701452865078098699457356949059171389332536540376578004688969706117406422226133809661514889536733630613836288383167431422721469784266306395660837951762527676156098127644543335503742084402820122991806164721496927258114361964070773614827439749358481253806466081247597967666870879388218721212188248888301259954485637269077424492824332939044483670972897638248089977161111861968760821879323003639973473352146726822717509994383704769733243542660841229562064506068301988093992344362313453293620297388031428180561185954916878909405814625641644370125482467590211254461359176472370199638178362390089147085286984827187162874245676781612230109141058000509215828750259793745749296768967748744000386966313328130832550421088233362305849046896328456976043099716785467985425057089322315441265235464846560431500183554888458052807565128705994706015308998428836632961568922159419893779081023428588513969950363185201277814120170047862571779208156964721387570389299810601767464217800678062511002310404402263641678404161043765809766030684266369315988007925744920938841777921751955876959007560040371538246352943772949670662398670539693203544989771717701124359206770915252464806138082564594118490699124395721949764036510759766820973661436782632510483663228694085974753850109526358199228462987048808347946008196933142679895228153715968335942564517864069524894395991449889318019780974373360322405364177616272341849245444426129946474473599234550286335819138178057321173358654657306476843625859778448951128675358823043233106579599980963661056797171990594211206623433905305682434197397515245418732957072888284591642811779144128548904097827305552506219638089310620281390780782515354182703562124289976995933137813004273946845299606975796448597566788862265983323096734584643453141280346108803751889590865304481507703471394518826945089392808504332989388933659512166295564679673898842433160793302285642713747429991256991360756476066126458969265591640427456054465085723418756646312167746445732028046570066491219804594600331972730186578664147268289262739683257464152509594708152908106188880240431357729419860306852813590595734473323450900997704243248538840051828195569719676245038642241165339585685793617447698764428156296652296897807148408999758014799232061559575910626502054656681351955916483247871961789486246598111789947878494843281053420496450237300624942415323352900754539822100204439775872258445431881924328482247822813525058757759984638189431663039825843501721877453104111526700982294508935985042723515152337852038169771744372135883234540211112058207348389717723700264918319604180954902154420346784512767306073615013549003017729499225166782124212542246705409439662249728561857234691786225262980293060462941697066833239128455273643362533196972069683584171862202979780517339342638723744169854258975716362658053007001428204650651832719346016337636380718021206962706926407546220332141982739589056950988799105520874617153644349522745556195386482636725789101124664026718114965427534094794472804719762701670558785943713872972394892241794845145088030444682032703218044860775853471291053059960941373126141671085206279621501827072646240153581942239527469954521857265081502852851385795225786849024040230586087520116649201812284228246529890327856085170080796498915484593650392464453940372755954149958399095571119754166841701955187109048227878852249468981612007598168643218679248663383125377006663849391432618770160880536536714190058690849459569990514816868196115498923465131032034552601407342127621476869047886508365885415060042814124116955542601864086531810033734579608340566468069716246379958609424017502178135428703239951153259353714572518786823065718988606547845104704276797198272510439294613418933453162702980688271892573961560294665918817168300712515045840219718189198910755754796813261167082646932948982886035642382295209079410336416605287436290385068472442637679417758298616951711149238186032471604421479936428882475851977880682902098628987423546570312031711074463237070179271822424246724609813490558516091697127792864315794826859962307620399557662630073832970269676925189480476553337561359412465953770436400631557052161039437112677387915900518042125650936337495951464783323781966273953294490179913581657025967590477066621669071449351285634990778004075691222890360627656910425583421894126031542619377770432036147684985305057907554584832613493840164979621861965191124683370250538801451727539698742869601725630962197403640835623461923387617483761068310456768804429052039296948448378083812743277939982127641003497575105361610560222985411855398613106990841197078932664846680775229778251832221763090361829973357001210434172511724232975905840244983125838843524205378456601730597853226999150211662798107779728783543078852341531766095131226031477939784624902028652333117365103367438747917026100802103920502469255397596249368912252731228331506264593278819282063592762016024813405986946144299712678614754611108251217840317520211301742159498600724462781550798120675683143599279335930315897806277693387826495775755398888119619438424915168359205239500351116512693684276070918353503482369816368640662949067547606825770545490423755813817286311283277423013943001544521271489610127350774871145993719684307396465643547076185827259197111357137412548193400292306699439085698592214922003860653132075588158758091457367391725197568541689111453735752497067838248982744952755422245985560567414375747050040538250584510659338297697214804479612995227578064575116848213128527289986833175204927726608793102078435556766218423522299373119351412906868679241442935737939880526977241132869821884108152138970724762269185661729044704220421544640482160213694430064032232043771979282408145501289483358090909326936848441256101504583804746939305494073112942573463516350175161594541565880968015899762299824232563609961107750402478657146168336196878839837662373578837531182844333655380970791039980244382327571109208055033732504494666392225759622354189485005825958104472254933871887965951089238330534473315469260527009709188695566995760737860638233549779310122075591270903843458941435303996851546218701375505358746224948978584739225641558452240477468601099341903711005142214372559522841667734242476781123971550950483282203647758051669522957224671289077464095627748688747587322955580437057221982872394447859574776163333014838388699002999161998458512867514786841669827383347410962231750429012278178551470901439237890122395327038874851718122169204880694546257972524631184665577581289836263016726498742037680720164762332283543897700366652474679292594354586088825531118588873921751644181555446596064632514908707660833937466745661244179379437509269177772432920706139485547735124772459964506103961337607171751509723509869015178820201696672516204741245079558569186497042232962073140464000298926097880942091466871962844198840359808387037986662835356833323811749751980329598896478123817291868981776041632920471125734590333353338120720168872359586867672708517561501707417403541354769335167078790957672837016416369298884231172258495908393567499899079165918527677601896955739753614425242202859358795570390099269498870827347529928164128588008803759941346470417998827809717759253624358611804937619680021267987001322691928358944260077569094972308113726912155367307153272477398725390886266467341516805707879162611071381328381986202725237655998582978133368064023136597251416009078240975422642531013507244264121812356510754062039389855332505674993125150423587853843663833623567454193336662713301101621863632709538712859706499203380272005000637663067272350406156059923891159396395793500242684391988072848628869842965831767399275983891239858535912362988146327710646877128772295914108574904273314190360426104516012707688556473340159248811767129450052696101974230988201199418342622008643474260526763443249514065549138914075214200518452380732613831944806430002719319842972031390075536477752616690142972449493310286766106960753370954347713127264726260788837716373077462374195612500554994163355728859488672080394001900231927927300683559401153134107119196905993270711032228584829748549819020812763700015673845533518806627479301322402012713548622967122131600252002085481293880224274545767868842599137620521582166379335448757456031323408784914571797058136630647921852228135713097881102534052371743683627869385379485062813063232909444065263495312268449155212386780574689967677073095315824132913469820803154284521899396182263934576372081257909585295297013933933696976799907810236766362826669897865211448786706450346270342554881227490360084234952266672242994706945791046430988727088889339473208611136172788176123263916629829084268150577321079299444616140080753297661029730853738094723176555250204191580055038506526040450358226076926983775997930028452036359849672021035166062465684998305998640910991526530692548696517618893623915500071358252016175712055473987912928158792084097919595682141741753257987644178135905485796030255579750281856559782685528849226665684793912988994883578878363371431996422192564154277317126332692681904980804508789336181407556744357062299236377400677274818128111085142424890964252423485183698590479969812156104100128841336389510310829455914726628698304868522013044220455398545170321445015884871819917973537208700482883359583148535589129235406911861156712846088945998927969001764977345795614551284730305877939029167956486099926936487281397070362139981425746227196310744521283580394767783332490377742525179060084257936617062760814130293905335594000433086803709595450568329083258936413762813277336078037303173501760495129491494249820157541935546714846992045006082595561664766655918396378257931730563252903257469605069624489561121775008355561277374634733837935246895554099352534296707594896777693322979579278246794873114749863417509346512432925443923788724654955623009212638908375403544380107376923583227171003496892279985243445624698958662540242305112211572362638442563917256451289623930982745060352261162579777472040278988248929234031716764620147833823803779208890463425575008607395792972337873831690550396612433480886480598135260876666480839397528642824284350318271913982230191673718684583848049802834092264057266839846473265682500948793699741012764137788530983230139682748845312199098042204300565740373656281833037541551657509066676827823708974835015962201145288643958276430728672440261922139072085148242456877839630406434856040314462210721341697076532578665914583192562249199724308074395559803007570778484074222219752137628888724524327851706450826220656486617518543964133452523197022769928834952298950206371211762002407058660306876986243111576811782871812742152472502908909675309373975807796522567285117197847913255358336442261446358122912772146609610384800215774379878827102839121336649507018737720678672770576203631136958208043408089854788251255962995527424499639501226903633939733207565194150486583387726056677137658857656145768107797840510539171469512690333908675442031037555674412763049807060016869281811933281537716543029576509100395566152521676579452772177892208443356446102406402762051875584443767068184265929442459016004928788200494895903239766548785964289154995931151281229195487657889368177514013496212323809375441722049906381046907609799818732058933101145798670935914414887204523630127394938245282193371371154271788708798378377625634051074358426668884770868225477838641224417347066885055790909686650115513097927640593548561430937769645483301455597357351863549231436861465507413740152387091992877564647575496985087484376756390930039492400329760910614631305447559193991713064024004233292484448863986853611063306981482300541972500226158604281691034932745805070322828024120375051047627232959152011787010827988882536501317130962231181696952751340753687976603303363930987000917641420188066763940970402710292627982358130698555258718310903941311705995126548813162063209342683695339119701011412475987742249604834109155905555349397437161889003914261568690959882879648614944579807520563669349151496397862491607209810312997025851612733462601382706898274694638213043343082929861623800193627760938920767810393341735470449523884645939500669724877657071906355561896075285608783586884551539682586072198740093460043030658154742689746650585448393503095585092587265786114879384466948479765730442562579493225203159255526566095631343033717181246368516751045662087833101507700226824903897328213887872613866353959959895210317034949388465750984580802879323761146326043289443645060798082840997716202441516513128532110264632398020165749403799841205700696677102850381992275900038665573902904050147012481652455039824387009371001980968738245756637924857111472854658668555541605790696884376913001162219914179647740407475033063237838720025795893227220987945674924558694535198871516807867249875783715551060294129076927835786485892901900355388177457940858479038287721168106618024250899698854822338745532201978140433817318365659507956587477369289763894879614214220333857968317980592394862061721522757877398328227199714209632037597758349728754160426908614470194285478252709106980376192547212528259297485331936776012781179752067026087944165998330706418736934232104488995437409799874701600695902083722851949074225435261254562449862049541986934548965123238243799601070683233220690317324057874327506509005480668840777599344828517139213861035845241668022277541949580971800054993736296537998154185218270823247653522628381555398747648404525576574474376844364166516062804539007287145923805676500344319172559129869812825408684163701738147164329530286101941852461357021158897142535214024070117769185063264408048851964574553887268713873673661324915518859412095706955815771732768756329645422669905837532397546702311393251758954822257735633517052197702742211871055770828662011413301472009905812329831679409333106047612292086661364839027159765888568536067454123224529898604687586107106709928403170250721729539093212807649729764109258335430527691729235346644959243567739884304959371617276577430520694580950737150948050974102769882582118881313378680548625285838238959109097203458977856986226985322183999411970245067713524992737463262807884255812140501877358663914356746956127120508128517871466467280173511233092163552087415364848540400816124936603808761875652907422217997469511615497171029148094600890722589168783858098489260041893606310479744573222056414999728218910173073940635438822097617771697867885942290459375204510210953064435145912226642804776119707822476393078848916108259071539427865567170180291232941679128313565795734722766445340061750976075665073624566561312427688005819499147281058045881204618634303589454165198837480193042799489080380913753043063978469012522589192942141869312975829102928608350203918412415499444661340545430166506517074494241643524759553333239718390743823625659927354362176582730087089262483390366326049383689003700642494765605958917654495080131009726669409774788245365214595421010742488861271573201061312478725795432460463151715678973195539362853906072262727431042904423468684648425338857109774987424095255594701197698690029334489232180201092891947748170777335905610988443564024630731840947956822156575027959578369290917010345789146971598382520666961270846004729671340186600624384389640549399965088807791743861192956800571097621979968667976638951149235431904980491388658303645078222087488464174549458744962397715605002923989375640385556667172529107087476419684986660936422185739930374331938943871802379082107864892124285186372031242259457623624457978155939427609965510985104931256080508088476109189425480063974318541898755580066017341323330887576044137415932992639959868124998538459900817830132651112807271333245644731919067499773168527857650913305670626164392499028131734795465272369271493460418567395181011853846735404616841058670575193959281856932659768100939316280397538469647611769835427872273356853692994446965748569691235814734414599214027706248054463739588094332517615102125291769449583365612321272233788193361069560275218699787226268489992127358040043075736972132852441370334025296877720395429541722968104727664883887186233121798409001987344070970136546818275413691406495469856766815226711111100807591314838789260145365720349761925049350491301262950735530477936002941300656254047631811423235675714229805431468886500357147573157563610461298968265794466023809960478444331466830709037972084516954525726547098730858740219161005345040039832722126525935707190249625931236094145034093984921076754592931338240879198212373847914099771065880362424699265979705978348885661632018534569672317240758371645901085636796599017205795184032765722707141580696363590834332410714149968673775718333533901134498927644647127957232435567339006371051472786002597263827170053119230825895944912730957543076333617082240513427083581123400323407971692773665373404580856331254551301162339000605376204769403449073211078585753917424912804521551098770728901292091126199767427879150190101286585387391157956871123764294440707087646718240667003212572362222993431461982845717697032693298572555660888670486500680824609222463400516054038219382331290760998251355660330962477756899638531390601863040744797820323788772993223151713879513294015092891198933005051984987119267964190374089576206206649480189071405511898027052010466035794579164993127233340807213392884419884527546632095933532476241534524580532991242800414527412656068810494527119959194863534069451856541646133823852483017491974944589737726187076492261982600942873492563321084262502430676370850212206061936323513788372761964510274918794230031679579410977108343293465524858999040547034046414384117409763677658199852152688555831880217167723681077890870747596823226157873798638690803951650260151748033215331489960578721513470145506630321742070329805838000841046081820654829463324664793479250460233541726523221439512083507145944990294303776028234937891781967248968951856260152928521565314739141661512276831496654699602407648733041760401293842940252843477422342345882215875507287339235840791008392543275765941951608013238574415362364533659018412483260489758253895104468254447575255699482293644436089445330789063493757291900681326987560769977572386268162881148631572524081040031207453962425489309006716131726006818495083718373403241737958378252195950122999533049941198472460929474840417701743032674181970365218414711024898874268849642110558393881012334137175820290379976181567395862855859138285453028240542758056035897512219427844431228797192128803418864307719461553669735567382298944863726646743312839804113645509770512277277099494493445119429401023654919749831315390691206917260785956897697648640470971029535648311449722192200612681403226579202904439773877303175168836970342198044531603497277862293417009900849633419719907803457506255196735530445447092191940877921581783249024920950219068541621860920584833996961459091964152197573259858268384924159881037322049142277023684885478266483735118943658369328696733672606649722836357726615347500964876294461787060852787576950714583642619841118370995897292603722731812832069844529525248465729334140523756121126319944465351121160179703096134698953738929339322321640541934611534472603480555354956472434320306094206913379670717417570750199324798091401053090487801212108178256140608963528311997838347166739688052656069936832348566984660515337040521806233819388991029040888326824502581447983341238846102688249905347408451056605312983815238836791809214477185472938296388297470312921440266191349047451492313898191186690771034964199500647681041352982793478538612843686653610705999168396432995418131838022929266274826642059465506216789976474435129133890309029999113800219892450243941106433046636149231347630466079840718441226791076013904909772869608475292405896718180534897151659055933849609070052704227604191263021104629685969681597036712351402929938027035213253250414097734939943000580732138898508778901066608186057289928513717611034142356425887133548416109168764515606961063094727034478233489621743883735807784485778588202729004038231166453818980674457883680974561735890821156107241249455841097888308550654216605062294382813167792250891692476458489239602328712714757543459085996599042000369800919863516183711430776471977722884490980856957507266694826300992424330227082084712004744335084635571966311568818175197216098254505271639417383062748761329974421041290561112864307451920271758763401430940333293513046405522534488005187897839807505283080470252177510144005544072965294750051221463693688263433604174851916706667570834102779181705708732840991333522418386790427037932706263159653963485201912885754281962745719330942635494734557891836780135872006668384978240332251604808531927677306407188520881458208560922214647250020152650114314525886420159518649510545303221693532113878754083804959993654903816697870001276228285551550238904476263209875709356200075618605692333683846170098938128011097166446207151700361941850047088800936894611198820380422632577567380095609950756802831736470304884974333007670965152637102845176423260164243150470733114357374369613847844484062584371586810276990861486523650124037187701320971189515725785665921192996613688084332275082510044423355048829067509688089265567088715309809117500857349949335157564864754190493788807985504027159429353334852873329222393262373145526578390929468556347284958805479683412687348823230071973079437283788696477217413267109982352440933427642317791105902313743485297560979259444530329589406545736929707581768634590070753351340844798770381315267141845548020660808792392374394931915057968073477177249559845290715189300419553611780722531055475509051128050953200961435490943716306050012273209645519191329100876221789825638769664602060146702475090285897649149328004832294794844148494930827833512003754578719716487692797834587453011386270760828230655146832721615110081830934111990016122856328770017426811571375029825337742269404648376690934404367945376997681874183940042463115423728726304757756265344492240855367205905685137014982965249031303438320915561358983997805095437346758541747683362601818434351764941744848291479447212366197436519175198965545230224157252792902162796723288764877306466123875611086967724137044968265513071801064302915690396532690780034236440911149256568817352632050000617407504608512275872890725652329634103347508819511666462937649037904247489799692777093973034791834299829761296268294748701789097548260191459633995761635934807834307536522006762714023023156622194710423435874561184798647300069218451239026420733601357961730073811545183087843798179170777614414673565040463513799699412931452940354699819693870130111880482967201563884429823180028540672280782236366640819846171678833224960560653295830959423474637994775552799822080837876766336514737267408547035055860840549164322352185441101829421276116486470447147233074358928053361248702190741709380651500379152828786414553117891986262307249729658810550627764190597732382335143468037724507086259340392708434592808294830411682830422319686088503988688434809453505866971663094652220403028487995606891604226772403670897452906260185048253214300372753066989007174678365552789637024363052411737027499911548530340872702340229861572897138710622419806027056979510406889165727765935695448614521545875377899075120500228059061515144633569645414834170434788466697708460704653803172913343340376366549920718739580337891974072205330601481241709435123479353415594707015615153946687691012503424312833342064264838754812724331611202026514693129045354006823331369128366608788874967083503891119078022205791751821111956719657770095863628670627200853758576510197800041512723791421004502560147896980201633125012546841028288325924617473511088446456826583928027951402538205369279663086050150567442866805369595923833054816641473053649518899926349264416483221362981709536708500911539499083471487267612071236081877405200536969992429227489598493714842267457544541554613225024233853671717780644871910363205416573848349230435785919001615118286888842447933641082239980762089241471315680133482562331246117198030439651996333628835266182442349098745026865664361695752323962073885250847836556140066069271588563093330537743670130768616329759524012694241172182581939516322174021960388201823811012791213974145955613950794526202681808753548893258010352081421858797240413629919197142859952656733602666200529276206604830699795925209260898472365076574298382801730644036674449976214225323981592217312792879092699195870723954347884854103982887907107875981941231932008446675399148722830618972611683754041776257157168677557532851137480100308521203439818456391494843069829957534493348628397690367530384402260755635326839334076480997990512285807454963999947993381201415132660625291127503810347327955885540666076478979320564888542731548418738884303212235158200689171991095952166955801793861288593009148877468591797746831760732616993762250160952584132641741175317943160122104622083394339418912040891624728686320949741117255748822341508304601943481670766508627292799976115714341007855142479233597294377242107353909362222970818833834565264426911500547448669285442984859341966168186918041022092526220032959692300550473946928821422963357106467824417880496576928863663884522784235790442983778469360866302799964938239755569901330512827454815643925991862823878155092312922756619119760196362046143087565866409108139343637883742537770126738151893266695353194924420805397396119880221543246061431999065518432646438689852963996815799672915487093201524830614388838988255863235967071050299858355776848098331956180733032486761251671252481586961717281015663421505970173478660493519022077372299162936954859248836440700427427891459655317089516467480719524499387572668500998466915982625701813065092820987667402672242864740814662050344708054495420641512778200454343037756666199553154697617018492458368428642435217662531226894143555208219151895888316025508992550498291907726446957759768735517050207037872573299423940665417731133762609374742852019540899832961175065523943858749920085002833615257614579615792761142498057812701782430848325594946773826719833028829570767457868325888786283182897018425833309453339451152215344837772660327164661863700730175128886177867194663481571388505327249393882301189570171486258475077351127863445155363781730343520345899496992966308172706187998649811231947194528440834960812667781781679327191302205383734917089598694226358985133199768159400164194276191232519910633157191785506854375164600553115404990916962336200965296350181826086667580447297127012389446261546670429753670434316332000104546145636810239445973290527848334099961511083554230639516097153839691540361486122103870806049886854427633453716636195188800511129681607364182496380783091843301167310789702959195456928546412334424792736294983967299937220057285876267372945761923644086687343921673663466873784190938552607396636218510209554797044021776494213333471619754161198458963815555642975590241216885395251763016387730252524527268324153293746530541764835266794335793470125023404051603216131259068927346842585293724408821793085811484962722421523669156702711356245764259428267967907475130385981836374393915354024814835944816190323351300911497989037777832175791693048685192237684707343191209537139277619531596360479427109586751647353540909382716662201093032310983829689917048228937099037085540512513248315467230075350610933539699327438243813346724737754986729409251257010402493879123729358383076434404244069238521207356933438804647754100077095178358246749691552723314684824650454067193465244100734129715744378515312795132354958585211452669907247713463584407296708256623151655962947493796835663721781927573928072212311576757185218709629293529986607571197609937074120957433100806058457057861273248128828917976183293312041590020455914888561336255625652148507691439009332957204052945243864729699426145037572082943531839083703594763925280388152079365655383929731870125631164761755143507618603623255113396276397707813949027050778898765488665912466131471252162272669671241375750840365059809613282757306809645142117326202165173183405678541599596154672045330944492579289859136731615081379354818171618604996546145387255906058473396846583427722529166236164332534700583877442034346359672863937522645564014967035900993275778980644289861853501390399436821163643516232880907366727709430838972488604444079173941467469133174800282194342390740114936977968055370417267790112076633751244591394825513018855578976246192582079728595074016642822925215020595456695850941342791043979046308427567516810328726670883802333763819086235399214935469832662941840983578250549675391444444188161021122481719014766961503237129812220643000793406147876209560802013850903434692627029036123182059409528165123442016001674299198995513177656450409282881152383606222143752570392505938045791469808861531417509054797477797265794729392597501256805254150329629316831424304107335553817756370808454704792183511574697681926662149940643785412861280363691791936504990092449510843172583825803101086645885077409660411880627021253081725225086686910799727121467946009118189307265738256630668831364497914916622860906364015440285374814438130689477797999779078901571375707082876726814320049052720126211198948650529094621423504946823498328508029963693198241253707783355681740830237415709974977458810846135612699811577635572045701942094152966900103847889760482731711248661730634479228966157676914673780309466599460600551806479537977481273112869458079640512769521390180604593614968352620651670227163649636640593015709104317015918924956509295786085871863234249469438717071634878502519153609299865770265993666292248053350307877503923028668892290169158619445794788127252245456567373914835009772435922955551293050073614545009205645671008079548035672599262246895487825159654503935841846371309906808245767994088172849436941183846980623425438319579807585418958711860289061560122431609245915230661653138766871996369674207527959476083648111889248982097994656177209509807373720406989415296115589390382590647961966198504013736275010890037102877578182508232212199030960673834203958124858643951453308281769899547943584612367832977983731582813693189632839264599199563120486533543276725777496569598755652566714952558312456707958122339776024845287296763823972405290928470235888141464083133359611036141419911979785592858069717553288796221432196078213960219953356737912452738142053080457367900782243278498369425902377994296672895784531633382598336263281582075773603200026183225572527621036424097537828169655794217958160156753208935601578439328153499720341893151299355069037442503737403656968633918344339058261374736518839349023876507371198552224594448671009421432187076509934646263156745354295782279530349462674246513355584417253037517505076007667551088561974134572992891736446927509342159950567538978255231319038923270698114481650437344724927385170523966676636528288053643381266328471452818756361127073594090822664578357735497816380067971907270660969696976239615356193126504962417683128565414759659385256308970405108081647709215155923518710445034479299659584326743656168158970150154295550081806248260489137728535834819332440916089475704099735503565731152158211480616190996542422123686506134868194289894936775821270822850242872257495575262726041502258212366922684927578146526310985147932729066010028270595019760319229497262486461345519180331635492407649475839546074106682908780719861122296294614790315280308324776735222151395854777336197551191433085362291794992253005415346367314958207023670717252125134377229429470017013890153712642936413051205088946388432160600250239527851204048872868304052919978690858332534151218811854348119998540538352749653904034057731254627018118672514062814839066562329157999781146652349306872155480199590750011265984428947527802431273801682958577442688116366933744204885652182955108971657048974426562105265959283167216506353800805697773214796815912430711973888365683813456551691531492741087669056413144446818971506340625773313772395355558370849889650541961376820721103899285139781959048357738690517837135406771035571649625388551696869079168493290908046848757561183108006916354689764833969121108271106856112208726113066435414539612622740660726880518466565851473876726210096992357307033645929693315753697670134355965190989228696904471155165565199893029858661933673282205873913603066351645901244326057348303760425941362161348581589257379958461080193650086935424280739001477967120398337457138629315109317148753358972438456873087666894429418888539573751134947941649534554236991114823222844161598857438965749829659651982918167444901855605567852185514525018042699859216373646061992519694932416243250216351633792604993813764638393775737859032618558565406076010738008915712617442644595466350872711042957917067291831314630248404130032975382852211804507255765902645612442287209226392733306572173039159727464243993974216031334995203149454887277764412138185341946752348282671512720439020744524374410622867844285316115722424616150096758532847445396845015601811202930868056447312650367238720220435281626290362309208775045911667158239153158576574324236553791765780182798241278842479535271636680115121706378145584699549064621189707411936001590046691290007626038786421605210233887274409201058355860304440809220465253865110201652337169195533180333165345006292262600549650375668944813280652802050725086529297667368423758295606650212593945413256815088437426878423001075044256153854351395061003130106186168288857627493793806094033230111724565547801661031084677101189974955683436608293978895360336248891067175726050206570909834812646716180535718101821342238536662946651512184393322070176945319168589748244848512103156178742996571501274581618471565772476767916649368792181961255467910224077494541096298625658316340771951646329316675788060721091690154668811508361954962884555994930085186651109286708217256229196560068216058312310716067537340800137689352963079307196836396041797505078246483475332659694178904321963931919287120202831453756856625979638707140081859215436791636476730830364255368376788365461558569336288324772651472801530978828083035147216858813214525107514437667226585142444206507203312011391099476741104912885131627222670286393349737919002410228079413244756476967350035990480700119704736351615446026898847823898907370177010152109450636670283001585314998777944806938500541495268889685736320762176524387125147651597515057950917780575686103007766513850739013105344887640434253901799011396020860083985900021854064374500376020323531784882519109169135310428672552293280777374057239068227486160836152484224413759042589898974066035495967809314626352106470627575655595619633439301939016551520987099502350219474521780527840300635274451354253710960526026755792595609483361618112299454956087513910966978076559514842881412686940439070134030922616913826014459344001938069189785186063884441410278856839116080643685656591976339745188239187294956355979482732621167651942260251256808417430566455461542540134967602546452592076786432934880943455770359899673598699300139021155182441990769100864929129394409503680341875631383373666104047187451774796162399166001637723248167912033258050755307795912178258197444172764787831783681355838975997685718565434551202840853326238707982603191208006351922786930257798499946957411298409721756036002671423773254539949875056182627038651942286909165572605345704825205948222489445616734899899040867004816445187103433907612948266103966243913953533951484195538591722689963325225973198424780706339999755221113419887621418806958257956855064319681677729243859763889606088491413779901952616720052109647877959399154111309751780053181188052641998837488773601225720410291692368061994517593839821791434149196404641489301694900604714628384467640676139793250292573972379862859160228880620256060726641933575127997514814932845430149743208475426538992564355420566484066593588979645548723425997368082361835787868854626080992389325664885552530977208860615203725835788897883915061339479575023647413648100149394803988284912133257376446836413378403788341708881205029805508203458333790274576924043235953374137166892707643897181937743635838751506030195092957317270520532496536188043811130080688880125898319769976283423847868676052974823373300215886267829716199177868169562034675456649729416738952666735604557737252287072135800487108568858421240015918300589328026433706328867944279285044575086649508855150026279876403452667759931709851157095113520064386455421631828623394709964147036280076221657289638364365841208051209049370186409433206742102378216356296930827933392949090707921378682404103996765455555170822725693338570088780704784142228662405291644129289683545339521425449215782696458262042157494694094962130506638656498602017388195609196310150317024078733350586303468753614332632945641738864984465932869639452969132816256551056851374007467156202189835733927442876687881366248679450446814978638445415957989208972244338359031919840297374178080504958791052792087665136070276196045816867671475831166337217459563497152664611368441901347407221745984501705947227698585816449740119934878457418256689934880915462728296816227560630730423871010756140328111047886026053326066363095751708405215755455357640457733373510394575951441742585859326678799476893870081644065283748101943930715003332367741289716173175551957229674859095487884318149980319797036805850663786132440772087672612991830798399807764880763364144776184676783095164557548604001113150271451148997591837881762965832908322596487459757720293845233156385907683417895780926859576408283339226900665917634070570080860951577204207614866995135898821434347929099906105180079356455167195661505280780520959578249134922704806595260375776167407670118391184760255805741088938303959874917092925540997044755169649306723450077852667714473338738700931954686266632057873059302708575044831408559393914909202609870800652881751542821602383642448095575910619037207186319926272693541112184107971602550961639247575362826341624361166270982594437918486888353219803697662388604819119190628976528063254000367738807745025958973568996470010755413777163725185454255337402119353716863930078845527617513582657536569772876791716216885806616721410843078314382757928458749522877413404822589083315723149380385699669773179697271031081959726284583360517307608721377186950944720099929597452433998396678768421632361463862570676650126675965549708293395175648974356134118357496084042192977653447359771798832831992175241604309795206108721536032434658748365899567393849294792945186579548100953591795973973835153564023276832188741290340615292571132206120306310184143161351911605207491359452154606944752761711807725757794343065446914879357938857810183841151716854170687883768254879258442537091383423912105986890545735387869540083183914446953968322296936468504887876265734010810866984620497101590386278660426598833990015131535392798251329930491330959856231739529542473362706432904931076847233537646284484566451536200846303678723096778174410785576687970708591019179377145829254898846575118718494631877614237830992527717785046851876485045074006092142041751820272803410430914583658690746038686128131572995132125966455177720300231178379612679466704998781123042128501760826868199792350261135179272689755073721345201011558274086343760713549888045777133058582892629130303955033802804697857210377763628018338269118548974370410662461271169385164424290511211636986823778297030058902470952325107365503536338661107329813221681530235149080257983515319718371095967778586523253786581526766611151701192747502634357775110780805598976826927722140962263047771583030695101920954425867800376809674611425706424248810603745758008976331025990636641563238167079380304494912635386702896901699183087971597082810404670131191389875471210748649474159680188191042529697378521818362557718837952164693329919503968682745925099917428160253444211779248907873256420558485885823202776904978547698167337653487331954812272439164504676474540299926808411651213594103023579158181390444328520200952746674476551978918696697578804715736454928149944374548759061592084882835449336453960745944873164731843821005327123681652606001496263045048515685463633381058316763202062438229406018457540894459980726385722648154393621980861993816995007138003031663220023354555781340322076625819581936600273398259300891487696058020358311449156609623131046711334878027145068101678979532542955313552384283993287630518847892924545381306044945169175418938095865012907030524405875548360210735769965672555357089983717342447622620447166032984059321183853837682174562267860417734360517532389446019672348363740588710813606907874760183709030176306596484367163700560439093285581965653058258047056033888694523297567523866429922402136848861873307930336714065907213130186501425917647242700216757507740417206898424851495057311132789547732712203878262465233859182232530961477167084570959902594894038830865606259063197617228887399064771314266561159070797841507473068081784838753680181153266303947174827857300637959017344988640131092884565961793869632137659840205166178358651602069579963859763441677908852578124711778237948720237431562007361207406613545481827540585689352892667427196584881344882861290756063295168356700911330969007880891672592736053463984186631834885625417932187373686619926163011380517953753571129225285498341775964742014694180518040138271320702919649598965030598680517038798959712564345923391612699235762518336466183250265186940790093822999198110413808857432834261967687375783825749365940107878986164041315966922113598004742969111301462459133011411334716353293366643451846979992344236778862028766789035109434394843512770850767505516844210440591341763853821059081718355032607694899713074834543228021726228144394893305146505616086597447382926180821483313133674514188569414957232797933989761951150332027254628787666787439592168213185102867746377476292310484725811807284959069349206506759340030101039960851985322061930448943186027088466655816126372259230403912063434883251952569356900792165555326868481056681434191548650244344516737268265676487897788025889538925956435941831820875942440265338022530765084431967152612881438017252329767480087827517234267379389059284913998623947406108649367209527762269974183917051614447989617034624045003564475477306521468624209737863033365240836294890789279389215341984499591319371761061115930529033751544463169046543810974691352846111603380467192376871341348555033499433045105998890095511483042935002937481670656783677550601452921457755070293643337542755029994582701415744768437807281482041250121986526553589200583695724719690645294954518336534383222550039100583628104825000153595726031066863761418831179119916599628820637494539354051520105139103810762083408863093475029683184083482125378503225142529828115573491491991181671019727302482783220016671861637253076707197407253598315164515194947945869323777078859764233887563842339963896856687802518640040134365437436170617671974789089458426118627989374742506973097587808998863596260723079656295978613016234176181704855344549776145241097685984039127549052306773264715568617801594134790083091053830248576676261503464757922459177545250341762819761088206917082918890492632290194700656442533556943699515441130333076459483858000237129964365892502902477373353860091890114399518660494913469890930587942275616471014093967487975796977699196644163572818781542923370580174999856371590980558052174580220813021855472564031802176594690755209958929328454369788632517334693912529521552414098973244208795427463531503144289853272357989369284264308156736340839167952976644718819318945225416413306357097888274429599418675547155717194569591388925162334383185555574104916467819317430689173497033208492924480187303843776845460466570931524163255505742302109575389808378584872250493997128524655762941549709995570883483103876377095841933035277966951229076877793838514932594834269247548860635340027558952566400051542880175514313801298946002026610906876876519861236246689561949235342474761868273624860480343386765350780901586672761248363009051713618541921401221133262371183379116657039227250105820563243535896756695147682302588458302630778522134368867103793947829518800908661022576877695499719250141234367795674340091263027065369479246344094198466057217004699338641955126070147106039802861881605404732679398756861407643838790112768455010696052501167817790608135554956433727413135406981101476433769377284242889055862508621400311932337412651263940399584868302869775103633907804966906691325150696286901635443314160605986595401007036516789060485158443170166682144646756379095368063188209507021819300436957102531129219119831197767028224421427506738361192226627248930540335285504004040228893481418683199854860775389245633984686522181016829184892255293974389638054678400156179729547727508775065322860053505130442987424894867630622960494787707078887135275075466733396388838634548101042833057575793340196848074409743670945931419073896545825141533382398841540555672413859834000772667047111550318384126494486844109447095070151559807361317434671781164523099796483715808115944725667248605669762524730125632616457827408682573095220668800207650200646824459857879558311616061893750800496270581545282122672112630480537759527989079932244052914288797532539579217818707543702859881923882608402870639229191157234345509151289915167554050434782974741393898162518143312237199692419636631396812017641701343806260838334813164653195054937377184148348245463284635172267902454801176852866690854940011267920462535732585325714189477877803480911260157645996754626019463144202530375470034342781223249613728980089124932068245145953963782971296974485432109733729336429594827800226056451514531746397655936558173762574838020306554547080484008667107918042903082667251813316386539530981667970237897243238259555960738607884754480719229724806110438400875820458209584757996857100038617220889582835473889931964155619957156938526739637341069195063334582010724500171462867693271840326578566983913150392736610230271913912469230549333723727536091642353554160289133925981513811658244309947267676331405800729961252537202682263811110664260224485632798332724655614508030062996858146871982466401845254907264636291311308640022298896626498898425796311249603581063066683413520299107986336010128879150714742221718750881598070029397773506058218168593685623867462206977286380547603297878625360302670089115634077447308284361605761392929469112227394833651700468747435193766088611394908712854829225259151771327784552513507014046612130913068694424623928982001505181451263775959843430737491412328475620031246874896714169733745627753647328589755240368703626314370409853074855837184702001115115885393062170820355292002585783516195262867339398200953924656635653593237968743834779094483539215025669605078554364298883514922310050395332079707504527668121469207904246692159149751922358582376525892880127155092822420762860064920658527838449984646092747517287566411032610852347325117005202145298587995376318531661896307627269747104917458037625393354950584919010027982338377465754016902386099739454572379943101430738774270769224172568651987302885319528849637800221489970611384197410130242688584020385025928308821781781174261897760672080971376564352101432765871074661587009478135609992690276365405753582472919994473457527448925268275049913045752104202934501091157731877870115586078277224190843173210997588829306116060340525719980018319572558788855034398813203700968937472441914445231884834456171051224452340309450791026640643250342814762047053216384708356410527382839142642188244239471748444624082115951541388823603758622498754119004155043252014582358533028526296206378284016750791890356296106415752356753401571637529521927734204882829450394599462531197256385359835480089475035394471558378314284716139351560715493104235217532458567691650476290709000016843711757655699609875657764131580029910029464024402389056878624620853533656824353139570508573820886407119180646381273783006821269870654888132259296036717954551383319143987959373931236718321794284194979809580939792569671425022613426632562284032788961563828323015831910194370121108552422974625113700815576519721214208923193947160445032491904241764186530016087989518786330999334892174001586463593467888625971232139457135231489683795073301595790160361934713381847723951035972691627965953350019163976896636189558212705221619927323482644200731177935125803055502982045138389027159644434624665729437399642521825524820478404449799005858669734805051288974816493529658082633205701913995126972482044704616996587046983723779464414997173828667840130857307256845732086410565880914659188292510888063429745907995787771337800470172432164522553188275354457436434516546597130061538633354721395952334059258753499765004665866811752090222564572382924087318165430181014776449189871190756813680398372216797051031117215441718612294307832625608396689120725374897789465437504538019827046442420072781286851469850496701001474081338274828528660461148368826620020004670136994022848950448248039166136365171618040680850501668483556765301357090412310150100767568524108750475794178958446719035531760329974763402458524994179134526144139292871629962107089880822895806645887992971664495880523964377284362753375386959015791198805258943237868809782055775054463678052585390020139475362548650318215825948495184019542522323768084398445017553473272284911819343599715793635196388123545607739961819590131445883978874319797755219000347115532950864952285247899150276311266289896054213684560540426296490964475706733223138261236035882262359130614370347410280333078916610828780602114374111229636001137326848482727880724725498901403507827400833610078833394873735054621419729155518338033598966384819685050992209110466231494134537464961892581163228850516832461606252343010150385470588665767568352929498838908750937683014627113356001255155644531922150820260883651500996497988702790685097064284746107217557026924794875497998177565182274360349455899385053757196166538728208839406088472318422179217894182594428692273054585039147234536209687397590331922201760436189555814664011479660801866389490504748477138581704574232687647834309541178418417517265738672544811409575983716323735413953417131369394501309113326888879478223082896870475827007496019142295260766421992950221626354757848966203999341327206452717976437357462551448425116455004887058022619339775907935168659316515421617878879134262952267161672115871667362289056839627304764950448550135683061112945017975203440225844195984404993652873651913636575859283670006845962518232906375641003673734502811761363073574493514248437125988744040454317650012029694471566234785277921272579559984137967209418431060379389181136334629974163416765101174635543854682907107405688693038311129782126974948866340951547121398488990552862440413565510669943208233954117417911976026180129797071545266552000099006367010006557052808420481016887771942286827618835204598770405274789568510928583183726584144356924995791572013723835233803398975859144817762891683368249198124414444784013730629416838341190531026078047713467061052211743997640826947030910754396111572945192627117561125907942520781445464499898320756434611994292879074344401689722922628624931896347725814773855461626192986596501498393449191860225712396943387789877040138451691979760548034390877574881937812478065882354003222982480114771209083307158357113532676510767407086976539885845407354810577501233289799673806288514815741099576336921487254762326364806332574074149969873931680108410748969466861484689525968509504944479736526703964841861421694273638040995434634406752242866148676888734368913037166813918707487063119743825052476559294645779771535233172100975623029010099414368941682835039869572233213056213804880963614770347321549066559267315386765021593479426236266434212681276354211629287918259273549020735405018463935384991816551970082980066081650519300569912662010873553364324226934075191993661348072307552037771957883389967470213298384903187267720562268243223218867427538362421010318449272518795258626386111922048405993097176034810571703856240397118749313880122978654183130331617751582566499418630384467179503720455025250227818450581572511411236100498825273581468592995980170234273805440527314030267631964428357093717616587134762953976296983886043127684418772694371505004806377390032596815635843370582969997837104624865990372813819612915114559933902588274789955518233925256543658531426927426943553423027339769881566928418013477810715246815418427580463162518463422631786369520182393072330705936731172744264494719323711542909905643009934199472077290418699563636931733379141886172834487015513796026517209410152000625359501994759449197909362694248987696987341303166948938175687807727021872486243394719102932199597692611177186372442731657142789310296077286055937345447501980379855344701598596819080263702248116556605410301997677674590294117137415486621952645775403016697720379058280324393222284353593726440729503719111340403668825652815341194738510689808574823668950852065555465044512318651081501071006311408967177972830773052465003564276019536138362726939626630604335943061370794335956714314830406877982777507630424352638238317712262374059684707001264468932660374499008538801082988207304434781428467115833455345719855705897604848474424464250808801381767494973934474051557341252823114794100360550168045540636132344037915896574271099907566012932403182122200896310393610401538174178851605502854955902147152589372531932047233832570076442911050115024347024195789762382762855094050899390016708074517517091261507663451183403801015959630351661392154643728308507510124298420057312190048803049924542666036932900811330874474021572328771234700444835728651132898416525508396730033779422424169392488059521912565857642911174375096510155332637185081291051334785691724053736373459526490855017147940947172051836639712020269932654841282706139192353831536578828516332851045147931064225297679032751895975090681559124040705401786661331412697030184579818181007295590702809344796693922365927348453833220027821553601010340036844183581514234555956976998564034088575504314783337943507826405333015111438504193988863108253793299026994574271087526373215816438394731631578551066323080011119800672967319353510983154232624089664930543508862472018182112519193136963768477333936534605359648912307528948334571746475168122759318106773940584654371986589371111865082911506658023997808039437257415274623638750329128509648299647830519587319242338270410310004186679425890605858728545125344916839357675013805093468350335733168677119661070827157773210264740492261576625968676681555127642747980590780186087381058367617542066424014335551419593575324636277512375119044348151651585516845006197919815805487772939151650975745982741659838607106488217989650896390831213644285847261330562642401706857397326299943293003164067058806715091394912599678601543896543746402337842192748328084689418000820068046273648879270138281509196995505480142108473254339842025062713283399246141546723420362885987670299654298975399419353588503085384261728620605617934467110347279191754670654699076510459698457543016431627064358834299344684972406877193574721018405997093637776184777338354961044292522765475793622661326168466964383709966024200721930385038209642620750479156352712955711670670243118980912195244383140043334208203471995583012042963224464891091462544739569293878137355240280579291321223414559467412426509200581793919837725169141903783194990399523758544080998158582492567742462556932399921738426138099296449629573878480927166557861309168070555534996700162213046313289350445850984041290696254504322628630411210098521005004136771544179910029935018793900898098731704081920422056254497635352281917207102245259263258889072734137086779674250177099922742663253852785949220397430727836851496311151351808973280695016039847840584715235269268949479431547488950483382710548518989765492046077622345730407943635690789502768917035560716503483535134323197245126290494862514183576095943371779850897000054633760235040031666442680229840855105963796382377744538963375518327081439152571551267002362790126627890440865426484100548509904278753896514537619341326447342123455732738806386176098396659680091967387905897378826954180363608981890288849636480454914459710971901416516285530505015454003671427892719559415123452205156305198711350551582333846000019593841395663357715541781684318742990814024066433525897980628655369485127719608387086880109959771642899392058520142780581584548585697200199460892991723601897354124627314260917690574034199301205671834491734219130287942012898851479207032925279856054543833952806079490970795535101925134967737483962181134770849762992278536127475204229665787227240711962319342675937069298794286526026977160589576199154688368914230149675866556081322321716507762390795443445334081995579161330744237512518390740580223717586937504654183452877040494457403884725307391281440867422705760590750217904981246338763951713767786510685935393403612502184047526983875594966757061638058458263903577152337364626442886842553592200423895456678270425915993879536923431215185808116192144690453427276526245067006233767832112354803232060147323352017608251441224588871287235811898156896083048827029647205618874833916762524656172600221882909887241659377014652978331026252309293673346557878156644125445422488050813208146589778389755851281393358037618017248175112838021782898100697851065673494228955636952090458338243334949022197717920539776336245835529089187522960761429093104095057652594480989430917918412269152433013177237913792527874516055936624965265040765685653924932890217110285299717289286694485056740010928677721555282973438736304682971641061380216335100648526735230297034318613239465933034268498839712237608598054377724702584058610641022957937415873592778914841988115938124883581263775789426352757811635700652292633806399350722466775518984964382799270501578879025084392828171162789822767496641368273009781002773269614710848044578370453160829815776526832580075040560327138882899283283401693639623026778369295240247117896423633214929751380809317097702889846106352776542044857636422137911391757831449125129574594398451800505341585462854072889654326587841879275387016344998868734914519629719679132482278463056652910867505270295715776570135696375744509967832261080714722450101163084211904074876036026196570096562780802116615689728625742227864116418862985404300221468138585039951127176518779867617356393093623187915207802975498696498991525745729634628105863096829117542665808407761384405475903403075398627890023668943633716544783477996267712206814850031897824907156523588583505025169442036123275882499592371547073986854586614932699790322934052202522529397872376093223541999386977678870793150597709453326180783168522423144509621072611782780322357131772278976190040563743360574347351972877498406408219767878288736583312918564426085270371429115557279812874514871908793438453542530417864924864428038142449041767369598323138425545336756298671942669036590334652451698647139524345228164281757318117549176250597433699796851018055143564718881330065683122236014938950475717786633504425708668084396508163271813297263583499634034980220415188002164226365135154013843134651860718394200891491654075932605455400434810988055413882998224436616267255025606007222261364055813892178695806567080390506983990954086749416462630960609658094045147359262597592295435164335913991535554944283778802557944468952633665150247376680642450811934068984320946957300261939979550432833814086542008733955530840372326667410680790396083242574018147740275997882065590727618508162092452637435114744349697175656742738805470626115536114749627552968414539362261685768871170227193998209415734141700761313000807525077025492775350143856766635690380897680308238634644659316918427215831055756531172477333842913227081829393004311819928962850608448801926470101411448845619580782085925665359910557787181581646870887664669186741940092451057685220509393437250334163992390970554948951470186176425683069891270639965907675091237443717862981216383878717601478341001529835711470985191303558625063283505600168241614153757839385383635676492901003790675582888362764640488719610533070995648733533256773398644778679294048944880698193373724906826130235362257029727288924064807822510382964969297157858453092800809909226235385836447789926166675432930811920030345567830940980401687401910577839325643748396265848058305552420461137943520848878763219406101739382127311594065564592027366595105555444351635288514536523790404059268367631424680362998982589645485138561052401850801882554481638621389020095686357072617836479534929454580244682819974646489810933432724690759070135871411670721704794690478131741093649425343141905012503604455411408301879565940673746624839173106048983582940845489894483878636531774722874419616031447437195987883772952019917336140956100285006106136580857703346385127758520429881779698043648514361915753016342262835301785929939480512684204025441399805928409491266743500477604462382479669759790251766608969098998991761077742646758950494499867882075668485571809168559142674258005184665972257964535208026637760998814772277707586351993745437314742089652016761649786230374738036084225976163063631558132027342669236402012252270917069179167024781367178378769246015914743823919655447064553690820592000419764093867188050459201394351866861596699641692209380788485271383588814634785790444976230268619113373583814659058735817731335998865712074334381642221210550892553591832392473313620321705095336234176005844843757501670213630492310023777043942022619686356002654439236689384891095798208583841229126091088888116785677110567376114369788631534460235471950240468926336682305110614390117099849675213582147622298266599406696516180574254759674432442513105637683479167208788789523273614077779798804767015804898964073145391039797322162048120861508122055307932777834861991386307797650789012554811798320151082876261075528100355908732047452317810250815996111606495548828404181875302111295725862270057894087549296615162436936817954271880143723544832155197001914573655082545675625129947101096186847303154948174499252806723117610558467054301561210424296641193400414883816995429192440146573277415667202376637110428269039825249457148039647055862341386464825109582050389320056240801180827364861007575290356855394152519955827928553931450415117730798378385880848615625854677883015414178495978941341517985938173594771334140304743910764670670922293124642185933769115864813204779125680151294375504860265085902994854419746416296164774646235644724651633561823198946162923245874001281482184838033217629594860062850734917406769107546959488796459399719577160752559541325149276306957500541853062403090608399152155365169767935559272372470940172433480313103535804147497597428728541788697198650740800284731636294543066532309531387152018799473723763385405898717896680050847390135722645220144970397924298711221045648536087562581744685516317460932568802921530239806878338003103533526270572706970549053121576149704723718616825489802850281259603822733411809703421222645157348895476982047774185928773635661781168473346796212744223736612872572256434975298101446456446678209210593257348680124958240436978691559015090725263169981914381297718172594256871328816218449838917475873061196528008344993810967834728389888711933854826000475160685076841446660790505373341374665234867836337965270697177583933111272800520314743926404250568911136193207547849510733008340642514608537599780248031326147800914222051569669028609542181174396760578268571321553805562993227161603798858448800365288615483968891642793754624797242737185773545171630081721091748347435155180186321738056498372768697318111483262236919531037826201550638163702663857527051253207173783181543567816798146417746105776290423814688008647002956530107473456639187477130213649810376088443085512388484068200553182443989614273088909668838974291493269256871018369376921237861140632312097982279914804188602547428833230790542154503248280868512734464281977123974363469245944787115544024784737027110429743943521356231607460168918486959536746904981410464070647635248183922016682583603314312330670248822025963543786129836926348914605131080139591984033504593485930722463549846187545714645937728779718593111603974513731692786754881364233345291126020767836001813697597396854665184672396070638311582209715100254604426852434940625696677153612649587538794518335250586220971537499393404888909744949259239254238788490206727603134586895894734693986351013177068260213352534163962444466415831866552237033072734076175698320268258431113758745757190730450531172479744169199921468653706729268048416900875146868329765929011645320476574772187792783357583263177121088289785087969256728920268754579324925173158154502849980899326070843243852821673926583679146938444278759712288068477805058655531260099590588992991786170327254254230553632125293694835593342562740539266790656318293712340987306760653591091508246811674164107221768099657752894825182475723761970882326409468258006124765565279141825789824593314620379157845542800911382199483600941576698291043121991376492306191641233930737519097712700608340043725481589804055409744559064924064561011450095527663205156883891219055380410667004555355583562500491994604112072491121305228902396866083410975704641651125033792320237679264320276714516949925128887653006297670616913932387635426004169790579290615857973900650257894317466675393595608603109714182417362293372584779987755645324432842866719560628413804079503676752624255845533315552972671764675352750718749344728808149341903595992989547044367225940171653017099349695040853893074577629449873459492826464427731881456414099874837027854452224309144704372420070442340957526749275626602754217265031490299395342336726264125941119001665773132149833056222723478916266572873172959085372684773168811171772176752353123095640716686235100024876597638023255849790866536543179342116820948290531239935343713785628606336351765895088019435558340279955643927051877058615419107008387904478958303824303149492248088105785891952697452058829627107390234375348970601816422233922019462378007103058442811004056333283420853102103910701092481874447512061679868667208917806831245618614779676859552974478208719455430872949357275260438793257030413070341403718907449105742284470441759447407274655585195157164011602835023784399770697333876940274193106942110163887143624819130752875586862916206969793393438540568572986244733082013303568258048472338139850093652427411562757093840486731991331623263865390885607870496414298588844220329349019915565612673835917512605296230060197324291503847275439436646013224929953021648670410678334116746990874600635024807996772283773722469120829612084275469204567282753513101355063961615486524856765376561981179590204474093386187062520424679169998056946865572365368794492428209589796024113604386013108677103916676614145573634915648787820976085859104780815270723755980453439737693308645306631482698425661346567822581358334278596664904438921518568412135261607988087930904479397313747566895579974819779224628153802571668399014974970860426980753000042444689847593228686542271154982130463978034330694445086871888111048810361842885534433684576838036097063561711176386336904644945686986315619628795749749715667375127616310535370195450353533316450196208094249496518170922724619470529637600621342727251813621076198478964357722079634277316584000506215499006177709682785823721537996923968784163392896938903402716102856774314515624184695754074435469711027556548400545246514013214044550499613542167170275452794991512504487790069054730153131762356516118715665261498441847582001828537360387385310996320124625247209000845026558571297698074836528770716918438237469543732321848174764535906066689142855145926288314973265553755483221976378056875533123090217578627218961878581771308371740810233118812991159370926559453086536272393606016498918897713081709412756542435221768156389304707831709689627836909095426123483524341194443633545458306936718178875317886428814386099740275253710954666314278855160853443406034448552053850809789283179511569259532911060466508765391658106498407570112096268781319731957199890649612038732435918263903385181295615679002698786117877527871268454474808981035759292315369056519981775273348214541083661424372655523031721453328160358800990832025670678431602638452407847017595183668192098637140976562917919635157477585475125127443781773628665295778459366526484332490350935955474602577920434651980400128119964383935522724075022586810508582955715228335193337861440474517032830998704114411451538776977329861464440068368084353142972251506912444887741270041908822329422794997109170402343272048660362484858974703848714377042025067637929457303922041129080119557145877001758531796448563748696307106930627969272939574935724701114269704621160812400377484004682430716514038060690045748638416563767653473880119420900770642329414323578713921331119080074952965151823407457918434321765449319468612039670918363263571137750368164357257854651109664511592107272691768839802146765447880768229455191567343838885666761576676805237273008819607329195333978019198827700853513754401023920851004044391411551530207308312792162039507451731279787558196318140724053750056523332064869715566604383343670918315015612753302289663203866606173298332239456896202964254545440155245229821286810541283507559647449500495636487753428981043675655579762856550061643195192454762365285485755189734878177118249947469072490825137919231661458804292657989078922664164775287459845392622808140353359940383631444020916873843854928392409338817469930153510230679961704006403567169013364602172474711398634070620036746727350695751215070374743696745363457089514519282142590841126163294695006597472971458426832527909681156051534179315798531073833689462637539302314799464776319528026122414379546271877735440799777410059734171878352491040251276475332278278062567789020536913950331877513157759615888533677104474737793902945099296225743521179988740871370446097688790646742378479929981468132404581470162967035889542974866281256144990558000979156515093135216388203792346200291699306330598502744340804145448472864006013698178811294611412856464514254561781166312027255284721848185591263270645857175384173818354215621669674731372364473451423662328118822681091771562730227702165258340280794592316953698654192064291907528975419603906347303855153219351190133678502502551600361063017356795958930248280764783525873478217290920466576495644694493595396109237843081010374622286223432860363052780339669306084818486748258167295672965697610376154792604309987938387488378289256004408893024204203857297495501736627541168926906888973617516113972185362159806945883390681008030797161242272228532599992766456042585694775482938584179278286379400489991778732142091695850020153087988354799354161017885994248536338366538128493950575918214950631198651539561511595947316685209293599347453084409282673591537866221536968096699764033659292134917279220414677805162375721136631656244487420900317562847104357260839214554907100962384670370535605028806940679079230685992406060947454484393130631835044381793328518915023192601070685608991464704181641419545233271528329727489112910030650339805615781014179678002679717763333963115763386972896492049110769749251107246532626282868215092822564764709235428316317870538149539561654792230807740766055064822561892792369462464564568767653386905959498196761254188076988363858830156084082524735731003715070882216955969289548732797789113180243429995196087751833864382990607271057587810407799582418983541480447863529124334382937010079467337520251518631777966627100742760243261946868169546380211214967121704910840469767406015987860364342168475975320709387873609565685554988425223018000891497812606256143312363394028216216014260404808975713796414301971740983230970781689104814076991796739683470407265756774368833270293795335197139837453331600037280138682422057117372646191290490191850958165687872842613375286004503827868925375240214745881668344076325061657962780373588303315511048143682527236901365380020663631094049229934193194030234858147941329547623407225624312517187661160712970551197827851636019201977861498557949308034165525127130333146191414370970056061357306344854786014720957589741473991183503686792325110144302538944434804726747944172858435360754724863647637986428380174289758419903031653638288726729238780465970570620627678508644954432001713728201106281321777471289361495399210783747232152317099097254404506248907535345565208385197378998142527621138941162280217035604527122195994773110267276196613954873554451470775396709201548590547519609161064458890343104166977569629961498734077432576316555395803050519666105990241051522155670936823167050881307232555022180377300094082376761850880550234792310074099402570470872885367211227655973749751127786382820920552124573733629895721772010495564030244004353618086091195886170475079954937175645192328735808326215796442900002431672466638423855190125182751121453792960596682687540585941247774981417887235596191681916591376348953511913018223395080345183428538984035310189026598095065107052600081311044299497520034373603510604909884442224288129489380669327114103372689239572756254435522738786464708567357848019187057855463771381396163385776871225834664972384584945831339270887575819371206383778676475886507950743340231316035432494277958893391040551140434004576115097552046323774443417435459874483614939364529209185535539730154798504127440818661775454168839291766375077176676925897907659290353682771850957625746707186494123839481809668278384270891981408302245040111518588349968341481072955042525045026037388940388483315551186447050471635931932646021496489127619101061082691895663995641361768067895692535999574832852498110034133102347801963966282457773101056319025139296533646948209084370832505907587363359472040033899717384304529802505090571468905345725888899078576352440143833648970458126340709444335310079571557831353094902489525457793651701934125186565951720521936151099952403538766009660735965352170489875228233601170512600062078205997983485103417888192728815233174301344464976767570628737733596550097419019571083106683068636396364612040444415487386431788675693593825175793082158853832296132326199314722119762602856253177644527654862914018602336076078429012779243579780633074943344404709942738270353981585319370704101671047218278447992854617346270157958924991275788219114880965191861365295164073059068578343418824548839930878782234362944613399032792005453850356787504415673908680141058423651147608266668464685897813750156200749874529315340936878177100441029738612995555384202939765613083151537901921042196010971096518155352992313912912785936131954595825296534109384125762709868753718304999193397924783530359704677704813632887551856472499201131661963460846350210482814851987411719916676995216579879583173862401076281573723190476961748280633462439578979250087651869644414401626776885648454656572480374923375478665485686116777168692634159370017528422387463408120313107130645913828856312822473267578397998337938554077663401269750024230150687783325410059814076126001990643317767160140096989428799037163739672878537028341035926302810476033227148937046740680025727939854009243972994560719336371059826048684949316548993109496530182238492362684793690661580281098974153527754546058394304266739269646201545636606659349939914341319518356813158654973679468234360011914675330362580040406865744157729367522153696025310027356390725275560868758476316241250383448619454293685461773128161501284665102421614247819806482161313909447285297969040036445693932139951237333328756836380817549467109409934562619876339571190964191679281552859798478036412617551490680187944479912872401995905883452484865273460958604975929974630462475663161001470062532369309105370943472197686155504604359340100449285302831028014532362961847796865899790571896425265200728806310522695983306396945948533441422843723154417765335939844254097073455940804586938736215338888843058269434752737692790900292257880247291867098182660140176500742759551960491643006527645660508523629819624349732584911135623724342120106257490469539073882404148844784050696986727374292043226300014141711132150685850960016622763675920329076773658993533218080052390891303928490604738222022042914554679191090366318070873430520592553897772216125616812895001634468889712950134589594509570211297697699514347820329288476932810405232380428279576296028533374914894328765219140826343125698379461155926881907625646881779360146903309935752787885420101242229303280637129738657059492540571109791730812621023935265381294223313119400501603426741000148115484293439412879919316023544817172855705894184699019634757627625534665687347635993449681976652638560105381557567810499335542408737542404088373673004349283769693732410082039915653541138675840910753756448976554381990307247495861143866370796347848524447485254149678385954618478644738926388697636308875137004134973520973196354180325087375468483193126722343073766698045432736258222923274630142667192903053510442579285142798613801892422249243288470734728768430794596082201883943707663025673211998206908197137625276060342487780094516190110861996093234396215578459834578407437171016214190601363689375778780699403662505266215740060129700099851129538087524564473784680348249872086781282502073915241965318925111928094958389713273339697108992496696355771685633802153108934412995321137430139235683422462207627611752062899645908107406648374709747338972810592877239979748435671880445089017880374964838827895476848371902250281858094736157896610920206827014916389056661825886570646307227456842603088479306855173568968351394819883444402464617276266499211452025968785360298944444259798421742270200726191844832912118605904219116046198195589867905530819491767050880069845349182795110200303085596036341314504199512929542550051212783353338045621659898278969509936301250967285271080165807590961614250329316982052764459003001847978899323538017633972346868679568445845571406396475267227378561311395873343955471025012075890210541418053431664247333694456132713281063343309795116659994825019720353046199223087596908161363505729539546769902943602754551261065308506985067241888874788536683378046016410326290542522806804003743744482648402323569011832898222036565577391017255323270996512162503482383198571928077887528699828633716241440363651827904003000069574648235508771548248402527857876586432514703881800890893779919250180736646989166840400672555465611620456054445853585012781228422004422658548808266674932134823576137200871708610042160799952856953728514796723653516341249609363439935353725275177040798397451253685356776776106485301594134149424076337500311260992634132573808319677192384974218548327450944969900290869836295142027857187659634097592067830129335250165211468810738692915732318669643729586938354742192847625774553950825367921704097711913473678513094196730080940034015819867892148179290769835012841183699335290230102728055795818909064279422670576886498729614259030341568646138659188947656187131199445978863161976421459392001958353347615862784619585459815514842777029956409211885276652110801537740194676133450598214018746806166044840984058274302451075247313393861506076227654074744313452508328638927834699905680730966273655303266764707618242626986140704939167681314356368795710839885183066787374937054089195058077282993113906231687620245466450317205328826379946100550091345172888468800548565084671643316653075295678329148215761699446320155363469053177357982807036731375931231545745854711559959967371351711477845391071929472695695420506548060863695931263548045487850228319948290764384720441102285054583700742258500351290620300690756112143270033885624240219791148615378480015490830660086025906589786692724435540029536992694346656426245878165057632700481280276902062146663378923013904718527279920002926619891761431678143258477938501597313966527802640505409740403518448298546543293910210209989924562700507802685093185130645230639298663591051702729093573406920426802745280732691896647484391490045824178642459305984941255132474596761372430018955070256603713944798663241247516559255221973901301992427131174515903944405901488369400795610465288351866646828236923622941412888048666295215453611884020653069552940549797468648086795950712587875176115713594311900083122080448848713044967151376791545180045417751300209708565847825615671914575776246601968236287649613672332484648525208086649402701386937200830368487097385383442147665916945918112689676351165088603158237210032660975300628151490717495776421919037142660146177946774271773838549131597902507283914936851813247775765510693219650644010093752460341278324679710772292845900022074562278736504791574246377084431660715294262965035228757086402648591199845151329077138045690516392722293891850232081879709412921760879246713891662353079443259634746112742528178772573355142960967185807789354131043618186557576602521398393827919349760485262594010545410908379119071935888111605840774752489093618620021988319077394146102573921668864839704996720468684399150053066318084188591604558481850158872587659933645518911885817641132010907447696651433704884283997819809542436277103774790754281038835758082249474130323740137238007167062186770878902482833396048138711378878436207091762996594255615045816111174849924783851826346191029392277754230344823731818979293624036935708151574941684796143833906629985835555729684696679148762981784724772287451216299182449002364531854312923808195775442539770933769463300456745714424029467578065360288660665962271670114476309850880302519831234843292590718202264992315794956956842116304239521718820797303808114620525910917997196695079909909471794150280629345720803503287475995671090322277479170299565547767617403308587598025905106121131492820743304480938717674137845806309531539335678668786912107869824929404890580780443855444553869411380581483112493718946473885034843620296026886591627358674687108104667305308660743379848589367558188449715171613635101999788886955204038233195634645852672574308697459816220753073009132798693030358758829437988445018683157994215069815671470687901440414877473991354835503491921788478294581669092516428598479378195740547689821474379588063614113933101203202504044862541809723989546279845090301010220533644451930534154501832228672583705952179669624858737685945534406628154670340966648238990430404343732318630344090496180605482413440905875235181096538550600373719611023648433556347615180332962584197067507366140741118972384568998959048891395108278282574756258575284913903029159826685935284596839848743491130746338680625990942413173815799435241160900004067988956644064858742493026407896241455802898515678966520146272427494571962305199037785077853297014895001790281546915752210639269775118624184538337646792486318811880028247063503639775610687895002213904476618740477329551895662480843395442263017550492861418460425615230312386256537148538064487864940994993831335745969735201252146740329457651589225319202648047005978470158332568813727167797470283422228424076457088131268606966646517772038865976242668840463709593665270833935278707760805011677075005065559109889098473739792668517606865458776959835054463354520034773822608313106914414410435717226578347536004124852231091296865315498938476674940960188078239600676168250701216592593582168731367274887559699243250225389348742539510340801146721276452224517690670518608680103805670355132983344296103053181106462491205638404136675981165282356519235190036973704387334767175541003265238148884063719844019240904237808957591066425567701664925637732892360151397321858390218797475025971855793104485647959288968183874012505444418429915864799983609165652715513863692149029846850829165562640475920003613709860855351256344620112119898055383495750532339157134108104813609498947695549272437172375509566820968633654338522579522362245153093060939140497377623927658623989077050890059776834858789879267332677157909634054249432688734533497332621543766495816649969512271268967997492637861246187536347147417515447541277572861166094101967476287972076662497056142621962258438678063181223507854664651805039306369879810929888603276390139322581231021035219818014798748875432563297174265576465282743448580585479967867612708205048235487074722099598082614346357578287252337180039951278700258257618819762736925737456190248469329184137998643866648820124538661577098197475918337865159809463034983405696576870389251627269428950622239087262843089560496718479650144200012317909876675345734439843010096239141531625520299378921012078743322347870987931365589600461212370910734266839619538406111097087748949430446492463671047927199478456952356125415594654234103667924626624790065528726719836561749747281504873269814581712414192212411114787142688265788861694868505466768319321494476951542528037328250947522459391540875593588391817760507263697835358702733178561022397984806344617300633812516096267215180625137427385912498053760193910392394437345822992834272812361480566778435981110278212667476130161297949281857232851174514948543667442383194355599439352597896462202212321072253329688479218882963534084505088441458387225252584374105739731027995539779854963609391611982358168118507208502956451331210365328913983785328269126837209289853548276638420798387539887146343433057361278254825989610200565958729799957694750139070564583550602831455384652509793739289190727971293729122875748992602959120904715491026177003325011539438820615679793861544090306304095323621626926055489179065893193342508309592970075658564156091531495224244765058932580764152584312333727222369802814887859424716174891861389883269230976074779533400350348133127177292737914566996018804140900402209360155685007585293324000581855098776528787512051489428332672060504984047926230549253809095864182095654902677865665028061556584094872181733090138657899988721203783009796837763824568879514139585691780489628057679683662096144098378606105319657625826189052720891655163650489453727819437133247598220147270238164770382214256853012149383564185069888601667661733443124872710169502832072396665302505624411624777987059404783313168019150822075134375932515757761790024652062217710025347738552869975850902561048051586295313343290284601868052736486746169784132977564645162670562416704297494607529903921658895704818915761978458370995328750732498416145541656558116972141596575560882182712396324977662790350671881174473442688415320540099928159441325213263625836270478664510082696534845437544370609694329013333141107051782543543352958954087513896751527930772150488432893589748880524755698866047908441358892405920318075600926465717882690215535184143282162786556926985858158161291357760355521503292188736220102561852680016155556769995985315064172647217386412044266324292648038582307220447420278278680322614922706248552082447581963822807765119088354441051053257818866126553980680094962435056069611840844238073308495983514213016835684495075370058397985807613981631799951058063109865630553651654248728233323719338063068107739996609055877299178940835611341115524142775791661251146963394454876304295697454427106930828016569943049736554657165629006531464637465054642146431037137820537275265430002482035451256792009572648575737152555165303253947470156573867015470129003801503634995844907621734599315848074544926682504384117462989703239758864888012813921972252432081440690681823703657172946928213130619482736271894208871501141943442283507865018489281063662181625127281616963830123769367026039597653470436360963170395485763428629329089099721609897241808186724489576006495717783037612869478523762689694125129763247907045198118217098338249603195099807491227730997830581416690772547426815276779381671621055224480451039615896991910936816759384081990253217568239937293380791882166399731512630262595683596289123424482458907273578956792314359523409633836050924927426088866286847978747009890204774733383296016004956810300464184825084949846720812945725248198128709253394808535628296670534403017442916774514095673052074222174057389333554328469238005227811134666304307279095658244509375092508528103875575692787566880257030938166709654242871776297047971847590987741112791204661515981955586539320435850955028455368640999871925820724908784295711109642608296724249700264963360332371949832545746234170021673751558140812864607051044996806107201685802178074101638685524015074996142583657335210755032506412647688785503939200275257746961866596791854419138913127420209593588753441608339550350377760459363599585593214457819659386983202980563305944636716859694551052843575567445096439696250493004562586160054820994099099927033107224855743176085579582205402686602532912088326864057871377849532312510818149293086978450337407808614555726594811347535402462525822927594238219015475928550506345118949915999986082601824661866453970682029623350422747105480231101475385259813034187648609038955981880528732506735820943195721740919221967668069480319682868547491587575678539278929131224679317295363712694616020134011508019500570227381240158132401756205814022575836873670558494320338111278254355206807261115979500252505537939313752321836135250917250782416239509467709996283241613656149384502115053378998474352335345442661952862151593183230681579339057440562259478766773077478818643312322710982104488503727576977967401426783400508803449191707921678124410635031307730777311640023174785795360259813447677110046626339955590697901391129695533644976553048106552968334630774579365775472303260095158634281135623302982107866237712111799415666190201715484336758403555702941906752494983172299089766018393079842845816499058109052689750455089147814875155121295496687410449089480146099474698014924320970971944021001223869776418344060281004028211009673041128094926607149448720615263507000547895362290301354106008467386777555256305110212601224407655960421630029489718236822474452785186101371431264256113636134060548013809392781486071375813759795766275345035313792737930405129262686824165130536067563645488087382028945948855106939975254978913416259706457505219740113089621920398838688069967385266154012412554615465168791068981728146743293370765617050716080643993112348399555094451205159843145021374817323299756781434459119865409873730769916870829620054672462032531210008013387021998014320881224694646212321680782785452354844345640886965809513600093917823189555907431761710306108057713526832482746960208724893066102580635213166291140061916992332889294741232745552763188723641277672786183704201633310534375023361686641656976044868305290494407723308284417286530502943935251944327162388304895249186816863038329373158274514814991522907187731761113682432746346913220788674962321751368900139115854862520394097115635751437426750140319018732538031131641536158490154446327816970604953825507271161258355013226338389876350510980025328532294625312140539697528696940743494464105892672810577974090339694653830046534474708223509792476014433875700895903204298793272468941205321448276078658140819656931105533364079596253463443538652338999705044914453710119091002984631179304534227332397692466780427531104884667660765064652490537817369075746928467668917470843518017495365483240460026948462526147126362280198011967550697825867499440910596689345620897299091417890172731450470715317932587176301056400847461023066559550129948055169682961918992194961004110827220004714104753567876589273885942878732862446879237217192997197713692881572048615400821811070172495418743719851652616304717716292521536390445905035594068077711471333342744514114290966671037754944509262782488009800547803479283429556621292575113677323920909340492326463536418063981887391792864467527692256028034228717680914194690304851005432980808509156718158399534992586550342859302603925567988820403308363536187997602418470464464359299340223767377377738923148407212631296020558473615074182043833794059287941605828191026787455950454475324964572741144812395948034756829585572844445705248731948208787891650982163913419933274612639568292259486466134171219804185683550881673182523365881748114600071364123495798617840620019262358818859778974787934951592827286286260294020661527702975101635562463864788866463809662736495143466049039234650104381799399886871521513180463232743393110034923513870332152619278919167275949087350652196303518951303241769388664517964442673270097007384249437343463007920093278877821304804188754104726628065811957040900802770734975839597947020864585091517541700811135768986305094837755310303276737638553828112378294000276525721031666142260081876132882308838354992632378069647026741205431387316504285489502761761831865064318914543591429668388043488598094125534481616205433075454736002777249853363978660862059595993670801374756000980044970131997178614023515494140639217452759648891626313807773484116933675805775441672410262497539124924373123190496471054936628356268545967031299527406151485568982145231889069297755950489495982793341611604308182493478905043125783623876464334887891870691362138329431585603369950078498819256869736320425201462333907552598233180455662893647416613295079944027860507704542939599223534230841641476302886385959051077645354239493339719616340054665066904699935717529315152826387106670851684663315110163220919009593409070914776016976875857261088422280424280156730806402814355056651599467068306630149188001129177186991968895791426978310263270517027835662732631045757821691619987150355576906210093023600520721366484941913900877168577962047957294609226561243605489316659833327566836504543665543686430839439404821080867123969503567310544824770788297474988401465684177602429954643687458308356227575856352647637067702438345570412600945028683078143573133546292966451033315631979742142629918431191831282277088044693626763956583434596756994684551025466230878068053026405758669791698624517137094874829680286681163306700787704846250219062900693961983070209494542008287625110217699431364937682448997731334953806470606323937259028603557708508000538396741510897800653156734121050591776857366169348200526379065900637053311652686327221130564165695148450280423687921664838282739309817327439420515247900828177708154038541023681923105633387325807064761732992746289154285722191349080751498212198868254592226034766985928662316327971186708016147346163514359786429772458007691638454845073213203133183957498714991249791571949448498086833884623794239092663162821871413362543350926766896641008253660185456151236930413986401874157233215332662119474768424251102586376432998718282350809852984669013913570008851985500492260900107719032764993303369504527772644261702843027983907715434020104322294308837635370355096383074082224461784951571631491321150007807919265018045526419305750338994527699963221614379447585313171916542415127571703644655823909756535387082698380357830917900474548223316863485878263379652225310494438089254473009108389525704494239198806008126991468516260647480912598706268444758792024532290835742431422702638203456180671842047668853405510816129890951549087581780192451494038728142243495411814926788687745141846644071748364013560345577879897523884557041752740021567657040558379609254194486485401873620093698467401234971992737422321094721382358602023412491667522607602375225480076070487406294377980211976971761042571447114530211244230656606587817917492133241376259404037902729099929954421232278813983810945163048254934772264938172310255122839584946115441027095556044919709115253333058218794761231709200869933168674664816501250083514343731875958778466673792282084074401365746628268482270280454494940680399440688942493705850714731716920439792652034456350485721656336639416529028629812815209780421178814512380609309715317592514120216405427642996903476036082184130878142868206695474826643954014477651936471425914777530037423283404605979551540331058137226999487386308663009820866573224651999790356929321835075101401824132859866454602411554902204485457219370131997119924223361286462262073914094047657934456748967811855178076053922962471013995316726300370155462788793873249669683918680391454275388601463231558312090568860935925224756731287233590979250981471767875330986726506946833717166234936934684312909597805056521734843109338427765644527337330897300732030338997719848157901683833562284580660176372837832911264599142730946172025595566239252031166185616570010081966076710017239575326715798073037509779710633622144430837231408144811822461843873912289108294714509141288035309766350517087912559737655762402006060413067536234102756056994270712213603600106153912159626905665424363284231683801030736967620911500570694853290052014702215958677786807460035085885601846569122109448204305131692981609000323807299698022119372069146186866279001210425623141045014306779211345596540648246712321451261898097076095436642659242699524715702558641238989620787914093265635507992260059948252089944173317989490065691704872539900300370415010453078386520820731100276479661235957094603077153509481687837194260690492970642344269182932557683373292690199851784212444265202591412444765046686033240711325277243420398355354415423061639091893419626853008757365459365340505392791998119663978273545229752311501572616166495787153579912145200338185300430821801106832051051576654423677651908146797705381511992369054702234628321861085150184058437058982568312097738798247508559399356161671213247510207560076151783308592528436434564228829659477751520422214695364717825752041440714788639733189970156470152278315998977503761903750539440876149397579180553821495579301682938405810438811833919856863263669172874786346907186832254471097563632607547791360653414787225049927617582034011014705196809776059340865557702402954592102847325571604223380243979101587192058232429194950891458859735310181344620093715094311916336095056999898073583690162822823664721725146324893660392904702769591721594426593015694436872176047870676976971717500836950229973022458191485353201249196738084765002844777946299531727503118489687857672557044046776298285376346454537069882415851039449295661452192987522497205666221813729600283971262001364701496169677297491247021198762049074283406817492995621998518972809656071728623230134521225583914204586464944308876383721696703131101626009116656810962963302274013090739355967650230410492246489200877992745026011349302588420926597900685649792206870396086225702605849338567946492948574934768041277247391023937644510314457363556073491173527974603672765666836531972995240796940176320781373204655974135688373343117046584196953041076371671105467212689493556480449353233594286557393230738700974694545671140740516919524081725191639445838908017874679694230487822255417848309024540020075495550911049337695269638095470652520398490126069704502814877546212824747218801444346006623015627339645499079113647012857800368212654942949107026633251749326621966808581780193543844146394210120008632168805436105918212645391150919857436395902968240612556780205309732036766155457624709232697983784306885450294686320609923353674017374549763047679478810800418388549991142593247809273647613922780560729150508172296269804136093729664333758701817182050479949860819829479965895967566016162798713035126521936116639673857870685987442394269196825433738420839232995744000006650560704423031728409959404284716849331339871900397233095973857226777308643867876369319168782307219010511116112170912299507728633727477911831193164768988795355666157171509947762741593202744862682800679588819120218044042643464204392101202049159268364855433924272782181175903668925908210749354104389053940307092323618030614434962682047461127447363716313177630768516324315920316422015899074379171950466875033438498798230256557157708258308617505814629514239895708608334075977418601642571538262906551676841886420671667627351635469049625281724441354497870989008071191948355164855462777790807471656729473380168355439099792584513088763148691448433892876345207920487296689694754023608507090857739614043056928532526960262163239375319177229250834638838566329032699480694076317688368147700751342527977685961541564426688691991891625306790429328923441870235759699152292408434383860955397008544426973823712294252095434370858414542141479892765062453996696896674158810895068349581968252757023892116663961536025853296675878511021599510979860116749742670205076762079913989995036317986765438379603629238307507320816072177282572858262127436931622131712039033513174410140976848601659979352914915548463478010477395994689550493267469483866934963929150588618941705964426382107005694297961624272168340430698036233678727826537878261508423656542026192241639454520761522156421064640242185681313501443263008194758282628016653679454340593109866543127327754596020926131676243928416563365250429749152223719487986792940264338185012618310543204487494153160639488650952268304451774762074173541672960084762270466680197813170336371815335527690435300176743089777299956803382961914580284158973929565897939246481583854418355172356575392484044027712983385629281492075260582729229472009143460664156106852103447098299848746080230400036878273687751555287834240496964825316870058970590630020560386215447307664329615761373236635247841689447445130402493699550382456750285340635783242680029812801339381829046412954535822507448652187342506581553696086188366573136545036164107518620174774008005043076265285098333569374041189362175477697730469995416355203903382183736301508424622537853803168269292409741262135324016953151994351534226766131479776062368439909165753536691727971910169702170635703509901920491899168542730600967990753411765369115011044016983047707858274195866657875096696097856444595172734233491158411039074014977652988235876267810224781902532758108733984117309496386568165308831625345077094570796882920452047740093663626078427408141399245033585877279681140336011077994828260292960416143199263306380868592707588204833625619699026113325675338869061914020722086152213221449933902934118838906042814773263555307610440222888340821218191556607330390929789931127976194841370947320723045255339813104185185374882201272229052304541268491666739417994372729150573808605136808249030537943116867786789752294007273977706412487209182220255168262084906475638838139521838121881119871282379375396412423438702683924604515100788146904390518253286606251079242477196012897560830834706552930130163417733883594210278215880252610228067823707442660922480548235938147330349390394047855085410204200114191646507557943161856611687967363746420615194044386741121785139927094759885603135951037961564349716556163947790268428899057099692481280439601315367046916271162360572718631553989440780253667559956370457999942480586320587462569766959277227897325142171164207293778499457167152727236085919558747138168478532448719392870009966479726457738476962589906153533566141744552366829847320818109070410341653520088403622884976638526636534193325382723898189057990986844955875875304960873287766729298573159973140808122540409084735791594373916307721957086932171485740727673400842581386023572359802785054225899427232962909910027964980665442059407212648924250976730784110978510355212083889949287664449125173573803338230775080738488501396686942558313092561464248176256831061415419978037798521893451636262922605487451404565848997747063895899797147353480071161866599340548009960646141935540231186035995306472513825993813185090053356639259661963423482086380478756844641188040456135643636631413686040818833849209041517914346868878646743986291464141567815163836963990262808574477514548048482006095473232938037532239470507616098907568475016170561113421511325367051974709248672063523351260054781573125631020150227009325566269199450797042653352528229795836871661183538115937235694285153658098534408702037018845028822797178202682035210711092856514610853703601836950597895877340217490849074584866433950445195204157234902014159243050417699365862717040092923298792753947002537489677628287380467976615988321428890185842725174483683689386025763931251959889398125742346242258222386608442989918037075435231312410101369615561697003428460732441855900373024936260341968806435131204338008173073505787082547602444763453969623246160543935214803890787021914750104988668942899050029989065831057996417971140627187396105200585605485794832158128289224922537503532335159033898240338921729992419791654124268554888980288762248861167768627421647136343867222452661030822374966644377959110886180287519960401170065596506666862877809489439165260914980677556628616206968879069210128948546768165690083494532121925126213208854941564142758158187437770780308859956590425204810599565074726054090471467902226309102389147642376824459682551603690872411615312424819934861654363870284628634728631089388753733549841219202365076549183501120355770148780058278476462489688960016113902657825332066542136691786474365965016175777334849342332866004397783685185616159751342705966375817124609776729300213667181308346686778685400728473779670555878429868211682710646884990284322483474438817149131898145190873246660848935497719949249583781566352309342366688818354357675694696655200071874923246006927582142857713769091265314823685712622309406919547519444084781731061961332386982144272918215644489718679181354655105393630270756373247719135394701865289944110760454579756175511548250474050764757335183185924533698688971007169608717753565941424512889836889037736955442992624444377646277901675642055428824880969751775943063492328733273159530292023064416143139195788563622901800487359922240786145729722195661341744192584864163774347719796598685521966304591921192513791092410605322513650723693878841917785922784649381425410672974596905646587641586156781844013368870593729386639966841192436924167726725001283140331296740612321821851170968622354168061405698011443026600622026523483501211051880208033062264986863749241711824329564840053446384996727197289053698179358956283380530459221629912082859483971069568607935551256820944233029210669786603263091820009295660271654749269545996593580164861425578915146087177109864433990336675638673375805181260407243569890369470270613871406786567480742852267770060514138280339682878916673979637081400034549051632081559636700938700086135305764085683934120433417464896138189354063372938397815367389848616054279356412843042126052799933500202802974074167773460488557065332494138626430750598460209519011520896825678304451342071926695796143899439510243259347478264325990362044417812179251818717449065153236267028992022072448315611674968215644827347468654813218093485476835380729773337139878833522094241315732909442756392918854199629922276953820754168727442867199565986589981958064295798203356865017106793081252968872102934228240650701433382789942824596131648604840557073314751046983218438399091502740665099426572934329340767343401737107536198387328127854460838351906858784546674678961590666284172650185176685401279294050723947542592322257641613954155182703208010959426736722232723812152663306174402109662619968744898994382736657641754219115119736377483732650584087155508178615574758367561978137261090427998252557053673581503623701182363812671310421255989756419463349075535400727040110550006980247680883286149655435309559807967546957238142815397958790814196969734915457611635740842464069676302202716088852647044504445724152489360383531979900776051591027287342609040330661089831056161452219828750654142667813261582770005926239888419842241919413866326368302788882931714547173458446451278070100609170387748263864329627337921758582324448947034332833522790659065422237493830384937835999481950240308071896769967471317517787949883096209433138681239107338944880783141509299377477301206148033831415504433167190133538594002588943713131520753979523804601566047197319306029107761140901542354199377107237808755736954509274701261560026691215211235359670579283002354240529181651796409336616392034394679377972253616317632089100197101151206807689197218080171980585339204686969139561521236500980209169379590931796854958822178511894692830892485628807191246888633657269783490931545714803041013181128520880728105054777184747433448347062251135363221756057963150461268940895077512264195253482853942064966205479070114174893996657549377481281176744514769530432884689437870056710397821911630011406668671134151676523741780675742779790091892818389681341790531527673742945990820180250642838471324438001612477772578779656287071956398377527231603876513486800845545646649944335512715141796322264621265984675322858407761974738336366012557389646546080968397482264529442078828739396108946501942863490876187113181085380851612322008064180761122767234046534576588065483715003378706093868532884599377482054012634301562565583718559373796376817806478484222708822742513850723008164558609908105479869727309789417136566625552401878750154730623333292636185693590411837319715792991025502495282354781228334770052196322245608346691686394397482607468450326384310386565203119389807017156286186418693427407121149870024468133450258792252215741964789919227280321000572438166032225765868252621141412229589371960251758695130968953605742725138773871928848045032507145009378073984316644873233056509266927703393345574426372085952169058545537988412835201989608014673700294460208820143975137895051244210824281144593838614070390262291864097417937666334116089697638052160196354891926491815920106796933735542423618838700385425536582262073384139456829798086569308892766326378833937820075508310416384318429669129678025491881370043071177767025124091889522110564851245274678666524641448278929483223519745891883174387377047472976478715914864708882335157494905485307090698680511208910204722391117065748570431528693889255436236540180355350806789499029266281773257034524331412950913658662940053191905562036332396364803603209372720260705667072494634840402860245638867658915661494217982680636593272543488170030269402924751825818052759485305781602418579461285126893361291578125068181657665409896555287022354029273372568652499556009872036743970102233244130039207935171203920681306620456266437014766058826713540346931856093002545196126622705100573302975208605313853537269789259427676055984457642940961709511720817065402293427279771743295540397826715898521988259796763478887830701376189864234398611211949104862514822225464262313792481216112094228223589578617569432265455078382772933416316630173176445648324170050510306065017600609113662345884637319302158534675958608436633090791543386039716020980127458541251903395288539774375364817676093448081019491656182983379751235443729107252594438372066511111065607168673274681049929244406408039360711519051429123489343763549896180255288145071547304903212734994322496534212883723332456293744648170493223685629213862037590403172182223028935198545066238153809694478238903583019565029941214668863797271919824117499656989242936103895300697689699699909671342434645123490325372737415993363937549601669491703910135917149424094949783958869047956166711942291344099175167559642808235990955986884211410674838764832221170437695890239582904354184053677914739515565148258487587423155122134152907636687657598538988323950607471694544959780407413561972919743110063419835658957813256106976285368370901768438713663787903268327249635526815873542801852511269582060375878462889235931151509634148413054655025975487159484538270765268981232477975614754530255157220825702626744993352291984653794416593641109987291275264893714280137847472593069068717274565683838086628306710855313359172067986951981010842836170642626404616895508654715845463510289475775963564686245251616820835637082472933523226825383442625036680041825390309547031238961169735400948693951602065086264173023569095303870707602301220469562089389587805178239245257068650020459054091361901591869057781579427031350897165001707672290255767469304301645839027529289822972293491628648272227098345166865499960748894894236701217784705676856627307762525250415127015378498238456822753028326001947480711025166147169403040094377007799860928363157186818431256622413394230748609774929124735189614636622725084756735649184907475825784287002965252563831781745544902340385862500400393546114814088822269282162439827748706931394022261561149228704201389873998601081270967303753705397292824295832809286753857328295742226880982472687835755516969119992057960966384364469657172933760139329742568181400616760060798217592389083118311900288861066460465450193157283419637864329730570305053520178940857397798872523295341449301739653050542875562791908194862155608577461730232393984614863649435363035155305465395264438528136995968845269963398018966942584839757367522704906319067804455183350594831745049522301959412102137508635117270395406958171966616621405206848791767537983746871100179161224106950886515409314648113668045027632432068302534052146754762608021668797132516579543318424487963171165951241854538640971713482611534221277707813191458051178648977968356487466216113668041750799377957179101832608809378853604841273878814320820302477503053885899711099804402554334240925736773128020206412880797840654828287328634536360228645355868500269346048053970650046819266417080072148496197867350928882420098064153463918756562028080196401775987679548496941137206896296829351253559488209323763512896591796044452292908838616047512901371020620946614345554810501091236182233906016318772395904910173524135826669531802413580813149948176849788482553365384104208581233988493012678806274254019183217600375543912315158679327923444903172095191391913063114195008914631281956046285175555035151582660970610506054983509251385163803484775493803433579208951887586616647616238521488966307241894205987199724726028583727467491260935502844053171008715185525190786387592434118183635906307713485497154945249229174927682530901735115254378797039910948916994743171455695626401779230417873462239868637442306763988756741010256818955454259440550879146491686887980430135052741154806920962231701570425567197830851100595207966984029814083214053731216574870112176469469125021004099042806531162429975315396441194186848070108421379527987239188846380682757746592204669801153241452816257758169652586585817852054092781273372631879148344295669291710213202995252757118357077248699910820447177083247953185665823022984732862876225405731230267293903340554127991604018509094257513777547315168202518101669709849517204012310582790752315701785850862948258058430541026419332978207197778599169070614719955954773806124893239336097489666896093328842758409850000517685854545111670628172078240802335048046001858335340036653792593399688418642379245867520172516462345292557868635013171190330049691107130789730217656624714567527624964013076532913747304554624066742695281598683471223290646849155018665641477318634585905700061666492314339607465818495546098690932369278702905154960932508336551523230386264693590150125165429325489799729777514324624294206429020686072861028782220387687746350021107411422638743892360892976691782363944217635907886369437594921111839677734824194859562197172584882790941464813426836446646956317540052058264345786650929740174916223678280901673762555025621241954059385571819226823587083567558311636977677143547102675075874505592547006771776300273574020344970990923731503234053566694957171494491174343604515790017558104413141895161686769439369008773579409152302348423842183124139643955325058725551506016837545125339383811129939097942689125605920145542444107406416749419722634963961314297327927940807929873053168527458240930301300650133578749944624907703661104964895392184775411736227554444384148000427656483525103541379283970646660867919222959982026272940259808861331250356191289560901879507876774241112566027381076497088078625215493533193890606235646990061848559545966105542900805633156406741005839422652124300663295321904234233906388233539111105523358214361800047918954265050475007146958681663657467345128246145402811077154889548818663503982108451523341161966972781538299294619880678075157671043462370935799149443043788301114625894487299264116282679061133720108703756331552991849997228872954160945271618728719499687915722229188521359674995132621517120977566513695859463710881637982174333462362234837696022323391440958872583208302313246889279241943094005970937934893927597836536078600124002132252670564591389666065219967150702742241628091655237261756414606967162911684633473755057367058822175635067216090657847735285989691017727898512094172195077342159988785685320768447844317610039591758685685402772831257822972891269470446715388085071920155996433925490405452611009597428260770491025266744926870397763510534955437865224816493616830731026414575790571367698946206836983475516532063636610649032697814849576982870146157567400682259930107971358123504501748755366138498595333614711579320405652748461599377427506420096394983170090297304774309725521820582778374558263493686101995812027946150244801992805865865739175029397621851575739578692450652366130273367161085224352795152664004708511739256588285969315483869795617083817547537033788504003936178702428760107251170142545915219079384548892996315833349050032888119919409889732733709471215568076204325020156469306477256218777154347162286834484646593313826906815131845221639376156544560454345424136576714641409282737286289232118744861684774462028520792772423145764130049224289944784293592884785159498579715887752774711035853881541986591768716484405406317934545671659306036479346241158121268413371304182842685239720157906686459276592035832641821481026271638618321481195096203109016306643245831552483625117349022240987598838498551036387959836466359913175580047209566063823389266923482389376044621872889066884239600898008921123262201140428022382756950143350989827352704778554904593207253057248816073125807813253060996793266508157676229143564528873112291540165511455329789650253392385304715555057059584433845877917813214881425762877751011326445618608122310842475371783408202392691754583083994893390425560736803784960246264263717676313681385514204694490523626792538930729595755912748600693257954745496836099304103618101956487295447038744500842061952020823690724107376036383198718646533624097050237630106813710046821577936661539294876578201400768724297956809400591274014688058974918649077848672421858781714650472779240381810844400125718707380370573853790350755094434019620189937780626916424615935747487686409677481888199917807493334987074316516004456103089350712968834732026585473954767166201564866771516190651579423459225287765455889297889351178575182577649739443490138749660810223667385262919894574924543215545676924578701936933754678759137372976285270603088339607303735890091506749743346895731048842197004382390473502848292760824107232718971974200263499454027686606288265637652640222157957565659620613463463535992201716328545612108583426754451911429179894601487020130011685804615221441966218727231513632674548522795174440114035375630012145352967835225896063721341888551927421176818794541848801631252888587278463141723727155336748424411048973196778943554870520718021219340213954419621623683188276312767212972602494730393244831102507396373238444026439435137020694404651022521459383742034498624312045324277305564998361297167292109779945128192940018385767666678587250693480120195488900403622601473626793975666369196454262768076098165055153162007263456556065422655119320911990227277455866043396553756796723175568178019875023831467439283013090339169732965774537365036422587757459978830582995162930517432332205734125416618541022660636216747118559947399406081262518315520497521477175766397164009786423167179918900414324902488927018088559820686932604346445641772783312250834801130519833295923299733354816341620493056539820123487928718232355650732701041382162764128650793431412577328225787422773369154913605621465650631279209402739033490352742599324547320194031886176824568621178584296930481295821090092111488370968906750950167313241592903288377597115256728542954832096156836393932111319469224399941386704351752750167799383566083651877627589873079704806633091502510810815516506618436634329690978087729483401963264605843355422886693988505306587260615038659478375267113301459469545636176028721930900886519909032715241213825961974929332078692053142271936543737308103253251650563249109617476707466250725219383043487138907791143847839675991379927376490032474150553379360796208409536818702814884929101136617105652144334408169914962026969504517956613211560403322652674117522899399715699052496588231981059562371166150231573954483489690275499548229876025144323172245292773516564142744360516477377362205928404892426127173481825345619216647095020628160976277781914218756803083324188387347296493702213911119723271782183505642961400532507673432711915511060620578801261384443184334414388166842665191516193417845923953410296727854508199517164099449823591966342684901782443754868232160204626425384667253184616493844521734638653797614677088267394571357041542808476650044506084661992370999556733511228093851264249529276378981417007905124069788603857552527270030730736340490903880655060028474295193773773164336812486854473727347116307198842760629843844533019877787936351501787359966151652304203224424454821403015835348017082792467677273746663314217747366890120020192017153834308426847317716350618115728606540769525716752129374044063903116400461110002057548332902881596020744736852168413718933130242471572932105340228728075053114255105307048276787155826441367912182758750867128178922814934965227381452777486802114030324762159194515486147460905029874803423381045611040221142375161848890314944407777262934824399808891686245675197592424743807551435369315656045681474728495838161970035022647907886217923509395341745884703560579369341630832513494965592877003593766664819264497217057260525000715848961521420900706440552419272284184251664625657224969804871790831108633027247511324633650691538798966124207680902701333158100077849598958109712694324645102247762063811825755430118236608568594201476840135202070449804191385158706240207214849871176477164511257654723186354336743023723954092185252168773370981241085899022522555069024886021145863522813558755354063853565437943349897721307688173994042430756647222967055213558604987107311349831774974431569026220264105024043400187253502216522657370312536648873170196389200551780259843088273917834585600076503876495528303426488780849509210266523946208093814225390177059277904135208213043118673830747019346444126971995849239021871374481334365157013938454411459114292567612110650413330286096741173038758565670034227082648028845051201017329010470034889100941049449802944619581422176191828113434140862178696261762797281593623170447193577599324905374681089998989298747409624199727249060698924788296787328674749343698939739849106953780117213841226182429962524021608917907534695267160482738242746855704067768189100681852167336861345554633202457346653152737979623656693287344790844709325395347648655790710348530786908982884256084534824781496508421326785993308054668330159917647999042491368883454608124081266656696109316839714777694706683965317510571978458179397876617587986895210951730766485959479125138367170022864081644834190532180450354609047060873019052448319614494290344432142041904807789993955403617010016329184843882713820578816176066218782994394009462638484127249806381216278478391325423214325599291377166979529703120219016267504329459323311190899520309334627969261225063176543077318313485364625311416147217643341660126629971626702839818097912492262035971379926489661733674121978818776509321048626310745260817055254734044796121345762969513393620176600023395671634726763057948771340814514384631231552829744104480178168463351081641512046540518556004364347270251235287004555155187480292304591614612924985068687426618963579434397209548930275756057653005524510296128242185520376945971269488762987239001241193419962462562265312237731788551022313867870523791900589664973596490499656695143569743649423401449765595695975818282964123638533211662646431560509365468863302439438309660616575392780962186983131761572682417068589472009546087317355565632856098061892593709743411497866648516268904247097989688416752499013411971853020698944941868415994065486622469302351323216726924839176823663070059081486663852644715649280632406552468095095288219334929176880742328532307775610298779618039369820915963083823431484386641640704562758210608321473178603798351484621514427969139281440012502288176954638488098332155269514890677650255530392307099456164266540105747713474437010530608255908948596151750874838489846928547767860944483607302536584383116879732376849089656516023807194129275713007645807115433967427691722395815067401853271008301048236743990788351456359755227701636898788706226653074230792207760780320096089322254087959887596888846537469736082243295790085343625594490519299071969519193242567871298642299314927662754637225312590220991250885649030966577574753688166930895374292123307283738684225168232468131701135029986017180997376930731370172410110521656857111716461567523941460616052567489062796311868173488505215567448840588935968181608210098808870971560547887318322327884549215791163231074535874041298726327858963810739930016080878978743479805613705158163820319769099591223260060231128146532588568617007285595024557840781543708106081232618280238526122297226652530875596331717554263507737001203361572742474893520131024851173939205956327003821499754442022620550706031966941009894423074935341043178349070321083914569502708521101073276635139251260467497422653749150301098306863171526572134440551353496522227451371998981609811675706794914208718498742343167986087492808510190389550569243388703117635883290644402637441651356542937004645951086428061203942797273253703001270853785579634647214723463404711637984464470741361152915568420004688809173262703822752865033058967493047263799780308414537653668930719020596951617996698245790320655972975250713435098788942917953785484643269189411689113673243878749313601599265791984929380292883059530916654267514216940289257508495280200516741618244399420425266827172792263426174245092584905472043383765503989665986812019260699672771504637729939804950963349839938396201112606815388206339746403063755880547081930900063511241141694388823695241510221306899419366625698710475058638789229898402904241734988608033739291488880339499289334167231695598088771378747557216010124625565038372761926699405145203099547113998326719045224351031054962420785697581203690424621424188806491885141605122533517190200776448479697596890891861599469001020503263223376149982450066123023097820933927967816188898150734824785197041494551912016216669835355644454259828260175579665836481023954344775152681430596478189572379416860572373081555760150097178790614278323824437139618533108030607225950932341817499033800191848778341053995181760358078312289674250370696900288789785163151974597374309615951832302533269609947541261514841069032448043640684482581735777131510732340874698287067071728997483562447509802841524598353494919459730639989659602637532420245923040498477282914719668205205803634851364734074352777055109241760182068341980670123959535149253861566153950395095448511876605675162316553486461358573604275979255345665832531320798588346722976789549677655286981991345758010528090699019808866102311871472009544702092177866532828921975812792337201318595349820555301237023994753613387296113495373546716385821739839144397130927629931135737613034145272138400015835788778636007103247463627299201930393198893767344482832311480078342726303826748921807945298388179458686438091659456402794537306103592807778205370860853638130818572117958242007944758118278701368552222386857412274673746039906658979856294666722011761422198994500905238666337791453221378183723964787860065967772854777457834644801435748713610608237930467786192755921452880521773949086686257022403453112851500560087893582367453737121589523354334453846632996400447531591949185137737331297840059095712204421275039625077625869980995331487711788829027178042292484181742698942823273533099028719364872054861877525161087645013026584053934566331835572139601142491758403516926877897617485834875809234843695925002615027286233904243480720975611659006773779105722877501807940213188097859864068553820827569280997886982869388350131835881946973970159809982939272048372362671315519024718296332565930124663496746395917503141146369395683559417455933659418610165106346333401179696335210125115275170176478074734288854118108067818859621370004602402985557420843749806359413098803949773584505546714542981856189155039244937374153546626299116138141823709421526243717458859156051608586082266487759918611408713200321215533242167580744870505677378887760861888477133828259855086819748772272413751954675185072682794969640952382624070962346673203113189626471189607437007210599562206725538141464651830899737362171077015639179216396467646747510517866462560701642895626138834445344497573512876654860950820487767674748758126346755851047219451881636594348766345591882438042076545346679233842581322956909296280760683357726832840874732867248620427321284680511217241358686867717420552055758180155653763253736806301508965508781685123007739930667167210622542002181048364064654064581857198682707875464972640753884561249418438799283562027872725141636752462348547483780101466563151269206334724163796944405094445790305669366933724071397083405699631337072546798449209887981439779391099999362723841477929831761580746684470196921694990858728386489945675660500014760674906218357724617212819891168571421311416031932258852696125277621850355240105513702642120282604454056856625217446562546915365818592644561906327607587808628956516868831194720285833022134835256477134776038633942932635681068294363530251397052727376387099515215739868597442918769750198052511255643473081513027320861259355303317791553312630446070293416417032220251284021548455115695500249910611845006480044124904952631418383157509819823957661821833802219596762983637436375809287573209126140175917321085346044496008620278733622650395287419485619424903852923683637803345612188087668607305382259673179939447034738077912422902597223068017905575338305977008574500824149673141444426622060762562273527778691339079514789530023341746430106696933834410532346532877146917143461608130170678767757179819345526154045568346789543089255660050642356515270968563420885949216790690409339691381145238029930464724579685545010793389056178553427339409352557292438631848338534714939859844054832656735873476180071855941187322250401546692681118354033722011579965798138513477879293448658546075218035248436203242437018235850629862679734946878124612336982116778956482755826969320939302672450607898831498090517087421754422097907325491496388426480221240215766544275129148208612922746235598034710265189247682701549284387121039274485294023490691476412395971967455460335573551907311097777123881210860261399135833239475702941952737220507297919953302347990517584257125962390670504382959370858035790310432475478455448047143821382974031871356160685622210200899666657840325500832103623044589352741612135388418329180976706935839301485140609110842044936374493446983247069349783884641369203807201357192474872442400384792079507728065919865401750281279396431958673846389417556581523382462925590471726290712320793864600554085817817299502861630259131293817117780115296850992698159098292195789698036296213099043621796258135592527981225104323087248152525291753865385433525434007016500753423738726293264042478630350063468625988276038375479469622149515477142728053117112124796599908108299233043911229228860200902033007312185943020444190061063573619928326847201469312969956705381413465133568670701999063031696589013013531160803122669231796382056101003338471813112081762821896628067129919878927320477604954580777617776908805609496542760264794582448143726270060276347470809469819936595032863059981941313286774885653963551303226324283229498437641542985441544439100485368452150660491870022580129416256698433969690765299795222807859339130859229752461769144760960671716948307017294955064528067899403913378773587385220087957891156516601509228860807583458593995403821388011239136237784419493300511695531551697015734298610269152669330044027226047529453878014157960617832368656768334425868487220145853476533370960597155137309637846909088601012381397218559874443831768970172442841835379260806840665705059531849699910161585289726911041034669671111288576368253334212064082673076089284799451776916425372591134142286685673632459329357649634064248573836256840556306200502490339983936717730747468239468440093766546851418584645177312854709755802838708174325890895256866810276939025320222775947345497081721582777916885458944955718771888671371691049037573460794198619449754540696877263325670739481154050524785807149807706944939863298281179546924977235890568499764526617453219144117488086752649253064366570471658318657351597972292451789461681435158777272984743619595231403565868512556604118664319374590837126354561222793160915860442122493478013908487581199778971296242812856648722683550241542938040350179842298110572507467751945350375674218909437144068643869379230062084792769923098241271839065654122825028058991586323536859510632344213717836048769129860648485449514799659902991184377711988332718871451049344016439154581836496269645222276937176496183682594480339722686927618440265745893948104462363877351838322912160598850283791557017270318196996871511428389913226088751236938043146782410495514443208498868955056232554994687761148343351182897043117896267364488161873595404706616652853421624266547755367027111569444151190900611647301249197795054605328956323539574036676616611918759876368535011940355799065466921286466106733667310406827249210554510716480214270190071972420037981604311110261967521717088760148016238269402560855127940260879084026510591686270882021629971875626854022969141486209913527527134770895061565526426882294055941395385341146121007765116557843418130105572201645693108472383790975573125277671489603159250816667131855530041876321202961967072259650347682795049987003908285052992161778008476016487009920691479680869180079603083390006708994914571543963445991860251590830989142591094373912289963225149971276203900918656741242037865311010393705110404568092555470083599176040491298024324880362353424274885424472701327724820860390210654477761430524623965678396661355340427716429916928782609454464396213910069214764608540931835736558563305490591690051673972111738564068848983850999517268948677298840814588450785637599285226881899276058843835153586913066069604501917914697673444727938318823415128866673053601911441928417224033813877785395514691020883418283707793388313322236625555217532292116399973106890701857912302030252682255675041257876579227938306316956259513482085649610769538597867374192148961676179753922828387232247971501327266562440783528404200095747141679687456151953043691174902522096604214429662283430753954185947983766073760922337942395523672390747357026970929839503355692967012478065043333734200278118476111054897606147827720610428404226713420674156097855795257460450660625442449598863193267785433105289151594868577177387789365073318794679384170717889041319538665733883978001791527114147165702489994302763509327419638237154299353312837762610557527516920300850276603395376429414015678581526171249091231968883342568944209744422534369704592425615019369128565244851965601672974312927103333631392650598164109239919024974646652261258042724924158962480435383630095301888851213873114627826066401786907705878908536923084946513996570153968300514302109236378790709393559644140932385224987057049974392186332291840622486633803429309629059695390378898115154366444471634552573244835755645331009211157958123483566032887441762110586879924106974478285166381563626491101677128625112942239848423421726069784339660856197256663460290077342733925538438319262870590294045765694282222197178815616665870699117014949127210202404613660186187008907310063357265111443546194153972080509028665096443718942595170868042061962017126745069305723317587254134031223201062654426238555169685955999685878798948391029749370616631502776351693517451835513201764554558359858668826122844538260707169761538008385659332187267225269015484424006624221882581202113537242355735366296098731140112174354079259970023390047830836736373991114564274011850240773917245202015139934660928826217056882119875185673793986217498937885466952192987981349539875333514154478185670442344653719419905357705126237965374449313225569071079671534813640519097886798013890957663255930979588338658949609450750828195052120157653238240563710942389879428721115089198584627769652363180394332129089427777163770192163656032899907761200093433538846049046948630705543528205413807319258159466747777998807961074554130796911322533921069489653394836596101457683615196959499198714369847825252868763581800821730725097319439566799789931796852147016511401415643460386219589143534714534387851359333145342503067780252484748567217519517464837694709876165183745176067928992333595517965245093813977097716223847331582253522683324179500085491331050762456219463856391065763290716415640229513256764134215606568711531866674712377027739765705140220581951245778222843524973442006981038735531346238266775548725051957200327998098886799650025624627656945586339918463251815304165258277539529832481978937662398256334413909011697466846136231011094934384465948698603634282918446012368955628066613512242599360187553433276794588336527421592423276900014024303946806136239591291922996376330269140147240519252157764308362640399820952660882137894296045153001609869551340567814301076551756020282591994946881962412757278925238533163172353071449630066976366330121800763108680195604611237152657275231113102670076711673459601532028219676124176828464035464405548450687527263033212367014707858720432414685406428285215293643662364320379359183647696481815547727724369810498535141777593664104111103813206685507304290576420354718530023014787893577244363460474583689356411236043605533421020691781680076560060475879954541935154125547292632445249740746313453167526478690579739529073849638622918545715955371284817390640898049543931238313967241733108386541589104792589827732697050403422504060477706562781016466980366656450183188423097731627293635603860403361650990562282329300001594947564680830649694043219958098448623041539127871520430917723312541576060910037543598269711801714864425521549339251106055317254394341536836462993161590878481726338713632303668937849324882249271644653041463187405936442481898989466286929027559210649576613341227237119755818201294688015348904065677569617163056684628877073668887060531759814112821258401050803882728486387870008262888001627519440404923937932576007344546983082333962617769338839001893327209096796070596530623364128572103330889231003489674103397323160804890743102099551393293555249814695433216898830229942655592187806632654606686854871505873428376304675241818888806374248571961437172841436697990731774122427169061456166162850899080421514918072390144058230395021061004172914179941209091147313872328292437011858850074650247600433199826194360823052531871149612193605812541700586861000794145973918018460497409014902953888508576079582724697859344753098145358814115365550675388450254257893079272213566874680316077127269725643863821761521569625253285714939852989055141483317173287540031432016202236297014023627150995074753371430781646320356180111187180105023652520304217751772301662026032814288018520717171794914535388799369846640439803186648611791450476581314020093270171004920257510266864617934579463619091856051731381617217331072371532950917680960091645886867041137794032368206781159723863340766363706337706539673480644988372594705489718351517206679043915748950958481657541927661808037561257041410526243044822825912957468591972804292988914330513472452946572281252556465048436847142291759005327305372382211951766283223500208517145040647855063830394485558256532292102982980856100007386295553014452194387936313730446561469784256607423855236052219720580243562236638447901734366691000916019730223338090310194751217551244913793165496144080705334287516377793402435900866054289307128357104837379212861490798730435981626911333836768971718876209596839686571725244809336347298218567301698117681318648647177833895419693968982836976319648753422018551695898486046485597544607359319637373902366152126388987161317743910240960328698279852081895447242012749985109981666224115810416901679840635556066728498916682163479855284174013368208936756155499461376283753117489957835740391517394916164030193366296875155521138714060809610002144645603809770349719120390490130754960666841273178523648344383417032146935180338198340542101045186032433188562460985246207633806149109923352468397517120026664527585903266022393794322892818921056108901534523163240313806362123598519206543421231206440779124120127986394320841789700111865754406218423871882535906981232787265861573933453572789656518845037704584646989162428406942921939948238114610926720067594505588640390208930767974378155336977531946937757057672141507364715189348578450167030910389631214032297286297614995325336674601454017213902141985836030457013654890557798928651235826467454630132953113342284400453815279520663363505741900474157458465819866795767301701540721838108471910843323458730462151163493805854175027654055124620816421842696499593824270933763378322855890771257295039726623461569390658526504802985964058273505807049074361213064788137066227708217885597030785287715399790609224759768329573312197023361554191865334008797870456129491956920660921521299454219886551609757753796438619496723643150243664756043583930051698431860164331883816993530181139407829355517375618719650425112322430278989463479151668270801264029340978404336182998536757116417560781509178292715825568453674176473016688188817186220344488125372111580366405031986534281757036486389509092616294986723202468938556540902249473905875570970531210055061515730695025131510550081978228161861947599575137250433628202461547770043011732519008225609493123616591896424333773302663944120961451882752500931604861519346286253687230686391569997092097514422416095117995282348537512960624122770274606318628122260392093745143655321930076437194961125107672829309600081943648077886955385320943912788037746634326789407048341043643520687082500093296921487414997001273468328561739163562117327551387034517662815492663205016529407113022372564095376014658523559952230068221984748010642702039071802104377923123403730376159404766099529482979208094443950135512320027103594528155791126144848256775643164059765214446212676166248378394432335692606764995234641596783638225160146174837118696525826380910250506614735386737442341766996126336710774273566589822860353018825298762511826020407143434900450590247442354099725172371145877364697888855700525603445823000636575653012361432835260539520233686606845658373832889492436171542221822889257000820751742311511559333424005546805418282007031995984570258019161741570179814378325577236299438621397478097941438621085463044062602597823552837932500550852705160516066058367361782514126650451046004006146741991024684037792062763794624391828189024850896415504417434613683788645114492720176609353863906739837097316009490348933157675576387414384028848439311532218548710305894916912251435373235230759772484275701182556394586790903160668155562623523180526464518432011402492001544251036089861151101078169272578907084764009893728877385149346826874978159488874934926692595733852971030501106215054304547131730123544600237065777332742297042981317176095963527728028447222915076307527267933077751112648629316697512353783353396306680301515115579918188686399742404850960973818641615813361478384428191465452664190143083052823758105291015760008781204615496132944947032897000200049415224962161015730398756063478825257412165619792685626834388818975018078225463853176610410200208845692847265143451492686102089586570431623524977523818303681673593031188055451915689355608865739363650723509751939493869917536198945806980491490784543342742881165318773358955113834089821788282401474616360822242186290230542734659895296645318170285117642440290234298016866915785147620824555279131209152148068217462254688768279969854974491576747717891901499890266049167947485113354667584931331681248378088887255060740897489745370520704618672944880428167784119640436419634017103287059991881340438032595865421371460909784052395267099760057422847244702924537077007231676796869902817576480316553133036484365246456311491372349177460621095937213885600224110812152394281500561471744967434823752691425046866998969620625300904184486503464352696956288635469621535849236214303372835798892047881370295028532476961984960753904971623156215935393288031297254274914194582386119185152184026982780594578080411594562037121574678425850235921314986745825888772472384248378593558187231427941071381340811734555705307362008235818481133884637999421074255064595437502903143532073631515326797609905085616255077673760429251536281123136401587190907301477145933309227753664936450859547669722855960661762080395137872120132610102570072551313902523842933805073451387050952918513675343082216551200083117265132862919414161433773915027998525860097425340309000752957272362958111180459899204825692263981258720805301617170430493208412863040364448119484268848488695984306038890902478183856041537507758267722749753697837850326250779417522521652557668283183609543999180713772083379950387038274884732200258458958381931425791956458654287212792117325042640118868389236003958920882717607130361817442287782108586308749261642167176391494788947872830926854191396245414910332244134975109718675279502343827199319566084560504881890182982120808313567939259695157600009536280491550190622070454871724624354124213870178958624365824760198951678121433261288398714114778752516922324704666715512272548877903679265155161157091562696437371050410645005059068563884399014672492590060355939785132618370487807211926685723076803460215810185736364542013356243385278154711180075179767274024747582773178675742162302016211276431388951079864290518546491429206326054275208739206809270203148387379188018960297408621131610767535410874483733776375163564041886631148752200626087407050093037723790835261720594383215008185334555353421065691959897405050965731917798138759469927782327178126570788003607523386231717090610509551224771084067160751928634107759912261609028128410340904421782727984298825456238387137779408049734759206874067025591807318401752290055844426991645760852202923786194552701354122541119148602485025848734429096750559613280490932316446430357875319809980670735970488810673909542235636920255332685194338717477182569078285286757303751482292678638010980667015795143218256950660869149299976660811478516914345292983477691036722672715422473299981164691780978796534399900914200108359378824924296461342924686641956804899421523274296040564916283440862037013777975287678761739016048624145489076805987233046462913246841674797072834443415876391101860480579814307778817760044605325384765428133964368748309516911792701437921088414663923065451027754364280558991540045214180286563091887117881796008625056327708603815545071581744521767831798590072729944539629996415741301424971635320309222021722590699731017821097283181133525076289612610658173761909230749626865376428892285363971899104430611801249712679194688159969077256798653223021144106410674316478295165148416384705923193444303799367724914626645409868995943412495071114540468454899175015267255628783247101771767881940671654650720557955855168354483907319865397243817783699060655270533929557700049233590688622480774934108558794868350363360871849299811756927244038613291312228254569153808989622364607032253547501890705521188253387000842922304947403947864663951809380849885021045535064512730713644642480770783377100744766307181996023496780367309502245105921135551757171174569544442817543321279012052200296393441602703405577847266101669727396122313394963667383060274080613219082111467136923278382715499918332708626280491369952453934823236873270676292376493127558798218846571279475047987921829453063825765504034723165811183755595948740042817366311695677641482266736908115572862487476587646270325114778553917387860976184118528560387068598621058687056826273308147752775112283657918159386831524558457475657504117140433917239247350862066005491460076417686313563568243775903385874103591271216145954513860383514524964597750099973894263815151886850621998259172543851580722991325376319995309786085310280489477342417500244599159797538512526476572535583927223380252365824564033002071108501451408119768932295360618862663182207567581386488364851934179224440325181754269003104847733332335264413714227441539842867850374906859427332456579091852626150963715762716744325816202088805980336549477360684233314440311190353410865061169376453979300301627119691065720553983343536208694972664652303730688972873474209321378340865432622958282483619813794396538516680649501609147328361754012615617387513399878325289110137685147308505981468246566334311136694044193453277797769156666094281116238846016437970571511148339857821791774407584459266363602606021893856697062786279204082373174835033459480280140480125585905485525831021944953424529014302824506176788592772790503077244216432830838350318355383584892081108182489087442071927325124278009933789707822890747258180240849065124925091919653007310516757016751037157437709111478253885419303161845789780078347061727134708523163186136813053645228536161190621439212714510974694766745438894838074060438053854337452756533170977307516341633217081491301405954599149403378412975365297646405445569398263631545711827819030586411147884793682666719086738750610072783737220639588698843200492636415220646717058229547164608717013436475666320489410633651749450813416573426898085513667101730274370829774670992442163054595679827243516667536103222992378110361118663924758549881844209188970103510989507957748025442488962375064278370145772584276738103283525588262923117132308240096031865067644186825991946502702892802735869157375388152165476930883857894278155360300903472016168444231511866428746037815398656230644344162151950101436227196905432031610225861798697711476171729736975511515938789223031740264343528402971812810764056703997016062308545511325932571334800578289062919912335983734655061454427321496706411630602714701353941611966259542502708153685560376157360518522985590558795275306508636182188522054592220028609604184661265264548809808863810564755369986004980710446329866952112121376968168284400166770144685479222128420705783908834282818763696412652378510606786392123628268437741206630343649356070929276003759970893275404680001341164272006108193654772849480148479505231221825999378297325551925201332296081719186316704318566687744494855991144277133979896258637669937371221779394066170403955387168643094973964908106654727706367164454760967193514778975029122781237205968286387966254079230127157585477818875128468270742284078137264264404017937074577542046240317113117238400076961502257464477080943571945968275539658383020977767145482051138355580094110254709467382685047250955458582676287821123611954626074010701726174834149205539119209571989726727557009252233198692855836508121093892550740492182043486789694973039942491198819143594023013005300529062779156925177665876622116951947534853554245959011397002365576411584737520191088198367122439099466756456501373780354960813408530450220160232669139602371864662125276938564589216526773102567203154174248276741010911737372699101381612852768575808693206337517338476215752235775968614111897129631226806000826492787719694519060038284525040548211197669053420125093661803660109257513314140857006893041638424201554837187303170804398033118230556146461532178229205062576452421075241211024092984533324209246136728721216224996749438757480493168242868003323294300495091458187914956219858697731493073053210923584864334405497093909918721309000960551121597714851769177541025632404792772287236360088148218700544578647355607511052810422264229623806986268594132992728166521122593274373922316342785271429135238192729841310545621955894339056331193766947781618520482264704607421117110249217171882430866422361533153752307005649594765430888490192994402975787734628347756355019525646827911269446319321245633566202140581727999228764602462840775516716213214399917516315754123104648104723544885506146088786804364984973889459625129661113265042225311283848544538314050686734011455817333698479522698890535979755142019014856064375356105736140365533651231322682156524740450722016875198207536512743781417895377720908013245415041603121888920859481014600398181880493587089457464915567084893728062277322142932197339115315851038946692689432019818130816681560958337278682825722049811532226260713339983949399825115449065157719837461543867888588593276567676748613587801481284676531153734897452685599082321866184270473553751554104144568812164891598407658294112207419017986330853066194417551689951075117244458021416095500630452504976406824715144896540952364086814679876328677356445312570746205379971550970428371601935702352242784577828432534626855522788722512703431817470001491245003340419670071464894191124727487204796665644090298345819355247888919366004733858209285127371296073508851829002057594818959171926938667675109668570235208001005639094899843441137241828456355680395460054657494146473201913773182738596196923033735955832248541892819445272995158310942269713515025014230908883336301258979148872312034224271893996376544474555569337903183134521356523208437310838976639501168898262783178470162739932045939262974956189192421569590778587916229381504886424488877427140032787345526625559196278957610608682738757784519901150620882296778599189118736509572046349218906316624380325404609919780148400933321370644189429353759306258372896820454687899103429118258502752702575189824569478107796428709018855438926689722010700455872658989637844918987484091165599529215731712849881430708438425174476705887563940582212309155472251562431226703226683775523093751513527594895966805145283846100056284665143189550367879465983347580487120101092312210771703730563494488090111458075088979145960592481763522477155281345080785326007123217314901790928065325686881290191822928263511061011064520750476606734633175896875955959239017503029109081554185315741606158305559860650691684037721038528508008867930551999682802565712749489126137719572913088275651674395971801864981826045082220304126375970510730246333955856527888807179396604674885859226919834030871412996493421731792374105036020004685542978357556489107867998035576183540576681518006789054656076596205705766428092367079972614745961033444862185155459040710204134139999371072131847799120284939413364047146459169655866884753239056381434012207739114552645053117054602210529477087094803811040400979266389590323148166919782466284836274567575490164281102218060980058199724526512285540478948214636435804303464437050704374925055150855498931494325420211207986542117570974048068900467683489206744764468902367861036871568100314920067707839559007076934729591449615804055163556364599589460612914199979171795453046127480277538782549007008346518659649914442737274958433438123696702208508697426379162502950920677237292857673917646286740176382826204694193177691801274814572602162497006888070678702345160928723268280588657461295713683747619380905706526811232317636527648489181869959644244523827576440514398271836004102450718055239417545123797140620125531177819284302471305769946683459524919231424679108002391834816333926397612067202381313427724670748461858240607919701932720251762802837275998792362984670991503791786018214883804796461876701351214660846756257726228475658617890163003472974326732298506121084192924371628145056463337129147792306848934581426120766947408124330696416246713583778032172300396593060005833667304158474418460163802654118943037463507117894446493298528580715819351416711221301916757080322611894563009626263917538888388110185335837155483293458124070790468815602105102943636151609709205985956464155853403189741765748597902441180198616348052908532100928261278963864733256284281643734401487029064961839037005229000772800704618128976035212183536385361692738776626984969781326072206416266455573151585380268044176884709018520497876320368562501536046031507969389102566935919480654549034152610447299974955794357337844520568127981780005772883967874838814665240467289959727172773268681404623521122559093949795167005272205284355333173799544775230263140245633300407267930606471875335334815626103017342968989111827411542773643213446058994370249806527786071524446424380744181795825129611596014071339781318286860595705554353956932965916180631817836573421752132257304986512902604244506456878947903495456602597149446367608242359913754555704727789431366384406330794759878514217544715662789635474606585508561775518346944287400180163602793255489017329487823482748164681683779990709036481647114513881461868856882787797532561568363886292282566769891074316286756498610283828253394864196062896129222957245773801705548039526566985469547756712938524071502477635597772959791559749309120515650003238826066826365787340174821555585885039132327057088612603497020211792619539948536600434165336498609344308459342264418530092512347727361738951197718791521745328903688788936262862363455270559240850042238616583610954903833322376824074597614512810927469014189413998282795861806633400216990897364774544775743133170080906270007747379519466427101952063152802800949610508108836109050959496820034340919313592405186430401148826052180966577817082736577005642648299671211384695292829737436511034882165603822308115696894169262181152750676442806564611689901041176651259889803803376772609879932906026662884965807748582671732313365397443550557279813429938802031674377961977021206647338933045495991839414565545599190958993491634421764478929300480968461842445049879884868737635685341525684192337677306337877421676909826272453906739803651581110444574714614474558828965227507460070885166580733824579841881487670501236560224779752721887237904684005473657880710992890691453881154651861586055177508666468903546653960885501562706512417966886345763982515734289375482391009083720353423758770927671364590492059878999384632889764578648663995338275674185510926369627326724869711502244822902354516626816940069405140381180146999615673794551697887531282950032393991621744444484882598436788255156829227357015782783218851687347214483122367216776412250535486439150241775327664496073157667168670869048031258790052186482637375353952134206352543933263564331919126906042263138517164140545241003141934153777958751926968744418005694043549481786182270769797019482102704785014971716629513870984785942181006303970264098312426627123308185790907056522880936412074579623834745328097118945359345757824189352492618070097113368182020098196687513021081450621311875371188646538311649693956044540322194730031843589376841095991513458970648212613625354998773417193766527137399300916867685860336401111212481633236349989285321464612642494152660719096058992152521620652959413128623653649820733131343934192961039415668639661465319789548374303799783528889342846842158285033348385386320406058980189715266794596648647072455914071862818248820593549484616125554350481354706019015555923163661754928791030310933491344120600442511036241681845036082281268478776156613011627712041365171888190463363325817719085677949903887043526617853636607419833230242905133982936835606133551720533498408327468266726426172779393482206071709787656984663205292982200640713708978651057967699235893429097553439857028216246429677861389396624302845855413354823827209841515428064298921052264783078370237630468522022849813018223860137927563709051817906827201422689904934375723655204889903390669291560763818976544655059304286476258072561563343965359073155128725197708427562640141479745284865906307646708686621896144208971148478487126141079043701478193609537053064803155068467289927015445879254212443136821602055828047687650126242737786721641698231492399904997625291941058727203270254221317232623886794375255853115469625337304423293339197396956928483782029413066978463008951562912631343030068529689948134340017274112043671981134763600141219517924360274883602094273591431048437847923773027104826478618675350605341577625730494629221053305100410267440559245813018442649604812085982765383926869963616344626589028668336501009180851081712838391370488208433317321549519197200109146554204421901716746414052576672213839579068125110490069044385932329573273030564029695132701774506207663525531714276145334316773699855041710153119136387350691038346931196086467455464529228700988496090284440424455540265454621799018269944062306796724568245892073172297448542380202302249305615202922492712359866440806779681306238922395926357807535429137472326529534882689931909659045890180768102949987158949765391289045779318954975501025840121970781120850533233966507698009458680705706679608144223069245952896063129897800543813339573037836130727464086455403350418003583694777976358176270861030420436494991504433770570334040526261893902599181454949317546776804183834579523423901044009649758014725863164103191868606078424365347232687324333674002649159196933395269018913897709700094865827866809141936176015498218826708152263178225134416265211907638595597587847289346009509827866445244925300136868584272419061892195345032867835947894723812112191887263803125454500948581093825571654384348691513236474358768067379263072292583749264628278855926041248638693173251086912832300040648947522821999953541169101836593762451463823980709623667492776321756963633868015476468156161722880404597286141865768770336126096019201084388059259275821983121762239331627048831450630094982109709257666645278147335859981254717182904801594627811634739328888734808124770091634958697538834147953727097101008475325711244316684266925698725829024211109844326838077880200951602917861288893520075130878716286313380519456216525120442585249475333617776108476002928721014503205835941120500009384052540867386579033295908467234702410555076893439163345903161585610842709369815854286344453477559357615211852873432358637318079309641887909666265340036170803124690929754947739040472571829469736900065790908262233356226364144011840780467498776131199082836423603966089179117829467666783652279766444863333067380118795279785236262320467873329900901331782382477509719401822537475424150228459006919268454727786773065985247556827859463473542652656591630507771836416435806144019845684209512485368028038352755438192628644735585875239858496933199348658869371120570828924380554142140658381224903013910766237228866356919372925824722600623312553048910404775187876876007839809731958053513577726727599082558527276387757487148403604815434921844911964271038543076542653120401590562866062487356758067106987150867516920174378634563089391040729896328760118365285804105585038988853277978345472678013161201024780278045168331976607288646821719157197854529518594893039903883004799824761451953305926778003983238355407215735692536831212240845034933729178090440310705908605449237565558149410215277346520382732740676320063720590025453170039493848964341481114171945277277800766910092861518520852104209471284323329521913895232761863848290058231666206075617795367096676059931104235988451329390572476209902717310492904890921744581835667685354461316972890497818117765522741145893736689642366437280380526027658375555684987518321327251969630310087032119688026030191995605289605632887195126371413294593171337934126708035419853261068453866602732249182311325444558869246704579837293157766374154928148980207016677942734483246491513680301427303373259666022249774242910239811647462631939336774119561186880746196857399269149343231633834558449569838231351883765596186390304542068516100065941291662384732274623420981126171123945805967674912520665608687196575682293552248152261727880938020197882582631215034235863363972051298648497368976528956629578495315209141529524326796722973388515806984869682242204185574845826600589255227311821039864853859995618288408427695081876088110576554993614665365450838794247668699778826493398537936319705771490365581467085054785329122196485544245900078572115961362704466696535291869074193016740330237086645347592661881972212497958819396123072069102290431477323803302543568226590337445257647355840696053379213169857863189466124146624541212014180446721591779322056611391217882343020808560456441957981601214335583791198909128526377859912210568309966120572602800257091111696996409468557143159101742545156442764274958047654105444341860001167479827931706100040323104174015601459231950929813892103391692842802096549972157686912766893513893763281555393725729243481753171705157872443354270447989822174022927436593166125376311699285558410992881752368437851148244543466175850721432621732879815592899543308562064650894349593808349638865811330757525062397038125603558244282146716529445096890612367067723394019257738701248910926136890773956814353934942969742754616645957589832584448575771113371053289387042199691987216468473946016885435785408921173669090533381529507975486740737508813829763971300971212225143860451251513390095996809892189091444474716294562760623327566694069025966525388810259857656772554027157387520227395806498837328304291797480232501538143374694552209674154673714656856793041818563099557973809864756033681184777882245983232156077650939599956062450432420894348947605088872763183250112408008249231351676289755703580033697938881822978115408512681616141936634241651748190977338449710190987973730268414756947679045593540256483136861361936372119994934067438829417600241986045285236172700146550453990073802639121084738115495509772314391838481756593710431094122216198106737777388946373551484783532957433276168496953984768109465102103708415666577702911436296461145609879213160332714547942589467866713653019919319714225351217584306805573951133978342063128657684639990383111963158274799479809079548321941709110646671623487103725983720140980239808933601347467904422887745128555399249693865737101753326630129196226467475629117051381909260457309533077572784516008373401344904442821823495414311326724581040681455580635436790966915059202541032048265026316390065014682761587401687850720658555799812703732546860341976359554136434949716747303656539258345569074948042656937256520304761612433262429595084275194851497068655152548125102466645469546821692304319324672256699499694672704414060898818027107612707127933715866959487198319149926814489707807812106713535474180611712990627213635400460774985999116155718058925968743720474293394483092655697864652427045561312422217595558319734906021541777017255443518413646441001207221409793908162963607894267853895462766969736910393805518329038061819812602200015805907587074665821934140255501128527344552736509836384439113567274136706644348913400373916148824016913644893478464684905351440979180071749531189717831261245348690726515555476082615753996742374907427859160273970493075263105282171471492479502942892932877008410470798640342518711364903851846129156466630190878400687337662162957657033217182143559027023340206098447289726453282427298556818523546308006207007769455743314447230515297271721802043695707948011595699289631865217141922476806974530067375044954137302717974342868173008215639171052174416729405491764708008916034886413622354166622033867623449183871592220990293247458803529361892242131571372941191620863933811776530992939282052597957884152916124366276206619135232431722597182864229914558448016836106178475356789532822154044222709648442394235167853384101485164944088235214754436395512705735628232115386074879371975767198785253572421011420608697241112704645987144740730706356069297496054831063122037192793782413470774043980124097096180012242252870092523893791397935315602516665637137802093354122405911215229640635414442208947519974860617067629767542014341240094716377633547839362838603869063016577597017234549903564981748086739395271807159990531045724956914344377983378865594309917615906983004931594524638081057036265393099657476894651709315283663285373367650350461586952809284341060423786279444433768433060790084144126875990243032158301097786686452929710713243914287659414502042373995751325902577869182559265622092398182476787863964834074814916295606378786571544384172333941121548731100368888730980705462040139138278057516937736407626908873919733795910577167972332157016204874737814019137222445361227881451445049323346151144294356538945305634177906889913697762941296728877884485707681784899529426037472396195644245101387834032110709394643314181495230075154442661419554809627169251033887319263336939514207208449665076476979983202337215432871023166831425699931076442072932903464831180709264146941140892816438127342597121189964532263678353366359341750071406512224188549203627107552520924340176872355444737622325772138927762526044946939592100057525321678911071454836237348326799212899019778320377372288205966087899336217030394818851514003412210527896166849554615530633422824815294473919354961944603880999862852383763471508005380402170088270568830736855032478596604145127980998959929837819467450472500392797943233588236929796683352687051184398784627115714353090906519776338931736906851521039552161960168237667452758386506394148234626060429555818889244556207437574886970417016655036134950556106820254297871998737238862703799157995720146031068456794920239372633373390453544948244391465122977601403822077094849456107655360518934002169653372603611135336777681530441926125215750066842380258778451622942130406123967995892758345639970028374095297437018918046115128157975737027643795087002456015789127007311280802059859199029087225427424785313659036076378194680059841575605006967749182669246674100167180592078758617555356904423875403544833319044716589470405334618286722136431001606082066310959948019283274517386696285527356254045577814797170091359265413572794377602204807311638394201569798464093099004207840557749124014568319481148275363133454332683113977313292881231973261927171829452515686754669724961091014852366855779923142603029462660579942887897294500786573968579815179617303589072751244528340045387941628735855628915749211005851667523067704479488746570327608314995386424396521349854666346460535142615464175160265670891951171829408027202251059582102478222560395746587180485465295688350015300367181547260824251104813916360659073170491005702360104614572108539234864923246821893452023126888059777353782500153350282359717824434832060462498151983174560425410277048016795779024072573470480569809562091923883061319025129984617007440714307652186500649457526523645494409390521064612036396812163783481818463062955848692624240350906590242343784929573475271164378369692634780780947000751331370102905945030353821520816578774530511137288542594958620722011279858660441485599847495089822640556725059639287469586121190732440403191274821730697922430986870442616161256451191014884658510646818856010133216123555376654731235495370175968970692389273551753465026024339152538286001032773324707040942875009718261018877530571331942497458615094428291277180015255225646790395414578598902382483594767444884060237900379078279791707297911795893713055183537692017036832160688912258757115882732423357198753710091401213966796699613599545697457540508916503497198478750924221960351079787242830381091929902910013521756054434526789330867325801764935871347105184068188052720137660738843890054128099325007134223907208300542812254298069408631211072171438513110135507701296123338604912169978397952808715491262996628694945362160017516255632849602357005103548185452418156912647355985522792666523291809989118855443826593223259188417051816439720695218835323719712596118794550500573849612594400385654320454837095849497280097817976595866296903998252630748085003216319864461937361734257324370135111982379461891665697761536890200210712519295630935802420083344930403591030523710813612285420759366780020988183372607469237716495641960921501547164484184255073386495782913317175077562739614564758094514433971083643109926238911299759171587949237098270420801868931387574266760493087011564214454147630911334008779918475886844312290025589598262867804593430285290387289589528150956921654355935702677257712548972956018430363980212577821438759951336038015150583743301153163124962048842527338885928100888202344539586483336787205099581384416378151976404488697905221593242540325346157884484761902412649889355074343496903180268562876432440337580282992115009450665533555188935143259964649154304799169171474329225800092748242637869248098091449676762554884031712480047730063889942747656086571012910529018267365423952842432373210026291054454220034495619803184952967349753058210769438389901977093796240581810165687484460202586255514046713206428755961351607240589367686688630749814985394931286298862753766345728683693816768982356190422457717341996912490527610456959050731412089279585111786495282793394849760389270294900130724142689696382348930007426810332704269593176782179966895562882090786403828014468760617953143654966571437586590927097554914406590774060018296810970075056910654598313512665818795945210114076117949598620517911360886442177467710644706457580449613918795268648615583827408025874634201406106136040628830882393291841894345552127520893516408367172070020212105274257079649426525606900318721437039198064209531509555418422375638199679578610213174575252328709230292117980499194012954503019525752335260383429121050856111438754998019463896059711868168907511615205333286677378096761461872015698742407268648172226892670373401303985899200001522593036785982044846339034308938030565729506186153199171131085792117618160767119548908578746603627641816455617343083606338914510469396277496570090643685879283757545379024806231970112403614410924120967698080126949997032415343179815776917736864024244786291997553130948898314910460630610566497788884954612762129419646661888889571606227265679720188554361913241649646961092809627575526491470340050825141263308850535966906498256397362351827724535971282488770539854588310774954185952225483574543209915940370359360051846280841354945343497948762921038830760417802587325641652077855674580549564041660304999123500204578967726939418922147554318383959128342299106748906372285394825751293189799688813160248521772926114099688902092097042030407881123148980204374767454333533270461533658811302342927023407712141908360212418513861347242452508508953523999408752292938661679461483538904717629291580499425758944273734164637464427668150359243714566086811283957028580383463439184250224233159198816353874804959100128243294063258558719816197823651108247076264539764396525644635498189634879131889913873559436611432942520274191314903138354475970895837729020934062030562773546053015597418479087955619504705600765770324731318335950391708255417438971535372318849926342060557331985860671107460467456298690160321452938908536110409801939089578030460424154459006962663859071912152728434539650460352278389796877392226724336144110734380575740374743730205728923185487649000151597049818019073579445921945523439727777150513730702454126008049353499980455565410182990480055314513042348792239316460002118994984984706045640711021638933226844013767023653472656459987632051376482107491448863503934890780015360830952337769209842444240283754517877803494319892934267850543808800599749811170766367651019194120378431024084334234392568510526794877703219921288786384544107922750663776258877703719940421033738373962382880887185570693891597914161270774437239904991141967530075550769257821944687689828060461102354944407332882635694549191234404095552635813510574369833848802010119877639593766838874378840045742119527934841631710424118995234543927403194772338400401941708393707753832798267932578556294903519206113267843642262641453093981171894680157010581103659678290100709924149096933079302715789271780643397108074127830218588382809957203960943065578848822498125139554694761704615061606016422434765189396174476023442098244343293386355054877652256276354576384048254758921617308134987378926481133280301577604729954038276301779656618651319404880701298473504839760156197646533310680032970060092386508840056845626677870713494487627469272240984480856856697995653651024550248090953334237401633266642003107993144495603177333654347186707873181153130565688457270836200589836974051570410998810310475109702368295949852415261508189973995399953200273239067404403051550748349675268843788793475358144237160607905965483845966325663133757854829206941826485265283148685123231607817355095922375450810070509127207262906460466099352267523802763772654299749926323142817455120829526409088024183446724819295147908356119199861983237485437240455634242987585398697685344120358554187968972731780560397400427317094940359590733770184406601002181267831792122813826768142556109130007489727897805473712867245847512132109488604778729351713542840056200948250666503006016015188372610779753149016659874927647595247594891119417731370423532431079916468852081976471220145814949015471920570616077836092956314538221423466493304155723679017657248299397856319949994608446927379985585601202045410029286564786533243332301662768218618820632920382260278498218562445294733672017583046162300182828759704130591046443396285129641132673528498991884541716435188915741113585651333934998708344968705067840778317945576817916499995319379961167380216994802079604555723336032168342819969278311387590188551907114331834255539958288404104930115574650546876405147976168627058978641712743258783731226082152661784820330899866704212017410407151179277627461894319065867429646245243388910948755421810538684637408287584502090815760905654250178188105615016335161816051751675631303580502636369530096504854404937453891638565936427003189261390216119823338371079312190497314632849140396718421614694425948083363740054059779074565598487310450062476843022753542353784252090082457193822420628038307612246469860616792886598600637587527992014587014733169845619751882441227330416486097264421757126003266102257726449691233502234187554106874987558115389445269866375773918724390141157928627764999530091860331711094274790946527395466857801014473667132097775625783548915953080443199281461674578908402242741421572119051900001163924810260666802542026586741059818276625944393176964400980159308187600417741973019601104457422832110202654895721566942451062526317983370475781484782696346531224297128386628005504137547348177360855797346928475627934245336449866036897746582922444022175828108175205460576380260989365067585712435564303743769341396808118128411998458563117368247705145269622702003683875688907968940006562699251934365982180287649254526295185084978459168852110872886572035614636532987280796980748047571967049990524379642666341573272555943726670713827084260752493353446921742604538526452650003414682595123303035855817107573410759798107284783693841886673812816281628759410060370064842601482952874750817566091856089476502669549378529368924953793596720558220086351878613021578511692838789905295817776349366527176621953212186749123821247333414847218715165939895530190458048098863479695734356211264599804615679399532135009480364165228132056454496496444832469159308894534551452297237690546962861671443290503983610684604623471896621819087095154735417408496377134542173990199167753607469582261742875281932500980942441556045840377067250532401606167403671902465867575042594477877312616477346101103119517357981860356619130937067244316392579967561227546705629069063794698898444361233000370979589691646033897387712208562329741521218935374756717170384044952257288549961278766047238162410815293442139877089121320500654117204234223561770381554260907469934826479888546315384362360838155647602085731214542196344897837820199239996640958756907640559356055571895807537921586144472134109132465141031490296330865247441749495130958583324553874056849481647535336566792946737428365917579431992495486079956285814631218334911217145589147720924004832958826491832570309729125519602181865972235207920117806939590120020649362340290288555365718590794243690823042988022501401976443402076069641867809049619605538000749374507759839364351765259807178974082265431025748894997707249062372180988667680809815534146158811982885455296198371741416209536733109686404473260990856781205146156338453670090555611396820540104974887534535248889133199020779103681440045853124817947404602509902742574016458659436349783206987848581879415921182379046555378143383693383858562633338885502431741215121405710766720842268928964652015438763854336340245875676269911948219178809805294774440186652989910588739308178366163454175994862785744133369782086768374769338576385215640693217433297179201600230109516331934657258417799121465623724951448665715306525035057051792353222111646854451421365912927530320993795763413310163994247825103105499087797411628095820663656952619084882468999354043795293271678563232764879796443141054484521898373439042972938834125902443113467340253085739949513039759849968581626771232895042062988618750245714275914375679356686231736638858609961641798548663204624325399482372061548128895317733305311287871866998133714172964662092085956580786419535369667442443525727325506182508876968002788989710212084051724990369026828253583811058390027520771961057989607570091083827084233949943535086448291934730001451609910339499531076689728952285933118510038546246865475310712747533183624118925078538176563051978093481308594622774365209435423161774747804155587889701746043984055261406382412931658072321523932693184783218424355431487420509519541662612945282223824564587712185165177416008650807930417000583612510607522460189911926698486995266254140163725506935406879854550945731845146287463859977011321704841426028601240931056888538959681058899798818380840006596250192345391733165617493619124650251070397445289338388054298965590087622830476818306690007023925964638037730399115657554804344833850155397611130096328078726204489601177563360358273574681085619234873646404917222787817391569535802476794520858153808159783716979781810204985193649833349104400123334761989880749810598101202090122831318139369661740933821268960562405332721963768601858766599619914559260359741060884027183458783662937214086175872466365445103540207344589295871374015747256839333393290189366913921184309275285507371192109058414760657454770642431528577424947912886918092724799389356858462276855467277178674266938758755313615359338997863070504898694827888140943716312083601048601343632959047827442150246152756230905885809316798789294204226595009144269831152489315425364215335188925709145785910714245128390147190353648269843273278380264825907813076036399366302155539252988965914047233047735208587342295102162054820468568191702052330064556452647400261437066153346989011437329219814556574048340224392215346219882068811453152540366940409014400775106253461995712938852836032965756915168557491165056920943548556546739127765798017284634361954122630136028868432171550552400983013775095627354507815897817816591903556215892167516449477308460100433174404796774639887006423585117835520922714185672436871069145084205767237168428695420960276755548709178596083866464194707935499307695813611513571749547458090102981339919265386985747571564223104044149189299964223883216109231720825365878405898822028481949232585056330513512251073251515934058328547371662574474241273030734915821483384691667194029676257518421738066792518771612332530907787718376409848921336158514538632653591395534556781709266556166513689537854320018831226863433099624346856830267288337568309012759605155122030563209009254707850408758345601592319156779799702316253078567720866527026872438938891612021959723612170382785453864105692835903412750701340562077626666012832761802221344301500217141385394854961866331016273537204952707102209307035515538397572456759180268677655236519683607462134131168946136479457608066486361284960965992230179924099347973186510783743779419672875937413897531291834559174559206653942595941463165747026905236235064592887748793967128035273370730117168270138233937346728962848849889700473545231425007756584957303805081542839373540260464509146841477011543449493059772675150854774870834192271388981478251073313531218650588906335960521652065333047738071974559879087143908261808645018831827708820005468433315516783742821700191936451783443525176367239884415064522271748801088597150104843217990015996677393596429437335049564349679057862011424282088990869395423255285723628714221935009033758888796589957775041876949108593166687289848242124157923069786249349553302067772454586924610471025040869280382690821239274575348864418890131424697599024981040216957116407745126022333644732974362568898855124577040161117306295656496275210269788780949994293027755213880046269750768595901526293582671628717250159582143744538315668392938496099846223780626578002926360300780566398501879693807858088438885556232618364993425605818393504948325603064027319057388816885713517434934909201724089725809388182139273447271788376255349961362017513495469410006296210867121156212037711718545566885316898222719531023524864461079558566708726547211054059673742733689102388560218752993011091279390963991641423407491483470464158649550404911033099227310037369266920013061659467797701251102800095527623177184005609497574960431442497168588642979429113214851050980407942096171166761870758159909996236788034667755369655124089165717899550240082932791452211775887395591505994054489949600170070995548228357743402807202469072141022518429398607184937159212450794987050841994533584861811507044907783995955737240940806696258187031050163851955850010573416579969527101738367965428632249900027225116894591553951034645639298795543418001752511057463280534505981103105053997453486340709148970708331611492302247192946480133875438981037632092255672235678623288352738933749397595488571751487155453407240382972470669096543754883128800131145935712445739980645668797558054302935326027834468770966532808479379749860603735429924280348145999072172016864345593500624729099307148666848914449944945392548103152144292916668074096024837840408997257240147058648569005230838447230125981909016521463991006893439999932951375837088199424118585083181559624698490628378616215955470834652463017129335730391530953226168841976514523831818695761139607912039237037964113380078208382048928450704266627485548731993730832196575807425947754371600511868830055010524286016049776788617013139391496062572240258771068768140949152893180192389558233214886407989324434759494498778464513569070606319235693374590605206310893272185170354842223899035144895191892731726659157041941016424608549749488544015280148499732653571801662999427124955674218985318553088908030797527400204607158441227226796440464374254196503347498540533036868823015092727743169614589435793359786875612269268981636525160586092683200288915966254020896027234668906148416619248882605927384827694207635405950836062223966914497277409462830925737169202531122897669535224941575448204607522349413679473116314830471458731088012923893593088719519459765774543174839765603470741014856395307829723474661788778388983867449461868947731260909117465836436450299575507233192918014888133842996745098600066487932005618671046664513176954642401818199111749989959742435836182897765955584518502493968604641224310224218915745446778915277111840951758941579951896006293729086880641251093860694195136695804570391157100748767662474985511033278187807514861926564472841558000524875016805351201769925868495436103985395557089051052531464106590598617350131806749198857735151673110016761813827526243210847269334150155332594024406993168320946269576482088395856517173721613102275352728956683041139461345225595959066641239365982080914113333530024366272865943666100198541998965131240250833999044959622333217743029145931929298349929131729579890889931746255013476451410702806357123525162869913137055594340854895048262835182739959794710926347241997143239822724241221528719087191652340183273188664184654652661153627910013068088740298883679018903357981978761072935706917368117009151150667175842756569162640493828844681088263860345450153691760167933647056772981689450257983404408249009104161411377249395749820116247323673350393807208370889225280008111648229422251321876271285481329176834734436836333727466627998553954247424584354364131365929432801330755637882136862780348054852888711988709005237015099016940611667379188347445719387965257769144999163796973901494202698047384951693287141459051759404319323830209451074476202244546259488263810562387659313485496914078738930369126677502163246815332994146138470214429536571451743454545192350213384495969038553434494635305175249373068540697240476906150035145306654672745373599122201256653162545305629263425997332199077436052346218684691801597947337943259402715182735179237020216182813028842960742243223434389628128539533400908736144801750527878635313323274387447648381928718922636105974381115879779071739530559278119262219818762137367758092597811146813007683435507546645224765524387141462216499518111867341906182303176284454820937708375403568058711732412597742137655415839881930054359858511264693173221422022660659920439724099033569814391409599559385446447410613594513877935369266427382219077686074589362122226911258579968035605232033971929584394086262009369105465069768148808185509443622716273192240452531361086682030956649195973355934691519532765259274015773735881905495582308625439872944437445402387614091831175629994747415231424729576156070466667593954906814507065101520455674420906933819119796376414894882992803167774458152575347177222527484972393203154246044393029745190270838223958675140231512121487005078048214016341756413969391111587411000949573647133508066476442998307359165031767138303903122998010261800884432548107969547269073758814677642124668459043840851307920127959620615398784560188517633147657368468199451789397729649913852847497732482785986947319645856821912565055644234507734620497342484315196268209983485927424181234652328001841886884398323216496055756212573032863364792495505641512916495203911792837381349992390783308251147192063672561190534082769465586164224628784535069117790050689598041247625683706826154935150401483645699708298342553893163040558865059247156779452232271041942754800386069962518442302783201368774721049815252011886745860109518146062355881627010614600925188719842466322662581338666387748151095195115666636859101601124777493361855160684326424266956743814079172006234270301685111399502273121674927502642106234547509178762220604786075987602404949625966289900540538710041264214443368582773638071445927032735187874363956841234860764954001441310291868748890232015705175974206100005879166775182673371125062535558841583470574341597210301609776622315371642156413073704618593626659585213688318024502999460480194700862714116835835341147634010934644619425140633948162130157394969333943958840371538788710593256679794491785938274005418814992971799181292353882416050317262913659812199636383257096993652177783588492799129646436256660295768201589783099456161036913856244037614422707950995803152959384551818738715060506035490240705711130144749439846077597871778919607242719385560288428009061548529335209373495079867429365042530266952637911477599118148654564444089021310728943267563368936626441778476278548034773044264104094756912253171225851608113728018339855508447907570145455605766664334042051352254783029553738483839308042276555279679417328230496618546109281286870306531934838134525753818414087836971356260197561471489606100398181422942573834668790027613407547711372359406618873344525790153130647266831031678648951950776756761480396064833049911029674749821402124547042850260176171278662813522680313764327777921758721825378496391292408021087082425670508200321131934575586043483268415957273737774266501823044743466815900688661057918977115439617287862127391749709712363065117614920546292405666448073993327569966922649126179292230370131573828975687196041954337774773128942714505927109324934870459864457159904274851640232792815663723341529238664230337469161951394886025825533698845069286421828938510998934413519973747795354988963049183117500219912249555201545983883540825956123857758559295258415565331047706652205988831172956145887300313095590443615038682552113567849865286859554906707651832683856327716980794670380931436388144947447746062108931384767963499490523678602524779649580340762932580670092442946521825153351214851288921907609617449361247253381849134906416214843262380749691813392014571677028120178824874721831806686407276044287388510391658397838980053766098605624023186851579262386226743820607049321139038570580083035906455401956690897979804026335852340491214609525217808463800299619426053151851729679987498705199903712146537846167796783418006197128475108833549587046239108374951894273377235134115994741866346654782372181348606192007071834952391994375922752947149110793762747975068357531153636076343030874586711237670529858242872099930023138792909403014831162752677563570055446783723350853734077709375566242927970462692392411332541445630510691040512211458403078564041663566714937075526833017154157556289718616085791556314384184360018436831502784355322185643308104712294444105075340242072017235510896240784785830226385097882671898282019269238408821084249397675809075749340921455343359887048750184802300386014907647254859239270020216410385506125284962568807471618220619433995417068838700815832661899243086787748327878348074495648156172640236761468003966070091451757147122388413798014007189065520886367274822916595740177198489099185201134010457406051069307666236847921819959770588867587450290942983769012419776425299354331302258785042458183043378106607822491123517284130453810129388971980482060602363386081840086328647207970443772065776129378923657108457964174393981292585876166537237887940945985410224041345111062182777381374305171513839851204998848144350698695381540398746706757642546193868013637937962052344687294322502923864062662120030300549398608076699021810657555928452159425551833979975062938381460935989287142769773998635976392034397143007184744466988855823061775965174482947023483822775901208314925070935080488375142646220863890089448599417717485653964968145299451344113820239667500668842188906526794553534352910652576314688010189097372703221477405408747408359708165118443156782209415897060107783720759773503754403405264772055568492209491061052918980152737209898006996701300813842375260606501380547109808193003581864225777377217122103173638630357662509484036197901846406187087923672675199579774017282130885742127562661993592098057731505808524840826538941121397035580412063594966077065362926277829887137652760291647439897310261776225354988837668714709204252014742924709937762498292353455351581564976347310346512012659915854449731927520070564092177292456162251126033776510665519185214415604723050880918791976203846051374949378110831226978839115149440616567295445605128262964331118069911824753185304348001087257062286407659037814296651102940410356050259086376189044614303211278466431508486633046034691909085117574235360625667310125720197524312981916928739179684047556456120880926314602090540230684659250463214438029743558274701425578316768918276773980129456710791894606041062826372790005514959936749876386286709454485151855661508964833907827452171994843583602694311673620792615108360032090727969997931642202783909304974332126271028584517381087191486273947937382980604351407769124276062887778905908250761296646799603270049983371014519869281307321606469379123960482063243869113871549353165185160767607521049444085886267838167928282644568666800211045434465138649204467971448082396258529862625641258201417535993739222324490232039861156280837525074113864732005350813931826976455275641057534549178147819246510884197642235949924190354785292153427825965819599054319026278095825893970985182743083218671177966188412179586686184909149862238504301188183334466100976570411214944476588867712078921551585843172818158872798386903858665533501594043244360163250259000652103928200010152417818791123888773054356861507540422206614588312402650143750502160724296386721288972866113842236629463734861826395733116721979951977956462674101648879829371905781898738568396469268091779549452189189274640282743843211145463702786872490642574403602722469803038645886207889895765505231222292133718354144006538294506606925232820925965128108171610698035514691843766801145603406217622297384003355430397949072251450592762133748565283365096769064409945982383276575291427291607486897054646587987204108360423521128038059938160663409414899473503681679744435516952600326839226307297670132675900844905767688017717073556241280309898198506255085373963925275996202439992252669801265900814372626161133641507341926183365167081219332511253325389753271249433680793701841356740886336279748487825884816743629672371294830110236148122476371680573619912510505249079986690418325921165242103568206731179717255368688162322602688277328154512334142428992434416636079726861808974043410714039716573246522402447562443710419737694110553884058938657000069164751145343913940280599263468665621649018585322089836208956100174807630952380460892521726114955315448633365627434614066267517253994387326579509334816364323756743181404834711319742640749531795405331041748079214035909300388698699433560390344705959776115315822710509938779697150822694507379838724722513279816879845206867304376365363310207736914097304690326371353712594266382119907256138231579083925388527828329005864393867769779580374002145736175149301328097186735337015166420555808588796903200982446743147042668980971763740488669440789059072718442531599414545338970468136935967072512650681996303740963440651983714403229888271683803483480488314094437945707341376577650576324402705479176837540006366562819587943191307354557611185183484993012810523312993286019273709352499696892179535497039802465015688721656747184644690280809544356260828634206492383659232130253348722734097738554929360744475408320076048043645114905500946771403886407260274105454599382600047983363276072602012233985497312786235993551210544812209888959714664336039998747438020554264805797202403168215504926649269858816434960005559287731921924542248781613206241942101658916249823441103101478863144606764479687381761375287742068546725089300317600665387604771376419085204185918640798228184510089125479779444073598472958199787125117371598247390142213148713966008107531483897761545688636491144868356946546378520679884296705684221626264365229948019907164914682601040679911487478495785133827385199184736400928711172259372883706885681049904671064602744394772205753317173141428564578150333081304411955172411993567699207681983924616896911417763333649749322291686430686563288008096515972286083883990820038410741559541543383010169931463178604035304426689087161775443527900663945430892573819605091515198475896555755487651809605978725457074032294904905416696461003281535372966508889325309706105461734430069506353276223076887056228582645672346688715558501911883120354185654832010844342595655283520930307223971076974723225251104769744653575314637235608528680210246267204809140377321103055227836760542740871014619948859269672321627401217094719176890222140942652824320621226827343292815413372480712116117963605051615869858135263714632455825813215810764400041011451646921891784339698743249879621008345156265113748101998183514640340428972507255023291469337567602848937835070359945890103196807012146793978755908334836116456629070868324989018686436231493066149444056421865131929323779163155296664656847783739668766098160016704300960418506643672977155046881495053436535241011050105452561864357651521575042493899820808562101863263911641243010816808240474103049857763756458409189715713192211357117320525788108077488465030320878119491009164456431577833143108134350971461836128627038859213573284479132306791067365002446083555400497176037201671028532819444110038992249215172038987202829014159461042308401214095165392071023000410361066273023731823478907728869991959151919867743239273177104627074158107738556462505775821386501459899653674849414576615002869890762004850725588136683307898678805103612070995862256813914623997305191592404385230998503672328773049080733753228041357734236304414592324562130137911249337174727372417395894777692096655432853739928632829330373309454671395319808382515284222820304856323655403938495752535462107502224031618948659019546245464190424524651440943388958269842771865321175086132175877315620417574124936450431305177017592892054295651428314321894697645759125358293277107584899840934235440422999542940423488865843116866325705093396557039817850003434458826612529534277420505718748490091773764223641595515384247763730081510568735104436016711183440637653691966231586276483582512479674225864484723010510679238448818676340181292940094228800022309196014073535471470331966104208061846926621168774385395681198022891426849526871930558804468128516357202261460408299387884195445517121974559503056479955290601643204600871951992545369006378425268561021785883433339188464442952634809901704970381748813055584264324684697013496361051005171983257322360759593343715747207230741242059113482735880756576305717153091651403336973072581074526829641126449942249438435846012903108267545591737970100850638591171648267792338493351299557601551321529535193126478892006346007420064822249626976306836110595983655004634731272826104868064261542428900123065871291838345943205633763811305678128368732989586638091712032266214255483612913588501632143813791829305840706234839324181657324593361672877826517097679812301320938749381160909325650332435594036923943683733991362953181989889468018535841139781196203923354592978633598003243939188370675407861082995851690651936776605534468743320478824850997446201641654204035140788262384926835568762984873764427269956885649636055775462032557090001805573844561780285450959570079784206210551172459767450575943109766003610332798405291306566110245493431821687150222413038077744250325311840038404771656200047881489694365213782693339318269407771943613944850719890468041483549381603302980095453573469904593531373488994575708850168674059043801183274248388835490851669850095703419607797529660688537344552336550404789035204830563678484695234947514285351307629468468817533731263490286978089614897142648175706206997985275558221986154974701525389450033279052925808007200669679767456076808777227248229620205935464069968367203082913467885377786661289490680004317905650268847743380987882637974872775342398820938957088181365288130748060328728301744134518995434157295102575161521356794271263054223945829235938530269286700556978092284143310276900352405273210915136030094098661791403655993699543316206196237679760583665016949377217890383465724283252922264319917098642205708109482785456313185507693261198935773703816882265423507116004204805069871433186202219985471133166057634066339667937361860129751926997183214051179153627313125023236241282298421433655291815396928111927931587746697322360874390775159240864764485365379095494269499052650198237417350927328842733458060264891077765562872721108880093015725836395960524482293323591967426884165765512848517196837817753882235213619577986506871704007250789441478498535257095479601236325240361648235644028983095865279072812660034438742467414845308458647160721540005172029891960443113607889321606325124979484206401743766079439395954830576470194288657566885942872085147831409188057505618100762953571717238790263705042891833617733576389680397127428480745084624207042411575130033074783824379986528631538247721400332381855565311459649250298580515961810414524816261244093425236400643606979112996406890430012048579522641041472188989398378110298856306708219622689632096895580773817896035991138047596969131343936103740034980488974203852101734304391533191337231010729176967737741058159879601037947746762337799304338968335521926701095318261677597961937656443335029003277195351892040575926126865059381120812050603061542043865800209064337957892855396009768454049522958214774122980657399873190301290805787094686921644119661618293904737895625935476202914272118100432894787325531298202699246026303531452974012893634392266339168247656646873586254828969842979372981688964865725431643806270222685247175944861925554413144914600212447384616936963464201031151308438841119904620339783876313541574844225385135684746460835152361521854771808342790587306182155275113574195244162815734546666368868026035953707710659322029227816527050746266328375162367378097675935394963127879345229915153516640087471188142050588118515095421693321895953485262598467288146710750977831726193337126137712974121173222159095556401015135747890938603884309451554762285546995148002432413696090141526612177162308963824959911055724138088534145177800232015191640669542382362749997209572747949510011490149195563478662316671754856785174692956884922501530541997620643342357275242454024211844059207097893251000676186817451390526604181563934904085999096558476098433438717499598861446422939731319102046026389799033869864195699754543246670811959260998251416300761779958668763014318535147779323751721019708804588908661720259480540164061967399257144157411011466467085327237740595881304579772341340262575613017601709763937375367549170054481094939476445547052320173279644828741205467622107387598183160958880119745088503885430644386680592869679200277567547816137805418931800049510654103445913361611930188555774625967031573599696569494510721569750753790699760901195540235756686007923053794365786669387093470665424768619901394372057069116654940836910546818114177201096336406675860053930203503783762145382078854405935234307998565850859197813107042331701328314235143076931091934922909837322524451736129863354731927001252840484699490546353611268023165865536889713319934435185351150514389601634266506610860679866496936839112837004974060001100566410084046096745713430053352675664901200025747378071657452051688684002639362149438039839543214693507541119577017218713728912453424321214651951712518801055091437729089882416882000368967384505019623456726203489405120230029600216319917022568737801034921022941670609181397302199221260314744456965124399267962029226206357432765438255677324445652597601626514894883699567898962798538229978281364764693034857184989973794225122911891844865719369752352073697246536731766792428478313735864415831625742193035855754380685683736414278071951296295772609103151428514184299520314420479772907154633886071643593840733325268600553988230823056036116292716950573915181130803453774189837573279419089571500490671562104461198132458474938275025450174736921211825059857099995941404686703448099031852512058239033865278419174869621136915794895311405837956033809265161204435426742716977485944898344609109803107894174628843402601834081011751578185088049936805930414694626929440525057774370266025124020025635412238784424015347012956985124106232779271286752131084125469500448021607095175778682158347418964738307347517357403529315298132180346089370794047042672507481434611275451464789930124067456704404841062876797211156873451874383944214272223849607808013702790188997982558849287960103867603900428149731205161755872214777467326611362784226777596750810719831054402993821840339813007939998348551928623742496164954427236389297883161522777374251393359430404451440767144758989605588342539460736287902211914094147309719015457293958515573482543950629091452354827857951200518847719658251555922441881332718599491319600161443413743654706264194932961204235218201557690715338019047154805870172873575480562065816185663178918038636620437002025926454178259305512309893292716066870977990637549907724889260554468031612749999030094780992004955045962968715338441974935797392904149879277675037760947001994155222048381687465825864094472299713582436205354837962891177911589405655116171360970643588834727190361261530813627761302825559521151944312060233550031433611116256772996008192183905606103518622225906852055529663808856468721482950970096267605987414099727103213310652713836035745872250575334904024801157931387611832108396422201016813300741332890416815317536510366077953141855725526455073729588574751552485086973778455375963151323284221638764753816294270756197747936898386710201514342264942931739879531362862618289602264986153434538759348749724304715515070015502374680124622587933255743663105673491191879089125039424074328009080853010305984333097138610217914970300183002947466973377383316645492810803012630283393852181940498285533139975790125340971197529414704441696165049714692980986551817338836637064908587216186272712534447553649968024510109074983553912365241246912153661434513853646300252504448813887680824153348239027226710432554976580237971831275741026051628340478448424465757397837928954974941003856065087140315018450567404364440544056332108005203846022002879600266396621319858090369614635806644729570196112982356717651688183347255128523201665536712703298457275845702385417247867979653091299137482207171722855945867801262101501355513292080796569196276473383661165221844083731841621240005586498625798485118704012364944089049937475727174117492712978739929224306172529283139190890563262504644096108568815732486639861819076020400666211460862082115905352947384786599354997454352859927199246334342580255252759452881164436353315250273348579993366869135261616310095486181344532532097975371750084073614076797408976521280853962732471505823724151038671288727973821130000904180927762062714633988878146829305369811875321744542336574540712000965602677653115793066961308931629024816744745696465014692252447889300912936180794846518336878364988912913048107268336180444632502657061942577338614918383355419762468094474695591481482595604379021973164245515021767788892139041656697040285606129262634423188646114943022532561521378694959352175831646773394349349716619622403752938151367048228522540488645079596373201219410733949380316470734342501808779948654289534268642419357989524093724141981809688958292055188172255956796295400539619682368802460623684549965737028842114091018345808857558692929867113723359091072625001897858214191289890144519888468012194294206613937547454304417144787036950362113737161205061465053658769447334862152203043297475567313042876020766836741455852252834067092087525691311385771640056890631704371695979436562674728529919978820599254717583205654157675683033579722164592502234241013351475909585431254999682262589513622654306545517143071745905442056442345724181485512826713635971289897367988896471410674415798950186763098186632965878319745986659579722614636187089369601505054336347218595951678823710196422847645661753738981907829889733412147324738373275033458208605486586578712233432959448637605643792538412304084846166445142633391026780422643480512785008451347105046906194508237584420623777995428366332260732322339176331047423773532186187872189477417262664921591311611246986479028781824884736080467401736754190945602144174716887244702395142204935413699925145657815052860833835103280895327729238942788254217816246918453434352677931474153769956410100056548227975483399338353968721382913938029897489676322223971374257038097072707092923850935879818270034670096503525422233687046903628304944005142876412808858667272798493974309682398287451012664788192806703600933635928008441718726817258650435948200319346418186457936389860631584223154084116998821051758793600757495114502759266634968554750459631014576363298813595670396740378922229682402053200942947597378879081856763950427698200590618939174178085242282900002828279356400313297329086667318674056030041382977602606609955597653962621304700675267691508480002109783881506730467246934615097496467151842958710601814372796458183620771414508425722867005616685768506276120400369053798747957648168253515168671160499280990643372824361183770294504959324276463597005600982803755660458793132983020593089886563696634757668750986316512967537266131960879361626696972296282229614772789782509325510322813435747139986355792895128466392159044886312448995116378857599626182907413753028770093231424497642981936304049599296747033626431655610779113812167052313845965478776112575063787831977695551421810885554636363638410671638112585989917945288755012660950890986603747966778164400346062852411389710685991542726509761372937828659045053587776523898072137112246486600175540145817946910907474074386406035202156496647728321705517861802871439336790431810023938764329779975422762313043297433408796037675380907478708854568292042803244365945098690470624644525200914632329645627114746234950859294821365765945691609829141490929096994588724678011663652134099000103203534587813330949253766420692299843399192452150315961388984411042598120766182752898095977220405140467529345587764361195946496540485085026876637716748149198456160717882931206343411167005261203457031033495752400841535536799493409870310727321335932541950297959828189667848385674098509208383013032706496070578940268546927934542105615790905249743752812709830644649749103552611720728151519048892495019064395873311245775216125957618143364583058042358209697113914443256562156530667594456287533375222580002582301748642347315773947420379150994795125398309594040219033613623031861852760395645459837493391543197087461614337600958776356791110019754030130613797675366507345399623655082492951525827122652859649947430737273927554073502132076958484112975664305734959568086895517625209216985479705110397713605562541190472478064567227832522535547477222283475033644026077846449149109792281260761294144269221940038420059858833405478717177769605643681446569147424865341563176534738734826068276730413810616429384580269754614094404702590585857273149365171074605241255641463141030881442448755139174976698801223813416645262059995917548253116332885212250332854311896480191522883204084355703875927391072140334981387290571860203559492583674765914079789269880612411436211646490232622703033626192018549067783224115328591448687281386407644702254277167077077304050980172940965283039635639799204111407120267196370153677490996380270492146352893559397318466645739693128906486044186590825441166744064813868764091237300938780987036299928818608705553870358239816434809249137690679599094169280916205561837266360910340052059686919510839404773620404623664507231175186772327568064061526397217149038029810518130653265133689241143166639422788360703573128680518103769807825920818772500922004376037986273400382527204522762532696567661350672402826227313852969221534648031171031579337996914759709625656123568023762767172426833363020039149160053802280017903563523967381473060433776249446761423559695456040918386695121150985274337439551216302162444666558280956115961059648488312160212573811211641769070513373450283132322244231458309153777450384240520778648272999838353336795565917669274672296451647763156470589757465735629786886115838265637649080258571420476874427747254402475365517880144174407925643390827661630539584278621445047329341104039798295129338670018904042718609669409894149745971992421929700988129346063242326625492811019570284760067477234593282048116386867163664731844573581085617828313109739431846955778853780630017982650577103296624362805502957194646925376856716801634465022661927929395477812768797296675283219043653866666403295039685398740288844780992988902393045845196871083132621946400108410260423185448099645403547731853671941108697379242805338851211932205907595324487411544733864619608271472173169242377327264721032336288957402654544297771893066206908128769829247134964534215104021332580558992603076011975039325890643618211353812781254277462507492003971756463349312791054573730178313678211441468051516333768407932972109918889277788455478032321388515586556412332280021011273672799242495955655744007653149564883439977417720460267488129698715974158794215409480623862569780419425589038460068121407793504623693573882204323599153943952806895402048478406241829262003605513423878673097819452849498415462629248863961982061206512142283473473804588053882703445326472409742057209515144188792872997387044101924529089406568265512709170549518524486972531229646356891185457289458818666886439204742832510396245724933679637181000033073838162398086363825034299769846513542846001662905549616166966314955097096949193024411926579777936257229965741339380558106000797693606380961284026433314413041506009348900225463504969384564140572391518438850342007361998367299913995128139151930980077764734684404835730131021373811022977215437850319329997404717196362023516808779662413785855033941021620417004975687440076800640383830523074776275029523617523064608993199387212097857088235495282710632063864567689647305610574420017485774783719332141079564735409758467912467982533822308823360996623252367741501144521243273332228323711740039565843543408883245010640592201483711167362387705966762179906381120679839699030977800605210008558668097059605121447493507440763469677173207217763507402389213491799484524924295263781827943941136172652990130948867297346799404142410917240933562085131354311170317694962468346427231542613011636209236126275710208169888675193103933363210779609621827857254536800161518130144768060534419334686499855545869173872620054608886344753569397176231981721234865892526626809362841059117251553170754090087330481903278054883284261821758445847036154127853601499605569507594847116666553431678365288342392423934897562663798330853830991782612539633270112272067358977575631874364624634838604628253440244974412754071697841329629527105774672976333459386272750961689270542801104615504160632835804416439418322726865719494536919953122660985635262283293621222474459877678746865413013839589863158545458807868750342066564988580813826107807562715916191229883576709873114117115670571912320710718190552503690881527454568559706902169221766039519415064807492472078967997352283323576094968395350246835298896361408141308878308322723835878373676368970923196467433976518481365652344366180011420248812248315601676593151236392833899672219443247509022283097631140947874440827731693972379165189985778391664147371301777837822820790257088327309267237585450150463694953121965452263462618558862394474592104192643074574530040235205096106940321414746393630454102586155667495369644429575894691367448183818473334122355278407437349055994850418717759726150290169266300549310656124680792467456646732436966990129131545370271544798199404304012753188196293653811318506002540475453986090214332058417327239029506951685152257201885130077303935950151571885825139642127461570264624906645181472763629857775832667762501983975283251067290607082208395075394897968935941590299797513780339588962884617546579190906232218130045804210010238080745379010415931856135539121043216045549838179497477533178159097470577129682157600787235328791473124316172244383773724529766501776699871624370177436844617315587675805579755862250400581667084717748112957534065905437369101345550570583893068034204570757501803040721944713634554668472543337159883820608308559664157012060254296742871696266202947082705210286185427175887491704920503383524835701892368878615131397566076279242815410277429766651836405499547757747926536432749605551552437188435324152178843751911158587933520859573859415918985859729034959175774939740209734788934011509694862398649509024898304895241003305021861634112758960030833569812317313928905583894115121869476230926029555300813008034627628045009958382681084597488177271476499149949762131315384763773974519217812433362392084156092663388301385529474709622412469075284783981762477237103443699913777184870387838748380678075643854251060631668619860410330435315858710995703278845254103308300000344934149619028079611945079979912406403988528833420515339674998774598784996748418833836190434523412051601534105415879846793788275937621869660982509257498311138487592148436183169408456473016187616609535678918527428969293116229453205283453355392625041495245637138127110440216193304068160769589749045450643874336676412259316122536226942930284897431682103544861464445329824011496062386700435216297116830271932792849009398027652768108025224463503047016836273214008475365577237585772700757075947761998402185839071331171266982172083234121433380241292708313151869043230396550820131870050401521956195679325869616339120109569382817196734855855978056541373109336239483195045011321584506685716468980686673983709772851867138919048045829354159491393256374051969993090708812754531925388469484796477363108240991699018009895757836821766457024678145232368539552058680894467866837632439394780865523789293997810569028662938652371722401717564537377841692872991469217617929320711064387405325942149329131752151339778613731567706489794603088897336424709782313236716005815961412500075355841232524037728221037200712743096789441046983552421301659786818520418097438938023260463441851600197709131698037992954297283676983241636587824062042985691309807581216554166904248276603080122370196656774970076183927527447712167350098851695572034517007876320113551798558410716231701979460208010158163300978067990341101464838801813022941562871780261485073265713048618018674553679761477098648406145917120471957069611527583863406605369771129615170138165135689740623525020864923048209446694201052128425790671574470814298491177468632949483265368869092341016129716939858297986140605079687948921449935540282059062509720641232578399042523125727668448548676629647171265516819584351685730471994966883635133980603075684003561474370916609912636009012917169714886070418498963797392264711492695973230470569670734488019815683881100699617701251983787363569852979954026769954563649770974569925977334792291762036260375152062653392704222384534583093185644593585655070742957363296408319379597937824106369623526798213001912104543741447403241030585783377762591154404939325984094506664912677390005350921765870185442416701163967510475748801152016403911564115656044906571353955515868314745379733995048011260192191027192479460036504444251027359491920767514149395856155569277884013148797527772435023157495630284112177107049810361716768617327168688830651383519689936223326928375145753532945509463905690922076271204242201792404887398066572299572486724989491260033945532478296336926508438920197686381249858050627512540737882300025867688921969579314376290090891041429228789910229068353947025389160945153301640594750723511648363204164821721648303288629543802953665209287550264557902528539774353321310542077614800475808604068773585431825324891920139608578729835861482516314895655256471093148607641798752417446417211908591766024297533084071495983331962597497066653211747670682062602349164665689034699623120758714530646310129887583116029776406052215855240785518820056262110886113871878592937398808866901490916390799536620866204309980053881545707213728529219008025748934152704713134769683248376334528755047378326164411969516588579273516637925833369337674885275935186101633961913754789005932474769406562732842384513288820494089154121338409913563936299353821235710359864543812281849870774036435542222116886366962041669599219176853158460051688517392690158819272318782728930859159750913120686669506697830101620633886403415298395507253516099657195612007293879137358068980403231508138178023084812816056137390510798154564392562500549913765468774666605585386834479737786273062342087794435037593534657181704796524576750786565594786607828473928960417176435891215598281497394951478926485572172691857993709264462680902140066757992972231524687740590159010708291819357428502260657190573338353657987429896968931832788755347520785337851365646859411133626388477756873372041814568867433441858642559782169004694543064521000082469534844373604627852903298043654511273817346243166097312825248253427268057238766373245688154181323941244650234753646548931919680822761375688276790456359193654512146933537898146273645200686168483201216991432428856485385688390646280714890441249566585273772060961603364008103713701238008853531103289950285895059725020735242284936325792452964568185097521098287839385877405451791918048069735490923353705036973801091668153441090735143403018929454950365845588354813512630087686996037747009663436081864269093276016480258952982777012034813173843206979515638997811195688814879909053589130963143431553077332369083580871432643347805955747371618901243714501275913686810923245756022397824382660220278879876891883403594919260953397614665081036987712958530764302694016891053841458326553576069522774029386243054507968544137921087504790502788190241530564286025029001237438794704214867329039152668266450865526658557317733465821763857859244945931257861383620851744108056887903488011588268923905958327495476672789987135796552706175125405568938470633723145059707262734797574862856031409321031915948051595826385041971638367981200815408376584899019022957390860436846994874358151223483823449535204824624448385794242147130408207432658916072236740544148402727474420475492965221049546249072540985186829247680891036997810064266155708996187719178532867500217456916986351924625528524811671237317756066975155296479794722821084750933300876268779615395836317135154572468897608452583833125300661269920216960090656199894053957513199545691411332524415098600574319330852928891234357249735373579914451835829376757559647114682250434040812313283623939915720452071906858222867226737102740226150119987933952970309798794982392594661763193911034636374160133731868292710780260817265253051095777831318265720872228442533517813514160334058706519867869476331746104156218022902649921210795239647030105120597127741120761307107034186096035570966942204890084503528420262949657727826051302496392529509419847385054914134662130961046005252660571252583916320866277810527799667275217044133665029592169789328703762672746990240287631368166689906999430205856440171132833712907112764341596866002226520954208995458149078153082085096518226881856919299660490389207289911024505218513591549394878025479665299061618215553807417001936206286890625236903986417325888808016157148094861442570459431427478870086502194790074748086317019008727322333214960526243942181270647565176799472339465268925402456947173614010544865742234252871461927563331604331427104723017921466741253329927019072075855499192902996379902295525273016444093796284529647487363690174295230365043804130377614929001100290404593173061402376248822039515046221376033848050964029742207354993251306362023538275705486406219679861382922674730968994949711800093547421918478809790310709594005516773638142782419913651858342142649113764464794735536744113703380168282515256629510375363377134937833972365396206888875706760781836687860999096020897654534911797779288013316605207120738762999876834297489516519605133795165470143081672216209029923080700335704084231265311140057237823115004451709003946801328494567782759753821669513111504193126793958650353750943079229372081272668580145227231535067131275701021740035885879961063660603584608860671872645922262305985455400564441906303406812974508229998695437172645769512509289272598151094834780298220925750308529897611552740074013048979287400289971558651696803460496218283820628926433500196593493350284433339842866804412646174351632911128666664977529158629167084218309145006125824193585855220938192312226484129286650161989716059788776796834351285773315820163142105503053447686966750131116114124501233734971762301411879811616868765662644649122852613197265981615845507784329825646907392900202341788284535393020876279879658574878888524736167032761858754286623856773051444784399594569986673113759997578014436994948111759679597618202009401294729033108071392632042034071260739137895987920820450361169955224476922562021768950828171635732210886420450218591135538835325837837633825630188239443467415382510753762585355749197468869646979961040695144559097691637709748729346228768724624179616900444333998428110261792323922613681976442130544063704408532946818825773874079307745961053809104191225429500912260877773519424805408500803631087245664419078150224117234792800762893187515192345026598569995613500111041531491509153328272510121701726886445786982261868014392810696956757387164446622722522593277283679935606010079077869072143233955109395211233013633601721699766705269646351910760343259142571079305362901703959199190831083889102147863007003986995896083069730343781292544715362277443828835200850325103283769066126448580661371311845485145234280406104108072467443319812094937522917616931618898904217702914909974653683068342704283727298790560905452323143883921978166446422865114988350664822494608420673663698851446769357912561454331162525057391506872268682605644668215759060091442387724224294980258104863723709429310884980935998968944125705313652597187615982963349189437188672662127325452383074530090237844272489481171893962261814090859019867335749135845428779047363236399300267804613132756941125792651243156502679184868101923073560262572106085644376745509817608370993490434704644896944636339477537614806125036869953980366756229066244516174265851039816556144525195150204669289510243734882878086686422393483676147764343208522783013441131676660780196098861738220038757508156262130333409082948791878972471405350044996474649458471199293362695541176506781333281933194172284816814638084103260292254418149849391089928921801754567356256419426352583800892782032317330485098316936529719242304921778747662425506208107732473820727282468682665196056968468075754247909712127360477065362569462098324500434578145135552491853363862639791348213186648665223896609354134652269723059339616590922378255728547489914750467052154458020410692526904719058170237318086073683552052644423234077609494022156485127051238588778680221295520258800400342144732018510888741487080972301429462615495610509112113390468553977097966831585355198833563888737561839320483147177440242139551653997075184334183873237626399416471164222663524063097655947097080415562584928641592623310647278486207498535766149755645414239440773365941244690041800741056267391592458261969790327797530419018979244897839823439566333626986776301215478826720020111354098035617471558670099040591050899091922035295248995301354643493067634234216571343727486553547501832212060407415956621499265352907143386422209648004171782660378686453285031435141071800437567835362752822472986478586036856840919997254057383464207370503869165314604904749139026555429983543181741849777738348274996370313318234441360643075759974355641793318873498380503216196987882310814556855291489658423624582431553416430165018491700284607139892695698987560838314176109966967964435110740599281849348117229746770619975228749763720900960994910371128080150098047986641515403420478971469600340800287322844809831924092794394677376944559041048049933418264071556294191523289423223163863258488795182918587570971688079445646190819836136892958333687420504346636376062119839710900510914063992099956029271804314102634488181607865603449423456836743127738683318533839594268096726981826913981676366681722481450954718699495998273196208473827716049170431728261859955538794042044717536000631821627251309055954555835022527749270045360639027466318831593799786626567610129584383902838170355716953179932956606683263160319614390199079711389847582497495402046842832782116810654363181454482875003065601048634844103820005659032167764592281266679227349971552071581810264267489241403436071356593472861503081531717262132035811464430502299643241401356982882619816451831656657087202012966763417306662460047702646874762115740412883822795470792738359979425754616598481336550153328142520845620223788109620648100733109549689727151737262431612959092254533998945394336032266927957225154809954574216835923063570521523476263416096849242530870755252903896237110805121663123511741742124555358076895418290770847877947427499146375592910115756922114160749351610099766582107886674729068366520011712745142372389966935195859088820500210517286286872954310692805460384605501903810170375733248948655096765651812112674436933169559874878060542704192062578049816449873325631867464972333541443014769417007089851287941557605413267029314028639516761158495500085948812073368508395203202826549059409082722126012281193546490316664774520251812997827623263758689691855276928885469206985144262348473422511358469379016981592654286862950897600020516739398269705978401759320300799238713727490514017910528259756749779079591961490531313060949598201619811605635104501918128851910380051511939797193719562824401256388454391623379112589386567216373245984523180887187111554903748344349086159558231490560679625402491488272453060759733564362379927243131861988969652590340998808196436484933781838971681204059908321050517335875372249803881483895750264810997402640253598193409042513167537424871894874022986390310642607043377806884705723753783348633573562011367626429378708956454602240441797783074483623278016863600321854169073885017566153629664015597621565698194217832986665479913523343794939961144758793663381521664553497192015865251569317307264048052595336341407153247898524562587303551966108289817914567388143447345671818889081986108635716165986861358217355205849344292753446701083706944208547252693521872398810202038144698294355245972372817814109730271638342675043964260597345477101065732055734944945937892016698340727640165907238606220904792022887907981340464997171760141398621728312934328306719739530703544862842889243657347429234758776860675498225513980086591965981932104142923425570645997090308836272654979394626486563056929514370781309031415055918399520666632306558764083527879215193099481130244159147722981168506095085372565592338183590693976399761007622930327104528312840083032334121429090625743827560829789652199983170716776888674007329406809764111178584995880299827687417940321892791371031939187078681155336519926690952085724754136055755512814514500062798701399862315702919913915166206558287692740254651536027153769013559298826996386526652052407944442876918231307978085147186231560977592894029445130693059008878181759632986981127045650411922217114318667662266562819216237725981334744327021717754517325845330633881633773520667630495100015615618272372335478152275344982509854579644565090450062074950170534028346822691345360682609513326832334707203808808386077014544544900474281029556564060360008705886306829799118989016600149513666599025700419844794003411747446725544700550640229370138036903000471831341418106818964900252918746196033051979290281883593157467380190558380951673812128495098356425984372779634521269332973256077064464458005565716355060923106816566903951928967327658279481796238128015985583349354438675113693168460259039511956841917394510897075672777611299402453543466847683361879561013189170061886183880588724914865045134953768709981468631267147062922354999638234522980494823142380290797698431097879019146995387463223851660324061062030273432158140837664106144241090359145865875528124436801268418928341378681422431338145757192303199115368330391859184237123174012650825038893756249358299968419622057395753821442026060894345250172501034557511498495321698791203476922197157807277883214877708329881946324090666265067603990263849870128344527469031925372736500322190953574224770108435802695349963091697740449503185963160016111991033062269835000068117270471671617352557004845243853670901971300883308373801080669199742626674563403761734218696847223713190045999869198779902199339592034917035510962372629644213609506045758939606221881020483796750701724205377530687921724514473845058732738959226819361770142042332478907353958014547577423591495127763317955505363522865455408106232569804207359155785569824284617114931341459194885848118085323042512041119773002408268718679675078165649672869333974296548919186442941502664588296187728461386692476370535211681941873782404331545154340620243157086848803687627572883962320856407463287340901039433739437234012642894157658543938450962703960794891417581167897508292989801274881737786131775372114001252424419704236029500723679195961457991505449476624135710577826565308584012296431889937620852306565842838853603798471897077934489882167740449009700168364173989195902355657639181594637244730627987780471872059634832079023739190029522275178760405250888700732958808207899099028483177242530246337179843565129911174072796723948574264007307253918682116221759763121237731935448669585259062896963353810536495075757051662603432426114310465477426764644375993821377629310733507892909935703320327235626659456185482808504353495888131787311107015582011093342396731091482019652121918387507853122480726079955462881391741544420198792688471926388780456703653732120922886584700713255921392031711525087901020407420801564545389187301961929839323820142884989630925311156072833647947696012601994261190755204271047751860781548705271610990314038583497199969603358999966635567680565764499243351757833303299985970933404174090574838602708537440395626156540024391198691162089408429470268249542316947857549717001551799606874113078195723079402641415044376859701210112273051201063153585074436073985436097534235181098676701779790963872385041309850785532519534602320379461973436415744805409256816918491299325625670204947587829342094119455169215182618713468466511461332071757230819782813435965561147841303797067600755061746224123405958013722517865960986934505536322985314099030859863320460168407551022104394079221494407695332378556236282908395378738551811218195593907166524257125653920969214372030885664375388835640452117131616472567584305197448264549371596875734131314293395426783425710478673566956041756573555447042891389891046236676631069685152753923601054268477543677369641038729656317972353767492118315461618371431723588457772701150740717778079217793898730384830600927089918229989206524243111668150751436141012841071078776613801518455874353067176069165158814746549624497746923598925439197171162747814061788918889340564394864702593128413766302967516268532990843663085358323761169742004757900563562994523813942315106322594824092380186408699466193668622326332025718800294500087614551205713674257881222719900254138392834129409593340018508880985829895397372946860702040805455669519476104110324199074992275420969412738614637107506017518687522302628633998418206884998140492941662591970926983042544618398126801475827212055222780678802279801206338994134060493827166140021514758701928878309727677289676840615052365564175926807238656466933752931095859866845305762571780222286196308405996281237863406850361778115935186049361776804562227753462356360231721435052663532531410534927048078208268349356107874680046503774750818552205270174673623108549883617764195525215819877644239642448866120825619831220074998235398707155184502146292639228750068989715734893890812998220356328387256442807674509994560655585144995806554156924651622627991666465329386110901826337049237975811514303070982955315962945989538943301572925391065243618726562925391101723221069042386567053027239042847216421028199149876485084261944863551389314142740758912326038476720360946663861868881353275398747660633415078604742413784183444372583502225184096742347704314165257434547005413684857372541846224897532864645979210196127380925638447880847476357074791765078881520595811828789330823415937436556548064992096442464916576204713624538361299657520036596282836596258637082111592974401782461233766327575421354823207550383535122605354831769999717260023031443247626201121496198390530627027523542207839976878439197991187354812461558561019619739702320368674655559371533379512410032711453579202580796845259465857638820513278715334716547083519905703856186932594046987657859927830639581834284224516312194675109489814101707436171156707717397190420462545434223014617646408056270343588652510282597978598968129319213081567339585795191210711429124818804296953149673681525363597097009214944008395625546269181370301195302717846759811643869152311276141663232072924208126415084455436211499162073479597839052616336133842563224798868203160374509730933507120314544037401279855960470784029702105226074824683324926436185988458419699281332723732506005243002138038663385915553822763658849963365346484450323550809366030491499840345354598939214485732710503009965924745881417762510579450400531247607658525542297321977433363162966883760032326920529311572842519970825588047409667410811227436486922915557725054369007276898527568323733068500388629941309201715077098598817172418121102893974668429749918487575015952168899297140345438276384104577217275631141256406170658527269379613628922151935572934093213127232509878845417873944743580607071772926129411991474588498900132580730045534013402226266120815758599365094303044406066733567701310712978742545933952865329552450287067967549416850639167286206574901095210026221040051645104212014698818316266753792010546418065282645200510436080781064902555118713112512596041872468676791865863064838359490349957568547210987706673893535847182600563923237527073956106376686137544573780124305882066856290359380932100959618459228751370289258809466587439879335143938007223704671084664953140516664076008889957661381519861457157433900376482307708945730835299450566370506265198638933449621480596500550818783680647587681874571629787180614801769365609640374367337985751840550380171552730557755822086168424125088676937170045030148018045749156505922822820056310132029979783789588645438192170263676663198935344270293586002667799915972397226864302565108229049436830295589873485905600348493306674806697740672512982066716409060020110006604915226628480915427738449064378093505278697831732866316787724370325155760810761882083812874959336441992285905280247945642736768308254178998817675975881484660219111817153863528878574873138517800884819957917702062130392946953855561444064163745282414864681029378636848021873784118323382059867813799926822345611220550204523940525942748073307839345785642238526770742796535844507114195975337601638422618541903580113432368072825239277868661413470191526657747107040499814108302231294215301600326022881030318696252830256950000263251180866914284344976758625688215091004726068059147597368937897797754355824147405839984477881872846033846337648697965140991116524476170080591187275816560034985848860840886743631121882663185829704014760846638555450179973721210140547305943862725750695209643406863114969843131209974794949060169005930148835280357859132438982602102366257032994600624494380933409632852496699415546190549675371147741316431929006173646024519170530865601452017398821195762025755814178576917788916728389432843534355191981715820290319085511222450245032175882588861994521597250631107695262013326908664416290741778707035630655586799379479717844426495630953703335258689471181759240521318419036628634211635507526130645600052095438375799702866763919915557455831595935016642147545356034062304350646301429645255618807062289569045681004885959661775273151505242798368645774351511573459966966206133285162413975654379403010711570592408561724759936385355562724886066631025620409456889651116937110629054527144957174683735192579115781865526101557124277052831776263964289062947935420009757882294390447541725061857304910896248231295090763160043237419537639860439760535308030448309966009722766619838371344212008365082992383425806528635107878852508387529035777961040048774156991821762711479800849778256739124032733764292098172170078677251301718601682324437119110411723083929333688424275286872806334408039983881195678631716482674366568527970348161908583096068323386608050690082433142808869742922772113796216406320449571550508368076448557190402815965827489119938765238331547741848695274556404645986772599184685357822298676524300824946452829210755321413497159201636074799711068060085365616761669442233220416231938132520754862279125954210333967175931623230823014024252609099145005074047687348344619316144528224716703387721757473182212039973836096489077268136619392551667467730804310617275044036299470779944201225705694441379031200032769025507759020421933024166226639718738976858933085822547668799576498911119413712001684040558666701812376886973911481339112312422328359446203772037595699967223025271679923118569679604787849975625153610823828543094571951005670695095782222292928378072246856178805692275690996177661867398786898857324442874703269722633686406501011099529959921637937943135239181384127406192089102922736243407034919087478687184961451713229748529701826609688802739659872964039091997651083039250748793988001899375530083575964822381522214584343546811576743831623332579938622320622467055170225391678064739633649230197210696101143754137456746932200025714361883611566433915684478632315982569502619045348431110503283268933244934544104034395771707516179818534095892652915296178980002905825374700551246198158530633214084372547373561185539127009575865838412952707799632921343590184784798265922257296364410925549409778236737085874740798005686216462209822785654609138008119564377228620094531106036014927828045838836020381804184810067961399351705558096837649973688559837491598077239524817343776746571164380893407117125515743364808660105549166850328281430113624269889836689541000268060370391262526840451604140678542621100751109491606921515735981172301554579973937651492177233535180620410611993249156951523899134637189527625840291083664909445465074710202646718955534536749443323222083445810369328239219035845366779243699000647428985775730218772867763289459090091303242048744044567298996449385139036957540682516352234577939796960703164138462186007776935887212950148823709585809171560327053890712100495119248745656888655037768739739733150456961171285562902059315473946810287169354458527026696661699082302815086161697481583003781065177515549327750665738802450931758896477428647498537666476758942667994922453759136978150370031443559456610434861320695740177259417039605871960374223912402451681320415783024287709681888305755501844599287662477739924718900919831947087023332599502838309549273882251922643127052383233538760290246130000496736597457313417258125770382100424328130962071975364750007956852969360461814940050412737448232245039750784926222587408546161343534000357102580742320604479371734772874731520846006533979759600309171114466849286306212041195734976662899996638690476265499735784682949068977025850548452417042285112746384093640779127375383427872929871974347991770130153452810197966875218804031041220031543240512506249197288936209290383978894509828741998522684213600621273472933658571329303689822201561029674083775152835725914382560164529689512374137568063391346482978407067149319433897848124940077784588585087555488624512457725627943455886965231359968586039063544259841143750312643066228309922765184777963329596893040706576505430702792259066903471999152265808513794729387146449361834122170154915916701637448630520295877985652427229935722412873318535945245455791464248054249696181278313945879235770984150135017299648675229075776453308761079344183989549798161788332428927066916699122780035314992280086121208003744931348973858461234068907868338502024340203027263091493719248191916640486186449288859105167225226935376432387440549976284782460803239959901087036276117111749191072444194924612781433656540243082742048238692766027493458662719259619531733304938066917255183558026151003611414630298341820750222998866389316473367163977319612830584097765630252814818193290311369000294711449004495152568577675028762446643142805626066947884740648937409627539512782488883553243924973831850042264278560354455982249094831861848674569790279662565519590259452479052005783844778940079468800408818341236441520450353790167590108430811837131168139506023794718836829581577207356443848338325574578690218965431574761864236237730601468202875203344667715141720884861927264158985715516929995247427365677836927013687960724180388966137207960587955713668674286958470109314551125758708383992796673146967871166309166242233307846160026109644536398894972060472893806916858973572856752036398725282352220889819208387480805827300207184941957671024425538647387071032985658042440432907745144256819866219929561997156686971126446890727025540714531641936081944757039937510649031949426831035062703374342176398156098398667188071871091435650638479833284453439013455619478636292482353051980649835205326283014580275633377635152700163395880413203153600612974971464239349516848502976270513610950648720961844032183212942518960457126357386646570767171564439538988263905357957494204016184809173283576949919866413426141661069809118499047925809069579051336143381716291558537688869581256092756609748806893932679086449020743549759956014665943482299944019481819235551340981777454747901170960782989756358797128961420118118046673030513074595414147483277092255902353221219695518847862161215436375666077296594930520229399142171357136681583677441120153031324234462623179355104341474736722721772419686959389950430252663994962077163457255067089128118009215873991494628722555020774143215096271023126633670811098325536504834563647099666082153209904319847595284526602940753949416985365740381785135524531081761243418389581705408468157741667162374235204986045393312434177910064469777546210975246759808801116655660461045308523038302399888376698062098779183954125592992967818086285911153771234771175432226236726872919958548612773170047676619430788308323877072585640186653928070791785818395612700506444710172089542665413130698712671741924491664460242261633716451325489002261609006965832243885288603190242931688631020651773417315794222254951569504899071945780147433779831071450232967278823626469325190802053561626516509437123586891902268150614353579434081661081258559346607228479867376271204984722414247117285201677792531823712630321250236894515153898035817225179250560763849211343098420736538417155660196089388566367791167133170062417671080174996832531281066920815705540482532057604559754631970326889732812585854021631683828117761071358139822247372297043051626108795025475521156088052217065081089471424798787821208140061625937173894679268674041780451294875165032110909906702319701293630296261642300392911518634375853649501628789337785693347916259422603090795058081973029297458428633997106287353247545794907682799672650042301796720957892263028191196370883356527529368977892647339579122486421917650510627305082930044515233410532935281764808242567001129861406247228304547858841240291699298445901157789393064103099695773939294103406197897604064355637797024368675293386053704518204945453628784361330582923945257362754580883021295124383548310633996099387159715755597072978519838388173220859767693939714904189271591188662858033126877432408199646699412316146007465454914978860065925682675388211045697538838849140988481264687867212728144106746944340386776425092198935082759671925240476492004538901261657923743983692586088839300609846774141183782774915506008600955759894368882056228488136843127166913275036925596791266513888113628062876470041176969322408838144406997187273866451448705246273263066069990817227967392617190679181462420141479539850501950746909340552095797877993751548445632464113336944490327181651009199311890266411843579691410995896535732805493928274906118196394775241618628569933345734868733931717662723751815941076786541511439164840618282377218095325078293043555382575807912616481856031384000418325058458904933871124951930485408785524456255553156977948311534756543064404754702671432485760967484716899227426311510327173149653711709857253449530037778978588704836258786522244843180520802375966335521183217356828949183917253824972995418689627735921686089447936290700082712936758233681553955263959754626222757943592411803870839389873428577143067117010600317851814067910503777777323635128904038231748698369798938173867570592002353233871043527362494031962455039458165432278032901989066278446441672114628684778360397500898323736863537501074641990171686091465515833053399108741544356746396747948541498677807810221440751073249155012406369615903801505966419102330038578256617892361167762687685143705626962513622420484906106399226046254415534501204849354547517385178779626720830035313859647145786327268327640706060262597310184457627408410378959540583245231645159475567703920677738794542891022654728850904828462494087118686183509630456011090204143684098153254756607021980605861505511548255500114134754418499648341421370821657157608012546700286176491182324463280817924209245677917172035369140692871392307047198713836789867112798873355956306413948021444549591406262311779704655570459001595436331788107587818705423356247498984450403558693263896373953477353317998317255254672890643963334087132100635694419481820447746811758102453512464345315680895482004880850304107752541194468875656849314558877221895472385141113524480731932334073012984076921730651354159731814362736280909105404072633823370000535595282522242912241155075842068863196524176909586494506673934857543870080831927372429961465564981322294564513575105770872561364442156384449796473928158527826860397481606968800058310134034907960614302257015947708781086809050714839124592241845903096719902473991787876748120699850446213763517739376279370757849042333621060932624865874289306299009417887580399986330840258072133341048557063924773120057297186141949219677717228422438297275894303256277811974770901096467816867849920500539679273395467275294244515443783924879381645548293600529208710669137038025552368922407138921656325912412352412209411249778543940890143696842209989757883641212385862270821330546432846928184562474209977542757357594793712178807461547190871521341682525453649342644078113532482402286162956944933282463027246765553168513690111355226476927141553002753498418529516791507699433169512922506948606078675894818418233585606564435532244364150412575476652496817250586166169818081585169281096594134239426858233009127519711239834529718112872994424609765030067961133928936479841481661256251403955098821540866409060536264256043418775209342490744786961070316079437205837518329255371656453161878384297465585550003763500641766822005050557987972218311187519953395006670534135279311510918325062390860002843943614833749032148218401581060848438999336548875428903925076002253628755936820289580347466508868076312005565415571773390449181774417747390790701369926777039606752265238763562980091889983818613912708065831058294998151147218650060890400853138901563080652454261880457304051192203079598495975851555410085568283960398070627645225382312251463473635824909805396173050015769856900168273452782079802536298148416514429402379789894164380826645508587263010261597828186489380292860857127227027541903332183568721937581323329953476565707319526369094692603876046670640369708280032988118791485330122981209791294960282511698689921072665968802440073122536666138282685076339961278384138027368697466664379656485345548934419183775358959500159680218308756442127129373960991753536945824778178093255689666815210157963297441295548837549428637798220113735445313636965565631922367557609184036293182485640112242235164151931110366254777720279641601090054411986638371108560481039177293153155438873469567221236597480343873727842193869091274015161785595894139221669050113440508403964750325634146055128502148758468924937715128560390190883253587344921649426917865881036459021183358481928075506639221399253577727628464530763843046127295674327805141108024584995140878157368277434625454738477401156252037477530006531425221013565590282994045839570114721264893481824214776920601215376740930710153642579081820474634982257407648568194496178029867584348002717866820397844897642869766904802856466210459419407791543311022187599915860766489765103132390643212906619493302314586763905201040290314291649829538050011642424579907132910626426769278818407920984634544669727774948983922683699226453991782081333767039257826246289048676929515066882451546053227569394848032493926540592832793646127766502652297789707357649245417104480828175874375019890469462890839632639165727585873552054704319562735466393350404880786274963495760755784700909944287636147432579399970569146063452709050423199909061628759333719160291048154530221102076826632026749138994145352576294005119951654061688496299150674375292707688916375464074890508509515538517266702370968100766405200957277636066994274721396062894551256949470506028987346648661081082302891958197220247312536497712491036834682994844024052379286715300098866414439834263034760036705793450958986815261024853003192548159661276135519812060704405297974108024050773418249707151177210645255982697108780514269434342858090384874312083884390155898236336121032613199292273078508724521542517065281655441509128705766262844042806114253929490156106121095223060361487109895367946309065201205601287269372363264229264536227959987596882582093117999389743674480934554619211167184786718722544816687668498018434444386322603591425599985593822073488467673300284190601529041666391538726409838972884519923813525788869373285670477245378918390471191669995271128305875307279636510298582727108964027408838409625283946759277733639284962781116202501016455306248377682932592123894124372591858716723501469177404685479822698593815294929438935962336071696072001328273979875535704535718224920630186512415109959994270906890577149411889713167626016778168166514865356205149914612077285912555472038050081537940437564241350410821141356863147961275817876757365086273261672266383821635767472835780782362555470381011945112315032605707476631563836886844562583234657894794402448570917134665763826647702683102662608264629366057478777659476297766727300640451598154778438965825854975257725711881332447047572783674605638438694650450626103688023416789931181235285869252315350806417170431405156232042121434239475863714210749853744615824069180164732733197339244259672449786933472364793168356082133218870545107583232909677950710196813766830283669646511911800230147929286261897517451849726541021211156545365366525462593091102040271519114471376294555435931523792794668714995998784173239874522080741000855677216187552700391024085460863429124259025831678984016497459858912020978591761853557051182972156753542267780703224384846997736118972203946482241585944625035956384471748335620478401443631601069688829404284650613583157239789036748524724831801712122788836304418829904536525661223772752086160656887183593605333256263070480148774227978914633531594987421356160199395224612638668142336873706082111874038721205719404514192286110392836426489348307636746754899450925271485969468197391759278831378914363369428261611077268611615425372388329442062237957889896697636553289661439370466446086376025375151681772763834330687282354781648304777374315316578751947013327724472537497481528770177877735353636978828973582059164327082231290932052855095920876790179495585086591319198435675614788026884175256141137243171981836722424405187586541832006794386801386513362060699471223355853800229161944915996608051887494285329738856879266523303320795146717125668537888746320123507107122376311155728763917057979387704883087631503305234675808069057193642089623141164913203034805131156662046252256641178397614048438768768545069149856850969382320654363700139405392928905926379098137810062360172180180442671492277209030391897421725723222405082561839611055037869076972557271838667735375171969939727886259943749665335760629598351915495714351622569650785433199305100969237106086466431805075919947106311988901602964070513954096761074143122971982647116043876224937826122325118983824167031761332683981053600069241705734503406462114084913127147631466876669213465780144200066832721560511065425956413047777394760643534862023034693083843990320449348939262516961578448462954356053364154973900480264276866972194222175895504278643567130923147069665293366340659976737481557944611945600348813428608009239939354525372139640762912458429036131386903793605002755642833710362795389240498923792755284237277610185196032829324181738385689141517464656568349975943609577875988716498297227512339068387380058619145418184292136600490906982465605098895175780300737251975855789917781624349021032813974023185578705306713158828498971677155942615837736438737139435603079942987277152357597560898133809648645282684413591693327333072978427992812431061181212260562636917676468618684338777935492372211657705453029684105907085926476064895244004247961977599047066905850899603502031609823203850905832467732402135482474073768231104601156398577477321902831772592594049027254966534004974002254062169830285666648025243586862537109047042328450576338284751931717313335981951927973932645794171361710260392878653997454014955223545452789142363518084881055395064880617349882984553638693452662706628800550369733136064736439013236612880490179608839357596806409079499826413296819929493760535290471102351621404367540355098197904443092575770381608052194339464529841014410866978285383123722178048995224699404746456562540565502834126289743103461941480230754527486254938400407775919230663320834375451195420783954087953749496660474013951689936421176801931504425452167305731053183789106876057905526904272026711971018972303839275974422902003083654524023327300824791097863418027858841885043223648379197703159680861517084756192589305339634738297258309816758292366787759017296983923030624018572291288495233815539658608838928135398056616607174662522582882340847939079635269317024603975749795152263523955374363957990716370552461611934092280009271671636998794134578782252735123652199548382077374010376216990574278303374653734815493514263371958248779281290969207743136800270446646669083140096095806028156531486137622515330071460080950951937409877322851099425751260552154501182773284149196976613708037364278096557512145801533155992610603271958676925671366558859817381125052101244007439970320435522285589674935950930659958549685110850149276444408113271698974877044889497268625188855358791649897322743062978274679531983071154384445805109123468624523017731071203181419151326937041868466327109601112990772426225064234191437309557098318055129889768952006212581290901185384393995003830878022847254728246404681032496204899234464394238722542447000159426868984637755583239444615958825014152762790816128588136738033661289198252266860890576990205099841137398339572806925615555613796730728941468182935177210173021938713289475060071670630722809301684852893490877164512022626795693527015857269781945917412414959490816027962191555608368359176983154455602813058413638702140697337202369239428364366840479570419820662625855505054474146914778135042144724195180810065735446084111652303636016965796996780012960188933787186827902030604270785143106477062724419656841195737136004493122884391380564626193581014133348013861424411718950651593504564895256030285406583957057110479807004762216217788192668355922017793245853362525799506088502691687054073325652587149749503152100439064944106463351123697627283691499701348249041298454026159590656181925234534148390480204747110279500043354101535129001573837054294712863917520491684020807431724750325539892145919038749451699918425965426210397537017824791596569942265802142053020550891269984927507999494019099407618087085639936596445408967105872565799157063475859277484083174073153308008332199903441309982842260229397124625840269277290989559886299884573381293189652089580969031720842064252038839171606849261036826070601486942062755501080006778592623315948404800522341289953316524308161365287208209858117302721987347277414878072768108200572639890980785546363644862431520364395440036633386216075940061958390728489597136570184447420403536364961519553993950704611645014886786139636025759315258565106158321681002598909078914424084371496288264144679080226740329553101031111920960434062964456218856740224585986800000079448355020602428499680089457405613126770894299734446237116211274088472309065525611704711840019832346717298413533722308128404991888096497426663315015649536367029027070788447594395213390256558806407951984636646546567361243078223678471361186403554984472486565269731415078187478272912915909526928488208218766280479697974451471176142733340693544799049766006425583809748330829258944837836561589696736076116948707747187676307807716915675097236725241253694846086925167917708846890071001578732022471972672299076527453096445730445753568662078140950540406084567261587907288187109424715927382712401400357333229705579468173561204197004201394529632583079989916094778067014552514143519489206149040575145575810915263620367628116176723140462814788118282957402378782398896335479887968695035866709204433545496404507645072536815382111436448380476072314797084438248952658204017417376222111191337579597343727475336583279096237144784584925074157337749573855797412987765862351073046871131377071592276959697126783584167448099622531661225969018194786138373567091321507826780153847579217193116192167420010055446837155855103751591619581323451254890328535211320144279392244351742004870366184458775180290245419316077739651681162798954581091437880688802030630663001915681319434713163403158197697018489443135780979378799606941253593503211892919318779492571620970261909714111165816420250712328782800159933416444565848584987180622485155745856142546351709619885129492934867284844012980388459131174857488689068051784986829414638937835624440567278752352038834480618044503814049962171172022364700593071167397777982363969241898508919317950701862642095077120608749136433318219571895166776186411620997989790562497456236940930681984355550246525284364633134411225453479404814806046023984043415977818221850463352626276565735565393837180936366675800399428731075694213207260277354579001309004894317152636958546742767083531007999671686363709846362640438584788170811858897983924892129145888255659459056272930853448968784367168074024124865992666254861152222650488268705207113267774546767732459518848954641288930187364513410896540471125544595556410038219430806168046548011571646061662050657370410635760240022847536452668646053433116983228925289672073468727960786013282394776982117274436549930649953694832786559296871861241011445364432667140445466530012399530788501343788136284518431259282285127230452882994037509200987684042463441486049068328766930994590680821905264665083148784405307879186380284113201765685403881846360078954156921679742787503824076033608125868429874803510028336020600888726671026804529019340076416890000050420531592453861154774020703805337886370929966080809457358140251031328926711847922100435960583341837079462668794339308344804158775462347690033134838470609261744316826433021896796226456004186916611446704413037568078484250049069808064903143119150267432124541340505209119839901467454630701287121651958456632234890991223168244050854372331907231237093649417428556914161823341673883046313877737938156700562795946513722798959046804050083841223329155200856182431813813724407369995861137990496178793655591730914386076107339382380893303404807507217936663318763505825569788836900453112942850017689572332635260388421575913925676387470256752470516729900702385941476075278165581422854762165931624125181439581134608968464886289804990655156468855885906903684439788960952311710284927853872244323015849090166255054699918820028620658916281310923466150174735881033948482834015124572136129380037671640964797165849302232220802237261599546530736200324612455247232876107655886144008529615665781803825669257118151200259832844112805933743541902054104704192292513786620854632786027549158204603615941741011920807512765785223862753417647371458510408804500589706784440294299902634891720364049753202706971089118379441999426359319296421943678409618920639256788054853616682861868026223115350101347282647452371000076329926779545415491910522201434774232227784725063093729385578931802966788360999385750373783112317374660094541285659039831691103061458079343243355429367142234000184812022102527910692219745963176967696143179172863812148305927353809170460183808772644017978609968355306933318212912971895614008615125367741256337701955896713990818533991882803191108887253848473287292321652009126339675410051150394614069658467779762904164232088402344558346981120193297008883882113773335371186390182298955168689834806983863398376609243095996467581293755837861397882520760889102394680226135674027277370549290194714227049484446916381355953853672130621626336039139336025914813122415282780275144535999414982498080025324341190308088720588926686521618220918369970105203761264826342630332680638321849044469981880159594302650424967797013882548158656446211639680686672275757190147925516497028132837868093249332805655627047019452508938750759922503175649477056276982683096831653498857930871008464812283334187340415567368737110840470395376755157422552001466600526568709660935935457756473894737850127001122579852297548486997743101026705432705347107019765184935829654095659143961256166622523257764651378207474500765643058320436461370009623852943601800704099059332694677308211435916129556482653381834238089551452180652295719193697799324834794395582048993249302030264768882497216956460577721630763223961862737614840958874766950166987414779664195776353847156054492139499264502313262189135369208952193405415533187294092696917341400012261113823505058748568382160945930080814803676983485326571191335832692335417725539208784993628865787934364112617145391922404913134639327918223747871990509969761419023561308554195917153249824461732025496817937550872670627832658114363856601740849650995529381702002562049654984226266742541838160221523940058514299426888954429347706454472531154869860136011322064025813340755698191433826202746053461908343422878082302460843316331943528028264990898427875217882586317000340387983279032360703303052315148313175157376614291794446908672417850705724189170132592458259953250529939715595727717592039348908440237392162455451564468631506159295932192251522081988320979882446367541922989390822155752231153626249427178327730044844628293506547624654268165226337560255485136506977702968003787527091981547217508321287993121323273958966420794091390801827563215695222942337120452789676212744822662698533558167497549388017843039895262679681353332300372327908856504795243091511442701523729175838469000457425604794265955815237739498409635292448637627711336262062670263309534115326272871013746175054983541243793134790526469044399896902546760447809574049095163154439111349483000360011165954082107389064363241256830285087274751337655183647276059401697113770701526247641246477437151398080811616976432599194867912390876553539373004245061129531597364601082581295555143721527953563736937617009454489635182866877997301856161506473281679902865999532750274397663973060841048988476495771103690278597955130433916348235378660755786935286333601094067894460508439845030335208384950992273733137525304141541271957326088508466111889385125261160813340784482497400779286488015200004041491399620103131774181755988446536805878305539654115609412506075378285018733311592030831613337658113268445969499021249645567450799865562051031696919481416915338238108283673957247368903587866255700515561647363485296430967684150054888746747751825837315904291532392904643260049282433384067373414995800857623101991914137337812076114843797644439951426843669314145324335023699558467685266458207520471479980652452495258968440721169344715596538645266522631763282913431221105922491941494547054462788918475407276653418498691238412485685631888204713760106592928784886711844057267273251832667651204757402374795274763633336408850180816413135103505768312440708462687838832009633044202670815699626874033530068436065355075787600806616095340975977039149787527202254910680268685709311388332445792730468900410750234392959545290446153134148944503715253942026723866918753037924340369664274397221845174272272909389208125526517707339095231864510482038285474038050768054425414376869790858217561330163349236234641880616519386347588312134538704153869871251176645204824708565729036456440509920844788972744133704942302506294664418936849413335344339238486482204958615710089295221846485971404249675863913795696227057393190776992394180365700729874504099011776028802747003837605321476841587820411626025266343740751575422425481378356556505927496213970434894019638017973444605689631531144309323650629664746540240943275303417734055214739570332014195092720751325525945152689186029918823436267648184522314005097684133027372817389431810184837875466082581317779166838099609114796168930676419615577860818015269036278541653638257042384043956298719290943693769847561803345739933633927677497367796563937936158163643003613408414265591647163620198044121694287041535573579699123763917827774688452456367337381239855937250231139531124226170022600646348576044816157720657320961870537617335752859855632020396004239435534482225605236300354013016523001107460937909855856677270349829498489253613347805722630909600319950502834313080068805017191705085274966053976516275513128919863476950157433067272870769095045763504595962637113656911342405343255606614541058254629447309163364660372127932990774190388970236524735573575853260238077097242605006297087352976280664264657746475634015403024391002362837115670135425693515337348909961628804823529022731190170738130489262730012316959512001616004454721800777326170761476974323076715505844793108507990930779169078240890683773114117560390333174379421602760443150898116025972492279362580389497784019822822198784771537063601494348522913833051483716464387876236682140728010142962138862715438393806697360045878871147944145818934930952405062973420901572603864109008826043302689794652418304887734104922869844524259077635121022038141298209291317401076544003517726358864614950521841452618678379703788198982537532062764685128271246448135980574542140917468508527829674992804359585377602640850150679400816102612547049604067622014645141301477514165740067819754815951025354448880501475375155711760070593408829900835711308323970183109185178526524942694323883430042924167182676953353821539732003267017021412447031060100154556164250471055916518242792360118619384296956676385021931834057993612677637096065991243047888147464119641981344362307826479654931315995344363949650140952080564545337487335109500354367016199715058027783872530163798026364115923021235022095614427805369404941525637128942670348459358949073499085141855090655593872903816442291873434694799307641709683491169308987207265352780235822466296035295770814575423992200570396107853615134880747713366690459158105757836837335098675569026578170272127596677611037773821746084302854102639792127812900155870396912931222933060948332298607811432628595429635859401044937226969287601300131650196069806425117461274137956680633754369050059904693733185107523392192529904821469456184601567231555065101281510736730193317993366250758829373946070566421439432961002968415510636012718025541851396479535559135471012161680244141916626930805597570814196464115295773821787217284484861269729928521425022527649325235256990383154913505057774957836943422883098977743532271379197450547264075451595054955374311483273072331275526605673193882230476103735052397344971653582935222736513420308655021035149117011071815586913075838130835128515008507344514945607253565386846780469967142614598368298036216216452947855542816454318788081501139054323045802207174312416324203925040935892269201462268025686193002317683259145168998500489705827202397562076499450367222104292401326196193130185984863485900640840989982018713912351359361480737516006887714226923815171870202443662762690690162526718864761626081982729119992511888097988824134911407660630518605488665284031910332848610969897407752431399177996078439599507433988268355708342879678051982898765833499089845323389815793873994606302291280515317928355598222636623262652512530818362873207018080985413349184571133272465414088430982035708877270310822471506995285101201685754854767927275240375733403851695037971865823424702695261070289593521057913973664487854295001719127219325684206810965717130267207732680481598020354014937811102705937664401970005985305296353946824947602937977937685024419170383625317248384218191515427423995407074141361998653419754112557864079364838113690638058247235637616886147427862210100506610241748851911649216908608551666526505493705929658764492178399410935366960817478313639717257409251833540565466584019000776666158305534598542698957324107405275441672207525304472798355648987560132334731869617292210754914866341797164195745875740108989898214057924976115676462217933156842929125841644515776790238335808725000094215354438204716901358714331677639937829568548993796861101043894749789093728716558748462768077405599841673307696775353631340162295151316558997147089977243561731851499156743523969266565041942838254623803510877322001558421668544958770818195806149947140017420158917151120213304481256975558651192135656539241474821293508091542205337713424997092221265024560008384561189857419085295095671385826123340066589598365256795510775451495852403216467895021265906026045054479674730799738564370688610276116025777814592113081502152395328421815904986191545326340406574504525075091652590310053000668355333347063082903081960837214734872470144438048564853842492978203034783723183100918775372279284644510067988246225663122752624911017824936465013066543410721951541076244637022497106680712142096425472164105455083807737734371729259144513545102822225053987486177071798920433321488008138326294849454160137515253420762853071557328779021783248147421865822659899834416852483576912073903277624667991584772407704571297109745840481791454610171669231426006861796344182691412269142416745147800810513440145352356497939346852101583094554780812006975233086330760999034052287164759462696347226415451177957127072153764181190556118599190909287064264281136460485526413830442705718811250597712223206021431171467258423705232928933477584709885320272219060131564278360518709544728871419132544328209142461818272996039322497277551564635809830450244213061959438540439616046723319658191289043657012367224822596554918078432436097073604317363436651084716925833175127688522510149835192537635296480558731692858880015142135355000030325392843173647278602690063155746141532770438363127011122714125333738497662525030719970381621152483389721422909941739434940500853914195648508947096261222169568163969087687020509242601862539747625299721624573033481933974731977918749072478228303974808143344275894237138279251545824486864925934625120282887933221775943002063004955604944228087677729718665928148686140655649171677825704791358060559285927598274807988145528419716683306224983145600620046091376066309548523952840323439745856824239410525164590651619222865349586953553699713282564150566537767302934386198288733559832860893248126137110927095369303955258074204643193883218097245854331918446807750157033991851884798169133352768550321617997663654392533866132023944159180775151950884040015701945071267488865135371785191807032927972623504659323037091017736912041977434216521464586654869685538666045724323629485962265564227747585636580974888782456505614502859607122900125097691997732681932898039315644679264828909780767828233454413802578974231570091642642911594328259050198990945541425811309084447509335707605132863694915013152393220142136844358809793002244954586160212152249747942659532341412940870902158087956296305014385988304661884552060640883547495931430456513199164505895066349025962868084870539962763338071799193332932974898791975707476786333247052089258329037452082140384017101516459961721939229753501896099709940640102515932055415049472874094692709097718432070811054889415671915923500237734855193502120978203309562055881591362055483389324475150537912292278429399401489180499651925514461546786601051850871045325115186011659885761625059213309054693058301152567297382661429017486391472891841682538573842957032814375570638274253952471771677751021792710168122413103365833012995550299145733929459252693420965235800165337816629028041351613122084228265141605122846863442204048517789889985680455284428603862039693703294245811784413815488001072511650846982591347232917162928581569749736943127085657260924275634531415868840810274416585276304889877634462612837274947890902386420767865042923575789791514409801240361637146355450408329564140636562084259176669002132335245413375501527042158393509365727337307842386916413801469671406986258841972332033592628235121260966244024737472775969418637302756273320409079188752828437637572900894216664136284801394858068861958698589291908513316939352880864629445108378274742079052553093058895589124564017018493073610561227180018853192924312896746502112497985191503429671175663275837452691539793460862686911379341928767500754448543512258536643775199082699571133562443929396833256580580207583596300199655187541552987724921499148087256586342810920402370022270379801536812086336712846887309256292568020881252973192579092426018137630458600791571316094116894634296338145671970570565367278797770725692563380948046665416333212644343878866820265617955242602946828473436200725794202748110516113912253985785429521274668631712162821483949637872131161376322428371806035008485705606587833770263812754251150589766701420062440936274921481761686735758366852613486913856924401825870177555435275225198356624394242244360523265156153846511152377235139353497710398776545598888484665468741804595537428573089248184487983363231180680157881043484861881348230700233614689083895982799928277545447473539086238904315730207952249646689556387940432313912101113763659297490846724268346671221442028481328336375708657607418199959424741193433666354114364583735014381058205287467571174673459425276362690117640717099228202720550700856522148891837984546733807966678461231799609485100774138525752348992176875252025325284331706845940151247349029881183659805591703491855140916104613284280823015072129508868384884856949286383995625311841744728421340077127665258898909339170406965911699009495176977856382402723086359472783212463056712236516180580169935552847447701999581722340943324962343728298482890213399489028118597792852126250655785782160625863474850116665099038330106515363321074378411147278297243788414777393485532846691276205151960356258670292789973708577093409065405991262743175029803981054121523062815380623075963508152416005915852250556118893347193261906122290928117296988764516721454864411858665754017031359515754406800085612863723180301103966416670565901993819785898697252528265248599936347358560135518460127604721296535456569648086783903080392700643714851367444227050446468056896787599049730721499882236650726421539564335901246951430262950611399328913112891067258527941555387545119074902503056632375876545998120223359869188580480039666221204530745160495342695319217071165693011310500572149231894015430316095885109487403296630964053964950448733511056417224281608687920283728643968363684918614835024814434669579360687553610082532835890648274591939515113479852517655497872769341366729878978867243795667975325994472352981979800617013613621078144771561309887415852750334716726410011267192799542656017860102438572100662690665861204568732894685123468004051240517073302348908128532497188086912046405283418100241390774308004018419046695167586449314593868189973746063514634032173577014824371404037739588675734604504987456460346970072136479181952119821187660630673393927535724703637015013397087166701498255619264277886970841125605781586037281229971526797299440553699651199332499665809684981328763023989323620975073457125770507807828433018447298050272395326904416431422697523618586070794452836671970022311980500403216472690751170415027671532356972989271044958598609916183680506773453777219598799719659259137959183758814757966372904738680313365372357547054924682755027765286974200515895634077558398338700330341162185782953538309071006198384384873297633616201929846635829488483618763996322302432299030122552796313720451076155306502908780202494093618787535056910917000127232752979778245031281347932408814653616362362378045229626206933754986413363370617827570426699590635799640555103672753641219152557025601010152579215154602838499286855168820250259579771101596527442696685151487897321778544616393432316680531539408531444745198474348887606799126585745666023834264751176321024553330950225371556371119240344141382433648494901357203138548340667543664796237024930043964072455452514150913895011825370782740187499461322910318168331523150106043609439273511016432636012693866967133974792275146570211716499193040840522113881353197578288858756979648355294742948832882497972598541289130936089233196003141382709227609183182462297832323383250268929813024821239675179846464048587293974109869137839537475554886088319960026080068209674765981301024566273703576127128391088448252428662572540100298395339689979107864060585385373194994361793492340552432984366082563431521385465258358760998253222526311654091000332071829712556153140113568110926451170282971104165131896023672128173807488036934468943911646660055051270482985306829013668230567212457328419100157231866986395223716040778956237422374123462484293008400219921288725172056677869785989559580378159435836701674255259968726270808130857397579964663706192135807885061234345213991653439720012354389393471943951702065355244150461305333103604229770040893425809814352747764342679146392608896425320561627936125129708008855728480104710765135315641008044446493309356349322822160341316425611053828125916777882438542821467481029958341514311483497896915408089334122168890624103760232479886470491829052839256826058904077998721194920289821924973368120013363869403280133704046088349777631922036250465145010604711187170542380779024801452908649648747995645141751675613574464433708624084883008437978358159538983300412530825230320334977933869178531619336682363341592578683658932742346358725460479342843839827736910724209731348024040684877728722755152684466186181458653417352577752137957211024342746522436141267923877434361707371138790056056925679751878356384293076837871965131954024704018478002990553017590011014415353105399587361669666850333330927639002242223562733276560574691746470140783664581567600175364320808347320497246378457966388516125751466566521875377697985675653135530343882510264070919714466736217619361580832583418421479947450214519984218204238624962176187682129316647905525381539033272545456223695642147609483037385650853391650214743083121511301081560272621521522189481229107319634886269854395255488286942079720794789772204241752551635913165548946933521313802816150494485733303867097270912916028194428969005008124326129331418934315874170443327569992714562730813886038826971133267018529395306180353347510740871031147558687959313050191700017496884221778453782211916029732737462182923342564113151716871183812842073852824342518390366506872490589306197198286577807112195847400125440159100396348972821780315952076874647189032848982351789860477162031111924335484499381872859756432286370765694883010329458953499406182916985433333137617970851040669422297916849765261695799958154901089477440831128738543507802158632691143686327920969441902632062215809253261970051599231889421015112763500448289160644168203812982681591481615764532428483843346975182659940354700588126006072398668551863083919036314247688435114823788689201183544311918681543664320133429993957693549238550268743029378383390763027065328749519934556016215826068337451173770250538359373541686593924918020305720088206691253231444489500934152939820826395630602695796905638050821254433913355359396947093488474201319862303217921274795147432488616552005440903263965591789595776537828599734642029811987261036149149110405843045489539322189136145486514258418220335993271285751946953363504571155457630845198577004103765050375805644885017878121195403915932469221817698740298740499111315295831778628475657298968177288336347381199615884346288672957286915656278707651835457995682026765003184819234564724495661072203628608534837438575900223242964574107742069564689535467558718519672122534731124951962194384459606733288858397371594678224425011290638187746352809107502106132448586471116166044310706726840917468447091117454759717536388496576823833960724478670881000407627520214421807972300623813578854082903780404646976499061401221773417776243732603322969904951270955758262446603279564162096727961761106246779271928079314001559508567566226684020243169720744472290320023174500265378085884249250004012968850477915328422189063370833312002168530166866344070000135482247079578647508215448979305104679606400976945295285651962906820159354154850411205275424846801505307092758420473543284999042348133885234496738528431706924423769454979145517724702527990538370598726274811009421903690148187170546466957259506605777109514509506863557860868214083854570756963097342625230818114375894317429658683958093767608695558219722045979229385304693073590755766669198442627086327375771279688056960276350766635412492394719914049332360577284420356480869719234324416686759189916538751783331387118983271869431805124108162029073033028321045594257779724298906405982984924961429614399430088116911386923122708127639460594947025891169991601708284674117371657736506103872046180045571102301470977846486798752236510406549155866857257314249948629993254243010003912816828585377670971312737994507225568348902013056272414355208808543194736278037047323925102611372881981620844598331527373877757768120118980531832441631962035577203423365284706333526143061793817325990888814117065464094526262505552550453588686569612722431120299564306696941547349731060816234800720938478668116225836729027545555246536767867060649596024691841897334481525251005805955726957152640047968889615656972871013954622899927158994728800056344470328636286786103080427237609022272956294111081967015614849248640328682130758380633103607136669643503765297521458996462046778539381313364431636000291449380987125876656403086801507999398588395643534055810262764687093424192785501416179665159379143120695109632730615840024724398473649548971807999908160194924107379908810778626589523162598824907490788573880057022504581600906625052590134177568569126065505068387890307964623815147533269536357477348454384486302303355715561348419611663561630438282925180374602968604291700757162966937582002564755257419342428673082113494857843914226261319910998445363978687965242657626006083142811466000434568212378761751076099491378906815272178782382016723014973743309005294329972084104253416044562568459443439238230109182811507043211852091768971197916528608414671897570574823652562916241651275895380523903383858193722150442119904548930127613123794701354553562681460892367450924415225876407658761807165980257864423935092867383636347873951946671664726876332346041970069230309477867337570021578606190331707580366113365071563327507161601556205181401726141980967866983325384316899675670894350356311331201138058833981324134363434134855891046545229139407610680663894446565503850076362679506993295662331242425152874528211070562811210057656282472017739649156748950817212709892487517330840035861822037215056347766659925740065506789421085100132776045300457491644561826429456477489270235415030007451066331256108883653014316043229226857860975911534960642983706492970171842894466529823786513013885131105002676812992916370503709538396593255399498771170490473106208957205940537066398134673946515012009530207662569490041727979747632202833194728271668232057004200537649748043403233935252410237967313733926807729909840717060175165354808649220165170891956610786920948617210037444691164563021062340991918626013556312441492074536294048072414106488626121652340867540660088838263850406852095029929753698436503647793109355616607771640146224234432060805616053978054340485305325842562865354101325759710152156020866638179369083652056648724068644509627587630891678365838809100943517798404301018282108319000040940812688503051521245966546922670890125579906784570541828661340846422514764632540105111152933258785905395745300253860981844127903364383459091812756361874316105176232259019989770323733145141500709446822269585388886351195059842912236706842319155814211158511859698593987567212452159658256253905071454322071249673758789443253240872005629907600679540991661667803098248595845474957359574056013772005663478921049814995766375106565156182723447320443550102892086828964395618175410532515522204312262337162468937138473597693561457189128915811736896628891842566066047819323258580494588697805094388609232005416327935203809651836001003336525465147650509184265518324166889520467593769370333158153080082579046440447801130772012393223766679793405164976181950322233250489903503658106735628335613522554261390511726125184908395670498273494540965764466140142398981920448449249339964298560182620549745483092463957625763233128584885033839798592874067185133413342142402304850592066124659239004125049356916432679781952390990742885430209088152598447815258387481421043110088140899221673951243978021054854172087222425535899391168192547277243246043772116590156400606951967988106382467225359181627996356825096646841505522662110658413390132690341825168610350036897714296088252757166891292963277187410201726644903589803484705262475328790754745178650208741919049895740846747735478554678092629815650487224926195040583418835773768886914162960060890675106346049727061879563237000616395672903530585465023352725249309487062746170313186122806783103760782344949168759360808730819579895842686220446499331974158582538053582311609061454832010641305496254520812775968027371937352549063522722663598094005124716020303007991903173242757872013692629691412470665893013610179963482410695031238111711873664192902543487579040451104707345889752274639753256771182776197838627532791809538886700662047870882450644380728340759543131499399575129680805270794096413310519232949284754938241816483401092175299261373470612349973464024758449038376355715235225570734926324878386679536892094598633095725186648597072144860448644520355776044547342433360046170341703264993991327175666875071036479116081398741257433379242647484000938556413995498105064274429548246441491845887702885482264045871434632236211990648350497130052063081916085513836544302453872457203831226867337251870521786129984081752063156800982231278761516456802215218306330270714490076344153979607682464217891822788900202894313589855441679131586051499306887208535820762479277062803992207360722829643323129265235850334021314558031629579612717514411748928544300281548901274429427137390515731408965477424330807561275411447830474263733469966938405910756888131960836277876906914054066094333827490615421356780769500211656575679109848298595944133437969658090155900347412518461206115395363498134839143315508979541751463337394324899191200413087161629850455696230667996162144096219531676015241257163868151569891626804131651946491695878163545696243607491977140196976461232836372501716048339498464183097519200745189894961059640213696276339457347354343466608388287369835838506187434636888836570461017586602631443808022679598931960473132909909168563653114425625192121942165933088720194257241601817384113969424255362331845772856568475608060039730183583210548778635191251914596615867313135235626117931949427445508478758194569008985293591449807761367517327277470176472292556217310446769911030442466615010990767902643147027777883204577509790843466045111736431014698234612749890005810669760620655719099152546512495208234102937264896884155668699791148179040861543378004037721218949006001221839557788154540583020125319588579867995529497300400788121478074266242663805371111845690548151904007606031585921630339344066426094041075642700469736065412173618271676760450874625512339842523287043093296107312523903987898866318638974531096912699944697297207458865674873352623524651734676052857067909281991148234649641963489800256123766670493213532604860915519040819309457147651673389753083450433906739288555533813353879885767017967827867889019901331581709548722020633474475381010158132115171054334318705088709761904063279052764266322856633283463526094437145037979138979502447224172257537893995112795845185629170107063114444145422534180042661231221446560916198128051259680332463863784451590312875534343398590169507085061389573733873796431284878309250220036084277770347038131384183573414610353705123053289115817245280907038489120826105382403845236539837404176829629711920098408067094744153225084972211478334743803546489004282940408801669102715862718288628084608352925071326272565072611236614281624220453073647858051678115640546110430443506967221526792522118154918643396508677650885697836447207065870738125242604670146781240760551359898254989693715137040404010255658144881624169310575365600666994512698962565568499736085136976282186053692512477096044971237002248208562684208956745361900169252988893592455318029718605049445518956299819537920149266466514917661977965935369203514685123642006805569163849800092184531962823233006888701769131312464344666166631260851470815435434107245934151384831934911466360234796076753793714553141386917434049552163580832343456819533469549512474533536570438348190110659393458687614963416137768818800491965711790666168036940637726544869314086129250706666537175098413363594719200002620086700479988104077299751115524082783725430294250944882116682271834399061108245840814529340262247367603718552597204915346392297626988068472921041947463796285324081068920941332665963418343401929549711550014310369317303266227108908169770780568661613794296836694480371293232151316504313226287948558921369850178691255028041503706098634208811426308678935003554012694340695246835702857485949978395599114808229163587903402398947951787395341419920358925219090262010721350333119513406983549673928201811184023335978633244213213964781007712216203406428303814730266854429842404568510480974823343362894477514964360504307855011237421897810890976622786665726674279300485526139777376196111817970767177809383137558189439247525347374538663548751525896401464358463725775446754268376952596591403659822619822616115616845886128945951694475095160027521911037155797801391140244014255675646401090818408865655335614695371775216068824760973523713338815559319975727238724755667159870558272219887696583953745705442681249828219523557678009956498381020496065940006501213123155325112649069744280886504571530042812179533594618673462404498615504358526645307227951249537411103064422108196971917275315310628108797524785299472481438279818806408509432735986115964373699154569980029432085598541982415729500355331479311075593944051153988295417947715063365090013330335261168279926045548063736659535086676210248943779604963754548020479270436753982524829687390472268346532593786626922753993094727613497017938265351845089860244238979784230995502818671693402374721584648252656651403301489360425017484669133357960282875093568592244458635288623429533399463882472765979688550417517968127176987993293793636922223730263061782469881264395023049545317150488603246801248516840509075343832557925964283841132428366201689319216403168775112522803344746768464472313025755075223474075816817733813570354795513769442448487273198792895863949656650522761910622178472040957282521497922672180391499489770381578404434803293985304900968055853743383586622272817554352659707381930805418371594872379076880998358398820364620652328828817932857187849984868050318816303998478859194502125136806152311722706073747857686723849017199103632428715787759405647239483771463074561788758428096379994821185743605278449224299445000339853809481703555531050370924456932364095708822730811373880679080430941952539331783187795725393545039343004092544875007163812512295623262494206452091377320941729394467468436494442009402962789971536408459011207300813458704802266618421132487028437412165937707790115894998222972095712412706176999696058242358331003048876171858235505226172683514354763859991167218817291563907506114367318632290164427867339724148420094763707596300325650887460567077172130866958195329036796026833243770732442245070637552359023487152742807387342830588824145035938421383264374727057943003306770273006862032819670158026922228079091912492714315817481965930781319352570725880390755437813785599351599390994224778855858144357401340325621776294035716208157757167849413920856310700184071189267856520833996544344299707738237362883842435061773272930508380260416265987352078198122564921685166699312889924267860314983253330218016496832845543857729937954309292384592184173798027543390872527465935903366881387135398303388964458820799689085944587151987610903423678035833275257146752432041927501046154495774629755352644770097377435947332703448377140803320751985561519583536617226532716425891139362602865148777838523772396102612628239912825968556773771560853437453441995056142911244918987816021024906060078922367993300913636063673027737335972356236120579447796745482734031574189264305581258816128122013096577908942012875073806641232045715413530509604272441621316402349239892095300093132372468364078748126083205845359019529600321284974003905586811693103942674284875181166627871678213123266367192486288991395635478852807271943434254129273275504517035776220744839434324066936336746207948334382720247996334123534988340982190225356764548009114444157803677103400549919816406150529763157538197781103881030417136138959258413572582903751878532146523057784672241135640197781163270462113000779441135145629208813380981896552655106011465384121602579444992697757985299628083063846205025316386879761413313667449955148087800594695673984450088434363842303923098401610999073295559661859122010513499067405780544072651091531018596416864067921195752943795352843906002004518747560629108700105177631146712420932038220819751983021808414375369489419286786332219991414337546074768231822717297925667441925181299959072907393242457346413152451557139808379335338543494940530571147736626435114115544200308317272826617283505570684587459039432416077171676356245009817131374213458140936014214581065819039873287537748005857484582686213372191102797570467323196963028654092409525430170288742703197630717802533425745871632274614191606485619199301531615251121798126611583294500021150693780907032526152322813761965481460769343469382117944523488851283505047858886039339458141471339413995448825058594827737006646055656802927805340750065881267380729054375910945634092870433198221087077931131750163278562844948718701462624912400725767869735871416917375730874694800549007943578779303462823050614755905979762718996741032518239480430244038784570026303075104670123434136233546274916743003208835006371334881182970290561875675199672378277807260725178995861894806748449640066301360638078868434901309358328974806136620871261153819900077011431676407997575852981574190085111901807328241521684523778801958666563413189629058575681941567200471154291348271647234966224827845503238533963395645974895914875938159131018137317472904917732972215938531897797023130354364770706516307723111439182172440064401645675262236655124670807002508054139215641628892799988027320488201329508757911686245762558103563243837500002375599425217924634363821713487730374769803918305570893226647816632825362203826748280520961848438023053644764848874528231518633984114716824410477188847216444963208471885371586887148960011212388638788881033584308983375310906969809373850051357809472274638458917779124044074586523533462284329648232881777750483371555990024445103555759079278575247442763085216842365120533091185437525808486095381273186076657060361640893692407480056948303412936891933791445371776756009788686429351860405781718217727173256167736403550338680446779160910503745798343936993030135238716065437460726679503091056048254447157208481961214580622656281585458955713080546411684205975275643741821269666657224562598113438539273285405997052728221756691963125961969671339971618657709143900606409980796505589449794055840309760071239546867826208148441923097649376654488225263225556895437021942684282803836045817719083507406552320285845511907670676760663303063577881112325245141433566765907877399701529279286560901010348478675395812402174024680133445035079252283934508960015093712420552090892060393629542212908084912046191161590323768143972011503905041715412514010583930041904671590878565818922082241200746815504960478917076265706893068925418078266806910400809071199314096117421433338788399420709103936423340412748644345699099551657602035991750956892001173038541230628738024412343589630639636369033504222765254279974133729779722429325578463861782205233246432608858923489144607582496008876268177049976165065566597294156572690157352311041303126350912232456409399560674825213076045413553053425820488810834000291170646485789032576884331058687074072019289449433231984631970160242175408285276075817138165910929059259696554777871473362563368264536346235649697371515518093211081116414190736359266174181073697652298189796999692977728226447421613329773547085555925074455179210342240916569129232176573510161980177515670283229747942692604376087775099368621572070384541196826809229046972516530329918020464636390028319478904776613569971992263081689047149099934544191725410477234640801519306169976769563892838010426599310302399040841122804112201752875718153391104841461999298022600967451216803794704060491981926392757821001507645853946671412823746441849207862390716062782992926349253621989707947224809807431451514027205566095337003492300049402230221227657597372683597533298246642078205258331805770394831139485039529464620649138385259958642288977929946295172803334281983141945159417985623571502919663171170101068962337217065207517780365004927505532666116741912470411709869081647690088546833557775033456136824436461603898371999947574420931424686757531342882949973143049872684066676057672531746295989872283716210503984260729814185124184636924493553172785333967126842908040027110628379573617247167440494895900865673071256425908097755299569295592962659134439055505296449065327007414786225873121061301933464851499077104142161256446269623903338146999330720467064885358748424456569185400998719855759370700084177996758110732626401726295318229001798809812951152184909425451550525348052964616309621051321968635103300913663512412569033976992519931746791594117203979801063893385068007447023944679590643777168797065509107826574358677985161423271054880554775920176418653871539409420894943352698312913565070555876673842265875306488842060763749408436697792187135877763936971376453253412988785034197808420000619764844522410426459545253396413874154585885276642004080060634570403672526789677559399129358042162075897665745258138011065784153629529885792901727316346803472073131019627569372460928705716673163870579207925430843329767560104831077268848651660375193246884126207555764601163340784499182606081460996868199028133280899111390306714790731455212846076043014664276944373092242490946562969629569901007506119796133811208643875385223035519726591809956184414713426069345979351081341642640850105744793061204465483446415969894082699776735819011224939668598819251283868417261043755131885586286461427414772858860567734333811299329904301334793212482220807651916960074629109345555213534106368544252169347583263881693308774579840650240780643313850711740531265385501109456705387922778842266864765678209086178979454005674644374274114747707035657663802773434419057298407837208642934765482845851274811642104571079450443274795509801369654381526902824441399498551126693973475753859443311992795514696958655114536541334573522232904845865461586040125934491983620217764230685178157056700249787298964762918888284679263042217490959420595731248814154737292241888792819406434588275296446122563851172365254895975015719137968980117766821694520824194720283575253467759600697209296799767496058854027552297752205335220003849566511002844164851521737070727360225198269833731998258801742373805637805664646827834388437229722211333700874930474665956497218636893381619052651249531195283684350411137400348767640985976337926663187236138705598547476013838217435097912761856776656404610983513027856203011633925345241607331839751054011190711656410162428477470541554848835899831078645937538967288612481751378098396745107041035251353030927916306322834289411121705668384402635437169612569755990151705369963041448847791059424079307216465767229899211665804327220892708540332630760488599828413619523055053275701239798498614220907176187378956265623533376511456061164592224249003707333415625631735101718279084139193544090607642899461855793650475480978183113552065656006031280842972598259210843299718546218773309661202592817979003046397289898294664398403440142166091633207875987349649379147849760045546902358334031587918726416169529104297974539373740996020277826065770409551835337440160529450409626512031794923321054791151849406503392512744275424071625968368507216049020518230659758850002492655231725334774386577466825492080709797649722536278453519811798264509018995118761357656771915723254604941394924870426311078214372015787086500478139494567833180039741635658946925074321961772865477865126719395887812544789471452097607726986159829451592321274082605279354855306078212717389764821251198113767537862801532496059283419736696759798241204044969389792525928941958133894328520414425436899147532367731938996751059701676511461829523013846573426521129445480228846617507143033261116573569115086457294120208718449117569370753368767482664203042387783515848245240793111277751463378874723644137398078905834909313301886896121757891013889978420921427100605646069831748491360510480175459149700087078123090764674496055620757954621186796209307947662704346715072596566727310961488878152222745801899016661098539486602416823588332457565897046736235120619680073020461517284732887561102722177732273073913006407051587124881921500095703570486417728463468164491083165949047357294868507761597206291086291871557381646071118083035112341498422720943422537653321744941283304138155480015669273362038952804690875283229699293286901352574779247985761133206398105576682864733100421092187510957156136059953756950039466717828815571412313370454471920069665724808281531711375774735654792205754505372813314228246217732411374702152940863786094735295075695465855137612781807889574820919495308603145909377425823098360892493336006599297276791825450167014157785431601875138156066400904981143832844286522690967576293957647337306079532242758537033816157680402864003848593604809895297089472213481100619025149930804092343210098381368558587787279892560434989190558078915369950638713905278725522903226947356608398020058362617879653320246510861989223973579385580103117039683104030237193289491254228613778542353837269776668017089662963389124240345157326544811948331904382094513186165685884631269299154914828307267373724139536940073135684343861953589427930492523205805682007789898655083451821346385966811819642238839687338159695374715404694318038756386129132732227255567721650846696794298903232061451054929577051538646307838461115249323533607324027810345814040870431318251511387725298802652478246797103757375592655588677743480282531476379572614211167001486774032339957816221700857415960589929480528886149975446083895400400408482131050618900020125217370852901370324602527224199194961792400922032364874559132191027290487800320828047120290636292879347137135891406060446669158886587337372157937926556126228332155851831584723688533010990922587783355592256400201620106128426611569386931619662348925767684336309362850967225216037680702796199365335839879142489383479061462336863614050257671390723261823355668706855987149693199117334853278123469142802640545437404209528983174592018192427623709205994956959256228760260093574896669999186065884420758000128311399651798916483083439650824462316383935136208989647748918326619084734093983015696470556953769728647937899926629890830320997910816604327823940309580037629496653283865933079760748679517919617234156668534880309819605402769725218389037823262740350720060466059386323931223761212960071478332223253929523277805612426076148883511297851797592417925243550566431418226248463159762351029779488711987105417593276812612111544909366220903359964684986407364078057193103305398484375511362437857311418439297311694403479277373013118611897461211772097202972251709970262527040008282801993302838333807611547889672905910654274967330543589245701774573024630161224073293437373572412640870055379274443453142132982355430885562143342910801620232947590506530280536045222959751456197645981256636714236921442418681038815113811142305511877313842706200645244811313359869296265244197231866766194585344177188606681693080826980300845560112604615325716131034266116486539617443398498475847526435560960068758032743069000019120210379455581780393887065690548364504590825458352569719621126308858545496888920958421645451269911308202139078546662845682024805751076626818537089748769810043171402592144215782856588020621789140868526993648350076929304907039424464561425330320755470900919668989948625014153394100341648272158718344153382830187010029731640112677778386750034489853530437821065984875006887382333050357018859767285459745332699221821003779237221943474369058934498135062951558822894634330825954954397828186705056192975656701996686958787566743032353654434326719344432258484139397915008158265157606509990134672805620410977923062124106232501973992306049753288741906518031208136076655856055830972407988154631897654152499150548946965051362831455645452731487099994247622401546363076187995619840208561954557418111865257127335898685395253383006863320506270835191058793112779684966320478980772242759908749419307088383047896771845578331441458536150777031641369947681627205192719384172048865393021817585007969999448396760571602832228784610769026828064326866567103027286870807191011145307659386593481141171498320518229960026041352414233702343101992391327924083076341929804914675676575278315869233323672396224555753151198886429357181348471879708951084893051198007385772577589806405533432780385390353174773236102002085020208764352174847720514462548656514532796937107453299289170354455915873016342983584541370701074849402756349821530148172774553081957335386833553177649301754882520998856249908266341331111073175289302965513092430845109591529569177516158715392148769267596132955443892929322088852624307550445312205948392754135869262069308363543984052568358197335914637534542178334440599340703451548223696511946643596192763162135825794436616522281932567594843760448155717563734801758488272167525077574444718949003859323560262473409976135973832804080792990811899213975740141330241294972610338103171693940944730112039373888873830784313013915971558374014498783418356930930901247956540814433675250095414792258378876465965348093357116811352663717949245147862535861715662620068306442646375073722547875174496410237087089391240957084832332455341160749035541172716708381510650052738284969199404899296414937515532592429342206443675142805407807626215368919528004539915568117320393930377359766446290369532760947379090786665400752876565919333532604176792181541081272063751324624432064215884663478866413709943836426393996922317102882952844482424818186656215327162220329384385181196851083212443949554408031341367722211076783878067431984176933122178233509544090120063692454361710146605116493372142297124855210723799617899253818089558015169955692260400344213406426048082109766528486339843225977061961876422625626954865905691245929397484778769688258165409923403187318697625691885942964448721140792561852611513923182792060677195409492920001894376645769165231517718331475884245147165103255259937835300793956404308049275333599755323952809835179542257089267217899548017890246651715821100355066298911440251404272679847046303158911723062887146294004006679672117988157047741670604901788185342968442980021732524586761913397468812530699631085282708973425244188622822772286012589509097393328711930907159556428239607885800077302297150611921970497444227356094965645405007912120478081132405726519174630410421412451719905913519319891918756100308640010554169364195652419359623507356054654895850967489000654436718864311319116652769611904958127689863740255556946776342576292586817579586783522902667925162342994952761950897841207328654451254803892485007832580282342547311332264484384195789295106323495335955869742926561869021238164015005777436882122941816284092583342720377381162906452877981358126841003420860622592211494602763541563628510729213279419493941468605060787826429357122915683113173712318116123186960286424304394315684085242563915410539094930152854765768870933386668152243711907355750254102406761198233424921591995924754019668941981389466172687856494572450110555872201855376822905729040050357206940322525963316079639435520419716099837372454417110628333450362961815950514881801788323952939853614146970526302841936318628441828432012834392659662444798742777759060425145402420621742039628469769655584281431633497213978432757889631615631789910425631364997977125115216657688474200054875156741169175299930835619098092898198602917932783632831210332502545319763278114791919963078666397026164147178132597751426755509890485239496079482275139612705313511001452211065512692985512599192269198780842870037065190225840604699978264032312341050916903343040312996766186089018223735461897834116075587661211219927908280654507542995960740027155181470305278826321826393730729166477184742976018731416056170052972627321060755525811388964031686709692110413662896170540845429337030447268599987202149401809007825621543177871394537059725828033704236797522343863558963338518675177507020559198379992106129210411275447224613605260666187514619802350307509381428161970683978777421353905859947018914356002958701566311341209064970143926782931543569255771243420395641070262537664804587794856824655949746986894197124553388661942669175554956550829604949392218141575228165413631289792971941042402895541924138069091423983425930989096848828247764426969502860667926733780823964830290207163855201459252436786777862470610263417368371806288290003811476255404334737981377404107839226073573076731379306993939926763857267718593044028490116625103544812257840366200790145746310198054429440469472149736230430847466878175653755277687255856926325059223232725722227354560423808576754250938567040792829860342293671042032504135635255589754175816660855624610057832018468023267167879531035894446498281736912522514442340323085603025687882327835679951011962921812795252750781922411896668792076556227076825207444376460296571430354735769095628575264638083241230873387731277981973486697199230780831534939402264388942237245064037580459390257063264301817860974392247031544516852351696157420990129089136026187241189238530090396472875590333789960027942628206240486199765601436537737070986680261595919454735201340254521583472624839751068206003353148854717060295132398845640323001324391939414906734114806216601307223112340226276714318021560432792677268042746483384084028007615227565137290934332264183585787440462661216284230653334567404974819748446693159833094888424029345778727932492091682720004585896911771787046695609666531839600026274419600348216432093764541494743098993212954506090429406038069864446530719376002974757564169593470725204695945078530313694019605283875316654158000638499160362659860792790062757681859583783212782037823138613822350295837504049216166296605147015528102592000135600176359217928582260966081080166758992925186240078826674122218449044985902411493186670475895358640145552076015902321000177823123735772681439335116979289074041312325433692457316360080549140931002116635768498252835832526830183971643907904659842294090001367511075651725719616211321701624084467278322328587761389971427039291010176885262308270738620962738771823157310793843059124189619975607268930303850022081128116984295815259698581353760347740369807678548691844704817074077608251041606744008909797875290050000649985483261269978333360284171330675177347905708776528682118155270397695665590719940369486915157482045857567485314483962531105118711382350895925309614016282733990091072770383837607460764288719216784242447574190579348088615588499416942984689890783765089915041471268400331751766093473233533960428675852919365607558100192966667011477894052538517187340963513150684071999158518658599114936555488925719734240943314036208195547299350376492959011788442916119797738339297412051592130744647008665071524930190243659340891117361266811022051365860635306523959733013481366889170630100620172798578001464849041142596930436489776026272671811866875550364425710164064482188030446679402834594636560815909186454011569246178108253775770424780380030110457792568044618814973508631267647500827680612602521357649526573424886183888243435473820582961162612966193754665911304876520273216175098369684326382310464989715549011609847036718661978887006216279127428591017355443349049904581099569850446609906413768695412848509224135262280174471782924153246919148884736656935385503342629938322793147269778690186823268561328129619795224159072770217722371006650569714652700274088247826937202017274278907061093385750185560168999455763953670034148904511611025579503070077629890636831204171238846543395465781171036541311088784589471125551346200634156039029329578664902033713263941983428695804385418026090379009545337993590245538452364537287318598848369041034515288082605545844231041281979391727173468104318635547128101608071644014470601744359878100773312413215023111860061441372812851971913139648287343492901555985248815547445997184980919643784780304805350540711688399123596690675895264271876212903188300571066679742122656175345821663251325818383920119346958472262113534374656737543004043501949272771021420782387577077085935129656832898580462355849716988921044384920232102110209243081795574562252446585735270887398758987821042231743432036462690434778199358019188663740617411593804619856286790767349938207092810773369304595749906882015078763019163872627426538697647737767976857068855260424897264977285132923340989522633255169622770844799753954484791610643136438167633437282146570833414440120937791681923784372685104876533534728258857685275406361889915552710517837723865695187629455037480151583726066849782689524259705553868729879635811126354511364460420609671172767080011895796481250693245821790231481405772974965703558999965965201231562942931068961098350907589578026224675351603331253343188531293593941723362858962201093862202083380655985922270699565255057367148531361153811100494225148761139715484106112990902378623439780851889723817311684321273811891465840868214705287067106845224288577764154896087078836090284528750765539554538410462281144702076638757644234591219556868641767407147208778778650147229268669521415219712447951850277527260168976437228221858949838532578581391745902592803137930293773290964216755734600455488643697846014949638245735554686829158484379441644841306925208628843497500313208734478566033093703582366523083008320559386284458849367975745384706577638101627626843832433003635262738978393778041861152388640267261079861806728986809580390969116004488666703480216050886922813561259643642191341625887192211115122350238854265940088659538707125055889195454160531223035423242736951930337292140040928774647087551015728642706580030422825937320302831867979717945339524784697557015898256023773020011872966613533521596256641692493733176004775497123282671007980977692312129287185482069364490380449457636085363268318294304668812662300226121009609947393453623551930428133331191575661562382621705197554835139501360125480362715714283040038109211869048108955020208343744375608881345750228938336996434092821008634494171084278024603103412790393439489377393951040789869926629762558752933224698150712530204461123598699232244762641129592502337753427690119668720991998876474346242117166084557394733088909849840614670472532005704262716845521397273040274425396182603959141260356506159902192599209258109800501007706819541085180688483947579659328289255456880506876508095252185951115540085856728013313880879676799097249544216518769842523866749154044064160408055329491993488579875932443015897924926005877082589337622765018923140171896492979413690720460079594121573372754211913604986638140433138915017408797527844114340321773744276287011740030395234258479451150022243224487084598622485992098412226243509115376260337990366797581556839431985650611218126719598929193315399793532806274135804250141933001522932170284944422055037336500855519902405113384591471289873623505522347978320741340099341610483454634074596196596789001089689736132812690031116862778909158104999872766588622337983244656520439770592483889495816576078201810886548502889007741222951127260704791612441893139567804842974827931883683321320393587466581101863629789897267465040649684590755164570249477700630770966634047119962471282879651985998491433554397784580826430865462808258918176154637659988081232215769919506276394714803855619514159405394511574475555951277720877898079146535048498359171680246575125547247653883016726497201674339163040824750398813626053461379597658780429651810833526350976267343156295278454753331626451756869083255872411289537004639417925604208687275250850692083669562879150921069340325152973169999684815679380765051327929679032674916298848434648841706662187736626690423499391357721533850162009923049526771379773034302745026691248574876423481742972567320244597213065239978465179518709533798286812751868277171347801711670183711858415556099997348606596037677592073655703591246362413556386277820358722998967576398134481457479246224750658034275282857554571679560781085749725671624817457283037146278268289537137838440900410135756660182307324775962845919405879759600365835463372275012176033702966194600390933912434590450188103023168988418286406666920906861270995157012881465919226521045035122330019790042506467379401472499927491004801911429687845535118439629643673885425321913591178154067164232505694096362296352783691896559664757754650424121980307969264897200315363076977183059637113042728302729985540245460378496647391037888583428001910497445844943414880901859161130349046952298950208439932599597235786736694815755888196966885154026363813108645029075435726063233164074778570480279679762720899850561169710203058705196471254676720706816491958376300591753988715290726563131942118497847580792198998646072890763042844859230385983009967732717822323028526223016715467045629412605399373010605096974633327202161635155611187782498245054578166687232538088887380206584931758442570706975726899948047348760987134110250680162784539632839805253173027454439813851029890330557174868682337499421343617470915329731214879706252387683539301767060068753629070633071671698929184811755267189566805944333654742786277802167121563437373775952189243456722297272501344468238196670539584011872049163918959778891633366593126455559053736258022037674729950899338511592261024368756313879782257521081721860420305085962908845341688997882899777272091476083915845841361067152125833227717707206104600546333482766332421619187809423320057664763826156029920107543761800020360369823471024221629928782808832945368830768101870023915064025611492896770357391212177560703968942059311399676052857917186253923528823868579655543314128563009451290210362084273236546651993217832737725025883647117455334517332908323063488864666188706377534214820595578527300622164556944951901880179851314829617882781762262870218792744529057886201202709024916969904173365999004518604315690795097538558219685939204090646218743699103267125800880208591214882048561987976647629971144575616569372592022878590809128929124389418629429374819560605533351499801872042820024540151411882141311354065485284410612114602455704667679487391087093100673145209133491933248610654672837860575271696478538396779418423204415281498840821732463139192676510148457318875492789879442746942958084133193001996624970993046019412048424960386970668350137500490642208930343175470239316725535471824051115371068006889344010616917723843510806752703669450054295699588854807693645154516183614644452805246530853244412905303594389709952635219137640113682904447445545476464035170739595317004694400503351094464659939562384867496185316920449945805725378720218336369804098343926934471780567988980714044533728317505024972762722276420044920144744410300685680182575736666178963496288167044840789340194949519374868186948928928583768529613167212990705225179240603373856990439357021192653135842825012426457186478028188373520235096967069374950434147479321881898989700335045047554899331616546569207503108783877669668852445062698807018572899115585932070825883179559744462444428904188601651463629359036166440055560835318100082924212476219445390641653910306491627108607941240981372815595526919993710819694928140709088279538498323792171675054751812564219835634140792106621383522963574909831829313240599831171135998160225372737395326002141644517081731114827786875896256205711329828181416195741374369123263202735256802547143221281339888065487835146884434196695020176031453296356502399158967163995561721963368733396030926815794264735480839663391518183171265668498326828430153511393342534022666745861323588550865078292353027748576470569334063413097537953932954137643551448238261286155588553644296784656125332379609086307887894435151972073943820941455638957349804261654121903640557714463861093789097668325094689485623624890900557583640362378360055584635168526158650512608415228008027494776026116658130591243377002529255789615769275616341371245323448918043291094453935877819848865118088953115988546706051190911368322414139243049352152068070390156137596352647303613896267588026513659769230453673368370344221819922341374402180522750123393796900986508104294417171149113381820617734318548493107679901141743950053257849315092372057044711831180671770847549756374850366695978690205469486694433917938327830719116942108898765800252640637286817141055048455711924675949150725769568730532420323802174918468778018146007442017664188175643399606661225609233128517176446855904897021213334356250049922264006842853060324243355641790086698581492001222793364459718381548172950618100647126923909807688923146296764346278497508506901381028340223330437443255614821380375892396398178092315242264352680534700713423888780239745743453748688557971768496848659172975877413698408424619736034039431925559150291809635866399671007297948712294830849556853378644329199146133802584686878706216102002891619954124910555233737750392206008125186927098520056514762030108811619337359040179824937775954396684477410726233980645547943323140665633505096529014403233061043336790171507324293078591327047993122641309654515261853229874488786414392146293931762434148515879654571496344138113787991727229212999374004456983558980527340900518678328996734265411422451759359382772368892779717158508015972684536465236785819504256538743397542448689780104637089061310229766244920154537532942092532077721978347594407773760552723480814217389957035631424523844756930217029736770853548379684148442600505214782412843773401393057236352936958534020560664243326433138049343469455997519629735824947207611212628631306627004225868938840295577180871581273945607409226119667805470432343676091241977691114787308950393651727152878854305700169824974629724503653018672170272279343340308498983392877428755348367620969671253292469470754363924378677975239860095637576903119839108801733364512921428367055586857712541795103232841467583740526662634765065579999601770901558257152516649418721607120318971801689008679939053611438166093493632149473675203257809025642867111088565856861455534904941944668713043999323057977862555268419672987647014229557585964829660773748025062178859335448343769612825403328278369983519478634854682593418741466935112405851540891940978335764143037532150096263267459138782587276277836804088507403906528191486867505429832482232204742554779304403424676744524851962986251085837240701550074328199180885091660819056335911548573163507789104017502154262026308019353657805128126006343575502784107854038965733591951470469756667898409789362999330294006215909083842725788377189978502307844053183110279083978246003746334137249287320947305460465648721363967306616832949272689131451147592969172796272833679256397347920025985953007067390895384304356767037045592051289392280721768495470330104468922806656450208341769107382756239158862381047392265470856534191415366804721423303904976433210151472547203726116198992839478013692058860453255704402065626491407144628088627446028388728648357218755917634186068497234362183172836588966206546351484998899239013148952498964519894143070933348946753449404462148657439016288152172234581231447376797570719833336590877417240712846520614424468324541503240485081572649786707842675981848691596331025447892898178417589892814704974354769228606373546488745428744793847984716359039710889124811652811935275744613537714394357159122796963985269557446076268675153010518891913824731298337402179269070520627805994234132865531656772662241178143579594472077090170224004756661762593801874093736461214891212680507474504291966187147790170385218526107778683559081459777182364750241731201104136628312285356594352052293466906228141400004708161995679358162801061594732469466790283165613783013285712099163023127245087728527622798810255968444408594022225486006797164638245598895440000603384281890243161124655683962399333098166065024593260488987600804339209206929303632859357675959270503051481867263252913836469290748276498686098237270118167081805357014590270424675536545584814609340304999731097869397300505912661934154766692366178871297820757301566922665956650612808705551577816269859569463422216628954518555536415568878026540862360013248570495465026070349812045729869285316803268130266034943482099541581092439895448124925350759885523471466075137880475587182730783567200740947717578365564930033338267781348960892269437671254619493929589214533930173360403643092356190147900285121701707687851243451703445071616882389942095683743507614391648367579812712511550922915964901401234249791362493985585713458029584150240783549915459074391785117255176182303995564299571645074096908834907612211011556981254175025992466912839617159866229582232134759416172657343862109469014032935745721754200346000962137107621139159456778843114003360436431203521942442016850178551288464810915058220334903133159042658895308083957219079411522019840463489792525139092185612582639253324917537996335846300745302828673863513376575368621831780540414956564090630198000547727603462496362892641241967044524193483926280872956926340530262784776086508680787891630771852013947576456953133758152605847505585427721170276960052798172986744472554771958027995959568433719169678033748038207616523350424504210977701259791743913383013024596362333760022656665062822921657065825885943909408723258169276737839682261324691888141793632601062263075387299257788332408932173530260457178473026830650958115056239323851166337822996480437164840821642283626345833859624013087870736606072825784847041574732641515403080204266634398559320028214179069480498274748693573248678562848958054998560453564158179591846803509190778179164710807402420377150592070256437286736826202718365850744386700342037535421615957607551050457589880626114329810267370500861483769633829209664210363567451802945276213740348351967491174234004427243511338695508257897284293815296652684328271002444961083794018409901953275554370742251818274748810262489655863631261934721050942108624601501036638501239464177299649410240596358440783851115353121457346090942073273187653061718597367343979828281705776533913760771497900787882708871535238624350602500809180453305470780208130803673918635586174701366980870703439029913174167976573286509773453664993533585393888342203963037725572957849487024490239305545271353519277092442072477501898653503467837201957033010983853753413228803322313210461434366907260734954385765655862087904150864582951066835289657035654367926508343346713077654670654273153593062550561246912672454227412786752541416427608901180358977869066492814279393138213221802826467703286607152524056161280854283253331045523014927936742005907755236261337211361450482971269241350154180532433784797554426160310483277234083606275366014505243284403992180733437105326831807317512592708200763183964311946911689376051050743789783779858089283317296595365466377801158214506232333859939950904528701115530526531724819926063039142930574888381815890344857562908929975089401834452579784540530812985253186288415610353918019801513060891440492510155722653443071116773794968581552253001435845770011074796025805851180892184924554414341039650066722936942232809357684206312427327482452272049261284940091203652031339612709174687633439545717912943359338538519656358662013778143158493701573221239254741913631868182411902608082626465140924284779105919730246897848640450548697027182323907510259961806762284151501314781504911731071564287515293501800581206494866558719061897846379282952173629569812669375037162643093043337213459996801263245561587575896667440973125862306635638973494429165815940819048938581111766308464049923046819273039235117040184593562772944964986837050567143948684911798787790278460121350005567507494080634716079114878259262764293723817173172674567822731878947821502916593211694619978026616872954434158136499996298588526599654071237467426189613352884488804300076521547312788605630202213508342796002544883831292073027930797651500964867025202610455248315280757963926566343873127015648552246852878738723579787329987224614390706834578284207233948150312661431437844149218084032782742766498290520531175095229830550027203124214916656998264674943596415657994126389046675873530775286768162029973897615254972550294589688106086334564679898322904303323163024760672645531363456891242414095603261885233197598420571864057162696327761661083118498220464360304441576704732373013185577465006797116919252089619663859198038634939972763358061177726417254720895694640313791159107246443923517597839089465003931126341268323161094009002939563887811472349288586295308879062386243178786659324553858578374829784899013491394540215899726633080968573782390336275202842340108060929464646281734031618175351156437720340471618230560042954478390496498517538040580113736708834373913659650145492491471426822905249606065410768694923446607381929431723431595444412270722269002020154231909992051261062795666141431771946822878580115063767520742935230118448465542581941816353904783373179772587769523106682504392660042064667647638046974482810680732303253279297237682182579404530272517763381535041664614551508368900636997631421861628314976123279177934803989828781704742594374108324701016344958357059169466270473561662387541492033014612009421124416871970451069788648730156157057094731290702368159345383234971938116516339959092301207958423405893267129158103566809462402001379552756068590899573102593303303017609582632342530565863756605286292512509273637817709649049814221005312723779096877360572647400555236553933982873456349727405686747034510003389124328213143231614677924859957972467118737352703882860149342770602927078928162118806597505619062969358929900641545890116737995489125007425151180298093817434651594667010788932995131086524985244692953008872886411012728590209167805099632984220251697714631688848317920126285035490342503911840727091192219534456539663259851107502747412819224904097430852736203255579764639250660282394316321545585079337985073584822482153265193276917469733300030172227018608750125565314967719313121940153610232118093716169103572960166242912019314198392594076451631755046270386781516929268814500735725306797630111134042601743334938072857124140757471458786171250407065320709212652283515807668840859055457415005912865004143253694546767483353597583941806188761793835496305768629546470889862135226002470188416921656850884218488784474910631328101959894477509955653612172549816719189732947311576256509585109960103198265394372628160590828970252797301222916767834404406157475668966611417747126019907214210540112043209055195937214487303147882440115408059335188388888338204121875921167966721215858899069113673692528970314264182467346883541680851356745068381929728552307109908359427904602361611983731347764594064464614530879685269834609740861947485428523678936187955827360932688071256803370950895385396307783765630124899888969207934240171509640841525044744627357889316592622835704308405110735813509362761394973576377044409872789152122245747541619524903128141418409511156093156415690326798689107525402656890950781637962138059410636759171538952491724239991869300759253629390737142595616321556270855677125995227016763318623264036592931074072254569519728376429786241870070610570002615989860273097611359341914087746429436075845121936921497679756678389972831374813621432744973547558219335763434503353000545679196577805390516920285268371983884154126148814151482986972599867154286415387422375519502300237880659685907742687941946443795005066326884311301563433659401830449144927007651621862263777749301783425941574395960574388451839099291255327652090352509007586192508042278271847621096171059150403370641166946220846224965815941191581895441210704743665772940886549914554305340608813144793326083159629555362839813299291108915570360227775008535373995525513051647991356251797714367636375721842359381210784543832564924792912021135796730289246441678269627663301997955080877933396923951559844796372328032820504348642732069175938815498659303841013272182652848063271313720091300191808009689069014438648228637012102360314579584575995213586301861985104523405134701787349171971603305349847220576025311741366317696637744229469961548995101251932211179777361935743621234290892613755472655948816638718691386031711198277821996305806350294077859336711104784258072968192796104744498175086039793257629970074810280612176481508857673943447200642949853025095774412617078098050746195321627029759611315778994898328161852504200309041247082596965258699792082912404241224033493019769996020132089815126426413784326543508289625369313172590208322224352659388442138082958158556644229344799572078721990250496907129905041514388354586890697772437903631091598249564689623744641888613425128086849943869851210140525982266381480694532925123109947161840767238272000495127356004887103906701314184810210698158581390062244327183276887554059114172485255147893118857238652467799980071171811673950911145265522201216032178669855814844059918764816484149099351425230179843275757933982529036558023036180627116687121549925600097285220740417869992861677316886267927985817809459359715541940238885922780337891624336506785626896010302024104087350042206851950425338183425131228122897798021129348208883076236496409442794409734828659516350233285487228506957959136721670193839697301275428974977212140650908014502758584887945808555315124358250526151110649792561407775276098865236131109509312761542184134322945601598936324596946970390802363632063670653645332272613861513356725706725784879622463853394110850365523912325244803621118341194763530073807732168962693022981176399109114294658770272489457364954298200223058993844620053375218582633607658640989941033953026627930763628184230149515616580873502691682592355085136757602670603472267520622701496452949966635444645316135713464774425971039271620083843410434928855468036384088387677196233121209038306201379420325427012798955758555462814248497202789537776596261592579515578626530706173313032111666022530627571726817075292539803617923483939516584701803552790230847627387816171520238175792038435071891127278342877330686818141378798150458584257169332480957347007212970966072106878190002835262717810533473797322587134147773682140316552929545559858718156092328085041494476402732065754328730636757281050308525087716655526487758340091789009306011302306181142503285734073716094977908934006480814495610880026157590248200486707272832452383407334229434670842269047329961173980638280482460850740963673775463417897356221154062964841889585840223387622664612321252065252988464592054104191182752247263102107008317386216083909390895963359022649446461896351315652058411291208101985784908736349122626244367602256660572248342066835843646538956839843312345304230180304885088343879196294378899838537566988836935513262769270631751304794915076428812203196652940534011884346050722853626489990419922512630367760721013210054793919066090390919161081812367454482203555184264334178897506160128044624187253763006415293744727087845240894042879481702867407890000744563586356876283815179021803728250776266085096868870529530028959062532690263871447769239639950067339295257458216456802452919414697713921020076647471622373815905243189625792898078938464985363666574108528102220693155852034642393983671994014216830747034694447062249980660676786448632170205398356095271273459770811075015646882341439087745550719766181278436986363924888024397367564973448089224436611660277028355031798292447798491947357132541165293704583678697992344590198867417381280937436177581525240267302794554495399671054216470326423847632779207046657188598920675799873576571769711524157652333523191287731105432621845827644104343157867324599006475324927370415421891452884818239482039939594092405676364466911532497697286624979977193926561738815528554348879221072401814020623182402311766269913065244106554823810111837659684407313546258909563332327964800991896002860719289017944399450322837361368040467955314040191848560250148730039376325658227174129726958024861333215521592275920417638354311241829548747343222708849943780677622858982333504895550852676365818638871423586903589714130107076199904288855498783276485000640636569334865195549051277774566404502294062912624320496822695940986922045836789903368801567561172076136568063758691010384797056659303428100692436885107329988243267316463054949663145612086262977370496206189398639947433996216617842541405925848028881589682176308462003103591407631642278652559834187782995399067932692742967930750684584804628836157298732672205469934446330457305261223818941957813406214409955947473653949405343275017510729053281852595358644871661565538276974318301093925705809132099712390549775512174547600363634209989797788549606951809299145679429282830286384505342348041521183273699389993768661239220534933747836165855406955101426131381810535284081623432616863224920426740266716816188709780187013040389103899291902913906730176249694922615499797576415425387947465833474878315887386347808388326355717996801696626138722845170124301503476649610160841741320369477263489621251895303637975005198214140840098260771103111844203571548437784801018229142192052203898098783746548169845291130953722341430098574461307867065858236995653031093645184668147245836571521316946184296047098137398115667607688204869997285462310135216531645846729987972993485591736149002270383542405517991139882088418419831717041621669147796800836792126817453728897396136586086246131089189190518575242642144489091742709193932853561793560538581088648224028901828732897562004322092107385773500964435349264268889633591261733877590990915073317144618669694479634099807926254397787373315349680037415540861003020401027187982630905707290489856579060883603175380353220147422601594404110737491044131408186486495828047079365680299685021285978872633303531027385189118606986784051740898397793091304797485096488567007841790827609323411945828216158674162765946805312063867263877897954225960471182570235896764226454886424431566771512371644109191313241143568568876878359029964096317467311291277456590209854437434856353104293585643841411839234885555594338336749068025565803654781872819918671449480722273424068977969283791643963439341418291415203474389532386012732582436731306118124982147463975102541700738035246387111204739804762577142527598685234644201832390839193469931167834035311568535377681243131550584895810645399323292965854354695885332713278334496657156362287974719411429030232162211480148515011096575215089861028267154586394587683071729522698464594908944459906043799509975965256292881446383809465396490579733035200501525181778863838937442841708397516814747803165384405451346525722437769537643185181448628713583255918420132083886488239590612713423577760658313650489034722387997546018146793687029790026136260337076068114520044016577457705670786129282592900103768927352653717634765852830455443057795001749177745656683308728517466956460909343457012048220418153027709038963135654208097974810881106665445577861103888208386876699012170294093626518474429034658031289514421036630589422592709368861151852129800872072476882422902764896338881576479783459999227144098332377166331280214366736368298154064600547675966614346078960958545728720533788964436320369109313141931195928636148674884275775969818423252741505627430920521072299499871938341626436269728514909749071834134658090823379791776039040383144611485332116685626891673816076527241774720238545527818650594225805485348807060930399253075257966291804824794075035796215088469263386494375054400991926911320522799271315167502250701205475961348478090426360288278118089047376800926823822057210938069091942117924203278418509416495858265474954747727165790795671604219774780090515498983864272171851766995627931307820414173059959068727296090760354441830531845212910069246680121243560534456062408187242882961416116437591776248359374696386623597432606204423826862279595105938401889340653791298521761666524447645862090659522069730542624305652177587200119798559990492982127596482724297493515228466053244671507685883162115692654256952511785877804363930778787211583207062466222792799723074402453323134249415512467329780555493940578768502705841898930857722424162897716465558662893087040505057336597938974666922191797154440670499185893237988734528500104022505674450466383901606603218391358995163669656007471736814623243117150101197166154465731312059243993139657018396393178306102112708722728902077540104821171371365967078466598269740000112454767468755883495804316745939519660628231285293200315861874220754602327100718441769311591396011451826149128758228235095135143033861301325916447846437959114780178571020585398215256070176183858184879703797821164229551819459710867826938049605141299989620460499419518041867557644881044128209352022636389523010037522500578322727027450554612751564273449326941322178105159513321185705601124561515503330605544707351572291035591605480183607260223811049367372725655584958727462355007378180720211882852698436067768000511449884383059445101367047275074371690114768406221086160121126499746464467493580058278179663519387731936418374423445306757507491917549874783690518652795919035223797978753288971076862564669136170556162584358919853050589015019951000006661728583249210340887408988586565020377066063393396938972325291696057502369751406854981308488084986476086875354852164247624051430344308610712380626944248614145494477439892817899584588754050671297379082145150369444438809491354147211185413661699879915501250450604478499784306657333530300114339743722196061642319298947284552185496495253093157735638416397588488250861477056512187827698262679436891210224633889926724078636740708233244654375010960247704035311396453344060776235257699983751931615492413049141201510351339213725092437985074597429332258585714880722408646751614913189573268534552649608231817705085625120191592160548077905299594578466007724871545874040785356925253969481360471922109530080896737285545412207552251178949716253229485036906001063672832485541557294426027506028524977797966275353678975096634676093798655948904860724721779546239520429985959502996828581460715921435950234547521822590361994612181510843992252213666146762994982939170762634670274598513816609493343741960027778439744474509247387251829672033698201411608151680942006257591810596010485526140101259987479637340250974006847870274075537769695949217557534387453130521413066384485398461126048901171644631099643568266950457145338878153531703630828088663439102302298844683862206871552728607763486880478664419360688779034373731210786880477062629691168623065136439553600660669612871723573754525828708204410663283296090403874940089343051255157416330578863022802505063352203302219182273914558888182099893266161287169755009165953464998813432298843537423356825686590141857389128089376866389385072635633506519333289813754686362917326022156821461230055294528412535405940650764329695185578110343755903978550110869869825621849545942520343645442823384517992262835325042102062398483761398728773057915773581654653181330889300950670461789624280506137761431523255379080516112849160080753117466427657429856802769355152778296577202662433219816348187748390328079833135360276311914065144842456117408066505902532672280049081314928090397365183586973492289769357348983258510096306415795484787720260958708100694412923820003957425792185406307685566205779612678335366326842211667580188456752648104827159555877656866625766600259606271848317101314285372664029478866480639435113308036844912912611377788726691312774029561046163912052815791237085543716940561875512500671020740905972470054346345934778888484551038805095182211350028349982363950254934089603201227581724063793065086644072482016054652712941079385967427558127098120034667213131784596206068524565897237059814551708187364045072961683749552300228049784273748932856053386474709647446861521806170794369933632707924610853479016055254526865830265449707374559906753952486637176892706914299953674735564297203382885488201138920116710740953155285881753910931652367207100450478733471253088115928001846262877947932321918664654112799968763544930275315575633875194699586133015483980088316635740252021634984172878234228446672987816620102175712939159429939529601027372015626105261449460046156388518511601888722314418058883870564849498086962330793481576849671173957475873038873469381480507554554764208031396318098762870214647777804990401602855378078151787522850354859492299926191092364579247139206400894512862063110351791147810876875266496687330114036441881524652477761958944305276321103520422007069274991594528679213911600978661469604540362471269045472189301573967421799494627718481250224609302552734325807678131220394537480592162680998799071754614782693772556481056308662295934916404155473870982900312925039439622809568554688067481777932029161756931741202399939595357599765088203003627946073688585969588511511393223917700470660113585590765543904677300809722768396575007793681046870563318262537638317209803892028595817281669510010387544177680632227494698376422111180826698244645590712917302846530229363392209810368691647900878551376639572933547404317886876663521453424237458228370558468929801084129776461965884977249505403238283638813573673580436850028846278292889603574502937264247423535788025523963107296507063371208222254173028825651754104800300872448661331428590273275999547584649065542634585398078516041437124831502743366543066074826352306441442158565934320199506756366269742085781206742734488919004649746193363355053223570955173632741712044221517918451847242130365917071368835907535041522411369263210166058304759714635939573159833259960021125756512043891629031169669868814275597425498505600017970631036508677910381134169469237092567234696203276061656523866600614638037054973008725606823703096340535734523975983544896621897376338868392694357475520301913900292886215256242807970071390740804382576248699613421919075438683120020642986430746285854305650436514159021776050323543802451827479707531016404489276814204710172192119059649033153677893587776655542572902245416266381813670600847417981628284965476621043014622776621911983201275051379999993678489527684069231095679877570716917376797308574620090941261236536016001184251166625090553092463858749731617243030333028158355825090805020872067908364545568063904023111831783260512978765192924687562124181840911171049462195139153878124706926065567898625931181180025998497270379460968175104677112022955816714217565165885699819426928788187176190835094966338522842721242372814134417862956166398249413442409355168841983777290986184083510840625994077211018684278762590753988582427106534868305983255328777181918900690138403767106778278469977593192894634362721907430788926545446369131834715055892179636197573736992565475777688664863185743496918282876769471313429112304289845138763614690796049439206208962624091041085634595708426205321184021863315142740673237106399502264287338862088751668700280908919181818107878937133106685710353230568148976963921098409621270795342295373874189538806903729084583736078331479228249844265451130550118237574540275174953539320701461197630031231599031212427028325854129478851432213285047801826945101778082958276156966026691578762111362652751270659635544713468835964308763752445114389891867255826353063426280306650847786507357307707431889167907383686611708070219841021871880476270753326597422767432369134791227863995168332442193210179232392890915832344474387644066292429195646449524234034885892407277099239468667018286589754789641929923184843255346282472438451029576248803268686237018069015720437529243057916572585823229132294164658131651409898630559980454714894527835910263904644841334847950435895787703966794427431072039179430391062088895750987601195971512059656158240398889205237107391232407621952287625910972516301142103639211078401208449820096967562141265726061325343966704654166793042326230698543890210875473954966904408383400151515813611820602784903789359493978219325771713552209484491466201552977332207431232802491593212851023699529070562231848511680629564514448648863928186963529117635674758783744322374718820423595314308059048528763971844380618423575965903451020514585952868073228487562667045159513097995925887765547592738522142709272943976726360108683695548343118311246777780888549012720571414127061197149354414627021579463335006733801805663923935540829428027495192785884733539148681008088745842411891636142663027045409597413182129137538500413742947549862990988478915647041082072208916010265962945612862442498122345438448674253248486886521357927233070850666728854222032950875664832137815063085231994749775873758891420873617695187366134112478931514974395708216973680883054648852186369575799717608168423604513281924841752488859432343586618884127189240058534669918980847369567006175918563220526284338178631117498855130233600521019239418015681441175597036005507586064228565782280687415901425528158882745992863123514335635761743900098248928342019240057779816964675484152900941486249107636460468323786330456733217055908073102976135677502160399852187787401224978932014905869641945957401364489012935614749479631474851632026639219699107757037508830269299556629457109622929986515336334967061723188100738791632545345225445495132925427513768986139835541929848723210294055515322332649441784262569692665009291191405510463333994955386393151476109215270692393366292654102233314409644102635145025416336170633016911911788908591167874659760579595941402235312838289159388935818513872061956635440041254767024809977127067983645551643415473272849675431298222492229212639688987591273918241720454913869763445812441457463876417252344929799727494217234676519216121688124838248533276083319675062197123759903993526368665042062983454074366628072206984611148213084107385691621403195194740159626542401815037108307242537728411293365410950588659507642373904954678426892799188885911179825348381864831266599316039283744929170868897255718706228632284171810131075924427721979564570532902492381517935209766602081047755502078380061775432075509468590179476405340051200595514674797051909744904458871135990126020440911258573318863951259004302632806766426226484352276684688452335446690227345854554098568374917277491532567942986703195714923698247573286559865159747941238851810289475804863719132549523080990785156135551838470887100937525756801585514093102570811649265159010106379607444009754593162190062461139726082144685378634456656281040136146570750940925568811943509550502326589231017802717117379833916113184566320780243635757924385612647112753571908335850949774845971258580366762720740080598145220895582569623807735603106328936588255729096266005877119131813036008941697521532450095023259791392065033530353852860691733580806328937915287669033397488413320974915339350072358864467022565935405363053792276813365935604488362982954950432812124373222501466620723078635526616403742577747376292213386552436800224196415348649399388255155986994898219745671512150669102408747519743623041956014481952818297917140726868693466026275515812879750332877099697687892927029089481207969628232396836993674571780144902486046711310897576606602546457076895535811010789577656805305778798142462734890662570330312825256376621898439507625527369738782851975321904107482280426650676268677312395067619765709779767060993560887871190641268931327948641500461593805559089717672996404566588859472935618727417289149882132937022808681084987010889167491669365262573859683896635479080985891479850581864339666182164887994230575841589694442892361045683208871950454395541087854676611782211799480552637463210436058328829135361916151942072533873980031311840894949847075580278787798847689375944111043775603743925791912249736162466346185931371426132959690422786138863669247641173518661448060465453978932599128665458625565900965122642040900706258781227191227499084008539963616870196199110842540802063113271390975900317997271066181710304246821162865101994348863684110373199517444889831702623187282834022624739620032228513667355269486090832112092059078094326198151270559896301705757444353609745241985666244935821547592689581634480554748173628684034873174556170723756373386116555499952990341325601127557601381291990698089090075521817375399950239329775433979226008385316801406503470427734550686697875522830923523557000752574805823455318874081224427085402097234232787874374621752109151817541033391068753403224489416787802436395043504765417400787563657869728418474409231789055676900934462810961928275030017849781905737035516733216076547889495020521988681561198073144021343802638351870326771471271363481436817206493260695489121906606337891355005993977657969174504752716031349445156763252866127379160324123742896170389547641912125253227533925516283234407294773707533392707402434192778936394750700744262297918699864999443890866533155595194311829539907249236772208887535132582375223922993572774710481164267025215421327769468876470626694028537461931588442652328589294754692710783593304065595999679576369573308203113765472148865662268794824158955526168157213555801447961431786564467186051014350898085160098228668778067637798404756937347217965942782732471268601489021599949532108028666032999633078925539713020091172952614173352752564167181692586795363545695574960973522210443261920558979546684943267011062469966633285514279812192804483434617138993153985052280221921412369877081370939279624173786520039789032821377485313185153987910589114921357234939968573686980445003409141996527992112116021651713833889319237888436434001340344559340115472339239333820822876107978254417165452952605967092551987676803375959115443842900698103283553342288553724721256213442426351953594375453017036757581248659071272443153347836375574527038070218253681859000419209860303022873412014182487330078203372564109961331332894338210975074699348121852788751305021452002880361424889806127520596969928019641669316637695426356912368005867135840954904627294144555545576569721512091821335437481803512212384030982601725263145466139640752693683268587514792843654566991582915504116109271943671657356027830165998672027862570398247529202503118217509595077306604560085892724678055565320997838951257385767518456678239628563943399423350437821246708897184821361339642001071601541071343170102530355252696222618189319937827469392726826865634202254874430799552126458046703244288796403423496527628139636185306418201210088775945192269414508051321694336059131503709427005448405293012205041490866795126220421234402800502083919707476294372492743999226821087529051160509996194492344970026563863297257496788874359832195893165824878378722012240726337426737283950278840774814233533219606644609746324481052654950329416250874421800502368007154017978100474740468956919908233430203764332619012856534331185860239180539686879836698934718908055865798081704742712780269615411876275047366178805118150283786371924557225869416372049512256027559411151138072398152609129833765743881636090846879748706963312949613487021708123297233429500083019655673223605244122874450362850353081665927991873436127906385632604107841994371892416818386661339241800800258771151807676360183407796383973341619585752155158596192859251832812719093082006797200111703557222403135882859064854785720196325187521279934366191424089831523624081948396905281661862420926343253814110279324351117733243590633523499202167976629954525270905343574724746970309881440595032272817443433191658154579849325301561229334608099344832908708030309287680816992043310026911927423488061647243241124231500227511864939901633859710168225367166105822300455554775086880405222425071259037600813592871591202397781976742511411598071148111908344589165967614320635514698155544080215829203779316019420578602202183241219001182479753690201905636076224006656856761133727590811805086346619678315901759436259366961523597308609228594540571023437859307631400840974569630316121641393744416140442390818131469678057426926726483617712572892476742844524990616493827664964109850304527039487327492706142080373096605913751806574889707734639237327378196493229539109264116023368458512170191669960113595011284657259770985016681560006221396189985103630708160805806689998645823305595936782811557773406079510484864412621991784577927585728579452296759455283442300306215469391350094809632016726370208660897859859588117033568227866563167918864717072383901710296504629236570584708217558742776624143147596323366875163639649532671299268214165079131678078525426189208490517835325567541948823396412106925872808583477744757966933973877987432967827353872292536788499847581647086470470355691144809708302857267448146441538613747029178934126860649584663996736150105286058978509795639707865054160182532431719819453248701610241316273968681870684751219539065256746982683622124403183836332129938732369677127014432871422113141022506713568700013186160947486904972948955553280594980078756736953249505440515740008598104703786823775932920319438873185738238255171605399959020259861800868580836294971824542103513104895217107270409535416089127497867021585861455665781453904953244813026104907959790473341175091813412688913089859444633071469215266647332056559398094672184733633728137195594770401531287274364168574226497131124903246508092419039242505235690824883668230344126597483633532891007227304012690614067897445964918231532366808700398017375766633305716149501342774293886025725560082500436727867233597229154713321828184479982286135129582453590807696611377341989756884499776372735082710163090969757911721306544708226078787357089127588774174957733842993369169717211874031463320671461171162013980639370264041854147903402224335808011179013651557217899865052314319429958836490411201214955642468895745812083686580696474451839891376534077334694731744385388037575220527955063150760932746791266806844699148275320483400967054703437938426171706715808102055058704941177697576946334914296966696852535482015767907741447589556041357895544220547242370521171225266403903482109766772174110928285980817790806439159157746056932823085655895637724519621283850700802005836666224102234745374236260884426999788680088495422953950065483237326311628360459427904704347744422560065121046164530015824174407369220776998798901014284449697958676011612040553207199237399377208262892288720432341574464214085827044509231333996640309519475645966738782040178667962234085135647599636115938736481779183531286144872869602957359305817730622013100423137111187936459492580974051237614628309653782122684960653346012000246922998017007932309378193642422674787353668261662979301538578814800216200397343233411836064135566965733821516577020717388402051885960564792536309802879824233737015982231487077332206865091406575923196968351734166890141150609786209874375711828851067924715050814520990972983036405240351473096085137958800803205593048133638201779621907163799254446574650417505920085758005486096885413444494007880371007004786930528661592859542362439660292182474721918697927151118320573730981260833501829745173259719025933260403455382712512739121760280608437571212930665303458803882298701216291712361088034621176210088993239901649551856632708335867418171794175903112587971521508488606304553388763036618765169091055656277361926680356996184892951666433115813469072269301409801218554963916799231621009280153703468864091240018159854948362184385621057630244919482997640484822422453268854855948704044472347171347691136174474941827611365152280518626658378899941598722344273438585168994191424286361187755546917649538790513750825196011948403620174173416368604458070847137348834190302028278621774420187598799345212981824586193201204876433444932656513076011910838036935669084858070966737091981340038710299228956349189117516017657545760820385488626388419690688610762315476549045158738984059647001041750365022143884242340244738894207336845772554880764544210070480955350331987666755518060344119095030009915352368769934031104414319671874725348537706796627534859480117548966748770413577500141116625047332369874151371551524552723312859964651787685013196197401159326438009376387385185454613024383535401070902284409449049335498862187617859436449692787132834538672786747739029106976075570634306280803984917876147365825954821028332832824496781798117120003514529568330566144324274346665522114040583740833500176413055551702944776901426184798747131804114770319472124756508427013869421985888283741743153944953914597601536411384307140217037789435445099667163930512634927605166840955784518074213507149091039686766871206068239714260322598435042596661764879135530161021849851264364267456452337068568108738175931940163275600073466295559194415124950007797726351257164079874290602963652928468909919149159740824727722002993669881634725644727123763331496199077756392701473470488909829130794128777458199357984681262650489665406107196217517231129754877114108832791442149383906472240285903698189234555979647626473867721433206129998542369168409376883925282791010324070359425491948979049654809639730208396946406401167755967563590213472500972665732970005942005290944713283341343930178969380206847908424901751687598396957625042328955066482240675629431380826194897921653629424508684567754662958601717339307997818906399660688940525719271471011335377659738045765029394793153769986119795756947829573286718562846716565618913352514566978598585454561380849381804649172414578447334754134021282710626114080602549274971824076697653517861383831261409878482013799469444465726921239919424147675847895621446610832569691062856341575966565366715544180410030070582589850383075622778074692950374727045955450735530209718724896129201879255238005287261360103417289810745117330304368051942378930491872771177165428183262905855399971704243692974944427896819748824716226177974120311638528123035820552524422215852662082868790349369252039838718200202856675094792324973360465649472970182500673246246865798677122743373497013965889893902582596566637937396026615083376116982273689366077994297819778785751267179172563769043732022617310567756128723647040353116867484419022213462154249540444744840729177498343956771389966484381682074891875119844453904403231010187060174041830406342881748515616443559752787772221967669135901410383427580473946487146903090369905330535622721348902100133739729009416446505445396773277834155774263452361292392046725817811228165263505768570963289559276217973300230749296720293161482002277704315611326601359446033656206718367137375064585949981571334680660414838708430641370923940773411900253586148087583594252074494326082359779739937888617726188603477841351796664258426521936003782831383862941489114378279381652305072987054101388779650114469363653948643411976217422894542725451515165101047229367929160395553333823164022275319313617857365761932286419144271638495904539052093906427784005082536097842910582581635992912101963937906590090340146930092682542433482017534486176648310691147881492373534487338562726950642301720081532409274191230411975697676398649040594274131686868251410515059645188035141496277950396646206126373419379140095445506815890847041224127609360506141710299635594749347698900771418600852749325176021459527966040713077280673810083031243121421450590265013003886194116049897639874424231832452942002625848243657081145677742944368860151655918217849636992674385228142727317189609349589364827806449919644305376901326802209460520165069664097812432033452893170984708719569578936060183818135858816676845592083616321866080702924121480515146926067818022279423147368029004692889164678294656824627861696964756619200427894565044714250938281539443804824766338736569946958357685518977660300412908615067819714698563354603135364177857461927410470991749454612106572585314698081854148690178339553511242095952468815080871828927449209243428821253321344653744454633209640336386300249481164733705373195277611141946490412763932108612080294254831276613280735013709808572659122128261318535838192957618006997636119984904035765241394890251988539595009987378214619852648734100155701139137495100470118454716186382439164060499116432419855140735957896798833995546373686400405199978677938427227729002797295329559109906206517355966462197055442464591321393675377658760454523889051579211745788050702258021655566845660172170065370278277337216163906940696633044295498859719340278176426929337196753232213962378099431705601002683403806923434965837212778599496084143524846301902858819361654200753082737243813080844466751498872817168620604244860154147326843370915099408789697120643376189003834448584595052111449063513786728514543344842199490153406463681812870445938944679300937033768297331904277355141532317605008500208373555095280316288163167937591348646361412095926553764941167946888440970801143758732267866271686629282579125635211190845511268447364415606918347766232384995825729839604389970613868103405009848920388171300496883438649019352434109031420370045666318411916871881463445444358562613386677499196179637032986756863196852888652420519051087576972815466882804963616411699692802112911343194745579681299100101060361437865568956681435314499527961600468498109043047640727574313415635908942030056846788068033847514079632747175763280151400137232937202084392239492546670377948788877231559568225608324100492379797925371192716728585602497664129518775396330040480091990633030853442327895419570760148430692561311150420376614098856992912159962759912170752344443647559741705338641377935795872078989038218578459633300717008276720127893596239732145230240438949729840888404402428489758242349163343435030713310040990584978584263074213642598572028740905893532417347284557707200275538706109042160384111891765315945054588530176706791473760448510531785912994763515394260448395590357232806365142748735577344493411406469864133808888565843872560607532842399693437160044828367126156322614090344442277120729234642724495920976872489134504277306298169576849092475847544987200990819922136872995221017421386005333281838843611036569074922503527772984037718855744847674437567819750536282876777601008237078944422324289353771086621259105264251039418765518278391818005296755125306566819653516181895509440724127311792289456632866699331665983393417362918451286499471800887368432938665082955861385544425734017274654204903531322971574485807839958219144347692288080786431281521473021253889594884869822107519266816397104161240889716087099570759817248324463983396966358814060604373600662547670367213070980829483019244116634688743781240402731011724134270891204733369969200471806963145452909320873569215003544719188842935365339752128837562445096031335613693101494327138314954326974480596733646377601111641872080124307659222970596109689265004776058263486520512169370266181295401307745314693095552834376006443196057137192231846836774481650529197595380016692247988970602373962855301794041321948008228910419681370970313810786199920378356450732895350101761270915036164840737582016221090358377969819187949138147302977309665696011580829497753984331416774209640334968152516578083155293564656816178400014189483514517363580045160383613373231088421061932514088703737781872376875905777172358558732033224440756330293913568274338219853906743613034453094361900976932655466808127330290107897570629634664080014584902421107506848016038304459098521839686909923710535157312716023690967329920307349703789327159931363918955036574689144455281583324417417905383517458141136742378320282808881667609655605202428700762839742624002818740316474918816499320249246349773415291314662187420943528536818978194020360827646979820948829709769090531649907059681438388980521732806244252059855933438436132904944537167730775918389488872455043354846948780877772327525151408608569931064409682076315264711318629404312991845342750436528612837876894252150181451335808957789731256308686124693018463419873245395024110462973709777274669628341361734386702833551882353179404749784375562705074018459693291409544475533101860806387953911331035525842709654510745539218633697372116178487601169582649918936009058190995923035229834808971208540276585076428929836439561659681542499429259524485833554240193725580289173425153117110419009769124242569851005234765090289143509860883531566381202251912939968014854744154157789674648003557265942363178521198500972803889741986405762929895427665595931116054719933031760224855393639595733848600547444613398176900666853604872426717195790403607916574601121851323722638349834841139190206120077195287633129052874149819656942682647419075016873470338065749025119608978679321529304143175205510061394406483889577218325235756786455540798588611023194152862994349968247516112096370701560820329810394552201258619112514504756492653681952066091154372053167690429169412877734159816607649522974049804784277631281615376098951943296593341368855593639898571682431654093306856016648434386088941558239104297970113975746791592286044653842419688931662069644062724551787679060824564125445590845758860851677681702039733462071062534165058532356430792833567722054736599300725975635175291495042972996281857470726954184649030126650760036817248281704186832706088330595126426788495181918408774330208967349122975155521155540876207016082738772514402415614946478638181472041345025302775967061260937650715076612970850165905952629159842034331133096846518755578159412993318352950873060153690680813485598503250568080550289137219517127994376399005437633887085287281317929912558837485941405498955294303165637490038790310010755812309876995977883644359321039458911971243372937861800792164388879648080557666230952640803908691151318427645230572870606559791064392588555662683972430652667560877038231009830734044949090951942972996864548034481379477195217822706077701493713301580094273915629523446237884743118444467286585002937579092319492678178726803491211084137133627774168750583354941814406374829570749420623112539290033611759352557992301401337127389317651153034714900164675977426064585697051965915413679606325227940887790858294378636449077101784486017161062887632392569117963472580098522045875951554985640219135806117306498422808331999893972566534988096773984818685523794460043345438162415650330770887292287358701803470446373181154379932913739757455068148347804041203820277139856393887467512063738086707035206017263633024070788231644269779953189420663097279974773927464843643392218684731307063330733592444437174945469355930050823350891768245989116352215202467618676857665962261111010087106941463567554062655331045041041545924175833274259878298739376041721854592553137662874219385111676338213200804492269252978263285074919690372894957186305156608075003698363691016867560438543609323803305487253422190594600059005384574451544343497174127787400672782507182897206715966247227436730700835343190209723914371370971492148222232182232554998661417414626335765838097056609618546252369474771162487210257414529109437939426281194330771399863437030965565786688230482538249156064743901544476006241822121185534452551679921930507634546845709871733542789030848606211726359640695306940763065145320822462382505527465928285280740213682024717012111370860132384433955638609113535971661633220281921397139419114534781902614860937026541036981694574254142666872271506485567552322969967783730612036225302661780895404809687293540129414613800403442930711575897311992523881410977006832757348735654174492025133236583789994518078192945545289881300906487853802349683149147351354838553930459996525703837161505601705870856017709791604070495587569257167267732558610353437954425475618979832249250306185077879370971036164088135908670357909608235832946665161708370275880479060919178412688012081583681546448815252146492926927354980393760532815256927308786790800422067229694492120779513137232249656146610198043470375323796982344086174255152175148477407409091896475332920610648549330065684093135880920049892692024663816685869672295223846720452974353033745995913921427688283416918133019036469968557408516346889197346645796359440744684357473790278763789193122031134959978768330225566033145596957519917023565492256803105787262800184777383876815782588242336746228711511813183170714897711845674168622399612774689887628378071466010164921382546736866025342484864015739316582034845077855580234612330749448908007145370408439459372856307673785344181409095725307141848354144397024835750329948177946601350967940602078375505976650861242789796406718857896390226253157255410409050242047129946035421400753880821105420950099436987550915879880604077647452029985755486662632383672572868961988622511092054189820860489072549933445721016514838834625471335204403974332998184817572573960734889863205932128229682621953011524855791933344607530991689319357621846918153785918625299936296264406457405317167229828102035175258287799147249580255531767348366548509861603650413477614029959625501524906005326144721782378019403303872022027449451761672860285147766618080562472121463756127672821764844251996816491041173160153754132105014386326299471012369131496362151711047200113452993893353121291667351037247359032307945577616170515162813905780174986250051935113905710857785816591931025679891937220655787487222804613627783143188321755041390231960622357963557548895360672515979827781508617751026653614064293393228136419222289512737834277671702522338055599273264819942269600656654685363981114769700159653506769017639527859516175681490600411190487009085815609110337645993309716599315660572286138027998578956215457277359130000356142309428236481936795505045935740674358328950473958624167039145577022620089688875050337893472359279295132282550308740523054868525768500985775364902685188419584093184738718105172366126946351546113529263067555417818466184921087609753397745251866465369174201545823297933003612479465521389432196224112087888075928270019763202667871643353324107303610856490205004236496162818554085663700361006135324679984040606194675751658620914084653744375958011799620160690275353462587135863803101452703826493359096204727968993724557485084303831804800268233235118426836429735297605756494472111621464393069512556278316234527972013763324195725670341025629603346939771986442430814383916104377018923993153584465035482638548619941192681240355642067014402617556888553554335074262082117935187939631034584365561218712426960427080133142083790684310276450056411533596204897602982498781917694762350408959961568066767877991095188437250177467873244471819977038289913010061333985466878118149701536531937664061453859920420298834549685134659374428426557570000460195045723453565579479494769200130044638774977399977539696017276038510668445637737538755668788998600015237741328840210699575577310074934070432208701888536239020228619568474697327981108237343167550123027634450455576214719451775761162112292024167864049435888898893123419693134485869350872922759495151063160928800020161702664120451191614227730095903650283910438764318102039859706211107007243233894381241754494069477911786154626121997916727537645732806102174848629797069245341926970596349656196695696819432826156841986956335194376116787916613767258976080066841016644210896052445245689518854961367852517923080646795995465316385617073260096512807490469036434374851453635366637514369730434135015924668415113941348086074491292180849498233758332193164088036824714067728400967331330833265209033915241526379462017358339919043628689579837200217064090003080524587105136598028214052792584113244512661768552346659367891500412236972415636010329437726938052390081504068509459704040681641555853956861222681978863636317329351719297767110596561049598382423423633283998978481586361637776121705105432447802479540590157643982397457069472896111869728592087764803982112781006715310431901489644690594639137686201043719375827946887633597493560413432394471208709854583866394938006608979268065930628077770078450141998220238611579144780734474413634711510785734348451951919460989340262121921341459405484958535937168302093329893841977647742962842099135404002605953100405026412533783199335048369806749926133187911018974013427585690061093049843108179089656385066417641398192114192934195146054497298524787737285856026346127010181273401951345187099649200614064819640020177351567913226729781392676897417181686602066286588443117923545170750834956288122474484582230665921143936686335254569072442091503372701531460480901602010777059892066747954337529754866523616778171145765518540339381463591370861150021167431297531535932553940339638066393870368829481263750174379584387731823086007981397241931428855884731206947908003367814028898670520009001576858274248364094510629745495642396057409823454009674231881435089652185478344821336006517196354730697678238728928230232293508922691301503232794251706915361660476667377961346946733438085754852235209842770184717363160681535407914835671942078886145718176840045931885948591803563916147674202569455174811710048965431193595397005152226197707010327361393972478736310760296903340005329693246517072463559459549131904064507182640266619319837320432856178224658037285153182841788043002446570363398299955394509866911195876421547343465562315432342176005387114381703733582948975224384972236322928027974395911977260831404751995532948933204022509977860639744112318622338246812421166794355904726125901835759767291607593226668978035874002524047516077914403573081457064664946246536285781511581172656374306600786879778990757858965823038063397746068211865969369475966966650495560303242925284727095656276330568922901391255171114171028927432376509482807017606548840683291688784956270844104463928179997410042390202988423339525346920422759213892301123484128784320915906331325083727792303473953067375896774418403149036491530965524371937592992985148576771412874536297232700703963612075676290888419532402760026384070929606753071263437453656295754086287932848709023516609754064824442496351450125802269417530109929258393121484845931332040676021486479760938948307516902868387676968378151132984800110949812696682258452568459851420080081918790551744236069122663348424193001762743485521699247957274763171698527785656157973632441789929137154923819588342453126282084216220639526462244552203831272095432406391774197055331557176057303058313132874682977814528486317495593940695893592268172872169473336854287132040830753687092062660909777914995214725614900448424384813755394780489602848663414369592514247715866137832891400437782139153650524434453875909261826148376225125067857066233439832025866598823780460515007807206563473102563872735346948811768270611320993046310966266678690994467675733659177979996648391833962589158595420771489017980429321892972549667149887313371393401194324988082233607142334257468981093544613101440867860934830767469108582879124405631666276393930155737798344570583416498314835720858573249173546242551762597732762811277300453458695732963832813262999951008320486523110860038820571420808753566288011514928422623816061899410970829626468679447449567571072114277447963757713604489420172323416399032537721030357418324717430776958022422435661974335371516009017843132242941828280674271108149397818360425461914807438212713288715618303248254422285620285237995952452492900645448184826637295985335452981235044000334846994122877241061105418741359224352731265145556849170590956625855821741828786728038539785383370521751612656953759310295931911266465373960139617844102588861863680631749325738958338162189505803176313814183661449715785951734130559328315253759337121236088278572976996853703781923598232801588741692806891410441883547984226606918192982277480591158832284239948787987786294366590123852926737423480113938743240520560965019985251754952440704565451850070438565678887957508736998481056112857105679824515555677747356853771099075766855430386389402868020719061968527107439427297175374298489951356326808664464747121694689742503131174992523253050862361126372385806129345009447604766330558137601788414375214622406483942563739119707292806249506534715124165196758781312882956059094242992858856014529478433803496637330371824026128619074740015142059721215645624330095681195546476606033761090949418543438636716961641868762121347123490022628494243042467422768712100956940863867002645746237588473068178881346884198532154440625772775535874484273196135643501300728946568760136642363163430767046342104442728698817613580513284998024408793812246934293825211822308676075659636248710347429373992148983861594629753378985943515600107165305595810010018757990827868356081728421011256351791352353773761800611917238810591234365159159581837745375985399678514636553073400090598487217516614100244355186308147736598050816812952956981302877263763937787492614303007071013794505702505776058556871952714928399009421094544252953145674084212118510907012458131541607366909938792130046131788821753214406356689966955848349742237179704069344186497540621771380477564588578733695547289454198234869638052136060440321131429449163618221891371000494959061617142355468887643285603279920882398096414107781957400966333320054242177305242726697101262890065736034472473256036351432116334875202344549159144624035048464206274259109094728978440528766414287052175717648673122058872429016287117910441389057845281560141219959232599337072651443966877357574789345346339166963598228011880974465158522145783639327903863660825668096714558072982505397012629046020477696080893592327597145745046537286751969701465026261404239899066030962492903683328749158319017850763269174878156519256104563293438291673988515820766285186495645435155913990380717367161568075392664616516259112663153418291966435590228876588301689683793430419777242728417942340466137159725416786670702240216341917726395579495811121185025883634973153415353076768675989215286175099624926349705906578587620267391128020652058331614573213182617056323042375134482694203179781660393216847600894750338884273951820574655339220327676378822213098305671966085642211156782178374930378569489435813082797341132734963089524148491390305712130428893898793532303675302847502681208007889508194659952938488871619528669868713615662090865268921155441051715679217898717721747745638554581113154608670535488547326934181268336782052805015820561539457057111305218266011219108859448331684369746022339441131056054108986501629547209387178762847193262668946485050216004233183635730284478632331244211050779441544854225244959365097743984996602911808450658975012311386716290822674556712512961905091568620633411815796785932064923098826581605180525571641349421516940897073792162079636029400148811159464329492208838372127523802534200121939729562054003626099078068620967339798632732631733894537388250286654289834653904690440415012502507509351002293860630883308363984286039861448397109282356627065074937785968205777066861237327575036595553559544542623473037687390952816795085348965548836858228188871894283314676151014656308112886466490169416220874898972973038035353087856865916198152133404802389296800237449377712600434309417953657681744004719755085343002215494075327701425459727821999705581681486537138435101375571158903206160185414757643459539289806516500028277960214807140973912295801886390284918585954829307787739342492820155441559280355287141332886768521524689439831867920561827111792796346184787234451798407242987737504911573902911344745446480168376584513886665618252873173979406749627790299502790045793701033375581950988675134460890865938744965820055496624582822370977629652648513914100767446418330883937014809591624885065254671505003902426452911968967344674790002527561293398702716689581662261003141924393231484761951719617320049001204996510194530924751613201310166366386583268885214568997502077502844323709645829945089916865306037891766663032049212771367650699034600825327525271462750032721678250176301051548087835097590904102301038700731717228409871532748886477625472612841935550796256599854367194496293041174250899447614158543078879001208241737302153171005094674976046241170849194065284571661059794850638457422374658045414607198276750115833754623745922028640614397041667294854298251047342374264315335997161158642066524900989977210257794583762014186986378028681104418866475740946771895621778272476924784457671255586525011811437648206979476006362727731098707590150545121036495880853631420770716736273689183847840215379320916877433193566671295110126111055125476554379047138376884219094807646634892809779120362441592955768644885895929090421689957882810639082268609595244166309847019808016596289451559700341531251795969335631922151958901167948392907867152818589584888703004383040760615506698042899007021755314658958840897027505509055352674870510276926934331607069519480143051588353171550640365747492084731292478804454617270275405615838927060886939074215576511258599456557981859179186064396365403622624730736352877659304886889514153085846862389020337073250730987619105852143221349603672267926149002141363586941960491616192230543706759911774289972595480915424656874161220500518530077097702296097625114070721707692814906692359996406462280074404697987451807679639696117113500090564178552591050516127042078694799423177670044188915519779012399088471364866835122464691697940984663986702031730066197866783337751842403079665748238541473905490128164741114244659373325351022048991642964290732688579167903645740478432560674490097878379356811452933992076488561813719557822701732036721418985850745120296923738531706610464423419539921354640198952996488600278333370190061626987361951785881696118176492101316149288961558689091513530607026317018835059344308910142304881440756021150388662197483227330348580165667583190493588143636965863279508075417216942704419468102155363693000616454765214005562184014396791523702401602764819186712264470107300309837349978014598293012981302386796955099216068151028529152919993045610982238325755985539892892483118285019578966355958369815041110344406826850372643941124706815879877431336206617258024962406651218331884474906146289603498010097250953496982735597400366635491790652332499199712893112065796230910475672406906124840779291979903074789849751775502106885709962443390176736029260022878293927491822432082994368074259488111168049738313258383569943543472873908072708936814769274477025818692459717010346420680956246312624488995736951669979629960871756555460114376636087481604748087955714632909004968156024789828386368835379515615070424031346269409555475561864871632124916995914514353103014639269128696182414134391222316867043775087719478004110211710998844100429722500942388628735030195801863412682529115425084073282077938068590081700151039967349142656641245047454545064067714073249184370167131602853690740014058575825619991514240430281705734101313535440074161215413000614517931969580360426208143995139043280741022449477604260519602587611283962033640536200583733347453754280408020371669811157763035219795855748791534639485594458709319769074464422217112196731038024530844473840022055360684707276114953852206442840211613177571357898252747718154190088697224780230333912191242555423201326841381866490437996640478743690907449937351042051010105620453709226273615856725888080051558743141319027495443187016312733548452373436060702727224403088671448266192225657220583932140530689545728500301580334676389541565241755906498114980315802658738339889089309745095370260484562629770457960204529773197075774303134224955599577378539611252031862928692164375208237295981401766243236081146616287415820553821425418006213841142414873543921441739249963784599034359755327030133895393224389308940250617968078251213535858294285028792546516063107386502222180612429192420207734338001501328364924498120414017119111379192968963520839537910233757559816326881947746633831507561186810672856082263880948553800059285062558912429872079654860679003381528354494895011112591341229016109883489749731262181766965549888091520404880627561291733729484080578370416143691699293797392051141806374391307021988860461837436350120723668960119852474987109308664709303772215661715055116808146668186522936378344404587646847321501414948146732432700608929410534302912740235114135111073430984077385964319749970194758002252040610958129587653299160423834280721108454320132837493688087047506577658772528921846854807005080915045285852727341564600390720102290789833726895228828425640341898969436782230894623828932597491111319782761093098907241784930903542168647634454251030647043624611076688060701258014808980149454291102119889350516779738840539363155656204345009876252002119993778449109651367900240473729350782249502512170775831768672076909230402833164735501980811137226135294697731251843787084492059510841892907359293122081611433623338794175682858558481508626175842443869267484930194688195662957492150453970013023655050944762419291332630460121702341987830392238338061585063713201814956688657003632918265910121747818039730462868822025508457070396265107649960326842106707573428325932422906173982670734453128770915025074132692919423242183796074987618663980022944872633616532562388580637803107549524847794919408140442282709797952426307195366309457985191691129668960243394943042564155450605014653898939495778143736736336873062998463563980882699770747911733548432116194667802329309714622089107087468749223058069278676124441667400303761808080325782987031132670705679800415016560144786175766671278147866709385651496552513419921924044731583024385679898632105954652885646065898382966988825969900269580300410575202593494750813951836633136658157603853181632804278512012917159701476861002135339915789906261960423878088793637113352997807542359852628042245580763292593135622461911760999481969731448480881008621149066162766140478049931355790992192683782028678830129209774259864234944319782130658413508789786900436704529303148409703530410161682450609993245887244471161485731121393343312976516021027598071122087445135376741374731028099416271088833579290878825756393254010990920839646495113177830169188707661121684500681028231196762228868085447262515653557308334212392149266470002851030365899001951531081764964323029388175442844606666709002103084746840318102510639439469604792084654675103832077604970176896354754691009757479658545811645589761690005816183610580247062467758934191613235774128239534226734234641026866103217576646875497984757634114216324789829902413965622199925929310455118130571935765404447407963013798369538257779379135711854816856553663815547535306195266850142225335367277466700865798142736488221816798623125161816066793139702308707904773105889684820723870863331898779769640781889693228156566304821974717927588880231311125570084258939817408338281421373822281667976393344958034892186100452101643981689860816147190476564899940629864511115438514972169520670366518897188136540231805803220808760160061298071619427497286546034172703059754649368912086847903125064081226762962871740074628457632397224347305528926589693238439090036999312755379514487418926845432579097456366233372893356885925664609892952711171465409937636415990326853353307583839362048932961556381154499380071171595106092078434126897981394450221727099718713307208493885133311931487423905501937842453508589915565810811593998913378906370491211188056884088339123512275509215451749896758485897280213664505322426312753126467044978075867702792454993497807135695100100661288935052360688175091415097949010589893542876563877277947107374508602335983279525441832878918148268018719046354138382798507551152047688128639875242704621483031364910463181772806043434760425837437096489838126440883041602073917519451923464182602690550411560872876933596806409818306267757267749181927685216074220904841432178972514390364525015329208643118054519673063793227832920640625255415199066336485945382236131967124969669332182559529430293078798355737852388519135349548670235750790108445648557181964697329396996860527578935086040610628551352485711144544157442309264662763747556233621057801165149696655902728545379875004597087281903591440847807128873807250692740743536059561169588242732820095968533102390514971600281095230183521847028891003381625606665521942327606113189023090389274307396755255978859334375715861215119010440207441719749169389190681610241263323997097773450892437871929291591146820615184039084316649432099165296321838526160274114045537311592274244205268957142567626148469849488618442917612974439527500614681455654611146269187525086708031188212044349248265892397175438637869605456720537771898141186816032874367721422503789480895093402632318965495531347168354611177605303392880132210803192383348212504462078021833528010139066381965890771818621927444264699473328495629958188098639755924291195478678751561069858308400491093280112491943001480664469519565381195753781953892388087907103949156442791772958087240330587268400391974811874158501910187259260099545996563281084147819682885350839053790154731890029104108340076891445474771247419826228337279431416357918938414381434049173001164810192034179773119257455915457122100724586816949262916786238536484789435508165323231550609920591461756646689000799110376979692329962445581852661060882892896382136844668143876015118525614913905260514149285552991988644276280762547592903612340743338067643820562664058601846827660979508890047263184465369153226811640390856541333016672648092580695288472889840406581200643396006414401480871647918201756128583009893067467114321730309519556654091113637160312159287605311461651006157889860660589157547948550315653373236802670323637563732528030849339566652981755292878482287773030425161816442416096734434307198780278709846086151455284612076359313997458626236127027902081949558413786686614243748167450779783238902858396963257138856521537408019024834109616677270078165182791096971250385810833633674619693388530812604244517530372910994242178752155512477502901217764334458586929776215412833123422172514005303427015180999792188629369464364866294701443050936517882214662357607223747605849170437277477421811386840897614149536460211134748738893819464844233202486277798786411012740948429484596813832239233813531538060600843015733851102075061266250660048826157993275407110800354103807309802054974367305178023310144304745706951598720546367208126208109233825392002252440636841864358893464302715175194646603899396090616460522044372445318414104857982247081410350103524315561309829344797898701318979223615216619305759064233479667378949113296691535947984233685669573234462090430606157494316703076659550966089595995715426798351891414181236814866351158504155389908078305551803124401841661265662816837294242685319714122051821865313144599798931587906690026300141915665222888659074606193951076124782286282629420118299591357853535261891626015189927621411399483334682861395456545238566258605647599877451213808231577995504195869469060761406850494598051895315451862336276363474497505258648432978465956516411496479669259934821895528425789765578501731369445673036539404114535685057672688433150896888840202746420345846730961875888245805816939516147319614784752144935118069262805277811794665839098496747655225796292117482296823541346902853018760892556988505588485281457551004520676869506585879241120499682311651497585745379858076214134518745096944076186389692539699108329311835521269547519949386468972120210650468102820087991706704607684845763062163723923387176281958919131084581294672217336909536750888182942538762416746361824159834247718349610667045255169713413633893488984848084855258299823639617180250708818703228067579198638544947637180169319313735166104560494747892091253204891009736489824409697362265985504823853774259740928422540483008205016822726601162444564540109442090465188230607556533880604848510002149281551492760162834265778845106661394269945074681972779091706367429728338514235533643672067899896640966271978899735115834134319754645496132947797139666082740822569668966496037559918866413011338929132781364308491564818283900477920119852243829369239909371774021494579320318303918282091940397881842257972171024177935129564138709408757910926332267856753195506231722866112968354450855619655291666207076585777905136622210813045528412575511936507097450425470958342344149479427279827302967432790311170225720566337255937032595268601553333991477029746863298484655746295098300313977296015169700742076682840110020267652344086816469154731735975834139459929601763682316657264637782711077401206753980220570925742896447521980112281371840492701173919555587827612149073916780820833284872155662491123485936251780206746216406347026656700838562095657637632688516483047545170343707719002771372490268082271290979814618667228710522929585077235375475578723397375979571788202491342430801102457148268404475555438262497277164545078470366566787768457158282506385596740576807305537371771728544594844701217144324943996248859417467075646056514240313306524832815561047550808420816400765516308084524580500818344201385037058652437713325697899882386457557414054262631608327996865086681488092372740930263611309076807319646996381052807732427582388266765770149128220706674146147929773860392114979291108016475211255354379172966495086138457491703869471639180183949773922609636430584153889474501268195418398226116959283210685735601321314071228979730532805089630239368318242215666798247174728486802750693543682069545897239950374932136918863672232213257065321149441041656479800634577361260253852425191738192361180762003555287098380366664882165201791816180623037865487901938959710763200719166258555849086114982896076056775229053290178371741219532358170765161539424207091461979168937646720952355975136106999951532696061825126536107407107531656933277772508799678431358537149197906097326126249647272120317780843762126438867599693880236580526570862050137251876482996431175589260172555719859629943449555909975058367685369220655348385397574663602494830876740067399382601610009589146347744577214932610079698686099310413790309692185064274569428208900642245290005617517378355331365519391485626911610577856303917514192023983494137240649086406828211883811756131207777147352678516966742677495283793619282662977545239188115561826332037068158612139615268113910726152589551694599998165901689637333491441441584016066577516531507760469218141618173653844827757373828649163045534999289450432874597001517359299148990841149368147482548376590432608986977226952018827624509194954424656544502435717927670323867873729723951179792503134212595813022120961725455002398953821865734119984891025869701352488639203889833500092180377089360089405892372996943340139669987067551346498031772676491907901837865977958015430120504446472765068472213742168854305419073974478472550726394690878594813754135358685511572104603589791722257657302477021797896291190680495585543015242658112529422596212490235043090039303980703099835153405296729824004418626866743581850164481870732877360091955511768723795184688174856622775497092967822363178077542230097588974354668996443903549501301519685426800717768936716552057643492444513508481448422015288242054682922150414454565428524454433378205797801969124270724732022890058027672235995807971378356497816984938151747720528360977790655180044698831876664792719309160358067315525762142848292220476443365142808834287459255058329350674922780904979441111550914053710558933904618969006775577700119391466250704170321535980503873250362403031028212773199107513837171663552970978541169643428522498928874797542239940894147879978525949994431094257883590115572529995081972266525763334421482570197280303553045238743323941431008558198021233106813193776572398384962350689957494864962452750938635649397184411850060583433653845749234978369214307040468045389021428504870828413585965000157451202294888584512454395611163374896942246147148391240324507742365169534771979512465024461863978169422511719161712181175493271037022648592768770273732472609704867496957094547023186110547143967733925239461686683998753122751611094657320421806039605091341924830292224188885172376860611247045362325545833417899468396837647836573970931195704899158294845412339388786328084904948922556447564463193866749478240578781551485628415892349625346521601982962695829484117753599194388529778804317088992226538372814179291709306843652059398986599090813173639491405995256843807257931767578250800411328340879968419469922345546881195593356046194078302235362881883713484935555377287586703297643286032901812409995653420665836694117949481462228340413195571283290404861228324397637452165542238824244199767031751419668235775929348480071223564103268923702584257187399107701954926559473440080003377687543191522796060313457138992043245610456490937285326759921014559007197843694455039908197701137592272161031163260863306125425983447254704853018026979443166808715335236380252091831881069959857680629600432278344612769047441528652967477412950453551033303570992532340103346320203212409066107461847249659876280617438673816227985554798582986766702635992843917760772690918985294775270375519616317235730282519864557643659810757371847794592048099176354221242207891198603159349352607506726709106933111146829259857966784413454560931705996072948468796164889841154765114129074793765799661242762843451999474398983717144401593183914166763102344347153958609668463443896744486586338270150103315146548345229926622176079281098555001635865806081831482929909223318819749831349379926416829947131332447878518441449680276619857409219786517014688098028070391533426625380898786658325822372198673272789952033931230301254469554069594475494164366132645002958862950601566437293928724053474221483055452925528767714911539825937399717919745408240113622697745014621833201239239902423279962669993154362746208982118664051830234032776184864343757809697209554171987568956590774904617776072163909883212720778984393384337416035400349247807201739919027905619508882214394695542426437274852538775566228877978320177210029878928253989211993427200275470595204392432066025140039829133252010322905071387823011588188160741187487002242688732904139306651497503590734892214555089648195483013821432720276007146815711850033822660225658830100382473799720461783282617133488565337991388257065278171428051568621431238958135871952473289354013919830654235419485361315159740437484676621944114175057234258622534401559503826463034498341434211127918624987469445810492912065504655214114887380737138028075991585506464604000367354043371452036262371162614320211701034260175340583180634344253940169456501497760594910667442655386342995966059724178343132203569207459723499668579884422951599368030410268866033900018336800272182790374084212578125062340934243463311566678910645939022712815780801214852200760882962663333368513089681156198573050416363948315601422633975535048496605162927869195545511020596645442306132151882254691536345833120334772121196023783878899088141288840625394152009523810398956047788742661238358385663594199487663943792024331282499637817825618373905115017479027232174475277640701777389466364866791526415261263946558045656913942044575171740880746486207749026013106600953941228788515003766374907270036692282027630467646302326913477611761967075204647866555389700643024376297855831252242905723508076647343072701717727178264132487519930801312348157584897663483865892077757453739526456647948645846468472529950916814098730861486774449798344829701876995771208716164451681183118907493982095293796637802862495626911761340401965007247319634624627761688872122485897469855541009108741046721795988940853899322477242897562860784751835260823069333167273707356972494900728645859908732973490281028211208149836808274081196428276066351832191805555221924642526306276565337128321349433027747034361293791410667380238418673320347860519323054051605244089117931605889082218436830970667296242275852661605970030389983977935047554760604748516668639552622635213450758183353476925419696364724050670645164019244858868626295718569841556477966457177248440215485881733959610739400649234997682920028426495778443406751676331166906690744389316499807769472655509405209544583582592123583488417117737581462335289440141631500454923451628100287584392532151246703220431568515534766701962804861033966141433039144559261449373929575573844485872578894836722017145604173999702425624355600713654157172598483044384233293756322339613499218030961283254227638371981752995446967165096084725901397107340233831966196962548405690089376126810577281246622209878239675841585744184420825774343110947497275440346296462437223901508129471297247931010989949792567936863175222843724854994918019645765233685340761594923357116203364154520114745540258056594238647192486469838570908598274496129644483399801954027201731634243454570297943162842365413381584510921615047129452709607505257525539779029940382314494928508663869073381690087123146827464256976191249761279037891125100565475810742815950470941493291875472740635879115550248515337925978194338392540454158539712665087986372823810632972709672969550425882217631014987496863212460677686115563956216570784045798641561576209674290228228539422084500180231623684092422746431735688201835459591609760403317715162950227071289740696418201179637476847581731472035529787606982186446200815084032706260111255386142432543479272678345834874162553958714886207244796245617950162529517412118161042933019021534383116762521708447682740761039291707227038822632013447087610092174744308051292278960982266458343704654896210485917540847490403122719070588422127431682317902647482421227505613705644809282110483696009337012830702864316767192107324047522355144449013989762876194991320694349332744243484316248721162742565108615102653419337472793918576742222908754835350906816860276945458118981356519449300293904233586455110754844527779127263043840190775727553604921828357672465800312136308924682816745544732787664276199028889110186532200681548046129854587761869121889859122128336742797848417896356496729258773414807291189513985158950482180471831127008324715711986331816016358783089871689020534344147854140925896863854109962818684490141354116048492161682701622627887506028641027778341289536310405830669950304454758719208367096951984176768650402358252402679839142420036721284735782936147392454001375564885849897129672159669123826204195582410522021471265622450865787855052328034225812726115432396430948549015601282898632886093196896811779251799257805957861826269122190215810865276913915643290785712011094576335214021498199538513092824784456347508995310565324379764603883386677749545854257623242315546760769520487719132452449677729601388537560364956852641625456383644586782982666298242813035967845665870935790737287358717587473450307893828375941050504975404130945135639959108463757648714355129979218757292803820824774090398347875371408905091796959562212594435392279107060143500735469724695938372023601048240969177581610549416847775549043675766172156385181216843861279858234299884877706378426527630869022519132540789674545754363677877085798403423775156462362003349180878868147128595784135301864415504831637356617522789672807918780339664782214569131449339150417287428510574726484736771487090406619007873598926564374817141304635255493260304117567647621449547287263735416147078617179922530542124220528159067371398523685152911862294885918692439843952132496530394092803432522065049366523049927325308343429597386841150574538775854875217204788178508269906548985676346277923925679654580200274474252829114642340363583000603445761402612827400728926096297037827585116115715810156235444137417193228569316136243820885163842546423075308601512656732892788315009696640936167727058119091718902646601519210466907822569717802688455526551544966693802548530217000723349672739089640740448939550411820373350605968056556629384520662167032848726573472108152528287834645721771875116898436710606306998520776585362888972992036759958198508671989625499682067043470277909661026663656636864652303488555758091426250391432555367897311611198614301392543697126487041890886603843079856602727196454622169929524924842518665330965704505918378663507670759682920493937027705125596398747002500326356216348956053373879419948968867318756280120507188636336798937570694897864784871534836399764304723837577596813239280654578873126352984241731779384817437604644686286636252957973538583612366323678986641054818320932776584942254830504473648795302866868754611373541288668629749254345360013597775874292911803799532725925356051771628134620966052757621809870203847115241052099891205778838712161697200398560224658378768911538225442073020276089831706256207325494552841906811267000579411298707539724561482269646805519886736713713984514904569561268425366205214403562142304972120954564841932442966305193303382034942658070021489071843745534839978782917355113191843744414170921976991511158904102528920337148667645280046518668149073520166387865188956191160783172802558663207906917488165870920373295720046877445756809970641740588826544760323436903977657589470744540240249494816206001814031864231684071500616314111363357883015027031922694779341664805567810924826300458605823953153776164378421836310332653599823951994836792434603013332144746499014375935961649865133918528743913847185392444380129606840743935193493800695088674383315797196370632540479994844726804860009376843859545727266480619497769384435033770218677523617899844631778051851149297642985422027884346805705019262227526733096904880279923330186780285562951835018318531867249334307927061957887164685431326991199269165330887019110509335589679882491728494086826642162586486957428029089550953192907681477350243379433272198802883414247953063614228015457450875363186920803980767632278529096400146624972667822269222831571475489492558093398277780888796441149043725713609722982346128333191710290604386503262879425792374941421751176399272137866058735033588984367362299656758030093738859740483944768523584451438492280783393643168384871734565548698298042125969812241723593804666646441226935652700434519238847955120588440838221343299576636649494977763871954019807382884167799160563337111711245802754939567725608011412176385467621556961940073686000555049667160021380542525617122207306052060538759838957312274760839306639214498248957650099086811112884077126093796250855960525773772335350267749396869919698733654921293854008485561972117754419808346889224576949889863427273573312502764363360935218911450308768275860857449004755377496334250580908705795919670466740986843758463261275773436355114804239799245112902426258574292261526014023961159913169273719041030386097360326974696098318992427734827447627276961613671493468298357026653000707496669337923619233580933078172481409690500782902214556404085581148301482239622656565791552688329975954342174584748316746711871140013855314432861825704681398086808139821341049696901109843677517439921259856386391795463267548243294988783280316510295480901074000263846585308602742595742670972184998235353189434547114032460787059736957482375668468170828213508804573695521376694878411385721990018141842289045313266315532203431236991750910845513198172926160336579199300552701904415405714404100374451333756498529013827361580535035948511837561131305676896206484114890702112570736835128827674465377134334917680005430342098470160542151630731340097330198848805680191999589116197173698869513569515151253387220941451724920747511084839972872052359197391815450999049023609281883548320529658695038983017043611519144118953934857191380567671132152592813732137720210984430991835108614970202265296171585179544752101671614937114317381948314390001867605661105155089079869694193707656072778964566943632778919898556107977252821742909678512702500738187596225089861996560386766675844348157370640217570973020861099629745305469041306621694628462877623386990282478898676029555680104912157375901991856524115165049758452919447732070618325340766847935865815299201955684056595537842319387615619744289750922301219539879480372609361873855219209701646664018312806236837617795235670806858054495589395853582012458133381469337849698557658000896680504091449462619299927416374017498952344735042512231939442226024890186494309809502604172262097318641878619271213065112914610986819101755495824174448940283567613109776935228928128442756618704391702011816545043369029750010089573537875375294965995151435768729423986056553460889768422694814612358433503008535439439124894839010675149096065161583281984345372496401528429663853998196816946743601471778576297145954478023010881351128849090748527496761156053755394893376033156815095645787302385484326404110546322980178403474564653341809051700584331777314939142836440476869648567690558196952727218024267176773849768014953621482249348380206714019295902383998124601894731257800251272683064033427951899033124648444233560720436574860523585694089221881359315239921881565390036786087368465923604474655141814095266239943266408625089250973059140558515365462115996957944889902129778461197911542935582403461987656225781696073621106308031462063013457444024305851342780917700073494866429101905197610647453312083658257389110436199698577516154168707170534409587136248393469500250793306771321690466927492288996155725380523226564785279462729377167779848439473210846100405248464701796994635810150896637613800231562616690027256649179170108877918588902338392013930625782335948959279019427603627098170536938901448157666156622528259114674479047584192032083194713427957797423327914719077727091836373437838661771164598848902296089587620927945321042390955209221078864773380301892985765176390160858196804854577340170384625051994672684603251956891133556415649575879340503914358382023317780209978926439177394353427901043811137241808891329625906583529074575403626730053180846606053274549231330499417827666623908195055666193675201553586921305143170008078487807721754960976793299019021046588243863300427235244363289871633475388851352755027072215134549514922795556914954021161735013635705993277470383050684835160170763964695596835587650395769679631494660065454891450870212091506639935659501934415982619457938034803578610829536868974936104848498093643550733157022694747783757179712637542649574185626226319688622593187447519757669331282792319976017264120174426527198801643014581286495596028571923047913841331839871573106408905994799616249816845764295778481170005515745616449068554280283417647047423682585821674172095537216554957233799770086821029781883757183656566322317549990141938528935550505250017147245678588875137339891576880461448157698748513736217501511726954405165340601500817317536517044549452420481725479208934482931036803234632667934620657598845382621725900863050714976908746433767153626346151249456953165572740204240181368484811404815370749668693800605057317826461267711770995849562712278294332842296127685563011659104538289804572503655251145283121381808256461824529482749583693373338751158375124838517754079354560651259218948612871855607961504912942746663179321440688873379886177185948142044978987801024566001776661648856459678544800843446685086906532321769154937684571586881599266522692715978668070343392500953288064137346298317048937157167207954434871589651253156383947102893641320212907589685052719636252618669672731867667815885930832356592006466637615471418650013919776666078669486444604631966113474987727663235159797871546917498111090549974918777340435541717935407246662724305944790009298170155230168871301624014106289075469736504655130587639477851303080563688681864708636747487151238269173723027172579436369546142541575908392306140399281834922730356456988138983390019057711696795679104416925756368637319243132227817992978041246941117352659376432039006422411114146004078808808598642304270629029142210465397765122699716359059527547796750659711422236347692747311484069091346843748539855575195651528965081218526250932823207927106096218899818573624567997824605172824077035141839477923058973624231814497461933612946442073631387530832382842352542767023018296673173429014002154558992893297168302356432421638826271383720492010750923201534209051242907829829451292912832349691152426818019561071608413901647067002853504834164891885525584851556062619408864713127513098675830397504448589489737961107479264095623893887265130874943955438178840750426899379160918114620800938497005891115018212309353771832393880501197998249343028123172286818860064100358618460198014535306162092978754788991337630683664445132824903753010569989847352478263117324200471232681363834161078881903769675862519499059155822905369056799478198404664448517349604157774517935733633659452930330686996117971185171909426403777085526386461118166698638597873581230520040565992262375510325114723968275985272367022212431367062236414907454996083417521036743340462875620110407866725714051397058517933326103628543786912036171075153188144179405007780627632242837570902343669779286996884396288191551753770086356353041932442713336605655270400339782136081146429275437346149089750728290479383085630101921389694421295647806282576452576102712429619096529711342941960686698548851580605849153357211473109932195639428260307169388980966830816546878745463391987252575690558490497629666864934851453896013535232449785394498399760669888369954423585553251166973532445696208323958026568707599909277322605760549587011335648651071320573605048548325797247861215673685827205305967564842791962681628828552268374291340918510488625528596263120504828504753100413860047195370753688493379524658875309491796385646871582008125538831353332019587316678674600323363873682992004232844207736302785908020738010067816328993866789363310128512748425374883576527447663309140600510115287284858944282957101869293395773241633153910953813179199248081571752251384603773742032412163951129243730581078968615037319662881409290272516755883937069506842533040737234869364892740131782458642558682006197136248993171949368530013755325614973189137217097635167015088212812405760456135597152332884027581449983592866163303837466409580256185687275227358969365646248230647488497871634988036149367710984308859663518820660067963778972509402243131295520862215310896822603403680811220455849222541735098542353755757618162361459617513948605276005733832486131916638860173220566173156287899358677549710736078863819820571158428230041290816757747152869283532317527091567321803679999456858036130639842300794160835501189338697196241234468752041725351241991903773260623311584444428866352793475546749185124737235663179989565737144112386151787838165798121996695210154836301992328290815964833243772253058713169939551872585593193108792229658112509339774221733580077221465211460169864248429520435941247394562677139186433937992787690272822590817893618144954515881329293382419642178876929671873021759172877141170048597850301968068973694443295402090024539712057087864926625260270515408258323798770063425343761096819743567804296732072314012605657865954563038965091563777990967890632515967332235703565977033516147557317635578783255294075704123167774721727893922386359322592538960653994847012289524416061348983085566240617441331749631507986121310866415025817488459024758423294734174788477661240188198428099594301305943290341510674400640934776579869826235665377601629665194386203269856704151983016383838415774836996637850864406319919824150608353672216176236125386953707891435288044744394615984447892194429262714670734430440372846503519017144290397937683877589977465082392710204029624956970802708857117177531371128619824183980024393059544394826442261283708151650449109594007159942266271292211011681086222639274259724470388760399171343364240808358421711831306050883859112433026189464418699065116263096705070888042208763884030398624227206932504905536176636199193071963856711392305736322153570522331939329554783591451052986176917378521210830003175365879035932893711221891469463311468950317296368921307829543971452275485145413269921087739611385097636562439371433910638825362699527713400782243753870107267604801368329193673486861666061371967999585060576510973409056533569756266542512053980776377519726808080401967643379573999265892021122551647697451531709514106458582201887071744855332942172670666558142650935128366198063538153624910145697802104507231009429550658197804481282330264465358862094781767786048008514567431172431352303851606055552390259009025416978024858338250209587033137652690851874561423438659014779832072781403164265543165688536441858585595411131432564415764279659166156999715300587935910333765975905127878970231584363840729952892838996171659656297884882250003253361663821570493549897984275970557411450827904650549756575695969118756813915586910820804186818032169130606304816093142772052948889339157295695897483751004744949597776067277629078067291157616880308144532344628984710281809905327016077208921605368320345418503207594649228130556480887099742814753480587908085282149605926234108123056452815170738918633932768212799411423335614889408359258489327360632042765081424422067288158660042610464213688240312550488369981770744504946476160301221592317378864678280218276390366601536930479766315072519750212248845304976140997995155815969861951176509572404284507485320574073239240225038446526882966600055278219219914788737193697027648064460373830943970974271724204119634437431661385542355096833670143302190451014194152290509612760167290057250921858723597408234822230441112327905714023214423596610312048044877835899010145343083357909039906383929013497302976765469950096969726507218832712658334488990289566899603852998046634831582835702231652713463759835740604249224993011127087324458519853339496593467083923427041061456921402199715780833057522545082764832558086203670775758699125200408935786380290172014335265570216112886500519398472294992441992291019745202520882786290001488876900515311923191873214784690087530527639768523021998909850289011752381143493595448359410607683650494220618591985853522716863539576398094949483126425045181632286281699876043150451106629354298897031939648448237087620769672595631001601311628315655967781462276190959983833910325709806224868117166519717534847610661550878326864395340467402321830627345785455565877844973457275753278226401446380397058528052671765970147480870094661787755564478863995432276407117060792901766414089119299125759149685347353376870887967444982788719934380597413098076403143429467170863027195574442160971260560115855600028218172288494711584886136680565503933802931967882082712672263242196078588219648633197390422181343130040889063325163619446695486445372468426727314832878941761671504586252811949745460083503623152645737137275020017701553912705817497754813617886585770789219803924927131073935049837468094689808512711695580930899792260198747854518870185429607648871328919039931090262884759530741835280272781760935966369104527122626424586303676702912767419713551521836586828906335754827103381599172030432237034033672172539380802228052088692625459807556178646339336605921085050395737806241991821638742821914247300472626001198746139652885873213469458509079415826394248600127263730810404472325472199635084898534305729465010329161802982858344068214276869661464861520998689742628538411034337705369257675337152434289053323669438453450066053835974803383978596377910387583798893526096137324486932001943540862218435464558753127841590867428101740017105191371393139645343237524956277080852133795493624872237466932666164604063631345610812863939703380629788720691316857412803233872600867772407012930402646393959971813291357517854385527126276972026141395053364883460112769995195347086373140823714163970539677337791852281556093046336972388668760275945260404857122763200897871774059183453486657126460360781991815716392332815030662496639525593682120854620722352004112499908880698160325039312460077070089023237545470386257796568300750627516343029866054181187342481800766760907738933484792144180846236497660580215931213608334115160874773164248550692423750860479318346676401190115283546412257056926934310727972968726008221594234780174010544519826814522152520426473944120540215297131046025868521298620681750760319327527028746760568683154921968345974029165840884843827716713483654857784362707942070488754987096566656251490923321709793363992799661982118292333414051283978148394379597202675034563584842774754835874188792841689404119678672845649441680335375574874255666043685503465341829066139914096228876498349566373511871237144191170149886645278367770794876979097911197356754997640507270796627766545204740712929803318372079335027300301713773817433908091453872146958525962429403512559001894674477464518626091816937659183396487523638997048306726182390401822139296683076108490001266332059389209801342635288209886996266511462632960682159534907156532046394999552955819832471670250143210781765056570703288430168533987563547902759148157193472067166112402443555521156153686858503005118355872248953981007853426245356442298032164685067662059688067512585444422480104267088246568571762226256910655365586852428016351009893061924532199589822874093912561671217366200603597519718969596817960168234794340945432017704644780900218430101379406650430823788739903936517394455833119687802786811905849192847076337102030555035086933106275883099974337442612915484021307281050859899653239089683881727322365718108510361041227859884395459358252575390746110964546495419149252046651247787461493663859631166135090972526626584208582745106842926401689433472040141729760966606659359476994698199191775146233591439046717515446218607803736594614512611473225559430840530527549768423341875444829184660303530807915770055071674051354013623316395569048899254162492142114292442526037970575063398381280554417024079956794690544134408160890863423899431629755888209162159802051613887149208759943864548886126741497346207302123668374076979447017860482078688426329255828554301578375328489142754363873615142068132591714386352227074182063936530703688300422882767496089340313168576167757226763628958501210419045332809325283242580408716008782470081684741063575272142387669141434818276340089156663379529280339703098387335577662039867258101169342016842936007408737054269716780997682535204080801091156310190673910490993542624399015668412515107261544814677878683493064789117179310406907557349523708940726738931795122091069483097394419646763867952986236340475545053513430182352643361193436556005061519130314273726304125499999917992771630200124045018702511524237196503261044457827426465343801836038717500214266789270933864980908533208769160967757257519924316058210409719119500657578139791665377828509756594100044066467254453938281895235013738765513891213098752459390322727675867906728496867377440661370265420342171440682396166528055677827940917083583334876604043875434424676504340826581717391168054097090236444863722960403151131560494039713269404206351490291010207796140492455880681423067931189915274705592041028088926029554872682147517872936668036580244578478195924592746005231081618885362299934846842774134288993336985886191043059127446365210969160683942791214633432956485013577140640722644035623172025552801473179353943144068980461281800767454514977159975801432405005610372261332902953815207823436148333684167176674695525453793515500328895930028417154521673426625455832393466999177879480822764520263415261701569087506485371315801916905423312363843820077700713937216085977964996679401591287866173353332224905945257773440466187219839831649477024243299522590622272127498270135035709688051067546664102193264710145643029683994790818099135677771993213519785735498881707585703257147324575833309566002174105459542593120701338717924233126398171817752450616177251156478102169813947216506804274542971383358771582474567389352898362678616094403759379042493990045603500129232461633002480432119823585477251535332313204908761562075684272610903319254450726919711469258994806330313837806514937598475089546527904312976923715861849415590226773323242590172496005170531823054093829198542626237529516756443112784028741690231671903866195705454028981904582377923082464300946408576275463080111682530836404334067265527080842161260633997260867872631019024716022678617100541844958580431778632771073353891949494931310261004609314768156999717571714876923642369815662264605091971630459732170565536424428640073290304197061980622594546662037632940666514570275736010650288141810708566046012919904175043198303115887006393460084933834664499917598304279027318830876265513307641783236670743643124222667480993632006353502556635865858058046087260589361662837932106471627582981533514010142814148467865110128055000963678154072116935154373522050037429564454899362327823557143850716861383545752219426083581637411719906476335380998873805779128385228393617836711757904813068501896121625534657732412682259401641552834735844931263948463066186665135886931022557126574226241935320027712695070002611620897230235755776103161424598147292123609553588896800284581474868414328382725283814798580397374059391520614023380474481419477018604048277488921912229506061954545403718484507079848683009347784734860320999304016953087536195909407285338223319297750442982149756421936675035668534982071194519033665244142679458249123734487014848933115971560613631857160908950399375812174038804010573680233808420945242964665817633213903425843111952467162735767220545599817841662631642017620630955184871378782667050508927969586976078690559950333232310456109509345193045427324477804254102491391994208982974465609416714257452688985266992749940957390264763524633871825723422783435390205268656703302433966638055597447923706318890620152718213703978976437038117803028805294910924153026281697152277400659624641609299419438980926330333438878129300606149323260179552774785782894240856730742663806733311726645530720612571973136236956839797273498857083605831169912976134669464942709714650314763228581567961859484608653322542472514082900654206843799579237593786866535908985277668424531968173613529704312567635923704919040871660734390954314174985935594667013069190461676285529091846149105230496561839592958393276798115965740639689119634442415309105194477783499478135074564324085203464156220302307820935590778626530072137077827759304227679460304107692739860865646434257746878885394642698130714911238520136906449499810599595405129971362565985757228404562526709554036818231904303525535078635493141941972714984625470058007763319513005711839111000281355268494674343687062825669902189542377554888200356482062087347497593581407271663313716479126877909291388671356291728624053836349887306379268462035170645128435834801651363757435650805428383965262134536039056487800368013616139256640070883506390344283103942513284642074070055579859373388721799933577101665300557063062370065627717168361249624911756702923692074476197888668581715116540305969156386202362069197594879552651470458607446740799289098349081934729732203735214779047188060643160830816662496463368667000560019201878411578740332009102827807147558938367474243513148787524212106426685345064495262388575374821710146039390934767122565480411141600740807489297086424639585506709339266471086049676201124081358916556687203078662683713554456314786756368897400668250567437380199914737212611974013436003014407101428551597133108229906263543381956839751157031983637726267411799985942815195976799553174126857970835182840338991831588377560017755991096615001713966042279639612474611041394850998626422260041137144022295394700360000641913780723835145989103077364659262806855091022501697020299107687362091074327159567038238468913445570648015431674727664275071867201701568552944736460124187477247914617849569569491512974034136733350146557220629359471080154305235798305426082847190561017759448729523702319505688721843421807777882951493209868354406392028892097692847873327508971997497204825227261749524164590559903692131205253739613264807286106597837412068171555847620708619916841183125377618431682373718824613445308859815667097749119219066028383467852025848585340248555083828559640074893544384818403261755324327663145487983787565764749046298577065490182686811654465170692234931202238386045959599773583428085556877928602734977394237452537825430305692068758165390176402391883135187113630644149020030198891800716456971754242397839426583636829542973602376532180239236699323897881203079117880269848170747521866594763518103794373592916431311482915261272990984752126991565644788102635671273304929934690873309186194041129781434612490298215411289434303733977291359553517888643512687060883564178575710213180424396261169641808679321976254459776937254655488674696841223492185249160135135296764500690037127422763092852962135936170196090597113564569890375393600240659555574417343135705231886986117730385917791220285744076484367318351070287288179433437948731228028894981326226127208372049912173389524573447596156789923497859530262026776885811212107216869036918056932590111616605176926683059219245705536886862707702073618057568263912609686449246031648417991515808681251940612681156560814143845825563064245467621561225630076800082188319457174900698632866038675282120115980293018910867134173979521172091360431839746965341153634096056220496835827703041070996859727225367041381471316012252931975752291601823014744862684478268925064402114879401376867321050063146954987407199428866364490273681100325990204143136059200245070617272158801540784255600099887256599549620999168478520822171068954314306546228546822478195510167246432652886041934824890388395027864216353432487088913416155047992779190359470232846299861529244285886965368132743778848378905525649158895077433453534979398568471075292426489932199274382771479432226037493649096021260099188671105930820700372809599428781149446777784122755217416032916165790939896802508442929151296090535573400133981890420053997348267257914372327228548953044309193570067683852175693777616776461372528038635911323378326123888599322145223444288739959797988510252782737566851312992685099085836443081273722211868284328611186918824231072889714986694748693866196498023567115467076051586486127130993144351535073670568651295429784421136426823966527401788966163595782317902545515310483021908446330945449253471623178636948371671297600864100085233259501091490177726511336374824171793815429997498135953068130977463505953950218360483537804223821079480270334184109083136039409458875455367441646390852893618146596496946844533966535919639332161300925178122962591647056237339955087667907665132541755878642692538175143304897812496808641339789889782935960451463649332521937891979646521621499014708700328110779930852692715944379409472515362852639827118674037988968077379105856526979399695395246774311686007198490847208136854585094354246363447911060044846415815489761446088227944601179523011910025972597674065512419874559936966578496438980416891529628105900234008791165822231301450357524691102690945715885317341597013442607725445788707365638836439186528036223132105670362868112819435631927607188933705749246242362001631678018426781462046087986273932396194975900856615242694541508414422177690503988858136456404403218749885692387115300841519798063230455050290251631538695250216418704653207541948665059087391404277989983990179224144080050288505508665079418021048149314120567436482813462629835137558227726521739179649413687091008768984545861722524805276442838779102986149449499138326731490594602580165521521347461462638969769797513220799553394968352537300647736755998325857069063600427770453033177024474670509336748874757058717961708549462100198780157853754713210230709133544051121559783121475588191896966799878658501202157775665359453389400961904783005308368232409323240222623134395472144629209840985941344641516188032186494568840759064785115366264337126341583922700298507310027435375647603994060564217151467798939540510225748051130929410991915189462258253162594884291746874976985772553418323026759091245173655204698485821951538347396463483021669233819744804540186473116387908843945578603647682390198569484011383559799732821105519100781585264730318432922150015002238943666102128531594178048770970288264691968677104157754290129348636222919967551828430979878344648391029374575014862283770848722439080705367045287428860177752617002853421365831377203104634459568993886241465422704324266476834976940520055725284770668650793037408145776586163255792276970244223062588064757491830850150030520918523895864995424824786219225852160346564880897136075029954953957408590952531902341868984190029480857478050480127976786688805617500714056456934837061359791389643057209902375641339045734473511383086483370896039223965225392785233205332402546151883098132983182031288313261992849450069561444871066063171244322524858231893042149604030192670883025528140439395229431791711638843412728305716176171643254562901055229927388591016873606853649240117910172586574330137588178306119006036417738188561476721628455835363182363473986710828007546103265578787004392493057926032573424599894526353267971670490811308059507874547597612527864833484128773646977103152816643123428894163243364884562165594286030347211577410387661336300560029160834296209952965330395691747176251151022811489729766858986041236948404688439308371965362966970424860258856907554794764089240310704134237930534091065482811768824504517642987348437889420227486696890561440041815202206678171650672784979405535430586028865044000012777563273131926152712330660479859613002636446589399343539993950607341081949643203440022456475321481677546747208684909437746736596950924756209647581600164742891916032575212075369630793224342307959128004573354943043003129730496934760003330302286687292051429006585837273139914114785443055040706653107812352552369964337963839068363582780022748593212969159388194434460839268151662082696313105947977058766533857569793756148524559471842838399901548985539643218050820089389022704087492548165436488072325344613407310792793092335434861824585300010438432150081915159354843282693843698552417187137601264857622740146053191622518651829405558832403405985623310714294772847328513991750680204612382612443598849623021232689311994070119127374672506532639710825682086610113660178100472577795962944669573250390048366105302736082043579717103978472628229883568664815672399256111314889223462886175084669195874077399414815569416137724712773262734990826573894845687081417799494160250195016268888177592497563630776180515610978812658868132824837354556932776603517609912870393879298351977151362248927545017452356137652459030855786838225359068764587710223251723813195222218008484554915315362399587519511692329076668233842009728861032212391276906865481565249071453117200756995847314755740170360656174017142371703038632248580234235139784030784257001416370625545960479716868745940352568355311245311102875807535697135976898451792900612132968021232383559000195294508744609026213625351487693357839960617673538808446464237312044566448692311143449614605711714587313504112060172705371959096334109322215764535711794037928683189207229072324119427856307114676056395658887658284034222530342298096934865258774496824750453991780204862699268882058750351275098074553581038890033620284447118046239109402833729441057875261740207811598464090717593681224299758970556896720341089744895614427551937296913346814338298479624779478008684986474433246684061608267346890985379544684640008121666637257396452451478111242193780616811752924799576630170759393891751474761635287117433586493692534326992251509398306444621733815586501883870715234012627308764014948076790810687052073662468093296800074693397492027858730527345798344510630573397709402938786606622612569700645340326238294895261040107356459013363513310438761203966685707045043941107187838878689528138855150828380070881348589224168573225324274951511855110320375242837392953879691743412386850758869811440727898052796451967804914853255620528248659084089568752318613960585991497123417858578431153131641123149692551450793971072709895113909791706473926313526026326205458858307219433332786013736042927786850984186539557371639127330190327107066314675950594590749963044307350904147310575545215172162926553791594529750092641070426123003548871534482345563144799509127208741663615079342053044666461634626531728702205676390180627969581989789019178890128662379441869385274672341962868322456511511840850409861828128626421745446116008231020276175299428731528284443954635178127954006744972386021792284354849390005910215386640593597167644045649538108476651275717013396511579702688535687144944657615897071963035220708124771110947354592423685384398634957725997509053902601980799738236505532710707213346012577587546022993278982345499503026564622311446009405379506962854622956222313169990460846240906989809296459252243620360183369462360793918034106127167869882879467422946277353567608977893949925929146716936453663818531807297785469468473832834830838839202330125703729352580656275700347815757558884909335745461750494239114021842819524963821823786815365415111240355928815421434247385788840397139629079722483632786853933866930810887830535660486911836129073488473403040791375475083745908634211524129061125557465793172008656672997646332364641989237411387195827043693410105188556370610599186536717280275550899710733516443980137319256264656319576156566180672273834739824600732078963303181405723645252074138972403498303010205228080788468573565160552326264826677203009397006802397988130773647849151364760951389361230228945239659469530189277681645812484012388206368530116034646137978449675829601142234845451604305616564153675525609686893228263776179058970352546642307908925288206237265142486898944223042867334319581343458922236017670891455900930008560856508474658425458945073073064495644316603030635146334265217068800756612463944203962677502865543610082605615644593027190619611983831142711373211738826598960927034498888654381088122326542376773230496308573988000669537987285268153084426331334918111289464409560104849761698618959736297363040726029514560483545835786036883808358954735793841420111553943627950455420726957857802578469281108259385708976792922577489793563468565819193801159867596214479594185837771358041738299993997960635204774597191317762437295447428812739790586955028351648048715853276022350960665975966349298858226997941625680414017009210824832940811683157479766177578589889199645355075670253055905732718903191287853186123839210758505979647934136651772160256804087133802850179505159246580540684464976023100959908489908091626039184113570110978241299879617479656069995142390919236120971373064669367325330491967341137884842197648701529233952050960710452865301111870344821608389713857206616616065956922867884946736175110505382839134201008481199834610837750688685443350570364594898609856524384628334414855480429828005149951324209271933875570544229911455413450525130239448219204116783317307446501357317917915556718805654405025226441460608671552967103504864125755070789687354802621296428966661486595348896280301351135815109330764925027953826940378003406368694131951573415271912647256513753235128767383893407904380405506027197546114045206945201984761562141826734839367645907480877239921814988990933604066614727099530311497663497368800121407380520704692578750875581169487864616305377160257704991781994059980986594283393877269870979914507213658661554964077723221307915183149393727004916513615311354452750916502938816443128135255004395500109876146958124905226733186339679377256206745139220191027079781095923153479123481658248147595903608430067801032091263747397868506272638586861665176662490893293987916850283289390478693363505194945547519909354080602570796655432412415545345700584070800658376687548656394449854387513717893667643275164703898488828433568605240292083623228121979226342833237146663169999647961131533645552851953142733589615609566383482658875788729024702643121548771585953724238915659951970026601029208233379387266241633031114008713465669477323770284556787256166616839075455049762909076343468954601218449182834809764490960161204613833693687188886478648969011126393930859793806392661486786593389894282748919778282405724704492682661219719707930835162376681255217388331423249984385311292796174777858962396297838295812972165781028134032080223729748539901295510142021770156564292930298441823605048022928344520599493295850410992083331546616520206828639127415222496465692761411394082140439138719339506505611940550956985910848908139760502723681567954076743885119014196565741521574470439064930338305384484092199984625129529560664172756833458203301214413245511274066592581535589030957864034351720676095453456825148941204343061984064793542308797338387120607081911388598811036291499981963501916008454054258150208242179884888985844080841726355907919439209664488539225380744939956169873638201441127093646755239203388429998757047101571415861467798691482199720112186918535103356530320592663798859813857878923885234463199168144665920731428872171901106131927675058270554941793135707065972248124601065348667196941462405946381929862863282088863947861028220887297960521851900424163962415152306062689130505094238526209631293311282901491728817342627166301821850998988238779892410375202920997109508825829678615622327097379139453368298052162913381510677239274470828711289103574682871690721830079487598478560528930185198033677278973137289153058272829704693111990376342041213438760264624731203941640539017401572411732225258550585677193765700365909077099524174775741516883339816700294912288835255651299467720232030017136080139549881581652636989832772768430595654154637883123359441199809499816112602796596289383683386086479189466526583794603244282262962379028465507277588688620152953502385303045535009937363586576566576097432527488219422124015106099763129591237878617571831505798866935232388856394091405500453629410824461666753709370253412399306560119464919645717281522341146109527393236741254017848276135990002119487131097836217486463434369563128013419753132334875842765446730839296069866401495439273695304868232661406481141384066255926412125671542285813482637133010617273443325398589431305354998538489606338449742589888432015168761983150093467171602582184171353032348609426124653339944028043771512528896771588456135884436823220909874354746450084877484041646808881807718830786540602963014175121301063144596819825498398983066363963751236313770849312401043817412746569830087132308428627539716654133767717652091456837935967782725969372091327761417807178091480056400781679453721837761790711251876866555575388061594758233997358577573011226751407600858006394704390953938005196740993118734608136466632489695593883052146922238481469945663225469183389193824341012935868023246418931629797237856506105277993815162853213266922414039939661141414947882442985620601657606632084373149035867265391400305584033730711158049791549847658753816222993770430949792953139397527385353217517452194783798471966043604149957883587545804600194639135720904766777797691480632581160456091794464303236824482571355908828767856742524675117573990724634685943565599700704824810198225955872193412084998311591336574224139313106308228752917793197044364649645210687902623099211676129141392046717098414378292429744581729098559977305128761067369277056657622992173306820243988207280386537686961125887703122649530908725900872458598703330511755896360043527148214730314283906786279517227578981553232778501744224189483105091294989931869951782482894258938394180899876582014340002039297653028867422336692404058640686390279030189985121571351131426764672380708751353922026465248823393743212087240974663882409303371482394468192055236187659388210726153733413331495569349812852660657818784648311739108409501674699763227650792515514351283380955198385408227231499176156335451414517000790776029045524673112919243841684197670361097639977470682234899638474059790454451971370850296584234757851885487114409476601936968712748179275400886465878013503453515824428296967019116591946490951642169722774509596829251375976026937827211830671104578951176765118695897736258582325381749642702274886833856207622118798684022381739710871399427769416002796954790227981743288372946966038652291047116500223431498943541465040207553767841908487557355598786663732123516036493021233654577835297585267087874183037722157532711370791934828824823325202240272877701542261074031587723615639004804062224459866786855950731585748700033182882780430048599535242666778865447284866208422021685648121605401068979740588369488940537306503600410179305851881849842671462331528776136247029866847829932288262502735366437272547562465429052650201013950853198309928395078896982783395165740116719359391247067588680251949478836134234173730907904137478634032844546867120655661493856882739555371868674856594776052674871407843178610160762652354498072942521750271548599424947308262870544348646963051436463441159239428336761134975032059240878008834190189661253345381152746460359116442663000412701232776247561206158340565406919275691531608019514872041885709097522727501778494238251074945093541879220989929068117865111452021677014112710638938166322585618671113946232660518720219562976254530552949967318483877616835035480479477226309633134612180822127626516165677410443635278101899630193158196037862361768244911144516967669162828501185861431810983437199297162120492704188457088714048807201952802660859216301074716698433574834516234971198608692518762706483800436934055629174501100867343790129895137465266869155302109751040391737189740663695265749906823753215148649598303686525966881715966181839576572550256670160851508758743321888578745347945301665149297964257245734576907998907226167471299975428578430523698191716837834873613510030855731245385413919949941956682595168377593454643031973802953503604348165031151864917458848552707002104076771065698471386500593341942626335640216605978744315225244756040245872719954131994256827557575713487021536354788673467137445426291872801049056226022822396907467665552940654612482692796574908650605640603235484413198485123402850295073869689149212554723889318578497175969298507941334565705226098956396955616337426975111556588600177705697545210977910987961122773243101549630786457344818322605355139505771964682719654585530039868187846909413648941573070136708270272617922265552059287422334222390325865843067088969080342642422229579182361066340404078967550641328111116906703609631889577367425186558541287369542945861117925738758568327003511600893971562108938202967036417300368099362738564220044917745096827072282685586349457877700589234354898422778609059842933395963055353231613276632729351444335488872524601436404493757006477169837873960196291230233490209873344505174794434008918502016046721387832015984491445695472809470858597232856535522714326045904321625465117183975232496686974068069149946905548770861920340300733886214175519836949587732182134958339196463841604001715983895638876742351482240773746129414535895460895952949240508771284057514813582342737548916889808032742040511954474632965583238038859599924998927265389061305450571783671666262792491877040917979398572119102484342618488245357764815267790496679373530293910122882444433432211438547777645443817650283700329013016343724889144262408830683462883861674610389890641098621447352738501515811157396375109309837001418444959039173853059570641416594903204130010523791593172497869095669995531125781629417464889686894086028063615440498828841747023488953883282676825952280310350802286982039640302647239633041322352098287874246313464629153468275106819213988749048361044623665465784246674980569098018572904697516742632288704068574985042445972929926388082371334676824101780746306224321303680613676262906253375079205286876325790236667371833704952667552132604227503134248368150520669748303462905478456853270541885712233378144610900357988334616392098224253224721078546359173649331140517092476030096364578659908790819518143513074341447449173977149564831898912527553484192136799841874342523447790500514570405186383178299285821635367937263316303343047992568797573310136366991834538147573551677316250882384456750008235785067892515313453817436189053988900580079593363197223742184464269667705169647816973978967051137299811316382898522450943713149608567053559448719627592815693560030504469317789772377110617609627668739325203408655501282223416399126619484930337272884969076749616948613054581937227107782893328622511377751139050855163491827684552166538954324664604695152816840523097020990800412966230459748432301636429035382804053626015942734509007937229297387401965305142062124523999327671775852056408370855495268288161537721397011595299627451860397853029779473200696652145277979026247918943683442909763575460418929551383865619737681507128121248502629226573434345601056429204885317768667822350610985877210872670545179427262756568821935295383718577180488514794638116858734045717133885534778869855025265137005354040218129576283294717776275433913866945664235323878944865897401993457062005034594212096517952082587038487786401367432696096686150209209389882884803605559536778915043564727876084093122779632465057649203483290826621557733592643241103142521707236798010515861500170459693836711945055613524607985537395255570127196641968978314166858983212235357439183966549584998245849555218177914044212923590550238319440158956561085118864357072514587207471238457377006824796990503946717335856965062134198998501241971752455952646412766617787505692759681191460778783398402671551466493199617585871455500094781037107689646134194070776624190687474534142370467017332909382023669301641490761887429325552449351441032829068675306999487812182962102650941341959122644188228234701686425920966959663456569456140127936790024317891515224337172288052210184919972003583723185233370907014518823718025872789423971897670752764637986182442750967647658982421873015816392767892025540083864676211251146423581522742601400147410669495396918703270597896455635798577704279382371368876430080969361347122614622307112702336433448779576013639799300806516418548778089162328166330289161167777695416620769471494967526060104738701693889939088636765894063851281594907158890768021450044517397744532196224714389518088769120444643392419226654024955061153916904278138839402986745544804717908174275253607841325950075197939428974192886714688640209365847497228026687847784250921041710046680134313885889766808075208922345076092080088000101959468732417996536105482946281371342405396511644380715021202573837227657087633779810056557442266687484403456233925670854814246090089457979364158084029456934652135136433965286242288236340377545518042150297854154190917064906717882940078835072482620255650838716575481494632826981622080209775407602124821072824922409093216539966872043019330656099863298766215406394052644271278177303086861907761924877841707263791068497568628795866947675460027330132311530231083654392395618890414954721461219623722076846774189435590889618494834614642426651357651335582415340341259954308413308898382354443094798923313380578346647480239522870626746226294567195271792121664528205172934501860070077381431708600270575880456355343772804202454300358364982805287737478551306791578832084933134060224323938453055769667679541289329058975698688005886343195796563244699020846820471835806012812566452845334980223959171740422620335256157698654681219726975867139871515526388401592702678097733482966098320126176347272986649569410085789658405902053778286541508400419987386116624968834117023113532660408493361287023723963683462742233124118214771300870871027256741089095376732218334403801544499714076978188241993438954417999670723562253266659920965753370548982170154719333999599986420686262363124954059550767991803383220271554476538820079555007609165922281191952085009041295451977800796255377518728143485411527639072269415749475042152677082044529065252820965631892974424598036955411770264462462997993241281113031114030556968106902195879666863984844609023797689909629683136103224901036809749916170476447950544330771640597722599847945544245433698082801904415569747055372988323399395204654234649150805501623153192475746301339297556987586716730092413356859128068022995513762659020702024990014818085128330528365633854506995277992545385234856352597951208006725181852856811566464157495182546403882765963867428089811187727079959346694867848135266931236549686722472888708716776334642709812378633675250413083854578535148108215837665008650862844710503399145765635155539399119002294579679396242467032781397141486800647172117493100889769143790523069224238616509594445467328068531840531561640337406112754533508757048366842707906232918362822814767336307500464687108433236325953998478281876708125139656328966487519762073102564732112593339316835520303267597797721456333809612104378063205761643913880207744671745132194564472888430875846160183322719663176615224509936372628949313435578235407506435566499821403137131445893357222225090127537487840324910590109976064845745107578069732117056924957408427911980852850234896067224102571552348341224251246465104052328935949204121369933956375985116892300109782306045717343028894236132031352935021073304477404364120434865224807338784496117292151386883972055079086081997363470698805264639260345156759945296933309514463150789842004507622473816200193714771198600545866297796310309564022813400795805200851690582230103991078633103177377552716598610697514946183310160148805909642087192021121239744366069542287733226363243932454921261577326699990470215708458252637026149388335404450182501581450799803596632299597645501908159151059342724824027931637516029539721199574212449244484262935138636613209833840442121824495597271708971570412218325526690941787869746962280302039971142000196541745050834536029749331277732440275586111818328220932718551972058260103605979931678538370593917374847456700574218329688027044313492739697654673163960109882677889148985382821489640943199356652932011266281830269856642151405891511445207228164502997960381955285928600518939249758326251961591130945169668157245687433760243414850000793022222850400598727482704489232845593227918582469043119618291112566647279798874004733650733173543553079264569743666637482933380426045785512694353568538526368892035540253042337128889885302040173253933344706359724627413915171197633686035786777580460304110897306863639165228356107903297157963700094780501802799378911060810554175884494626377801989627375929573092047059953833383053319798391935982409006882876895227379613634542817875189467837499630508618509990856090665135017004035798370480818029298298235089585832753543004585017098212961766218084859322947203433529576396492173316427712112956480348044828422801649328112703678843949352330121059357813772488259678564952550344593140442091536536756076899580208138112314038578106709750312882615969868159255607965063166119304354434671932850365441780477324542273651802447280114332448565587783665664099573446987491253153867993703944567425349793347255433954667283372431572074934876062023846284881050560091874365571972646234677755001726535564861423981342289065886368296466455087310044507411498056217815419868857985924204341511179921469783613439575227850998706659534193984338637258763381330899788749936147962174343300052432888007225501385403442058083976186826696708264946172643875095955038754405862315284375373635305654264372765300161340676987458682981456470370403259009968234768965295763897396047587195782835666171111858828120175883953929897144900012205709255367185686849472602819498857954693635970668824068605358117820089901471413670069055899224675624336511531665646572723707304591050393820491876544289170491056529957896002434574243908959801656035949002403897275454542489991273678980141746046958026529223411685253730420565487840289770601231033222977651176937375303985028579672939679808834494852929366117329762693705600576490753501546413493280376808133171434679835868638829736769955697462163466910180964364802205877097629311300129960524953452300719079865812785121451984904492237754854193224514109153839455570172595353826778631878392565869763790130403638504197915775817426720943650622876662823487692802411390046891470195503394907326540244706001608494457714653025178569721837110567426290669965089377604402470509896896372426774667142913425584065888869632086617571412734986864879140993336761898581481961122517874751654341343510135925792108964594187295938265882580754369023125718635926272835363537060996436818232214254667835106077630895529462017123788600605775926677914558803023477202393321629670623195555552670268432308722630125260046489825438144209562097756171481634126590853641498288655669302693055717593418486764828654759921773873693783138796390781285018631095031626380289597862964540204374996626707360313698118003349749412766257296023873144723639368614868869790342274722417803066367675468269221793574511197490805824620290060092876521851410582173613065623464376321368925093996797566987317240109544668996135962780590325530778975327666963909313218572520972911895151978993502339243043307174927332131927062948660573013441259026492509047600433289634000386104850198192904281241755841180745876678920806132123325718048559994896515869239702335208660879921979162963019562670473943280025756922357849815074351465636985117947528428152082704689993383716059606285427177898873579095335400245443012924060836118093299842791612963769933940470917348110059435631266360553544631251522681102163156197957841544138583059323964121285788561690074563884636790143923572071278233311753911158545134247378792346680176725047298637826120360483566683504574561527563258563007754345736021106606862711830134522303692644654030027679325947137568866262856573730082538003280370003935970954462159829630709980475664520809455133991224754385946017740718128598630752009496389249636863283308820256433785317056142723472361238676751650070246341708682337442251380790018902069234061000600066629825502438035423527624196670450157054615889729793742927490782577219663340859970933506179339628083741913646517136755069839040647060391520882384855592099380796649128204879899476577698901002688572365409931590598176617921230924042086097998316226815632452024376908666715421982455191342972288299939284302924237330337889754430343716497808696100407099531463936106674305724898000268751002816477771438998189300238950626211702871330563331490997347122817808038981449303186073225119786610195887705803729802451528594366206247225347426185974348741931072732005008578407587301552703903600810733768020960813578588649966744920160114876057427951326262123442637454344531492108291757932736304604712075208205759556080448219948854205310803619274526697620247142962817943104527714540762768258966352319848782961563919695252474698172695962070374762486742855801965759455745327663372000618170782363947316972326684382259517979973834390714900578226542521762555689888500186287823390071803911558276174957979578630303230613388115853162416442946523058616273141456675800649286418124451811185302828888827960479288620830694052541275497261904106977381522893827229978837864178485553783242674770349130483670541284959986423615578662405707182996630620093391923529683135760392777854963048767936829808846103339679264775990414520393374453094263524270682429941859719181778277813456011521612900595304490956312387569951515378993167331734948569462175743754758123435093406657870884996091907564260431314460807054953598035928648441560470513534157083292272550006890192057048907129895664299905734697338160218031209501119277166684790413524255546150092795124234879396987397592896643948933218767092414002786433633352150744471485279360753517770927557078145168102194781336039780529124687239421576444005072790764836145616548809744760220501490766109127839550644777019069891730351754568782707954672016592374428015584261941171459581241783626216083854150307931155993822509687631375973854396008223096235272931036615370869147381770734406481851596000522080180553024884689554986562479074156576761797841490830837003630584315155024184201444167291106821396659904437521811517412578961482849687218680074372215809248813438315170170628930339335843173555899522701544442011620277890880633874183515792386082540416135526480035273143225488188524495832964115115342079494917997822269452647803611643653969440520467380597606271982490105493640905446981030293699542862920236001231105093708681668124232819895354976750059778418700252685850882526120109452421345910226836500215946242745346904292357420349755697319372455995075324305038570885996405393600371244716746913769709416948631770663379989586196021059396237411974008673557558979892926013943097585333116287466504224675222137102426906450180126893863961876372331855469462634816699955956074026061265039845896943877705909519038102269060847685507844697428630679048365977919410640740441630203508742560973283367649871471042467189452817555402053133178103948967105872531887097959399752760413410489881284059829004540820493860756200670248319522245646365333930531128977962941732583471638973789720636889136115263221782910895630712874221122512909358994595576769252257741457407665958912770942128405725478518445290910417795224244441122423810338484833828434502068422904382084677673606588372148438870472260989139536889015106076934033191276102392157110283459133045844483261624336753114305149113893557015209945969086933076106373511203148510821124661156725384405335602144959694760576518488261720271874870060483085628714061287278509580035226985742074932420828547224404125145074768886549676921276152297147295449223912804268659787287569763571693861463158268846412552562011813595907595012650765496935792460579464299044649766327412420748172502211036307814807320324073153699701352661945817383784035340653899170551223220841387441640443371450803245772859307515910702785752972686312446936614175840615647635049107989850349520558742944176774761467739020677112084010535334003930833767168549453882401969519251029459881192388960707435584672768480275548741037736897465792491108655869732997206380075291316736277200034154058098692366668741131727953938594539284468124466553490628043986619577612180448782997695825522371512472281293111015749732640246053045308331896895966473384209441680512699418449875566324283594397491160519600603718991327374759102167332241215194849018570934854918166774112102705708434468373929681796145880289677967618144699298746585463272290933276019032932239803241589165499288049143375847864971679620852977711379524716753445978148216809235032592810699969100934315846409198087409937810012473142537673003967196246052518620639861219660468555514060849484847486581182142997100912730397924104910879376958168762024940969030497569968159688377516687571741226787802959089420300746116013925788077720070308809155286093277263863092696097533852929925048326156274333255481240136884778574124256683990146671457337100150066520817018682858232266766203211005572320605140641202867331876399331742017032052810162505309931440107839690797718541444698707285455574670675499871829636215937520714627145392467321576140283471902059053861461109571862529536637676985790187611318970665177620787911690653944518618247699073110570682444812930271819633571353493776949264987244471640657515827200184824966357090872227094431658829181223196395810276622559143325981113571663922507511215049847869625036560834342719057208357884283029418363334853732089394851779525452804918146453726419144115335474050589663960458569449928279908779887503401143069635191290833022371440279324535055663687747979456758546897777601518339084311897837805903043068498193855547823891612826026287747390380477489830289218578248107349172657494913123576931038382463774073400009886058526920844247146447035285842652750678448587975167198321222868902102817513978820326107696486433077249438166043886083027154150245161784541153424167485138380969514247747260591317651455281963056647239496185099033134736658495697146958515495985516776309023554733383853973905393986525255795420086141127628224866332357510228184195478392404954200185977472530727014713384015156553885082340925561783331391507494020261308660403099928904097850193070050364986572974245026903635028513605529791024124600511798035109339252562795903810304991911451075663098999579956696141736212405321133202418544819019769950796161342275202556660403795400504692926022991349355261958015068932918215483626500515593035649669038375750305256570306617817793887543263656899772826133808599882106996210768153799425002915773516662012009828477869219139567184337136215748071117735938936263871559260914952092205618102578853609686324229830693977764719248109985728789912886660223425053215528619121711029531546539549676652671559908331628615988602431357091364119141192655015739327674157434488454926337299483787058711520254760389444852864570997979082297825022641279566250786775482023333848345136106197340213405022766496533804347977325915699147524835089951356623097015319147275436051891392665408831782514210729369704319496069541242046356801683841025632838604991035589841803323117907040728963404750767731553426859954437616058433254957668767619365909130797543967804501874327016394311545950662947691796035022354159254945601424761187791227171040867035448933182719876385408002506243053839806382928386297268224891207076600532055720769347764198955577293926985197710527977048534414434664369726242570224703450009605209966444997166983384259816012880244807749426319023207771870915599068126302797317534451890454454842740785587783190901041776720264419208655300988158934692582791933120323998456608624938434951830996464438213830532048391466716737581670606350938997097063693807841026873709389009423089658498278853623172334319684422717114288981258481127172992324112952063616712389271652357740234872603801271983771029551838274376147996599456029629017807474331414426195339106978094392697793705202652085946090143230423666773400424093478483792404882728731075385713289572290491758698910845506687662970651536260039900957582168031169211878586535437228628327468721819764086510017506210550519868413853258623827763537786639368933190418608209949781615223203640618427722175424666443063214239163273831171597161804867536498955606292798529156137036724667429792098406104330594826529334751247729503537561534657150417732169505170702505706013301624776164970507946044304434938973358352449816652657590397892953307913113249733522057214279045953657632621561637653819564519545205446524262808013776707913330510850957802990043279491007313729175303165880366806008831814042291845654900551914699371625739955450417592890893076464094982093542468982097470102426305497838637548128743373992617335452041001017263127618876113768596318319234182620086833928880888525693286137083978748617125955878978060044583891137939176309136526194042036315790918965577413854539725547544925714911075593908750190876521069666297089588748182035588436871281024481735485161713846265731486176133336412399651198204935934607676498460803541484248250598534944772792067822759401111975494826396594999136831835236097878258806428623183264600222008478268629503121786540245494054029368017034970964302806626619417422511896916502835234564615682784122998343989576479571400026049955522688171394699153614132658083230981706386529125432351701231882062566095120357680003454798259982945744909088849701945102686585357891828955485186390674093633816110341843390444613600285375375222635001626672940228951253890007792849392245684239636486606052623705105719608321411256252308939907927613927885747081607479808835237224489973140023322778366253098347690157439099527385010074999196351387526964477559783000524255191478875284284355845005036356918215929697981673571395789867050820657955684668002473247802835591191509886200225308944936272178423845180378205215464470613697978825290351807480720916999186060607929049426252841544106555965121868588905419583246480982205871770727813587237311579297893310414158820128651469530971388121353670556286700832115820725205798346182666522345766101471285835067455927309342407015654483138520114493264374240400946034522524103882780145256465513111047877219699442252601545731150498402467789127310295843152085688927743992162991719550555393493599136261193212001922837800298771106553980317188487902103676772658077130525485111860378520001137565529129046693590593366673187808821288703205473687791144541848252955245877221544004260343217410850709068711703530610851359498707092630129443292761681424403710346930085132329121101578490204408486422846989405322910488793583106913039395202664470028560603653419339757634489857866866543713151609018655655960322024739077518140116052172114456543774211778475186466379149192833802151929678101615027016622061830198348383017170815502382138502643837086664967730533453521892022231054773750138568769449862975253120723259985104161139537555341425798851529238998940921113628204035075870567918394151555858123444536132452643270903507183864537440737522704834221349245070497301325775722518198901076262722361060999630817778243578539242222477106161645122104685398349808796411605810667448705061424279744686794554898290104646794875019468578923714565269551165134567956893357930742781298409694292385568861115062916796673644665640600874975943595432992213029541765079246993985664497182099887304952610070875124403741519101866604419128203157274167430432970901517045552695786503397972657321606984129224112574501229673385458593347454405100780199856976959297714783000980632331389063551433464329141215996429234639200074893165887425247533080855982249378745553885596252627885973781457059056252563125041174127075743486565567928178120669735819956788458095011035251562406564148471570661555363345017692599664395077623444636183718074750122747867054729678657243900873096298253448667087282574398426813907315452074293053596088321586276470241398735963132210389472636476690376533027389319866998900496803277778668668547258743446423970585159507844628736670143918260744229397352539913225247200182157537408887141912284286672376250478826671415294735408441668359781554096487080566373957690411574756173901897946667441153123169185442206421357464348371162168941021231185958859969826712370502765586360779836574630290481702874048709755574383759970487333585449358251575883171088015095346338938690306282570360605342502046058020930995750886196022724478883683018943728250491548043096514799482405981521013192306168585973313951887541216860669981795319290888246076850925299594552749546398514082574806436649917762749062396985568781847622296208502428411490108410719826751082809263775759017203283194129240212993018981225140215875522299841287988146311808184160699393982470947291031484529506957218632460942765918264931582495612879039357605480737332258873428605896213151161038912294239341443959480325996535150220916823951544812238232242147370214164677788399522758666305445928315126167121142381207816063475774935319302563203674930673180759896330098413173664659870776999843830779400136980358823383355425141744866166954721679524327478986455378335588202840901585409069216054213770143608345136259328696560206384809099060981434427241723144105428356370326466492884855867477104982341466564163326416628623718585810778519704822956443077687855482295739103200567810206435769528150037305007448330598117959392297637754212219901532759391363470254886612675100161307268237398591524837717693964218306213820291897243680597896311214688194496839902029363054098732199289732892787744335765079926658762379527130313254124105082647456264322342714841240903575197115830158446032419597885586944225591858301290651876564619891182154281641694750499636744728170169468953556154081876336039494153363460019774510112641773348729927787852877896202248299822851544615226286906867239152801934357134162512991308437020132629851009048578243473105191494050735250491377219331154482055259968705300883580436757139283714579676030726164676961363725018699111268659416400998258382172421065403385285196900246480843649843932602290578268734637797227428489900495794461734248691255175621953024238221291449983968604975298575171874610254507751140620720557936463202947850421941099772177676746649559824127673714473154042662366871518434890756874215287375827131262071589028641273712421443499061687194627997923028915647914644769655323939213140407541779891922366624910193410141770919991707854174840598420827477324620206802605989741279993156113001350613090492337008517427309513904523453363150343517636547297462787277206733898025403294097860732792144325794417805200852628658232852787312097173822974924873536499205012976779318001934521050156383191836652848240243826444781036044739133966944386447853155407585877669479457438704580480372011528874171657676975966851157725549987152987305991764429871172036494102041616108959793354975770021309947167996669675919456930456279792647361118645526858471694625356105524400344712576719582982405928873247816380954475454378035969780899925194405021663759175759671189461232051017094203275484928264697467514242503531828200880925637332538429811354012666598175461207701569448135073446584933655407305421033600559981315682549301936077153998319945034005505400777914533210810358162916087101693445237947182558043398922184227652994805258710408025557663073039125973795324914361298601758261160441243328619204124693853802204447939620954022011338854112826419986718320609829786249936063383732660614038928294421798517538437453085751215328463685964685247482282163783651532407699529215212676306897892992559732924000787925592368087550157416270234445136801862471736904903463511933180353875885493225419825010384469144975067288441066982032839523985619410616833142430404114989237115936863124234610929395318918170816545941497453650460878018574420406973767071087096261900188323471088580880625784377332010987666939932386623031757728202245274306693110411389935350397525925870700731036114200499198780634538367063409859301379254115504785442509287850607512687098114443220043866232660340466700551763138620780101241379836829570206021548287227998913418190561601363615621361278654376286976046739739132731104578108475545106076864615070940353210925851134644380613836933030952970230769915187855861454242370677313914953768143554688827152324398395534687348531151524114410624258635808261527988917794495547167310937264226445180733652758596792932206390131574170503669633712145738793181181441835802654205582940991056972197098330014632111899393373654520544905619853051264327016527720112427447549277932397218438217538774638145786873040749722410223622042214395333254260466446331430702319466314505119778574801112251850597393745664919367085423733981955655584901393365388423973810996987578768454895911555545236679112751436841916974767360335347946450970744634382596807344269662126052130388786745844300663054325043753218770317599382549678732073394003539193524327852602455599844927429817305405780866741019856244975965569730509374585737814374380627701078906323101768106208763077876623946089325934233846096704116452882517885621943331242367404402664931751634244992018936601953372035057876595720487114894671343565829325651749115655498259996113312379955110279797521672083451515969557118619401914296392620431114959955121841938595598166354894329499475076398550891513838962548710169768019212889710370811391529064318770548436516182544936951850072345316128010654667367135832768720003333886861706361762784945881947056600040839349276397241527005069913731406981193659682426206936858575846406113331443196681211232263531362771395796562517717247874680667566242912040386010819837935388211733515179669915248194840362644709521457281349833607922994329920570801972364204822747293398661721980278387187952481225937300980623945185612020288847581423656307112266649340904611056155120600168770691779643864354287894384123327774879096077318998271079024971378618824619178695092975642183980164218930883819058001106804832543118427096312123553428995179440585909859221587004225239464341752530660800755705743867464627419958032725650687603401851936194525231652924143038142531392802782210937094693970498437037876952130464401769414031265491279862663200544662670664659322695958115043094243499755173949667279499506406855205618967465987865293016019421296247940262769036308093299650583134951469596311750261140672189525874017002152329854922029148202122700309619702212328380487936691375859014283823894772829249648067453106943458085905063003559059289460818223194052317893686086241460574603481383850785716427296215251688136075579179875304377436927122447550265673763123503870799810811936955647841941409115940054601480697879175739635954862625368215393284410220500612228541239769315841155605468579567773306580623671218651556391577484823066906063244506229194869714471631358154245007000381263199246955827777393765785583148993717260065730213744828522514488322169682395032774664565565391873107620789719616467556051110670670477273614735367853012817601205740268151257366941169015986883141770577750924621486576904563289366146172001808635276158747641518766917791865179055047319064447594762644635529133186381151025111749779108966381150775537350086793003073896606254579082846876872652833039154802322493189849640493198277464728937244161778016118750805675215399293166570327401401794864722602707469462368452440816638251148059517932158746348346155844680395360802291814791787693321273569148846744861868514295879228696744624279732820015101899071650260878785800339148194257058079061623913803550658183108619337313625189958547111410719782611789135410275877536982942301433143999782555438149374833101074752733348386475634841132880107470240118491161133584503938660806734634283577528721288326950620034445516400032592717482442242880362332796435586541646290441508163688396419062472667501105992429269483785776522239864752739976687007707644314555928157003285859881105554858646613534644232290439923767239421977493243361133777837354746786017507108571164887776633282444783676244150899253697364530097250990317862799217520428416292436468802349868208696187577194679920681522127170067030738260285834057146863148291908669662005960128544009409710869997164641782114469840810631280609963508280561037601901765097653238393769896044722795984885291959631156066107918373173898351971947863270944792571476352092357588942532862945077526208539283869876038088615712515468913236618115444628513453794365169383177754436088909407113259638146683756875716612657149666535457747357614420820795002888295574524344725019158937670703479958418162168047805349434775280303588778837711351844750398634868905533018004060721982690313602816237075407978241319938552762154844402252641900615587586949616172392746271466029178217822988687408364607853133975556474613052529211573998458719589058400354129271943840742833450941589300695787218565653880574068058595554703151321997307108500278840543269427731538273022619086885251698685992011335856186967157497677390281697215758117634137346793261632335858896675067888683653184591512325676933981966816489688512603780508864986578367841892124233515945821896109219409920307483911894043589025630139352594942692300095560299492441858980590348367914579086428593265509553314401804673850486552474918583907171969763754411232962884085029558563223550603615762658532006529965511060512970426259355617253473880976574806001365099335851137768114829197539406603061165195106765861135240510611465362733602501385358504814672701851582589720857419482805716242437861313249772860788884295849302660582812681732518316303337231291390112060204684885848711997539601407286844352478973526373505705445815671212813262585795611313603318996120265003505726011602306582675691805984048243227513345442296145297771783562100441695670535094139245739191769630324662238584565825742781443110674214462822262613873829846960773813433299517322661406646527735432375123570036360902977793497078299737047116374021584663384113853794050071474351587875424399323957405520048453509403641662417316380839238582219644523337606479971468621912386421979955589678407349632862333503936423712991295809851974976097816349633389121815806896129617165116762424456755963681256278073236618703008506536261262597983149222032975282038465659168456242733434988947974079174915543599430657969263857957348701693560559104428843238206621798262771955116464997242795112035631603546941121868729990344644436788141524149311274308255564322696069130328646048546560528081209017489875341814933317047840021364668865462449242786709690407636519725096383824674495120233697741834767220453428717875235129770968671880740318939895751659248279680110432726299088216674464532058890782879638538539064570185656421744513030662625927669223275686597878936214894534655427030136672900888499650128426619919971326525573850132424184960333537544674706757381694306090755728345566376377125440003682485341259776017160433143060017494123931377552212968078335770027831151218858818542848947167235962142467418318916906672451444939810844071606261967745909736687172519160067260153963860079673632498279426660054722070274095470035982168021053483418784857081530958626379197758119014510311816031340180304280854839760426827749641634710239578318048710139283021064590927383504377768872039449621926362004932753412941453028418425811117793953800058647372339422338088896151713939453074610074606139384458739876842699713334001819632028930022127998064623550597892047733803080623129840567464560474126268449402401156004845854635657030597717971092781697050175847323451869008804273198991599634767795547614041545438600559618709207530360560914520768002430023786835745509340895202086660583874752352371228515230307760369328626564196112807036730376036897875355382496436057210191747787351927265128493296101416241307974204501270254474102216092838532516000273093683546491664331721864263649788352193054443950613313606407829621881516731570386049950454409697285931544464854623070703153180572381936308666087102667065598275601330468203849121447133130807314031669440561027835878613399843954174638599231140824718911613439893657303312211033772626705197250152753398395954485167693925578768217929077567985679455894031642958379372033838786692070455124823973370219275729268281943871989051183784815361471917073565196525424673035598030970899414396532680980934607888445472023814096731826164354603134895013539970561758456316303346892069998730660944510141873061114035035233466840246615115155163748621154563410234842860778999831405870477297490878009705613726970795338083998340752606160324312539688643974543709675517546471311945950246312445587590235687200982587920537347100024588425152818052948319412986425225175953777531972509277359756436209700433746978703017873585409189779651740422311632519372103102963339428684214554636021050490996984436792451397903213508641711056882749461387728496242080144699147753258941753817624052204593595484427643304837710845646936230441031632845866991253577190793978735169493883238306662236562332576238728552480470512652431782823716128746288509983831106213817023726011480558553347550280548695369716812380108927211449979143211080119135321151829505869417296280500678924900111446631784725605208435914990328315122045726447620188294429935683180859780443902268838081632785552682290635929824114566318182441076190542185157200537230473348122882404294149877488042809678143874752887324310848058892918664889830810972462805730622472462074467755280300489222346531254584253271276194463780884460211446829270545173541801105447538460109568336234353911126743681122155002419320061347185091026846815128378708933185664954845694670162489754428857397098865533279401424204745858965300615929215773235308707570271560994166032159910749500306048911591920999390443805395376000551668582909066176056363821351868236111554397752171752685211113978617720897125692821873138125435105930683013045527299250087708264515749740898986813392425248420310128863347975822678189278274998418934292843040891509904940292197706882077611185253255801968507109525133722430207434189780129302170095419374267652333985171599940023938057004712282156131611196541742724277318258218872428776375369781056932190229847254980395188589359914709402450773496868288768635880852535534991100983503637428421661704810614906030866597822855323193372199281780684140991426766607471814200862250501381200470943987890938430443637285677484156291071652339168514114955873247007983919412308693781005827582279574085877352305261094516029003147139203727224545746368122939666333608217987353605080667152568330084892470695009524651225799787029760333606246917120283696383670667836899718192130579459204084818084768188653368155975551649442521860487526473217531758728623179837144669150537979796222379233654526310371127669807879445052366466370171629825945085144069659466239200627000872236482581646400414864960202416626612893340633459131135155921796772249828696880231507073866065663467746602551415928730514428305380977932587665468789378125459070551840201918241689337363450114027201399252031176895854089692496083057750557863758765722181393785496201938109295222000226392786338930414859195514370862782426812433034415951794067130950207761997167569159969191174200429983412299764618972407065261028335991479429541913111549667739133617885886740910646390392418352970887069032599630799674890358757567085519082347275966566912125475544691942474689578994831371772897874071079262139749314365499105414022296242683279349662971429291570013991977790473918816014345769351548430545243081535374265425968390507768652168058466153092220173202849794079072646599833592525629696501619256687017219972116392149362535391943161108917355760243181909994798099339656805577104139107414130296740286982057833591742326378376865277872833882422747295930604019644569662149542191273474922218152999589290235022480554413651145658463933081472282903512304375584819628326678961195086386278205951404617172230200669888805088177359746725937759514249146314366220674215049808428039656046837894108694728579893721919704838310496935546843494027012589755687194285199049109994116796007922329493306921757542774140155234436416958680484595007844372851869563816148842945792084041122584887303896538991525033205481792038983022167835850741900052307639233213824643533291612442377007781267334959424507672575108848188459371564869703729452243830736934758411754884888818811846023966365917952228014051727085163115526573704155802579654034257072576722020860483451009351203353458142322913907441560800241661319690434404777459288328955981162198424080303054315495904865424761564607858960724630538563719635389131058881408421158544883899111744653882182072361175748522453086724616226070980207657614438898991150150284278783622108726701694196220483075991445441022966161536724341493579420627796298900324549587162692977934863074129938447341062702305907979626844476336599583297225166136021386647898604314253592946351736150069944829757029560404663014818253243205450743152708682208189225102400474218322093091539570001980623197073706828669943233786545924786698717145327780900065282875548568559746934494504136165329516790359985680522225603754593744090092703172306647170581850331386744392222472633800745513972601356078445427373561582738087606770616033126185383291312441795595196441903679166531375718516387522221596441003898935583988725427807070654076092772550135501911943662834505508109996695763397462605571931717059527182534310669038823104540850185399375841053218647663849410188659288134324404198438951967161325054052950543669530324603831712142666286349440490776459127538094493951960078382861475227416074919039640941753645335629758813833175262815627339215927768768244642402787824189312104413316839365206683023997315878340450785039152322390403430553608414840931564660721369813797915579220216700497061917024899445310370119442815689367105819008114587601506760201268384126550205534666916623834753585897699816629035953807865758750955975995766484364778337682608403758225311018319447844950824907828187164179215395050024848453561389770349765552946783807058424409783928400090854243018164476393669974137402231941776414830886694250219740068307205376382366638451437410810440243303006517302042308222764589944162364212400422692178746289783944937176433306524714425220582440923152821240313060036953704658351109255964663337206386170313640452215318086491610107603821677381604840474228285117778289646961640571861372160275330146701491369349792415447189942083885768548211846764646043436351020207854448810997345543081713139759311400375101312231764163821455047104389112039645430197826644526348967055929184966962729648443077184376064795961359760771746707632943778341275180746759432966234373193653771899556329595151410725832231933251119575051540864859192982998360413463550672031082613818333640954583193759632947349959863074776025878204921038010366893274083783529522552545794253738422362733757482214911142246896299118484096875098096930990751706944112541040613125460730538623999976918205923068168258713897957314637330441927229201302003529421071726644251304527942335489439440249887164755068887145571590150497431359528982748851693072977230270302850302130890777365503563080270447230708117441617312712883298270253025478319973350751469036259824264476164837795014340274607349699730960825397525555252387059196824568809571982177176892972164605851212467586117896465961086178918774090433868539445905536829009131181577741924687523635840406524327709638216757110488824969477418594816278098950213966289249729043924066825857846465899389609897891315929265908520195647405472715481789747452763942419984753916058090903970289020447793360688761571187652002157710766072112345350329282854712042113030298255049658658985970816554964748910329884507069512237951076919889812281521749552313443837406853333354840930857347426833230494185820863711527168871271104561480945482771860269197529597264527296648852223214549344903173023304540414947475734900453100384613259064249639885524872009063357437163385154909622634830822334145565351694410267047473557747538330986741022572620365381171943972548824752819734991012176632934540947292429783719089710859868927015014863998095492619047401584196230147872049747637762727131800625718798777325710118436231059381881961569657673775701578784565244972384872678133853921509636253449436411612132176395579389619605190694263150586271236594433482869518650004756465436016426784898567478558985261894296240213747276517229878027191880878863741915590287935081541242243869225564437905232649413458095960268122065956350386471966622295603352714674466961856724284771186031411864264540398182699031921342542513646017386330391642542726800681531074003581732885303410423849167610768896846034823050921847653224028866509983600895323360630381315467552423382420292485395849834686496690547775848166801720194927571270100214557769345980313601638168828588018443947262862230616899584854698281639778392616937416048321573045715291888879694317382480866703259994727568321056418920430050411491589552393289755504957403611985422626535014617322140700953184481313077410063883049765311249024515441596027629564293412234579959562640564293543353837053921748846116558590671288362389154697203601249358140691958761641840326589656422119730958746154218079963372155000238430616933201649250714843676464113567959817879169097911029632205239778591814101755836690916586604569182325777542327546646681927705911434935577582750643716225516151878899506105682050478665988056963542968077002024880206167647347955023229728100610561531230228187397048518512003930584236112897321383640922888583609521279146835820252438824907487280736014173102203548398610343061899481694209688552738634047483661721312927283677614242387203339880373942639453426246273126719290739691178085354608105583318691863331335758582415590559489646715735771023878114306792433884429482582446578816436470590187927356819833175823603708626807662597362081231160821988197621794749980272266416713177032570106707265107713802831028449066420228784864611791942117252087513662388670000208108862244572407278204890498050845341495787433965974215596152299884951657745237676526082909359621849162388712048061001651742770617963512054402537640113843903776633496397709931926332989561075786855427685913487582228822483508961456000480465422527553905657347954969187615405904291919784599416083422901573128466694893489310685843396920981848450522965686455009903259307902795774856347435114123637369596753802537307397670833913686626807268613429770881081049685083815747133668562001525072082392747979128656630233559953694496251474832500467720798889056931218138617879046808383077660058522121469358064248171864843865084709818789020505991465126393681733904269190417885525921891427287458428402612236157986299304730876958063940050126179590831032831055215703588735275407303335852582739642188660175917237886924757584033509899148423785297148300027694229108506904490916177487018685051426243256366626658054709661779752320774038744073597036895363475683348351188223923457550815582629649911522305988293710297560856480306881599433249918226294955265452954284761849494795475182184776111968458395302032371689773149114551512720448881189340199990038067744750707827145957933917071657419918219763921976464845429056635908189064369177924245336237197294304625262759867413730685427065539532544126601556116529133988792969145266308340259098003253279802562453424206374783129697691801856047593858015451102236685856311313684095470829579300820097719042553796979708003944488565345529342765857425785131268162961002137072796815479084392633728624375261640453887856731613308975457858276415226322125555645756734638964942855565527791858608745182679417711388100294253946055688245246948084119884618297803941257344143045885477611456546586094502768527303828511341231289144024410188563450866817674124736633123954066431661805460058777665379332289961893376437851983475456081992968677187149966594323534054409866902013651627588233692249495231685420088018565866757355397489238340698366070204572902398173075246489414911241352193754984889616517072575691880200274765824782934122203025107734010147548680695569258867225606151314669111565529724594607526577153157087947963125863387479884259726765848495901480343214809817720584559895166638735146799687162552348280487298596154130652782860765213743622783951880207771425397946273477410879021454598897978841638648988882746903076805940913934481248318394428577756349790209366152390463813348713967988426148653179155085691907220958919458256620055975540307831730254271844689793564315626603941571360716819533778852826059864358313536196056248838018822462354625101526968729278712672108080964943890880496605036066751014136995965908225024175936769953729102652656207953526312054821076881337121887052610287331050608465073291850428471126489646844662299329196078620569068157356632431476485626000195171493647575064067620569211038353502691236343981053293911945939399602107546294087441044859998795909260878731594322138988407568862616172290596524127128558585142564221747638680364810569253957340744527776268863454507979033730395804423256680066623085009082636701157892417732350246911545761675491323074472556081553870489461115670085458708944422208565115708714457384939235727066440709901779871838367873087915212373731297540044026865088169101115866604519165234770387261984881168354384234530531953212920819692054147232401406189818087227537314512084596603587141164695999313936058135001038254599435150286335574512983487201068341848138922378580302569008256838574861212777998603182806156628010976634083060764631049135289500418472477730002532747001878061228869948326272101618570147006313367419434574148151564668511081336104411493560994227698602204701993218347123859457384927097951165402032774980930347982934330274447133182727431821475973477066931346607277985466393391083709356267236230695157265647400754125343249075359967264752436751225877235530098138623440168998147326464625696692678109821059068784336477516843643305763472435934372473220143272478675317279176594797918832672565564657440916483151196721387429740792755750324899865484479834888315005107671644102039585646976801700090493978153035105008550747826731268242824992989623927913080479848178595571157823271546028455620090873882525395868141229378660040957438405149038904871202223156842349143763505892666693608637740876533003503557592819041633907269748344505880402272544103647415730069965157224686707030889466100366056284297093572513365608697469723195773046892001686720498128956552936166479972888692336265531465881564146536578619349532899736174431937128552832898170000349038578456370730165765686587970789057973222135198307986462491897479892351347050130643907468808881672628631145983712137844254251416397341963265374748767618037724001696415827918254588161787696656212335744947653222622697069771050452127302834635249976205279397082149484578440141022150540536993011287552067879001910966347309299106796713101608320589328870434715345819099171729255762313949247580542203418391077575771225778710037286157904139740467128601635947473071635957979279062903252370682896446529621028884928149778133061615215304832420035107357386547351569371186715393047552612072985783697848156618973058672440360856528401247833359865874482753204148577731763450808268403674743078741237649709635141908315222727079284231342262400628755992319682285044224495311765437994695236027146671619250542306995944310951164203339844813364770769989154864066338710758784427784404161329119555155051688318964177649840504673399410152702437231015055570390782125320833746648391639949266558463002715521538732385032652293433194479945074983385179580151665910700133962649779342126648462115630832363598547177962738789222885608361808740808487655363925540135803584474801083187498427459958181047775876302340609449325526547389418908591594866249038133543321456349469032103551081108350302646233280232835677439962859506925165676902719707795926101604459772862046217348107705841468742406387825287996612485695746291389411048829190130123004715571126601732279588848669179218329532449103698793789731811681823013537006042832727747255413299875525600193324155100804141654467253045149584285354374040482757793513006051230795718705055282486061856117105712768180382371277979715829850899337531892025265277321029587657017725985510349708314795426779309881948047029971341230732474542671041971086721789581039232188932461203716174112858398630055662920571962990335239563970150066617290469023678660665661752413572383432484610876933426410038700953798576731861771970303028481576452244096928985014498424685586104768450076536670401107490001123970593216680910288679742496400333508463799571186826630005958328014272374746014478152630935659876414603088641191108823512785244217010909209925813984122381303173093430029259239233597046504391249800975612706929042976104849282242003130473842726131943827343854304333710519321268303957395658980337592678399237038715981138983475603640638018207919412937676962984624825245767938661492404082093845553004016435341523326468552602895431202133819987216245969467156483607141663919746358485903564132836419582447008368182861649357188805090091833915777726439402392124834465186160650465177339220822816458589369500260239843998428724947756743197201567233594925551209317525561710616134017443713501674166863209106711923219873698208909858557556287290559704201012158759530675703714518052949016183248009879702713233675880568365729331212461277294865317304732234744864328580143706803058822299552803166995600651343289980534488600070578091227205036861665214190301909051581841110914204063786509795614562896285621977563813666595634702397660088359991812031446463583189995808903620218804783138415114535215424610993470894523717307365951798494755906551203743627798074771816981028045437389555242874904324711676518969772929901873734314937363271930327196002949394045906194475829157885136200311654721982414239245255577876671466995490938352703731833267568248073491068790014469310090723882762101804105948953976822084637283755761323956010870786303028823678390068870726826551695457172675811301302628185153066478474629850733015583667736743699468015671840813529879922495021144961091592455157203400007893587871978781528849444739295285300045496674142380198999694555368149019830814888221525961512919935896151643393490071430618729408961779598647727850671280829032129553279516057278937794971645684746519240434401665416478259934119252988201379706236383222469559264095831333715559205213900798617187053552330842156812509594103003477646832670407314903531189190137335124530400235422019131950729764223960198544597636365715556634417159068623487327152151810433156716450888903046123774743689556838449243223298262115307357398316644762218731707217806304700983880616974645553112007962569849700507003680647970410970194057149842094114639482770727862888456180133101071699995090587994958868707888547585535547320369715304096577543401780788101891213655331056356520376884890462965138850779317567650804613959732875923152086381739054686218105890597580653578745499908577512777483232334261444181973306374148652040908761432375406165267070242577875380038171044691094770594330371239647101026209608845188307788113446452274810754358542579289457531516675143967971082933220998599197770954329895707818707485238305250319017154421619587266544538273299609809547282263500805206897083820396213957708626165571667347329935227358497830292247650357949214285222163244975881805427555770749047914380118011263546613810994573993596220270474953548214496558399332938635291242093386378440612433472321795663101169524160817522077636900241465547849218671588241827477172057051624274785629455458894625076829378134351497098925268178027364357950630225397405711172783239662255870965923876170480404241294605810216441498988885434642999603377092614114863532725494613372327566102948913039967158423623209249841542482703547467143795548856083166890517116871716236102595827750109907240341671103442720471900734095411628811636076719964328979954871784459848445881528182893164495072540731620235122619260605149465678752551921869828639520793837510290120116559843251382907915664095396222109587074183433495933144055212576668502191505833903233023135989707261578477328733465142776176201286885254042963699502616871369584592263593413283590937078728550984174635810224864005073175364140909234224230871608272300156239239152156664986796079815001110411012294103248962747353150567728052516541763374700229384303553664200316831526757079681370722769602950099945008960546655783696086131551068520175330755033130028587965385027282120131714915595729601375758027529646351791095328280765456248696841079875906486115744521740861324718759850275611815057681210208715636232754362046281216460232638950990142283799554979800032724807912492181626961136776380295029065501454322510699250831190557368025686869831103198751487619260194335418985166826124026668992589880116629336234208545997474943707104080248312227129375357696763357929939493163730080814254045325038357934888251142973913093832695941016995519936590839475670945893957004643283445810012671992976080604987497895777138910549905177784785073453815860058131161883773720629955438807163220384147378882861589354063808694035436820725942492543358486093775674784994450528474271872562498958301569543900286643109634942793202193288064960390433288546231998128363869765535815814462652469518630682800826229809986596216438984134535320831711902099040340988325348399004280165076295373749129583995778496505047065628107980867288780275964344043804946705497326570543416231792383209399380202320984340428216230344564095054980775534056792723567175291523036508341151876087594070471504256131138610758060595846924925110437353739009375197663482229672171819363451688023919440554287240354602004157265749787830175108150385587856863817070116485057860524315847506952396609845059626069346883070345558832951280847993323702988119125285312770315014882489627728108204650658646074753477728398136704603516606397833462916674339427449067463074510482813724616154620085863537546329089292574287140302115000163016719764581384764750080351953245138402457438781999239796961274784554528099613823837771357102516849615679771225951069595056931984849716376376365976230342982723346717655583033796946360030863418354495587259825555322830235983710387187690241560206509727127664408447694094711851992878269032029099983599093638674754664870391807912487866592128142953193451636000451454688959958769489271034059532156744642424408549236725571708008836786868695923634465732622174377191245441657163540292605480006893753806755770504077676441620709185079370044082926645238170916269545241261669375696194496509380657867394070537040245973591656872241516186064506209218490883405161540863639703379991751041679781399473828933850739164026952797991304640030880494348605182883490025587485868457259616288758358936313025765225806186430250729356795885686646203282362916941716359285863658703967437204136428398205116915024313723045729251448112875671878220297403527522174971792387013520807455127769510937134495119089517698659756801542518426301568061819044523794240697392086446141950912457435896003702418643640995064889904287468559981860343898254919483685544717953454762973079879726511811955269999517774762709583554963657420566751259667464717885962060601952648446755008715316725546434578453165405584006567333021598295012553536935666838361800418184249099219827817392197223941434025409175314509886070812238782617165780777927335332696616152520645727868389835906473298963213332003473294108491481532037868299005702740321876169712844088229510457293491958742624075885119325586336056530171656766447676383856064199906363774251537366217524463198786481038679058726950274077442800814274131598636268583656917297427704108450014857398782948009188124870490856598510178976018287458629723888854804689434945787286448050008912389359240136693756375234882669168628415783936611572848168261236159998839804576987412858301736672639639918029774528209783007442481598545784572687147930392842473985464774997787408420062240771482693311977876547385288793165443300579258871896397003350359498260331362703226856647241033070090864514023260197361986770566922893601268904108728862924806850689314999930029623481938853530871504329497412441006877758171487625943857530649245056742804003713413374320263036993315615234742397748401816507405268645312056867889918535305297322947176125503537360205588039092445679285580717714401346268013072666295278339598909779880055125478322581567347307725800398755847521498448227090207379137601034566464992260259728306571972587731160014342951008546663400721262241817676918873356778245634164414184504936361218887693400936394955012601611973480900119415496389728661865269948424746486070015696899656926432776075687377962774954346164320854887169984632499471167251793869513796245715752339661463891013870938727775446157603953375652883302865448273040995202211938270752425875150797576325072004126229283891334786756869630224800603613229192697767460653193411581166089881770499929716183906394396507489205612296466216947738981065188713010569519883306459477489504157529178408170147003408723647145900806517369691453820616403205473567106866480172771941232682058164764852060573891866284275470676219484670922679945958699322169386813690460844170882022267892069045136504369785522761271925538739141506787363790320550220380666405270568207659672981959535395913353088591607180186135090106971812452186804746450459055447971273909695194602909374654179843836202730997114734166757838596641938568044233687063537113430749734517424109999241431179878670327147354581120697840277391738781067714081004597529451360467766499962035965889644640105469298135095425513271357619319175293203325128479327931600135201307122403234426277072204898456146741493933802488126565531259339867269740345888846716028006092358318629156139400010097769301292367324909602273071950427518997171791479598524117052001285773327491685713362091347576796787284524806219106943572337614983602071143162776157209216449522108257970268224669787093432681653124079621386010237825321551254510137024669773002682051980396341416465864950971806925262016582716788853376279411345089061564910504059952067674249593948454898897799360788167019006099981729589567244275496349475176922460970683188541295286457801777595375886622525055646393797702668518278027150160637639578973028629976984476699882991850730719802664769835787186277036464796763184398620342210057187408266250923236628272265300273013073636100394824611783234872965215645352533577652277164837464780716400215738894070416346699185679078069587988955057236397476565699957289921931094250580826284429112566485002341921100208767989988517350816285708066034519019708487535048204711066448004825071260916513824677919419971495894112553353055526933352103480754863038110019449388426069335461415876514820673931827072064553150959799004447482618308476200593588151384922964679811729246805936706937759140731132700096138862055006535031217330019800086934621828193648142638804953187897266071780699814886919725195734438711696696197784543339949347368450316484191118089774821325000197257448117517780045933566822751361315285427559346815746573236727809223725821230221012918872859838523612156800575410806500851248097868148533422030972172699873718068914503552166666396952912239643719927578492006551820895138312735451803036369210418097472869805838768966812158814968241742872389150518968368652994401431361590600968703091045512259651677808503366067601240987973252225303922987486565020756938108498410128287614028916127158309732907213631244833958947376869759222783288115510357028123459708941294161156067010617588136296421493051050185151531427113112836996636729173288619564113736713472145344862976070671586536703267706987740286108121131048069270751443094433903658626812779051774478005901880739262174132163468777886142698275310459972850328161127259543608442444093736414218773312526163346445557501983774923271528658178647107774630463255628542513865478440791939720722586164480794222727569855118210017829935193336237328518542273948334753064359228102776256278340438388973130241476873423086847843052469361316646754524959507529360202545353236169285033715075956732036981124467136225932550578377046887204170268018304339356509106737016982665391562702044860877697004022098286087419864062975086927234864281952392455232747540555262422070155199592610425822729322221342621799722912094987077361884773507343903741721114024443160487062280047779677411703896186419055239153043035910307228442102796599869040201449978413888965406536243649261722272844762002241743820959055706796168049754400298737604449470288893377246308436038964151162985683056758998871272026228422343609378754195722887938036095919916159899125272674766138928505880137940356541935115784224977107931833972286791748469274115678594516117541858133491654451604485140069547439642114216723770614936303934109638140444070691617203970986696487667819969163194672624953045455181946799937778322837621327759273509171830176548132938260371151803344432007107650621361596194100101634804026830637525188306488851694224180743663434417726717270064326794423713455819932816819317022054438588939339104422551382572846413172993830653163146174819363613383408525062279129124780253122576088415493444231667559403541932050217003812180656112409329862540422635579946997448642827658451791587223094918532998381484187790954687859860388263237087522576616965137920772883977524682071853298891996553981856255814498321426341154770590436430340326806386914302112785896003676433389567953898120485440816310140126236917952916350726632780711248725919274007519366022590355802426116703583232308328649231259211426129903967538655971301915099467828865430300548887383667395230267537125852936145401381188639084843058765381431326325801154125766796438862325874922650442893544472263369465443916366424584173651922864191048505336335744468528699318073924536488608828296481398864525205154236403058384763315204684248640038944239711152421453854487353856595574102970543351308623562603408869141783643153216636887978947161202813889755677318934271214597144394515270908177018054911282853075133548944704783711646317380066355410667130492608610897212184744583137440257173770354877464650559477517765268929535517799493341167166686336935441020178401091622000998277901810444849428704581570973183936786473603320030455476766715597637485258157527258482688584988445962448028385148668009248040765846793063014239328851442655268919238077459804289573317675609438763056572393113631872174694824534869831098849178041891371510439081017129405539800175447079544198615949903572082804784625421315379693645147637950270852427545909763066653643198046583635363913419477230469484918704051212289740829528198322384936089897229892090248032656260627633905032770808398483696683327489060517960368873955407435106159266314999010593609223021985679373445197795903405651925643992147999817590891040393433958677568240254431527536052035621856062962191552241068819149889056329502566287487449430923856522779510975096585349462288194676485275953339991086621920850214517621571532753089958979799771794174676055592983525836169691208570088404035420309760449023326156079245531857319173829841822583757546657388348980142719201126544985898153001090157121677210945994452403972046020369096250815384338342430757611497168450642334556388996640290046675265514734744447005318539050929746687161296352453309173178727930386596743319106606485097726508427274943952962470727363755324528988337104663658037169916736213088619190197329230088142663531982172079816525265551287282016720900035823147308056065834043465262535032859983386772582372133965061312172059194446200501507694492483142345578336350782966189369452865217223358214166866311827122301037738249620871759389295661553140490281175656055334086570946388913110371416376589793017662145807732898867182687205254688921015002808080954038752999743155610138512038274815786463035911059384641896974423406238328307116850434117396348242828786560214842923270461539819172877369079169298559879733306926424287884721002803741923467631497087958399803876470495310609918527275806014945052868354184423279114464081156412405368970425001732579601451791544665893186201753536537062481847008827084850024976948497721322929220278963352991016079984014756809658592414438245981717457155464484839075126135249574448663693198476322494862269203961649294348113039229422817475392746671773670567790083504203572613478736033497893834145475534805907500633118978895127560711876230014313004918914791199366807174775395229404398654719861096672861120208885128894151593044121455896611907288575322912073561555523898010142403938780340990832248657119574613822864619028789172422125059080257635290050877012312750922785136525790447360563741299199036381565310569605422707269695892901738289647051099493589885175512369509795523867615867615548182685790751061547140036678843479542621422572580652102784295573963639111546315763964387980320200681457509960351924927761342808325955119247095001731949777147060656400904615619291007521453156777340350480012068925740582451806871225714741670916148494755303462426606568517638466310910968473578601289788282580357705082630308127858975302484926660086645402534818540323139298274252673000511914876133040181002142874933284093027052029288548783040345588270307654328017415201751828650203430015041789273819793903301446049178377664525148880260992641162567189690146933077673589740363762502289650124019632944382245031093475902990934482244078741919195461960027139983496387564641309965686061908381600152234454726819733684481057124482911926223770285239749973930033883291821291495661848649301361052190222832888864993663233946350541075145228292097941309405480392699681669145906478574119252467806314012376084662702170382852510829526411935565442630633670460132295843638454297054407198051129266981075018139403582125896670305614771815933251021749754825788027998508339874530757355783524829489242911150791462347997834430276660257939707738246818130129750589759768665612695381834365974553136686127736207709521202984022704445545843745596399672669384691723023820520484560585694277728953026628947199880702745197686302948638520372674213460506386496609067182621416481511106721736341377453421084583583322967062569528743972989652779054295165534153499306379748813835192108260245158673861589388535878870395672812249948814136821813416753230029822409853562311775510170423486221990463256581564421472020885120877364582502434977980501964489310644393183515543220166442614401837601795625602751081356169670052670901699985169863536140144504978782519828735421908984949623789037018306840684359266009449456187927054688753143026546798071860681219812489869659694022729874422739871521928340679490876543578997495698426301192941335103242307770319496577299574894215353159253460751910949008291286378091689765244167471976312431821367193777452909198667641198657551914115357284404668400635740717500063288431450426581103577340025006387982123008435475395817610562849768923556301203335770037406261556657988857119203447777738677572027789095930804358084075596441618614960077947246076710861679770159010951791585583638906411509941194482580520766480194747395795587219337978426941504913138768183660453347840075055035166391666406461114447997654111733212893227047806371173764559642847554690607419746015616510978144403400745916885743177807385242570778636233036870813179484845839523579544047596925402821818614659794823485383939070424617225101512300250385730717623843784684687452120643811958714619654621362458987352067225941747437382096232947738962973631157065230366190380468688184241294170018790302317296011254389666955653486603401409900429572319955923678100872578947492288211217426605009320132648364646991796203940943332518864173794665718347127370098042040535332771522693600768071516597814591606289458172690045922809005324721171976046648498439196374163164654148042778057712918754912074930507780170169720626544324107793312139705677520336157855510389572463765168455852231351159104519287087231904397339524313277609289626077346576867896060083830245629056790611466980846651921182017411179410077359546745753502316673078237082062566181420255243656522568412303673348602797866867759385250182543121250576444632316491324524382503854553812097812370622738782366480474853317832670344043445376203362266855353908274105366655005532620501948446945877105135039564229477379200093812877311458625236697047397850976988349149480712637874086536574654371088960022466067196402398574887435605642562431925010440678422815257004863365341739065448839855035608548709164187246316416892899329030860616617012666405789314697688014369364193903444813290814206883136471599518877201544784105738962402675823753219964203760852131742003375854560888480448896458686336435477949155246670800726791788443108514349252274601394218548472010534189359887447598410233257050937059633417328483156561398175069867968501991721840737814980053276607658183905968683480200016461104502652415554310495570743453572638798491751286870577425520143545392095298495634828560390479165189952226185312653551275348488422721473262456321021656304187266145591233561549670697367959535235630206460058400179511866646454615540526553941785672741476155208249767574254218226129074541628214774623878929799729378197978377226906973947320541213595947178847354766269130198789217722847651801939192398169053419379950898711509457751404826334284171603453386378496875248674478201980254097184838704028214280973366833719270180490261850479659648260525359208602050040566366524047979369574661070496363969401967535056189810323709227914365652446746356872916935723631962152839770636809355116468259085659285001060633512110623612548262773771351147335930022630708207562962237688537538099126222336201513300000011357322051589102933531966006785243176282813025366279582686569678033275196614017545782563932414720534610021857121881050873862210054298952857208554581901144949168135287705771125244798453842871573292435644649377520321793066070568483496854513196921626169771197188549588611920051371051545969027466291776385482606830930637400764551782249706853488555880350366557229443277641005397988403160106995545055339957124455080639001040762829833256977249019760594767773522888728147225221876507879731961102520195980703809776281530202177371596594294997579967739861384726624925836628570125890842144626584825725093432222650066456270476049406575993515527896396491255151052530098369119612779554445399610984177117787484110844871213208272794907984778946565588124827283397895403826279416961030110692538442839465790840790443660620662769456341470367076173936525375793068902771200960098163475612306689705384304575352613603856621938911264099950705164431841156960527717351514074047839137255391645215492053828323182249034342759737663474545621791149727761807604276653576759932442994489870404568565975642740019434547660555844763367541908496726719053012667767126770009067454176583284530551041227483779919859101684023075316383112869145827694171773176136600205760218596302746163680209813179996196030074481499280899770510825188344909543857404498767727720054295274764307359251069126810396334139867569635835792851591807511316527166042677687636534675680242724680906673912640560249082028865043041840440621018561322345466489983918822482632912623053822202088959925038055873299884621151741716985526153696400115519347722446304702445813210067207988284404416385543126476544770456325759800118784812772650641833310890624694599897219232241782350913107107145987597550359046847930672658657612937298187158698998447775617660124550011985865953511693560163503266207593800685481161961796617088392871451287871251598002456298515712896245614227965305895669916280198329939649483534840018059624378791720263286259421378996052820871668773686504445095986417830948843308446705067061823826133810945061947204436835481296401227839469378852895391550639440367676254207665926183687206904875957698364296495301935677112420751314902250044594039756424366674132339395909142271484655503225215173688351932052610772499166561179991484652598527562605560114242037464065603544518362959708681901959417591205685743387232004724850018672296156973797766230925912489374623668704516306718954719156222111263699281024282844100552777277582741452236268317059523715262263262990390732721150574298870161320259859537971885159479712798745430977115721512350819141088292942408020805442573555149293232365503794640034953877106791653477385555960464716856525420789387636637731156747405203098298500797481559522118471011281818640047725232352619639424645729774931899736339367496002376175417741266464351800362833791086356259037770648663199415236995495225773906879309338418228453442891454415638941380834858700087569373368354478050779687611852605680100847813669095460369407180727805368926906750311030296170824455987013299811939629585384462348022367186549069387961057344969701055809497689585951283926156268474898042606436868354940456821411178884743010027633247208322182780552040976632929100534611394605451965119150294792493773348778325248049880609953470661671302165537445075591754732385290501070855310079473788893120954025144796521958540495411330873027676542010217940081525587626367422263133707334046815565568981229345791446086717717404519636814644879192211925592365740759533575727731048323421218764874015560906871320494411524533228436909360579023015443634394203762852092111019136187348090726155665604098103989607941270317117015023955227623053948835176786020490223152388265033303647429795176303207252935363745160376890828409368377295016348640948243483117088931017691406473458069092255461176171248870923050544900855793065725621132546527923159194087938781512925410759457327918843649706699570761581177347847050786826318380815456601386184027908244663906300441240193410369684060920649365138244659856636681435900861789307383298766205666616821566130204947151936307110595658748467069035845869206366487658997145743635624266223558096307481597389902783543856834733855408870247161514573286808539314428043999240968362309184088457691780891125507325339784955891785570998748340768440856594771944429546866693475103166120539192426623239529785539589012402069902522036488017826987146301429929483799377048212224183980467570523315901818457769629661013915126386482618452971790099177597796620480979837497540375717476347034165300389451872827146622179195896143247145169691419475946554933950952130230084908761970097133324673416104193939652468766832417981179056730428815536468414523688089674904758090028423330041993000192599747474634082583255933885075746255221596696485110122373759954970069523785455000242716733150749903998210750950094339977423774329377666471399016561406832541534351696570250898795772388199840085643466622560619149404036440184262127115596122129920883260177207421705545229191726278914141290295240128223939714203286332329890510738646886465846011482624983807121649908080694712265471007495100303964051785224177025473805668963225226392838497354146071804501096324342731320136827487421995479693184263546414389445428184317264381306866805944703062411512840766427371606766468740903810826042993771252328236788945426503533054966103161201306984598818516396329996672764918774992197276215866121979900382740000007327964204455725633555398930490175774374852334009182703325474183044807494716101667796686000917075501459437078586341576478407412978233842120773550920815940840973308816172897011674068071917183113912992850696995148068529845614304162068426835722984877138125728983486655117086698287116541834771567550261937312550060579101312493566895477945616865815794173750607147808004403760215661159912061456981127603064236098092076085110200988366361359856524016633794109294313604989262068457825212369929701325842929576693617488470799851118814681716148925558117417695265978605649568767223540751586096322027432314647981486629492338296079478415321701242290032610621014007038189236457140559499996574612540127241462271615096626618823528154335478373471403128170400302152958778158278026615370861175296255326138549159415185026931521830037623732215145991892706029177142930689585673909924008090983908022750976258996095524914534485085275288031566840253860328890100675845516237205911995481962179875214269257398428750629076366334936928897375879914869555295882954028948931259570178513513726351262221318828348259134296166303655755870527464175283252294791438343682389211953673552641665652745775368449122469829900216980297786871521407105788644513042212050223833215844370786682486436727481744829116641982327266350214188922010823797706502062627051582196352284830384778827877316757585243267582090836563259811182186841308402752189985943325494936034357403485519527094915473806703227268127729151107545208945685178809260625292817350234206963479119946489205281451083738092902543704151586442010693080860640187347927659683053368134743939572717460621998231732758351489165231629239854050034375169875944349921355746575738804918387420847526977393388111497034453419020249185412279625741062321849792110885606168373556816157631796416933163899570819915333285875433616355826644257025365462919078630728338772522679865534465636783566285561175135209878490970771286274715367738355333157696153870329193799285368632546142956558214557425476824686337563177316182161417977339577325381102563550122623188595961136743940521805277136673613124930272927943070727173232371245561430620613399046513041355538574023713324144596770252346892955827751636930776403738610363617697029774963550849956817780591058783182788181643558925311097400361005510403272005540589518001185869914770171225587967948255297238751176744027818497366434549754157616193512484192189860186482883596503941885268012709439640020039357549642294626856045806945195535794455970445788557151852893277320261940340576719505453616088469042431702357207184304793279512772687620546250712081013264635547585027643557722733796009605063690147501794450093382552733219066305040699895676506114759980022029804608925608524918458873041142983934849641077140092269278255822288684997872148307816665067802970107510030712895629380694826545780343794448301598554066624700468914396661524410511460785419968586125262610318134292769626070650623048738451468297982457561445975474994586150485856404566921645304915671897065084594543287030203336649346971605740233966967817651347962560546817865979471943575914547209911571634032604160531394386214675268176902620361461108206120916814395006343595335423910610971020681965257531168928179689738952666648932434071942711966299785422113022365792173985398024191956147845326527320444874779697343879317903190052417887530782191671351596453195400113999405798095238410834827460723290814506842456479404756102536748239919346226952925282602709914219536796202260258630502107849818091961282774356450460251341523389291065643692896495805078281924670400958006296762765698160071725975842275382031328240679493001196327155643971739661814306201032022880249495191002351699372055884540229776109415136660239661672151836630740861836246284982581977210384168641399926403734480763868409453826659436342198509549087108980237508370676488526580778951883488058790285469086340990082009117625885783823853377954230408452442203589755118974730951484226408887443097553218900632403605845802350137166133502299995395458743728922158611971359294768450623771116840807020450465324324735245001237101456588507882469052596611868559477352510845399310752753042431257846500099234800909289435647523844154106902555930905837020722970883611385240739822730609005185347179748938116232210300727252687399785797004066704131992750039298754905310727858983498674641386411227119652561967677367712110883549731701968689951422330047593370502026654084479362192649901906512222862330701311269757662102715752997752433502415100161341209998014543365594751492770553909834969297308844472973192372920992259345316703839570553498433372883344781476925392671002397160975911637418511905610079616176439513608151215675211093844249650790348396754183738854405982773099480248442688151092586540561475045964644063545756516897682302550939074848690811543011677860335221761942032041137475504259111779885493384972831673210373974777382354497187865054715400395558136877436248198500527583632461731678151826277012531251754663243347413173289053642110139616428245689293800671043070729033805697220229844979905853465597759916276025266861481734250975735121785556369378166210693136094276249175801464946270682614958781948764080996554715915308761612708806894087731469617347146346599233737714751201407117370159713420389356799356461286502735783522122829755612764901500450553048122994767243876541807051525642451038725210529084882390366564256984231989634350719767230448406461542314845187473356490511448464759162712741441992100107832201329142992645796517932463841052560107479240716182365654471244824002279193562538552455839354778901027915538586554240546392381568852703018450285532179465425383450787798130768054835569380672536838249483961432540200502313014881063306527537400217350440971719422230416897900074431611737805181563190615487350645366703593214495699840078470970164713957107012012761488530925286389954859996971116894447870668684469962715226931598113167627588020427958069487548622020882945568581508213386322299384795282587116001311057716310079705824021209224389331362783378201153520745679293141744546861905909910310572144775316023186178528038660210937046925758824063695575101764284860528322302171050548244789702709575174393736195047043142934886336421666799958857394882959789840880423354387463995507421306344252771800638083791947208194904844291641725367866806194919062214378629941870406568447264857686796774634778719325321030399691429677673239265804707694263546463441644377579355623916547138614128029358065294333899592477827395356622989760777099141951431489846228823926217365582985441794993639561182672245959929521589203107174116841929576954645187048476436727511935928878704301240655671254605414196328665203081212921090490984343205180052018179735849155626786683857913860389332339486867709739732524607517204967250104811906992509354581448078107808548618345212212841626561782910891655190984500142175937205529018783052247999278486105685152721420872442688253926010816101768531474284507213980031066866997229156268789757171383703746926870906587573147447473824219241393200647290350120888027359784956916641548076464928449228153271424365397953693061184358585594079694892103634412175514839089382182832049254522640956617972101600741565999914347309323875761019241723123721553092396607077201836838108855276775208332251572458501354398043111438991891806793788605984233046494034731341273550175445796906423818148682044447236748521184943058546493545746091586059338891187893485030611507464534617295492789187892871342102249311382484379367643681695114933739215684174708136145711042884965840705318454849802259138599260856360150811291237728310798223685259442342634888704094982358330738470595357857453531109303518900471446211182910180950566151093554267849973991379485264964590231077544056979680278733175148786332745414423071691983355851342248621735158268954009440023668508592797739183018439241540738450915447731216027026572953854279872989138573512017341981075770990212991300227382168992361689488110146518051236742350147358367581651783452327911371092481419693701890403462990026411933384683183857381964274849456151302925712921138392869001902821185711529629423840531767774684758883512557357748838010685170529696233037767938586806397993945840595761584625810502435776087514451261876474369012610632382008250655944788478349406122046303105221751292374030745715824767114613227818548063882251966397185579651014320108817340928263910042429267303021272421776944171572554282757499117208188853445975863074363087329396292687206180950608749127708711368282050585235921670779839470631015484557260488332911846934768953640763262426916289446648056028016069808284918352515000848915809667334574664996852699579945756799304680268789664942813082990057976592988809108342155851496972776363878421892894125634067661245463921871511548680786862397276584626685798018216354706867869512854044625416335761285707347945027363520829303083688723635950349234671465486309974934815372162204365529199832540014591764024657257502652399700118611214427933619806241255832055714537976712986844591982112137826743878197218171865029899008739782944115944838594124806083573541110234325569313160762615312323664262920784683109029821196377990148721140223876888842959420970723371089831556339109872177624408107190701364736229587723435949779434522726275553849098848785177555012583526935883083375142263467134991057514902110355893050364877622915089403815100064227019451345159619119838976320126088695099976020877281075564114218648237370176891640668979203028152533443468498838154217117469470498300429038578630801924339761084289661945335562203824905298843027545223297817053605585122621435976549817602027030674511788801369322549718389989026432199587049549202973127969193100767471953071967000406029670419171814803965356322982191187591989917628027397470198156286059221349541234167323683220193863933349450598360991625636194225606721875830386567353551629661755485698270207317035247014809948336571650748223364676301467128390854531287508489717974552556147046579799532469934858980804586278913076472663328540921986310149400885050404364892328713567800216098421652808818854538981308842009092435502260318053517955099409530857152615542537310760505527430116246512037345952757124540589655212566061678721747812388158760478631689288172678370899260233919107315506112714796856872461799066890029151640944320263579803132441662328587059472596111909685988211685625351732408644224533973882524872157973515226955257684938881649510255684582667354681439137887238659284038360690770831801040375431006411294792145226426132392670266508172984348368385972403155515356747417385979468779447557516506219562560947062949153362407672225967137806060464506117390072485316145169288586860971018326278217068752480629068731133248437454278925105300270978741655483361732512560536654973638603120298652802134522666409419257412622697319764948988206704515605144942969506885393779174053226739003409076465804302295625669497321789202284180422408812607595847053006549927172063981771148379417583393277492218360497490674733164501082780141914585411627807741581396299662632119313901007285453139557700827798977180958756851351385257202165676339760116732043175626549269883798278843420323437008923041282858313695553945012532183783277573842765363405631471193186858484589701927039067864635143878797460763787368052557871683036916146869641512673213369334881148504037052226536501804195076792352135132287650004305699499536716655173823602022754312309001532141472934104835301449880386806245990426678763949069197478266518971332091613863197481011272050793659085402448461230238253629857945308390554438728875053943654829894847649404510625072680206835961192071855461541496206306752448652897764371949371306212547228673560255308543404365757869160232446038292795073974798149042260196204735997142283812959931851014393893440587759684732810105952965743308944568624117117939388863577318065239608516628205008881885164135968850763280522826417267547164985296623267973742183642505711408980372962305649480673060203803012534685179231073814547386584453836641590636190391780748869683352924638450298283827331767886476766760708312037308272453487886031564136874806350272750687784442728841488384674795606014375721293886022011281979379967670971322914606921822441770569107681224603345942049420518016896204106952159619979756543575512916942193032642169879071458824965396480637342674724497684597968879538553675021712546506294409953415814359551537321332233293747398015830306521888086791355445615508974742699788076071196007174268121556980291145721484965351348793634945151606985608151551226551907450829323485718723764923778454001110569857928774511957913359294365359577870182283356249380574973389900676439419832271956146358634874392132142314837556919557067906978826987928505022521880545243006538481703203683409416166196900735227981701899802341005618602661072218332944809942048867673371049216091335362117706469789579594674952814837068096476440126236384718334402312738277542143449706895113750251290902777987239666459340351373278182964350102972356484800311633704605444959942528359469047474610430100044482968045477427298067774736127102166769384678828605086816517054708745307252951731339875102836792934332901524033618537630925352421802438484256023254022030915658302979176052065804347199545071279006198610860124102114440687409578014108247869695940138398777230162815182409631051082699656876180507545541793822360062033739817197073805562328605180676923321818541516291922194173850538702638026862322774968307304162736180810450018863176416668047610947113329564947324599038636968420630389333630107566756124679874921020373931076168944560004984243726788829894995333914594759656897083079567935858792457211373754600204291430556973783523911911634834419625772087365344880197486967501162275929520956218097144401233662178993320204839880888350599791806259857705929928314087393915406167574027847669314270453714999060301404895146566409800106913487083304049255174908672462157978756650091855973866158130432841992494157091490960414736287248585787406950829160805084517202301078519964278209709361402853517538597679873560159639013666422507375848505897667145135896937840880299611818971262736705597925207823670659354522317585662362677873955553516780867577209417594134242756141713043955034471228791608397388307846580705871786691648392244825983878798584769051776555678693444664419111108025107238525994517471652383824381059292949484076409600071862395025671727789884024585722696550704854243752660669443613882275284831550177391584229925647295098705643102030540345262848936017491962684438701352643021388393603467906939816678551136171456892551047971865373055321039450705988847055718679994020799709904307419900301827043582328460465148205933342097316627170406891148052713023838747095115385322432898619502805466265695061761981645003697650866041372532173812515247865830153800293827516325238866209475478157290897894308846506495760202536007826843906477903177570687137721230435427828245463082788570627817604100553213517283141683330801298437276031358712288689786477553350738097018854988274770013693298794320890085089681783063212397351947725475910525865859825548204286781125881985159766969759733510102890332091220998072117678693129485041342173578007678939092561601907695792262901738583630218875035555082083644693709714178433924499082790019464805759792406555516473935395626619888117900519523511903620644212910053021783401045487735257720006201191434949746172323635271800928007004714142059688625128105967974642124076304608630045688476182639154559551059627385384922765311295229394937426480165531639780140772855981660775239449018279236137174403117536764806205673971319571260641370409580944993137619422211297358321539613174324845735460338663999005059734703817088478795324242137246626235565039143364476015635146234821501316650977118464593973342674606608595857327125982576917050077080803421916618743131815481145441140462665381409748394791208735918007004879759394215780564149049250377595734739172107083272569406373096350676333753616867385051340704246066645531806608048526957999102245339748376750470324540986226387746210050654884202437004481348628840092453476946158898342515387791296090134427123701614857792718146362707010157152967082905808484847812306839297265006977846876905574812745736601237897501440042687750414924996031631538075995888057788606063093155935545373665079357556402624741412864026220689366066584615559762400954373888811088172243520611230190673574878477566596620379432545256287465898767501767773958859614747058265594845555947018616633795441183009366578411676092974825421811323911136266528595465244741347699542584648770994068920082770026858262797990872466042004012562293107670545996065869596630397475518253372358432603486523986949585283739051370473935713034573654848668105392536809599370402914291503947101722936014853638952582117715728408237438164794366981784276532150779765921411444083831376260550332476216353676861815182529640504997799665824957231553015215800808167638654114250721710286689400025442333642912811806089739413763438495702355338242720626302029175420511717353264627461993318265129787931700486756680458020652099743511402483881237155802835543108680250077730977926321579488349341375658874482809290105113978841416369764130296271816432034729845714914573821102281872795684887611320756742735884114752473047075476642456903295414350023875403477502193921252767897263752427028238316360666881775968282331919548353315800325819380472470349804464372487114513860753139381479938178033241834912044121939767349328560482299574867079263894512798348776939493202687254823144852518484754974551788616779279786441849759830003275829138619114331105302367711390983280365988525025908593262922410863876913140797760859605218966084178164686321819048209359539661711201665006639911741398279649378758022021463643523899807197678261967286632666152437019754532915656584874352752223886179886181937504240917388391911770563279929052621857025673652945700912410080884729879791918230989995466497187947610744549348231172912087141877298954031074811307398599966817700530030426535966185530120210495714236290227081992648243881579434982336035697072666641295873169292400806841981366636016490664300832951300528530148481001632594179136109683579967346959044498256463922066597170406690600487783292375956349505473416505476488159905205123846049612470088732703902984051660531822295712248406903042795816417849448458558772967708485350609088037176405851613520442182741189791281859064175704665199442164625408843075271943550283060013692869465322458967220664493869791531724581267486909000922249343983610101522345125332607762595828348095942536841768924008836406903034984594623947027119262311108399730619305135400380696477253629680216638270820230655713008775488065635932629960364278993186861339150128346507625888268204552404905383683257480707718405843777272774004618530801286065672050966780005436353347500786591332300591422480869616224650650133143982025704768941488734362299778197635289080321731150426782446643807057906364732591889905686739749046589041014790235715545752272604664617288407379945447600290916058228160745345499766428837588367314712313497759804079914448128630543209489978597103780320117186846916304855543967943032693322976367234323076701464647637819706249833437945710764710242982199627843597049279521117462670736558954917988128077221460117595149169363036808290190711018681137276265981772731284640529353681064491142292294163277868118036463506740087718909565815791948251775900924779362860712323583739546173773447499021171060095923661546161764498828859645720434429527143981355633165440904093162408186630394047506426816671978251489876367572263130642623411930178475735187209879175890130609077513061712333972200851698713199976491872710367013380884717448274462869372697838449511320552693334914070059941905180392094373108985544230219150582415329833070923707842939854392774019492891199855471432168587634991941885835245484939646756747208511150419942783998545799665907932033075459267117310484895928776225714930387762811227642171550313876919215229861313750584442474286330432906273429424420557974459357059220699786024271941545554859148176489673175504587526289675322958751904331743055789864546637617755308353588445403978930689950805945928244004789189486612049144520842372697889982108523573255884024641591206004913162411331788374753632335040174813343493902470291258735355724022375214141117104134601574054240079630859127691669959920549399256540948901999420046476413899631706108728983239069338533277046088247460413759061731517530224323778294690299107148149843682738770802952368959051032062957780111244435987853767782040585338248239491188301783893297725601896120432792137256327657667850852623219444391909047448789636378871937972221760248405869233480556224811651573538305941192973372340419849669319759700960579118744982884765047730568412196050746111192333404097496009006303895006507178389152863876761765383142381414048250301959527853611077520872356931370663016457275911270400551500665959856103115789507218292969678722454248794837703629398821030283897238781746356896455419906817718313598714876511077369038961647143086456316788644084985032954497239476815866501583724300603214337011893086567455524169791946013002436426016454242368407711118564676396486816368645632896000155600406537632337682004170263398440860877974043823321754930578338223005211652536868235918772997364711233601531585792290927978310263814015278064961248139736581672716650753037475844922123782441969951373078389318570313616531469022548610376802233658845085868837980630736348894425893606789667184342464238986318004336154385580997072306538099558764143245607014018445438576825754118379598042910210919488742254845906423330082061682117175195182074266520805558768289714986584462349954518963254975155049946740283840875788718352448790847983651031951919165413403056818607764309609208525320485169101226619855502811090506135197770991056413858553453080459499016567806373527716504069970562510375629524819997034142983168125372838707351165300399399685980778644812300842669407513091002820015220464569802995479241246939477957746247391164276032361794815600125363385691007084480096784128252797260058786784079788898490026490852532314352024828490761925791463431967926469586511277677924202705622615350057021438190194018864073463969453476153483527044119924894037051514546428769729547548756231452883944143107449328860516340078592025522823365437216019608925751842957539294630378367899671916156642583571075778247960609071642901026965125202604489948466414498068190177006929762172773599020132557568002211615060400720760410604007259697820015765785204090377659973286385337515146730202380836227341567478747000703614063792392775627883298611657447869952255300139756701015577600890431976957962121821265880228322692173593448926623165035310212709538374155818292095690598137831264652008006595565852636264089334363323231792746079622695133526462424050282175419750017098948824998455483411340579982382218363509516750251674436820207979018877959189161892402390772489484394517825347485504264825248735985690093921445823896041225994849835530275931707542078480745900451612860073877893794930756842472684262782145940416634421492052186356280647468570327667697825321855313957517909907612746451107942671650306395553485495760795929236574214298680221649194428708047945327344784369019070717525985509184650852550192343089271993702868923754454582110949260631133389192819724667826908384098715623203739743977138359106455680506235966121989163122839246106828970278723215354470981712587400555347173143298055933931089534502895563201877711842768080498040870966114625772095335016859662308118685586033124553751954070893849498242528348605353464826232844124527346300873498920001535887707492226499578185918154265153114117232472296842245623730496206423822871403224007015531950455294247377820876288592890769595817842732710155858299710641081715391919654750631588779894436136342967362403676483423701601731686067135758944868566305606683026989948352952972463927954028747907905150698395153448727914936202982910009448516040145258117993330727137487743163940608602936293690657209484599731450233141538575127142353421337749512946688217812046508522625996401588931828141379011736821939991111817049686934462944676378132894380900635034775098743482036766194948613703056964555654726017528621738305034021699561274225843424653295849757930096703981448195636845382276270497293714009710706260965579275016389281807487683054137442222841441664112726092058582601635828776374254277621105878738087144020562501869428582886623141746185745516416955483705111155331242750647937071617149004000747622389883559672530243876450371653870277714458429699889087427244277854025129043108692943802682065131848044275674823157026219295054961686763117712566774238482802482517664789481779514524575083029625508898582599756055778892258441277319661405668839390573787508673013864496757376826009122792928075136270380856286914231315955202708379129234086894869967976553439951957924615736299329774808034185157634573360688946529329576924478054720980355620179902832791832081211879479811875740206602474841967939351437057286717113142545254850666714271275369312904757304083102089454200402308047413148106560233540987089762625752923864866469008168158211329448495730764265749249372705168993045243641071015184277524208207353892871980440373804291053282118802388856743502475324153405787941202970955742489070158803179473257393244045315759098043324929492642986645184870768711136230470903586139631235693478093825212586206825807273234130085235762445013046609550833372710279780671660946736866104925934294429431258159599440453412822474099591623399774493660633512516220040537487637217928983598938604692529479168703875554847188083437403803670142940679796377842804048493331415957779687126465290884915154556408298121085686375875434931252723974231331683121854859788238242531145439063574244851452301269599151311064039349303027236866575220625493426842799137385942929000973975820168051624763177174398444961503610067630785739427272511753527352296291162625272218057769540068814357989660905000428231126282349735009069054939817501650643290745296868287595362502525830904048816309746683258822122006312964551051167272784539165908120919554392701218217744780160794160453169429832203881997838612122261373273627828371960113315665903749739853898590838050286874445553782783013574467729371136719612386612389073675647873956032789842234789420075874916750171632026203980649294381823888212346068932633413808537201940327449612458009853569021889118862384499192615346649820612098759404089381099426628643297057826411950824792337532860612733751252735103731232255161515327879942041524653366693146710599467660803846714014602764814638015716942175617294976309738328010914171178120793463574446982914124649970244267269971196231101041423987942986131563640083539017608969674235965497912877269928396891909523230679474087729822093921041040717137017602738514469771100935706642093019260351690597975076256640597466155329425808723376441728778202300844586818966007348287599432045093186466494618252332178620221671084887644278011064456430086020829839458371031151451996709014693220066334537998261751248292708480115631055280654889585385548799834210706360854682483277261857584090118017168629353290909881222556033744904984997256517585429379333766797167938775133763321442947356152952014819886709181738501112941275236335621130495234881785705949196818256522953435826040373741349777393843082705249984124556017779139261951074316955031232823942254892357777522309072134801805940168682936689370470779987171710515375001555706770112536851452737972514101896718565408417766750978215873551685526095001318740126657065257820617181168586626164361233491766732009687119596447406301610935948690080057490443027445886369912966913238343694051000814030355820746201749183177695985240285302229458946951737718056031282983540238272521750817686883515140623307950532024206910061730705997176948222473302782495205505879328714491738818359609952996216209500809495794173979462717543651597368724888236986304547671676880050638223528866447927998687614940859043030302695532569206517756044078788268593355820708628172839185121890643779426390717451152531116293185382710788964442950684958719586703357025298186824358934177344507231897076378429830953979644712517572709277794515503570885558938509779185702144971362689919513838246350080423376036292612868746901943834171131676062338586432908744530162630297048858347747943196276827205213148856563046482327435258423747842084428177801882904033454424710084175631061898692526911160409506232517415683676152652603170443359213604311444528669930339332890970313942207901642434340693973202172226638878590575499525020527281383227015483950744042866989191933530829445019522167179465943495189036137960096687890766950359209062123465191323548447079297765721117081642389626455210898985407503906327354466888026902930357732487532248689046016137571410058348088699356256607492522461406065110483288218611097504717651651381000315884914341260617003404206880712939230327228051787920412057164000947824133165507214604735573551666508215161387316319808145682952508452555556940694472186715748176902999711561367551952668715804852927702849665933712567470064828191240044860017312859403805647417181118598451537791455257995033034900994521607438407274838810815969996059001168523783270050421353989275202780985813864805261691952963117107616096757166231253917533319869045424908236636248019704106956722501700381466383451152470930111630099913819527179821365323984010425553552403852596707289470402277035462056767684958000597874941106281013510419416015960486469294279295241216451448842872653506057116221082652608193997824188593415027113230782899123094903922888179092891994371757121323159749549425149004779918746631234683939036653422988080527826143558234677117803940189018420603092244616188319833223715352670279205450752171710887890267027380726059175823015161557876900031125986386361683689678228485292658152101219108014174261261369517457785476327379827294437399233845098091233364913870573349688976262161819201999188816312705740689206831385947248517915322954885985811611136403381097836877719673240930470037062007559548599772117238692446748340396152510457938156346175492354576581737127745478738244436047334910165330373837333065688321562191772994691264675824956798629348606875525073890514394324751859570806419020415616941804452164008407601523882968311355093641819639623790392934128868443611185954434822975036200244303059065944964864721855899336933460189142564121034753675427985191454916081767192493830827610054167216954636460304354104957562001153285908807607735499729056585234576085178269637163194950852461126817935316003798795341741764117564788812050048684531058307002801093314501911266494501561953548223737233779870761864477079555772680937881772575490139304797011582251680149418462457177463424644746662311865363627735440287733017223205627069220795138986794786155997180037431063345406333524753161828961458173825169002827606424071396917961068920357908404514080983994503578830318851867391716730425386727881213919099929996582164720124929022237431274678835999524426860913448619469267844804120128431324968823691200240178853193378713674068118866331095944629779589335692286150176278495427265341595617410239973752878505882221877513444907867865059307722838146169869108181435276031708284273214840836001901505534474035510046221877436128695047707022316889712457012487272522097420474622514094236093418396003316213673389247460840945547891468650128210778222607565359573747196193541383361258816134031073984629566021681793268195004579108440800973308318189897020534050176179189116138490245148741448042104657191518448299143734960215011543624919671392102643282657360748543031407319301765097278259403785207061633754616395699386782206455297561685792465628168644209799286272942270268392015199875141041079711443742422075687666474476668055458236170153396041808558482272004474463239491534560952139165857235164120709081078107781081196896117018933646941583880120288379979854865037246368329016204422644343933408215533731667078265681807511695050361087171629911880858630723731313929681008083080982074547226836396543046178924985529158201396819776817680844973443854286531565497812166652136677706289539225730277032577974760666635711109385023676691470183194034489068390159065626834609800444550302301832435684798223801511846272225194289778976664506092979830840734997136686894245477654278252927510309637840730782735904686119670711225101295881358082566140621569564172805008711759898900182588769089778295720993130822850632718423334414178556693140864111408787389599460481024899255453227626510195284243084376528585429176272050048056146967381168803152101692563292916035988997098568893014210718730967094246228481117242973695005704734057161917933068729600082182183002684940764155008244520925832562515794674614726265595459619185143191109176855657083763646112690462349082096962691154517816085479566510958628408857456191160455455303319635749076653259953065185741782572022471279639918641998245022912581764748759426759067507897917999221195697511548686030254443296067696959158640252889342034978269383656602290175576842053201368392283100585841152506664696568740858004086380031438676757172987233624823328704339983207477567895562246684021200063909786110278788702725190916836813170551690681567594346326248812121751397128532684926700353936542023053853308013619553413930307623641404680181883693577761220541337942495132047983154415568514767775089385788867484888746107157203197548648953650401118644419328026330242681592817168391232634571101766344476956004239896239711628656690673821688002217619207938900175005672998612520180071182517017900349748314711432808657970129674672458187662647143315713539104155375390420663189328996088838391491585868642718551897245362770942108509281051565250390743426435802100243268508694862472517322497533814697706174707294046176059256778539391680721180861950793796263500685237422287441524596942797596617445058474375049089669243295828511841145112624107698144479845036897758949215137052177908824894687653894068042808145541529133370149361174671856288421638925085345009115657332455632325788556001246304001777455162930011013747449059970477332671094825624228874346198419156881733876753636293005860566745837055781829064304908447649985624900261877522295040380672304289547486074450757008563085985106601339479573755625914244064457760598056739115372955914846206463728141301096863011408553457234179042509873115157591979195108782962511441920394820104155085515554591609582923143431419566114138814767981527002831564798105515469489458328022348598203742472987026730607026934924102162045355528219326253607942591659250257618834450371275743414991875898370682052190816842922221656174745044290573238109402850642124925358089201232912322194618847183831729674361018760707242141110755308720370821844346165013083747275738955293979707877633143214334608390127228638948708793912630848277004214859892899579938362092353249789152902355099727208064818479315402677722523790505742719865617711925534705437752528441991493021588025986354356540274580258611202290199978316425968969915436397310571232671571847275772505418034466746887379755592623264562954280174261245643055553281374561433556276763175072096652277903428336573344332767554992648619042107583383857970912238269469153676588627624019422330340132795018995704536974406148225077575806424537967341574838061595849643579582036326118993175611975164643808223648563981022355208649398161098012515325557480388760520622581666733082368167098420237452741660885915372653617816781886044483260027364817948551848510570772838959278165946101411187894560453130427182608937813472586671342833359727497727962781525784885385391481362393518270701541225082370401902213767938676961909627185213022642117041549099272824794245009025669133705183951347761207084279136124219198536178063517307111510166229207879829383305724605827926878370522220571723233268809469904009950721714999203258118404287595713718594922482803139577855146327672496287939684304062119437255371943353508120680544512867430915333717916114140010501508581378008746962322924014464905420469052105027729556795706815327500026759598333528560185336483286807454652860757564310451272307498668343509588520747193826293588598570987305138080744479319132910434852409019614276736311413980923381797714281982121353856613219221458153308816059897618892063922360897257646815061168355103001863895349575123857351081662600272906223521400436376567400807070964719112775360411700824883072013523933471511646710414441264555245963360415645370469451494940402047509070769665033749194304569741421445045466215412597995044145708756690013085927944898656499711878875207224611986858829465597462451964362604454313796387482887939874326036345212708448909114862496707657128190170968861062665592204713859621616028226996311133872430281431349977593082532244953542219567475726114907823462551228032188116396303646419637400397913143561928649851536570343436888877016627877255404858648200752948410167837188481701803276826353246320009242009650691330069477960748300892471490120884873437505386594510984765815010644132711221694263225182150065562581272489881270420353616012299606654802673680176170005678330470321732962073513657369748385977489300099858998467994265269909622457289847433066662855489297172975011076955366790529995361975607683692261357791714278015921625855569426374246335917951953458871864924162087502138300606281364572969929738977313826400969836861905603249042197483922265333075604356591497406244060964289237523641466566184394208907153123810088247751329458657621777057193172264068665624618929256393366484333942281230569971099919288084958382300509245358999805604366490956528759381167842767418976516641543926797567642255299916204656078689869470148043835370193583459418254165348701151637512275986496310508781903344868082132902420009874701330493208168456985404852565939284640255415661872380473801934856903785459323204807894955563921794434488249199372909010103511070586138845977602494560656626802456371206017219647952682488301045440595806215526619290019064446022474583526061811712717266768640143033402185341128469245044645102901468326682637239507065986586297031166029628603517255163644852448838654599894259927679493988119120854368027939067151831482961978764068810246289421576610724554674725698734191173188010393888139522052167945576704537104624671771295945301656462855873721933895221026965338370547185209828309668772962466060474642633019814705684871740733938234554077906913262292112949320213063478628189444478326854007909758207876506837368538326337301473434982743201133087511856658283287449856663217868151621343491972800443159692084838446715271828869212159657687752194799948139465467248262601165957437527084247583819945643717075091979675963521487762725994008762187162604648613308235696596234330320573982313256015354941683260888197281887777453250215893043131267584380383878939750246996549153824385554884420398047787878486942906840514547569044201043825792656420404422781518845950343286967932969415424680661342476654345729777986104500657910501980832292386331975830641757615281907304181100671498949570650714927871299916148922379689204179448100487256461984561706184682217489261669195665039165777115453430737193441624592579744770469354449043388581619700281711672573567836925324290083534975580080231671049097783458077791796490949904639634742011185809223107049609522912871511919351331784813202852713233484440558807919421166042633368842298030849577115619105032907338243168335570450093286933338604638756913251650767310479410605563491307197270503030198172969870174167232424314581294508694237406741648115090317537696580500730592618726107533377357490273432104730923514952781867228938304326654881967423869807810724467088077704577404202399758412296558003269124509200171829508742249562873808449049609386563254390207693903076389622201168940486400744448064016619927072998848177413967229618677053026900910548257263218875050656956767982419187586896101712947473707747198468805600595309523217958799788127427300387376288936084464081216849186587293026898180786677365223568669326449553186212177945516201690906286731016979148975621639364143234277755839269196734029358986910996514481777598549440352611050281693625360239726221144147763033810313567951569103214223313671616387768199386018706604637291250096597788405599682387760230550272107361252675087568872078111066178380853647715429717074630143937607992606467534243341854366507091402865026166152987019306622535348256866749744333233335482537462632885333468211558124304876684420940977859892352112434815108219369770189512889521915387784045537554609034783245090996209912321761071929463560174419046020797867304561502023348633811804039481059325965707923968307004452734609760229940171365288048277529035393431536520841753332981679923912927811995385203806454257349910138715465560520633200053954436991014995381042883733257642008614085579982236237694133133568491875657423509076007836439422569658949879759569787283158553646894631661221425302759277696438209804769309097766527759398074294149264887287961151496648538373604223294809625196636450598822285759086223403853389303211441903790864940362851783988777027849881337276442665513492986218294140546326503974731754766668828939324020590850431402720230637752378669259532673191154438118613708720538024345601807703980822146950274764440526265275409229256822382689917370506990792863136115160312629061480069596793039788131727324727426891982019907195229002735728706637831261568410061007017773957988759677125832042554160625895487822390155077189110340861983142425267931314627025176846959113168905947765309196881055099558388317489468050699002380556008344905188182647706964909750553081711708562876231504578415013337780379856144750720771903816790224267321351912045571787764979095368689044861621327666852624996362082871153437069327654686094157517018499382148865541832281889184389357754640045897140191530306320978528726701384262339842037022816012243921930441939574626793659109640293893868667583428271322259454670013861475310117894720823690909553037715812370668841465748045812854171811141681941247634223651511573755607033889101322356926188413376572750672610788403458196973116236217761981162092878304092626326672285219617604795510627449245806340160348806172474205290141305899247761402718824110657294023753845564232599360489698046750681457176114940539608981544861408937205755156819976837683970684341521340677513745844229121685771373798750035245584591077127998138500460410729666251172098617149837949529438106311181350570585402373588887747880931939795016451535759378713643143916632494699436626745419958881244824957716489719109376859602549488975763118435463691811476078394462427101383415287413876112674157602172346938813361907878415165225990428946522441170349016817829497939720526418908687472441053609475633774590335553327515644475665401426465134518824693329146579972311114863703066695839640690620899316260510842075661402300359262050726112993110373384254771324739197190357609929361722982136534246228434324501803993043411512661842737108113929244739309290148220676716790104190356941551618120129934190698689537240948053671513816313928082176571106845870298739116389319176411924429433380902901457775711299174993779385112334221623252513173120955804569817184823118758536376177381535376096407121080048165198994769692840397020643668386676005358591706456532243527175512681120613704208138201688355826125681682148528886206641775813112921147211445092791210726885075226236580816683048958417620828969017908602706971877556659925860374441319636574370381223742307664676803796150921934872152388852646189156023502076822538019026922697822202660340034336292325892908158240825728509852686685351368985116613165880066500723436557095607778036784906020127920075516236189788962422631576635375636718683347995141881397901931001310280770540449787055617634145309761240908764673822559851859230801711733681350749553292907515877132257719692952528127564976229137466068827282113258980807609467314955257287102130335786923904860518025503493670740670003460909082223905852758724249583330049924269091004174955894661641553824496375777932320054734338891999966893447642626955128188819402370197303328103975660966123144842885166987700773647005574681435126383703802268195981396956022186552946095413879182753006736593533456174214694411098627112174994185547741047460765807541690736212599240380096519348419774324560979635119325832732356939961705285756872240928820993003401496125180708710567086444298231466918107843825622290308768744578005022023321045465393784285663389227378624652719731119431151343411846118204975997532393193101796933927958672123787760100736922059319269313244613436510560408110528657068070345911094861224375960689499758851307962293693097845128619382244884017703611940223305225066280237216355782853822343378084568273041778425322054548147375849135285823342129853528671595147053321053167763071169813981728392137450211931291231498029315194999607354435136046133234771749038203751202866183678075444673611711035973613333807186438959709140296560570974256084432051478476814392590238457196936739753455620279355622067290167615977880527836738147169658541246120098483914034959516443007301584134148912958566138480210202594958140502997504735396922272084575693511389887834955315307895168753029085447532870397462562268774057048695859099965544675164330073946910993137413445364845946109757371010966055863961440772379490495374773848220730480866937024755927971858608607989047748070486415242379043666633770644364759873543362349611696250721388928477872378043014243422516270581614284650619771728793131492689734536774351722914665205490300614788068095636580594272283079074167377598656775279322610579536838696333047952286930213559423138976668306124312977153585658218027046737182372874043859885749683260377127322979540433664876174695962487491365589604687579948244182964346185523460161169023459070169330160471946873595705861176796551720655686944636818454835459587809148253202782146377616719522266782021146007182330358388621916474299029824022800780629333403899104846834986496835340118353430022417477897034802018057013278369599654627470675173788171674943437655420514406050117038907304675082928981200688517198516464110880840445650561252418280894146757763600484176859583050761263174764993155084968497382568557062020845321933529047166194184448416566845813285976277071522363630603664195092170280100588862732152714352552249462904563014912673194099302083312428977039899418423530916019742145441531134879464162694865415239428956213888037986988105050213099501852856381248520345983289651097719614489965441422467426893226551946273814457164284734741122223787261251094482661084617739150810721264931617809079923365462318535543936587959326305137534697480132958027937758216545330057255836072028799592901193998005368320501957619430405061357979051073523987457186275793406212404265395649800319473147431094790486521035914126696894807459687248589687544693040715737834430450956005660974037603623556698351595315266079277515711800771363536294187628626125837012795925847833573308930614984572375135060464930658895165052848280885882948946498290013509666450177655636102049523449343287584383428014495441096448580340256921220779666110441690724290745362470181693394316737146393195554117157725375699413240198546145064719172116841912877496994669569837578088321469871131735671136524547017379493413260694203926554267035005479004557585207669498920063980045006472382238091587317969886277828618964976227103043323393873151364707426604262520275535550778520825444187070244171019567826697542755645836831430720342465773119532859315444120227035673498077209321328272035640073419042197627236676311865658932413491792644957022978050373730229595716439872554188625685914229486490455627179604843733727893358365014775353149880361766318844942374584477571741421811013832809941795017507990164812876998285645194534518131698887127426092037432791559519682077569048829095283640182563576902800899852747488355318700256014296762940830185216703244455515556780348030826373424721263520811513801066275558328051359490153792734070073970658145226911062276160041502775977883483715838534395968070654485109703215563330373051964045795604926585241261932935381627599774062335088064167954993267435420528032651370303169613480384778245463207055976313678300908324014812573044115640220119821133975602053213669721349986796883644739457195971233336291255498515462681743134860530386339810677544608165260540291469484589073736701540306039744118954591093925721814418230088096543561345148812804746627327584748869942029534522939531870487977387011610645454040454327598473920721116972899772604166009477810090909867815922329282441051437585936145312786308433376793519702202233265371949499154824733031295658374731653968773832461845114245328914661688988322303224276714565088463739342922054677352120245120802468481486350564996507103172112602504379336443850182507015186741350461316973429512622438628489971293856288465266272539129279505236567365270841018055454395889573487189608159338421508688789574259954565077942655423028465626497117700925824114918752654607837375968980256268582680463650474236225967474006728325198257703448065834492905544558903116583764441732992151872218848063582404233695467764717560918340206359304310925164108929145947886008004265510344234934033902559799628609268690247462444796531437116898305217037863504399558456107353427914488605005273867013287980796796170561977305276096564305258199917554602998326916245011775984882573696830637668612305618391803322668420318022719916381968264389454125631866804724281572196706737496125217580255547110637007957738755327912713245975821535804294633623078983685421376093763679976702273972410812282739477770981642374688611692813978099534461516292163490762778772476901237927032437381476330662291671553680221029790057312601394052575698238442826129725778588957717831625521422505443193326625347359240485137155582481003730026757683362692315313778215060994502112361951755472944319503918019919846971821651983293930950379916007002174891840804920976354633778721262416690492136592907325201490802746089201276170257686294455290300933588732585279312977273513596354412573263115193120228696798676912407939621800736169247326017472766384272208763971738382725113482177219775300467192672162374271763512116506173934297399954145751433163940839357209346357092724108283663818233767745656347450074660301629824502768224313255624569430802880650057974887634588445154906449366692225082596044803319392058970563997795033097770764031528758001148602234277331279413180475318213534159644634522077142039278635768291072980920436727164426056859138280234858655349360540693765841664777102731407255372355709338742016120029971380098398979806998166927217032538152119566547940143832029813400242446087159086392808885219210999966013710889397242908126074230508002147148416232752387027971134779789076980792192124840018644379436625687816009679116031710631562391358019696193731036872934640244804366922666205982734115626820984858801413091973362583092504988337767617354183988483087491870573938632484308546218408184021753139595825009682843770243427883802861139494716437649936755371320536117921159284476083715124299842383135190751173564956040577585895981454022514657165967245859025291833154989627440793773701073375553727336906551885714675857883577829320235925218405601252477235288141614884764305455686357261021715728241472929533028196411031514513635197401567486235640268916354368003478370184553944221796083648823731652313644553772147716592040997635717507983321468743874557184622017269744986076044388264377159039641040781933781413325025409656050877151576457620510849794683254181619550639424760687259189830162199351767607278439310039806423133706635508752651694424480302633082373616905404996352881275254066277764539462061463443397479800044282416573188019854897017432685252489817681591565801878315806162690138119165180789454237556919361451376610798563016460585328550019200656760248343502624097717915614061059159604775361709207128367070428201409331670874063764196649681656936761738844845240074025593968020225408181904536630737948191976262342615760363356027108243250307868164291814248558431370345959367930273318618864002520242495564897283673728526843936926672338642791743525125534608139303054198281533134038403431160895156746617745458085645265535297406305424929422367129590929081707864787569309180108940173304175597992354970046365918911100495379157750218957231099123252065383297368361219452973631756408493104294748510458526969797138942652460090851282784826098318537350010683841243325544374205082029389965556026707195562517857004335429237560828608802583070135334700681769745373289922358318382415916244661601527944342909357394939460744882580980227744176110117962354605242329999187359966194840621267838070077034513762308977696827416597529144624335904454405344920607939834876312276640408938211084531576912208430401560339162794097086604625775571421673121988568905584289744758630829597409016898659480164024695014057522058642770418307655124405477250526155867949852756547559377240559892837537809317554660204034702141206678298121554511756685896936019511760331171585487660240609446132040786051430159459770641642328446207061660488891050667598043571069139033747627956008199605394888708261688724975901438524743505006497173731144638508388946028123655188838557659805925644772879088969986759071831068734370577952250215434219223412749216204547886258808120351426460500942817103944819935613525877220001375359144273217592619677109547770479219452044549566640029639088803090673579784331266361552437513612816787464964303459968017920757658519859854328580958578727846266872184573454565538056434065246418884642659283533655942354479538524087485893292082065807225125245341105352873064407622284265041612675694060125960455471006487533585445603186713219753601900287823604694890586817517372902752786243570326550858385660854501467279688425427733871074342133414230134054856077294314009172400324039608757838818924835440426712945574649704812757809417802078311153446032156063548797627126162490135952465174418477674799556715761305251960092240625639300519956884197444795398722095042594585573301189351757100445000889931813372628696679694725559096230563096675756083491869123274113632526124181258038121225709097925862866636397528996385381565694269435616168400400705229498180372385435334711740914832436483094026025923033421007511100366001961345919348998091885352090755574774012033467535334450582518657101049087908444784703355595786554159687206442233352907579425687211180745039208069438612274985197059200508913129927894013084927639917716661531193728818128958560737741006197700639466540268727164704424720122096312058839799964857393474786816076599373272587873683278760560373714966123684201038741257119553208990150970628056140147634432134523190673745840294860003741653517457901247537682982344399086680394091463827195912399374678687309180750064031370436729553655567319068735101276644256893434203594486229869530708452238658228772079940598530238171551685518563107354245526193995859030326441971689770904166082780416838194232469928746709026820183475126443465183712848990356314341855815874371568050043105453489082834459838765510963053296200864884304460818820535667551171656839280941692466074815679842053648153554615387168539683059314217920834601125123570096083566817581057128099114732788613184518695041011335889902759406560435689036463851695783876340005828392540619874937504412180034552782952285724129207189434873027162637132463807046966578083933237604525523858456062076303548235331742771837621818326783958367628073891730454383156797130669617257814487156411584520023978760197475823639886374818847692599572243454268362437287220758073882373849539883735901072676485992203888309030674823639542520205674206924445975012322257606865780219009591445913979330762652821278309469455882239490866040572928258982073802610664142665052738963795442597834999399840881458669261268237865718284894473160758957217267457376364915780868452954812774317241932216173799249530914433460806296799966156036565742569533083336203668237139714988338448841909419966122504790869001780219460518182878067072233282774418062613725974263858094642106602071024084985121621193699006181202401612491867280120014761597298473202798642728040162746969439168258497021113906539946236902556724325622118042990621702334238408799419707433391710531554284405517875100208999604821551245443271201895276696849906812100734510818181071279933818732373814616847959288737656823944680704367437936164915084164305295828878755490379279380454409461493613711791526441102004011977194470801182928902039775328096814698603693118509422643051790985608984362983570585963444855820593962847709036718537081406133628012098500713910024699179092673384581396341611052412046170446979707162315806992233268625400474804999816192658050225531995077527893158384270416367289010364210487936264169585101782016533400790354512091451798260519390801062694605582328138040177037891144967961396105583745782477220480398516012755308745489424529797167439044086888816408968868232497336706166147325342502446714774653630440627491037113374004288961523563797115823295701895207887315923924638607875317715352876407584617344111186372334483578100563583351327896550317512076714201673024492829113648822750505141805402698108016675252579775230707815992037733907019869021822027265592035864973144804145750871263200969290203196233249490437025361282673607949073767445155861437511206287554730083062881750102935094407640257468388756231917126840476254113365343969347610700927827789191144392810275925442606025822819938117512036224077143894732775496433534012862926206991961329074432759125892628905904804976292145716398525801606333350854460413933087334016295431084849333650153762218966909909815467663603426888285174278407306037600635787094798026285146524742038437484138340206127288690613022616755758341697022888542869298835961903108079016317452197185603394068532651326394776174328207695105624390072978135131579117423621858966406469949486627023077211610102365094264555552972895779744722866201164563172582465459861045280006281383531623320433903608897155668008948796591057548267547568755344553284341953101503980803629049957435795095017104598834917829096899435643602100542804656213199077658229912309228151559590041865326077424523122437818269590000656129643268199276307514471494893524806459172243602174124426384692542143980690492239492055950801207571283120308981315149191538121345645674111522020085963327810143697524836244841302167000638193330342618575286483109728680430185362576913555878756743755126932941316474248065098021444588497556478829532585060262610688517070383234692200938433374429964821322556090660728471470487588527188694362364918755598305334439895056822895926710538477466112835818647011499729876905277397076385482990648059775429486122370868859708828501743454090563435941300457873664366995581089519217847452642824732944148072462593408675097496785680532779179468020730247819244950254322025208163789737432031362342849629025052272890994606669398120094781445251198265444460189689693986201129837003448325746091207358115683065537343195939460047336627013039797905521787048727926464992461708414320584767621041019130969417798065999303743733247411158413247090006669022397364387534291579125319353161640159144043226979194982695145584358702542234299349890957578663589802941353886853464884131402826120598502705803048663677197040705877908482831637272246994653461991314531063464809339755980804819457140739367755697354710791560873179902781361605435060420020162888865643289650920880555430195669960025620587523158335481216821640694715597231052045444617959398490464073680468736048691145991806157670206135415912727427598258869994570135272727728115653604802228772370255584182837961036502579149572960242047377021098101797593121351728520922035478114553876771884904164773977502213757050474011484165522667923399488298142001318807515326493491794092755700843230576575863956943846818536016206260607694580482749000475853026972267199087565532970021166378985753164578606816975525434253220321862465493186402818200646472410006917428574446408162765097391230195733050557630166654145092793403135606345191706790675523014826922448355183891961435564509982224371644428911511568581604960610963097826919484448638305930313140644688350809811530086729155903662799162592852840469010483679343981246886114451999791984673174070011451249121008011985231479832837983964560616484472999491855696403128875543384244751488927852081200714452255549533402073026595878967408784638761593176104639607618260242565994562838895084512494505547981420397912632416624385146196766254598575832394846029650548381214430452540439505223521157202462507765817217586335227794177773734573062456074469615253768071186946097586724097980509303411487777200450603874624323128563643016597101026757029483002324903585175915194794795066343333132604425325052521165861973516606687429999375305856837389141008809003210666887721038391175294598396272926346783089031566948230623152905240406354046779205123884666040510203280828247742114466637389007974996583499373676756513406091060618417704561846302693111120317553387766460561733165408642945485315391394546174348809792134187187815372634694224301028121373545789925035737105781184011751948419378340170633054530636851252649935209828001651712429044166932528969448662308383935360528614116203483457771612141798074918207540143055294993551041137073455665670588822102165171076915249310619745987713601476333808783967440916624952586494614023184717093633979331225013704737345081652267369439787943360170292702097438528258896769255735551103570471448142753349896817085264444129119518550078354021268035593975912503790954442533384698904450788905565882692618604567486587273897745773348131366876173696711349404128532681692633264144549618010980053470174099315319661753478550663317140222263150449822742713977194983651390911700777258649372471476679912530611752550222601047626086687927031645900527505386565322997027021532550533461691967445532805563949142020740720421097918305285030747926571712855207453326250233704927125342087612780215043413322038067037069145542194506174933270427067263507443616269235412532317119988545975420408982352306430898884934752532976110203967939558620431518791559058620420573320294572705650164983189657471208872870123248043840177946562348722040726654847859859870969851207445007323051079897054430697747846458088978325801946673624941814692262277826895160546427293830116747883164770264253971832269464492929575149516741966049190105706331905832158762553640920048478391263281786368456696574027760971362166407528307773709920247990272377273601068543845111879245678978888262040828864823936599710091100119373846712495234402996180661824627791732457453167192564058871316928066998376533420132227039597616839055814614700176056321276400361446420157476093879721485275953740761863165418731715986338803506097533086200024427038763334819848229221178827624257224532263415489382866722697838457433735364480975399043660133529161446882752166688578680622665611649097141071611611438327010335823253213168430035353021508573172155570804162377466435737412613417845038906359800518118673690069013862040672840539962525063755068701651998767880571529887929054424106872671614102636788253826010625619466545791626387190137062620420978453719825757173479155241557492367222917454008869466212525929059033782080758486618394503754751317217907838474744483806963950210692756208981508151980058450072240081043900789582878837825655121109149213771120272525542650988243819853545200696684969608838247433036827808983783816394901938619848201508059704463088292037526674164708462800687791973372840220443552536835509637680439089718246768064728386312207644572249688143381135408191747384077529313504465697167884480506123480144631992743728350462109691066852049238486244539355259731687894905675064579859166493129158459585690771863890092143981128267097374524202565650215404827838334204999596836437276852446868696612716940111543065191722653727087219957297456155619297893763190953537638633317313106843993541809051993843537441130079087135513129834232162427411824950546455872019199026830574306677636620591884830466307640235264307569881499182427886328917825156553798250147931953491255108586562289881181857360639216683378987828547388611327252423247654709025970574610175892084488340212231422844624201632160189098013729665422249043793600557323566869491071445472045620114635373881084498972056986444871736878327874304130167272397902149999542067371662000250683706095881430080078066761671799707722788571877841258266093831872896412968435352321042250291089520472269606688381163605357685269273737608026479264592596711844101562806132808613213096535717492973818183515736132738429937463770285545708130923279016829997821675637583487920183190353845437324483409985415174243902249056492718793692599045418456761825930469464814958106033112866294459650967205189097705976766127889517734236394309177758615862599488011377634007881536857173435964632258499165619374541089765821216624372226317441603132542190093765211993483298127361001827758642413555608404557137112663097361574562047610861390757077641856058746287051836568368837224500844344172446579021980791354881750221540435195532950216106960219620410784470866354974635653317067330306321567574220987907098850693405315902031830282905209420908389856199751770728249898374034547996390875481035553118785461265909875855446020142765408733676939023575804302550303206902040412569219020125633592271906032844336372697932529835477760971490263893668729506822381316352304912415785764772208697788696132360889426684786203788453976156476902980215596865587097690959776785402008088141710400271837856771956768067078616666225552101760172550433430371830925036993552420814309344284226219617248015548991670646333549955375398710176545047473436897653452313063273799627596123016207739049192065999521951978734271398432715590927115653191353104669342401517449127790654657516985387933974390996770385698947754141583163557687379834931093874438134038093960652526353414108088610624299578540845798232307456577821656412917917056210928233856602673557797695279865472857968360194352443041085770371199894924274970981981093593703143052166406149605146680770444587972665285049240999847489802441985912328780482952059575301887797188430363529321092850463104256543534924461559868844256555899532152901483988815451320871996642396014014410009785531723477655840312353139555744765987259714138361813441569708902458763065091469664562146620534940671930097025230272185024983739494217566934832509029498144978610270951684603780666995732218200509763903152245828066801870428235511182580690089344129476803707922813208415837677450850091138436096912108032307017933575526772950644208124922097536078023300492677806620480722934062460550687908411662597447262186459702020098174856769345831462943966777740753444705120283711300351661740982866525766086137074475412968855617431297424947795629150910522586480038546526592733182852145513918674221818445309933157140835445475823074309375291987280614144002480522367890448042100098359941265823611672349699128234420659638852558701564184334011029665611429885507488033443333228887550103518236498590006707989809310287447721041763290717017135566197158814254221138350761296944661921691358154455853280639514973228296503491218964797286018320751060412164982685477504279158321287832232146623322458499452643507143619825366720333077282143862098945748411197869006100210929124326266057258967000153899055325990763818815748822298215582678216079260428908330826198776191080152519702636284947598280467815726373012061538326723773939832964792781755242170787747740437389653342309675651137950624774157698323981082973537298330932995436723071234031237783293033225506160837318222585569211307902154579250096590545262200086087929626678260996151778767932422496623161619744843016459871212318687251771006838010081715447388897375412039435474930003630759655770335017711419678281584573170823185909883958612392799682311432334595621973296099858481902045850646028947800624908911857665550152408575295626025291135053335643466588726165155563051998465194146167817150250868856393938383650203317989276730463644547767591186025562210736773862948642508386605766837080196537197025959315297330491850328946151196969979522179071276673685598293786245166580753768856629976423831740501729894553863650445761458849279111916910100207346376902348050909253508090286973822270830954793284909871213632752138299358860419142949469619163797144565605928224368156687052385853548320698988760031894865702854042627499949169341143271283851195970007258283952958204945332414964302696353708089550456945040894688391856934031765250021268115308230369213729968696890078224755198596360471323038294161765321108091953052378649966950583786527195754526750030098074479528160988416260141892433517618884717431198449683666157968172605965416586044113820742329081669026201842820439309522578037365370974465925012237890604257961135979867099380776361396728125541107119383007544783084072860000417262884908003996179784877253418184879924308672605634475412198166373738781916286313703411956153259793110157458213484181343767698665803378491512382470256616961252596907244166546023308188919972172741014727673241876980526139562834491984801953592564890814081125304547420396913278153492571970434724642280408474004049138536017370330901077982354365448094979300852756704008589636979776145905649237636520282379951791773003609321412770109932229245682372885377951506294743268874698236478286755168616593943986380865472018988355938223046314880878160911329145857307594829839629292849376468213036538047677144763410757609120815117187988065581477682464053165538178097016175486807364910223213032837415587766646139199785655581469638073422165833807534702844062815914147994753653592693885452075910316210398415164925920263413225131330462247332322679461136173780446952760199349244094285509334856175165450750364117201153107678553251391113638875743435178188202912584138351295516179304425288456451693083235007004853102180588582207439517036505508516892506447940041010028533552043984361277883852444809562491724831895384613432339504107047853232053557815012988554704423603486662372986671232937298063745400781063838202329528180635881631601182739848829080252891676941492381531149613356789321880548373301094352639531592897259972340831327259796026928453145877994442047368252748825002588241226386690687089291705628478688823956038445783125821627759237912147951510916958837571188075056443979356343552535764723514814210365750900118661296351132124345598851867701403585483586333291647886909392569727075551433197669055602956461605996758433075560217531366725839180272339167173132840286137290376027758063409098247671675121769022740405898407410725864508149356199969578581114661493169009063968955735925122472730174655790543268291942233762474568759785674439414046221267687141192856951845584598140886325972310246288247802872285188636980291041950809364777507429974680243179205660307472085870704402058703984153843750537987880059026030156667517257173104308536745956324202626465528012719041238243433918048230118238826477546895010829857204536621864927084241534467983112530226293913175432453300620920878321942345327456075692787265116535522355162185774145120541005756894168298771267150284821359165205796794664496110227244907414102247482040883297705047647809141107792642375301640773721029237985247940302707288841193211240903951596374626518888845313935301182424015251116629996114820170132338693290502551513993013212638131230207767919503031228601254333062371787997223212970495132110956056965183730902265661738462241477000139441893766022462524117045422972201148457948871791073784312866361041679059100946012188711491453793846986917179020720226477541700251337356471054373667297004100152071332663420902890438962831191084564530513379644322878018085962690056400057895324878764183405970363115773469865235521556061029702954996509168576134697756226276066220338555119221286255290216043383451757816421243315892407531432347667428428451222719027265208051808084869333501777948750879628913463996997589639890086369032040827220363540028000399763272508131726527205419921309110944496960603041573921016441886713827790852350576707609787134708905550280126622307185680394720706655619376744272084914520454360665935728588388738492633979259797775237416970256799200901260987214828729073389873485210702797200444863971729189934776498592135502719692309638893681807256414661224998785773161291083461400820980807188681229212696461650625796170012270168374173005497736885997761804701656800742893156036859008166147682148798649227891338214850790271714746418202667224413707551759609235498588094141518224771118779876688094732179454735753116644191103898962239986663958669468681614674030955491649276485470989023260855981902631602885733947384965298028278762178259533521014164191851416930680023811686087359139319676825679989279546916601337712285677211659644185503512985717464691596708719967057123052933834926350135005844593799952423599397035983829412498246711875999111148902898652175607781031304554492958582813972395767661052485846929492461697632534982104426564796240343870197942630261100117085281077077264588355717623228785783709679778128224887683234028666535425491656123490227049728508542089015914709967179330262696022744238861011797126425688410348960929728762058396076653417369133213917076534573556963955267571367055852031768657500308861255222946507489550215907095630085845095648592150365386283573297229139711486012853034549438492491107142517122115438125384541815026055602540952792477640912497720090618694037748340965551969132456424067074167757365964621511271880924527269850022083122715578598405510402187064414814576272464851842336028549504143869437210325351373605337997293806042507885963615461731673057527916201627215228675097046679867541275669102978818176424964162397717192303068941564716942714407017960834664390173378956584347895312687075189569560876302570147463861197478604026266498123194655327903155202613546191379935110049968147449299376315978374816379535507095403207470510689115148213555387281324954765111261571625334963083776387041223535905297133789692159031111635995684514603311764961843462788142929602772431820489789290924437640609956597722015734270018413640143755315725535708488625177262637553224952614900560101918575294729512497108040729695272115875055779526584555930445424024947352576287106970522371115043638168057117150122690476150975536186944572315191551000664145525517456160288536744401842135961039470640160677992714287043914057772886478044711221452941310120003964752124655554701588107890806198057322245490540370590408249069483120781843521125668179402927686731394348429013297717934644445651500343111076220844955290355028675177172111476138463567949652190643343366740245473362809968518710003260920398125464321750313418773634827670907904624449731836518110788586387888324519358979161686701844891750721068636440201347096253153384388668617956029717470801573052264064788616451215241044997726290835799241116049488092243586498200990467755526020804111308971513047916653122410137308736509674576610434674857214310434778682763864452710512253390062805540043545730581036063807413417579500045365945383869258041138751270472984628073174603032721258405965777827479668784649046395072977849843824313524386994321917548355221392123376960392764754382468131600362933177691240501484032438620128531853480232772079475857226672081339322981917719771925313926644786841105668136276973292628382527740063179265260255110490912736372846721057849619276659594312512126669862293919557823738254997323203973845444779207745441775165313463268776888667962853057219415237573827584142901735055732150183649989904345994588065267675376120891109200604775231631957471070750625253987771250990856301109334329095191590360859424472121176234607384751789775822954445564418462777635706899728624380718149000006525995215019270851329499673007826091081960886450046971099855816272847308754843267870446005595966099046436453215239574075789292276273948862387358534311543749346656974174068845524986682408170032578568158870543854959872373481315375607686043980002662988360658388975993219810206640171264924550435159095663158200718693242413987849787296152225735880438732267089135663303483686227094626284552063974413191007413290077700092275502907824651359865595566677484899203061926412434868237642885483614672199989886263966866048959368855514772162727674506669830269770264167498726628785117513567196238641957212647524442847128136033894976322684323612943651298143478103829366914880553827358534731295310489311166187172906178447178327809873051375970072791160280385306206914309962841148417581775849243564104087358416682927916924792555870302290432017952196351084087643293344943747063683193308482974134657245257309404482399856431547338457110636988124757443440612157133080431170944094063214776202928518809791831778607305104629285616863688825568297743117799612026689698003781099032629363557527129168608744198783266950456694400433954175139357775416315268512659224251988669412212710084532646895272840186442177090553382683884235640541040935327480735534358417600180327928788594654851805375537136401487379706790471763099611520196155734430342073798155422362174473920933618397710385614030559223951476589657877483121536158768215183410146142357776088174217962327275125456446766423684296447066722521849084563627253321879801019039395554535856938495683795666658364480484695933843943288731340790177404427731851655063110700246294029860618633531467636684297983035352034043450310530104806474696594633572883580590808871924761201745675080202000406766221971386106363735114856274754434589119166248491111382325719470668511427688859211982931711445236273938493330909702963284161588555002683570154976790735562744113278830185178852666073843937330395817142936298106820873771376209428488873839419518918680463702907004871589226227832351247603847966003135230275676094545127971031947841060816720057092261201152166810909529249290414656947894742915245053076987933975992234367382456600009871850169322193791616043491085994082125354259376136460586555687529551609996808885864297700982754576960894427152848896093161055664685737506007134546994120040386434758979235433176905604266832292682109734802381799669118960715070135774243722210314116997228308316520167965633305751656183908767663023348801897776250570684958501912436425331578645059535147399489225610382765775320936584875375946492006403779780592300681243179149021240282130972680929147605875718924634048769392218006169071687754729629450312628249145847611607828250984175689902858976434568684313692028298018635643865555052004268786274517853394639173603200410186152527715819805279231246311507576383012006416876875274005219199384506698634102292327916556879022200311326712770519333397717410160725332260871826872167156848705672851906599397040321271209851318542050150474523153963746498500740453953209669591977009527684233873971920392913515561830008402380623228985874377308218253823522346333118723480234288529572549281337993164417554192285344661917752405307027588012910639122814147238610784896763583732801042375075952547174499776178008464616319528526160607108993850266534906081827243029888304641532929269486621294775628590563863807760560636614288170608486395359359672274354004478794527472597879375407646031958868177778097265219673338788289018979249264123562316348690293752085192371400739756613952832471526104508816060264026173462252710494226839344454629126372874882474503348138352228708015163184784771441252996594750465861922549753674423330774942775426493889013972178624106509527860643163988846907337141467764481139887545633771162670992407802595998020957147014016523145919010558671039093200045925616557256636821723493691428502573783545141143464343214281633662960265492399492996647995190299749405830067989293776372616947386138283776719377090954919847545516821946304663776315461582753565224151956301979131947953320568212284706320675163595757001653253201602165550293744962559121505682980834676457062530128688661943412433418628534821579958333283878495388759903552259437655904956635847293010888270523564205159454724616362972563671311772158325039738019412427945765800065167131518225404594853683800635828262336886834087353386317999834321737544812226471144233286670525306667672252219535128333809758352390977668822036105857666380398550457587009685999023603795651295713414999762340139740978948502335345962677259775886306276490360545390926176219623318644379726662490178488266762009997243635298223488799441460091782811832309890386902622222314951266810857487126076046182037466460388597957911697329497570976725231587321730833878768547300784859303478909710649946176290675634082380050063995898495871011999019818610418215652762618321313674383663503573997129520278165378274619780360993991199168678644019686938524970019403874260270280491868121823197994460328469254909884409342283858688544257553664359335686657839864273089490266975110180930748676941679928942602647673915511940175754787554036827199676009915695541127585352892851337063170604243492237555003038771381693396667770331917583193901784974846894851925545379576024859586844007490712524143552170638951496958428173695768282053410595647508962707951903279575542112497441879120431659727208482245784920612946916059357114199223089587689671393738740326252078475006410029201817655584913950219434453366143827780087316969442765526477593168310733639738392676852967367956561081528316214491577140780885357256048806263122960119617447757336661779470304137943176319777657447097767523078062451774354482861268975651791794804864145572402435475825107822369561414587566109926679421954653191118996695209974654240084286430288185179705084362610154030927658968297591140853557363921821706167255090736102685142527529597471033297669979914074109192381167866525235498313616977451178174209115198753851116899961380910369903954741104901798607005066645712743724304178265663508968888556140186975847329463740844053845251265054809720283534256845051454810601688863236289349452327278837485866619413223660808665868383983772108535439858687458157890281627347938299553540703333321523125378632201179696462667179779351884901229603009470371504543992858084620493199729148561839716930417183892657175467919333701454461664821777568114784373259572338508615304915800742484780894457978179415539654918371622231555349077599974717100542217777433916456012877868273606395015211924325081248353044653512063515639288078436645973179988132928007129457335479475185542086080888449767780952201511440571813096530791590071218979261911239201785844163704473336161885278810400359003488233266676894360944878716122164187491997172977240881412621090122498291268064775491779481543257647737923439018359430608265040900999627810668437437812975559050845474478644894667288870759597725673792226031990718307296241795588191023946373640599509688490288737668602655520875116615771994774291716239196092332763337408816861861959340283812891290694813333515293150586298899527318289229076388139410659592644265314738225009631496650606593723323299969190696452566474592683036777357527882439120771852557718828886263989755527894017248291039252513639563254096138072479321141251759200635624348488080605829880264359833376885510953453125224198785855202806744300346798802767243541452795176483263609780665745885626380396934884155022125942008549707301870021905289214026713300097444234029639303302819880119297967215634904556029556713224227701541235372958680898180315144343264963803955532972574902694028912757118917440760590726620299629669370986442441851208819149525638336611473370569466953956713121734106298455861805981033249669945861296418367722863837040594479341078209648438106423820171678787275088712091370716656939960197343183731202550835697789628930609458895729379908852191761307918086812468726504721606865302755770089671385943431113864095303561189407827041168968682563879363617623951946624951177901729956653502984400414604890580902595387913410580603477574879858851330569209982386844448910790443943519271974326418939912188937050919688573618818593797979693931137312931143702883515695951240417484145806541821435769030921747623723824392706251059968254793927447794054303770642248709718521268996473416633029756441377127689311092732673901938288320801644839752008536796973784310277724884002680628842291224260291316642166334029144624494395576928887458910103351605200967109069607435789695222587718955283478927904187305508559820916407445176594400572954425186849971655932709452540698548693503199770884216185101424042831618811923355544738031908384068881148858780858633935946392552518977001339227218771540917673617154238941450133180508809564458158786108167764007311814671044874180273855362824342531506696123739943529264594548061557607504687685378569523193272095284799362451496280396330268100283814570682856042605869094154456767515625597428778695812260338235427119983779656214331674851802074779203750172614804157153042376721158366583310255335418011562294787810746651664731734225188068650333396846875704606035429554677405331422492913658828200351350642726386921223148570807748568091630499957059166375902415425015672905410134526563098994547357544366459558620657752400863868313666922814984289950966233071199891608870713429973388293966307748542089110760610087337817134591776138031513937324113609496160327958160276830474091890130220924833596117898500051198347399691833824427184114038376241973866567084277518558404606871612980946412133858217332266971871629212564960629598875863877243311280613609658703983666675212108734527365332916939978754195558794226709443847596395579473471804814405197915675023346331882683924495818369385588760458098610836423444224285049969376599168517960703151434088821608200807200662071299017411258166384644362403903275378647610466053878351722835550622854370601502545712343632036107021893275142085629663397263275867368452700214390141491188744022621394780386446762421118623802100311663212079457315443089083614999628815106408166763872366899210528596340151923132323907600071284533663956406098001802040025250818414549877012035749433978256026388288307291070449055391135138721503361576242017485493596607251442829541580216773945885217926300956541874797993744267482375627624269235787629847694312600820954239904130841099189509776601156627596673042981154375733854391364513156897957258517875840387841387681126686924362157176123929518762781832128600649002569464243718411329496733167125047456320798692606669008364387083080582062068213141467352626103435586264307233163240361433411353612512571435832129257882984255496793721234073850670618843630914191560542251939969907923845252636536207201849177931443009066008446595618185824296295753598241645945185414546911916540622524185167265318679038614855035204181196984134222174075796950809555152817969306812929387830206945256441724855030793168053516932002873638195833257428138691317801611261283192357281400371806874268115902125937045700571466110673633293147070926492330773249012665290650604870276807247411847869022964350275347925053441328718129356458562482756247175506197716357612842885976211711807244229362925020596869888133046319107784562202755773076912924491211347802901225725772935658526599585252837575433649197917311836396173633560176051036625710349494539242682163909606067119755847839026213455433233378426431198268522183599117516980794471669645956775666055323642935181637560286790900550756193177920349539663244348140526183699450350559112628210871684014325244391753115515133361203320140831722050991299846032229706839171004979639343292941422977553943955971807628264898966482965364599025886764107981655727847158551355226291893429613817852831382702124145614273318857799158299378060257641910409533899808503091180401569399335066099595403294410501092367323414903893672699160285494539685848022324814393419450471998157261161355253070952018462854690366009254422366189357360003301236423869655397788601416292884625064221390926655950271929859327721510908537572722027106101780387366361650875779706509911058400990222479373481325916580663670331385101421207796202990202544872214178360223506596747955845401253958370718758453155598225775554666338925106348488160355474590627485347258273067124576350794967809744462024771202452497747957836768420104251580370927467950363162758086082115554809950617710624603020445361673799395880228097664757019185290072569633528492949403650586203048278142837695045736276750760359333419143189548897772367609320129172508230979502722108043553981691996799468632374893537630091443972344795581318796867939754138160055044021851275034775904473896896330953246403123487242966565977309900764604394201669503449028193065757126170289141925406579650410216262288412166940190725806237135481502567816500582843746715380160480480644405574150511266415228228036131759481456255406762837384711856083380550121722120715648776978844342013529715463206356195742211156178240931514214559531289311008060051466974189961824113166764540671848130715390428504109039463881294471343628748921697294440539008546720337138308338597350537814690581267699841314277705208985863865811223402532338436083711609975453783825813920495363984220947757666795230995880255676285233219144957527883171437969917570974112697449572319337704874404602302366888989348207779287763064326522600346350273639767868261630616333961392605193363848871490827929195938288987453569616482260458568904950875928267795879179851602131923592249091543616652384989464366207559078101820248954318362547192348019098179535034197203829792824231399274060191793004313205323755942715390507581567982299963596123259774111286269895291639036990649093310934849062891011026971835904944196027743947863519634857702674511028710795181093521101399538127293503541176086676676164187478130283908342755050768294574569307683479034343556622123029549932688268122121920820603347751038144116651891385123791717613826187121464489095475469741230638645462713419508238097238605575609748564724606778246179435711921904505350903159669320374870022128107437164136705788120568151535736604389954470970162752028177256467137634605687301187941362650348577075198116109072811018263120327828599333731084362894920061527832450047678920131365392723104982693870802423145051775967757771567186984099298806807697534858386494195030038960646196969532288699149405876304256480503664684358292935456094600491595947977741772350087421507499924553640062124498607106898881154955714208740352071495141916073100647315603554127666518227498273232825172187510510690196603799086654992538213760846245050547991237305205608991038773059601429738008674533171072730513113390774676125586302454801138020298592358683858005426232019095091811939459675922752487770911029577943229763931933915981745875587293342551912265995175357050571839260874625891840008973541191280521899818255366166583721048603410554627246648049067456394908651531847014403160909797040058278331172990463554051193832432098667968886398824857873677499608631441354827347246282995521779029854372015777867702350855639981385257653874708203187831336459152163617460456451528310998956267949587802154427756767591052574705882176932556564867511071244521154880188487191823119874200044144807039136929553271877430149698007042366265460073743949004023229943576943875799791729862238108584465898252742087057545412125102966457629388788144481152462538368286560085629300247319478550036179201719860524008156279787783997591809048628405945897753934101508176097618843727259614425775656284971632400433767929737913611816629488270864285963496545952667837298674253170862664050968487493013708897996266045165137421848075549312094857377139939808205977088716819628380970160260061814779516149012169989418824143385348648317346468009841509226871634430090974137495352376820898287053755172196503669139422318146525078444084383137440578749330108828865085379118046373636993032373448654161532497875750265239313081602671345765407205014433869860346994121626891636715440035516254600201048361838196653411466673695712057386979118840572787308849565415711111637073289628337312158449191965770599986864637903187029174131823739708849084615825997744593927492110795123190905976037768794545108707722146957039477366526058736724489845627573379431859926054067427129009619319297303829716800693193081427378296514108774016538766327936788132523979561928791847103099410776198794575861268347345525227969613804328186658380850114714957414299674227831762538660200899460235770973925543381682255398630101329774921193720250739300876120976681644965315881268959372018776527638141032381986981989079794838452100773183152941133620888655589778908928187591169196577245152633069768022266731536259030110110187223553943891257241552597189478423948839574935267166218828745158107348630939903342427039540005758807520609013974134247095005619561756624598369846759505814524867349546495935255079788243617247665354651848242458113394431110205664890411005231524881731457176237633938751392964011720096635775381839706111367458568124397936618341652558494054223634869292616488797516929744677876825270276925312212390079764370355996876182608045884016561266528383524595314391071784636618467185679091773564028584044799140253025684880892941083495260183804072137533564169707003791270155180161695204991897864593771398800820214789714764984464431055626990524434412500628824037415192011582141893905141836191010634854884747882711243985047877315483005153899076327760443135434545789223364033821327454895779288497757699659739545691535723861967813372286657435964716572118821251734727323925087461135924637234811872032698476843749418226446548737640061063110207573594027086638353941660418136760876522785288782780688155107504260391186987152926106382743780039528850469758294832670429566288918269075321286896793723361976663219621966306773280339814902053779199350439526247787376741454009068997367243343676976321821105432745570970461447239420186556006041956853827586305135995988441553562208455378897675397967844755176212838391376696665593538441541995062815353082803517296960753319482974113336906866259926248291680155219468387979511680425605592235015889875954674475882752429879488179446879677204881195779820559621898170014792725956069922592772933443632863709984821833538256123713072753079348728440604782995681438840816847189188802418048062433206838741745735628236913766987639985237683118550702603366648674135621150461396090135066605599358465976134963639548637829502084581129429866588160652143864910224274156366886500340614660386469878048152025997670998730530513439343089995691211078360990841421107867821405493218414015334659220943510759438606132075276192685118566982896200019927948186028188281957772800908335358312603239578639917644789246591012885045462167607048380836879739695837074540338202513623318731579745988749406573249994442802350294083744508501558455095468426543877459324313804074211322080023495793157619642788547837486190369301457593392558528191996143249173024581199195550854417214880483056006804709887014933082365954932767353478347439382823270023902945250834586927314781542323475841714573872372148502209939711232479898542903628729481437065104061920082764370073950331844024102105298620524666195643447731566781691555789362582848342325421175804792427439496432455759701843818636938957961544080857350319160758772085094561799031313978164812235820562111693901916092226414047357323350036702754673134086625553386770433928934680237566335390199378974580452032688313914978772535932258460756199543152614967307862753838764668300087838931091193939684568406603210660390682382635843619076484649403849732281914415615086849772013061319649541373914436926960577249376789454170642883915759366876689529422883410561071509411576614845776736983809624443895848510537766662510855920907408320827645277329122266381960295955264458629301980250776663456461707225518151254810568574517686868124028508308125316378830407043555941615050293053875662643335487042575303133084624345263948814236901744163841178272210280037894616315705149357820678170143092789749255561240001532970232066762606874435816234729830516319524302244174561533511478200413796685088785475582382573285101223860064955219670654607911586513899842691577306353192554006467424618272946886612699109496981345829967055134013188916080073996515058794352322319035293341981015118828326748800830836143698098173234052847507341336935136047558899682083821182488208440164703679090339650982240885909064064318039809144196529066877839527377810083349354663966928572472764756679706256902603795471359980927028519201273203949993659961895176870297821891234318202262460182166654341318840748171295113661153999481690346709239594014274887377386914793942009108536559045262245328032652070343495242090237085714916374532555530465081063771677071163488646273334787716289187400524578802715806393070831055997953028781338555946492958469385046515284969895066607637494513297524053004393939943517202091993795817199497493543551446792832347553604615951233591647148855379481578212132129795829291418621689759957067009132171891545898833331951981245047913682496485631024186356740097443687908065303833389849498717365856849763232143123863946411770252660669916647192840679128166618451796902975973724789590827471686047773786645337845992732890340135569899598192850418756707026296886246439168564595808751754446382619892401122680732893395070728550529483955628762189703257047123706356945690969021652881420458930846484219169462439563697894004994875731316260894577587504906959827739574960898033514210448952366823108925379070232978701533475889068407208082743113364703476722598286402140200189423307353203924615379153984269506021267944398318380549048849028675584278044538909036462084235972617325751146443846878440565752366961477089071011119682165868330342525041708895817006418393922647464886542416996590538836076073421375964259423403242333743928567572463295431775733133273982792564968353338200508504672894491848693127994712344489646238741295415734576199488638466157716554811791819730013107089669555688570753789079010396344445216280979652127715302552494452457321021890168937896122281958622976209736926245377466803637454394564013105807089365548271392130995410778203852499633619669124093628381860594884251975593636825139428159619989001643257245012508605106580179277108420724686180921253419759152401972687167373701328884932625812380727742286696823683699075656772860517261721006178573941943147200126775004437776657522836406555792678375442634403277285525527405522220475580575740128822763478160112701283122407450201333688714257592549711185648318389567359424307971371384972360446998131631150035645516355204323006330116871213470908523180343598979941250524500679146796323652241300900251935270720131508730710528334522538992525207664697964876322584407691487761195598178042556365272762137150634065135849362184906384139710384658243987533865115883082695339262716303196692445796441002886238917541674264361478120874954603927923362372792348144643090396971171527671722307480440953163163774207522194672909015226994829446207429062664482701280128293818728815527140629651510851232942266720659347965153932559164500071933082403092827499520548679259679265164889876579536000060691168244320231397866822779224331273686228269391927734306887336683703579052232848691350063362566111463723408369149595154624036222869837119153658136074340185128692169874612998866467218378760471328682248121585210616479053836502603865381032675129830075053563941140663542636592914990270606195342893811004084100789317046340119555187157972299918524337540406246470156599247694820433926280800778185500670342532263263956427707510762058024409583053109236695818880055769649534826889498993356708324158301552807332863162919440756396244568069250321477625175050630867405924803362395983966414052798550796576539894699077621344521875502704032168732950750879861754214173853701823873833927513202775245932531024160422871395045852005179398169890278808610609779460511341395746731229566300658272724066919487170723144961096145751672995305380325401714686880376170384184297901298443721396264165016428643734855086870624005609471495588304016252400238040076505359525741162924795092584800228879417198263836300180388742986796892254059615347352256641302760459269543777369448789909447836790064675783889269206899256776057189142042571211975056906085137365665207801389776285642773852808010792293419333591577643796123048538391120433413600689711354512747942878101495836501631508433273742919177891411464332879678030051320257497701825156379902018547292234229236628043285378920900362003266121250724579317215383972209164818641770205827397104014810148978850649319774140756343635601396495268522119042574215001735513397401896590940059760141014044413395203565042952918586385915940256943358285431447681408345279849276651774487294013583795803515473232238090773330321994776960988656085386769479802321623690868112641788966560519088826191365072928030710000651970970039473097473341187626094457823736595784359490432642268650706140460510515627724932519607987379625634313558652798045641482357245587958119300658340902108568529831201647685064961901409007447416779743085919490613818741175065563671675390876276520560593146739379349550837741132062283366541806344501364041253448669640980947102503512261113287379577459853666264625526052006117958517735530192329202073024400354384371220039664446308754275181393099992919969692794429101405686168279895546420033882564073669541756250164721911782204129155714427901765988493448505324203890903128530722635672279497103957218709793890876244018837130771654277948435016307320980156152508504127880687292452035901991032115621611772691652420972638705031988904206011057337924099601651166208541294210094186119715167782693717129601819117484623051750804081175879408279590233318446185426639088580595087019619954544056506755340715254718924768598843868061036558228778070251078388941349300364972050626244175872983055943288756850546600952341365795378563822590025366713095339721325563702008317186652637791191999921251259862098505781986011316848252303143101809790530104611698261421091929105220961953169150144897240298845530888092973442694670203671130048978603957268851880513767099839886995726396204370500041497979947337596039861540484380951500984624177902071994649310712252567472846876992861345556714475852460988712997194722902853792048758947711838001737804091011097987349480433793140755473262327258056982641345850430344154820800780803104144141752505404161613651298565435580374113902646397468424267229176806531576400082582148103194089262475568562187991487366085955693323708317190695709461995793441000336560581817342011801432930732306284218649798479337567661376610635361353870368164922765812837848171179925458606834886378322494942739847704235216131504991274976709749874130397970084571095861219365903295964783956802461666724534624997351873884986823649300796123444891743660310553407283399401578497376235314139768118600838440795212004860452357923035230970133400406608096629451465698125877084041788170585260386570172836883703503854850718421668798768997008316584390910482317449844362206509031205627742062166231221898248563934897993233673651671001422574992783531846449532380992103932155036615522124863615263959268336991808318407706453418627413015758732737651339678227387379778325311710879804396592084582805920289874216821372774102331878947260903789480158324553479639273481465328251835686017796318947178137790924336521994226379973751422377526106296880986697144578238621837307107091876262299462187922907667431878400437501554109862004826537766442110859414399085517389657504799978151666784057838349288300254334589683767473427205871011499494443707654801934868070911002489873329577611642587214584701795890436446159320890369125421629816970726971576764415194666881952262683417086542225064917155087914240693060012047670029021371228527027730045212478438970810044429080787959770766108367307199021463302344111623478202268073403402332153826428170277201332892743335317805746688718446652316115699728285486384958387578973836425311735044026900939727027638221918788122756264110527291328408466454949767396925040644124061978974989016453432841684827373260500514170632231294619263171532915180579046065385749131362968139406368989907635608137242628980853849546461830190214718978878376896208010812804741064875487035302610079624680163278458908059448691230603584315885701549207943969199477432239772720950400184339051849911344840430048711926366242455728163015135162305410360206140974714746454036102144501601340429900817988008399742411647364700164855595102490306983282025080432454479499466795913738363492783887689130225581604305212109900887267690972021446286091771905598276205780457181477330443447517059235182790027559696446384792102490661634985566284786411150109728067146064266408657278397061241559841967739842484812669051011340427951205901528921704316606314177503388054506250354625519558386228752418418901304892666802153204838785496668323863841473585111435494254694149434756889495087524595411533411196360055083640369515176392273231311349261232973071255791581952912773022411016756783800908514820951940770174715234399334928650675896809890205214897818258730590447748801998112214995798381526513164443111092335050280768113216524959143460161426310223280710434596489814071379081305812347375971890118896234244643587013565233109859832110748140403162135651601570168541316107121968138296234450230696965466928952092592488672102556256604016743229881725329419964592818102467791777974532671884965196106810686708688405129993337478343624686534149022788197336766372651058555938379507976825686803777702502646886978099137636893989515947643466918955097400477416733994583971921538648221811630901881427083312996792514199433788292516546066768628990959700678019723261346915855452471645915622579552866839246698355636653301025935851429982736588499937779381066451789166792127136710624031361118396048252619048194062346245913178541217202338081636646493725882040487881455971625626591820649057300674460082347797609620480269969554260749758693107231617047984708981882916176385851842065393670360183825549449631581037721512697169935995082550117133121169948874429610817437083672590121425529851282897702673712065237031192024340553412577966484704908059656602672322160229217326695639427189269820618447108553910736796407983416225545712161253849729741070041479975184066523164440103474225064734931195926355560945573107084545669816367162453060258718032000679766295632945279897458790225013329131970437440258867038078188670105886546171174108025392495045498225928076175773172603396479761620778130614214481071724428966687217171003916624284477442081428038975347722958795595024950928558992786913954614805044813740358847785386408347653385129960237777855425874222002153953545828204780957630858075063280269483105623499849562073196465319154686105788696890227522673455623427095359159532275229282653417502745736967251639215782412196780808295119747191416622826493559656874204149819933923275134113406685699906937670123919556468529529640055894612200486694131221635888485231762097646441659983988398236958574257105024898198976534772977341401227188248990373306502395502502026344695007020149806317209087099724386047952882471401186128514691096589176907572029182841218430701319818304147554104199306157307047770318571987555837236996997088193006165917120187507584199811844760665838877920718325645689070881003798099338937426637688454463071024344660836669411029534984634320969304040324670279236870514015218926031684932801125568211664960257113380617082254181809064984747689710262918009323957721859212385566126070579385127256009866683284008095688404376652366375509336635041966858072900982146966665737841487811326426243133996943400136930572333936166707679486329942910658940532818545604262939946620672981478379326108242527210183440988848508861978192445169204378914478481030449882206319791914369091713851940612349803579566919159888538295939339069034204301968988049227367373334619156795464649645657922818418948174603552365442666122158136760543151449795477509900270745145168527812328559067620794324701669471665633944196179347059531013157417083296950340640686015173928585229898819576853513875127274153788138693551817525263153113194801980344474845613948202768199677359245060692393170919907953642899561798697407754061099485419502166225722192686700576414584567668720906776459238222627045197034722233845668122539867755831901447294497337332192614425375355847608651382359704045453161053927609022116365890946833792925299218711379612901828429737146123360253202943396572830867480667775068655430235150385714148819508820158512986123061754554025258476925701830048952548492413354777480205463174187159867705516260997494738775266842521662390029897929230289446610419674924417229979568250031251895246955664408952369004553711630014408497144379404758250466798153096147794490594782339991377616566459806399336376254544867444682403505942954700038379218953164123088725748015386617906720669093961042336819756140085376436979384180467899306119516180721723700016916498434044424726492636562579167884204343412624464221793693748968583667860475461256278412354019150614599920238408529911269042670136645566183990489992947704823787474574206784908379268081732423259136115101245581896225382405687794187337891973933898270089133883891286558554465446468255561438993181156918716758398891604976885043526704344827823759635280165035893229642427709701919556650823830523731338381123546617910507518791361035069352159414720368006607886311305898917154149824542237458706761255282859154907050151017957516203376946686645825792958068051632399524296440213770242450911965570370504642874423550935136628006051279854948172313824910246746868559444030786601521104208170573910058468348801802510589404885253629545150112713308365578667415569478324900155492859593239556044537290035690585335419952703770907470944374724418047840206921835327217885415334000430888308156376335517070304737057647981061089729779138869844656927217052005543359856815843238906006597846975099759096978093459368701073601378963169390539602833684512201058551618744439258473036896172164207703752144331970521953662637093048518319882433227019360705278584699548974793021973777588865913681630068981891299636525629292156131635316449055806352361606242718051802058884895429348437320106977870597381245280368951271126136780605766022593641377187261889198085949875375228947244737825991525829812232442622931491770787877571153123454367960777307888029168517484101504532659352636245198062403775884971539709759638958642915600472616652437273568713079059036128108857699114528087372546087684007584508075570979273875031115335209029593699899513154402320287576497773523508452519184972466224393845522763898656876711277217180370303134119612749269452228178048619113540213672745326046871049763335978973360947848842993983457120927717899891594614341708781113093251121127223452675697707197078741419536915229744066487998014250195396820586599794482036259856173732036557696029116854096265547546415025503619026069594908310692582844258090430789952342080487925707601659709803650046143647060622882256700676143269161074891436599882442886590652813258036525903664279008871441449373137145942738592562562012413808031105218953718916004234028595145944413224920370896796069428883495370186650798060214651720693211962610973945012791589699628716019946286753457356363693252809590128842585511011350442858189907303944210586080313003169622534975305518416102532548943477968172638454815560430028820880299677723543972726831809548395444264801076964339021845339297317418152850910408212382823025177695022037632310072548267502813412128404147721476587818471825888856417784196846075932034421972086463937000013528564863113808412040499201007334934371316513569378172614803622373200870623978167406379431947685351566971698559797343146033599447045577232952266601201119825471431911941256181035364429035100965334867461093000425997644655597489758394665793826743034684029356596526582176403213716714858402676479455386588943984340265058923485385950737846954037116955281057647707276462424794611218378568022719361252620095301002000163884265223074958215055596557542062119104228487935372487767083599534275810968728856918677475372984606648070591780103831984667910457544207675118067178050801718614510130792753326892377314012919875392343331471935111232455853997523065348147485879196859815514025673266118363351010241342527386759112056339537546907270707562343987043742844289285319101370850042154798133334094064261079863353702257671683480118456760555701291750404641060157349855853554458541048544659828871909918177324312410035977629844346819867066486041962020679994177070792320462759216032869468551990022486923845644980661400070493400820029520768768438867492748305084666563807443890448998598122367852129615261206748855926943098614788269124791259766628713542084142446481545499425091923755366138458922503210210048220681904986827135644647234733412581542023483301798593311787637417794981803161806841045020405608613667214667971016461486385700790832843326542625284434720298637143090287091213833333283802009922581032468465736200127786568052863763270917581010485231008973743443384456056869164476271044410097266721703891291888046637727754148437572903283855162991414126541458123396666488722347346290321008134479693869552279518440472498574378038005579473354901581565225110654399959486611889599546013665933090104509933964356129959428801223580445714626293237975754733486949387398898119553917038870432730240728440241495008283006069724166199404615126494096342606321867759656926363079332248480088371180691198833587426730163071634542393382496697914986945144422826163815357032289274572325156075487741956331623901445452254516252911903282068294098529139360413690868122764995648797912855050614784173660903641595169599294022072614237978355258002853236228641479978694956182255300705875738841999695167729531339972261527962370550545497898246647624741710754469284999837334465678696095717543221236828382028130316000827162098972988228287544464653275095632387214616430951542035699310177109882717616235343304813291694849247769899672911183578402809740588012307180133314650902495079100543292410277755400554442125419098736774056762391436076649047162726956710087643854564966148582628823089891206258446867229293509970644329782718470741772535801621127987004238305752844377323470902448291484395728353909680704986774580289897584233158750876959667381318224195952473640800764448921749823371344326277344892323451998308779012931029923432750540363727740085977946921181863146849569073838395229710407423730783183391046086088956927051858569642787582242120952916189262913309605257887581622629123064650601867339855353808803240223790442145253814981139614817190497391998848764974957120423520983601426523630965734008549200292904027427357882580873768847511372033038731613038203869247590321968740098763002876406778620830598080864270754271577882201526162462202730476094806078118850643049371512186592037839938489193301907493726952546298631454826427344410642664106185778810233023869738945262882805239982674140861403774195179151385690680905011630175527252205113543103359361991007118222877471774249727411376681262521898261757557509228538347820837519079657259580482704104820173040891913003567361042824055739338415466508442786836216138851731946827487588814382583256915506704820909603013510784312139632449155159352080405694186949789903735308243900652946288070364610501372792393597700109296686167922556344418037267523683346883546856328191074600558527591893016330173947535517652704506201212950064933119503921851116029439105611123660186366491045112283884710901148791989162381854585076119401917667160418214210767951751189070892888749775796305310972175244297312714641793923745309307694699587623163509758726199776503487052462870681484754216088327396765133501909152081291639336795221450309412171954392393253879491288380853172285786986613178114664511594344567233812812793378043674109719059831874634549499754483042130237032493956183155647127187868178493172947847928624979938129325922600844168121501425400527551167255055333870810475327606044264765974062562778707165638455314027415917376530106493936996144712150241136634518290550432549625916978581057400537101618306119617899414177035197929177412094279688386650724003847230082199207237509626338917852124900321632624480694326435167777926579547972596237769092390089527875226962737867393628951638093072826280348134495373701483117207247540157640834498349780844187900412933165186688842487121070693742386221692260982786651822728075457224519700462214085698815558023682125529355569624594474848257895528288038057738389165467473502419020440639939187993986340656616525012531978569573057277435812354154451618451661028603962493592883113132688712164021263926419296565267503046047310722455281563719526701157339219956254721009802379924520277605300425989637721860840562122176450114579280788359395333802101878951744005239207977791790802331320342183013203884545574055706515997547353954869449312142211303476306272941479669660145778441967391351580913681741590351047617510152176741221460465714646188852308447144211190092560496478399141996769963136076617876208602529583768001596566289627971615670399210395328371278853986483344645711129666598336296207384740600336583727463812071527204809392680879848026030448405634640697151811198631276121172018244369627388478984391386772525296478497228771142166482485512898251471719643228615467052857778441544389846525808674522257973194024090736356494136488161541832786869243060382617966701333326010156141612371996791598121229815194819238841251582195187296399907516893766775448925360292776884894420889911655037754383328131906644980311330139239577828335334958152199789697292342530051730736665663725952442195824314411353613335744043840312705627047121416397164023116938678947760641672553915555809068730683697491280127118830029516671219478543973010096495964757430412518098018526178667116990453605546811856024683597749841279998583027886164852976527247286317465116025335572668284334929763271285823488600589557471911567110006321101505226502878932648027111362937747309693585267065023241748015383635267077910159262247222985084767205990376769200076173778134756230667037931322705135491614254203674579121766008937627009918036700471820270438808437354314202091480553712677301442523253350237065603840083241809051472415512344185780019588323974865245361336986289955264348582708906146895344429072114638971586625897785403129813603926518916393729990238181031371176771946438768254322784625845911592674377134448440469807729464340997756535831682830710717521201235595208427796285688858863348229539309373083242042539795079417202807579675700830712364419734195193957067657585914384501097929595281950996327806091300099607559125230322342048794963667066024826267582809733699535820612767048047835416774857270631982321318433068169851034265429746184024771810249951123114297234242170509870337115420069195839254871108709376560195243562767055496878382037942964831067110577675853154895775196777163961324034324678798372996777963248485404038261875771652603489920725121270788370408530487573265534721623347918599186831059053768409295420478089933378201941207148913612694434468411640305620430080929032127303501665009413010371350733464387939223056751029023855013390525899125896612682530348482368891970578600848364188992929639282704257193345269392936438086067124343166757212928147358767768535387841593000956031741345901470462502144794121738985723828215591498043049986107604749772346703062110217760526293765530852465221575324374346225743684184893260988034557558875097085344855092936524812247141287379251455194818988226914917970205803286797859184998193617280588876148268748071520445732497589083951352608452995786368766620480216012730998860103358851845382280454610004765686435173073243825394240406013942425488577302835428635048469195847780536801373132734968492485292710747080715812605476240782130166101719679001605748459335187674957041500842783850722538245380614318966563479730179531095968871562193050111131464934546935697978758331842018156343700040976098563396368610882357005567532655152452719518289178960704475485826718202251933750778657071149755916318987161886814654187088516450512944822627275918112220859835795508589919285565956444401932077006772251306324143291660752378132363927694878812316621622106954347008893780635311955524499742574381856274904912530224738461748491968892171689283065390558553287852801995696433853103602293626509268842214244675030071209124730142815772413868545594336530325140007186092897827843904421282603537686728482042800227595601081450147238655028045801471320196359306589826024325019207673729561788805410840033283171936923144295952791434248432189725711150274907285061093828280500597232046618190456799974395964872972330946937236467634265310231109709306753845822188970695014139302769680884736365337875770971691644249257455524811276698655664119114968204531620031946300055789850524691491860788682994982794910842948414039575531499294942636063095074119863259610883075083168850983298070513570154822987613032042664601831639200122048348625045181428724826481476071230225547505812021534395993329340354588177862524604350565265874638504068763750963411527131427676075305780843965023481176568470135482943885498736602101514414261677337407698568443323774989139081042178861610858775672109039951508401419315437910120815757170386519395625393512049424918677694816648809881931366554662317841484999890230268169223293960562133199607856360347423989546224516819993116893677197998224088241432755305477073081995357386950082638779752057478042113761893071062313370426488793337124074082364050226388338205327079758901732202706780565129748333200546276480035353991413778976574307459133169841337008072381756971657622857906559634132346642980621776390829881105838798185309522495703187013073484441339354222193578950045412346078063889708939164434935963164004621178339745548189851230695649588681040778536447306302128358786444386443010949721615625678518842536678361647478268958639127944571848031635751351863557859186672870525959484496073707238498185065692586811115479084366046083886128975491674397982516082245258870632054212680449549830298103990439965281265085506652757670154468207057384597032755468905799279426447955584733591198273636758134198103596106502763464643989788758790277014843633324257091522270691699299142009856373787022513084513175516251900477681003017905086898370430058976173204594456192559687871855441663061777722112541391013289347528122707255744447191731097997676444267943538353894431449791414581914868907645427967332684251639258676419752595747437568137767404030937998057839036693479905415185923314183839232839417509241461653103327987084544586762913102158191237852271962347631755980060119989055621170774222928606729663070057430211317067732086465987008398884033246973945024062222610561471190903729875316884202580496320275542965502171476738052356116432403707299134757438208044122762714009405281279635384989888612971010339542942928320691622901978725043287088130800995494915795891698359049019692674753920673090365304886498524809712302085066039162463790820875291798477955883987756538703658437208627081000502619662083633600292537743565602291344386732974343586230661969827041243391862032089495201264455389373670613223465365040355781831049471681683265452983357056130720922384303523502337691031476170140674175229250141045128094978024285457141331398955017648875942100408054723167837048901631090676903839660579629250854830898394591565982094498737740641485168066907776002930789395390241873283819368267949375245593442591440598643985647046572285120373100529275873024637878427480546672125604831351894840066286064478107926519723409097015341059628971153656268002500736744077236773085298403864889208683743881549145358758051348578909668858388907088725562673786398845331753130231754163949550784545587704680705127213265024500483725594719551420424051668743150013528282215199594591633420163007811827141738803924855519376214061906053382903012973411301517674522537259371920199267574796416912393917973366470751948380313352290059851456904211696631317204418761423225564616774605001611167019459986808489211279915050925009050753832380892519170771155812073805864214993904274412004376436808509217051149028719856597745724065535327275930522544715164950433835271564407669947170531255196314416975328097877580376812964873153889315093437858514184428760126865555873986860514943681346933232333847795756380086947085464359224059799880137556520223151531777092777482401703481270461657928363416298756279088530322645447998041741924289326350783322639803961538614840598548515312685083009207084111810287231579169869767017052568642248024965485181578173845678563366038602525788844421928580918907083080325300897939038183426141827012867470966062296015667430767135682827120965307700294154372365603049882631488909413348606271789719347073974140047062678806724436066455535334779478546631133083843080660359876737896078679327295139043233387509651253047966100724818541601967767917916021066690546539197389601155023964518823861224387036892739131185418135923286017983309962835701616466583309246652358778186460880960821735423497271939339788827143859791177456443500938522360718677472405424968091835218305717862595462728707863618751565391444761643518246156251896381560472932813363368657581168665509130234488144974827997457883252101047770382350008249844154752108322656540649775802862369909154683766841838135194864474464127023752584574717864544034847459409518022609434873536033435032779723349601513185373152827528220727323382178379434956858109004764175230101812320020723196982215246780940128569329948741079738342684768843353870029520175972899689352744015122060425160227083650265422436117179189573615882766621191873981078793709715115555816533368062281384891622271208429923885524995627291665951629463845367005485635774765381372293917588144797074647336284160648649994190982459855616893909655829217660261486415364491747848718910708430372897205462006813120521717517662390317331480427624360791939513587076784376423415394732458732678948636738618665306303256858211051845813329539405548937311939458621359369453318554029248259309502435674891612901318514696178354256796518903130054307836084111591701953341026519073639024018685276069734513673537466965632673873954938753490470533108802579676723051810662008464657967587556669808745514965164189968446762457559795645899000208184758586036243193053624590298033292127233728263218037808720735345170127715978700849531531203702181560876157785605294132015239283567171492863067488681473511480274917061892939967962594456526261572775181462284858079348965374023214431166562298721062706189861116055303652520981036179395416631874764630942486300525063226243787657186480995708424354693486750306047677008684495830392006496355701107461442755292988667248524164776587786994771895378807598438172676011821207262579209251351644197507393662143305141209705772244201581854405883647588776337048634767791244924439538508575423491347931259432198582518480027080340041985940309573357461306470979177895201486033391333594254796292755664056085887819722927086523463696424570709745269551161899855011121829315202081467466995112035662818935998858460273764481468593367148155638481253318444212874564224880471980682732799439077793602206113594190016955437260818485026892312599079672683220486505869212407217477834728736179057131019288286724701174551140041128047062261029300702558041051155557933701800967560694745473332412046344574587051802010240441709278662141029633182901920998125587314908137086817284088501657461756912670491476234662412626243332466402948858928219247222724628652822272643038671485252216900975400591897770075956781586054056712124401675099326462795681797740917143993292740908787704073340584011237177031227004047669632505951473201847136356673042908279432392113968245405622774517232031489003547846751819551124675915322403293024196318698890688118541948424773291378442676953652026603725315365138177054107892112656998949023423254363768846273133868298878064390723786794485713582917167894996812926866995527708319963449706767913764478214991613675622484010347129505641262545574408194270296899754697127014453890021894646335137955898385586094347051666047467555013747977600056479298007753359700736144247184768108349334873645645638699638590795959404526671679267341440883086130540986339550643026373356062137482555584600935001716546510241260129985545470772420377476881318296457207723683708481418094722741806300571716757973722897917916430573007417742725631491943414335815135244005997047108930248282742554668728000497346075847780753825247206053392374962682280958192257165993481122359092514036805150711765201967644310108631844042536202793047843347924185516067659417749442840974284048899600585989229559747367149307859396074787487573361771908540669046637578062970017243820001664451243582641197182723760205990330228862290613361569126276082647750604667974555245640741385859635888557334444850772998101047555040055671441905215825715576510465654534049299687181067068228782923195551351636135187465679709015191559336863104506029189617876500939354622175755428168674950200289528034374437378576697529150854366650681796848321605709069333383024855035905901158573619575239030953075946927909484762814201173006110550737875424274787892575620183095129861813722230110060510988288265378997596329081852179628948289509010911966190972450221516233944983896823148275814295188402928684053840785834069637350921558200194079586442393105083228786925844902759546582815782894746282436750368965701505313943655035846503487915720460471997015175083768557235842674673245047640272586309593005534124774532842361906822580568327000047502848862320157035387205688806866237365742192813432142948997579319448725394675571254091319949321498695092012170982748608884718008312306383601775471454499712445982936855077344153423734580181647982274082787203864112007281478379755462896648652580418328306651531906227354046007375009557406417129574280442447113474646892310136638323970208166800141749916715390727693380504641604236855723219196148510279168290365485073294997462855502825090258741362687279260730501150344804561060685050449987532990865124234740637019529935816058313867976929086854118738518015998932998212310887676612140897892229889475953806159155458735227558886124310538546844931299729639673103282976622845477022645706847732762893743434131499729148853654150789616050960123431489652900280809434845275686658993305450010223384397754694378583697322155342509889021113956557614963932600410142671599729642466444539519823981287514728570547043266425628149354308781404246027894881274753446387036291427888304704528688312735946096756334891282198683858570745794528452620886664322508167312597635918231905152443041577986501392186083365574494212348394183224123231267285113362871761645492385078170936695745760093515262603946920438031932818218776255333920923965210316020183696413802308766097350751546113960492047601728462764960839571808158254020918033611750887322821983959366427504101479967464573483228077005674426924922243191397003820581529205373478289706282805982664036933898131953709405165288343973989000935332175760491672909436932979768287425898034050455688068694281170104198185831554540431789386491886390371436098234483264747611368160668814837102462428182944765510013522749612883439741966696617489081479220709851615685412019190245570880818359511179454285891731824154272827211557390030392599302572972828619234586873218741417947143831044550510890057652742277469954500188898989128924622546158832923608762093599347172955756146317243296198636339675660394720147146620151429989036941234730688209126811291234191541797024554438660981145086975894548026519656295493495976868973177581116626435354490463245755917987010583314425086176990774288950397078699032384211990068970701872637673141787344732604613918079896730758992998130388218047274291970494448621220778490417719559676691563411393260772381931477115029932553581353367980709329669210252067282339291140577270256904642475051113874526334859095556684118354787477911479679755873988672006055378700387793051851642622805059686583077208948514582651125247710568941722381311399165271689138485249135517443425249883786822739553037301136383508521469215035540139934294986889608019604955158442859445424978963567712563907793091349764973878851122420415647837913644518392287085024507760924622532024200072906881076958483156371845710744171273921484144874727524359063108904176174691891086256003742562657087822976696535139378196259167289171446195837442396433442579077692095192632323775650592866823882796307128735549482660003939437526526566004150740131081883843916612038120363633396084272697221206096740881001453439998845398798439177649460468302458944472923773430056572848721888021998301072038203266953306226448779697140950331791734182247527291410429892397531784426847681436895650826383578135468197516064338746331928114500758342906107516815695368034077365778864911876934903766213618183766233116787809047677018253736216734314664397118905950372679623629589526970077342415999163356998397704139675047701644561843796578523883536621768968396555936848821767460894589038304846387965088701920084032608729778197555477291382302405465180949709264427735368316876564489416788076220615625605993690844350255711315639057434867198292039953890131269312981916478312076213773480101131968998623672267137962395732964184421491948798589928455043230103440877517789962532683720664873442249818109707526730143883518577985390988602761290735372213674766625894215878457729317872329273421031319081472045950106041183578104949010954569988300433044950547278216224819808876315536465198693305663725693160132975344918205854727636576425600379977640690943207585384609528915997652726996411690952209337950196224809965775985514998377160415621598217041927236376251333336805807534449174316197080412735717165564884010069958284232454124810446234953587846204158640445151396126771699383320075138688793432989651808694186209168139968919545920247468656306233201980109352036321539613897200248544996696057578694421115480787994212655720703128265083341941326224492347040937465635430822236609242973929048631884980976365415145657652386963940883009427289242815407445699438826799539052639368231832468255179422443875755399606141228124593968000123683214139816951690862975397890181525202313604324524188350965373251407156120551002957066013376047898534308934298952767774285125152114563909990772899578658254019822870307391584523035037659784666966871740940815779203489231039193896986150930194235174822075177294975934881069439450360601251744038336899323910592716227196659877171009380895589861011710268757701278458077230319512312058282963161154052791857533544940658761954724688589981997191942713685140668639629639595655569201390297226969969342235694525820447965838840393586053421349281066607111985019512744190107159658371810463038239217158211779123102210526997256826879234532838826731654260771269863794352463481630289460857047483374796989046025051402355361193912446879181259079434947363123886720489663251563236523436661864311418544048398012703919830199779735422362029311176309013517139674288058694940201943223977051440039268308516483810573742883322097504164916245867320792628204304641482325186549030969170642941491786368529287985483070656734548107188853808731324773469562333631429989337285871662334631065331836320231429664219099178125812747409459020657625084214263771572847453895879841945503231266983444971022644624333131748889693398317659570456610846653174418108039076510795032730238388572638872982292552744781575645411001618151828382302700756370063245147131735508362601577603186895458621988645645796926545641514916661678063601351886196512519014755617587819863555016442103462118383063214688586025442504230976968592351065235245789684918474193509338273258559602548680961706318801065706580236016545985983574160667682490045693600953676282154094738746464129884430724453023708259263799269957229883919208892469819789363241964058182994596619607998241291024311325748517720200923542670145801070602947031924692754188414684311376359349187047512887184626199620275132290509101068512945068840139574261601201397383947588749778814177596838064523819273856743219120852309050622860322194849806977641916120269836425089219397140411477545921707237719272917081230623958923784642643746430416949384208896674295002966279675596729750191501245149708643519692497947093371356303414091867999660913003415653153298939141176377408064329240397167670889694084457154765501695614557329825406738289450109610125892268684933193749395492667885147629825920711586159456492726356865206682132985877087857700452633548876368845680404918640888764904266314621240402003648895286404266947546820791550062789272192395036326034447124334213830975548409131525592440884613092546380501386041709648158532250015006085885927909001177926128275749029065812938804810473049076143644209615051699040459376555280973343868991705505152615140544754172876778611673434772852537543719760333659363280086454638501452293785059639002166075628159677230318845313962218290144796801212622265762933977538734991645746071928002100084225114752488026250711678471761523747305661021975061126360633059656644937608912217594596502106085671708486748898868883183967146340864690499300252154240440061482900112696759297294093785280085615509686533428511831858054023881938210824161332172645471635583561692893649855526948453847951508826924769867674969188916049059924082708061493725812397681286443228704462814058136429330962426592052295576779582923696818747169187213461756309335099605384771786570427840712453658629726285196478204732294236577690860844832305840841925407979001647282857828991111574133391170546308040920409264624170675225305776704061044243656040797785974003817361113432650308918169102888970402933290268799010427580893441562771314546709080320614965815449460944408380517687516291151748315919213170448842256440172923610402161219372395040131303553635308147284155776751891532572666696852985804983773471139602242313811038848535885980783040094254868669455365300208453598259576921124860327925275038772176734958496024614268429492194513337957915782270872531227954711767505725911601370530964652532212649041047025609566294182146435183301149942902665062825219217193949764959811132293010919979601798887033297308668557961534380984485143661758599721127114288463680689550248200383864357541115597923260698014745456132493833458234068470901001289289739392142415822442166184297938441766128755848009487353445061508115569591977620216811697038367132742506995443807627040190101234975327984728951382000923890056072154541464520479810654343269148324941832367735953984592424915914127314392971337499699721798225732342192948388114092366350719768175978442510238989589998654657163623728015804389073221220308171895541313440698167831775328750631976423443693188355887006909735563825749699878958834979392345489788014246728056118642795798513634963622919087922575930054193583637309639421245543903898873907586506528242779784261327463731479905593401269376663083445862733497245059580960198657997895735905132424784118385260901317145996882394801387284669642511541436856421155720255791718015087940452629251621120992063306882108535687225614813990934622930257071812223275387033986226776718794930646066196959583264692185399493581841884440268531852634835660474023660920301059860640828236480085345937164393497459210846565111324031895302785615708903201896694049242086662390022784625977826454673565026930096654332706333086950820461163771006817756470113451763113517224463673903380094973787320751659293088710948198277248615231895663485396108934982761161629785415488098775982758484651471460291392250427810288448004983673470604568836374174376517351507764889047404425584436724827988949676786171722944030178529563083086768237678714820508969427503811607464689135296215612901420598886959318598964631255611863669144361106883094658918294380844520777244668004005473291650180389461296668254732826677147941965146811251522382403868437249900824662966599543508008406743959199113762717747213169934651036539591632302830808775614196802524559324813028969804013410778560863786000352006762607499502953529030912129876261519116051538273140926830269422829433303753777539018008502581286519882175702049422093293453416618318774234578442704436673382238305337859037617740147662203721496657886664496936792100002965112124508026728964735937389036181740926354098082340649748521116678246414372560524538609053267911178835994058531361475687547170524079897181451264969763091180078764652610132410533299177642166041701087414744693259025657567390125991698489654143686267315152169169692385900923319475810762121643895313259129264009218939277841311612516425163960287833074895334399391351908457484232961699344936660749648966268436235864668238328982793905158521319387106192744296432160037252386368096340330258482163641560087455406683879250770488538400994206043774681353452799487042119100052937651649592451405240314082449806830332847351352480826301621509005591345340051773423708134795853266527451802006888075983494417946587428303958327529066797021348149280220370637256350120428286756236073492414053118225792155521805684723868434573191444324968181595381623859858723031173952439303977075805672371443409049445932526350085749369213467626173484541934182896917146229648596022028757403570903565124825518440492820755118651267755532519343448055870406881400319934995725308684859152834520600906116235984043032708338819247825475249502917155011518551362445306506320131981767540183167610246438707911862249096033447348111173151928275297043347736389059212479056060900644069894180108166950942952571147509824497485096395753575824488397036195455077363623914759151216884806232265007492689561485622233761771621869273242601167244869458398542542116089563404882324884084762899120723342716965191736097654545220901802797606115530408059684569936743515558152292904403822524695490750409254998861034248210279408964739192135691665918434926450517933508188399919877317696174375674525267457217844686107227881854473939847805879385471829518615703799585839315077669556631052244201981294205720479008857539786064500752243340594319090129301507787320767648723602501311192090585695963084398654352216133894571860180009624221383003777054847394490836884919570890730627223875116329098197352076237324177568366339887713228231566591323441262489563169832841565886231867921392205853438188651000417738973212377585292940687472424080693635556371597237132087744297167170451058835211403588348899086967715062297482875917754070532338920046561120241179706348261769362546446404226001072833494166543418404614047401277428369285806402615819164147153979247362785237307763360901369752980696800607409408739667480447188457993532019878163945190482469450887609156612990598062887779779189251085631138085878240588534104135776515089731811790845387147329319773046555378676020975286610162250374246688806949492328239656513371917614493558231979132508155586276006577864331141310352088328718098538952841174708953440137057059731895981422713147304844772408277159840439296763029571380046809032846816012631804255998631406223772986342789547113093017039970212336228803906573726572091367462723508129569710172152307336896248664131120923191395834609781156048532039763569130592188568980266192241844790938545707192072900532626478496416898095098415290743686394269497071211430030783640637485081282286639912962795957452494748843750872105107949396979775259188515329963292697430197990030949968895066891068690421220895357619736784155634115646338973940883915898048849543305589293142639470208617018823371333497191639652366324567229392078447796713516375481428581285312858539667026658739022557733053764683781411996962286191691212977747374480969675645619884670348460995164440250199263723450716127716368801136698594392571122412584153702450987486361726096703628600339421168002484688972661738982961309309855188139531710290840805132080988867870725045592456419355485795153262537917190638956865243818829308436186209883669972946313819531065696610710695520230447505569183665486029710929972506185269334963512945188934945699483710518112200091290699138208183322080283026729577753625159201771641836135901927977605593862003546640543776400184839144482579378467968369048114235541894754160026113819196298588129123658338373921197081157461165523834316712182925717436371222695605500350928165092435528385876135117396456135044038091714708084858337919197245824902495762971584552908080959479939049931994815579868380136905058623903645727171029114963929165897378920558571087967043408515642805442667566836349828840760461587782681139675267769767189756749610270044179848458168657743393662723151245730602498986352588338224429104462438986816639588871359901805998452616746033761189488292580449276984959670628253388413623956660319750335392114819271051311029201084808609302526862697573848751499486617049017777966448498853151011187970116971780854460344858273338434608562982447940990234836072799356891810496043758290281071617264269342900940820035641342718453792270011100911854976499863736162315933793449960453167997850094725016348695440025728107587190403064338407405609567208669560209612284473970528390731982913958640926111202765761378912850423682356893872544426552483568100165085646035516741818784103228738173179065952067302559922803950144518814806321621685267757198229619876985525680240490769709017439385825417952890185182455290457767538157328544820146961442856801142179324002644443070327951250244626082724993028135268704423034569063283207510697347273078653428136765019568191441417994765898825318027109346807449704883846004638034490175019630605729557923560133346660948476339546157285183373674188502326799824618969746284012127805340849393674287744572035943527729798452359360917733407311902821917239868820278882004775717479599041977506706829695398174888684621582333974728035695558792650815600506209582949902836926239777731846195114192700612504712262155410674354231581847489349274461677240660837690473657589782268797521744614470410794252220823190220496184176540969585695719287132349848989101541438435059288220018139543976078171038911258739515275128885626794501039732002912865623646925250952475752465272600610628651863640046369773261938120141929548289395600777862513389576034640789333882851548924680806150076556892990885472859281128056523206860479608738060680372130773036022787718351765229065042187414454232273730674987167192326879390902443033697314629390281522833671911396803391134926867633485800144961281292225385003430677312378406862381661594029255738094438501007787591290686104884012929068657866421208515661563753874041352113352334022693678058016567440349831147656502624957552720949346209753716449580915561547429139569120045262330375436047050892740516961149237452557554783951472696440851690184028616244772267899882357141891391407205925676974171131524175400018667861113124663993551226494198395169080528534801242991254222425354391128844055701479066001398239054390399026251895576088026718312482045357442107726965218175461698141067503793688614698910554375219748357508797000296994447423693627928447270866750045545574998960138317802677627666557312376981503364696479687134458437213457565785568126931381788866649669517561550082265312398050295615583115578798795551111561477554803619674951047703264208690072695528336498373076672386679050705229574027145292250446358944945946330163963914666360215377363091660085579507096925875729744663661837189400960880735407279538966822410872305780269171452781668440595802723743253159081181655586199973645092386554707676393108296077261225410652479804794587651851034930766329751891741963029514131780495596298513992491776102307853155684999883956110888766155135853073033474127806503516974711933457626437996604925065316850614754346812363306092386934584483267860710470243469238215018988561847136351508292557740538969337439897592188082013176408646958886907593750711738053623833725249813340564061634794731267628232304970996321684913678777641947310963307207487675812955524076678095896899120689733083250708003870189467574381858689743656795403118142403498884684669181529409916326615446456876044879887753146516358172345633078278276655548685688582785460642555413208684071543435305059960330659488412679510203548169330812229948129451871598085049279574420788987441888511701839436812052967602806684571473034631885127327681535009696380203992627215408853470167630247210665863520594633076137467989535169046084563239168132108219022143851674690371725976857135534770947964760012016250807130181453421663140311450002561887513346265446215156833905912701649588878836604675165086737104481318701520215866517998589316213968783181940995622595284000233929587409929173393730844123322732287899305382271176997463354285511214302487603863516880482089690319284551864169910766803857516925945957063603454503194512583318434906101888752654723406666774617414270655246968589327881063719215577613990990949452282890268235306985155118454607983411082718723985228656414353312238582419852317421032415364305551891515435806726734802616861219986744505178119964163488840203080241176262461453971487561345934586103891046265106229504852399203719316526770162339724237907838306580946632950981303804308913589440554853180814369268511357549678987366040839411530541857294565688838997907251079223395872140092436804817764034873547082644020391387146189276128381890307668812475450772472686681896853516326947165705162971137960817762833660497604797875116309786798773766135673381615937338497832051834949525400795014154930623694076926250623814016970551592363048224903620178910842876964316943844833059574644343601307335933797216529839773663768971162624479072271526963329489321801663126494057348621205241390340721699451114616898852673959009596042114446161780196542034214231556125338452453954698282206143242912109890624728435116578156603726440229937641844863444998746103890941218919816280431182868395998791536092736612523177394121816455433796334455008728835755613913709860991519460429309568332268271318579177519151691275711296346941626250029607077455396330518074287831879659746075971160760423114428642476027161817539108808573682815978272560283468565892224196409421518336164898888736811850990580015387141399394458136737186475617822531635272708201473735210536417569116701790835101249249212870429372257823356367818845677334118559228126743028573906808618023458303138052701048831505780971103944505872536536146109937796211040515844705833134403960182315827726560490595570758681598461814484250017491427472063790995337724480938825590130923456745700512302926046176019515799590761516182430771911845394165510095777496860312203495822825807009560040270261066037838841245535635128161007346708027501119172833984604315941251732420757977417648095285501045728066709638833060000555026700172066836832705987675258944444993391605502893959731545160551355529505060068732366543604928815969885030149986938709690437057017929251968451934592618207063618160707790035431813373893597266613320889852594738481231537073593743966183192390541368607921810746352099673601936787935620110863137266709649156827141826274401199579398994008032334564483038260862906420551228397551852719902343256955925357777752174628341733450123832919052389501669269523718124168993173664645982371497376865520624148019921043585783181297035530965117771294779643584796785272462283644117157497716314638339953226456625369320907000675926245638092426725894014434575520080844310114316010216119044573532010465027120097835672975167133928082275807960624431576366303658695987094937701420682807516942065662115176746193507307144614643717908050921521775863787036870485735765028763904056211952864899643309517325695001429026429884235899899959464712020482813345659807509368967192565622672767019569174147470985451014933736798680380399179727385761599014547434859396321950147444106620563135181853875648331510876429019496653935629509337338884983984386121754519816668657084840965788953820797427161705172091535512183830835379358231011195570272875404970687412151442505536632764744242479276113675514199337979791921880117259988653099277106369282982699414981603495837153974438545532647716806474906726008502751863187289762522076083259681363093416566241221045451605525144902844312610160913687284332556282738879093118770580496713741279817814914732659188584637701251336008845119795528129791679532446564518971286773337004846526706262663979723939206960189871145032982424883853777543018955711629269881875067301720847197816873797563990005972381468002557788853613218881312583989276409616525878441276623471135419537548081918328180386858196132908220875989135366187929929777322629170392540650726324654023530480337105049174796993456899828104129320379716106291595053192258151049997323156382475813508972605946542776857952591982999452982064166222460093864407161108560309468515460427755830859379131900892002790685285654938799869508682477938516038811762613379060355199064689046115566177105084479611969080834936496011634376799332487720797950662315591166468367818356444289345739951641659269835121475614074028375775447171234475137705394335104328649955281600905125578952818351091964854149802362045992353945334635134830346278717064813466898221755359978871300240123474025197994760779233494584520705253185529939586136804143853152003479017949372148791919367418568163957449676256483532333060960224272659149659463029506178728035415651104474412474841292655761519479140224403790634513638929317322227482923421284361678417838602760722293546755813734950176891553781423048113436628735800559094753431360740263509681464435022650842419448629974545230751415783030235383064043207881110037465574798614391548563981813002728961567695590634891039414681821814357719379450610124834193632876166090067376254928870234682849419608607674799405089079961291961058891058486135953977301795709544827981200810889468456516451213397438703333459636984562813629892108810084347248214942021821542163451392200974456176754785684306455062286246340075140496038326576937425934265136164313407699063671948114244462953258403228082927513759418878312056901456666720092721012411418973500705298245290254916228579895309317459694730914985913278815571004394310323885426327282325386717747583903124883709310082205307670088140143572069369979560182754357215614958907480227753033992314535562978332812064399240743475390917777336866494419469368517879472123747297063402849334735039836697112753864862321304992037320015318035785719936433975537697791864608113177978550032031465812766251121960016511498130778111230513599253848907545953143523927827982267462571220777013812549092222401203635421562923785989238218241784923667418027676671353221999840033461298223247303128530441891071925783450755034468679554255296532860095173728344366277439444009518044660683258103275051492969865372347972209413573996427332316060132813069005175283103302489215543041498041767455467606050545997322831437767033894590205575698125217753215802487293754518564939155311296895843334241520302378721105856710235456555908356887923913860851190554648542765824369470884364683118482940644855217519167882659597215896356554393073225965165407396098200193903074031371367071889247933550789274839933484962394975180597996356772983491572351142331658265255987845808225977037735469883459045953295452772586688539845472654232450837769701945740455273806818255167303997211805748076657609167989595439751076828413619038446571233808339038632510222781710946396294720680130945614561344488513816854295640822266690779593127073373614386306922355551584321768978804992580932140223520615427071763472408240103100446846432305268602003761110257691903484052047833687530886749777350327500937997820009350739459826761938992784458905636061140882868035550226138276209294773872046119078997832993725237259385261324112259005809306648726194016692409109956976130166991358925779018946414747973136131531993482931311574710553588944745764619441173253548534450629667097489776166355191271087468870250795982759142333245821638193438971557724259522348516216479892619384671605890237852393158521346297896425614691943240685214245684030655967055634446499480891170480382710694453348331062151521533867975601941044376862722501631036406669233097099964011855178793567305595575680972882205274093263873406640418902151916105805564900759317490236668949890551674083156197202813020287827983605978713665953937692255351595491032537617042235046770190821229968674838241941858226606140524330482907668017842985941318816994520261577175638217884563915893325816235826378128693867047083552722146448831940090703660027810750749383459329967367948444894658740769006224863625115115147218030047830730461958166998700930383114255030556482736895078451264448229064742931626501994249049230481972675504680120465681434898026882475647241845089157146001223007045350171374033072334925580879824563076708046444007693159876346834752484846703470310959770356804703194341974209531747348589815217429273956362025259833283069032317443145792223182487508314321111256013318760891910816956863353284887061002669126536160180656256244959359368279407835538789079454847167600498882611375282376251967681286344826450588342538241642868250856191101482461269276851331338169608392273159494166724805962636575974672643099467908342395427892710474916715157214589060590604102363373625637770759445317851205098108005951744090226114874562214908603569493030520036834638302047937764152272618605329151811415667202918378143706750819144425652754213733029942553058974639689608986209325858400424334301112854055944890000527512980747908487616586743640576376974543357374066375969963204625750010066112006787229272088537195396321544992447483766120271941303776902111741275115052815444714938818137708061934304520806512356909413005811514589772204060925885485478098074167298983665109314105829792605237385661052602524447233907983783115821400703459666440390611986470143312984103389944767050679304076263534216476361776217638778008931055027274736828583620280460034326635315565229459840662987089981309508238815236991656603122138451044074356767281622738329343700613131088129427077363326762156622166215753408059715000478822295764242217954633845934478095808310437105377292328334096225697733227634657444740111178625131616830641777019179236979718972601620028227483525353529556838022780832199820655269508853440827858526007574045154009286435547289084965701413391570317857972980856848309499363092849079987850361995394169765644265533376411310013908797229769786490866061276780647782371791905118075660001320222334844763674458864133676662238537261748713528016679666838944669620050586021491849032544897645681298141151584674928026496894232531832340521597940228806578370562000657259657689148817104151507131286469115566279756417965891947372335059405285039582674544271600832513830464393772007862489105375574162222586735447098008757210104255638114641183566041777223938873918331955832799987466751793693695789485615141895132401840542816616461313371246516949216841001369744124540537165622219331892223043385885013682185838974133259700295784229432561819579067570984669989342606338447199968123829509130251584419515751971806992113246421634559175910582482694138108689621623630847867190883379247528200246245495073777529790259456473165092187625012458108349994411562780148357410212139606479122000235093579831726679260384038863066662537164213201649511542370410593968344037868050087370506295878315360652001948256734875300857707657991343824152627482482710857884954489444438685695319169559667587253887231574929174121255999389711725644222095177258364545863632192632088316062120300841494324840911419742863298459234350288725182026600634439695352855842286348463559051489248339932624886882954441018889122986028131006044106865519594701536978525770112988519606333655559900786445848815503246097235522781084544418792428323169821210165236967067843132394362973913518081664369609853320958564882172267720114548094760745661099056565870104194084085833518081092275849185425515746972450451028897785557835781000504378595663555937062961013693616461246546978894572565123752232335381070576585064396421601073814573855306294384752336175133579368467541797420404306096165194054184033820256134083323425138422104913049109576096179550941154068878340392702091666761068576755902901510575690966079692854538297337669392895112565219806128558970114971425843932195339927922001348341067311601816722562481835548607296459651391675782832061441113033633041504733955571428627579130651632188425967673061989074576333236820478935482839182550095279443396372606835891983397942533691902875610478529086674227396903840880869991666221634473868941493059439030974076016889053326830048871337944854252403012248635320976883929887817652913100855760761272882989905006455009745544128951574860319776072282679696775667866427928057267930546767828685546656176094774488153137100366121978271255517722965778348825697964494076442069164232942994508431246795040215227889510591107757123830103970059811882098675237010058973137860985290927967190003991310654392527646938093816767384409232550223171183949005709495117956001687466642654621192125389351734257717609029175388851196475871542945571965269286863283943596903829070469617241051230445762287141043712514827441724067726983765891738782947012041666517369550814547553740882042606761442672921018850956980525310831645216040565553960789695779135558578498274369744976395416628616823635889687876370392637331125959100233654446134569438000178984542140048569511209093520266135846410712326814384551529881418916136769601054570250625556891750972119430608843298075952104892487024003695809015061548386515663049687077788545465429024856252054596205245103246047294430368794705579839008709844747376291583627952220998863386589502452829689000177323416101891872517979535635836239071712913889670959581847875600667962584331213226697061489790091966403717413082589709758516477479669394796446534347359162188198662749618477780146736507427312945098856162338682937648921314300344556460831556801657075013928845139090903315149891479294020534337154105061081298233676842605887759792583257197503853307610494356862266426031880173099250508672230454972116096491587986529326914666951822750728929835599335351711746107933540676498860216031142651000414215500504630848286862961737267831134579397489295204274550218303960067827170768426390837102715609813205969987655796767162950053670000999229908540580919392688575270550983357715836498845796437132297616141626860430117637422020703874686644930427749406732535832500681815949576779706611598518390473900350553995969761827743644351881944732873852708792811274185848980087897185118372752887018824788873845442358467926659767516870862094486548142048618972916070589310763264838706108887041620494208789222385725683473730738079062200759612123512134613802400861057095010370938178431771100793830590946660950127719202648285471099888709373745402640649066221163610115186885211955689256902069964725658789160217716150592870919662878324235772974296388838054102272215913727829522226240389575731579642157538525505940941111771807660132624532958345710410221337816183713078967855764821155859614333626856472582125775772394437652093459214569366898230536002275421054048517838341506290193522216654706586790591131809899721284224864391751858411872739055166559919607591585523803946303007702179289329817564226971559857564846296829147927935532902347941797316595629006219567286293837053726513174484782216390257457024002786099211627505975991500958541635464133433056397041788741997897961382927986978125559125307290286978457673070095949974838161287295064763016128583858746107292390470986238945038215206477842951666675692130259371411044925946613778756954628256511768317201367049141710217252793996613205816011699309471561262498431377249039528928691093539794121648436693734706419357666475582665944064801453844911972771692557607309333910452581571939746681056227097500868891462374101452723949866586921113603639515698968978479292765916388728542238675837681801045172526687591220375483091414295635062128877390664098193253858757081400576757280732949816582321265329431997205612090640847100855525716741948589816063510111507070064679912503729502947713055801426857061116865471101585860102947497264343277173880049442160768564426799277518031279558198454847820048322685914246173565978049598708289504982842155857950682368522870751806758299949545745485615773501830522143934588316157782369486961815947816452376735793001930712110704777761903757893972689749254647386627685154594324650748231683013420927542139061696446445902665088916937700586187443192187382567030521231325901868413600846030513648567846808397148856255391017394635589579002177397249773752394291280132673548232924748892786556907661547309299688790407406003572987580169010407658167717011520574335422120410302618661489285911901362026826944478643362991158414337521908547372367434200610970230171901394075872702141686201495425784291901111474083466439283614985570104777505517419937991413238234162668759907745017614341157071840768105960871965372970548010403813877243512367170146815796756188196709355052154536090163765589161462527058874886076598840907738994387812693849018646651946431965152712050125663072374469752360763138402604313732637241498781730272969687572942492783545159156072489696037701219391540081198783818746654687871026677064703219092860506944254241784343604201348700265062296325045745454453058173082930226872250857052957324305119906880366392515139515637485671125804248251292040109711166036728842984594013171842151246837410556901006694752735173306524147667938463798092936855372278209467210077533301327599381925841298122245947272013492781032141066708305029234172910032495422577286790681606486342895836849781673222574449957863561514266603153874605965563615806749579383064281291035947345673281775188746073650515210713582623012170825854509430310604209535231126638127017484096967935806794091513803135856202719252302225641412309481492513198423375775193780200682562522710155903127175674798113412839621037603492234396204210213066762209504404993985046888882349370305494522119956739322194495867342855661034402697519869291605855617292077460097597505441049081210791668311823609988865207563585392889774279170933640034138403969673486229500851508421165878426995376278778225059056346857512270712987854601948302537592534440333630176808862595556059681322761099958553777820017546668844092401679471352548688528148316414798676032090844478236784756612196465897319997409242405626816546373682141436200856359612732530885819342336165336580807910586915164090215960866521841538247865067857603498811312820405190228479993608614898738481045314978499468511591593194295752828443472734257445415733071541681226596891510994584081691219144189282894945838057808011162195699172016942564041898429543864442989242562908572495184085949315551192885131326508979390316688661094498540799216478210578618042245622658851299504308469464330228159517057492996616925330343858252081404074536937447129988991018116483536195330862054967397910202873895465858126310462458732298912139325121450276098977821460075470149495447562413041077897698519985772278918180889125050003863925130980244855701569946606664081614316585536879821742069735230616332722134906719608639094652684262000013717802081671472372443969809060186173211818110366065076792099879646262449937762332077180150496222960698168176839908827465539262272855473431441496044689631813046607445186855377707021315844608005147727201707766619411420762195727172896413994871586143269460070679635590571612287173172155089274856909812211992629405579536025258223762506892597589410512473601000972313497601721255112585832570585972995492699153493913014665497405509029243470674204772186574223082633616337882497452153705992693367902943116791407934370747615929103173566425566344332975867480020745762285563845699419785560121721763457129430202121511881465783263553840170364921084279969204111038323970031516106552241184053253530754153822947935699744886295812051085201527922636313124577040165721774180789774239721241201872670909325447676489039521010409323087456851755471596917847778966077757350301379195083929515882505200007492980289978388328365016132535181115024557278792734339215460262437923474156852989502456422631428790944363162479220227678143532727647599621586095929840079197589827573122058581237880728294756466418444677790277949293614198667939593389172049123514581762059801817094222598663614101642857868915965237135250353593698162893769727292828719907126367656803990693342832940104659785100156512258912258244411533314152437395029044757944129514142546511674338266849232815411972790944036373115846918861353733872399392238497287407295328754984993526573810355728740395046504977519813992228682586693084261978996591572153817756136702873442929756569124132937220159403306361152032481981398805878875007118759967861110826008734821212396123989813118761365131401999046459650643032486858085209801008427382052414068448412147751624758306597293016687341135575531908556906955318578994012747418074417006878385888122966965671056665239535889519323223994422160451074204736642487072286589785964284899377282523292915779150746947206478132146367463879780170894708502582677660618761244345811651813152075119818142620671714714213372197834486083452004021174957312436008768064930785333817277144697026041335558713947403588736756902295603215774664680380243982866515496120107901002200711135431322600883325139110348699541933919498661970768152925128982613966173434534086381530419194127259235638016134386335063762024228643942267605259032211516835155768569712531626205796238175056970415457247648543368484491707208877292698749735158855449112720046296344724869480285360870944929448632234306224218024941548054595568781049164084710559188977226056298408821256283133387225720725310199858829611567498978246978400628961390322888493768187067488596576650182889795363957822191612246010637743602702889415328993722496420238244247498293107490316608860002924701200663366758272301747860950521957089199096526299203230293645894726512085033452971593430672404208446738800565478800607351529278035700592455524450080935867933648286859139449544415714547625164671976457554256450102442820391660478886883606303007341375581233107391471589626887543443283072815305345249408900084303085029390673853116878420309737780178310720437221799237739202070774065844415141316734357774216304003185805902770487528363059276989685025718225205589619339622154514120074614429171416391853628769717747489455250681138271766561666647499800351031933052755157021428665858152556029803464051502803357991747218992611337388369548470490503998138111598514568368905251147297179483983172458302164100443501700456699097180761088690859174805373935900878154041788278946896097934373508680046847688492219318159520225535650786169825293954292958467735954179520274849576033042676024812650852165542492131026688429142745618866777912593783810482302392687198229137692719915085595163722169107926623272969323700462248152604020051909712591630313695328464187954650658812172852941932213315847720842442382954423545075517721758950319607128137296220900400513606700748686260578052508919082075895879124138967105486952356521088396964405832631845513989907061374384972504774935702492064259102163846882344130157129043357401154078871550843346825596039456042197121675993586179876320213293380022761021181686595320261261878214420074618824588923406926362881866401335318870036278182495343824913735457295819963932849744414491268174315232724677053923243222617942923442405673489772477832315386772782591560940984383998845416233517970343315496605290706597647593700912596945360779419725234757046482327274524345875923640749859792940065236352501867651969413803730459239335368635946256259257586837459666334079417852655311695328214680306851190956656321936297481380096721925715714695905896565600832032609416053855410209546266365486407778122804213220073722241130228073889808301250050462605723997692784628543250620778700727813231862474603163175789284349931283009727004079285298447911342566626238061911558375887172866644523763076746844877377143333658418386511471174049841097816731648549101565626424825062697475356894639103094874957366245169925082619547734271698622702977644172727913493455639779349255580417978435654833199812378187053190753500661875180289509368407556661065303003581376881407611258126534034079226425078421143314281405095116703180445436733227772137665166183938594676557637032149439244469700502337311811159492058935177003927654341300357843810181475237020242049348264586601769903829068443393593002445817527553033841586072679513763918320018716947921512131039676373506882605206622952557215475519616723777476366410920989252555888984498316946387190061989727518625140895691331920415027600563773563982853925814322223832626696961726599569374871784341052152343274480884398924238853913642760041705790604068636262549036819394808710584042342294925261558035315291657417525274436574369662583740920295379069679482959432430199136116055335045208317410071492591055148176640769668421752520564432505753631344233853441722832820058109753067525709141181041549117846927833709296528728250969219091819791081831350152986528294199496041423942906360380843786449187117204421506765354871429031627746980370218276442315552601774149879110904352152196383936603216293354730793223882721333077611589725963806305463303171232620429652084098571692457477753447921286271375808526928692270449339016288762966474421387338290822680352724334751980159639543071589013775116238427763700098518969072084515255369056821404534314745527172573373700844993103953989664858215246571989547256708576799673275331080342899419646342707750088981518963349905801441874029936723522366953986379147426156560188914415942390270083052503237865747594941428070795729163162607197185610223559356364494620889640362424367266787865824098537653880631028422280153386188283727548647214619116631955654149447461225158332311304556376137891095189350920271980387525279216558564421290687456142075180533109225441756578548939048913259139684934501301726997683408836881066148838858597573936563707687907762686977785143371187302739628160964706084690470055105408384379160733891484792896673003952492626577477905621847072917233317781558500293746246375377499948032311004024788817347256866635413131159286375963956225092318150009338018699481047136043697243563143171671119459459406365031506100648333112641375390683236515976448154780950754711700408990799353841171132139471048353753530931554191826206623075701713143380241532098838620451067466169519226885201495291497907460878220992445949181265932609702745340873747642227923424944503158001855156069551290410502967566703462843595071271961239666380537806144572486063681895596179743612387965248320349193797522204118222498825506427306800518165925084201614962807553037625969717828429904518071110206233498783231505546121433927462348585172139694691713118753416512099371093497023675001396650105113003761809095795012766446620991327105920733361243001157056143926525730520098969243525134621757772700332836638352417154080596067448022681106053949543930363749749302866664156325791688211122722464706986789736908227997252902829189436127253838885028340360164327503741107386272643195457225452463813146933691820221459914397732350704103380447905103568189476886966274363375203290431857188863837862513720306439924249012494779210151180225577164913037915986000649967169716807870217323803396999752790582095373809138122628835373137551137379550602450820018411871428281627960172932680681093420918900967512948715243346491191090997660839471042709263515423707464343111838287202236693202789475080298833679827802231372676611074389766658693011402769191255103460812452695720462886006864480548790626082974622717346841680456503706590128501131865957653224801972983236636547394528526692866745400760391611063439862477252046179601871755676497143544091249610776035114847816540889381905136113791316087283838885698428973361016627678961345461867520007756491072592736334428579655028003543722566901207837265351835156753844554422928136947715349371507420591599218332221166555201779497857873634464756685683430422247742801017685538735975350159143012050175191156011519396227011064508823690292456040984845346365257604003873681997218217268163216004249504705316820015214843489863425200632674478050615063283076821090088618467061526653269411051043720343289543558625566311904264656301518802005874985717990454695154107530684840918914132612388508625850768381623861567568615745325572906544674394253771403060817474066724577736975702658727874077902169342076088757499742927996832087732319604634987792868964719251455937024093170966434796855323940911128397415698832083765045352898283101734400348770547823103169242108691889746070890543341242998894610416024808193446470259094705023726683994868075577501472749047183988819091641542919555475826017250717248451569130641229800017227121076451333427761040029170461362995759608306958990575177007501911886267296190977907379753335076180387532639507786358100078089242808429114036573721450016158219083719662862335781128881989635120820043768001195785879265901522682172893483589761678943248089290648120845310766136421730009908814934279475995294303993847501322295253904167305564616339809725492815033706884219396112042124247176979138324815631247031114844181758988964225232242679310169265368028861698950971484075399912630173954397818634448242174404915292573705135566631659811967166623000420853081994068728539240965656768188577940707529351669939120105068928446968414258118423440231888971138698311599772927764951063231715607243336708006323633893599837689114302429674111683663613519166356678481584299901685084451565766973236444462965040428768323092980391235264102504687398189737756819127854203630623093188130550448625080820999043852955338726313390455225427067760686523986165620516873398425387436268195707675487449899119863134369853891092923575670654230194980533562056729009507324245202441892778939703222709428398949652358568279330799208246789027297196950302569632187638645512145033019156470632404273262726748099742660245721758976017277350024543893720815351435676543013068919346974198676082937049959205478060673168046049110490027138890276239952548313743265056829203656585159939667234508651998890321126284412194573668782265753835077306797270990459611148189339482597974170854629377407501161343532763388313581705426106414234202122688729784979670063816330035031665709532881138157827996408697960575891221599752630789497788965167790084422815319583136711263384782555765306686196205570162033922507416124084596920415359651102379689777770323118979284606078618885813329394089654693298553689009750175255067696492363634993906351351683156765063250455113891697027430558255265632431555303693496032385745538446910501845077387373302360276813663094994750795422025536080675028501826637031858679718902615803443481168575598865694146312620635892508172798766411562904858773114313301307218318434610295468144190615645405156939709360521973541994490112501101046533966947652836443221318104407002509045262765707554274905283512535388868511396125745899982580340864667711794372586462601282499587372887478901549307470601949257734002059281775135798472073813562408088531417548576379040563122778585673899361396887961986344914859378436208526392258190337911368920856759538298558532635205196762514012508982552416641267954236984903186070399252935736061211520319383498582733303361564038974574897048036578141320336449520277605242955671123877489878677228364203277234914208537823138905044280464513017706371004625223401765293490882488423365745427071129844771385250411052919314192473820708228184725654798334122018867719683499786372711933273580613456436742881895351277569177000467478469719266625444732607324929438284277374081614958940603229972333639353793452173201429438320915442050738295040746987705620114344450993854798236754858572274968425128394395355673334503402622126456350385971567298620165790371754188866919857036236285098344517955875997222436665430361977439044049881685074353568111532100411759693263559195463011974254448970720328471807808877297748076110362151948105036212209800635086228203956112265869168143189368134597816514405607390698866897461005948363979586495110763225876198940458713420808390747275677427892211367361686418043819380355600787795038755880767316521578716585378731596371919588927458775631935667704475314390145272963077141455216849718116689398960968096047572515624719681726563646338386613297781067607214428635528362643490810570098699582452113936856731427385468441171645588167344688934244634501099536909749260208300746289982903598468044325348109647103060191345599893091442820573980426780385796968409702338917672324734491589199172123375480242676189768158151124215212299468306935545316945329422294280303902461895267872544623591074093567829845583987462710157167047381381317903711811990112572854564288712068411354948723004578727930923008469627684487962152352190803571509841577951306104308787002374889245605270500658169321325627483508459749569798435596570343533043612589213639132643350966321753442184806519573340634026256199421104259555308646955856640396944272958821169490059722098254975201373505197343519766435171980977160105811986285920861460631734109118802059581553992296964100167967627209081304359778106052154857036318083840669824021593647465070866228831722284519242918649276129621076793147617274832149684733140091605283433373698686378327899899157385755353196778102879916196878739439890388865513963948906958513123986284504136029003474887528781376002214894694433720491691818464296707219683130546663100013744965439894416918067269564141178463571216432445009746191938509598424175614623905325607416859868108646280783998997052532750430375543301310658762944585282385659279946468987921452917310366460573359718589368220411138097477657663512879799727024862565009715755147605831985085679332194762253301189330513079588070433482999515503471115380710855705327358361788162536735522936729580077194333233253928472879153668553606184153290199211304997754049541334480746708373956031342783001438012206630384634903147117767977180523745725152213540236236225332139236393041158236520128344489878179889184715869122968816190118667254284244618914107927684088566405742657858111926338652099530384035139354485482142115261208019893708189919156523489729546333392788102619286317316311562844741133497340314224126137114058757364169507396569134165282338948097563686876688238968349383523790314958112306404628879892756801558191231896622708565667216061942039672214371539873139074285046416007835741963198345030607487166913706995757248703627473518716442770355787107243164379953070624353177588516640582776816292791461985656953332563453575917585730060983906970301517213485561758815078834151891729086073402731939008374480106643051704941213089521566074197129442186054754266984390039608972506203999342659039637671608657643322032419849779164911719549633852570266447728241608985051730964837782384505086380472911326431974064775700055845853054144894544386636639539466097400489905138456217050028771253634903009261915872372876516746608692071768379938719452702085898739268942123375317616362678044682953255667951427664767601064702047336005422780329682599031511758929207937689618910584380891889048283504697981176576698730383839445167861257958313971384823621531737729866730539570618997799557725764443618293186851777830951145757282845606431304514946037014397960535320687628355103461667849204772356998438372579011748827006678676905968639120804544211430854981720737982126149225081840522791178356708858158393967951854790984121588278397358648433570516547313969666200871675292208755043437086093758641323926671342909261826209604122635671605025256586116243737136203934953923302425161916172342869595404634415559560244184668834896779494603673973836946770048723618248172627248171846699250413346346079600646452086228635577227409212915241793779680616223903940253623186824985811434204420809673047060001202330604465643181381153861579841156676289854182398256578460314531705280714691692535785960361742666917965033857208287963701373030707787063359728340122157168462915911061240275582141479110205933931866756591929616535417000103401346901448959465477035710678833545490053264224690274219712040385495607742441781883408741641567447336026355048672983054053540358305491685487710049311543380470145174030578804462226948450726891957163267217232416178709385098290532121273656730278452277759190295697934467374912580483117693942405938875176857229629383609049629053290707493718562694447630138377840695839614132600561946679676099255677705929478510608790003978137182055033950877652911668187713126683007423530880002070143743775360722966837497897828981485612148661789641295501831963911026698817242346538028239547237788242061044560162486485621924744241069494002453581578589708369124013221045904868583145806651093613937521842308623447828664261942660407074100250351279630726950146488859765617932041912984917903861024222332974622806193164586808500953942650119529791319668950482599699699750093229828837313804619015735947555306313175696315566147078620651102775215546564022810781983453688817824745421220775818129298739182871941744142080134284857207556449185525630629203740261550801587174307178661249755710379572511936809623848225246717567538215535485610701926444469193735621042107505674622005581084009058095650025521524378462602930180707921230472657205405249469880391262582370060408427388871382600809629233682852283428931474196216610518002422214577715841326485932762201560739369658753142406494216735449998203748869580604937757403497388700808023965618054726443674085364208041635306587969168536452031149544843188608266469824168955329804323637011905520555979462239736062922245221706253491740448349525266395225605684542147674880129838558308231247390591204475783898587080142703700879439843364123913707775920852472138486154225248890728959833896216958637913017097337147570016041457110660931693317427170420431066536577320239485579082541740138926858743937506517747180374499041638090718728446906216185647549125550415291954230389976814845438307115059629422840434139840883070973112180309256719678933215285655276666862590780594168516313298512166264808930957727527840419833094993510929417738885176961648494649640491282512291657076872409020665037344281994786325087698518653109812374406951637299476894570654837576574755387877984327073866656043654617258583439532420504227362193460244295652846637755164526867798856327511743637034442844251288015245469503477945079359549492020807684382500982006868969580310963127740601922652876678656981045628364257179954599953846548655258237880524160033171103466842545544840135051129639445946242885568355772356641497594693386525783389274573419673644989223072798769890768863712162770308917507834422505342665479286524701243995874559308900105718786965597168285002984664788275239100187975846896496996178334078643845612018365357899647774255724620798491310910750556660403277399280656569459343640356380611911016710911595005156494609174129915473327656923899538261868550767720927405631976317685117282503915148511864074613322424301929890890275295858628810381429357908128119233197471300632326256042257890608960184982834058023614693903084831218301327212884777233584966353962460410836870390342507053091618435233696952020189463471543598480916655069964954671063789342056550842820311873931354043089137428141500142216018894012003569794888496171086776399244015273038263515570092090945011654654502264342760792133848251984318690067946023317882712970807471634202180685447722276275921505361777273767475699338543883088286506681664307740554027366251177118552970964179954853073784869667644134217476591203650961843644574719835236174323516647333274564118912370752341826875946706476943833099106920911543927365317244955917908372903728512095832390459148384651836215922209533306856816949005202997503865874258972951906264805494145628340823811472789038993295590628805097088398893191395766356081701719504152567913778098633460122298920192138375684007089654317435874979095934651039565595443467041436189076181587393792645036765221936716623569256421251621316704206866106794861562768501614976707777622523658482132577207680015029009675474956140300584392668492047860555751006593023447067021480182057335367241132005237182023017819821866525356856439054976427609706290401317496261731096182765904339641411312020505232408736611415296313025374927963717240653851859610441672271406563728780336802460633820831037274571962374175118223876268738859885126415353804511827049724340005504024916252372973441367722222378071719776738175864024696321265274732742689481482452215070217864754926665528490757376256059373052254067178920011423007052359259848208070985573947194603821723065814439850196142450025650326731961395523053184393313492979926387189865540051817438236081673525093678792035807752303203130564584039976969955648981422959694270415055797407872266743137242854713082182661940577231462303848611076999181789806866370295248494248391922699358687579893432906041175552752154106524240786872677639124896571147224779712933234676196754582213170057935798278625762003960143144030525997725197579775878647651998492726443534478633960577222826901860242825397558177574624602127299678166429553255750135427143010363116004188364009298382324920456973987560453745715932822162870066777705667829460213788252917410596637621759333897250850626079168334353384305636997759106859147677886432853856654934044307246823357240675104384599456009003245789497970682157820316163865473195288837118464353128247904648899288325611340119065658411369604663698269325079442109934503123654419251297041902319817726639601444840279763585168457003888842705529494685460975322858002029252081863779480715609993622069185839432960542177168582796794448477012974290858911315560404426199419482328113657874203862709185083683457575865906388077967864167476239060643071128182307557232580378774241668845316747593744823842418079508470166127148278979757347309347616341800539522935134781192867916113895052742189798227871985169238715805860989462925954470015210108903854342648413037211740097041500736885348932406438787309706451509894119395288478474831039327626634639406264673863321539564452495809520360567312578987593264701622653117641952780097349174812162772760998519155726295375544827526015668663699369751756287103109061610822485508581223372876789334527925435105836165724786270547808128512427923553537936167053181160248746270840746635997384078525723001813907374630355564745086770171039914519506363167948927220040445917872902927594209951905104724863675222036440383118881261439584443556520808628827137315076391939654862457878634392812667818259292749819673713077150353902459578702052427122132764970686396122644998198055906142501934028257455087191728641566627724097597910192826112540500041832975136417399965291556569188060097060662087320625755907086982092541587559486442908650585224576684615937342748866348868872151556243994771664700811132145114351772044866374020676944922763152491488634286704084153413099325022489333528406782826475647705464098927802204563649249435111911795788279411699746757274503831904666788277968599423742920912807164096086093592456772917257898282575853629281391128434066329736022627006960502795875206529196045194321876770384292410686848150761665321554089285305676817085914251185652347777669113941044587565952845947332902517272868231702507069439732439391506117710739607486187210261444365772870729324137597309503499658178309651233582146544810216771812679269824833787468335830370619950760527933191774891081180419383117742079932202887354672722628778812316016836301285011036066480785468278114319222138439544906124705612865926024130620230680386498259311136330840492951872143257409904525634450305381411995839862147976916523991061505020220469234270736415175452690210294372024930497174009410363317443839741286905296279245589452930647373282389574063292092129144064853919277923192119073727843002743718535550234618762689939288804719243985055023747158519571121750823003637007472026050846283935605454078091069235091530589942633245922369098585317260890318002964915717138916930534549922213002931446762327793239913991615269696231749736692646987774547640969686839233878413068166631175206926484834613381057214847584501675262267958735219758954281687791298375263452548416232437482983750752715093844180765830846472681061542250284700704077729250899219927953112115266980736649697116360532805512150988234068492215692452069199478813525083213856600254461338373349666582774274880187148186041195132615895018966928316320578594520302893669580550599254696957397297434794961590490688340373224014257396447695652560941356977227716318728133574676394220662855381587627540661659060030606198944961825195623099704253781557369831582430394021904689324918066838538852600937951837623793371717018500246698938195379623698523562602334164194042356474959099997945821704649450422914596370201222547765883383582101030603096382465146980774402643123182167588622212477415651543917614829972193008091047021618447416377847101616194659836933983324202024473046941285739191026349408825425794075984992397454888548963551216395042847332245641090074587865279283714819864928377810812228717546876599601307082182077802054755286538038985462203184199439387234116159051056547786660827837656670583544698379936041279434231530159219857571563633989790575714649798335289352174703014262444027325659662907663234959160589302362115592079278262685833454538470813885543912421168372247294417172161620889275965950575524486073055927056386541656837772475982295746276323894456663082480104442828077881908951118273251344976018275261184027479769553777486363649096434888468825637187342357231080175203714745335365826617812387030095370941622966723630544333374063282264178692284541264519032610318637032338423629700166394492781313440877331085414096950782715677207127280917557456523335902072327681934055532236996105378429820025495587312976125177672230211874519358851018787715021748147308332310064066118699715222841870435927451292632808242128091155157507497523785501020414128921749036875763534607070857846509921978956951131749621615924843678853445935039731257263778099053950419398701259931528483438940750479591672533240620926790372394191853466718748318842088341291845781073334132579759503369178060638546542150096999791962698574594602992008838426260975521088674088019268136711441255742921938328222824375659590947134698676873282157348117288126675570544343579100708872100111422597630307862670867831072087076637669452587111478580170427168674773230662672347577387417335211364552007115864845926712325660123237016965305787710122779999173179810842544050059697590638749326138721861618273143793792721413242582119108668661954747207497451634589623493569020834779611736699863930742431388162962474305140793303791099476412664750931049746694526945621687046276506347753580479853595371412715907681282545591366331182322728976583974628373921066070439197840976418452148138786698967630728171106972512853089680830125104972646913853937178285070273208979483676638908581521859422343383511319665771844250397099884522180614964817804493661086784970126833868486721647250453853638806431203211659865919852739814341599173612976179816631125689094426305330476279315255535260771717311055132264770677127429924170026810551575882536575961016246123079327019089098639204158282277210373943535425875451772926537933289152238778684170502600746870584747566323853767525695438259478645197335436359664356474237578781840139857913714925770297327574168035877881432428483568268762388050844993173662204564790242590936172028748967966399073607846659281009542769122559230758537327471558359100804097901848341323392418813075946893342909979256457857229405255735534003574808256656735156604958186354894506879079567788244716520567307394040093678285827334091149494524536896818027251440397155116583195743251123944848493233053260033052772553730534669561648686271143483999450574907530838331014349577316425086887206793423485265355283183507117549649627103224808495344122030655144267002438531188013732084160933836975204650789122521338234031933962412321153121097482308207125904336586771105815664291365309972620156545103922178783900210245926794188967391822619026597527610733383233430586544989961686271439744863659993131838385454213687784315055444958806426340442106884990916002403298690966699124474906128685426323482851188005772308164379749110994732018737171369029380346563891013456109221080128371089087167177813278828099787498014175826631836915475637516730703308546768543023631255501581962979191600524614474125190114489899401152057999395516200951048553858429675728708971739114453050636471833811931232493124152210281319389607502567259344568873122423344029392324110593956949401990692216632807462716396051401529584763491088162480792770780732952949650047612638212279658423781627238116931505440257147262532719425152002543698337106125448449571530638734928053730193880388495093706519644175287995180586720198645212902630904392340069849133899697460303003400527642517314710195906246684139073071870529425169350985654051476208329603476515329075314745033743091491579746750283025458826194295205647865768742582254878093606392506074088412114590359142559087895623442773688873065219686290241623598184230267302080179670211996603174780982562334273261830309501541960556415139556049025661674850711976828311210278651685611832371743499755516873883721808111097966168689819469877757510430387632967711402486120296479879363950340172993463486227483633490057573852808636553042455157502432466285782112001246003805766159167258672706438426296359417013486319884795331894155756536211726712764549556963853083935239984625181639487860468145936682420821233419084474645192095532440697785471367228434047458676639140356316375672904260252728932256629378421215805112512854728183928727424224348909965162822320783645959678805420348392455179253629869636955453604708935364614061625336234498191521197488986080466080291870071346376722711517766689957686644094200184573065329390274109597616311383472229335653918996512843750817049235633520108689995971608367820584291912226438777920984969424084142519556339797092552922560550448339695331194174579775439940821214896272148771111461352168957966884984507393933234938255183072385848985270608438891799073944721149392942128166098184178225593447110538228705034970651198428676519671802257931323468039416115894511391437191178064497076212549758659013457139970476144092712830121343681186301893738720779046379821296153451582219481156137079208198190859324232564745757572796595469762925853786702923641319196826807929226460797476949824400404156098099815940466973300469501163435663661159283030918086655281017275539447063729755495263143724616615578793571970203855748306906811417654807774007853441286651211719325627449567523537169988219552081866636557930236978962921048113792462825083052108646259276917248124163500238570808577119550965226904293401376704512003312763601087176256245324953209893402164069882750128139250093196580437897987939625627912889512348362473443397199227843082123102061710091155785329468054914489841254122781916473465592502536155627698945326081884636424247873758542169888262059070557701069261166333726747946761863694174875396956016547469870027422915803369168363018072145832843652530140146515017104939752540347435481721699481950327660395790771825609412609789048298164220823348140904129801581777894944046167191416199748878430125158606952257960772293928562003561700366373126081525095197883775735675931990359939631963274456493962705950202028709185325581680099243195693104125304702684067843927771998991711906958955085128233183705942338640107439711856067781682467094445081338898793773359684539688579275756241836266868158492587891532124857249330650745525227799589367089803035849773903937312494042245688045042788611603503707049251555942515456674026727631906493497199115801714910106989046162896026511014365074211935870872528904938827623320080598719754523061665976183216758168771486298468710595319093031084915838209404586162943287561340162583883476338915829585238095882398536405721342584322059567882264211789807180632478933745828259373632885277327263318228014665714740008663784392665648223232504671911428954759800096365936446168905663930588058940130041289366707530610376102192426089190237771232191456341785997177563069899616274704503148643246139742640501142756788232079123817415772331215659870954307367000478902829519709698383602512943938865958437556967369984048089176803996519107275492265645253121547104196171025958211405866528124441636730534455012541412827630362686893372701241427103959850482520342620025678269741341578534198874387669227739923230929645157254286283327335996176153591425147048109788659956373282174388034257572020275966043947134576861916991130984021528207237707117750286593832637798279819149611637333550041508735594154995895732746401871313637508801431358993537323188800902187132877026763744191639922586998461183348469116280945848369506144679878546034508141387800557977990388803872971976377296161333430042223648127791683843444500686029696538534747821272090176517732710283235847552046636250387845806498133580436470491641961576445286356403286082021656619772063409061002262696741599187300910111505668152200861979535865226431324592240732370801366841970439352151225237051973462813284390815022699179871511713133415093343586983312414923223640698850558110670932167602849870758000836409594534262752662158652508696874012566124199653432350487499497613006691366444912905600885829375356941864290424682326986154623246404969958240452206662658132982577086760599339801792109911152429643656700294012901121696897025871228916374927947273547023763292832983870535196432927405254365663679322148245344734782403516005106016308950262715772692622850730487231514746397698009464072477594128862834685856023766273688624685952292630719602232240638629161361362380505206793972899547370925486459844481694297331120347736574633363359817591227605624120121966760372628089236483915608118373151014849506062789720282320096579543398778323703020837657630064693158101117871185017238838955253569051196904662109118629513948359780104830686806186732215480664208162292521154584089604857522566894361620685372631508714447743940809659140632333707338036262791413209370812240580248482747976065410159242987364529329921308762324450741948776361963850625162673057321725936175841465942602287479609153083724246611796506142231472146963658432061776256964200352431636299260913804799364561613892732959046531674114486547388604820702847552547468660996892671605051898524556131870340593309851607704714537877431187639507893034212923869459900620052634580395938504911176180753728977500544872717145107838569902027788947723448663186543211557480590896818587166578190152384333418297235985025745792555854837296935739321315356967606932748578859927550400286950170385077257165445366800852093460132433671360580944421320968032459100664847035487587268389641417324676968725666827073494971586062606270965280352486310296498810822279877846155531306439916145772535038814575722777216035580034097425135689675411401199098906959216460780738595035949367085124529351203872235511943876578861755875006675949077046564915634936634259626329040812812059801061531698164464023052364314454798558000597821208938371656251137683290675063705401966137191807318513279025816789910963111832033820128136870770416806023050628763556911830467817660638244637697120353226256464840220402065717831844714095731148829111856426709498575604201444767878353110026104490582812097717790417970069771499589505204198889521214814245098579017715114207770387691040543090290631079635761348102635907109136905081557234303682142792890301853285783345855183924548302759222528080618923076294947560779920375295527869797313083678236708996054520564857249408229051870794855694876354012491655595267520816925445210478399490268404941495317226930024019145254465372729774618575861803323767770540988534032243457991745914585780325230168266760473444893176231371138512108190420603655931780086237371921821641353007293896183490824388142560599676626224960425354996718349507730724009795160733820076020864326936165779045260726599765268604003793701815465471312230194065503925935401002586038829532287120390345299941523725940884255862361205009625032008263860524064340918946553829331899579084301858708322938876417316948141707508727378349442858635895211366225816584995163500583455969890743603064339671915920234971855325012090139294106357204693804152232987979661997916983883704100032479681968408919773493201784201409179137483733228364936034872518117282338492972092281081101977912885498129632716433203398242051714980681711356717819860209637516411248671172987375319026222801615301353558602817943657504456496338033660336796082303192074531986252014247325869003469115662776454376198985688876681313025502163338677394717268750122984917967374765653499858983805781261268844783271092980023518006991307177148088599377157339458366238385789207432097312389812622052972995290643179229803560744577569974804610233232056728773737918845165002289617447137339836075263393496210702926366076188921694472079752511117266409148758819776125839512611296016961074648429674771615401144792005800400879764754003918679400633651903643307801632590905826945769660032517021050172018523792560846573961141953916996822223434052211884355842872240323528288006493620366879800537263749509061990928903872474960912828132066313831302832385851097679914297723771121874017769605650520299161579578357346256997231719388942314288314452542687858274254064320401914107612397942094818623042614922530979384952755003434583887836842797776971692960106012739672229433877408458665261938172454201656318906420006487270285284276810705109842234864569536193253284844179233713423586802181942881878934163603522662881143543526712795220107130244976390197851927621608219872318142851706818692627525473636444529492849479701229494356341189842642769131687098395776033675677017240540098745367848036176224551080329496799328675771042470330850571502513944774453297654118252438989108348048650838608122337033455491575898616540225937820698547914649225120264142945982166500153497055386554215887073175603052347031291210099796598086713585586351701567125680741540525558949370712654980570375251045310449156381131262339830244977956095025094714573022957700180104283948438202935093372940048089563381782867245009636801632602373704717228283296434079303056321604647399249065521413664921137050629567105258446218199781061800259091204799730274085195986574747992078323328342168588866659887186897127841531701731772452175229704112754016942712288239726872632383912208194731062388366901660141786646326093378959558527754135729324960236055755773122261317608822023331896355329912302049291786735368611718933214144830516329968581532257199683560995182104171241186482462149466223090553154335409735261177323936690646701611138643166279536232102667897435611749677035438454854240845476475244227068269870508604011422284391244866123711557248950285966649823952695483043380705578789773532605516810945506660632931995814473453851896575555957847645214556041184732478385780081469942549411951748086840842605213520116129750328910742480982731537683324532346441873096452227923971122974535672399985987061125080907141054193914935343662548289871221383654942184139823792391597909922826726747856551096944684154257744557975291996058536564438430048279992205831931982765409728723392464021773403812403539706915067991741305772126127824890113629751898876464068340295698770996777014427006415723513163623674418172665872722975218425489750660143117969790049623475399293126502987918236387758204312688153917904484472403090797257424908917333578068900822460876277058866771618071198246886750504722298737326000664587936029699414655090312763135964842512405524895772675471356635307179551377268739606080387957536943481738500584987869215622364677697600920188658787295019181991009674415818023689227579130885820970811936001419862929764141565373960587348223369929080980734511216745568208849836061984702976018275867279455012782359060618305553535182544491519737056506717361176543562081251123789793357428050423698690060680098791850629688001749545687814689587028657968317864622892024955020369951819976638058811351673327157352141585685619621902529793571362161425855699012752237558664004773122204371349924753545617803853210434055417610041093960980691635315793101634449608916633350705935184357447483799369219896821622975505261114297347792502762535953777412011680938519906404268005731012994148002958267871268893256388126060735889405871388660225064850758106592207803327853267707838889187750944661997013679282851394885891267106260086428421317231411293385213163556977791719609274100457531743998468339409069067553933277383512555947263847352329933402665054415159829136367812635499273357094145447380492222177629234192207799818285223033439784049582181680602521405647614800926971052572393585152045090778604773696855729584037245342011358522460301049918349749185969831141799587178624222538168541264509100845878881469720342387312617925967655684673560541074396955180215893089911868673783619924149640432546208912128796079275357624131491369796918941347625055577578781044651175203233210549159278266881618368278548730712613678692108802817383138106609117330587196316709820578586724726737525288800977769678414801423963501083264582538029350126126959327397106616830620587008134308306025685311115709979559447149067579160339287880070711154242104467081380732878347714332513288244718390370823660417752409625148756174571381266121433591349492548323699677774111437153856523744262168772406657485634917678211852278851080875210757390340132031994914930898444951125390104070329793122748562811929997682465068703077807582040421866408237690195303917981940272396872142504888265065648377266387901485513580819688811488729389453311768246366418207562821166323359898096647260020042098975875396608710689551570819410255435294752956747993519067222466962321589664104555129118355063148959423945253249468510246421804931164897544807474808091893602367034745882072906029892420085864894837651950267028984660671999398738049162164564946468971228825031333418594063045333117189936416001067428925085226403263594889132410674458183717684052769499559482986726263208638893051998219108781665446777188648708106460626593352342123631276811224297510929217234521641356228113738438144521140132123173480197617263775558292171314755292357327273228694154010746885351401044233203800049715992411047170756435816254734704490627460746066560513081657707344145966054968383928675916400502568716145666307670185809723070529091260927280304215371468649278409816369039441507234274701299294635284655769846520029212652286996335155950606166258289678234164340652535926721751549751626112365660878561166869964392067030528526340023953103682527524685435859445433529288906444023440283701002334097487416129020092629899937184284592846148915178776701571884956290235062215538457728966483192523568237788092228959816804302411211472416107361947657005587804614249995314955174174693596608966371178341181778619194868962854261256471177969927505768071572247075021251701030420517057472717946691841396722087397780984935450641588957039528980304776949752887809866533605398736760744443471452622191200217589199945440187074540100440894243600756837123265370284999867924022199616418377984943058251344784555016591912624263625154727929015377832021438479008426191165949148567287951490903629148263902931330749226789309924991684429208746399555580948697758399290622804359251043184577974225316629352094263781743417781660843269517541515024942590924869482930725717116598236795379544334431239511013473614398425472882730781765645403714581776962098244791309774455611198114724615732975367045401580903029497993929686494607754155594215681320240474623657101439048555111314558129908283614290191354659178478329684821009903684878858039516909795921801758199395530666622497525427021818407986367577577675981149810341962035079072025777457344454529758693104835345395356526133571812883030519494554773418035602505341666243208367630194018597351140331644102004118536707356633985909235310351423066250910498652460593436171378528645724692352038222652605985750582704773169086689700554093628578980169652609716568700745323306472758252544033762114411673713615584540419602571325171469977711379241996086720978420360094482511326003829862357883730247152177956227769566774047074958469682321267577964031825660109512270873454162086239316054535770450058043914579207136768954389128307188339414464159446154798368820121528390416363984516395709287763799592470189944619086039669644157662897233667530800486433595323460876574122456833240486347005844367257587645990471431717477032339326102759161992701702627700032212647943516575617551829322350105590838466149219674612251866642390234668707526051897994585935253047394705316500126772766969894831580536583738228467119296871333119366587724459741763946352544672358015670710842368827025810748061929419987147587275049225224617308543409377825190324708050348984874018743016930654575531528113684202526981708822511958225068838949529137684242550329413489920634573096522290355376195841217553305436136916261588568523076381298147969290035587790197871253302924909813102393424795898641090620384079560922713977698511557465203269894075600080456642069431190695969720904937694727359975221621521389833394803074469370014463847431125080332236046184372695526422394243893198014935736699208215777766939153522361068625658174423726324607572624317970736147433624512515680555134630088601992669556626696369231523282453604810628343228786806052617510249963395976862461785428904472722646100445422798364563995573980572338729156006784730780113261947140654250897534885508666560572513240306675878656337199019977943519820696122230115065337030102974660420157455391531116293634042514730119040621080978227219408862171779942911534539879831161969205084402198883336858497133061300922195339442054392997902122805661893774109246794364052200242884183939592928284177166403018973789190199183161187114479557257215867651069692085775123025108512221459812629458128622460395526791302431361269371711820786233371544265191224250925030567120151158263130689922197086153009433451172608639525158986679881628977972817306086541593791245144025652554656418855067523512942998509706325289122031873080548576584018787115822077979052834166089106975568229728546914166266174763178970710126776522417366410721558799150341975242216945205382984179159933313916061455700404460579227371648003691637919533669920555617940946820574668723423565527769654125492467273400367835549553573182345089223509920962751873272645292574610970240942521630525832608967470874056039699388959769325845896244173531373376760950813919408708894132589248014238882840818426654270601031028047575699999107534289854742464091502736907324578466797624616390516979362543308250125103036740580066844398964889500552394924806451249353094757304974835676834804827168147760165428091303191914355720929407401548901266280884071681199088463863921684120769057644360970753672401391411437984601294308545935408895922066395303646531303951788980641976727829355246380610156543164874891081399562629354518265143358212099649247265494132660435140764345379386552499151933672166806756554772693926884306521514398639611360423758840843437826910936209123093729821018954313018015286093278235957142837553452271577906734613265036725363216791294059331888604163343366580093182725069200883748950676550872350000815664348894343383703339466423573896396337034939763327360561607045310438480201873361920162313814864596604089296856466265392101778006117376820679162774661894512233668961105041351096327363476401190654359048632318059862805556894398758281321111315338422836522565601611965540081677876665849802518403579463179825359920981912752798254639544997130629161782892154511823754560776196636273538807542600290661505580082053937889187175232923010147752946425869628811867647904890808569841210699776916004449981999473911999053654892689777030161577483973192461682420096316356860811497934767739106746780669595709109092205710191283728685951044972424186668245192938156557469991208744334329707689166691147827722379488167634821956648690357628587529396522666890544742590836137338884892910747128963178351315794199090033327308143158434363938414111634258728161872103628106459608415940979599100237791145120963797953086535788170117923106522206555374328696267784293605560552491085047662288632600622923162607161148689111179925969783528443280339995726620453781389764430786024527982796772619801572205800530137324791274478318869954210781506797571625725556862659662965657464607479814360439034506378810875620263313595976642157347853144664620952260366084586550973204490446937136122252770460637666358233752629186493601803450583233818153082824729399963189309205492875085042608931705310879544817814562123231276915749162736605279371806945261458946978790935551708009497965126495735148994941858489685805433877520969151153893521716765162425762823032671663937206587622652974633555659401675866251926583452691276833869411102147081101351954456292893508518018953281104369680542735100952634840119333060477695229220513663188432741575228795923491102025952195700276116174219337352539632882613757767834784179117255677020866591128356151937201258192967481507432642192537331571265583419205614021324586886322731576316664466547645628087035670177334735421885119935916612689504842108542525201836355330928405184679857364397121355041152469202069617815956114607539242062907368693586722242597204364615493017320696592428621667754075366041843732294389175258572954605524976323813402967445704161008970706332556421123501212231418701744635978122587500284966044128948991123538711513459340385748780786849376562257256448237073143706359050590611754052534678365402255384836802506113294909865010177863197515073588959145940677148807173041754384339626547860102547497526719276516261024593078602450339667569747572192777405876393588419628923682726457287789174465990735145197930799152564018314015498847787469391742040358765229054358853441602612623040478483666275248327020384721552778693260227493657718375006710488912062791383388004953612517519711755547881034891990395090457345869881642722145196709425730258626861518573143741112645868240348413044071424210703606428740813523579156134026041105671308655801316678181870920668651043894771734257457308083128451053832048886703630692734830974266445418420488300017700899106060207782720940865890679984029439835715445944965275985181153828675846265513956833925337025873670016584094184142936215933641049066163048527112065511517470653885079590532500077453402805536534999631422151777212651344350783760755648384479666392140294605825944500646294422035118830802948187864016260089477181907791265899687097625072406268099932025500047142644732163652043652940071017042478963685475469780598152269227351328308540920651679955226947896235110934229060064810085588599176334549588144658580556821918351678616050256784090800444080645991803149901773387795146745009178460115484211818168130990803166774476633324502654752196594633459532449687682856384483474932544875589319608231506716108242960220705278387107370667335660546758428480195856261120957936428324125084070189584023337005599731891155619707165331017889951819027092774659581507026511398578274001208191766215590171142938967645682980023526156600305399206017301995639174653551567024663020631511967695175171872995219134356788901556290648912511369044345977132582957894071309710686304384669770241793892350510869338751231871807055424904687330033740629979640091835106414643111654041175162978227355693112647567874296162964699400997485149766775958205214314752290706022993340476373482022919592651460226872362243693306043885362255861303910497042348337892764273223453004474215552196690916834646391627273509993698350692840849351320760838761830621180466916955661202827331467193744196054950792690050141155271794462853571162477236495227162690882707164876640270792033448850426889576748158417708941896443183175781190267799045370664211719121618999486218450005558948981746254433999911865674191340461154268935864138632844083731094587296521378089543540673591568987042245561684609312649212772823515885527654788989457308516251388590435693718041935777390319022799782582106393806830405322180712165082948811727986049720352534647841315737085427001392505483455797277885574788288943848503592255125808517104904513266784261900089909722409139489106983832624018860865815297198897512780483529751182565201206551395734184474731061237795113156645933293431264440632708114627224931343163827334045048241157462539453850840487178988271075082742635444960759353249817920801150352348191738681110560081925534505933453227528167013924441081448647093268641591633105592025228661283388846889412041285722706545361619631137270237103262606764611580652993109796166963528628553535596001793242838630914708059076772827876150155968215665942204512443549554606212205883490048569765151812941692968865797637408881180753193521572915947118602587055759606268137663477386641075172672213602507789927522243695121052158148429043445722719560811120659002154630806448086763654055124540263434824161583355687965366872015438797495734157438746349826731240960308247652787330834722511754241180640301346184929480456318611015599570902249747625022558490983021806004738409263594053469995265308169746275688351741163550741554877214144456502253078183146578947561573246681093981525680058749614103370519155281057917258933824916079655691744782261414017772820215401727389915443142773327349856374117379901238690865395065005673493844730800787022323278185049929547895685054661713455805124738298254291294381112715018462238712018563454931241512032031680849124551403124287330298176607011445560308368799161477582454550845155284529792988932517881766673685261704960293622684968615064590729587903823681371723252831851512587205129477525973275432645949337679332341794505516302585998060173963669936222803725823328520957944391530604785180295873773208112050484229341088389966299830766851393963591469652437735771365560619159577687716919590426975004314109829018949445839903037091233100430832656450230835730006852616078934140621397286825630982744398009928849716836311578460031782425604728369521873086034142051955523330820615840359465841738568825651224621449768206758583521434244384992730682836424778456685733645441554409292057338660523945765753256510261215184807415651294915199929510045082596941343555094388606919227096952782044828623664018394782683303637019297959689700946050522602546071397362346706588289043457325982217570498403924602738697002153937772253722724792056589556494791948696761838006177311770480781254937221631881684428837237783861387605813591511242626422954182987460102376288026105169574058971861227254902356526552977168661964833569359098181977566484274119335291620386214262130582119085723628907380706040464706030135169132994983057584205379045210566977756662210359413952220538491731808516412256653047531037080732358975792207951839262046305027118894372992596509551407192739071716681806287212891707636826483484569236858204259281554119923767962890388027202699310478413463832258430206150976501345574694776991287643005859746647460531491183480779415889194825903971000979018203627294390419197450548334957521433098034930466442121244290644908980336881938342952005026287817528641116013368337358426879998615065438892278765487380938353243179607493228997695362337731363158252045383827764137267546629581982380907395907603810702207094935371988568463898125224758935254418077475927120609980263011641191978542477491841107882203277264913231260051313987808663058811011238396230403431216404101079515245776106788504690740195836727551882567655169447951959910855396152817551917995012181233719244218023756728901580263338238295528050370375338325488638063797407204801794938151333759561451257110557357938534161409259892145225118186266524320380299452418949225213839159076725944782978284875862038674564777715515918807809969620826511891171391167013271272218223101080512461398666261729285369707955460305153610405910110576540908299058913988891029879017587975943510302170865955435257923184002359529001810597059817406228969290618353115790291015699057264535355754754578697973748980914303838654288888634190815332416836761225425898761758009383160199720807529156748981183447561923659402404692612229457496200913223021214694717852069850062553702885626009735836922066854814690707869643376254134647796250008289978219293122183275749376597841424297177227919447102212162184135846991271138863753001372680552704253560557913240737026550960961644737378928075726226421435320351632075840359016260782455028614553725003021390373256945319537396586503827341315688870935114951127908179837745612597559890503343989844595974089922244832685359162822301558933861012286058051633302153636330269929168150957603463574527450605930158801545388942464582627015631232052589291423165511545963237420274525147955931381343095048716477956651461371871686755325112441276681045867973350041649237607358506234026023354637209567710916006420104340616546542148764201989715109145730954475690760310897621815766755537175596447487000596460038398929675536817898029283101905214578136982471917179207202539008276697610971124349161765106735350389274325680129936102554303222727131907818533068568688828532775265990065622435122516734011293432095609801670443840856352932011875483187221899622734149243008302873536036761608551143678622429585996424370454412963571920093823654291512053778172902528623540717733232234052200692464982503049832826395407967758121827850179184877110819992505060521753569072195026220968662996715233625837264347820130817187437312006005265401115253376883342403796582155637740076203678891861204900823658291537708165604156547274467920520883547066810664713332199605713322680772599886573838715184197403064591780944268995138021608009397549974997235627160351233096370460252065313953469868928919711848556747049759435146851199231306640502966828147537611970326663231709323257811201162750236251344903527749767088337213587255229662674126340608735119122241061845651995974580384972568743137814562961210492958550765607424323058211504183341765224720317063124542961732484735471345605523794375626733516006967226407834132420433433678340994827593043314063678330300105017360428878684441442823245015309807631469940681680420855311624249180761791626785516871104079095146176906468518105799349442252089562490658021389733991101153788390966110572776271021506844492720856038718333775651135269868434864365259850847061000128635844563034961409304926035802036645075847380290042023646808404321558834192514642545241491454996084721277763305437336100328864490247232940861452700503076321402531826305490281682617680117215562212990581685598041553676630690646843970492544473951989814740897550499627076316316222796917538484875299565616147094342946068744741738702029115471525141724625677303922968528260244408687082022392445447205774974113272026276227860464830559590934211589657682998586839912047027781714812772685234251873200351765456244282085735642927874790210437953705116578377956807083997135779346528192009353430006831469952338524720556391325288887501540970420425955323562817301835647956027448644060747785010628874839280082466122031949809952720970350359472350790011467410343857030510943741694604740493307797815747711936543321512875273405973068773128285790335633804674741784759234828812245886791905318732545641717176647316215471477010892233932183856261429264205725616940650444476360498876134111273237510176005645510856020641774195516686611413525773800706641498350263109951067755832261435203638577421738434670420888036016179852559733660860731028785531872491846623962243176407010605205082495602468715035064873141408793277057253607239381051435723995474645879194368173264685557022219823811832224300525209959806351690322370028969729338969511507742015978613298520598455645114443307744012386924705063279227138302495817504531296885926141279564531465010669995028566494808471666346880553291481833861190287635291854921686356743478199160993634767945967230944951252342426014014899338781796389625194966147016618673730436178884206571380650415280764319243747996380627366739412995989462359740012845840303129435572721486773186026522097606845602896157970593612897258735161118341222263959434894539555463687979090614236412350300467578973982627544024329729685245621787514532382996801393517657174838792875140462982155046754703238365362946512662969573662616982779722381774468722054918577801996783749323286032726782675159489210120295369233825282550434675924287484934841970037075347697576376306115167241485610749298849457770145752687553744777608022554928992866795879704711608658725342844059264600804364417909014054055279953777123969170011696419568582907266758731282016700147125671138034847656247834790503502105095849091455697388541985071067653188632155157312874401935113581922138731986398225246170183552792481803506245707068168018085439123268579160499995127721935936076429610770655012233775382904289316935055973379586295743814257893915944841588481970037027705103479559182934563153810295153134233265587707982754852877541996218088629670572565793731019704522875332826502326671173947890334505471585933624824078290073237777625304337669890096867602027881604152512770702664096122860251365615769125062619836626992986973062683519073788903023368529996222302696890452384728814778450623693199570120590331157582679272307622398824069572744242289855886383312605996741664474069834457327632271375282322672186631319160938402780258755828357045068029515243976037388300131854899308605586469026932138407390369659626709781557625363100889625474721058210471595520077767311232247016310851966801760064289933955435967498326988339697981032198689184132396825630720969033183583272113143431438474361191770446218428305379397832228540885607731026424554976197634544920375938154490148780231102619878662024097224935948149347330617415451679171535344040512118373472131421469631113230986033998156560760859080143930893336147589302709030755561573637454234020702442514984177004432989547576206215781743537044028998203258618317361538043955231640953973665509764691078422156003587792740973825068954608271144013411235474517431924617365541497417382036593016553734813808677765316886915546870345193237201739614288185731792420342690638540891119582233024660335218233697435976780660684761952781843500047637041163454730925430989731717974096293649096887633499914754958788234655003210426089627212145259414844287178384065898481668051084173848666579273866840722248995140723765384539431356289156227328324895370553882834625875540318586039092639994022472259220839351544359438914953745038836183827704355635546051210271863396982413215455561802796319232133866755118958912091672877521657666521764895417007214095312550615243796521207143896168431420878954476135920462934107708817849496929817186877647965397403609829283086399502397943283743835294157028845169771334871762020011691746033326869100271698844678974201397798006305729600301721612918896125117715326697676924333154367504383569657179996669511096376482789290443616545888401933205594374398055289792599773863093527299146507588806821419538957753775759242335454579922199303835182430681591419661435886240746814014286325438611725888219875613414300334080173059193515835963699728113077088849242441931899491881016764870899845901301281918764603817401191176775051288090023296365279283930267311115165186881680836178008318576662880225276214705040005621817034341494140870254416921425269608748008784461065649223204168039931382761411885998022236491301748540299400640169778639225253040993089637388929972822333188594735210348570272592050371438175581487231272921121435925863496476008923129003163978868361215936041058239084608626284293012390882513363355195284175959177101004756031022789564305246330938148818240003617174933481959667755126533653700236621720504658140882759040978298425378880137299910249469885807094297097077623167511549227162466732148641259388915327418084286413154804530849351076539415706282700916695875006063304033392461640695302854502770359234402192631487880939683247814406299850785389952487935532206983564412850834003136040273252284840998235047772236571353678328459841071294318493778568391404172585322213848166172768676026600176312296626198118559103114822272679504065061163906936241791792461108432451014455278896724546223496776363771799883281383680067837856441784238026478210489371055974864876195300337338118838905111584167414136958328184388045509681897192146754609739330272908114752689322705252995749691558971511412971143204344277659996263415575212882379096558112633061032327392522772965003473171536249027601590333938747107066561530718772554539773757578787729114762088330562785082019380575972820652242426428201461049538346829873878652116925404898007736790009657941024050989762683202475545269506445673901019433311881786863654431195323376177357222902030225797940325522088547903662457129635338441269004255680749684709080752851086529849618404802533708092598880748186662419186268775839331713703280052572871677310713060017860020802433684888977433371965608580838429432944948561715902867844181946265357346177903176936007661083863667746284299340026752181596601050200913418704071758206762283274607901456405601596019076403128420515362697373637686533002941868886911439365996364213561581465076374669675076162536084667022730022181412031562274490594978634792907549151098039227819010724335852560619266957512957790923239716036289465341008756324498053430888187721402332226427083119229448644813415709327772871130230614828027505327965466402323622145654826474948722122062936148418137100431213840428292819280920592909756206513664002119348262411581728930912383263595615835401008244717041460818300531910550523241762003560582049815461129037725410870360653573215922911327009047290331101490998911221515355373973258980309492419581566026369368880622874436241564524661283459129413598763297552899197618080408407112949555734338197072117117236906579197881631456046921058386814424578413889623962566185061606881752667413355458902157412521024755186794522067740007838711239471713740913235388798658243096009637450135608886731615900680129887050522185522279050350969802063102210943186722973109107317175591667583218028893438548392946772163677993302705850077577293242031402992676638962492922614311668184346517364402881594458137046864723098942662430429893353039156785339798318441136674702957434991576123406301311268062716407470443011622043570215689636553574967159622448769917391277946451514385112873851808983141195905363510100511610713397284954574108175634981636689794307911430324450692115156658464573907707669899223256399540119829164299844403330992282236196833375674961371222485385117231578342850327125317683941121006898713230171987531164675628510010587696034614781923675769238677262266141041302116401047767846037347520426545559786944596917898877741721527784677941723979748959571623504992838335034003159064111247954418982522644278438849538357768706884718299018835583980266790185440894480554596972411395116153566954901806639187163104056742912978465441868610045696337878280689678559491024811185899106283253781791876814588781652330266700828159357586742852755122168708253997222716972217992676114648431852477175193714077780779853676177069253842412611741794713771223869628947374484237859593096892146948024425352685447273191861122242059954144267673589260068882055741306062357405994135955679981427529893089158735668361939444240801703544829464583713453701325626362216357248801144714844836128942640857602652227206952041525828208079293309206845818832610203367906187025966784419789786291549084134348285849822608534316415379515147438474878616972825272040860863119303340076856590302105668717702874480957682993752629305617653938126557785542679408355687410796657262611476761625041535674267437448391205497087511626502037634992223545262349678255049589552594365148593184104092133366571757845566163904103120434664481567059537025381210882382929191009592379095688165007451573125502299611580974848471748555491043111812068455820617211271250393872002894262367829359932806171134690362638084272821810422308644898490738863683375574471571303554119274999210705685299443507553099251607222805754574870834381746194366619209408115988185962912728890118871367447353793165389384835327680571785588049796586279394803450883063879810139563382717978318927375093413924424664786006816858617894900344775294090377174947696268468066416984166721960172743834855775099274974639558560068870272091218940808870013877842391796159620973087987985514512905152628962362826998537891319669356189700811309999976347471587642600635524515165430328323988183978984044691189860207450361146823780098515624116123251652117133694186219944457681192263470469855724036126259936278559181211920842387328696837711334766701805069021294258649242560129548930957225729639385866972361275195147126093985543065006302927606135498020079197861741166002782012808492748877099008969049671425566242707004715432452418885190444341493040183458204501224560895524960998798367885185036250653926155517072599006251103164283127605600832627613446865355151866990121424095973358730224280580827338053249198444267034217893867892908499049954490691613329903431535794528387984577667403820097439696634850348184980275445041428209454099885286800313361702499864220960876490617289335125905864205734916847444519049514632072271896874584043190465767771595406042260415400036392575754621048612862065112562580890263453320373146590093689734098061233222084073200955935511778127067652425952172217217841750270407766958135157676694556885094936152833941324791064021821174059518958151986131845509460395253285901825826773527943981100074501026856369534808413802461928559110082770637705873066438896429175672534470588785038792047845768280216303907060711198686223794481444055310569360044744697113174683183325388664661774592233788179304208250080456123115446711526227595184402373334369234389456102930409353046613683604451499338986913884598184743907214576844502737819312233510375052561602024657390767943288980923438851873517838107788882018259801310671856220486847542231116483133037567768038927183584027080813173026570253876251808344275900684892030801379366221966490234410026763176185062078984576586171408812835373209024790768770684925979855504886835690281148672127544400450661736952415774151469756837057000972059378407445387935155995028104661454698336488889432009605866294414457651783361983871626302507860922916535529654228107552353195857066238686572214647840126578976163575479065588268944777587878590547421133951950646208229541519894278231999140247140870518976264719414872841604755142983961804650345411010510518735687156610122082111935232074787257992219624487262251258609976871856518316918242631598724506152606258791628872723883774650205447945345511643041526436119751035965344160309300967925005376643017464782044819696958145324875242814295981812995410593410192138290346720192720886801598354218272440292350596944344512494489659129986361755651968978511187195649270732664425171753424464327258447734863818255905357478487507344220761697277818303524901176195279013993032209967871592389087200970421610302183098546634447788651077941410063572304702659889087532205499324603239027538534003912501199205769755670755599293977887258337168101206531392490185932298827499335364619509618627149277849171424424243997850767602693543681817962706220608333837142997871963713918630104682712454247927298171581275468548788615475760001174693919151362951988545025841587140199909249363465164191134696731168700759029047045119282660117639618849533624334670844482368580181414142400724998986665323560417652419695583401795157167319686306412101646627900053982871257593519216284063915830601761244440865729080712021190434315237328840756929473930186582598666976744135916709881664728573869479045382048098673363518358935021590124533856848106091001558129078035602829530319556300548046365498945816974490305273402118749109769657861000215094181589850156901037556474305826160865756981384256640383063172880223580433723004606318123540357365289565664932497623984830662042186952863216708063204060903354324512981359542350615540229980303354594876297662719288622933880615726816844819058825711779498324747405434984785831007652872938117140426657269961935879391688950352193288189944429147405495182490949998895868140828613922583089440385300910784906297996802575226441047859599139482473291751673202993211493019519040939081500700076429273360722500938469864958301731591874268464299858513857275085570673527380944366990951287143952604501287236047302937783094242739510904673442594051772864557302284903156814830664862225774387896820808769484459054628218638379226236135417417530249052427344961311258120047599434367361715985792672490374542269966015422713092649186842093895174119300387422713545468829232530212631828779898047626559574131734777624691062813441944021235334448938781201971744654325245184622956922652636918365529762712145198684480547001215346380463836968978785985310530048607548650242629453803203564304504556816731496496791103992977361173850378266255688803026096026014207969199209735209843757853220943349455006211370074404978754803572908445152377749717695154542900155161627909005849929202102904015923940120583921915978446310085885884627807175060779542566043577629529125564562665585748594176191578993373063461690023133616942349678827996374515776847497354962531791731219192132284453468138774968466659887615078612807760683914093572901982611478334952504325066209980262556621525891201347667779480924941113431094086021606088652310146850812046725790491780873306678218945240148358792113329753784623010442409771832113455985585299434275078787376519069164567575344167571301775447920205132958911775370102568647337718387507353640778034969437067316173510672270974797799001467203628288128969924338734935821566779431833121127074955899183519619251699282065359613930005842131925061405982024085278506416975784338918897296646057420643050034330936718545145711778640252021420983074730956293180265168479636205529095106513560389517709886018047075551480449531977115518521120249900813992561470025225418740683360231714212921980534576128957945896531102896784996605882255688474954186071406040319761298451760986962047962081706287426365838053829583931177006587335300531467584826206885402538039811464460153161249521838540853095709573289742843155091154521675431505706081319067087111416249561832372500055015717643311055238044424595977388795885992380719338925472455874132223445354635116628127133829095489682483790795106245907638558970972821140267923541407510702283432572078683287391565502213550219734163053606836106196188921369989020135884771774661671644826896664526063250237177609441178852519884327098534196043234241204665616397647899194525914744003941174558411127942299196753265966253426398982061911790654378591680937852007992392885676927959877695980223479745382983405726142570502330482986998346921221771519963990316523334736658214180952584002040282019401567885148775749241971792302293831574079113086122672299226689086628819616925905812877435226092644255612611633625292352867806737288201607247333954551227684418732351332447361336853507503130855039799622397452020473836764901268024171265079012663192359588779301111756244303144811286403121532076519989665668706835766782540517616834820361309207305234415720747893727267619120953034643697947276754958727254559031018972540029187999492385855552414296892493993858945050159766704019069216520548948919259877824643045983661890708235962576414528157844260217076071620379651262451239999384539187471582020839021523670169638007207944950148789588484815052255882088706250501313754990647571688720393541880166880270993575945931279585484827940873969123380124687417184480796392223603392419945359815904013407038362534585500890740849304299111139776026812428861280801096578062566633005099453735603808836266258919224041176998945508899107951964423374721792051179995222031480281261956235005672205932759355539426663682302699750772866690570938990644331753472680689851370779650222891704258149168931574604536812519877097643262668719659626612874274362254509489228589330548221239174340326826892385020520639347212198405477653828338918603264275748160116538525497784373449157357676503063646008565705358309694121486817171678026114564859670715824685379199227905555668256333747637837983456313542459913213232547973810672683626939498219677589793208597714858173184663181663498870826423748817019906714017991957550878999571233261942280745222562670469458218973062924179799714185676065231538882735822818100558902172368503760502023202981913404270048500632297980174671383230423571006523928169696810029045359587574126927965543140072094699323601026339678067619705851742890023399022967275483567973638200056635650692241161050880329716351273447592141516662279954339579119953075728618685590134468895659117813064556990838974407865334581767539649175082622069916119630295931330173973870310595035094671080299399872259270109097436132821264702425714622295445011953857666488488046801816093651842213894348408742401486563624488383037229588053992980776907048135047785462153202475276525695116219349061663347553233107385269276306103341228970070480544300313022243659801094002814401816350656500032682738586716845045155137189917624782870960343377410635236163094102273933021740236117170766231063560136160801507021037806720616652545987873737830569506244783376749012721118386098340313403918790345793064831940202388379630434587433031674292642488509605724454645020471944879165630320174956897248234581342321995634034056055536197400458372834490751658806553272236758082069546361256309222133164352113395327024985329121935784192397120268182832947659344445775652933007789993734013191554754186885747929140082881338647316254006845333831036489918186892838184678647400157433967643290364293918751550523234100344563348146789925147086023429637148094293789276801663294838681882664812873328113332325856658406167013043548543576689398838787016497120390052904488963444927432592885970859895128881619048283018000632341177484580819413623223391418854830509526927710490165175552687821843604906690572996026747203927551439360011808310816675376111053960323814505093401324243336544636870634056530569009444432678936770889839941320152646964823465284486005198492917868846854286390672881790510795981328984171609057622773974503770262971431137439462443944202749568511658698931406864511182805302197798439883496067333091554295743989229548285744969475928501043018598632075676217226781397219848978667332840984308256670960367363396623544396750930435564112051208495446988335111586693480108560873095565070242294984196804590583211774470971059691489785917908195625468412354422177576309883764245278869076209086330798240316989555830567490678267837465187162977320841391500583091472406279793564516575884501466838531973023030384522208043162008138616187946193670890306928445499574390776377306830274778743048838600596932535423890529990316248668289755019538039119414877861045479274423640953879825558843510161373414691578174024380829066739539002874927002694753174478408184989503252994184352438298575786215167668436424561039644599592786711348015026008476058572194340659328902741759470550222516057776905221963801682615844768089420616544351361049516980512967079627364491950559435329909322706705125784733800944576403605094169816250107963884329046771733982982521995928252823510078546396979879339163060967873672016829162306213165287229569917368988886276342758995866962041419179093693476201198564318231384566254148209424182955711612624700699336042507579014574943064711971757700382811829842054148779995989354553307758439933166279257967711440345638158278233036753458537972453743478992011793769395951248691028827571878089941657851522281229282483326458143833402641993721901141743581903461644369779202906573610439038738754456893950787603434136872657412446801509872530804124877519081049920306036909961708263442426592602043116525958642708776315337923074193674082405483819589196734116995451704664304200699199422478494917280721054689867069850697841022542512982060493676990540729289303213235018783289414455411135349173431059615295924628783801965491562522527546524309041936556138069223083914398869975074509207499105295026091886860882751554469469025774062493793680019019821913013614897074810461622025766832665216801078172025659267274118354376520236843195628703214324318307568376697822150455033654019853578481961604610512884496510160481647664361434595660699828203983821755001526290826887028689286494364662232906398960817809323870979146775307625324385100262996842662722702325264038239875455848259217602679280160216203148522976379010000926766260717136808958116435456231298921327173774400272302643106111209565145031289420757900006231865386884848658247065341671642330967990150047393448565836018634933206894749928022428736492119172050052749219223743825773102649724463916837583087832594473678251311092413247570534705411267921748899092941883595815704072559453221963840954346882599014779515082007870405292585600137757022413846987524957756017277782108310564952068735064652351416240589902976840613107869197210143222565575143338678152201244603812805435345866953634114967609854800929506892694899266313748824603943294762556836070859792812579717726004986637093184357297453136802698371834711197783119937628329519857360211943505019055066672061635608808274660799760737873842794582481038043825492969619128684183763655276691824207232184539093483511722417366814720046205160678892680635981836687746986999290246627638349863077950756204390658830286632694087856578409382312039490098517150815365356737817795219328716189420405334201460187631469447883567258670115971614413382884064925260137677179457642706025095421149110771861607305950029173545409086684625658769168792227230557980523540315621318015129598039168275444197560919968505307258779136685904019211073094863749375775877205864986528985961585430123107125179200052619305019437502552556549144310520806971628411727460678392211914191116225826132453131930072045991506125393009435415960237928505164534783386247084565102393693402995270260523458606861615155309472203143291746680657249941437394684854303271993243940915779012103683868006885423811662650591425434779535180138935709036536696000728439276505753158285771491452027422006752566586792193087316152029709220205292896597865502160742297084167484689319439408484398625522272528600640872562157865981791017912837207476681430825932481917056845207754371033655970425909896325182923087653577907809935806028624031644162775331128753238241296615768921071890055292630357238000218709135807798677955074471290948801961725684001729370651807339933455851555359186980600383270436910126203317648182259812407845374622131144386182189877856501662625814693301169895320856944845363277769676408709321721483605367167097656397444936326864639684246139656872078720763140580680199748623720208296761939743812177565039621891744242893086041421783151137439368441056709820539657844917138177347478230256138297356485845928690649006369476659074365554110977407348293794858617328743659578746588058478753324786791948665164395169815495247854709119892479800453492660652008227199066107364892001128744931208912478974358801523220587046066414361962887741233460188337198141535338150536891335726897232870532218412981220232930645261755578998462098898239863851359944207293897566834169943619479190605981415353565729631174836113123922588304147519452177151523260689481985460014777518684547999297177323763198168341561253172158988100329133234509536306478366084195623953889185781030433028136295303080805456918427987971235129116941439398040617089547121028516607229190402548992609766157696527422173141429605768019916761673004785954437504128020021859066203022786749468970939228026986744509406964765997204115395484442322862415090608244725111835902434480934127792937167510360304356655975754393367734262072555264030996216426302631259524271980432294441134794698068162573295995396423376572164795476958867477610962607899993450437481836618832625414895022910662454529332707129025185797643770140343975984725267116033054115086497072095081838435954112882159232897542747155762203551297357396461855615735855865207000295981952920434409299763013013191572484163884246560788050231636194752235104522814956019883302400695817207817069365236038050254817695116633625410182573452240144854843675633370035740764296281245871849714028270509941214585384686239275027523297331396492788857702307095760169934379586939913981861983662108187792248340833583490151089115306612217826009159579052287214869127698572650790138845303521300605602718870099327352251793561665458810892612450744765916135071328815201656672018118807461161050694967438096444460744703074132086174454893391138429269431606544368712575893157298386988426391997602670411367116865576050198144970870964244978993018982725263257694657412166835424483123212256964921851189894638767610027868584043971706712017497103334689885300176133756997329082291254613530019734530806195560459889790057292502896254674785557805449079011766190284206053604218962863825473816876439640040669129944019983061112483436709399885208146117410342039998698279403089145488647357322484448606124244852487859983215150427992512133472891155162464747578408725063206351749513768395177757157211151037844218416133237304011137812776513553287308821903196598132285696144298701883461431891334741610991193310587279133740616457900606634277677678925049621894067586868562497938136140635420885940592608179536192176514881112355727240554612600375597443440839995148702852526414673042956254121797998033927406619267357923119448088586297702763030026273735186030311763862410096963000367704787411488426783857249220624209062784781553702459797748341326558497060145048392593577497085998934040534506822491426927397657781214589151867755220573718226206549658335465636390224359091056084312582641099540987909509218137705767547174152897850707969076049639718161850746161039313473971138822488244899196204674901348882275362700249563969988786777672801606060785533386151790769763180175861951905196307139939680609305333404164384318235557466904207906363780489760857712787663056940071107995951800860196956520050706713016154673073647256664743002366260093834315164248856582289185457566989126873166267258946014994382477182499227334533562867190787372526059132451654250444970936922012361975802189701430290911487504014497052601427071274028131295155564715775937891976616832651180035831722918051911410631771219133343566713816614704953002964818764794745804106089552839418102116051401515811830762758784049286493012720073571612538942466568494821899126984828048422922005085729214403039428554723522386563019503402551572498488272501952866904280971492896694369934969031235546748275072447366036095885482451826353844944492100561035467885998916250422081206927463258779669591647375449682249179679631962313037549970498765574833412030102353358471097140810598053543059293893677561122432360288061590453365215883650157781233188526535150236875863214514996889141398178227769620282106925015776946952576157741830290578908166114506351032035503000926638368434451633132785421618358833199249096460525575479100333245952254354007383495477689205298655778078154017743877820736669075829032363570909295143666578110022307984698118748580157759158309833544053313304246755707946114302358902418586272129690083567278902258884019433875112432501717896507629578634830085928864059222151291556805059828621520107844021163221135812426426076996967382023775635017995811726284910556041195309492384465868038738439900853322800248471656583406352413591317411023576905337709389589834252111403956038333694121300787867090971818906912160068580209659011694547198147989995061132624217142799394153798267329248328303111272753600353586976013447121074478488066584660650899740495193830762199694090311155753618063125918190773901581923707005486955460099049157179957501058913807982723085161782657834406998275542069241028265955338369933371765135999832336443403509175548109731121602315074716936458982603083578888294460855927558253773145516937448289502632343301244524494642629356422350316759765479267579795016174795337967905244307964121926156972702335480922442965211263981147574878627637460811140655809062413732957893340515797237848941369168444879822214643260154126247061876223601569063335664548304831221961589062043556359949070751629961825394641550707675757787917924860427715753284954874007432028061656449334086609501685857305363414262828522300216048969422424817406872145204469826740417572957531034545506855901418141246889646443717282583267576341002106300588142664452429893975972032526378547019267252610824208256215819984882493674288978980636801146007984386717925374664588852779979946385783321834693045389228674953792571382580309309394870580821260151188348065668663405638136143526078800854687606291841062563347556946138101807839365195371445419746088762939338342428653593003372562942716798581936835076765441916774320269460656936141742401614653908025055151252378990942989372841694530020959694454411538345972042136243542403680476015639308375871738970372010401043939418622715402390140504972081446891558297172719489207030080189882540774909493025478221935592204701088338148668844602895702060993960672713397548893987097731025621874965760245239822131385644486747392217114690205461469523944578118229443134568762591132005957120626427187947683431829217538443553529249267633186730804961978210474964201508998761611298427640554013775750048063160243166208450344799212252219879914010265296420972182776964424358131575273186423013204547882278943412132975618894930693931989773282258968732757085576039458242935039715659528848308046447740805473439830062050933678839534600153614943986937979685375036455765815625723388852674615994008638752978225643794020973093071023658299425722778190394456248363431861458733272959148937710557664976775522688096520870347263189546652611714771977771942249034713107807244373633231529842979317456375064273959519566199706345558930020796525320672860551319037177275759110085639771849280718232972980733262055009830253826693611936177196403254903781695449334084181317040266352848897435354603508116094826206678150035070091260140347142284944829941789418462687771432406787103350438459031540676541108451352837222688385448533448061557069900186641758452310462421488583652976438378668746437643106442314269756701970517221352680358174927691000061736137526141875452074246102429897980609373284787521500136740825806346767943689662724348450241024120514458311724285427468583957481499602601759560351744270013274193029485076637074254006155151889356167227703000872287814016395080471471114056967569677520529792585021086763884550218184541681090594862536103778132382530296853396395334039416465696908354777825391319944304103637247602377823898229954949284400233729267370640949363300847522477444609382695109594921921830912910249477512567363013486359636192764494730135338220365740563388681168896991680699730478745847479316780743836356420629545983117488888403023793254095915344887298924394469156064357532167758745799839171349746926788120662923738043919300970038143266535740957709791520502013770001981542655199297150699466455241454035069874186203831461369037354921168237605437929825045961240483416253297164217173096340964457357208918628225267903768148137457692318600491588702745779357745975432380990688197805168439335750520083160642816033123606046547023286373772913693099409842746816407278647583453193020774306529354598458110068577293699803088998623221195485020454922064883175851886861375822339555190512284979925591256639785273957581691554495350754101876945439192706983667390321551664579378173505282402920175441000223086292273959320550867990236805609775587451640463607483312645108502118175138006085145936055499724622492196519775180786670257686588679247232610404851782791791341951453954485272957341604128830035586112301738080598096344699310660163052773271220343633682814592823534593513048081500723872832295731631645825082285641960109614367273972629889879184560770091078070317204578308405898141585900778453440085582680135304507212292515836616820128361070810299738331338459351440059120815253848253088108050982526844100115906507534362180538450903283000810702117816095296920622004973719913476734068831646842179698808567713003489805961451959321619853490746307000393897657461060957914135582902189266732463929887236542875051989196356298320326205628956281936690180488092663301696877015998355930274364681864352417608517744243027076065840071089875853484263621862655487984233766891951311423866362682241912565612725579946862277988466480568724459128194835225431089605079476364854149243896007661489792786800563760547461683513823938594191961788006140478030370127593727684650870021575214013691464739863811581810540703095239059282006070531238878437698414747058787817185847074800318441894116494113020009624853956854389125264612761362884773085476231307803856223311261372429729596064351727838107570770294968255696960304138634164622128621374041592212366414869817651598370131679556529946493478189707890098230809499461524385674461215976531945794474656047180251165650737627372392719575740180935584413314185086867745136258893646706019572934394291862628040554857819921886407648644022669705927460497688220699443879588932011173867636376315182050531182393463549956160224632643048270866252951138916722289666530576935211387902199396466271834324610551918772328451182324667326574933543157449397305457275469057154480405030486431188442657428640331885537504323415816597087226929539573116504285219843626188074082459000175882035853650658524729457541000419369505776306476293309077932638349654947511444254839203808532137144182550694649583868777863189739564438722826952714569561790357352873560717625141448716732358945066257218137720452725386212432143105661178564069769134408915634617996354806406099731136039604556056016097597695875422528364017164138412380114131225450892279630631019727310878204387229549112885103778077188211281960698844587671413535519155521074893034276386088213577849343506270787449856466898859890495948713849774430438891085855657458122795015968717056516778030958995679389762146837519129034483337338818748651739170321400547882565663722438691295570023812717991670402044865573446778746250035737552566635540915860473556923891646736882356717694011491688319302836072010456916617433326774245658178171316502387338676494879524323281237144464338882227278984208207953743461472476666314443846544706041421334484126514859602777372687357137300995027651301288029401617696808336272928829292611761567007145349906457890194339851426441466387141915042221889418094592276526712660143947136903762384115846428883467549234813624202675504476691865663447017691828483744395786483661418040886686081461141035085391292559111772722009669768347038183361187314310073771802300605899208856164576652027794017898798869106327803786155951119652967818713984747095840170620402900847619093006946354462398775132291763795685727551092512773133507177921594010064466943614481322781601421292288352457546960357989492342284780422090881690675611783318300239553561224457315641312010493670904001689399666009214390583915328612457960361246781811688329090896698725608138729409511426492731075406742347119606408489817244802087188461684901824217460274466859739255225192737350638696366000932218252277255285655735663679711992305019967871872441946180329077819882393534062682995872842871354636310028570550771315983597037998678445627705611137254989778302793801626144709866699115974952661849608929658587511101511359007465811829616152833899761913513328890676763173210697239862595640475045328307739837972858521282254560566247299936961153249939424272988885300487135443154926203374597035446761137650271466807999913379190624045844512028520061212535021816083237515030501965622273741999339411982755648096392437007704959642166699832461743011750329813498793835122505052244915017330739853465340507408862314723680433768365122703532385538319584552575247171802112583901250401119227755145103636369312362858914759109327416871670537118263782490102882650489922713619334830864407331638826122211909396398845172398074064685213946946516562423960470350055998901694759934152017507593599807829237018127762240079482309616107121166308532087912420668478764090568276740930473251474128032738243994011185159400158003456315011632217466397092167094172310086492415946900038887837152697459322227230151002285933645159951665174300032382935359742476210234881900027636473581857096571507214430739871247017641311380905838165658290765568186629943769531112538264960767740122693789464015375278261207901746601304895544714535891939789707476678712550763951631015295170337041989025621116167911380970383606078812712935496770211002263032732138297088057076905091837214424440065315084778274904624317899349500108952189145312089666941781883009467160484346241129887408061256509632553912855818276784455722881554207824608261931279745569037639534825428035748655916159411197960098915322700090663251222964764944712827979094387353620959677554955154565808286714423269193525703198353395545759344798010444037949615831467449092977299918110683937442710316872261600838379941937745561474800133372898304238422914325254886658128022825946997096284387214784452804598335271138062700811680613168597116798813449339841077296038724261521701010307778763486924224119333035520727440062152118745473341235362271789161779886100874220119222083316667981881506153138213941098174717628407307841425552605560745670265694706462556293063008781447983428820474583652431338357604268789259986251841040564570489769365331919340774141376635326823634709387698545548716278866702630837448830851273070199984338087568788101496433225684671364535195656738568773541712600288212911609441431927364540133298936012520778272849354839525013664031459987389872042331458092856483199809394812308061996117257379714659324732752202957473069734235614678524182244100133078891569456844026052391378177172397016445372700874212526679892203080083297340774213111394387357538181290506930409632607631937333412821610199002300840252632539499358991852579579688750530640969010792457202868953424070622788374608758564380461741569732341432519405486575134481552978944227918693126404017065003503491768324412035504249639429736673600967973038711093028613258273607005457271348358642477362459577379711083572148663402100706887712754334958479061120366707196986671380292402590654188945483563111465102447355449765136028834205411381553818955688734233839454896169981906055807109080708349775326464621558823890728306936935525649627044126958222535379221565867398302235341596189928392651233499074673687447405170021625094786598127530584139400452176798513884665161176161354717083480061782686738032873291274348736184262186568324819648812526198023433240963368714756454231136337546459079872025364251568431431701752224270797651651875149015236824489289304050088862634673317114341126780881163803524473647664997701371983621281344103279609782895090407120668364377503825841963281809279334440845576918476589671258295191851509880530201786385444471398338312179996917190969787590217422449899362272766120671732532437597224482125241145055827903431530297370758465567433819401201632457642214563883114352508622812271778935743520786870355559646250063446426900011635400448785680565460296721697563992211658502596766039429908286468289029170196980602829624274180190549222224693707846872782228929209878997810139289823710677737353485349583745554586422237337024044940929027102411247900303694346583729554379652752410878095846994614139346297467267971866638007787538537228377406520301907762227156214845889543952785411272129855298761138638750435606446270994441154609889358539337493260706753541345248770438684290379288757963968567248607951159248005530841394703317733664249345686836282525486532747061169487081401381818953144932803727859166391312025353343744470059694474222381075905788299628581919802908710653153934218622002576296605386698645535463242472420369632110852612588253621745956720981500148990122601503856362779509743557804621214186731787633367306359010843113949050844255863247894137577133165280543615156728246557927885932771164335781185280935927498544768805912751376504581179271181376368203866827741308942521648907966287933368331791614662974111532952246834527092182787290566288704064546793549408273804977786919684256084848045937702740333921230617699106456915418122369711003665375672303375955163931603281054131485942990982153235993337607659214742206713714240106955572591499317105805928190454189464781481327517494038460540275263921829897932885218593756636967973077799865906571360477304458564354363140611389688613867413708498305754160288897163664627722634874991215688467478673436671719574880307335631966880170178663773885782761438279305703714670291116490339103648237732230425813109425333456865510672779210994745458097099016535158609922127846368627481029790863606435127007342661568848550089327335750076376983367552553449349895555080622624526324971309061695580148467280350313120385318280536120657583956071874982582333346584752300870641470154749909822799952401566106008550941402618204424574139355599332596651689976573795182271474968273667110432219804960357524854096175195082153082024244682120606113726508918430173959126812551989716043337129813792553804326031356818369792137437793789008661829389515700070474223395669979961505982444105262153401353801220450961181615637205861890305499396901086854696132502238468078207468111331671740262993667335236306835618147031148483244708155225527766660006568076780970214155282993926588577090414889468122275914527774699164293547329923768185453323180071483449423092886364628103904600547483037591068308800857194897702530381389841049907512495759498971587738737750069553186553085460711073636326399815414955916679639369664175376354792954380071172543455670392607453426558175985170794132532348141889038162542305900579769700825698233621159390639848416232927916448618897350736952608366407288431653806984960525641744875544339437400274470495369327750420450937250823393595290746740304542979944348321445504012926783342532503017300467919087680282107943660565229316421506101018469844210722678293995167379379546488356303626729240548454688644549248033646186130916194050792335352229658496591149540350944902568749769917621850228498533319081190440843921441534396572144619409801692154580212349167586350934745173126342973730925928058843385794746158307439292307145894180873303023604238739215235512096783191252593984192557282607612102792103397386898635092951014211943042278389855854977139347877853973126523559351361802636525861545381226329329992135897205570038380383346691343235346200402463172833198688674559730473847609650836340425603644225250685184685687755534703164963013540003732008289408732252528026173354813606243607406296003817355234642901413912128566478418658848556415324091684865202853993721513750209600874234805782651665655084223896274129716178679193377824122197418015122073709532611201511452831068385169457171304144232211555885090574960630240297057001480674773628503956128358366113444014483240698410472491598260122305997330096357300803345305069294808743621818362652885766962178360968299025736559718443514459455060675976196212347321176828340541507413698186027299066325639073594718654724552140854269867452847457732141356965845865352281492793085659361399001675243223247257774759145930833749201450204667583417806197815210293684509104366230183132987831370488027865917645688104035793902305139698329328432609430530115139924783585740080077560021286371702878146846395320553089045450794086046966896634030406869435879815949001007209491727819015028375720171835947483219530419950911124177916316094386625481122923911704473625297567064560163267134377351415600135945243708905238778697296478029496698244630660235479633357683943902576035898911539541225322515271412194083875697009774443106644659751310567826216738292446585601748751536591693618971793401616845836020699184975831525682102118720381329975521509726255626264624849200824026401920124697339326854389998752380302199587972801152345051319328472932261739470105186446651335604645567615399929706813062022447571362454172955003278922254225329195802444064223881711378644311262277957763786289712878943743692627226613152214181268174883097997880194079586089032916602418730765561638328900243309417435063305817856272300691883450508852634128171730020742056733280341054565226241241931523088132733874314241826969474954945273407048771042207576922628838286600943429985593419561910095211626845740093271589865235040463565096439060027286856874716260131588826934487742118809582112504449897929639130896155738284453671300182103578170084871001187154621625458001470105239938892675365684173396687980455649871742239755428959666201438674012031876854723998901331461867204535360374092548116048456247958684117506346547725851168173053583068053960356435729065845035015850058214403753143334370819677721376132648478063366564448886254649422753166848763069466421342402461500402103551367778141779591348503317422987362075660758947792334579151219675291049842250442041583615236062884437004352546000286076004367583700166965748615026880010633362760571993323742863491567965668143558025495573371984364604697527878738551255234687107979979713408966115198817737729354466631327830894492023321229579548251255696084949483952105055958172365650546547324927855532284150556713010097412777808735310458773012770987663207219055093816099672403422359903487850292802784464551088705377457721027596395694875173948405192910406359288307539892267060489362220826921045840447479482054909677992016484197010871718066422150623593678913811703582951838305925901078585169897005890939341028610030730876625137129242047930277540316568289235581791724990483766831093698655856250141069014882508457458637058025119587347503086431308648010673332877893765680936279154941768575804210500492860735764925797367132111856643359838876862727465965152880917324944016078644665243403415232482790309829714208470851646073650223813110607448453774161888141888474282565917680440986888794021286232164424636113630736440091442731193540457417129545125609744787201801680930715280116447533692196052705357232823998365959367195685681677086008160745707962609813635831525387289071552752195106688047153700085704721857109690783919171306658422711107379602317987083354434227775940673996722469265810261010762619715094561962212734675176204398496401297375937075956143512106264375590748881935286438593672576332035202781566280276367334792173368482511190230707866542093556523738560596051770287961839531132461340249569202515473077865424547990927138777252504963382743962116442142211431449136694043280981508508387947875597955433086735340327968862091981371924874788352643611515662434075615680099708010936055011036416321227420371112044793461720370371887787468773275685494474497535135022279030709077303082277106167858493643551352218472058767479614389200246288044132657189499148481028774581687458407336417845302350611689428737187690064948983631897010666451997169688618072325249129465886473417512258134713051604958288829233519744772254039201499107438953502451055800220130172664414430089465272718363336305381225367755478788012956916899144286169596089419316301706392885252573342303392410331935362827822774212580700766928365048169334939109727025434036977851895361912213106396126849486185397435290783635288648710654462528073608760409332137416299961424966558115932819287668115404254773778852840051641477205745970637240187212521642396321803188059570912685016800761413778231461941331845979894953637849431663526965424601105133583804000159625673644212469112465565454194880454489648453789236435920826973930172047770288047136147964935100596346055885252978241511794585916622370866126923950455610363718471018020134156475847526833453311527356219767956294501212651537220550641716878631425281594524200932141223458539651275415693538056689361605433431239174206701941993455935094807858357908689001758627230548843278898897201303491706812661575521558208453372631835141621045500643460232022573334387578050918199378419615614483818749884067076026620956015035622365859107747630755237038093112418377638127196629004253951733047466896588893696271611207680129334902009695549473129188522238569053957260254042785243742481466460062039338579879556690675231266544359563725049422768270390682958214140105795442887791717395598627551131289552477606080329449837494518282024312550951449944408968755403219566501859958166042525983582610400144910253587477962302274259789298262783815305820217522295724257441170207250722984623553491290155117679756260311837196804881627848599047024658801742471978612766160568987150171256794054066815847380281559239615963975627988761974760796442655569171730927082068402818255999676550605922045744066953075823724531666134564769696055573010061808564443435734873933575478874839544432215442757650176485263700509665882484208203619109303779358020157430210621942619754692624198681599116640122679035789993270264788026703070908706065403033014079781987926029960534925988319712073899364844310021166139166678054222778395586633223553200911387931717786005078237549095492096335749683831968116950563542503141782515691329328973289710241345230888568713810154018647826038455416637501668164206132053136901981316857981133809197082718578117645997819317576957521974313665572658743240060264157426243203185705924200389432793415697534308548251380395757289082429617083609999780578728852809120744562641674304988905971462910275651464344882531174651628714588538424859465275541095374947290677597553663521276519099445614540149181263375061899557378643730275744787174690573081630991676870685842335296706994046034310594929695724599551292123490501100692483926209465741136058805163597203878846382017412362191547104227304473424572350392119566786398259845127688112675779467913238547134772372211188987492921549199817702984601312971175765498890246207124885853411404302142797236085962602341669626039658702950426378306244900168480149402089938484596479772596940884234810631026697326732338008526399920699751361493211282378331826256982331122292935946113292035439971966221015750350522950187303288232056485777060454482351411202029833853395560803891009965156300597563027444005764233351673819236546880243027516273925560129495758032383080109423205630544811140523763759778907715697879044626067443189995521095878150266650313021490014508851855192886142665247035610728875235343682821854025229888091660354375387773812058951242067780259348037108707106849520792515916023812428585078323443011274144705110560877555088568029159854528011297277964743884092745953007192266609603043204012982768160128358161222734930166452287892594871838175268871667464700627854324096096396880679852189412617618861581699197494565377594353466447558108910991706869251775359715223028591500710727457682477960356483016552426640334754112915455953254353669714863098899620188920082770366057759967460363195012967396359685333617370850770424425576532876592492712997580663830164941569525514130787724415771842943669310960925111243962356234514399790936514041472891123419583355451312983659552379588900509255509748491791892680195895888215480109517408313207702849879540916297325337800348126338318823077516699890630135566883286335533417545929177058167181455732369403383888433869327677632846041364889469833036766021007346263541340016658556176926230843704153990427215571608437901260975775300005394235818244217996314863936787458009608435407032203727295223146578663720793635197307516120319178055674030294129759299376222164493368446704950041123884588831518981484660559179021005058781206565662400401027015823679890356808415556384503266041479226086018890618163531598532904549606990594343142758754720626433968388189455152207687294440832505842880154811153546296778898503377505626780651424083651912982023056739420114034486707155064352940876627661511854934269420896188703867098272454316391120900756167626197710808952094049082776854435813522942957615919820401344933543531733370216550678123128821530599623659655751077688963307329865069649685633689300412966069994979124458984746808162313987195214619415375126604535175745542146389743767765469019021517441250484901094867019807705453960033369316188586864169062902716188399992951949327769410795636033753282562515707467948211713289782099264558853272951257059611371610290770540543241046058094349350988117280024796254046797641233893518586933927849088215706004573925410046026471135913129491758957888998693227615679425559268544311589321525236608106540226799073962198075549249238608419578247534673573490278490142468215535521977109516638321151388274634213590397001605738395638237917979248957411297891447744125620987774469036777898965915014149894663319414770466623364470144780480685473394146993818133967609467581953220545709778070637909292539271838632913771581029318786879187515326010195869576943962106369162471501712107939938079535045368516664786039334160069264153202675241676327952616197410591320573419306519962255796128115956696865277784864163212914401775144471402405036764979356731096148622894485120808888329311437053180585775007178647214011192149401404900284989492230359801425085117008791884001931445241317923851820335694829888071095197146757380592806505719562879065863022277297235484204794247642762823114497384729450549787202112555555168266937439010702816951495591305390575987169818166956116748159236148701893065793641031097793116478566704698643368511764468551732758000912305575360460022464975404690317521586781531405489206563486853170353140032180529258360469264379817524311662977954628300137727194755793157876659255828918640714747271311618976860109850521739158337895861590149696767622785822401980808183690195365188466539828852494702244956294772678918666228049686352779610362934358009009276308791914021803022480144579443632120260749513174226292300364534430364630310587592177252515714793962248353772168129246382858892064116656464647940089139651675956989628583345207237300366496001822077869140549145309270650898387464882292844446682477070063228220848314741750584814429035234538575308362248966393617950512968812124772058878972187108961567424534572613023978957856316861656449653853630525591833321508774438865936545435679000635235478728930603818858320616357463701679378975605819617044182959032913910315358246821978275041284997832830472683679613230062344064457866154642267414484051524709764714983953177988963049489413242925878025521183830813807445111335468852079626642653263853053005084676730023351434133266315627126866041091280108114248382535469424100774035368913552406587006313559859568532315613259372787698438937487849017445811130246575125478598186526219979472802021358773966379526960660907921159338036579668641857277807995805266689319820235206668975816171872071767560182442197459206019766986047280488906662667199371119810160277046535870569763147312022598053177191105903530332985532219529517888369062284591653645485279505769971207533543773587868570629330184343685570507696989518052134804501798079512346046862200546898504003906036802930809295447299033947723570412766875117830270505025349582287695537103060622434836791878211910771904179521017408631218095242697453643382487022972347480700387223499837286898781437982968164653908459917905450153447167966294559705924637972486845792277829444954564816013175842568882745950165798868768273604211349066918483982999389744533219563397661844782437945080028074878310718874381843671435355548430679338177817653682519857386630599527533197881332715911550597319797711970584124618296734804863882622888815849077741428080628795874390291702226867572383476938592894369694099575691554572069533375073665588154749758990375856330803904079668392885428167234407610349767465530950210350778252893070413064071045288801985267819332176747756128423309342017921647001755142680084976359451516578967440193321566145531518596184518978511011752244925544656688599382030236129901313376842101940505686544710356102974540329962754290592375594805487569364202345410384292870111589493862652039269024182418483339208497163967257164340373523769895321446887300472864628763773083239587543669166102277033832765530872233193405857202492046259741661015004496598027810837500934006642371834008598518096488994023538704773657219532888961608908136284709626464824744191994149515978871416615555000874346073070522360271736702992526904880768041054446344212002845406718851021314387276252200407533228695901036655206434381498577498182832160219121533047754046812501352227382480896790799209276774642746325872626238322900070170884537597554738896038990954264595544405978843040990578800213095647070043731885004645534790267464770296197128465852364074912482083545793202427137937043433256251555887453179527134063135588988018446246623625860896936374450716699245268124309254738021965377506572248738349658682310383935314971767767605469114003883227460794421348269534658524690781083066545941156660763117862516443310253756455773244923754542842669086962098876745248432314293735896706298126344452356517547956328808226475102961863103887066974086597834722623880729542169472569874395486896937336552885039894734962365928903154575066018475128150376439634746689094978462768073221546427560781554098287613879429611331431044025223641067990854309428941807322743277766482908634629810201929272144158871379897667509742617407897282772519721459236191892875361320452451265559260042538537530201314576586101080353611549939826402778918592976482653486768235316852766853198197569652317498334989258294477984290695793501526630253470612949951922144085983207699088444271767657588077619628666073311606405220011261654146187853683521897276333406518116658999480848681536214947377058170562976600314056473380077606281989922301435869831600297638428116235029970102107029747649322421313363184369288326011935749159020759836457633073617717208490486189833334319499884974495516265766001257700934297450124804581225380709579833846796197083723580985042802170017694180868217626334521081775825986039104179635669459778036924950316041160499802076701245054066776872428074169914040958128657270516793254987038130694430940988914757859474546803115356948500472443679783780848150172970037024195345800826283558709855688241050883810739599322139876136266568856180442548523582482892743477734031365458226290649496433579830650462614611711816687105522512228415460058887953350086989917459054899649668219345733270915744532362948570950468930641493953323374038424185340321241319372199670597483264093598480988769917151644027122046972509805350884331629382287718915145044638304962475720004793689585846070755206012050519112815829131456057357303446429586611545222945602123120591566479456095111272731000716349098808478065643960430741360246527537198578163636073797462393928364484830015772762268454240069814454331949695928789046328122950348663428232476186865749078699745973574471734563091965531143280109045283841536854008729078263591226852371042517926609967376409201879962153001280716024254827361372940441042806040996325466640155958870744746656676732892292151535482610298137268506666337098854519770025916782663853548956707497399978052958746315849394757016703122480549324654986487286472767435898768019784173273236793323596118025752026227489015310620595978670544481723218413811691683063137555401644460873353893148924709479887027403036873967297924253869993588865501963526036942396653218763594107702054898232987517529761019222229145314583703793042985844921494466242639765451715635281689134912477700415119520811082393316910664721151105391454322639758182471552291472064178531849975983514238955528706471979520650994227888228446127362224505901944680619878123945772907448089281331518297329202580755574887327683974534315843617943239608896546485956255021960775836265780231844747736102217690364039516522701295893075403707379747163387186714465170368573126409496651940850841030713048918386818605931426066172572394084407943742687852194603986393963391734776259189005201261574586093919312065407149545701151152977307775579425223987288047220646447514307601934206754477072425205281797763767023987961236857556777537278080168080000612516110522950910791209092707280094896365034305218968455139341907305233632552977870404946204558286104828328279866732170653783823811495444397881713069702008276314154871732974129976437853815116159715473666665858719137014318524920591688120902961875012053310055564369816461180448794176119972707128966722864565090601936255092098208346779553951539980520045407030857055034368595862189957288064947485283340697679584606225661099540359612606256196168594893032000009241875163569502995438243076307336046796224307693486327747446499149990483319921125319547414564526328596500658356850342751860793268026294684180991581015833665032643775526726414279281676118808779823297585732105990189589428783139323022560132883262843703791048058332922158131673954245411759640274787533113154669874649756915765770048098647584812750632076625477676457165581646103780360649626089532939255952841521858413413448800431490750316135200263571390179640434898759915892807626897130147246378344623306113526201893784050155186272544014626154502719247493145846439105360007844156013154415793671845580221192869238065830721270372793726156142867040007357561151534615713599338646815675958316558940811077107351799698850020885373054353719421872483565042745358529579385338389100199832231478992002905932880032772014148575793625464339072763114852290599665031429061585705837783821073399627259851457260018274200996771782615152169063965986654189359515386148147351161999227504242953428552015373234931378286489545440695288043959263991875297573101236399928228441144345606534014969500973148912288428820703373860895341836527118819769655495099907511175725706252138434095399933293982518971865710835702320285766235636013206959837220327481053431250372250796996334229281102551082151875649746528263110324170718246512176339055152626935294163710730393149280266495019590977573415666351906306940725091349772540858734522902058922910036290550068857426524671006706278206384901270921718503379828665973027627327566922064402175480228215960846547960443966000113682115089663245905358702595532420200336697135150832594829438578578884771582936009907094554231800111926127855993120687015928946853911354436270643335715174700458784884723421221226119529716118914033106499185800828817627520327773946962392345023244481440956940988059892621079868105672016081829051187024678733675725750996926099178231575565314828062933717554108076585191075429935054425550470453204061909481366546201823026534394950623343934070436837593038164495592970468286035354137061780414305561745452434507410854933697427240561280385749517905728100811105897871779599585866025547121108128546386937738698724948669101425241727377884720672721909802692763882651634936401446470062935589521716280227229818406502316562706138471494889557683291905880523759477565795792332218687251520704042047893668144661040440925737161480524899493859887268341836187580964571220599826724546177619856997246430293445662874404184288800350480178301370083554138551221815518035465514265478130664384053584214237088146320149321451960032417742109749554250437822027724130279613818578322262293114864926188503924617780054797823775287449297376768360470102265269977967272348374605419351077369179405946840652082598280221957009054434428717665509843788797770291962703136304698941204317275917338138549055563403459200837949530783191034253924791971840843496915796070989103084865488498690781087669732657000444777378191398807428446275847531349498946368188193810726432831966266955404753373662883565529731201180828676851944099599485411535337701483576258321855347447880710132879919628960537043474812280977498690666617224014113720009652606207041515282126601162178144183278548464496706846160217106219409742646451215611938870568914588410850872771831861239501754936762549100365457330069633301074024213985269189293047792253825373046282388602575369758288534452225054310224073474899530460920358500674926351407445072129487027768002306295932050376760506813847020598951194253454512646468265207287903181483294012821725915772592306200059392180883544786876399684930992362507112349836208996551759208342296880038484707495207310083485213905299460627444282236926032869349970459360118536696380948846116638972225148408714620797173311657442929624981320896705980390697128843347631954156918875920910186279980780534802291489821938197177760277138034243109068693338977166097211091815963327380841939969024524230106669859007903378464141202424381863333771758919031738161430545705305052874070181842301666140807403475161253486459446350497651268435518098445709924616604502030408791488619243250203433235800429888293143654765354458729994355046961247661803036013894555169738363923863539061972143543831776834186678364477828150865395694292005272436647926905883122691531910633731754998534313280002800757280343783402864616733880082994523284147147867019324779322268466483962509646122055902004574564316349852826163325618840513164720022141682960667979301163232911519066485560652901028969811930072772792059617080358370864011955737826073928714511480046758067978720661796578011832374019671230186182378911591381948836549450230731735765458313031569343378283249177636968735999532979176781826185674217488053124951406935754955561857476243975759294191310500471865436220809025191766352101624583963328015983872167384548233707561929843631638822933031993575961047638886617949266453432984751211927909292290018545038970900128283640922403816323668950858238177356519544822833373677000363203336721704356330783165247949067383136284080762576973826849878318354041387749838245631663376035905051723623832255429464506877522519311767639268968192201460520840866003979923235644336891345136904115280629746153927453530922507431007630749133401721632069150473976426563441406416215837210643531011214179938788551839347012353751667273905399747491739125756769790785168123558670847153264303973533310082060696346957205918741350770954663681845434226565818887549055423280832762997028484758115560862140519106023679468086854695588831956828891577621168927506227207892783596321130669204043871721534337919705389863550744549328901062893338824535319054581332335880078709011911135250054623043341569381378798060411378618664342445955916686004641897606740666915190525113149756161195414578030419444406766981738476952099477609839406560051653476990687567170875650059571860194181038776540855831519327177722755409825339215934895591649603847496752841692165544211245379709916727555212985610982467192714822127652251494854401510664044454361597391961311233401308411958514537262902497568120333455393444614304708443231398267625630738717343054555769913819216377596775197652634757811346177254495428684650980105083941260933252081220819222160817229730425683553021000971332027008639337395886334759496860362438447809442853356597163277571286800296897347907533439934085249948681724176971125364374574831719719593293853018647696234084307162226471336297751879627550531822651757343253230012576977220379446511707762595265905344446885581114921747371249878262772782600056572550930844850699335082087744645807229001722535076178542193330381305912395258238958327991028465411494170771999605454810818141499550324217388911649198553658118681300816345607302469582417146181208381945199786640189547081572991315250449631533222931381113054448086778552264055777233591245823484032723895648020193240228928369432293854117734910775077873868939298842517874363171470651946415854964534942390447279982678425208724729140446764312813079513879446749915048928525895774140687052734435131916337528242470087465621960523258752633062999354120386339518011326397383401835426258915382350939897700282290932064479989494031564140257762126057493791681349425491012328498058684693957763564619552164588619027797641588253798337632174654822111442323124306556809050290221694671995934790971103562023390249951053486549709879191796449506845439596317168023288297769644297918616151085611081881268612732128865301546677094560752489030263426632111536202518798929652956847887062793112876599214583380080884268037627389971304978151712536922978103596072382152519860837843790512782924515654064921493124040333089483525705760535280376177497726298821584979405192721555257406821548127834010090997777825313799039097478701728205793816491504247078625901099353271844478922190626036011722130703488035284262194165080656224910319885097503455743567247532847089210215599742822968819725989433233188520096695896019574555292248678184635184227578833289946090515645271158159671769219528791975279311904852096687288751003608306379828541451951276388024259855941402190438688239013165876855787590976809807858705937217564054997398838837750830359139292590888549546540759644228921674816025171052631622385453095048273378697796097684417787676012962682533595450455460766414134719018594932036783656565959434496046298017420002994110743201965019004053454339118050261399295409469395009199330196917812954921770014274419752013349183268397286933977829755271626397343013715996441082932568972029139513121456506205496757552556326745845081644411850804599933349066441882724082984320392545050764401389242725010714254136268073930808843883742896986960783179634744198449629859869278562197219765684792481034732678709877811258102838632258620857419275762149579321024703478984641219107407567342294846344796002374390722411466321741781313822338713054443889915384667449881607968767360286201433504010655119157786067996935404398830913306787014436162616430199575054224330430379844629610740126990923944076940849111324245911724741131852757900439347728173939408893522543773416659858863919008295919126031483335851917519839513348174516738010511664294553581287317953848412237309584687098037610377071256640679834516838818715058493098373570858203793124143002282647480696231681978435400740638350446583793901224450470784426010578634766979585804654468416426450085078380275844444887864939555494055540372553255585314657288530783027212887175981677309262465901040588383732792724152990709241761475892844045985858821353606863362942957014923319589205285751111586133690115036365029386684360872535360616532199069560527657404328493846505581110270035578821513651107833199644234657089328931200475329417910203341407070258684280533366334591341695278777644956613867491365731294689097167867412867336305979806111909285559690192014571298001786604718185162632908695903766359155517843454652238480690223094263448026989852481895112501245427314188950697250474594591899159741705199762533756763851626778143119807546303891236030076742210514030204237340401571255651516569401635857421140031355222354658339415337024983755112889136570282109925157084281732896380336645843039935116509470664015444729077012821562509751976326965114082312410143116583701239953014027765510468090056873558466406119346199002527349920455080393985174553073561317610446344931721198999901447198192063363266854152145332293373997421665344383414753885588684598118323473968228216541390605670719920770982727486293650973470955408849994761801801736030037416895530395157098251892649418277102877477670387966803227410501979183820045177590053593651560370541367347186283808316191110039200556801030416373556987525468604878517571383637877885054327549529507770342381080955630331464324781849221041795881036467516668145139574347122135512385299028011658987858908894244434443497955436020938877633372569392088042856601906059455823176280147223802732469927015341606424310327681482490496871606924852241482805495206157124789331403751578281938392152633342939900204078224959392402530383045977016526326591863419540064440688847889982851670339666876240051571150585662283040793850373367748744484676584444531750566080160699505997494821243585855435481635221711901798904945246033361639239586238222940852872927377289642843824578274464494240997837665586030430667877874613770022065066962461075706542752940032495148401813640704914091948369526341981290833257753283041718563403726495565182521240848169727349645538927145553197192911926546484166351070270367689219133622646928773539703697783937135934742725865335089725762744431257270102449456719490571741432219533263528365442003152386592877151855072139379060830984411207487274626768056662028382361501044219376782203474496245058448843325888672844182579179393905156856485374969590401049897985441463405504881339988094482238241577137042752931339079241108309247118228797066153203995684740381061180820688206113530422331473000463298202925452169182717046757592675676798237571540872356497197237266068085386039947641953649636896131331131753333527812073146016757690448494101099647929809635867348309101844380153819056524157941529505831438080461872505156060089021818818678517779612218184274426330507932698373055718358057555377754314295984303673971110677284019997552154745310719440033372910889806844978278117693292077771271445394300747172632900964635537165383809235338602367757260147660265378594224799876886281881390418296428452480383174399129060138715695381176609928839363102280853056042951324613103484793345179338180459997303123426025495254067187496426997426870735418691800288943612075402925770048514065379363506294737743513457076509645401508552867935469192634508483194014174576013451915750557818007529096379030190530882927850509416932549793498065782771728336683888697963337043393807934426601100113789927508184238499719066925961262475040260509523787824275689063093190654495819885624484365217737372427592841037702761532628561125624980825785086579911549156187239841411448495096764248785162869496240871717382972984007192119616489219727985229166580789418267916220443633286716171947679169958374769143113855684522460779878383602440803902055923831745112231447956671583385616129329837419181737543322974126140512698366148134459669824992315649339050486008557692518276109217377109262207732517219268351189826126866564760692435549285629220540633481750454191794518593990922325398924174966160175540203429935136983678971469932960889834567058447065786167494295580245951383250440246034489967491473689422436529777200769318168807954168551851436607024589185792597609541141645713483068653678249479054748391125545071014213609397390516156459543264132868053636495253886409364819860310419233570801327956042433639306459512334165876091961409063264312533753478843764665534609160178843921152771070456518417158830891437719104598445328060962057544263361503484691928100159804856567187802044569937067585339138313336325357744057934281250169177226764184849459225546433570163260824449099133708341995396810866682994183210604059757381282841313252669440068656280212115362461029637408122397546932924363643200460898107521734262167057392111921465682817732536595843405780477263243262423601462541497007426263442969819479438852747643364840406816959724944404218834236739772140513420767918892733672163181335619113809450079924315853028179345661274969897179964373750502608692754100859956475447995921545596851823743043013806509611418474586858144782348670841640272495561770790202776850836240899575271026533128510829347088948993192225128214563913588484606928322154422314882129945539018214212768320446214924415591379291730794292648599324830365208300263219894230116428001451032182459278267117538262196077366025080657689162940832574614782998982325984170158317995965673199731611071155071286770730021431220108026043073827903366731285253789761929383575045235035913181825774911626536770691995116303529618366231182516983817660682345659367635565923485131098754815264897793055427993460278742645066499553423157897246485323536081822863190503279494787085568251036038399815778989085624981562872535331858443452301031254005935900722297495516284017068039615667593183966160341254038333587108927380158381391317031816804282386307681794869687936039523821774032986665435049757275034471212151345524886485410064161829679637482016888317987366510262579393724192798103564685894401116253199929398563656122357341047640287516559685850092325481999166481394009655664992429541204119931411947785485034525428258860624897956920128073768735967676175934977427817590146823256756273073746370806636178609119202254099282014228766652756633800918208278055499356740603504956351381626688975118532034129988745783578199892368109061840324549746780119340202234124361932679058723748062023818993985504243043980039704929786549061237044530094416352411131457633076494110823651791875657514171612577759057039239885115231124491947317406044863902450004413783083048151197062731561460347458816456063898668394787185733976618845028714857507636299659916924438643107969460734881341039518556593949572050742223661475870536903023597881223504541716735093419658273982963310600430746479284628068063495791052661715785220658816478615725954364345666576270295771383887146357822260519732729358848604355199754375071506912308281801448367770133510401969809290183052591024113992073632582804206345420177677969748783452842189583125666801627427128356484441854800034098580613778271437034998798453705561869532036659175960441338460524079240295963775508631504666781241612419063706710000006900383009253087924176157478576409417285530426433788564566991118476219932000127100496307328331605376419280170491365266208314375290112866257264001141450825909507379859154091098900615397991516797675152229813622271520388847559900087347255996446972948945787161791643622377642291035242659616676227642190523321095738438018699804361883855323912194839668053338229839279000847752308339584999603153051551454346857725787130899456085066867802723990003164113043147510831290179915252547673706159663763588470562238587540895943961216698196823366910667210812352361787568564843195880056575476573333437212128599926867739310729435678917990464091995534826652233042606481875890038807423154572573304054692803538700123995910318184590604078193564831111623906559854826101233473172558846430065929759062456768812824347450661828056116133657758866357686310942161121019888661699390979138374120919192221993681345075161745175423970841630950875463040048421346965290200398433312848142430236884800579033996008818862351288424911981145327014336624749881299305431801930178545503321641634755949580700296787232087459695520884411518463831350461031256064473875257354224846783683828332619661837181784323949046739447010471026224458647205456274422666591349308666128348115080111209642708708842804221556229201653254219160524408678370501562520446250595553426464609906588348648432909317066570704019443995406475376168046678100451170115962763952633472347334474091778216811638819818017182169484131490424094029642628714251291837590185379672812461559926543132842807833894747873614866763012036600269869158844388278763732572278321494898768444815800510622758448761923444670224906838459800486786838441735556747122271115865325261860715914408809427016805699377661508095314104222815582387741269244634531698390524633782722448248814769199384591028809490496199146286783734494236773604606915264267021542623448635752533802851030440324962395778492708070146716878588447617828621978006379593747346227675789374848434022804989883455022597907468724407983716149038226423422211257194545417888310527280425708469218638213894010962692231137648487671133576176404411646832051455609732097140648104399976474703164064273063552055689811167936352042998685805848028762116767714112286062255816890496603697022887758779367217711071861678410662756148657372483108528321404152664729573915618672653025472959953287436525929958307123997878469325991903608096653703905626637074977924630214850973539179559362933570721213548210914179664711720050739513390769701422659868890007499498186224960767962931626255605986797734666612008167874527266410270763030625130840122010259461218352111462626881877896980207818428204875453760105065835229470790983546197330969481481712891721719527463428641986894436114558510736922450976322166101295098119021532342467289507847323931534388440940181164627883584766523331380763849890442937490636529869202006409821446508968221659106982466606259214722142130279655944689493201856827749639588767594411355198800817332202244019860467371073897222280849262386937668854451999938329189896152945805017642654879819705269389902046289226023767449571235070581840791343109414972826242204844975443206395229721652947366575230592136290338963809942042644889701010215170550823605468179506498895247893790027068817824660443716459713798378351850198743916007608071040782083667905081443941169817879487785936141194871760889710779201970381817823370643759415082186371498481049297728842380229001474753327986984516594759579881215525985480124886604328002712074407739586480218630164266725672286729322700386885202309840518297529023035315578712746152102083801749284103267807446482776442387391709720861212652378547788464645298405068928385363371718436869623210098287320688161524558169287865380881968490247945485338675516175271094669841715696755340269829556163418918863481240772381732973488324193465592738086383000572131517973839942484930389375839565643333732829027835380484476586743257982725136800496651960479103492431075920757417283175985154789591566481659440845312266517784880701652620295472106597092723626438793302017561900545404438235791975410617588356548981851344833909912058246188921645275446734412189966709533963366001884444918128282595955784628688298208977828358231606929522150603988274323770074629465619092752082505919806279659298408062020228758513884442722855969819446147291002401993764247062607197083306705655787540257459469075973491618334197199487818137145135759931219722125898020242012417470529447158834734748054205515659100735345129969268687942094694281955883029210691853722748626050032309531143887549435181634400675726303296049279775984064090047922206375192905997898011471876797527882799279264469294277235309216258393418074996613348521169643134836188141842775468010839758102630381227537812601555675264449944821481449911946199771973664025241892671774107936534604077936400375171096847705469900926876423118917696164128324509195397515934795651969344164380219438038881853984516111486531038033662732027453702575930812032871404596951412210825761282248204356740573849359179420638310811093798066489330578877243638580786644509949749224440493859896943209983005760610000428047684433563726698986852594995311703621795153679166773880338085303255605776678066350027203232923261127627941353214997879622256181947028248242256489834408008779900834399737499191939081311429471255156075444564470539739588003908966431440092258663483041656656066821243463827660623536931720489072635065502009791519903830151336950172176847812961595581939833104923834993017322718553389311967564366447703024224126210078231337763625514414660047973395860713865745897156562586713884439951137493572408442791985312362476766521379185808625462586403523229303736628286491532911623855222288761960406658801806319544196058402008849833757543634034148832055144065775996095314397836315966252492635123586422803909609111397955558458151786639713485569002157540657597810721393090404228478612581359582097150356964436439254400694556158475126863961269328783645625702306100425376264479582837729951532829337560658822711865946651269818070952201983038774595738066821142281445239403892753071476819862393747873373833307460542530889993704352796789433866096065726057447756959065369235106866187258359974286581047250316758719440223219099418410993068322789047204818798271319382058636034037655541062903090524402627325939398754365308620281770240186194057094545403899046551663433135586777165642281355588911639313299773205416426672149428365172125750000511602982427568972237121945841333237410477642073974143643644040033892812890289235610351457583481155571313029569997135868794144818195195546308582937109334442712933083519393883090199938723369843902162255598729969134459678138622755378347212457119647716389006717498682747114988603434052637293353079965518558515055450852277706699799044433186184206392675866903275895638468392157884342034065205228905026774673712908237310119616869413224901774713634451382219098515608541689641945364016845492315122704514770724747697009215640168882972121577848210263262716431940830910254412776576639265789586285681523537450705578313068347100800671580590524272890659590376593698500831765320800874306128972434580822204239309021718839114986776309253589392935419484675714821048032548285274876468942183126484941759710457857068659191827153645119336642673324061244447292289696841909523828521053072929838367171598760938358503725989861613436779933409857805435404042008323020243490947876894041961463108253757940767405820461679474295720101741521705877218406041233003639194266261188593623771215540982148465291601939687518026044274231723392494531286896588696594928837509948123030694709255467451020892931403046280242771112704404327067616120150924819918627646100628576275444832279154411845599971211536649637723433414522022605028603704238816893473863323724450950552471739507159830802645066433639419150993135766732331543644600745007956055807228713744607561423438468768291300842434352938711889659639506826401028660675477643419183301273217291726018558203198796916139478278803773442297947539634846797562272217161680225047380949548794585423499484162715535629620074188112318826340427572209276026425503229448303962988611581735980685418681457234396618769096708111118105506330961755887663617840103370544756252473273217344701387622930622568566583838064312858308915386287697968781994020754563576868243954573662790158321010094653958911922471381592608551850053707780780248090374943243333989680944117362809446891799894489334054483479391018435370009988865375309931723847725305386448625681146251229639463901621497138493848436946771607455999609302763161082177887141588455108356065114986029870318968706143561278093779292724475954016759173904504361282716604145489482895327654145382493502868494713749683427684212461648812995898667232443299227691481054003875411521732945200944384107051794068368171624221369047447934140131637108258059778093955547589468886227030387635728192870172849848682237655544152894648918750231216134724994572423077789161658179904470279837767580522462435485076152713602313589537119009358927143876409881813627749883786947553238793349270183602322750351318163885281776069168618671606025252375113069125949486617420858944685988575487242730045810707804444822092935736683245111994057715054880455701618740990131610659844480433355661469493826686790374700201500826333712914336215131354768098718669800058817501864353177580452845593430079973770592241994279972870475103371548586320953778238168709793555814448971711580644669524686953503534005689202964452205468078632157871537182899012221443941194771072526781024048053187260422884152765449554096314621528810494430782850804805324340964488356850579910191520739315766859126412250234308491533264716285195083197627664375605153099336989113926102974640495970639152502233692203567083221887339588951218754166497061872750622389920835261238667735899461099672203713120764575375828351132093545188109244264010770208793448148502402794045685753941413221549561648599354926560854304875310965274195154205495659781109685449530664440886307496272378276613346842948076058549993971571328294397052932221270583971678391995864581131735869131263393523036407132312051982632946126526053051133011008002604668862025816262502834337048271699137408507865100347705103967714383580621528326091369801603053746036224199777611584523652567122321259150035918600800907792251022511761044185410352115144278081233606797241369575153394202116997195709247942356772752407680601103941701974205847353871956590361727084241973935311409396068183286632835114993084926312886439480211464301094811527289965876111033448909511440061355749275606163725675246374352240937373898953309623271739266899456839154515835973577757911573541908247698748892102658363590373149179216368196043142014012277882416834732443975150823299571616759768592518961395289106351447290425397421396121710436874015314988145924262033486749307276946356901371352037801857205763476095708679324070063220095894132763627054566219119317761060802201095644130122799900891284706548584818047286674302418513003076427626111441336212040178343294177582013160563420051583108624547826793228578623191882188093367498140542773772204589666913798647087136371975525619500761272760659239962315977535498554333370514429527310520368907012478646984129969969508471921851694911506320232984341004664096055670087540959257276076167971232058570488673613320164398613506168967593158502316519145860355198806564416880359953956450677480258235108477108037943713161238665153040314906219263163326033515536668921334516934288180684182005360279132523727618908237339113911223932556791040825755592954633205022033398736081259821378616014847694964971892345506048548086876271303204777368711199098449704508067257428373347408690448261014232867225082333473484996115241139403630173583254806921741882299786061039533358093220399255323623135758157343615376499675578375280104444988683747809131338863059983247551555854780542480275191618904795397817984794050442663777067840244993060844017334050609546285209979531670051479753975812423312459521584141989876932268486472191572444087167881712858707082385780841702039156462409541013165105981355219658105576136900337107700656468384175989310700670886625217860328441018058991993498758736152075582900539990179591304651790290127337090620699440494987138129197886903194303457885210811941584677414012261492888096959161627190896374033701653458070498155520062110160009437496193451096822886407721374555684669303070922947448189266772265184641240299620438133419298174122117343814127034082441081922238871142413990438754604403069103378628262440994334263459768439122248780015354741344836835422518672365550689855183873341065148052545747001140359642333929615516974824360302218562362498061916493459007047276548185634378635588799493323951694392454034077739984960097497125656733464232801919791114223568819211253319079627413135339340550264893457008856011469767544084725153886383430523587900237826573727068675243094669208433465580448680869130808308357623135689466545681982957429527244183695068141481793745059926663437052714047016669713669997578720730511881376044952441349834475511583622435359477269374344638278422898962444067860870871436096221461063226720764745882477525110508367088573091182594366224990130582187261398873027150943018340690354797601290324901327253107370455340180406391815705335373210567752314231782203526138435849722284352593101402589958088613112412102944232904627214851024324438757888632162401048128769759121964140849286161277681523840003877411305394240954544063954515346526882576850217108439553735815333348292466539395324104720072331696566694176460044384838061469458091749228298674161912441739991580109068360215917248516881136439598715224651023296375665235629249874867590156996237599701051810300646237663530043183270123060109485373278798254738770817281047817812833938445290314720845472925011347968905903443635543209962806406575099959257701340858598452821673878347327070798896989930324292390459806170154077933876891242372038453073972233577540244883848527411154525846924203889302872639521445772891734882479589382671099753639799023426325078377916246221095923934636446184617962022763540824330565305283833452171469738359532359632453731225282899711908583224824840725016489022343935735650552301565290617894419927354649413344528215667463758505941015959111810635605897651444205709687877839473251846443415399150196246555528694627746256602689849434321622874863072990120315951676623630848812509599664448430118761392458048081349843565878520135289593775547862155417464799165510854216700100371845678727677642901816860605201269506841103263342241566676735200632200804142953008475989400313338745424352991156665367340049919473302653783173327540553369529418397329613772884547348710142194758314313837895603022896411431737031140683149466363708758330149527313388781495173767045656356993613489740345420757219223532076736833782543055505999149734544172329815532671535534140343463218670812236058615462408845382730596011029055429390947181390588142796156108192620300834215420191953171423003992227186173431477264853847759588887237368529470924603544350223445665592786882482122664127523370152496020231601253802760638532448663601962973953069634429263101413534766597876684883755009386871457272582364726716529085906376729306915335828839047245422096724312991724364792107672444492055036223199216263053119581359325970193019983417331638036343068995269135986400756108158741293378549970558388631415237790525709843898651079379142126109301882876057692177167693501342723599045171441985732526718922611032000050592901111149541369365998227889381984517439235553704379275437152968384353116741673867419165338872297717669570624861825910312683492923767256287049494352982865850871133400841968619000370236017027617009295599416664590175707626978013519871922003599320055357537585225080586428008515403716982064556768924161423515825760944258230991189999427086270768198390083917887015160200240306103043722666865159256744455544035958374383475991984611760384877259756459659494481407460336698579789891174583925355820339325747685701417960004240030092908536732552349271315361310418949051439108568417995921286665149919656969948806892400369705339884268120094102765051703634069327478706110665615450967371315338337543273833880480318747637747593341501645119602056983436149608454079791099720063152994092930367181914916093603697742169664227944082280768347629866647040312173332955729508976601216255608661190203500329312832607186544850916880735555104324482170771397296984274433850018205880704368251708199682098157967743068916052920718580874776505541200040692934188840367681022222772840089004698663157678944876212822982891170349980105981807895573059772109128389256692722352222237040149945650803612372994897138127987398216076392726766555432708833887923368774153354439605836150940359235557877877398859979754663130617471118052241053967058611332541707269602081526811880846122159381484890949954788938782134563240387747300542425401833037505088828159723589594604959755276012886548404925837727243519237225875748540076957084968657499515238524345236748265207623675041890817021496161916572954390858373015893550418543151659733521890796764849621664911174629137547517562060572127595087463368241829444672359067586187381366254187305178308820046067456492552865981025428601444635403940098985237700956583118692521010162672443674324787464209148179472921836961023348549994902477090881777750876193472763775945024083593231623639185111429421850081874260131233667316445704482782633246655539070837933405994027705065064570979870151409954921432934643434163853344022517059947096254133432079854273930317627690138377122567091839219357700433052896616830169967976885808067575553503127545124595916105594733289697892892568625539642197014743531795336109221080627076952698426245551125065219324603822400338688207324760135989136875142317700486250720474732343319003674845943552911557144300315656031352858909311686539627533287966923936709404704563474964066934388459465493493930846304563542373680796110515897234209113610656238362873348487283843023043480984503780708965309100415525820325301920402763586860383051283699818194825692195124572536653767119413634175790693029341515489544810994283836313275214910289000484893884189916488309668874916171698782439401254182098015957398822876348198912025900553993565321106615753143595816012605216758535344371880313237122250051587010621035768372976619997437213798089726006231716339412721270926741008067416655868236043431341518772196114459839308771076575752160524248371915250332041315130871610570225893629421003869018470853932512312802518326516113686915776495201874201470749556704396989465089216138553398747721434237418151652820283561338493430377930176285178990059069127625019603461978831483987951407572399613042965516300277253827405209557113783983136737189529742419534864838924417526929826274566204481678307058496994783362669629282941117510140292951248842088363280760466604652349666361241554417475289564832317174384017689753005638255045612443672966546671697195167181377596256976893156159488800472436903777765779184546935708240011135332799304560980810788358330046402802121055590665104091466833967143406206798931211727940594967635302899439081294193654727446062743560864525162960867920325781718562238388151190355736188556765283410091091837947963707716211992654321617060407649247232005351028003944857752073491993306657319816837676614227338599478781759096738277855368209640832686711480018326251976953385050341838689995649359234630873727637048670768698100868554101908208986207725110716206380812327356317227324673335474763801816843857677871368636684058440163714065419821448805543692761034632478359164059567756436930500835313862281845982468153852586942480291588558822228999518114816146496267376441834573429875870357760197140564226397857390809683334883906721688835606243770046093947998186470760230705802808319793990503057300726040434346132992016173625156996477219558089186494849064723620504720412090119175507176419326766916177274629223234915748169562633967622540158899472050174508017157839275304856439179420541178037741965981333317561807926327938675301418514458784674948936306886995903271546527220615397543416616515104041501326289427694968042804283769019120648005559261095921850042837957411638542079543878010096971085992008410085819140026494882034759588593849382804938382216350865123438016493235159952015219537243969819994180891683209842773847621058197616336744437580507305995225217868408007378768404850338787495478164348997611258885283418753791589196571326913921200800455463026571812336572071668014495601188446486761545384132083357324100742615960304182402388740863590287609528231913002004604711218933637721567969483499090847986400993454772931111137857407013160286726604298248963624111098116198640534789783213036434284138436358273987954041004586254601835815205292262846292222546905952682530391277752216476830896196281494004084341816067360564461465583520410839646016989647216436596409076337145696092520661021185745772818442807581145120057975758268427303567112150262115652803369090939312684680840454415425775686682256046506022715271943540249172155922398941708452249447101271596375629687660806992591122287175238387410962333724761818237127464309210235759459989577186494029254217604123742290299333370953205580878640251389300701921758342835942811342060390371745266049543210347076935938403067194234983336131855756140098463597583065974182991937217176569149391852689579807913110386763787266733958525842907897928977706429520967378164693360947190969700180650664548588748255035090787231058727864748689831598468689552660652299341720389836455139651979821016253999532282161930126121598557069540131688728039262611449992071214476397983793404814878524630332467726167583255638767994069071870931592650061414969903495283192838712474184034754340504554877899514367243660222079084587979171093559827443574995420744146875134371486025699494028238260399126419243607596660721737471139415195135248448738169578502182084304572967937624837113310716438595288941323804892332899776552567062312814496754514863064176599664634131829434350790355518571277214217856715431267846529649419025854829734242767716939374308080189730915104798528491582675990749293317825596168315118486312392348402953869617738219577517822367601333472392960622394606554103147048757650757603067928457996111805177481681344129088310633231594791719391275824217367706729999147382708087928696478574351453961840468869420050755110910648758966128945993211239557102998034923760953537660584663103943831667939039291808492698455392303536678497859072702144510835929730489702571325512522759482221313410940688878593122226056280707491174365406233397960514921940074821586525305738591850857804038097192660485705630067540958927129296675939577101655486789603680776793994667354335481855451304414967024413538402597239068284057653213920107310599970746990289076039305888509676468989034207633574962643358566203058324446399449090561890831490279728492964156418209730002484802999959563115958379613390019329697111937110552021881429180557440326294625355002813827677977635744977072039022536928313812058243624132907488815924724804239024958116205324089526331920383838136460103720594847283994344158993263292756494742056706372454678946077533784173957309237785061312946789381871793582430854416017925544843195258779482503729869391195393257166339160906241942404069884237553258327623103715198645871226074078836558773247248461304861069485034069354836846585915823084992080971459920252960976406691616029302543828381317546427635920584738194524536469660227082693660673815192115696635765401402182413608216836155583564092886900945137276631199201919662537525199069991551614488074773972677305870733846270117712024827494642300307046008206546051120946688775766796076033775267863513424708931842845435846487001267895804646774968847253086631281035294906160472609711179824945621107371711794924002399301857876735947199650236349081141724611934136593661378685435177188848978453937345857663011932123008811799995282181033541463635184711284471430800736503919160563779308085787586405725933988521088713040567366879942678593297872532150026759378935993926360931944133646961859577117174513055782636799540003136705404971647769011768339609634148166415204546249457886142326176800220443278536399732066612612497966349392748632098143710469414598665660517616115573788343806158092675908210172339578868617162139058873488985020870127688156580791364977115206550849567932113715570222303004479713161297925184653360849428128323813372657373077352201255752202252104983040474657279190522401587148843203029246655489249125104637737997403268388088151612438070432975973047550915962462473040942037341835777681625831790571955689979022306005715935924061047672561182916699488519487485577822919294028802753894403150979300401608546984080014482249016833412701004542084494940783150708592826542526092632745813354017486179295709990445214162717546616247565296491879480964231931987387013986204061870671164957037312206965326176042474435705653662185857442415979624323956232803287785864678951398088542749894786848129982762838993532886785363772507025033710616919832390800032363537149358642681268847196727034674455715431731976477806312098876928218184961314722589990245980922033405373890721582052474349198212673533657282637975646521474225309164353050852039023162555728492507561851373250513126310711268334643286527308078213059625847320557754914109023735871722579207723227474481703298022117924036353075069179846452365300977599480851075914932075321232856740682115765421599043180235125381514534970357724900613381108535096983386687942617043466808695868971998878950516041313723461762653046252199315512272075928017896710010891565040366539137806744766068235341019630855376646652409561645788759302317621312068555760305636985734491788847690079841107612581647403009744671591960454769368572045710276248497818612218762716766305335772937694300135251718104779550524890492864983847132877149241207322180168486494080620873437034972963356651026634346289829367710094201298332631212124280725669512961751894991213631907570722142724911396081801187686865983449762336401591982988323633265034479108392223117522415383149505716517774669495407504481369335062062329013102391723988775983048430942794571910665851493200638313012462966468123129075874939609686629481752655498543349378781532578608375730379138634722522664513485609027450665259809136109624508208835485098584637747659443937915721751201326093485378574224336138761161811615005021159278934290006794043213876734742834553148598157313266148758569335258994859449000496366400997928424014075506545289005516111909488639779737228009893055252409243273018149917029955657420008310978074261133841037141622463221343431771090574252961439337468465125466397070742788622937321724764060014875265907802263358355748457549693019013129123559029382121568379645831700917729852953495515887514319999299117897070093865650233501007786020686200860156851263351351377743604090771120166788736331470830720303627659787561776423259694680458642087758478707238659399603007358537011741921362363114065988226425187465798699436092315971006918971894039546193136326664694583003101401353217499601222722370977301572082164170658719409777796293304383106468637227454552341048739517356447862894111682096831664438280767374363491971186428004673002915685957521541837458452230425824719132051044849879714013749364363765998394423287621256671225390091836530559642206917382960748436588966708598613716725967729803196386727721808222366534908084913982771935192579976621982869846034879859561865883312985498961434432704737267146491837168476014836208490084243696201554988172061110956834361643995893938557545820723495215189860372121969807414870393153641066447102913889013782542962012665056393042517475735252953232137498496978782693636174257189885328282334578892784789689232794136143539296800883845309070848659606744444639438565709362350172812689268347494907206619011802293443098033960467435593531619131172944147088043647431894650992970522898020634027989175973852730802153756583561414176595084631087074703668183277764562993101484704331392409340609644780925631284136643256975938352198708309235789077925728952952430541492077127438188920501673059102175311609346240228382459667467336724745082244236847329691241503592027878892354512175035100283771584624446060803703614460230196452398569162638777290833576115147955120527965650740986378541779363112098838284218952271652568439626570811550450960153032172647009673270983571450362372378292832050298322968033178072874096890617990497014308463883933574697463442509687077705241006848320397863591038825735764708983938511346103938122821738457051849550224684212229894514429152285346766993574703977646555162832030777410075648650729657692782261302798867329658741275005852213394482634680885677755233105485218625868866475469253877071706507147910621972333890607184073382490575783982824072779351283201342542033872704507809292017957056891547822111375042251815434351639826510984830997168830408235688396766925998583330899711246265684722922644296959235600012564550226040834025442244309707344708103585532019381670469994517993548021498829219039541174268023511594381805501336839039362268485911062368516693277501563223452186963039924672479220098546166406315040121492809630657910682019302456068263517372893646627516678660850560521822621006707777848550455850302591614540678201024811468141566890179787906627711723627503857461141410974235323498442605799390846127183339699860423171699204197408649441774390089069371559443096888998588967220910017974135907058269622373731449272304658105203674610638374129318248261539784808253505509730463371413219226532048026642612163843956955559924363303015590151934951254135439721660072730079117213739538627151532999801635906933024770368477742928169031992495292820309021523452677000126039344219916920655430992791952943684447955933158717456000910052956792672495719414908145246077050792994549442275369475475640073860945127769630355580472709002578643030224850317634469825667592907473407725538777010964699656766938785126629290963030669227237137195058695906395317127930196664662745757708828558837126886053415772145814809070843912848157858158061416638398617967050256749084284202531192798738721813461225582680481536168382079471339795645300448195676272423722231296517471403456338586876090209270441392574410974275136766110052665742245036180775771477466914254284682303218768793239979149039969812335719957782033284025085846149398090325579927422382091071232997774493319771284774249067370573866775657161451199346404630314040747434734101628627683610201283644618409928364193944912525463881794682582512496799782649903639356477499949678554916483879115348105586194080841058455502650747863156797284970918923861741378200641154520729978212139661183376445373291920746405213017248103331795243550132884152260322216237738446326733242702772159336935759994368961699357847751597881135660702297483902613649612761453752800440382800295879258406182860166833824967979544606236065473701005867048484069640766713151646888378153612053868058136775329658437172440824752453109247065199586370629285675849282288724356988834988661529904438489018943073988596243828192455324032163826186397307271680388219545414074195047769044530935456093867868993642513369720115328039512598561313071752814932232221039923132768977598198182370058162256706090217310723495074203700227153892630912093509047039565009534446598008577171992139724282507877776338775026554317024420047364976938828941845973172340331264659094448434829036779053881396562119843308012303100897853693954758294902537640327715108995148890180912939835968241103060969141257638732809196535124080099180622890557747562049836008334167030632506179507983383855156835804199712722853357775607708314228242448093578129126851149967708822784265125667435146323908701527961353149948546198267790323377187840494138266496067930093161740201703700696440847874815306200318875762170749927343208876487101976692079409126280874196864459415437443407986166451423870381565719941922500742138612335773782907883921258304073099996496882203633335844505438053264745116106299543986696329796877189674916900921326997369489853651762776032481768590383820478107008954315652701792957883197206634810743017031742421387052959790157851352968331856916911422134208402308962223671756179002243225479500881787541382178408438437977636934617737172906887139419639856631740846792515846812479422496033912156832174251023361761287961554935238616656279921962832669351096450036746650772897573067806038182451259787782497560820861799275314219605900202168469116972284600336895718704738071179677488247126096868169092508696736732878738951938252661693443805364924742922023006343913846797141719044574851215010259636390102362605244842483013695424505659810098117540981438257310754131681196826867310281748793012773579267918387591100712995990854421882501115660388078357496615000662930683151934320427803857526107133183188290360438253557219264572240756836555637175191279206326226319969932043567424889502272798001909040928266054404195768902113345981072883486697511079438923242987261471305683995970910717172948068201339342258229809795185694376538834239043956384869594360143353738723813524855433354323587907828187096034176887411839709341628507334266805552644044422044374997479658320053824006850337354863831480394723877331913406170491920799046997690199919558378367905162560780605302752968735094851317399386770429743400589098133875783266763856869190909066595498805870271178094703352255046070033781809951863820154108545478627432469102680122369588479317645959342523632661754343852170642437888703635480897349233183206286828801362281298309470315830148195695860441266904182072013036983012019182793735525767748821863881540720600668251753551735097136336492170542222814242275852767153250592389239276525555581319012573938288549575297514087339646905736431908596829702538794164163355912389743390823859901982326984937981918028932931048457624270922955251976218119863478774833632812001441526320759831743839022922569840020972021611189298611534443788811990503264594855733016681460145572904116433948840334573373136943340716689245858835887186865396549946683713169201768087119189710805483581121542805864650612801865500856805434472435482262405938023617520591590261061341978009839680395577787716108732489754889911312210278420921081499438294199081318614519328573251278163917386018864648687819308849238443605721599942902687129904813093088651340767173347869897667096648459420592024923522122713597363295120774139110082764209978200620782585402857433874188557418993241889983377675091678223904945167529194801366111639889213399020456166726561019144546269243065973060041638500406830896156980667370157523690376777114303128139301553016796193788787018862966648593240548108153661973269555440993646253175544711967312704605758533361982088063758282687539668498858297016884552242157488148846959468615099144563256135528547280573291232120016517553190715983876378857286362150237797652315192018548377301390925200983533273147389088323279996474816419395650225522381485723221673515759677085419355451106758402619192590340854046210960964055625646880191899223324692661133602865890601390157887740386146793748377713593599239239179386778112296680075329500504688150706394934799761189959742204346516000917627556539381616274586122867075783396380778120547073664472714415237444999035595219366062049858708804512733447430093305370197953456050989088977552004312387932851562246239981646138352029979441736193032850326170374302881083049564466455993052698882873271277442404189803674600116838292241950282876184369711171271475053151065764173206947711822555932458966012956518412465060552597142003922623657805073379469090909354650268367155764507706028726289675532912392739194079744582359833566472703893034084836875353336800819173079154205557402024504447745613112078789302094449376914431885018625629241394641796250987010912743348875308778381138339822629935487011697630862036854771085402135145830615015313384244202231825684008661841306898417342160292213467438564888951153396944352584379576629055616059377599876194328374760836922476337452816895541034904303283164190944106430972279724380842256838557905867877569852111944553375765972762258415641218704353538646668079619700251481458147079167040640834386486415619152659745133465592316875570708383501600726583597493027424236461333655103410146451132371448176612968819491078986394598141320173151406298192773771708974471737945835307833959541990259381355263971353696619138064560248721755706277515924345099440449429810444684189046374928347704290972813991397283203913489171042365604177111280040552183306653976141710252698663548264182292667085975964515043886552222323788563296624991331491186121123345734422411129266066249285422454152248440060728583528351573450060705286677415631002699274935759111401011135405527796920781570043620756365871573349492955418767515369023217950022457419667848777505506921506359951488929039344296791114690708496824788206140721565468109935535494950837805069038374835708364282868385467353391328290830100810455037962742091437834477393764790832445094635759794733259888434723904069401122797450377945057971020324999787619355078977089623808748928977468600250094835933475753333768509689336948095603747800472442779785592081624415212213093059898790336518712029009199795958411564690550447785394375950594899419576782272748127083763123090056612637967343235765018495746856140842024466723664630984597434492672736790733318263171645335553995541723136874333096212829770769139277865731781161013470952257945765851911896967489061790650479066048795809596592849910255936098103966237852718045085716809939228943029868141102892583763789242321339899570196156406806099675334504281169969720438587037527062228267476612444294769821645415926428577931404292561868321015369620878041561782345646672976938531074127483292884022836410356518450138948063551716418373616124230877477709750197193900512539643798285047529819498529074753182369765725040974835403980847230644382275665131986769128067029458791195248881911563259178373928544116334838340074191842559550179764337090647828012888784301839969160222975503615221721147443501037035241120885721929751391973718142178671833265595542280309736193065246002762685010321303350555691204254840872949872869949586402018580359227108303306938233857203555290380483899405673263384378226851890232625925747951711530154184379307388108754960483470263095354669175685180917334423886407446897932807832934091767916780799584526320058899405467657038782193977727741700985461861716988151383763420700710245422822538737732056568856386833917413015985804353664530680338608309661699156017589417709355204060096881177592736696551064334986641000395737657802118408195571653862146704509881103785340514148122652575169330099220899407380092884412004691615914714378553166084862170822105579937544389171947855486926073657981174852323695944500839430401630779730849566503284652542706840280458495511898183088457464874664248943746363368996037060921810759786956353987191468590048267534476565064214829740700328749372725956982918892070472704406192588962069139599322073668820548090621309447192663349618462278711229784410377583905155617703380481361104906745114357942737401238964036835126924612026606995369197018461381309182805987270897507168591577617104331693384016782085619725894531502581682635368816807542663471054101675534229704860395789662225543762161097210282249297680837263516152891202504788447627259821177054051567251940756345103712646433059895409944610666713192113515287213474208029157739713272987344000368058390435793302656791252282973257809658987422025940378242455741291993975010581233599230246723860895389629782513405026285304920527824318181443712016497937582754688715951166905682671381436495025028038707124373187425103095375893767996326633493742397535156171281325375966033178953777543656943751429710514781679063200622423835312185206961074681219913089369165320056578169341593375616594871640042290922195895787433963009438780552291845013040270313260269044055946237984204448887030638826530679914729401451504481574009730391185319968771779692333038233558682706299722396975926369430362117618984907006993213340171711989201292652541657090419128916175708073437722057537698560344113793227683090524517263179807836952321876369283208067949112504933016780884882311449756135205990886665210095410915938226986288619981986585952652859916952484598930806035256614448159414568012715683014166404651283169523723767452108251816377077716060178376424082187590985185981888319210554852449539150623879284337522379377191895491435143037881722214587793662753619514667010525869016497729710604895461643821183699164968815122759211469649685689004288863104365066946321035873886999843857642411422879084769793249080525504815232616427307858100944445059001068732258174984320592948041479570230704427650578528438480855208547307272174294181494998811481502758740668731524525382297685988455527485097351942599842886693517021510618362977474591142925458220852926920976366830405734545787870544621919967188939335917175701040052274960871600951922621774826263285340904430982665530697249291444216295596312579828434848844571127640270407497773729889296535264625922882379110591174244646402711986842055161944385818322355593355372193656198319559534042388086457790920441328595571536278216765695683820997458894716185241488951262430455199219060508695466983669925358224629981265076641544476171444196981370898519218670868028466306529875451840846556191004742135580090109893437085639416144008046431449682518205771629930142972923271296354228832113040940537538699421575454989589274870815657073602093722134931202470035414639724125822007050179823799572763038679981761559959993037756423254902461826770751330045877175778407436272801403393058425901348405877096339908069382121383065603528256589254630099206903538531512248654404974973080257283221238287204030840938415019630077471843371047394375338896191588226202984406813577338874301160394355929936143811327315188829367203251928303074503257540649984962233838730717595725164304547777049021205891390167230749755139261023825871588234824238639871539883685681348960526949094861207254862937714271639431231248964079101471828887870086667754896024391480024792834475518143502180538488338120173442738265922490422498625343827374375699277787853097318699531310394099087078417538046375039661379790320463473505137440870837850560504780869945964971774424585946049278229515483100992734537017963987628438012769301976150111180757640686675796331192959734080992266462562670812772408314980704440577977906623202512461103111071926836446640734437721100875925693483845880783922913870251353195132680815261753338455855936450656418489286752806116892536883952271401693861747482323613524938575676513084722611518250053700438357943888192607774751869292353819659202416723746477643049828326906831670173757449468147033027645638648792769224361274310137281236781177209079694597093223917970167488104471901435629256569812012325752798942685113703268891339961135707374461811590119799115189966865898602065002490823257535443156697613135402403673896379610818598705096740069836436998424298922219288562300513108324540338573729075154945051708613728338098373719708063152471685738430693373771321115451841533664380211674300283748221893510066485216569839252897465915761589704364737514993190811589651331198418555181935023672144167168722879882647113241087091952833768968709710258777727794931836800848728898100802938296261629592944639209787758518360021226999021696920955169480331844373679086690330890526214935281046133875582819287085113117797315541353135657054279041108732666761462858448996567892404934828918203312301583082260731991696736859572415902592014027749998381802242500401506992347213015937014760897285789177788446122529180790812943629664855426090406279313897141383531178118542507641815919848083955502550311321830110394717323440908351029251017695968039472796549649668993115343443821864732966280930319858041721879373581424567451274990125656813435548911561599978267058775402664764301927014500630463201557830262283279145979127438343311815002156400924240386622127696027340686957529704828663233764405391335460269774034785870693690658801336563862607358040643335528484697523084088122590094835780448192259818239288074007752374198686895502257604643535780199396982495284296191734474860341247141781842526101327649472271883467150249811142669917857682548278314899713394284390453326978953379943197769460474731533451411739024288282414297206549192672180832596538148813136221632415434244840166156470528345179672634792260350836388132341708959408984619131937021844438093251851874183970724914584040110563248378985265092654132980459989973499734646816150817195761903629775007851700214833221328326302296918197522485485394548590552616771617609879899951001132435086749662544984087783365716096905611071212766066233276105146979970083332770735128350737523998876080187537276904702437516965666821445445856283878860585264807499195142007601801088020872966220741544644057339699826933121844734036514047808206964160945488367148535858066222616921975340064551073357653608443472950399276305071267644294518691011885153897760319578971097322368426835698433373903468110719586051651032018808367796932242606381947225887845714352399423326647860694064219530546400657823244717956897564245620870416884978655780046115056480577696031133819156950425077752008925260867295849800773222074778358346385677621240586503727752916995863690843686246374517142495327979047341697551043839307070389887144615683016000399862020074117277288768441039377347564269729774959275809653506591813044713234816702888649243404636755773527806683845691937727279357435265986626785509008474076376425947807976259970033728049662408191379609286773410161200908091241007527773215698188316071557632902204326161104362923795028095069699478685001556280650034405198579088118058623988723989226249661026665335243502089859239925146507491361030604129514293583802491309205236032921017529452935803159922873426306186868754988396735745440308380130193813068806715855834671621505208085808021705245783008063674313313375383501034103640820145113395734914363871101391180967256958081840576967277291604774646097565879688194926195794234836210278208870974830987861786572440589381193081918988772629309610142616849814162032151014008006266864705661825804182760829695492478984815999085372028617730790251366026057738546572891940259554291091391788304786730628834409240797524107387676999396149705868164387256866495657293103031218897974461862113429748621196326418448125200807973485117559382818366580942183105458857311544213120843359892846796961315219568419158741999894196578981328860653012062487644175844209964592399556170366388961278537687031102777245254836303201680839083261042289048713171814067937626596754864057718176507122016636333184068663850298843652781163054499645069396554558396335281491721373136103071482997004901809573718186359524244157531773261098872986784652093594838688769373748171375798672270715458184547378745475895455568033265427696617787345700942714332459360125105938188381136579633924451975121019231040764161612689231823699128699302245483865547396840175977735414999949448829887071336645842256349650994135040928829580024086985598918706030636172227584326536190612800997531283500446764169582843412182083768164814964539726715491785294697168344845315158992619278049828308128806063054154702027723949778168890315414172593907872294461093026221374614172899252381040583236252663248192773578834239610417731676365841899773558244764384381216771747019634662614511294753984075981044532358011128095694681040814071648756584428715293384602648556698174926865817436948901878970152038331592043364175365544944394029807805623152912814469154071924998262185586035954256683184915495212587286601910352794115744360495031345644440069208128701349633174505141793516394072453456786581581307592897823824955823440525328966672537680883470818610984598723074726621311291616785326652367799518797569874274930716665418450363614832240699980326182730718932525113817614591763757296746619125138818898721608994656520197459347867334092270754529997534765921749277831606023736070042480679506398330643096154354571169436414621331027876017875821080000619396742215076571056771552463013166519659589835661207182269725821876634276078209802248531159437028257514159377586740276098962616690531300313292074402322963531329909735618610497802667977516979694952813558398572539687739081691343835394016601191813552798975193011440435162015130218367087523917481532038713655899019015675575925597450016449588199460719602488341478101803116605364590334451459862016942883050517478883880720382685863162757942920261700440261175506191174653142630805152857147792589420097604681267818074212215234896183496514505309228576608187601759619239658432720278160341626813430172602216123778239544057093196536904591262809505181567610951848624833656179900222965652978843402327367142801686088026166140848413867680182772023468811642289937034557639808514780748240426420529332618255412129126739232592663899100916680598854787452213521366878253567942553517000835077021479830401109673006688433637241913041013605613607298509215002916613712545736404378574829528941399785837001311256253634723981757856275225438788690564569860593291673995753054436183008856927002307348804431263071444592963007646196443059618137201303496885283972786027486578978284734972298366501523274950444287876558566940738340827375673291253643734773382589259599717367015230838926207523779855684831705126880569487905301425940028241737212450301629728282327254553315006804713577516230580962719781077168969057927993828036454779244290903106317287099688415644233280578794723837809554603389726252989694137155523715823344935584861100360087339140502101815136978510958606800777886534183229395577233104511133800538689526696124517665692107901836261174929833747979926486312234586388401995556075745585197856724892336148699965459828213707526618925440576616210251568305241047641093461246561139913948831401826247323445765039398491167532458873712309943103793657359608721726883566890635287505656192481974544187018386502633677954320636615658989828706216670589063654136968781477881657590066308901500683994537851268265542445451222210941822232555852441300397124224655426856546923835124680257246050671658035466517710072572685368983974634135330821325677327962751751021622556333679531787595293925454268473049809428949253388697515601136411871464253731282944959312811199300168685843525963781331160749771575086529998938901384449628464727215969869144316012434959937134552889462108924713996887007778734648454374404223755379273633985530905255928504101384300674845135882615448047690243479321677837408195950048401839592388422432643048230121551705357619760509841762055221746971268909897972857065581384219072669771181632488523785668655581938794396390210848354892260048215852812566571296838616844191321677078097420824335837166990699166785426920576102247227587854388803771521146605239744963100350389887419587273986162332001505492305956145511905404820976303134246198755979744990186308812280398251626445554032026612598680580843919114912126213216636033672637642373807129106158438852464146714104800086152450829279406786641358069295291699312381895220686206340515847091039053782875802340135333267006690084999894583092806038175674179715441469955561725747396232108283063345806170703571730279940687352811734307537137773958295219882286980979512516336160083237027883074832363494235241642866664309866397233419216399194579101734905833374224524539052137900444985004484235999621998648089433144918601244243149257894710598061031476299811772048715115244822295772999052000938996355658910330506570005360377495599649656465628376588003399075034537812873539036294340116763958658340743595121219286708641103627838387936508931293215801759154835847251730629150839635724003592816071989740901396280902690442291610828645805013401980630716640483968312022206152546030396426960620086092981988714032427776723089546858895528727402270730405586488879615826275398783776845673516571739845252303577118440969644792517997616495099519243852645033049668561484908694332502046292135778028058412333156235391252233109828983801443373343711270483649730280995109683550317192979539359902453665427069620079416468188716864534255110675424774865856733075820299699320961196383517544370754748827698727177640603455190625310777448891653356790176004835541451031565903873107456231544555574799387519881947135677758464614467720812537605881992279498732969455691591652382928091871649717139323523971308512352307027076513218417595035377564701292348032388832281202859456422311385980111212638768923905687182299281973898525881636274516639964428910767072004078007637301366835973738731803234177800287542660428582317198796274554034030394353085801862537086376692210528125262839787493300283404903449157528218368334326306211958427569017663601098391834133244855958786283881755955623221595252058811076419383108180222752416414469709720866864347946144100793577710977642684639895117073898449497343557955556669388380707535547851611297715167484586994262543514613870770476665624471324920740281054069767587545484021068212191085540583818506924257849227513193949192671272503897909796142118835840583405639843355896133726812859965450813814114549228474793047075234722666870051999338143692522270437653266319307067197354028723889796492964767091247532541184801961345664879851411998143907470061777740836048305912994257479350540938994175425701328922029978400496361833399242496679016594214693113734470119513144797831733149166217907522358340727701237868059967832537064724585864490537516166994906805024352271963551464349330683912119646731740767079431619938421305231107226270659637091498499612076083607047142954674613525854045189882395620594491735899035678701895044982643902968814660876683765937351121081170492570818971456418452149274621679897357964229778422329663140726236335103154227256949444044744500129878482277052939771665449257064505401446028391988532768517061381629412842774535602515773034016380814787423118696299531087920880118658015650115483981249589665920113279048784797425017437723429970181788742902412349662652079683561371424608758339287115044775043525862317142887137826682854258779806958020086482302783927244462441688409535558625421421067631769614257640418650248361387972780991841087172127269660121001866162458852064008174857011951385674905345277384411613120420441489670389308674350267871228024306311797931891688947598406383998977845014524679128224087609552115635884275547040567997667921426485897864502666313211297365295159337383568170120648203866643973238809127549664791481517065730953361910897029033495165347526041389519638879710129427851911408875410898124525106230362955998330106231060674774010203683618265259419652027083418928159051928363996271083783261936539080962541956678306819186238413946305248741109696691605121933915832828797850571824973326874886077322023973591658040905751525090841937893890372373745199643101333850594462736360577610473643275786944621714167399639245819443748483184723594478082466795371606367360516816685748551215971225724043462967194670460440998452854995720233706450516085884767873358878255573374213122314350856146756148716867092120089364765821320444667280746242022168027449830910187393417684727080566472720776632930941710257650827311668954227605294781035897088999224616006434828381061899179588036529521876881620250977006530740108990866961875114288646822253286398151676085195165962641400879280354675370039136196985432158117943280145864140377768248066267455557332576784369650613602215488752349594707080322853641651563558198384746176613163077150618186360222017132026935620464349927396189474681688185349071139139031384307509374204706015848087090129949852032466951038880966632985363034846337731028035256549798717915048076835542573904461240980469634201883548028977621403680530043563350049680337193755159037204154516838139811903784260748111444735532516903841258895913357751152496225791467859616350024792665335738595099475863014989823194289535207703321451912479356941414854830158573890314838476527563487381238011612153581252047536411337001622895798136733313734094712816844490110764661152064994851533148780469200459735645206408687913884227760354103608305795700947265213626246063949224706631455547333790070968530558279031862497966754669480880863750297486547096121100977465894111200423187976281043615895735692546611095670511338968617935219548271736022319943616690886980327747736668202228874335480356331961800472303031639862476846597248526162804430316932395233466307672467624491251836849566879498124955246365605704279494252960401010492894565923451790241484167820502658838997597659865050014477210001868642884915032402784034576501854661077543614235699555785629658954649402369317299466630954266612935604536256757955020686493229876381549367304475145876027994123942453341016601589793502554852591779078300573228126771671775761044199694739189597016994343919852988864048128263564182518347855948693905584305489022699202986235544485406247558951539405208683147663932742387993625178870423679194347642679948446081712927033420265635107228686614541455825668974148786281200198255115005705152904736295414549136048102781130119238875286016175999899063184070989348336822975471830142828171921933766523861038318048191147432341339769095641675334881618542648789234825803129132886444295925506710259713038438110713311145615867931214286728369866199621046703401401028617940748951489699177114763482267644000342322533661382668107962881175772298236138620625364221272937480338574660543112529773585483617132707569882764685578405689267388441258090305913938642541610623789012900326144205728342064115305511657355034731291613037352476737207839773315761325845873736518958622460099456410801232695059221234714760450003316544475118077512414856304043194704938996205802958380736662694448421648099313154371439467499374723312977028142650285490795084028952258991036243730370230231773778549750434364361712968918645787403766536622457447082751764104972481312839769266771149365014248123092201504115879453964511507895372837077618089256983506612541813444549383574058884854836775816189570989580064701041857961938224859242064933491949674146860237180260595143088593299892805356658099834384614503216640515175872927481623952711250043671002615875484706138210464493003872022909862269812143198697778609329449659579514076483256752730413572103844379871557294541124000986386568744011490006741707131749380092192546914397556391903226988429947465448860568113917217364143916160732779888537284737756848713270493333149091833779603953950146596478138288285867785123882688343421971374807118130101947985932810612658826274403424361873075575166570821559269030760125148589935673462174863337588770347561685498046027315973561931668350321315938179248182421429395885812009222559483809940362747329918455684479739260816271657829886618041187331630168910696659637853205468172875356286998992995666873300283161523959240054411271705777102494125761684385147143271885260153959512739098093280983003169297017882510077608904378727134231010762987245127712930730136217759983748948323551865969885371917065233373389879191244289500465178560867187848818406902037700254563738737168583142075339753461260699352002436856120314012845337083106332446796600608312001783170222296845133417186327849422568807272244995567634011066569331782216246646058796096637928071280044073348435303171795501068564118428119265705431751451281817044444362197992044539970537155092470582905333197174526840373011773395418837052188303298619019052429513848328741250162071291330665623044394384678409464845715537265408760236494008188450694029399047808868926655063748010312861612231931769444972875395410423923418126978490613105638987883505201703167933905010104574279428089096783233889405183288683811511279678315055719752895113064490463217018249561854573564948666043743749735137925824762870966030149916247883033079987644992226987996565397657357003833721159440030688840123228239357928583187708071294827261037879048881016255050332802688462916551690832459439230854400958668023448080632469295642078119100005602566747392135755112013528589515437943007046317537933563022066801167692938143309582600181914375689005276763453438028812269550463311656187213819950500276390458519357245623980416093287047748028325442219349389988773157704690673355402770126500519374036036949624101328320852181374409706280753253885265528721658405323038263278910514298222064434258175099571424716507522305880799527892453486755177501660640877954125986493469958191705818340195040689555090929805392554724887136384532884570867317200155552991359129618442016289604630608081655317527589918511334648642104143298317280868413802034150785014632340928945541762132662068748598018448259389408651766702651252690744325793902285424480929253121714171533805457639139209089785381877386528568869112767777341835473100581924760287102030424136660007655886188722959679621042563502581081319259281798553438898673028816485816000070861056281861660283024767240559639828802453244179960631501429037475228640339904830575162121179869156298966817210080849287513565652129269689459032774761389464922640469868941147223931391507070731875778135152751476096309663711099725307920185841909087268319788537905513698271460402157873085627454317638541178355103087169975819527564139486641599089845660530113836317613216120091942996365502383509536395370447452903113029529365484465358913319001036895117946717858933091003514745946011673287707551934954408938427450389626075360985793535147243656471451563063055153300201910339035895382803869343456137085118006129116957926002119087742638435265796539446235240045843956592809358811294648487464773596115865459372498628103041026393314388058347598631971152202180366983538937721192771713035385452348460703737373159599915745089771812463615181763228528394608012130583132614941776911663974617269160785437955927273491216600443567368869240906680522630726774649149495357016667378892741823986149216341964422837423599592495613513928700043242332286023061648011712168898652912008323951872047401284393143424046938942760688756677526657944377834230239978057110749445876103810340970374754084859431094950471341189634296433575151166307357324271932509583015778767761356718147027373610404059456295764807066451273480982699863775388102475428968832719142538542749087708884182870021921242991477776024884756846644078046501428761314751130017300038417179917691578431868711628716432902841710324210227515039572440899701784079217614581412484539628295366829706515144021234988644557609871040583704789899380067415607891300790925699846002874889223710544828300398658969270878739028100552628931512017735621162170504837805350647430111093306097441411208354950503943871111216674519336791084778377746750313222872079777743154066016755179611850798647069460557370966676241337260408466390688386966964853113234326013467654226219518503177775217001120192712715278202175698629736384791265146429297271897486198667974640100760179443415453935831405498088218620683323356143567660893140819247549299513329354695881838358713464400895590168352495205865015010981731036997230532068495064753439014664263313514876221183008546015964098265691024457515041945334788534414555090703366711821971525821681343565099541794005340705147809519505855110092298806450590353803356463347032487915440912240330904470774088582312836868242644128863321541381086730228689068085322564196282206662034905168633533491321436521697667538971385433896179641226150843413006867317153931437110354442350339222282272012940016705299130867287281588909126868627337606061376934586485256961003087051325785237789603166470713341333050750054851988017730785428826808764620498909793477381012945563497225601236717964769185527656084487768069410201638600603700243126183861809186399964296901337195798840798624265984676034451960092046342856727016824344659204897617619440754674484053217958349204775820316721926628807438620945154843600570760524219242409943380985138238240437787240451986318744941831091159405476009027782276981254583623933249206814537934449728631961557213153494994940977761321272857977595056518102237979159737346111307768154952411198060591744036619196112730481727944856445329847445522681076505708616204013500613016176446415979977262617901404746393121173226099452445926747616639642056101745774549327314519781360684360170925560704748933145614237662292489755323408311849025820626974139718275913680141885988933967896275163385582000401376852701296718565841946166118546824179370774521286282009992732337534827635658990268945960609283965778914619255045913839534737550029582225076790291049554548854984817942280687956096710734921265262079219725066995629478292781850613319149313720950613173080356896810371434384137838688122621915258373482581248957182096237806280319062131594814256615113639459960299552513834966987631259742085113980630339421304698694542998881441613829102260834222006134912255497360355589657954795613276818939235900466590977147538315833350230349111190523991985901224417887402060567080315147402570282280686725712713555092975454740868555092861196335892398203754132850578707622779969632292910947277550861897058366401323961349411741673209197790969533853001152690279807014520083141081618701000891613319815118573822325874994062417403976699235194573205100976083404913042001467250553743816115931236152526792427178897235126469556099459119283229692936087680396166477905700375234782068531740441907616276639438121342506412646072421804189555457165719456584705203777328595124737783899433555340524167593803203418612857737830699640502699222133170183363196931103132573084547247698387542441243065656563473906029992325416520256080752156086996697554441302849088693763193244502742892308428004202320453977698652731939087398422706113665305546528694975291063106733574242485229323624837447392117325503867420921329134474218922768966773180791883095128805331407790865150071250863257850732579501161385839041824764537195780164396431183433275861980166158547561947213307574816210341048826337871740330181267533597342166195893616171061846541932806071486423743601562669242256124421525718848813819315770766925889334712787431031347384265328519474696868511835655962692253677824816460671657944840365894337055799961885702533400865086498774259542179836468845348616869112610346042482567075304213089948251779792818067064697959525879961107827672972436979976410021261444234766180747499603925153172613082175454085258554251697211018225344081986646135449987711360330412014669898610912155967515665632578619716875154167500707346018415289391536906310799504932122667198842921238813022532105094022246049398775958695416443822433375490388935587557120782486989251127211122729337706612927808501956418780628898947545675761653380635171094545754069720966285433938446512797707565652482151947525920104151342788409654906424018221124587747663670789158679479830373794336127477965747477901286076977508597717240299468087892293712186565934220953616472246884651831655521599112998240623971444642732952169272658205835589564442690411282988546004648999743910326664114807850910585484196902227374566734959586450245766676703073918029281389150843350780551705200526391368632708888725855850719139236961962134412651704965174000266421277907927304044800460520636562627857848221078500915755292766343598772404047301715899427795484940070323841807948945996407461858430950876118471242675735850830096376250636415308661010424953294070755238645050342739883994140911532364785292288364110446620234346544243707480260242247316929778029866725588273051366418938481270030620294475596695072053883031507546771946199542015522321257670108825936556266329103099569944711842799600180532516984931488500840484233976607259826118172069165169626536464963104348884859115491942985957287957082177503052075014515767994525362670453134536719987529871086247119199542608717563232060186160149560643721546836169677547503282246066662433644155873142044428717001175955419168327092734859414605127612089863487198214589804850360829870557819708430700332876595726395568467117043664747763729286174328406412141801640095974316552494537860658190417774569009259837720739406480344631589501289758935975520574761612932091191670651181781563161183745879346566372207530881447611071157781864962866894697678861034940864816333145979590558004403228229847865353473482232557621252897291471595598411740333926607224999761442437419549745694950812643342881812633440057950856935906047819986414548474710519885794498410385265172453023503177085117247397852671466295369015367931541028060713324878215034513999413392644863250940887938262439971214256474537154622273113600325121146712671896746711053867808238456813476812907660449034540637045592108568042902654987045182569296515603418392671793064370052229969141253110687531132399213267882215287940862413759017011036548627847851373002237305543193223438480423660076982360865543459546205239102799589342582399031529722162369624091288817130742803979195752455839347493781262937595062387400792263461737956421307939454549934695153318230744893072300600811581246670956938351008636247877796679623925789706439758434347339845012031689365124934994906010389586175405652416791659142714273174356911235262529618806450425457002089972660366386442689185900734721827127033244247721825346925368157680057010353555425592228849691540044991760808908697585433179113659511056058624462471069550234029009565046176888226810962200039500680972679889591476545016808098430190227614356270575335303949532814630492234601352870945760182188862335778346292919792802943296057571201204764574444710418164792576943602107620220985070274095322736819448197532549770193826677493144587909408173172434858687718702542583699077002280568711122878702812807729047618783980604710694329762032140528093743774180316636780027414272593506994678576649210075670217504203628291273084312643969496854881515486504045388796306878643981190177206952624773693146824313744919701111498103676116977190196773799945036239918348953809218631237437610844743571998143902544076648865026530731212454504541364645498854458874144892209165305408074831916475102205713355779952992455533650835448781718837935321407524627299770555581918193287972889019929686040161905233681244035032794506420871191622806445315569909015806845972882564388765354819762316885298055751344940024048301364356009291777692204475070307651696752894642844057349129364977884428998173661754380385477120324374927526099014557410247419737922197793033497537479711652344917984414892600668870899846553321265181842989851510415089305460475543381262526638368864478701050893684371011346936873545110008521704698694080847238734525568107676586161359860735366237421125099650563758705278931327219776608066721897097475512100673747408237152923051944228038098670730112284500849166526628209935660255361374669013053691934958114512500896153782513938183972686107845086918009736046246096709849748320126120015105535856254991084213989584559958769253923093489374990748843579164923896361691497129964320752955505770697087864016739781636447146154569118663966411031502005969042243270273519800160277872506661618364130603307774230001903400894289714383853495586849575083645435618652696119349483491594084662807030716093396186392625751464020046417665102179676541701564068796445356030031893801416727866517032606999299354051059784679342556307972892998508415590901847334724054762215301156748544424149428976364362231311716609230382315700966006153458374749428805226800812607743849234450891795304687278982273650426081463874309300616434893867918435362178385139331013676892115919350947942907350070143754561535349157742130865040009243013047000589276688343715404124434515951629051031195775071183786946405440435897876132949386194211930910407420116368437554506791250585796383742626979847314350346676499756476580306591479102619014342297902315857940903339846549408792963328589309864737042061819311785560604154521015150547949920661042055191646397757236117993391020836720897556424443850113934472850833201765729991007691067003488417227347034789543818967883866479313617319681459258531325603196967856588478799218301702426603172141555724205258679219467354677480033823125664363469564452623977947427045581864072995537352777965668435736212592461450823370467471401473419311687677072408980014256577394372969699234818297916246687708513714486036653928000384765710675029727922431059816553551014806800070381453436662256579078424111614615367563279058300835401518458551545303311358761916593134368593094971575728901814328100040607024239762514200930296698571728878432977718811153147692647008643618873830360718641977307482106008983450129788956979429642436652178247839759949086397199129081780703658318834168952656615217598059104838084759911938124746210902028439972558738102353669001218345996204886905656168977708966357040504701155410971139961946068498499452887970134810080107728668719011011310695206159115300778324040802617630921478294324904613480011100801662124934269788416269156870259556774128712697421199971799499693971874237388138050227022077960063863902019342794310342650050701772699815440421347116459369093201110614628947442077625498031462866631609729223918361545506278366940956307711357297820964591816187179241824340143137205216096550860217994709363173150002497395833487209613704448172812064647535830155173611234372549226773191422319035431608453014703280324563439887793382090885611946028194864048309542085045964862598497580785922877668715214160297946113783618810130975011840283063934366046070832907943086635055242021134377255431965998918128742366922406315702360536939934316589151415480052873679497983231770477685059166464331800951680409135721917952437195656286904608413441446515748541623272617303133294020240725682680911202087355518827489267841681424969218680836542236903431207390312964236921997844277533130685752504126992392907254903538659615149610345195196230288895412456946080765301284583879670859474117511465767810571130032312465191120732730254900790414506614902037951751448837734008801975161743822294725128831776742525049911212016980990477160151975491025783079036994854213329188615328895767648967838202118602181524838040321866419229256478632342976886609598224228694021682345199747190404327638755573760269314121758582407743931660074869094235158875299129312169975234987514915138590143655546255281294290469723651116262110974641902515418129724243646665469469940014282467278380723108112375130718263982865722164549596560814954293831394654161897956373311432981218021814154368080191506114113310595845682498477490497775003400284093391049173789129068788388340321401220528207933252309061305837665697467649615156954064440253719216759474333736331539916072071783202947624383864763449361917707071688225618215935801675595798170440515686641136296064224146895540318740652635216427585301742778323532320190972336606384776232981338559368292402646559256571251631953032869418385855396787004998618345691994659364744793087607389676607436455997254148488899504203546095620910340888368339255328721860504377496347645544016926368841122541002634294284483963897893495506585182196655517929693809919806891854190627648946631318210591230684409083151231696465180489891121269922864381503031872153938739258084535692270148767108702765720983395059722726266824590555569653641585188067152042847320146501358157622823835518149907464901853408593155175101222512792895871283334271360876454923653287796824095368635436095428966169983198356799981038313626162962908513649585533250566606899242055016139527562300249358928530940935652384129040094447548917127621412180987149270474347353082242591458971736653569698483485725664326607202378615942158576708103615494908291411592292017407601868017762181119980952749586989014560286628108550646892910863343941999721792721708170494355120166347339713609188190364255130119167068483206104566950319586519787324779997818981295980581624248751097016768388586868335854120735538130793896790418185755036012905878221294869924349037516655123342208122408199599808407655442010485852345718310948610641487447095254376868417978519970206670465693020991322358697019547990120275048283528039198533391562812260545081254570846208741963007047726246427689745439733192795380962915852926252904383996779499455088572883802996279827679100511226309468795283240227896698630792560157152159202278346628395397094698445526574890254047192184598300706784567200534454974989366127486889693334102739664654542890325218056695799392962903145593066614284826047520114301264211119350044665220828187976617745006420318864336425555263856597273712731807154889405546541613925648924948758163976039227591510111650444198222743618729663921045408002388941520780980176971605911894026509519940726218932652763098194353952042725145205747591893402652425379627304210441099143598779711442479438730438674693793807892203726276194926599274247873768335122555451150198903190216956075999336608590782382530566399791195311255084648672710082121796028888533402652328226337487355740639398275442357259739469940588173945947159779704120275109107235236151249801000963689406136554738788458034316999025624719809485302566550375525452889407909572745672199448997707144268611500541824474692352603237754259619909782527093524285958608966923601030749053162313192792957345138509408972328014594372276112852553891379697885727712952108060738120332636945265558508034051985903664807834186137112573440897932501954624798572724723134522797699636369415945858708015770595624563777824044073558283283273083444967327017898353971049415159388421798589078349967987032758517028055786006788803734794971421335158447789725879478198876893647972306491513475446473364766570360952798327297508397571433996060781942650137221419328130834635044241933703040686781060815184947343050892799141252674208159416827236039168116652962617650006303625814756879546564580740000690876738872528969130099432564863340546047326796298256835952111268060215161790689143190267030924986821727664936184386230927751777491199907742858761239187663317575129296901044851117352542836945589022686340572420886325437775022283408261403335861288890021937803442856035887101890409133431123878319027341380654530590086846307288241543751166518581980199923574304540589620205796121553911969411584356504597726846809751959897671951402249508544568168622666947455860813059992819177220023129252760620625806265815501470376367988104480391772367319224742223842640155129435965262273561521416492976268019915926652847338744420342719927035249902556410152255763885768352806632397247152677404949614470612081151201950882703165833380650751349623056766838287096476374100782711798186531714413248330795926264151068828688839244899168063217365109521582636814150229195694642219464091903095534147243403288212519571253806932561660422768063911161198994534229347642039156490061499887049937179060369736127226342886494227667637894402114164372953890757745409741775732686837794496347317508095477110451612996580042745873055817120932032528817470799834204924237953950988485172670707237806203691494179120008671662033078864177187383865785070202572301266719390826515103314804999891983275521157949150308500500301529224680221146144953424925206095686494856719255818266539386575830042155401987040898576898937139588218574340792606224791073729511639211402015019836080352455106621185654577366712446631103114102955105458228965727771031667990315015346412487770814272043610110186277185180896445071524138461002041444784702187790125351331486178636181721894059595310515817593152766553838983261246527247039835299111468601814231875579525378297946216444553248598657027445725774045156705902945851142074950566412610157232448984812009972002484568446916455043229646071746555640322839681141561607692596269729462803454285587234775319828071569393523760221233945715345839122079707423339376598025874356826508341960001898641951575062499808567420580701178130514469729118903316981968026996286452194945671469375872723225925150183854031037627246035539895449300005834797472555845071099490487698455492568576753640838014825864804672739930709570146268827468050251504405556578517242079191035101348687243762130938840235207773517153518708933320858154508904524684876563598032837972120172523742064069584588025233842535594493483066461277243092506146118341009893476628389231026532126732573380617116212277390400337880689037683930238265376948044951003569816119619457690453331756153576852399880147976730017754389213099444138434135149216391620728223682352511974320578381970063217971606694170024590247817675034677771039944026934896473416174234278955668653064440990071245383763974177213486166350013122299603479987041173299849021159270938578569079352139735990398187512411788541507168156614825552857292322586688250924085638272305357602264230212677610747082002997358973123197088900869038310766716529125631017870293699520106302311640450746138376560095954731640974358972227279006739471316212400075684755189274205467232627869917668291790226174534239382110559049917613746645879625120462235104683114698398742059441966496926701114635271045347269745552233757515494773488814816998268471131235277708729168072915211239370705369900710404777041199878043930697554676847224940866381374333119623130578633739002160180722930973334449287512088821077144469728078640644122683265706101273183033856211872591375299595023220743111347577575896779357963766186763022777065894001373153470276832484839351280906046138656575239907607477484305881651792764707227423490907626984315017740072506511272779474638731060532656708491396228440857261896051895308512994700455383922578201850152878961544940747534399639995205846072859324720549003408330697722506310632070704588532327933204470320596773457398513935750677124176709197798265559862595698676265203990605315409435933052985225623143271018316473769165692588286504599219140632911059208408768433076520887436206617576396595686666252829166008848014084816646291596078533883870275691307666680001973702328590373612774049929341487434540073486045134808122971275830272215509059729088911677754554194006781629404010981868958649493885055073366513581291057607045733495934921959446706907584212809059664996559284833860073822061206169396078555516053441974372914075696723527475763276134067660450388755843286530342208763991430559410156061437648915828877012624939801979765805697270601779886658488028026790946648518409551242951296547245316798968554229730201631503291944702544273164173477499266920047859497175440435624155816539161957857622178845365067585081626761334309991999259760694997708232227950023569614529341487738926766397034797498072712263547426790870012586298699371839370187304901123245683897680257447836311514293855163901417509831016153201510467447469784413809859211530833106793891258260207243677692010082789463956677518512148906060176321531288582826537770807361623502550897122425667764264676713522337449096144762647232507716942230735451783091302167328548556825904529854132636181290727675813534915218370454577766200608624950789681880221236065361738247867991595876626646395204522937375687639495348597334750052561911805945046828430418132495666096040270209283228495598596548290306913729385788247656332229550277344564293384594124780561507002909039953761707876868139734927061903429032459414818183197330503751512275457228168904430073890538504619524665315521739396580945839572365338344634199114889805369955761393596233250099962574139399809731306708677999038861852321329519984994683241001418733203209002263516146516363172807358634715389887487904335708329457443593211128558596892969488131471540557640172058776690019231692447227719145379765217833966290746828143570079404646356083102930986964207389222507195112573767621308721180602032244986568974767493765852150144816243813998061381744061866065031995304546415767822455277887891441241195493016484374428888909946052742014537618739612295036121294823213900356394798801498047913012968094716620152526257758460563519292967649899492568184342595690343632961034640871495735343778558502197690492215357681973122703633004152380594194311340910982491545755218036692510059095220815605172914900479079172803236676910583398714042511326285888266675076671949191155564752625659823060718184961998068162158889063872712218330189380973858466689497927072689414822846021409940407221074745039386350126863359612924060572363359841983880786285984288506855568721028359250362933899509127914260981792268778505159845667683864696926271932771065689120357900807735432032694827721247591786513842280081353531098264479571783263960139843504999137141242934747542705621731487459699051557653768688561216951251845158550395468297839674794801357472317115545800071654473091905624253148919379077376081933378927045282183362688518413013061487131408528319816370694949451155947334262672570333983254564457983563739626602700563255979382847211372517832583196149677823336341120096134566800256591615255324002926426417783674307434362707931179108903133347379746908352932939602104737314498535007354812463334641232672890344806268561095774588652253834263809590438843519595652855402009929172459317628690954355668503081590075211758540189344800403557330861621180938873365538111706109152616141235982357112528432852705127308938059553082112235936906638319523332370092310875887187115640480615101933872550403335536510838190612485663724548718417132793226836098721742855173992707034301971624057198110853765011071234138824706744243215741537228049262938989532699352293621928692833514397814481900764179030253261253163369182175267642884495178259098439209139277662442638439923800777016233254975884795052905020105111658740915466239494697222147327005690484717566079303095521729968235809389020728110601841623758223852015839425894941244422951895830972998836552481451968301321785633462341256370041824820607588750926815015338375837270522358589005064246393690955924260204292411465066027502354842614353815839503904525734242764890998133127039786761830351369813744210650630842759825259418382901424259382608478990918583328103130445809890188896200211303757319673054672448365683082166156531476509538767174183309284268103900347376731587625673161860581050600687522897862789638415732646424590352312339737370646440802953811055065041179751287402756265538886784685960040048964273504330657992590933380513358928204425437608019254579289073162633740725319873593218873034891988660505192205338823033184654779199407584017612097928903508036775693661355489275707625205197286025371538519866586389619110687273405899121982286791951528613083778014760014994949395858559619641359303348052289351221179211295111175627101277474796644155497276486327881356137680400177504533360250959263389201429161507731342427725660328456371778355031630178194728024283091434713105067240843029141984760244712369378289854335629073257801074449315691857363583483317396937201876269008034889962307718212882286937625698279931143526190851672974389605430076706263171532696159056246935291769730182296009800397515837810595515341222598519115093832276116870883542565734755911882213715202525978143682579133861380589085069289015497299485626476883707412373870606689788316128934231396238427310361413305587617631507956013860795439350101962787562225289959067896993310355644170289292107816314055413510719112472090482174078733486081454948312632031512431781704879349689099965474418731854167038361573161625597039701014642251091920474138790801446501117132472192761934824455546343646323400011686424643308852657868911550836069019178424031139583607239428547562837702220285957654171811119193119523425077036126403548745288656364765136711963142577646742339859367370217944275880694165472210671746720026088683393629104361172137890056106625613215007915310644527331890242908997268577926922149605485433073188024398163186221853000753790060650427278064715812736886396970647103393433996474996152025167062799698994449691053774411666115741796480737028096355054602009731161585328982470400831139057299402297877478959192462170661691751552273497536929966296061452342730790267211981373513599965893498155944449017151986591483056931311565074829487980595452547242392944068615705593481246817613451238579337971113972645211263842291993415980857178729786416663328706454503514014925190686704229752847432642983710107086990672533764007881166731833916312653709697553097322886275119114069744731340124085834057831619734117557195575154564416283253467842112122914273878636062199734886666478150798307317914720785056418295755840844192052360678715050207622935584116782375639216633355812108157441401091946311228186008825939892708814388662543769164650025421036727020898950364678524920349298681701482609709573625489407916712684666328946821145407201829586926448741236049525548563947193223923329615746701910178624957878113745394840095889823005256145210960712048214342397428729521802188412343137673284650455805933078561301512729561904857036575104959838135400058884594174931370799123819404522513104691656056653716546037587078225964086946269343696044406987364788212563142929809269436872001383778464859783479251797073883001683728086637217693432679427359674949066179176945376743811452762747279274592536056674199072394740643610529167068587111670151610892592273431437273884371185447514356593022646445015744892155704239912382591865878522866769822068088760657330677786257073359659937331936936076902256438550045793461446965227680580235432267492682814870662774679776682501120640238123874204618249331547978127995735977028891912268584357248936559085298600118398137874735235672873629658749839479448223636034864045017857409345234157494840744004313693529811346656322191596702655133261695312580793055333565530028598499129300755213084401138177521456166734522543154038826840179427437018496768247115479425781277565045566594224811759855099661603098842003674157081448930675779131999452199610315527036125000770570228285751007020711039382308019422025194072166947395803239359795260698513464044839220571819424164810118711436697474747954297045900361557950222101122800501837499513288900408928121764049717871880257618119671978256705276516888421477208657196676550726109732262339061245808087677003202490452574569320172104235056160539701090071546269747459591461050893025368123211913915192114625912256510571024466955496506535002251477408890265017873954277717978797250992449078483683910770336472196429649723403587093533808291676748842644626964522992566154351702279720214071589550833586920692505662073374413784037635831747686256937978824351554780820798772923546227406750101492188004596688984853052047919414585217385836455152300752399424169767803876248463233440188775644382195983299289999921425213748654200725337268808396554527109536189298909510307891124654536494570852907868337598507664211962619397875684920197714325239305756492850658185944401247690863754503987940397326522583830170332689482537099672844446567757758800207032997072891020092843751730864248048381540203187839303327516147481725169604532866388721810030924404181030103770356055249199408763451772603099154977642018557978389926136485453642667631112176433972156253363118767615181309122379353982481916363725381646318080624197183442576609394777960542265814940263553615729871034646068842921927408791524944788678552359640682632889800386231513661758944729459873487174303259225957977812530335342868904254984063140051706790235539799164234603522109231604602033817303706623604247950796577443182736140075333697044700541705721414576008332389173624322838112050322904694513912343789005073267111508083346984200529588284234981352768183893014577008662071664495072307655886154780171884142981224010594400631879033112313952113680607518535398883104411511510815905749688313392730232562088069743670026262146772064670309434776346257973389588371560037557880225199215124279382660826462668842553653275258120985710255659841329685593244938368509655568010563281184212053899199820222375466457370009738783756067441879549461466187250518253382620912239159189159985895418650175209565323411775834478989386984591564377902797332200977710522450780142953349766683296414667303899193665487048242544179022814133688019114034265589961782658771305612930444222161240628112074873184009303518414264691333950754398184911561982227942684939296176188783822381215137614480789044229756370621915970256530587191676297023494097266072220439471870252574357703099822209978665125208620023719078464263093286823613992737456081316216073014388615546042188574854317365649067500926233912788586569847415693400116303517112117184971948806873789405834637971807284163972254155243847561471332418149501997005451494704882813921441843648003929122245025348220099048493210220702764726104156556888937923386840453281206561366282500147103127654174922515314150751687152539801825099743361075431600053030522440655988284520667431993056196966963913270838839315132318768475855902430345480335433552198650998676519136762603933083357947114985676735978134706261816333546361252760323910531896066903784789450378446294616091471560061209517570946991725921421806034930910233237849317720684650651398885940798417270676110614346155035142247053014972277781438274937375354899151831624140671173924021696252997878521056786557236342564243166869738622042674662584045817783275541800577807457240415593703338456950810030232745351637872303058349024315697105080149596594550979488257497672796262973458770452238123660781320830740597005732668944193166669074450304732741460129035676217993361954087746762015383942629511627271884437188629782983394416789985330999912495574771764926309403509627123362109893473325649104417104241204467675430434543755862310393535967738555103449569194092691127477574796211541592133354055219550053129026644296545307502797555266989201454901165471389182514095096358097525773551393954330848693474949460717336854364531653714390440004750168145229558967058015893108491411795719422048008867504159934117229763590517886813609784215297155138963596672387193494935593628097013484397619239056548146107154245897081157500304474012282298091713094018429051560549651437266150972572011893581504009571293968400951371496728874415868377912762455245265650817648197749982837627334860665393433258153333030559330873815273153041605192102284154944079128285213877903101703799894349902902725093004762471497634157347650541325177815088531776188158442885019262250658746612098281827551534030342939547162449503730264451087405467920007945414578376073884737483409756053409625458316033111593516362298084634704146989775374761064902206689264855369986983554906633238795966405056526159045308729095162542620662620737086475922508681040587335107764916713187821303671651782411508219914449177974990074189405310383096780108938044230029704691125260332373924818881108747864924780012605998364903148150866856360684756656589415553713255749121613028157519172000742137047151154459051311379194014550655210738407961735417870156036236464389732472359848700543867267971881760052389816274687916257858355147208264450674458339066142529969035164348891130706037209285370336750691515953947534855270567971809070028824842369098119112881226564698297867179367084980047778569109733245147021757269473233952609976353948543836763208075133331031979565038650808044527245220978922158248811972582186802888231529448267186264990156590635362552761266793607756679545573353658871457062144206591590345776661706533902702323026118606648751785533889219014134120015547693110960271075568592629520666832465224077553303097441495156078281195292389790004775950753764013154695146434334280226166736030693533936770817497716938920702543012510064058973776735280064964906205769328955851113498805289424858800272098812169060945271816917374742871056599825963874547483951539791118176702702800168850072254681181472762394033606935680359990726376107127759204906702439748929405073669672491964889222565332687469494272463687871190979977231947871953752343232519318910527530075261014802309373855443679497181665132054797587494237458025227550408874944771748688842789510361984917262786093352908638058971107509436564502665441280738562227676531247341023215357482960008053601486306005349592718941736709899104067511661434471199049881480677340991633559631133806667591752218958846933265258734212363839661131682922108287660525683077050010515705112442379346509043731403708742036193352262522222180968968643873549788210588459794415918402163141628450302153053017616416521664236563553961291844474649664745115864262233567412135264827868719023577942442305672701881952413843016716638860714609940102972897404727512307589482258084251995490909917646782425912396587197132191386175239778809583431718372067850434109560893598136774801164622092268983995325074375126693227541795647951486685662593313830264098303079288336205047739438827079561889519037558269790637090019914837756798562018280942613041911140707727625538839245029823520820980801009398355316363045188325801119120714364371197777777039729856279298338744709360920458660424615862342327216689460438212945841040936716171088010216242757123917943961782146453543819667762984817505176910394903655090959256037094613737412596456335436248637675908273243466697058466392196218263994382936875443994174273898346709329722251948542384232829809529616170901499668899226226888871708319339991040869490513367635686992601274714672679244217247042994100588691764545241639934984589464268878909416996848254869711691100935528116074353203386278548462901046840124885130510237858381163132209945355073578298879054834402934382175203631286583820453345137393389804999120626116175784683014368494712198942587549470770077827374207679369957970800531944645135460475689811136428343533695937124014413237899848529578906948964499027351066253945517228027100149604652592076804691446118484845019636541123467825484825228155255988728972231322070872971398636622468122956036810757713362699808673385429424815217683435950552066719843250766996862565917182683562671878350907202338049509792620367638294523935985153215293134065425987185109676481868817248614537594104152626816774699603238699223918334051412365845712140335879731690713930669360497071695397825875030882952354845585769960265823858600900836289022020795870667653344419586136167673774514349425111350600276950333313090111029587288785727542533684844772115675269949850430321049979099909254280246205670841649184254387297626153304789895035132407275059295177242067096274738231639462463820850635246308706268332998867512462907564850208405038188939576065856695497393664536978495715648972008048362953229185318496968607346614199216796666361418052427636046173312204838280439728236093268159485863042928642860026890135341928871662018698534373425491892241482518965173913635400201482456099817023512362519332435863388600820841616808160093905563058966547932974298149386050761514125348638594952236745407019909777147331331993192489925142173635455531450960489433605749264494287952026780050675645691428744235894556452092479780201443258951620664493076730424045779339387348399916991548337510777472156552040284294067625325383433437059955738344254027525040474750494365663973628665329792017059219326658646288928487920510690653565900601265833760329533942746744637281245152542839623827861712952836619704872714113092047722454707992211370973796873618474726950286662546327005496093770690356231981416309327812952371900868310834705540808643802943546465699401639546883674385027156614050082326355164321980770716002419984452190139895951250508141196366937097721410230953141936448726771908561501583345138101852313812746503247068953268577057933990153408797730559421231895272683134612395350401551100949137020191722348885919668856393397399680349390606494677942915069663270978878767181270203767031396115000662988919526958557262082555724496174175256303034878869535334691050481091997438931484646441206228197609851006343182879434928833433372870508432749052319558697122693315194078832316649647259079653120038197904293269408502626973059114029528963425238733678426187152764142743805620829400390793085976500004475404209926229271515253521681783894504397668306840584129581277000343659319677718885727869514640009404892925980001759619111772758069209927031191284446940985836321656106842216720093419324136186954744787440894034341884267896691375526547176630049875030611871698841126727566643356856228345879909770730118885885190807024206781696483064037198400216017498969377665170055584358230237585169215426492938030164125501908384058054901233481703744650965960177893682463506538252740420313091780966752732902103603246886284407653197375191247316782976172139302316591779409064503095888646243440402205423147860615402743366114174767444456422312861841905335272246262117528906937448424029580195223129251055102638086652389149728258334761262455212629096099865484071427021457809609501818543655628523357720353852022325386366493530555609680232468319486813065435867120520292847007871763323861225820528976574165309585298247143416122476216254112202926960045650532801798627274412775128666618247713960410168634306619252510555257341676826729473881792307985137116456975647755531401888494565331996426338355803166657744686077687345774650291641563970495224580567038447185184712753529178623629414059493973293692899338287825849623058035646673583097437339960408151288012027438390770313060920664350454684406528137400231437496801555046806209546991851210778554313387283558833187620262392167734048024233710433469549987953998221996826271497355443191951008455288112237873993522349915462076457480105825592500992140443177084808024268334323273776776674460334463028976627563199558270909407436985888922456905959911626671584626194645947928327183136761166760185616269923913428329317333125288763577233532493386887476839489030759177509374491150479187323164096528352811087466891769029127451902968116631605910491366823119015958473918589204688386665257912633133477704372572874645338094238733233375759642328397396293494246786928504496579291529146869730290973175826989037526438396920882929278846710115982569210017123155300368191763771303398081412418907562531700763914297562522729926278830467044475833715059050216460934345549198515881559317916075557647936389148831998100379493918273576527762851676400647776744931524587682622299105080047832585242856639156951727708678106591342889512672509789758326891086017484346894404012557524355748341090922733014604990834273619871742791825488230216084200891351526822914608140980934771519195985981440538322889744261873050865156861428263105878524348820328433778409396049876510172901181403652347901400997412097819246572569550192980705542647967377831996781577852939753154157545649704180637968164075910720416233287450733718643331059354758188997037353746945389799795690846607320953752402148776743835618814774135164846355768203563650899969925000851965193843514690844932656749738447267385533125736418783298008482829397053099958564236010556639986714125733175981032248032270737301553748938108559452135876413195341727635306431064010519640226115382986851106598603968754938642182794840433204945503385912180352939876257316838345100014806374916072210446536227895712199678544523419892677198825054138189173227544556622429103879080914688425681424339655804693963519204254073950704828246400540748250872828866950501097813607266454224666542154589833449664653627774649612093865800834805018131180325689459952580907817453725244358838680453107112332107502516595350023149316442176632577954224890727782367261796450106656861726968432504492680304147729207157621334949891779549089071672410345068260613043839213695173976005278311292141521027555215592927531180026980150213320142819221027318240224223636888121170479513555093059744381214228379317417490047148995374470479498536994494356274726642519336636484228604706652971893368813354954492007083543596718690105622322841841244831809393959307912183794009704410501923874067279260835109488094540009968982216910252003463385762523788116853388138603720365949602188722783488747262818697959934223324657935778649381611387349059067720028786218015044499916798322116102427085559127667177022577739714493188418799629944184399330532456923093971495780471261609802938153213527797416641757616240421038330539285237235193655063742498065487198267693175161641387729888581461428841504421140133369427711831141225538412000426202057891357322078838660102768038255331760631108621873788718631833533755932136554512949012590477415729356322828285198882891127299949457319305348626881951886090942206573854484906752782772414674418240104136164148624696157389670638345471961566323073376542223519186384143223682039294450717558970270345344180611254605899088758860344433577206210163175341817308112072284536203958911310187745944066274983005623499025283082938407421182468065857295126665622862615964002162471894195592651851578261291511471625033489550323511946087568105254116217198252290786798906191128050542908193893720449856014464319146968385498314268367975829424622287033272863727421123733149986634594909560716414364330118127877654185776761427473724803494828652980339263881452661752950422881314485268651883922145781851132369977196831378957294338301411626923023281665191981687110924889698377548171837830878885179856890654300557770468976890677969108792313295906088477565566716166307757579355837044333931148962774899304741145826045544188194016767360888353652521924704267157171221264543886837043072154608182669889652127969486032065380873910090992773671825271148066059341938574581696218091400314426591184874358003175113718973526623965526320629035568715175013031254577161213425425687679622364622233562777247908710502506765769526796858349710273978319369189653429243297450273607991631122857512899531502611706338255171336372758622489506329318944027592620696179360830339380051252304566168927761392610042409410591118343088949040686728047044765738774958987907222848394087447185680691221521432718160579719406095303189872981199873900748147785758754984613828253732906002802616929064386674296202933280014950228324237812410422356060433125918034454600584571927691781547804585862153420418112346281603036981838196779417935518179460564753721581324788967926153294139268826857878997806265067802252936019007037330450619336935857242672704466115303848049336370955922440493336412952623840081081584936199777669309343667082629599265464949708811383788797952620210189032742490140694249328801907546026389682864844019830083529558685036873810122708037058349235848638118707929354318769668569615344629079891247258112286970332351347291845647746497580516793425900134616863878709096929787847205615432142134126290168703375332824207272390049201273138538404878450033716978479823282042371389681330389772599050089784766028181795071442550221649803402010449792601780277278113615020129592882108545430913655010626512182509102531152553854990754260145663132150169556621859060704024406143086809447098815171638288001014028734096588136226682496242129947770040305678307218163634800824670190251514550454686512516780276158407732455164646590572075673720219466795658368701448484534338256488462215319204907409332426961477625157405945961217935368453879699990687650252389100388180908891400887157666898138306638838883167596221536800626958952951269805488300099108578177348574768443783828575506080669543882645907355857307595804409526788607281811784432684617640838229882104025225957973266203146526399751206474761784865991031498087861809919879000895956983543083764073876914015274404541364394281912149018729207651647914793687535601980624248567401588260972839787197923787326265479611595392672037323924342898854961102081994762032601424246663470461172010612107034606990977569261196128538285754414024762140092092874358543430928043461112813922134319538117237391084643243136913312802117244183639696925987679903127507070414936796618148065690203739494638238972250670095236447183550511554345801928940979840867583566948116958403791487806053259059086128988319497596393467309861912545927241538881055774947196130931924883857013141403244814084196839088928525584262007494122211545289650771117783689593733740548002474961776364655880482836136812511416791344758416831237911959331425243189807959051979793417894086615066363944677883186685557923835949120951820324281440398989908361522105437374594967410827087340932901872765352029353786217205955868706239111115835794523191859618361285096259813997990005832823741920400863552180383986830018779486652652731770461732460797459821345507787819924672534418879606850597951562980686865730679644912482938943195125613569936837893706360505098167190761356036951526067861975367631296610429906826092357410911358889170917674335178659548332418332570649780898500214740603683830832491108360464441577640666784683472497772548434004550649737431236078186021015373810457903720102426482977487101164361791159144585623137225937865092202115501085769555613422905472983707360965789769163390787733390100530259539895353460012910059911822952836534139641859254512213203410576285627990447933925001393936883817663785780458782623789867950435832164471224288080224238335115085646307175628817025944228312173977420866136247655201626566728447866692540304160905966572485150622160764613260824091373292677086828963015507737106315205771631156059355783635389534255542039379749796862552292189176871481546740611741564957450108607315686090796133147700250177096131225329742057260691407641006888987046012423173852836959512996217148871838778620998715991440064326961854204600171216761350257140982972818242083241743852004989928188278204103122161722601344838331493314978871920622385350085500902980055915974824035249250668657718931401685427310615957388302861053130975905827786615873420399662068307933278930165784473203617841148595142756196508241053012741789918042977638226028632333634813612963867952770998295653763070001459881650061656732891055694920126914904980001156014804580174949683097653837497126922095265437788511848094837923782866823609952428738363303346283284585019289477533118180227723707708756367820263397082279451603944530284744461731588343175788084658337964293935027783552658836497839508428335505817268174969818714311048236295989767627401840904224725142422528009591413598229485678352334983960344826764155189765255902508083308642063502735326629501427001177035953356947164970832272495169238527466470248976461444020817632430726488162335032187019925415641548004176622309352358109692207160224299634996811196667538433540743224697276378733576012200540108829640429482910835552633819288172308882098291794738744476377058117178447609236168442692210815813737815633439780084384913521843370418503487859045737794302819517071372882834386243917646181234784980167247631425331193469380108852779973349075729635758339207452577402680510001213785948356823750286897201376718958464688915057189683298913470682120977506003383026755048654916797193715717171917126723178453055545838635217631430258497837983004149133450882631326730491247082460807187353872921760245112142310230133816017897286854453636249959657295134521743933594723989945031811278467695801680052123348906629501993914129324346268195234164287467234307358220957791032506583769968294177816383032711517508669838272583210547860254589639118456297177932856680783448529712311514463278775862806386437651475306008585362434274509659423397488437230695343002170950285266011227703735415802997612053183071317542656699217930301786966579450781516006011186539116908847893857004529281254693199109086266446335760925087949463034976279490438318450915362893754397675093776737534004486646234756860229031353828212660027298901068771620237685144922247866866342331562662217137695413849771769700445046735484522051518800829906708908204263279360503154961766327796260730865034659023349510505828276815302851040551069481986216973811128350746636264252766437460544389204999711351853004107087235497802266297313776286290084614561835492614472177183518739213023745513661521971238408073492258382151142043317075894299023915697966589621551635519767787837283235106470905561599353740952880219994179609345960440478416838128854863827861385951010592646719424801909118320833695794046537712737383183040057048371542586164163598552941669858179028234960785926650956840867430927501335383101868108133581563571263889195054331472694569679712307434632267009483464638289419294147202723783303853095902548876166150407344403539351860778885461491132325549048631639460402832032302320750946095445473118188471210433098234275451908663980510680398624582451370641922425326233436087226580410637063703576705152921390271512734724927970077458134416179628897583443362095714060034737804758295461470862286712588993183092047142524584817068167880602827681279752283977977274188423838826838854098829657574976493207780025484703769840785778919542167596552516344773759909408837953809340188325091225663043198127571762005433606983092027561018611489924088690547300972319092737095927766824990234474718622494397759696434348334311121173396632523675107343518240853228321925466016076565323212223729395741824245590463327661478904199591699323232856557903745622931398621567626418149188045394212693368135672915428882543418685777930415879194243688745114988290626505672977567189548546526165253975125726942263871949177108060667406797109583857438744577330593576916555498795533070059112983240523364518469424447662384449859615885151250028628357723472467141916095756466673380974323568935977628556927624265517890508033418152141275717351946537754314064422278250946675565015059749014625116378750397249755806140681901677227160070737115113354538419879766555201232914613992478169273610496325572298606059907559098876641686924671436200138067566420202569499302303687304444168430073301765472234804240227649812641261464806717760090420948908807205966960471333363094849710305423337242480953955469697370124248930783642519440803350071604724702864294478863458190796641404390328894363271726407931406345212185736254810321072698488081366949015250751738704781403233952319683052367484057432382386457119675411117086252903724751132989108618055769064389283223594713091464385821493028065641457313388531969546432052166655532656010285427166985593207737369170110210200045963163406291115767524680849726917400310414809743139742025307775976736360375230395767931017999129414573999371334132182298053151073776286755537158481183457318814110579595133824057166722010169466736741390608361898616826254071253283389819452863330486406842050429205148801639670362265506768131546418438716191464459942910729358306913714958193192870401718727900351448727760694264615586272055111360627890007514855935127946095286842738498446967673367788458833474202361220632160610501694955406251111953188884567217764144436140710043688393695549149430210208493760276634492069156908053335273977606013987928440642365066600292188212633217703232777875705811991470169642278128102963358514570976204235823829685509249951528800296924661601654606199670721927526766112629383382465232790733366551768286762438573116706031841887984273146618269061454896687663125433531642471698783506885736545731961031848598241945395010465507698804871451610035102924125814435265411266988353790434083096946828531865627853045694817581492047554093911137784911857120901567574202883201637530507897970269224249593414505433109486209847942135097892499110718908242024883727414812407441201587864364123812077301121905927982833795228349903306354562091018493962031656593971800894742840027433698156851657593156222062565464768310450383731580765202641717283996367175703567836947763586736001084320759240680230080486671677227104345422088903182638236788135488525473909018773472708175167488678573456693901526391921449285186591783121610628358762279026357002673626279499266129368832050274738453876976238883408627410892801053120244497518650323106001115668868808917271835649859404883852505395804600571846497217187148615198466625004601998660753196848562628348692097324163015878902782214406638314171784750018794136229246542464033401624727912276688099481931264668114378580850248507350574595929594012465584589414519601701311532642562912705232080333401248127014635758898651155820806071121105593339190643028655676516373375722202483563929607981872813650700274189686448801400603560361939624000893218379279494644326349000292458053316470503269690230614859104786911503827041917157156551033535299379628195292194762422050956722613391988634467247904352661574279764733143222716453439887161449263828808668488687694222096061184340179783507249892505104027598803072886411802129299032284306571542100509487905459872395600463305859809694930157565272703863163274634568720760837543193295768797169489663047693154834931478299055677995323123562168988749761184655988380833192626050166008215205088487220457646424335556319144387515766489354024423058153742151045680095391894741504390002386923937278561471533458529477171660549893379381698425215061319523029158052511841961922944108866536023013047308279200884445167824432646193221094979171444157218267690857953226643502719211063199124488452322040592712440254244100281666065505506810385074018628067011436884667361516518459880393803868364955278234029883843435251158373539893813065660378145271480252785693708328017829316091196733517825829381806875961060078527905039120540279478467761684472450163506241984472867388891952256274556742241314091494979252135009108256591333733727659630488938636323281146326287333396941434409234359867328919230776123604287615887747347789815720296714378310786846844682489842601213777641958437351440367123980103193866722227017507459925796294426921983478039076264413493453809977118615734302508193236111001006283907279022180414315572074024544152288917580219698767534327805146777200330674608843249367206957688017706800431880210964585235481599137844008671584339313149948202215295184180108672909640356565821025228621340080269086600663662405755530287583381907861890426026453491920636295751585327774109558197788669377955156392106363341253247996963415870992893324161873643716029864522387802658774236916376915207721726648574837402742328692482452966504236610639084251607499562557964255071202807177213051508045448307707723752221405321543050438268764709267433909823657685436912587523038620158870904675967537199471597863741059270164863826405795188169214724422154158933583757956352358402484462983381382370265469987063781818300350625544579468446248904671289151196833427182966578972847131087446816126454476713751066390856169046901477757121077302439821973752632433597898747096035928621453492571303941389229482356967720473514976010028224560156625630191338644768578349797572353781751338421124691993820813039490787679667039608142448926730167943253679081164943500985682682687132556053584769827096132867686974765932211983973327126770550655133031430637943254209064689413429383570412356014448340862756983737317495074899027570645633805622218775861441141257848168745138563296559057936022672149477891680710050184030896819775115354216762310215505862067292785925122859185212031793057786613392669660228644003175417971866118388420372317780588206882070482391746583574892548863053280493761724891389250697954032329882117604506162072744877228362141747572233484745586487107771027041086354423731810826822488059277683065439691598744007439026767745095019799400383285250452656118837024107962787655384053713001478632828871720495889901419762062635638145756476597333500806950360889632823273445925582792699875925127884389249153801062655919903294369338503569656591486067753342976108229839262829914026926542816000565827587807144433734350864018625597040982895453455640999800754366404062415220480258048982064863494401556504534467934730654054688649682254646994075056708109649818239509352703711256162445346309250997000635572492740310755935857407662800445018767077729589903306376803182096417657037566057205129193285748129347806240689643843623557605373088249837963292989150371124929302052081725997221622275386700107684697737214234142999559976182272888317335463043313460806588559988556644305011702476427461254437026262085647003166710452146808215386640905638575120632114615792167569168500092785197169525691185865036478323466725544289472510301956113307868001612622117851988500052179729893224445737800852164934094346255643247110549112042300025567768628636467085173720494799438946659500222908352091446768735857100466852592117315674886153027442638319439144249761992375423925554352775921189961140568998186437258252158676239361228438480939060132168594055679902801728190678995771042544601933924921376371461680015736901414366502021136240690998650875682152017719806880206800939622940125993544989186234718314198691467945583814883624412002024319670084297628171063887456315322815217649322437936731977950863302161924390195335908102690378354286566078951233950736965957111206277158553720983770721480850380539564803917240833849872897412238619334155984713324469095350314955919900363600209363785531594859082886069218441988160372883428992919515983975825494794238384772434050193695015770903449173344733329242477487061769713584379584211821991142791568557763367809491755098770919387955998608177034438356023724329446952426389497385107344878216159877205947155793336590406798778550319026096555814393335044639433126022092008525759049792965532295276882888412553003124106871295063428571912209729392922461325714035560690418780841979325397351233360118479829782270555675028780391885791470908912798987298095167553516455577095207065067376613336675461148624440548382591118179259711144954684443822111226023591381051183135003357785741166251831677916227062640229769927597133399192340622767733538121798456274538314995961898395879876870385581104591366503039455374138776780245607687447463941116736868009571421860643661402635969054973036815393679919487518681704333808106536864031794367331388085292516228088330182811769994680070755463242743036605244666688370868375511279917878000420793553879708677726157380992235927016256602891055150363877014537679213472911105382123737704870146238988683811196133275405556171886274193453257479258939106463243779034776991746598739337974950275160538524712236460607583358952748995726583450590062667913197330790481190610132494921347043530218156585967161100592910563615042393340007578358409348991001466819743743460062736703913167711349057178834300114861271275185066030154763507459345164584900774056051859600526626682027119339769428274178858420491627308794555246776530700099607243444025557975651501820948312702596601555575388617993860314024842442636041768894512681965210218827284880159174679806887489171403089603718857308619164424875134749215632980970884012464715677534688578536077051520136059269960296386793974073801020605209509894046675483100339220872129997736407798181237536018711128086559522377683938290566392530034532683585097400409243501510647118399022088372134092476680062199444287310528074142292137236908364837278717569514078062634336213229079442068659506676199514067039517906238816321777191226773029609195954789905197448610985253179468349719332752625001910942597080072616603452146002068841478167295632851016489511963619383575974417115052757605913768801463451815106264879145347026064941254022402123754459035639364414911000455453098774308265436116318155726070055159931902683967819532712886850402538138209817587572915516225441661860597733579717062469959014072173859779171026992548456388919483969668774872053508897499874986480320848397519851523908216625970188941488044668596491909051370372973524941303011041441224834725039264384359626528439566334814673790733117615083366288760389922637637184763616416191006277583430660270555837620747986770891472873678405264034008324845176595933378932912263840328475548623191848238219816402657223979066766658220081924027131066985622312953549824510926811008407848813742589842021321342631022557197938391419512338695913458806318630519324179274973042228080538110260268602777391394611054699433345270564278508495453115942428583080525392090687293487202014030135026680974095470065468455882420666316503788267397610013764442919498888017077286110166622100570392743357548287689390789679037926787729643089309048164441905333414325661061541593654261759894338475154218655872098922269275078698589548674125749953134454592426604099454797352222116113858799205319373821035807748802262954810068016078471582838522826890432453926780689416839896935462783864441072420081130182385715187169694097345551587988066722292136547988270331543897716326259508886297413293942314115813273276244015351189189502285586050488923908278341569376878285251723294853994754047251231685501659457096122175408380425731003433687300487573267596812977817819174409792171904169399451157054701190623283849053875331594435950861188374418752740910781838767013085150896723637953127681594701336883562243142660088856824500134780667892845671378129555195141895545668233481438190448667730950905623102624974885147800991720969696828926243820524281027761483499538617067172046229360676152075160407650025984612920907508553818738048758837423712592295185164241854724949386338614855840426837406128426022375855330013012640466828198417133104554040597926160907885124161514365240795546504476437133753256630874692075478293392565737458737024899738878988994319385703321935429203899761565399974106798235334249694375061771762707120820389817234336096890535100954647905272056371940833214701171757398809794035050925640217295431578831567401328412622023855068814671158959263740361609074556168179691447982916258201731805118629122103063912159021881940089147087226513671073985019276497537592259414426829249019898468408412466097499468661241913935682113705310120348410794345053283366689527276944917845345555380747179127633877253840651595249419828877198710137682391679784875709347697842550220999631299614385358084590415631756090739726372663079570942566102659602194858528900453164795109966331563460157440547093920860597839729681784846716032169047826581404630197002496738533332619137071899418588560667680443949805516617019039821106066977913106836382491221978591495524439411322871899458724942236596681676762856044555257746536395490768178252745706646298854223190288941277763649716633123146215407252515104724544361542136995850314463688997766263630941541254549023747520622907474448504790791938089838701707431091784609953744414924372512869991992006521205284179045655982163179667995528497734309654841235730825450583425457799223131909650955002359327097907218770345295941093631078207975388341159655930937617405842989173904400350323571855360678646136384577058911939559792352715240190620266513758362605097788263933341978114748010959276454571241669128687944525195217353341639656777423884348117118076510980436443543761128548504350785777622205798941376313522817816703149644483612019271014215205338139422611652559181378716179379693953183316071484099245664947586749568682107432327028040268234593200526565886312801863204247521946382169591371568530636709172739313909570372492979276208230710767420407578621590263838887640229305157359415301114034328905630695561834890727574443323911434203953009642219155340923153120892252459388710593469372655691624107720485030989147572863449829428626705465491725725543642289328173009735995696727902320310390388835062961504470028600948275715680777449255609175114039234544552890366445582787957932270501634703739266786281749782020831939285057729951453945061936155893381926310913238714719238499222680607180624999619555051874466596835251337527465115856562442348560199478783087254421307429882375209629001179298176143062303509100826999929573020746063394491463131614712560434733802635246059516556592818951898815616428628639279277945735477245913952754271344988941038775376006346014217597550169294657002174881249236861314773710815644570925372180311128895369652623413065885347221044576745314349124735788458976853049784508708836546709097149783706000269451568808773110826580402325766102881631825393622286819909888004905488923739407283850144602837588203073648142655384190813494558110720846201094822945736613828620225509778634860969428803015267846362426556864912531542369554628592018650417328746403938531555915486276230670581905751889776268577970100169816742885379785558935084139832187383449402328943445358126292188300946385882068881680284886561654022086049451819665708235255386836306343992270208460313599511260928455465997045841163536571811480115787128444356726558913262270369598755879060138954558970926876687345034208411184644590902155758562683655657732142061056559155180981672467880036894794669478956637443479763730464593037905813610908721576214073419321972104636090411567259217720143077794103591484619480332150013182619828770108363150022388455186388454891187591083869670100017606758974196685601900654556460653680050642710621262683852316894029703016952563006452851210532568111484499902429733297732542702573166708560820181576106390179835267254952575242951597501738738524552388670004805690929788562530829549805786939823756154544908420460975733131014675074302122780937906956694165389223460184092354128816538589280223593674538376145596563548554768232302039561369130260125007654956857883334474691713017282741133617834572414914195974602974168281869901917032036497889765844490815359081366639235565286035168365883147034462016668348986058595962028671649383364220372926800949562184562887362351356673674767547646803360050222954258001985639569312892111480830501884872023982721797091112984707267535676327806633563226044654263883191206560226904001687105634699638594562936833381442343079738565840560962616939576582440686472050781377425245403264629720147958501468982400462471885179461191994729820167124086181745418188369493894122534209575096850644097477266793855222373055517272510069219914844049660531403307266672032539029484910480973678740256475430926589757866089739451779715563756725404539172361271586302662857119456784903609327596503666907810239573027909261065644519012293684991967943348515717935118894865740000990619235259496337953403341245732486671222801765618117171821625218313940225010535219973562677510480186750834349289766119972686729791367121216349682451396839138319900952622968050568448392248487890054007462480169892189674115562004027209248787681404554438208379613172997752149000129720533328927139715279054447056813504546969873556710646450717937252212402255424010123467177237457328941860074197719180459599617790942892479313243106252086940007824099389875731462479111017330150046932400607066833283586425017918873633180601506932177808159978909314664360567069455794833547259535508111186095069810661702705030489367521227079354667684102373146032772788341904761493945684040903240980619645859974516206649363105988359756508665719564486182340155796819678735772880288333287456880195483617401344928968101346277644377256690081593323072143210066658223806796322286109647542922186813911285552324832455769303703078865064078204627244945150185784516252905038838708008242123375145319605162991563872204668077350830144868862338229256933567217520873907158626352342545334029486061172205592920804287212535618971518320546702738746612332835882528947385733554847937599691129057143025224199421996360613643814500310188066409948071200306711367991038052349620522667917710765085458104539202896250529518273058316979575037314137142963788771645637048601307079476490500543622861710016172174419562329902209130085436259847391969678608316217608529116836902446301820811093901737440860316915835914521930783203203094364076390583658418767225906694598771731685282921708516563689356073192891350493008173200423527168721277073887348756780411470863882208541901199754907408382340420524733255476524814731966863607216617538833497543012574246708016322792171822647052299221825611426255527495037150619563443388321638991692704377079232679691359454699897924054331783016242890026284485688923132785058357683933284982143462762056732684111361895223005014905149517326302844972396708515681968868352399102138417458945349097854438918048963446624174553224064717276509927507868172102716523956247450889416918350715421914649944811415712223060974984087039408348236647042009181003967499742042678368428230289906984914219468247060139689815639258502262395211578823849622486733207462095311810448447915571234144881325876516021272778830118989668387143982214440025089842890325083125286610583203237720808505735636821184096532908843528126651122968679093360303819574581517273027138788157754383651766294966311508354885908579865591464955227466622512805428824859343169507958189547347989408977466718068851913143060196770711212669332509603552717258856192444316389374989480478156164792438932604377759491217796117306484659322848491245614373025164305791454793093293005163196851876523157980275268204658530655972875621137049897426279214781271812844104430978251889825521465861844624558094756702234557883507677103050400899870689162083849310644451851784159128618898520069479948310110588416737066654884986510352663100712578793152847321773020211889250277479744911592152345503198569277363362209891083652513227992609276678042872101180023808235046306781652938755795348598909618697413156501065796269477134554758874409785399089465437364842553785288303626528446709313508978081206807458813592021243180737715302762022150434337722739566849664576926987185938265441721441866979244943994291099807751525760585369736568716264499111668927895002832251233643660666866078192409301238245513334961439765370120244832154395783651095276257821173939945892195486738202959618569744184294383510328360393544707107332433887390058712695880618200808948365011980669050892066440406905796417382154276170088597995168426698616663591070286373284066261368249800726364888876131995062742446961925328149490969076904288166276060761535172274133090853476829328702925287766971891477338974615294802998582521493201327441237763513101704261582997441616830160095199938278012341649485462863242579856975146543807021912016574930432176103358515279243341616574176803612064742011933374706981311001395139880159376304062334165722808676433343810108817442000129915239706274494090927717938770960862849812856159523393242124552853257178802650648507310447297551398043094876081937738810085176105980550298502138301230574444140458801949428271899387918922812732210665857238517630712005791131605556048065916824290952067505868812014254023353991812581980897481651623527356596804842600147939550854721824853183283483700923245463097474441573564437530495684534029663441533564776374569078588037579589712602568367822622147844753212436100510839473738349945130948593926619486797200353513639303487469993350731025876651901109680989266146657120842680848735392466636843409345232215463302790033192130423487221474061101398486765932819964495791845850349805344110856706374892336202013470465137990466153959724539708552251884513637259949122592654890184376017732895311549686728400056088338243348986703237058648348643868348427998389414175674110495643660079168436099599971928057005139209573213210073191228857926600091197836539736473381359216799423991219983293859011822997104141063113577695566335665984389920177524227773620561280331236618851981922503539481314848586642213862751302636643376515159393073142936512669363034406142162919752312426164357256513731383952308788512580998173667734955367274032260214705273464007461025070217446774352363376020601974284155854107217519881489877028760771225331272255831484497923598179686158631186487745202173346276436136818051476238498645956022452738408268961589248338635392439753993322073743446634348422175415793572303240524450121109431962776193788109096766202052652307919888225776934195675152025398172803005991159121905728813916952830324184565538554423936683939596856196376135138586996536585161186573949874285041190947625586315275188078567969137901600086383817243312972773191687040385766490829562957013940385119254271131893440346468380464083128137014568880055548480409383916708677343110574665859764705113152542309312370767583453625938196471913072279956679898083962066340517836167792350153252937683428234349319224625876072541356343703498796233623412142077684830550754165400889791179898532342742467569509266905113204332126461017021937907321102050486735899930203500245784110070311647841573972108480826746170283890661091396778652723248264900009385534392243530399315473696390750638439680533219396401693796275711408784151755663122784356529664647104353923555280998148705183610665632874293490848506834582485566323868541265171782290123656059645086807509427526111797014208605442340858339298006343365075580627060562753715347860973962816061378699410780407090763537498695988867646415279267368127945357458359827781983333458506276439874937778115505994854158197479030621145465708168631246342852058784333507760830757055690156407096098064549483452277386050570584026791800670006406887976931518814033688708784972274437900019015507896045100437731592144999756977827244571538975105110301769333466456490988519496896511948153077687582229239438158159119121908096355942022190371857651714563010891310879159632653332987811926240133188114186308493741748339896898963573692399314903391673404957506702946879760132059911251527278314703758288622016198414875240813500481620694224405025641080446934273458253709218295182183280463906603032841038453488085673837079379531373824337513541058710069555839390065129098167000279346056999562847567717748299288762865192282417078382583989954120985146728996745338861646698218928813725842344453276539810499230486369721585286492327523727019451997923012920249408187960927605934727763275229581311248894014214350723211497160728265809390545231754302578424854613125746991485839919849522232513684672090224027058391753542570973787194890609407751304963336125354853728373269343400037957817724662504982312677007033407721454300791759736791670047457163828561054299567837274475000055991045540868169069616552813145852737187169503770541102531201175595174287418769899397000251583508749214766802833063670204033015986217542531003073047412085510434994769893002698614800521996959328800513516980565362728836154565512308538871571210823584246187568605213425468885657914399791221730770027440447938113410825462720259946167371092614119566876273160904592074889293453098925118326516873051006462973355489624695295626530606837998016920301753049026524409675323835593691936802919874304070350995036510959120248618280896389411837612844103587843870647008475148192234055186001097603913180069270191063166961158087427339570884675815340381629691139280741242839039840084392958539014373858274134013442095003674859492544412988989081564186759213061296285943790766023991596565799314296908875452871280261358873868537959822793176560204827527783685205985035656298372036992648274639961615084025495877644663647619264476808642840009448185435472328460363263229374994355811419842212486234612530881078050238292094227785714893908077864260129189144906199254274921827486649463138244399935770626823665158604089529795753409111202457938968517119519772078619320177970333226062474436624456105882952131286162893938508728263073461469401893385520392753390393144322806923359565478057542004841342353203067639851084497178948227830792290981179309206665528301602487490099970787317704750542014627023117385475414396792759970383712630376237563934214356415587565319004991291282466086994718699152231977389566033735097553286945838052786161035145745822281964564759257285677393651455881090377441155205255705681552066663676430137094917994648065573796870198927434758500994138820942568194979171817722051544256947238761885564369405232555695100111376016006228652969372728676252495134176759497422593377115144599029884388101473818573561003316169670937822381249308460551680707480593055077378316453422984298584487350946096895362140295197080627028529061428347163350555124148210982003645770808878333281721978583045594064202253659469930042070800315589778591547307322155327705809486432385528680140729962503050671185829193944293983928722516953208678918143745596397969166911534775768248779772011355977344970078209134762889342810530760845397904312960051930019362553578422000674523101429854662670866705762033431652240169129838989488470479421447355802951102519585844094969060821575550565738032144388466477253885574175968511138128051910397533404703743274449364430400102488504549263980743271614280202234613875657996315090346058962368062506046039179886199967250087604418065852728413516385075521008344527688542297287502315442755361203063626621668289754892961756781592208532193535049626457744039553610305712187086029244349545993101001480039740525179915303757665841937433357514641654648331533822046696696813005097469155164529466609912867798821831863179553230405525118263349528297507387052244601915323531426369641023569279503193789818565608374538520355408171424449444728761357575765416736560109554677863125462085615132738278354299523984092497967186545754783087635723308782652579998131655769941586877133674218539878863147948357952953987301681391012051760777735800405279251013244690457142385638514203240345761570200147657502931112508844239082775543258962749247270219030874508948893745203330602049669533777008196969103212905933523644593766574791061546339418467392000259975481645182131766209059407517712206843765232098223318703755659423869992654349011140316915188414909682048903559727170421318927956855308707218666857877643930385249814603981190827104626413111981775297499033822688737595898110081603017015014985467500337230537287550024352081271686735830488318183428450824572608585747620731669882115179162813532479857792977035405415701027178254871414036863572476233917920346458664104326300391944190630317879788306179297638080560084259644480271140303886069202970406903792917572727782910675532220191232767912356765046694413367380887011155233998972100814061512447523505422788609035964584502051584425350557098401516477067341983245423834953778081916234096326205529902879713169900146061152735018860369541478958970022368590924491410449870667374941068948216679920460075404968439759359782804298815387816398414652962981454020596489197211481119313732501020608848266981417950531109230162426747638594471219935176641240196217075473538897516341186830992953057113562975269009859502485057094725858404595821673874869380984953096015242616896304206304971193075340625097892739426491597203523255485014610159588345959729221910827692437426031411124016265617800594186250989936953656703856559246779451949747289413602241195965733212978639251057361989913091649110712249044349763454230130936102816422390549797996281896364177971864229794049178660496111580815804055431126511393920366172870896215827235472435432439119337607049447962072527377576264931609821178591713109876433474515982670359939248481155572993408415826261749639633884446980683233947219737500771005127187548846010671840310822002376300970533388338993833107741111433090284418878665562953060623248564158322106270601093993549412042640231573815012086409098769806370000860550587084150434984930810393193717522289254842792474644010326776981048583655888132752498009839883932793182771172161270394820447189253049347849101927315456656008464957007511939229287558166700235094223065366627919983747918019549207162970222250334094682525719229512909695765509166744459782026880670063109428332799822641018120326686268840641208766228617351080193019679065098210036771668583480061531737639571775772185294992715678956709887953818951589224538604637283529048364821121670626389055252120896722406442834842602466835067285636902874203304223199606145027818879221592355287189725897360279792565933256951820403782467126071728709389910270095306237744600699222762170466206444992973863785438245461676124686103231844079247812024796469665534793952029146459025029908944601864799398469426783371753461496363196079554364408272309203587639082861937982223099786177283774396103028518805792506305535061280084840237464918817262914570938256667992291658168034455542611815747654581571478381206825747701288643554690685087097961594550692072111678069770879326046795229300931636485296596364352930996175731826784097593730988375233359605955219277652948614795843411720061336012011606362954319105894472271443131521293025746005896202666753804729355931295091115226577328818244303273343226602131256695626248078720222398489661769546341800714844096048847078769735658146488313089548111867536814312785174588960806439085121465414913689432239256165564442277729521333450472638168082186577059791289410331735165177591701888623844857531039374954760593309204543584546126569142035976921346095347705401470494587728353608292559164391441390276996130643797673998148349055845390831251779214692474620561584486023950377059463351658909109703300696537009372343604640694311671200345904027441010249513380777610535876958006782504032064849695613319474521610418420893551646913435576110005904990494431398588226549206265418666547750286939789604111185878210946955735032815359437459250052074584134800738159036929386881635649587801639882475747308769858013608682828716881142996048749086432657263343352888212897948249844876905805091988495906830876251484702505279608743874549204511837403399933074473395374074143434363166920710162913892764952021812905030342447368167901238895418289420639139068297679411608810351269257400317132588126921129699410855735565262581215324218845437614583573729401644300871365135482495537553893018828548000649415999919017286534081857690732605824829708432899708315791110363891372030044271880257743636854471760772247091265989577841946119231953461685860189996751436517266511995426277558569174159645149757142530587285647152087860224707750443140489450247702685850320928181136763137687783402785719524541182615501801121881612302343176268199524320362185613542778994848379366007196052406245190943161361749917814235313183024959078691240201684364871698217851339779959537642874832734238042914424100748266930216672558893785129380979629739001705180555026156136421825948096726600891369027958071817930675898690152781158839071960393048788174892088922456247999670696319376291149064487804375163391606015741573010530546342276085087706016328651328266717577954163654915352394586743880276349478214937267575031035214389799364328406353353547736444605822099968468163778406890749092372636746091958684927399071966983576124886438997803203549305482427340087580453451758741626994361776332354597455424358503417920055472739648755951880193289575895197549188934306155676277114408400231524409633054760000150323380464145500108399894777243243707976414821832335762775396220689921699314662622604719197666745811403651658555231677477239476702722466849699268407022886447683363105043239255099184974874618766848816839445039357690542473120237934427112148893124743682759715095512589332429244608745484529940405566436724908175569425885049133139703325740426245297592864662400504272593376968396297586167188169676557074575321601538937573839096376324939769329738397244014619016628987347092603213433799425411178584536231445214830744468241536354210735747004402163636626559162649466883893792750795749571621993793417704698809162249318643140089065909573693181821908625903760949907859443823671301221039377943765886993705147247223122486026686914294332434082050198035583414964663361867969956216905721814170731084762372755928981796333051299649324572436032125820328130374601834092198888709210344327006574021485501755305550272104597510332578270273567766000368206104383300294472511894624767951650602054095536353513571387828286368131477658947641047324968706756329439983520659791748483547769774712564706823311684870647571939678416182393467286569738122530485539259599007284947889578502476673211533894547257083952339129687323198062889268383144511000334419444485313997587081664857677519274661394589773468332495489239978708450022980395987376325398819752725877160502017415589319024132707687686393215639735442999541107655964218999073288997559343914898666284993012737099764224475892163165117848142026592319835105094028613161540484411591324762525601684201087617361347784519712782048625418968639054128357292031968885433031259620024020855832317597217062162797098745556139966474494302149583604634282212724336375094103948697607441174913779556243010457055047165624251536570912418759353029422058982904359912829587480580206995890218320725535938217400873756094596257788718734187021812535259935582926463318342489474203450938945128847556370147851736241770633217666536708527193406134046777372887802729626090980283965090217255665896092620073978477162660050112607525748286697689365080101354683803518865139368410371124654036349256849274151507107966651273706307041166805755344456683384940429379338229746650266137302556601810624749575959860058149046801678893678396994169752014657461625659072903691473742313897505711052394978870032876020097829435960728722806037698797237719686591279651674265573535683932728901662344320299067418756660487506102683053886190975250333713053839325907621801865274387020281902184724218516407662303267227975081440417001725760078900553757559284644903351456710260061862807876776286337840625565050789993011367345712262450719986751855003646539322181591820798218203245875996986664782018775429620184692798380751654823198486878369645703380917938382481372894459695430837264550020689031335898566407125039775541894182809766562097120670838228330742532350964982609508382306237143593086731461069136388588111110399992541441453650947817014816488374946112096160740388799707429016663251188687180579687816008237360344237600585370643925929125202053774011271881089404481830197922139693705002118087421862804358923383423224104914065515317147850705384793816598801567141357698959006318627684441005085428365649900900978527050638467620636724143143918122822973629830532722046749704345413860213138080997682528922215712531512320594353725677583144771324408943434165576302309649192641641688505274347922276401202049312488745306060410529513178808883158649897180248508224605913481155226131844934830058486408413099278547540575664365231924175353177576929042647248213005669779414907019444828019210069043766603981825521144089449496699706101005978979484167942498509820559778457987725649824756595399155896154723498916520939656836593597088538222348799148045936358907807223898944074681269456289474611943531652107935529519869169715061244851161492050327438658771484363628498211080405401497174775223155014193607367553132028053643413807317270134357390226915839801352115919707216264635618036056574713862513155629965050483892530661878632312291138135851759701211151058325863996878806407252152243398882219420102207433458636475194788954290296114743665487401835202190655817839980838257867834097360247541272250402319324251363391902106329672766160204370489085010302895645928225355203677978399461528907778855468267766677521104311713641404540300136697445988918406342994490472792242545446268515944576631854778527401616244029683904811877774495462982319498552321409042038395374297536737277973883886870144965152643458363140494768821907844382248524727195832617067055631907134485830376007380461777930846987103818923861468359423011525007546997303933772894291550176326012978150655274958185015150813184142976774840787453516625792418378025078541974008899177216272458828113101539338695134766785634617139256370310008090812959690386775106618439844075615254602468675786604896375793422829196371731344907085583047741842528152702136873490610579578671785684120180915902516824720266766862909620680430107955932794978117411036420552190365424605744661919836836120523314643617778309253514237049590374256629353604536970922558179344965555064649136927530841428614475271413728669606710584722372383914442890252767636840973838854269100894735555688076561631075440716451398954824158115578299103093748048408629276437399389938057747049671899267158002058418439065413713353582847163110692400157266117900854409966591160962148165995591925847939441713737957509277931801627451858149813022062180779328940260670624475760964242011529123726112648179600718099608204673903689735284538184662547772595673975734178314926946980071049633765837473327600434518401309376543378765623414177912264683115112355565522899600833379169151727392221234254854318893768883378988614206546306431733214136662169388592750833729483997652000143386424986089913280896740498596936338603637985837996788331331456346758464921886347563232852663216499784539241311011272131413117062552958830900463399765016166565563313288544353099833731121069972212981122340502860477926023096470197099628875816185741870303206089664897817112739787291006964869778553387597696295164490262625243355359794180186027600697803646533759598653943594379350968024189857127192732607745245678643500624686634515984349074142394211957914200124084694784188301923563722684003935894767149073429248229815490119863106201019217072689273201267269664920631863824730299569299376397448542685154909127088213263889349943606460684908036017916289173805672652724811211333238760308579502115896618047103692518719780984578772094987409238927009868681782651378491039501229436294940391508516443598400284286393881589264905898012780952588166649289964802222200752738845817102566709780093667264057428570125350883626296258333536789381931000001922836090782452480500380903431527034370025360136868360442284491472708380366382519592338096630293492144330136342917799621240667749272200504876958466746183533337958231529562829532157894316185339440255465490291540213039495610951000473605960806664288638527551066608629345872433281458915064245275523515913222066645068591961596093332823749965016775827795183168446768001532794363485431984033546417364123141765287747051020131320203779091331569496184618257516501611325984286248609979740999121811725569849153546212786957923727581449120423762020651031473835024766307649863109173109973374916074576871437735611733354593896801994884395842560091069333849112556245752075751433870788503225866066232741301384332118362504782391039385195987774627476792022590726523192021252882798061304552733795538193775871284228012297860309913967651076732896102384588991530462377088004005048709654737084671768521970691001093704100901260920032279564003197847526184106044330528550587085750592581846709078618129257569725997113468080235715160330318514602081199008174204785791996410742197695564751147487244653970555139740798188270367713962827605645262586660801477771182389192177001859804414116563027668423478089997086758989605751932304455303942722831095382381629563705364288424426975300815928670097321858551148142689524181415048739353064147427787397591017458262843950367867297141544390294151767333704438375197270651989407374855057447246451198963812230922749051216662218455304839673129092062440071633186783402101697954857751001849663158585260039539606209596251984509151809564273311892199674301219666369474647266328543722069321105611276530867645042292115337474550082851793838202179191406229084915458785522074048105177417443552290989863735614435242483196588536540909426253511028197521339184046787978727759071425523110877156235555705663328968789173407293138591803559860146906045131721464243120329316232578454419501605621188790135459896676921745718639387836906515967255740505577558305377553717516051638854274230921220885908860202407764967713893458215448717943919872076627876301808648930023694431855214326026759093071309798070699930066633431028211320969053596051834749408033070131520566474247274783206251726488172856292193308113614308740028069060291215532595866278601277371644683931675172141166697167191764303724955747266675349720484275558045891487788824435756097203361450049652900188890324983794784139169679995650323574723045142598580706991888789036505750536512589249515360460341267831395946537826574984039701473055867730677205458208762239030655346755948261140789925914193775925840107536599951878519419145255846034328921825475076305565529861619139529884321131879402358127286861593287440068636685784442011504661722813016033914316598640747786803184900418644352166269563642379785046796665882870058779604038761861796209265729337914184348443912933133330872491969894102219158121257072936782146104151895956585543942412961402849668870605446342983443044842211280367476174776886603510510243068861462776081558775132999038262009032368330924499122356914852393723239567207729733086606158219619492717004799082020320327266884602029480450420492506986227937617483707353161159629616660419251554105357342347973996728630814755101084825532828541940464020829790188895471837618374940060653700259212115446133259684288323032438542781667312359703783672686234463410230945558896627694984820523240889020597181009390771404825065405077177654064753834846650739466548833339328543295323939180180416154871859192657279393791485530244078843372786514216329693318544214559663616838405897557655992577017451741111789220330488557457508589696783656429992273357387446738432125757663352321459413793261761810269384602983258710824929768162155839523872762592184121078911331619645698001883391542055897883265310555387240595955447615089848978005411958164929812445260385961285863759184001864800189778286252271240235341934536397306645150123056810055083007094080998018658518894846628534192589152703308393312178137042029909479737065674068743710611019658447698795631349344909806328946536081086583785620178095914265274798053539991695080548555541850421782728315497910178236903454918107509537667237120907046781536469326940630232061579421897654769692345170060273854690925019724341812258174174324171669372546490316204477666954193071455920424759394491854118452542984201025907498297581484731477541457120377760996010364566117727905914267455450842014625794597680629978511213528248675474084119455191073094502582061619278754122980808019855501314616862947536581422999308316585425178800841571369420450878954803915738478626420920189888037019235938999482953861832907393328803578597080668093101994695032100158105688667760448576094756520048188782471364210245905120146751544410180419586496957198821511730203688669636551111215112787012119686197342903608897833273103273405108806726881175987869455209502098108993824491132153558732172289041706541160292467123157744552375007637948128632403322424514560618306479329876929513676438035225468038436029910733998851857592229503695831771988956874927303140142344285733508890015393652301004449872347175923837165330493512743700763137390829151921105644556621273392484613807304687657451636934413155975665834713378233451415633058947190658446066000068362278640868155076079516420074502861038611057992861337104268019808570919629647023340646620555397483904181569492595359632883481855886637524808535495879954501342356551461312468914338472486785824992332025853988064578119094204329666262401915850693359337712186004863977081722359225335638313175986999638696545885070949237023167577219973788114647799282618511277424558965540104987716848659851329155221432225079441427694808121079933498606298855972723326041884285152920614096227118621872025825795008967169163912041853774128901527800094893406774552843570888005935554379766293244457732447520749193453675660853319453961254240297066117745542691912697854371248522964945018585277708259043483344928670785201012862670757140952391969724838756372244568613139631084515947038804082158559552555159189215230836459008928963129526148382655829729785385678015049618024842365534720092498571331329858602082004550396075733094216872357174033834071263587676260655481906696081492329749715282069718467606322455224360573277568835001288475538540666663994148657389091437044448819703224729032995563055298220414037166346373849240978447510486974740632679799252439066722278470615298623403998624477452083191163879105103874454397548813502718878018212413089282585276943327567217093694455713011950011715838892445507494580292378052978508444363445996056901450768133594880428782278306353805373630166335695297366951101179759262624264709485172192593089775524256300067902208400725180622277613106661787030377515064600828995002812156193637527221714622458421872733662311625317778492130077457353587634921134432259708445381306595178275778226638031717966592683417470112130264185420595791463987993477857547479577665696053729351551008075856657599708490923763250498249945931962989996253577109684130075330641185823141563175232186890572711115987231697385889951164524047774144438819583078421398095658769387196426017840872433875699556015602354040980293787181513420559821723306875557355576013090413098696814055972723258761834750750083344294558676159532053013778766784664635373210609508325215339988367382175593456687004120193506471818271245302881569816248372889201218703663891573264690518298415122501330021089552549511907425872304964476421044504841681131539224686403659146838389482563313476913441329507820645334215217734883372933115037976259006444115534441208298523907866075093999375529133947002809471724882111479395673495808513897916086285797573411757117208796837519760692094652445494753736937825144463766123182531449829915614976136898328512736457921554272818221764792430007395449373402982384768474665051061266307179314901965626476409870838581369314530794826755397037084164168487340152595756605640962913306504200421395957159517335121958475979283000691496118594165932117703542466170436530239158354359327485673883003320096588820861384106235658133262028441334898954662214445942442546466356867795347120067914357311774922611498006688382707078046810385169130583936447411070818268770693933347805573366871470258053627180546385993885742591405875563605432372837783002156060120715443504791624571301655220587059216848471952474614018705152237068728507427258342547244263752242719686101886288937616756859370143161840403494655981505821754562963189883676914247725815322421885269547180295631701957154792971786446684534410511585181776806374844779054700212173384036531977505186931636378991239848270764156310708633043454710188029220235298503924193705097078907070980198752510777200060798661231378774915132275885564668074617877143802925847438854878840316657277074748093386682165123945091037744197194443085416408933983005712926709252106752139649551707355903741018538651868832756247899424173893389409150740230872887745397016092132497700298739397843344832425934849439884862152296749234423561360179857413075725559914602242124764698427991253633850100448982310323791240831932371859759713582275651529449962982525852304656326033628952204901941724694599320760065935439979851936549690906440038442357584445485786468502414740713153621806438149163984547527949257312624824645630646983189975712878888376635083986401750037486153245542019467900885538297258852166633689817098788526451952632446118843504178628559698252758244203079773786930528143406071457615368376709423758946234773354922782385578806726512528650551683048432998525569018563605601701434564896525084289921984419823335578140037811110422206329560877800570590804096690967180177080852587801514460247775526520789529696409627844893647405036396970955159217694711125845311381507324990052721027589130600424127273175739348959970834788751374572227445469903417153276189062069045246718172861921615312782901141016198797759452334800197689080364226388696699689104037864639355786819452173699359377137864799660634041689248217428595906488475223233903933121399795620128390367346098572112741270381563293186243801250822306055397541826973123455098558806581372488704077623093451048113576288654236552310653892189440311585053655148785042916982005485060044194690142470744997022137969782049600259071772476303072412395691419388777234245620951237998689587453288835937387209240376923212306333873520345211749036318785856413550367732077384860133029562648405133097121454662766200970136024629606331430314846123044995821184234370304562673143453650739955657742905686713684574485721014439054609216891126602059620940092400715540683439319419286000413025853883155205076083550097632913915991219353850725079214414106210059669437632448460445800570391025299438450986317730814347376710138779834291464819733410794791575763042745644638841809636372808994824540464281207540590252989978782152574026939554532510169071158251414603620434061309791428144880484729158224273398895615949622897595615863011463119468668590202901196129003158297133559432909672925596158238247093185827449375203085319152693148028943436003163335141154058590112452454743450342901801906210330880091662624619165199132433639678656916947337240157490793120032392429567203477135401429101561517832651911916401738291414811136332088776946557065382926650124534849009801857711891692524924287789440384977835267443732941422614346559381760790226024457704266283412101789621743426255579190883131506726100677256639248492044702218718307688283612134195480342760195636096877421429701273864672824363383164621684919167066475375513839444546148014969018550119493959011150452526979368552697037738389905866361997700737001327305239994769178143044613729407564772407962249754443379180838889951816221956129919498654017732025725750108184353840633074326721521468564494161342364317153766568591463229500356342084375958763580342066673723599578495597537633702581060870670235663639582827208443189782042780520296676791531242547255646442390205682351446636925340082563151540470284939992139043759133278614734591200476082425970286737918192226637598312306734394438438312997191535142505310717806027684756736082018909959733329148926380809997035994439286685775021934738282809842205176718042132487405516280925103383128938228969663476869955337270225004619859273007668634259483767888070105945673599743477531434126990498907996935086385482819449234017373642762089634457105560860464922853449963382891164001270620231601307558809054871199461191104121482601397179923312703909118000656475703204778350604940486235922126066084574449690245530586178129585063912536499343070123933613700241928238359914462665090226040299985618480342880255159617472807989360952311004419068114305710200590372414045774539929323460156925275141457534518090837104067079226462743113345923477587129897622751767522359412709204383308312639712468373699942273131232241143710049281942961591514582014559997555817670690666189107527382440188402696788864533360348737295386834877025028532036979315032157155957643627615293482798271215479155475716352494317739275812557431866992541041461537637963421538092242266943122081993498727604757485044166941402250081406673290886614522855668058177756567750150705257208099559195053636363426534545835145964070152233262621351746560990949904373791716909355509314251935057956057892325785624121897585909532294475209120211406860677050363336969723366389117022467318346301472576747384578767454023613601749354275470470700618456213429718011688063169878398340789234034344880761957449519571398934019990734981453046960421259662189048281473553299910987170375661391382912777602963611835960170892975919338733445480257739354725104170850843095880175044448470802133569486770245128820073803961422558613081442126905671730821499448575330751441663136579541752725761106860637406817588878112501352243549298324660629504546472132615539603236368518743484877016886894010667502284493820893129767590717313127661800856601674152023603531829378141299031602999364561631596058718797346654879113958243711293561836287408559110324890770744305983039181639750047203077874365823310046277318969385050260563847331421545648074032032352817778798258593048478224929506860433004555133065257104440317391677756933841689697010410741820765457505856504604155269458252957907064400518902956884590877398185007045299966165848204721244217086497257278063760556018198539228550111193054721610672358998785309856428174596571376967720837428013860497146466133178074739070542105875036930815649716716066735884962555934824601423230360782188953936823110594190210205571802965968436337230985556593609999976930002211144536600195836944168100865547199791529200805865038078643700478582250257895659996170906403444780283989666875813564138443357632562821192120099861913368488228470905936623016669552530430092298148317744999012697592549119627636559721148166475334432217286049982279666110672620287890633588972975359698810610340196648493815540222036625711548515974501082987666724459728247883207543939351605531315428309904230645567183357293410744855623070900642690763581802164577652615428489932270820606277202321248474176808895713952220193607457638510916517685996220439317571599770820374072573391033908803681750157335290745745214255957334757361659979060250609576810105407202025793821081338180059162109323559872834290411426045880286119863034818991738404562380957314571515274083286346520719255767247271030591116367077078569990452991067664576575842250898824760737266666574832480738678669674654803103087055932372602210907884329472928199807045752138119212427162532921389531660344294291509594411436762682247064777133499670472767312001434049039780177691417627289036900288322710726370755487271693002337356024405986327808017119341954269925159178592858053285583007556107549881804896180755751909614180475922633042155450668103930950122683408822156676500922181691883037883747079659432827238584020153744436710587597059519189387390788215634144494343869729015349694264014323089441081521072517713963056131655173744850894652829246972633341004292373309135749506446821265680879194162280003746120207509288530967720231044369799842956224444439357079459985407898860880908438502315586498291165503613819776577181538477428052496727930375136611794902946256833538728271485922365561580553114114914127000801295051819465513804978298190500158927851316989180156724772126988459407139166994723439999316194559224002778193550528498530558279696329012462426950773512072877073519362067098745933353314450676704116657545492372423526964392899349917407308891811872365520833517319106863967416350809701949146054679410904293033257890226851318660558456539246422485515208222953844297958167514391268864325320278265978266813042230077947792099662302883487579579195635814434543870815373587387855983232568414004545338725546865750584508978832285588442023043619136463059986665458840751278074476856117820510283586565539266171259418994416526117668813721793637688947348119839053148206917205182576449786806061082402087299029181709835447638253559653877479168450462614019667363685840965547079612100064599282485286351836539424522427266068089391516897718348562298575262768292869186521083342038717972704839855420412383807204480686277975789533039015081561256706468742989400801390560657812351510930409948224812191449734380220987979164432243773437566197572477722144311380888106858362890325256248810749783594573826909460786221823243021988227152026458031924837010654368471284370486577871523276388938328869107189799564896254603431190432831411916219642066036891114637361346415709737072138616868825606213554433188238371906552758077256552844325489714921629097980281218610420663439120649161142623190952389019472460800527745370418362061485532368172676584326948219593604525210581693620937229347026051329348728829836161461755926066926841943100356267281033400588622514291021447778671514682693326212883586764694550861377498512775274564861966268903523393210572604979051763530398959150193818476796491148402393511615619109899956829067156020410467946153953640630660195695622058724774445752397445714110970804735525539921158308177236348730372822199047777065015114056447504961417034523339984751479713938572299812221186601095752233883079882810440778303527477933301792534504048663965861814701600339378116141328822044407631854377062313055382897973766365999219549343311772171439822159073817050570618502104344657518143309587949759008297107273577191873462404721118344498973210129057788961165385429419983003030846437724682310121507012511088199117132408942923465543727597981783234300347151150819176209262858399507151879236929605771467506106519757316230910700704943927243571780367605993124750133580220303347669828771408841597775265485606539830596071338576077815316682025534782302914304631579786863542121789723394660320784719066017544809320772540533524627579426285085561735329816743198763834749402948058153159468953246904066756586874244921703532031623562792694539849433507098642140949811833539995201131657421839104831650932289260766675462392646902795666722294715051636830447606514695342936934708745807065951597957910168493157045964960784319551211545637152249247089103498383664933544554681607228820393688503297351239236848422920320346805396720847778350120203195283668026111416289222195498989371639403229035906092579161936032620603051861251698355773536599839763592685594191834373538835037256338576063703968579007677975084804571053693533424375382569518940604198386553803941389559247405400066288630345517377085023364998864738372830822293121123716041863682626932218877804443853107140557102848843869076023002957230207949974589046170468563885791743464715850310519723789373104571681926106544477533617840914145030728619709554726154925104474083145596534241469138013174844819239349012732846565252304279708362631977821795514839549687550168394773783242802368559361020330000449281517918549440550199722533729061763618402525126063858667313433981530633575263568348668082987000199215811701295052491725101702437397899116952564588993404112270787172076051090863339593198626670653279850348885656226488964272291730333993060426434920204295961998629762556983193417849211369039203413184679912576462595684934265126508043779549080331057248500958922078793714049985707415407319857877620480743299315235603117058530479511435810868913645475823417025775027787691942598146975410786347459633526836638472204125853054687250352358803929938335227348716842642199152086663560397750005491904688081253253649498479031724926740515294243301491720292276836480923805388003563242139348522426558138178429254278546824464550460779625423962232056454569543413921568599035567891655457820961205824615079017672472964291434605945215347479038931065380566716553399026362220403752331541220605539130245006334373933582668665273774008963537858790919027270358652648752166983612959510754074641239723112445536055376742993200952018082247854321998955541933097050182169613583008512569969278755474049060849315622708726838375267099161224165366666000674536825343628592393118728578967286668586302638407380147495204153147683432311215905012983694809394982921008994751079985101616204879149073635543918707237871506687497864677136084935289740256920458435295163034175792922485805993942828772254731279176662231301047348852767434329416431301558752929387796623809842001357874934049730524919873811826934761229209133006267564618568847921881981027743003956213595206103909995672057779675100164251674117758919039769719154229387754536702224581320168924566209984320330651626891549024615672304599790135784177834845721585910131482646666154470877345139306413809576407664627218399384131617445896624882588361635360928604532431953300991555582690097671477634042866650921133232277632721613343375064290915355635147473658271213693780614465577209237332337053646161001418763860818802277059412276510938000370248382961353148360722369492251553407202302898965748186439932420047298612462721401731728203899632616387013729469602491179508981650214405890856821969101792847587964765033116423289722715481600309277897114610889997778429341177392318713474304210161502289437636481640704322505679741493976082789521007006948230277831441324876622336893677120083680251556760257895374327825378507757528926716831515020367120519939950564272439115521979206360832913620668736932933278645161645309091709923039964982942724027075255813567604488555345145190346723263820115361444559036964578576246700961273530662801652802374162326006073758933184987593447558480482381998547994316177947618808404206675724917361284771994730792766999660711754374817027238349532963915608327033167862475610161017407740119981782445079371661890140509159075896467485749542897584335412745933460199048301569483016022593304073516764775060943854713681526409900682222306452627622718223710217212637184724997727473342472417367916270229434455055994711214296825141398745459553383554863448649261082226418079367260922574246465227364151158113261038574112107190059194698419553739382898926346812214695459830965757158250611558979104105000203018084108461680124950182406726573753252204211249716326521782940460750047199748301654612222798229216809696305461371838932335152914349899126390295782236779721120916968511058022731649118414059818042280671621614765448574943932271105116103979654023756300735630388638218536599778013323820651516505665869081425846846134868034041539198372090619083932113195502887486211223388971712010521610758421379543543146272219619940146099625946995923296920099438583491035169806773910799975905030126252303413187261325954812782184834691375345885130235836770999909210932532684412892020338176583364868185689540397019629189949742839415194454697671382095510713801762041109652409532092457558427251810216034056289274496349707122162214466846725062099104725017604774144899234890195733326696745368251848785600383672048803542214849564145944625364490222887088350373426772661934760234945887556159106207646288772209089533020991293031743473707216467428873920863695775935500443438155440633129238743100420839297547147282939084186246610452133541214504901332552735791774162850573665194563518364019602879380266191217036041171990991806750877879498864320914262066337766179291672544815830150647119716676608483077629997924994918198744224735893151391516704605548985942544454270056057928270223432867615346319345085534784239564811879985271408868930331355059152797137267385045426344308599360537529786484964646042351075314460616788364650543940202341509133515429622548097425832058299690344260269574375666324749510621232954273562667555752848570759232700148744766060169600234777881811743676636190992662879773783760917415609448096334776807757528407428165847714803229523543878292550193307978082273959157284570312573434750344960460929799527795699177671549978360229063543975002919671425853119014508866399938152689086640040654161249864578835126900650490930723344356124025810686666527752319343654124040328061453845556990186580046963863622629892521353847322510809925215322779597467264757861702171945176798487915295129154748961347783771050888483255430729035727771685732681173432910621356613902212178119778917002483149484119652208405750086563064076303879927083909135027438710834777427365429150762162612289366151286987812934967543614089673994537657894249290651707799903074994528689766324384900516546762418187337419798986633920905611227281945648864058513133679607479928730494169702669224146844829235888374324559891376012933232815887687701739845626287017700293674691170986910978208780851507543062474633863919760099854945700224885428784156675665449610789284164579187190995628351498332285306477019522042831022542263108090518306200533722899860402503112510234447240302127929333932151949493253384988372795269554721429855662165038427297941709420008443390213991795826592123170903318956572181574872836744885507058042111086351795685081470390831023588816675539508291916658947572240413484321420016638494479847957876932950858782611614426438116463794212537016320120505941236411382833454703390528635138058754464702599683731490054505603646761768294442251045254518774902477642840992827816825348146999672903978775520906941674685799063047599567759660373686302622667686173358853057363641689520787486957376524094759237316894312144987236636695208068013215918149402584971942974585904460282961761465800743610278692479925068177663875919123319565811259472773939071333502815821632606490726910701778257100354395408674543052686869292066449764084539540330313939905149820625471022676291501482806048909896812805716816206459378196770015892292664326435071599990993301299821152268718934403180068354260964531970212729578961028219700247099156212264040486162800958475822922386689498158904155169195189841111106091929985440280865279423859177423733028034480940009456073493121942391763905138630638860949830934531033490992207759446633803824805610220146602611323057666075673243709688787327069915343964235372958640419146592591362674383140467154429003374725293132418581349192508677296424953424507702490142068738570860882831679922109466525249097655800097601466745765030215532483372595056025378666608386759286020667906893511326874524248440112757635434099824302707545729569811381080123541464498680025506843518516407506006464270261779150137280927078495729833818643831231974805194674913500096494470200771347116774618858343168374661986804442629531717405891933017522209795440848897701833542011498534168470246709932810182926434609848104483192715527944815319321399539716097461281981310702744987806567174261250101580921008321334908498136054432629950012259638499428011998618181726919182867658571136720681043787843781930629254485005068056416474231013819525271053170487038011353526581241016407204712974427672100783620555418256460951931373468726886450909389256877284213311574178987608772089151848986822843828197022728448933894812269753196137016240774945339171990571252052848024205940194593973408566982154915650379353944205136589331281908692159288978089329237412541346727332304791166894817918144203830688810146416572458851079984918553489535573214296862881654142830551993494497948762430782172656160200075667358625761197292102838844748181569258655048667377955937789481671807355813578950303602081359894538841710961976093364804671598125810640065509101654951512215531450599845445410530170109848774131662950167654074849640373011720839438798080383217526825445948158763050745280767038073419596606375194902963296048882090947759150480426712726445175366391119427631116691535635255440864513627335732913182991786297533313237302651499415992403272960681044950094739192007234686426954706579410962044536520328776291022836212099451683290517426935617933781452105058302878176751708575373270816698022012868665416982424232056732629895369427934182152134040559043384876194954036688779919663366171429412350295213903730347149413417905970054921370634651007435026323950943383116074612560526167807714756968553065044817902472628264625084495267923910013280384367796815488601607135198992988790738282716373682557525899572653087095232609078254493179562288382445588752733266969675868832209448433223237121542376585732054422223097749968825339113845119581777169940242870542551598907052356106700137308804559382925937963194856406819682878322860912277621315712405111695068079846302731940091867953619822785826094954908584040978877719234689624239428568005220495021326925033544461608983070824460459954630600973948149681171496623612304474775160541451462356056654552863427497254196865132480247720472048564522637595902404493567397242125234380306119992150076479599331961338607591042100262215373041946003754002919853409266964245963482726428594032977376236659543643896991792205923494769972939561317157879370683343494252850889967198588391080198154396081552073164000060935249148516375526655392225479697462318965347324418529117440882544994034410585013179018008705203321823594246085945024722120009626725421312146952487277036429770743162053301117380294493895344476215456652886291329243528078612575286776061348565714022032719388770005977698998939354911151113253152274665190681321466439874440560298453899050437354076271431165432178292432418648620636893688232829668161741378705059608788504072877911117710052782051400278895345532315423108897474368408654863632650717492934428711573443178524976157249346274530738624115818330798809886054089858581227946462431941278463128425266580452055459831727506571693891909675884961192087187690493592406804114129477810659482816845328119887485634853391546557249179271554388531701550167354368329565454789309295174195069749583769153136008112014226687687502403936022184953697066451168318440521136327293280798453302550910369047069599642022244300438194245800575320595487225946355062407911255570155343457374233265546726681135853533168141555942645338773653578086450022187207100717972267532330663524384326819990501589976749763209465076354453770406025451948323569806362036362135774399105008463473431299293546770773306601291329961017222596793809309851304885508752497611412804112038645097075010360324575334164697726872229897672305713678440045743691917814073574661234118656837055160981473517459218738439348034590510092584420464953838828529483598998798443822097968806931012752651130648957406559078092041702826748877079079139556039925914726678914092667208711472673816719857742109331408782607880703735098200465036988698625927020436106102899107859891187444991808000814946704730365496949980199911544133984519798616648928355517395483621884600166667537652578461001686891067037711472062768343693340675921481555835808821482928025646859143791316176468351286026149714417825238074331429911169468818980026298503721382715976592699534970149728303099047722714011674978140879900611968206345529830512403688662034304016204677101008040860852995609117978572503312010411919558382704508496442466623397979268426531882820871852052794628319663388012350128765667154607679003838789335098050756289026864426874275117451576818214614175385550395318742410885032166491998826497142679921033835092328386377866011724341840039492411182245754684070295614097558879877261930466165002221327573095191924926322334916068419300207419049661306542033502291727907478876753769187676912288735192097002146433500123515185863550928697415991566076477867459602214030090292465785196825876068071708822534072154422053698880459957447639717016607871670470142459046535314227605265728832894258439277777126218270841131150711628793177478562395013715398758842507247813857670728711855000082028433619316177267955659559266058068945608297300254879449873947155110470732400426791210223400202683948079503314395406790460558117830327809875680129423479094220635559432384969545846381159560037967469158071397866288061439163746615448896363509456561241990481856878754086805821448991521463154160272874431407569515797210781092389018245159613734844276661995725714648565883357851038814535029926044603550985015273048220145946773189987985059365203171986521523629773004038603614360132308241855683476385635971643953930585084608850906014582968019855866061344439489338048870822676040141198773337752827918464667363615953480068518495673043416952617728574676182143255502061319263347350255439269093347007132372469307873900243101106758998736576985544471528326955322391395510288382006735415216632036418877239688965592808931299964183984060583655904302941988002320865672203794464105192585677366059698793792677229017642798454690834893252639114698484437152403768225354078040554991245035324832880069796700218583114266534966662879385390032875958312560699863350924803822902870787063516875709538273755217134403981579860158234027378248500859549756635426996234829450416062085399102241845042070182204064556400691446590444265665996005481416325618864835687919010674308255919982539942349995543157101304165675212311593749573608239243538070850588218206411440642055655192179253331209111313947009483826395334763618112410821394304262004528664419687310073778859901972225918395633025948878194441951153539979937462103923447401457629368367752027713216734634005206887961808605289283094555639398084920361793869207989315856986691380546629427885414692924616300914873121473172837253650012550034381425628777021080680355728405702377916214733868695720159353738718461419796624634864040578456993219179366682706965017938810721814192823979268129817525607502060934347069125610894574878755574273134655004773295835634891675425919743461976791304854610681614898277759907357778419798989249192971456170805150239214302807543017508141171250060458091041577844159453589753393394401249408060860581818466994866677896425966323329141928886529916214579082074143069178741372855596337078575693378679647980818513568451139094685744240173825897393112479891772730065129743226619716626418312381549257317133015239452209006387935052520036618636222494643194314447775679613037440732051141648149421840714011227482233194822015754970808479435580843943669502233414683982028921036883361411637177148221425655372959186567106716887666493053435264945981497377001801890158923794481901138085094543151875463378525983014693108893551122624157739011524624607522918889137274256499092944393621090483365304165712584674188208827989331753979508433834824518296456209895021376469292892901262061856803102854896660154838279424238326235795983645449604935245686063741954153646066280615378738473278218601447497019395980545370400062058571928034960678457318650306935914791234216560983804302237810042060941111149042636613569661847979654571900546877408947613655802413940362613986384932556784676403780300761884886799270497835078967685551828244239467356332135512043362144673726661874612281035120836919493008388619052938765542973152958475969570424056306330346989646392878440027589840474895164084169685321397369644741358792889147534447709783444746700819599366934874543286980933859995144607278881281081977858760622854657032591711728540695262835716237077021982829889989337151605265511267048587552866087298145538891087280517296737293392687162420483550047441915747810785989098073092291233184792677562463949931805633543702494013138599444994977091975123607487440006314866868121635123012530018946198410721967148312899643428458314258064740189077860009234433802539427490323897367666921870870518946169915327818134854975529148140443573434562819087815975342376652038323035359042697593217362764655371721089039402211403045803330762367935037044528557346783427596999735927852908875616939246826285891134895896600034558319380837527588594611925402275691044285428292529370141433769994842175715439559903912471385397696722433806123547225916621796391698633940913606611351172510293541120844908005765204027822659912619937336404587068733577211355828700223292256557168901457237275891721709399281488026310356730553447116258091966018872546631940603816137253734468313565895917994578456667557921204369770461335785881728239860786595112296899199811491335254755078372690823558697997567331553073860933007896888940282263481950607933421208579930971231531792013041640099375955045451021422910978154351985125782964586226869403835737663903299755669767866583916326804276903750394831862801242183310433582170561919984704191453437192476030064339339506424265027464889135010129375781596921770420104740913972404494600127828333976592152704309674053172775806280630599636265792704681931620565225676626054431291111389726661180161807207553528296026064942890346893820239052395273442045451991729177023866101515530469785009147415743255245138060106647711147242511155943609211879885289803392577970882508589635823085058514983620459281779716446525948243536562058365156178461581225895926832836445537328332277639728923551048279059302685719714719031777574900588259507587762960462314260168383802198740056292880801315006051248724844451341906538951284738131551258554606007987450493509932439155103755993404689950298787400644980875258571648248015558244139623458690819735890444294642161281153220936053842070875308717067828943484200562124405774537075323026941852518016754343597417848948049450625579934281103149235500375270945099977860090488159477714033130101667898545639524350304021408950774211571422708854735101532538064540015910718632852885213544036208102756206090036248809175366420759153619804878885022543093659340872409316212685760623443944218854183517202533779286964347612530599547947394084277346988684969348198706225956090221608680104974354964396528029309690499019761564378225627395331609491283244837705709176366086997929460733254786232179148637746513168378290055182927886204204879283006442472446587536799867939394423198846298051279566480010162814007958463443667664396443391075596025933947084508703029934016351182157112786737675520867305841640422025066661885481930981959444752383716125477766279936645701301206926308973930375623302471315517591552236857746381735625659126471662372100941396280444347147656513706159247879162768382115404819547897292473436732250798603207385037059020352124605589614102620889380422213887382565118192870023124226172162657835332530755624359650420421491495589048376314128259587977958516566632415007150407800641170420560597445400632079983598746976126702321988365839834777993848965322449075589910162134867081812398117489872026348735928236485773743999745047950189961130820051821561965923000318178149595020182719185451771547818356044946244480628425002841997072399010505305966717798895030156516597465908096997936874423219104868177695065295107113260714070521855158230826793827136849160654187977254571623778903889748777808700679348728991409820710705556355933581248988714700312293073585779831273629229253331759048488498326877944320645863600745005983469604052633285253880569776491819440460251031562674349819944291943491575696482185783307538344906436348961706759272180024743588519345166440808862077955377168769405651503167852847683186002031233832456445690190671069610555768235874573681167543638464200008544480254563682098453651538889352613940810991236988780011139740503543097028645141894352450189858760115831599141840320005786881346502913047595723666322606952073499713549503802801666081441407205613567803293967492808929833411441249886014685864042495267790876557126860958456267442997439873917678584839733169142839989446105075373175845320164541455260037929533218210114323822966397208222898679926795081651063084494214141825439567124618372154497907460583257256015804930480687750645822296284323974867206404070550955166421009619842354385403193009173330374916361580983282841416101386160672711995489108596025663548010069803034793848261351335423333979847574968170927351691338208270753642219048505180265418528523167919850228158045621240845794910350025165263756847656372541176345786559598831817313917322607353986642611019820070841823698579174741753616849427119225128157274465343247542731677264360345785342750319311264883946638755756025880853247507080634492765474543448594799490803229719694455696752709120394759990523026394267049870779116427654038549449894663269112271438515138952496349035322066678323230522173097586198142569407307273394118642685801283872196073375802416957724368184417408027703669353636374194691703638671406020438646325942207882644067209394185089682386457865062417401320161149931421673235224417364070032414347384257925662048784442902810368866808891084430135627295238083404527887642717924106210062362964204426750543554037414669891172645666971888094972888307236030036152925055485797034592425484070462033406252650255326960104029358021997521434208261953845987864535329110723502361469521498867964142157753444249107426495874934487056284017711881062648140167102326803082715343109260606984447722312823458913781519029793783430550840143811099576211819158459108682144030544772174477174671246145620961382420235445145341471447508671715599450166644295195216862059787969913550245071136045261586852078824332946087340788364265726964506621786770012331615841029126004189311761886553232705360421052278330229426953448034272039094986019623452269835711583691762162783065367930938587827592475442174152417893166315011220517169925022110160174465363668284892996116628844565297324679650968460338404405203464996116744405817055654816873894743041212441326080523789149705374782934560427847521702872623861762594123627612096787818398142729136118956359928153117156147723615338375134970529231341936237777064224730778842406185461209381309990962592393145618138354109627038948836609577432424712953273173880866934763618288809614490479060451989682811522142162225754133532585396051785622831328553442277813284137789872648536026682168921697618749219102542106178219485053328746230592969348341377505273381842481890967537613706575731967015275029858551871286829267416634528713667806952567224047658870167758023204684089323830040197724863661211763809046794277692757849729244814916465191327238236452121552474514060829712675292481452908896623924402716799096731023885829230404024165433381230196935691375945156042914906003668118896053414242790702828906118980044173599038822763566502418783314517025794075074592196505783939877083192163518815746638924809893342646322327234452522594552255820034605164515042905666291139099785846084887267286241083931568442916232064422780639523306131027034165040032856284214893208695086431889662831676825230908860316172628343383026919509450982670805284042820582862023059199858433938674098074180503896769740322957061491735749027761525539512629719963931189623941166463606526199297540905761713780872201775140766415965444488295991725153519147712581640773819533547946832388792864183108504293616447391288394655997222083284305387173677763748660687772669941815048544796065006384258893164887296387838445702808026771074008679356563522365991483693155077134402231167392645069993254575450723886389088450730934081761998767360024547400111599479468911745278253083258067170874756404292655795766890721771948771055277991630402841446281811252138505445881196180608082804103332856030800813151923882569887965415058027230680187717568311408073544107441815055945029642441724397620258299117396698932101219927247490444485008531053646900152964986043246145589610226142489658089008558537048232383649350570619933112537138063940187315789078169320928889730388634555311913684839481569598601080266128885943559957441312306055353221770343612826267126538293159206334000888715294622344093533803167128819205537895646086553698511089469960483977002599702712145104720526540336445652051992372818046891681781010657694510848639863087245105896258966996576925828903942106054956633126691494570323503409385689059837076900911739536846492324997190582616555478561919503860089214855832045593151339645068933086264931061614269914736612344783541984537611126389983166348330399267622585253602835752157203863792448439669952214418169459044381834278183679715106236365441740114023630037265684344009453718606794218470099549888283359778937625176906196480612078915510142658918761531773161077467102823777794971872978359886070167256128117822854607691844096342650607571901347042569278059352998919831884570450109602551957131157142435998156290439593303837976160141009892904588835522729651432446406834266227920597220677323215136583161886727495759532541398910852009280667374538166161474644816421923804108700852808692374321503932618970332955888225066448613507433865273087923214924934945741936896184056272894713977806789662666231684724234640040206837133932019706863028405773744505406140364541240860330988255831356370844642369915194991424453006338814969283305479284355746614269239299261883290118028355826365126362490862073669447779143200468754532277502819275859717516546213739701495956266370576159708850798535306276131945950842825694075134224908719239352689113671617726930696191986110878584960693110963079143819867722334987299281757494675071733577534195180470797832187172289536453528550873400351991789677308996548563996280916034988525865864812894821299226047359184661720632577194617134611821675380185095956524087602483211769673397660821464138432902236328583959636700497713496099237200630266675995416426265448951939195775979214139570901996165472546315754350205607978285763837681411935395970008557116048259918508138384130266580213392702423616386279991885317797419547126142922055610484083221821005032866152304504511925902482635960589068493546451837614717570642798348471464078406168121160829723460171233132984108792291956200263716549520555448472621640609565745339401851321896836810399163430802993144567644948414342229985620521044563367371088781743941577163813160579984365440031784361835859491641238970223924636169120701744907166920887214342726559761154542406805906568891000132540947812471469521724271655855652724798106301771655014479779000954715752918047471465507723542623948225352061308062227353047721501079503554727154056313956961426398662358456569707990347607180804614046839466777924547030155239626326583592272967364730239431472920016515699102757143140449476841512505031891114703735819072691079625750047813115608729966481144989820941842452801876805421234078584489597572004257862472290105457171807484516352781111905236982767079367115932768394568549728742581146888753655733833124546288135934343412434361272366999893573672829272190418322709868555166608272444356372548636774046843544362395647821109439838969592749034126891367705991570687391001951356963910398137252079262034702720421021132519383481180834665438302920915275021230895010241295386026957485144926638293880995457273819922310402152215017099263981458426546678860759270625876471070879851880019744155815298902553518924140343349698895249743365588708350111676848609705906992630189672066675110592741504024261383633878356512463725684923144717725915033752253962512494610744114488542118834826673102032731916867913094497553693007874359757340671641033327504213011579169152794864081702147044767709325809695514216910391863982025537348298377118320294562755003084389312660001903256215835892052078794582153448453152526787132097646589916079762241140690714455758492502038354267759156768096796806713143161736486940545376357668422107057327759854859317119840663276623381203015038668524852645427128096258965719528929533518863364880684288747223524170570961835582436379162129285319056289569861091139306321097055640753946407072188242881792915414847068381154464990587883874176963760319281292904471202699078512776322582717176552320282004329771161211204937842580639177077808483075050076039491825323857694927926968300379030575512071698725644753195317010338373385531831687345573880871479067495247902260059441071514902061833383092241684717218172410189353118287644517721771953596680853862315643034890496562143113909234549315618094031208965740883208910581820474099079211926876337914004256469649540299578786539950946282038150044060196356165757590771041709211829754239319073267294108181672969628914835002262605097767866379516014829431154662618705302969047574931707225479472727472837235004232241743873149525291269349000429393065246581214338724416299157214009550552457889967878941868601046751386245894182943777434095047033479871129613525481296676087375868280402392794141117334145078036878890612816235095018857523316182742167070314132884399640517506523446987814093047536885549160656377714222942783745504206579192590601747652024674974832198106797971249062881929427173735057254135510044847371011786324544804795456899685061559197551207083770450465100383330618262135377820085328185360641033249251141019907121106376406804744472043661972617866804415329643018812583788430669244504977544934512455842958900694519021569647075406966248815389130223034483894369566824144000497182406741091090681063962937403614853168304422434599687123885997916957421158810677944047245228671223144141652341702036024872931252623711238939913055387825871772512324534334119269392586742688442937050171648434850925347544819309945378148011473634772543831515129019034369912140034226528304611828320533278207943450564519373109436897203063297775155708033002209928357556400322746423941842451855968744235354147002506696254482130383620918262911539670157470782192943995588140209296420447350240013181677841001910573728892749797994981313270322145082058260246658229904914276186961008393184850885538191828248093744766954208012299702263155320091553612923473755033453794307370381465862259254308799237789699351556257974972806630780794577832575260331547331651388873788923425115748935534272140102485997473203731979358708611134190391270523953615826245753198330796124918743455925040733100902003436056643161270295473868341330483490422759695187737726313594816124049199372835880074870267298245135948737878307581331129549015185041810765558110355564619784081184305089321794886245916777390645727513799405931476739596426824635461371017804818424582586085896131418998207330724238651990171507013674390492214406231058061536557624881889899738694206036555766268100168106363708570022295871938933529059990192690212787829763557473039465340381549203805398955673654241268700617860157840103771928113017329747226944452860183958177322369872803105723200384338676900120488457593198766447333218730943690623493148504527109186386399636440471781000115399394811991791473976060829575271958306603287530830408074151569877860666629297010574565330223555425378726915759676430316890673107407849432046825828109751721105035408050319677795684925864496539342993693083091715285656631933743849448128086521496338184567327464012940769120591092810966764731827271894312172649977034544905478870069605639514137094194790673493660214851244898070981966122735599993497604749463136124622065315965543254756625545432408491224048941774547946052657276887883273574551733435290237433757558306192311771528315448620979258359440852055332269217805076884424478277392858503280588527548017194352344317850700700086130838887656399370486229377233286739848952490684059317405046358959062064332259146458366314243049699030477414529146123800724428282962414415362404118326287411632680889660524763473444502782131103707745333198912513287691645245924895097038517586422992044313467647181192125448104352490844815076105028078284262152738367153379751704908342479442943758281255931718716247178548116731022156217367614733838080696884667764555761234704813115507239962812643348324572456940895106183413046288715845115719529384014355375740228787917464385369099180701971276798577887034270446622315426957174446796260095033908108662060401974645460882329732806874443281028992865866911702976494590116331573950100294346141652498206444111774661121340644006203441872442506363601082840915920960391410724651376220351319358854369221731311720022420710466576072109732536682530449273181528400444970842212136873364979641199686574002489543233909021771543188240619290293290022187838329551369302476353852967654681356464581469894550063427827061997167689470059806448039416448356041130078481111341303612877087879784581969286422901363393598020879587992465711444123312104272147932540313488463786971796818447199180633631761289071998609472454280023343366881759467255286664937316994716997764965806101012533787818394426864084206295310312474678039339474367954279852335416024906914289236972252812202381089809181658193129444014379539939605081742603793009354811166648719576726204278651443054025997466902110850049625454364803035769024678269234706054378500297067854963192801877985997266461542409600095411976846390626070939436705415155829756375506413711079046361114318574655116298435340644160902924261995402903257758305987647722275167465507264826005490141706852302242982114828115878833193353919736606509960626485309950887521441825058756951281174769628085281123038288739644504838348065149794851133104068392698195274802265098114166942154592910473558241433346183488416469937789226154108787229345515835733573145111091395721279615084443726996026154093755004303493689367243156843706786681414058374091656442259657912112113730324183651131087704543569381762825878749596926322573889278795069135785591573425058125773429180248478278165456330442367468519004010715720395921351154486587827948009642455939788161191979612573963082330660970829623595919063732642401917437607725492231621401027911430359853475857804300297260581088988092999215425558237132352990372053637273417474394453610442664942490185778456234374739154502635802739171305143217727431848729158504573760895277468144037974498411869164503658964208964385249590863586269522008361704385941815457521913619825258846672196951617383746113079221418914739481137800713653957717235272550326778896352764375144695448945771118299831464522096530033254508826078389811161002554065592501900169468631219888067697850950685921614084127963333438810958493466010638152948188165354666715588587234932686762104648695709669437698615029640819917460459219508384103677048859863893738926137834892487742829356628220604195679357218547820223244101660932897577674346388066845976484819780778614328989699853930575057378365040351133937913130759579522158708401259588114720647252802692724356265389024259239085965294548451608902053587360614320129005446339661698187166933513786292132896437875276903345169570532560287385061243561872162720819854696552390305863142880432519211292386546900049839587493503925420293577415843478712716946860606251758733727615260431237594684571713786780971138397025457946640001161611345803073695433881876156958367574530724445720056007380825251511145236513839313942438621827411839801433684973005805160248319863444478544587698786397799388131998965796328155379661545911944335470001005915175855287352519198787818464128361523285479582807758647619040192907913420182857231712264593187218032329191802725194681432203863061465261982500698856794694410949641382800046365329987838934641016259771731453620874183048048864535864784645628853468898027793253785190376754114018481803480901167169018343655552124797003548277722920749455081432183635075679863754733062017394096520260882306466112118434328841223235421095915842022323522450878271494084616152203902699013944851420290631630857811994519047641643599483310254311505210991496636637185379702781357431012502361959276355089028889861704249908395743382196202444297830331369457754702317039376946278729696130341008052234251918113839796490118837157743022967822990250258931038045735294330642156104314054458937932366465856875934305745457299329806729785672211334733259174234030262887882187617458759033032346725612088637578521562833001766159531510547880384987609544691601865000804856463870781425696653610890101792215745157269095309633235068565047905849169572480020405370365203508454418396277086693259461285269184968689091300707439348889349451450603554514242079416014933360458012086199666060319536457482337420076636899274051804937909136946805383966862345208360972671744559674403283815502652348905296465517620151136285564748001278203973989464433150288149884006881218460716343095508038289611549847710789935364780201107523907213780256313187692094694384143102509656004396125567269965633854880606254608878203992920163447938722787526489182214859932806188268312883920506211465205992021716425766043508676345021919473503517514352308347981709530516373405224299045165192499071787293993616441129771642964158053092130403560241067471700971087513579771753867789321932261358454452929846914069064651028455199128404424609541533246565152835309617790503067287381922563652380811798087288694221447260656763220323770331961155707317413583380572188436233231714762336240666255374395432681083944771577817810667756171126006409604428927850996453689560197549117145916328415652950546818172519959753413170200434044038931771567032757470498399053928518243326311586275179558525656431199776370334318356084508069052112373296143198782661154078332189556798487963754549265058996196046357096525951921326250845060996385757748350857283277150362131256416164335765863696741507758889571327923977878596936312264749822102066826987103685333986955530092987539669573721151934240747934753632915095170836920897042093644491228783472263123331177095744403162996482662311943828379448916064382656361531252017045474232536011660000293760906816896519005623908153840090880551365391053591135259262877797302846379766608073821268173760659523481142852873096199253029357472748720495682110264321488269572243508285419500916497600744823505795784624735828410525748080582448416713896378031972097834403348380907457162140070177298635403289171848708697865506557062938016798169326942772748981660832156166111177101827272989313599037270248118217757929810476401292122264313462884841430266567961891796223611479164500600532140481910980779229033172441481390694550446871145591634276712622704164136772999522906163264677402748171546985085864923852162332252785863323718681718638360029824500841486821737950021955959270140820521581816299060674504517596276222286252083799994865596168820531006988310882531144191499773784087167016987739483732898284035692298694871358209143532338909710706621919398234369822361485074175342151846246359365247737955958910508558622883871283520625780696099055942899359885045811649403218979080852173557904469721790449877189074382090500490030401120356552580013828840252206947176455507048646609099171624161129985866031092304771151646120582940230460660859123396775514424850711372215107213899309848417288924026885743364967860889608440581097741358448557870174933683451901234573266403613809990954722498137765328999091845338543746365443924062574287360650249921656995075326664633286373428364111225697740114507889454761172361296754872703288626839997518705056021842825361577260253371992418498463062093133399451885381084304262697728449429450751030395114092547439822932827899081903647611763758697272169004943653858231018696797606966414498740463979876906447164278431059465506729449508569665557030686261049959642545134495755403249224822693030943312496393187756039038831082383513731909709851586147905263436217978457351966334541472635545758989804987249716542145740387052767918263932967513014285424199336609354182687076266820529852235305339418363155164210335703325060289975500782578481338362842612246371672725352813518080644925936666706411142776100088489275334323678115098777308516441687236290110753314444036094230948426306318781039991692918599096966130085545310641826327316984646962874610751677120928619245725747868215388705603555945105358608348520097044543062213455582541378681768847321913109211149339839199114366874723959014086591113926828738128855999107057006318995376317737077768759851733623631246679552056555307506507189736474848180398963418789013853559599821026510050714969514532171249345463057901457062948436440868448458016873776249050645716083897454643782867351846126323198296979076329764850296977971324038212246997938634438287618967833997651676909464444038140027967154648570241231396519128487170473336520643596115065010379644851917947891589988248960200868988949601264115059334670899881515290769495068034825082934125268102403413177606518647842803435464556550932243812369396497885945723576698334687220388191227416551233372157270835685361982733245758839088394139320494279763590242340781201166244455175986084467251596478207209463805983642371581443778344204142274554016948649803040925614849553489879871109193349212421615918384343422329989544456143560425659005214232428235902042780487700524708167857026275904807294115052772957159918116009481708193622265500661760392512214634526758272510242965402599562923819631744109064463855998178730444101766763413723209141050054472894602845649788431752386079261126289316250905962940545981218850876176605065260795014802128744405293473978959381856069018043224365065864510587697455842460969000460539542159750202824653196374766117821064015207473292396656769621367860918824037814799328184782628789932024050704379278378989396878797258344477477047550373625692156450365837533297702487117194911299235943599671717019844817708698269027461512347400383521821717686304289821347045586519179029558577575686536651785648526380536863993240957767990867586124188722895433636435513091992192933207011915041296579828141857215573991093718097915495537296507344371052315882331956869269441544692762530919246654812213432459752903577594131218971792599042496257584212434151398458666932394948708614068545328514217020261935313382571293864849130653514768969996197851714960287940928270169337018916759576588620558203109590775172015123185837011216294394007570567101811103743446595708725893542467243493540551075191133283093977760908580645761687858857763067987022745017014462690530636515146795651391504618955647834898764439211555961455289215388437711472021074903776138550508508218459262389809923973016177888349224448629961439324693842321956016522036775840562955896272005231452017366186135337861190072856269846698773555583248495460865483924006598103289769835983458560068651444810255084398804394829789804433899082861069987925511984945389809122616373526189096652521590044294746313699422151967570491786660137431131946570129429770930577976370725966131863122408605400267362428608641232095544616964020840553832805729921194691899839475682326014843777311239770102583143767501143128603476620394937938035001981140288912352792325575778289553569242543054689157675606692893672740959464100575578571264434539210868507619353484445299137091927608960455440606722308064322622489688228603880941723193496228063418696365416053491378739618831837649165247530556931085736299258818530341631250113183834465065488412119466069499048479568687871735111843606308576136443317879687331285041305666374424534139499717359538797278677421179257387429688255276094662768764091593571865982315519510365908047442589316675516333959781785756437430161785722545482094838322944811852992763625124240723259679442468775103818509897661109705894376618261607303767193831411901786652414490038331623431053967301065913931674060559504652211587150758365674543615888867680049685358457481510497314816784273559637350206578668792673708811550678428600248267633292395102741551461655071186757123412142735873332953472305013888417695913290090298853841837164698305620336975434946844944802813296708580747212613078883820137166111450889190494108115150269061409288243301957603911399868420077212855486971507843632122968326304215717389870371077314856746526550962515633338599999784722287765461538165726389702389507350794119005012515077242400978215370135041798085866078498131432363782189103883894985056616312435049329629340443100706058371614588475320286267074163889762268748608031434962922972074868702866357835723902395792494521355325363496208999288386451876249045472282486196191289709946056175238021181925977725159921693886339602961769147825945611937881313324082776901720576690693335694032961934726129468120313684021248565603241792489629332662227662483929449056423913800082780515147986137967243528998302844421816336225770749277332821679096062237795577226174120501597294116748657549414897482495297648815855347683659509696611151753375750231605710704759084165482285697770171251416355389703360717761614649645489645533315526089932001788727336995440732889365347389490669280857336128235758039397397549493293719991561038934920583568486399818877884475034228787250944641788991427610435632925251977128931178046012841628699930260620310794116360398305476620623071296176689381279561231623939503378005692917259058531642444282579964535648080205824554016161853514513580745666779882371374565317234285819445886050222775521941593155366771739927482445383306585635515614948696831346400197627666777196752267233954360422428516245107494111341259435980761483011469211088313060523125807329376281263342629170054442729987947957698904578920508936396286704067187584608692850251018093755467294969425793377905670904013842296435597464180795004474659096067633103745390766297874531188340612386632921997566137574792727831318769840020923240250938642425146280042754641126258623945028830764315519504710360788782901089090862353420535863986794973235536850616778002482638824460893627167448546958785899890138848432921308898224716361112694852648199937539300827867881550902374368016753928908747649891355586135993890573473371582249714390276530936837171034272549913905151651318395720849930416428664332032155308350040845264859638172560792631437771756683979905593263606425834581370738058670651717132517530547633027757688183715483252707138565242825450151902430890990144699621906578912551719269743047606724783106579560098185592108109330421186121777243224047450831255484717479015619840332866694350373583282528715502388256289992208898895780370866033159733993512497800982132107212604492722855931585519812949087905639198966790273844660682009356926605343454029929741049875508147132814494247625249860311161728378838981357302741588937622592436397136282437519756874804477849817593762094704718416067721897953413860246595216251917966174474427747921745039430941334832466801589400665900224908004805300725352920393857522088152675929817884426388902668124857138773638234159493488189900853792034431995759520346631536204728694984394859450112976284443301457290235569576553379886627292633992877387356933734866310074475424535916955143977838523997307008846684976148408161223547326158257443482346760586491062837044737235450728034662178445298366947196446896568024340759760435066697991742587289726523146147630205669828492397266839702069622136682756020317079359728713591035507114975092595884897629406476457314355563229027316531616194803634729338700002956701283910886220441206703507666418673120607413225732691956060896533699947401838003416869399991928278111023848406525962333972949245432185354569461262550777743866086053255611445660913020530108040840705659976715628651770592584330825357916675233923528899174253779028557521952065546325090532578993366503691939096782077860271111451125796256727133061476621507912988432596998175598307020350109791867872945621422719474432813143960137632105901582643899603811294057259413406686101163949309594871837329358713794119616599401047565096837639203880060792621503435685609390891965031215733790248256114167259368498015904766528777217715996313347240365383013275670016677008819358633556385457625536765002458603118044071447939431583888144677169767344477672858071883449377175237210373923617373357909149111708870155123305397855220802720008008150657777443646400989043085342873336855052930391191540909893709067215722735069723106069459207535604327426435195549842955960612107458145608293581206614576039290339820979367789396551440313111214309840262449662499642888141289612178906846187401667483973609408486607651212884439898817826955193595267715817050845820499033110624223099572507925854040720806837619291612538716316476751866584463995821631593232834901172474305284332187180928513685913932629044051659365774877735070294657076746077010430578736239352153488570791139048064486609844688101046361773163534763025855186607829981563298868860694584150423467108053356132102541553886809992748292742267617764935815626502656086541276779137163469163492526656180886071904825322451099637440657811206685765024071581016609309553936737808098955100362508627389251164793665490848088911485204953102843255739136209713305157134565444002988587931144556607144799126929235412680034224920944543356007830745765265157193720896679449485724835636095645748485544184808804008196632082450031993049589686633445866103717934335900136680551123691270765245355975439506252352316244377401451262012281942334594118368784168289293946087552513841211049728153391043210248317900519839644123075161467970330099097663711233583251359401014701548289357237686456686261983492606043584526145890675577734931067752536674607131298863539243006785832265907693516113630404377146111956804614160019813098874902453286442208206511003682007485599295402207068410010122484426758854346302455654037256839292053000881695905425182244967294386992872126593914565821180613918168727568354144568600372274852792311686194072650286329261133677577206065644462143241692059766425172300109331438913255798560046725001379372072454008096474060959997630982585395349881016565070938408579550250004609872136648631595997963800532377670157324787450322433788059991959815432337144720201845117218563811857915503002472338360378901898526536734945538987330014676051273225593691848063239685462963848938253650008452571433536216467620356680368783899225465253150638557284497689700793650467087146589526702038650584269770626510074005737376877098783699200423021534435559962013164648948001920781400679242506327217940118596923558258394087974721039167124910287710880189622230873653800485980247948543762335597933697806935582583369630987775327828115417443385932667525686426298092517355136962567854199668261622165112959187172377810277972013955314281040257335306449745666527736155863634818052164198664238769760324964143163109457464683704784004249328874809103707005920550154294529885665176574701560738170189218463489218295166337665879302872028425885422680138310537654054872158253592650670791091965864493016301187068728455366265456796683327043242200760072966518589733069465210360017784708066720139856595893783297347962860104772400278687695661893302764934429438219707683549265441894720239278462829260741042974191917989915992525715881132781011946058585429714834433699273990321796727007398484915011290858693454658960340803686956508134483483591396355001568937193035013644459971162632100572324199434960401720153673562135084259074941056264214485767595673374284964017870355925381544600009153849671188864702731289678466566618722450406821734627446214157237846448911425090724668043150342147022743225956555317975447246955249865088757004770031772014659685235447566900419592206785150626638414806461005449089271439463283055133323320417310926586000671693271916851803172423625055051156943713858891012749013906727012297594959734770015819589412203435003695983734705717267833294647601282422463221795315200602607420711789291260478040227498976203426600334633403496651788893549854854931939859337436733165530556690063850463371251125100725165624211340003628083989147340401474788399304557865467149473605214233494386755024996882062389314371598639389578596082827452207034641132447662502046940466059506688738267802760995056474034870158220470329524868067955666880427500985742634660005246595692811931236791279336032044143864703949241172059524185761946106608165436295017883264622832941801809827377604792656365098096724204453000786677166779622166518271916407964859479991688844233044090187999749701352719642382232745763302820281008787496411285417123093586442988698456941527798248830088175979840103618369924766408811687967089301056329635884344522877789635275831817923215682466901678145907004016231613126339843146975936983659258865205823503198517736611609753840201823003596540355307446810671164275947614579084380227700156439854327672593232428014658727942577262877344589820497305296236092557201483715189035167615403017212334695478373135895241487153183228688065407653260019827742390887589108050226266084936130955776962538678960518541918733964015298987762663125461536239049288715999436559030922774322710756778994701045432250707195489889151396177895456382719590955740159737433201864132228044901144471783588195480420635109816288292635717568921258028274683763575511560729500323280532357742419191747188814509813445467057550152113696793598952443885559558754700219855669681914295651598616894252833972384569177534958336132311943817414504979279116860642237064279872732409358346878786678209086289499738094298214543405894270790626123800642011144228817867067305746162221518605736071131690521141275905495480362534709931598697835239856216223178585615483936301719603367962124778716420375454611127337483488300906755568255838044685883664736699892963462503501155776876281147857094359497886259187543827793504262759588284206934723223632033926315772259332543122078527718008056530894054725703141533247889473714634741452133692910645822812793875345248566793868830489352897782483426711103739752996025158798996642364693942019939736366608236883089780659183257383667844654993516930324214514366241189135157013139164323404010437442216355103340111271426595113494442241827840768426254720265977654051121036061283863821230684030457930081425349297958134208512232457116610591550924311123437590802076071418417932728528743046942997234234211607951380500563310970298385752845132734125298656796435660650262525769877330001631798248454682968988268160104570342119164996268894144112751351639057107531148971743935935523025637759566502909865529716117349328617388235330534962479026143298323086903436460947466054244281131725412819633265094082200183268839737288426866031822149438791222557908324294816012870374246865179374345646138361730851848319902465926433707688463984974278012029848556367950673716252921117871815692112633520019299954767371655060787843768559192182995377066034108014903935215467327070538059325605971310162897530599549457883547763047649378183973276512152181517496704829012590357909107933700330462603878432085376479009577436493397477707355548926784775712428414143631286175266288196534920452622448794254116525242334667034636204170544028278283334983829815620928328707557998630164974556619192696725741881106976497289695973595127007855665826472647913549753689104224357410852951512178943274698135197231380793139082712988079092213507351091780835176181678382316416469206693890461006455063342461747627970131889980611656171343460602919904229942463978796183396653742226101364328994440880199518887350062908177228110480769201509461209854103428376407145820131150172290800165369460241784506348357356893484589559810320550526202117907630639656084069680196570562460107233251508290765969609517602035429093537978682494875904192819008455491428488495810409525305961930789929562956688691510959784559204129979367765742306699516851247706232489387909330043141927403079263189218077052388694053381256942052045688109857530066747205555056112239470927245666802618922777929212148009548543508867020893724114985068640277181041625426054010453158457244420487713485953389815294010269796797883194843189049175943475796298013508231411259712643828989376193386058769177261075913738790880047325919292233483748132077667115558842743741853161050710751454269684502510750520659475748120462608927495813893176026631080370836450599724231041121270657556460394035746922704661002312892568472419575419057702436933532756052053192156990941595191530471228603882450789935597882846521994033852335532808949372005507998335776106499487674987015368050879621611652939333810881014355146073123373114821303713447756836568505507605598268526457907018069086671811707417498911820591359157304832390868078399788401674334698470138548502175142826309158320501009964735093676447866629490202898103282960485585558038818322998005381288251759197551842142769783927918693611553278735857149199321414982182834528971655857362835485507897459853231881149110398104342199362449123454883794866085972287640810359157086748764624456136687683075404876566749863315992107590155213729924009371627203311488385178949049006740947229661008667627866708702348968152958603472044592550726092581418544248937089758510337367856765879664076322023876034961556883454346132094049912019469509802150697581706939690256278765029434608660662602466273370001588746181626408294740158827039152102997978645563757826883727338414648075669391769515267638355079375102934719335165080473807989825015996129486427083159672418009934259919180536578504602089458729833449572251865811852467907752290486538675287099516112323032703650739471267105222482157139632286297100657153877598337024532831338993144064337061693060825092631306636222229439747998773802850541380647125149149752383080669915493777816809941870656329937718014264184969022286397337160413745873966851505287563301185628797174267370884781689647842552363405256848452172771473918727419675998229536897583796242945136692737807276601113550271987992609664197939034384020820525888899150337536167337937957669160501297283916200248208035934055386958556210840641680534809855546848858943204926111558938203335910054064213442859260925025077516903453779438713202563452139749329500586604021433795476593466783256130909187139024991971379636614736259422658221970072093772571366564585493142156804677638831607908263506689100712999577670346289124075074931822565579248777661724955627909120774909745511171527588875257557267230389492822207998451597898284343796352375431818739952081699490619314204890602379348041086769119193103865113319921123446687777437828541343974265049879817731948665076547687051534380598939199973924823276944989485912052156285711883065594785616115369553025366329719764158602978310665345920014881218078368968598690787258863851480285979312717048465752978469978817203202707470563952115060853462630577345706042058304221545046334408470399820407563417278768587522617483207177206800234857136028173274563254294339731545391291991847892775316174383679802375914282901544883773989335748980154381909698161478244149599874831257621704277064802025178193202753671741386015613209140376455192180105595273324072194544626332170179814008103102098298220540839040669982576198958778525721355629276045554012022480946123588720794506980091351223442110479103472139286601339603188692524799727164605926539030836739617073268395284301016485532031630046452182817021008949996849087931048117775315433761157211253513230417370897183005799633703928709381685501262543018462113261241210062512520234450110565778335525623538090150611564702523702204647536229359191748197099128463802292323699298763347679392556374348533161806331593374267498824852282784540105001200264358265960425331323030649632149577348309610847339330460347256394585432163612667258313145185187522048687078442924230351794227013211371354089296334236241779773594443886443631130861995022293732276799014212679460571025679736406521224594144842071603940934846353410814949507819227809044831549499539396016152179932959563241818018373043481748962929846219475323030897518448572715191119953830456417782093838410148377890982074150496700516981545975953173024777550468613224970708284683922045546971328532164473412752252770596287417566791516539247116172769626604074532951044732498700754420583340443489826621725258095435887397634301212773648379576530491718134602487495220453795112373454978159722662402604005650028235347853620301950416938559403763776534107279875109199061269064475488254496787713354360353006422236517868975684415884537359410877251707937127583023179042517038434733943451416031252281671928869296053048556232569659804879751332776819211154097887010954040687531090075737927137234926552031016692508712516035759918930039557187103328075691843080446973643360801054303943933804271786616004104854683692455278393399956396055951152123148437728386025547436510405643360169400946819553788833121427417267514522047455539361201857290048693437649457889298029975901589572922057697429672373290482973297209153776654872050119136655453125080885837097976927667183979562806558187923849903338340993619118797686427879185812402780530750836684304056867340628095250968054774842083928906243431489972531648147356628631211798158843531290961692435879419615092238852537471613842386197430863889231551528765092530701568069114159932401252868152024379592263596894659725306809452689054132061151431252518505587181447870695216860022750379285451783241757797220874598347494956645955614441668328732526493749694291278343747746185804992651914363841448372460534152947585597822472452884283114609102706193144119905247274008576165239793096863966852624951409207172984497271477131043427852440410606250040945513190863224050443455464048217025334819983060284490188563581325081026055102065773050734294426915504342570994197079742938307598411425271788311413503005843913439079551438598772433433979023698734194114613971233178269021690090969888499061641204384767992545683965672938685167159064328887423051303161280117618066114339890909338694930291546627804178693844400014434888506643880595660081919843691489267664877899822591956075098266660070955611881466230326191430333950454640353786971790814338545764295499911045625271132541024185922127757656360127065489295517027108930601437644386023094511355822176270759319452323278286476378044898307280795131250010481215585672900424204071356575609165429656887771551853210010102905553877747511028947730097275491443171066143287095138262827321530868321621876523643914684168548316496757205339120854482425262223147577425438295816601878109926427345696008990098834744895166506682320321561263059228933824204031204237524435914293856700047203134858483333576820516313941398929742240313800857189604520778719953800067146819311128296804180405025368006697631922200066256819474551689862452318496627665329342056202461482959520116335974319027955504600550790979294026744030547730688179521467498179635706429497806213016753706551315074629144636610189843691806138678135861652467973564575184114057235206752691265810352892916086456377659704890748928122383623764895023100080300216227461756950298587358800797100519377711226996854393186358425700646318943988444818774568134045242577532818351906037403596028196319181189734608213454512469057316600016651396378846983230534671033379840022020038860944163285439144237687343489590117770213922078626626057736755009722754888265294665039965943658361087476263574459429139683714655982322768747710811992627058516512544110034490216044707586473216795665036878450624757472594467644842779094097246445045653471080115033507012861382660545084593367672942408105790767891276954228801373645111050018931708894978598762967236743328126684241448160162454971519765930866556944932346419413656973578830075781077308245382322303395920873281126195721425999750857051647130351361058168890330574518756574878701161164502225869205948767575281195471872870748557840008008601449525575130967121979058126640769695349271683573631543723557859258172917661753411936095571136840192306459860361747422421438576241468698635275375760195832930898953661848591377041552322197015245308042527867356068895414187719027304831431902853236298097507319975859350982321273901309696477273217049788187762775154388551021073478446469357647924937127660956846185454299665713425023712473513392453446916006527504368238580785765188153610057041714887028416076254566296060539903161185793943637963519998439523120904689599974416117029932967265085427280437764441604195409056023419267595307648212670770593200314022126407723745288631879759527841158474536196066524920520778872764839711302932098716709175250749045868926542720248961920869989089439351933295431244119477559908052147308580525897591738371658394646072669354000739093182747442933131979402801682755372808304909106615845127813509881926958485133548429094930726626632469193459174501080509476526074080210273876348040983194920451390307516681206468618344468907500834233743800970765719557772662342595340053934477394618341753536720132995993222984617970464317185528690307383418694272187756357953053752171771372011869201459590569887081605225322521372384334831401254665835868531210693969697369322180062360056940851917197581289622526418822168994984121301763622961769358605336819280312713006886796548984435425927651782926389782217774070105925535707554618134004482819264303805505493476870994820406417583757500238371434759781898119332934082264383834343572707452390293157392666735062535911098499745198095824018031254015110039545905366551650889033454286095454191513426340842886611949918046760144582628262104052518022485265831869608160984241679328370080294908452164112541361760809223074680459156210963129860202204691688528883216744972218885153183741188047463103208944156265921900509001361803538165360107914130346260109578653761544660817771829650195660964786267988747411117128990113538333452383286952164077157505807174767439730877218315627175794104482242012095198546464954043749933527065292767955324440308653424363662762594465882362817927186787567883949548669169985515949643352949012172319049424056001359177145093296851982339763311418039509820387073701719222216252682829419425973169957587965322083200634281811336379132465029979935674416426369519552935280016748498292506910932159396383561573161253732389986486528041143576915085553823033906277346385825279735680896052402210020116842013638398685539869199269683801611704292544267480855012705455380837223833762068773479465857701403155036201510355785397649143780435766738337697202626997674690697073294571784791011608729905788152255572931577427151321755499444407792665577032352713640120404114964561361199393763400314309484872245704056948086500437605504977516573528634748975349233060138318354002648342107109817324199579910580606670707138048703023042070037652346399801628798444428305107882143343192153202719595006991875035328352485937946441320808578154811970888871219189416621387518227983300065039952805570758382315419607970706794714724646885097575968398037788965652952477078645337553889504099306266113446076752272018118509016416050257697150035873224134398308174704490836205195927462993947123360246915235362986258947931809929722865040901623799382742774616386971685465992587192883835674690396845807415097747398518647097932002227321158817547018941561807577351757156004764736384900089808990460079741500874366830122813689166109372690612719640962125325948158181508018355036775208665022746582090341151176368046837741432182239111628697418155476565536126126082191571105495541338796938652696426278987342270997546258228129306618896841620132130414818598069711376897836062568868045474749553468369751656604507001507914794672808041653176307533659188451240993465894329936980821462663294171788287726543189853518112607676263157617109501930786775009677807310185846010590709558363083467626057037631494206094418842375799940762105245478714635127917812069960691302711581722062175873041437827530647696218969373782477635939266895467700494585030524105654082891995733742585523541596312780594188784243816864054875094292836760184661434775491895838809337857132274159813125522810366278579382848374159292188384570495927717697725265396787637252998755150085878892503544337867947343637942025782852834158780981307281332102341604954586982387827843990908531093358213391317490439172901598080758732609421372430196914268219045817123019870293577366943949722483702538807416295900758029505561547484452893216303291936643428671055092064135953195157679090177193410001944558962818495815016604820851575562105014622291386974034961718169336633534514034036551999959210937764301205424960138215036992184005600142176782639905076750050131403209225944464504195813897365161058133489761045688545136672310114382805154825676168926608327927077399189419827004678216089924660642714371465421717901222591937425911029262819070233525035450167737876230608998160248063389681581174196381521529774142700421345072161170603286283179695374489063654042675520564255661121979885947292557389178247887697557180407679166577935885319692093055590831709803405168983060539519531740301328858011345738054258971084295157573998319192128981344704972077760869343296190800344176806161895830602004314726581894998041837432921371951638990205868714555270409628393268013726069603886313194826722954417050766512034700247904254301865494347571210302459726243053942397766124500975188174785836022950880405412930284088960676396865420969044898931685470655865340631895557122499895063289506052373974727380526468958913135755997370583104844524926431050582160260849152827479820069872126243812101916070241445998741382286814995610607270026215340505143655114415793856330303884189640689718829460400075627777757777632664452290952732141209558055707287216307995248783910792674286779403660379140545407389028288984277982537660318266288885488335379718610867372449127120949169538033290704470819637856398090028298780287564049051800998805498552139783728810901243265403162614659287867887603803188126867763203497661572285379475338754610395495404910559996863350304579710024311148260136836758037770411832451419208070357266447948378164413106041247041104447197547544945855453402031012884708263803160937391103883271420066391986612501149492116785000222938875683086310545837306881942067185257550911108487418420580452188679947197990537521974417808936742883570342357256018378071552314408892756246607343043378934381080632413592650123029509186729786175238865526306061559997819595304962951634035713087457112069198446686234523094120004029741382079262300074425018013871090947246648797316141677386504943144902712168321612143124480875175498274068960491725147242170081963060164900821285249949937305697429658049401725187927638395141965127395861437197519583113108441362700879750146466952722104171926326980423808512614172769041766567801427614556669381837280348545170726268074451451372266251219045995173406102130272398847420092694130540381498999157395403414591801247286642122859810307952011217864248721981736067106355964504715539019102770165778090875106894453208598500878900906849273481887077450925895268241899780561906030961829306431732110023233987620094101138899626454522992109246808607061708288281107530807940084535800954955696186998872072431479262329925911196195258164643344834139922164629233888212336226800970471023006982155105456388112065791935395629705730126986530541204791628960722132201060747366623788703368261169830401690648273350502174361071368701427521377489214369044193763774140163275074217719949501758419974613559589942105608584697050846885093516592500021459584850887360817137487382682916884772103470020278082715857767232493265797806857142292086731671030105751375276279042983192433053606240159361572011072600319018285966643864370672311670445102922025770525245813742625426235703806736196923352428198037883920264301936543242446833722686480228169903105855902613209398290208742135141824997750819707983086063485275965289495920571784247345272889712767483328598517301379251532286019670988047148216903137508602829003847363461092511284015882474114150273800430882884798364699730215364265969250338001965811495996358201841074025538775392084100827901035345047662982839193110316428045746351046137265243867232498063435667466043619841858722625070045871497024438214387790031002533308507559417134126950382631567117283389387239173351898128390855480711251891870780040578420497004762487358913644139899606508367175787941818100822143374258693645476638575709232786743396846712358494454866610966055373536800557208628866236943279183946979587802473951308192150424970661429006933446816412260575427044467540154785538574480534574727305870095536884919439467754969788178454516869695742692719427271641164376415293593003858877531985352074991630287108357306218591276100348053902028749607242061165102916014338023939802257007780111522975207449364559130267214780944174805446574028794703907020302408741131120667495162464445988924405857284789113081425725702731533059672843431519490896400965351212954582863059817737051669037834894374322072592797738920650501169028683715056952290609367270874834639818948576817024032777682350663607281422489713056717110936543287473985084557003156257535190632999171959086019861781494609016922676171285434879810655279005079474031006447301771131758133967749114125717612423125170301155417438295984156652392110160538845038610157012053201292525416633626237236442010411767575797059621132634953228808689129166557197863663244788216869221804959838149645200920760800379175619374559917845600278241779202654658393341936516381287654724360653461827643335572691973823470562675768749556754956231071843087705708631896141086779682091553843694636296008838080476292644879487226666763838899781420332423921942241608427254633905708525990161096861902350829203796468650828974517975883022451316189268558624475584767264024517904438447727694306254747023973695437248857185766806330529218458105539724352031390254063212689654602416683109366225974418364718218844271871660189296505824865825472853370186438755342063292918039944052190346065825789806146500826999787091988797702613112264452271984871220423704999030275128397171899208159751227488626975849949192239221787999185816305422458121635424059659757469922678103421578526220140221290410193538245898530432092992024404571981397937427645205035182512553433447991481359152407783652135249135533159937394872505438539512302630458140208067883217138456744842523912594228412186983879037804434994272262512125805277832225766191560134153660484269533315400993504322195152545418449059939535601505474501648070505020938590342207310167343098963412528190267554582513437169143660055446534960167041556396370542784312085556915709925962665590080567733318657826649302059225551272115149829882983751550540568338723329242486224684976830480574735983514154415332367051532051155589824399239394765307756735178065566007377818678307491663841438799226972650495210191014883543570759590029736093783582006718731318701026551666290629587997518654507435549761483982641681661424247057153330427058210834490310761896998662947534346106310499161872635060686220394825149806344074919771577248091767577696984313656465010912585324293539913945870687803005376565092385638169669693219982471036375356448799842861836554820182260779338232549293310625071939944191456279062643913223354607963051623578895534469993568029352504929755875967035859212187307897359051841807289730794052821215853932346290912199184750878587050299171922239046529875045721221943125432723337450301541478161825817575098301714600679112344639233197219452290158616106122038796229888764233168329815853960643678823711435826618641010498217779076534307437939791679986941543981244674158843779525488684021413578293718223564553374162594364045425797734506429069043801122517252511307556645652622960429025205687074487566725717615309156546277836649241322152390126783788378235452966555597364937530396053154968536939520868823965767373548303791817997952106695651288523210689448470573364962027833934384288062281195572151028158653491354056669207221549573752750556101286671851286866392041035558779742520368053499060420139870909717083169990001249025213406889679571972434506936926664106148265465033083298064979191500169290913839943141148715548301959641506041853603592015847570143980198815650544698526556419937969171260758108271259275928335947050010176686301590521560930328196486446555148245693073596551340084118907069563366576291441749845219185872983903627949041684582781545711506494662557315898092293778154824519795121588253956612690472917415797613692636959112772816431737465809679986214426968618041068121677630812315640213970337259467890525344425760385513103077087955036762019299558414885058614966228397932827778486382668496489045254382081587226063090217134349162802397346434617194874458503367141253003007960763828230794348370183695451907880878102648027992103572152725492240356584827883263064563143668593863694955866706085211982764224988597628338642072029674979921141567260991202236106103204875795370929812924633632569866140463029956599095245214363298757804369907948081990249240193394614436746637765599567562090290439103256311929933096553579158848684222306560515313660535788152804916411528751156731286785857458817695151281677073777749837464199621793718252758937690730172587421336544442831333462047376293937360634965253359461711519574689687425157551970138906861659405383446099973973773206256330925486487683113050790679969525911970999697827440133676594892127694457480254745130196658669308590768300497326486455059157589220647719573201140099160340068871747696840378452626579511294089645134001355091562635861595694954020199788667552634968712920726631526818054359750837546847977512631292585562466873185323054646085413507328937739805876717824877520301962561113010681561444495427365282664344538704611532563029320918324711400593737408627871662637527656633091170290095535216077400199237185226620144068257002765912414796391162731169045890281858750765531795614181058508135611196950828019976150968098946776661833319212834806380642053681216893000072014603719849277113722898544057719876263349758919239415009899152077001060357664966704617653837326637202505328552042822687340310444027064237518533882448889569935792668495797877004555701650241332145575096029549240024528258033790696886725604951212449019107901892210131664730630778736883478666055769055730147287495330356876670360182635359824925211626114853355814703109281674574737812711446973964095909845230388064958285435656405714270922266938314059542660315047975256926347951934544409245614865048045922643382407873906208523124913758904844259322418532985715522181835183344752929745641136753788670566999775271850600837426488113523883045254587315313653130913920651463107970877058967620518141161114634142246574307981366212125681298128354691374234215569385105616037299368944613593022154019834519304208075148120857215526313912527115663686245871537857588625919493784543903307265760370336174674447478039611751622864814808471166439413007489249305590408283828899798848180017819887511451355446405675213821943203764474150500750942921477534231743073993990114987056616145906102669090078783205214738603614159337207827599832826079017736717185574720458785599156076724336381309925926971240227567657923440551139517362404996838065687754487815184519961853104941303857546341096768804348475034741863591709801473543343856952260718363577464242712491241278932067600272879793008541465231146308657094313464528919508564865648922173232944486021185489140711251927695884740090776889090895542194042802631191640337128186740791390042221759527483112070553150630619969318697169798327592574296482740964110864995948109951836630244252143421873053440935978013288942998911468690646310558755005476602437430471192936206652896314913897472887050617335690530912468788722285869869812950552518775025980322408886817712081167092400776728128957560916462771851547441155045666214066618733254949456369426696456791998396398112418526830663928463750590469283847880575727610206762100111820770982950666550422766364273706573848207966914175769415410230953622497133522848841373177384664039914978467472507077608820727889351277261605021477641188082387763680136260586199688970322043972587896536033397017948146833095904541963488721143256172491429496955797212299846148143972515738159040906467705233487867279706655452577991632853705460434613809436923633813060041204086044488413614892065547986244696634688590241263254676383038182039873313906436680423448039940744372184984443685965902547354765845283453457919939209224869444059269239456272308018931390804454662304851460587240732008652487979216127336361888454868612567187101203306879117611409875060796857713776722890004458449199548664173912442867873860136206872985279733344812439621560313092358731569119477423262917808024138191558069792267919482130518592918895928411494669989342459497975882404857361084260186291411787945070318870806387544641535148701651042248396564575178038843872894368088727678255642951242560895661911839593275404084835421285794710448192322740499663071486943228434710457577592629947898704277178262762249925654013563055952344550562671111929843719107650483613343787349354155099649729709263907634294353870769290130562087089369915535940586758216269427201493677330277851316167420213208811750679243050413074928261399684166172951611537466397525827116430892034842954633936207520612235963223162311738045098328539676760233749572304606132021992209533699748057462680385151543128038785487913413855978948112906553404708161068523363764850806003677865573440633427711662512054242105169587045830130732444743246003903279657273654842011901260266017219003243577445196573319499282595684972858526284635315353163888269012233867159643304812999416191582140798303917624972773503742206464262219206396016599878873478266352006946769671692558362381962540094274429831037699100008571582307399487782214249559836481009185428115097424391372166707996164270696319685231898613167437015731643423363298803942474443738943248813368834980212573054951178771397295442423950261712752467837285328601135477687381373757781399537699971990143162267821809048193130692195930366042794002666075548791739712674434156003916471773258019110370170172089484072860922679432033979312652701475057256514488126150942559782352100446868553613819343225414836089241719303940787670055143873728593905057949145110302702685218467470219065876356563615889364676733111083356826600752862401846581532731507240604496184832050024964633961166154491175613109389999523843163163024027200537327601765183290055647984877574237368088094701706289089233379867962244814153547330317298036927146529197041282312107894323640025767815988347632454195052018624782643852144359048316101342862631548919841292404477093519157226986762642775327786326552198367196134519858665164402762450369248426589682264351962017845199902196193065481091718905148990233137541260395376153801764724404068323960865471716027924432147646164470712043070636088036301796247981575556688889565093784379010163079735944318830559184493075701913308065633391003668476750689514780724821153422812033692061368998879836667307875338776689764639228041290974861706082808611771102710981487689104218367298949465972519365627172168905029461458460306798095559625165192675464020600033682309257502840820129254355490319492526045142562514948917034489999063464178102159406357613750188422821048120172000149233599136280742272268750124833032807835140887965446394699800377219243429048656068505127934941912079256100412854613882050286557309221886372159935345246673666791297723511088336907292919223688689274960056614310089482420096499090105948306304163541870362783341090823789180830709812317806969130525866440729461502126824637715616892017023752322783575596885636842726697263570666747713918905902338917760762931354153542532320375769860033799111433955031206101375335356758694841087643518502852456535157786319140685073205213896231967297057303049852457391442635268816893156328834540929791491575723235659185343215740319660871015775754411620919815869411843086688375911084414326487197180083480581693647608855243986932331641582648086931782644088652123966096643033185273862031611796588902410751879507311390262448293970669112053454539985250481594612126925438508179301898250686915564685799399331388310425261614704449585865343478916444400380831551989936682313744623138926744559683624017489024768997685810440075911983932351383294986340863714330193649659043417866167027654910974080933143127296397031667252832391045976172828916319510976364824822903437664348465789293652122978580073596292656885901395671602948178862282819992046225792124505782646322550069173498494098988666699842077238211383835109730232064799460274233499135518717458234330918790028355662696347536656431460865607783291236366535125481385067061489390147202526422212650531043467885920568211368601354339035470775224511785755416649617022287389295117568023540396165442059194036479746693216618436176915402240721492863126097032587074766930871679983961544877937496934018897696003897585319509979774023294666727619786453083923362868722165975842578179512666183071589375687492543580055962303345730225759445167679596125425526798897662626725030066667544299267635264824188312462549883799796251067044382602925880720733633585540171523959920392968869982368510065725043325247659546368835969622633034375552634338909017046954617716436553869012256030081209980215765735154061767218406805046560326903864038558756503213911901661878707349637610120881247244737890786125899678803783109673601606914649758748312181387571039268920955072952850395649712490703037872016637071738569870687240559340777702836419736462297460756078236201978215117390081879578903282523215763339360377368428561203944155481729100795493863764447172172082269041622649721665083243748604845400067363545354796824626404481789524120399484865619522981934734941964276596855775141708014451682813117323004690252932057044744694111837829326634355262042437519825951017923055343687391825398640794797426997149048490499765899088416600448291402287933465106869725903250038180429853394551325372556437806456351133118264807154166480619289175315507967319610418031194859075484215606242624078588213915828502462760377939815548316607937537148043801471170591463517145281911314404805589260228899598988482809018903432481947864102703838557971829636081608768048906854175904110220254970758230980665979647905942143272739422815080403706643666679765244280948705874580142301649068574117820239742954142101480245046014746576342131617191768214636687571470387185200466014463270051001959535788654209220867773282927126779570425147807877872924219874333357230959363593844977438510318638288832756397073348394521271877747084530228501545444923583203117897559158283895310158616001593529829554629815447016821685101749449241442850778645156938295492585928550402122326319034867420005747562285703590563610706550901921136385833910065521128942953379332991578308908354120747300808186957718845673263060275158559663064354949501485783521573573243217097000860436963167807902003424877589739457036789958537271781586443679310044433968096681128099106222015247592017325634561014255756630623083460171663929127991353990036639931511118721930914004090720100071294747826372370721865521338962411552159097877867688423487242312343132368649763155644368450281255138676601571318672759602038972274993235779641474730567301940691302283466196834724620294677363911841794882089786793699159206089967126678169908787911138772754213305051080546814219758479179681127374394112283343294275235475942103361522734137547915669496481545278680399775917869758834510144196734625813478137613152323149876807276874609149682858777680029874953954992236392406784657726367051725649059363283473695604544861118403431736376979118398569230304903495091917729299932619456342192259830946062257058067786269420823034054330576980451466135345844589097831821307947577162967649773332107238098383605365360868968603645242708707726766796943952931405642294951675591357773215142085217974561421572081787666453608114104883892516123907292243439706269700168341969995655729091584548878484085961025298248339626018480354681831300721556871141318294603000096655111034973717277934691206596162856831480184567912117761122516619961194902183638864694181227848394658714010569466085515846006295120672079732244124734218162116819783660285908593214675279421204765627960180667903590599810915977365969055863782233126985340889858704472398466276587913608104725318633121190920893647459738246508373175691615133721791158574612890314521135579473969703150554707783402242802827229313011023514523026316265104372145672948896801124398866252017720778829010065079580326164417253644808183908008692476024802084034575976421143437267747542685156732434135233691501387690734653087180169613320377226187784683300792518136025294826448744928736790771543421821089956029319872871377846305040475538780723321831022529677801195431286219371812115665669961956918424210332531139546809507751405365517242422871675498057000737251521025393116365405178613745167760146804827615655530012908993176362724769052607626626895215563494947460508176657792958428307314337780758130963871657165553442145934233890595673845781051883337877193516550255972544611573745290728698057864492725907328189490809683085273546826421588267077494119866702927499043044676301100270206708723734294340177155311647501066626150156650188768491198308860123191601818036414371121421556709026295433882504718665701697048766969154682594892386737297732296804458923257924164713952598851136020001636746159343194169716487666454762965560105207563367742230702389475679353631419751754335617288050857881238358075822368655388148390532705175109338787024804418861572705556824441806622283750079285754636048347513005994413318086255196113972682497062274920677707290075694015836791496659901238833521261145883273525103708396955762025998636781373279270961527433174492764086868709368784734151888450195009381695380665208062902594329701740806463852824023614889265777021068435999348810548901282236363992912547482193714394757788462281906735505286904249899065686494490631476582780777307193998207860031764384047831990768026181119898457854542428434814166862954003127252496218136507123082747331459816554190567631059256125792873979581788270918425255251461576238719558345834615743314461693030656536403563203001866108252407627322232394888965400904382526539464177678147748905134813084382142933252495204126278905620046659563032672145238184594216067170766635020544338917320760490601052174907530373170408414256693135003004716076234953113128214129169809440958747056718046482243225202050498458571082882257281020917857392968753047838494629537345517750573111889456823507770492032502189148649113890869892152874592790260739347340175500475440539519622517247183935578653102009902389816032266234932487423755738540138627352360507244309961032822139562268455442180116988499562066607032940968627634606651627905579199497631182243736078620187651873200256543603211966310615234593143466601198337323751818019493185352174865079157872245554468674767272846795559478829840632113614023557900555446977919458250290167283735946050755569763059027244410689247022094457844710565700913496498716657430934486309620684478124239001884768953724949030497820288802340257873788946697726866723754215323242644331372419414482521469643964365504403400294973408115640378642232407069625722129292646657072040310495670281480395785697990197285717059932562917037857096216893899174756654571799763441683842493488086691922475383533469680003378599797633620453508977025186149364935621178438221963923414073381510796022407018690355259319714763144935959943557696049691109014844309091407712996408922795719706710165049976394997532584085983459812367872577747490216138819164310871697449690482669273378868326711197596514040609892566648786672186630083568491929630892949361150352274474612408375256412691071119131711837559387062797687618548064292497375451993911806437533424532463405535830598733395953701569123330420243757433819785866774596958867645570861067566743377954255446379737003787463852362472076173236358450222734753166801427446833933146612986380597750579760231513415875642074754434288555376675771007733877005427284421883179782262265442097212690601495614608494770110243290990374439434207513212156966845765663754476814350306002911258625016414792160085252488475458625241644335928723123905781493222183884375153886303068081366196056076311882293526710135830583795790120420238026288041710814878341893487436409301020641033798498409235766678172588926333834882512580448143289895065716110551640640733240625662175734533212642679337433877733678174471077063074598544025255897180766150656261423821677312387796695411150364812541534604497917116563729952754443526427163780700944322009572442217649280058316386537546059574345175996192656259451327260596265571933291381079717710802237385378697923664691902369612614092820516545419692443438299717511163739491237913518655554205565905032137727978980441984043829871716371454137855686446645352711944300444054153978820748417941723433979055548035285309727235044083885596695306541178542148222725421828037155006566954831971777017308777906204131794509845061718473950764801838247164453248606664559395268352725623589594684112000080658795046844970411752236997652970216317366765395268833170959287744429674369833640468489684917878690858907974139146630699332116938282494737009857411555266857311615514572847425765519988608157390673418068946760627241494702525934900017789741751571195295699360281928039706306699158018543621956161436791821601822240476887408949496135398929762497170420229188512284277857149764344018858493770608556312794808422477849308725926216999834125215050871525658613546915702816193061538202470446548334831758242360053675793152412361518856766482210763082634609389819920963625818353126526748891923387275578800164297356385174217002104386339992267562681444853417858275589043300868592856134462035435183854863231155425837520859747423778606282452037739049070376176639039648166640464235373305787159802245254869103278200010238203429705940231327709421583448773270429615060683082988036493625140221073433578686714085068524649159425121686540982727161961848858011659521384942286528287958529763594792866024210937336191381086612587742260957894415492514114313567606636459525324818631867112856075152237766081658459253981609706335856999681222582967100523640107243004266179082027518168564552526860571930754389709068367976976217748408831555061209212764300145769348633750025174474471129353487373677850014911828138295101276761921791585730564142226437460538867145610648153315045647393610788473547694067688331962204928934061780034503002312450094492331480229297682811956868098608915276935260176948204531361551142467823052495462319009576415738731297452360280377995434672499694550690812465873456630783266433106096424331736375622571054073563397370274972719381864365867500554422156964645757846360017997766605355790080771220732915474281568290856724182828737422125063245614636444386678343060035232279382092913654830234720613755960064777119651256524780958850085909090203990235818023967266541896780745736573553540346240388076104590718818308465652925844023925907945766464723689864629853277168704081543129157699731388936295301958328911951883976886588850464116687247991638047112492117500795299435482514108426021279509819057678945322711943324466074323044148642584040993682822626273449277887845197265454183413723981858193680108387193775857850333025085940247422972220600048096704783369561705478959745479274704620084812484149353073094103882098113943650411597419101943406297618237764070015436928165591355022654767895091431265097993880941109756290272393604519897877621615199373260088348267216702421232659849775254620644869166494033601759070308734696768900454211801634104131452133680773984222136547995659406615822928511405813087852932704250250260250679312301809741378264059523182761110362986542066223806120834237033101789255873505298712356034012801433397123462797888168254619683053045500511789300177329168059111269596261710169904011561884448959980934599168235955731107744858947071941852861881812530025273710866201953893264823435963522695794527883364082591965888398154102962895665557570547617144502649933509251007572116388202820197652126418294359083307240468654818459377758800266924177639805410264927816233622805764306625657983089560073344224905557186251620783258419894446466990128477428656327793914158453962791631039275169203106504035692664951811354038041672471104728628961087652191920620714306850512029700211902342867450014057661626626695166731520171014019115467910796781992907301738389066408565698350969300429100136983962587507563361665008245107023550220797487771260972133148424353277625867443750213709344988417048253155705676424652481773836218853191764662667578695140096201179142196902718900335219744144515302340773875821858581098090962308536900661396103068739249486790491104985662580178922982796029976098729217063063889468811894946539369507485938436333088449774350255392548304818974951301568582658714497248188502197597696550369264164296161298223458240527541156083890717581489007755910362616109055309719077442693727250084921038511104734012873333274666588958251336644850328195138015582189404837002800963753515712262239929156895671501601403264216304952118780084110604232167333263331848291291119521485811143385969454338745969044503782518777262121088787512164785020321017376149001148483690239889179981574335730658036351918255985459839161481344034654133416409074685380969571913311638667941867486023752475387180277240634190002849762658972234095407872390475990312745747406548479149655381883892249162232811341141054505852492540111313965197552060035737189988174573499520217080145721687325410806150282617129319184903842495808381407621337372696599749373359584243874578779349885431941580717638077884515139404753897372820589788509495277549501573527097507887925197093929000725148322772309404456230454183168648911969908297608715596881486903184554223168655577830796196431318731740500378742442431806972457359748988675457976031447956186206680255385043316613194863547040847089862570138685922822055227192567566773100467857011825250578747798799385536972007598984256671739754556255712668866342018159883801670436814176379275593101252015870858132582661395478855226765885647417441583193294552567410547677008814709672709087924284891147636243139023474882610060951737598078585391808797599661684202711023384938475106763472345579649639577625865892407441776697800922049486108403266828797576715645280765902553503573384467291897380344332205037350200450038553838592921407457200646614999787215036889134100219887536419663451342651313045823601027956733730159109563507765059696158197705036774224756217222270624445351027855652508902124090074597591478165295493283016065347107882304563308632333151566971481305172511851376734177837808017216309020814816091425730729766302247269954173738831987165024310426096567632289903816780212053737081477973833215998132771437946460001709504905166590911762956169891724070447726106346835327979788505942428344104959224651088461050079082808614413800726084549805799396253792781496945342959531663757083450769197497210545619718330869543081036664794175481513951750598817634366157805683731162208864771163046667735796150304605231409498146837368841639168258345327758019721643125896830744964729723315818543385795283073629397131070287406827451083387874011193462919775511316129979655022761665870395977697378616375378636855985146483519231299683155457740083511276692455489193187594656622371067767427126440559577110635148155015884752468268594006807627381307301074797356934798971055558108729417943476422511365082386961252430902690557186730295678207665482875112095902201416345136407626172813586099301381433305779994159851499976762085030460252862181857643370750748636542485199301952958061663211254023600974158978461965724635463973846191533154442350895047635435368248979932693449414157101257549260538422872633361382567253528532297876608686868883156385003749186352431999117163987976963520757695464985769586613160320641397808921742865657092944922451172436625400066590376258741723785804277033051186620349359576837910265429796212984607886248080027458088775313649836602237903846421022749858031662045582945690754315754486124938914415499049937118020100319810609984595567409667356772385246625281796733943881278891603271343716018843519698060213970153118795487015090651119637467826672007199326980584423234868682291988070556129130734533463943550437193072592516000754371710336400132722555003844178231403421608164475062966798880886037380446295501533000025221467924434493689036857963319351917767505753376307201746738781282469497980943414401468485204737998414446050527800453314856510987593030667746684061275541757508088755866753535282189945499863313058047788364512749497258186059772041294580345519801277813790824450669372614272597762540045079239471639973466796080307470623964430433459844143209062455452504560743549039624009329829621480677485840230020974776962870253313068657104797700004537145487825675761094934970630839546843113176857293109722672094676836863689752121946270402954669103366496033603288998550950742814623424561727645374265038582071219487306841911032655303037168094046333223480597893457151367135774545558257034564008951445703696618990447401699494404176481375168371363662002798923218174602403307267786042573834139069462157281808446662730978175345420398270766902499641076673364894289397865515413189988064724709520128221269270760990606259055756927650900430217301659617186810318143275525873853078190519851896668833389190245072487252907083507089259404234826026431200290622430741394530604589686038356100757787034854876602213899289092290291078335650759574377487233035564217223689130695707330718762671497768946483630655228998027669660248905853382408939380924716025587859386172285027734836114395985712013134627295901179904504330220220658430344525522605766901425950075031640142646103548681663537024912672092934905417794627474162314061690236954461807810690546459890573990257996369173054732204404812506403906499212015369802846955291364002163326080880418872483235467430401175062542963023883315916315360490659497479887352591492860334922921938917554348329781395559121653985895928311564099690553146317119415666742648622100773806281144638448306510953018371613288055811441667786991583976958780362018988051501000391058109390292281390948212778001079845779551843587853411195662147670118089265302186197418036330333361441404087879442775996613720755700295064792083048476174176232620740778398119783219404007709348707898843183955690515326890089633722061627434089481649488174979666161763357150363338675245569197838327311267857264847189743945232502397584350667852254990225747516058304422576251382348462073064041972463980357860039524310937787670076521630805882352570115735188480223104223371313716901001456844135344834202784942584832737414158963376942172689211642868517547503301939466817856748612136840335173986018392527131719438874963940764099978649905680413947623620134295789978106234801474802261551689633725259485554805728048041074970253536620951378520645464537135578649558774043140662593065923059805584758271806395216396151505088567200837558036525480408581797698210795440791799441845366483525305948062621343085655736156798042885890545949096260207678193813962581985716196851464975669634677275083389502333499541915863641547819881141251710236362363872539785743996437875560689742429028870745306418643800617296128063890293286908222217704984380267394590584087480467728904528578628150744533135236680511254332524382935568350980868965819905323900608229050083252268934718980701609260471576294416221137094718930113531085669289879552015057391730399827972221938404882525821176483242011319027979948924597738014000776450906188198150506857230707400974496392555354154294405063495709728195970273696275418161344151651038488815402436512131676399501931521189989597230574104900493880077349567066510786496312257472683625927437168189997436031817442485748372949656280959350157795794566702059688901755428225119605036577738671735407058451584692088541325238106057944835501317573583562528721374825062731313756736377753134273505069308953339709065535275210156458868809964300129754117413944164762342668970322041324486344892754694525653940639954819685690215823204224440881616407924136415138068501146557708604809680383078439455176821597358469294448956897684166588400290460346423415385267042888821286814445916811032624874948314699146970359409579853145130399586021749890310965517678257990621281152525753479763941820880964229311689040279441389444221169047839334234068564795770493037182541442139077590870667840266645355727090073573974760361322290063735867378982488890730342990020844632567971610316220372498956498774240015515297670561816396925686100962906416674656281120231801702898449197852353741727209627511169292382974037801304632770458061134559249002681947549420314995277278406560761787314107170239487796098111578207428777431979178289084810640585752533775356824973910688150235042390676760329316044929807259673968294718323813230239916397656465129217075738038201449039375526041051537959974305227573162148105631554546926855673865970921244925958290975461319839222563526176159163549749515943190692651792278975847678713203384328131460602885904573638121173312849712520041299698050980985597616155619639327807729160930574698988020110519409613268479285665893124016441895756106326816759856232192838573073196820213093578200449055686870130559231563388685080512055707838091181871236823527683127337461584074476779209453128094650255278972391267845569103773364985450918966614790118154004277232180642762019511287866521445421781945585515563590721050795156574775470688693712398321983123984038016644530647779152134739060395170103511706966234548831406270345302297578660358399126276176703649337451026236048786182988117679362852386949819159009197056401554238613069128393239197103245379248812753891122834088540274602725225866466641544406416826206430546993540133737861461090935595620058449377511651226254668634241963501607134868202308521649449336839058486489591674624744022071260800311462646535896671499074948289576397336107607175544170802689832203925173134878313512807738737076154591565450767023174303280946974074930477467213597521977918063962360324649077288084428222251429376635685962842927755403920446376407912047834199596723142512806527350331258159171359541814616929458708005487462553432155697588679917193648500030033300387128647382114631934963340324472667988368643477154319440324836966038032245061237745997264029080374444520453217650252157279774931062957796566763899936437463674931974423190939329460640899282784679039721813650212136400471038617849952368509713783656291532828822909388304232612764310478973748337875160477447699943025915400368789913782922236799305995986821773487782857133876915677395472249018606686274784428663935966859339631330758535385330441498503307704065220719332211289950168615389056780186516715021340595230425827028141597302499199436337371141611871111533763747103790518217365835331771310649011569504540631160257450344072269266002960214204569361368030178289878770147940254094670857707298557023848470176848347064016317167294524638448010249334505314678912001793287580909507500534773884925178283899288693234011409133367068473493790124554021183037760481229513050432822960829149990102949951741813941001558302683481822563798583270058454142245536245503278664954153102016714907087392946835029646824175194549472239674236589934424285872392232868478356351262827688144348083629613461977361146674992045917885437728047907224626121605312395704538109446692986644636470072954310744129608048793770273798283899458165446234489606772923328239090156292965882309578171879465911336954594089005844750355402566348615032983921324884988483731938696764655022627592758059691717817711810118844651014350587723566194865159871598092389404194426667850273706391168678809880876216089047988620570978492315778192217023398994966309244957926615036646023737494462458880006999500784996480206531866029811283593127710020868095398993449667093469527715241203178898623733222132795121786170471948425928076890293913354773979626859967718223787800846335044634907601192251794633563193202740960559405867564410941421704657325305356639855115569794622676459148457895221145878560865825467844791888312517021146797715245276082799921758185701293350460786491754268718560263426429669781980825282149397169874257742641597081991871613299575078617451617101844160382838341933417342502397441983906615969870719833798149284507956187541864178508921073088603049332980866372833195805568113620988537320761350854859294330020797255101847663799576814751845996977553821133836399124278442351527246677393785093595858728186735195855718509155910534305051270234806184272653063031854382775321594654595517719314465331244024114801723780050136070057373373088217917773886763914288464396696680123563915342178634084544766424725265045317100657719655278717898913523621446695349810429760475569058105980541075685368471212953403002270642684429631010162939307357089121707933579900766291621745125341377173544129761710785151081988139552653551616348975466652829659718825466150877920332119522753492581286320806161209685001763546435074005794753497977461017498765998957172509630277644699602804309028358688716247081479024749002148620757204456889786399815570555289275936531129244150540352288581656900382925836016886938053107900925211249457807629566126155444666699641472167357998704535007721318446213584974297271392743587253633354243959875314955263388270276456135915292684923825296687946235768865468639448676301273021099539875669479214211957985948813789865131777135176170271371331462417850044755297130182670999890732824763919901981535941108135565910236872757870291683153489238543113443764753577618677956811326911480927855056856836882840852715817807149358710761023366142115873379508189413870055144934310719505632654990739007714674449149975094813720320673824896401636851712421984649152107665835971003913237083875868374998234882997291598297301406983927616956172077262721755750300926197217190480968843226128323838972543736476647983168567281882584236539075948944902527265665974960175887874358933568948727326669214537928376591414050480105260782745986588307410838977030005469350344917212327341376651556356164944863877593749051234158411109886184559544913268154574813822530044599683583077740989605279323842951724579474672187439235594478404963494719544823027784943462155062074834533328079210508609992987595196755574585486267335498266564926325778099369764638443317092722216676635771740780274225930424833557608672460144146565871255733951029829516836183070494396523338585807428277263963154272168641174042467336008814944968693904671113997918560795566829485475886905030214008399505877533633057087757840121877085521307823451753773792028069733138918214874609024851841137919783355369048155173132381921731654206621756409582866495936601666615322931970695650966982017645034763348029730962260431114616243465613243125287960304546600078205833735881436001366020494893148067707334355007970468885773759604554758095396422182854823377060585182257595655337674479735275126283403527510139332238314724204815717973742317586864706824380603010026622671055253822553702275914739719606889245131600228080244561977202922520642170416843476903352408205212233421978788277686130471056195592516837897515585764057322499266463988106124537407832496818142874636916288158980241692286218462985973142957467072724788187549771990968322917265764065012566887377729382309984815938579036282608040491352544412837043033919423333288265728639357318785713288821771921376389095642662353528302243892567537278048538557422776828755838010360314268589009330984388939887143370128730384952647366564348681659207330735961955840561912353793251768378424985651184473459740821950728779593008670287570236084279772188943505841664627012387732033553734227615403000085423986563891745510991597880971053112083860226333163020308532242964764247546013366804184922216975425360350381743848647436782682202021607476297501098276373815139159185961548290286777348544546125239375418244393955505021386372707139019884829186633629892017152015401855931416294453744411003664638340073082530545318452058773894074303118220612064596748363691329929915948075825314700222533069300877537613285827303707072991080116812320616085454088478813523219134658642663237929359634064779102392212036159917770906914686266905219973258880116698434812305968559813238706903748459775200641634289113309343710522465698288243898963625256056551110574487154605450225293750397827887029623499523969962851574559291281387529118182156560003686340280077520660558482803183314166788267435922936660792165022866941377052502386848612434230434702389984664168833956302606317535038168340084432152973840695779274719964363863442310065393772253817162624687647168248016964448554904698574720403739077812249180647724342984508637461068783371562310043340179081246775572843891569302622961202427371158955916914472824204589692685398427986893532079908174791333585554055971261728386902484956482567586229835149126117182589194335371851629264058830923909135174326318531512296118041407689037065343511527382010973960679071335489178462210980414982908151930880768237669050368968016732137172801427068965730401285522457865854937479828527181454598413128025064626872186446680608620718039468930107434250881511593127110662939197206168298343326205334360349258870208396576538444754603327306031932688075262536089981162546415159192980221404218915144646577898325924782124808382532203287337794053410037216466263002303230557474220803708993644226488269866760951141849886606544115957498768553096993899043996663594737429202676426246163103529628440988026892676731349063866943637107347587554987554959194322085549989440203661993403782405918461553933879975872801729039091276253505087245624900220764410627942350580034095415453032893821597890372905175557989356871101434603002931767968360453398427168020181536337137841433678048419007548388819493701924261596199562545184774978525286936908056349199343755955584680702286380052317085678551146196338913460261833907469839903801469695536428613645210622113184113657978490560578439039572521429188161767613697419540744287443846362432027063286807864722617376917395896157437273856750620353814011938670501964593667538036943419830600909176346771611007507333215159908276051719114175759734904398198808735429823637381115784645135934344770204071270958300854592083260275189637799735600016325281842686085700128517032451786572923823287490889973534996799643410099954092189449669404221929113701650473161708495327872136515041232622149430918613006202642266561517220786514344852282210503239296857893394746185316395252950210890655748799178117651877179866769675904128704504817277108877108403695735318222499785203465946699901324883546115528171251493831028095353875761545014197164991282360616010628985197509975175598712679508484846328442957618265704305449088403322102771790336892560731290428617021605981603936243259479278899461550161660397641282704525342639310381811345553635411959034223613784076630810447574494273561053110547071202177262319447557611380848791449269509369992661486065395190772305420908913684370343170111303292396413097479660942025988939576768482177041484745846578955607996397766302901734932921298983950246217052186561707910565036324493085398719016992846666267483402101944944491752964785057985857358738955341411097413613690200369770051995784829959937020570889582892650591604386754856383909668170909477485410464420802947161977172585484353481485699561413888398945976238809459971526573350530732062866454801982049366673731509473872012249976785076485396789575841604902998408881913539480882152957491492782177038290204722182766818013463954621839749918303537568271680917075465232293797098466459556115327583894585559669402299931264465499845120976975512796836684488839804901035874132488822218346573255808410074621776403928352788972444436968468955422730943769101092662471691174258977372682193774882225286680290120947495793212806994585591647080432063362500868423290211600182429770690091613843333360759839432380459943531051816081446484143907180944816818697063689268141975117278436375947274820709098409654110523266628393982561076620197421973777284888193199525203433370541881593628330129695580805090736787602366940808788336400085393105517385170334597842442320764813216288737847643464945272722820904395703115021816388439289941069158042866541713443814753525102191333680649597851994063116981933805283447552847987462686309513156263313898267911197660539794289090281961617046448146866374835464375020204888133394204261474855557741477656843345814203612565909336732382189083082071936280570323235404398860498262448842315382880031265856676924409451491580498726869985302902616568418715411344149166182939580971554201946195241046949516067002515317590322245365564446307657486824505327790359880918593566045406222536686035688472901023052198569043856618422464466382652256640784686515423557662268878607286521928479896158377756195238398441504326012008542863176070510189360752479855728619745290448243787570265385603644002387260917906680490883471112001115463968449169271840509065406090489798071008317087455675639388261151698388472637993952524900995152312345003024053980766436356872366698859192295104354365211716376251318090287616967325191660986761132214715262774274633467996446437396304998570539783275174761775519757371060363775115863504285808356394919515994642915525729486534966331629308456500742571076350151185436218989148052563980747164032696973195195754940678918488576096403362750952575536369949807326140137620355287415125270398745789160594680020453351233896706594737804641386527729615701369967153657144504969891623857343183845989121255525002327351714782048475500985069650551498179236087605616290248277065479629269889423713415008671685181013246856121873137494681561129661816784351326689505649223921391206952102860044963086436578384410763590349195605231418661182749446124188265725295804177686117647065181235489229202158172010122095010893560451295013613588143505676042494179407414188646045818687534086034019345392528758818959032787243892825162022031620583946607189992679331237578804711908671216813095511372462732040284137561530811236079962667868022555708670221009997922602567804154841992698998088457777301217611432990842137502263893341067043431300654493513062867906487507429670327416321176783676374326068195383505551104725347907648361746596816534208597450526248764742898555834787403313535566489964800001771632008367410061957730225191218126872587942021843343449325403847517712498857251458413240317935303884406423968567624088795433279727704239110251882010835925652659523466538045684714286605079233901302776265794485944949484516193268646557083171345268599574977360887137890652378632702166678948741787581679169335908397679695004135795574983992590100360590580077745402182911544249315128312326292818263898864583173439557182166024544218069464132364838508663491043209740333004647453619931010224279887277307858596437625755137954089952614024734147471317846694964139434661779001709951393566812586374747025489206999441594154633959491520606290315063174566165291276870054049423943901592665726743835981320616152775727388424927113245382471428544472459236307952069984831822724386694977738613496355740950806619267568284260167085773799424860692308691634079411578236641543762698065657120139523733437634805071023984797602116211232841306422948299310558505204132890732955897999043287657228139508666663051009842274258457666879341941447101898903455620464042892697590781116975075101589775320197624722766703445470352639255297763465181534404505742739157739883514516431969392481741265422056777351638608019377169898215848212719288007476002428687397931331581596104048501540949246998139144836145041317303223143518259288834825934155254740747679022748124337797696960879419571255218599318794414922665769637540396345372621050478267792370934406831456667584407372997845602133400151968648135083821154592422196045359672458177971263046848435311210358093221059601879687957496539927905364200842778753980430063824985559264506565935462240800308005749216668584079316651947659798450031802872234393531752992931040352024479247955894654077037339119718699380625516193099979380716861797279822245123175621507678441696786601720151900258238938682987991310182014890757342788287003528109083530978354288097029408905489284290951821955336498984578496322195761268518438107136257077821328261385704112018419491970114734579246875930001198610033629055278203631239034747639471323442401303324253182599799113093330491923595599037575069071990123086470400127445564425753628110783690662768323810077552151769610583277123393166949342475944393106880485867873948826889581939887212449064131124648720869091018571946791254026324130546622529681208476703286040694821855145495847029038570654069213794364366733763954747340559337501811719860528502294954366901204615081741075542615463891357019780585531788225657288611092598891406130186862804315891777916310401470667348271956535833030476142602726651305543031488762450773977531926618569991341126812998357360817346015353836158645159518677696434756479920760907401031782629338759887117347009851082816985055163835219505625946282218721506064444321174607815314505043464856853917341933243596291084210477942565921601618397638271164016316765195638705730470397056623380906889729898387318489364981205240302037972516937398690301322231220751788621762953984671749529902084786228720975723862762986281780538450427314690168379784065808925242289793981659838264973636744339464875551168709731818299089943502678863941394912462029536721771372745489742413550646517687082414387243796176021767969891035234806287109148458092323822621696247528615426588192571959563855723072324726373666904659070386498285831336350821411196280895865134481968988974993354883108189532550601144799714097210646926419466785234789074158734708391904283030627152312777218539382425369404517300482999229306874384292005494001029443323180158034955484414456081272120318145012645759309786078752997856035627607497799199070241232217929414687527305511533255542217838464842065872768586186735049821360336936772731741904684543551137167876293019404684107446940258661544432241212687751057859248056031546381959560301924997389523280595929241509391522963541414300413551997686723535833217770542625556814221654363463524846646969826356902815649963388842827392556002908187473682394601747643908716712012078011479877743055086873668600499195769296123372678061934580652734806316555607004537759056513134459335605103228119487821136881179538675735301922841619888462256891910619282912049036488495553696760065093257613402571951967421224250102297799327170536439440179838508444546005927875301613378202654928723437095789504878658698812225447287732233598493514637647830091648485205800512494908502002756127722683069978446975334346715383589541268882893852042090379021452243919213005313998073717031364826409690371511972606855939097447649302993883135970727000327066073120058210121864398674959577937488276388394002122623543054072714257787475052591772996526968652501668769778002262885331916528669119291275868897037718503782807833763564928189005350400104683295894894780033732005138803752510379360808429859008727825004086991636969058677568926219536823532245526659426497004971399675595698633247598074396243703704596761387846892640007080413701237241562835622415723759590803110368316055823769672247743307965665169668154705856281570343629133123276001488909330289793848047558312681012435428171366681375978849859200147109647438840939231513839834896829877548989704040203218892219599391338267631772961272318065286597059757699829017035815686575247357205631493824635676859271776576426584085820090053316444096668240349792238530665861924045807463883175704754731878780865130732463554191126263149459809869449546835740661872570347225513542225777801054208201714447290269319503269916355125969964308613996747567400321981329243938944859618914492723636532233276101811857608929590884591129656558706983381268107369920582287146206884810871417547572580729667400676042106353585955737449185098317650716996801261145293186724274327795236259393822842065187686060241837179654829627193483114964745583532206585659055860166663625881454263488753869879926657856468314354807425950472680173291238976253127719616460920925179643529958597283820237667251861029055910003390204012028422921219703585109831655366146883627638105327052326831582513816427414249959418996867810710009266699139023469868588153583202536031101526024389718657948591324819766639917986722083058831798034096076027544333766507645551602874907877093666863483479694386683684991594808804062891729879210543002699437458520497465162269243358182835405528049939867869997638385226283861752097535565100209374733419161916612464390191171740371826080527154520241374581854551174054331904667084869375423185040131960492920144055681278366685897535776112982500852822748470964376407674284911828711247995398349844108338711430326634902094172507826135346628540174317362424835847573058756220320132679961228506771545898816054632864671377890360217498028901256433258589974601881544773833620311188337718143293200375032362246033205739403366178616737478444743835063759342891140393545951115040150628571300577556694378565434224999131077059402981105154019493240356196240033400691496707026625665318084189252215618099149225231370095043319388813617632385378894869645981262860875537984610262684961883137615259195266533510047668661579623831456019413545184207311489433387039909374322269145368152565850675894734946152046645169671254914820887273146434139765842391711393153571444678333242068566660590452522890737813946690208398863360674065393008491356653528997633598860128476879991241025738547177145689257999956426229074593287118443863502000429193414623633253440961162037880597774682252035847926034316277005115574966913473794617548853723738798768863823070308252348925683970457065562503347363499916877832598710486467084092785065877620358620483960736557455025960764395745089511021696517572797208181004961670687978152242446559598318258088685735378438714890081161771861299260398410984045646186282166463775505949286496964103585543674735558584399159500803481891082092216432875516948351405926958864165257872355294533811845268332575544141522467273742725796781703505821171437252071644419663664082632071080717905715583489295579821406628470211643981931451288938002068314937795687294888160603019473501017885841736362646312829006245904875676930622040513052709933103442544927077546326464163846002104116114303178405374336933985732933159517247985791708373526299557937731848974730547551118873464229977854241517343738637426664086003511148364773686702555620647994840907419466827262179495133283690836425111940696896697583626500670883637487746594696126014521123184358078836932559421137462690525375689883170088524262829717336010970936492254475347071760831898125989377364883438502610277679181014591605405797274625095135379234832605531509221454541113043904166478918979479125983685988561977622500439776722843972715634147719791618169823366865012532265367194175456001232236864123455018307058710786910809991841073530597603392616600942167056912688666647019644048091720976059491722436832773747432400154784780685299316195100432400836938489627958625891525346613389854366216785073114994040984988430065229794999833185932749005739091551266795957180435295631671174198665259420805190489455986857209584661676364305779662108726645742369626377886662373454713799554760586318516624774773515322423899604270120049986395865629451096361493581874641869426190117407905437819029368940649732061485198906224308504695106904315316761681990199111097965627165503347621680664629114901005730062222837332172322089952267872958562628298656033558034020755310016706740611479422382281613280184091149231384897545818553686408125551036432011689185582187595254005530860395370925771449380248790924062129288403609031737073274333943379513634569623261363718225204504403205165234120839532760227928841255891208310638489500633657855894742373511369808297386721023170619860579078203154000093547637345271938193870896636920728439604193318579293573588118067164811160202420511693738737347404938107862790991385978060039321773491983455919043978070088884923291200590648161228757354371622121075096826414196214625454841014438446703489805597949308055084441800921016486080824594246542839358287142152774230071478979704326950192752628472464446209783076280459538112254401682678941048215087793078012927361461286632646831459128378358582822104408141005412988960905189057098912680324456745335201820278176516760636963825477602702675105922413007854569775933722780315934385010560482555807937946829701916949196402896912988730494520299239150942485184312328397028643900996217611514666493516372290369981460500893897445785386127753122108948464947768646090298887466135827808639789309292123923053753577461035708907523904604105370638062084627283943869450970894823755170956810364378153670047925471646108401527511743339530014599164827376129655230609077158099117384839483505386782897885680274796460825034302160096082441963054610885203518964182311471977677189615763108230153366044917188190142636176273870907417377771187988146291423115624133816206865159608993211065664889480854789386428632572937196057992225910750987814434325012171719116533567935993390993283732679334410434365951560097001751257282781506399880499673294883712385426934599381199971352278472936304748693741286410850083792198152033309814569835396326931269410533574230611690868029825939475557908880717534982044388410876191187002530264415338415341144490753192597670795763036889483737459035811503337163973316106148500366360943179534592342994871974203252022611603021301284041603267437909433574922361409506483036541504881992931217339541989934044169409796747065170593413571613652967919953929827053475334440493033884719210950524641311386631186169408935006798670224356764923222485750108279268294436843731559903936101123439116491081006349317771039799774335928099534491666135352893335052870208451709036654806948461432327135263532126590413872982472418715544272295482752903168930049197148655414589391797556287233826212436857658413877544304355533234839742136104367060652781328217346308946636504634196127653398942234518451579177657085599821259337204139200297186800533127843355411121997748240921816373270061213288107876528525485765929045148869299267001258707532810492255676062604266530696708287937431037917251719738134666178637481744343065885499834661331055096099324366081270857905359855087590101465966628349023809308609056527431762115060473005813112152444774147712485984875224295721414485324110072311802546501133642924157486205461242864594136325162412117750286494693030859707596617133252808521700990877930686687249861386634966868010934018344551854041620333381308973171747984616796600401409375369055154997649997828596249966298407904860238214642854467550610267917939521361688694408536201879948872145897757190173975760536906744954622966923914866142592309732563816574669800602767014575292610201405692497836978732653303300924428486070511208855380323551712228658199067934232996237095268853352370479656980452279290553457607497753414178869361711363258382040281224722466935576134009853705516167069437498314251709038522315433228904758213007778650259006765436060167061481088719408583351284061302012526695064120029987543834042448096257340790119118821937825758473698397887186933319966406392315401030827916775264176255168320304482538338354976577548152644896017295451487124943547838367157546553240940084465283183011069695130450766512717546605296772154386573110532320554946478186769286973002791712633200414971404247504747582448837249605983729081326038138045812164719852349115669534526361948351872965951402990947984820689133779862977956173686666744088532197203867729932398083226558219452631672849578831931410502441093209433873961514999298848221459293097852188010988075332765955347362408078659400671288856624143311912995530304239516728033481751200332097362982959743686452021148603037527034537908825744322283232444587238617489479326819028745765056385825863024808974658047262704156485905388613969299222350038538151729367421856417950097419636030242049025965970659052395599462575197125448069598168124496781390026337127797639619866609482746460455664026795526919411474357914215209178893632699467572996196309951595887214898046416476921537747118909709441094842138897245402030722399029302026501824444795842606953183095928227334140019072745575254926169987433814689314368855162647343553082176705240384413392005454822215600951531590875478059720000849387704382460125062951303691763457202572586409144053668946404488981154166597942188814952101410799717745628733136939721722335325107144547195076759150065721530534721182632185891613214489880151152584585339234442054209973664434929613634190327085983691530563828515535060454616203446242856357544096920114693382349522429336401900917972897790968088349923496624598243919164155163474367504675236245837668279903740811033686537397864950518423338622790026412909630584993901218600599059939799826131162473665284155476326022531561638693988102142985827471522630744807926782154113354001510222063131903379154752929964909204213731597026284990816156213252945191177577031051260629323542675491049949973274582564242233938130889977172691628632937582771908913462760357897014207144008785319428848854743512398607811886979715979305340894419381725257419522728850315567034807206064001404544410251583804078473127273856066429777799435757056621402545267047535477950673320941531429127236656514724556430641190398743963578880514472206759978313232622377111462624558546073064558741411404710406487627811827821718873273187420529617870115112960981812810017710474436042782302176582432208237578774806040865496103399412109233103147261826564330137981429099120571667110704108402412235454428021525144717402906575108893980589366376909637834634345795488629240233556239198543277252509922099404484864029386292275990090666484395758815179017958302766416789077873088673004984334074074377483093894659244537660221686204791425850855409473634161754780219841237111253427816269491191920791799770596911820742497979274742704985329732713411625967423829350321893022599049341910059628158562125752653048094214829534181874022124515194566804384949415709555178508916949009707081924252605231241422861760080088037633864395027920906335695838699425866379154187773886445894242549558486791905375572072662533103676605919247737612882876652295530829141452027850050982652972251602909479856874018185581628948242562166156386478766708312347207399002115116566526490539121305398537075806345319945393434208485999483778261690802976811025185446711833753576108405162483026357366032356386504988809611630920002191353141706441728751161450762777856962091867976362377685494905198495561825652114929632651513319827463585328243188433696494026012244910418628000419736232794799282414818512709477660806839312995313189385811584842773494403341093075966699753298229146059329164105374062344867518151362474947897682314688694517520699730442104737983904265089710955184316237406775840533065261995586866184802053331394501420716917111705096866671937960254469016630368344451215307267216905105274223924001300973322761502585630114649274281221597840586050549608821687285293766829486402233707622923964461417971151785149857453285913164973151853522290625253065243339987692396399420294570417063582200074004418732758846684206965210501773471979345847894353699140903067582738069218425312499027732712601648952121007139672506823055792765844763363547636727844264874829792733219436131622728177514812132966518661125094738897086179751114491312170189591236807651381218054224741679486932416791626107803123860926665222248300115097111045612058235221368872645571442972727231947557924706409700934265975021205776353323191167164120820359804837450518459842064144018853841626197880980732992862562999536319086763066183563280124387857883494258651948756257591399326967545662721425649886592808763732553480377271010744152987384295779590966555350286963161681353778130316266298054460031715297546143705680945944318739672447719895828000527675584640591093097312294510809683868522520210885239200003337166755105623799404327342647340899529415691079837935397644930569021979376454648758380271924900012324046153289586184353900711652930051858981362173686645275721851031528318914960389550827730525004497411282095282510704728230347014322881689668585168748112631972964541092439438543526765542434205828491598246750963597299155994740219514013298435102600308991707894601372571124693861894226688706347344189708556800009370355823227457272304262693708421092809253050087261370053568198662283505624220233000415889990859285299824991133022922047670303141558010096662716350795445772616474195019904900765304755244489110017961613536871730409920981230936666591276836678564777133182496561308415362332069563361164691974540481003551806177463309750012817009730851527128355059939942153261666623869110086134757660297607734649243051542536433766159780507617466987146470536278722298335598645919534469769391832327112932389835831783134603519416583340196836662172457311573504940542951463560340124240880053362292905844459669373478649226920887348223267246089153097291002687029090442162597219445153203930099699077499867332375449922488518438713864240923118314128573401063624820521483929495864383494573849400047565886569533329850618934440503496126412863936428257171626916315556164102608655997977262312641298784561044124568500605022972713389118771941433190754641545129645870865211807636400444243430110231422686946447527791673962099111637965930829642116263620436487719046202655070502123965435974698037780441556051108888853816795480347871395764363283736872099313383645437431658750151681142013523844868560784273115497996522771489619149783849967235143206074647720382151499575316131049479064911444000067130461081905185697064790937007630746900986123725349751769449420254149110083177126079705856962639204623366597732807989454727509334025975221649518135920346404101963099854634012672212094132408149873745551150422878693341348483665348824136690949171467486486916561329349882298771544261230198320233731026033310473607662827576051122274514198394220816503894435430452291715598743165461655308171678055593839513115129018604399191945045329915038993498497162510320696159213149581587033439247721254667382044097551355467102929068272783619303685156435862291395654847658828790973152454930679302837591030924502224611634458970126153954966845570178575967530016142769492698242310243214513662069077385258010031124803932173414731699801822719671878775529831382479555783547598129422216105853725961705132593037670792642125001023976337138358706478615519059692682644632795452558201058995519421758787194229097840221924134441052803859717554576918645059762056815284716436351618969076112471132557800660455962561008906873171825198553997320082620717198755408212219611130144995764922039189704042139112707305432430790300837572209322616888809503712946941980264339051057848562943631009789224620865231543560229169360537520012250660659181084348145448069208661277793033656069986150041181200846120982600081597698072949926204841261602964197885187991725329777812268279814440243488943581902391520516542445320277746516310109509152624454502871324612314759387530126712227407926595506732737671901471029105463185028539912900682069611075126412887101127039827260161667964478079764371730360568100551451380994444939744052544872983912340913565770895825236377472140688676562918310125863658599974036798128994337754884692554301960854004954677635367268540881779732844789501498591675958964711567309443829259205973371262603213043268200345481453903101012886412780293533951510397959785884465825185099152594912406374449423044364786320542548968403582986469029891732702277584172961137726205056533381998106009198201693675207873468928671382316309154837558464602516603134814005408170763711592305064162659062616352554545036816057640879425553802429147255996170255928702018608931655579320847360014789463183825060839907415246163230332408871923026131669279997095233795115168443734557548114165723502287691354605996749672417795224083561477808078358637175134558057568351007695467650819459063473581210782522078151100602339995908603874922398258699728150076507848463224437171375194396376369240149222624925363254417238843018608124225002840712151644269406451736848179910082301106004700534302537178184807433717118936073438005803044037875142943012346338215741249455857217650918392994733833455331692019272522349660474073027790414591920405693282146351864325893941203262666060594651207050698966751926844743788382425814557913150276373955915123261684737527869683258171500461490109664763298516345253405565078059203177209206270188197080603961770679076301506251602175294694682625039727712418687787768184022729761610694862210013604196863392055573682464007909066968882933932608636354294960246349392915659732650616297355006419903785150180600249024840748397705227588673907231396439747486493506127453966926393742387017536220075128277635347828818241789834899703422747584537368145686969720264840869034938624304809942063053738855988744227054968083220400984040290435621165808965821658599209276179903071071297657051148600575304146512503357790277753454624948864100558197447203640434692539298686490698956289066625955965436201647241482553934083979199320282678271401498428958180520832629824223544014490956365948937802436135856336725561487328204647462931635410622791752795460576520935951983124307946792187260483411974404635406294393785919487389330232451041565763325705277505906528315564743178714770240230071117052315325025434404335571586067433403071871831908728294903560430154145020009926123295724924422993286751391677688766145139583083748902580924277190407361191768952791526318309876386625825116352820877379594059764301563883148707730147713128864266781407607818643340864571693851580876022428111144427359881568774614734498520294230205471049076288349236289041151745225212219994948115002291515892750023328031768425604377296285808466049602506442046599060524191871218325603136663680595514969326063934472221756807867449797454046603916030988920431008254865003412479397783964192652536424662414092922191904735267131095963718925637800521923415497621795015378931077632565352549274200035739316324466405099789886181445940103331353518188975499338680519196303821765833310929347419083765652960691889785655341785210578144641036925364628457208757704344238090119627087845291439831117687276353386593437008326764238387501782273755910221889553649731757353755155162785536443991360833364707778327743085671566660181118990729128739006241831472704775302395811304749186754642184851709569425779740930297780961993514557641986077904157295719430200624940099821556402403034763571034787921512389550397049526522511905481591875072078787730464144336889652590816758809782616980885309946097435232664385628521808673563373715947300600277683938409794928892162503463429395420437251555719594614733323896202332898947055398348511364241391418605538497465791343489575214205323769615997311536397002813817240137266537497369947523580012887737455787807880034554022549226250750624867158164411269606537760816657186514670502588684650193786947158751800615154153707954305289750190846005683387351135110364836881378217528099841889313897988882203199582628907122318077868561007461574920300001354151245468482292831148624447596422968869192246328920928066425321170610424108133707182912484241198578429820977390217711718145206377905755259227592466737690958712234744437847772411464908950940990324485700019896687464979492570939806555627074640003280381114070942754753068588401224074518949678800951923518803793777547908904777518585295803281424146112424276704403453293425030873782938610637604078419454317345135332614452025865656607839176120585760354108226716176454008730471686818541944069813747954698116693400407863461824815313356241062792501956204760831693193449506774008639179050998403223318531919515880309023314835275731699800181585853733173376206407456048510958620918009899937327763180118067544073944833250953765920334104950371109748258264150383091565688886696397151757630575677728730970157312842072179563269759503208303223173423477001990831563474189075263178016713708880759792173993575221878427887714131320516097328781160405415499459919839799034068522468393374355878249010478227024103480619235165555477858240955377636850147792160772966385211974550666157347997725829676907396198463722870880932349694088495923318604592580829480223233784325286754317351617648897575204580772595449959401174545442184598369214440237108138809303395747375050234114308838533134429149536720067431042476663761796639162392263319327581772930888345059119206040838006041785537901546886994936889193903249333518782743167889181571222453426133089161298339241676203117559097778258356367237416954459245371015552048353816100415952354395665801254027072772708626428682537386257086490801573156573742979650741632030826293693926422723377377923583101164984634410359320237888217743545041290721251246296422909204601149937324470431410851873705661273901665424668789643803876070661443363719669438389969155411562482269987659670284896914502287267581136339345353528008227913429229618125241344409465329305906961938945115557601650399220452836169655088664246126530709968468225048990634800279369353798490603235188443057808343724066809859408853770096624762180023914727522909316747390763582523598388452333787775068836493974396309081546086661032172085096453638525381850431723835089995850015400330490367642941579930784929578867903381122783376154953996402233184461932113709920457999610857890603626421586092198647020069288142267683694189885918402933470871316969902327491708331385445369832842168451049270692474727829756342618143598835513242181698510631893498259451304873434688092978552314007632292410733244682000633063875648877444798427799463714110175345405787403249329854464835513262516420677541977990697436142879689017609021847115822267528134999769788701484485099236216176668878142418126578817633227165787036715412535437236064556325087331419916095017879720798144697374611062890597790021898393991464119554391297615656824506757770610692318435501965924370792957834999960435974126326481806253225406728807844856052822198372423209178551650610569899580422045123947792982568854993433322810860167967185935214597823216849652290250510436210859418158926577293454710158161700377412467592840201175075637325900367199228041523867284735827152540296402385659024656467794033323307450300240542980621251614097012316502958282399835017024452424141659916129006284947393036157252327280419393076297527919380417743246982824189371178769797607157007934484361861544381062611147930964003374870480737136113310549181525150611045947287536615806357023103879346233923486998407175878732644080790674226434356399613253827086519248681445591212877039402929062824218807793421698186417211726799073578098612298174061772407158528568324398910444298246652322025164313757521470324760592518787945307906578810550222778617356868149742089540013622699342936548269047216298527122124831463652329272006745835808521365879457294565443079881118721820972836169339364125689371360956066514135084929351706224554099129637779207667279229463029078812118498372405780859123607474244955147022554515651501397301677880155768341738734832556696273990372647535991350681136789776718116558416654010241265213663886251112420003699893190998167467238517364023716114903032071173785510547944998793522437898421283703596741286433112656618694709288974476897932625815315143281397746614028621509163448208050867736604509022514776635591402357643338928851912577462891257192939429093791716199902952737370769470196291582591320578673661545178593910047267021545787312037895895577856377225121803412335445488279499353728916047080948376985185004712352739224703060217319576034232230700474199685144234077665567106460321327432183649767086827423050211847845809910906610411277548988603093709409558282343611997017343635341685285885478566980102076898274763424611522148960898463847273549024644006688885184333047204887536303514404835294678017690591716338461160338478557836471398544242569007659243085191052576847761835813311153910376428721943948398758793010598598489385163535844089714508781556821226749099703812114252198396550492186488759867307884532368756338894589667430713704092618373369890090530885901480571893330842821458947071187603191264236146143314267745857783556693644518096501202951681710587589169391971738020792981495648606842837325846202697238730387645564612788713803209990599882224173416177485901117265848764792934022764608787598383099826280492841810061876375032046940270632695351153196940251904599249748650101559780106738264413031686520221208869380133871146580131521331065929504109776182831441750629580841219794212617133106280684866503805604396229447665191813498845074988642238068772623958889985550059694783218865677697310931594398412934428891944008333407926480323930145384048901598841700520545885095112939834902465021036744791095992875820473304793798947051750598699070448181223293540994811757573903378138971268288638995999583026988378945270907692586314752000619211727352954359269866028093356002999315029720675983751562550724574859378305359625942591468593858853962825195340626716903284085636395152346849098517427369523002573443607398988673051567566688474769220128008006534166244298246348335563011783123585794001915390042754423678873616042332130823892513051405837322409057880642537319866377282152544922653612834060972090678597627611854338266268967356312160783716120573458361940966256061950069167796866634187593297868077315966944310737062052948140998133989999830093031152686162883064110243821380018792077275015119081973544840533982010633695210863114274974763032910292143173831813700978735430421752799993762019431898652175431900374005570431060973787690714745043621604848125247703799253355247634067140917441192395395886397458233803635411641356686945510598800436982505210799661399352225620985480448800944046530686010498707463692150012936697101240806065428704602314911920045796882759300965458501699981703418699019061651406021453499942315610672052309030245533901320222508124111965294432725334969816019109537755677382360230282666050198560620195976152717622128465848804811494571585682318732818226510015961814044349438419416163707095333016999012622889807370172866796979756347327014486316434775806025146563938627425530203159027583635099300965950585115603239083741199567404373704342254654636002805890618650927786375980414317535710531827536180356365639282650524833055187663906095735158802180061037607828478937840042256648560506664674138908049217322793100628789943230844457609361153339190773070217469728443929520405852209365159114683544051783852358234152105895416388027247984754507999078732946444294937454426023104949531007333458416799310812432809511206766654293356642366771254030197661472002346538032361084632460117515867372817691431762522612615821218066995555559562232890296599391048623692446888518203625286570944579349827779486854844341504263663146335873882633803828247771302683219568633167708662747610117265535517414530042179883490262467192045517252775717558392504697598978182738205701156168037279556501530928858154105135397234003650110827693512511921093529112899113085059098181366760235856222579636544905893079962377898511605190156737521080994535136601698911457857116650493864385706328057585719776751890603095543123116495574823072677038708749967589531397031996203499358083415538887192798944783868032041094229771176799019638123883433477251473728985754254827159717884552822884450803925757168687466958552350596332679956219310837533898744004094271699060302713093377269513129988417344693000161061870700157172505646675053971320315008468236105013138514335667991893768049773715847779947331460401148757528718232544800896490528713248560730171948338018167171112616454040723295766875214883826301598698942287052141966629985305232716003626986102502855257283714173377971685867845003360908382128219729213961793101896218294257930047817950037279314673762270410587104133683234828914771189955560880896653566034911708249318423096219438346323374241639601490975363842570382799300230063331459859253276216773382343942174703086277274506169197331148212126706457835872892287788458080494230585138097042567139531788423382374156728858413193558758263440895657453104508594103484488914077308819569566789525642430686752346829760583888344719152370128061386776682396001928614872082296926312909587795672758666865958536395594631016999370427191999314572131850227130910016931345153937598561063091332482264767874758197207631952481310871434453059517798103345203097833411917403158866479592491026313047116856207361069508926633910667129719052516731969663940834437312869660544232330580117459266209263891151466682346056351211039050554470618609959158570215271143026251588244652033381755058843976784786918705967229476448563334553112751504303069908746526464514205296097939359986949672916246635250348578005571046762750393676283398744877671147369185287187829675745047723839551984333383511578378661632919493657346763251331447476000918326129280668644745331003371990466770064121967873096429072715863374899598905319705141069257770450690704556183180426225447995949509524094299122429167231023173897066459464486840186877432899424844298646945176667911774994066874510640857903660657605391861358872125972242020037427038718279535921974055068231776704518068613078137574842454809442662702892185430760231041340711281001569777165233359190540572756834175850423734141347198952720273869592076105011956034262723378873858969073067986774145141052112328521658073867685558256132614330291573227902942005244615226528177412749523636366234573901680079234059754803807329087429172643619782072004739621255351941743619851812820333061761385818529177002308500188975950696586140683717717736850460995948552552331146090624488866494635002792810731287215361165942228293872982751999319005010147203786933178600043202455573007725246542480806444053825544326262772264063053635053191018162095322163734988827430592879514047859993614983732986378652967725934628027151766904137496447414169694154670738062439334861045022085552902435297158345785292685513981482355693567507899902730475545027871110734551378951818406034339152455026718615870230515356929741249144014516886855044587532806332527426386897615718512650660247570645877198571862653409084986488064580564547495758636484885874635040614146036905490270653594966942009449853899432651825197262203161476726738877253414429851498521006895894889341731171196765433273863536654637591731339535378065766441693851304743392899658419529329091307014175190747506287310916074110248328662647700194282263313328763857209364255695753569291004627037212952852478097868338127521021757863679531852676792732957217785174786594266182088263030394740045474006469002672801908653279706072516082979081850600734432599791514958230929856494857326060814998818720892383265088344862804101306219607780895913556484573196839355198113931899952706042361593178105450828436411350647448314758725478827199662786420909408709688505122415720423864841267266737145670474985221273833167462536585820604606709449574299894638567071761392978762340096158752388301061576457469399229528445394216483867219287687285597513792660103536316780032609538892323535984305999758601291658431024867756430789097299397083238617939865588675821231690953701038750554097886949975274478736720989504856547220865675967981724440002226695241952665896398862716409463325710313399654997934350021445600996739367014536417339209980180908582179721602809566066509014921109920988918235245078503747079286536395940298555131011236738758551335154193171632148508147988589081363052867892999196775619017130794878362952673558985572729687043796040535060222852065662863816586581550712685490790317202070228908358318090977663264772978650451623879588170249277961583292164794111703197828163638790657605310116396419822073470709504400233735636059816383483684771339908877507026359327076829777518114470822842484521389049096079466825322512462414833493901050241400831649551251131442514338993551556814175643208031093309156642419227830117738928217201013173826301512359043467770877030142790720022904137898521876552389951266079691637626691462730133161816274790616063876243873656211873828593532012638127148301109730418431897907050878295095586842239763835351689165943229102537086426904362000601400453285772612361581696027866991650506307030194099372649048767081252728019257453789176142980421608822854750472091673216977100638708401834981750489507138058920616156600423095550984817893973740742172747639968845553707752928490515798929536090040992430128657641368507960381493311134827679920112291731355141501998840600115147965797159178905987007281642647682277849260307399176214403774772530897203585951244812102462207990206929769493645970792489887041902096275772527548728437224573387398761572712455848493539132597111022253708615132517982121388589933682546367398673931433993517678451488141739467468816201609458789710085144315679789172366409891719261096655128882978781434365998257710024548205019843899298523944728792854499438330065722938908121621563201923951799396034759188925576474086551689866224108952484361627273134336130800564051224697069643024208909338231689167709413702080298580729800814615371528287432018278324746649124834718733055294771818875453880877549884011270523146630692769392919783563750973367732509921501461975824873833461118700217634300214322520520197760296071101083098400616646407826860035278127185166191395480606346327026685725668555987105342886577414406654009368314720482759140127796504167013366810388885879761369415434717925194879893747430457039640035129876254676972061887646047648000314171638013919318834716104884157457176566758233868284405982544714493592912298693104179142017014581687474207949873797137946274153102237310044259333524511969272099365972991826466323865878646935050312788593860673504820215384214586703648622961056863065916442528446234185136775804782026163229793379933523564865136853397556994203105233059792617071955998280184243812667100243740592642681192111170310121823966022370689410158305410391392139589563417203554433712183651097279811195815058560213221862441210802497821060365736086163806273091868212088722305083224820483491415176264492220417900092006776387889337628082397090351578069896013722086713791020906694819751491866971595601595629152376894613136232720742189886779373177738168713654324157317495088067943247538411356509431793277432064106737485582685091922032249325809300195044448085264997738918237460534836448139752830578139425448196867238155834449235676273629752791207328821231504164389408511312786009564576416242971110185814230501043804086150006712594668464565404897468885385120785390710078113155013376915282986576323475113433694983301570713797892172792944704038997199740060887044672030148486688620389594696611671314423657031305789235427924187202178656757854397987659081931497724907161833620111956111608527432246942361760508404340114522851001550064589517574270303671677155633096360212166030285540980069388511787822850477285378256631429005086047618624070082373898986743929371283281730897801614208639481532893193610660125352281524274708918058505430693979373876536138005372669598777189608714008481453456278947465200336283231981905553776310412965385166919799385641418437483501379722721336876893898349157465044450801291649528752760980256998210625107923283829922931847556160204904441596223853714922542643225058757506442462584571085323346108283057693947199368801829452481752837531683459429667578643506767538108335852401110045495867316107494940551115943182542447264692153104958296425405090730945345264611052702947445264473023378533419734456592137687865156027161368876812500456801149943813231553253758526790002305492380449152312182528973878137721635315417994535535531876032337712584117233870081660645859438139603469677759469766530530515454078907484907562066541681487402401148600903917977513583728013203197779213640336250649266027642361182825424752561926034567667480306584015006121925024957533559954245481579888942821018478406019357520620224358350621707796521268088446116051033873470909210125176419902391802249021091140532526061171581403747738067118674600056092839360701941559690939103938348933703052594981602874153126411844367293698522376005326767567069260728047799483342904196201044093320760135345695494985424250841874475369305884836175637068506749317619091071029997603304469326554870433245095741004639743142987193267297978865769290801726284143112583174381058881498888037579715236731080938147262333813687048115495587747723928424642849075356503817422052206189636738626854468411440484419432256675655501058649004438009541484412111032090115378594520818986265674342062826863650280479651679810772139217756757657161527230241270485355795691571665491035939306574896692466395212390264337949281966294919619240069713139147599597853103542351036512324899076637397522446836089509464802928283387955817738035438173487453275334580392825324851106195452178806780907707416969086063991886887625532168542794499495372683066292831511937532620937043733591393124373673216217741885018021849113491926511230201923603112479828799512548519190079621849910058944711892811009475441351375063166246152360251094106264037789320535946983066932122446199699988545574070246194234968860075626947314325154047126951297524130524200885711571301548525212658201979474103175941317810252883634046994691844318889559350797329110900477407882883507274985484977651960942769949355582215282945443698872996631143306429968313734170771531177418356098064649533790885019682482879855906282419673125949998050414622397585061442131638177100460409711039926616936483875390106119064008987502278844875665241853714349046819242142821514206332643503144909034177039291986800357889942611434995831927256936805042597850282622652969005412159524935614050150429304868331999265568100539338609148699660502939757829393949364316272853911410382949230663455520835399475964834955240696286099445446717993471486762558274827240010153036239959554968818991482786811933846489569530762604847829095375293111207812088926365567803859593281755846948885473074488657328241977552002528634958582721177747173859971554864530952060074385334173135978409605073775411150978181577751554937719542180479103146458315096052847873622202695895553190948151339859288272627564671042782336634710766866207474463042958601469083724783569170570723911993209205908843414468356509749522922051049341803495997327152785950761889065646426654751882695900157830722589625593769017600944896737116825721079029917623078428654810188830375563140309970285784625023977864414110176604375676195939508302756921565696399826303628947220651230238192255135663552727818137481789960950336412938063106957365083474399018473636763767450460738261842686371201454223365889135857124862165117031241833206979210699207334630073123369766200065659826737067735372022962938809994554097636502393768886598440518624603072730743515273119012431048350601904572838562417704079319025601222503559727560437182299196463134521303903479097576603649946616920266605878282321086989723132531364934752668573638895136177290895485936570543198948185173877962451493296888775788828128844364327182703579451463062070525340011176435752479174698524298677847069840392008390082744798504372344834365545686117750966481130322263359377390448776805433474912296594020401416975301076977563872941042123840073024282112607837722370210080280590513525341393821436270595487079147362852586920004555708813395199831889665915283809648394438587007539821049895886707272671776550911869277137398954921028977832684424378894192755321436516060607287786172947700930723027961710135436880542169818077018181552797567154716613636209767862023625647457896780606359432500970838767839479005778022865156850903741939761625504585589822778494097497681308630550334018547286768395676270094768992781998712016361178701836919744842340472332509130739405982381170019313438937776948913439350068488047468537619031334069862490314608095153356489943047402914946982019556471394055901765957365913864950418448979370773699890633707945952196586568948706369815771632309296451549553318821609901945074512510223157484730571361212629057008828878691735462576533337014376416795801681392642143812096514631998793812679778502961252723234824503251359522914406925134489688236601379327162856242374663164576803034775143980161160969872950650579984512173435097203023703346120059187945941148705595108494044284313720285360910785635216353259168856120285313872415449265272208455215594262818355652908649084328191182726435774353112901310184006977077983626931942384876370001444789556362762768539936328098092837376975509852773226771393088488766590623473606666138517266775522963854583180015726894293008419122044322517766836548810049257954311817102509965928355503935717630639843207480317237650163751039672644116267331368461948900863222738014038509761032899935900083443526932146893368878526513271148154316834328741068742239126441178910485465847656171292656684110282012516267029436355333339101675055225789377242048303291517396252767246363219348118747873792916356253864666760631026632671475904795417728116572916952681425682967779708157130980469619733854491672397548707360642637932830857213791077295852227114139636125924226463808213398313485526017350117660074256466615614284114866488135527485211591910168842097035167184958334797708413348393745311616547164699148795792247048597055306748211105751405321917779180280252741336387967260272820399189338031239856706049130592184105317199549402312104451962021043145728012949521247563832914964317555584174097558864483785803905724689590711617131467913253087702234314077070356473048120962821168869764081362973788295087059795635167547377328980349649266241485464472979604991175896420234993837084667152938201406133240051627806469012907800955846402606045707503187414664107150403902820077251066044216815069767137608558832342600614178432660804325921603219843115476400266053862284747928269658067831288747508676103022087762990281475284019671881097725282293570108784624136204729545931088993050270644871106468595620504381906545552250941518815010555974388742462676830745028657774194727891166158693742229425149475052483273047637480923280751869292667716370285726567493877104962471323311636895467385494070200572721435523841337451771250080804952393923575648786841583074162453783652411842691347730405654096465971523183166001666435679222065775013457156859402478929075209000843830641181439482026305248498069580370761526016712075111128307280731401108783868401143756810123062543860406679570440462073632354339788659668181848133745681032696276190222783890230350998464669846683447445099876982875244010892067134556814526518701461178187223276886150882856207861986882075476817809873951105692666439551063705117973999932717187011576241461560386440721463908535999256033794506742856257376106283316330566588945199752432634935426919674401639643150514831923555553113525064915369994361501933795139391358071910561178524533812118426856690934203814646669274658288882384883945390640115354892167862312660546102497521018414936851615306155358059514510650405559903657511663665239947658421051015459774813824296515578322254711794302944424220311225232507609499711870057111540971072827655545400186620332336043104875130744768554596123201869931201101417013687335882956852658540185933193946698179101747461768883091898553662182212250692899001251406297342474010532660153614355141043818172780668127530150986265892002910089472587896391601958953000398023799144217502149545753820953556886972967268058147099662047960933514901514280894765060161886011089867516863408721080296110647465288862968681819617443020831377373454440399492222054104752213654003609402036026448805468031922772096899708172977823530032073364202434566258282704574980857269079442177866123361597212310674355462229276677017993973066744751149772477666248221944655181332034826179134701201187176657981830819834033150140764973663441284836754044726079036657102540763426407189169104664162978827712096550192534644140221645527579250938991112070620727047569250756628771440958204731208615989268435559289648765670900715189929187874396327686452031556269907740810518269272710642075574472673728431008622815345652167618028447934034570570577172635784131666206457020497158803482656006631401332616269327992767770338989952840741323907182203104406049107728444323954595167437301799598175786611278409803935508480043283503451942365065934956546711016973440778365336825107330949213627536514363757330699833819734790611934270617457093039686462269213020267291246254010280452664899088841984488263362183090719335502874974956772003855991144928859708407928291540982477510511191215243643929204703128413960927599653903085483801971956142077777378567825939290301263744827395096969200664340130647971121693617327737625342475625669351367317923151410673831699352682275896859159127696816591586674084652756421365595108984172273394230824876557898714419904407779278221683483396896849469446044880258639178459982348264267718355225482162634665605219862773555200693345668791566608748181158959153817263542405129875872755442211258611346966518535361146562309006236997909461239122172529860720927476412094914594770007760807819824223338017879850728959472767312988460467858606777008038190636442484475778526560150509319407010246473352401735782085335382975691646650462212734488549241263709050972416938624432571466363095044424142335796141970206515910711969030768403426354968944285970908036414809666794461091089012069047110039067913428725243039999686178767665287019233626354716926652615297481445805123588219796663263841912166589392612662954758415026536544143044094974833137247896934523154605333523615558637922670231418371535352899112909326296157387093026047916999354558149802891623496497253222815172111193025755563814867277175462373137764947933998581432786084486045528091947238611621975909259419359842897550837138714435641581031691575714231347244396059941988284936440141693935175827544335636211125406408641924872555559692797441780363788353391913920208948220395827054376755134653167639428419901583052007188214011405846776226973443039775273636835538868547518245153978917346157931566843059491354247844935207060654724312733143850476335256244856082884505213079706043809233607144631082257389217302476317602639332422718972355237004815888308463684444071614456258072845270365200769348019632214616901398134889045065179696067068935832638976031090078247223242499118557077184931725572737496187023500051041649714934740952160893813660154195882224544731526105706958514312608226523329666077800584526331169693877309284521430645021491082852827782361587560257387115555178843557471341775061441665092454347551003446490725034227049576330623371234559992919430534676501616141654798720078660498427790476410859887020917961991011676793874344108039463182723629792827488838020729778855688823035511868590878785262617077450863121870616298425650786941455782469704505920384456649177025108456306555258155271577015791518046081208548201015581745156899111297584352407461680953074444606584104761517510952037344718175470330600153343868108995840536809381970887806801841045163134063005116249875021636583866739371661893806871446874603653787678645582256375290336424637948398050646762433459293141328091156979059956466076888971388217315018223497094309167192224719479978231566822233804483446341894511237220006103985272872447706507150348232268185616760901475205318491114763410472051117092090896762882239372172190254009623318047263502170394633835393474669224546771996786339708401055797336481204205526175750156510430796082981306450489826832870191403105930605166103877735073801989209828003824849784086654209377599464188941778682218827572651279514073085745514216244689315120321847144760882099227378273904340769091678596228475845596671178562979454648731826911925777093570374592205671267408391148638813615695796685875525299906139285131696300229409971863206402589630900913580901499267154821821907773695498274652262585527910856605273667495288761749876896048667198804529501923492794889094899098795941820354244638519722512089322862667497202015753555079632949002317665407842950356227531387175407245788322056188319919443235743090789607990412946879744455320333759042904301318772541780971597593737168282553031351770470404982493338566511883132091437120198859230971359298823030976623913909877999634769857160681512562137303045974159591920309926459099106096439192922233368139857448162272011612731108872360140965039698387765360948969075810598720982638460336630966690692883752823479888406365231854286061845058159411480931675640348742916003578087713591158950883045463785082379049774269208377943403250547989977047377187204478648688687126459734443532057301421750442788438222567851757892020315826992867331474581041509336381253246935691548871005865252245318648362348273302810770822121267473812891312571877811682061664870560115612780176073445432915064959666723923183625510033404937540706252611933531221740342360743424292506357792489659297415074611507196387894386739022769986724487040924875103481592862126497805438384759024925950498596825291616931436268075773362162545552655980716871987338800690705931162661056198567621428571053982049641172878766954093933163854811333519719382691715921130887886681199731470932456215573454384704487380068671889174389571499925585492690115663690979927418729151837057646847754066695261785472333973617249125083163959549834559191270792301640507097828611660616835818272114499481809870602331575409152880681677425244558731698471773126742464039583160218514808792220436805944069085350487753173955124758623955362738728313384001157469670387101308485852964378116200476085056315451873115855820501970293915302286730298552167200697420356474791469113392485328094953261587846437714630350770013968627278619534469227397704872480093643120750617658754181005158622891714423702743144782657546708106577021049316157681859016000079718317416237349506737300330484775599601818423145988378319280306565832442607745943617945795326548201971025086819037019243760291276596959075023113392889372345292732574309384773626540054102154025223624499865277642815470507625735518318143630808616733604867843956385549207944584878281808177905475521003768335672319729128588898857176478392503925484588993463425033053893386280423325717400078565902868627135496754081148350686305033812910751929779222654780637989227222571194876970560605734833195831040250111940131146072940315048762494116065183829876307545071580442364624569121184133902952446878078169449794756254951941802011185761260683727852123491030559214678280739924246915764867919679738357157342400311735166188337947943953937116804466098630228350936981620870569124296599873778228908853915957260593480915062657186912357305994527287869101640710044187129466935978668195673897401606952737983938652070306018244353694266762021788260468487987386762981041186028200602707284025705364013235166923644548768767443938625932177565594462516772358166006015710932682156369539559867131219080500898685722655333586866109864630790077203546090766933755005940472393875139066345274900557722311467811141805410367351931952100521348106441001747571458584481828053707234745424037798243823108745940122893840534396820538884449278301579648893578824448085762532300463989435757310897923367387762078223365257416376790559332426224730515716778998857219047704783077265005494508528126275874485345983649719946188859283787637891259220699792804441824189811297542879752604797297510747182808006330834218457953346284356832453225860018969539872716999326615441394874113069183071437096484339491882986553956121077211620001023414895146765771678194851331219649623818098460861770178406641939916962561108102460497210708649504821209364242581276865839793309903260014961980417972032648885643674065625778811450496195570847295934517711238925410870734865775995080477057770223451370758264422649807737573440988973463115039590709402393216833028238615113225398105590026445166411243731091140463013648866155537505802919086525399711460559982507020016514511314008277205009244534495749056811974411893591692583559280028945933745934443201724477416972661893927751216077425289285778966104965059642590873776834634141920768089869320713243644084588388014055936673061363539623390216154040042441794071378395720171136348603858750866432199827237547727583015435500172517157229771891453278600310825882176713503801146903407781922367720927499522412630711839464664737960946578455284802458942972759172998579902076661792835853011169410241305118549852815081731387319396797572366885153071837605548510794029712205521800048293069294862440008939547708007417209418213085863722899169899274788065085118984568575670403397826680709142802709051930891977571512005811941491917039804292713521758308275677937450810574920496427359108145902318174483576545982223211901099735043370133894967443364968304665304219205905970412509182152265018433660681544008176611015096685338518940647141508650875340559610698972688915423250417319801614061698522006298964907489140369259402137420130428410997517267078055354066271700889366536109222829214123196471132752574280018502378645733493460188355814860701595010892255463913961993527366388015999635908960094994433699049275764766433243710525060890561284955638664355067414227153098527916726392774923351134396745983592937576499184132561948080089834378710446184551785885404928053442232329614037080956573304487375028371310775537275895477008461668431901493238479109066969911629368917082767856573737588634971544674268250175800168351976206973249921030095788378413453298348021598756833127788699219302628093293608500930214389885148079704817635632399278900162834461934056379559915480210535748897042921700304792243397532569979136012183289904774132303209568153342870636151601868213091764184438796849621854778065898984967267394145071228257987878697830900518907234002791514693078005956092520718344899498705096046743896452077661406393994012401590421128400499682499221920657635173605768096360139928519331320048823329434225095519965027541777422596602807663243144400060228406492678865395060204084604448486150490159607858604782881882826271900808038103638972521282254288172070838345092510450533981130237896469749673847218218666723298851724823084081762925835480373878518228737327634903356706226575363078443023107119926134569422385267606711286129434552333631505173563245353485708453768220343697369529151091224646623415359261765795035305387165571640770776003660119366636630364763460746923490658648199407212973624280722014992091776925010927842502897009890293765760629995967949771510710619649259495037703060869476514966923135266822438761585538875981921377934026450363317412278238107752356787494920881436801779667996686318278838976202628967421380197922631166370903978682569728948453143566398060043566098129711133066794254240720026411504096359459529681922447587531120926029622554680557989716056448758389447574498700111556918242153104385909499667087331295902759114674255901983593090129771899926037292625392567313562032132019390272481143682164084730219587088238924946131658686789508196038006311280948805669157708675492344227589712948488283788882174752285121724761240616753279215285821565518880144909923511001061478175544400873720171740002015341966764842038666865903806325644726500881673434472197668805908943650240546301520651900671982621038635687073989238470695866506731948310784970002960172001125067931333488524418612696864850839719386890028598210128769858702862446879831630523507906710284399603086900464966622371801164495655601588160403548354943756361293719516914358760889755860753202527058457027539049996274671472226450159484739550449032737217830473859128773572849714158601081144874438915907077842837177463822536955061666867628047788862666126890029914771558760651395674880066411414899173992630335399869687715780290396513606281823134425969768323388313979698419339432672358691507092425104788083609140319620459798235368440659850507831185987207841528573186655808089566640643462315738757267920236269210614728177771167586638306675293480498113288706618424456363558610236593545710873420408749810678095734493521356173263913083034038761965307463116732940993380667609230188542512364036196419077093936794656782874118606527523740516155186670826447052096631181526417937294430250639245506221133977326682168403092417020599584698161133650696591596071855898953026080779640491541633268590202393084414563732901462312906231681476543232508643820851214790381023781186540829533987868312915412340218377413114495143848156883057118708678536297950616230305670304653829193154726064258314606923276829627955048478966823166253151523990566038036339211133836224503532770653694412346359604379624137831006502615528166257871458542362353087746543430028600909080445540436660074703653360216987977931317361787264983604849549225074447942947441218597077222180892344896341557096860825770688475468220543656587684380139478864859926253825232523859465560156851571710513735608663906063031806949212082032016588328790862997021187947657344476710594074275520963032129776165186812419706908606193311766079799299463990516266872126156675031017219602930284280452489276235948797567973190618782606219339958393525729646497015204727933803141438451416885713448302215226629575057978536467891200350550521740257077088773335218156010400951872196531838110376145679662272219677070536103814645067091911505889200586637777658026125917734900136845590565299827561435338675603681690237704912287324556790534714880148317137446764786836956182418443326624242508979880541060551094526385834782770160959414348556676344809483118485873873605143443150272118560457361423371506346797474796490264939957655467515457286229635987619612467716364282056286970474951761544826360585672046841846515053094197565844335148509392137950426435388332921550902086695819186225231356034232858174013051577879847366597432244932725169427200850331294562808240869929760744428732544088495212331095379288992151893300724076058146196277270502271239009854185800258222641305948430447175411083683290512452335136188550898999417685072565301571861241377447396030457508973182312855047571313579783786454544581039811798120838444636124005037162178564172452671436843973106907868425712462040453692967336225565595944434924874625252243045842082235216082458050597051820153625718351317496479930433838739376316010198154701690208531419457668922298560596367460013394598533336379244457214194532061289817155199563942000187968135101247157233857489656391944721791189892597212330367165375197816373073165391379939659580715513037387188294525213402359773659382871152719039170315380538922289354462666051539208859709930562264665293715283922589661665206367729462512234227305440672379658791937679676057269818536701690997703084016166090807633467002930380316826214250729563141028242648568544427428353613263913123397028288518806446661884821435472972859131435418601939544292133578478415190779049973693694631345193968463858761884894124878150762414359548158091391656945078879108396781670670423614251289969403407372424824445088594561532113816001326705977500904380681092107925103433358519353991841631905349816651126999706355715511371448386901732753235230160204050258802867914661945584961206119450544433767757667874862721333883088065909019635396457517071755559521022636757533812604420042198670068102962709901490646419460317797122970587881375464412859787677236616601392787425907406912343736045421930176082480969247964645314718938582409107725162984542046539883339624981785212821582558085659647923723713300000742236809460737758322222220829255333023774209023709071005294443780007321164733456360918906748521262264270407021447812481559415143025937156813542356287385673709634117180815178851819730934058628488317241663624273198892160927877108855346844827429977741846751298478164482730463198081110085290929565695573565671311011260760007857013383558162321580660362371293151905778113103207459960759455144227364691389497033881322707871964335591431854182057001684799208340328491485332515200479285853102833706223613681067892628833545331321317026614327875167009208207989818844126574620201375333956709339976327869222608902662017531908164417411172262682546417061629327634866457081844070240036579911825707066690077832597394642580870900165746927269511980384638886106197427155998269621662476054999756688362652945280835587732707890228237706531186318609298175347439803969429042633687653906577316108054814203172615238483947953783713706806621439427580694898616096801602525384746415094250074787424246182325089775613088331154265817980373667240012428633002252796314175015856368403690433708338090901011236156806304466212312103417240720741681055541112121026400321786519386767909685658513496957283976237023025054610997951347129096680434624892076585683532297131451528796561572327291071740799878286690402780027983046090617643532964234352612552349093241029382279107157722342243726856121398585564683133349333259059708652988176268433097790837568695145525693323978957717937435028686921091946251107601835569864247171101297473005529489273939236188421396242391728683367512117120898659602229245617380041144740506677845003410140032208346826998868990716229354472263491032252480007992953210853887326174905908776218277607077291159911784628796276974240419904638405047933483830083764984932829841167456028190760059173855743394964098351279180875157510699222426688053535923667855057676633580808674622139445242936902343420462128452551419082707449898296960178664596403368586734469780722301826988053614454609388023592679308940732583293460074976176619518040598794763379394963769972476505234013421194503643048081492256440907633839820497150656116434026706331635158699445399006745142629937658882328008340111879943322363355275907242341298781388982963060320373263187425075356732599963677676359327606378674325199338970038691188322495804341272897512883704732818673657407252629374740790866802236199783761173002835906924535251476746247955986374000906454487810949979787279807189814454827951795363740266816176152423212356483133073182839146697370541751130620497001857104402063340384183695961918521706903442110150740466840264555281735665634249005654242316456146248286760296226634210672860685030866903666499688813507919282497953342672805480018485182329703767355434742051556636622815466725942760364095635909173672870390048800588290026981058755933136589418655297601350952202447955103751156541110401707269759405852627729831369261331386470889739952611918466384018915748250077327819488908279598449662205962893242133080010040774005148728118952296767084961850506616139250803899850291038300083418263108151295665054144677372739893674739204002131985386922796914519079635005954890081690113545923282625470873520078715192609446244450832795529020724625830772167417911463764273591468196673338689951902857534423814590872589704570098549442362204183606517586548931175554664022685831013471753661041150801652034474038121488162529971715837971435960493320171266558261609177967799186151536533090096752792813551136372525202876902979957439692688510107980629627880902739332999628281724569191276510027585585818897819899316196075680822480252041124656601166352260338502761697168018708337721168121901526562362758482370762236063270381221099940034718865110605923942760932795261809459168062154865158467283691915713060083545323447188642767530077807147985360479866102328508249782052614096867676426746199807979638576176485142465899407247721062328650127016272057407809929920776626054631421560491708808807061268053132539059503506020787141523909117722598465394024055420254527952036858905605012269326590733209630961972988979927139524034630195858366576562273081428596914549587210946121992474189760612510354282826410308747536156780452073884487765919147507743997840974718338353952607460372182210247942886336651463228692510918777649858389261200156235343033787595533976177157385467706730667656926504580024560218435832862518808311812594697599704042373888206984930867882838961775974066709273478355170521633446956453526038314351479270610590773200872335890988049570738573878947421279983623832044918116235847200455518933508761660731483077938277203454785068107870197810347633512212411508350358483591488408313335652682399385363336653078630187969607385360144251222177020310516664770880820902290388000496075493958645822033775837522563323467328905291124081261748312900099392336397549070300897650082031787104604924339607662182388302103935644807632517759629825182041585209414724533512702258875574315266940730831334288669602645620683671160504050258038824654855664171359385866665504936910729695185653023219495237167143300722799414273240964482161403681345679945319198898481193704982758158913073032097276680543656364213500338843733136367829735037814253332227302912441830455859021006649368170298815954641110203898175582277082363117920977803617170981661693937490709147632282703637311290271508535659709766091710155727483314623278204877754011580807763151440319627198306557805290181648566529889001078511826667408182910872093477551528277077365962586913184400459028610735411061176082472813600080478433415026725189920288354279385822644602346800192027652562883682145721974692600117713718596407019127902736677903821008722567376790093306360613201972992473132387972775580941875949022932977918701930705701851253856906154792365503596581069944715309268935294785648398077100311197492350616374409850897239924971945489742393986044156829117603448307245942580675191683190514278368599579686839104059958890708207992940040595107018877514855575176060591686023477462098320467243258657079288684026903670546132163747429829808889371790138508992087042400069975075304101014530165192842650603490551184121569505413758330688478374269062446029612180384599957962951062885758034723756109084469654458415584132233918127675880373399856666749178605588262223950556290523701859261156895340453614854829071620734559195422316562734762279332824944598569214518010219443865779759392632136911657723620826380296131937078040828394060419427331130007214340715978308374314316589718921526526363981476002909748473949292420445842938995941906090939594448215679855881558178229601733664555410714808481850560503443271603424877472545794551167229085753538600333703159564523679231882379331638292566680782225598409976374179582239236914286168386959148804112410209171334451339034946705677661243612360710646721104941909097997080928986578518023886793097625995209676440381990831687470521513249663119921608711389497969570515224843579417411225929471376073785010258048144398345870676288821933026810644369986427522346645394635450243871175916189331728212163854856812341977877805347290426951187492356657616487102569942478637046616150491119265257582715465359593797493154614966256535843690257865207857298667989817174660575067821543715084420922565329490430112707155824530629670884260775932286565433347147403097514106374819240317951936459671525065532628962550218891285670478348033391794389142633994565441742344417021984342207616584909600781317401885666889248433328943247814092004875332677516137654990614871887753567970981944274330225192908157705126017921173841272572783645955405746350389009999366448485661354660910679886419275302363028077435835327970438786802655488380889122770970772105860638605655150313709645306883382349480982635009581855535569017889195605468437329707643264436799525188622375800481791585587472090657793259846852173037335788992029134726786018886020015658204982151794318569129956518048264130421674653048689508274504624511052137792000537057253866536622266169676368588595873638934024891937050073456636929733640507136355670472214856747093250765131923660989431273463339299840210628553061738025122425179837083375084833785865791962296903203604695320757454015499899910317143225018942668759268827117145698594652614114623261102184779723782405033229654478374578629946874136019078213854508166243549019879318077476528067474965401863914094794910412194522081602878849109630264958898193112333083765846828654595750747802671397373886965564650350067817823740317863965483118672173648063510460967526996425105862377613242964473757893135130978766720080641731152353312386039246658088907368480850886035785212921421453350585259796941528140921537011556099835286105209246433735021328407742880793218257073478268772133077631685979527224771067143840505737388516572754482343678361350835691771905821327142745519436658926419688734115483391842222088790379367306871844790543563225281920590543343555243092529491011364489645448032476017862030104705702550755099693040820642003057794661546731970387233409919785209664049818383015197941500750304760693350253970903966774123166112828304171188330980322605819684209438533404871909343052043630594590531376549790967042284106586015661737098480026700369751274249614899832138213464481984213897927507721696525912321315223959726456555478145193927433310591068365517432221252463497037179333492371780027706775321461655588483804748720866240015079355397702099286322395640452660592860636327627834818971786991749202309897635069496705544371528622037036673937939474091627928015638755665507519192750639438465396341726735227426273116242068111682590561809212533658034061778327985587651312703041590309778009424980041717473689007498369644007184313710304130239546962577819085509598544161225513001434465985457137600201834586881295267797967231699727512865057153068046450886227115279367030656794821371839776689895026825189444417584390487812259339267676873888818777400856787499358062924443138627381220659143467129608263855533038496501452094766679992010681480439385253837733705575769296772505770305217572476740586606648898371000493548310004166822430780940179344561162484197412683717002832671084919118404390827074037238971606668090368619208290992596963479672787744264696979602915257559785928206189705490046027234868534663389156409444055160740967062474153369052225307813350847203016183360813618363638108055007853980164666538623411123952166464881328926192793902900912889280837837624070854682695310128974908481356887188808849739684107822740217106141310317725162976651077886505924136804108410783828779640029717143818046548512024091114723183952487881463874037036275384349789389647289115134478696632004617700657106295167890707571480173810822521268250488581894068857034812859781944572599684101661782223197293637590081492885984209462084069828954746270138219629681485186297463115090118260522386271482571047203503980698943969903830003369377255749885424334921186862411122291971737579176570500547924186488109131395063927431339089692826778129271265942033836775114723595584084839365318540425022425131218723207225434374636152588931793604278776607365928624691931720903142371335339301811842896681382562347520036565599998589269381045922940870143876012689123314170165945297649897636678042463234482444377098243907782363912527597926619578564719684859879286302894355516333339894147401003092197096163723161430365040410129901337413761403280141907598487671017036393064176083699666335305199034759052136784757404617779368614022718110325067366450868602252932945100271315267903055885264759781538315455314359933374708595234304122016698232824465531171467509432594436677303165435809983430536706676327608012073251609974926932201042778349940537423915039674454734613787159572026742629901125140724869915806719580386243191225975909621028614289703150684112483768983600672238841600592236072772149589072825345305056384214614614039565720418482921558694335669871456061004597908131787106410412969258926641198585602660828689470858539147946243016594168364176195587411067507872380550641139182331728849735989272020968381552723291234589877828763893198414494014612503798533366438528622355458191477911991698907164569436112617252829300678843299403669199787684457919562650033528146261548495371990954257028532262961698196817557291483023309351790590442495408809461314990393555291778708904261991826183156445116754716840822380280533823658307093787224660491260337909766788092821425191064744502224512055097684638944276373128285485676961131456439129602834040339213478901255123142640286532972313816706249184329038906756083763302496853226893649811678088475197100208572275429062072193123038030664142217786232292265645603141556391914026694083441268956199250041931969879731733878736262956962531473757264462848959701020812297963568077761362654263016745636133153673177363188133095092059885006868714649811902916116871866466240306113105290732751741102726570805395618718944014271591330156360608246101568436092646386623015490109887038209257736934505273597839755845245201339725515494090593227508977117483892022985983716777919943549358668274743395036706674789720961559463297092827440823966945606108416829721416334508279845904008309601418441369649661293779831783785590616888156808182677132389451974494656896585443995687495476873099226399925979651502515438839590095746089003122275881655365408739450189237631316990291162726786834548611272589522838696976956519577100750140654608494379848435737199792005086589442973840842272534140194480126566370882360067541938551411727292266638764731821139338140447946690479811330906243746890228294394694048295040011483302330923379510666353765233156466399003000493873832751533216148387896366731167132511257052780853626516461825612854945975965190544743878388597286975611421590164436189398977812835687366542048879985713890217149381062184720597539573677515679568685683662396211819373637296219714657198788777638375252275375469295643322440226832708469490647689499679802716558408313027236683697318921590133242369802813598965791096118787965806599200179886399867033083225952596743000921132269933876700057334036685130064664577644888478741027944275188452967111638833417681375103433746867396568915369306878091528915912096333282370316274643100178263822551013898748272353329391823570251456571511349088801037305523580339964139831200083629346129225103079099384088520248541295046317535117441307178953767796246114063998182306697445326563210272189502161055844127573511705931496898287464387951952679724661992358930160975510552362115636198807632441977342649545545508203080788992193316945793714929118326344870672626981530478324481160177666905896850305412863955185267173258432855861100099932704049835898661810102122292143220884499703238949378949372888114251687287173006017443422877743865522645737955704529426688684877962594575751352151813449526309652374946886222858398181343468631756606806911417323039121522903401973735501076019403318777964794019259867993347932618924296783302303495816979747608675139566313088370255544910062553651226458288377146523602838552578751812234553257011797976812803875364237653395838800422438240641927892374752036502140644351700324272268726652273132665105417534594517262329955834577987582549631176595320733528714738780018348544842250707124980027540409470254837420889182236489911689502540555130278260473541089130511737888998892297360749763487692266017248193901581175148876105851209249769155737906161743131872775797595838332453219082568538610488992385999507889214252115969566886368508571865573686283322846943179652637080713920807119183974373652868573019371347626299317388646431922795746109923815545613008163651065720597434416921900245491695285714593329963979632323097485726735498636101045138236497696276105962857072812952225110650545707773765486255652268926513386946939640564317773140871703724364109144586345568164369925416522465639632958253570708561510847254725857970503317488679598132904446693776309463367817663135300260281303183291780022733056207381129283490184871880895339315830791583678745590014741357290258843538185988394687627712442580386835460947294538829150892102587940594108441538143398230765031623434800106860258305345793684352402436669802678207862440113281030142801698639854546807519998400961558289210357828024757123113763841000438141685521203068713994025261243136145007490040117059850622646724100955875197430517337701521094355276763004163422057080828870955218480453377515114691665763181541965610639742614409881685137981992948301143942827819482558041524069860300778697341127582136500981702130487814555940502064440683211981105411733080142167245729875250275353055931214093484509663156052981922973309533099829352667867851658068433471940045810038854996912635837741260383502453979709517795053884100109914029091300290581960933380983060812611544557925172663165952108632755053809655374464634303316116733648983992220774837913058456880391295430029969701461152887392832068451561157590690937380288719037197619790190919925759927406453534311092835050009140356970572111045815664202562752425820414064111304603858979061324498324880147138253985172639152980949469035021859830399480004600263846589805953525276961431502330346621986226655667585772226665120231107337833168744819473816033221608109546672892114376847207990744108675567620948624665958917800570422693837859621390863306711049626141329986783874415366758515694483737186207994842350580951069007830433605146690770365495731582370837278850881764620786867494887536322917393940651006606389705451526251250269463856643454984022934284799688684636548514822742199113473906775163159232296052570141481636650675973411398929796928367804621401232445969905694649693519050333889600327901329408699557083736794321066783257211687236371588171521464503938689022372690569691314394529651335340536545660491184796029655878001890368099206455415436628845335587101941176217176798328163282826638824181266628315706082617796682881284027139542526830661406181920262957873772992857624819173111470662826967909574821947596198747719876452373502569692403272046721084202381681804431452202076914686130773687729433632700260885697906546804378223195424053079970299133748405257835701477719803808449878015285642434622828157960682378783169685498719773011601501435006846212061940632546474896039280280995870656146290315487785763394978730492213973244523822553400564584036393142727312783356231438400645212470924718466621441449947573255697783194747088669634422834450727630255800120008528371310134076483054134544422261274935896435140851295717494655372172476501798031512957257392425020598628926236361188479778358163746913802502856947236159133408325940883540731871945713901269836885348463451379983290774792411272498976090537254102337641646287283699350056330373032596162096097676527237883609454164233940327942524021850830780540989624830790775591939535125716537827105823256773680518884047201683865779388310191456074629139956263531072165712518096009389368153801710667336041728185223315146542134084648148986633781007063389019111890899319971064133358603722281152768249219553663562148238378955418100357458307519843304873016595170629719955476237178536258646383139075612569651551718756495310563353687170811262745190246156995611943769084699961364707471354319018009075681500018898961570495810420969257130133689234045946337783352578325208208329790755410041664114015528906298597499144129122888373749735721558599838082650989606295211637489895643017817810179433664506704163515690678486488682288535320330166785852956029864947420019379187895750128523887244630928915634502709930293278933964942363839143557670061706076675195189951389054941232592437220873453197488467844748068421601114717351185357878215284288651100628420060829437592914290006379055120610059740985745357837282044942881346473613133263398885548033762347827339625063841408184043207168339412397664878692485326424526379753816591017551472728824355549628732996580763062135012296337809380464089351543557874563797395465689614460213767374422658987587800279776401878843327597898235936562043819970799770259051055518045789870405437380720734942900028508828131680916005190522169994239815702047743922450702185538919267956412280815955718397924944298905190349922867344699242557786681805080332331632350257307622764234620613487658429132154956953693418207961097054336060388057269227197086135580685938189801074500570648858699644652885507358030863329118482622180245605970403053214952877769571338746192177745951387781810646949298889147249655436717499245370326319942188704029573937729484347226971351129632650514895057590764687303526538756796376276537811849409896129533051392330562306445808140262318194068534878331757393392747224452709966337976154382380397393958732226252002725242082080208582108036495013623627589520193038776893284754425034255214653513658333251438063529292127275092120931452951495986642717191528352421522712960244156753156332072714310821715731626838430669654009555492841429305624659875101922036152255931040958367010600881597193181216733243990593312778265588915615178960302468331752009616318955988314035199893781644054082144650681178350435900769841754139696434375591662680656570866308474175925949241751069982228646547732087597264488505244261364774381946426435672561789900845906607514110686285868847798034687790114912049000234382813080999486080711519662840610005096086006593156764234034678556743739506137766494549586606365696497858525936031354059533355752112511054588102750504700742170423517728330357246065594210735418248692481229119349634953084132425992690372147918571831730320254101860612490930484532636435929969732579828366063598175938701708032362236684321882368610611886342846153420826390479524885603501259475791705867285444801374929534472383072884525220838504760101371184916742427659289083190647331010287690115507049128885459906387304642722379235213937130760171219478149418929400494904977972129553713177558875285303847651527271018143019801389370544215386595326806850101252621905573311738179038635520510919896016309690181278333727782285038124163779541700136461972446406951735335330555835833874831737491230739528250809782846606883729789518854552824897837442674174571875997268940871027980202273258899399733521912020757677430097353152126377679170043556812564174617819745141623847662734012380147725794401183893090987323696737646183617542901290456883324986944399581010770071564944333058916216143537777547359291650704695578321809468874258665219845215619683580462282055871876021332335859986831209162687862821599851080970449205334219836691530514894136788118573095566828534636718072442810750257461735737413758756092630636551109078448662438491194633290489421097904029712677476018084159899500517964551182854501814877621770626111214919162234598086754762160267573912019072690766610870481733486427410596834065660781573337180646767253040355069211687834313895688341094077481546254208258420380151409402235236384211337976701051597580053299133624129103068214262382570893044347924854655206298254358873223051186320564865524553759924119865290976415565381144230433131648116681188834506938231563875856931349433532030800160304615300478296413406209488564836291649082280145218911443939996303950419170381658658677945753844316053652149031906159814546746941597299884956777882343121907122596976227092077991260965399791508503920243859090123865379774637848901423497923163160092048314964958207291008791613082156022435387278308955924379227254442764089347451714775737030766490276029687748209296531775607762631188892917588732091610568934025520169842218056986306210292120725968903722953278110834793667375896106086488378337537459386391716409492378947836838172774616560415738421283269519863918993912236493155445194888239816858171623616648798233397398872434939115571943647699616888312259278638735653536106202697921193673891686858519107081616730017935261981135478506524762042572745309740931857877720013421625627765712433411607813747296690239269806683888963845216868426283503153999534113860864977544908148128538877533541505615056730190265870727465053851145282617784419654074403595389033774073139759022758551806634127105587014720078367762948666213098423359491862131544430486682334125699469630224761253449236929577691524227032867524636102314266458140425372930023460450025822990102548706249803175657948531457168703981636997831542505244599465475127095709101161544561514863861884379242286204590981610303776895400831162272591192807472402703790260233271076493407596400986787452172646623497888807002813595762488826004044703906060736259437191238228687309736034575258129228513739112934367653719360845747292086420047958093988136357859144594843138170042964154757063613887085778546733948840611734104055306242496431040278320270430819198979922966955864724166768689495354335181432005744234727795844220774054318114891944441963736495536357114966354152060979819932845068838901241582484075342278631097449609171043966025476967468181291228908136843991547959035286690927515410562366904908609767832419525850902929374519685228109305551149133719641568216542700687169720432911611793562915622052681588375205824192134001465567928829158722711021490202064419737763139797801693550337354413370167779964003002536395135414371880481807549539945711457430806460660473849035092213940988075150224773688508672093030458893589861803415633295231188947462302429314384294651433545933960733574937953212780993402367412830850935532715379042839644839506761362760016149064237111166606178611581107991483444207890833710085349030023259377305324704692716129080529467593940730681715328152761984788180288230134081649020673247500098618252596428729088325433080607579602772640874052025971625043112452271277199954223830719941810001133513087621351534765911189197934010632572500992790894537658585911035866458148346437845391114402798519594258155781144063081328855796995199727132212671697312613271286883419989438370992982330420941318770972407888843534121972828889188686020686177536173804481909931922113733688891755172388087856079408040328062405207103373777631739478856388883086608411138588334201993678202670153513602998446262612986486820775806663250249022872546179726531215471996207011717845852851241601694310106823704834701600807796101157039866359323114649229292153219323845667036880152616649973848334924886073232554675396292887867187080832481008335296817855725699692228959851161948997547065214551476892012706002250717972493645206438822209793986705345580364975051027956406772384663419480118874065089570829941808905920941778209706181721202604189375319339878386528636509859312063140959306150329375950780880449698776900817246900684060187498487255339438845205729374694692650606291937220000313196209167386694129858019769801965140533221481568404876836596203735113418103709144413355886753262829109759448934404792197926417960703447584646121725203074767197157580809240839263211806077137024074913236567276037392909186376346090493317016641088441561727593544567478565382167339410763406916043060349004711997240189951660153964029959274397754609220084951228293477454269350237327100944970137713683519647387377765074387467184209011545939645593227864093224042220979387005553878453320139078075063953074113930019640964276437254816744632361881377907551059813877587851435709674441088332800545658853497157269907852573374868051804274850146119578388109963591112619314819261350668735190644850812205248616044735146895555350380982971980299486275619053905868218016832590725493822290338228230272810492995901205712779484329670149884431302058404364672688754855856681001919551373766207871365342421192929552420894851707927333280560703948574824029637243904064001945907294219944542546624600670125262167461693392061845099716510260899732049053251274162414868994071299616998104908833360491090955781274591868086759359713752604752651466428313676691848409497731070584018149924213611771292480241628535212548559487709755409524816175794477368962277196552822577377117598712327446148084784244540157919375185592094026348813546247322724831152905143279649365903252625501009637929051421193960865313997400143419234173761835192263718625155927969488939399598568200144409042463252644931957201113601546891079250357937540133476941837486603480457213582712560421142435667056811118181500223413781406783437911365669045616019035875746284867523971724894944679871680293436799381058675035963949845248627882186859041791563942454177556036132517830077167031535106018184886062159309126912946237465945847996652206006363027086392532109085377625044138928008627697978853684360735628183236583698319162534577870827108771738706721558081513739470926254293183164998520837122206894572534644444157774530251011252145240404689665965549487280366610938099158223562842603735387126465787524802579891843272223475754010889843796021699989636797569646691578086149644948105943045794082264883808681091318212610974964412027487615669205057529921451188324646198362615045999116532746756540465793143724157915318488026850429700622489668766057622211739928237997662364626884655421605524269673680120505307127278039798351245995370471607965004739339739554904365520097062248790070061626943276019442605424867857423819800786531981966470675323099472067649796682007531160715549342681997529682653951096080848383974336296500780927376278301475538438975008048624956698752252878358922255619723981842273526516429392606894857147903505195388164559194994971950168892771903104385394599994999131135293437711607721787976439724017567345849839831689586942449316327562536186749186142211952886233619843139931549996377461837376022393155581532274225717397658922312235204361702937970297926184773072020827391335730190354861211660737814585493929194709779575078123881274429968759622846897231672658643852883632973830839645842074327535537987446471981570983762587423514537109668680484190974702122854408566705406222820482095826106057183262111458009025215847049711540101259186074623863469994439038266362394669960148954266378654653168544347000247248220159541465756415246795394895820437403829039006459703759259527068446588400066567778154512016883274380776185694160533364163719637601974452391088480142280830909943417456415999218890793763355697270029500261312481551494404176400814687261524786567581432515843383939331220136776601047338441917965972078956546049058734410912424893401844450118767493164575048782718489875296295551599170822334637394482680339027563666603539238622128677402974426435536320111032253496836836540660375636482348985833589464795937214787711601938859208989148663692413019779543362241786353688878161900677570658627026552893481573009822595585116183285802877135037707098586809364459856014821403313676799677669926226287738286140650746851777685830807041637915827593366843797015038811006524796016756421229443146443613411390342755991165765694400177381018398004759548377244162613871666969090386665849178938973397983508849878647052610341446779492488684455779620576396639148739816538040278741909283028634558323414062594719833570232156123154060055815814318701616905866297022368573535044299590092514882548137378766173684206020638816237827381512276957774289829156772109353561816346970506631832570456705029983225029476513409787962278407242488346310044043767530348943779042494572871282968302895176038738311891293312750626941117209857448859800410671748974147601407403082132271347594846087944918201025708809727221075685600701976285959356558460065461540773081674447711499804226428649505858104779637722540467401960930455154858166315321497464899680854499469411010220537984179144497850559682046371860061686646997531301103162641329924443414058047149989897499387374967428811474827417121149944787061917069487065759110828003848810047296952008267841224825324651760284533927111392397677136787047850439948082190932482689210502713628395070536059357750730792130801967088531640185146363520831027357065336101225844826583964968588161108994711920728984465196651613448428597990845932809830060599307254976178000052379360795148801161847753983849410805696694028420357289925206511034492748902107159099594071953761537680078907600791650725658405978611479260619523211585782646224089219332848867752172157309438225547995535689407357997832206363224969482071958266822640202496924274727603673311796150887993512379112462858638556015961454405504017784668709824967294960152152098432898442672551127602732635417147275039167754703069126510085480372411080367815730541197431894704162972203816420345686037710964929782576165654798610273873943966925307785090520083218680220402740569274168078757566419413437937073876699617694482076536747377597003548241852803251880011453229567336876986713406467805748777940910723807121076281451013164302304540187217061610814797047021932933060214425118423347595015392750275201460346978961576969196024297157920149736701414282057160801195575374304979626190345761085586695576880481875339652453797904698290965451248222454158066679307667183915742600518991216840174670592190917505759185371060890965439329465515537621370111845342600995485678409058580746154922240823357103800661513737396887173302987516778918857637295330725238420078406752264481623344805411665015061568946945860240427260972762865861687371471842021862480231384439525972000073692184806990219627876282566797142830288723349120199486178482552755360272279475336180058973663953825435614505442041965637415553446963344797305213887623319723678303945191833224476306817128120891401264388516724263391874819699035320276058956485827999785801483248802422322132724687657363400332016019644089415629970060213069400932308365077087617145690269016174987614564414310771152546501800171857521041275301502292025414283277816557053997111831823476498745650367744193394704427200292320426222698937740332627941669569697731258389941357431254083313149368600302091812878793874165506107549982151754360232028505872103663824923495288503239948290306942007318158619941719367468066837600012359435696692905131898964277333535737540072994399418642960698800585037715260405526372325293632817891398882489407993126206918155540430046178857487847671013575792318903097784744095281739904539848787791817257980775054847104842363568732651886837581529312596813048334231264026597407896647016292844654238666301205541890643613833227656523758103927756367168442917079655179403745525359078455563024120336534798392096159751573997344848187128787395336669718580450648021883542848401907301452781125873877482736678754575816599205520808828277694606122076992915128618625827874722130105671032072968415876927445494134456529594725963900890652529893959163108297307426269154349065900056163177709866446984453633593088363688481148516138844425355791124587393118942457177291550684137866248011621680373481038799369900340564852643987310192272156271523418066042419943033108420747080828264027050960871038143926575146319861849366381146692108040338092028003792492740643731847328943033609193656361455903344951213778567920631957745930252320146716323905232882656711487223831681808630753532693153397512520848324227333047457277666517503197731509684702541466334842313529791624663471239922667283289037511702780071275382968619028858354053886599630735110232111183768277019611796428034793023305650923352730933260350033618331352536017300821551289768141308399638774450735348801191659985855853644751747585896340106900305679349320601960602876705130829413044417958890662236835980837111831558373847466999877640289739499445175836060090884489436956741948635234548978605634478792522445704549979802407615239854214963595247616843283656312013721770639566727995133138327434261856444746549198704589552076920941735608135081555739915152015120596016185828037067130150570703544046699399134837740675259075782142087496775083191991990041505585051914657534840351030130720016189284173292492992905049925549524844611716369149309450837387001225664184090636797482442428230758151559910986949723641067670721223632506027074597654937643372703572829541456175737692175322824378916373148462589110740399535557053957416221561828392636754861471520892522513065427942724625228622746853604584793654627104154459756287904866596400830211007473395790810319182811470592196726801655520211090073953433905259921802316366532724962395368509359662503508566641655898984404803873273168479515689153778857106076203770177301686876334115609178403157845233345557682505449895544937137012885863035350867674001642408453998806246051239646313981154047671889890740907283235816477885647601314355695811159770618889060639711602754307018775067298807196767459815568666423421466657711405958625572066150173131139990435245584041117793161978672161870035013054251110175358032378764014377805718688574473616587583468374701208012161370381210341663088378292392564205485684943419127934317845522322029325963179097225324335343935790496056038595038288482380541329685919906005712765138000200065206795499631743748097628623195346670313241688189976871000063853336195513308369860966529426491991403514990653051073567878916277314193334494746109470087487795649796750427274287668609848580677893130690682556215346742994083182277577236221900895378077373560284860451662097249461789437286071400336429593176079333215963988046301207379561201193779325136994632410024373698903177180396651895041681113077731771833505818818023838077285865995637829324614257287689349027312703146247716504500225147799674022937809147537559055357136842583516631655718683229591281639396885849365661719211105287161978913572361443378703292961342452087692165203249951227123808090431235943689050199139109758588897612892008266851015297681991140743679312655817104913364530155608947075733232881975949851085237504593726014641769069452325047485548414734745276263635579571173795949686546719340442513030023059962865588745760144656081446488512021513897339456903763346654219097709271204185071470384527169606938353696805812546868824817182481209646247877868084946411184182372629215396510163608740463001596252124907902161425610003105378896905937816242765755165181366509946121174692729316252348891005692720381508834132135430146055820019996058897589437500774338618791519415930840800484424562759049961171450003341076094070714586548657185254412330581421892371153579390550710967191131660075704038669902336008996153867246491534235208262772602505640895236126045097812849256593573868105542500486734999207567274216407880905595236365032527436071965313429757031902974497181160903374117820310946150231823377789704045636338768993585295069577149139752843659218709626641888553312767761016110662962323722881611393671255903182772157105639487430745652632690121207011667332764180568878318344237777663469387862289137676066843544423824723495593970112481238748908979946250003437160129244038874654360405773525732279935606901484402920417152046782197688162624243263009544400505057955604332504609794188196068807802049986286097607939917453635987544990898679678617261033289753594773648587877713490348562363291052000403471672272707249646633654090278652238012753565276835872215440665701803705958467881870838402540226953770322380436025984911357241456124409351126048797874566265369196663117982816587209812458104968627526553778850661394055643588086101643998623803015778257990812972759056648961683446337450285090902244215438118093165874141393355448534015116941681408192436048465594169275860623097497878581153120924887476865906849300735087514024567101150394034166116643314653658419776936317903776905155335644784415876064894932428400162175271300594315145742101440968398157100502460081558023575712857664731373115430876016624128764265484817925553306533704688602573646423883334892058373043390986917676244531423642911273248558277755042515215792212778383267592290693104938026540639533712599785883524623227223719042147586406779160340243622614726678492650379742240493938074707358364330473993176939776544731693136200349225537837178400229941579634055572535058124393871739060527320516794998642280680038772261199657417397809002560115020663038019348137917426605669993674005430487615724348661758652372254507559634926005249746035596410700902178140014532714833380493759300854935966005541684564005637314331896155211120148707589454047171215942080549529904727816837112548739519200221100802376497264977471059028674021062368709671244666040368888222550385498568636307709847592016597768922407242312903127497037044257329935896045539972500389942617858911412292887669419552429309137347952067858101752631552473263202309010591806152861598126560653840552494504865201896437258506665914290306280702132134023836437321080405776405134775579223927560154588262790926144343884580633620127275272454393625586682101796538850871245244822961314364862042261683887373045304035959875318201162020058481181046385574854502832417881197765400685330403145936063356622327043745462752506077244700512639447519866712770515683809903468209369480745208840376913629973499647664900778286932789642034390366013551603140692979043678355080686254595896786261304674041079091247683977652787989697002549170703427543961239983038645805485564124808956689113313087233128038538889728976703636404842106723989288389776900004165824134492827966860391402894573593292843253766698264975112323369207927695289283716637774295112694696519840571002322360906800830569909841116295092151130490883594117758898055867100355563860030611726102244815446215363155147151651647977728179371330524733514900939934954437336091763702277461195853993524978938458439385548037191045964363152539009862405669166743050211551002074393297073383185304533677391553467981375502149630279598127269223172210224732387504304801763007336033525359942135885241518725287814026192823522478141239117153746115117422376673502376293280432715771475736838471295303419277203500361713210676055820318756174102943248647933888075408418814416083757077144160522792114406842107126796192309551948268069702067135540150005367557844766539428929507305538822820917784615946634239728381194539456608636021675349813657874714774240368388288439839762074161313536425444051612612523578199551237317495019218097599717625823005897771501089383096133983161960453091330772201705470543107704202640696859295008234258375128098277686075502421859596094260727620733468620016103309268076985585042955779697162880837615099879486561508538381364125630284399547443185056188009266443632386999877078313098237190872593545170405047190805386976073241325730117331269320473648154539651283386029596346741363241989614309536504691221873610809691331225828406435459005247837261204272969708373579397446771200254820664627421960872132038476800370759530409101729868771483629773305957509180817884918509733749612926747453516369373608510425954800031175016042319678067734575585808572676025867169846421431235302897985629143773974777171706044713360274359997891996880139816828553189878539450604101893726455434657580166833737788975640159970853178100690343241177099313293221723980972189437744120254904172070006664913331590250106936604146632361277774298233175004871915457917954695752107261847593817471201140801389782783024925229137582957297028184080791811895603553814328932726569605205738969789895086328661909515263344187389415229610422187790417944420085561707407798654540912072989583524490861427163174882765397270669846296574657975033928655056342497409778073484088272337094864960565795736254222594105396951176782891922575938303136536415559508139333364824954449278949643609829100118541159393831541628148122646090349551442233098252199914895822178060061655277640521608821687983766035495862086037894121418798078153726534165076173448861285219607937755887705121030728213266168580191927804233609450235552281303114561207812002951989606621936939242650572612359048114217756059133631732214920811169940310124492062369098083514742276646594607218984827701701915704496277603301374828436395560619534088846752998970934348237379750679252222333760523561985060786828510511908495829347263617591826362234600813040863511662166601445258338476542814850545219239405049515077343741255243979560604581424806296886303893449184080527595252968911905072754867224954193934058718922040392885211291773907723194658196287774912161141394778883445439844021332341605779924924758367350213021896477545164308114057492429800686023322199129289262712838561241000633314471157285509117560289313539787794670202788495400019815636425121785036847050071338495403090112648712983823271718918805178857519366585850493852318953958916397703755179522201431553143367954008883159480559260704643573323414670339339414067087925432995086220233416494344752168287086406697951843014466948572478366045809074120715658414786934894558713585057828681362435263781783773966784957674717045587768685498450944776258588697400178413457292758879864124393662246820789434359237842798553650546843362699411113353697989692903734281644421960638995659707715692957410066757423360585653224905688422692075090608991405272254060790976318347048913794635470427327060374273227249921179745649117756284969038590962255140508533655032251122736785871863905216073499295104755398028100156799123528894411852772139852480845493026009844036123219171109531704365382344019004310841121204437310566113397358745437311433008263791641312002993396084940054711170555244488321574148140922100335958922080680943653532101276574344621465086933186234425308636572836436757263278033771318753589028713671013912376343488173132658722978898470110542870706867964147257344212402121908423507434524195611797490388405374062561366772207624128720046922152945784406759627292054466960137676640399027147729350339379362959265769207861258207909901382869597517996210766149987105332895663338130749070773446802026860956704051000570690328466446970189876803836243170863308030186302632109347493311203434761528910731606706954471513120201249131624071430448994874942649320499959719973478212798439239062272058537323989429195871284071069910820255459232861308135241450029250026409956437939781873920206186512923081076184780528487433214211474506415133644387846451707447914995308378244455467566280765649072071897474215550113161827943817944582489885159795130876432922076325329693592624245898687201728594340837845716191509862305745307001288244005736219761932529819347222103349813007934703306034771807679466073412159420029094177456476431296286332865549954749762169038123245265692452367821212985716768684586097438531416107878118649099104726791650664031330747835124477598803176487508851011732507729042088373055290699362549448219305552079868573973404449245613511298760303785687756236999270698898011167858044562651090054606992999829076526221583075948185594705552462375216196084294375224797747111574939279044067717010146540176415077049494146326515507737206278751963785420617098917507314842676027787580605441905368344274425078533236138753627333907852381159220180754653813809094003980474308392709065993979480545708891938095903651978494794578410684298409266005483460102806958104392357825180249600708271959429435869575178813000119158290718955820346132070378079749363003338862692697305415738054313555393313160925251851980331034486324146159118583962361940573325191059758850150912735950434842825079636711401908793639415941768254956215982850175118971868173110643014818661396389267881307987425400581858476932027871159618877412004397564897135619578687411921192307555062455563299287400667935029342196864175167307228179469321971133848220530393455116273042762001577499506642064411006724624601741956334667988316097129258660460629429572694682084545837063802362792151257741489228412921985184036687264138331925870614324343450278083316241348509948872083617647181693266690495437729454727986168010763064952737171798996659134009678968707886220360341204980212519123770598150862811249364639561321738366484342014474369923442784253499499247046693825043661193067454196505629483025795168259625408065602919400840763999616629196580411946005144843100502090648941762003463961250230725326011954315332500031925417676241886786178120956342926719185973305070402958760768313221554824885002694728110242133710580713103787020209345635552560115143010842026217415842365870931229707258838105805833009860767833509729385644399925526282049414808794888599100788695559901056701137949868151744169546576004037928359748156913875283680602625049144232820009392505163167750011975135168018591941620973565983073887922988090170825333707778878282022128077270727381549144168590973269753435605984219878447532301270652512113506551053095123735021694568913904542272201247806766599463851475134616219626180655056570272161740229729548756897711517375203191134941406250112026237656774898076564632869939113489516076998824136672635066243211810063683560250913924632272707525928981982424882707466252733091948482072037198385825335066314511272161696399323398010848680093702608986036673897744035131813482253227050187408086573433994201018640314020340509673931488263704938424027712571609854163089822382374533720223906355321968505825055049982806388244418856964766397448647496658634178387523841922720486562275383353031049325048517808566958042327140586081355071818650865487420414191426983577477411933933469322054557717166575749333822244542897687572910848336531153843080420043983127402837134480000153426834283568359529730506789959446602691115793593376237704176219521589707490089777482378202756973139804899823266629402902139054567351475919213223053919775700750706406331411733778191507099666826869375601964582034979762166668904693623579717429763665470691307923885682736629267746335962291181529557097956813875067373255403556423360512275753177582638180726767106536785980265812555976329802875016441455584848509544050826301282830810594122760524858363604933283644134808765937003269216972283069028019225728240177747608902589769613888226904719184451460114052458552083240781676235717543680899236525087282698715051379233669179423368517950469995069310970351756061737195401884538816286803243181817721924777558677599529867513559972404286256669131104923642521368831121616809306823736492216361418792370424759211910674066117070041208440923806920435897762052399198662760535716085323376986630053359782606041622728659822242863660721791602816529685953519361758388300327597096235870191758473401525961725887587906003499951330806028428774543657649326889890145499627159001414454972068574054387531190566210885635311091929298217140235778780824413107553479054408893224049239594460346797541230630613061061456850737255987443171079930329238196231881893258270580998579169736151952635866954752677601989180883155959353487103983547840939494573139292525530053469096919546130492534838097039672620777185067102266747108500627048466792362753641534362942219190246868999679057354855604896725922803270128491283737372335474662920464222607768031445667809817208471747729230708477659262693315503103422228083932783476034428415344612832154444757107256053797911486529316855726913803923445059970713282406044973238592108219247128944915173115731321549535508773201701145429020607171345264239813554548925336266923036928919661836990980750118693446948942796690285198108903107409126534748468175822937023470515079078778873504428980556687957090458237473585801906237029940402265790434296146343983145870946164497421491344992924155143711305629031164828646921213338407464839177623207419570103676982022600920001676228393051142385736721057594464636204785783941637988734695857242250813549099214448876772685714560292368937027393108564677684236310186343940035126623094435387881952597802667023781956807546356696107022897357725228206999772205278351067636876525994579331753621688088230131648196323638221656744640660097556768966750515795485882861712164556527319377385017996673858177303089660884117832472139058549996739917335469333756552961510489688088097957866369213212050872323878382144108277742728383074708110375895528278675662586276672116202556631010268142166583709807005271854594619152884193430771782626639184824917763136274360476570880778917917661540665511693057634971368370170529002328020466034497437726742000099997139884894490532630415277700808281420203616989937803977015421021068539866499109925478490037826041852504694154616904509016869285091318360766558763122886333992796511323506594864649045865979041039743193353930097620330103662477256709678019596919866079971835175499674714492064971845497844872316927662256499368070325140393520402178408825726721838606568730384737737573494315732725840034062204980602018961055510091111844723720354471618776155427877981737081726441191552449041501302524852450062524987300911178225329142538410257425002499848777635072634833338514676058555905757528918418588506594775728070246285090652467331761722364432474225897761051629534103674676734785919379834563511179959258930634457720119444227818309345151777734265483897110308222370163061423287704791989224031705554939316986176361035031459798833920595874692206691578634571348224277237649307784290352938937918561378111537844991963127419340219223834896805099115279565172578634170879581355950362197875906615374853842761981696718620312180818375634619593583891514427635356277861584660424269720634018896460487647072995942177962211644393216133171471955875589601792612847009001942475773173321715336060511048050410885552608396404980265663374392871543734943878132771225910630324531101992629598520902129109043695072361530915729338755493333422567232281689432982110051474450994157220024838251025384160998418693540202559311144960732961211416185409919220524063981616549277392020325246616424028273884864644309835050957555528905491134915827808002978012521871167286616357491383778729372809549060347341536473961622688316682560836384200301067283132369478647766399079968028042793898585264482023360589068614044015604848685891152615223227405367315177490248697087179160230127075112925722889919212667041872526224727527991143157768074550953079116701283804076798504587572474770061793582941263498426262876144921491001448790132901327217501007124330288209096927595947721530945930504763917767868944914422563155255949404620459989032817385267892402238367450755335685339786193674362236771058705957948779739243586473661187027950601132847550110631846609334690374547301207762644351342324788577278408034653276199366585421195089163241572069030978412074793123219688954836983497081961842112656247011803553890822356532602132474204895201718624598385039929604726568341921840025409930849814659099944974621141321185572122673338995289256678960065645682316092816601647518328198960386616217431800539243879273984650547343217000591161068127495124382385468765952435171122694259390908992816541800845446426542296487441740363355575888920702704066752235134079984651751134355688550189600776423363674972784031205814998122294333928880346869521318960298485342564662986919103508319823879583641284501562770353035397170038737246858602296204198904041081191882482737338402314029257426636495854843871983359629347229322730587701525186670611486607683852899279563658198373129960589180188734731215881305909230229211376118059538140916482590036935681121077718786571917772086097726891693282469364127613746238797359160697212527958431417738302304976511320124036649782979628886989159869826531758705485710794152988802427015148938284696159216518848305558153558323719401985107462785618452994563973817959799474364924250584067957492377495956283838589382481853679326498255141339776215033223537503386409250027672568624023398905229873831752282496705885881752157498688650163954150074973049707250164312855674501436015983964697950453063127170104948031987053555887491703595651635774241429457587114921387917216323965020185412996544414161375600561780204888568450614975665226186739474338609909234749730602824031768062203264008791179301631056416522130148638773019906798142407445712421441124505109705156767806188751884664837215118849137525444090209727486679825920692628765143143505559049796460102038294661669261619297369672602860106943111967095516006133246203182820985429538791685085393405637938840444361012657898050501993617511236578769528823363301130185470320537318201385635013226541833701615757158580258187852890141243713768101354987295538169281628041275938548217953126931485685826014614676665707701378409195344033402717817840243161936553972709603346530577947156556412006160472277396985373464701524195601190271042662491330325163367531575000940541777472810381363159387250205603032585051321213268241305705258192126146757244990538993130744510943206663223683663791137946974962135541409758339678221259586428050414525565851672317567048015283281703826014134173416839119386456713662482741490780988760623583051235457268810748458092397166126641903032869862194951977359176618234042744854299840310003335533076671204268812624599071626898263852981141356457980153168621225768356051520452864106489862688276286755591424067192848772358730554781133044423825614793200815821903802142939653817297661542700443603472914369638792575590345675417402727620414248901936747923950527153225965571409309212454757262854009178139348018814022467960979732348929076781180278773110288471257836873124706810991706863864954381786549661376465012435691373594260839314685113594975102186311420754299338371807906076431385687572902033790407151988502261156683563331158409523876136291532149780812912074536648039321760149379411579520609114703063906689464790530871365682057560219650939818560193743327363324259619270822170438108399147035411769528984676705477024830673762804179550220384712487383520487647586692864792830478486665170416139908306732639303273973137672030300631145292353811982354081964143845333162408057393308410459012588707240010869537033030201243607757991418287348848772874847668421386876943562249789630602413022529137849474499642884964540755165744091162003223526945548566605963471047807889796644682759246033853569018998830063924123773549637939753578906523185923189931303535769625091639829067715318477099512308101134536018835236609376467464157129205846084617822155760206389318415299264190851166027273803753404761054689888597363182386552052517632639744351006345722950893375378912999656696802576695105309591170259994628967954323984765055623777522008407068002288848027130833159808650193326126431520983473325091675503350529733737726074323738101529075005329174499259063949770108850225431517189147993043294801050846776310498390889091535055352877169253142794821740251632447173897637913108862185290868341126940446114061971008230314910686292888721307222442091320092956775493471877984332157469095331568624940270007715641405742606452134322110388991880203934686545842122983373148988685365270531411812695445656397048549454790601374077354370930467612742305151007015732117665797286577487843008795686847020760447212301878253673134785440484309702956498137924744210055049355047148407107701095543466596169680505371246222126455657197056635403520383257142627884603427792319436077733725471678366944470528434846058321806503849222228326103927384021416173281555827730720969429780310270208871486342558928996095755927927807943735717281872082793294962453468784580013223958211124967735135414474262341800185675978453587263752990086471880902363738262055269795939355189800569535988159804180516923674133223922717131310767531587192178246774459553341609640600395897076601254135462937699357350512611206284584342760414330193934004066844599272459467442484486754716934426967833569020756459139290694374210219122805422124148066547437283581997349189515199299431804826633655614254578065530714024997798670254322942811213579249901354272131728565994435555915073662718420664285493506910396284128007178042107197783335890347435093829280174386768264347407931950523730349410307729222206177356492204535485548778221397668781602744708622730287738311787125079865806792418526073242757441626260152445843406550750063330971090127131698954884774042686294957536229232688339998114166770310880670627509904130152612203484975220270956415359158697501553084149884370140908307555884120506945074644045961393835621860551216738605741811349137722622780559871024997221579218376312413682648205217022074954917303299791187629535280287835996620114454850813149465268796225827619951911226671472736398728639914730767907013616783955249664844067451698964284940812811595808962021051914007681669495774003254502194527227881835255953691470939910512217007798351813331543329973363840130295665038543812366931023326539084655597698938338323044214376225332854545542499466027748139312468786339571580325464810780123698774783911106344522984378642989687557846661467963015999180376137482328511139605123531791646447259072702168642269518381565296244247617832794643242383769331452758152473146094588681423945296642885958218802572343640789955450724556466252504522686125604543573860153959854380891769424832960169183028609374883287663882788108457315168710349967813594922010088658878821217341694278458829557975446762596388427598048365567981411408783291872627066591405679226156381146525601854172773012999884228778403276458273599657732860758873201144294039999192642915299835389542806152305124513849649264088469517089542140723259375531118269489186882946223343202506224838745540501049302812177397455581396162339048828809533664075069169469508863500985910988016161129056927284662519754816081989941457999291547223844560582423058991368294311773406691053361203412694185788278248989274200515106919507437351599965051452044909887972919372176684057027936201719300936485952162470919534090939846789834020514869170111784603220812939799217131980562199019958269526751547650460514108900370544017484137542028762157482572228903282858892830162838604949105962593712449397818286721407058625561953380190985771951269923137136681567486887778555232273996416633681163968036054288510837616889339244459926020544053182308035053131235060845019214862913964303106200891271097515848303035255329078978268459037602518221599827528688509040477470898524841346040600140650751692561440329232476286580812756088485108724820415385606658898245769163319532429482052186267930561985874947972422213649307893070746816104048033797623195311040428967019778482455079375393075964611100888143784391841948170580729428023459248711975390820200487234886191431473932753698832151945037968823780831226784542702209164751408756802210766831377342919183469636144120430022160123718574759858827823176419537394462513517299338254533848629767954805242688276153405228501173618950172448118437984294746669751666949264509397560785882534731755651052094007576580780869595246517410328623242676497609490517524167336082969509273661337275491032278887291836096861597410786220568743272172489742141294871489132696918836492136967486204098148841863468150054613698196412532494463515032303314793319263210622140720881160109401910329710219268042419973029755282562180498630268300462177598886832447754569032461489326771590507415273451299283844361035147340409509838225775412252751070027018957134127676648547447818287370662426646256270159407022959057574798968594496968003726685071761129236021904929278630890772259680317872988226921655987915125748848949610955420364919386912816857924753585151119624626820566840387905778891974301070696545219673961419997681806258972385081713546789247761844104420340918846264280029961753777598237126844137525405505891333017541528252302468764888590373597741890198662589206442370515647865218480139952591978217451886627627331538509090071481883847944232140678695607443100746499243446077312719230134524633418938539821629359097006290064676848667687215062877285363582300543052262409292174502969879276083529746541469909513592672792695808711177918176236508479083354713172267254659747839399933031475575629900195514162680557810871521057728574671640943016227514293429274830795952798325472436760933838067552460119668417559959965108311658805068802463221280977745031863610596347213565298484934144603210666080671910466794373228543690583002000186091766987683183758495440543196292062530653898219030138926405464602312914679477969058736511241537697873678268912780096071755528276587178879988324213494232469912349383202341670497526727330868465777324872304309478868856970571075715249938871473850172247798335994507836925780201328492792123082275600830011640859473772643508247039992067220815965885002091481931141595611010371906869195606162562815560646366962210322445380545269658938197017597043387572762633206315216856248464227842459797552543792459594940928911353217276633547649702199881519445513329005449005511147534060842486187034318735272381724233214185726146726374322266164980605256786751128067950980283873969955505798184692707473476260790157434338098471485388559519935416951933313679668846278495600987107400986198190658206752558724654822146529477014469852055055455196692074789840603605684152244986223802502437359979124999836797433250876740772903233249798620448461321694946857214068613103750856564885111417365540567561908093648381895334672128911580743919557280574194466488640308103646429962895164691252682899256164435997444389081456460090498759426591587360383153889961695809828783190195064288743516152965791369405776579528140503059852465355053573642142764970783334688587407356518473451913076886040323373459842417051282520616380868834352569231924827945870465631975904939432306657198566745973705765833885528066184588401355883872111561633074416453508656779147936109964500878376829928413151590470367424360627830698225227486645678349548589559949114523626665603316811877462540203830855569919284115328681154651923312055024559685007243210974482933036949460378233850400413054694526036084929722373177883286325037192233873605579121896919610709775299829536716111816149049590123079003636471154029257952693442738482999424976059133621686301574432425282210044185453799085470984524709981103271351020615468982704539913343709640871173429676833368527887845323086148703857153041829426526073123854599682912869419737415629360865352975456975682084913192529443689021668765849259629627279230224838591890924309153950303377606367857717467306533620957202558768759588819215648013628273213867153788393988497640068413780425049001993194519971268206974193614616824506390466694964092728701897311159987242802190526185478613485128347311958536336323750763733625546079392961985997365206066999890132382731619017974818721478717536021854638951847657754788298133539889272367564820000809016642865143649932299289644080446744995446665311217489522258363541746553890946982711045053117323728084020044713093208232179582845761547096178903761041158913850241463993927997613244214892879746776048096919016767773469577304566912967583082726910988084311772638133589971115633118393233786433686798349785473509813553812482843489583919762762973637039108048056451888237041384462302439163419292358853624757470227887754658577221557818068589358500234730795823680768344652190883186862777687963119665685595313541999414404505345848966739723779961630530154672264135580890644812776477639064790480892628913973116333598275746095217765133494617243596820755722086000087675310346446952164358774608320475201702316941748403120951792381071272280722013720842236978703285103765346464739399779851954704189128855201948758902755052085063919292277090892686712848560369595260022803715742739242965319462347480008797816113196713252639990933940974241514366117023873454799413098520972359035589981541318249442193187952066115105995962548413579873345877001045526416030491999889222009044404622630999099830624018573100554993885840816130827586750073564422278192731526794972610690806267161070600607592365001171083897008080553215618964751422180897309527923903525574572502622499385619061608222781558172627051870490605303159045912351018742402509811389143407210252438838057152276063914247601669047390921591098593101869634134340192594545113511675768774147714207718311691963386909091611446352035333094490705022256049964431888077993719984309731051189801432486912622010198378553973464596750100762165498676237253018823426504901707277302825189355005040501312483188531312004159203198456669159096065869326444545212482489934456397559851019608599710043072274936227903954999388104651814936005240989747954083100513990948839671864951197080272449615105979190974154152540591639316201533475851456892661384679874566958964763396272828717188190872903244853844037238053712437033393658776045911378156516734969823279402669721805813150940686454390694803441978006396215845307088740717321505999615423844120218457327136469665247678639619890847591128487647206456273529143374379313016458977123257139580963864790360688964478203785286677841398994885813437781685158641178116732068286869469012983666925881571915163497985701529278960926489329459589833356375787441425292836796992349649423563737832221835855389973872445810834831167657022343205788497627171364760165429717374720739990328418371967212866644137352886551560980810559772383916206546623752833011027775934957308676781372071455710363975162222668963128224231883009940574780529868789122881443988372539360273434978448317404570384645558538598002370503025410245045915665566334744932913820443995879405074047715811249663576001434956910284116236960660756640093442359410923340701223693070730926661534857132913323544335490464411881243115191688490209976078178107415146237226948316932256049824286532425152721061945918694490598291437247415406551921517932321363937567073853772015935289940974413590903645211759878295400813619954731411715326849261484426866505201848129122172244880757123582719899874342218015368185358097386172322660694912320586188951767392664850372569234324618215336049832703557856031681306994754500899455183589011062151621431549063435448812886107883855662555266423350464176092412027182056429658261911400709267521911207804975857081747211728371118991158780429168390354853071545590936162071725117515810302112409420699683272495226720760952022504530276632601758938127825931013468922681363012344148479216674386986526765278927436812842616994625061130630809917769370421791710460837221007656532921954258859339484937700595438789308236842506481158080090587763366905349470001439259225093825195918064297821874038695729066377374381964550893545195655659527987269790170985562546422668614549566379659865917357347990740951379619982882465299626901248072353210259279039985844429013429322464548533769798839191835694135196220419698469173150615078060861958402959111401747850400934053206697431484955804635745249484188472884196102286063070548675173246323739448382883386494841824123888701188443970646888154591724158539690160109001687978039904008534987517099944704133126688324234015547539851362032529553262822059880340490572359442913229269691669018977142391077803575469737721043578187907772709280378882300312314057999733162611985369551691101658139051663285513131482821314108037042747483053354976845793378388344733784012953249744178957891753124522661120451980065919884771569003805558724636123128034843952532749934278484047859088282695798174224014543629828560387910074218008919432227700778973693788861017669277094987660726497299063520994792804417801611784768442950505742408471830867932199978679331034269038690226785365838558421931929883365996921961606104304436140685631550824157230026977625904087207858129654015741470594174631071259885360743100615205045665411443414527994095793443514897817917687383131684117781755318334284656011248538404759776749513842276889288726116756194256758368583945146789281116871310961690703216218702641792527935646837332420760788029126891336309888671768139464344902499477620725007087904915294393054577196290652605924527814089109895298537961591290094680540015604120202612778681684295600995503372355326945486709367691580477769159382549542130914941389092924975342876461604181117811901823260012638220807972269555449827898168497957417938281673575037224627628965865805938312739859734006270867566505531316043932767306692398091900102217499436975653348579306935484530558310099657916174757486554938756200867451969182200296472431166352877723501217665927157496251992289851147098773102279216810668786261059425950289911911215593914076290784390993038144704512492739621891178461235037620130144719411943164877801415134946178817312258526504645180160217226715774904655512545886065402814917217556487993937241093878851934171676044273112773753124872549558978254462836491808396444260609051286395476334999999576960122018179518284079762613163774955596763030840354669293216587817234663607130281570969472829985587114165327164804425891806673171990893185265579265583439800516006882442899421726513307859434552235090414354580490149238434195518145015666726824727933818046405262289006467256576997733586373350512534777363318685573243102566250801630421521811472672398366474922823070412533412940820036040563959640280337801253696085484549939214113150134736776771150271009790156713360836916010504525352098768451795267712323773118292139419042034127005689296151794256053107126035161468114486298838609458626317305239270649752532277363913404273385807374890366324770605606836808320300752099542219075988664896025509180302764219643609326999454287777643219526106893487351815156874069733736069560282609931946972083422942087277011705095015974679303366711162297864706491211547229948659326904799642203448901321353111386682359937589072216485931837248403855794130589132734162252789140506016806134392316310537477235710308789396895913997930673279624908440616171032764347650352379094453325302056587371714970565022476006558309005415504414501437063911174661714712529930765570596930138544802718828996162292442777300005792667446705531512191061432296795507369969483183007191368339161781886808092014270619747119321891710435905396133524988013310870345042889683497358693786816040234821046918943338672361726508382684068436481654302678475106030540579640776742811705128650974798047565207439161260439723857498135822644837675827818942781071460298759206190334925528023431032961378689445976840105393683475832298901772574238962646412542818813985904655665544917496388753162536784944922810451450141114103137037757371090612955670908697329065404790503940056645122394584206830579983920060792861480938730934998614942794336302640548543314242136631598328464284916962958896921898322637965507088870691365077630500355164770638339255247188464182179737953116979730195340778725475695202938136150167724199820347546196426774160266121274689547657024354649987830932036831197726557138878563686921452683165936742979349611395028092768115939423728661481976910035542131013344156988201887430355681743311633923633439738942582272776355638486829487277073724921985080975894974737641073603580297445360301854070693676146506571775767394217660728324955236941511953432559586484536941058705756900430232132999517598948901208699749445920566893676188110541645721621923506161259759127435301565703942699892924074308500084285902662681579969466131641511509586884542418102371429040417701431287141039485040467111023264789391206954927001058191331512844318653342628447827356707732746190021786450042072541776431222488062104492845369488193296324122149894521659334898713189796392689898712685168715197957830439954533304813343940623573205743829777847524386252012866956126881053108452701052359497924324558980564051210703577307698585972503271801044478427410200539410645848426384380931701611025836838880440411964692406894223482834963885473008561779268455190599514143069462982437936449718055258034668020774305866535156647184255595024876587016317931627470095131432594186891222391433516828490177055965568493023760082711132150954606194765699928542336020031532641650714577465917747514380231911357107136737183370570392338862069635644211770548890744168875910743594725306269176724593693376940171009984612851042079804051661952821240120032145615653184110858901762163419680455647903957294541283378914936366219703389491755846302754463153836839803348722146350482772727250248026076039032205272257613462992174207111315709643532976209222152261629974458331929612533870720117275524595764974315956593931228198061269117446254441500420054341008276710061213985627062993035338645139451181634125122845085819441931135953705394412025846215573446538573639185907646626824538868938886544424741604160153881457628188025691150321717727808577288432141010125151806574773664549323705419178984182579803851501987671811300132722690340492858845183081575222252190236740333000441620500914381338734800723537310686764618185118381433057001643888010690680158828127744484990448583001456924650571961139502539120099636667516405019271558322040187899778815701707397998273071473512599032030594322768614743664482670795948896828237707071469430867909467503320654173653572123610966295184718136459196906196623271927093962751044728531862693078195965037948542329715378176659529502689295777135842505103118576558450005254691554665471636058093191692616129778679158906244630487562479425372419924846866860055972791161659274044323109407269237580754530530371914826409891183758876106148715421857081127953536122163222256514742981637932067256581271238730187452734996016769050950249823704355127334692470829975416368195578631515538506130147412067479890637717419613236550835568052509660260054241962985596927037942847286065221358782417258139727642071870335185344769323197778318556065750777481529460393855067921200232874327925263750263389876717982479158219022132414085056306092778184004505251710719301132760146855285651352791962808192013471840665503267525616056846562077481231077932414283484172700957432801490836226442705850677344225767387273314848771839008854456518304106503406139011836819659667622900583818174411192945527753209582399241962032046204374343871443946445433322730979890587591342505380958072159199351999355346150380405724620409196460044343108178715311179023893191670904893044130938952242917037594424562213568634191519241540767487511087306819097251948386871789897373348535133655646148995734137997431773603057382128082862443486771134760430736762445561732929559248711668589757663232502609396050869126072377231631146804446152988188797308903757243545180987887745218488022115373082205882019790421528233463450085518492942733591871290412795396581123224370286834071019815007661142540817264875915444924097379250475382318582998841972005201943067657727967231968573992411136250475121504068389220467829256631180792493627552625613983276441925800338772820413762764249732146754001199078687036938740721740748954647851060479617370620403613840642096775484720659759035005118891615857169167959705033255937809778807508808005189231208907330392370962312600523123729910222619530878303632980298582280367075307406369506867701739912744884968085492682153932100846899606007575948486848459800600579186696640759796255176624060545903426733904437265156731840313245933258151018850715767803228733827088425745663191424724572183583196344288797066888671127890219083982980664666717651661658474041180800772387613451022347169242582435343361096353636068678710777045681843065868839988778988825426728396351215132485148645259047342293555893773326997883925321989662882791948244104488550443409007391820912238620092333872283989715026798465938804359630020927449692941802925684262542446693574775857761054382912947901547798909796305208479260629092600723866962461402117647220112003125451363828826670505177577632104027781592294605985161437068583886711102732134702515643694159223787420643858028599299875880962482122186497410149996747902249920354715833964919623948020497466943291426664689190646374814156836492051084994645878059365013836325461307179879187899525975561510684543882777592467503345792154537851783652748126706919578914292609589667315981551053675809458309355824357737918766174816606814369021208565019895787726201059621481629321408250870878369799225448480999042468343928397320579021261332110199321561845900190074239031370948704587685483184459841397180717403240270007211856468414779298219288021782173578078402315381793759170670930587880418561353473151794807152121431528957716489143854761841766933832347244812548773549853582348321933769258413736695846043389879754979155746920968952881610708136777280252388422377442749423620134731837326888887106682561942912575848279789704910685446691274324856068454403566642234860051658238483123015422221493143627509055559990045734832771781325925312787823230818869031611618788983082180228117937796734825042511404949791895060880263513729322982938312078528926169318252650401178380476635379311771183204874325117004613487819359678756866333769568383275086902158887587145612772991795592551755765759175777230876972033346520026636473209611366400202353222894182935881340319788015091158897109120859774611272326373192655812720908367713003743690721817976144673115317990464225123545623902417646340246097864031732006733671172643743727495459877726352920771142586233980188140086168986267567688312941173714154608979552569096759558421997344408843348115085039455588434305432818778884378566785167711480109769144385138231928873779948587400211961660159932315342562651593781243435615684045287404313462303465733683446207690471517588628685590508431556283876836567746036221693754778461887124634653636325480602869509231492281133765092635692889346907646834704916640540800807398196436489223269385388521287777902069418127566627663754749828798878870088481747983097609815775275909007404535593495149303258918111716969486115568606603001661634819654693841646099822810450598033103520576746852469013759915102720042071298943640433912884554826812746684524993894243586363168666860932792170875765687321816855839391568718059240988022737257467845824835873895789857051816311967599775260829877584775856427657619439927834702304733195358037555594210608638210819646059965485470981091117712652443274951756756580966056632293046900899006199625270436878403619577905488065088022163418722152742421014006432146801475459069197619561128019739447773285181659786714231571294296998821269556176950656015519975200561792551384135133234454128959422022254488399966669173436025111570405625511163179687624841748026058895101858617981993479535570816643856994111237135231395433408132020386688166739807177975837355977671741658214043521121107245747655033388840508204585138917106322224818343823767591185101967420120212483995941448320903873560298648876500982100607071907064706295829725157998780472922756155198355982052114185044795449926049561880516237713986684218736318303293923818018571913732088536724656994959178929623252856709976952147918106660699222937223045447451981533463226744241507308442891513501207399151719616936681086753909585345272128078530416596055785175407617073256570914567456561131743541598700117512346754741346946151471743079333565880273343508314414454423320306143288345822075799232318069149537453652583774216071164693464347405136064797279619596820537644577287854126328629371908524870616382718031256430830441208910728164228532578504602683700388333382451533717970401869292400371080598435209850439525517489737281492134372431304427044208248181985360108428881107852249591790660598949102771638937708246496464160359532671932230368759983387354213055540592193780166711046168053025190072374182341549985180693114605402360793501815603433332148331285194030402098976492713987756442792807976069820196706642156556479903562937058572542111750515364395225505128391439789784206703229938263597406192014854437932321258825873952292701899242269974123510953206215332074691989458227541914261092320852635126522867340625874934851716377391223305713001539872635114411438222620400262799270244724279466216874766095784655923200018025162056369858071034049594936165642090285770697767863695103562223887224294940123773699898221648326705972539306758768871458151671621529812285607631422306431967575177108128916338734640128156901241095456430815851468184328936878241528353131345644392675294988697512637536349140019468394235923676103751633949789183912099728309960271145549156543410024500424064805365773949877120049611452382479634344297344407037334625321986704310629959607232825937989103254575477918249187681296268516880739736749470840060916521430187550271463358154747223878964130754770042301553670590363961016600585715555979989683217601314476958711338527769814918980852965200274614215507958152147931616084702448429228127576496427494725640026686971448100968612409708978909202697216071642121547081840805953201615447307434060019653167939799328795524713703066407573863373343504933441317890695673900152089148847797271421568570882557699703620478011205082356162699242349045148024496971054223948308532577605202327444482332468832540076247889634618469862770752648099217902597640739453305673927630217857556212660659068806745110563484944972170730678955530953974645585971045249606499779497139830331739484600551873122483336245790320813303268340917803498248954267670450675972268626355471927852177885037345240740866686901289582406318425179794047246650934592510920015671731210595934873779626532994679116154214255378663167093213161805827433697487541605711602940974053210423739510113329555324042216638677743748795422776923718977428668942518107350468836808951157976596579527081297887077252109108820915303756811694219407531968273456942155645657964594665022642681537522833069981434716572370969772827341065441506185328737828705170474338143537729886210075945754373233460361434097007420882824438774033263569042032949678012685243936254490389648817238779573078133688193337339205713529813773729786387065258200862853814630645505180857590977709080980921595911552729731381000055189866071506829359191612807130282317160285793688912218695786149452653952530646051172944037553185315787725468494489587385817188848034206653435719144750304537135160724964515293917041160710225813798109748410606664045170502455182207074399139972272526396309130281145580178178386742712398009543753999777299181544003239436162692889973877363086686230635851797467997012139379771184495364161731750455611993542395765221361088234628399188232046257027334268408837722848741631406561039548637115965043202370393897871009516792323531613846051352950702939671936519955256312091318295447076364576045316267004046446615987744529732915810334446563799897352133365970438226038046441721957546648183881671441757832162460141978489188780509543395796134054947976884360665263365892796487860512596374684076639207047354596958091423475518599978655784296482160746166730788412616415202275894478684795169356618788772764692071620091622015953525982191316117275613522794903579291740508347402254233129423378717418422526207236867689811097287892012818255285756346255265144615886079090415641209041690007168172934550288417185472354998791398100687981199335180216547924647189925990302107234051917140041150697153052444031618331596720780947831508459371415408978875920163062530949124837800769644548684901047283075641166161519405899426084074263836181546684759627238202597733445416186554034523839565229658272983606930484721053252120086355883749252450167960064349138037609830158807350957177607983418151132516637513433591116632511990786237988208734605566201062184694304095646915003893707063726967758565990809631724927056029084679058877083754211023386015890986964880829208966124247869146733155961123367022585896147653022822358906616904572908987532367241895711226078223243957853893578517039789744515845620405568298729940796586161447398986035424106037890391502963413579220003451684083568028549178626455872020249092041526511751043043963110759614212528256454102103630406873161142678073547646577293148842589813036757913851942136160042564610140725442464790815080287741096327341601829384859074242626057699449207955769335418110865030796031926892736341003378719618131033437187610731439185912606329571168984324765183532177525572651283069139888854825967811208617109660733724080099153850139478005088791515511115672996830905746629782199699095906372969007692197786849016099988367072333934422655783692057433816453534628497430883404423313305943177978263063276795647736764589296537501094839476963467481366618868997734642966502193880737276414741822427798264381629579860968479343526382128226375947246220220496479045309829691898952470623153456353226070079269998393494318571804588420817126309446143642869794098677404436231526238748360185764542936610660468061929861897086082226086934244224850944128509746231679140026814961461055496836510421989790115027361032048623255670298098557859683821256502295809698026330088483571025147882949812760943755641248243942107548094726123821615754163485662680426712893572412248689404822999362209705953805826468168432469109772957333433602284150931779323122374998804124260623819414638657387846969169040250121902613534987533332662574781880509130750101717572047947428322469419441619112556321339548739499920783418059455454438955634260280153550965037906815927880688336479517209610016993262572767423353876669207050577906539010964449103961559032352766703617707817495629897548931556751726576798100962290221752347009418007370459143316538329114027422650397739306897261942916276089132960633570477707094757473262987661819332052438887900599429067435148380985530920923580549668278047003104565667593645914628264494921607395593355974130372230384033057939507185282851537876337392841821513718454828919353904038385285196925819721730185792520524523351208362321183348472792653048184424038507135749673474440645731176954266412203081065279523734714979711281386461283433696485019684168241845902884226643161495936811077628427395686028564637681715709364025310436654025042093055649582239700458170128407923557327541958042545269288364914234789478838150372881045748895675625108474584607854300559307162552357085267075695815903602169210119736486741636146593197489827070425510074057063078860594102409247263721994878339957676429489629109724516307596255294973660651004357388009689739137029744958725025196820791964555684978184241851919386344878676776951055329793506243754992044432828987472226888693410104430470047988657008574490937679611658199437912167340357061956904182881089374459602754812053365915940771172610174509647551860856944830461264783117023708286758870169003653295239472095169210774762288611731159446776654563920730093626651244081851690097932803988949942745552173267566155713931864038804684373447528733416974289132921792515080643434798018404504747364612701767535551543284966859112247839656339884370789045573508862344678119916180201414386197357574690863552190679645937715208110017762908485005422073380660260647430867571839577316337425797075969572094285575134157446699055965994979580646701365350141011708209163373420208645800775688400144802487389224153316503020929303284006029244017518352170192247828149752066997288064010711279653740514848061961563065361294817840582108435821156360879537756627204139734507704488421216323204771405839070588449328776146775981208098303934487482830226506692535028129380191219473718747299295216209422075539468606374350639470415570129067206107319913810108249272805567146203165758400789818046921227210960827567579466386335701510989735419753246305040841390032385231520650772817007249413722528610094688700556056547992669968217954799729662354640099853519089100407833590268493061818924626350205625770132142733321883865814283743835924950685156714817516793237476004169690273979338020630977203448768948876315619307696676635337107797228585376970462442781524392101385028980706847284769030524866471113457430973476682470710164290535000898279950143993670840210317659299089296149800447041505411134940332679817045094875502130519018494996721277785148020659961992602271492901986206161168897692414001806627379984118069767951183337231470005834026179500356106164964790729188536276444216766839456918391016917520731461244723986163995639049813857196939873963957259455972111601002776536207701832586812774872710884654882015246820148995607224352153435418527400410180753022907799206361833617228945154428152851300940368739319035456891891511060605043376286937146707010169305110826627009802302560078266128334799816055746738731462401798389219706695597311730387507869046146528581248018921778271692151986923837748770758420327520459569086904603103485457657893770993010248110904239077941046685168893641816886110609289487509653677230210904321108604823644566886744929776332829891773081433877136241712609886663345111680115727607341755712663328735805926105583188221228237613766163592851151018774143190246557650015218829988290047621940654389779140505909138298694057500516268396203450798663023043757187878502466352525935583753927454938133040969365900628706473596309825521998100094898863247419564994717926218334559798351400832086441440606747042368189107996149036533674984077327785094477477196331363748901058290940228076062513926305268370418838306636643595269344131312569369051845237511455940909691145829727737043737041429073775478361174914169089612717380640602560942133346348888654016584392694925358016207046022921919606514728868497807504310990353934370900197246126048500810743358610788291042040054751626288800404820912287332007035396374210896088539408720666613150752456781600498574008612982850436696175886679945517085587415941848515858547691765212700692641204713888547853533041434113247705368909107029857162476490906398521368848004807066403784198228625573685805415581067098319100303927608397705882356332112285467588950917664802638450829670769409541941645406335011936708650620530198482878182746708889283630485887916284510817565292472490879487983040752019767876625980392790365638013881131327729465836509878923016019993919161059766019484203509039619889316117948738282137817072415046001719466876512686469409677266116621613004231258345383923008894250598831628024582190238797240799190336091587853335658788252824300518650621245163266581780344717579024796904910584982964265096717751281702792058426858531624973935296607596649575564231891854640719992059574470630932125991537347736527544548734240386403129815870427265964364062635734752258549384202251367699529970900109176205998285867231368303550373842015347561394470518601325928234292201562642721183893445912537513388774438917315199210364045125928154380930626336812274172389645394136568195449115731405503190613901560293473960729265447922549238115609068125562848794732935294573539916600840768390666691274430749011597458945340620464493456909522264525641189796340169999547279611329252429214108044347796396051549310682339621467655579433841569603896715128595328047315338400922273952287528421935470378670897440894314077578544729999733557304265867318737484161559323069764318270504443399894467566432883454933216838992910980695537356541298192182089155698309027367890013144317394522730677238053554847538818108641076363487024626363590658035085577512973285493006674259019107535885435778973689859871364489698966658500221928814096309901481874409110138128360330030822088105827692701507570302147652504728918001489276959121209273900425131385456683974702276047668850089691404248688854818593143883275682881480866398428588891739624684565257394664509880438300255757525415005686818115348161960292794849450052437180276482117390208745117486737090936535601071097016757537757138803988418514511531453513317975453128562393210623856960155213053507108433282242559422548513769327393052260791174839579193950243373346923772965054380285435533029225241500338155361989840261775012757184150941761374207576719219802575098304759529248501769119016842027845776826409226820518208581076816400811508770421818426007475369142158789348922246993129217408822072120382828282057405159444837029791985944391954224016029629241515078707313684316428493579900811698439813125792849447197936209148257628879351367837152789413109706293819746870568742713032255149741369218466280044839077937909949684272032797204569056578407847250507673922847634734440404413500736370648250757783065914882756268408464693719887585154341780529939657061673091785615668537139800003675589656826869342585582023260713464398683590274591250840699208289600990544591407170445918588234452190352355514358576005424555738432925855257264382227805138335974237994470156987010064747968865282390728351225115974809772617471065424963667498704541746141237122254430139139672162977155184884699095259825746724480169819072153205417273762961384622033004752241842763600806809685118634007696244736339197636366364535674391074563855418440643958227680953973611226269135901789170368935960703943464490858929473286649766805960725064261375732104742138550831152911203268615224845907628146276672525842416300330595760984919023252640205716543041054031506231775041302784165285833367080065745161009270091586262687726151504614693635003592600847299039053660147122424232918043079966942349198346091178059831372658204382424703051975287625983001316567963489448629623917430366463734644732659159384015971478416133238906846266357585543854539596971631220260265121820658493459916597569387666606564452188940954614404196622589147929410879212332540907848851259667849894520579801295349362036135780521795410892589140117970624678821108275766499973764953207586556238897338269764174518912849598139002204632694391509445606314150346107846226642687042700809453906549746528805744359839770588055121210370752100388553841426729929431026217131906405957674461557849534901287568229306214722730128088141916917836053116468684115738035231140801228707530122900374573120435452803456619503138137493908518564520015410568097633520169229547977824334542683020125949245757034139931409166086255413785815032905814768491756362396623423172983392823944700398415893024101606847861234872208032659537751248205483327261857115800235940323102355334451241189686797383130199879401715219067839612426233110611550367021538896489863871510629562775379687638762086895873283664436342886822807909192112981388635300493398926770523152375345079197061993490462438722029166584986440963459219492204573643502260906456199565659645152211018784658435245139799368960220651375802576670693021272729823417119558584037378067502431417157158568810410113697281405137739990043006382812832713041729811426618210621210496660911402636236532114864655086374262948141368598720351276818227466763534392496108087860752320102062436121393510348139230048506711416899276289600888389686594853845491786439321741477790933083573804661604486565350308086705111240268686918217879515943904143093546818207397808474103271110500635557069227399882815010702489127153828601975670494467709253980864276980656082521807990518701245060335299909316464748840658209478344147613069240791679545950497830777922933229476547145425500592746275167790959376366591060399079919827327247614665298691046862241213705552930131779547655049047261809666129301363823358237602601645734429483942156047162407123519561189268537883638396493057196154090199145412014040250527681417153302568339372489855386787904208305282135697215330596574756928627474467313518676064487683311213540125727854344439978453008318872714485773263028473885600505809767049114274202416830327594914977674333955781338903108635708309297523729818492547859954916719390843806484643932035495806030480874207555841272005042680669085270893624410575409523526092999094798151064890821495175114043063911506584330508852450418630857109750237583501500469893785249828176191911814020629349100708944908152386773048187467473366039500178921164814897309059376498177822446630520537356632610992218138695284192297359522806971245597994968837416267892789056167413140371888178011400025427523914141445918189106414204380739987699211577383205406376977232451125989855136784313405369479352271229111186682190745475984397407350544028055221245528846976507060842709485394294943286682497852824322543584253217368511027856244377576939671732967073394902239111648238356539501889278815147940823557633685696890923970937783165093588601278957499985101443078963087816992783453379958821975074018061835439067702988262863672586170263901428526893139523576471511105405554584222160567692696811131804392297299616119908233644174966959649929410644436027110684708695004510654867624346587601515804972327065946650473583765724536502673346420737600879899727488529117103932451716454334910280576893480113692124913360330320448283294169532619229770607294570136116517485332332636374942637140605240900568591053386924082997151103256266649897860888785402724797151741151994362110363265247915620600304323830283339586131346074660252254444006652165145551448901818787163534558111432408157860388869461905277743895250756747061059521782989108211937549174923503634719268390371246649052014454936954268219677393241065379991918728782249923788667527809379015477539360537422998348011341407201085303412917492125335348976924030009057636326285837167996064807276018906796163000195033084772868323497628105207523808032307096134478616825878111537093315683377366934337266489456407007016649483876563958676777101288092488375252353127242479202944873484737272900031479452452265272063543548769652105365362243947290900412414583956963615027102774066924139701462079574482666889609084777758000825756506113853075185111000133908479043661887381714984403911456264848636509013604145974421864433624958139412198588133193459855425755401978388454420349132834762024829328644265368404321257769472829313614915541792517137387829955492785524092056191399780600014555284336715880477892052790316404962979424231123835253394791802250130704001826938520562238180504816443988437475343425818406926931084548052541822175317702373985986595584024432708604174066858002447995419514643405951930196634763616942572671231057415955386829336841884016540053061568651222625066218886424177277961715260328372722166171541552380325034640647456275287612575976034388719093474459377725480872704829900678344259158365575043340970712732494936265887570356424504844414619314966459204939688058354068033068147066759614559130198930896272445336717163261823395658203788959670281583990413425195232025187178190427411734800643050880626391026996604636418156088442365811623381500628571823041176493943170701610620985237419220567125876300492828760644280911684840208758003302699665022584435798059623635204477734659027711965792736380305852177575967639497760583143992354874886649389824403104813523450104842274744989092357593026359728020409965922086705695240406600078053786697558205501339307876316392055577225999852589471759381278237976817881229059021335597471715451101531302590629021062666928824202281339735441287371780062825603789070188717345800447566890184739129166943691047255201352132057532079868413411662092261255094083999704999895330361747967708779826871120678216770627471338430171436029664655515708690304880850798122579719780529323087743356107925868050796036563412665875643919656269326028876066829576998247793446842992127506287610308323082469894259111178258193061265427998630212531064219013669186086871943398816449766668141444397282586773123950155807090420867599798673713638668125799010489630549946240095679749354496871664423388754070126444473021646552180054534972653155149775420456927341943107321029139235183559709471992091431015947519156031619902482984360319985512137348423618173340021015120096039095284382065159520828206256777154376243323124300060859525350662989968237871216187963979495598553294407429205333369323523396063670750098162612283554239409766028192239190723719371561200749955264503270190266729085570772365990373313032282911733267735015528027514373138519036543859187636926529115304109485093960352532782663502354425493634480659470204802863674640826151707145344343217890071345736132991203646606131716395692171616708903215492406435802650675397309084981571979862349651378191876779195374812077115841473189160284451938989662209990135746651358144983648142996025690430795251651273786677637176775841190432059495751216149317995600720073951831192809231339106450049503480369219709126090182239905042410544816431923020282718637382959908814437835533735891232360645884111905750081219174430695476866309120641783866174943087120588913035430002973606375335871286899472908200730133973533137379715861402595770372728907737278711108001746380403162465605085425778373648186150632567260394117222998358660946441049894142398113207924399055790086381838289910048227416813351395161629820752920291133113523455988686667626935869435381437291236310556989571676075850557645508057063425623431481766531931351891810146628041455961568438349898154440528135546698633854114310188684571123663611946372883570437216494164287393822661762405181611698317045042545654512485633554976324648233340972387832510043428655847076642684614364863412949818433314681942400211776474703271993504823933412688201297502866868469156357122238598640814866815712570787202350677597519560483739734248482391322634956584981405963070326151987261227221472001545295720724376199067958951583586157163050709792811541084994219860748733185888080279440514773245913469616995099115972651580735959817293526657750737968467774650494795268171295886539077497159150014072078292958303381760458863534619049544652951049459014058679923820004949951204970699232870720989073098720062550323685548295251595230054609791123667434767310432877562859920888878338460721354460800382028211121543315749634675889147873839582485353131718790931846734592532612240167266691058282517982804730995927574831667574386760403479327625677907491190445537844421538537382980484906372329457113356657788992269049845002932585454002195996521840792513109952047700845004583029079899657680950065562597976952040954037659366130461670997934842398315373274709151503400991472472263189655936726847104114979274470833349473250869370946495226273125358663721702017719781381454320246236578503358895974592694079282201665229746067193086084034129441292357260134465514982517204466911948472321518006879309547747594965712544415240293681434548618153266632178248555457869418646974841113994569433797206195811709121474983556984272574477836644868191363105118848217771011137350978166893742968794951420943697554517857130431351309290530430089876110799727448484238062817164656995433786528668637399937932450851466828187092722561483030838571190829059153546417396625908813461959189879417271709134662533744078771378971534938209073458481635949625170792143065551282935594624289021488766301842190729962700893589220737042589108205508910481273303579036571532403571719598985432873718792072194731903657753535466864073685940993067925321543980501028528847960334938808705687674656547591362624960778398876274515293528956522923704460469766110245456693669445656007225985222150168557806815096822034380130257396917158224785303263500219795420951106118399490387396658168571998059177773194693283077281347579297296813271859877412581923669301327801411691343327017236924775767287330859669201055761170221925846065932367415134606710832719083936749972008126294168895980646557800287337740608221526523070596896184735310580363668232480877926266855974276742009600034494511267462185263268958547636585398664777040223812582755061036862639119302530636933888484762809969768861193623196637732467271706129264555153647744629732671976697247596672846216013882241925157577507442994320329204887019346584001462313770486096333079991725507717801007447213781129160630062144230619768255161081166177060955335387970014435163435893343131509438626384745215885364927715280509428404501830638599365758994599173046238209282023870236255524755205131198211120305744445141933768628780022690292787082394252912561854834525875835279394330941014495458164920297088055836569615177817041521710993659486199839772595345158227030084678027733853077649467412805586736117443080894048937158683374805640022238005439462074244041908390849964335016937984542299046416394017307748349799646588898687053097974737805346421761410255413163062371069217169838986787364757697749193851650568148452831302773077702291107523575782211179737210357041252465350161592891400996214134111727066178368899065347263909868210326156764894477959845021847958378972308389285671444261385801908589247391228559693560252665132737882136435765589221203869812471200336810053453530976564848926823581368236408969248558405153589592626135722022005713960693736021031841485387350965979361133038421880796419330723812416206534398385050738231131064437014766512063399899153436936893770807003443032152683846391679871781356901379211370204110983595816296343968893228745284829434080567174935995517494587777455725061658940950813541474481159123887729746266596736768290561004036198013431342494119342615110825973111777053798776684076221320989503308982511491186000601764684835517365696886301111911261023184591679970786790207379363331042906080357191802442523643911920100708472841236289568572602175319347615396512708749150080003277797750361515045353263816791640403720775227639041651164089487331129496862489581445943706773351839776683336442105154677388880319039643377508383144629303551225827885691246328979444468221261369898209079446257213777789584086404149820786940343078053607549051935782989336235967208273766016070642122799057270947118006735950607701807845357325462463886249045594284925614933379524455926369718964477362813443848544747357487205437244806717515311364949430968867364926697794506417953842073841945710637560360275289614877526200437873379000635282063306452461571540715834544979212993280682687366434557902361738482158410807370889427846289175218438314296688357945169352407049579681789410174210064645540715235976067614287515268836855013897159016025131056617342709395217632919021633631959558592511351624698005848983580269216780447577962823608545132453263484274901714109488914860161393610551649415997507816366118321760456753504412591673762918464378431759085496961575704942376656865232551466198532307188980413571437411189789397320550379142414237075111881337273792906599664198052054838771803828754762917116324530397148155713243732986451010199732081302498534053603456570231936133612291215671616170613437504128902287412253716199728567465474915927729454875815427331279879947647293592939182291224025726548509360961451511653457805099192447000450389215408653492586899867141856936024845158807766909337879271367754374353663961134072838519206175264101398395182339968406584241916688767351615817006614383893537169348807187534930281244035804362303073957952798395397234256815856371682284026837102592504309046181140029632356568492206973475575306589342879381209587376374177991819272216218489072975271722594953727095013068500611010191749461253997796465627989340976180883613266353624369245556626377756746757015776371055464684138897916661380568325143530844003737880103826087554814571864331811745028750279497586469350982206192789273425326631162125510412334528393639284162883777898818191589564912279919443530972018332283007596582972580913079340803033141242255972966479137986810602169564857323305683474410680947627532087306612881380987554184593408172414891296424016726161725586186446287850457774492770320162777681646703052988240003639164202767707584125710248131818180030562712602180268815642851244787234864497305333826791837452668134730129543638749917782081395699084886593182048891043643427009946997392706274949200749618175715696389063212653347030187941048053978634593725577578432284116462818955212993719854358934770501285765324501305169896809535847794147244872541783856601944474195135271991273675285671270152393899309192519400755748280728535653567922587862204050016363440044536743435396664291715612276163985181500150813328840910448318803162044965211973159960976612825999822872978629503990483400244963666528082098449805376544540272028054660204526107593635488713493313563167571516940265028488416759430665594867399637400397009006785754437092027629411932969632593035543440806607765434290068336832657580749137661128810633452584296167672361546292046526599411372624804840031566196730388067662316470408473535605830097823137997920448574887910520949516929939956311558682449360669144549013220365941226691249845196763652787865202378429810305722658748661355766950391135156098214570894892026504765149936024559939195687353315584999600251360780903336289864807454168914839563630488360637654548514273496319435339232077131663240450778574342878362792997140639802311174142512162416620794697707524623058732914847641487377048541519577192100652730818829453698473989443230827958122710076361452564720253155785058648701242828199748505958106098986186206991534163528846460053614681778716441799035371178542485984475081398471066082797149776121272413838496482165594035367124811782542529974320764337289349226268331586200113550176787937792700181305787082737746408814815224630985220097386295467199950315763941406205229957942949663036693747321986317503473417303326666986949936947006147521848529996611160247915704144842694759097153732075440669811029329955555868309346174404209481220313504499148239794524284041690196100814789262303519180753224700641372938690126433236143963027782904014692372500319391585306302513388497645560750670153619377987166107889657250357126246454911354962341106389951772255824297540116966583915342387464853354855646337828073969450154115746352159807295692119727200263401047365398657517915966102591908259411684701526142901907271568812477051535617483871803279000546518404294984956675143499334886177505191150511125509969899631795205891777205435935569530428044393259384988243613044024708179452271110436397159622060271895400230185066741836420432388148441396236124165526237024079452194212027060026091626549892302771694028966192207599493762893207221122945886605383287344648075292149756091106063186972599390051225326624421980345474565950473878377534558399480351240261558384564433820216198266593360193958665089234529406537761391687597053971117706859882719365400434492928583370463479689022857632784633261300640215097194073048691463292913320652658631658439596979897315102189289912066902837407673082580529259043669706975956780122952294522979747723287830831690860922534746984401589582737397592618916243471596175744911252474734640362958292328208168275930309405403675225878894512490662617503033440300661307958401086945289135336754470707943158296623278085358274772418646456250771794295973661605302850325491227605349500222458320627540710528578070277960649191292354073071375711549291212161136605964632440672853383361092776385178846439013479514864789301253761936082548630551803518787937450707454607065317739877421173521549864952319330458957923906139256231192928679176996968172734765629448428807662592853967030352700039804594895012587563804604112512042175081275666254516999275093883444696599135101831215482333263983446014081278361591818732802926628562155720669352683069248719935737525903126817011565661045769608802392242569263204624329585139168733870492149620822672474696448198286701277987557142467351010994817371705806864315622268890582306419676597082290173845216314238651103780522694374239097039139928723459865139525934554425754504888159106792680653982395187198004992431615819453786641981324442420121554880533801525483234189288534003199262439974916878928387394304705607553183999476178723486018329398457184314850773630538691249561887470613593797116908074848033809389390279762851832425140973011398083495904260875063217768184806203984951109175640386657255817311220810303950270458437024728105584265014153617496868927051949982451972174419154820185652072636786250772354792979608862734636328216173632420401629362602976345227483694163306701420200444750210491654130939572960142654672666599249261397392821695717716548268650470207177775255591094745070582671740588564428924515538298992414418264520561533527497863486730415871699286547118879867462482146922012431198485393414308573120784690118109690042970039498158640720081681064162745650672788432288169080299269168544203083455494790145542872795693017684380438224312638013775152762882488241593033397087198255337045126497049415902425595566732823132502094695609967142090770462365361580088118468593732191882070661315641299797868292614435419144265125076873167408826875227388291236912410164099358393039983332460742904299224773379927863963821518176286514055001644328053961927173751612071636521845931165480339621477030731325424410684867350485819810846429723580086382269108804202652392052620032212932656482247002662681237099767156148147967035077782207828053370618746197558512915067805988996904837325637486736286568900939803645740814327076976635664296267734078751888341882990837893415380928981004963572640793079116796990430479112466728559286172825299623192457818435467689469651905838184600286705371719705579839460993318237899599229110904587647902579626123675050756742531399092847694334189737887937958752460863737320425005032910903919920996641238920631731200747071585088790300627087727786082935308603805964279430562869181534491335446781924226090551242270846496223222355056110257497994639565523611097168835059386822538069215216756884997353870240156014637217471610538959778421123244123532311692513064698085097705788966132853698030809357165671981686400341986714634931493560667036316547852666591784523139422502721165415740370655853222289949155808339930154152294824425129796914837974208770917618999234651633890399630665102356282130188326946849953316758945809445355441975637234238791338777584171049936702367071442767105120703101039574668178435390205448725094877341198260050202649422749819907406100368576997917284097843524228641054759766273647858944589057698064120645825632962574734970935655555853929198401226047827377070114592319923660566698134091173666987132753477876870174441743333745451822451338925743756022599065975553744853263384338927793845558488930419250879320240830817851297231815608706461216711376538098659398567426082346868916781355528168896702228850874926132565255943997089394200323006808348948924735056737238979616088581744024277324284225384648254262209083532295644352236091347887626623648955479442800847266952637881595926224086378817374089686790390685668022973857606179865409336789344513323057711837495029889435371302833126938280865798360793985845458930843417877658800902085539217083863639520816725741651903549292910269178458790688272716603915614043533740834322414860540409965758622976919707159657656374437927150686381098098156731969105358284695347508856136947693561140245320559658664935659501456189632889520427554924703939182809920298449577616627144144904761806483500267440161773947974748607331170895398356475882892863144826322265703639477457805246135461720745867465989987941498616581383124803727894922532090978071124507081739727403616637060311048280831649837015975927466544146148242858348703877417082260686060296360573569817713161648621308974614288188117370018481874070956839457635937727356960011090609140761697395554787667244285309803891609998637084225271864297005128639319923678940118255769342536116396497961474645777332264895949414417295539494538460340645120373288805444840022828831159055646135185203993596602160358755965773509236242584121080307653378874287508102260598787192235644973473820763897082303357927652080492510216777721143801689373352330446654836835462283738278181816635055696254114447292790952593179205445031676029561786430437635141558353411374100232951770007655513636517330230479663216414328189977902126989819866082988569994063841531312810705813412882109689327305211080252811926095560090060132387102033931547440479630795019580252292296725785693556637140868264565616298248303510946094146879497756448788211194362463955934682355956560272192383847197120290531455409433043899022357099896823270861952857694151848755893644052075535456965141022649693133837421000561857006587514789556355965625434924077412780088876561860954729782570283615503795984248689152723613704767561067661524761923976535195441975845331225846856483881002488377801828031894708487518812707090646761291573556607152906842965640664605948593718962123078542754010504498190282587673140319670878820155536108535475320074430047718476447067365134851561495404223887982845737248712529436102906504024532108269221270676464088318239079514381631513169033321340275413957703382302983225439137477164854818976926616455546823440628367671749237642071646451326694374111028257177453043118404608288269280376933257189837069593521830343355957599096684330133577401940455650723439366435558681713454851041716334314521339610463294606628108428533259774230814143451619109219079444842380609576278259385870382622051008716656829762400976781611543631568061679460540250119528191347146969342642499397947869907211332331784867178554914466108482114803825071939080312596381228281962575715598348382780411461358177175522152037957288666375222106722048583559733499784901805643894593831936292567136910273604735631549356680844968641488021564355655404358762254249532292331405133312394660880252337840867706232854352341410911275970969203863743514369906097367229220896428877764758616782153957419095215580606839974038316708295403013548069956304735229079504565967657367475519318088524092494827194129480679850760717153178971082057454535671935339948166572902967392874516241275830850601792563137248794986231911503303150814277077284920308046964134611800998186008608457588707641621601157166262771107688209830950625693355139994209807518245232933545488598676069873152762360282289549647712325895838862042808654523196601033926822798114203434894016450276125034153807301542157473043191365013009321380342956788732121366175443924990018103135998137862703034467972826719579047629925164522361949473213028673931769292732457613936153044986876521712512966630460691440217680615245888632145655223963673453659416877991972980644129984768682499041602267032297627748246669352319685534798177368802505815601141690318211135833809930868491902330779884408652030927835932564942425706297216095421635734207984775582150334189756654002287942498296588747265769743583798864262151870577159324879916502698879227101217962693094110982417369026042278227711762106974343408252627333817642479639791971860397543371191076423293226465765810014194066050719980025074102692393083498636685839839209757728874857309752710285866844107822581339295137342458340910963645496026642519912708503840789164078693238389356963013189025451016827312802711635898921063788679186542148177349354482581357510139404884351579084328597592528684149565874775573174340360414883991186459081592563641562728697150265332081550010908189401053408299439507852083317644640450821436255379890223041363589663815644293809120201095997848310985849074042844932845085106340051369560880643620392909690692144287089419203490460767184101449312821810345027918371165468315130592035500375419713921426428636716059697549970921124253058192590385384934118236261397732615992718689527165217417026961991515860972385816976465783633964030775506767067267059546759517467818640960745553437056777529047115708932525672478299198381260024230963845241941834714251303461486730524677981783112821119944932842809318751977451144312957296198193777368401704361807743244126676537869339901888342320977067959513273098207820006156523917777346032802607090405454813675490293446052357594949432942846495962528208434831754068998804371354696631459700575690010986280501739780136439168201173502793742550608351232099536173815451284030077934872569143043964372799363765814206531412207168207861057413798540371159530018361416551889306091638817149133790559326224119974066543400432647277065586477909634134402134885598315300637836843787295348010983358268282455893372024282726974292977089042287735538450694007354139531730088261236291429326254168486326408807465905594637460804810925482483773759655065031220165724197725973694663796663655887458713591603149908332588758526154813199400630229376184894686025386906244736821589961846187023810649233299869428918584702369893018857430384379113897352952422109797072441593381213511633356516394648661338963073661228057774760779187032105134329575009266916398381605171102702746767400883051903404340845984182773390154953058827868190052426183378174164655213659214826997994604689508636319702076989606750565263494755084428675533400926053480163961336959776152650561611358679050750361599665065682379397788352374704264920645494439331745068330926110788272774054915087885889617671269894406688135881979919889251362536717273408898906615285294921942926852797270736798572240842454886523015859666985993381535098087104455492832629302631475853942966298704119210492114167230929746944309504971076570957249600675580461010270386702583345118015585913405599187026208081254065102393502100013785447708783666482913441344070374000119438923635158444597595216819810885497747521587037053076113330849105598984086048204516311442646481305518385375028886202395772876043692897397879205613594313940077152400355714053117269220724343390655849964955655346263988668708179363944157838877674085422322365904988404032392915608023331686631150402746557269962957384932239431205213287847442763498576563580367866377569054150890266921619843664032389092059575365665625450356683367451653997014945913802704625109654288114586065433785618350151127815891819586724027345309831050981136655669893209310617381426592918221737926870719332788132974716265923237424715547593819409977328783305262554869328588674380512976513121405807147745397034839022248656912260999651760983098773612108206489633295065912183394988336539989813910082877679554360328535362991422512555104487802474593745202992210264483718171513587771636913461676031870263166576831983311974276860078941767055652207576393158318811426450453358616132410911492968957519916237500235804979685954777120177981101962170010880637565395550895718790751692719810970773434712870570602571614029186994600496186241551581150683075170298293118436881089724693876803436554193270322291868343706553881858197482457311942078743977661640313807892431661378909207824853901057969823043202956400160112874067394200739309193280465667581371242757474612354928445450770557085814683943160636509615164189916437242257014412844186349749956128032270094232078961844823837630750925052773586179493996581429961796596360031731918433451727849296854349956614860910024877650185944283933071423392090847004023797271878956176212084550036474423173876646819273119922102542494527946820997035508176648314827928110339498915376112195634034424062237143592104495133395325427693500595291568589345828246899011594270725794834622056824251589342796728260302307562666658172252809323662819856441480556631814683901606855115312899991513652439412276101025307505987957179382526076578981073221687643417193009145719805031648344365131290656552631131050695039411277605936048738406768781960365579429881864101370210338447952981117902635878611778871823144468233602097638935169624066381851250216805675495825469488796669045857708913236267090523759531921952623199964673278945108483914488945351298528360900157758562208548355963912346027407811874001328921886361309260064017061611004705491546282829943316891635184351500559870656549658341072003246427558836883496340736497951186344001062255021657107611579700251988392599247126622209358050254200453441538685091281334589287734705470424544448824080243640409777822162133443094154916083644758834839326072814115070437321731563524742760296396041726673723212118254855050707151549130940270510453452962920681599705107407727133039098464794869622495775863685684956424997440457629057061718537951122144653445726653946912521399589411988778171527090128898102374794089300674946776744346930961394014467696950182395512745347830710931217029583675818040319181422169085195115287110720546198742228616864536137713069816401381955790267745512121377656190058517730712609149134691588554692463453586913430465281052314569895613637391543144979293581101968408854401732980731817860092930765694965968817666826621162094782277915981157927149508554504266076995005946462060219203245108688374801604679370006425395697236957467334874243388529496290807618673425809687590972398156059199462793775818396762989511608492412023840778339527972249372022207760082863960880261530964912427299537503784063959623408663950179383140360678292939079396750143321453560229952194043861678761606688431992315354211258159185650646682651329315424577434231240881486633635225445434203347440693973050437919683973704478960970404473894329240500152108201173486848542214091020329238345737881452846578403362022524360531557212607244691748051174950232772554098097341847289112046913570969267097905749534203472749117685582606700727262745590378606043698438165391072172074668987160286375245654724490871571416582862308297689271407688704635194481798180699254632062572270689967149959961183412730555617074430981668896166410116313056898427914009412976837358394739170751128113722226059482484501955782096222128701490408097891585841158699731558971985581151759464652965286598441167101374918095637213040130355919544215371978153517617061434285786762251056780992017477276957922013209568190051147668881350049545534703416737250810538877967814847497604397865397014235811946221683984356200890723075405769279626613119059590725556803186792657316938947028828981532891452052640639269370837220058999853115391169021661604834557283657659360893519057570047223606788437558112878856288988993084700383771517851503616191928862698705200429680199828622865766357070931979518419487593784775224177154973776879121488617951321891366688477048536998776225001652297753164321143185267086310419288474139335421140202146054538880901579099649315536899460618000833443755617346801376336827397441871078766903470117031191186878230508002928079435849169215107690773937889736214470167989976931444812037349954115432695247396640841414795155265446599082472508144395096861747484283730584872732034902195040762950852396705378798961517518469264772827804624775207192732854667368411942702575457224978515914004489705718523706139049524098201994005956419429491166286173765057572269988193889916635539131950517200181645857076663387103663194409483148797898298908519932958550315521591915984737735337817870982960362733066278458518121238818995448478276598994434152059020660827296126235431949615393580156723054450958271582150637552425364092847725701263838671379771575813803912245848142883142161374039422930271491289147842030137234576707068621734986238133837914106508813667540544538908412751324379667332404707480881929878327487711050740594993550370585352345101619540993564310821196701841124476851614269023769848870153634527584289366362406420618773017252321666995760164012671462549276068417812862500323167693684402999484491625585247413840455942600052020932411149917863616361314087149676573132222348607328290180717090869598369913217739576632500228480015308869467945876116946675610754435110870845524503294333511547228778120800745639213151615867871990894216895652722530678185982097285635118795434319576533023973063944192400509360121251961643303590040575508418146785185545435196241506030524012243813213261130079217522559738529074399012383342762963317193132753463170313892884939564079300513921604475475882324612023645712474284827945895226893459915659439877774301340611799413445970264723426785697842390643612418140584371690520480631998524269367392052288787553227802115192643875901175990644462287704083363734855436102113797898781024701952827206669395655766235708629429121676167883244480634790485176305082402320648027135038639006122595849867824998954242228894382497172297635146605440538313137646340998489597935175723053122285027944186743579893774419226271461036532564103705845557673555657614738916702282160700320355404340926927462248999843035804882970070581269215715247748452541634184681283523908886395561918436882714694243734667427870293836755337997145580264933380714380503850368248458656787979116031694202502693485233739054692639612407451788316884997438984394971669513410997174648448702662708430739749054754129204109429983968733840718396312506498865848958272709440173672586689222776411032601685250715955163124265200535123210304746052757255330953479515819566770777958853785874492443088318228422482117408342330541350467459350571209888313346899106553732549567043106992904196186582005621300847779473960692635680837449388393615640562611113818022187114121619021218651489327407330683326387945378082828297873518881536866018078933738678032118501376593023735671620938946652878948994703627135255480132657362378101779572446746567381600533048340953261525364989433252312424497863114317539851053681700850922942071655915922559364324464811455376847366406261752499192528811065028115694622764004329709994574807622610226031412257580435165746582722181924911982805107833171877069246838292590195391924633641576624521460590628325019435488325865231202406246013251854694255797935955341010358817573736906841970542632632602151206291271639682245614494366759622132895657872416655956239558219012507551831223534289476084754913000826449484832027400547555294580742365781188217786218701879193869913254602005689650054832290444717308677909643313850540082572530425278402223245527488782898973015669616238965719209883359549362596713890099800528214395660630799163698588190403250099409371821052801618753553719346547309543232344737352760496597877216395615136031151512939612805037557494839345617986508101608837360334823351560137480080373028416761470955609325472228637801264561337460185574005826104299735491810274301965758476475913001945764726892964425756977585601539418025123960868076806999062009323663177887866264563812856640618849777104119749866726008546165723084262352908018269361480308591671579844982086786024978964489522334368022398048472041939427212929825133539783221128837343832984576487682987287747420273377318131097886640630365102436545591502957346308700355566013425848262718978953470024673231798050340198990900046635760009437607942663796283400013041396269320111794634698623426124560065806942363651637612180180762680082185359399614720550311289050858778842480497778095725058337909015736267649153286724633572428833817454148739544443184469873772776728938586428346259919563270551418264465549740789386078065248319325285055787216594862623199151080594101134483609958099228059018462791179134958471087806785721550543525092268049257738632364302178039608455345643353808843502954736984082646833589460786618168892522195505201926741001122875986624475011692251117439816084987112030669941780764179062361491808614777787848004754921602088441922277060290608649613814415622911546161802723103618142538334414016536577212112242624325171549730647897056018338515222787733333171032455646110154715692404965446348517062356073513636036884273580158325604812548667524253835246355099756921636299841553139326885317901366932668207897769963658026921685566208427976779898315313343386820413879466843407951415208892202072429600641572471369539995492610757343873108981655934966693680823752031471183570578517418831280370903433272978676979716143487125715334060337855719997368421046472155348034111784235922626414694651232334423006578283550501602116092917756613127245477793769619009877641429207198225798850555253119194867425509768605907409906098256648842122290304066428719912138979769028870466467051962696524533418929657252095992267587327496898472241859491902468767150141829442799161767302593421710504252266142142789555628892501179976198478437566007476232875815308325762235658169806859639408731323992733492936488090267141812078784690725537093285425381885039701379137088026684878174934598761735584911602883231719156184966551118956654602162567234517321044336320756219115261977871139495393150561420683146650944307014465977541064302965225444317502854693056969009190575514752189810975282137750048825164040260942207715850588229338356145246739636917103247886584217645844241171033962948719470516633274739383804619593524539150358498463055120452213373844912706858242301250111970639732172889425681608782300554055616504190664916039846197645264454274758367465254291067423075135892744857354518678436382967929422294156390860464153863121552223633448327395136117656004411943292278321080432076541408433393800978981980723905181152098255873269986747785955713997239480291714439822114926802388023006386094123709671741374118775772786812880431727990696407169299193115192751877657604676413720151006078916721792904886626012906848373661190109865967143144085501632926210692963996878974391321582150323294386866096644929484968663467456878653739772783797440326589801976533095869774333140798778877400620571779720505514986940322916665294274917012095236801708962376294452518955271330374949996348147194453731925279660163501952934129832868303840632991366688772592249747952966087111406987917242341022231826474171234570414477829428483392647311045999169737887254133123623687910628334721990019812392080201979036645943689472896104106025572281676124460845714213784234892141455480310626357955339396161580856401600239648865635633647319352613628878100568798710060196708016006511694368254369792270916384835523811510626892094922664099502599278831285183653973600374980169800653527500767990169610599950657279445955885084204382404076245663046994761906412915297354525493060354513710544067310407043522663617698200677001545795298378277963701927477284043922500513789241268971692110526546532424903556168917372486233027251041167462885594225975746467441915072680834848425089906475414433386258024972178812657051811446871249250330853050088657688331272161981403430760021115043378750753520925857494495953682375994754548203426991556113421242174817829340821554288873370527022945033738010014058482626913744819712707548866082310774966252515343668220108204011841757843629459770482563555202767816906480256074757207857327949313275175501623138380528250307121174613755359159842488605386034585115088238691893084289352766765445847582109710560213598826021267989688436762734810045638795310741253608357354499903519727419795632037887621251396676687809857872209560363881050294854419222241654126441489089557219962199902589615795829419405996999766031395999735434882505037655331465254919371175637905011951918271403846631532441633205099642969951528337748025019668794873897995531533524207481541486611138007314420183220383357392973752002638378700885705825650044498679310466752700235702083365620935602400629013509168853942633930364444887782320430818836967310855014847563779285823730261352969758133208223866186304732630841957765060769364713486116090194057065784595615708633702057381077944440030013132408107705150068701310269055725974825816492239062157226112916512617573508105685389852899806240489604637832437278695826172504092152000177740389770412253187751743477828108095451268238903438923118075880281537890609481274091792353960156652560491074569773023269041682996711340716948794539150733186393736250407862333805434024304892704688879141592489863528039058965620494801847796576514624045833937831670623588690819216599614607190365440053001142985564964184895164234982958611746206798129231313230376830861204596706014844469123590873242840263816644975082131381786643110547857338811811500062569522602889193728403091531668454662322719487356051583257960909908009354108653679911116049990419816364508617532893609915668849609516258275351906296932658371118821418147435704722871844126008215397612676449046738522040887031549448700287426609683213045167281640603320634277410986551258942826928875927843376314963853780140135313918005215803662236161912523154839474298658980800028100546294978639418183908242944960436476082979762466502324089214489429984872149365505290553918686013882245415976533972332088618692079370917536476210436945033034531056401946511051211222903947233640752177777662681814564657258989730929298919159667231434920458391893642358896957099603294794030443478577271406081733881625124230961322343712324379845930432576990756976509246323155350078149330855005229554101735509252194702696503501437753738048815560322436159002397715383154228745692391091753558538870468753641264444785949842226830851534793725507048982195970509878173515591550509085631338156430459466902933001134195754656684567562908375307790180002880914245469484117131884523617015045843599817380387592710886949789258971962781063234499376996978901831185392330840590799076469730791358058204094043721440266993321858511037518178208072771970145096122284233206894130448684492908339520858704631626671819958833981599032910672264919240959388118309151166641701020850217080813647793427793488978906313748259500230910159211373301168218462586499923123611100830876271517728445073318896461535533174350609476663906302445636438709667040015399574630362306570884719748647495129797761101047930108195973294162199371459668275611930809960691477194136473914854804715737612857823941208372958613153623570872184091993484376341945226839871461561839538674669399852979201099095722070632220612523716522339377821890598803298458388066023395163023978696017943647550209853993889911998187339107862747412058905784753219847400423238237427241163625359503396798110742265419954902932796665507027891931625639918280235182406670996008797477544741100267587329255909181265345001837754123212267404375650245071583895491726260560269755857419371856344632168528705847100910158304273669763325223104818893992232772266877638438579958473581135487534182296337067887955475840157954319572104375287549850168186790783318546706388336706023291796922665678280758467933737525292519457396651289622716592436452355502335817855051971310088413005638637835389058815843152331422604513267557396909344310587754621483816992562802810042174435827935129290439314175610291887859166144337958318089399235575868482817134029724764848447515200267592402985825683483263430435759561767646888696488036075013335483568926251700533902805385481565431063921630552099658777590022547891763853212364424294464504798298923342218089923977986592289809327876107446444584130937373966045176669420877194755069100267372575743409125933380897509472599378378072670568270978591279297033412681422590109204779299942561424433511935960640076063545972628556823633557015115283783289558363622681360472460112015267390907711954456968478310480370358792771833336800853281875788235670672947029890559762705965819798464412940952804405748920715130809547414768911850747347392341370555780685144115041028726393587152546654976706086162337919319434556379002303895761832982893405869644445993112615625753036094194697490396234293756181282350918307727764399674038132586066743464144014426174703906285065449649288164862406305066108540994006218959338803424986017224525607781321443865314231713826450481334220475284217164489151786443358493693172964185094292952595933840530850812824584191133386160611968328456284752539752351522752625643969668417778657352753390484319647496809874660621308671965329838363612984403490074207332647330084752107691945657049096536110028745893034873695433580050898510441536349042818567085051568105648322817513655756436388047891552911059700616505884247515320623642462359616709659198879353463446627581842850151542224344057569681090116715158913883722311179145036481304905583125042121952150687487243872874389025249421498827346373806149245993353410582372010009284461230718458449575536159577769173805783372965912098659582454011067580871491627813587868901385471000802486443716484581342559272541832228952858802290287382682200343632490796992114717195694315159307930656967880233890511402801988306449965957362329859567260530939608731304040051044812301940850937368626747177586635496141481532176889741646581396821501373127373728908095634418219664826589876198764399228016434532990411473551986973311289451865415820655313777063252831196563034708306486999790790522517713280958237469831581670638680285158080307750150626172033260818730571395560444678559789711418533623872652736371180731878613837228369209308064930829107613277095028068718971701429278553175913018717337721654548970336144249192745945915853844577228477149241034145273783743898525741822473158284007323691848896768979602982095399709095788864513645286865075799008560421374988524024486215809718930497026302928613669387097603688615653236540129543009261727571415435845258644892505324205989151110296392910239423252160348079263990415785383841069020500717692664930462881669773738511879048263783860480392229852800636210582083635801582700492255774691875087405282137437725554448560756378121622735249311932632297000509680657440238380303622485782237300565849201628311352134992851307740525361677066399564602990722721125775545976380257607728251688377718931165010386216152595152159809997922993142659271023880267091977182703467560829985935761831674878922057789371989526235576691810445185559251128815466815513991241828292115368935351873329113778895069190459600188692830981037981157094097611772576131127183482522633133460796126716081053128556458666747914475977493471385570268205151709868611335631439517554463020689368672614882807894633288487369936133836531967517334539649364919419814453399169364851113875687933386717379213614170626940556379677125493154426815415340984287861937650939823776316911115002432480735478816519143716511525376585585844197526027769044716876066459501753143795339984756885884111499648051052308688291326650080305607278853046948753289568348914582958161592187099627734367172301824180632069576366373753248304268634175815595140460143850322051018983749019887665968437179226557509835194952785889426989722926211205991206084263691600863413536583157346738519230231043201660966925480599001659205138841362578996890951261081835321550772110644050966034844374516310131023996138993857260916386101012055895531215786043088212359132968559262224103598413366582935842756115567905465198021259272743377717346748685679504743104232455828531538939066039714684501659236361229938072874654753612425715412800798042018984950398170207092073643189808588996026488175156836908108694153010472990498031155283081054649727649047344110882393145634540695628475092191126954417997564691291120024879097344504101542326152186225665135235114259337221813550633022965109317156438321408589094980774310433329560371855443667826443796730563094252597873782162327886036166707649253937451835633514265240602638597954502158243293310776783632988098160696510904183942581426809057556925860495727570210118606728098400332389581854385043000858476215020545932794537663395908518718404777020956556433261711091122868615262491539733645994658012140804912290614454509493437223819222151621140822885970696776980491663915412964715329924988040535347773570005910605459988884216068080023790286469898941793620195231839460734145603762326753616894614544698566581084148385644640586998718907805143642016629347282159852325976186718334157752123421548211418911617569159815727962346149684971309907437426552067989565994507401770443140567604152505338831977175614952925923375577196080281565872884653094706214358420417538274304432098916063392619185369317709532749896322594267367607668493263181706873864206317709168111043445657128652476635919634209141901853638557038041252073508418570656569949252475656139712688972872911769267457752439151605653517447306438422119440024567127522040379048375393554673366810719164029814830501580631460295762492784180423966834355794760096994474878639719860308771051543602226102250702485662637405869008965818842392892401945546443259014532302304874947816764269992297647986231811387756398943531930465685450149639977766292793207335096520405432778795961351062361733273517553558843075629446352789607709725284500542652717797409055379099037186977741935942583968896918711514615309811168855189032498932969796289596757546081993372859357118599887612116414886732219057095840216973475724012209636298835737031038276677795909551860587963231819028500150656292552277456417232721725325905728897451885753417390707261593813571588780379279433818979724106628469879311320159275965740207804955330936754399391901288095378798359203374536577899584423686636805657150652966183679474067334814078983137031072271246711418877055055952045512646821977811828518109740535767189443679076614204150648507854082126267245043830516844052680362944099829074470153647264633016446171425679224799095341215079876119329001955833994867976855232332292588870104146676588464582432854722834466447767846682715154748339276473372195422723179114050575486268101329022909066972465611674477937619278121453674061645830481679558218492145878896846514211525584011825740098965020111189340880256354184772601082846992076072545390999507800974374529236902499669238040296848932797702935045534276031971953861582913611530036944231874291197526003606766503114190785376443436988485970877489269309057634948277278190688382047960397470461184387263709931891796657976214311664846120611695160701386165184860962965598400403126670284108546836797163118316648380476274103062230012201437307838757236792962064962377578083879643891794679404864145854959456696714627138780134804900354033626858818366433823608950963910119704438229577138070468438297155148600718440408479778857353484078020585384758773463362042497258959070356453763505659081662101463028994433310344890349181337408393330756209297415987864359243342561346615043600649595748580236205636895884697936690502562653372448781905636775172113211173906057293914965209473858794964717234928104836226480126198478601504955263576660505147577745144828736999120867715829704065464821144391969174735346658719906520753420179548899290176118560793532193827407592765117531998835147898949890232729380441764592417080951511477452007517314829175882252613136990081447302132198529264726590335033033864309842713630589788835018264396354100505649050998330326465261581449648793752468044415083947128605422349716458832176399201271947749252651232378994898074250413569763565368050178876368242654726920749894882940025400593004066218334276709549361115315759913141336410016731702866761803081274743676224014073046697159211597099361359466088597577337564815921509428205194290436864461592433699431365368846773579535643813228373409278762443379457255174435987868385220245584435249883812226778980094074452016221252456106088539028254723190871574154726287565062666555645947009318926863228011467393612415901663669138775399146780187323595204338168781960363866440962315617811388121096617223867840901645783537014484474815486480165128434017689501942247604052729807622076293665602288769132263806618297210349932285770033647985250511831658424309969068729087153500032527414223999320176792701407633579954665059194072526065612453095248095389647327661889562463982555114317002523224671631816160573352157935069541119001057622611759175025910196208906304579580790296744656759843314457518774116159983327996989855266090656874109693276000416705250304394448852457103922383219607401470886193765903652745780518683740050951002348691346591611460376872520716265633602255302801739085927015623494342560684543947056510144987224262883187436270854840558948419721442552562917399024585558596474229805098807476299071807802356800907192941934366328751937597849418567885853513758492328865474751975684696736844012957433177530692123406413533407729478565557811222986356938107422425546148121965940716328762711453092650199775595069636405620899361996829137096184107965806807142163315072986156645742725328291911191406385711017865192243824938779890460858670270979248287371404028853506324699155030369519010377365654427672820190088630282061701364274317667241754109873366202194089528938728199179645174083276761138402814895291609367115237006739694351993262924656511070222743295197138762696532844979268850931481886135098415907272295819699985878882775261387863100855744522702601708313838755837062133527769703284217547442045478308410159192524776465373231229597371911527634036226280792810001135258985182655007271765314743058232374175399663116624765587144053298338984153950253897531462917145057833884019743697873443274196878985815318724868295435754336191245472886383558023393618525418129090533929206540055446758791669807222831431215991480707242053878280773801620347552627581502200470788537552599664051873034322982929842997123713208488736283172703326681088896930877959680422843629674227510663932623493624529402808428166878474503088327107384163113012958191567734391476977134143269785372584862751393311907956605752167184098079910226551143130185469806753973802769927124460265560690062750508107059565201552018548602211741571699125983249592323189009915863031601038797879605393656750789388948908015397545078320745620562893181699558522819276998466065839652045921056494162995482344190030165188266357905695114202867415443571538483605088251262215710345069593344206187655469423765312444162346299975235233282766712683950661042039845155732775984654841429410008425856404322835175939895462709675183991678722806343804427843612568982641082000595207591802502388598580675403855623260341498011324255436789919560297756130978291525181092633045754378200555859220210534887443964812629389654158598618223230935007185359022920047142293744310453415786702700721170099035149791257027162559424195585139623708774627998294176140340060572513614435212112053382855102117756115390284672154072606065525141712993627277418546501686466798757811298762292885580109036435715351159110936431634149654554570135536264859126635310932552331504670694469545472232866814448791388531804448856685466577449713844343044811427925198446656191925926219632871087165735451369296478328238055928601177829086000814128254979192837085325567280280834822847918629678389210616144081324689603600579769494264020369859982207636559912600279092014173715126033301899831503907397325616945220924725826764703948998316674967895131699478174566697139038039228449382361401277973177411882123061408819327280444640363033248281329490847324295415196553638847521767753588396344342351359318515509935803555756634785958001634782274103900098163914339500323688929369148066556180431132855073499885673138469018486256081680616619503006824684973689928822404085089024996891073138673719615922892292243789250045752657249407125413754958831907616762113854148449422763572715117876927888130237388096330671374058440577660473800259671742466041490090860382285661795928689085563358451364271773888756882266696406180659077276922728295958215394401486313849861244947556380785898177724071192213729504993089580938502916059459051814565892519179667021291627058362053319546876321486640833752407716398858528243318567745715707574064840101547386538709728880319194919749945313025819651570593689717945176683175776032742785844285518323768155872537445103622123668476218732140783034571350318312362373845271721377273687508785327034844986283831959253577407395367902218494945163653623048839728862904515238268464217129319895030093244339954211591182867897882572896743763020047402429457083885429476624604343162046631965082093725026985689116032782310597321514764116727289956271268386473446682464466550961599385553909132769557984378852266725870116607391076860622224320094328817126757535512880239152579905975594995190565507688025711986738859707612165329829875372306430320037850449841171458682871867362747656039002586684196914673793046599517899364610327359753115886994831645212874009335129327898636005091816648482107688714639912432077654828481457561625514691368170177734795280644033494719440686714345135859133641751291450007369012824376235111342746113906226575268344530579384566389046053249256541150661150412058263584880397667992634291042658316130913077011824679641969726149046764251308737211512498749193623192502113996091816217076864438030492638750703302232677354521546140333382117823203233928521605850017946918433107311766827795397810222770296921216452652054023926872546871270336646570476011460255109449176128255378576482152403310427006181832516975266587589394792783543905151306164813226146266460366254013946174662873968036841503543675838105043212123042555657694316814878988173930449582840559580973898907359557584271869112531170477180677272265254333429354016934936843684448360672858660702099867139761351880759873572794148269977012621096022932611886754506651590713627291981760174946697324611593682413218490172816397510032609371121124464243536807824366491172383473437992930379970905328535877085125268023770280398476196961254633516124224169797311182864298784756826336192671500078448167980218605094569278232056720826897151014590468492496447042079580387633645127279050973516277461618320609627929136006858978353149374053156704015190372912037112957831314176671961043425169860150741353170461718458672967691458868666603521213756473313859087997816862453800231400097702674679494393482214132905793312445061988058938016801611069187768988963797445356187705308456057083969334453026992331800359894788873224277549069720362488144281269880906126048251591027244058387630889721588913502295214591011567957401788585313254379492756093939206626633466744956528305031419559870198968998452003715023574719596545518587049299142383231898074801832094579723574748164164438992806573344495444196019836681185354390769347432956454941798020557066450275893318324349199632516039288660043663419224770590740873693768254639786072552468907734972970749634015524620103113590498851731376911237134705861941715768745603998245142834459887963359757784933986044750449341842156319109503108255051147953660248396337005670272754365917525524567744494792289817689962830230621113393443956523713564853416605264144068816564675872467728395454212402641354100353853399206002502118633700728476609500735327485855798863120897142545100662671162576342241510093383501667005265488883163807550581816566581794232622131255017688435711440399345889193759614104669531835633474566951012696956343373505625931849648070646189767576775493381109537653539894557310029644492965710891316192122373928818426077283940125638628077143420779575551258179788675806437942393722569132720213169321171843154086510138956979938254428853275141191969823247138469589370807324022319388673895813814974964988644376085283946675401819278615897209416805054993898612323679325149927466158505568789670306920782499071150464997549329206094660252982811868598013505503791909288898318581840733741760279205262738609936941963943097703575061568646812163289574934846064951959711664074669489533407576951219482378472914232134410188277276049834922313632149307565082588964050473909231508091028526499118953713489137248984794355518409516791445137806200917139402380475818713271407699029628581049549265679682190000924576979824913662920332421367974197631674933741913432239496064817934236368745277838953767526726460678882974074134898639426719422820164587455424845832248561914583116988856359665891070958591777932522211944307671203962089768842814564223680431949693803207061799220077466781842292859782390309337210396431079184140168615895104495270207593138399906435137494986904311743177728920289840109664043956781582025087863167184969092441202957130064668229285995049859825442324788311764139733963385791917258923421645109133309200477407591148166223325511178573449426590653938119570836753221974147569681610076114612382313336873296423867561012104378960188713318547838278147438926372377148020726645321041156622609539370380850826560100871239750951576597116417633941401776642745349746937908448381755971836943089359024562534269675639359060012903908139299961337959620150240462089777322271993098755495235251275398553199591271680549557659092131457124793153531335413011801378158493023239153302274239381237301083866574069155053740033599863282391948545555644499931282944697178133778209425637347114836567627820751642515824184836849473896073001059819863928318778172296323183762381645354955027256065527406749201156429411367442411546200910902222267725414998772214286134344398831197186302843602508933068173021526411530817278986933573111631493113732537467601591647465301795044431073901721788352089247486283266090068265848237829059670258501432185357199105489698792126648214021643410008780315824073408891452386294770166819809042735355319133979302251288028109605717000521749827288222780339799942078904355337468169239324852480227069759142959172575715555188152674132222035361928734750265048177005654243207340527690073753052375441852890294087872823749134836621664929356594196849472924628416994261207235511912985824068083266373039652993155463891865257672930089432377226576855651811387729207069393100771283103382752142307694399465334684333134491216214564035343062970600390710291517110071281446604896454457765023738204194224578806304050888475347859741722476986567017532700215489030166728211402127808728182627833986038857496400593342414574466314548534334123658767236073756277633643783993272153018275759134460044569793029331231313517670621126406332333516195161864649181761340994878436949524377765496241612565621967755037346178370519024608777820208197451696812233363001759596298609158614219456812431145973829520861202964935524683903573848173967811389802693917577751119250706250650187526566312241980040963356524921241332338204213647941303141563616616003257311016151880459352705612518139002138236717226826909355612179117936170748412436124350056815652226247824293922739057405966018810190668862193979490399890492829472096187882799547558626172166954743578347815603000006033857873800010143992447452597851446876266285598464841896420267224464655710207220668796065902304513022526664917089813205103794622260128443296713949884193684603260698188635181830900656725326093134766430467034811198990638501255326387932675621782265155381345119666208226089210028974958103883032847886465928049552602865224684006874164400652900744491796586252880163886770727938002464463006755739279624178789924425067741927528226822772576167909233403709737937916264245756223871386165215141303534906308007603020030790070493587529489529313370604120393865664350781246002357945322670760174840165130021203960175768348781809757240838177152418105940906729887394132434212808509181844650918805004316501410928455423748020148558755288252700606257426715193244843482179181806769023247619985003188702684766827804761699278069908024005536150525179016396374379065817220122622222526993610310285154404988443646230852550437256238432230627318970380539254836986477085969956994710465992068242473363873247712726413329014328961360824970425282560967316814273264421946729419350578026984244144557421736689435094022002516371379998613160828395008938019112859042530153591193504488085733787934262945599859074437996308939375718037065163085728656136910467227516447309430122153704533800988843837748503170207408131243192339664176901902764393258524089614075519078340657467532911062380236374395892008288768950619015717810938144047301916274939975722472296876877942475244555001194631070367897462639829224069653304402768046138061794038113471292610742127526028001632297089663902875806268123567528994318586148882610389831838682208274543634791905592422588027846205950977207229004371442227856822120093548056251630419838293067183855295224406740711780983495670830482515962881080299034659413141312566308531279577408034570529687789981860459896708391258931161664095515857222292944017387294879671123324167633022728560350222146860352954605469131692973531569336118333243474088796752173408879350619181614167872018480366000828609979126095624184413795592997126208158201973573565434080333581838375299707323201274890830810050281014833741119629568497300916113905681217695891091027481122539214548303915789113802623945839196379134538701683442584768138674821720073351554427280713074364088851916491077990205338311712608514596401810224208004441145616289108587839785943910943768302634463972741165598558284301995390346696980899289230704158946034655973724753500218115572647386808427322146140253346799906076819075180688233270172198518997351346003747279116415679540333647216614081654966953738783110830109647165182209431267757266416217645363497216827594641812500934729127776632591392592476561863157105959207477375612660037398728848663469415316208377220825684004999933054317558510125459368558248333815124315760593668354077981708702569858293100634626630004338615068097022145136376238663635506452218954236383518531340261635416384672120395363944245400399818434642545227957953708847946277514261644151632723116320290842623690796460113169182585532407336803646113086416326789217283197147253613127058386805101984791805344381097444658280093051023890180308908929887274408503299336306004599900224728025036640882590018528653406428091785804084538089770071055866604563877833587085208280725301054639323357631103180984918264573782513157241263450544406916571312086008719215820061083484182206855398541480940277724529689715909750011804839967801154529725524439326758226686012005633807025590022094173757358598757277546294097645884402919305698990075817614488962684333470671996258150158224601334799468044843179304326545456116567466227786310715948126518551295385508068800914745980947749200058580612499381717379288601339560812265997040762334738341365497855384567023641911819722480757172320415452652670168236595799090314182835116969244094028549301531883819854656236056682395541811298682855752273290993677068913094065233250204806606053821425212113052923963358143979438011122711574802248050880636889989161174623612959164805118840775459225931646259600127734096944861283826207971061398910467698724026257962695607129807701746615088576871533470514007774047527460438557042713663138569374191445855060664670285231169161133279239650194339767018236132649182416490081947379562509309428865951418057202204375752528581666069803856606635117749552792739687984575795983865377648379882535905455721903856049016325572940407680271998804336870051769765907344509355853104914911637104372092463529051463720598180103776981785109542596413423767426380795082054535811051310404505455942716658723481570479530084428787090816208658886733489827385003525226187349968226882830977977367582659931271658456562267457649379932986475461962889723815332013354215681492896383802745627994743714508996256975562738839528432651761976012512026358221752073959858582118415654473433279252153412475577903938345654516226296917565225939193739876992310931676094070010945352135417980483485743391555828014423505528616210835662193979752174286465621622932472503870917281475107630143736459567142861913183933884898222892353337363626182764211250941783871494522307110159957245478089743079823972041260786084642036359631824258005689518528814799832249539396825831906455783979627924384285444831824220147327414028161540050691958270994049803359215132351728600058996049092486962947682883904008620475469458572238537538253783405463816333633491893686436870626035226158765230854746196838969590839421678323322037177301168479715880753075795566149837317226897389670400252865077876225457438206036627352413541173150408534987839351991483055763148683841690504706486180696587671591355845853581015819128513428000375648389197184931580925020326037993455221172425106289436271231577940661430381065243313729814935625079391098434315643225078098586815322803709143445462087467235542743233751548232056014324766161142158269104447672344577776303124471451032878658929067033192420462642608800527576939799596926728913991849004825266169016673845125582904494216245459777702667073565018114362051062912268802016128416025134852938134438675323227601756543624331890487198876681221721685140128753568756152940514140716024650328222093783472464378179114476425166857525650576354246815226505404209433611709757854847707004238507189771997387571207744541831412032112032128691847221436395437616212599593985498936346875669162520967796719202413027140195352216392091833033767606392163812864629883475050213385668433100334620477989330309199626183477948734057725157987720834659740338667817759540541431388889464771667614419511627215356231539556340332544847852257340742016223049029840496808738636161046562875535987855873280643295589583714584940643704983768201805447223598486257397901630872995881109804297772134419985172402330202456189008767584694428169402239226757591599421742460712335884776202255302460154190480827955506287844962578971584686360563395991908963811572774806394719977984143259760487248503150305828826456022936849765279563539575167338038013470445801385435843166534785944762415432837596242638179328825482972204598788406874073717439834655233433768847219890905521120639551209156483036636976859671770959024784430211568852108373323252881127606337003438799113559492090457725543148494111220107150315387238188553483693921454439893170548522009685800883258767902005250474515620868440109405316560023660784524260362833413519514835148567335931232987012847351163019433270167372123681264907862760629659415050661549399163046767340045455663622447778269887282810582808959707170799069899456119269663855940398881719699638651686449913226635850232593657702729745471743096155499871042925027445527878621460039878967191800532440377584607731205739824438529873496169112801107478591130197208761813454599944557792202379809100690428374433387162058075347400758146838770343504182850514916510291912465119701869120408018411143471598496697091963556600705008357456754677278003150785625282793836023480509778629961202552680743945657481158409140352922832483754617986596195390006559188945153891113129551980324644818706815195572284958895480163797115992536854558120090117482374763206567112418953951203137406515478886801165605123943228624452637890564666149793668814931691803881014308949306932466059519341193800654067229204689884049224312461359799378004686018217609767200161049176433376638010939129519298381140356268827683059090740474339481040456957114971446946532560273192596101133677688571441481473020056395659437013773548520909628250788685237784902818479199691760066672344859462951393745467956998565581519800721356250078860414842287908711107429052484296630959402643045055704398373845216237564567654891617450915852249163023248642146070910703828672387470551571811220745057946760990674936604473992377386962211300362954587957338858230397280754564831014642627248684598927805909164437279945841252762477592059006485238835213824180686092862839493347247250801236659150529389169941325679555180915403016660654275671278992548458135634751579027835189868626940499840909184897387283238120478795035160182046017243253258066659716880037902471249318352217663741385763159254632705658590824316829159751410866877127012531624257619346620732436618770913497525879070798254175863286788819170172944939733109596466568621062829576117542440493157510278786650102304130185944784070263972342335171630472058752718019418370087737284068824991587279842544296475120122852665969313409450377733646299772417560978511286511230538364595169147716393035449342671264287820584270719723511326678241450845519423257786641848771625601016702857220518580257804140966840646835304352159991636409607824301870895762065341333698519336371023734489230797437301881003329639972831457553233712427596968292408432742166960237241211119273968182352582183440869468192121804829290646042787166243140378837888899412322405556907953424035151314501069046612575604353199410700801456963996749364426450244481964059344824689793863877011879517087184823169646841361827271536983996213045528307428198201352266733766067170663193248779620025269341632688400726245556054628774462549601947165350449024701844972022659306502144879504240693719888929444351330024890148439378055618194662265482489269712978479974468338726884820808974500898685117911744155498208562119817120966704922272615993447175321034462431617630645246707852046068771901567048219999454871825156906102384387462830391753767853495586706788571030746454717563513852811758171716564488607331529821464124309420643106666341161370758285082846084895365643442336655437049891266237132902640351631967427503334034351065319886067219276433234590432166434848693380074565709436042527518109796241146501323083911114175533173794286244331448357278716769811808034772924522165205939240849638550939736094191706641780782765228249462244837047085811001262045508801159765014057258091227761982207422881848986705915095252000000690034261854280376423852342013264166577530216668067995275172522453791449248127370240009837437337252971608240449092236589904700230151690480194517833299445124400235311824603620193621791904122630282201920235419799252848056635607786049526455999732778397184810485093940393868365509622794232065384922519799641006762948285962444232374833151641567824085841483908085566586566412401028540680263724391989133517015083143469928934665714712059203211575744606119032555788728388437445318582532321221282414980851048653926244316007169789376413009733013565394586526550190196130525804058639998673612168203864808065037438695980953017608713997250971974302028588346320007916489917073610992495419994749677601119747441483317159318281329611513168082564208731244456851212990948442392315991765483496847350790944012193284207011556590122054583896883519769903632074705372232405999375075185578430428698940551444919861280244215929965595069016206202657070077016364057990182964879187991572178814347954446815344232652424653952453243102653098361563645270108468839483488617975271847077286076004797341924343466780093066615098278681310142557159851863841485930522796548626378359608485797818175518776763469169039593097802433140322952140954423202496564999894122843199302774007274019324184356289545444705948695635113612804301144205296374082571994175939753418628396840753676482161200548060060305665442262249247954998034838593675999186654030224901502767633322547393278012076980999301706886888397673897730666132680786333274472024688538478253762953195035222009226833878421525764463151904802307126360224560657918769765057038976644912541534379124511560959393709459995876062799431642253036421479351420719112615406012419582624968436738063206292946411746488808979283474961809621269185346030270947407139967772377783711167352636166343803971449854157362733298494073717366473361820172410949247613088360518544800671237713992162215864586916037719612779054524103840113373627289140642539494639707680833779321956701153077771520849096985278739878516708534825130941427062891858868867705245748602598255849281291621233846616558034217577552562578448978154774818244835802969634508860604626568210756050759160802281197536538229675924703426693140011122873997316529960385108994207248433136318148343572880003996162094093136492034529984900236733057286682690485024629640079494649515483893585094663255843768837956174228084070442917678049737345242157752848506757449185922984928683956469482471276270539861799535518191917708791719986773080055285880352694971629510017883008402386896910563598172423121846851303703787170488077514219486916098667596211807766395327389212324292791102132464867529263529971272293271009996201397287720399119060667744620379022801906537260284859502839418635647292176754444042753699986926752344400990787991512246695024286827726528371313223669217677759126467194510216708958963521100211149443043770352637496392854465247796093563305953751628967607875946718803917778841708808502900325466115298641311189928753160063385817417216307599549246776773402156444228026119219715665077318755038680559613743135141588900976714771434441483979296772704782736460975622896007407555995209965262930436911147939822582133191242315325890683008382202022022863135438482384980451449836408507541068365867171554425142977224424546104029096958569647257635168171213369337504118908550791920616990309651966420392014265776682140461134402026537828844293704855170989103540927492299273736050402453434819317001955515501549510005985948932167026918663741682462125220833733889832896343794444438100910360003712863466284450866097241619823330814087053624576486120703363880663082837358961831336357671572727016221916156617305364887836917439055897211807924946519189377285329679543736026508145492550653142670533571846615688901302454995084167112694988958319224045691273976939740690663431990652220261594515947629285154921266361097482114950995264381220071401157271246641438338429639339310029418215307218746817255643731390729192739157811750517266470882809060662891902689885639074394531700740551069398040667354373835593730751288853307522726973862761444381593508962331771063066315779161909106147650081943296524895400411719638824310462425968024890083191352319481938710331979453569779009737721798027131830659866355792469000074018839882735814439516702123351752751763295998079031092207049960949504602615888916386443601914516780340203123677271035070646183229802827386034777505294535890178438847519996006916377816570654243632118366114128704117519253577118669625904347150378094539832783583985955612324575457950174662627070444804920316060355108306231191673503832407228668875838188893179607943699145930155496513232192777654894938146254840802513898628367371448430488353237905512305481014500840112548785680232210504164960710939301128701545383411276830264141689699720632120802695985804763546435924259548343807673893596987166390658130226058080024269154180902356482382661811672857310363935405320129416194985843889650783207031942184433016494851948688943518026940912601738924270767912247192239994105129689892178943851929061061478438193144915093355820930315945648181485746837453337366080213041183693506094806398146392158962186715875813339957738441677496334178455504692836047524499534770049697065847845202299572340087424702775451291007865300694458717214080003893645974272682079084231592652101593922113836123173837361179117391679966530021602349512540352965997001933669810750574907655666846166755294532952624990796818195071089613588280411101235812996172212298772024783016963352708530983290996886304497904210078320621559268651609724867946538373621096214026698720034474899925716321229131245923066360886137150612643938901697516020343001990215195700219501271643815473578574676362560137273801342783964053650586439204232530337428762797747460487225047473110903107800405288985930418270202710094581630112486669811245400435594063428873716152145478279851628916395806630593536425726451944850018581701785539318965375113035063208212579386857810795056339862937205542144451424677161096166413996690728837990695788948352230206071470158790617852211954111677638899536091109507836134139489875683467445033676109810632451042798391256286810669981273979437839471272534300360359676657773205914062645922325498085237027906503289905445772749016033767958217932385909908338166268145073488727303994992916697790899029840280681067637470383964264162347618131325718798661494235983285064778967282676562714516311590840649652838090505550294915846181135834508367014967948288111158062481929252123481028208195556026847489204950760152225972489772642021581077876342771722858830938287174833513417071412405029625792192431681240068829956649080940467283638698208714188735555703294897746274590291197530036051949899453685919877672686539104812744126729626534170432205396916520781458620241049481787002828298271226496927018218154556714951410944308815815257903711875032826213727356196076366826634038595838463302345231014021544857137629234227235057614392879022915170153751245651200591540656797014985460888073720104894274430846610768557378872121746484687512027175683455521947090368001540031373144592783688411301634006470184876837489474072318645632353355398135572782575637566852643449589916043805593942015302851581231784194992540766941520927286498531414453382311974289599716207083689690357946256725276816402251022610154427500710984477535947007342773493404299309238544153094072525881460037826128054542665095271021297129335814455147300544626903784677560097937561650775003506217268245727990551541588835667377036680733630913877815805689626954850434010578293627969560520148504433652829633326607192432876877292481249314564044858274333007876815285204316893401298904640666600260221487117197730827874278565189337844830253595461461421423678206240299920664957886772069897426640871348689538837600472863171597497943579059062523719740717622764369595354223392794298020126883442739736808517817175903575671217241834386852771388482039518620282370979545097207647546615302451011328139395788285055147011356342293879500030474082226432522587083654928350758355477486671864346893522208118021321400474886871664754920345531156826509394873867740136151547557825768602796884945515097093322901858643277360388689753717495200060422637609771903901443217942442901730037358368738170886889585456403880243913326599736657143401429312867659612362842562908875697887177985450451118492054929336920613965518284076962197231031009367017083491990546414994423124429325588765178304021870577324319412911466473488902523063019781583266115791168528792413162616071089985067713747193220797606953414900627091812617391090327920129506956200300051721874816954080820681219679226934987613224249151436413911197360346288855826700117764881173878766268945541491907911040189905803700670865541750118475119643327751503693556913126710104215632505960288651973958018641506041494606299335187899038388345587822801091479402851638709512672713931086208947249841717597308963939259289671189686041488611596473849254328124492614803980377692062942467816702259587642183571001228212172633403676922085601080420687006709125049770326741691421080560312651011844987982760071050428397164626157138890664035149843466775742340145313909105121776593000389967355477776900141415783896480554673893617514149083899708352506180685140318298764441361967064800780662753028947383444383891817248041072712123861254155424991236453920674690921814301447193602888465458599355269417329936305570092829260306939423632842516914455436307671982270223291428906167019161529572770776331620355237265931453239329611626363671365047839614055387272826897545237501710160755086738349410152175096112377621036309724408227734641206758097322390124496442445546808457999833623405069145716485401424157009149231850113984125259011432784604880150364383559427179685602917316645405985479012511034947062589835068234922008503937452414096341244070072879155798315978923150078871534651486285366516734233386750883492057842901097052184122148617033268549092342480730663284056554516662051020938782622203085198668082437128841716880274374282025857421023071258153201588754454294071661685095190663754228103758144338386078289644268125030014157766952950849608319668170530651001113943266223774198647608146111332072897163652705100170968186725143993543279576219757991512991471076979822458223533877197639187273097460955327605047609974566163623948802950576830990723877249925635973804881553647038225372459149081551766781436383937594834333216724198779585788316135909838064679128983087183394267945656965342347219834371108978843474811678271179074771790022196561487827383556573350318082364271851883838318488780585673583693345071998759500442344621341067735405001349983578064089503333520899167232151495356359946708379285746556955506353191640682515961731275121573836505031712554754836376775211426947151531318894300673079553043932562405511288792097708642248584552849939371510858161519198631511121502640547163253835044004561503169646567424035500400525550760678768063477603027315429997584152628413032414997605889858934622161747515026323927284781366990948104467774607571602409744207860495371531312287107851707993764455954995250113998136798441381450376802346000156050136260121309552284763770301110633958325109351390479080481504163765111738876642306461975735790934055285644693295859595403588726057464060912247406890942438435508675223553970366947258507312976294871596669210677383193605864665014146126900143659254321153904198041081787016167806832151652229914100990188017059034254781568579617674481905020051904671189807755036417577733038853802825174191804270726574757762513723824822292730567943354392545741338132635899534172465418210208171347168962323410330866966009465976446259461936293647323285227020799816876354302136477582941174276271832190376638198189895357269760458547005135601157312606626521957300834339903506782866589737664221052221707739053002142149870956897041572151411281928549653406592264616840376300161360238131434417352880590638400549653272237795581297017251360794814238074291315813633575255249984420058746051161974785181297926807829230140711261893442511102425155140495996959696107382205938251694192408672068499459029795775473077357471980893447670760744889513048384178676930791756369642955714410306008777554337620551518096158032353384285768976162224056954827415864986079207096278874811632292685944433932632088012641304840063493320601139594826982218934653892941542590312529928731945899991376838013793276028048597508878570942162335490436048529174558214085025640736325803329998523109828931872720207711501787727913344602101760977321602640481487913278327763165216690928859226946036559017033870764607967673111105918883662137838228716255020522141782813057347245139278567336191277240722994370611942233141093044599130214198916031177486417579739882286247192040195667499448819204021929764987411931570628380338244691698109381767876752511832233362129915978542646030892980230434745152483233298513832216013693072982997448649535922265407703167744902784405913538512504711173711828631363043923316826294787730176607645400673246806614635130682506371516810646673195201136239571708586786029516384961066527753225423116051291034520836630899161696251784180604288037009764335704963757584176841327169639028396903229084320073042128031818007931900770168870375035706727104867048657361412310141614458465964585606131488996579281973463338056403483430115260874422300957029701527133233986090212114508076252618493578284635923919681697044760981160149488913539935127303952578868983161192040163934027000942476184561146797418755648864544791972533301625747395072575246828440923943166973143825227048256481916759734427902089909036516476030711493254938374229637471484742112200402667941453134518348637684453577613129043249624822841164163084953410304908352689573189189393977205775070627830635954244337353117618829027308933469446625415138754135898975003064495075127536465789609194613829323216558815574507763069239039994723051115125178027549925340245146056380045872516598462712204652254371665218918684745954484076262840184936274907973019352263449465581746235648267433962707003886524669013042515577799032631291224451267605145019233258643514937297445198738982708721730912768167900248478087406921626108489624212208610983064471387448334770712133346301885552171264186587769124471311330318668832289332963087814154777172574810844812030223609346351072712904021282475103278714396944796713442494973066824681915188934064704054985818426433875564822036734701448123700524478611407220757683793414312938253133743517613981139648941685444643584807034052617415218975958675794165171153896709348282907158884854847329771664074025867683098553086684444667498619596866239241249558822189182423872442705161156534349232315066435254821108628198346112015231835276269661449138466726870015709885415048597647802125441514465447850153874866053261704167518962073339919528840460202296576713869174631656099227936946237986007917324857665194842925183586731091708745506809616043224856289417768710069988892009208686244456375467233436112249310951105309067769073200351390326796409482246897740947962821842336634241846969930377949652838560455878023297257469813292687694610405481288129296294249443278597418714717723016217788368163739922669328848132470561401470760864848992893821045054888846290641945376116926692733477902788604231187373037273361168771540223867892303560563006275098342747187797611023075521095768640102597597762463801560468002450992539702776219578230442039237291186042509864590598638872194025912716950604184155278235949333848536718753127993234191593300378040350406292200766725876157362330053737883275805338574487477972421410638644249476702634994510968938195407382792545748256703317683766444996872449643120218266375500018887252782563281195637491983750299512761020120252941943628760947732100505426288532833676884980653401303166174134581623559486561015958641680828191312705302106363252492618578225244541576640895764468681340982313290651041775615460452886895606808915788517473852927074665133652936759026193332601997975001162135380487445945929608928399232979517820867958774812505426524570245765717107282447186020775257001493889223631578457115589812467048492454870079546530730030501865269981425722884158525627135628061684659731508840640141036618471286836650110085693886130300535898441935133623653980118774449972807309804021393429026317363999343623148458931020140486949941339928097170667161021094875417811315621660480927095152870051261859809732493855084727383532518442807148287488779372326584233124010687914141897690142751702376275023636130170816422890356429762167837195169987213096966723880694556255980876171680449053684530149282623990666147681328118273330174668938822843843778344840564581630255640585493973045529503323372288099183097095296450583339443892662976897092395948431054414113594708674495993333560581548639870707843728614562589935263825333431639451588207618133770891143179950791341250071530039666975264273517561277646676730035955615258570814764337954234001702857350969632349844317386730141279185613772976492197349370391933504218904202617697890305001691689671719239764204656721668527191898828214354235942519973026908499789494323039253445299812400725834804654496276138073699738605853472195941750832665433396530474154099688799391488857221956022162076900377295609499318250718338770006967305048132058364588717183605318440077030193177554866311673984212528239385932575317680811875162181583139822326787398049197896694359152195788836201109260616692512757048361344785623680892349960787630992264957895809954111667456329629886541925332424119710401638089316163731892495192345695746459541928664350623728272225245915867636377183763420276759986070320297145103639436916380487627321080785834622474912758194513887779980700516565938193676037272920031792183375540166220300533324595234414832171341462380528438070989836322064662563527804400436665255001107773554691594644701234710812987481806587719758378777253053237811712030538887574130190684059714897050910027380937501585675317211788034165380323352388777948197316621190167184716018189625821881128646322051108418163460484949392097203653131187464950650593925016569834902198311740656817506087152126732259102489526608466199657213243661893177175798839915819976697271257550691005010300840626004381548432930803775797363550647508215684465002489697207830032061734776937219673213172378862964412354706494552554324445396340561529385968012781323424244049191979172251017074362941381143803966638610032879491000880060434180096101369350440894356840473047863417433447870785685536929958269382817072715346570318069223098476835320432858893813710464394589651674370195589407014612934792544532610577327762981652504172101679098089653114694697723576847767874228720157273493888495860928189154851255129908108032676531921351540483931646636781862492053357066738135330674260876041852356899815856576468606218252630556032349186628695489224372604116232249907091775843091113191188036120606978802615965773164544061960050360688193299832052200537582490798275872695376773685026005709716483345974671597157895343004334482357733820151862434361104020685389266647832435190364044404688430205647219434005613584427963009605769503295222326841277503995551873382946216419190085466658646663213221507629271407534547727341015812920637646677577080352094420835783257876010247578751092127870349097782421698228530670078993894168240991777699370565045531942821988601750450864536569586623412366537945484477152196544232813797625797949936211508809210795742533894724522262227503380639207043901242844940777238912161611255393396854429087409923098721689701532816981923482784678668631430904832790508673553997967859117432858888229528094303395787572112893431060992045444586894202659964533357863919832482710720428045029483971076780706892958947501220316953247375976696065544341297101300046207165459833307506640720592557835516875054644944145411218988780436579734645414514486175664259385907055938761189341782035258600444415128005864735794229636027756109771219815353255659890808062645561615461359250769838762008265664239161191370763694729645812359729529118206172579632725296694203787513384330568595948121501239033142156271065834709524915004135895464689798699459413487445418531419372329482508923807227270936832783399492437961239923004046960124456319315376561628031425834983933455722744881184192115972022224931827705068975813608652481985370469284409897233327748578134900839621548824296650290793245726443520968617428877602413093505560127037930581601347036777270744832976034697590419098555922713004007139987262299433859245505903077135654683654866698711849846868969460428377426007413759561240209063625395835503953852811360310357445145783542602350120647623326020006988689886711571435479668623761628599508268533303077783343542828483821337212328628752823813805136341731304753454434101249420681642173318627874467444171206144412886081419926835504068449024651636480866043502060667221022068150331228709813938403243082504007590938281764268490729425307085529714846167869298049524183947984051680064541944716419460637223278365032424914209176194611105551793742518462748016675270844022448697488153134440805758869278709009797438621854618423351241975617053774876283938349652322845429036333756966954817004214787072441077852900701621252338988072914885261161861509466934021358135973105588065659004516916027329154127242076422023631059688708584842865290715707978752003742140433944286825470951455185628051983903909172860560106236784863763351743471556106880578458621856049084757463144552921673962067070312623949477793607440820026629074410951305861215462740313370936484495398262993910952168338339574431694330596180997959603933789580503719133170549022175899054138145003774426347107106131133540351822087760196568744987761325746749184549252947254385999569279623465256191146601848812187064330807483570647392699440462536695275013663024172530402290736189007527899847675651150150251942850127652318911132958672432645319089911072670257063357716097019230321388811156305696191025291914952953007942742194487908450198566475569114633110627226329138389912471419434047025752534538322699329089816084722639433065938022083600036089953574094490395594880278667227367616227823128958826423467281052393239051883579507084482148633151421091442477848443074754015340792563393289039543641050174506836205003082850298426870032739507512935195052280383581480962407929089350407365005110168974692536804447885291023286260820475051342829944242368648073565143269136483538249851611026342796830927592301218886386562855407860481727930030127723200145694504551471872771393821697525900626983401321278365229210273332951945516443632018639768178034349590638703113421277962554606583368917409548060442686747826765367393608009558757744083792885328890399502936793241171701407763759832877522243393361267326661560652646041798179775052368987378220126609927034422249146832274039173439754609993835253278430513818602271232041452833745582870165741925137203154214142964658567659396533012189795844864554987752907112127136858420939453673283523427385883702102946075678767723579365608074882859913969927927509025529388879830481685931368889815427062647616684370275253123037107422675386882556557892043533867250722217557977828392701838085100826121175226113202059503713210417834347286156428794327454877891372339713753357400177554547949768713584225332841186465156067046879638036287985343893641743329054213777535687571210045145467056756839602793470100168070788993816156195149809423451216902596153285813020410042929536178855776428031204052216285720706597313530342542358170753337054878803963315650414762248935944132228592754983701877733197147902428328456996216052343898359438498497342885653397598947593891525044992078640783646072178720320613023472692837340228937648552570447610373967172236512978482539625714462597915009943582607821020546136837095585678251108244184602839216996982751833872914480088911404951097550330930401266459969020712732022694590705556929992883996857572072280413257131160589006100541458135411848866605201362519673609655157867001474256170545555064617542228819335798977524448763899777516167605596944075767814765076906362352510933877279806051023190688881270737430890088037044498733156202501520627274701972296933545319969342611167966368915584355069602889983583120854702956854599353330363799431471570251486461019419716301843534152017008634817351375950353921551905807599866925651360873197061109593361714359715410530260325621341637973470257085178327370756537258005191320794372060749156040213161113023227192182450999396123766321253879602992650276430771500982770295230267366626625222923653345388399571453983103387657707946722837782793981596488505041575612530260555388152674326143283397384396228615118954004640221093268831706305092968376434126930004325515607062446473035847820615014513233345263733081277687417892465850546272133387753171921299547766571793304445528246188174763725285898276077459421025680364601833717193245881372071557715419234695783900440331625978584024330652453976699326619005341400670331744358925451032892303067080390894618659305834699280602385308337107111554793167025191453991713905025006042964854019028074496016916024728495990982972618779380223071971913390611503271992252224155887016708609006765367667943893227522545827225422826445530304772739362669478677448362659744551903373680058942846921453843886205657047094665146589644285063456955936252781735185995425399583742387829160119729868848134316494344481452844065171333549464035052737895601999507946064529091964525105245889594917321825255648488884362639160870421090459119923416240356716360944169056784395727043423721660713381679562851329798269793290338418831935211861968283637744493928706600137195601357615163583283619747870541866461803267780560451697421923213743746126402112202498121043732708761146229974282344170399358987294476967215465704926468045043411714925776064057555180716799640974196229499680700316910014436029535663381917278118029847622649932803616657046859435329098494121417279157389519939092580987863642665213361659576722835849645046471837947326138091616523890532407039697732565980796692534704371930091206460702382527433346866894611564183722437386869377532238980675483139001439736598363316749714390892088840033445790363589894784249622504770101757724806384277422644221338636678132022986734562658115081402767374032670878273215347561063076045823931233628014978846973559421908520401289962852964218845547275701890568358996184453939858846401170484055677620125597808654456919960115392361871950394136366119022188058806304026857028418439998498171292555468769278367180899540329765660164471964122025195470824416226144393361271439605502787333248242412852491149460826200996744193227516111400345751618859613899578864330313010478553135872007600946497563314953076015222163142208125682516660354772643149983554930925953927754527660789599552173485738196168250689994971786609884763389440167986517141403166317567447911417775904795632011733696525120131847970694126684922255318592187408831306600096865987285972254423822823244523787186193555012453227796376226085070706246717941791512094348706341995642411052076306199179784715595288973239683299593501625442190274721901249246485829613688727706044942506760715376050133755821794893522909014708476693629463189106484155195634528538299130906861155766050280256999009926921687927102337514812497773749554723706377833053181752143231543906876538767182181647574330643758218295844906725286504915601801956904607073679383889425267842667104010700147421175648565242026517470219043721468633497221978166824500801882856161279430910788385466084511806548347842848422513384060098460886775614965091183406069887271832189421248875527306379144677787502053295435096369213397853600968849272383906091991254054975829208780347111544947355974570201314286043074741874443546168613029886160113755244811972297717774044708236918510481639461363124577060078686789470827821764059388073656327139530590427045009778437115795714746649683776564004259776812173682333977673747819734340109424688568546080694875408584029250066687792446088174691677931835744611723827802545577082456864001781041473912972988835161946142616390239843151853091668565853876851388924162387591468879062652398304467252320526919114366713412842453658070424404452521429302335777810845408910080889641286370946605301966660460869287915132291500081786096002296743850097002459219460131092977524412175814859111787701363149389538446559601157507701241740090946882668096347031609305754420683028960175235133427765115568210488843707060108365659940745848421540416258371001627067843343232174467138209790888501107379929589966742451655893663080801310943982458272311152944481048590405365478218673839147360374488376317023381919998339170531662091753745652109340208634663548568564068681593213015105676365945392963793299672386686465898026785633736998433531560753189885573579903788425066592432321892394636085906958581114777612384160484240084726946208389011212966591887753723083847911296675364526295276895304643255526045236947125259469972011610244321268865606142294448463954199418397272394236607297642627265094566448606282508440433489442008184501290276097106294046370244233581014783565434920620094094884613696787837749300525829089087234365746087192582930759691763560367694030333127911140029695087846932182231085087031826338428149989157092798794483357928363569899418259894472021286354191436928376328119219292666841878093222495606596290859675914512624243355228396023777239594522067940834771665944241260485980961223577578624402507048692191041133600875545210047417247664217137738069274445772880207222098250406994142816040551412554145178478682388658822375266161559210563156573456756735577107097467805625323793178602508717602735233448869588885125137903769089600270916538692438775612931627564510707207656027974987804741988993793709388674452165032083034540298774635046268370809341038380232689408675756165683299814887566386572916663312518295161235636599482693254130694538819508785626258319700963304726523628105435231707526740399409985820943016745761616042148523764032405590205666163366789984392164454945261813757137151344558790856697289413613505560702193736012487570839512922935605716856531537312520870016611740079897399673710569186851696758943725997843454686172671910497096461580136718262787718529818039707514356609753129642286605139857233115292654274066517838717315934655307801506490135772345406267252591640476929973336787118132893071426742649468038957293728977706292794428797707287300042053757151723160078176889154640187196083787899523967810156898334979487085668683655057532027744006962146435580923812689919952481431965542586651091763452281068615416938002014162580432255088267091414146431662035182330410877262091173730846025988654066689989539707169038930572104763566023231420441716945733816148027728629809030731031323632347025038305020354270813537238920459740906577962817934896744657923698032983098227086088928758677475269261915827314773432341569132099632863935493305727300208868201761011440445225611398584487735965430411585628290689693053268853208929455168800621814787575302872740496336380887784533774644922158961860080350960652045609390407899916434599983013154262028150418240950880417774071756631230259315833041357898457917821407020917042053575040340856690802004209261201436557585306168524144142377644811290850009680810427721591630855989142122836279284567097231803152362641078849714138011096298167666280585692857133775632476723850005685877349794985487520047069751050515567758374798838662107328719088699087082868908445220371117832824996160439601217206405961252872385691364439352806539879200029634407028619521018358547553528035483247254474441569551601898111597169407493824775832070214795528762994995012590002343863618787947601601490938922936000873221288489561817634366552599824037974817327521970241330695982411596408899568121016737903702563729249257516104182104903649042697451062896573178125669582650288615776178328076055157895379715027261091357551045701522780924321823597007327730706364398179990724057607790796133237098687365624096978293615539583883680800428241474980275171803680437123202593163735530983992453135733382156133455699041499369140412074451820177308072575256544241398112603050742450792277069389453809090298081798792845133814705605938821952479067646873019950320266065754749451028367145739920109833785109589877699977978103306882241577987683411796999090910624865533375631760173220220017527049152757879620332784418882416920247548000089613115439723017800421438043693514511243160834515507482273515631058431385278559598815471762356501747580524499603118333987927139423699307045519174290358593929078697320776714063447677756536368916918312111628724229191794729363329835875945908798403535201106991790622878843134374575640757891232221872047800773520053619112443489469662155451723693106492838315755178721122781046823489174838096347549412551692851388295726419464046231988016055449689923974879871334778284387271435607875044701572800339661079412124051317911157258788910073884052473366730801631905478743999400447635556612088326413991506020521296158165295536779904216600770049635018036308182966665698411869632379756462447700146283153563416617743688115297524120827341781935531636251455662842946901941038333881136818763411765006723037742184787367663621268810999485671085535499440013061073493689872277732075503721360761699066633051854642143064688442793400236290949896460735981292704154503468563895150760482936479379096697755514201724800322346984065413013876256965086897668109488501472094224473013650103681895957006899523470096434128816956638918391680445182575187385563680106509426145878761381443563908440626547390858283916301198137629940519246366313388735479300910458981936445615918515795112742646253046472172448373930115326934141546650393250125536743524719313229803218224681473941485598023759272674008989692441713907317833919006452960348973957341655547440967576935431934205008806745329947712032791503640337456653157092035078389628996754505349996843211250243588287177004770556426953144133172750845494826287400955066753720849816171477813359327101772414791699664005989812694162467584023875935282314960235806106727085221867704337311245590114980441069528645168412837008365509846040328571957693819977792522065730700843662146085503748992250750354579703064862284789654452362374646913557249822524635907437825385253370340247330263458965633934618707250715460354839875180123059664858402335095334639624942388243753231425799369249145312595407814818166419985757314004028260551941998299659214262361164009101843781612071581371318058391199787178120992768426549659716638453343035213252271744043035786829432338263424160827599112961406334530489807483216534391749943878375582917266477380090725230320754177991099249907651388445538015079560494938951490329635121996360980781103322184456868488444738561517852774260625376673803336841031298769619481278032365955661948603442273719951712533569280853063617048809575473216180912517672353962544295962861655331573034899719602759378616585108816565739573225623394046464720662609606036085009784114624548513133047270878498492204054319041712633566654402932480091080160065522859649311215593860756100579445341787405686332357242519045697396264003124357348194017145096921730719981416102228583240793733987226607924074679280173480104765004312408771155968731921253338510440658581241972410975764932391405230123912020023497454915564228394171507396894538357543028354172457144378264583872735731687664215210922255925951803856689271457801797729250265281315641076552867510743123011554364623435940854818456647375091513638340004871959512152923283298917299241996175003891893198342108065217751619968888738895492178556981675469538689869829597429843353901514346030845858178196962613986569923519041920847372991051515910178449312080725900635674950373223837384436020706084547759355145732448155515086068914408206083877744536912688175184582158374459103622981700919229978112788791555300678189296077335090852122217375022652319825296145191921213478392917671338038617728945405931140650962025846014416802055310620408857562127257525674626426234989496069456285013773073668395405571054609490863181968855032235708418550160538981175211728858589362275275507939169790844177698473709593785382387658389469749131689506057790674128365479609280962626201126534200118845909247771453736811772071455695213229755373948937542240091258825353690270385335574404518001135942143490375913811433869355180344588781857091135940484703795309418762780784171581585302503989868139414788067824570930276741152666726686364926931008299673228067343396366439013414015738931480191294520210275089566926283634964759221140642961666789406512710010039296127099428190638635477034622088977313878715730110072314898237382750735226286443605073657294224311088262841062179350824844689115417819387892346925230494926708878825645075643186496050443124294873407565055730976531544392962118475739528570805271418006124578114909278836208180098807248243403569278243985167687177849586227794528149532966564065890671941952953794390481490244554884257525824328485567236672487974130659176440305376894998178250130303821534923825566743497748264631481532348528286945522251327939705450980494241778378645854932007109650795254838187431313476819651253177304734685189005885137214047586592878649540708654425904304607189295958016110578998248081857842638344495603754196956834301520286807401886015218354241369555686895683733425530529989560740208081137878416858726188988994537793323218547139183805097652530917218680493705617944404762193567703084178834399018019833602413122261532137326554096906397035682934448359495844416124962421285183413220821434673955678006046210327453174356472842060511696576103631742547800441300516986635576394110062861398970171074711799426540142825070647693684274955432991456831584945684857624386245836598482154133310989703885041199093882486875779627706181980354739892916646591419514008213834900881985045546265548999582912348969500048895220329151515028770722751580572936242022761825137778278185975163889709336311217880105185553564852654893825052924350306907709149692366231659278810266614276454159878548574513977646524240063648373562369882033567718007169590904664451441876835616709986510871272507676815689831305374226670414228061684351935000696090013556455048468873722072541656092046533670084443433730265770174270538103028601043965198129339287654147075502858746049851616002962038473718509358542611856602318257372623284988849468170312910683840784129881923624055692560364505838316241399796559651143946673803333937378176287770496281910815932069282204007090974909650044614378451489623967050506448672693010770341493242916024388692588910834327169057415296823009138802520080402689078706871995486739510147255246644629594363823813102820460058595821941498100589901240061129815166287713629069632316789109155639606482977923495066007969396447225429177025792528007049289634167426173799653940153307620095222830925802536378651560762457139629785657510909066607112883519760841915033625448134958097756829033025614227112772939211163647411060508732463404802008562517094294601564228579633934909604315436577495420903981401224107309373967915228997977548850930981892740293095028251121446289603163898046802079530276372561528795359084359124634022289584520564832350765071459732816247046809262630343420854711941587415468304976281277994494597496121758192111622123316028295269479425015899968917709481889092002927124982809046704725872340204490325739428352207110781135818245025159049673514836224956563373093046701945646207554280999933590531826698212516248506723849168547703288934748373891422048851200048107432848402990381732142279174835520516471469417930453818459404889881085965424549255044279829015208858011308377519200362839068809354682050743296995541048741919941199633692740658310710045420963073034830263306834690903790809885765898711606468291971568564298220692257911938658376787802323879660297924833863937076308889794986475784646848968127687017158814522119712340649458697813931326625437518416555332016077830784951373451757635188231029338576395475849207034377926063526083758466173484389860865742271793798931638682586185060998460392316731124076998177270460060738565825946861878341764610134005292520200728078961299206034772926424218560327880529465480916837011803449017148036705010122169835672190535556648837443854268415785858468177400545591818254257937584460442495592797540939643815671157224928440867195352952475827789869177721332082545371234445902287677578009334267743288713461795413757813275182869559872466628187064915495351472008264744411643668524583752245836536766818724922636227523470348429728567745417211525556608845598729334560662984149159080808449759219054225805132728196689554769328051929737802007123230287738679248972311990183135431082326460643989775596582425297900826837333710138393770864416374364566216010644804784320215481886110461255821595436715894273879986739511424979747236731123432488946975820029540224082290933579203734359276091521992098201557176298966744055475157855781439887848805044892855340667317236329456107268543380584866719722835706953348616639336912526350589206376085761899734101828118228478139433664382197472458125288830759670575291627207064351765804251710920722675171387660455911902082237391012609557813784998940282902807514881242911269743450971036367521996317149607049189848168002918694320865302470395177943249646075419078507813947205809375949515967279681113144916836207701414683356843652825309859921136020535463720724882492481450983486397207773926609365843474892520316077359592511979682746192921345137089371596838961338274460615448081308468847396601470271476439462155439336794605740083586796193209673136662270850904971196104902529314188822544180347352353634709023071752767051365203928556976620767433867833808489982783915220367949873481401339929571634601187721008705672257004277231287665773799821305672122585154514284457306399051822316470127253123287716583133979611907443983047847055161020664400978797812627829518760214007618629748458002467044499283672814487249407795121379501634356167107447642348624538502476136437452927978521763766354088321083241611056766884814675788742838940671388122259455861944777645355960728968706139757802950817919817228427700757076806674819568637851091102769593067663587326665405994878196828389238479023904448431277777850958694655558569848202404654101715687524525057081347744296061952148188918492620066735575711158147468876876717572511177596303480243038787374844372496877390752771228864640212862109099845209748900733299804073471863803822482851977743605436506834754647003446987119955574302272151598146619505716620873418486214406529541299317102245623402011790494166209806104208581336621069792390537599336463128562725279778161080544129314368793680400647007938467242210914561212345463752617686280223459159011358806524369741397098822764672165453264632430574852174756881236250720497473322679360388834237000704711599844140546499961865555345731815446759811666465537723032428709790915113480614082828058628123358753977871896424473022583993653077249703587458373706614420540045489445982549118187494379071268742708021640863081819335020929606780847805024691440349146475502754994760080385689626531288864397006139131780858069677911588733592383278947728357612360050763119785370246474614932366877080727014294220279567474393363439496802561415816938740821922495680112707987445979433912682402831874137335404742917543799986112479033519916264793190352363986092583593864476964733368017554007928356127020646579146928140017999285555573022640269777077389856375987219334992875387944654577650738436317207160749817318279473129562757385572779968552676615493882621037166998127133764618342885149336734849735827391538753784528898182831309690404922020882157278182568864851125713467739798592902922930460654367941612104977706459696084208732025294257648580025521925862633541478683834709492589383454458518391100602398403932792102228169505967544158299563225073928882838758478299927798730043370316619931630437986625604912887958206098825632754015484006946681565637729025332466866397095319925051285536176081258807577423867710690693653223130147046457864763457374836368870957176210251453269226349403833134621192215698032624897421356593586729053760731231816400326006571398749436539253685812247414232699862877909218821474944543140843980624155256001956826116499705369255799967062794719467207856000076324939607806487169055720853290469381620330834217652061175931012855132912671414818281740491477929803382765095608984378814863329989886802675851526637461511211188610235602759564883461792991892833737342470814385941567799110337573578084009100235461604015296804744704362417293101586565753087746414419403441302679826809845097122450604843105329470538506154848392672629909509520748277827017815413683199604056086935722530407256995157102797335727301164496423040832414016416836882564907241984288890411660204368419049788213028422835297242878894871310796533137890898560154668793230851306059865426445409144096499950339829784108656377060035245054241365533749742654591515964872173098277328278822389611516524126317139537576583476607787051831569898934753501549848191342681496802804558698830368867763027873653592492433287945708385000362916390588801835292743115618224040227750341717227019556054109292205122240857888864449555325640702587482108950436274592635319625480995833349896116147356471683359335391008942508634830946750764922848990246644831840181911393053274005185912439724400436542477527626120559997147308485632751509237936852005779742875548246437648322570838199383166011879730503751098711657085090391601096304249519352733618925071875180702250845073473782906331821689046169675313507697017091115869052136014287213891128000343376019888642884531280827403407696010004590817450286238638193079481999138153337597855862765203316780864524247440754327041266493249268933766531770122457021035254542898479246633137780440143820338441261283355648602804921722386754291625419566642120883322691938090485205600596460131009350315650326494455328157253283298981763582635472083718548333633279545565454220378211162363012642149723075502000432428933015785711544312774268034557052323892623089176118100048621171920704554296430045141187521511943310569126181169711666611001917102066111006376445770155572375746190616733714800549120676257259481889341820429220798164618377465057124667617026505659780288082781743496187660414615344241793954547999440612745138489268301043402242372861557722715061154018338415401701359617469439268126845847086935367139106280905426423237911972737906362953214982649328643577902978098693909509542074476868651114541850021837778880195318290943877291012064802162705649432742341215700350929627795452160749281878130911563087022060253875192770093006095104505233707867297966539200554382390603471172695407010614343156439606167545018462031781043701226478489139507744059656229675705245367345881395502133777554523685332300697188252938218346842470000560271071408276497267106820437150154044545655196065858833824251584404476364851776046681760893705280153171189914833046129052014097509946638480712680765838372633597461501336744377638480589698203254493289409456416526536561514021363660406838100574683175060519340372108484538098741254414683060442476960252866726324480875283666534303243159606421710862859045447754579174674069508660974841498621679269802858146476584122282528489537703177822708313641298169560060526627470042785176173915284608828324540824893916001172980360375582717212336363423141396038893296354045661790967319734618443258349510953603445035908382641107804439504065843622188354636835065909915245478893222699374175864328401437161390191710463499777240216172638738424363410406466181544504768927739056113411291474835364201837786499595018143368816850735673270812748930260364025472593997566434014869781210470741345258560553366765048919164322689912058812122749085847607176123987476216041300015704366997488777621143945033806153066150857134766643247372285081638431457628263780601300637171301691601504418243897360115415125755355641126220874198728534937917615620339798098732417637136837259294576147185286401783503259668433892782464809888556477876600592955745363011666985008813006367647432203971218283617611735350982807766988333187240797586569350898810838327508080326205777372123949247653315138047375254333021161489516849058540449548492085679402224439065317921211011896608221675925493435135778431433621907552385578047279841344869052040097241776135231580778734918484654377810711066235096662968004816785781448226271851074405885071017793931911573260105008952431987405560631679632628025414912372019587391545572420635278985804942334577749245539283081771152516341867952432432531588930355259816345814722697390298386969583976565038872915104282423070847299782901316464090279661836446558176212218266170511484395503633332217937382785496021508891933112333211503060038233397056026938359962388085663878442556068051736610571147815064268636848996001192841720317604667366105309334859460400697173462803026352211354809942025191016012258062408107046384957759872468698515988214510871294672477967027353611223264054712358608048223868160142315469273826425533476060027652909909220920672829735711977029906973191842768130973758962841643310900245069270768472506902508921605238974481681793465918861515838896656496509441881450621287604130218550773096663099163054546124762685250658192164911778735010299042648844549992062594549832249817234240362672956967681843851634066202764660262073568128253279820303681293982073412791041363706262609103110005396591063162681315031084668415444147783431345338176340780688014130597863637824295693095714494834379284748466284180091688588070681514049454940057757770017836409820530275650459528708808436666604242172637248531493914029457904451234838403469076642065714698547119108720893766214007821706196626190003836676427966153446984956820213659967997416888784149419379844885753648276551802595793651993412145847501272289033098772938087602087294337485307044141893458195729768164893046260186500702993498762646212665818291724841764464171971229787942648871296806475764980485046978904788736761281595898607478863935234206723136103661396576516485158824817603905144130767564139896423779967425714540499552649462891859214675681884789302305520495539986082017360090036007497086058619989147258734528540643733035084346582507236021666441402518796788985503734502137768196436891945790503229792507467327191427274463321877711102393145690156941326291857368118217374605620030350176807312821174368191183227938570591226391410641652437197956734586736500863260356847604266918910270690139882051944257600920564103143479247433381535730300009259302536508025670425982147271979343068945321320922561749011165419641532193751967272077287621953233102491856980086956751498056327035352280087501494613049955042555126113530861029125802681093223393008649289118074280946674792567592422631812091120631478708686571094031509534349144908238528527122376099347116353159493749177886954184022046687989753857023257042665136951853145439083108766561036054632197824504357846465235170621202152989283112769499502006484741784555417626063856729489957419320142964322633991694924356965998974745925201314525987534260372149561474962548942060240818563668463862652358877588168261486598455006344566968867395797235020813292962741739947714174957954297841424689249312563648897718621076247225427792887542192580053106344779258507869888965505949929538178258977445111051903483243006869693679601934850371054155879607090313492225364982529843335760508817897382135122538567256695800915675308153625686307534221417444248333781907860451420972918324923455153307526491191522402710797500307405813729944665595058661974587047432404261887270070148715191367266686655981036554341429090855130934047990240471721138877242312664753235406293531512995137549882640689028335694817116574966784700472024868477489296315708810160641988583980134967314230780141894219581236365647528262091172364622378141389792729614904987434015201181763703305670672365473947721823935052944923536188069247949368265601339569866148608758966648734841213343614665590820094842103674530738108454634452754085576710913335825396179802138130869827716918179173202650952771239626111757912620304786187439141189785814791560430112043434117399198019364523232885060078947796020002724830078343914919265564128010189980497294101518609375415060904059532663126005172498116243721044415141558152425957388155362123465985428522189400163433996942839878754743450702956370782694426445569030328263610200697679781648546349872743604744772486885161855410419247748587994757964945340047386997246362993301283009781889892932450145266863741674601928138156289199237969883523100901180356129286057085592441083458280713483393830139602491313143955607690717625665390576664371051728286110040689568467365561577681875293657537873577254562928777268770452044480136315768804273421257114492236047406894382501497219541529388248834001831254261354126649948652401180810323245937583182345743164459520615211669401356926898148773127400602213027463858779839328682531513423970664499732221797927210165427528856488616790551006681522363819466910400371578554551664771600597604079087942386833422093726742943985584737036089105458281903269498772379320543992473363322580814915476236829556935134319584477408518557061710115152104662680805715448748701684560612864045873751161011422911875154618394938858122045319312659921405135567446769841740829805293345089240584103050369964419588781680711276181718667067577633051441368000915678589580980477872815419723957462148990424326604180615508287929028935196317570826997403812568992654547839492788040273679272492317329163454452569862478497987023616408548075913847822071921654327956994662038017119403635604148335645894469167250554794171110274771681489994221816561239362606396308421491963506038209893636499563190717730576766105608481558143477705893086340143750265622395306267782108624229117212304823407994659607554632993106511520408614819115604983411692684388432839349415237117692007635520975657983652069375168361274990130772922125613764028884450756341262588913126740908632822807889404323039330128729382056525813733737075324191279898968968119040191882603148969430490649853234498223542726736883019541726461626993917977840130387171048084566112274004613322424347919008259537790009054814111211099355745086443330731494436974601156447591414816983395604403779021409053960961681287411127909309331655129958423713708146522916653434381059390973278050735132735022579980847245481839002830541546870255035360469823148869601996743672010616115193220321889150683818003256412265068585868635786406780387180360230978172378877035055038041179581025276966238506066910366284672218676608088211281683072486491332019544397832453829129357373074877717283935739735395292650359761534146691236454573019517816943906003104641541394931126760812540025855280388442784805737737693877459410514722681060723182153919913598064658729971988625433576742167220785256607795764843033599778883222939783639746713076240479031337624192497210133535410063802652089308691565885084464154526469719168581877935903873179395196570131521090944923969845866544563171279109215635404678763301289137326695473007409917739943454537605076955355660710955458583067149466122841704183046960029250998146047180222200793306180008768147699225811783412955024917999248889001820532387240201407018574083541804721426779893634146306259707425979648576450356710438745603367292537252452318093347736608503166148249884329831917341891711377932757230200598284162874583167920464798073799252701116466688647631848080656053706790210089391739226081977888993908908662609098273361655188403464334999293319959273459536054377645320729910825266929456172021230951790549276176144311338389559524014387133302986960008442974073226003702226400727380277627702871897338703261215729160192239708859665405209468211440429476775722907245174445190312593140174607861649430862869450423827803799005705199398428478185556292397155121315967412247403857998680573806671557138489556130373604361962800287828744296739951693780941221078321440089972535952315858882000950812745411896358555404644292293195171377806054222709349232174765534328819280803701170902908718626576661081206785294711619964172199023758055610303045669049958717271221865043921530279294434940935577409863557176538844791012260737194032440602540925587866158880063456797235895163660187156921272271996005692011455079516001181457665831371090319648658685204264672673479417663877735059167361379542918484891690481848476895725629010496364058002430097928105606205229910000069318182949775334052343208529468452783871554803397527491792660195175006828799621267751588803963243925400712542592300053979702763460709005450122537020336464114673117258300394555144884227561889335962595221567595045734247616578840839454516965673392252716404599798224942746964533255690043111891074618627234263190828461516242582171070752179455897322204029950596988634391743932055555478964513277625477180354252175947072360885295930442376483551015836894831282529566960570391393073160697278982043765586704160756409156763577753774592172429775859438723339832089645600886210355386994455500621031727167322462389126246122130144941206499333032303793033673512550512337254291132428280410398654801172688341283492677400093406624030145340259036255346409397264597084038518103815790034816425510148964394085536765536408191103019511923096775144960651190081041485791862061892104932036684074688629660741223789810276614346609555388798375050802081637813540058700609009995949901150743384027561497215844278008259617873515544370758244329302825799514108869313590147556746130656744782606830388160870636829015616858846284499921254234097227567747866073059281913833122313952719895205491939460966556280459070125283057965088523102499410005811945872691333040156736320445002547540856655828266087886972496589592429714493875017504120057353302451206421779073651715681247286850086583149279955948361352278041977219109192554215919454369484076999704464833988720907462058669268887613873863121062487572317257551773385057205202560844571854283245628244867003287806055189178546264868076191084202505936916504842797648593976352451242852551017157434480170297139090749460327771755455634351305906163590526039228426979205494374146926148119855373209323202714633759915088616002962302293695496860864518517555002292812656778863652077034774269093034986773095554253184161471523285935679981073669181124256131410704742203647776719397408042986197393354326628896361948769091950932055713194954417269792798447143977960935608419282317204264950969767478875538069744035606592213323997897673060632411624282983687733626662573666699497878912880592350917498378175111488958337760573250331327259369115357141683068608392434434059647161933318777931474211028069396934120736058558917400092386998910759696091537026351970714591494969876037354112788021542261435713472217865477748022914362322118783844708430650733492216173168975925888127755531114528160755877287931864676685699594463128328140473564986508391815854242527537385296556646582508024867118032749734469083058763448730951893033973651858320527872744972416760518166964827862669903964179563636653823375764812379545146003946145860452504429840661205671617669878364383120693117708666941512017224860026221917042234783689772847915148277854049977955001232829582130719367996385622667168774065167527738911282104745069591730696968130695352226018880679121624138068427740289520030684023040535509552627808609851096386511693149811616124679155246915889051212961153609434624122396867303841329718384882268242516871338666770407773593376868568781169907500788691346300087284419510276743153372956904812998126989782656432585101438062510259263718683525240106967454102205587158378323492193912910442500353121410257198177004615067846456118051081135985480422299060394773577500819370282799695778305637417125933085115853902153219078771341181945132993648253946339979693090073593287442920756797626181706280439903057218756758209982958363766994781679035773375808935298597488502434299481513212840527394658671777188697602279686586991632361729547761946495607880340632362863709241788234409285597942462393930540519222621043520462906761079128625548899711904203871637639523131191455396664713732456178890070696078934943922493986553775033119039147518184811297012545383544644011852880996695392315906293850408320693738155953097383325825072700107479588692425331073594359332326722873072737937279921614518486740676970412663781873373269395470882278171609944740282710372800991538739967675690343715468413906037814818289560442250132420993394153632648761413193495442842798218853796933346513806575846041189194194184405337877278881498672745692216662675999447822127640966022860731055435437257626046305310215105002279479063151254611943977333481902947202797517431709179818381032946892442784965460416711614396092360549759926155873223738891765939320651188580016850586170978842114380604865210278246530916317881824282909489601553882157839054479916730380172523070880509749508976837328237469876265531299375783999787533399965668440672284885029872571624833718657872443966171216340929410835417801922073418707800554232149764128613661534891837053713051307903609000072505252331673230893747022284370353240482096803649386749667379326534070202514117523515554859554323887121509058077363276639185654064809010224879713087515287298786545276654253266994902828178374064014782214035701377117289447392360304126861915668512716938486523082480397751238994839957850239506890626729772884842621200156960878568869570073809755091034153259632787085996405329934312859357421790269147706919398273834434098855202782889309458701167680507465700271353791922192469241604823116174750874966438129715329483832818482772161922520541844931126255068144744104654238445262031978048010968124929821763722692180682594546238236211207533267710972445463308526027148606165456750623617072445783974091095989249426049563006137994687410208829566084584587087269056863889945891202536604683551059970868544532482648711567323851143941251095707327047071778723953076654814295916272049930871815533647294062846641173978833307329677378429769529574932011724034897360909296536006536754479545438224490690731893968656478271787679564782059118167111946851690506950719725206057589431224121196120254037621502917177137292004554418509729933624188298233661000258991163602781046089382365655188763896707876427638074957043581169023295308372261403856644673015611598858467538747834827338837715415647807486515843984552456713735306603887721826290667683965062867043768739780855645005330657608272553283494129256879716622832960351797826824310876122932080096379411791239783886658454969611408831846115667468554059425847323872093271544619370468865396810015999839822169547552896133791957275155834457893394138827953974726651838110083046711043221664242840250427240572408709506429777550835653192865294699591247244473527657878033259879207849611829801826526098543779540899684277572664777094878510950337555951026537730151857507750335258573035845941351310944980698181659258234024024108817231351704220798748771038357056489739312732754423438194806837851837279011118579616173926000650046250108731780393276254248092356983736414662159391409108638496477606719248121983088489599196998414610208901695069036702598415726883880541736781969399314285723087622621606821062879804539509094491569101366248197354497555047242747054190639932120553628933777576285910685636885526957552527579288695268223441284962604003212440469292116188656340452582181134034799604417800072393154817469372927971648428935726564130084856571571758069800928291425854000627952352112202921085563311907186484226259591638477712862155876017176169183286391912028966736077122323292952351626352945088996748469684819738580132445274854088319178946620861695700984406086349404700341522275818455433533247208298436580929828996409305146698712788533635266503837416140312955153484508593660705484596354683273386647184186452187587654509887137314353900077191526022361175293416434750004626855407464161154599734751074497925591638362547834676709207204958292927093825830764226268260042808883301961560166964101994383692029071537661069143633704190280169283207180563871499405008132356884096926889008813601092465448945628196558904486979769892109497670306300443368141828023984625857851596876414492854110200314295409039658736305117850222834256111771901653203305954116036972808995800810272161214136061242790866307927708827239507002834814799804052225610428541349218548547491418826444326376784264591258080881264166539507435114800132988568863459844254661197100158538483420206641624343176789539643275000771747870803356532356427735243371434428273633944685566705629553427888151815561777429148875403057907304992819723007671009579964162112813795907448269541649571443032570496172322886474170972449815375403023556427165188284865317972422611056656745312114444409554400891883456310755565680843014282902773863188360461007258939739420127292819305399837149727711417995845735251044417176690015089452470376486422657259487156858081468323237594851434329712790906378078669622655601433614158771403307416988036799786768988498816843096581664497596074123289985392736992500921209598943884217737855808819120396728342143268247653328403071964137716110238938775136490364858352961458739424189145696447615846027788874800494609957132983368170613611272306221190046938637314224602313558460684371847907580566212880190435630984479378815114939129509684912781663028475762059847797756857843786767101323889140092921184306961193968462297837030328241687059785069015944834482547688692378298310713119396902820456127441916401767416121270451892003870737192002324781728152288105459096422850222220798119937108318299695793356452863386892434234611331659033668259843473396102149997578407906909608791123986339399314091873086388067295654578167612443534566397933802118038376252868836651918952467291699486138460215207197320336892624535186943257065182563860103700102456508976042988558177999510191627413486502851341929059514840309757808515324081157360051373792147535283632740199217735138671718046639310450448261792391503840009673208953341155348410963562859810672770621245710741542533792096902265627030048306516551375761774952264899529612500734582841586140044403808606213227841991973598358902180123338784297410746591854651031429811222334952118432294165109692398679123308585307922196806255709763026543348597993485905297947017076740525982170965584848713714411734750148220960028077561498741430399252074417466904109292367724085011761195110541741371371686148850032444974132888427049538710414510096559386286332145774212748055574921659579206834740581231769037970165379886381271408407670083007862457828288826757148481885745322713428731542352933684299066680499181874915804050714522854077263998988456515732464132203343224515583802090753939747040568974725778789216101198537684024061332636782662579106184561128889777588243057868244327391243491305858784229527178106676913826800968887394687513105653597373963574065478040635928579663238678813457333493939421315705009508996273753029628112385883981445608717139366704721267514545202059485057460144279472181176852799016856833945539498182387679502743908054634040106264131142229329545515707780739410064535903103168249775565372528171990594108719668589095203051545591996334610734806064580001377976474993432753311801606280523989984925466191241059389889863525507289445255662708214088930028380204013065202899987386782488274415982967881021319076245204451998391153378835237793347830171898559668837628904763300667178609649626908695572778354739401526566747746719396183049349357149556705662489790912648699936602491816515931762897475904618596768199554368711844143142549012877381736518600782798758777106371634553616268136345136243721804183512228017924728692185891051291029384528510323792342315847708911007577185895078416593350761918467751246326736232427859347394108892907751349564011297412675664989491526552886008502847700302657889039003209595787652200862358026438923930643554736046231035591899241476337881624232392417530697373832074121029623556146449920424202245867968371806562927803433277228736234847212394089696278724088154071233596376428955565734448273965418639150684176618710926399654800365892631050435585316907688236140840237358257672063445860190977664149121301795559699091241591781900447055363646621591799301985530041771064233202287329391435872851660233299210348687365886497465414650443655472661304789366838297491172959802195447151673141943321392646050390195067941605418143946532343390203737726137963661504033972047723770451687776086394700883169967051000541191012759647331527495262880344373234388927189754676892174466569489649978765929985826614617988163641744070657655958596367537984249014687636455513537566353035963434796383902997093310010127245366856068578659784173325897338488637549387720165186731107099491838032834593499022706287562184794372311135601100843695075499726659876352650347595323046250468138186408657362291268913757408286898322705085889695396278001701093555002678386935256084775343987233564709395338734585145922899135857347643339747673977468357906142320890466773330151056840096520893284557089261593624401102948870785199694138910949256722366574496501170620060781280697958532995644332097852612747248326926942059892870500206269140655882825622016423325766060609054609211871297601136955514358331878311640453018437616301063235982326650312845981002117817312512807736715257635340247578541322069210612890875977681452676702442230581115838392231774904547153928425843274733977592880633445813411437471976004005180904378437115352867871283334425257838792942025162644894385361031275858732146772233077606604417760832422633382910121820399766256835799880531833950649752662984508266145542087529924090655102605379247776893129044809172710477526898906403089813210300283521913348433204985576418193780914784951583128207329933847410769368058503150101999451703793499376567752035281816751104948234757842937110979850853812975469556375599381411637471519509986113366935473126055654575118873823064981871173039509786085372469412373814315278894193957058058834689996601626043413327060644500518267845979836166242512467990257925016471939971423330425541215009618474528304922354195205382205288655025238862674181703208495130567981904270546074409382952406090219572555467038451847466028143780356357659629774186053531473221273167440976721724607965045625822901492390744577343122060900658200645316626535224052945839266692039863257831198632523743579280632793438845471197501016067171454969755303275422735128475654093030175243953324064550194651835633828026496617085682777385186170692694998837635268897992588204103754114244558098228926425625752349789920390618916423391069690915370809774308559169251122241325770258300181929588100716447218144612460114449555571100693875933140863752394924705469796484766172669233956784124667656015142076430570052898132942691105105511510535130001551115289105836423612966275987307729449812840851678622750735846176907783307060684236258316042174777340775753514194764555880568218668971775230835137421394784241064356415323266257783366431031045930863700485707858709313932282177284833198341757691130934818802645932654198811724909112745529025134338451276690452091593183287424696021064367276243639649826752173051537853210775832953298163451149069912922055045209265043163386519628835701513199466171567452054629097740480486624050849030784387013911486624867977895212611146203954077844084080083426363621065340542180695630056658442178248380395551966640155060790566976112602759758828628958182957970970359816679098378187784344541231905089432054961670206105835334041641946678941351047238647290804556015907460046652470722130918899539940597579041443735729623258071437538637469448605256432855935792567874692057942705882607577651224611744466214517522400522258579226941756831094166234929315934369049116494868693749986855738136000437232008097290003406146013092460123920849225140246791016769455394130515002440253786060157294786927054112381558292952400561034513909857871516600361495616140270829035186309875718938979773397499049380675898489516933542475658693454594401364206154661390417854985842245876260087986007288737540488623007278679984876143089439704975706407790647526405685891850243461389719926181356559973719927997453363710690407032390543713225132261502889115632390837514312368046579041931754536732593826585820077465983129128677174999293252885199027914675847225813104176861020022334457569120685270199129940253237585975269530881716269464202159191069562455420186512269845290141564080821896462262021454021752414044220437534982994913125668558274166460820482128450487499022425566197775509076808340893281318206179461469037375209960697815870404047410950957121662529566373943190841847478506886919502944773571627003274837680290242087341620003310911067624652733213347577695491841079139223227887073810153954991286365455588316486475011447026077424792051766780387968909595997658077117027477869202212249915674711441207175252694000282130090636707975802798526537351248807122200370776271290340005840832474303406104477890456349565385027143431415825505077540683293742875878817242308577364612359222241289345393486617228091804100840096565361320089323339149628901095045679468174428978817308863575935460674064983303292193640814737753332348972086963780661558616071628714367709653399969898712914029654691550274706433489039614846188201717490566117577021853829682728894496022327156352521217269980160755183917952285712327747264013166703848855832073273457777696716695989435637752460647976586180694510658670379802789786633585166474364762615085303424473312372116812499019940509688527004883549714945160630578369485323149070073749875256863557726270416550006010993905719112490937033740379621536525347953798813406799996802426513856922051092001786697276147515903578436165807745691846840841348051435694578587850722375139749989111928091157435566991959537592924239027044517621016640572107440189684667320124675383290249521668651119103917396712686218042987101864460891288276296500606912659732606285241107271069553284275096113144282512318477818093321614651514102677557676631445611540518106183450184938309619058363365787605576486733864182900297324670263258802746099033705269827367674192642792139549138964722650359534417867121359960634067881005748240872385280572218850355285168872952244592728685494034565507473661838484049300025076462905969018550074213169173678547878259182974049114345927202729073690818893555830806059048490603357199203985316826704754714174457967788943286827523329696323013789449029613688735868667049556592211825200671043097186203659744478987464570114958772893906448014658564720596952660511378182956335595528380915011200985835611542069411800615432067557537412295560044369686362471804473183438246880651616574301342352477898215474102010209662481905413003211782696442078954874786216124549748004676327662072837154348279819267310766110210040229481172081990777212808617977361593653935190355383496504574395215733158675072425519088693452570229009463484759049191682756238099139801048431783058015803504011670467607483425399853287466664590781360061743211094817996084495178184085872670566252897674705888034395980708109879201191363267499461255385476580747591374470277361926037266722664644447679361355680753745736840091322990159768783707107875177973546832272892159812464386858240919444767387720843951574050907862052319078293804254280760334879172201144466246410915343449823677621402345637069487789696280375222975073412104708015004052734742731018880236172686107778689236114037669762690588583439971660040963421599564739668016119938254154477110318728140294309497053008664110238627211958932300833552927298520421196237803904922603273683204854623504810963645972736204823483033022197032148486665676700467560082656313632408936911752172379227526857419392319337436448443472810719825377025803976332627716800161568357707236729460318758841177873431122171818209635339552083044104666378674352576460022648912501805286717389633067094055264796429717602515635273828575054782488916621664532420039043722228630165788034537454839260761714622236769291983775485941203797511919218386521446045008367969065828610217537655456189970454923366962978957667089189526098167978199689717046989956232011025960591369702953738409429250385521647417304176586950294575785934729949450731148528230576326663022767657874143928735013388633391817163224082236307419575542381340950969764722487479359786501258159719531753381830077424893918851776238888756136889438263644872334282397402471180025943057522197269808398373574853412220651939649810368388660620376885787400794512346226539854345698207098828714815448432916252454561244863333776950382470800261780166022848990332407486801137092510946296276580056776748948201182050099096433925947866737433231871336662851208906659815226288889816224510785712773943792968485336236080580307140507378476116139064590124099716648858477232582205989292912409229494907726480482494055169115195658378414010757255818794164906907876970561749741386351130688943061319828490215561042283644357670846594374214127522491327986288955640521025452168164727068768911394143086359297873769316805108804285986970630347789007333381067805304676658662300317899364751466620517689494039273964741624232189394872692572136427300442464990542910575487865254820503903949359882335395945070435799959487451441481661110882095756022170698435805949658998945512167466493437741604595374650958923557299788194495389821322914496709731547928129606548930368085634082986678560269095193471976339924061915915835680493899149524957277484345179178903520603525391155033963660145753414801438151920006193097708703603482989323995422898166102684150574304676252834030307925900511852448503376008830852096220162991222615623353571793666985359661100344429072883869879142722303892935392415933475330798571634051849625094415657416883353261440163628866710956044011153746611273795684366581022106088995878253219216928749195288113590140508867694085851244674332742150420969324009893221717969145989682379982550806051226866660029516121819221132642846904637893405654561309624270912268838798934221528036244161632292078574471512132065332119704390715530328904780765092261629157351735929588310550585698957845676551888319868911314994313925213572214607900322443295862968859002392413254121514057903789817981853822933441539761456314103558659867895901581026472783337899950456163045643463644363133494866775961486857217136817093217180087043499366177168602603565014648820320710454299258606903029235160334384665186848982051564351397733348872575554425441420329412195135071823929162217887086084970982238440663497662396553797292078876128369440835919189704618718572458667648477509855957975640881069691443147838937713407986927370162524175303151239583199323456256053801188859457734318578772003277415691034182755462807730038997927271811720676367815917636558147546162880829124353847765575132172550004274386961983282992967176697272107272127214152815027715781977490101620371377045584385550693786288230283707940389295703131241258013624045487083529034777148871389803441727939607640059046672888090557978765690146147179700512526010233913156245742199223164768399113111699706719725609268413262393731343083493277919441913627650604997317061116692570247051358577303613617169281351820734662079821959746421328833288213218109039642127593537321018260166554656765626189973282950854039234622805834272170013683689608245446021531062915458686432883498526728209411292475095660802474721900951858130842857136701970632879537733714334364979934982963459150726252705152843476013505247331206116443524337213146037735829136591866183523065848939553447523445326238639807205029851473037534069757888299696140763976866661476819910164392231629555591558434377585365033562657790787862507407696313158954047411810561957668439956247979926924879775951546770220291707407195650728062392413110537134909205629148183689103686807087818116731068635947988080749474296441322849604525349813387110535392787623461284314743975315789874794260535680989509847602012800509287220109048124797826468342335030848070830760828572478049389020530562026913188315732307002535284797395007796514922663623391446609878402959862549896640098454360225742772832886577416118174605777059767238162183262010201482162583816811897250391273409394887964780225365734336240491448110642271603585547360153243746601456983875018654153216060215478224283087251457457031498974516941628612026109361837967482812127148638453778894499751802261130078021082051204810525908461209512136401055426495542339390871331543929860894413925265668744594394229932742509371192576840760327286489340298765159896397262198272744194553871593006960107977441085113770991685323682654693082072404902396487674100227321866047228229064262814631842228807621522819333710552134842467137927663182990783610579381678604103837575219092813315663774090366458697612474968968944962802690673609071659068632296526627069927168481531702829235292507765006152842219117652408367389902611963365678591808494084099580043382211508706127837445831803653056371435899431762342198157545336268162953201417592003970884889157553047930006866044328533317275048435016635577115017502123467731437352603287338282577775689426550653402334266403916912823603245521903397715491050115657188325117388352343683365754163947680772453558207860494512524796342359724528980071963562842783664228617988859681573883436439221364741825706715530850106531743237818130195367033698326871699168171607853490987074189896039315587439294609998056709130854164291906666924166773101206994073648149907633414606921910834415061321788403443422839260185251047370665374505439813681061971870348176262939566554613033870365112208950441994679128879698556536960075580947498315105641637383853907839576336560085953569013923808356601658787532976892301166513157694050197236859655979120187864544305140674868841024724966721960460508678385958093742095084665774806227267833314833556788508691436820182953953912856098287677927498499115436560379052039913570212046100214102399600575842040321928335924888716420182512680578431390261448011706794535326470741458552390586547359709702289627654899414168933752352669837258572827551490516593808224603492725983124180836137673589978501896561791633597608260234307524455773785667222011916114744262763251023649694525074667056432929849757239598107816788728822901517900224431880519440762654380567718427551349104577755359455174576575946547868419326494464984303281425282040475227690127351514404205262416240058394470058769581045734383679536449313665770102005730282499720684157549233279456139157833671819419423901564663185251768901067173167733724575819371846371406458474587422164524358363314114122015533360433521177609155379052914946777145752645639172100910345133635517710761093422799767115578141782062786104733097639079027913199691590605578769269551965524553168066814834947718581576584864890366160609670600056065447645632532115884351890225557645894236472596924829243471634548454850570127338749003922145874109973213313167413372824700013071581347268570705821260940194995226672073892126581276870061474185271781328253082219166822803814783726882559289091073337603594424220493528556049703900162965749725793685158398160045228571726267859062301644408310158761503417323658025937508340838786358157502744009464504502565503570217878611646756169963346189309396484719825168773926319422808810054481151692324133014842325988367073074446595372205462531191572134751255595412393832163926916360999589444567773806061857561362575396016238808087240558872601926630965157179968394153827917999420579330793869563192937988822185684134092984326415271681979753300855559708318675039307144770772046180390019985455955788762962757076564118913870689537554134077649342759578764514105529474888502482054619401993828361568873799533224929733224543828089560934685092603529607707139137569612025120908259932742673053107022262869729148109168675717283497323512541097493824994933536462867183638466530476944276076765750494826102756311647719901441093563765372402747309649653371150120588046969688921037046443623117560377454897917243465699727351460765825687254116403780576038781090127211376836361501464509209634365301938725350622807579300481678379558658030662614684690564273745528702620797457656447167021512206809322433229672976582598833058373104435904979550916701796049255479911181516254953827963917256544471279164391752005142669362499099130292793773687946505725015333618895507113861414990158848709681083041103234671845102076353927691774456943814243649369092960100130433262283650238176031506914187244051158162726224105131249191311130228691126136005897683589098877546765670994505813244680578846329743602066842814371815806820990094172995863736522425256955474893039303026459227130840507418108636404646106292433647624210799748153784878364047277600565146989795704171645014114293748135604760147720031556528003793669042634445034984311813587267468329027833687785960173347503005867116295264941910168968713106146116078073605893403323894766979500965166921383399169742811521495040840081678596372940167583074400163846368584407857879809836875346550713846777783501906476678421312329773261611689932183393261806991479544710933110220490540621066849827673420698755604257028840179751475567542979648222486950385266546480556656612081084386213987343816290831513522749025112514147586441314661281713373172485847546370045277941551898824081796733640004860365013527485185014206643924401273455247188191627945495209491966513347180900243860430980667000189709976167180940497432958513861509939486204940390803926395686425942161763096983102579581892019935419497423914873735444063103156536261746747658107031145319043692295858491713948066908060265804887723133078363706212410341836599041265875358212612736888978951746785900225417065735413457881688429979579083451189496623044978659222173306664031342606350114225662144433485068424566669232370952284994339017391618214652487416027058329529063260401226613060791218084014065741743746680746616615469214980532202265626218928469562538898731698209300436148143679223746331736181555741790688184565425657167510332373429588452449328577541222240589430699459685620067809282439383622652636635524211888306585901294956344287686595921143439073123880446153065436762062742003681693028571252794226838071426220270959540394454023098927024257083754880654588923602349468937624297958053653324133357536393627431698306879958116816413256698610880844773652829421763671672800838016591322125747532391781786983615408404943632531669156733813717326937141373491340977350829836196420261971620327741868300484743293347731574800934850102821659873628399723112061585423726256174429926175533872251814317893653840940274304351362767771005200893655191805921085158448819085162879831732539934582885115060998682144747004282015002291500711720537587566675757595467747886195795111712016928757662394615152408587892549085292925549200505211518055389872398029592160785460120356152119221422904129772505527329090377949775363032679167582317739159377001255728491641526266019496524836691077151392297158878164207004194342884464481384140972022955855247039271436009981684543778796459892903707806375347917979397159648172352131028458573356177467629031189974424001045166127896421671295470191910412545897630078176562700835044545394333364536911825544144133662927539735879077459474356513744117559666579544184242740674773648542636169019090550009650944381434164357369048749729570737643372547714116833558492088806223282560639836928432244445965921871896387577972827825854512784088741908034630573676966371890246682971912310496604176262724776178285716291253257222638708484511392062648146778874367574239343376553906431684500384953304436859267733541635636758885983978871450171954503939818999797995590100573926410149910394013647061100903617150751811762749851491630886582050821501905269439520478682683246303117995772361330311146129601678748823772472361470036643012692600477232497349549334033626914928575581105945268746761171228009392277138152708855491601009849492537443859547212605156417326262407097070454826161520277889677000240240030290448072019259604590408847595760100623264344536082473273456403139232322488435246031757772167815913410693244728829896429001003660557957072148895759120047956555603505068342350182429217285717848289410364119007186695467264534891958812626444195588907364279724069229464050370744937645910834365540289358033903107191494680686159632308284655991634737708909840775205182869696300272279592696045314855383561997911072378030577265406207483160488566927497094010895031338396322294386341602543222829305120311386309107826033013227795599445505799520228462113186903008867279057494312892056887599138689567589193162620677022801207672704552627030576195048246534241819082774370476054346612966659760228382427379749335576979486297145677453988096689970785644639651369411839579127684113894776931746753098771158131025344060607433807816447644415308855144432369522010504898651082133968164166442452770143365589200264670563523793607711746711482034620595549708684102018108997874331380071631692660279023653327622301581758150115986675486974266958074851822543840181029503474965413758825412394412033943340309134358433075627246390438180589620138052943081506800053679083668192804569730401012811107467693624005187192819992767148234734922633794929807072857670714579783086636818956898658959104153535284414954260363431011043077386106307717042797407916999068432984290290467654149081798496072673286630063665046140506077860357593888789958540170827703101062054934063626004571810050259747792848413772603722077621845398280220710191526382695464138088659948373654495269738235946508429740888432745197889583813366248412502868688860864436652728888130724401409979110994262253203926984981471444303423253478540722961408433280366763808731393154545658910898065711637575754915937738506517724223331615788219484950644020417082184611725965581760714670118480168573044076597941942168603987266962136289062655881544116585972214847647199066481931388441342008874783002829448078604001980661044071376681902293378617241969972133349408557240301938535484373437409566035254472876116639389890654854428782536006382628373175539226680558921618804313451515719553893027526343760650448144094056731492692551433351300690581308936242175699980155166758168254835912037107659204751848797713937933142401064929037845442355699899054288282917490465678610770526545396098477639839549800445545424207013624032893590845544577231580635100585784056840441479607862272067867747554831216073218567060852661569225830642764772922759387155895773202792923144629019718079038126022232157015444529947663782645786441602798629532442960134538174599959324824782559501327843964080224619016420719924845268336934427399346604912033592467637824613742055395043400278503564506222494963626469086997896747760539351917768028509923187248077378522991817106224925329247558776212977226242814625190272729511084234385437135914863625680729027705429046302142110684036868048995599821027584289875601789481780975022967112664206532422391327039634172145881413269598560324562549576160030380937230126769956590904848574679046529171247110210050613279999696150031572023579520643907313539486410956178559518201763212323985456236975599581352532022273025096795648247176183894029599651842047670992407353361688930972285487612669812989897595129605022472761903557923215506000192866583565601411927973122141003908204958987386388016929689641002335487232917974955265270707904155192225819032280438174577446326731626088512233142180538697369912247172395840985452759443261348877697973530005196149169999315206850291641747317466118236986132871597653361118675858435308811781047390537309814739111728078376256265149626713034722343810952695830886548655058851103232507923286250718338769641904432267430115257343784426305974385519222188309401495945652341448162003976708825925809582878988404940778162869670428720243192981000260070147450989373191119655885561227380378355056157007839434842229472265657608914019089406512812312060238636143103063778267349857435094693115837577201872563955053048276423894653440545815061019321998028160344042491702567543109007959692198460223821994102923755676274772483917394431583162446697480040894904185733036694952575298048820663494858522408296033602662497738502239224012186133557866020174230987036082422177268597430889824386034398590661640826695967870150009371165128845546214817805165348479523950416260611963200086145803870304320287832695827583554221113425605006261200399604907356531470130898381395937826558368806060296351986451990077109497186554731982496261627227057411047159783658881215454377167221207652660536133582800610836324503628989059473842506248508103716899503005974914281159653109307561404206665335856723346232971382098694658164675205789731377739697982662960716281440796750343411741728196233302761190169075358411845161566720868669275812275866294646923436456857992217974603261420128926024079878189084975251473520362874714586009004821432886783457149249009114094836407208686026275566732471831196744327783596760207017093371513469309876843002952503285196126387776788838246646360672058456077530187704016941340183650215747454682965143822202992957866498073284288682959669586675798174866775563789631155856373496537192981593742665271785577326541246912568850212682016028913129726835500750287274619032674899787461098385583548543726737008219028146247018834789832879336004961191636796553288372584424017618596356861302840295931155350558382486284132879111508638365961811932580762257181791752438038894849709443497887632127694751010076855091418709569934968794953435286686520936097761186861491536827662204787427826706997973643547425922475284962461249066087218988703011279636931314854260385755236513643259172414126399619062701379092636965499088785001099278401211035122173527233604548371272749323288101530112364300315099487405301885562845947567822016940727339296379818051162383476553561004735218659234116825485678401178899664001591207054120920798297765885162169057311695168041080235433242418193467386820710517383869930654200113529780261232949850414930187697220730909826595067843530155750146136865779176206634453656570407481017572173608377459874522052544423300769519852366490459819556400753932106744964495137202192715695950397913821196205458937451717461075939622966197911769209021969225210950230047877826423574097141377540836998430880150152929537261104737097029491888983937219397060210684485113667109038713308001030350410489184137735971079683582037019817086128135469766670901471360780491213797149260149187009755270150309226593550930401442964726024487952968563009030895743812429090213006945477417321696526411457335257828696695560007977877046543187868134386493354693578943712993967781959303598510405658859452766422084299782143393088693366626938121096342369225336491321618776400054239514929293338862771658418442547618540812129575307266415293203371402229505309540591441881629828408724626887284755210933365504042902958654445053533791776435182774807068187906955698464921561808395790892112210872656469140600009799137661819645717413274803415231887714494764778514048200771307106600520946453723928389587400982674667641782249980159390974510871473569207404152207837051535038849714536236883942683146848193106694969294063041870742973785520347873337501047940089524868595238767973786535473576274258984624506235332854372285500311019304620282995533336491718042545490384551105388665998546264693854202245841195911125915075967576178429713589627173323756159966267668912611470162769962970412903525189649658574899788750699636355056348369126563700050114002136797886598698209530707683594405252279180461245849226519394920077972656502046745577388889279036094818131460215979630340951113825280577589479342225323700843627924658685799757282886082009397296393563827105127261502370118898872065061285354756647151058354350209814573304837764986572403840676588346961812762314665493283912112941934782619182724759310139160031179463121078039053820192950436217464672386405055579053026785780805062034166956558569593301326575594718245370200494365696027601793290336457524839059331624514824646570865508087542789300848195953512082079075266950505458601635557552507871181860136832747480401980049321775470387258566119143073919127979757818773551200006126113626500684068633139483840880837826877765122168623859396775933390700504928908366112141812708356732991213496261476458499618630701075808919063119131178397951368452707382798304965927021552613455237239958833607033852209606015729825216846570659444627064964035085737945861367984070084359357309754274397883767510631173367119108120141201354810651864424603145037773701094745206424682161721497042155418409355118362566111788761628344080863708314118151381936520795138696237023734947789154594268109228828707428763926968311492157929068579495663071915858258840815269825793505706119948913706313617805773181180088433059855453845503453437801662985410664573870334852846513305337288720626449428904666652735418855439608116003512272339501706287052558489081461140507761664240528047859109425386327833662027613921742752436585330473826444488263978337246019563706066528153679424321011864632730947476112508111243420247313056173313373583260684829335711392018895743577755348988265538241265899580441532178002282222209118212727083463871093581800161487411981999082604978057600515348709309407637804669371932450494428507810981866742020425662049162263117228487251551554106219248869807210358844140690415950571373127645052655813410925894343777724143105353764888856268948267006286060067730075628785538084301605670822728477565359320695014423624806582907560646957813836491828611261669013135900765380969467900558685784829329293593628478968219049952494131480374280082404429263136951647128976500402042223184628774902567712427243887566188930158591952107007172716344838158201719413454709063190009262811764274913312299210538805445988354171166909047655523583425672282215280792708390731481277836188846808957998984721050453811116592611396241647989738490365195539933644367430802569535085983100896744249369433897639271194489464644296909301193924687701287638660103285970491010373230078521274220082929439914737565469377362924398044116182030035989157203759354325710213765647437691343045719787391350460530447168736811964465902649498938896615975205664227488641806570697241245381878739518960163318783840763275438827770481300552671011750763267327525811592129132202522112571011500214811958361486973829289646532859783207721204470350591321665024399908268445561005898529145742651323235684990727570698230145330837549257142332947410255867993004041645112565041159000173040772438790841082237733049351435802612022194520246285143310766219419105814832149388393567717905403812957791794149791609914655378647798286090074256352440275905579427685365249400635464862258076061356110847128228772049073639449870927125950765582856900057447236284887684771693644339974307426577091746123684187226037331299020388102290297020635911822252471245795313908801513994664870738133790493684983320481073077200769938795835048238363358728887628569946937582984617694912335117370127707939121100391384217663244554532084263595835370346293852756440032210304974045798398923107537309451242443713609426965446291759134530209795349605352315538768807505832547172184946483596026673037606029356724160394154882886787831207555211466327032209881440751132286827091582195818384063529487236820480564663689463755885765339754882639923901571332598441478723567177001580100652446229500116866435906183717052023296937468380332143114072798435419138610404661193257287849166131370454357352512792368055754825695497029055125031832832975431634120311894871715217640428787413396931847403042631310629160415847896644253423092906551260270613890948722459136267598686328209762595221021745398142884669824526758199202536055600492579521068198164484067235604534526454068355344525333591970533347655360984625126258522990382465913377716403196118755215755029509989856897754747788745075569076637777869238412141758768955243122586318604870486452673628674026111215376074519828466904668520986444419343972112610252507306713261566716379200818179303583472385422571611782000180373037635396175181347746911030003126330943369951538164902277266730451170712274445235709473868256541067111874030505753183379579620728345601505820888505469804861533745096758785283409868915186926723716098969466824975172729530450880088785426221462117239989559641722646061128209328594733964986120223035317396825016820999046402923940341296691031696250585413211736156029373979718988737431105512905240764696045455288088103887940531362923889225365617338002795582549489495781240207809707962402001958188340241667826062526470746861539386779609970086432763014997320983073089412558504899761966484795640729753927882490720044634768915199653541264549568484952279089738591659248484665410771638020020326471031240515294376755816077342494218381137756642222562240636928001369913650089023057393512088779535171515148568531246956305693098506270343920371864131361949538137920683819495379553226687143051443593320627385795672453001599824572985559813805034072499436071052368723591646275803590403551598238251788040183886093005619153496690849103864081403786635632014360691721247654141790345360733537420203281903968106765525945090279277315409697215960901508041230370140572180247632310121536648287042514819092351175762433938888462814115504219025436088071192322238219862588524179458402067627538759301249592170654094046390461630002162796833090326712655075490135177737079092194703010767775593111173559009786462534176661641598993739039216836081482850291333278679828375312535110777414257215139564588233429090042236578513388280938287341776943070603561485635970478216546102377621518377480264796915020242252146770160123138198482105489773855109489190994188187287890688685026769950771308568061818998066722236607793993216994366666240608562492323847604042636776508636317810702768947991392118218608088046928534666323982827341256548562978013815463310948434376242232876707500820476133103128930809535676843591957337528729622319881033644989169370640236217303465453477835813360051821579392033933221576174244914475669191743504913312062254557711535616713823832957588825195298853343444930132547094264494783106707940565543737790017841982840110620672631334666248976286142416889374767234143898839572402892002021074912618052527142195182189736805586590313304215949895141995151991029909957959883841033267496567581498990987061970485322667267239740353693142615034383600482672187283344910976751358515602909783395921969436905346274694714505649219145460869257345597018739438416721542678467277406033534734412630353021406552120956861079591902981544316155811173183556742047600488352322591970128746254002109764779173628165161585920804481511128210658388817976297976516340224030751042541871895790495501004241397407804714054300516160786696698128040916433001931327454707758875924077770261555906349518915575804065550199200364064692865805522183322963820167825272392640332555965727987695195742944007275247340548287535716609370402441746458242761112813242192250945083136320773171024845997576070271125536751341128769642265209435414893824664004307667091757220028846023235092408462397510630903321555507456533134359803527976915368370472829153431612450236298511409956960777595167167987105799903727484233048572778155612213612270137013903079361892266076023747781944001291198145350161360446255008895320690329590577387265773196768884530701891743921256756390954959635803191671413601180240843702537184306766463184606296918086550672429438181944180479648340789151342206318756080096076186500978140378099820883867250168861940188330404528859365820898842610837336847862313320170358754946860460188711822542574042420173929966145657667015439801825280493632134945199666366310458189000675217476403634266975610254062338383093716164318428231224258183307801777355594398075216364773411344109040086233553385557505424828636260126678273215507576906409325582858744071585305569773599635714863973714727064432897362928938371596598605450447756488239520598852478238557269411159002656862124512879079958744076205549707490164742099707753055319476067430583855376201802939890598363962611612175244871006662663888017302613324316483158669101152577980601165264224044892451802234924865689102238430935017530181010198872563171561390745848481523710467354465990698556936647722835071337845337973436825670900117532496022057847629126582141583225403607406604082251682419017012313745671004732791828821784760525805845735552779221931461130186316331188673511669155645772375212221278089264690020320966649931889392452421386832307367031605042887418931724434865419225495251110253101010375093206284502697716432307605047619052515748000931324955783224450505751299451530023235285197067365178783881696999378654006463155602978382825298641138464061927241739929949750475323684556315100687261269566504270263748226269361161037596616341864623104133902664460778788138943092871460830662917351983451328094661229608891543414006471158037491210963989973186474547042721550663712708067573183548169620867043937945706800083442800022058665044582276872073665760352154986530557332818112607252562743008213211597314054516985506572583958351612402394745335653314084358022860965843938558539892488115551456176332025814177000069474261809218916106807246173173897557550583197020611862380788893139709342693705223038482852542716875799960821333158321259296491247557589611040102692062702624646876726332603363982775577092350867954998387761705664482533587090385309877584603080795922598634492182989777721770769289681162599468612812919631103260123694745725535455589180888145053399682862963409693599167438797624226476128103132421405495679529074690696560700220523283662636061142587638740977934222567498966166632253738014516963090161450776208439752649140894834621734446837555707461854922164049684971221820469162429332497142114060200644373371833611979666406955227673669317289753103276236498603769209702686949834014265627651778022853291693375999815947169370759235503020633457685928671870684686310252221138201721180037741279348383649461145552838295326869694181261142502575896078137198951427809275214732822705192215225288285772274076845395452082280360624865586494979860792275913127510528334599807397420207109142429108653032720662938906350498273479133596550089596355307478099726449548694925364526886873451322217639731023371643204490422618928218451967856900066509504176596170414675717361439410487042450270205894047426625671824470582142095432576753695522046223596059107154342081581218765189805635698072680529812962517804788324977973106309788769047953432769102018576249792485434313830623654336294066336918983910239618961254568854856364638280453677967301656302883210624909935095721429034566717160957754536696411767104364769054439072702677899505476042554052243733399103625010166535865668636328881215131397892345469480701837993271563755688246638951229005044211491928619030473056024743623396224933308523160544590650928661649348434338861234455379895348424467968442603886974879537527812522377056687527605438854835363438867149762554041685312377211812015123961980242841828335763284791541687206778860350890217746858093872091085521165799264660927746738238006092386490584451258794005461861030722172967545437221447060901831934783256826216622544188034956207118823721356341655851150691448960953089309397469532503664695947725587880854131061955232758965364981182703659914673681612189466542377680770352743439586594234609029816482908895653260595056868926434189674263522223638749122131002389520284078802356276293606245809981106525972526606311899236630628251002047698643681597578132823195723864252440072628149054895442688447334522468859387724748961922593432986230312053629261766025088841886465957296094357918783148983328562496162214133581777715768130329988867692902942645651894644341263153482812514452288096909283383687930614927877544242406705966131387624907918409538750635379472590926235615961416082633503949880108787246779153962494127028214551987657575753595323816786502332155865941451748583852131100667041554017713154143669556075774562461560787507852637715162377784341162059418296923701981215921241514196175443697788079799248756262608948650521625825130433902168790167260284690847461914123719585060484609638625808101075029174066959168133557096108554618615989346431772671152033481095078797492102741364934767161216454679813997446887714003287814795384894731546509269384281359363847337808212555460816167093817286437973110101166241717339669287873156585680830916792997262545808343465765608996699151723756327485941496916048435969121152699485578804584423171730321764192273765317597772368742753137174264745021790611882996513063516285757795179363748717119655627673365396183145096207956274354420085843374038306740039997590035590538710942584140279521897595012748404799301592772322616540155726426677584938641411157896934379985945289547926839890116245961364320157276897134082987154424402954210242153506772995354497995557832647921362500431072486597857133507855207996778902217459167339856881689283259922576215070453404636747211218135356155139845944434581821155566483860311352488664501572569439166162629714670832193625631304080046967924445547325428517157903951331142493267046578639102270236445151948358862941075872614547447329796806673376058255356430751013686537808545073232836339982857116112537850978728468263999807468783466304440386617500908616721087932671586470957974063820376783531467222073244997279247480909501314388087818041220840464771360939738672086925393973759707420287505590112076765039711104328980250948085239941923805695895199516184867527561672742691483408706376570861261897037502935694093175355220783837274278552990128632019145548228619824219624304163802854904380815080102181815236965871808213103200628797152746243325436872230953173573423911895666851006203687208436045798710581680443291023144084725129894979007324899188383950484197341406740573370337663210861390743714684799288202530570170180496760029984896092489354677467276687690758160330977386879180032072759361925889200566852495852409472453426632641794705023553741853461858418174927297052780037512866812378389419691940531769603835745629817613849418609368166727869315886704401503130391112608069192443036645372384956599212897073728390272722254593416741063632488979852848109657820135925990008451589947920799666467148055324579277647094872483652272468005329006346447602413582853761973455155562473212895263727956075233072495077937332096488912057781942567695401786980362446368694435562190212471039810621615627501758158487686938758370684895669055746220854510701370051083694987983745374250911134683112974460301409492517428276687578683669577044369085954635316263839815692336028284615933453026129090448816713600949207502639240552200541073352477313642943115036921398357371518500997669054753219031185567731909075731868577325499277161970399546740475825695208409347223190449559144162973692813190082430862683269871512312497943510837388088703503624526988815187837154386806481740765766261081216545244426641655234399494583601270721458906197072562956977246027121062682801078043209077735175386542818230470522253642430745037128921795310106823775418110565931960599716201103168703084568993758139230327051810124547303041960043132058551023485068447253353484073540783194998839120962924812012953584864644914779693467292316434789822590179135447989030987745138136056428849247577867436813948108624906383536844360360038032054440650001826276383008658900281327531204460128913856014424111106928298474238255460955668601032680801782725571883111577437202323895901496560461559821599078769731340285074454348214278841073852970219294328802330310023639206695773208053438075055400999456434050363695783330699753808039988822914918527374701866535448026756915918649521540818689366233504337036845846688309169518252490358701459806059162316913938743401430637737054931017938945867498484201599344436111529459818834807420612680734605996053081145756014251593777035381668201123297934000036182130909096208460559326214510589796072933708188879336907056382707047617113936700484303073306535314987699527706362134737921646381299412554280815691288952256107349650581671034876177247678030358151673088385498257246489547397652846451451180277385109792755967784226473778109955256119688315491193667553315302888494667171715790546816491288327341644551651718648347390599366611137777966160127832449762903322334347853542756160340045546105279999666566970281984925025305041814965820026293519133640736882597397819350921371123318761680803060785713429966206808668969406121168552867467069816389127197307728312366885646100510213660526964430478349120627320348017002517351006226651618459650679787087070778267797775795992026612117053260703283338739137684355462703884094624568285357304501500619287969862712845953890079322494166072800979551267231463909962378502611673944170042311176989969523588297863700598427685836941527886399334601691948391801810398035520225611322739012476332313974750998594221440909171905742906972319423303672574315054780702769398989425725018535564600107405790260426916916639102556031273191983294131148277326412752041694826744754481157046103742754572090898618037654149454667414968047440009260860561740772208288956129757788212929667639906045707288965360712027066810647637158943742426362143435032461382060874106086755797186114387056050879779898415702507507665148745023421788187608710823274783414549163094796827877802544478951310099336174813209159764832613722240151754770252477714564676107205920032497473048012021179321062592045703010304852093038153540093124167714326282028909349147419615102122096963281392046509881079627577331975866377509566080567688617232413524851092288258782219236961968476048998945162326829413098496133305104084506818166378258872435341992766624435402818129275159669492824765180715786849286947744792527378849315807742510887252595508887656711719760494002340749210386502582794974640617437643154113982492009617646318379980805489127543316167194452849901741943377077224453975432215027666433255297495550284170882046728946967409986655630647634594755268287822712179622478336446253533733921123117271785562391991809584194006109878210559913569298272249248037372207711452605864758301678629414328828610768496908735466134911804230536787981508945905381250237851410761384053782933193777820604940585916443208981242746177519248199918949923719583418713004178375564273822565143758689376202693670714122604612700388407156209830451367708979208478024225522748611092644971103883196854850239321337969024697988009062752792185760752965994817114852233414095915933154431821711203501857181602295869434597357110023875946339670048159230068471234379547321437145544855113016755878335277548899639688011243166104585783686403937891473941874759145582464992883220983541295736722007165824602583070600237284452920823511422134196339377171984417375826609268003979495874609675188585299542573096079931152043105655760555391421636978399897367136365407090140977338759615379797648972760171248790290582670997638139565605177523940290061777553070911702504154723498961520763830901178388234316753499412181582542939246066951490657969248606068759912848988438727419961946435000519290253055479160866433447276597830689363119547605192541605176654422915300115620493069479784251256931885182158009681244672026568761854586775765486091566316244577039555832146584462382337257008008014994802686593884864516283016646289558502514222304017863683944484666630983873158611156337696835989945870286689834235836978624046121362557249416775349846110887984273125416037601707269425751530193838441351652810344065739345739420798724590882241287682457582779640958256317376079602143621209822069865291425318144758648100063303953198622376761044302576706642784825042605513236168397332101708871662754189900764992555237526465091386476679672233708278896486862828591148566520143010342602373072710154322121213402022466980033510925331896105630277137594593401262347019231500799635585602374034800870956408453747826406241469415855052265203641283039212715823100893667533977660633426612773061447725635823454538258208357469746094347412865538652948790081340226843388592897195917567413267835069513533249963862855859837095762463613242350510131111147039225326241111166600489560867774446024949905807535871330575267670570804860895626318112772784436248845288283009486414888312984686144288209858495833124912039148885258460697878907560100531096290381210293280430142599951943087989056071905374346651990644899976136853605112681336863019819212241645027322529144927041408427253760414294611006847392209851784447339675148435740200234859049210505023018409068830124843920461311208209137682404510332593845299061637823585751664679769477235309834827992065998031823014549264384666461190641460871240313975942599664396830862270733427335107746263772584742849286524735620239857081280663729395870034745251230436179880253716876959073341570127054315282704622133796304470988302975483024030607045751237953615214975056638346601148398008560465405383387407120749401209309105993018643460885373319534889086820837271110163912850101962070492179859786035505102477516931127730253172870705860549267855194554857657049321920997574859337888451633905935371350716721434227941339398766674962061118964424201462657948941512445259422519889781454580989930921806893124491038232878546028842770817542263381560404217069000063951021840613900333695584094599522491342021457899421593685792585399154358617259066474586222416728383927032329534672279440812661816891548197733400496934393351225175153858609213456835069059630075780751842931697159919112581094287590269533458009592654250050362170517246661232482523608347191018645890400297176445039596722656999779374017038237912689380381254633446977781801692348817279285498781811372638188351739493564417622384521676923714740509382308875274397019326271115574261707877903889604309789897125749937050671724766545026235421122221125992291597450648437621908032799514317684283410152071261152511094993566251656981244727106076720527459686473191850254855695330630316136123959112914583044908120236159348520515534728121867983376962538653394460291031569825322276369367333149268790976915129290502659451459383032020376664207981796046521981446156875924092917490893500985362211520080988110267846152624075856785868168726840445679182385757112452526500563532469778475023540651154474037920127160705994530294216116054220624838975474173453704494192927907155566840594880405327048083268692008984829922443143698197354304707378332901449903132149087447604428006024891121340973530571261182201613121725725343831893350428948771890074715532428702297637348090737894370694033643409745905158892812508912016953967257374967379273295320611339546743748125113046028802836689320097747243379306734806985277287078391012512720369695184430795122808372577958871331600179140757262036718676515147402045568468330080204303685320116843487280401284618520869651959682339118714746814004981452181019347729016337461609369053322480086227975863464423466954926179775980744626548869176806018345915503695094497720456043305783089293922332547471780437965116396687677918830934009540950601312755802035633760111624429937052873859881212221748263004093489526793296744533114126299492374797377010307750119789923713664825461532005983468860896586090691806241724158385254922630384852436941364822483711444077113547918503872975319396683387284234363097702452333067897997038847782496716417573844532760482854035368457149429659461410540424694045556959133823399993555276497579490303859703991399446875365251057360693113020061370352593973631119213598372316145634565806451136718708080953500346901856694385872783716484004264991876452151337913791575957849852009888051949450881205447226407874421380253269647710095412760249404868427352580490802718061935992727291167239512528262231610029293426178518785681072816359546261869981364355894718450606094492475884851018172562606096453317631516450257873172662685278519244999006602800251435807778017319866740047950754711495725971348585762914477501814624449793098888654560418254703917571892993730860464185119376385102009385942206435555090393011572787373687037297098743240770160544638569813589280233727981400247812457799322309618497960168648425736475540057249710835624329087418822969826095435624240211227666733914982406269355414576757541201006263956906095796571700345739796395529075180459191184384991196840096152393106480945632272208904428241915804764453553402831874832474673303430731912247903494945439778038030020678189605905110587583397406957942342429922506507991814773271013991140802112111847380434177597009036982960222404948949194859587414565073198687063925264053440201851473181328675582752582787020623503346986469903299771679332102091356132094670778124593753308393749357288114122478511821638369946242693648690364543089252259983901754550361976283917284086889216414826823559390379946831172257386679160686062371107368289316117660111521805095981229704900184589637958156097474081466367923556924753129292504360908162253069940821490288503886527644584264281667667441502297851970393835077079732851496534189664137525814699898081076408619607489624735624487405928748316324130997087839141922324790554942910110881381245111394315861795178383405432162253399234398469736643708322416968509880873089762418653434565061029658978118483552857055487289086805217598396828078419934548588720401325019846956970461981562499579153492309378578894450298434221809338962115671956494815786252510592066150232061491284221939088402210326301708326800187304109492986447385966237293445251766492120256564632405717679907585959931813817134825833447832762674741783951915555088633123549376633572811000112834117479297862362972746263683900670483333579061705715906218042627044985591523835322063360720638672883929942352290700556075094259227062115604343298229158428876150841066172924537926892235022642442103283890567045969319677670387861261658462738680340740996926316538129535592947426708575280544971787317116452571035147056379922275852428417293733430794808517599111057304439937306968868401659939063648997346388078576998287444570396011268742427820070166282519088562920781046742631043361283516181532226848357269392530646634941464335199496111698051142666705043986873639919562914831746829859646410358556889397126816470128671406142575743546880546458147845736965728526099027628926707586645189512653506202148831653616126185077124371049251858883210438583736910031510071372480547514638301659311989897757059049274657611809132979372909415111164811767340626100703504160925676927378673674053913438852340508816475551282310005417908757180147801122990204024886632229362313321866795734747118785775826144213321866153458325405134508882320034616852956308600024203010969686605516363704402146337010916125213651414777341341761529792581791071047013041159096915586931111208070821391771313104105042195571578452670745350376881467010294253851671637193407702730265576684574076627613958278411077722765770446158696882189883599110189410169375382863058980072600445727717310628194962458484548064962465045179176678899577997750289670862523818945089399924978740619691477048328230275891448663526443373942980921227355031754140465262575522553537188747973628849856369779890206726380594191641886196793393272915510034746259122388820525200981476679335352622820570862952618176462034968506227273224498820316373249646275972661993337711342070509517849446870010646661588753434524730862261282102621129373811054034508789542881297702599330312905949337369026158181678325267753133566823278019944113116239196027186788327729125320016540594353377810796151511236722354988125341750454772622940424886504032871497085504559991063054197359979925093342293159103900799187060948924348583667601452611825584865911504849722933258253852063880137632329174652474132363949731442353369251586492998587768034196544350068536717566916368620309398323421819885499267199570977108493785746987312573193802686178092838694551139130186762593060699396859685783483615569883903792537607601818868901449591339265414041978685503046079689793025511110996261750494208246227826470896657609992306467322127518153703437965518386104773095961162637771761004123704466038643249503745808397852824743025965767644254799207156845948821542782743247095286979404880475187644117475197790107389161553445214703035830336802010666110007048165135508229731830670034754041786826761333219853783101113919713842303989849943143416944868095130372853084489583525947254503630518521311759124815884829914664187267839593914548395013959392425962972835323520096945045407980507377085319805618880242804666556944810143903902582577835220480051225361576204761644030488403281509837524422312330952914511907391065785735896117052779484940437569523916583772553265855000907745098414678971220142259640366334824019469131582479841129232049120687413641115756720558522096141841604111388771414373406477954878428763626326714377120097343450147033512028670333709432424979599795528300306170839330113272921549671666971464234178141201473655457643873028861501604740658952749591473745217638899273976016769011442021812671941393217913365098503735182389232830005896404814225476672219247428792357653062711001746839360039729559675122268627942745628876854852095378881625502251624854242486591188387700639089984851644618608252622366983200561664733354883725639438342076777646944784078132938225024305000828208371518464770964187024946523879940595241220868770482658215807588804011935724002511230498704580865951549852805582642848589300758330176095960646448551387201446044850746786134982980331747871603168323219971549020451849174466539535483333762364338284148372755031346657008690096457526696622882116085201113324002693006890424519586201203116294523957905229134613536991177122547242847689593537779666474345593685655422742142575024586045711088987480775794914596684501538673913448451757314679164974569067005379187910383459154507452953031871379865596352794098379273043081625831887250341566466848665719148467976838334717376111209043115758153046747008180262688142701372504647436242656005270352544529981254153035906934740467533695259847964151638680511190852067356395241087153674356669455811489770786610463294024665954793572413046087470694124062393880539202003217464603063776468156506216966967452295777001241490061095162702709631691757968343075147358765700229795889925905335094859187321160541513768661260944994345924298126057277941981173964546663200140580930481237082137055522543532942450816665460534354070500098068687251296840810783442683825476330883687820646512707697521517776313451715060978727395513717726828552209127805444932129990649997555883041309852348314402215913429165253595083678230159738848900972989767282126713537472745506482238201254493405959735158383864711657386399703418370340828760689703706718306601779394588201539384153697264964111393375970083330000572265020327340628421808323180547623574583490474826812040862683077830172188872034815298080673262805188652811752572331108160490395517392156943718860351278550282780414863179707511180615568092674441188815308243011942999516276350375031505410001647676283552699867930907424970747090479900899291285840874899534534154890284013652772860979390271076777686121553983187468201415537410480696325342856547521282161178995078142842778031579793188699963644082166718619148987147526967468184810202352264094341865796475851829765481788558633622685037645621857992996137447378480322915966144599098735013810665390130881311221911470676813473773094669601552093047551310302913472425500037455089001239886768110587515383356685442568090173069517801775994314506734022338833536271004756948511702223439300870457575515921035499159199769624944188928680046250123224020381537608728883094067590066189204458763662622654798364311799555785105182246079143522866556465591783375671728905882816544693309796334307521901528453864328769066782883254842135646343359468239067519582397038002880289758692614646605644432158747498609267906770211719245978249280314466249498857572897368342118369089549042928565329264119524078529613474126995171382187546899275675580785410986447901575614514036775536930426688561927486297862266728267168040006787137639564736527686534258091195814087428438986276868477512661676763969381058849814020654728936271470693032131378415563502435306217388991788392742106868486965836372900445474817342904857319464436932469906108948442142673679871869043920190502748311828862133726642621051815626004005040841326039876461857758145109012066417913706009905701698062105297701079064401617239024470337936656404508501793976378769749139295608091914876804674010439295078543152615305940509122350478454710063293970327106369526484003351170109111267448282957463902296095281812640485045684212993425060590135721266525016330500727144553479381476465406256459011350926286335494556476990792548173180184382979635336836691958834797750128116352783095593425614820653078346897508734013350269092692590549761241335880210247121890790674670419108784035305697755864076752106643370244747056207284122821791356313501023640675385204600035090702625171616859457570607952627982623100913806768057270709925485238663303424808379284181281742631124974806399060485118054261880713208614677171174171612170225884433270341970153108855300641977320147735570254451695094859860384707255959559307229340359234991336501113406776629649756440034833824656682362622168192708287851959732458164060945466143300991146230567024258333518202105650147242077197405773777560131501699265380495305541160422022772156694607670124662172578764135048989303482796803206098659751181278569138579374212023703011605900748744700935515650184594569503343964491014076972227609625286905993386393572718133608133320607132827114676663202826878594436183805331723172990918132847910407597003301419686535430869461236852237162449239800799114489123621166292366068800078316524825479151576628071421409211699033916083099713048259464080985122445515128144293159200459796564378215531622309669328973785289486623957874219923412604680572161690031622088497625148920626202194367358101203720496727012399959196181734904218651196435746639083607593356414201089580495221554589481033847980950884530897974679000926349781007600532801323118650369838606759533384879093347992532575575907782760983337940600295743925778593500114892146528613112464573546438347325276809324314940679357185199360812196297247422742209288406689509720514253786159146532373096199234670474221718449470012309554765827898037159169272670972161413307625344915363170969457226751583788192840409418500851609621620239682874491711415769243467384024243107195358185421046971966704231122678986527106539092624561396872994804165474120333412128700032376073093466654054714231435130864190730724016810988330222839673003177475432175921772267337943911962343913003037888647691778073719194627328484082584337444306661040209063348172418741250443727898554654692130115148669376285062135735887943239787205396279048304134002862897771004217672833376292962068757709173553143624997502106826017280538786486312635396431237334211204790109970582553717845785285164700715283205292249772034872775844052750585388093560092459506968730854451025081711902083868479529684998298385276807238908623630987035671706344124252974881385541192874404335413598116775776658219197016654164435400424688721265511457567990988394735955817793923787954454454493078208847484277886972151352715930843682963184027825740371332748871503913368979786704231920442990730626532264558912422300467414555074007072781998268669088214357010298954239327679954479431174092909466288992151950864126650963959676926720824959746264353654262296264444996133400565916284530530882716195799755653238334479552947092913351536164895576013642825480958608990440266022959866120648849062355612469490536492893438862477339718818316971363022927829545052204452888896814739441736982074943092167315004627058978116945601995964088767689376671458200943836808275054865666981714467690502704655802550732958728318097807930038036141113322515880994569556709002895798007996816823508766830902511470347613176916701668036167513697636471315527997903263342126046900027721202888594533708355366783881699714276227535035867147306972989553043933915637101634411194002630830834020295854384320385135164513435809849681741749904468047963592172636515172945113038556104180741036545291426105023887332093920377003124834669622945201575970975114332389673298776236990330571088051052155884047985508408759655889298095827685843863249131262572890350575961269415940017728816604933766196309293171690062296603975639703870572433920033579097066089906834582951633120288447546886693027411605798809394905152973574178852478593886820468202687074370608178288840352571113064629388412984376282093623510222006609556981143959279378442285988650174064048225945770838633550964731292724940537224455984209363508226020414561213143672847153360284137040011433454069462661960213380260242527608473937935028523013470804461346903047669330153468999146845983206228786357447602389448690901312064073964308368272194144679952236155964713459684635232851903986143545795132838726958433709333835686436987712968230683588621912390729965187268849832926233054830851130979578277414263121994236231926273150878294894170521692051824113026886948639665061870758551548683900579759336584625993196023388153098408340073204983421217567232528910457412992114238014292587230892770920410979251953465446306326250229511663168696526180610671610834493684534818627359621340207286300748319604778131169484138352037123812071617288889849685511205433636047132236505923079600613336417649449765251466228751858506131981241365709393001295037061722142103164331080647871826492413253728999726276858639668219193456581167592795256377784983212062470495169959880038010237352123368633144364094911236840015081632965879934553287805908467304404240788362586627562138011235572670840905603241802343293984541753972604621263046481356074164896128748569681293852549920618160272262763949601773689183616244668434276922592701564837310468136304271837045566109187106900010123171989444147343664872933257567092217761986170672493662566589760389336064872295740468510213144281952749771970726635523603629699044226319082710046254865414841712114821081172317344218492111652624983459545589210573467996552608947868410046474194946084534925629788318741378302419247942263861029607491630976736678180513922191726167480151696402047255126578948272166565250239349719962531120255233285655967988817740669407565733507282729139594009207802911007009782913377512481097719012581998559861132494530477325105634474997243014371767416353947780683584350448500168650625240451649017429464880417437955254935905023494365492290487644028761773563307588613888675196737015490519644914328023893428304868561560087593916693216477861385297974623184597254883890786919192422956523711551925937948041502852179990816993574259638192401108305773276715009388817548857262892786007852165672143443367849963702833988163518064284618342142518851072052251336784406394329487360611299684688982486762037554131401728402514196096626276273193481909017771832980441007114112056750017326451618481624503975128914882025376765980964115707564972664379617330515343621122955404846537624810767364719328273314579901981717406813296959934731511903746459066117918404424579318979740501553945311451675177240290347402152751868300254379560823331897748398713584777586907353994144643764668311785183464696827293254422884934463518879700746612996671744439791514927464571096480145866766455571425234137072832076067837603648695726100628184615620894577487101630250536947212002155266684440442610688772678504415537352836068735808412164380346983438707679058203746574578295709802781428338029647948524290958098498881389848657137551657824156583609778738749894356813927531736314995186181097496725947207851442062408770325905354193777746989047180436714183991813538886630891342808056885046903891386301472235257566372290683808772435662081966411849484625384028325513912694837713631643305057697152372987787955268602416668242368869254187752787515157300969601958390012165376978738587099364820889997802133006710700796891306618189508347635097172923600977960083004399808079387280428916654865923893102277079390940940968092674991057837283759745875867865443783066069854360033678066862961249655268096948076308334567128571656128020465046674822324894796525649639486192200080518845292514460400881190516866007408825762606861568838017654779063644460370978326563424133410009229862432249753619193907687021484523204475889613070168640835053933707825395879225456634271028592588590427888238669684803935240940555898976899250267662810248751650539579952787807098580670070040282880788787129003211067977312560782466523245154648938978105271491538143299280391011495920577465468614142979431514683618792626974012300852318012285867728636920275844835226406248485921942005654657770591994549637206199606036092569309991234315880048504148110986620307192837542505008746780305126625784310949796214574293423440183285491856336795138011117370056463423393798661837239472645743048480167307802675949278678091717667664619296288020490498220219519228275839229047931884007458445035288366727188451506119088338253190703318673872951375034141173207020720737838255262443805507237601504402171053575178469987582893800426362309248448159902679068509370224986239914791729489693699548643389455525727679157065360725679727918726387899232514070142595050700781109699620347983762372084974477530121825325450334701044950679633986323439395620640422257259334668533961286232558961909072754717727024756582098084111168178877400023410617673673841513970223829906367212321093037167619954296740489730292775963596767093287064432859254214703285055138511583194649316882251556081636585168174584485871300089215535653699681096897570471612001392145930586078837579833903539987683407908802666646458528613996449813618000731489631753535321042343541882928821517269757665760699018525906076534574238025688313567463819814050170899804132155564219266134267050573231045981292818312488614084433144314694418484484325072099395924857297690364514282023816589057128294711347845557103618637665018644551781878447523602747872465772200846043233978333187187371371185180958396258102232182037746331238129418423496842845841081205193954866134601192430990507701539983241365239404239079506258484243029292891173024443497567195779364193975846692762726394444466053864023452213734572137212792539078313753783900998503496275314591718817164433362922242385395413784771776060197239526477696943182454120437984646626151294300430633658015913064838118078325137081645485730348592135151116939374051408832603285522829196686461738207769396342830116039632351261229072600766966474276101940698343737118797157143898105637448107986275866453819210378716099506103483492839535852365600399897717903529949501444287835803943934076791275446372326219672277139821432192307428942202992578506110301483268648100198903355428934073107450073070861391774039473569547315347270405013694355122998360586810691961757288300134974030757676706613048977104912115868336286165044216318348397793661437041905701939194098859990161053785589977646481327599168252880478076309722399152345440317283346564033220270980286046229505019840627787177130811632927441822587859745746674310738306355591976620439507541028192679124849341470324547608019807480828766423895188806813239866996277158016056621664324531733145510122148734625213613323892832432836851387977329036556856853091246352725471914235814503059897790183082604020841879178795473775633925063003859661330834986056375492469484018914393511546021620614328175056250019688434309528682787187762749748844097293322319443312795165934243980408400887386917339640377402913776452584098081319306845016177799936284319648225870408023769211498680329078222312893801876282847181885997063285813141366495095455335163099357834938243486052775861769375958256373009023149328748491252347351883357523422758648960728546424569344066614674060507764919641288772674636687731250028942889151729333466705427626914719364723242824665596693975059625776717368614068841103247086537229159317099752222207402090021178975902237190702225129820588230840963743114038601753915277230792644422958409758037149600536386822210966868448385373558781165089339391309871883625619062710757045334774276893455261858713473933546735943284160047460364108261289878198996396061704406852054202597087326290622202339547651453427773644507942832544308843699447249274475733283830025900272664536487729237733974242769109290898627443868123915937287374818705340075238541666556195627566439513073600692914636928297294686847124766364162572513376090010884829195542142593400116712660237055815452522195364745822091941052258865545524173554065796314088665598311032987497044635288371369616649173548585252843380613907761467150677415177419889339698647664190439233977123756410425949609690430441193850696026615561726268095822434869096828363150479352095081147910382202701564394601930826590811769332544454983928326821062441546071957959899956028493144006126159799046048680564825459788738994639647656349047329306414473493481557013406778304185275387654245000608004982819660393893110628691467453287693102144545949394259229000489751061538265127528095169545367918889591157323261119801303411508525943889776537789518017399598004821693034373643648199118148928807378139099167931847301668991178544186220426499541723395222388683451409964399947105923862265250678814048379610919473727134293002035183189219830749060392362917647869860501713644372552398791692382293738102527731036941871929601956770672574198473618085559011895395998147536091147339047747126767033280041195981780779249399649568639215750985078627685032158891030437587130494434796049682789621155828091458936496006068957154841176521275760560175700580024523206850727116438458567219509939888661314698190837715455629628006806792747343182719424168018810276897127274346263579143962695195740087633834689122780228571079673938634333575055703332906255467450212271225530377324260507434165291406575181248701825090307687196433342380217086352060080497034413628157105083754255069079493153809012451105701411265587308358420622133977964943000689424575741935372249114786513565411317771154509432767866293995768262720473649254508433739883332109277576485011862802700085931762556987156902152740695555870554767214573399733887059191826254056568979266662266287020992295779612729717740706044965010777644819677252347385654314500141733533806419696676553535440569769907175289796208662068213754921360360230526035734739693320355850481568865597377320775881939361420263207634129475317064926676798138581808735176235641560695435490524222955843630156620829602533282902591001292852325537200060565635286613200907647470350946402247666676957487499924124318326168877199368415707711124577314495173776584258236116277940128874123412026455235431380393552880961395508863398478305924199348413748249280547151390788035641788750308283883343922442907183213996872832912491111261531785649275874612108762889617884675541761723479191991129223781369162035665278070789977320150450296436587292198841719105251404270138171251581323303232060331730045961768310882644920295602586648127694629427075186890353184488630290231359403261061809993439773588663353034103357238724874316312357652182456870720332000078336862699162771230493691611834522246666773512547615928158076722540751066494003070765374856855043969778565840375848006140841564099903894585409908358730146241804596006163678109632624231632924981092131910250982868456851888927099810007641394791568914443294926900149508507569737942075934821241637562573395657933164908430140857834119854881938258416216392442459334831935744277835083094027949378795189405885922887130659355338929028157230577263039043522889393652857217669074409180257325096113870873199146969571268527391650870414104373326868623302268414126126796186019692385290560400477597954154897746761122689906016240906193679177401355918662365344399689321527545725502622484059225028758337971650786512111948314860328084542010492938061200464355871281033133198905308347434197449384436005017024436468707052195940063582549332254431057290650539855515282823065558851198066254733123854437727651010624644351593004510394642136354609303206580376524782315668140393464910028137966914777684420621459481004969312608093090125525760435352505027732647436479197270472010579239768860339830218624324384489394724694903096543120347672874212757013651839720454058058297978462947223652344978360964950381068304181602284004915734690001462139686677819226569565084520839352359860670431272186416297343034390375746262462778617840031902526471474255673561199537810641545570851687629543984560175033896813023051187867881336873706170955752807657538338513371907220951044087952389596272365540859352152141822225765465907326363745683092865085513693011379026361639260680628615666537815197364938550883975522608773557035715111938384041129290588061724949154214352877966480155137344346742248319391739787643681769677814473904532623971134429812333411775604105316690718504168135656653503152346863780911508593324252623428847968042303877221243909125364298102057353921522850823702834821496079286454216156480005528629932362272378850056626411677882036728755042817780938571277759594790965985498678862451063347869616085818529228727809719343831142691524077397373858891021195118355936107092935443482473821685348013808253949797120737082453927729576850250209626441745710669566263694675345821478602191783324439050516624315189537359184991760614728193379887468427610373607176651716745082209136168152642265153640538961174375323599772167095013604483630735128724704625441886643543619678058690888204971205893147901816357493638606958827110353846531208353397058811621051277810883861668942930366430091314351915901290130007809361075074543618914887024129425166950540203156556054999963465084314900920436944144928820955226733471029357927947553584951223642869869912878842380740169078933735962059733590106130716441653668922747189196028557442134843608897197933315708387036565518435736732118782492313446966977363307984647577779388213680253246840613316747072790839648451732124378987681403369324397150228079739917791861242294301571270520520896447149412201484717098070822827796996947802839793493956415382900340822908223137746450555465303069916292008973632691839953412626110049247588152286872918204624632317947087457669139194935164082893390447551871807007465233349237602594865123574805118668232498656492973208988202725564177832060597293739107109766961965316495906566003291455549127381312282107092446650785845452309319010205125633654498380511972860643489881252183726840423284643460813779796248971219083048767235525093409200169337028947257540417571274314833984990876382089910614005345149980396231275653718465373265984925171689694182794017977725882025086133963182731380883833677099915985865616805112147428394734374377962538886224508970517496033349133997821015318942340834045233528944159049746799625608090325044458875777278897743929793886776368566604851516444313538556631032602996584775308491512064514951227783473494833334454542297912427052434477275704365478653079855307816636434115439888627087588774682396145908968797985751475792715433047897210304994419536920044303343041415556752418257727533434823119323563572522397802777538755506755842766414835744997629482996698962676881672787797060292742580825409185969560322104668092096479345162456793980598536884932473869148810946359841676145612301965751436609558937486146413901428132580333486795352665086628922830164545695545471848315859317348709511204054307563881120579860347390436907283132532570132205639621229562993544684515470458589792897438947955292226530003094693047393115145956125989718846518460842578836834400888602857733222693338154927471419006341959446207113474277620045610984501948215349413579534370754212830335359157867990168478732611198126385674249414675103484583242639113912905030197304664815044055779802688607310588046340392877882475797180753354799945043963082755498711691190287849415128321832367606336267336223983380400932155301533900954060485811144533506922252102561117195237375452251133972904934219069808294949452559084878040168686428290318472220841829547925016813951260091197804269925273476640098244086948147920167223967997127000328962103892501692997022946928357876930018103207219704074179285775997912241872914492006400370695339277807518880470816214571460152332260470334753819521856643171147217200304819107843930949731627937738953527518472408088262325006178443007898693053862898611163218534051792895236384994516952406737211759383731311106749776220724046909481267087874740904222725805390403329977823850469366739201504609598979197947711477440825475031644769441698525897026214428294440481338622928014033926774427481416046265095977319527097505877169502886250707886661667015652132940756013740319699290865526433456221814794275248741230360697067174360548588048901550529886275901152531604991813704353003130162127899452720657188826103689365588540594629780129526781763340898251189670193587118690617639372503273486009749738759615992436860526884037105627297008587700323952894227329751275417321258010156552516768192983417201655076495219657224945765425234578294375816679256746007706221623999540795706911279019900426714905075206151386580394476176350610338889866934452944606389403895444428070321079417311086687362564576027477091269783603113925444584197016535864384104044679326791950446980821949484633730890865966200024574456450222686751307181320718223535712446583870580989270985789164982083978922746547703406737223745505132120061407253784331715836944432094677061516993928565954331575663203137025617100426587710213916486241354718031452377314012131382139079856163534989709526920443899261811581792412851697360151002422622286398520246084454350421411849994787900939611698045392455202087367258365796487550162060289761126325286533321433398914655691773545222987368166282907170881883764106034648278163389538351149342810338377284790592061226594904275142850131385001482027330698046109538811347445180545686162729294377826333625819285648761296334673364169378873120184521492103141753841944862850261948881111591008748432782590237734691228175479199013965681063269201766125388501671391693147045864692402774694388662768462521733857129830295952821699701647980973461453762252752337992910758106875655555823324327802493600817312725096248360376921820319894252051211778256796092026880320900150738685879420054756338528179226050930968267179545231534801867540498820278431570713457146907783537750093593753183854606388227158207180267402300335586623354892481825997172596755005559644775473083046013955386829993644559019666524574433600770967611846022367239078017668244611725529321363652933632562690605772245070193477739338255380784793611457468959865624200980921949717809909009830622756511384319741860456304333436417870703238093149072447506597794540001757605784372509741540761723928921546845717138889674356872339740242548608420081113649847315656312366907354073543767593310692770066911825505543076369126937290559776392544879213429351343030056344698858225398610209047172730207026922356587237626062409176513243926690972208796388462799200381233199001381054498446688002754741953341159963515149041507837150496704680705930001799456739148407764004766724656749104086499054007785877020286371402227502327646502346250917881247316953855317810413001519523747516008486434894090873044464036559287840275407013545287659112423714472208508249781235243604881707820100508400617012072685231693789854388638776331945742143884775421841289523037243936989632197015112239462348116599121198620276204936732977039908377282022932932779544435447771257193817851431013770506343527426318837913267220065979782698855813462038446161728897414559815074473359424404241374685697816376946660939523982346923975903051583290736313718245508640286527937250974241292608922647752658794428565020687987842783639306483545912815842449611473031239537422944308583467295071471961260354480248627139049320632651826406516529952816321258983722844376076257935147129208555782903699963139899254092051697002109187924669274741954237387354556672731388568432773359066418094480819980102688063743918823461706117027305451565928567818200591028111770186282052806657524088907719030217969153137554122377103528776061179832941681909516391044399176057917455089898722347352641448033463803602799040596353861693422141919660418710955948652614216122983196731189793117843110626583352594890784733906631941223545648806009582467899331484788975722726627896169691417778879811881126592711006098647726759936339123290904755734401858961633750616650385997013971953353266197781246254402104772486087886092295577241246565554680912544816381152348072784266295012158956708078913785373442033011527328178292714495299483520558073708760417679761939531757928721756858067604403238518010496971334642921286484188302390318531743624912143635046934045399154800783391153453389211682233400428660896003623572496591117187413305181507053631110553086554680492957574776360795745114028056314593982842061520616021547854640456836339072824870181600246067259531906509148519826363633525478175058607706541692503551888380524306695362649610071539328239968008810738119702917900585931158303837798375451218825314244351379235924617651483814011841034577038386000046614811451110800513800304337099891025747088055082717692984281080451788212716731282184853835929419249273431274576633773246092574050134876851523253686980514406282998557737961565619881921037786824022857941653341798255392797928629894036830051151996788018993758871019688376422274163828553484325368866684246337583537110858429627902693816053907293988871994172432535686036956700028190288041452656716438943846660361826864130774980690585218796958061128121673298811774566332593744210800312656723208998058545575358369224504761648315523086821334773785185566119838003022840619312981172074359637190023264679138991990610998390738713635548222159847591091858918238121744512816989394644216997695132806558357922815946675925271410573658672928116646086588750425508886622501197635984707367316754920183333904794676573114807695364226234163829322507938717895230712284890904617587390390724999832071723112535393632898544296547400057149243074509715993309168209040845240304195056625254296670370479449781799854064730860791558461883468256610114160028035253023494588586227281237820249510985515934190303990725399668636805498729973440957923285197798874508399751343052904205047536395660584469293856042045226651001079763092490788362873438628874053768567452649376106287241573482058452306387159570752686514310281957585952898224951160060275075620592571497843556632851851621462059872039676794622973344187652401622036013339081111442646359143367571566987446175857439349976151846965781897411316599050556742744078003982397002644125016903947982478615617080366983976706523389991012326089551868718264357703691756517864314476152876669904103639382312826017617635841536567792091349236861233444075079503903367773178945972263419475618579006877003997570444588871416780928281780281632072581908263393850677739861092185140035076742328208515254258156441097123629265633963110984862722087997430383112721913840739686410096826060776062960482343764550578128262795775689523389115831041550003896036257798834013434571297155349940690161788752818331093156422500628596102896067154706410681637171978532369533028371288033111545879920537166860120121475806074621775156673746184284708287474551862715482628217274506227171003349268586784595408943301888059816332437479717900243963230234818341746269831842080253209184049295074112651284374311046970235218232679167907685041672742159671931270927836635758144093385057129776821597242719535578074663782629658858168591089278402186111312799438241991492982555971051967914473960833159350828446732469103068312922229394961921858769906197055777541714720338346612778419352117550865133332190066607497240425039849581035153660981425205993655159805173675677597203005442168647113252302957151498545803281191457569598880330703885435499535134605096293455293207431677690709477055321058478277776462512280674830521564127043934014102097561742875356945290121721666792443283010927599217961507689971235720558582357540564021252585576410056987585346034056367494125700206741534925268307241825805894878024381966497254705775359899497176008707670382791048209111111191855664604312589876690957025062937490919831706036214849682649719355043369267917746359971196916059533880717799615942218288277261111789811329036219370365673800714450016316490765387950419962244534672094895469861717920023693458415141066584770494765073613481064598687743667849006804035020231238670591438758590973691135311677740741270763074107335255342152054524040786525779706111380786056808045513101610785153305786055200955469692707150277341381851184077512230184662799007705483413124470192051449295826312809870870535968334771121001582920905373552632802796860030353015082340946486082710280902204779000497787013366450644270323009689601311587355759174916264209526768035061430655236459808921817177053593226053251847257610381187406134141588059560768934221642177336452811390270260236292718365762039418803647358130614457163248772906748402860829590591229971435096331130882958719344653014550852700896245330882875877556364015824931004217607554023326152840980404325750891790186032378136526939039601171361036141015641800055422926662366708284294589524651186256882679288578705760943599388639200065370627998440725911124509583121130265394811612673675496209962553020189144090550938266651021976752076663657788432939495939523426673554943392920179183096263835426097576064823466190438909320043861765263010360834973718731023078195579884626071175408382006318104196861740691887609342367155351957322561503494810684602702045577288622222728031975034989485945228619094329743924188676115386469945383488606548272883219505618057246785686683671771592715309713228032468371881341963060826955864883922762807890593661064307184979484792548176782709224923706168295922757329296839443977011371527257832239760708725187350440215310886459118212669280526662632495641777946636087200394698774017474793317046216259391695908098607410028389618830724310691395762953154480555816555916249066129896417744523411937925062208421031510774319460078533420016311854344406616327404531599970829108687948633740839311027757424202628605628480074598177187785261193022164337106062518455725363838786622870130656209161060786766567274850190546307429385482401104011216629751738861114579919196105129339385499172089892816541275328389599970374348359724639705926938824361162582398690316020890643318704703677425093348386869436819173482307672593161136720590718113316565798138696746607408537951186984390580132704111469033595039799521591554373209803917196487610631618437454963715045895899485996714060225115657850689157869012063040175834522521284710394760222472417314670194917658343101323477959782253047663826191608008049713058639460626956537221012059374452069073862684901880503058478686665701375443303192007765241217211643696717676832278428493776583674194978729654230307878371824480259183710575109932717651947520291679083171383450203139499763320874558818578388705568276588935495032521364469346515727423858103182407746059585300518123991633205296515946481968307885144225133484520545834052351346279738162578973289789550036748560443892391290517425232422008836471830671309415985416588510708531999282641206069646300180666584949328836165904330898534272399269212677808635922583789514444313413413686350842499446779528018327195893528249420951937946948580158518966164208502585214070402322504723184365550692549139635061184188473713051732464118488061408089395540758824774234121611405414153793003983235395788022133728365734921959908456879759268262828292102099737047160688159109532496686670031255127803652447011416743249421215470269236904163891772625955678847599685603937493719986354073912618450498031395804106231607813731779467781500747818650332505431685382908763651471525598413848452199139128797796399463836269224017528111397418738857891602201944854788560128779170649876044881060905792153832873241468124483145264726208724137453603304706313451167365474119318340874980296238527183783259034025735147195670524297511520834218018676956844133547143675941224857861007130026213376059136643386111280382916881463859748882621389249515520856308071643651311056008750494148601910804600483652544456809259217671244852183455114342932101871363718224492442447474630185561615328928221128921403823202169852750156638281515004915052939355017290778814812047271208168066414518002106096109122409096172502808690843769727770592374989904184440154297659200783472737973567575479041290144787836105217147761110167561903671794316482321054013730272568846265262380186938943920392920567562140228449364806424334581135880206005686547465921571693116416572631995005083515486161694486274099974006459865307160660268441441404035670227947247253852217383570789535223448764943014289476463021501481380530711947843339410299119958948766558919016939673882081920334101560249168553775359091911178786789522683839425058877597458569566556570595652505580064699246322531406892365449556674858048292975872782077714431488665208752271745026227546109201589083314301674508510802697315007890751909284282134026437527466343589389069917952092647503957862600222016018361358509500961081098076835164253155166272568460974840962046029916568873059749928798635191665072111954015031421339559732880531442803553818541628455893799958629026638138424212747481577838944021844404693961791482477799347930023901023563245610249556037201536822155986885101668172535852862383229942899797554433484838577599016731466646734775736515712307062547471539145485670162826009449245496793443225740787219014489321009681247269297100381664923571181564606396728864625971503767043306979207749425789369568886605734393560672988403233540441419135214462073883910227979921862499803600259046300005875004225772410111703920134422568206875228354897377256658679296819436786932368756492782985019983208353577036091349012614035338988297773126901448677160718938548475706574359418175735978449263465111089345928980709752637529634043541042449921778533233466422616219263052806095980747434942317539448409895559410577002512945027757199828189290082328656895200428218879661656033931134419446081384911838872709449849417260617551292292778521571880355284292944135204402998733508405086977247888274356634140885251344291609777400021840466558131671842170596120128409899504521515501207571153062045096693683582241490956137649480944888910221333904735885440984152880638671131563926910192389219598105525356611052182733892909116823761325663557567764715850777459748649164629773954955210420314280382806229590370621146379176552732008336505735770720247281783573747311104806430189960134885940823332187360655302622326702592236432986523616249256158275775795572180126751724150045188175120652968168160638358194864049592010780797731893502204295436269579252442588000943379220071814011356154954031708928861185914329849742602910832728341135456195066420061543730823315508034286005688750430285963010516186775649906447847641056549645885186718134630325187948301019711513728097640341554589175087036284414208349556249919307032385915245405508833379774896030497143674171179371629146050115773315955281220350881002842955232536143246815499084755893368400131347493148552845766056659721957350724237810311378536860651793970381460548180639306151576532267422919140014030024887325368958346998791911850006599934464361673854126516796665619572429269867225567332067204043117422272247553499544388698831826692774550574944940632770578345321184236805750125584061080794423867671411216044481420600795386250547288823455398061679628900566088069420143908071603100569768673169708006688317232015302683187791646324693625529548922354488237505650096029649779071385160973210226472802628489090873339495790615054791651003209622974302881123089477476661403141899732586727191845907273008746667657725892891299559585064868559080517640421348362873970154626965359778826232515641051171972435873736912516395041283480690091345606505734438287034846527818549635188946655966855649275307698647350148289295271649022827359581389876231341037582370744560454237810991810587608225908526653809101618019265505577783720015967415077797357906354319166049202033613792074712180760608260731083855103895913325739884259455089089498359222278865324620817394434693786021722267899691196169527098580120627002272064805230606667483576746049342785593393642913640861455551306560189350094989815307421564805685162930544590685192497932386250020826818900517699760888770581788805916195441870426529542343287351964947140182272943505915509789687625722613536708477785637533935989702725299741166609030167252469978541158212910860555586601014837560048879628923950550792722385921334253466539381448534108206623587548432148873420871569890989965683380552171099021709965051624979674125599862504765663990509423427470008348820319180549358858790517894433555739362100697905841786436721563525182889663240239034866279108690652793599344065407045076431785082006433748274644800605406207254949645365988282666833086018508153519794401747656590638188673208581342962348109584499017519200810158831528727387844943891990459884587186139284143613034351156150005863108432077873802436780353679141536563254331326626842120643603622805444646618336889026175182476857357668914556743862717899434222377540135882032184335532270990758109486646736544462229500266812424149479783337830081515805676130694303021352402961995246924245175954397774589103445548378414694988931508688381412179839200615323369487177410777686729388456212819200417423035829385773689497310861672603660281314821917262286193764084606225666880802732961065590894169026759419518953120194255142861245317916838870545876259297996294666605893455488282678667555891803687850198173385153487865904606841710440531334553134963278268364136762909618102132687994372925430263465821736114824345724400671828513386413442806293551913343867667413233509249950019235206684094695544719835617270692171042355101965148103855180504299602086387410857711706221714398227293628116506769342646327483399321157791207066188115226167421530336908094630308556214842921253932184117494595927393439870093821861157692978959581280351397406132300030971517355080434334905939695034158165595357009594723638802714688938089857920668777148572746803521130487659078476233353085975420726489770247118466656724525442536263527579275128823422304839769393950144981961969487927473510692499652382810871800639634008141887429894211493469537267177928814652902010828580044158777204965519381085592741497539528476853518134129006900625025012868834890504723334508363389295084489203867009659991614777741989229115147365679589257103240775640832535323136541186001970724647927518005279090807592807623162946809332373506971071824324162281663349260944283647901626694361584597286208275220103313526552937745149540422231640536258211244872558859398485443641085619371145413825672819752731977103471702638721502816111260979139327816194560357256978185859146910261989719384123769707028483048580280703785172507126769817382660338334321290308662612117368722301516805975300654694728827236048567922926166690741229766588574710637480153225935514899362316294928595124139716189598711496643482080943646249613620424345924704569093776451566122238082159457571299912463284350925342726892887376467524856523099455243656149997299761544988139671469599164735833324498513815067569782027147700719074245432035522986735719314839042686428225394129625199376660160421592775764970524433794935106307334478376851808975602710352304404165641664777370462064850254191767758574486552513317524882694340204997699634007463833271784191648113502119386586457743554981131402479621784451385720578458069234992922143758849481862845029136103237184648825582947212882191042675396828946592921743999356333166114742501602335987138722962011398334488281919810838537179638309145717464107115118934564619327725443349111275299709494522254997930981289841906214650484200300559925363436795751842126912113521941271072285578989823575735280798662146507945521749380812413803511235502243488175672944376916028730637864593077121076127286762352948316075641991204574197310832955041627456636876591855252802835818985464729739812437425463241569999356487246281391994746883197997469743911388889897483395953630300308613966855062763655377592575291103173354680706433481943443184612832293516780099967232171660952117742327425436219401864845178247853030656620277487680571688803048829255426812123997165908558707434561778819032289485777790681874016671762592496870328751168675242930026222973396797766772258691278425232265672071257107916174364751194812252851564881443535648962573249311689517076238459597478506920568753104757200445539677990752095696870849681813034827303385846485229966600264104008977635901110776713327238642699569436533294651063032901384517045123766173299163859613941281455105127178604761703303893450744624344449758234729245023479157767378253726184113503652054525469529043659099271590455120875271506197148870868794379738078651499586694334723287687769130861800626804331028555850537700935073609226103177728887145508287935469491122101177758010763599189496593212086679931907201122827920791071591143735353892724797326254293255745927508219947727135453735475306360048837245491021623019841394053506158213518113212483317586710226605810809663047691148092998335353173313147655992247599423078131489928063022444860096505997976297331965980561807117937248700312277187665209411334077854601463895562578939053061884888433501965959445349169763319770045840802667583364872885123140929094339956848716382841700733236593690864081875527618667313346152298433820615875168967057322220684233222558008747901998299636134741566459833415438401959417099200862999755161606759993713630472706110283058403376473417752665194471448673654665255731010094175025048698642579819982042498039140441246598441094150848192790699983797415598399244921815119645604737345740967030806278812602465920979245339078386515688823054437081720175021703218206208896598171848962837564748970888909449726695292278027906079998156826059523786405233538234554276627154443859451840501704288489885971494554564425467327803843571358584393562661633806250927019827875731197557958432976663305248832932624235944858074731476379393807866570333669782495533362248312754163335204287446332397750990104197389209062149888505230090265808365261430433082211791995709785145194664647612301889788868489270050803978570236369002915452157808949835969420328856478744881696484934137272006184380217087481835860487024142430100181262634580026060237963644129083786559619576329320486876873839171719264815711334476803535388258996169445324219798123369538939433985297553832711887581504175274294869717315945837067405383388713345524577530457663787825061728003671860543098538919168220073463658286987198504998450710018462338112912219117958826259282052977812356066991888302548781040336337138162219518819625037181229138246642306949393147361098119753417982498271936586003204561792552485039081134203205733991993777607176182280506280625170675248070773671994540370675636158777417270238471615653630710821016518002843660606425485978054320886697258251628261025919820575889352501713512431388030625078059914960042641002559974367343520615700575137666961573996227682089133446277392185700062657736105978823979521218358056504639914448856401804079853662228411600871660818200918781707424819089415624102789118014393665455189767571120755344473240594656252705171739114376433669462189101429286060378857555080408246610425109662154608807210521189298433650454623582939204060050885836360392877076914329560879456072566521943142587615341000080085911448626551660352523930352024245942543418908134070693601798895575663083391753829985555812808953899093237264283940424301391989911615673900009460885561150521962379714130662143794462251189963330495201381116251166041946003118045988819740004963378443620844696378605382438517473627462344532970663390460520892269228992180345461143413126115632565500141850059459643362075316210955474595439618989096654593974594702391329105181476396210558651401457243529180945028609281430094245653230710372111138131772628731708452748572605225258559261047824763094404216764661625616589052543862039871123047921277331348914930106459796258357094363807356114073683218623863955113352927546194331432206700595172566476632560994652884124247207137724644321974837828921893437300524958487826003500850071171198137865990941384320253925005134150494927716450539754433114200353460666647889564820555948654325100775817996293436709978844097400489696847105870465432138007413411778114566489787533950765030098870884191844203292783036651707511500090429967966962638217266312028966917391864278139977416331224660601809849832367589063265424624361389658466301084322903919587656537261720541520470125130509063400925664145365802164369732956280701669494124061577407446860185115300610225978193841872215867709430976614689747942967193892314401935816598682357592060605060798491961874470376905111919659621992481179710078475846436378102076839926142265004527151889556290371825964586849705522187551283958178214878121359608714553804635594592507492027677632689365839333062394016675998797614773915810868591676152078102829919818580872528803571547425296730624365547424687217949245527074987846393140281878601639621428217194920363853634790837362981426264199166472670797736441080411482020415845923837249576499554002088368462140444136740911951980177283920496755058364104245343259552159657654007577980157300153548958567355309199485089523525728794984387036277780834404885760348122186209396007931150593773541063883240678814785254345379517485980899960810216599024202433412682262612227454885935471751585946938219894679619877439953571029827939798847380938071926330226783535266539008331770205177296365889560843671543266980751520588802662429717818627875678671549082006902098669904542907493132407871667126596574551183303990865031528575040019284499030250225897439106586534554649574723953577286866564945108083716365789600399307941840681941775111602122857038216761434530889794397765818071814091579266981345664539386104155682452852787371555230209291854175991276135703298531264888795796603434088414231785362773836161875290324084280879590449664237806447020951362271245691577138337110715192466051991386350753071375293965175728078817898543540537234442986738617787568201735510560740551101269179821596454851913826459655718893984001855668450480888181879098200167857713840961700982417834533499099621714747052763521206584386018237495465251000468475905721235981807054925922562954548214769440523342163113668170676397963377998206089692427750490702412897597130348286605525131471735190086254748299885626988929535172432921933094997647648764420059807716846741297485148739781818159870688063195828161889447182537316390760485023477501299615457010068066198058005691379728270065017489137976764837483163429137155711617533032416975418511581845071031308624215134749238246020784955450174021475925446678984127851828178738182335270871499489413527126326491787300795600747924521758110176824734234764979259235170588592724963945220614805063703439764358491484030465053748576970120218328625107518576600116549549789685313023591370950374126797613942718986471499746665085267557874941484487654702720021176868799204721955317727437537415661758442571359190164906346646674556885389432118385436776270156440510529147225205404506518147991300223514511544072121042439272696505702575094560186335639075652978442210597850319419312201289573694485063729856573068200028200003707872929766473757942755545100421086438112299046800198134209000742748349016471644669454776071626686162684071470723282575244586928679220888296724946342854239825093378075049037049992605987726432172032584610052802951328761354780864114845853057790172362977211989861879738930639414671327024426676078279190209821870663332387368128803491730858248667580864139185087850336434997520897593410258745556011710442096763584266530639118449402419596783083449134895617645718718077921170896812572801789187353241149924151679330300819598952274525569800471785898727089908520208931451415130041027271971110198154512618770027814349863492718341781285200943773406173352389841711006622776128432289785849573644824495076390924245112715150991029113514196026544137830702471529687652770717479106467076855259528732852546072228770003692414285300753688709210731181061741581511797263419187667889642120464284326988107619158545433044892828172888133672770645622656354589693809954164399266160682144712123876764329257633292702916855095144712534114830670357060611681863515182488040186327258302869900149387892386301042851988878311504308825839049535648828759470367790874186014717131524024483375143394748641818789717652846702832654826198913848842190788968479725583326924463579444491295478209918484224544566581661455713280230039090064222752263795141021776217094386768322714633297007274250171477222974250627241832035358697963177464719605291965704377981126700818262509195562996187679562822992107388899031110722964583300165074916475513085948178795466531670851944434119046512538301762019461869886865231291636879113910978799865294275951741061913473770710370505404089371456027492355718777483711110599753324424457507360670290771946344477168555365599811557601709743369797972302807930833038832982994932918776822234350521299799785679461388741284524258499495545894208192503915994527359937342641972523213215391980191215024182724720520798249919850026570241434053502190051124948214414759156480278924448917853471556158863327170041668350508001739516047413721030258055641707775540738294980143054836961034860928073852552214025944915307805754416004318097026378123497049798895914716168572768557586451551439567703946112280603865557563374106654360036246508430935271342321002106579838620786864356437128856525699662163568584788652869685410041874780877089633233626311628228309765649377030952861691156263401979009397484782197601806507145716288285825822045487149514054090704514375782688662141374536032303542850803573746234280215835874346505351485475393045652751108732047445702449169690396680339653601542766838825512641740658634450052847094442503797827914538458332492920425049982991747200115932383802204358927293120724706757278217787168323640670132466800329324047704433162501901962328257804077219020897610714434225738071705495835326615999109251086201800567268357082048283770467543200472754007309064653139930145095115345347694978026762294561477170787550715059177339379717742193201835959631317943550552319918216530115893419631838061409468636904911057618488986466642779087243849184436523909243278458578349440469370340391664293034913905967661320773505667821291984979323902305781552679928050926798448084263555811289206650558260682809543433982762679768128362098119158385819579620055278473856621272918316659779349320689562730161953621435851757930650843136328281382223734370110128784273316935240196118052067432713410140481938017060187947447679786417761990014993117537746848488810001984278749515772726678513639229338026152567664427822084825549924876286813379041943140402371105160861373601890370195187764336731616864271227662350662740424130310031143316615765649165182471411055852160249814255371105027171192384691615309401358910342522488503959557279012680719934007864107599675863807579212814192040673196087593452668890419062415893609967073665667735114906010506409581491186878076073053832550004776739527366153736622453139461127754247217835849618694645089365181041473758523430498444087679862749146632840997276982316971114892224462998098170827189629526859965445099539496481949937548868946836116830332601178823902226268968222709800604701768309887718348899874174184250524356920469938491555332913574836367363327459590883690182362367638499542990931393677328963455515283016891684431538888987207890590196007580503081161088604955745700042181137226592432921647722101377177127803346363691108410791817494619465674762615719654590345524774670750514353479790907768724796493527757450000964125299643081736699311252205166506451900126950406809358868603833497883211719713049316399297430200904221898665450370626506796736660405853850292748744128063686924896988553324804472382994809268938489536716566801666192177460664638476226044787897851683594328739785825035889400972721978415546862877375047233094050144731817470348953447494752255009554566723929690701770525120519758486990590499546086659122470648484189940035270770099699185834055602550819649737342973635161339520116159082168234013535423125219154469098700883319298773360722957409111457250490633751237191292972539608509022924615534702558331178485488156022894922871645231007134700527983028262841634072205468127143470583754962117935058400233952191472777995091891457697952212953369829734397176347829401958438894183353427634847369033462733322016509196936845821270145224713766824821470156462709102266202377863406238638625228714547381799762972527090537121681120728475050126957395291490321893454503275681245880914504726289690191881665203512153267885366076338865291663815494176249223965291613160232159597174460059175013903866643105733295402978066452122847277169326406613871997182257563583786427960358123795488573960306800129500316396716618075299234324927765865170865733818089696869821992031837333652898413601544183161658222190737336960458247909097923676263754860049120001265006347760371549562496576540860145707234429618333177604382822457132846744246931120169347677111928177482032553182350754963602822996017534490353790409221150370529044516410059368547198307937547813345009639608216896457655620105569393709130970007432085575537882999224198710191699912374446949952064087551046174762178177980076560266563610528265774445023749522199730364554047760044430846527697484066221360190979282522687302556674883921082878828991828458037412727301834740880261615780890083063546292872093663116320980234446053261041450561420006237981892688624676470792569156821793265483037871908683636754555183535972602373990879262940031871475285363386391570037972267348922382210515958050078688207500447127291072257200840583618530433475042728063525767841473047760561086154852687495649248367410294624246429135848387545332774866674057112785204291737952111816113701282433153586042279953752906206390693057299947470094662779939668999241562184856028855036844516782879574252045883143979602944665594498213422895216044459859884889220934853580104209971566471038873241923996267599865792631813227199301635968389121203679138079287486048621507814720629480679846564842409103762844325416226689713663721227740941277868387665350279286247523234995182998247935482076730541889041483633946433981380519091220720652071616752740935607693175587884444968299895987579925374503802935858614107397828544474174067522552171338624921873682872966687536302934097162015537030045083084218191277876267417985049675536516030753476728703309736739374840728741602911951201691520589826014629721530265215527660484694380649555752167519755609675930044347519072078726282618109644550729222784695266134900421589540229283706040923804022818627100260693838422916565719600890224110897650355890727300183114836901973486821916174667970462689342189606784248466117606336225966132093461162598967070329031967239955144811523319389168461919598582634874896556043556008338215222577948204676802173926714302358702062288731779761206092938909531010583571526033983730378415738678368504907847801227642860330442217154988896712471697016086972068035774313580613991734781422368154149016497531734487057369375316628422237346934412163611383055932473455604309902448612375107830013491608583955274459801851227200249655518303235322925484352163978494158269881334387114589071213087385349037837109227087595040552929266664247967525405262792210463023057526892791189943023059408650704149816966957088616245052803417032903611730782144201344254923010805122194414836434645850244296928324741535019819835973264549496531875517836093098777785904342637792945118128426176379440945057298033551960523152990662152630025871157596352953415947685708578622863410801977325192315509697291525106820556865529998540545941032277295607548668139326563700125032912309476543220154891382119715113243046706994908080421280632551696734197986830386146247315496715033080678397525839744962129798431976978069704018477783593645817278355136362670338940086530083630095352441562071554224448434787544852275053222771078186190717798656388528376657440837846953979351181989673835272436631908182172759619554317868033993450038659351720060413776398774184557007292049510715647590991743861515964385425763459736042783627336839289956408985867325319503762325869270222766793790392193216540948788766792240221030949347041613089644663226482599382049949845107124870008626007836974304601774741138338363998128561523309130243646793716637474413100551082810509471329992219500550418133221166631114436384716544476348125875729729185907202244898015242402085320245703439562827029297831140242720764848153396309802906213766173526881601916122197925296645816835649858637908115827641146524312912502650671640603050084568529403472670091731697763204683911064850524452054154563001435069300355180204822256930540123467185393832780417633847217496218402687253334778007252530508987024020034536926669314138051769785486224627899791146728617654800909509887250013328072427831020606788217950349352037709385796032263911057993403917214693619047839892836560922291324976933315222977857880553714771173768846495929240584118858135709172889983812345510466581532215071697103242142973372413773879149034381141783601257905096440607965787542271013612280540961364518941585286245610820839230974061579547897161901618967584561461265588119255917122868390930779919451673809421465379273492207910057959708129175511547932036317623749288609534392285412004500382162852338430687923299304725821583374885242913232765086237279646195022646392243019358777857196632378776204863060790698635482840404416310895142799097088189962706491785013919935983171014862271042197798990083494969544330497513894665559537271452666712697055640601426886439947409291661431545609785472944405588380573370651311649998224353718986412408843928631403840097812899997914268979285909981846857319740403940511646273498989398867561256655300715975475617786420272386999711074041377424624770058942329053782901115269686159392883125085284585705812369000888977219079745513833719124574328239314296024948781813497420235066825675436550008337719835660890993201128109571015803605905099289856604351027415637122526599054591384163668667807772519988051863407894305016282075116384782352469028600275740689678969019586483392637520430325869566613830828734754180919797477915130613000080035415971606343648228423632322534679157175266607658226978343793029812045730973371500473106648049906022114476905245264840042955667030772359508839198466269192616016142482695304554697929865748586663648471633340886975301240364137543898388679381441539889434969010842638509317979547671807332902137276380771003941651621838932873460349123377929522101542298711842491257400310146406428334153717433840455902910208000632859969208990232419138359671159049544220445934643319436881011135220738097695436646991577251308886650652654861311725694564426992857241691456458549995757218417348664142646492486104753223898077365021734960191862156575545554623619756665749307767663205241253201864709602569813169947319992161220718282892761128481502833295155016968373199575200681199766875744988244335328910045936992497205385768782550399910654353062427237275950474240178021816785633897552908123437458605532594282050907771272516393539183849982146315048609588262656836481562892509436661888990553080761797673844490389363067647116740575265855133032023699820354099514460232430396769889899402837326225415384845579520377366636166721700485307372594659697787007117965030819497513715483292559916270279186612697599803460176045973081711591955264015106498719420251292169438047948560063500859416166238631012011623069124150169780736598764339463243810315570181349073115754767318479612505059476438471094750465506499006348003387695800855645033581852415717444879828619452011598877250141824536996119265739779834066688045293318648341980295733758255459232274507402068276809222450856775195561144248056528792461075950442922517491299749361024439299708121245121435138879865828052557533076416434614516851013737860774518188578613759266114694517683420849908053461560473159890036528735418205528312186281609546694330340821515622221808297449780550786845711865330710042268948323196531920211815474815746256630249807335008861064872486769920990196798017468722440873587634171363065398016801661504352418999213829829090049029384752725351040323473905615051569437236533383964517227973527642047837089526842523418775706284640731967823781530390432249049761010084157757431078531559166690857104862096413167060811682507160477921757168447872196736567750831109218418241364892233756017971407051187802657856286536479826170644946867607514800866436948935199094019793296059631338401626489654513344957200323693138199968690640446056681451903660143397645312044831125423922989809821609391214384388459707315541980516973779673639785156505527034341739487279608607272458365050285365018703634710562233368163551170107879915054545760552660995687930979730461018083076705125386288877927782819180102972707348210027746720224801080354869020194243594093999310819823005690359598446212533566152468520416651231755591628762349981178110862199860239738645263157331141641258789229150695627968289405247754499242308318437325330259148795607697689515890554663672739288055148927126637638211740188300191579704232767100590887401403583604241004055157803458786584104134728130646915915185866156712476169274471544372453371311066564967179436723159214414676750007817997551462191800435039168909194189363040719407781637035199975411647534079859315264481902322420637731091705256910363989173889511377175537995001091192061684378562703815272525490181414094504164102623444791885855443650557986469254039767828433564932208116493331893036773376563883148846190433551792928871731188460479659570543447651413672546717011926696892425805059218284210296077957413965864569597916538666412405708816169432558661905026092973367231727439504550232587213283804388519123469817553603995600049203027664455690604279694904080890172951154158315510164959306739819391566985779345843647373538541298638630230193488594920866755097007926106984497583471845234111841861911555296716775749461259791740771505831707890658236538516148292825248299478497420869830976467041194187030094060991975898402109063393996652846379760546814483909770961005005724597678225564177847669317208188199705005261873486037007571869305964952190699051638039266995154545386879949371255040209533262682529763880523710992563861056705363979424857193900613223513510584388530488119744009521007948809216154637596006704767798584747897501036427979239641149223294771725804273820963655085887674865783981343848699210567324853967306564092215873645433924102498631046636439675330415862213894843911289859806777961554831604700063878391068524719309367562039319744105004391924667621833210104432253783508549628931917931116352372707467103529902615081161488394116117258198737943254020814469671128888447720610945697408426835027719317435977193838895406279328903022109114863561743362034103480065429042729681612592914428111062945740034640893607285864527328066009153605470811499268415186989624367145861512439863579732247003478153816954538807195417402546314533448614571892890285758366986917439433217498303381135103411505979239243392435377454946985421978626015681665652917660853427263257332010785062049298490395216982282718839348698940303448059557121952151336847525983024726933484331503417375749695351007904202947665221566967497377959449016530543208061095849840359304236492402113848434915601838623672999688583695431624902175891303024773508911657882761008712364746957903371443407932270713539363201933028563332885320562085607562087720158153192777829073877395956336419558528483811327006437861744041773069641507694635910338268642192831620231452610188035697180749058278995074002805254305502793987769871784625698178422025604551617151762213577289178730929363197237671723770023511516082861325283759980360063986202977023589300150880240808251721772257712467949489877854430481511330055819517721805672036420035064045061367740215617915282991346810698851801616860276679389255100216744877318473162291594631367916716847774771147738233999117218814839375180944038608208285492923987924863193068158236808536925021244178257345876341584183033436780709308224041949836020043357310477146385870182552166989566956465979861357016333263830376712073572938308224167835131708984472266959428336858219349802572295620425646802611242419752741697130109819499439682186075659531140747498821933690654281154321184518881742207082400537858482918669030500657419702074417597173180686163321394305843249298661017223792842648385134628212855457279702305970823457860914204479467689674602199510841341660608277045648909396540935258461031008537462187984916737865340696962956050364161787009434777660947563956805362669301751991636079371170288667969489340214774403166540204795216187488504952219660332249832967064081377150407318495029157800712778386158015101128848571446852938907855292400286028063736554140606886414605027140537063465775379222244118632871502731168605855723570166652106800887409287965640948310644468765678376200449162965223222082423271680698400482459846315061341319412086767219982144299033758176635406299144136034260611275239321853203779276055659940091690244867044979432302260436823260620426459619678573063210952027615546752415883521801565468018553314115744892422395320912539660760393018047401234849103529732680998767763424849510941257189881988654586207080846460820199652530629917373359420182945581083925063408496546741607815276550283676549626426365271705893632847927255009001114730447830139514622426399787561065817083581715491182812564422824148519154907430412455830558645546526808856437620178637858625548146621065139500433452634928524123060571232275258799261008628107801678797912302225222453403845266254182208262391038585546012253281001205072861663369691536020654946266731367603268465842596106732722072189616989706822177481227186407473001658463504400146319980945920070943725818337341507130882036074135704031926441734201824388301119233448068802513395444328168944939862958707732404004897732797498103013877377928977032573681858623779987840270506450253491067672371151115433065031180934956043828795890198117630200417677143320021375185376731335186159516191188728768557291479283477593661097732215693916238015118315399556531765116652149384834829847588214335438005016043771167376040490965247779961569996098277255780584700741659734086926573074388266945005512367521906195319308340502930536703391160750519354990425692645943150715211027953547633912325121124646410580374890322659210716384370743582389838471862998836885192276319141934536186498678479427945933260876180076380388477493212429162416861541318530478131800993324779695701276899254867357636052439742913272459504102769559807871145884810915968962998296264894741263203797747936698328153314596803890995361410558390670074935047848887931604571268984640211085124735927293874966483105143680715069562975157043479036768296135928285380322906354044657989343973570897438255883408842682392190065110597685910525040085434034194651644591898561252267307134067056770930043664806995958519841565150480205930194493432875856714156357001423835117144708521271197777916065743341476658067203827538530696058270387261363584501706711691752480595333971889994215795843803100178711054889090954702424646795887572176938327767785101389453512246210323705816434691334435821187871787019041055838025906972036776229724806370103843610685818156695346427419621865542551060788102650220749752056701097700888078082912633476091151399353918505749678410320554708997624645285231710980658846430074859598006323650466947846851971998090544078541511260584099145036209320844801314929369421789233939916670817925371631915981110548668505956976243087098202045067952459287119629215382935671619306779465397786593228841532005882864246474278596418273289650129050099005800550687094392740473648817828283935674395031381317420363277668451229257339976687054944937267220692567387223520709278065179054917003047250857662299954024167640706172009016452827459062320558383226428985493833193628626959390239971111965727358261037609235702667780552406886486046981154035708571220532840843941629453967929041288327355403321763649083693048034292879020371996932105456212409237734840089163837431995506339265036476881317771237523171016783542950630158668933700686219767130058904327708432875325092289559334231359472319187583609686911016300572025382542666912699991640869477774807752134402250435355312727908792241107057155135806669005449170037406550429915270326210578184781010009479415960390937470361522452254822317654667454777004445831693038727002679445451928521355237333027835955098360682334363357854198774116701226784822740847938170917756310237913856053803082664540624184762380091763237540567608438687091895930448653932952541154618340306694736607946510855330379338079531032667907981433557505106904338175119261811152188241225609478608884033478417462530600393714722909081076660483972085310050501838632428831505764849012568395724822037649422264406698236410106496177431383657418532835707990114869987326700471828884479408308310513925356585006255928896597267182114640837576105722572693666778521829622806043253505782699713571703194996485408204595323712619658978934203253000504682912797792636241684750881919679808885633246999490965517644549347212637302327016363040073528615569335188879865083035669765228506453231136419799961916747668001421689584161951686769390972514584663177031733434672130297309717748606195209266379007064302752686528651388658195079524871608586782186967032699836548916832823658245839931490650849005304364271032886738250020116764340569465557719648164042876061849534172135706050909578859028106483761887061807767995315855432908814956183147705547981969705416372724822198761935781976051286137195825335512697854792395825766428903653492439794541276473983774989356164938569894079547448404230097468351202232701624696148555369909004115463558365019149655606408032644454051103691672581244021800282164512507610852307155203338191017581331091368939995874168919598548420932599661612842591907608110875388178243456771676614238579113984225981556411335166929664250564544590639161525323761946877165811926108075400435801378604993927245878222932127124041517838256946786878147878440252444592534669229535489383297232349641321521889160303690772418378071977565923244665310057052521140106021872473045763861367132004591877879934285868259507277298695645902779700272379803916231805783018574578127035234415540651565205551662409699184697263512645801019591710546286582717094932947109493227371107427999808274734976271501636436031155928051945825791715053095215877150117035552458509404688204274760298359943466589694435439597154857232492983492377193777354728601223686169287699072847723660585986429015728491906202845504523552538937145229252545332570150979838520524820527841778952370091608700597785044784640050249598564713174575276220515716454740044689183167688904130967745105411784337981574236693506375436095435748908225361281849635450938937146237865282655302057152032629774831225626767622546087238027782898911082012171672145543512974616692260086344896746304503415495835157035333399672688911136968172386197179323195153615905400093228845080052439106078867242673279839774093897219301195632280855586148958811473971936607528006409429269407610513073043825442746628809829340724383115899093992539163077240556525988901579087015872942464291671116339032414536795485328283602319911761257026693191959564892196534977431417110488993163334216872707488018047761465327965722900620240671923650419710582086994209361707017985400227858478773348658346834528075334432473273735299467489131740368210176711652234652544674673907780808016292284366619439871340687923459537880831635967966590662740137945357924259891220212826755147016823420442905295557999459165019935386804448262154655759568885130156915608303585625428443886203065336987937372063290788486477216427025284700246527034698052706953888725355126309730168847725374158053434335026822808558570468642940224260435420910535287133583043839573502909242716041151989032487706578899207949351596077643073306333575467098902418266002710593211043746973919978589666835958505679225760060602818601064135117425894505184892832119068321131957786570634019197967552563936507341827775302355644637225882140020416104556163351610040489615165866569011592848100729377963480911672053723549737310147016523741437645043303765318822397649867736251212893262960105417296034420797090785477553145649336734223351120554446933735848709023820479719261155196613378115585600652855148038753375626584475675243813260992845627908978995191396011876030564366164860508657320232392188418083838455317763938611651986704791055515915271682632731615943571351586140048159392567705429640843530630466141188120708985768276772255131983144991728714204977239191461297453581067542591445732599137572656376229393316556983833440975613530923342061332302934872425874143319649201809038651890406457838403260538299191665922206052351918699740560662802730394078221066880060801935230549639106537763169549767385177817452958670489570907313858066657545401998990695145056357778761141664601719007247213508926076755974560754829171267521164487846918871008933864170161004830765241599803712452971073830092873216780854393507870384638993133063460480978422365961208438006762076525075865336285303568626415403064316827749294810455719097118142698303512342078960132663328805531180337246904902494284536985872699133185611862333107512487877069807382881348991007486475306099592864755744126542775172783494173207773449528864386821434419976836713427573811299243719893220510082843461772713314792806823244484171806690939985167536437641286592870404747338341730532137243486027634195192079422868235230516945964241138825297739565351901862317072070960926590362278218152822673976600901662369325692942852138974109831925359365661198672397196252804249204808466973638288287756928774178756568690499601842307615925005147374432691188079935805471583908153996157169222556526836481551874026082331411193359552124818132755700605869609422707685043600288634323252497103251273938488506482536492061675783810280538138269557052546713610562315398013704261621445973736672138179651868997032257516568242110464911853124023049965743819945426862854699372656539863283179585577160716727738171659645917474692210783979451095928951325816677755143124788340786685305108366743082791549255044534053554913662831909963721211914324644667885657810224524706759249378075725634188982658057506211147458035641764389579000780747160474311021753823574367104240929896804927096926906476047299159363133739794400920314615410252206462499277670429987263620538144661501775805651304025075049671652708550482247852410933154065342616294762501341840345226822670340709820578787315337933791030548070120323368730653665870421777865832154965535418973817210809430720336211768374744180886341622636093823566686052490975597726729924637340682746455753791540930673469355092578291812976149209801652358547845998637512256653403693371004862370304064824374443159577496891172294990659829144144195863562567626308582341180454483738726394836353884634551862042120282983575796732465704488195168314849883080941956986106268297190790625081880877017122718274352696289468673162485750540300405588758524991511966670696606257757356920529890693357832776108451307351648643558155621911641265089797921468117585464430928581650522182898195804618219125474027805581570058101389237281427212579279773895249162812166311421739360089164584716544012436370509002143254747603902062023225561210611506045285926529577532952329951562977993048528043900793145627195105636296162764592681639633129731314380927059249986736053423869176862402259778825583735177362835031235612950720433724466966149942167008927850027054837643293581637726768165120823810374638628487189695932344267136434487599338760831613054899033492018713031844036774878433815427870215173720949893552903132755070026517549570962186023104665560280647395515623445876284180595559226674084117190154072556867276214006255430821667164011737484113650127537977340848566811378819256630005238127310633007222195829436503686859595712488978958543548066924658788702037573849120076704671454185535429210215331807117741556405663367446836505949069570355997057976244021380918181795532002421585652547283213938139825449313310240364697580397385735251339108843697253812521159331294938618378866453983753965001389548849079659032274110460037789326817740211574527029748752862357495063604511273034002953507491987113481979663423548803242283703484256211784922934713433770622750743887490290715558328052512224132399179812612966391932720249333696691784161805632041905350762389810042972879596856205126524297573698039337856188855488012872936209908064554716740846756189491784347575091726652512885538197370585931980860279683266347010594911044936969851914190546536663408854513636948902356549078661490262672695908147296792988865835760225109134472166458152671121314597710119438072789146220312742698296522571298930325779418563373742403083442259203509538044524488340879787066957765177181880060969005235362776808937639343483761382235693841578692344489364777320335674218506435488178210294986944549090842835317694028748296246869694766520410704196113359472833379397702960404496544061706273790163356034191072406841994864274317642954979024903699933910277756544808060122196086188422935068532895900084294060427046412493127222772050419662832826955947329642023466664468359829852767180958174966578281096862459636915786237330816896524272306727946757573809119822744225642447247939908787921718022932577256396905412729198474708397031462878713578673795334626493990498753710756612482551521332620031689597705617318520326990547857025453614497259437467593292297125868671048829536043468981599781852812705730846376885707690727826660749971133236137437008248522503363737687018681847961242067620628875348584273974383159786073826554999984316835426637953432376044553071772171787335701945935597799805562243119962029678864335724582954037581703207417310366277717078360674336969046172105972694464364352023752959696150098478206619265271498940073437142927847475461580294540442992262129703487552721207480550424022225156933189688054282074101598338409388905888482799119222319994975449922028880390018635289605486729903655993257014033005412551252270067891963553510769560569003521558496008317462638291184547620375124848175879669808993555507489507754035390857823478732644897262613417211799717070731653916130024738885475900672768812746006037998256445214999392637322502305943290394740832578412029117636194361543357867810347632842672448480612566335317561971708298202397688345913901994110018024879053461744369167727560243525500306170511540310241611464911244843150683649501917695096060088428146778410743717476951247624771005710843408530274067915856808891808505906770298232070836640282064154707306395507016994118767211793836841583386654960181222303973055590352772376555280809975933794468928503823219719059741855698203730809078425964770067637440238505020207573596653027215869761291701906547928037479382067284483488211158860781463091801411652856657882734630473006068279590247391303058533710847297148368132209725157765043292078291855803786060121612483568634495306447903293990601948947857826852074550583292443872204439182709139706763652080935519003053537528191847965846405978750609036438497404337397380455616381505427158943003857307267115574628039909775726189301091014903486624237937046027346947688561041295081688567135781561844373642446807200554588548626745113977109225252527537746433797458119239884585904407098640480299380327710951741677097484595768703297289920971434453026117419820261267190801847033981912286481173696581344473952540136303309810169203894560868870347390136129186375562431063324943164736283958406263591562132000184400017108166639368692924145637436377619282714064715709686918429672179540943186510852958272283873124327825193036500447974064332746631569797678846026461538145483865546838691484527958950186608485081970537450279558118203380323944460305604437934512561363729062233740434574072096365160623629630164641863113332632240313283316945181257464801590277821738816603464796547691720355822720824719856502444536065032363166521160139787727925350839323873551488730655621896276456089417603780404045817272399190181798950122303421736763565578806969226932198769906902711075289158101032753976090165776232212334292962748138409151048681583980025969646911296511141013950536243380217590937307596966812014875768805949689083724042325078246071842241033602274490147495382007189615123511609258383692695470257059764460382400720775650834248552900787854620439906191790873220351412787426481454136690756965065507386775845713131377498309876442751874121332658925932964618260215743634516810998049081996662071990773199677358512947164401456154719604421054157822200596975883206821189041208561047844768168494172100071535154434365597959160151542721475052387068567977883898988814865484251798972093493925472539621811737917041543914150585255218711286478030712016820206630127312975813454556683744971541100812218585565961914923287015317686738801123476280748395872075694893157973368278077814089227313048973157419350923408584704183573805322739221293223234108940251345607092593572803423304681116988409750697053148856901253499602104331459833826420767127609953798001672627760836805108613308826112383029717057194723520172760386480107154337422638933534707864613385906775084809670194848979237963857894074285539007686949488908279985060959926283488666839020603335233917903095380316994646032278841166948679417084028486924315724135193096340940438491955855363664525365034723212945699594770431518670196408624419100507435425057218651117310316603164274828535930450015617466674017996567462631363470287028663186450138983622422259071702093053711445218994849043066833683028647553340108295708246571491610317896592977949994886075663679158615782613893282145176103813509901848311241160839258894532864007784836279503788811874328160347892640698693938555861086115397249946552901058230627173828165276663527508655861151450571000764334056763268143661435563699505127289215642530799005403942903796311438799933731363954723744062523170575352193733147962574269044402269346096022152070827868147777994604356189523303879183316012882002431322977600221763948743371763550855510852674177699209565869663012630126254081313822868156495376449859287461536046171973897033364154994117623055521229238780056188403951044447725697514827834014329858990716448378728021071540480655773090079482306224565301867033443039260956282104580463789204933829854856691200124840232533821895013304459784176020480542027511154868440576749449598278429503872126238751735056546553809222247348353514620504032944150772980585751393297044891378086705073803432424019212990059505537140477562816073164935909406628872732985860367081966293261941234906352066184021290745981044840935609981567104962211661163898135489962163603416890762161040064636252963451951217733850887866683998433884837058681064073319607816439604911355315994979516940202258713626969631234914824013045092107950993959895493305385225262927849866215904419138212007031856842535194444072520903642080430619976750644145584092940836467646759181177036394347580030765160024603470914965739262100664881407920578843986537887351183059657672230651041777038263182968731635608180061301936151290934355788265257487257324255414077447180541410043796439719028270112076245544232041632519038224419757374982385279290032276187087241811249963569005574670409815318358488020057462296671774025142116467129370894552691192692117975055056072085119036537032392129736998207191349766037561110933318978151553337053540959412664505039865632016236524457737651316204017238968683775329071816262890224584703878408856837785052678876433272166890598789849710510599181375969794300166628036616154062795742760577389689244453663993149488417285961048496087268468219930863013191010548374788108181556159800893508224317319022425337055524563723623017937006981196726038632072390609967430803459728701794231623246452466640618199896618238021693236646605559945385105353622008783999148234010167661358828355437473140909046349070138532422140429009824207325260958948284334040680808872181619589541528512023711019161048007015197460353439630684886780259076376180755290881208208289774641877916463416294773936466585732396492581440520416699896853138600965218402163622713348169011927541933137569437494724466368019251811258277931523652707013274317364574497677392761956438035144385830418974090691368198235795993703621483732789695638891989280681452700172188064265300532745336810722906705251143099016844360972823996587980413724223827110634542123147727362582924101924228499744604326038373492140237749740344560548120224725713063827291650024791951600361467402467042017102788670688018834844820294951626957475733327984783658770981456379028862416110512439517001023516444272033238165409046857231162882043462900911559375197439701850023721481863738827435441129926346017246284297087333262489541158982146864961112783214363467921447035678447853645564793130870968042442982476922363555764008293966903756662398549096071997317201457839091646109489006774843149051269723733673737374340176859181624734185052054322244534625472415422290558982716378297237375895335112124741975838973126564679302155400080982561343781076595810749094934308857882243514113781230114182403910842921871393624316895916315477995453294249453279701469668327983369330442545274186792050141722880253578000429890223561803546958843973067928652714671646514625092037495178856273335831679434523477807254428218455748523800859484374581885623779825029384559898311386898900541447220608830037555327555612034979379334594384203888511426968460797154995628266101453475154177154176895421958813155987361169835524052965885518306342155660962803168508133836853459319352143237106289196243633841771131736125722883085390735725262852332065293057380070324056761870890915659633234943834358524554056729812404702530570546668093820028180393188361452412856719331551735484949363901048028856227214165531515782839117423714495485513434430692054649296330916174502956800300892681876875812862368137051334746422492952786753544671850381200698485680981615026939270920364569079335563494948064493669809361920385399339532286771550454672984901940669678550583397417914241458751387248130674545749778635360488251627024558813441414840233777088184551074991183992517693418723626152449208702715239090868373594118146214219531503329220465843547323161062542758506127910960101779842478912666029626488792090508260584138905091266727741044402144499260755244267959556660483676385176603364941759118375486335917185142685997553971703322157245533349887451883559084864408157335961720469155219929835648231449494690108966551445433748712864154606065634539687303978394938162075348266771290528104267331292731904556323529000285670043587642976915929721984672236624754677796716478845025150751444906185330123695373078845005324623683008262262469446878349377368814794858973370609317094674958572833167992562111737476849720915808015848295148548824982875454093141410430969315340829721895989770026029424312037122353111978206655476730322460244416272813559761675641434319010998904286004765003525372232021574315041078999391497555059159438937187106874892722697045973658335452996080049927798326585282096461842381695118642201657364665090102110946021848729241697642565368246717117007207266973022529113163331672087695541708276669524234646833666287380323237789589345823243440407179948293908540812344919726622021732483128921586500240703569809616309760626372857255030569245815806639916867226648656091262229372758654403250894641568753525706186371377600725619714040546845384933994313124797972936010129703788078768954413209619812554768971539562833960087532671122088973359398446776269959151470740482128283486459914640607465555247171246551740947428441774335772855473256326867349379539259648255058298383647339946358962773137983351256151840488388600439022515145252393123857940659678362043876156003202536216094965454006868381370017973257874967672193899917410440690601227418206011659942609717633035528124994192315873523718241871000521220667569579094529722763883440003261337314746297586513333752139335716357314352088068945327280571890284650423260271266956053887187632502136362187897119739344702971460600981470840682820941365985223284751245387501788616757902724553524571320620726744315840018871885738884373727394374110941153267367121843562379313022585842607749874663191427011985929803639618525235698054848286065159666871943926844943310051546055165243431639987413996870600128042080049276605288025906052009687511729151532106802424754240769178786961652297198807832202313717855715160134819622068528139496181736276921581794753676000860875265042086666120965040825588019955836589121671959801684392185096105332982355610441075312054658617125535048150773031005510492085325985290788230858831384946479168209981764993193492718620001951595604082313488622575918189629601089937053395852573528535848726497892779191871362005524114843607865754822676588622560067224371715751197676113440934633753604209840149690174730773344707686395068720728935891441638045193346169199778436848617907166097871426751044543829654413907709380125432826434919399879322556002900957670583045992566570119044154563914041157405464765057531154502137101736207263138468262421514853434454626294147946272824184890854441914399721323578644822808342859027764721889825213139949532712174640891418872635262751871956574117171819307892512768107372507257846680321134356902224105744067863711410462150285294744660535126125436491111761648748461925593236946422336132802717183815495087942122274802565603445646282918091745905451901643605716363973383464042135168520809607210717293737821057016334977462009871654620801623365293428617794709593549862157830079231233899460446293648758302571518010367144064059870607809454414262033959517326070552083252471522392305217379392158784946368726958056219142414176763083428467255737980122150292660696976943925068840956235195929002425815218479576133923695756405570342691870583888027823540041466779257084442292862002652656984996301737231404520525472057218353408551033081531490370923703248973882699020202675785435301459635357116458509679115113659168952529600157324791686279807040994170781454811461686031859358481706596115784673354416238511187446729201350679897600596492465838092400406423895126155388171697773642141098771784871774047441386773004025385515368218977537814370577646855538855497281609143724231713909807874773320377320667164827992892004349924038448056292062639445952386903501886449773375783506396945415684729852251076306125274587841690910147582477664091037519218687678433247376470900819047947902673660829878669580351625690078259473511287709791197843741888964730703044561614748330811475916343773710845694271704012306716808777528486671152496720307569719165359342468139405761601934884457267756367034647733959809862722918419901526739831591014832523565537092871737032714504580700614296534801997643926316582300293694307874770755148492119900538997107571235502170529848135020069746936082723670039273611693448970729796542800857361413744977147017706649603305788719577406012539437071412876449120571160072874540176262314020909382588156426384271987528922396095474285359309996853524598760859299503002583615456716393279807154732164855469940443618926790033054957901218793200040153960757156921248581224140647826146259186247569854862198498168228296793634123357866663087287844004717046899415812293881311063531450144911829199496471805351686673435697759721079917878292399037898875619142636413498435361852826709082649061351795729356450178282909673204479757723042080591690083048330196816182411917510635227304117979500844454931868515574631341294579724920584320978824607790915526657337468880716753544591155145578373920389529092803698705527768152607283966063446088596791430627446462549679333648090055002726721231432598578120406005726161973277269021614689881919853733324145781098375557960288232045646771910296014072673560001028948927950754928906591296203872079047738707961484982201765339680175330749454977625922287402410901709683655921261959475085559405192183842795604951553293589054965206908511863078983385414500246054680435486464978528986541907691589509246333103695185280604450313997441675230638397491406116140234097380671377163029661437478128378494221341419058839979540061226346365685785365448019013743735387820887186971861625569544646617766708162172542075039839302089697519247938562337609621394977725089360400640113001581237402801105553939610877060846429910317139693614206430562648403088478785638328858732739420867072504753829072987321234976039182231289475908992310004791730259002573122134145028520580382949237474861108661107184812720749532303886530129910963819394316207948099025850953702125692062003209455514996137721677518707241096775080863191555674511344579671677096486293791401557895279590050307290335908354066019591284445864813705708919641665715615281712052194248716248279183541524945942907354121597011263548908007644748216793974789546211856388552535284048729666697620698873068361599166693834626219641730292215952814941612723303963950494858897574724829923385700050229804935570934671851187381705419853856787709194028372179392093594917289016659185940032718619457821520963041011187773967050710971205008747254856199284512252604363347402230170949769002051227261053129141384688124420849855892943029108609336161844323808900383559379733885332449090942043774568714035472131610244471614794360896389683019769074264412438953704123975437190642492901959439038454820094811895981971424719504666272280817139277236688944840170153090485034510034919805811078211913178115305020382200384641069943972519262262658149030527748796673597014450111820153890900311188239098661180501611393883516087514934137726731097033929731874084443657224007049866302867162713299580354817034359163826737662185876150315346942074857780337427522987708884936858554770674590196264138957986900757642619379323950559878150795387117469710300755309008067445780849135485767402216827713054151161313344534620872205859893721327302752182072781576433296016817836876213294657185061487024373921623461377516851061678461594807982996558562960809835018457472298178278857525379476144592262634009844298352660096810140817748129115981375822289474646126997688514613367506157734259844379058821890870285605400085597092650062772026378363244987434438189314051086574808542615602947945662279814100098426921058075501202600264795153871911221611394011067864391433735863273078904303024470697641218717437357196113387500337889934419458310494565568112005138710062370577585099266235307881968862114698845150293584497405145132864101226612212003315568233168517494197486269966372515227318484655970899204636504223800063926994513198418121118084255897778590517897469289321933254088852772743020390835525729848562416547483478221372575882830671790324420357381299117242466340075386297444763594330225771685241795849341108593873117288288092477426659693127444573047686626022305483006049987939258945507509445006707837450469957336747546315632148424349271168111477477362353557339522023859154700338431962598162463944060032352120192957112796045821147812010700998820033029383794378436623261972164766952478293779853554317756499322407033777247319551294624255403231360309383590130241050686516225943284086855550830988861498422385261521615435395891343195567563345648383105707844211597894917745671034605865873172411795322352679914425405557746875006631780303475475426353888274507672230772665915420295090144390552851740316261366433730733853225832503422587562337791567354337295783455521282408712675450297820799339528802071799937471069437013819201837202698717088514620673271443034672447825397192800873025297227089517299363710224967519331618377406050802167309972623387529632809718418703114790481643323477790271581804676981558403955317118217674716439850839168639132952524152848149639728825054700460158987995346043018527010626794947188988843096873708139259581035814365445438357593961055432465957692767401525253402170008132347707238438095285476994809653673861427035299994050126430998487657968589526940468342728938378015996710653452741382879442035416361392991737519602498047237420469856305629442134209721887266048343930979082846399929452853160448223395095614260411674170166495244135312099206471407338517098011792178786346411404163930683159809395211395282794180703822127579802326732752410896529770358847203618327620499400723341809047760552902507790465747810484582558886808149884323641462734248858525603660825151221437619072083367466000123133953817273611208034291937904447633506767413358511324246427737408304913308711780823613860075555613912513984082098519741466388679527422860416214930640128696896886979626909377226973429579318003253081801297701539270633307782777202161857070304366286443716782224123835864323557437937757078567989429232899898327729716583203322822555035270938652805579323819852703676040416401413370727208467349339893285878238322194703158653837701357213778039811593959746946420230701367586454686513208832284427218578008720705715471441548226433339790060695932535098207951869315992818735016400719007884495285705123040443880760510371641122772532321164204029963121222201439480734761578355322719273911986089970655867118455194170499730726906301998125734391221019576596640813266863119839626881668669608592212978427669986438140022873528161716314496737093814925203900403756751177724204383174012916879821484504485455704327713783857942279548755416024736522992338357000713413235607966655435071068526369808898765986451243232709676441559431896270198273272724829660300573936466744311259356499679937088009093226827975291372088098123828303339461617092772701860503567800399481736671174197393581655667849506243586214666227451175143291577330713491983978423392296646873649590589342407214907679164646259955076803924855401271104307764311096487632810287160105600653726548470899680254592085036369874940194748721906952245672676650741327066379148369681337264789885402141582764758200414524103927014029936110417389945839021865894360484947552929403835518388934601953625768673243046637645093550947695064412364197487934583263516201464939034643963522199062787291725060807132372264308103286517509398591146798909127795929689749665657232814518000391334646712725384533166272649801221537960603534927658097205303422986085237392933089552247800664005827945407316689990342783967567641532471316694238475989767298380958599990485095703995699563408213399241800850274088767541115459066207001406581917236262566500021822199118405646553196786920515723282705589807333683686668390309963546959083878140617674664808270122618475936860317853316314453077077957430128548689925074119079863034001999161760287523663927381868859819723491314822441386216131710847542299894226802463309944842021191730723455564597826492963174080321119835800506499801189193805249747672201314979173687458001176146803272962466048505629993618113211765478643228674133722587541299922196991510034700731167376795376839326620764600795535627974468019784338835604244510000072207250943359847615118344226588525680534394347603600406585210641001110006179464742803256426731430059888739143527990413779555208557203196714105163315275849826997584764539338143860150349759480616119572139458749981808298862430675262949992889295923643744946379565153120381733651407305330702415319672470726884041205365340843126279190742637782791724851263427676740092320637140638811420179674791530126366602659721910650771856288465254426983797600217376818855772870755835470679778724221624100167281523138767628606087016459197080867592717181704139880637207643226017204584788284404593162623200089628921738728202954494360316431033295577360625796990323342249538189368133703859442115380023153063868167477148455031412261167795878311864025096112771371606282775079553428351479488147949644295624214343269896661918369940904223369919059457350294547091382643724562621299818157553849325998928806824661297811800583850986092047438964022352139894999986051189731349070104038267245787151720947823192831472426745145430867465745645555688672823428209340693043240546279874892872444164405186188934258872319287323881904729227114595762819813918082833955216990400301466445346619540919498567818753817593773339019241595909327715899389463124215531100470651894282608418016295113253969218724668102859318536227569345243184272848840720454773817262318654525495358457850734558104075500945185387994030831750560633706693051871819147353255151043321699831246628783812515112447832310792694057997164388020190978806858748627496104787300652255699821356888292798384860220400623396032228727870406778045100259506343813937155294407288512397966965338214240435872147647722347076527328078066738583576119985359020927829325109293548468880728462125974116537130451391789115229710890181993558192056889651397915454341798960920404572284023374926522499068965902252619054283249696197608405685163092611271458138737984150421643075652623109296090812423813465523495869106891200227363643304192515368830232617120930954656059557674303552933152367619052013532609254875400993622159184625391480604154403279965306697680319680994149632602270299156800449219148611230128170542670152458808592902782549975636151814495467865541394478804994302742947567864949816939013781612295555184554203846014822503504123466971297370774101713752201432340638972467606424122731367479691895571967900654239142044095271457266568513367951712847151001825296210906733106412072658136961452689367577234697220181757156307583197525434340340202836074726126677465406548978681224564768519350508229278246804302216589960467658288303432758138048021295291164761914047907139628749076281789075351095099780318300767021579424886863327186186260857899263560922025989210071702440712629806463354788824062178139782974369935462557130264674654478881948269120427804251243317270421233477687315971016516256503680587449408699017539298033361606157852618364663143901076632583975022869144742142721617185940886301696787565365064852812340207605368383244567108230204427969691120955084194413939933612083680572766583837314641284539913701404293583949467554254650563853577086462629400229007474600089167451685450134042386985538888941968517399297111278573422894657634717811248453965587314382808796446484901019219065454768069863378321394568328283321417258572840858208253068189344053187387848940773039919090825739187201976075239643334974196453908318710926507912831099403200219515968804024185444488013369884991954492875003150842862421774482785980510652171931459748585836569770819094769731294373453476679525430951497884990664229735413496286778119544263696960126566909792758676344318166901515557212039358415759352230439853430804919836074503689674222885101549893707367500980749633495554173554304659404496154050353346463191918348376625669473116354674268377963428657857385003252103004583527262430735592253104325246739212070091910725064844105449576254956104467857492575126743071475067852571517780318740595648623538224508051841365618641493233394110837660572011760548584430087937943187820572923014316418127922457992677815775278973351536047720834544096525041354923134725056716550540807824530049214159889879848216990273772715414976251127894461576710719235179964617205382267418910978608681481748715039977301033396516452439716665564823201901923012106090928560028491743600013478353300589946784336217489204262586030235032781862114304093478831822034259019755074095008547945603803142683464984887221185528723816105083501959959897946489243972127640285284598551224531071418617035111098995048711437100876941792171239191025493279415172636324294766139761880716392894254671173364655107067706510316421955745696522533417944973706777398347137603223017594334198261110943010135626328246400349073004312993270325713251571518014211714807576461591871614969492160320897490645486540027448180754281897234323316732653942306449151948265506022819757274274296388357424049969874056061863788699377247710668801384570006508306935886218782248266749797114196751103269509326103718130574342490788120564657331981086701696334635863466377944869013232624441697046108585531751309563388629218077871821740734990304970596575735374470889629598356213875292588790012584791693125580162840937167972757888837711179324362772265352277774853839418224882653354630900132404467889318961820385161932036016198930304446137192762714931015446648128058741191093535911985518138290103373796132586365974099160473314692911099884818068880597922535031600759576824231977898229880082469475174589429528932841027037743001113666989064762040225648691542897707283465877439998035905527800820751319806941180185351922266155404114819325982729025189202528315957985858583080175702804080658873503817382209749052583653241627484136593284462513195123526384823374888467045618170870189125151014614563762153920665137153702944468729495447175288076905556915569093795917928484775450707549513624629132082857417709517611054037219730542572285217453186404781806836923277173694044810088444658142938617690435155765571918782616773508029035839196264529366176973615221873831814902168860638923214404156104068592939670962454990114057235832878962822841715989649946530408129791041768098049390010977946043192341308127602990991114507276847382253989730838581220569825680758623376643783691347384714538336015259450336238374891652433563236749650647370180921464136073161885414794529259977965346929503230636586957798460858198969685827368668371245120836776981728016347305674796816531217762916749150664879979463657653937674649120363754497429070566520541309868914105739969248982100010006409892155205070030499669195542597240024385553378755855799116913512725046520235018725787012155884725866926605133857188747782760308937105730398465898619792455943925980314093634162233837564438941442618011562119736030071316004432390903599387800227483563951317255168894537000182296175673212269348243365631058806781564392981377413105759028182178621713623042249409055156873766629219765929918006869751959189980006455665234662142459767045048293975661458279026278632778115229080117673398021767907412702545739540131113690218606350172682830300926016731472832918959263822839206910589781561386452578704081474046914784693288332792049674550884157909502199994778049636234152220376399300240951578500409266188290664691727370028989840454669563767478167477905489889730278950492671359427516038331113441376102306513579847787391518181464502700802960058878721441411278818179951575729922173392475012025280383810589346133125703870016764789308638619645283595252281002990307710998180585382017430363649912566630940348474243202262235550672791513606880216001897493673430252531851467603546076653234024634595787286640672941537923257106002831241167503259408186340984664000504196826388884892393392216107798946742868942821112242276035923440887696583050155762349615555834379012482646671413554469393659630169164566132032336150418739201310080012107126903955847055459848120561333729210262202880609646640854206219977503094322305459333374517358682542273828583776319494147387927248350469603420787927446242651259757425448724359289631451888559359754240268411758378539567334714926933033702227878284529793093810025050830764874714946373734860393475560810150574726957506803573434588073189217194555500162710917324540416121276580953708277087271476179510473832996210953382502574279204414571544278982177153905415397083540398055871901036749035087689453793790390610672711042151763156096818241857238300467734081767725810484104362990805346383291603490713090345819795797697517328099797429254400741398043244853293658745842883220687468761791107131870723021048732848044350198949698509332309697759510610987658462054757436461263405237623441581932494538674143402499280589398346007990122036873635498707965443837113913221041307386609217088962240975872879741743041617996317805222442579598246456358879061930399926660848483068145194285384762849083048453120884419596474144870157434697093592962969018469460679180730052751382277794315045880659936384552631473003736983812941365303616869433982567698836457743442568209268817915773242133743758007476195693075683599375521983035853184564112309348867463865355936815951376905646919946609574490107791320424489412828423900442091380310299767066188555212705360571211320521026383241263737494014058003291787535080441724554368085179766733085758003762352172975558822419115834178249224131098425986582427256058246303791296104521877998607180154058489251765449964442027377347649861861490399617802062325743374264838353872907962835584912401677269951517212294694420658032125225995444001159733374828210002258922940025614220114699770944882093215277194771577393755132956376132448539194052264874777992541328322204021958092333212102252431545360955559638949786863023483384446949257700329198361201279268584966250456255860652107512707816480782752213896996319131701640147450179079170610434993784078082970153220805962071501896754770010046697168081610227208887346952647971666895134658088288941211008488497794892114602440375002872822961040600107320930538487004949464982321277135709485198058331002614315525146136582361363624212879318046156228904696141522153815095030172166910927030817028217972399795499091853748835430882586448645587711986385455776152298437931036267830711935130903075527349135385926710031156808150957755614104857906604107170240844781014519623440292150485338334391296831463246090420084944516915684918030849332833870464873477125472541660839430560601013242531698013072977898687652446923527975837502586257385503478393636531670959681049123138777750243583739846096916363768600875059057821524821975910460738553366391546549913167286168935699375733318647649936013047171971191300804317948291806263943474211554738454973190347704393087694637109939324569549926781966665339240267535293053008964539402820878587079373953053285609062781582379866200983346681286566239306672017305447760047748790017817425882239779779578714274487100354845853423062270770799913372591491261903865443638024196097339065916080121900575736611539319191441448581453260360039000250429664206459438692968118399921643615182180877468199447534476195311151731049044723508641967843371530222142472330217737295786033728240633360776016495759530399266176325469765938221299080314970171217280021101319272067076782123089413381487314948411016420148214242827737545901617644608243602521667755130170267706667719993710681923907207534303423264626921849299946295092106264521403635745907114654289704937607691506957752692263665774996151282364189954706999501440659223393763295768142750372702787010050814218217454644407727117332203529264289561611672157198479892575761072923545506057511241005985994342706064982676871213398408131571425110420902388628015883141128884668317992023678373365712402146017107615902906370067861798409567577923863958781720530116216141661958280832141830551723596642750829737516617637163309635669313614059558655314328155500767281134526018323507066589237783657529735063815689313465908305238841192307220416845583215370952453450468311156452506960399439422110042756985505639678213365222776407825116447249950628270632459598087133509494537098549980600855232058600327305616123785234127832040412150937133833841226625964353175804147308047705830332490328603100274984756592729059766225396084376306986249083988233869598620578464584895414676733068744314596719740414715466112000481418392159536138866186729134360811943738863088564635895030435993601959434182750142891283789387329619105658042288280617036989248340497112764713372038928922059543901780750181405379711178706804964083834674303982924803537506809943530968605775706685954584508886596099345734465870031380842099097625705353147735590007723212469319075108526553138207878456719132803390192811106283185116760723149246521707997580055585859056150900756583994241201315076570410092233016406325947862203835689233388330308657348790215603104358835426137309808425312385577610683919534313675929293443388843077272531127223597064677061468914627880924794221789168970890009591500342132991606703605705227593934943095259994985167509669843546047775715171279953765438752608453438631073043033820116700916115038351581870807870142463926946931282710051248067443824801047630720004308795325907710205026076345000753024598301584348281887644928619038361831583488698637343566771507127997307573619840194436616318725814917435368030354139318742478588794627225093100922092925757879517834651047781420060231369527218609436251284800576038083575642002776726982048770810945905410777301138973597853935252431254669550178949940106919036009816051700286246279637808968821371862516301720330797059018653148218413914676946892140651076939698749528534369113602862484548879261170150607944058221263302710827380946755720678490045728987601823905149026485307345158248974833554433400055235859233797913594717707153968735292906602318995770688084470441044917427330493923371674063230120695115641076808370022782457513262969370750791773231726718497526096404435704185388839964662285134656653683537116560104114836404245224173609930568757021248836512256494364563670374015594867236059598984865648154628805493732892984687500807299587470678367345351030682227030122269861948969311230883467728610036812855033789282583628068275635475678505345601351559111161669469595292798777313916615090891315209532713699953641149344044689726127170183740177865651998489326260027366749737135183677692592104595427604270331277526804364631118065113090057493496052505877067129350303127307153837950074217358002546337343596518025568099010335230135243584303440291449996266321558929527984353964693283577532258651350937226837160495275652500925626430803349527312225624287112392842986504746228230673755313993753902344512740401983408112117718532967563062329307143714780119814850662228900925386965476238052575164576069062777422993095519999467771889393055317716605260334395903963616567019322689758406023693880990655608304001626723678775985237748454631041659084525622945334401171727534001931843611903794737543703978871765297392222922333767240673386693652342125958091607832826985048816161769534459264676000528742040438472104568433281367098693604630669335552192081024378020054268841622891361209183265784641909964023136802706305137232461722159285811993250152867761362394499578907169748741472454651577687184540497079593149215221338492385039935959541754971587547244118463033669841543461140914740948582533281015833653537905807290717433255228813148316023880867724640903908383444952774350695137728940591799108090775078543867340814356196443529464999028154081236345630404211989955213659297369693795198068241634275678838894030989287966105148424060691603685484104983539137622589811399632584126949573150732109350027546253510203221222222455886591417705732993956227696469865057165027991675288587729745379167637766212175391153117614698911330317482842460945145669692441042582986968759791641760005503347345660832474642694868699692507338402916833332408956212529921026463136700698365390636895513128372935595074843335123024662083999941327116388488569230833937789893997987663707308656659883921004794333715783004690941185356993484493583789803417933544081803112392008690322332035152695683533754371911483656697580002426550956187748617424861746108968608907440651242183222817862153002422366448197424569441890055302187188343080677263849547579805503070130955992226355891661060297647850795977204281675048532591032656584132613546465489887442777160005152966636194975026944155179844439779064326044538597172034710795113571178883819143134916190193662213569670523628902234442932661047841591089926685157128196694378823216231382370037793728208567900636963820578899643065619572472035258640951243939543195148456758506682468429247232632867214608986180097474089725482675756944010814633915012579407270870553113155646799965187045021675868296355604846250584518250058342608200260486341697293119608031990094325754943057075234529356158695999827390434009340626060417969582659232402591891490883294442507810174417759965579533390977098840887565110279729013350525820002384914548566906801256689795180379333025814211497782728503306075547092888613547095570718862461628989861252293287681389727580175091254847121424188240342042772857513020658867447408051717256312098846601205062741138907435884523418644512722843687519954826144656238596987996924267075526105405614678947257851780499957962511798554018744675479322618889242212127000882089572758249760409707210838455226379202772051478649729781629662887949811327384730587446710195133059167572574946774457009521514464659877692279998894685963625564511044826769495587462941627714539050215336404332455651956541443430705675390698547909662284735904386369786638100271300565738923217233550501678432897196950176342610220949829432530989018022792622748029545936692201756601535070480762841667467167201557879116216040803401354027758288178685181938085143222786415582658156001596734173560861641041649285727044504424737284099423140262249921777430931868401118309348014605831302866237616110134820958501231712727140405008258055904803880512791090403356629749920561008816049809758238718731108829327654266075604617170611435614045656517475519256977211681089513743689683540438768320627995563626922610329903043522797291477192168857826467025748919892808884877831213542417422095828832619148593669721883871524179794327727848428239643319782473533556571583327758546177080826774755619307538097562215786625000190004214915025572398260078734473477009603558976610996107093904909263801596119440110703732802978477207837008869677615959912994987879907468894633845734585374802916414232976243976968460847037709093634195870582410085780032453205462957206010496354237900524885081008600612671109915712773532980414429070672259630353777570283451654782718435701752171209858947664016782348877233657136157372861284534257712430168811959879074582354479023055952147658500534996453506196877265233061744740132463905671906803434723383122562116131960201267644787554858674517910104576488193139611494301467635624545914238393007577066437293310716222644171179068446546634814486908008785593280483163866081996361044615428607649634866815738727151816243938451911589690502531777039010952505076866907314060172748546119504737841722819995583510090359902686338598009830224715441556512441640622519942116664903297659005142735013995211742917728653382570517028008135020807087910343366816722536133381997654384250722206726636580028005282751406279257096125983224805345118962198717071887256672687127694122672537817089747665142862229450538443514599495197421105456163467569327160796994482713976142127572625715927127943942879650035608737466307585573328692002373489446229942118324110599162726746790520842243527571691814632070031991740585901545074240026201899255743380372359766860582563135782401373380910693961212269771830326464972971287845731737765611143083622586683399557272774637293260179837426759427734930102022723170106920183468018119598087852001967154954100827301529713234203006440695046978967918273288791762432103149432080256973708816418000750933812274791569884015486325302941281943336861189152008498975076247162716539280849196661292502908884651402502702795268120114928468254008691026660259778975144343609107665587103828249974261383173171894167915888077390084245043763143257923639948240741049954310220742712968617045748371256872782965563208407981271194319961178931136370280252835446536577775297927546908844894626378569374292808460545249197044176456590340609360297593855271952203419387158384626208892913322050019996666312545391611951594935706707152943596009686483349854820498206317501952046057138675583145658603588643824688577525252205249761540254331304719889678282137971041309466224558172690358654924613632837294151909962862257396991304175112388712318306674359834693950468036917417786787228762439531834670105089169954580692011519239015165699274072413547781937489302303573655553529812307107294592984116095692861064100891572040867400003536932269603882691079836336729570973677233937676113480196856025414865314849490926279217626489735710932187707957851732829309967480039313002690646883105874805951081074825567193454058314423279661113521896954317700121988582762063123178939672867157998466860805714687093051405368631751581186841452196221229905381929783592524903350641161861548074985408396293618659435738104556667596409194783136430004200114894295011403544171371987996349671344468506223333271653838485820653055495025890061092828009624088404002532037037996001363760938738236726928778337247018677413503046210467014677959780547044545597054510033126278188783523666780656656489111858829562597303276803530488344815689159949536470076894162169236699033646413783938194393961825869710711968564205158196681593647384023392597159431640563975535159717207113281414713192948278425418453424742319882246175703055036573743050001336914599390757135833857510008844964680267613034212941855206131524115482897569121412076721458964651179791803625997765093030581058839931599613796944774643675862285293274376701534464396859762730533481139779959357591432654012758725313869615442652314465130840407875867375914083586683898021908195459210253351327099804410453633382409657909172752993147907135626530592957792031524309660661442268369810871995021643262466083065253927355585676529668737057863775289307097978099546294036771755773658164407156296726133043339600197489963457329024867814362417380700186851579293275783144880827176317691306589435120832812354742692862102321884735497355367638085131041965167627289395539446869429636501533444425504933588651066740510008086370938728861896829746593279144432735086008147871290013488604224554326754063436400774798210770340716452806242649952974634449422755420458852807366712674634009518026138949553353726391693742867118700798960357263562382573777822020437559301106202934742298896471142553505454116675765189215395250138813002330414386865946070329951304193712872806345611424475945846111926766852924799330368044795696015598204941639936348281574524801111292102906668577742731647050240290264156646236012624994619012956247934837122866394152850408593067621405538354077459563899700372994635297266245961408127059537259058585729356465139593331507789114574371936260570033890327049487540338812936783440426008727450399080047923593623020968149731065513668038306068414675666674418049145155295515488961365632626386805250019581686121230420106150680379893389725517986992558878198549729838562784495571534714813621737257942871089393744425233169489764000109652782606556173449847394956161205157023032826619526687753963566307625789822285707082533213683985232920171035090430662345235650530231640137011932370610177261282188355389893379041017226018692748900985545949355250010152432063343992182501069079492887998764895899280888360943071113711831129078170460171428025463112622786659780593777882010683181629417133654766604146984914047579404310038394375701173869083445651691294829116306636591087411798213751509489710431637933673997898824338371973086907787685807243733063955562087438696191500139965341750603327971856621016087065289253510156165701860651140957640387431174757177003442207893990956289315324428316397333905602382160694362992645775711583336613469589414944054110655600472155094864575805251426331786012346836660330453692518069004623279117957431769351240179518185909122180551821818598940830852320166010759822319014489560281148885810208106624406839846838025440837005322294182195050836262445458328579973129665650569027860146045905367970342025627825152429071726006834790408182172081073686774229824119328862195258623674367250740925518213854780923073203062780069503026277696356825153837001180464863973887166019720582264381609343868951758927940573246872435486578397557230482647366892562990175696015341533598165042249709578090198767353311724005031625203317533075681080206293285593529994637269061189438393795137007570750976965787866767016153812568133167076522594778761421394236546611504740177327279863462735117312186518063969017959159499905660652553783541233147218526445458541868907880004541275810070126195520501704451356241664253428561284969162131891968845838414683346352662021997739725425975878142041695944733675053975149249713985359032856229437515610101638378089186147142483409042758711052194506790537014194949346886947414085029099466703859832975604205895689658306522923673692389604632407858016717659484823637266011105434855044298548334691299879598201140382815745625607417306646806445245565938331583470444523846029971556405919749333261638085771966851404028187128309804168656522929932168671438016253018476046114442607475517183325970550977477532110528449008671672104577009096467157804499030515280744812532513637711374808650220237491966450266879741103015249324012769820387055931203487241586339118982794543284825396274422181366291583858116313155852227522822075925111711165681760456944539509923793336607991344861536269458779112864447354441334633947687434634670067649838529446657164304786780084596491957323037577889411777765948652506587228382289298971015284518702502925547347061773304881109542608587670064019782134193336189209717327590909140742101087196733741481153388622609961229975013074479330429422537487063355826847584896085536253425328414515550410370389466576582136122035744595775875518702790007486588011786496413660884076521348405815856353710721808093660760867572843929656553865625075615757240555505604395808231258528623279606777945875002732846501992121903069693532217534554112219516828098539044904808906009499730668183659542498439922883377214347698577832746146000271758112443807742268801743320708993374882897754717830416230716792504137393495824853438261805822484007887087733731693837277686017405332030340231554786047465212309721938449705568792670782793049028633785166301562786207815592615740358738822516605966523008754656671052768817703818042073807357303953954211718316240968141687569830899366369150419797300602390006965333440843629897121159496606647681219832461797059041563938536055917828970787701538209748324330929596598146549860463478261812646744730846257710937427293933315379025329496787866822591582836223858185867842307733598561962258184847447110226354268767254470269600279446279924939401975286785670514735065848689849319030027613014722263626059580429236327987634160194864065295819607526011900545045664636121334630659941378315154968828278641805103153455391354108468138927838949695179735842500634443978025453621553108626270688927627629781325660021363132264712020804413305238404271620756150740290701364239275322501486820214650871298624296877438711862649584327668559080482387883515657110745379903210801956760718172354120030592242591479562640759536927117144885858916929909541751211625758620986134393214957621439342090666335004733774018307051712818941743807352313827956367595134545349212184645336992991372637259672110020728744539311789999821559977515518624456364959422418338078620133157089351618877905979828309937193883476039056927402464830516509655913475567846664936662216308408773726675239461776495074233570338831618167048837269964933412000533347800679349925598486631686357564928514446972224630034186818936467063757250096056755456304161568980157455653804951353215964820782257989816629794012666730939538132945897182091044875974260827738730712024280411843183781195078090093067240359079846774655300552880587083313456992786164036315277958509198666120980591544551494254002569110726545972453474146839076634034643323796672007039010867096772571654166310745640445890766806761864071990012751497427466487406663678948463389560292889943604003754578400864659751772094642307387537730877908019273033638068449871945680339114139064176955759318776002327860822818205747488817727588728872259636018532435764777092730976513699879127880306669581699640416079782718702290259906854863493107760630518715493051748813278129231217817501226019814413862743128318103640543294529724042730782291928437282758478818537456233236618654888525620974934704383289264736011266541790880462289214812660075565482161775944078151080579758654574273298334081688788533454985590016822451358528594218917232729479599630477307501294808769811362996300228837178271667193961432090992511876400432774070426827908595464934507757438111207011112692713521689466573628917732399815498593314934374354357250347671971077206253977213986030580079023269586352310394076419340328485052672294563406148147133785782964245102624526797627989866125162761872777666970277598246646479873790839423631517409968165127358428260166073300782317577696178895130159772473738921028810416651170152651413814259387169888013280901404542826990419899962393119030660352357310719952071498305577565220402057446985611122040718100673453648741517344280900648129613673255853890876454804696139990088967566778323301093274978150016822869311293663388251119933054415754256753424985310376381420418217755884154762083587323396861929745107730198152061519907478923693928738791360233961410235699621654069258726660884224961995535357221828616888239825322440794195614848655844072603184200316954452703460414635176506979115576366793126265438762752218434727898958085108434888761928845956819990945490227279835736996938596695597961412984845536644217864391462534486186123912683330265201539053661128326383395889516474821775715609253559720655095238896996532673238912872938607183865556967287049132486997332890903220456205121807231152486736376039724824323098319779484457227937945246444490544642500047546321901259784131894550662092932057887365017969434765537856659189943795107235555858905755016776260612860868101599535503876104864724038021584294976437712869953243322422369725406506362744250941501295245361248167527101682376226988107475813867654396542760169413463152553789500590200211216813608964355904199023304183201112196443260572224553669851545437211904588862461946190062135421713834782245668852364984951820651564163478614081375576765264864087481311849213968670432552070958077445908529620252966372690191195763809096871171634534398171158761347017197200764726765522025793697698292559909831645971423887485440199681701173257895145349249014048718342518484315086642246908539913984228786615806463200845744756520415691185540155930527510004751342738755252659577389002009819367451299583560115428687082880035270628410697405853255390779493253831835757680555071730136955955329724898737119586419958686594669280858487380607568174959330056016169213538196294623001355164008534364497914335791226715088300472221507585331961372779434598070509756369591687900596558026104345902032455182150666140104092911732859742511211439250558895706621763315345466148325868247093284967678261045958968660827216321031426186852283524376579903060704000920078751569326455854889724938418760574128650582758006555644451096817848210563941693457252813752312823602820171017721288262405515332279093173345224309733881215569356264693481944626468680888011676157952724853387916207133981911973658125754308164574864496577391776102172497991600967117100439631413912409938818373486713921789049445944157749241998363213350127656761950992580453105939975634694922885524832044077429060253195177793542987189946403277909539447395750452355861792215750794614073956226975410374860661192647101615517406347737834393551529369029178495074061517086024401099522747807445625394978633097981378678072489803922175539141658775668326253830167974478633567716603376320572190321637546856997542768130984370837295076155786727817070880898390722161252716856590073953919831445855337631098459324550437853464626645953667428717412412538090224268831415191164714610773260890788443206849589574479149401012172558765999840229144687079203343885085703715696602819496002546816006317674103799778365951554919865508497828793201956955308717761091908232027390669869691350214816979494891003023528037594552141112791614041569631686461767199630631884749983941552153737567772498955361422139728396347428924497956478963499496426040071784571847493472837931584004608651671753648477719323060209172805398110336884135734893129636234680539295488717415116989501401017987048224854552478576080423876467218164774993641398066477991055600207137367117181205055435637296101239016015880202035515355382518630636834042074103678111525811109428041197442379086897338607878452777214191551753426210162739219816671298310488846940125516986614465849520486496432859345478376023936404360061981414342611728883820736712735884152961149928420339657807957242601205482958288946922811932641496808223521928413858910757640682619924627835505872941522348789884089323605015420790962738915507825352247188657010338308781564979415697892345334275598035964140897506182382634554062025428659565784465355049337483869727591453080561537662906647292349286212488959661604320125358828770670305866219715305878104310281897616479712921750366807226186738649302439266257600109601511358530140280651194799088874115421189393304513952923191707370528292561451013730153638791428148967037164902626151363039984771285107725919779932194637150811723054867788931429558858708759788848148899638598770363946535272692593091938849598747133938175322394702170950833312743289231909720459197712190966781090818572678281976375261910057914211000042279168929716784446596744228480728657363852016650300857949315369365945861529612081936710225063843107070040231629788286970700758118938411535228100187102986443882315948964250004103762796173267050928921272123293220163307557767048774452351452597456765085282909774255224218799329753963666042154205716313325407043158118939713038631362272515212029638130599902475756320090402218036681943826850370638605465288044761074078125428143281165461459543510076412079903005669865153743537146556840743249324699868300059998350635591873991087640830587730279354672735332102270982218811993716160136196111286197340477366453568940403881074960823479123131058027960892103585532148083289799198692874069951030968525288541100141812284715804423255065209591078920086134472675799772381103656523700910054982269236687030436091398216155616890292816959061399930736722453971558642463155857079318670871950414138392649407034705007793057582409973984848076092150386750428238118302018202328833268135628027835875055702550767849337203431579710909033509727252826050322366887792654594521862626119622431766460061692017845830332937153212593768943799308363633174054462259173726876203936622784409310421030104996442995857854189603158438803023462282047750014032466224300581633102467684911216838481279657638393759549505287714583054323502137334880544796297635445313943216220105352725673298368373877664330846391459736572471819275267884795997930158245757870277303965807887342645873088607298410673227430246852365097859865940573292278495473083713697320263345660908174507759382944432405051229357678225140102394837505900709533189896579793390577131425827837753404825576836597053109465417873262680864885034950936618168208119634368405541934064031695851015074073694724037724350318087327319354166543744856749633389548503315467955441333145349608045081739442328004130269951042227673467020101089296527634400733546813811414711615450471787697593306868116567852818096328327541887918208805386834155834321383948755095663362998764541520307706680112557202402027132004341794571913626449040362272300275535588201614331990592239955742962459013948626899424072740421331685005135588579165599381995039773361745321154622578002526626713031757931326673458878321307052772045353993834316789740480887160236437200414482221186053720996615589316531876282717448368938396630498918180918139706855907273933830970700891642886371579329981642368671162505017749240451152449711872626449387779517606395344855375535448911977005839366200139872464735943590823697262099755504016402365789522030069588676328731453165073174376677736566784863694585570305565497473315490692341986507664724825208978292865778758158723871954905258513765796314398392276004202709697792524890913188367000819457502855972059600190014267665945422523293921387486478897842109175199465305572537017396489192467007339197348453254433354293901480418184422398341623685052260305438324780632349972315641312136825262466263097739290368042877682765746385376455345140477486166712052302004988228111580943715665687270805946383032174474854735696572134272280996865393451098974295077138488000801477829551656477204771065563826227172470376380454623641182380281004413833859452919450778890729039737627069728435732635087701919732362010695792570845533150665377998400143859555060193536548872358631823160442683369598377002265551881933216252963891744432771412211334560906553109982157234377848634455344839556813842673348946835620800565202525692362742564703716303419683342608244850669712680899736303782579098284375949350244605561989227864219494418744511915028492928268491007544686686297427641536191553888395409892123010311657515286154022769624616526090374337429289637002353557006291347362344883878619339378462907434918479818027646716863290310965137322660531783131575948426796912542640837001621079548937386465259716271594103163740114321911793367188313030185699946631719014590187561821912884220667826073133361332699572270216859614194705563667021958170472521115334898224916187437410561481163682480112725216889171935316713751337190992979693919604068411168402503253077411704666400334346885338774346224130678462584681850818029746169825502735705821636052020969332545005136803505280165587367638650849740452519043387248609373230054291681545457521456052042722061868847821142034603311834154644942973651907641131901256284039523458990982793167381781241044661818431409391340080257018868806363061818221215373954797352472302589349536071953524769300104719825893538401593667491365968832605653194102637041597651451301897384646058104852490245867280561577157123640875438194651545858611186323518189486964636091453127853290047196250302894378050195158954334205252608189649015957479344694472082424572379887994052823623313056867088310578529082719755463318632019024771280122621479473232197396935359895760533374904138240303075114222192274595225038467563834599606706341772056482422421311243905116575017651287946852871603316849971682694266838303511659503919950849584568048654446473623161073854487925020806132646935404897039115397995180193110491101804324333097087142039748029878832033926062554795729564116606824580878249329081026359930895027663918987215992858919360977241209705461139032349206677871847523717847932402802218052891646644911306215338511225823796818968826369980422458027498127413076745985591630272168039372274949860327500088782654336384606002892810533453227242384544413537922510407396496862655345890510883183489222520952131116378890232867778182520610963027808224495304189125340666083728670224620984103847431821797310310138252922292916997418650922982881269054874040119339763919309849358433120197339440639170354175579053970475941879538025576157772181186445680853642513648963003681277222975021629602289483339684668328395213683077464221000673056780105209716930818912196342554806699155865324728608980991928413366122303547969616803170009394303584577275618609429706589400563151427917022528149507742895770517931685722621231219323178585380758684031499579570732446833704117820904926367855450026269636815564795478297029336159305950201083876947219166090586332760697097190116882344860922218702370731565801752519352854757599029103753603710740307646326503237274234903478891481570764111172431432363562906313949660090642956732203330666261575310153582567916413648619070519822689192124659801694433180830502107532762146023667518183391613893207917841598022511582526639323586940139809604646320957838828827798252904729274566193864774838643286334400733524040566993519284859520523109011921709324664086589621068484559247511996960164986063148350197900481595616384300144080848214653714804997400820938295185982672472632603131566636118156994386744890028414338370150032126871746882616080358683484692945129061580051232656260621717303252422417088064299368354850813959493532387031986110252611012842652891984303476176113570848976094843130220564513458510110148345453701138660840336729094999576127493476672742694294234444702717194901684171969922107257089494525725246029049706098940928415188207360653007275390078653834063435185235732011895273607257561388042645378951333365762884122826704566055894305013018751873593638875021148764621255171081159889109870831369396197521354841690903773018115031353689817310759155321095380701459070249548907360743096607224512972588574522092586016875561608031679380791502331074549364207989105080536660932319447522857917639280770971127357412759993574012593262051003823811314821148229287098041188506514941224810785107193196779612716837574784861274532611615973109292829660387166865213064436252896499412954309899375789930562731394295534616989356428615750607595672795451099234484319912313202004072774075370428467227418179864942505344921941814635490007804380932020747422212966601777776510064948081769130650917330691319688866016063713924979229295488409947456445849944082590294813685500797244521111510560386035055508966175078590722753482577629348141107827560519997629807409697814541897539088614951749593709212331794750055923978190812279742317409157038100033520349049700677763293813820588105699612887682476778728709402422297892554384409064600110129233742082862630443861787287585713008833154642804570891515159464224469537979758792592301118916301775216807420769616748381919716378379153875072957295432538737087154780667315010554991058052648020303803322764098194627738509275612088864469761668498473224285616002278340331477442636507028583581120990464817028743822032811800226225390425805097617113178714872589647357968758498325814719320926354252441040897710319871443929495683660546462468037019106863042503201479765146968160709076613658372342567061707722699172262551179388741528130973031929393456292036903886336291775340749857879836489828104301343258264896518105101158618636105985320824012002274859039050926336974500937932390475939560603643954915394982508402285416030142035905239183625911176244856999298692012391306583819001804143555762867154237154233187399375352658830090416003281236211115638817851213891111518393804741770976965755388304108708955360712345670810777579425675038106429006902128131574530901071091059477698699105005772299249420898505740199706845723716383413724805753622598061607334951646423309086889936089879815906097788650184291443018212704568050766862576540018740960790952471322941672031159958925207053183600462708580026011047259548385511398020360620847458634676245077605923515687768126132468930937224701853134738299840054029378090145266953991250393822265964967499053536432245599268529339862860862429269057853691110859177458940209343601589261932042404971682944480084984188373430616529432842335693681703645417847946549726420082957027972697300661834069558700874920087577811988570771603788169226638695147927312309480955818290567521549486171903337738090054344017652083159113570819785739616668954150000573307785759056778304499711140604688825827318143380122072752632878062386600786460854627644557251898408087670103687633191396379813389851551733495936288568139762805294281799326053105814079214685858849167580137122260665700932594717962676773458476743843115321300477665341835048819498027739571539150227323402086138306487952989018825150280397094253700714178847876769097662829066152252583286502788041434255201653749788804538616915402103394233558242398829806253794745080266051132376419174280135693667951405166280409802290707817804726227844475262341793792602182958522648713527294819400181429178552792618972136637480546457382690355566821572642774644677231618432411348710503558118704503183687862020180387061909355831374419231218608480154055536376720971003185500256703575892001869440160265200667157810977094497090070403422560652685006230452498377061994434292703215694931443589569503938729566196814433089248229101938731150745829332219284607816678032678442385216044916266053422927774016492954644892642080404918556964846657426444343058683903793901814391580632348518388491243670374817155896432469440706375838640681943651490074004759397899535139233626464708614879913316791877913713059892968711624309812001825209160159298621346901210847482623458621954391464984655325984576704857873937091668829512158299263894872745941650963691406380686764444394043829093861063805956303518342633116046681533310653512950302756121850075985859350193809015163663014175490890228061846025093541418763530720554359219088776046957192304571370757419974718000970804335690044846811876757518308579169926178496117284137551422798728990185500946112242207126493386824670438688585664779859173691879493088374268878832319797235885816840621721709387837286908564344797613812710041216744097459726585550910025824497850015253927365698032756114758969943037329683573272031863976385369790601833549983949242123128391160917292986762672223112059985838100244661825036537857059667287291044950212646473772413996544467660491072517120772024096550537114420467361277245724505751244094728790709028679079042356579297981542108312040220260672547317622547503425602878819410724025021786950665161761064804173630328650611543144602661906781961073452489987745291924403257244635017173809035658811887937483768964450723123139185957786248110667027828517065295450947107130462169562060018258477077006929124466661041144264224208439939544248457142007531925075456479094221852687653793310164235764800532358908279237449445716577612706571817045301978311860358844890549072428765488400317450179921166152814334809618389059595987971767355491570378293336783071156820030330924350632129992077943455784458806714416086454306187583282621112508005327136964773272046065623945077949803005329666320455786964862413327656387925731332222093678111681814578693684770453430169707949175007342796561303458224624749062101054616010859514229411831374077988630690160820265718514215254447665620012338254712965712459851817467566367457482523921817176169336664873634569145073474196415440508297332920384987955246194864106459010029695142512925661419481343572582499470154651046650329382079877148517857976650525539626431179787897619439643811958240032913181689202644234604269015831939715043538167920759162491701093424766231084006076860991869783853130413134305709456054240011476835530468756530447464013371367357148216528438545189418501841970702311418988339253265288963929386384094866493731273194730745860281102237660317925600836679313904083799697234200819466740303790852459265609899599708516001772830255993926488333236343843542125214974727794699274927537049608831008665496138095636348035208751678731762293715401433125080580262859802035946723898562291600174188833220292752302876139800465924647590887857703112930465858562093249982779506784661017305324146332439896997377992267889112077916964726416364087829917465086724075994319002953378079011156248991365165984079091816249270254873494262718429847880814704615139577885513198618261158610617404244221658864618595910054306210790683199307825812613179719770926910241027323930299933368548908684460109117199416013218256761754121525016028246585104476195995074172736069743478982085379839159530264197445502467140212482482823207927185990131526484530181524924636857612107665026268234421388641922626690767513030077300056454278188682155682442338432500844308217193441882939949611249410276254177605132766914888665639140848064654195309996947821153059835186077934875180133689282075505986210936929905207593611948046925569389659300802785820726842405652104071435504620132958882503457163512963420664199697354334472801587461191933227920623304729555728115779350674408004638066871498396940903717624292786260078504235757521867185592970060822610773742563064564493139942014248395593223711538438292760231226029419244590397882661561901880239485882501427935493299819611728546236051617697405591068242300376692701576732119482473971838085459753206977960861661839075194772017266149101399203561099981986672586631010795026617539773093356124286688068692799595013466968474238427689628627907153842876863459902268716637847208184899216694577274223191816752337855885963270538899278477884777648907808928859526224890553530938701314050805236485570731226577383437223669235393860071770380383489291016569320163453596354768123948900963449919144464623263202201445305012056024135192061105346679304440277985038781287803372313636161806230099467063835903162578683871197045674441646689680336409865700164653585488273147844697111108631408370395883511696034481669494097987199220225952311262608081363269403059208820789458546667747318239754759938690301664153230201409926442639722810814436257876719981892575458485040952977609930015978532835505127547159499249560659556477143423219894354376092838743107075322853772303523561702661326182416462326611065384221341524621484685093088073394978021662982663416362321634304481580702043720827427541497088168428104297364549977322408835642099992678507134899394788516591325681330574059081562615018274765430175558630949849680886071419643382704000642507779347449121729699575981099928930667107873312277632035217416096124707811005138696258718610998124077296504137862714108339120773183798265531891907808583335772558714451050279179580681510662074179693016527666815823974035414863469408288746894352498177974671076638465381830767620008828536021235288865216665536655760432093360084018328249402299059443954708993640503877690813543638692081087973915959211270617633860344834879026300472496474829319385605802303133950461279364195933174289141994408558319904402149596530749284346663006687912952385047554205554422090854516014880002254708585187796644472013465522619153088961890534898536281347826168980396172917280981052582010491012389580262641456905697248912554923810683374035830811502576157732620408579624128562685342937743205158605891303988175712218370971983927064410782991729342973566328966843124363062344110190325669976985413817114689189173294893809864329264626990189717975502470543050336911165577540357659938955823510521281650026759143813912715810254408778881241184484192040621478873504810619713117532396676900497666734494372929236047174649678440391140055369562283321148343291730951965123101652602466883249882624505129686375534943823807837344656203681478599326219284263026697032967994600048502753072712989794305884690361390498971002481923592279623686231320432995608148572562010348051163243399433091894879481209787309201961531573251580638318445899852564367594919949069898812653498404481633440189884627705529205112558090521529690586994695324648038649646393140053248670065472602402556776474696387349858773558622530128129275361680906059941942677873099373848305205200824008926906412002249448063031640015055828408454784787775168195036698913507230960673635633451517369896581672897800410279727373724683864365794848359296357461737139700472035291781198497672821227758568090294575379682018100202359334810001778193031833554445607431352877441417283204174422244482942612032813546496042089865827665225390403244818633915928966308389263219147469135553534694955132772036483997186854247484408673055157685489761082095849530609362751506923395347016728678526186524387693928446083263550446932871914189832050973222254613280105485000221867839772657244769169290595877817608849604924930774346706093733498817637128181096234392425878950424282879032270462374122683993363058902748750008656205552861502118809724593451360240815253168251581204606873418192112297905695547330612658304645163196639573781193996377624754529519381426367891719163996315790186300631472507631224688490479666735911819376891065988108995055530083180048164800518094245569742711217326627657835158400913991976962225222616515661337576094889543689265406142852738782576026721281691386421101549026177122068826906256957944240034561702788058298090121310337716779394466470036019234567760601710223915955058258332346295280496150805704396874867135433900501492918052954179954401913855850836249004408848520394524045516464328973380578005746653479792563263301291149196678786507425849248255962597475846903507229324366823844653689663777939227621687968771935671557605152070736173980426927114983492006671228210148487217542928905246109346748441736022701653718464690879697643111305102965516945181244083613565101244363649544216256886945892396143914245556918617703224151786383853217965916840350520436399667835183312184972940652888423981561748921956683790032642021841030453414095937383098621625953077320182040568442026999900895530039834999684655988582607165329788078874262121660740708424058081953715249818955513984706508551086337054937619165746694731109887608393427969095967392402655313210207608018366295531105155457422818171727147963713338121957676999425828123464768594567249888748296259987613648737612987923621399675966639631723457884442443286488271528268491598032900106569817544840255424846201511993287357752030665351848901697643411910269361314056270082044327596167108976690966875677373858926866186801373200115493203899652388989410891435946674173466623445564806412703536288599179993192591802496803521915707698222665477994412559212692309548867962120696789899207187725817801969867683602487081227165814236177858495975760278889070768291823225640274717709798322721259912679359366227804447219339463583777517049679547799150502312151076287850656003790206356535086380624234129033974051746365185960865157478146785803600851119589513138197158016053170643094677739781520542345985373451300665285183193796381442792933558575445675031820592666140869338439964755684794182198121358830948493097623688714442517378540340123317529336343238041462485117994765775743750000652112207702444929417255203477483018036299369735806847474428030742558570000992238472021842915295994911572313411349236995909717748453621817247994255944582999902478567553665660198526442778721047473289153029559653337035361203948654775258552665321882547289197848486156410717464849658139145992830762429438099615164232660763095181802305172792192324188216885341777455512569755483121798703470841204033988757403033481662458336598480571558746063533622315819085372301857587718918796904686785587100299851641702084013595331547918771775232886008608017277913219221076658189858711341969120637812068436713530826317452383936096418386139083727062840937859979661453537758546771901723911698136316597301620634188807730299290338252717576795991894588034146479681385237592806554390167072753244405493061298453504545312139860106603626432459227278641105793248566318867945338047404573986389438663500524458565164024262427999094433585456465821651978430664333735112941203966820396127035834042767114433940477513227292073611904474020226012591666341238522584103740074268235276290224028414480816682293497736146778738213512257192696131807658360789015558465457089517027022714792043829445411231042709636643236312988398451471956823822764365187278404260573688195781274120218185317319442148846732428279298458918840817405885483158221000129697317924931802660902604606394615437651326514890943386537360766707728977837949192479008367719355789984108370788207601577041115229419708475604131553653509787747436338857190578688254980410097158784762408515416100339955211178591885782445007824410061264164140160187637052853850749009196665184160227320113198867241761239061790340866014500289172422228959249553541933675677909762540791071674861510927635081914626015585493385468923207037629730319716877963854483608918047820973363226319633682592205789792674638641706826783423750245650946738786176893280051711025037447736549936365441283167606031025524070915397916488346232093089415096820480504703056651506004118039347945843348348999726357628276610115323138566714311439209525731506439271852982737383209465431590006247870418916437149960085774751828632038385562957423053626216302268908572357398253691533861493707156502583161003851095521409615213125211778989792665908483691723622037193547439685361357617626181593018180831607417430816097424219405770322379665514053578512710901798139154267066487408618988670445452739634787436561844452871561041246546668590427169135883599253846160374298039928567028609520527074989112533689684365243695466558203603956719253831891837466780248040022825848064773096760870504217459419317644546200310014243537586575540449616917642186735182727137072494490284928114400488616794997767220761806153702758619497030546453721960737620094724811651268681046751863059225498249634111323036015493599023011725407667436719521329383405702882289684980941479178392662057138957463734613417276165891662323372796131067596645013753663078771851057356557612522074084358196179503023984891865163946929684440185781430641333607838268597212205624788481483689631511595831015368300085149829027470345922542199442168084753206416029697701780535413726441323280568685705261739096714935225270548927190629720208124471292743646182343752628618342874338345546485085596363869609766037536515317831198979509654156222504977766305313694918110631472966430592902541932290782893424849277665793699496613702488758655971855863273736630152635224698127607054038118724652330239960695046256949195427025237777866841597729553764656850562125842761533279494362964688765379756510841583727781558561673356894851876761428193213645221452758166548479871647387280476739456441935225186090505967492265551404576529359195857546645862764644125445723487309745428202906152038796976252590629040083342259920430949251126366567455293153007332288984187613128065303151306200500824290323750364853122495434577663968647051024410638989638486716536444425335590587606336415666611264715891997164913840970959739264749073467962079932442496776325091679873903321351764645433217020361231150482039133853447962919804277697863563631921195517797780565718260395986381521482276212319148971475596377477639985908919660936128127868936452542971066992343829444967731037094875372544992153765594530704727499227061425080834110578261912164972383007421169137643563766698264590358429316192231079987892081645336663693496873174261949363262372122914033609952651608715163038776796772253897248556217117909567096817416448082425693007444890909693209771480518123007464349227658023279492410388242676386854244547088823870196521411789346008398298180527038810439979891870638073878686913399391003452635419613528081988268350128462553379926497073136360648278299632338588531623350584416045482260671776736367699382636457209178334566603708550182530534014101203642315959037580596626159638069003482043738054018114951530004565424898726830970275946202830851264396153117491054642605970767141421293003771832560620594943625618501507834782124243551087081701405900277761278061468089277249512384406272498051646113258048248953088536265548733423871412015329572504097438746730260284353800158029662328125174318712010063048732122142632305894850569867210879958289986762809918538529994027351846883677463072291748645722973015703401237278340296377491669088815080241469138725677216868346581707194906509610014383710210235472791074378157993546259005375918449874513631239710262562409264621711675978951288199752679614015772493277272762783617670643969478264597871489668680462825268884946525524027436311840353117747423901499128276681772964828492616472332290909391747655974078743419742515255434981786527550382788180588550462116653995220931775981242523543856516047169520308332134572318994322172043388583685291052971503181206650071077778495503235484320054189796592352681066399413189700692784114765209498966975474799890642668187929843439086276247498665401204802639259753135762317360147998434463518911390450101310994694124259750391954321824384363694543907128273066164503639443767560063400739558905368127710397490197826560341902867460224264016800241135209493394815261746631060194476401431211165884999200060563152064943886989051664796414452948924665109724512542215580392661191493409641711456795806740767241113427398460696078720875108631925483163840252093243941755950348570281129950325146923136732429828825688065038492820409821777799408873292590591711457778201635829928124234752326924943431154647646008304244923386131749930478044887818673238483329431829139943918514508617587261074914191250325967816662348737826895709733417436711294226523810848109391469247810344675667647814392048753734512393238724520231425121886522410126987599760392390618585564508471051390550118495360407827744607673175263593083275887311852371108659059398497539507011815098168257812992257419844084398288276980635734654223396009909208090421681464357898120695861155090506108629384964421205338434968309042362061754862868273880991390056654828866285606034085326431357221313939006012278489123961109854220546766838452743759984225357105881145256364411616185443120730413879060092478358028476611807739312462411291937767453304173244164623140100451792704496296041550356354133289677817552284029432452887553792609107382864049961824663927641302691036145445552678829324088891721962725170563654964333856109268172308724070791798033876702946319843323199708949673114493900216059542147063770998049798220560662915090816238653140740179030712477695929850687157600394245243845321335600380518654257633905915677186986525887849436822739741951068504350706732442771549085228053817889788550755299474104425426302813555004506942167173760472517857557376859310787990891169169896292218735072280536473094088485774018836102026294008577152918804618836438945277465065191469663457347560167923371984695458994142592163000163724100954425593284698952599236521769256508347920006766128889944657796580136126240762457788074515552078843951598230618741182773868262735325616598311381111659257079564776865549778346855697193550524897077889018252523994857605144817040300494049296005342570864331016183552653209855480038960471123567135624452758273328240608661049578616866776913265380412511231267604602467205383336265811343353943685518279707172733086682393465413930544216248098443420424131391400988857775159636236330551370273587802133059049306574289041975055203208541296974281140685190128539253040753226814840722237162766858152079765420740420299779554761166468501325824994766277483042979404194553753424795188543824665158632052438005375898416999631458185252991178814787214798818503796047073186444892869812187341583548969864539751295489345920010723246869681957928368262686850986296578117483872957850037232576572170059119247428154043533941523382228437333633045145103835679837673113341528203917751668339926376363337935675761559984586445448820985446825378541316675664915888615957235850581955311833818160188696450983099967601233446307375666463901526822173141663885667709884568386186760124861615974243883588926290725954873982779953909088760003177216662077248239763059951159126237112057841344358416618932922319740638392261545719711576332433204602232254970414362118779290696260500652555207016718475268682122778176720706092175359540125342499204180068632915722274463621834706927937403663077360380991475157319680782438049418253730378760259009005747331859431211628901809192871065081193509319903450117353602032164775556489623391126976727490330498379396196015614438207610034485210765559383998087043243043927393567342062868424841886651634367511134487469889952338515843814146700125556852902989184915991979330568080087849945762806764784209303092337000807873553234102662213686778216488510662661770492951267024004084133149564904350280302603343486865467022745865254074713739691999972024270299420474032228486719773881164989056586096220358383213939372876094668661871081350685351933488602522215636900661330059652085293852823342173331862400448038392724372993468323200718257045719061064906321505151608444942508056953833377360522125185903854615961997624555740413316273539071093953732600011637358466693292523706025490068583429011410933554485999956072402157365946865869694321733418734038170879076738540310450663030855709939581898682786205916649938135690566474023217526466808848847037349440162135901652504528486888154849335974366692818203260503581882328285923694956306087516353707940917350069790452871991384470174725325201672635153670462108802981525512104455359046284981574523113295897969247802235209439568802483747638597789283686889143538269742564886827666397060592403826855102311450942249992930731731818725703966143217630860154749616130672389488963482038636541386133208135022684104963605940632759256057122894588625213738625273617107566081335035830598396308470257742798529676210886387872365346157870384691967493112776482654059316353005454084909790294354841947774917176643389430165883011590513960042767508125992698674316732869747239911904118936629396217600938238519026463321703755979507769368809931244248173586000160607150422546942374313829254391917421589423815922255000737791256304074331681366566119243590469069254949999097259329932026976103193518486174290335877163551330511957623113714852480365824253656681643345332325693135715389768160906323577695718722529951995455601940560475525465605425608523365450912135830290040354593719078646460168528449008882429913390446111662549582873311400301950837050489769005776477085146430931694070264588865694707222316034761238037777563834914999282388180110988867419476607093829920801058700399835898199375884794402021262826686798938909384562348141423152018093422677010024939337376010469122659089137499448296952149998742900705798819400238409951186875957870027573017329650654910388785986465467915860235152004785389097537412596365391723268763805608538578708906445004601484671149847269824338250159672851871532091411700197647125782802968445095697775712672341520985561077611303173073392217504165773489988947012809381969318008629721572127810637648763784136127218774133136932582752399911070538073150744476400010695434479679200693852830640003578559387572710677029856040117386951180230573866023931351870749180666605911940476192681290927459721049726793428685408640591205666235940009265375765287570342325640610798058907220716091770524498429503535990739855299983311641239978136704938774869463687552589582881174473361016299286976793133721546049775074700004351328502667816134640068958338144733815355658650968121960547314379296619386633336369370540217786813153824374707228552858946826926659679946881514038851579646282322785028569654499582640648872527459757577342161261476091391682808214684431048353039777680046798221291902741261431286526930834727546439247185429992532148444893896125368980743522649609243879759326805215438844034914091435909925449867029324449261909367071559535894091674187026652581272455279848017891522499290731879728681826668930811662190654493148003166964599943233718692029286218151241306588403084880505519858086145882364713753114210844938482404949234282937394236086092760269975552275289146066975199361258041570273891425532571028525286340337331746386590324802616446475413727794910946807233879571523831562738973919107377934876391024506451387697310620974519872168531879831849202714781202149003316287167903104335894223465535328900435400384101528750755067332867903998423098537210863403460773631393523133655901510044604888458294430298127854306798513080232322370785951210262736649146544068221437939872185808103237260987639009035791203419652086066125670680790298332074079957519255804363559736618397128440425280813130210908685701624068330251126067132462949560623850800724445568158102021742141484473852038110464673874638534032039489192176715303619014929184576162213207942863554437773401752800106147582255513434014637862964072433763285497828633997860627257146122330105716440747453198602375118096217700129424950426579657066252162138047110309015412731800067659770342053724942425428946793983815251009017801079711771496265854698680415000888631290769918875281083673591220640295809737580902945570633795907691784354455326803692540673088947509367227922611865405735810107136019074987207576883178756348777317626049338387773131672064266942782278852192309257081530995244997808657712179333549300042224452229340503696857314690247399062715297213761714295466270636597715192989831870894932599937939455979578681952083189673568729224799281262062099794502606445208835881157424684069280133567602546000047810141883707851604859364738505526929688536503612229988315296757801359049576261233463822673351105614044951423541002104771120057251053378564530814783177105248653318608542579859854977879828474870111885193335555768823470143218026789259751990886189921086793477119204191357804212387759004407697454476398448338449104118596495508408491454134405621732834096397926888979621508792262954195181178636044855804828410485280614611236181163918335105352381913495330462060458077829217872579763725366968465180598839104023411893638103538459550141274085445874225355514354230276945772882537389926840944307656384776781356899585356896499187259313332314773059443897510289330821056030963995608091151640593135663671797878319085965077602830893738337016276127425968848192413025360929854952372866584291694634950938892163396378750245163347213856015827454993695335926668723428786915454853039122361209082573642111958725707318714653725752484993380492645874802365227097798621563908563501671959767253707923641645285923822169948295422883472025220331570207663512005025213217077590161754823371536330918220073412077492237594233946206650713372507330338772990235883954099934518222623172109297175518722290194883755683958918191806506305360996912538928990094095200693581167101297638446107635789648963252555764658012725976095504148348705695815466215149509591528776846812040444398288706853397269346162439347567304191410590857382331132136640521851073188892662597167030543111853282468405725516963765398424106805097082660754980626398336470247839004330178473455072059116863853380615447594435923145235345412942607450544778747962583998880297641377379113886415185732347676654605286783498486851879141669400835547761795830125862502697019040555671585099106151680491087205542416870208170047886285756387598052111063504601573725326621466919554455414047444737776811346110683328347746436994478630093840942610492418619750662015441954689382168067024495537738965388753190214016333416526497897639991927929765174391422403002921020296435563163947284247863835062086799189188361455143787042582857918604307042615709483170813063724861283749670341117914304740796166586244814106068225220677603760336057704766560040063226643207404670862278315376920863036044360329449226501360374090047021525027277183178874493487282043772181547491350572379760479293976817221199695979565910861237815727168788585866049955596695369337908189752017273576507590664478731031468386446086774172597110934056732937444914443875003087841800701443007364693058906279982837573819302631785039729622269699019648697423063461352630532888407785377816383913157148333779865595182713089737935990535225597646639411569474817174133937309922731437004679194259797008575213136090750954881642627848859378220184077500194739635074359126696503435154041752897994164981883614821870631713310441353929675584091514135039933848510422476627227240985603123068458385990587083561592874722085102724550532808928860522612606709004800958764655377911705759406341727333342537264941921838809772212229422925987327909672159717848939805472039873883719336024725192862561103405480027761453510763472901796801610144861225911432186928047396486638306064708599397681481687976408346125744422350412191278414106169029567682270576336002931598214077463790280104372763761072469286943801364256752390344334338630350960244094449938477954909841007926213154329990534171248216191341523575522033068275466466222267577206657631448736934583267281707639846811222712775438619983983172052730441228815085257481272349182068455874450574358882530807428139326269917017405726965483771895745684396788396661057139897620592084165508542619154453492524031002024140032957747576979111041985958727013395879962307213081285354376631366627841384032874355587771267383933530415234932758926558288052953093809562698701692163445135667988352896537218917755143643172740207696296578736886964039186889730861125950391391851988980535413987289930297883399178914732773887698049260593173275796472207453378784018505363972947578148468992845507211385802148059982379400414457944082625914376577037294578304487598847988293145833463191490221842530881787156891441944047245929746792641775211185268897655855594139383326352780037013029361363949177306623314851121655709336463915285699334589992867889503328070570242797050230449512769674105761257476228405112413240437565224763283368014725374354596093148820133982062645520497954059858340952876199550011539881719514961576285828503693305655391410743444081452520464546431670579284941073892847434928542536209509482518073964809837086430450520202328849654916205347978103506523805917480122705679527517527506454082484027965621672193302522814097729802925235383755265246546411253468571645193434848774835163684958018713140662396941341558233285645336301081591482957541972140565329112306726612098949766984208605453567113461786022204510094381865723639395565265962885145179143328855307022656892713294966840940561693203481237040262250593924888236958132752354871926197225027642281069545348346797722858206080782954127204053205672798663572035163272876858097713591869060517961752113161192894255590210380604304488858912499037175917761134492606477809552313776821265352548904714555538035852673869881734180261271684410932855303511442596429915981712091518253544959531772620483365521396578090999469161859615170442827028930276315928718966430239450568252897954764664516470515905410505208556964544357939491704070710876538973808718807444541491487330653922211909768439379226662093001511032201953455519302027760899579728544948677787508737897783539407624850605950466944948289985380991186899293724051256634399917587230792409106014519416006748236863927159413540908159492416880078401967971401205354396273642906742133427585584137862473631728008689386577130976611385651505015783607811499320194718676320862970705582330578375072684574935165394256258445520111969195680794734633775549977396287432107303232014006546214239492573948741992472260432579680954922488224820763861151590540148018596735729257373339929768305787127473088301081424368673728613546605166768686016293321268309484243838940069539321840997182094283296148074307638136087425285045652200706307201225969882756518938630025449982552132067247431041580905301510117904223684664909715061288171883681545541650529850827059535331484058926008419199024575058222838625142896296283962485882348364304025408535559007104706909530747544292753131610299750519154082772232436907779386254153458494643346231067705344986161787129667109055933380116857626650900737625176424616635758271849377783118952223296446857236086559765423300183404722225355665991790110811986256203473687238333133618003726352103883538241588906876076424847973847361566666310395162750347543785760786172552842397637549489853972314932400448382001812989090245401492990626001146697156040632449940766223901122814069493595879648206331731477901737223426217809565483597734632586423053862342388793004367616247723062192259731288295990042989508885511087190882901257839144703464086754753651575100411909360674742940223967034892055533638682541422954867952477551669804776829814311678239121088148722586542751214383425819225250823773453064936701184874602324431366088472782650661345687297850668668685406339130945259459227942823191751033240239177118458238386858037794901530517931534879156745859158744162305793427674166987532229543150251082579811850345830981671689483342968898228043081064900620173076463648403728948388731159674469815841118455455798974298169036808457465121199860594338555420742226822647907738131294444175623810478245768818671738265919877648868424356647295103776892853509865454424174397827597500871446805431308708142672692867464421948915199397270344184974225140663293103508299446609666197244478051820695683160766184055000967244873988368130701741331033152849176016073073155222642774211142242203557113498578493776371813123680620282198054264120107631303207209007872859018432616007962342889221471874257803903779000608309660761559784623398993728537377401135360783268189917637213071189160727977067650337990496727076284182526717406548750163547936506856374806624183184242135540930007453285190486067875704483738000003893085074319300375666841840084964592430758534501943647248007069433428981239575427306200938758117128353176710376593410613149317173757649544182980927838275307054031352449652613723756747642396022702914710029938061435295922765177980231271694618709953290942489187051782321536036993737375696590772136949749738662427206004726452959634753150158058203671636942802815040071045434213230414316548301601707036505131508729296980322492547204855751350459744554430042458769083559000346332488943575976242206067912517269540711615761811088429592477914661017620277797248621146475450911972140981645260486196134902728810996397406258870021898304448577962738182848999457528297699849082412341186800952911186527712240067886032337141852174065801156388463097689401649037340797430488094132425617250002360435974592031308046637991226201930432124983421033129768927158120570343968454192050330672553849248117617525287133834131171623057100140762271208357086078391233087513261451980981041651565432851479277656387228429030016516250685924212737162162242040850196003148403412528217418269395574028433511372474990515691704146671211671253456451590906966892338005436688194596148229377990008391409322416213408302097184728258553060886719555408475157176456761747129916694189579676265826975173249533319550639383150378359035963667613362754933412842409655108151916635630500904397285436335962118301718325396809444275195340457041141059313655084602489865677479609723276956670525829731584591379992832237444826681054665638999612056658603792563346098881374332258245792423626416793750012587666142338113168669429461353923549491602125560485499781591664742621168047956795280696630913094839482643312579673802436613914386657582332430746083644252421252612415314620256045718525805185348748706380845823987177481440773986382562009735997075070123836775776416097309439550390972980529858238707557985148365072462560222760852830696345599745950959857966808883983664065691329918307883767363467205635510612218337550777099121278136587540289434288901301331405346467027248793763543628662426217944043996814231572577558312682417305976460992911469502123489660069405565614992946470422373394249210201525082577888896281248596474361835695207709273472212929966097378818639591679975989228064598188702362825764995104965762177644882911200044044661429517799154704798224628511366767431219802744946724194408126638614249269487069611419809666215161078344460525669914623154503067044959641915838214080974958954019794742834351975092306120098879590465153731539527013999817435318934388442201934964945524182517691193523027982118731390041573927110685423790031787047577348386947878052952338982365669147030239084179041287014891780148271891302264870298190104603874813141623187206616560806955839786965238933068389315028455754825380474412174622864073062179042719881420200450483400662559890211031123926863326444161533073620481890988688352085507955009295058423764991930194687176292491384982260161033524409007573431738060063934946031643803594166643727758404039376495178108989625810329984941558425221055469894988270648870443673914517035534298607640590096904707584775031924566785610059051237125386444913284095967067119061990744612495701824154355057253216977864231475255665367171746476281535872460655959371550656185132631517554027980490960925106242643589746710173762330496131384836036206976931992774347309708857366128860359551396187098371438076059769229032488113682216320323514002740534125712306040775678741818187489770221879227220794900850403235808379847996194394921914776384547309530740530063769682549661215825591347367080786205666107300780701473036680475771742898927814150923466632874280596576436897981512126159806465774374114925931967779145501225362336028025128255935987721529462822020092113903676977847098340818909426734555481833544638814286634000456097145418084837633971218710465184054596060945460326570557063372974942407391835981841174601931226807705020422459174498313822042195479192319169241306941884851385481620365962617409474340285005267464365360651215905007393146998670816767654366554630828210169505800508493659609975322193864893230227702977298229685968647468273952958631334841380671299675768101318330908512545775210968731937078345247377298408057364141178130230968012759182125219988883189261047152835902348743154280568151266208047814141772604832329693813224730401848796232956771838883746227685213799396416169109897787372479337342477335872486314089312644500953591067408686772092792477462493119682636195613510995386472184858398660316721335193573469157966587945332648963330969304590238534243430746006486238255494530943991098175299179242873689448033714985467348359152174324645990767986912650033090511319102141552150192057137639585589236571240963277819412992529397931183644344833287113893285173402904251057833354819308197729856325650894662346672083043346054654875576026029671459996310917621310937815909254731100309882287064461557925758701120182235263663843554588196560452856696565963926847690143712498087260798221918108654141055625242313562658484610274465558999960217719503819060273395660784005022965954240231659898062799614421522906701147385031288195166384122566316663842395513679627808792440114939236367787862690599330045169202331791807131753509926487799260768699879587777761639321687106217428362418673841737106402330473675980711974388486340308565223495946989684141780516690363927311347574679185310679568533953966863169759572727955402960893207786157966930965637562801689615061249124964305128326754154525316339989918007049732583060223494986224220615969471052859942735726270109116789208694618819709827326518327554204786731057366961854653200334289535636611773490426381667369967465968271021500623968282654304600105661136007540815360797533694569891823501336095527239851727064083115888683237196492530385160229551980583464650911946144906002766352323989798591891473038138139977278091056534003471593019134267097738235801475886297168277788635670459041649325708175428571207119117341111362324083189283705335604554073937362352211308375100551097088999499116542009099121936052342083282169330419696369444096815260220640948300390897690057204745047507795334287641978218950400777143565107729811216933031071659201405877891129973302613840119395368647872660166221830531055339883475548612691902948884193346872073226511637702950257651043216423562400343012135817705306049810933693590117847598287931539449751030608875422576832007451135406896673170219991252822813065368257227532315279824295377798235866257873089185735862915022277560947951115701216196899436140062015352072287425397893475615256653071489561652744917673981263140228577727240395331426216942684297117076184771751561620370574045523888694082985861062848958376043857349287299033940633839032411996783188291869438684233024621890203157071612991613372228742032891848934348791347558284459421441216115412366026966657399012208649858906035123906153779073190272264299748589008259741439803252150522937485989496828632992653475760831388315953505148618922457085258535432086895310294997287157319156250157317755267121653601798651282907213241623209445884226684273428894412294694706621158865736867826098481347637275789915833712256705517726590238316074227026180390983731491725157020660243816503636787927652812510191603813895424968313746876461987364054608671006690998278165268224759544412628200260901412978642724249230270854059214523617846596219459588343519925845160957239074392253313970840327558231265158420160951865960679686844122196433496406020803217309169759555912414456750301009748251530123231658588266687261728089407468200413558064518067199962549033187635709227021759814460256139495701200832042061315307373886869351422415174540100199810730186934048331845793884091178128939722335354200766933494967691288170971008516380676610046667907842468254461480191496632623434634314035362169483495354297396738919516994783066323647017250371846535825743168259481748090825931335842236561409440379259542881742114279180069979410595900861725753907167024493501230474672654981439014864718657295202661128125143394289049085806236278638088626673136058003226950836142516955285011901494597311514289573988678427984536317119906417052440121902868363571091740626372281844148125318864101773605712528257264862069252844003828033573633353700758697521851832275860628783505583902543629156712385663705761783593763147136949885112341629622800341288261884092899347779018722687567717682647171667079830093949165326630705700645636990873285746372460949884321634054548279686975896942507811854827606344083541886940686301707602875336462103154643384077028358199044697305768619763180830259263462001944462054363707584930080114688288175422171919643639906786543993057900243206685132314319975479219176677783991445045000332082536321839037137689525165640373940241833147543436561648221597706690258421168182941900454644916378598935334795545231471959841073386799809362264692386608147295389737081619513037052465514783826740034108784813140904135601329447219349689268822125145343128891908519592663458894044042602371690488464760996255148398505390478751594793684399047475039011919900128663757331662179469025325582161281728978942245021008511727764059620024472445842765720378888472846363629451965861236249656992253790562402858841996329649963223208991426454190834386308788293756417167411080340051006842635552648792679585376370691507105609787136703312065171533699193511421754110479580233240728272240428164974336944613374839421994603767994254396774256876381807156951540679498556655170160035733560525628565509684860639343289640689321748821824737721674343334523606997085493274883505429344712640119788384607293761671780113863931474977172645172363115049361848516212738892066968339132340032531301560803900006906216253514930995842621256469218812456787149294585645928000751327669577705826741225702608819946631672220968059830350166006051058742231010088394740693008998506273228145158503031558852134206358486479459262150227341401139550288313224299070810919138406732102381073206293138881672398141770826062774931446858194200191213920361178351950395208638498782017232945893776423758973077130624489479284667596821917954508269310067144893076875709289639092818148980942379279505103850719021783123557725258967943198363248525243860830114473492271655261573475392869044742761670309570325238865419108701842761920793559105191588606008330085920746388180734792833202322802273843907089484539831489532768696643745098153008532339622044421665530675699540552411638225663962986854999293057342932493423331180331872735912316365822808910493420638361142983250989836215329353630938458683483574907323607425253119625094816211235944167932292624272223283705617992106453856192657102642242578123105619358711185286393420050718652199879164398624172499352720068275892219950596742647359643726356968521513577877668172564203483654982576796296985583418497086236969728515674304060331453252360753580887024258673688914608772043681142017120323211402676538674507760122936879417202940252668578742076507503264943201055582786756092239807347775698222151797633242888778107983609695896112978203314874262011811458650192291724570212651522026514250994791624920472366341301161844662048943175287024283126980864862771976477462519382096168691723351701828308027962113051934706394285532049439757862826951095706359768792752108655296136628050983557107909314493384050340919998804129866920989050643240985479936151074791051108380472723612949649402359920870789400109200025473374606477387520804053827570703745681686182398704249552181298986840474617963848713560201320953727476644244523806132196362699031947595370266111567413629764123454711147696509302765380596284614161927542096886126259951338703109138862878379536153382866514274841814452988661971591275078763475449512783631418888160410666281488716184906117478713980036490778790082687901558955614016808787102436585780122369772517832762257571074036418285421597018862466361556116384295664933301128750978060572464023152115582006894409480202450122626689503150911919195552801104838790297999359137880179515969565224942323369230073537631381045604756860213527427258497889532420417907835990762399840144269175504911614895535045119687628101112777197281654426747769171765546532129890500992716119145024308895087605076843868758023020933336688254467439869404304693793562369717856163911108787788240005200987649300750662630560168404416556944237443521190272634828440276034546478402615486061169354350410995157213099776673754890879045883263477755935338063545049457870537175504381898364292924065561803676056746520953710628485835439428014269943300126798301078030884717171526605840857594604271805121778257191015280380337374944068349737419033727129135764099720424192419440816528158038665515984739460099273724734808191129690877928622281999181030206388969567956687869147744009835920770830979041518954538795608551656242691911569124121765168472726683630189214710748116408162702908435382377968517147570475454890903622878107837852499463569349120560294362389159818060744273206952399540059446226111108495380109748515121483468067963323972772836663155268298962216239526070769058445368485725546901862134158029032131250245691720954477712642849406140873640587385863256473104800841325970688029787126596106074942506263694842310299793349190764619672798231446559467889342628599787811286194758101905342405609670269250984282763656064473310087711860415809598681211456839470131876767414399349103090441949201119315984384300441360257460636024741744296776412199797885012676670273861437019780248301376593879507639870995367845179587523720630148594971030398635537653976157924154489090088346639289285877312810624418391822364195914864371795456828332986328960246330392499260149904993227231196200030635373541550794595777227830352724405810974780192976438402437049248624755938915621731658151367456968357230925934788772541413275761114755083870761546388782679224491209731415025864670370725342174842042075542663975807856958166075533461333966825866670381625668175719689106326716566107989251005301801474617870883871453623779776868509898500261606376456653591332029063449092738974801272280139628480526139236074089291673772362849737973290912588428990544433995222608950901850556221640005047877383152584122683176144091626756056289189501524125794969319309781496307056282634793717979008280566738568212400962958785295535881401671097474746086268066283682880748200776232878808100319496713727242756604600697241565020082765084826063130223637100403916030912269201643642393359513604408219066265599821827968366542538824423365236685389267403449804673945895764231073859545226538137788475307546981534316656250694597162098249427959306815271157351661379877272694886572070238249913102419064688935216565607017043699441208692680082192386510513105565988273964246589927293668851027106241578446618962587241578487204079397709006940851249072707280705510894143938018709210990378168630910004058238910403199523428461848641373230938193025102579450945726076086392464013981713849804840291879404122137151058216490740004034604919398970701565474748545235269432243085916829658774070817478082307186062655104376731466999107137931529117406060064742924623954847253877339588339525343725973757232611131677732134776062967439915599183106086831017019374844585962869977507654209589178577882426982190082266105298220009078875353180842206846603037705532171978220326149277152848878026162725462131931674685932298701384229791781155174191726254022767945276066765387653789543156977453916399139215690541498686617870914348840242437516969746270946341375122929532318324750570632720553218172845566358170134731681385893895538502183120016080022113443830577779033597663637910239488899906691175489691266952327969874297435045602828251027852513493182910739498325910232726329489541455405710497555800911972057996093029910159803743315356645762251907653019467581239611003480145856391864363796484180955106630015077368806203597736403856896238788607755539302180102422940214104297580217847291886782340911421525363244818079309486280030648069203133916687766981982181780388953781503535939171204612863941517496877194129876383422600099433996376522192319781608758754067092568705311091469043407710607849406574437419371990615104299314571143032011473416578642509613921160959940915211615450277206701563617296289604083177624544247649609618696790238632018150764911133272887786410020260751175135689492616161230338818895989804737698313590694547163952399378084165173359457931781360053966501340591094259387326814900381438488299929908582979633869967883532957904814270075263339082757641823576882287689509659146422114825137357332645015220875347886687240908033122548867259251127061155299201927649973175589506812266672230933405159909233546549832154942221473916687817044076912693309591398780529873673031390718830645210420115943888519842638325471397675597348774679081900750652524470580806011915048172885428485659276212978371722658443205497990722745062736048647097131453366767894477542660373538581537489867160232589211872951368463511492768408492747546265340915309384226005170554588634651686499338899597504513249912177249218089209495065004067497563923355319325124711732624820582230946529051882169067389271005539339423908450856583783918884178555033111079319431196556368107894849758527532941324939100307255785629183329931379969583531054612757935919048668780584196499321022285538625398493034038357134257539943475487799247028368044015551066317922292668577756486204347983354351190471001273522687423112845919704132239663276014021788480881378443207787755918977405645161999346406304316873095909175745944593506790287091816885017784582186533533828848476561551544225503111081286811268423722807248057456125500691092141028517260414169405365568142798426029097385571422288486203726176028989239677560986074529105510539627632420534165222485770895726041013808993820694593663114123584676904065714467197755262281285988850309405852136482735837530286748855649253442359733747865499584453429334104251378637747618916801894761165216227897150360778787156078599882758211721103774674779293379666486829940167018528255171527620737933207535211440416585010121226834980078183104621705343286922313799709101348745373029082454228677054203991142720788952333452321248123305593494779516092953701008329996558601736910571418342820612605190910030097808042096204630219374846484912951650199442915097546338192022977802593557017299655842110075238999882093091719631358928675158019812893565586738392430623904423854958090394044042796663104063180365346707186507992907058973274080722514129270600768806848798001312880652470821279947464717813387746278049562000513300130540570767265916130798702167769534548336206539031659353883934558893447709043513230978751610302164555912166885043991165667105838459485667115664689221930880530802830814098789756904005950980343203561494353874870596788349438689295937744677360253733447448398071890769764205825494281059789834718195261923220004292698505431374005211031056358657961573029603911559700412114496821633409728622790888804371538903638788039265780762044937551135357179742219327052743065439469565529308333931623855411350364862133884055995111797642990469421256347991896072116970207787141490678815857606466833011532248559423549132214409210845047541505011351781549370920992217751520082932943291299790401345739337141393509230903546300260658295716185899896906852290588849811462017216791809221401687678506403070577135514591702131910763980759802997128334898034420789046920952374682154467319066659240178813788241203207395700367037603616820481619820452006970240193177294084364848486784100809057573685126403963003632603034408109028909547822409598896833337691248089581857468025496366184761324891173283842027428579925652321925158277802182955556581363036103061500293469343482296424041679193994561295539347716381614020210678163874876726247771769455993538100091676449633479798231789863634251434439813271159209433003817442277766233137828010604530286442444549080271798714249828053095672236035847468272861999204457106842655797065877818711230919922366788437902717584018198910997369043921690057915777729834210625299075949466519438866876232109159925360999954715260704038099341021445891503783724337673781849100220515859984039919880871855369561488317135624747338238617741553201122189434170811060626688254440788425103815635318286096359203012713290650462120265254761271804235508399495121989279910404574439826740846470873142224505285130171792431206149907268484092884199055703390250323409303731639753694463346044145199624316294378613524491185900855169849186802976221302845312217163893954321179531310853119728217104976238015448553784247307059466100175397272181179022012358973868137740391443503026065463099185917852492184325337274394490404050019457590665901819903932276102531154024971471939816779925476201508177342852595708403437528556358297598096005090864992288583255966258749149245914917216241007607031082279742036052525747743889561041353189838847307693895391527570247639275088573944436185931622316093841464374475833941735501130124687897914173168938193054340378304726181347281097703840782660929362093187975129525512669505586826629040001512931062799888829363750404542034702038481568082482387298431127749787892029209398510139467756404349621870470528316925018209349362255179438351666765757224942000219590117314685420881311965451547928086112522772568551068619427664274373798619057529611939871270510559682350248067213019843073372366471633322038921524455961483635214245957347698333896269992845391731760658523399913772359359343044081993637591360293326921500357602801837373700387858930526065200898546516907946469091368835777838973722122850592803407834764785687797821446398054028019298864616852865997251394975441318436308065381184617172325270034457327652837060787862710936197217975714308719592634277030668433891219779119018140018523523644832214002898056590199248574950475729164399067459498017152801313383210069919097729868033431500059838330303544186877347121002704152494135651202140977575109299207014948746378463853419094495727350525327145627410046957665021177274840459433914682789262302754990454555821324632343050451597710619247046317322774544291759137278051504446505583563873527972024764812053526062634863992926245237687485847600853025158240634489494357285872073257248124943035402682780645863027375763773394121447675713997051974017178389351102940016379321886434957991164913586043992324954967068480278810843208365271877157317403335949193122141177108809745886988145315593295727484045497949006448579947790017072313216435431446046027928635391144701132435514750225001924713766444423365442894351173148906841972448981313588940748559332922108031752564836052893684137746733859714506290168666590524402552201533381826422817028468672080517253508310461963819586524184988170817949831139660056786527660262414565234766742625192329640016018015058798461347997747978894122111501374483320400725728849981337014203886164486714151130771059459923546919715191397776299715467392224663532867901541006393538772842509955090801506141720588165296388421585110464604449980885972377955697743148251079945484306492355311373115290234865139541391560687943437202737022132777660613526883006570536003655791195817859119964716931396746898997277669854753100625086601597103747766634860392418543370588642178655395341750569488399574284003166211502361600781703676542627786340548130275976522600124733672360898783008735528754335244802085520049218035597599732896498089730409873292289722138441039843933905702394687358683028216881349361658131588203132195834404316655674224037523284781303427587326119240447338132069121354498977352074551835959355860951040586114848976309515204327907657550552405012705590342698317441433689166677947344387761580226228387839706377732890935507526684355644995908959698256977311116197268848094877170039960076333561375237202070077440676207210613260185450050608890688136387465662277348798801334112795493422787381982677339612658288598179294066793882506265383673491621442331116490754868074386622785243965527406400466644266693220929421853806043713821003115131064221430096922737753417732644680685556504296311609057238244062780746287322119854739618772120076665913838367660743971580598938894302456102016086874270054932441845002238532851921331238913078293656707651275371480697894672575374845700902236819917011800337846067983424029078076213819104778761349338258954664457204329373868705859219881245854311832004984083961893888735990431934856209392443670679292999496715787643661534760535963096890528277454059505706762220754828102246564825988571795388270908185112284221928650722064543745411190785499485752220798616045973732096266007375463923983799330492018204583147992724731166889891920544468495240686527623278858270322994018691853004333464597894185835779161050645744273501748444642597873636533314076583223764834948499899231007577630066003264403284116703402416629173714545344981813359903021788686599824249299505682084404069163214577730894641717842094685487011630729923882968441100709874980572007690222024685254167181874503321799595317150577250396194942189306515246148903618733586442553663975881242659493747137080806349335520506942498730775485266568355143286221869463860317914534364353377158052772127312964683410809314116413295237278510084125523634998945967656450344529664097864526931704803603568351510338130921261394283616590676921442169759901355704234663322504179278746142388378594497359348183743552798464266909014509304300514307115599194223862157841264031539593681285322478739979279050754760441602355611517936874401489595131740478138355608800945167016127159055373810576365926664356087659430149631784116472306503475028608536766975681950517910667523426754161070321449378812091246346446871295912314669847574418365240686607695858519953551817337470537863283462354314580819621729213387128414084473230342512062473432292954269193233996417487233871715071629717395277833297631759000662114381749658792311633665079938669499408845423678630244110748749280846790843534308273154601066595998713514600828119855459257130880372293768035912524451624441193355809467768893914392583035448458051179818540209136845905744051611120439234311117993816966364479214237065354895421814681822518122040463690460792035566472266755368696930733955972914198565096281240721282615283878589981032553104458346425380869720630879662385309766419381919599469015218839314223995073120929860673657853161001640557812415196866985736589745628002828798733019326643966951165864675766461389730096340311561228315741116106131952788470549666605987816585740983950029842366062990120494840884797584674728421579012812362175008806450843695139937117054857471586495784429547771354602110181865469648786367064000402423801107293253314568611952396268461418177021577690289860373192424480725118591351687672035079966303952816448152180766243116163039003144617825734952539281064383699400984065325028476105299561738857014997443834212116145185707590606510950143273099046139874149208368940565918901499964664925575445807235406973577904283570191970968214523199521441230524913104113061626470850110781357698386863828047347231719931391588413518206240447398179285682288627789936396018813481425573769986708688708136333516477287834276603427750505462563032197164964324091467568264497705408048813666042844778496452839909096073193114661119397030137042969818347108307110985731209188237962166380882254289165839077538231818222433886464043536304236589703024366663490424500638531495574554013284526659538667577767150810024526902320653212925456217496006843584499686629691418892369271436860484508799024581319258558509434794036505479244989221975352344965956136197777211390348143298421438442567247140862031091342899818318172113801818961969293506391257574079952357716076821265665341494556949447312984768755751103813031626460390697272691101073698822517747434716020382583004761905721619737427423021810580135531524673055854684483328938396633465271500376221485818349069282828482517286319410420313392096192997026816431229788689025333683499506412112708156506590689608821596790459718439661917061691911794899867074215282299414557788914597659729883387301622077721823308613499722508997007277904129025035907959844408205066997080518691825469421973901573011341727862243764185387522126261525128435329863058941185888267618321659341600632843708589364154646095650156680598825239692562239836133267640653675206267673344704908099772673781451705150252707491262400051115330638720221162330563918260612314761058034315748867136734310614222730565261787779817558201834907167608876961806285651501162150806745058439346444821696427001265504332470252632083945446916478664583812970026948232070230489155601535322557045176874509083469322823282679067083400201105843593453573034803582543043901842554008594704397252745548563096964243596094107350911803981913364616147687956080528919052173536084851160681869917742220642321008825615737783486255849768451735662748086638549062190186455570334725411611262734993135413917965530287800455916489815273762526872528848938072953828149144601142725804865290211301504066723457399762304035503217518785112050450697404740911064594889236063124516189206119150848690287396647518712987670668714928381136084887076091315901561837257136501775824375420949709951889212676856672217088694199230600291601447586569237999921622438407909433464805523486957124879106422029789064629097932191015119765670327113038733751872572256180860824625674378254200141199589805210284214245008439125186496935447625341450982103544703704537179227974244387299467586167104097100943929240599242159870485188772476068611719207837845484298839052486273477527115703692691119536402321664620026703045952194028968737224455986962386521358298416707414353316615492052363691330467400994752111822970205492400056874203217700553999478284232264620088677798318710108736911023312917802136365203803493216289269445291685577283477409503693913881350548643208321712381863337622115688414001929564754656258570966117543569864552200291004175584705946670880304967806216746999129163059783340053444633246139121524541889160422652033703125680455808605794780012497024097860606523282910321044443098592757252843613114271657943542792369150102046570445798495970411913777178378673234715420216120713407054086059721055010475736196514804384907326802243558696438666626855832410578643549923090158892427882091984482455119976796229649606906201728667434662443376673457295992616248906623394121113060837297753923392425746826665698478760565517109594510032407446478512772012629459843607096268629554464819696054041126914580050996597011640578362322693314370784805386165157694060657781064752005751510784570270942025788441232627943676320864313974447568445859752244144471468427482994735198724717548796345481678904152916706466594130328347895034463139957030549089164663388831578255269945995803467685143913042479596611553025318190449370727373975091391260233052193004941440287545811308849711126494177767350316344638854178478586000039994194660941553748838457247332071324678878469957384428071815125845316934004122475765432454038677874169148354713664420112830116037045725168205674807479927416986207802092397298616240275712716110162896654778190525942301436399791698882600894566642615549453944859414978934973159403204705714672735029001216098247049560656345918931962111321051114658900772242968595923222456724305961709961853619643302629026063745997324386537905110436257065942040428817396013405067907241698535468233360060616407324695068149277965318092583433428385086911926618091176915369710764261078790961854433890167537476093805455981775685369149361597848916750734543136057498095225407594298219230626098277241762301350795433024455502614223848122193079723649681650749122509713679952426740200402355812703799607636208837317319269508544093532237806077429879457585169015260853009977394823102684781094198925307368988920297162709893875543394075994014181212323096054028262031843718373731431609098297907262974489335360103404695284155198912832668971786372286955566640106454832153958927165567966610401240704947925511279635827137966257322599291466430528253183947512893568643178545564297803291252985309970364003154660303661558962306489186306114731261307850086330663567739318533111932448957606913769205775206224904797251384374113333076689076387261620933771782611095590791185740274565831714089704186876119307675185012350432457166303160777637419496831726397959897224259179267295019574778764267035616826529448232835340480409686032678568331826379151480639899001725268122362526665487360424308366678728330410893158752702993424922292735334809181278013225211008258292135226403024554090833386926569801516875507481429176866171295507959894766107295605622241662799756954104489774730134157477745837342161453101136065905070930761407799898693185197549969141839346766757053302049123936031930307884639544729764276209310787273089230321910952366766018206390954427612417480036884566398724340822973503579101011765809609604645558837902707137725610480708498395132923876840966962913165120196966512701435729367674731768116748047714713442542271187819725356710637095074821527394404183492245809739851682251224247871271866685058471182999005354723775031180548375934215088828939046627895152245086245059169835868673018104628135570098600784907698229202729474108001203087316478400976682741396964737948041430251079063076509434668212532955249099284236988377582371785868954436236562597396587406813108553361712372989817532095836895627749461144086628939233493647394096834061039642483075304353864085166321499273858784548860537670402731162844442659384446005895683761598003380306980863208828404521119401468450716770867670323916892601700924206180140281784318250304701881014240498359135848873472183614931096863939550443449024412735236726591465527639945205446486485547589720128563544591844179883870761307500426176399692705340251425625540419289259992310205341412283242070436967496048513383470355661947622774178787723822039535231629279721233360055278963617046989986583925559479285104753890996165927882633306169594959317818939979049619540822192428713001333769615278909866233001875153650521517753390332283634408653989593799165231751067867157063392978031705724895922479453223495043612461085968401565715513378349865326650839514641813519426594732756432937676596237196465865959625405019226209970468312457396442574395423666805757010327677353474968349719570384185200475125702882368434080823377975162393371536515249744889329889267829139411476483562632882888928268599039293121735149762346848916311902942273864222344935703690056276913654868840374437164957333611171357371403299425535306462961843218064178099058789909815584097376532522660680885236790170520516641954353118974670328307838671327572686601570943317865214573458582867048321402424309524586602874496153221115678421779967642755770684028260619008024105542035332520111036173614593569810195444538382275615724921331685971682101898842503671083819858290686130509441460842850879097417394740444864561416765262384850475082974253608158436338910891341190837792008506853357525501064874420325147954394095968164000497547971328679835285288451501501220602521106402442138582261253042155578163256403265966633007812735088698586586904126869169114291872478575823699701330993327647488400639119421500364745246096716537319759837704522682079538805324367219624331720302863316989119650729161548189441184603708489993362307106513974452419743600059550258360285022535490308580080239421791888790031145854446702724665543715995920932648465859402116047722602302454068975521793848421364668893298257499986593339088165772291396624917674531144476392471548383910453432813616644584770551451294151800951936557376658150773380381608530682496891507795591439315792324437176759617568796438233294088795330779024361572482310904219989998424785776509344228264858405989338062785221226367472933379751375401935183959358086782411979191112177506370225519995994081002171351890268923974680043223705706663453477628969603426121639008524371496725999259514065689782637518101844524667064791505405245445236085238825443398065754416448112561312664055487399337715257292766717847796284713075478284110346173882653939476864443914323902352864704811463604417922502864676026789850397798442922289552042329227550967041191399194319578676159030663929222516791598281784068018632747762904247959498383412980940599410181805032880131396275453422475138339630835208226823182304643633847088701168843491014391494459157446283815078490096279673003906747477888526310895730432823421080309662660074626270272568148668475880183476198606099988991943547914940693094943218300149696023789238035366737795165623669109866087245838861885733662745558428786684790999942079659640062169917504632424989931091652549844879158501108993868203398872540644938053950770627537270525280492002545226315410434433402217996917843804807066393086304782155127241639432258911919184637847604064425124052973376541934995724460079882826415722429257135357674024140926332877871233931909576712694465433289136285218407263677062978205796493325988098614355817330187636699948105125567194782986199089589644963346690798386366073452026634690621015723994043099675628284254523410124406511549267843522100270031744519676027596053027836309071636986794618169060372031646287514663667356912828021081694670830333186007432916172318522738785736885675618108218004965126688101521587796044533521088515869749140262510783309599169658462473564975147905740183272926006525620732042582090734661574267596262396949891655081239653267592270044010716326426543563207165369668245060261676783799112441907901102764050738671061029391375983375013571673212515898358692008850045717659642481899733351069049826287123221563005933283187047563691299718067408569708655666621177688083876808356287062841501509772022710412229431472160182301736530058407496400061728968439672761462959145880273489691461289766146921196789311882339544093477058050206108767548222581988507587631882412161627017222524592882181372932682665247803863079998893028163916350054905587731571513521176143050257607628771312720093548724493570374428142378985881510937829625490797303865602180762006198997260235575420581090842783460593278094705192260533433999418161138828445872280698113075005784192539964889044591539562451639007660544474071335201447082430053441706147958920325028546968133319807407442936421892954736425700283687011078495146144423348125635573572937871535210826335149848754866486745013013148451060231549433901359954328090631791645041615930229356229219381169587338952874465436236288435039800102032304720742923031282945750919391322672633106535539231779591802715371337783286069969152712876584983917849583489305580386228836931017849444793178339011149409987516812250759423292903730574734942387307573741312792603904557249323761123529936813145738578750803885852582412400130302655393101075740202162587095832620055980301496446477846941006487001762599302739038212416053500252140665723665319977461281701023288162398729962603559066533607802555538892238827264329025447914073709511663308275226803308320941796375022993736750214898751840220476264208377271399482830031576601320231957487345887335713883287243176042541054522052590378911671603681447782864441557069566833410392702245184635899494773926061522595307397879811388123389677278170439760392055085366801933949863610600492291189369695845496684598997232327338778367440665405187445347945159726911914559846728034090878358486819667891383659953424655564142090931862454459072433710869970950124699523808944044319041497104157556510026218415004683396171491038068168475628592996637272404114960762441532815609368012878499104962068004054388533633770129741524101026196534967218981353103273459150019856314051239262222098297730845414878927993555746906982784639741542269450762348083318848761538664561801576649880918190922727227857947366171302379018057593847859834298372171985692224926679386462399579477207142119340157627641071552968771149722400837571558477752491181135410029754286872425993965801419618405945558011293113758799441806074454897624130201492201127490698527028142650968811895844174854234686280198746926252650337003417356596865448305836174141288501189347200304793170067653370031703040468888506715564254188646861879170354078270359840306915498931272424242535915791457978668603033734899660233453186793389684295003006550975879601800418385055407907085287820808438567628438130091384593952026391852005417220983236083502600143335371051251771810062648966635076975298357797364705245780930656739564868198097635029302381702992638624322650959503571918309935270253078341105347699391447431287720458997596866145056976459063709725290372955580711216863180191594735020975438329238440462956974442002465162308057399125827138428121573594455823033721141919783470509283856738446188072802855260247370543774369623559779102699577728251196952252529020878341218871716189650700159481218209815217638137266224352208503321495286383690782431625389916625286773605387260005106010414756043576141806876510240888995037015596276222382435836585092507417488363234105930719437899681981274154265858660212063974578439994711440218992810152605495263570320323263393740920052849643201171243281719261991445915973927157251443394051803442014901462848121124987817890190782142904954764552571261198230234687236749051553635662084915020616996469471413690395849081378635136908843931253928473304249519320255219098167701621788827886061893014582558591226698808822668421905200586339096877625162223911046349297214565667231121446274025941350579194579381258229702631268780879788167726994348580599289239481583491127476024327022133145253248990586899605729315576940771310346975604766489379246758044178700349621140212661771404285473250020684614469689608128998975705122859304760285465150847297389508765313632567384058456145614722307960655226057437871592979367276439226850543508396494942220716055881126854509093122324606245952948908026937772221610247227722499045725052765931168812793060026766688896857874884180745017970319600812199506001363076890540399680297057348013365559248088007644234030356565614255345148960637586370799970698917200785335855867406283983882264021001238193318371364993583789760835914222320728718911568566749737431502037016052553983978638617623156791616471972059505759177770916681773424922019308996567086951183518115696108734147118949936777342138839212575614358395764759112482536739833853792211213784886823286420342443688189000043698941771627256256836720470835341014006464351744106664523482364964749261606302651450615001973255437502161928273532035032050311094513793918641854374421790763906314891721628664352541624549677815361133150756760134517419008469417874955650548086087224204827611537835671777423650211517895141156152039225790075936787367172739917844863156247693653814718559948446436293235085179853572653740316927546876692377165014688102715352846393023076766463384856513999273942151349370055497174251368393707307977416077210381910547383114958404193351114193238541336333201000226803926469189896181566743615233234976837631387303467249620430457395166997030314400880069844721611671322151168927381245041110409725095839430928205187175498035274288788714292299621652685611339431344056553592309316521714685195581474902766460701993175119380526096040189645725049566754776793835100150442482808896076526649900086406531256214557789060626441766579941659993990029702285770637205449317075909294862743211803617680828733185237670795964455236430201391829434759678012800140318588453776207116268567987637556119861070034376603476749107842179516531295484940565838441996704317231335053240546832447668727803377098545360020754337884269961012092274117072720901055897882587671527829176698016548066747297078185626308375802416836652329853761895609222041380954361358072706520303578825201630450999578034402176764207811380134203047416195396966841767653966953931321407776742122668043962948107038243243440960753728393089363338898428350469314758432178815573789745107618650848246200203384115728106607023040745265100083331051880831946658008447997560164938235657366187705668542280966325744500092196782116896880441633253790156872478140427429910564123521167991554767634271383197480035915534105568266557223317923623655292365832457085955789294902114080254504909513169817101920076303590009643952831923161890968009199400450587381560589151246344612589221339781890035378954824693269567094610973300776675334254187977316051431317385660423563995687713234994025655813172640471940882875419087818102335085521506566864915360108747734349086856416421627473791651958134514115967968845011789763482693332024493134797936528728960426966819860146292232492718858921121665057762488446422585778448746884194025296136383088381595525108008962246553025687812557005608710658810492152510921316060414465807285270091928237118655903381391464772642386722883079237009163446209942158816110163785551368157013604507120077682282949745378743508518392785917588604270255526932280233314731303910111155394761247287917135616974089227172291257767391113242422243771831224331169426180777575817813741258952398616174205446908686203348446861956519981465649415958206403730189478678051132510906735727141158863686007722845288820847635937842174696241107709249329098533812460784640242913740102418918352043033824908207359099638341233833942353283966751897741137287405682217528931008188243000708036151660325179464016887611651375019927276164125718143449230570519531716359779632764691445877050716222498582155620565621811424382326226059786818529589914793104766515608694369610984197433804034802558537300507119359794165791754003730903732592289030466561991243400812188201133830505563606105897581559179330005858296092287130711107081388119112609884954532702749372674396777164967906474404331470828936435874544560520316071982093817637614122539022827411952874447990109503767154464971430470912733094581911175513858667562098147862029635700984258445360238295989736663331574047789302793137216187593205132826637757665219065437929640440487166421098642215282740472478904213141077514019614159231431035140294970452977626602885928199093013119869023814543727662035661830335519086297011867266318425890820943699106749546069398416389038401511521236295279996692976922414246095215488127186832781195155488991872071997047221243502212231283300593183942647167524881609705882909926096706337262023267045259226151614022834849874341798476816318589632047289885823594439491663719326784810145483839506482827561799770893807135032209968987530954131821838721872579725015122036976728286581235610114391937488703283812552744644524379938870508349175418718593044398849847636250844705435468357041792780610608165182980664716799660223426096531209396231044104700605759291225645762826613610202872991323418458365946730426345439912586936213673371574258121757776498807043519791554358806787108906130410466250995414688635909245585011840935864664980446151199945476945742526767683362395570889103204784713656841659929417962824932632491609449483352047184370382901931380589440494179976207552060688205664949053105762057155526698225674561498033017264651153608882532875086763798939725000758553744830126158656311193922681627286047983539079595065484633232461790673139564584934649153132562155228436276986101637927742962504149774730205614634506788222535130187025989468729852656743286632944676209574870997088784080289630010780710768095121157757069817037776253696547218152042666291281763300404609199142302325162752168598919408371012440945989423057322151783774138516140635789036977439374403990616979330119338111620859591279829577580641248047864986240701767057809249772408925752998845126708119012622813866781901063361778654551185675153386635379434212606386414615355847237085041883387267879026061083052790565595308066260958229525188894275374426836919391575247645096422283848447217778483876232674011348219913232340373632078481499636183511043956834227658821939380236932667682326494440699419748276313096519602038019926171457494788304154465742667686383849108936638130110243859611284087847187236800393363572812034419509942184738371539944690923032194908137692257480011943689237931910847342803617580417516794989356124448028584456265423164517247946682920789337112314781400975742738267506287316357839028877356389980091352444521744531234410189781117182135926675980050287782731097135954571981165705022924669852517012550297598935428197323435264558904860865937668767766532110925365252394910864500980236747916133781991132565219867902161691158301476987240169747669851913892143487441265125739612030139054207634818476821196046102875103517419304886794956190805279950807493814883219963183946351753186921160756392590282012346340491817815979621400413106320698675049435435656932847019893311523255645199026537866655691447830192730538881416129921813929881817831249630003632317978196263417442133689593600435021794184143973025556273855481664002348902438925987639599589028763284014861624514180094456696150678438940382880284856234184751974237099931512382361729452151885809532970258257657742628189088761481626606881827051008384567249010352002183285302353504379034481872975146191830832398539142703296842969715648230609981301812352260422334574730920358118752352230911758896135798581157667789856246069203988838806831277361181625310412613136596812973299765270534708687303597773445867830539994373312547768519840725872951678782967545226163828788371674215224187729530230591129934548233558939776986768544094979952280086977416292792193284103912421258433234150485287273967981030585221123614122444964330165763769562342902633005012885317834530106715412387663465213078991027056209636121530225508823423002134173292033157342127485935289900505235897774606891890518730584778753633332190423421061141891728670558909378993750579625494749836095753185093593819270460661576956610901292579468812335307419195994870905327642672146584188407595164149587918178406254547635938218753177107897818002113558779415861794282385402185130452166797416213922226639108604770890432637232388876426557741983524941712749418427431436671723329126305541346044735707035137554618139802397862372080468886274191162733165487185467738503180777985524958436026825665605486253556164270797908405201229533703254651766279900369029694774851753763381651953476134746758725513213990361031852229161447432812363540420979064886606658146386863873815688172414846317044954474313396159720393941421344655541586366462503413701836566775616089915740466364500380832129695905273891069530288390314406827771225688401319330627559845719255567056955553019570270761229257388932898983210814159002812049054703380226543759311321035998343991604488220698428972260645636720763702665801689139656618862339704496799274516407095968447646315450197505924584259761206754123095947977686892523976875774621657582988605767772542132098974876556949401325870821763853070632696555029727923526765460498249740879248942947671681649031144194900721234766019425804769991982408926360087779246240216209357760356598581790227030980919572375848417042323087627218276417439203978660007864970591150376568931310698149510768038661800810514133980900287721995433420229752177170573846166032246845013861833069876971539184939650097685186842463302739948675436093120827847065944285374017664198569020108425490583823038828028462967619076641744864213009085471606093152814446873588970188278660533740778148132223436019821900309322004661155357791949851588908355051080438141309556788651815843609069731624197016820430720543254572913995637317074556844531121112868201179008647662432158524021782718296749547940809398769812105764999801650870798295098234960545379424535817609266030231060529777702217494588223470074260514137493540377693072554483116391136603207466402009385825273238272769648716502334654749619485637604662816487144545036588991972706541815224924966405835894010644554768598965365132625251300393569467589270392143220069025422293116540378225434571499757082294528263161153031364887454625653572260711383650016303902208012959657466421241244850716385823225726115678930975690263905036540506655386919735926427926630379254121245700016890785877689423322752865305495729341348845819597790728589919474877038832199895974044894677511566250733904971171381307545634830374287034312755290449500455253823088956552086644397133981846633261265458947967828443853284786891088140105081077811077670462676499834679306585125160442496810175216519904154525073583751453839509943372511881247845346244849967397097988141197820249310302492302801248378166764250218005810267881124132278501540886039663109364521266954511160515449898218676475409805755169996633959061934712809195777758164679658633592453511877152053648187503507954634730868509751394070847049559648127718888341564002216393257669184704373397709036251108829115522050305853136738925771099246262655311401592179334298125730384877842192792021598350820619793928945618626175099481885282919382434814417708831527909343113922752903389637124692871687558793569527509624450723441573300721391665581166358404639694620998573388331925631180768057079645366135462740924158192455443856983563389256900833944822910095120375994866867091308099067107652771968331076089102100149495841638236839102141572479173626443405495280397491542354005541817056931977682744337709512716849256139835218448509172045343489807331246000743376434971446471910056474629389269716035296896240236835701627504160318537954678024163654442437045364675064493716482148958783210368924681294777329693981667850858107382324120374106825562949888176830516858892364500020475072308144992064002867345641872821248668223648329932387468207946775766984935113078932217493602496307131291810881403480222591311652396252808794108099246361004481321444262437924839313536203106267621850569732467027262913991123814790390247838388892766751321265575646279347493185156853788982158700208057819963332918356355648812340782462142751664404549204834252714380948459828815403727919112596943979848072959560655890777879174480341353518851021954573687034675053927735693528543398775784142771294441299128938866509580961689824518494983682110610053833770680158953702702380497836253188168805989287307019362540588692999956219136955717801721707395057967078715670962850929628834561114814283174617434216129051328313553739184272823189033333544224023199502953008970341524303621754086356434843166092728215917319748196959393494638170965331708906989504766139971231027821060735090342802793124773006299214087157833436747316823691391868101995196655246616322007429144845808433782472972189371101588170646028993050236080487351593836076498465034787214794827158498326173527341395173981298783120630110659873119174535694265281761550173274134688344619996146153114897630525050666472162908926099303567988974726219731182561768584348431877825106172412022177527366488789480987950149175226706540804086672094621729878969993483990272557807365453311113479875300241195991842338941914925223794804590405256764252793278851898575576385351503985525799328690552029954089754813187460198112328264700718087167822050180346645299973150198689667217928210353084167789072776744927581225732532280145457165099234063925393076333589924189384240685934753595920077447154186974785376963533121082163423838845449524518607538183570693354405445145073868999970088643559447226025120688061222969676642502030097712934119949392845676559891687290333573660638538197862996522474301006496931617458831854310530909442360853896136231863239380799457668754268352802366725155087055421631879702025052730601730895938848779083793417466178719459013008181154153617251199838232433082860719884866474646354679725326037410037970680916800581243424756277886348215949507503408609995985966352722436656310536499001406424947129992149073798863420361520232313095211090819647789463482272655224523862737587132772830247915418027711885528642911555531322126720237709548857207861696124658666135062970763042245623731181129735618775283618671782231447902242189368629600739533860201104422679198489849185054475165137075716904978807543965622535838808543967413526953132692777991979135004305596200384968844033049245542973682709394354136349996236113521579337571283759385049156058304711526642647935680983198372392548726054349692179549360636315841633791270182210890687211136776220606578939393587112164018469004090775945519425989143828840447765721338952871996703176482110868250958271638997332126905066603939991269576244430163041302461783314089541822387799061004088698786384373743036153599683756221319726739149951327871190160271815324245180965176368264875784413883678827277271772851442506067838909410021746768467989109331557907865772231760250602947330448823642228743511896667062732594323852227840299234751591228321007825071589197444272024610120820777214442924759275002205974667680518599145326251666294484963035796978526546879709703341728528234538116923990848294300183705190142128385149937788338472461379257088654292427004168134681201749705495163337889167803172016917785395214161489655499660089471390193830830702684257006931470922074987074314692384679058940937809747712707185548263080742323932130284795855294577858113490829894060787942605420494864898478962633217707781252787752328230390880149564223084117024722678023423086041767848711070309650043973727467746296725593225899932589835709056923758340023266574654693500159707695461409107531593783344981431523359769404954599132351189113395799543490032371308181667502692104019513517183429299853362743722007469756709544359100899979199051581873506845273022269903891776058308829835689269330596938883014117035184926000465809869852879748110672017183153427230872938110719320224100433371387823652861398031598445356193737294339260667552595598582721049463563110102544238271590647118884541844206990691783665681446867787501820752742319574122316597443518713151393807503742253506175696473298703198863961747724707823036403661556941333437240836348358400737096246229636625730384261222136126141081615948689216956887308184835330970185992912919241796945849416960945543714970553769565396914623022343294470031272705476969372050558274140643496891761074001107474464579292049773376325729460878425861007613260998442749427945075866994470422920538463508983923321692265617250987368894359601433767160176673678307679265382029030184323159354314088384585752677599734971943094335151228865701581355219775149054950297590514548497976712296960246791325935427279696298803949314299517495765247725105420423717533375520079376379311921762736398734507480356480639321647343925818877729859331900066387148700335905698650648846518158402005445809814851815956229600330760120978208684412949666532629697719964655439848223801102350267612495272413357561746606893928324384299232251944005942122077776441368884848819250612851439755780202792901336666902016312736623489628998671368700957222714137150210170856066763235736469825993812056713734152986130799408053100763193550452223039981827106617147334763818884358519535169609496567350957917003193102222948112962527491157620011523915804787657136743893374662607411253658595395656734576469585046684762634658988718573873828459021102708892929815491632896378768773573449202047128786580584465770268900618465605756661846332715025838844709325396691615330660774474704486804484131902546766220712054993631280223338687441986610976062682754644515027723566895800180715303331915052471535606369094583400326642978013185118082335360937890017729486832169837691551224808038393574481523399671914895059871612151318799446396478774107053087378129312121189817558772315322250331184647637631358806865256696402603398740735091113985292151882810202337565984312292663295298610177104939015196704630546405326563189759988448807014312121803846143593212433183573189686897961170262686977525056748875958973158385560145826958485487479965802390626658334248012966836884538260758404325030408579135869287151476030137894960719923991052842780332233667189088517602808859725786584630394978035167497161437245585515250665653178766739970884377842071561923771625165686477862244276707305555449123246418702237481876360155560149079072835553275029097421979557387097878362574199298068784148743781768907408624121259873846236200640029682133488290647055802988990903037255550020650380820347160274191807816409260621397789251254253285150013895048581242155474325077957662791650862784116347606107437806597535987197653128234196516401362414306271711435112907904373893506991242746754810586568701618919137391753436107759287569970746708425613402843735229652568249818568607237305198009770275137394049116064652312437810049491122067496491353395748918039989741851328592857068983975998898684958800378629851955729596639313043076662033993031774613297982852089299457024192982333819620011618887594728525601214755518697780627249990164799694624502176210468003228193165680276469175073887933554935738448009028012306739731545777772701721389907024929438545033773781505874244042631371893423385929352411774102496146256359494601959943401979222629599464147879582514920616929256882666063599080230351542952427792574010718537509308106320275880801670071197772778985141831343640214125882540289151199025464429409933470889726116304485326415576782250363550936654991096249264195075709159641168133291791679785875556300131707054670662772176341981193489529829737795670406050159685415153551945343771538388893797541516266016124443611230671510231361920923135038090606052473143859013910675472246895160168673685990831692630404015720653506151566816061436799582853115631299730321218005521182948218361104958795343538800138809820190271020042401491342124254318079644806445601696064041543107773358510584219925246022782386578681894087546152846324295201094551228944182919535988829299461412685647752899357987971138851617760068790768407431857358588394079015257008343304883678812325973199868243370496544304849200205236097186560511264446983746725626800971613251342628980591984400068095994120228890572685637644562201064606486162711724524707105006402037937035521229874833889468702657071477240016229777071208997588381832194697220930798961126876525057253792562906806023709677860600784815307930212116934723662411956265375653066566959730680934619659514363011631858188214757910515197425684990053089612932189799575357067940137521833159846909821598187391462302074388092111617063162799500836915772155032917065595590010634787792451337108959758335837537655337967521672275077082697902926938885588160311345807333243907526150598489103362337642332470784244782753296368985145805021847591713642417589689442673040132364593748986797690928133163088740160176520792468416435527623902635412184907227076638452091329150554021218742714518405653070441724175916768927555355137076215681871300260362007384127094694801846247885526857694196655050458607269301122549871937514708610290478456005924597641095675832041425240583002322522847986707786646270455881423919491750260442736419511949407242914536866111220089101008008718423293315002758671121418714441275499224549828738565605067358268170606787373907259304061140151746423258023753950847301598827109910158664061574521859208756681357661190052951011893889524730824971723716122582559310426421955718450902546476552976271366188940092941174354461442791054153744151447450329543750023018178458568914124676612988264093032041232112862636461168223003587351005607091055907483114642747061843471526563694600077582159688943897438517955682821371565688583707499585764723137751068627594783854476197332794709657585727712267406113947417528255275418737177409315391675009697396132242371759702992730462132604006175684395142239755977669331369033124117974413104840406177338234493750471623859809816620447581817189345860712019995111813543130406933527841964215132829166769936094542470601266387513675953887264850774813508911664830710010080811730254403279829278927615678724121140553351524260888732415143104036775477994515455015811117345345912575357447939380830679046750902506476565414195586204377500351460248807826160154351266917309475668262827861601541913073765332214610076569843505764905528106739548100286041036991447357963093024783218788562072005894966406434728871199801213146338738756377129730667698332501861848091244425357518128062130826344377144297298937245565657081914135927761296836059020691043830718813325479172826057128636186238364524578918415376090045146335331682812933423857926775546109718267764610932634545993927476908880618445055898778712507928984934642216327301459919129872447473496832653294067390871022115824514264789802932153655611618644241766766621816542321110250297742252513901593060374004577599664744437350032963123801266921354327919735756337916160516455929352983339878700612302421024732181713275875877856096238324691493902617159535999684113192453963811713713390746127591355157491103289735040894492356996214417551206410039452709282106366950308416254248012105702855484497886377363622395342403282339188132609157499762965964810084347451954817134904956747277515323948703658849278024429790641122170071598867487606869380016817023513122307018597931704367149417884363001824827963105589592127079773763475609584362001579951701182901937730569682116384694509178852224244710674164806284936472554464877332854517337353180005914843674803909559142116759135574340941452093156331482838035778771250794023377871315744917222401596400136318331313545025741225152716088544299255829947078170173537335924953297297019027782154487413658673112153969801971147426361254168351504764558242559781275827556247483622530297915999012426466702543028136092886387358446132296238906827935433167956466154392646189708067930362148069213471285732282956900196633359790171591485020393185652473160535361546994684484370638438043305485291725543764792248323843575715355329469440038276065808993891656963209083679373059552182437643545362080599617596787358392960560542559982496687553705098586102213523980900731535068072430082013330587026039820545109361337452053311525941478275516523400701922747315417473666811828161180456669770997862171147483886575139086577529859906858439572090369230014723427866291180943259753855030512495994107346624889245128576628783761570793001150516687156234026805863436978627007898449858946651405536736584408306136606914186454654405613201534550552928096401889717347685570901798306017124813072270905827654037110571302701343765644168063522336407712684813256493679047212227333659902145483990554742026692820553000893505515676858170559932371448450918662549834318616240211465997204818785559332942759520886953476013121450583685974280744606136059382387104982564023091440921602350321596081228867453257395260367025175161762438413213020951167675169735356454327131428738782684558848582558700305950569155118058321870872168842892468692158872143806574180798897453180269377824563647379268867277867949038003631860229446982812010582580564289660424684358465052682002978515160385352074161990284917764267807653438127095197502412001166735417375595640793570588302374772692435405757610098551528340316964582745172883435054890027659701365165957923145227498560568755969520499173559287572319661341224936221170852561753959822204643266889262455862705434829766163397395485575745116332595601143356192090376106203660597897231024862498943422817721836896323620611852782512356007585985173889131883658029650650869320672832433609613558075049122589561335046892903265548701977182726186587916425827521515857884543112581026995589580338174321595828635213218031574476083342549753041211181299919664382470650422617580927007825003470504664102340263823866288618430342443209200960806533270735288922953978446822976905899139893471474215684797196913440145934617575153743949337141352309698055618444789449210327624358005725153185318213043510682235145375408937145922295967882617489679704091696778744593221475938843633138355973771443584393065035828748067081776729619649085545850546146476456343761950698823557978434834406301299710672544685662923297372378431838953298899385706055378265428839649109394932395982623129438936822798960700941553216766924206185971012667865615650521330567953560923445692877241443949639234421308345803231263239278427712859725810503663723320660708552815527389960236017943533324265337412988767691718051418126065989903989999222192681980309976737142405848439361344389746392923584850896367337655596829724541760148220019916937526842468639051803649721423753937850507650064782038143301930498475564398657571739437385077155100342474758993888743154641675764014593835765435884286168115314608149195743419438860684371453184490377285364692705144642961289413616344942192005207371207703206596172440703834232360115187872061153145865762987169528866933608772220415283361691704854077851616245711805244601121496755845776942048853173907860432439621132162644825143949633891159982784978747684139187671772916020984510481509001057393897590086624436333710748845400410718630028210652532907758641076061625232246362826657959566314693649978116966032255974608576597488376800820122657098458667599794825106237187996431788633310643269899093635498446092993560451282395145801556868169714880240881433865429589172815348198252029558637658546818594860929882343202484279317801418471376981210462089787522519295397156161575847986760463966208944874240482135661737629667270866824782526178349377915804258805301305403419708523234733225021430915181016085026142907844825877582111195036184701964119665137418863065582423570531048188991958215447747639581972791324861001631734681892091959556992012717633236016201308835861784395360262565932969948467271959765461406061376304365725992934530257351430863060401842330274893614827124845761838515705058683715488912505575010504815022112472703563484060399153584177852595017779470402119258569032601994280211717415551859883641256004912746141494518089962429826068010308067652516651715428106002566914781638403971813219690250379665267511725250377770236281091045423023398801062685785924875561386205937489359415373913817593773750796363567689309682043812419264768175208961233443969680283489831959708354792692218970905223381963423102411809748623573893955638632135643175918626238685704962331603918577668161199746854512642389260244726388907087582520110821154312844139967908534363112097967310931918127016566617425027259410922171916425662635598467502259200378090325595736128538222536601431822443253507250761848375039495603265790705660002417464990038892312874971239433032162561141303896993974697616296619430300766454906943004981504489363711102306776077570146956064922599732739222914857074411647522355801666052490720115475461107606794117318055928348689801138827269209656447211802236279961423428203020414572621483452314075174906621227109273612587669160035043632978531143284986476134507682779581442333663553263006665282043546351415022209718603268631811855609637431061649461637217709354525279421433788991491308580538587377739028885716184588607943835745560760819317859812738599061103436371435009190350938486288502220614575352738294092299702410946926702362883151816602574301087455698688507968135343834838957203000486370217677643200877960391800186509612672224098088983381394320475812856022083897565860946500776856776031845762263244525757298441945145135465424982516005644945403743613223907011255470054156043961004286083420469264776634203706473634369980989284999529360111221673912439326960928390680066625053480573835981785667674168075918764115993367046781296135539493621033545502203607896596516441119635341007562360906272223823837141207068632845332814267153396955840537235761131890747190280544645009527577779174519681037377764235268853627927408778929072167759728854490228392620568626733616089680314312063833736002644212239292870293298579037593274981359158516175221969855853147464846748207114696766704801334698127787155437889438218379978730283526997073052862378013910764274960787099743912789178820208789213800420217038619087647871204048765752987579855596995679539893508397504873995142883993036765429029140276973494317388073710932157281115555329181756219470505709473556828898091718405600428430072870310307485679113787877505844633564159417149233892595952392453844650492120308255052620665057573790755359310797829579001250460644567514312491007544727437402938223402271957506173837386058628115674778083367030429132896664566313427126040205623189565750750960876692429801713167273955034708247564834864809258076529527222801821556251962967240148724311816637331498465501309168790304839626456977139156384756588826574142248114108975819515686083037117741453445576347758038379446112670293061980799610912995468591351055160209423296292716071672770385259560966379839152441611693472898147530176700187926277235234283268442328737523246280108224466853891702118588045189628654064528987227232047990469082192854623120020842734977648542499103760190373795503595109451090140761942393963688709960512523505664070284715361240659045117997687846306544008832836802831365590424126623491390445152052896705575659382721814769434478755066190492723880506570697967588612449083873626034992343345801407459680342749886355973168801345307816794870738986787651940353031484943073066564014620493838033366302151052111349892513306110366991827617670688024025016068818574563667381884902426225576456349526922528145248109257255945510286312999645892695831336603107790140903810757248840388663447635154009742384459792909910813544564814802182342548631671779165868881041562505309690250710041571139228876399942001697051291052331355474267819817002078299789747764583443097474148602457832157403307657249591302105262011326060298307537527745739392208065682331094505292925379474184788213265035887953635713683594909540254028557142880440771196499130907221756013389550293787722534196210534271061943559206033775687595351568065847518961818182723695779674315511046272691647656273876358601438146319124188244251260664673473749066262919303741739384274686904094660826669461667182139124227314063869224065498234461100406619205330587703310737638454479216766295343578798100093813928988310305171551467757280542292764314651674505231031923137264549555333576834394733016241752000402233033550026683431429452003766055537727132108163044220049091130138592934747138765095752522653436809509393387632779295998100106160886627885486588375458378693524075312747984570506732810597073683182745797338233442188098085292348162440164417986890200667322490794711399014980587286285013434107285863453655960350620097903326188824569290769814447345259413206124715993790062660957482183153950813672646045445886891426147868608205879167715428899543461585543027795965387527051416542382485621511919489129054183064584669626437160388242632332158742600002076567604324845289701089944138999600149791149664929195824376973864318726999981081637574157861684546587520675243473351189932019059749624556117921084222309039689075312679068807408401597051284879123500254270510384110699922139310857077771633737186525309107555986238516781836131620144801700100078068949576672770876876095439677070336213670661119321362636365030143385270404734539225537714899526453745603930543310038714364425629898033812519177010446242320631691348172610648411830534211561935346200772950741591062505902708936539160497253557779522905054027522951622744897490302846426140870800476661397770477956413321675568207768565985509111444474118497689030567588092410594407203587468219322050914184230568190225260544300438381569850742156806600681044103181937372492276054503439882445038514979735234248277115562037214415154544641075763540633511943314620458946683809796367178023368123332565860643582308875925963917109064637792415096014381397785774583850525224900130488828047588934893671843251467935752406048021248442883213320587002122039092983345573902973912935663393114326154505540546375564243508661833511753483310434822081785458759445052466689916686848135651390420982500305425288965591053592378148681634360933227083687879829933664947027557679720271384914444145546363005763891162602094403972259150771587739894554068429242528470442505724616602768295240038860522112838978192358337835532114361927617090409665471255142757447898853998819769640348034682185573115843391030895969441321581286725718225382628467193706295086985418042673288686086368310218647835844694184042802923516706408634719256265457939995060747592848627973725505522769669614514346447515097624100165211605080323732206500361013930858032193160359630352165026990445424287038969374370285047753849221883747771215452845507789912891549677984983828337043493341833487775269358229523727664319728692051310030665116132012879112997466072302048222080234562125112911696143313280118001966954241761503745304832328283518816573403586325626631575610105482548223577589804933204698631906233128250627031395976561106853384078688837324725177423196474522746385650052226212629942952281325334053333699624494682247934659349701861159961090326711361813514777744098785391981669190172222476702281479608882500816641917709695799704667763412644533141237122030421286123718461941207792699661408905543849553744810404428416174412164142091084538731084894026215174081069509445986511119248493712564065924094734678091477863324786955384258443417513892959909995600796415353453666134313238245511361383273892057206673926148057884304468814481412772218933087476365958731887704391628944447034329770273742889408230362843768603069872727083488008131773042697738252671048580070101700383251364686321206120323481952852145168348229842030881714831673544800705425813085251505944189527398114736805412344032194552170569121518772862290670316123796057005144534954274894378955550806379144031616822307466395834081653066650752018400921281350330417769710563992122796275570893281002341009956115534697770636451364974240949828777979189057654710043476000216547395298022743749210274604977233166119270600979639168468951911687734581994104555441437930672336865931356165391030946997043886063430717138851786176736864651060789965691356363086682373026921944319937671909262890188698090206016928942645805042874539190361034137288564281255496571470868213055717390366547274752240008219252036425004189003298337179679554884791946491523070446991468741435870376025864788179521301502645960133347782708824660784834255419335323223348254129148939687943653985966840727365723424649970780013391542641888297158507408307260031095709546760746323784834700109264747068148969450553643618818614702299341077139596286445242839209022891629888011680854730119594741131511472389831591251705063321377225554325330012951810716335090214614131556207604820830303037043783489331388951833491635062476169225650787885428664616196960519342637233561916670394638814436059699985433990523283660206097232715920904861622706779728576265761180168542038015508131292587734400232489874824421326601230722639210404276047531880680334740779165853935017653050855604001551168389940861337829789250716330712871785052354590395119424157363196581251275368021341029375426958506405336395054299472430161926874297964267830277777253321834466662395182289272582998994237664216200128428341738688085043006069797378370143216925393719856272871986830829783267534188435185795020341588836080114701737015858516465588051930901307258691218409276110183737869932647111510249887347919303680049264645667250895346451431539732823335709581586453637640759007243262538143049931692403226106324908482390035746730307108777519341763614618010362541828130667528927672440009915649772618795261639220878927657815289385075719695981964567195747248695108758375162085513028903822460738235756566395986655811281260413176809735428729569922772778888163858908040853767147614849529817616694641361754517322846509329464820718936236562712143784027143597317192313231773224440940148311993399616614209414432157526039176648350186798510637079273153819427585773001999894403932494323987370651891731500553399945081098045401801763661237498287333667133132158978007149112422419884515451170763658745844501439088065853954058075704697848316980343464124933134921593456291355509101875043378052403427163850546821515423341905978430333711921543178703500899871192014424502742302425044424715018250966744451455769696780828158475516445637697101349577229820197291884381629451482085873166677095260422696463277217497157163410496124074457876498636659906455522080182040618468087677101020813571914500134631440347979238768334704452095682110759339035215184471850251354433312362906892214591330874827168803624735542600960556987662728837554510995324746123604016982942882483012391203256317823231058609768798767746966342361409801648172326180613427502212665537918118652959075487013961533398290267926661843597643200244233813945712258689185725346489792611583317710283666172519536259256462026883496465863092536565186036029848805956068282687002058207756556674602857134592876020050770053759455511811384638798947859102432232415731554508080756659212671145274253566448803178105662519043043182918880970522896236545237725299069695439415169952245072370471371523679691611357337254442997778700298928873643161932419552398015322945529248873929377098711558772210057396997440821094695567744245527870059141227695716532460828418130179233551741096474265252232063894052266509638192436891060403357142899844170671396884617425050595247499526760808759835434379511416379696518080784193392110936993952496830041356162268057663111311249930521494499189938043617905398303813515171266735584211800465396385961212319818125351031249125207088629648333169841352587272593966308038032996290426269542543548178945825577482641074286255564003416111230330974527570661077045191981598185893026873398173099130660721580123822993686802892469799046644586465259341947708704118262100392654711236650443352680998235259978963693544758481826151814704469775759688567063322433162328834981064096524618150986507192788947657522479449268970345849557917073984918900578644828043884905285077255812838513426673451007006434061460125532273644287803683693984821012702673094735764567663793519607809538762281672449366163318218787646912762921583254139218514126254830396006626442374432698125129661433014032014474084834025930747508253203560998402026667142490925047254273665244797465623401463931727711441293191670079490572789403389859931037349155087710260748493900805320098935605128705171273527327436786627384156351946922414978479800268338621878447984017784579639884122067070171768752372037820697158329505254530629927362660561905528637368980861217447722394850969592717292650294625392254985976609673648372176464820296100854943644784748277184194209313536678003133266661660824507116689555368074907444112392003854195153785631740751115160135523570385288171731010706288038819553100092172783590098526125462532342672511274140575562034971624611625316559387929675193633207655910018580834600918295879275564772480546506531187865561661504169289989577515432226207735915991208850539563704823007266368342744077225699249764353034685140267826304283205724058406031263935700492577081071821768016540247301144506982189432134337374002640046246297955147190647520682249240865535018319142855928437845003122900529572851615344501690949461785700926253564843140341563449724104493262922657768171535300801667574486237653000397625161729796870057574309712671994333480986793878263770602031357690457423956873103894998541188480104511597424391510711777035212288955630713627517712604928717110712004467825548352482929886020858570715677120985514785347754327191138864257117443303436860446400604006701824421281595929648706855421720170905516589069949283351777545430080213985852990360693176392229909921923802673054429170496777641212466316108675096885457555350536807959887175870940803562127061902617898576158021718774403357441359786351129014815387451981635952788426236913968186893631574651127869963335523926113996794198543427951813299118903621988802762373018744198963970209759395547168144022209395445952829945642958518311885213753070023405893741591679777749646442536646442445121375929382575793622318788648931350651967919474080196319969463182891234545247129568407164390890802694218305797922993153990294594756987909336942471906824398962133972459242544756174389634054666025953578049018669244794721790977856505444623252757892523204205979672025868519971420491003694889380327719815662495790809453064160262107474940121414449122154729376440878918268601494249516904003786298306191818023999814107237451229722366187102051020905922519515622791818111900184623345007170400838039429658122009331912436964550657659691438120888751472308183560554514021949266279054210327645649535506196606504771128556903925496686403092547181213518802941439897890799272959702241252626532936579089967008527434282376417566262711382440009519760560532378486199408618159043268283964734473986555102708784673388567172615004279796948714673812245833521504412864065691175082301239625697191620883570597384974476837774981712123578446880467008477809726461793497041339056450387600489395078032523503690252885981971128955553341102598581970569435398119896227785294369092013391806779412955315113291635898539255089617480470235889143802326082855146978643589976817137186007720418753751978501128768491876614881832976785568881063172607015436492918214503492425967461201722168762212236070948068292943672021075096534061345339741593194763941963186022936923808210974715427914904262888189274110989401656147019270426678139620098118347166619882396026466663145509925198866757664836260109254980953475107216372224451036926876767165857741519883236952537203013931222586594777492141022344282891988468512122709232031499165011008589522486404454844004630237941828772951520513763453426084523104931229837804545966355928351175901970081746116905333519141407981918144890180754594276610341394338348394921206232522913876847021318277801242581072618655747283751175219471166489016859029540204341144551857183674586446977320893582108596824336311458435324484104633667660939346419733648422140200193146193666466868872617458454354713775931884403591358720898195599952502336969002836926502820306936587226465879803279108073455269916558297136679598068010202055894006268143273342392662306527224778266778310986366841952546690905571862619898667277386006911536996146637036693654441841604156506481858760485823657047138801117367512100478396242913500189303224424367286583968696729643988434521619793058153227187511108823688707195807370587646403893176625133808563730801387027736792216213467338941503345991069006815790009254018547821791578061250020595982333158028844413339244067842863203468523666874759503850637592620491228830950779634530165741552080687690756864082389210473751219770102554201471194318792117940876981595146452328237908828346628567212050062084171255824373454536580967421857442002652483945781071010663649004516400767444689300657359708105436435888564609913457435072689926014860734408129395605144794055252355394334196263263074583537004622971391972456586142840994518141161494957838889325512174892752949741373447125499729841740205686885030304680075746987250787257070288568236773055539850084866732305099263357760785376192022051308195541572493083669814550972990036617353504900042752845110108301449016462772401565843269756549472455600645008116526968682286732279001138622423152856181298798615614545592340279011357452917544779548568689226990863922139695780050444657549613415336649943029130140797446359887144215821691763034085591090878229759553435665049279843039794840948696962885408489651971268638238084222081776531680381188183878943236910770435621468617116536726973309463816734019599718087172167505467555402456884808227848097703701576137174923134704354441754341506898574434470268825777831515073574825666790759202096685424632551240692569448569820887397048797396487942772560860848120879796488144077962295957243657669266970638940867038598246793377506450623796354768349099786570504001576704881227507936523319584135632478208884120436776444567770607295587926312344132112632770121795213030856867650925666140215952175850850356498165102818909481992516372326256004121242343669012946212008174823916903787188777485580523573988258042437057337139816503409111195558100678727499297619925906646440824624477873355207256131622113673628225576162047973179400280203401170816592704518498504972543609086069229557117266137213179638549035262407738414638061389538601055567367364340082914915209222926141444960394411175827432811668292388170176495347628948956269764903303633195906375501844857481487236142668432259326441294615917789584044529116409740920900744826067000987687226758933928962566249314134932446170368077055965528145463263404973351138291994810874586460578559184865230382432602030926184965561207481782784668412554660708561753226619310424929295849685281324955097224535853770826813714868013480851587878937052923765683382191037403671288729664683716373987297481366059679244538527850547369395711842889675576861019337773250063260283451308748560843299164519676461772225728789230446367435044921701041520255867514537766597193133216261228646573016736386555149504507289891115642800673893705496009187353371741928869922835540286161744719058414117801299192818495129627804636640704322491710407522437986358899726900393260581972954126218541937016473307488134768694482939157851238650916578779941876096728317950167861824730504595063768366228611038562264153092006489032243906348027351074479282756227515719436458678667636752633557258749421543435768345819067323182500349426040993082812877338622161663936951386325293984690955119868988331055384667288474259663272729213560099262424776908115200001773014474238136491275947662030983143451030966521534442224566159324487255375213252121405569305424139936571262459207137753034645346711003446276901489985074154164843487524882196859088893228232968343720805038361377863837168841833213390103261619326398181589292690245204230187948788158109063418977635925985265618145473995173210834212411595033400299603649734400403225360118009219410848114061490960207931376253817261611853041543465882577419668339437818243619142148397462296376958632737966297931134985373206639218903104684705279833919700087170554833846283211856747330016710525464802598946696300085025382418139447882167684270913006237556962208287409564129922177769212197091672103071524580378878539778849877811489401164399422052816739657065821363622212191731283438932862375296006368851141058804508422391418866410342376468454051352064356031823687687076927362530443644484784470110406560596659176145700642453673061062918694253200335708741903031239593922696214944555731165803353881901936984531379928196761877090468791465829884796836156502978581767913221024547575211881850599514090378541719642567455199148162053783708555097827790352469248968056099051044745988521338041035120018136415861776979606297272978716583235275250001176618468792282896798106721854168675027903581714062191071847230137395624337858646659529987419664023765814510572100758137314419738256915116298432392782906339114183083291681961453619323315517766092304124282947017082940340286766991413320864829352748622299179654178605087374262373516138943945332981979129370401830128306736886397031181110343206323545197245432348749879685384366993452999556845832864683052131782683425989051156437973570608210477197521013110865864434118093628116105227458106979198607525886780574107841988121680784857330401464948870667378733732325070002183667474349225408793427993376742281525380387771379033405939739048506400361035533138822752267554892710914610991291493719978907013133329758983847589955448591216562553664701832951698455595097245367026784248226190178893616654725531390382954257009835683819126853335513991329915258227836374904371396953555937163747205771855718100250921160158772023175144883229588683668867390227660831148457659907694009693151105232427046823338980309221822375358104851855551779142481663726542914403666663706349227453494748508100742164109565750974984000923039206307216359968436344338818105116228706651079722512446528420048957786855937311348071787729659504933895541899124427534424350356448320062601995860764122078350824085926341003006402205218840818894565127848638955159880016717851998959771240176502719921832151428492205366813364001306102666013159158899596670143969532302967505807075933648418953206688778159919948459841202358489983060907020844799892496052545735907866734478520698017955991268698969539563096751074591212494471805039034676776627176719068023037427219666154116627110227609715462390196234112337403716217396297137779832701301425456961317084205658417501756983434990452871329662323503523660780100814390951011015821048390837820794456018319709949567926308977878426877258568191555435800535060964599116190357527953324910640297146477988782667514517729969875811867279471390845127206946427638621826277016695864292521724076228250832040747527563647861382840626162750857908012164824833670166605415636837779837223241031331422304622185601323604057487124257727995231498805571841295087122549318435942192122316861004482205991206189536216850381030140299533903215388200174025398729304076544189512863386683197726370102324741208722441143715721392433865466381715699687005465378140945819559200741917076637288838049120630196961695132596901264090882323993612590487007426874821463763236869030513494942970590004155191586000548777988464585316540815186370392900515804387512481830846966058413110924514326395307772130105633342825627214104174789584959207144025408388064315874130015483840158911281658941806750638009498366007707654673777773788131058945072219696830321924033799487204324282235619199519926960457392672268008835209623127532183536710850619469901023429984839027326258029158925366545601190894327113737255618776872689133138528706014285238937386276053936868720960562611775741539993103138503139386619678303908754447052836668268577013733352241877969095717486353861146719659247799470303237951956248017548970142447673601371657984804800722788741749516940091902658420656353426784546989484518642397669498204621677373032648918421908464032961509710283137625772051262857035583046437314561488746984731500632720830924544898195530289958788070231108377644891326760075727863356018061292915288484796873909224014090599593968137947347732025969525830662317675953285602202766846692667254888571442866740446381450468792030952210709719438756446799594374583221820794604568708364661133389540730776225700769084914943175436617897580444560531882381599411382859734783704901962552483372613168368859257414010784341867895548352933060749973038916418496160645710156645605342673957969166152908628945115199406520235458368334104378181029801611043875854086167038038232875554118793804249980303293200899498540473218822690213628088367720360205409533397715156254907772556706332595061585580664909978218217245726272279316362644980063141397020664559744312808224261310717062860571599656316337740150744845308402709428916202924259802033373473472404317810119371089912579816682428568348928639817201009011483169339911630187949903400375584335918386448919920386279600386419118648168867216840190869776950055138016881374702554777182146260563246586837328732079484467315302779491881977749796625075110606070482518055483348902424563839707403001661244965313276537897039340840277797755772488083889203832597973966380538341746141340030410123694205779857481137655144152889422736810984805767758217288272488450917818084858252990199586896557257036778529241099585859517526537445446956837087095848879500772150009374167700267465350683909158254246704724251328325794526542967725031403435105643439059127398081280993366318971681966811858354658925313843194302944675728405385851435620983120108917590028504483623662757671440012878227772355138092550957245971811752622329958873762758267573494189706171837219674255199296642556280327844798578354822076879731021535434563628126864645504811533104589769195545631201002444015128001128053556266405556272429408277561159734521508223094516834005692338261007465036118134635985620094398529579406295506009227592233300829854778806902946175113407780325964727085890162733517112757006618860233140562253170299458048196136709667938985556408573103934871554679807263521626001353784257624698700499127132817611029849427982724118633832145159852556272152169455147252847917260583685305840285396647166535160609075657539970948430225002442146666891160289801380053501890667008300850194042254990597224293328622216585788860624136370168005587392041879538494834549755633006093354332765731962425590989727117427680937549113418035135360724413002739615760278068413061162497565405989054681484644636464372319802751306604936909277561515446432962491314272125121976699133932080095132085179602832774262307849448365627465202413601141885640329000092600518263029965366583352272639069503849036010787639806479371590414429448649113190928950365785781816171730411587011710248736909810995986902876715975129899121929096324879489697612577538726939065703195120960778117048073722800307097837814448527294446392295744173622794662460978922521232220791014724380498851576763513928758420015830924629118745351270108700554652582341572570684673869795228316461662101485917124355355444812973743285848669210038030854835931862106433610947642849666255150638235558472073946502579374776979105024776416494023880505618357666300852724438666839356797517174388612406110624360148176624417137356758805267208113547950974743303197821043071482941043271121388920374245881795335698125312287178264883136449587525968568101423625335302531864832409162621465497726019807048306012455155505066996687095343828942769789885608008150011680936369114480875857529504443379699536363178726815303803217576543650744871968464048925461014283506170617981794278171871061702889415315230989485961213122760673386856399705960555875411617086812870162790997003408435952561234741666311603922089559576361339110395795920113279264540299985862566312569349717907427692881755718330838900829618571071037724744053997016637064039433511481060602660775376791755174584839005108898882116283552651640394867513509673227410208636352814424790251577113803889834974828535474656961760532371593031450680172917582043043538488545507499297542256320011753964333699989725238004661865434947914711753168186017834926726723907173391554385918738767555756500858649999534270564283062036523537698371815008342990869321500828111704637946949596132751720454234201915171817752087718196551551984005623198271341510108040631389938827881359833908895081338840682031322595953308263576535556960659970930190835962310034334275941365201277815528155892558141674178687207008335989859348329067194033715219870394357635818952256374526670107411493404680339889397611041061740074091557205891678778823368555081484580973227979532559792614521671871059442318676489136928953064244099094329327108704769505242298645744952290244327999844714861528601268696898785795695178070442040687279962377011915429615498197809562577352268477316833305023036970753978578858769667767424188629601950883314325478489225588233511605608699247424379450378843585500544800799805147803622128726321862622995027214115213699592246400597930713194361618857845575202455310107037789943796668907236962872603977537060189527369707134263965588774818990090933098838717481195611625793235193693031420399162047115449104192094055962964973900212322735087535975419162012673687381844329998559332754817037570695434938248680007667130903334762377491027345221632626102496143769682270017626666576452368232889057442075952476805590477526409490348037398296425664512944791195547706804929559892512166203844213524103434604041075181395946678344437976542281294366654820294513945859741463468124374303140591639111180095175632246156798610203979273314749901543854258911380247650895040398819797063970270892291096528214569248015165263616677211124659500746962010124689216549324593221987446218456247141613564643165810233972737155935821596639711785978645373460783078757468940408330663441576132947711634139143727604535035372765183616648220784618619650541653279998065555079055264183601164078736038993624365958529957642843863643870836734932527674747361203866050186249832119312255402808825885434800203453711077267201944771287424842850666559083940538564820456181875482422394575145736132409783156775567947089307393377998681178439759382526556718979956966340131128096741047760058773822264958399943784705266825005746343907645022276435934732569090315885766031173310700466792589912660689106382654078264855059582647213382308046600465348828783585597771322987792636503023109856756539474825777493824485311680694513941618907698332379261469547497178760504118955459979205589696558249231263106037429878823620366084462457301888455929040761238815462788808603446869477595733791748158587335471976851578733752861257642086051451862123972724999544562443260414236159683864527778181144325731105319751511632041791148877851509099308687597862031746084667018090223427573091575901332967414814336959396856167792901737189902661462099503684097318378182650304576202471125523905074251422164406257542456633158041322932823005056476795166881290280273312667806754195934053225606431332470506850043339705584491833097922482741444803877417310273736586957380177801152260411992218869449558698181737289046371198971060353479816658158315252777692233452576843709536350063304952154068144023183708715150740972856372994835960722197435278188366314618486049120606872559768459434882059296203785271730836372217673395354310289061054819926785469681664547701279535792366059395658830624480578291943330373620979791037026189816073890727767578607417059550177745056717045471692037676241740738624743114373305942962549644112134509064650051472052511952680042161696119112759094003929335256122715720369721708979621886054043463506529816795136353891768805039882178531415407838385110324340391442661383832288208517067062144539833964383497811317172086004620430857437231977315465661269567476104314488014482944721071432838959504143868371569705103617208431426038188102273461180898028554037118403845178077815448262513539148349571800432683075692714757122141549930020047312674075827101576021900054554544923501728714559937667106615204429394519721341789542669815112141452904631704851284873916063036025933672296162758237207477089225708569191029681857806703796205123731793960184065888801151665722877102969649878029644037980509874553226771106417962190506222720016378527778768194252308719384346370503964603137193639567339649661673601432123721803715828302869821055135420131838409486045957015806188873215822472352594767248385456069147313100502544968997776186084413575932554542694840988117924693038480065982004813588569033375458939391749013574303210998104057324005375855453958692583413367979868064480517198562851264774096739927348285913751768538977520674201003816574967990459856033611656905177777116582252697796451118016360048277158549391883796828630449822051396701498754037043183311965250875290994581004461174902730143579290935134644375215110835844755490570699112354546808079728317677521478889861622262135501936909346425828023049847778954919086043354386284336073612471124820082030682325649964970202109228292904714587332598612889613774156064157364726580354253099344917357461758542826697045685011226227891379727809485118380956929903281733488265803492377179254412306995203573653392187275147198190373995567631503141550827091272552453702116334617471399690047294281781609217237495826457145376165435673656356503240256432974172275662687918517417552901380024191772343266893598160774438605654293803676165752932472187685091937581535178812314126261689000273386417113926135514266153377157292861981119036625752835698295792389703909735593003276125199686066293829888865086135295004394306684333399888446328352759429460914236359575047110609386668156878052868018337273006778567567327044736831340381551238089251000456534135207154299058370550418513680913841634673050419146832038557674606774565868716777715111839104652984379491201767752327500587300869977531127043975843850203462908324787322950233092789516389422987236545595225022212317630225001069200717988677914036221294734760235701510760969713654466097102058398866715117057336710663528516346088989839996034679743467258290482134349424293994933355301682370801668506584677944314238206518553917715636799203827996279144584674551901168655250166528690186659293484140082793774730078237366482448463969194211335001819958436147316369824392784398525330832094942120741697288553779755186214044853711713256498292276681968522826134088966223730568213996730833478994228106457849171732648004652947847551919052684802815750217163144720665246913790692097058678655132238818108365630517824755821286034327526507817156895055583762946172822984672308577267682168489010550178822474849447593282557784364532090901616553965141282273714936269191630882902870492353353262896624638767977197298086195666909599666032310726911287539552365096790251672504704449854847190937324399463951027505579967398464605870616904927818744906671647511234919568997875140845998312260856642268708870733643022266046137059997452768467274911991771631920142983708327220853181240117681075658248400303306297440195765043213574843531372173819133564543988249730931326840272992033365547591050816500439180808605132654367338259232391464218259681588404953711776694208276476833442207231552808090150205250247428823816298328235606989375522103123427970199700283937094411932318310088580034003666231695656801313224166723007999918843526115302742497731814716814702479810754929421259773573402951863372284221035763352830450783725862903339881631765775904869186234477499026389274143393442101624607730694155713128456984369016426071440596488480951525127098915840430430371712495207385998941723584999057827435345870194204459134274941254151732849860700273987420240194219929716915141853741623831150202325309674602476639847644620889868617765718567904812242024793426684690408657750136172427584785971163797891146291064927834162144520096498279625164358904300996929353183475512137300561277920086184283304125099479387963759374462512082993641873277103387702336257531349955813001499566295071128449004546583719977649687925939880291469787995505228053516013531848388669953889715727886295503870713169129228413187016789729382674898571959370628855586561165126905829903155200288852664124638716441804478473275582684095917816049869890384924374887185006570399250734921067582509911100269591094062525692607963975336233583888918076817855057510442475717451405309234216033234492388950764546171121949775990365688695450543981364571018229237236719211317024069997821056931804970828112396270741966130850782480884635707194257475162455322185004150322646937750337369120710834170643664237060493019628166178207812312565426487114844541766466648189359355815260694014154917113546643041366576079806725858834277113098198502029528328924687597723935789331988257807177052281538157190903996677585834061921771245055319504708384492882655393685812620121193891018566450065034571147988529644539252367986617904391755410489591551156376721571140290258519551262434193068534712147763430408076352882962565809749937375538191433708588141673878300314364321104613864332089925424557030650794406496400966901662853393761689085597870653121209004496494650065579339138786380313322455407389599079143697362392070381778652677288297752437122054903915334552315175729600350801277581201620624429988919462379352453251710083162830230046360243463830160969681184999955487395827975368126103955155469373082146131295835743823021422839953386177947126711340905582142920683087185391573894898481030432656368908651455195010755546797949681178530331277119057131490432975659749913247370539697341534411500497058560354090569796334008650116324262364622586977939554482482017270677589506824388864965378436046186325042540852531348682867788608111101003033867370595498041149693159945473881997795631915846532780971262929270635081840964991944265804838820927277602455736171075603996593751981967035313310828554768348003495548649880733605903966383770946499668854127288501178655846315987242610182784324570728403824929070234160279843504239542567892836893707942560338980610757122926562309150088144056233254998019526819591625138686655829939121222791778024819240336993041280722255660421609107318064691011599333331514341202742755796308970011208058094558845019157578281963702379528050752699268486690060614487781855403721984873719228782846183064167949993769776602537209991243950622149435492337301754281400462468281845057668675203350058821390494765275317791870198722464994805006166045832427977473884227382030224652247483283497645532521141667313780571213337433792645098129945702343552387094282472719368998526309379390222020577600404653235156456494474128806843749551720233260369978282230385309722096455358605383447529492009909514858202592153862427318453979498114687224521520994091477059953079725602427888254882797008989644907302218556020376629147451893706830171721823214283570628253482885141935525152831962831001631620668640065480210230242242523048919908587840814394269896684025809824230689666226552715080223749973015290282250067186397735828668238922488077275234270232624108800605272886543207644497157853502308495054516912013157791313246907529670153643330042892855328198670661104768325087924319628415747922365581913231844230618686280724867201632949214611759180967630352588222943210789471851532030552802276797072035138455787442499895537432990166059922123509388694359332315999711773645216975423951480892026041636536498095177721736373167563171101955334546096346778407334472739076147320165417336984068813007730418869618924428213577401023504131030026814322881485561435181322836876723936025500145237635587539930892415399202773152664649430488726688100693862760812501454611969430326333997491420915212487386098156663925568446475288643268606907756181068268308790881225541204494079353505407495463434997269605745875074942549847291881039234257168460790622305057772914790618637246703389524210732619464864500192924385793031384020526238900267067918979502082332707171330064872100816950784380459284290137595933883844995326527679363887200593603970922180084397460172694658242746746879598610557558365645109945253533472351109074812298003723186161578536281351329748798087902868770083685299636219306755033583390661727235366268601609150328024164008428963047117298875248890553289950068986913358688792053705731216943225236487269911141541786419383511030663489669726659201814335255395839194865874315440317528387094740070302242426394995091793226391806382977584083380960270346374067832389729367403084950680280913497568379296738019130021175719417791213740317102171177632241360985276103788890358394807306188032711820546989146231548944024636831772124117320632630278762574970903530185036774894484590322166430272690530872701474431762817686703183244537105819351466501621900858073969833073239607508452418189094626852950921393102695901759369778934909684055288733304221387762095102660160930096962584835254827129592557234005078748764279067636338224874074275031316910020447337912920311707968534972587428414509862940661552394836682657197879475587053512953683460762625076039846919487638810369149277287721585610365676720388789104304522358623005525978885411615626573506063047342464126194675516459613838055538365745362242132686089528102241519600578805052372123111164899768323276851052775916052313769430684527370267081584894677935643210327037313909501570107423918805183812074996877530902031567987923816330689164555649112640176826750230286583686241644363963697922751801798923349625727085812489157218755184469984583930240755544708251262945083044030666404745693516264724272640419499142484046011100553320559576905532148797757074730747207059779048427262837933372759886977368276662783601503204505622749746703242545186052139180496824026052145553484416987516284600191868056092140112384467935369484201094697187705216129169638029394679629175620971482409508180779386772000716195342967546497893906119300889865264550174522117224091214061337713692564894464675564068458125152057032277837615289674114151004477827938271978601077949994867154619671976341746019227046532041020771410494269979774099949429987407774271280052006899341881614450363628263414560010346991243652974318881966039982871887594895078019003249742978233453126927616146005427409309720923288930020247411235257749171289636031511664140133225608842087355086367741613879947318111186509995794779861465730770894964342263369731581533949664446091431924678321853686342647948549262664677700180406781787358654305023894452444310506450597236543390167439649948947272093874881948880755363550270258707810810382261472899163330210665670949920203264107139476441531843745319496314150257209158792415851177337791196679788552204391941921764643000539823905554936448043747388747214701612742834138151972074683038069033070584669936531984709890712570501171695305443896386534300015970530180152209699307411275220171222523026930456950356403200127544761097390741571322217946690119208741105073455139952358787978919811165464192301722601087717501875511877267368074539428139491026523698530519759744492776786811910804547247795945735542479404896832950390634673348624018849825203173186300910908689363162828756264998178438394515099949214933121159428310405651399955899466260762456034368818537012721901551479208735053923720900628741487075593866756107715651772616692450436719341935314798346695981485073475656689226727733724820522543087327026342007801586974098775681700942681585797794592599575536070656462894531975980906854403411106794216562666172947019274343472411207309002007158537757526277908664665294059992179252154683692148194520239270621430734564759429194613418806588904161866348772114199664393646290496334420685417481405906651687752674934368330628527092171444901573758205085924196665193415841267596486337059852347434695500463634398382352392751887705929385023762698762336001016346478689101757236666860915713384980385910972426158898869987280509854988924388280594179341580789928401768081747824861853891125441902943844570544133791485885977638102925113672641302524826257033059511233748288574172694746584031061046664900636959362629513863606750399988329088895651298888067002789886525967448834968022307308668692828986893955443804129596994207070146741537325732231431435059286267007416239561914674232348047347181265686461296487289598978498555286263720464409874432506135508720116348270914708629771281504293460306131477028203404880100251983801531567452383510940231047060080684462365950957630247002746869590786885456560853180951452021974038459245335548188295197777544427953322051281433026994215167198074610628810747928306235827914475909015157630878169203306466449572377922837832050204918866825344317107985646516588869121558958860861465736045013652516421703749589484485566571267255730237430362021939970871437030779091917155148587217952799565704729214858827641521547324227816530793175891111694039197575098810191581074567347329324217478905538115015893203342211041971127195603081716399471929148260708589636840232562524767065066729857338283984534013603570176807345187677425856153759639083659272092986558537846469516298468674536042438025046724389200022464786683866848115188978335328150384429684288741496097466738214729236808328420059808888942512630470641974956262969764849906389469356364689999898733488888573589745048134377173876433486351501580706946207585216280395874979143020347810398990796591194736160807600291272372058628078410735787639931314658981737875016680469462093113871738005226832456243548325114188345548186239470834266261780557692889244800622685179042796148405079390390450815944428388468906690246747373122685674470601583162914007217349666162845781990623002955160128457491205954071342174893903787422516263463879831611828393066071800922021434694234572303921793927623028243017580331867138588685890935058199027038623184685341422600661051490941488233382616260729965072756951726574376848909116384702333991330812123967255084299539837795111060647119406656639239203698956304395152161732021342056155234174310143639523360904680908061713489704303154932041881677994799175129060163285116474065846830511008198447088446429701892689310720014894482846596897592150724474685862623545085933721173793672890585239814167915847611305164553262228466818310914971490736698600375261367044516979913316318677154994650228268825354001061960100530890621358087031903252467831815858264679477667054796113567323283818244148190509710845531683087398207882451633562820283636918260760672945382369056052925589392253913030176573708529363383855008287940296433275801521593854515571961292868004421815133300704251630108979950364088188314494109593854954050978012876174667953666245757291503531775428726632233130791691654508540097023243472341334379579075302440830983075331458656521218738317417804578755883855723538978450481362365766435259570294799131875153254423810528303414417241355893462406773184478643501759789990642931173123536008481802934304380178604000459975169322746507495748924331895527241175549176957109167123245315759051148600139380647332038495757289636932761933104752284920655047373242072868380460399757845580956182578578603071748455041500431413566861935025083744981509828500104216132763391140294448735120689416179983975462459856069043848524513534143724307392059468754714653499761314256548442249157640721673829922523811710247936170663187075704094794980794937941344198948058410010615332301326622946512770379979473719374284637609835913929602571922253874816543661800103210081474683907684442377375834454570663618616867877718101198936978673965828750687830829373530652670053239273014200180028812034752697869295739401995254829427129468495234183284882340939106458038523704207886727055674740296808276408904044312936859726148420263264829404899515930488044091344590865410137319077575547504033542920781506914460582719807200752240218507539946951883766851903472371228685647058948389669758723334181987066156026969257613085542721442217595652560820005870253351437015585800613078060462611327037937693602159603367722892455805402086990923929357188646791573564073510750473789427062435420467828620119361047700816721742553091058723471663706923976447323898279234056288405903371658406023595447763044230008942000517625868431368381112090848593650966992263798634139565594702479241072167462588263937322382806707703812723255842563519228128227137636649970795069982478633844335143072499821832480095912751568252329792259411539643276156833090568620464147309480383401168550942630123762693372472321792140596144195218636481808714976843689500616695998144039212204731421982202797632413795011507171678711856629137696662459591822465139842767743237957154842585861700917662583503845993688780617536727890910876268127157885649248993076175492005487932312590808254176908927746064823856255979004240143991108485495523536123977513030259033932595258713338698319675208932418256739476155887987942396020480501041915528991572244855621461882878290889048504397657605787962953868098905575530392901079681960353264049580034722850422791193592481196101418148259295466943696826781591703050652143445613399007852594522585858778180100763254824010483533979239409354906430904466196182991525073476435080285140139751425149762060702463627434463213016771243358716309432563668293822914444488936341824914848878061581124050849270750771010643267795405268096039036060285915562357179729806254239492613899234385360649241898593039162506804019427822114908194181627205440528177035616026469120049170741444641741777078330643258007992094932006462099914293694831533678248326916383723765059335467853466794082196610621389267776531959855526580990339268409156497129099282266357287358212953741483491449733283536727990363546354341101116327697061357767055159370081629102817675326860106432801746665879454063062273874014803356298764145538081222487241287801129976777707397146921141874593405212901061126634108666644080079335763148476880542258952006739795649581316246980480381263491163442614468618224585023500551460629223581241520849768328663255602739727315183562224494882018454503211630878905295687059791075118450087224528480773542753457180921294981628993537471814855270582459847819604140304600989259508357252791168117580578759602069041894097144624424993887246651890868515782864788012006697788523928461775276519913975903724168109129725228360280204630237874315561146168150406187992847752339847222981678361597832031438450103681224685370650691326642830462839832951785022956919443609246275078591532323931559807753800611474641148289905896980092997885324765158001114557155018813993850878416633824969004625203166622678014725712710679300892920821592488825580964252320653963064780333938180755513076800659176878975483788164831444365219222532631924597208585076839803139353128525361877321243651930784597698921796743410668274894695691115070437028371157165535096969898609652458447261806283659296679178710493014215776181546329574431860668171986262466816790522306112501436662524383909934796956603813065381004779753045206480554745229944145247282637758989672944934414025215209392777985339936919017465300238920278100665515924756490469011953413792036923214890736928731047240162248355924541068894786931045388351212986804046959749011060928608276505167573528443496201025205342213053760498167176127106176312879028341844354294466304088016311189803388967138882884172017852571283579798707528064209218900213847082782676159468444771035984925404863051860194355396807561712194787520067526636108729369705424329661149012902794850700326710307152165492867337707648277924196368972006794402822639869248132316608552046570290909378921266394319163950872499263300465639265545474070364476535786721738207956973222700486498681507196255661602342516868579535761153433936806899767919352916437271533171809242425916123507318555593226199671781051647431109413666529919762933521103365272004201942055674653718921409578242921476688462809477325474445355283829674941464374777137068426572662222036054355944619987786845684304539697319138575411531821747431478544480170513495179269253995875508195244178149045447663117274683018428016766692590063900736743289772926628405510838399405257182188619683052357463253640252006059906822834332671450505648130903825951562875931291067332366296849288032352429872228568572156922166204018386935872234640546427607118663382398474659791579263839819416206878360226854028347859579820135167516914859058581990566526128709654257373772778104339663273887923108804780313553971803994785972117703400010380362239502693169629164965563491100311417167591986948421602603345364544392400636307942576251745716498348113531229382136961207869649228011365498148975595254889090949357804698468705585689380993660112841268128707778689440747909650684367375255251647575192599578107273205182879770125137697545214679276937094149004266406785225341309930047805899770585927494445273512310087544220394652880907663630311957328297396358177427618157581148903865296863354528640237607144448155115831040846099925193471646072731890684992586839400402766106561021777657111004149347292618971918768258612320438312168494070234377024762111356654853437117472022067818238692984732851021886289564601590532434626629873522079558103352604227864925907035525235816641974173660489048498659229497068766158858948364949994495744036946167408178376216318546221684538013109504977595792721610472186814320708169033537779057468094520576560894823966214325077126552114357267878807780800881464219528685645931317671452578805255810145747048409000757648655081463265441962583077026126764058155243178956603853525587914691360678662323025051621249239843884145778545068031837673273900321606936990920146618174369359893218496916325387768625993000366736083097722787953709854644489027319560003384804076727029655439124339668967039264549923420304775763616920049334232275136986749489830787452200914430980230736199015253755257158223706068894840683222338076812491856057996654176617259201431414331910198902405317887175043656485667779138177394817030537219823614241985198574600766850429240708169736198193204712201914134198244525710573699083248546199813334227126444620779013820223191027434809241820547828837154703795371503354594735946026527764048184901159556166969012787229037371348521217918231846845961375638293693223931575775572739302076758135208590896581245532534238499238865268314651478773229681104164083523620411744108979505281659744048440608071545016020254624226141776426907718688666323422177311490621482388581534120007760628973771845440569600331508469356657541613014422583050290937892277687640689529999090962528842873579611343153443988432530744585278884704898844109247006565568893155436551385477595098573788238483667436870515114055677157053026745013892187669794559556790200100767314728385969723735328585489924045500399231075123180454224521291608279828531586874795076739704823003739297103106338118079816758094867025167240248782074490150922819817318072038088683771259343846365951676442184377777307189495119482488643284426625230211293595281642972238037642092290201468696888576928333007680204453096701966771507908684003893913891526954047058413788768038830102653963901645643526626427946065126821305907484438186319152547791438682984892256598596471752057652433534582809085951683329301689612538001862127198521866385420224940113617158505192295324211344862285729114980375648672978877174806939867602437759879188530469323194194980907676220187315006389647199411267757188960052164636272819131774883138035301661079426247570253901042423805473232388495775216139984815283360938244611186739304736859935348190154260599376234686839137519672978552760017366089821588083995482653339629856249025006587781370868273400374930688551286167251233112480753707144286899096094690155784240513238934611950794876356583785655363654285864332354056038182727363314137289035179776965623809038247044327154535953752012941119055857176380748468578189163417012804172950750341719914817180857466095750460466264055925877577736634139648083459271480313590540059885448746978067370083012052059971124353474716750817690328078476296997776328343427056168823426695567070617423370870026100847784725884279177033248764381971733593827033360693040996695211947242823112956133845483215734871112431148788483232717580808410973613593268205626282694809402005175620338274803982492359674920469957771745794486440806318467728038089954958099111486854126768459920086826693897150427779075419365656306377592089261852236172207967640152055874419979578595090889382624931231213167131252023434053180472594106595235478261084198023611323787000011880356057040712360214906526306447252308534977841864413020040916833358229425516098599077450467124463737851184658569748070216261043339539396104555959081434490024790420548914297493009740671769397698172988099220085464124558332649129840046842111282289109291426017356914702595284358190844893713808536679157090550822929688942733486994655693679399928577258592879019000348332906141799784623407894620328125512590356346593408722215693235574278664600764305589870721304805355999865383683627266018963290439876765361189701672891344789750475891373906684832484826397052395994539781562167143583379338212056597275505156878587280769518920393623393738761997881058299040245260368341713425196347642056695377504548049650746847696384762789905822601815515928849301189207456323750695447126459164376095974820195991717838917045326813264041358204648482780959809362345471919706260713167193857723835492265001008027618031892599117660689547515128708121516828593023257794196915358565813456675898147308962014242911219211082297526072503762710563245432342740230713609836102889370710588570357618089233916423181746929033571987380526931158261872662242332571061133476376888691562155852300669592349663337605804521882811286446097457481983502051830086457894175560272414273958829922115982292289591797146786140168463976855494104590417095608779405811808943807401264673527407297151317808160354769828411055238987863899269868049827288206830618549595637054407642746664432430647081265968028913368540680328151251978636013493776033965829281443349309978791950509740546301077165965900321202847340041514404947807243483478084590046420125921187969771592451351318673879919202429805094606915099456527725615269342595022398296724807438134629602536806828548101263395684975536320065421712803702760470346421465964835747005119989928733426234272385892539471688305428449143167401484995185611507269018450048147331648604918462490950786076844741945467953216695856604305299865645445319267731604544875157617309940149810684384931782349873917417859381256212144811684161987276127153096791636863389234095752469505159572577581377918916531477751171495329034925207629102089863018022693349626031372866486506668105036333091559088389157845601880873700591181725433180831682713090408096707943136430170380659689831487737086570151666203099705961279731140271306736286572711700861798115981763062387223893989639770554091441975781320913947943247246674537961291401718342978568087640828227848089937722668293704505135827782473038346650242231965320289999575511763089938411573087823125820605397702563716974127938895216308779869171728606911762167490837337440630719122424658875140598006938362816847108941974835696053449273223356649464273638757296051748846769212263089887299974815987334642649854775735757295978147119832384337308932628497047976002021205657070240937718696248542764659672766336453744590862399830589904754700099565368451083708608839822746147732511672084404535975582766345279289007399616436833335617132451959593725865297797691130424506850167228556291731367794679282937297554053892052872926098994404396065012831481381640582023690822314033640428588861856933649580487165765177223054536291030684388689136595351762959057804259139461333783635003976686236784573980320710564556324752985123954913727557841353478392849784459674067145167975050274410315680851349657574763988118715124237421956488524933439443390282749543978601230549074516666506339785660875234243573596995565717135361865908973343502323486493709515979174377551714159595007645121191678833192144094221668574264892021064647004031288191497681504569967718817951337019612232467264482199714311705617661604101373892686710417140872265137233846708593078382521600014224877794498506801531129106531295573737620747507107251123226037119735651297500527627866512121979966663591964136044915461015437849632960772739127578179229900348986340841278824548545176513031847002359828284132330585271452979615363065752008296615969225103215810913453776012412544188104812183551345854933965641019924549171085773876108242214233665219667058865306397096879668963842085142944743593823813109587031538516949543685503405280628887771050377643372991789440214422403404178568412491601950252619226414043014682163894166368708206325945165584401732492669137490478799962866381910895361177988291647831434825746769938827061284827888938597328560785312745367494177353221609694435903659847744202075841822988651068916908325972175294965700442782120838467475373128801446566601936185120317995260788943555944389651512492584644351175249126285716615081239404559251911449347640848928396752696604840809230514221286366508875824977730170154620222984964960076741574179138711452999028515471218625363325347468891286723338453079959466114473556088570783138124160779804614669984424916365452245410725636309865000838065257908865987220530492915705297471103923058648503419555424265361438303052073150766256049744024585251247493421294201068274843694258658792070650829175389958010519694623462628662481586710456936043313529598735228598806027169977136754752807102525246311172813670509459158702669039259206614207063924509464648408986362868829094207672826830306747764619996779745746119708999020525994005311461718502543894983344922300807664444731885046966133690032348567871852380978480802632055666870515496813717537640208366869033690981030460473274588397780296503522847538505356267619165394453544381201502808881150249000827165777961804038310028259785733558074359766044043312171181509593536478669286303270974267935372359692191022376099606950715612888513781380769266552863207903406887137182717612465572742274493374071061611703009481746354080304564256578650578128660942164920405994144858149721569524620394125070923236317442674256679748211702010052150879809247593329517155223313850703963185242738278549134894324714566631708585383093019404083227622060016845288871530961408816819417979775905667411335299285909118879660029524002226272449091281751668786567459334489806296442015183728718074966020701252995198305536568150009763826097464407674659773630541959740411413328378058439815994774354384792791957896495217203087385997477404906773225924862768727570669444815246427588622360813003270777153425425036639735684361596043317504767247172601360516605149331650902479856486078770935157220736598803402223619036801247929998189903669542601442642410710871225860139720000512317419985276865134204746336724333114547760213576472559625444974872991102122220063516349617297462150954251750336280143753623670992881904636398436225892302937897744468747163326179569068380707067384627738100923623675795321459030958085775650870167640473339804902801316302389629579017704573100441700659033916264112785813989990071015816673785939518036970553370015666523898697158351276652726687685668488441148835126733696492669897227699250210510953072804952672840196813154551585504535357193020831544305477371803078361314242939648999631939889032701609243884976530328739261552276687765313371033525202528994038845944444131483612555129343353013713685835750319427321647547370094169389342177584868333339013119036493316517590315735119994513143649240091418011857812506698730929750156682865173941089531550381347433689938434703769119749824898178978384178895538069981944072068277028571632249148985847721987506529267193106085877998875336438142847995318228611677575824283905589078174942755806254101260802465856594276448492468695565242833856406853371750074095391409372310134205580842654390111686823204972029356670763804924192888614150259505558347188975606939986225887418333572670627798895993212902140195556480638562516103248720208560457270046704766374069274399411776653683593069589185144896872359401594214205935102902038093073541075739491594806140116088493989255087384366846291433119681060827534013211117633911131618632063272519431404509686453417532493949154634573579866307461890874212783987060643078455710904044411778059509412642073681640547385500897350488872175249914035409602764030270260554251949738966774280039687839967577560925606918742588131680892971144147972808149427157680370957575514145296788061982554955845167726095646470779516285354885444175665421741435920441266336460697766856623579120777788062809495108660435906154534818568493552369869824353152911966609851402934949257388851386696070907866935996154258861503360685151487542759356776551741301661128754312660957921619754456196385347618654028528801724915451735707576394783741538209645020960084851253830038014894174701699999958244140950280676288563234463257241579074012598404100483917909666904536772797422106073272643747029977519929569959199917838278243861832123263393348285815478500213991848026686316344497694146646813966238605465146945271029574969361029359082052537972021159295714458086889497820600353311234421034930575375320609308725902027686054911008052947273008066713902347623317165766377075365638126359237130685598139703306929629604527515212026027716666741272706344736880831043358845277159413947227461503610651194847625755514431498835589959571786599852802207010245461588475259559593386567536413573396204255382973935557439570930791531561445172568081387937629785934514456027337275219865211652681543447987891023357664661622596321479270399161724217181676285098262803729324610357658446337894730867589979304580868640708614226011537061338048932329976824276368699299127306477394265957393059974821178197507847248505860676593955785387266663806929603001077873119990267751904654531400193752412661786205684341713126696546897353480065750620537986508453568892149859402677764154602496651832255172641527408561427935326315859884891578424326026540537766462190209131718172444701954296301416991231714741101482884398170671447457241092285001041927642605209478842726470126445411403966581300320260012658848901478371483096937796291803729085970395783098851258599162485722651256001078868536536738967379556971515734916266257932327800996921914242854758070753946690175237232074974761571071658420620206398169299245633345522229539458316573066587901873014203959510770354117526562533771322929732830266605728608784965527708203536842484829816831123737046876711708974471058443305558779543634643728880161075558573428877481274661776072883619863781848663161698607815469533609754932020305937334600676832266173144257574346670641918651278100918098558785876165436913357908704913932248129173117069363147550738745710819873570133482574062647926781864898148655568441816259186437354368135871739664640643473739218024808583234789893090608188626743680716115159681805256082283279800784707019820683269379829707968337191439577304144838039094334900824950030648453729562195015420508430153818406427043851971614524984574286000504564854316718463736739121639221107593989181172441243362434761294551300909346570095075776271160030486013312734830503607990622494724282844281149107213650631370647042085128605781552524832973917100038138654641946938466968739565345533624354925256411249171778119804501208694888183024784194187791449731980482393909488792076300535306737453374870074806634960270693376426793237651270046732418250263220684445814798988544266704621442728158120918524097017796618442211139405524202590417537222172824123493156851266893829099419652802204229414235139986498833668390968119989300750765645910972065285381871429498437967387040236938640883905852526383506004505506390635522710600688458523609342990802643544433245984088780574237808652427200204856110349113416880449813589453722056311788108787072731534263336010645015476122427338487294131179525293835379599751977525980286448779279827141923030243757762853385008369147528254584680395614823382963101478412935951466372386980980958748215344270434518555494631714942738001184662606227353626852852166108695757071613921930356625502061730685238283003890809336657539599468786243433010849941310813512498229401098254837402666998031084926943382107684430082886166649395001133825748861636470051205163451633569024681232646459563706178612835954077166163505164369773394855758690553724618216703162742762370863747118015988697569006304126242702690139796613934326769254627463999046548231190973417975287862967411197518206211040007417531482726154653060709968018649124652714021713109372115323673450045777939171824226060777566805979281831781751137786114614445282104688416647712987640411070210150710778160848702576711763906349278923337226043317069529534352948390254195623134601195480979877164575906953339742336267520446471050230815793010842407397190017764533509248588909167687229764174410117002702970965249896167670438088915664492657051252013237532259334561827447936477574066827871109135549571022667484206508782165403080533828371078149938849506950650821409496213278976239643595811647491650998060194481636751959839696758049358861748862962895319294675141944190024740709866193351618213216713698674238637904407206747353915038286550312410776263757974716430477996698261030089121076130178461159539486453100611914764045740766768288807570661552207977214264009367506241828979413240808645851917967645300967515822105252306507158126573962369298524110063768830724935615705610216726161114385894269221338235114805653922343940617504606222758780379802394859283080624077471012387507410514445331333575865080375522559089425029854253857916300694502916275753510216144972992904468688859738892046468463201309268823524294566414930911949675453652310284845809184106180380741274730408074838805338815616046345417030613853189076470932103545601099039286944355873187081028194955908796687711040868258818677479811425450314467576644755369395617487025504593154252220434092916765741776463057997748108293601904042409885712605948032666346961885030324177223611391415125439980816778868416243627182984765052183538165908638538121180624446900366179197984892036440461648910256085174815171498359408315540832394741699027738395646804098273576094399756643676404721270302605203650360510119847007647587492549711200921593714750085837574420309112333898138834510131986840814280402776079999551605695572807632728701663963176219810108497952700327970205509547340688997523129003106419106694857229436350431506006670275256208661594602886744082726554045104614375429247808332134346334988686910642089737405775780382894765783178837463781147244850592328283675019821600621461800547105990754612319051931597810181156919387900967254007654675349530876892471550331872028087931671486250617521530980762977759841581205140866650471401177126853120842250296745284117803392169195702886786125719581707386630225202129926528498699975059027038763347492235901093429120712916619790252768809511718678370155949166573515097741377009576797080087157477083018524963450837630206870039212296907528153222993261000732269628546222038220712224416376775457411887917439775732109186206862699607421706677267063084707291862631189882198401800720332294675695516136227502622652898451465709477181509079929607963371082655572162369693711113578542632341483545277098876085721320035291741803310894526369442960109180598526593221880302605085036077768651199814882562641080974855292345371911410368703437673017786648450607555314825133338796139374374686513068679249625554427160134122120393754184692301085519131727986431623320926185304901381877056905868612155374631899518251948084038251194984159588302073114238490776316136467012941361826895409954680477039998232557648090184370908013094022108122360947221778044974429995498219632203953883964581060765694693045255435974535754982649809079213473521772032732928480541495036312962254753879459916026765183583349809598523226495911684257921730669223306103782720133240484554645964209143618624661299904332469434431841087510166585399258704364859165163051507470949589865463880058808678396200195659089274218647573838676534910587755202124602434437933330268472434825959815545726951991413831094671260292353525205503104986095274775595709648825677912364295514013516745587786460312722547866356995633288623030081345275158914230642067398165699522719267303397622342108544391679672170009745858540429065565343751389553200443864943807620334492881528631410457692145592640461526155938292182683815741330166706138480576677487450605001786324410835443909207519181220407103916751083591334201500645860778907371985138209548365518651354799177167953878617463470802943914524010731243041502078236026165112275292837657555803130315257457221089245114717255352898180093881028397305602425347114985477470306523861586346136088791137289235923752274236395931843736999307583302842229996887049641068104826265891406144303115713114027498958013278328266574728069034544527912334250609512703923303153286630604700235547033059281937385916237085902660790698204929531373090893614282316983018014234186260676400622932530930884435649330229958725486316816020790065357040514940456860997317937244509151216193741854873050000801416992000498367619926440043309906357588113927173092698378502744082338262663415691061410475624108053301610278082877950240949919034105460273718729793555178611996657000276564391887347400370169303580974847062911029677178556585275084818225355600471255701967035410519517750946878644086869593811717083938979058993937110005968635350748839429382290199545767183185527502538699613549214431298595567682660983729229444276000019740055110303071044897392017477089054000537187791599700310481030246905407129223456220803152964264310790511289840960336002899843252984202677604919998266238137518413055652520232656525644215461543279588992430243935372470499932023456983276593817339896199761752976417032556783165132818754041824168062988909421423151173625298840205530832706268734251500815387079234456585947398673269621317499265360744978048572805256660615218618291730941699836363758677442338816734852297557300872823868551937080713741644000159271593943564225602256186259178563289642075427694179722394097570706499830827696810924255959988071043149702859996820511104447013959754047846720590845582337569563879030871035019872915828312754597145258743742574018413641826185857500911847876705973983198351922425725029405743678623382892174458843043745567428809878921389489752641985263076591651012992275919432587452979272553535444388477329200316800448329077254097406511931680650690077441837243270168116427631708841242213766446081266258861699428135523751753862542052724740496833135640983713043408883236069312738719762550191206331000829521200451221976042130666325202780898116877093326624877954385761082797632846995237795758765146180108645426992520396337227861828872325789483952814832977672459657041362853850788684263116495783722517855576755311635142341489906062767245984891872590327182350927200139211964820858651453674546540378937043775137004944298829061706014698603052602093539834469987237874989469254965755869325871031269900491849174773290681136699998743888631807169731663096238353445729034710381226144398271191419450114532254928298743438292130134531440152210840742444252921261591851075576833682000131724365129777998616965424335898530790971576456975122242535114295208972603958475119124637097945221270436459443433450539414215317132275274110616252754088413875861544856845105803608807854088405033359559068373851793778296487289959319636260843478898898821880943368323712604938133500588067521156898269317056581595710074590989071943513945377500254149141977290289327716270858271493209780332320554772165177591381852641978099745117586029990283974228836607392991830913862410631388171237596620384112505194487656439793070743498051794071005167632510585279011245962809136450381099031544733879304597816913803034912068681705209236740855641422939527048726731101612216543081265726911865675606266668882632586241512356081301636546393291896654355501715374889352284296986556039513476652583502257814010191421862560945190389278555447898477564807444242930336087498794698459077166051073774511965755322223927333122559303511557893946864841683144654897217801143939065867852525401240169275717002384251068941270860885849994586565871912910278514655253827115288901399936643822183409120122643218117313586382986162103140777943888924866840681177350109240020788569335658481216239941567620310961752764553753739003149040492687633676877411095315343975611810285668744204502240638383281365335106223412644220235361085965199105764143595851176111752825009444235973053296926572662666627997554371858715578045087875512858202547493531874175293734150128519474163803094552935644766912263655985317537044336605254657753953838812863992116194396919050238455054255700595354197758726871857909110807303150354843110003779243576638663092069412290318052143619939817787275927573634526943881079804397370867169949941427882540543287354586625283522502507279223175639307610784816624164631701479869263128222450602804944815579663291789260527310090264359746564267311812638406096507205745498432308204730637003448678350740203638911118428494069115820367629250999590721056577441609660093029303285926599544351589776691805262534604271682948611989261983138975246626413261287558172194186846016584802120680940347428182674102314104123704430291865545384942765021246310337895270683452031631846467016389094477349816639064253711820750995127720658950604581015452379261272641437569852172093562332135435315353476136374359331911973914585007116427456706464783582417084654363792696491832124065810672893723347084486636676416066330790347856468470227819998415658767336729646424487546653947041887987706974022311922342011605857597430725573201323433766175468797726906424951870534324885851167478633504794689564834004780605443312197860429203700553822641962426688398238737269134885992649924516297837293390885726740720399512462548092962125593748588976970145266890848825984874191397509106431667293017068726164166354326757918889782547683348117401216054324050773903614145889074096044688193771551652757536970142729587993992774043162933459642564515008100157939734306513734808017873288750229232044488895564569331792870774244937149264127840889135309481127980082548251499582977807314759974870857577632108636199940566227638389031459487097446235562934993788210744559119048713648590714083927923790789321026940890310792503571577323582466851304530693848009593169106847568761675639716807720905892974210615286349029371941959752260714584543395387756111045406901554750317687406288175536935550986618660144209993956037021702731381716269498250364635482899456175254239959830741277989837905352644500623743453360227526625459312518521916134166525680806723439034667146801970805830753239220142401241484975453909113743465430793323035258782393728161086471654774582135986835643658260751075423659437904636064996388295969907268630377302979172363048138264842649114763027279962921081054901435447961950437724098687091235537604816614981627053134573273171272893159275675887798260633581932027089663644673048202889908103336302191749247436089347137726835689046205829021626027520920426799363941765436361636756011260128957143584390614661151760063191686532118160268078984639221351825963289187111969835985590407601327596803234198641955313428630593758756840761134502018163294957494374582659708722380603095778718746540048485750061861565405388097465628781864478664061476927857877195332598141547188022467844960942645621441317936261063944474883933075335738222631696116256819483350891057318880744388754648299660061564205405852827734608270080052227758143544125882050861475532713149864440029471763120507027299241919503356302833530876750703494968795945569827101951367941291104570449231564805960710862537884210197611119505990330437480831567128377140474500174853816292106886438611474255663671690263263322919468155853506817162908190616456435147473336938456016535687211827712001339511130904301109351543791207759407830415347971711722215674119101089852988769745649616243487353030955885483110805740074149141518241256952503262646948227736194612378116065696434954110316709653122036796854836265829105739374090693430313759526392537482315554497493252753560405164125700314633908828826214123891169644162010108438210455008044909106656120776538865817620603131001996224793884439919934123935896182213707350291898435806504807817698964370752666265971052660994997810509838671905560573035370734160484769888525500692947827435163187506005484038044416640131286872187011237617531653725886523778568919817480674817704601724198100765889039153766459978200111089805800778383611016945390352151784476945649692891866137356397193612304473917790062169311315333258129653077520481166064980782436946926011197453160672687681388278515009449004857895298704303328660838524321976931574125942748125543500691592715900729781652426612015235282587466591114244836572338019464973437262161248557450015268302664255040746228251796222608108310121543106528875168955535873082470559519858498078235569537166271640801728637352235106261659281939169345447551181963936887833240723394870074027093716515540825639831093927817492781100270061650626354861799556973043812573457938528692604411198293139543401805022473163024024656135600433241056212060671355321230565703403617715878738284969333250559498732983016722998000758333298793075269571578467818375069377128445738769228264120036128577369091142124806531536516139335679905444944021173414248437507021294166494265482069193886435208028785201963453598415031112613605993842615138559245310056919464025456853293368817473525175234871580306601890659563781528726021426507814721950991880534348408348257719634530601549609130612581678431665603760246715771100797847414028616000236620840692835344689599031317105563259585088319490652434222515808852449233116981451398189470283934107591221079138050580219249623072426698904002924849536458951188220267534192480307287677868800895712480043685445966793853234956870209903962024455605674931589169625283462050667231731693269445126379783218762614928993254187207836484760273615654516877239886468445003248972957717804280620867076665148976610710076682727162593761007485471018947653874055161964845455195359601502282095083521523438457910147167032479309420423196114998844602562484518489848523695223632797179240962427266950032689956162353552721499912150444933190102214838840813547120428677598370662756425947542540012271919753879952973322858642273894909011187949001972759435516538326124578079311428317561634768932055772940446079529379143383200468991284204829831414361290639986419136973324927837026770551288774944286700290200116369610939276325346492941358560752898335059441750785913555071250859301447157131831421751594708528227317234988176870406084215426027113325491884547591549131276652518269205044080615129812850041493337190429762948309705870650271134214602832768581781208873290110762399299819941449170003031472150243933911272784038374434850167389929939788607874692661998427707952514875495755590338818317504424671257233107932514146462336652753886765858465989518202496661836593900639573837721865674792492452344513342999806420350912770460210819251610815018555095593442291919545595317071204305705814607702660414523282003652410184917243025284443689355340189400074664077682705289317801661151830489132883682752734513972509488014603902601610607343381759404324617324455370257267417468017132656190935857908564560690786715852982338564785320865380265508163172144776781032915020330377955115402975497757268342953847753963031128482484922823625100121972021088391625738763468282035796736396271391542359082923223590850930657564619930167823894707995595281753987783210824055282914705234668886860391713518037035615203881515773997694395893728394301690309578617512730361889321993984305338472977691143312292987174382542726628461583636857395117134273012335557722522483062086770426011448427207257259100917865428270668768518527159430352538627072632502034090896112353696790446617173479132895056455479128189818721691960614295876049905006270488544416879469028333538905556869991448953020057975528334482334662457525496686290330362281790049693889320100375736584697484268453990222385043319284219870993297147598526321146574881695899084174605203770978127994139453548365318773844014314291977593811692597900986241188625609099666670645378634730322732012218873454832693118181697365738385336238341742135737979260765957112252631806941211844747839689497215134591434312093343674300126854022682578943622423747148981746487291089733982968739467822094948970960096965529522921435481131753981333507710934277784811955533019931653209096043781285231365463885830322689498407659652607467027238066839062401102804343231712246861904269648824781620449452548784680652539036042803777774882178819711867471946130125746878162355910096038529910791703724561536740360254122856584485661502461932657170128339009132012744087434505778547647854475598678251878836152922242293484973185624648906305682551448374783057438381620857079821019221816428285643222522887228972269152490981781273568848780266399933052157974032268210849806844441318125349767587725159723633952781163573580011132761216789634132646086997840116413260197357918372375318529433704097613967288548060045790201010004245410928310158545889974931457744400910315250098116312362200468367962858307892149552417679889371745339623228279969389473441783521170545621942124571163393816261266116877414137876265509623300085949325368582137886846686001732252635621309702762161786043881949188628253304064737286389254383771580627505988436586326360900970699210003733211484778522244823647473910059399482308508145652567629058560499294598150946789169296631041202636394753153397396205666530068533450890656648701245070120475077310502319997055619355569514487880998482374620443822707322012828972099102528365591803194154062586079702029603887390137848402140746360903205292676778814380770947464914897651125190269952198962107877063575329535936300216433541503767472788689027913248244711229704824331302556967441524341034075799261954218583458374547372364524340028076063072392316899391193138604566166526190550015377736217855754251261597452399165740458899129076634959845239600375388350288621797907610541274082628758390445909234692557045003859826820163883592946311048117368175926631974774843952162024860061920700720418458328736522048544971783468781329237771367400261847413549386283315159829984685325264890092916370931649648114531956341721399154842155711434843143420611889766217418417421778331552743734284810064442509747291926451374871575106016756156027246001460122029635774403025901256312876968021413235936500731096797708571835528783784370231448525118420972096256355420813927659025510831197456047713161251178016136965147584340279312696588216712840139803283594008076757320371473586909234704276537460510169978497446524739447957186517956604692706228302907108489570996543171822160692783092927064360849557976760354079153066422596024163328511127357655156431260587730527878282706611912135465406815026830521910883886233028706703856744323201249707740024175034674246343548632815865593207978858814246928189350266158918387998208971683639672190257799397183436833355400667699698435570923788351299170968271596678067797724366693777614615765835077859372373724081276370691808974505532922665711189250617438426374721881934434098256529208926653817627178718765658142726660284847504481291803390330107068987464244596379313983470871142405827021215181233718481741811935262544970518268524730100593902566043061374542186816348990383058129252031581685180780504437081755056236985678538864829409274051830030375501136343300635453704330563237036243362312189486716999016547173425199874103992711325571897473642938202828917370422709474358442515563182127944692556697279018877839161540544353873429757580721928867938276701815872711659284586180754847249153399885316212431100216908764469651614174571104814081630724755283438052891700611397768871350962455856346007479563469392397787422937603786358154401993054513638086987125422271627139559045465733762244127642358550067125813284868227975926588417892838418850805548421976111133810302377522851184797597363534648180593178690073241137696388015985651734519292169935850313866218241792567826851563557488491197076582556932520217440944945982870651611634428776143891424943822625873304443505879919967398585991540918787469509775318675029004210846387373245793145650789193929967806530467342052304831359107472393711577854801488317796213769735265620505485422154898550740840516846462637594771081097599853053569450340010352500090913270274779359814365266443907674000009155215438923018741968200519309621422187357440405714657287876392967444949699625471163716646854213806694543262328553223936144120395844425948423369066069155028301008233905360006222560142222220642766036730590619121646581743665134447174936907776395941849832721825490056363423900360042787496811831459781812890548469572410614523554309193546431372433931113966413222780748348185321123436093284273215420283552187934131578039623997950338665615196643667584179092244544504116794300175685649303363497428280651432756285600868199730087238931261884846196070706189071578487465186289920028700319762606607438615612900105391688242689858956167075334079201305651062413562188825196133359049507605101886081561616405440061251928762587696402189231184044563520168650497200764354453095316333339359548750050279111204607302356964996068340186876723697887785842453111739281561112003822334028996329033451013844911537845052919261172281069290377412898319865353156516844305620110856208298284357549085353690848812415168818943504352291924739423026088551897482523445932779688924018314590719478498504649576461673874507525848159437302723434291693966922397626034263274450441669901898855646873196847126545873223717769924957838144789505325181208189099267460213317855746531919507202492576469879927769870527941291874596081769686192572839835844010065334313955414617646596822314873670276382695018692152493362749729168465554301532459477948456269888671111700782313669757691230950202904243973653697993455207964460660362808366571640619513388252743376201887095429558111067429315074673610395497878369249662817465533574997397817425603360391638809189059847375429801678928471449948172525283408957702986513762755174259489605540638653449024435700561611972368143150284792370795210509469164446104559789018942783204197557407287593911146894286526494052372144074573655062307651007614061732427730973135373209598011068371177690263851502645919859259327317026625215307358780799437254660095488706071102028750243012791870487755104438231783238093248175645488964955156660713730754567690831912668404491376801101217892928510624432012431914008752535830159013710772944473588523580640711542929464748571136479008915226672608948186100358492242679103106401530012108382064685451910210163652122284591447685417383735939438418863974000845213039867865116592279655053849005973784563060088904929821746137440656470207149429226767420151491969679541156877129278448031133691992587706322962327709038177573616422864059622185192620333130751980546472329364098252936465508740573634953806539477585365517366408740131554120442079562442166367649255442561894876366761286144873685480356593782516024606736384907330398535764911833301060191280241091925799248159598194364630837202683865893259904091433055117621966238420631359205062979528683496752869688467359516674138897697845523841173597373553987475673925670785249042749721050059368730071384941305773098590743979717793170903761764824953684110825285915580679313558439803349599878075239839676245642555044011551778396416749664593279435555496929660178808170907980186944566569034319957714749738759058287713792344273874990499822824760858090957960386424818425608252816277155415541412065165863841306738782540550892164918184515208414299317504494835936590633315959382287037639668691726495566453014937043825285921436144746568512601205228297059709856447574196303670958622998783409590379087586847429293201281626010194819156183082507096125663879412223829663558850266272942621196821693509827098595154523116160998333710095349183587162532818012005511543782678089601373382729661065087577807850846002663132521973057880339660604498913718303507849263227604600792749380402522043778433130461692592105587282963153884783911945643812245829542230503142160068338562504288720247491924411085402810214526389072530500708965832699854884933526215625780936828251246753639888088255576062082420104696367847593913077192687519714778524553541058503960083259066183714108328246804831355504523288205829638661870357931927585209036832877438005391838543220912924701063311228231828494069285172358822429083289377087402925370682163495307227678193164578586189469817070106338980768860241551607948007906156962636194725353922137373320220606662550286422773155794110519084469267435331626363119598568187132355912958870540475562102166846513827563679423786250672615182286952790821756456140770266499313007018525942027436147233497910941448306856790922568739284571672336847897317043151472973290688312813170972587614236115124509151913346343070741845538422803971699126942048028761444467213969130726105964809736077394713724431560552143121193976085182881637271445133337583390775640975541799789487303089698485252474687147130604343329673173582526596351073770285627618412867344004723893040792940595869765002002097953217820383207165127622174828780470088956008860313195223053583116682227226636980555478263716837535648640148262914665557880418849223690957956841028550152279087235652361776140711393475386818182017611396533025209440299366842853039206675699222325080329670314406053877835389179367182204312245452844608365779641837063129511136007766550969404207594736069351213540075689572225671211897345670391757998446656135004142763935221336202074603351039920332646518184797269411328555942711638560715760511526835997864167649180127703820616104611421891059044136847006411411782383822719753759400047224863562862203960197941614623821038584625673205559717901336169755372493284982811623553839387197413444302291031661054288568645852021038919504650718112198461810179084691599745740341355633795481400461290251544520794690862412460685473212814875652047516160604296743859414447206237013681564448649542184064790290799477920661738273985435506611498670504042756956624043105870398965986650830667092488935279208850641722950133716302005421700697083010724811855523589064976124715007457675475593043097928815789049997174406397348529128021556285587597330480160180986106317822913179139245228447279891542176675249931531509453492242590860665317623920577871981014613009619162364020687882625503812798630704057150521589752987836155941031040035499303329135534743430203599737824066226311857281148593990741128141332885167272693942532831387312988189336173236705339406665633413021512719589839654132653519419696224157771533334227513940444181125491119327423662500357186601034713280727095364299627169460564010171461187790503977334625466675291481231560089982834702036468176959639862390720281538353288274509319768845240969676433421234421213223454015408978202727499932107352670492955558743396046402697077040348396351617597269294174880548021087623398815835334398415565891163200165359876941583326006396961156328434441117584647982294324617039462303854329524501433199593399114667969241097059778919830967618628279184063001601083105574706949847555856034327614136305183683747604242071099297826372479412049225752341262551230341411187652881173244771439184004352230470283419736552582242171565946529102554235535242483386925925795281189894441725905898679733434981405810914835557991211998731077162748871809467672818604783445266149556496358841210920594149399106970608054965937332650671476624731177486501570075919580905602502078064259884728685209315931611063386920118984315701959555268156605616373244493398011268625289105600269885586641754651450752699518575107196522570791884780144043830650721253033974554786424517952945278592531481425690829528203096972956881185433471739185931929384975259154685277646502962132786750837030923779753605297218117418591005082711088166876990499611306044782572785589301316109320618964957227677725634113785584195521577413381281347249749790748402713797918624159959778663955552719277161278913956834118471506270113422388775020158626564940157771059545876012338120921476377063702118348181045769052171939855353418444720476273790451826350542601505406786766220873831014729953587612709305065737565227289030460584196756073535279792737844270606764527317071929484338154304602812704531906644150570281042856339801096202420870990845553665682155776164900948047217520684313990895145628382902984803439816418755356495617604455312034637491162099606360536804652121147240004777964854525080045725062696118420444980168544003482932891788066814187570880636030841277293818608496143740846343734655590295130546321051627654227694894922810603876438378394905421008718443814774108175889500583720522327626627538319957215507014794983413032654848715603686268474839489925606501354584107342009265355450626791731693170860565342206663795077271902403911404219986982584109601377939783071312277063052840930060039614799272036123671780761932150096174692915923356803092550747353432742095803080312395360047010948089351823048387773387044267522218993846807648594809208657321918154092778277549363700012893515186891918366564417435377287229479870834612206927899422212563861733670193149374932590465542167758059460162972906183038155190784718070075664610651939516638522601766252825984485716959222433494379792063896271325209926974836564718807208422293463687101525200750444671098884413483917324560019948071999619782574480106532329899190479327951044165198246497741322264107292593903105165361380783253226174431475648205022810270550345781570482399027411944950698209665917921587530864437695088487337600840802400350774435420531828432469412803082371289489477917245153523341343324916858609730323868877367187713010098726038964938584889929172216740187322618793837961588956289755334061778433427138661283995078296595097579789154788869234101282430378739504299206516560468977337799394523266830295920624316582870483283799343349173531475730952213903520743978326759808151878124379146276519306822389371114248386146963165767578210911147020602544263392040405494409640658685254879051966469980190038191608979902867661790631042957899674606488636628460630115969999881685549893267212580635019305938091186275797046843382735901454074620798698875341767045082424028320103430782778979025011123242699629580346858494793581991274140108576997762063545901095565073318711791096503303189361987552582112558508384359764149840848479397665842030739839732876984615613988531271536724115428860491340063209723529280395855194426757757383201739009350591661947048376188698825473785103925179514273199016992437853108240075851520288677598479276245731561830618010343904313413724862256066371948322287191720208392358856594806301637132343221601319245794172906417367078798990793855739888560896367032667198196635915935074333355551411602902543882449490265881138415730292208827038086805212063502719963321610816513045408766382722039933642926621637158586047992443447540237428006074633619387937536048529525878074969533427893289727587489287659144369014020027586944569851168849042278853000564914311923615168210114254523082950366607806529059351116390011540295573161214172785558757698102002978737549912356193669887726320665883567487574606236686881127848167075402942282569037275368177243593174344292353736408767372729034287181398080062743970579861798737873801294397764645412333759388863892208122813174891946426193588485184095902390223694446764992774496420477483820848997384733315755838763511531945059377828623650988097064684461125533468769936684909862630266527710629049844467143107677710326723902225254836543932996854345869617997345882744731050608558025632887399325689637751110765119519284563649112860852675887533255632976335849637304239966678422976535585687717407058470736055107834255101122664844777150208900075007316935536104930119617941622738589620012807267637854699612463614799123550484571636223261533532892592194607059652688673399274777166997971133350793230246305835647791512330911524637233902619301888575180319391019453523017541586772386416078462977923258009199276855998615880360576582870330017313817902028325379378532779914416030533608326504091782627774536422061221754789805024161875996691622392632602147560132269035796970153152068580517514574829513992675203787781893760295474001026117444235076493124872869665678373529781551299221034674513424141201940460277629237414217315428245613490091595986439878215173314756112542010990411100495467900554733334733425303876640010704585419568306769346535978670713779948168626780740691352510584539391373132528049775035992793356368394184155900508485798592903895622044454535250668687758049678730220258287043139512527298024866411275487442538918470887107061228327991901513262744201755549611039320908159014976407848080483057368190147235240753550414250962751405127337690368262216414998479326629698252743317064842081550500016288929679328186271731942325592092145100883935746735942883216778134790123661756175798903236467526115459038587368171813062206237291783815285120557270201114437508404912262239507701959854935314176330863239220567458917906111758213307326854347317051919864615370686833767092870433978373322351920028412241066296203190991423035103994618874739995044282368194760190507099199884227849837694805759936060146962206580704478868991183790502576613153088033754753910267989345763937178326601523291541027481420616399070412162074574159366209883110636638656291724281567336640491451989403699100698306453596433568768469320734496565462799772519717389590159740521354100794630843559357356906575056437380681551835195057884116791348596799251424680259546088565893281900056779954842766431930829611534289712595603800636756637218055169918774201253629393687703086972656420630465528788116877279748268013639722337934690104769835338980091317839240390840107733205143799573149706157419004669064301697563964920763349417132187903116281170694932498485382970401706198873735413037714960252515481107394783519141985886636273467598561206922288710863519293306871701847872207227413029313995416075295735905194743414904908526169359058923845366681521545661916952170469053652194079592858202492259970614779913919242548578916531209834770592254878843878180777214685262857774882483069544873580120701222205224589494533188047619339337942331459459167838545169087968279383853603327530971036803176365226157730256843909693325717856207059556694579617573830176618293735394953664748795647549662628557032081590688879951507506632546547287191499783748725075080462301184073942143358873057818169655434793904110868231804443823614725058301909725421655571950421630158907956637623563596293890742350246792587477577315303588172758204407834173449582158292708888665094550756211930032441742017459356362477132813138925704766986750624753975076923206078770022364764835552008653553159453586727604138174406014277473501765466071985592575822571316067730674551707444711503579339669007719634006890888929362916452548624942177379718299598558779957284469043145679168166083650057598950122355101306863360541278803357106750178032834158765361236779849470655103659046935925490892406355463303311807282784093528276227688110770932526817457220976270773346844505129513219020147531998389183935282849150891053254788469142786111372822666657747150225215939257920936396194901639782690090944719515330475749008307845878807058852170475729003449081408406716697831889537040655001870914966530557347620871036096770625197744767422615819817549709648412179781571079613209192983626480683914273747459550701420396161784978626978226625343933073723985807640770920655300808503392424175425578257140954022364966825453851068403490094194210839968747525821181091620820106829956225528253663047464863217422686523814183862531939363743398883662436175458721178435125709042254090159158639170927641715583818810563630953424720874660325364202157862449297796925463674716805157888739406477617558698032946124715958424581155798539094584481617712825346095973904275784752611908715083932456562062343083296170791343822302588117907171276631300307775421555867173001692920783133858304843683334437464150130244015846400253323863498913434504777315403093614822426909514618739605402532134618931988613269817096963609152886376670221778895390363071395281294521354071285508731325342009071292369327042614182689458754438283331521400379046925944534551586726413792245039214965439087132977935075446853793114705132817895098684764774245283482598012809106693878927980400183850743863255541363600537711379699141487194309349261282169537970707256285030052436441098097436524319194854809911241641105826093732415562096522183878521649410550188084470277526230735719088997096510535105261986379177202744968957122083882416782969305066615101216801526452319575634536074117935682882450706458089156744285099305039218401062342156478923347210616715521823758989898529466180451667087118161170146853410134968341911126743553871082302774900808831791582707370826055430637344707124361248286327418342289260144442564735073887107539811968130836582868480561603602722611394821792024969856909769055458062692829601093125756434996365126254681584721447983399004098125535648203870499639170094296359697009538325887959621754687265453818267291519280952185129091387650713823815675483555212578798419676521097581491021187847337750365826771231644514546653025829038458642181107859472395577002397228271821325102618253638123261337586720246885982568716395690359348466196263271448101919956279637661529461370055386627355481553724828164355916488618267652422494614317241131450657469262971894018404049391029634680470585880148979902884998071524097898649719453287678974249859886477296734792565455153718990112382777697692144908742571735553562630937097924724571026823767592676483231568659873967698198274206219549168126266444680631714585774598677065794091463111797549766486104064770107890125261266266412127141200560693938711187240293573812448674634108458178812554786956156705476028142750451781909521689356934949776022477956762751382383766874725963105919242388836965187175178085030990033773971970843401545004134753119009463759060989029779713870722479517082184606916066790556278973350694964428497697079004515080397592070489405998512019459494878868435043555731090146329944968317856036034478939521171934098499956209837431857632688872968399910646535128394017905362304942230149513250281241261165827092024108098873634247052786366587968090923193703997674347249791472678086954967695775172173235139828908571190291044194444218201674118473685557500302066952327117527132769644885165881486661370526596505410867892864568938342029715358482873607931061525772840753826481083803617109821578159361142878149445660319167780476088659124041814879953849701505320175221686019551369728402201008263572180834929312637669754240668006384091874457896473123680109838546041629575854560049278287145911329135096831764400556353986243740807505339456782576056956459760741908721436430778684328589847099079443006982303553100905174536926061583043579374828086057726945806806122710322578531389084771462647481470061375126662953257473505225303650310635515257274149657377154746118051840003820203831895676482528223007108636572692859567066469878597757535118781087573692707170124091561085005702955551411085263028630938963198931010504985229644467419717815539836450887401872441715263381733438427724632952465679784124029275031329330922997124933933737150120330912164199912586927458187186803295744396571346313457360991935064015616000477909063779201024843612747697823911928349829988257899498854245474006596133471410747386383564851931501091841918180472809331905238724692791096581792183616518508911723534649277796551710460229993948017870480484133392763355343734669904452549583460955318471163877678697548057894966258047373497363807169367970911876617313397285068576493096488004377084323818850114755604760125839822507509415157542756096546806277545490155000022421725294554187580892252465195583482785115399367254410668371719844689011630922602770405353441444037339598335129495044635306640817221836096430476957135553938057977756130071890746586116737120298087048667157804917043339614030666727750539123748456604662060100163708804061374457468599619969836753872796328010393875188718077988113631275345728178141738309217425150374665277508633835358275589852149524832093152398537647167881990808216618861703144479947643654755039191491855420701635604139900547705634570773665096330837207316533009514035655178065582535663273745743668395061417236275332581448565638323061723121641444103156265907817254051426661939125323320928942861832399039514714587790904665412680903715554519019806769228114073830877115345584676248886305541576216553676200477827986161079441394147297388792080942045193921460017235770509137609572394627302131768035201873299119325547768116978613851718056470225806035205607019300507934700235245420905785843493297387154634997132510801452493890086470804243089847141542961498661928151784356098347006995226001774939225856957997641764883188515597432907111018137600607979280231828164969653614442706235128087012554463439902053495434508468664266140809315411421010209684402034472201158162725737929620464008335978969866208787525158643607724037341747162440557860369434673014474979680021516533106270992432281757068033639818555874751193370173874032393111088868201140730678914525463373611965287290951176848159045132613838604007171665829513326305386651655350150037567747303331955430540711103016086971121792986449716678480441986254705302873942213224950459429561832174510535496763891341515256357233400440543104052775016490202017815041338965072126759866605812742858143395045898742513520756075107561771658024938263012024394513580113506104585205471300290937176948184545211798938630125451448649771289661298255057423615505295173218718550694017526569243785759807271898103471873767364947604872346417261215502112403257161304355407309637309118104920702462438116789045383556373121983083010679675647171434462887225626808755911901340614919261623554982666320667862599646682941473419414046612359014536964197413239155249514503937128984308770956916009629720594495540544882002690446806216025589200802173458877808495527158661502944219580339738492784531329835864737230869030342031830519269577088046899191549066208062927572019514631173285796215561637374146602203668998754967979978470104468832405287039217624324795164564049924804197930652034411546123955404397087554932412039669254142270022760231594215263099003248016973823038079959051409916196042441900791588047864055171753920734467484569148820939556673797111985985017638494943386296353923712108239876157886869089334297523136972443927127314263714423753149394395513058286851400426138576022634056599138525860648730548754495519453742879997346726498126234735788442638335319931532869441995234966098206826135229199454624393628095586108558123054806198159423058702064808521385361495473906078134278189826506340817054201420104088970631191369780238242287038151741236601829481114684542897137699814548220893603653705006430581461143473882602681880738107136441583714534905794697257898525240946486326824802719579562950869786762918734240193556292589686623103271023559231206708949791469742853253275405914817040629943519349991440508272892908666204168097446734019329552977373923273821078804801850191634557890762989679653049329039638007834966399065245235944065183224354519685175798659613522985413547942362698464438123093964098560497435969564917519825819164309999440084231591106743210059767961336902844361220583879977546303534227880566789338371174426510461913745374021966080417158709409713019576504948672674934025711665593437225630671982560784916860268253050153835564205012158034072977676164909722998318194743147079067767875176905132239188979087160464043379617446296065307474928810771020646627462448520626904309464494566571269520275447102636810683861151524818141608076142561038435471711677855136219172276038315820213770998620148228653220411541220812746589606891770635530772363950549280011409873075709144764700088924583520704025929011524034479346590198270015176399681166377608151657806597049586921394495207156366804176412907494828602769599175716145929154966925343093216890126616629293116489310395647525490851612210768863583678699018780491417158354003217403699023149959404432206188293516761052353447367073249088935678566236458029757722021871645135928908442672659370874495745291144583568100703210643375918131365987271058945155138381918235231065155026773156325605174582449636977411154731332957351881949941655698722582860400450160535705405714313323392596573506554864336280542063679861250665989777070405714648891860500466158323649535332521621291769235584679448583438172267038949691067143493779602663218549016164897727279935873481100179086948893700116652061653478545746916681806892951082922891527333472632978144022447132474075730427383700456822666186945966377290695953060357948211529139467982552520725597891304253316631538890274878094748187030048174144185780068704986922366027010465184830814866884094099364914487086189141581925731719974166646633200790857839388860983235802178074930944519702594312912418964139533155893143572365640401840024396748452450243531035382163451022389844275340379503772417301668746425727652836833548712139125891232232789993376072948466732184610072638057493613090083988868517900328191125276843781503317943266628287695016403061735823744052781515625231967496485545348156087554280335013999205480227586903690889906668279667799865104885566192309891357927013551403792801870016423630741862961598156301301751696534883258843202752021886429517362964582097599253841209993094608203466575357853269967126334407152977365076401614311442677131596504600956516386336790058690388951821682347293518072897304854575672012012207462882082732406437410197001175901857052884790637186927249637518069570872579697105373148301497747794189778361462209300643892548036952816128899529942480804803271290122070180276915997556651458180703015041404933668621795318180048759714714165778894657518849233345103888827708641282982273989701007699196116896124213310560447465296793053230081744580373487314867455012601626958839802502430480865748024134618113635748966681361790174877509823369860514109072810693019310700384728827763379556281439785822140313788252048605785278467734513692096509829230828844802149035877440337545155828436688295683745049966115464685572615679748038197694708719172025506985808836529784679340629795846871879380865508666127764505228374141737803756410376664093365188487604752914637293937073678094210890158807388112610721562201973540057406830903032853626310226904872325304959715658961578709510329375770242797289845134804528658249237613001527283066698756205638886339687455405925217916752188553432480560213858744846360840377092503822433843738278116871595149472305733676221192615772771668242950238242224682669168647392568039121979170664566117584524719193494756217792489829821287876798097279275594143833891419937657431534016525279502901614769070908128845433978523839380928960838238258126005799319443841951804214923231405523066491667026535705321934504285990885182069195202550688453010118753552280439230802819686719615934205648804026490468904807644673198211062873959912635847625012101698794447233888306810729178052771617827195060249823996523030604837348720506253519881138591462337581409786666935203628179048121519427671373968511522380131482697394431934403833957807672415830271202128117677520527827786466563444630994753724791579384257108071616471598250212040583778615292948199605939080339733116055900080284711152339199061302960740408431137248459085046501188990307786264810313220758955249419683301538349698688364485249300713695219728755191716244377903001501788650246714791851302050766847821979312649863152613517190789731533072611985976588843733886737683102578696848993020177737496446852904714643927830278884136676712177585859617097088386373222650655493158761481370319272991011654651218898398459090770342987860994011980479499842038355155331989967147275213076162758468844087983061403605827559221501457635927207907509151344621312151979784877033465400469485931423046369738236235396143722080116541048523421209585170208872503707145681747122619146340345350155940903295658363020162771607935976482338260436610284676189660291633366034230879933419563575490346169585188260836309929719929927598657849659857024305263466473404009654742927869288462136715779492713652847063370166982754352669023058118133493107664244538306325179630717251755919584345456197960249270517254385324659521753278040580543830762070357035798730216356727007489609693314624601663686946969186461850194646204812804988236305404465773711354208213470265769643523915867136889763013198395975111534937926138055282107556228969405600772350891980574498606540908187732816514781417503506537386509652972871663363960196971512150437778041980526831220272173626890409124758100744119558881251803811438509653596901225180156252360334453212281226988437311626546335533765682392551704826917249547260470046681853164005536032744782804125914265907686068945452534864709750001566026852610519269569366450208253556391182873759346562071966429752031269879219541705668939507560486509613778142907085403177564534713101527465503430273883575840027020130745086993694761165689266024630133625085801140947451980867386626002699564645326656433199940092292127704097434343244347597602167500193899545447392269385539542557057863755393614986889650436944297303185270331206727077281981809075751645049687297896409551779099129285826019924919463211523450293384248128563644806770888588831606322888481255795459208704280485121779218517118929821426740555205100642165877303035481282345781840756422570460609228859304878474427575690240665361996612691725448819123429815566363797214901972998485023821162314712643395323170621888615821263248726485214285424483797748447803244460384152166578300095768347849536694988945698762053278742075067120622655995889417299581708385119614602026942576019030529397264180152425766873445431520743384182599014446639916758316671167105450745983302644402497788650172191598219850157059321894804547569739132128941143567831526489600458251274144783810609029752738798991731720179298480278148449022699041016173307097543219033634524525707249241616670087396640280684221546365459876056269083265392901712640823733041975588843159718610733782167409027648549538415240225046475000213929883154983307219135507046841920874264227439033087647292965976682196580986022352478540307297740947557489623986255346523934805863556127503549268380627616011701438315316777750326251672948994128184827451148905568112092714779589159594785785071747920103221015309486369348294125271960512162339300537872527808989850312795875327900934155894967179961541882239896735787523848742055636979588698312955333472517449129102429084530525192203035739276815725894128015333729463432404991747141623829281293890227141385423368063928200106603860443188246068958811901702071649335022782748238186875000844542198181979405731860302859754883147599201520199882903477654825117360030513829236093127454547464069183275766763129952755291333505353905675919535384298151194042019875873401770047725013772407882173233588802293365446817988256070923820256058203847171913889601738868900545910003125790597099135149118941366556106723077219753971809035068598068387725256370815369931004998563427914043450554161583898122962249813391896986408566816940088067918440837976649661838518361302321264341194341736420120076665217586975412294194506469145184805915592133882261698897180017711705871522127879000764697571269701857189545390396851234983060234727968585110783919665837664591222395580871352176992835841924410929224083707114051267988185377213711670699688122510812242312226838473952773661210577460204411343717396444924378227249965135835629005668899025371615350974806292352561249789004482894460121835818710284225603598098596816857389996006683807964758603769751919672594894279007799778127795750190105789064920689926201630100681151612061784690993346479785919309445717378284202445303519444860398647980367586915896909804743119703842750669763850782796421984540159078824679415323592067116387464898269871388396019415540180951555438135755950569533374433577550352714310764266333068661374298872634363135338521548537410942850454243756193282868519089108568451696258896595661434826982703254750314024024073931894287129540103202753605979629992936264643994209855470149532879305926671729638001200602805306989171685546886603242136945223859733340562018666141289578918284037256476604027600552551361241198300167516856427666499894417012875600014346154692284443090987250976780938050925444569945025534004161924057421636407965095537252131328399962875058144354274886326053705460248641272482480670369660857058532454496277392744764903244013654827397353692209178246236554684801458158640771666836680370536592031520025712908849610746041004481217268349727300209347468637669772650188413596881113590296845823656696574300919437310101230334381953381350787677769006373356009735109602142256432015278476448647847693138129583937001623440331727496543748977838714553379130685645180748165234251716597875665612349161723427025010470824452648600975615397770217026609505440856246573125792502211678018268811639874395631608051531323583019083310343363211586439684968451562516135040363857002616799629115546392350466220013366926162736766870395880658570687193879354693728090087037991980630871573333176348134659401031725237771673703637140184903156139149772483764023493374207078201337171402153636483087079051891698831620733254627886105741790736896927103537572465057220329596826541892751600081837195680158588728186601946622060296744698669600751040186438316519402549059710367336532008332387774193026181880218075327243169913616620275736951425277136898491505328166662281665469958523613040241807450416372560046135085551749439492438006450047957773001389083942674000073133290730970937055775367205246120734643604238283319114861617338156486370996924051182941161784423129372565764131546714012906616620388072845145263369666349873858014790459725759785520459480170213978966522369253334106661836941986786005497927726521787494799635925127298279311994398526151881678434159723834580972857319432427439128005893315226731914025350612772874272553238923750651032419290748030172004309964465848166983426852653097628123588387657161608409390918819410353788909325180330913498348265999016190415874280079034525954462904093990480501413148972546380059428330120388951456530075608044757097367581916031475855712596266311752349680085516458842010729844047699002701070958987756516727905944370116028966819703304157219278135262645745307618240410774285633855035837439021501743045492331941186700272241864198518210245094761606766685596147046773089979434405151184363731346719921968850585883534874814708846362604528263959619075709184279797206430903426912514036416227918994099006364400258859557310100549670067489291467439260153708119243201383538024354235713751171956417504355214652481129847152027725506417866066601236123440994273449409176174005574812375343210776704200409043227451655018756452334010567726359476723864311363545166178949275069861228090736848465986287857979107397821264857295899547790805138707445690874946643411857700454342080356479676557749285838645877992673679868186929830843524016259193349737645918489496879221971422888344367659790080913051414875998912595713253223124631686861600168263205731026727530532792533247933400749901282941817775084433395476522192602497475393143821576414686643203010380833255477052419481471282777234582232008377735632769747827299791661994744526682913248906413663030116112671433035125097512867077939769602158515456345678645226648964880109501504473359766942011527915282311371178724936045014059334351034518361799938894151626543551974622353766013591213740590911062744920245126671612520772138261134533948445498903097905977786136831090579189785574588806517721234167311651552169992097543348439509923336359531163103281976674830133892177970427123732408825923830017638833530115997525963297052297373793475229261518001961084955077773043296229498104651922485031083503232074053295118772935684870219049958097159565525905597853579258400466146849657136346118332197103779154231220086870129184744223456714480881327991626413705418980130702282369031863106367820598853827623317514888584085464662381611183278562915851348377635403055180483070905323674769515588339770338587067466028397554940647372676730996162798202536018531382052981375442052570070415151717267023277884977473932140753959630899354654276685989162295352044532289720264389053288832682457170296902325484278913636073217362682665083553145577475858081004779197441485576535928507888128154533196870000155582692489264128822334563255477874528664370778158583728114615462193652553831846557988925595252224064510592373949000925577066861250554183616857790826834826308421217639123974886003127256407908824775886194820398567175116890807909748759716208454101017809697470971536271148730331775474751457375978039771203386182155520926632825366830585441780674858624941972609300121030881795278385999542308982557757550604257174878236531231912643010607186022807341478066919027443310991487597266699162522283839758392894186466785526845716604101855542034238834873542309919516025075504692952805055700381817829615860472199321039352288391196692155035983650838170845942547367652292727672386414697829532013105905187152820768406507795738080051448741402503120926256494304880347197993637315438902872315618215417226636815088610414852945357773108337443824359881820589876396646668182501073863751750582154558597293846805805012246445991286713303417697001550391644224132994354562719781984231592434758217705715052857008696819885974953105519144218891664070460138493761872928014342557722368287689989398216409065852757446653965828730658493975578557262568534362325447208327560105422278906954602305890593973929134875981372291700733423110145928817063684253573381262598915822632859606362402805005677219441663980454770454306854951655931116415748050549367882720051913487618592041338713763939445235116987331345790387004140048241086431182083854911647514512545375030228084119763998166385243598821371183092284269932367706384784492840935247869929932562360451620732678371674942218899120753072899580765363123692206904347614084981394679646042766674631608229624081750208208290197596402184115730399352283511189717826669491878424610408422220408756336452380316935084421252415394097080337893018091011263445430093676229268981389246379007091462475849513598440240817643817540327817371059509241352935388645765427387790607903756099793683721012433877730839019315726758775225077524233950852836468659028533548035194960454301616160814055228485042686479027798726890168770808109514714586459828221468939727774949020374673637004571872046541269497835023269879278909943669354487996740416693342479787289147915160448412648041424250625565119962081632741949103309787203516188575105559323039687355357334779507886248597562534823471178885790139365245038325850393045186184453134894324846237417148594725788714778642737787650596736603870722054364712206003011857472440885843526212647400337093327678715190336678090512550341980659800324843695816242624461878573917837174301934710708386367362420362768792098177626221489037653896209322166185903926951414519649535179378482072128641245488983592828258356198376207854579653465069811463522632645154479036663872529665040536440054138577705046449329736128219127351237608149163534570658664101164036916129798847754978474715028148462104335061066958575337007554959348184689032641903884515720529549375261951095258642618201788558661667853081811254641855630301742295650658301256724264732371339314847801814235921157055273278523366297931297810022265496680636285835410221251406012902955516190192934851635806194736367286988414860853958208205508156459731163661917411610463632426380168973698075022618257740439413420368035982596248329742839227141526102414634176841379381521294907284982975455470206705080363268722490725230480628044032794071992967012001412510147953338855333354781294366224579728918375883985323388139028386294998694503267042592339398388575720303640497502584647093954077953770539232465556722790235694301402965309592372507009437322626103881323722883490933001182985498157916158158072846937843095738157057956696227020266355663899659061511495480039623640176816703485819516805576813847375530053285801930893827676892265614247054670725459300718207814715457663215099652028213879232624830573292347304658407165414449131946672983453449275214308972586379477332336074131214876192039369743457441924045131170480777405216527184665472727604039207655840588129423253961503037929405799487132914597068207607919251176391410116933233770002283267773250048748817428492824247377367638669084728891936149768187978015336517100386568964637437018712583951926052439705471020391388154558901433362474020041526550722619642514791702937714230680408993485262214602266014106434709410280930894137250336611728559723874160413720020109150392872912102224750361998201676951908839530075916752348349434355968069897357530635580874546773723596457809178058605305263682402364684559767749142420685068404114510654189958647172704132277560584299642416660968876015468981034756380030444142285981652164864129461802006285471463835545940780182095459578709495276520469905138804822574234041640743443966460425921298305660547462615555862594233780709610125544657515159445409274021805742905852120253573318578314649125684106700043970403124131842641050735748078043703703911229569129331507978320663271079369215158587245967439516910707720256566784848068056934305578893980394209154560528678362328953258760839646411603150703871325434927491497587642808244881030868237000614516847227158748670748363914634280344289569567714737787466856499373009109847065038822438267511254359645504837394512722076359146645225887267898173634720177437135448641015529671424411765040882454445758443024935415396476268620311995868261040826385741031900522749893447469217952751618095563610598056640889842583710204956765028852818919361522423788972459736870126475974128295676429480945908834004302027669346462455820570966754881516908511558131779229352506710329819298280791656117715349045140674898130297290855836956529978239121015340199980632967734661248489168677536965972631613182602618013343900191604505668545143370870729638536585364264450334471028023331446077509154199227748403522664157294234625588612192280160589731690922281880142199395406546549368006356352090418564642912388517767539358634799536066017760357802972135640728954147310881584675947971316557566260895894076534893217619840342398527756149730897786112743375181648912712388814531854573017176108901470999612520132407856120842939041846964400034810987449028978987220010516230400770879033034008167762836975886549796714905151720141776733616872623916836785483778842941933728870745107443876665484907390412740740235301816675127149807926213771982446080757284965522262387555662046292322232053065273316936833375356235565779323546627357738631799954499795876003458486695784707034707180831233737338507031913101636875749085239399640788239569176036593505714787772076205839907674842312163496949856232985398584863264710963450041436782541628280537004315745522622629911839631130233367251729183221336666828649095040307858394093850461132083923106989884295334963461778326614002977894731003535387288205967457879631972580497733534096896790773384751950832538249037696409630389022526444799195943252505891412211917025886345576015748899325846892999165144003548154026879646084878895219386979183380708560072882060625046466454421467514642103611691395729092057783747944883820761114387265871148998174862533720570040359318411563103194722907644378072954104138342340696308267120092279541063664681636683542779108840880014725161221592435560040015728085085212545042420088052768600000002706066488049618244652325042610969768113601687006801429880838631178786431188009974245734557488832564744435015089897633241016994708818373937413927493907230417565087788537683315479401601800100413808762203893728251397041000330745670189892237669187009981675303982182133769832861476934824759164420684907797151810777203934809327995640292371105005207755426645430414955182447774523960551880504521332852491012900099526206426318505373999144276150822666276014229537342301475597077453488347589637209399439686674063915643547693026113526598717433695959055935407944267248525365175387301007049677475924811554831372022858211511781136548247040561507119871585799657714383955892687680346160334912572757274082348912612793981639570998296399043187829391762664655339094035577657827052576367986253359701513558239869155748619606684991457092106636957787114197109847435694048897563651065243564109404391488307604823578444182143604299431245431851113567069086355872696294964764873424743244531396604747403605969839365096177837752053572422767669379605207337662600667224901566046358363645172247843780073658811299005404905154277845045188197939637147274399611960575503531758705577905904920898063602196742041389007854935362718874335643833937649646657482164020959050704338008862469865245229559225246111802082463417030191530222375029802987541974310531530793741943128978643926259534360398719220185625583220431566854007138524983723515183763162977457193822758417694680392525856106642934661393430973148395833838358456436466257712790394641896656561310477804069259290298716498323773967509021241288631942173267124273105756733890476344746302151819252668025314379838754055201469423280455525770731245137642292588965124247346527727130745015548672822604633075946915155144338100543225014712644378186250693334714375895672951513840015336324028896065151868956601500495769797299122102944531905883957876082150073782217521620041569931178386399932018004127370990451457231865984021820127694786132744578484439571355966004373935021420528285069241937801533583178364141348441498978998615259007933539716915485753218931854691339740548856631845689417686804197023734992165889925121129890350048286998135316309895358553267671236642081000902925076309203400289431304899272270137664442447946801399478257873431659812456584213200279219812685612153123387056911980740065824931351292827239962896034736466662574126863952778209797120895481336123658984224406020703673550473017910780725155292164530073192430743321737557091114554151056318336314967818373337212404047745460728637885557934791886657739896369359583129546790092896043917445532434467822050576128012127614666818117820211707244211276251778966014289788357373887344099148182612268688055678498665239532167630537262945019208074887531841989770207855513563928292316165635847251086523187621349168231948004309064757550267952208572397013823067396622789269005844739826035888070732373087356801895120440388277012181716778109955435922019725621150736866457073177181550074391374251346655840227718246661610089687213306744804365510119444731149283153825208589146114375515534455034851634397236618933223193074475488245842341144447179608668428994500720157302262660311719615972087617825537733461905590308851077360048728464940708588375889565459092802365584655949866045779703643263128237076652095291929644771242178906872773168401403467163069373464787094849965163380256809228372128977238100143709114101367913162037792542207585007030653646680711387793241707268323452336254694522423587870144832437516124497664372739159865804812444605665660006743834414850087201146238749480368762420452113338286722175038336597782365886017634791628532923198992910476234660762258619877245626919027429016875619783697039823768494939596463331765517050791081127186185556447243239555645487204158325300818432960531300592646718938116094546545760065456146011805365083587704273596530401296710548458687450251919144448325469831931440083835740965122203247833705898526789977377433023925180512974987644355787877708890486367232398021196265649250407981890919022755223200361673358065961507669666136352280811321227819333162276342071473993855890355647074575889420771806500376727699855582679422984204023589866968993901579797194993033187639385655869370789461683253922090627606008051957897434906809307110209607795119488367087964542746137299377559871095075741902777098142183112510182570260711126728506861574430589905074053892200205385693528606185821408969534176354667160210737028711018097683334764668176673769703373887764735387870122083985815373136338443984023858462647778747242265971764613991711556716034881856791870857302091698479825027257641611382867655586670413723827884619776661521947658353303393749508862819797345312395048089161772608210291629519196831332465800839690760799428169814670219493077861256039936323890107830162925711257575789385359986239152340802119026806827790352600448418481715784309041969908013361682721146775566666894446163145832099031459734490635106603787318816305244122245572923532844646831421299750309629283642435147882727049022138038642761441527980952485878424734798363655246237898011832683029393139200255357556017240962232158803202893478600453969312080884078844096291553720773545884791732171941698069576438476564086222769573999168226938854430558014074593864442807305767228597021431633729836259316070091540721382812910862272049054889446904196752605289651137646472053209882700882391636431069007729590693802256031828123822409117840652241289641638579541938402048164183126559343283683871796455055600208231214623158131836012394844693440966326386087650394682824513335682931440725713840476555227473166788509586171123084340890514581506201129558013090220329259644109850899821847015264260584285936017648183236172080673720879066618968624730636146771989270794239748491713035416677717084011578976560433089666160171170826713506328577787732487027991155363351128956498189001412735886491396680486584554224933320714435069445235984438812419638767400433775108873189337851557738211295401852372679607626590889132071551207179038455385967179682830875830415516652812902408056515759697650663021655824353957158314637387911946146092061485369074735221371026268765499498478170809768585965285928435752559339799698127248485559011578867597700220577872748180241607716865498930525893644369303114470559088745084592100513987965209946451470088194277739782128056260758632345780231641418832627335343054103221321061773895900511482101154502618461264063350404901955195344986033396540685542873133733065886876446245467318472165833098748173875531075074747545232920560781343977871867445288263204258182147689078940373415914031407364296120997218001294940480813681897360184159233984197825201362907150806073286410611425191186465171191297827602248714493103400375633192528740747733506813800265660288600369773467705879602017729018807271061705568613697856813247222579306714822349489166030386116888816150475304553583201912729120777984157929695032289088396821919066293356880430398809362583729255641109609530190014592653836395390107991382769200741196715459258277610111282620283740136202308708060577604584609262476376284429537079465498198821355631653118381214284427893501664531331795527299716690503848334108690071985767682325721857339466913362691024819472398259409150847319689244832057178681159663945162773901918750037687090170223226432288956458987596583437609973593278314453158185204216266813525868461990669753569786104502168604673798648431358359229444042849671502402219164641453720612790224641806288122474217025201192843024160270518810016304031194114695293209172562943498856084479427331150937884844863837349918375031267232778738353755426263186570926330480492259083119903916459890852473201362369653892741339270405758670758226479592906723664676873920026676237151609139478688500599720894065235691063634166717755032184174522426178152351493941071427253084869300436249324467681295009778412330439999116303570382184498693880265101276211698909601217646024683905025519844531513008823788507880858861761198494657673453485343981292706208025472601271997809692114164389565009884876865074523914219783835193482071042475520369493704128386601205449416495069911995671216602916655864839113953505075401892070858708662277772504623491082051107482882887142469538165158493989920207409839625900426824155593418771385531319653598141385527536041138756678357878527713036869642710190719590473605104405847068924764885111855677280407240660083524405811019945413130433275534658515920895604041982924968206164728809891251051688652596895527373198421068431565503379758389916257247001029401032045380605992530739091854257820988060827232153413572292515567558079435863877789734873684430232728756307137831240162023866635877039235032349816019113102697298942460450351542222656492440984605365896437737754409530638737311576957554043158141758951128856769022623695698332996831380286219051552910173612692955579304784480517727559530715167449398590432757391646746134059462524906951735975151720393320470265392727523012203607730867124644700478286761461137511687040821029589642915891015746272130070995548376609964432893775143051265224856745380966564216091053149646155117671539043432850304527234953124776555694964781477236523080228591151565980456439902950919858349162578690713489505334965770376847698874171020964931126714647477250098053196814268889868668818800659216515437329301127365262512060906136014905761734690690151493602375014280117528339503558508587697410389630257405943763576647878389426046413326446414595973686515564906605647434129130464261042747081749345916125250535043405306008582145521363716884083197970555731009608616203522840423133867211696470219748197023319467236752994792615549503338530825821051544861228294020711322729990584635103383513769675953676489808698983789272929617585176338538138174779959359520057287433159960767348723352759602678724991064829142933021607997960581484825819944741226913102363047334004713125845645098268669351505959464464682679269531291585983086261566745347908776920602533095994653129608854903592148786957359159893951083708263852379610303315909806741913260677678585043727374612386383672115442769180174818627460602483703347870866082949757298702677188543275996274675126251699257155672595263966572305985019705715329656963717233841110719451104888143929765637318138601194335221930659690177058594941055782207648120964166139444199858892835271451020374719475751257083731643915736617899232347023205487763650688671713085746148526137419354950798503340380359606656936512210239124711721454654591500784555093204519309537906481101673365254370204776936694053410148371304996415470592517477049942363243092247861682440468560945780997221668700502442094226832628352169947378968827561137830645976339191310519030568037687126108586564405202745720352429942884623271893744411153647364782197774106855400288796742333357807077057610568734437427158616011810087693784496820255921208814854590845064468169609842641592656015665711863042635117688157292665451152739947581751361115229524913220827730013895481477735907412596984307305550674444614889985079154753283098095985563764470937951415147904940000451186277146991042880071694877812204231235842549410672342169144804139064709249605457722329020841718087333183892734272649368157816124584797921622307459764843491427203068078297793390297860172034791815466824884135329297233307988438349548432693753684163011240805296618468723569033158232289034503292595566898576763501872377647792381500274749975140531753914145694766061191363122600294474592555586520950127430083468981215064452537856560037637057076143501122066544643640154145153632525057997167545758679788054584896465818653381333395593689921763550188788432398623798646536759517069453681139747511417434757432624603394789670443077516320377354836124524947934101350001952812613162747735971679088179810930833552097464792451701036357076907221406714599648699329793823871521584170343060586443960071664737309868816425675960281639895387666160193426686947833435286154622415228103221304107508962373850792167869455497740977955734249511416222288351429226357592767967543877778550224769928769617838906631788523560045484756605791815720012300203590053896251035965331852133147056051767125019794846633521803473828145813501328265360853814847824566723385405297708499710757425293316793502823605658117437304079536212836993502870109941644922049983407294203548081574824579264307029019540644798029145880917834959818628291007695698080010651757820306644691303220108132216644336593038244304918265391086915350631649353975675394798566356556485660257627923621281753390948127699473268228080423323229202355961902444346105604150562841864600775641864766112768055923328697110487311684510492078287672713931745850221614029664938556973475434227060898757387799505457828824799046966373674605742708568684824683720179463894647565680097994764788841106834677167287947076336377080939218980884461124406133284646576673506902018400736709584500792492673609057922291743876126923875175388429293798322927445665286579955571812155655284457092865059261983587530688359025886655204110620705423724838068058151585163776278830074634871503868310852310248624821775270042209400847231406066355198172420592638139718168236919959940682589598182335463499269462850475946815768918355005511204610141528024003490061433181355173404092442135917706982612355378446736564569993020576163236935934143307115910837753902001558848094561288325287417955704060081974055555310174258098486949174379734247392565501956379913682530997333492911685878914651175101960755836858572382708306711068690699546859846620623497664095475359759742917309338725928178893760793610122010191402830666112970977416948346414832143445457360168633999103388235564891208755293056348021998512993291692542374274798786857559575382816403333073026880038969461077146086670061511128861992908189098749720085479134179124962979619638910781006376472443769525500772048924621578412632744508602002773127575205341178266803733586016906375883100499778164991591845802538190610877120193848951243353874218263077243473222201633063629855676318692290212768178729114988573817457380720420528096508329130947213780884145598357433565161992082758753284193511006111537689652001480544253942575961757860924364894196765361856920850517808981406364689972038248628209981833802581106800167534500318231346551481749633463988357178956136749354167149434743717992648265603216087255353747734962176317957220017460465297541810423755905430873528491509500949522029935043073819866259296834204435939290491651183664398243851664943642196555386286727548232400455199835440936795937007031656780894303615029692725523654523295321170420522948037069568912354738209239543907048475680068089471309266302617214729241770244982974071451064643765998670477183560786680591701389995161252491638713908685628664975315964294671796029533349337184182292071684317968176815420899422472493955925768419963970950773881379348668775843045506908965964996801899549378704140627583672433870685715525268095464839760951364145407448384473594113702709058632854678503351914924567889686432498897067780876445092364638978982715254814596529981097198434773007806625429698749499019253053348368879729764107200510248011423472681667344949613976092348075868616603314513615624518618328432681596636664651381505069726638887745924866400185558609512560906154745036854725114650722062324351189845963962668655238699196701146664411018674713806976046726914068569743594743086260434015730533261294290211999741942096789308289334757585559072589681846788690304525548966194029386505823171718965986374608377631445290604820355913246068531152320388512445151345943685784449028294562424864214584186622236207147540994062193155998247204247094619515536520850205798429804498806842511255598249946369006322351419663380137998693811523126728096357689787967916782140004326752610400555867670201475500979716262841727012199891182636458217080795139430420365984814777820746427730159536968855919478098255191518342815511021014738663528332354909277787774811557635865750473220714762807906826088407019159927864643457433623351080823974939867032862656197833856233655591974241830836907642178134110910583385854071577374150638250045343524420542186056543233306544899239801868036897600175669977062562062062495294775454063935769555552662261071327063996753491801519815480648255743287127573459973562274381880049243940939408571255863123818925594963961677987565770429417824159946193640225375471323559877717115138140601297704492214773208045311196264431469427027506411865066953320501150307841185730266180653317245087894196143700142344605243436258849888685213408342955489897031349460889082817485229593118910763836268192599427533837764292166014963636166626969120850745987417329336720387757454668939096177512042471024499146291700476887683830021028509556155034873047390282910443282142701227072890606726003495536033687107650748866175178387310049775593089486401215050310260116261026993016306746133643480980245134985682923519677041729616145413601273996080821631529418732109353319326603996068783968505450639757856870138072378933413509171896620290436320676019552073700776772144478363638168100719720915878880671467032185841164600785685799855830960298185922964608518217458619875137633412600548027833027848937794504194425810889569631467220331421590053400854130003367540724161890468323086295473973475599387610634451636058940091626108639105976780744148206577379800972036027813302899570004930154044456362338688622250111205091108782704175240363846603647762216089235696099829798791929904397436786679351348455417168181689185207216981333056735450231584477821010971266621001365230998999809066514331225802319564028874003707019739472006755296495826430242037508512755849139141134362969315359393635150977344794666618922293851846159959055087027086851413694360224441709644682433022978858909235619479478889321285476728472749773733102701177011272860341973753352962711043587345476660297625619876369574730806265260957367169263093385153754404370829790515837614753234939286474158376562603095062808526517632570680964705116053389982349603280235306721566388552163581407898443110187472927349582521994741547287317577795279690436827507606213738969267515080506139477135046111799195503099217816222703425363340834247477076266803001930551892490452572362867799851289036051502812022207149781414460407985286497538015498647078934816193037574480678304506603548172124989758901109310866065680493019323889983128471487712858565478891188939362774575227279782038030380465925158270830041262710244197396480738561091951668377348369057723750670321569722170270647627541372414467649623700539442084199911900525549661752489355570937575484280800204588158797388089232194778358996232337371204395479598906864371632149893353355172163416599147118669910719372138984091118127389904643621162856011619198259263417378317806604928174884867213898970528211554388605472344093909373818934157448359470522084689574666665908013056652192508874625789981204786591762721397270227819997446676094673905722493072266290613703203138186726966566392133567641855906369686110259320363634582734952154576350363605562077355436288340208120578994030019902954924084716939543351361329208805854304241625718493775807995490119825252269000709041931835391069848731611319941275934615746460612053652062816707436784365563408536510092831777580929249953233345162608507336273342544781769493419631599910950123740778430515449801683634605654446114325685002660174647428394055556308193509782515947377647555087050959657762073201233272108757335628934251115428817131674059991496128958090174626077855487521678107897365325513380139354480775383071646808571719987883972709213859869999651390664467831241079020459347079354362809605946384637952924138281611983254752910117738375226413643970630107099208950810681528264341345356718290287884724413121682959746094369503960768912569883510974773264010808799073698681087893491775317209416130443375479491038253316956273956873319985641660583690257259315077751200823835287483304853616672977820309265572703770127430599243918497030752855224245118332042756673151750617635752569419801834649254706415290354143116996175825078502911408546884024313316649659643483708462565463364124854334256642409445828451590852631357973664341602967920330996268847231664979036400152209411845343824915783407204705048999763018672260114629297921813480088467793975174004011615571234140065048483469508714335661397488144294810213683677689958836976414214289234179014708362703970609602322570092857332398753496560319131169604561759683802418887256930481294419506407688053387073489158443060081835282865360710320108356904438213101876626225774762983679365306382752670444738080314053267142118599939701193852970947412044938820286807240997078496559420729126351292474084415651019964325755029341471515722483136077787348069310126567601391726933656303936187027136458318041880707522654494561328903066216091655133268522315593852524314524223089675844835733931543828090443968568691331138149102425117285037787422193204813782172838814298578662294685454850564603039062281851292912427682005344083573277636502608316718264216130480263495170820603202937958027198930918072742569224755472317858417208620066905026044634698679548259203881402298696660898391279717037475084842297060527783593793845559068719677000233824381915312474107311249059618359520558441958569888853215841222375045569558763555086672203016045676841121036369170360892874318102809516808020991924640758156198413848763100631195478548089167290793128098208590633053599230387814243508256358679106303479067234704770882446433176601139897167655232854721828948496182171211716543905815932216692164265224185889470324818883095622415372751169613342364762061374511751541493718916534987911148714117629481094753914339719587945381194702891738984615228576924478720291815358230003925282678952335746373316480236279461682923592032294506880029585690809202356091779960558160949537707559423051970850126276876662207300299906634710263918078507520590541305256025519024748204134393729407081072498871875791191135103680512231198303238442680473008241850233565211158288970726455822211722285807391518051614904437319251181627288179825564571734331661893892012418553945382664994224035232805280759268952222984413099835113160873542035351866052053994840335558923082332753926109604181429207568271043928439738742306094120689140618115664793689087213326816462026791586762949418555254662571729374147542595017208089299743710284873357078198426375788675684041621753210764568263973796997625519934385537863984522017859059269257760560893208048841082058855319251489850240733651216321297225052178689812504016860530359166048125035760668720004688123903644063206140167172208162150397639559912298609083703129742875505757358220732798792552941201702858910936161376909685372684742938654113811205475413347497425215247625887763665984878255047879081262414850407717474615940776011583188289512015470712025577815777687671196586588875035195588159034871743286113156459183451655225658688139585249027132082008189170027514036043284116072212894061736976391162123519524021558560044118467424006934525920052064122532574243892742006490086990764349914992296099516299883418480053783563887160683970098561848723719520414116641347869447046873006840355849823335183254712655024683353686804243747076534627500282350841448714161661480500788381234058493507791491685695076727080982823249371873458285419138978150054914666265894917577087962611106631049299609762424715203893006466915732211992511053740154404563256459433753466860842291343203488856754812672891126937298632067190988743685701609906248493407561329096085172735492226940670302068093035353880258398372370553615532068316151953316240123016461820940972923497177080361141066393638244136681935901582256163136544502382885072878865195194710559013926363874699863237462884677599043956642115886112051731359767157210887991337682488333594764519040672515607350418752278558378534374200823845485718364939875230144380062985859914099300228827866614186734843030667416793813246446786526765855175747235428678648096409239396790449398939057144821659060723440202475083945364069241365276121213753104066612855216583872675813460386978120127174108260255941065457525129168862202872895568497162423790651339092541584214392246817396306157572901471090026697231797954631023100607551973891771087082417887176700545567970483527753148632068462570012053977752568848053239476480801111447627775703040410976385014078403258090633155779354608655296690065653661345973898083378740388490887207742917558924670577981660158111890162486501611407643398588868836833241072948548711447876198274661822686972038017058875232168528029346188227162027060203909821465153184532107961429769841202371597188879309561108538525220429087157943034284951686871673010539379742692374170910257989668708529352955236844553913500672558350011713518467815915622682164292618960042952790726988684500157029893114853732810255676614564358760589150542876373688255326489981064386298626284168537840495887584164123266784353256520360364308326595522601191734282703500801987404092705809970850580619397440912735824640231728404320909033289110392287017409991708372660579671972342374148488594961055234479319053376868156570698396627094851563270555960460843411262978875790220844752140341214526704271157916178349775190733779122948866546990631758014663065593451151981685387052867108835425786331954289499723577462658142553260072941150657742372578485498475467818617104161414844801988041028332965269044109482874542867784443318688967602976221403450147350730685741323139070544509652995727543460126499152173402120700550803040972008966261229667645297130551253652051650346217208958373050102698090226546432515396758001369872026911577387231723322128214109396741196624744526005647234425420777310505013681348230003592002176876498169805852127337095763210897834459406524757143795136172913294147316456207695245887066566224047191265383067568908035427415739663411695494870418295614189632209234348738245160049139314886532461443156863655058699834560931277273740289799545464117936810790376742166632590376994190026833936097970331265102410541742589856747459329596125562242824246904034716721612404341720262426967485899072646124495820399429798353720815437932822328750255113574250462284797335452250439448217244764631763673419475287243192423275875587504208089348844938681779745224864004674999881356816320555367521344800454814332695463464890104291881809474120834278967687730045703902945279899103492955074964409652838656783440558367071357003990281089234093041059345586934755519663782571985499043102919172915202215589890327479805236262116940832315123748505928625746631990977199120463211785996295908193262470432961050387335781039267160987345233853107745201837056423137971971737769582620154977841944999373097745980221346106925320290743988802471840792675571752419571875623724889393585289653587050906386453388426896541488230665152300004944695442856584830161886513306285113415968710291252191503208875393719317723201678796529243305298718185085595901567867013269112428808664611746815601423779959885824516444255446769860372611186430425961299476661877042316513627411614912886802962865488937386006717838647680457548069933114181160048186839606537554142661839778817449715974031642654099612407100224590268545116212342366280046249228464544397748948807678472019734290253290135920609863729893324359882475944743559213194982758716140055465887832490866176245661215430369359499026056668734824756020569306490735305982169015345889353364619412270735719641436797456548913732257157800267543547540277331482011433902606666484680369511575903436586178759721624005451380358638774053710323347699265665528010765940139011394110247088614764039428855128179094543636901712455036376090539467006994787901900109819204464058740260222317301189442022041381639386982353300811920479096231493873718127206939371117627883070986755365057261046215011973721839341514762619966166066394231692715908545442864670065440306295088797862216823533743034055707370447363883655324290194304739347970780843494654832555495547438704740056874053657953733567854791095148448858755335908787268448875716079131917724389293938052638292641198522641395940559888392566214516342110312058066699793732616293781972115623784490917899599897101694211355887862663286549579140455740360159903630102165119750084533910851023327964256762856861870273124587591683041952700863511966545600777820528192079674285699002737405366896276774275550632880564030322869208808942739387188270977260839843572994043940606777349849547456428268523559812546623066835814144545461579277031997011803793293789541254811770614053337424375020404036290497396250277609901951471620802943087975951866273708873038215156725133974233032411245472185394755619303153799864422529686970182416845812921638866644308570590747145297040470845189382357852095325033163076542168902583791501569616422466669431790943700951538610099699711446189089074537368471837210220594289237143018695387101313845532817213690998776328935938265870198759623522172147138642720197941512468928155623557931059530713478941591872916343893779974498890505786018330718588382513865709845611391916607473784587916574957318589177237096384079901669213685691908569516428683235345242661932939025410846517129683136102222303543934901563439774513632510125400622876453655087180966991015429092572396729470031753974605167879706942731705895414549742609317813095023300571035311203163222110744574729188335417705439410602938718125948525303617560131228318102312797800235553897552304497088741621406961022425570241428150860490613273571827391009891764574079003697365752003231031537154380881048453231616141464809111990097335190123496208111739562594335068844732088607764417537371245701262672819273240850969171460251646540815815065201642811442794487198444524994235102186713180337258109007137933654190401742248509454020784759937298086642320793629857243184185356317935050004347155407847201253477254292732205204557580990567798078878377413730717682290218521129736700417165948944995945413755764884345339499373611828527162673370685022176556929699479937918758156770438252946659491476698510128509615727697646964002325707645311335917209446390737947267772128418127120287459373724028730337031715097902166647532378927892808207996289676030542070258419030875328370792777211540363934392664387416350157591227377087808690505197759064832373384336178938519847406656990965217256299357050916954504028237869261945293737876990268414801880536977142567116806941989614425356584602165165630664508238699879180872474314167922576670244518915702141613179255578098973207707925470430836897825496185000461006541982321808865140545903756371839405942693896790742710968142258844284878295411562803017212633072746907261322579153127120024127651811265418302212379552430517061097257930792298612339897033722378264019727484492602887971420502674390836811301072397375557727277364826251227218026078251748794621318475972875752516138818322193729826506289079281599455401647064254315709712060692752687246296268585312778922826599380373050610579272949896461568170266896396509971541212182012091943281215198503904775352223796219397608837174476503122074302918349099506986926328710393813375075961775090533807020315811541992460044202767527728239603713851218387084248645910663446223757466146803564962635803580412194771095076897147234111283252330493588455288086769752776396484449405208998941984196367120329545798520797160390447626796188677577400899655382143451056185650164670525743372831409342522938168833726541974729045070507066108803715634140503199159845833866893843767859015832932569656098453061349320990592610763551678727292915560643339764434285173350881209462108536136192121392251818450906415395295571177063158199421504342794572259391397545630963809469867229465171000541558861809602723635476322749263109078809012515883516157802041315800623140046320381103682777028718719937115119017947325349113704735995472844258786675018821160926740361664755997829115948036676700331102268236702564335801928344162500271626649322829112348205934908843304547878603886441967870636077642179056585622321724758578462093908837651275370950258273534946725116669442684156221556207454724470793044695515214633540173657241833002444656921852713876038397819388200468943210565522610855216678476514117336307090100970108223874517276717600155941673458092515882899700923890964887075198387888205527609387503987235911673205320768370137016575087484691707196816183868517620965257378281126371260036864040220779133769247173162984141015238010537448549071656289896862674046641629393480405465810113854631290440293613691078463938221107853131609131908741520118545814066802989162613886091044455749922738512340582256654224573619778912776371344918148620619468039541527184139223429938607113176846963536407325052674827026185107695237657622442073690045060933482859009058469743399298724573109598663232454013059265749832790434802077596167932739085539624725181138953005947418729476129757373203355152096843357637071391703353619086920832251028272383170271350866805943712921043526999851343947185851217037099229055241925375274904106092245042800153577807305080409272914799871233433106237099362656157788494227925103226353296129841468818256080953696284169551216121300414361403581448871412700295410855191380573080655134784571931032287008714334982481259074109386770243102178173651362442829933333417861289303720899685725672716855636106415557186532774859682206530506015725973335101545705998704859400768289086465331648413134484921401597063921426682159293357788809401009122515161684545837049120248398269873182297735212567503481253356984254318412416809697481074944146352852938234457157628415889266938723715812065500888991562512305966218011160579541827165089904889655255965626456097056680884506067135212029364018735620263118662671870929132185478341670652310905652995901531040990430331551244985560559029144679585256535428285552520154277944374044768140767504150150413319218143950490488050039416639005093877780764122167593091732968078808937263391191166632268561080119803963776312173616844880863316455509529933315953873309297184452974494408407210902290275968850891481087924955644879498009266730976652578523358818597092269003232191943711871130979718412543535101384023338377969336914554481320549340212005185427497775873570943281521930960717801084742722577770886172137819815906849575512558876804175001191395833465764499849436948333211007009578495458370085583280293035226077226862131267944733847232995022207968415925147347774797836296905740192698726120894173038307124694388177306396750055122015094190184648577678282419671800309323702440909541955085540430476036852907455875716543910381949842001769288232010999166682724937181427239996428814458549383840119167554153090707766708499205360204791487336752689790032845524216311589680846572512189467872282051043252783314779229161048013147935095463814615389569575263253986787577340181891723716425650159693788499178682491351780834816667950532008953209143216337388690403158511653441656727000468641715961468836915073128602567618928071854285176541946322406948574885603283383153133296380883649272892606424022802300086355686089575067972393438076951965946357847560700159508182599984616754351747997727481043175558558832441446869239306403987025306054813407995969659877857154624494212938521747884484044031248611001747578930274374482363059270075599922072751543638851823014482058204369851036852827350783947378515507344579979015371183178956413650386445918014242465809923486603185835775265522205771308556903360674160553939721425156489919415243708616831917061990359162812169919417277226799972316050294451231788689077326874488696945187402733222563187555465567350240492428682811824275054050914950338656917939839047159855869513237710949836380646653180276404849934142388927762862132235436435068136970549587936868496643305990453396945988111086570527180253363568741835219228118963147183875736003043201856594831013166221551071407997518162946683963347037225519666371793056622032422072674482868789152889972865171222477163072639494633757496947726093517192304015043069352757631308036699192441097248080490524567185026648286697992637103979468276735702291212952694156633503501319144031530422418815564569576852441252096307257189365472088978846640569329049592936289914020166585831750152007155784602635628209418267636914318515322963373545400466790358565847198413704227849743021020154357021902411758512331059569756666446018217317077278236214276415698002423511915283481625728802377663402181637707699906982939314304901740624278114913933364362341788591930538522368197373858653407245932971137911221111163902602172927523429954357762824502909974107186976908151133368395242932377334920690448831722011691160668298662673711355333549026409249648166716914230834044962331720030288789418558688471945775155641831196451846804695047301815023311298952913378451526676919991926810221402904743560178816997280091043216967468135183527531420585486019370739278938667889754781310445366826987606012715528556282376697467279312611561194896142356483299599898417994645905584700273280609619905149337729853382465739549226873260783852239187274835593570486017540366094287223964245522923731711776034647415477113858088415593089620593189766499815251556560787967714279458242737969598518930050727565219379844340288259512672994500841482539577173923810552108003672045965564962710438761580829650020693208718580962949757998016444890389961604714522011971076211399052830889868489013464325008083970373796814085505306795023185576252605061126688462455585167576509623086560544677961586392612671927905849264541958672334574538714541620619951159064815452824718136035798058826729551674034852385754636505003980669845243936482670589573099676702167669608364703190852149074551785007187577290055961792637822093463764385864229225762894020189918483100529533210163551425435773588341719240561900526231138941942832985339766280563362972258026171506834077349146012347997292359698638579881644240465134049829143380594542239774027209323405960692251617618470416695584152636557072378090753779285524288020603906750003211996124087305364378252405620258934064099202727977381720336254764740046187328076943836922590641250162131098169479115437635701553427677232201962538224490352901200159531385694908572566806677963293227323335168045211983268310453108095567850936428091723285840366015365614628117188152156484019977077731242971234970873114807768829480083844765667337769982438784970079455452154971372696593466896865341185099416644451388731300396523946676230837517985504039710933111664509510131457464779733948657140130428997952325529225313276269633688215935295694701484110338207126771622424926309578367568331759961815646423764440772374261816562345845490356838455216885782349213509164336228939469397576779596568496562554329834141319381325193538838099932993781570857934818133844197418753412510404464178316526092202792617340622898724848189037008861101654419775788874225061933558927379657003444313230244932570312263963419102766366966218042023143894802293551865871100203878225921981659212313283456592672261422961677311872397546895572910321166900358258699552110416869602227655661804601122354289536584991108259805337547279876850812558823472780061972986121608587819701101529406121483853006182740524334165710775043154486138715403714004599028059823554779846936866139745529324180295584083218421022081032462571862457345933647413098477045936774326595922091968937525011542699440062358244246855934223226421425340996086615542743321286108672266112757132574321945114222760594465076706927535466791991774263731868771725713980178251228064951255118236708891953718096969115008861648308520885341198446051021667958767891666006389147785737533282788957537861296070517537903938451118119726013080973080612969716742705847260081127843572441666949505045397927023378526169687488286704522317815237621276041383712928104929666749188086695874691467570342755996190913562096659912335682050087675146944642422027959635790359665628970849061402663115760439134836945400426876208800708758928255584237928754089118925905986140898947353310685095939552623872722336313097784173382847814447038592946513031670005491462962159432390738074674837575502450828866805538155039196787160865035368284796080437937508179145458194836819066994235325040821855652334576488812263196933876779692821414402507706641583193757113839928763478190721780149854570469731520204711096292134593375654386053291571650902081972708493187212981918681689580294822632811187826161186876988159220152126519226112741297705104323985652215700246966756851994951769310750769286147388759025560767360222673113996102673905153534403847108362623991329340770326897027206787796889846972207690683060363129884027380146395586795321521102017056424220256012031215412841436475919478711978440597888005797482660415880458145929314276323244266265684588177280606616621474503315467722965141400402009337493223540830397593072492295177615733989634214038734073660906593184773163698999739268424526640086424031636523796265060559460366405032226258987304798331790113949758961770151768647444231734099201447994921331609820542303493563990504554986602066878448862453583966950911163538592435205602859132708984473369791269446742674902149546750538031050849226842902917846612058190636085836144534098826664561453195685697342220493523370461389560280331283547356309702163113288755151142056034185343252911558676680793310675847487011396664623063942666510475473983227554001058694333137027494945732175963235825908347712685627536311744717066089796198167751741999711379984212588042043849514810132074346640262358391095518103356060934377829068864292970892458678100773888209407319766616242491287607582274366267047907177240932706936218451515077127742480399237050732978818281490850011321255465435762042949507802565296144808709772075241296315694562135498865606240577098480845417083217735131174398284037738643356890148160654448355893926819690597049699780898901709346330613128364944534526531001900021747369366416970592993146465656013008257309156488298050121466693527889205566712432867703290073598220388195176789735095770618201629595308291492594332674532074791227548638525125947304551333971135574765062189399412470973501171474749262887015981013432546887701164771005141559228211009769258373792440459548150093052886995449804460891918028624888800475273164930170074350301728345816820275719060758452075583557013181023915219412146217762043607014625197350009375927456914695161035655509190239920665371849931453695668031226556107858145430358384010904958697922242171833472141151945745479779259176366416726020045970616204351097341844146951744508818408368012144433085684041559497606003658007774771273181431234137152619052652141826134362377644330883696585127895295055110612017862067558302988646608816978069851671341071084334331202197417586714289314099222896950063714573884189253337484969974924748606720007923637755753987232206557194615663381774038774613272904490329462774796410989952274494356255465590384674083933667207584670126751715950213237847131967432514668083265730729553458466083880589568598012531761167316475123869116317558734155348748602120758503395768087126803103628532707624222724778127414389587815412652916583151026788864172529065669588195615539526415206954184165146520566641101293111970254438580251936836699679290102478123737377098099391621233999191947793406913923291331062080701107504925497877580081756905690878791012512831028016932997748523145372779747338619920128817792148483499775430962970649923299563564396587238244603855855225769013158907854752173851997045863177055789791172930600019334870013827153897668601529877922016837786591546543478439856097063303283468896749372852505110734619326826016552239183167264690807056138256775809389652333700673397160939790418172384084342525790919225108999372108137361545128294364687894146422077554237003840304192417769664770117425218105835118910269389320959115237553659511809508930566514705584272786152427680000731855160731493095141063431877491179078722083455136898732402460860330034091684584656620010647522086006707979231487169964958211828336869601503244022506921824952552734655943231789327112843874604545988859469679990637433065364454682130243491878207188768042983779517459338963385031628597165004947595158414669646439803907439522304712330774676201624283835700370292798354259095674185191608583513854499978201563732917182901492557492621726923300227006271732049745077125598142618891731678254703416233354866583997362806249081709764546187284136152740618110792369409387982223257801307602595439908076397342182410633854191252926859778600302106264643709119259888940833192631395057173334218168326446542346423372286873274731751964112563895908447701023874106000488125843581138151970903338201266004886717382624376126033526448747101966288272293053904372485465870634411002921141761685025964086636401089715299926523148354965519391841537856462675500999991615325571013772178936425076382869363504634997967092512674188384548214674298243927299747426107636311343196316694770792056360511868465148559561988953394299210047217565707141642059181507662005621948522210742388030049177600870963670769995147611998869616800310292129934329245738021761096055788768285707839141605857042092113753715224105469446398989444110939098391882305202506620484296588665101643349103909732061659861514218940004707216365526443181985400249786749468426251660413711844115281569668823940145724798560905014145040964448722127032458495190658778221228555780011788040016770591841121736359891313577289677385243348707643359992585790751507619192487908441418647760374520450424371036703659261424322562621051737475835706076705339890376362169181767125434180581207402927175078942289127917921045154154421164639062645352478686589820188678981662798422329503510764054198233026862922639894893259574413713433428782843528404194704543211998200697910626294830848328786710566545932564316561325351179054088892339367593834180980356247230125049977705635416582418296052390912272433559243831396618366952039498340848691644328644974086185159832697858691649607574898496966516849665171473500809989004062970632306460632568768609751716271036279904654286386057407885064253543278530453353559689973811473777023655622969518988496474551689295788588859653929033960086613567512703664374132576115330277826665218140085377487941615668354960989152833940563883444029155664303045833113977632918640773395722866883377323244769246592310433893714729358072593334019841155477283317187597713632667728394729259906214351489655608900880812240626958374440778965561937317335948524236129520740300047787660138425942315792206518041398868533452311025385266228215119966231912877720857045964972306701317542261666909236466639962429576340493052107200823492096067295101711091438514310445878776746406205177375580066634022112486539170354339221027268707771580135916569593762630223709002295274837700963691085967789649947026641259996049797535607914361253313203295233407227221736582157418429100131256787387076280496303049186011065459280437726200976778959914222891370657882268544029755222450637320189511435332350425017234756022566779903296717088264852598648759558318421497496297312926856982422708459392866847405931097220804530752937134140885208303769719669340894320796378272136178155949466111942409807407245774007163840174000710321739676740550866682420910100786468048222521184672761615993801529834447534556471065535098137478325611598637622589015231228374049862826325816055666576886449874592403190780229929278547655845825843394133194939494773888968208925335749967307821209511547020442346334480928159393983197600608841250023488043032259621361173632826601021649176219545506273112734401190550665742544811824416923706413350353996744448268179572894737310845088933420572881353154675982007524140840579867387700291859418921029454474318188474061497053070527771232378242134348146314079272082796440438782341706735467860679956959194308782877928210947552488247120696953249672034235741655241296053691121314025150335135266548472336707711080561325437227111342444945804649777907564211991417781152347123951466890093021877984344582563717195020466887464882798562656790781233955421887796379397890661269031107899675050385327678610149256333828273206531756441354166391980964141358886473482074743232121288989020427368057638298798170296298661215520270406899548639346995507084713583961806206464997271514739440319166189260940531796236935691790964986799983885588887325993538738311688466096064291236155610982160670192815631111678857216430325696057627231038858277105978995228415411662205479033710041522915333991914404987280229248900083808146720617250354955099997989004982129351245069480131793450958229779471921384320178618213848358907137821719261262277968620248865265942973583700460052327739152475590413635281544366724714635436057328493489377401786320184947315615054169973042363398333891981927139791067099074779057325418165447360958306093201651303732883590216197988633267001455493137678354188700926034903402464409936743589776348396554062788992149485784971551576486836841813058011416313771113791963906046783423902751764569371648731703017483903389807468404137879091202789586357773551588499059462385586897005404892373781734302127627178100198124993356997871217027177611718009455983651268901529451969215661529502287663169886945735035546806345387818861210639155819970663203222044901037615723203444726948017414974560006535608724688633855554679565905116255519613816003166589113697402449794845194596925394082829943060780548847605518990242713746112549923797465762999139665806140658740665296726090252522620665988136231519934291711042630038037291022618573693494379617832613236239970226095731664886797684756446859199905889865739815504384873582192175738237115966606034334894131849078879004949529286281545307480887905205442628263291257084704447614233414097867416360641742478243394920334530275515102516785382262602877102430106633326489599029821504404468802080103699597447383996283058201433023467401063050388142787379599683250206998875785648142855013733677420334776975031753913382737796797156025349673834912301576343253990991067254446019130410367566036688556324329610694710512947299226475613290637263396106438676603439214883417517573652186447438553068336849883474207654241237306569916588495472518204343876651979968311049456416494207432547028407480647773994567341699179261958982195230646723123841776036818053571373801316170134825936507330464684658590748577319750635693818891158906262068022462016974278611799846856492968201028186074164418049888837347248439224271108451237779256763617704952949653040571897461134317792198363630540495847321054200999047626207974319571617267843361690616787368968529956801315963850349478341737165725140494730961661875943844809169421304730233763371686157451294448899023339001636573732693091800737589407843575180473497198886300039399953850381227190503790177077149906413261499590099857989109265138193617737612870729813052407624299291690024712939292479857282817802009176626196115973774662718740635593258004404253877158627605687537189420908405057353052053532455638388080814262728805705457030233838103713326327293405392866985767468257356902661128188409019970441961139438512493245979199157830255755565952861057086883072049990235119883646798011379034288166420452643000982361825699477935611947659195666102826402044771965721026403709019038432667245959985001104690673474665216803202160747832873566562863008302669673520442802893701555060752308425391086566656657239893079130488639419465870837824220655291806168713130133581390655026859281793828531123749723653702022045281706158101293605508126763447806447886675498518175012241762369147169030383198220857930786378202531065243148624637101059753370430487163520104392845026131733819905789001707319576791457660452954160440729756641506195312570253412089353159848121993133374432692523580785307070084706113748191802678039297872978326367882798390993263874671908912492550752267354757712045639764376292741444650089286982095853420619916289496987957262149003854079028489560620136975478512597573942721172524100189177916656433085585125454475166829499009405873188724661505470303327031813314958593280798962159919163391958569465264219379011896642054960627815326070787263900624284026201709519968498353150270776479655248018031753090524119938740913910000523537191347220667437049164393830067787704256207245114473120950530367960796869090250752084598219674488383006871216547880206802924788712757730115681848582269942933604752330523193087918568632795535196188523931525522279684945939830038641328580213401525763391165742226253656701600258981388323949833216456397671700963463289854384269258678207953393535718664091098450549488425493660640479844740336683409770474663617693867344856694396401935301819492711674495536197411317124577672392062979006331272056917977183244526317171666378026036000013628175610628523608749461971348814973182073064677044610780618676901143890064084180453119755355436322776811779047689691907335401999843388221812727714157398260062833791528518477676237638034621138112163434791737007061078400432595145169113471845895842812706909950832804519878806434707675217774793798873848879067883250442429650926715499654716241239180653622082580121739991714315468619280462221148861247473098543044608986365036587327785925544383140079854280053645120636283908416603958483872068137255712916976388343625860617124996739918976627883081453997423208321410365886703055851500987066576453121050517800107782664529672201667245703378416048605328247673696827543364041738635021355244788378795796150623549833016492093590803669776429800875459904198061271967011830289691339730033697121147701530121553034248726872978787682814248337855586582537058041718310701274163546981624085659450632293463113968638308371573158640290102740111014478109132955352122643477001725794387597491201673297666178826381743816052757694230003054647244693216488724565653421705015969822531154918787362534771985939173315593640153396188993917913828617038169802449538253667122639446822499858326411839104418254247550972976751786992399214464261569875521606167687446188187710650809588908839141987337818293458906835180617483643961346248923546155790556920826557188158820555281345164940577271905870021740575918627782617864599544862270404624532972056529349364253139858454969357529179129150791192740944475869878982026100778488591913058274145595124967246467840166581432428336339921843808576672426046346071087228890412208047587100309471863954502698867641334624362101828420134923139445286917524720078930081400923607316767897792485064787602805295005042081701703625774865051477282878603960034423732759812789061872922773472387882554160415820993723198177874398238494854150212906634896312645640730634829935149222047028834014605797869613182856070427556111109607076713938815343534624738495593414427765404346013372345264309712433092440122241299450713144055458810522402546584439292196086521334355862641160397461713765573970269507726092552740761217202786787514201741458953000203276771854591940735334652654773922838865046743262318466950869366391595580714036606117902686972806518129769005165755291272538945286225831703593101666288741076739227536396475140070075968443033056931788474166926577451879583314507816091901090334659655539796386344291025042443987746826028662932308210188495387389903897360853271223930147373145031689405567676995993510022987707753619448777285584250326584511523962659257340947146244207505141139590800509697859990142500974948770203274689482402064455247001235935163066838087041461780166714638380780395406271682041820862304286473994014898312885319594771745405259461814263853788263526466498902533950313466337423117766660876903419205124329107688476196542988263677640827717619213989553079410215026851565049377750343909013335633982232678836493002324145829873709598345646648427858456445038394001731172332611710114691642429630830517841696788567890023741407113525785467552439977996482130372683916586515012654067373330135295458886716753166774244857265065635675231765734609757977945680191170840232701581452822112102592647927140787356290800665612448832889622895820355565123546128747480165757816404279043344559643335034081915851552757079929257072377667442557142744188781590509121843123923948773977685950931481928227861819541810551370251726020403036439334216241807802816373711501729302473737241039514583407149444036834087148170926033696045772584520824716599289296846936414804895426762111520290757573927303172333562036914352967778997543199351148823266810038350298308639111024538408166454123741499159532086996863784004848019454179074291684713435834627102315271339331148030168242770263113953511762783611937906729850292845629066938704397098917527093021894194014188154718598898235784482936647328568557358135893426679055102782114983159701791461549385747384640155630098389061164492686908310700012204419803582490872351302238067612976839793099660878596505017632619979020243859035030109045217722776705888241906917092865723174573103652628512429737314475588051332733784397556203720252647031836507164752903901658813760287740501326199746729774187755666815751646125425353339824455637525860211284454200999824915727738026191178862849176571843026974137240929872582555203701228960055017393944669758324051897518553452710462113946015208317212131796412643264194077165557904272035782483568351595744683431199961446684752212935696540540439733097998862265161292035765260954769139272247227540385569429826331545076075089964151690058860187182508798333141923969405775960483595938758317084715858831984240364806853502998517672489527790469018150163588962950686932065819226286541281086597214780805733006411422176609533208054587730849651034112092876872748867122873347917824558733209917410808398045312312284473519178871746143089732870838899093698192409156684903909107407472873671107416414815777271169891293733434097277592625711379315107987092296088901716051133606966005620477134705883487082666669119313016025049074772268580457069463578188764332097240026518158068141676495512022873022817470634873761653313707789715556841432405374547636318122375224235980876626194959596868398781801674658003819437675705676432659340536285257647497193894768541428117003492166993214180924689594295833687688615461647242832498777450037078182704594617236164221692740623763919403535955389418077274785502774167432966739690267483733578411676295797524486834697266506631075244320489816065672398384930120056812321680843367552816272139562964017370758872729943615041382592445100843708109101850894293646361543134648252975616869472491468292868481800759361215373803722431797875581752246940900168025802500165100502754735320967501535266071448424145855267151714337018999789648444133021359147084260424796849223041858041534071890562005694047378102549684873999553797234481619150524157092838588005569105847958851767603884732233618358069180671495591842221746285701861914663765713602065948720410589514172667603610374421512965280831156135578162028035614062858142024186002575330130743394224424767848830196511811876050877758871535639858539100019943833203966567800125678695533139794901267919548358352945549056413378238685624901491142047261427482768412611722640476790893387090084168609557777518671160452128869711314489518319796688118524969409720619813293448453004334966648111873165155558651605525855414626012073990844032951346781192365132606046290111256011668687001749715616789545835928045262191646064385597445195838159567312662611485053371036307761072683434433941349188660802133799097493276003392719780884177763308958902654398613792415987350861406665287128212114522708270242304309026908714105971368429435382966085663425148781755341427662862276841741800804082778733789676314658097448831485522335016250520112523553570204831875194717723532235474908776110398798679837462503317381542614629762622134842863196221402456754529356225850059646455521336572412305337324757976132960473706362545174910218691758266567520060719473825462243332865038564473043527459538194595779207324479270021964255527871690100705087808039451536851446758560294984044125618023773279353875461919292363383977378696123410213183149721342031389114171276382451459456755662217924779387082641095664040233431281268289963291936481886941882166755264816549442165447456842471404469741203276134469427809502661089716781673222366817049526891715805106093799404392866486671406573442263828026509902842960230385814222981816622498748618964581562280543704852918602186668399410964671138208949098153873028675444103209648076946361935896985147155433444893637234165561122207148200418560009340373988841645876605787502624983143658849350294528939506768627051531385665494879247028582729522982290656589299797774275108447255224110340649673298491467457065644200370536000426471632816488158159786597503978561480739383549729561209730937358067733236242267657840074078904913979839159179911410803419737833192276567515777396023795353085132093586503579247103765633239454667787077975425034622901147333182075352441448810156795928017892297757971923392624284865576570228106646276025468540486903982085570878393736808720956176655107602020819701453356523639947152887215300633704460532725752537912595355336772776825237256946311849825721923152701542724950809144251951382796765739349203640427341764657557547811216038365509197493952310753550866772219114721095682230692373721644795880964931474325223648326645689090301884790196987665475834069187298520360218597991691616921915524927306132492973450385671133069373708690759740093504354780404245954521563439889343857890216169762763900582815823490302109804695998409085502909803798168054036467836515984046864405781094762443146848530909365272905382921708616647886616404975830486048694083973069241204952924676027089111398527324978481638283952472525793335988639486895814347769629073789440609919849855425939156474335480212424039110624448714495364282582732178274828864907012242998321788667184520723433170844909314085904395273113067620726532063308471414188135631756990448449900986062476915281142973038690489076364243036158079784714694150493573688051602523528313319031906071266454487282624380820906639266090604168396972616351279990843910032736269299993477886157492919458445710740175877411264225103080438778313170658579060010993328556087212312415814543885558975170384849889114765687235911596543775377299487784410674795849675886233118145694394509910206059385548559702426947628310780693209626703512145293744846465841587496484353057287015903662380215820441736628042557828345998119043710334308691645926348715842486730024403108611847257597819864878784271946612563114879308635320843384110834300888331758986039447541287212679018898417111785566304947630407489590360605383885260792556433468570917339199258183413359086695474663572341075231167773497634767682672446083215696510628458093152238230006120761001327336097960616969313888173112236862134837790570283213335588633451773907483702716892537162836076920950991695436625572762487696692333412395230137474861734973829933677430059484285631952055281251116090654790647066404449848344324208543096899204034500890587911579779088549875113336426684414750338812762306126739646175711498549896365384122037224271234553302813942396102475344575176355910821046294035895072568432673566185184982971447801814425165277702304388452169463781323904999464153686252952895503056268938528100581245247828128925590633385761879506377239305617397708613946097176764855135489825277847155549384782423713533253102875032656432544227573536008522527745623652156700626967690178963269684765311193969155727623327802353262545280254408044268388998293049919280427143265567813314081670193176189959803608771967397894865369718661806126453459388329012836469931429070962879140139555428118404115745344565166230315426850140100860808789342346497798372086340741434828712572377415496617626092325411928728762220051108599255593729137204247392732383064989197924224841260172082507091623985372371657358853933662890451148045373033696844846301984867141353804746815621836850747214035935335129616741226800680116342225828710891772413611765846250694034489769766158858082215977649700702833188312831741728610950349884243408324676920997752232180899751709455442687411523242210294128887073430091403161678312995698690445264985239235208684575777067655535344720548724576606753789331532727290018122498595889310621375152062789956364819388633464512707828395334258425048929435777776885851919789550389989528057233132873293048685944739520545599409887750233227205208281194696847221507350911665548878548439850534140968489224185432309922549580731749047576288739160786208642780475234589055576048937856486580966939443874726363932040104134497378701893084947231039010683566382597789748176920326216646012105819148851069822951374488655890907320903625421537596471635217531277213157068614901605404102158052598530249638608079897996532858703436165631667322378483632544355642278686221271644559469659433188687427483537976135368905536405672067019487428287766828256178376711946914972569428259192638897123952907963686084385154799634989247496024013946054080439848703946057200692312296907177102526851629455320874488466230907596783886787344139971567408368578019704025490771557852077585376724215526841159911471585876973451603671548994757561186689067302775251021098538237942197909189050616101302499896598507588305793887981723744070879891194066596237033018257341281608698630286818857637551399139450085300061827704958225157931727951985290769423070430297137809639944184659227709477891873167625415581578584327426316922778899349452709351801179690457773820873454083716256021317834551467371302226018757444070556587595546000998840961713816798125510580264188268088554598662027852499637540861045469937624204862231495556464258780955120395647358433514179330037021892913757590194634575846469614175795631775958017406996133675442756460385297747084488215467704406908342862918810942690998757796565081198463720190852654845753099468590322251131032689501597697794700159193378783381256834377694948906151266066656767454685963060584861886875759335428005770933329111459502690551170633972571056626292931033674615756360388311034804295823713285170749381273916451399116737337427506160615858323690540098944935371612066582875864889297205413541375584758770014092052299997173629264140104837650911247580311730188393212075158790043591513458267687908716099012103106747891049695247655540584239416927706895987554022069794598637221558183910663953713349064115817918918896675787092277181373740088422527466241425599004580000965194513419571046217535237709794193858057443700292411945736006581878007978313797587393898170133449642623586820475831700218252616021533657398146359493845446907330754445032570151876527178608823732742437628584782399898595141974426361542796935941665006237971983777381489700368134795719235935601067672189324838263996072467211443538416471776428518408391364265098997233148165157857171540926399105070972179942055477144434373676807068989159212824356282925435543740637022527069174214797665408591598117761085763997395497611902228224852585118625038744560864939926191113395641251147184982086255941810072650218603206378387302887744809454131124129977008064264637015416478458078728045468113408179539672135997245808879329260446816412476214127385629800363608273268143956352567399352527972983932246738847741649539268199907370424330551401551557887958300033774773579821794140136139086867372186545402347413994132674891137953023382798316724937155311842718767581655938674736172673252648621690742663005320283648339795621747488075303972850629004129257035716562095704450451097171018124925334581034655939131334621562149653752376020900686519527230290339748069894296042932070498547929989315590730114233817658035544622324602444989163559037146246217887592179700129044357570311805646313977751427612335779106022637553269431966614940435797540170226773114080848166723563716834242739134401010189595468135860156536922559161679259078629622520197746664002658474932102444559193854089706746396799360020886365260783308072940705236022743690373175772280430442073722089843385470527745174862552515015843232918880452895254328792000744743544786119037311980027108415324723562515449102641899271723134858141311162390192636317273552609894379211072193149224751613890621361921563530915462191269115805377399111851463053126374548288471513020068899328805535787477157351372934641249761274783847838436126674750951520712367448551649032043920903523386174008782238910002922408790118663568103019766998163613023178345195450667530554928594029331989952729800060885360790193181897647840596794121418050492148640395267913999510784999889286250670581216673053088127321814787759700537286072077141452042406646850934972556289678341682467617540460534125623184780845150979581108949200776508737085147723181430577855207963072161454955490974216921964586212115603440679552715827340694260010117916255310233265060011827953132156812640993992175001410941536425234233438680814617290001729903556149745821654710761089812812597769547165692355148864742152260930088582852232755016415645356514420452681216669680388717977598456800411777437229325143499788685568306169065739011956437069238996909555804362924136204287135512352040998144131008696132319701976711441569093124064916988518025999191255029256370945169867589048863019701841689034016108059871613650264589895723184385850709520053413206569685218048900537373146896638307681676558659937159918131958544413110217058342391682685023272647852269047103968080467194839216163628214059763750934186566595636423404957047547365551975257832559621255934915410862235073844838535675189646917892922754336085978916643816536136577749001080727038706117152145896920203915360990637027539738519666825479597811623618665716730671882355165687921956143257780974816607903222588450838758390796969072322751909694889163989567280548909134861562985665870224968043424763383515632997510473865754997314497753352811123502435590438006405693556391190741422611712512760058993972448812234335138138408657884228791569842968016482027901279643075203961028804759887950187823242967875113532614355643384755450499488134757927166455806094671901523349037366073149685167158492834955920295550768495813172356332092156608240645964316354503340730778894449701776176937210324567920180245478840459255596494675637144678390347510453509450148087138261652614815629119105310159808638977635465844539523602458664401920323460729545808059586091267015774350855377428847814885947418456315113842597381590789180600882309962963103340348660047650558456352378060644354717817195136367319608400921573142883712239112494613366302861563282375489194391533814882373970484603595069137372469828185451010999093347969991271497234768859894526958465469706239121032444143033822356615532495915063224495977259095923888003212762307112286753621274311932183111507446002283288907632307181898073307273126295569625322742284473651920515409042423535297599551690304049143428292857166242647155940805443483488494525019731061701124619530923287159365797608329887078314191515427820580877102819988141931720698068885862050419657746403960831074027176318721512031247890997617858001998423433230753043540938516975068671257319045386313761542303063176488993231330856852544532101497573936392821805039921348232986159938136182557878165171956648622552800952829409686167814068042463351010818652703276559595777758153486056746349945882350431926428320514530820917689017532344395000834913210823079386257779742884599466816635708848283386943202998549420417667775971176589895317603521706658125328425897158203518626284240880938009208479793669140485548285586476743800695824242876796224239301301633475159641533457643831451371434400224239539375378624839907825668924375125970826250822960777389382071679486159596534675445096938890786588966955005051561383912378079899909168260304925553132534594687649183089744785868693942840823769289553119748363539538514887171327923411170725956302898024972228464611534551438892067899281435299718156384538118243209362591168404486548428282910800293908806082484522997471347313722724351961114235949153297038839735872550830254187587806032292027170604263908893353650028989187863872924347458009949035312906188208948464119852388073198849904614794340302826407321544988530837093588260166048816503111481574438904069891715892777637285119057355923570671197884351085917229717429343705909013786418151801584291676685787806214002279837662186678427807595055309684270822292606197214943698059388773594168593696930752205561284978668006321936410810975237274527855971569014865621514054245475450951384893577103397268932625070782105990062896210405047486796073232003467859519546889956824565044446435508893125241496249806306061484656100356874519612055810506066413052882548430223348873004615350284566931672903594467782870491488569454287389701035946119094657278525389376758905579320711496237417815636930795691519377777166817786950854902845321346884232605614031454733557679244480975231292230440752404746203200712071024584374915797615746912378068518212904736475872272982037530283411246597686285595866391118216571221699946015910041900353032519375550005043839581939080300202869397291478802637362750967077721093638363827141985754935563338520127186499730863452518765025758378367658774376909944117305276343513423256857803276432087226077839787101453691124255071614417274660982976786933140664402333141719866169196131503276321041870162590551153782734938799177617596719377429226316513902505092518352260234888002597728928835532394653463507953649239611784998760633231467032088836535993106631808488527866375974567042190469225158616500226212590014804384105859200037495603646186560045909111835256877129757411985291842407127969577843577619662177428314564765979985225334785548573502162161958496985930724773028007102593046043292918012153131644253941958558533795895077012636126035852037327664181070806054657405187626752936500269415562496318736397248674515806357482344121050509086506559221161210110196420699274440702492899161720323018105144083854989133344953497098413559235764598270348369223761622921669512540627596846624155134708845957275825479907898482616518573319586180921177678453045596941330333640624781985111544701436495726145204975527842337785436961896301503507815340329287380966939585628166065319400543975380174401122912982412711901202786814032343656054082064032335245741950733727249257468762354827478231229956935710487049221465723523862541286456942084470276246747940110602806516439408508022540731342295056391552133725487307429808165923929169066639612921212151053156726299605327472670250491338532065931385349676617161205136243596542707979655985438162603257277175575112883049604194761746490983415562463742730921042957053718476217814439412102684008979765631353654813078683423173990945588703590455989621612666223426967871106186940758188087633300322953523920871738889900726652622394771632060099758120496541122518406396772079057234296170105261451572667844446229153384757333484731373246748634517441282541455655830484327912156280694309512648638454187694272341973627461274600425001953600498489425093297001397293268752174592010368148490451292204746372439573314730961096367069682841397032789636978790778633353715699400739128479581822940873544175682787164298478057225883716213056324957270734578029734691050954491040577419753913875526653136980234318341805441162266263394751941274590082961627761666448678610888540528342750951542348477698981009716054379538937082137799043088981067440767352335118231627758399150684551259224734567074433571618658381417786339314297149312334578705788620324299646405308902490260002909074668229589630454496076932529987966820499831135808656646798257681967611918155309831178915243330341378073568477350052343799035097616227152396786241950649029006877359585864109135476063145994284319236741525375704667190749955779107804621927847583780265927445250337130790613213522854641271699457113988725711364882841359934270136026582425694046831042284797409806568489859970069607717656816296196563780262059603949747056332775386096069373036018174968760567337371356335527345763689367184449795018668633659445342094415602787320917141558931618796955297520561792813712276701732668957942915501610733342708023938826964945407577451426239023759957387143000667710840049778908506325677175018587968615971205186184236976663779758524983957191803079261985059399154397327432089821406894195820949079623651231264713585026380343259271746807202442253416668969689455715857150720858258232357491909555880994909523986841523024143337770701031003181588368673550873103406321968624231518345114768318676398226372934829637312639517055476416790257499238386112077194950080866733652914745123331340095860108794162656476677131850784553158451817319687100489412876791954932816041037648567121192759642416882225478013341158583803716535402960046395486415148681994089576773731933367363829699476725848147511430757839948489613250938472890940628317135198451043292515853224428898930788769222201333306811018628809737121161544980981178794201403865198120285543094116702215914850523338652911649508962208754595799186313387850830300426432540369083066465445513038955844821831759002099960927266493943269096778532995634234574958824852489432757378389399931704445425802231061477503813906393970658714537325379784694677460891523886636220429219283355497529852596216097826199633261386272250602237486957680837756723806438357769428800027352774100421925377301261938480660050630114227200058641178359114666103133468420974235717811587575720099018729908087464040419389085396805906434443752892202502223930725827469782284394278672348527400065374678489163653289907032941155047985933027491216754896044300006988288162128147175491014681422294094173327443024806983340140733814679283539720546882010871096471276207732889127014102480658409418190276107807450307752558311800260647086046541504694830927940930298530618561682114841941874509291866875806545067901042958285776775240406205540330652417190430661852286133012986713317020149844374002405632613711233316570541185373307568980846369468388362407376746167386043850336001182062753699790562296759677339423005644620494055452224018332095052846317074902549753550797474519077439926954850705608106032048412598420202365831332005954703710219133470944528890347996321644212116356724060855334425944065835169723247415018790973492999858236536510345315243246271364752749568448434269828430379709176497994929533641811533696617553860006211688544577736356033295524309522753338378148741823705768683165006825036855056320616214959668153091041718765243437066102907352227553625101591024919138489131897506187917712369712017934149162201421504395542536386341162525921316439928119451438665074754723406323762532116188358892962418044641245700874720540420830119585669595714436143890995227244398630855244081951931566081387917009360782614080567080934956611608456565492098001430317017227099084251004187893086571605048508099440983036551150980165768814067828815517456235202620996653026234415104862320024988135629941602672829067730415837228160232065163247680345346271366417565680378828653834358765653551827616343188811991406026824437766661963031408327068962218827921585589537393200361762059063062301284107012202663873689664051586667242485556747118721662992682832415840898635872210592144193357440450625571430221869551930773657975763268620273772398969531241522626684894323265117040821368852083789846975313102679785219218336609049644147949882748625848074854212108137208730133903656622722256637293161150630644201422146811328912842307797667768880606709679509107539785938309275227561645951987313191554874804019948326922716221530875652972740460090056742000761027365595923510088672901190626496910298966983871756373781053619491832214038787146948985739754741156854731995282393503611460555348571200497030813767457850299091862260335994622932968083019493417799849449323824304107071738576239231915837409542656089287765922790195481935016064194120711943464214385061408400918695179568562305348536817747553646221254944666622594806048063708578679604504367727788397259047703911063189221155379782222906139084869318217541463766430380455820316846637651760064754477821802126964922467127087037724210739907040994840132454591807554178931493648927279300663320224966734739912571813306389449318676389826155516838054104002979418200559242324756639552652280411983332297451100397632934113910310045091421184859024985139453968297830232952794665848514749771421966169027401555521100984186550428377183462135402806647983347200865513091129725218804897087319665104795512303098028271212554157287809752548428538506569333236194108975459832335059865954457648948153829276471623642853264583859097084666423959884982250450780036218739131501265979036099239075436762774125601385460399141749681866767382347373957337431151656715965795161042074972125665904778664340409970683323288905398509309047767942685913011840375642446423714755572066674880723708967884596475742304065687897894945988101323041074473426670423356223986351968291794345069587696858546575625540626853056004356037789450692335684029939353651644090364090292237046168792104405123172135913145447791137615194937929252496438824184251033374563768568506605318745240210879584920344409498549373394844501822368823615269058632514247868854709617386850972584088451801084329112744695598060948740103929306905618394885571343219119324452522917657532965654067682352069859777172730972793375840777990047484692417337401989945019253815227842147066648516581916584119684028669890735700759184563512723412054700826502275652500414821588132868146117757652020368577305454978813533082947007378262098744501421553732490304268831529087481870931451342754705658849624656291987667530575875478553151707234521321816036188529033548437229854088635525265688281063361477960413298282594445226418586425635946317363152083653625492938574613618271797707525217331538672796306297269917648287074645928606956339411739756731548989753834461149639470743075201338093825930573687888629551955236803597292944990059296724893414159883488222391498873296334372271270070520697446436087656736424873404718316285613831149202480892649344262289992073443564497276461611691275457480043121181823835713671051533739921243589456929613740462547063695320266826632929084898785286597458849615320191406354397457613080534400277549594156861514616135501955939402140905369871550990360283405125998015968246288327801221042471014418917118671839620398657783610372571150499745760894699788459262172853708992234822522915711518738499688211853602385299673678050849556404668679134954701082654163918310137765870407189584277959377954015803555792401055453685257206368010374805699870305019665583632493572926104275806799538892749033423471926389154632703138467295708321149259769472909593506491055972057573034718415150842876797100423104570692262031859302526475585493361315494166612795967525314611467458809362232917825891383000036543032458989151127261106614101169360567621136733832760974026063079590557266270438557346722093890033460395395705963874171652733747578088485775088604913804124357356186605104661004005124350645340976174918166746804897193329791335265321467096926307190576613085185995031189923370264634180031000171913458734273292900502750289697351765753488021063819102763470792306675537090158293223171857844201541287419512231958389874828484149044219584517943182880592966805461378787896792331000350347906736807969816862352189089949548831456229582089835522076700617997437878829586430788131035840794749912258310983114458304858297124541423543821500741391450408457792594018290363005543633309097251735911616853451756851922273408763332009518785854428313408718848369929248761750327692848880245126351529245715660998533674415797800260120041500380079269758186064341461657112301449688201189958061495484728411033517383509175145139378543004309560861121366503596897046578278333738047610834384687871175990758786491486395801601894870669797127713602132919566377709078619105364940910046413708043249137582409743021927122391032256819459615182800599449548644407625197731691333824851530451141451759112782585969483614108544799867247746244392191148864316486989197397125326505912668734354605641576651109522109602605612839397032423590450395539445457958214142699361616541673087249975041462519172877108751154578994286119355259137864302459775975712914163726904106309020106580735160507239646869172837048578001488904029943515823240763761195174112633595875942798747786551769803202818607121308835861496627331458851380400858336282360545261763471492474501345195045224412323126713992001016098965957532537605820168153264909109911362120051658578883483195356324389959182294815294044752933888792451388580587541436255889314241033654230942994376689883548635925222529996456776924926106475501854453167276109579532865444517507592039270782566368746855139288020168535274332901901454200310705983812015658436512061165779672857686140185379960702195206438581773286194881007718625986996796695491900005220312712903577084077282723119132286026442006436685830610131955716330255013965656389225273716306438905350630608532398886337574379469213888951219020711355867009106123407795872175989960565552214252945825447867469070494518294786069357198197583327897045193368074821046399501673822197051807925495480730092553088344978155935762694436438140337977732009283089511343093937351745777051013055974135741208855206262212416009403515831870209399189835275086240274875981420247914400334649150484100386840061521639675553291816710220816224728530414145114520547674960048590722414148523720936224818231259696158246793108731636848285598512446228328566521793790881521551827028319264519764542571451943339198121592918032374824861448534673641544470977091972707866183657380134010258844216594835595405231038561039805687989377820634859113234720515481967668695152215550513891136081632606268972089550330009881415339124814417913958832485091873524409646406087336387624883462080739152188889011441262354574210529757343159708736274031802328716715005269125987302364975459479988946161241819521608262073116232814772070271023513668148335056156930376147505866503128076219911600758866311822048304880744796454552891093487510404255127584947501919524369517988179218410017814166290930018617221626913511691193904942744821432234506810063544823069371664287661585277777335510817488465227327195138683892002879711285091383376580760495679017561400448014287324304374572490369942354698091526292602763839887326199543441946344657971507663926913859005465777312371151786486573209004914907955055206353864741563969051163571471727882128376953434912840941364038519562141460451926205737944952337545200399435396583235846434888409354161693960628588688050008009140200229697817987358733290539150216172745677986633108324483933813697707536519839912466670642501641625916574431186453889571156443702325337789474778301406135615344710729951456506602172600634527155244929850679312550294816033560320929586739542268601211896832971645054765377543993659889070086886966599668836709565157636111597847250499172237740547899048547947003140328050426574296681313618597924597995114316806451636888457264509160860240254933869087925280510655732374407760505617978499453160653179930208144267145859425663278491340563369668808347513934194033358929937897693422194069757508753703602264838691651595394984825202896483694328398796995014001080220450652576714007309700364034647026822626260680761407851292686900540697694369136311126219758040993692700912119694998629069056914965462942494512370343509741023829533690109194134560423914802716112886678549962986616308933946620065342538168223411656624806532775420770193938114715602948631709452993058694339327893265932438603899353117224537366654817337663386822880469428312929151159436298984182565016996602044595961521760496376074861946204545468729342131225126559063886261074865449295884261841844110008182627877729764989957245497029819586778871112366791032773179648143359363860399736478606957990886619971478788290379820128305163842131658743348929831065864472304619565387893617508885397479025244287601348596492166115482033156075092527616696146023732419254595772171648148194648788265257044965942788358623705988641198099463098661909412327745530612152618987042662016042353940911256279428914622317881392498338129146720722226547993499617516077017016819721740065794350205518811620285691590405976499815054760508159367973806060589662108540398163561950326756279081895100895767232038234638028004417874111623933060310513389875356015699828655921505707663790104258217464510880466318168332678162134698939381762538166609217827355588241325423356400335349849068131370794781869559714161438490993053310368567789611183221616510055666427265848323569362726846325098754416998512190971211545267187643967810971120643935754660717291235244310684637315584927269390810377969924764767503483099728630460399975958594983644259335248597809118625246136970666839071710047730609825839471657146081075261197224119451511951335887826033458813210262012979388533370790054536435595540244686163982662598750368986282977756400129933090493366178335213641996560082764456490439181321898999999379778958028193341114338066813210097724140208016854419965605104659911916550717803100672537518938258148797489902726568146224586386243491034550672534708553302572229686011755898119777489687418673336000144387824773896890461487626250057796402470739775043354687049990639721271249576712207621143489776821412583653747151902099438535788022013813884356378327855912426534424121773347424724677223538511893570160913649632976280428756767956993140390949213159829335139870161084892135851472053415521456055721693822053404366945729875090713898781967921485878437516731350082968760595224759216418330690242567840936988009001110453921567565681980909832714731546696021882925427626275783077759716802624167361585122661519908678254761629964618257735917835750447099096068001660159728482469977512522677535545190274493596659219501537395385390938783484910660651558439091786565007834912852012134465406818638716478019318570285914545770500987806572671000397687152549470000595104009796054407492136752636096191511410503650240590156215082409721231720507038283971728225345023151528931670417302646007184340190979824707478828497641513515432612791111460623871009679756943778232875390387628303855297194822864941792029898094589042666504854180388684662740639653174599596073961336818723604273621252049877923313779899842375043587811138113168384433727536349220214340561789353084637866381850557356983344804314032989403344831872556126025499396510797095781869859327555828763545416191822790424972453365694366720588471330126695150563266988818554832898849177901584826174511454355551958728455576214438254990608610989320550891113765127700774885422078526158111892598432945853966760443521267753234749447752471377921433233239539773003417942500010803260490011494765294978277409939127146549864410920343677430393962665921663636292986946444439462086973652729455994585616927793800902856784135849177098220567428939114019426017765145380165399647803946497714113850157415693453864868196377928424219526359836694617130267628265490522024804191127172989576580720422139580914906897734116119311543677801536619232399602586423545401964548831229895412930861789024101848530776772814878403507579758052328793361031879511218047174736557544426816230469356978102871928701206283708392071432365482904453317672381245547812608981215525209859234940199926220766089214439884351769638403696910060584472125960310427043450465589614869733907485122868185703324745823082908865078224921296670853615722109942440181658980741366142178107854465795527746457424075039718240537165972358431311608539536974850217206226997443364128135257176173428947227019269257880737258326776468804832592156081665764124262099458739730655627012550234655223899164118964049075799595014362516694100088447637610315190701458292541755295732180709796707485755526878686115884146957978836741462268185498217330483522710027816268750334341769878512083053142176864976141236219650055740616270667580483991363039936940879866203514973651028232293367957074721060294998837727057276287403279176787108189010843719978706328758026028385217081766242136110531060809037788437400643399948484922581998347576037854765850640008559124289512527492303826727614862677191873097216556138160667858444933171574494528974397369349570185894384190214982639219540368915848352420907276761799840678066755896246778949414820329301376404372606186071148381950614529744409323009738352502792778420538046108821337633104312321193572393091827076800197010509637081162408576738502919273165754911754539107335194616252596008048540228408112509817905821017704235173385755199268832215528240051903189416477706418107955259033221197595312029973081482050169731537371133363901087092919346282303934121243592486370584785123476413421706476777563064447133965669980448729880845393327642622073390933533461439718689033942620418770119047152754529382759235718825457094363944533607691221488687461601135483870821269072109322477012526959250257954605430331588896960430522704226809620405709232020146825519218123583473524046133195071018685063220419839341316871590080868465218805433052628351521392584131948276668220461174637589472024226165772977001476110148913816141474859408056639800708596565537639273255850797864668804744249004031440535548036898750129965484941582058680535482464741327565464051097026035654237396704981496829003518895496454090134743863944858749592947341981735571366636964812403934554872230599585081719744132877504484586614533148592134493712777682434205645930222314559039439224516910967257598814979749813338485164812292316382583470642266466922960701203004739186387568705140723004757648698153821891234879918526709492690389212277720206419741515858615180573692656578185718864941640299297882469058427211376790431763871476446496243513792626934762295935013195710315683620880642562316154110643352466726355508614153824439249361646735318286290777585187861824656648073350844777813967867470625644368890538681703147642642562401593780978897262595038022566100373959510816396577406785693181191202045067432787342491779264526735235429874927817636009495423526885751008905238704546468902919651514176756733458284045954846729272394443732493648396150938359022546919127752090280156132711877082416370343055512381973564852754634048531712827965922231809347286567171742086381014042710681557544758214799265401960902210708702489004895346553553230731688818907054883827606246154704835512330116569374638569827561221736232183508902698579516695202477635001193913806574981943575358421556909091255908346090959348550069848833706605478267100940190662744102071577941023988581885622305314043898830036724756760375426253008254224267854834983700984973328120829821015037162511693014521218427509278274638731032855115070750020964109634653447205152490097253044896602061879891291529894338301534113093603311937116585376841496731242862776484956945039280167015131425733267842581936839174967685159744734814546631729707188121912301533442695110656432633049525736503242349264376210535820656405813298147128729265176481868138002333482023041327413342676710433525460964969033265205942815907043142075343917458448476001924058866295479722194808383986644535070866928875368459687423063062636459223736532460126509763975529437718299558288849600211878619840176770237489345930285063777850303358900562300987686626791931137263098102841971625858943138357079661459321684531016412544532031954834028345181783540178947309277905355955168103718812311895659703721404861676229767783481125925695903636385784852914998602941929876656874756938141833902725663476699015077305890022549291885693689845281653791372860484537647785044472540588217219526321885103852929997973205303354082383673673860237063505843769452284311885690878464907230641661759441339155161949232809869424146833425831266957797822008562330720580997714330057706719310404880769724419581367602418689122219389343192495669367942413595145963286853792283262174171914461494490975192922026577727914820101299235793065343788117678808282733698859009828685112104523868442308137128008972089785944440685521614562232504479892796157530469397140774073996171310860504039028863826245778811288494007922086041667111895575600015631995621317000954043003904702951318359788486428675920624871821640429387620583363235292249782032306129532901211834636074664069334054538676144816408675374088289284576312028643310905477917104471163117910747999394973507181405153460283247819924578737496560071623460521521374818710581573505060369295496057433400824371803661544143160430446247592106642206490580416860384791910950972665648634676622880604518192833376383983922432521666453404329918936817081624482537255815156060928606683073129099935945878448390073611760233123243790438595376041891784470526135051227898126511023316349602861538491009226095403018391950774702988140942545995227904117518033380686438930708158547216858627538058621007371936464514444102110336190987108982698222859434343231583187211047726773126176951371339776117497367480324314378696781972990396039227630355181302053626774126502588880852022344985093326370969170853804052503412479288056670935017690740889416877130049046852521704034363853511491570038057045792500819023319486674043758639713768984421164571501131072763127851981979287801617067995717455424900390101891631352089709269932678095997268268642484376828559378671155763511258639071718118440429129550441991560777421436591200927292454475514140570188027272501185346236210523106202891707281986527045756169856904367783412717174530400023129163732233896821103361729019728525080168980348758604477681383470348092601659257178352706727462193863352171303047231753424707714621859255224987958088836406437946195089849064453805885734089031088329018773278182123603945463989715139160350242177639179177195300455838747802750922914636588738534535862065190584471976843130772934998679923579601251146143723228791713818811302430439633497965601720115386137545200061659276359279786784964377232602311895408023288385520134976034878093556294362487807909774641189989631759358506193816266704503807514574040784544875040176745606895015169676519540739537541710126200917523527697670142582368415064131260333627499692057985691143597205975521952262430972663182036591667487444854878084810338982542588453049813177358718643758323992743346880007484629559628837035701200101276907459474772718275821535597964602950260873812802023238023592067927059950468673685218488763125780473456466507078112344912753992045785060121810046852224172935315715354206516820720430654933765285773518319110259868912058921945177498653099586062605013784093759908913205615799190333643511835167557628478893601401676347109141944107297669157843408689496726886473334053223822821602846195547268047602471101587634111782564099192786277227147367432501154419358649544977628154780582643756663774361931531074223531052502116176262275879424789342994132921512382250366073447237305356528178204974301591157214704676464179849624522514969889469931615256841646832063926582982061333782619709504982452707840304386422492146401294229453181956001086670655182744064903583123072994493332682798329409165928484748265159238647466768511451214120257491923308117587687565355554687964490035714116400864371837608221882320043712815080109590828204904475785742770504557776812197402910207524600143881340129333637869039348602180612565769432851951373516284848038742632614793910769434863152299837843039960839764709273786219615989569613120290518055997308315791282787312413847027529556022409977832796393046963251996362682914280974394242492290188851581328641238006602414671940243590628564439935233214731367229866904041048801256434197928712744296697891840486099417204108431693195019354500499119344658630968715414731950950674922634177214785621742480876170088635194851857806291852718057353381047023621928163378761413097977309598890229182677092155025078373646401403900755584141211545399347439671573992207398796535961776056079017194042791619844742492545869704289565706095976428296723134757671288398308373211556780884998927827230227524029464586795916153518269637957582129082480504596044617258996214227237856829319823873757781439710775124190849320183650771168059313186754951536364492383324956908865157050466485936464796382375749367770996769089748504982915652090724743279140972228984155783536165114343984232733651919459476546206652491922742653758397528053002928328008155577407248069282148285390309940440720425882163218163727917688018461642486112867061105957023135669402363575891448582228205050724523641905419812945916996604944212895653197559068537699094507076426218482704967364145964835929056939348246488568694978558453111393325427731203758294510916332675538524079173591837342856471295766517492162613649122722694222608272591794904452168193397129592687551227007474143911500864037242955507280373834576534667326232492472829423418053111629332901063888170500198759136413790362177943304195619595610362224856817425052506024875530432158137234625600351536439577466965987556152809740767884672340367790513684272642084503542257793783192118653738852788193842584330873862100052011073741897346270587590369667591475056165627761145628342334454122088783432703586012956535990935358573447844228590039135992188205131312690639030168691931019291483946644243692145417827375106336729859192400517495614799813522817632836522526495484571428765511851362773930162652207110963758024798848161519499499272925343013599148735872798368416540162688534382663233703931647648194707081273241147051251577549060820622143712255904434485429415331853601293582122318099734402499672508195694534279739033232868671726438155224818264551389237558463606008161437599270008861629020813793849062375019522017427843679643137982037821884659069722756942543673658895605404367647008014873016945640922137818017258321658236776355485334697490595757155204139977886209076947987173758643170608682909184756310249294421681420453019627403667105185339560598912249012444657520270143316243632528698995611755748376335156330718503609924761343744350894307683895165355982027380648934974515784955185825263765561601716202546910809038222811387515748582570090718340886901179655029131996401361895697370730983043380046580928775839343526122402282123630283624334801541997524227312437966269092535394826319982662559578808131059866889135204895267931386594178464789593948317182548077753474218807091263320986307828488606938863391226816283549878034075103629924520369107519658846606815100976022247688723952664800322618144846469367845229732733340643391265754598287274399519601957827964570797127318077565566867657391865479144968811315056049382310917836670940630342439540594096189587537042472093684537276538798846834556651378872942606948085913499507674224292101349540673647952911243093547722998735486997403497703047457208451936641613728128333241654890885349455181622800413428395106621502506010035918771113419791414581711884077911664072542661991023146013439567892665122362674905781532158946651805224917032266100242854516964891111417098725494214806337453320939144821843505412355504179372994605820308789726402952799641953970259267601698909521610789747809970287222341767309694290818252730527697975407516211328445677454648563232778866783287158935407804946530563799874481430751455734474708276010305451707956984267077278460008086187647459776097261289343301511041933893452887763368583375438427903964067208560240860552196888454787200836308516220542037932068465251954931560653806193261008093513115350490219255012695824220118697273412771780447936413397025452474843423528130675826962147243690954678885524386533715887589018959505564053499896732587631982516169766198012465361990109948443665565394225076395233883603462500334773442847717728389175473151440682161056202844883842790379404211671974107700425503140307549974002054860148192606665350437124591736401672003451260089552725076970339311570259785656937002520348819441166301427353477504502883986487379852524064437155241760687004381954616209894889931749943500954967827177455146836041312010589349895588544667537705906812383329412732877313631810347647350235759531511100202749206282657901812825270357515743851942530068455468805032222091045784571735279657987201966110918606412797537685840536986539036301522263592372257029463487983552307038775380536282852974293999994476338736082891096039564568554456438791589319419315320260538107153876497968893549308344537297727674008841865418233303795632154746539867940771255939895663130630699728070725735659857655781034739702154010341365356510545231600727720429415241192556324305432872051616068881754832760007884261059100673103920968063909319403133893480325908449808835846631627674236161350131921043563717241542398377073055350729082985932684006672792136724218340037032079301764484901832699547704408116321108686274446903977890210793352995866082219479612727126471782181677110784529959363370151855516512939740241363635521543870328184366755944728789101850369690405556877409650021707893094113333302914298635586668694532198790144403574984740959898625244286735571955847690511739297380825072066281641325666800749503146250452063303709791015934235477214257787145716654086147502222330649352032989622184450740925140139556683234316354481894265989223115258115190665218457070934413910562265897948397577310968704488837028432664699514992375992886059877306948719695920991414309211929946175382877764685165493683883363813373323252911433233087469168162539273272156955982714791406645376470997491222871142183975291761214325358840242709272024215346035935377298945841520630709003098472696459546643420523290823212844980400457979464476121445380589257019841193771542514335340522171257220135331857789744444681044107113288823490547081442589392474747280328838909497142758144505816046662639188803304539566843744531964819119555241421230383719990840541086214508230943161146797869984304835500863462852597375070684870382678927476623070226643748523863865317882905051778649084700208454253315075905435110848503015877657725746235048929624692805612321082305485556048954357917258002923760989796780361540439625618170311187838530550539804233745470018329329823235697696754251100396043149630448101382001052600392645527630176411783523598008141568523442572672147668665638780072627060604042320511334261585448420353700286878393895779872345541029637258026702383931425669951215154166279016972561807067275825855116530292209521153647800545599126054667621709086292421891312398023381351582279155777778391119312868576705092569291632942529892866922537123115704613604519111392902202870532952736841988380841686551997952142136340052032277006522540004961940883555171217219987691602303453539065078129206575967847351693309417017224976611778342586553295660247758824798018271482690329510317708834931800791790628250371104867229735610709976883914707533956218765271771663535226161407119803225317662469405655143257308196097905911717958753804011712983056523511536310199761187866057143919767692192249606041420085380943199851936929363234391776089597886921809132933158644294602483280491449581447455221534523485675482518333583838651472437292340629583905799186511600662739835004784522344228656154564915466493725503051345821044408187723596790418456181866439024866647985224853662888598239999679102904806301609611960675169327781895571822524207983809476968690991900421255407795622330887441302532068199542956593042707909545507138039367262380071069339389262025362653882418774770215987555164239746393061809855407727176021925555647893801876342256849009434752973727222028036960673572158038869082313130151412949561764306423508830500509407530542204091627015441333356240751560289281662451532263875262671131437847067740679343582005392606331788173453617581105829507541170547616499660142186396832976677216532433487235209420216675617035223557833062403399726943064389834119219094086841245704726279937320570521232733720027572522573584337716799216929743780094676183133917143464766861099663086941077933608748876515627283113701261818459221831980504878657048957607613174399998062908933728226341593522783764847950539468340473041574654953752457410958197873836039174912906931710678010172557937561187777796858266058478011903895374635545743876303548274561863908300827896175250498044923210747102306809500105946152957427068998668856951000453716372435442830902052088907243627325370200729116743087381011883331327958529274416247864974540956716089902398440224006750631113483336874822843523524083750049590122918026897236508274187928394977547601314510649272342053133483514332567557456153291885165284645170530562335934355380508116829176288225695472073036398332815174194236211156689768379797605523348674466676817309466857210953644184011520485330948266770812288295908031643037224497190680803949109305598213111944059371072299638577015611914230763164774835475294642086382835579734944366488148578878593574953087706448478064886016854273347603715897522281907570059744930168065052537307951143125893106184531976169775457401001311108019763322709495186903935320884221468022797823561506919437348770887313113331725565538477451034772474154163409353279996029955659977108402177124021559674173775570929316764663510176225185821111978921390410175532837521396341599240699821812841011144649862061094803951423107538629565218474028732278362707433410132465297328567751466247129598227275770508185534110720976637379333870733423832393077917887029452170230535141523228602900598966640119229429911959879269362545144517920289134262256726993190568743250970050965252178396030067109151270867523561834109523427830759632110215966995898802153265514146146702750169496293636230050573033397415838227557824751193301089435609483805524478091960743061837873460030994631980523356811570750588394654060983970246890463835019118046472018305909168321443238496735192626970424437747045959664923388007668935623235549717133752417553478259101313449120766553899817786950691333028098086795437326418847095012620871893807430746273970055706149059893325288698395294812486915332750520293307072083705410406161572062084890760525901969699233308611916890531890923926627407733507162083998538483226214918858002672279801746405032522037048369640462504468725138492406937532780405246319577723106633601314478464487518936339357107233873263872522817453962116191848127357194170352742919551805391462574553207603792662118145044356427371506650896527908089846183134159490084602055742134685570257446749615260909125057455741958598993206804811887894829639456048911273869194244526838831170165913472405450773466590444322977983443995053399482541098659911477504937726946069607028744948430806932764057205138302448234324396217882584046562323247152310702953349039292169825717106676812784988213935192177283849411627205664594123314310345403007497756587346541787130002583745554517926382066098093742352554413657424683995917468587470060938698059807462256896897733418208290979109882343397813890218431952778822222926354603896241198072777536351939250001439619415566982610461344420019340237321190184626378531552956363518056957688150020428590092298927631829611990255844984586887317484870137783319784163530975890730470397371199620689380339011765599475752012650753041562204541809072015988262164102260693645844845679069375188958124491571679651743636659631534144177923305376159208665516315093331560695493014434897541101580749590284382116521259087339079579722813179178651938224415188190193466003678983091732099876989012730123459029396302936035162506737369391108532695972280483876211787488018255949128408897378073894144328436878828475952912724526057653026953780799457909817387434141424777606618783404152270555528037713683816659314242989645334126165505318102304322908150508526336381026493782768187938753581257771066629281123910287133981342910125719284223761628922752565148212618538218162078915165278162862058496596098652485886880176609399365741471601675973233883904814716985260643922127870609966659243128603516827265542506195188752110094376974162408204523437157721600375709586782291054005020455332026962952940016148428770751303205038341718015798990163467396921875930148943141073069775194328273734647672417211178599018897633014310141392062404681748170515908931858909852449453479865231671402505543370705507499381390901583546655736084468844542553959880168458975363098444407610657477679975950534796092903578609235079743795100385092299502356369602972564462509199797164588242975552359233158169038112053837383981712853667165681511121408517404156666329036703506445909941873863251741841978395559891591160984845274865961939269888483677585398105888091903061647361287572009571480883238815075753576052109394565556005376954239306439355121354108968910656187957709126255150658899376332669969221216801262284869103362137902594234769414906233354733473966233509980448259509058240216163333158209635216205706840189070275932325916801632053974794107209514327536085833051975028511149192511990104573956747914822224307605379620531420822096983684089165101350709632334850024432565948738377165968886480748378551444093657216427309922585526600734698163538304154674765456617083688276057518190961858925063420060771009461369135176808597488547215834483983333169148082082770337096316135904551761593504182871688117011222808633041865992880123089494309021145849850093329057627384791566161687518462592902997920055716875240021768658610124207122186774252103901659481891817015244683690469915587397825539101790024863413081004985533588335525269716145006944345750416955439571771525548794401160467462359752415210145488455568497099265540208174641977356676591385711371554087648811497924990442187967843618596461994116179432672899322241527311912351494129463890645471085096356276152003161084261247493917391962957422506895000970046280459557457614563176922437624698746719596386804176601556800372347303160683485256180868555086244401270021027784423416564959006835114275335201255814365341756516375872762365781130767500689742532629105241164618325351983303099071803475309586998038854083803328318729152690629767804805185621113992684129249574378400781136611271993513936975107496336447251914188801481874727396432130579167688580948523660653479763926762572090842247226316610916705916018273956884140529908895216832287366569215746821419112266421506147166006687091267596739117854706539250626573559658868132379246757509082863974215039923159696146707171232243351787760487368534990011373485237427091437897252647578302291836501247712834562052177741326364644811513808164816029826119193885679360647426834277915574295557579511772221519820219158675154228357694425527690234045246102794555770495128712520547826510292892486651204495995604074304855330524609055764302665426474685842784073326926629482294806254979297998016080448268300980372024398076055427231701947354376672214100590930621781538681920272570900539031158684087940050473482538657969438214714014108273138747543789564717880677242753768954359906546193812129004366653541339297251637562269550843517711696341230267226639631957924819008632421756437535565701475022345018241516607870568356625185681855928004156919646472892618453205949236659295856563063539049339033967417728967798955946044507734044541576023173982877690585959777523658050679956836113358198897533356215841966212131247959298844156979399805452750323161303656966540514441027372737809043893319479962176858256353573629074102691254815359306393141681033819297378541538505808939174805623718258294229351115922210129050884421021931251145975885764465102123895050649613856681148070501992486335149631295213967968661214403014648370697412961558546427603799896427142012495279860932011323339580622204637543422362399691886719898213368917159897731400263739150071932368021166040854529980968732785603567165934740212983015867976696440374686421533245315988239373732036970496063841434111125273407406515880712225083692975083406008181881891307798917946597122073790823447042659245892138641888047326416507602543844208716193337544526450281473516006251433399513712407578598170714069525627502820058821666682008992465033865407128982078202160442611625856132946868705621226266037442796018665632097012758742219932394542520335691663206575251387306196868881220665889016082262002184140517518817066991028719678814237122734014715651830586623562606153660491884542472733370582837788972170485243907412375946477489202362059979539657322228711333438050870555244228688871725135844361104953702250955829090627342159481636988294164321390653651038286110269127670676365809796788296598784048321256071729884477881242355358601216869993961953869625977372214532696067712959932940691714582443892719883607098049837987310502464637927983323216922525021455514375178582775200057958351062736266737977116401262346404924140311694929855955364607253917960454498933897630007605458296177445395376831166368142561932915984398752741376770083995725567082574081796509070696869467262931587359393181714726657891787866535178174632910475761345551824131015099121988582615469729181292122488689388155064733962629086342601983105840513522256954268075472136334719691124816572797551067108000928941553790165005813575581472502357595752192965908134732605003729785793640363928959090669535562075736435243152222934407676001052513186708321469322750594917262351574360666592495736437167086999241894207116462128042138237727275016875169992582307316938901160964018521869054986249731738756900776759459943124147414011209041825053916797618503444194410139863413951720409973826088374122051325812443746218633112959604130221379601664270873407224641637637924374967094549456531588774614808468096209629449559892261068259657938385417242304370887297942975927646363358585007778872615137720973868781656081512033658189851806737552233315955820609934778271275699250874558655184517103810468245757876329138222243070586791959192983858458742851967792801657039295521850983653104127283108026245866114723116876997695018787781025703455935257946071828718254921981843916747021831925422276142260681725920580682007359983456477101016007330882088574448257673353216036339082303068246491445339641937964687383488775883524880309083182362797604630575955512021799664765150288034515657158314567596453948708969180829884301247005286301255564625413496355013394645064120617111594424443747355100441340497303702117553307495732928691833289063844085143319405266946455764834403947833692392176188089774159763044867908207453947701148313541122948469859231896567193836012154786640181225482607544740007591770187026052814228315563122244856121940111559263114236304364192812698802715715274580143213727201727488422328924991389384924775003933131574249260832376796435186755323681247319496524688788261584487131690509907864458874066875026955285104159466646070362346342180184938231199239804072213326703910290301132175706487759498172983458739818723750149641491341685854943557631513800384532899687663622780993757432130642372242590688263360318108817955582839706940369547070445979314780982508947643100578273125725474036443383166362187427932124335891463498105098341869777537187449216382203579906893231810857030122286030926755382866475954413883246655038012969909786703387440933789094134384972318414735482457575549820228268290762565953345113021272509064246373147389076443108378892761790196547242048854122356819439799436813563137966131787305154194574636563981051958532212678340128986972905279767030395906406481751621249331468523121395990690361769504386543323848366077565766274189885926199123428196587705158029451587424132939752480489487024278287550069473644604576596492050807168620776527831346106072943903075304357739714316821064080720585742821700612225239136889871475982923999291876104056162633564509999522711294233136758338753808659772879822333883690508897768791500447742283246920826517872175068880789546869443590738689458941729697655621519506271444269958117506034419253020911590626837840646095215800607856502373425200886973341137058412565752261937446182345648251902099777491098623538092099160234425339355979152835052657998319539083906956974424030094332808246086433185750173694482222886793844573323271082625878288101072581819269078840435889218189102224262615428846687354046156596641642599108668582375681197822938876734289484143805803655580507418350676988533666147624333467857326169701508430615722857200031865556651029784379944140650517007501509709050187854175740591373445052597864799361315862474055882442686447832530958581209471090460454279525210613897486742039033629646335558140126374906176197302046035500622786130306839114215759954062898014385338769670052430214612955920749651043470551032408067742596467388908664686872939020203163002830312414089575242111113511909393208332767666376700828486655105962913707680769850472363331053643987037826291797244454415977952306871437975928314048185298629284986734623010843459411824604854251547373781241507865144560753765782212838447559514582348837680053379333852225147239614064748758773271260105354661625391986897851434123948501881780560668020201114793529913273583501956441113764349191554426801650536532886010046534631382690944630527985275243018529626675056948412107964312198497438312193278707520925791479941036998089856364983849989795429972173800417288998077344734952289451614583758875579871423437045074740675353148806620316288967031335535903232329671863982810190469839130297634351182240563969225984749365589504805925087009145322544225002581867738323440594751492485757743038985606195544692082408744084961331817937842115997429203018735402673870849183066606217085256107531665491256514624371030702606271807630890090474456639221539300051698565460040531458511781349183669672681590492690715957010458013055723319032175234001600952807039792562198715209579382209093934643420250687650630855020441003702781633534549292803442900934575393004136560039413036009261051196189957053770578675294051421696359207689867004415023185840222285800220198796144961292103040245422378124807586195141697825449700098280847337977263876086211350032303933378697713601792227056710776472716999887956693964640553328417097064041136275215019146468638956730278481902749951590280854047052119190227370170301958160654082240359585108200450252847190305514990011164391210037087513169967206624350819448312493560526024878039626229608195766606386210423053066676242146302004455116246455690032471540328901644503422813314781434753723262445805184323799107683173097228630651832368149173511031187891194325012851038367613117105888994907193269696216420501402023695231611717946507812738777554524816658841111453447180954826829387055637629257192038022097790640460435281790730454283863067730974510966950923917250936942275129718065903937236289394825096207036785491922352129280964435840938191765201062075077331579963451421900170849876538713186864418156800286694563195961038546699971560197170965635910731745602038003381121703830915496433120204206933624088423991299478552894345494765852590902851336273883298293460200572801287080708542398928983049605512966040408863000131442368729558005500771433952844008359370689853682198517506669025228518196573527268678396548381966425560747837090838907043824185032124737104783825431303168425870813513628834944337038263511399904823084744855601599693086977458820375442194471403562059284136187619281804683478767665698871770692611566617687438192907910375825878578985327101709383765496953572540434622859145096359416079123869066853092072429134236993825946681919307523421158187972560554269541059462998904057607033199657578784927693633451506924519529729389372033842222824596526123134086021631902487198719204984816230371836318609678543684258978503372191971595103849482400806457195511227230505898909534023698000700288936776461748477845129980529022079796766367325307975596055294146058084536055981783719665368933578527517344910795027658428074766533163345784671707579670835415108450694108204513798299052627140624890712544357106626001119256157749849300078972312396453907239724925677017180254902648143325941790368443771506441120103760738152162361906851054195312930268411109352994757716965611083479000317086990485145614024432207281089003691861461977989109459270249020638026897254529572129336642604770591186285996592525095684900533731531684797390313071409967171213243254105178513300304775037596471623978449090970601754944079501097725228310443124724903747069066200171663340419158535471180893230151263480228306386012368308504106859316910253642245877914506723622266932429492547315502387817761133073152721630170319053779189728608294459879731907986345376387966288064455458864967158442874812640404365271926744600766954450509763146229273972957682831698564896634807312766813965670144048025829100032662506376027340479120355102252604588007887706230441164799422533707351165711067311438732238513652833816482911492571570647822900835804362112528698228805320887301365732357421490392921385012858067042931592886369640868286569151738033724084507902615197682456301225411269504339054427031108165239292517409172949758562015778930455419204864686783657056698610497271661245931586527584689874384962573330630307599489631415133044713283039095283074367816891633140150456466186288560458080432058059156332862603351343221415277724188104017008674327139172114871232434257127531179809145746377109393548341838170244611482452033385725616793150261887437774128356837169575521621842912670880504195697942928955085228685294760547443450013014767324838265441661260920317713105526196136245867896496254343050979507807592474332390339085260383774105927497316776715687502014805084652809601857367982643075727440158980395738748778857176378874362298845020498560684111781045110585957215309665398772459455813690207057938580236332047281346156419365385880705356875936713022829666601970437322026455047172426778421162967445945697575295504712930936283261596484045036279909751719726834818764512453261165723039762335834304516270290874950521694608500509853089275273674113855208692168614185578597989304251796156973595613754195428305433378054431053654677977466558015135834795806438096169796619416816123747846677880284891398143357826997599923496296081283150400580298463415900946373723627908520794037619475886885362902716097056367375896771255949928122048548226628640319182112332273642037398468019066292847124329343043316038255301229200107941523304553473571294290603856209181232756563791143624492408337763964077595427025785763990513571857013161478895330159679093315891643126545903276526933391041078743326799019920666818953391917115639469930970647736754773952083600907996287611799535378699599698713684378264870845144140704301486309762588317017693392885184235558448395182057236675943799976980276292405356082244264426815142413615599496891125054732223560880080933110698633486903774575726873703930412081146280933392771864359839627865680134665583977514027680862005692111952086429743312035005862018774479674978714867679382879548613724664915541357439202673433572639855433131448645402753680530093485818755359820558530926520892917088569815387354448834034180871337242826934353836101502526512680753019039846010160129894822583553244650431069727355652034500065849882826976295721879102683579611012240088678339048693599568998386610496423287850357274026593483735885465747473561097807740322640579577089783481212358792614112590188868892347265762971817145581599484911553268368306028642660273425816010369667521807783106016440662164872999682309207185240668079763823781555935595867890646468694669256740924379919502716291346675047340160841729659275764588716875486056870118301165783750974277719514204123408418663782762248846077613318963112403278219378858329851986412144097349631255973909316815308326985143232775764392790895382356238480821273582965904560640795437857944899234684193613198261241818564849227913783830097500684596750865045576231481612909176199634647998931283442923773671971544202638489217263307721910250671245480144420328768092270265900641297113058492101010156439400020717139458050132902223413944006316914302218448491431172331963656550223551178707169733811545224768403326589438879455831578282629705155550316524036068558596197639317428524594454141601620709577987930407498820602117414212853868192539236241436408113848597182294062747013737681231878241067748905627276165491302397302405152587474368278204586333177105569494611963831127791014777521807625810439855936756661595864526661252268869455575832301096639495827286187188138208706714205154287418236311140641625527527286771728728430915084976572751091123567190465030900806408543893675104906090947279530874497075043940326399234592776554520681187846278415152932234374538813866848267951216748492607853017979950386061674299889847135369744838987326068279159137597354634051425037477925817196905111254102425030414055779106159455023866695515358031840507669951898611889653129462413004842968466263638102399749966796202710292620936973029083187467415450348514153442148982625483679100592508158522392341954782265511995443191094101566403691765941597181865565206626926990297049336080811727980874717637092938415425758167781780527713149981542600333901997903419739888317891005960761026558528827812716112871597969869226229180027860374614243659843002358620187764540722568873724972600473480127275526172056851377298119024846566584412367351334661841713816194147632619807919171980316621187791734853236058545207512428758378784209235013619631659120816843090955753036820722894328782504528145581340816393835345141842258106014069312265575822820328104562155607014897057401069352412825272830012540437101832880417144233510820815966689446381950498787198215568572527003518324154830382434984087167666231631229845141360165541784005247987490502427169697850027794641726615741606167899213718520251718337757627264004497921159156661711326177586964002937206202470532688402952526553505195462590783737970037635991437548449274987103420016619329058475328735087532409823330172023716357305246265118991968562897326230193799000494806185898283715979314837885839896335378799810784913620289054983582231984017243423414692999782703743062335921153247566036454736339778347358824761371436543002259647674998168319831745748940190011229143875377864048047136453980216834267542765382588054583978781870529871052480577145553496208823998271907313806845248742791732727975514777451004460994973749842074242942053133531303743964454893550200621804080182511363642076092625664370524754713611599694401381435484533627657609878986783933683212355147645425283386202954828786663847092937169879732739942301047435593273869766341518046679630362138459169593801549806429131437586455674951537707342961381372403705356248491179050553702571449682209220042414144434294151491322922821965340786996873958027809552533148912227663316623910491722711387186231676948763068846440012419801473043372195059585175236007840285621960388333741819047184067618183046083815616849974720203875093729009257494060373663380395619974218024290171178317696742171275120085178396480254476321192642231455633285765941232562115126658470579888901365585267290387035011010607992339471336407684660980935532957622450216759080787529817331858486034994737637648676618058241350789005233547482403271831301256355764675683086711577945364076187048482514561172688770842475397548198029858602649206161032395859394758691904298474166445083587786421991833407461828731333278853621294711411618384540546003782406570896674297334717666114165806523564440368229499365162699993530091861703283754843183326329068593945410736478830221855663461294440953170096326845734099227812622070145152160783116940824369684466728188232866786182626715801274206482061526624650654919110830944804947392617111652277853365650403776670543375870122275238623951304194160689087504238819855801373098585257029729953736757856143450958103039324507330358813821524066792103539204332484878482018693281655255133045205990081913840099687459955116364242544684826440324248549012878390582918996965942791718226801066753421185370243349278272879004951400267722224425241708376601059604824362678110490526141376942969174324158182760813396734091822827832188089624249071795212817561305607348807607163768249911563303990082381789410456186555747369289896509688072966971945274505182458946540053701253794080628437389529117045486101033631143540324739285025522186647104282078481166078053668579502518791423190167456133225647152282520294738943233554310865944889364856243687307364100905075012616756858430620973286567658732564803800540049069688073733271347196934054561377202992804216944330761447395046794734390423227240240008772424328045171079635635837767702489642224415218983388009679186653112400273034319941389836825877719442920395465281262877260336075393369494473708387401113087736834698158362560440934325721683498048006976941899997035937300539659795170052215207084927023044084588072318858082274640146713046314652531086548662949642010823168553201467742379254052676176378937141351555255274626905740450605970824519832462829948261012392380607315729144363902083078132723579807999468297760596618311103609355465534210921480555872763204503916490953680523902884524346108403151049167284739825874179737191736461323596880263736638965308677599556466243877191587272976394517420881829067840195028973128789741885492220964189896779594679678713340872754597426673748606785629908363158543394662549396342320611314115628322664826591168992833318819387248710760786824383824368745400357432182136392953741046859636300724522213904563540136413193647075940598735363312020982856358888613054326465701422365144138520160832546330414099703463632847298128750666472720089142166576380903761436204753593191532566944499346503891323271421593810634668986947856819652098130223008033054946921851769082614303218399648145954548454865162376321562889420484415727100343134512855972943607091264469765138547139054139494232179262641409949297608206948186879538410869378557073633539606447345632763753645455102805084332158311547830266054503483014713394132045882545614950776668727403276967844723412322503616017794404811158885152429044610140443911999721722512933680891930577441267656017325304596874724938716671233620065710699015261837178809480851992118630825639296866317851562381315477252433160724235225450755575920947399397745510145760080452013692833261667682091394998271520853228997526066298038065088617768952635625206270789221494245188665508258996462902123319434947607455751575672274972095857402568999169365261296572037462020959375629195296783238449149547737439508156276877010299411860989364222908818156011293180510346132963335743721384222902583433331422953602472840044505232908092957997837615569407381070065924940719910363987911008787002440087185523251501690282932642545218481484148226066726578835910211855250639701470016999690084061601444685730376104454234296881487361713646777748120497168745148719033000092832176878143160109722897834137583438978044603837327270438712349411154362290697312450545629382902703495341033582709651252004655582587096854436224884158442199026686384847440707134526662714188139939493084961042504062504740865301809389974299577179091066892948872957600172335863294787512037163000208281774266487466672513669918121231609592119978843869580610697033511049908659810288400901496569047998647724396559158697587813123554540598753964728954055687334664906328847936852628765771417207716529676619424676766142234866703640697630325188897275933855087111351660343426714510236253476448522469996623275534579750412951000761100390841015100670591724311770043036393468338400725202418462236697133602605907846390717853682803842691920341881088851501751186187350394327070636300286351016373955551500887659558412111271188016760457767814098870348199719027599553366149462672695669162839897848595587319360024515158901374660214445656672796228146503904646783500444349405528184450088678341782267079541151141394188395124576330230855393602601263729693052154545495169824611181727410554751243027459569094665759030563268737114156353579188020327868773188747259947039649807736182026652215208634338114328225365487809940310150835805949015249095673475645657614027157454152763960847140494729311738000323523810898500824602046636118534998251536917646869641513830849820619405722767379797075553212056758284458262003180216191598987202214782794890435837187712155690640413386136458962281195796827951747978497217884348271904536788494935750368784144842059141928376412697864836560496535902840701566887974966011562083646755473154379383545537034322989050843457591839816277669903914656676065548656284287573741092385604656602007662483721945653687409777987526337025991075097588080633562643773889744789445218305094478707435690078929418536263555550623981442391930642922541771929986182992489379659387425940482620212319507101804642589096666753401621334820024409992418729375898916207461990571789395329214891642125515251922826657362620157766120679811966024955063764083151525763086137647702577630237115870283163211362386101215863867401931112557106148797035863473584310179626232437768166746935300591393258424494174772277052136606489012020030176166351034321455503511199823657345712577810661180788215557262963863015457787020787348097062876972152645718951502991897563742523059627399950702880341668270953831151688454622230593204774907376331073710203194223974867838445910163845454101649826721003937361761616327103139407364711457241893276643245115908583019945860793330335406384136465293971459265389316510878466111373357591471529015566812514392086035308679442467859761069979738440355697500619086242325326531256195563507451791034878371044645848570222695150320518927122531253773762596270851190509304208662039219588086495093998221311767587113500771069298607360664098719986417878974591081115190214272782778485434503071785068713927934553788360859250064625231546889681890355451299883780919342674884873052714811854371925172297810750403008117459771335791501717407522990429063189115959354368992270197640016218059339133988056937407717227379167187373234438601215321466097663376684678683120108346533523138663369627667391821059476849262361657134923242266816272753619339645679890953859686391409472690838732922728235136826886600239272215430483495119869001628354097126405990416623578719659312895065417626670573794847813974040199740892213538220444935236276941561742013733147043428459360581341255880710906073317869751301949672151137438414651564554915840072634871591059246050301560245736011005951952731854980035427233423988743556812429523703652704530559518543217386872872709049769318023209044078280232652833161170070770883103860353151959562703224379970847830249419601439606999306295203397362568237288051263162842765042947375524215474714807448485359926964488314760431293125186139208031523860342462144944081511923010233038428267946241292514979276676616951016501558674439679806844721457799354641292119537434208224471054134542069233556760221407752346979846314368320019868813649827393469073167629717755969444075580157605006847347054881006081692817798014256801333301890859116521924626668592949514242186675582088163557316227200219177646138086142190695022560292199197513844764498191612981237982282063091229905496164960688765148391691840189141020045901569313540236019742150245822855707696834412800372789776477887519534521477586241487794041105465709134767191568117672424817578570097390786301690430369747068574915719669020267756756009884579017763525489705073426854410892833201625849673643335570065126910545181528600756021753970513164254826301483375066155813955820094201130631737503146663917384171355063551067477697363375289691653714530380291617443017571742932330121453875210894652412146323020128873216182644586327262358673217090488752011548965911769523004791967358788044435570525295910820898032830762349571613907672290345239632326631338738258548599789215944978648544654898687982122012945140189042542135499478905122910529604203650788308973973688625498401729427061299435548395902109055547630276583945148043726053996710920248476955619813599001363121619010704500435631111229935007820700137197589912348156453828231751992091642314780433555190293540769228892768606429489726494620126697463634577513160090448788932492751248099245805919094869326037327383363513395723394032029733741274119344708393752782051895366874043052455257008738116421258520118466666564375263100184433058211419961823503371645856087529646298706166487671148560832965250264845742101836258139335533704401492429967990544915700926067892972316846435015430335456348627848668859551759953610201551153304726875527546571688053373849414017161480407532631515745921897148838815920808070825965741980188857649871100194552729598766558927199180667709767237275888558269423065916436800193241652476050301608888325227836890699333535956850740318236882486704504047855889184462139890527549573530338459663463093432540359248247037944504437500771318360120763438661775207271670287623728888806961974495696232027884260507833134976613563860316037130799218555450467125139792966919436894811252339422121620950083514360633965116382124433344714312863037189826062912513083013986675388546782879080779901978907684880192359735806307967636265902929884593437963012401284586213158991711974279357231606746366701334042975852329419277947592152296933805575970896752839417802411033154813961612564565126265070825441672941127394213824916373191319152526977400731197516210752963928872338502097838503573391421285317299978492852815091506897730049487906773905361642461768334483832308118150892571842172398984035650839564592827597290535262859335556008532268569732757068383055871033198735982988122880307587297694752869019403502059517783751104035193945731346316550300905878890288255506427954549784318214308094022982409759262003886683507051623664423390979044555634624241140799440680811098650672509945190779749367038859963394953522064773877431510939433807991125015156360123696264062983472078318087113164592228274479391976685626049540069872227841269699206885029414515588240663129111508252178543346934844567299783940057124439980620657117002306251009181542770497323942610950251986245032591995363492527890097638589876521525051393239980433910323100781871949625013308043991003563578813583616720605091615755902305485406262177530892648104566034634292994299515436354261844644254068629053593964020217788830452158221149917966417458542492503346981629343153774980292534124585322043418017314990465877611774395046294148040241288225377160662877552528879614028502996486986436448093665714666692413018171020651411261567717929935273470961641114653877915604493992561318583402714406496920998168109195409200645112654474021449480707293249700866586200810691735199602539605505501540960958145052435446552323804511634842107708519864261836486896479140416479148084768338397489924211232047836997578845262786337220226819124903601929037766664652610518090023254104000820745836356966721249308929619653337597642626486565410371979618413500250311555517170959140042465004223596854593126942194825539904675328748577290427682641234416982384770512785364759335649662796329247477476579372742240290415828813636116803188325349698002291644689968501570342576972428112784413668886614769234802399831790584293320935381154296299387704442951245059652216812460194326011471512799783038015573243525698517813913002215413096094918289635007871714623962592987211910333850389581486476302809295217394106129816539739426852285160671898950526046412408694742985437774797218441856932231901936686936881120822725155601456772008227543701693065207378096319605152182899443362988513031674138647108644800416927324765131080831074689099687275699135094107326795367434107136642818551664008113705402384169237607852844396356829440913708368427922675015320087762941229212680575065178970110879303871881007843281613836091617631217136292241989340229557789305239430174445068616323340460260140144623842601863187627125852084324379174623249001289451850530320598524032533443387556771960209029258404807267634716541725363922372937320528070324910311121797288386104382869762415021723235814137306747169504892181495351633976546423189333608458055401484909538120144601475259772970213347204955751073282630520503065832042154583350333306275295745974610710012595642002304003852715587817869512164386595397996427287857516343189504675910372183519638033832533442146121908992292607220120900143701780950669235199711175512383423409192233931803538155394173252311720271355184766282156221556987387597086030539397650574556171831148151178067585615093226404251172858207517960852637466724753474087325043930462425526519561645847803444227340368171982998369589368363604113263088455628852180569419340536728624585981911276188432783304490639223268531014846606995886349774707892800673817650390925179320222898804876343697570334625633625296175582784258541766331813491208240309588756962863405195362728963443827435611294947544265450221277636289998567846527851831558840866047571562976108010229623137177115871182842152189174954591058446661271387799208147226708637590118274752299334066852276433636752554340282080839192258389294984594126215932041182330654880908754973794074724008463144468137037335913872962301314248520112477792252267520508260123410299971511654607168310058145514264761840523737968780673332227136826443405439392981058172248691817164728837243159063381814512412410997447833631764514284443306373713667309331297090552968335322993110388107189504792582185771006472137194088380324599379796430431202318585357582006316355027432852513162030867757975847314471174945759501265030905496520691566568191480077087948117751497927895939871843436520049584530838536934983112688102504403163740230637221676559253038180770717871152525353800737440773890285769601095706064886029425489785804322537754435988320991054133682771993490106176937035375132179933082319909251689032210020072497278407655868580267076619799044363532231719918923365264075714804184540839406259437717812170185094089169567485494699535306155344054676826087870374241561361980059668524057196702461220968962345361932375456107498888899514985976614650802681945365672685773932830394227708496515902879704966118526553414318531132847854017011323466121054374241687409645434091467463440173173418001092852098546883653816493239450541098033597084278064538939067828424395957016151515342943568281263053360175148787330328450996103763991870990544113854367570362212382886537939976246621570044301793959583965694444638176309345359706920391759075399391322790044940162540889494468453458164155547535370123943929867432875845782737028329665977106327004738465178663932494711984228217886443683078262863374887031103039407197903609334508676362104894200684024808668473261228513735238368787297248171604007800656510707566251870986946347042551108718992256004221568287501941368096753430342688045998897056150557655935759384101406176926589932057623449841103960173301549423523932462307812515215197233695658612752617124233709855409506430471329988696412725606708235309677798930664061470295353754571925817086297845282918225567647659487503550819878194846624490113423517119668482954298321613211026124909103929775289665128297829596730032616578394941746026951565470149045717906427019267404290628565726760478621985766826764085849282949955137440230739144516354696411960898834515870643806861177221876294809585964378876818047554891951918247040282207333445757503615059860687192536983365569945223529505255618911443281738472787553386655874093474616940397851132444204977491648486264859766606700649547877935785420107679531179717702508490554672005660383809775105819615106134190687571785060412621685943520327301012195295090266165808213542027412785943185848552653261215894645231484149550332419755360520764659345728799533837232724161723920402773859004142909515248269398574370863171006589394811169420009155238183609765321925974624717356118088723870638063913916305900477716990880289842024246530090024821364569814221069598282474436562649444529420973994586931709687218837185451219793744437783105686730745784810825295696911542538540006349803384470879389347825732369134578267931510181713297999371965019689421880880464665282127156687380078792209176255781636395406737576398868153444666247513529643780120137060267526971528209220611326491533913091757463007649107544610472946697849084433565887911816255587802196897712480146367594370346929554938029679097661110268773360463373546763060208954435835337717088872773033944475119863862016035816403000446465338878651505568428418878742573573470918693772383073651941225695387768852814907555245432161538710720144331574902021582619094220531066949249336923664108312827130859877509617507176286402728225596769378117742846100391262108012865010230985222674424305930926548566156264254258981721899214892280016823045464822982597036332894949865933542098880714644206036673229625514337628072860640295516965118174288181540714091418942318266767075655285191020279931948377505830772196599033860970603487426274983927439890221951739042447413009034247122073946935066745379813718169982643831729228470259659558370079757309644338391796663985465864813260072723059711676588070303995151050114579395277967073263313354873431233366520212753757417374103496267849304265272149508883628891210317089247716875197474192909374808881332977741148206336191189765083430419707286176797291410699343064107004050711701849105575307731353114496346120018273238542491314294562321365562292780938135757202992677670462551447261024861413673166273882657491523817953216155770385565295823869384027524085668468121695043343614302197286889033897325778916168115021733361849760643571589411466726674106960252840502297649847408011690219412479926799286212852046960357773198154935710073132183661004273805634627174213114650024246199950324104001659511129850702470590232029369070303399419822732328665120150140545671213782511584927928326880894217509077840957612216252019277652329474776979631846428348026709815981744474503203405359560734708774695970182912193278769166489577726104404612300622714587080868624693931109518727446295128734244985184945910175527208966472961696991637000628649834790158753010316531825123900123527243241872318670873213305097178415169831132245786271304745559299878818799238206933989892370726106687914979141648836560246813254135026960389428250597545635869334749422146157493255146811367258483958724552600259340440947644177510784156132238317978348207907099961855798296881544247188237042683319604086142610194333087773542602461172283040664565207690025164358831349207914982528695136617351038654321561488093271805986598151368538827088712709419543184804160621685068877172610298987984149194093606871838381466768175602286044987161866484982636280000390693448381107855436315026174162490057002619052741146055449018600306227467529664018636898121540867365519523470806611002835157715739314619729664897105704554011291061331388902099284443745307080868018744978673054717020088832274986170572444747537439384435083032967573182579729538534023642582146119346321397036141310941906364157521893926934949158877787585389856955195453797779641163954668090589828083209587634407744755246817895914181438466204217862874394099353418236003794493958866760982783560659650765003728706453938252113214748802836627576514940308851224129305322039211794037568386658164153380966364027050395700488806464289100620921377662005096397053124259588539094030425897716953825512523008424005567386587524375924422651114592905767086938909351734651577427173508476505427178464087293409726395055708521829246516490507181213519814443820231300112796299983430381611214172217193941951157147376613383554718213395652387162335646006307729411185577360798512458834981408480373995700882955670218629604000683663670582246733912458782194836140343679448512803343925620518301638211523124028027772582588392261983082904013144672554298424765661930482480025956113588789168156422384206542997830095667621749004791721239932689597229559405258567329886693006254537165319249759701394777677173493833558435946970812765935670158112894552361652544730309659298550349560982094830134653119660664088439115637447202594432721158114334551507003091884474229105190701408458773375868247346962441277973246393146137210442297470331093475000579194985527367822262635585203136253065456369745956901708762760514928199200752977711428462902433931396871397088345439680797545750263389670364110693714658542952038741269755154073141366964374810361052600376902057931189418244215595993970571872938092177438399684174897894922436988526720288779464510151106123877889654850629234648666368488091371284095930974744486907251996976166633027519165847265106519089672160521564806152523048120477163030892963993121708175446239709837136663834727064062302618042791499325721275822002612887670333876989616296408101495737424943780172742738189952374555315181243178556342414604971513569275702031028361310937427946586653036346392896535971562131811926919606979331251572851388273410409054908075179475960051602385706377572810051642109795441526525797095806173297630725819643114012317220171725455372829793944155196428114501881902625260575617153026407512105082012257942175506137645022551241855539248416269867633974264374498405168646257477172679796326834592350771953306874921975076447763190707788682573735584059558699790767316745150287133894061479325828014573329360628043107177413196956074297959426269002273955955001970185569964558000076788460718283074513737991221994963523183096033951839041244990725548010701938958881378451870888715387931988288757569606169038006357916215320737048228279246426997074733085410765473191450936704930809483686538311136085592180111891216854784183481095956481482097158120398409995523621499377767433791613031107509480844349248771841157781621098965474968622712371439766028739920134454218375211020449727724460940005327286944543644295830694991352869514895609027064164126453646408868521310109565942170598747217405467640569162820460117288373672367688053045947007305267122601815388556290605583257574518054109171959698174923644809896506138458960782600528164048826734331599713944048486383500750799523761696042924594919908781140795976900962629648459615980975974576509756312006693239713602996053822052490076425173744502531843924430542279218578187110571308726393466832463997880324518382798420491391134847872696326530171559325455450264023367461707544049747693798775370672152655667624616284919409425668739167688521067190336509362822232637053345971623158336192373062649553458319934101147925567640563740565597466864193865426500275682277379836774426849167980527449921640289425447722502684398272582006270036015019984669060315032146600438963335398986698685746206504713022616049321630053128950192675200774908567708272983591208823087435813442289204659947270984720408259024157758284183061037317577421216982865373986988102002612480579666940456300798469195517091228853628279377042553360869247367905218593541956773423331708829460592200999043631205941823200635533323133695356755243336463765862389731532507570735964968421395566555414959850158889618686286306756901161791935852702420532959695811354935840012957495224442652157039235995719241098458697448777072029727899238907168109576430327897307480731711005212149769269326825905686000441940591020422173472656107455681332419081251076913274072540805548636048748772605623167998447283741365180324057128164948554100533397008611420872694238145809790880699565833677183940446260716653332456609479568360037000019116868314396012342676844838870098622394741725496590997285377870531527451960420664228309628252899138628010003463449008726567893051503815042496396803483891086768034256643547248110109337087509450041573843208775514153718108858042097294709275420390472231294902608772716448347640364104751032509164646791631242823274353081204151165316089880846792887756152359064948356019207960003238625659174563365072154627750319144401159161305522397649149215252413053807741533237607545500393333274325424658285903061214165191939589314768336688597502510745966607655262232817356552368813988643022601483698221929662273620871503159260423643335447560252197173410875600995637632633847037677930353897352888854403308590805880468334220766000813925026432474330799900053149067306756261719065713636286974389243440824707601417449249357400536575652824718518461884844234651185011197052399987897198533319872306191723183207993163946059206490554953040247880882499268644873676986822576222599507701127371518306393755088266708896956607487998170228438313773394579160103744748862784559753605485601603155047588119918083899558606345550489459584684996726814080456386170659934023852767484714778339554939142259557242548073949451436098921565544059241467830779227571893915953113584599285433084176984139723571234812804987146385917197090141484431200872622984087520752389068757155681261664703862385523441165609400510813639345296114865896589976013447232914134717874007226955027753303577572584546288835072865708209549801966782030436837243236166974224010396220986655839442122945204437885290990036500178013639329779274101617005544303300309811327695911703559575808200014566100200183801756467829729579683191657007144018531697189835570839345948684167143925501793803551095629536189616831494046843698488204819749231252989479071876103310251902501802312862767190585699758606066511551115503020020862728711529872021238562598781371575447661090513859752752273228264145012904094285676030441627838877063120043598571758982902268675037087928982878753733133130751892745836283169634015636074032464097207363770841022529082683093750603572827921735446348558420826513323724710751865445141555696836675482555260660329831942386030592341167068494074069196090036298188427893767891206709595358662427555666094081220413203048287514588524551143893238769145059206263143394290997898337955892002353034572573712702968521817597387509405623231057982269737706873322398672180946366041624194098143303349089825598081784902741124531499682495996948702323800209063109293272382884852488898679464983974061879683940033244181552585596359841850106957801174397369462367793327384729747079810248394286644202146460791806632692643163665784457064214181158809715241771632306626543681798365486592486192916992566873440465250053435648538578029434538196329730075516044305125362666950221672484969388073741700887396218281671104613848839840171633089576196704176952835314985987913711025663009034820737742548701541116082306053598461445484952564111267044680958419532521677185528162790809354716729304611464501414052341532784826637215037514072902495202316657212555244732091581897412258641179292318052180988210919221398484773670926353993993576801393217958126626722718971435103946528283619180666824348031311250055728721664507446837139232444123813544479660677747615970688966482790924044060686792760219579816385142652937766566693357901923558256241736363651548029672164375155924922017824352969678067708109439983244850959810706253401421329521852037829619700376237816607183756903071580337009368339036971597564810653072732554093586970950026463497177941063197239417300369030964436616753800770119752042209352314345243679848569436480249413056292126540848018240777872338828334650480272884315914120297284700404935044994267161845657100603407431239108385777618637060912194482777487187630534464643728373055115550759835030750182624847575228848112564351106869906342608373568906818594637672222287569268434610474284137389851285484435107601112079231623948512990810321403171364488166092450859006108461702078101766849551972906756236496098886763686800401530629967916366750915028777135755990207608615314902682490108225629738708360878510397866402098413158652898898718694228426811850760565642829029267013611767023488440124854054832795981241965251798749177725553560506054851311991841772513351885630745563626461479793639931980790193134949003978423602853820734205275609967798205045750336056347126520167043709281041378535982188593378141596891332063975466884620723626628138404906189906112667991928375147896142516540666450748380929480880545995708298175116790755569369411962408667322906043082175257345657021416611824025269432708463129128366767251747837553114577838635710260471721682686826844986578786752772964678315423622067682182492377659983903911172040232644122850036095422879258183882502328742504549812768394669352906041962849660277329441384032110179812097268431212682622294497261766464896558461237934306329483270389234677206743657336042969934220158638526010289442435080482165489182253164981439522067673262587534207295796200893743050871820114091880055656677337146037657249059927106352399042474426056090100159123675680851562884787181161226233974630345510477706736504415327406953963059826123664817616346454077337653605243903889005167772538376036605324716271053229046047341477369181226694655083767820664040554167132683050005856440612601649022731341230702328023382118735187357905871128793148026477783398418597325472279204269988128207013180240769266089649279163719519956865888695343316694962454302553307216080750286592236532078382099192325954870234247827155339589749902983624831222718707588261006209830756252356938651302100306777162260071260943441055251043365715302867320785964806362407515259162313982147774635313897503357213826280318688495429959349483601669012841354562346109364782113238121425665130687099023303929431544667555563483982084167458680806392755225911590664959578194537773780442622277968994858426881603042442385114018553887433043769381718470595446002084782874438241644323145933794778298916330656853565274460378728580913534359515279768853940742109734091117597191192929943237604557802253317116012418689563530915639322348515152965645508733666016465856878299845293702108885873966473523293409613162979776228747959049827758553557931034008300301249932121984117604269580552589011827464164139750322469659740493995647964043100588693306129195779583140460960528107150527743045571974248009310680233198365972883528970976936957009860444834030506937074476886099189501907004705402125063348999233226391366947987041673883800017060944687331738012221028483063203112685702517243239138964711184640046445864356197991495240839209259327846110636209762957783871807139278992349724426751672546152898880198174813133658876065925539897579324887039990040669571399781834549537607941751123658927441781268308440267118399558377172556299174987876197595938963261978312977248911988141868623344287969663926705420840037593694726115993300630999324134476974953383473666857100255883870389402481496508382768528736202525172864019565094068828777086700438264056249527847277341968116125471093342173451289797151632113396994667436308946017589588252675898425319483401924838577938736964411860509905276605727441587582339811318264141111272505899629118625506833580835612584672144574650919374340352903161307546327992998278933575393691283366468659704955240215812742919824755258134809969117028905708373767603300517273251902479581298682783677096435589856863824316351957244426290752076844617769970873354734709821632481743234614528206513623062337771334750351556151424641962233358168741493351873025319837465755611332849793574589069173163733205581900467171923023693303099516263812104075020780254009132622305832986887942299731649116881997895645822411393002945081647227057089938646303555119686467080437713209637619158439867208833225257524540935542268517176732561243752853896764246726355494724733201437030612412170291277231858500749855254427115446208767237881487143124400147283822503189402934476270773010337157412440964070187899988368571583319882715242633237888122647859349419568430763748513575394220072078795195226933657069569158061195253296616253666741373152888366603534220041420067249700198101826223392132563383523870727967024309404737721300694716830278988832611778067750644478542932511998516670380350655358945103193948498172143737760162226024586616237346506442090571026967844389449450101661678677423772686861328052088201089161678088176988722308135060943332578417328105551779677138048695032487659248608273546070197903693727253903117180866311885895714372471039285340682903571000180625130323857185199564850625410280836519847851051918151055245222012710920894580328115915313793813591307437796141693166452446610851357667108729543712058449463275361808390651729051997215304882370586403375488173779044222409352060335172143589628686659687752462622759181832850705744259908318058721250977431211738058601152968065706788699514707630833774960232037031351336167962033255291094036790271494702640894766957261072177221476724124642260087007271708044196543039201774909804432968064165163691452335365581430068573630752145086340317000895656898009844996347711856864551067534473697016129654946630249951283979922815050432190990259199649153912400016595806687793002129144804142787615628479083488643996326988898543063777904301206969165724965962874261902120807418231056204135200770316953315177761150421867406968517883609491417267771931817754256523791817665444483484102788135906828759860533199257764750831625551962655101458391672902721802080527689423014251846350642045861936956598656593948907322257613181493418114746443491869778079153237738497966081328021558384102413197228336043392647538153316481114424736777257760548416718426660285152995067240885196250583816444090506065909552048825564754065565667225094724368610392974185736580089334589134239705010035839392102601876295567640880426820986446443765537797006414625694852709641371195469560487720092763474727972149340726905166770536780072007738144342935712226557223896595918400127319229220916627169442171036060173049415740998621524058475781383893257350382979740534677641581100966545303370885216495098484440866776184410192248729489807547475019343558619970507004800048081964060625981676403958446768744887704120374402743079688224085249561217290354288188590877794915250124995382232698177031212384017022698041807251925841236541675124884512035380039343440175392710872985793845033642637358162146647419227539461198324105820985463312918149164620473443957998878648710125327375274346917216887045031991409367669088180194338065410204287586125201812975580064271269819160660173316734052017493619759791470817628682750675915353493773586585215502652587106757577576085164204712525198742249459292690096866056085933377721112097156793498443250443166595918927066629284418174077640934244052566262512161985424259456411524784034207587951550486284795668792589072640273576052175138240373382564105744249769089278806331518720269846453146798622486612130487781453346971712090102207330042402247110099409191242652764188820224487216134370977257061451990502860456240675866520681345911383361144869395861743714707979199437060620202641235535678284855266439607047454603574925708323880408887718055085929006924431499118700735809573023305547100616940425280171498955442131684915884622734385487949389589690406026544698615578097252013620214412818943410200808655028573678853309177422955932994807869480446191030726381108958186528089838736686630734804166667466205209382711156677802329352439177582428691500655272491406492920176933553834414149712085413143137535529173131528389313161314572091628312392759199151628315843908419592433535400764780546811628300552546550986940408472851351907438325231490311857486849300445151304082606800046584835785817968198444815500217248139633826979592110044785841357083021879254017512002718036073650184335860533480395613244103368486916950474894678271626461954644195173302874180707954324482931517992280998554733160879131868796084354282208466555002691405154821344839439071330602440338466410215733991785190848668006804126915371880007896640940092247084855515712716703095370368183031881362967770111029664678787967592724830365998252156104884279545766731305775075276922770612739274640601590666088525633446723859387368009938178141071681187485476943420828315398487014071135503410630793003354755892670798104098467895019972330660432546120464718504076115358149600739638354746618648216588010203882780615124771277934041880184144885462644118875053763669118097011555885741148149982549608655316435698093636021625210684307192968491423850444174762187064192479306554960322655808183043444752739204365224366690859661618680490606481856366694078430829338543419339908725665871256199205995878874903095975227942619697959499872330788103791487084820725932719318806875802444812257341696335423856912117734649513284109669978948615367430002808820636460685569712736560686760490010402062286564215356175425149985720837397390224669254839603188480806729885102333894117508310319057378757173623277328316455847537366374971845156363538757600344802519921408118489140245558155105222698129818543458749068507915776171396337557942556253531950230999035403643947191630106288910906059013263308620042338041735482780206759746081477440798522647504678491332597038312848892487070449736871013858004215933429225577091463422015142335441191007586143696570954191527578595310899352783591881092980401584959708940711847872940142295862433856594803983164701765448985129615240047950371836838012725487473445380922653222011530275236110968722780567039764453706110984596068054725370218046443975400625842278988302942079444370712379013044580431297504817924350334000201876994264796233327176966832659665508147403600980865451594654611510500580285542961089503733142647756577225939268180781709270740474724466816767247397800015837415497352253847900436534214884333439407297177022242359834811744818429680880834401830587748925141185166420397428150131047759403207510593418558635770600279454741913897496186518640634582413444176028424378682291744424910020884753956122901640297248116374425695012994823046554545087948822059954006769593538878886099612856093468001835080467219098179496611597822725661169296497812145969889372220828781797183108169091963061827379181562910009481228352160943686388339695164811393552167804705478048257710027577276748416570092007985937475184493937971448409953960079653529593905175499972744093699008920916127664263741008720812409495004265141423833427038397601691358158058239877519837537942626978501869825108520354574683316119032273262836640460650954038976861001667533167436416416236754318856069527016930670130935384484115534796489923799118069097335012583916669574432049587726656319818367102138733277072524318279467398743601538240754780284501098850480724038866571086550207263417552945166810090733816699852929075326396309435233659556186100142156510264051377937561211294561905618759010696112605272676373225225279373462634083384995711453045173051337976986344344082600688588751155459028752678557793033596890202072255800094770463642055934239560109978190730059514598511218240997887331221409722825804773793587334844553693861255212348645953496806670217026683500978044478633189502408747441911649718415993804366021398849224014841142041767698904717758422320111618820479659329073359806056471210397139362471253273358850673726764288861716331111746037034672553903667567235563910225050307156396357175488135299184617573912831085171840159630943056025496736048669929771710144685120729157182194851682063196091615817328341155346326374719086918624728786528865456940721082532709545203304868604429475649273636342379613280648411226146397300342059135007575889150876117737926989175689800730219843950854024743593550404864645999101289840710929711456593162272190322828604189355094990607185769642138824343428760666154140288240053586583917632010373597970649716449297791809680297529241387280943522179056656983667276299190016223804899847480119409253225569961274842006191462464294412923847213426866338927406558093211876130602197243633633846953617846129233111321770758616688050382517346093724362812370613086347087182621041377145563600671183944279671870324813474657892128705403509078180108866856030300280901252181392205176552136761572709004930353452939765874961150241390261980331118971472524322291850338461158092742886219617101580451172752115977891703349898688219453876856681223883658425052946295802684843292743919616435910969445376348876836221270470462505058885104442885470546511260918353335565520437242079648436730902947196561823797148895734985945057436051750774380658478005734292631127600617391736989082134086095681467538368561106440484605093549196359595265479819004795330642623289793845173163912685176828762215994966248489933293985911312691234832942301398781727949672246709928860899800652071949954321504920667207106846172024824014969106893338467188969821404797648890748535145401965335313591217533244423911175209945646360557947264465578318315204563062623765367975607722709656853569253937851254129877801747964695494662072805399043147450237136423679627271969677491387086555215230413128484803061653785247955585379473325992523392617437986108559485815656987614109417920364156546949146773599357726303161500199103162051475689942879202975569179669786866538932387484074410287011639478045598719623474213978726762972325773295068495008808968798592594997016101166342521650244072418116238604044661498478296602867577457549696362766131658034441776238975305121038295477140227384278588921431027138917195084685783762718368611869385399321248122237287434964213548724924659752310955607681353458965398096507132020700832347282514289436094781897423556777263920558592982387836518663909070203543964489263692275981945408568923112416251123982988163744773164244018380208625184741086764912130013140586357137973560831695159606784112517867917514687880237486742825476149549991094363087743637922384093941076419141292587199362694755138527980291819236240413230696937022581041265278854825795641903135299505393660899030978999882182994385570101142986613013581291755964043273697738009872792123095372483688847639990578818165400939672619637718800079659547992111716508812240214140962839834379017839328803316407368760129729250527320389882328195524546438162946311472460547951159144683257858318475176140844824658596302079196076277135607413958591645587048492348109838993490002041416817553853841193137980028922808215478386180249911532786126395488255802076073520679190549835379664733200515068544588633912534456602887536831161442179557629827942133666094278836740842149414782927345706386770365635772974533463711232256510557309908127472207650888102105319726248556703026761750055917161987233466488713304267305958202957929715149002389112381441756521251255879821927828513006145339236310243928511069874137905342151287214823421925096584971735269036045582122921919665822055822087920784534143282658184431319728750189990159508288203660338774304963701455368875102834914398371349139303224090983141683958076175333964042155969259497205701383806656459065560011051239069630446063323476141604031925034254565460810938182004985063999015427062510013110964774762262837074407599149617503946883562890189443689849533857775436666553239362587858947952589737373826728379138931429047260303923884634016029591197956690327004002867395678398702461584178366028412278993536984569585326616045217666231771225261054032796847972379967677482814115736278051609590779134637293244672898092621316309076032072028408258534922544511635022521846876087312465973156723721323954418583725597975104038534268370593867142212441159506431520375390411209782568737702265277084901159829910726168895299381384147890251421470491933972843854835550170768002844777832885557850077490627238706932996145466067501295497979756453068313460216135667933931129075324594344286882353208651761745231506382974035246626761398511815052259535584129568217676128870119675494152348310144134430594260382694502668712546878445149947130643805293111440330870542191629332713524299020013143145455913283647126388962197972974332635165973802273324776868122743554866911959382805766731294350450798877005118585626983698579794022130519219505805687167222624839303062321181752515228815970326041168554766112930880827677222025895852181689978092315859494883146177132261033768987791909754374144825129644454341874928602791956056635605680106170121221588135651113228055439715343102725875500450446590616516967568573718998581110034800923726860203381201845815480810670524478991394727431340596060054583477266081025271480936200937404396902377920091059021814190075039873414922262264272112042551703917941806835876461207311028394068824282025598212594550610454074346805877629246377335014718792357129831343748813710143075283166252345807188970092616888318729684771130119810453372009479433740914735125957062381833120336903209926502958218325826568711755839368813256041470125080331515422929517779947421920316849670221592768989921931394436273413413540130846190509646290876241001468380835115408924875330179968525804539249347450751112960668947481000818371169033802347593109652844102301455786413752088649702627111779482398019641413326891847754448219810829620867783313987251918404097781440776488408030940360440229045176132730091173915627697366948706872525961527591279296794989532919000313127105051092073325324472412065202531532005227787047552925094059768756535664765047992962940031254443002604070042584548024636640976162062179493590473500536866607023030715890739979671586009259679552635392232258074163288504862138837401097099689427120373845802128900092910251076406226209698204873611769473149183707242520720194611216354894545019720086687852161127619115593798945512926833306875275249319902907342921851895438621243049810910393041007705008014310194061770554162432506042519474138215069298398298937914472893009166514763242394929458747374276949286438922299930905620082896601218617639711215489992672451332028454970094066567097893071682668536623409767542982935433662412395889322310314579641506763945933613776982793628422206116590022863770823190066725448632749631718574946141037748756182978287714213631263345892673125974234126589054570246435854458900506821793921816119644758281800767448337737274637967100740267360638290970534908876622329311459090182046050613747483452500145647679733006381714686653799364830387310791282590720354585725902340109924423544291788536472421625962644711725941437174048814436547710558552856505600543519825752484750910416469148389140062182230091427937044586371499595151158476276248526931113481193785299573434371927894896958402601758467748344634852394313041237624470054031627762821927070954388947752296463034056997640329665821470450857581604921254302724990203102076777702712619558452243220696721964592053791001760010224128471450486920183589568269719310559698629596432358446318148048051232283017079796704607381575733150695260726796506612680348230224677228307177940817994749178100237316311065533065940032563548579664728917555085775667313610707550189622373921951792586144761148852750016185845590401195437599053318696317436831067833907474616217529770702962033502020889715819273135544800159943873688995917572984883602728621759499627610960198167247121877295390372321969224022305431077857474583137093343388407255418640240411371491688685523565770672362097400407966164507625264142215368785881069102704307605029977214455541770307569405126677721612156878602187831083247201235910051736811682549836361742173634626121711202056356891226070133899847098230397889951136459030978797489608448045352563832038575331059734624583587690703121506273468251273284055370376486438091906198893779777360067252540952298640652601282778183085063086423534122190195386585409062141240118972663022381393338885227574449345293983138977880031798065775366539904655560350237129287071686207028857620423136656927843553125351950422128818507176734202511179967630796315839393442074100089591455042541018585368792218766748955233247179441550657457436287665793233093713751671390453978655161945645742002321834626507777885231209286086658797039961945622985475110775874121609111075935130275746857334629710530251857911366402721736926788456315509281502910704171116761206136192713031713709131859220046748271719128390097650297030921566795229623535443944751372984466642182098289277516457374210093706505944480856917673635685070017289794182353235097085075061055375727326167917854210864074639791058547459693779321157211680315378197211489824084651337985200226555064141626617441571279038585001790586025420460585900140051587701425463951518197415984010888262796734436330134676889827276549964101409393178351648324672058423282294175901494321282734200593111844102386972546016941687280061828529253336665403943204944502031089366915613080266367844306480525889813479381421264156899122679138826422503127816975871603004393732785411590930977782906201341318863290346456425256523451080522773144729900871222671626333605040418922830212662606789279972663809333515879281074416155530050474887692123286147627685339471375460544037272433498761885976382892092746551238767778395442886028336018860805609927098987558112492101912388171058811051116276290378217231828366328772547115733628479507262080827169356970833009702929298010020074399561819451667366479025333767446988399558730792945628938911124683974610017044128852031028468438157923751845745278567762982801443122972209499843333333565375351337426078632137945500563291098384630863382989212745456837805936742162221851733492099496063482125349698143926620841179195873817830781076899341453452176899390953741342541110708855591227908002459610744740278220500391443329301869104767218131273056740820339133597908965179122339585349623082706750804222961994809305046468966882042778110742036668711838010341236454819649868038786618591115628513036125256661542592450358842820798763309423673201865748627972696073995771341988733286177150100743379387331391721933239007287430090260151709193256505122715539315012319851091260799992252454771488987090889884506635918881076897363600339358863507644422560263524184347715858220397395711917032724197701493716854800218473592802242491158225079204460823969589299553345997437050949659595221148837344464847494119432536479937467786867766023946721545794624340218760081697628366102154873695243468855937696869974415028689723125631642444239555637035329923627052634738240270609381743834574611219125844304877666885888023259315426142416853003357517465024522528931915782429403840292519865269434111274291110136430644947028487043409053956651566465841239917816798074779834197176223819689929760164738756087320472256958416121630964765673765846245738968529240605506979521829569337024362025843138368864975413108017892883094770872915460905985298547036662182441608151601974885383708241146643289414371453507177698488516518781810874535030803756735484789034320047743259165251165274639676486041782176030755815929223874552288853254884915389240758519336548904915748694927995575743471105684791485122128828376965561386470666399534909581226834625726156366765593781960622490769943757822984277470195030880819578605187237412330337409825954826218328459618133879109661007966635063174971724958446109145031774601799736305373595099235441964594245332734744860837518750086042740137721672260402197719244271324830273068692403436484390668776039039234074053647413390887856907022484840104017100037225770575856953158389895329245045444170709983900919656376315627357280152715898661079837218226138849408781631493082730474463327571367788536632842593604208464527535318143012130571391697747670183794242021849656255305058794101965758693151655268411759293758253104480593586761183180607962898471590252320505316232887426070219433445320810661959126804397138696279297805010399506782433343007018648179751103587451764431506085013205739023890966344013409792143867763574967921546812951116268555672961562828313555876285264699230450952940824944868356065804784041834028719441339774467336208684429932185929938692147020512998272713735919244429688868250631993057636616442841779307498986596495401046153475745422511479983017653080460695154232555252999252311108681446496309952262084295763760477191777702995704235512133196745366178960684667570619516284831588002496507085982773218911402098702276213718076820983988725847116745925248372326213525396302921009447062502771124054288835151671087352950517605042552311046813231095869093244637330816184450859054350794569842256040391867747571393853860976549878202810221341322023497280398840449943024459174226835603961310794438353428241878689806990351181819453942598326787086240201867790336269377311006979103926487113646831309768696389698652349540772742008150706523089947030573319003010278374768739761253764811735545850167171788008057102818980191367538059169394903103279027697258124291997745531771903703326648245987929440625868634877189423771314174084658874744975238512797833955923898816594840637199537559651239315201998996116107455227151428029517134665180655425636999664056276027936072959514903535222986447701470794464375994465696130858351471715864537809811360664459854698525911073653895654359034199406741181574658673240297945321016326890200349475791991916426999604212225377163131882375301512298114038050440251686249501486349005688224949295264036471902760263522931899483423755778669908572577087020268508990399429672779395466024887320495330255636890022276860043439735886203468529092206984888163506475072813179442071486281799028890941662522554299533201469215819048839450680944311429314320908365655782804199846557246264213084452423752289868892171290406914948527577264301737709078313592907131127511061039005914958562685760080647745053110633898837718706603279160688935200748127187761692167235704433289670242758313600353853849486149251144348807648077477426931277672668938016141436754389809678788147849616235280907577683070871937565333132443105110146404364122710608959442637646360992076292336726996018962091055647521398674709585112563409657244540363599921321844283168681921011684979471176141335302818084520645015663269420108420836134616542133148951384396554239854297665838310096192497570374160231255457400180158009136418111843700811778797788990348543234822601199266457857727386723216787575511202881405196261027640949756080066308436324997387456657653561015638879163011723367035910779744992968617442025761450729794782401062795484057233174047927885073187501534861759965750529537045642605999684850264512551901139208260468064205628270412100040491221040122668543862020485092998442381665953565576143104648255768967048544064629344685884582248795845835075232692774825592882365538162124211451691227623718518495752224845288976500764397487957186573850147956357387643290057756054753010272545831991442541653123894293112850790555229905704969569686262478300304270535554264866865525877029353565586780365975245455636835841628377587548652079162548989022752949621027753124432722481308395086688059329485089839829093233237933929748087351008871908081782059386506549936875137994803060084910305958105720287702165247941521276785059967314713514823528707197584852684606676322402304199501998796725423056902268446997847425129943208394229684877049230909826863978987464567969060115962391840947866194636713380822499957827813467550721372057068949667326528391759883148054043892184042662376615576986270029223340307734405535715162140959702600265724502947591423394184749897548632323605169867173293040368234322176992128616782653617971180678376000244136749954661074219401697814606130007981561737152644076776357871629621399008142184699464918681408283817541001607529636825858301475813033036163987504603220817170639322299076984979924004197676132961542267826623014022074131226672863632648469790261124503892613878900276446843122254891671399211872007130216076527551866075761262834258478969508203374090850442632173722306046714516706667855529483715335748392357259161778797626716622135902560796148649611156940274561900985771411548078049599136073716573499780351005421246940394460920059612026216623605425389917425366797762699540265653102822538027955355694326631018793805750440940430341492116773384062911653824455981558859657070222442313333948601372916109521775634617663124198687678579125680741940521920503350680265622847939882065894404808938906184741773031160133458997239532060442259658392534908387425125599077745308789166079651733522507579651476577152818358522888556597900934184518558226975782031062963644630374149584829765618514348197388281229029511013860540387700430698738831034669740043397447021461672502377825254847906697537875384565623293407995012976766202366773033255217623517271470978089674488784558727911995377773703505706615521615073356351421517638825285800324380574982845051298086334301086693735918718736223523558403159479692437000381805686290775535399844944419414838523677423906041297669547558425560971648874341046054984276019963209341515053751255138720736482724957384837585329022882679343895452774239302977067627609148167176459476724213381206222124394102811779652075677851202581277941518801176141607108845385640433835980298631119070374770687778221287449816436405378735702452214690949954190948019137692612320727734200421638350528390489053915585052792412579911503915764099585060451530468936821331866723611535273495103515680646551511777675055918483915974199727472257267870210182982541396365283588308716462307347389924750973236684249224756648714624963080311480434773132303618995638594972916248439985911877309900228327091067951434117340281532594288522608002653569778481974992764278585810645845312557825646082001479807974213520177180937636914164981478655686694108463633749367192379266671452132769972233549260462487406104757171845343032036561946906162575893766823533630351054865555964994522246412464656912034972749790823541595726493365007032963415980199924873860373974636098712372648065675238279333833408574867000415304387063446975188063328653769362004052582919358701890738124396416273503072279696899921801812471158812551013227848950326323936953575902778699146984569870130432468948375246407475578010413212573008654728052881837791505051862221431359584549891722098056237050314180565946973215142430543702945245598282954610983302165660017182066910628383655167490201796911357703625164580261743074806331720364208032233960708764250473682624607724240637425070393733017544453681321744527333871117888036839747017149056798048438920578059148538894562473417276317756664430874591992233585515678683348094454091269502224048089948057399589682093745759218396962360868674114335698223803870225491466548630649139314377285073466522405414531241369852486094132210282396174035899862616701572136641489243605623465847688692369635939233509549159449892709935733722667928740341569942259365943574389179172059161604107934750889818063715417787692550503763975795284963806542688913668403132049910951617221203633208868669351828707734977092631745983342724210470831078798424148545616898219514102275418581886632362777265815743003074441458369781065832606800657812683549013813876187879901797038879454357935116044497631204773157004645123271149026776558254803730698850528512364878368176495062553709113260757684898698901061017336510279775281433380555542451920075875875503504191407241942199138663756507414953040042223777889803771532294748542459688385480353002644240400168550879675440746262862839072683850141832879541156822659169580228878228895201351584152317524614935891011998694429809825732235750291359540934257467317790174366409150174688567302170977412048079147662596211922370651177693980421728361038915926394501191298086929870123797682627415944821889955651079853097047569704371366046163690446023317437251193219150101995100294239069787818361973304576099349165256514840375985623983939050337720126086555636519776241700234030455335244875917419644275863145775959291507235503748710954475673415833144240065851734004686893559944789935330324927242708405463658216388912187453059264974833144115997262630699901726587235355487931754585352396171063713664286780803410342496261596937606430366174193219290062018829914151747086986588131323878746866460787219415460127015757953694727105919538131629457225795482286723853256854603917952287584819417274503591133476468667956475541896462541396650759114374426298865697399890346611421228764562531988182932816599304209304581326782228620607702350455924971765074112121156100853764874209701151496334249289340898742304420977759720161605292415763595396203757715497930024339897718794164828732269486647335049633044278689020869138136208988316503552577524481031184446777321909584391540890026522262493419846514991043771669568073657864907414550126632726135091285479263480909092877531627788348445836972939692539247303718805698542445096796003673475233162861030889106060279079442090770777797314659680837735837924527859995928216212956781524619686377001994558495324859424971934211716504463202373395522363703777651552471019449833577734882622039690486625609145985036390209656408309633662979913413328166474749312950502513629775640750600078844356272323644878467868980017562729382172955865753952616067675532992080556845094341385192183922871200827948044738199252408801738983140685512835142842877199228168223935505004877820695698109829012657469878181195214206236362781609814252095521670248079740787604967669903750740675693513208762291461185868197343125637256105317249148235790124974099471069368574633256195113428906631369128309656919164465902068870498926477737401094655603101187547654626887428900091613718606937660071553636531997807529138149067319558420669094715238036387024573754633471812873860954062932201512375043103487313162091964323454864985291007111000920484258643168322108210973872902420368921542171563458561222885355216265677180727729791942795086803014863758802723859125591645631884594324903235448977242863461297898017659986733090675070034623326886210928940056676045758679547697683067821465136794090581939387635153733167158435290819342778553382325809798997995620631084381477208473371702246735762673655680093787960699259777607107664844337260625026366746931100121893548869171185503294198122273086830353350576819521811475294665352816874610795946421212277249959459073541876596420218239836762139800736552344860084836728206305025030300031198559383155210055707669949800130924066208047618577574399918065075559615955888039531299521514454874006071535616475742714110492879063731711811098412640590521448792565294959243225830776714837267497842722674178155553502505575625717949552957905561880694896433718201156660524336590601526439236179808673798100760323901646314136157106207784014789277108681722305898298383484582500917948923450073406338294075743770393085313687506344675359363894496143960149419519772839288799694977181425532845954193798774042647573940447241537855834788517494807084822946055397884908680708708423940931220487310814769328712039725026372599617737388801496151963112385118884452067217933201503150421949503033897289464527324190692352659491923943076324468616655922762573257404274906613255273653197011963263617368250320187574262790168956911133168249808212291250802929790318464792310045728075132450206414745418129110160966792295158920181793271930134497847334947385056189358064794308928346727977567194639711014086986543683867306024801126857332558650780857974090344597229003507520983007808377442083150115715728732867937485297845930110803146621585255200741861472927136065628744842751227046032416298270305879740964982588788831895012251340628870560414368413211079928062748676415292289363005269672288057033757369936514799587730094993962904694734279492248807598419458970380070148092349052684334393319609097048039481180367370292036610145772015624240358809803778256075117936446045881883688265117727745689315505170593772173702050618674031969340895263199963463095230047778910603039631127314708691982950522863973100877238453166873131365218716049867774965958155124562648639505585704158941105943506784892325421350031478307039391312959469182756860823087611819325065342869454504932037629413561871052636914365592304816606440355267991669924908155835313611506943804887265979652057523041311220579929131490039366650396447216796304801384389431033849861803101685766382178872776378703988317526328199443815732963274676423550738270244211179206626511243547582447857024744110750182902327608716689187988115594771910332086976193524157742296987134573929488048279281428615506041085575318867493882557439007510504105276681922791812347535853182074821356441169925558526280816945736695855883634753297942128091176341155692312362140373102574413419776134903527173350533855176574154996862678422488939218355960242707817791953694851450475427332061352567295071768859280505503725938760134789950123949792571089269649839309216081111145400397800115597688696969245628627038004569866190483236408271004682721963791011343436386575427359265950378716729075864113063284286437689846685483029870975990356266417798063961153065228863788942567343536092835530514360790295930733512160625521213930027955646432330808994674436182703068890183612048432770446124228478527312625095022711627007900653883553423878249821442682766631101602428451038392668153819868546576921997786768695418952680889937406614285751476438742185845265131937024928764102890048420535775254956798654582273704979674041592492132537002335584033554392348869570687821796683593882422397783861166224960715005153849691202936297646245182701526049674591939051855061878213308236567875719848416300302688604989843397715625553029284440144040001256144182337986605378030601578958138067212614875569798160890949906644332181522249508926893119343610055717969492802443426920886829990850449899617938851241258178903638219332379749566881267693972791857541295757958229828614173715553567731801338203659170941642820136392093530406976970747433023726904807309294587589986430011941821364792431240302312663583634192968502487301880257033767369824273626363796319048484105548000169162925578173354376983024209627824190600561315819915493866184692258955978285749563641229057344875595974460171808078872381998446984963595337026317575647882457360446906276241511683674686582496284035982374574823143526976032921694448042845632766117637766851587390456358237100283771414924180438690766728291636714653065106181849903004146823866481637701913126980525685065447857778548331268284247480744112496771239779603939626937063592455601204884167663166093393761281534629253724125143780502578910519094753407892961837292245790153243899550148129557901726366367780516332249864498162470844920532749153617582507170166564596379684223097986848771884545962518967579497639472035667347701600114933040622831748981723087223065876990243034253243190890699047573102331968259435655815026609334527161378720620657618476512312668569796788995401785777620465126111547072729829099958497988391927458744057078814778444318975220430752348663985440572458352133597796261155648356313695193687948053219905987454272353465038546180836028113974790273048348404572262393532501545924107953496839008705999128775937170287020133206782879897897607124639952350116797782546684150415148030994200660116544232220508473698572636615432595433194844148872097125130877115614868367311215312577518501578665574260078132762874125231792134743906591963231055960397812917700145946909941221194810309743235715911150807388134002235680356334919962501333485775346613742517877125154917512181874969079742565767427719791152105699319655682517114069643765209877115636433744156646065648593749624020894677095930545889321992433156528821386612770810639563451271984335475443332496463177633746815084428601131131011537197417152484717490745082223770672078363375639238069678014671313545995502872871317687216381492814964152256131321753635166029721898633818808499866492479358339514567913732007038281425466913536000574334080898434164545631879704576823925006840500447369302968723139997375080439200263132503852212056073398259816368156233366533268999234746279316432667085676829610630261289347322253179601658802716826875560803550397292451923739216860323257921140488377220955893339894703695094277339672614413993928511819259120152324800695214904467968236554667799202807532524537897939294793647369744594398506041864025272632577273146588051777774765025536967706261487002197013537572152505755940334118348026964610946307585336111012721038183793217760315696481011277914312683902569528690822681335698755591340114329108562159557076039420839687550326445713811991265786017127263404332681590378938770390630365130851827162704250362705144183886344371266585914075078297365710434723362713552472404738037115417180199430998883793001821979704116341532771053778759073080121120849100571664476387726630269590068350037917938850380474478923612150427453410247770992652928931648945630793312605633463270340618868899910121397828410121672860782531275668367122555577550869291648160580270701861971813736164295519166684562021751428013213203910319971941919635930856863515012144745255778843857506474005747644731563536128032982799641073312569208926476798223981883186586931346492338305414046531610253745867127007107719787757654815874790209428514848291595657514468719433395312052242416406173727112035271945975814244692016135300742954119947506792408497279727705966051671414507919776610386697584372898272679204108842936609440712541503102988556139314845782300860417586225585674281163897277725806757189792032940724662855097460787014493782718666690409747703578794303266784379461132813891038659780959389872538379923644795193561833833669637409187112287208597344515217216779047823736168381943920919898169145588515577483345452405349048613580015411812939453684181218104297020489738898110243508821734056648100506417085688432892503940618472333951859100552010435323039447756431832378900552369170539899437269816066558354451464100342347407654691271429648464630189448274765731697963757259992359098975055234902735279247815174458721887008196001206979430778484078844208592145455907344447810731470790461762709204121426826934796709567072655409282083495730434665583235624103495634251173124029607972085526757740279091742851036159039975035203826313255612267279920592392705054738507040871264664838022885912323699758584578859932099990633585080919670446902450176337324263419744917720128834096804388114673589733734763154342257817149150585754866760246239605865981272018289091091198606716282578852029709885373426933915639190867704702052347767363956035295586454885596794712095719586039909256398879450046923025717364758204255199801358097143639959267635418711244354382948986823439598632976816870317921431636267651062161801114505289888207157622116507749871597244218386930131920388281102740176075937699478064582279290962962393900340486312967361871791707141796933006208468614977628851557479023999174876921644159486055211897159967171587782710426912105404907116659472398664982799054667149135913946402051380458849300198969841224660291284789065998880674801802569770773641808431593426155346623129856151028078553385424100692310603478248845912090298640966435200594669402513130725613696113122019483740665884888201456796135528389976664564963807557475994887385017368624335207026124976738025535230383139710838130001145560354430747246008219481395466861589985493602692906575850250472690967358730285116188654089468261869871829050515228419049010707335670004779856573925430191464909170217210444835381474467758631524050369536329109107189966137448880965860404751992223763983799807338247931930159965610049225602016655544358705081915957184259778377594554296094575576321912760503963585681360573296505573813849296267549900641837411415946705467923863182141772061501462738743674597316603396056963483651186193212367774325202438269160570725466443854048627759167152488836882574904140913681422994495749970057392362139871377640216306861876822064141632566164077130834660117835666078131824665092689161461104788803663018516572583014684831006063097803677045168842225664989431522652415735410996834851380980710432493799623065063207463601704755277088784001800970748946229333437740602332940786598230555535458348412847583839596916612617844262060003331980885147721422436859084697625955034105679248700187254211434756052839881628847698842911670819373234376726994967205251497044554501828362439898358903336016831648804376433313895785233059854931231561511678332233495373923564128337856314768688694612778983968485047922937490475460050430128962355340035214300526184689844750258792693158300434696651043505380644833725377174709510506697712617202338541471529201964064628768160500108384526370536400093949430128050537360912820840905494662955073231930656934579800095411653034423033604148727916319367839534702409673095364236989581503721544719717420271648776950360627255393036231795364016225481372278466066961844382486344220509122048956710403403509983560156862106050996790550046184325791921967559169614660243713735554211980629784194576109403548607847523908657315544096721307373236090190901700980524092315265459681503804883295671574745424493920045628307525896081394462483374145074345542139421232116124624938705932285595706479309325798565629861072617835583629117335278040304890334173883273242069125020715712711477834922107753842773244847609880210213942302935643141055616680302472975059862344116473979547678070787549780200872958933092859751231800776323418460730639394546938201754756391467729378638013701043528194109315281511690904181417730855235763728911368895745531615249343661883694389328940038143255327200430342658672929548820690859942506013035624070507966024636429496434550290279950386161631793917329840806946200025961440560713268174681582100088100613872454110565938830948203270018951376083878432279110736422279746385861065845672872695731571738182538105411661391317363260349696826727041266511288040444096951197238378593785699928869891804001188595037622315074237739470818030595545942600848787962977810577226606844538753299845508390862486184430083474437293779253513883997313277859668447867096279133090255143536478137854031950117071811842787195654823133835723312381254763390077384478372049278936032284427644245290306791674841096712545798559202330862001280514841528025584717126443657735131089384747173395292867294360498553866102639341391931681054920341623887967434291968474132244821010850947373500492198574002928189520312585142982805788344220034976214262352859177298358003467286286905006881060760098174228482485161261123561870662881124532331505653432612471537571594487356918270175821396199120414042750231556633913432981487222538615371873915767559110310874505919574006203082335153455924471947732514615881963037444371783257891986199360708073522876597133924970330004119058820057458127963524576259917963046224892753980110311803498430273548650834771263563643974554294347627944696704948811811520615054793443135605492077559208961706563495676787915253552186152457194062028104453155544942887462465146123788640091570058383381257084226003893943581065672233671538001071960045646622877476244415547385017684813313378672390565440071525564186297806017063285033805109195072690899666955560364924775643351319217575653865192285269749653754802107935880434065980173757861095211636363855370333039850593057783719503082882563612006606541596551736938530780278389656328610780292178465465821878409868563876832091364145420412628100649277755501050606263510020135078535137824482368061648753347487538305124889583076855796563230773603802201253986783777245610594616346707655466768653661285723309493199886134879155781979298154744680508079698396490443754181242381378911552442146881620185872183862977094300901824175670791369411080429877106760885056159000155108143014496934050802297685781350913496586391255463044068947293313220922205020048400872457969217087741610577330464867349574395880777553481643927506988100407611642368270019995352842473403246034197940658933128796069690879241632155332366466185324943363723732151028743519456170514959275747100219337615395117214837395571829699067495241924747347648961787417053651654429952831195246012518317155749799961071672196016658454073130411075872856741602223431904698624353037724263007637108068583038189634529820207813015691319684578973209254789562674348903065856526626315860980811638324527553957902782967043098055257131872612589505608772714430442341767415708544160708234797608228384515237079433444449001489894821317917257178054680911755363966349602906029290714083625104329095577550010980510233440116059716971010980374006860760602878933038615817649497140817979745490428694136511611956209647684800215206428994352272344206145058056504088597464570654589722739383728184288876872090240857660485350512933807670835865757600811329517293783183117741422046754894021677326316956658163739438892083426994110228678950381650672445311221486333509182602741183655606350909500236777396332907805037502378182138120451171462327951056174088905227091972767181651734940872607316719168724310200453908818285045449485534421699303927451346065612022678571294591410150427928127846537097794578814889212899985676134933475911905166228302567903557661583324852425644082786108282707648833302427789558712081659519626040751764131067596609937167091722198882121107867166260445042435638570559676039022824851278923405703115589729402665059528012921947032396183204022756148912810447957755944041805817115618172056557271658893338067445214134649779163931252620879416019157742896953676642502955122939306403086156774222721715116717825116032519432724769799299207177032676630067068739744770206491280080541169578517227339113447864419974838428949237211047712476899434190618865954060555657600110183831341572672060662534372792452201680398174677199975250877377530729557665698305108234724246435579877590495042262973488916034204237711682173532279929804639505049079703489025361336827604849021107785014506598153075539471522366219593417008725805978746614556313479572277468594352035948010222596728999952822735074504473815818515444787896161973878095160838040780522502506941746954582010388827009757014022714190694575061836541465196592784002357678287262458900985513998918422851813871337491856866463928596504747668065987505025924938629533654001257161980859088014716443536107932429160611645992288616769836585257046820719386930129812669807976771954613356448825451247902721724041333539088510787321817650498788204925588777700952901416407123612301232155767854747587318203463379263816262695718696591242102651097445195238484835395155937359599868133886718589900962660645594213869583449824650232706398131392926525924066218038791871860974509595872182976298479624438589535777436138207135629440792318642395743883130192716005468033386801415493650095917266293829118042828677064722784945004995188160157410255568073041226728992151716292718681970344412021174888825150151359029258214108707651781224316425348211906582790738707376152868474988545323371315467654805793524175443677443148743255202891004253416138890778105782035860832285576237343161717135720946761958401132494045454058777280051632048877419599755350305260983936169617435140318143890676034011722164179733092498142094227199232085962745481600706014918130444602398006514248619358092675943154923047035878292126971295797839036444449858744321853823133998611631328872964353822823958805386487864610835419308526655086861733932331830118974279512361797076029792079621763161963512440962032613655930364670399819896265984876141494517474944076538579322031804703764996690788079319864956478384328350624945314333025707232420477962509428813242315016479518698496618965560343856086218122130458185925412737290519526937296247958630686321967602302353387106248754068308984088920752281810597253750338859214240840803764152739359951118796307659370686206325746943998488360368762073809927740729889977714485612136524095910299841116499659716673933794720421788025183050033317253339495448240534541897950457873187577021825653347983103030033625373403915537646852864652376135127052764342801265448309371312309769948973290027858233600815786932453449312739134077990759792720841985892179493348235684040573400115576171067311926770055109265394182039417827965409356349783384295640326858036819783910387236566295552085177168731731715975594249987222931620407630580938368060025079472345493309439161916460145462896767991257996672450772236755418018125520980075450982684316598270276819030033889297135513012431598792609223365303718537242367014553034837517001050033348430654270312247980798911388878557411063682662608039048849556961652711278479819805286007340119401218820614808595310216325040711619441919914722003998479973145097536176431252706023154759428680441401065039129284806155447055177062122729295992517029637094673634892096424335151071118607204532917539217774014638287695957440674821732250298579199562135841506099424033758529308867550590172306621920207893347381671878523947175005885376005836395327818291821922983666235701435523036147335339385713499359359115507614181940445990499214647100622199307077325333610604466139174421455578708985923583853791815549845879071769730918029064679176768866614322847238277789305548976562994398388195730154934616817028175678885751866528882860239668935241098158818451622433613918355312290936094056779631331854779766099174818444557496143841528041925542952206938680238812215661744563763000761548636965433804846469735373251385719217332076603310278221385721310719826360421295344439800799209570788956611173131681131100745853960175570797677519209488402017960878706786050010554023250952875129972139197474761958503689643000408769968140711871811744721623553692541649410921605759452784004824721907274151605168666255162706512087588657668542484527067532003525203293219289242302582644821128979953028272816199149922913449210278319653664948040447540807046813561227013646112858788900980105410797638860095602398598115908814378115272030969835348651543474129871557820261837546049528014940770937567551010675590422390499449810073414171164714409511896543762113129071727848286942026413512834564547257089922855672235491862773692773936878037506946343459817917793412044327310914066629697612724349119284583310845184765269538360326399304990878881291731603633099767005413577595046834775086042842444164611787831361874044668036863178008729530376677398056792048813743419458564781289804004767157804547308421451805666553734345077769273331556248650282912565469977317076251407744620056933500539008968593671158866114901198669209687172705921330255134443039116119892483910838033870821107054925531373802592537165600882286013258192234174605332067975654466805042989282529172150203839735118101704329013165854704446834555171884628939939535196506284242680671497799977050895780584395859577990519944813112221454111660922457639031064088652037794720795857510051521745062880268293302980271640576216596440801293181291837214879687205169089100051711961208326386294894393308316612457287240307681425013244452311846510768960869178429314350000254263606198648346724963055473603760984727418211219224409547292611610844336525257974588007982916032323704462530752330402937337351336560746193374968039830885997955063321361459247349750756320969378591645907995302130506802060386063398612763596192324977162127467014999908137725853563652749705336434277244052568517640591550040348413854607188330518870063599449593643050160361006144090528522076987279664192329272771485684089429756423692624624429404390769411462925609116842322863467123141559578267595074813587796167093142064842454907765413662051331194963066919974408453682073674690899971556955590615124465544059006614915549025505708168706855722348897508510087484444652832304594972271440958124317169755792914234218214784198145748494708203676726337509297154208943246307607228592065491723074332381197701404404209508306603672956728430878727296550363321114516323598453703686053425930032042943966389422832803382872734660952701215347012215622232426444489941087782898681124760747331883496076412186321092345092129384077109042599069494902579472405324321447463627546851411260526759407995361489731935057192010753170747593577630906690837715512787125397863033924336495932177757159474830895248995250832406263429004878911035867199137301993569617854692113557990044282127282808130639545022336424473749264393806817524183557924166088086408012355533944418518242675032583053132715655313456175277322502506850833556725096631226402228781483892412815748648779313404525967212378807490115323273173401984101491873369802105000527032039696890506716586928735993148323282740207000529899895575446025336351965641442340193535788944330738506349286327834004725934950170829561249413688988670219041367449364927185269605733553410428658537663867552960917072121860190569812705659083093811008366056605178275975306022331544793047424498481681893549076145705088802942109383176431295098369985895408094390806753405820117827054948498033105238933371508110145433836089434482094963414571935480223385810858062203544733582474252523583954922174628712526864744222468847667596089196485461416656755847797785838067830949552091600595402892043214118874228058577774906178554117345543385715462316576200257818993596715656350171885519798691854454679806474727448939373763215837386405074594752412959946940278623363102477546315022818315960601451410857298253685465322077024661390372228864862167295057615544942989734937505482888880335955048241012831591366615622132707404426917012860481004512503962139032858521083414113693801422249512727926876624072377900359490325883790007936908405179384218003213004746401973850730285427035085339007551461907003233518939244474596192183175714695701225946062787385135074375956507251755347820541808754651541837514654769487679674902750017481656840305708299201950005676122512119902403988970014913768375247436325418874582084679979524157086204456394785952212111037270539117533493163347611537016704839857629978637806745327225085627243266497387297018974282618045789522580713598792825596054988554012493319173036178550373644306991555619171059792163414879659995541535092884205713003992666370883649108599870662088916839621833127720616128417626047452920721886995145775468631710735058732307008847614871217793143852042613878064158743835760814181256163101962527643610675253046472687008020514945934987445639139920977870183799214243669608870356627215925399143056539589013646180390102123690389477791094088337937522356001637844936239161237010366155380953612160322768413179966733198340471958269379064544398604442283641812451246637695457162517958549336852270792422586998551789378805103666997397857618661957718699355050330905707455117644152036960265064162469573386641318210211704750244595461764899543870985554511622519927613969817714139920800984870507166808321579590476747149630386022266277173813565149299378330730985793075977868906404653304354458616179223617588658176596637053482290511656848451352392263516810152639377079583769571751048047730791734375756707038077292331712952024009166192282241559030960091484106136630581017547083924204314054658116549526677320763650915739648900553367009251822391910753112159496905245543110544759144609766259827652186528025099253787233214732641648743088462636916761701975387976605047831262179815185745386593076510103159809474570916945795948875757467899451752847783809792225866623911145184725651533963522210215831509659024545745906242348206248197323934581862394419038852789902500165473103730936283707786467361166991013656467307199645081764735378036408700541893565496324406992182288525328149258667025512361243635144237914003554014287428072253203630891515932093063158421210116803067835112728863507899046244735526617725583480510284524201256502600932657609796498303612022809471484905615434009449262714446840018412112766320830005788028134791517537771761061079835957307154363111241997666980457399082036717092157821681324278415482874133899051156043075870617662256851575593755468792128958981499157012558542432303154396772938160229543780761487106129043830042877831981320469677284430540280330241335541597379895233036340057907536008545432896096344990558075983011581991682731722643799630069735956389354362395096770578147924706600934855061793489335491697604262931896419451355398214183626927130594231242795990402168808610183365139279470701756851961072194689176178337968812026162733625438762366048413660199954525110024343201149365720955039090043655782049215406730376779276027658888636196666973016743313989721312173500454919190690673778220644038327366902428695983708015696994833079449706947097195455090469131605067086919281269504087833713091144111345856907423781343138617580620904939570822466907359233128852574352993247491308953550206594993382535867791963987776464371739712244289499926947058952621504534107270928835886007999482435042966190684719659125380945628003742362185431332595355233959930656638163828741609735873192632675183005453237425346432463993852091779320482207383959303081014817619803507498039103728911837687232330976329013134546860354143346659746599501790374356846406860729483460338540346299075761007483644855188354779715504301002679402200670559694586443951471120510739750562578597501471722708391528676703212382924474968826362882325361807884496118832340138031115614232987784903527941598564861840447491979111074617917336309723139107929885669699050846738840474977238002905625125483412041346503412264761593255850963243855818191484564803776028439941246175738867354352423892991105034438135068508887077844296925019365218694954961748617730627479323098321264150517322092246199953785064507028612274202668919708557708212077974737023961512316783967209682107854494750664325352798314582592220599437855750012196360917984279426927390481149450267227467112023391174161853497890376539891964310000129199961756337721107376610814998307754632688421070196943709028235177373046673023996347847262975333351610995657551885962995418691402045391389785846153198807587924528783393459641625645750086230929060236453604860732493299952951305048563735083485171806588671876021095881208796378172930803027850672620694453693688220760853554480517840667415553233458122355461938711376010435970953378349335752467877827937747769835696790321714082228063985825328612986838357520732055380818914214480482664435488093127689873660608479852240048753920330885193021060098456315567258443194200571997750142808395831317522605157810387299330249526772723730758747645313703407565938825463490075377326677598896393624227712911498635535170827905428147845079462329257843663653693635708602443486488102224311711467517495418357093742643145799315399521929729857903361532150223753540340305723147275142147342661439161271546424392872902793923257480184932601954636024025436443007000479605467475298992651188922887717207278044428856031074415734240448051830332567161393546855712776107502797334234510738622062384019736316520182690351929941123389752176381338119330158025183947771493596280155273523401897937736589297246013781916895962641362145840841970853566399497938942229597297770883767826894056441488441098586915568240300236174581942750767695362983294775499753527655547982751871047194872166412530702015988346831190753696247830809311145778459024431144467392486208387250691614682633397614166976863013363637658527881891190869974815791179866388887384052076509947081873117479115775118106702230015002169106918741372986213444209380028220653311334072108153033824027645937391181400925099228759515843762498124222060154728266556334080497701414748286293005955351441606506465696641046672133864918296257755798121825776926970069337793647921271491059112470736842736330039924088403545584543719438246153867737864677205088842608517438877153810709195280291807136046765699877218483600154046774673680358763986937405140345394673625881948404796682286932562119542261712945776900079021600411789135084971838421110904112608135450801650634535323063170497411901084065406911619904215842944027780827377761536113707690247695594496653419418586288427242203747886458524217147486910516561193794829455238790938984955178448220408706522890367303864495811250929619272045489093481532998203530324573054776255798015361574981500534639964795714330558395693956410629467770227397887420374370636913381847337610173224352390891625254384313039159952686201579035012866406938334626725408372661057740779316173229243428468554624399464548731094134095451319809423323932292048786769760587197158963799206899251413501144295390280947100594043541531358383600598065173258138219176138851869205597762212980799130393422146708211136179186958466783478670435040255100091088714993920133501062705021112442475544037612355961082259916233141538011544691097771024204755645194360310559774117784410155349749768729509630615017206423234955139919013740368659170280709409093723089306065366970194258142221092170423077860126998747988014943962086660900610235419965131820618603177011592810245155121734617216693962649108260016975301379094116311298035354311852228068232774973931264888649210596681718775735852732246983768491263839195480255633779067890122942225201969631380479898928950647658651678951104695954808727671795499760169517387350327417483291192353964330708591457700924616514668341580143242181720104611507965480150250034526083667563751474992132383953680254524393532582231410829570766518517044229022789652818582824752000446422934697086029415578026607383177714186300282508341402749492980643017456147872252815891377997417884895050272268468849945652784779230718730811366126671266091091913247461614397844084345606193946697845003000485675182386627353007821889525666073330415668176136656286958168137226989444066950258753989711994710649029295899621544361558215057077683933797834750135353081025743586598882627042926474048254491486660468666563790733012166851842059869943075185066045289752021294175174246685269430495194812170561169437836624645565363151340870626127581087829625811376469004956458395359884801719179490239153788753026919770786736997947447509943499325960040241327839733614941446981900613666756271074791000374781579971390371513457896618068105339096562740952692732855852634049311051124595723534479482100511135620411168460652945861600163411872987277588396926349677103470787926843800345029497897569714869745145276650663981501516553966449124596697726883744672010263388923282024314069722617930668835877905581966830968387945476826559259292191235329562144158566725230986764453736248258612921923111030053222458642122405413158868229723043548440797981010802443249505934497421564617497804146851124845151307229841709776076224682492632223105089356021844000425747154678538754443224576057635734099651345402728507945723138475904946686200692903629387515180369414350216457720518487436870401788449171972799766243988933145883272042062185099942141585697314305419528995206379782965842582000759777864694537268860292107304679597945935321439797601806340953349625467431391523038907567414325405704970576744994771548180785735754463897662843511837285629808507350785396474454898548905760274504101341985993929191136019931061768749207268753769459838052882264627853732875623873416098565276036001576404544440041952268756492344668866638051335439244944814976516022060041345231630749579751583978496892851959329812108336971578913899536157639203022362976544335666035389361127585766433648654408045203427247566957381456257113710075469405320452060935590383665647792101592742196935381521934803448793820814118871181957490585487972470809142082640312131690444118206467401053185194945320760287517437053378612812547086138061901819301962239623925241382205559101780099756663625907531099968989154134191725227338273597784263513060231489745354041465373288636806738061876523113489914243951234974665796924513368573274373522738358835399293666570018340566497484001433732545758379226334575617452286558317644700497585839752266984494416789039961161262254018523155545015619956371562950414833236517728644487065188668769924342994124465075475843287565993439570473751293699284184729164536013602922017501003633004829937339558647538433311082809567717019110213171655728180277322874507316087647285041084278849908664017171132928235894929254628216950238652908560689443603916841413302436892533961424859505590848319511791662731052857816459521588687413358478057549703530969824698401650443694079438888828124605164101557751930904797275328981313349856541536732242928978451725515344703553880935915625812702925959544112273109759070364986041980782919032751990301749879629783122451461118349526193028982841264604065732500463748887892073488336071354876867236048116937280867520458567192493977618071002500863490133733125956982860749178930350246550797297920445752423402783971262008155606563921196031202303289179796024065667933204088647432602781823422765524653256253990075029676600960846905942691286186835362863184418606002132693782911610100704268938735041899918420307794525980107541094584013243135835678230614450194182881482600925002379663979659357358530875818930544765729484126335832438298115994698961600048350444697004558651980043530216732785763159679141502128090252074997468863530239825582492085065808702990233547269728060008763907874728861212790642793732897778258585544189940108414663771097078680705281943248591320174410642501452435251550088552649237184516508556095812879717216343429172181504419951239316988585809170209706651209920018638113143051101288398595617275200598585085807140097939543105185252189559575158508728725948965900953766554895806364410318859209885746681414409754114587044772375356819425723179719924309309467469116887680500308911927150815038588199509850637645843991332616478123643126101935822609724587089068269708609035915888681084119800007885441105331144977513933274356813432387732601759029030596662385599598550978531584210198801799533520794813632025900831929534768755611253531701117512504738662832755451529354000583922759856788459302919478228770789153709063613487677921098562128593663787381511645617183193000771990269606383653318887526203324023454047760519548626008384825741113662492517485699590845002359765361611627485251744784781698532975214073470750620856146271118813180392211722778616825009730651592148671857954825343180341169592910594848555346156723904447915187841149871989639826802687526593913102265917122822190791805864448931033619610771177163708965880106349732498670748048452249534500666324951203841252811359010950419933196654948881334559144816980347103935471710113779098211127254531439113965540037523502004201486435558806118481862099357356205382419814981924015607749893655133168136777517221734455858785400292194089586195570371754631159579996915349650415122293337560722404919318839040967887094871297537098017937096870285063783186327380100796894797180068630202435276169280419508893145217305136046725349219054208634262469240987870380803522902747763829772985469979317013609545233825343120369415473057184844871477828820224439970887323762338287350486052250378235597590463280496918592553788903827932137620670879492069900435922364554467662930933709445758387662983378934412383491511782087056757976865139076325099096315202534660507931326488960725512202617949860732127541327125904833046612605828330465517773036315168516809328723618664687800953988680130873850177773104599625369815417695969390252337840508780927048036185794191026903524289035282047886110864196680774514862709055079311286978643039256830222353484193583550745364140274909148719788267132090124108527529955312893164826997788345223330798536399118084181109385111692848417549798522321558274997712585230438957558837952381698240773307654572016652332412083799733404555195105649373633911826657223477997432022226958912533761041425202503927268610763080423501141079801542658601135021534777474321979041353006551044019608361436801257502286303632980147059065898871144949709771404141734880144578479654792681295397496365307637344456169808752388243159094120322599144889654694501329820527407954788379964144678990356306145970282715227629472046590944106765250778504492749639971118240223757621035155546254178215277722102724717150596384803293378717374109170960902460406541538958215433387915453369331091857479874906401042651522859684087060262184104902572688163644695814025194432274680023148661247539642061322192725322302169276577217871729675408165735911133680046673185200417355959822810077438764643305382548580572469952943986877676567048404707159550228279099724951009733312475300678855818927580440525340779944512201376290301187033061566998063692452489788071948194822246013809939987869223908814983743601657671129856011157787250737775954237374110302693144628575064396202363413626401306382266701879279069825508747580952036486493371499003572017568048863210061220338584439048046807893097671019039034486118656373104053827122252083485812368105098612621264307980888459110148777914529137279896465551716460063129145314233341480400508310795447390551586038918822900248149291237552789345893132623735607279609442655099810353713778707299739106669167161325865751314610053938438122158690414940839358905528644993638327963278338651611876570293915663531014051381925349814048464138198985467041322411848576791500984806275186541127474859708300508526320559223165444978885349358132845024751522287574248644027558020925428215393860916430960231024133377950083200499448586068828019701373170846129159441770623878367752085615261865293768689219678889572774490630050413304264095485354179634124320171082588491393961662670530847730349265718783495937578845234102356627940304727072068141710228049015620798204056691999431419492808960363690026992383600187240743840213126045859950000252269127393943837875416973594826176274723686044208519709088403252608283018126068009784457109751070586630501958561042761150841127174622947876086937101008334233644754199379751558779457052668022120159383850160998701112964506818558221697270919324084360061084233873727471149950314143254471386090995002041777396848371893538017534330486639884647157865996375530023820622374708940313096924235479880168460544082303090734028387636149931418207646844866121656266730328373062085437592031323190183593491996479881430342437436074362046326363279110670671410591860348944967531590497620958379120713533427926832217966904660849596825302243770704395531395607141823008914421759861056660978015341365967524059210444347261995793209193717302806843363929112266977367264189036604218908191400319319112191084420421761412362470409354489387891750343819169313203512160395087525248911338812486830679643723508626610544253695614036638384478841189042528085871209428557043013315310020408589355303572226787487939642259882517320550996330122022752413981787476516414245475823377256948438053172934292382743115779629581644689346004060294935472902809415283188134494590900760471012078261980474599616959610650740111246694127801940026182488378308732390789315368368331799650633410179780883180443140964251518185646143215567117865449746873867374794537249198184749676144362323871179272524302388882124845095900788974782394720242908043341382020963577701893189585137819467468960530115378602148318751741598879869653750131561066495840394413462349596942069410603203699992038003058740853034366730258191182695596906761937524500730372864548016113353855910854191708402537434844948242698450210100840548126175175658668951200609268981473183195064724496153758247468091703232365710501164330688096667911624418014311704280953597353943251461508629819736383799915751180359170729566830932204073312493744708998741542127852869435874278042967835536943988296788650331445179966483002282571298936724645296360655998970777338993157777713925555856374429320349154518901299250637922811175832601445867882950902784412582072712499125611763737015724671032909123424542861064512044765749438154667407917071197498850224078776546267639001536138515916806033449915713617260818703751469069697576663312388398884690134459591435889266663441403773274920663304771928569317252826713905086567307886366266387852880070692783719077899176590056407023627205288780769773774128998103914483453517525822894239056680647740331114039969282405546172408321032568565395326179619763193733671140093058571721258970913546105348643117212175174495400150409014829253119982181611688974144378275282217015150644644286540618420317057607632039571440009002394242909292403325321105370152241065348341363532046441499869885302745942760013549752732864236750728586544342383961085921987947076573988213192773686139735934586374002986174791280729408672585209529748635790765943256200073455220818449869280737950652019558632630690725966758122757304905325573496311116664612737040828615969244940146787329555525665254978050173978975024184149120828078505630381561788177950324024752313183656036806749767058307531680482783874820974237211333083345858306420360280160095670643103383216355595849179099611529750446451223025049260692888773692105437072807285980224805001440855356343370638300023336345114373808205157919625207901714858348004152883231639585516563101868094644977986599570368936231917481007641130621249513053097314741372358597287567434801085219963923964505238172771599065954378580998771963018924345631654801285629066136699014810872310321579138313810111058440847442406691532475551157751876798387687745252146006754375827686684262474523982831811176840141029057173690610137047453998841550658518292691653392730813364310245928813253317580660860466494887896101979617177621628694209977891797367561310948416095446973036832703258079071965926908374479771903685914677151240570317010259894667364213289915765928781873729711353068117377329949689128443439056769946850625268118377214264561351348930192830035960829838167202508008049141083943715167555128482029974925807126534766905638331959945757809819832944661635332019583353733115376187993927828366824783844407474834200552998432447317188588696676489224567004000517548345002798376182674332229827486935313965599781884867792565887876465000200154587776274883073693335282089050291556764737185925581809885217765812844230065734484899373069831412829501157609093723920007942793293718378927613388884605170138766893696307803944080925176511849623786496766643376503877589774323950500213505387660796179499316109134847784814435952620619414628739937675234443287080544324510628875562772277678104273968670239326559974892627343292073295051715706429773671636326763566323538314921778717992994408866483249572095876451839783276593392560792730781678949314086398965730368553920001836327327835571092834630255336123890820555684948253309146066707625040223478708192992630211907618042090021500719819757577716987346490514491598744259470960854874360879279160605660781988604977724549427508733900493681393388198716862180342705411764583237359829764242647737961943295537415302789523887341920396132656153826366729374633564027245392049935067597052288408588702128594304228018261555517720708215001661058880574751583347860075365818380029037167154679389986267400143493314465632653104874001922707651016703911883321317587486088796372589465850234481006504166370953154665904116956662928110683651259030596045483480862785218781746309530576393068609362619799981982130426172648769170657947707865647364982584564023793038445960195933918288263063816774644982056220805504629942292980291707681526542253247452447742218471463876853814947180185180351969146028725090864272973734215634132534387607924520787025704157692360243546127937797049226020835047156611137641804552965191493426825098248767083812929598649765337297823478827006731397323468999519510605112314813001087723601171613197034493009399070837229277932225408956549223705031488655203933029822586050572924365684762081868259261033279810899104155374481695657403779572735275627434973404914833107447692010142761604812656345530796274302720429577435169844506279183045551556660761151934576205696079808814422144998797841551286757693758319701222857783988489128998142370211922174733343776632124378366102637805078879866298609855469849835188849863249722437080852767371606988022631088330792153525529266716490222598975247404226591625613882237428316015317520818906311545613281646634511373441391294040586145598476782504874281450748694302988092176421561952486177125038389152913961927109332798809100338124155463314873094172121861379757358966074988903080996335932307141941781183784197387708802001097020019732807343609031822488061865432982184486813962698958559999365815746301733918486525589239901537254229438973235848315436854030926992096457353848882620214663522233573902787936633525437355597655563523279668809838188088464878949470734758285251683276922176394282554421399800080918805077976209253535061612814667356042412736599937698671930086041343455148950230504878844686433790077391701762034411963764474116800078605615087769654993450447351337135593821693778490069072472596570362437579542719666038063075023238938114489819973195590527693158110098540146631999605378672206635228595380148731216003528870031587307756240907232218785167404907345172170120717378654912181969583806219361397122658518178610133789333694376403101437731336475460514668645570891854506808784465973537443361222348342471249103235278148920099343014584511779385349116377449887499897095188750637772833972445199553924507128040578672435225213961890140082130003513379758092310041091230931417054806974978914785503102114888158741513923908020556317358207458229799376832039889322378380206448230303748927689638564460548238159404150542735499929067693911882371095172993407166644188070942026225963910200110021119650728986654612253556269815237391324304858326021856929377577571343342700609400304282811111192413779764077924467145381491942722137840488626722954343814706463698494321309235522095374889916941537204658395632288301298343475409674768362715973709247785955406787067028023433246828802660635862957471521942424256699500166675806900528153778915945394790464870353638136015902984471216452157427915651513626303004723890650036696527013280026539361103676251526585171864677936047755903165313257088886763336875320567099377604182032016207643255400411777069003895347821975501495520373414659394116549282811870172467589938800247472205297833851974409685408594163330510431163442344961356275204681929921575145268403380366817099541487032516292426033201889772114879081750561613221094296120271897320264452438886065492787378981949753704510151356574271602110897495976942567308543873490939910361550407020048921296310770363589988792694277724243853008359876230714531473086565614990826697329500948415072335768042505823314107688429487119702713215650765520537105413347167846033055389200149160931621672992035551251497362667370189465031585549962223698684788292509068990588220411263309606388606351732306015318109212063284801167460106704103257378004699205736429612962160568959380687200857715459458323983050097879784886691696744095976135544785426748175349004927126485024012734958628650260007010365685772795323776826829276588179944516130338069337876095335477665720707623119959117266187263617833740486961333786542601386977745534565561315029017879678459974618297668539672170959083626471102786502972483702152100071097447647570976024545843550980529916807397749521494040996313284050794596595346313788639516279038705861280189008652605927144350644816671168611887078402824617601176246476810166215470877732556002989020337778665756591465452435659532487393855551876862396485885681145116268202619192891566534755521833908410370695512942369632810809878049182348047719336627495104113677984602479859847697918720381881509216341805944910458484231830172355622275682409869183770935715592660317487981909534296965766563953954292121626141606460779184872050869600043600118171729864297081965677714295364853774480244708125527111821298008907028526504930019942977559095420287598145324344478565207538962239601342938048059206109738080333447141117174901130269154600284992212928890428249721893687007397376430034697111642994396181863011535001069290323112492584666281004634951974545931565080880990925105115347207079154591164615408025055842671637048607666257016093365221004961949007820307836230122542775109008768725435416679400157228690143599046437621069047526775924169448181420060539757766061481181687575952179061671230736224694951786876203555407164760840670765917582991407549143070115814227294022949689516107233861324295685662467411848196995693469626209505198515139827202868549023983110114000800548449869874696192361201010420661750749646548001243017540918545979592045967793471881691626189949046625332100619126524714129221832547348762620980145244572046061111256038890090807496053461997603893810600601636455935978505396121133434106792273791178495345613316282973286506423117074831082265600405034525795087580435929969236570109261900932213765029672844997384005231522225192621910062549171084435444440626958429745086741361115803326927568016937826361306532110450051041163278914576624903366049440446965246840893749999522564322389382218830571570783267535699783475897415356431577593222346038688057399637847257742133764653987941462342067305407865009662968467813845873521775497872081094116319132297002585885717096019399641772389410109374140728080727367162692664977272921233795042452366264633621755436152015940044637430559744407003291795933377859101822783629135266508530187604857744187335726248769729029285235904570742119289738182078280640806542476012431653841588865171230010975865709699654004411163790937311912758909763922658879765963147576874096241460459272283412338899582702186643605786058518456579841618050664691591374913444357402869408957419870170096601149468006520285275511721747546326043805864016943422960514321351740474674840038311326972736168295031261185695525283114516697721450522688754765170857083658096515610333296216754938623786269243944581660395721470304056232401803261358390018322195381758673399929676548129816129091214801230996213075105520026953057908662669876649580998229600805732318050718761411171648207608874382794395903828774760920281463056528824206833899027953660012471418604901747260012031049288173466132174610002874756897192307733430504959936127359792296754348630267992476335902076228182842430481056362545837025301746484259186751836169344964367711106470980004539289742548894907446447839615160453746038403882210737948149005771673997703125917150759139095811163600863176853228524035877340061589235493374435682454841332223921774261199100593205431415087908509250683105012459073189284381367363440267623363581786049358878118277467469342526659830298833223488876103638811497184569179651344328973749231367648398491783716852063273556523297941673951234566193650597966401590982023433974309033440202952239685760667656456593317889126942065610371887504071176882279894574941311802333869267108669307954980013981015118920114428829525534833998127585323848417857207487456577322467407564403157121805028149668335541042286708847640543946971334766440322529922825133751529707845393595276869796689088354249708327391080305856357904163597267067254165882836630705885742666417379735845758069794269960588474964658928810633781205944216529883827279379118555200312224664356629342356549130753899032860412767912482369559473570811319170543523492486937221058242706789147005511299689952557838353892182968494743557582131740284327825055742918486076214971946677795415459726043541637807904146404723651328490561487506679493144051738065257384693796321203836162859171834354773419072442847172802004443966640741910348401098275647803314885857867117280412102611908588386227976695337737429575657905212201464413831980617348200093340456686979508916939604385051678236574300404813675253416488768473025661979610901606363731417380863895208424639426560846476641427216010908839935278701210424330242956975933235768308462351109111026787576316312103828441716003007181387640164879400514835511146684559946134866758304527265024764399535889777165778837110638656382100190162349443753904191916954562397683453781490482215742711993021940303914854626429269731712252388812656127082751095415264720808551713655242644240167877045754619765950545715038280546556586034250219705787319205186479361309790208062553295889560419269098077815993262707558138701838820617176590231524170761629118848875941177087755040568187502279194573388158343961816091879660392830727155052236307144540119546686134438086702359238739031197228244992382617009541282361780746128050488185769982753972992795038987568842825208094636128383159793769698309511533122177324262287132653734395003495130925290359109119474151879001050992146618094410896060316251526694078419559705416652220372241146814540150281304682704441243561280088977150782536340329818004003046794909911686582072017176686246533760034701384161684382961900585852130735707271050909865515629155048536785601120510446462938063276471013895395092669065393825114997797533676898086351046008507839974214250299652986448564568773148629973075530370086442201559741286742597357305443558768530896628551953398207965621879554090740302856521327366809141445388414532190068350005671884182543007687638044004224552059438798723289658808888163588711283933076915294178111392861786838691627555988715594120368854681771825029483735086196514364954230166827136986664903025852625720517523235135484827973467259787076576659579346354145684971018192532667777249612285751066096637237497758544686439877299438905474235027458166001976861296901122874915496340748144685583008576198268311033318999985241151952133576889882332289859621959679424026864595158183117938790699745161993279089663719171917870004464794102591074602397750597546200947663246773144574969138595867779046206035072080360347350774319698594736268458899237538470205128142770953553334560172250351468194336875704826355613801242342606496854357923939013209699114380666156945058740456052862539493182248905164104666325548557630135430702072305365201396874375189017650691930897029938666165317278471023230237270882261551598452573750055043520902609273975794176764422708370120311818530924420812094496001872118996366829300643343097475272028825173776317420213397358209934565884952188717185357866731681200812825727163804957408240003471436792686453363654463853506680318243117879465672584157943217818407741009539459667848468810135095113695834223406806018954842446818609085576668887427898490656663544280578619205265737252170394469094213176547770677577353639814491491695317503943841792471546127252335893581740098568641779748463160785488924298993871592781073482130118666921705286322700055499233085636476734249206948584777570940565657334707337201625287574462871169633565301071022347430402200569022951614134778375496156637277492111186022569831421640116125038224026317664588678538211305784749506187659506335208219205725004708500295611507176376819391041907710963324910425006528562403560499987243162009243337070892582688574756899594651770792547800643010733782193456038476024214838407026274242567920416257711305101640873837768838300104815952676744116134962329503055438660509581286295784600622531882649620705969362576861502025462611114298421457742906365009961945843884469708842368166688321492909914201423994270996052416104319448644671327501393430945966139774784147301530133191249943468127473361314592718594460255176001488873388914796267038788809231248763966128632627850030064505195085861384041859010841993745642707638757981112459476835902550693779400705736302155556010094502870609098024986438252985650257767767954369088680908830163591214856140207863877556100903251185114429719940607124660355598248843491132660579626552242783843022803751166922706659854642433520665898218545174968984890208610265506179976170584108594049754416627064835771811286269527145604066547156685657957195110349235635578929028146177773471221002859899385102862651577342022327878214104364554554915388327195980382912722724194968871362846687646523468513371416948110015866688416423031139200712075433680669733170338893428211088746727531706196263085355455804817239041321045288957838549016458789725469637143929670733388169543583625616013170876907071700831308334245968213477830422152826498389658621793111571326262211973412099765886190239788415263239701338729373082141682688059108878609893418364977119354119573035086212861836344029970901727436726547367446015249940631469815219217000682192215155367180355946524455944655738981366967824001326502430307251254820883300492372641069866946941728068536982970168201804831684021683988951957090961932155658297512380260823943928005848458811230465591202176745002322636404174291675494049410444843622317588829457058947787907780761177213860058601750289172277240524930250444210352199653907001192183614728042863033986168987008003883608119030896729365489524072858383299854668335931188340446260877944395462328381397032235444624069625863088208668675136656725973771320908439616569570521093817437536136265065480846052808474326160675032107105833865706356508070271646141713106829562287625146398412953752492914461650426228249827035788764433061393333164388854217923539534595063108124701894880518462956968286128927147428764681438723813352075744561264722957970970094327603527980435389362000057322764794270948664676684049983680563139431939231024837958086107247159119696657643085791885984118529857538988085447972842647238696537351689629249685504661085685453554667685763439821415592391009145969599064334902723287982605012924441894187757732459490573198349212498238218099664415593056902762716586765351234193024662641442940419797596407232322748711917985391950741791575458557655055933394937517765336705971793237793412475914157637498640878468356330009365513463089113671753754555195182014802176659092374481498971810424610614550882633259422663625045989179682474618526049529784132739835453644457244254484148821425180850310679777960798629841958630118443861097034716501343257390926087172236322857778255069798962116281451135443771250257807501837263069053569495281020346188747690157955904298598740196116291366104943143855197423638705188139929568709613569820038865714911171696874947631897759114500319623544216722189336246703019352447683228435585295888683219121864641236653238934917771008244563130270228762940251043608809707367761656024013434057322344762601695990782943910583519694289290507737026247328257127990565573404722251423918358705125416922738890802413430171947573048762013871250061976601381031344053048763934733029919877858967840153768557846009937174235604660101672055294494014686035286882854524886000976821434552120781408182060810041139705291148037339797572667691602195156977903254519941845213558860722105299168213069775782063498752730365286383028557004158470566808175228500176781603169581410009370967116283373510942572630840826371436762723620349129490996726513407720952352736422886078336592906656632888411175243662472299983565775458973633130430150405133427227850023411609147729681488929874695435052119991472029439892788962692187249295842907611820774125762489915502429168734898400805365648732438095770843439939459650614753576353784081502990537083061484773541152707280369200793167537797965997274042695903035181002246111325538498559359912200730333811242428661299659258825677677059871984535740982455443569859678606734337738767609397379657710538225018540473241118256715674348678133931426067803959774554756525989729174476610994891709752454335225746740894165193257728679521304011103730301898758898287931284353907513410087520214138814260968014634468709458335188785981888556255356287415504053413202296978999007659681864915395585732914116616964236231932598267083666491882832308962952864333399408740415140989871661353189591713146440316957034323557644935795251130039943387898604619725937228889233023443854311783442936091516589320164876691874545086195797312424823162351819577071271239291494967280917054313693143229795447798452964639666894594151363108623886444476702896035782578569505716814280467438232602463484416762128815114505096070207783649853152015725917503704068928127599571831802056004885205228242589272007861076984000223678337070053937283837615925719488194124277897644283478751670713493181696947421924361544365124764837268555699379544557664893308969245376562049910833358248679054905500992148048394352454521655427972498140698425878289179836894146577766060494596532506903771990266727772566285849108096261960907783277856447209409406675004519581420086361109272461381417007935808851023824573559182433984227644903429382629102695149764909940164876083433454043350321289973886465013583721783167060123364342504057129990878173009227008550548693443028750968441248020985109995500993358443293160911910326609223909298530789673609274981141019196309791677256607201121244005257834110023590370356653397883929990750273639607387686622227677899240986496063701099766737066110929618660734049948252902836345910083930346559533746430794225085406917192750451479509760480455649653347149009440903366261712209637108930128659656230728951019761051623933784826990927593356659187642234978449094917004419150916816719966017175248569787240424898919926412554521889916908060535461644549629499649474985726933794938732619038185596456432558851379163928658473488661972486620976273827282819793943551289537230173401023901512294177687303220422978702372887920222517385485777668574296720293545841841266632860262600324294285071997956353624002601570248959303500434041228323407418932028452018228464290492616892428302875757342136386081953050039183474566724863263792138410192955131829133744859086014409316951827968329972279163349194567358805585431988724675706661422763430843246067109827000447690414360815582522017287182733759417285566725704931858931878177790038541209826752899328494420783386421963990553164317789011728599732557602716685469864159843846219836333328328304518906657473698363404521610725357621840736995189749637091791496676119747601190772797284084607831518936945160652138104492474989342310077980274280117255245295952157060814953882053987991432144121342939272228717126574217078211642103301803695767343671624648052825873227331590313746067369919884630624103821446394601594880079648000265692259533531338590669558125088655388736585475132952026841546008350113019009821396621650271665269301000438797162355155143040310883004051669721514814537118703669695831751846605666697868809634916170160307603776541105305082093863824354456866283861617377986114099579797302330438477485614145511296333113590349611311277508343886616608119942353810557680051625211486741258906071801810606992570762482381043869032299939892100789845081928168284358781954205087621204848793920499874385606267349703907473951181075441506560895238763240253589635776926821441760455005452228077302186382644016231828389813326697239833916899862155421144993379362828105783021461935637941199575411193658479159319537230889987485946829259251342455023345940913730677844361304032278224778907309242213973986784284250818864204068734878192520293296553743647506668569603869057438772420420982022006068613254050928242156093215854293496713887972595932084349839760751227236362120769942793144381369253258819740200276285224870894343825763176818281819052101842991416095262667602846428262066513985069761085310536048877509332228717214250994640796353455047597130371515080890397006379436044033900331503495420825868640972722959755417217088843674216981315187169121802939309760109264102840033483547090533075512039268741819705273303757272044899417944913332222294259826176319997012619547824004475348523991677592387367164974116366907804175307934638803013596178915884031463757189713952176453620367792381687470321059395294524505353934802468103150637339481080662624836767935160273683279256045306768720547919230737032955203171179952608587088694573244055997976696451426114662800062767143802166895123247130657010163144799433414175444290285710231495712392623786014379516279891704856767017952478463706314550937856723502780532699521055401104660470650601040511622156688967065540892375591716678555343382602135273155862526037497496371322919124814060890343371771976726455385986154681054964028514232197684873764374754039896067022456429097576643761221401069020179855342185185610796679270443380872575135525159018208473743269693087363877751061523879260641034314061110715646935569890828720182570847388220291168283859145065800390753723703129345227641049835182301996076193891540772420271791451116413717168030676091273150730777722826202818479654259886598281061520959640462815783071981473719367328437656110498135067576365377563330981458860605121397563865060831054179621541497307130258442878710189417792697789591047061192928586413705157011749926571970558475207461871347268725223294969705307814215305235796208393662641652077210880948994046306085492749111241452299414478336690044208635509456241488965453734303363871083540636768068083076220180325749441966315164422092091837483033301394113072168005980107492823973705920285693979312320249785001921286175011680099925670537491761058791900341511527457774806478789155152420044799630277576754165511692875399145626603215038221115508336060507758199198501471118289152889869367758944419624291262547042673164702840038264500757916344785483694062925613638763841740699029868888578182791976628838488141134239755657805143661736465382362945138199252055950908036524460656846968208770347044663164646685993598565415287058195824955671230616217984004244214516956314711699967108545998022752615086474051696960955545839697093174840346963613678925043710109857114538341506901396932713731235689652236943319239634963485147906655777229581656375786933138922870765147480747489192509396270783767903770512182005992887477382054962103072199366844746244660518501425483346370477655065462634035230027227935858491990609525350517134497914605052234197756546671228633517752305379704274440495604396093780614211443786053245670191034305487550817520869475904035500481018354509210333192007185583642017442129409499387773664823309973853126022054475948156812119697469838828672309512194251475258989106009984334092914302915041478442762862961146787152090055589060209266919002978480981789719169462515157908032578653619444042176199377925347581016588217368035492497691863884297851106104230853427429515023958888990509959075392862718955367837558261117958705487323068456157211312453819610868640301145798387978550651369324361125155593438445247612706726813079602098977943433227974721054562570780030145906471380424229541477425146022557065274714635707181298611348423889987504274410379458615614426869775479604884902748541481503762594234490365511002375369910632009237533067025422824084554599932278933481748120119810735835211728532142970653836169762476611968518909927450421772144422311637734881455611879549730139643196557410138018948226400892658402092860310329608495446325727430220217419002760907105892264329133928776848564663670422589303493061783753756328165536753264483020003091805539881042215656717841229006124467846277304228708314152118985002493111074279557463011432628279878745068514813287754322835886352712945744814966072519980751002058476702199902142102334830472237807002027543517436946046160021057781710180994202091985878116082426339859097170179240516117834231557022700466866464604275462266770760171167747214318462981749025458946721806814132813228325479229813241467620273817150100091187327202150860952048365083205429354280204842104225164228743220920139103569407848875843689087381271652739675078708043333844613197072167759377132618570800410370405508454065961710389087158126681844131675832260801595696164306488219380935880356438523050388547059162321195330578390129347324657576575368193615367495149657750689858262716401596297833605078117839546075411117248537916989206848582631191477435653679457355680925198878376308987237947614609349507069961070030949731970954327778949370304359409437372970432941996755098035011424302367407361882278564103757138750094831660553425615647036065777270195596709741277712209919589663282892733609266365827388782581775912959727178635582476888349564144650701194534935158570531151946501554271241795089156534430567093129075204067434040262564454714909255496243252371195322150440984840271988283203857029689911261845838129402265524256441672631391901502220566547431504109241961102690937723321036739167182599299983607328160130183553508187257255996666815156024893449713278252414029375551224776093775203843215081965364471711004172228203822954253913842540114300702705110892088686388166386055779581597211858996969295045446642034511975521346341505340009033480804107885425088465771543867112625212653632482777718899698083037954571211772014230555435505749286397333305274420489033466343702337395716741876216953338884266220099990734646312859611722569651134963080215129836932616087321258661138166887658777555739737600486743379314228374293279893787670324943840568399985431260012216415552719716433118603985089807677291500708656366881769181635315286326258527746974735560536929526017612631192501261641935222032561270646730905670780382011053429107953016299321366551381338861890447116115683922455239267361067935906113146928000214917349283589753999342585343384408766462431884523189002884784422958038592854172017989991128986503437538600705874748290239087688202341596872982176355559170544259635363418460606957410168929830892413501970005981519679097709369309359343624857682705367028673220138457227735776723092326310225731951953526897523077136794909535708504189978865324363284963934980007984957717388555216444927681896731701600754097213499854533739813348889803375747377348809183629090410000089514820490893818493034693255527000385978378220714964763159915951744475897655202310082665365451020054158535424762828155422663564834456390235542414206858621300369084224117045593038983372008420241485959355275109097777298743261142131792303345590124470358535829720310835043231321353378686878450835669799537141304466449302340836408314447472058377644399945577459506096955132307665144415811245082073986721903327700611869400531116156851374592131979420799675787742754510215080247958867945181627804722171100598115429599002299041449576408518201305296857939979908639830767029492353822353675583530502603797458757996131400640875974651037202254179647232257150233444454313006449351019376114131434943857880315662023171750958858459930542740507379404085944915989398650119127047634159595008993440002511541469230487198709825509663685068061485130478726688943744640711060748687016249029147407382716141302573356740900492953561163909021481477073255614662742679611547956599890701276470346598955240862338235124741314887797517696237478186098795877571473550635226897650016117082212102314019356859120970326111737735306104111328798545155457578837065503649948224856604392272627495874345266207747638681285449123232345168304906908926170953102968288015047365453792444982940100960517942076686969236810920407166498679343098530442618591367013433102106496013815541243013565901590195999566580308467870104609550624411774545907640364577150009428610054493015614249360936396569343483825436751475797150171014713009591685545849034992507009047113064341096249894743686304742678462237484806443113958840119409672028377883882668517565856120905453166814791403798869452387964007586822930711828503651454947446256224698331561479412584619259226826139358369676537415531375599753657825408112782767608507481793224852201136442599629326205954251637168744590060549621900406885114276453065734253975542638404501219994124690202564945939916829153171590274105734235696828095586521621639069102351290097689286982014599765849730235812542809858301972290278702576111014782064816365632182861212059118658969838979542104089377257730146302898833599791494537870744949052097490585183057796405857723465409578582834398167164978469532315416705353291783435301758918192146373414635869435752135231754505649832860002053205570172873271886158234676002723463230784629711593153667231557823271745601536437369531504996804889109279181675565042013113261111742021891625257098453976477307001585302485601682211077825176739924045437578148558855875658887270128478540637884917195288823875816939945174875372990149942806302597214027091921414154140817436956670202185391919271320916980154244029515354450530721031944194758631354033490656096494636574480801276833813699049635523083692386570266162581715233403231163351571846284717684674373310919090384111857959988766592636270214673714590097168257799090736980960094829321519792643939884837769880694995891527756936059154075497408877628274936525941271953554309872572582528488850518483389107206863420514837507384211195525672770738434637436915643137819421498242685795030477323269745953652132615330639710293352137542148701177368261925380440486473994767580135732653860713329392979563638335511343499303263802637393747106149037430516643020575563932196071969815507820385679716719359566852131877169918173941426921591056282376963002212881884183203400696198530096153760663141073266154157844618864253623901794905215141060377498110923313958659473240299804410399401054542291198872639924754602629280877552912594103187568862574678554554487168040354681962217150187731771113939588575614787503111890621520164454132812597558627079023222456281434410896901578755289176174322105107767188010521099229173939806712574376480596543681659774712714759058913445213917898296768823931033100150177867527270194330590021578414774524370300053110935752569708707287380470039331762893269765741807045446454140677371798594623550665429521437522808244101810182691952909329120865701778325384654842312129363720090408707108010432504839573934331082690775757398172385514070903220981712838379045879756942929385862543532349429543877521336611967122074021877849374197379972040791650938574451434237274674937538643384911268090998880053861810360418700730104253489661464863961386322970059238925490665193756532840504065728985771393220319513938260179579316457519316000858614557540050433085036328018623055063896589127764891945513515919717183505618687647250189986840432893781343372443880607893470951028206442561962349097931051904541044895606538278628795324837341386125546889937476295840059791514845180087553148188773326114727927696832412407959242798319753842152934791012133958115628331103586107449659229028987686703745528740726490839018050416062712833231993205590726390985838310457353138801514175235500988962289180633895737212104399610048824490374073702654011037515086412216276245538791867128470498422375061846218486947571467183921562497417707858229911684595181114261464963261988961801695156525009591557518084441445016162094283269311602227491897354873659433972912126785310170594244634651032322839162804060849688159812682702857036615895301704727131531432012978923674363304805025057237659582554328313996660713091374203032874596500845857018781116825564709220781523815617747876635190063584284145265315414875027642239959670881891941054491791154321006669860687962788990236372874469205315317469012647528033096317893223865914850674277257904865246469437394000529461753713541284558946002297756594740272650544504705071651089218454221411748930234213379412745874432543239802078538244135557211208579517867623521504699576494778774655966084012798740542428251733095650366866883788302529241052148376672499359377427592355699716579398565401768627569454201091171175844156221563244858413874010951475515116252216944109779733178443388433467180731645885058744019328350101922431941370411168676823685253477741755621575921081358706167656955251506212366629040479876125815750878661895291120849419065896616540187036400767926592816746127663207331438713569623174233347938845281071345558170431681279986115583696583589183479099487395677726295768613013462932665194400660953730421584410636286085841357414410974942772173652498668259454612163021687872052730983965142333243311876238615561362862576774047173944392928813716405252857270685515026286697991806838419475521203447896679099248514020821480262685173290019024084039427293462221035662441634412649586830027744411518113878097575175835860416376814653425377771630063036698018794299232501571267234172162750527639214104001342923650482921567571924945546216994282866063647400271823414211641318852898443314167383586707573514912378575175673379395412348122749393782713305060481029890724957582223183932845131064644549742093312669689674799709197887883056365623263002583945467518195558977343552116246018606916244323494590015834878048162756543153974116111208828995916159121142352151519792842305919507521903118241673986057796163134914504802217130455880575858531838912636102199514891786570226004666140848530100602553106800997373063404363933952905410536544926357507452838660681163463896954001590121276688690438208275716640254012147169784623902030964076154241866084484125729468889619568483980084884049636620789884317917935404656848268305250145679731878217958579082183841722801815261821278592325180910606282126449408668194903608185264614214380034212682141211461435159327263324843927098379153963746257431397253027596798921123030612498980443941283149313745710065983636235690379706594727807903943303589351225391314752718764050499338274168178867265380336780452175129189327308827626166280849611487823322954594578942929100095700419800980849573087893826366219567945146897476232970403739027963056325585976680992964203288547302341853534810232144072400875906818818756961887551284475509609328863235607660324254648592926618829843028761493978723780252770125218527620966898370219555864399485089290123784003745060023345451118357452465134699528133675067941410624338392763957708204326139348844959756309849089605394089424806895237145172912380281961349492421398349485221536886756827585342515971527603604952782975378489738838649258382887561332342754112541864592322587320685867147910338195350772763753663152259971559988250362426792744108387856478474905806012632993540060244125458938667619247366605246088499603549716912736127158783894532759837684819682228481049311054159778123896434144557963873003727419083872292651700090232433408914585184028084129702547383641852657388827960023717172573276053701050387032584971735409001921877127626590858918215675429161891371610608492916764625150351663901911291509371190976209685303304853094985593535017344218779046758975278816625043329220686314472788532260310998892868062631558283023223818097269500972624641283888909412131228678715854997996404495393449347145659333705310803049909855216451911605228301955220586649993983197978243760206980115370806100111383219937650260404161515875113715670089662441329080838997271176065344791159241110240676527731577044222402694433826915149988395447731357573730463985756630348915673527563047358924617739898059650257601221043001563735537427179602242324222686386782545538547285290512200037247447910324636567622826256491574933040188063937166714414938250523930824732750939954992191203577350063913163770093322817004286848824234193979639036061826437630371815917599426095165316853460670317154376084908117835611772766836158680720334454500676604183863285514759998628738021379281783727795807628344232317539712884825594794804275277406110734790835398745970695732976264639128292045998911393264127297945350124998012186085485651374611935955797885845216358138738733421861338665551882319692111288517885397673171382310544898196644639430415022288318119394818071280274727130196968812970910723153705587796195732867366940965887588775064292000806275840327833317722088852757570059342979421342387577616006795976545033970216998964402582553256158175352952975986272308389824460274944052237240505313831804993868661232862617477538612747247327479643200091985327499841552478529838984758514133466581788637631205654966980315444660034354817978081710604256386402924204691854259821668279932949879109692003265252323263958747199501209958747447127748293288533315661852175998931318477794596033778014009089689251953855474584787677474293585885573496168463359951890817121760391837354224044774503919884037532048405315792098425776635472729207674647205294875838045003094894899861106052981442445075401652555421825396379709836357067547048519377566617930670077083342166567837149711727505096356269330031133725558940697573481166878140114789600021408656764928378260937114437367091947416870952948770014439450548407751063354502608424354091242026048198255448977006610466012492301449086316377441610222496310685402994618740637627038921549113384751345937292678737519768080264300874896110262475916321288173936635701152370472844647682820212514741948040461572623322775358221162324019644430007152271088350343671308551086204823123458272774204149717416242571747185276056071204031317479368265584792181560475433617256719353268505695559784482904090506202241703416421116498943450463514938624349286571733893803878270941396912045622795839558746006994146640556557880654811209195616068402004832834111276008807192514833392637652196629668465262476663786761834920825735160935684718449332203156397891906074553793552676528206771464518648982522391368414010752902795928841629887566878483905598855436873352353434459450511412874975312878533684112320799147290161644096688933996504959223081700181472847276118323991697608265668022897918110163723554396958423654957701789165749765229342715496501170129241489966289884632529417637159485708162815472753579908429218559925609529300590274894175205538703715813002990352168579644751560602497516854370512361073641008519855825667048488122914924637469476598808171420404944880273817226017760131839742946295071809675225393247003391856405410919203958409741747785503734756986682312756513997854934078817755842407395149988174587728444230524438388307533807024408098258767262264676603292785714671739033455935891096751858879571942891287104557893426448126383337815546977201162535248181374780138264664488756062424658930951714285678352408376636345681021457983960643870926086955686933967991237649524858605930395559008283315383612931373204259016700386029763327953595054147866032260669589573882297850831875792271843375964109873065435018242493222244393862738332422459423897963230622769080797442216298952486755327034080324364198031121090083636959107673043934111176847012078986385245303126938733862085613854424497133300971300598327041572894293923968406979857666905790456087039693472402520956744821718781803536598060756544911437535119899932434808881229197181741654822604262766731847392178392327627809358405683968099444835459775855000892391748325928889177338569682649072445057574860920290208634226590085752917981872679004948667512443857471320856527386211814471307361403045462864296132028853608237694425781633893575898911736817604915562615290578776996715082071595865200475770282508343213525026353722632806188837695607934998917516166085177122582273305333626261585174570801742455538025550356543622811512280573831520929106697859699472723385606906427990774476016693207138670681326025288749395089809064338834349546166135947103357635356810355841426776199145447937507057240077620815135451246199325620649211536617637567952365985460654325567544502608269645589921251563153721091793081396156532261179228085788519384246154080223629117471732248192338474573254909603857983339597321862103697963761776502147993897208971888615054530191557813181446496509203355273969692018737565668874660106631297959037315150087775615920773085105047476863318764486226728587528566035471872119046709438907831566696303184032972724047153163651358529485077172068692019331165603624231715297262673203542370203930868171143671205068519327459013012365767255078102374122078702293260388824130001757649816742987423340180847707510749632121501322301381911891820678034266822240077341318428859063506454876360056759936052505815441082799903983237162092304882921373172872575774466420385071709651262866028042819102541719721509141116150125472901754439759059581483643339473464812134480542286870155768871197541867466693511800989248391000969780702907763022079666838376568827625161294191043187041074892514131388577903296189272034137724102578020186202535713929846560711367538002286672304093878716207368664328421342874107954378102120244034926381909603781631342936896909605541915349489544203614831696124367578282197676132519844870035386258378522745036509013866015389584811619835725053200504788575259550044196912424923478401644802319469163371553180161996196824955784186589319391208010737001679954440922631769354786079740308733162922683734171163281045777728779953085007053819447409911566782029794923691973229625703279248954411419531469700235408408120820056235955181815127954671720094248396347122469220827988660372065369236932620519096187096623724001613201354808110110025433994854098909328233774184820804188455383241703375512233708966769144818732813420998718044518384017300942580191700707410101509033904033134134468005488217018142150577513894054745399641422243162152680327445043404818391613674472018856666895136608533543919210151504779180240837881876246139021651425422511593784468653185730107619945421659548460232592306481660508426272452043971739263111634726579112287672338279023897519985194627081828411436835197765298077199833348554245193348183774356343481928508429547606136231616197317742508207793600707543304563085356251870764254549615891720053197168640220299230851609300960714807531019052047027077118481121021528241685109810371034955896996929258307272933848759262665043361405685034660926172832968518377765518845514077263065667459726293722400282346997705194107690248630575717886009898529416444571405268127657110698005744766784943286507469593605873462825714885659009385071097561559153677113573563805319602004496191230295316354086312759386459394518212782235210696735910208113414750773852215017915054140904219043636472344063992588526698665435367620427004780476800664721571727471440503150790155638827058260780013326996723902724795978410110324889540582455050241452200196632024987829713185263567798908323779287752670876065486476169889565870156436972733209645908396476124312282801402384833858908105554959988568510058790065521794478636679088566630690354008082876125021330691391545345281954854836783128428733721454857551371869692730781029663522998955634595757808173777787825140619104595417887699017261207022679353546452034481688652785020931231395664495685377929614531704538585935823569767685229761431047204959231820689199904106219943881002769183735557093408793566588685398609331818697395009583577973301418179950369010723676572882905104867052035338951601110555253843120072256460875626580698955065127569036992005901723054926615689556214189798609070362867812622683898140147589976496236850985795883350095042669526624209064442617905182521217886332935546485887199493835142383519699141236244283014759242685030054369018034826235847640600932169509797893757382031763359340138566542700319853012104254846107061267559532958016235125184557186366899900081356420781413957220081164728657025647393513236733324719773389877940959098726556725309990166648855393469197754387264302892669562547846245670280450025337259881652498833746420170247035652860378403135503527925099915058480279710509507047179967596638069252524430165688367324782911423183230517019006802791461845224641486345689554367271178947648182365098388210510609344512759741818202359376156052370932820002912010633309456364201739998126661398032468251076747121219678423539530630841369371124613927556216710112672267496756522261522898324055163866669249973463057011586109716819488971825042624044608282833938968666831226385363257676607700785557581493413261116359163159166675251770547707149296101658550519915600147043861716704765284482938206980631287622978061684252954794960459347668190166211409478253467533978504305524469552656221307631036621084314031008989315125018270692676248273926444924156385415707925161560273737015756494157362617369549842642328036715107286715828474180802589525980526132555058629980232180510317444880591375763942109140602154843028977405744471680044208845198861108039750586457723576061278473031526707181678499148173603460581502836414907227731977750343684484542615852682192158448683581215696258578442891402432706560229082241448198760633304999628278595120340600254139451917255155674824019617785135763297707017462463637465929780296156620439865096638778650928227165496997463464885828791561052747734345635776814205594336320578423236443683366745874860934798982207360148983818062793217374686983854969740736913067069752283519049000208976100354785382516640260330958136358893545207644001693027721950326538887566881097821681773272310240531263516708213937811760524437509465992034347145972396012913484350958184646510362710628264343347531668092135341000026819385989240260106913847980011738814156511797949689796542953053157673813632302959965441683144107418919707018274713264594650887316137842385146774601645767183500253102655934402809963486721566505533521338945048949153040659378843628465940091203324367044084774838181890319170662229176825826168512552344326503493738036443759502404466624348755704919065455200020842580130815073873562966878245880546483420506908198453417307277249485501683000914226443536057293226187183825515349221312503555210027071284455577950929725132289186143754800403263487267618133364920585233061926730652618158643761072460157282354746044647079959858006679998661617022737672735743756429091343258716491766803432425402653741389440859196609387915795484318876582690240068776622170266180281407714583765785763314848844295059649628172240020881952491076668992461030816684007575493868471119567646676132492612024703200349007083821121656056667194127659959365800445112885194395742221267976001184393258950044401465443974512923437446976539530671760393908622647835779920631163819206440175212428481231900232648013157026429241791040303113253988550844991090660993229649978293379370501248940117312376822563457384372830882514039090705181417016113911551508211986347960876024464032095147173680119040672841390105792431163274231762182300008390015010929996142371965701676080190754133784040179404888043140643005619583331855567474109819368455808042398940714945651298599857519773688783658563873238601013352210576387350594990614156631567395571986598369976760134700679173683342276442013772649866799961959568041041525134888362368086908733754612990875817062556105784574347780817814611857014663867592007973936330030474434618772054187251529538841890241162977473709184069121720732340192029645331647213201238096984117062943949242459031240593944893275106013890961973179038906108638843380262641924568199761692461750745665613161361492551638503254614449018479974079613565132226965746221081221056969174500611234385473539867966349657449459719196466248366598743776259735745393758857415614339262095228236682481287355312547805165966879845616960491784453980149545592918760921798335093369794928721137736531885612735722707713032368179111664177519552485993277667089829882644704672612498937862978373738292564843489755403098936449466677556423687670524839614937838842879823667407282992924766847945467509525506850502223966064804968024018287082842021859582121289669211795008776102357623696396740347158077688739765272679321510289822714590017253108364942351587073150451133266267208812019368890392685884065375774821509218334530551364631163551792609733094792637045062696159127430217465115863448323111237719044405840193084236827383021906528573193204380275618963090211460625482139423198899625311442598907559459771189326556389003585642040468054152525449623924810699742267184613426567200979782095505684043275048092971644121161772779776711854245727905886377759802613917136976891520388997594473877449144891294634089440113664120935941512742494020050836670544110178877935656085807469192076663362562289655996998926149027028331608936605903083081816456819891967714393779174076523848641715277996500426214130241390187527699398401137697121822285034857433356924873939792979118349280451190956814791979260967898839463569302973579359938577444221124598753038310430724653238777197774805997526422093822230410245240438824624693016174267411527716043343872801018382780935767145984353173805404721277144397947881690194700829030706627724802385264959627367671396690001413862884653163483045255821689234120858298198458546289282355749984346847743997746593923967529862973957004956021573688598688470939177431311685348359055062545263125677944405468512034897524208884229795541978117280385075349974577262462824094583745507019077297189645344360383568137293127470662699936464208577613484741430135565924525691067872263175845145821699331631899268162990733947053577852641967044642208925619390184634171303230078401725966532502116381731436823402289387320222047953498036855080345678293519961088196180355558668908337341131327162146176863615627759372391406434123552680427906771468400083906052740992684018993140268442262056699384450158841913156954551020867214118836669027604220751407730942063808932953067359495644848141762057207288710856848069515703061741250093494874090325385595957904396856002842750540605593744658869736231268243639032365332493291996416010862169821890688329443840061606763363111011589650911385057689199079568648000101750265445599717453245043633458283778511794682668561087167299225558133031753731904680721191420791831554038868245614925439873788648248628481993273750849625244735418025441292663327876113805371024016276798120533320984091789918269814514071462757758352713954036106270661734696564344752550856634173575453368822882915367473425315492922741683485130230353268149444418882576282061805676674464972441184451573874267804806252392827443527345379025409996126347981412547507143610243669879811350702317971713198060436385129268046746813819389755799742071993872255716634771460706971725908991262702681883263725116883342077002988137401257625720713630960054119707400314799104623882747909997658853577142732064148065830551295444723695516372475645424998363274018810182997877130498215890767464634408333375059629890206438759162659926708377645620902721632848556504788639776461719720831655708114537827388754787272499043864561308972244344095534282585169327494700883519262760188985864345784749741511472981258411202599192201236121459449447698119146144468683844950939150328187332547505352586272735642180259500363550023707700841686190107699993879105934725364049786688825818274119716356358697273286480427278447469550979174281118528044262455917991566054526901414922231489609482173418114111962847939491935487615304167314202538482417962505058744744646952335934062796142613736419694290827115375941928294619874245807605708129136067197108094838144896935665999541475364443352514573664674128003071809565227294105664854897765785109034520773691142437097165978640389811717393209051745953259047385887115829629257194305959524901423843030504051930092315475817864184248044863861947755731654365707186735855995949872808198397407265876970378380700683941958408184261346730117749417126111274116049333078630220190827185869170196029388670375667568943866221702179816154557954513800230713631616296627571716376280823025449931320881793222287579205186047974010160229914221964456711256709566448584049567217829622548776521348654853453996443368595641419590726649333380543039854018579485098684013188895634277190005718167266563542489501525074302633737744539572460428505913662427991851238404038811281162684660286040602356239578667631408525988452460316227312548998357536937995745893879670327651007055767436801233887251720347421184882254714030949839736325599732983145461084291995221734232617119403353542810975202203696739646973925669326800179402664222253384656908953512673809374307604900198389701578223830868521608515602208418114206638142159601336256564290404412434296715287012564106426669736583399226629402229849015159111429288542749345164821119857277646490500204903914955267751260559964221242630374741686118471271321776109665335030245266205155643205955337253976334589481190812777196787677474597760314071658144227073447292640356780241204728162797893354296080184475734607953631352648105884901721449876740978073008010979611679008359991658714740223136973398027682648782769175470772242593527650452701803305834097272192679343316087717796246698153408808494186821901378604063123064607168527231122952234505500710493154762848393509157610851785830125359703746468245619993819330973780104345084507629432035147375394829075008070453641239482055870013069130221543306248988420860839603261733022270278080523696686282506897619018948803864519887383762346764764998168747777332921276788789668657302736158018325761278966775040692154249539974114675940739185409054618845467225662733625055536679906222690554066247502229295404414985037982059846417307758936282598732452895274729235473103680557343033330441474366675325290501690695031773442745275914074032688682809465733849736486266872227470106899867193352997578924082278458175107303073362516745196476685393232823624119088796479891980540150975897626147443861445133734880347293498001789486543743899847174343441954139915089325415793882717843812644274048116504176025575518632074950278927888712801689935554557147290930749555409955131733761573887974502126939599757364436594295293957945995895207189384401156530196184711194165753988398095338211823793857484216157271360267054127496745487945875489505357164080066259731877138036196913036023570338198986220110892255916225896972102055329853596398849144174451361995898090931256567879069584155354222123543207080477280112502830777775276948046676851284146457962475228512296392071456273385302174999205802987118456339986206456621191191182641671189925845526129681701270562560427774268855581396611453426681122770048054685674707035542046034060238840527849336162876779940320083189854292952485411126281858747259397225038971542329455947874891871219460867007411824850112570365795941854929759937485130065557290665487495207805189725029221384681899538150253307459644872112669746832088168673838222350426432226102465586159900779642292951974370128634859808257671530730535874937755710768931896288541864301921170485537073893419826853780814646768579981087461425209712430277932522202830264956371364343240540916254491149245767089001251731821003132546334143716819057498420358411280425845084806099282993563268494912726901963765341514252628741999492866362448140682419562427023483528009217482883181840861740049711919528282075603964776862215943437918659501537031736528489418914711861342252637300473468416350122475357225835262976896080992012624920589165299310034190977535462155052391076786422380818707099114016584692884134388432882490513958497327311068289470068419820812245824802800526055769296814432801854170975549445097737373713670363223896804878099574484051379124679636097226702327290585077246723507022832189140305556751659816690240064068153871834573937521210519225174801832490069329843153180225923220376892638165444954851377838792105144251618221565678423604360029699961754209549730884345035891592884200804985669150322812867452557326285323877607367329099574118314734786653056865591251967272249889431615763924794864817312702467518820404079277616432148409459619567129743556203804215860173305896525780300007025951155201715746939669698958700369681609940247289144848867942515851298523097535708790256450560757443116271033190412058922858134034621851811694626959959984670339012798350372275495830739464812053580352567966178471341304367325767926884960752924770384438968898916604612128542373938758009768509744726085338178260901566951041783838582594941712509156816956551458049766572502452540534188952154942135651807489940461283570647975952554432561335773369999576381241711542338926456514553359805369071579321790731984295095574648057656993353139713101557378461173897716209653746674516302636497836927659281166406732462377575421867540922425023698130843191436544755380438457006527549640924275648512584752035343101138777989710660502250296026985488756675343445300049348499830047402945010589751580726082044912721468058911352753866843361670355520090298664986892177356271533609770961115682664603093641577237244677968809658429044358104776427568927217456587111034757642503681468343829031992473252890594454085448726524444101663527704989689675380653274234217944113131825147610603840436675052479393503769011634506609336123150885734625995652028723412162583527250783075858511019420150826842583345405365602567207281347334888103219041865544778344760952636233723081664992330398860698273989591075217675781895120842411493619729808211258833303778668806435314636125545475878509413994874133166601039649549290581782466330370149715546913890967830517981705631083541134913493923839419140325056589984333809213495740289442235129925353367582068694088297484720116430143939214104035303881612464343216117575339691623747517926575259265660469289237789036548033885779831105731093718375696528736933167611310008447132874756301552993129339251962473050665917574937457017454149445615195823090171968346977809541580562608600508220005322896334189473521322375631222093315102970444680547523496502330333409951328612534920751496800988662800695118093110988562770546010617632947307966291959277479828848891750802946857928140943482225915202978766654675810836476024448659338024533165622858575477711459332331256110620286381559859654182495461474196880294984933061418725696715416308430343589624518199843862800774859665261626083481705016731377900829277147004214602690098617021116941614588511727532378939366749230310515646341455771298522942352414542706330717054582533379279736446396042829401732698490540519257897266085646657991185791970402098114767161064602292374137588500682210455058786316468167893101780450807600791780572158020769732361838366801976939808212641790750247660582632498965546641347519802865525809726988708364303437864275209764339458816846819685538652565784681304133127560506034619079871850285365140641622476733005037394363000538144102100046045979342479314691862332976542616203372395495023636822823010051425127816744258367568256140431694217070221289092143111591363599510927022216674012932838658488254872262123285137196926481083295062065562579417729678218587059780138438605301024047189866038246180694867640100021579397281815364415546768586340955869394871813167016710209601233524116482755971790780137104619506783759517352141541585149150058582504696749956474548529586903452086479427056699108721093184277627178610304821895621261960577663992894483547950472421678485025613075526932732011147254346784010286348647656693240887285826963455014810062269899099107647758185162233482648096324731425808314965472478062106297687239409723560400437435064887449893584322693500166564886263363936955919689587768526781035008336764089091282214708501171347580004346145485519519661698114989497866522228350666524327857933305103110330939814068796645006824599735638445835870640767227446189787462287562243601133849973269871321543049508131256420883243826817215516516880971231187097232528570431372588720484235913758926548725477922920679183663138320282877688286081448224726251875464201186918269622580215762740437198438186242299545994085869942118531603125398106139959391798289737531913245507825288183449459752275625251667868754680476313083244905481868507922703726165650530546898363341812530042814031159656314135715812062630548174451915530728496449569240343617513952207321470745467153093454704566182312543617096189752303989955833228952679945594592082447729216792552637393725254241606862906640310458447334214171312127366994503644742289133320977670914360594260216689304918742444853151214193499965754608669501080424016077313199683342589459387141876308891205934860520266958724300852598532782565005528361804019830367246221358240620478054283682764502590148204086491167682017269226166067120781564001024452890872596621546929134371779419413374271766572946315333619533612837773265325018304729107641764035556442828900680826901996600420145635091836481376846088239416325437049392533294869236696904093535600493708378140225720555766021032218982346677610890891804266509793795418431672165238367161829204383949208564639480827648028464868631776972284008858235979079151255051408394871914561843185447820335001859608613284270928432468919294256121328325598535101239471702784803684529247792486535541679984044095215120124644419312556670760647843460703670269083038389492763837061358629130619327560165868270659586339063869571855548656597340937005069986391278723570338654799714145901509905865888499826140336646961202312086385657679070587100065538877416377785137518787219885763796319120472931996582324322888893912749023193874769172013807064303717248299273487524021919675135108233469610102460027952447451433342797826453607457641261130542690704190880874404535744838986842687288502728340812273620633462414607971396903240808717361776827927980992037493266459405227596901098327988736670417511864306874791780788386368166117895711229661330482397224588089575530542306953621631503552828479951809262387934576269350802097943229163787680151546597964043979651856699937686310682787425835640885274335099852507957381472286862676718524536794292375052969740744707971182543078401598570565445866110251841060626241301235015777980840260149637825254736365909232534286154231550269590975012587842615584915766008274759495663322825247390975926016813777705581519991321868271595100194327593032732848569913716317480256692111824531792019949567839721552385830313594806527874385765715076822651471925956762097598873866731853312610885311464099366069271470217670720716698274194800054383277808043245371895527629050432561158394956820362345059566275849706120184716608785346416357784148682438325476985301428326227273307780000095756749461661258380605249905141438851062908289352235314996114782694578416485156601025822669386499759576140830635655849734875654866353552257066256862022465877881296222707338126422712553816153877629234107000025847171472326270059762938624455894064401097779747465449316444872707265104798874521890126537076364124876667899007599287726509038163110343529997183771996750111481217424057965881977276695845804083538547594655324222859326724035931968363660361291833874457274787309114900376336420989945539860305388399328187659676229228678046053929648129540301742700498214438151975675539170998623808568443685366922642358774535315729727766610403497312304664744370388114297846829804839576743163035654861476046408591094307764295327008812803102609519089167837573580385554441228355143267064174253951018808781645794034218303573199832303269593219972996355020263503864248231390947364642450436582313714373374894787994402328114454712648855227274200774168180649792624594190278655475238419666786885638969133253609888471084479738192936753629022030530203504836586539448536933017214981709990622196802204175648348823015596931060798440329747781004283890840753657033036771646334708694759131826395994961098922979843384687454919072241796658368763447426029011035079528922462058481765702014415996966720097692694527067971614823351312524481854102502496710165821104091703589842518176740567971395484642007860966096679517134134262088332498419471359262270161692426724693215898489231937624670972427384473151104993060117796271950754248556226444633970748072808017919751924108969059221133375193758969843096561775391949737123137428258548854741287894727352129237380588483213971202460793226434590163989704931201662784627556351529932385736990423154082367052055316822759242448845878748451537004713710660161823713753822617532802073342324417279151205978688770397074309670120954974613221968145930847717705090081290101204489119502347511551679553017106167777322030240104928714944444364455647466170475660099688299760043544729340068429370475993515588476632443408990911480821149587585624801549964695008156914946820162261831855793266865889501262196483554128700539413624771805982571596292279392876572386112724303429585353749118542832294409387936165928228288394212216976535341949938475502704029357625707700147458391106746807603046374674620825289481982882624466600121691805743805319874918696782021038619716298654564335274997379690230397009114833132803689778070835750993318365639660653871940529696127776410139937841438177127008097784753753874175242287024422463142164233714010100094780841361435162008789664795843896577535505853947641820882124410590792960452281209755028158625888284243348641264540564010106492862337926005162410720976614391539785602284403802098797187900898264457987655364184210834311492564853534570102476555424043617228991939308407138595758321185353307522009477879185127178299312524165981549472745566381072254265972320467856013809826208917596910872702102806574970250498360218977857293928341048144258350852861981174661223363935240487834969912578394617805813486177145425177884449044920249957732940649336712335423330389348068342201057309175989232200290331319388481304833491226300045683224153122549374023651122481016202670770851737118822868912205173512764647449276050390836390997287765441264696768837339066618508986316738288578611946735775665338393499003259091874421379497905766354862580024153710829964921788332948658065677165146829077257972134044728874867779643008263179132157037155328767467708147080652957332387486671536650257363367755975358807516817763143423926312153222668055497908060489343367159489611785020298026488098550367065575997238161130847288666079391077966753048756872292991771099279801429788139644678193866746306866102563708011390453082569740230736845955978718303909649786355171359108233178486123570331775812125003614886031248200158856765893048190145098940662853405925554423933989537147759249842495482696265113660972071291651856215040977296846066231493754954565409988641734751556995580217322366298696810612682182772242777664530884867938484665006789925533681023686140930037555526099482965967049282823773988500771697852963311617713461197047700103887328770192924253268959317056407725505333030593024592200613520580038201567836064502506058140941544622939080844418862999862771495885783211577916263518079065014913745169315902969071235923891112340428145920920263116982398426017622993129604062479254254468207182891835819151076719437092750244044387279604737687131664197544898904465023633756918142605390901053441188246161738170074170207721556513804761115759514906732450219614019639213792616129585524299684018458714340314299795585714767389330244862052960930941388832278451172321457311368132912055399985605489473782581435703639547047478286552363524575054951731302943741154479897158253568244047372151979624851474067367511691130735936875706931292485110408072057427544360658956754733630136689956293134753390722685843824860709751919220956153168921082711921931311731595407508091933227111138446477040554042341374247823232853638552497003344573117438233432908461137931954683662588659058831897456471602026215431327596275410181848510376823009200403121520615923741875915229486357055330899242698430368924878237083202135989814524754862570141865268191621884004557216512090687502722613723521360665350139479900250150150653813481836364084055121347471715466946519051616882198923453644524417928008760142280245912143828108256123139401188535906452501408831622877642502917987604199346159222010497524266568294914756259017841109697883575588895393210706766098747944284160468744720407685172961657991434887777225752290094057999970808731239325644103286653361326151345536174433477013046087655846876735020760902773495948147807484016412364276866489775115740217287745520121307734430526202919301820983031574579967678859462638635743307320483721803740182351611960832731539548665769902135891167105765178540641227896864195325425697633569942150034487390594815347431180268081139320884861730492702502276164107183785655899966633483031936744651308555654769825300534130892069747077908462400660588664441955848374179512526964537786848405291326942530620333413205761154326963652023133407284098905288489990475360253768212589274847275336131703064674577645288567607870043087246135850579229473895352329775711846316941791928397994676056010928400349320546464219622176753713936884448070096689167174042065491162076889024281562078881972106944316349512845189670748347787241693461991930820353804924927234172214045369785249864800199505459792474421286965384282152956581735398805018468252508168829327547733146074548186511244343102228988292172776273606500763544353515139820845761938307411213071937641400069264784852457151134669494795835625804039856121591398556209585470474826644107819972919279663041986983001795009987902723153736347657464009685783142441397473448661339373882347582285986910716770899701564874987034665323742106850287311975648461828787690677359406106902149175742258409718470449687149260216061065491931486116413573991276884741901357527719300615421272424237527331084821199895284488608514672127855423648779333083532022559310134904143125000556698245123199043031381286364375439334163656162581137364399103649995622586828251171751028630867956738384476427460259611715159715111310382374024925150100269394185034601183798770704951504963690830292844475633490739597357324767820556006995401287103949917442000069367071365564011606966359496470271247563719699732265223541341578741100212912080294857927104443012850098478236776353316901563376241837349626228858156947438668812414114517605791234911103795721222751157647206423348127052768666333855184256883767611303950088932386926060076230929319301001043477742172007431532464742201321960089592053097508118805999120622722022784003257795913975325379936978502400138521159351887898047765507583431537719991318539423280619072544514813275000533921994073546148579817895925706267761569316872958938785613655746043832138662638523780087233782701986711962525654694058548995953783801540984302309130621085461072766956863201079312788714736135541604949240491628226578472400171339547845635689767099162993953254137861551889946572112798992807659295844723827916913263761858017872659288142530913946589390490843951387435294317793446067524069318506898950826493977424134158837344821017685387476530257933174261040799362612070910523226763868889578632648872105180430549684761930149166144293240465436356196234810058229578750774965826276484936400057264519125485428499827535493569502500865902007575791077652461364192034154268255467721385534388372422456417714440504948543271906954170019425138541791942058754263130461640931862443963702331400604162064643183410919756294796774140778215419471215309488203141357501372728777736839654067356149667265831238433674183202750664609379575208063959912049521317861003245125661848718980414347885440290805754593936120114824216688150161440678620253050200940868621746092561830038539163469301860853887943336245850742716130347025090465575637997332157020575444425529254537919185684270107358392937742033856729505151624019096860948058094516448555151577710539434956849013048475198263660548489467207744584930559009117406658733876254571806974418573822063829285571936488030553192427154177747025084326870090041799070924302834266706240708638355335696964927370942326130461986686314584625791155623749159942473634552401282385626558742551022383297894662017591066567802985508519461360595978322956153181897163031598709118179419546437112190205118635470167975808333893799299901781118123584379773933908334409451416505888994114747043328391160831315587381532816280411805175769410684923944561602182755590109723060225075525790699593325284290592027856242689333618163654867006043692508034473667450183918691496881559585762971584812251042804839824730408654320620763091186040527439297669681674585721194092884530593388544526556019293638126656989694564653783002155605845803254151218780784042931892671580832575599920013646659119899282275292576389330006370175413493202152388005082331997969611111418595643934763559382067226625648729201063382672168816527647154822749105993426743229834863780509421791739803179925122145329710841153804456804987600123455640597814659196650030502136202763409466832274026158469028660625505079755816378670263617657816731107818954055790588238824139283735154287857212366027622121269716443324778032603648943784137714864605961856673105027678308652282543734557246741440733302197223770929544113087120323023859803179266499628128936459751971643585800026008947708371125218822225236622533590807802619174985038231459486839043968277870915948563904344921692026587826212107741333134160238232442417449456605132386316729031393792461415672455591066405234862513356259129712982366491122867592507450569508026659516627379575821304906021543520882452244364551169229759194999417387538585117736530851392585775783647828939971199418066013415586573626527755638782419583259881747572594819210804412914617873251134078799383007453903151618314537820377912825693739519957310441415166980112676950200378301411664554031380280653444622683369567618645338278840998291367577827701112794500375001064810579447551883372643799184531215815600180783150404554215989489463886759563376172955709163831492055987649133789143929520251339681822230215138761041403631102930247783851592344048555134719852914564987399136161929222632603451576469213096236252300135760000437288425039001417965725003978127585207820409222670433506167504708438554566145222545755706660910786482902594994758696519314612562072185211150510431032465255787450399061541422346888515198888260439698920502762716349602817906625385119322795777163378920963861012946418719426508680087155279115636367378281905686466677759047808863227904161909703806925658609538132590310819774062425284479556812853133907378803523584916359111518159237105313834177823032217206709837676933574613546585781752493129233237587518997620262622445761772438044295679127986585742032283166466860235083744186963769524346347733338348237144812066768102268747609510873188600811070657278129954909631573716923105278565143876583641797696179487004548213738092985324298578583848216050915279163142833557972382539256371970374116620840329310460534648648404967491185265661762680270862975009719505212834977607656978286312645071451561807885564727269344796407770203085001844041719763741192277474591741108185543861932160224959478438945392202948456088924853138601008429433484375149309073839580287365552229077389612954118046767521458893749417834140910978263537364168844743151332444361102241352053800110558911500002411201722163908357144235423283635482437681463833309148779874679932703647881995905733020997865340813856694874574644335759585088031375251465664825064345362403590604691521910171617124423089025205865909192907838776301446413473970988360652597009736036669541896980691689825067979520186696496971279453057141407481062493980011592523239547720540495649351352717080641003149402202039509997690815217557676049534368509405182342633999039535237816705245818057831684533207052512052505865517222987919085481711867129646335601162420452145848328829424201045926541672199560769242732984122189110362440554777192923510038572583630708614049370068392376158194744555034386724747358122065206479297132391117536012825252720858767494803905395988810599133315828346812087949105301278993875558634772248338212078108840065233928997426674535907268758552792650712759499420090155703441339247468529723683045131462764863305601174067045907777769544853634031526795064862171562105964767558301346324181375054201513130695245654594828160701567044872218164214007242683126606912484288276763337406057094577062893992655983013289905892718327628958653648957135070084184526168894945482074806092842890844374704708316094011495985422979533229921880101142693808530166453278208966896085815009817571086170886428443716854351962095760173627627611108461682479057711887870210723441640911042354936502067277864494767605918519941243676205862944481037157252636661599695930494649376686401079958110966676362213645500287406065930476838857329241127518071405445566910358430229429842425951676773110194204322343951320613753054897756292039247682908961958230149135362059409904039779429646528136060600258256340580281767304711396948766488488575632969849223425904316356340046178182021718083433348078955435632650291348267008660460546612281743761590271122919757220167230679146269585371007569411451673309026050410139496284880937144436067769111569404961102892950114071496376676898693225560694534719532637896931979683203269193655007913450083661059713307562784443184364530774173398539009477769244242601066020778206374396566915606503330874689916100911607763989154270389096933111783256627405236309930267495039512016569740235808857588854661123859693465067269617729695617808570749308760805647526179240244904105374209661398622803183958654250041663584259919891776563232938507519232746113590656214837253259705429014757374263306509094532780847466545097854785591645122824634003724922020342024906610546539091416062552207021693710272238055106140894612215088397386383984555893737896049398831100395847610998304316225273630346274363021405760893537824667213972090355269930547355030311151638098080603856309343880165975941644262410905111416947114411812873342135689710498366630486552461401317290857438079513094470453027684788215803206037875170943102504721324164463741195990037592622755860372418773919834024047946466190060715396995489984899818169395786174040380068497537521610446050950547735212211291326554375762027866092633160453949596537227768002521300143530659705167672873581795182596669589911810404656175430911528717513628279977356639808801887557282205825394311104269062897383818425956767757328169936718735879585816776915057627572250107271223962587424214142572948953406160288212679158869307724058822338190110833630427968826667420411683558127576537061240325934806086094453766674252551384359124898932360044069752142329575488354835372207061509812282358511572682880357546735621601569678806686723343420106010244515935542284975636383782214446442753782807357951411635081919199640719136848506489743246590334095490990228138707479627946006321055044391813495543136588548406601891831075020462976723828821828696375198183169315050994322918170929645030290002707672831990349024630017407672218142351177672491314647518213499128489800284407152736186791203417802895243085001740502732906352683714317229219844433844865741272950016881854024925958025695248250577947116874922388261726153099924899028905410637885086186051593622064674307818585622746581924549738963619310074304549501018830991303733836846735827164582835966570992176700447086325021499212226478420000330493958338541654171182472330053561601343742956281353117907788431448554425912693234874935769603894193524626658472555533449389005267854328762849574731723209329890630128812788490851926211579628793197625100056123386726962361636218427380604437753840452932656402002554824545444945921099208952990260837835218418224458745405677339461826184233060381873012226473508907781140783430305332246358035184057331402546601135321049711620797625218289227224451251333152806660466846939057784840110425887114144683886701057172697891263489096968488820796379529282813720565879105689651779430384580553810221987835535663555454033329431634694672208155408063824748216305713290341305271906928153990507230137714494392287585886854625970408019126097785311044044529118823876397947412485602010228208416074000725957518522537798005566289389505136404560869168188023634740659047642171523979204394736834332707184419436214430685073085751208931142249861611817763698896125041312668801358418410047986068113756314014290739936751956242616412372324032324110221275535133946429664017767067250398641404747468807665238243190111012159133621429552997150135934744394139814585840208094820625597037963766966149705669105016620747443222287364220464217622797246511891438310709456886874349910940065204760483296316424397764778333084165493331443146267264504844892241448126297037037749041916811806545771197383081090070082647339964950160083007794598278174504188090614268631927411244373459921084118237140092799299464046166376237460345208493467571850296682399905631091420449645879193838344954796643439157658238641095943659614740059647401204532541688107980658908223453955512758330372819410732551594464544318259700339571778722460003660531924171230493908652934362995144968474379110029718647781347519190124156008411855108223345600588667115301859008519890091581852884014220083340468938003660982881709388421904288768407901792588856702946367628458033051188597559949115635787384675548723879193387073102770529351842195862194975958063781216219413509097941897463594961635992758162958070726591421673597679453674888820536763918114922860320593109700290189159802129501132667157080240097691489211470325346109479405227121099819348351995498551685125250745466370049274140823366282703632241700709650132996759666534822650210894219195958885502084214250211920549303513882440569303042286944292678218449988338686246770623487503619956242603891700226611883166593139166719430286516837964802784005468201637868158997206040723264772685174684135243650029683392032536080759649181695814370792774832489726048157115406117814862839364520655417194100336023076134630763708424174050383943435618274434523292840358225359797149764732496270473107677250929809177172057638804821928909394308080373726388254013720984773486235722719803482960141067334435969662601017070702278027650870053357989193198290927442784118878755142774205732618650144780537011279003128063516261389349699550721211534028584295532544588083455328905569538009964067484140066951767816505822364751255160942113990966416489608340997327011002525561564670774469789701092167591395455532155287877531220295788330683488340634666633575606784181542956020059019739295405346036365325221493696743005129573174683217647554322593835947664102624649940597845852098030309751324137236119636403979872110089924127399530763454533865187213539420652696038659069582374274118854317709861200544792547788919685064827836743058496768216458689637267073491261573966214462951804579174097312217657987041220803388497487435063738991986945531940207754891887966459722735979031860537262206131308176021249287600653193597649266289432271225240646722817906481629551717959677270304715053556167652549088534787847512253864680952579383407358433453140185427733588584282376521026825754543270082960580142240194832816543106052515255697579893337692752430554921398413787119992843174902535134177029390931009552384297602256104474374233570052627135607043404988252428157864076835489993862587485162450626752024475521017094708362774426582776603800891815482938956060164414100440590854323540011008706159051831322822323024552076650788529845478700709609885667597650343856582120683051839204221226213285916628891591909477415653461380673396896223374133534960313236040114998120329138677866824665594743427034660720053731015300188200403403227297639798120767848076312730723235473480721798369833982913985932500711659012195213562735537402378220641469509428416227890225460176500421041049617271997327629334794645128007256835289246816432189888203457525275196867644580910820096278796466908805830860431364003423696081292354753415932069941277891255365331757333063828346899619590854991950973290621819284904449211160768126101290822061578107139618137169699426898606980487838680873963752922686107113896255017872539184249431750488623270726076911880663170778343366525129834920595093783252429815378867339541298811568468562384593056951515001413452680559301543811019964754195377086014452902018516853197677788027579707374048117263909196682552736297723457386824250423685734053102395130998245890157860901639837387039261504344793990647354932241029862750953603861305212813863371265787938834510417423333765811979843286649070376448659974452196061011059904259151544112425069590375504255521293960273458959248704472167823115493177696576198165559968870344688085234575480036865844722146995275595690054441810763274229249374934411631353505574832587700334421190769867826330638824711154818777507757418570569071548185834464885300941042819962552924039855299523147027743821404384422711416488615839610514416203159116575749009314093614424663322624581799867948227754074678739697771129082146594201246012854077347942797447716889246118312072903942866617457295250466067845248060560278628287009593627238168219535058582737343723439308422947144288238167095901241129423021404354184757014795534879664842966671044819128050685770277976240239555142643161733556062466537493518086681478925685110385127904965428153322948272344561401164825556422612446860095912853920354560548728538536918153410420764770686699121146587731812105244476720576826256786057294250556945715036318539037806018312987651949928940600003650706521039287576497347436600805357660586072128575252940796363465460589716912380372379433373679172994118943695715406371993115263621306078855445503548101047625215592256236818541113083148457002748799734427156910807641818560427337808959744356106440497129211077104742158480999112387262161546840402069388951658272248921366978212434865046204084977632472820629793253309893074743304175338062634164016052459590516117920544739386814812188430399749547749396280835227422621009166565152137352881790654218901373201430013676803004501892603916246738016502141496658216742031534408584012178835867851104749183163948182799156317849544109245525465333480464437844487175834562435752601000080501009429801699865612290606619199958372747253258283523691275107329840727850096575991491442155177253455001299643058731708600952810631798138119488966706556944977665906326475649253314318095814357417090819528281950324491351017222289243301895101378635178458076727019316820307517319341410537524914136099479866158476754060710350787824657224991774192912164128142693969029815120075855719420382144089533978967250345870400867091552703194165477021302123483729301945957975849964370428772423279187451171011827561291181528660772585851022417017216228142906386026117830694425834683734454514489843412652993172670368111121651676043646659831351112391925671081332598019840824468757813154358163462980831909264567773724393977975852688001663523020559057254792220741135195598192293591340018092000745453546173705322511283583091939467779820777995239271963605481368892287551737893447402916489869537483517398427776283749102118591277227436060655206765167202889794597158842830637636128120352707365036892031985704210288290700965256721212979200495922574246056250401654122657382093356179813148583888899145120393899157168900146309073355848948837897806153158224654549311594736770465099012853396228709113430993063976931252963345555000277007667998820446272727594771306297084034231345581726920379555075787465061783030347783505938636056613229578591149100864045903413070465706176752714658389770244745333463465059829207079342542434429962462123489231761042500109834006383620910141511538174091009042284327627081846102307313331671944173972223820569090299166758868124675550815682081106450477060308866445861941530724163043492502732586636259012147663834393052698580870577731270987573381093523990711543737697001661925446351697965017552285066250239539421165048678892055924378169104093148007048591702495850594474164298348465529946140401167112401060635241137375821625071604415841481688889850662755761885905539413044056018247836288393149113601400582026581120148215587080614922392079160726662275745170078108767174493890474440330500584273286628386164539601874313690120131236370954628547564512647657986135098374046484355851466033618873157017127238021752097986261155989391230495971140661518899624322345561174178615842030306322743367288858629075307634467172339217325723343822062362162859956772066305770501686542203922671096663214162284570782917095503941343570401108104143433549232682211759286816772523593462311215587843683799568198701151883197839978862935455698945947713468608691119607122668236956442091953136278987613550033818888546778872977050458960023615630019980544296705069899588783270015732753332646439080728617863794806572018988649359194957000685722181198778945682045722541410909566143508661924675541297577383974528138783140599095456754506217739469581318139113871880602356427134757948311909555924543998060096161398186853727060369074201081664768705413887485286174957487845677500627225846094147089364851406108639411520560797173004891843298971635904145238187776101134695080828354010113564041581209872493396139666141293040704195003393292553196837422491220986310465479491909521606637944815415047134343623393468819912620626307391895345561942470502066887809604747701763481917526456415609741894395475818433454189351240376047403255705080321881150418112429582140966735916639437600371632053760546857337009545970220354203684357096941517376327552089114343137964767110934128121107912904642567382801023100435098498881304602932490424786788138977380493407887367394935193379572239504659574140289711872563123152591038815358339933362598698354319406659872460316642435438237657732370669465492541952359662555641699861556965326454110321018606233552231815722353173000687893153409087472719452291678331684678516285692162299132537502365066019178356829584530491214716003460328127364793560595458258640880330961261785244201931163246458458295749620485105578990245127514947956956440170616812852330155725336044753895577138226898686445866668791732529756000113003670151934425842711889365582624536870633029494309282572031299874026794838587725854779973230389662862558613364867660790578814912011602432833188923626782745603648183704942450430359439711202351226333216977242271909629545726975019369840069034275465638194004093188184498137783903265919490530097135204078489569475622209234586409064479767098712369806469323423194949597470156051166703057744677993122730298446903894162870225721919108543848885845238674255811333699110663680084771105120161747852917794468477100329832053277503587599356607983467399816253549949701352588336276139204743737486078817976160512457712365417262748994215196486542618881376607844845098171377301395762370819909265187013964346991360984657258507550246626530321335679856499896663389682096451406737459911087767659372974094954290752069285661663662146366424853851958155495586460585268687566752049014023528954129874014655536916451357182137338326807508766784570509030364383204569165384407014514529560405023810861903565947878778332402641525349231848544333566412460046745072001933398334558680457020363076726142814899355144387594320327536009514121621641156401691044330752234676544448396137966788535580832576248859405375356370278154986844854039878102347961524899723827919792194987293786988375518556824761459071545105682020086282538663864294194139042094196006960588946917976616924124255241348969808380171555034221530198128910864751368327000229520186299117564867158981321805769222921096012280835453203179790344509705422917223765404758129338427543011615625128702898328383877735235749940796831590062990482634151084891479257957290427212536237926859092290301318089149699306363752848512412319296169794780421431543072131988687974150317437472740594903740387085907210458146594516622440089117873033067479896914227333504806797687242790999615709359084312607031749191019795478682967975326520376433309331774262809814116026503891930678763313918235199827974258739849806012020519195184339602139256230098690679920727641044817148488276455275043286462810986114980835272820844998191189146423897382263403170831438153026154327295955431840265284932774438609428932169523833814810628812548948010474178521187415985480493128222148324061123153289846994297309303253870096504709256786968018828626743486611375959954217445025046571604396631709299897366507084514358627741604030723146846943940757265938953014446096896708622482355813105935305397471100411600393492778907828206774239023519682192035616949358020636120619716719766284609944973914787337793078991902527138695288668535779031533065481503156923780025675977569198194642998337700355772037789812665574552112486428178668240477086413316235395824139769482912347211302587368692951084483172467952384824623151311620122843811814694648519749158940014666360040911634752636261977036622319350080129955069432328292672617531508409850698961790565895978267776144249262534205991039070362837070755187529852982786796910311401997388403896057360236300225000708630797577918772500116308160556188251034275298392553259166982079634267627418376846531694381229518235179887889519576392686780289862623432684911683227056548178728359891338182046439616856422205909252979219250042434074470043987339811150746050896409770570934553575604210120649508219964488145227686367029986121317056302472376035763586393870481553186648523809810204894503182472710344743192364392306849530071110416008783167334400757536928948958147393158242563373054095968739635377485713067760487506552996018514606022646412309982505225441189872101753607648068725969325201491709443108195651700814423802591338395320589491205680215604067604591941609816288870092053637182852844802593607965402515463711856895561429776718312099659014629378075466693542800584318770339033360612013459880237018676814093511085185680762508532875393675110753837383630961532418802120231857648763735207776920557563630484605412170352005649155851632954633431650481723202957783828688792598028742094161867733641092190234953794868640977682972778678801896558623715772240048308826629135106425896352687907598228306326146597987780497301391355042861652831414107789476280677065750127500580323580953894230637227170091346035348174966880377346409328039840518818169285700870996775815605132564634571784543343292425768731632646342567665798012069438860403340677696560560269085115715092294520588282566198468172591129489115919480565554866821532395136125387784237022317173915859403005629020572909105420288128959792905168773725270371521734413172349918311405544336157271734931565798152735358458151243333198905177966071298631188685622786777574101572111753715158766464260683178473041311175923103019042138935869729198836178280667626914968081603366307386179773648742700013398980017929709310496790785659117997448054513373808316319687500745241984962270405500509754319307257395054441368573855440305647722825092730962187393826967980237629974664379262132421482356341033295979702292017710124181924374878503512905939578795100353457605594952130364338310186312557209619915223309049870162774755434743924212964340879371457737146127546193850386134127626297378882706040312397959758913795580870294344809081263509936374604040538095691198284218405518203494142271322737277077681332809216968017793541186026098018986095498599115725771134048021741366473899296648767886179363437712255823811127504633798398042642140477910953349248499079426191821670773947002437383907333259291292796549029292202509172015967624784835773728129450979770453588873815963186818501735621357501667007682863661550474349956327400361340664998012933851713673337795635154041798378914047784535929508693471864928828158757887585369875117904668249437003895882847281889933897959733648824469311445724263610772133340570667025118261830436160533489439525218438597067074979910976871775421092843486586808447960942949005503271915209110242180921757566868933756369370872048961998443055562281067875428515769866483753564372906312251267419170424231177969403898207402576398756228942462950988395965423517592202811289178408515114246007191837238766498118628514226727286671848561149424954737529392619462636515916507983831084191859113611155627051000124364776720682834136280775365966410243195799100466842245221733551349690840986379428739360611121469980974464073215194503421576056078384121067664037012460132952434817415256146852309226057675332315692897311428123524762755066313725300667128582320647917871461217701730764929774525379391059887509474026045547194523244782548285006240233690193326126518692799524440773217657949311906006062356237766462546211237924299439475975533889444402222816248364887082645955096635911581558788785631829638695584603594645875877811435046310084905536935332479332984226565765657116652574538009929650755713327253165180258520475227062589404841026958806721915664313408501285951207781460180574271683509262524796181747562291578732097131669383942456332713526379848539397683242017437351947644927312129110041270677312580936349830780227811648833074132304518908371139736981585764083851726913480098365677784068351651128706900041565516924354604358943364568085896097863702636667413858809835557017237438694350802151901416104077317854861129938972502956465705757716718257388507899297443676477758815560657913979180133609555021726341798846724433463732964506941048085774645062628420395684994680770494024938823050567828603444794329065331725510658149916724431340443410137415821153883480830571976804602648414613027457597573479698861474460235121353524748990077657777882226067459832405082267997438377576971931315980215372504194408536654077301353954374790049594229360259680727462681916056794047659044207734627366300078802151943438796291147748971282714408026813427009965472283726185368381266433257474443961822266557461454426263643797045077669022106217924210582972927603876735100304333884432115810720743257794529209889255565438065469630774938779959093924265835434775848250664306030041137244700278606933376905812196355221286998436543955007652082306137027842870385499213870894415448011913650284419445104485225790674488981567330041726937670235630233291363821553053535094129277514941725215413556387843621281485496442441566204779694471961935367898015947494733736058707680223044493256639243134998849071447163961077388751868588980737355851736854844822468602200180770620400196055795936333516566631672014444634122416423390091723034121576089608508170804065666228635510641063438681600230978820033747929429251677304967113165644153919203508462691739833671184661318951262313183836607792646453787100189257930320734073525713668988390388335578742840884873037300399254508187960825038350302784171919615316993637961478407730283286139372242834378732072906070234755735984793668391716440140078925637310509249378347980183368955959979258930189917094977383764689206979886307575222838900119253499767007208313221108844517009610858541775454868352868783459420760333446392778027578082451136058333796399404518990008517075023860904931684864248676880606446816454527267435307510676464101130046711309696293257208493962069622695727681105092466332045360544316520141886692681149349661834916651861381741567025424192149288459588657466550377097863591462797256616617604995620779217976019971847918043606227062930341536458832586954011905522031342413988615967601922805321262347538970332932767038711133454810246368424852217680161774530881609585304707538584982256079485742751799361417546408431704658927899021574559375351017268446680074068915567149638264577238854817910773479584767763365250893123830954919907925580828489047702231277667610753987670136307852188773340453985611329111428837749266783372591508724176168866171025217884638056574588379757563100227141050432770704438464433170447647754382458407630067077119186000654997692498034761437953798202856832442851358013760427777940987848853482169028370749355336895196613026639935857972809746294166351019937950339973055997106396176602328501630980612909641096667641732903311894327979261979577358387225848482527460155826176659579902804725033814369502860479646946000406303530505474207304755774666489522231627561628081136734780973072975323602140493633991511243942273140608497814100729238861630687563400141723893647656996295523840458474719385573535232737850250499611868652080135094474210851501098388596193293141211797432584094368322781282228170120250926673650732512940687658299227661062482769126642239519871129327058356638433415641504341892903199655588428850502824478655622284616053605051773640111549381547313049250145928796736996335466496459864577345764246349887947055105534642309496584058451471630974066826821282539987861645913591592284340089907843509279261214815981090456057935990106221565630405478054292088248259118848312989837616432170149857872908289888362121116589244298702373750935118058126878945895168381270230287572392681056963343000507520591549608373266855260681526445335512044404541964350690506482193897118929147042264039053814833512844493416685991805804873792281535776024878151744986388675561985966121143449886763006701322503682228490439888671481130723096289402420847771467300318679063753545466513364606189284677399933831410706374083072131569067580938840459290001551573701956877994164816478720601414259016039652011663027070936042250930910888918809101450251153298260143487172253166400679444242611226888320492694416588780632819219348597807069504599463718362141477083779730966548235634156201706907134480242953735522507789533274105255689240463908769521246944835993577303332701224574122904173817141009744301633935435132560827349123361021897345093076088676038684368994765758823998236749875439849077692734280345607636329171767705631892560420755537549719357180935095931560746933934364983848871315362745985123060447861401204105743553881925865521446974165084069401477081425811159904628982023698883625851987762258022866545896678835751507715911549529322900413800499771123807435817314322499286722143323157825161930948632836631564978925433059354816886267215549269428687898828671287299743818893732274624031685137059820143057696675131236182694278893124804989045419269190835134438965817972886749218532363291056656304843908738262447151987901562263688711259833059695492217242479157846718019993354574116122508201970563789317197328255467685872683134779364680692246681778962357859051289038959293480182573799335350140523432039261271374116793700550197594997826589719747996689034192425269471643414502544787965994066131424416734855140295996733839030232838896721983866075607896813841229131469856472144323541720899474047167680931624342014806353424448559377172246878017783514693057360384952808579659281572225175741363788753142302833969805557177347957257653879326355279312678841994215469343434231354867134717725879053443631906743979381064452381251316879960238499009854585859091143600930469885924794384876983029616690059342908760934848211162754869542390626733911524419984152201070327777363029683113998914535083627045161629929715814782312344686811667902817359039347605005199264624696035763242911899899268248695502041330575349655689342904067949990794558151190858172308025779290966355757426648610071251008291461831346047630824294954297942206954280796788956686429381040459351410238597584692446612584478764220369050651705743912695797410380438290007245881687147262389634201631452301727120317558742274813497314270407290043927076785191474660309300305639940363155653671307741048127560718589495186681326143349371407606494221612293749162708172519811103763559756995560131869595171232975636336352255566643043962015906954074792284487194892434642125591299467799202191443094458051480674478096796831196906729581244370553851504425756732824571697022105296855087101817874956169502478867824708909607315804444143741526360288887186473503606884502091788344487486875848374157838067969068552873669111240356028487285758167307904846156630754174048828661833205251117297759239412166260042852563190861104052273554286068964423969439150705251228575543114266146501784081787486512526693451188916986185917939130940307551400836234907890473100886069517341093697393492488367682646347878345948706841287016042835135232155122918936123752996737122531860069907804519953926086443643519512846599672104648294823070000636559264376813930490606758892804432975324713285662446942080635363264949990461503900982400271852444708065961142075950212862313031838789199904297954625216338800161223352764078089308469137523259982330352901681982022717805071173696465069381415315606694103951285595363874097481713701246626583340707777259386172647840860543103227617213290886806513480538137098224956900912899413308911485730819543371363706025227600657116997817100970658610755620429031312456542213851186193283944589557705096715338203655940951187859421930806237897120075782895595275029481244987952292918930862918532630134887178498543437408548109967344475236874753170845212960164235459911642080043235174509137429585019954730610837967217824518706111636885722331240880319707977876638920656693659972969670364576511870568381593066859035690169488853627631502751925674564485768312076472966828071578209806597873039192307859556071296881321967186083935203642144333922589965484049235538520549444272456848618655954194816433409377097464849455462989152689598492991418602509341126590661897969086102475500989871866728452236631561478732911126892976230629209166292954655866597592950644817906124318494156812788555975310471093346644713735862319707158043685138730710057705668496854249814213790295174015823280081615663433691917327173889797842303565826177305873517728658235138441812193135616692964243370792126204453865691432391523152325208713214352905993993820444329593094623492367545076199913199631159401948908219744394123263231123637925446451657036156666783941960811407168227642163895983407562953116644867943311304417566238196508597883195440571090365278174523014483797686306292041201580098194363487955610012669471620465097894335198488879765606971961749222167707261151467753511076391902834176271756073343622991187413916332377142444151931155879581988269158912208261201133147426192686352634141668055654292353595266085820346870322192978712045331130119913376841089216093793466821097396739599173064899643552973716819408096514810224384457437979561072845059187528528659621700633210789013175249514245051147532464494003121168139443305465909064265614427037563950962781069474920520995386955877106880326006012245337242702812695353760892565141113257585218999188812324618107789407198906824904557637608989929149191474073915349498024384631737462389123620952713190759659226843071766598051538466064842046969266176318486266340762734463349382364942437536969615670538953993742317846257457896110708502812920208365308001627923549741444384412824435593406327459198744738912555291378826402757340444532608285909084720442479097095779385315398746520579147392826544622522029384187462587044110977266832247744363437723548328785390525075655276425370862882184092290253181207524297299915674302467353664836575495798812328950652999555425721475170650566165299123687664932242127684314390016064430599639550918592717061174741279265041656534737718655097755662782558285373743606113527938933411076055410507324119369877592284030011382185925701734435420800117035556964062271502485764956894684036657101539342593823446450099644347800771324759631171100934984119435498578047286113182539129734425481120364542716996494547289677009934370916168051461457991870567414742609666251897891770808354950093587681488939721530452651799381811069127694844656779801909387689331364659194713387536999847928430451921235709888402056275081534819709127443471143898317808325112185185649496407613111224291081915829143866052754100235962716254079530432160010784594038092715527490313369702156113933143680447253070221720080493761075894132730460151049668638198087671474155926420415481249374871305751426005043585173621746380729700771817047013471836586525068127994504410883236199512109309336231605977697194909826100179380614850711059159408062397918822403278949811037634684396287240568296795878861262690439775962849592522748847838289076279891179814142778967598363295266822459635635346749681732723777309503787000584117834555179223892764906200881919747737537449043318795912377483265161303393783623246305120565427911061541677681696922771604974562178404322427588150179359156835884924287745665628958712058448320053697104087113643479545186348671899483091376330040864194681923867714268998824521329867446809100451811852119745863187651583161173503011618762517871272048927131382619084248576943514412643985829858620709070856701651034965185364102572032461701580469778359755519730920514951008668369671304297397161288646840319443129275766539862729111502712321928286927194481635955543959448018432607215750414601869556789650804852314288037803714589877849882779086440970988068347734109408835866731184205105585585297440370272052526969469154944804566308535516089175991935069859682390940010279137908961209100359771345250176984176257700375880242652146883521764307910415658193609777533411985558856080960983573555612233534310360958406103778287734015339161738924146601605152272649820694343003893261171951570327809156557804759510991355905538364836037339288911553964877035278915807398158143338293384645728535062329254496779257586299387616847652004455340354931769950461152824599527798960835908614164725693627026284978134242585235747520487861228440701182923133569822981153328653326458812978685975259456375541282069487359488103321780916953333644514242334336480317765568154427056256129846863228555467496692400542123100677336041208766552756749934928545148602975041835759803662913935590297277362186920447924601753084459511085658361391581847131047475021550597863876380191197564593081457483842954964413776018170612540931100537277301398524422255645276734701221280424843403100538648352505604285319767658976546935378117936525146732396033820842724853466863719370754353290293946420102800552990255768672863648894259547480088962977913381803785303116708553441769225998304950489662546950056571520716443719378393827400675236323914310505311796237403746441922604606864743820104262845994225257035978676390850640019228960235140884781848545741946765692750261437639032816837052253502385977879228563223074539463573727827557189519846759058315191035950807957939780034529871888858973536587462127558012107776405203226808031684116552093534452171637311064717656447499736201836719991202459690058690290142602901395733544371848245697049922871216510984418981593288749611184080868640447801700606287053697434868509597220385657838658614378540068368355281421083220688506172239838321165253823339433482742526735182990349791517813766399530080616854934350557749982996136055790580244856943870211960952974107547348411012770618066129428613677376550858643131073508593445424177895359061079126620805930380674578812531503918291360327640770619300820371160389124028794342199721870012850699593694261139755708121615138749288860366250890098700601470062398040224811965168991603447293855378756164557807157066565215898190786646361059293379047994902136234071091479493075034469552514710170988969640353263354229519244056383960905571866598528477660509230298321083516435979130254484693016689873502316866480032337425492918190975401939559557708118941886185007849056759630348540532152022663664238862552525558678257017501665160157699296923582221826990156861382622496171100326484713778929714450058739662392017659177055225409241454639750176825187489138690478643104055569211152679455954741338682372093358272582870235283654527391808634923188380789026392632146424058124022391545728409661837042518024564202538531124174469358447835316744801247097324020255360937285481910237950830323257588377478235269614716578497914152778858714968202444554609933514498052828425421228203992093704045294062552589965459771370558223945710978117203657469847412591695936079255571889975798054138011394241585622951747755830614722176054792342846536419825286232660790255430847107817852595767567353116734470966258477364344856186609791249310178318599195981951014536599355071802864184142254989080819581111817004034540725289513426832994899361586794425892073530159895903927647821009115704437366744454982643290850975335529680772008026470934761488856406476341081636026586066284800739634247026543021033172392308421586687656167663724042108675496354791747417793595703394853967798229103718881226070756470055047058913494850527079978732340868844700842121357234769297082360514108326412105689641725185772180984556317749449662017667250011558598098093753475134981538403263226028699657176464651372038246285680961920966171883595443991017540326913257597764888036744018636247257436332049699150108982807282868323002129356335876588386072049121224747768822029771605705253136121809595440088943043908442502221227570520227897898453034223793445168982200581446891223891267968499292562284431327193448765063951936067318393887151092669340277613103214529442684419990689366813023494482937657971421161869689236225469879574545147445755291504131962422712603596827473321733827963858825765918526814127428533712916762563964651336736358027680474740547024091115480668662394530189085724429437494710211216421678367490493194800271931627337280544528530100854861658350395829587632302873421435141142725459318685736860050758204706357072591910886545256182347764242183142274672271771634960960617554508740689457440219219267838183716014959767615173019112179299586972879133836991041459742562534917610180219956950038994609280869176395087023763642756882383357993681645787869699355057311660481795269318954250331776825171719236095980973877096572482217103643364902530743138016084512035747486940733748193523466347983946338919251494420653554680524218140797226312132970806018856574832036124333435334497040862364462812531290623303639736566459189488066555589657677094433498255082721036073256988385084910394310301936233268824692610819481885455615782774809314926910402092560552370383912497782990008257056463967824440302783947330879700713421697378265591945467909656422786510580685451855821819439553381388182975562243784751697034948759807855304510050950956305018513596094333242077807432959045766079823981366942750396322957546087932487125414291033545633589113243566087326004420930091168125041593209266432235523864285887883430915629016384789513557071708787436491465252841542690538887089284995324790147937008430884295984942567772341250154744306757729635431861273121468796673735296302669768241074826700426504556393183915425492321442562140237023702084390261431320706081533639165282118468158278510678003423243262537773957761012359400303228183677890526139246696954204405953385401226919686209955838036342214182391474686717961234056623715698872624030228484858365398223757973625488428547157161517416272361430195088460473695085632107887490556606804510840366108391945182770562834125297891378495850109628639777194344536786069998303028132078579426518776654847131415760710374725250256086368578819764883090739786876007545141753755301876786496492411290264625702087540994676722924974206399444431472880167547334831322814612916802576757832533768268320215518148824557133051404580699443332042601344743488336641046850632337654233638255825043751740311246115065816901951560333478323420733960924302818953933698007031771379688130396854965035669846818102067865240580563137407917138543241985612167541618027886575277394978654778360878716935170039969313732545192809866611657148676599657824947511376197186947089551239041651829506440213571794169371550466429828115769854054187465439053204283527514919405539617651984874107982980767138402306959307907980153122560572977822342803952867405313237881575307681779368415012163420200150891142507639052837847646237100988087718544801487242888560830802133826386502183687032391331907011256840378949640627782289073779892979385986986623645561237318438500023379733943195173825722804429675227571349168659133240226943484772197585639786961250098199207185087444783783493559790243150985141845646986738383858951023200453747317122385372098124770437802099002075942661403418993549858866720624895034292419212966859166853545367683703102332472056032445644697909701131642759003644728870666596425440436532299853053473054733410059381521641314025560148232598363928372539369863322085499377167084477030245538323924569773974392315998635157237520839833216675165701260444824850249649228352472907160656412897548260218436295856093463589467089420779100727300856944532147960458888742864130131344963576041925952995052365505169747022312183125440201960034613692451769161808751651972813734554485931380559572378869272888774450494712547938367033262236065149444170248544332498855706915567791860655331412235496901228682522103857341373550657667463391049335600568524974974687895991391211427738913846663419873825458639610657891335101062747812611594045675130414046203367254675247867234132704479396988263839678147446600438747439271860832055475520078295034904373643650411332948015971370187125224755456225149244057280799254115261373993244975522251124443450055074706147529055200466217753475933459256907988757879287875917469190377244256439254997201719411923710575894021773599444055483557243713769000340550264464451262483996142889662231002576647762349109050768124245225529801502283681095900998851277795047641167594357260434515926264236601907308832263533452683118491091284665542597106518255734666762972383520719381531853401216007678311450392375329369455854520307030779444624231285400198783769186165341212497294325568596147883514484686202958496630001492522849754132444286216900953079562654509781897362116867920731883047394070450511519978718411306757878507365675657934718865815167245333326798025976367326432261709212818877973940224059449256770305506589792790304036962886510609116815695491906654510897995129604236101737437276440571139986365999879811680168047778283567530426155486516344118264250114183900472792779295765104326446649111518376438430075813643539422565419770786406278368150170977956684523443896172302778373214204241672566603809502636435423233291798241793437302969711331851241286250636601622717700896769481253729652495608908232001224344867086523630303378707286060799124899230874875279703421652697528026673533303304544905993968183366902403373761935004747940707823975537118075938242445126457132499490779271632653026485496216538424193638677436283678517149712486809286693352950908396093362122072139849138699471515849231612792848560559649920605817165018153302607083516324260956598583609125147925286260538248688070441284427896700419386370568192524170942670726552578371370758682564467409713860726103310596421939813142911225824888598115156302690983518338573845084284515969004218459902110785423294056851960573230583540493107532422107483391410228609131871928807408960465849571375533858395704829808941909425754374400701722824592580698669616418205472546152610247682513550754232397672942368553672099291458226709698107766367798876430711499109721076985614141722225681527119179581793434752384633964727051843947860019643889674870746351020837485277611050467481062788637875772451859727892790485083906085427572122809899138522862869300685984699267359604320624775903308433113630632720670897732283001162562374989398509013015626713685410657128257825548922190552298699044143988758670098569666453667456493535487477325494792972207837993452446970719632670224425147802592131794991528358547963323512678389348561600996263727655279875175018492793697460816930384321152748880312168979464378973498441816043240880642859401684580575758562110351901423060634795639519463018649404710099122822429290049208188573828714341541897337877662454055984631277376591002205196110422189543798436249413177495295001615428332305899375805445730379250980233796589274245063425582011659926302935348252565331844055186725352017188881893972761955145684269025034462981686059743085753954760643344605634037871600765798387170948124242324164706130020514923617364546293936531250679371120898817628367312279917201686657400903641615432112372332137604851084587108755773947784715339041971105934967771689867496984627952455132915923875039501057778104540454138739496696929414081381084317886419035550953786485049082296904799942271494740576363759457449248734917814996871190012342332871723369009426774015968266423271689653748772669633442772356842181994898131734333490686978127981396986240784493624039449343947847505626522957986367758117078985059512865658105490907484724111041262518044671104580704798572347489400154261229835484850835444838430009398617085965221792216220442434348664097121620112253208862498791610590438859851056707850764060393530798810451984876058751986230738722255698008689466143337025899563786281055957103018329963430341655191009467513185965347577720979049630116629195511077788277832086584577624305183206668765211213037271347810746577393922866922002391974215724897162858893571215179840430780130844161683618158927179118487829690828200393873265058722465033636197152384873195221640693091075808469029757544444964483994562079098839006455759992856330448198033016867921961459123492284338501881395104195936457063460166332373566551310044238344171676144362357489675414310775917839624133541145170461725054762469754808182298278817092664652310417186454745905215536940711807289977801695853621565286098510936636453354888096221555573868041944364765111408156606933836546435004791137797703997196725425128933283423140147251729398600826360790646638036439623792788585944682408378970773291591601608382372769835684229993629762211061647959530386132553174539051904210329205290620579801754994193563451830946074745726961175140896208185299530082881398117242300032782581093548473925966320710108029968779460143497387711717612287388011861843745453975404953027072353937982633464830761908999573391484417740207129746007167001643060285722474902778583876041099148855377386509441523173274187302864422729582650941614548489566858021255881984545017395214631536473487752345621840630827712848629580616596850816302364741873452113097261794231820061238390465335123396361401284387280391147573222923266644642005822070947154474433367282715864792708339907592974533334312359957976698268556300661625740576619391251128373356882422648587015427019387929095706730571902487676028823205724551208821836695710750525334578612893674545282356316177519509910201356225298358736814948572189675521217947894032073760056729565264130038771055258455144675701447259444981767087920160606656199746609313701610389757223844839089546234950464379132294212189988443068031949345486084770689760329112119660274664305569724181236048304828803261575007367402020015781211848135754010339850394233096854473994599271949058335739497945052503676410297346757192973689229758275977971504765815151320635455464786838920335694948472191891064545379864123845225419869586746149817446999979400470042036894358393879953970638917376197164515695019870553949750500723726459273986481442371512279587625920830951094281481147581641948169690665024670593302605237109167708210152441762672051178202522077668005178665630943432511771763208569727672030238548693281357602460554613081056008098580982979911581398603008527599496412172047990779386835829437564743719277282442260901919041549686290584051266331422778250258119798035872335191428029507362353138273405468020888564317890668763900680274634649764501263599315970948970702141478350393537049996882084220132827329352595340779245361811085839639186541681191784190290263962080407406750823199139710651448407388328183803045141382704391680669881782933703412412202839367486531075945616984729223276245439200978941061779187505878095001988166836781574088234585133066208855298804995337565763339890588827722927732188408984797187331415891939520544482586893148154749202290143232703828167575592778443613593606595636830638476735545445701138295377697920772697491416619277620912556825189809887347960914896379532029080743577004186465038112323083080628235712765124239290071340492295319752163979895635557733535460378656540158572996207837599551749375572080770800448721146764565445037968620320982152125526108896970814108011365837952066950900310026844317547941949519950900944793473574310399616969038877540181273346572131584416982323970499513726801367547839107404356587292910712496736398442013842952801306419926547730711240835439629893692870526816979026387222601024115264932694095364471491237607394173997165565729808921694662473150323911734473335392718114002159308555349293457406289845029081885165322871288664525956502693653912568750356931863340224271766341644101461854183761087950565161115974574494301909241403916125906882023070194802621844202134230045955347307158413511069436516524157766137414098289775496688459832550472632002502827889198643122521989994891024445222662414461827741259948863484317440381720767244900630970871711389004626918708733351233477745714018007744825442034130547642376677079223815159463114375252573741754515141771255439278931401919964039091353754459401751700258819928507693568811873646136835227882091420006977530197888770751663188424816641604646059507518778969674234500476092636051670046507883284430990577083892978509047619721137083172227005587779230945391863330060666492546236458123611921555320490206270834993578964147751939631710735718333177802180466646472452049573342951483936968156658693788831033024434859667111583994056683732209955676355132697833824143104317309388973330005856193446418324240965591392269936953399068022945928217953903159760581589483794395065094756193547615223027432090648848890317226024894760906639844739657825909549255437343507507247430376112729142663434254394908570904926963029918864205599836076141832573115926281284356421829540270561313820861570331151722592298796040332730465262278352542311906045633701355063105055640301174861988626821066814206674638379720213205278483619330802265463275082632458792666935282331163557692622082728333348593284562435358383706008002414227005192533039907690702562146160766482045595514837327415545048291034746838976996759522006765932128584199711087043717223837455469592939617340620346791970713126684508587290355473537929143960468004397203247833892214072554975178105149004679980560496738276229823170701568184435702311265910723823731690595590470747570238775005899679171773991733465634055242554653531612504512227836646094829472154935203894636011000019904897328048905108233139596706726469814606550638970154839862885718850604571316395464003771758842420176877354753149368634755137419123924454910472046510592053537699376885584973389801881574883849055597053907227177503349402027998534274652548686315757790332413773093011619292959264331186960303961924369757486164705939462543977634082065035201534209004873322022290104837623294188544784348206672526387034292863419218911245251681429214961505392938372715504683752695620949292206095713582036902487403184375932853750818495001335584028477431678227636704666033160362221176361348706526009276757324799732299762542273296172875619516528671196939332549288554788221851101612168472031249170736145428185134128178397051232565099760568800861491308645624230680759297322379113564693075976434968164471374703121621548079097058303332384119033352096268930149890089045899850637475046536551424783642840798006593742994637055620411068373329244545692151324549609350720666692245192766854156565236790015082123049906184466810578715764781280087621405890088875212101868565448846703938046582240933897177228197823183746597792185567178871466549052253291869031813805768021656719607567211871666163707100432529974778148059266973133390400870768294981557536916473065694532897873312843964865866838973356949514286461905072372020735544625495727362640922663224449859639210403692890247635610905998156309058140831784610441966071484852415566950775221706859283518525681278427297853810239991445488513900424893408202577689253454998893532786642963241229549716504319859271821622777125015782065060503492288084538152397893710133273922208333396797736814621885912240493647698833423753443168667331637633146950117440421850669421128270150572259498447369830108993821873163814082548072804398550517289880516634606013043426377851106108495897988641229413031785639385710869971813308943778703455900762397768824978450213921920503343796679516725931623395833687533559648634625607622706118586875436213095381165550453762326925245958100499409690618542801749566165909677892425049302938745285644163170372523048040256769013214002028551138800677984252397974827410908944774339598462941461340036093079120670516010123597286226059166566096583035024851542694294118090600567211897472158860590351266096926211836492906890013337060372712082753036994613752198462053985004871830449246108896549015616029249894827889012386420268874666172348703220119692445882800475149239541299665300123113071681352818961935291675991649507610079844106196133956276099641902654921190701141196514160647259255527006176538171545744867598396924278249357034620956998436799645283630499100211660328806334212218219245346670052372939228872929239077251146634755067784427407286189312811191188525129894083229946945823469597515354263435102329312416194443416503789164445927466105701087475152216251557856652321387287692355244214842424177408262597417308574922876451409909163951942793452962913925182288727201903003541570366527093718519621290715582393306135930326591719342106796036612117000982138250453727839559266158471408573580995197902565919396700919089450106324965541788906494428436839860891234471412694001661946693940858635215611423658152966350057559750259634867367574074900198375762622572623475019374594328342846483203712139144029192642529808531870025640188780377390846741333122600368132192554328773104943634933779328890590438342698955554710975681989299022469457721052872748770304899519212379192538831255433832075728270686244225774544754912876769064884756552628372551662908156781600508042084417612044076585266319563876521787425410452787061202995507187883430726132057461160340831575159754568215471828519245168579415024314036435878996617547826156456043578827087790206990422171756855798341919576710083286113389484549828807870453179486910981180995511402025969357261472581800194984663507079747252443688593219403764168810602207422217107458275325822513815900921145994651416773042938990889126921322509897150597654302083722806927075432080671733426486854568218643279620011183395545203028183607572079069125604657470076772651391009018790893542036567023415839766789733343108846155913314823071916064460514589444804758375336657767472692551228565865307726075293829603933626914802675344967870131126923122076713989382305951359083164400754675475168507102087560801266575921197706568916344997272713756735054549421910023337784040034028831242307925552559558315813095495088430685455341488756805921497105099891725966229463003897321184262492492588302482308908663392725090320790810080388362548485776649202987862509823838178759623862840162377726916154722655595675591078743722231130571003074370652095317270701935111822499613753860793639750337029514097055890143020224295332204708013326425429505030566653328945235393970076673310831192155899538663965274861540300755485742450544243930556224412879571792078044892785392441521683860614064643863963061661218559492129040298915821837204018476419753953307601675940460297349836212229555222269774874381045120498296674594551356514572937814167527781785369716130980022200282533782154961343462055865833172155477589022290620208334391063829155477082049479495303853184489162691630705676451263935751108071342812441860759961320763861041111814524200510357497026627046603740260708541785109971564629282592376602901090101606634127179685035880100019768141386682881213958479242702479891235206043357277422478160964913554675029907938273586754483288754668865529573113194426282767129466090557150611998152758671213706079532903421148238953019137432205769566685176397116041971906747075645192318577776083553700730359648734056739903943298618122112828692302211340075589310751104317937083028516419995104582918941215002542865096855554151099343017718530380354231086531182826106349104410435093929230677768449985857348188313518881475602849573355467527038634984813019685788076665548503996757153731092884496771692458178798885755503718274433251320328915887914342787756690948772245080137913368657011764705334009955056559583091905419820294760760294569917967727854565376518415267309490717974522234324937476617212596138077664373865363828486762683537687201852009853191348165430036327743559541639169585989911119445223288489304822849553514566160794341115837842367073826497276162226729812302409932689643505258646400292296462016477361210052586969704019042775752887592743551382925621691195775652057512078797585247712023484386451147416926582975878256940406416964051569245810312122482041513612455852098997724347620194482862904038243104120036874473616917254524102023855944101602898433370179513246671391858662259131564770757535847098604760808576038611827212076214409511309513211525793796542423921196629167888823874714235963030703967148311660483438727214950282347059366280342727996534420708093016037948596272309462066782104932183169793521102622393353680084747281546797046894072470935680612105745950965070142538163783318611773572296076658276404815001800332119392886351257587610634673255203242149268073741776076452899377444567099017289093473252464645694985217247848537530672397737939734514681103652676623015684526960491444736720180236397269989090471739605434928106311901371112822704648136242133936279726694628688494551419877711847338694371429572986655904417497499336418045958914190164190898976723544489534535339791182176797349882937523733202331354377104062652695016338176648555341028961232967275682571183549213214978150171161765622804169969396449891173092085243399224630850364472966408233820910225160760633154327189024783199535390885631102744019595839035618899018279582889669150442298549074716990720575578422588446780029848366025803788795038546786653979161504143517288284999955983650702257485301796354851606979072728018286806357797338467727968645798492159828572291678142858327128843618499610707074636083826711154209942729499390021569786861817646733058910974524182790765153199629845403657081376568906715117854033046785845575422400299720018579307602607998184469524786290597939903128520977369504112827384142526027097804082642405376732089549360968949097563980354068090547582229879936041439649770236231134451986786008157273679149338055931491328461944004115636961411413808664469871630796558169314024680075451831228459058450586569012971639550400452736471546698006528525833878545940446922937535713349318356226221626299188478703308672202603212019636649884107113508314066707769626685272604935739280762947382724900084717879442586766904477739816431674242020800552327564188800611608688053859280689298091628934853629911189382479207208675703744856999308297600058798405127978799888997615451440789717350791743275748387075832400810803458895103231085026228649458566758787373099452491798286330435228881204598056491394275380461216236814812006323423848624341027212957273248195143783749622473931363831160453882789101790130995851119687017500815606107075551086960907033126962741188330557823386528279128293351482629348317178770882498943125912918259708760892043571236002111005670370992266500748788887227153681635060899282372472807498793328269798712686231467147567387352581957591749499805811655641011995268747863501199436067311027301144460705789375198938654427586302204442786284436890655740116073113251204246132528030957845060980708668132435976132876716930638509100673312538449117666514050987588254713039009434556953959729319522184455211066686493765818655971335597291985757506211374105538133901816455041678730785826854547126094466512129048787073786800485706948578652654817659675215061038922280869149991926242988823393996518079639619009152723602177064323230448514588136783023580532030379803402006720776364739649182137282126845395761671925873918100164737501095858527957991770107695765872564896399932721876908309688232429342621631124855960695372380838403852994642149870620978007028781236580009600808990588867077059617135118333815147938203458410718844445052376547048269493810741860767136204420480722682501523865646071502040277621525626592455078877053258946012471362566948512160048416002361850846730753612035360178371379527645334064320132125092780299277367337108252988491796067913525054484402975438502496295811596003877453018947001816610699369159749459542335824454958905530238413663992616785853728027803872574293832526405975256714795909072913760098391517468741181524234048524752061692188033131170386577243870666928114985776896385811882751333581193107744180162495883284492881150038852782001725426092561041920375450339929811271233831113394325025724099067740831622041499872119348736036632135736717478881162685453350595465048225816207925453669074016112718927060431433809825045523163802236657835435715700201964086660616163366248133110911144382874502230414002842723009022830301323129032750299892380017258443144231020559213430783970916872758863602609148277437506910657158167426935824918653088617311525341201935341910418135483456525992561917253390548508975980995904709497304697114145495082374909015758742204017761401278326253705098364266136271040722369001616183271070474966714800727012085318381707948196806641029583113006903354958275609489090641659630048016794851699553554744253864185160199517643467619900086168438649800825634077948252995937433956203787223192889643693163540948275404897595298639281946681846682562061035915536926075179988386672168426535657655651456760091909793083958737633769127343461695074904984142987431009992527564756070913624175664992266689659227495239066705042290007144333744680268530730812525861860120112468298293292036013691728870780243989332803837110814173423912378185595065547216546707564761668507412914938757541002964129238827459715719727022638278289226551086055926872669076455859177078672759739967760556199627689885770833471221668480437880269875301209479562280117796717130872755533395899100650615144841986244808784930394380588850514703731089026895999548252817035962559249190924933098591823051798793242215548197778855067213164517679139794779701695454115236968353545193048689722616791240570615890998483641030286004105391479677534128100015662008882292412345921705747649390475991666965836300607443673008639851387146120064741386824154214618947681260700763350729720585527118154980767779273683271275321200790179415297581096475502635399007281209016467441616147085528769543985621249961723290659877085346516968271820789896104443538373251896908474405354086352366118310856488800337448155176069414594361865537125711817707552148703448561736274802622558840481838406910227859216685650195769023170876091366352601514613844246204390767075180121026811198953988534125671407014248268399358860110221050720847027066785605077378868356948081620020155927886710873994971942790153052923944627050515874964900646009199225179230881953524739519904705031644379059702980063671304326791314975721513963017213605893352861631836962754796565081334235649229345987311024495558649784818696732769205831483049654069530287171392405729947161021312741005699793417244735277516615260556188679788832733884970174203430687881871474376774294332463420717487102583508298371676125388985690662661096457853151951825135133715140353294999177369555309037742370862162242001053778897014098911389922107410346370040529170019879527625623118107253260971130636747901909918928506269347953591283905878562244720672777557967151414009661103719765513377653012814727791684930009386740645067825714249994464964529976323094182172585549807650750641758219346908183329820457023272982501338015679607688744308375229185688063952932346715981398123787171723015948303509372269916842267274177088085456988703020114886675772546639274177939970936937692191964677558007095239134289983222571848179840487365544383099802858707191131268471598750657629568390284714249091106065714260229223223136987224175100221087379101178188769092892239966322229260074797234365821286142801018920686903287154651849175860244335819977202981865192481337345385295113711814407516993547366619753351531893770212263835455897101242088484031368726305617529092027531788208355140351209741098900129699903886066863506585671497467889949579185637204356619451359951109512348499387170636108656056408523981744525058407308150953116041027727185747646004244292294223392143695482893642265141768799647610881123370090389267250767968861330104880084523337236426896120815383841638922537861488988827566355571582822682687362144390497495470047256040094964425876856960229224009401256280189873441088858155041034887087236808860865506971391201502517615934757052692315785127202972884776604231376240458674252076994242981033973197490007683374754997809644681637649171062246795547767077844729612459226140897415621154050922451681932029541115825545339560485272372026737607850981718235763112937121526879550102376951501846686125354081652025291868315331331263454497797188486474564089368204146384241485250216994810081890873095494494076914660432927927150099796826716253770349286189602895236064831835525586596873764213307318080048301901069873454166275243972913357362242296550827658656620383165327372550185085719922180412522912621412634911519854876456351118842146034586764923390925150774561855735809115917159107709955743199805195974564634919097641606261421151620048015011951903741063622626957625952949034966062183089574077315909426590984313940536406453474103536324163502557089319149345208155422206853869561245194774310990400871752300607579422432970568494159787771158665507875739807865531761961293463429454807391303417835243639190348796863137149586114169471817490744906706330934939680050384769140667586839295738859046533095355339086910745389567757976266005016840619166897140748497862274571849353965057945277813322130749150582209494112909202228497133256232191689158263644369345127172439870770611173107932512398860903107340219145237086312023501736594123074037075240872996731656178612355801589670099730874815836178788599268786789761032254594349935305079842568228427502969080569135693963436820504738537702355419362617964308528208741308265098566320469981249173250399996240145781682889488871277559635767089246297564735692533391595933177239366142255805255852240809232287089864889882394383137119441728727191776288204428487869810887820687427130434675407689740347306051364154036338220707365863574269568955993589261264745276273037470202120937029587527350965333811391222122648762876997595054144028001235633696790966648685364317223163380441082843512658747965022008400671607605245390494405480681336454006593866935770568336443011069939894768444519125194352539510874638616840719935835442722334615852571539108702500749288636546180619781606578962809041731145628346118661794291031896558095872850225521586442985931030150432107135146717861238280885597262742939935777358885259938417037098920393751939244518150121063378527948487351164519427099245695823607131043437895694778462943204723565985347284986469400340569700452244032974335538073057005270057102054562476234192766017261641799373357059448562062980744227039364727330321473641779784523567313887957448760257367336766426542445999985019804396470734958950774225625327002529493392068196892753180506869538817669049810304936652939072448582646131454831841875961720851684437056030512288817376193847081065304126483102022918051552982817224743612557393967569620851248731395821338814201384670447519319944384573078705207578081930888149760722741658796724375037282029199448942305611428982087502802394038200158032752878431812057785516069137870073932032336221176552167958880242359469200332908507320332627510677018234596516106510120171888115335037545014947447887570047693093883040950190265283350094754692812298302716617970199263839533137805557792310212814212527838986224272851877772127125010345906266082060887245150063946625683447622935300246461311129776111745601850140702853554198693277044161179695327833987669192538519839914030840347205513993576076667960135227964857699787611428339520859072857504757051831315682198140531610237584322903255810516718397123278892667824060687736593064605423832712376092670008222164730049204072931340382010953621838180847116480160404560989555935462873547181306758219931153785193917469857988940004749349690237816624087322805184125721358466410962695917245467268082549308890245127219583489150928492642299317541092400379334265718931999633418543476709527087952855957295851241617545615521695963240687791104916476599752364219139990358462939734678101784432099115502353770815821258159311952064948919718220585264218412745747820982117668844309427763022231757500376280949635681621782306509476125354353412662719125562034336805605469491978942526575962385865943512448321826786162256603579361312107413279158747096649386736617193744937767308741408624351511683719111673706205586765443455597372195276559198557680289672792083458849300411338802393661527062913084164396180046463305714048676269806075911683862681733559395024585256695289280314114165257200686606286145416151373056249901389309747776811686162781004059457837994405512661809739558101127882661363374033845204968883212838548006155410075862005677190525600472958466535313461097597320931215885201299158406509666692172725854868867059568190057436839028896424724687605404542317122793657329651204140495566534634542557917478461637730534993469004058994375846700809364673416900720373635199672303189567384782064166272624239783186341429612146254857266943136579469320413247573750543484256699732632426586492905740053416029432930742639344145098222618399010142015568052937575261371289279345903405995193746963067489898793517109810970013649377712966264892943244914934976222008574035105069909181434429055375518444839117660640466628954225951195295333091173199683631690332370299439871931242072807350374046665527266513984247980862911816021994514862822460461031881398241912400453605271240999970271239592834490647139118329209243727604843869010624678281997741792090840762955825281732104218591737497090135108780115586777329752445477084781399678772756143063985335827419437857399434105260814832153675723847527601605986175389574085736952681215962826843340690967247034767141319801238201241857741106260745095477969864384760261883391084377118431285348784967261547317574143972362891698077698809426338806675894775726604365671051413209765853570325231505050513661492925503500397415811777925080345096063971615877591819367765895985667477249195899947386319043253242197735688609397668076711051219097609801935586297253392306191287108969211108255384791824630100337156161843713289559738773717419446512188476384034733196357667582083372628785078096907098663399434288163389592864129800761874017753659362610988239296103922511253113728982151741411662819418875886343312016175049178795191160001064919109244199061647495654516713033528306103657139298582578545676346543089219314011327731290700099837247315436618701544587928858821818429548678873724180568441099088346091572382447373933461844880730627522900284775680174294958188615522714532369154876600970148792366869531020172960637550220309570122234962418181758899090612706021475299848811095901355877385123631902623291384157891884934412749222168096593143448967429130981501796679493424662820962173943700444072561563277268839969475856139822928012571818971020570025744738125989184140363036072330038490733098820000946671223382887306504747947763187217198597400662298012337157914605553554237584265477747268584328697712445629384649887661022964616124786227724359007744843165243193083396703067577677581403646154393261477595656381816591902292053989249536750959935737613405141081779696597003443015171885234232940567816149082947264635733950961698893065062016510452958119296453285411204280030829302917340574030040117014346391102310048934354898633824628430376302116088588455908984979711891277905397347422514706900750388704527438462768326741120631290533915414768853067967417417127281012387764997700399988362881060866262110443615080798056761548331793316146753341261948013122077522266304331203103130724256230604753836685121560290671506416387689243025333461182964971699945441169328751368069294862855253761350826092704818565626058443634875453882639119321726284997177741194459109641727729269656264580964589260893874251955963288716530137413343993399521471429247074871601418087605046716070905400962747460848304610059019978467097222412490402539810444101031416929770010504680491117388908430676516142831753201485273405731698001796833194192452044780909244317862182829917872426738091289868820972332886036456976509129220254090899622977542274656239224994371600110587343855952972949946598876962047432233613824445420433990078442720903013335613890165174329608297345076021045854514966169311014955909821870688510503648993155990017608828168411822421237321380560780419642439791974544140537420562547724223415322611640729909834361696854506835502274177005135638398173989126892946557666988913033790752326898439383182241578822009211499612726613939166236653520003822438549652707996581647842615466950882494821133945640821276343485191578201871123110393192423196310595025251927548752437263360054663369872609013389551489787200196969017174355982910642592381927477188722119414167846050716256893836313953025178471803465643870278334000654761962400464487447848913002470191766014457327980606495545362671236606423129776057826799304180923435445562319595696860300648691564302773343326192229975761065885614018443816707847118191900959428340830376763674179876592945628534208307114514320050720740317895588384560046440177351505520594272249767324508499270244328900154204634802465048400491421766694687784680942593320270040882586392261702869253903811642514358828430890089735189958627251716989324875931659816460525988311074383813642646563541642791992996563957306447516929403756825177660084952711785559288709774762306705855848868325658271334833948754900358953436910492857497607474810803774551667821564900219852229368472799500889195858320410194304305707324181231626756763623057436459077579280512146011967714155750517241704234663418162412903417305366122413632542104829197930793036740245901749277122067304501119957592935803313871789459380999775844152218155136293567974465531162506042602647858951618721844336721317261028474839324451318237010556820785489475812291481220568218306375310155784297819822017395731565279851375268300902962299342602904540324285843536336939468189049024738817753093028111614310791840683805098992953181293071621620714623050760847557449423087659477491840522879248470980869601845707088466993559337844436203583710879819137194303457001222187488138276129129270188619090228279176663355278714160005222983743374329856019481362441511089756861150511603196855682888186670485145871279201797442780181962043995294141878460348809351592853208577408275253104386651877714051947760958226883950204487969760363828662051728271328487490692232116401679319197450242259147626378337734526709444494617520820957944774489393034045330619448778388526240377379839500014890053015074132732231951664030603189549819530035651697275777460442186260768909946355003169392512322981012807619821287039055569991757289812104167791133253231060981326638244461532895788423865742746161869901297840732778013730410315992235038747019808334113763273013156973301347671094981999285067067437315360454342256596378229102938615578674818007675967840087969285427330255634237847121516727719546731896185821579333281991548200566080397492980829395883681157162556198843123310350135278553232229561526199889518235374432816554527114211057886252841590425187697691911211807885146087140466680330829162983761940143549098630221833104617985201804524760353187798821023410552558035420328437782207801141797784256320172373904666244325730562532381947261507375256515860695270824577649313856966702923998640315151955590011168815739344242639888301239089572158397846314372142800745300427907321707057940577722417441192920937042794942286252023655097460019798148667448388753866938171115227514256387894692614798924449787558813805436684647714627739825658632826178769491994008446778303761176880061682951440478749963027362882487612225431160537607229606160702958317977915356290139656796950242268491494630853090744728250574063402940449950813383336923028139142202302627794299578404033637011698574123250720525525041653296844465615461241125497408284074850316096839146436167520720794060836663574436656358414685156340144244396596453344144918437829053820635455672442342882055765812757002068812422190919388577949712078088272211332158718480319530207381499383375300310425887797388616783799239455401991562605486591094311534431012014918837195167744520150691505823933422722108919414547307440044728639047450881797699240995736184357562594496981156534495744759688354211989280907471645776624646311751574923324256795997806697328395287721506312630254508910853834466397747917956406441016735376549863351453431689488184398003780807256178240386899604591449303861921876857054493842775975371832736270067535388771956089149153931003689033130783298366360987902371703660052236646667259347820539148986759712650255562116658789650531890539762391152389610113096067261683463042769266341359237184568254188328993163678110077233229922565321459009527447623016557898446297741570233394887746829224894140385863535242675395320428881212838156449039192516154026140950271119851784904052066737569475760849588489983963583285683368919814172666664152286049003879631491255000689950563362491779853166451616252703797488303795141188060907421075608606870603546763178374513823430199087875504012370801837687585546123506535093190825201007336615065968107456182491906676769620604994359965954638342376428022611946074130958873129620230107436473981940524529443179933770012732449398146748885918263124671919684601098623029546389743391550968640073672569612054647268923658199956854621356938890813267480349500033787302367222840243265653401129077687043197282337783782686127901863497615955582779733324779083554204959863796398131516464829710742840006318377600849896830851085494033457971776760095006983522287546689795091183759606593489326971871398364658146746635238683678321931306700705210067949302984666030352336797879031087737675694025577537727353372304508816035208279907578186071611936420433960870269621771379902442037286616814240483996539593119061819666309443660506840168253227061160188077367515830030672517089372720809608788025270803316281324772023217348922193821730247004635794087015702463096449569492123474637507433105249223852621306631166224346944150799524532605052640107102888463270385736280515953337883541766947285373410639664674496650961849449404595280317433495711094592596140823466427444956503574735336019746403985926639150832307099226897644223343868942435573879570620774642335574150230847458331306466371839518692202373193905164688635792151303671939728863985931431682593593241828707444800758798995653983106895986704489768239352425107673483298315784651081431129518381845798041833005038699822854295209421446008691421587211031900777129014051888808525589722810218505773096998711725530185375661424356428742923561572958181719357829818600870602524527428342954137788751451319270839602061440719651893270685429412234822501709157760274720268771950706463540151211059098826448856330746232569918197289110130692296633086575637327064511882202007932472900191555160507601623875128348490228303440787740273009748361633781097304000494667755770446524698516531632286264278708696805365923835144406355952683180861020507595428894550731954832119180416421824543742281705995919087154633422864145569536179144211588622907232195301515400786662041808459989147803664567896340615646337777390831722984247945244761570505003681336077771929986893437386891866101129330826485584284895056559579974878783813891219788456978361096420433424370632272376614438458434590592778116022410122826857132082174725151335910275316540187680460392653599044115413533914129320424597724180405397713880848507921671630597514942611054639937531052749774676939572133132583681080968232372233377320826292381646834553873070601893506574065847936436652111452859437142236361916507677844042870672800649270958599164200746401806714730682486926907443200655607397171843780244412329138670467532350720523864065735066637215290553199722015121609315048263124018665855596119243953015361191391814811668833063475907211739057237016849230840258295358922141403733939723035298546182156949984496399012744441797627192936164713326920893625358038496876632852781812043007051460121816268269311197675625450599269645967649652028689578252415259788635753079976445869399761708156976696726266021231754259748347445892353799487770312477514978582836564672557103986604213911721979926924930511815380325104380466515087647902767421021170613505911576264790799450271092455945102973798243615564140904478861199522055516140154445831235205870596369864050396550902838348918767463512391118933626312492690802860411441084397536681945213165048016429212575639707149502255531918169203594346379763960644518902928398224476669803011602564300576153950406794234915346896909551474013510180014434521238601907746320749820673543539237817867732103676124089605549449077669756699894233093589396839063013587089191923578761712760522845104460825509395226866823686730095864669347551901824990966965192167033276199452059194640180013855883032190593160830694987566181797523389368766438876066818457278106512267150190127722691959696201394995946050901548745577746061112284700489115011752493623489430557482380759743696491021514839994798935655575594483855688878942502688265532888986594648072387894902892955903580149360956931047997755477349731791694879263445582025066792929405602049511631148866113737710361738733429896495578231652148367461068143853262898215366407614766511564594864395512893224958892802294298746678301813814089699537587447662293437087995890312533548227989165399264125260471463441694365259663415549259664107895420963524081413667635086414691737168977766116562989039964380043452698393122479661991364077399275832327126926356906943903841555037618583545024739236398191167620445424379126002203880365890142469253419236479726506695027021011769647870106388248755402369045543777855083593434572206952235085092343416754264295064020438773214532460116414447241315109994316812273325305478082375100174347365174476674762754721370230789968813836673269661268426258528717682850674908598271933603060635949720495672388355997630385455797978357810421923924318774157339407816623401007370061664536895053533714947972897600529494123538334887202148477135943380978289945399961434161240335305369125844743154887201025245847661058792070044403766060857975343247289437875426885963419485429879630102293138542982196422717313405910000746601390679580764996744898534123123077817204571497637070871186352868902592943978310562474331623460751285271939421958185031888223138693315926671337605358837540735638749851358342460158526670255052839171126741210114454237139133117511420808391836794237115292263829280602683826747931066446610450520077687853659941347320228172068647581579324578871181337311850012683645936466357344519441502141659420302944202373063753925442843102103332746881971636995310196166362293179908841810924017461503574494636670748262312481568694901791741850843641268636670819700600444976273112971283050867029200287068749931506705212370848508971729026991218198712274171985930183571449368974567499503618879032344192863050988102281956479368033722583599930662343957334062154246138590575279021430705801707225452587395419198108558290523923301010470082360983021172843562972939606698852603002159935177979369525944156239938021890668769977363409672531333182149838676061970393744513890148640138378931848812302546883487743748300507786919711169235286938174932640780727993695865831598538726336615962382412395627041381613046663574283787322725238122958120546483607880623723075881721549253757517692209507792986671474614510882243799474921185724141644474966992092513933699676045666619284073668492978973792318932061619839037175024750124970200201859140431045560906596048189864331504324762552150383683824479388877281856198270247662754670232036467779218689900533011582560253996406537868561282378335510253535271159341066064006886441474552305386637800971598053167964081785531250808141898604594222139567684820474797454887959148612356075178763189834555686506934226770265927145485298475901639584194950813930067690712345450040675159779753778445867374141676885453637881636571845014658684096286049176458830771518146234252105639822973184018115927661109601461816192184920724470691560077477608761579169342362434738282783293851544742254238670480805253234477463755174889892718590331922138784726859857732903952171057660539564825621039653115048746275536147960906194142978140482543046567551428037473671734942055031886892015105107301839550302606770931466784051807277469890021729944344077360393018544960501416848821806507321313150760608619320589602485339878458855587037298624676335722273455163509043812919399779011192075151780775133783009894882861535066633439133158048006333108026076065723571790016575625172386131360555628934035827589749908037873458757822900835092343817756776077856635323314582438378779196100196464829903811366631229881283385857111094072650569447222197878479167321470646523035279968767505651315453983835356595614326732222124744104423494024869194033683295925271479708637750098771397933646297005416077511025650994215405860940821113703837257575132116001760610944646303535824657968913604674913596390895474635559161335624818176897914789724190555268290500013935955188898022473436844002565451430344754574962909609893450063193501407113685909291305821473921597286708377131283924277134780292914772124934661409953557373101984818043023771934640344889296582669424101680338992101227830728373647555146538458714187434658433914743544768841277417103412229574968492505876660952693700881627090392468978452158547609419297065300346053000090233227193659758936320659900758446138261830872097230970609596105623503615516233582456637517126944588644421402381914430013880096210036001806126665441425498346337310190119392519626719755397081570282669276445496035409451376506658262737372109061947292773084137709296729860739615070123205095349707187811666118478206642718450247360678135413468199506182615498992355631313236135239788664987680747159976779426346638362944761966450446332306818462094033681751987558961649425259117829701783994017363175714737822197534343455570025814510103299833675531892163830339160746274873872998119228001546723074697269212679386354632362038820820190133456818550640013617424850023230596064433776593545524526230977387706528428592622857828992555346642413872369548982529415339645099585222245526325003882642691455087384656021648408463849840655601242910757206837793915336934076466427905649594623984740680511629704277778558221258295622511808201712336211777718813934523971065904294139467446325298767212868958899605169520119473571804897437064090657461408464065207102300397152622217432279094224949588455454880186708482812940517472759416947116675534010036540910096007150387504500786077104691092336399650519968337712518737213712116653105084356646681432318172143969164578727380753166749523720332975993628386102762116450509665090337273043160709175682192346138091573661434835358768483566916557852194546337237001945027573068263077692950925544912639206862266724017101914546591126723576458387430010083892231490023926517326507151251197378489187598308309925734402186154480183755851046422714076425434027786604404824226111929159013055384850165555204474029308913869155374230252178059258785782336750090384003060466681452927494753264426356717279389609451363557281633811461430946226803471594787593261258859360954132844563494110738691218624371959127241653841699346354531494223548441949817996042892416610507000434023892393741167154673257771248124701268301962369508158706727090487069441416215636675486739213153143484350449472008697880079714001468616530000719250210980466006637257617401122632765460892642083843697202829381532782102402512639625484202360552491154206045706415835382057589031451479161899847538516839819736480029403726720714987082093932211026581433899728602117931099563152361572696094477409321852702428504416987290637775325741768936790467107652542454970958736061695968395692062255082371651043261383563282041567997981036740575107901318797233133136452543384087284539376625191246114005789634416048852363778341511083506447509497713704685207063345221899553583000969098086823300298536836983282742035914607538619547014052918343991267260618207107541720405829235783606157810302814044697744429758448624791451736567940112800253886925291501267172999226535740785655947275958982912666730506585601088613703667435735323003136463228143434603600511301034807927098195240322470211623523992023945771199411536514464395614906342706580757864460656788727996624066966599673514570105198705011279979820106503432364431087039033492024308959522807045694738733417197362225944783573168622124314731707509146292703240122111861595672166626763615151434492124928971340785257966127067251767269950356801927886290849794977246059455731650600634455498232279507824751343170948550073685977651118899522850895139199364716961861348706857601469431936367674082193588254058592990551813167834415208224563221722741899927918822854514159425482575955583240351873615125991595243737043411032512393699206281563915358012106963973683721791835423841262084308303835630477840405881358210141450781043906101276157732588352650518283608621650828775102317403648156088909139307743601265510452790504322398672344583066847360468672653306727185259875378621451378246070539756608657573971568856974853082010689977376768656448814313257773211697077401313586895489162147825835040516127918334777812758926566996863320820749397377936554777296105906358433245146776497902767144721999532815249387544533538576457851814177735786620252753588564634243560266407259342056828908638112109852931112453632004147294663530539375777831512655536693543469722613574147955195947251611589382095057533587592502152178397935518653361058249544353014069809369568479241359609003963214491309508255923584565112610530968859794475007489296744798557052869574252913730880852607039224834688019623359033439487313453094893025619356782568258248339575892668157927996330277353366343663123336797345819619546551462959407175703764597118493138352351662769649278026245231186818905690013586201350319861165450271474719585241696291452837504317422139306577381562369823233077050187021348130794482101753104785019093824375473082470085918253327011964616735487892346399814248434291209935213657363005019771938343594297817023327286092937400085451939453505004974981657247118673848766042884229399014236196396601513461554830090263624509335214503360256161600962197471791800427104271422597949273124212666895698851907948320150884219843163456318517349192676399840007594544907405427996418773633566531014971216421151914725044138156720796939324343776357519190533040902417524060809777181355815904211692648910514924689769313067977248761899312608841812402691518056607370163426180932152969357981430986224118679757699410057723612493195837055584461800809892162090084747417179337187171586392013022721631538613433499383007654610737349946434834249469420100407957610341733204216799508354889736374384649848216581402872471159352580153250824043516208186636616836599846313944844853981178091904597550003762295332623920055849141858121197233941741317327263978876057772462398487648797998668202887570101617664759690518127418178773769495778647714454272484727292634188812379900415347747815221865783239628151873323787305943697760823387624406844806208221128847066868361936937799373154721006948267598813826051799804128702331984521683064023135632841610024837533284935735286134038595539740647244379877574393132554642363125546947532453643720050128444791887705280979260688661907366465639602097040797981006906595876464024056853764873050317427768114164112548773798088118296012451447292813795371213878253583821854232533545669184883302242253587295294799433856208284077505713566606871848529368821230277111562382702972441933253352425862403984658877703441078807041518336431354062441470771261542298941323450784392515506527207778114612024978967953099896623568175313940105518801545273145332921718119769026794601554718500568653924362225118530515018556029837816594446937751856834417455497159206123347173659565097392315437017637626974679166991704506331774551020763330912290752574474398340425052394592045679935829391118587114749335862483118810029858645651663509724211325515937114829516956093411361698481608501296072609039141767236611427067927499516814795460052464199217803525495516874070787769527306408889240593736531286669842744171465306734481430569138275794945058511783074327930958067469915282955698851574118455469537351189868318706886392189493869814800806088971965522480931586634051574162204843003870533457244780058577179779499130075511690629621624315395980878406310307894774365636494057868891386103277623349304961025568596696931064589371046423146946806172842667983012080611815689742972242989772017957524814494413326240036418518885130805671580574706874634793885277813676754998536383955957385128094298667173563920627835539773372120107771198632718143860983807944105220226716620579532968072672927194617987405366261804871374677048011030733258811229234227204479659464286545187215556714105643784943419656695207113634918070235816126604561023267617904158970836060866665901467547570704090943075027359202984141530760540271474131239878907003540171448250891541841440258610612477861190853331323856610254099775344078354651222034099006745196980530787959878823495753939086910148427411133773125450674314432668330769037609875029925230564544942814614285952983037823181265226456738438597715532253553661067289075678868509027048747359770548562055738908883942425520543615629819831330974753660266696137607201164762671471470114141741775505109353108768203254362819144168331659059057770082645703991029107906894593432863105992726423968253285214583581945169224811296397679356185973804504881816435196200982922482381622814485712545931082063862757507700194545678791681687555221186954638034071401055562089045409270105100242507017829489064657900069843856492337875400449370069560108793429856745360864869968934853591112626297220925049419240483457726782571632798525421154809129318546681626401390326558374558714096521946499362615995779478024147019950880765946742671744501093182988110780910094726871644725845484372851318210060442144559602482519841289007561893840902212261304949290867714604206634426903245665943224600287663182151604632029760890405450926868785623590487093502759162819293170794573239083166422694800581095760413837647224906529615860923769862867524532143822060238081200501181732431973739851185560513183902103368672491028889042859611605502981246231670035560642689177749993374295055328771152346969293763919104186713787880538799247045195062692115037774510019005638011409762233536680329858413815967164149249187181143503150613542199646575441337564178731318395921392023696670018200584216008161498982270598822165574345961662818410363004290619328490605767264811591985078685747097411067901217480303950333181062600452422315653010910018083258617261904360754722028359714336501520438648991493375949267507332244400528021323923962068805096920447763736685393216031938117751021879620838148528893068470392182175617869814574709848804182128419682827211604349081541437451418359719332931182047493648329103863830964067907583088032112184199301507276700405931072870066893816238128994591044456001638824427698568571183732274445707406920593582345105711335802480967333200094341856091193369065391597207748226891905847628301520077079505167553207482489230358595242816784251904387227082292480309242517827251455220782185308404968823006438750949606244101563282125368066911763533557458997424922911401915893701995174897821895865453885079663322389999994518682485370360369011116716715128902629741739764871894350254106749269417818731268979794321348685945284479456401722691137985791749514626805952935491972340170936126557208490408072020734894002514622137120797778629518693280619993023342727824880822181149075531625879849401366369974919666589014835831689243072089598912163710362513206277473213346653606487702839012943845963953668666715740616279553744525177776407371817288591107771836397113775360043623374835401113406868122223756288513308012899606658310570049904745169756053744003924723512237938284529310723345344665897676847065981717253327988686705855053407133304246759559850899752130009417802057138772481415918716228825402295976744952666688186829883402218789023463314689743193083521409089517792921131622325556817358827903939078926989260601818764163560853433447351071013698696594351247967479532018225562566483571344087503215800636412905843038553849111333603064770578277303399284546131439956325270107485246073558668924610258158646565494723022296771342427796004065474380418687668049898582773413182279696335135852837460105041652338962502366168431708371306795787383280189605499349200533665945874040171544705959782323682824132505419832387503933164489239377973310892567488109206865916539125759472156927517326910389098442883406293397784853029720067738266684150104758739643424821666706021516687165431380936170727297834230997194494399183080945303579747695863065701121239986957656797731315827993637443811079384444935425031371346208431475910802820846455915661017642353341126229235140159794721747031125244539777931673876152027893739722015384759978065697192486066134194051062630978964845928252394750983845568440940589824590194701798132750511997064990039492860357188487555022479235520754246724031924585766092567443505052850948072574359571907147330022880611469489868596689822277912363386493275428765318017348019384291015442582311445488354233370544509417621240361761430107988281268875715526028581625511056699154120226262742686573693900227528454905354368929943344627512296725212978650477728279270850773962071267877956184183540133165563938284942926514453529510727896595819574483102415636567864433796630269710578651225563638560520666009522853964297682770170470624664050697761246800237722962579999922464069669008662679505464366417385225152602578624447803807989901800277464019274618924721604989913416446563304576726623066143979015703569947242805517105657924489595317313895447864556149370507895269127244395245012401791868185656294163061991882997645537961975662562307022386041773422091815246874051103332496550175128637205510401615994105986861820883346914737869317599965791044079513948119495097680117510394889087190982151437554129342600860943717220511826110896717838334577646611484998352313987544894368285208535420157745197008765137993176109809564037898239254096448986001203780800371469681862026662834442175974655427598626066614488888506764179861767601361392220154273932969621799749652022301803803448344533159924769961732583784693267117009628768602388797245867734652576179292553521115653076973488890203619775042579200048221144943113219619186744974397693713001929258845141870596405721355368936742272377652836434862252185287377126404658379502559133595026973077522621511413751602203299994728648774231587094088764359279278052023309543362320208340252075214444707666652624541895150069959649140681520721630298578999262023366938154751526954704744834283186212949790835059449964859943703127615366668228863569520076142530193387958414028631547970015571670204825554280269137834971125989200254552909236826158148521077366580833916332473632151906825212365704890736002347211729768493516584610790029208840246092040998106616142801989845035195262156939213145580195062881907744514620899711500286515615746716693002796059627060338165463132145274295766917729631850748332453204268508008736443227874212555348089248720989376620619059870615879677723053603662751166001943028455183646201833123572788420387382895022753056394705220928012293729242053606023824003695725497856525164399270570537345693445177632635000596586238943007125642244030672738392792788728123481671412598243479232157824189093114215827544305516039439068418343725136800317897649582041431430352896566261732430396686767256236638502490673492705231176658337977725603039662015369614143393230055507884514398506817304078025021434453614633967202171960644131865796183494636562968566107528130351500724757782586552342380366525109404134146327285446615251521644118553487249895826986694360622853977537065290939238511270763797232382725509344082183009694241742309467283024122598055111985046329649320305461012054516785220136637763678291295391671099553831638562150627992449740034525380321608724039652533224615477219882817152330727376938956895231145295635495485316231861655969887406044140472293895309583849607316171917639686003108028240490984517371379762552210252437079959622242118256716267383486904753128251106462649121204507039665988896085653189671246651168698256219160993570148719877764226228492020333673065653791851803077265174007471415370421717755282524460980994169682458651362843435344281051225567080093457095539412671294910434861229204251778917426122280788429822985080994143004278220175551106106057815629726386541470882588505719038200828332202728450726017562269160294624770731256683012757542088723766756896065880847063098335864121061877948810622778680603732111953460335020344602796719304455994581739987373037027504906251648481910452355826629724301364683624596690437829546510809224064243748646547444621531602904825390277499684879608120253976278353440434268085845701144276210243519656812166170090294677267252575238485386051345608679317743953188432077681181163196591138582528529793881451796247527853259102570939200074022424873307083910369058967892680464432341752974906120992479570199694598616143529513665006743754581161985596739580974945871461733944433109874494002011674127477783807394762019798891583819247983280059780540757423568948099597621702993314440754011366931755769571164166194159947401603540610531006331512314392705032094993309050544010892100006044747008121735766355077546131253957393120319693958531605481615746823314500977030463790469944166999013638515258891918461756790598256135402993800332539465505414374918796816961647622235232204974176071904022091308162926439648613026352867483077580890388720325038500715776784064453720276658577502291967934599671572670095180636688194069536074469170083529080692601993569513934858245890683965873153608269406415821801993206445447245365381273922202937978958319332696076202943699200622302573617695555356467050825109357286484608339668691479714075091942689115374639176544630376297426636650999456267874007106637932741261450184045412172354706027268724483127752385898514454375521790380419495357619591773304007862741424103735207309774304481300848586776855033349180092010964566561315425385773343094314148534165487978174754628308890733584246354468028304393149981706882483504298302517932296586775791383329990243294051118096214642304800821323473204412260045287081836429220903625545857319085407736799093661619415351623517220177767540786828346403679786842051358341931720087446773678384818473621208976413754712121383536892106043795558477042513393862518017485877099101746451251483419726364602816779299217990932527500126126413403642286456007155645348646698663466702548414614188358751003263972924626950597620974456627688242469319757453739200733893937304665463664580410362766570571903040712059510246578749008399322645929264976184198281483699839212682919118597617918964302976219212122987379028799371486601091776251367455152761192695822085873749712073185042419035838804158963431169512255404440524689350694769699704996566229396954350913981588758586014097762721534543213515224462245281159690800888134925763193265769494562109299487213540606857172621697051569069985220970408919002677715259265443411181921674450636850482595624881371702861458449473246251032230832696888593221384506837441466997066440763279806376876500438437439817156136822911565860535831271959343907696324134389601144518641661898306486178357800245249245133751586257441053331812529993836885312306533763775052273644443490538149891416495431717485157843245199322041353130235475235229669330781752195077006754219396992825934950600347137144674125380424814687058250901569991676854263506924749413670885920138729300203210497070610494388304969986134485889346640531745138064752292822939941327700724495510115304721040761820044311101432145076936181855963466373080542467878992094892848037236188301846730546989050981606011045569329404971058397353983016269071375205146205059945903162396683423996223879254524425793469188958073713753364676691085965717973357197841289694799036332651313985657127660574046932625595567990622027619894766062133466970191095270012327395428254072631998868682891815286566555950708199713758550213505698241743988989247976469215520767534064801062046164582639875305564621501841075812280286466682398706577044608905478811858978162406656703875439403884518205948852581347419580310805758517753366778077626023897683725684076580141557573176607825764705868524542786035615226968773120570692995578323963723707041190675842284872468676359858132121658419837321442768873495049706663127749660431763004936859607892020633302500038394330841898471255082250486040246490364828915467421226035804158666391677443735744228835010087104700120146946022126125460719933127858958155048954490414445181700690029443409048129270944440502714896841971734792722977499433393741238474631122612574465931045208706135247144810212902922358368480335173905517109132677637680319948284717196483311442711068222667972803052203047712735608558428996881779805098828963369251475728169917363093222761198355891529400114251597947013588026496173683973022632733766358303695963541894467964139752581172667657127068900745886190872867044797086062911582656445331502235795366047360719919999812374455647127343051910593299095770349907393632825503715000472395296058837581632425366173711862498122267795764423741398959204472479563207359093592800562224018009638123557463127239194270986641009000918857215877186203823612386963565730584709310849853950739954440912438114289391427028755673017911265123099707373480340465623246851401636057162114563333083222364888475937474221979748413254950880285005716728276996696634263885146293025328899534138209827802181308999428970467995831912955994019949246241043065322082297922942940924567858449619157986585369960249559152349482945151924062904737729877658561820136306272551319300423540014735201519095945788727159935248882524713497820067662479901538870269837790984742269997959884348860279116463045048239477114128998262109074938498910425070702194695225684308314675194539471046236390435280362756041490423454373950987859223728588179327464934096474316772227142440583521551759824629561983851028267780700612568929864676396348585534947210738985048674443796774820295156753747663520544598416425966859827812390574317061056315580717561490348797350547665945997232318447769907598163233942707952529352437811276033942494667380235161782096383869901126576734146868576786292610099362210916189271471718270799813185619154040957152600165648560178793290399664377187609696826223680700866208547937786705644522765309356331855452161542990661385302407413971281319013315040494765745149286937830269177433439553746984209229406944252831183528401135644637881417979091907391868491070272977628470982640358246440557596216525427378766716979592944571571833641496983930639859521586592608134079480510139135359910067823281821025380318760336591793921991095181724470204203804793309274154263078078264695497897105738602616020345147323049855581750000705312703874682229833956711543155380643880090268405300741964632384055346795909313035672343955981057194354130510000295859736258373935761254045053076978662156337245932438942741444285112410821658969706524068259022185857715325286363520994352872396998250788694503714652584919976511499674523613952315183562469645011788587793783533934247876259935370363262928885651190305272584385109511733351273748081222681828164494367244035854847601558557620085767263084282268314940411349555600373777809409450601523895114981587720914034207587114166931289441476496916907525870652434771840293208230809205014365059446339500970174639151816941964140267924581798055339223359574363274096298397825091384415445144728018413095880311830169753593820137860670660615871214130909796841038051672853980490737248678885856234908948147423729182091353186543326316084613599832290064819839768580133683530677224624375787900036368583060577522890895685339689645352709231589131413173483166642251465145059977441876442900368868243098341660248150978685914247767577433694177014908202415878354058251649100359824433011538226477392826096655526072674426290940017634075015599917659714590020510583370718910699867841335716146369507490016080474321587644910612727052525015457251744122933220312238244413309962182191222541648336678048613698854283190276341667705655227597446665229924822924689555195094720339127652231207634263647571486954383983621824072324965722872425795925770835077816613303651710701991427029848130567289690628470900294811374224190225158944809220551088301419428805135165653173545492101001094764354366210938874532765852090165977543007695162023041143479572587892167768373126759765676454470975943664204848248186153000065549912935759874979617939648110856713653939553025994128794518272371500842628288716518027233377007741309130591188816979972788866943285650670317876483310313331059049070922849121256324681032587592818550196747886039637513461540636193549304973989307568712241103798106615189217326146921604632116894285143558391208917843917588082332568577218550409433326906142316487347604193798244308179209179393674318098349170475097423641780614394107231617514499286027222170359814902160450454878182244393667422415159642391581352091302556060437091973406238408042493241717240882520916041493913281305960927908157734498420925384768218670877518360702740172697196745359534798823631797973039192013816258333066993734814338639767558165845850004394950051709306988644220477134613722194671053425784224789607457544689748212838062280654217053833961908525299362440624924525374367624202836956917267853318305525366826454255627647312589392648708823873623304733798053979990700335922600323096147728616905923308527107464778107199458470264605065592332164272166079899521763990911325808138501097822517120585971270918109063237224691580547571263244076762421211473667336848322848947144288409358178160885697884505321292056619228755014404625743422853760078744450341524980466149501086903142379026505915603566937124062843990921822401695031812667932929103826175131208287331568389907109694712878760662024302587366754814234466625155929115190264424817394817098745510111134265957103949854335896722491565340682348721178233609434180679287689475883720576580539704714584754943126852467324726009934408761414990343757649914596916162151742765348541790511828533337128574425912721965776109000562507702067242322460019575939234185295032158691147787212741341430351882408946943562835479174573959545365291457388712937660494016569980236172962884265535800284382198553424647020127132372489963054357681760551871619757286577900736064979358020665314852489244204686641101637412078693766209038508599416762009071826283957692755443384083259069333249136407235105542957592902828252381662085923300942506301962258127462751398122530252323040728106250065383093687869684525846251233624892869615307322134079235489677646515340078685895066563270852596588331241352718599800635829338377351516962349214366230970357034382258850053441930822067910879295433369145849616100217988134579289626883378013474384420554671242187859632791645807506130739569091222763534791601568590439223372364574176108456879455084931424808610769562846521914168058766778179011433271017199197292569068838818275008788110193431956119835552525415543417411149654274876776532493180600927208549050673533947309963312010631108532564119940207864707206191046738582946415515584967424780246450484749141355612571475256612771740684284606887355728231808667969547091179167836475325149336554745783730765777731211097999732367232337828264289186517656535426531140971572329723867160182628674840760249888530728849036472817253294393198457136396786430902587768818080033335831713985385058596500575081145036193196065183158908633609084002317195520781052881043747164517769489953795411540433933476050056908700375166682509681944495157389966968116958089368161753039052575994032654457252708560682049891271191987745544849996201435015223574662120668058184216689978712196004827024368963579410178940625551730911592011699008510205266540058280886991928821005289543388798740622682212753145770864523378274663905586958347870705054979378810631399668420173569099747478889356800072302603323188373693166091199186869942701666637879623135328747760925570382874528230746285330192353475745682345866829346714175214004548401101663208644366929087483151854880615055700239139327240209413293665219706463903472136189166423802976307936073930449391075306558543186623573725770436467950755794062585632537259984665019519025033312723091122160742230460088515312280596872712898487490844332215340527519553184090495078190858263716355498817949900170009678914279495171266461101724850365275288499774237126550457761826143705745215718438748499569727226388072046277139513567895756565188391191159315561863395177205501598313453454605419210809728704158286260875750525726077890067481894098304194365309070541516319947466289424119758085457187298109002863088233101241368729604938211123396429913501451493471359679315828054601602329752328887491580834454617081220049387343771137522867407518435228999431663737883513742401344325519640906995823942666271043148354653875306646889069138900687210411440465424990664378613320026683101054329662316841645973372250890034295256508502585958290578196411986398685780950908851338527923213328251945994056270777845651787514393196846052606500649074202409919235703117343992893738816589043283856947742596501065078337771054821815980239119810902571027554867751553279173813322418097627472065297636425786244566891874611925729862590983251424518110318865907102520585396791735324030840313337102966540078134577750582651434242285422434182156149833499139111264708898869453468036928188262222713601391874098672687570569291331864822344328132466302272096311125791450274407721292858892901824206484332197246850093518441374397648701745202836796766531252401293333438343155793264849560053827455423820924681424590482041313727796760117048427261074341887806710201040431136816019896285935315360653329031499659590816956392877513339267309486781373269366982181039029688403542912409387106227956309259332545099817537343139383309579292157630113781557972750959689515834376629480956983802876046753436664924508387693801697981833438396157612285402907276781752962178220417069848261546140905648287837036364892936769667332057350877279934529045008526910281468301175246625254754221133702028796776243835843008881170747231705433359258251802809999011183573942909894198649318284774064758006963524629333316703447087182462341881788798209255106344924843086083495154716121241301033160987434903680174736083773201737151483092754227986863985098110586066944519841353185455968072682992264198483744693528232115985376355153338771244592238959176748076274971281296653351769818772137058548520727150020849930784823882496628000911014033487490403396096326369490357193132374928423470131115898500642612451538704457680617027932333934166572822559331230036713904294053434740193970702054642729637747677461232869451890113460130531545660585870472973527836963186823248959102271198660940769105427845353095815091280634074449596148506937655063894629854939004390893158508225325368376163747113237033668643768256842315549085315031555210247283740730198923067000971164167036600103265422382298530590071626449308100062880710191817108534090445424911247508969631949161277792601173408933971516115371644613081575721270157872729986527156190172504018282344140109919712991207477992392946161743423580222967746350191570505968477091595922156590586131071721315050913112241488162566485760934738928651608994753584601882182997340426353015052397751929091195191068784618987558531457685565447940709429419773562638581837735608851904018705129094776830171957007089325716273574971585693775680540403204804977107072851859124999294273198746096078998186857895867021008109519422225978764144155378552498566618110044304593558817474936709638214841694089988376708192849952665239561572947035288538243285927337780159657929811694209496987815449508185982789178063928776064678872570905157545495208612265388232674583267848948640297151330038535237417149477189917738140449670663101917204460652697058059647003202118298824116646602450751699003368746672695336622856003170470364869115799306801362449364422446513039235723264551232211339186432830729412955467660328927341556560105553801373656672197368264605998461695201782875477774845922388937674398447202206378912898356255905327275284222639363227737205410005610009594454043058437774940990581187214159875491665787122715119606361630726282582578266641298157306145633122498784816603688885512299440015282251846427414435600147530945254415221360404753834816689081779115635189216617572027657867290382053375828360364019857107002404748935196460012977459740801405062131667402594287984751445915593298552823441890157060833393511428410909295215514525258919849787476855792049147970525702871770744469250298768846333809906283663987906000176649098981992380319512868061002540017740224540024769791154128050215769163010209494410804389308823558405819266844179117563817119775626644322155456070426233211203194020431312843838222251851125623692568114253490163382561302046543552442965954791315736109632868473704527632291936830644833544623474605252178443231496200585903043299869778756827508275503338958515360442871639865398399808148220407659727407305692180662097191802500039166867569484178307786763569373231009156961697031218028082166327483605618397909622263644423725431029507388935932985147174607441204446517406891765068372537452714698315182884296412820464857264131712281101523058325502667801017157070852062948020608835743571594809546073940110302137302089912102514978914223294424022062265292654297402146471095625601721570636369967654391626342770170636445862344631004273098273302768117815925939119297272724104948162844789835607199126137456180852339055572814910064774761367133934443547900164966166883942941996064169438066776481430587173823655024603303361079559946814425571030924530873163338638085429805430358447366506968268464829680677337532888970534117400818410534375501647601123470109464466856090306342588081311502707887974313024924132025160486725942527724065370030919667581776181221791265355173069786962860257261556887263803816739470643518854809470428352564206166427840529394427302093183797242398031834503360085754257653568490954057574655537120800686938865898352482809026072546375325615842736432306711603255069127438275535442384497471880958921170022404462228280177742772582202996697955755435007084323535059799364805222289469230071975999537113642296828454722342933713989745567493023814579157149284956894376294897380475873296778777573919989484038771921936216508003287451500896520877990705470322633444041977224910044090607526614917037267272657437493685383535833920420933570327623649217455709327033644875678093496989473148479659541906094310183615500549868722281414747119901849434972231530260990339032210327972887466099579255185540712450201632035992660419597353719533860663561824442943442295857326297880306941716093568394610813109702780490088082934426017656480802035836800607733322095759851782286026710046837641950903436317738872971434789626559267876515360450115900725038571116568854214768786332158913718297673762199771340609007157507624824302130915243248124841473786710681340810355969448674370874437234488206710286469591361635853840439411398057619690490602557666466152935572822934382350168249575640802031399213049799101554128607688755237116250306780133885842776295108544477607534757332470423722304819376821511231483885072988539621999278813982797242653040222889755659155053453033260354025828318993613819000282925210372179885977882241904747117037066905542842099589364812268682466736234408638705562215603028689999832639493851303469891350203335176358152983155376093046494449749895764786183247824013475644279864745924449768896327575041618771947697976391339610658686212739030148320827694330902844866851600981611371357125916718282029948191974021241689288042153042105805569089455288967120352614337372838300849439991956918580759474195785505607889129317531444937955659406266860191741485588783839054294598596836950302585868108380616777317944775450578714663496535823720254504000495216050967039267581249386203690462286406085419409785480404975846657850829006997474929883963492354379716771905094174398765878564015008303097510996432236724241782792518707759212656048664764241996227798773108522070225443090591250461867900112941782789069292811891538110323551343775535615177204148317253765411397765651220322929518285550268225868951758332965563829052636282726524164292840435094844534011165497612529350700211574809447002365754816353980173286511915589196740204246023942932206444311274422377837461213699768675757987954166088293709787754976826254752851281059451410353781861950292941374107007302309988858351443513646169539184418707167522748777140500948510726369651726289954524981322349473450155200842335076915856760360739996571331569654461959935132056831857971836998616213044175454306640996417669385837187510188921114718845894498823740023170132031362976379573983280704887501601293992675822495276015288287730444138242315518103518584544029147331944961627045636810874787918882256927907956669757300937277607369680521440168879424624436829050931471153415851895400237117079216317186013734798783908709842551702527859519652203050063877262706978801607643566912515906630317778872241385939035730039075777996053383199806280589710543079440788418118115426591745886344892477650295473340504146062182231995294950213661447280603072000605695400545507526113550458443451821278929824899415987002563394367856171508306216479829000171545532689579925126357976882216819645416920213180605969055944039479052595238439911821197307095517132380239102541508373764518137563706213505849194164639691537418146047620517527222403619580074518599309509653616118789871904256915822786240766275565280606675732844250188708003436396218063150904892214313313239567548814827779028789748322259597182993134830057861451065048986582672871090013398297263960433685252822288653357199739220968471338965047747062403491150373669090055393881870445285578324906379816581505633081082334302989793294643509508417633585401702515347157499330566405125982136603125861775292782826775247457228169921942105670661454033853467017155707744209764440664181183480967042722499993319451013824527515385237013947840774161031927541875493340134116734712652190474668589922793660107088177570800380412883195992972360574894996757785964235005381925355322894572934940300181823013430288380088715383513949434440836342792383422236130679980811114420695119507540592711737432704160343194837577268367916806111895310348948972475737316265823277511079188189225714096907263225660204773212654290048920309435810720410087130039610813234745281747476100473299526654388290181878786645854983719678644888577178906641954700729180446832688635588763396170838420277469581683866748505850814677676586897559292905155734523760037621229160163628761646922631871599630710664028969349990771413489505465962426484864163182130253706008005609056795715781342928715356746005898824683019977751473420628724652368634419288676356524329132513485279058670840379817553411215527455680291190797878996604441804209590882852454409640820297985123061429627265249186613700282016015566206516261894367703688417190015631665127277678995755997504583187124051472701134636202522494724396939904440325977500470134161197429694972501946664234641046754890909992434456483658889891268832663779398030418151482545537040401680248852777950301388012874152315737282866032257362075998637404861250804378341128139058134857837362870289291657753463818971335199738182325832545020968075928575836743135356255331974577293783178899576779438709462197463959517122587716655350379749221618521296923446205266238431046731279040542757006178612225221127390002654155407266157518868179620001513656357012731704728335267337884028893432887243930821885933590902047070944727253037424657196556838814920699962509164605719650141303953397806812494783344104287802111883536081524022501027354280835352979472660787618454177647015185607842732668945315163210082421648601974564804533583015863158100893659085001090254570146050198855032324196143113423505034306728866247628401619389392207936551599756052045200289351348800218796073641941475797967058688779635792655768714940161697470483929302743718343971367235720151478322324147837945883731203105232135893980824053221616520826162536166118809571431065213163435363288773203428563093849606852789705033447847579395016701451949039443636460267793213040123598527968375397768332951790779659555244283861601647516267448856247416450278296492880306029702457717813166081994164805224120718216585410096382970701091878494584320961561877576767412359617397316832457055395607248625984150021230369973831864348128626442129849810574741160302157370155915425272671375276714182273492420872159260568205635323876593597425264125160313791497505715943530642636406747003853468743795343514959928525919757540398598899223685287148505621520006513424183324008811287144968406691834028057505219741480518419460951134177804753685849457965908283127419516263349759047600503523021648959925935112587570000989198047203235816590340610590769024661207758862795623259793923976764978725217478454318855152343837412845673034140525158640771234506637300614455213999323699116783697219424698507441313077564466213901108278302731963563619745007452608393000177681934040434351668429444374184753560543815578151371683417609698007827574688633274775378837988820856874687294791877663691995564764271508160459394932905868979829938423861534829666838079492026339096452945174836063048973989360784602638009388833206085505835006722097479378084058837452841866964961256754590857900070639942574779699834295026836079223069715584027430807346475251519836430121727521768026766623597717485349279906655539111741317395405884610501750661728979896277624343721275613303723116222924972978704743282577242476398714042044117523623309433301332800995592387699113964435641859145627925642020325444637165434739173161728961783720684889203260494499344653905947834666107354258666769244652027672833212973696110514771960588905681576748093639112365747849541064519080955618506081100711268688021863940806337561047685602980542636687556875319269009653691886642762121467785796764236921392297805694506397939552358436534837516302879233805818160867822228637581142302812159376587268501159848824171169930971918029413815028624095098737769433523634412488071441473961729151969614562325880888419221353482486556312359174846372517049552685169573036815245600254933314372786614698472486565909212003521791535721512037544432785319408995152894776808106191417187737338349466963856228169868032400048768955166549636731657914195942462499151024218858633190212949878431009363483808869701670336981861615564031283260975171473023762504020842093942516491911555786891241014488040073989955961061138764921271522571563764923959445910794469314954896872045220510614961877438799273247891237804012288948022299839469588968896239961392677324899724179428050496450080192429978128893983049887543181942356076749784497743479185299642493565521756406491239241565129393549910607319416334508325963013642794897158333184090784160689097735242036488199482987147349518002611550667869721144024604589748292786354978205801948297725473054244302778980990767442329946007754889910557211582729341304912570770327033323635158040049320390558078888007759894617382708615822283207694738409300449018869775555231150882173419778953412914462180376919022641480095991399656759783745628012426788339211926531992312640985586138346249656356246251656241326142756415539756452282719505082938297620218861763664074099289440074529539876687918362007582751734396959785792212473547197254870704473502682903463692118796047407648178301649824384712292912443948048500404652210686834841716734580017616071724368097463170442844124975514239253288179327374590006961254472032423499309574060634096728537951375734174329308841450196957373525559286836733978885141364152519656758097303048267403821486465923461090248876944758928293322140242177677757059861911604339464407650154379071886831208686301049372113371825791075547031640773363535839936962969845751836942266474457825246948353968874090377319616532091153910912016672198749586873216885957964151112999770703827595347268285008594944633487301396719064110701438870370629600697684541443316411325364359740577242123805322142768951927411007961121556656007656023213903978107544551223298353379569915785481786537034262266447158587438871134659980324550772433032594540922750137334065980628093999540069119378081256269739380501304424010890599604548373855569915082635074477764333085099291862428311708528148783733870308648906346406713409111707888647669549903105866925956509250390262824586618891251783389203136553864400894878818507582556418241381809794240701495934580454005106880093835051581087304395986270456579382053154390145394146852502127071529652211366267876600045569722376226947760776713680700711679550203269593014724353978724399829747050479665039393864897408483670954299530287015450853635054048522954901999215473017681190686032222669067493985800477434433581795408980533681819058000396636036438347625375562878611899797361009488883917475016978721013772386783353352759000741493207698167508663024393645671674178630124553977980777444435124337291191321718927215461701529161308395240153143132885456028882977070930876763219570370544178158105673632343248434459568747941560683675467088632344678938269459044350739458023705596529248090962470096992685544860886907609621371415909938269210928910892071739967880290295968864997466044383067217239662019985025209905009580346240038691598812326988714048449450546339367955582701822423259796686294529847505929255949878016820765085839288566002106224906838344822021545022433541561699559433554232863311724117442483913555975918755596944398001625773811802128457540909664473315278113401024073721156229205636422154744736071058521809278347990821732500314467864073318526302055216893177441706670331663764762316134773141133813049573655923835447749771741057185489410342569420202381266472293895308562312049457350281289181026904186259158283694497054970322896043245602303216529057684372450748887024471393890424445020442264722998955482311335124330518849187116236999342009630507755538200383679347310734065489366652765804115612289327277096917711041263985670467067448546767373184447201448308611845399877644974471048489367184990450351097166670121134079630690920285169507948083661115888514816247643664462702903153594946813767595936583439156650876771863972172668205405632043399687208139023278847938221208089546943013487346682831836067937079426270024931469135110743877734587826840079228586836432893124536611990782398609792993014792365742158245249428876347219206228314378595419342401300131738733910227107295849171567459415103838363081904885415392900594704922094088129430415573899388958639280989250932979862049240122120079460662311400086796116868130277759429331644487675532285357105934977398763882665578840465592874266413936060420530652332861962845610334779694779164886041787822268162173003460304629818362107139096769932323584923304841150320705529620412706796479046343801319994996170768026726494675888445081175063538263129746630692652758912163805983068322858198871847391553377599951100944241104611208095559650724941571813057277872468730405771501089981975640547610938242428088564121347658119420316940799056033694882166600376589045526580039351621757800088789259625895252729399079858273279379770196409111974699224031749699594958148436520545172162431098356544167276898889218554277357063419256099710865721027104537031861187708657876258025770601464712939146714118858554811132287481325087688232560842689399191491443661079684234015688526408877271972065259707394891114862030088057902861708537437670062211434024780428009887497769619823143408543683138704015812025940925996583456031964364122035495628437520632279173449333012699719624228072490385719145456778663017936544882456527398409635716034908669572664846659930777466443113430604598061490306056111034468732327701710367417094879133419755737970840545106237456985206014458288078702836254498639572029854497183550796794167247504640425876783425152213694570228621554082639411227007936231056771516940698795252206094570372208057007467786558530687869685296453243601557262882261193058004984240058645455435254804748988171450795671830341971107888877720707199634463872934444692742761936492424883168281400861373039698035527327498439494075053306313120418710804962275306264373174452441816768428607532344843994934332514535738132684846040359923649357411517455625990866099852760149716915874689707557020468213973380219826808919322043537473210660384433200066504676524999059656223687484708057589962049287217295303058090693676342442453702473328280909447228547070555216240268444087678098742330853729985547019950861439857461842496638130316904185883964198394242928259522732447860669850875615836413357067203720665666893055418310102033021902034187424606203965631423659905606226001715655897876540502204733062336969494479989489485922401547290656803804224115413868409888528995116893574817483219581298363757083615732165094712935998532732812223964167966769991635757558287688057877174270552656841492940565765804463229855627538719918002227321079295097017027568360892081764599568657516521778630032369978528963819165602445383799625810936100131490987217596607370253742366800667113054239050711001638966252160587260757094155611915902250598024680091031160951797203068078975858699922833343104119251175119388145342709253328891693804624215619829265587108000387150259502841643656906056628750221672409970181520383445067076342818354341778829514116190984067820088964983483987756026710668780063998591725358193886847076602010605780830423819615681107420962804493267541844546191405828297540673140097461992483778124986168480940709842912954054176937000975812416634154854767005413757249535045386287392852198582995901628448867727525475390253087449558676580886155817095874837841488518863668501043970032384141329718690590078903655096854316316084502542156642568474193088831013215522707555704482935133162225593796461300630075342046965396976720540664695035864412721629538414248705489849370356376401308474924626420289066572455806775684250771773930034118872869222451974850280359723611619098773136722290058275894166908850596825110135057567176835703085696836163104173067686898096064358231173705371953187646487983535218953778313782742373401466202125170438427309508423943118514379185051487747760438601716379672462843253745441891966797354548260566249768330216922852643677779092323893442770158020926811664045849595058069096140147396151646832361345362690465026992981291320464327498767969097471509845947249547602701703810349233116732423607968753451664831255575459082195379443768746073385337280575868257350256069945306296350969408360682484353281699701745528869054360497574767755157587349376848477152780975280737362323979483498717427585313165572828889903164204638819033312521600844936821470944444851840508319963630475052419184686476840170578766686595325845075898630972857673852582123956612427542929844393113211143587122235246855422030872872611969458571716564728806848530378702962702990219725629054103215666226696216672595807933241538483164776623180286747819597625607749896254854214024445941023167330617946300418231232130714767355996249356219015897289765023166554586194876077300090811300908142446901488140587528156442223727785000506335295083602799437591953047710948113461595845871434619114756371209575972154557950295846088203033593137686881550133624480294863803450952634509800628299533976050355657376960107215395017815282034820859811404613173416384081811534470122895338619672217500996538009896645847587891710944293815283533931581864866784744351134595975609873720937532064608126408871609332506291328842503377549634925398971081874201093890188539669031269425442908064000478874890832790841023785675667080867159063891913588872599834743288915737346917288571757520576751152410536633059527728889498097513287978391826079919509866346117166188811640728716806006047582180783760266603460803147523089405882584870394613973508858351530188288432424541426388897397061416342465221606337219728207853987015255898183703946786889826668709699835287987935848980154567350703685951722978181433356194373273190616082829586512379466643245064215922977076838854774728609680274811379188198423311678620473504738116904069701178330032835363908367632104416848515277833417772174253202569202426238901127986123063114767429502275517229075960040270093628359951657074655790799985488844539947988612145694248495131759489906977947619654115587552782991623134733401096897332732627224902770637566170117932230124050723868149055146575863076775592053108697405777644206078075191126622012747148260210645176835930499187572227921847204283620380193280596313272139426353910236746130422155183668699926230612425204879279138961211343578062505212310872559121485231898675335204910065727429337242526482918545684711213064839987951424028927555022253820454377430617705352538445857051798146574459703533135377761797071968792420090662711499436166713234104852358942223798831750432252033156298187233698376649948611935208327416467885303277567769804449510308268368649217205720883039553741637100144336219986956946263897862787738295349137303995004974039703394993930000932686581383372756218531111671026857171364793813084204618902745788684875595547844667198723093834385486196058473810445401970036870148043303666554714022303105917474416359801463044321389961507797845752961373190548728934464218328372200138656619466791210208156687371306626741122885457226512710527362803082874347622435334975764279332524114448204637996595905082514600364100499168865399011279040938904824841212071265303413146837757164549692240059091683695641276661963719803205029106038762866009141997955204833686329438164134007037712906651124208992761832091869493046392338033669383351238768595634912808349393792731110336951559415566960969414975222268354093955611954931589768473734595242110952346727261509487877586698039882556673010788618496748006725748859899645850081357780022087067640999567510438349221590536810154533298432669845782039779338183565118790676345057897651204832389439649126768727046316634185841346129681930726242770354399615452522950277638474617816123008351933825629861557141066047441492858535751079921326268738211083877532096414298135212881689991376138064279958129344765852562248395643591809193928296998758407663003674236102108660345102490649887229116392631414721018022780987415127399179433898418520596976130780035727309071944022689496044606538610807097941374724673770232260080695187642208215223449198701640197293953406344921001360746247498036669719475610838471376570092359872092994317307842333726304389695281154428718819659821954433791263595274786780001346338162211413307444784192067451159778670614728453733661939965433623893950659848059493070847690876223700500539290386003717502536714719694990451157099655691817106437122744745383446421408057631378554720560911898730600717624534466026999455064377098903193470317252367601961165630639753824010963547547933138341273037607155799426518976081368972047074836687171036042340960932215313812837071689715058330265209288074877406282565950750480140235890938484346203740114877028511482012368463352800842913996988402101864522484141513788969129224331975765240277795158294032605496744334391524824256170345561482584387976690820446957136255125581098448784170432465453811002004760321856577017169494131701434076311383376758761824209235216603909499316823914510094644205888649797200501751033250228665645665214517763101814336567018219127568910924168324297546094324625591376053130007495265116741360770516480648172468007779104122933159969753568191787424095077135441258132872165284297136932239288012946895501876893253831280383228188769464681724620973578497085068578150543500020007415666669030589466436280680049882786395510167103870931689906867304528526930740389776418105615309183430710574897960170187241363657044076444166506043062841418331577399790636512346884449510937811598401162475979035083805021445473279961223890166086378864193906694778013211499199551433129561605383412808153039727563972359894326582341068562224952890634790393223908520163800517202808275757035151433826907762110111091548907242953784904797332298197390258377133336108173376213745234066205667682367542130302459919672316393302914182634307226098135553271336122575951878659379078324501420089276521964244418729606097526194467028377063317238291758356977867483786454923796177489468929058746817027006878397942320144167797775905962604891099822939123298113869782890709650711378307912103486778796668151639147941770869540331682270715862430844057440315160526137062337966937465154660427390094669319213184132917774900944566264777118329026819815723426259331828361983629332852491816858421595171089466422176661908468808355309540672624844229186285298188889057271394405620597073365133309186964518262361774587652103658172385356047299701972969222673257739125135725935499470198325858515163702555523749899201897529601796872599343873046922868501976576851329777023153436504927833048385715176475650262619418346509975104461404690789807760185388678934580231813948050437098672696251368814206592932342484772606942606515892339290584054728418494156758972551288209269335811076250446816811696561918240338275772099854067254541959144123108484471417131346911204395157145131517582090767659697149058531962911820182476337826765319625387428784600877110454344384125959045997468647555086993610316292076985948551751057484374684221788271873000906425364511179803433485325650745939971177269885845413236842480804911639583693648608049581292487900612844796742478698352366391599619338479014406153908187432242430563042510334853312791969685153941292689879722868514353316022731110725862866204391809871850818649366627464524682584560704201415319243423237217810750422694853087308076880583860868487817681266687379449098975532841048346444592239018523825881200704977860507212578428081037832484018426338894985922193844224521228930664675772173666848873539815145362307186359035540279796184692035959618965789551952310591885455091569751914702984665912366150556542426999404591452414943023214164961755467925794411281170227570098247021687683888279228219588877588034306716810477462187766269216142640829548448409817650189043412464332385519657068490964325673850106298089540943538495184148184439283568288246449809036303561298396596908631898173839613237244870688233719742886821234401920093802056094254808179944372260678232584702365372374073165389700517839097231738440754215842602652040300310874324424958945952242351159780890855601879889678684371266875072848322042706561498367304793926732540414297896913574865910644200583249799923928267303936659453424840215725122824256039625358691870768206557181486446235990867633570224587656955106472938715600368301192541152502435172119781794350510356907928503272073589099953255422589316744365246816158092730896036773656496984576124001438175233528544656261160834680696658367059041401470842152618923265188301302430589119915404011205837716134809791597267348620014273204468263752818978565112792479244005222741250202619666623097089999169552874906102050635778615334577949229424414356428191949742191323042296741019567224142069494798164289152985278639664583715466446165495758894132632871803979149737869061948786872988881669877128098496555706326705370001130023656746854679396051213832795355157517831425604990134522921134015687295424672747100573800921724449767261551991406363996494045760797796550148692053238217513568084541832783911972637165748541524582587302981540471508595923042397102967398708006469315620644325710149852337782664420662859177342549292977102330548314907875276296473547923686814897788726711124832173436806081390661490061264168662248218717371492492122137624027068765646920097547809887858850931412640528086844732400048845541825000756409633322256996848364757104626462239190313074153444785041776641281783108512118622319783330164911353623325698902812045973022345417081946723772458748822178369311743847199698275411795675906418094910052951860109170388580374653598620628817085448374334935257420350373027856574397074228471539027692850107530801479965505727864831389481322009583013334356571513691795524963990396831950536676202343006183010649768811217779955811882337067111977132890131982026065842769340992707515291194515844549900551393682948468989469686635361100065033648870726386795638733838229585053044238377285089219269186893664630127531164399480609536877312768244999516643197327139169025696925224255995637068766827071399008339870967171410121349074988338111505574285495863858783783765232713079733647931716987341838682798065020502573749659930430546232784140382593338595761287164037045262926117985236223936933267136934282567623259727705165975954290226493274453902966695902573807235422199362224116559020775764699794997457383643308280409247127121072812975726855197721113634221553371309603008184088785232948112301177750019794592542538281026547887109650203082389486223947288686156530952479740165048329288243670644411696684840581899447043396925842818012468564528650047002503303650689048981201686284797233009539339976497438061261176751843833161320131313573143825840023209756209060483391827378588573661296665902086820095876995271727239103372933893368457338333995138130620309663642410008974632023096946313978953287901306125126046353753354493781482939483174719910745696069292498351574480150852623868598478648614176344946901484628547761717751570737038678690661644384155860739578270534779933982853716835646545694704943566747227395375839653507085327235143730472854923405700086381484792097266425053776296139738933464079150505651841183075799136068395258626858937685153279329512120960989518977432405799399388907812960247367866520726763895488098689371919763148401046014731786361439898268888850690818177057418179225565920880513371408987967964609272158508585396955034300465677159809762992129718005045156702062022242342312437572600396810148063404815165345588452773119400940519527877528878688280328570783235124659914618351276711305539040284740965911013784542754044247255387072028741109414849595352616561240340343080130999515069488440011952805755833845608817302931909114269825687508451523570954725923258377591970113165181557094340247560780923991018459521115630813439608316135053874628999135687168301135697254424889769322982469452027959786716494307119848051494067006764791200620143201881127024371991149313563456572257656826719285823234440849410028165938063300302441029269443204091875690165872242810464507794221754699584985760272498313145806732224790370453062713379775651175545147504980271506227470631273500606195557306365720047499100309373288430275105833451740037686469324421010152714099443778721797810851884706608631616673901602457645047130133807687733546290022898127283490849392308428216108143745767255558702714733134476871068774097472992428474480489136553573740903256163198949467129035909687361800904073021748014970011990089376624987269515045212629277184389219956802319454520193252111430388790044123309879759986214230737479861183570790602824648710419611987017833751552942233484874355078770960271092280074887176193548699661899469678944624923875696403962943246937484281587160847216301684705817146700905438353518639841188951538487045603005892209098884944150646719426293470905864937580928129002199139930626478575309429921666578126075724808036992898765598096217086890818714583661083866225204921469149010307443111128703040844096226567948581940536946637506368354067097796111554405371025994375862799670677448330891929800887600573031088517516586263294730513692844940349491518625659498795741155806689640497372932244787825653544309422474094475976720635179593229832330914235910489404619146100485064788173573805700259812759118990318497698515082831206037763908902380864016532000314622932663558711941784133619170075812730800377464138594346229900177531209261818359608080965835871179489168975520211513688592409335289304897935599119516339142695874818674606973000624844855491793461436349533749559731821022494821195893799693430825658126923524750077770376315069771924717010252953406182420669390520744136351821502422117913049838949926029215133903354753974253571702150773222950495333171129553942578940001933530643911318176973304845178527167711327158490426222070112050883056567353841660300271633497763124351862051775885387693744579156670804460964662559254404974085962034386795063949215735014175390540022348584743270842536312154981177331581196735707310206779700458157364319828683125442749256924478748669089154482779621256677851417635845268171625221500287911533042402279637005390624586982834872520813836468108151736051920427082802794556924794966817893894582723014683723992774518352249823634618554963607587748297256480214030272989176308342471716510181734791701219703543297737687412682404550052606061156240639571671110496210795867497578439002584345135554802377544215260498459151713074442021678704865633009344215576311948730549845523953120415552004840181717527043263732382209567972440656001298803574895258268365190002174140845758914080707659122472058885795718811519068856193206996288150317578246154051509472262066457944393520578820093702237781940674519831862805567880669339447888414013100558836088754664139323108141501950942479482551200043089657984747578511307950637745367264251491195700997296256536060387889025098829785001723750561292695970381986706051130980657544824072279559743142089136663426019534357785719337764728330129600453195228159925323746755668421644215918205600371415043112123251088816652482917700709544041356613410279850488951453539419798849974863960450112406969735900289336560483176853440885297537434866571982540366464128458283941483704033097731085665637368711260635693975594646788127380307017384587050086401724316085161616256623291152112731023716307146612836262394670701445600473449933658788935214625741167246825667496927916978430901237459034111030981716681887903289715296097263024215534987745231438684994035951018314655079245786851586359418017771161033086310924780721169478389357872975485632105118054676156273940357732963592806822838994944871981360360089169199214970766321533764595835166679331760422965938318336593948854867060999251004344464661846516789128612194313349028508094382395810941777336537330152319528113159888034475294432542801717438615389145980753319655662065348542838946954006043440199145673942112147247475368310423753503896270946029929790307851718907402643330467552730463893542764498372292037679294559208010608042940997384697150390555187413653457490429915143757536235982544311282888774424212348171372693432096590609598791982823575263730335962521056623317833153166288964217636452106644297578876083215224886792129572318730002487611775669256000062793400824539483729179339230217722404218279552682387986983913375442511211887666173742857547156538642292882695549395701992769120279869196420136820940501075126288918069849595439564783803760696863566948377332883076131635777262887522650398538180248207903208304566993890075282814408184257065762433798921463013166607432198517826253660098788859387148569269896590282608466781739180339656722578406588055504748779864549118974346205540126156624009880877254144608598001505446205607150161694974297702866231327781176952884961444071194059706524151336846980000207333998238702877929504327944974078341782888437680745903039519690828291934080159298071567768060948646829882929072842557234010042810853994977650762549649546505753143813660679383480691145494227759313150189711023771926371154628460934683061306778254849048586754079452487296417204277447825612325292302366628423625005357621582494069627796615918107185513757539232144266941126520781430615542032269140456447888617974320811150413966057503643475113371900389752892759349198648866017691274939835997004795598409685707599186662356707752304039204121360093602486040276785642045249912772724187689596720174349243688920399168459148059715704691254867685845240259735764323532841776421797797728594500179090319599209243381904952908397390046017691081095625503716854627559260807729104326339108526547834656618258617749576659944588335107082114138759990772182635764212343011715018155259599107417548035287314660491576451800782853153150997880066112762080573179945629208899801524839054037495851041312315243144164536882490570480796044881868455625291249384655139622047739765152737004007110124481874286344468867995898276670927198964868877279586352622624196266036011813186237680703403828619763243950478881815732484249062438720955218198076466581154792854087661024135001449622161205745402895613528778934577028863752465884767490374577379363885105740962821192094856268087740041376947239088676249663787510725279187454125455839324571623590724265305874271993961231097523740653271466494891548048287661172453113441888871799398103988194915201280812050831518588969520512843020327133151958730716811117764361851382868679507258792270447041943898815246136791764504808603529247999479887398587047717027629517219097573031187586019014423993633634683058422354328563611793709225931235536024596133372746041152190300459314576875481359115763831327932399811234468368020805019995777130369786232390529414143656405481347788095433667664536209450673193344261941997489341586597777078941706818225010490208222699253965581708289959820288555556395587519844141599982619307694473835265133791187259037114286597499647692243756380196470591545187837800163029045302294571324823123199648274818105162853460161220094395514763273495340093453276559269733788687783148029648585219118845794951908721850091175363246964444322930205991072063349332424345623024369086871050484375083253646589804782396934161765795608718764511028894351519231895714455686124308801432614296009343383163819901990689840034956680504771460823975991062246083733252550239078661144988018196754652322453037754377273915648151566037922322766667160086637832520700890118369319500427350819980832056355179474191763387585214335100078796981597566799062515989783108811583517432684019020569707888669299181288530876719066189128884939108216842390284592581858264402565979383583242514836543804599458829636827254186596389837495213304741672428636903948897370010704903880011644586240775995062222861045460144685150576120423815240576601623677633838766766522150077947982257515980006986471187048165133369791598172546218834705936202596744279895527118181772971021643945835843273158873263303826132954771221126007069040865018815149501167032776127511577864695488997247816531828761679487320709662491963666064888040831548618090395477395179408736282871789423479199566026679983999296397900075502580546993509150271343299455972558834710502530604603009097887633475872446067993018621420436972438434275830646188401374491793758782694176355194093540199839959023962438776202259891306240499144873432186093270139948521837412592867692435804843570546677680178003017891811150086089801319208544892525835399419445786846303956315908444191049096945751114838176116303298434654572748888966494749172251445688478025037925646722025363852210735923757408883177958432812732737749116027478013018406211904847817411657798031287430472037800960284598121482232271487980839742760066238178754469060024949619582971437835659026978455504384884029708231359540674638887703379795037048197865047801828648627962140074645684153644082848066526311921104511958726017609484915294729620574520136666820565418842916566940860615786870638092869947824648561562722546461167057126547704906037758051880727306112764966809779858359043944735625564277159712256719324731898049378519128445149572913356238330215440942644725614558189887521073898311696111023283169005978202567487423738568389647705742013931653989566551188585937889093327001489379900218481718652806394497432600486575835816570034109428258450250464032316867594891813097327500035211146356299125390203706938683959125815205945494198523331456322935677760608302449547177517353539990610311346493846327185111364727001210451137710810254281568249626698558678106792376104017272324636426773522572299808481364864216101278473500037170586277930646252547701363336755464092319707301623204216292660871005427821615232248786144745046406582330185573317535579413964238747103121250845738283343415309554067153757560267127027192192272687578842712694612149378444581621477844181421380534114915854980912038274462811024807778138871839035793217599493484929133226186150336959531432755077918043391088489947568818940157710102830036277091732468352672809665449647188605708313572506708005308104219211006648738922107438240563937342643938528089857038297416951430537425611145833426445096932944212462889383827688268420388835043881084170179352012677265335374851548888831439488872176489102363165761764196939269794426299784710926265027560487657504767514789042673060458692239589125366754466481836087658062903823209902562936001159277754081825800284983738002757572357752488205584186434824069152763343256733709103101317346761442098820289720606431480469455446770425977911202415509243634953260243698673393281411643143475362975132336421663814364903457803924340912850934549880777599805825931666374726588825731467749467234211234060711957200982635227082323741291979755180948227161253790563192227316457705615499037390948589727784212976177924860671514588617644659153728154308970792074880744885887922524541851077519997211351428879338277833886574030324893020566302382941318708057198910802381977210581500017877059745209672805139494643589598473501802900465849261410799866746500238518219340116337973460170520825043578118121294364975159773685730767301702272429339872221233814413397382733801272264418391605100284128127418258716022899762719333221833997719413729407622040783591682155510986572350706032321369421114746216411082319387138248759226907696591832835839703884170037033032341660880365076786189138739965475865013300839726855818228063785093588909858633712094522064177668356772447118490509115749987347663774855627392174349051500168589997834395635931096158100438014296375589562882275058146059128645497489678979686326798286273298550421412468753137530050607061472130386153495596444973001493648065432626682870651893879009540880398385140186091847152049398066940690193680879958908230284784134562304543083648264804687994514502075018284955308718696445686973561235526951056837429032499152935136393308669222311515872273525507840425987777105203264584313579285116789753550614044668376455949900051746723724112168676919630363070542613495431002938785050505282430969190333228670006050446573398296242110009247320211750623600599843477670655484685001430487218858924428345851405145337972400850159444821260053599559426837400085383826026682074660230672779611664492787903736308411388959157981101768730667744088830238079902262397051125318086339588601595470712206176938860772521449416606216430787594526850992313177690928304176577127545331341133723167972296332036327933516638192604318855734484795443133165908670284478729184358877722811373617351144872249428020974866348156384831909044708288199255057236204312854280874596647376147629376579050124295684931677600430426179905660795183075888037861086911324462351447770290593217769630323684004177753824905957434750314271865927792952667387202777067087989315199194072694429978330459259470002315409096429633286185367482341496197672483597381164961136957113990580924805046608758540435103775403793383207480982944825325849290204656879237849081958924448850736305176703669167485901596592523803126450667939153119939922516786282782119581516258835385913952494121137387154124645132128119340089165782425410294461709654964267919678293048745615542162284642720699992980093988082451943218286923743543484577216823886078164771465424618575857419414971823617273079482275026289310449119952685623119055088097799201492055717712682584645654954315837074500953606861699800004046228483029814473495606045872301453656257106405911303471505536461460467882302503394584839432973356758085218947594443516987967814086069683232441848660118470052231139172669054949043751040430807829748308718673223380513431916108634093174050511885418582417871084829163164901113711065500914264357925464095869405360935197205729085306931482110378154539547559629622129146065773270804104552600881723059225167069026915577605079091302882132289653081969580033617357347089362325923095825573988833717610480967065361507539788830828940755165726086265264217867266163427297674975414240150581965071311104418622132916582936858932912321142314155552930548333063138832636018270549737367232728726691369664186707955167009268067041060889683384783402366091603568457858904776358799378124912039849168468196761362260933103170732480106710739910859012162582746215051054565701346238413330284629761517394579642436999163039559853859045213925856904395778766070304096365630797062505775223745322181057356736648922705005682164490653188231605930094786426356186469805763781468050432769561522023401955677196698548497441765547102330019896185642937352899645152796820309582739633245083839621711854127297107332079807302335004834161681460277317752092057729755698385657392981975472016487171089949266948357693330610981827732123614586927835274824611859978478128765100892741052315370265757417896723957897475538655211635550835525862275433970206752075585742638204176318886618048773210475185406426664102817549631549837810525124843162756540252245537641262023952304835391495383815267412352627674051274269656497914760523779389048313002731536568125761663627284440149664397608858263672254025954811549260064990066637506209695185871958988002379066194053353738952950982789908368974036817691957210637895021965853697493226992731135235011708203209779350493644410264527235911687674194579681208165873441422419693981504260007830721061819358122112020633909415421920576736080384665731714994820738003356128123044124539590820523953050444215640755072169148196595902202874847275011462678958425983907360358788510764933381926062126274753409445915456657403532356088471687286625016948320340602606199546440119708600773238944249877503286167130983370402317839932319701690803106520001734986281842225663284586943946614603990455424491039191951367642347445767116158101082090171824951841513309911041756303722108824103996947980945396682515724267577017159439611010309915717365180856723258084167398038514215339087309694365653138119749653412450429924380629065489578190070516944730092119029942783198937756201919930248812529217222890379129261873958380373976387973070730502617615290545524762237427809777592225465843791373204846664981195395617842698596850143589012356745113703930309954527462002805267440095076385370385834274040107581680250182237460128271716545024056415003909248629770898091124855414979280452675516548394598947683065370155594640157430048065434764978019271519162010735103214191585670357527456447793702505427508265694853082179113035256449638546279289348608012686402181866998233864574024394933761112474582720225340292949101364621540864615200378299109405056916494706147777749227964749928638885570559533090734816427914165445951041163683627893835354210027567713863138620590758554169972246880120116470210933501331238730459676023556916759255989386182503970249429801141432610750534298347689162426129504510329785732919548843724112793783213115087305359549195032543420528857510639670501513675343972561861083878108382473226411479070724808048728572053241067300637683868505276473222346030097533425106148557650951958409036700177206160583020259406522172338701174141383581538550086865981794638625498793069015379874993443347136652997738880431379624792284514480478004193312194803736092886856322022462566903796851249490025347080480786284446600983798916533110278631495020108630411330772868993745481018236686904428096659673421080216676686811737085983410143696098760887100691093188775421696194635858569346722635766210292211257479254871502537052879244960078614059580763922570862220190660113981421837278552815245730279191155758367799255332449342530007211232744621842236475276873782341680945114512673631263804282535337489066743406617173169845194468172622224940381211483412721010209190216784969746399592562643139066653882919689247311507659863649544270968003325076251575682005068215209194364629238198689337939281458502971202223223680366481188355940890813035358835870607612482305010726795796981125764957444712533846042062537954912789868704961785271979887004433866993084774578683932421462755548553264042250866959488086211917428428498726399647965340939315501280538006211360525812717014713819641844567044413583732801762209741945136065151281378077260630702174343182737503917480741619440391551625993674556922758557461339483201424487580031558525360764054890882889230284549233245570583604049768443178280267144104718456454153551025483259827444427681380376615725106130458128593630555778866315467046309553828782761329663892803754756019868939062429114160560788699393680435619832979828948587518129268680266280653302862655797897601438881723523247396435242726065391251564520966641102401783308767589990394411487196738140308701653851942056865377671820110236226839725169785641835202226707190484424360495445986105171563280633957144170120574087160668837855699655551434122575889294397738015959248563646279874810317106807463777950153441257880792819215396102042023017551488899817015561665901062641912469059617524238224777496656597649469903776784635212799235370280676359203714961396538435739605494376537119903766490613981942160195438560959150692446677842400937851492145805345470587445761821280738022167691964837422474540497301344337191838844493644321097818065198721147427217919261330509687874296901357895236588130324755645457325654481337840933433306335239685751356346487703486662067099674152504025221883460682451278347195747048382670858629059818241401708165095166209629654105172059383603439701576458825936288652685396897422352791512131952437891317489830593641296405719875413848388679553005031714004003789005800488672659090887106630880283277505963990348001124764658234496933384726336191104635879843730331286224468648957082208602088178319720475858245248677126005212478937644504340208766643035902964486671081484941671730774134989368572154396037376665311403958077771611560819286675810309596264273799387253311458795344207171020444530363404863522655039221982839805479449627350006595419606414194572865918874880986430887770045229075918102852164525916971085777538049771026764510972111550696297185052978097733494463396489968570880880466841953819141761206322606008811638281169027435133351288144986047422175592120222137525450555562285395834779175140450349882120864136051286823772199194401941115086873788641234657873808644215840248459627340521968780882512657071164215752750445300162269259945698141619653377858264610975851213338630184577127520769123808539432052634095062865210354086846692461505564360890846191022367202089825111721155074060478578781270695217422144105365136385976979597364150155572223570618466017925340557611722078598844523047257873553503072406776982699778782041627843720461838197275805529519439628055181465030593026571349685609750733883743646605582480847928351812547501094986284683426542585510291738531364072252729288257399484976447491401383094548083073808075896228073799612087694969970850596361103000304690097625650240308978337054932030401863779146937314366980979335135788794976413222460781923572329943398268560286316737218408065730856348423213765476115525289601056001850893822107369193023898378888131804350893621123757601718747012001127135662081345093063619579193283724519982796817229831386927868555936751870348865761738261445486895383996872390784052644451282930695802454740325777068661960055287156612490360746973807341609414353865631997922199878499557119788648340908900622442596596773240620712564674652747938381180381291928660460133781631049936717391982956962925753974539913092717750319726453432239101646640169094622628297642748724207415034233708399287898926603743510445556372669089013287767407732226555726377226631370955960476019508242796861487718230930526002267504794956027191415511218591628039381012334201902935689197642072498933955252536942490258209331664971619482286340780387864903218383961368702654286968772769813232318501993901359582619452218813918044527175637370346617367986671269578630824730192564012451811903923489763541803681098877748474676719327592277153122602559632406793764817957236387299233685938892511291144087166982528203097842945791658828171994958407858467671803372730350641286495520439725042781292809130974611477571172856496819485347245686446630426736330368128807749100168492523499604243269281510403432131658679112118258064392522762023064326284094829570723232146994698904491466927364113375538272838628969806372881388428772090333728048666079630346126697677268885717115167589028746410040499109174084729487927013744361825977718627937372331094325844661943446365078735079132258449130540178619695540280459065774372318045505138504900275492962572004195576776671857293432405626786637507318224981080052782830038824348226806350372541150210871604220735421890792993214177786331415497435725518687985569364570077480655365815256916130761891849628217759657243207093508162449170956650423612829107776686613025902486823296274742944029400193419107994640913586560840260090334826611401434478081914046266205937938538899749017031395749592845145838740134710734206598099053692398598705495607544093566492666881396377937571553493306966735214193293146852627160918933468880109117504170541304397769905599285991434852043498724714753496195715588799937396903275494179304757868738475286101950411038157882191448914225274570654852872949957380007311040203957903460211938489929874310344423282745766945893378406800068313651806956236135725511770621909620928216280757148401590253244730258952638156024421323607171347195180839258218957842695369876257159358201471176354025256405469148325796188298277904829862905967433549693280679014101733398274664042347150710891025412465898101013469306299636627962166614871454270908651497799669658717894765467966035465925031177309620059487888490385928714797703522488998060149658151447309887398796339237703494170140778840749460419459325683081256005857123733270726610860967525720020180299964461207232114510033631457456653486747005961845731278325613368127640735321846582505131839797204101510749403857993892923733782714737609806590873036767891858221441663674423969165665470327321968363372503701070102797031177117395445930218625692380940039858641239887917840582857566948224373019736502360300899507630324366861838393572526888470848810543333166800931476252219954186558561701981927728790170756234922019317941433933685137795669470997732379505298815466550923357057261161459548752830263402475477869340112749747731475496175567045323312092901700783346461661723478890385702170495199326408421565327145697979539946447390965220138951095578931471920617598146732699842672985376034814113636776605699577047601393404387699694240100173133883394448002988338685778338605685790676061433568815956996898492549850618376218561649760923592855898982133988447356234314150197509178257979925142589734139464224334457914591274761520682590119505623332717447122562868688408581015699506581042081847540269394732135546170755814814153944941313376439561941404466758701621492959248225883799002055497147554550170791403667674298376655945132914611342747311400818413296463601752525242566262045939185449640320962948684196425274416671366757296375186166772988855154110343178852177697382606904081256378666749626010714252105198329762754148400808337668895161936522370748906670127141583328970017230395207440086928941561160619125275737099068899277403238775837040041933505384828068586718495576050404532704200399688271960450845770421504652791754743839787540176135669394812992459222139761203763751305319284458029323615075504418019784626663265699981340918763023112343519416793482336666656776050821503478630693318921571600562802374903016526641517647189914098681569517529647920999712776481001471569101465300154942272237832834728721629233926126622631908922034776248887439633198292968569788192006917870547953558222109848493491676872085487970660641223485229656643462491943285383795716061543339075270308997590775080502071388990598581082113819628097465455707385799492259570290667243863500103290164490794098648103684129164614103780219788629023436440009434464960771456881334522965464105706942171379854622322750769918049058364939174220778189406465626881398538040055355281178526330957802906399930888626763671239190775399676413124252942016174948356991013740268255312710424469051868621597257179523090140116750429826130543558752030424853059880247063243813299565201740353760632141547042527945284605438012277752292959481583220576192388864845787555731896992176299104850196570159694419758598039359884876867487958758003647905699232536648652367226352301800580306711735622295916812256218843438732432472108192899731561296791378322403711586849603356710900664819608266663488492331308163007060283816884329572197210297250307633866113436699385769362097341299433144244052179196644425779464456253012063633860523928145589168082128686216010796243161760564208393265707665810179594697361931706180330911703160538536873334240223703834868971514830976442522863957714021589801031520953601321735293609418366614887579972488998072093190147767790084545808905133193365833289645701230247813494718646726471677996371861537965784221329856648522522831500947778089862817948590612803860463154841872705983712537836434074748276079906069382259295434078529430305243502572674714567619561090380969418833774934426555400311525278967541222345723016238977737873979815669983365622173057602792209982470696179049710010148965651529515268301983008534633368541737172513018050365590398788665872898940339561411314516542536478493284690298499558726448757255517669471773945821084818647541551186855774289200436109636195720036441144665247332716892044987995009134812189487505800729029029318995907339577154211473476626603067537273211097934200336827342183435920909635872541764044431281752018636243726344358125487322384285705585829507574143553475585840099303274991882271307596355606983365871754770191184107909720309562067566223137020940188192358472904956028586247897288335712629085445832415711227646094886619592665618094696720933458359505174808824805417005867243994716681388121819800088251525097464438219269819432656024227763499507832403094892665088306710871258455359713728329625549436868335291890729211610139511332186162716921007926954869087369962935355278387355480787654013286718236105558649457241148360567116608258668829371437919249304391943532755817017114090729852655197788071094469378564568431429785259165958602872285612485223893420640518553985698745150036791683085808952580183306921296473962224814514891338940520043998848208531008507814966882613389747329306183189013982832896311197986852024016770996731071130288991443866107759619744211158205027937227621938631232124710147627175286028078485867662128114628004856637743055041614141764511204389711328690698855601280094729424874341345111663155886264546188955070904058108269442148564390665485244409292999377347847593858851392999393527271812879909270036306032636354224735737770635224984917263592859677076570715384770528312029567933056539318340361890702089860432610937678729690664452779369504003486738846730258423110106878991380353522139872261156771156592586171952741588738416667838813116281002582843143265187149805097833898887085037963481402855014413092067620552015890004508222703263944059272591964054642313024642721681819746492923312019667585228336174346382293926440608413714285902636562826772242308222237234996833922370140721314231484568301833989968910522166942117078730407089310832287630127072663262255248980465652885488369536944642050711444870107502629284878179730054189267779856671123489765954970463979177603386040177182850272655633957006012005133315056941076501212244028963527885957760070922143212574498047590723221916601859856696625663315402291646970567629753732815854082318536493793268931457704853415877378035135927479731444592659681685859067592994962261944009484452319830035442397023927571520537868960815287108344330429656384181073905550696588856875140429244571468625298336172866249956811218005114110573847445728885061007105616555660499406530342186587833117149241640666931334979133660384226354007343892008579838313236159916963085094640703222362344576956710298595379070071790855236360451395894968074485425463807964997637995756188404722614011238911263909436146409548182398058771732854743058106850081551514692541472023505330869341579637214067846196794952927597597854480022509054924993976408035045949106514851361834178362648182367208199926378755494666875132377027854522700071477333768452535839612135347959942387691404847623962707425148699543450338837117659963208637596156783767760951652786767573748280986066833601048805443946055468894072520692072717713074311031124318958201457171409395078806932052916814334010212040231293345260918755788520501793879546333603852329070648498012337715904306502189562082354068654109253151479833533651448815189912534405392206072787506405673395917429160683987973238867166011787552201779503460178765688593458636878986825932001769459664123415669722406481801103482049400488844681220896928899636108163637155011866966758792027623090681305563687508913045624248860004273255395449181967332943782144772255185360891127352105490855271132215423130028017719762197161428029045034373632836641536342221004770102230632055039716640987651114562900446916149134187391330390908940472100935358519645857842557653059736518801510827268765039469378553451236093326259934261208097071565909004175489832570978862162881832979823563965597594249004201767393495066136774449288392068462109842634551373026516249615633734284963929650181776486462987277511520870836428394593247505289324347124662312235816144389706615015721012631498063062879036680885302630342731121974325376634360108056269039838024283038856984819500531307045076322139522558596547386354892211711676760891003308100442375292393588574248257003010390616019974940902843142729910331418962316266762708568520176954320797778704414250142811291866434833377404907446542048083283552040161528698803581294154262075588776880838135943197233686298445662628179041274788028357447540734907091224485204519324123520176043799927813450903496442993185295007099204702531557304775667597192571251223882718060219089516362050890668026336624939879398776683434422989981696293769597431771217944658579486504254473620701630926128460369774449910759509490963884614239899519771999018978750610384309255790525890578423827854145326989063694067543772847386909925967342096121322987302267770625893811524225689151730395440165271502610048763342450442442163701795499253456037827481750912833617443328241694895801677202282630221385966701904630253782409930604659597910670531331058212439421023621099180905548107928414903962061127135452343052909773583041444145667881006378265561321361159368091369382155832153690847174661165778788485145113254180837713294589142207830854417594000482176147932789156246656539756230686500965790747643716552306954238367783008260363369555467162068178114871069476367150134911694196170325711003363168845307669379427332304885757146373532915085881772785882764056524253795844696156373592980965831878751628247805900711188640802520717170932917557032463180659315560987738183456404270252962187584933351138608408157865788535810897842857200831232355510331850346629602080005623341466709222557637177910003132163486437724474195368820119700832985546154223170492169155822954036006213684432372811035906004740703517533114027829551370894891777729927762357544706297280171715308786698661957444787357800935138529557372201632967585331448472966125604640563343254323693397750049991333955652669598686284484805222367471897500884924854158936659395730847300280349294179719185376812963506455369849073880278800463562986254109211858451974098381571627950742087920854796085160476946241012625568115796036923707283076518754773251630475685925579533856880257539633165800995608103385108342800804500224845477517412147644160991487992855857634552879240192650072229305288193059147458489737608322270507154135115257966846537830368438423508401790203997771782549118504598843997033963819551002129047754315589278582730578301712046898715701983546216601133984731232058183949211275204196805944256836995646778605940052045666118758250656485773083186797830438401430110241452529602494109592351597434811257628065679634276874325930088578454736662906557030007988984385639983072164858511252619111374726659777007316821332330542723867499088890064518621524643323450535446390272716917825832518014275048738571105894593310578265454183192563712074691028815667053737670298379821064522933802857629297172798495640835733019749862642283555692326930925926493818898539980718054852065069460848945167731182928873083403139381713306055466757625915180770161668555613328964791607930437090688666649900689817806531017714532850351948939456206450534361236405330416724670756317884343295983193273276489267827852116804957684298459039416475285324021485989691966069113307992790768996877986820482684838629729264634998917352249975574899054528244320946237814286723364414867995021186111768874299905168854780765357872068903488185430455756613057681747701422557169065398598754594639018208389611038291903202773315998863156764632957587532213445578298745323585884344008973502316226216275346115375347115446612832690288900377618494169533216204332670571896027017351419588393459028947277255825248934999164134777749129337643639458636950938349577548508514638363891209485191107074971550939955901253704918394682346590223289172114023444077447902290222008090342108813360024754436817941184430142640130477939869544252679822484206134764048358940770807345805594268747355372529469089706680875831393303332127775716366744896802994859056176329970324807994782411706902681319866230143778170465599143264117766720861656007556039044357563473602695320595663312005270936245142604046978858282718035985853604866872145109807281561740480311760746745621773215646885982378387827059509837630025725970682792788811970701070926479964782780374605593006925791393438471515873829172315047216747248775537701620092979202534674133654796812335941670194309405476143802311701066202467044555381411070656516927380495833943330588630203582711058657826004501045057447107310144119397854204716425035503218133315496116485439123532899352592279457156538305631549225817908934843096089426164106662822335538571764018572872641173880234172049795473743957108076163403939458188379961350538174983085888085770158387822174229548832475404070667700118025909419815760382563785122694354634340550202613383204387725602939993530401613510925938228695935354793668004937403068411354376372288421919286339717866290405078622774841116429641542250190271553631130641541480398401622027819867691664693226052848908458241622500421537932150980624172563166005524820252070458337479211710006231376178951850271490031110927428968340808342582247047088222393316748655100701620271024714166438598043708923345000946909526739569081752682889282239530207550298831460992531747151162413790343805953858054292598001483084007990683238860548847208990153092874397883787308095677636728504811110521739280053715119951360823398095779259761391265559618671650780922291378805239815659852302609634326801057656694475233793604659443154239890604214077782270356783707585105871266314454358480119636852263660822213705333917137449857889272803934957031010049862585764171880810190048125784864646947054662550821525031185513317465821686267672688651440423941471318518271124570029314533382398984965514903651431947929673099491251386840738256583063343730977056076408166584226520511380995537640365678147286523053281402717657338503619561942252069298230196931655272760824807637284152162351185527857049874366790524387115859966718673178000029273559405815999234399059273101527548117084835826098540475569588178859321588216028636759294946814062569800507151135708311879149280527516683418638236303016554615737972383915611376954880635843207320842773183134959104346963862482328463967687104913303251670518973354839612959850704776752868075244601251378661939760271337280392160345567510360068338364458117097829401712555026589982539341568834868752306413466237111834534748476880408126271498698794388623841726512294336149820895881458461108183556121912873742845203084968912962947832540009916022675538189881615479643027059059822932521589259228519298905448991527526269205067700493698842922714503363041812904539155765217771032919085244579616488257854520367850807179381937283752485292539127964359060729713877472812367541120943899618657536439862736355489207696466612256291895090252404626212150426721742251457005065146088519206608317560829914477348920517078891774319509564701579066170203523632702066357656760881565621321246429880361450152245910814209521064159951864160893646704466596581476686935874310759575132722996430226744416148359164750155563554924829620780300966458831833771063170746564135570316846825489596001775973432180787331098692085252954096698943448702314862134409874549232776345220625158236929076525384508899075626309967169761209370522610698532261407678939620631970924394032705648120426220605687704914862477714172743813713119838962111967621052371655272474779470611017821956663768753600133709135813072818818742615485626198529005019594292763819142414487095620887443186160915707083145210784056463418730284699619862435379892687721968505246233756568656677387478362169589103770876501315577432328849034698761118824560549277599450232519213942104894834659220645534155906988182970101827754087417235734758507358406019343394446702095020449508232772961786404487947439113654233972240503884952606636012042209550681591658225529848092535619043006702290752748074559642796793013191970500093823250715415325925094571942093513390253973422841826474560278855648895211798543025083676228338449490729191940595251900312381094349819561565001253265049883268398721208889932520645298900668156799675074469386528306949453468065905802231167365051015798928689312997852313505478418204604934070715702230933010311367102375609588310796949100003365217171408858153367047580682550491931519460299463275365878294638287960151107925111923876951283356747562768543428956633422438860762191227277455871317518504160097857498568650915793311093230967661189011251826610521440566123808349595083197037184813026061294928397708774108920277822826612545713528683372886896135277108127953256181403782511420065586177479818185279672250719249078916849867053592556851661632522431630899768517485536150185158579764227659477886305251448007198513730536026138573549470460005556253709564347103929350584043434642386071817417674810252496015475669184555336741311037052507084184550109115190456071030320899481446861485996985993077735503823882645716705738968115919556599418205931558305131948661834058165407553726524298548304385537069284706740335111693935314853962524827390893564665137118837602856078053836342787589834044065002603582915176087360958537362758852120114384975376232073574318047344898410541900451236349646488856060614248645337187081409475579272623237817229383500386026881719928927305750577709131052859118913440073809414077393016964866085016133265784819797168212949791526625148731265713403393493285971880601497558934809865347558589016565538765060158922876497414185568184405335759277664957011850817409750507255978882478649069429350817831700776042789738738014359804239249855784694461840332818727493365516270948378583349669756097710543036398053719698643794690567223673452485485503753296630387343032733917499676474575609486842593486246740410417171537254801223653091300229504086529342326170424916086475837701433094913241298819079993749382173456373095448699066775344652214219708757816855270935498126233104063660279339621921174893171378203880011574879422665876561184856864224957124132118121392598008387745168176535501916956691665807453098252037899644699989893195390298366021725061697252934598311228405548979992038019859797435032067021653725087935799361362118189899976279004254691958460766177038685431445119437107574583641515010507020230456116052860989781669257677883461088838023331928711922614519370737388162664688967919333395940930958421077317459081493092777875021104678988367682756354572396186898674671205315276461234571131800907255584409394013920848630532036914422860165049689886680209568593086917389647433034837845688006525054291860894793523614503309551665514162242797498495807632299968226766060808500201115580773355596930433594083834238940630297693226083059312283552253481711347037572000411517015777802432560258257763628693401040776733871570982660119003744580479143109498922104185081438418501213380219514328890679268027415663270317454077233270866798774464605121781779116338376969084776807337417463874201810303627508044468311899465290971667330796756221175190811231092933742136775407157066877637341917499077136061370429750093337786535361129535261241744911523031684270606744798297781289893321252359783104413043863558395783777940759484380932655520583072120602273320880377356040738275753858935336179991779668030480298669999549024666064500268897346446697924222562550012054597226249780614596135518539765692472132210032691568186080223043520591371230018259493282939866968999142030114666698280755937070145162450218283589344894395312249207050540171446577745774323563490482619588505558854092713046308051301438485266604359062589644363884171852421450327653580049711425357497379321426914309337872296701225513092359116946621017747640081784413018900779365627206468800132011907206024910414951449335587167377489899976047160997548414252473035067567210077468570430745323959618710976729328726627748208965082649696192868230837615225270124692173602669208729834112707684171822253258226421577995745021187969440747729949629284954705693136238608047864312407174281061415761638561596803696331806060275948667598758474653356121231357466963708186881103815395109335720297270310084243449834571414450169450643336893848156123902899659639173028279567823128025895247378231724728860247805974509461138617844424326983123675633071643757050413326902587865513151455559751907947043277537242270895729931508216887396965724888719656804347770294818633855447511654483002527925241540297182988881665824816286085373040589222274182905864768969954326843548108178508860658259438578184474587677486236931569458055053823413569486126210367968389738389340138398019628770377251963512598387588391274975555254379774691634895568480783490007077898569422974105714183789039265825384702599817666877765984645629836547452295381788832745111329729977003550034302386046109732847767848461728323046577727314176807121728962390621312445547475466547462066756574541999210284041435870302846039214458929769896170356421029252444473876122872468871053448652977212193259365384265915708327009837782911404675611331878841422579987305816475934848510524172959276376888246732511425287900585001410790375474921981767592531562676227556729356681201779154318079909940839982495698500961860949758217067976168887256422115078466188706276620629637870375924521061731536137377379423204052465789971978814853316439666504947712810123000064756330545060975259555750280049577112437828089039843851081333019509943228140343855128538622134818423484998995220783132266603814287653502199931901386140207536088425503504882729653514534813183397940577740527377446839027649760112160395733143100207303629919851008730696462038167897219268560526446026110492587460267655680447974015384493659028380128916793941067820844886713063725371267730058754369285254677913993527613902422623340762795736282616606225177034412724843076725209690236396171826727781254023968436624017266078371254232227563404051379732632439531395120082966925776290498492592234066838182301540482495513582051379309251607659277191305663050589691598712621113508083130006368222757308865833641362676637975438089991833061561678553178662771618223313939462402876641061228342558187833282175816560854659988591786151960348520187246180741954830702055031411646605717524149203662215577874581565630180164934253437843768292248711912155476959455307901050124276140857239028677965436953937658319123492312305792690850657486001061170435175729001759291560793071337575405382110889236828700824419906931940665310988335520512614075636191684532923183437804284620608026132835728821392084887160325199752096418469004299731880632356841497645298113307533816536298015744892802836840161301472355575534479721619216127195440693840319507346972500610100265909130131441197445553172896810092639306020754033264452768164071173824052662244058342825298085945637284507312759590180732497272081492579242297176532937657320377341549361340772024870047788859330188719446402779619597409575740412003874592118230896295138125676433261208926936143924482348873602664456849449364622032200862552255493353677457721256100385958972287648684126810193042652215617190324957939133763093546703666698135496325873520026218146683864769231210328333122813399990672403145652425691141440824388058137816812314627779910924127278197508712983318960210909931357898141689901366705808225829385717196823612594855506124515699494836163271670841108998018397591373631180906779909624652253341747469005214193895731484400007184848758066683989031643533572976126640261941010414708356300286570173492732266204293791723408312274026814548603047375893347811066561291023097018463828732993390809044946385262710067138646404625670289543276874776910069212910512905307689745753112421159210601647084518249315136689893421419144872483441978478320634197586825355499696726462277715425376786668660741764556640136957096543869810900630743345322512561611936824035687448975071960045000171794060828510025400292413433187440904607789983791864193666461118117349054256151785763705006949287731550496982984051780312747197329228797014522173644252517363379877876564715375199770605964448903160006993783669714095329224797390325538798210882864692756672692927783761024655735222998423779363108048750146740340714341017419854101815867784160277328259887555779651407995507435994914140075951062752419136566977869947694966609125966387197738502941401609573537343771729481532154271047167948448877577416641718186723638872404371103725679561585282634600967555626022648494631617159043280282190716777846149054495066830318446715056489681533803133422100881199919503121684049573652417631193427098255182104108913181717248618144245156398827524321529125366610283402222080583778416773056540264860861467751539675285425728818969616710205580493175836226428342798545882835739272489620130161512819907418042180460651900081031846833050829231973080258283848272341763661807578414403609907015693463418173547216493142671001492869463666504076014046689035556884356463812610452737362340386605394942349587087740102496415898650052695504002163268789627272179675207148499627703480522698808659376521614551585242057503135565683330262582935317450902964023149604348933689857119412614268348362757491455486703290288800932802473278015931486170362015403276550578715425320715690473644485899694481978440282706830647980518502480913282435061763406259355858960994591284658388806361993849046459282824844332059526360893413900168943052690520755289877580545957212162682127979850360723155874214347784515259676628750785555379290023143053802895072771634986130271980863215164370889069137333197920414357721993969564772989102462793558201683308018270744775110130080523164090346313358049540416375494943793593853249734315952536740944275985697967781895570805293778759673711650330021432227682609503486226155769451433109942792563784727542224499517927445873898855666506458826924902401178417359085824133369913938655084119135356535855886752682535515203211158880834811563246369828636200015913231010008518332546740674314178651550679760548495304573275053267869194308767551331257328431357256002134059271329167230240131559064906993845477156741426467130152499645310963400520617179013122354533600603747571998809388555113465424229736382257026665789925650540504967971988190031633677844736917914059715034855220375974709375283968565954932617108027581877822379254057532444401850102557856009761681546175379377299833794968845606537375650306213236668679000055828957997866103949154849792389387683148791732301354195733543525408571929181843027649557222653368253118038249202346039983236037846576482161552976291809066663294340497239556602543492087371111991861645072747552534632908149431360618707079436861175761540673999082082906342464406305997637595059248352507918471192344148731996704641734277620847890728706080204154794782310073676054103172616215322113737983463936121555888025415312038972704776890151234227182948942684559999440869934392720816763393652374727947384078690123988994370077582697179037767371416419058901502379112283552119013891915541381717433814232986724107229739987491268654588075023647710949392662356095661542093880137938166362976593581473396862436961501639874279446522648670134407793184785069621979366513227723340907357245817067097539970734629243258093731950907845686083332115405145398351187452706658681767923986748621547302054417225954696728674401857316528224778131270794697629663788238503572956548500224489636524641365833827889497139806887084835566188722373609361271528361238036458939963123493935386180933235916710199559421793497955824144828895314949650194873269750126743311457236609613341230461669739585217265774349664342192468531689702462394193987811539900822520422567066861201231046569844463699404433765400179158190565843504050907296787438384129717099363192989181039851785091362290855548633726424303625292403533611573363411377374966528747441344840187940698718217385514871181434588885054775954550071948512980468338350956392408750094610977133093284661265332653443232635390209136391621070577672403526328342811342151501990812217447306080855652500699864690922316297178581971605912538315655795943529235099278434486172132109574265895615378991773890491509585678915394121134787501037640940699736572655666764455826170074183603089542948099694991280102158048206396604887378883829037900232965291806037087622150934745206710369967415814164980083912447866220971875284273622966738863199533719214897770093074860570421272035789786123663440333744924565336143760928654829586751935231593554680363792046904265013904951040348384891048198968814734003474662536167744428487478998535894445010011905696077862704300370030876409301084077132767787946295277331223951352542054989380037221715808540312949401131010525201863521729693977708548276036575794958269372471876429083638260642077356951947905328345565702428602291610652238529032583366496272986544840105950260683142416646314040811704793241326380817493394584106042018226661534110859993145977944408940133635130390572136254832140510031064251914113978159759210096123356149173324283168610812840321232016794615238144380269122003354947218606011735451571777928151448435323777833822395114587014434772540314700525420187134779934648406271181263372350129787120975797923873641502543321285227304934716373952357634023342538967008301963046688123332226501865245306403649637369272323779399643335200347662110471872989739768845702666426168359549801875831219752897120266199129112810200307558095313544404620127244331050750289208922877268403839393055059342742504877276626973263939919783379956309481400238388926941005981613306528508799157423792247171919591134919181979870163214936753359813740529976969133877904070290410449960725207068673996978745386048913258065450959377753192605130618734190677888666350604477300051826241960003712154572405845437405640388203101356045810050890469299680711995286644811691940440173325385268827305095464560268568145429285124994603364467069897189516285212739912719692989228763767709840459018055185817598307506492260133774038946360559462735662544140229795692891265695742720809864138266616703028064266537215305775400258391305301763368958795951058013396496271202112862595383348186631790813247386641846028146276241266177636908002753367817042969131129889001916418305955245285089623758821291382168245963341279859016779822968972428635328012924211435027175958072403875654161163082237756647892182277541442826758627018084180547065083820895939867999406620203721382307945320227501890231418216110065575215910460689122919307664959232657776496179110177117458191460857672147282621752544491583816305765485983613829632547316747374928744770265820731847093309494196628123574563181773214588582598306723896279033104169570037029632481707723848946103405317968646698644579762346395714211680252469692299635307562928853516629697669734463368279444557291958114699621851708810654969095069327272309189549936484877956001003192354918439903608703795101184909151756055125478137611448324647498658966779534807339248412903197511938219264852187776846224033848406919438773205029428336106349935492144683690154315265295707550276109045334839108280149523878498598939870414901505196375004258505677395232258811808544215136061028392480964638662070950090709725403327302452756411873224776678970863625138318812399402969120489497233717625789878403367925184885829439807236422973556318257818186969290586976404768889998708407252122492992788251809491719813060306735472964773432896430469868113053505089803396856483583203818374292553614019624128010967538040204689921553435889686056720932755374219657277317209841991436236706008986501074976705667443062122292216575867856678975168054705856375677491913235370047965944481794686805898724996031678877959742075493023458323446064641493972809489548704216690750315836620773919994912293708920645796866311656666018109794025676300964107530707072040350593815742758250679261204077001109092213664125195261006810881099244090236094203357992952703134190436037712921621379308942456133482869008380746901246588921829223433125985432465455098486224403713186687952571879077377634369511883944196102054629787087505460876332072954436654939639118219818627930415385958744785345916591798125612241200524162255040918163461218740966624529574684598228954171767975064649954608493541050260178480631629348317987572592172006724641966388156861522983082795258154174892360761858383066554331502639285606690422527933998427943906171757836649249882942346417764485277703336806091646368383013612923661509072501911756067721417604777512437034659393169693087950937137428269994780143865044791314101157634790472066038289192056492171401392924552086405917609636717708037507833150831217239596644461695409223560693006566486036494814350554441317407173843603557778951931578338410091588259271169804738722291672104060638790705369400194380568164703771792271355719942182294752803492948813169718215358350175461098403973798755040873928450649189701733628049329383546237864639489644941373992444764784115798985887261235582622052940361124001058168086498259764435255669045625062095408594224878198861964381904627851482331751314199066444477940863920393138073282480726104269423635716308099604647350502961488865884200495442455160027813470949839264650732317218750487645624488470383483768690376376763119663419960163666416175477493776948805506403590021670123105474534228694670981960496169845323125889372290688576253669696772995735220792205782133782522506553558935538819011718168079655614898604118328502422394874400090716619903736774253356144674230209007134571936952993206865901006207364358952984303212947334282849737663121582188757084411718490533773579965771076028798588283156857849297553791801803386083217371168817171728477315914465703938399935879825280376242112651053329790180274412387997490353593432610122101981826801838812912283791148484040783153543119081053361513634219411434276526642756633631332711999243589159822542205049753781690356953145777177688271306967928897994468803835572743758998379496685383146806910365483288224229910076366454694179397366186821271914279352594040057407985144219264014924970737409007476442231419027616309766520161444071684146441968005454275875339467572900070645443217605448561207288288181472001668014195436720022629301057489688483547977710079993102528655851411774877655689160594032048620060553648358266561576704264483991664682651609406745735587550950796529469699077133611043844941177313940176552523701073147046173705533668975852579606254526292824212459553123276986275749233932869068749765967327986681202288877812104400902766329476839699457798317385874054614379904195980958702380390543130237634899418727837475940961050253214815576986831140826715297482544982443143531675191771875602683389529030587534364534919241368801382342366897318377673764035531942899785172123867357164389804851208563888010739132989828986828815663991683316286772406856142169539391603704088888905941552407158655357941193049075396034645060306681056438384263577652751470442503967657169859172536227629478379902514581273565859062640055087171268611511106572923975913462428738010019779480976972684205529572992461273923789597747732250508991685363728088586290165707177555406473042619206009653789363746758576924015278350411264155980668009531824039431321696143064823497197987202958926752924742130213540103820460456624384724165711051140749127735076068162939830792343818737337214870488471212285839812400545588014239824295454189715736022317212894142156788270931521516490923072362146017360705517566451188679704312089878355483581473267098511720301425116351051913428581768907615433355167427425726967158936094638625768226937599331477443422877566655224197636554003335180501423047104567543431466272042958826536787488759284812947453118840368778297450162736291284582268470345951834635299915201834114213275333455456885054427270581663557076211439238726680410492366260450544182764333008150859131937542924491654842804616117832165534932750364441972973191028512515717980114515516386566198279899179014189319162168025003855283956556500742220100995706388095526253698082520802021596062434530940076513700655067219925395678027897550384000396863638190091181025626746612222519661102654703506565324798121998618442615641669045683774532928602351323475835015456285891943871032583398815273980213185488599248471787971483694523921875644116327147984302104447998610381464718285834398460725659881169701826992130169181307385957904044628001840622066534085922286004120370122754682681367131837221135633499271140370438197712297522180528876731399384632861593316344065769429973039945593856678429454239204631707223934524922477290009202868422560411043644663039561125954149506023832749035932151317807276786525614959553987019580011442110641656324812496451196232497281707220028471532279419879796960061965242897522455843475909395091211472889877290754563861854176538233620616625659405422936853572028193647268874105213140388599737247286502480308681875220102461054090546279713597773042758765197456424468365609293050245724522834032810549056837277804339201458378625198111688969616646525268376804836016947334349984308718245128514783588413633263478144861883310811791584251080312054901218599935459219715094110104722491609843465297313177376149563485256110201678979351805941122294404402059707558167572866294837809099671756343837416641577387045458037209393373088143007735549172668045377040253032678577323462078902056714984472210775998691730800126712778165870102981701683939048808359388482610222673626336191038551204710064399564864126844807159502514156829921287265003771511175564985943222471565624755371161938863981671824971799036038023216360480874705059325407017572831779017098705079870588490066339256580120230237826832378305015996107489263976671500771404931187485679939236459079949171261709068275936804071624901596296658369744742893474501410924863575103063828366739467852981126743191013463751617345334053412471105101903037119237299919518546425959899324231495792360995883870026451682746175215662513422692720838334613682907860035321444816726624221641886186167085819652538185388893000589158233074957624485352617153815316661504802463042066746368211755559842489780824276133204879485209078902543860162034929676651998192570187471291094905241104052666868484157790500359811388674346844158936571652385349259877574378892161589618332599961692252202185677577003401496153973580167627426115213581900579558882546733729735123173400724443131656306744134028368556576903783370280715768790253765280800683332363472957663615054628756795713529397657635706467736127473987015227454089232325909425807156901796939631117287920053137909151177687618194941668880734683530024255485805872513200907093141860498004407596179584275163158473180255954658696260267318492834560089553206973407913002757877037542652866054437097410111349114303440238687917464826131845723897648836817637669449486610045573719870574813192643904162890241310848995584290395932341980097498267194270695511374266597600507850780553531634447152163402015442515395782059199936655586063165641453006412582830934621734854597739039548120359917131303200169206094723584575937975489336851762584488268280817990053279676045614737540492802021343022349625292950276750220136363090852783118112905802718690810042928727962007449740632877234905031175076316937060658578069302361390699810505439387084037895659011265448313138463647344401942968894741355290529816664383723189260761248507726352045065775566043798232774895295423107962805773421565727218959236405941948996089280978249884942494534340398464023895996967772947781112780381743478619471742156700215708497255877100159144277398350236485145687532906944655530624922521448726052807022746925186959701093606863155027916283590152547660610304904969028409975381634787904911940113231142150393482388635028419946272138174486589373242778956634299941031508879414656001343300231921220079042867304003994329168531342687129014507276949243714699646558521292570764681658298511059148256415306411471375626609351457831855554478536296754816025137528054163894347219082466821042413802925838705048055929539340260876615248371871047475102431908401120857835280133404172732079876174689848895944856437384347745387515277716944116110292557234004909212854979866639659168504508090958954543527189191446850438634181078157145213441787792728324767239540857333154952247436772119332049578603189787318681826476429695463457379799675688078292647933743671909961895602258049584117192027000415973668151071990156629930102003762681600360120746405956234976835963980013358802207570987614166734459484855350978754573580684816202065871538798461721199512475839338749435320080597556196248139510544625670125611928724401195955529003340302535170742014034684876562508038670064965068073079236967214400047845611188833865985849350172179867798243561944206275363880430241442368465976522158291036206819151397317832279991273632526089302325278046069944284679524752063404003871845194290049680685186620609808899458652499606650600139683306236889361652223700852964848987088033132228903979716427023764455915326493789229490947206245218935329469217752723356948865942327961634802552231999750971303582693916484529858996693469861506939378309655896136759697727314636543175043536766819705048329963208844538959107767385632742933646188661323315341807625143658522420652684039383079219865225580539357216494066391612162127160691634405357975539472589716565320640340036125289166799951512275160703504028233579515839924597690533057947910653000208956082199572451760733977893412398720130649168764429740424341498445889855482161032013197459842195610882854469523940074798816900286760875585986274915457149810853064392167962632794216627038344007350174241588416824639239915659922889893137384295337381456088152703936460211535616451008884551880781720714835468416009796170655389165388259712277412838310506512713597391410105643241353641387462435727156143413263517507883835867116638993641353213183256949568996910078573249282515568479313740229802235311685719660193324907505711743555645055522763053558525880694671100295042087867755108104742460080028712210099232614835219170591273035491246307565549582772447411517143105728274582653545199241719190131575018905133974894703314234205002361572488347338008831221730173628629082460854763736964803731286751065255155723194870319102500043947772985129227015977984012453663606899525084754591267396363710425808700337037535327472062220959973940320590269537668455219385294863584581164744335053109433415769874927338688648128849115701062534138222841138661991185494257864264193489318782612143677713988087406284372900487303162060742511979612100931688272116249818067248315725655049650224020959086701958730210741331500945143352935042987735261689438339498102937301218057994236746386992484302286309050810098117602825347997396423440424111036591887929815620831738222034917371483219639805347057897875590165986490323294704257723234537981325767136389933926507217795208277489655385746758335323762852879450004754055956956767834504871577624257562337966277621731184875030687495663993902772660115892540594144938709179946319855476483976610904464059024939619808384181469188668361126186942428190844706134598118522839367080683840802693554702830046729526842209143725954607755104293230457575338356130359881053686831469344678312963474491766447724987345275463375499805966113649165430513584785619402724505212999713832751529763945671537273429632398532129530269630836587108590086347364641778494651666402103290621307128756606545478419233297486103053590448815445618574554809887057107727428096965010594378891852353259135499116037667556275542877791011614744089421485208126105173836256649410163563537943687524338595025344353366144154930601780885609707414021775757275240908232721721631135227201748163989737317067544154446980472111830404902196609692159604257101409123369129459251559308047166734257820598335608291477406701674805401467358452088137767447561238629965300569166158956660919531131838268343687910476369366920590932346810947399214620016878843943032295452954605640820674448306358947175442381659672266999513689485613388740530547288255323361288072323376433724231839317896782428444066480666367803948734159550306168911073268990545997877094448067574489756496277323077104627362157933290347223005806268459334226494118487091780407574935871144254597551869386222092417071522857994785136949321366265901246606192830359532095261534993088422427839457560580103476827294128838462169922351094879228612119829034191498222990477606459208711231776411833022431930402204471683460013586363537778683326280036338791110321654046282786524770468311004737371101124763048324116878660002760285573297018542606231641213345942016141320543504391286131753601898104410172452758448904608195010775670247483560285081655331984163162312393911052737826043723369857272388078254997095506446475693794852162411679327906034735441259915791541515512045908076071813275434427152393563859650250197283495280177031505351221905568423315441778419088511948455679320640655325813506791178216967955478572665999273044155723406172639979769967771131488807738715166412483781547641930440722598988629808695363583733083638997714431346271790390986790436037179540391485022356221048875956174167754786356757977017343758443890423193589184487372227874899968891464373146796939931516032902001710994742782954615536507801688040124739147757528565641959769835547417695769743711799964172145233098932514411463587609619874230779391733522556761445153713516229342025168963989000984315603894809962644326340106460300594808936958949053551507336551908092897147501601637496681362101181839714093711106647729392384173922050822304208288432832237497240680962934770622902822683440324574786544066702121543433777207513330851610785373546301732938552590932845390305680971091193794092771376501123253797032525571244339397362064458382675306385960752001837502406337518198676376395785981271297597027106755301044943151456204439225664952192726989798449323493744020838703263839727497510451295959033377621888982269950474246698220571201806309270676955497612001621723454110068748450563803173488452447129741111730810473644740940448929671026977684568157243907823003529362558645594885765856193064246044168151154222047090288891313087525193129764644314863083648101938526907332250350994827559585640008001491196315101668898597425518470322275784974993672275543744135185890853369589034135193888849392423271254443415721435779036348580084599895286284758421721889029324686345440313414756634746764158259926198619627246941724765579424599000961176184571226944438106807296040284983331975814015687587490956333147868370542355447526368425043452071645735455494747335578063991856227112188292746184823823028279353069495624793503953738111992181352233402930007867643030826888568807561906940375395057980710511778212532611647741178900997717937514144234096463476875607056037003241296788127313662580532227973799705206538044652708832360224820954926748715684374380443767139001698642966161684176551498106270599459887906891012489741202562650315875776271535961266225679262450933721971564243268004311097994743746987828309375464993906949433975145603419038112241088676822765494018746032992161349536778548365415100243012196350374555620804150797836206086115883350002126523683776035716208413140903810039549029620844170856633766358106896833522255396183353224577881543287989797966027113263058303806710269030087947699680150725181686461525652998603384020553343851434802200889554979394505358947491431546740731797643131849840734129000597174975554262855941256535729494831972938380494604053489537090217172606760305059692821716084381525557083889855960296137977321898381269009447703950605621242882976961566207619814879495566025880721804311519328233777185375274585329346721034958343561321934546610829419058618025571364492364618628153773356699542682626158699104163754515852953748730516593275729157479936572202985064881217984695523424409223117344365320659382186980237727681221526319963251314215796707264366012118675764786839230866098094612008661750924684757946971170306851276573248910299370931941234380410534403008934859546947173680211710285959410187360596163577224443133092655287648532650237553699283168493909132545817209777615692255689146493192602645547476419382488415334949526706985760714994304459009900441022472072207072843735153397782850243594147452050936615750973000702619543232979217272949240775222093690344646525297947745051273146845719365732024266165788578047771604251241026142844884259447055538126180142273654159016795922312149865263584764913000381709131273191364942913032039176348444400432626736174347552481770247576585803677327078628667681014096058116544255068781061493346913053827675802176314741568808991516642264296636883412577467476215052841948856775240516739504576471884625855443471090732465359619767463135521652715053679764204186451420100311295001597974212538000638843933563165814973681571166776670339565031622834334762443240049702608599778046866554335069462676339149158886518613607254860315714837096323665958828431683621032490984025957930726805759245821296932600863856163377908129514422500927124581236188000067474746857621609762603181564526134866640351506562565737735303265645735008053234065514244818107784215868166573143398800844841307477071706524861873704636570349791144274619280819874929006834510133380163399429289441504589510455542040792738449645049876544748005957630923554961546941941546849493042390286286121961412583623037760550962009492421647619984857022914428896738583591182591132772602441281939728232164836097333878225223021448064464809128202158424497233383276546855426072033359211805910709906785972738209702813019727980815320074206511170477426663049291110402282726043170668627292292382713464952204532923903620615734895273928345263185443498323119357444926531754833886678614805846795960969058013850660704152528040531461191790414500811177377802750517883855682028766152692674198352673414171482796601101947441329135960397769640950461919791402248099390850658739400522898782287596962888771703312177549115621272638149945460010672976135597794189540042902845650850683144614233667299800643739686376537294184502258101872040871414095266157626561559706368472566278038322882660629419926643834615449341500691027401887513566456549580982667563556827357335020530053590925481043314504282278566450245628023552914742715860009432458939543403740751121964895564638489268322515836149092803473545063452867892054317320031660993055200470716485534942286908443068921768596212315535523803726199327985803788657150254738188020780540012552750261914585438957482779103264539077924085026778800992378424104560634301442378723595545128017355017656117425579373062000000066831919014530437370920349194374661836859907382179663726748564124483815654000263439429544388248409663300815977628502648595103812275094691465404020488748258438615250989435725926171703223411148968918555123563555520981645824408120582732509522653739159348966350756564599599684284031384641100917151206185781855931153509074402024771555829690459637113838952871454110210927101914356646527461608434310926954421287575036178904727116065700564089986728583545266274439484544115881259300573940524976163400216865366162847226952699774285572260874899294759661672874394537008423364734520928176960729510958679705211344152840256436396089564533896108338422644026527308823137992301734489126299439854890215895395692325746716364124636092861939257147540992712738939102815274690906910586459768319014539689581257692463903778104304370393478368605952375373632208624012853820811800246279700223431196805611508152188298531995467095049724509161227484841186033690357522355928484255893779179823320520927576036069518098673241051304145511143655932632133396052063991529374105248047466438512351738645355004852178421987158304360395557661629700313511264193603965475453881278659195050015459147737577347020546002379146768302959467282636552210510501927023724970122039933607550004017646316600608722958643071327832481094473215545281210025705461321274972509326759628452919529374141774302429767631831206335133577821714052756359254508406887161914925327666617776760343082695814507711928745398183802510614227816265407294688910649810477813233055288412080541137433539942625785999801890568242924916377128319817734344104802086286580443281280562250036161940560806152039416149490495696997025638307992649263515277619432370738621726417031411566545412182460453468288297500300563315159029301003736119056444042666807357556269343465069343039556332302946310419765243716599541186309491418519600310899157401134112689737979039594806762403591913376096283487412076998784780616611148423453358823243526403756030007092665082226014178643180622134509481992231569704778218133936714675185308728634051601393897372032508739346330102706186905758440962726078272757878408818737789640962934544391349536804139816653663653014136303374824805916628604868854331039625004063576532321822431017912696317294650207673682255253564373883366577523693698540032134656461232346756444822546447934992128399935084523884892347266551707933942064795597618052579749736541865981610087462501169572217110917799289819382233944932999643798427597346111590997441110600172844481052068214794994009150059434809892313690511692145432162482077473619574996528183930895992281818251421788473799241951923645574536687408352391913031434491209289540986995244673063553074955529370151086631727238680115294019840167576945570156852294455517655241254907010755832296082185059356511485190015057435087106628760980470196621659038638764301734516191735399069606140028979412896132945620431458232259890658136780080902836605192961496950729048580230053976276749113881797067898701842981619981977133151904790445929490667593415382478199335507720181868097358947499565824314913964159380238782108104439331639416376118697709871747649691254438764824651936769618086047633554495183671426228261147914977919185963921125125957724118226461390933335802844072145183160561010246264449385433855203704208899075881980030421840992614885689366508713147853373012930154395475473046533710689949450553325617184375278107244736128130162284699060817618839893254241218980998715996566637960832008881399344812031147170067789958233950510000092835619501411208229000044424805330229599287602538958935265698889042421722324363566100216614211701932218474686687681364538829887652772647038010365643414739457883653026203031442092345911110260636484427908915681761388476166262914963138591308681289328671400060719602381526329292346466192379549486256869392400066706049769659841239474509654464779657511858754894068417922514566317495640693696212425014548989949074404963553759727882191040645632454877687551446597798463296425447883112836038881652692156959330060030687019252090791927404922860796097095410953825771856111929407943833388782785881606649885281255970420455878351554253123415647460457728613625678179068248772183527165792861034225479182471508578814672204817090363970029595874736473136867046501941740461554607125264642827896221253286675426601985363550280362924496143302042266199824948103638291548843233376746557978951547173395576073838873803109575616903236181187171722566753790731179271030593598268807529892270591957901701860477984155235646238448236406535804501327043974026592394989787517798813440987922146605111097597179990153838927115717361089726675636018347314182265500878637883742772738980444062053520876919683232966297207918555058164288518737818491572036533294233775905764250601304019760544527567616050827601242671734723171905718462128112906297431870179489683347528194717305585814403864864774622747223701002197216406095690262500771290944658488525352786807454781499204878636000649299418707210659627648388454259035245519012632260674295354582418505833496785736894047819865290638665727203994833213874044412244770227806039200253504362884287633930491794614552876254599513234613598569985477108747354854280850790071551180584206772875619562992609476515326632739494290260273751055075805989464807330529191265815590870947237014239222602238700439061616598115652710464554462155018894783656124613559213287803014483991647643540045948679928170819248810500942519081000918803876175466800801682918031656439037232593107796162750631531432058142649109599122565502211933936756151094877659019591384059817908235618639809760856001636189274125932547573381984384606840006210207988744701187866235183866296173580938173684245323072027520002068515501162555515079801956352670747122397331933430409637575272568828790926310033957740434122633623947842020449648382505235694802336970099793871491495478065475043785509784670414653555859800895013605787998026653004591256337257602794984380727021371062566170519162358125809190285118336758778310518639859878584264997187918369573906359553462251102833933172264211478991179063350835648062218889396550226794509559837288241495199258107458099257806585735574644320517325314740057870407716602344201844462681614088890746788652931906107474845367495648963908165595238352865040469245531852416031594922344809656525534897233817334077513948441206957949611522384842959957068003296396812402211723264447890859829531043049917900264460441531284002575947609087180228653286427930946356107365087331033486240617736324453376914704157139174214703872698737185219418623370755179039905368899760800427738324619252664893391847368796510269398465472660960982570140917429741579452218855094398616481755806342514696220556591974446632482396916856589905598033808836226607658709641434927893082386834175033301891723394732905739480989546115407272933572013957385948490136909295646196692839987614221076708874932614837385739157636806314009629440037962184521884862560644141015914090025327742952753586135787579479110791976981460162287678816801314240478777447112904152254074735588691314535583907362285456689819537479800168705465763035983348969198050639373593202030968086122076089226149118033431279208918534415649784631213381072206698108675917767737419671197627003568065386301572160350968028725448062677540587571815368227094400146646987198654116045666375899777821537389123068068458920302934607435397616895897023405625920933072749565924534386707817455977632149225268910940192086716185337618288695585847550409271981448473744476170613996331154766400209915289302060460556976091090219769332061315772281913083972173598806604027550652839902728879120952951131326578802885350885895663638321908625234512151857235425361188764786289411806466951970485672950484256349615024245792006762216687081769196247568285968208764150107299355379221151784872474486754905904745212399893967732619481852008945530008161165169665353841512858800171146909951835864858684628200264349407639944701061571244963903441274897975753662355936519179914116020342741604435454335327689384198039939298308094942418076558137044090753847883517104708511726923456448588014480508902374342085420557407572486318540305467526762078621932575499305029586924682688236740248770107266802750274155594628368436210101501525821163475794037875690028125255473932541138823421600029057191338519775066659420036295271144919036396715421127372007880576736619519237823724671004356657659345803033965715531125002559731020358398385398206412591940275788700867238389506880320100461463839614124020267806847159482053252716038687333013618643970172511837663096810298380941900064723194162943246512088353100857155307533782679342072214854463974003012253654264797490734392424230510419598307519303711671752074860754697592707875886099055330047066013349741150522034524196721257024958889025759972382913341989105791227876303593441018455761167745318844492561835210013715852107242081675063730299102496489989630466570063859996685443815966773329081645243080516042124157011533844729272014184432654477028372693681227332829971018444618148123989014306707456678289423468077693640689522585913923201853219079539382914754525719913477126839038486915421607108567785564129717447653927311704322097231912873393585650156304670045020434346442988803780289763973203190272384487364350369262717356845355993409164749289414330476699950360736946136866436067878573471837254724629030361285414730636431497473196100712275488126179205679128417245213828849236040564258872832822052141582041107274244706775694714903614093171466804459527761248556658775213014699430950869401631706757612552946938608273618194566038895370449584538714093216749362069902920479831009126412213080945708107181907997248282437503328733155005286321007651847911530249844110509254614097994303916798214643718721360139870384832388594179553957075301050552772212932630032063525504757426813496226531145642442927616826793560470116247544338743523265359691076628335141515939788011253013983846745613819011480374777023362130033110551766659388839779162756947345427759052300934499368284816097248727834501135349177511383742626758170259928372610937084453891846380041810542386491377217495694168255368970612861522804834515494279393195278624071676072430232529674748473499215532772971005257431447707355829242479264043539516144166517730135215459786808875508662394689504975726880927353315352267253505307902554662191020446324963240144688748511054047655414002881620271307317334597167398166628797102467540181901396797451955000023448427186597056193804530315048474482105762260893773720440209865423817325560622861609034669997311750017871728336786371005276328003240747924155780093500143174998918763311366097489072337949058530080001094116586693777189839540714483439021393986852852182750577731904918253340802927174302074337425399650893056926012783142997113801275795611078345296140052212834765062495944241693496887891490498657647248296953334275729257625133937925384360573094871328529049498107637107743587980852861782703534889830230419295274018038781080575225267990496680111071787834044409757514877485710814388705213893352279441249090654253549368745759163310451278593193917538693659946114268508557195957178566665347812386257757755030099972513696933696299813965019935870037025569238631642159257579111195194904019394934154791762698349449155266270884812843610309431406556642239826121353547875644771519989250989926874419197258048708521615116485173471421286279858698603210453413431160889839551699642785821408105925063156373868457320757957136769434938978424249336536008990068236430422472450748175151704356546026376837723475430355345008458664211798082504626657828473627632778587497283274552107882998454762344234153353679765365151865133014390668360337154538444995450342519738125439757751706142791466521946447190620838181945400686606082527769359415014251704174720596517289398231381686096385840314431480502194261662220881558207828350408039519839220670106544011657513953415098685888716170329710688115759342932706862609876716730978222749133819227105205207525213176061828886599808624946827286023479613051436656869993038734858497142648519092321776812811651339144774412459930365503878338108821827899162775373363608672761710803714715593871619401678646233745023578725967948060045949066533121065346686610710243700161520324064445679554952408519379588612535838519561617367175367870442752683466169598401847888084043201952856845985091469633429524754574392738697924435420009064845786866786594342247366169329776673582010771873822966304914801713848954259517707097141110703130180924633774760391928026300934938287791114369197954332978815046976123897477652393214959850830964534517329803073316806930204430976271122350544557770985041458531096697744420325583626197347904408049611604835818933577050504086091037240298972528110029720961988413777810007110709816122391305393570217044077791528142434230595303667922719908310049528746033643087466976993151227859032410747638799236608018298912642492040417162339202492144391538814742568693555107037467583188440257324609001042790169986384562425597690456238933111578318484936134242840937900542036472972660725378064950916865065992757643598425914464833511771143108201711889969876067112877809977482442751445585686972201992189821289189633882136112423677101158983144150497316763083334335877195759245438099405444495633505113538711371865593005152863194622534589149034406389622260557702993656894493991108112896323640870350632854553987981442076417082741642773457660930615921067594302491368916971445375154275436681110142195051951918331906068234087049543757390652252304174714265608829626152370906112552073968152436547957742940489375418780314566499703574910864393813456583099556662407495462769070364904843013868841722671245713662286419256414965950190105815475889999062430861972163498225387861737487991535885612681656646302316419051466072985486547240716758135199067943386081839716690651036148469530356136096898323740928894683230126886685884825737846970654780417287814990685908599268933763811814371350708933066054276840542821483227624981265764159001247098260288162884097777308369644460876232843187739620353839056028030675463236756758328826158105911809153838090230530574334604672854176507827038865930872714510406835750828802380734898748304184520599766992320493345265508937693518777753200304402450582075250754064874724652683333473560624378252806324868386053713554851544003193938102847554389352890556610558456452330842181535556566882982703914087480558990028527279462340234010206739882244682558992548159795070173246997625788038294520148437576636659256612712217830508743400578776077463266228674298776345521664721673623312843610276156961417773546146259499057790757652252162846720029453740994824425249675506826994843811659975057626120083623914506375866003740231359222256076629006750222698640755499634825824518350896439896355391944895055031531567413919451194013192045463981138951290823090095095981167484917755301582672299551836087534120644310572786027693509603404895452619688630315921395836784590467672432766216213162579225520453123743273199762856288877601793959303515319050066066608265428881696606453531920317510246751575062365699528018058766993491526451995443223195526066177913745243190166768430692390655088449819599820037051893803285929718883888333425421995647716335969234871252245382569654141251782220808431174211202247686126096055304791663218008475331431074899295056633088779586444702476687529735502904096322461974250437500402669173407906934694513617707560986132413407763365748255710510668477703352442777988128767695218987059171639824827435293664373187160171935161972024849413783610650950142191179710710915574296309938136195001214491885838212187260187221881799675434815708367688582748236873179480824909304076790879134165335891649381841104950738292605525918046674386067111093977359406682633558156252060243752968365270500782792351219137076471568767501168173196083160542565709171238394270247209993224597753873926616517416621094668221393765888782512120822687888557079888986807897253375083063103706018707407804275509505034979685421762297437110406385695586812155889480528739657195614005748125487016639068932815063666573314908025712145177614727217521615803019422477577344377018735835653160895024506380956320729025800798579574781623301302785082248337923841999722693717133117992395617421980744604534255548048531181989170594011301521116198898048978382193775922472745644756498809393837801472282092931500971168843896503284718743548985418290943041859385390944319670785000000310602638769284564857499478057946733154216483847965595527501443554126460747442840631211667431496458262592387322833436546763686373020630637794289888573945577726056034850932255271064443124410321416518788253717906297950715433105917977049495027426135131929108563352586760342804850336712345099342601465476990607246094943517768354294156277227885444386736163839973595750753371458931033419373681271057236674395660941950882570361560915023365637499609750572156714468708615486625325313291911628853513032527721472622289104169918618560614512335533051712096862488716183637451256665076024488249323362995933063467463500754332866430731106416489048557843462077330844381247494671208020506923264119191763484617535343034377307732541374919163400470403643860835956187885753845641652373361583169662404219541303824715956697826649194009846767328454375347211551490235989552747556163722177907328203078311063421460457438874360859873974543089470180154886884143229232183687529188385367605328516388041395386326614242356943745235337431025804445005579436725694490759452049676527157123879004226598544081041194683081065432971951268559444234794203743971771137440867933508000574796768785192147231771205960677144604845520700896896510626072706760467878036751945613912783412861966292680538715904328363817644484121305971513749830347293886894549306937456329661136920665231125662601740328022086770120627532209115569611093217324658373784553326563675843487475847728125411187118198500056148287888578730523209604741904123306433233356736413859501093195355093916501776263252329903907445929504230638439998319119335345495296056962581404231035353171382860839798302245171767151806423395437902003077624399151440022352483114692722043120766058639768035886950249265498464208743605898410684468108419962017503639776718036139562219809254925352466595082193799573930326629729721469326182567558743126916844852156624480635897841747863209895631229174175196139600100180185027737963498808669555480603904133492938102134564411473455349761006448910740892321285683327649120263500614439257229225467814729063040545676169077412379223983932820238817231496180471210359489898722417585034317062369877946126327384048446577766861010112333437898398924839600535067923394460066038357542163885426350805872332606692156269788070365618354450543933397847794003225729706658543908755083280325382175552509855586797634963336782095657051922867739545728742027997480123456119226619928814240866755219772854422429584137912910210915460707933791201207559861042289551515235039717413951003533079661974259075599269498414280320748046224146658302152419065813010914314810275125970422415722247963185983119119351076058375412540508597730779986829188863765706431256834932698186863881336498615095575193394153545471555159273601318099876854438291864569916957703184581474571566330414206391178850165557782455831624470058070079499985199635391865451185091128346688644009453253298478852788541107177021561631000989104334632354845424866229821340428281392220916068637858866359660174732238502129750890261438540948019729670629045639430052784091068138491083607422340383318280792668715380037296212328064387120785459086082466943144946465340875563658679238024072479525104200222950959536837202382382852878315553626915879282820613319813194420148261444439455407134439235073731401577108217498789719826874725877259405168973027518063196136511263556289518772616971082990156182163079502152435903216413832984983217449298960494046609739479080649759992820894462870158458366162294820415912592984892817712988923878966736676905337402187937777822860318420971761485331346172117798510762143395304423280385181262365769971441759314332992581073922649521905875408202051887377028221879334832440311997985053489872001692347078115014025843379254507359611708976061726432127234279176153265296675077644539056060582400178321368976040362483949009629532893913007844773998654412906520191109654949792646141075065800879955432278099304788281559651129068998336499067479952673322907939979846817752326350280148717004588692324939244410084712412138787935618618175016122887996564888997570320851250602237570822524265466346882443694170486209691669111026690250333882361383491675476845335227829202194886736547770044048535418276731813009200401817092776123401559321485875972387200430089924831892869287990524163037790753566230950360561191773895130093288760743565841782218917154398526536223112910997017083225961058535541736898970535347801887455640265280152107706991904947786231610819801207690828217000980349470803830082380941880970248350190061848658938541534100775215372646089314003949668901351376754536676932242898121189714381553389246316397745528765171372550968772101812600177592194321712384227038890079982816591068560510553016999947474676221280917459037503531408105325644720797241885750371422176043754690185966912939040974955874660748807171298342962713461042285943794158822347079105093724504883932562436216695422742580652003031038554090222127190984189142517549249630860665157531714205853077781074380167758010029202609108885544732848498421333708915622345229105171658520946424564991156353503982799009338766714610068615799842456590424978985547208752697272806155726785075442479341195668682290625629695419162419611288538155052540806890554360851797658856869276792689312839296341700295676396789273411771643876058452198028234142217070563277795160389724147036606972100587348236182470490277965114995948788181454404350125169122893611379050008499587430448686598895544840093847054860807268109938468061916639651503966571496418551625499533968056312074310825967126103449964451783706058342773335395617723954787385791620829430320916331309765410626085124081224552243436390284343454505880527692579931119667569734503355669381268255389001192989186931234940521982902437637132840638186916575828364027282803217539057520028880727809335975858747179966157627461503708862559934454915256129785846710738830698383458637360674395637191948482081655610822741503601012664470642430082223506673247318752003900656102429355942112500847180707221487215196073250155773113002938122839435331435872628942304529744253458716276183798835996347563868695989274533979825982343672220135270683802326109064469440938547067561421169867588060672388818536877236002906097509755237957670656285138036072603384978766120216807700763482284809978676138932091757122522103713407135845751250722330513965099567152335507864523999076162854335716662633077987518239045070937857835828189600406077674267407232782216146523325966257978637831932608557122981536021072953165357309418669002830073379428135130945008246145823688922732764348321117489123714457211808514871186071531105551060539344859115871417799960242956337248779657498787006557454484265259490421902191772730950052851234697839017153433292106599551740475789874371730552694401074258937356788973685187517536578927287533850268144293026836996789072520114842640080396799013271369415644921041493934133133193486611085017774096146267321643097876449056137082999789924364823288190059238557037286630854836808536556770948571071029899318261740816171127531373578597448461864546809679877928513338844123447739750338280443608903877706208037886688387345352264393164500744301794896380391375178148898451626200694584195452610044216606241431873301123227912614172118712384962227492760469283715611963128741183678996392980630076593696533120391243587951482592995054652311023785179734622028902844866528095170876751802536812455613407218761447168547379802585450737783906731429842730590717440315976982209309195036952640327794460183014818579776511133985989421040184178813316265512681536741849921354695670151615873163729414549654788145784396981382677734461371244911699821282944977842890796658397011092920466082080097140738822574413127245437580855076594501915425453355761199277740078949318521890503189601114868711209632310216966569743744281651344778650501070859862364286220883378958860261783408207275336743605228592500775459836581526167942304494151996808563270156351986255462320932578971367068467552272844309197765087713656345897297623389938631052711725936266202053888092379230034425717811244049034886639688781361487826868747222101773561307448309438087260508322911751512779551995414302300326550918321810957131365588106075471413748630807277433545534789557727417878889634215793208331060750144045697500614513249344670268310981586134260343128749857137772947645236062733630802119419947569032506878572358614623715818159914087715915966205436635402440766261867838468230389012822682337881401909830937882534189704302987697966242898825765434434933595229043895693560335204600063871282580349652640232669845896450619661103843456402856447095662246997942647632394418170616384844596269791915342784329608194941904907010475339967800495601296032561627912358001431356426311226465050905316782167858426188247291167315368945122223985389846860395358921762050283361846716632792472853118638603506004112673189432909424082787643285280227050891530332624833044353138023034355027942225527426301120578660554962356701930553214548131239903492723709314984525252548986463732888530794900830523446757391225165311627425884276846227765746943695938391036432891872761826304780534838773488902944496105780532324367788023204949810697707005083794232258254178073647751943444973259953280821964698887074570820794031156703732262061338069817792656210515104464060365234709113969994194160021321105111381473276953813819718590524788119352524536111057188759995697048738000409671778570884746194772946934872243995225057974508119286552511924831643792284569468287302756027011935773561960718286060886218230480937209699051600757662742022372673550647927741425981823951250516467384740469201403341132761307520677842084489149889936967473270862633716139086467652004539569536783543232595286272281195524281045058678604500879880140435658712863907539583726644642231324309829927305212276060971980762021398272701393727179468216921924174662457132306989217890735914759733275382807795314552264083352203767921429986894763629430168684142319645292985040648218106153555384095167674509071817094927774217157217512860191106825227492760774784129027812448878573523279473477837721816251361839490988758122303563133860262489445287357974417299765018378477829145034140202517949993257014109089450594426236044218553126395622017351906459261665483413230628743047834533792814831200041165850981208459514477673877418514282136604416543632137272844426228136132255605851950024477885926898564047176658348120797562840763940792077073359651260127358407470197224268109157665356291646975802145699076025013015189303010892584725044695210147857685095770937774158020910105678412842397498991780267281198589071560789919960723815478848856861957027469971518043588977203485235011457398509910039099805398826773123460490136731804353501878189885963868772549462498665108589771675502635882256221995360526538227868776222475898873378922060333040223351107671819820469611639360484707390821557377359692165587311541780453369868528233681211848474428309108382698088613939602536723872015992181548583680395773183152407599165465125160664575221998031071108948581276854536980250703902141555235785344248778242591437703479456131858848407826877925513449366010212693734023585470408590092089429057187468311910893901326994521035998801026342632876507713632488487157847739525656436288036154913114823609915570156407032195374382182911256184119624865504313979901607608282998903795479704443106624042940054242427924117395919967445251635447921873690231378667152909393175384516696755440462058379642159163915680899535582514140669285831913352019701305295790395899050354536166712322144196637038272373562941937906313262911914529309123705798392614807913691131705393251690433397022721215222498604509624186949451342480462938181455471524789603621193492102390932064082555653072095764556555536198246397584551868501329944045534781687416425293360662101692868405760975316753882223891823345514354916618075908508580404299057137217332420314346549508193937992141398835786654741082879163663188333494185780125470280585245827100600870465236663771167285212664972500675678539953559356260836609198273048505476088231176128996770340485938361386814293811848809826522295140164673406637668037411207590849187157392862303675697094095152520279594745295799038743591994456467113078939671078496770802927269143429328674638971148929224137638553480991851489580633127793952115642784755074683938220349793858316743970403561022147010204375763994223114040901339532235647588480160101977324316772221504654415044667948569898843058128407212489746636891361387202850741778094827069644260730820359293808129368131613127123116346237109214769601274742782782038523078882139425696587908193105945564925136718551895139606109646682741710073009001216856019852029942739524606098712050166036421316523211673796476691207019679890266386250640799223003834976838518119245457577149668599882908223488418280658345431208417237870598567969395445894215509358714135581708473551705039789345314998208842480653559807561357614148679474692559914007428881326215069025444097446405227006387578234705264819546823088517503784082775397844253170221489044926330254680072612114068124337592845184410576484934208154281978532813185374574965418465651363289395312044761039993967689784182268720940734134211335479601119427893191374591310021434577433741567679216381015349726870566356309685253751912635615230602926935264829452107760334410236098917243974815535896345637745263800156421397096918983853117735414113039023089196563784627865387886996164105308937929149959302884197670030013470158469349207497552504571733903350836466726178069135129289618863080733708107262850245912049518776448743382504851951463992846827251931592003373830547319755348052538387429962997453180743570677803482811835437298470348991567586027816209720162422076233329977715180704718317684925177404816978246910261895879485628471381349284790735410672800464285361154898216550810093845008129993543489031116847497055240289353105209687590310849668853497226826429363798481138630613152293952992528009064160246312685870001354884597550416649296410832228609152635602988044301343043713220843441131636691430225651437478429085634654101365756630977835572780677887842256945947767699140085427870003954185394893808427530309689131998374914152292375886560593358135121047245672324193320154379530689390579467025518409650878240248097183804781221570730852871523642758500708600934538833305353494969584002803481688654123240037361074369628342697441320385391729685364186186791832947013651917305455785416512000878806242723000372346799666455668204454760246903254487946921489453303508767369861844398423009039882522332771975137735191976220285582675707992826096122811108822131282805921487707152195958931522425933102759430870806424405165846009406662003413875080226583087458993742497171144669801303037366159790553530996998478084790208836936282794165857534945070031890118335389564258924427258259880907438615400433090345723341226924563174589274304819892318072156573208986108497401925618424558869565289837052925978913632608201732321347487070009921730851647877853123617350667498304190274007318781506436982642592414949293497623713405854610139969802387273797040218415350876859713442209866411371423039972124260544597103807995405055902643006877196172614811078548307633701295718233860559190836086880358559329417381150653825750933737558079918652292903242715793786729005312608371391355166389981590330373979645072282215876113441409004491205221999913959007034421450564061442768188406499243847816804877539656940999610932218572194524150179253870313673813636833054203054676546167042235416462046195381634747740773017980196723139005905358747445516696032516174701071900626277318957936104522342713772163305393863872349212051174693101004083147379095933451094779729900178713848812077674062385296072492041289252359175141569534864967003632014990914246940812470165219531928362208128629322915654322091033784716084219586763314575712195276492404261009711694066814593432713137722292550934924121474801827472933737724921154928355370730791436681811148567797208551098261002753544684979833047626285385154559341468472764814245416032533473377538358564143535718240532520766039251203124501724243636491077164141093783054515981867605201568731554371985559394120417936767416302147919157684821916015269262507058593091440135927475596347773742034259641279352243374259731120674843832544712466653654227749332630313000797546805364446639376949235528537839793397024016427845373987316307002980525760518851312065707614902717971564036897870504958704826460320097290585169002990727636693427737669092415379706894054975536236649250108524303772838254482653044260648371820916259641615763811410521907181770873041234508235308993965966837195931882063459632716188739899409867174016271616612110272527907716935133801425347239563581619867200453312226088573071906793683138078447221673383520190546105273048994852946058421142315892055601790173838675860332366136604176740238036606527834589139102263436639949619244121666428512724123584096775750192728703905158473078757717090014960798513655587329347112474054266005135053297594223331927459111672161013159071777078111256216288666355658880331183122731771182229652983549671611851157311086270324757364294514000492311284496783138118398015863298094155021057902668862324204175476164550324032262437881088687377549198825783338571546810544316294190698257571573136531715105806738464404175903143888456450933598818369485667194459139292744937773501466892953316562837758202723319168868920429885385880678087659869435825887268899181393641864683203257912319213415165431743306712916611764779378195164733815117632235494226301871530001394612422131901512640269790347523139734616644233531470346292928261034108007480997902420358403170735911803993286276652364229390085455661395005470635143499088379050347709762400970293892044149182969249647491042511320676410832595660166123191403964175620270078786386998114384238019867506533298829400389271910565670112569516027417918851367584069126994204660399115802459021015006162058097352141239265795836252805202615923951672809014440268932751493499804130845096058484829941231114274192622874216930871993670232763591484585057785015534544712322944383992074221692992857558529661895476344037899647781151996767998673745449794597324815548639911524246528868187485427377038700338745704283258586504783131399379378942041734592095638998195399794431102617151824190019436682850216569501319460419492377826719040434366285256122232430801031192845470652245754037642502922251725715678402673960301381150302449488131034040102494954376351953335634896800461771203293486024959898894279389581702555529846548002004088201276462500298955168420319640996095636108776274984280269897903974776333187397177056579548005758257210155848507539725069873721963214308093480149830464926746599001703766697963192417501505513421227552580005561778421763134188126257308331104816306632923109726766739460442422872370797599061876700299786278174412802284995193717313914265216121864320760949339126873913043540902394915436348126220047156166543584617161152854122310695101224646534286350524916929361412158944239999931941994763600131624109966546195292779082841443089351277551383362002889282951955452099410278850026944934080950553582766295047005998331174822231049850050915081353734802692025027329954878973599572406365906378332041069416313916149525384779588971428433332221800594291188279434004138310900212325541230724905432246675865374991092789736926992039815514639910068861610672042137957604516390820490873805281280142918111439817092637193744813872431906105664329089594932480300905772489454427335740901537725207042085790557685081732365469087974118903908110102915741386010267067213912038913911751680572195938451181804849334544810041849150300654154311962132230799493984874559185795055478412277042563259474173050436204683901509600463503836021037675936526350588902960995677018964900080871397740335714982741015947600422678162505218361136137770896445874080694197475359681038956837827004577427583062311337594914131118922615123203267419857839453414098123804721398261810955677688477714593510100290187922178048583488633554207122392115406147974697716319223021758574333644221532261872435029678579688953496435148092093562836778675457127314695093377432628102672197195687865596703573546039587578508798000503701771149732313427753644350843085357279289772258976917033619172251488678398731479935124196071494513543759549106391391365319127660209151617823708410468648518880886393565710254221442495711874007447112782947371371306172872390422565920673657682710275318615427738422117238645839495344221842406356796045537385886570045759285493622104736595710430452079542062373605469486110910273929649752333961348447184629869751943774005755028029665591472205967123376158180410487177307082272798222161633231757124855743561497837812810830355259272363631246224369320815826958533053080077602427587089103457193234920135485880722159700999907630392945570166336207446846414990481340538910502509896334456480476434228716816658113917224583430866225965168216277564600744237752801555758179425030721680788211353449907873094876397656075004020266218392211224612535973520337836356179392368599875164275528295295735864835774898627486334532923105245080322456256705745799719074170697808104716220929329961521292646186388232589525491594697302612163078754136349671694961377424170770675552488649900019794086024237792416504529974053032666957976800321695548354643424698449086609395961494075809620131569742737103457647660707159288498896373629732843909729750830394635605285576815084167072906996427808413081821151619820049954802586754352608054617585284275027160426698706731124155946037092968558420108698735012108513421539526248086679545772930846708226081771550170181461867593925230434356109288516517605510958918200761196116575780084921900030693025414578535840368694751433748390912853388641473838048130024898004997001090947651840956175702890416590785940675495557214380738984251578725512165488158270772704937672342500716421945588043776598488366661771476600692333743793015723667894901944372506713450986959285377610745878059343430451095010509231672205626447884569946213150096668929621476604272295690453538219680346847558315402588614745166602356916165075739800786763018785183394505032685380799652875013221612171242184274961972727029890785300390603480092715243739377811186864949284064255339204575476658361057090363250309279911514878132133183280471667274768440430232313845549256851815928396934850389665099709900352128873672267549552227388827550778823309851082643098269414646068691792341843413566872356128313941780679237556954725289375548953246462886540020365236805445229780689654998127346343699638316546050074608584346159291991486032993764074085294714305539393267783715813862011667044106508139365052148147499667075347521076434085105427955259277380142845206013622780302310340945904652948046522401468917012799799796948318966495942137853737389843868196480441564655618902632341906890215110970271031353827976217698606863384638235581650194517219776172540252959968007083429528502272480116865367100407701678704496750341115233019511951173785194376659315418408646862614387843459222914033774638296835409062745913321429225169622683804283346557963790222945339056903178466218380293527380071466358948131418354574922137875917830874667792914957237064445869261194071079284795855331359188646126568991609411540088729050764233394379474201416738876602002938002291467558804940871965102691227029836747937227094046042693974275280096986531646682445721623397350736822083475153064732052769841683281220663452558450722795602337266162874660035423565255969529074754267999166711171118856317496829592066261134338874360022631889579483960515491365240647392658567422475698229706542616306680872392674318184747185981157825681523221389748841043317501260877847731052725074089475089267634896942031936414076537342080037208824849109689731884837040233647677177318958685150834730804802824482132620817734986704180099394092480967972345503352344996317646025738294589937589487702528301836160802223392647473150920182593986402489381808893399410178832291043893587670709496074717609210141143330729456731664455945492486976466408368658993263259624947686689978488106386999489022678075242900128811714880265259137997232193764619689502489120189208586550875838645084912896910464156040732075561240922978612690465056118673212148847046084064160066778922184830845126059069654931287160342478307690099588733928535826331279669032920783674920812558219022002937446619719372894091338486546635450596414531026527470344366091298230301096089742592604934193658516036312465510613874217164194423279744368079765308195214583859580326356543320859355057469112796675779782691823997877969319757628977945217391324624084145628653628269133796471671048943790037241285010145861322574902476809815767341493858579605453371141989300580501060333960467983082120554040647997899222585159943700318177396742179312429099853224483763521428820810610276372154310388632005846366550988990728419287227239389474066281347524959898034799201131154412862478818168984553240435603176604671482555482633945950851205764948608701687175579787898747802416350185419394227105577026507716693881793857443435050948329827543398202188320148676555399487940718335891139832236541171603126840481679882395023599478812345327469515084442241944155047952269507597035399364615341298086784152144400940264695867752701085434675170113239991241273076347480466396035106382795193734564846088286742041806479428038615208274159844406474336842833818306522383202695901087636163608850913777426647504682367616009923347151519290598070727466488510243104920870159958205542426085857064552887808094585740502717736139610207539680748430464659007943685403230497516812545717978810208638028027857463207665038565072798485761078602011178880934012662004174117974714850869252000002022015294817963356715545586313803521080683088645821856235301555746281775926644667697363737226257945552324791254956089431033359341349427514780959217230630416038451458037969516090000730534222233986197598806731107493459175201120881985306642075642173242823746233667325308679820234158745801422038837745234361424218193905006558599426413657476551500489483032268682244109138791772688054237019549435732118666488302005040941417248903728779416175434861370250884378148619548240218574529373974353569050856830720736498412075887979434016681562123326293328749175384513840087047576718672121206668647963307739354161898289298381958413428216403057362552465497028030066736715699391808605511540064240926053789959284698811821270143960145677922059386967685291739013492192123153535762719531357918548713382112157924231919260821111093331385696666514406697108503967176671648229230172528184783072100514927600984882421991114597652945035563639793844856204323028716263725049727283215621110119770895561862080062973094647089962451156300140374657538096834285992570354188141270174157808077584515850375621477303320327647752262056029257377231704673976106529911181938415549711474384102550903529076977341459877393139246527824920557634676525765203330538618979599787719577611440577221126738785882889235192024462842109192687766957417980297333791821477787343376958252149481547006668400500253260290847908651469914667516951022171901382011904641051042078546347467701431720659223995390576610712966577318595008972506254865730020458036491693522637504333931363845893654545287107181331650873175708603313991602826830073108798109931864600631283096267479759932088068551652140219166455019561636696627182007424866532138066577784967198011464816259539087995997787107501922409374297221577436778082894323441667894551379489143600343285068047731797312997633542620199179573259466706753574243621256717925647564075240617445966011516606158380653970496466011658169777129122872301394380458089304981684655570099286627646753839905475885648192662572193768948635743259612798757918632972501646604286557091007538465179489361715979395963818909987197226336734633960059379770710192230259163306887450788049818970851155631195804360618677090316544648639561360879563517886132149062906449061259377218042041918256116080223597111849528009550481329464622982274627127089090713237853346012444031211719586093439131142155454402607776127601871361519665322179894285177662573904280441865555063447624579483986012610153489774772874330788736758455194275527926258767572167224674932007852882221747733521849343614200252581309732963005886016738286468184396482862086806263072733306233281087246104220680474872275803630284647591989958701495855179914960430088438811470757138910778016737458055376666462134580170218203832802474765644291876584989588538693778642714965582755180734077739566241771045793999207070419932445803475179894731305580037627435731437372226596649309012995662878421500035652844115318910182314729350550199067522921465813498461362887422325862904460758596035588343312661171580370628456928105793233900690877197633946925508539521064997042401714111302264768562605698059367242473031467685000216811247303513741525175376520013204324654616799885574302422747612736683620784730577816203931470990882086052139405092982827771764058676585562648820220893974577301082936394719536130380316802114592780730707569663832276143373132450344006418281826983949369291991549436356974351794377160959549457475339997386616311188382020762123093732088552212570524032492265052228808372979818235497096419375180603990757680635511975361141716406855890818212911106067399814858190974674554960402698524144034605513430562961765351011557431225334432676759289289967703007657388357080348938529864327731052882092217628486459004471932629776722584590586561235633543076114278048878169268125472335177069599158590449768944408642789713779640136476256618467851973513523920229834514429395364732333716439576299179301665072103140498357373368917848208807154609755287997616921711010837108813373657408877393077181774121730193871781914888258091704448245502048086339076574284830659249053185483912410832890805082813995134729445543099093074027801798022580722027855731796719900945073761137465867388703293305200406473844163903544830276645362230984664643516520231754577058398332615582613304084159726624510161866021923131261528772228461265029626484619363004008689307226535338064190294656222540047126072985489089055297906029619952501217754045038848518762451098541759193307401409522855416764062873940236100620938355984200368954548596117730293009479158779861696383390613010495422802789147898878005850419587645713029481885699104241682103808443943453022769249674279706765014610649836827559163012334878889986164539682972801116001247022000116694642043896141880753365131516508976374724274861342509330242515699927392753358876336998504209558528885461298474709272031513753851742795829542797483638367006689248285241962657172102315684002437383208490989677237069662399004015431086123756543246283114171115153482822790498331933955357909011479176514905251517970502786194678446051054231122512292401913613231925444421125311768084657993325919994861644735180120714131378367538911806886698748865241234179452021377857273365581241847149281292261420072918147614767397708001236814669720353803001619930945389297170706651138952302194555081661052205497713535423882422229785961544645012962454144091614702024995351817335604075530763239410845102351648987933972474246698942985140254049275537780414752518115596995244966484161287921769982986314824753491188345617064489882949726922623958325887610014575979125100645249881571080960621393181317563097883213086794422148871721236659423979724114211220185912193493604109857898774004541221930157516834615474053971025987571425318782923355936637048364129963160155281113547522827007838619474750738433891732362903204257793242913807108577355497995898234852718657037839469274896651373805304627998682534694029383634901924359231197631590029804884897000715726744141681257162617815628395509434194390598347742000524993590034931148137983143604750088121160964175207357064946508336112855484028460038915098962306471543502708013251124201708891866732688874299181577934518894308693994510808009121798498442888353301749241880515222446578254173461296213283162012114779775564312910467606373010409468281183038183763642659393792343973435834503677514368097593366541208661398126260403610864314457003409653294797089274288232162291030507263749134214633426340798973920699232316117254401348354524279576223163968334562557184472424227172174274203914942539567088868799187008255606351708779750202370814373828901046001174684281073014280459274826129445200142125108765773377387116028898854650884815370973282337534183369942237020525241201441109269710915601342287764766889231898624841220708470632858112983649763539535522242088406017315108031852366118656264293287448557438260829680481886558262779225774942328340697551585986610090861833498072399707101619476042746200463380161282063023117815763195908641368436263791227233170050889741566600797702352103706424203654792068700465108866475294095012070960109485796741184888875045029287345069187468122221524040346365586810782394069108749215741600929563682110392609788795333703542887654845702384326629520691839905643480087607109991288093817085364966971529976206708485948371486810696247310899162792336339617721750756854930603781154497494815976584214885826334597016347556441614948837092548216106616778340053413968042637902202832459276016624081452979708486629017158970940611302341288744737705308322703949924400719906190008306642648575027259896549440957699601518363205990128639421834875576264776543264469494416654228150524015989716729118974604211541935560014887085433894154920505122021047426449555269009105824553047345201073030798084983022296038366073091874334823247920355950906813836339200247797327707976718135471275490506329399709454921231156513719106210776532346879777940656028670299790058096104058840508221997731195209790299475252383006729710231837183415483128656482845095957431300085780005478311850187348255920517548433238553945112439977901279541618400641703089124379608259625661071453597568885708704328491343604224849642194427723815676073576038761389590440986743116476036388030400723890056938861076352455765722488247871335483332312036310924178093025356330698923580823944180230254988691637243617390842040066424057637698134490566812513572207425853870463715296268748209253100430058119204251394316279055273240144928866061745360348817541012787913952325526306944432255450644499431560983987645568802089368639322398282487419417113814137555108501156337814775178495312480471906161186812283618154923297923714501382137656721378319202946462988991104937549821399699134266883034684130707148861870517558290364929078268522420432405511195866066124417535117662885653324319461642760836162200693328525166368126908307394612942828769577725439385917517413511774948334049960459204870865934887558487316204493899526496552186709328192445150215343369161664685869761866143566379661197556100925442365770133366341117292153100784012935898621552543248094515327833171723362236917386926074101517687868658869783460750380108474355730542183716020260877897297129348883470040534139639342491549681726159702646584906541981934690389001474951735832887147708726221865611162038194169705355519141337059771693608533176079409877052064762568338783541040283926168339005497755532820145504604647546853831551392344845208610732295639138829225381659854072152311332215467298771179913231169940810108883968155342086996224967390364165849554676520417362324387263787729639233658596184860321689719512538642845265128429179357912524981110842545300741242199290571160764611962104283818308284064665602112956025041941520805101979605626414210299018274473560038037024658037291159649038413805892461114008033927185561603988097386268217532021376085972384447278335784469756681814812212870007398999145223639772626703862569714556741371570111871181322881569723131910128375246595940806572941946519269796062774035207903483358104141115322268603119564527612305039549913458006258619820755094628402730923501222664035965055015339161749157275707717801808800053362838976683959409530622847889210946533857108321020114508269567433831907502550206012255495142659024076108925113534574597009432668007337517564613245429965307853936319004743120767322562166720619240702386848763279681812247807471766472046202439376280173853148263383226009566291668943197411031549381189121753785662399208128444670661620412365115877320748833831790376951076190523108684595817477893708841571381906739596580507307173158620906031057412589361747138342620665877564183880531184646530015020808623330935208024701164173742105744953520880015897859877634321860397428681230850543493124506376248803933465094909425866387404116011225567152777122862958422433718319917344116076775656222593269279345913293982829131185925611788223931337601604805696290804905082370044231265043898650560799527290505577649686156858392299440370737596020121469394817172205906107718092222632588666080837490287163881898909639243142223534432447982190929120308662059881001145232719226274345749461037687636012614470276326351133181137793128211997669435030099686176107263361514787893377003346597990875024864470987353265604234565814605658207933978712895195012115640531748606434429651018494824107816429390940805563950935413758619032543695226521642814409181099020603566701427724507244466532913496288781426620898289445472545863352269911755916484556379112763664880354788120938804863161515913093156771084326039061150626728926180865514472817353046328146474602450426757265042778577094825009371792717830086403408926663160211118767475402326194827738531087873302318225276369605594886296134022439541489745427214310205894802608906105920055111031946486510970589347141251206078579941934147555328494249405220035186102900777082934912413052464429151521217839347184874087340282983226866092295476694183762037895021247421342384012689202537053127867243946542102990000248001749845468863859691870223671102923129974504734565859031566920157332692283181897532791265898072237997873812543693472814896496202946640804713162307987035328552460452917612061062528341738711580965245513607749487079920109131674156447989325212062243033303559842052024129395639161886665746352246185838028934942228589532810450681353100772227955483885603018535626990872072005753346665196787609100984374377283102717314192296721298904731522524653330806170545859028174467187365559725943434134745259886048506790938530682036128409041486372050260249439095111405085610022439454123362433147437337506578754329686968403997574591651468062172574065091057981709770719741792116670791633212326530078990605321643593942785807000894973326438527704401373599191869780100847020441737628972858174363895189676536364404191770236427705720288575572556250101905922292680002461683458757995826902731684377828248970611710700524584769453773605449991883386755892381732235257840979802177083311674150756809359073522497118700470838285284007597691548611321963700949587860575827759733868942468716667115645319498207983846829690239332665816024465242540045380116155648178187283813080684442879945282038887415318883224003848174954555580975113553725693159247294785417568539154151505477370860114863662773700816803592028261252239404506645818479844056956791379621777911836734692891231300641860912554899739879130663981086160606028793401674298837244047688031362148350300618543762804091171190432035667058143567497394394366415952943891166675229620351518784299845131930395914449270947852947606363859666359259604354167537694274478286145404587304379155108986932750509904195877054407630555539657272617858760087022382272223306218285326008534304593847934789919700888385025875897149298428881610428145781285556474537984704298457076051574226586703419051360478272180500656553045845789963886457191778147210481781028922432295995566932026055263983481726597347381270498054752912580364909568792743811541352404518613072144359293411886210531216645270335500072135708057452375481962677577580610728046171457405562246674535986891699957409112316085194149233050597529310050717867840813501465792525444218601568303513537053824594138736624854724922666995600805120741169926017418013470305133575985740366493950966327357848282027834058459984641020645616957054486916083023244982003010391627211323100336798166293179295158211730044653760293708159282444610616461444600885087284808439389160853549490372183629038083316625669640678597422529305336668462798462629262590562769925935947187852543953791270161348001488078160590076596549031106467195790284647888051659200566188682610662503303253322225290432733146310645010649542178423012209832312053016323289012865662819682348960643160379159253548418010933807434987728180183904976865294455393424402500221993158620318474269776615576430961289967776417994923583446886527684493056946980064841081400205821842873366659123116482129528199164907795141801882248071204700831937849747698128250747892367384088694113057513614184301442358165380620131316803733690634107052408319190654613782187635225909390305028433524766702025401724886278945844874540998360993544731433736964256836595785366573818172659563381087855085889794509566132570020427024112470134547664014704544337900950797455204764405202085763636405498606423963603711827629690623058028605892687381973175858766824504134433356263904250641626564665068912932438644828256284674750456310583827493576182988912657933187899845445626953379068108179195975270972042954706476379031189972753214219287917838753149038375296713163957977065204560952116820802879780305056721799746134623736729534769373025167625182202641836353111162131595575529791596318592713497806021799390500795013532540121089154107637583308557699693922516351046846930732731136956018166869844769866671260131940755570957465839988703425328214333935250384290740691621658082863490956324801913903563252511471450419416942826925728427415499655965014330833836302691993738444128193961450771566654887716597043441431310073683494829214441158070248626619208520704037264078555364337243748954227557734398106357652967590590666142014932762620671309398205532244136018339959937576255647335466318029544606152041936560399570620001343297638334206319632324432244351918681039003214111500387045431299102920036265361587778084011158673816304542820818167668857621702846106934645304084757254436595213237324788900503159109119778920649300351249867198689498382391152386978935956938771258391407871046221664293827921258500703807683866668541836623737154542041891645048977856905180169732108495083319291224274006155288550264432508302159663968803966672738037770450631751977626701057317404028096368052066600519924130704475423862099874860184038397385504359698859102532871070791990305688872334484561785390824566779131940982860109147753938000073516045790576156433504790547416030750289958411903662175724767238141109919854811126852441450259169297417757533025727342286342908384033010207272377478604326193551431248274865434271974244942733645403928935199910540914822791441842975179946379679227348601055130362070294062513357253679902232772624470682562040006030021093024549073259256313697114935369235387591454683652147242657490339915990988413315327575520602482041106488104771562936675570840593175485396099557787229220802909785440896671291919653887568380795210865743101602085319763926219964244425606144021774525738763674808306438064628581194887442328612531598510645153561793244676456177722147346525163841025755946303474955310118604901126526153295000849675664557024558197400527457571982840164725603518405765625091607085736360801105344196495534404935950551976770910270296340018603713876595337845029697085615863338737383150939372273082934818449121743223619227725302506301264660012078112651800151920013219852071833925746122158532281414327818008073567323559429082610854481545826901883951656720960347688082114873041038886134601899812286841216215665253557319092375578248201672524110071121202384937095083116523142240648368708105641328919856537165809372950371919887610717423118730653822982336999997797538537285928890877370428965259660946123240916681273064918309790618892236999930554797273598445075207364906081365142899473487177382047678483896679969998641036420783308126518062771274087950355094062384456835810620961224989888102272494805837148780701050303814316997679925773172034268425855616976368678454920783495747308058052892356443619486064895864663342516504256977362454609466053183955128583625344579137244750248122455188595499115702140464939179964574430871505223407239563769708014236679671882993715373003509810716892317979118064666351857012313961896735056319711960346307525822032209196819642703947163006557549743667936009841871275628839295876025356155526595457986538017472343081764171402689820276114859194799005163585972784462451241170892826362838163861664480105999696325111473009230146554572022935876774806867839527085505752156758722882091353093591070273744861626049177422792989828807890641561504935401892493442752975239310850882280848026188348512596936311203203936659200830305203750668620838462563760018801799185517971418491839642314808272654157906559073873487626812925728949227020161231623511287007583127250646537479963708600224673905193505597121679893461882519326306024041405731456588075778408161692111452383075574167480601954971714508006112260327561066025109727006580664070508950528904752636642430967336662427740548277906793996192044839013850722595254065896091549314752305225332275858138801134537313473759701025340765365232818445565079694544568429762505701529170677927205763636249958591789290124100307596782548951357499680228836882028112520163783928314216933557899210647689166480740342774572364832461889695603523305333157227003813567706727847426594717925746212121482210521719628382938873543728389310085809236434432792566938619777450629070230982085113600376910914445022492636116465744547493711062141436764716095658651114697779547159695526500959574889639841557868553650534802975374326068554148852357470201303060761650962617335900197168307844400367071540368797199733207795569456883550884262131558009581469095654479582874935756694370910563129859947821605276692561649518584463606737961833283241575195589600243758575431389494103133447700808166097185742142674323473720085536748696493075225689973607892786826793578582222094998149465470423547647417063460710464343512368530163518987919407613438183096315471632514878283523397617909574103346193835597664373874248974963405970517572615707501990213321327305412581488166681266441707489994599833745007403875962539148729474189854916574883988694278664758795694815254838952547070729626833420868804648604173094956478511201056149545293096018141051288134849063104806792886505929151903172037861413748654115126501575239592552378493821336601222211949275331858970129658554134102677970777060210447313038218551842176663059575411813470911374425522695035185739743312511880520825345135168446640063479987604636541630203730181046187140794606649737317696270921726767675370222726041174827004188476003072379567784857787184528760885137352471167361354482409075542871080987471453091463318566706780282878170740840411786870845528220300961136802602206655063093294932416792222175796312860823868423031977008872604686033641870159276041981968844992025739764702686435117469316080835232702031841296211209533708177574189464995685578428798876062746272734274802459386812103873968397514447783187426308167854047903735243565693736156382777540112316433840222927757830677534746561704198174566813812036104447215268934132305829939653462892650139509468898195744434755727991709645258681710307416272338665552293683334711067118613303168030775705426196174339602411780626907892019721879437303838228873421002462658500481095431908408527421963365092054052857240031864561503131107666262757202889530958461323100923712439764150261984765673184069523465250042559497911753434324008241118114490832173524179582769753140526453487159903497734252865940131375020857174384988996138732961156386275813854384937859705766472699009590913833281760059003127718406890402722870133169468551872330310361381762572630892469917897331904944011704507429850153478353660232758049051321477888058832833541639767672588126513825822217878183530027877046100986845984433156167595417377529032295327598025401096490114094214999646173211300326402309747964440747439425459219742884814952200433816319836396515259820352963405796631413478016416527458411425659276582191449161552684240818549546287677436625482093789011988524023325194698018418580260582426713396141180457909368780016510441423658230863001682335330621741202121773140074556827242870346838433438807435259842689088677255047075913896561172638696946417624079456477148974438072380069004650230335217795994752403611859751985379280222450219825839750753248759050722095803509189899633615251476831626436267806076222272866027643665123548396359119347807505368240929465077639407125324800322948995119917339348184365931401661331990208797993427656318748038753499664466768502009483779892272411066727706571268713792270887534031893651563736778543812129213863803354403808812842461370983865792922439972413118924338698892578352903063423271364332516989946079411710887795222431010008582023849319690607566009082752467740500611039206518499329619421722871525015765341235462958093746057553176234776937399322743788879236166680690427252109439022645172600898224311398379534100091481009644196054550518486175688496380606573304459749399247513471003348454008700862671011182333758696548030028768559880700074143321743240950772707105548583171943112835523574015374959009950812208314427993542722675093269490498545395212555594241730120278068182056681670459004572793614067867337190623220747257921102138567665515958020817280426960349613516555820504677060050042201273209953675303386559319612807209221492168148705643826077139586638014189609473289830945935262060615456842588959652187173467237671061734836296789576216620355011523628261033160664639227777581085817978821750588447501893858347547169682364240603572858783524547691318722505599344857976025367284499833518051631815479689006534531339541311616209225002336426377066494646362907652984265774139621334400911002035479468909168052543322364863195258892424110260937070527895087249298908091740002669278543076732410274393007845148699391204713190978959059027093241132303442324386268082294998168187474561531325558038994037010705243271474144359195247671730418931359806358885092481184791043615433836148149122003416564019424950214364169776207863139589195930818582610464256356051955704359759905035724519822596345895363687666876094077408551007690255398988170205266962403460746766708598180847975969781796933196838391101540626500715098430412449338311593342136746788613780597404321672555117243549637795553202385115593980950523360662725700303599678862886783732705474312085610440812310009233173454300459890973876056941704579755858463823184492388490537636361833855592135118305605912840265409761428591150769880483599398938319991856353648498993212580195452207883746554958206173672721135472418749191143945078249127232462966468245496080136803431588196425163316789698234863173885686129678040572502668118810338170404767567538366320439278990998369369640137386150518126545132420174024884456464505485355792208940241517133775607443572613379875098094140598877108180003316280361390317300809937291302586502702538074544697641861310643965168920329519490201260172362713797951056581832441140195899730510440388905632510923835689855316135532022281648913595679479953296042024278884069863370994561235270380084685977129491332612888673098847155755052295324767956836823788794707456066934420702541937996704139176123210698274851394561143663291837658799885334167599454374323665355191720789247229024345001854006943619723927159184155078578272813352751804183281812842823696960744427722020159760785274205747126431994322513404795665378202088078306013486624460785105344868875079822761850433790457976246426165332397752139877419955220610870324410357420303585746519792353835504287165482436498576264001349789188008701815943558720650752094714449111514986917217025241125594635160615063186040649015880074518167255622474454696747524852285145320406331269977634839317780777935817010900777316479455855446023305302844933255930201392326800932946954652738310368451967070256824783831686189439222415744406045867240561872344681740766788444513548761323973613544757835886313964447298937464964550016104834330553966641100798212561459209295760877862550268514938313400533787984549231875133111786983355535989296144838635073817645934767292530745138134689290139465852963855245266738678692517325226201162346765571439283425318100020872934427835131799166189120825518818745049221661803219356295879822275610552489354881049259345199262303136783925840913781938969527449244623105383047364509837903010298943444052547709935158019963063481439433245619525699660736234404387382265920500634948291527377213893467368476257659546470110594181785968507033613642676798742066645868917465442456310467577180232979136205744846818834013305153436577617710351222021667699492984005556734104123559069057150088271215202071403623937038034469062678259653255315068226790893088014112193460658946197397690207722028188777056292847549228154883696037091072914343378738189232555115731266511534044358389672380964348340619384876381522438777972005388338646226220728879504980611637211927503219436857773086674734240766474580866816088556167513782514129025823128185384081098365936762428705671491663619053223547853760103318258662239079324834165144159938776728858212038007048108584675607993793346438734360143806635340754771898549023535777341802834073086868981942544359907834930660342548580140422176823833402134787482513554461520658223691675664385464254177956687163792869804521665074365032692803284618225074729793256423646431744015212185876350215163140317412453904851547004663381615650685863301843881145033359209376654407266901404723072893528528396830246974960331940088330716483408853961242056232241220355930179247651363121675806465659691339615639600400527175483198316965091574619591293073676807469177506851812656332882402159366636548079541575884793829927315587305870050761363897269644220791277484676164797211685372920137537310971576035348411415188466663039552969555457822815178920150704279107268048458018701597498034847963330278748522460521885836567713925965127892509192044531160298303081350172513504987643467392661693926078932738701171876827727430894005444363726174644900995757844654764323327549732127998376947780473844873989115904118690623709637774670844184793325743348990933277241134220663369022582188754521148551338070343473006431975628290675161024645843019518164042013368312876198025128519299393829569416495171075831904678913446291137466636223424641991912800484915826312424940043877451970931828302127183526853962130284243020345868401023615445838384805241411604426761735933692806312205518004550699526741849938991946865544026398026608039404060769033991815893420746134747707909689151541829700054818391451201854125475583310219552963657513827024830822763668235082461616611193617713940173145964276746305198114299362305745529537078933689580242549813952459287692579679289249813680876844061367613753795551832965239547823868846326515250220956489181463087407984226524839679428311765193458348262107436076514941830568732581908041757362897631543012331372775223995897790785471292690091036361304497472104404249778843515863330044499316116748278658084610427580568885890364072389324802063115348296933357442135423866030552811636411140250912715640532277456194666086066514584592194754695839356810810237793320083745960430000872931397492124893437969955875000218876596096669780739665771613775271306803868444982688744310097721603147852553326654225034572180254426693249069672705328129547601177497640886585949296710220550257902319889156626206735832448868949853505673612278036943781048787709452824826230914714341982384296895089768774813647361945880056617997848742131298732561901594333098472043497475930623221063865122696623604256796984969927424260988822262375193212705508191069144801166651301939222394013517793326639552637630323422241036862322573159408122955297219113233496610576528274424920032764012806975700316373667962129501839347588968204892300029256547183996790536626919714980937685389390356012466279851608053331143693883570201366854716398702705327080358205760814315169401553872524468111902422286551542753041238878190600611087144408462608922250760932137518481316158275270114127974495274971361947402911089099603180576056383127197687856814252972981243216094594625977398165037817548890227211242789475374664525445732369951488962568044812287705032715495893052363454089717504751904696031945210337021133510524762803252897597212124287869614796848988907057900196387188784784905618147959826615134629237916782600531589393348688796716362217914039402536990442021603405923235129369648993818924229125819579870037799451308666297503693539919593449794722660430544382235488948767761464279928517788459448242030659243817746380839803916611064305548211980774125578259005494892890383608694089459845388124214830293917626770266650091066199340076310785932489828492918978345040148577292296977900726660962695241917013206101470553235577741449277895532842063308835110060223107721152743963644774533469235923468343972826270696026447945467664454167698719765285787435867028054063515692069248898145832354978474307134809229816187138663132865234931178379406847576078052283665347916682626338051471959863338625504672700745856640858727850364766707613151894954056004450447116307957055487770125446020343015143677810019953631221007384103464851308398776973868765587957304382304848400720985326131480917235827540520678428990041667987933277051985774468721548653884870001979299327357439783285535556948160795357363073116758798802490018566350679642950374021383899993544948208722065441386949847744217545457942508525442709532615479289753638181600133301182326940368051883284836245575245789423274329648732911152193297863289808975239231173712822035763765039187184672952696300374013421463236325302115256114335782594377226111577937982162427089489932194738014023263600122054205206826646959538071623867479519021721429420460212715560359702123142206106467676498837978724571929247878154754367221581679717396274627392790644472400143715099768650774598841048268113205159305204139653724744883309932862437511572007154302171802981715588248408463840867979650951140641112908502393208865357902738109994937794436741630308961606834086751942241336851191377592409881091496585664411820323565407556390985188494511230475797377797306165908763422548300961338094582623549263723528444781946482322144609318174978550944743877940367464887632844756843807743449714127457145627803905530342019888701222375463207795003098376170427920218548781391014286719859644602148276695540620161117112879293351005981114708153808023612774580549862990041436210657631035526586466016150421797726714752112793421097999801343721582029446772213261481252801706121016663831369130461854177462210815982866831693179073313280123743235236466295016863673777968691439929355563308478793024747355288367884522646164516007978614700757525174228709792076257923007401680094575185413303544800190596142290840742466899781001325656265702995824539514934530648441121296858883908761429894477833892215445609979556905385935396837615628830212847752890055920535907409885606905232404173138929436424689912679594778379102987467049574839380610318267090172539387668601236766607915714793946669556079689911082051234664264613259376926026759714723135939175828433039262408760880091363761338546657822936662639612640366872159161431038968408343677933879402436703129783199171273550171259170968989249175495799877334232795841169443762907503441541087897899276314307215432799924534153146099291480465163502887125444426301475825673200893026355544962934963851720459864122161871631516365122581351216504357695470716699113084894047522418540507360492113098940435051985589524089590566777064714558278643760000713630808401717255991514083728531604230562516418319398342847197556356781796473295707850673120082188405039858449253583995880573652046522994499528933177500048624144039304620707629059930218378077908470845041850696605826320428534511115605750200320329357438633155832017319515958166331369893278368009200633332907657011129129764771665993770614692102110144073024294710771406249714524373848862231767508460147929965918596725217133466292066458491059512072556688061457639529270780657532122401216722684197307782378382356951018047793184931789337871736368937408808925564214621328671256003164388654613794806090145273160546205636284763438049606983717849248407260086718068990318726639715386794021248174849811775800761997746544652124584220266589445024503438188061142824511057018404960619209350720407391525647602895176006661351164887570186970212168317314578755489991002316154752462542728719872243870996695501221800401764156984080971099445692562304859247404046378891179701681478970484865558658099960994716488563661658789992769927630877558181048821139821882556032518280824041655452257292791757830461455147983660915008767541891655282123838979358318476882170091188160763437288010265537288546484744364060782258830835142306014796489519589867270076429389052435592109090031965101120524413332687947272119724629925461892222849535542122972549913469414300363971285818054002186719545730329034558393852540505405315726514523512474272735479794952636899237810262927963318097039694535159239719253405642013224713827144980637244336753471575090166084627740428799812058524181317082632044911594587611511586572891013704875913880830237123841677330310905220986432353868097757713106352768557206115128896626794651993411272836011073597875921123435066470336587443169071425999323800740850135302255226859604538159713206009307789086757507117138759147720526660582615442561234660970756153775443061399901525177478378414959345647452330110734883503299377051874243041962971957922222652480693911287225414742937698050456047831852852048016932908598580740496742334723866281972677415517650090707574729877550942058639386419063809550734991103266161017375899768609744943893864184611928695515260958176288817139474979329032147217179110298961824749185171432212625166638641018041988634618491835173863988695845013930419256218131393918985164104484881726666687966504150481222473063049267429505282457945512859702844156016420270684200891006391755753731469394150652908258285839470136226976457425029269719157255632095711563969910317585240348152702986753312208821879518976359728373313983639491005524480776490633574267046739259696672546677547552182679163683124011794545791204716635574207975562229615039515219750738584715688708261066546688568661791353307986484596663358929985233341941506830046457201685368760776171619248111000074173592912210682857669278949676185132897367090672465528744006673392783717442959883671903125258035921791631606584070648414724267520556490726575237896459070344804008951205929316462950030851844546748930508456826245885214859938395160534009503031943873161601350305837603787165222954277639871853829227334225785472289468827774548961246097427665073631752240581739296970039540620611436567679604610679446051316528903057115341061779964256989667011941723423504872188168801649528247185986551634066442090440452906021206152487867620393263285397103880180131126418596703076566779779600534110871143466840381476112096530573280509208973221193193834576194871455433829087311895428840529937658738669901634971464438067016715042754724310947094413543477951073274994357286500606900188821720819521068700344508929533108993225576255761218650232951425379209920953858562099838254864726155927881418165398432573253810430282367762672024922999542436160636212862872901038430328871896042064690453386789052707120215464057229620027413488638795363403723637796268673441418090928542582988430193820101163596018823251832916125670557935039647291902197674944352345757907673942308852628898848458325134983607549274244197191189774165694564136559107092304897283312876574628657717491520496756864711968718535549064440588832048318794317260757930914787910898093438373973598953973586100366937664143828662107083947351297017477211226454925388604100563648880951536167174347415495611224996906960192165633034692712853988349391322916949395793108061819713240865154915359012686012035003622959641866731646666718257009518525724171195817487569252639798886464498402728210001811729829778897780358520992281994817721750301682953876777308497576442618212635934725679680206602515812030536171808291388735595097447335600899862932662750399588375963368886137324468665895656618350244291296194870886680403439019804366540043353385408298079735590200605936324259666424101503263950725038294416159491534877411525182700184253146812095160069240271020625718577384527792944679179376547351489928209325641225368832968726373771459002971312271765330808355311947414843896231019643862560521265039831252657977354551660243641557420091946690343597490454663589914184235356932566085653779032880887827653485277916184272755751221496395492591554225226445300466790776304032019621805706726350803957996000463120517059070434597722260750185204807915350282672738169230727858455090931423754815965766232794642380560806003229766493282867637722405207170060781395871336817888078801063907742325927964916165717697087413253456400689745005704791709070486936309231110659252184229700409144136748795764357992992693350962995445131727127984610149911752749723381016571045777611434246521417527352652359489633715086108048490441772666445215306692770697264242113392824962837869614823549433930439725127431233033873536050465368578249805666012681355717098763088663118929632909311259240981284588154490230967387274819737597957228401714809381556013529032120552722024973714241543296545216843625314724326165344585912201737092833215396643436432127963382048572063071160684517845275060076378648115302769016103552324676054221024093309536707969629512210000907437747216052790630117286414627951930146091481200449239144350384678506234466508874760578367104336359714249573076597581703963835451974669809105233127074509645363375509492338772366237113653920196962825496094643791894272559394823968500352541757179442759303407315206028085550293981508266592268345424962098163195029620789418766398026879097128301875571465499100200877875557111862511160633969721163495269058808985013594688074588629404878783245655607733838713656865861968220953263944821486870310569886003119593669605606950787392583863255115146803131234886499910487687421770389584702417390091638774819049346143867935095366877060391332937347873147721470717483480885301251253145435496060340502089923575085862383860147239204374808368248940169005630234022778442645624706532585435720321933265894854585044537688039159307772389610273549001779967199898261514246308421022718659214706552894433094958983431947158852614543556754642223996099670568541353365961827407904282432743833840125390241168989173135903970516401795647480646820213013943407267056892965796285434443013592846797994428190418158663058836227546270927039039686544687146007712291472856735437834675188074002594419321396752152366355072317313748011630059923227496483480824544184614558459640465572820302526347474446312304714652885151535832440726869415803181944663810825080295773772757745579431819499781870339568949981310464863708434222861992216043194673157710708768432563680983020527440860770602936217202338445282205500875091809888270800624562170540494929302156069635677661224282486145784897000823031242515058079027016056645142171745184048804971453178360789143226074963954875200172311226950275739654362038206537664574369392882017829628865887007239361860730079129429223781568186527467012790016237756563803517518040733132047491475217875739346584316933577768547318864514170293902684496325674794079877703562022630907949947292483590149181454682919684003682279030848989397667787281654999118190404595908783476249681585737985403931789317892196751227608088286569980911880397692588340794391935358794445637633571485300795972077506291145853534554231736730493247489548197382078166982998360995265415025934736994425296892920181781447160788917860207314908163596087029969655540874692894036143644862296052374303836197332408457234865768963339437920847546383477349736825454707261204042837401279552049578918076196206715089155453663523875557893988401220659784536247646175839847636371632289055032131792495093796580781866735531742430838683557413827338314224264108783738357555050762973130420331916488094271163080559662060939227207279821219348928786686955220624511687296510107049982418867610038267627331031386454565530912992172484690728244640514690707493206928312424314847536281319640482186749699291380472947051398994058873819219749625191543190713550792510231626346958034484659902900029742125893457932698829528519892562145940476767206114661219326898570005282634031580816293147765095263487767795936394189035818517395488044189503371011297775477213839074820680062954728376152700575323579728520616201276174763824061616649237489689766365590075771074456542148643961061541234865064485718546359379474534421280295640228442607601557133010891875261783235738243003142157427942422069570604606542491737312606607645237359765296662070896161084103274825959367395268498039491442067151909641042447530436620274423706976838953793725141577259994477006501538706477434416856310446559163650876902251295240683741602119886421503623950228470499738633331813380688814078712416297602058590254850585442113197612377719695733203170611262269703472636151876081382026523796223325708638196659214637608491015690673040719503290714943618728007379312388627452998492074999343012770983707914985518390290875423996284350889529625272626469889881530539699399950812056273452148262244356043421478793838993625089929978335545063834051777731640573507622771641646822247860722267780010473853599996728355911673883768907279335521965531146760923967416541835310840584549976093559841106234230331830462424000109463336312085905388166215819682127576842727136477161956523364749473798206971304164607764011479289431889171192801383573288940063410178172006566774990395478325115743437368301260210702380929219846106773769524326102685163918160648729911280142254869756345203971968940498053909466061427025742182948500459960776946255853231575424365810686762831193117386434982080653628588716477812755922402155744672035126716578054538240577415485051718627400467281895717823917221356538922539055648739496913052981007361748496776030331794815041444800900821444199482907334176655143100357193952823905011087605728459189036818815510507126671637148366129012097266318629278710089721156768063782122683644295366915239588482245034953251735663560035279946585628255106407112151434668068505708694474130217779738470962607207619425411805296836400497566578916976938814315119812414402178596500028715496927307057974574212195151129791478812472033028799970429900946603172235898032042585148501406823035420662992004015792342309465847908241057927284076247735858304902390875869212124099482153704676059730329219210629590576977578475768030526321948496697699406652592121328136371270787726540704231791397601049508791696258325887975006939802998783854699749772845700172733145707260379139706005168257349659776151250977904823618395033911528149640198150152874374039581563762272433026552601313093850014866538003971564619435433213736695013643337047990476434075718596577970903420400177179853645018431925612802126048783720354950637083110443754247708450800264326269574953167871351559349808365820672033452443606342817078456432653693289478195567624054062459023429630226061987795225759722767554036250670186857574578953664668605281362593279456105069680305418978429300346009099077786732279856209661205097323486690124628214826729629650375674514794024347076431511103851552080039645320512819841922418533684313458933900401204430995246148161626996767473830933508757024669267932547065116316340124580566280275250887261605395734847404969739102409054527806286446312478509056555305509026780180117466446301665478777403983059023177473379426353349886577180487544845502984488903199000563639884363680990519056421998873392104094977240730361537670618827152637904118137781462165654526456982428973478031999925228781681622543845300440477145184620694391327937967940332567890038976156203641482320416144962733740823350893831351738015453651443476093052979658113349322772214270264635225035856870803477637974280450294805331441732132262941878418740591163487436772843950657867927751574924553508202498110933825916826500634771821317988006520801571129512224615290109710832833518778498124516545120660091801423889249096759788928962575921304273041832404177417950554406934363041829171535434997563929483002297537549124736795067381547444559519220360517725377605170847998425367517526205934182810908067755547886802970696262947636641550142377849210981095217289686084255059204700393820595872505986663589051897920999351264536695050863201297928748631217313943338339819480679443531971236171618945990278800603836556873210465205552222527778865170722479114244004514525211596187284930882448678147743129402035433376385164441145721353660924716469272934467708177222396730491874627582105524549598031374806965246635243130099748156178626840840797091116869256930634835800008306087364461304117937795151382838717154718613973965122848232035658858436982082166422353935935670475008563620780181405538460571136117726306257338257958347209585151268103285411789486911769608882445301343770615034575321327542759483082830983751971482990269088336797796040500344306156639312560847632489805252888528350981963659426258216162616351020557902883660209797319832836664287843564673115661214477940070145358075224199661893366888918770745652206450190718923606069556803074297818843650815013008598261142951874826127925727682603220528437051704521299812042111021571084697699181028256096022892077439567874506285446574012010273175443650035138053247057561494418927704074621724136620344974288098676499730482698545595276390775805769144747566599827102423819519247756983246670964573977308348702450507468557359866118932264477257753816308989014221009897637919866593077769725414485315549590977225853117267871139016440370650894979011269589340048910631660241455880410029138263996347911277572011731022165497657734740728037095225311106157975459887011759465537458731114776676098740255284844940340537830556225295382494892577897378052756881145174078221150147945630403055197963068788167882242329805085110207986303277612065815628584470855107987907096027974065470671442739267101021955125790652370876500721528660660984412042270549828227978698831753796712979117990520071390199742238589260792384057471951852470404172232515225106122523265833426518861273294831123918607501052922921561719384692663872069097015216659109788480363407237616110842645930706171667866867480264940586178564268282659248073806754703102083305331498478403268968529241563323994385131004792320407658716145018442945285114806784305130404831951802566220511464748966495215525824644251687205290670505637720678851307640753632777753013256184430726275492171678557633466204583819507941278480071220234793123339167957591699031204526448400260905915884150748837055297372071061855927346189860365211168787234855837294892991207339530804144471632612908368951035179550275168387675722564300976206918288800477400764898733276756304184816673787712330296008134440070004784668130744732780696298721855706767759728766252295249607743481319939220402297043414939736349931227819603189194559010148131287328485636141945668881109612501692989462757205016282490841242910233820065490460378465262128720505275782637241863446245254792612612085402072487549392546132953736303042532150647788901256363357480225543586883638374830753815595139708865383086860055652897017412691474472841284255950745590206819855747013261686345978877541061411707426805770135368642574097695476334251505966316452420538225024681526865217881050980215980508809741931212269436338879206501249300042867929503402184093986568924158905004972630803243973921059203616412856556053794495252280315810148908240384896355302643844011286897937438892587068254027336173902304019631922252767195105818430314703894818946500565363264030825091420385826391517744193149685884273492538985261487178912616741786680684232766475917430949680197660595785353484045852558663486743555215571373947743259439917513704385835974619313212717147330813520006856677015519785567713650555718536348839254776102603492019689309015231896351930467180075370195341065327035976022917133264533023208652767174789650120398673121349808302294568792766160228676414414169741245802873817229996547777741143423048582753938660569452059976788923966068245815187753592229503181385521748655202525384311624885555331965197488651713373179652719880160855969515946044965205097146539410095220089990264582514375093730341946205604951768663072485433134087134074954636086157579721292842257720495349492938109307831489984882043616055501455178586522217386226437790349853011147665718769958313347778654812959649389656561633232920383958025676922223038030976712005168837975884081319979052376689396065558295863154914785019832774215395107368531159203816501389029214591664811434786286516551132900577891675893929019571726012616511145270822093775591101106633778534044075158204342813397279484290317072140774760549367516147185701346647590776496846298984388752226968982651478315058494047067149860302055664116025991402154054616714676582487954052814485120026401128012956654201709870075409920625172100126442704045051132650096592152294554073312321943461895631597970366957023024855747272869879829279212753687550404163595861611368844008138488896592929226743436208806397557760398494254965725411138541978496383297267349100491092313781617321765747592269040677989789489347669794937996228155749871681640419577718471554795791485664056657290517700175592684788679538685473251863628864689415050393776093168535298826379867116802499465741793064774274101404093561161032528544798287160916868053335942148757036480215377103205250132821364427085541567701064524865302353853022909657323397748600143634706865004653868671425957994562846636159979934011759410620471191244501680025599269934718963579445670158609315760977924785261500331609709492554393901499215793598098554767923671612618923229719353977718439018731102130875703138784285169002700147952296944790703683193895832616745457928313930904241556140558315057531849207480662754183204046811700339222784899090283944915907059779632028799019195408993327892359934306539276959361244176440129174458287684289158462177456767546655576169449613450096017315824025226969639224236917194364258179286049570928457253774771510699096663582906136756505989484002715519982006340199432065595497433391241265937892371644586872679925781937871645374210960028607091550480093284112885087527505039594262358145711607524700391062193318751676837320867375945359433466826253976352784391103068609909530767933761981674117407023260988152100372613088157394217094977028506965038434396861102369327204040187835417245264317094176428762157424386888717738558691523747770870900224400830025315814982834680380837801190154576009745786919282801978806132061744393229109968318194277986775377115491146115605522532392389382423959572936613049809817824576325830292998056322265784859471589166229609179404488839822625499863326744482691300883075466238239525816603994608776407796975249514385274802790202601187216668384804333986461533217296942768071601524200289372341773844959498134793277652612350082895717408591268736391799092968116464456980009519185336229956901527358780369711908640301679541837257424967811035059361204749759280212053171511609246205105278585145433667629796932815460865660629448613904157229051761824447589305011309428359985747194717394015332427385827668019935391380071616759981657307114066595062061671891805098419999581997523414018716515272743474196880926493685957615217647099969818406957828438151414655197479483641610440875098170885688213935831888906242245958072713966420752662942898101257857516188571711307586686385186983653688100627803207321171415848256503165196025632495875666201596936425510568494751456038317713199348451177815748545667268052488897859997263969221786741209923809352672253637873418161855560930739145193437537237967762764910721597273328062672105832260271167128232909543920238531936533049002039022257345996662296885957872041641822607220899737504511890180966950936933054995449686080164716647717282548225175815927031466635729099221930746075161726164444149080933375986803747528312047479699915488811840473388763964549806766333483378146446822696850473290886652303795019130839918900265368458129085769791333438407941949474216693315563203050986277910990709038038588252204059063589672254955287531223791076330197869456127498355009914613546995756353787145740634058463745580545953859709606997905240824669668943458651625124674675869272710054256624158244573249540952777909639291710806132640405027447240567898599052859033568649806871686204332624055609697029083532965296314743104004927881716204802835212497098285013681632604959584254795583502831018467393092951672703859391004668435794403794293959252417141657357014518309212413189314396526321473285445103376707763869554849262378649991611230670143575613767077141106548103352196174853334268156999901091427584832942602980289861960428906784551139612174894225085264844418636796641140261252511275905953515745318106255943701753710217545087953971106008652359733182417399192858190359412584442442480229156419555398112403946401093840885242078348323302415674574695827984968025780065364037050413008914965878655299545298219165517222031536452204054094080265642470556086159927166630370484663387440080336961290047576485318187169153806124406334211736027359202179020947523733435330456228852031296711553680596050677732993241061255033242254468269050533577990364757978521259517657743459382531260544996328442699595964276453051775678948224426187549585924236420832503890412046133986721235241734597041873619617338213168386014578667805387215475848453302108098542038509666760615018866454902550481466469727026331477137877486725684659100788569320685169797329912851002486849659750851785709344736144642994581292567658349185837022599966204719168821219857665705891094438717285596190817524470180489726106372037491734893680672114322167767447888604268525953799566002459633578934993463562252921079265986200400295513514276872485779853737366952742694660647912704240256826675489255432364924906966461707868816415748986277801453791897172319331827005922819344146213476909865718528464171459232536329596113376963948177866926585993763102138119850277386080763478192132394923110593010006396765343644544076789831339129287835909641855019628782061216759843407806951521231831534296324088609567445923909695324205420450069550845659557715175716853648049228525642463342344110517465420169258459254353452127281501547717009331778193289199481447112707225941885477427589176068142657382497498748191650813438005166317098213794158371640527374927457632713567039685019923190253919109519763685594380655756165356566256351900266930600736801727789798765440448571265888341351894876290979767312472986385773849364341652196068477049027756983379112217025134712553373710369802149988372616068913411940194687604498739269373788645346671356823039097302100330919320105816366128637674257980487522026497737750292578446735270180813162769435128985528102863327408282756261791058836807108389258757284445477655222057336640222354295904109824219827847648893510516056605657119052121323929279840525016440867440217412184944079633647747557040728427122168181982434481472709094154940731918558813019214632115236036523385700332155460309952363755050163242292162227831371967054028276695249295060061564190376247613892951930960536834661605839198437704534185238820665813405463755837584650166505669124118881601041994069307621570088434724311499416502021593503230666575020758069548846760411634270326884635430749835483600726679063900274984141820481972510709630308364945324088020350060018063291223756499765066457776905564200613305080148195732523207828720494394925252934813384856812042954681301947317965452455783590051346823457225067956274082492096286286676645423146152738561903831825590287422488383496112565001363579195361875323324367856834835737457952618422408036113041002118050014442481258006672683018981972569304767518926982385921625906187062789687711809423682181084521024788806518266672288789318112284773274855341741172814360391563212895051609571313403336552148426388008407706939269624122645044393824905860580930327583079983957117609604283961856558544265017854118400422603820847640384690912852184291734590206439645604435759525889343175804667455967559212788245843913859213268162979859880109664026233594498525336152293421079417945583060725065241268547529840037235637632106007670286229062916926071726629006970581783431902205120926176704345911252484036177223180870373643131160659110247733267709701494805581677964262784417398632675943454707316606559599607532855832493026714200482929852693793474704422711782066523875007571177559058195499902996809445883421615976595581120522938478410825718261811001000928733801032844538524081483010788969873537103573439666383744127573878793491838008363334660409778219668738336290139551554800994070367260437925115104793252214389832611852016845913084713154745257780819498594785160110482008591010470821935959554788414746943864569217133764862571518934627261154049060090581860353467770659552303496678051966957326670316330406323650436180863144801122626190226256098598055246051338892758992986824187492901036574352885056689039495503224412874322772733941142395402222966482963694368873330443391867224200902459913528720605470201841261786127496617973783471307113103719805945291999935817740762756948479083033310441437635309079892445844198449668958265288087992845172338783505533091716321506930093990446461930847835070300064864863250381330611540423678601701131514508652357942576561191890016119420085045482514008385717013076161705970758575899117523088276003176703200815106607178197105262398202531943183553680752690897536164361627814442168883411714526028755128990494679254908634304760791821625091311470084569168537214659245760609478799328744483263090985226316587432556146811377738329970360443438309539580065895336015219379532155151357413052372962945099324219022438164057346777739854678338453546378198361485571777961495578892086096681210000951627836427866114314429661882176494870945638939707598532619569448910354640620589890293196592161368377798172215542539936987662801171731643689265510762291266861898499576762810938496502396442808096220851481846204371480105588482139082900252917084566253857420106964339272495261676145914301396499366433414920732207756523891811245950462229047395499140193167118731741306984431205825267851929787225885845545772106620905537752020547092698803331869145955266760763266140235025113834289454437236276807745894316702447336574325288349005266452409865752719583211952751417216797211283939101350991846557296713506442902067543717745619992753162158601357994941448564488202183691895492713799477705711131065275772625153212491237204108465886122115005240310189773611824427124482301578527993251781654205767139445088877104562088649966216156394760587376153688761192766375101264552219154993363929475131893999266924206213212669479274590822598625889589935418168170423100458191649467680943128647604328415993574435469288372449104053861401972851580320622913449799849261039234953534669326402423567754739468803095950726227028162389181305175972874502207449621175012265262866198516552947969631131990037532517618788978668633377983601931862524620486808641629482198092116410325980296972690001756940621947798996815889696623431121849648062101443606371073591596911699879257522696478078538484881413264582988754426761183461309766592653997937150948501129115742750322376394408047174142039325473200203076753773175269548956718816458253843451633483057314525079406021512377601485433299218286980463989703524881433456137220317341127789238850625071164601461459845940710375120591967085170158170704944088330297895453788756623815551860725586074835758726425719623634940839449274104995861137615448582217692987518673106701683656456234338595927342594895108064181937985473378714074862242171714429608160446197128877147352041423504463470287672853940820532105560111805413842250016407273595060340156877877249563889751725097137079661121412877849319087173467433735278859021252922143144208891309286701551281975644283406407357843328394729445792024586934225373039350190957842145072559516284391067721438085142527786252473902618679099627379090022183930935033892940541934549685387520184262667568858516249944780663651361440341590205570193425357442777894356071820202836722007396780395808236077721504645582854194239540349405067175809168621498686894350505531376446546726721591363781852467361583057395841480369654515025127085955224335082726937039479357921816556188180555991757039257354953224518893769221052810245212866791069292180939874778187482044188782213994614814765453183292783148952888729757759015372264196761111989552396565856057279396977778486381055125842212812785676307254850628417924384817362005284167640600868532894795603931659266082739687355138699495325200324218624191000202938512596015940569794311365221822276728996082375828108620133891254676892255664295328751423271202158631942757273715431103757908167695144048767049264509504868062810256229685287321670299310922726204631501026376582539591206232416330091428067516759693489155343343677813616127100043807354222896539642434775275815687228111624725027819787293257148506748174266144085744997260664324135861628934962608914890950460182759928460832148429765008165841894457518036512529007885248469175448776265316536144474233530454663627016186374259415732855046123406731223723034960420468829253260533604885298071695937080552420530629063607956608307168123688001436342992466039416681491245978002822897228417533290508968822229142318335281525038763041373324971895805375391015354952567255046896228903038217877664968244136890473904131308348627815904698478412443759847549545238117450632643821328718429258297140811192697556790646889667815521168011222804558743431293029312673441257472108327530396784572281644815727829334027201801776300572043712198295308787377418658069386513951926830897372768683077711508769642561583129579455400305166217833562194887135682564613671138427441417979856839692954500197148855115430503183261444283177329176267941365432161877138506109511684077867048023330743821367417609655962101058566385803896721061326936917976543964621138927846529921937367503158881952058440744885035011746290681142695460715712760881139446351609136161627912685236320175322816898573368293136972460105624010846762364084441036391512934145563962727600675421550113661696698661342517515841622286859137538866702240168245758453698785259916379528642394445150829496082838082255598080512480755059116441066044319727057585353714339113611617078354247501525238111602101596158043086385065492565718905251685921560311294804583689961230192617180641704879315432007140167029076324983679937321029399104467256533868903113363880631404653255373934457310928794263857694086531832907967443984186470914795473660502043396239149728867476256855314916439036333103821565302647158237492194404951251408152701368103902497374960830413371371757483466068596126137250096416977996832695743067666862182781078059633145162652046015961977639550952444591596308291402151541469553916483367021265505804392389427285559474892671338521294476137074880813114008149283364522935468866004325318625938073348238608333787536728880968452961631959020516478553145282383941756061173542388308369498027085185766745898556108734150974583262762448383448158379960973405031641966093039402666324163552906384770869919059133687415041484735760181497710328843896299074694042219945858922940611250798591009691311139889827101845841615906852257046841091019112403913170237676752567043400651792551434956016867974708983023757338407594652148760008787814420287645722101342364328676428384074670458277496165601941944491834334318557611610188256154896726689579262328648525009681238430065637064919481243220529317633029054619234475811584329520730722044270415572950626811859540840020150292040975294804245350351878726465910993870819195621452783146978343247502953218971319588851225541138523142038761374580792212829499441758769534281003715397399187514101664343898060856053432310208935515549923990745339991135868231490370880761884091375524944825907018013190113067914987083231064686619032736550246397372384911694202321605187138294173793967030246161539851005820797843950298705233694318929697922668273675356100295253264620668254516015615295887128103030679273033866172652611999083425116063389044113833684218290025708617808030690732676288466833040120649763164152670745608220758852823615200160242742785297622133787782665323295348115832296174213775616325224831982485699952534688626760977375639286658336379351799913124477893672048852938368855737179431753726814518252876259694201882104439309479772548284160276179088408102379169803306542319101026719348539006288110159869628055976634977553208973526452723298571198312478723505585273098046734269501923753613356018253764475140631033590720150077402564517043323232366417887973184911579196906308136984400381071911225427943423483353359018309347010688902162875321679637521316792570744585525515773271618494158724882274301887518569910778006832071227277538525100530385865270520657233019714621124728090304732475946919973299762575544010636639525814777850210434343034974254427240571368893368245513652482048235156953321946396516490866590110775514944732718078041602146182828098040523212844189747055443414000906441459842890862794412426472326930499413742938308645951760023059059573882393721567354830259549456924937425255132402775793810475231575730879138140772057688986979532250333032685993799293987314266173082629549823782363585923755580195649538163715780499257897221808989795198629244781510132520820811354027451327378499584467874940895275858230222111790817820824103916737610120241286023808814142224757990332855754544486298403960686476004618325748000975416116358147441669068329750054666326556815126645962442111605420396333798097877647838222573013218789140502146210172542979534118414849671848502428675585187726201669279891274091964525624621677374695786610092938334439906301782514849998962160233610708009774466934294920658899982493513249239256448762491569739951045605367692902951349702342459428361348747003820650751374198904992375947034411511388362980270379954002757156421780066302254736637323212644430751741612734879786907772934891471810784827214230218566776584293380594685302668051797853188538585923638614968024375959502164452970182031419154687253687016599364627506322228609111323903650654639170839611729965600725054677205876175415649872159562146201388506114687266311366921104939090722778026565219834492605368726523764587627429700993166452887186018569704721003915530004344547766230319943182153944946540202373954365206330204689246973445181673550928844672261736189239542727361137053126681835481772213600692906349215617956876713584930629776491404755438021211368262653121880158906371246091914566592216478996370742113050952370968852170674510443565931144796855067984468370316328987220538880581799893764180807467770710600226400476812295079967086597970433168371645691693434905001083078897903216585104352077823225333417310056138243722163964741762374149262859414640709360890136182662237959672863831659853782985368127418831211919526904438658571673499373531622441031344839080964144489552064736031730962428533842480628583861418364081140234697883947137877226835125655166751257590153935180382100027613293031648189217856841373344364588963180448979730376997635236979933222665760571943236016421399019288023840467103462235897406746237866889896276488606213343812518416357368775573872324229390831229800987369108367111082591463234897508363093092454475084910702247735340694022288278728065853040068041332089287541201753639976894582720342348641644481326186310594384951609021295994857222781088604658252235745663205244624522535269457070430340467237488210870572892845032567534548689356895442056184110905151976016303836391658399613202408312849704459603414279678011642593624998406716574326257894969734161085971481417241107707406825760039501760714198713706672921443281758917644462820061078360100418167433273850929385928385326665869981850597782795805208035858813858254149970468832849529629674926761250173537462358632437564845155693467097922632958022716127770453914247627111594781932344520704704867136461691487950765137208385388657085874915354991058369277296074667371633851462607509570010687213108860033152139871796885061257214999364433618011791243501755613457935982814447549071003214474624807305850032449180427323919630762718509701426658355461767869854183422847272252133471744584330998915826706739557452145240495338351739161019230643676074316461196478502989880690569551470413899429800785445060946889058360425995385282743768601621264250296460003123699478815860194405329425617161292099309383879234534425619240215145524732994895475779527479812051497194284500975637725705109473328804300121843796112338279080650892266784192469653265791601077586369980339465066322754615675457026757148498927238955606489656232934375257588854811937123453719362747664253500592242803891375282732297325722498678772505537395001761043836714975974872197434544567164178581746536602114098966339476076176804915697398264455649784280986810149868268138478775043751128078634805242420141879950281488271400649965889586454426151430623852884697169769619766179582290934998237447994266175141885368709300336524180543756914835313546785472151284293937663686420971983466584640405496857647069291944626618597140998047617926031794393532864285900372663778725856372629026936616750665190658148622103586440681181172073792948234688015110232745455498191968395785854313638166720939260591255866627036763762000933350487671807617158340585507860202063874328957690235800802829825314099379596467849595955805161782693160651214734357672644559244018102471056626525259445486053979479610347073921893929874997442273572728993054901118425429873788817950169493616899527276708295584280031507533142537735513761603837413152350316994509891600418530854785222769607034270468786776418057762987495175866492523685064338481446638338584119116098692604072860386336997200072386222514945643525129634362425334994479432032317526888064060989393724376120936368951498624706197534867266327674083056498594946352794350843746975260565391439949721590390199249687533950835416643531369974959849524015597106377325003236970768728161084528143358491201565877881574167182794131889840321622687319955193191441454417935317482369969625058027315558950252455992419105110883235409740915792733107681835843315126177053735882319172578893597038115359201674791932120114183127867788648338241111915352838237960952310143363732342917585555180242953227884617907526656537235533933754576260745742412061833614081086408110521743178761024532987439472135152419313786036707866974694230716669609465097972772750925493966673898959399468873609402585239753739723215573594450575941902525714139992744175678311956847413627036100535981595087481191172770827039689993131995008164654068313064659217202395056433862121040541606127092307534977618704499659918947016919580946962036040676653327235725938954107268493518975371968988605618654459471921251566639192848354308655769138917111785092784426066314805601865004395602718770508651415007937443713628901703174252103143876574249807575930814925481152639519583850106856649739374242692676914629814428698364028360420631417179655790876343637506623399899520647172884944919413773647201246104215401506280294836206751753922519088925750822757962289903815304747358216096776379488449228179471011302544652258684724915555652650696561886046930310823013799218634938110538191060195161187625195729567611407182252450900860109834544531433183282135104217380064212605522940208989086380000170983389544326504493648323775080398002268150716119674954733757408032987930031689962144333343259813608112096960761111937605649899577190072295034395123381038713422408733385336695752406510207976623374991262442356542541313467920800430338007319649340854163843462999082759800205570809877230568194670224311686741452781179454944304289027119095687291032251145540545113508718801045093405324742306206838634310227081942922602521858846128772026448897069023377989395553856950904947645097769411621497442570694519770416098245877293536298189281866819226439754378084164660553814563549184658960857424393703979346748966040137613527927528210303001192887048132126501591918606017388858386895382066602550151999778776440899150197920399856913889470080681853585474360268046837069160581386670838734009600964628020301203456993432375281760844849466264342412849036425342854624156340766175420241750336783231894413757383808315718401179504245256792355082732983104959276509212582535306945137445578859582796897722079161236559864433106763422988005932604900320689940399402947918286599467729280712644910948083541975986941077119651444239573513293162325500415665193269206899853919554155933503754791840247175720707659946143512848829668192146086627596571949249441888198388983609567474533246632313754197785635711260305854117095011126493275111648484822302962123739438844738045034119613028613295720073645490054658815985952495757971421796674851144175923810418048868306358664456016604873940666786732610100716996644373815495273246225075516309305559483596500731732932275020135447132716048698512947531748438450733173250361374818873668543135445016995928525434493295638829088711440788827892839617678193086748092239287735416211563691748328005679650575614752017181355901480128895505611512182240658185689767618711542540390992362609250689057574530282234486847385969217325633150824205879983080592855913535788490591288208267434252515569106760481521988257821872788104992248849499959495036149788459002148557789118821163754574440831722622127010722355244849000508512043961496609482984321949180652668156786421773832231374997195980296640708288839290745191369231333357885403190110914129211401231255156613069946129614471196822268950031363039464337651389456548802973719624907988482731048933130388346565689898144639234757299620176221921708795328802639997231134334784523189846168346724779942094423847283161015562993655024104920802122811449608755193670113339221437801652244823137004205834301168563421726745063981784318755852258810299924104250169373833631672858288959046493076622128419031965033239455981264419388439951030172321945797747405460255556008554193367594013513334899991092817230020920416198421370473027397955953649940905560635204118726378954894556120936615535097477833767097986139064381759863201718827584522208655352806784654580706259967650125429078130738160861736986891442578866753137194439428355277063020665477958959909095956970036886803575138561019310708071279571982753050820415750453030043515823318638664553582781595666428870363115424975374107597256782633666389399965380837362935009435670678746811104532591228112343231481291770539447132827010530531265537869413895778449172685106110868096355941437192841010781701413635162060351373872877978606546926407239109622209525814986618342345106807408706314782698173221706069915869137589756867403615852282150256600370646336953005614115915128781717560786731307838557910428468515170746458791166789441648708315696025717620419349997365236785113573154987163076200712787809740150040648183492740207358653778834094328449450848121256661612434072878780411372893941677603094576908388652069133850487168230656989115207988620990250477091444818422085957983626223193758054163877779762345546566130206639837042113714079694742706372177829243319888674050192876938540820473937577347999780919160529491221591064641042422915657025379902471081271833003405102425500393556768540266650398817369678705957970690899490020285491608388219165143528831572394597206160708909710425703689753423237375545248164248094190091659422366830933340722624330082669045051003718785178946842997646587813494311547449260121594680034064823156668428456610221994882641362017274994692383325833901106416012031322481118565197851899798762511469662513392409119045136192478168007517951842516826949805039369980068870045172076039363584507840759278236804009168562104190788027793563360615885290635543649895556253945144581421059447589848838150708918428320240750865814005985546741779935004498839558517853174486263038446137099702014533375853059162275083706084328727964003470357084228835883044569279430994877591115401339050102464261780614981331675473072000132884871260131935472390957979370434556544580641413445088883465902173507049934595044710065408302010486416450053980827409702110146188038620733546188394025773397956830901130945842302994232932102010810679328067085318827401070398660177216184273029071581771579482390776196568308652362205689144726389810877257484384230026939630305766716284912485832339270545163957728604460398056043639034250937118225250525302546228396990767244015885755109271954576558883368540485104345106143627470042872901675421894481923643902073704203595168871664129869478022297148224915980942871146973113595769764018733705281903403054726005024961174100694350507143304119635307364794245126524320036069301908929377863087137938747460700581394067512570523883089964912114631360599219218784182173683676675157057212725525936862583275114033372428102625668460242214833409698369743323387803199372868752505676060183758256994401371520293459553778470443323967468138100381088294414193984629547215855988213913364205634736444253693767845117486700753608122022191200394839669281570959090224477139794727258120384435280849464883127725190563562721028439661882816543613057466828239201744234447222538872032765156125956931103553310599716737989727073471551787413898918815298765974059153292694732306551781878525204425207485750917149905079222653914685138458008641640031457316888603775574601153008772673980033339369039040650415319640265341612488011702089945384406436175289552140928245523166139788107682989280766791859027256852719791915520669051848891276195804442849817118286502727540033229856216709693695466739283946405377197510561659085910655689842593132046071023079803737141559632895170606700241413510782097959891563918601376108729629420815999776794618618307644923668143269869774950260846384523784778755664293637117007797779989194937564274643992271295228733331731303920538770201743695427638070708946246041379640519189567221698696454979890793441969754844773859005853458616493526512917047666115420809656810333629801800007392890327890551337914512739580597053837246733075481305224965256116579246437853068948704091843276344132102076420885487604004343784217670307895753753152625216115686817694460402067729398275305096658310838542315274895891214366047548448039619523004301389601034358194758899860932378788700951952804355471679962489501624012150697711022257025554537985480856293193966684903921982000578126254394276793873289251079489993979578024187400326013784283100599636237679514024917025565627337761747855058693824108508014916235953200622442123912055009979933900574635454499632043291947886984016521601420916752122045503805554057576697351304348509212381910811742137592717048261222693022692821793724743944451726487399455949324555407712416781994530189368761353000735084826261826127020189792274891076001743975852461291692717400658913019722753611295310518618474965675029742223676278082546633787022151226241498253014416415404542472345984793929058793550263425233310895867506588336115791862994647417868767041414907510601757340138670570727129464213911683941148820314708855711376953776779041521937833070336451660063774507569430072081102580804554341878427811181368182437230234252320855748156787823113519855499769830298730012927426760715098970297954523539652187506434141667269706668120630112879432244203179337338124968452090796014749564563240749804912860417710602532993352819544787974494643117501984845476986995677287761855182486606097577589635822936005494688009738489397021713888903356462830548233187088682664260033583164293571486486008679395564367288854199231860270441826593875110489374725863345168458235252559139177916986352624561655045036787378852445919198479574488562556613096555607683914948289995713042929406619205305896037203318219659054753571226650207309913847470374954485354514224699552294218257477355276175452141156744876900203448506326157057663938226433660141747100558256061166519723897804702186836258294674355986534988112376497080819524161373732023553861318982678839367235676301384191385740628632128736055814699512266352166432351578334478719944361824570124980274642803897718490812635025487892688684884804951483507959013486136237725016737553620958459206555998557900672578927175884589616416759619231128435426459169470941895730597755003625387239779285623709598884100806091926651338421655151269340674456010580045889178423400042902774798545311733435180190667285480124400318836094311360530753577779869274621272269367378006307248991289464431195265122529656742738908761687699958230587697548792545836979851822487614389380957484290659087999867240866784173275245443704014517848594434668370485650633138690881949971528936723055409102203185842619348961883920746430329289685836921379843883338483716091653203940225959664788686516872637820140516763548968868957352087555936351723488523667818370100089237793971495666252785941421090319412349412672843274245893601680652443564608343505422536608211384296091374681514155944508042705274038989080122793349363748548622315061894828843766914837696002986750121982143502525379845387432181943791072575844156275088195994716426519352245429458943286029669235284218745670455722312268097245260770748577517743024040186701634253465466247611814564819834633448596140553079756972115807701691834192487952530738668980381586561409485427679712685582482025469680703330191599651836587834119667451265916157781657603022226453476374751746514385392749222441222960953201319818215121663854661712872614183079026515440392472354337405525936953485840598268054986017878941106353579151057167848940802877848549580343222795112352177820082383611580811324483824375505032364729193600244754333722285951538286467872019626756591647559395971109620798555716872076403208950917810415808329680859700521385057650748421420768909914806839820889582329947300829576838316550872036027640760774314395053623360332613503896921703215054444605038970116328624904983471165925667366177462570602220332129427711524480375047270199601818590971022916832413560482042404339673550579076108836481377987000285295284685412580098714948450338023199555639296810652615780053120373642603075174729749100736777422547122846175597467758883409889063422894917005431415181104035853664491222087126830177948019776217375985007697513447447193055055148892418647843926078435874733491948860480635156229900685705222496610286373128263066165032744186650699778204859205224789856904618407440090522908943480294592077483816369508028168129694068479301750596451702154377565869238875316888122144145316399107781261429423735622864259994956726113855057227944964260914268170441545133065855651914333181561604510758567330455756929404415561308412416939119001240344611642160020385530539405097083020890632451253098100150106437935035826761073620274208493017070459129356400407773216526518728735797862386147546952014311890112822713850128936239975794418067383777620363216882364777003583784707214199493133677292843947030122477449869324636584890816718947890613068783022464748167232243539463560283014260074982270909627633099086808625136793424239599927127564953393869466203769202224209488597864290285920826899626639099645881504065370797304659421151485934976370233400939817631460802300168023478614176638056987314776246064221585201332655409597351166591053274623789707833407109801210540650097242165225954066527018985552572600695223011717033118606239776530181863779433414498912428367651774880556477882810021133692242111268823864904045460715398502300993314553530071647197725396488988180670292015532613938434034154942622390066098194172147467323819730071036580455429389825497964220411637218320143448130673413899085676857940266869826803987926250933617386803759240102065851355929647411046513850144053478482705138376382013750392670788370430524952517528187541660658964629976238625956133704974682419458276854519661820650854750531562106743131395447876634430801916671460250920791961861875246184872157838396189290722472670811454775353507857150193084825495278936334921487613689775352203107642754035527453490059913768458137869646087901739014969384138160446178215214935720091876766796654699764986638386520216250154770862083599745168910061452325823143604379169227597375216151330681873398679450746052565547010820492401676615737804772880685455550031465713114996117414223159113602469557772451232342291514472873145070546659932487077742432292921335986785430180265731437016851844296497319188392285610645937301610550377310003398638178009407670018563706355956572216090105859039896261652144696053276955294779061733923961411045347917077467701833606420517360860836660189775041745703222193421648497016781786493921788848432442088075064552351428957338375826373454475747810474300109828313779824342683470281363663019443233236796611177234610845377864443523024099623901217169790137144796954449840013232098739313644160176391605059214582192324147676391091387179566316403227986456219052886416353058141940928363531669545636910976601026986262758101121615135067249171057549291702004966595487795758148074941423098076457127711738403471839249385178179373080236967907962249622781937820087647840768141350654436513686701354029760443580598359994312346356230063497241916114827541494116240372465640289548450526857379175688701365150562826809541127125251844608338996980002235449705120877320205322894459686877721003875144702640202093614615449779580116588213573379788661161592905654925674151194672948879243324667892638301384510581699031920514334292381511837587941048606281065529476561084924529898285836300242567790038686937309082653249341117763922028399641020703568457481023435904486073513581938724554729219598718800429090333544896713733976212883378330210590670923855584037654959708144450359094586494461909979938195788316318524891030948923458738080087668341797322989748431042502431274672632284327507691606337113001769813265534601748417835766969045998773037349207411784303986741059679264244775791725456960931786386204048398753664326624314016819601181993137306673338177740755124299779157367007634826644299437253991605892123816223144250955609903405746513665387998620019494191659935982661920081899310513770725552490330862537519372059866992678473156162613477260303691830926010652426943620631761501345653153271699551665070721163667077210484455867235589815874787937741995520861010649069413264762534454685081616920722908523681139388214825399411147208718319347818608595201921123331173564720838587737002668707657225354230355720499984382943772422128010924229610747313256220074842506770363527128795609415585301361219901906717258824584024106890508185602286151297123191825166219230696184701078042609044377633634655045321485312276987475757473974854040571124116562660963284622957063718766272886200622913808193289164537640697364385106700507620173197390742301815733102631968647236832481652953407722723578396221926776561036526624166169043576164455574666915593808173113030793449466097485564420904560919704804106977502361115980248080027588224531748590575611651802506356891672572043207248316753087873580667585237959143528235800617128012548764566013816264443441798512736878659953197642344006816177738704976518754297588838582839903332005629195974102788201995598171748771032591652416298105976684367971888991586382843737065414979658967356272925703612142377206595705769434210742394153032119621017279846543167511217015169332467370454170983208032065677367526904566669118254076183372135076749743448527497123950322116273205372023873195509804004019872088141455060584282591060236029765834725503958501033225767585343996532920115211948178848747539592530412264164347874363862314573958952590737847762544951909955885676468704628770659929249010893097683361310615953517731012974264683748005516066784662574507154969841680290331107096793244347321021676612588181900771858734261796894300990564758806872634231500719143927223932449923393334611081322771645943013520888057910320210035704803703481809484187164526260957577077096083739469806965555625964774984050857800969182905419788630432706065660120502784551057681603004738623874527060191695733104760941861149111928933041353966786710495879904888151317731728377231269291480436182622070717589905583732074890081041858152957890729761877436582939326084875823947992711907942105890132771403221387530870996449719408347447110930476946418467157699444806797024036673653787605912566796084597033692884453570834901237617753995280326665227980259041698207521086538142618555842534600157488237505655389480057862188676831332497797227750748387067746609687474427891064783434664523317721784785461964952253342234481581774598371859802014838720508871943535668666312014273713877423060350853520270171869025803224583279585824188484940932430471440055099505280071706362730130047507297465653100373957869640091459784651385141585026165746839340810217415242185509952415345359897698248824005043020911424481522478114452676576265609572181352593356054224997684226830335336755674884680985688656446770859857059797472197538359244836902775239164466714729550755236791344684835891025901523475723508440097179452623600577585902240207789476009840562264140794939116811499972233897930058866934390829156618730511786959282945122175763750055704158776345284908787542111023611148377576240338939249796538435844063125053486499886543565675866423306991876032472382704303599620512898362236297422911909139291910451063743236050338646016407490544623148498812186782965532404281707009759087751329253846085852526065584914002575521718683885973683531446087622307905746791515009547962515001698350891822425198440355637015740812083201279952957847652861398808221785229257152240087372749568160239733547669075145937693597629879073323447069947752573946200390103898851448824018918105149142608968304140406485581650858261048459762388253720121674925685645343119098832229355667124182677627027289914850854775438344133037222288729429117781083306021003239054590202396981130434869495877226714949025059250043992272195093702849767618740763334980106740882191058622905839212963382124694245743710511282903956228301983412570312838435977387547056050100936917487429828528750570584542393328351378993435675196032343069983879295211083918990052803202912526849490950700407900767813596278797907961752530624179942573953175808357732345044094151195591326866679898221358295884028924890222268108145178488498049627487898404965489400992883800538657638984167088713853389111888275759400583208112054614850476227444113983748146782852514745791656053827225944562276112540815368601812314177101146635269207657742201931435164803274832368991713267002899299345449549898319442316750543526082136227737900731185119513445601552208537589800751901202321487025582599482089401167390721509309061812529683559978399004240942025623630430217141970973357700128769640866375312377636080856181550975642744244791057320394670726066676456176042905378219988468893502694937642480395336364208966885796624295480808567977782864082636554167094402438825889455586838196224595659764546929081996920053053206178272669437951012699453264644623440843243016023460743527912053702681995551706004142251829847581572759789927693119701583801717391406675240939032191511676663873108368117420120278631750137717156972247136612051305983137694601693428384547154998538395541400677885842419538005852809333648423013231762816711401460390837876866304759818328384802299576359222588407302362421331387112429209508780645758001074102225120976528046572246793031159063148926192404973410206254127382755578441255720544835309786338949164858865143423359289002659787575625863622464813517254915759516155602665951825557038502000406679879986845987296511113913810997264982730866951631093373690726601987200553392144379500860521305757557005135330568219422189510483151901202710319879237399813705432823707981630102273202962005812070459778614683744989828212972001924371546763411875552357394132257518477076553375593666639174884794345269633947074191487246792248425695707828934849711658888632256461388857486069754668349674116043314978645093417272558697450146888989710813163276711506879725679561380902747913758044742425104472664788673294206832462545237159570915667337472736774009182144134264700743730568601503940605197108129446294413803614991276286704640604151342552368746049827582713918414801516061346158699634703277521155295304236038105175247373616881005231452167792489508705298952597633913503759776300484955018223961820962761192596332871608692438173169377036226254840833175882440818433459322858240918463677913333602021288630719057930441479538400417086555351715239406970149921941824747265639684682393890153946476518480358991898855488459944100010023880882732116515067259678588325092681707561176065903157869668163208808840545371796551970716345619831782718310555997234332365946387459394772639102026056205797516250936366258176276726240301675535562012394945734934381016923115428793014286426794783787454214402248125580262839572668669677212793946749982906625051662328510248504671901384206352724303033078766767316289933195816246825609828640399780748264027745248648312565158284671264035466831993650633276104985505614127767520030181737284829706486834987176190884411622050991783934887111806568225001979683056534520264481404578326860766816166464868619047808854646575857384665871191190782152292843175751534727127003201634396441361886672316508296577104843874305499431140411421041078086750645187813551942582971634603481193084213319807552795208977568134965697867924318527154643492955490403912316823821357485439215898835051388713236847699129180858687173377504810975961445538133438486347736904124176552757211066554952218811107077397246805723299376241336508703571592516133757097798672737243471034252294811268591759177859308614811266681590963666704131764063261411585892582884450792860437047270303128445876649676202295040356088895327451094151682318278331600706636488388481525836557364096241331211097304488578059017041340966960264002533468994654509866171382034923687351977955549951990754259084861028675017898172995354526404807415261636012548713919665046196800041713995135230690969480115077182344699265758672987001584891837830772875629846553595344367195851020183926833769256126187089862060533114830014186595429702090169006074412925652921379218857185930508867382148969281667080490630213142255085552697470313230429077813816594302410359127544522241723049615139709079720247590392252417926808279593825635230880151326497332432480464703617279869175087845212431673096528851920608031399879469960299239241599059880437766100757293729880603908235078950421820474780055179595334075851467148702337464021601065731806250687737613421830516835004653867907727787039791307679749287119071500813536484570293842168779196057558025096902216143720335713009035430175798908968647316541868760427007025049714386429390808005926146828166817283345520527965486064223266938660316246869078984376180004317593969845536935573661435174744670343012669869284195462391599690694841750193832107471999189554998764903416269689458365124507522027795961690759056595370133585472318847788616801649447282034237324639984606029835320082100960687931842013548091148847100687519931685128588480252766230764101613288819645374378731553059339641414198778939315512300288524254066097710509571972911694576026706019141949437316074723831285322127728054759065553734385305034854259338974327207366901343733613712580931461500655125129414076166636786667335965793718014534043606599568872463213331501061090021974465616052778849680680544604075112715549869839121566158700377758017248669969699991328804407864455684192711642511001392709156962478098065219475997324676553378474543844884863979796552558538703206931363143684398960017859776375099914523197479314383701509389205693223007194797805318295024530806722954083220878468358416687301535946987481037571436327078627997045309890345305009379982444448687357046936628502235204958428017458099355012405873854250219049141476637728118725709335724893714118688335677670630105499000834687632572926480332633166594989826454466522531751302935751316771668314684214188419754458581821371483762250741052957777601796282507468274472074797517028048511800672402789915293940823605702184770694655542751235633471972190544989086702458708459216663906188395928239604190011249858429969598005391533485152266021002487651227552996924530876147746216080160712103496987659657110463678720076181504905650217800378715425603385541549053642274155017616946231803178009548851804401037270806102571582331750384585574240350831733168652390346320389072309375825812201678606846803249350854005892883697781357715554216513188209972908652764675635010704163199849908357816892885287913773031252093656886547084990259474385298846569726296945791330051007360152944636279929854332798295562821341993926751019550482287425643659945279450379275161354235119760911874441358148752979605559703624372811510321704026223251542576699589252949366774512793429077306747770606380527305962262212638719142604128920578567849688626288451961638000273678184110581375208091018270448569909144042617324947560268059693920067348954658332568082101223693199840453147824410352376882788792685252946383927517346386140843153896930559481250223153950436821275865259443759017413125431924356009982827888912963425846717589118018958177092939204494955149656372370908270064849133238631582228178317229532706290357618435115722916099141974155380663373842380992230889747545193664732665042232152825319477044140970580150293963132767892484884352474291270585415721378029899059136396682022931370558715320699627579103059226155220983957710249862294201827881506999919816449213531924458271277674787455232850792948120822501832356172196029835608077659446470002236612693913012703130868438402682376627266594659718498916822842411338114580854016616981020197939669045992205191738574689768745190798642727094851620162880402059414751732017301224570828460655800420324385824483783632001770537028819352866736511544638326281010946473429082656939227054459683950728037854386371585602124300473039621189473098202643648247764276201503712216781839126018471444250318242137344133228875330647241660774774312872320928046254044223380310061516963429223933486874753631977292608906233865110037572458312763057829531412937728088510708671104682103212925003774863412079979932968204069677352695910768004176650100814919454817842700944394499971168570103701829425036259727578093759623645630161452437212983836666108755727556167395844722253016568778590084868796632183202730601360109308475042685316853836471250327121420931763424172339407659641616408560546374786892336174951042170252146420296754854775418335564938192574286554558396538576669680363552372338381430344339621323306184715965375441556511845488122342513532401924262302770465162608076801970885040670027007146692736428303977841650137598707923820961686683429761966801248039505111687542417601141664894489581200314631136587269781502726755614878991156288915288871066058267586633311673333654026498872331682632224416946362809135024907495511788835334862040527040425693438315976716963217593800921022321343703298006787845675116552553095026167944850087234871607637858477836989862423716077696056841005130600087191693401642335235573489847667114734708313830904122450346776530073914197112256710908643165729753825365581337600855276637093786816573295695392170371319213580975226377500247080833270277872776751332729186468736186000519603603761640797095910169131549589539975576696046157884344161872669173860047637792048918140726815929320925207397201863454700981422918759441604988524467655876976039996939975788176796501768411023829933535620024568635231457450740340959024915059007028120056098167971850663653586624194995085679473542201012024799479637834532145137151514313868121929684587598797635484855495961222658764623184959714123455501059867468853903556185016641165175210387063374265737157567742093653731410109093250100870157526830733654099861204518526576992092120178234283664277043966525514045883179530385837208223829025291378652193866460203225613692575898950428301905242574356560921335940363599514339327985542715313013106981267007247591015200308076046676635404856821605397944218109320512807826676013072364552782893600590257396425645221206165947248371729547325563679054099310185986226690878192640972955893001724808378828663103413332546964798689930723249492013156572344386109657791882718628524897119714305463914840183861268357663624156488733769835339250776989356972007777887212503028860829044476735900699810808074030312303808857201608800094170860372654544057635807362205640357078678035453455983456989324908636809677309905856708806026863005358382951888623846174108811093688163817861004033914024889026159114029732458616953672923976467917799866147591162499609473080133237374666243891671836323165444191052762406194186111331101082543204863532957414955509565062486518063062242165231294776011910639376429397158100461968172035138198370166698199025366942432537684274754540275671539737634879609024609384250605477710090423532339356339816539842755376945809847072486218483238321752778766753606782780536761284557563819634834748453562954394732210055190916700218596961279941243270957722277164954882096736342483321043967887458146194287769332097954146442878106459732155401442727060797991114573470590095833090644865688538628602794126024607511102355417786972521524119608209677110216554742394396770039103492433450866944232588959196655643880790117519022056284701503585326035860718285708328075065967236799238048775461150269260793868142588606943248191237729064902500677552365290807187719368331002977685616869334652561966953402240689305869424564523148931716685261764690384799145472889179237951118971452627294487368132377778761765740696554119716763923515606446621617779518335706094045485054621494158199156389626148519866843696017112632543319913906037961924060761927229542112343522652521896176658144271279843925319896764074266614256642607419633223822648056895367595275315360999498778482954020699249815132932342565733036943127315858421968415434673754268038650235498935391574158020794710860656345224659180787985034901068552496429690666175486082056053450316705349274031480924850082775115388641433084900529968395344634595715001422012734409140745987375423024547572247371193986116479848771834088633984628084596126373379101085603861984946539046779764722898985325947734602913752514240137747894055800867266750178494685912275319797505967144794681582492204480317857585272957064106620537694464324718984602777543204862641038737221811689243911192338191409115588547791203406889522444157649958973228515424983034691699209848742366542796801891027360163087921414003151345108956638404853602275519232210699444672302894135179057966664303322319762271730584492575713136682809265402314356266302242752299060878222702896883973452758782521292765469860430240071041433093595455593518261357515751957973981590939757404865168995862076505814563766014879524587477552536179802000738443779532370582013225710969805807687148954138554312020850176249156099352272762711643662050149545724723706551953624653025256894411284431760230149597187684125244204591408166425705626182766755266355677687711154224516094511069330872405950983847714801270748416797148102614241799139267162867664544792518306621804339453637717031583515528689658843812052410229613522746636785597123607375596602037186781365652934390576814481547813288334211550030373213671243230425039963732382448320982317614881428920743426628969492821587673724013629208740106079371235202690813466826958965426866775928621417751255795340015300001771741462214436502190963298608203976050989801750750974098522079587744823031980497370546943663389438600874382406401503902522973626190838094624774668310041827277529989813833636371356840109369990661873197013168565959065774308620363011613334972124976580701585866868751455723317269605109690152935326556463539843920716436696535857461202370483451221215275301166688538461336769170426799441885412569001210516162045393222963306624231695393605735390268083878706208505656630526348518834905000689849634391109959063206092747561016161866408843695140476062264923779704054070584165973968445132288637689490458909902068231725088250395842578200093552843144672659778435416450759688840037034890380448385492929876094294678430599517063706076058378126981763151801607676917516041965828053171176079841863632881949571070682575182129639757116519166393328088573014434801915459033145603317868480745591964502260952025516191450536993818100031372769632709180811266593714300104756913345149388236788168103100637085628230251729284254619382862336259782533613970777776303247291239286702976882572847895473413594502359676385813698014078408629557129400873768637283794126667138913201158634099297754846646360280124707939614012807393795581201720486472494098312552922477089151632958310061972697546543308691899186593746208130758603424437955352737815223971080169641990307226942501063906453708923362971243928561669043766337276331003529645810498440863883440440475284413577775855646776562184857540554450122663585524875068547402269172815340616883188177324226017265236332725894105656376582247577296841914164760846538726789640143279907204039758981426902223735196619477711764464222440966407164824868492172542552314827140455827308424199403660018476565030935789268633240852939967014093278409764658563113600825281268946082228990950799090786339324547559875373313373801219216594501153226623977112974841713770441520883607900979254823879406583777948142922407638344316604892215416443397481201597720444733694635385842854819790997895222746455462608492459994119204527762470973812605832248748418557594149443698862900295731964980453302667671987136632483962129550135372613640649247548724658273230913260905783780115560807820566450539073275765430896399863835366106106788505161164743329266883444483489150026775254059069690022710274500949651731999734363015409814054326436715252082130321980467224585912746489946400485591544022182181994180286064956130910587408058741322935679197523260064493038004460170218854664132744323002373730323437090408719777796033890240449000595565021222595471140394275864427971278530297652453561083249185518355964979878993714972571886709523692839676972433073511018991218890658478344504005072174290494586890108391525234580097864234370056666048314810347900903753868463677717103140266146666118379970441797906244340519357456893527710069417559985207244608431162019415381133822805331916416057137450667271498206845080731745263753949951077536935993803055125194399361822980445001146742520485382869296174799742829123712836845068336872704663305049676269172801948892118907046604016350520909037694864558425109347545416073519252873676309192028217082486399549049235704648775281064475958678808974415379815779235614105826848406641210958629223972356263615188212235755498248359600071025028724412249265942556937758303952203558511543625132349145989364216510801542151906436980208919123866544625236733783674827642835655221749066831443581497892914634858445244117686819708740804247457706518362903755364717145983961663503191953495926883534775167101135746460327472028988050833758328133135068794089975269610994512232517998521536391574862149995958492166857851537672075031384122365485138293115206339697096776428341311140804684924091009164606388504740931625416910673388177842063431705111124706372588062816779745420084120408808458477097522605779881665631418348865480762226135501826209311646270399031214161075280494731040145725245272485490087857807398098137912178199533922578153630060646024432929875364479612529112771273979125577413902204278745213965648098166667892479434794294249872755341947970696439429856087816852516042014932444025851377200270713062094012010023711033101894095601282026380272627066562753935777180589068671381221174774484744054413147240263367404104299855602494123280001440202839847546721587853666578127350811055406329209334089409117579935155678378583589066569703798212992599010808015840481828995287064401240892976393782445785145031676367455138307799615621347891956681118942603345420901438575033623103762835874745795976643648458034358990703166164974722490197766568891766667154814016697594103688761458567422463893932212272279627988749662010857624190643808895902945335567795893274077312951387193577912177375266152505321169530941571805218936948575473806353069319903622697499155789037656429379815250104615035565771129954226579658391803765663964088931216854939992328999408141105925535868136885709929126114793746694706906997035232599031525171182975827202202108591173973372230927402850428798327098579870091855867076542562283164942203984983264887813694343311074831955131199900764674560414258304050926839673052949970582402611146916389386021848089020009676837584848762999758836265670393303666379020769464491384501365429463834030249490836972310313094854904949677344330150374946882156553775412810497465938681667419775492518505239193700026551751127883667562520551379055586304691133684956655160213771904061171955365790601830342178622475638846067206745524483057828165154085405968808809325014289497295335514814556648619816781154946987244810955673290353795599854690220468826575105525714476420092303255134122344728544219099245750117189227284801090365561641699095306881736863882162974932600089062259655141759597046274785751797160388445699232333693681624495987516848940213285762530288696526266490915793495988304636190182744232197507854992778342213892240667024897006402055828965711513384338807910634245814182109183011632182107725987601242823981116414436417973464311260334013962915509741043259907621551430815660863798157025045826862285322310199045100870033183286235415624450851603513263813557568066870163425752785439334708689857305378919617368139198954259633694155599642683063317298510417393325773869212704756902157270816270440544616195641831772878290858787712155722615483820785656559491651992719173239236779900815356869470983967416120662065342592434710065735213317003345138541250235459362401290094117024869269810877190382309017642882800774047156758721528142057687208079684576758280218192464052178321876059073481724079079345483765228946722772118891556491922192231850055135507817084425103974593373535206209286934819994212599691309490946116805357168769679742567716602423126540660395210263164239033967802225621520264388836057674365937473931083094275839240183409315872359759972777814478223977477643944067850103223725698565273927802416336213450632570632555735039497692717771400316347901376104827672235072212346184113467166752193297721000031800606586847819826052372753005834332055878289632612760813905276226102834430618149173672707849470522413072477040059979191214668612051997120712744079867518540144109314533781028374003376268203157310782850525215995657668939018424528680021000848356230655694806343185694332213065479531191886051152838999491741339047541743862423000239329896082086168291847115580017275574271507081558701982559105119889647724451834524705775664882465368464543294909009730725741137433186791787890435978116083203450496679103545291044000527957697692968687299009812286313029802357314629924160851103399730649888212085137093542520059615869954002115830120793792796919765264085161081522881061594193714681119436008628802197611808417199947784358974026858727500801812717029391704728167440551319330655800174549226147070350512199305629162287003005954133315596059357354929886220145862783918891481398492476077553703561222739409058879448250032032073141331920970020981994875179510049264194232342671898759181273649566645766693682981314538140738432507796675660912593728688776015816185949528238580601108038578083204517178603528238313897927949645210315251497214638661006864292996051517035831096496240228966681296774651518991272974025601522000066023280954886278760957773733049654553500516984713208351979600571496864438060797461680099061769353126763283525232917841834808930259894688524452192203843636887614176096939633745041550944336487077863026091342860468419050998419673125439286214736522006851630105801894966493265339347982793867401533084803008183021116103273885993934133157714730596202922783183567882087967417982569380803295929879509203835436902252214610852335649216363111230254335109988577196784292802310175710591367350294318897906984549154396356910228691142898078275367621972148491315838419053639371635655265972894823747109761900252549579673587634350155913797958719266772297974855341537873986577621314458191723572832995878961646845856114905561965246267578078009046569283375801920671335906717206432107345562727823111519153479002089719379377479364240813561353306416920166508626162725115114107497981264046399466990990665431339780975300735595804351140620867829920530613486018455454480809960176932538867466858928530982795583360258516538207043288247623317109975024029323264923503393965552205669257433202051259500497163331251084563504046629807014527418737570540765799915631017084116374803183863029721093660956444990615203028452374673015317695917625751510951024476512231962373171414130848508936098460238773429751266697752974774574787527988119813584262831888325278587189435202112232231948403385014181957563604955630826762600134061495583659197400059861453880135227980753608560688631563480912134118876442503957208202650764286418866286419073354876066696754936500877033727994307644548943654957257303902935126418759152382058009648787692382681961340671115578134346420438746179753410926598039693107806667779821951918463648381794693319914335403938709560906549629967270384072158307854466005231736518594081649018908535362037695240889738048995305267870220413766018672487350855758538136035616200800062253531320475390908840046102130055612124329752704890261852759114283603487665669520270707430790592354552215110699904239985144787462960673607376296123958189124701154636641011537026124914020888000516045047698678826051332797503081132679730932147388627112383507328441042334429263089650665329976195870717057231127927660593820105926848044269689021476755853909838447265183081266211725848159834729526787228833950853808169972782720557386003334123607234653369761774030243661524480735297062305149745209517666371020859792241118779820676368252778233250036812902059629677256840149145358265260807725756412220481607898337388810503463391483687576118420745423661838977065709507402805214477869259616233172704809678691163141591645656550352826300174624692845435814760808388596432508232741296089702104125293963243104062455855554524177139576521277673353852822277916383969962810012902531534830142547803996048738553509571712967207656021873912406025172339936879076535600515078212340550044422131150103543896501545263864600652573610829322883964398702271250069962826715038676672898084449827997422067509387340982724126608047807273189855510294610170570037256664430491972613016856703886760700161406163013584718817200134814761463236082836572588126388810543634380016539973937265240364709273602671765499873413462762863805013941586708163104384109689828939895159788674892861111006933868761078186218382661092885886192669334869331159141958313314273776707281725377348475335436950137004901032526861375451821292163283647860864122626527740470668269439147761916414317696190018440380720634288859359717449784882129363439566561854824021657053853006637967161539392465201414332594782467561229408823487161127242347481146412269984113820996316453939048890149329462679375030458411823226278917595062738247590119313833556714964479449900638908066265400682898594902200690112994761167455529508335281382323720028059918570920411105546091911130158767938225964897656073011185382803724877108182764734775310660201149903430526256781929767642907186841117670720084646919607678089326550859951103003495437382117045134560652334650130877695967699665419629622167854291887826541416986688088064618871194862960656315178335587770405202200335564935577120273982723402672832202178739116475638076320044548430227997498025711921045670482093859149932233725846731061533586590608837060911017895992362522882772973682755424895767113432508961238312710759010979087057671188493183137042494924062044439672253371981911109613834386960816623316098892047232421073865998794151911371920477609817129296713370256354797903873662712672070749717284086752567514204210150927057901827878516256642659172606114453461494030328303407181624935221779097781415921257295023496811588489486883444108046937831939260930912519530604326878609817605849996588243928103054097348492205765010037407601524856671769429689066153670806282030711911951562127834573042302090756863272587077197658456136872902257511810748635942203569112286591249492842076809488821880535120283948735095277315224089603668928627794578186219356443017881985842073386016825729647813977629925984566115262923062324463448892738607629845788167461361956019845348882481801602702281828846188854736648583718689462090891567662328527742384054616253459716979182679269903043397815037824191226815303563587884742642081533545900120100102338519826444825526563431319642417637711320813362530198086749121923678945676939596521509590103523905339581490052960625971174664031010659538485802628367265893166539545064131145777506411278803709713506611832345746081798077453863375430506951067953060284710460846708465448860518057088124589132387523844957781209984169068128594902610337522167652322094384406502362266318498055571342735754894011467560289665371804336110199401903608470132562747576105933411462489563332825769825310030016506332689648240849450413945527700937917735154145811391865598943405388732920505930854490943119585896850143725008442646444014817648504620990703681435116124558688717177336992901024985386982910906759384093639942420030023252697709039223770222634819197799630843606010533023408465123178504753255840865947356614059713764981268710819953739760585713916843847667937961716554873302364615456202472858642747447432462163823891514548499692439011708339162032365306525465334218518742308188323102575204616992381384794029685971273717482102998341547542887650558268598923498776713369025660738968754337914189711999548354139370991050201652936072112452818955953804826815746032120320257524269614740301679073176491896574548105290026624846289208211515138905157497449421577222476275130234744882983549016412905675989650356138869273028364648298293552833765201665995857723230603051174271705953433961525245166007252859721086688754340299669055183108299957905506953105829526085269193472484386411063820687210285029433887981376475524643681009653552512890316643370603777796639952024313412590896301505664140641842181757870525646623360248961739900801635284128242285384410301139443144406612077642212874785322720233367815931210229248545294020930796312807004299637383310071499220300475750213387302363168406365521497666150948102713236799025808151922494416217523216148230885716278786352330059351709081694902520783170909644917587094144767555498288384942798222639189674484243025962117710194091850931766201256089653521486293438609665273442450292165936316045639637396946241854723436516102302660964932483609643634599952998609645384610530653813305141778018947718127006051462164055143230369742104619725951036172575026558040588635543636648030324752821712754039576271103540893239139186516031396374257410276875859193377216390129715226432395070457982270710246220901544976180479104427837186602531811948872707651465609392577695104812537827683221979423026130347246287558407242220285706852635253400022503209541708111456931824447450037370023399545328135304755834553518448649460541966473217971774273145125686573164494901613905991407767432744098392506931270247422856575730462325260936923053207479196795866508789262787965284892893641148364577496040317878418853109234226858188764271837303062720096994269522450732676115743061228637712345835103705649930900781068999002278492244005208139097007768454294035376363762779093828554224123564504695038935935801391395806017023419354618907882216775833348723342025648633200600303795549328935590130358172125406773941523008085784070977788640499283850511836077559823301317204496937608145033348446253695899687481233166443179015291537271930759280523890181309150532696153233960182044676353346300956567449071234890032115957467485031198504573370466217988547995852775325164451305566480630493941008091451343318445784472733365716124437614382158787869527671466450223619595944041675975632400041958156962450636997852544898292804903564994013003937098625074457468602243056294784978125854670489716777119440153320649575319888850038030388422850789888931397397236981235247068344531516254359677495248781576984888123119195069550093458714476876361766956134848593537180408473287734386662992832062860527096533252889925978166091304812331813269289164598704726282982238640791142460979420749114106121995301570422637226630603489485443185493790573481156268147125314264717039195585856058748668949118871395989394687512802837433414587674569451105838517536858502494144201430743266047156191453777450550442214977078998192584751812324650050769533275451600483681161297941101678107303674157356318436440084079263941194352692991679038800194719525811983780089065488640404630521058365828969607634712497215546557927638267721037790576802618752177831257855493217842655646853566817348441866460054983946062844495070972381906378793010424773045182335041134127556732044426461692550140901314298741491077076124860448057731069028670733965942833946860910946102044530752615947812672933968672785505643561550572317215259129909121174621769035777136915012019875426691110795650760435944129875366745275954650795140630290857269565129252843198945082310614780167820698381070067593882076447312089096597728734154174199460711315180136903044838439480189364801782867922507501779116443718836228872886044500590665892350528880056006273663829920847732418655884761201922954261824779247654754759044152047324179218881513737502178983421176477797757902281882973042042500662423606018889699698486502733983589921981639132419446891226825059410095737039007980906171656268293071856502397765785852350480817777111759527847010536295218015602646943908668018465235020080260309276427920089836593541460045455464176434520672617118102034577361866743677666125538438071432785298082667340834106265122886715473782705038373608418254590171441797265201150311667907973214474695231413667403046342537811269896168967665484034815529467334279187819023995104396894737884317955507758550845410582728120028298008969918886853392958259204232163995293973358555817177717064818345762428764752964990060083388404214813867362514051596754517895231833727333409389861606818046185089480419965434556473918082511026795887552392431701538064231421091216098768296128969788348617925107502097039786306222972168116980849208614275287015786630699174858209291727002604475700759967574780570751172028780821884175150581121907561600799781461786739088854524360381997133543534740751559466520970960232331615046587221793990454084454099488964631773925681337736845307969288555967250954432055280732967006521218691618222593286964302668743784197667606387025706098576960162481588064283569359919196459542420375558476502467846714300123363157130911307018620270988623863496249816252502548765565029407975481458138008322519799370841007917651272091047159058259749087755123047239650652235805527084570504462061781914824206996259244484959104461452931726681739498436644196087301365691176884118199993019092274180769861541710083280156901938134096722541060896773161143491247431815968264578419183103882202692436652650247604435245581956370091562268038896579888408985633152173723389845453437525117171451435045362591351875630361302079079558159663669832771262841243837512017613799328323624550194965236274368203474619179913425286916690001264685584147817627215880820873989346785863510477671764583293975889992353023729875401773868010449708561584608209212705459382924919517979443992333531886532293943946028434535301122002610681134868941048039960799808059580769772881367210022178462037193408948216374893505682552792283597978147233655874079496106624562574826726791357136084628074084998460335314709134205841582186738800689946566607253048344048532161577191574239156735398686478844191082404377428722514148701779418960285835462965035755059444301810149644804962619509031857213435306403533121457303177619380974693540060712180443056038747797554989714544100813267631996910710836671964535844817655729029174690329747900575156294608465291662786873258448845168769612788111596391149616538212449379095197630871342976434520514778906700283861507421738193280750890201885941247290223749318374067103618458201659300435730713759063674340340018623724624700152655104700842556018805155460235860301331954283440548333500361795514076132054248120987329868895577581292823745755635381826441750898211462486747666196263330647289647145581875630858443926114811100349848696743333366647940514572334647617685792973135772869984947206308106340249140445111440293255912674144352771250242341751017837337556612513385037360068735700963908470845350199114244055921351664328492311377675554493438285916486004890757486453173359948248899063960004760419937894393754944804442052113648479377297854103017111826385658255057712249162676683308829897026825123045406715278306618588165454211852908900044843683720506731748842060897347029373051227044069380879427381139519295356266873985756032257246736117382493072768340924482252880077638679583003258290921212869938637767603351301261820951237772922744579471139095415421005932511996949460858673848540607189685322665016257905121155231245380489782780698959512257606994574725936147234853663964700674074200241229080979944481297291713441290166405154970794000930899462963882289376518305858048587631435947127085378338210767921802942423618862441553992523562360895162116553316838047658264573317132663694646674085981121846843981787834112033866227000466139305898041001296015705439308546081199015938295097196889852735585119085311632449763150902622294027139668698826356915969232164618104652122698726260128413631096120791081905796296299350875629037008526493453733895276416077687148857862675990898760831221423671139461068441437645654387246206215356026486409281575310928434210298264238280472789152968052641389193441693906091284516778464376645659765189812795156758141319918208519560151320647780745214855375570381957173301687693515344856716782677588118317896405799195520461455076691689753628037903692539508651256356522101186402897264040796028433441060227356122956485319138007559221524490259857737945330772003196100805385040147692481333030700680505420908972612972234275226302022543948851662295647232622094701890096144288742408923109605931991296783559913909402867010934420447954196216697556673958596122156283742698303756460642160007354329670919858491919225048917421223817719763041592594529683066142334616298444847280643155672364350227294709567767031042980487890478543250682679391937673010970473945979851131008220271615078955667950898677311952867225978185008535822889862098147521922653919534291363349647321748165755732249103840131608781648666979499772707977367240593239444261111094761989855135545414537084572489434240365434440179235398015907754199705721793344552531668226258636667357082422438330212218316918974901798095649355038670622101212262870577609505136983083188266075928171075677853548645823364063259590438451394740284606716218745356204069446189214313120003297687152186285894296605868965422125432279124827824957793816182497509514333831605168070971566211730135058183790439641613389285383564715022721344914697368926823072938323002851106721576613543606517400412272612396468270027874082747129623853353298310648425748234673848435601270760801282400150225516663419974089041325073427764121932964344559126455622672396700899053588841673713061045024898437228641570282866461111299941499680899290452637449300946767429442033905672183594350515958658012277250590869755067658496596819197399932311395275650636785025113548502185748432350510631569259557323814074116043944284583994285355614284139915010248334974774860927270831365271625933089853607782894392969504024759182226715348212913105076390353506601662814667335996014181775669810015856925145868105845075133457099275870227621811725374806707923022347656299761043991642831055442934320585007904133712764032615104138246414590421512935186312659941478107226299390635143121175968732905569801629279350724788455382855256678976635833944822973561099961401341010342126676422543081567744716885410112489375535138505224050516156434775890469396482266114379032384469373456527316732659829573905494331609440258165492948734274682771519639714024266950022169683482678230822486184142163922428581862717533870738098109998325138532665178884104579277355610189753333818639286501046904996201470919256358621902340684878676123623120445439167349304345497992632724894993016544250434461647529441163450947038523634924418060963759985975756175541908595764602619984553537175778139339234977944617711141298612852671827349865672824900834465692259431078409500890349940963052232043334824249872594246092400668394880845610403797846087612241172859285478934534979301524246400190858123256030620092319162393903396014005219658423502284294173037899349573484314557333862948968188078455059900450522363740842550041012916440396095659082635117123743903789252053938465492142298640863119361071639846442620580769360332578300119347456381888217216761929353936596335575956630206241093034926741610450061883337754611131053379724257452700563953991351795512539598345644735452093675715024934726829463995593389565761398520381022073154450988650131888648464568802453463486813306032966895175537659211359011656606865842284554004728246335060173785098014509658329478875275320594620036665778091328629947169427777752771720258816545843491020330923730506743255309223382369538689113887112684645429909213402643513697513490766029705461994945913388192118143773588304572377364854913202175288578215019339273671932226378936143601431000372115378940767041940256963755803371515968587675895039473375186686742793300138950907341241868503352358658900681520149789488894923083897616913794625335689395191178771117310912694567481101532010315170887229783980796222035426296792813436932908229604671006051131166869825547010971041255046330291071311777975326864634942723239897916542489317823110834261186057350030157940949822937537794147570758875208622810727376073902643275528915639927122115971769460175086661559652442084258713637067838633032288339564001358941685459814406482879010169722514303733372727275819801266794832144655424117836243810502795203266930220158821461965107497191133509397803728523532556162557146551406614929290948298465134687235815187345164636427199067798449578850987313984258494410738327003488112287305190426055682399897552898117769941135359043869471543688407592038896667929786200132647702850951526045866073311116518863210576133337354984929344375751706629678090882559825111433282423782301173287404072212404285871694052570941002665563057951690789339844367963109205730308014330640553075739583644062332396895560801029248149535352404253556537354010695233091308939578599759410015804076299438773855501525777390079381987921970912998306793907948840493446922765460475615793564956438476921950209646590332693465656208679813196955056566024598078179187076959498296067993506684996354912168555674810246045661919213213522593530791928203007514159308499207390258611240451126096650600690706378491202322294967783011194527013100237743410034398614154042339790465075447702995177236862986170085788748709727679601538624905212021475570687219690887832893619481304027020408695551524095426521422620302778377539255152169428898481417765851469493582679244374396905181404160259755495450610264747337420357102988418603513853769761574312140911941093783398957093004434117503486156312350671093559641001784442748367950116096059445411968639260641270109775605275778059704117794890499632570952072444707368808694959049706866630123452305888484984750346422178756807661523730219711213385381381511939307729466400703839257169446663383042201135018884261762623378655529474345278756748572617304833008557897524244714553775696892396859660226576476739881081931530365281908644385373556053970403469966071281748940401652666055636090657154489976407296536013770555300059404243658152902884040587462352043501661731017706265902759314297271321296502526376394948196617093094866950808163527503589975485376676875314801593397990828823651217513504827543528604812710100869059321250438039934570891801980170430407933519039025766926319684676016871484179444467419936519781421969619277143235150853975413750424202884903457452608272531246723939300567028899234363591947018476366807435489471267305913234228158347573991054260985758339682206356505406828539131771197465938301268271360678392734173346990734701676885716701612582538529092680380236646046360227446517405539443841807813505270367537266643895511373288201223364403559300051903712502074844980255191416621280983460018964651164999359261047070779054354000350679067931257864042727183319850128701765327257867282352537831710691717452870465046872758753664339151161220861696780501992759197408681216089300824117063951231184906494524001629413892364899489764988039798882653973883545436799146182373702726562738088433615231486528954706075995242774581715791598279880237281932481322270731723614128218413432550842445091915891444081011114446881516539831213493366877476139932965961116134171715147485342778436517049336107513042422015729709816297076968369743269687140855105487973322572579288597792387740032224907676249840729792017024197789528059118889629363732707691090837512769377101668995460646706793903298082839694749801390813767164381170375415057635159480436655351219024902834563226721597443334017261969644983450087334506379253856383550902992033307946576628009521774781902238419482020792311295426164745684494596486261568753490840923665221241705771596389205557544367099651424437072905931625917933179234834946584378578223876887722896610579877109709696129738021389522101685984431376118068002850105874545396611375894103150658323612034036542133676455380813100617351665673599051144587435330335665142450419335362637977711525979398139642251692441748465702768322119872481320618279146988272819563964144817000819607693201358202271683684780970909784784021327559698112613352343214166224826351108136754249018786319068726559521889390424079189877489211539298380654837686549233897100339271415021174281522291990286406277480761286923531885971976896925085128636886527113323890982153848318159651254663489537234480577778739028007241222727313274278088141497505311099584197967363137327393825185549193102459432332892402312855601375371640174040079572077194684967237459138097992146364532011792130702871030408229510871921505297343942020928617207269021687105423093098898199496072272327911749703786805818294837389374299917798655727283943153824165502248859126952505396346999930774435422391623161610531771562754680008520412953818573309340111773577396746903658878685406262448962331778200806586920804791215400352812319798871659298516962791113411731525239326311834478180031151371050339015926994083020266634400469255017064076564895159133234334654251965335934940067366604049155155359504795859061854882327136166518989268471921714112970565201943846902133410294747051472928614437171003497636008082631997107163430228934420687925491695048269226170659108280614148518404904941611053611967350286420034456902712885359286526943546695065453368466763145866242352194147624607306379676864117201220181661309301514037090886362640365606520362419952543562528118716760446319055824269537296973378387316106709069557800629778303167496133815102020769180576362555545979240749406635570689054230249688827729440794354350470111278745563914769841076183639145142150910523331254165809723100624785485969806034227221730544956130745362412383517819077304801195283586242196069969344724181801141356140397698818319565071301463989531516113832999433424597214867117754290670652411278700917066538286245034188861736624147112984127024573652685972401815817577389585540888814457162868065812729076980308589353574931291210008912442955954219795920754271711477004500785539607800698583463023616815733598326563461680788264825024160064761790139902098264576675163105819110450224086675006224410314106048473208753300852136031169821493226875225070878267641389295617049676497895681345316177082887798368504110665977378430952557270474516604643178122108219212357164904853443319913120275262573292483019438647236089366244734801029347185383373591914947107111320128328445203556657518748153342151147241657826734997065897515208742785742821186008144533806614036775857967338554733366389391748470360618771895410068398874498805840935872360605798538626699000454390425703762033890295954186085976927041333857640920502426350289797243275442085877221928723428574314739535172828542936996244715282728050011989434551912228605530279755258320612470859593729392712622628084080852785223494057138293104382935816326190888082948553654980408626020432318419975524216750543734496169396522641901572590032334285921630230049757609247939551109510614779045579081040549501211267286268522485545890176186970290507976143143434634525593960688218855074866554575335220842244271194539397826719077884695191630094480205171224705413078724365204612788673298133314599144078434737694331114536725895294801724007390665477768852408063781011666474641741175151904128109039011605716382941498443790180383619771476782001269897753764313005332906337643648839717464017569582167303403922350523000402409748884103481863694878711891821685758508200757394554103593304185149032161485724206354070880021700224491256142051070576980436047200339862109619177445189615857271280258181774448661056545531221741901271662119802285217911536135295057784393915479497012256921364089351512895879065726131157815731542325590937249204318362885539520666357163908371434705431712858735558483950964585584917202805211255947874096666945667741816288676358843278396675155744861820462460344611307858854082539975564195440650364336018836801834209209250728601113762000189697630825553344799947846053348084428012535621080230518005248405934281893001330269378995229389496121769674972383657020820358955573747100165949488624217542905932652624042917507835281627498645821594560681229148346405699053485355291986621254892202664459775165488077869489511439619568559086662021140256949065704585529606734194602808050597923348220152830860014611602086114422651355364748333632599330507583601838238582900790747645938827851314320585419111802231335045135270376939115590959834205638643664922418060956758388644948804471155885469308088824113715164274684848932241927034812126858918164044709389504026877925908795683972861076586081447483635435549808571292173298129057117190900766587894112420737281457606562119150500807895751956002938213223813437974119707575885986947208267407650104847992862894972405185081809296574588145350268933285832054180173300267700957077278965123614623475434254346644569215036296092924943171477724389249073757052310703259214950797800709830090975239647437026933263675894673345094943931803000777270915777397565460469829960984513671957462655303349112628605019738399281554058502272448345424248895213795696739781804643750140596148980067845563152668936719774532053303355199496538697422759913474086359036892399127202798564969629525532365744121153148001018894854292602788782691936982666494112394923949837663509746169257222868987195608406858930047620828993442614237491024859195392393728974009234324291763751528547934095652503947210504638784412237355619472789084926741211235435350828241541177569442555603004825808161429147116505425875507834850120142023078554858672556725319912867019870883463503020548224526372745394211671030810198759455835672829485669874217783927412986124013560288622635288753308476224345398681715510309066454006442179416635119694765497531060079211429410151663991114105550439396283494491608619280260151070448612841225496221033621001725362072725328206428401108271562323979418915930893298911255389220161494532517564966029621965548450823478214453992371972216616838308141622826681190172656464985828342044567080166629016715126203835210410190521567528872158477542552120537656872229656080389314335111678632155034787595660780264049629256177483551358090633575496498843858449528933370750188145903177140539267413321391939507468198079171257023279210596194385519977903952424811429303236062764038028856296355222507565706558918414409235808777018698239801268256950454856655639133556301482103396627197461692935534536408504268230929295311093120862957939209099974920025389761980328387525791386928361974601314596856198776416368059430341938016293446744148201284727057921835072792579481524772392750255429402232945216562027255406402774797982092184459093713588327989272054937832587315605554776378854646157099870731686708438079503068386262604816527183519594948737600480988768232393100416501334425110689321690444902999904444382586003206490224216234206716435003083683412919891827371889465233336459807119162263081056799800153428112266902755148436170033545424583661482533594999152133876550954921667471809108379395582539852278814526205873273247715026800267988751222038726720332833512178288320483812877696872509095554838676519394474209854414569506232499073875836872885601713463903201435229761586421939157288013854648439304002747159190775958395305198218640865215332738679899634599407693995195582303211254237597704364829458148505365629503054908822701125522391249306675434356540652189495141423612347378141496135607162033943913283371398808511642439110096943890851412545877723083737578200160325282716620917497834879238163028281852787735089132431039618731466793749599046516086617949050031545256360466949397479765268883747085604837078689422746882181338295575632273100106417512684676297249538090299159928197175474013577948414482478825020020042148908786125052772950040486169846146301749577654611570850974367041892602455400765358589622695251880959853937007157650274036936856525470074039004277900346658832789759151492466330742365753253170287183609504554270233641766877135048110335548585483481053511498309304205128449485003208573584743677903604208018264562546402097620903642604687790765158222459671737089703006535533295072131733441176705017302701752016968146076073148130417979982507567985188979457154091691143873696962159104099856824014792829670571382099364855664609801900296086820285922845524800913142249412561846502753858065218181094840140277864128217455462190606358744523587008925168167193418528891176421132510119222528318880079741896178006512740799725695918578776216827005577803826554462665421191974083463040528917089879430047804125250411554520489233019850700742314617190527884059047045647119132292240462168524478401951035851931271401954034432672325887762533030001112777492338536307357713233593354946459715872399884354436649757055774242224751048311308860615960556932518867533663855518496304666087884874544742425075548385642802344381510774682982524415830242480377421785995921787437079187680877690262914849317764980763855547451335214789854560403593677600064406554287038406384231658433618098051001854729340855057063046687633538785288065672914882524335264273473138796487176463906410479074178006526126363036316682794240016361229359512676689213945380628504849913152952747808449470081849331893778789838022474567606237590151808761979358761428931348121922032629354765905739933868011032929450357738990592467666269177070672045581143365883244453225106002277686848385115983191550639383492800437151419523497004554582260458049749333459166153422225650788571609536117242452512061823907296162005360233125420756073932898103316139593092918433680202317380101408614845684956661836972061193473451856523543171392796920535557480359859142593209997119269362134322595649884235512533330078684991322171571712406258868818963586927638053108015922398449520046203049431352175424214621024450314723283790828726096125874231748092959707197849486529468323237585676912381331861861386567909304807552382441380972109206862121606505660472802286891043089514519655159068693381984765344117431543110882688757045734525129333054083025268648807106308375625151070345790844929898011006015388809540250920436611315519963651516539972868274641852561155970331298880858800444321475431443001041823871781071948961765805048699899658129498540909421246657477952095506639385405694055792415338745271365086095641864671427087680069410922073518499230252519983443707628623449256341065230622154690857244757457055549644936754355123908332626270691925553090615430779387247245668676599608346559718952598974761320114801725776728711254936408922868943822128564685308199481876687917824240017736369353866539520219011861543908058293511772007551634183736061457582762054254025620647746445424044899581968915104625755334553341744293233704988949049123885266322748391680375568746514385888831516770025809020542253705363102502144129376876572630720701339266032732556939419092251696357362501617060814741574834906680204109833925982069789306695576522081071048865764390557661872843102168830410538057616698378376380110431174573222631447326085952076063712790417180920101432664816945159752687160121361004869061514803312507402531058675564838673241986414844813373434270686616617843751165921143278661795875346113713564221711250865258412487381162188753088545774483445607490640438634486501618831267861630666450211152766197596474885561823321960262649855671416037370394872145429098002497378712081127295493260179455713190411135095049554184319495226034845252443162997261824371806390375124393709180178904666259381907058041295136273017096084117546720892617663786589663396792437354445330755548007224840208177277328813253929258211375748780442938270862085753231428733594778198172440174913853786190608580296772512342015908945989640530343631256331299163588587746344524758342973046557401220630803677056826682620592330789993846700344412305642449921852360077434635953808078114742645431016164793342390265882877046279826190947648331197102571850320394918124679438408749437521467246882255649148173089342347260288081534755766952057710128305996081188714026325884381318320375992399876095994926259770340081629528568439239225613554018231200241134600506217164261792268080380035966910242637897550249730826925867820121290442259158201865418050867642911867054177032435342516181359274362909943470907340457503707779960846719360817022092588101976259009372183294027088368904333136000889757343609839779428695946452024139828670139541078549523143595792124237768514439912818887449668282399739622926742148841325216193311564514531052293176225015113053494555544215139574011590253526094882659284827005490501091755615513657879837776889180832960960503823907419985861531069525646404388141665261129267853206236325215509570363503411950806080965886786695430525603840193003766349984809525938579979753257610008898857833427687782940406251033630814898238587940801198497384473253707159617516997560909281760347020233064696051004809378309204283182452804149479868662533739228221744342117751278471000164518069651604235577497918500127605643031305087599572159134527850320478809971556091239292244120194837652871045496565925613295668476856153946317945219713183436269342545485553271421263186106618227927607380873343191702693002225392368286734276991799997597311686665857755676111498907036803740756606616171907302496810269305779493374758135819049513711135493643473070543437389185067297421225150732763614784988694951643600707696011475796009001865311035797639861759410404416569521339903078754987069394666647708969938010384921531574306438114941629715444783249321230726002641882077905543429233718078964826754712671046153144536726054767391705115063036766767680162758321582199933500735921762032810020282450300135287349918458868639688187287759062001923686372599205918088047344258584351744189664654646948559032397939123171854732825452104924000734920447022572395683083401607871599491097124682367154300393635917607972875432707429579886002953342512139616690351196110844055521205408465709215260207440613964071868142735823970857668891918902163372601535948715085944049293219614723619066695043408108563113628628832265099075268443406246283465862396313567419587266276273958413083026484621237077190577695140184561290814453047893709452126124240383907366592417485711901616065474201339024573559468661606853764650120350911943199640293496576160045853488908402157677320169765545718935425388619002590130831443339200191313079950764309215959650297000729938258832498016450594833212781105745900464062891444843244218621231089426420457464266049671028189597111731938162459616026838263864787129236923888562733782640307915563814696856500636739987124400423260988164314583159276882905489638642767124875891091937966451675883239954682342114019249007839348830720340268498975334794255667589058362480236444005059389236380623556294327583918176428462698259632850308003663613049473903662930777815685331310288014531797881943773030765471778544633825125349066350477765970950641522266167613625231636120700112735665328951687426943533547827138500728122546671097146970954441687633294635205516707187755664056006105474846638377018122751134192514526127845731573841304980589716238114324753411810845275084979584575842580888184685745713086947540055680636823407619167848501653913905759160935572824947190882517747545505832318389024173402093441796537521046156361273545382616814758663288692528078945245972482659559403579189765984985935977468148005198390638402149659562518654284195647304733212836870357435601685529272949089310457004579638283873639057118304436777058883553880289689523485104967648888598772147967802496301492310162640617609420711697574841644793635689464330078051916085283109212921541940186222523443656115774327341084294940800159748470837759221194324729303861099276212548102939011222385724427624318389807795610852389722224864804242708324106941847721572647109407789931605366603523025907152392317443826232752302879505769642625934592714276558209436919313726467162009134905997913811285942312761446501613675763951463734782439438102490983247035656513114532357249099261896937027719989390482452926812469816726809370919043584338005438926337751528985803749720675365299779960421615179979269290545961967629236714859380205528611746674968803126574476278610801034102835136436712724265774349809965702968584893626797751850943431962254479768899624872091353756313780390998114211162666396266571582625973017850358281452952140542234972779509395571600465593414709261909639027900331352321573224822498249041313238037876484539467166091531201843878521526579913725298546461455376949036965553151475032406030671466883011773272087516686002305897653361963591982999874634621120818011027548260817023346285060074701718977871180789461580860853440505372304938512869089973668223648754455135657471326187973058585992181318533271783455666949276858494716658389269427113994151674235741473979548740157552467815402578321227765622456676141772555093846501474886927241515584498617650232321833208001153045759451835614097766051041006231736876286435289566169794086686167777812223680162144574188825166918754874358598037047855318812273999427726576870634299673571988402847233694144244776053513918374269833596001057619866645117112706058048888228941810897713354392870292400103074702902917433986905772350995498246029286813711381640826046357726848082885204015864123027017900363844868101660273241345776684957794019260615456000602023080331591597815473387888493206055798219447344402120814350982268946435019186068034378915725218472635154559304421168217716499665766218898889013325822066922575046803217305516147766713516234837810227517173883117658487640785920778114627091083168985009124279509637607209696316095715813464810151804838515190491532889525631988717725724897493550975549588648723747307049888456762432146611476925786474067410720676794576012111181068629169397879438522621167528979548292552981561540318696730578485033355743617895413157758194998142499279844750426361583827833626168295249828968899656983167529607286332889194516818806599615813129067259693776483222305061662414151085359167049643472303820440731788319590352716763283088901774149672535504428123954415091387124921727099143404746432448770835707412536164722639784853049346636853785432898524376152838404913838879267597657913081798112320608198932124024392671679734895315714970845267093893651399341038712698265094647265519015483521193121975093042124566065297928488150238139944605944497858862848057507552528841449849157591226043110801498549468273156361460203692938279029245824207047438500375373956279399365148744287356043017199349901515476181809278540373784506852360469838047470213994542232344960994471518309940516047299562536092167244762252641059065795472346033062172792410091652683238305955187198059405110996082342341024259230054020454359602386030140565897949358049937452948902845625472715914514128335461817188831327058146026752548149641410457846469619293877027799764448092456228165127143560068711993138990824410109076941551190284463889680284558157722675300729854248574942734467368355846512192012281962840010042538664645693418615545957676618291901136399562805117792518521381785806994115460188741225681528393113755843312160134454988343689533167640456125552248371495624679752921978906090917101171314633085903236187895148865311526614492439706141676455549293859054690671586965212775415080683016848410057033130365043506454043072778582072197381054520889745724827446065351614866218039873664153409621320435197809217916519477895772071216742415636704449650837797590734946228415509592007306257906368250692575693088834568980242408628849915028963299133453564773566366585123205156468981728019955792911219345506747299368857686963263453253799603342551681212916101377315178829360011704967443235646298639826684229382226349928532937956846935895929707136585940416465122453547927113375744664564838115623069911899440570825339118805831167810129362060933609143561288501291811282728472760549038068938479315890394907469797073986051393112058858065503274512055455850579855673604604896766765960629756054312560566494551375234863752256838554238849233094448774238522991404831560920066316899940031473393553254107288573095996445809729424471908689216931225609416250373822340417698642488501513497285407947844668461062202802369640102432896831439517970456849211022117817938947931589842002091057365171694984396198936993995151327202305046387939318613480550215185828104697577100926502189483143711970512573475470903620285623066619470767387906097724600983895983117290180735040202275039983085991960153795518560534147787105211524246641906106290164361821407260629902476808918279046907875463101297922564344397457902727880952980226303482998710082546211189184038290133868481750558625567216368110346521262611143130017448103245001461226469140718929019802986215391582296222184337337873221352096633452338201045930034441496154639007277561510140005403293977194483299724488270657564765841340894418147002129035461961584269431957378855144753887130820819953575191152145053306445913057380383359479482333416765710952952427641360811756593668729257963635443720354032769955310960740364708128927273433031249552746848926309121002288445037684955273819856560612208576390644380253025551810651450724811972901952703835919517955109493534670316469148273357157183158930524922883484915452259002183887586674145580439605716662604750459294627564352140424481400027454877328572720442630566010682587112487814975515701759290449397040880807733009636416389577688049460041316829983070552917443868075113138198506902697164807916910931743755820612388128964872163789793226068622943087646272576173775871788857481867121453222458316042655807015100961201033368132670975447578874945969546576936178832910145891712204919636202032625029685710316844485746470082067483299829298116735633472324882502281979399929316799128906870592087745274777917960742233286003755203006464528278492546970742365744295563993251740235738988842516618207325070006623648673374004531470863665239782193169535587842663224978622392230916968865622289931747451476588634714431830016013986495163447208694259460003247974650622682861304071720043712584219512132497172368872050605753250164336751700595571095570422766127104975418510985051120449793821763666774430426529761900291705371062381206808658073676073613305844057272986477597414612306375045975500877933602829173586050963223379446221475560774548366893185648685324728935958340605782370733991933208803134199614996250056224545180265872366580816310395329580385280157909071369159154529789496272893189128968527474553005508524338662899687318047321442652571706231146228127559191989620857552168933068787578445974421664400831183577124376674675275920762239123879306530680963760513177586850218948845742552538251822852516198795347090989237803862186735315129690036732929536031514033713772071828259866102766456878699661079240233542426320399311426960373996836796142338950436385257142857597666706890091397267768962734893213716273543433030500259088053347508749168417806265267030118321941014479469793859717659226621979484631478917928055732760061230947553917354241890536630376437038450612337451714126669300050557677035294695728621027203169464783212501358208948196463813817140549122241280208908059739031053838731543037066824641767435091775277377016720320991013079389601802364696880428608539392040562370878532988479348066442104223989050766547421489023361802890802625337787854742587235624342531949593444692006303721589587710124730530287502937419027958752962821239931504620254335384558770105513855952003667418469396994365724069777584238051631052368569884354509811191729989967764419327658690335619810745026710569010532201012900235506379369402820987280156153333123691228095593982844531146442718576824772790569059610828038804589781049741228576866755514535967532249216606851412409723336434874286837532634729173197996267997910663488895651668335312234879579087558005980073368878950039213089712120767227399974396707304664673552974082123458200288121589872627126524928386970482547277482094463265826212353998670175105146603872084042692560958791148634576058027758079093492093221372623892666162515480287915185011712411894985785056900623444564654194650672036797984708081486253156721143855985557675797144168568725997827804835520907918124483098866833935382295159163277136131224914630610070955969700135220341284563237904825434258089310458772077725986411057321722706172796662729953847863034725289614554528682572559907921072150983860327742739742922881364302600680192687868060117838022680693968028356638662998451773072569043962460398536878762547211870154974255146781048019603401298440959335494759708238227226670844156790091797037669921913481168817272387335874639445027012768767371989164288564778544213554385139665073004038618560914455354641959867840589586665428460363766270423995970314995165524442493481786916594637919229825548990213415270209504337770679548043065770806614436389763328861361944564254541773487574614444435902017096895727985341834505174424138262794257202640891005196860975930574067700096989406452939460684870901164935610447402402079224259326592153537377764895289025806681846370467900407274659886000254473589718677329178652071643005810630918581719292698264410417855280984778669561404120003998986898593052135394422438763262186933984817998122792471300974730326499664374445513197858245108782712797244713923014808272843362295760281570906361907936214646198042117771312863939337546454467217824829431081847876458017998376370320904159710931569905663369526893089679652186282829386172574947319108047961337826654067360439304824005536150598177707985822634820224125398866002731233384225379543767398139963148290325253358779872771264211049432447159235400054103437379319964626371659070095013903967898991789496502546130259543504206902454141043681592435943166260790535538161712753804699011145087307331020434522996724588786176164257957832548142268260981152846845050799197115208596854580221280840357174549893849325576993903373529264768236430227523216270563759292012534385589327501865621359927616879536813667984494861743820333101334931866592144053375601174105505192538378137831898782595759016666614653996208354779715282028481939670169771367490193358414018926874536111086817734322308912599509895488333605474159641716100125394804055451170893522134067222524445898124758445521283819794556546659128179499437689140113850222722524307745171740669092458621039828883452919716633453819419236919079291796646274184009115777909651264910499390773896387787760336640255263802683220272844789573376713549555110924243617669257582179947101313180186168276921440001493847963725570312032640873691624065120624228451999684629376848493926766765869352634780694060208959922622447484711266557063230868175136678165184553904104804507627065990446491863598012452442633786109571886871155141342116328566945106719587211774235739008965735504142161755955412267543575286899007192057432455812109752974803400308441495534762976045802532330322339827756798534736021090208134830438733391588705817840072028117916944408020995417395788543728936030752492912450592193507290219367094343971518737634799284026310223873905516461146695277857941572734326972833586520813634031370511412868912300958108617213163709936254182093951547984107163047217804413231904751884969924668477197801464672656408991075359381455589437136968960876870219545776273926043526440075758491055436926922847545607464712890611700605787833333854019204445856745884123792458481118154657792845112128957599227006463946550732866701756939603949934649487119074270125177583728004331098763201877762208497195717788925738597925844140764239523568518083108787430229728205719124111633044283274960722342896491590337118740953028507198087965110627975588428760259585788921106042545815159060415841022949312538564415499941978058299206527302189245717561648159692126652097774374528541875372361081997677949870766269536973668889707782092095425071681622879264666854707011405398101830542858627035334085086962032486537619053388799920779226257039955083298936185237668912497344178420848809540392396118104935750555060633754295898382070769596065690289201516568961965832706077059068529383789347284211717799354128477143972241862706543547249446285576698484330788301889295196330978730584263989658024845931158029060662182677040941630519214146946817676303531238014818861616842173221628912794042131808450237361657954652500185621052880112699038699563731374461362689086316024247359351994058449265499016242795270654761534203214716274056093147270504342375861577903620010870574210192097261868592971600096207609758913345151060686835409707593614399292570196547547366337515349420313526909839497377029425069982915039409151515078138356424020785662995858867838142597107212426750645271216987736065821414615575002299500684512143357369449673936687204047964123954947450204894443038486342785992352877613863171434016489615724763564293592276662910661155330378737384386127740321036583246103688015306304446378992895221213993250234392393539139039740143180200974714737720450837220051621563165452013689390697996860955742634472077964023794863995650168880663927748083590375471242777582759792422785343661186530780073683809325479575778199771539306680943310179217423040560486931897644827054874056304626554889234417890177179862680618052025036628440481195878681656492451497638419729411478406645399891414870293949099005675913203790096145479239732573991452540582107540959539790282992278312701317668454948442666551867399855989661255641079562278518607715263996683593248367118891111266090152952843546838979901359656213938148372680416207828524267228058358278481084457722778600988173066596406905826633437691588024796811027095359476738053945005177986847599078252085476598286754574297685716951237536657287623570771541667583777688491813771098345890623161774676712068669648492143084222110050591961751203021112521334959214198944326046199474367955609038277502808289972704213260362164454907561510089110222614398464666743896876159173376433355754144698921084397226765114587331207441137146784027455021294700851624803962993382078471308944722915663327330201600080380459530880211425626269140042932612448089963371069324459721568100729498783421745139876017600946890399188214744374794403443511441984415883418441186863454641870623200954132337001128443068365501621970822413659054127131334428827644188825532912635553958728591761350421384824743949481994236002647718229157967129007916006017156367361367520602769072240420289276550704095511250833330128559802833752319446200501009368988346762972765427654659036384493424336911332496135977648852887978147538549784510600759957784944875801025438527319244775127333376767393449928223977795262292161849307968092341412408046295508662551403551829950939959662583245053199898565570395215018685979835414799734620821211341617410958288351427070341141078481999615393914935513858645860755762590833175189006688513727511916205580514726449880159753172163028880341773866114582459604464682440658591877989334307122582815200590665586355125358464356925180434473767496483803078722908296832458757288326806276003008061136313746253182823391501548569009989796108667944175896013790920748379525266111954657726629280394852013597212816041388988647557379334885000437153264370416423924861320765242215254828283725251290731080181433813665306701272571502276813800568823748540676029603821199771074421132385232031300976804810001503280902248930837483939232203832432335312441381692004441378936222053631787996491391304878732984705308011597187899818960302384292049619169980538545290346319412519576086659606956529620210209219555357372582101337584001864230267083161748723469429537262334287932107432261163308277586382237883470216384380911387537381951164552209936422052320141565627984577005967680275851759114279205358627720017206199206929254768273223027208873808751089840047981658106905195373860997759758466228525277323873506086125548654134817142186688630978752524571536416941999121184317518139880790151930507343108455959620613352837247864697005912242425972481288706714437908919571020317302832664803106236018904967036976704363664242727450380517505451040795497434046832283681428483686860971007152880719511063875095204027955350603799385331413733249742520269793825936151710643022307312445353854015663360713529630255421576098396230446952425921247831995616037537747871072599124077644417045055599723961718388094504075382716233606991026499277287053869457189382775530339156316793962140116720479540165205544265699144854220120098678696813091484525537913672497671818322185436546637265819023756688688352836815027794335529929525255877445674818203921711846525687068905978556732121682484262301980828631640443801288243271576512444192148614472978883187486395682635064803329648947524081455890125908728386183442407572036376249092999364151313463966971445599908457665067050084375377413214426434539303515085894081820590939753955939163908837852378521153673735812004172827853740892841465393318079244931750737522444747752643968034796054825236734572560534492784426848100999259300229515068480956742061979912770258413850816698068719006131273319266549744585561967534357888917862712961977977401537216273413068898984923190631125251663512288559670524737708038750810911802675236855723405788200044385683768213906556983942821638233357917157115550449409460297951047260370779150460641915000042795398475561633521687543642809546095838586579379568575182391011473918703616388729724213467540994903951309202178904109138652100262947684617970092020400025350232432742102066335038445673447774384459894913972714775811185076841210682502863385700088696661128944118414278635143725578942339249179412027202231009320871973792497578288895114527573671252009009446153035196424283695321145490734164445083756462632337647723279026874204330262957723549597235684514473989348451705891093388963222973328892415085362737870221012029097592366809743069250842418178090561899709715188724827245979411227992687261218247904124560370323803551682869961472692202790367252342848277464722330343518960871546590604014792237020585617492516398455051871081328974300130401421610241087275589306159660250075588393848483975538487439573279499855716808394258259008978648152443448132295943188003832104615272408499097806952320323268538799669458500935789961645237224600573712261639728652615500384344005555717824481078803289557597234121199173613519904188457238409780639151104250477126402568704734338459980066974026697855496307248419716574553555108163610070274013064992953492630659615346132521862298372388265970886686575848543431673613622655690342954597724274269690476876263722477560082398736141059802906280389485995677260779049723563033150300522994187810906945517289493434021331084463349400738408102542286038741370945309113030474906564764705792501855496306595350101145288149070583407081039008468324659463356135115701884500480156671793236575990714281517808721786608525243388740034470801585118493792807683683580814143611160567598780304655121048877125700065146324178356137609829074194348796250298288892020284760160962051979553291718182595297870905540444127732018739696638241772158850227088064213434798733397349268149064755733449920742561620179604927105636792750255349617344258510269950628844118974535385629236407297876637799911333482621924961928773552475741031861994122596376338581657646910497929092168863619465746204102991376592543654225430270684878291515168426486866710988661974618636159225608085305184517272901468861034043305291583149126146882427639950124651901836316890259180673284541170923695298027537628292971824714954117332963881804512981184806743414121374859423987897359608124074854298917391601765185369840619177608332479937708461099923312809496024364902605755138586277277428065981054973600796566875804708482191351219523897388556904653483120559504838021782105353307224419415885540995259500764352113370363932948681806517979883812961615843327445496711610047913126955349659673620666853258598110335345100924342788854284932281243847678578412261924859977720989596195567125619655424275794329157370002432225914915626872024234048687208428976259159201312133271248949859817780366579767647228981727525809122949889996610993943831354071502444697658587323825018682891758911211267479991300440595297433450283209910795520741555868696332257286521769461796989394001295806743933326539308577612713084164555979671562049820106166106991087173336194333816563758983753081502011603886504215776564372719731079010990079096245883335934872114096491336423480576571081470803213952405077582829558018287786119984565377223976117490346801373674124847076383056350359259695208156721642059429336421599886844428838086805346079131217826934908746088998553779022398770200919804189399386190319566540797249112602836977334176168839834955878076567777737171057166275384801902178391786556741147879141974385472941886148169462738703987039538147987733382265263311893828052481957485341018574719458884524593108970077483280244731608671647405723163186545187781622028697107259261332792654254738366708788629637075773269302756689388480587006494639102236038734484172813692461781648219525979001111223472233307351260981983105165079315754216867042481889375545329239937972805198374545872928899583861068095305980275960847931747699145558121894063091275562127120279176922208833612882457149627109992296365381845001502793797872112745504509937194611438294769384344677631439977336129810110656601598960730701161071578065793755708951784875982054064549580411860362143228561743108288610453450996678705509821334576467082395778809293993315199330523726405213690436107314143111221600879692475355572009283792743690168194652163706195652436893619616138541538661887375717105599383181408262383363925840251504951481434043923035814180393774122811640500376112751389627606865976595075160253350580018744450488434969575593517454951616645265237388850946592296293361163401667322731579928507057370905346076226141774674985684348545081458950499148413786255831544260380633189005258618785031146833341406751830657009236359459415393770041482108898817414826013357696970435999514662801433278604327779238420511304529622281942316075271106247106567472571401164039715693491907601413522154630989345241523292368133113914816939901141015555484800799603926338745804915448812985538854321409102255994390600555691842376573388222978117018666713011829738725080727878047896849207037574322377852642287906049241390704709441868174056123881637182476719536656351697206530116727103736037747112802951430995065195720607726348742562586625507233537893719326699042254696222277800197817796427706682891376738950059206915139960725920809989004195694363911172839774137602960129366689538582889193433960419330970623943874971439941310423826622595342223416708780079817043470848623006611301026550590291317406531265465671512483304029048366352920435389631580108711548730996971473787959297229635010315426665369637295076204801025191510778594037687064129817429083109951488063699037795253686509308765485212821701649713262086785305252564227019484801557119237848733441459335898912694196532176116853758272865093092065637386853384812265370630310444854804696727273902738298253558236734370376910639347299791203917789966622835643638923628186425091711005799263364541495096379081687667784666062880390520399340359293988077695244134046214520967321802579823195780500639964362360891020026153292884911570927122164961763382436099033894914473374431193386402742634690800490946357669176669922695290817529304485663672189317258550639983448624319507457351369006898695764283217623556547918975908866399760453594031703215611431195367367388106529781349506162446941935516405250956067961236075774158834994320268339747962987431050608510604248130722949642041265193362889409275086618050643139842731617140876000029860001330605608968523360282798627371282388985999882183908087954261775924348855771073984247946044040870632493574514807192937882730063263291608738410390242095390397309702707852027153732783586778282324615904581268913399301709503631915481509645424092757476747922792664325063378924262727063041362204011873104272337172865516826550031109024044912179847261781358462131042593396875216938726334857627393242574332376036220127851893840611588086767655995926395018482872597836302658109719216260956350631891891561423058991689944972439819932820502479078788268024135699733127181057860575735314153891532221013000296370531529411111097901390480796490315910728417938997203511247030902656637083907387581087413529178170342695345497564525623974724510949577115995511661695968528820324381491226362567055045881339755989398287223389295776435395414650701480530020898763693369124372515397151145158648549411988813503925391140076299083147339703302117438044389410974559631556665695650767448390045964008920674397999381752610202404291172674438410425993305551135914823323115386713796104777570041695085059837961267098528792046096377447736269304952294699629664838420526388069376071776117461841657031146877498640929358717991479425025725643912616102675925925614124131644124754266380683185207929403997818624453744844590852632361680139455467828272442367120776151347275725620045856536548321450826615891065573662504781431710021188713796398750534186070319107911931490871695841817141843835443631343035479536517297268685432937928196867422803751448594359958735465234855466666234003685204841373356445291054089601744510395883012765080549054680371839869244270847143721176063448059932425657877582413796394101803354815433943870857301751275507322594740756413368301970085316197879687372109471485938651841587205164898111462521821135499884848803563936258488380020320635735790606172714167646925464550900782215915413319100332477198124299170636978000319020591927487288800600474719388577460280873126169018288654868636190157403107412780922131160488732932519048986300504686387161347187035374613022413055577191171222453906503190031374615015552554884115554283100931085008734816292793265430277631046014680515751491157794520695514020776636336398330745738237096210805960877666847023105571339806524833546070571373722751043769497622674675339548028195876081519910323395566582235463432114050221130024944877130925275600168438039580445651060816835516593692754088765737348292921165458249188556737138460329827704396469626628640303188396191918887367891802718163751581325028403805175381592686687941644787994140903920352818659006322252327353096118505053677730686074402117112942914112111008594493958863641629782857527746106056733037956993157904851788056640051221278931711966454408707593472175967527431017833239832648561870906923355372280920484951641607768708353700922854654133512137377557596807607860718159912919408919466651461998803486543568473010209954307545527870929395621714617365341101611475717528913682141907882670521682853405641371565376668608772405040534641212886731484454608052286468013908894937271393348454435534481260119477113275301758891956277368649331156969665370568941432043624544962032545563076878743217818684874447360480018955529842080989662444357648873548647269590316216354897495851712606019787365403651493853705137295614852881541896073874499895877736948494649404659497355267708250793643773870366579158354087685912209142419847402195009516959572200293479284189263933275380118087941143566722612410183161469016534531804474054274743734367513851084776042168349046377750755009510586473752275161728017304435869076856569990693369530660837138617144240115692807945601587120482755218458784081933754136544642786382399453119371706718502116230005276412809188034154125268856629807795419307088608534654600407588854651180559679322712671422997867065423261238071011706950134532485633630242866298309736660947379451950429681101163771585657772788965437943844759507820857448581745808258319165775665764139765663465776052826765125502512779122052032554111128595239531339117583215035370035258590164391789303360788806664233139448779613487039586987819277274152336077914178377525124886036493403664576191292158226515496263848823178782785814264809991436499976433909774273655022297397907338523160824613370717374743436963178539332159277325469013403932870970182260042502272650387444923856967323835414044963371268624974843375962212449004318375035301523201826965141973453296833432161051723289809707152227216218714380804741664328568149419071977529402938374271989532128571318091351781360039404784618276967370327629210523539875778335295119077763522787820978981278759224923723226025567109102107938805171662059125663744648517872191852882118389534311351667740052788472877145269366366350532715883808841994785544664822207735736879871095080979843162035095587879064637848755609209801480934945960178171847752376997814765490830861991621558480079290640153301014577880077717457359362463986941995943422178282603144505314350830917938255653499527635964367963245034854814566336949592393823310931574056667894289303889794240738729485671439587502825331120936360835757836527782457121324871137589493458826539356982396364549257825549434273654209689014552778469835412966313016899587323671295237927979136276328773402408564686986683858589313626238940393371678216177317046218126568255908026892905611422829184779260956517026528716284666756542594717528628599557946866287737920651479876341944449883106492926896800233011114725234517241514354302995564196940415007872186244911070617338336646539378176639534873860740275650992854838194241010509521502655695452461666053870363030128259628406039928902114508981252862039329420535086289435872205417869488605105492342115416593999164031455191565515280922353208984332650753396884472460893399148500382625095416851831362068684695121693205162188138077839829119385480715520768703318531369635670963514739535800604252972595247800951589368195343264345088437436096513913669588691027488013143334017289442786362758679639017955058262201439402688506718410513918673553358999432940823621098570777678829749210709093196612829079749568079189744472193625205144005812787128283376442917838953267253568540461918834407458166935612412957527296286125781201506715172054755850161129984687943651762137563685420591046217851823104665776086401434381984294005321614348721415017383426545695595835163213780400715999744963442527371988496797262816078511554241139727969009582982028430019047275245941085933504220869073351060554206497327656500370343600064222547789838313862116411097518913256539820067037728034063028859170444674343274846613884891038569632028749440146551692795341676770343780920569139078356696096855927068012982896617409977870520323156905549979170731632375702551160775003456498894256695494711584672284791383858133278564998219796589935910454320141843557964429098986274761300766713909010983243121601521830978987217481038481294442904094078739016857704143069701614373443279449827461845102953797284974191788036142327549926260688191885252178742011783859828746539311918867384240972396197575355108789020450204582756191447427851982149589878553607100284312912606012940848364689847460841440171485277149603179331434073108578508365998393233815949951883211279579551040649479819655422546539726248549955288584413335845018773283186297744093815746303420292897724288957519362865272568713422248907075462864657042954238047298443744530767805261214381776047178078114923774362137880686480692371824116195608465576812537972755654074158075272184468300779048459822275821343432784974693300807412889277410084732282578198637883648921033419469277564175957181455091863883831581813831328236306932633287887560253956307266212937985767446594630592237523524588742241359450972416301156232976189937992217769133470394157288052478485238284193218295165801282656072919930867965406190593688428204478501240940133887988264006006480373425420967171939210009605770227698412929119460585015681602009800712681831767406553773716181159853528522878663565729332933403671959207935261414733485314906616923643763596824730249252265839280866965280885970654155692428280210008481181773552341363001880510524721531872793056157051345165128290016098385945522552577065011439005969235370533824488737779153164925906022678929505197071545842521185981290627163242454885052458811207568387053264138804953322557884850747324128075842176250443561557251883855061813696768847993729071570553882687766012788577457614834330765254900336982289269602993991822356017866806448771086416886649303022920561057609919915798611407327446719172026486910211134761667174160247503776997721156679482368856413773787331614377833387100600147238330076389947967506129757013189552129898338100472643439544949189602773280790533817126470225087412746270951241317887141459865601469232811717247518086959453896294660376702644023630610618058656893125464551751220408516237717626352069206754139086847267063032137834036889979201305698279292178489584466640466150543236959887684559915587149428958251192563309056232308439120400361315791172166408350503691744426152611555662212760211583087888457038850217921138524891604508504006163162427158198054536633825653973918827187752327171804748955855861700827775741342855263134586458004570505378086432884127749461951319990022535563596168477489135846131453372583847153659640883668613114057180160738231169240839189712698760084740305598119315592127371672437813316342256247289892258072789991130554193195248327702981183434500834047107908519360773621051226003629781111258979052341709441501992605672615872842174304633535960319143015719418309053329910424609633331834332126465053453863736217852817657739180090338813120403725092008674981790973530269151326738318485596030086329861289158335634853017140775817959502201193633553220770868261209928697092964191236026749656991409464947690723387399073913426248318335524427512860548959564311722099471192068429510652730242562683074975889255577568404866821167009339116061402644816377979574380799836289254284899472537436192626856948698112646273522526492337707094744224837068242098385515538689072520344710529278270688688760359808262371419677859842346368635655051124725443962539586727112765092671178153923156224989819892522425598289487706268372274258395390281516363278662577375529725434118088096946783018896553923699321070039657795212643962696916436893285864471617982032950896006857104960953930121429669888305711470030622368386691255203943405784765216103380198778750108851832414876551418567225320439222737051387074302343568891953728017812669822464206342093406180510643628754910095254044801733219956380073354978994919385556390937501663244827569546660332568121499852677854868821273889917876903428079546616226879551975756480565521972468624074530949450809934434666273345976014956851736428205474946446554177406581904255925091102907555955945041773574350376691662367006313844383483591728368626616400032889777815172138825454992690844032270480610198423168527433405730963337694631836790933059586323250945211663296223037832428656349881967120799518366238742013156700401719333454782042444430115916216957436865999120150297168600326621148613700510965261777591241312491741485520707933495320404671643815589515844207211522563221587207669887026811406404381358074582171387525159701804135356370130155147486165669030132007740350651182942403491430055062859850538834471934711470463888808406224022226022506063802705018215705890404829877648124594282025660713699338064732219208386238595706243372689675257974406922061442747361568153931382609489188572672518698091821319974698124927725492722868380462423533940586657331252493275675219133961085979633258875881391839079693199344042209165943042184430410396113724835813295099722860090003390970426160768280750613277416945347565260311735826678936281941228441510290188183499949285666983038981136705311975434253301209556157255059873001713009033044715068037818715916428239196365201635768272752380833833772277393048490046447709094731128191401114755012382390149248993205894285598226483381566518867023233910955541028171275231592501569708323758076494910065653709216343217365382063516233147819695822523663051666778052234672512869330687727902507722107634163920500358387796112432675306135315926434539180425651082754791125991185451799322338931757370897186580927546951674608056436383337555448275346620638344094580880018775451630235046231280264541858966765129811336301195808598300537866048304150075297921378051236977173319839387547428333892549120668188357709457935988068963671939720461562394437708082613164545537232709148229171704043328637801600582794136541859895601647710761727893435370665951781989326502100057044718545336684044460706112053054819896659477072598112572601438199917585150364377026118273011041176480352395394038640846331161825594534411782574427891277845250193734111356247980084761111354094563883256175759536431699080739549970149261704765700461700275182077365351395630027546474176601412282586570719685305167519385855981546493230514071108052716731246774643328611637325949727243487845482814672527137944880254551818334529832050361320373029987564011088132395401149897071122418542610911574844950781385745416961787067335044362886231376632940900781765141159795746772836328361636104328789231380877165356157836645037762195379708419706746042948931746919894442554183145874400303865919702459936321269080581667139524192901901757758806918850885827056266757727408212362491187672147777508768478826740851125070373965745638235426204036585335627783469460079876717028919826474131320480302670244458558992692987389517947170715964367361277263084295448077529411932017866439072991521373069316736120301951036385309226953428422420459141785881596823859391202138180509672688642785783361723022957484093411970612752335545963594824191523776085478856334317889492188496780293842358094411083943848047565385648585384242365497791117093419483304060660555871838478207663463443130602501447867746304040967259878965353565054047526826511076235258434881786840273279229581335986175056827185949283040522643723585936573124867598878508480648025412707636479535982867694847721745680887671370698857172091748001355213409359608142777133298774709896131241543242400588667657359561444925902679810559736674712155033265003845653072257331529881391181654406772548751246114790725412594919167556259710679124785240460170966986652621307293205623066225203314430165789700798239607689861698929493649380286110094845055793772611535825256130687747692209202113364376987276296576927370775874530889978029126299780564714237046488634358650374642107736570854489646289994676456306635772832238647071091925350928666025587891653059689523102303709322048966020818213002420184411636270005767231009343278836822158783572286968736631304451048830662641818287874137752663841615172962654111719088761762614498339527000787705295286909470908241265007734359025712085521106278085749136098714760570875811945272169506785450702065843080635450348088421643868631819215173582128682543789976809890409663491119088522087270219105085943896338956166781490823537143734798274229622111504174366206909656207905070609818285306922543118554419296414269836756428091149233777428118367334347698083134271987101476008061611876133310674276041151807291345120540436980975312644525992353480045797187880550818534698959787738155965312192139154622450801782922520133289359944549251673136011631852103626006225195315085013834061330990719390810080485794436943728607999159938168637838652545913404077294089927625899719577725519142322890055435045597921967918917984773340924730246785235341186744680000069428844348942229884106678606318583157307260922859592077674620241323526088344898116151322920358425511012622784499862851429608006412337872227854147604866507834927668828307332532425207619022039918623690091791996190007330083058929390221787585788573743304034534749819397812930183485194639130294783995834002206461889475872965048547397417121152478451979987345224652621301265134230290464061954585998197701571064416549886152119437994639017723690592012690224995923721806739739588310619375032338933939462324294863880892495363696261386642028519376729547124640981067427963414574326396443761924575802036214454339973299888062529355952402780820046541106490059064246395048862126007658675819136645887843597543456725633868714795753705754235158243095046159563531219843930482491830775192459902693991321386791283890050035933983512369211735384777624450852901203416509452382218883607738762838513141785094945374164550234604339745609629645702998530333196497498376173791407505173339339894841203351700522148266141147493533966282520147703912152848661544795481348692812393653271285939659485515201247758817068560753437596208527825994225422798651291376030344358697519380832350768587086134305109856806099783546599094372435292111667266305177871999969318144486439889346562953077983389946327254155815386855787628836643725281758166768175110352786349214890245056461003887090212815730964440480030503377156765070400000706742342739444041338719969121245593742873812189648774100205699828572086593813050232573005853912989074083119701304564610592703769436885577298353618203969479161596107372952692986103488342563584940857124585270414127810592226495794804494438335723607151049076432555621681118719996261866856030410556489358963726722621347630989082109004086406204410350551929071882897095799261004916113729071529352468466032824444359203412532990641577473058274146415055857689546639506262793201839367532911690454554707727941841462139466565106582561143037595419806913484282969041330963083193957973664518803174726601060317263206135903735545281941037833937360794257485459615554047837823828756404447488961448176020931257562779291492506418869094822070157820364908425698419914212567283571048124209688438660911172698167291649986280870406873374316484634366391892249774452903908651187605314244472556848914472188309688369770605425871607868515971762290176654705920744517476323847045956201020135709564903495596582327789627051249855923931309925183176602981910806532675869380328734804308378278426133771451217790631962286348234099817880447537329647122917209871845785708266344999251964931596404793261172676562357179069656823730567224714541229379531984930014550967869213087604905872455257613616375987370257710260128664440044305332669985439474141567251567447304148941988478149824743086933835986564617995181085775558243160242976300829727119823986057751382602366600041469703982318539467678267968978742478104766315856396491280678311278343330347700922513830971222329105554250448655772850995172496903648118929392207299762078514938854992736569265506405077823147776709866237963710085581158838588729402840178064742267996686376295087711386215542691011881831390181510356383828042073043947390595763713052204159977642185018330580863932435639558191121145035869983739951047977528385327061622901624306315526767483467079527936332650618707756596939201499030237994566346391885502085365759642065399275291963337505798781063565642954752154652159209009646500333794296813711527353918913409889094009647935044688936965040859456669832036947015272595852892801805318075472921565084823932969987383306636351941695913953714603484980453555552728471966491168858309186304997232156207732085429311317869968071686996734776049464221780844947298581607510869838488471018500954876193762017806943484055344180813426576783546536046351744343355244662845920537987154147444625196710994259841230560906649037758928682742363218256802628289234165944977779708747239969863675895082651855072456229415219314078673360336861890419794324879167642029854033303926067913525511337954067096077605493893800998585798482006116606598291442760721996637847942274672510147239097519742499759671781491251019139825908825732104859820553873721338745099394357872272198655725850216513127200324513185156136022023330924154594557763262013090289601756439284553107264842265176506413391372184113936794972366071568436720373974435477213997547797370185192679949255517787221460475543098303533229382919862045314708423686500683843983277821160135936238252584770128762129309881647004093363276687863645612897620488293240609383683627567288676552137533204271708350192513932993046236831407816392123021543641235765365027775424562977956708271253216601405709884053646617638409753398730408693637737863670578376481766946990637315726790519834970537315071504045187437244667293943688095040142925295474565081292993921375584965795091318462214240376445660808358299883225498325372331463665511013221034088280935645223918033386959303071433718271616156425579906041182325844926375148746926116753770554719883000590007224832291238096869429643547657944651724414687333085326480353594243668729328670574998083346379530636405365991641011999982306014688372564370434619254534709035957254903707323609301313597645144173649863151936698369721653245009611000597006943635179200690071780993870909954505789011751855052259884196060619019165630470920660829883625272574269106846073274934223817395043746026149991008366464587689949059384072602080894468370960642156376952534900435911306213362343513788447311342617147325667873975937407526602634308207322370774754319773186955552660681996462688083896140119663229494657599923741025772956402393317591705942758857092911103177756891244424625872119150606448637973462200644847264394650803891785269304016329790069716049273394861743076485093448805496916186170077269529788936714547259851487182122859672591586810690226786695873082612150816553920763915352406962001005805801581675884038650733840910715251502229332709556943424295361360569433900990828074139466212340178895750936902804358104115056386107988693550538772509400365096985668674477211751891960665345342509426927755365080204374721100998976524840079003896705573346568871857495861303826191886009693712265567151597410494491743556529515856129878351182420896873073198057095171961842830733416561104074269179337010245007207764486066847765286493819183223493415380041576002241826026823281694315853380481076393840361849342123967993484255823634081879131344489467447891516645673186035958274180768798509228987477731773552522026434249704527554392414131030050655393024170821592101970040528663958169281052825199616395310784240641571972207156002120223508155668678910154357784978579369515751945159712396777818074118602950925854232696456185950560809975480205244334034290156318199314708199581473108376967800392746473086227372781175374682475660991044890496122078602047641068985050494235739503675466573385437777490882412978555592370861967230675578203957624874597213964621173654753206984098686668059720568294922978752337499113213710279620564016142995574986674808628566888366063925019950901068126412006811338280813011419966165934892888592697822250641660642875368650124191372018614819918298160075240883041026066610818984799822933189705117115982485711097073051903105125285060512455508766291627011547160683275707566799588942160857850307128878728748108808046919895864889655360638899023787470121917058488161091550578806690221469701354706704382173172550440791576502382781560543761913361727956172372901801699087101412118183090941355615045864173206295888095833732360227778147820778596782285515505103541286643370776295257509481092934860678773473893168804801013320648855846149571251020851681736314901994765012478517707791237562410121083474404706662329721483025794053773510171920001725429893014253219773544802055360106905876392589776379738330834959584498016439904412895080052763704549210255570450384399135981547733272559910646398426328194527742130432786915152529469381597803151164847222521855067306812050972314008896363243079359984270216238519226605612654864328706436016383883803050740706483970320487979054489346405638737457722467563796102023215507769985257850175706249196598722835951739087659741844426357186241428100599007263403547344670461085049559729438015180763218694673414218305679254218401523872818865392116681941680292715791462880061576323265241011869941157936541531929512112280049471679289786145182438844981079314857540550225922731951139712472870437237924722083977432444826471124253298232799191756270693668963106549568588092862589964777426488880586268083760708480469689678746760239328163046134902270728520960826038680127531365544547354293730060074292491741661073166306462427176552767136874860273430271696907593658871353285848897999094461553418699477471273154324421259941563902416340376540064906455593439060173343261852057699761142266235490923401350032247273327346268874993195831263069844620473717827678498179404898009427406984300661404145910920995766010561090166417939619125292813222081339779143749228027679710212018728231059150138599770073021182816693100707433047685390301025168759952873290673192193157097959658437761264930883541760007999997979048074437912116978400425207935989916136349552901055992323267141355805319154618706501753396335580371494215476313528637179722572878077726976763774577570107161855013991594556583451126089562390414558131613275194857694703566889349079218562649729169801844389132845062194407697758216876176955070746393898319127728380392488811690759969407534760492466241916936994589626708905880309236439361426589314266259873981289617887496173155418268515624309157418385976633032246295984825980853821478818030926638794736745648651174463374722461023993852119555787882551099308001990956016673519792814316934185703155470147325516441165565233039471695883207944422808458300759185202911066007311481724157009579637797864023219284828528816676170973510384449798220408580474165881794853136691728847836299110752360423035562184842707597362256241093329368039578092978551318789530531238768259651392024862711578220010282440339477289560010400828802046089681279877293744178501661156295801571832722883179946874382101705663197934154031322240375396497054619765570403889676357640779508207253057645657126174320275522106447513812760711810108616007549228298131949001701440632775562257813738630181043502781037566366037684349093423378835027524936131321215727877674467315853991054008648108767319012976690789973993469344599143434499676662928114205808872088667764014579858328433887475164388238753182275732414669323459960125129136019662652550623226257679147060597335238361504978351072540287986619700916687586457750610247510036370174742571523959389575550860194075105894933297390152182322450986660791381968520897280254854240970789003843984991910267412783425386513627096167342380007178706613490413093034499459150974015561315023018178619646802068376179980807634138049433892799597641028271313316679452295651188061072552458701954761242783484840223725156332819897137589693024194952716941623071152475979630428358991980140661745504201448443712361788443826665528368473768475278315905727153085618298805495650194891826187407245865932434312409723297730370893495736922902020084158480566585625067319520861170407101598664670488847681393601224632071938114151197803557297994279056867505021178172993829863048160803462856605165830394795783444188192635303938676436948762029416925352274836289473570854201102848217598675114670143553711897150985547801027833559441047327138239642042518025486740314480153482704738666762988445045863775952081995178109317106851670845499415520113803721584184718740052825004537435748999962180317744714781334140969343336828776251149968195477380615548585094157046310086352427351640478505243172692254169072147744066410908204109324754012231175165163593125170852021359008270773811194845079249198208930091922562727882505123866089475138471005195786114795065586043426859675610519719740494969627441561431371772613726795643900577946036325911652505032803679116184118185374037655887514535465325790228504203146780481533584421886824819668963350963891883398636297163103313163117258311515772611658708824113502474379386888433307922409766760471066766221619897635788700909539691306590878403199442100742799208483125245829362129782487135063360112074609446348310988961348889204174765517839105863711032252030849292025087390177726953423034999419278753949192051544338385633119871208344950301237217320773783420065929380314001696894239561052097399830979684203569228495185815642492093640217358398157863555116273852638597673929988325707167624630645099808030094911074618826342905199001582150097519746389176692958633289951669641539771003895452447875947583347378987547255937989046175891086059386838279212737150184205817860144599977508805862495350942989815821510480903502606190719253843649999678650625978137280479733971381179452542808399333770189551738271753371136612934145416362789536325546983617382799387067532543403087730698206442956771355543965123376433233130927153783377286408278315798136466278646220797874629265374845174154082066180008650348214419399168706289768549841455757012592183204782956742476833820372228444667010593256326936528800672834612885191405777033287849216315456610646696366203853388124331050276511664304987193166244276380148907262839600117230901771461535092816012306217301456965531213544322158839525641802775225179447451609926813960247173327570633107189322098917026323669436392308212790596554349537064502458378316412374678671836295783390430852215743187238382701843777387062975321325770278835519085580372872673282054195568339441739748211138922713457721108948864555878159391829891746948177936825709334480905350154264691222962015392122691515793038985067498491660738128930646915926310514721704548835696753746554911225309460835870750213118806541546989648408876164798204140387892106517744700514536669907217564020832638110386970015425691901262228660778731532455939712201784856365890837232278177240752487050440831397170957026712863025455479931235528949248143823181047892529250569678169389326220157624713915401298127007213382809751025526861151509815372864363107436896125520349921307498962058004796203540281728529646547904551347134509529967958159567126697941762982857239865926481662460074170526573018929607166662075111666132871771371694838295046333665896476549979261043853528368951441132687141990560773889632255990102432129722761045199640710661355784192058960559582455550981735654398666655202774452939024416318134771662541081926178918476000671802692754506878561146384122926516788682549919361578600375367113410881526410125676469464560873814622090019987844976161821854613657141822764543910790927502497364673298020964135741240131325824399002126950398178042339383255382153537873380478205255186966628998818656957730910808737656808754027651515080010659039434139019786037842539798794034215254373494864371552477429472658458775285910963319820059250274073583470821828210746683911328968419225152706543119578226143598106685128952737396848321549657688025211573252343249682843058885069222519899469062411167081630209623710319016623792158275981445995611207266101307652419524539706302401138318180398516756755466164119055103037505360288586006917879023821436589705623071915307575574640557436705800488013111309438159653414753370916285138607934257229534097603823738633672304989557246388154406209049676875439378368303560213512383258514311735200259132656927526212546962394905323343201917634542598440807629028480403270465834389285193970398217079911274372920738104399604755064729971415706016430114643052782603345586518809127586618398543769919004638864145256253729510516449579813169810120969830917827983383635805705816782711042002633011826353268618403541856415575215230619451005983482958663748056333456860543689998057251783266508186282474504712006800520692695814253730433891231718340449690196646183170524973249687990385578336411829373973492205377020748259087612256317664523841155214211779446722329306614707758164596681080138799771970398336447504558133309728069322080431634628278645460096324058003294367950104733318679495756693832070617603242449705656874816755783551307914529505200233438845131824175034129373855973111542803422583702518834351310001872589055340379464527435585980693645632894377982055849711757921451535065980896764374898696086571438095842922427971675792841002750600001873077668990590691125097941345977899365962031008011887132854499847553820395146723251588577703701842296277579377935257118155058695778803786874194265513852701288819944752802110235979628002458324597573713016075842432548964088117342536307342345658798559594953542010462977231743258927236893997099139098084577726971965144004521605512503735448923211749545204026076924084790604433106535056835997998145319968397001573283232159219560177841873271917565690854636531535555414666766256339661044265586045896820976943262185466421439086864798772763383742979594485368469739112659929349764032068373255292455359718473265096858208941856407927845423606607382852475727981401028767995428200706428771243242909680641784862898282319699689142589722549966884751168519566168129870743678335675227824732616510760907073560212133193218766781695271282494961254942458860362098082986386865735384675910867184784601228199005563064034327549873819341912160613007950512588606732784681333942851602809248795792493319980398161717129979605112124305136003088393844920152872609673316164453286526512005832207774240649176264137167782691771300840297396022943052529632601449175198719496794935266568757328937289490815564498862228429716689417301219095626374588593387590655206925829830185790239118816905075477768952102938123465665260900288101101093589006002155642151608004454742009586304907428876840304204491828880067968366781018756092664735857476405578212019577782571878910641945370936151805701801093430547355871564788041569448968276315480645971524498721220901982974692191554644304520771690049671949649477222382881317635290023020516754811488173629576848005859454510807225259066331608569451041604255351076699367199124937317700911989134255260969454549951599849932049545661462106158949424826472206601544625666523637029647191690996267187434304978860184052507972167881019555105292822959595951945052542105429681384854425135916513451615903636816975924985395643582620557922740731704190834857583843138821532653570253272905408152008015650298283744309705652899300945773544227403186478220624575165043712962375663351235520626024035994366144395797893562445531142941598604064063158352786743880711948724943646360763424238693858151726347726865337197805245026230410362264403314386135441813162362296134779584047672221398789111580953719058143770265967453603340158821338397997878824159497274825370820186356267932032650559164136942395286413060422560665133017904609655607636317528255007526112301342761758416702667534002493957808170915057259084626280759073896045718726424990133996116777912050285854883836337969307171712114460528768982019035676945421148543914031889927459595456034117169813628066105006600570353089937939279003135245807834206381098036329311037784518092872271950589146936310476515963701743868033531161322561997857191035470178621357411428621008434486390775655713595781959229608726327365008373020290145997309266464681520575859283526619336951247306695897861189972428172284660895392154022208638348861400718355339041351871398996784782382655503681970102252283046385500353260553744299457047990501740173004612030947940129921931570882213862620768652407763911699795484725164508818922992559698734587817998804539209043855770629845007591982785176715164228805832414731185022006683818124652590212385400277702021964427410667062049696312943030982961416082582830657961280710054408857226060873600521473931934594553430599343364054009533750417139695002805954478593880036010401379093589787550186050356997856078728274176802914820088725345502994569151940988947954597162763591393933669222276406114226985210925619785593375149701720646044844675131222654020621199512927886456466292012879063598158640086855160990362901493669406082680992112734310721982060863837834798269413777019915952532148291626509523428530588638448513193078003621960805934269217878814670246212031888476650630166150072520487461610130757949919333373050727745037236102111029500380299730793675319055980402986072861316941001036064557005926329460488759466403743489434770936993176987265852644178817298134360865880504309679560426002590262814445573579775546141330120405856375496663148400193774736893987814938651763666919897323763084661038634233593604641559114752733806831684182205489807252864885847699574240814855278706667795444860199183621777851691655865984229177578991092394111043186003439662844482595290778672221374385265176864768323413344471333972308055059451164040546109466971888669685708461388255927320762521154026553622189953299747427574572972829445702921371236862256376209945330561139673044829874783831551575985385078104464903731192622378975959259503028185310868102992518971367067392571810250986498876764833791313755796591506930404561093476419493376468083416661852449452087964835519226846337408517069812833965320632076609252627598535796107795918476530556848880722818737814522508368112201412551137604060072037557362541497056239901585327727509551647579097381671933635627069683321640837992569034560787942661152109163178528546056543969953998736838187054754131281409926698246303205020703113584912681559036007021318735094351429942546478458996633663251575840810816038715358209396980962393970259991272167796820413670110993967584238073224057333664580724714748911610732562411781676056485426913060904978302871205677492453695443219682166365188209807687423749265179025460059106138159631245609248490441049938706511364167986853134855845386529244654650824241409739602402552828629558982734400555084561503701918677676765679494989430866579737642522211331284799571588493297087710621780765216287641387517088275943465335236490589238423577646442218566678624371175646486478096363182034476456005759034266461779166677771527333145770396060172773403007860210419673900516269276740203088059507818553712024417398321560029721035930777366629958604422429545310763823490028143623120525017600686461821526198723604931867340392306137311287008900872601667028694132182059249511766886124412233837705685846554109958895622670908852910260399244692815713883596088290308837937562978895086977496820335703607738328425045131751913814596901457129926895362573828638285139609222146266783081608343601353952169105586128088941901273352779669547675089720095777427922743193953953482393549086973817825960371350754507260551095771628765096429539706171112685537652183438142445277136615830176894195756453569482964521127886575883252981043063609169293896421513591569937121241038715904292577431938719459202939910023993771335862282723986989854838594491881275495139849742190850569696132982738528147888130964425604454160551345106290208849879601126670214325092107360990091907316104971094071517251398283757084323280855371121011786189693208749556191584103437640889230457062819453193221501160729082742288454459883763077375136852890979863898387856927812338450985256485512148615213824417592116557564307664847958585271205840122379226355824892282434835544975171361053902639069717934164609886942879128896556694989287174797715251922985666954741718599391296014357613507698957985711912268286989352941277038546455215490014672261059530549937660816475716306431653411508730073205202082307912793361907326648302048192793501546921025975588106014523841805690007934051624347054867603289115045737245694945793636613510581343474104185060337146630586369931563942145837292781834571110928352469471270266475384880072064440632211932771966663512089873407081259449122394964909425308817501824369424409342942879750600624850540297653581578616014837639147343032929872311315987781818179811909051776385289459006674340779730371604673081044971561756512651926941523915945295905461302489247508907853765642778313867054422960336294029564337988943959816656508729139546207780547851462094489763599898368135415223125952715989703006922807295139671347865219260843404509005564061801097760989293202501112639089327247303454720378869644597281359310568183537781410273459593747499960273306020204306029843131851084066899226737983366725810490443332415386164637356242907879675751957718548908287204706216256724804004157443424942034663310430681267622457754749278825335678236875340371754724785792591673832908438679805987428298730769973070344370775733637491891009990665720595475444115335613515366589223106365623568039216189911924385324461009619797347301587353194750237015639162706614546178420334897533239233785224668953096653326710100289555753373946149612381271998369937672924326141973782186550293322379378468405953368187588936879012038345810392044116264442567863362602035619105804655940713532171305460041014222761778296149391494273161912916207618805402131005229259092122601642449144108720910847081396678756730208386175780403300688504488075902667201175043241047638101470007412695011773327306165711821060545687047882040583349065315237121138436274273993010233731417375563711861477475250814713099670267313466089648452810224058618961388367769303265204916975995978831676394279435301694449532868547109432765324864067098113860500605532067828556108054894727375739991628122820943985705571982550817524126466937759704846944016886557839821946361618870389205300172896023897617856560172073221691578284770891705905819109784085746696241300105489598945673157621015791090940447856075243272115273212321395455641162377343610869776333279338389537985816467851572157489648038466191116166504150597513290020065225340820013239202459382043743181134838983543063800981588665488939759529429743657269714303891044684768644874152201892754119631706602214608954626696376600647704571874226041193631854994555023627348476649018439861721688328456819261933792374053118301432623116268772863540530494734968256691741700439793827037971441603436484772506498490887451949401195532916448439911231380625880606929107101572497669778544119918717636915708494274617393026278491143058355229719537800899790007456728449056782054679462829379505727414128705824353368647714614540163921656830192466873472966831735569552613032453884946685795312371236833868880627941707589308498775691840419185193944839501995924925758801931664138060329783401229885549229169674573576689241674379051622693128432205852943237732681803637355155969752236543536493671854823156499138941880512774601854872061981170580872643733536422853931913646466094275987762012438561304846447727854344663762794403426877812920064261806997157677682582879286645446897344291938682192836775395258477484752352544949336646887738043701945655712481028002296622657147630739682897706590527510570152566029966842767038556719350322747542862734646166969159878864175746712049552658537450058579793189933375247410148225281105742831955620729967189835968132928250784951972586791618674000395978548136486353045684472652730498494139226428399835830382608542781101494499304702820624817738831125866529743807081745988950131724050234841468390597478722292327411195984667420568902978394342669208637320083119936911853760366192014051041668446952087935019777937142235166570943311168412558750521346661135240588208419342713330529533340086180622613832740655190972282087541569165730187954046444147464265229325490945343807060263999979866083658143372424241390752329500366337830693330466581206643831754793525095435608958742919909986137578321940795678602160056264259424688930375686820849891142219650050271815802274098845459911010985517670832604978534678196453781216027331466937156226789649409601295992156101579408186951436045487797163382934899759570107792442018581144527205034241689733309424280172188746943588357007767141373955687881444937414864354789214302870178542517011047754384045173708443127964108193801817719694126032967940981998479864687985686766314955080010119098044045431964130807874552399858401107786275051635387893036997253172874337308566253524335590380490688270487757099954882080940140357923052690346644670288815699447928781950578040589020729936447814943300971988775814190271943529078763815024862033713412936514809166662595537186691990740739090935628787899972109953363748156357096806671191050994540384594982730590309010539835599987417145518891441516809484657675853218070844533706762195957283788350540410511421309917326977986623101669231283677516500728565247207053165917455321469385593629331183459236299992240425967170558400231788128081586095862726915887153586579750175172239483006041242660345928021460074391288945199068204884943755944947181522710094184305390199480055038727245419847740547361058105214532482759149769243438985694974649924138062605554206437358090821572752423203186401034222358404937546430292089975998639097441634244237186346141295456636190970953810762675557558046839286507340195032103274515503796400482063424935227775085514072016207045490682291257649546131092839970772348573971717380727485069870795734139079291330680018647710124172397287045446668323993996727535464090509049048920805090022853849603834335683884480930216470035039318201957920078023875634771647585579339281871478223610023484813898789205786738715064830167946075853558997536465583457048760062609134954566843241327133839495868913821334093377000849053675989298924796559588813995410355728026032235175896177355401501077558274711028910688832097893042465944436919331109372912888309450673534850354531413331673827573261789848896984718231057508691641493969797863890683520421074311872408261164062952448324427442977160825536847771831451447825029643281820428328699241146473732394042691028722535349144527050294443331491176384642686888797198312307625802987905813253863905070013284180135577100803945815362121723457695285834383789364376886804940707250566148290059971269808857930347213195071519213371414133072768458364942563041893576536650198567643022412018291434354194305886569259575014594531646166564187557073239292944732801197757127690755322100257531936022006802009667156947582197957318661094741633919241980430150336450543358453122842605108492565181961582442427409160421477392087631565151725053690246399521614155543325702969713541466852977486879837306948350532675587976128237834944137520908254981236916295915939439387752810219426749815702880956895111750917538570519583919984225220653982727024381827174706613951596292823551501453412934981070779957973509023650474582056177305231615353820290625153676763633409511202606007584003549889821238813507838427051487771233739654915939917338883561069625831683236233184677886887190107970339190098832499086715162839429713761282844110869506059040132061162553655579808612152307402401619258540430688011182839078809483339781882399553339999171953679549132488594504047236930929651664837673091160470976088363650109955110949379669200881904879043230364886962897040665007223677163536887223452183334145904329030349944299059778889307893355090268221804599815859987985561023012543507288465531023637881310674751612527660784945756030150730189098405375728224905331944412318950470951601587175425367419994596283935711008207102366700381818441907004778457524880592622904486216286248067977663821949321210842239023494371169982348439401734972779255091662693302734642155766300482747423524004555101789567474225512459023086195928940295324780200166056956784209724521670800475342725869607038944691837281572479753168630979772082473006630697467604020400094124362412049803176690691460727403884151095615320595192381012533351115974466277283321791908116035129784617662080769652074427846002026710432446942338811290571215477299646252875670510834308947175935549926378456308544019987847065996357364977268739085613415235844637345494466648022846638966830091742069241709047621920880829605704490005912840534801695886316245822695968574125156033408102079019624449541451088220547181009924141866714471011614211054523628472557367767931636360069720797631487223845790600293043416741758177277687202114677918993216950780722711743388030227359802038901268022288252226055108745516596105303818792734003677753678057447976845988935330476049626909592037241282364744769493350478808774116887025831130629925449864019721860411258267706505886862609433976107647621764800449460998848714354326598334513282716691022671762509405785236878905021046382487051690426418791271671009106376534794842588495473312775292365335862333079093463744604117044096323305848959467078434315340057891761788816792003143855997615771797101700871380895295055790714267365641988995919939264893108635980942502078928131417985825887387939276625250068877174520081944659289903666734907219576185348162109920406758499536484818714649700158382318181291031004102153641830152842085633019528909220060636620689562302024570428411474184161801670472658917824169492741661106412254096433437564830840987912498648833795608124303625192045230479738437444140870827474637226258309343891343801551876170880181814187359858641938731724729334067757810869754904014220012411094390868584950792968609067393444518547671138655307859461456823907233177724022289004481909534968393987439232068929118426133018397056411139850335797675428327892098558298736375968736851660721021172593802255142995514848927578849006963198328786726853539115062499389242124600153117590400724797977712657627651334138683974760533669816453601767928626902711325934298573451076404504207893313524202026354124167566102636677399857339213483920092050108051219671443250367971073220290031523048988457583377258259710253931988355349203780351302607716966823675051192643141116476128836200225742254887282736235800983132970662626852668956730154564618170363486376039569194839762505730713754775892061532813585575423630915742179199854163366101464326281826002887416416628009847287844900739850231622373539208753850423224881664302405358272733315022403947116153118430451748465646962119354881978086504999862267832856202723749489553141678850813275631816018355809553179768487430582337447693974140776842563660342166463136490416145511745938503034975450182883684505238751730998686890345364580175631237806911793264467448869163254104329258202999231754598156400838807667195359803822935246475709744600150451669465620045911170895098986188539920322899659231473162406614213248539574364253288955166664788850178942555590471957429653015834829776134164133781941330940519249516264332493135296863847170465923574578032665309517492319174082590909629715285967004499752030144346094079346723517316437751478067947028131917950253299042228033745768537520515937375659204213712905665463285410776657341939297502539702455299965304516631863549444504434292107209914883887735300729943125815980662757190245262442930228650378778603118281711297006569556093680410385791190762981637368776508310268413361429410705319363793759219133509348311484406367755171481785949056084976440830323885326594768041142655343912776197899067217328590723667508905646369860241700602664403304176107242407155094265660619511462009355149712723118207906087129448197622858939227503781991604758525862014127261585556870599802861581270737140838753454500607325813921706879323717461926846129177665646405045597830068601484202593949791330818289143963989404131157693331422457804553115907753096882190239884848447382842265538222347215476289123258733337604601991801598672339679248667544925763937526074267346906259616882092228006349562659582152469133030206225953150629057296361199183548159384185900849247483711947018278492297349094262607245353636098713118983853935879151603843111116728681433939735950009782035850270571063240434345522942789000064080833240047228327626989920138584939648062575240338672028288129770147908756548029040338149725321130399897277674116668314000540830302917766735517108003262304852200961784591848111094455238842606753591988807003162468064596974240935164158191247169974094372872615618237523327713595613717353026587170130390167888901879396736638452615062638006046080946980363225722703445878132767910418855292611896767619164761172526908038255195491642896387141281184338623659139939998229725161748320841203163674406469583304109973782150350441724905387793189336729533040236151091473587849372107836240553008966996108723895055416179171356159393663570614254501759510662330338556991527646991642403415347740081105534873170018334993468533560012684239796035940423019970189992843412014784027590136642476907947589594408298928611272299932944303370213352756127537404089480582658702733192850585545267746240319603772957566149623055953893740982370100042572141625103332072657088542962662905666013958019284209150194901234561599830073792433802472771614034922753013424658006082591919738860490663064887900362256141993123658682156630818773935524943479100001413505358119144623721314942695148321075500401059910954393904264143846703152221769109876957337585124513852716016843781342704717074376351074187363310860066651162094708854647986502147901967387321894250723906499105027414264946610254830203525327176252357719437730208063191645045018691511489293407552281566668994587507705690812845749281179402824851273749876443698988397787432059590550575984650895494112850576949993126776488395534348577778167412257675886216965594953852390612635704775102510550825619086459931028241706645575825172776997354169034767886821615285543222884423250204984729364828163352727163779488644632666717827802669094226906889388982512192184576488116637576881423459677818609555180003375574340908002152271965798127756466652054642783349113581305603700135890861127247804462375144265880628065373750219909513231690766743370599291973096175057127670215615437902808990087807982586673696984544257119419826607796357278640116111505854288030975796450060550252832654723873776642743414340196952173103661341843970765383794337971823669157008469026810005898262541384739725312442325238455686765995527007673450497944814987626025479388175177855305010934064038803483484692454870563546844431266001600674354711484098345591081659963799421791598104773658060732840269989632237858761956328220375930182758795115633842047317031293027770819793292423965150833901750927414483876977758375362238701765094143200951807723524506667518891704518548054672430656719523881985078461926838266004522030120131086522253994649404805808324941429576351027954787954025312476174557395738800043088560807363341613778231120715868155181354169036790518776189999779965646650732171026008858057581153813884754942758911030846649386979045905037078115322498864117682378638579286757619866499519426002148950531189166485121972099829413430473751682355207514244150653640009359483529758436398874859194739946292528063151792633547359945839572995418009033008510098806863642464437355542883682368467863391316185617495291266108965236616969393140564544633812112615043078636398726046090311370003599442917664066500735922703724229573051152734172028964621939131757576906128366917277488090877779016138122826870852878214319078070278412746581290570389593673336797016940120686040004292940421678749058242078748732237216505518926357224335095548882045370641883393019611745101878339901225119760173127515470029157025261400982312523598388675376528118647289167106879486575830640710344583966641623713870270555102048767676797726585170976475483734929279483203228984103443500598921872441921477277107996807366150518976407299268603851300154406458121467546826125471042869080861365278601913971428372474390476812869132443845217540213275721140993849373458818594763829117580662762925498786376416168564396669410988500048582902686677889212803453535294292316298214268512080647099571566559811752721446753916339959508868585463735028626442929381866166566405834746109741074287436432350914713739900312012096563302837365698995524963181924311453970846183342114602087387517563979548323873579456529766869959163430127829475224415267649015018533944592612930411660975447175419515295163630472400494456032594156652700726422465905170236915719805934519207004204003966527430809945883793544010584872104898165856065585510185875693385123150372011573127939161894604267482387012856373218337872241498443385719764502608364614250054938809421123952380706110758351844371741354720105102104981355196335626296643934545367812708526353555703715042183279261461847536473018452353088950729636102560435264318531184101275518043074795352377895868511194111847887287924538617389493728812739201531213429731443258130055944033937709065377533617468634238235381042747197273068359180152616635636862824183961000709549903358601941250159116963836390842215545740130634048193237787170099557766774334079502291808789374734466369977647823188239532529322092388112546070300922190940671972054698922626156066097696844268300349656674130615168839848714409368020774301368742434309639834862498065870081952968311492608017242055265803044915281233307038195039046113094142483076489864008820284378384348253653801018644513719223324192902096586962740802139071658590171757717095350562801733697204362886941282636603644105462556314043728795617612773283209336577545187886922891413075118120026299596137721218264138425619867979065872948795488234702909639559775263119772747593267104194181879589723722846808956163863472375957322403768729276982250257859047152016791368581111354486665506967466318725316045493230414962711764396224372629627866968624166536750385166563151526052968093874001465504351354330082803439230552190662097401524058499360206501324297973212727026069353723566123861472214469193547563086003390666072998063985957002341389155883646873389294168818575267299145784128978381769002992172469571924214229669240848040317892674703935408430290560613408930920640189301406736447319034339718231372172538664576431165911319477662779245664366568751166960193844437885844172309651415727149765502609905606191978892432323390974409358109023162143303835482917315389982869429814125844586614703078045041323909189436002948551475957538735734333300119565937483418780879641973705437826170326647332253971068528341843612287305123984469272233594240229129893516454903636314126973758046029137428090356956057202567754683933358529823700170978610747731634319506349009969302992827141907042477664526873871585400578821513616545811053306484279773538199824249888209329867643205214731962759455529994780238565782558164811781011893677214791054183112571321221808548192776429924251065040682556826137915038106144192420471443133528522347517717094132750581004646902140042355910594804164563583063820135532677877374696293521914186003126795647123998712676339983275239085634280814362313422090719564817789009520132736353150786786302424212833519319401352892410322609762856360042932407001897772703072333686686599083192564131657948663150430860389374030095889177753808453242516345443623488585149885264366785303482297039760481246489939823725198372879427109905489140076240685574758804057544404431104058964491708463009347693826367430971121205843072527513658732250544252585462119327781249396517787176484930269269521539245802539699187238873173583598504912126142051136506050582439531442500557187416111454972773420982871839535673687593227239632734753230246792144527932778280500822578887474635112497847649219300708596971780286588498917965218381424497550355250869830431041907251735252286484257251012822958842998124262167260358494010828652607847744000293169390729261150746083036162096801116851114835010089048821117143822018048907804451453690785478505340598503255597815513260221842979985472622555341787869006433903690051682286680036264403602059962304009899454525992936268564491678912067638866679795551874742903512634823611603950025264297395685150863378442469658187257003519117304760675886215370324698830339477743704373245910800301297044572906865291475065569432287362234793973678209345318697048350285649057157100555070869972697834610932353339018407666068268448599700792324348230581645807535289125996296469550141242015305206381046231242214854440998197846874055346603842439797809417235997794430318236409895519497781197150560712838835885677195442093123523284020478964595240472349910882332766456723546095472900465731794705217958181143607609579140405847964146429568308235457036404088896581215501550977939857258937670895708839541128376931145144032924840816846516827862390358776508233806154257330739005624907446564489381156603157593302230920794543542870484630800846217457582417576910483048752858606743239736921673427218607999353776215637625537211913402276723676487454635838838886399705851617215926851766456654959974020427234681546599501048219510360296437847716021966707766865580298840128300160196493350028995945618888588400116439001171525767248758848301446423035469995624982300644662949763946096218062395960233976093388627281692034293367842931968791870578333225401203069952494906508929599437197348884107491229099551552953890380146419648820185798185212754028896212949088885639873070833710414166832464530968198036108731004625031669961931752247759130197264302648976280686104173595364667282370967258587166185963217548010273782634366530825967238864613554290013480242288186936089617359636691889767715776743596978586876212032193131957259611599307404525762563238570608385056590113776945927051387897932838762755190655931360600959890813676969632006410840295067786647044891041277617595748914964591396165491524718151502037885137563555058480841536795942482655592744427067913931842790905879341032698400351980831433744562559031014061212899915517608409627252514055813251487710441060998155594446387712386039033585769622516386648813372916172731875342907292058056874046656505958227216576595668212572516107074961329686066758399588550861316075404068803533932920097800702033192258940685133721971824447100064335460007894919672372964242987852168469786144353664358158009716473913902943786647094806389327147747480660336903433574997107736439638252845764100719578717847809867519808518513758061719566664521168604763043742950062784371077482014257569760567582739822950790959215263893405239016594751785133229096966830334888784031258458606250107439772688102273805143926277585583394634962533532068334751032427759103986706376809381368589050587758712510268269288065786607760632061693339161982440376429672511529553687431921834029575610476216711738828256876006854000978434439657401447326985825173842451992675880468888091373617724463410070843038982245288484750749679623754156694120710137428652750928698078654551722610250725140508050142298536528394016973398416604726390161475019845580839628057427844862581307291461271594463071038518488574674801045502619747545513671672397469983907189707906745521013647223599614428428650170882982126640757290116901263163735817340142149702584896919841274583065165593815119972884984666214401960760493156574493795557222143693291137888230248962109429462848670270682553217125774391069207094007004553058682319997218456908349497307141858479389444362473381884320953362609230733341812709486415719658273290806551095706201319894405450600366890092316953228059161534769608733738199311299736287837805381404381381811840787457049791575483987245146450951653653535498584694382013403495875635106325461300773420802861500869356205925053494306541101341445857994887089645182363268072651718509413189499312026651933748455703760980862372036730606307666330761336916401929368307581048865100533529853272790616917786077612451749367373119660102525649738329149079643872980365143732846932549718882209065616458795570107854999618367267436330288054506185189126846495663847273717647655084194422810238454540849446470611832251679032848582850026148864887638866354316406123499467869427912281853996645169192592210471550442668382136738388567671135344436061661472903693651424446570691116771093935166525112461499110136524285576342891199499263435704120465045169547742664382048037436979953767107307843249431338788682755828162438977669203282763329022103962451960323446480162233957201316923067246937461191033796140724285777657328958186971310625848073940647175795138213216252027256738752543174701058374512637541901335927569936075515799216817680414207907080640212829641302582785830307953442399356186248813334013732292703607511552487460696527396608457054377711420570731751985383759485232236566912155723967778815064145496625026915151679738919355265938773622987736823978999767455725161285782481474048789869532586331568564145268012433531743658623425971435084898910492423223585317905725502282366311180204112797561798664978002733851480693958563190373629681090120333860074469403108624415634330111695492526282751298405707640961270638648707817648486341745080597522002041097855344165263320548215712110901353654402960811894945636528610393512916382281550637549254512827609835855834909694264739362385488433923461441877862846945824657244993502557908295513783748164304884573786387342903074950415715062051877665821890967108362449650196523538666135119550370415948702021118443233922719800348226737432502743413626065423820067861811193978830241282640730737933457068643562223758123854915601157938205119331176497759267254950303682884422254772695299011237278544372571073985208000011024307075569869862287791511072659011638434033568574833007170289672463730659597866417998549822648063942084801322227129905062879631861396446424687848389094816617412318074887652793818361147476530773393345854228932431605166194144204944952591305724782953633847716828803694250602437192734506271246067266918402698190198596024219975734782773785218029831549309502123459019903423339654966157146740899567934790459805823975420249352583598775176450675502691781100446797881663071174493418632225674542725794812026926547940522644436522016382242086690191716189448568353922059966996805496443871291875550398986431204672044312145923126079735093000598655247770514518472115382796000376603525923347792092415166585503777567536360370041755705688492831513048476891492048547310108197440740934234732969504467888077650096067013365134657710636308136028534550298383955218183156192589068865875018788796746179264864962011009559122663299386229063919964884898088221064188674470159344889305879456464677601302806583611848492136224073460348313651786158332717810979663072080651695446061752451216913853613127897746545149774525422057022863524622763830086571311476988641122724392084909202040570436622160507532233259528904283069779975277058944551867503845569633302215612302808763558603699051827324293535956517034362374653584045185503867141354204131300115926231797798497604904614659431036457667620177668563527478616894195668820145314041100827520305911599993519961576536048535459569294424788161423615862904830759658705345549409269771709435279062246108756517731377166875031954076092372878935440003564698349257823737316968461959059626170637099725312706419343568146257687193315631949049537290206177957291452735851923948135626606652768403870165192185293249109353674903250915368782254378047211441103735615941657674748925442977449187991833801068207978170930971490096480833231668905130844994742708285413252535599891962945609427873976951181406696116326657617360779418860162029533674342877907669256612394916302251897459936707927595016452551668992151386300047235706758101955504396283855719830140237068921556336249980271978474271932748465744296693017256038795504006080979819693745475837519764277873007332069616242097246404691683883469494043927787975303191468610914714036331889403161680516892440696036155327302074433764772436657856638313967128961986291324993562899479396540679552321870533568539155018553482707192516111255547205534082537301576470226302733124446525534262697192672714073663014062596187361231957525786063541759451828934132145996534664076775035698743435394905123282705775792201127990315606778748647065780817497169359364635544517416423938742442483012654103165455353596344341163527985357301038882066944584583195661731380957045963271402428243419983625244224426216480084294226507476198450039713487180985487370502691256629018517979170279189687943894230485478966213373171250825007251966165133857544957089462587488485779728489825850561177358192636624530664416894913779864186831376358558027602551001592172103346046846731765510842800817588839102466615583203914889767156743132683239697024765580313384005504797353692692387140992511377470506523656423512440085302829254252804839542942350014412930015789671898689439120201541888674570126746403580246477213234991608452977560534045069362339523631565466789036417731826673605488267102399187770066384653764755677639079702485503659635075316834821370145532711766753245652334487483179024792858794371266366001622754674709973603037198628318393273470622228442052408931201030335458162417625687774795054110172110482956455279493688438857968822474676755360664258893267858247471950365678400131064553866306580299088055321683698037899520178267515237985296571050962736349299172993811277440411043493691044224121392159378947116910859062529110446354511598231385503347861437891344575925666381758742605663582599339680124576003491706216489818289303044066787866908100966817155382515053944872250860125793104955305027443965986917673214919302505128097863206488052300927899869249941522663376971319995486607090416926839865430761819428947644755570165570642071864015913855403330076248210710467237704540451856839265069896650033610188808919004817710178963270743502826398147587618681105750698603481390237576400360963473403191989161977519449284271499012574431119428517443405079497797837228105571134084536633564871651937518589355961878037305307604380096494460535195551024156388238804618952509824030426748437808046898784314260291437198306400593460802370546397542186435329530829380619484681352624806941457201295548990539824436148931571276400248549503521594431733538834800003994467219278586100974515596785092642401295421226954821344143586221431165341817322180392354840471266678380483770904876449234482762669427447946561007767706718992223784000836178015474432388678310975480674230981407731687320870447244615429652939808064674050598039256226544069407100231669287403540078952495002862642944968057887581749354601147178883167886145585625361187362444674243922453514692966868577898568209804911388712175291066385909262060063524501316095673695653651536865132295551898856001006585342931848238564730064458517469372106419237459625672589065069678417347818549806451123064898833812695864203723668312069342854655730820392887313696051358870605003709326826090989775230195500067062569375525549126004650732387986038248562032671895433891910836634989161789793406627034143918738758798022126810226445914895418335570789982336085854684070018630118622500449103487797874705088371742148248609412455509511405042911726625816806062869584639420173510915653191313752648367815483370227999663375043225085581756804060389934926778793081082983720016920566236930971961473835654362449564073039175865685638979331899973071829571751664904714905705710197536894984986886712835897593334883398455442167279401359156560077049659004884037673033825213290908269197582849131215217716029842269661315567559541095172122149220657712207276958796217114695366068274520076880616358906402854003199033715454765922128892827501802792769131789977190999980938613431404709602680779594136196997677090862517209988115194758516778785786431940340501567598204370432609013730404559040527566594531385977898723163486765342851386981378563601695798953988260972010028296259302394563180869065226706854956522760890088353329237253394277209817242257811002192907950431544734339668636217599288893984706284490400540722848369835178474417359280304831803457994316946727504189385705467067031979375378778264422391090824413236542009873005023307422577223407933007195521452308884375697048669581846816854906508568070528951795474644022917285843524157721209123505821509593704246624476309621259282620687023106448717732956538018002668988904738147434306240797436667390591522773984616778348645990009367639243598354379123996918014423940344185966852624365407498934918275901233360111980606801036328286524983305513649047361735936957535259307235205552551670286372307846860985583193008331625437278359949846487765819544817595435755831236186782146506427411611284758628819553159921744104288001446033753066954569480519034803998841555715341164608506580583291385364036275419358575200125688216681588943615295579547262192760351627227643503437513322215758726402364038751095660144109653194782807176394903259375254690817340615342517571663001033505612720452965647969162296932920256558534390580305107607894168571595593340327569514136142874404746766104344408712441925502636934279522254154179508318891394192292962759643891694169362155653494302625619553032833074191124767104098155496146201934907879277070887136325143654581011921977563250932715074544216536726756016660777661593917109588077666719900535736696973169671382759016120230689989095507062142651779733735788883636939037262993463632057664709601434985252676628025187717762127790895206438598957500505489818991823989596093616514746832418040031257844886783842948514413437798461682596858720921724693924009404134773774396692696970149401927394668043332561428221083584556748870529451850466810691150521388867632381822018893587551642969619972120965111756018026961049438831931235956807935733159060809101837171519069775690751121772815092534269336636559860367970828794362288114038013400130421213750506409772037340486343999060373936605299419995724316077324068054620690779910300919890992381643929633657252221688641746471238313212356027993531224702346249404075762641708784444474334606027601390260466786562025253710511767942410902704188717556606559826645322234386830902781826325339539277232194744688853286543397974624640798218377079049204069178497040925533551942699805613716838031381316909250733691153426954169335576958867298620506408703365241424655805698230628140107914941514630811202230759498203744386391149140971463986284178662608064574577523576344371627267475481120811413593187229160027932593766912196761563623450098323768913040741574934899290600340735031632419477692600580421901037449558396006754239826043359377852275223782700787286895967875457619018735818444311186381574166179655809727752432139998060050617077519368783067720723455151979559585431624794498097059860918507556361082962648893462806182842411384365153997283240748653423964500768087765326455477898326041027128690214447405306905433908516009953274220319397185922572101636176194822834615636610554964805985530174773636219172748051530579262014643293844970951548499967102062047079697860951079708195993514114900506732740688548047007249811207422355124455192578285196884647015717701681363926172214669922708682980381763003533170608542601417297940390045695910009629266542760014232286671396387279712618055618684461506074108739962722325717213055167359311698939159094504444452023882227555114777751953939240444478541239197285202325975335794305676569265570033832610271888834951786320937828416001311250763171914277127641772043065899010681732143633313419539258170217037848674783909558893461200389812420457147627145131858000407659018324706669249515708108218581301662896307224091252572336813199686954060958908838911893249947882495420047433680605439428232046850288359942138773422344927023362642983987035500107004358316652210635484129828667734342269463691865495494695292730494253267394374167096440682897640513046781639211806677015364024774055021204469758064691000779014082074926882666500349441609185594943713211358442615706055400453425360608133376102796892557279904231067660466198289689250476296402415194627518484143222057346166157961428846788450093453727642773484373643254466758717011217780973675524185037294726648836527940064202050958199148807470877107468560943677483737502531554322858793994886967039195612046159945265255965929851718031295974782624950114389139608997659576760042047165402922318254156708556083442197381705696584918749048173768658800572443866931213420380741963180182777593220812740466454718016603071764941379483701294794727713692600433834864452399409175366149427386753281638311480302039464098408082045126584684752541934220964323809858700809138217184179069277516859708840622667350423317196028730958633251215634151109091907886276629537865821162046363293711920826894365137110436971356484794361402659182291352887549655890187405696038980979201690388560152556226838441949699721525912570572570828529390231547967348057958509269733733204486753181308934499089949305262681817506798982352257625136134611761584252428771284196457975024377565480144545751573161207071916153569001493165643214648642077047911612756119053356607159774525156965149643660900593952882810142214207464087484211687345704340484962267927758297330466462090490493731029075800552617217593520885596444863893419042281997446497797720740186738204028422971807165422898043253457135284048751926322965267142179548333869523307368319708300215209984980524033452118675155050652126363736915720971443577933444254187343234986216386471911491124656674530769591570405929434766055696444233723601645011675950239621286105698044707015425436862458770205536030544300228853855107521401504585956084045798760807072964203412376824152308517048914696299360151639140095380864395277703528189676551536079028782421674651242991520947158163430756543731265862483988833328784079859819458662600797275012843777342181003184678579354767236807890388262727976229709314899305704086154398009332024770224560872657149432949392982262898046919840049936647128814579971461817247037057016985809122208037669128194637802475067998211206860250576753489438257148600051206786572101907397165660923708255197245386855764343048037458426468058821302480554813500663586147141965383194483411338923837066101558111206874728065204371398734964427990223896767441744847158883406258417259570044697469984410203300533958675242192105649579960671991003423465872680929926346110117764219622250966279436049369959812266038037827761965056901224113585973847044324187375204649339215164636057222021721713038415042902814064689858205217348931954071962838767622653330382639962576897868037361183545842327484205984716110436400242336761652252658732945803509834927473179339173933523192056503415440773048661755010818079456261856206452085788088361234833481334993021500383044596737314116075372093360497879071822789927708927422832417915338836062943111709804982351079356567507153753806673437364873721289472083065312255338316466173244111673142743874205795466397584597278977760063993300677025366257180670566872263457637192937667103587579808851034534138703241994707565547194704631650234995555254795566457069038107403148404058737650706431475430000630515555796122136785018536944826572951568187792380871377331756556244106157003780760654757775670322676540396018443551620380836740224791697550110178279536974492657124952721823922419190456733929045465643502228294298853722149429725685089103213729753641981930482831653781175687244676019593158066184760823239648762855846556220269556617159963826909609403984349718579559155868391393590108418709531540546352754903253889245154119034807552349977837020181382144693951551206812119984695453838446605452810871898380274937319767249510494352869428143201669737250969473862573173853259534042505818342819180859073439946932016061644409845302190966649044043178877443420433981613208150008700652042731563971510575131836010762221805019739800050127319478779586602516118068067693491134289261618398847078031960282280995526539010153723277312707010097743338968057407607921823669746052086822156704130196000197656776218557010822714147717387635861089631047341234867511930413763318134766808102257641587802411496946425077632563224651336614470930626243161343593511938322402259143482740391015534721784525022125169194431488081865992410276907730420177182295949209254621369840979881542451882205011363942176753285330534502923476259423210243893043021526392497785288657892845560679106698850259307019212761455423214064689181693476752771689478894358833219199906990442521338726084495618154542241913769756815344164692216944486867198132629853094204904461446889816639586680073102269131669521975009093799566030854039691592668093987843020422791469848124382457363629924897152105611682463487736673005434722503470879893460812294573807501221014217620197394777621754517490832335948594253585257450352596087354016459002345819517765441062737190727481126338649316869692540169442986476554926871371075921490065238907582645881972885443215802801959920721989402699739787406506417949244676164708022911237901618935691195736442196577994694135390713002739670265320160823175438065617710930308405066795774278172697529914189083811575722351108076862741744127123820507207081858826892315802905556762586676101346990937734805121874611409980286852003010461261898348737618866658688375754754453840766527848131494205944402555332906888516854419627682502219091942501688347443174239846509737868455764477912360735833682611998487639574565438857911616550251087888058137863487265285452046452372557221769847013680711341284701058228256791002094904291679092675330148034773848466407866227781152472830086661032160625857273480823676457571995129777402094324010302061764069133140964777800169409819880321722758135465922654965435162563615212825777146562210142284892663254544829054172868116783107282603918129686252958369675880803694456748816410580260993813004241689353695546434694110960611025413983900095563250579321831815561994769130129799902811889673646286735803549361756044168157628706944059073135807010331919485133719418975787032053632916261439171357410645742218424378379200987199898904044015380877425738414770353119012571262216401572502207727490614918360323602726747980215168751793782537660091889912420099061793750506540576500755935735342526665528257211996295785206506488334134896278084601619291446551883789463464454990618447488890891901561575630593752647445352101831500657444852687201101951471787125864866913140428027428253532098551117879791989147690184644624852892972387618873897058949240390626836853810373693418848860929588889072157427425058470854626070959460495071825681999262058175501804256441610031326494346447300712413328462235429338831284123828953090640880552038997420985920994645934649029427003042368781911962949614565803982041314984448936391597921658394114531181838457648143575440164181977416410407512131102144327884528717012099245603529908229673906562636924171246207033489212570918673195449898295739764060619650835376034253343936938766982163912913053484178869319864565916536790187000332716474206477880076734325369926417549171514277718850880232273146527340589951290263698613406198328157949170372379082780270029429661697122014264098623753140055004837157952954482647718738625417650608391420389355458024309848105942143918327551513479124057130579737552861796194567242674410602329158616250698243454334696532024905915345171310350982438050400667424652209012147619600463508910467254746287924934436911674266970224260749088832788231020239443824287695179089738655217463989359193789297808119402957714360634567306656443913028226685602442106612026671354329774245584743805828754929673414172691507097177621788431233832373476836127284833685953861663858828519888539266121612467495530090101256038617008134042179535450298573296566891847201370161162337785834815429880114780668175821341867570501224777056648473716140457461215571012538437828316865689778905105703832173059742329838437222253983244507438364363820161900148649369542647693137462463338650859452268504256493427032330274560246969647768640819231161455382111617607373889786202497178152439140832884700311677923388638406033328104695984247457091176825040389975639476966955402069928148266674006881812593278887816358956640959835232422919987150155374528840633369502072622895496695030891919048294737011618743017834419034455975440107790993149041949842132147848291033681063820852351765822680221207196798100319155264630824216958769745018987444793832922861652842363182787423955906000072349751822227763668093575370959411414741177550338898113096922019371232081597341837529171683565708793144049752363469852346469991347931017316101594895050890523274495927965420087296501637404694709336791668051192013549248019665227489842837404222277692379466261029154727429661307149530296406236952411051383313522115330941010654950691406705470949847839980008935420855855419566253453902606700822380744651735698525360435891716606021892557581256541582623900003061043570427722963626852205151779074919737078396550072742533993574041391264707853541044991711607356889774526698400095766328062484309613192361690226340354520360864264072527141410101628872035986159519323418846758481132743332289772770110980514813473342417471338924949735163831798357056112247340660730550627941819667185528408877723905192304201121574320067429193379396810401244520018547529995842496871720911908787986467420769811210670592369732786127420319078170792113956317982464768273279481205459778106769870888891693259915031018443176249712943469980301747352780751198112094265517664703120980090241199501000148860947261789910953331828610561480320914750276289294385026970153032469052055484353558378097298512509481010030666529066862490990729657188074832726605884777632048533354117305795397190165658718655287203295760427149362238097250395283261573851349027132068093551065744636033676922117449739537745717304746316511008027055667511741892259433963734615303857364239035864692356070025912266716454801217628729282123309074562333975945786156767448782909767852765035799342487997648212059037187150566587073093521697318184734211336357399980710186694989704191681896489893378477339549448964057347419763028026802120289050671139649792331882014942298165505325319262845880552674417870871795626128798930550176996328059505988581056425193728016454002381856715125424809772885198292659871340646144679772304602482628968446808256116814779693128482553060531932174286201548384848846633787348303017573086053174242622601494160633838543012621165559088566772373874365891246322411056854606093451339004294293968279835099379372598383271576625460917188192988707603830736751096723026908749303561553013561196291683515504990017809968405812066037636772767880888167781794209164152595699048453828337938276946591604618975162011264320079762700407551871735449974484216672637848997357822268561416309570974950860141978677049865060767476455179257393262904312411523158662323384699407081919713372606039536713541094755319408913479886053454434288660091675729933281858064323287651614997768557199705394918447392514932630059203706968347768944594100601953096720526150468743932102451931186357175587360753307876948339536476409412826659903267955336306003592867250488514766183783677646344571664456021176801184849735766628941740718409007754482061758688589817453512953433241819117338765374490437041184114562672580694094118984245776617858239531607509522437422388615757510658914284211321180024424743734694875388292593941250752574171367395913583125515884679400221693220285231718317380866763999390596971956477733796554052978332103573724425276725259841435914343980211220173815635595553959819021362688054959356086396417132507911340804316491476443734403128223169322765310140501372144928250173465649824847190210937804894150716942490824553149010174350959185581018084874674197474056754274162479784548789974908351009431087651241152754843865049661760438638647236861730661358109438425031142653597985910382314642455354173890663668710099407329979146820612664588746404751009002944808840183494018082125869009601767728167882977043112077193245509519716484178947835942386702830336306146125933066349049728018111679088516243784397385139852531033480954995671323881649246807833009834001937093937941205076616050811202906312558998743464672811126763087565291564615017865551305032167894246753425250401243882674736989569763113293739686294806401935207412301873616434927260279028910528116947297554130221106191889861515860428306496116182431538758151178441664601422332286458306202128057506056808621942688368637380695554220159320868229296751354532435143169881192841996226539598539237488060267992943348462396264706676505262409882624568177934773395777753762201284246200504246905466140815400927494754578475519992388439024191043388159974284206425685068734755776839729459236097927888478616279562399240693921536798595484560093502218532716615322776762701154707688193640194710118061298548511391158628039321347312058147179542843156291938894249194827683550437775910977134455679199044068180302180373042069953429855574736976695268259804250185458933343661103076785360439638448058717101640786180923288737961702423963255528895466646214809534885005219445185211927744272843583525348402473056003581808391627986531127647917273187814192294974220856611554501757167065703020822658296796073841038916410070689722346801685297051822967753927916174840109470183083270532685752542748078327191753952156604702247246112320222160466590085465810991186724452715238653321158072578923565075424627054628598779555364751957042375696656533935184266272706077255990719168801449130346743488142736766272475600707598122264765955176053498445522598587039397235460497614143637528616866855998960569968486265299980790589322724434757185931745661611654368256625091718402334406224385550560959453792873406546081476192064824862483925301206665089054585847441705989193998230406498420682140856465813429583080701817526154660176685424504337566595956158930388710225050890162831522495033308769248804580185177212669501021609108045850736203671493628347586471011808389671068336223376499984299258743498906075659320293212401142791309817264198506110670359341787022311685611357051876398675070359116880379803836945964829502079039287127716607641773179355583375973422851162574668056520069778913059121488791839387514114735250985660304178541737603785627700782113019854878997834487581547949509194215998578600995674436549427055835330602228517712075193148880790762726624236302122957116873874877758715419710659726746858976344812997387790950528523772751757061039709588594005684415684337223199327015462582677363807008997497014416763239786047066057512632465053584814852263252597496311970754498720855767151951750076742796631114418591828505989924729710896297516135348457649551273874045423055005794996841821976529932954207450775556626254839569440209138205455463759535571671024167758412285296015307814421065731662046767991104141208933474019075953921409402614904611685040102906149028838488219686589306759353258146451464735945709605397372772662761191340340466747403155198664890284187808930046428248381682473752649278352511519622384797249240935266746586760343004351670369396425435183862243141182541419265833662654981515794566393277977341929311463844471390865416741994078077153691341113557253451225070722290204375524502465919764996576934215167272003083140746278924094460288309684321997813692635763241669709903720422791856315187031023097918564528532941155188488713321234275283764670101795382658775457801120067305718048097247591601726562185263795447245765177155876064709750510296339654277465411106164866609430109509466649612276998179234083392574443017553052458824988320991121022767004604945526373933222944803928540911706858115877251859900458703391690257798306854497474035613097576129030618457423713312875843936650427531433507310708986350976220639457862298876263574426767282638885547003977128621501551778432989064294475737586965345491504168559714527808618186395408495520659261487008184375448669144025099695523668122701922311298282022781940586787757580490831387989179810769005272706992882301740291095425692419249334454422507834458491716506631969411361019842595565744253320485774248769425834714082280063191909707920069906615838378764644692465069625896897807830545669845990638874369434498505122356327278868275916840492871793840227426394947164789101225305963205687033158911509996141404240340797114432489143295752536884064334597247207879177062521791373076018148792386965510651704106249290174411897004135900055979219083605064343200755205858047551061449303512157599216830059431045706342137146355617669458050297655602766075376452570250908852906489874055758663478497953276630452034966317369189461800414448370682842374692224432506762034855934093456306621349165213579897144798340994658177729780353383613982143311553986870168172273320888323873313790996844109186688991778525627066737694499168389083227358864539911106781957349547310163745292420331624135589988286687776521758167225596697850068093889651870288392200906510409581872700161281331449175684339986585832225547825656816564119787846318706482141834964249374340464868005754275252249620560816627554493827537425514595265475232817569165116328604433792544689600992780769730146736810100394551421428980887665558915929883932389515658153541126747317443454308325511654085551319957438767757940513476155266303767532325490491036339242528288202487024867308440655462891035537932529124673669909527325271230862469521148389760625958527879800963457030738638402602020341041547025065474675798116109991433192714040968061896570541101799414202654452339428957898329884308970350358914299808554003716261290850641016483816217158532340699686723080257680850081580237886664521153299173648319344739191025994961880757755716408276416780658594472099459413984456981973695655114017554397499668426632201994006127978504776087447383928143736090112167441879728756992965196031698451801772031365485416612459708940001037600369902097024359253454912101863788964827131462508296021528903657679946479561557114208136074679688040699544844689455928266956595979370293592336862039489303333714880635084189253599282293337226218669591446426328302446338626845112937775642873916361530166263528039161775526062952775480268112473454244448983509465829652213950571676078424388989828010536515604374118387905926973617625595700916818846101315965963802667143929235206076924342499946977183298171883590209379743087082132794697648199812152581919497879020916559028351214565286206456932203696034582265293682133709984748043855939202482898651018642626284273051024873338944357909392119877713188748840937570415799157480823732668981414129612810823531851378025304376215648279877804607195967123650547330880094269406001696962685048391209227670348875101573837608862249098688550397893991762844313952222046128868631549258394799389781102520957801855486422214230091316786238979126412206703654718314163472218541154108146096231408388915369862758092859388424092953116186948122263335794662776517484043056578924037585798550458239398370515202884418274520370755573394805798582760369411783451441690262450782595439734418177436891957110074091145775660611722371324684112042991004184645592416283970341038663259108035678738166420540024765688937808754195713709131713445880573756485164975190247901854844982255983116589964848494068039712242149637286405622407551560208518018796414310465715323712419489757844400662198852380119301712704498718072738540191320348792804584646733918596099426595293439478943596707891862588675983066269841667509945318203175090258652556606997756497368103297160450632925404704715529250207024676529307584958326351816764604136623173301510454964743921529884038973957736685075123886619569046663318591376581418769014474538806536744570964378653247136025259812017170943262128335393016510662798065492455387024525313757352114788722814966748736050569118191446076601590286858623526112226419641463895357490400562543638270997093340571865207560620132986398147823302607639737412325496596968873380202015427658939857006515981540527656472666774065485092686376235169666350148641783620369010759591751026472401276721127382442812575356221101872970268942445716388247352485576933005112506445294699523674845547716952462442678174338392534895981554230629605194969928038869413687656946574587583429324095946627859055931558112784166952078735844771031210284791614327490638653993772074987691469685165816140095128430787864192307733663745873701919983279737912730143252075178687840973829508792852746327854245704073283686766080473470091313640006874493541689512214706530732507887447574278616631897781230392422723572710469326540961318867978812942174613434030397642482530809313231553667156871254670375390889163886473614605273342122698532490991410815794366428166412953867805824027802221123134712419519111876378229673790528911395751347679836810307610237586246060098943395142155067334690242604116909310081689241209464061329091013537390808732138977491028598785971671830588311949274340383203377874336535338356732206038951424692196649526143241257285868554254933039786721049965869532223150496649042355765926025470487620551901397789065083569945567444280997921737844893984343764064366397834162896937213850247720572866111962154046581123117765840894217825233377206890793316961685166548048065983497751895529367601832524208482502648341905714259081041567737668683163284713414114474556772039847921463036799153180900780887739355311503037067618514919948450816656784760094163540676200496947435764281374292126040997301250311194245864715178258377545210597498591238490664855971780964517530294015712601353962358496284106881704694783294669163536371818197775430687679338584680789647764149114500410461012744557355232565858057540559763679868799555322872020039336056514175461776697093897390954444271966216869169979195050470721394684892673946111724417403297245413709029100666079939510488359603642153437595891342976296842102453336327316668365649026281889979890309333144052000921126192331346556027762162494094076168175125555368144204482784263393359331922293965628079589116042464979451914867059024700237532307958776958891715360093943813033970396172626953222517935867610955956786048598587776965988018426689436427732275358273584233465643216336167560702578876317495834162238335133401467483454345279208520414359743372629377648009181919047919933136347827012117161725133160833648778903427469430360933502269418062593672773047844494211689426684334514952488553770606500529109750119067440573554237081594688184951465756765103052763627570076150499410323908397479736827308437858141642087853002509548863546303971322983460942960863383577157127558729083335710706298146457062292022190527586553024594156297794348970632444255392330682835163491335694835018828969464404921647348569257123057415752903967307065454151986263849501157605168717315401382175923541340148827882611514579783486731612751604499595938949980098679141329976252799600026643424615452876057950611340030983735236971020167233791770777008511058811888937789302235781489321333458034715881076382074786242669253340232612256584366977035639186774105803427325536642362806369613508571939794186493837813558898579405051947078904969987235700903711023757080510073244479845963384853688563855770307610560667457451572137833781906041422947463340827741720547179710275858577793656036808755449426741680658924538425509875083191822843590946658150841956157503767941279688534552130961690059122781170608253817639381654116904727954995622910733603544562532085836123174002584736732390611849355519323378820413211634038353563157797598001180072679263676247597603828316528417327974560531632639244692232834994058000208847391436391441006963808114699479611203440822202728935296034901383164436949420488452864516831555869850147198162804077315486434449428402645692993327939806421092185517626709305298504449269115001098968343430438766686697663438510544587319719185529510045245451644618731440915867038236470139762653527567578485599864486932112815824444255142458761762316643681896045457587924212992243305391732212707675095290676585267826509858347519682092581505145754233044096732697028590480838973951298043909064046382556671579573272402481361319062224390688610731171409129424934717184740297302948600695298322428016714256604871737090839111684840979438008448168211123081595993413970050612333091821046104343060867604183227044082254904537230730082549163879062555594620586967520514594038513189935536227121334634872401260986573248711447260503780506473814989324260939762513832809310685683266734040046644928267514864333192047671756913088980666296765282456207202565581765757249410199401796028380407852706912596356684406882448289005184819150537087007079885807612048727135392381975990916915098965574725247408784163329840751532714056630020664783585188371661711620132778902571610105745017375216595064933478545495320882855058897199461728672312632818750128035446273448691916528603404006573707231640856086827537010506056751337250827574323321738664408036452486991804660124371923139379736140505901778494961421163453813948298920250773887980806634853081646728676269240460409389976316293820983842126284802971366322458765250751144710481711502849958337310494710595932837119703149302122923320895123041190990336779028475351652915722130696372695990779096915960508055483364410414935962181628044273610936827546689435447673117429692112266887357253918978967010906068010634134897528321451522212854970784254099624322716407141342265266903197878567564157123196112938777026468627782937772812669766359150263101796056937640456730536976368341873482186732225987726494958165080000704608098330617939122182861156250155847217203378410631740002800330363210547052010622694164230759225423456073625080571797886866225214116142457343384088908871344900132110445010877768398676443534733224442516235995898851929988242279760497758536835007895394721775809064677615997500932632861266582945526132527764127875419035227783130216705406887883966499818236361182040769756205849630046623689948290990913579009301161561782919289535076280575326576479886574345952120315928656116557639816115978077728081875263693374503522181323756421993647657203968333870600188422048105577093274844539992134404367749869732920339358069050317406864078764276869175582265425741804236970012662215246241945965334612285429435149307396736141123998814207209971599278944484288465340321272893165428687797168192263108190630589808131127523056352179582683714560619286748976957348630473865950142933534153803636689140177259741434748169380708522826394014048334302872230630381879315785018816844565893930185824179137262434191058232880902861553271908170252844845820873960226830418430200149656305659951172487153595403167583641108663698344302197355747138468718728357892078619654284419035197653990597806378984842880475391755487794190479237307656142750663151311726898583115173064734817558232847153936697823584915248214563075115431253239727338664527217851995205928574866286783170659596921497887217101494716746340885952209034745851198323794012462367818899337867290358857627686387336519373544852147083025965122718153098416746254258042775445959354616497853819110467145194682121413737872684615725078892293174495160956722081689045542012534878647506942954363137661037607892036365383103272167416324344374858048918492961205599627801512055853915433671998158468329283157890637503077088803998401661661042921106416057631631631336616191014839520914208643353625456189850991957443676102942613001243814729462029809981947801913547265596687166382060706363291874975940829585580884594528886740131924388806235708065725624234213729114537605899311870595373026315066649550144365456619151331735433041583250953904673544198240335889640552294183252247076277361582060979042800189352173641884618857400357503382625332445759505675612482541511048709083431995096605334470164283148522096053102985837350574326487853916728572119955282316471969337045465061247191062003281164275253526701322985947259171270358414517729979010732562974505767902318172343577715919683161013863489247458965577154075955048070976531922396898271541513631719515131055012859633543026339908289478218482648196148280597860064307624029917184311315095650485477038735142854355441021608860819234684823291529218158001581322997844705117067418210089979162032445105928159895446426027621340510467460050061883198658158260021502064992676378172406995973503508838226172551034730715111939733932808105994744190204895514159359553865003315192945572336473359781174486421501610683251892254041495200107037461968948290639788417126957669127628104348870131070208887261363641779750945652768661068100541374923866165246187206390768051688079686928346929176810473386802896018512325959463421056239850483065630366030539590566402525182482235441977601767075943328332567680141498304918675834565833761252511740871373456324429241000393921684168353476461957871066267147593549567600327341830106168095372932381116110524408975247506773413704329643643710770707611790136759875263013402648456332850167849720779697615847397277340130792368849890175865685613092944372490203365537054985348307938097429712349616361629731506357529574180329458856126878523557592802076731308919772664939325083887674497411921367148214611306262860482582026151090159066995291173660908455112438728323644837740943493695233174418223138874696294674422661457984356425099312235373143397826054298495456978203497898654293400373187484645168730558400512775869652824790006229492463066893634959080873830173252496767542143955742493370500343187045200735121452062408610695250591561649236117677045288200516946885308349110421411653446665805546782759175372804103937014972566788324414057025821152385550375374396160055213844597974878590814861450526328535631729367829575807870029055121737266585935314569829703338550031536043099526896643395710420057163790630032665341947655116021042538635265548487758887296470125685189922338254174458800340974530218508397420364128286720738860605068691793917283016659560644184483388226942479175733752817422072230145070902652910790156155075677537290565297970217828245622335148353814224906107310652163166855304199187375646317112538150533263360164337620513082133293434698564453338108092276023459810940296243632196614451579431208141863625888701094549340854367551721334992261259252160783662544971003868235481263451355329444640767582362490139693740957547614029768606119607361214120194731512650213043266910672846606697130098970746203630759788701360097310704523813144685947666943247364162050335855255182692820964801242798150707563221426515928324229705996542249293253446010911075980792032731596680068637677227340754263190324676367884498501590270202955910340736906109032984299121616659793593918150411441838150506647287281678235321757469572073226443120391508246668664458918566784259373254096561011227401219545074522242350627174108655867626896893819313831167316999201365165869370668163770128082430012349315932599808992991465745231947201440896488981805865772780396708364281901432685274626804020301943319695352184490041212899299304901802768721799024198202900722325045469127904090886826972044834579003244458241112814658653811704097829762950375883985386025996839982290229392550279267506500398347901761754183415023797169873919782306532534113498879054186282333167736390134487874269958553783997032536473754863819543768962343242431680100604981968453849280684297495823941840779034818499942548021582289579764213768153825012286446498426938390224694042873442458724566372555962120372039979445206202396625264646612322806465291464600373138169104567478508740528033090023899737770173711614655974147503578403858073884305054956577513647441420866352911109809359098203156869496338761682301654613663276299427130874924557407397455193293243757881063970631665696124369547450250945815358663157226872224798197702795826797099642393124329272936909035118236323720143186047131697047545008076022414088276892857862111376950230776666716088111285556173899297541090793454785686097929792845527972535165157908449018728956658513620168638252508518526609543618379280125496043717287377893288716574937207143769309674231687738320771810196767688443545397860020765929501378687827455747118918619522987935423126569290592697355042547028896186895400279224022400170296522743666784599468611211821604369956589829647356460669115069757085239380073083517508339627984144842655775577745838499062692124369342242432083282217943920610151988030410285209745086511232052424365696789112099235598660113741933899492183879961733285781102467616248945029950838845375826242391563795354875878490574701423411813997478485572842947405406972907810619561064449968816846912480198403693858539009624811014948297431919430694331998064375517627812482908105775632517808401665384737094673167404043443485346725096534757715398146839653669553171479205388655899843799105755427511808644269438879310560656331276828006724245733080933046264511389750655941595001970992437260562314007066508896633172121356473341526599536636405830152429945383982605630953863744000153182001484441262484985334916913064679546514657131114477872972695650646591448086399493933629714779052027932976798133431128288607481331837615409725365213598019347007765234429725100710119312860106549037167910419130168915679941041796368691031766779683613127158870949875997829420717975724614045734857550863186500955948188737966133104148138854414941867805578022391988568057253368537645762233101758348849173925368394351403262982479162791416866926142153149612742366945037801919119772002969577750664455950794016392527574062705918385349760291274761335302909176385478642980456552612015651761974089512140151170907139638780522843628284610028151006780449985000898562544645116579919782625359460817326341706504869371187470305567359796751117836120493683347620000348148485476971336773728031926052106955141044796126426274054835518351646068656348031849449066762318887512935047196821736873516978251698431297309795187933396824441401219482848749173814344849589496308660196860200076567449501962785664476139767626380517646814823895526783328499761325892957747966526256976662799742966064673601484866699557780967356202159142026093990362661126627509423822191944785106541905606957109055161072031398302554116316006027472814510793379856136754578859535427569700704827828234735375156264309982497512273212625967875631785903590852425735303904565580743612258464136360399396245004262127172823032132078342660613727244481346067309012485491064579991564467796959938447176657797557748608985364797433195874882903760590169648211623111561274347227741220211987238244916364572676174321610549311847965781628338813186168789212656945184034739830872080104769840606514918408594343499901871959858070602240689759715835581576752094444728621006889085038465380118950568900272320002157914003087912387739103638353869273114374840330659901196863479424042118088173072824502472469292483743515710225708949877588601857112893516472650840505269550509594069877689017996827430022168150078180686297449638353207373843571798140345830712111653200586123460913903036653190399008385493415045826685108767636528512762308102930395491313421643166415299886464533435948922568038839488507091192903352618655368053118790203731043741292816175324635590466899687951951759526635513637989239465759910609442904588362495179061320176364109225277666781851949287784623589954494657248905308608240702703912678724797595020479506339757962926014805495839691518956856111014346298448433086389178631772257110218343298744024295258702092804367688506418741496146871747931794524241792007510631469916227330774152253182630466618165778843174557972967990046645604821832320227547771504740599731371848255077400536765623079520264628252315295971463635593732182891252411783881987120323351123969069529416729421316451427032643631735434345031583149686889277172827307174715240898943324934236421341332710749638453331847738124987151815650946847353446433606495899675481687009204281156364177789948271290338748574553504365410430315347290696484989980335044356462309093612734263697810311087379059288886696331485326498684766964935372928866240613044789458416655159890703486715145688001381608352975171374955972596686893259485447546090028691335995332609726882477058092701198827687652066780832035876696163561798897781035852684682528284675850722414502251240684236327655922744186255739399649854318827191990683364167798573556153697272902657741174975010399913757264020874060437893264840059540812147082901702314295619949190636648968181481422274425035899732588022527633285431963337890328806222434821567392514819063233948669261932503807728914614174983543311512351019834286774740837489709993940331986358927017894570650128982858563980620712147739559009187827568638510295998967173047393357749930843274245009279278121405271185685710610854714227529544532015935157194942066929691239084113402942851269281685046644499480056677528861037899951705633266912164382662057882193864005624117647352314886302584757801733257982932272343260376534779541209380657993564566560660169092023668677116651565654023568269259562751457474830959881111737574316094833326866048226606101032649426935559605141632468582688600779424948453331568501178898160238907618516882943933526670760447056543400620870073468221523043868608403127086501985990988623511621302698783795890135121247983716157762579881227377492139183817163591747817126642869457697990704585703646562610318267483530830365359763708351396205421629780123918637482295191651579003296125960315577952369583439731058755645108949819989823258637363422832010376134828143567681078885928453353795177683067713568696374637060430427574487079199446068996835775553904975212433860711112910041563405297809165604103719809626510173922766394252696722136199172898074577011957701703396306668271174918819961252068345851352314818662576465569706111461820990930168171905658079146679993149290481500598128781029650720124984399636442329027934544089820741216902773322411510982705239449904860719962319241835871565927440884527573317637896212148595685453743480472073013383221473829890209603414837038634473615462964178092063884265398495118249239578068756737939797157512879685844382584269276795379378669148983607575234898639282411493955463689032782197765014669958684682624582304738188521915225582930599851308690625582881374169613116110778520346483391593510255294347540795549174470145174296463991108171149843762781061924176185170709894066215153583800946888567961422035155391704635413678660866239775465522406305172045725417784840893623151435249285341404720464662232460601395776273351617510830655271896849068857094114566166577631552951423538807430232582233084992967414588263448406660608473151240015121052019096631490135439715819588447449491731082061381641077615143085001211402942255606555426398621684866019868390327678461338311074486221445875702624326090150053695734835270292729634396889723954328255569778735637188034645474419647752992446075355286463417678607863239899184263053118115692225461770943220042408025837298812560038596489679681561860453035749352627464951694006131585680369792564172693497044559076050539226817694046835581628448760580290943089707589993928346070685571712466447381734820576086849199037149790526017606449000437035760995909900873481827962571531231939292304193949776394152081020767709920909544951358505785575333219543726747963419574672655707895781950207582272456809450895303309815808251899231721885409567312942427076876654359241999269679517761284008820371081572865474079667897096436040443987746318035403086448752002942673214088584313558009701638975140591322627284966427575845678028073653630127164024829278508518427867402020092449578935854814910962402611926533277257513864804647603468522710414020392191007190247065867464574174352271895600685474987831263744661612317174337383220168205571680845172666025657569655388788608705735591171391568833153675380883901349311817878200697128165353413456720859591541655084661598134368373463574447207164257011531040080937964157819904785605752722546736079921715282873593612565932168564170518208767724575394681323498202812215089336826785575380663680869387100845277502561217450964562096789995935740111788171599178993473870001713915353740666704287970258042080807933423815087735298481472836314211844255127717412805949591975661076949940053289297271294898127009369158715280146112932427645240888971391211268993971213520922429731049012459468601116721418683218492366246145124579569384454128631876787036231498843076875369944814798380634212120089756370748321123881924753090892056665636440786482688950136188373865818411949807048856359926334638618855767208694571260468603076334827342961639497919795235795621684793852397232556019929085277180038856477047312157070494880791609519131538527663939201503721449119483356436594047480681071717281091057662732228187983572542497118117002538858931361162679535698689717714501605799843656265361439552410876431450277101237251558267299518005274496060445867931427238505101741977959603686583008961297728798720503899908729501467026232700933359860540201896471597266467767795495847086451581818635107941077104412323729966125019099691610759882837532544673888364468399124309208873062848618802795160229491013820768514903589935948960415623008076004365240546713500520225753810405510161747163996233290805052233548236520100622560924516690056609349236213468333409091098686741213770090308117157285964867915757113007733986175551367059009911763115877012310264702181482311923701032973848432662268576244149692852976874195434658145050203157265794803075484924464059400718746181346480400061975236685009744151173718851665831636202065901208493074362262101827477981139502559637118729429468359566018094440677434406860157254225244071205268152167689283029505164080136455669402101008821065627069907274766566846326243022718207890042670537133591989700757957248568417375912127957381605755344110160262097583594676561338005263023589995138595286984671036106917493118118436281496866999435208608460845751129767812747149229569485523399332700135689454192284881122327407322114555342365431454819801911192169729719740360270144925547212117605276163502669401369576574137666662251976930850413263042890369230956188582437819155275555590185785290147312348251489118295210089388991157013086255427201728240247007083088801034338400413904018082707095907710748379473198359978054448605801175876859488171897349383965167356901354446319530400024261818577431828126368283459610199517201369893031239845553540448099345383632801361416831645620567251258061589034029546226397204214057551733777662271225926877724153369100358698361511056002067131783744354108978054373462134511599515390609357587085030444991771292691395044740344244979432593086227931105076348240708097336986675723715999776435127582706618486024208325930760835608905179800162007999280903871189559402253673389717504294383757042913065353840642254289386969921257137821666411054395798923534531497321193493881926891303195281790347836259165954891351116173498700406222884158815616974148578404308227392233106755807951989596822468730143746712028912908158391842764911000007520124227263760290291082940824398944881079886088264459470779243368275922695584523666188044309960463174897924542935468279057218228455025059352245022634290368987108006682131940554129967170623377828566799658187545713071017442023981607222807988053927481327378006662711500582157325860530599684067795391278137885748702360893947265388638218058514309980500728548875732521235557868071593202754605156493152871287467805313435105744803295664828488691261868419748190789584096308876784336052355864608951798450695632795269264497042557266627944842271657486282226314477576096587735733651221582334229758564795001836994607277696303409833698217045220568809560740977129784128986939488947973887793145961751849342266385901940815478099554875710747164093917074035811521241463225480518640636929209838994259870548058065433990193711620241367217793114971858882336550667870791585986781490785074927097361743008848654192011704584275498801634665302874378409342837153044402354914158609146049439802921657162699882243730411630600241838549894480650900832470273926247751368832072930251953799259450031710344298384335905767389108916186847635467197418746388165445505513469130604043459308071466195431491400037522353600861629448441588615661370453935409218068942024072423270469494475050837201242885088751377521466037468936270904492088562348291708907717218565957510680972145390862647047786058881724087131173042226511225070549558760224873171883636254315419687125338214583880578854178436575561695596718623718295711637580507379400189691279930441543535434148703150956350530488474509220241903211830951367968607732806521449373405252917975494893211193445616322309390661680234227254952769526979452201161367665290979880523023534696646523863183807802183919357925951991231651794024595013652454386436252566103946568709725061067623046964700966497975345472601713648136878393507203584855870310007908150381343110089970611414471534295460071100501894538404093392558081353031668890290112627158819402328968094970722742765191301210877257392394290683174071469955638614394407559065467630916431129654180840790874347344011370584280322475116569554020146339316541173875741058592752171784753087402518283105799125547781378046186690655711429860816462232236923583383937187632472251297492227394526369134977821160015526246374770453340966357113404703600844815323941021245986023963007257958276688681676702719526756471980380941800082382790602919143081676100759402576742580112371144996956859042253031909514188865458753333585717637822557453678896796197136672442325444635228200538005508056932318242331319518113822887223187545435760537898956760201339602413638619677153392688100776147146641854958773170684462851332411979129065365373965655257202138012947778286598125128022886295918119954520980991105879510329262144012560713850869722066536245902340609554178816291500703889887153690830496680543387321798449806075847797324569197761598904221149920135544464266899884849570461153501554943818386287325157633120220036273727426645791947837093348494978124749406582195346675727632497987945984469430687838206939009874409057641925458534139268642617270885926932752497790659905464746795817015255802053953863741943234243822920133289320900734224691946452414579933882137701452363572087430121669316220445538217721298499422516736753590878536327368098310969165056340817981856094980434708917991688046300440952688103884073613457698228617765033666453660031731707662802954205523078225099445419494496666291540840432464052937869827166395583096232422462776710021940525936904795350855399134437813298381532758628648684455228483831412737039615629733060567515045981578496040342787336940135997474544343193573138766143464965167924373806649057086370447577586318164303535306855678395005442076300202934793088820624463848811916829323166721727213583833592135412938149250220265220029681276052848348722503531067022810596116810035269408394430044096879315388925758092041261850294467417694949817688787895201304134106803935189993754410836784859123070570627934963796609516603929737211439112815090873525765535203428156368417165143105412692866224766247841031695069631875775156328700316728787611779197224141038120039621747703835572709178272578199437745174887759525403502631895489220628322039663681990504746031686430635564890449902962942229858272502185289501386845617772295309254327717962456215453199862236828707892568460273259041845752535174140059858773579612454336572482882369796547869589277659595990838608244776859799569624199390490180790045943859059763733875527935435755631644918981832778340612893588409092811906522645166126402066957147922655745083055453453780213324751040648648775437657744707500586732145332876696271722864361365288153668766515557024685584070786624219641556610073187689568005802592833844419499690471971348979593987022103607233917924209568688997333325763984153506898280054658764317010681025044875486445929174723577390571203233895219430559831141210749667558085753929223816614652916864744314054723752955848806752694056802952081826120264064488635259730467817802218628672038913436006161894214576767119056817015302104135574387409192026508562783653772210688776146654662215789278162922457839148652939972535228111736071784894201270856854321729577224833306549624303959350052738331007443662126697504396389167710967437261013357406025660363700407767766969356372868808213084958647805694379810390043501613973458417295845026851669904231857148830470845179647231917853724311048256921754125735321881348924826901451348159898889186381190915681342686335131022737801494038421317431997243719017234732914969313587419969418421346231294435169966542423068671193154924147939660599219161993222505875160582512029032293526776521351494448561146256092935574857980352647567179320920017464400726257800825175469900728191673165041157114486445466141387945001658615788193901673676928681120977179677398989379104793253983462039560567771479417890093807171612301795493874441431864279401364079336949325366960675538322797356370965237264040368879134073255029055407982568222819319337940730073372362598235369951533392336244825023201434668119743000485002172879829087066389765701878636882087789479730147936746273016886846875907176924235865609584126399492740937694982666826635984972494599442985093175333512923209054752105282609665577708750633957677329996994470190259612240240021971273574691904665661691765999992268926497262311583009545184800143024286121474443294233915002691638251810025847034750267471626796194234834073734062726417791377819794723616895001585061579224350738863829458777816678312119401695760636671016448058163115844014535483038151282011953077621179581014792188793964453675742325127042670768940174357905742412764568556121145274018657481172245350344837469548040163533703741044365714518916911110987983558885720036686888052581913659131556618243085665007373617078324104447432800495473036974137286160828491642395905710959149763024960087138409498246056098389343619168669560111851877092094016057307755979705798266819530594403662379546178469049462943194094174763272121746557682929801398566218350327473655113113645189564274979850986777666404560892648295767442091306565639747475282270338303494379475274431094340968912423505392409470515840207387197717581219962849173081640248667034429806809453045446749773812500554664587013938138592776539603746559245064249317466326209370051040949783065008741329494024261225884185421536769266556795840784496453725989011352734623556075583315465240209071720026923792605522025760785461121937404295138356890372846754926162604048513206727661483060243831897749622372478355575188459779822366643931233732994814060728816932367755427341517576359135236289868335513642859479487850788362807850638142511332135077682968607795603309724386403738909932192899314283116990563982341401768371801206299866377794403478560160294711642117434197910700667126333060304619313346301691994271833859369251928724885559253973789276351994116650790312882249533281467517171387894765604659107423654889072513438752446033654295624531318760888636754333464271347637722794774096023530158680355985544178327870042303065089781943725874546581423754290633871413184699101585651905643364640064353418611144809154665213649494478572536337971106741031118158733843404413769190558768967458473573843417949723663006423043336749040651372391022274723707860357155407362405879344695311452962942201181623209264972956235468174857309323826846697864460398871318443268890310891405540044820409989325651087994952613711873504828316193089330933016121813165527104870910359755889286625710068231823392313310825627584343977454184795185644865431564245436420261879271434795423746470858319172367892081857712885828891205014859560215105949419794921230452018370291856531515697978578975394320513872230057198793720748757316290687372942896590657668576375493291007564905070457211231343515904252519390757721080429007216574966541575798165323934386569314085803431501440669971432633612298730769093763930889248250998452967169531476775898664910804222606386518861053471684672866762782039843483766100599429764237007493103864039581479968472501391310918651417231639061420698044092927772141405778385949063437419835870882148207847339310806173726906851084596636287280046066977438810995070998975965533883150748782263582405281266789904848501217867662306502571812293504084170572560337098019380594968084097464022113137564773761904986920959790612657182441953976167866540006472648852308512694167542714025559000930062186048832476295947297919374575044840642865443263196437687170045285894534834129496040858963854664148748337967356878095675380415649663142611329487109902167863212046405246779706704941710860542907732780889466765403740934239385432367503008090479717768047545320144508850422672645367140024550801304517355867502200357216653718207719590781720470985911877779408908203672365156479948049301821137391338453761584293413289972596372252865202022744783822213238850616710450255696759298700298087973627385033548339771347725681968952204717623813423646068839083783396546233597467885991646205508435669753241528831887724062816061294580729455128263547705755273506933921799412420518436931920731397834395101723078370686295839445401259594556265929649269314173513244844952625345153625948086393722794834770541374722935166523472295105541257984584643330394829912965320764554206748194510481244285424465653987677758480759963348022622096112184721789176030088879483860521615046681938452613576660836628301550956683140337470624615299094615301150210936657383879048784933607410531571804716396210424830804197649057514587442054992470529333697418659386129775516232218860227505825170342151703394371746359979357813917236982894332564926780071823437150190347313123057518986684153816861865589411456853073765292699577780043706047484092277611908838653989632274324643360588892546846295467290640207446937611309329858886061224551485841204526402407208239115633315051378664035012598583417203386670931703453066622722218278658955151764457640924065784940495653622408244253693574167226688004944943974187560086613531990219226001066641901212715752357427409072903738753772198189235729787677168883840567313575818361580820776271630263764461059250934438705319759295551362751888116544522510187501088626422553973922889569347067933140419771747183993694744871950037859248256526953795679689080973607620075730286005642056010920852434652745334188577587749811085089351157398945771617107549521132038557580464567744098191834083099227938620697051870787943863561102779051472268809921797618703494624044701869010682684449372006473359762934371087367764731757457061515057042762153440043951489568337441124727245331214694713881896774239558387042201985185078965661896325792634725433276881914837276914627699478058749480225024350081039764047174885879761310983704226424848203342974187956073088176462226564899643373737717941557635001999787423529801008927087229442436181169711942857994061414231875686718826028395712065769978394738598639117739402572883846791262965837281583335418217371736190010319319813175418701167688891531765014151385064199288965089178546919605902700433641504241105204304083763008665261623939575184495423579710228880589096705211544988254564920604180823524545889767538932830804973976421594785034709437485081707684103207665170047625210252765930800322276619884834189639001370595342716270325675349059465723077065683960993168133327946963181582043878853629134606566908008063706774539476736262416417936228653262161301718068210390371302877661559905379181525131972660170642301548348068770483223773440599954402358981720469135257735461037773863067553504748891240673412270899202640337643963065531449653139433237953674487965825676630612843612607611319645787930449672248466516841202397872193463722769434741916281732877726270608316395125865741333215224940029944041766686172256921766838046467407240557780411463515355391061770471564210336668263487063281238975414968102256673046490545328687356255266072268086930079076418086087930097360121599201954882491688430493073328327807840843709362637828876367821714563380441477303737935317942711431780334267827693549273218400943040672490430664180612250839396751277717631853438400389613653287915474200913684750899455603882519767542691289039788700709559797763441137222574810805841917705667803141265723982149465485551073438647962440586303658021444742748541969674491190960874952891712673720410073881013147630441125378912264000179139737278112603066394663495735997741296847102563734556523474606571806131658723081087149377924501068357477166966290453115653880025336739086361838525411734318339078932716675908696070531328909316715059075065822809337592566823690795009697473270696583506055494829493400995714684348792378773255524394353321813958993553085759369804517782736113387815362557405781938811426312521698311805866244966018491363086953003163327661368544325206596847608603887330638954051222613897198744336730303939676601408287808127182165389594221476197739588129942437850288169307387670973733116882770908019179486977258064007594507735595882893295222102208493149604367512814452599739646662402600905787115224789155432753859876760393557348002522412076525012116844174784988302193804709015297729285921523601156715832958373727964858767886427648283009933868129811327417073768853043068868828424291788249970815875491557267855795453984323255146609868582027145117945896413572176542936299914630161667485818678239201526153637094803426773729360704203629816695071775383813075408231063829231656015541101694620293415664921284394080978893910057242861995063398139295853775501226842285332243089799638750138427163618299312878405767284154326799626247595761841792989615344693273396311624153804588972602582042914109728556575172655545692541112308890752387887018613905587302014975456144428928724968352456180505543692991378897869356728850903269324530073479588743876052055464597263305977852423485757313400785611708232265507186070249356459684423669868614361092131484462686632584038634273443565944618435646122768026029800178095593783340429173479782824482149621884423998103934763799365292543331645286292252731396999913313128447322530376019987865380060686344097651277076536847627648991111257210887710766380052844901291931437371767837090997960889988619174563731531676388259774833074277528573508703017169126763537024582753691751954509805129504870459767431893388798639269248032594820975579332042945215342145254713161988829412955659059027142081681096657007287901973307523538555738580933972907136561411972594968967047547619140458266937657384523237159536307738218935982601499620943632465045749102709136938560353814727408527779646200170744387213866373598266964400980928001297786198490410323680877776501869261301914048541939725554202771563237972040706113237760229062030459084891939362685336948337664763578268157584556126437072399480320778925393455557845050954504027621638472393798023532497788067067713342431216272951548747237240403051639469637639612951841595962623155784563337270510072619670306442089220075622065344361944267968093378038810760844924202107823690823690114305640217391280339451967923445847656057333911757740494752556754909338990563536679830642507008759976270445942217984280723836270284479324224961024372328104957524651972599713944103350096383446110215420743774729325228481165241252239485344682042817540071096669577207251618264387542457709177665046825016266252565780781016619351375385772742417057781006303021832548703185655043807347333827346683090795104880765480784165058192243979740613015161813741836277894834559018869117897306809281199088995521517393654406258203464244867609604959753333291812987262241409014356503575686479940780185709914249344436962064865372216120162158542115456106110508096945602803078355507119578743469515590681709671134457124028614894048653003347681340547276417091638634532467051210348344609852876811765318287933915224152374809887140527947922398502858343912622903415766564505365658109424897973780989610470882963641187801613954900017734022679322764007892200466241910689186819593814333012802104390408759265206177681157887254541054856021040856464826781971917909637052719625450738675750077781797218875701322319216675099001732578214308188549413746421879354344305200785439125947410436585076295471768298176514001518083550238370777527115215732697845687489283089417699109766819637760166163221038339555257221073062278063549478104326317395564140827597931295350574219554695102742435480592573442335358812176580909363178092752563710512014235215072580172347189943380846822842007433627047442563247438727247956770281530834231727096249867862666532022056616213509127572506909395365960996371899459001635581693086460881643700422529823645168544797304767127136957618463159939238445909614533857875858621208836629902170260484224282958421869190536411893532471494565519847730001824339874051735067896168979949193175363486524622950370209006858115913731134850975535719025572092907957380019646741284974784700107023711970844932379264202433695722663899815722365949249583200872692173540934352168327420723822157913972251227809516764265031819683041217427952123356082349685357209782604296049052755021175587972399055261166946820615457248326258886405490421585184861258540655154136863735069891563563338096005458193732203010457210214774596933977433769265882951658424467838194233853091823896067393032840404981581457694198995202539783195501138869449799618167470617356262674055248034148062054737742576875640283518069092022945811155235257256567776002284999113115487525350074934093622614182239819505432809852896417881484014881711432176436985599683294889007315822344420541067904005545151096542882389445620803945654124638974800801736021519535663800621598019726417802279317280546572881607543989620661055919541157381343784656724133132708233107754006221417051686574479189910985078689538090305172689965555400881595661675863965417469291264069323100929940979235159944557328058048402475015248533408871747496647692030131936424574645119516369700359265989498432595231317695350326110997511755791081229728081661673732231364725397108334338312892621632491926504359997445658535636303152877498122098500155261522465045052120265638926498153382590380585771721649609544804104901513176728263882198212175304628735116952803707579436011034192386869213687659002204812402550941999228727169662564510535668850662211357166016242785681577960604576271971650821848333404792989473953602717829615065339209065143423658852545901605494994928933103017734894005116440304982593716285588427778069810400291011391857646945104346979465434553850095467880797890405039627889701890198343989766785346715484969084790820083171353055301146089863333859578760818477959746901705140150566088233034148828363739939678429379566180404479623556631717273173086691050261604898765686696498505900777598945805680405750768614899458167160647259900946818554915262669188311240143754509793002621943250801992683232241465395746103771156223430485538083526539994482030175158652516449611825791556508809759652184665643354991573506292842787550624749668085961956836538428456716140480866378581533305279133812729870746603249158432346242698994155352403675986408027143370732313606527387931008841329110254241385712364310780302088722681342253840282961816721567057105092269970082435715329176292062641152340927607471298039351905718766101252799897970529218896122576344971709175568132844717580302847033852644020874833753771193071785977803381440523733607577327687168714476420878298865064748664861331792692345468608070537492403566524445937527634798014442160364600426553573751979280238196622273062657078018858599962157575810482810968005614166279434678810498112717734815809829489964608320484747478381740581065685364546450689271503202089943962459109026208551143525703922705715318619528781848350337728418704504276911667873652799105698978281760394299320534048175467407389457239646173428438870118086102765304124330439832531573762625321377778623735740911606868992858911628669284761503028241443901334495008992951074429912102206945310628391606599632066205617419076303567002171857815795401554690309281875948377472448259609948434254403997703100122079844610600099793559620440606391398695111901062750407595130183653847874744902291206977112218315188639909416198419666517398713401379446056943767563036600824619926522065227099685361331123115601401018605458302242462782683064512262284984711791305455857815767872470243491944521971903902418947933129629017156012709947339920917672911442219394232750590206004980209893179219371689605889823124266548095643305743197075272056463153825685015819888602766858503900211580398633434037913786777472905657521748612625135347203116961699519994001514311216592018922257358623915997291185362300742419517645295061106272159409137153080669955021589030524302872675984451421521893357939568775149878501760309612052640686514053926851500394248370221394995838496527374824636313745392552658498905805905673977833879399498991416210663691093708669761719838045909470762133432111531864826153490984219679278971546493502652580965583920486093158488295863333872417131182273554070764109289322461956250733517587375440243134803073829875993067967861513674939040161400098732121132088213407695266718176590187742148088404265321403081013836408340314238643143680966976018577229371004046016667365093763875383342512632433682178966969137811298273733882314155207026008925119445058524769897668744102283027454883791661267289090421378167659653593715209158831180773686873647756429960496256257601428830001738741764357743756970254094804466751701589567854614120297998143302889510696478110529025036019621924282779398562806442141393292935503876707939162600799780240618920223190906421747112711631116481886975757644667902328638468736677051472618718185546561356654609293557451566864250644418150844309795390695912844666443928462591704057042536552548389900643279894134572097339866448872691711699286174969524839265514076651799073325633630446402589646547300078595169669086528437910008979322269613713191603431509851598694385828164490589034232599083744045382027482587861559043294177202927375799959672409592905052386118874166955196059509393885190804464230226068926260383413530172230204790836394440788981626816848465591745201777347372580505701389060743311019960528521355241877727152802957184954262430202142370223908324462027303058087032546987402438007090015798637356108314264550829040714842869331542415538590125676279721478569483740435422614146348704700370212717884847225742599580143130108214628239671805588197823706650614063738870806299580230589772658030696356956919145050463633356204009399501658425040443965681682678163906465469958945993093395405492002954397614279955182590190678615741219199838526931813347005562375994779310380606380894658021295741258165481871149627247822540960732178445613562187050623745535790791770290101942292823633305451228138211317912179861349053455593559628272434212437455050863165120913225768709279432562260898722496524939036521061515550123979696538797910615461210115118434655969115507159400848484351566557126960960398427212964150392548924580239086093820851154831734786681338975784904099181124520163265815569065917462259579268347953729702033446450299774043662500000759339992205429754003857776386070414496677295797335742768698254449209841179562481566628497577709827555505652158585900355505710261102113465295134094653974269325948947446724626439364606422871707253595392726835349035506747358987825912624072857933771053228997121174030660477982034805317737149445659857681276952844695302554883824375819324824993560087354833276881593027910623517105586889435244088119117301199016781343519864986073550408371822797293273237694341345728682465417416944948536278179223183347268171405339167672002716012309046638398166346081764021124939350163445808962010092960698112781898841847116019237038202543940199853085353626240523936272763948566486032779827141463477878788206538900311192968485589337049339106750059472643458915967714984743627763266512459261141798677689860170308293246640513202497508021323167826300960474566416455577967342961822256349144533357568552103360848202297052649294844047186034018616173624239822998090740828202235379497086527474178807439513341519987209767010423294811604896819826350861792970958053282864664014370411294554210029060331486637425088789606355570736959539569442740859125297428986680476772888116339540956194475188902477941572709028379031625693567690740896947777387206600022231096910794422243393127831426440838465174158887010004325176713611855448806029957836908117964746783032166379645198310109925690698363504827392151422050540062695943384653544108035346357164470089801022032407547571126259837102551034331924942467879115035997238433795490221016372364546129830630921531049458256201218133016732670327383098122215384425060034032909015162769160160299566677489473703430691148171730084371533313631352853832246216842022176513850816782701714635396717996319648042319135684840223577341646552226061214345255757908110216260166920920920688780900681259997906760999938611571112805277490247990778263945827747003649265359473286106682193960612396208199480109375015848535018014675054270039948086816860221438437404014291588947267620907158548961442674903658429025554770405577522831718498502022817446486334064823421708146184143938716625576388395277880401546722414553830311280612801860071749388003423229803435401109596541666135018773314846254631166300591179098012672502962998041015550979718674105331982921661524802788118214455685821251837545948954909218352472117097497253965260964132012805392700589220566304298617131738556505122857606678453756911990956701250670154374757454947636507713397114013271493937369743587892437593718752764615535740323131104781738968825006305126828883260624165177568537824983940568029443724014520710409602373106520972730506103311191000982956290454227192230454187204520297577307803868228849146393615865536795454570316051256243439011496246241627045399278821390924235487434055836930408473190342062574287562129333888932730456550911870556789418614225948797779774712686018770106565521823906108800158320284894282154815582272949127040803474408520219825797375873498272397524061613950603093598851352181234539580170918715797779664369985791320219045527206711727255934954793739227552901663264327075712546554097606238810838609212028775708528661170404242182937554343626745219790060922101303240561107318682262365727834969774841098690981373592051730965715126702316474626045226160675978747759449068341240113186421580153464220738966629442804626788568110951892121066954668582920678527510999317452405639001775147910136685940442153055958207789076949815503601240291228735981514031428751972428496052565998576572587967384507783508092583987266909938896923601287561864067382347593308645930775500289040693426139875236445916790900444324095027654255385572510779413145368373601906497817690054480188088157532060054385792505205120586553748841169302282188951992519945444863427674265008672887879522130345757865064461640398069208110296682015759226745362285740725790451293390750208339511307232003156618216821111356497522012041757561405942421507221615012482864980372144921383267704355642513706779988703873821830108316961118004818456393854829810516106690672423603026349802079482853014985476592265325684908984911921371014942072032309321816442013767255181515904487131367564886262570791079840232631226431720248517596644888606696473066888785383549784266993991499829416203732377619826226741851451939260702345468560899094315863870704988348876139270426783059273202333924711590438285537686886054751115601098680313921741914658859725632912464077620637979269641975566706189970654617333506037133511495326820345214521431502810346212412181348102251802845375148750985387346561077064563418911773199617078207760049794005589808198746815239310084409421636012193384412952344636494033939126605457927808254870934072143717475667020248452568812828688106417719101571847628050021525719951162034782992837963600232926139934083428747534586830196923345018795372113199392917904399651391771466107161986329842459348144084750732982532917089705475130320365308178910843498145454468950617591650112338957101275546720527499117333681349452246769814139692983672456563978572596524024323973325241194323233316375724285128116132211189085335415625272349200342855228895348285102743997021919130324079671958547439087138542802777891650415796891567492168829183345141571960900634369242521230357186242754125605800202711802211252241486355754678563577462754920123939991382910102420238270926525139320805686335490441038025111405243178366133378882648030884012909085318051444338377820492090180134514729005783504253739891493724955117281025279222599717817063263945159615746458008246323322678703190301208579632624607041094104654951800909117337392349725835381406871785452094800336721640643607791926897281925026626466030838030248314563781288507657066267242005720160518570995219067315432001712695937883245111777430277767647184662359932667837112160389874903097387889297016916146221500539418019374313399268653224944846829894489837831891897115938370908661001358562138926028071722556840470560884423024683317769853135482971609229875256086959592981304866758562729844804774365572454063533653344985932194386510846450422598231567742379823361651693765033273620681577047200438144211746049655018113710947190430718756755904364617416857174541145403503862441042814089216258932252581444952620199470964151387973287280495484810320355002084432863964831992213322495070592067252589312099426826350869219991338639191711162242377415173442845319891412551139344318702032296626656383934891719959670524136255728243710988585706381077558446377164258079912974678491690053856761348491976862790196680424158449286547776393739309517454742344604202754415706838728506319343481592827138653755130398830032534423554367042517837866351771672656521520017188517970747888839674056184586185780829193932502091339667330395309518978725967069401637582140847252561915664091423842435707394565082980496612405816486017164720062998486030280542251623561769565874795058054301135884075842445273010896121247800197122174893788568113831708033482896452295844273489233495529258166405127350444096101547503698446934676001626363859306911578450538745427016578463902567248972370716013880158599795940336945205657400012320273061811104801025648245660949025280573654718735826071469295635076490415879195233751013532936888764943209322538696468677665776869545805077839700537180306561744964196140633364691649401635170781023634452349966084497727559619963550161120218421978128623443471085910073509518564678703447843972643877584192255618969988691306155006782646024808429555275481387652541833643296840893808635656191536393053920608192584877571141332295674286968271458154758085181572628194228808944254748507303808418881964326637439461322561044849759888139459932265658485098258993911987115988006116832320891477817269854838128453066953851772882645810490473368160566552024702321737136942130961178954269214735729183585459262337408303730045069887966689000607671217345193551468018122185062643033138519228728990068949685314532498346530801979140356661956682329826097219098644591230197236586101017894857877468666441164073458526209970941235428279235865050873931354089243180496455578691186872962251246228066935910609867286562766471006777380224783227085361259070649720845947042151073950848867794796468280015908475917735306287436494668746527283225331725429557910453052405622631402533206107158865777392409256377988845461539365098344196742025416326864199986810145595297868463137694229358523848259196030119157457246925485979690239732638149283688189719349579131432719698206431188226260876452526323445898156531442370135896052035003719121243425460334429597889507649699149765419533275242703908910396073549325340754418148498480221238197323317844636424744826513819286145821724950655011070247498825384327727587253743672162206106532839912867874093513358915831584515212063169166690309357412477006042608120275192306374861329945971851128616302851438941964556698973361951600231867393417118926379650484020074541328510871470054911421360672643885531795032151860053482745036559372230417401789229302693653140416575331730827659254925751725737701028437467799716781260636520121338357708312501947235362192669794325784848782566600894368820670649446307306388041127734101265916449348069159134364101155318887001834017582198950554129903169808571850959413499563136394731512483475730228881072591872845668865618850049176394715985935566438743981219278158242640366840411585872489554938477868125552912921979360616850960772219119630053497025443581377758452199763630799969069497451532329275719675153997308613392548108269038147321726947999807841095955987443143460151416715700453983013088106251796695182825313424860155649021914134410382851213330499709970334800044378285733379414691620287781663687864966708710306728104691146297212081752986403817621228077004075522560520438886924117460287400453966485835543001495145043995422533867808113850654851962873649019911362494604118681111479211418691953699041648162375696947014034178321619401307739949085358528940275721478425694629386998216732448855601114799560892763622568536548432990278364717207475479508970305718498191943682659961229559009042098220639547611704318184617939551114712455472968657926153921629510686515013552037398617458711849837732881078379630111582299750009617030825519931033751409128096675602442304557287621117392308621081656799744087589344467867543485257700813066256240197518298694444602391289694092499628503538456380600798875528818292400523010357305480069456781962818308679915971889376553826132631617674037979827286992162652187214929823134517425686304279874151148801780097741303017806663645017984862890228908045724650431060850464157626715933161805827339188674655233283084898656671188912986193308692866616366778211000628554539087628320148536732510057237009396789132749906054989203849191573879900210810974005834086454970736814432611327375844007321939150005498248308965655237034413134980927249014060022066365277186222052108666841664305563129491925467394239158671428920535663328627644280544850216229821880416748520359885917592678865198975848253806691550749050051206052981369341933776863294596748460248458875450451959197586555365436006925647474454502572578137310354095020214194574456318361571035076711701419866095253573443034473889126440679490476701180710996969473142598303617261466885628844811466424876846267442657606763137868429973149047243178658516372749031110572426832900879301796902921444844453781844804118216737317771857321115037556776479357157042208271661702314414064818996217639441521065296666000153442098008412325493504163653399418369262285600641338012717378492192711591938041071388861600276380792913801105640365450228621682377644823188843295614601085256030995027545979800074598040222338239855765072612629044567546525141836817975082544003938721782340835327702342271332729878107090587507238747087994592364554910046312670356197086714073045323813376604144048181446568970421635100541463811010403965861746499363030708843168077338461538226552322199174477274228994011908869300313800837610452025296660619650231571201032786524573433478958832568821208385036556583373304459540757042155867818164535249125286534418864733639813428978097420856206237810175826996277951589996487681070628837420609482715975995564644342047231258243505433304128727105967180680330019724116276021705780952935019757193811171611820034580192103996929136691619641306958821437945971489772965402547585544277496947958217242775125154799513415789310936201174769012062169777054457184015130434966017935572812541865900368329503889565740731309758125447615015466047348706220955061304099546292022957743752328258367293711079234151440168082477855758824204239348424292829366200266400718004745300912419781412646389082426622151956472641256872778346602620791302912868453705391326240358280382053000449402620572162222038459781021041263876799235692589612957861808786116711434339364161591814304765338845453621657624918096063145596633863336221936145966517589019213693110899657009875285133063566692557053880640060838850715898384064823916191707936924420332224781922953939323579121278004159498713434580561589139485147635273170396179767669193481253605045438884553836897145560241726112636818301557121103741113838742528561337175665170172511576148659232507248593869474027065179564407443744397745762509169270712823341580727180659322388853349794136339638697784716170384104734856773447497893984965848772066697512742890936095913570816758282909412829741106292190943696534519444683443001693191335224904937352530062402256994535030906130793122359058551559262903928955531713624329759885562879901837695163742419580413484331542888304312643378857917308064216017110356458451290790300530118696466845905411347213383781656345420709202357152176581762984605254505961105467298961042138714418680189542701174295022009229987381132423361067240237612562403491925184671563081416392367520922337968609879864886027495719013633988287337281229645463824418919379360480502508152563293549552943238460098550481271576581204451774473215341588955097220489457302876085667167988570449306365046969440960354960944242955799894981911291182857156701904900243929624812769769582504547446457245313976097477007929560053074861995934442461066767417858616370448638670408257064113052183164642320873989298302059667846849437598068915119764804290171888588744659218454687799440957524648696294498638340751569843233121893049741037156424594542833047184734498847028961846235362999221502871624670696606157555924370256298656841386078592070038874134414898680568436365648298197556223986019660690610918640475313552891364962947430829285163486763894998647917233652569222831245892727547083907649479043753610631383797632005154727619290362976204984507215160227252710113525712260084007036123996710522046100803151655101869862793520127773474465008322192576845214883586332927683538266547857827347188689226111447120397264521203815919912584250932245593748552061348285433136807335993328658053871482205399994722904116045936039430099243879496605221084830713344410668357631551141014130200439006526792224936206732109318444773137472343055212264083871642211122471286498250832141126275551530197694336237141752079168053398102690073414677143657370244601632901898221044945022464289234428897146252208188252844160235638665674305639031233950894243449229199109243015251886483568532239953354826424489281902068951978861331866881743801915066625649539401451925115712791190790053232911960818107176607485842822331927000887577917586573847052305795705064604257021783096387515091377044110444427286495831237677181034009797040031868565411270905694465797261314149574671970880114352896873887966932230610246985557459096711703566942686229114376049278188361029710044014282132275533634446112257583200531870840166990399138589229397968023252287775370160738373924345678584294092284350397193731122730838312933313997111782945724278744187217604127472975598170732623867494083863840144353679706285923664012774683829656874870329193360881564298461397518173571360595613617517139242550066818352957614542906617223991655454791543570008306685098444737576102343469203770079371546755951313224160804871489065508946582056088834104143429490799438517240600011677264954127480237575389001980355132188693367812451370428035606508496966150886304700699687298864583041224584162236404604410571464770762036143276273005098321057232955666037628086361698203114895669086492328344438589040994619991993272328999586651753015511436984190592939754623081793007005736445177451965960446041299794196249749654684478556297574347292574003227993354911908227165800162104157581449017081388976563232385526839379945525442218869654342249994110232269262877065637140627702161217184696615079174843133229976937995255713716641448392929498641903703057825553343044528400371920576879137408606777403883281239856480421222986687131466379002777550958504244587173132831913467958640768199924049977544151610917959818157358160932595332481281219001275530555958410281117069755395892167509961714918422546166582866294408116947130500979867454912839701067831336057346999905879545156267112880240511362585095293132185131603361974253627492433494010592305107882922141203239331778129797339950155076618484971310876575078036559967569656371520386124622851609004925816548624477616644985761439887919449152120210937869874557098909800101456500732181101228606282541401804761435623230269037405506639481113823851190666040778567448542533978902609435892438928891495643379523322214199620541783294116728393023365710176555838930014406804123877880412780276386722920208923436631225809169577749820946839046650856997902922865714477818849914403522226921562446167441942351042272270007893604281354999523720231445536842343985019905434670665355113590103072008524083384591087417211082957538176155851464273072596065781471615763701971751599162876154963652359658934841569617013374505135316010379192958039728661229956652360143912572308222651621538012060899298842367576974305386443566370713104977126366667244224810359525816121189676651641635905708100760966784113539943444437185790729425470033588118097006558556529851471642219908706843444682066484349218587102300666929088921952622048372382813915165197068539463761960646256995440840890162143066092550827021233650736095445497025258008145161489904605994046093511330670993908551082506766486175688231810685791523381781167503238766118932586997544638200758959321067595927507821834706336025101252292427339110812440084519199479327056701807152316003352196403025377979670980898029954937411488709698520059305660217664741231761658746944061294178721377451075902812033192575524061648430802550826758635107544420107464060566109269939874358964050866769042320967392909104509391296610981425213461942217681720554086194112098408747945022537189411068496856938120603485955077439975355862649781542968576441749694204820602841914954639873962462948931291895732163687046883433903144409858407511678502584832595633104223848815775317633311099955457753988671408250898667601931024436228036261499152945973371965829919557532443279789918253320579346882769027592108928834329139381742305212330123753559175502893486527558252980915003131146649090750514923173385756538512865398543070033952283771993584743089457043047999558189536390403638158693224955868556303889597054404120992501817659699190402415669469147819811005775929682207586140396504157783555950504557922194634572638145673024524482063798253392186125293408872573550116247041793982772308981352298627784992043337026533658569202456708492886339631815233292063388120568662060982829273734717317233016580003775452695163611839525948749443925574186804518412441302078448883226939059087699852437196549271205367413272997369479599960850308793679850773497289930997206186107993072612315089414716075747700877219668903579431084217916223845065247280043932429899017943759538499306007165156343547278234677145194150512640787251613272905503176485658121911179900364411359127278175207008681042196551124270499308309823585415656087424977855520220440658917948464086910632009865518570530932906210089615285750371350911343121962780440251821887751670285671957493404919850968970636039545564423575914560416114926761505301527356111734301909966789571471280236733501602736085191053540508348084682479945682717214578371755244700567161196761710015772679594552833754580304388587894367168206806274285129846502506937588867733450868248246132759289284855239468317416722481006701403174279123331914333074555324266178883581082971881663999448976163236723372252026653481379040709136930133212572982011308454306207821554891828462027835272524084638681466671935498132626657442530698736739870230695695577859329771163263341640933867181004341794686587247546252291696275901400823138594785598775262014841664247364444708593003745538762297665624123522797621564754888158968725763609660430584962495904671894762429530126291906989858630073589243991378568441107055250514532170062078084093241638613580680954206076179132179013424551205362715710671300726622525525574275653979739239101943223239788429100279111980901963148377523203151649884976721256965817904235529557356679727007561107798020814975690326648726674587873114916589304328221839895946753007442999247417783958268518304299014648897639118186447143550134302065495483811670665825803409185720363885635848331947884824509635827133208845277356177083207694959540372146324748881249718766400780409418822120453054136553244538634367416505086528422597696554148720231744234230796252111719446839324798473796053909092718964273157404180269488954235711924670878783205633648842175541917183332664189309300074296661001456561757865248221022982277669817363953457404984837403981944446101173505914882084525960919652437881410084536668612257871320311264617219530638976522621386043803660214681251996676252642499495558760106600124533012937548567980914642996009320254942020516869848395699639936847234766801050957276733362815751399092893155025560653060654321159593095888978261878154262265833803610416192000281969296822771084879471155896261937683289316582297659743539293886926761589950908779700762583824688175013571619411986510710361542759550499086755839820937805800510934557456465282228249881099439787043345715164088783143056918288224000058789382377153180615611407292203602569125084399244139541525940191626471380249881918034419519810379808756979637070548089885262267407049511710337029636718253989873134316874561641627035096392939578899612486358981246996627776168678540581899209062076775883649539075569982738910698748010549997472354365438285533422459421582088903570906431702924799592327581019114361440527116366622535545004089454386619873847071619328036944942471782933293723764669890381842428855369933812324827183672476459239555752554446974157063653270688514471548143284517690594186063429856884473128707719053302690382548060356836264023888423397125682111878882878618423387355642136964729863370151980546539118520153234830811336469605200118468980836474537715199908013806449616918993548207934525995921973112160772246036056853927274251155244720832517968090545857156804421978036935398029468648128718104791706020182046964285027671617012664044192112758474507683697821386790409581923085953191250052621095909835874523134992517375815689431679850675205736286253750406884354363882868973923617032212287089284354262028158387169228845231624682478560863133487180007364926828282577339624044551169817587343047492608388090371720477821653071737877709656768898155980678913385267584496691413403325562003071608269909399821839554447990166005803749458400580347397917679300245324860796378410100145729190795628302195470483956028274176818783344268853398569123819361440922442575778738594042875720707074716242336317698376611802930572284701672144409399386531301050587687474263853938432607391962311136943909217349416119650863034219998760129175180861772669340309980767577970714022406927084240089917927892578538482913758139517777416853294901834234090809704322381135293114573680487560042434189412888344461831661923891224812412811429997097747920705821573834590064537911890439549032317803326981968729144233247206303985718936028886879059707820936733154400218110643539751967266568744813885368110100712836161201303165468939117815243857876999140783760359330649255397692176764143613355674330744680979037050296824924907430424707796178744097819960905181019409695365542812365636414289896681547011216035693541328339304284730863676224627642104502419008202908004045725474672025368067523363628915610931952568675184551117489905219511796749463456169352373133246753617476020861782899581279506524475185941293302434826811559052194971113043696207372045460295083415650281293381855856410005342574144968645011410957999697869866539275248548279062052742408685064238751685878046837017838183825340860326653342021528487535930433164241222288575322872305346854427243446311705858154627849584680986323429878808706908822944508822387770368307555485992817824581885814814760077225150824087797805100133816323173837691960982716810503425329525196313115103869508216113696821824572650167540901589446725698536495710578418157751509287711534043859457395179331673143083014449661364922683002862068991096678494624424527013840634355392958960223984410344593617823332493654682251789873550535080172852983658260101765197966719984058516311425867497307862310598269169973352235450457674014990279183655417742942525829721248093382615866750253842712622569181729540357104790717553012291503078185301133393788248072693259010330364703504307173567995786485200397060289479277047130147783850636173591574606471187297458632177365942288118652738361221039044409426084957217221528281140879128590382283707400148906721663620688419046289182107477416139634749152655877029506284452197195522221865470509699127416370084567629724919368260745021415589360176825497293471323343413326248562830042113078451268112088089625430700629665683149075465845303125815588377521466023458188874753141575424599364753952167819101323555698999689232712280939198980675760551151120087091182196825489265215800759383615209114525241530314365630402041808035060875473585968236318586952483809844681585333745765089886274768152354452291766908927915654551964940900063460966828785223870172827661080331166111711716979881823521571508552125837453667210469280743099024525297989030459072845958491381438289907112669220310043337469031713216786768175227914052670160497130153028771462760152873273484394764575803273167805162586165682269376502903397238068710862681144735106174565816428094404168793297709618559699996690417634569979181425748746323277591078663097515015107655356620691601401589435804540122132919697753313421825943439506850751149798999988264016132929041761965291473440137457580599716416404287757842501777369240346017717908262021351399352130886547563374273538318292289006854373635300139140685286492847426499690009804303048050315814136887814179968342364741635147264100931826398044435261853553035801450312468101100113413454459918428350874224675769669721967917169994762836999392666574722033286061903466750221013052168589079700551077047448961921804923714273376580267919827214981231973011278542878728770193767825529472658158191150859121950115993193906456245604248645014425546851820816334437748963669966231453122577094600147594779462360725221120729961456165726240174049477733016277862979592095641844805205469760297708281070760488118982230607197714659111372571477379261462766446005795677621541750288753071105902342694086166895284834977145360048117854781285251177029617757476024540002252461561186392933855661071748261527301881249053430608217599023480726074717934766209343524700445833982966133065357586240247139092855737691511983252753413472423833820873495983291792347869671762169026315166952818749072380913347392944584671370456908678001048806809250625717191734796833182938617798828571200257745860499357999126186145391121808339081545998213682046237844318787079933801235487092801641708811509623116921459460342470686589404285877590314122882721995690058095284984971613394641725929801516434079801424042948082210617794359292016461358850305024332457579141369122763838824146239948206432075588488150034216252815838323573237567062882321341427782464997959948954697854616004545851992201913627029463672753088482140663055654551861383613944656540718345982116976428695157590961592208708667509895071345632966732464072701371989434518239220653762724001125578501240904937432828658090649769848318097129171201085003894918545713602491243283872025833504848907149500085955498296029845952599701085841359055835961497088176285604718089283532169884589441446969448251689573083850903860475282048992614016029141207689897118064294299174419829447371641368818851384641424595316465411420827527024503460761232145948521013298232309828457935506318077685135343810647179635804011241551700605335864121709439056559818561673142888739033197173682949491744953015711841323479022458920086165717763739974672761642756054772894841667452905279532274949322692651805865467462185614434511162348697892373309247491595383863358384028281616330826540825583081677973837901331105783831982295534929482925792596136028159528251819944441357877459500748523254483890411569767692084062641076549994264241171997089587885320179872109533449521557768847685423791220293451843837183482937395496280372387466527325118754282583829139545820967538528280929321303047768749143547854635720761774777685116646532592872256465625746043681264719394241664116558587371528555486516790618256130275095732634324327703617824388677002853761841646573958960185363334504625662701483013108357902875572973154037878561012895508937848360007378732450683395793142486841870486707659585576345812422007066806833034256251988796846711139822127816710782394725273490144031912362188791860500717302552206566629054120834323128083060379830930454358872147115840935991599603274460049600945735236633649998956418306042198925555370012764800220658219452073034662631644219757744910596279018243945225977405374150293760576723374778479548372038655423497190787493642919080902144571848495060958644084620960924575866675817109023888517403828528912412509429697053535185890288272763817972239708773510422940624656718096247440832835880128125397600225016625823589155609392481861674753441997231079555816946984082812118840268659096466254615117720408760758707487601620399561685778319088525404487407814026923855212959115217417100452588309281257313216435441717943995161709074866090180421975366819501444173625033229916262574174109411697296082683081687613847232588592431020939145392174543030912886932604491301494047480202932625200514946182826485294613374957062090568528949721601283629845343706891571981664343307315940777071048123790056051288763140970319072691587167681464688292800725505944228818617030920166829229784116917221697996489846910147675169135963147539041733115669589481448528851235748315593043016232732421134890505463644707776531637013866175345429099492061215988050524570893759503957097999875808259476816179847120945326612013316644393049573483228986133542207615564677441458295387562498603507436995620869469480981212931588495833518476828808530297707260991592410811612652714930543758562321060836111102685227000514199556011320392140234656181522102524237077310198795245937212126594524499697914728692725206802285509444565268837438985210351750035660162867210305149832712924612633592404657975163183611842896665141632720012118427433155123715051549147671819247143986845136081301376651555978336160729047616510420492288076560663388030665816939784679092736313605707771142950913636286966844356864264339043023079676594769540144295788023547323609653160512330385409033531210317654607490746360073271887587464324248658544551270671709504948556236458906603354480282378587023955352005639559840945870847014503414039890032057091534449461790949927671144040309626590524756188013722361122492901027795244853870290095646908273506456323699288958472495539783298546640873630323723198209136447173163996597680446431067223472688251990435205338287830430596217887848568335535479257109968885702426497677558142426692240514763768634165936102673783599468370701131993259242260478400066327973874196094726140024817991585449761132214573315222199033737103900533810274257046419425891888229038305263631434186109316202526333570048141513118524080110162128593770332018629341992330856757364484843816483757020938418847806146508982540766305857220135268239488893383746878394176303014724304209619999761352980481831749728981663816007857315580887351492680225869403110610718847647928517658758406991202847854608489977923001831210847782997596626742377232228579234522481587756145731118006184833288263894610790159699574650130085243365743594993735247941584235742463070255623886009477758338692428631625177047664358795007241373373952738015715933919146052478390701498888505754999548304786487613448771341602883131331226532771591470908362948239496346580230939534775765821594558535453601838813507500119476263473973960906266149095791186888917366912912235610449981262954885949239435095624595720896367507938694692460981754521108298786958260827746560244758197196091915824789849407473120028066949157496624449139277705507201239344519042644351187647526404558792901881609788855953004209109736809861614482832775785639868230641085110971651229550835265721901361930331480912043524407798064175584059501068818852220634214951817696950254850096678182165185891707954169328292126657527815183874707554321715721577928205944026145782187057226112410075423045180516330766648826696907533906633454559272195081704018200051726717233703036019047728410277540775671490358329868992786644271194052204293720460979960790453642935645460241146890553168738590728109476777699754174655758185596485049375092772565003542452915901496206271400062150123386087053087800129803310948939663349575580817573306935741675624623796250865471748268029635884605742724231926788626927140917670961229685782180366364777705133347360615087406140951159406732194695473916734134629759942576212174008078769193582277693604793987835546466778473474875948944483137287379712871431681188452807834131539516486784309582627609307336896881294045023807775254499825946809519402145291767095185080077402051377445446175543763609819263864953012067778746593925019470701539609164851465289287405398666517173706753213598715250851372716535250396662094460011669705175185186849433157457373954673506481916160286916598394201827663551339614517192834136740719029642446056760309990579451583016711148889014927811619436943266762035582301485905747921046025756583676205523555430907884889774115890270213098902796064478777423724654972296247906779048198177144232493123854387617818862666903571498879264942868058663266840971930018756454489940333905889909932638516127552836312753047268518181709062251150786448309822573814919974837992411563410184593308883330226717281377886393725289724639286281997470964949987756871761749296075936450904895008958309775700745537375105703151767805808372940117885937618247300358868105692532722375404518726649234079513943610355196753887373533295386097616749346316261815838083321870167131617443402598031476705553139703549842098062270162160724864639573826819646288087500049515659903738411354666346980269586885062868576821572242353832964556405457849802264207582650621261064380175952457188383507175373229243250660236447247029795012703189503907446833785665212355575913764953938047725167815294932726742719881261951213556914518338579350262062988310167293638117705263951066140322974277521748531449593001757323822395727141330861856506148931209358568824052250961153924290096486172415625303125841682570549037452269183458724492063184191291145638332037777307299862521603457036503972486039645934707119293000186850102393314974327438880060028059097156569581086400901934220634256199014766352151816477416029146639346976344539967947169761673928715797216145915683240151538895372454907932714750249992820146254177438911744202358663840512043455974407738993830702035307465741019172892714980291757193435047769868590614720341232023172263521044931228913366393997485938296847907623344112597794388247296003804551689727571290155477508273085984787480350390054858126114600045041778885097228989108039475814272453396485932924330260967445787119915282569235734112004362000295370496984765600590617432040723960842133263161939880521243849917739047735427116061853224421099275482973456656897677358708449278692208590987286490065808698433869733344074529786376426879292568456118961052889632973748818294353540604225068839495999965686514095187330233077494900069863423357139580554074447562304605314078508165403532701924317943047607095890154729332738455467103954202444613404196273009329177190661201690134001804224941458793904377779182890825176330991433800422470291123921040781038590862490907215139831462757513494287119790944107645354680865672299704888014842622845162539080534541315737206112534391856183366865708054347510964209394742836719984955274386314115730646324410533641521339961248560281347074752002694993533448539567119579785316306518095292833131683922388245094538314410181232451085362720720268419340820355485834218642027201782935343033251536602992981861163889568837012356231869379833565493222314868459734624855429310904785965409248989968395589016532929105333094643014835418186822474129018803110281577670118503116029395866921782498952335104504069373147442971405919209117993240566874745737835220502550483715608283809216946708213445175519551748740023816837826794447944397437161063608315719395903419674037562813025960451604934228202898064754389830334267025155281804419730244787221505028591495597510445720703318865802800504893716234290128760342038916306017722014428992924832782607610641366319930821680290156511529116147040174018025507045694708866067046545626735341443962493931973611071218472527026105884702845771055655027982730845414710168062278168004790288396049422212479631535022136459041590675429662661168533728692065470196372981937759731572054800162224763310521721424306152749733459422449161517407406947964193082315894070131349565707801624204044353587518639701717059149206829391418264010266821719649635184431522012068341505449844976946686916634523104717913764220761757769752446541056394745680867779228807469497962546033625258380109163470195712257575282441497591957564772866617699552204710221741816200388383141724063227686328645177719287695685550198620077316174749156744110457966660687306192484986820272335486588184728500999545836969834581113347206848505791071209239966391310605132214245036863333771144600762005081526608716104007166474201163258997394700934571917226719864415336231634637552416227949295762804860392269132078714037508450859369629305488604273917282802482920179228452048977002611890169544030284602576188397177952157126954176718375911885316195561213509708495161523660813853644265556067547331493725262194247535545261575344073931729731645345781330919237659527764506545880338711965683144876692874711706991840985451566109400367512604717767510175522799192176655854962002190538125748589622254010165035383094230428369379045691280562474090440179197223947834344985096808331044550280235384051497193175549982681339139567181671800661231240322041522777437056453707029020313973338329701444019199689830298944763792914827879913596781973476509752773617221675332922547403954169925854081316108554404784696497088993700476054750788755559970120024424585528234643253758015715179144702280897180776563100246743325163045870523402060880129526507168514499572118264230856795195140777870670540324242178770205860984896079934508961350850513003180812817501175221532751330763123488540012142513948193571111186291684461411093145477912595786785955025778869248358354607093743891475681687454208237979947839227167289869769080538011719680268879512484515939975990787993434283639409056570149128068930822477109465897103793935458573263577554063063321483997432069801286290241565587573430876837526928439308826912600750118300444961982391624378068923138172753577261284627735891382154637258831489563285071607427374415049453123430357427192982277739852146538430724500032612084359492882705756953103156420991546792320581683214886149759127136211320043065576571157387414231371652434566938204316390691365775178001380144287688250877311570853241817900195791560253386547604112532242655350074892297582518805932460198528617311177672283097043612587804447216634338580441154689011035733624195309173508879901851663960367874961487342390646624081761571382050362289758583768492850036903695734074494073107204749042483248024453523999019048038092080447425460030623965572590899728062742106843037907314542317694102697965840861942012029064326422753435526687575750710801396524228624348340500020863698927618835016502724612193011367078872900163402795064787288523464479079824653225151693641193165977038951980640965364252071730671196484348458659421962718206638883325147549112090052782119103205042188029018153506081244503001331158279049405940351675231287158080933036106716719493832906034099841592709587576906560970045958610023372654062675398173647884589300679297750890846976421690237713427438272100039041453373411382566892017519946065112343488785500281291676860638721570171650595632745829270290004481952272907139995996682508973019069953901277980114461748421553150396028126972493320947543813131051628102217442531491436818681158516523498785494574001393264703212023700568088806002831506745948130218799363534340592169088758770023765654464976489338077144661689973874324582035511414320552546504719925100679263825067171000732923140346296564435347119957308327530297563291125727186486399782979946287259807409869926228091933705326617830475748458261770367149405120080284039747907481190175426719356670981560106804089976249628353849785345379248191734856931491826849307512907364538295020879790452682505849864637635548512731153108305954730670087176117810713769600291175757258027193466828672861639583707241057539184857704520294385807448017004474265517902983937693232401893746848836299117266423192707329703934367674072532906636301038501870136191853220623172995877520916467259103113191445818124520281510873068816331613120618398302156867628696409354312101241829811869342932324395844782268397062064541807361326320721607417836244721736877524839683293596399382943277050523986436753361764658675792841486275656198485044742941376608520528736863095299404971298158148891181824265379170632110636515710985959215481687629475369861547938856489117017921335611938735321337580410489766434840813732913920338510198946508560675800864137215526328033291419211642101422472536688004740001696564834793222835559125423405108347256554910987853352998877866745847184810490364214615827920659174220836829433997888205323211020643559984501774470602867649142459387000973591506606630007631916796532316744512981616090154284905542417693848992289289455679152346488432226705510644857387457615138708344057737500558079751781239183359334884405988563722223702066826303723547126210279742954835965865575272756575673403046575349344805125995621878476925260883447360286557040301194075587900225521084988843330535732904671104708553846360287998036603663076487430408733425197811862736542694536622503692324324349134176137975428167353265023039014668970409142945782336741043523180859461618497420526657937770271316704742847875016100077348251155221071150758259792872602152973226977877883740377906102066003579401983154224920244082343864114637150929016883787288284112314657635430460496010472926386909938846001405688206779214578546039390975676395940756910724843249467680588755307881793021618869835469312715148614850705691952910876914132934854642102021431930150642832549301837075442916929522456316983320949997787464448794462124588442476201158867509113419629495320887672294520410166518936241520864927518484155975103583727917863197927671839054846473597870452288834849851613526097148096918445744221483645097042425468968464596456581010360530892548522143072366085747542127557076074767858701279911660207601734117342275062187413820184516301592165147427971131996511446259012034350073571941214556597768945570888035618226199393983274393596464346673331639510290637820501504959811806360662359135658340913970866893922274729245594767858375344144244718172167045581349581337644304723245589558452605098519794288403674434324387398116376490981851720652596124170055603799695602034907348201275627566281000476931446734719885439112877731164437549406675530486364783160482183560767058206525182872815313049274096320765455999057708943554953831594269178597397850940692637876461093264419276559341995851984271948166226565384649827380170458791520023004256011654929923354468721082807433606400161058191827436872354474266174347852838999449028585591129427977803233813961175342314057725178186482986768894054672922289817310479033785123769933231913179117256762801898038159043962945554779839351241999901850626558387564685135352915022173082982590486026535635933717383439888579527247067994460928033364714448521671025750783017139354586744427583017487526349816650742019563376043490318110084188520719920062377802444248952118524667732748836567823386025208161177619975130905518979392588048974514571126834603057241098560504896527071034202213715177816034985788454917208352624828659799135960545862218982432401235624054624588556122911193416205826077140888370625775144641160362639810280112451606850645687052850818933981198085406303591541687616391309927924680792034723886735117031578578169521150700073520714017418500872906153421737126404688486483677711964043015742614625106947956755464313161710875280859225120503417462191297185508507366379307285268694626937560419443211721548367676029452629452542478049369876650765448574054814264654494559018217277867513897517194947492017505580974383422646257766182415625081961162812739838633734615678232341630282926290378722642813031625401182605396990204565742103794071457867929007829963717876443075353574949087016585213855742580672069473192338624683863333821069211320326177927498333450595277857654628317947988402835698389643166981436819962404141710499619081186704781272228372874014267943580603018441912709230112799350089395801722672737100026446166282371795480405049356301293138636748935414354899078888373365258161320341007932613920096024790071155035645581105666131854965161679957308722122734997834734513074092936299074081340458456029223942882219315052536483461677395924524486260921971552144460439185697697437119688553161027859807975596139701521293390592940273674807025748774251885227371192408274070015321096057897525837032249585786796584961349185268467176660320054125305907249468670747482981713230365906185049094254005566569921096990206162319635051836003160761233475224359888201924825228731013503241108967776859390648308902657924652210841798511252361220904384699328771693362011356603764397403146023727531046697885415395683957350836891444681138585353858113191541391243763851851732314875740331214394847174783203912360095493630419405308140680452534191927916603150496897583074882205658952289250926675466986989414790467751769794066605930702480467522091940617022194968594774552675410990352384740803757592607140329333068866004913792765465741431132688399743204529071888309712128458580272562810922176409091106774464456044006805799449266313338278074424749849790485745048689012089739094492819140317542038166839296650897686900963065001607841933088133301661613598218201605122294250395776640391348976140567643849340351576252913907457034622585904623148975635623599019205498686202165998043894523234410239726815460061857941859064516375500485855211422380091883237284378081131653756953779593737863038112449485622374608138007340765216803698567725469844573786126080662677722409682330367930634715348507559249740410622053390479118093820016344957649306072326779501583203418090246637475176734390047939553239208376425867195010149360151063509237162196134545359385848604447527898134757991940127974969136011915369111445390195611610590522994062939940315876285883704876445265602938586594526297851314605166808638634267312083143464784603565482241501587545641146629587929183370542232313530275033265895792861429530264895848227516542178214804596470978081222539764221665330294128681133371573794260769334623416321144514591144219733094635911979825170729108745670944140527744398814062198239515515748451223697183071002796923732770068212849493060457975336792466270810496742182023299225526978583020630502605290683106291767807679034469775747197007192264757571620829891462433069865581733261623771150535990305956657042433850696221062108180171511766198006602537717599113850495241085699084433559288950682440940124575957116412046839248937323663938903032653809651628419235885646749835309472564125205391257087555736942072196406439276977284544353885634758902132397436633245406629534858108289631677116611742062025082618750178603002760662664049032839380857453631910513901024921721036964867924844663788408875512635745093300491201205093877024980029265928393694182602136515044627605274514640788400118860106230319238139503791637517344759564270206329225401589837633497928001642906142709366153398901858803947651090025121916943442803251885318599175699104446666592380776918777290343073689746539219825070492631538715865906616381796455584531806483991769452953126397804032007186762233175088797920506780423295813208098287425795055548053418315737615658262207860927277754435103946628291795854602594007818258496399627870272578669592495731552915340994023403118818647470490304080093406946468781039817911140626772821846533845169034138201343635913460808264373677695072402040874872591233223602646695999049475148214086339791521809753414239898359145445995305700581606019546286151415910955975691833913094001455166107734419957842454205731213824796494169163672458706543336370687387731160911153427882117924371261348615747891242156658072191030373630183259026580574332121135710754242034459604610619671414290105981967046364810460683141902138815208940330588206366843421782741610375432691947316511589797123291283254678785524828060104744588828159944928836698522542273264857582792058633016395703214562851995731650962821724138643485701276182039661088708468832624493905875263282454888861428892611175860872723871852494384547246125347222354792040829244256798473381700641134371799681942472159956050078151828740756017953854053705803290407474979499781580993470151003696013922849311308275026068140961217962359058775992562528102688875734785367863057888324722484629966983498496267870606511216917027001121165119065522345283501565619526184456643567702460335830443286226294573702923762267650496233419618961012403850344750328925928914102853977255762928689378977690624055205182738836934544923946580346488967753955837939214027490909710145180605364360191835162713884443815049498822427724802453202765245515722078171829834923874485302733963287391903705895718692858096808109849245115820278340654903312092964773627220873304295434454884204776736749115409412412650444635045909108684526066825824308240712970347507048405996881018159664617024608023317649649431914692934953444201892047959479012011600896311858043619697891717839563595585528273991544542286086868133521511342088330284314428856511990862599919905162074640194533277460690588227194378726854487306329690296126789188517627729489411835352247945782905535858056793017485976398218661167316550527187087501359108056787107905182399405491048344237585461194328857681947490144959779863250078722541675588026568503539601841052253629853484861319501016139842032525516868260991238556131026267010857535968485331501513012896839452445890907888583433927280888755399644469513944595291774786587372883759000538717985623776071409216140807509495516282752768061180820556281944272945275722721672485687758367344396604471713405874313939569150903791949812739754139654068184896304380900092298819254556352010148083888773512481669377090887299980102134382861221447293274268676943726108189100088490502101669239303138230339369235840254106509229613654247310263252718238862315770895225558982792886510172329901261428108159985735100398625819243610851749161582201872420133947855472485716132849758164596131256736840833361117059459448030457764300716654596656569208535477445687903808918283423189711830235596405665021517240332760467508386694747877354340043871499849481559434371354521971931092831962079479094659727359780689940966132910945334090702404666371898606627834906323942186296251152822203665088651679860723151693249895918739450262524322530287381383983748456649683637099409906075049966311210798152671986967664444796736338857216622211621372856864924372246881410439374923269838689738542726849476629247914445856857290683745588021620385442898295603947075664325624862434104862564327574590612012724467681990156405676859967367360437072044337183228640591530495570314890367201513340032415019682052220309800733451423647132058798456171312805535012577513686024573390988775095739833846949349307349237834037389976642324636649303570850903493767491440574161029181489296803800645456383838659040532399343767445596718940944337571861663975503544974974847896683694091302257795287622533311034234353114731975479800614028580730178627269999711178681824878955695578602296099173397128011709600859424964990667299929347753852081315717866269307545901687478951734478983023751172042565598798402978200639434963997924191990720286426947375416912832087370454135498589712490080587242899535587036390135545309061284788674548859233453512731228949149905981069502163721774709857092180996536075601674228316678029830681090839792627864207988995970230554998732627817348900207501318997816248778799611686185787024425285853214884930849941374619435406938588977473831551809544810040843712345454271636875622745346954775212146893380254876924298927156086733269662783946068404554380578423431470050670711928226028817668172795944958716986528220863318007886116989891255158186817928364507796435575831371992341288063105684089389439001212650874633291957503655974356203586442516817920693684152086738281157912299985450607366679263664019525931193655087890859698293559530104079947658466638967486271145680943847654895885689427235772940354348772381223087636022150992685921164627532274536979240291273677726750548635191664777840587900991239157879143851407165763253579605318590351581172447320359516881322831613188538181571870293007399449740110417793494878489631478852590231491891443689017378223786565096081060694501713732521717130598192263691904807014915797317406585660767960818150873133793201370793650216752461187898826324344576247890403456358458723734763663608597160552851656779847915138565988080474805313069372540008634275292046439210420600379941937688402284021305407277108978308502668863886068524428098821405803857900283046098242937441870817460683153286746599142069591718284681285870861910551390419433474366360913235444170213129533694943130501507973573935092206349544228093068085495537752724067159647350644214732011191242563526911997257697079534307149406706572934716885876709666010693917551937092784563181002776733034554535077859288062975086324079889642314114007607272651895289675716661976251510903090473268625803777728919882688332066878010347759522850874119285896329440705657939691262831642750608809207976917807129199608753693945737971121701186581191252766133332146685634688319360966967081872176792223185779185852025824956746551555575546505472175803430432590272734899278314263192355984444079601044251401076265245099974713488533022446769106092232161620975051949838347870921757857513476908997333814457105378192574264721077321263640030997812117689010224790283607377988593526422847693641631785787879772718612867951470730386209316461178845016072991830528536603775664683719600259788906009290079475639491890034969598535347850185744459906729342857027194437531196090147697910392966008114319127306849419611298965574526335740232666049040427492494237633364980571211599262692832888687422668685265707880269820937273537773157962098748873446120559832163858837062000578738575027794199342332353053632700373076094076325583366743757919126537315598884413522014676955757999784822024934047880078861451031287810944575666508523591268033229381022339167883939043694651996973948649513523181935770123853912067038025784259005036268300555889042093274721847156829455591226083984116852541728570808284220504012428496677693263550186216293482646841781489535612425460515393328496071511782898632178783477057517230092111090944863361658055567028235958774486043476714475916568520640335873000978316169250032518883682582658860320138790923306767983936773245011942644369379369235845522235201646241004037141654249757884300460877144527308003880144602434777262178018301306246347277121232596204518559972680951523448287098699277493625249478158608808838220764115065689162300026599464481375840002695249727322137224947887436779218630403574318444745700078227355416790977142690634950341838560036546395407979455858752388794312609105976324100176065409884317930197977379024086917699027617482777847369342393237989477223872227318816434877949259258126459898667227512010313407834390208827562929577844919678195838502877405306097159942038692666667003950501341200256186858084418774855423907650830422027264307603101268008929525675949635917060999632789129290856505634510763633290374667914765562821624427861968214282058711397452782756059723353382876666715750209943222194448075931907543044976943146557829031415635778670078911743284747369257909975546049932704144705622251914722438058305059437321784440337925657202617153493928427049209441083745409012128930334204723457326249890110217079572541956286877343003700269916864549925293263338142490694910658477034298473637083545194867796006990241165422002230655945949515139087117909928716201118809389608997952524383706102668054800457993609582282911104078058801176325285299919327937109472167327964458919595456956248179303769223870110293417698071319527664486005466071650423873302858200958840161211215627651347466847356896666926725774125245860250979899969132332980548920520248036065804807816413928427192448589170827984993138919999966821328966263929271826848777160919249410198774248660620354116531671259129409786792403203517075012606664412521630196551601292321647478089678430766565530120581735928690124475406890413974475405621733478632943906305072153646255847467353072757957981617734840488951088458622686655198883245029283553219987532011882159761390483656553446072587809728122659652260022677183337692560662765930606830924743621707057199126133266283562577816546321114143354642348300926578384209614369540248066104012632002313362145270642001495161731825986448168765920957377234973689199188524499620056478856428159635646373556322712509541112293504267824645334125073539426423142369339514841721173069830318712431605856463749250652112063638392048025717362547575223603533577428696829654543000282744761238738601816073911809101363072725152456610453715911408312433828410923094606370971652322282288017793195691255067164499889744132970421671636651175626971814506807396179111441403702088300733318877045309383378060888865860519008945931978585202469094103701104492002827921123934872481896395132228935142993711777754552550720586069272611071113435069462250367866936584690655618020354982896099918577705680572306903518777219011753184952167448195069111180612748266582578456182207532389020156573428380037770241426375347802225844174795183804064334253259904423090012657188831520350036242881461152892047094749423772809205429847567551605190864458760362138633082955419258309764624180885802539312772420095589242529285465824714310373292917006550997108424499366864354072612118893659490175296837875839555112136935914733733483680979778662989080692362126218011324502087589929138092059101931193600701513393238532874186044852685115926424338853328433693746785395952571665913028334317335023034507241402524683454729070580341236729502786886337445015433313746344829660195536317191301753601404783818209091570394243455078926246067084499530276172373586808470033882887118933404829739016470079189207985966224764968303200445864166891369968383801940350032995095747040729638773047738618951800067717096401049067747757929963469987080489223943102141338164923738692843150099943427638339679945439784087756944679545495772485514370694035600950976077191639783129326747123850124493641472160124190099925151405956263688161842086844186226846445683521864470976174041152352930181597054811898343126700079114691663637592355171483296889373783329858618009084109682299915528982633321867717623606899881270944564025656089094016866913370538862352894343956695549145098956743593411050629198115695223910651801927912180785013152039278664607334697542104647690481303459383625580386443194556051238505070877380421455243394025240396988059318668989543935734894367198668664183827240775638711183408709281776420700592409078030996494110433205850110063767780550412581698469859357063635591744945085702973930870599172894001709636457255108368803341913028522208008088478804917803497348404704774098086821375415632866695760600241877265196374587781500852651930827063562975556569299324397591298667631980684868147013668375183136691593581249029335506023394162986887847755953674141078520714537251446878965927401047954949228849023039582651660110912529631048846209445909910091116659055483836224654891406022595034749680391832035220716251487526990769862415188434645238868634270765375548236729751681165077719876561998099940912160019223739862153570267034114956466741891928170743596209887067942053770360737737475253407379423411176398378576760133216326076950550150789208594758030382856652860000992282174613167051743829569448671170389934002407948323659846342767270883260479671831217829758734860923449092548655639350952475092945783598641478181422449346276834929288317262932143381141991123135481387541695573219440600548007001943844442920038267314538120279032871884823619687458456568089911014284743018577789276273182213250142151557387382987070792353209178714066902973676286623938345951159141171487625024827944187078202100033377403713543837883322933636147517860917311351395317327975933476562609118668051771715049633086274621870326571480491293626983809011853088860771571784218344048129879555894061332129796228217533070735655484111473013906869309920026472030128897489234840801739473532954088694871811548690860985673280243101804578352449562053180253721289981833498322963014521777403116207233460792855195066894927739193725002580761147360514107501896143281677841695025261551627491983877493518576469256250340612287583499506412080872357648251113847769936190384703363600906843391216227095968112702312622053448163535936211235549485311156758064957131915689241829340700536053561755493171344604728856078285298444078393509962387790479023362872434974676703756016434190526533462099937565990918635102480165060714746382748550573347926417332483196622112576498248018138266216391605902872693555328890847659079447172511802971061863931593731160168789819744869269061625764505244993655750363895697059112458835752973337571464027185921093343003412433786647193485119217368215484721388018709714379958180727887844016418886936406567191840507340864035257992145200609285150703120022245700632549491885440616594252878733845116776749105204295946320235215453967596116145797058476760830665257554938443781775895506942378353632717353752332535142207761900399863276634941131498907346610743339575303840461967661247706193241559758233570261019562249582342090373286353731446431437693041963164639298555525307548475831031441056672394977448774073912921598423067310765271717651452031762095912287042215734279239635394704477815840610882124650467814486049350424881800671247774733293678799739113996268122453133316374466690825983421659478939771687335603766987690049912219790474790987688376895991671622207398937034237830276526198622843718197506262402326688571403990895928138311409137895778153480218577848747203566509700932278811619152984507458031158160138551313109070401240049029916730760504312215037551340769480487851055057101109598133310860224628352010475668017097070232715253781826463540336869581898516330235373833229229084579794661093837659561426484060879493220143373694571251999475945314530441310368792167483745695809117417070412073264644274850287273447678253052316529328060734293029461285365674816262219991543703178990190848752677946108842167789200261801257996966852471016608410194535117080330026034887367300734663031864390524031287176908917617466357729140779975501349665506159600776668612033706351622937894737357622554069724604111709208666542053706492680938682515705334521545638509817912983083965945768985534785861242664211882910974478526424828935761612766507377673006066399158715542786192202567598122457416490984519068479978269687056879225378352172519439802246656468106855878407634778875163179862555198178452266166369895366847332910000594942375980703394182295260161554480149544466522185535745737122040714733807249839743250643318270799995105802554241648045163075467687324571229313322774161266224868837398671288171958280538671090436750784204525696558831700448623229401447948194940428350292465854826301007058522342448527120446469799967656378134291025096271440769733352135703144777837239128964276142347805047598116551072932616120149944448491884989432655974311496801662141185092863207574388104935641693745426289927918492652806555279781769176290217782294900072350733668942414060383180257700296678632222233221352522871894495004705121958276500620282290971719872424775385440551283973895477980713954417765720710846498435996143210241797928431344437493248314609357453123825235839062062288508238035793165704783738335247973358312579872541695680723321562362665842326569961179861980904122232895465673400825893976049989952473847380542460331607623847935519770038150770452781147877550311544074465795061613869945942914848563440076631639566904825712133703716063388208036599713928522655060528202820182847996772546237464722469510797067991348106033697248697572070391649553882243456614944871223036295673517686664010504510640655082294668178510756961481933578282540929453068785613404455136605180557373661794351381611889833394603848871292168246299736580086550183596715706582132884577566960731948992140039971375064065924761644754828262058184712292683610674213532997478162730898065941709080666654384565477025926888835387400548192328545058952053726247996415192866649873524632644112582402472893759570284354254929152613389962538752425712990058477159139912273358858290479352323505558871829281635937662944365193723867372070436312348384073204357756574154265577888766751429319180595492208719826243301942798411598283928625576644141060828212045956484111973732766641569858227100029187698648675872191605077057863776825593942053040466629597606311463833638878557996653421213812105000996236692898108422136414409419119541891480193556291488241113176485580369213652166021904182649216172524601185909543223194573276286066666089776678670619019156212230967726728329422648910342782959371865986806307553754032572790472102272311948461981975029708110563174126764743626196443619037944835333159231369823997713434297372417107805448155568393513908776537726790639961229660171876112861617949226550431470093075275559378970215044556887209460326240474276470392445142286543488004035914156293518942458501873009553808082028744950106175890906055589137612584478850102927948020107997851723974411513195570406219964740710910164492793755219845588641392656890826598868155548421283459432345911786108572342225817970265850984463530890130832730002907611536251853785807456842192142610500474224967207528573332845174941672866124084459014502607541991617579269932924610018936943376823702894072191715958698965401283336766343919441807805187663621693723655418528209139540960681351720212666872602682289026493113059589205032282161838941998182346307548203669151510068073184526320630088181883938640049888328353036714672259585465685209015753900045510778314944608885950492775190931628458745509925728651948626977514139729809745049231060222945603669153456110516456475742238823201180721564389638696990140820158560296154366118367576853236607173926932790412030715610755867790085638099334881734722138822317805861661001469882069039513276038209357125143855892154851582135170574592237705675267085117413205732824261626765616724378056813578345209572439682598313702645297942942363076508275559984816281805418502203761098618899011524884611472531582130042250120660894945585085372577443520009034734015457035007668751642243440308142926331957174382226614576675987342629912503535563672028396564707861368581406196335255633626868396515244028755891680771798843767500752924014865288955803654367812505268854670808962325172143316417293760369314321537153547296743620828901645841554065726419105590524655025941787044663107171055804080084153650990092967178763591472733983581106053080580239768099978603511153710052869526143943980555424323551776350681892392919304680469643034332385616399892798290830039141906545354979101199788708682629157019920232423912693386492335364023541936290281788741580310862334492841938733854080946978611748466663267725114426846658237656009083268264123134698937772477175742345152616788116332899460559015808415057058159186833610048776333198814940239134473997209203604094853776372991254666471180754749557387073955082960775157451817852122501636590661580205349444921831250315643018398660571853675492037941492153367867138276757938384521613779768388957473885759263424045733498930654270250920284877748762861700223985310760475459842583940207037558444457274730518749361077890267183428903428030177547228943735574240924579382783910439175189314027589361493059978537346925683857957025832854739439706447793277009273792473805849497737793684316437296484953176852575597708474377987022204618810799796687355340904751896544753615212458120833866268355163940831194674921669758553312541771690638289075972872789714431881427346547374972022601041149523809941533188272586204789623586260125474920618199014464181392832476677546671005999213480356895350537439768856779994179254635717815717619182737469124933593644327098951586487519155306856680376662289674237159368066652351537928044465875988453624529762706130899362901598494411023341953455280289669397494962595656519703648411324372921626733081928206506065831617124764251930420223532968278961550150481214058101272008013105140469600485878417393298959079270281684116921009955674695206631912026159981300013239244542558953110157799956127897091274959732228631458584616672909556967826514790240244059561006325115695423803549725226735280484337930700532550399121225063675663816129724821480323603460762221112261716707849368022804518864544717999740305495070993850015924991966201329415547755655639476631870300655913356232733678954315196225144373869405448066159484641561598790997575495108464226654916521960588884085996801519964483335133896054339301495102188123335697695839422883689877706736897120938064172540667568346638202965891809910370208820526801629348484626627398987926629978595845412225753241479831303501913009594346590739840326206084929698531124400068199764897145335947480326029278954813206815338838829223284736713437082192454518126309431045389933202170300486876295984712540634987106526596032217380409244566475142822290735599535523143143893316161757316698171155334414933801457196874350470352232253035820167138582905504116750764086979341921461296343904049286851522419124382716801531901110561696758092545383428586417995444148977375136780336568648684893312742710844665926693272429793949922098555980158569564790385114265194969462335016780060044145477909737277939717231725561062982456202068331331554476665882508663924407492460603112210461148336404303976016346966511949332339560257942837954606076353123821812444034707999763273930830071713754311295013545467197911701718662538788965727535832292146105498017000612534882565477514283132795045444012203498090797321997811081853085768959606571089668702030556660725910932179677105978225695486208685381518805572045712642929343663340606088830696803473355436896205415165858022059086082700003674269902330558562984410784597094514163958807938496095058097184890090769883808779974697907189852934434245069101298445092046692405048811709079609886656420892647550745335320522680434575420860803424707562626937049557768723040569840081434559876817906630822280652616797384658465789789275325039206101990459188664256167566766729095917638410208424460305250869881564336822142312442923187329819193451454547357614742185449177382408863843066552866552018840018054656129743885446379636303671375393470426202092384444436887027464991816649632641945297127009464185484282613806503680854566165899941022768885291261754431303800542418531395527387224349324374537971424090487443969457929133355117975487896501675668214923918064364540476626526042780357432978630257002190892688654459067312690889096054966278619542777629858939405493351048917582163419688308729988676108861556842343562550893027115978991522536696769100090423840456246774203638483903214195572725571953196841208518505591551556224423311764765566131371943490353605932688215576148829304085108758362607062064735331538358703961792037369199284018078231544472203804605900014264619657466499412556258631545984400725035260912095810026222300075042974685072822628765144077088171978821973139430993688752794725923316618196454355370496161001037975877138872417775055151498427790878985141574336183786067755270283978587174125413716633191541885954350867629258405589941850711939902344635417841852798579801717416924127006394453121377444928777616983736507801573051442262599777143872894971441528688599460506295012126247723246550632108929782271487326784417593015639076626349595970520476784008577391840064373707628317056169709699365545958092499180779832546491090840758415224307036143989123282706433117902350078546745167896040286732112155593774935724602220316630104365554801952684057188839502731499196493657344905529942101986196609419682695928833266544373092681915393310873774800415729958217014495674531610515560191808968159335258887434129945361998493880404810545499277949010253880855849486030710246576845793072889218146637239685714810222335954732066406462884897506307416366278854028970557240688731104952532089875262120072739054146191460528852642768659755875349719241080227551124206198868780988405005181280965381328207401833893090941351841915160464418918117410855727515843665798140970290831879182480041826416489152064501840752234747641964014594979099955261031727703120775308037673419331985768770134408110969137116875494562325913289297047794180147347037492113364415374779151333032305462124632639884963527902003100489422299862730794053336364954244375767866759559644289015307920351487936347094882882166208976003930489853450543447669279324217007074187941155517262813366764800943511342016056445280226000298092387854423056055226503693252701175821623147436083757024970949472175227663208934141067865485122966264899958211287108510053003673173821115079338320190269252350263197627370464855898593404201951938768247060195351562251489199877575887767691906914003740673268982238758368713031565187592153501157143918404886350799211826633888919013494066413488936017713216549859059646384531808336563681565862950856672630855061022981525665261790928627530093640630350988973982266853198520207459651685120394221342134720789973890104104346766391821821952910777462503562444910066298403725310293173252537734455542700106652359102746727480482428183382872208095783530889708365701471277424525391028680472375837822744904382177146039962339023381973937078968672742837289835169259944242485238010469254708903407397479033535867966452784224983729900731173647858314818611391050880387091784464196056747680094716538347269824323375893309048123219262044606588735424498246705996648326067412134358794122195935583520082643963337710065605338871107792425677339225499543010174457455669724270920927786530263498529969975384561240706972667038822436007164864971204573058937913415100298453990544844919537365828912347902468488034058526194413265322761521343211110134249809329646344766967710593026662590431047836554746507198415795747678152586520135401233714552025506312458452234011771690146473866473516888969179003614679817981848106386613544364959139819285563444391835214778193897253565964117876490674090506690944898340664298197281060522855404125856880444364712494103922489813577798676907672088537434943964427392105614668076018339474567605878055197431090758664651122123209553605717121036818159078617210657053971896256339200569990322628098496296825835805828325595665196144204047983589984100184610808393255700030151656417304852285628143416174220073215065790193324081742362008349637213278712755742487210425861825747573323393160021540316216687107798036837349802808846468556321711167262061240747808301951400846211385362429090027268608996370608496449426970486953043021694972413373656009287603588060165602827922360445879101009190222509868490083554204775728728521375692782542101049971856187260612893053397874479552600789929044350398199255979534898282705823591807628115527827895522002521377146952152527511174537469124420815580502668144623246741260075425184442110232619187449317715461419978152984555177111071606285667963941707131740415958855795021271339118140295906154571138974123340468332206883538114509312048458331604025550891891674466226466249678727140908643132465070849829021695771702102886169744616485489926494130888799202614973624645857292385473751908381474274761880236259560963372511150880064529427684043913668929880030148996944837814649699409871097579837588927766582677235235972510386185464209114845080346133694973520071622298339278298153779340441274739577802426302769327601922519595502728406403059671944999308654206120197326381234822436997109258947903721804396901045363178106360858923012586100077556781854446785101364111441800405388944517269812160769708306165816892227396999275146868928767594055601018886863512569005003283020430329003830900753217910515604078635446924466734459444963448393454657183348906077504171001475868441030685944165030071984125543381702260475877309828511718145497948562312640849690472189540645349269380485073098590474197093387844714717280862436895042967706149739169082669375019647774879973600322074739822659768014991387934641877286029467421480152145445802685749622325800003467527582526254613435242145033771760471993612429123875506369782825407741687059110176868722475685968803997685531511219848195954620321286329693918821547474380610895202666150825139513207290825217822620052927565805992090065553336297955620683946874033108331280386237355972700334246229366382971171651001055738709549669336780745926424688262604587188909304535772869611277331635618215643181503341142140092867526967362111397585786094180064968804751418202224675130484916466079558809116059147906371971642397970907928642467186744422337392453467607855620084834781621246835225860458629522694020763390363525143703814164896945242924382853166671720692156410466553578022267604341793273462566250581239503158487920324203687008382615903937915185144567827218001498971629976883655107962152371771164590843330761685720715328494338126736535007450816738604604524580186046133876487095652873742263622412573548586059896869718478523515101484402164235841019718799862651931751510049874040213477573077936680883355083427124516419355966435785508377979679405908983003099158855456208141219890065062337479461815996973550246632408922259408790687007411200641239000213676701904335580850480460590419206107120172419477548838687447140779585253403985351272635177641712031534280244198056691955992496208367030099636755581147317561094818246239502925812946057653693893203113324738348486967205975022518271416161949956892811105258379971612380289080376598657240283527135362479733402716225282078561378804642106238666468827240607607700061930591680388565907402694308663628448265090171122246496370493532084167306453402936222812281015916283802349438613377574941887688263171404166970543863169195651020932697272698706659299082581671575436663065826580111424337033109350254484839295771453604014878075348608097658798594723886923743473671149468745791941821982702783304566519603448436169962155572436806419590878695453266403390394662599660086979991022200058020160039530088599766112804514298673145539391066857823808599247078532281679352888550804776759466701867316811997821417458633524691284473148400594463014392844685860844171798653553729488926894584265209254366482930556325808175418206508149979322335565322927687655937777074099820252911667062597920890106073386366078645248634537860485660614296774816557916926716095262978072669403905816232250592363242484784576758920273510717443590889475484040682441466509105999541703805779628726179738398862600559259102163778392459235862511632216676853208273206145681968718074491557898014710953938467881043932741964980963074364256735673536873139570896464038624034955014666166855068143082542157464424038270678563612236833629133772852955959194892638743297631552205674125536628139331371843623713515985251064369559377668976645986599459905937402957731212695789266668346800221908259438291069763453672587164333294636880721910650558590121934669861989042750794828090306385691302101554640622184446323378639961793043281539268486355050346592066282997499005011169771159224192276101851115703876398300408091408126442828577202260735149684417399414258809634953800412972542227276599879500875225031145318718949833931974954673128394949530716242157072596030504197065279546266241856991693414740659334843312053326663383935422878877610724637476251171559701456949446805050936307069798220605987678954295483484842499931759823079727694051337058738674510965670007748995046864084417126693639314357728236347010128303334917872184140152905540572647895348370716952160635824048540018767673030669146000457851838057134669230948999633078998568442625969451969402517861170485797822356874489536003587914345166836206479339737161604603607113012098566330380697387659070185876941608838080394435102224243451661113738537706970494931354473636954373241212429732941391924560888222317601010309191778030322169248627658119895720423555445770604314198530390680220264076611004469194127348838704723387885225805272393082362831680795049753823911763219453946564215254969845730803125808197410430136146574829817998600193153963378969709382503172130135989625366099037258370796654214395578269521090418252404972674407220518559982259408459094067069168935919078509129917394886276084394733633042427675071477752921517111361707842081430413202203282475918667592287174591375239506956600274270588501236928663320271681883470684893745402700306619262594298272018342988298998915330233033593331032981109462456383659067446238735141309906348972253027352576330700372813785388147017451833704181386038183676283919573277988375530923610108091876206603043144799688984869289264573866308950137991652438141966185097320645601289828126222378536105467174361290660650113901729052044631843716749798211373290428998383715112353842007439211931040228628157754863818634907278150173272667060555161289354056081785868317787574734049015751180304875875018060985880925974815711360617606237769207825452167327011851921509195642899575398384472332450641366362437929642494484379620432936642674456497604665149248748213001781460933150071464553516731774850612075242394102897496508202283318053769368956338262046984907950744753170154121848821412665440260345545709780889223341615239505630987940634663856271423662211153739666119729278071877443352081244347927002198677313366590821147569199203454352651943796653506512281580837676463091237261809117784720934068100905971725619633278657983963709516692837094378686106261432995525792627233416170976621701911772387332481404070038821999548120268939863056005691287639084662141285253621381819246064350102646677136506532032119855931352523972210304378923770847424351024429918633549246026116883573936379932069275868426348546694697945394822797102512970559683570693564442089408196348523251686947318190533171683395048647449593668117113245119930617705924279237504160402485879637562889333155835569906139227131542164495026494380999171646593599342773206932388476698597297723975580360400141056126854981893907769150642780882607710714368869747087206808771852626605602949433915329231471735120493816141930656040939093107272568686645420029134641564199271493408215901781269331570963773969710980152713802531238785135769090981191568699271109560100475444102101087468194834052681267731684101591623838153138452938285074980855417376686668009795241432466514536947737722447624613173648477552588077641077307502191285116056432426674773349592635125561752721467491606503959132108595034793865061445701250636030148653244678257023229443651262566043083961775304802710421859641483830468182859001366223642441176829838713943881296627556793938280753240562901796500666421201646656345943587725409768880829711419206499619578409136016838927616293103249755174081591449818225410325405954846172892823430953394539019423351054338006081058219056438797296464096648313248926950905421293142654735407475749627430031553786480458056000704497342091607893307936788784592470248708584615248619074095926566514023695612885792260412169787562071553038352216883890656649597696671827295968907737753632681566506262693401744295569929698841524211406749116201017898747670548266768940421491629728311162902019391043136866731725109434090751613599353606798893544398076728578373936731136281124662734282682791522949223084760887523403599791059205114432333479669970035680609920572891297221160926228986344734541101053909287767102737862593741801883052704141051082491225871555309912377133273845409043016886894271075845167331136591450559944024519343795408298034801686230478015570194538689336100022453256955290378287626775484948044647245858333147082154669953189918699976269689882112667947586150149145519083628421223361105891373438163296911902536958025951209430184483688150814870990994294844039264912783038517478394443592818500082026561830979529576779313896433705542364612374869555541601883054722244686247662255402271718902710801101377336677009267593630325419023077183578100815740454640083652743450929396119437021060566231307474046489477326092394426060848248635645571056188507518790100212269510176188033226476954824245976048369814515550596358806844341219883471556454433210472260719825608633229417888695428792799394721114012626139964551939732330994920804584099261638648597197377594732594491362901320830916136121529086796934987782631761592903705111646401147215212438018567331491752957243112799139551926815864022268537735565594322107674717579970160748019918072172017116169306464103761761415816137947456893789929187375498704219713154258541819093016583046356603748648241236611364134782131167751794485065315638432544709984636446777143435405794209144686803427204264775322661626151798607842548575108425286160741233131975065323526258515227897810956754145604204941188653941593965799218875508660358739513336561437130521899562240017467445448387433535819560992936494542742318716448374647432937560324800544379819696256352409417941567572759631736216315284027818228670387020130785075873826641438628850879077248526991191781493466703315690472879901298414129188603745905696769530664841418849748143082930625090227489883198256954485286751230488445020194844525714394725343079553106493888410684670070898789369865969499243059361416311537927348419306042629745545698908673776082835221629965971495214418353280720510801238052564309869290690243864982877631078543983783217741781838366512792787655421392953400081604153892522431968895392839709255129948949421437448905188790508903941064844116097937462439126531923781563389791171214729728175112332591504036228326430840031971992427862231625869107138034319849980112338228810022968907157537963677743585682428780562153604209163155684375499498249239419864739161362899585908684289635552829436449357390221997037129959211777247193015165497257692869572412458842614505699071529805576100859192046972510958518439992100506204204109449104738386710511671057949939629705766612908688841503993735454235811694210826591974953073060076226604312737889035394593028940345350874314241256723613703793177503129730568826060573213667289810730940235284498130320169042726595185972795894488088719927485853445257856951604335009289967846026560355621091861401807763835002317431534967703381109898862396165008141600886150225895819902533671406004740164900945240683663395562306503072290180990972131941897375614489806324440719487687204103773847491442222650945544698191474208380496422136430942023867481978605282446825304836048547206626851105112171352355437733117205599600083161203885780010396697523036786644679157507786555604387616708623167046550207985751615284305243095060774185919724276163266921360457308745021799881730935074237708422716625851263415000188112172434688944999065584905258213401120224031043059682690037222611804155315100234403143470038364638351139872720972806568213045225333691978526024018909267374492316788310244235393023846366269413869026617225582574090506697649517740591824106866220767566601346379027881478167474571629272534543037279693384837723646477454359348506778238753743567763339062902952909246403796244538450146230901125356837944168491359361772702750004795603689453070283678910912607592855333871395303149617024813212046071545590781877317099307246107112078848740095652701568417115816712304703901077385958022331511617535155967661372744841142752241979863832714071687637553263917440320196903763340628808329707027355158363774305103572892342977372582732348412984357641777029368479454332916676084293414546804297648095303355450017704876587022047414175034230434459143262920610346678363219738869681106825781396637470325908992800338891352015050262362382826529027003414274756787284977876344830556099378160955945040333706800323351414833711468270848466246416822355410552866342193175212944494991123879898397653188361794501123818097886854354263099902996128021610157481823496876769552919546538220065274380998567379803153145882109956859339361419099596362685249314025245695083289230439162882875580367942617936802834379562259345646434268160800756356604035757950381549604093187349050195208049304181272739393508173842968733055185213796614415524844672929709685678133902785797374211759366022173516178269483326879422552583524814488156683564057689722047452871175914067926220195633460986096059722829632861787798812976778768493474563105581920798765390946596017195531359846414067484619868705469218322644744573006761510135357196378418420222524223828648582616473771750828831648064394078121496969402779862852651523585092468464259864347676819384323569467095850653554561625096955200653056170908522167770565179614152226509102918375237726562688335373582500707549325627891175912946674141079554005238832051284601145300187677434107132610175258438672601121254226377835599570825792060537472095503954051933632650506444406405957140752851410290765016401729694878171794599555531871265276354226342738008363430430800215449388012752850492044925861467622070708339200918496916543053428518542262755722921300168231238447711795952468735529504393060160851255334190435053254571082607011434955366561622955144206393861281262133386441720443045376214327339054274512028162644110875933159914889502077567628420597965306214130486164697539780247385376537087444719491966907190637324203289417995957980492528454574184025081278261520490200904956381902527520533843270090203443810754836398612895769649633915005556841959488135062156123550771094650499565970745214741556262456153912940518572986451646549884471342259048509744969060124741111750991311993022408426258904526218543105147745430345316136338132324251124253651870081575310373272739823213149653287507110472901272521890756579941389383827306340182231945904714013743604728875556069566414437473822074306223819013523085751227980463671757645706105025709013223053264287641822192628336951851843358917010315835190998966416316434864353360632418220716560594805245445454291649897320950159790058169666715919528853380020351896926252803094097099423409033237602394164760867523348665335227477651671958616713672977588690686275378726355558901360766287402800921904771824192149375754832856690560749431549451320048615706632624998779246807242070363975145350939718618988609359129484977886543344183511853912334032112679045799781008745881759346187728989198146340715759653978712751008988826644061878633184447097662886407682157877695643612189704948672188414401365787981816192740417770092537344634562433870093195399061245744099264616335410095310429315054892742882892295717408711454484822126249582708761588382184163711217080266145782299121570613331395425637631428295237431352580058134322636554891477239960891190570339837610871078003811271114055163902010627152467637576939594343437387473823720004646783821293446621533866010226843864274829903572214070020301126958331450502037446427236721992493905858735242280658259271701893447070167066124671748540471522085921414007392139808401577986030328780488598259602625044830932461347095963988044458271669764324761309237830492061290951545541081453837480845311366664311580089044723039550735178312219358217764462374445459928652816656930304285240903124788501141620024010934367890976805783387320607930295468226635260289579315651646197115471303113403254078544623140175177466931578218740564384923510605156190781829212654489157267572627283699545683100100935308844746811197655117810233750422153184320391978545624459966860528498960333849600103953798231403550138132404937857640053476427914526196792583921151076039376352226678888109457495231008587245458263499197217896811132864996215129805968664480482166146134642797854622058113531416765008959421951125168398735323842460311386209591108215067243928438559027571674916938812634880217326681413804711363211402241447663343909862775642730741067746061588820667374779927871435993370403552011377938385559306058277035202237802455969422772438896121500616875035819868556458673507399270316387221434984488641234012933061403201073583926579662685166554309023939346960329623169991901616690135101671478573066569093089648273081303233134502918842669986745792932666702343186432749254640243291103719064444474894637193566164980497646507259518337985604809985862933068627111877486977915157732923387188214474802712817673560566475853381233292744496447956955795131538115325034694269265482225606626981130070423177884916807963177180769743546346296027143643544521249180181533235524833841855134933598499610945009615075520646391489780382257630619936609110331962738135857385100402551747353388764866963202034962323505166730773675445104620073310605755210889935888238169451956378023520089807680288784675430743629476444505974087379615543445918342081617332273554594838714147246392381389538044038935973966652543506256772195066375909792787464097552379755549876530752791049365183640325295272641279027743298463645755448968437126307889107256326042548828645267842855952415724116470897920280234195854454424862629966108020548549291962899743882077566886297844481065585014166128608592378949477340799478101160679057095823116820024887659459354560682652734728535123689125779349358832976561809672077624903163105871065990382806069916759303944046273933062719561742991892142833459481700692591421965116616910097025492925925786792317961474957802707822528693420938276853047528685665550264419220408880835243941427549525219701821224445980787094396999607590810285674731024723568413668480498506272196772033452297036503272574396127660822407035077572598246931551170249375364238178789107131123687298518243696445293917229779821158849258310460816192079778838138879108497732549945377357271695993877670198441058702916209230650699608190237372033123155537946876382824918886008527118330797094893985138084091598732870208938495889624082113161708854707739488141426869943388249867053227619234338158213779378276671409141170457723431523389196137573363793931495695753211092061791402210845846074770928343730137960945926915601432992538711206948341468108865310044160737705183571693585016162698005441393364343165796686133163435297719445669076275277061940301566999554803259338665816940669944397067137202083238333224355963641179117914090525333952013434978869028903254384697175103397809568298419892247440014279938188119826027410384062938642255427954505684850470670640575607783642884410809905918327765637576020267953788001501274153899868092793383427778128171357299160480590109757945589223136106134516456294125960571540661455739334086122931478767968578702170590990064473101355877478837913960993934156890597950429226198008464732218978748946183909353337911186479702273912074375692951248100706393589790526268102506824736235799729460310249431564045954710872310446393187341077782003968852333854381592195352824966355533623443699746783452027004011955829863387410442264590999164058313002222606322652578851464888964935306381886163778461012233040596097878123934797753928332954749288683862816091950833709284591532017080035845613527890595524478781571249116409140426041641904101713692332443213716881622676299302646105948369988684102946447518039949433820829405973603565276010497316337421926035584678783288836389923977553461933963776347150474337141840453936082924731991936041421853856499901670874966507503576420789027012208514753998710557097440635671951190214920209991271681952856995242456129587979760426530149418263581987275975458520377543782498477619180541279210550943682147980075024847437811156189366791353620921133665685959671120201125198528243607700626906607198003584017862416618840190363563621875986583485315969602479860537125096768414582607418223652500000178365396313246233350927144249949932891028955789243608001805409467103212304107503156887027851830881672603834950343034095264820474624181327020056785520800520425907940934871287659623009102677540888747097235079929925526635656988954875516676776289557660326002188608310474796731379495002295671498117551764630577590136577755495087322342617660410843488497650847067814282035023297947360230594830195589402728520080918727705198792189043090893611315047746453049700466723936013457239002350862122729135281643929530716319946531456136275115336673046778315616550683053668377107446861504544597186922688544298011023259790422416201296610157956091601157616629499727960146521486598310072653735021487009234778385319198245268516488794106079643792654074339335670616914347355559652631445293061642519400147412876207765039555738062747329169706324481900577783820892724135037219653582189424803894427819960101033899869731485763908440063826862143544439993996030483439525616135328795705667005140505861556010163784235425995487597964254017334567184553830660198227041156053787481159384774224211496738948618287478066925939352038718861186015643740446732138086736323709248645966905274223886487305866836746071064598356461690414121013765146555434679035201741750334238831756112319403716714214854295932953819106373251886273113969297631822134390878054843937350600241647707116999676229874317926819266183689687561427558541729559098343671526316125096462224864783570356120005718633506250270501521699885740448785891174135258131176446619628283042200967878576744502576863352364160136724689641897865997768819855433013302895386318131206760083019127721029289905435029721084010349381651810179359926736122222314915962953050556220793459494480283681302127574338931093954381940802777950496544231109856893501464218015937800087973094459164199398100275814726970730315598021125444102010235885672322433942569377166105429142307469307051862678223104200666754662475629010023324276879124554153412661429374063037266740583265062428477909197376394844720354971517320709139820690156142683545086698667925750701242363907309769223943137641424496935146559629902951379380354140668042595253479861986104566135410025545523656662685887145220732996029064727164737041187898651650481764849928660919210437446395542736790823137576738945205094704479896332727413567302571407057168919663296574632110667554409979302024374377810165697226331487658162897874216698275888994937366436711679684164760390615123401815541875134795839002197292227216746222540471386022490326938968167406460306673686212679003608961426945872863574304749491421552254049573443208856716735860314245865880941580202486369415156115409093541516305774502834308887778217652797559511235114761784511661298526111866444298203267099957618576332287379989532735454381198304135181720050434879006384037587725117884081395311930413455146207141099678249224332846197834044630604601985887824300785523695624169025819208719917232062683253136261898285685296171944843690201667644491232944831683860584686828592364705566522707875165688547044982476255781268282037786687884956566574443225700023401115597955390553117571987455467260847809906468616895562588306565502178830859359607849326128568066607848833620124063139634812647122326258272946175777242409424973039463572354742933652814347876898322899987101125466570611707458225501243950850144984241205228764369552666976022402548520774164777046629365469752899246904499984245992795765014495949337572244717239972110090527323353763438290018265811786879013631407018931313227432935243674588468782234687888859485097988205483672657946343145680176309791184061272270986171332528380402151798358086127842830065746562601800658632437354163006669908339516601200924993136358188776396588597009603692104912198185587624500861949364924854307237332780654135995669707526001672561880119283375659944540422539786644718325121811775149133578224650399164140455720960534374666683672310194659363729412393431742707326378254646287861333444153666015045811262873467258622333308493593084555895312514555524661213421474871562732945884947725174554157324051968220691569628708513194942543038006514331967652614489299043901830707524026190752725875718035798599402613319260418550267280045308493858456963687251809308373217458024280997141437853793289886980595099471290715037797332431634388636047226078360424260364880629893041042116105109648254902021324116061148919724291405329586339865772926466630978969794330727540997975559410995882028906164770381664136288176768689716443486562099828391175891986389869090647809330413161622580689883030690140604959741816173750760235159014472663743953512962293414360602203130284945604885046085780142689570172341858718729925360688666159899949358253099919847618116690038093399819305089819009422751865386998457167562211642102791469148788108688064186254520190382807548868581020946110096957829045850438916155313720620579443489454972232153641890943177202935131985031995683098378533295734418658023447960901405893318149482192585259671858791040973598500059352647290413036106709331462724322703483434415044841911131822549458186275194821319188583948055727770210657516885361252872116849203159659881326472815475597153129309237883996361821120967899815175805352223922733582144261163726556799990931367795153552821514422988331099220084102387976904430122203438463154409805068562949287205665678951287226999584968487750340946002521629063415448557843763943860575395243697716394096932041886195986714905299094202090786050008023450418229753746081551565579782461804353905836573660072972618322039223173912803054725580024715362512350095130164129170649209862041892373902591500788276030043663422398143388267868503757815473165861424582154580159755626032878812200368820326737390657054171474998865373928721745471616016923286375895834105789411877720082163961538908486347560071983071723318052900383264924745635642390925571367186890731623006220320956886665363014491209204971820870141405802561586482759375623329397216045760172588045588619634313642276783329215861569177677532994432373512829582649717434699071022688816661317168653827574987470004957054682165308822825746059757293344209254747648846071757120480559869198349899673182861061614201559916110784459206696241552345686984243386363670858751543889016640335960386072508753596059428785649160164179097603961258731400889489055474419972153058567040652185920751306171084229994375886927831675575140816086970172589781326346637970378378254612158419657043357953297913865541912843815936669534666594317633194014926107055402277801877699343510197887104361328626951362668192809214341391770528921976102844827227142810297934762352871743386668536906566504754856200129852818776462779988001484099997885014422507794126270395932609318886628928082581514520955272496024522954660539481586129188682158653354249504123208297440559711593120663007610842977492661197397710310155514221707570473586577293762482802708144043365063182800284762593968826654159426632496241722796771537919798126973243088048171402525212981255904513441096903184975683675183062800850145804625675258687590668064414972334228695584407745229854955610750837561702118119526620346743539551914187225877834196186860331501519344819019969581637993456571082910203912025330609381766554129326341490864804702435918448109460734569570748723916798114223113617023539246900129733981037134977868397157919558727150724202186426060914295685377876264449905077733093618634374033641589386070851535387058733710459919624044485315411454574268752452324978465960550354610156150642256712099039159748147890704432499435640704216251450237080000790279148136684483009892282267312862035673392365085840296522290636245154338912857586472627864216183855069463656479813896913807562096704000551027885577251285578453092849605956928255205615450318889322752390752732466922356004461375598129995073385239328146133561806990485832528240259826535100067492544789074185352174175966671968290946923144890254624546815026861751445740314648005093537481111262312519379430150964307323824412983225832113300100368089069941211556842977989680024265874328747565698324143678602650121143039310610242173815511451499098193758214041950410672141189337786279141277024938616175604381272696771900885196782266815373411429189827421997836944691242125879575804547130272264117448440280803461648193238369273051880360303360312741066160079424464099169634595714497495874740033086962432682569731576722663814503667666460462129163688381254113097178880515764353599738881320805297395531260032260018832065688182055572610673872962895739504281806574399995241891953301033307659123718222574526536696415457132423871026670665666859690324102308598925982408479235744369933031300806389077913177309175108535402214475667278272390955810764621272586581669103611308710228320113404012550951521601093427615473981541490152542016455367655610941321724275840917871065331855377399661315649099761310098055491527314401453181315021774496845369765898077066944351078522861937057310945992435479026020010309515967470210949032262016651739694828688840766224869366472477557049681008744751484616363422491896636017007703361039687264444198149148653033424955977361627051207613680646661555973392430915053886229183437789463802336714518230255627262339616116950692661403491274042034534040259670977150996313461254872318341007210091160207345088182915909315119574953570173148236448669191373709745533368460061268231157971888537068793922007239800013373434752036053473739222413924357671575346393069054995209449212602547373808785124853753222690904012762174853396654567101654900380418897078999878881018981950347819027492883567251345874915994137626263219737363327740760839435580540836217546381056585805234033200826817054364406221356162417043218966600866827905409623242316024801910954430743833574863921148208420448502725367798962754949110266801958825262525619287586893121846837318123431914326629274050521229522102936260277059127924189264413671743019101128744089116475800457438432104062055571453856594555876505741482122950706721219667040361325995210910945869892858240561614049163991126301774161905248572806697861237735661996131066766764424191759630849904149274224507058219656885590503662693846151118253210169886007700439020039273150097186883431736003522604241865562605722706214774137421277820660412221546440606668491141023452461687391068268609805597116984788236138334089839741552867994456313483029155310744707976215647908716039396928682460842573730997141319206920883959062481267603151027480414053736850973682496695036973153078670598070112324643725869872831464588393563735646420626535451894653212977737695332612685187854691001172675652788962236512677794020714101123055281885087179634382950009593253171023177828731276614700602791757977424056106319908118924315028357373785378593436817678684262540449381882796041780124266005769188100651315896698579664190469319067353994383528947552443740656706753939164223011538405889856652955603693935023116407265528348824882934720052771658777773232440842152951795486912346409275001527982122355802798601075998107418294279250536035859821370373050695274145481471894953991324047803781326276572969187437651870961792302237332924244631183451152525161075830450382920033860701471910371174820176971269376644984094643850327019904360767232805471980294265250553593121157690368479098509364626293283793206736646601100471699029306078552403668979538544439202416487323019072405186653738170942471998969478086633520100920621647098866079678278308675136048229199792498941588287333775665259633310728609112941436367691948704993323724789697782937485674540602615978884315239441717675314046224861823882039045999623382342270989873863342914642519865413674453926062230354831878876541367029478174736586424514508240463346064074409117197201799932022818102605665316432036761403119443322079184111645222945345654992455905696599094414538556515988269733055159142874933134776989481802212565456733243274048193153101435826792307713103328985160836492252063495884892871231961950042430898381236945530289045838471465630179166600624535019284287930466531804410880774646561305808290532916337151386360436285479362508347322487003971017990556923180972597705674059308072217472338143706110781953399832569499931022957738825994085915168096916258962591743570036616291819464743574726694646214537193451076053492425405530805410783345437840862650761853242983804907884768508765160365718548549924211835881861097182980915053968264610574906191464796587063785941161088210570501769646088691681094268415026972788375310491598153093476737041747360182100568150806945882271369399767483814526936107562630035006055132831469796072559528680253798235331609247822405299216642596117129875798450005837736934196653668884763050728385493365074319442008189834398011086289985366071382086423160533759430420231039405787252300015573606416311493739814780013980662607827669402498401040906675904293964805017384318795742493205580165947796726475940343939325076865464358800570543261479073126966915055810740348913965567661799715989446068574052270083886650805254351502879772172573691351959211852722036586436512877198182968736868508480920218857330875893664399079708849359476580873614014810636564048588999505294918296101542793506075264649159397656508984695050178818372061069864916646976356458406245968997899674905735200081446977924537227323626957313145868143670747441313287378715531062048596311021273870709239832404967503271571509452278990476720659391770266036678854087751106956153583131641309147653824902340839599638136402843356326167782922969161010198433689774084553612239060701729603544980904832343216813952005211977450661789812544336810461799903094539636015586398296826069031938181444676020878342635620110408167104161419705571908923501645334131082171122695773265459955012891882499785459289253864620636391019108232774051752356408079365494003110730331185177527155151808269411874155265823345567388794925614599873719898110605408007960243319031588321358389500726412745307974933596350681191720744582953153123274944504137157086260920565436068059883196723032717635000330456829567652409552801540639438277409140046517619876459457647890691994158864483064352901263577033711383196261850116567083258461682607071475007509975761994196725731144821790331466134934467894304387096866181144092231851321008443396802703425651876828148525301601165482164602961382347224810625567639181498346687226389411645834525422303310832273813333053292632849179117744299672303118589901813462478578646191305787013545870214567787518598434326285540205338204398123610253799350538678563541512030036573982205956566799127431678039810266334428346792662350688593334492723028099639244395756343114979059630245717828880671763419607446579915478938900125574381276655244238639715293280080561341810493900949335238433318128443136017211893835257358426415036864540698632526434797197441273532213030006677898483600139400005099031928195346803434066197946448494424329495548824066070617993484886101647138768542071767533008298758037434338842890042795488607619213841059134107604327598849850352951905486744760611445167639907544777761145315742449280378691873372215159949955794164762590517608549564642596594123481665686255589640052424831851798557513782825533487297611582160155232235229811959050571477449092903016798425041246816944266944997863330910594411744335516892466811162180788547149351091450416137455477345871831843487249920723723746089861502164139661951992715757851665101674433302293029525090819666799249184854826312889417322332892536074921536950568531994612949593535468807549456016310693978935151218857444516208378166836959059990664347710158216155447740666153778101751884516898339573055916893076153273997836801350079403096346967700945946937910094130616396481154354603647187143113730096355749662108663644380815050147939794046414680990526084711983173329041537564783277580982773816153168805942156715295885483912297429830231173720049479573983769961491940318845978941549754617528336969750968680649683718008274552329644210367722087216923126267652400782270687562355858598449775167042305195923747205614893639031839095970167263199173793152525360761830807278560493900559195770739198892621995584324006877699007253022847142198186112403377890744532608541018631033122993365517266500206495655664900689159896553949000925419587773905240026994675994021541980081765056856813025636021922823667005355684056977194563597378930704012028901157769747136235943849076711730672794895408626562606894220968922264688523470468449072485114318236441621160532942337264721945311918469618174306048189845998531055063757917890125027585717904128405868238960319569634238864989437053567323851127673912511285300735124399779325009236043740593760822361367455688408143534649427638558517402631014850762637346704547019482273099067502057315757293994228262406229104436099266329821785690600811666549917674779955625678953432368756408654788104388215915985549629250678256434748343944869127892011316135843593146748642753596773338542856128356439912747359445287297808997797128758987147773692845570833336044846617967961578187090496217033753038787674587570656467574604337138438734035210360553544854544019861272140196001493206106191477877820386419261529878290928906364714547945076879899386417240772222521693320621111978486733365207816729652560246613690889472040834030591900546851173174694371020081052091874420846713268424090461093058549740422341791536893735317543993445741428091142353965704097831169255585235796588481110587418182264809613242582571938860096213614978753345204167494038577200431829091813915575042457464941984265674243017135550463958533293320467661471793910441266530785915911618595915697888494999748683846197205150171105115696916611025646499809601894861111474577445944093141316597635810526085018277572022027374215325476507343598521273315435929988756635689120659235271212749254800152508455936757880718416034146735944871040265883989148235168164595746207535662094835289894086933652365709728068546343942665981988420438022899124230501140710687554280721161064419783898373018674919142715762424857992085669613823502197048035646629671059196091639003845651545678711464519672251755553274090258857261193729565904543337139960527137448827772847896287794555252513988937217219034622594172215285216233138924218192865769148685444587340777126517624088657461126508660839957702008926638610718363114140007230512180453489320526924596428752470937637998903163455618757601675479573967857077437498708390551608709669955324900105247819374691213502721187395601792592525010738487611067985899347527000024119126986409622094300293665577342326876179347601223811008844622199466168146675798875799860807693770687085957921836372311722734129127281116621000163257792868443224418566245505867619083706163530181616197228214976268075914834025476961146436258974987329839732191015211434526207685585640126622123257656132048339391538251183162683527166564261890483950602593968707855157532715682567762865763024364901426446031264394415038373305374323153985646896769836749894253562495797951956007985807446164544357044282155128093480672257162367790721839123070837449603655120410655009962670137792028721760901531476154639978784856633418531205704643812457995290519745564911563460167823812811022478529511307930147215883360189925394774905991557876249641674286633593295222334355581767906879026643742761676593715201029759406754652600536733172281915353585516847772344197413433619503759396350485249802903495479762974085494768736750478289402104478906758551600120247938098361698064032741432285986952468465854200040088466532883521827669302614259029935364516392293193164541365567440219216480676973218319171502270722865665109312143965625220152875844305644681507174366871269403796810837999188523577806828881916237431826246734389266031410902407537679868959001256807007965681023613085085036076729090829604189173464776309156796403070491634619971614764142401344796203896101068986309033729667547695869745981562852027463436328139868467708966988477139587867338825886994224467458864567769450452960166367090161365217472066274569243824702453258320294787666230861737362560192513454876695147353224582168056613748042481730275390755895520705757982139771770197596064121472245683775692487099478219667135764455406278654620297566864069034600683720702463409524562199680322801854655113903210945526861422549594495189392529998068587534357997867540050817808917782021603169279941876991586881105576087859975214784227283308415865952036451898041006064529825040471441189980099740662818075917938072077975674371414398667695440748666381432147915633529425575616564883697972563108044447310029046631242973297540912652260698518052047937834999665379158665905179144435940467023840209771689314300498872850357419897186763649821872881995575051363882723505882069715610493381566499768404509333382994134668953982122911905584204730530568256383089909888018391359979704409558360901831062191980934869848428627805637046627587303066057645822490464557645599614541171434247524311359219285114143348087078075867650468896598066491352925082445272564188145717049385541054137878233732382292632298630005558008822297233831454953960366744185943465840703537455645715159697815795673630147446150218406143604912147828409928800848893226911858399866689396499937551941452229660302284153156873518953914362114950571784389356219797651210759492478723321452558401646279158482063366855088722825830199299165500946549933864835057254562243332885682598646909129846121274503825932332380870356135545457417192482567132793678248427613750130067557726655227377815195194909780511163096937857291568351365714836950241357375557719003909632923486000302482541115473785030319329091549906841065838505672978975906398897164817072517975155808924327730898248908986838548774200929363389836625572279242658671336553588212130802089814047534564454221449760105545416256301875251850563068391560012680127353247569592757230478974879355891172203812111502896240445514717160752472145166629001272332233635018704334399530682393513992162015333907481635073995094377610348967013373558055426734634386141790734161468945919061679115895676850312501397433242665797695050570449987885626125506657682447902157688037996988014613492365189433574435659397938991480808035586572050906648502913760701036397822215359818635090614656817966389085278583094820112363261062773242802371604792579823586390682882215874285026834593693789355611285068684947566112763592546038131228909154937164321313116026165207699846764006363801693043002051905742604971290672943578593575287674233210631027279429694311040093217428436229405145203960898980370630984070638046891453189832224906576416651169347280830416862060112298493805269933969241791629087408089208801606379277295100089841543482368094281720221904107026888142409987725551323468711022062777977863580857157126321120945165668959673506424746460943120017226023618695113855908341831000576804300582875514847468265399760924686085607866527747937229504629739178016333888113097517536377767417355182847489690920849605508170951387414319438209589028129399034865626544469848460894938877186596532697875343976667301894990986316230463748605138615724687526064697933838078429492461206060860671978800090247767630985497002136561403997375137379524604604332658600871707181346633989485691690223328848891058400162850201100095004869270748793709399258202256152236690145980845820647998810108661663232847991534754839687040199879418682528729513300329180565156752556752834525171659339133747309812078215535723524412149054381264908619722071638249376229351821618266295661655633180958419191338925208243738822317377813718107346298109606832192932182411990415854090817838317810719397072687547411389977106070852784441298937358267005842136514971427228963123937178456457448993294485061710782181276626381844050310115061020372828298749059983399796229047814262356288433447923107716775595719768955819402083393183963059071813228270379306399677869269772244789495891343735857371447882504332237339834171791633193968066344969747391445571449477163690697496332195916258644908214061441019932416441479337375643101564165993590240575920862713054993626748952728772774364310949146449347834392715184824746913656743650894982799243646217684049281261227265805058297838689686617373389551802954080871220390446326871152001312930708979727199011731837499784436679593627926315728217242024827451936681148025384456447416876179161489317933006511346801929588921912329784420576450850174273743074198038664939362220037724467734296910650574825476094708922744521807135240643298121914711619198520183448464484922978825618169176614778583304746996154719364523044234422189952214122469612887673809223710639181663458747527449427514189784639824625824008237514595940217649817688481135895368256491785223457633877210622264375689784778134116485785392796806381563970471497683392932889828277587513858525600592877167272551270230777965710231087370231162557364991662273975071696352896285422400188470308299417729975078059675666043707416764331680195378244792935956734627868027705791751984967213026809311581779065705099559174843357733123805893182777582213536661443089610609063055058818636073024595200612450243168744970926696867582133808667962435778377501853918221598958121052273971469252395684401851312628525639333337606553990949825265556877505934495852897331670077332423204718310306913326955884374286847014371451476632267039092697993577869051548898512090975209400899076315480367065640616514280377048877932048541061758773290490564358467708344356067389213091713486025542122650984508423334432957023080424524894978815403382893274815383158418367902306116208336037722586154622426794721398776773846154421549580167001235912186721078657665717764278284058993119154564918285229478104510062020629937552023621597020375479294313189899326167130125145122688542103901366823299085211975134642529667808194129751611806042481101663566206289439940059624185596192368032999003862229578054695338825854815917424233097555052884883527488884382539435263647975774376650523683537090062772056826642831674073695246239445956229039136403475261179869151506397790563116339452850087814914826826789967291975934550896422921993826889164424986177715541480997472082962339752808752543933649124336410836723140208781221719288194410619518287006837825712120432014381563435279283048248180918043360748505003560949414550667672378929683904261897414717455668637860984579208206766189057207742661998655157640320886499717657141861059440829583940559706631240249035580086053032046235043810389579379058714694106305890912707005339804634391122521739778031394104362866682957349700775363396191607475218828539198307507699912803669754895142743922463556557670677411287366025002733771903858426346713641884005171692584993121076311614193218327242986087366341083879696227705135084725843497273960437774950576008446094867339371425314838643775230088461917953713825931459007847283286906072198180847002593537746722618289291750296479750071032418170861089718260454614931490777624152457719545278394633586340627752452080207137396132223228483287253453991187194048685879648089734127476263690643734849139893681631505642037066661400407778064917681234457325087006128002165105866310712222259839033106092250128093672097878057463320496502068237486347895317765426940147217818758221912568064351668963255658451008850182438731604089232147705139382406600875479265731175130518949234351140504389439883583340138688723272019333572973434545604862603749680880707362869189046559506221747089813320206302013044309534428328991476062942021210388560045436558535845006720702388933768873783804312385498555776969224860129166725940119819065330374937554298349929201872935249218238520377582812559816146967204790035445430630068084227344630581131143250616697400822989451156929889399948748805879953582509845845226146520133753981503550134348592190089898279619312263528059269189351402698165683539889196310813107483302216063326018815744022023573456220570598097576344537772279873024681818646742703367775032315169865081683026652355877645442744533929319165578550557391557071847935432443795735750778032354322553893528705954497949973257492243729870908657731036919352130085585830041543045412329000852246383894398028549405314624685755389593473812213112810113460592584806943259278533038525862683653113770878200770685319239955864148689302737696035375819482503479900074989717407648587744307021554409524990067511999994527911498221336402195810736194363379406777254530195140681816559907775459436752395358145127171217299815857964261034324200187289725748083479120487770181705496384781741615116996592683597499425672868326482489552284188043071281310853066129679528190186017666269257253072075510079691543926218075620544817596807401714840121852588965853599420673931049968937260511666535537815506259695634333806600466721600362769609711224168861833294625621834181893665443185936229495824837081325932353559048553789832306653300964860376262900728854549307904624682542573520237535767286609456613867379195948492147362935827299541924862198105530979454187490852402024242665597857419358259510392502342989921213833384594275538670435786826463478469156978071279188093595110799440767740995612181078066019565236029658941492522039327260791784015020727691278456954426903049281971381017104909086462646775585219226400221991148886984658679711375773156813614002254929844529362156836570731486334227141007436614542637175261478664274719286183547260012597791915682250191904109264785684725760099136896616159992362838003679999567011476388601566605629112707487774186146484005496651295081804722345057973023062593846230424291851008768420392390026308051252705093028442723501603128178024955804601814231536604048461925945074882583190845137116884587665180458632333607334917405410819973507658983433780042190955855108174085031239589800425193694190717427625660808035842611141682609619001246258170203276912769960745574140993374195982256867164755174156579782971972894594573568596225802661009365584803654666522047029599452316792913934235436799169721955873113709633915531284491032954374393394648058824985000419625889609960342464078505198108670352746517428159666826678423845616010878512895753115335390317824293306031198297900818403137132453824314532686437144401577005557597791737497985737063680880444453376006026141428919969295968667161012970853192126752201880725021722112662469286671792000436024064545940550006569648929663297954475652475379920117309318116079988126976078396963456774936909061230150668715600298921945548987162131946719553534825887539586400252615219326205605943047470516810518082483581598331806914393736371974573290756982999875415188578945769268377166438730579144326718453009643188443497301930840354767582672016620611740017997466910195104939850689139869378115107151723482823352768031331935213570848877497443320104471921277284305940400003601597571844211784803977199374580890168267441465977356856579807296713186116338194165922670828682835575399441512842280127137557498337003229135203709403884457578019095981707036461688087703860359050979946552044213222460646090245806817437331513974723912084593840198936288886953086332630952128300141533951412556406250433978077866000759014217109546710797117929945428752153826426504621441466402185613698875766352276487519924161192863359692698214596146183516020549041948099749784539360567617994288893902962285803152784881783775088266613869132692828959311167262694452113593637471890246791064362129597128713545018096358015737286472560165825172793192655196668392184024600710168695419498484889850885315234607166556464239524382886490325101439966568435999998977554195299973664492392775534141097428171973946049088911938202546748572686273025359310800741186557558554041024879916616439061517274798829213011107324941822981739336565004335290758287997117328626326503001626883810051949809371665273237594843415260589893475762739345738993885230442116224616356133483741654015498420347339460187879855088867023800685188548275673538380387207374965681558523338799060651003067344460049044863433660499781061358398577382175210174450197788704310853735957143030399512496690520792740929715494581983604283355884126328855259148521331981665884581064419595411937255589795112245697593877098623715740238660739206080256407888072026651936471466393283355660422873720194004887405475986961002989013419428461083762553834000793396698604220593603030894211729669100769181621427540069661493713285281728620255463798626401593249953390351668384299280076470844550357893887603858937075863044457348248026467955385589202822600126210586864757263473192545781907223922534641916802018726276726656050942529888660297734214387639167132197308466626570719279539497452417865898793144122503841499839485945801915826931424152269126294285544345949799701472278861296333436054107435248117913793810487895859529778267157119165932602652940093357788794906137004386596683484014740250126455011540416394189208133916954519395040327508791936705309028982641048777301668860206652005803023358310424763162166367891070301473454095134159428746376539479564166027007824024221249749695911664889952095934098696580040516608200359222829361887271033989652020034445556152293479665511815812785974194506607727447280611507964491130517724564344922535234114255698682981333020092996842024316203193453867943938716295965877502958757519202639567132869097860183908511551998471100325443214961024487978649006167307976270161116608946155964657019848611816203445422582572949243539426633816475619548827008531858675255459390320607284667281221296278668689154392971975315207028975077025542520330979832082312660796185957312476946037671709471439263387550052845891450250949826771580345589175705161085814871642501295543682467551175448947562136304106268954795362913601872263542290014962865016819991563515176430999748505425118896662470935937929573868442370227290519219332639589966510760436592414197167480697434013793296542068459573727892186184444612693412683407610953660382341876753670372565173432131674313905563458393026972162653874380400642906070552513564295594441572820179875356770596676054474799424040829261135803344444951439558130187441900729631047414247085355748870198648355977786615912698102301222655290595871536232390349793086430758290231520763205080816449656430639726697300289338136074503365028430924996167859100226559399049697904090686758320725948150004393075707801324659448681182967888173986614430613753385482370737669014509649374769922261901502426836699520107880238885756386259503154024722917588106556278738945597548062918979026124425296727887561872801874812298669521402593454666617260016737856656813709453532325832848170888114086772757537205745673757462085690402604802544979317507882616495487448777572584878473456783381768754489638357440409722156196524579347403454895176726859100072016055141476349112693026719787258750417350847640380143962443942820306120329500463997632188071116313600870654869699201166012946791268540495055346510742951026046551526212827726994978935062222887866716085865980345466915669583381928922385339530739927464242704251067478388048553805282213899038379547534929639166812067036380208318492901578237066252817494409204650534253104853398640922157600519261451111972494285573898245277153050560776006103303260831545709597811069847858974517785683888483095802442977328475385848804454853303876282358605806386523362362767551309526358039859070627756119406924418785422843080080883740833525221259718743829907921596523984171503438418467645908760994020001318301111046759486238481394382543249720876648276441602049535457762687978711941767613899824179257191541047052333458102959846163771996683299247289882117887902057581113953783189563461266497480352353779357789537206011399220009324643707462215236258559613741825363741197353399429423996798893812716955795260763928508278194807404097488828117759391001024427421803570265225604713033992102273628487379997352807101742929371852593054591436933827530337514590441428053497902413639779151629995819620949658637735425019102463367106930440385307723609330140848309690894383760172445046816825956589136487583786572291836308106613362967036216990366865060420972000640678758428339516531399559647836866307090279141446621893249960771807772619576012992848362732103608070447172446510131060621485432501772173771596870982463234785420038039300363499150932394882361813554868748734660366207183740733278429887398270345395477246852327306091915131194754315422899973125120150022657887030100367261226182766186158078207220610524692901637493068456935422779071856731866512415681175482803678573352056984939931977202214471792448875330855123502671705768403727895920293482340175346590904615278539244661030081008961666513279241244206048121644240378480297915034157491628738309064349130482906602308042138733567876660300994004650481513966372925564929903430364493670457062826835617253775005869627764964252789056862708127856578352875211381565678724034600176499099997637045716135458783853738963496842889041365703773156879857780016280186755211772886006595532125208887460455697144482544408216178003846830379620102676516621802350084561601288111966928203277456587993916828319198096108967491584018625528727958233488057013873155160191234451049477773234646428648996146794650557472427904330571935786598374632618936160053665010742536757895901172126183795745679216359259721915986192230772244283377686156783049224401085509302551254060878017090599604825978088320899685345523688514980397426767503866110964958649780914199670581141630423883717290026840212058882294947616266383937725954459360369022130619203423915136154155100657515601701436392583371664395319775698631030038735735236015716826752688123602652201589999695704409061933139322274903519596643404393144254208158080800580274631141318949222396585080183240084281949107831393955846890952141058960868282919496871126916693917314466740179872757542904134613565001365414652730349239654552156879591188960063504431597656407696304063423588256941897983605300303975139782144243499543649996631857791482452994433971798897882930048306600668635294349617412786811786586030060996413534609957741357714338739096989425385451442696753014966121580146389345842110294716683194043172532118600543487724444789285627494097278845189353912634599950838390868455371804515764879203801086153411839605854161749778248032642460766349057743728601300870255206497723426794391480089828729747898828226426008643691351606121313399683521689450586464372588335720689273636877013944473637724472318641150252606284001964603868848951127394963521962096068182922154215552983630640200373927193063820596755641293614488426906814888020837438284737861483578873386160508727081370783678900745548479570494826521363863403067882200947661417526128005979094063360421633595340472004330509406525584738890063740813360760892530292071119035412572691669970678971914630695981293586184196000921900682830130799683398605209592603424715182632915483113131741921030191929461471924101542122145128893251466434944066817880480390887024394541057511358632629777947599858142685364569684345629321270876443711881347276999142750543985869549613894316731510253409996281302696265098504945204860722913258769852199181680745718053635217751639290114062510552625971287248981101107524093460226989622637912552444608930636178232457441951247043014094053670628638006925757161127328253050766647672102224483240426233016552305421062786886688636246698217049954443933079664202341985957486454883328416679865874065238942354363980077892255127214230923808197366503290196404570118451869748313801099418349313877441726449707419955041124056555329613923017799504358106279143411083192171111650349559904048692843395450226336594122946992068241323345849458688934557076443979367431948640972715677547483310212123002697467304565098837321360735615695089445488744463392175428374591628262158980956005907428679795435894736852311531993337221921907484216522119465303041362533776835572583773884717665350748266549876954092694346973874969748432118228357178914111625589592144855042174349338871226407870260162706171739510779797804339230624043970307582675259603475579462392774677019333795847830484135961717359320666738749766034566816423763579803263763753222550902609912184223850999667051704885886848715486529132403945776279760648683952406070846619141390968157282793910265567112334426945315077830477131626759464683179597331277757994143966877912942780178019713311021780437253374125202532526591229856239146722624528651704494222576751638819137961695928086961217791934381103975981687071118964549387153973565100901169630951378488461157963217032602101368351430981625087356604348831798472887512232631920543200923267635882025638048040752286918156459900098976873372861925243783781497470613493370332704202633866838537831007746639277524111251884894366467492513149628029808749300984558045220301792536819439620659344145543173675102124270294089733147737448131848784738254570822123514803842499163960552741961587255774594745183320533312965403590829908153694200604499603969047535639787361845854058659503311134005459974497388454583596609746151940238861535161962173543902504354708822983265675034938029603623617792428647711222583835616520850777557314475820295595490773989103803372706517268588086507882561568623895712962738809749409929397126195261090969880314717079386098919838046385256976262981766955581012014385513030737368068343405845546439366341441885510623253202565112278412420525250883112278689224125358053397656325923755374284686772937659993548881459789725516605499300455142718077301164630855724914486134557540642574704272626777086056936076966786106340881460570302511214602924942297996145959808932909140728270550519393817759119235945983059520893993916348906044591243358595596041161153267992992636281611406029716689127453665923773256933535782617603182375805003299644426730424612618019536860267221818521193858565538047217973261825970246093120418734409882130500318499834120997881235463792853142633316711791049959458599347450358622444239465587451878355545721465534504937641361761091748824484195698631090861825359981575459824806838533110274428792974393489450398794814746734586165672341396398799284209864657257382556295707221111336373115049194466571558901451898657267981041671950485215006972518190312762065182420991205209277472542002037129637828325208506915290656766255105355105174177545625009878551465965621443570149377086618065456356393045660505531527779351094432924252578093181820357835854425639573153410543001154715466583456033485135159704546137533395833456971212183415383176129311684064700648703119098600142750966502614750496178839158674201697045833467826572939983058246841459862939549915075571140787581972298880716716838398301166182151973937246483199976682871056792744670530282660890013458752140386005768956131029624557667980700036544464549612142093879963913305792307632916393168664615831289042957300955297689992008553059744049443658391463714216024568837934389677445752893110278984044102270428506530894558242916473554183470026840435500125610332176940152083270779324395645668792479648213437656706896446224957883216183160942476613693782276317149443156702797216343901581361551021847481575279895738905424461836301522153654299753955826072163282404434130390962408120527397102387853705252795266554602283564681483808144947550571470893643648028509842257235755644558050723545749279718165070829322146992950428882741060468562313553803312365984924229936644730272373196647364858789825982542599320203213312400140840255886350112546288543236548051344719148712567965701042923766261679150725268479406990118558215701125330144621729599754845035077379408997620347403478763873844465369209291395761577362363395787030345827950864463932076832694016055810059189443873763753524923408115808416472099810760285551562775519335761700871567077877809142558778078880223777971250770536270075989568229734338544373356161697767012115720613791005695949617501724176571529932588736464961927595624769202661829995709073556776784370707440994695400460199920038227865078047120107916381172133394281137211162859466244731538593274723344084703182298052079431304807338116067758424891373455963037125135674059038597746726154798641707716756451917438744433779339374338615723828306215129995415323178429733802981554641414664676633854844745591143326002043532913662761271500063191152972434474143843173122856593606497148886615360380892477008346030117008942984305174209320599944485835603604813042799950867523482504296486227416964359371909662543217074516856989482466852188718767665368774010844199334436804565817475226265394590156670424323814159998466182188812301637968219208745557181129240264169455418706364088871869871157253735883495216672553833819722071401786830988563732845158277057462128861547264648612432793501511043805008140956090140746669565054994538896373483559035861917326358683326099716513838831547334918548974659229276437705545502984710487153435753705030628521812365563656498858822553763911854065306351293468620224948084614556916063121036113787724030657569709230739245057983645985305253094090650472671989209833520919594107175329783790694994981868021200007200500591616505573132537114657506831333577612066294606505204180070948837501371078652115092287389860621474600696730245077382653615499126485123214737339294481368450006423553972467584952517440656559813233489493269159730896513475330003282726227302991635705726093853079973601470756802864956659278225757265560704741016027013314889720047942609382780477483077252883968527143771063311197657299160218562651155375398728568779396774578550320893868563407099178797149216193210116017208254365353000704255303520453470415340511212005197598566858490064484278507928602489121535857134406606508752213404193962737509016675255221215580988696393316524295980049327938182788570973176080422400535720642844745724236624460993020361225070136812893778397708693709898798733399466907607483860782871098323773192775017576722334912596622125453782491595128067009629068551476596061839562637482900881839232807856739128200008189029539044773596170458224659836435942928269198849929681547538960710465670363127999962679458922252516295217322162335970711222716167543488990704804872612456384587720964500735989366551246462196256724083207557885644601956037088320882717877788690778917245471567424616695679268617341563438653025488779451850762119561756543307976949556898805062954563497437730583665513831555292788789511661240747747197741710734866572015247210754647936707281404584541712196644827527895683423993098028413611235729002994789477285630430737960860182657959709556504495839689338969253130633705869110998214970566061993894926716320435477001658822093111835294312321514437420994127965552841587192245552586470673755127550994295975641697059812981578357794607869379099684654626407134533370778226745914880131026438539218747439009531626453030493534030947102727535020600031090267549495066337692592931000584155526966009555100910982496210054752777773408809325263839965561532489118889948445377207470535198166067512979381698838559748214157321870219422663730976543028056078280042013359642784755006695677458477279248765091164694875977728190935225600553643586492939472438280839781144301916291597817591925252009079889930701143020601847605799846531645825132827667616362731596389958516678834180378271882465464449898088998249300967855792120923750078291205412861735027572308403973026638819979618056021521407660558745557408088399551117550376342838312591583264706211881317507078653693916710662995379085092233376150212090757608360703057536912105499982137848937866212011151273173579314359693912937179345127772417891751838542420857788692544850968956856249286206531515328765387615411835442011218727284183656481394228900339130332836422875436762309910347022015470022276001699528247962926649655761756011196935712643855017763098848122354756108015757212445002008287929749878007745562156163045868563501641250823326692018879535209957866506279547788787435827628934272826636029966374852662161157508460022685559776378355614398827715504254500687001105293554120047798357166544450367623147667758340465403228977683496504536960169479762623351250616782101242118061989900632900536484435091072547125368953482983915610260259452205544905446130831455321143761744090217821397110487524685967094010984485293865202056771508753877564107140036844309326256862091441135713560654994199687623088039111512857119011295665929577260743622986236511669093004631054615059703221884855537251651306149676264685057781675286084590017206949958492223146333717835563036344384812248207191512816017706880753608573708606454280562068675897920114139166516656012182833795334019965779727197114821701230682566206657749858387490356431316210572124871525831520592691307470472517798052940196547906613579133778852967154041769592427578617459655435858043670411310835540741888769646391705093524430438092247438375598191427564570588556956994612318358927146425147056485305150397937874683727200066616113145395985334555427336043477107430324464126601502711071650334239603140055302652394329328531475062089995403763067875675102646303392195934133207812857962159910541013388739711685451254212858540168490151820174768332639059160569371340810519460278810297131949506196072489543374290388473551153492337733080295777846171534932135466131308081967749042158218241113217844269284704397292065786418540002158287179920724880582890661159170471700642732116852043094454523920562830738518921485071939207588252445771629514254556226860341789722243969249757713241019754097309299446027413573795874414010981337394534073754895251512554107482218116647191231797640044008011613856890359749309958689532777534875645407477039543216476802287829725291106736471467787779706728567777168234841690997245705917688233822691552719564680742462658818870068452148475970343930328434281641882776930326239121513074913469182231483523923755590694316635554089466028486728723261029388912453411680240746148159280941177138491561911514499714681707546842119733778285418766871473884878527121730239429635867155547895559258175685631814071710349739707323725200889071947680961639410757895912867534821184198782358396112671993160359403568401376126164454727562579015504703063928246076863943715652310856221436075110892828503545789310708289204452057064202724026531722980848013191350874816106726348281576627799940281280345567808809465513110066346234434420330628990625084608639178982103040650814450039671571886994334942075644275537125488914504756200117335135823532134529467066298688891671671323202775346043968414246774295205521975879588954423850662803558841077647432138529405597755845158856061888230455467351029393057583197812795857378166576673271802796416684180065304644460423164165617206055021009928938846036590484705603241936139026483626627543181897753904102652139722112345481478475378335006388620795218826557127363117285006894081715286462274286983468809074148504627687891865201130939524408152722692543759642108205003079457361738352516117644535445736290467294012610892397703454294376921930444471318918848497108098309447358844630761524567374184886413829317571166724446900006832445484407617745458300661997536053780260859969716901048964431593402812817657063394879692201395513044310739232471796611009426822082748204782421087665789969795927035958683544352447990044423530846901242863547821278457543414421169120055472387720735555477534804547374322523661040613447217503456808238409933044197460672898509767986902547260468272825067992268928958096693884489375499233936596566414692262827079648987274482008976891797646658808261751225248694388238466574936233112626939606821697246246759881474453981823626201784385485842812971221063956238489854012288469940052668445798371989608647652373073081356298109239487670487525259201243687024414934553000681736444050191055845817213192345228048358159146170485818414737676335615741450600981520199948003274521883196968033123615250905822716654683486116806964707048371262808846327941341039175993999655242596555882425461712589497759247035787946590592831024579270962824566203696879834094053629634610201209010611426714553428744759999420507446839470232086928774486452396443288636512804313257372441260506554770396713516597480888406462268112103119235068896597004928135530366950244218587690122131082918258618510794851573814533202518299281275310191033369465131869663768989396015976990986434441485836400834563919950837939581011027599902531785530781294557102734647855116346103431495464751418722858612244455891568375607832781034973702552244035080266581357949808143726343357379262687291228745902317464401657179196786080137610640287327282045153942608493437847502352714350173247349007485528995906452790499791455625211018453228708599304977432826043465681329411119092873627857384663560227046269972659862999045544358179304491794932764917928735425794303737576255204986115271556504962694373950677423151393045906353995932245910507625639767456158047934382391220245796069542176166599019161442477952359995878494419561989677805528929889478871798489010892488505602716285482422139895667946225922761553633576912251689430176374432043905327300837580938864256122070700365497981681208327210478734101081850311014085800327269783419277886601337460288813540663039912306050365838809164558693540036525573314473964487392533032221353492646148767450695575846230485254705410623214414381779442607643243897653952490698960861920531007268248308384718500273790631903413096788913548255584747294483697696118586116002660001473497827945655521635636199895894089425189409685688334908782885817931344836691206842550278329402204666333763703023939596122194905644022827660482838435697029621149679234788172347908615080535183832019347612665765978324728112210340989816157466140276345407858849528834618143768566119032469828237312238293224435794318209662139672952584424507161046832355494083158261898780230283079726081131528816470037912099224075215398688579880473964446975409379469953735068850764361470673472324540413369994281076457206350569008974152645182965488844270238446648001798958562574470922176792890984449026733904084698405652670611199327830327509766265257061389333390310014871374163820610678586140147542544169424627153699598646851482194042299084818284476135538994205533680608894244373318709900753685710495951029123770473030749425913844409208025750490107348570703049352633245816179467927883279417428301615491083186640313229925490251938984231661318512583125115301664949801579175314465939821325224158733944573464085851589902312008987875764033034012250586846151447512830787720915175060692588175860452776859104792222026928884067072542631759737985749456009946027419607707028603574648750855960684084451668686300292913779791934995155693056618876385991505358161004804316987017235876529179921159260656878085657774473739186544170053760101912367483814178762995374306397953330027772121712269184622087033414516411450295453499895452931166458964904456101859384299578509649237812642018376738601855772774153345884484992725753427859752313039920991671729128948633549492367691620251157143859676558880872610806172841731247585908638610606857018785452458766855108308483496149965865932507744493061738622204983642408051463570043430724282562609992170031055335133068646205602567406022452342342786585606836993493489727084113483382252496380344132135764266907972191852174611071015854138284508560473736971004777921303907166515785015716710650843146487969696462790764858969552561626512890254186519102541132499698936378079890566477166460166327528473549684737455305121541288573172867431327104406801562653521612056272634344224586182254159935385315387817027242258887360149980801618592444918746524787771268743777023291071016783112436403640032088855024815949859742428507917940881883481715199514481613007556869684108534594485520228091334897027031865707775071626793489756995628653300101023318697383235365995303578025016012758579403608473646514506102526279813145542767979981860135764210052312139281200276217004692911143739510056039268556200381770649519523579073235602681881769948103171873467732899363253875986265748826039369414029398298594743859112649624455946395295241085258892215588315424540470997558922792548148226136239106541899004520530509401405666316553273245774291899807696929865856732462058272722760735728124128158687136023152696593834934823852287015861038692259464497112348005267094279686258546674004347028625326893415523682155744870368825092893339560717308351708005340932153429016008405164315433429298503506086528246289388331269988576852109670606263991438286374600114711749533184381637626278490380310221456746710506950803788285871348323407998742378005122441429444034462246441869973742533476819656645963885842750085311296162685010259269222839617956814387167172004322554554257814088088554598692804903854079144040840847242319590745034293801210540744600790023823855602746713485416420656003876674783121340206609407484867765823501969639069378600765954215385904317758510474370205116045473396082737226038927637039750864411608292320854907236318691339962538239685792513512144593707459971543933663225121145392312416051487455328724488399889680430599987222755564818620464286219392582611371942360444781676914722624667468183820078455062073756316841630151874767821052802447639276500759569938509601829440957869191486708462169374393446941460062500400107118861320479681069360925441437596575571989500673010885965973074827701681837344419484797255665574445640913976936529568054576167869623241232687377587936429095635040112183574177851584733656963636521356506942545004105500848090873716350503448035943038195286200058975307317023345930610218978897421849229049620451578982293379742534939988302452036069206726417024006231130647044189877978007921543167820113598918851252364222946274801644863935074087898671323161027183837713125104182315511506001787812287333824778134985972447339746642512349036977302693218850188258546016573342963231843671567054726398499025596905111516223393525502736706110456883096306264082287354734397787920025497690569252492064148912694602229579381937392994328297646229371601722146771952988710665578529045425635723978742869434475284927139460655156063957863919287009737504200733952830580431534522841381065622000973276281276798348027232539128311702991580130771002553759153332070645435986887108607185056718151380601128921578698458547035944726316341593686020480055779114186352075646479122735175101139612642082570856647779766988732618650582326853781659857833998533582092480922744827748141879894221295124363951450959336836503028628079799199216369997601295136940052983030025547297968596422110834313267566343175058929866571630685892110039975476112776936328817273028145297961735497154198335913070515920799562789997303672108728408555629114326463700767317670951941976419365838775423252411774685198008161864060673372143685045187333645207523619380743891624987921840930868498111039473342441639507586556758749344106855747600922721195134788276675741676010247565710348964003618444611398431287153555899518988122645238207018604256180909304360086601002693374157186148499114916960615471375334967280709849664300620654670291319050234615386196323529620091749063993968062076113502905710462630403176779409229588312099074814430951913575481971488620282215843861445656911876658302030275542598010352559493305378831868492280732314168424574827586986922496353372988549736560772467458349932782023760363846228126953266226332552206833885368971222311781069198658461872768316719374863064483958715146252213826590556458285971445998698659100976799325798131553384349379099224276171171508034210126714056466017018610210271553602778654240413201435476471184245795574756274487131887226899010427880496523877336673832950995356902849900316419544839546652649773510931956128053305571015800375371032103752381107611059401830840561663820131742681214578794377438306315805583156745232326939951385891118798757213340254280114362100115748452649262501275636798908032822679608087108822368155333559584652573622957274388653156721370272881816871727372203322401436525909534788580992523551411609434146588470751278311096230915205403870435264178538846274515388072845896602482830797302773116699834946909587045044068288654021293075324450329773830187682871631816442401331440717323406966679571475954500795913562274189767843547457613719477372440670715167395180928642969307598561690660213879565229005230855191708928325544294272946185591507956019195393813193705055320688253885113336856336989653008151566721365251982557004371268080877905979330150318018163655243629828440611960775692882303254501746236343773726374592592134103219268378570726960434365116114930743053483984331708395612691460168236603094043807499034857444079569026916226198641125167153877811191975489542888826133408090965701107225852918296616240005084196308568168000148830816871341755084856607512678974225171669559080931552618754375565261319242932233219363863855373978829028791160536351689004223712689566961119828718917215184217596584629237805883216479820404051312278034865985099513938954489925083166161534758601858013103537665119019782368290835616658498774507867247205021720983036335295880346461473935189068188659119833591598528160490862901864172794703481418962412972831018723252243080649326262014493740607751454921198367042074224520759298311884475975268829574435279450652100438965361408066758507131203907653923109676419663678214982263926080023986081932432168136894460955773678866462854180488097707411120101587754704398752387620217339962213331451355720014506418542232600550272804303788964985155935521823015893402883859716497778971875426639436682315034541209410123271782652207447562937933802208501165972949822603664850172999726071776928123115673473333297300828677729939093992946187947419407081138922885171429439539538264226085469155346813405231988041349295283203494229504265976107521425525873050503894255818553774012112332441261628016258657320823361722596959819201536380096758325132070478797730338967316924772905167948293732946896342052972099664125021932957989446242411743601633656127292236061282030488321301400537318014395547573381767831360208399757132844526195104196341940280041652743384233986716959139834653595650197466575445248257420135382054160407855000597936765640820584770542461837595638387145361941006258601421193177246483166845147052902785400251641263178412624976816261505274511822554691624943981278778244334905719968912057086999754557555461274612124589692713445696120064545640838689879801675216994909003203353723720204973559419276983851366487103618245819138517017488769464269666306903260325548368504772919847417346703914356996252883442715193381312543830690581581863605535405909423565088146320278471676701632130508437001702685092586907929036822315132367619010315418963734636333128658208826191466552493555235473996869686612471894213680624588091060290792274931305593959924524343912129087190561686642812666440254629562320745877279009168452773290537294949953846430455724623424906934087703204094333423942433429601462949124572358050798490391098873189259598607617639580426162402090772139908518599227372969736140791550299603860058032613755513408330496449085929999425067344936974975218954422940811248253095289655996757401888316652275200305190722508418905931433095609530747395648497263857573687549128976252284031822119572835765053655439164231318570261045597476413768675968782598952095851809289967885114358773321814271549626407303821736852942826529580511314824220645327264239070567540581127030852078396088677784711001390198443965634773440441929213335906657130672265667956343051383586440192035106170882623268600377763138393513399181014822917726549392212140196678210785582346968227713461176248083733220326024082834085794303024174176949537207764241798305388812778636264939088869210432262570511813600986997539975114798416515483054252268655628472079639322640559262809919302799235971119339324388582526207629587448998452239559786130534494087176289303407636353010191378228751016010969801053685629001785126023756201973980893142156195513987364647354147623368726007334203202223520503521801507770558528520559837044601766376224422811921501233224083667843241240425699133521895294992455608879736532351933632621831204581455771073243431246552976603256183371285127635092512674251513671180061559695143041337830817144259787293965625007947713872756670191222399570594608449179211461401997417435031165368137780574950906115956875559587394135891518373760877979738418465347544491577452825127699262501615509954680128760029338133423206252677222678890174585968687823025413087531593771723567168716794639364562415181768093350150680859623421895211707875522893915681464271189260470530185246453595339609961274562984961596567779079371228089395677828427032069733988671928117565728019799684161354300715034378979404988443466484756011505071322343523735599256348905617832142852639244065149131315786838876657120422295057323732552217680566213128656145634669834233718600133040789631137428403976687430673627246953996234644631675962423414551645319846831661058182374704121370879897933944208313006376919850210525105470359564055525119979310894313079890308378223488769626523830255022901263223876933159624068373635240483492280623277209214614530555851710081517065826636000885125712514254584218340815976682936659588252401324450612150562889882053966450616606788436654379585604438998934662991883641299001172861186304246430825887009195584854905824546968226579438740613386780540489004214387855961758302117447909111833356258139857905164813052137091991757976179557786427095585392237506296206220036619373583798369931668417417834759330198876305031422523240460614384393075356397100923403670671648691520197823731896748396615995370998252288960753155535137119958303068358977728601417479837496779314401140182955544075549132612639589837174747508847118898887105552168124773638766487408913213898176551556774570368013214968905704000953995440820686294469104101337771731090587907393851813061555378682060814300631417566418652129552052431185852256376582693812731905451160509310963925353859633418336880035818970186949686860531955977586764605833140598376844025573279087004224736977076720293700221970796844303777477459121187720776569488046600993874820770076200689717419921756837120726925479371077191781370334285804219634174717018449082355457169363836565694027842701862856682482902035266340272603790308186627399222697085913427315307029053947835595608797803012744155545179414445943783929644281475782684096282680468105019200467111622098382799545723901864096460620677677748220022167551338052010701580966262977115924545461450543145388770172846264179510413634763097272678747143105289476475904750133113388026908933736922294515778879410745585985528107809618701881570830499960184744527008608591703196349226466642993057452021148100979022149589441502850109368264398053910400060135976497436653732106150444419368865141439608477120231468401580324205223762384737165976935705103583388342621384056278863121153705690887994619811475012964488094231962094850505943017950936863759461226870092019931008133920140928610087538988662258864259207593739324117556382070194717798534307836906083622904135190413743387901360344466884332458176097339747510011641427117815177665739023897642512388680678764863396132652814512701050511421705359941682663204806293574406804481085099068127220532361151967166284919844789879098629204252434083815921183161187183513571373855123618599648192242103235440432010650338654931993324498125824357720765673893318540232126376632389622275595634749294686240994326418435239306649114082677980601206751749471578359349773222065300854780408401346695117437021078876247278007557268806067319035173890587194555963712930464446021879825574872305528568786693135626226704566101912953840598059427549384206784183583300391094890939389519129345637327412550973440494043950014203077979183986850725418721479835126812771757289103494035632964070913699970198062673794646998174891508768232273562481712536547419275406724629274549212068637340964691575515621149497460087269582719549331613989437457766644189659265292749349701243918190688551257182259555936411898544751638932079150163996742569443967478229927506842055863144750700360540575119423419510107752925957252559687827520259334875682315778857522756117639224014615548545401659686445149203269942618324418273508443199461369621144776407790344090173044327155380859887045991446505874799022215214004279717203333460010204121846889180101400251169447973588979516089941108275010709119546893244744456077419013238473107408510738185363394648392009439881725838261571218797419220952616005813736760684526841072873219325837243724706003792334427335084903065232166587568532342946034166855661024366833239736077023420876208424800051789188625031387101441359567054010176140261225181894867039886161539591415955502319847383070556109890968242055672904637596895811589233740804547595249394360959045957005621538260052940075631769486450412291417936312042018644337643348457321732865229922197924651056809128682105423866837956173210299817123650121860048756554459086530965059174989432141283529639545708509384077716506422457092840615280900953876813451654397583147139755182423573111762194889704494864825123242674387663828122214128063721088594768483908492983856845285825468277826638930994864426759654689615934203173075121374921597025047800203136817807361327237580189724046257343338197614939176072928698395883816437340984853901300550317644307200969233294955705017228139818261341506921270145231214230028010945723743330773067364262519435354174820538200010993426136443277577183239061412546995717055908765992797065476307145982509335048956826262440046700633413514608588897889624544671117116847673682882563502403751401639627881075870108705273291566431823184914331418639782767765340148045087186269165628395420513920956423957858128694555444430520824436098452922510836024795725042936022108237901917677972812578455363850823385570758002733574145689156511591274363718729524161400221668769852815495563879023142158828154458875789564290104426867200888473446950914479258470382993848506949649590390340412934492434358572709941405436138977339495249728698884434531325287922755936770739507228022674972935186319059711654223878038662710825922295894357445272621911077578199162825430755329178656152745302338358565362638660069196764036083897332244101473710798236120377890349206921826497684527888562550654524242159025545286777299106202031448341690782152407309994069268460558968711812570200011063365272965805503420206773543037859403646607087121838991510330116747407603514121942527127543304659219708673757752915176536420768126667043716242196694839235133722512282836908911140573995549257322096862735512041411054893914410124969179248035695900105489223999412660741615968198664052073768651181858868393106260337271329375399188738069178675274403663440741879701858453113307187750109158056158883395330497166615229823680314059904779033827508029300768858263960484359245545463273084665368297401626210387642702584089708477153316427872110772231797482489833834435458261386553966661085191772570511207296210081405354025384408131530825541137591292212020255218183249787013687711645243360329290870336076921814237843271750456891545520983370728750209049187915006972058104954950218898402235544139166831727008034271218988629917594368398342725455358671284404263532097468331357032991485344651801696965544259173963645576213061782821270547953526292150353492331884130099077271444872462407991621336621258403476658382672582078140068833275934449956268247263157747581129191752259473120280145827811012470936771795439979735110171784650545002343047013957800744687870642863364488414343056724152826689141560365057557097611376009867349061643481774179977762968397357676680884681105964249810948018107572965780230946624361562880859174455449613979241365842974385490624532108944789871326842145930552926660666606192462791262304824604095208167928884795374878704898601108370695853057420613207128480229860070827617351031919500566594640086326498191822920665950224433017766717204379312693496249028320624461628268075167827100699471952570887036161667467233031542141413491542028788785434676169189359697229720598968297054422503987467914599261829676328189379430752314905023266952203642914089241419466270997889840124221716267837000364179151829688142110982739764155746353660286142602667115249074882249737327060106438347294588084393842124211794307326967683281118522696998100648126767139195467431350056129604908759690269569962221996117006834854189921925225313042875943379851355185039981555366892545496893943531794091155408982542563359874891754517558483440112861331188073199476538484301325245170077509341438230966507370286241501461534164369205669691515304480291158484644370538009167580096499023471886002365989059778556249322098160968657368308384236975585969955211508761443384590657406202576272586081324715940890101058473471172504468753844566715060904021370887604068578191046959311520853456691227779701039865847963100156329254701993744760210324511317327109325904719358254161832728396607323560610348198537559253172403836024831231538848082458884677276342936829330153883307814641729054063745011011501834217916089732670448939803339757196165420737800051414757119236792109923134622063719745591764678460564259321238105468151874851519243680352823012584445674478067680133239795021305245478397640877016954060326945566732717889517390931776844988947995328232553124524120409380902657653249915037428900902283883303691229009826397716197830161329702530816594310048276435884231329219936092681586247787581441577565603675881631221246724441144085024616000052904296560940144013386432854898961683389021177043153561063016290030886086974780394326170402028714277026996428110663059881836988863479640938373183105815070940900493869065382281985773015276842751475046062708878243274085949989813368009075302040457942405272621554612942358296613676400224843228903468791800963417148389445894774622508821546072659556411177275808430954512035046457709798952455205945025060401579560508618531682359774419130152331911834107122915992560529914189581909362100421879110466272686141980656484487320624358756760686974425217071319394819428836756455147558611065089454349355893730960169939621501470221959970409038081866380142566749343074465466892556336299161742543081749303046797260568525710426837283763772911213153011563831430336433810036628991648616025802844353099212641186536382607554831758283565004840980766766717867177727205657554681883772897450308531415472097177383502776955425329984540440918811602024926154859812105803231443453623869303402054553214381087586601198437025674259931805533598164249697157286345900052789798867968086362194435350414993392107013196786166214453392271872042996497790169380253890567249355764603352434708062443279385872491233532406883508363342752868584316390046437804957181908336260115592217742725689649154884766117446084548228528738380244011323870861481120227409104416861290798509858013127818114281036704186794321874432567082494069896433734901461763092453231455979203826352574995738461397193349126379127559909941671217249786013681412988471264963358848421753993360752782505499854900822813368554614333770661661857061768019665198577210550054959821417037929311670944253004757227975798273787656145164811549971820541537017807746851167092097997970221661999376463598375525688347101107159687960310373355756851796606441273790035862164492399804352872199658090924413944958418846156215945939447396312921024371658943870342578919147520456927199619982297210891398472211960825585395655655556746919246562021880675275708587913130449427713660221449386646826225816808693183946222246748742376778065372171520591835814121917491690337228686768450093592855960091254711232901832196317199581513794128774926129995699089894323541928955742075641272854693307672030415690111830032419967862496202840975260216191011486995580115565855681951855067918558360121281454464436644609488951545212208521964045452697178812797743138348584589417797095446975378299654747393380975529103261594504809506802627715188431778965636105739191923799258291636538814134049960768366447036160948520805439758900165672597308550481262230012402873321366961498595366864560017541924269107149226342794362789365836565068814438228777420505131270180693725917129580921305496355414469591870924417758359924991437884699530381786059743339580989498650451018025966718698251289398562375610416946617389177064410194195151739517731433183015704454853957945021029022558340494322361080112859297522349847561685494709758460814922250432894180007013861645462187194066516287347937332561769412158863710919155034613684913454675635415147869161375335609012085553260457009448703230089020681963673703480581664001830141795634909938142763481269572708825119930700239431711932169367929678056445740909107019925233856550853019607820691173817690755179424822250695338410188722708047156376802472393395127219646963099326561582705733385438853513147575819632685682722966148329431787335924566941115773150064495306588355209636909697184063830925848692398514142087531422730517153798348488757125136229319521195341915816800383538093997240008785803875117868382822143055740845733075971024505608317084281375789605484696338392758655871809445674843708382245101666929408073592909230870545332833284830327358815050304407245738056350557512929299341067905158314000974471530266748787694271912575858222740159301156128683959978325267410712454028269932227222937162102932642294400365080339964030811464070990126629646197948151519912987848570799649383211502070007445625660199215698897105686573026794292321983280610354176879396581239871437373217221646518891749613953064946810491979832893531107493483888715120060498397552488817990140898046531151337428385715671383334224359809073761708257310291900606715092289778406738220920436325699510196686779458041839695794458628562789903353969896975412911309186145146339108107832617843280288255398478164578312564206457057720155199402635669738534045125006768712449864702784447142668189500193834171381584711262786489213677149918248834557716696537143961233964851646873367396600878369170425321904432240353657440568556725746989275553482513861937382117774165278545088859731401695248360370066451791143995557274280198710378293451621528878944989007016952320156557861887188211600173091164981858888056447291640559307651893069335691936461967030237712060788374833603968544301451993692882412531631178201329948922967170108000025302004161990902971901470619473233286387109257445270183699293802317605853298820562694286642120830009779737899315571358407223942921751662013247427518999044939825390332484021684484930366760237881535721659439725485050879715629486593905927076342158502194756749272257859999272277528917393983288913851959359146919665253295299572457413822871241339969327794993275228696226419302071900036784968045860694474292972690731053148882320961608409547888256245413246580873647855634607633747911800551251092776879421066511237740287412697072224010122724116914056499825438159205838580307910429186409267899877492419733236705492872547610777256951260552597629227743292139755586458910557618903333024630406094247312680818527404022385689628330563301980806121065527502113846353364244277976352638259004836227537099556334710471421060396207096716803789455164677512371532545738817066573488454322314757987629090755964131286109172797727357173513024406673942470416300464368939173905469734415613765700711590543069404802723678577893203486708059266243410282127677619724413439241640752425080657788503176909757160539489704673041512236552684892484209511904448440923724572857216493033824611134499382787731694716401748304145750131835994913825734078882069372729134313339247871352014552623746985840871909741251830035472494352566764178784616566902669188005395004821435334819640971835547951902076918275883729271240002802160423172219081938228530248574029572721034363949703954758997287847575099271161902393437105233135149621592259352362834996678920932545490521801905513693279647151911768327413985241654707125037091143622521988437549273450852193222283321991245219963875165400310272776838919037899083169627969600924139214824888633237288695465949479069479926770992490718232708280731537132037298632948570461688463300870475656342174159825609799745425603245135825926061258743561887040961777750490051327953690321558588118330656138415850548013663639651496239515874498730879092713001372937140674462596218035271341106049182362076489956879578008556851992070329024725502921683524102752862958637674622102177417830825637087486978167213407511808191900854501605056942595320381359785853206162738506431384355606736878132119771055746742795002555093161021474903248751145905980146404712748044315200635084390471103031063435994549956918176268134536201431455644920237922646702832136032506007532055127303232583486528652612422553032981449601407804543715910656085116908091185963347124993887409124945739251430206576741620817007819442194258498938033722047759683937083622050296680649472418377312216904148851423485700450798605168486586510986102393660126854690393410046669091829380011149402815023452840905890463947155683190586613594451377859019567857961252373871679178039137082062573657023391721731981385363588584050136532466835933809916259355931445669204228459677749261296391149811379978788201088736708075192294318042333971776391505308259963577906132550558998806630591994263978372090286581812317946591173384806103149858585809464680172779524442252464893677475692705180926763825312424800499154046443233539582087614463680839666200099851384283214041722911861599370097843046119529431012642532689333361757635050282452948825846097573151750996152947313848294512418418255207163865491867032169088782991213821156360314681620193085726045395703343780041913695302124172380998530849260443520588105397419604230167694085775588014566757088508783000658405158362517549068725323624816697795580250296429976171726884732667711383807112898530212872893228669804291002164832299887510457294317426667292609589385972942369283859652712828143156513942295195424632562463021510371240563461768642968526329185381316288827261818897471194466616420695933666769577926456955925175156472843056631935431852790790458075860465099137210305575999738530619750960726730730813011097893649970188621959347026821368853602193277479811091429426140365502709056746619244525709057224114536588724424341777459903012530759471788322795270671624872056293830149736421684346717903353941329785207912295212346813327455903755622268996510780358739112731789989735470505690114081788650469961072459486527104327160229023505654991311654017691211961500343338748822280248333937015505860273817959393227435506888991296108600985814594758310449119515931149774367450577059244005085761399536622738585823850324601222596268891018880286229741607127054070887281041936564359640202220133979896861579344719453911080880935454218005418295679166453290770596738907742677065895165737440309076332057848898745757743690095528977435867786225121986942260829504293365668461454970797139349496907477383461488085303480342669411418123289772861740104993932834383012943134206602251178161892738697722434040735242917983699245877243251703275112583936799537992718947099209130090776684340199641559373431547600647639259498982219091717038767044782378756947627609954617665178196654475260467577730256010132554319948092968064317315200392091628777716202186261216495435417857424717681145593734877720493528442915986968555623705763867217170418270053055947137442003053746221416671824933841430264253403291712092914610291985411314409703991898624594698054535679567127776675988242055783260933814280947840483213770705780807250509052491143656017162997881776034072974841265629020443361444808850514299638704517484906289983940181344927745256535786003150006517944332347803777264589101306929614557303534435015822887428629305839079043456029077310749750852290299059156596047488329343083377462412295356543880933364805537389201306396312689668082553908467022299503818960542126263210628494845218240678844228482103768381730438639406866699161281904009885187522205209755782414219428242325723780888345507498369527319923071357719777328819203747867119561929171422354442298707183917657280642942375064777557621868638383201508357948868759458366359086909579283009784705055970899909645970595168194774910332437421322306309910487638379148078593562917404475863540191281549050444384937405445853140748931416941447969703480873119522885751051598511083533095151793533071213854694167545437827496496726885053375301123827524648475981826085989582024011337285817361538714740779783684948310209828949346247861452238453620650084126105416873402729660338915023796664695980389899926982152376084398307916384995454195186506289366756551104902390141816647753608743841164553072971400205271252229065551346466214216528055981095550349693457589480725472862483760050431880575625529625552264726822841144569982082407797340163973145066571135767799240202887506568113789430845637700813828174226297948273774579982784437565021650951822401044927551254684766239444585661102320412512258467878642025569261604794587663802535341846527077946400551536324039176314668591673016884682498327517475486224239691649439544764237293367348220792881264651811210827906252093725621194078781545683838190353254838118351111132707681501142569262066144082584179757460372584060540464496244731768740815781499988094200064271857725903616064565190347599078128874172803261157966630890312569181912147036728577238476706677001969955977470322438171356827974443987921394266079138878870459943039160502280685874110955046241037900406589090394679492358563271501150797812213115224628013365553085262958098826236744151599783967407558454661354435110943215426102584784978928650341685717316431796162846815404379526510662538632321195115723637992643093601870322996118506735675153170957998712384862869114905621694018110081000782684016433718899235111701686068890829223958090556761142576011855534581581437935883087446283012955379484098922198144009146370289239332640390164120398012719133635177031660820935207273343375645400586903420016647005277347721698163098311091776525145168935398032109522466373940459384930962701908945842731931631578249504886465699093446025632446171509080356582485367964643887965295380363377794717272460872345065552893209650082637232071558913481477560793949309825649051999839860360301594880129146189217453522289831239065649745952372909752447059459082065725666690203795460584347304557945595103118796459416533383587170859050492687117046888948852485420998724059417949006743102231478477518407572296819267652363724407651578428473367178157406964982088407118660173738843899293639707051602219469334172431794091609887418360141085072468291708645815105209875704925096900772523423973396062515964982581131428767894104899870531466086773697110369742939285660173096022469722985085366753609585038125842175486791163248267067950539221826117121329287294629506326483153073140430754574653098363216884427403746342793059058129215213249623472992195280523986366291176340385915672807669470595794502741939088532438561803155692540589703452482741232448526229698161657041634527226684983583428165725215630935131463509575547493689649483029481226916950164670445496832969821744849322034318584864006810017462544953781357747685358989041252489514068341060879961886392812838545925838726076554824707944563862504751800130810616074562284345282875194911144735967884469800176770099491143709842380553642427415043149452326240944839876182194193995210256794989750813733239995013540732647107446385668331617228141248581706964955700238920898434943948821636041481242787360016851996482211467113100661216227380056786795873283748439893645210960301486923509830331068119013959131218016399953267316808934988150843475703881632891980012856760194695464795595369416476689511412935367038254774019418862442375931758228377254421186709409948986808488240961666106194852475306374379834568252361866529287282395745018726842491434012120784076155236520245617835505938651607117377950286687294420803228761061595812314619290328065468887131024456110687227194121562677455290422371819315649848573288604601125764000050188301183080983971301130264699003363710217037574399592501724070323136297515835437157626367658025904881412733038018563711267691994654149764861842372111601910911522463939789198572679166196739436599872367378403577332600257410557211344985220993185094938365228312195436802537349580724762333596664971207708122786016821925270691363306997356716734672053633529265312375926243879885201339528724503772542752058140752220900858413055399950147813703787722595694512153657059372617908784920341452240834802946258722093445784173762599776216697528922151429092114279344365095875293212616978346648088532168222466748467850071697065269737303368723047800710427285630769601344925970584519406559210020550456119293184714915448085692354108268961117621796277076649290109174462339553564895101731677507507522343670487748705032102630979559871392200918959566867012638349464197895615568695250673128499602632388263206680636256966926945585594145682075496468265181449574443165999710987848607401387700064570520003343085886191375857689633288429973113846426678969859544850817884148440456462619364703115234994656659836331634348953970762230141039517124350978279484659154902973045814891468730148009141446208460189772539454381212312784669100247643791147524077703880143421437070476069704808618714264786346931098764635515257930797732890453182529637573747527312682250852097580588939253459959933333609523062721695930087282518580769714959081592869855371588434893748651544565602406479146021270422210135376695976896283662449676629521708710862548260162146152173912339864396817707384686188049347556962981384168893016274885161365873818180126125915926575173900811873251464695309049477573557451738500228116025337388873770396692921094981529535658415097900244373844087122545843249247111464170647642092357602830374129432272069636887478153522737583585546570471235088870342038597460081613818836112102984745021543938268393947817066300680600668439244941023865306318561767769508804998633612357183869084303466957123785150995747994302748898174080482239913078384333273447887565892069660462960112707566550936167094395686683143022224116579014802527337969612358573715355800855538181395808696292856194321310403252800796758977374735311474855323430122344229011699433768389934920639308452802597751261675732391218576852918649326135939883219987481301825650987015471019099691245283825632081513790550517939720522798264267285113736275584851713388355838014138556514152859868082074386764991670194449396185590693779801091503320345743521762008404285584606249607700697517443992814639028481141832462970727874756607266386947790369762045964605467170746631695616294055568267035656180122553936713530731172180823336677347237207844264517598150894329192005418469359810296375210971197973127357022735878941944421594753534819698526903784446179794002503914789548760741431737706737066324336074784632793405621112250084947400443280633877751251057441714166234484462751405373485419915249811867801205499679034576999511406665333934092655709494351321208170235252301477153099915186618992235395125374754800188119932006463919126593667169836881697749373396832650261808121048924694414312102525797760330759783063746302617449841300048052040462630745348786979271475063277671147014217482640316744384998368223807396025631721967485621471696917238118673412841252526081507790629071775279228334568625620090165915440717264983935342960602035858127642770664725115085467243825420895432736420803899662939358508163044748285565064025575396604976107868832409753437217211506142950638464971359299562423464366866360440274648148561804422368719069798955268455203919429836087589970560818287117101023437724397001169487191452957356951458682224314101973976373338545889446223247025392092150372635181897321629148484703810283272580812823023888138312416331488963390425079066668424035048084551716663443864767439249865811891546666612933619110423462040861052002395006858096948540708800536634049520095335417236630326071556068071522751334634518322287506622521808853482464389181658734030002290648584716865558022735659184613441702787492545535612282437670956966342872119147317488552806093176229981058252922040992457032484435591412073122343410387428955084529593244846687226261046863963838473645641959440594640800377830522781733516981309014863119594273446429553027345427644821428385690800908381613471486398671943650027186565561147816423114923391473317225099296796071116029459436967261981834011847283722722283828860247310071773267339743438239149097398801392419261123868123204152866154090906901174166726783802916867425231578171811473351422159477464395073432116857961354127340780793540997742770653867389698955528274307648657482557316411733154319630207957456961061141699957378012133753253757113521094349698971566863751836038061638839959942079962940398954427044957642680931492107787382364223037099228069098789385095723353000462732301596850216693746528754415394870957698838960775952406857429823196517794869715689814016327271491694569658857183414875067357881826359152484871915850521632562229083875110648284756453285482771882448704464597719514153514087004105631091744427580486567238883669415942113171503948449371460245306798157870668327150482494154141502854218970408811866487687476191080864953406550775855321650138551462275608785444059074772138476869208931907965040042057003043930314514383175488821063100533983929447817750945547658813080345493609204536940263243142533097146187655466871761190921470465276636029131366338411055477951910148517523877621935998285445089726833003913594189242160712502590490153505889567496664760277078476068864461390403258812838909843495276900808996358567476249844815528291269757132141240449225167660689098829684458444301478740981519844382692504627090339903068204087385147188303133485412231609789147162230305460823163968192892047789283442288787293263246419710211611388715037046814621668230749115345469287641068934225621155036150487022721158406578216073954700714018869749357790157804212575071529365705881061416172112372920543895281851455491198281654953819248799398702038972791829183045445558177511595408680797934941654549054478951080917784663762336845851416940301289641086453194141620614228720965423039004476101564672878702766788830866757462742509929048135605663981355401906944588835969531612335265986960484006679574976105230592339499266217542103205909188673668704014627615935875126103037341645809818171693244904028757112436584336379216370504907672307831913329429824467965578712455212376905193384234819008928051680114881996635067972259471351991846287376076529408956805639502088170874803703641404820959260018164634586047236676126710010174482396129610404371892658531739736273431923950697311615640546448528102800700520077670002473655104830436025078065626305967865563638445350476633879039177483667407643861093427570189970767647022033671101810986008215201125879030319144134865006997025250840284881830694468304397333872800892287965208786412576658834419416595972408294397973680811442502333302220762527388203653518084047835652079335798455670915686720902318251540821412050496956113332755769407457207695364994835056800169769900941405620789662005754498775149789362857288715273330458678335979840273545382056602116875089735616993704984642657952017520286176813436535533311750894709656402100606270874998227643963746573538345329970864911614280221590130799516871357384946530046591741872177985632284794257321153075520223631574652263039850870472335692754547030621975519760169241784686154780086509115192339369862557585829305709033202907716769364883003008090276433230178259359274556178318696669059663258399026266982818087208844489400984898304374409916937818675167717080657253848613567945003262806719695204871207808126182611317901884346556370831418163648172165229678393659433833611996396859755777285893864433303091394375632317322577039815021555229201697124775085093738939407148832794702930778854763159454099389346541995024054258976979007828193675134821492091481819564247720640806131616106784434916469653915915508714058856393174001248485170479748834120897385751175253394783600919339960960900778310015928788809319023315740201767809447739050532748771881993789950082222487631378138409125552882196225714927336924043261018682401251131928415136303102644551964959069704510450895824861373175748337323343001979790301413764952982245372054624371852530743306147728496461466764583334474084201892715216628376429730643008127034778084806155341174913566357544700274190514753063264591212840909610358302699980883120522863079184697626744268202485648217787225020135641537926326884025234130918163787575935892376173275693441252277286230849064138895285889253594179356548131285713425288418600355795449063645824028505551318334851705725550752499503890573807340593560703944934061538277253098007631211857818159915512176249964448392408522836929637061199038152072279579154553435042945200380754547372147893650498001720927940460967568388689564837085913464581126512903293951679653894429928199716172869583698145024748798286769758615812398623530308461311695154311745610530180248762981888750188122248319477741778196027136089325634683814734253211843139350786155692904098559546426290364712976624203520758268042931015608917634576562773084252855843798949898086089067989109378886044259334589697532451596415224318133086418250941372437545816776234195684861504952107068415659644019619559884309868913064449788148273016881444586605207847732989111156151626046819189943696520707096743517238389256565217400686104119411343789962413740353121340500419766501318077537888415115579187708859877299550180688461475763443462304800316356837378018728586795204990472163107763704045262823883397143395322824462349258665893097556870594703072780258591446206926117602257878958918290185492828218945950195373118669489668734752306790858572909612562386018529744166492985720697926001622896751777994867447218491221752267883720685856840186322798834201297774827382124453875538655466977313636613422496658680167775734311625092265191728904977865023643856746598313590875581439656505206689794749424355751700547964415402085472424209367514101659372201755276916456261652011056408495043608444530301163119440610805490067492733729894296590981358997726646162340848233731089683829223186622819460604272067038908257732248095962482287161792727824600963429002381578299980690718244231160810479970345220033003572068625752504028142176336690578998442233793380493556772496221943548293603920360120837394462294793955714427069830044109925446726077703074955647290999028586675468994603038137107181023713236735522921790539474717853051652568893483221909650880193565727856348786530051949598809858300683121897510881792175534742425727153646894928380421604936500198723871673472185070055606582521807990192632071334404102341370936392060692534074342897083975624839026389624638888083085303250998306902088790916443910210018460389014134226106514524386193551069740657921095245306284620579147208065365878917133035529338393851008167373381379266654895427347580644789611150884784318491863670420666007457986138920718756781350837139798819110485510115680747719471152089321791136191642168906564011875982428783939207529951594553456266373168465489328402491302054122697605828813580617044919511257819989263790705140424296130335518826156928226183917071620270925417424346931262107949786605341900110616926916014665042624649995983719451581456315142814775348079772929179636228444470458057533154273809454270839814469922171412906589125933673649522433476174530291586245633776949751275752150662135908840439196513081994578967429521852005035899738994344979957805864070134795281941980390552588070906914590892191127820242256180787007073232443714810637633477465226900648315913313242981767889376829225653390511321200442948485509924630073049066322639690316373030610007261336991341729661964643405054671076906089846942651878212906528609659986370526482472420762178168463484073899623869906870431511108749663378501447681865100681619055460844663270901619206750800926249851801871284714519516732472844343403123769345921218810593884818127895069600189823492834557123483007970042771301446191592069742448093539580408309281332171764469750456972118213352383486855992890324924759583343691396728246326804821864021280726186343415087185094378362454089647415584613457579325300004970918152626042653026895808391128018741947330939955231685482111983576631185456991282222966743559311162342720037101889940328616889784041828634682024222474715634591602737801737027964143315229538194503261917365778021628023658906719985924538131047995073720375641950293019726606070749434979303326688157503917176318132142621488708805908455555047849578326618674274269308860826822295749569025705436721912191279531412997765191985536297871037791299932483521535285638345075189454939743414594125821033520189809017543375615600073247551196932660786600859096289560008874694604251552901272274724669014408196609239464739585015388555951498034930661947598639888097220051134271654634857439565069438577502163127435067873071864314648493495241110854731376315593555986046981320813672461906866635229848266926539602262838168072674451560495519121820581324715654444624354621529791740637252192160455678298609762440828501412786736969498230428198404698602274455499760698409761581163838699518314838818566132536636214100377132666443991635595909060672493075113480533536807933537289502883215553846892462227991911400436046018500492600903717705641110235657389520540420646639459006931282020997829560245249781676732061237116796536250182444380302404638682857056257758404103175616928435958491077440051534564481424089500674894782097015801245891551816661898505110217593797326001080464330024522419756513524823180466935630641421557597827907822236419305101637456909143207133410170634815487489039669093474848618891346900057989897346587344563707179642939892985367115622119779930385881232239778249604362112047208269481385524751969459454675583861250812963191130780283785596269737291435549742473479957712652313903702575978219767225684124874859793991076422056161889663180115658291382802216689586213884391064670925171223732395669100402217513181875113382123043552629354827064059404653861624820227698184831178014823637950259856141318288268509844605168049730646964553476339868681334818562931745218366025851886488571757636544581673421755943665584897822335495909314606378630456990529870216759580851216048717452155774017294402775072466607915657431676506335430477580965143002415814700655849200027308818319904645572940327537962724294964170691347590401895840749348052025178277532623379698595130461184238137207208675204416864285393100651641816581289102678628210891576229278395847906694428137165850668733431689934290756326945007464000557751730931831096116395155529312682812501478204747759317977825616933391274386248204562020667209963820242651316615368470717577909898482815991449679742916441033866661860574801402754927031968987540526000600673647516268450489654497964520986234269188248452635183395007921540884567253310696563940761033848143770332871985211959348037845340949258897335064222097379297567883077370170324991518225152032366477895619479755461239429407677284878212539283773152832330543592738110423034436686691168866094096288486416986343856222622297937363858835017452188208238417743481887258172601223988116396714491640796290970062888225091768461048760617561444986992860279853730721266436091614756571334254433825869819379590454823119915559033629200746885341739785213418493014738013669992259196538283907523901514881495897237220787120200960036968363379436445509417865041942641328905945570407165428492572161880987378893687059799577813003555460547861359032402309416589643151176779647251168034629981915853411947846327863732306556856649701827169599214744605424825209373100997012080561743616539698696512426759229003422254407788005123622146140588009855116479228172893631591437479803281920646191865948262665885596553757020381552055312049250456705557966104745638453191184925930268416751801442131045273523620481482809733187510068030365128496123179153197206062220790885179944222092906839204509871250487210624525451073291438047331625592721436610942479568424496917167177210354852961019930145143993562875938376964985437775043948791197376579344706136191915339896670583056263589695762461281628839179992062942776119458489801402065144558036359336394725435653746589979455864061887907349979806849665672171061267827934731686691473877258183192451920351188497200195679428655950313315799418013808173865349311606198923379455137525190579302438845468531957792165379471103470712213500263698718994803236996857177902123486635012396636839128355961666512810976967973258487196143521094181066450127431919585471134134458521222496234099036791859835845571972250824882261941385586425056551582824549862369329983927212865758962334777203924608840786846674081444282592047078126724021028489715324302628294867087828569784847985999153137287741222010874358773750566025518958726269920946895180130644728833948422169644162404522252897322705865601834820682485783716872223736972898154668702972520277297417255617103424728977106826584107659008129353985293279361641578702440465889273152746584863249733552161177281914355355735674043581097912235400331026872776474944912897743705744041839125595030898266195970048341986477770773972073527702335703669130023212418525013733802413599097551905323878791458730317892486214735224435754597246157438627001617395207521885820266481411419017675469370931705241603849276336245038180623732844850525111756431201750003162966649629169945747516110965837082559844559946724938729500449542793098699422081193080907201216172523771306726464480207466390143643866807541172904252270889025858059459230187974111989624721132563552912232260850943192681057595842835526454145536861691665088927003546813218089799903103798216789828617444756707877044902098218947747390972952805049915394341460874258506857201624902699586066106142307263168640356954718692136792019189652630771940003726815635046046408266787664090121545114946091976109571597154402375026197617750228334172993928405669331447561806279034485183063527058687704201558603170802072790097750250698634418854377543996286286178573571165159494507987035777417753000435251684095147462893269803959045325302607375254933435159193906106480794574414144259879910025860588020948561585199035195559133303131343541537954857679206009301950539513839686212668081551511255875364194174801433822894969081700708252626894671381347926221412092478652254111029900220250129524339526026053344545012548943201629450738639212533398396857568628930554788001990043147044544210616548241857573170046471268990715234228416955065819097190224655072951528975448688539095844931989033497505822658841707362769265311844870492703432450791366239040603523994355853702447910044801660690406723103899239884871890771752657765808083890613514697162217673644699317258328157017358614185976295206276602957249621780434860276612718146572703933975574870974773885031213617809075932791533523734133125924487759558788750879025168905086743599587469759727212531460701488467419388165618628335361339834719233404079955789834394896763251414857547940001145465774538941927232035717106580759304864495561544778266969935957895639538484216897604922580109835116984456894226998048329152700796846174550413653947589185320578743391914507034380772396274752895118196776164261035701072461875584078639032999131016909156114183906128093164038438516295007506307413493928276271575821642120945585445472794559180756330408305552532878269516334708936512909054658038636727292886950242256210978221259007624479245619295013845886782567993476753053768114080352928530090627453829660849628445820509464746918797758910952787056158639548278542281514109799654756412472142499437256758026014233631788072434863657383513876190333667594657654939658907371179142889238724189392534141471392924450392681992642624687043636840897073501089419406996932812202514391963834151989173256670694058829648632600278947800116698270236078524240089408396084982440329211673454925829531862631657586209823075104428177632517428471446826995395713241768849451065419659551094472803590122143157606690257113159665029966901167974814083421682667406748921382488059282096864478181664263755063601164810246484971672500205954480589732491592497723208255383732242467711889021008645175016044372886003202932118456936211819851730027874649613096512339535778862525955375854259719820691012445623064026317399966477633084842966149479551790273942738808726453467849935024432214457127851146533085354956344628303361297202802849444587275900620703619772975447785566496675021214655694268038342757457554677059791893573384470518631484076270214969829447139905557899840112261995288179202741912108450421741823898207880832773874141421515569611419324091840616718976587067746003173885048438852481048456971776274793414133719448767365930324870139515981639691314882537080369062272744661096171662330498963039331524684808440862497542458015444236134395895637651813487044689036065413383291010648910412139679661365600012944661300989791437902309400721087867074687328118172986713466057807608992004917902603295241698887547413314859122173274033231243684987980685993736192784725880745419023304468205222785638948642044063636616341535953940697375612399321361384044148496065302341160401227642728965422045642467944767283543277423034789897052947284228771241374004155741054237762123590010667681421994690132162986558684346143519255120907138233204839120569710714618493448026601084103057445015698027397978943762872109245857995077730927796086897933894978962205583205015265712198632371428799019442191744153877550039559971605479354409221712514457007417814429280798868286129582827778031629480109888393607716271931627368335918800618059140568229589589759182626798235159995005972814286365413073918365896338694020555607217665876746492484844871840676892655080169476659837918871603137848032763535791528300212577625024725202538011367302006653303061290525194847290980049740275742466475656757223788963742307524789429303316480677416354612766756878537203097051891329774849746480198506225426537361819980809404372380534274627867240321303216862851105449929542471179133431266101339155135424756082732694467507306215866713982098974488004346425926043685902691192003195243230694317348726378875220671743598492969638973823129468355033591733900165356453519100179187521810557346702785100069287965990687964619054073158964870461864824000668635432896888785674209760520262210309191419518055748677537203916792215859901532700161542681408425597469849272886553643748687022206371030937576135467265433176193428113456683029274613779783363217038486221017802682193650603106004203492378804578794922174121331548902066258332268620924368357161093973278420036217314022158383503363652906971958662753712216163409571702820738204698169777294581537468008344085164527881667149256837698885826131325499993834236761941535784315797302801956672054379884284946653102307304394542117689230765954057156836886464927325215475453546792623146238607744804527560473766889709933190837334347746416067331765891397808199563410659359820503458283774890760235927266034986947106826588082290766825502848159706774756707700452371075908165549556152501254901782163129841926900275872485315267330538039543148765461131000225081519312899727055819957015386043023084967817217059196545148465608874639612880394729383595309360767919884266732212964647960102369902798019921671824718514564374214420464552168532432091814237362125693788963438766097700502041805293535809936852804926417184071929500634857045244981998403299981365211141460826964702948967260011893672018314206500773923806684546212650441121207071001569136003580201255410037682694928652070850735475622911616972290219130798953080992336839897753275270202927391237535806265394678885516266728662376403154807878880908452558683867038257292358858813243703489579367030116582204858172868394530827389403879755020031744933947498958390756599405797830464081381456370302627994833923769117110125580944497078163518510165473546707869758177657037525657813998542627979501863479667771951121175594094850803197259615328435793560252611735429171161179897101684636574505360182034341750093204787941932759144315927637937243813183152042136105640762192952654462068406621050909367763665547653283270447625071011154292764909857455252256578900122276717180449458261089844958513257474494487085570605128776049660335141272536349957911420671943024686432728153041891045569705881516011989597300678336817485306192090459091150490577114522970678388991091762596352939408975293409835388880489067670892034339679356074863356657520055044953192774988980442188604281161238458036791016163185191709563983137112916523137955598387522851244337817025524992043039622540162272899519457386734003607879552083233524219527545134270883512766530468173967291981912655771943605576999022761909570827063303982541941275451584040576134391346596433783498778165291312652239181027413280372422096430647706257798131436581869997164695905985224448489207450773464022308383115050074415172370797445595093770582177950103450033300101127058720419755610521387789264195230318742721078339410238398104858339912814758399247631117783918309165142500276057504008049483721754275829946936742240752641324469643316487994249328306466226243497456195958698870044577238942379386692231585832132086962274746625522384726171778913362007965881389732747655626898075045123575138015228907296905158244105723411363394324846234636826995952959202547543382832388046079603862378552822511632487121893558201379151159590520698781920461500529831002773082690220100073536712792359086117262603162572373932507323032137993844856784916549928030406450462690111863334303946386853550789876805065561875711857240697479852023689784240062781437041973539684116024069975527048820143552837182867681835773467850057799627655727099446127017496570168079724031587129265820562099401596853894143262002306804305029000720151698401402328257049623044144123601408659250496080529343466700940329354229486373817626360808082709615508125142498270562715663323211875103649870153345873000871408749236890904563830728951024938128208295266299628571765355220064666168233793859858106067856311383711044496277107211208749517443819619327756833692436782736721116410009506484570821577226733900971620174171281628424584707219646208725243436837987388288341558798757045566991042811127862291235902228697516831197194978013104646846059015472200782996808402642446305234650985004266327414609421724512126267936496573321363671764665345956765492038495045883383979661332789812047565586910078845371934054044111842760483970181214545742374992984953547000943289684934526244436525541892330294069018081277898540208356372052065055672841410280945106552466983905533655665639498673573855103240873986045575189139093405598727947491116338756457784178557249902074253684678980114895989536466794811519894923987058342227745882237535305670814696399195865253470025690771292494337541430067615862462257757611475480826027425326007647855037803873358476432479092476113301982176098050794335726374815341645894859114502894225086064190949997928561272794817685562846783020151732784132383615869688931462575611461565767830373972704620293524204874366463975731394037693634854678454521925182335240559547634375951114963151960529731266170391791399420216410963217849471977748723575823887406698280454930363064699448768499194714456139943315437571136946827272080380877950716982319872296533552898133590559838898522471446951173356974884841989767449332165833262555211657052033791682584289042829317021214884450660209792842029174267771600415304109161492802580739882342388858623020372051921671704253055614168539240334244237708092374976792349686028650301189343641487383690493601563114806412844620223104099590686775919863072952644160719099364388597637021545929259073850968244825449612637103420719551754855526265536107099477551988141741399368524555073878243980606274620675074563240842919101275610881226763507410087825426386598095098584432741203544340701883698972468764452841060438543632655688224003172744172816361558500720080978498572186275457659521822249233727490036538893685458963317131888306602678382275617676672038073611284111156615571243128959668219240709157455944719770894530873592974097900014056877929543936294547549431431272741089850336023022929958052361583659671109256234453539320522226814491649533203168157285044243562286018745410598735088903213517476851504475511375089720321336531104519227784494195082855237189209384080097468918291381324905045122961867634572311271793899558910226460882065547344617612911880734139337207865763309268310461096162170167115734059968375632007605639192899024416248446100143899733029428942090612688259529703371581213007131051678380777963855345171857577236086550152997081019615917894092986096875303139517173819506359793901440640191920396168622451525867520888762866244773906869415898241768632755795888308211797388019209443497099858958706340678019874785154143537400708837349705565138692157346131215881689555961534169263029886083304148318239007195639244700269286898770603996523690057661641773423177346615338331248328605642852166742373861769419631341146426544878639429698012620782856009555559678384172864671783734162352458795735359806532342026170266708061571638798882186190090297572404148095489324613296714101524119937923235415997600409408113302179720589599793609093384285776792139724416782594241112963000055226757766784020391351321112264342636732147696601018987289781653166745271873463734367280219607121969273221963592635080857211615531382911285318884266326151228636154318248959223471350299536615425092194393663384568050340010759539614170739633868584838450087633316483203642206700754101486683799139044910841419578809063839058031826571829510820380187046186543885818912468280113734834926807441234857489512384711877078615839235954562028517652635914689157784515790888088779218224359639983976366691306327244855171136021639764068208478016725518682603838713355286365605100019015350564723940538152733732420492472399810769990491221290753417694985733870174598873588784336023870628876130565835788237004752602736988065704456280370212067686981358262659867762223244088978113042913936580768726746276368743394003217791869179504111422711081372134894902563553365785669470405793240105172501419742724782520125621249055111186083368781708069930342121175251957157419995193676610619911090550176034140812607372670530670468183512901670309927218146012661586685602813924092469734732163502526736872116245378672992806516718791496960827170305145687035075033009982768998814548094804670484107063753033831295963171167601811553698125083726695023113569245556193083280293428836802342796425750766321689155607408552422214936353430176752303780710618450794333437375982640223261017553107874493187758393452266418267973417111063347432091805739846197852597209849208406443094235217571800871430899384415471180028932503459500222430296715296396701855256071870298612028584588306729658811826922842895627399090571971368943371874093575990616028947688496685914273495679834529123025739501221158551114474281065392694476689436065958898291802655345602264370068280329919311174889073486885336355342304313257148038596569282986421586006582662899008035235667837584110379497827215933140773435587407246515912726068312382698410518287447042573006422770813483148149693551799561549301511253826599985556346441951580798020770816293011819873022404556226175069108585001279993964420438055455601149590257043793204808285325245288108475133142452582318269460592628976417689483703539910516172681160012034093802627874808628996116261495458525875805824370761324953069203007189496217666334266234906742046764147518917860116234328716034936611517815284742552815236990447607668801898498327646935652026337381057886472512483476192366555414341847908264111781328112271769645480204794340433815740524681446755945425682947174888123806826444068442791949586952086178323013062687966980914415105671912255603792421280272687361727280065830340386655428885642475697717292835339504667260896700696917364708253032707896992633353592652388600992415257621129419574765797766554912692697496491569854448482707778382638883404173809444715372497075278318344825020878410132774960540838011045361544995291565823608194057919540363015240561679917268426026749491042522877583356942351912879744467982974785957666274226530575879133748792492361320554698329471679518388899313420620306630807879794228309306653776894112021681334846104963321773312898056074556289388115282318109151529797601420691759020728199748283928376773482059628567988656690493584581243275996558584835126020930288638771580758917400741857320729850773786405061379454222814309509761159324056537761210941304367201875205111062391817968158287745033131280457174323670290154001922745126435616136914076085053127366239041435590949568997761257442331085057635188194115937367672636701162015259358724456319628027725129972931241293908064821116387933202548672326802439540904708064446858084229653141488438782452272786745079379849814057980274953641456593139434878991086959134255359428586847463762823961983649978207501036189704260209270734225960033298170412253301583758857767873098597020688304343208547910091863317576545130532766130828073406636957944173317219353340719063431971953043611474630266728492690429655748864973576154865113772272375652026894380697902922546095573969723437343209221716561931170249598494098326563947069710906037096821947382588202164276195394402535669510772473399992692476116494073095570864564856632418041794100674290823527163965825482677525955585398370716826012873776323889942433536694408857611239098879938004310790413325666113800161877150546998861280890924684800293257170462041689206761528505681358463423154462310244898069097202715451227248919756813625282493594111990848433181735776287327171426032398245450385197124610470545408519430759761907708401338945617810310742794254116967357918973667594430202806129865223823351453841730497589105780929770719928159472742442676434922530014297672212854661298125872686493744119433379935264700589237150032292012477448380749522915052789362206443027244443794254298092857566772678217702627456311260934107103815903580052738259650894654204655491982339843229602162257293520509023110792619591788154698706472852781231306535335526286830872811494229757560025050436514308693811473872933234927634306211437834714672686246661426377912129725479497940608311901540661358559041154188684023644629279039221463767688081690033177090855876470247382098765313563947305682321720649187877607338834379406335808975338836538398623593169625934548746645889066222718515943839162439340661601477902228024305864983805653210220073611037480919137414730350528738500673981521799981882211353359130668902145526758329314397023155496937307626813775982209344024976379229781550433158688533410569401632471678613791592661364918712995717629511663462086523885268597390367395879704428398103676105732966243246776166793512367043149183673850356329494784750756886050513444163199830198012046027745593888616136878410871353464891655696200000993687631867737431098238374847958980911542636888775249162432440100754434652206726856617805308325478231555025388282373619497711573444008552576489165826656090209205673755591618171338025851144112126041040836701450999725222674364832361772128349185847689294240279195552456777583060772912346637986992614297143273357254245493928216062633880998107568766882926198982612547311118053657929187840883187804695861967090341153019824982246918487771057039209555631293437084207997674442731241528668391801705228868312934995612210487903974949919448880327867237976957729728185971984527552103254244093400337750026172837955880209822999534749659340881913637957285276633892183683407128085480775620796983992528368396802389728743114121694038533562810344916258185798024721787113596314478782464260767055352803734774109917271543976151481360804415177761248602430036211793058882023358081719093700249904208922726696759016080753161136757008947556638033340898155578185545693414103726668423920668711708777449784204547338916181558186685392976785018581883236341973742520014670294575890830001209177556587288820595768602671619581644372247724480340075305088380147733154797699199794383788184790757136362469427882757719617410759565752104086886519254661465835470237201478216508796293016161351639688007098989965606709432314654679783220773718823262634002233731513490920136443478397454937623933526029372245167156211067862226651934215719266795716304162344433296966077935716614179719326710008417293503010235117240062761657881258727881401487615483503529182140097344735761302182756632738847324001093166585938781187190537429020133746124817335255093590497133899128275561875475080660946087265061863771099870131721202982183030257210361701685266464326703971729187457261076450258112382180551066545173060135115130886181887386843821058045195731121747876122432804952012224475862303722791985659623935116717144673043538749785940754991207969233136167861191041721255735405481941581358670234106729429597733871980445568069426093454626286112939081775953686245358654774778851907538552468249437446947450791401823021034129170733023224383201646715604783113591287334021405851356963434133003795923831225068491687833995287047544484610442511380489276302195651959481125068524148488350580811842871994558035778698920874704966364032634449796867441679277822236145831921096190846322018344674202826942463717334948323389319324342231619684954762219100151581798910764512627309094797879457277333706740262285293110338238612208731118962335092189732667034552147027872482486499047879909877142551433781980134915320235568269961663419931592898443509850624668324988310703265478180544308673012860707654650054374909111506511133690990015431232819470492164568654260526324826910662779256738357418931027682857092832079840532698875950552250494024081433717320007285193146399327535474150423252604172863253313263263898028271303429336641967583236571634018456842316612875749880402812269326631881919621395810369427788480568230125772140306234306528523335760348571702042995911290051716716886956543840101346077705870137307375541060452053148495632625986945199797549073219781160884792893613614249991313441423519492099682603239708135227509930014923750094387463551468952864092819502169590219756241057496529778317917819776042123934228868188478642768652074380504260839152700608910403310831199891324785180613822747333657203643784342349328173000215762701708462084394273888939109488256348267063767030766521742148424531463832138996823322769050287265165980090640779283263772517440296351848942754901536319362671637182486498821614041311843430134985321437887272596867802683404712729578009019082729536912494891387827925117411323577855829137529008962053060007420576443421437418866617857957748118186607891320281771555973999464934834960808926299114854939623278451121752156245163917559645209011477670746025924891998483148153534085714947589212852890619985586304123229821676908621218780373013627771142786812797450614598543949117332744225953265209358237145916079432093066490983126233179402677189526052452465224166854007862151109900754742229837968867863129052395302948502153656348747194136749342920571353860754331652984886173563799638870573522156418919856963870775663391942260598768553528511135293193369627362038884113909186190888236235462149728485894000515678999296767599168855642671289866344251178315984720851604923163583708083071597548858410994511566514447798412825775650385739987437931769724267687320368058713375470635656452869979517261847449294221136477478977310655602233047095116831615323121945690201677964569487267716813872034674169036066485041191584484607455068930942923961978471796939805828340703242170608427618557781786328693713393340617981614651788072752303785224904331430430303403952444120999956441477070106324510798318196674824044366866822450316705319659538978478841609999145834228193816842478890105870154288410842711521754590325139839968749505206320076280865176082681096930690275674231808543552964822896852154160770307737907636148141836973531454556809678910927840178814133978771908762079011067096632683483757919195275759992526665194758853603576198932985791553021469486701077382772873004779148550556796785964138017137221230122609542245959466485972363768782020638717664924797933254072733818836609576138315165393176563354853806019386173631179398293528911423959428409045482292228002266233345841694611283267456695756102602398229953453429509991396093081724341825612328865464184547615797248324311193165962883051791956773334269717749745855759329015657901566981386763788463661769991456026111589265492876291735939018045364095709969410718172644956921397818645912746697187348893220839110844209445160220019153366733791964229451785451817958348104767710739130341392778618714610710705873360342820387494597142077825037702611579671607440711492032421920848624984215057144426329684056710107525937729998038680022053631432942246598137901216862332166317405981374757723909985446142574059387371727826988380034124890169369185341563032513653279325767121338993716317848287845333461094521757996102081184598551226228069696473455040114187925446221218187723680464931574859994110390250511189738532692655971291578709618841049427368950931526363843376255248656966681803662240957660170987699342429103075130282050838386177374655103809069251062410202478044872795848379952383634951373344214668384476212435678553385543934142951866783552907002738696728405498385291934155626811599004896267421836508790303211213679645566472960442981686636143368320459063211466702446638638871156892478947247553755415440464509983226310876316158783808373131949135713111263099064360768406552863055585129576763605101127630388423808015042861719453612294148617377450521056572167139568761553293501141434931682006712642457254881623256030792074415842904272303285877354448103078376248142811577613485501040418040282805371493688176130002282979265544369693705260067481938126192353424391828310959663181253041179439994581945155318292349585308642976140291755185179999211404869190020089998037281039306562586558999216098921174985094938735398156086077392880984941776288069289183983478034868382588740879178331053606821274312652675897454767351730380917460034045263350779458426125808611960042334506020316709138629151352617626024576207058058462059076685409734245890502128271241723042317381596163937070821161415559333477936717087571694304162013891869566311924088888556848625468540409229648153935228837813240722903415407825407814509098093972151281338839064128705076107622354978662484812818882292530170267852409386833630572966225724053747716401225346362966879188335041470703754433722927413826139560182263797719815429762890365414745321455049641874507875680559843371309420664159452340471512503623904904594374774165766943832629633936044817254110859742580092921327283099216149516070489263816386864554559397447914484935173135673732729998962551584716072872191848269260477317914832561224701086628173842303581815953516196026196551558579046095919751680300173009214815091192440514964778149110521901561359992198891641226331195893267138500136792720659295020949835393827986257203223319973092693202911983776598502750337171650756752970151295754960035643797565120759377330163369501204389032577148418960244112676564183410764543737897882014578251807626774572878809370564323971516944168093725228834537865369375224133522400898947054482072644304150846504456768600065918945973988299202041748538414284484554617251198857682620949144888082093444906897754472592697791502458110680746896951064314829572023858206600535353302213566418552301006853875370449498607005907635275976416170326043239864587393169427384340365967469677857364223256425509780749674633155553853877970693878342239696079226739309519735298563645801366707000143593551704151237807862286661609708555273538859446329167376934223746530578201692794520886435980782338283972586031588169592043700603974216240843745001988923792336776200612939319957420453298561080736602161870811668728156371798839802012418942448971601016815591825260622944631624695840782021835548299774499550869917625106301326261110816339755392954263127393366981073289922111679786363216230734433727349576997797362460721298606501377895615060004202542654179358552977618928938770311485183986332551065200703160985925257971151025112592878214664364301836515062668170967705757279136316509499785323864001641682232191929079111170806753040595512839758594189889328587778701658155815858717980567851095366653616722370651767694294657685524936850214095017842891434574146758166023645313875068624709860576349751174266764582297881193804656246449707805815836454131512855099720160329541761784245085019205784141054517714155221486134025900143540772495116997790608364291380256486082084110226771772886373594619536408385955838464642139340818872517990696276303510245387803278936236473486050304191402990520063217954345723539410406680229793051367260625685573227397377552738414257717414674647495482024426287978214067837267011271618436213101690735912462746916846471012501692791510404806448696127438232471059095399214101536033418392367703458535534821309890013051442381919967234267156102653245379330312126687871446305635788326712984439405901955850001630971143972901226239692939283022362284842553425199118203229042794037660020592817813801490316040278072880719038556177529622857539429827797412631840551215403584806418874490569743621128319111094122718889348329292950293080897200992953876000907888116942521526816016554221174056810564524747536713046160820825655072036507491582679875420263735243195839456297084486110053936531578980506627201449196980535547746531837114977509518820950265207313934657611054120026189458425622955255502967263993106502988488257659806956296954285437969715812849750872973565557421544275657863772497842834478020392608232255631370828553988266388086413408334441063225005855494776413685480728119942236847002042414893646497798002741370246794672727276204640585098215144149524120737625267912774670277012401108634224117878249907603734972855012550096085407893545518639394261736459531969999012904336889748202340088495260555095380714951061694394734784032621889563579778769034452164774897109208612811244910579411363208639957073601175894458484390538525919518252733936145255718430145828821511356478323440947135496778489248622857520226739670161678453464932610518825370725157778522060333016645997475062269807773070317355381656334832737963700752595420251512719635733231806479302174218075212087125116035538430949504461429059065021967299671459254444615931759676251767315709561058672583285055965809081177169191859262431336445415194958432745922431536973019007314334437397735269935951283698931619773349635796907898209800654262215684172746725044146925453611909444527161391733624752988740498330256217919360234945003310558981266560611355500522270197841021454621294576701724382953661281024166584136088553964713275379710970829148815572771989509377387153728661093110392529336565145608277835715311726041402527591537866019453083440141959104898827128422559834067152848316896069126871944936293991610238679926533392213768027004622187455389884073300340264583162223901907800523335957260568272628779584477222547662460583610210053493700522931125404582138943821522792897967378035013279565770034146306080423689258425601722707839938867845046697515478121345998714442539138356744503923184467110189711140438843185995767435170339226439085655207685936848327194484873657994745095501778044122822202350866667323274090771169485964306592656683791896714190634982529011111431747448278889564613294413026723711540197575849500552108285631703693666239979839833359700186903331534067235625704247311677692769042470818558738543797464372700428670847891407524826378460763100487126607337960752258387734057354654755706845058973315472180586280187139442270105268583708833183828493210665016569180171335199692481462272019162715979910299714217793636370473707183491746670507878528382171981190200249934177096884682666937434507588363067571544369568343517882313128099102653778748381474690268373476877850669315779551064800602582653437559850507175762579868999683841500921345427813710906396220327639049352719010604304159473892273715561657732054601841281674981372803588712008454936030410744627688352870475456616433906565102646031496758863772696762637483831448559188184825003457851548761814280116897212914454832250191535862810701664691418595368293324169569628983530644081253791571716779581824725379143186093227857772533895851393646166760911714969078251880801606412788408612214617020264748415119614547408520289941497628218466896394728217871130008724826795842747324396186179987006995799745563696071513685045180302455885707463003008610477047459875994853658082182839940388567955940271912890184402918823879807334034704488423508080397413970809811308451939594160415634296926009938222386663514412128332388131640102354794906105790104539064379719810757739326884063536590769485870790711019343546047327381473917542069500825914283144555484501320997655328678534324472979376608154842966312081881591531848973174248965188455031707547990126656001163762035513930705981393254610057750176810505917432234654371253870920575845074144523815105921534630829457771867510397892431262161842041162162333539279810261192123189851438923829724171747888034924480626294504535128812580638865915066396958310332708800023074207209645863308360574739758544198385090539116220470558412471880412733815873206966715416729397400289696649431793797937871315205993967461180031172293219982514857232439115484066303473835954052496901139005384432621106001903307680926338462965815079537049484772418145996874497504103851417336975878757784498924319250271409103968987770537803033774273594371030135256393853150743770007811643591369917979908019426884166556002687578157076830140986397698406603585469470429980286726042873169256770585813810626255335499396605241322368676690406545719050248682008573969194183295868374409806245281137500177517702496449094069853634530677905891370041006714458098635867278512626423989524370344118604079684471075711466012862688123898211889926935956317168998051534434518992283398743955818078197128210661882313354323361125315109125617206321705667047414288452554534775298123542739564359895399708457879271853885564919766953611807968071008331910654173807505822674255356175554247798369516901011895079310523168335908017576723400916052207908298031445871603007826839678655708374555211412777942024621404967088004408935763494136942710039405932615584848141218962968233960294079324563747001864048801234057829049051239829675521834176090205724029827241609133888378254811237234855049135249281616076730376701449966392036132847437746225337674714923981582902905677500770421907450149455701185510576000914025214891081075144701300774479630654400321338700521422316109715275926152730667703502215861610745924946052358200455525080489510562330460278052886846330561266899974130496648082478820478169681592994918677420438715830358210374758713591990076546165882842420577851997999565246904944385580374037568588289051532311487854702047210897124542813996884057410149085085747794491778950366384684772391853156784247483983191723036438743126811626800081809414221668724666287397687042513454501338702133035543360536947261728171261527332348255863468344290585066440234860817578416760026670161588882866544550201936518130396903442236374053687653432232267913726592809906214902543564789625887039887390668171260506439224711507508011251765007243479874686052473048390639594705014309060296316280531452401135502602137336044018368818225675359458009298176739817829721144296954313793147041442871355349419100358393425981514920812942111921537101322238721724674453168666855266342259705523779143473116224299593728917424835121039822322039728475339696357929193893546932315653860010961655865645985723101078148908217542358515045128469005064254067051687347279979771568890366237421209035822199089907222890293137725185881427807714100611504008215973935689698989541805150900458750029641414816577030432746848909597760116196365639937069534535660164710698419546772583595244004752441906214740908942549461905394444729433105882507333023811867734274530215510099384722042229387835194059046332258076011612733224569120493270719840489177385274912696569407006321753054048828126926312935844192646602767722740264134089165365890193259330806170020436143698165199004066651414032044602660636777335119500514313509095254095461139216191606613593188860430620921240163249556250857683152606514045704908513072368516968385581433053694350560125847227802706150013915658822886464657994063456284118131144884760072396954498481899986728934317024789021548566704034518037534009674711186592017679461686984937045180300682717012623838299916197844389549640678432460819532363875096514485207933122048076495154374933691035648084536280602948713692847381320805862964062907040235098255534065150404689984002005577795791344596832108351356140691587531107524053460253165369304277388532985165885520950580040114995566363997491602552410899079939589688917418135065742727580190720139228400933782403873176245240986976573045056359086215605826120110514386712307896135714737215303987229231779404277392149041363887589623609207606856917104381998093229778800950187310896054777604445367924392697932824156768476200200174673382730325656556304171121215486458440140286547843142598888017772016735715824119688433752991070533870560566928599288935462932382420492067145675793959331756368357988789559752434268962257847009078826517405106314189721867417144883829748912795001599438313616356168793213644403534115865724112981738219797546328712424374372610960995211776127974470691202359017828288566636592995000413212176745472690233725330199659741348704592090598821402931919718965364874806294157790238384631850610538846937777177128537120618739768609481188152292243883977878566785487213429234311083247997682935924046903901608075047767054127829208870154323798430576103550867273173774288465252035793917808241863205040853545665942972086372253107844666681139326148423877645596634010977507042256495025275720784249636467146786006567912280688907817093915310711955220150658556165983627019641518851172166725839107955634971718837002813847440956792638551009848799910191251403178069433093264636100719511224269711660407300328271135373089273391487823724109039187663703829305304258522684131347043301662452307755064038990819610761774252180100240473194024017439903322238444417498631217725797387821090160250282252777698218719945489958106447530690387569181644091945662861115866643668199898651524782010119482247939202602023361085307470376948869605122474296746851667410917487862346552929123299184598648205243347208043241130435671846256079510547486801282180843546668263732088609256524768265949310781368681124060449262392150089090387328415799132912568741654379800758812490175178637428571855174723653782904656195138627229467059605452099546621178879587802018691331689271934327956294016430119337738370422727850811443920409870377619719546894482567408153873930641876084092626093729456040540569494787232613427048274967621651124283044354499027327771908252587885106411160387020926987482531142704369420724038211024966308139262146381360933273052362932907494147297430345074476807586257326224425988549696100337893613397026061900110790720604068427424321936788598005984418738392722200320328200610396003482369898079555694160282715049077962313216821896005897483352283168381695649059830131024463439828281501627085029037153546110471102663536455434255359536126988547461741638085109912107714875420940751689351487823345463006385658730871495695873359696695504471507770132634707328334894358394890686781324356111913674579720682772983094500480089149569335513840731444068413295762591428318101296149695540455219167595583905264120248686558847024454267512294446718293351554723090982942262388571537448743356945708243328927862152185328754512352627997679655715366115340848474507627310435505738226542960600174031598325705156585367948938962378565328321518477641661073971896642363868209991630662994573167354116991721509162668832214120271071389620859557153894128309918983406360098458891686740394574657541321799685119850142332319164631349820024128077017587318815332451607270131359500611415874474138985707040561845419746390721083009293863461977834064857179381587370361628174483633539881633777878531677902778185978792068097266197333090341561342711717483501850160604740420557162134643616339859067765019029891832727618343557089016893707644448390968106005303712517290889128389953971646608664877583377850158095292713613811515375893602043167732552603171358020708142331067335040264820370755212601711777849381782957763659969565962295077197356404721303454689318423081958178585453458461210285592017782199046430883291477971562653333244587879552857042778582239488522456324055089064114722931522326678992757242836957388804914535491194861352643146909043603484334860467986425093249043034768316269334825180389262358637045776145217102687931371052937628878011530705349725052498748531456676097150205970115473577420497570102190025040434143037476638888449837528095526167993193968702734252216932904278899175751876735447791999540461126659551391948233109369443422676499306118189419490745262209065342334575827957620701039843086416794837023480361580207604673942830106675789945702624959918442118568774053290513212893769209163894292128054569742297693983423063766356085177417417554338698729289896775624658864402109374285273996312554566374607215500567411378400100192732301708547431791791343198754411914887567151916203136756376682684903792495785549179909288511204200504040433444550079679088009882993482868419679588176417549883599307199999909235522215973295578838901339014576907720656456375257070061228944389004040473040178964772073788975861234129549850617646429928176147344153541032309962437469874704926406144005390524947076349377141757756762694370208184818108076303685783421728369799489225610103519901768988076430332432582376783685981118440115137988631832354785699826869246667175555884144751121762708303190176950254614603742942831709409579209860404351115337358759697983506776095348638915294280847208124632752296730705436874807630877902318212964559404986006029295978778350823125643308234252697493762926485276404588638414055180053170424697329777926214807293270417061080357097335472715457893027186917444755101323115964180802350010595015542946778627181761601210565650515475455820861978998669648533766210153104899706668401770724512048770962442168557618862587209661664748115949281191744853770484155632965579655793909620416387328353825226063052036952316658560819881864775077031631358092455766936197554674104579722972338590088182798035304960273365810557084257758715695149397967946645180315919780804273723491419191935197544719652374589376748921199138890898140640786624548290824262771870593950161086132022716406098577344929675472445759002145692722650427257897569224646704711856895570819434972970216147231279032195455256197528028115997261867932424158340298908160675916523294144436226789276967854135515655716447527447824808158162484370122354338107128937436120594775672210382900693088329116512144483920598827314836334032100868102829985492334770181453240361921810365426537020148827910931452828391135402495109283553913428512451555347351125622395235592440927071405103763662883798230230727846474103611353398160643428290462300296824338721532953518338014886235975100368226101135287424667508212483513846720382143109046661771546365150452339577028541109029659211135463172100547862075528532604913539471585567461165256562864277982614723615841536385332436502125491635807282769435392038705061611989437895915045337213638414933104775022634803276981322729827502882150408928380527441932243322585911226265703560716449724961245582782103161158743192697179702457136275181890517310398811518413822329060492876574247785728504896123379625386107429433563113314977929684787482206055505864037413495561239932643675690901421231593390473085929880078051961774053554670692917684662352291240345937552513350213924388142712811860825063870334753241008967400220091067976478268804568562818996133146265077314522973645361816249647465420611846341055163865096944068029677805732225774693400274370301633151277442388919528309151806462433840289154667883065845796636224505823503561741863458136724525633416032878029044336115488740603387263572619940653109698270037978481461316248842845581019957270564245578456261790408441046428064147683625043397933144377160864234333039233971717739876313535200908924684330017473463476261260610787604287376917895332941383144051859348798021596438268816368663080777950043452551729639671876698783421809281044519942487614357991267557506347621274721924155843214755822618697658894987090322796546376610416359507860787404255330474479153961405367568137665915654673536972869437936701200106230590087560742254009491041472382925847483112563140580117873927704338668476706214573927518102665640341471869981444775474416150623578046038357325981291227583169766866924235102164438408643347560334116797642145007557131734115372480900512986800640622056311021079356652862162004376612569723325457937665145658087111677732036940469996032356362823624198129706259050489896825458206987229122715112346014102753051359395045500881499830742414810994507899771994461583360988915693009541047581965359942554193386168498260609318157626831408870482929577596301134423360852486868698203911744650270735838188369157856240204129285928189570081506973146554956492699553190065999382318942338846371660012391881291270995147752877492661968121450494916865726810647648552526681694221928521347559843563380623009540284102806097339044086684083143062275660634490833415898104271063457445818575593171236645809216696943189955033862402534757801541283872442158751926303377694865666211853964362742278606647056170500029955684773371808678166791398337424527577665914376761611304790545593108319562511270258044140659556834048994813769823540008939620323389417570152020556850475647139522215171671311362551716263002260054830798950804537393438341385006074568858364479240264355079919576277260090818947147949806796288501539838642350831753345381547453562383666291024021797790823366643234832598708958021055175973070467666895336398194738933126946136523421112495969610400086600072751357587477624522739465087352271346955161149740320043525785139168891197896411586960610919950112995908357473220193954971672574678669015084532542802585898080071847963825520026582765349712786990471297112619048636265783215535596240242347007974083762458784986805968370040721654529315840126114415842630979096882818326811135948953550089333207004711607687227735219366745865369066176829303209770331892870417411790260633490180975724878499736810181664609849188016422736785138805586760805123369125408907214260616641439355950396536485905499434743673854851495011030984244707575918898220306212715961822631040153341200704477834098182021906599282873154697236209307993067107826232783238585883539266755712743009537488444355259421531400698262805288448299708364931913941153960213592120183192090117551455241283961368966854370220428900733448652017011485484489608887025683867405472966558166573071895047742429295188250765154462371087490594197059588871810573332188938113346748057212426805791524459265449061431037661085119199532431216348721259809493956303039888802957736187389962120096295387067878815530271835650119246185293098379950718559906983090891890038089099806936072368255540242246433351460851306879847859371353389050831399251667248374245596235723879562263273628394610801324659659411066416584613777475263533306301359578147009575852108885850761340531450120414885576449189089148409042003674542566026678242982093397202018657025775308665682281389819102120075691770263244000227187984262301998141135946962463870477160843547829599874006996062236345027810865218565388764482670078296466303738232466143574472763573426663212146546680746686140493707521918646794627200025666443939365263623317462929224624780845154395340367016484192444544812481354204549106259531968729574413954828056071318571146826249377495215615871587609783467496256186993609289153696364228913043424091931149677482832371040106528522289296029189453176337494318072851918357354006161433135255140867784866371920129287867938997915150278884479672083065462583206845652267694045859620866505181650777951776621718384731893193770270424809572205606510315356073851011060003763602796272211147836000776864901179750980240073939005070259801363645987265411401064061327833982787967976679575252670578106223864281215861099994874674664604128179475364564450974153455506801817487992463166133265303254052944262030389413248735490376456142484825985316093930592341754757000755748236888542706614453232437922460742136382014546133524121822991063016126845549253496824835558237222460221687436581309288175321386117055008144747775097180422937379380487750551101111311298649851213404868417879094630916199627124429921558719487349515889149651021505140629494993988709992683721420081348886075467571301771282305434929570510788873487688930965775477680221827746387394452607806398714307755925564253867209960649452723724136672759418044136924733050177851213067918684366715183389754486854076622105482301360861999126177236078461776689616320031747297371006627304887859305095774675585244472107057175302777329223798663807205828753631380534816159406386320935523969163039805955905002003161988162918200569008787776305079564605121600101123159241351943799276973952551332652007468773041158990290562922686380716245336091366209009831658198108184111186895169943321287594816172786627191554746607140149669766401871870355800338752144222477295640872095408009573284167119547262963841033562448389193866000699306118420318300266040760195205547081758559439865287733713677387561430802672445481409333780522350695442470197182556270052277064289213865386088649619691086887780275714528790825222591393311418690622134398688350253692088275093883014434477479980981792251347872232135624333263273909997316312505735868779403908405542027294021241609654810879358553918867120249870338901744934380385289631806021077030755489991485950369186206291945469199598018187755735846005881990823865839259624206111927382335167827194811035374297784146319757176413246802514048874502201379045206895167312902542147354632612241513002817788975638373454986261424358880137524255228582031583073416215481689382998940499202899855641942999369937558677391981898028022016670213754417282032825294609415855424680929969706939196681216459237958213446788687144113249422797013438712171620723294157774005027980565158701668891299207093747620853958623687288056812656115682603901357144522749420592632748806191141209969489702707828129368026131713038343261480787619510826945882788437072749603670597136670132107634786857917090187438878940425640705208939340600282020577218070726312269848453421310801722287035460351903142764688365932193625068969624343385556036929939285900695897215046803407046629824800322545672880266508532719435309215577227993413991256965351491593285389684013391561734509874809363512096815687164061448524658462985882770986437116093723965475885272775163201366665869259463248537373691235881808446734003088401439121145312465904038369414068400180020384867466878812033437279438048399774538415949116993512579569435550905406945583016683074242142413065465900120712578797732742719752909420409356501426675380859262557544193341046136557366852789215224310040320821026553792538502622841185212931165257059603945843638934711754087123029792401671280896040071115698087452202715029504973032891063397468009639950657934527395166445708314225156779733772562790335213759947181106166571280717529192706577724242954461751722372802375373142361974210299988120113547582417151822998714832551671830575709132826434552428547982231143356153586905220402027592591356714640103228390141252780511094799955154473274107152321023560451230181041066175803598639279501628468884677221491433848046555653336092213727966320656909311527394944122977829026927884077284984365632752553237330708244968540700628502045723806226643752956039306871705704161561057509754062490150575332436219668193577687260333135990490320969197306914592173591811868344445570096948477082765900186726597118277654667142326856564184606914663901472099437382139431799465784379934409820122448043937708854916320575916639074801004784582578032821375423845418371958815760160442479361146529482944664226156608708993268407631454790764517684006946966936477915394143878175587265702224045945691244877831496272429862424345317724264254561031219066121309981491248467996497436590417912773246324123615225263498800534972789072232575736031491600361528122546074707585425241137072368887911345910254472792283924328126373309258526775112634994895698435209115399724269537203993574494686082171691662316392933534653731860899638016042054251391928887280944649739522403020866773122565454717915169623891499555708556892536975178618562635245765664088682944543392235857279715297046780979938682214290654292557841223048840770402276994983230933436907937714673262471781193642036503679072105975392423435064698274969186133673001385765201662076991672733822410109005669368914009870136372771190308372774858992486692002755691789422334267071651234041450234279594972648032330259623823669003932775949156896054789094322714604298438689958087126178594102024119076613307044818384221471958777246116298784957074295790112033044576241505741211245364411891154607385609401940566829586407756096198311086806464028270421003238608521192035300071998537798315298231815038053004813910766682721996341110134489713649481623162062443239307994077461060224500603814798452136262920539677191377825152388199871945670620885652763346354887435958478249955532037136979661022835515376445913468692373221866630696789571238460902146986037243873382529136143296983600856226928958307181373866303203603940169420268116696904497739354703683759857101487372175501320396579960062956730397981609686348202293017291735231872047031796747124782900971635619883232733706109673666333702693790013612439169369607171398129018370498095788133578041884855721923851290944359325799102302110733373458567383091857600129537574375939252755698730034435945568219740846365435946898603068048550665415752202751228113148000399647297445338154380938560795326582020714100124812580062847725495628226319367231722284836451529825982312888199162821288048628655373216220803028500128685079761404400810605783811314727910748554825385073107732681066859453888044693236639119808110904094810350297662105259280837713473222756907948681068223218222817050696207301365308384760186430495915163337813996649098742425771679973220782224648384068797368879214287992194243411766810979512352147883401940037065241251249129971761875441484253386118762405060822165648709587961027824105757060776790249701218068142904681909483468425787496463669639564516369814894438551096248293900631248381018014516053206863685598726914466517451596252174468490824970678262604043191559487032650819617054591689255769375725794860459477728361223822553733025304460977766414204393585768912766991381180806091292644279673485003989526416771550503519705896728654640288753095782934183603839819942532791772403803695682766409669314663356132652808990851726168288211832095041581075030165470926681150335989223651361518305650289658033240127575955586648166890732334063891594878584120833649564665010869701201010957013469247171348362089703043100038949792558242997742914384087563949508997830844377938790299303087151526848580636813660412181431241195352604720868389531550226579273994287029762140234136271026800073917826641832405665515843447605324657004029413314872090642857266315271201237571751465398789034141506214280018916015604502770116120934517032671714069810407991672028028972194784495953460270267678459994907069526678238866123173666960386096114345871881297328974858958667048828540450899552973960652187360937221585892646327158628659283631192722296167061329287009910465848272507950183164413274658206839193373912354390952651410488251465364740875920334235861174687116588260885484744378768866120498990699431622942861308692783029552365423080003906896761445792572835750455310875460590396923341493644157319547712328584208787374124871304508757094413067830149283625518468808132407811388275491389041588322925840096749204300677045796151862097956475055104407969734541153097916227464748076442520662435880694032206894908725262025185988723266378025219632109397955413549672085684595247627105687528759239652895086495940421653810863467501517921096119176048653393897126703049306278124015022452523097078445696733023041198908850925540792445633283548204419378058744318878939397215377667056734522216699899343556993783279485605538436730749740813888730085830558996445321206943179320520161533690086060324659613115938026355167768492201906061880877350486373235547604086424955503191103010386356628793201168432277109557535601230527957573633931400659982380827575754712324845481261009610772111916025419438738778274046009731746993616822719285544631533078888931284039959032326984203631719909295418560764242977848162822184306979722056035776933522206167739953850860883877293023114445297118623374607838089091486272549426109699267432015040323263150266972362798067351310775361754761631104898081827240112114440135057343553409629390931875427642904047620158146411047244657865087572037337320125408883791760715907600668245123851030217883222629356833621245968335196646950129056470029120592426784750233214648227224533770643459757038071778569776467181662893467622940025069911453819189543887992814423706201405652406474870684129192657311362017889071585109028506338354313600341596264805557758436403393131278456943802045761178957362710445683463317592831303603443902961094775835524390303307901342982554916456156844192635133553968649234476844031973809208830978510489482327284394965423806454926971873402800654708468390037703239780929654249099992724159948213010877885556943611319813458085267391857378407604794851669276080374770389589129474737435353990672560062844628519787825834887403885338173434207465000489586453712179441607141834735915040260346165965155534688070401263861926816589772072950655440828352350628703606260938810962588101016941339660568086127404898712442724704339766235836705495999669376111982939723459606233684229147078402308566275739162604722792103156205253521399787351324193236502975068794064597607743505469279589918755693178931848017857955382075296777980894117265078766217158526396631970810217635973976629385934926452175098277860951358918477614512249445567009635008892872951369993498260887160781699328700483993368728649174103158716955459250562365751637641955733029319805620360637929741460155802812605840396396957975566765915255994551118535176515974795903394944097668344552449005107057408662422022217974425454759192753016715544056925996924088291989901247624567013329610258506428309428176596626746676827657822483907182128967023502163206628188276490851933896845182510255099165128121329766954971522622011795801277286132375399251098423992275436105021101070897150511591075786267776451677916997370488696504394282866786748816369805934480930680372936141878373556156142843702276123162379484867480653946383641708357625954526077387893177929703651431930594749887366996579634060169397450797540342788981438718966550736447770703077586937688929724710729344367136810208974620655321578754542166082551235844684679875971037007261203936791623197283962191741834291532192726702413545426000249364439987270979755498006389784458242220216013692795051659685224137018617253112025969823105380680859169580944190129599907826731830083760860611136859665937545018451124200079320453830313217904701930811093089874345820267464265260875790705559427655431677754643470889618902610215495652841519038767820801151871076314175384844428497029691325431365860471502789702465396121240038160492321341415673594310626420480040830664820210659777515425750833100800181574041204260335138088101046904150263892324689344883304883274276969500971033395007889369788062876162552584257275243842959565596931966729614381198153291970266939882237048475254015616021643258898541430165956762698482183565540713742596042366737462990641769994033694130025396536133910364374327368255186931865635010881874577600107333539088316228438865556684547896927121763604902646751529695011900334107562429532625665288985148657908079247715777743310928891079646467980445612254309067789072485847409306510556286072930646132367773776949462512504795932632326805825371055304134019912205286962184684017476758098335302275676530339884219747996831165750345018025407763184377122815639099611182010602771774137190944133403391751134930954233713931267374859866078411055738230876324651006849593745755845916964943356093734748870806694238960664437407925472353656642246717291483976910301498336835622225671115359776394963805548038676987044821437244838623293198760568107071410277756407616643703494073883714365081597958661733894617195695283011546128155784880583132035336268620738824723027520310817460310206155809620973101373275168603946017560352909702418801273793712053624243336071853749645038878397134436270345142885516704759439816145825063398108530371853296444631805201833098528684355254042976113457773404997462480516150860354241166326692801702713299001929688902297734147086226723211341930410491323356891621640013831050839784197451879537677161705636292069809631489066334404162796838727584038589594124900608753476370369559550534332486949238609065987918169062217968553648278708671469592306167551344684448098663771727920212345333154611603973285727781995531061769667791729685706859727397366057173087895094896513008597342250211564266005891983212157641087635315336171092620297562635884931554780007669653085393571792873258363713241320263525757651732627318129480879592887073900165627784530702175720410192697302866324320969178081911085892731693811072412345413782788930862631175494902742141019945405392673589152488172682633894718870262921799324872747108458602029906269955177567179993331593104165267030314788463355013004324912422813818649379546422143110490482591807217206789289136376828655514163723037211553476572923047516569741612077315126174502387898667207855973479699150619598769276267485570705094538732180340529812337006495858364726117204854538089454632461017714974316613701661045822683947031595460523687550057485476633304090862234905496350295340300875617998546090347666348059437182320386148647388517139187420773693638274033634967894326219778372992900847987038389301485929421044574519929194440334210651512901694064243501897742720882746505756364033853585511116008411117534505148123566108979158598356127429975185150213065321755847526098956600675051716312146310329080013861809694294260472400337964367228677187080242213472069809410891719194964492195874449176335860749251803900703834169861718884414393274422798305474856399760930112399164767869636630012144202727931538593345011435555171359457809854303572568053963019500654229968553113492530527652479923125487252388640584031171522059036158143486991596060434088219719582760459370473724606982386089513281229843662915950452080746761157663843551521048777205012122791879028450235617524086214837809731386341266879656934605138431870383687556468499876136155327611171813429872363176863105592418030927691724322530941208974744034644125836752848942605935463126197590625419413573282080199877921748682257687345218313564356614697152088661367564415717057007396907077809163695601031031629669011458472011646602441970241063158156135959052831324128849666378039664674818054451371712076273026013971070641232850358613838783586116761898845675372208328059044392811455468395443980436311604955618507466889954391545363272092829633835795330757400189497743127965110327829382043569476517495117558810342588298815820157999298146359168244484758138579536734954554975986208797225155447335120643402256485184158426413998860566371568369628813699035715848560139151313229938207722883390443210489884984760368037444979181400799646506317182798062473866448038937281661147285795521577472197614254481006234376491756644905672996060480825037999165361744136348212812734772041790189771356149880956202836347490221982174531483145423507952541469507556518634640116497406033301562882050136204026397587255102156132845404563780159172382389211713230608850902044219688995436041771022566778522582619145430385463445565389705673479926110082325232858708796619638918405313607892824934185879216051537466945254481474647558082699921419689796723453297446300243263440427670761734627754810202637952980158920186018083032499477558397144866912343535276691658879998455748745422223371366902624492044418151343071821556222115780407621089414995532975054818464290986669366264695601998057370927456844437597600991329920008960229949163912883017213902668132077692125419287248312516614949625249882501152101007183220343758163251693670257803241576990784464118255522721308454400145210284944491553598966899378724993133491469288192856275481534765535437750767634167798858645821697290445031655190124329190757020326158335534611499857055739883558631597406900675238085879418664555917572749743711456243174516121647757008851390919347343218419255640008077304827253397024435012785665424928565213555294000093776754783902786422862486918309823069576034545397986555995476084401345467847366855641694446280747029548528813958104521416062556039149382117408984217805995067286467478892630539524393299801936153972086490781174095750982055141903760665612381677137643757392656573463532032101214049606081110224972088566619063398880032381877607367578618879579858404759977955247956792084738379118024091430627782591666453266557674668885408442584320662399594549505752381253181641690092443927266884291183230669988261111072953835199554345733095188719274278964768912423456642336384069396313209073488605514005821290540129729833296477000112298782940110184076458364135406481227936559198737339120943877409932461055403735285005717042086530437220775070618024094630020640186516076806445108809050191429912114904394512984026078646581212314300226656586994269460603194763082550650852687667409366190357926482327481124359013491710188631762019737308612231974980302207427240292640594758616532757144983830534032295089796873248809894001173044030025584910803655017990948189234446730638302782969766029699877044419993142762779153770989125803796054216573856004941188196023488332212169534026804854918252226393201905094551799834022781693703916362624117633995829199977951034586713239567514045356505865494764569836319821757121590000321128634705755786668377967194611416389650108880717141357413296696912161611566846559916532765049320949999928658403955186289976361625058316735161682924621508837866329020735181694332377556547659302590049719637467407234151741352639448573188411613884914914545684309437466882510079287021142485525570024252438028624295610986367728276361579239243092011199040818212701629191031292437144016250815118944484088998965699047239687892280030969594177501192919645201792885297617662180921333227310462229404995034436862629425601463092600571786508759141362701937155658832724009905212353156367674375494968466285028011077910130770981198753242495817150644700070713632375696995352534668721006482323561194836053123227842504717072686491419994994625365818449464829089270992797532217597980453637031820708065154393636029500290231389705531055718016905407673695727345802470698925574890689362197980877377519616579272794399908649594342426843765494308013350496339579900378794932050632328857652910608120496418559934549395825606456422485338934254496110088067981413155357637676926487787566815064935476384292113567684274413783260126445377794774220045029952494231746106692639222212502275008205812022847205067910304415978745267511165691466490192402016938373407905202624989578947703126999901993726921583559115899256921520419054068858363758789666588784835044625274754750850032952097172371871873440040710521355943754291024250663342298525382899860484726189468450262004571588660067586957533021288205448252666025043657204580464566035507819264495149365477588803665362717527588282557712955468898041392048047409654887104973685725263866117553598135512312428654156808622253118719958812437986412767366214237021689590150271905697213410227606377054335746772418448165634765789167769224957952411166231010595160205095293201132691917446300584568323059925099665215882715346056145545561318513623267537705607307863431782029074997822783172303495032574338020692178059964341381770343503293255813385453081529943591357450706193626038382817687940658753143411070402565548295807121934114577288215950887804940226654372981549813546641264362707572307418463387049085241182055672725262338281086460687006764582917052255878838042825402055565331145784502837591870619195632236952489087645212380451433300863930329066192441798176984746636582137249123527066655746627565486599604226517359806113752177591978256930885094390003330668849271977675149556864272829318284060969110956597406630733012964934663065600678101047457911083587813054017016221492176900991257065450656871527034765621504563574226307811031338724659919428754819210055994750366992108156462742628559000791873796561491508341015810113606567379442418597129825416871832519716588358898164648569842874547294398371677481823102007909443700544235488943181563702621397579184241180613175824765382032853711038050992202883034850339950612675402829543025421484203779709571576530233357826475564051694920556806347148758065979104705670262478185502176998053410941104652521156242498735343406827848693729254325488748631282957491679752507970759558420256727236175849423235317052096670557776851155460402930027876151691582566725193709063935798722447535505807838176513580601475420278791539414524470992430794290979948415721886052021506703612981353508826533612383688034189713325893206124166935471609244317688584664356008796663347395782824660700238572441391501051947188274381252148675930464636085100515869951560157591671313834919341402638827714811065996795155628221805236692654295362121778377820324268366523539027648332884789284354981669022772145394010180694642995959022552075107671285529555661595035814855380092095237149086019238322350015670738978862393582299844851937235106236864440932212945218706234312094083062030650754045470930816882342438708503511243551605699076441971954054218957541162899504474077792558621316264075389227743158077291247410347042073307856955198895227100696312317586844401722856476102423599587973041044267382308290185908243423416878275250040957361549707912572601856351199048671494160792909477476329776266788117718938264878217809236780782536793584142725301328504728505461570497373599115595837251785019043316338953879756519621525052417051601599308319285049009618196053338787006411648116964107050248410590969351164046228809198380017518469448902703241442603985080402753459746577366994742223096969093107626857500257573949133130728908828618505242115275694326146428929786204239153119747676623035444802772745870500601354127733882053508621634389985244639550297036243933455998443609681341142916083013975249135412451643928195828003223035507672221731599856516569931347140809223413733048040077859403369076918639707437892231708950353174457430320629047807362231395266947794163516401413003498105520391693729238053429337097001374390332414029178215750399816971938489536044324630784730327581551171375849486033323914812302231131260078132048886264445312096070207192075166022711888394524034251480736801598425363864825786968669105175487379004147284055132717112525368155964379385161875002261082256610830934659500397935841293119035751185608468205474192601466703124929901595186353870683496538388660830201483927764477623279049163109981934088069124506526267371147339825235648761035664540869451518325635942438233036819338182342068932337229170916606716560416835340958100565575602945178363495724892572002753775027564474505898837507179024839403033785276117258462183627725210724214261354008421900341934322280487147834224196642481806190283742597519307781823522523484947724330407257814676731087523830634622552152954566218769989699407249214291802504245424341521532907469145696205798325907724640730898161539597977501256783817235549788239579564138270610761410064688500526163951203752445160894333831262962168618906929300651379978322970373601432171714333325583715998064402143269921533493340752952441700092813344016438437993471153842938192381138846191638882736286797883028905431740050344149904798590718627584039359915257041377850774836631870532992210276747665257891271027231788052399220985520230429190769747334284169979460946011947090165371980435842519489346907639890261186032787905245544486763720066198958630858987430542069060702847628472890979855803844996521814466097926144049729542979696294964773762260370437309884749614653059344045826657520570803326564988723076653128076434290734228989805244458200021436105468092165095977801829706832846464973528882327636698569948367852527761108010979637901704834256970957180784678616336365824571868110147312864334812393286150246404551221531478840867044589172336249955325185985664698766001014063582509132974753218884714900214869179879156303383846011028723160127211646025782201253169747236932742507072950910489548871893415460331029974830632431801685419758700522585917841384869465482991215264189285242199324196077312433117964486692860460235241485384669182763970024842660968709312797965642921206635756970641179653284940332780541912664829219115895934784438434184750758395404707006600263184458109219454164379516995831914838713063810816953209778869086981612435008757843290673154306829144754970972606595247290437920675451241303724326561893867717349541682212633123923088246317423984816110439600684399259884182270138413690431302485711297149959221434661767724130916846728127808115762210573590452261690020118265190202775991258133701475740839100805348985602321482911434674811294967440058064169596162304685647027897452982588075220726259736324309325956881147750887751565397401320746819542824721653760160417206135340256288478284797534761339998494605424066138058264473108273732338612387663961557889065506567423770976352136835838799253465849043441575067705430855250660060577407968934297413480981491691428864935667253277585830939506710425247923018936429911701521174086437880200754788615611788932795880989193137853861893839516415612243110834660224645015747076584077668404804050130762628300361946491174295724827649963233480424686097798303124215062454395820528039916738916432187400610501454362698672515183170777916144921454123552553339036565020892824610084912245838290649095911641583117645077578630946477465062097131387800422702505112912731150529619377987999670709286794402399571721681992897496138292150700794821326902324834224395741188987337439773767812524659004232986377432691724303144182422386739939069126953587016369250926358750954069938115212740528436911491504838750475154908291202065615503053453378801281388825919264439862481722199553581890666494636354288617945848451175683994056734954724626123463653394972049268898760358582663555670793075757417364449482609599822038791228507069363538070906961263514452905504974643312811438344566861385716289471767507552692394034346321986178073890882617999132701342548447258105220912560506617822797179840244974328606229868519181443757656476731279581242763673027772296152166576032311602671242139666478218325781001842106673868954028877407953868901761637978597696243499983948340603019335297595788114837410648454170525837503321655144924805938884130829690683677095674671577998861852208526250777963639994399250134624035949782302658395033397684642890124483616070626971584039518662484335404307900246707680502178145661222275075225503028884298597311941066539635631598794209920761680505088346480598539911644379121890919211316265073324129323002445574490526749299988430903330109331386266394367821454478030859089248859638359075467017204986212740125828497340741377389733944502277714866830485892768079338319936925522649960166248914898966458411271832699642443914272558520489007442864545507113786905927547406578472870940966940974092409796782073974673680950683317236770216216267830662017333757338216865710152568447613610104492805667606696284355947673046680828484440456659317678737296879037840855533542780060813512746451471936845455359279086844994863963527910908226204114372541378282838024095316824295399175164962688591487084093629408518292141401895025174476467905960652315065350515918356514335981675845240176784805898597211706313086692397460510855721318398225583685753573778791112135385385014566378793885693082706610753693272318492727729992881068315386058160958931832981148466141615438754291711492948448720324862163877379409273774421290399105859380805185942130641774846526491367638991414081444131944009376457119015733612456264852282748308398919494665351352151859993729077306334625829235254272485376140282788410079940657312169340827916624668309535946942060492241522190226422991436853626838443545071754086443615652644165176418379729787156384110223799421770173981194299530221955300646393027622527275625331278988686964048128832928314130476091027284169154990140785383481356827199321977240998002531384589688114550813603442406436242156236081260084366959765071671078925226702748720888870605286822758075945862172632925376360040207214972068282224898038749299049090142773529665175457525629864008506146317083029804198341412479842261214315939974509223843977038225040461699318294628413067437971709406822926341860643645566973309717227732901177085691756386190357936235775029569219629536273716049865301642388570311634530774107993164159252245548884812306723372038581799294480078004972358973792448228871324336978607637670544582219135795845236731892160430730006684618162860336583214491591993975820033363781628235133400998170911878566141071269723542290898886407538409570590734582158415565346099128743695603552465468183625901964335729547771878316899949183796185469863355477023037718897516532788332406472577050840194768154849381349708293011862089044547617469974639617251241575756332526284874783262319977859433900624583164970568913341376521699127240960531843623300360367962690364570759622491588844077132844025369870107396327753011249176337808998579752804064762483553757855669601035505237471180245462014658818695439243806388620849247905622395966404822985524481781485954122323124012289144489999286804602046103009419459168900404887474246925477113615381398297482048128813058415685041121771227682460949926741101142735279604408652219248987788800446012282676879140987598068884202082110287561740548088733915173199346783463203373835021267365845340124044849000423027405939739396979085002004682302007067828561042506679321694356393430947935917634531822036474162416807962429401332535948218475329925308037391211193540925174688889298206084478432245061870289273815935934789940610229255933092752733752089343746859176647970097311855748890385888286587080845136714938643235139008181146964860504058347067196903702002064175775289980094645096370778451401312058935507944325976947631407957139376442345414157143995188196558312714269274037821279136693784438415571905492243205303637838444223798486404990950866380611254206073894286759288273228816065181102094797738572745659506554011254282858822557525738967657856394409503217365170695753899437323317527342884480092288956044710517019701798469408244432570714972096546119952083294573047766475252027024285303326443542704392662541477395220839218445464425534237794324575866751843307344317164062035476908949180513109697252720953519520454666187544019970081898814083936726937027307090665795220724726969053139058178426648867538388021000791145892928582506059252851077928259772201426181717702066252804388947832114121144288396415233889550661021588254543458202294359829975918080867246145385258475198198536066628041522300152835084782563075253560205389794639719701073025581118385692012725170636194827099115875805767879329680893579852238533633375115181552871723264980503424350563217002871614257568937449253211992703634790395955128154588384315154325486223206290902476328498728579831021504366225267408787728338197370991973595535534677654607741608780318825378736946120458459013355186593670478774637066435378067382888467360970249803255014319271290800302056572136080420649282801805017986600297737715485606762753917304245095640377289582988263945716227889278531086864500256627213873216453297241280191867550677575130766727935337951701600596991893304351130026383437727318144818214375442935247413900708637284895895802602597846846176948118589929309647548011555908021926268387107815585752336224667742767556705723880448251183809147411465174725990261753500579443957736390493310277921423382285325785500189176647194570155219195568406003737129073830616136734776109929540844359478795239548836697028929381241107744117191719597960150787826104471411955019304243295259545741954824836979791607403339238193323481963381819372359363269766240475607609431534919494464925635378286395328716529288336341323141976555329704825284208812296396976188419702410514405818945309381180084438571597899109487928403534677995964673972931129176148788339238344514820820516546086321554145517867967411040303930535900326716746322977706244879294198034268489447965473122078031516986531361367228386613749159286361012740634231999642812589735277495942607615303236271496039102430286120155111483232566947317607778405225886141548538371972202021614269024233424128904742397366024221099058140428492424935150790027037735240343330453294382780977833014146076966101072621341580598354316917190357350932707600457189204940382847838132813277391479466329915344429662324532587563777675324677068059294245594518214357701827558186367704815180337469031927471105170298067629449966708297332204449831389321334469716024397381738878597887808621984334811624296678817141227101951595600563946260678899620358902519259083598165416011070727107768405834354751255330221743220049250070797451334870665106139157392895856683200922405944888954560750789713818393552808574778941273237293890139604521759833773401632227927451022304789419351152914206472720176228941442323156161834931425894713570707483738858750138543049915495781955185287307984649650304519737755478857110708120479743338231103314179612856283742832288069980610131074349772206210768159868042516997736290689559029250404649248138673336399529150950227148618756986263736398039080086601438983781611318271102801862001293666896908704999946705510940632007241157159132890421543325181848953879797523850742661951024851537309149054867994072353038493157489302071818235125744471082887525473107522212778565572999081983236099784203782228399792687369751612784768134139556079229788733985477231369974444818244157867985976075036928472282959128513526355922210735029496856595728371732285570020685018582819268890821826923844730267974085308551371191419281350633034256305881254490989329960712428471496221657736624701751196538888403269671246336518162716257916529085547052324840275156471348856897644421938595015885616708098697595557795992508837093002297331327405762527419989258765176534488728246665033673459717956231902114884097423713275605180610929565943649905553369769668217022168031950812768851724782254595088347949313878972946192449241322139045268849435972370281043135654502625161610620792326667895165710124059479925767533821009823055828072631385461539280003230588211883608429526444296733481748606975019814269881362910524793595987379476160945035492817992145227996436889143660357645419313880528644253695330236874229657909200669349878777827195571680348125313769841246365933501945093569252587493590859347400978049878553456453754543644037334312203891334055503913603251158414920379468686739562541028107502779286068936680096042229299633278212465157068123268700138951049275998915701535199274202408391348959533240111110808772899865321806878635380542255525505646833883799525262990676516405983263676164381977825786376042556523759850004199319516096990220317605365915372024455533420185051216445527347416574069707077050718761668221768561079260749158928484640631157454580343744208567125346184917268658703985026779940745066251666546368736300009526776634726605451256155206125043510315976039845525203969167010477255559703816935496197760578310007984726645018191787874908601782993908729252935653470846375993751994543450430153529467627625373081629950829194119326996744481997955484584387527969628000397922727428138967042435964839343789230262246106841091014467494210446881860486887402622389951535064502689900441322587326534025219442375647334641515883194646926049613440784292864226812731122457951764841176756445199296913373113262368889613357264089057496163885428074823234015156543050441361819241992406178328481735478648350656067096750267012198251747401201351800010236179764938830436117748662797748950964919416723967863143104790696649214341952515144473779727267139043954070138653749776822687032329368697908588816688066283434192748658369365169991145837194399520602765530424457698633454139427203782854529920540556821406410319674319398090196158072417998525912809229548557083076803406656014156402401187161668574674806730986575813206289279963022899659024962253836168313219390167876930320110245665801512153143684789296012107310155912932820756923953858922314165293420986082165111799103100469395127974903786338058802335035999995977756122685064118212145296033614436574285996894390919595074755022949782573765159487816625885773349358822925228516552867397745266415940762950537585767324189130877153836462979474506360915609819030000006282651632193826070319009553612695564338772890322410409727351025050591192586093012768673884033866263794275945401688057227379786736564090802758356576103013407280733809506287863043930251029039165521048979698405428463970632195914351452826494119656035555341982094680494278781070438597037022095499939685119588283548320515642429983953029966109029137169683313761935260924196220036516358898210365760765942923439072184791087750937510660688990987662464583813573361012546190422245763891687988113998403925187146737814408135568907040075028239139747434056896863922198127988463796854214064790325666930929092866892120367439780123058651361847529414882608614828729976144307338378827495488474057762431584462561865294704681600526713720780073114602986817420847642213962704227023576557802150065419761770015703655500806638811962568133686181259718417884695775672688606458713493318459305701470103207301306592777589501620196540314498342795946027039569208456429574251725191391286721649252911911878363564193104756777397670794120718441998252021132610525342636626592558044047567695103873773543658082401520825285690874588023326493049911456566731699591749978736206135686714545198641669956707670161418588275491885032053159528301456750176195353287680616407094125934234518240382185765722050590722785629310681182555152676428801344348265779138911053895713815116326778825806702911999640225973431298791924611620357237121468806774534610454260533995272971985915116326690617504834553200773306245356169623059548025013073608018796943448937667246552347502650383528928049252271492326925232592573115195999774604996849493494763533168326902396110132755895367016700786473160271232252354517985856595001158870411850116916145003011865594580573289642113224255626698978401363308712906652471711114930147193836878279015891716055160887355348059477965277938261596399506776967568117025285959291612897267568885634309664960461775311332240344831382891770661962245810968995326868785184858386947841178550907737943254391920616872956022987126910222753489808665247674668981456129017245402542055809950714896479648890043958299725225717921257339787495629289731732368780779090865495763065407146382705776096946887949584440396523444398000903101952702507761491461626835538558596792121787713911324284590066108568845503731833178750306998001318778054337324458756673499982159325582216496060098957718788897744214745108517412434509207070698478109741975011660124591100689834777696606336535226895999818172482474376192884541447702254904665113325485423192866987027256421519198447317852750745646443769100804568161922944401456668923014528534513818200683764501303302802334937853153044809078725158331024546263840415950260986869106660330126111113632394702801281138437639102444301893899231779042496652845259121903098426469031831634977251113109359770972495431930618470694399376076385223277707795664567051085134298424014826186983958866092535096881926669746251947812466721008679932069883895631741018193419772628947682933604708950481590569115643176321811611096225695824127335156277143534195014349010034922433456693222522495298226185238247169224477157313132639174364110299415889028440465103668255546534497642453074249659427617801864170522894402764047972693144379309484929507853626908672461681690717805918883782368466068417832934324800326019272569559866994180614595660734260944672514673816892831877402182583391223696160620224772137804003668265115675969438273325443020288846239537274230186842201285168949811793359155120137806929520285815983536572888890492566323654714486920077874925693454775844696364298370607659728947587384185368190724605102060926591528574535817776349993513410160837623319875767023476184562181260348958512411002930166659472637350238427117848925875072866602215614198258196572152994730469051614017150316845821724150757654147410461034721769443962890297582609115629070002479512397951192350433911719711018297655155152397653488555655126842680948415292177923670706982434253148890145840267996259949825698061977126461624349695369728734011691231501589955904243740142479057613298537485228507038426870018081802733105178072053351700611660539027895436350459367431287468288983438845225668023527945248838755161325643998328611515394027696025636162385383013708890329619199562258492529044499507247848243429349563859814126055163759492682694601664036794080404262153728314116341790623034893957512171402456144891599969948006116759203397986912348048885472007906278244429331554400989746181066661757749064161257777215857556226806311684199645878081138272812201209994323407271600814976661862130767021642465110947213801105886598279110591885734616089028450899148244634487234410694858621230012281906927480902608757795021972905234360481826266148405834829163370351478376734914545991967071835926204938628225199610095805808401802576706441245340089397236426155775800680803781839113459838765978166062302357354601899568654290300216881525813085234774872076136791717748045736254839127245771016682671065135840000980397465290025198896973864712469791297236059209647345961003647251088465650582652229103193653949821053318157821353031866622471869510582017348748931824447659810569848691439524917777616857027330337884331468793983462197055429487632631765160704297289931054871433488498178835258940047607116877974925682419232531126461937657580196649945629211091136730620188905015617356996772345161201412514551761130865740054724959837934617384427465443859370670853180960572017787062448728008822807507256328529672584939962872862370668795314087535134802680730890754486141369265981301238494217364370593187108489593751533990476764701200600515119273297921149694229472738228408461741503610699178414463559343055964398439639634603271182859409421658970903928713708917499339874793430448151662074397875780392315108806752439556761544451233724777038300339793668766908849469643941842564988047775007336411679333272006371234740910840955652598394175443555464437478309034996495690211562666868031478331091431084646361777350713945413143463175496219848268098656058902354151696590105985672034096066070764077174490491025364000195460854186415102566647385674765652752141338499230987148185109437182910052556152401244684499396015473758646490421335971722180392498692022936232500332141594741825259073888499079036763480801730736110419820343260921821688705162356551410319960756379436055045059461804842199777879073399229198734754227828710511559951342569384445161239234750375758518759044974979693066464763378549512646213891345804615235181337099973152694394940579609060183056241271834516105976958869454812361764350147600794927730854526215192967383120016490000727699063156333361757304229263608437428198545674280708112913096841388467750133297882593855469777722064603926285928649036219963172120357362053119006100887486598973048401213145318387519888795191477976359017248705179170369406754981954199476296385197721682485810253304586906465884274506680985702876054660568440548060880348168916730581002031622617783863674975260623286697490215661993513187809652033432364908265524941690272748446484002268318244488896869103048433326622783737928102115081626009758107972003840586752560630214347964130539495378681172047292467882732360742216103740854079265182186553670980877545180130500994251008113490017608579141916497971130823263105322692858185389641353400215825601068199365562869975703309829899561869958878074456843435259445599101817649234396911983713937869676772007540446725596356931261974902687145471902654830407070615967102061745553253754770081274424528728008068776864889257012727451312007267437561660164112048208271857940869399265396881789878817592366498099151097778925132678662596724029756023580469933309407096757778235987379230268136930914213993224591646710626315574754468545298340421180905961967607564313326487307733006195815123559975332851353156621937079475876074949848562200108597470527995225433884654166602295309933933772707036801161414871685671267507916866057145858010689776618085028187328447749224184097267025144220283143502390852521583743127422167943980902505669700991148050213570057754562690367967922305279947230375212585888511502257121051670346534872764640067944642039805482517952057442705560800923037897850193990141356555671991195765941789644827567587560185836963363283217903903395610037214615514135175070646089451520025825714437696132967091058969048776177486596586626375399839779429209998798686007836958188485714527149863909143916422137112593061097638738762418593041887842517749105741436132038223505412515800013060845730111553405697431332963110479225223009405707095338449111362456419649241208194204972076991206663390248785123393633282594197825476376547927382646748663290183085569902493284760709682055543492107171999245362604403697851374107936765667739600442091195277340136070087657432676198103166753546723062427075751814277886122579815880014500357479576404447600304222987196976170158401413829358174296497409045664838715230258573002232457134633155681823663939599993538083871609350772638864325112231640888276525204008471361754908827420250863320389682767180589879694431609780322077292289844705704470979816940528618426312845740085425274945396115114408649355147794979219421137776621929008550290749106617866353295902277566419033713509284373230946279233865158587761339037192432383645051855697352308506221711871348912829822907687885759713209439260339844460763650738963798330357735771617038837024845117974890800123492430533810848285808583016343509142428235556108350027617658241138341209867035455756177215786114097449892166578361904080258952996481154293181380193900596650677244691654886914096767369191960831825727025024799151800258178930139040175196267904060107417012639856054390051890161708493007883240648676508683166385421214668640619628692980785682093841339348358433938833855391122717627330031841924614668438440259666287060935525301586536214440736813517587480046749230199932629470840385144709460678744654710936035547315404501074013255694421680408341322501564101833863391757528186038611706890366789032277617166474214086305001281232963181482340262164567855177861677347965174996941396611133351411438639158598732402650237427059245650545179643672650472732096154372110125031913580566584718965326268304176977869940508728296123960364641893501298499973260877232903667975806301436802171517836752065281965383860331239805920000491739739875734423223676910302925710812537073990126288692793584576496197768312479158342157239021065961415550461815949826545947276727678121399109712570319269869578608406060240206984172565145300171272270797062068364048385035690319069983080262962464516379105504352307463660932167135007990378687554574952177483975422824888369096420509050534216359031075752018375220512790847190582372382145141389918969936230645167384585370656592957036000765642519573261677687924701709530920415660861959839973795299569648048845040483546909532993523582952667250306357996561969273816765358143764957012270950062064205913007714151168207261172361231848709814974282376626803716437827476468191278810195782489364296354597984852203545490091914917988665154954499880528113856214947654624007381981944887701192374666308944327538730677978378035259914331013219525035676724317874926777890304226564002250514175727907233997026208140649623072814602575861360955794068002057045586494152127276377585784604102130128224858342767190124110317154375487249664005373968925618802812876178225550020675326336465824827125049583070402678423301594600923474876003001321808065730218466515211197829791596659157502391687779111062597437319607076683034733261170271682715449197374045997825479528255301997132646213386197096604945191957237240974480734344379086559721724852110016184510025072412554965592187176635798444680448734818821289572641787573227047334045107118848612780096543630348427024289407411630020041147430390431166202812542520020084880999025460429158234989771528021484839212159025400023659157633118101950732005849636053464813374845333107299119875307310553479465982162743031623346037284567749755964573998310443223591946904737848876643339417802947257458682216314804071417553476263196583247248719063904392842853849021996913051358070908292191470164322003247576968619816232682133408872660464459771122976121471722041799661026667286247332609923423317081727153238032983679376113758632253049661482000478230206160968857010194279017610321023360682033894817015423750422123430551769977303750331033813547610294665617073662477277557297850396872474633454651344574750983084226335485583263641746160044012937787201613999550806890932832650010450572565396869949887086460066483071533955736459284991249656360947803002868837499094407214730223651274504034061581945881914864393771925670208253925783260360491519122868296528037886451243515805361689741852611551719122465493262213651770574489985636252298256433765646040594691131768249034823038548020585768838306238959406724169373445361382180019902731869641606795004467433416875081599852913259277496097882031792883331640427908630024420858123138536444552486509694791603399723256346098137849231636225874854480784615993337553153616642282995385346011315104252229718190907312051546334712238376662625771763277385834964756561721537889384838560211032421680298987339497494465405829792660732417244830862875173069514185468795262015988037259816185905846593233972590073738097825418036737676647386647443187845497787551686663488595077084887560896197691466549062945695254064335563374964639544318251758973856738622859942334023926203861431912056899326346208808123674457860430542722889629746497235033023571476665126490044684346381848528687840192347536706454346081886932738190225463948108065954841550508470372967147137942590792007712492782684613465357478096278654758098380615813756472672868489685270063459716796830966841567878790455633927186414161036870355718758379081372727363285584099127768974625714847813753352486119164779464668279957678538598357347726688681009071482789365872190757444412766675127894640741113839112732806274069272102320171140779384637699326759452838987873169087456577071422656870199152115756195537721713985107148327113781388747950437276853106422956647109829360737577174312232959380621514838829312127758563829885569487260512961074772375392718849386708776401197728469114072533477600338017832067359962520341776126186420254262594015048719640265005900407464086112634788810811826347497347670555121600746023644731565424357265774016415102818317158931097492707562112710528625457069082619493573883205449433502007510831662268896415845759104991782925269717720814751662734737971874405990316391644061051749198954617852919353662127927356461706484562525985792921250135309310794200828161255238687683573082805574152798141138337533085144748063324064535749770987498524638634141523649703373274232867246002205660025943350502867121958062569609196767432225930479801814208425035210463873997134868851094148739794844459296258954445268187209418663895907837005265276615352128326782580638603227884066391129451378779913831412432661076803761578226933071795099245746048818870517165967736785081392548571520697740996106320369098257374553895824076980936607098593637924161670022056324369842141602676170264964676682175777739449347454527462700387599921006256185857609741316814560127600768532736631693124870839059662822957128325133345054544487733474331311406238376329914722059307455635547146608282322888828581732954993653299316764378986736757618490994548442594607579797449770870035133885845897327312782951839750737480391957298152638088282010239706405069977281758573366763301359328122962445601145187034192579334311147093293106808022944932577979318981847307914817767543101627382278391125830702494080445206123624461433077135215904937188775470341209541893426571370362351347282829621378170629144472365724365334189684672464118371207541929523887420328995199367950101070688738431649047919890213989977492570318028105885722842599152833573369999749288356402379701318598561662541978401742607419914140524813751811342306506752397385400362966821758667572255919569037432660259334673888514901430444704610097616189431199538305861433826836009807450642867533189810960912134795707338234231316912251528542844598814763153893292734383765801213071863675504211865115014626071192996415879821450006607120643556389155774497827166829530417839883100519070285179462492293554645577092700602941943776639066345153747339790433637165956302805516816290266774091991102663920762414830736971550901411588552280186347330502561058882732007006798338238340634116892122802295374037843458070371115337914127670110536993342391447193487156874801618474809648065932218347024478623021399624232600244300033040106176120762345160964928157660369254479844545158355587237567485689738376632759825385896303501171331929264745100269522027616022055365978491462274966768688309849195112229920458334344286245549132626904461955166052440478213546338606339085511471834558899636953950349193770938218470409497222520984421763747095922994021893284550607742058443704791582354998625635896263037322569013051125858419754392611368652293265041187741092710402959025084070329017232014136215423770156055336548718207520553254282821363786258820045728177310565155951708521626353617536982786524738384252589531551707863933101958026158105083416226776383821549987662527913830533545000413399129935269483080826794159036437592496897905912737114607296162714766652271054757865362453029557405910657315345726571532499546736901449835247810095066862442984038643249536758865860118122979330241980759623451251342804613450503705276233735256262339449772421661573287872312004770324381531467532854086268779440317711308446382319288499281638137306098372096204010706768969761987290826915047936718160442448618194875815852975931453139862735135098406731328138256867433907192671986441828736891728993101650351979796501105516134127047507555233776701934996474818748934830810257870317498263260684051438190249415643513629563605394446831872055924753412865327873447118675910785940843180310664899937257699259456495035855170727259233855884422110901628680783983930370612043411673445701926874865650116213878945781895279363279637479240997206916348606449467985997318198152055923014404790208038211545833111729379752105779788361486823470575577142959368630088578367051677652743330056596585229467819468263765237881250405963964984282483635697031910818383672858736665644300527819792297153490628538439140802200484468692107517638462492953105314223490897736881865863632043194896780429310264755890028737988813582163288048285039198210996540848247920000414972211825761690734490791628772326156633137463165184820024098610162190378768436467787521114505911468970644556051346345455072978002586892351067181198055699088638193466998525263579938035628915727473228128485974711421463103641318737935429750212096907506975891711163348132328996179816012597066622335343495498291078442310622453878405420433028899024567254601211330090861696468044034735794928542599598142579633950466564890894612974031999070867636786158159015650072956951693193965408742117839624674391760522206644929655456441027944771987553525178475964690318851500281686586986829462749768973872969043649697994679407747481584902468389497716791170380838441921193109208689162851245204423992576963575020795159067217082284854262750184393884698293897076001481481078816591629674322383697841789303090895382116100807545868534469665653415995634283542382862974052598693098350246613086579392460736157960984222743731503641527148286781951272496718848414295897203677109366325338468485681123501044519910214786260061936835887151065114522392458261840005099116471605244708500655352793274532555678056085083893642608226395819406907925818869389030923491719416474395408169531422774918530738612352361440631117226445215129126136333246652958588785901822506810408901965767475029529291654929272534166377819626397638329031612124586124037794424999441199924951198244192549514988525750684409627994941861350680880721421727869266992494461389449392473518527055429766304282581529560921508497873000769043431773862515783356416640089905977213800944216332694876414198607045191006199605607934054145321972523690398404591147109943920094971637978500465874769176617749363582993629945133108686906549467973773267078017536936266826105709007363537543280826143601936277136600457283770076538311308907333872955466098093073036494598883334610890119553514720951751513082677566406152312230151865238810949440845973665559922469949624974642174308905886432854491415366409045967399556870443514434509208064745709095573609691558991364120631710339475423250667049685446917340206780178601244129101673064786548814723007024174258726118603069809377270066854894991781137420246503942806622480611709017916100214575718497717247034732557504037401008237733385809727851700844139685665328497815653409042953483948920830557206424381361387281738820602865740235965718751766928090058586107851257331235701064726336258792019407550229592492645969743764713049059702082317813217634691741666536409573157976870678158549968723015758496372612996057455438694366163517275160828525091622762252935005704986864646825211985062922687117075549497217697401445327273768935185879751091318853308090564917814542769124986955247034336966843039400607227854296867096738645928804607570219727781021488334167938403469585258955881370987303211396020521412260366493423014155033356061614472354219510022719264848059683821445614861600359615406983276708409347428327564629464046530936080824775965135436112292568507331975740500175785599014615676340932869671222392620978593198408387589016708460793386732739406237520666018474179897216959590135154318945890527592155578592611406959612581902582809465982095956305432069750502853102137662198329889894732847429631001211395732800586338129795906630183841828651602137213731988055654977382988453976633388841392391617193987796283970249708547400987937825012800434155316116375185471965990250098058174378809056237738740731851303885063006915211364834187792966882868688926479666221670857340081666263987556287922701773978944697879803721648218676315970077388327732417798991852264556204408734627350571120597139994333830334690308396125986259662389368814272728809978613153188035286537454819975030025940415214251179038028654115253513488365593784275530933372758147525930028247139960333149401638809117627283288220848060335852057905067951205764517953242569945814630267770626261993968275193973376388055404488320232800606017729511056838812640115648726432070351226534844114933990840785574228784404631776090859780845842276419956825264242465533783266114029711132778162127888229399207226933054136216097549475078600148559028011336585352048333354308867732098913848105804923830875924287010400125764949126098352164995849293344878059967553883496630558287680391964357359154137722432860430865337065850559849321333429013536776298527475717169651641279289083248083346390044332296933869660916839076810559618391513095044176008168039510745869728285971142549828032993953639417461757829106484363101880947213909610989141448066761526036903340053996741427925297833794569989278388397691549821162933772199448167309897420316171007017936400075528777831497226432945598468687627447446116382602014484015835179251211285707875923025117912496562889811311229730816223786391367574604365252143509719416575590515518262933053810167463557682800879226485449132983519385941231951062382804087796120178981055756726093216465095474770130931575528634679679006384381035161819002046509918495088252375433175220413860540876640787173017002297809962329600482248352576666946078184887428350979403023147556513152380102479471813477010613765351703207937617460476994392366723349219764182256688661302873412058824065247254443945555677646280118577635678318489399967833714318755262460984672940183604549676083465435568110197399550888999152027475508151874415021635214634177893981529379846903667876579499085773548646618808589068831964193775213487435306214797719426104784531382783888064996926554924600276561010976173825760169829148620819649803375198117786925956698799804803847046001097516458119215947972466602885660080891771041819871194973743209229494469706174830454538548283944176446545124669912872717784655018114977868454958053679780726100947152335169110517764141595789897305337980203212489510497172255127529286333538760853242415249220645168366556596555620949418639031555847656860606551871330967844553315640482843455074117153488324216861609866317053563294352562406662676070782772038374864496791827589390083168896937301835911778573332663569052801116890741654949984980117226418780179301570119866697742617547031090127113748586529237908656315101180317716551773262777857909046290871207287340024725925986160098527866846240668522144792568285216457166857287340752459592024398188826930282556956182175490494772040225504637590313905373321829073257131323381838496496103578301725164671995841991049870339362079037893687120066810885006144692552678094250223185584024824602072130183466507522597657399199339198587876657497876245877858877836662827932938253485234121359465895353832081530375912019128911485956063087753211950224576114133413597450769185169990367400602474011882689285068278498983065923540196093981254448220785023587920262244854428830475165170123346604630121611941416767850875360573618182018963364250216580394684741748746343149281291849700370121447250924354652710795771025782635668454953787569053130129006928361946468933866913054601590939811541678039925966444362784840611062267257262939168431729281925368346563556076765604724925542645705437749150652226467176338912518865042849721533522975248834940460703393316251125290962736413798621127861139344961814203035522275274495981427563058203333098235606675763834416619652142618857426728424516379861207809564592792455029711361551136629978499437193426480265890087828582638488574005820508945015958004731705516059739649354809660368222002781755847814631875287879939471271505334258298039941408040613970169784044904797833600837651226529315313381748845333710932888504926835866277195035630957942880522796454858380192136606144221201127865345807777441440453868665383334564567199843074248274436515666244672318701305426631320177894603820986449872831288786583535102617254873327752910786151744226969065646650950942480682306068625309436026077554573029714768336671073523307858706992582142249979049166679086599315172695724740121419496450955451323119655463759425526465239962871980108980576552221907366717319109439374020704505618538945311646184839270119432667941684314101930941427870387481571984142475915992930642689014828862050290525441377961573547186648635996776288380685158802297065511970515829147381278505659561075496139435586249577508871936544767848436783025131706209328003979752448807198021237498946294713723776148170932845425865007088762790232639115093809232850167894514259542706102088275648339411989058658839538466776106318163502815551977464436700036281746167450344872332352365751856165539613626501804407782636462457803548363100015854057137521330175419405009586638497074214781539969463350021976156394862562414855864025989363335013741298861779253846146071633505542442395288317592234446021411031057581854796114363324533250970388412272110389766539381523244851938157080064474904090492290416422397192660548115081391190729706183527226162717905721854992108635578855319033885117869550521131102971050762289455744126191812540431732694072856103864031161440170244775360027768294803521828903077228241823585274353960346992829165498557155472974952765130758585019415580652047745342437911502172992064191248827685388511953797600889259105524036749383967040869330019289933338927029858918203578624479178291624493708381359006431728444419495178124211479534026748891211434508394649443489498360667642815277136604105813755321838318430691535900465292070380041935070560923156269154720702180603579282419338765025414897488527829838525569979657198932671721403697594749988120025008431767089146498603538212384183859262291190506981417177818848842704689399435421636757821888668160218716841202028076265470559791258267901982118459758249646832938940547718791067403664070910972677790616657976464780562889383391315209748654855047659102249562345182186319574711047303407074235583283791955964780069274185270348728996303366440438785016195178028525310269760306023032438395230798739914348807326223431075051930905122330394658018994332040942665658236839212949739065452152625186946658494892191260450249305131040197829275378246043676432207116491186649324006139067187447392483253315458393398618832998296648948058684428637546478178957564775726653683568580444741245533100340347302699819584225044569707900572575348803896034660684048277661342843940894952224090719376884637477959763107173186125779048464798804222353288414784234917317489326098387403759639632704337776019121479295689624205885619948801306813702037530378409724578873870183219693025858627055498729099017341471172845474907828818425056414036908714743446113280788366516064967837871993103487833866607064490858353425420189324550305078195855175884176646554843996705791918623787104266503684527910353404618128707635754218809597939644667503723662970379716858474102001803537817270586849075826720285025376332262413684062159736578810016055097928150003629002730241528901732276813609838296967239431192618088246258057877251583429156584487792922563527173414102203271886900426490316689360187945552865670958734220607369174297049058832973725451125644062923468367089418332964462450907595073117700044944264959960574476255380533534979501670670263533718856949047755143257616084943892433046961778166189992337046241419049060813288074606297820954469459232968979525001498478759338318398410896850427530230468538596729397557445761781428341045591809603521727324356215291513727381866027539736818490728474473463845666734014981528803391084462886425878920100362191633763000640354572497684264000805059559103573869502454531954475084311995785594686589052670311881974342513481378681194669420364180858687266725654422629997911669953932301124226525449989103576071171048574804777569288969649439082061456372089854581843115007195553046316429511143372834202978647611941192852326627295293161359771680726964517118868753379892815366850005005564532746527194825930222995259820256223053766757392842282268915802475767598861644323721032246332168512103984771323687678256826387124117712413115588646436692594726560927429701423718888071342039481431642306649766120584540738576874463355182339422085193327906250332918035527484594474268291353266171816884511016628851114526959614428366049026636884977284669671672646565651635079154779117199898004871474855848782650676078688355743204986434693931345643003060156348155015515660080406516113995507766637431312281754408776582413242326629160140591144013869353401219002463726919570264153355334330561725765384404785413332756122518779575494987492463190353005221726839784124553841900945268792130161740128722551628639672380114852606313435842990572145254971299386226436047574913735977337634420496570423910603384349677339791600200391687783012615998758181063990795403926659129564131566675402252882701393725227175716806136559644243776850045396671870923532047613708230525448869796224879114519919838292120835640398463092330544880211226238463279529463497977083691018644867063569042518696161033777797360131626744745453794538490324390847863788212541203116562912503445690176994992840587959358951526468091423430667399762705511569763371931742865265538829599313675302944540725796217494965821590525975680134032458336031134055853923079908310190821590426936378252725707007045839466661301782223911905503431414915666441291019004260069620436529729991249340908527563413075147161193311437344385840478052257783883711392713972189180750316677444208798964065155915415706791610189195372616920374934825519046192113167601634809400254108427772672112821163076551442852513595727504858763522699670530902177945392432303993979195853119619044797610213977837356493639045252484377563557977553855697413821604945454134850050460617599670628328995285446355431918718183496819175335509289563456269125613907594979027797412173268531187765031514827949414483735680425142640111044893623760484143385063161531764078991251777174463949683493798357697753324981260160307735005189491842615278995812032057476270642291010997382025631830536658074122406534559547791182991853762692622878964539462889681953084376962266605603998953462604239159216962097003548274667124793629684431639015258935379739747825120023221676195714232745137370328591659864902284559439364841069606918576063105394549428282034471131304983582459898301333306889401265351900460471914950290534400845015610444951802372703967338326699740052683545006114360239968025560149507198371800047605848351912939929997095000137890913681590315282492564726820329739556757235055228784448264768416836808446096994226270989239387328990696434197245692278065693819319414063663189107353999803064503021840367469960669734255597107882059152447583662338828039706458694531306568533842266887846906949331541417311151604485893575769125966055428738108488528357347554182042955204773676519450728703746453642674875618596674210823805611779538825143747399181994000010169565442496936329519864936219782703338957383345979830196682609868760333219629720919398479966658979605578710817401649173979862768225627835696567419353941211822805046430862946266466865879135321790701324890892279065884811631749011501556392684887807208389344536888878493908247933967498088550121910992333288824623524288770298905107193388205456937110459285107397899845180833366377691382475603785211713433456655277366407126996304997231788198626648369732516007486819922181984658300858826467020607758570668586250222811789577264603299014227963810582371679310843112895206886423302459139183715157726128711794531288946649448500452049145170846269112516814488445748296947272333292003668054783428120417412565623955973092256742561260895378645146244412933703916804283256448938890493370859888128037015896576968254160149026400651850673006554913313003165334538463526314096830138028250885164545972439591522854956150107593934104130793895470993106809376138151013910037357265873497669896381161677589166783313734225458068118308658244062864912276199694886725585894600200631258552733899679102135381815023998325391063579431075897927121923923898344034025936490213382931634135025913987705220567713179948175096034062502312898585177323445484687552876958897496438003270679589348217899172620960834944912605995905165781314432495798897590494609098581658111696336811743816450709884121973682704208759249894766937991614868988000746471934904283112520438114314189611340103698147819510779704836870604834775827229390598604052703167761903281815733595034744489781416328402908414309308935103795038865178339399750815015294727307413914863445436027433998311503170700222631261003306831522936502439061498838357197248877313036647002410217697031024670043832970852302126550595534974389006662753836158990145504420817099456805983599996373651743629541586574330123972235210958634152161333791653645718963700130210821214750359123084846422728524381405369001317831463703625051108014821772280476896862388619453219538011786700196806198013155005422790434582198285325133565032735908804441003315438802365386340914389009520635071103290628474731037313144883667368059463152654086777502081797136822693499865673698931783355379361522053969282122199543404962648101119844875805339875647598737490051037013189111299336373676601141629672194533009061387944591803941262750200560210210991393915662162281628278990011540796711424829248080441885496705055690903838531238708487585688419345400800437054333239527759301334893678714986794926588193464947366799407836438736018866836670975975396037478280881475963744102812556277435869425433979451400995684066468972798740115696248287377883279540325998901665821057348314293052965745485548571899277207895740999937473332961837485971800357114913326067668682974622398269593163134846576369655705321921271540621210212773098334210927944919311062978316641981133023599800647549667617388715326767579478193255704615133107203412115745818221715081589451414425262150312497249361828646504192651006083061367849845119753348495724833548308500046264491629349434183075639951915001772764689714057194644786130840576070693480088928050394143245484432177454908401969799409718663461506190148434511452571504208049580197683004020143200249617274899957844872664886392684797870972401579113639356122182763642240785147734075716056792811171590394862736757481995139633697696665097995359799749233044912542855491934737928139365999491404353436563096870242578687767677160363044247351722084020572624225349376395710742921983421383117182299645853317322449069247911895089067353452180686622126399165843522994941001573058301868996641103605197398164253166281820563474507171515438023264951732257273346663410252019833979026911661346702922465710416687761754864512943633447126018347161742776000064629227724242022997464886470793355976117079719108348525412317647026731380675673494940195340987106961265574439564128288088197891474153731682190639943146653458732592918684864819257037255149124299196638898182804763047845120785930600963356948441056429755557943213282340864912530671781021411872103268924560936763929159350220524649008910858856129809364630397936538606828696989199796164886608666522669653617213864894967881999863914099073805833508737330495942349879602355459517790230219270523942250892125144152980318364554795567815942811540045518039299332103840015573731992231013853562729621550475748032711034762669831101894136217335018599837195713534814705493916719730828447993937315672826179660613293298698351510078705122883343516582841650118900721786380209579249233846214678458820486050596788261840902238888903930655549600377996829295820792559201636777822443536807681588403660434348347178798240161174557120920784879663915290292721701027962323479819734162591369955560815604220769840651903017007419974532214650777420027088500863972252285050537865439812860927992826696269136392871047765885603758053713427698068037511782772484908728039069222348128285723491021267667879739700722857691160178022685935628031351357760176692602049571158111171025851659173528843494230444284059498397627264273337803618373313223527604797462154008281098133253685160348868231975576483500337438782305726079688539694333199544516795741411817082199109628145538995119199237761223177183774014694864165439904028072363302351594992523603313487212031100317670732358570832145252812394778080301790491409863925258057400545447748715973699658988402042491151202205290019340169848312733152436480757886135588674942920566949421933275509688180071752428822996556090128890596878609527606671956527765750637577359418528496339025706246060514926483470603363572035004846460517792883295086177583905673703420390124770362066653747967057206342160784023097935982172285419683044915879247336954595456177200423476831975367642561159725284406298960749759433643589495752044084109860776410529112569763369563809747030883385454701718008446469483062672332064727579125737952557612859543670050574251974853479597861823993082480154296107081231526504728236536348632903683362258672462898514892820332584662281739485953250921169372995327155426220615006650089991661299330785963196069704402104849925610998069863412456691928965152809227829513522338650646481391866691841532107274521334268863473855783785069585441182704301239027931395367628934578154848414513566570755469419180701932920786244196076696990766236945089634583376208666818770541035403984061303152520144815393978080049864639760214334135149382947209021648085372258271143126594235226871256462647999051472035209150770715072370675068929895311133837800927857243826603242637915162085793402600687723980948210793656582267329674352726947868544918343139320499663175487867700727830486490133603909886437753928048765542763959761140087368182656395542751258782045318290060560195922017811519049140922705498879417660650100927317665169527605524512111375176584560270441070358990432719842234740494653455004386526083074243983827500229351384309052283565251361053517130798896153324656216722089105824586718730100572464842584764238229761487774385042404233055367768754595977860068893473855902135012450334602977263487213401160101242675136298510210593207158802018746243057599801008833662365421990230249738045583592879341141856664421691997881758574573698561910242519219199685941500206655483495711204352487710782119365091392865558097538091637946896025885041276289596637464581044315180380792253756647776051465310165524682799596167010137150328963584736850969520827140483094727597221325214492608997951468037028943783235054849389577273954548802250282984357894589639272623703401263520053624547983462338228361503659024458814262351899529996669551580742946935212742865232568965792801822590695478234476728955095333803957738827074973101941029671849078274641773291226727683854423029286911373477769694828707066095159442015017115969526723929275564648975077246783499819890276250233036191845996183538079386475439628535916414490744689476053861880920671725162238115669469245121653745895566294234123081234417312920192882243461324082953736382690676647983720822837003391136994544256085638817309665327252147235064039405183536286927243710302297246661530148291865901179930258260865216852453026882934487546443917591680286646422097523543438043564856910961818115912825248892047577536690845970950057951463571966510931649181574344133532037002191569389997569127096616809767758212570762134218657688415681519372609909523626581259863886628481196016131509676607544589976791789461379266104804937087687595493140576371297794639514751924032431000362224252431960361479427377225892517115280410977857010335551955223515362211879844370415709638535536471323111968962014708099583985835079549195053601831298497411503022682201197544889206233114139245779590043980308270006531750963840937824441374971400567994320567914096373356461079018416784659227165994926598930108221496122195766289457408693180642716368601720350974121013473817111512189821138882640895303522979748974221696181561516642604943148164079984731016290704912873666911682997143741765842331916253753352552664832500179546835217711529752163218215645349529510143318850783293500504620993872115296045512497583281235833163325986777045873209398454502330082456796615094412486740333288183051627776556893474465358674844643200506116221148384675391497877892851559159124778628735309951766090638266401580976047550376975549982525384590676167318994221144724294071301803920105424997531149969518237457477611645901881107754844092102848331909851455258578381676400220475896605959453913195530564868174324598706198592309568482192748837794448085491996447394014547149033884702739957944428651531871644469588187430412132726249924629678075663788666465343929449740629279573258772771880828754755564189320230932675566479226181619350473047253424239289275435739357667108456801220245243256116299606506564056951675041421142877443772438017923298804767713377720441730428796881452164380320419387529904643653264355009351924170048484668689938948804688585871964246384463191202245645726729230160716022675201895697447995393006867166450092163927244380900588710840592056577692825387720905969322919425439296257746306670938005172240923339869280548886211041693445799573244179865855448653010640044132860275695246752905189649646402273157092767316957850672705747356793193640884844267193796429622569948745819767827041201478433416675777827790792555378713207307954337137530760205074540922855537540229653825697464947388898758999963970467770798170678131901574081847590075908530784028186820727472433367166651746388762420241932663924686319393171879941676919746660087658617453599689809794078563471366696875251349692096058415022040774313319569135488825462592227272195007528403953896751245008098499866575541601370796525467603918340458415622257723074132598208759312072306558581634291822827303389619515309254938870960486798287800916371641409763528256823590869207928617794585930105896539768911587097232260038433647227206692816083316324613706144854061148999608607991622338514037899251674665480055427690381365967205559151137845557834813769571212782884425475923376207683266993999907505451358972421448789508109983590042757472748033982024955080950097682947108222978787289956471663197572551312754117036647334918832011414164711365748352998610386938418481547149900319574032968133268442784303697860396369604062152308425701193312806412240946755828556627212219865093962580122316493819704460205937939280061458199528399659393051846187891687236479060392175276620503258048267741974785369577790815102831398111926263478708768775827259326768324055714966344673936578322893544937994273778981604966230948328863316522879966699196682263573615431265498661664431597429411747046154414332070585913995504317107785071430751830507550837834380347508843906643687112135630589915585465808863484159019688664887377934291386181540559606528220543178111270701788120927514649680688164719869032655858651586078735114220186843197987976859750086299602901239312462333754051412557652773964059168154494630913494764345258293049491392055294364896613138368319094838868984356894045543488200599651779435630973279691199382271451272411388897639064452253634660613135045662659448842399332084502012772313935039865857033243926179750172401193955249745356480646529092675321957446137089910073122364414482569994455576815294368939966899060638504233072277297742339901699362877040592309558499814142157990351785609501272643658806939505563272661445593185345314084720408511568051322249983596886152663053536100412462058647863748361514096509639904881701744837118288814447017001234100778552653580082541970839199444720759823053099667452565766488605638234647375484294714909656067283893770257503865451825622665900158818241286344695341294149292150926717872207154682551626183114508232620669109399128493422090407280809964637654141272145941773056550239777277533230035865748780541187930880471693284187823849318524180227064475282583146327617715308695430272702026524944350837815689082650112723652581822813727682435644038632425544468699323324998303888256703066929831049606361900778200963113568541028682793983718621586318281662452722463342229775583373283039879687598572460938710139365342381922139084347562626792713024543483827684817895988586080136619879170792884275725067335843374562227063431270262193670784181743447264101398397947064437256357802808081192570365190151013129522521429578048472948556432676915766675434719048317786761150916519757679965679920160108622054388795278504942805245152868375285569718077617343146975294509804119978069293901834786779908632253330603878040497339339681811536333222904936683262973860362073073900623566985556781159799602206904809836929412322067504237482648665391817543643081764012672660289437552121167239811678464795308451285876333073019913052979569220840263809260853605207312171783609138923348620519431052271981108023862330598726846167838030979835634931748458341049341510079732114124846279244133276518050458992643522345116866126043458852059503534565891268582386896595566833115627680877625202340945697649647333171356877849192326024122478739839236719132917068994157947207962424155660091976639446723211513337900817393484650704261310464056165332982330353523804927060717299189731201190871972283363959784768830924285541836252569895504491053935689081168465482886294209701044979313049854220239055876962955519430884658715300598463965113237135288881436834081161987156723800105014672656696443680962725964604431565008651437857975655672596611228914709292078100753134643800132481887424353065213927843693479718482682410602446173681370760045073745063229956610976349580690923930118471931050529482733669625192961540753047788783679705955224217877183437976916555000457193457699451726798069601840822835797504624431220863715918402282164468200438169823596544768247905065956892032015100698570007034512023492093362951574895739656483269159471722921751675537555964886823359707726396090715275524242149426436402118244256834577883628504923457839787732356898594617544092301374384332350001358144847581437638669185188186648248566115292568897589540430772880022456235126035299879570164265338509514220528737054698521084670076696386854276805025162819509345223102543837584254061027000285385477967660069450351036574833207496569128674924490891444617232379986121942048390916270349838826035278004931205249102845340126281494827475323305404773107819078135285909169424991256783768786915943017075708543328399389474889235113776533741429951109092983996488908540998713354968922741968642221538611442182304022359844008104262904872849403214080477108543639832538167460705649034724900255929392733519792466669703859717703064789366095007496814554240511749360735551566583432052614720003842820347622929563570142542495723625193827819578904588460793549192265120415222230131142729892855453816111343372112543806053932258896683553570044946360211520605450183403684480525670472484912509645439965165271365427110960652576135193731964118632334670975645877787927605828032239409129337003850104999319598014230210031685104605252279240284758297600724498192283766824202444250335086310896672996390336088092594623673571437147992890562192901821379586437160292231678768948913336462512162017749812347516016025414555446518011731736514750357802391409126501441008784921186383069894610458118166859511183438236252201323178742619869378319783428697205531922901086828211094785872150725279491724147683693151943793218072273438873728306017933878304712046306395677645679664700725736764668358167182585304652172449799843349988851738065501712579405585869311586369567234803679479712392504586154637782261623912001075423734567417734973616205380475953821620748437405560697519581944063800152352057052816251453837845606845875535969577679347727385126230573793091178777297378862780102955272058195882077385116621450600427220752514617128337983108549842029974415498920149122300528516290474269546489679393632926886184584688252674307952266141314312818966976203284938985871178550205470492370072779864904216971643206925414474662819072969927285024097506587012458605824995394089319336188707431011785752580922743881663387693900774929220531405522103972048938172264265158043509935723310920696098725117737299979533574904440518552829539989775102531760318388099321151837396597979092308345476124588991551712743784889003347146195978816459200041841192753769113312459817294179154950326858769814591166282520244189671590365276195090189397219796829145055849127690230468807315297346200344139295718290149840300935844291123842575070312522595074350819367475266483270062504223877161079533687774002907118497963971853957276310492949126565051327883571600562833141722558082031841028000923182924896119475774300661906930953478575144425648969948917347494510196718323057341005088215598676702435734048875927541060767097661090981212638666684070806109893472087283268505469081723867792549578438580264848928515295536125834322658897362902546033210941403978506132653268096851359547437430144536762162220645675379191970888302755551825429916689748325515518015712199235313122303768587814096683693814840895721099717450443006843272586303505414307886567755545737624642209857998681929562823512725038205959725657675258480789664457245098959105032182782190509255438909113656063159563029629698798812088045516467745450130133608666475983374324412064499896247784879606787955710357248274520924247700034299989012533264205664104818295430087229091898075362190340226481518348532774827119191655010507096059179986147918547525040837893965929943679447973308876069379683004453100751292184245864017191345770047000555091564204198535180867647159052070739062115776111924103837878603732356524321511805558162733149200865857497401852255247042910195650496865524266608865880459575842177175931494834735633927562329297701370338262539233036732934742527038575822919900541878155063447173383169773119926361329166905696077613412704342901000516379976455026807209067908954754031754515877988986268855748955270691700306121128580657426332855630123858669660209740031789071854509841758023034297879025722455494789840594810665372086078804441860947888871328176477049321161354018718178756998913858611860548467636744882260420596178633761416948770711648934603473278749640578079257871798770509925301958752670963092453478096358367059516249478020803044446137294996165433373196189930446949019422574870693263342900484304534198098325244360827791757266455846112326397524524204771423918151037107979041441886368758860972396065575347638063236544998606411487483086360280226543763849651704715836259952999790107575653915316218915742339488082349362421986287458997836436750643263432720220803534978150755381957205115783173569911544841829662511573445337778110613108148809580486755539982602261354792221578020745537589822832730719532445483729224763926017143587650169348823797841816505524593677567191128972764089549066627621253935377696923547591764843013479297029829349848069990628934506511634965573868896391877903573769317109031302324663216930545198438343833958726909179189948046665427011110809943446444757920426376674926580516458466434715833614513895517437166274250390261774428361510753480750463071042118404392917287699408451804909261204151334876945326782767581083394946922383199455527032095976596296986482875668215560894314009432928343618099657144381327518786353436890267776949257113190629460683266432067238040697839719734393496608669381655817706517776552087404009030838829024492851264421461351238197679863549954700769276413959639711813549866817189271628688293910955025632784070017657045548657731303643081948370208912685071697471198829509735133339999205409025082489309245452329171786025434379187497752588282719593453436044989806065650976782903470659796673477439531922359902043677847719594423551555931303526573681620058492336372838686598485610389142574627592165143254128307239726706595189170920613417424912460406849887776649899767067178066155707509572525217486557466220950999509316073339639535649982892937271414358183233483261160564376451984694353723636974881446608531024877054089119985702295971436942161266207994278566517446579927964773836722912891925851908495704156423051756405401589767025843202689607191594360195594458176820782360064216581719020480157833930005887597331526961312073327363009548645994647510479667940950466091746646881932864257773378425701849138484694652953466821888842028221033296821001933800105795515942368313923899394001694264971586441034818129639908624940438049469821722795396135827764511739351218399096081490589171412782937992260757368947742801478317601631900857990726656192853041819298401548558474697305236013905640137766059269225154118091766069559735769404825953017402171442086574829715759933101528424632511587762775862679355116152410505704750856627864798113840509904297375677021287714369477337824882667100548820971204612922421984784708760314773171072534096726989006962972264984371268464118609201414438869609241902234646918778532324348000917185957294071551362047100229157059464847906752918846002537763689537885937734616280186359012192087656953001229208265047805116682605163418235825172312480181530751038080019588257598339984497895767388057933793592639580685462475528251606425045616428274004782818359510199614779938838374816933075209208752982282250262036698597990728907549608489897590817057979426137799606025887592197739963140943658087995987223990952355077876796225309428444152961505235454893660721770358461725789533227463775109512509368236968043347191516134999730052380634053944234321183382669183729313856996035439481297102314121442388027332037046918297692618931498000519316777281751893796295872721817239059163898989097582458865574406905799815901134102726510219981942054434884876855695386064243360958888608489683238063810631327277403117528377746793685871162806043653834292160423997227747988134031585145587188439846138415071496318320752218686810069246162346332197100509084759529031170722213849218191493700674362861058085355726824348902681115829607471561881176574984896586166917258657071759281077059922905710091572085895856782483874972336012651267882732086738847403226886345812952126977832541252220079667957956289191160306288645619633422708720627029445221957937579461456753942930963235914988563105508211026214120716435488819601749434454837876584786172967147936775390795729699749293019515644548816958160217974384018177330488165314899005210070393803034996617029652671518624587127945260390443438741076538569052796112614043036356394860456508244363918824480461660923394947508331312838482131644478070532453100634277229729893099238369398967417705232667422955476787453829432570322152279965051227203943418320291240222630395832741376248031994455510948838348515987842942534945992445100695076917500709333510040340733920716376723468799435843199493437116338287818202793076699046556449721790180813278230270957041943807683639583558180468034496982408163404416709508556977044129298135419232637306804710937714666081476254170542486895191673699505338576835040251426342453976622919351035874572596751851792442399610810561112386070077917778717135302147918416401140096424439227587701763279789538606572792571492971352065664944868341587189000785459510653612417908612967365357678515108256409108707279256761686790522892511705926883698783062535362179615043233276253427466756705509244771789402800642096820047360411459220057084846374891799441834590516151446500662033807464438932610973000681293484904471361265465743380600809637997297297850469967902204435933437890189921561872449307940154381222384189972605758068508921813417965335185714572477372537337001191469839979755371172412785717672784478464554751621663288877597355212383218181054747824220745978083233051003404074481741457244170294874299831205617644844054127346573553464167951105989922639261725024269553397477169766277794175761213244526821039900926448859735769768567256018199354574316171057705750589565975673083407191625818231473913254027519720098377203814211676358942257823521953442330691099937266169949197275546110415872451898237926581343553791243096780032412603300729626286555746745259611417844436356388839287709437057282054714258173949404952784769565107964207896123013953288329785209045252097326233101039852524744467265097949542599942541436601486235333489318453094977277902137853380599625291752361029772379718429742265272171629358878770646625572525233486379277263096771660274565057612779225114298386392152859380508311976826536120529309540540366713438431220835077760844332366681724807209912173573399504729578678099596592575850624775945055034248694157785748599703767686317969436598701593470939365836042249522938561938063491433074362494537308604970968673812004348950632199657229136939023361003551199116893935283234276716176818506002283137467683464128678527874748650642882918055048821406362321637937468977348094125600229066766458421279439609390937449347463248827691006795685115196440712918938048492608206789216466046612600050548125097248365489831679001255214732806802472974599986988888359902519401528830484782097105854040847340623421410078831541103713591430106001452776900706509573945985215266087016296504901924337374760653625631234941202596116985490564502853824351427581801089998956095966167604855923214214928962324644516380268188147716721581915339565575387410258193581587852905199423826269745876355290987578455541907499870678142617555597310329787624920856630767569730419946748922410693949479270153010683658976225128174825302876948861574000777432546311280713550615994097877687304019365963478299576735313768308874985779568218212017299482036840670377776432508880620309591472425649826969321849479856935333407179696580285830113731441155747840844054564101037366059572851008562714146142319611083435561186435059689961682693428427086929649770855528392461133367679168285551450254176147435864451538038373678012830635770670571135639417465032780885404957574252327486582607995478694901760028751082298606184069107387025173620941380802189957758375676886514162970044323188954678256613272818832415590184364874182908632039223581923003045908768261511312984937102415309422556155690266665480127448796507715820446248311863631226067780218435266101669592181600498430570251633554669461144891009794989181394749309505982867977504676313750493665543326189921461057317121496965759771879509459179377588835690979805175602208601286885578466553020850353181975723253381603728566676929839777078154198611237625839217644699850956213730943632018771768445937661350854254523834156165462216139981255488342373679944742192053199305735362720381325293736561992846143765651869962767232338824118241782987062257748684219699986387396607111437754722714582170416122098237049750743384508194680568165030470946916304808746462599446056694980357384346147266670267836838026141899865010730019237680400993340720875849018923104709684843072824316809519281394479614259485034806867533955485168244307898631073973674397075793768581310625588902025825704693356752555807185973208077911483232570970008553467702108646263440575993383449084833327317542108197297772315048124500143112664825611328724270403029235027494308202444671664654451699903626271349630203420819164047299908281659042914270700512196948648639950938071395476300284944642689276394337200092994180517110497798387960336810949565946786426119842301558583641336884205098465619183177777794375763420402185701888592645430561291628401524451155411816515617492488797813424771226378605393866440270677242833209262616390814352284240814466267501201906837529029005130104750380022799445602959675663877199332294920757394083836588974381048235623141627339208443851255214190182512315059815873342392390441117216068801535914840435146681361617690692561605150596547997465092790156763927542615665626956252124275063056401169327047075777089604310490990905966402665855865253577568120522911793311048444391673974816033581502595647087398019543277675139532668758944193815487879686721562834583497936114720933095784906892282414300625908902563100619277980388094457562105517801211060118063437227216629519898920628017064169915914645177994783968506845738432018002268066050633291329974386576839454661759761848983730497241142649899588328835073418160041821112947223512834633140631507957798271095175445729882560530714941358394123718648755397193832453495228834844145672882877266156974606056568711213973670556141377875158773376845808692546856031212062687444255165621832854147261211259034099523452804832302029813723004401718176903534984784961586595014928613148660653519407179170772983011714093972953663054665542671986055846960760954126987583899367289851908871807726644032041703132841419765467017394427395864112513961368659576719682236642895428352080735266834712150557358575659547442919163451203094081462270325968807695515281696153571378398312653570396454520252593283092250707008239203131473118193007454019133017719483810593869380688575533465561143092425855270248681311348917222196295642908685829475501143494143736942953890862815963836998827105002992527228101387543243804002572804307947134591226755731774719868137567575432782279576696241736855127588632612620256141019507111522214170737420462584430074731401139358976449325378802957001281119600427717645396430164811471128520304813490386580470015163628142901940291724980582895778264679784802588923385621701028579594310406488127263000284650276222295110318411584446969591107930576062039494268351881886335699045026632775916649940683110131858427748021969552330373810133293987887312951578868223870872319141505826486167601878834314749137058979687887689027350302301580725864950433966930812975749213435937785760801443488026831584946427973641986062849609767225257412153001926254853408623340063871093972304006853440422809209451351876472068514197808370317558902120139732859202139744163819668632981727661183338985776854884990738700416702275938059080270768693716848115118183753402569372153443160994924116932440189459323400863950733776561550939978008866085079332953644912195998128197737867199376590165688063183570001499346639189214254110704835689450848121784304224247473878981049071299133994443233102978863613988602319206267169704463600014094964990366778444084160715531572298453502366760920316903284509115889397398612251500539561995183266466238352402275144888824959724327161579735455954108949587674470886228074842983012859479382146635720554262870688762474790140284506101194389340487324572528300555373364973470445374246723983846213764439683408695671181787835096383426505548506806033024535182572964260021752868191968141347792672418649713825513138738678295714332296230536754510075625934305803595614413595913646317623299111270403425922231914144308312089525086263696261591618162256739492503465693235023298454912735775154192653953518563506160919761939297468339547309937358100421463606020088395232222330438630145781515120695771657356726873763961356477822960881290095963184907745836329454592796430691921065363585696191579633317942343960765713463521718088204029338046960068524762142731638512202614294520610939604610955215058009649302355578201776551086863581865037301300896521384487911173626384660441067417510757079122473788048743136047753846596057955053949503544203860914277883985800036987630412009801518366527648730860750386870855584844859304575415848439911082228895853847331101245443284060704983989136851568092004992550781038178985512641962380131215011972144188311142711911441296793567869215782765921712833212325738121981609198805978039985323779205597192860954191904911815489606385837989297333668128420796080994168000199133064609514338846594568245384311409742674618566172278969715021918160323008935299579022120256599766321826297784837184436861580448496776322661565718685939574741226520029242586426158677827181593843330901404073000024487215433158094323275986777826320785073819081323614843189367979643593322834584079935222374207423484483837197204553987419980518057085598195505894690213058533247951755281709307410066024826382899987924745269439696388366741537422512993616335215952327446396656646792265320090785588359536456919175906073104616301998568294627785697746044602348871612720197588175899972257369302521815232839390644510411624677881598331416413305844015232009525678583619662078075115266530990869531622413131092602943592901435378494710177863876470675283433187922047337114510212824001265571877889006044383965586164203612914739642468413113998395328674055239939880072023295500318136252531671426594991668176467837134639313390808208684337627910292362711662000335407841990580694491108579257142566655872021127641447978688432782105399852722775078508752245157060004984895788835418003834660224621568525817030525321113434639220167289822230091106883513593672547326673395542439212776085230790871675063863914662961490615835880173504823277992260605510240586946442250594079705086949834736716611218515060385708161812808827290189440626307393861348854895608228700887260652863573487094307727527932173185982075627715230872467104250245148865831362178005647888370024084439977526731011322914285520709481274925535574468479851340689071328055307957863142719961055725616029177781495700667470818239805494253045939701667187527917425349768226681768529441816808405138738299030051631361248743304838152937139616519627221693708505486795056249534174310877805000976602161367302709860306530402604774598711545015465486279469747519165485411716742710116791020069751068591757440209636217257001651208215153146133058479197309277795687765980966421350996877232968765745592909246362425701120414215312671492751767639644268157275539811985407896013006213397494182040683720433257675591908482370770680001967197906155298459161789501518887094822876572704492529872165703323231805150321168816293057743929385785268739745992790806989481323817840931751271468114871944224660679920902404003195103281947282357681459709601190069769863496202647648937894463962935355379305974240223593891913892914102044952510745646530221704748453397694581731208133031407305194360903130515676503242357982112350286171819079046447430236994118727577313470996607737460556406805591930772749226589513187773802219761324221051243631734685553813402149481114074161155041968976532002288584761791864965227368597705534395231686297259532908863865854623016622811493922316105206681520087629847743679073489901976874640984694654091651836330210138236238806578093947198975333525229633340435823175309494308198385133086933262789877839742843691925758458039521905935472410045601575885148521468038543315541739661486650004065223606004094214938473705624072762580845544853469228423630965883516872575718845597129241260104488961213708564001574779695281489094148829954792565446723827701446574285101653701113255904801351532702960879254570123780527108320543813462967957982398179693320447545585390889072744304321840687529126224088225698731030495706817716871033363178063924426019383735889077690969906055956847621812910026389085213186445103945202520186520053566895375711112319778349298944462789167938199618589639402472020489935338974773153064642793170643960131051251875511858652140480826091283409901538944855909735897135335626034979294034599908590224520173967455514198564845663073053834985771060683897922986083041397520557643722752464545322674283480470501736979234277729676133784485335085848909036835848856056891552297531198680106842788810450791045941035485616829337379264168161475443373246163506716785879886057730439328649092132771701660193683530315661953335722025897510770311658753064114000169270264383754013738015388291122366213254210486778430877626175088791616887841719808666667063863269343028035525943820991338793523207100978446261148657938042758425595652257065806777482566473841067925381647668164474614261343902578478320227057534212622593072992230110918748586423015061714078693548478228902375284255667495504264594578653497711928002030591449235870749700687644860403631103994406622488621891037237394679578528151717039004522114857106953498677980983260337456860111525897044696072843591881241001203646217338063711718191353778268320218276971405627707425204615416232812683810272031668805618488425532279232993201739196820729853749419789857939082029796988570336604865416734680887950788069586687179866645328008389045149381943508709452278657405370681315701393778762237419420309939143533224885876118433089589856146909863348139286947211117151680318896214851507120384402988067274127568689993258654771745286351906243819448557903166421085027849714032052402736753715345983148608683365109367418784499071329461440774151110291462481016760459337180105314739306713479536736795850760859460719476121198641375325315120352643838857146027272108381701824131122637471535228342425537848939722720076305304847881418979791462371030540581609499484303712775645719077449930193065656666334736397252414150926436406817029970522594327167152751266638646461547521950824794921948911789327587417980996654498336848329459536574437226080700854519699331016259136702465230294995791874530462771942630814628089248838369105605515749180237349950716205701665929506357879612812719164626044955449366062238993332053879983789893531125545917611837355508207694049293790037868358555916133620833937716752700814624663009570020215781140692544873225302309975879859179775887984165998977801184654346182851179504492552354111965276877158378675504712704328229222095342758563981648367425135020967250061550837356291055729189236033726486845454523258043701889956597990121899209796739635173426573598804791370510350452178909826324580034815865618561808262905851068979545272353822376010950923826001549094576556226108620249058882727774878259340815168017223236277375252405762934908286625575613595073688015851147602620535349826986961269048616834234228731760724919145230517368588184861595861877707667980281753273528672809484528324029414609993815514805183700649356432085416965565702187588146249004597223972542697119068773757873886106856142252994070200490482936748652878452973064587553894854884086460312211174094638386646056299756807583590269462538761224086867921743409195488788745608481388906913604729455570147246842703750834423089528725227208742552737001049181736319092510056366362143867715170034703824943877096472290152667880338859607874789413815244637931910842817047716747460454934597118044434776377789885771091429878198168017943930112044095081888295903560296200290996898451866223159689900679498672312945897468553315339294382408378552830517202713344283718141177120881656034133863039821693279947482117934518407040113263796681169445972521528227809395321668183066672692384542437003403195417009797861482051592130249043576194653416023508661886427494435757104393366776545417260963189214210123621836053512927874111798721200644124916042582094077250866419502903641002664075537978892936688574509964951920903358797732243065907222865575275919129315524853388793766562269031332267843487348276616274427773811775106583008028088861180600781632531456578950570971476638690753711202430237400728295140840964560927617072150782072100522952357966568605223642586301049920658378613756590527837662881264442826465355850666248717578007691746829784283694759329308112286336410299472378628084667349228705442073465852973824078698017268336163161440553137803420485139289700945605875613617817653284872472170130585664333793308058925568717626809705059234008251147237396846350471397093286419141496862399026384688053265405810749003300532301355854032217924515137965902125194839656149752006550062179104807021171546477136537782538556875070313089343029728466882498359248779949948287706960997325686938895439394695344317512455194116910601740076467235323802844248672962908795097448026839490457411341625815922860295219988775702803029713538547156662973552206522730846216036904646806168635573287335080161078786228619315757103255285972806173433500622358037998603782962743903116968620213364641072919183862584597424956215272972413174507425332670441574695497183039813465508822420121365927481583321013046169943988299396551751872419682929658983880366854170149561680228115833333425857531916324191507769940883854961382972846695265658390319841491943985203605498905739906033526802809606747097235699402920866471787669850350540057724846581934908431643247703576219564859705017782052403472540483281035956075406143449783800586772302760232042602744448222771880035385414196533426720974604110312205572058740337684275775452574944847464875541008367143698931196600950444030983334982381848572650814272854061863036334365790495479330074482980688634901644092621277605647202561400727992186873693495054293693002125025278214309415222864038422932441240626557421126215752216137631676002160007171276303318038740805731642758176260111079603899364359546516060632401615899909815910798444530585439011324792533956303844882248405021475416521570898781191087774596915363346406718470370830516122313806103004255994608720479674646504174746803659185130040538012117364942243768938855076356846015725430916646185765349792092425546202054266883701886186712048033179902872727623398030896745203420559485380367571134804524201694509838313543059083905224400132073171546848588071624440817958048019541524323284090954260916535365597195004853797986680274691597717795076153393722613942848864017016814357814494966944474863918841432411587040020360192197336156692523548658526992310958534210359714103022098615569723649654824007807435628704090332265780676214595620547920172550812794740924721935141603087837383951561196033782459336856905882751875508486779094463405103677037389414829729464585203999233536132678410321863717076837208820787692906612884551434275594402199012192960798946215383270307159572396551658890624887283407036223831559000681732697647789667655838506720290873194174986681498145970935100446765576932163968793675166958942881244899663057260127235678264373047408993265323963277815308175364017919498343403242664872412855048495230101041579467908228306869692905718548358098869060743938332956704001775971168442337754415066291222921436076378716964666521533148074926550972051538748515490740657627162615320566229460178708477473366058308828154840220834471582610621018028203401793979986829706140126100132917268159020796660643435158117297720271378885619129731891245724756838422717651508117038791284434073377087282875921165311639113403281790265481503932480673372853081713960531156580136398599175081307827399305438466706911994443605831942967663149146227073187814241014261570294458457636121941911595158241758368657254647819179925769946760146265657736405534375432930361225617383953688854057887320396429315396317332496543845806151715784302819953617817688294299899794128197852180906879404048370588759467255189991471880201585994329935736726030706587163043074863051228813554986787466711049060593914268453031159874384863255410234348755298664904973990361045814058006472774653519741981537847949536503541858391787385995915157681687715149090175088667967531171974943819787087890240114071832768970408084879513131768160264946253532869126100488393101733867367710304424976316495516972833272078288371343594736500458337275912246264193587285240165822804215058433347788531418963841984252392688864415752967222461794912191323645059038682874921697285986295827401879561640445402030170456681127957303329295552315084332947828486521427421601497419749955655697922612725441484015848831953025510191584212012339094804178357470860336456141266104691999133917935424740578240865382442579716727894905771510961468551214786953784844698249295923386064988335694481096610392596961541163695996286241857201214598333057206463644816008289651553799044318440482331899125715900688872648031425970067167161922828732505979270438627533314031885177646459321128085150855458798164653346155646438216257916035456130828727576812899870885583514224434678498886717186403303272806153973614022330739884053809231207952322241359732802165594698585429401712091475984516666684005776509555893076287096132450721646881188084537190688888105664758644597511740009038458195366213418575598284501632346708942662432607577942692653443096299581020884184325809603462874948591931619531801979618740869151731928972589029491925090488375446438367451863326559004709751553653728189165588193799671649344993740128444162873527446223803066792856115796974294157816408431788864712123393292948388565262653194153168735408915154524516407048933841132103592890378119279304402496231719240041975408911194561685289579820821273905335970068395823769579655554860804674036903273345299939339584715212496458149370473388573400175983903607084179928756777207641314563498276147914472262664370818963072839962510432333374246967332083887981999842704543569066185047538313913181733656500182737445604847494211552835973130695595135725664579981979773754968137806574334884785457449249835272231650971579103671955860554791306043990737307488575496575372827274973836665810976315962599149610310973967199280138398057801828940622069489165597389354286647626377455889892166471376945618393579495032655971182098004197862908015813518488302343355130743719727346061482179310370948361962156358578099266130495613421052464303070711087654482978975520577909012421382977996377216024079341651187468520024743412639010391790996754746141057597034034429204128852681067021363538012981757991336071001539001837280275377538018065451097690584224169792173617266085874443040150408728277198231866937007556528317498129792324674318787379309219710728577437406853394131906094272662093776730680785455349186040025751098988860489328939037672945586715702947919696451728860851380514630440823097898652548321302820192152762483729686381742587208417010813574699882061181916112741369161711225741981993175023640272796299722155657840888461663224579585516329286469827971050987154825549700365016739853026333749138352075813992060433379638307682409715074250080985301619579098651229899937332354632962476644378836979365349997961012841357815000389753459569833532658395856484797438697337498345311628153140429550435904842754196557429975250690294907931784866962328810911181808103374251202104614570786233212406036778736745614927539038336240535422576142575437780878438255865454946048707007479296469158387918260990856877583837168644268215892763626340784606191538269749748821646369528186614286975799786157714207123046543045815141782285230702651675571731045653807366224891033648261322774700335482210703597926936618743752509386102950361262140602201706543917776978426234082654740061192912974837186776784313945392597953018073916190021042459336660002829655362575403093647674623511180078219377312822997641083371853090403374346273939854521917281340467804282149701901900449306809983457668897538960912837054650842368277617484852758696457872710656439790915153102327717374277398836940985756513809997067962551511255960735443374297793362173073205058083056281471965966054243772774115327514096301768577043555090123124475382514692633963034033366456624269395327739059550832174380826652343466086976830570061456087578128450968141277808266504414976729904027684531115650428630289206940859131411727696650066601833658244033805866836493153495952122561197723405412195803767498369561914495136246204500604261525762268145032663742746194524489522058338419157268897947588502579883611795770388270712762500731437542335601915228074369492252312383972521472356325632628590533709272590520977981687763240293691765956264887802544719130932124835511300529816735682468820991456367501941777030443820451287323100581013867394546555234111918531952954140014661641048785637393804417883816873778392463479747582590162137263715421803472114020483674948069983903745853317620104766745368402986769512465166491875726212317579800407637535843090856421593993711064092666107419054935192626691180924953044776358112747505423978480290824855336116670949908093031299190029272042196272653682405464633717120434229118101340528946929572038336272386195750865791200815832433253282638315400443701445805154496725970627887768516406209930704926216976562317962826839660766833132806984465527463885644859268352876994290292494266205588630773752812391684991225938473066622282597291767270319751170579201734714254472350389120981234655794555824240920948786017272425297881283584740973671308121623301551116034469156598408308394772899849340515387195847917349113546408974249799052926577981538856230524525633102470871027377355473741302925901109393027948471762538511740715973825644848876707480001216031524697102627531153464166423122342649728022930244617077151433947584574971909056140815492996946451977909146361515949406719856243996139213738932870816283660636325163619123736606544982018060757682394308396673860967693763624884735005610392948050748751183053871005008699550456043929491761966383642471696305032378558257280620653281395060285999079573263700958819462015511048891514918349624392082539561812269118167997440859324152943022322176958455976933184008635386804598261823898414148811863406431772900491961758626174919364777625956927371868819262673023901889066852350709812506264653071978772230600216490058273602818295294094094763733063665354865164642679212088720869689693723884588053984242030222087275104648155544363366275747637138198268499314498831429256490274823078368787203995199705171931091058080785274738168703931072524083066081830704072402107597283233017966820221229161900787249145943949755938143156800021377233065532499281629214723462952311905052971013844533410615052547995903798345465345501290276086620661298773136675784600258295531850556748997095446508103092839127198714573088663296472427555317467098430013290146600339327100784113248529878532771324241810731268598240621107942325713075908816337810224992575415186607928232690883047708750274679478420418738016738679833340051201574602129633231246880311214058184700736136733116567783582662241826779200286307516519135179419282709595841906784805937806569729809554154608808072136308656298196210381586866439448801156361381453673277862067146229178223382392910943487743361316461326266243419926581555328637882910161509155871848321523372749386222127685298245714132319616556208617886682766221589617519616760759660677698639639801025189463348472897078074138513132614412584509705440311509502369985819867384821177755488324302495126876687037039041847784411535529561028642074340184189391525650173445927195145622247122995019353037230047882026186531482846829640245453614287988747090148467271126245906742056166847311224389151241255584087879523796336811445685198719436559004986190081260168274281159954949219702269256788400504718276304630058347045398793929765349525927632131834856958716131780438052360855607057664949857471429457771822662825091246942767499237623983457991887920217431292680403955198579526016405871813148055771904854875317203492583287955007001763130544334995134263987220046695253452049334229468857752484107276688491723663364814750069992518479190671166255533827568273629465368358193165747402200834076136598846840804840363793244024067125278363499604430385388111368857130324075930285862170766809640673387378877680257397915217177779040674412186180380413619604399833639023187399524707215826070801730898331504356143247984005182987675118026242336346760282785096871438662252456282889807265168610863206874737325895030487777973194721352086313244072970344772137900069437197299883178886753556314837763803662187568299314498406520501453430012601335562007872274808599962231446001897460517748260083496853025368496558816248762696711364261264252136067317972295725976264221673867834736624481880326879937481346481184694743279795914444113562019778401512384291299083614280224948175054475136268178829695065050584355042140584785116578794718316486808441701195440265191715723020411575266486233346579850989228526694976675115811409355374037548295245481245374484588181942483489769841765961927711338137021007111230052343208303035115243978610467280512902295186048201432748333713366673340371905299896781108975864725126702229218587141371226391728683263884825066716378943275156981091409373081400504285731269529000382745585640028979667858871395742770479828346729950148232941533812727404343605105029673757002460120617026511674851666952653565354075295039646305648691416317771147278473940017282198532846964456450493065737157793084725417536090813239957036265410088395094970804889383841817078622800936535191553875813011278631003015246312060216598852471384072537089983230143167621890702215732238013540640722534847988254154621864674115558192468297403988808631767829218748019971252118335097719702362658265216134911833945369227492360018756083696431174064580328097920516057815059396455531025677440432244682548705836106192229035414259452249983334855396823479511900522381525086680860219699269284411489103385210336265321600704094892777027694739598443297035955951620460246262642425993565517102191227271886819822332372567601727106697001939174239768233460422098218120555462326775984739308798096774966005493084946048884108948407478963734255736921297411892231804974718845894659291889351838727822868253520143734451068999893523504588959279760705290194268579785777903982032440892922565575082742105372068328386465399927250668616052407249900685710761427667695539280039227241563704863982714563111064118859033505291921506963726339997903842596781640698708440849989927560234654184621269059547807315061917927505911013553713382754469235868700391731726508629422549863704636834515977779146260545938265062344078604507952407893614516239504475168729130223775242626543957693434519609770022349169875039759848093703480778508404605025697328877795959232596144449921249083856422087180321632068468184879778227024196259709717760413882170161642222655548676621081221212558533763289905321119766507256830092791253461485439916536847849184619180392383368265076404738956127598040263193333379109931539056790536133459859680390669318445700277916772104785409176919460140055660864190568515496797618630889907107669582931591330950171343995988227992586136486544323615832648575567419688315405159504504392488526220883121519546750906756501306098105449199010229723351493307744288083614953261156241111675621565155790838928664727524787218609077190991525554876680846202997015040382538941921073671156431180241959608241754937284865458549858742894048820462673935647017661666066660587886364436025484544284016879181302888611907620246063149660317486025774058606155176603861095218839868304687453480430775339313255480331168784050870189459928397302345029490430745191146138504373327840689900494193072398684686973785377435544848996666268662515609523859648285549883261118161374320619308715819581459212042917208990938585856711563986109143574499959527342317593291674329782512991928697275150243411364762086119746995703465994119810372853137478897678580628164820182294550543172156734260818629115302161477482635156059476083960032192424591729587006047565738462355235171010727208117138005416932659241514237678259480501274491293121319470090561216457057577548402105218452849885774388229507360497536137925042418688431966764498061595052473129450558223308418869500623041481674423358636188517460483803891569019099281680395948723883322690136181149810969150460992395031120970726970882687102470380626566408326280687224300503998074672098379724915845105209321762914546100675246313827699851765206306065249490890184617584368854332897508497857224703763275629879033200214125526622885580878156784147714461098065914645649725971746052556348715167486354452688618717147044274824072087290285487577605205283593389696287713321999873426111826799386457081567779261637529825770813285077492927101794133093960849377419283309491709140307153093291179880008783471945817822891064357571859417391620541726861795668811306014167441379338823505303836077141705551503979261005258876256355855569594266353852347688347212734702290009630753487678875145496292674282321549168595049565258339488688837512897938284425434161611600225004418849390671971907904141360427514291271756237430791107050274909964732830496234209751321667188661690158336881619691548641819200430378896229751973875981648074435349809155418323147874329798627061923606858149412106444321785466634797330420825934336199371038032251803287258400188258875265872487206909227954997796336591043540480188650052117812066831233684164429497741209808705415331498787904324701894666283520324107771666739885329399520157528148015531869502053740458476006765295411521862511300688842071657809561534534873952436478612362546431881169881799507003955204552016738057850427308646085962679908242757984201410866198853179762367665197151910043092801256652304615021723168746282633997674096611361936707788018875448564546892643666126983075932240003836173157366805479163638840756757585886673286395407531701182354558991005316282907948621800202687327029039872218454992792194762364425253719374373366844301245083285924820427679681108791123803960823254372215956078532440537522302354491992866656715200160043532329799877519060335332142352565281537734437724205353193190753034165808715439689276749277060575448337106061583091401580030034352442126935905829929031444600342159358581591490971800330017795383600244012516096077546177850233490525582116273435944509886636199965765522486599498235711157431555640538820739361037875195942443494056401117160296924238401670024640358768467282032444727953291947826703262254555684066536349668310495946626047343198940895239244225556644069932939934971875937903953832259333840768251163435059287392999784854711172737480290740536243822782151903336718917038062646514422198385053854635573169431846494379703794412837595881050696065165082331500375700850105707819613556288454044929353686231667207716177326943366718170771281026940823167973042572032804649929367989850892004319279230483829506786655569102722754205929432785160441851672915475679698177783049031017543880965963952792688200229155188985536174998743099481331007032761782680157956353409826190568402138086941752325774736652342609317956715072331050661819732432091825041630186570208901403879950925388624280037254437579514415676549322390758782681200206036939925335049662608712707457729618961217475191556513161491229550129091239125956414941600059833497343729436295513847047384053040863277229640584141187649873032852056242673841952513332800118904241539475606765040425113119992283084870492444934182212929806225946707057601374214582243023173152674319616011263862657097523038407530575829686533994552985359427125546493187902835285785455248925085235633666125525735758642685001385738120568037746369085674504027671462917121889955261982033642440258422304691631084619981013641106819938034808694438628398688459550949579292319074814991318550305364100340839595379312422518234566301739377529379183247948448784556270676751962062453401155197460856789868684996548243793083629846027877448133204198273942332233567576826492749801472663893070243381423547711881358291438575298227322015548882644217397928886833810814925129224130946233254264239166882654898676721813854841622358605815553311396937383782227851895784267079618586971848502322279174904328036159162772407498938733338775715324789439546323548572584714734708342309648474443385607495189474350485666210544326972848302101721927343900979225192794737986659253562424177490705470092544324205142506892305118919225916708356500158649225675713380479672513186246813273716762934933671350667644251053098757068933217446031170225771666016210392879096939748625632577399833788299512896835793749539369257105276913311555002995915014190329545812432166276868160246570615720465884964181577044861007617438400074682824391824714385531886449033049131164265348217853484660904964947513901792331283962683915366667987712785781034736791420088258008122118592415431803607681839126782843482086562890368833122706565376402040000600214715548527085319592928253969875976764659101791590035417538205438367357342458316446344852853555917707191055969886219055712768594492100639154547981349976998461519926610570059363785249382416322647226819161099702157337130118999652485584911511053133711023527489744098921627733180568415093851958643419548795927860985361073682530482844130880100423365623726427289726168045921410567438156292433293396866313691751281075676022371692867195838643138835661383562966594994505132657470189054238661089700808582616812899082524208695920133196354102616394182138993048451666482250163923149854807680413567634598774785917971228507537620704630273458913292721151130587861982317870942517620675340974885905503464227032614540350550603254082510810931516753096949215064886929441547751754664647394967079592040154994191202579515102696069833370497768164895303323753336987410099805491291176603486852079870580162675476953004516331150327877979287973208340738668195001945538259582245075695704413528085010771389776945369194057349483244434765354896990767267753682258114891688850802629627355996729091296770011512414648340803292672846243391648049705394043131708829581809107558628795014117745277365559568831827766795386079231896794958857998701299471463571379513122181482810177456213959971657448430245823103533726434365312026099588139418214019012021156951772103189505476256150154081745916186034424363896289786692613995351824343035547025083099594803726612950177704125174477419587187209535051548261657881303002958819220975555523746649436738077043708270828054839418555617832420883915944859361428191529134008489748789651208483941253325625354496757491751486202936176597499923039860235862319338785258381464065319740613100451096666301346758900313530876982894492708821076633480250252358199855401793745847812671045649427724761680111546650460505073964136362615217978049636861825997291230026599756032911092241507975862552057172190625129980557395092900189201201511764566519277143207980366539801748398690656890813594719975013327156658183691754501814137209590813229521770660653182290716397219693118145504338399309906170043019103977531490508527118941666269570063825679721218853787321388115396308725857617638228631202809480953506709585714068436553818917621449579750595079499409999131101856992041689184802792796405391974937712730849286239835879349932025217555322764742883286813018279105921156551692910988053274806568277756960557052373741694712873599752912017568831285146955023090055110860287377058039118637342641428759010413610350682084402961906577226197583617032694077088110260498939771217115555459828508379799164627014377093768077166386636538202984343818251656316403212548971389672552771342668258567865857341395367877492819690494123329300404624116089272705084886933627962274755198724596623163750224308922897377246081459996301755268805269296814850605036661383554243573187278831639291074600811608577820766208957207328890433685924600332437052946450417153528268110338457536514596433415475951045603595852752046832829320738686233926505263928149691583528189766862690552254604506248794376326877366835597612701969368069926576677828642094702333742182684493240919698473202170910537708228894277588314025375410658082956845154879156445101290748074625813837584042116812821796245519866018794407661397104233738355822373383664414352468182868417056785253447523096597557953271671100137178629344608583350482828042207010453884395036701115469630401805945399651353894811219508268584446775734057370513935079150555981122265602448717244348035677247557529577718084198076053027516970661361732710019555396521367723347938302033977057976983084474711090239225612770612607305443077587771455848922781277356693591649021317085619836031996171341131415822668550857816255573266125652027858890455176140805215628670628727430491367982323109926853947684511741955764228639554269973026205319389657980051431948028395522615805854520981360876028772714542594052292989915614020519190462059478958577514189950439353360116401942101596769328242889716396906312852365024281534160573648502660853919479693278964672699593399270921011141076072434901995998482875047011820755280767742195271952221226800292590302664355639465190950065126801762206529444041895202425037334782267996799303897825953916211003192561765454949859429269624982845972196358907524430611362654755052010905625651476058795283710739256419600986562016400146662424768492739985413682349276610162164679008422086728828719088450688119955796442938249577949777253350315159080120416896880647821168547688160551592560134158889716181755291318328857442274810789850829250492401639133318178830387732465831500483569376972173866308761107002058020140375509759760809099359325552233520397052394982205594879991138155044753792346263651683764569065196804450014347552154910924823453099306019915502715487482978350346168021346376883441291477751298643796812471957959161261065038579610817042137129544341513498795457089521990608939684766280226082376903628502315792872447866477893191538510602539731055445443051407296219697912645127047123727844581966415536190130307928523394563838552005927421029840103004922551418149842609618885739328746590626612800445901245833808905300868107021809794878916460467854604377816954440301000756826725199408453398345608082190223142097903762433901511957103286285312154264839356295555917099196880803640169164159705524886127488340857953539046361428281350148170257541959226398013280803340829278057489952656954543286478856734790780382402209563091120600906943887636455497826157649515683638273237098464606947203483069753473483029369144664243450159008938713639374240347232769139943158672438252489296142009021496545399988628295831698907412603653022432312669878914859111601998486261176836356384435045347506103938507202252282089144406800914891142729175421156449991698701997012120974207216117854592394516827121715395265737376246707245554076027709704707983791150658257981827051468984825942168420640582498859030209401359098945318073205070404661932347901944941133524677870061751218942741899566705512558883301507345697724751538251596031943997853634381657923926268390280231815533749689958505732886229508380927735120893490358786392921574620212907433593532867996747058190151990364837836586670529736271770142266698419391155777416061580859647867378881007249874583976234418143853229041420607179605574026471737105411804658294898028557662853514497685231973519484965848638084971265741211566626752475757744502306539611592415245641431680558453527202094815788598821210465712808914087411549701018037746888763948210931126946002239651273609789924650272755705052161991077800186106235055962049691393974146359659256542356978233418300146697385743423227581645127984634463619191851887080856857083815075354643618355901991281743062271818605789820171836229197133244849673945069338360969057512054940518286048904077644607699293329736322858572606031982109458369755371248290765387766065436280012718601089199390285791447870109999516017225846903139631277025436155333268698975740196023965681357660426991841604505503164995547616230910132759387901910499818496456696585130047964945074447557628657301166580035623728553761539036946002531948166877847557041489226081799785484701806765354222104825497961013047729301928260897656936984463189365234373866084281044850008181988302395799058064107040854201145986700124002936135862736127801817207581831177878144152115438130007420357209258207231631525489837508740912948273530502060005504528846538021398463478819982259390378058754496553633535629885560677398448246433674889315359762484479880792378146686532869909996427125474790428756856622360717337666704389687205812174603382836954939643608192123454003474659812673925580626463825094263614898978793804148827402026963462141986955999053733387209322644435145642595184919970770653318912546104481551319713561057009770978984613392873192910609591824625506682766045839612383823018141943601370818487207394555755377230331453477368925679022056452184343169025885442230765828461228950108772993052905653508684881437649037813002231242398202678601579702855875382858198019456015869782902292412462382390843036682540891921554987073296390840519465645372750121712296580076147431458368423738032505224062196763890294597493376035053779689681790813504510000459096846698455680055579108346801189533173096003191654884050165463426217731121780424901882142270455517734172590513724713048419981941773099303370857004282446146274546756967304736255540089838500477262273584287392189177731247399143136233067764823137932732871264669063075983052114189425052825096805224693504919624899710377866342961861070028738018796223590593873996815723494374306675486917818284041004678507346794505608695609256772252360121942206910341012098212392675134832395600829519362825240067012528614131657803025772704169414335943518121180384672450966594766785644206105886547673816262373085686204594410928759674900747727233576234865771062366321328104626616747448793889738085832531291174963658860706369071424252526246269373808473648754839427604090974276653772642070225044327526429151123626980794490192597509955734490769954669648157972048908814555834046371341921750798246531489214461444122956557827604163957051400657941845196600644342465058740653698434750833989258165455809766843102469113996588302542682861192292435433718915969877302092790297103359489778389646786588144026949190685275514602064662883603399665946679877666315250793306831794386893153586933516406008219043369467431506817852495807868955623646268913243858131127694614285430879712524592289392804403890902850535967614591671199329948666265295593011690905854789688057069724396636698155213297391946835718873498595990893330186375124883062414770645019937657823969938358262685783580932324362413497850485024806015808297409296401773317438934438334181666148997187934587506913281161442850895622527016068013121352221079958333063586859426944025762677704955977802278148169423483834070329581376908255931448672711104536861232609084344248533668984525327181488438323702734230350529700289768800946066818221470378766057505326303694047304818000536743790175909719735668226727721924884094310147464186773292093053438303737421564085959723750143311280835416471651944396202289047000063322606197186744968499252971800716682836416706023392518183914329597289073718801853884901334876148019976587996422531268267524180367040136862427153520522360041360903258729611903223111050160304377680556609468382070982034879271784137038336025141794908349301683709861741926254371336306942976571057598858916486210744536953754782270539773116878580912962090224684178752584191554916480533971391599297438664906658592547078645951206838839804819762753231543008278555450784952396974121470846009545564092329086613025120227575340785686260784042927036156517293501688350891136494037170735064357754350080474424998536482877649812992447877503483272665423904945867680215318675457951254047336594054703176168281885629135027131129519581390459302979261748164024852461843787536109377234519416500474076207675033744068757387301529224610511839958696463119237609897248452486959896179065832604393059311594918859732494175404761782052895336057050680275425258495685959654189945707833879045230724509910874100651915601918586035781313193724369474134682724166708350985143503511482993648218960161022787799326438000674820402218040026000255663770456548210705877857790910308310619628964290900753587011253723419388594036050447421050412444273265914010786260472792389060055110740757452585755362767206791112507479461972165012863101139388558159390503399510453353857151149319831069936800170656917242372539738624914348749058588039636499249264082407385166147812518704833763073299054582722602983947597491110810139757685258727199145700909574029853747515576353179604006755218524054635614353795824965089022987279870572457266638467591887514462666863082808454157271211785958713054518949927312895798710827821336292997552599737059996314487660270888759029498357657375524648099925416764867909515512584046068348164254848107869286051264874560671843185876086367074867495854519256633134909427511210795739012235851673416137195937904684681224774945897652731455769635699983345468660968816452762342788806450627569637768184497448579883870432370077675987965808688547220184757039643778120887826280207896746912405747490223742940786152511497107148355693961498248367767270613134820671156769640541724924644888310346360192175742842820832947541082327272383622121817211243855832231757939918874567593662766642250006005265167731825412186595799267000999730340274312582335932860280306705446949521814664769086017897809352541903688270354955136511046481958682201902263451598271001394721692598684307285230279777687777130601208927073403048974764731230627796185893906225650240744229066893039005099930560478413230627448329547617078326983389621449394424493834856871167572543492265045161107266356848120223038089085744175518289377059499586647527368909549207185678984399787227249538767301849765621691108944495030912134012536695807759811437803209809560322493056255754485105159959377033429162284586260662464001426481661890495896075525134871105815002434513294085912355444966369153394177962522132956139588753294552587214843046881959967070191974663273364741813425956301953493018797269818486580683472941465291537993274097579236769722259919075574646163629812602905936124781785841270533638031462451008059859394152631521162213436632821173884196907342838220425601713832686103062772711563241090974146394944859962558781991417250586991780412020760048682683343937136862439300149990345019257215063130929176042567436168436581586393237712282955712741388370381196922723086359803319982754115611101337220657280134293031306765777392935450532711231971578677089670487743605802242967839659255967910258478411768282952200988779484640275786040833535131233017561952185726674582635827773626236538591293325824141991789143176606312734736644293050901075933361636503077796483241846887226682662305367313582715382543435496059222790867042451092191000463933159179885866026876391914113258417000870242790787002072330185892832729285780652052497828007806553145925955241528297966701618307920378667541167306698049597567248371270734749596331052825845661609600975025026952883698387975271693253212393929570130891169540842534270915921822238829287849763229805682491578226044423954793765476714756534764241186956811827284135999474145153359351146456843375796653471118205885102765948530746630750006190890336601741954709134957565977364232227731923309777445572379632000092171966660002385882949869306590233031568539051137754592840424640887697386332652231184710241229704816103229146821528695413764973506575671446562359893106989428594013444331009174706018218680596758366664300014409188058117673741933585138686594189571337468822768076772728296357183108997917033377590115419980055742534574607588746610427783714806539118876269153990263881731579039459427568974431118468168538372896144597217312429793713922458902719070062176300716696844254639360522851609382026700021648657281656249584394881296172336199650126445981805879582233006926363878706034810343013660523776957642087156847399152878183940807004860805425575691857883079593838599582880423569570277362032581647448817606600549245676571611859086074154072707142887670624928118189740037767332561254962016302585225424028099728042798810084372284690315324611292366599024043499076575966044618876507720702904652657957855371407465492868632455795939937560444133414073316444856707106943499775096868110318306780844732119922455962575669026491024900759469721781747095551298549954159599575870527077189502607381325531017260427895694004787472091260497335855533344881961242564618862012617312165739654016746143821976929203193951634992053141383368460735479417264752801119971350406364047085103129083747748227745425671639842038076587872769351617721998256383794662741356445978514278360260691280408140077966875022983738078782816656305870536835110140747139236504606929302912829470502754347881927042585892316508705179620690502303696020192918654677212994712611814278317496404150783388133712218402325393057450282650060473320708683688466579894770174402697960049835119142317993608442464767922325832550405744972303685499550621376124102662769002514442830666787369304691855109559946822483147139071005888146972295491829373369915302523624741330819804046507707314853399117424740922172300594727199014047247797778208134849013963307483901106819621800235496326080938182983363352065751407721118377985524334905435484924497074290694021381357586093818163487170976242016428073111896134199488424006454453470566692865527944356759866197994846245228328667954339578653396768332381110167038957758698128527847301453473345292790611636669968473028565493554718240106805524287733903184680537181804048346000817329020041376222953011124268540375597479538893305308660894097483299978916121362684600786639788953167851871674241280044938868267496552886125683621178988714638087754331494704071469235173559261997031686828139511905021740994012052078524074024131078774342137120243273245575456563422009483095540413616600067808640501473291838655132716136394340369571155943520285005091608552334558516758130672985113725999666483491685303126719976312650979857962395942527740458285804743279313591268038167007594986797913981353995979660393830335363010910026304737904908251287229577537491886306064323743729857348570796288871575652408659551205693139434455114934674508961928492321051441649325083867429753645436033316808402713335886189687774458674853386175526808623007452149448723794924647604446064909578044146668420326834579071271059823744206903478475084326086108947390692693079431123919094008485954453371109913935374551737204005553939158457120587229253459725283634490145856200686615724690157327567885699068126588085687798977052088373552282893964040321746522468451255847229431907336586151217586529505681534520307198770641569835436090162443360267594117768006797028159081395425767034687468284991980245103545664722656847784451628992165401062012914000542215140019750878590734125833411617719527495851774163549000671937163348928673978394961815800994304176822712802716015559257953919171231952421800367248364980193596236088267047905183141936542605215484076124035201123317270117692107269038988003969335444510733770110529895422555824324747729457300381923239917263053359621281198088384331370319357468662990005768238424781100177113364679563993529623124304461460451993793453242662253987317111633751531408750136907834771066236764544706661644239454417037376462108454920643303681453405961833357582766790644988038719000891162360942544391288033715686991199809556074455100123551555426118136235571068826443596731650769040188834497356897876974355852844603959007946213140333944424860982825252104871908621224328156499503698282308601306886856250550364530066681794444563005513551713168499254608126558975307078795842894523421413243169748678057735763627864906444510645589166905053244399165665733064758023723133738645882049610947708188914420929411727234458328232478134479185720131207334756381241159860052636118318086336241502324863379233854668755032914763012382994166899904117015967555537850910143844904692854792498734388339061989908028575293039404341517759893073429976960860724220665865940427664665376531095623954350380505580285427484924040481563927441125625081422614073589238027438718189585682808276274981525574734776990875256807211868408053733245633128777978616044068085692594557930786910322355917783442596586694364637083579454303586771513752741998906693403346921919781998514553125248175040554613359030080362743002598637326804169735788232449171915429285488991358852716748535960046859707121136058037312827545167574172685211017896017279333087508120141861909723952817522477326654703504077177268408837558124904930286375753744156634438589587220902606043716262391600240153998081889175366788360271802606124220599296837675531807006492049139202574035298418440638622956464839765323207380502525751282140887614246857126769059561786529800540382328637531878181067539257377668860168342013166825483973694688787437425512394141246970821926055941154930442543021829300665917912010655481272246889937275786436272166917007046374094612732850227486337400397554370486045856029343401584179991398439059459332351946342258577690583101956401243441656872109062741425979548366313826523634531140875291181114146795493005695423151909818617132310580799510192957682825547226133083012882177117978427646537555166094096161120457667775350252674181364868403786421680874493364659301952341342168841192927700744953599948893417951511042806930419903472180922262146250214408803421692891442673201983989790115033195933433091605416417381200194679557113008438292880702547008546682009330373915016656319416710691129102249423966905533447789398947509612845613395832870673098580025920269456040963478299227517062176321943456603161512171872339628773185166392960749013789870814316147725978302678456330105272191158853178060384730200006405510274021931928732081730769081034949242968757609423905068438384284730955447181378373520033493771481431550503435428378297461325718794860869399560375275830254253187836394271469810469667195982259672007494035601132100682798881080647471995166629941806431654043243876098718482929381700488225157076168779105452879566674140975562741137792503434569100928841292411361855836962325847124928187263199642442312925905595351923450574752198817351047362370171329987083386107865986279579669180104010737189648113760447148218775048238365625842810342697388758999614408767158823748280616000981779877318930219354750139292254018060924367473983624712238897225171463459256838969125404056030306518803615523525334673969531430374384589062107227165687500550706251747386197233639612472337299616541827487166613068956351966468479325532848842323994706463042913181095955781619101658214905641463488188433511743589268676543309616153455836471684104303042274588290065508582900895000157248267232293112020642357849177929408671959574986507464568126476149028470983871096540951179340067718016335393338654391865945130417936451879494784486488313080974984151469892560719975326126245736275448208948932927641144221395819048119241210666139069844350449459274948694788159226939883342306792698826560394771343729529226157460895647239313701345533726612250007998621323664295099186761446786245704015482411823608993531131818878392145060999149852997530723581082373700958754791650072479528565197418706840584434599881435956469003865754268766381728774837142994100038540648485150571086345391261524147606241475513078847574596747476682274783915326156673071691536278207388488007732928487376695972072433107096296798142543588778928374737716684248947304994843926459851187306438748758344551282469262671881256739156739955475618040551759976495610697204421982833391530653210167219859916509144273108801199443284626525779393949295432378067257812545985741878537059983847170875741486142795193491635068228235079202290474054932962293065812710300639524598821597567448996678082492987312677279345046637282382011411934065741700813803486678423701884489800251741940005692818402232089764963432838939865077672107478460623465990683003726764056112006950770344656257774744517515947948713388624017556039929257984714632487805556419451939221632194279163174975737364034124500696336457186627945419080120468480807504887898526926359417819286551794332092027082702340790849553471946316108955398029339612665467553671096687286516468126116944857396467953365641912722222720313062748510643496893017383226296918698144552198685588505890701635581268617966804443960293616364351461928052542070482553862709973750004261682474826126111341814802926515453129912181745434985190144516381659473265539464676051674730023990982486107954955463013779487437543905171937032671484616795803745016062414241262115018111964975129048314101127047828741109750545789607184160435989072424018868403326939135106102149079991097241020820414465703274794522076576428751024651203256133122048933576848859610511162022398223801356780616127383575148370022886217309727075788496278164046966124742392023945376586375960552704262218703181302438163276416066642713713833175864507322173163192524874779115515290804706468038590178494381502286155385515658866809513457591576960207921122927299499267478550628634501402026323197638690824161153807343361554831689652424899330245557492498622817236197650907700784157711275554033760649515255811773458788719916495135638648126602453238258841492586818781735741038598314919060650600877271927626283304540418196767359714554401290814139787001710789970963770057602850438719589442440323756056811688897578010807908777776695914231982599769765227905694433731412406821684257338481788823161994440312094022092641158442322618124132108794027928377608835959229462559177541661910915166724090976820329392306898619225181380112674107238186101537139428029634293245152524993694537914833194334301141667701251070544786167611193562578487218189180886064094025960542364246724618197222465060165995451485503437833317664651160049772990281341256580468876712551738430686043738894603553851321628722263593189307273089553332959980073819042534499861762661081871363673684213524794091796433754075433924189659951347354587630816431070028962607703737631765820025985047100798367514126233690108188197959543385815312219219978341045607759018844707630981844499758261796282448269380840829840039881555164059329751895182739319592580860142499269471305904751992166798720791890572257618590333791550524006694011125136057805186183719594651339146072507446254516674365788915594046289192116921368149183041299431420164448303335207113402547273037885338983027203227086712113017240744160335370985009836597329981374698991931245633247935070978679079726257367347113228376291776300259163948325450643051517244985419071935197514101415822281480296090480805679707151447600497176758959322590007164981723517982719661048482978765790027476535786320802335842765739079867447289986648010296362626063020605352033322571947060928232487678873248564392721663350408728570248206029377965667261635761633375158927993857861856079826274352523725245633479389786613863884048653399518587973118090310797925260520405815504135591965839438565752505528597670126022191429103639097667021587677213923066503474621452959730472701333408281887937542901585024288366316579074288560914456632756436655285402201226046067657184748618607614343963182524209329364705590060732344711545467300612774679123005025698573943377917870749663233046610978110432905598970088315357633244291250420251965491917856000096932451138449852980395570345211636986033070481448275081440473372391219528352632987346720089742495310298323167158216353615837679790122058394833872033400624191563407800805793672185235005265776141165784737452812760835691351870448198154484973277111709824828918147131824441431407295533861801334610192927085014725695301506963285502522730986029065094067051582472224260779289096353919321271325106333937822668355759669081723046457416912774681982086939944554079030918747062620362367133770465068590077847995291354728612924592734258217723729864937252711322863676090436277499652678245198902004588746780296841850551554981490211518277650799296547887956605721269934208890198599958530081384900337435200588444367878691422863311530181097596341234888575063693885600245239545137614935893737364205219955469632223121647934030853470341712483905839756361398103879319513422670131029170542141215363879878428344632058376218035381518993614588943948359764515164750456189347435032404634461331244965427501635020688077177465520816014154918536835577528814704607275235067039048588735524922272443017463676772367402103169236201306928920116047579264173106461882853718503560930211195996889204690667886869594126527578872526684613021460286788444089521933925589707048572439722090811594454733602725542869814828640700596516517370984805783294614633673007767443137706500719238936292410894078809659079097123304720468492093671895953844851286411725995993429453329316579171312510159396075979384907943971094222317928469443910104892924676258360371555396815734264803546703614061736031984381815334264120726476623758267398117363372977990028917540627106105251281689382591880453002840346854536188823041636909613916779122274657107459121018812856930786416269321106485681323004979518780752089776840508750867575992929207077228692269711030800115608628283313688715191929138678507245132920055572371582077611455740415111227314658582129648615393450178131993562188456116427358745961700073815831923764261939931953280660277045850131313877831690456005209857308143150885496728315504578851137266423513406505305543902898268065696956047669690443314545067527427843145187879572875315763476092907021624673889898694035394762898913182399002071352018419927034852525911351421499305336610440351297861315113987184210570055545613562259719899900791645891103323844509367693614167992519201975953188313995575209850064337870748081219551110854816526709700453654027779286541889047917367906564186648457355215677637962044340568219096320269009306922689615219711841330057113903221785820857739288467703624514799715697260435024407125879745385857420978622411845303569855866705495560068572482222212765853741172683954827236113890003941255500662871088438807462044939270881625133010885933402246229370277665088012139233080989830221148531657385692650318624774316274671260302180939320217397871999788444672059444616905885817883231489279559520198841972077988252157907024427925627040573121127092641841450942233221087757332294387284592604768528665691815537817065602497061104877851769054988374064642620647350192866778493611014388105733261109354927640866670083991211152788828387124323870642722704904195219911244144428704411559376225167131518104887078590264763057650839311189600694914367333719288245312460002663609829950521062883271044260482133571373250954190448993441289812549371182579837861403986477446262493373402178062977012692079058298777494722853990027200292008424285068012207306564883284709548220637399139296096104141111258957770989975145950088167370841678548548695613133538868467269318372673434971534957085600638898406452701447016728907568191663253014078622976748853333881762300709722687265275029406803033173311566995642089678792133164738882843477958416437704883619225557410726327854001315510079520859142927881148531281624800678602722441625140284168358464275687079055826777213647467578900136021966894998499435950756599183369793718461044191657281370776462362306356323122148893367484761139288469167835169757984768218097667886854392437057734282043159252299272764804794755183259185262816052300391749755945020613319118170648295501038791439010329211652038192988026397887214163007679340728510182043681164544412506461622760484077489341987614665071995282447605175256697105053113326456139555228224032177855036671743433496562599506294536149852041100437821142996616382753804057341879194277595874817347877918292238878951267929985040266323271990706939638692770727487594427248855514911915640304472265904816765319689314036320238570732614870408250876016228464653230261090304060347143762943581824629797448540568696220332163267050728325472291178642211712283572171055581263338336246108379058608677914468403717414512619717521584052205339190200937176046887346837458618233730985406833711347085545107906472659786118092207928900205182419785672603532879383833341339349005335327686080347527274394492950679966818106548689784358249257373179584779054677425544038434964075923476017310665516514188164346571015394596366095171239557203543570385296449632096155330200745364652636859100603649476269085116529218340276991364620688670393778483459894131938083523646614715572180533614787259653173053721562631910031123091806418093927595865386420490084376920866576060907118955632058373901043374799248999702140674606275714318664259354725054096126239983274261584539653723955533769271448743610465831387905328924012702240759859390934516710568614823847239878830656824278552994551810060225425000275823261754790104655633497312496977002221344584166775719305445920183559185964356144195600638772437741162136567321805308039322735322597528682512644437922098704114962523570261394889215511087533669585194420406932235304916148538523117274987957095161788841038563970110417928223791563689482775535561302331854920919583947830331056635606141786565117495803747168818492069341936002882351326508273520563473464016166664903988197573912430769522787907576027564871312319333699561539716588514566980644400536125976822029171420809689776534449190734653214032599383443761594384350654813803548986687156313753037508422405541599869706179833714230738072900191959473911939802915074666613291792201243090916127156373286762186622531086498527194922810709649886812757473654565291561917131543582886990940745179194297195513707622220340872221012686526025504458419042167798257395004933904955738463197178977585437016495122322009040627980390877945796321775340630114628023111774328008055428383833463172455107360427137763088672948033402668184605452892942647493214536467989166504841911089946541556525539511995485876795713619497773707409920545518562225568620893291343821270204226087038423752853832378279736348625636385661695072842780858709537845016037648814591773361235683189929581449396351185117628263501771013375940456010868484631874138921318396654408555044313414603950959567553078021378931221661663475322499821240041342236238841509894535456175510611814525702170071867519702640307894264979537652522814238290012809687434486440037184276034546505652160074872392073041692288462773975840732507358210479529121956861561210278496051405256682498515219510790300100697094539125134025840284922937435081695206389904485189016989459013121460364504439712595966604267276339286146231643929934534900301787839937282730441606838845898887941064897009977760510834596586635311512599281639634661233937393039189982578049795446302452324221473981691070985652221588850949801356108372306320579666480456816973543401238679993321009719875617072520066234876030011586414800553048731495830432965245377514109279964421061303637680247201093716037492848106489082747673477102767148964050284199540668404969329345447832771157714690246929968584636100659398135564604903805265692729220366717494558157270696124751191693502185415549220152899664692414076923770637872581351811134863731497913132961463534944305927180219385031449550876058245361117395974404370880375863475339863170991711351693329362573432142393987222229513625725666720599771651160396502768355903477580895396735287109298242563730107911054501465500779303725410930921286258658218631422091032340394739837934515015637164921079314882483405683155153353796337785489116194583904799295054518433520739343508650249464362541786442105720651931240035832324312605035246952378382632156879840993097577467781537185106971887767699078092958465449343791611522771939204909515594918611890309050535308386222977158835765554264638110680256191033750926217343417696350261005860220444070686701519395311963030536338902912002599554271446293815055813259986213366598605736361646814822747499097951105956258010440146117906476721467340550435298678112589668201772626022935510544461639328617656612376735487979637029477419794211339894787296930653072696826481464384117346618483509934315590684626797636812171841217108436810338144435558740381517986480232174035086362312753930249251214253336741437330235202380000685782418913154250386595265621972682267220760081193599299056084213800090959247424025960891661419616048181617016689744707983719532714322268569364613891455862601490137125464371353988668507064895584209551696144493961463773175944257202617916467671489246571333652824341382020366041940419943247610343978062019662267176280018954018522918416111606008567341887024260350209915301804931839022709386518837453020298224924963473186831206950239050584202428190487915620395503609858293722690174742074351079418406900941058473605885265858357260973531669809633946330180875039790652731604293303079548137828002844441909475190497907853878749937759868837395844524706632235019715028652942522702394609604700108611627285871078440945197212548990093224759060515649821346047451311271548741372755076802723187155258919877017071983397071521854230599458811764364265360290355935698399683683545473911490690149516474906517483001196367873363147659357047573063706714930835764708261569047015840025705067740608506878124940609111739171164988071349557138917270905767662035946890819602561899111386270108047470673592683864399882137226251391181382843717274084860094322308617896806645066295840548831115303222904479588745484042517000824050458044719649400935523898711878147924133998225205841403077652391569158879952221448171126606349422002208170087205239950158325892918537991856457896663493025421598433950738511814828019298364212818119527722467478286577741209423187751339702077215342002721734616482749537438661575042658595551849739860143925008936293526696761404346735123284484080093012880682660873573105493764940221062954562067265616952817767315716844295518051680753321302276677092870054308894878867691878378255278056685397439338634862352220076146743291865725410623905395078360175394722853265889505963426736950927793012327853435732993698354726748439825117594972283413944598553722004017776143862774246307198592281622303264523766139283279038388858197831435906302120989414231401345742297792748060038469355473009642611694996979344767228221788993795555727336138378573759709712614681312906997846719586460641793674717866892581881115844038592033171151101235954490486937884744485631553963445712562755909363913288479830324644096111629249854525254950573080978356187435016700582636375473827720613279322310218571183524948169926811372219755501401719946790738167402254621786325866798755943285441794287075056875873094581792733651300267133141313349927832893973280990419097759828597335442414148554105645222787644063882667403183557256258594879602533979004969119091418474286105180235015332063043960554182134720422046688895315088901162502286796246906109159582102378911882117282814940718832528991581037575002707550405805641782160391489013603439971619355987214375648509017844547983666389856389827112382286183618351610109405463423552428287826297526222734674916666862856922788040784982090941679345613709941231312375214877298902247393403705816556609673364642451880341294689612291979175945701992204597953907627066425600504219847893783746801278887014749797155630929662348463877828567533087655193604330029780155411423903851002887063481982233650263822669531814058182499256963321646226042128419971218256704210561223161973999139807290023648495836057988503290971744070278837299187907659848506383349987276195480334080178738186951978174677587311456370437406540198840295280998346059436214812404054597234587461827347827482017495748569100169521823582568353016147756274376337338583147871562840241868483315105139090656749954106050978598830078324256598502899957234293434047483096166651512019405442242798716529012524251963152945931632128325619879513543394388977145877502447507869336261218838455956939017703766002786940732738215228211367647541165189947013494364182554362934733004602379435321383128795511697007607852166310984562090114615773801246923591782550274247905115308533653814545689656726670837749483258283957357048923899555834022897758778485627130642066261994559101360924071371156760618152680848451110214519860792838838897577190881931139877861345747449867962737570740241306834319605191882320256068689477001893812985126421642688934194361897517444166108469117899509062838044854968968200017057200230693541282787959511086627746413711779284652795666853123823716382576524871313557461671153088624855647729726061623552515948381303382964089661708205034737137757214177551266549749483821367422094447568321614789772797790667119194811612906184009404232259355748982715596951933107947088134087167421011323045831123996555835043240026054287892186916662463000049573589533264567497742018264210443982085185926889304750201112715973270923516693842178052132292462963766548174748538751081058881126727103342002203504903080710738231225145332082870725764271621448793015381164724516029406282501098935404724494294338381998691124891873963556627049599225384533586470098056499826467837496725641814291742735737649180459862307724549888716439083254228831207966777781211857258224327137867509166689499673109177326998362838349175975697211346937928860784020085360416384083253322416190790374754441550126299606637364446080104992664388712089650089031312613011766983257359014631411053674505776055298993836337550783049081747761010833771024378962019828858561595947270634543627672998526106114887170048389719480108136821363405748600491170066735981272464392366866564244199515756119626881114554375631973845679078142589951630259335288322581782017602075560282697509855181320510169623438188570128847523842498043672945289001491085938268844895245044560275478344116107880183588101043768144975330364404823118958049727757753996955433803128395139494873676589747812722464810299797698820533619489261685014607250833864093617228824342404370543063081665971198996414321411898353139739389215947969211502425052039878548993078172483140203401869549531368102350506446505056613016220182685666118216464579595815131240233721504849405826724088236296336520253012482906068218109677422521322233807065487703026007043603845790468208122723411888299702091639611066393960201050038498184907229688803043847318727401500824965952091759920373941700103134470191874951796449224220410683371600036348575290980106286558434234384065260668585578935638777902832459138596410889320665860270071618743192702325659890566649421689322542550405054400393404147286207183722806146275261408342952622182972498587234120912260006021582995093223423313796812316944703292171039808175372150648577543128903797334553957775550491539404148787374722478976181546170265686150364015822065279491361369212370380861671597022429451479933849076881018983942486751915401409291878876085520498058180172792343400795845064707692926119472267807837823857116014880152774414913099344097505323730736721118854484240404978853692260311582137263826282527203221613977948466790654107131192643155536263287370249021430173478077014131098175963618158436366510613322287183657305793944739901900538462784009566204077015923404922385269474009251773157193216926492394334049905035821652398760535329190897553581289356245130131135044882323620759605185983051508116657297441105274412078495077708325351823720060920804477262120825625572879776028252277807563370819938084796682613030014228102911278193527436952141043183385213846329145504723294138334984863302590423447158957542775226255354660520370063257510737453131284659649932329736099665669947001114776615451673822348687503022083571764211709416230678010061416773974649332899344764247124534612365893694202504835295062414120465978272443082423722198586251251892219721628147820439661078148561463712420519681482659170383914333491513380631052398710014620666966335013756643090967796819020297836786839569376832110943291623161485935228452894332980190456453524303144444923095335853594921604298339763512781697826850713790842263940883925078863676495847913839846074385598555308829050521762592074665819976403794329462589565338734415363235572960065567106921692977780014721555660883020341827077687368139749983900188684665362381039349206904240325946247420390160809135798490930418494468278070547371890264298674900225464813606040634074176237182884582828404986775665151575635921491041576642375233900351858376523393520507123746081679161249921859638017422694156842310378841184374760526897508222662093092059071628244974159627347056766438201548910608251540532748263055950602816280131494076389130046307656977575752764745699702678883014604223286383093081440276095781624517259932037811996288507659396019599920243545789184509009497265950326348502674549608349107353252985368956363637574312492812318843384532897696422170471687645599561345511623905796187616423541248590963216611844678132940963863275969741342976785998699287405586527011903307458850188980768895739089923449903312150647597236280795463608413470854418253870714323036566836982749866579551642877808606632961910164882042220741851169957746816405782276960250995109218583978967490603137650294790286876331012688483285296536439218741500093137701793781168653618747760906804251810354662960917299831493628822041456188430819053352651180411712396663057975191074154031048741267549029694813996037533658955160844739563636488283171922220055188474495633119187805979924119901847367469564390149349353426541419426300749668959523025958107681974234728503929217923684570403769313305704493200137032877097383040409247385340066821518268954331179163473739816619909975886953990188355425330965734002306959809251486848524085668468749839298863528593783868354731399574396321839757765482011573391579302408048541031486030166738405755610110195899865532086143521712246333357249396734705869720098543046790594959971811308500657951871231215846607092750566721126267723502659031616180544720777968228266161825654891518731493278477819333755843942031326191274888719373312118481174913916270670983653321224201771418354755312705582686625787298463990361459979072552579155483620184061028815430215070674088756303798212206801500766916855208645720489340557132605657876565934137316244366398193006435448795124007058429048684788907221884654136218333118430504868143276083272270766055096204885031581312716751127686093798862639032268456631712151067883080474602924729467089001298268542843959582826679214614692020617410313404803913106568792694376012003175483278023388321839891763426538334652231081753796802347013423787933583787972035514976068827579802683249119130657189313324244267484155767734212382388501208927213583092210335449310255610236026011304154476678116832753953818963594502940491214944734152245716036850241767980513523288429240942069047700970962905828431715843999354038259017833730972360236155800841077615069792290019582124463533390676438793738994947308010808373271946569056563961680787476350500185478548237881128403471913017446845626017788434394482005625288242606014797789831377142702008835884930271436124543278236789622242899536596633530692164469919220081383833586873135882533200657826210465896929579368196465468963697508008138406309299539697632938282517234379379458800987014011368913721332131898387957201168907244398886376127209669769151691219054245717616680986161198686984863430376564366721636413464713322277979376632916566188591844585561996030283160516312694531724807861560893592679194022212961816114587549752744413470149695601426972315149892382485142844755616458572466938284804432250103604808822441091615078928440631696385713446175713088116847236325583144844700369851869800347797622033961792482774978986772182329241012494139289680299950547554174889313122458999529650986261368999875998709214105889432206250623967027050061960216455267944996617596312228816221367499799671527357725362634308058386091083216416186865077915266525530720568742500584408150551310174249168055748283449929303900021111493451151635631228565142121614385564534101329763592082261612724410313598354289313548998602536406748880149138218186159230048414808800655681683645490837433700138571833651298012077454626472316130178203036113171393284797237564566922930792178058510696616607872632515125289568458798193558418877507399313086606591795207445983558279452087719774631709631455786256667039793421513515219603535936002661071288746233011033409565730209475084763905119996571726816722734407723506140572090524914215270543815466963800788258036035303162620356108312889707050095733185241443557944778834122577544267991863594845865973842713369271505600600019971785200641121651112901840552149714627385748084671111156301345322870248460717102528708087281571775245039097538812332680258318428669422480810397848157624697251895742259903437557881376812228325308830405387242880902362100105707624861304779867490027774956692984636531999845523786656781110711736744431731305998521699467424323425898453795382665885213247248668242228677507396667541720750188419403726742099997718795960310364232874335860471523914236143053168100693985991677679873616403185074727028248563248000980323220056404863944942750372023173524725787436513129729457910421890516606619990628587176634373143972133112439436797571081725578238012963265671725126756017929775848196978926013090955765799038044387050148506613938011529197399133289532099844524075384690332334906472087095403400142124182057746840995582155323154190259607865736609411357598095916827479010330810411858986826939991832601310537505375303586857544990015201486968549952022820177364520475098208489962952486313061880239706809714201329817863837977683043982016914682697967278666143194295143775360198548437656077738394719533787560053926913826308314299692069594365571278981642133384225360550464049743760975863364680210543521418668381232500943448455583627706099335966552294414148518697944156485426205345425863242450494051654467994145494693321979367211503820814584797772489440392184577787468327800779365679735947809312736551044970942464756117163532075831777858679805465848910957996287201202954076335896448394249902940699125777100119860507092923519409450267545604918373924800123241691356745697197136043518130794005138705290003604510233214054947149541156296394279741017436549297232913819133162341800665178954747444664994750139063246472755721981531812027630992303941961269846047382816444287100968286353507463831985481787140708920238176776610851243155966040704447212099402244825088220987548873491975408244269240647423428090569843261588664051355614268915820870596285915099084854141338172665888792967935441550370818510293657960742930224890834207493944867650129858423139800262974382222596283500212792881893202127460292717373901678195217657312136186583664600281246054869267003669069738443327800437262692159366070219942746301856036993291518902432352788396098034712664356259582498450025950801474276534456536838195994101547290207174268655945248399362921970971983195174669456227198885466205278017297016839536128948708232289634811364661635847396085408570892575221639808355539231838008326241616894936678679256830920432020800244447149855869256011522185851139856001365147929457522017489390990280097364928711333817591434696982549416968805347554700953307772602059027547505102413893428001134771545135259915010032310017021630812226839689598690430010009897096072412835223869960481548347872740214625344389536561027506884724224062548778150119083198702320668572840751632310064135296193625103045629671504639630893086728162405077259676206209106441459872151890100208721210061358573429503216698669252263084485826213277443911898256572230578152901254265153300413648690895837068508800557455234456922576033744109010364364405051609007261538241027473155758489106999243657088933340860496597481859738812334837613768346485201401440241971467231553546621859324588230556510017516440159101218645063126710984584345459146661848318404068131867445617451091552705351968343690630540487923243654622799721676514260420261188834507486270914395634056081516551438701304080542615677218141418287859274561848938524655047659872562336127736415061096405781721518831135847880361294406974918363292474225221665581200938802430218478596961590111083896583046826190789507603650965509067015578396074952413323347248157772135011070951071444066189451285792011156898366159883184673902914543648024395477216590715240906362657149645228960287630836650254769291849848562816582228697249591306906070307065219731243725300879790897332714370236234524216539968252820283953100104456242106200898730116792675336842317263249358738353430439796618623792454039190248381848977590938481039706430581268477119672759629210018870042594097172284267011157724527686427378917332585858554541421459298274417196428255046559936767086993600690833735070550937199589948000647447291162904008006913000078470661207783867467655383159770904378879359551014787259218455740718310453789491141858944866004857229336499564921022476252335632202238730748110863758258205162632653480692472801919969029363163880607738797388684902474272509806270565219686740066595603914992586953402886808803744684997348467973259613440015852539494767878441445432637379372337481509574399374014535284809044644046463059536563632530715250558283177576587630994035541128665114924213185864937542571222996701569945402545512137922738415226279578755893215788575293048681861444981727634117089044258187795549863414272839769334624893737428689994971669031794645822957723668658211083098552070906304092588338453288136254816157826704082354508394675280542850569676716397939818660536010394288887697646759839937584646948863603362965567920754208633509304699621231283970764067698068207603469485302621784070612639348672126083838649904854617604991798294377993791352485616819541942592514967699213516784622550642358543396305743833350287635326401588963734338364307168257657323239136215030215758767677135523703972043911112414864386887689683202026653680825652598207083117754965633790591277247200434928615469908876045639867228341248999371912295489129500422776857988433764221884415416341543648658608856929548018299106096166887643337110948110181575309296854519029125814915805596168897552830826692661863331060612106941352542780110215870340815219185349504299948267562864921851584000240405835318583450520941473350616587451318804562033386391602541343765198162236583102800635395867379134324788983253392819388038635768558753799342404822996853289332131019477712841966354558081288951610235311040645504190466942052847817263821321500103137608020697283205594687479236531571531914992991873922821363172202707158184801916423136150220248232098223824442483677191624183642759447404459349401407190600519060984256946863144959433074607136525493975168527783810168060065942830658881379287294401431499513883712820822532828119476103490628011132671912601558772979691204674655189709848787286474427521522865763013761221652325431359178372966034054079912529322435767866173540134836035890002367433904121471272561412601699862973399193482610326976038038028216742441835991852585960355418038011247147506298900369048479724860615091028199166633009690795487005604406724735799269640523054266123683126535783450202027463135726831593567488004248259365492302584501071031665320416017179281322442406851810888035861599205008065399459312421545306974311020341832908289229922616806974856951348234139245942745823017310631028646604857411591361939857399564722922510374257018862847503708906119188623183574793946999840246639515055053091031954450821385067908546162428879870621673765909716306982699165242397081881922791319425472541793983415140571213991492011603296122207170133897922162665472828953294144762579043853646313059777114726048401916714523609733474174505038996214225560089226165160201071935611185716646314240611242099214852298614328373794822219432577117763774073249365312839914196048372232517344700997466557953374965399812264035506148356089512122727397447784637080728666187501652318851850911585198410042330286871627429463911044431996038052861021343253540900547332210587332115379421490752356750864021031193091563701373940992543407900342145138350021889877457861593249102528626770780412958804196115089616775459989836951805840971985766373272290143783238028693905856298165131099268396617951340349342125945127179964550668332684997928767224494938936120408765315284638900176111944278092608783056292803415517994069806504514647607213138849382830033298249320036939071991831472679730006477072126663301312851019183896319376499861400987566359985158266767209324590937140778280027405275802627258114329048924906983834892872790768086760801868890021386745400616999605472911584248066828512845225343211329082328925673747654105646028138287201313283237944263418713424393984086662327791047356452355391297101895547144617543058594482195123430004539040336919868386093825493497189183315723710515044114753122924177229437711331642109513894008726943699267463189982626835799037018481188472847742100060246153990064965209526902715722505168917147615173249637944114966802529687432047140467427810408089224227499141287658578677391990093207419298379920329696433899666466517596997143783418471943617351640770907665343061770239546645712717879154939381693544182573019603270504576479772449750312622626257957098058699031604833125190963159336546328235146095204885261145149919734380317289030371767521176582965801802100605751820178015116745824354577396062599579914670236342354367025035796253060445415256386814986934830085509587091657699737734501518924778684723142892891446406661084993100021457895217556644397430356591608977500050733142691273185140019545160508465035438566713237595528778236067074337033813586468719987472285122824751046849923947868337555823403277586614068008661455685573641545812458987734166756252194186414820005064503391824491827619101514191585059669454777392093935306718790635861463255358100113482373209479185751323859511800855274888293058271086116349227131258557430206007416143537005122177069134997577128986708034353326200835599174179573327218199000180837724406382064829513294436085808224252137493954306373479600585190128406523141511160961763212241174084057556494734606869991904224573160608812218575039090214776337029264702025177732636098085725118835741582753811321050241802632151065743685625301827475408960291612665783204958597237311277246812329435950733648376487189544264530414093250662484410955133397644471717559228070599546423133336913288946692093978937137173939498555220844693408626086535006790364670174876505292299081866522751960189871825004320569410186411387167385065614379692174014353496329746652512355055398876255155489192121181715429178794372540797476218164959730833884764690963908794840936311845915447146843236195242339655373613361538748660252728171506932678917220600944543482218097063422602453039843867435251459138480311252211332937324237011899426621621045222780851785286150087596930227533022100297155656073407648570561703813421609100039572325717451564881919752836494013964110911828038121939772959793507923663951151227251821400996625594486126701092043180342333449045493807389517083682352212111749852863029942901678569717575651896463488096257234711061350669790154451881461893320323632046073091524358451484834176444855903822985037468084789123308306880742570720338962192306127444785324013604002601585410694023816445460390396227142143170886497632173496487675972215790468207060209778890761803642407569661265467829359638651769327416121650798563898778417229712424471705017773861949882502732973100937722661122435074548868537927925745439010793256224273324053264824219916677714277688730970795124063517512723969744597526617523384942573833932481989529077087115172189787359760849397761527930988088500601692995173983885200204983723962563841067131205500171058044496738929704802687166719681897692290498373089490398080248531790404983049986122135662661278355185465715987466176906319644139172187443135783209524001704680138220551202949148198973673942795621075107287705943897438958790070270442933474573153957708785768811902697057823343281236100928398893100418406601384375763773184840371863695194209334228629252663416508104885406568464056911529616615959590677905201845625882862814930138392699501165291941851643252984064160163060617297296066475283572816911276311549903689438758928653875132703395625686676493999363379817560257159201758742217261923899778518561006994718254879298124319898581389728541597398977247747404547224217762448990838930826792072837988861076439416579636906063586918186934772854096750071826838033109592569119276007822730492476428375750673703768629536933842659420360485981253495916252352826657375663202641561342421434094877805899374232433650272147448011982357389851302895618659941655925841805288644986379694229721675304558025390133521418743546702785104719855511455503750032238875547563687137214447990267415257193396042226159380532461237507007831668024935415735130483972342145245501184507772595901003078916012929266691397598236251369124266656392439912363593406097625102785185551970595911749484354786561627042600964991366518544082549642351711865581655355724264248241132500442917817132187847312222677117519232646797808714487024367950900133192996558163255387036362104362606564986724324098420647439485189082026222137943836791126491713702772815445232813780043828736741093556872974626516311324840962163533003318552202512802143442139142345408174165167752228786401212434463976194751764370711589584985532882408414367807433163547526832863522864033977727338974056524186930838287682335824097024599014863535275756029230496580532889459102770954687114946839716017286961909795306255738550572386907385132549401347017892075780487648310194275504230879737959367896471069645086284331349532419133947222883554224659074097906792415517842942252549089293044446138132185876183830233405606531387812893892949593716999436434116858926388696026200210973359366804274253157029796068005242481255813147548306058905560832889453001637911947537500543510308310006176273673938674921285668692438302578286313187192777264482269947924721633223360205281780101249669359820838976005766395035555036505247209351660884232667508990570625138673347990000292992363573182271002397132539106328482882974625682319468499168602989122549044588041442491530536592141660511183991690969218364297996098452072812997394534840286479971167548571882281964531696607797220501572563883271383487375802376813014379842560743622055827948672067846116927186442711460313226921719840785626365741447202895031417202067423252546234774879907345535566263942106407435547565449449423317215532856540866786882580250222003987572901753072225213222216037985624338858222800863333414431862659902321903378917529296620138705209015311478137878243275813399054133130554180396802702459945620936403312752326148032254308732201401224988400611198890415280706187540767815525741885059408956889697573009038409689873921076919232211035596035043895438591156845848447035988850422039905052339966696875241267746266484441166398863346453985816838149354340504098336307035242156583493716651733924335813923444584778827953461074288355840638955649886082670305982281443326168865278751255100462899855036906045234690698670940695284356629708465989031094605934083044543925189821101765811700529420831197106243888894800156311517412888834762547551252625424257883206188058626163538037862451348142596029081066921890997850781991341630495703282149380959558254597422548329388777926459487646324107169230417042832825315179131295676939346227969758153976850045601912767251145181592979149512845050791296806846866198429604374952575375054652006326455749906355436191027034134654006359796279933602567649139457702836162366327622617284680674657433120863573722574787146948735665140099301547572898489438513507262736973606711732833322699922828446401163145463502634520473861244822379331352780603484714393446646861216329918988396232763307748076736140624262501308664753106805125007770120691643268290117419615073761759872960382697291237872144943675760247988403013300652198324219971771538659968290316224509835993760164348363707114401641156790899798746751731319098537857995421649449208004730385670321262321301003991863908177188960902141990916728914549912696678283137760943428208093239937916629555277861807824278945981092953386903756966417320682561061062884774296854703493295105944577943143305803354519351334410757208615981780587026896911467187646538099640703618385618340247245479490550539931051956398284188221816748832297628009990241805272839748387768899511522788592893500664686111476203532124968071165492760352919842628781362302077296518697826641158449490560239868658943301058698949766117336388842277584879251633680530182728398119186928262414782088930037868391820730855844646121867425970823207337824554316785316137688917684685044320504849873143137032131411806579145441471581942209348964542618190159893206009678373580523702909216722781456556652271105384652614638846606640373662159718420368030555134529883230789309407625011765546593958170004570988872155491725056282006826810767907731604618507006519136585430101568699497022000309191094054664543356193453427793737886611969012315294946927692409645358955326158042478332676639713297860215137085081080694594352967002702411100392374635079267691425240164541472732690223611945453703506170425052186941122925293646948064713445462151494698246329762768959046737179970798692380907589617027230712829946148316396554276507867357306158414017797501309852855728336960675987403501099396827575963065038650630258934906344199995689135010651254646209217675335955779791193899230198556571102878397174517135986845999427092576664828650518688411790078332384704315499928260998953195838734873036282141527760870556398577524018507267498340929103529928950484395279102333942458737246648834824586004577800119827549894339313500552765432501352663575466380930851139862271614233930287673292711481201175125491037441105189799566498258086293624977817944384550310518479997329220472288724053830314132806034084707921788697982045874531257420957710223569818251442220971975108507118703003398462610196361688398482277436205540549214970113175689400329454689302235896065680982508829591191956007969425362601325269690182565732030897800755367055777895661915911566074628749305933481750085923653859703969119191997710555416740035617841160043932254752421475921542486511715174036909396471892744936360850878185267295745745767057262013737367106057497940877776755675715101037554065280393469722856668347377734183544556996440097099645236876238482350606908996218104399995797549500956508841705720989958587381205842148773402128800946065192074398963122646534246357161460833952753810176980044456652235125055859990875243400959377854253367275164668515878470170774969067329317038922319182397006508474464282028289285935462699333438388119889533182517179981973012417700057285324553512225653453405725545625925163442366312725632656612374363667136770957784076825934036409934296229800364075498150838339059361213030084143089876974618337051655660195468007263083549399518881027915914079487677505896029002095772215482474244854123163294921959395976805892074892558655813540449572698292724813610845479460441151950516521688328171492063726499832705698832100066713858749214672467403969510482758595559259294699963941942347885283224970185470545805110412873557697009480643995032207804159615154152082914170828131321974581154997463336350105963055381791634128136095385894073540903314539766757744291521089622345802010538003625959981938092030961877572990655713477670436527222915314694577646542750591506325274573407526950264679552632430889509823692746204082142694683728209412662906951305463859225900182273231255382591491040730266049770316482575346824090225569362850636616254194766990483239450244420769819682803214593410600810281721146186481465543735132114262235174851238557302903626343737371610530182524543273274897193484976132271171679992867228021127212797070661798443053210601421756299122256795215432926121495868724225782599756018358380419943863268178167089708777317658951759877229970000113782728205443474451282543192795414328322149984022066039894353726381915444068980884587350279728402548580270013155602863319316363493143946638791116870280267464862592986910837203964162729838157093919263554699384397085544099818858584020522087141773244675451313951255559295123832256309400353672753661612075290181727370958903961134086885821486266588470071161038947777641095802768724503081983320311239642071775590049048266935268728190883730783862509093452134781358946316039037154411019905833794145727214302249584332689657979858660462426587922272118229886478406816034795285973112379463907870603894635545102065856943773066969669256270453124772964559271328551778641281697666501965025100549955735554871002291635695833371045020472455390614840577137045501274221542037327455955336276343124678727095942774087082805872866214759676717255293677414701961743975269909907478056696739576769475991789205033799808331580532958644539663298432463199619268214669905406251675108646128490290107554495574700787651305248197515067795670916750897074458419920528426564191208443237496568615993871467558340536197448059559969589405730261653425564200759698456294389471532097066523122040989712632477403608033003363797907785861585417515509499905065860343350146725078099531907670890678072611157136961040178661018342690702791160796394715552993672534377726142147448340663423398316397700527261686643283323615156655713876397117259069053129203708396775679285103704591341718480903340882162844037431421457018392170987359175884318699669293002071439610265257166676575316656499595990352089722831659947843141896619357191370477955748351769850331444539428798009987856290077776304964244641272268378137377612522766480916253894436299697055565849770224121692264955528831916247091478107020137736928577116982378099603399455908539801151743013121156494943443646286378267307394334974054903677304479951454357828532287189527139076852322466621136504337333922746179461954507812005472847804639058162584604548573549727356733513790271159976134131412188378006635551861491875652822445629045882916287535361371126660720533806486082507304465089371538181121130029840942695275776591898590742281939819611174789161923348421034652659331133030471097666638108621478788730317111464785950905009073245926378872144786505924561635315885685085977859183726116242669439647402943622341927230068729948846090805635705566468134201023777810974040843445262934701352525283353685241039988871540388386040383772629430805634371403135638027264285364281452186253836893914517718987527918225769341468855588143188049233155066247755976904346467267250011178592755786354215224993420269658721621032721031669362400549184436864490551722000182706456353722942195882437332454377469802653267436755325736110582146487579482779198994814604007338175371182472418460232149650460501838169093190222337124583908994146057062634529260511681936890548810212365849534501443602324454013668308810957315395835629746829214773213935297509687402504878551386660505343292961452479140653777096984744887399316814343405280170408697994833726736040565646104286247994172613523633693613409951334086017193468754177614183325594754620737450331042644447475096298620648004452208988722627556054183593010267294833866920871568266452893749664029787751337223735397457651574853431088086215629578920187749084723471900954995776447319603272006948101964281847103139386260267210707693606670351387993065722889008386267427375953592209071118493638815525451674411074541023788164347534854280522133746735404605980961549180807936195313978986233683502770223657755592819355705926821866368481894365774933554631295534752729062383878498517337723232643325568124727393621934201676561724895709048104317197243483027547834718859630974058152792384498398895628282225193582605961483851462345211905511935029194766753484358605934780358621525373406826306532006372458339005979744941668667571869564556395710503206824345599159067611319792413750385319917127755140495760928237609139782904753366715980616382673927678984402570666372140310187424204853200392750673356820710463547932601333733475637624855003424641379480905782220398367878744247374712885423065036864236676795101986010978960840395023913926056411281403716692487609277490672523822351015442377874048508124081692458327069882966262038783484320774477285139119101080019809671007929891284438289226823506411294187578733387224973189745742782386307994300704259932499490850951642682033901624316882493716557441666945747178041286672403317078831489008757467391057166979711364384251271890331351664706526966185934727019441987098228256926128109922844067448321009642551154707605593591309962143706209457306472132418618817160436428393575454047023015143419816657767226252259459484686279237757510082048587149625199131923862048205732674606069425298139027997435555978716586425012471381019536830135588750336382214487927781585781470563257512227353501735802023457426392874724294806904793010938701845008211161785616827958335021731934479859040741792921425372621254531141556699482271897371703560755758802738610633039196988473139769001833467405773747528918917349065663813327143229418090014729203856700283647428693167928546695591578757899928509491388963281347991945963550889129277949364086001561065973487102885552699421938087603038272311354647943622117414257590088482865096600175536484777939041997988700379547965161633460998817910669838946924744836649918326975560126537005722318397313254933110064071245746401155232915948680245400948925057560779667745424453565277003231130666831203358722093003611775732619748188195720632020548184472966645216561751750127088415310976582925153171574056693374874343396257072356742164374936547376663031316392637871642820389222410470674656026090018298533896356205337310394639774403054807737189869802708262953074658733169123650222770631998089410634411651175195779568858400217728697112973986081751379333867909506438358160122510832830365640845817383645967463094190866369922687994619378255797012112667089023932245006328882262252429430262995864073236363485528898165265809791628268339413206168246817310821861785841491182083571136414659152081489977403695843474158352953933636865942692137953198555956618832218759129158131567350443487247451841481368003795356637922604160237871829406910122895000741661046658473870701090046177475888481683337249215275586843902346858622677272846841851787486027209898544375587479673379614181504441240865116375322071038716942742550310308563419496822110681822336866370490456518765262005922730784628783331140927081627430164958976496540650648853375538734300526696698794713210184648715457948369966857191457522553637380208905264541665846006501565496151963379127109830616974122157292768846439997601575870460519610428951758877230972050751913018111565828428455077711252230374771633283308721714337277482811162041488909950389807146246295898727167223152384034868175821942566366620773639267050033826076910460904682297461172644717262929353072929639249321918192682061182595954085611548187332264941345279113835104084617832742629266526742052579556721303076316738692244631576511443194586790871187661591268380356992810638690831622420277727530685767834306831717802968551999613614521049486670686950096818306025176892705569606878652494829141899476062511831350634685155321707766961955154305377089044288334495368085768030604182353954348834448804451399680733374047468406328167194740858388429842561571368169100520974638194466019854408683121714900240219133262704935456071656244296224640761054547004204593864576921895863261391161223528132954526525920883155244278611201447239924696021453294486603882175428923116705709096835886847817497585222667465353319422862268561732822958564898128345238119415144536938411278750928380060423039995365404428567267615749725618699309610995850156629805863133940371678845883156498650654911197561884377695028343607144778480616988511364395374890122040925014527899964010510263491400172663170632244479259759389243408781676913937005468440560941457276766993612253706349457611157982968269623073199912055298864869324072217182150076645672676015882804743889519530152287803469217162554236596313268918631633207431682174487408690258697040030859811916100420653257855818313719801731446863478800455020032903260511707488403607521382430314599069481133964963397078103999515264385675407129977698250176970078575824934650101042826664655378485721279391740276692027896450343804310100278982666323434947569493102103825755890343522377632823381183644763174522427707580256443326264025878866981997069508856774774350133564910967830354104792163261586344692822668442889420977717167182385721304401250441973327459934679960151669211489091595238270602161108684015795322940740351268096635104366490933553308126946913684749481752317777354478627030013039914243949039348389636030992317354352303720936736618096499426471236071169080344604539887035017150393156893083024709312686425730313825294137696893990690549428300376507128746695678346706024738083129745852319293332836578597586859916317420828497568341153207295653378672129375911661233441538962876500454195976493383139091452138660858600465287973496909031698650802153838317772558421994038544247146810678658495037678375310153377204483422403279843538995212923823362522404080487636799764237539172957059707569335809315837425421403945345457445089251358551917766074390731426816949430289999536248504536507948614642932862639772956445400850742140597782582451057153895549172483153443443693532137234700687442380441911041263484481393643493713396791244852466404980009814520822273842028969070862888167154056679649981748416806000518046510952312768417291856785535279797389664012300431333020428919317210115746359330664790505412426591964221443271045682773937836271480271012750007527297706548252432672271845966306865038290007709350390460316432239616021441491162513738384431748867388534882811673122689098116961478776443345336934166895702655143888542216642531690347000995497345120736872931585264979889466878416094948089897705563472086107627032423017271477710269669652354930461712866412255769513643180879095741692180173126996647686695657229955883619025332957699510752330867136890222536544399637042395834518121237080417763887582634598401057157845152586581172924467875534543067155201866973350650003170744807945955458799604189665820816596951139085110971554909945952916387211855354475527551953563033413902548961166608660525894496543148900246515959354325312158425493839194409386049084801008680255632518329181085307570370424090355140084002584939288430354971634629963112585204461629353311690534943362506537586876296927290730709312803513460467763844186019957450226645290613401788660349966529668312151798474493158257175730455322529710654163725125128025578069023871787835130558629183218635201356823329966197599770856729924724418085873610215206279757040903334752901968162061515183194942044806757280335442440946297290375622183651535893208617977146786716175987407576180391439895156692060462846222153545232978205566622665721162454374411985581281107707811402506730768958196924122878139468051344221727247380171888058916777580621952474089219497446666705185173783787246556826690540056039264017751718101504312687416222164025238326531013003905261204618603724344375077770794823135965652279394857344786843640013480983244885565313394187325697582627711772084405787761022220940029038536744066408838127410440495004271717228116405203530441549787632609427369627462163491868979753594479045600527565770859316727143925808950651531937152119412985466077711958368653614891772512584309482890677004753179988800847550732131316794201372851834216814576346933639642840789503536784930438607192844491828846016409807221788284177621379611816903677273836029329838195171362280797943347248237268475520121443115656895915243976319320097739622475354320197966211505927275449601272880273084506907899605365454757724085538401410093279145137729279002780069476701740856333878409354155961370060064379748404331705825476038417362011989112427255394569566697846257572421828381043700474179085296659511899788637664310199812682486532745396425838229754909940820836563962918041593142844739999625298488749623242237368803709866776641591091094391599486327517273397459558913094975653994142051252104158894812823302961232080887338801242203762305125342851629858085523560490848765609848805628058133557893069072328551576913712249629260685988919264018199309331652519059505673512627295554813636292829151493551645277962698952132720556413429803787368151001003175527020194451916022395918527906927381177572513802800172371450369117467143533725481672550533366139417661448648205541744978974706260510918700613890452297638435687020826502731545184591232636207045259772872193292067567459102206089141733351052432480850729735945529236390538679315346686387135932993556908162149829703051708716182626434950572514286917125433818629771961814236637011852043777087775826842894937477635395749483396258126635471847593053541127321903530437736446336520677079557388731871693120920436459709260656267958268982252717673230864901846102997569243534908964474937389216178764415064807554147574969531301002351783163394669219374012037130818052714429384568056450889067877297299081469505965894783758474065315899085379506107857373050721195743893533577952470964946327324043801781089497609459521789472957017988500694795264889971476571825220682836878319829647290656711758072954617562706376937484827117450514678271565562162576970126268993977941053931146458593385543662199855926890805694244142201500723573152045670817346936097848892324360038344985597067897036377767805582198432927568654027384607860567760203851536957133655850683645001667003336282812456765649071689832360443024475282746242144226512878960010195171510640420861899620120726710635872922566436953229635236376747122738435613818424781870127484416876607616341187228237749092400633039215682204752693033143934807362087687517405930276417090827472933690606921835604074095377024217581303628026940683469131351780115852282864048307365525119966560208846539599315892195877243069678691766840551586631014948772328836848818572611760950009966791551987191400797243513675824229238977261522833881009195563778788656467153513365153666094975310946424896074895719505093412183508308283165804841683320694725884033268057794769674866689873773000468849208624830847885603752972644243373654485850700774722954301069600007103485155514812876461084275415810890940164636430727577061846768534435755057900619638066017913922641099182286838945596138085224272879647088909712106007417557610131924480397232569737584702851420185091811086026510839982577701967266474980383065713477789775397232415907431917336785576682158119320400836866866215211951931467784263007750969662132434255681484821813700625732393016825176166254001129850160798688772615277811216265907623817514273270387994595479152862335701200175608858310056520614939397551981759736684082077024558148986718632520505044043307036291035574500503570484786826421895311546035439550475490049896331300459456583235031185182325593580356063605399755095791472493495606409944771021849352331753429079206565118444719680270176056987138855473325964453114451706498601327832073694031322106760173752603204238771141483844266083287432666821856584380680978451377033911084228444076797344161841388901394361543486793235654736463385317923778827661046141549472192705300721851929365251267324702895600653770003661069288561248157664160827312092103590990804105775856679175086597362646597677511317938791774061367113136443512980009006864985514762516761880937252795211114793330784695786549716771339085167993029160987300951459227613460704846572199443312301272823799394002341413689438986524179151235825141918517483559092474788438894033993989948867706960638051867879628371672403235088104963911051421373932090319899668114748082630910267663508776810957511196435495201932666168678166707443740687613390758858929352394984547993920479328248766977384000415549630578270663312062007460320990110498678861000543189315632491410740928972605010861425249136402860944601682681246982934697960276217167080698987698850805923045948980579663179649008726015518344684138099771189633371308145863652301690871921018740778848651964215408213150294241139629042891726909401395853072788334695004526912483195195125291895179394164511268452630436294077445378947866506125193933047757825062764962617097619062308410680430761410646832314193947802211880688889145692212914704150811095460534193435100279550837802781405074590234948419082227220260499692048623388716001021522925202950714768650944918645636376167431605137036576400665841596761618073451465710910551194208912227605425647581346483201685125806540763788198500346544164068220733720374164570387478473872291407312926239766474278164039743814989295904370725148567388210649644538892779958000077628119940557678097549022598194216582057005612356576016746008055439686831405250646148445225548893338092310361518939146786023206920570134538440827940267035424646667020098058105768871459324352967042493468517160714497311871399546064244086330848752432083517860220277969311057080953677089122250918891531482160903820524391425339020213299265499257476592766506392633637163277359053098087361868930819424585832149592481864350381118046337158497759811769595953217968613357396301580071774098740165947921867449955797364115533724354117955249739897473796902154319145250619419097851610276468842600181648315057986113088761906585057418165983099802292341314583624129146724073435589039330990343822400273559543036465700778488989301900859684414407047796428775892190185178604433757488305601641607343315375661357011239570080301739039006255720368118732971559143262492224552744668480140340796641742903897438009053803195200975047987123148241735182507927448206014910286366209156579360499725323753750029797757398637042288974154977925815249409826686547906583429942744351685885862553124238574865315818396997398491443903340176888982607770675673348162828219921927385191974795912344477624704628506071838008096568688212387637148134938361956917681872003608960498113793014565724503929658156596790349007398332151794180629623567178556451618781407431790636862041665931453018310933014536899601109242812316011684448451785261803394179858066213697374871619777229327179654290804100404678142825604185883702595569776829437607850745126649246690616667843389459375382322686648217633138638655490513605858053345323165177541425289443432210818827560124573550177377566811841009597277906586075429669591871432936131247375426909871261874322846568481452812867798660886723483902029282943554623873135087843731578040828674102983000676960374486807587953082131649921982611871712730676749505096071111348840737307627240393144836365406196546975690652838926073687691178817370375940169734433720756208099527629392734821800307978318732234750557468944323341711332358595031241585617424385413978146839577811973292638656371459191476403936923530394050396615694341681977449252026593242279182825161592975015490898596759626712162090888486040776876496222259794264737092119139088415349990723361854557387249330353958693418554597929176840497417217162916053630441035714718005452195298689061021382648876232702985096551690751232741522444322419083269577114222993607971764173972457427396549132169608016938686122156998284232444124571178910352255434832275051209843290639789379469718975422499006462422276937560264038316775658375637380532966548712137949298953673596626984500112962202532368801531026143982956746711965979894123827814786135212720326486502562980341126853878211425912526337790170574182328284996660337528359322125337285007551344364876146757851578663297652959928164032155619807061981652745413960261639721372126887602319817557171048285501749377087949526406249020643676094208763637306192416030378634845361208180179957568714892899280365521170856767268742738259030293077541064044253779648096752875246333386076204848143750048585575150192004910468843012854513156441875418301702972856004331467179834082920933802560269913419384905334507488754598360314327550324547997173489709711360211771530471644127195786176007372957552015499813926577053135476255628384015991304626574712308462721654311549490616936577467900621800904017622206143232386518921266657729818496946067290839552095001265958474634889574414989159831643110361529240480697901610817143089572889500927600494805121017752991270067463097494340132679203640465481210758508271180080846378464844032997701651970600758584091717767606462028516832896418086502508732980514108117171462525918517055143480388767807124123872254937727890342254553026633148981575408710472731353511705295986545894336752750669782774085329485067160544001604531863727977557086614857450115130363529343824070784305829121692250647653096680446999260800880380545421410320456280767210586476647624588236860947401137760761852805724433063302570451895552404507611822818549896880363292672085732290286595832554686490245407069531993594909015684456650936646454974743440597961055745260622546805896977482946865115037747144425453870577509225510709562045955042311604868812294436933519109949505999729505478646862071686744331508224602237217663841898459149536358793582635994732162368745456050597772829906427944274332414623427304092319332573366217580647112048727796387319659102279398015632495526761050864911812263370366171632437359536872576372478810754938803069386933804250971227942171300899044397277474136700579669560358625261994619536367798735376530764238372751955314900064134226417563006985876877087828601029791708594560940769374817199966510610060606320701046207547395424258655781068967568332055423758439957621584690667491180443555813308347497364486881776424887010268385631112196388698256099756755542437023221119971379073162369460356506972149975716357836461261212941577716660353703453893639908816730839768722185693819365294381108719796007966951729803779368965986864927562139575486317821857918599363977164592647269934806232623909762797453942045056806302676546620876326598174294151982722729370582733970536906204777057284933899721812646463143095601962694754602827127546351895945618263365551628477859242557891299367818382845051040477865453783150128221821836101344574099217524057843315657158826167014964289757389828677565490629525471623666977445493563287159529246316849049637004915141771559892797158394346750047314567235562725510887417551194287169324790644597229798577816501029517706278335298400975811875173698988949095624361108109393291078790582792551344645042793724414463957140797306776977225507995034540626624857009978961754188426048524360857364816676022840160624723019782554042347048736147585386768276771519880761369285611408953366932109863596404153560579918566127062513760636466915459696115831045847283705784148762759971593573586432677314243872199286667936742319922047048984575423583126052050563394255242911378926888438587993684528527863960571890760015556559463641719169038514086688937925854588766842744603452851918029499023391400451495621307631685869793761043304479002409087907860750994799266101166558705166035220537602662070035894151591950436843291315823274410576363087695370253645975678065926031862603922498784984591247768503952528572828122500229915935592367115380407450899541768230472592852217397211333445121263080212088502573083754510237761571820251294417694444895984317297327997444260073430518685738529381057710024383571728828543025798958477998429699629623549434202704145806898930311027070385378891638408546518731040209388281667056064937203174740655233999215496067097592079444478269703735606646330783230468834468222070824832571976739458793071035171723972086958310556539068624551070691588642490692726287041997456316778023561403025563669860456827590260735537107394234111342679750664921866654262068128558394193025211546346641777465805956528213234521699241722319613797783837342981601761101743070240831847141700700542736266543036732032156931815593370369460456846561097165157960930773319309010826165781492764539721385237055366645446214335034022454488603681028232570044948569216680901115613831584396802270779491405930244938565645458574075948919298897586713032679900573878230379874697244419986925888721017207096065744322987505032006521047017069542749803480984314315643701503539739384305633020137796063859460163338814207282744384326004820830119907692335941238581262329085101395756628663596075728866963618054187382495301702601790610950885412020755851185225844082679491047278105573359051904561341160889778190552360930825582959227961238053401755340352812287979011234192964827139448320160707435699050432822296795361615770855285916070928512639463497830122611038215186966965203400368657409615753058812444258758278703677929245196244599067378883116050719546253624469309972334635645133297646092089431984835765400789516271071554540739246080067415838822141329533220869702885109845731739431034889714011020549427995075913999170100936370863898459598768820504576789737814063407672889453178832521010934938180138887278232314961106303734872100019848208727262277851397163872506852111963371081312807538990944212195369739416341160011810080173536062452285719434751025243614476773501860242980128982705775905510001803468119883761156325256547280657058839911176938334692272011034360666067610496477919867851683667321933137162165250787779630268355429856177450171582714997254624227694882068955999636007585116452511532528017233927065655737938903745672511628490055128745220495740623131406263047838526081060274750257789939455104689598448371370215516074689291250591444807982724623520267795888276652864700197307339409318525351260279886350772397446561241551278048340160552922349490558644837090545547489322129550514017145033381342077367922572336506610428311509128679663960303487219010939257528524199829952277685969921849806662295562231210870021326517354450897319300272677705548324844889044147599201586603842476121140178325480661628821412401588721274102228293110265586237038087665864237928127864095825169038201521827371173184668486674400796532102109033680368143199757265815528756999758697872032145838462491854400039667166680931888554299202224695674251859653177067371643605597376517224200709688319487335011772060731888488236515989076796480367490333383714751405274067376985075898161305518923552320816969574967056401430606173814867815249814744862434249055141019063827496807614156931040639606336148330415129001836018474684488900847860236578726943766777966151968818452596390194595726139075201822469170179680635544390071289567311870590445886075804947389562625985856007452078220365962345990953153750081944149596914640148975232199774884256232236948339486753135594263197801354731467424706913906107004326845512419209024172523489968339406172686025691216206582110133909327000909730762882939230087547355423526214777230804166933670288494461412603964285941265264762113088015533877382675505097440774715513478591082146420845674953013198658830809091778072967755314740738265359556450063604455705063556141970277031980786236853171986516364872906038970899745992512883214959216291067733333070517938728847194477202041537828523870552858894042901816230993249219817401325041976897003361539693420994979679613010683369607844450786687012558243129738438576656386278278952647812937938818488472485690714098667921573596226510489021525456137203433683486608973851441893354647556573898943848515778564106360793786135419719160895240779853178788076973021713637933167421374230689191677076189769996019121097195296826722243053327964129953667879641331440468157579635474116201140899294931003667112944380327838168998424901563612425403035362582832681503130799841328214878799896603974123776089788203252319401402076253401350689662257939114076006121152980525895317338569501627425442860325272124039283417381829982923129319434783706246544154476162901063142711387214280205508839918534745416429128538055428366176694878714750335653506582269553939005240627077733969509228414933558580675614936178302700454350108765843691071412714377021934031128529487753056389330058414069466633322959399042711134414044317393248795308207635802638027130772243522342978210689633097178900134629879273847060977735547487319339933655884386381049797127879927673923113221086689887536269648893353246692816775179203638756299177390049445911023346006546546861062406039249663503101870555568119281235200915294657246931743752469046461227936077578840241829468126565322164590972122383570256861244041065549537399618443833635015652318369347755579166313078476601128186920359019839718471932317837790349046803849174147906839089025539890822206672815663644871871474505780963057266788660437064151182725647049761283543142971918781478477908003067451774456204693917914217197156688152844488235328332173773639701401210588616714771770691067111964492680016287588878931884742475907365321791519074740032195520710750927604921094473067163398293213515465215581337530820823962334679937764984722305569543820295253756674091652433482768396986801979935532467262264836096746705071560178199150964392762796807566659434364253285673415171805757109506122947096702132508452426000453985219719627974041775857016399788185881676842323022070733541833108348891831921223343091181336939116152851796862175218805284560728823705394991915786772904799949600479298361208663922064715995868501384071016810965420795430439806749922137202376431019918460226549789642188077308993760727270177852827594410673179752378194982263726501290980958102442990278597439522230861570889759505360041235133266727152079995077527935328654911010636894973254762521231079654417984808358028431937283381026613062973129836850845171092149510531900172942909880065425665295600829222187965442390090259221500725811565902319345761547303196470218321397464144188448094286873675530632664546140419193735090609055016216445719093691053349570306959556447126480915338447743860655868755033399250765396162331101351162903538751313621699414299491656931380284934108273883172185904213293412756734477007502952217465020200935136750588945443488203245330338385830061738006383440384527172951572247910335799586674869006677602426463671099252739746942741006861635296175015419393916137036061710002228218697290667789032064455460973270564644657485955758912809063341897335423546703712882627293080721898668449242615989330359562843194134335383085919388681552407297389424535821317023552512629719056705448828679487062526774789781763164985454585643088783471205070356913797783838342499691328451435108744396305993701857625238115558643635720585866669644808607910808737253675580299665033312224230408226614489541346063389993121922280131064784583430842207479365939840339602214554846361046133760168067866592868600974433603643019040843337296221777160479960670705588326448499165405208725211223494479757849566234174274493274761700299615156371695403988374076558221012725228487832171259538632462559015257725905833672536820642265088153007018253636401198752428243320576890574555833091514170278543871020330840945333621679500898929787275880070624299927306699991782841521616666878310959926151236243300354695281525612567633178143331104888302120249539894085755461886779593970337028490452358772973318884125578575570347141529391718127235048178571114710874546240195799389419781413532730789524445975133665436484615774745824218603881723397676570212203725975114386960371024786412643876388859164966354678709353182330523336898603626204718084734448426691842629774859326124277444301212588582939530027399725559801795176813837784102196953129030721747604188118677510693278894227623909822668581194361256376348267162025617622180645551748192096266048828351483054677665873709935482252878857268060031182026727259659137313289446169302024958378107020222726198668949826126749983594457958508058359076955277453022558401460759903691657253251774605456224944999527125409288430071839788377538005784195074099830072137921162045390338954595914063309353983873908559236188130309838303492620683420514241659300203591064761269445185648033879186641205835495489659038486120425367846433844851314629160853377365840850328195614365357455926413762998399953457181947002529856097075927504906730998453095955514349358039950872401244194084979670035308368338100691329819354189026185904585205817707153021893572467410394856608885487774126615946846593971123723819204300518257685315658059413058635938118749162427386513522545283477978191140785452551232552678121932117418724930467872420344640483314047616926326143891718671601611022448994674633064942116121897024921199151129796297407106829338111299362225621405491118821005066336129474445175447484231651356774958305635054890166156829763372017939909988224873569926881075737761211101350503230018908263891820953848116866537995959973972742377729049773128379455344693734288175555567086663940954284894909512955717227654343067354177644113871100778128364724007866223004535259817028118510045764112838597684282339577746403492871973170047252236335045011672678142764021683068571795486008290843042510784471526933270163470305160402513680656067280998269088778519236948170785176981680837276383268731616732421323499966373033389649207234564545472883066233973793386821726818631055774601423240246029095377141339226579294819671337821489428153462957413015770687030506124110222757292027319804508993699251716372151018390466759493794004426547829362875900896651862471035081852974664738091205376298046395949292848215795764981583623079673359760773399483198231203150774615121136989378921950856550383654159138895223796842359865520659664655820093669326345751440085628922196921917568745815033065054441305702444409746913973636961961837826407739917531155176242941290860156307680841216346882623271436445462897890536848840435749952660064807307595204975572385043743684050888066065453109453615157191290282271784918991820755813080108326769430261412638567872271488043074706092072698454869819154742101292179786596148643747842083676253916940504729185414378292458353233404673775988361443130119777812378474901785789174012887426833226115328120843162827811089578021782508280595117660662674841123010130488590895836501038283261459239974507799762254914168504764980893908431626090839258732107302482429658453258912662459008313898559940295776513328734310429234330109336426906540562534866266249670702535913335295599721023255896424502996072880865281422794345817074078208546476419220627092171695402508380606874635684445774889978412037123369986372078393417412192161874643941074201339480402929134748678599483875315024343365011146040838694105540324723063517620722810138914209061381364654078679308596292379765037381998148112289349177625700970509563808905021032374840062430726093494055552841662518921096950384839519301704634382987997536572763347453793603162779083307311660748917773449591546672422376416814125763196693996326043983651875750445945085890047585973882976615988491948046320094912339536571735632986120453431950729655087581080691503702552413412729579032479494411881019541533358075918485231629570011815806505204426797606197642638266604369652367091602923547783674944905857750103500348092376646673190219191114088467732442736708700630796579723139893766007780274225426618813598867114862579428884759169586838848897557510611148990939038697201797069994272622843669635277488212923272680944942226319027737573068315553127997756707502332742716222866732370371831059879154612239370960644277154923296958656245608936096054516087304541605851386636814536065171077244414609235908671675135562898426107293331778908609177123170330021446649276636476096968346714462525742926847438168254215962502364821336726126369954242122497877515807394636233485710099761736131155198644979625761688365154319776008150216318072399498119416525311474613693377932523538852825196931514505691494468865158836128440756466287497240375251888930455598191563797949574035701633102235874307212666352812563203089733298923017901924721958196524580382831441614996274588194952392947545465838271434130185733883335569724961981390870774595695707289568385026757791264425124642177765656827030429257848106373823263181899157442013533456821381019625942107476038269039600763187053283252506590222374691830879349678554593547806022205970168512954332084146968905922935350441673268420449241682985197534412490494719076932457307472343892835680313620230813881317470024938281188984098184187303370760010204873957354650365077410609078922834088079005006728665960636805189156243049942807592607563795800961030614683322505612713040154756800113518240129937229894701112230773374681736427059695021531296529836375258089491297155677129657827721090636604579626801203174281050495767292294065696798076290252146678730816443068920565631887290758600099648956715284003728551155928819352336846042311111021247142464329220497887273371500240771669576651909756945215951688200081184728071268600622623711919408823523336452709160622237173906445884525688512216301866789988166666132508880270213761914615386483152561377430644108172594305618978392783557439767077945584214770685029031774252149056820021202860586892899990528912003263665175166167530779096441438695742725591685520326743145350764092820855082805686683010798246104904767605400661391863987770006156749460175163860890254834924107689758550699881093059692050156163658863733678497134135597717172485681278959442933619664647403074262172679698646492052233014505670776287035825565779795859902792726171991388905848807028381414875856759741711067544259795023115262748562143235015114869490588040762427952923912914232076368373930500023543741812046495792124606958124110431203043617772672706118118511674718765146222172593152294423000480186256607869742310467681857865118111063886653105885274987920419588339117136418095746975122334125029124996208003856179518174572841595379028409650085425844163272002742399080807149960653453757416246863140566527525942662759852611363291153899741668661531463987340593297578884078723881208471754062607588159950808913843406948266171025707985191945569467019460877196500225855006343704563217385686373087894821392589543736991690481046066441079881309685956944973793253461567287540474679482667226446725515444674399868713312751579981259340803288656514661763774559302053656475634761703242222738511799680579209067312877117735791494692593061601153811740956717187575882543645736140417833218559041608876339952609326386538091551584828480496955961536760446003839993782492687269884482791542548333856762759508267694686460751630622252057533480863108614896255199355768222388796033995771647024103609307362594569446021225454449461110586322409134931284345215163711545702935068753636320066905418900349657365945773313911907827378992916651270872341691772481860189190928728633003895272638169461386534182308892711315659117052042419361747541397357945332130098363461341784204969687307036871119879470421195262018836651350884371482628811367672617573329743280107519428053828132860956248964762361686102985942426753496889104019025341761886619299112195119265438122244221289348133194569719235677178552340468643788240144189923600632019805623945033050582668880247212383825893602513197362678635610143773689262530898966653671048801831200257728114234488221237624601000307161922769622939924556281613717928826696522570229196131762388740366741730695683965398157507283443403961938914575696909591312004058675424592761171822959263965949693672699720635979488883354650461489513667163397971578180716665734870370458663256841656306607613916902925086857732742355157391732864061684872317442983838757193543029568706575344547235844755655930234594138827075986077044933140427541633540449489254143605049460362567417575773735280627900927353705871005482445418970455879029797954919281490119029168604483921903926242811164641282503785945223132445552627298159071041214801105707266277688752684324056101072815638888195373231975504305136451173543316426649965379045139059114281401550628472397554864493083586324383054058951001980746888187984007693060506336491760748695075191924351416876717473200191942742403216355323608008661170225486982886667499211176923198468137455972561849932879056113782972079637579664834759589745929549115834023965327812354474047788048469348135540925967035181930964770629204932499298858461255615641384112859244784120418910828224433316684383835427500553472533645020444972794682630175993542538054222084458078835648525722314751290678039082842520915141131267647886402642880423069509519742426704999497892246340837072366632681622438619079111085768624022551854108217811361812907266712327201044406339982780200188765305354553713246358563782187002957155404714756222938028386745284740801849759083633885767505478895497369677240536666462963715660268296294668488516686424786316910461445850120278863359662693324555284807013949045202985318861305433499586396256537457661619866421610324371613445484993832622508115287417441996442460380156594965380853377286238219811125463566267554807247944019501316655742853874668827359137957917680863311808140232261233854564505622445008643185839552141822231366940900239144261778976092385556445248107370367968639601570944257992795430054059574071555615575189583190144647095737962234698794234568252312471961795458045158793575062709272744037694635090622669283109370187838790737649026318125699261929889783851485571253359182439673025678885077514035237724647269019273440460703138138859845379773691136268361645388005491168503014236567280545172684898738719423710290318061985281091690618623669607097028985888247060338652467584766907658012802079787888548791712961063372903279739553181407836561814804475931661231014184007031017975421453335948438768699295043252024543878911768709290753014058034821123541648924469589298898859858822921026782894216272003469871694482138371719120998642307987243481907123443360173586550212178968618567016089155834132129537747803414136486579702126600771122090796953367568643827731036289038497971106143941215159669127940482152415337691591457163525763127606924793720259522760219492595572627576255879225191760854466046887721508869252647092857683157422651536101096567884893256150670096779130872158659843149249791508538943614954108847988276732660210493083835639044824674855792378548887114428413696103437990733165408875706247912550604060394131171067083338972107198678857366263255915590445506677347085906996928346638086358084393602669436443467900702531030288564698572357639548992480452277661091293013259545238314292546886185094690628734259604507648312639164220728159883871207781034759271674877678134820878771359811365393979442955929611356859788372020717185277408223353618399651710634947989619354053010609535411600990073222298331132423407036350724808300436023915311594602717345276444218695956731004664394691518090782721220559462649829977522131004722585152773148920240473303072014820076599083289175824169679151843538167117776072005912119063101642799677703768486335834894292134697502663592071507631674326076097113413337544144760196559238157278121727741727779459401327153296680333128220519012637757510932322339584507480498072425876131659551808655416305369176959885648985720575962881297913503882696580151233261555623090620746827054725432032430283019291323351242647606892027643057076900067797989807529078994350642712807911976706833001801117979654828322902914844917092358005036780368332693884882512761955143778120678465313053497575205917494794207562125233696988131597473798413109065698132405411231800188599662658110047585377572205340655558685754043312086817665912484129222550702754500521625079849114239221273910353642223903631198022971079830429847226242682292720603863844114111945934529342038045606295070589789815780166773064670012819690260017787352315854700086491168234128268540074866447192822243280917470635642614725966392712899979535058824868002435093746121132596909661743284981773165502959749212878206630799507536326373327661244208895806520091269616892706489330170455680002727101522752670899377146778021699053793228467074757965493464049727604246165204396642431097659151175382336203447248314873923543772167218203972170222039534753367759937932087914480449729634675357993894668534789002910104075547451596363049393325461983775030742156282547860694124485822941546815589805006448285775932532296102132399141419958324135006652956150745775191438025110318837398565626583158058681427365960651028418406009097922720006115519513251612503580102676366595743333323838066714462509783381317776012437634683580104232234009827568108619236592533340150624913971070814427625533020956820373437693382810989997066181622077662222828243407411211990470484058525834487739803500653696196127241026218216272406286377303554006255418758095329106071829418101611811206475100477692234577373123744922302697570321245901501126637107230530259635332414329686497983828743345186893756039654618158760207129606786479205082535265013393560260474405590657042119500772334638557709325468794010163673873354581985501225529158932441243376890169542805309474019812392126120408660297059751449197070416334187752844796235663648844504789739965141358961739678301437936498811595507199330329750134224704048309455655550388350398334273609781052706463276182569458030073658341880841755884295750042339551226840803235647211103775445246275202224519571993748339454728263366285887054716653637900033977097099037060615843023728294455244515068167898153694188976598924138290783495085479373424952032190786054133383814588088458842514163508399715642268155749487120123954491063102596433280047473978893952676731557972951770374823043379737248533590399984288295341832482073688983243113259974688517764263568903199346310550775872624098129099971885651734269960116894738846504621170302336881439830897160812714138793844627586704258623356813873282637641006079861599208750965999503377629668235074360581037105849601571849752250443019012662575953633524905436532599119180016311403372804679281510867977908019832803714009324034146572412029179098333612753711556894465147704323701735514229909308988047943446389219491034017010269326611138372125905250309849799978074300630752136122531831328052223439375598204309127874965887606968401859890407956232206830918508838461120472222624442664212901794225173312515493917220951761151889572930716324294798466983668256457458449390337409399809257673012940968130744420236080886991056924412187116843227302916055115127001408521539724064038987592468611048948102564470189752705262520599839798061150091846350073412757079449467260194043707994615746846309426916792366733088646416055774547041282435012319729100056193471506312673416671739482360985672818620927578945818491232397586422001779276655936212580536062603499598228684669500179301487169458339226684069906139801595498513831415241237463960212240812918939940601062669461526018069727369325365897533513619802827987520169645556805364859142584514529992040777464060644860392250294976904946713743534618931753543371303493014177987682611953184754731103946067279750929448121212545683179655994136074135146846467041803700898206255206810495446871153230655940609026887072539079728004198162008267757309585604920573530182742884787833135484304649147302667593127726866042160932633204459236003921975433006713107648326078139803272102294353394202199454601122628917403646895616853867663635721436931749017129426127998245528570061090008838774955871725722333432511088291911148130412037972016668849951865258138037783809644445558079084031297865998422360170790604791258985147672258994536179601018122261397317090192927898971398132568828225366505641112682606663604839259930914583027403385393622742214614028705453851246252149993414549180243454145220396800309767661177809990411227884442764588437441249398804087575204472192506645168038513645476624708875666479045065189410060466521127834126629795215773571178410660883803903611260515232668469805012955581544725449389028154703562939532611762640051912302453946748434352779192262761547453346559750336601511360853346534495262772985761305620660983593421539387424389538951996360123477221929811344678987182100596671303750787632217243880700422907274747053993759808329166344109794481279733188464898654021490691733952222171369935732614900365659694145619571975913258376532623094304470407036936191779568927296474553148332656052552934318899055649741966213929630291133800314747308576168194373324547047881522084138350522376839534065905539470320997721505380236436312110617950365443794855901858584587043620940258645774961920708814318613090548654628688767224444636905249037204627607906023669962851021010683793908618996240599068625226834908415101583762160389445821860212929986175039186942956686488465954823236321171749609139148344677505342744733483466767169161906017701450151024666927021215921055573115227364826785429103743358591719186709501068963868938873426053343179937073636469597815475628598699759942954149283898570018462753344955010189589520342077757275727875257334141997665524421737248868845639001204327711637140353542433732376467161523750362994374599237331242514293433903733730687327307799369860117592060712724407469978391061410346110679255879702556577801899514031275375318189550985124540296623774464328740950908765772101532934570497854959508922297118638850616935794390752645952827475890266248235969816683657867717564139775217999842921986432916654214126478565067642397983535300581960679909658286141284104746116912636812055676522624479056835451249866294609830175187954538514794427088327319155412612401886665237954654883291779275129288330269390613835146736200306121685573738160817996300034185665666452645051354583786557999848044821734413519249495471688704600779290828628805224153427757350558800284867096546604301369225198804895450181442955266729854117953886453420955815197097081483316629822432340191985720976765884281668545118428628233425619866186216271411608631959148239241308604175366647459475832106207644503468231036158045037425794692459878677498523305797506817293966689182913376358346849503559553977175246215953353723213297478379214113712991391366615016523136311403631640385062296262787910329143741039611194551768199549955099999837273788147824508278650764121901742653771512800566768649363243248394442567156320401037602410585899277691327861446927352309350615411750225149734458248323049726582394369260232688232089981107899640875530523770004707858981079730184474385622711716184557260054380329435624983604835166034787431122005962380135188896267050631028140371683228328373539064536256107104712306819217759273554103229256962646001086470622441908187273220919093715955016579151657630002866421181265517754250135588076796658661245686723159543915994346018190379139284989871986353209850377171535930130465539915217133165765731332683241792774503157324923288518198971216990406474501527805817126074911060882712383106273805760723687052993963445490250392184616014873296491613128527367110609794954327865882225926911539708900188375289562563499174541873000161601841731775875394819572395171408081319948682080010437977379214474455196981888049935589543141003298996696501615709992506646069646063088170210870000698006992258427971517227599335805206174619185069482830398375720239336875843041795209728394621886652881672068585697056338521940064782659715001515348373996673475505539708898535646053987021838028814846810934928519664751012174969034561444379860136615634452464417661833885362380089563633997308304198971298125845735362841240240853571098720613104887811188977567590246558234339177537928354260216161891956503177174236460078786272556346478702088349511084732325583079890438626312679255426924823337802887162678420448920312363575468114216525372552462848692996051637356880183930499201802109561462882898645417305186983510097220643768941335222263911035143958326577266478869489304378218171343207587029235941259732479960739407742579628704825228322403399540007852844999212572643487098324913867249926300499747042547673407318445129209634287163027705295529629706936285756659816315030542865212426436718760084879776589077617680689742184613056680713507151021884985212513951322498384805138014181028496544776789238875839766108887399911985012274702214320087713126297664895829912836420258830675309004112544428469924290025577443097285299084990078936641575974346965660109083784322996022133128882472240297654115900564287187296158190553933113975651755679015944761391916884188581896154307864698773765003182025098276798852094255028611301387345547297904164563427539048546133647552046444353529949784628832373408167579149868737674916851510233351104451720845037435094600175043784160812193181108573948099132557921544000509249673658520402737491327628403168881353442625753475741176034757475661163816185993424971972964804942005394768578431822994140323030692976170855669738896668316262286843600246009258680477936699693558422117409441733713302778758961385736706935398757008356932548791908401129292556247736999288690269075538968080490081368930800522783321887875686077802895875633982164411160248353702388111939274482489914861603709827139883207510565820083081285069470361147901083504822643720402723257389196591542317467382964301253190454735347998650465905860526787098653592441842757542010373607345390152031799867210072614482002391703852446508262041296634786032190423467400163518582722763001682148521168289916404103962071856676492146348737708981777204589961985719348422625468710100905117723689031946819560161245123603461441391035343815729979876698184062251129236662704848378854689246268297026475173541784402473623588374757715527202819437936354159189098656184351169252581704987003374355644480542195429584736565357289990243312056292557546268664057657516133787058100602999921443513182928912710413185806061383075743526160153659572486918342781147508111567432371977416203811861533905483079191832174409552712040603481746281420960269662667345432029729808893494363800750407423937728541716777516635540539891686565250065899358667677010608001491667981461293336584936450117823280473324606041624089414018771014102565363140950351692906784606090921652196802381932322739140478055319584905390949556556313438920584144269539482539423879946447759937024320525289480382041371989244287323608082687909510398646864438468347911555939305218218290351312032082496699308623326288667225947113365084944790041222964160453515551504172821522766512106084815387389629786668790286157419859197783938856230433932891570216677669528424383305046985522818345822883571218310114697137203370346098213823726809792244404407739941175134788431205348017252942937004824266108031007304794995637975814659048791901423714322061178313018991040672330324286952845252739266025039859728565484093572158140743349461675004850611317995161578899441345820348661805945822093058954128866895527549866733795619932014076572145422163839231828564208516186765050204443837510262042841750992409301048557141848217604257581767856733677525864869545068921192365172108491892530130342902072476478490837319271773761582640138132001168689931926596914625102792941204320157483103727833791271174504294330139275852897282382758715956106561374162769502237048434478225714475802380263675059494913268089670987187330578677732734753194553342572389155666158771550470098871302126098089499048751076850542256159453390898402628948060648223232700538393705141515144151335131817229011245405079426744555504354456685498890733120259358009068634624238317307334218115763139263509953394571918691287179213150609287955388823921108912916083043138195124852558889055104678255969554873062374351245019670894338123393938655844055247295822417418035301339537707272839215251657881915663913026625186813185146640390536465527716264884950661465542454006805760938799362881900780463532996759849706994344548598877642554963943190717605322444451983398013461536634019903856356826616814865182447970632551162565937840594455639354624436809199537294551080916881537341666628305646855485492076175479513613789192741485949990079683142583416561592917863499521847174769167948981267540162779184188234688761068117050712030222284453955494647387968855654464059965788954479448972977151266114463241047133799388401020396716769104138524686006493557762997135934594093382932943093746851580641167320155919987481977804228650704621571260008495225747721816524163463276722144377796288730868417840271871880810542671009941386314341793983734029793334739196629480658417006285418246902366135662038737243274493213998991586951749685598235961609421391600543213198066031261601130012013656765470551731108040069280942684036137781016948193438068902378831565673068041846984525805427173088899410255731295973851554422241477909020862991454153091512210174140421456371684231007589921276094381512804915535042128006328573455518968002949097628105979781601931467693957013432897345290707969972786980248288747847835389122245033050898252674662280830673392399456987744577653989557379306772939237746532129894825789616182533799478903965916414274780766899095836425880207170148985481462437080730002465780027521791548457562720659704868611337660910344886784497821086751486974948914826970045995008790061325393649394311740631418455813730971398327314183993130228721478245803216161565158261135299245315144595495454755044560612558582174366742135195627476656206613979354438116428142657708773504661847224476306007512796442799372435131027937244087755668306269355323808287148265997210832556626705944982897116830306313513634505852196349277963005287775182682033341367422575685086145183870152710527123091641691058090942224284214546045556878508920593926472579961013100919987429709067835956351931150132364286683162875448770632082688258024426965825276528538173114629676651866817610516387005790916955157023001597236150769903010770836332418997234466541562135798605382694288445738320354251547048995834456470917305092376635418288088044460783994565200343283135511526512257020887810485053995815775948423606686234979378293028057074624123317792994350771218910342457963880518669199078585353209534939305572944473542532227994380081661973205836022230680572604510641602091512488519034528642962575012115064886320925146538474871682600714514551088249248946628822287233818800855440495069706136554975330830340884969286373993921022746470920601647190218219402361244717296491574248852492120195027644757911278276682473088410440347352434726940858544195839535595133039754179968585571460940023577388223965438209455562520090993316465515807953607402589192096748411644473990673041495997345772151641077172048068063698927452591397593909867138463991403819706794591738965148093512187625653917789283379244120028393144945295594617151682003124487494656115637933724851008317125057712384774238248177370288256585670367539864943355423707698783249830687887395990958006797987327587320535202974089320716611117934762747790605496038712216152423794360672401910835708772816258737365138545748828533588834863961952069268573148840195315884688947841122322747936568013130680498234371852526744696634418830754218774791890036013419838996147331508507241675593127721235415615999320545041411816419145267223712395767815917354190758764030786998180664327493869704834209641048271629578889888377776362982520737734789644320244763942345914835834183630777064633516680649083117802663824009232666508978566909033370436523939843185653033865360736739926424484032384867722948326420043209136851787937053048359002380492256650503295080530157432909122555408705271585195001171951926725018641474629467294437443769524656407542432965838094986064233971318279164813170693046008795537600400108220256045046000196152949719619746824182216744332431365797117948437910543820409366149408831393409828793339218722844978359089469126548959606300055803266651474754718647562885822279010507958554822772201014047462947833282166923363267989054249628929021914839954218889770491765484047953968291513793116858077756385453065907809767993430573850797616022996471948483694833474190547211387725896645573896704317924373822160100073769139434208486643230667031882478019583784579904050017385188366162602899322127385420441421333289193278128896521095577468396673391380629900732444100581932147146460350942714677687228056211549395086548974728913786253125786669910535712182893050503739802214496822108060118395352487245938574290506800427883140990380441991104020067176183199213760772968822632755870886357972068028694627549057986429663762860453616961705707363534611507474014100154962163179553532402966658881745809690468155560421862744490542709633539912161428168081869444313772245593339923418869180747224565945294518990497446822056362181699440100781488788747447020626947076409796946884098240674378360450245072701543057140319876206321219756783871383507169619208230275166157955304010541774613089959942779449546032333879191516930786799970062619354803236000839836199687385726528692386468110477668050300499251540309747818722867781675605816185776181721406457009965848006694547896678902647138244756191193612228725188057576527381207725212976781526187126199776172474448457090241835594012037111792316667836436470911168491631875339570517261314562487618197849984555401006447855001889912820182373048395537559772701230802838659098765767805027766893381041869922648747099241732283942795052919956933825643229321437917537643218033747604021508899680800009291452627961783488061293220654658993341319188152791471803918658452596073327032659889374591829749102497675172184691921214607199403062581729106318022509580623517138719360550067191339484893761313279032418597243337731951048708182482092788265875702620026665113001517742848401953450490398063157006957918319415117208810220876228616472119183038962079402476424939614292007918442328007750057718772428825513566730868977750183373825765674166979099318290839524574027473439028235188901731645887748978208250338454844517009128396953407243114112402902920220586259223019653788370690790062084136178313612832350565917447851318306095565657971427712851974837972424005811637330126762224712246328303299602509516013086058362845285312358233241902360968664728732668644006873863419323353282161550105371977957820463796716460142122725892033505354786024163994534811859915302983524212064096190183544650684209690857062729629512754514571733820752303997298157541615778461631496857266543908652225884709221726280356143558569210483365673318302445272996966910350725078626933094211013166410743419353710328803080920185458171723444334025624344118279742310563190286679676378055953244768819677928979421802188649306287229041776750351452546650934052048776134831377998046353942985163916743076019717292491978072638433974115909412502439396396022032037353484282390728980836765292144907892406280709019836022372475125373120542535049900859861870145924540802189810734722492498139768529443200705883079057672706438411872526074185859942938816906545859938845926931166670763408104395707483477541718211647562118736339810091732297591260446630794048312797493212376062558062171674556250275825032404058704283925064605414435122117162712816374845023296349429219495529504075952563739860765508403366946816245918711668597794641949924107011607771633748117931679935687594055879133103078686384996163439129809686659699934276981549458790621607215848744241392377505385998647152457001720096276432854680109559498195650648517210271103977137156872306843768538872468102881326945586324468254285622206594312186975557795530421189627838164378142296512882780753341030378190163426147479834385871463230801216659082067976516553133184419857170714190770080785196238409504183612843749664152122881889291612383654214616506536609891168102782771232871718787242695656773548654590622212948254647598795751392118379299079376978743222004751140438657135650649159637687755576570950129342924827580091448517024606481042127439389188917464443290927164120500205017794385897529224166254994257120978584464346470501275940483222066527621061220293860881524829828867631650162928952296694375501837813727070307911258370688160448960460523518935787526761407123843686691485688153606159153779000240336469226160460453845971142291883327935321738952431581538968322607975952287031505441630713955952452766139111711743859779950677997652624438502123595882212255989383422616100551447583484773655079712419300705161435656372519303633796982404726867352291360878319248453694059182033093720928769354043554556699179893379341209832728805884454574960030263122153224302665108045134025296683219287609488275164472101063818550925258644893924538551067941060880303925404173777257165404646860601171257404923754063327603895353915535556990784501455324947569896576964844790333544851110928829631054356106875578679862128161691207973904899306351537986210142717590120397888598111921077263237434824206946342373504781408262169829343898218689020456281821807287365793687970416834923500247034394399092607459265374045569180572668525964277171092147017463739764513252899967055368479591132029211786451270406108743180892122261846248469048641825737132198540126498776380077399128584559183551680100297950454888682706350961906072945361386873013888425777533054354559731426797854872519610285968884177429417212695754327807474186404487464602314890803235126593920039353161481497787353126069878256087527821160400033661741925481717087793662486156174329333309280561614098712762914338521800222604995670728657230719728514399673203712454953404096263530869351252311878161482969246951152236871789503654411126016656932698290629685657100035224740230557376212142424195860882676393856245922735539385966442146098776604822733061398811768841017090348623422141716131824233224072813273818835905442235885515835900964856933547348694051658248806848401234429603769401230977193609683251783022782761262549439264012532576096587808166242431701073061502011775349947484585100683668464081919949237663683027567912427045009040704448922167626537702563694580684563844248023710855547776460876422528725107434567485349274670062054055155407279232042842770472016741006168907243617558271133096484667887732485174710109757780391056648614730048339936007526396928169829199073193871686148345025576279427488980487980987242615589495596973696267426216770082029862944565295173427821217319472623461935835861949855167473451251121255190165563875702638987838455360300324549423233714268062787154237751500558947592985550412860290076285307221249191364415449690064481289978345618939381110688044870837196359619763397982430191081963799093035618890580361637901795621230056416644735062314730414805325325924718458431953082619615533306806272607912054480544969172468404323995288518704976328187606882684028941478283232030328971169479490663524842804049956825136789264398740405243302237997264516946613430305240995306156563909769368351694527950299832416625994239704765096026187363475345091278719152784969608622973744804263723803395309179005505135664252504684325511783946486777080813227496901117274912234900975634864608667899713762454257557107244039509228787586050225664775359581414061743761564422091884735423933471360948942307435141065427176063314249638948441160067660964207390649810279466740058622226548165560824060787555072759039236587768583000565537582662799826635733676289232984038784716807419800853928420634551966630835217335068627577162005375665078436982689444246412696685971610904252027164537081848568458889224960147735560170285426479324473425938921018643915101605692195680197521919827453680344213632105303247203942268471915772429630548311451677000877423580968920955983500406683525438533799282487404377958330034954584534928064828338003406173339764424124373532704322059667582343637379068154726792668291945382922143295922066710305964935675626833100791314868040383580604490293437795020289368168435477532692729132581551101828664786819508989043634476892448678374853362897055313845142795708761230162816360679883236354637196796050302682917806084262359506416855485854905447085299033031649179610847500011144485496908160021719833583906143757741425209696861675779228783346711354018733167939004402437362149066300564115621329731792131732084758766575674068894775825185704365222656855561059245593449612549745910181281815765723531298841189492257271452329313094920816524239483829794252902897513207990872176985719692495861751718999766298898897899741829685952585193560159343448854811630253115445083554986444572139406653327529840520045952938285176296634344033995571419307539143600955370361101347922126643024214114054121994224953291385110756820178349987000894702748332063633040651929177771746027028205272064506509127164080537729391924315302989984004711860971455097446267843818219920397146518268254853769456462512293218220377831127619063250593795912760048514269170015776406541150777937509838622154212128690796321365965603120804479163842770098663596836814896747443137883059233404893578249054453528628612694613077595134460372519371274350309719133396460841936649876565085876080127346504051971910558239090387742250939337108934786197829104182168180653230283875030573231112659293265469973416343570306712184438085279046326723282231340447548575230914063312840279396211697569945486500551373431114710395185630459458145289133731149523273527484902296650295366748995463839904252697170315695877094939646289666526292259058845629741641395286526967309746398029102816363511947337626631032773335731548104839417935285679491463468309833526249276398377328925744782126904596474340989122271132368107980761275198610725249405660583690425410543979724967514621576704066885509630183419587784146956649556871242693106599873230268029047743328343167971402789143183793391915571098262510634226331247563440025322431094850239872729107607173039178762692650679084236634804105061296813378784978497874130764983465489387786454404284513866521385736735230511108858542723629376814188029629967841486625565110445587869930123836338488923291827903328060831159316863217102525462873862499342220237350311968981485404200745740076925143688813324473943430882595688391551235958666741257040455592661572329005228594055025563053319130360324471622001133399894659742613238512677595257160461889038568489417075797651726122492393773665141237738098526197834062988435100673901500776235473649181656776478425954269395209782869264346569885339858322761834837534963094089699325401848361007957379354968280353800512074491260769558552748927066530929524679997716123079382759318089792915133731471691029178844993974783785192847841549892397209608914319687554036521293398567705030451583492877956129373170030644988377018769583007923809811460781596107081356784497496126523639008495200459378668291497282423641387216028230272132827640609904590818248704751606251325851084557764969598351111022566396653580907405447626135786098857156037002793101404575432647917487242390874533598841512849324644741975976260106501445184760705543687449763261990540854937578343877189647636927230874173004564820639368168590565928152303794661809814182268750575720562153072331950446751525281757227139869602005830328569212720225912549399574007668126366628849488176080868065745145808871972389044985981100017558124928763463522923970687503319625519994816076478229558501356351419440811580319444493467690923378112703916095245293995615488660932698652652755920273766293579965668061710191111404507830890220130687177915785302682379455614633369628368630914424761129280337137215593265227034032992318685384004939212492766882752135228355453724102799119142758224457939036401283810862613707201698079347592055445712545928631643681369396521458609404818388460226288944519856759525474228054408436888748902249633939636251687631375302001524565310735918267970112880141819833137833335959794188030153870919309087215074438819896382893976117864580550935461066532520706237372656542100018625336867970361848737187227483611331786866937458721961548032687644709882497812784017241542780299018536635995381126164257253677642978458647861740683314888078601032381711139219531047076941713865917177574317172979638476035958856476187983524249344528013659965112376338751338162786330491247926055740384049101528526095922551719422359481042045314565734388540872271709993192364754854737819947780523503701983620712628831677395344319927601398862235881876376058350109955270932280632656645691907174149141979478597798405536201379675024387262840918804468941203801834007735277362729783625272793367998120057095947882218408196873450443936007738986214724207955103975820083689451376544095422117724971262754278582619084976856267541261344746316120165583382048655337088254407756820367958114474679045279287725025519820191172579163056386405692127728295529158658665239429735301092696445544351247566731933776018618673386140466210276191153389796260926177353338956123709212072055387884801431771975386437853630093025534252417058042734076409917948796809493278835763859032037753803912185225130586968894956923740433662438272572730308797148309038956563699648292158673867982338222863490218057221706327689710006860902831506671064318162170698463311125276039655608838597103375621517647580628702539620823987639746846769920187889606599812057537573753684662904292431912309529821161958665983645520093337819642319265441596220715683524463640397106557603380368966881544550503530072941902232900774499474759397837573421902847279340007881965099919263815453879152115532917166002730770963106093979895021252525944842103659874631265915086124651650602403339525877392402338178163086416698502334906422985026874545157141068679652297390608398560872858374342926105230088065891337403772689623292197348257574844273429045792641846786045558204811056906286826017581786813328890171920012676795617571238499833860970478968096928101691254362290581918102121688650929981545537589657850875280350499562624659442023296046159263746581684896739197862385491901686827100048344816352625136543019719732992629829390780978579086733926685284253680212964085960276108451960561065665196021705006096950855109890331333218511871098170986257539234876699867118030067903720206826686830416258856315961931668587026934336971511881227978361778069522577634359787786021395983569643663458868125180710255885634815181666508215413717408155063434367439192070562929744812330987056047152943658017715942437400172310041034092306581450176204401908232640081135189737873989228620891963158245838668162150696062364606251033104949379994550241607157948925795038346607623756339972234737937757431347408020225153065753435449823555125646605380825264818209441665207169593342242798343341587285166828132719453079434630935897182218149706122759738506374637975878256581480932914231563021948625815608322804690884610561755321043863074596608421219508387251450492682378303450699557884021852274880341154637606010527794616110304623174053943109118976763313600557323910238522599231375479403104034607609021573975654354969234194433658625977629731048020941429617219525491262056202712766743912648249291929836080067693298679973855868850818072097065714244751221239837617887158212146503271030179925927180847967852751433307834284132629430548064465475841383408637700976362226176123553929040827154833251570424678266994418832507233108872256851314271606481742975265955875740509815653596176035969601934167612112030987469252431481060141279761539194277019995588111539375318984378760960494069808563864501767316082953010246584931443868665438645323878652216016903057776511152417210659440174978608516516078200734729076139481199675398562336376733388303812292580009421763848083182514370127625554405871619786180535219385356267881748131601244090449151958958082237439212440939447516507403361717163357179310508794153520585071651771522677120026580834035446944565724556567665343424215538160314400592811228342353135802217638324826421305036472016901139642181092922954073627204626905693048426524797312090220486949935385614527755907775176323263775671123847847015249965795803454946144894115980438010036319865273470483951244847518043202649420519666047706562024778102592745897722364767745170694090101721171162649379760029539121794695441008603654016331104859815585542677655142076115572937255438052772405523517247597045722698399513697533299187909214651163792249773338414700176668324204331663296266029386498586530555493806107137964618818898721787859026362332440023620787777223714155496172082757144274169051295973491156297827895666737001524769171409542928684367247583784702818038133529286913045963057919518466748286177266679231121532976860585235075881524678107949889123706971417296364460254371751568073724608634389516136050362228478648864765222866365417348316188863085872635236414189045713956455751073518194350233669450040837439124747708247774750991230173931526996575985300755350871301027311751413032473021752737667163281599943426290222329392724945479401690338940612093580924465338587298388422640668470646155264326872047265010817042910325130233122396843390320320216145288584134440474324276689700927138609044604271411218725978201563034726404383968600259304321934761721816169860084128441408891579181870256508226222068219578333512908161799886440732315763250555028599177074170035335766174807301709771019456329123133577640440388703074263077083069669144786733785574162644784867625435466592372640536048475085528830143934434462361788438235747791615986897990891648731886970990327579089955581040499611784491305232730057192087130271045648604402010349471667580090964189615526739038705511870842077342114515526279069718280696305296496428562316495423021708239021685481971213880502876450314980553194090096605377213549239499235906715288997085344137342051905536042427743992830998504882713658018979531965155718864545128571266240403322706233754354229866201866143142244306814924200889379453430030065860925477445542563497483086182928411232192314754394477824493464695769756156296793161972363433257259476227255406338576268525996960504668520165446801806293313164727685758821513670096557166395387626331783169101676152535650430471554104437523015414128493912171750995846153158210996834379684566861010866507663079456418641777584285937746573699704007384170483517495722665173197815988180917753744885058022195621323554448735998835201681965454282611686004613493193358824940337858652446096484090332711988592431073900578422432658114483448995399562197229770836226174066581472178279752821708111690121742691783849772462538212082739731382272246044922068325725190809322155570325715897657291739777463232693403694908708404163442525691167981067123278867504264372868220299660713004522917582632167020330626742413679791658277672861521798394392924036511115827091751589596235643952070828528021038457370048970904945316019854551492284825559094526182012542702698378825079148940834463784058103061749514199628707939397586965196476838248444382698301056287492388844636990286562443299727169154810916999356016315657995090461880428273398040393774558254774158044493495420705080252563944301012636594719460767281268243086331642803308399683242504230258003104475162170165021124866143133384901964837324186243049980069816955373582236497249967530294264256445148445628765916338146137333883061849810016500194833682140150655188369393034018706569706194817487678557374058692853383189625675550778787366443491339329523092191005159271077825321209501116565205949042411661730279774152318109927167479797668527633856404160107586361678208901790279221917522796653999377343452451578996318103127132532391808463442078116709026092998749784809966100216361345998958506551006806855974873674289313333252630536164161412781380703917930687894311186561532725799905599068894077013265388408850527540439347842932618143177211442292660128890577987888931393273087827999254713293711103581058548560261306262148369911208763157437071881655175483745629452937350108561528317071977966019407458035159798487247390001983134551717479135715048371389558207427104146639375584339992579930263498634530828302552981703889608056456726059242531188340486391394942882899418781965613445585963655351209382965108936602629857264290826244841147406976571153167985382466465111472216745705863678880180362287509478318150817625565036224623934697913162197436878197146078996197794274591922702167945563447090367984736968711869696093678371727216484347731161250891041495799216753238413895996556730609533751442455519144427614865534293814920036518153463123092367330977437634662786513775565670197644166153394994140276012521990142344629650022464516796449583346761984221164942887995355913089668082680295564660084420847450603979863643783754792091518568189094566286788129428963497371908693341088462228589418368486999050449055604449128971061738488185574444936430363796894964303119942275859365026695404123059256436153050277634570449979464957492667011217527739172567673473812957935453658450908415902325624273295108005153005819862051007526803019344393087171668664196444194422587408395274253385512236629695875873758134400601948258797823685960284843906977491765098681635082398755549103861429351176259159349564793474516860962182118733689040785498513410359177806749883591128271002929914918010717836241558653882147631288936457761958158401541183063043238496404648255055867023360270937571872917762248261332573941552135171920967723584822964085426870350574099937772627391082729871067053758555277022903402289819354420712800577313138573862814587482177117969250103219198674107651586533116009181704866746803844152264404247851542145557701568967149042382159392884820546414971040663732929304741007358716818386089146874614768170344991013868963732820808621744410592396516144716843096614557766154277285798170365764767961186130049828239661808614852657637537744010007226874744027502208388695105507641428634214262064399921490022536437109547394632466402168821123868461684424749188742932820221007583942884940133692795996605522105004375109135096641724554905109949676838021213063665316156768979280503271358683425919925039387035516136253317915528020434657001861132612861618174723609646124283318481588605259347628579574825466784628667060240724003001384787240086211158191267722619052482729089687082846632141135412035490838991314509676628777944342798794364942263585981102505266262235897895174879504982641419667879350839948593224109480439143804200918465706868200180081834631851690420888510250378159270682030338027222391381545503306755489084169208035151795001139497553198474632397890760727769422721223756264816984088859300890009243260972491834059309043478544925765611846761378346681118982792064118311899292533735477943288412655603404067977348652561600333159978818210130451656640885157729189178517773232443766648746449496948759496100866481267415766436674041421557087810343124689935908443895331337731807802194487737537742222273212391507543926996315038885164743029123748710747217926842086846244611658834894990231373205825350803399627684296064860106948051419348031886836926156236872005266293217329617224616833077852098447033754334518246847946104445747905739677718991614539460575701335857134055039603224719383700503209237487032139146550916277683923546790132943647926687378909499259017815160504002710367094700540402599996304801161778818492129663178285064205401080044525268696058191237857241169327012377125439505127646004903475153392910595363576185234284145344627284192617086156869865057208254092197387498282091173282813938680924897771456291450874817100811400292663753959014285230828468132469403910443850090176013687972504456554642625617230147111293109110797964797759682308446349905220989220756297929915911046254624484949502895296389511890405737056519411253872624311339910537243574175680520100350228233071741895146646850537351891546106414642579166659567637881147701604365702175424936942648304908972740747948983590133497387836121533710179018472647453925864940551572566813997852321410028792088066880920818679854708273674190864163758735500521914406533184864827646128866237217811953451900506307534512020218125479453802834820540069177199491313429379361120638034839422909346450290771058607113006627242637919634226301494994127014056833723360239001406054189230316241134305411008884548731356423444366388917227400092839060646548222966980601393839722115478734212069507433097080418145887892858005044389038836384335623429794966160052107430205023503425951169075296121427764398843422933848538209418479973754926892627446309866127717471643378728849080164891008193227302690915383995901974700738967117154836993679211425572042654006221588784751343767327989215723360830978578810425119772542497506983280116952702174100864996355805458517984521712705912974123486663005619603442257605150352048880213259809928476830882475338588949410459476911752374855429939258133219237268602392095631676002030752819742108480355775152906187390643618592175863272837421846904288581688925230310019786833913753331087521486618308740125147271607534510015317155232443731764220326643954715016602406196156565121838006013196691249558672526436468019456618790841198330119836359486952652419784180314869495721894874357070101562362268611179726988480996653374523154744087182364197495975100387585336888729359243334822998043396284175482877288952545115512452381903647424627523675709994725799381065059337061569144718263008419723978825714938269260359801282106579270295934816804565320385450575449519709794120775575951637514150922583443486539470481029119573923636493804988764028639905054872755025259465864563987345118639804134096985339341580389775252335587454484060497537351615974863868393977956745559361659656968768186232115178647790731275933670895080100508637133460768907203985865919033077629305361633642585759038470195923735726340132732400751660788106113882154582492827649465224723217778177555093956694654959532771450281047946762561417509761727573888650861741657496851214868054856029569561571485634406105220279969324618682211614063030983309722589983374748300978866633486494532792898766560770564371432396578036960255319407583463605997190948352590114653788187170217707882784627208238935289650848992017817757127861542283311770855548590695391083895776910655356029227004705503556832556071913792127526185038802833208411198638740027785675263834423413485465537915842990335723158256402948782091696768153740157936577430046222441401830733545894549658126462081312539245678399507912221433721419083331858774725836724898409399672408309764643642556932072623029679459564197356108905050898997199728100557701506487029094085762391225402100529363732690178865057382286089462030035278736766827314430586056040350963399629946464276046651658735719090044884292435857288432298765424615666963920264014793379101890766199883495041711246664897094730772298564746505249958021063964277949685055740478787622601554642103245253398220581051851678685630762884459311211212708844964138053819245987188074226150440091122619900656038668952543576213136352889910642154754855684463121354901356846085980380897728513190924055334523876557500549642757013534233645315248019932778763053287640917948277705325830582832145902102872881476939442248115920873359156413845339270241312264348593375209774021582051086711172397559395993101906853551775173878344037749935024210049879412589126756211156070682163510813343357546129206424541860907677344593506806985371258457556306615058419279735465460780151462162021538616096143741087092763559086048801285654048158647914757719091191829156381127927935601871247518529005467374420915882658887245954837862593399167678244419108242281165393914675866546948725043110866173614196275981972897450795802922990383625215048886106631996048562899443610842558229704703649410285170930792774227587836119697314287762924451510908325475862030947029124750207185085310146554628248866543869451134774838952780165982656034385082568318465364008192491122298168157637004842796785776154609231460701440441890067713565020328154916046167727501784010581246252672230286166893724836640788509951957985711282700604586049616646615812934874166061132538902250953049436478116965600387727134149790374926830647278908899463898713439013900392872264344963504447984177075230304256567464398933316238523927417043712149059055397564531762482077135922892337976901897002989177695634110631883934434302562329520095017656816226018102792229876583753173115506093324025341184443705762633240258528047458014839003105588379247841311509251003647734510327393345016124719001255837329845483511688589559365613199313980037131190589765500455768773943189966417363931552248623775854480957816495393245448002427460229320471362872543155005100317429456920096301759458367447197177259673897793207761027435302741297238139013075324984487527979341701328071031199933968287221205347234584732063108731627961462960275389219005349707003846166095568743145695375627141288771736415071018876546785786465742372707996800984146243022240106983263600036203415838289631651397914294310672690587512913203573999212029509119969768172435385335961627703674303161215825922938152673138836335406491306535971831805445213941148000907127382842728431971061538957485990830885664085158814132495106978428808423594888671280938192050747442644280019082423223863968109125000640252135616366613043148482507525605941789181547709422823099626007546791034516022016760130873010172727384602545436888531444411418099516215580395429319518383849738080737134628876076497171528972208843260891607734295354880243891233069772499071170816870939654088781072155602664158280905678471472602303866496872375420328325225913043583694757609639811743926762875741041286740188643046646641009296229825949957211422908566093398797256244237378005638866332378993698624440935541131829667267100135361558153301638523498299031091669620481218844278122153585751810737743483929282449636361343589248482094781095657933075884902621597048916863611613449528925800268593506803088111354990884179349125503391003361209786429083886566471545062617977363765952402756152345122438304633393409662729651196930798819620618278059614064969229912129083644863829321495229279266726175088087287336261278909916017441861928550260108628759623037545798611797769382557990244010152227501013450732650216120644972382584711777738162353105761437126895803150661152348133832895244604503751075409836827781312222401286244246784193558509232911289842916195734335079307643275217002652935113373682460491767377290785758840888657666319025214659539847973786935572789558840037784563558718740725758489785352017965687895292669962131773257964613492587334369945711073908619010971693777760958301432565441629143574580256277179657996750206818200214942955913614260385366798621340310578468806429809867714661576924597318359468359651268817230680070471080470694652026409484177843622271239505693060255611637473481633998087042188340587262106932056430740093689742675051789252311941801345970175301723720890105689436061356168947883561608943289565246208468735406104452363293745598442749282898925864880458779006164489314165619962314445245817694987258367195339535859586400151205613145345816206449391078803996429094857839303589730002416044609014695039484814113580033089037999237659811048993903704290222126222784592013400390406987238715606884572054621050132497425587969270828296171329851590747485916257485832617128751580606314895439692678080207198071640893898966155734446921781920962755256675484867715617404444040591034408192448423277909225634669710611344305657355798404631260573479868978637407455379334719494819840861178700260266692431523741715012631955769968062264912490737662002821926988998280389514995291040148435530840834921016526967938552051124316807631404230570265224476355570927316004854045301965216268597896405590511117919880072893692906501150919701188253893313059789310296845876273817290645614247294002749561569063886749195272348214181904503347891313926697344292613905460517849420724674114280051448983275030780544330564604597413813906591553277355750429647995892551205343576374761317933215616267572672603703038177759716645412491408341395191430523384172600688756044400347935431474192221015317254483951378792766045790666867834149694845838916032040019756708418937306754641281578433276997018965940164943998783181358448258933761132500909347241109314198943470065760884520479797046032635487640281006186073574809012624934907990019387084716140298090250340579380434659333432131269358126193437521676383332232812598049496759900906441384361562785304238733997007921057963433968341244475289862855206252297908971979829874135642227849912214868680197081895166279184586445396697644817114417905252975408504433974711802219874817711792847421212073411922477382928805678506153080417444413073622529949620988782403300108399703095523018180287247655520615001196711604641216351104643289496413480613613286759139096976882970910906331530672352388355795244182516266315170503510096408211729868162943475146131529454203884393420780989113266052906295020302204461434868954933122865230477567484961722796544377943192276227901773683223972598890441471835566584320875843733136778982418301805017440184584475085312656996173881721532791628869825467550833358585851702807478199331798553223087440970206791402110142505218075865531704795959733821641583323713380320798019992307827753095279630764819550760745606899053136961870503226248792556721696803725398161282451769134616829565199801770733559832270923610385306357225193269384752660561853524994945202275501235206784904384209782337485631762538842348593460208476607269093630745093628075591613130299723139769889311159528441556487981340388395619259104532366470347784127960464954341483263395694942233863545709370724334593042326068864932498622262971498975605259467819547515351924664786865541943884382634653205761554385756370348584270569734398100571232759516372471766340748088542936530231636483131313731572193395968458055961581901615551757702319734591281955099327866428818137153493970579583692705690228132759033376344988407029027450708955179664409310648599841047891519255185262392757853479142130213437345631906045439180555045678518067815677695595783545527721684670339358456317669396271518989366631040210828725029339812404222535153833769320069574576886471984228957052607517508532039404774681182985559861490701700079571489499513320551729990875976739290294491152210035492950681082563763122572057687051441693137139165945553831332101736340883013668958751675587199733801207430973958983462098815026868199123784665922064069228165532345374792631482160050538726741688443310936901303112822606759151032719667945844836969914498402946613353938606968478618259960994988379964384750129910516159649022193549569711269918628740744240940366849982630453076645711016431636512232531901715056055066313544086799488438455339341728000207786914061790626476685723781864250424313450594012375037080883031515618968846911989067398128977938875586009631836222048386731371413295879457299507636222826612281339146405615926125544861737366683797613114271798137252851172592613660389814005445509089406093726974356567498425451676894198504475969418138900469065705568273046569342651406657616100171742426869121362691331130607685313747170497710502802417159161517204775618132586294393537488837585512164294038814273986564015702671299813065041678096575855065455609217265192867142524868498315367498264579742797524630415036157269936680335132428607497570504977210075237614149825440942599881264961321076111492723941540237231610983580328458963516108009337167439231669900173634600444715581243031258118333517371476874375729649223919309685712064100854692017010257461297275155169089931496701754729828938997601021584991804696863758079252784665285402082043060064856107890326818804526314277848933037224123515521125177469780428826256182146776999265607556768502044982546041801507725987366525385831027159412660328119526140692866232065182449384105169596118605884845341711607731453818723540768256237329110957422323257999557140348996809819868605651028350219666179466337904777621455478443157583907621671129402748312300620107619938987919895033345417165501008336477437486540689170844653730490029206764188140441791645826465326296529192910430935889147585429441654430478633680798162763941845448178944567419705826573438773983617909846898310139984798935456831339274609192779740008626154872229465245345932468305297301500259792466509793956995182368203077337876436638178063086288433386159071978084182845969731798128043101227778138283483685795350699136022991004512535876975251015934355504032397091998439682235809738218800481856696375971202824377955780063533694558340896158068552064726054807115451665809325563414702359538832871975873532230234070343970006555507124903130308165706531907307533055320268024648051778987119450572809129467917116514942450854440119891865749060199830569446499230852999206667872806127591605447799972571460707172531496234659608861105366896475452266406355127034629653214991743004377297506559102039103579775655802216424558959591426545443530954181363442668969117116286074303495967514687396262023999033872416290632812618612296653246487070291946204031265911783198243508221717391850895045081832646211571271811485925224047787874379188332609138639706726755596820391819290747376733938198574659412750276411928799999176975971460012516347518284750022763494065420513283013322926984723195400468926377325234448999291022357921533496800840623074190627518931054405717442427658110489095243458827950511624859666576235712194483669398716390400970947607502118601128877420471198920542164351076498482234198833603232834097165074092406124423347537168873813961239914700297172922799911984850245613419604449467612653364193330240217322071491707106497912245570776870509675965492217425555254306659193469011874274320169630713853127938348858917901153568217516893692965175026089746634211461310090030513387088049977731336976383667604278154027555042472784609361510170422607541451149682263529671250242486048056534977804483993810992622965732501638013009146863349793539971735210018922519548825671809157760969089344358530323051674182264578960008033884190163629645079414165838892930339975564605883386164405129376051055642415208731353250855342423152163338860650408866169421547234138505111298504531072207339221822566126478364596122433287697033337178475389607300368399292798371292451586746619966956688198723404673121881501820424241302568926495754264341126433814968293160360019621880448817792404664187252723550441239107005431769942018386473412148150294862710728656323040375791022510759062493710394142961574540700002468894912544078891840454728563167511363231860685590294980965098411415642198200575744241064815808093188429543020237938514564740589212444963830939672943870645663819300516669858230995173758727760769023666187990525097361560289832353540719794140554115428464461722656530944419604364143743520288712691329252728627424843858119701558466088625732042344849585339187698649288467968496242927655517257257832665923265787512278701457094180886621346867411621101739845292580357674617910992600286838477455577171005770386398409489356256798597574409102420579215737062672747481983264186401242137202838703579108296811427899837682654717375888089071022208859636438207368922662821751586700478294124001419496295174920924425877062855500948553652197890727260851955167202704158077508323610489550795315453577177909651478188054513716115654774759228746965266900054735514973012602851259625372287181697931164817629595796180694570983648347268138396479542086081887702379008227575018388947922096897532973856056885104280944751616505261829795470598956040915812416723942580904315173983657339578780301591399202557590483804186530934365313353771859541270291198108770557913609891443211329346761841293249903509252303243643580819241880344175699499335404607986024481855488969301699600347285020697062898082552203295870058897863629980232231868913862015451191671216750916621210043544950946419858003093813424571138138986859880739563298911446058708341709173585961040498038960473101133846295482681938324761462145551479300172742988018789548999387630655185752274560434082285423108223993087137566347408586842154501609291643051972341356983814359389033023556357910372379200808306329792566022723933595786437415708367584041933788605260715708444955679332868233464184605049601291338008465444456492911994939098498225338053085621551330647392832313457138852306406188986120536137320024769739325265992579766570997688029176163792013518784031687911352004368963867985974676983197439971641518327248131531555747658979733489247673932984520553121367617069596229414323489024345609547923786852124834496259101944837173436356659838388069858092751355371873850425612558152798978734091445185851098282612638932515819415358946125516403334289194723072863426620199862247468357175141266531274743546310275654369986983576883139454381946983097768784641392018227035318674164508306537617058372764871007261614482207852434344050861259390090652536048693200455029943786842057274081544156009384949199394330437498078708710172309334471735404774600219601929526832604569075090551952705646705181241913744536425028461387632296758198532119330822169257532636218559307121788403798476711353103535203110555091528222773923869481299383925512372246606568599285961024054846057580570840127868433104043954907312962297485321586988353224912214617251655948068579296710334471383090397026094442459267407705639619726383749341681250132122193807153260085601435987635980397613020037763107639839643482992643221087942233041292685454480215053910362759063365791240225668655942205855527087309900837158444788793459161466671297387110186986192296704298039591855433748131239665196591608444266142994414549783763594768318252961250737597635492602164999127696683474520676556920494003876792343050075428370932381871418049311068925261677104185118604957101041417655750953396468540662427526252835170454870071834341643183328162747275097376296213943499892364346279024830589578449677386593597464272244337537841590053920286286634347832717437170798554691026965383736352274794231572608250783697159110395205267707432315895379368153632035362545344766412220866574788168937453924016607938433687166560874040734935844113018263385776467675047195486002143721371972460121000485324234748133360135593036576343631455335335010425977957454766805763851766707718030872721805439933481150819446197745147783844275087826281190293990902066342917811981760717017005361591688467251507980378599574741624929417652154678225918043104695050279762388541948535204954848551368900847813029740870402051359615792749206291686311879953514599035456888117206641229503535284735169916186637532760893204037845859731704544567585822994016236944182088729045813350862685762792880873564049546518989848815074317794633637705709418043092135669635857635542228333509975873342885877662235770541457992920253011547560285188350507268995121018527252421419627025857581483704212301452166660276578886625834182851681456470583453812392922097398530570292741732631960890731615604481068845602192421578200347006437190880063857554266025819957340450626693366878909374680258490674739853364439860686549527036972056444980896091040994026220449188682279992767629434700532586886407637488000293147226827437127907478626203800695165880168582453527682462418923292380943862615362965164920302181763316625648384387547311995416849694736608003258717300630508587906500533962114610516170930137876754631356314928036023866906758578172787245486335270080374428866654938302924622827369070171025690220975271461881674105226512696659289119257302609814406675118383159838071818182024785529999949061574066652993546342792685062466820106276284726513937270581539249370902222552094928387769007439306411667977145659233862565122555903837426973613876824818760287013294702251178292981384344186170322650283710704334665369425213579738129307143691472511804211707138865321778666848149397536119561916821194460243970091514180757575771621174145214111067119132917004517128994571450794159185593838811008006415064359831525312770721491357428126080875668679096461643920897484928218653855578326800156908902300891153412294851943982451322581310168018954839716546586212295885191790593060690171801791587589481596618712625237222434795709505210642008100314046546165283869820520517845886387284452848698773398573525555730004460166541672844994177715725443921701853043995819705665687667816934983002697836944572964722185514384004726016943034348269616788933539846529155354539527737235415077751553170871451385682144090710376563401104939970733235173155352337124622920179638298745323402442678176516903252296970509682190929794586664046961539755928055132719856887872347222778113251767067273223610995295036711563505968907501564425981876207525235603997542195211623266548475914421116557882982438017615079077207441792631996428037199683826697243244448066272921004789496624850266165584602210374036023785102267440681130146253103887126808707542070030889804634795145207648277780604728927273122228486308912706048047271214106376154079421688305098085002296852216891089290717439155972381477728837979523774986093685674026318831074765039699613575824042812768906168177283872661968840324785083337314003042023056670497607716592467920140400677569961716606706182099713918501593987348161067602920858909838233651654756707498474566166839662184933933562467774358488774717475461075602731174151194451958519873156614238333551072779242663420388277827069039014412292551093935000454542328353776345724596608973304202642343054723900862901086582998986360734956320883266376395151445723007018985932579627620261320990976837638153378120419048419014703161864779589536758519684215074327528826757015414755766404306907881018331403023472640960803586186948394257148790098381417487162541421098902440045616561536841490212694506942490318786084139720852522439935507165095507315515724070840783029157325848362715079479569313461120363895832597279727908198945705217212649257566733535913846652111465494906575952198874081303042319426494231002289565954993606850304965189985496118912295657233334670793986079175792490255766307186610712884128169503768515460172995817456758328811419929779169615137918200260302649480732942686618558665716017379269048141690128815064535300103596955202528066026692629304308258115219066974382156196761331559887063540233394055385688868886699287410896867587621808317487688316093497610405820722678139028370570553053308114871783177801215862866948695040307363453852967324794720004855709011310031608303614227344446914043271923669204172287465191033124073501932732208785228182132111472610672852886542723901401786174290588202643172127435707742983986884583196941062890554251626504932669225234789026963020021203955051176991387044188774662365653809154740261317814219527336343487877814386183582280576354443991466799506277022336616523877875834256717217788455807232081252426341608692492987674540775880503350914959705002651177520282424844978905603938597054345601698245554100612564560259759599417990766163546619967878067468761456372042902222937062673308423228697413075813712074404187857383972609111870601137842036291264776032265935096019171408408577120773766375447466094049075003670388297484954369927279139101629310973764757477164414160728583465490432116867626417403447038176078573343732684801802574235790176297620953684189562594928457785407936750435263110680853318738358444612220613776939309616759359838291806108204959431352168884912733151956410235623025468449350367580994056521814392854534540082516638435364851077595512663546978783259825364837942260536607598931014464476684227653386665053877501086108582754075666137245886908575638509613899467855726089640494384506243431906501287095069729077671167933392828940613915355902513496521397660544662536823093052767026985815873844147888773081637760270690483082646006478943483440690045006376272437435255750332307852619715361704997656189450025485666229833437216440020828541696580451952413788456677101991157024632799418279131028955813706115969409414000462246107935954950182835975895669886973070361825474110953535128373074669597419377461454436908219592077242206500227267056184380496834482721261541228285094228433243623714945582340704075186732837700804425540217270406582763212230474971507217726594627855481108801699308468697760502080332695292627660398946336663190880365194275097395273364520217669800554220546662287928033808193161512016491839196872318859956178942119602694539071974184615523235671177254448536989369606644624315569776216245654741498467893954810760001495552741681345868307124914295582128363918906968797002867423646185078256110586185692248583675067026224695156789921904580044999170754704166412805619042074886060315141746147736079730606172445226088076339945825222204692191716131653011225765760001307495083148825061618019644649950950946712934944562996317476313937185890708189664477441148539715266144248823994255016801028054255327019048820197030840003231103026293819326183130665067399388247483911129465175349691733599413655003922816943737080111954653745567584808896940768272363957828208794912489463147893915624883411941232845436576538173578184093424760059538290148198455528316654171807536133560384583964222068738454206499138237696877874468705387089235561827440752185901113169721251699282839087300604716719911779830665860672719802830640940669142898856061626517776044757382489539130712537719057370689265781021448151986658913840344249907675529969809935582999607074752925950944414668689184937981409439786328643960684363917171992395185863733006426843333234812269517209599434690628038646208268312331387186877046637163262022159626226879745250004613757706419503070548374336129264600620505616662393807927362816807385923893027678080143476704262776368544450536149238133181772533479914067087919147996125683331029622272816125943175050136255973835964462666044808387318061325012146512395821631358967561427102667780246131885447000246127059771305327993717660694748620448764589011733810756418703355817305541729701955788583114041767076688026214165233872918331336889143697412134338425376025533479989246979255089408266716329211180454100553065089003172846483412412290214715479137402508698873371709595798852941332834354301310521899187813805841311420834948312232312408112979639234261833966432165088992734437293214999485310510340376805765762814968958728350167500023332630358643747178962841612770085064431880245882489324139150551977134603055841439812242389351433676992122593194181384621885525391518046691199917542155772397715437377576126133980798082853536236154673572032090749289370281622273630739630459966775710979818096160198163305330217562679826707120469711273590263661313845588285039948614485608423453559642619053534479997372192688838593502594058641006437542049090272878232513184268077752342176285291269075602486109921453893761903407399678934164470122651834829096947376077443617712321246921495192510662547586744486156204825642896792758481594829087264450175217759983189609095969573798724768117999004546780741486123971834665714239829361341258693792112794234597609852983322591394415070590961180509253428164180576241182038997173984644424235449802862375850938448127647598593717582024656589745622494810273429414052398963828719335228361815481421036422511226877118078341931431160114671234576518354480260762071155420045037136619652982711275248372327543934918085638491810674468456287074033088527894006810622901811370297919933543966472070258358788734416212333397929791124113569989690334084062598007903366537599800086083391005998871114959898004823594048692891992322349630518710282702883884006364940186684967235625516976600679735906287125884138220124478142323432168176256945565835855184073184542649766387900696782481044414396115680392802065359116878915483746835354642681369279083910583050527971767627249582377938765791314372653163741953123018114210191013657379578928114768067710514212546773259459160066474325679911552660035908364338272507499090175654481084403733251192308073589400571499822199877765355688197796191451454779006350481388367215668102787938579698326608815399195560095520888994170629517294101253507156937685786746315020324463063411989759089328993835365587281121669601252522309782648595099664617789327724242165404931862895775981881735537932412672752450988788929203089566338942795543760322046252804610315506632545269212201130567293878466451587425210503287767902653288130885874872807899047741643807127417569925354985395192016628318027802119484548073679684919625018391308891299867623584048715166120684707100091841549403815746322865669209192884892459602787451940420394906108698632825891661979807543203013908098417185655143690583916738710851449045997053917439479898265869295234836394590761647684838351355087754036958486249056946713118830373419195267918807286360431920825873954749982565164653550646175991800983556584501514685384128964914312415778918796674882425004946660148693116794322905674372749866393182831996043080358555082266819680192852467901490049910416880151942952377667455699134579020994622392647110865167078479328555931730200119151722209731211089080398108291096217877327569671731146115347582639973669000965295792955387692610471172237176111724435081095454120462470109139543735256378475515321349942709537256946220795639838598786643612372397416650432917818504024326473220980741019421047549071181493750235091869003249578712374190405313676476998413320229106231456461070677681388474196848873512157371927302172284338076380885518429700518524020735610215935794470520607800079201419384346183114897291528443080941223376892810047939523373140964735668895340719678678488242510360158775751629353940644965803143824091276910586752855870207993374352542156033289958148552786348814730970348128644740072049491044087458016547765947990794280147928346602659516323031036069894857227054681609834548896968010488939638657875972028437268219183926668517639935795998242586082947234924999525761221028905883721791340701224716745687365244999471071437219282818273483373427469088339426161596594395848900035586965505409249360968672753029137816730807885133720105173438556894580514230928167628236217635058181694132374406173001407621487825933734374308789391522421869972240645832036804842458388723196038428403740894293081624943236219152949711151258069685241250178689111810056974893491759204787795815193221942649642529274857816610208081337133219096211699616391139420918256696133863649476547384654253494502017932438553846375085162990277098717460847829678305742423838757456458833434607819614439382627968459887932116523322330985503091402197732359647024578902516243315802385111139241804637924077671522641718658345614161799614046965323211632731585226411966843020051466447612623813931173588673888063045893427023481687618554489753260698294875721199501752250911509529647243707762187897761993917774325364147858522759431891792368117030329953101547001933718975584141541935546919118310191147451706199401333673848449434425793627502887677610656483584926357352199234255979701063859678268294332945525490310482388777024498187004044220963244111959145585647612102765949493600316053441440138756481087729585916588167310307457733201396286773837899508550404944971712074671772795890653958048525736745265709949133636169692057428268945638844689138695419538648741631641577537223436621374514480790800678087964365895762099829998339397927229781485796083919371456302921227768356483310441875833520517259542311416806298933983283991007649977467481528857892770703243739331862348783088010820909689585951810042270834374907577665357929374707660535320889872174424919099388540452353167872547995085783959704750955830840877502712001010475059419481227235917863405118839445306984991694058422260158987409526296162109165272117219387658527071438522046385587124762582591215764641445108354736207909567552871488186580134848421558961324829690963734704167437803686117038401740019562145177973323268297495141388680240962194860275945309161553716858504337186969353334575444050281784171430798735604545444997036108239545962239414248918954710599722655863851778449462271280271761904808066198625887843431396213047941893805395064613324444045119164034877129084938960600162586363708775220362377972565934465598070404688851146426686416358411468798236623514367568466112443647065667308265706391309445359574926754431236329162216284876188341113092195172013441406893198410348920044396014154876561399444962589551453808907960053912797486524985835056906065332976326081098567053288081058772885404704641072410711637870539856650429629899665286382983617871243042084233604462851289319214848300910872357220347503229791348772983959255416952451933870521684758397957197022890950947538781666159315049834485101773291473111812298145337417424955992020035621031633030411388210804182899750507144751431504687069730469334025007344275151306555238995781608174213995675893582649826759308644540673761597643651782624553431883091873972597451317613619186198829146720601254663967312189493702673979333993031403861686846495080837311100945839680081820902272509707576232169451103675512651540960132640735930047166680112639910461014507727126330996416209622302350664506141187504113372873671831152830799380020467805209586850711192817344282413519607536523551903878670727761623994661611546019292627948514289741278756309946576210953667793437972455179497254088133810520945841987341697421564914282754818688500924018271493704888614607908854045359647880112478638245210545054611908651078065193817221852000583486812001101912397145928966877252335237099798021983569653151271645019956396197429561980139652203698545822133875434221667764856709127925487120768632882676502810516113561136502684446360758014834256554121902947937802175611373010800804461408626384385303228499640353306085895741260358235107474190431388001653161870673095876265818206608312540944610782692803240610121052685706889025708003084110892615171458857873459352006475619818177558687748626676764954595453166310825869603750843743819802602628518489031052102551474477615647896886652155835351414286377157625302996054856743720612851104527259386804531709976806496263855437925537866061951362017070366254872266263065248931491126766243548889992686672490389255570184691924809947830567736088939273566389841148101880294206724899211433843406426506693045720946188755652045612004530824175167582595324319574249868399202273648391779288009403780793249120443155597407906500746905021937578192615239701003641312525969279378399542719168670777436500034540128278974186935577564074324388680741300702236687556244757752939314850659791072932772153351664494349016478930453005727927209682708288622710126243567933508798167418409920483263977912663944549130261416029654266608573606348063965285662844323445959679690633042715018527109075242422782146949646006861097241011222694457986297041129449960168014683640433541417933766692350311215678306722925381147079467125848132506533551295097198980497961199134028396258661075965432170138697943839888491932908565989362572062122808213566160169990162730080158183815437201344984854317238823390073848515636575624790118629961757974690163106950621355419151775197261533261367853416371305371583834517570130686656670751936500599895443346077487841766961032973431717230016126460721148292189474598903007477687282236854957745195109036396923385110705330560004949155916327402617073620837453788768327397210124113942156119759768210461727805535074044177342294973693441667636208197809961105767993290834991926603721195840172258278939982578525220372926134343109729219353419993141416021819045044157322782734713703805998042600854365058827254976248989060527657740892181378774811067272908809283947185395817300521862317395905429304941243051072388886580627868396435769585167874249181405582441733626054063696472463213107801463479831413959574418542835134485346487191457144415841550329888137226110025715355284224336942076357106573211883415228004702864449101426825536199298733715475528629104713074558329035085672610473948357694460262256111627974110005227827979628390384792254278932949523077221217621991700129473169286204029568571050671959136744281675235755887078043989919617308161815498270652194599072305546970041169660878610389681365523375935965473360924347866898850179711992164053436384039321132514355325136747321534131214380965026697220677663010086460003537079239858575258727414892441171542876598865028759075706401040651409769918476989116623621211973799584569759348038864272949055445336963130228623535148781452961718233850761438045289442374528945817898393258240082076295400347766956943813816898461902370345554311535839480320822814696535488616426844827756900967325782967933493644162038376826163552558885286498079719908764100767039052349690174297611959943195710781358697514387052938198613436359332179819646838026280356512225466360524292325324475273563688384012824238083128541987820352367893402151861619729882157908855849185484837960416815434633127086085189690833131356822678747700633042958304132523947246514685745633657440316493810537576618092583658863136989521668302581267035276241860280494828654512973412900152071328471975405046220093282678235245689574458172915215908195607408197249298749232152019508938435254244343270662049083343464285991021992634457479369426562767825104858000546340689330690675643117530223806227734469908103409566032758417582429206179177202736472067215546152543670863430904398719043740369574210318925245166064768628211849469687650526251677976590700228431344365730692221104488132795281055052466563416040600410852286405150416110776876215240917217908719555886494130147768722058202573151361510646034395197897364464247482011357857177594143429456887340886967734798916344984219570636538125747575106575834689303056021377657542955849658115887783348391984539427726084463366769549499386598537369348619123784183736714525330238839187356993518044659610468916483022979313567575054652496941618908776564114776728354074038769619694031013163161775572906772713727883010312146820423956145563051826858425064965119829464931822478500744504067769780869399384365044960935585509932323350038262397266793031240910675330098638196682063197341193936210191692699782082213141066770378211447494356121058984115572147325902034104074601470835759218462014300698491673529060684649082387231263406510164380676219099626651970461197781932596981292193828568666591202910198046258497431575512310874633166896779035003390015652779192063642508594997049117479345748405976492820386636162563705787103859326206818341412855378347714782090901739001630402242051800484942720931769784891843469990901804223105181620569078464220780729760915861058121214287918135218175219842700956943236638821661031325541666720481371207962558952256762400296169766603345638586893551624457504569678370212281610152717776023293668135941938142542311149945690903384058080518566175252967842949226870596563052063472991888011714383461454094606097677325890284777201799294583763159833471012487994738376942503275597834679662888650247089892891375098269739431165915495681055648404731822136143048322133702065599865048059841335208156323625764002455243210955939783212968925695798218735247084851792842629616885171939037220857867723377407524343739672849944651487142659049062766424513907757842644031515286116990623969856032581069909023182078731785990871871976800553501981106173904411435350219234002760347295647750017211607126727922557328717669152604259737422349083222085100035600872851576128102860756013687812482766254043482987890730071132242890358357310881233013968985570423079128230675464600520304775219590699433534272230708569058479622911270340294245581046339248526565344312520673599829778716676711548139254029148950907018268887984649792231359641915333083937244989642195431935397569827459894451930370790363191784377890780453532131637105353134924269412008802805745636356132303453938804414606527246478983476459353856119009780307750156939334848383753436176054495295237670990315168970271835615464401094506945711819234957505686252238580625454393278337561335372917426484782987952692190575683264328837588996037789050453922924754060500585944963536575722573411276865742373233854208359806021520313112671386181325671532274599271868568068802472936646360136853650507034187717381200192109289483858511448989140313498905979227543735001038417980324908417027364858586429878727032562861280500917419551375980693255214652074108374637680240757727426061451754598730922162377259337887817461772584066821796720399960265300060369981495193239596098291756461436746596062775192136369098425255997918069912993999306383796973613566043193730330786340340337150398172319401460312363774555396526535214137949875257492436265351198874621577726183942846562948205414602387520780348025947852581775744926755387457881419555346074118806826307771690982799203012492631632055205255121046466025484178786253507696678868396067515539338612292031781156742215667363500232740205355964657551410710402745723209264935990928625787769040853659069614890808136713650767491182587033259838475371956391708053789557004292694192611057911495108262226845113671129904123950580199533823233753228645316157662735798066856460518134963243382710503086928170520469487401206350940187961396423558854538042655714846346812671549107404552529951179714034538630660700100299122605920130371388336826170594538239386339994738292967967280077515157484970176713446141298755731472294737317231669869788690979725345484983178093165068970859460369224663679938525180168060295038938863766217503938916480151783874346257980642516715837419128047523413046100260779718875102117453470566759772295334093223324421532548434284029141032167236355053224595970739932364654212862382016858053884659133443094734513618032466069785387196506695773576807272018381366627005352845022073306434871569518208781700468965375498649228383545229228291789232450283861740678647566130820017835977314769361084896226729270850433190266523369264330674363686593214285779026511703129736432963936576483632736634228719993199302756043696149374254444896017272047340024850528420715796663179172396278841818455492226482637905965664658494965828529136521139580647685535891070712398975944920467424246929404633561177494999603903653145092309361178331444896487489150233306791070807794001711473063312996430338016719983367489164707017043342778583431792782710465984358339818661138000809598837940459416694480492888480905296354310075761660841006010502424313473332637966446054530789177967483983792157721358308219033121046297051608795729882077352972884281071058127639344673891899602288968176870343556503249284674515268990377079336812272133654621421622945887558384118693305170555847398167197200422289384294403415851111436042976764197360206535971915166497447871987242140133478500971651569726119553185925554189827303199835836483937121968348693775657214279001452955535856694647652455876085039531344056730064825932761728242667077608340969659369679757446205000339906253237879960996636498957925166423526900878336757135241340181744180597746602373069253773459504756794132617317525047690907093789253771077558575922013381196283779253814541673863045075300815179781504424139299294792381134115191517647776833087324075534245736340172054519032459083314822758033909228616839105354615704857718034409931586798419000779983400520587712132499975240779347419030349456283150588197938677284893791945315173359246891125117673683944862207094110391556296643334997850424874674481747289361252511853055345689566647049491047214050627519844569062932546836287377454050513852965141686288305578086973233296958756963494631044697135253403844179185332389180444322952353953545128514190409486571464263315315943234898176193899289801704720061598352201947397070071860618691336882909637757895458463707850465900399494795035668985497696916149484996158099877620691174270504694163882607787612577785696016115902775193919691539808702842006996708494702155015666542832344806476971269888267230774998314606038426478630744606537977137244282707417003298341815853746040656656597492056480886460372664933284354712436143034081947092772718602827795020047218279071239288468375943851040132646060535877905649904677053766065005414341530518965716970780765790559128322940382351936102102512486821858863052015955256672878171298631408152248029179637794261474313784216222132643792648110191283467622057233281157002005296919380884760454555757726261256292748427243808752765826328373594042429434125875146737948117635472127965545978896748055439438600862385832123451645862411629378401513200725343432867391632796730337626656227486801524253645214253184332711009277468748982069741133493393101075805148641589864062069898945227389273760363819481212835937998236228835286037292594185408704069259429591304789004339193021781685559455009287221248923699100388500079415120209472110651742804392237064416090629801883154864710082153541142836533762033082844652445355464215510951473276970614494549063835919386744959760542685928325039927069770554558412277314110039155583598480671380172261096223670478157989019382295198760621255685468396511598897869942574832764630843201080057998043812837945859053371617918735220109456714631301720061489429650927095291988182816159538482942233445285581552658488260726100033428373331395583718736624550666785208364660350374468212374484497463935082521983599936296657635508743520863818805507861715209311794228862332350697188282421556468751694915371177054007498377626089409606701757963385482634648835726576887210487800032352640883890912451226041725591791838236861355244287893795766402129083764249672550997346731956694747654623209571501124161836215015173877195668404875450222412729042237217685461231362161199790977490376635616002952471373828265364696436435167972521119528412041147225807782751798733791601768598225536603441069970746367451226697081688003795475785914786221443848945038418851266057731295017207347059721821577720285435064987376932103991929846822596594184286930858732952858203448528546607148830388060721242801026686439955131150058145807313308422629720321511626298105325001619441929812107433368707596009596253113806309915026933531963208635444358392587429815487254930598311011925418814981690171073549615764444093478071425701848733287128213435579040823630009238002898639373084105090621500060567329246656235834829409352251223121230134059627371272944977959609740134187381635826227843621716670545112758706931728951196617337050207970043456716236549231586075425651825708366746769755619344105391334393061008457685165941762896318620887241693828236048980780353325813982765962097440820973662925408091703825506266570994863000403939353423092433144340103348946480956219748553249111796035766954454811366277079231972305107190888762767397394037019236484796694389155196097047936401274575941519253273887035806857042849356799337852037396931965214606691155170407772972873860682963306504856907601751913841854813990084193404167126491528891779317742246405672929542533067144745745334460902383467492079491759800436776281862475453274436257526573520331767833785143178999141402548521031242388774361429310123495835040713288450608169518540829071001151150894786348601696866793877905517431201590525415559334972657662328666952388077893814487608476995031261168202127900689691883636551449467943672803249476952273603423217036238746308015300899655518838630152813672468209857609714073209875573967808722517971893063692662571266424926102269934671382782021999023219480290963362610720967765491379000825866464441651375265921654614131401398093198864243929650746078291646224431071189064914812802694290382844855902403855229693835586308478212261798782806457247632559321321453795298270715643247544200938848216917157470526615996771798965558325002962445802514347906256540868138919284711225578875457911224729917166377616530241439336252816668929851050303381831421348337019513667297752045867073298964758170703937560612990924949870013681740492942540629563075664909263057240397071157299687528303169787591834302046322624922445462172361131731094741976874555267590437293204874658403342511369352927104579711670990683830002921578513264546448122600414065738750503796844897429455690773259353344127285350126530861268830476350765627757714629154689690298448648061083825445766301989512455057480039054878487811838212747955747481645128869307062718291511359141190370210570381466221626901005514397120920879180931013910213437924074086658388056537815314761807172318415948739856059018763755221794384886910899194824772778847422489742651096827920400424625985675647777622203133947220882537718504058401449334420892114385990652714241141154307626638276023208431938705731261979068918535365601680124321568580869115661467107840989067382149038950029316756664903459979567418748220386953577681494164221957050306715378711134243140484864296540491469964952200525129994998566648944552799351318449464794077504316841153246111595224256145187645458800158057034789596029838358274866101398134485859915636886050908357744053694035650279999197683101323241218962765311727686350375267070855484762575571490322019467963238866253121955532936134665752595758253659164088876440177337072434379191342535443242372336644878155016592278969129643104500706593251730997939822838005606147542626396836098198315202312482959772262843666888358603566107551793239071312063632620880708576331170578436355318991363666271703785528623535649363570132309823550494665537123415706501254591683500674128852905595752900789600700606604271886841208191565429334986732739663108767034390916560041173195356823235547022306268238166294176209386568473991642571999277642865004734022135479273096829874972747148680624907624573956816512334887889589751131477846582715810394933139309557442172596177524279284547885671400465415116465164552057616894648502058197257020176609276857985091343170844191544142989999878209370960311226226963535213065776099781620646469169146978502388046052956475717129576036893688909298403970818181201216412892715957826701701194862446052370880455247786055435676261159292609480126882694046410621826290029778032554263014554373205704117390966775367237820952830850953049364599342413011635806935365294440947800629750243110046124054135905028966860262499991840037278673066167465373176290554709686182726546798250008834411482579926250199454185662708653352749823334343612737135441204820982756372729793509311069160915309777851912911154779096163752848105097755979180342655902929048372883378941502194828402716715595801591232658392284767353570498574309496411991617889017961351005213670428485045458921806760629137230943730984835440702178515425391525046507138194677299797835986141822660191897371057876459955986559383649231492126160295544641707732251451808170568810593797931434793886244060288722878177686453184799572568530363596890182578473767955786825149814087745479033588068405223296491968188607235907326602443260284826233531065244353523563105745198963619985387704908139885931969669610005281103768597822708598080676358283881792958831908619200348252184398595266273134006546826529062831956283821063123844346287408502992621971099732668574950792733937849605731035876580822844327353899136977450657437468892113721015952641765835596417562276780204072622582903947697576411281658981845822978145073225148457980377025812779304350603048641064569600564218142366173193971400866615851822395011433754325186604475256476480197656463630191042695253910589879517611166946094168211015973449994662674203819772738641803798014024967788581566016963053680688935901160975664306041775926032716039263870820394110091261568520258934386171522616649812811411581889454995042908969248896552117322302299125934339395110933861584417167749958110298009074979718182260226997421909318380082312605500756909748286060374532356234001565761334965947249494491896621491289327508161879613851512699245339981415929298007371247817704239192001728652222284836889300809025713117323595384660179926020797705485756066159662722191236961602747921181179718881787261554713849876068930968266735648152343148663286183754589861344343385678823610145609747313446470456576442325032057987361335286841681431824799834774757841237067738046588421994404849831323928508075425822634735713674044623396118974847058174146362884868184833729317022923966551627902478893478659149831306143671498418406095549789788988626107646618985192434225120339772872103700729369755997747487752034269630491102311316102591148946865790508320796377961413152554441934565877342505275766671084527048282552902661988792800550379391341385082905504416973005591763656665062991918602744005996649070942298736724011626069879003995293922872053714122902715943970583717038690095530242001740321358241748621875494055661846190336422702933223413490621614362810813951980884373876424677097327675517452594694834083262685820311277846499150769598627351498700668532178223456113938559032695874133613367581646665933344177260029957201872727381894777751168049046210206534999550711612868348678896194251405102780627240300409603278736371524246801373723036488734472115071673341578654525871988823924509868276910791365293782799992782463738702880550820229410101107538831941836481955200823132643210800644623282756096387921087593340144294082318881498841315253002896466845372156441051411845815733058554907284410479585268476365187770576339663809089916934158379723597306387586818363663193136794835529276582614906913486001427859912127159498531517180652498905757291482645799321098861147208247953344446333228591008411658987948383561823848782325318410342350010182578471542602907030015448946303298592070993473103601539877785067808811106740103617935250184663087875977367470343904906061545729328117736042654954959689695782071184176652863179596809043741026330332911695517657621815104600265959852004885088558363759919687557794276226126165082929474269209321510019866124851743051069172843057302757297919731781562415580971549419523262874425060366690763811535195653285152947986496665603625227313388897644782357240457744335030470027540133814559425001477742646928622682017253033651354822512934215357401194924593210932644928187704212785670897225035700307370936445122566587421397841190347045510428305429078403055499145151920573637346478270016278056938776228846143737373542604657542966061415493036371182743343974652198738296506131677215075646076375736999307853903776568949668445160167268130055754589032273419511099843472465376129149349408316805511697051253407174547605488269069695516274733328074081194341772239279947079100894917670847792504026736241378973588922397332259334569422885417549896634204663401199002387441242299680200799703621516798796429990609256814721137748845735245240627809133531114154415462909366337294674940049491576979928515420373104953795032558401542770909868248239044425752562748097160136751334707006031409684348547289452771121534783475913144459113140547002968918431445451033603197652011541841100522674645265274836536781544384080668816891443848772205402685800358245546260804249196779465994303941187400992167097880599776916402989362710742915096783814877228734894979365337218948887958760360112885209796631527012411351359230883395429137379410566087853400170138565472077843602723884439806914866852794479263844006158139096735917206410054967792311808580718079771589281754415332232831859726716634422824985273496209123749235915553430714004344652651742786915448954319799343535911535562236989323480377532398319556536341239104701194930249101898053090131523054777621920835474848637433295781952821868048896917163658020223451994407716041435148353167721214487500212415676097087729389292869973649294861056043350302791342116173302520895946644783820558979654400493200007678236573031961494203725009830498203628949482427345160952919547462488986949767854699517500970919341893423549069199375661011256160837789266028963368254055522918803070158978327042752718342917688295562424726348695868103176101952151991059977089246852023531399117961311702219904455788826679472265204296647281025307845845333504532778187792154031719604897284660109248877953125494793190671944686949503491492498161647800870137617886513463232899864031028327139490116310542290694623022304090941826119579746319677373278176842076125476152813211198539190439647117080241152944849275756000396711207378909582036941093772678664511386052686683484316231151335459410932787590251132488465949882047456798428837670646077508647051565292835442060424130502657241106956879087844283104932516557247921465194980896217751468649546766850616572887504677420342705159631432792913510697936708936431896702047136252809441910450536362577711651425317131725420338351223983833482950427627406361414007054524851728814438960334172219721798041997192959233703208879054749790517266173274380887345958325444197544150422794985300618260852816040725122988093143791967895793604574809529347016491847244774087634176632616396789002180051560733866977743064633063910631894511464875600855230735446823124133922304182930864553404879177066535378292081708834740775770178432591451777422906754341064730013924172545990341241780774771067528539574849186549130748955674648046159361848745329612519788709948986201704070667148451880942533382465076626350262458124737782925349576315999071763644798027811281719259645252624403578266049424136345441180638082364310078316967561656218184724687743342674030103789703167136023686803490331057862987414679893131453465338429643670359847515491491475221948759821626205985266318564878092803749928774288827460050375582040977984497483546010192436547398563804937138076491333386517758454939491504001371899178428627288576293978607245964277899953474435663680557152026910827660892309486570286578925674673038736924643819380315264842739516629747151433242024245514464662941049715729815785458372456831632826998215586671116212201243211711170864904924018896774303915314247050956476919298969143605698052326225526687661846101526299473139933109322289062929772135948686684275164292500392676042677205352012574804046585817285830368142327971995816759745961041661418841567896560809568001565777320153968814780085032644647363593341922571496798642499836778574559208597634333709011441517669704599345030067249317148758713153674020431116368913071717096128100437823860204207028819089172501426850561422670047142729151665534360619017551467269702370073266776746033116209895256895666070951304282975638164525273747211810409329725528448633253920944778262711721924217789788060239887138971535140592846155971532081859246504062816881415822686585088507968677298927705985008132677450500092842751915474316615667796590399411580881363667129414895395501556516623301251622816575051631730196058559005722458562470962094415266296403984770619817491814319470772814072210013827285338077446594791384578922846579299567135739618278649290872200450068229636134459930323805909467445283831758165189354870067428478596729911954221168265129733301555552126864372818272523340710139897271939585444064806239008149405801867751460820575523799216832146462910504539892209104112625844082025012898128928308832485098087841089365201266434106601349501705186138478598058899316800621884950634092629948655169595428771411367883745131893209646770288293605568691308213343979520079343662831049083261043312808650186712275129642118731132769013661804099562076057069379043894606375933160463631069641164747775713976371947521193736957359988542411533564897340525603863095372618724069820265588781230114941177722390334457883733431051416119929433137946598123232470830425753063269259314318546670458105204621473026776800878025539296732348968309615737822891081545015035076429501543551967887432873081420570943760177766877500929114572785374155120154150481469711093650844278981045362172233014403932524925573345821398476333201462774820420938102130470412404523599787948882461885323996554109085317515081744770712550036848188096166680876795309301459542730997341960184514389020055827680173727069651169079447658272142862869196997182409226371259587071754382161745704203326176285808259067233957427937827142183379675403412005263989505772235965602772534639701917251626925913207653554037099787869772876473015788396220427259577765997161430929570909525272576712431797534674051941043382416872499171471213477429710171957110615381216170215440575835196921648678211701863738770605680456327361032029604515807644157093590280291291622179633527601499934164557763274924900709744513608780870309398510975957252275252198542834580793184728926980216349949120467576221342440598742861864312952015416952756503842828750633241815533713243272999226565305724472205000145837638399860477918964695722004410882207485197206079771834991047674712142250826638569086809004637951308935129836786257030533270264619584014923899020564310165922733583444942721197708484339904368480753604969111463525673968885009863119867917482184489190461802649687980624462327044245758937547219846601197852317725522932572510365269015124956356329000973035611051206804923483434354479039866838974984256310786352154225325041340071421649427883054126804644957978637708351716272496747509790867911520748589177358422168058370047379012102884145746435334514206010692936615611700892956466395874617714376733097326230496755509195903351126328634389749516964077603545959944312405459948998067458448675710430659128595230035803916060202445226768964440188594743314321401304210710548114963541935286163818964798059951698701824821525776889245777736145942051018467718998534623074435601610137741334769958498898515595365512508340851186815971359981386373735926411451979230156685639918073537080090690682776744454844550783921604897263102771114169065204131168690803553593593696069074804168991843921356908098261943857110766290164709760322093463513836701195871417623669136177480815223401141274248854051856602446723368953713004315084001699253133451684737153151145819747557543162585966529175210664481753594920920707857624871245663674062330290783486506939949574771023954365456479645065635356890248373967672563679597922127016003633076393416215840609189823079620792840484066034760759478546921101760924864177788566947859470924720791089137583408392482247401408944911724932252540024823656693315722850076931538560937460423302694705562201845259738886424244782330596210214827496160006514954634647978865084598793193540082334498707925432774450918553063486736516043945588476080188388517577787615379707343987513462535878464484991744636677037150757628861062106610894973186902822339757545239482752801344401425224099927543224370109217117748458181440653549268776100579658162006277301159712311306009413757888657064458137514612018121153727038226218843545342468224408931921245461477798378111969995898164681093364924252962070628515279720205693167119530937276620460337253817791254355755413548133445530113436994962627827620500567713838768125051512258424867247307242052734766440592049073409348861051000784254193380524723213359398119129122071342819953465267929471049474919490616380612522177741215108863675299382055936509774495651198687589330269301646079199595352880525366431083945359212314639685128757430701064638680912102258107351572361137008194518459138941332029331698494247822529116511178920180416325932489166509869412653576544941941242484726993409391509344048135625231144954080435634796854269614917296453483576278225669506858850635115733056669991306051377163718605552024242817600027914239226959516845392451208903607685372317438704429271477518453195745003402965577373470600239642589656149782735943176140859954978300056085708361903019304303346184992300545214269122846952679006761645006196779307004035112706496846794698425083157533011686264655247336981243291994074863242732206956873857979498355826351904081294241701633416463747397492267061374604343348135862139132174827425187947509165005193484391625259896654503756282779505020830893802585370223759693680266332461616526090909877715995584606171305833501514357413860395639316605048934267029958587592950849702760168359496101563691928846458575455282678596353791351801295952314633661486691301580529375170787331553973744657867187710255045406562157639221947653598701803101974286153306997705647576710779295283208961347266666169609943156715972646839174112278021912504725999415908883957057299435106041857180236325280256365759258659285590231859637196795822471077232381533285017672965725946057966696152416017912135806047367375685031214868165360387992009401537567260890300270283121654938853727099493961724208475659508505635666736737042029451654890087119405883148533237475728269542925218547985888498039617161932241781646962338429685035231920899349885514699648481443205351287271590021752983102063671780068968719772374928007054993644495616647130038503962812469833003397395461735968698273601678130963753886712386430774922709626582743673465166034694981245007657440790660660114692798634321395969517371604095254670958212502030521585736928777905287578761727786685064655540178367838896451637573420938184692589564352354051713168896705044816262401583140539499447207523095355471470021849453663316304893809928604846812681915455132162838892832240199437113277767543013762972309330286468519106124078575157165458445801567097213002932184224636954493560155926205098824814817392560489383604663891883309774129915602698470732172998115982986033548780975721536690396978072767989460120150814149378707147387083919869307282770344276800912030263403915317636186474359411315120893404412433105911395913740665974711850187212289309809605335419668258890098785444726873982810863772796499185031887799487560868775639025726210251903283716216051755385778967059171895761104178682507687992626311469675100088854461584910657372049935544998479183856653858131481815823892302989707315531428091091146370262289079965428633249286930165115227942240012934611557169974512907192588961958782310036452495982184291735169455913636911800218048199823031692210234565708202366870824094520766062417793892139707703606690363257123397342737301407464234487928177822430413461188035263146329585704368922857404464939468032963890147108342672257023270367313965687986278218092238699094857661649706681794707938016582598056807732290875809389087746673150085903772961625204667961620035223490355204719460324748252211951056727530764049014404816804663916217250092363425371306710144674591273552747023481273951429338695586675283598163123233192254352634993620979151548467124581525122793273854118601231039620195991098031264195602027948711039018175294847648286581691858094588071178917581347432175765876801214826591112258615632580317477852149839796351242925377845456336238382425729201497457805092007734881724646967797321172088916822251819210560602085355822563104838252138300466912982203445469353298754473536573764031155207945296596836075143010006737543697671790852808967922349373836724680337622784694673500446617406587992154100870917776576326010191823694231146259990191489795453584630021020272144339643340014667184642569825918165469207026270170127030761613148339312842810984141187171150274968697691186961051805767985276953727381249704380994179091958752186600747665934220642825074520443428692463350006822306834161890770814066309782358620520759729205100669709446787481861056299254185698092626565879176871193080469946968461544042714397077780650825983000696231028247135316993762376244432160996369511820343145205357556147831969878021431873109161527123669313833724208496239707456235852935990172511578128806217417621809277547798045866688456429822199302442168878491314570218668731076059101111815820541777408078440826033905008608151077928895502691182327818963770830560032940512246298702943276879867735824406994492537864287351129185390316257994469135948657932966542771754990160853817320035157542391705188544989908423632033597100674817062822860459295845930971356177225702544118357749853739893960740044550275127832583658000558355384914682506544052816141775716220390365323404830900823286999160853927944771382290821023758496586198101272205765531305236104922715075445526202349948898419775963170980470827550883287869626075506406756431104882769132548731360122015993547000387305400732879363561562640500122070745357129967093545316819924570328695137216068439882003284054230183288933696661574958686147922097589759956727702561768952280436889581407964925307872253435915085144691737852311226046445303547040025885361657247052447719214577942672941581656720637924623989196864272549749648440659435223416954221474080304563848580433826822923102149746154830103753570136932721923604760067571323344062007466692078588969718935999509392289249546430249347904655578772781959966086242014554173075136214098643844337378827778366711331294211078987326969131524756972873698766443248922882768279256786104947115090707220203515819231471993696828178258480221976437307214054495050598576834530581381217125429579621257071985578208961890591459744415591392683062955323048433842549616702526030001487458088949626377703805542928606385178528704157841229063009591232930674882251736718671304707793504290730710023724617843957050019254779725834673738601484745912942276744013394953356790370415137642299809084481413038519477715939438626317640346389068711806860102354257574140390618572423679922880760230693630606287646360309871842920800174169520656169625554283353021901518008911629252128711035028150666403601420617331310117156941782829603424328146054580872493547207005273601171669243288774334928419229465960973242366704522868400013597847194123427804586778178434014554135212585090447749962097156883192400512248435186714884589577300395439794402690821097578627697011247855033749145075563402130449680898813817494814069480604391832771427103415882342386012019936080460802666504440051618220382633620223868614493006692180739879397152954098484619687144235260604888946815401148102115400136145344518600513194989711567196574599239459078380604145808102423174733455853438797856349249682018318564617004486594748778066784112192815556492799342436843344829056959197380099154503812160420111243562544047166013337265770278282619390026605361358296886455743098742683387208143485013543723761398398356687672255619168471326649876499177241975990810922803621433726091422884324385369394693217091406364824132055066410803082212401409346433373320582721420342181193149068921679760034588990667918337816793153938346735441702432251373625263798785628906975390387290722201634499751863973027620078574617591270192617296588963117137812445219107724938778875779388560010133141669721055792889666456581045003288225172373914864289231090400525680812529288620256305012784577865951703670423569626930946519633709785907416138485510160688224195517677327524133642250954885763713752869970483298717206008876119968317364966764662664708887600663246832163626815196013234674232544462090335710506079414743788226669250984547664808058996628222468399207420186389407956927787215393221053060478873258210182948314737472967808545890786110161323575858842825393540488679067582652181978149801708050163581350391404205550216374377122454064902036638395044064465302808207187416307876328978906344474058263187614259092216064690701039799294484259810807240071176903304380775573152120808643993880169560735471180030995305373068232089390641061330157381960786965639072058295846538763056390047434571556536268384199345933110208889652981775168265156418842926873435450314588642886188563677718282304561333177544451896086443502248522363195773739677995023372883955262049545583157090195516678289320711540880503486846347860368496547323851238345234230961393100887429338258230147144774870823280681478124065929017790533744556958867330418349545453645217325185229202601760211947921997912415864804484946064268165735283890053646951778313696677104398511145717598471587836276520764626650793429346144612754414023030037299593478379618887654432570466693773051446301209656410205416811694489036541832235406366368606265643536507193995586001874957343424540683881271564736593582382969107271769616413841234808077677649188427929684235854774817122142206262878593456094860382421437391676479858334121692617801243243611326682358413249279173218098116068954166255564183059740853125541473266890271193803389482149807595565330651018081369678982361966623514356894776643385549989817747233684790682761179298517911962520328938765521452363994570667356671604316434657353720302441347223748780344363661654066708931569637659579314858808714801699823125012389932107539236732393216349257642392212856969973514089764642225442094617425933610735328258781373560602687325872163642411764166241583791837511731855645138110515787231786243385504888911208042406146863787847973143149873544730111334105532944364301724537897180827428195646148237791445001717743703604273148686896586799887190885967324159394977666874630806999217550189114596221197137320210916821680203755814498721835617233388999610908897877204274890372744827975732144159992253249139805677099536514733385823524721653137419785524391266076651085136765056859459814969401235573520753048876409969952450853209193699254639775686653858863659935471807406962517213741415536853562846908472304591336011985001934833591119033133313879104669347961223155851345839303559987032309320767069781009633428993419590674719257850678362794114661514733365282586902078450323249718781038506083529095429992967569373950659072410395289743473311471973645509012553345655868303858823378311156292520110893254492461281543058571788306876736070028723664344221987610126508873458174675172548267652840349293541199947193338835567358091533827558233961134646739326077094840146455101872566201661710385960170557945452723696286769943225636087460954851592326054584259557527302606731117373374125607650633105368209401800508197538395742499825699723582817106413596880677198043100188829547797933033861357848719409642683560519084538646647666634826865029521885278920033248267519937146647245903556993218903621332074388849228971252451790795705333420120614009370751011715337168289723860629242769199933036657016196614174169064204266253401422244210051011634857481077817157692755856932656683655287297884002871589137331330495358846771382864705263693234119379484604935112138677085827863686227975836740974642881264330816233620531030738589040284484397972537016142956608201356160838136517997268760381534625800807010280457447275286178781642927271989320849022390889219716703966352717319918858836093473122652620644565463099639865904671975997956511105332566187760867913424783498707642395388772220346299989468577260813664166630344103994567738745742981344829486931181556339255176511673588498014557233779472519271092900939459637611559304706324792167074791752321762711673073389472528409304659456782668921019283567603221922862777992716864660796880028027046299891614806670831966736549987290284598335848637625550387045841729886494977137611719801353556124878859497644058533157248735422938073315304560938109064329268394024970480265108519620333919233667355660393979363077389085023428982571048293885014205961850291611219635252906709044120043188820357571364663811984627107724743744879188393666353579018852312936018532230794670770267875765207796554902653744586624786324280888030596505178805387062390999740098094661451779731650077153300018865019290716045787817023296691610598141734856825207248786681390609731412120318830364396641903563731586095357047833428285041394549043108222086885186780433497607181856155181427755708800242122343522380424041275980384494186440375455179533712206052575779496037604417709220633585114026742140700030035111654902673298387031741227915073503057646429823307918819781602091918787912962763815755804171916563754805899233955215559448556761338850514872259772123224382208528881532957185121968522215825789143163748951170868231075940912782386734894778797033471822455538141853244050677428433971807391083664340336699263342336214881615445244359891052751067592956638603482058758848837861831510750923059922308603803225665710643314838475614072201232882961622919117840580411112745750621523661771889646608215632890028405638562822296397574854586492033859146447683422727258047287795899087300789297150656733175832465091311911262557745461185386397468132305124578413112972352780050250126752898040685701144184608999301171104345890520070368516420983024068349961023898738676211038331546807273450603049765467277004917950184558457976840681466318093884005473912194406315073024741495608785145964963003647955699503253525705401054951457287085062687537461676439750594214713229190006832520729607416933228967890499843062827936426203148070953393042481159301461275165830648639286434830158851090886232642892859372623244828987091341513665558543021596301823602889701157548165571661659252580436865794706626829261638866597314692945438264845618959852610134517666542709837108167368492246522853010673577308171633460512261736486847810262600466322930585046792859680658755260769676277806200374405993803751289860903695041704368296319679347824690436754710684684453073661007816088895330589996190985761734377890171525976303756324704865743495896685551683950253820978699794486715364639291710376627348448305347411065814622842993838957043412151497090471964843199643408489564214986794153053615184316374335693251304626412098660914368775541276152872652993367427114423609435898735550729257504550848156780897149872242825044787124986552500432721590494375805839508269521230732453006772216057034890440502743177376248497413660626867805739691792585997695040741544540001254066194309723603372693290670986335276459717003420958491559287648498433263171805105651692498129739498423687818494568089783489397460100166929439650801617929875137055161636512814395132730031110242831689762100811552787376431225132851726989027606759266871719385796233103062288186825713132505252299869458826756737118825307759472255259929151252111978193445451264306272556159045989626255387401446128917316720338595842353093671115084772544416599411780195218709181093251504516987213424668149597845147245824524424591405153219251704874294636397276762802145796768712784356268750822050230705732356142114253674022855759966578230936446842219434946537824926442640836250523371591104232875079641088229134836440443846895854021838688219550314970191736971521863394028884410016502315663435711157684309842148398870741155865895709891331815010716710191701145393404166801059818278351628718851998513649147767395496885131840022786255469026728785281585220804451949363756457912214210951731402381582927277133612889643865104799859762906696601750040603275009932298526874455105131724579596835236263243699014734313421195026225882621205341798154007767439363838617646770979889089401898730097963843654848528166573080378373365943369764014571898830491033054362919707837937092306651774306886985433162945115989974820510490403299056202550131945398122558931589308510517191726928912586870705837066168965167159040554980600633558242049356857364886653444911382524336659349727962934935903095097819213204477221599542338345945507003459433678066630927834180692750937349164194087812336260881168560204722694397439603373912455373391587129734174654396938479705305650067114142848905532319745414176480836305082489991216423171887440246455052038554476655230018186350118992816424028531094966805217869543919240576953403906774440351478160577394144947378974239622115312729010739378786373420410091866151980533763107917630064319278917106629441404664525912997553941010404295666824535803069891964627235432738968933907936551507015206438010239976272566353151191234055748859776110813378234381382591307965597506230587074046260036647968016410430785313283417848336305294881102142679541626158553737195177584809765967448911427465922454849184647055109696399989687769445769129660882711967645608054522714392853768049558189471497765664800980917879505064620064363946861637008571647784258030289237092199313790786978259710100911323204069909576325562620403327719296781485031636515319624939316043701751320141009279383780438083301682091600344152457753638829206087727208276257270887467134642886594849786039406417897382696047709178416321461095465542016576567322701557899057201438188690254794791351320579427934313881354804329442926141393625943327848299913391366804788612999732532398690554144584029750225108443914003343683241797104087542821415847878832538469484858024350952162228899029522796477481469345625653620820547128015243817548796672580859431515445932771222891205115812919913754034150754787940744705665927337919342929334996772031565988572903293620359521428945802535227394965756287979147378615827908107513467913929644319319141593206567992254963906528806997386919483575880192472821654438074514920061561901553585445453878049259300843053194381021393900089049449241823784438626460846328605365810245163426589229299662050846949803156174505354512917380016395590839262671614612978879403330778677923623945537885938866592787282963582489902050558979952363387112951416340370140355485687259755197233894578611243823938320007808859411833423190324344579736218458498965324002218674379615954818216618657541392166809073779482913285089983303021228808289878982311758980297276439758407130361540238217247007843637901623629628273438997397730309171425808603009084652223128736789152353508386069662383830467790640560696606751247551551761955713836805067136731385641813351983152651166320388375453915013952207152864099940274501704427014646901934862944742463042121958972588161876491042524394427392637072131155707233839293168846411219511283962541193994914255152271204874391249182078070423714103096132753471791574371852572618515504526613427384433562217157785886262971177457243199893625349132906489538516140547493922525340389634210913434118104048914929627056664372037796902897216442121896184554013027904076342965585766936574494846558640991005527806704766267568610980370591314468387955310212326399667509760193196456151190021449960146546488244316921863562886951710028993224212060312617841715981261369070733006433834533854093090985802949730671622734430795130239106074785070532802499120281099626001809397230314832579390472903438303835318744365764586371992929968258768162740529661029924371706813388621331200301468612359516342988552935667419591742902657761953525060743197359155854178217214636399010901332139656027630862721399469079284784095626462279156957682244599665562407578291902857505889421274957426650651345968262754685769783107727102422556617567326496332182229909887405702911853581211974504960110775113758825164692428697073612575020569475712376481452041479346632520953014987925773860505100699027218584151255444752550756932107951090654827823366708103351944148212074244449237926562830673735003082092754969292678902531878537159287722834009140187757600743879734021198235321454944834668342738174915100712045394066823424516066286291745840910337185792228215145853757457974506378893985124608470112511836827874251221060416763900709754082111136474224316185218135863745109461707429255398150035603585031869681821405773851022051920856216092413301230590292672063246617811759650131217333696027485715826658275983737244837162607398801212214732854823651748711352260116874633333314722400860509190608494473001865429923408180957713682418771692707948629597500420063358480733716049168541016334400205024568918705495306711733052577988312427183825779667956714351417225462860415007123906228646618373512742742314676821759078777046793386436937782539638110883626869024231849291324353382577401053128911169957002465415264690237215068825385990280518946870388795739702618242793906007217613572248540415004485093137010176626211704117438523511463737915558725474978718909531544028400275411218415509496899599820659742520852884912177942799301200770056235651620701649905697455445185628702637559752783437638062682265163673301295912044188693279123305343038166154387232939487675583190115503553202553327727939632107553615881300483681630952961617580360508163174910050117416433988447889327686849959923677145376442640339708616104015302069299770508388132657100404044965741308295210833941830736125515658280963354625751128959652631214392346851689686244885049001309260836359021066864952762171221623232601853420947652698672259793921825880689954576051144763301407402254241743630928590401858963974593735470133847258593305736170800524585368784698629610658182192996453334651851432373356243118348404309149287257741917674803605463831249370534230795287134710210268834508977311479349646709372964810182562058068329518318963613108959820501766382021841271918419864312389245740960445166143095076722920410796621292644313268792706677560507430424050279948836698059939011524040252544177336050540622615653894858794900407933492064686219246323406805135723696874870791865801090974591789233098408350455664897081463300442689989817776694420162987604704212895200864365746240195387421762947124119598901628125984145825341347720719842327668716684712527490730765206927049877664979602188456438173811132557503510930387346822259872899748374105649328497274602755514009611549988738557126373762064049425857298001764226453108871484850626445751504794303104550053747566021514657431963272693277016824707907035881891660822944408044818864979164639456917013226505128451799373563066236901765843085214331915571699522544088606716995699861131235934434111420786970203680707734144756555616559835115273797490874018914006026618632629555209179108518038367686763272686144384684314018078378814277409693444868309252091579770166821292706259744131571316077143486421676630766761064725826386415886750022184844022908801525167611714537613637291703375666108748272242879777366265172787388883896313947181007188461520124746180311970718910119635373951935652532278143215800918338351807936392465655159732967962933009971459768698877802144483809419417590357727948597330312495897687745515975440985656816242217232378677785795240290573846619409864059012611619127931188835504174462753019185542208641559756942800605252044372049149787026897490251236266755190060383188598612332142917953963098804224521560142102236753377794359541693710004448346428580294107153146421824000290431833590850812288397820809640222299606166324668479336259156457751320261252897303749269955470455664827820983296536571029069379394594707739419869839114706954373192590051789440365083376322740323563652553306762424819149160798307584030102124656643886816084210083497960984754268294528877765874986592960425357969169975815771972257143890551537247014440195159563806025474286114230571431691932313888050045311647066189357684163502242455059462213284398191628205088609453902649981489872496701462757802312176347762037608887565696887735969143464157967577311859143141498910362220885783378788407801774262141088210329659314394876404633417848696942543919405579900279826737719356086568136354007904124880722969563240287611675231945656723052368364391661919248442630126790583591799478222391021971565909782040338171252381517023673005300317748426835427948641753765573315736233865685184195286416886824522246339338417739412541905797169305865818692642206126554801354688207927019837060996200836541633640986002057395815643663641972770229861949621575465299497823769662296690036467723351551580007843448478816454382096246326769843491878970415836025208536486897684275597011243717500818462262004482134048336614656921354459936226030246592391582079872234674234611711797655956050735283503286081388429203727128279449025516593112584841450845790182796879298366859707008670967243789476365571211489120984068922198616053680558928680237831704643285426900988143117039307445337994672943250570428306308441866080310598345072297601841202914926536291140365454194851878004102621628649267186580935476401198337708719749766372102395305709978310184771886721114132469864851617298901291939464563792035788328935037301452020832030377633996520280579109146841877089716496495181641070029888285083453520847122097462005888395445742951558765669997579976807550122182576343583188970200909557074783802050108000882526498794783148941349480358323143987390693849800150201326807635674922377649283021410278851476611665894417011780827687208595328220438510184592352698955499119621829926826001612833219616169597296951629314354460724501927949281307004353121360346353146977806400098386717373163510750987266491722991802281932627007451367061885484952779048425246485449687735552204220375924874188098855801215666934797606000579178133844798983513342753556279126354173403397030593524745557867377097368232945760254054763294703955589239082570452665369705197127197721886345168661742450059804400500068992171027760836680662581193123160101681639503717324081815751547829034030915747598337664045676425009162074120349528227621658066461462639829380183429850544178594407506245902120652637343317560521427847299543668124831151614130182891757773773281326117031429632647489956880739144627323336666366061519568490464658198907935757224776937875956800730046043948776667642974015699871591690504042572893050907642358133236746474814476189964615947941952899229833949703645287873806024968885190011583893406357643667232450534336996529414720922423547191373479177219734387180330311930321586089880656668395949518042373766298359308224789064194247056722140419593622002782526361950184843916196951533050727762348555524240533570095222448942658978695445620490601131355899087277615255195184190352168730567477153197374063080652510630798093012849447075599879050487174853948980130901168157968086463480401259963677385441944144954202093716829464502946541237928732993193294285134825002706121608147330496213893840118059967017472540066351510316371051349255401003187771235089938623101774923413909688810874112440996568505688067231068606668964634053008571118681946121462199968136766894491260580186195800459918784203079034634953929795858023916085577106385883911699236746910073713134859059434682217442175435203746318069541204007443082488571358529927379237826817919962791568911909124080469695251714954257806880579249850523956166978750925657067369041288996787848505042474450763579008943333058654752248331258041718230112904882340377285495592354999906204538234740923933958095668840160283383927976649909628012408304746146269287804488192140567394481135845999857403701402431263693833357852270979635121621813449144669847930607649186216277506514419860489254465971122743028938264751300475281024783264219710933607270431329379474991162473664875515507026802498226058283909649274507600129622585601386013095748955005228403477883764212062988153310949654340092625271687495984574481550924118677491859438041846826706551124684916443061186455298824108964813851904336137593303796803768640902275407757946109592436591528363576360635757507152277377153313732073806477830168313546623069937903921259806635336497208043028067188862607929348620530685301564611127136123203857733728133077681695485352642775945241172366088531174687784468296670640526745567020696847429556536013408152472580288530302065273559409441310971028755363887813905312659711492807559512539696360886870993524915890864852329210001400947852832563818400663671839005530654867378789702181503058779737455808433409582968794481744198059985433207587578701638560738009362174173475422302661917096750197463700854418647423544497749586156125007410011581049495231612795086933591093750748786983195284787897614029787592413374425557357534448650004157484431983461139182368484286254305947186372324344806523125327802651632905289355600880515222291862328148887078969518702412328194682860447393555049576408738835706642517010820684851025853115880260124408619381077053704297875134443860375725114900211879311147012519872693513371408466538014981054839354766202951284165416397050260102793478623338184475461393058141895007394773161679854708417689151027354306544757398868489815956869689218181756367697589061735808516949359541854801274445663175363246463928587683960806545505390467346274299080340228057163684120460553871873131532871732771153891181431132595179193126987174761184293651815902009560509245134039123056641761068004406049564701790956265650237935562818179436642481144519511429402879681171380478304020589139664370959044137430750811320061376746722519446080691572223729515357683714459934305716350819081343580759827818018842340676585779707927572318511549375283339587656759789563416444780963873223458838129649545353068255863518831689449685214732477346596946732480254956152007846883893046487411031520294272327477814374992737000914564470882989603049034312706158885498897176231509171602834578574610855921357542885419037209722610385067121406474704948834152931535696509170219400077320309637873170421452573544700253709054484928340526412739580008516448600687835512011228543170602712286120150504553540524242811789056694168751247032496872084723993948947310888789451307596744283669618736344367729845821043433256436107072092516773105583580867220061152307283077905482213936005627179979852184180434218807079904582121246746802404451264708735318279198468779888411694024696019793506137712008624070108220823559575092217371021240444464925120382827179712931495956374282557332613798077902891925801889499851973970085238095077310029246437212349241048968107574398165506642519182933752752020675897170249130481556695092984499773664934898477094246930762109112009703640326605171801369469001192578841248975027817503226943542792763872503728341830274496949715940516605516162911260665255103786320193394059497420180885541901980843183904479464346806175339740386821193034234547938083817070391322672796182714540525524772452737921403714601750342089253224099505235179401483609606367890436289108193513663469182400446654023690965322026620134272597832780245606624123165207349503414422798987921723270186113142027393252277758267317041405064361544240440692014385619035677250775008223035218038886798689574150370190941805573040262091450402527387910453364782708528023703167948328038344241696310896624670153773277914430393306864705720689487815322046255677093370923958718730838178237471736456040855361962981875774344095313083967181583359097584824103905778468784281633072821436562169379008674552624801431527031121122841701066901847398065427785654666957362276025447101218772771257129960346837612817559712349809386332755300341952219232106773910443253675589513627788417777591694016958547671875642883902947575859867619606255044214388158451146586293573941431964264264329483162385211427412942125212813247480709216414175656161407503795575291545290455260445892120362032778342916678582360801223142580588661334683202242091595545139025251498465421910483230959119076814351229633209374295666180598611064518547774289352350901930852489370226715980851383058946013155947897106255223175119437675160102485024932173533367575714137459622358495023359026503721859722940148301768350599240456118405541933258425937303290339454162109681902759739141276649927977273279497610646638158262067212094679617070375586875382766737211755344063361667761117385061441574234265102617322383206136248291732912418246443825027593827047334175856547904817256257572225702870214946834276144927906646958035509718086494154754317941701015855154759578454822082417160507839934816647191885658264783135128400787769029196340495746710113010001555710850879210198741430403395997773203106460570485360102472399836024957530935831904430547459892792106529291365231188746628581208600357500181822003366632452574341567533121115217367466319213522169426873142985099398210924623870115839305897625977242065231806680067895523217935522714359273457082366068085743077319014747163421413153120158785143953131271563458291044616356005422729781789187325857280026124865367895024364685634006816902254307762780317139599569257603330094043074509008682087459294871667065558934018110310797214204034642851623232126203579032505486508229080325984876066945994442969498881034159880227593034521609310185249233383481092504606770003793756371595992636209295452828691350582563238577059415532863230133839486085771479183644408625227099192798556007212591769700501900269924329515704232068113346896716386048137257874364333214415874161092262065762341344198776238830692025104706386638478426647432212707182146770470429528373556312272310671833946397714677023111226097049378869762587406706859601492505002879369587689092067650159432392953534882862155002801340931652617758271004891705636767175180820383000979846919237455401510321266798924433676120438516403769475710800531244608925237088952718366662410539293288844001439234204413793433537166064459215741782690529725762351458689605469473781289841192132820821875215821808865367194501428569244901947199538739512346753693965923025039390712815020264963870667399519098067077401235470063022833828780748670298633239825265655405701258135911533203708515647880131491584747067791891252922794580209149818950263085827762291298887081474948368445572584407203254989973886226961264911239741453448745286717952311023075836481249704821935889918123887513023052212471764271299648808255806193860957292778244002314906568975514662876079968489072125235289420394522825735593857915386094268475541097379757781759581517263885496259048932400653185710531783193892294940791908120542373982751079700923920823251672858308253751499209705089287194801805923404430347306907748045788788481847609665772735082287113642038818822088686399796136076433471384538180488319160968430950037833277948368600736962319895039068002805591247107250389283984311807100449993544730969830187112164805290981073236834759772135488011037114224361363662164106468794860282261827705418529103639467033800929515073731672152564039692772090000061113165536263598409104502909319064835402439554594011824211000305303579456102896199135742434574931765294520261944907657058924478895796103072428741485138707167085311400491052596178917641079965431672917697845968703893491430043266401741694500206791950476614075667547236144923563272543074018983440765809687674996193929178444395937739911089929775870453147192814155406371700432866788093894158757776798254113500680132982259922443128208581199207197314177524734554196442917003651191450946155771531226739417785950991376522922663290461672127619962156178622277580544826958683335896269057042175338892895004842585941604297029830235795696297801268951954194752002903940097767885265790550528980105703109312261982543424239776977394958224649522118867511757313085170911044262552621863740437588212511943546846335129867483152589645759202445196339037673258032094071527304766462388594920014057804294767342153368262042578181700899742469416344688258758567207894311037373546217131794539910331865582331070402189864069434390507452893974286011087428272247500746648907230721248109740098631059131054659194526416776239235136414604364511753236107682932589354009275268461305184250587355351481654159707652857420832756989178954057071729664440301387426453603272772841717391670547506101919733679810155676328385119663492325137564676636019150982949761331625514180803703134278739425602236571111518503522478360739557551214907529835164881861950172767964045463677296077791385571469314999820000478317692728985187117591839578478151328251866197261755963669222046340124016191263663724026250219266992981020790117139317740857001362785120694110435968256406542655676347293594627927298453734859119849822053218515400609748080735510317516155350211092104278870718752744394614370932263754350511049872453672826068336144838424486223041849264357707154512376973325338087515906035925340204777856242737228768625940730899282260414707509621031447518281236937226400603559038733710998069365670665008346820178132663208608732299755787984744975855612458392058717364123070593490470463005681044654601071319559779683484976667424439837906058457293597126358065511711801247641384192899839179173912854640505765768154131799797114000506873874001772865364188647202690293241179277610996915839773499258788236872217536008517791270086553415864564050151831222865614957291110672117086441867959134205913480103085629085075608294409411422026452383859833077508931975446176156691188493665774066270262452230768557226178612987402702904458543939704402188827254367087826745395481474432888160617280906554906827399230540114489670294140151143645642474991934746839348519686746998491742861342134386388821537887285675262366279886114726189773137459368915188066111636286520857276281249662795206254201219939563519359058182806674391160373716900812536090942969678732937794787713427052432130756859662785784107503930083238225232679659353311630252500603699340847110279324363773156225475789291597884623149061090604656383012099301024800058961870980567391438442045614991043740986207144982695872758033868808894920551431552166570266211337829369190147647639700783804712999818685453044507953105893986058717925030007408089338851020256028232355913190529986813618142323592882947505119412463334328735367405274793212256992503567139327151188245283800028365670685723212451078279662521773092544794877649029853716515029529809894982989868985457338870545658041641071640362348455924358888167340037147701325458980857719621159728066892005921428352768029289009535050371820186569662986044294874480578199162486840250053419525401695860147956316558783377305829317641362310484732885949909871268200918000940281496682895326734425053930690746506056070390701821696258833158418057191994867897092158256120387949267711715035023160640689538551656668145544438166402614989427875815119778704028454492843599076346520071780374119616982511860474555134319745564538409023140967518525674806633613918253478378395473497829627511920772136159740215900796203139626018026734261630437109773639800786795760874065523233894527342132620173117242337503564173513405245790201213462850302811455432158305925975545794168864227159393120280225470614260680258034411663855350931515864967779581051062023383983338153295385896348893615358826214264483456192260753433841040341006633316623733576195797681460348671665566438966418961522423632616702342582892273374605954703608830412443706505721319877066891016902280829387296713809084097835553569491393840589378665785839257580265206152477703242140980900690962100351840980136654257242721522771552922117138870138788580736606561897225460932773321717383445259678007542297859622035355154094987648313512356634041139782419971287605026228187071229280866309011875490085819937510069468656146384841619458615415272527306428295648470779579684134118506306510983081753274017186528852136959852628921181273788025511029737172829428291751942867756045318498379583188895335777150692846987356065428094248883518766176059989866590845363365682808119056984174817692748232281332560207124416406607256281217270032822149939157388244651107163220641898189774537680732043655879228067435619832211310046116959488028352072709513409433539300197162469728570317469891745672444222761497795036323378727933204434748879982694254498999700027764465955866913542181867537394074634834401145251975948882096186379924495644813844965898886780873700158748746805865165179392628697714121057022274028505367853611856176016988156943491575668419782415402716442815601665891503476501757175874110227942475654961828816553797605966743533294299339324653929460081419738140122808559909179482556753475825448089169366938615468197857469745257501264782771887224980820413216777576197895920063064064431272948619538752186615711505643672223681902541735767220075779821587696943142281958104660512627357651935694745978921929438742067658872081779168733206187853468582321764211275827019373295006838345037110172820238915595307968010641311787055050323646096263801123537406300753140847717407268103631253347465919196735063136105314434034851546890887865716485870952743990931796595713169476416093375751205184743411671992752803822740295988781552311250726645800521702149130833020105396178847809931377639796017207029887602173497917231563809764276768157051478489677143129109420816854675708354550168956784436670871856060398555280887839889509546758257893966861945999624808541058628547214675579523324151688478949493219514963027094361749541488011229669694752467936722431496939900676745762228484030500433954565420042471334328884175218867678010260775253269047373380906973872576457374034980587101673289126485770912497041472642286203803876828594896903659243895878144501981667838317608057845840540809541148988738132594399026763382323120013187969688059194414818301656499820636724444193220803399759231808710011630036871502043392809252981421865860539892338859990779379299372473411612634551816387893592160844968203368037960655684416321999232697656155662433871738026407771257491029010300720549171460595779386064911249734757322597377936461924625890934492397589219442296348686474363148179891319426658355084477654404526886181203827091874699294839845697962586273402469775005472130270768689380346538043915104523960000838880409283848321976232144619624780508725701531898120605729080836573405398599857841500703401738421986965836752474465020438722102674921045208538059557747482523950854016158496334815072569698007188726982557582642843491633149708677684785481107326063205553961215004317736772381835058730223773972638401508508252566849621001789823349035844098972257444300560202701219455307352439091801550265568761947482779662288756275126360937619199410511116623320316814986203435751231751009761491609860932478902956526151967133709925285787478523070876124382277814218430095779339167087742504370070029540456916207897372900571212674945315369321239279201332390987611346747348361488794983260563069208962720727417010961311548642788454479043909561668160173038308471886078280595952871546857695720163597595402867467292709560126901641403231228167086056632525373534724356928027933503859094281976729372671795917184792041345917892565848970828872945225639209924747575766724138751958463798072718275770722135344226228500764367239354472092451224265974708776142808827682504230112188347527836995711499432076592656571958655298640426267765721697311927942306864910380941082145054106217836849834112424163870117251197087056599436452416205034318513018938538193357332943848556402779478836509176844033925540374995475515450294986760096189677856860937421889543942727940548181923820384950926550628575703259022952607638510747015664753817371831949324646634308205137802377286588483460015358791440566985384852687954557268947374937782092247038105604760586303005546966054319178192293259831599111618663888752039475918014926238675279029667552545725284615998982724169640089527017040879060504823562921344874930127160677355195841890559007914211456562802935029950959244514930076420574261217714925661045300809826592055262735051580488262490636496963486889581796277344572666014918770697585359223334732724924497451399815487030812539921872704989739744764871676650357361165832609119572719702139884599534092097266846462029462077942244942786549807729420020193778079447143097922217938422379016743334999766985217123627275838667510554851223738600318834134755030893674967116546811197597365064614009409518049143740301471401939897863256331118167276222331143776628942258501170417271724739780975258817232692464268533545691590521649664256542850735849045114255637282684915163874721406571645498182159034521041098799066517905110152271675862623644458987098363723610748345359586673681416173183662617007906151453627229436384971674782220972753974739481463868554282673129870412932011718650332740242591318495550465944311800734447318322931797451943942044759166737993007715167743317271307121852937173407175536850008191021206016063259427427004467100452571731884755731451367630663624496285789793102583167333406022988639252029979923911066950951606485035722712972375855682673583160247313307599170804516283299429999324479257770097742436552021270550037429283562014186100670770655011483014653783952553845846535534728967244150232971299167731628384858191305529549171892795622342551875003412627145006130751929250307484380901160312207423786085217281671527171131467165994347193102781516969430393322225242959068514892800403540007205713946835065292740516802624501545560607694567730171197125095604817178890772226744946781738729456865883614366468342230207617605452630506478676672632483979653928776058593874467017370920269587127081272448528334861013612158769935382617351776319504659309761174249517765073765807050925123034992209194767914612819520286349281296682812395592169775160397380079966443938552231757558494031710991744235416899280150494067141341201100948807390293970942857824088322327426440035701160753966464130472566544966618995586082701142705443262196954674539128305598186312474003333321363864558233168760390852335591765875165074270160491569519397679850205909955566661999683750854443614746890179536735965609437763676436296649225265888598120029987068607420423047942731131457154868654364657722228151294875426403011837104487280118789482602531254934306840889799153243103934674728009489515729724160316335265438070515612104593758717774923201963112175008469357026355546963558699558781936665111283934804262220185214640444694153095622199376477037893088611149520221980108588545087600194827560604494081833674535633537718155913672071929226774725894670112244488665788466731185936775290953398085457126355778704965901238819444060639819942671085101266179500168670763015396745173669115382999301093168831800263211986428637014687990678340103741685204345716330460400840334338679629121831832746797867124350028846199501768499771837187553101193034311508260977498895961361224480825425875113240627266195668099301694093173400926775467166732671534921709974662638487505360292904423035847913737292740969728286880024124244081732019493123137457505649850859720607884942257824050608924392601229329393323785663206077225383886086813083784062047957271032610000417573077183987046900219037604873788702025503256151414476759561364705981154983554077931870653714824325743828892396290367583137017538372996572505761132498320004867014745879493918910653750462148625140227578212780028637726765942619544852528856020816635305028803322313869161087822831978416677263731564097830229191556959100523239184215949505734911134496478946523318853131323855342740884109764096163373259553535563732769333044915438331899569302153887950740433558925960029816962972695051114619373749531794223653773561572401072777154531229654128397076198608401631260082036649216093515894676451701579630784331863392521083636563505183324490572995574536635755264732289521422712039465838260633861628925913760093672750740399728368561510539791696424793782465379327664736804864965267308840651543882406064677799286548336245275185201151526297219774406152767762805171967022243145635101765864466585261438529862993655830656199655179736597940848818140776954575273270657530706591381338347424001277775996312990271726823466925511879782338138344186085825677676946273186936032299513532889560613368174218712345056364884863728292835486445669074970785607513510586015525241801477057218553996382831518428337854690757546946271218411139064887428905696796109449601076080536306253166621354796893626310324345785477315750939275563723859697851662540907302632565473213945998754652881651150351020591039491648077951581679707976899221794371129972426589897680336627938931973842341892884159965120298202861897657418088447338289559901901676564548330303010158965795999042298727979398974542860305830291563070438486681301009364265899962643982339370520432962474952946968245039796187643830584221092379210911666622904475853601499892741140422624880173961043618023282674942506394759842368620149687232459036645281893169892820834035361528712553187698862893827242942306601332955561113750264333404277732806950691849704653224717073397786117163659938796187427613165989238593998159524564244655291892137908167683596761225223919688072892367971977107411021255723454209397906561867664600769742690072430137662248957089908673868492840364260410805299203718935204754411852355232143848282963509232926232418687787551066414150026077822742949571529417454419766895530142042132914334880627920820287688662203908243631936941932423394159941105343768878989254462029409626290400704284191028236870748189639800338980061532506988327779602442742118469403479729781176363113659467125193942290428797913654072398054097180496298879265836677547239183822164754690104974867726302821459331394162233574892838188791447257108907713407891654208716245349498028729643505414907781496029384898695882283058034310705245138198292827829355492186523920767878240975226355513174130015616544531277691970173559307443995013234893602595936893834847415862781208184678512087474772622347691266970521189927109382368018745099651630858315682810002679512293428271221940706541185368192880793651809702216200564428212046804804182404495264070905500500525335822709135326672432874492024803361348168296241236919335468182643754447678685912740404509844377852305651962971697764403320972261906029049460079716400518105360891103423013598421706070198318159687638317362746715638515241028381405967882327165159188830593919339959088355361459317131593355645748575875046573063333093300657946747445302447896913021423501755854498645470464020953453809882090935985641894898074503454853390022916808261857463168700220600521289136844225763939515439168366589448241915646332561439445475072449724539697936566301168063509451562335532232472598651597480952640551652054127396862097298188815818961439927351755228276822135069231292319604937080168090108148066431609277363839897714547909542546000725755247181214400307041338432705362665798654331012449763136816450563537351025792409693269763440115072920708623435668854762915816483295016456061350265127760890213316481179191987040550118676200945617935352533380230847583329467873319969573676995731953258538083649356217879167343223969660604324219527748031238981407606573238339434950021426986511268644668970278520315147966608665850260391780549638482029338090265694201728758272724303318345102165681433492394317496563699259184349314153348280847353490455502432834343528844992731742444237524036948977825080856614106731560099742695776754560728251409297485035581033588294973177018276542334354350340992485433148522610096134573798530721752735932646566168733989208323796498723525702661622262468798969011553209774324151314584755557731878963421560426804312229248414035757160284567910067944063157091051658418425616529109795655928502161803920885556932321572524180449500165824083070103091072103210245326562693726502924550945055575583217285463466995943246504715260419826667709793546252925937598341419799192483510764189315273167827293573085883757492973685556304686256794390559191494584196889786395547687399169457004936586995713721428311371299829943408244544738733121373453134789508845464963408481174474361934369314114544243113789024288070178387742155888405554765181966716377649171699315485660217478195368136691259945685335301834575022452974939766577541990796748646367108618793140261178966771475076902444158323802460628709959146313295254815960009627835887098993099726808231820745158676541475722712235424571118083643435841462570340851632571436543427960454383515397440027446653057900490899085680297476867572996383229932395514189146230201169394120936010453510972358402232646154733952134856232018697413511727886536954405819605635517080777225900998822970268949168484307878614637684683571797040597960981124351638127670969953775285517434630199197161967708715538261865362174467946937360357553400253835290782388431249049290471323398966874004367471942849498523916193419422601616470388692586824247848688136230119300838067588876595327830315523149874918642396692980264525208312059214817063049826978609228582599293048535546277366655640642839742085405755074164826375429338780751749536980654865986302696214322387254190887001723598469056872100944798874188767040839041983930340309466868831742415103534540046570852134096082310740544852058418082608410393527639465377646875850013423791052712540398003836208319081274923297128233273214050049962215801463349591583828515156664304122432411760342092975506286258620765221920981081053471497833482999872039568162002330640726914020325355025694852861370233441225483607814431120993220217805988373405799489654552098439870324571525365759303035106387258757534109772836624831172479630129559371942365894085113852461890535503316712141163810626288076674696607318247245848497474777691266496013760957558366053270737487564226536431841589486327452783051669221455936631011566802381670635343627747149105709519130461159951091108843672650659706039863544880967080470740253104676430997410649230032495009496425928530119361436382929983909316604075253140949331212237745514820006155360622590325869306251393246930462354165116735874322752839919899427339084140116536227995725270905077857740735962946229196477251375520207920799966994007070471781495314204579454637028270167790879947470117617082996190818472085684541007789523281886092805821736251464238101032862931571352330119003546274333036706675172531578272226612485961295777247237514775360006082575513079447095004547645337427873696103847004627602946433286709254004885463001302197933749859050055999254643276948825515411315513506488707441798487537056758270569201187222895404930516243366391958593084002572167415049350971633774818020774618872351292336151841205028324349923912975938983471411776734273659336201497906713695162542192239952179157691549412686871050104834711701885658250954364444201702014901117233725203053886470755361595544221857403395942439572443676954496063790632179826114802855089270053277839413102992017037526056488850465208540877128596081565858548180848818386664686497678855015549137780415030991737639674968964458541004204125960544945740518939921849269197080614285640511169469613951195365414546477485100379329241942803538430589240127572898793643493719019871107512326525833849631954555153787987643137468024756457225748817495437288689448406277320424184843141923228346111700230750946668835956910445127518383544688824016769039092258192797887151651943032223279530033489546193277997807916926764454970033661211318052019093594169661239199019598948794684261049017427480079832052657217975130373397953094449258763841579792713326094519013835647181153032121803997188488764284521206931451946566338888605982618090654811218319440930445316560195248572647862157775556527342030119135413218471853468807888023643932236477948572586739343451103044235252971250372295568486895091851316148920117515671524969533602731123282396869725755397064226206859921103985294392609694749527332108496737971314363807447913882840516830309885132737842901729114039734576428187024996315070413656825189862110645078250689760065751321050249350661481051236930494084579152020485274527814768959552020796529313448010184864671652037501679719554534897019579073781958766650494832133934483230800960277226288461983618486972758234078422016358970671230516733004521126604428448101215411756537744984781242866734567297636582878895241599693395812613708848722447663495750981499844051936753169689107334120687424652378539339037954217565821648406922558084159101299103317278497333393457618253657948304379972987399911848529626948813405582650756628172595709804861434802307574427897379053366520655017581282331443683136278115651126404338606293057151237194294176751625956720663477464357548103173873826423221567743131493454003033014115228098935869053714510286683115632390363491710456058845859745778901351077925871886508926504370110160218195354817930484550893664873575561360415071950689832581210361684628745227053304394286267613449077017334152974666776365316032212961845506936645817282149775488931199913820598334514591403521046912866878820796346165845667908254247657041845213398489315169613733757047355947909083585778990705664906641454683459519689856163363688626753592256604783919830890825356179355347766592112054338803767641856399384255280200392844848728573463430495480860778464915189489220961337785668287584890779257322858248706854212008386752754125273182913449243302145642305495392707071330120053151533674506922828208835394652664709418623280735492215406475475748056499547578781676329252301104463728680411636214143925083987408672501480271714031702378072416212792341397590504290954132795482225024841112470133834524116522641944310355901858765729468345878917116750304576270081197098706831334333598704317659211412068272932388660050135419295911682713643790982038981689858529886075645853824378329118721028245551754373174661994873762208214784719447233527627940510355334660279975907630888564422293469384248913867707908356937578187796649625697511726087705192049160988688003790794614930254249499852107623772989812563126188698359577889261588955618799647669403511296547428257541568732743695162341048984357208614789441520611467824104157181777296069914520371741752083283945219522545023832338277041046738895334927369680017184635196244631299495491436577131498648090009477713520017426717999122375846566511313438375520295650818347709760697428380643567268836090863015244632437891473462640095226170317068633291506747529438302594786193994784765041745254857382412290379735778741970418375053310765694770848499903120268497784947979072397297873626730454903778073719714454158124642308927378003905121943966028115749341920293742043207271912701309092886713846479084984405988374690802032619439750134794736468999044776802254447744049678512322560971909165316962157759802067859833308003947474055504836316222973113430695396621417379875612141509645385230170927312287719714478210394704371092060065322639994706658232497196864185883285895319174669359915944122924872357040489003287913544146043473932969183494543927152269601081653600447980398804543694759020606872640862751448135611821476747413313698040975223164672193693070065663790604944786632567112312223661413817570365420321988069370448778835666952379015204093213639579556210039626587599107925936185722060417932661615101276197863026904478724906127579704688442868604332548663529173712068125119508890179270855537883458505983029231918494747472764394957487728628905193341042045545799438063495809943677226805571325511504312973172763384642456024329335345400578561637745455387047398877629772507766279157523682062168130523226790517552062618264047411066704581600896151546297139758701257551736296395354951035667807091770255527011105294892831520615782278610117020939677522500253743235461942462217062899383031376823410023762319890253556306715194490725560715579666941884686185944120290069994987898735674565873747279717394399820644734959670740114958626967366321023692103205162706447360232831712769217091622023546314514838628821552523914298182062641772436676351287266306671353199002779033082765791145342706845819976514076936180796135472798517275544747391051529421653756203275826321546348818841654810629748436583538926364859414558103726473620659395661882595567786510954213189003026815296789139310789722759250225162265698663893341463182953446662234601808066914749953626245070660165365433228182895386802275277986083740414527153120597851440526513488419059608826604353561187041462669540211020731332051069571970147387367604458439886998073974317038371174083293539561362865290948810523256285155972508945963434706954120598038113800567543883472280719871099824918589781324262265867296626147560304258393350655907806771146653990422980596231293178074246160167165921590537778826171879813422318035284668931543734347521865892008289029280440405960306349465998753712690777934718303769734996452763320624137084139331224776951227638979658739800520627810110699243238426130802063281205201555006468223817796537121532598863690118393751094596568805214887784989487056648882503605214888545735752422568459022531938217389938985282323641234024831898421253644409523829580406092400245486648945289264536927261789861855554209547237728205695112669606185959113208186512451018707861121942843689098487992669285489638691523955957589133500974194064423783543851804002778426947893255129643608637986340946809650074545838949136776395215357098355694537213183510511711803157600398884912569934068206829881759679436790311972750484165625445315389084957627376573645267628942899012156834708310117487618523157243867654144687328801489254784369884899453138012650641492912958417536587033237782208093096497690157449840981975410415370327762724703932326826022585750896247685557221457909479734071780823729775506428520335897745421006518598692822592004699494312947867991142625847467320729095601339591271375481407380434430119587116185909747484929179431629235411666894783537415086023138510959999304597029006261816137604833812165428409340967280993895553930366717466748970016361599749520216987736629717030818962339559447056385946223121997835412175928849622056289117501110814446104087078569865416504337135504308797160304253027741737444244631917505532857470213063857440148639390239619680023774346959080149663662314010734915816163143659022471975492144212098234940692881789951166269115294357937202530352732568416487288351751227603304648941598290540151177576317477747441404609967736733903715619927869898162439610032183018219890524225369628660438434355804406084339429996682853948393781335002885881393469966047465433296292033229422130286156239240681098811449486688969877363333464741353500471843874266695902034452629136746701440332545011950369134126104204990544885153132305340529189543191269604563951058485369996511148726467409406931666533765237116417719246061035849040533811434152543245162711604638258524549260466343754996665921293032114990228685817123600839478988481225702546667022413813563898313456207583058045205331976573768270266417339042307143043142906048089875153365772642957777344574326009881301874898765940628259124877012305144861317621798169218355639734692418002249250544601906361882468258195742438090457623145666426061482481530891001084905243051414356116776009670691947169126660028589949188729151944997207454346607563775064419306389202369941119097675064730396917102257744729018206352209989088458763816644082209172249541916973264644368549982577850277248502742898851433469442845536910246940193392099557646153022234485791906449765553722951778743757257294613435335574850553763073445234726310714295071023893197900019309857632908772954223056635527227757667552256927273882252436512813619154877059929977833715907980071106638380380417115444453147607093523210950704227189284021699356323177098151917096191093043472198591166017525989780501562603972563459379256652039367458377031143399252804036129633874120521665309767778298664621139500638620543873031461935827068083945196486138396481224863061012048089012049936768747789446937882993628278175325167035544371980351921438653174366098557894994139238950911953845139326082400131891251415957141421556547888434549338562619769037275901853923164780976648599016720147401068184698834933406313401597633608384675042440313294319400918428756201514416856765957697293743503905080112715340995685014892470099271466495931924014695280427317060313975583538471376880944304664583659469079362031366962367385353012392565061033441979830274387335959537989160299069131812234934267368558482278891843268512875878146152731799428689693497158615806127196835028602309131916450758504305522079412938844819587772172484176257719220418632416681904201063508780968807786234897401009736859332259809736124294173083632656387292668571535354282488924904997669885344199673034315924126773577186028009854301327271185322726548359523307691909696411482412028269952851252445563846065938923060086170596807888405365561286354623779374391422217086948223242184749070068024567595064640243986009925395022584042467110479434877046622084055966650396723341381684837968910661651284729027524758704103409448080404398641302132911826258003753575222698053383609005702624884240325746098803858356193904821603771980210650698004693480748175524032891893928204040484101814913791705729572206134310627606761699671881040761213704529099227863755315757784546019863020792188333818598964817128235106837162232129789382756666219358149018136840630374498550285914637123094316083100744601127130845064996042381735853468008521860871519991829357928198160274527758998564575945238484191844228490290335127166965956239084886274618261318620434680370765452403951502639648382284433750139228596758057530129480363379424023771314460299100907019560505137251440669671180842359650458138228043962392182625776886634025265177880170226765805429916413445207979916715007785449525935727788704795885672098733240297760135078225751914632699746056432208093156862796907028493596203183466241629701901735080497997663319552938159430061333998872819098105472141198756248162208981850946353600617861121480253895501851734910601431629003999622852262428083489623546365960387693141643828815067508574294252649160284630157897382307052214274371940238626270873240734465640578589309001749197039949004257246663496292129584793978281321453075786795530358016455530499036155826622923257480476316970503102217359139300471790818342223459426111636883964986958959467547545257605892344705594604113738108122467423530533027357564413583068824793084680650372898236065320017649364037280462652519543713741267401259777534675214149674985670809926979993458396027568450795375007088879250537585774172511613846953029534019756043127965367627354867270147571726838021746503860223688423517724001095734541609759900059697350064875236954949015111483059332258987171879340303996611154647827651114328656478293668616408339277746955367044818080918040959402643637700941154758778025314713546356546458407185914716671021730140300917192417237992274975635946328567832824931082193191516213455252514560191400995469989574243850738095715214691040929612061165530648166902273660635635219139401064051889292573727030085858148080098199976008058279685662580296278993030008122340189760380756471876911028291526101648038026116166355191221709671386501470258538716438923640922078381599648263548114007598190877144064836798379629440726508376213887267827674743449776296106384964809134097062684498377262119062201321803107331997795472644292938043203269105462710263483872088863225805603852818461981122890081290541105299503546858261604422346840179463140150523178538146843493623307972803644297107180677698793592427094105519849132844611193076665829813752261588302627756699571341410218464588996257018218931010634942359860443367375240876158597860148398280013593977517599566515469683733630821461297140146005331117435537771392468030082050280065197917392490135609643293510064674385771923533292908938404845606943233142136960463687275927037349210137128660384000442946184392196862452183131408778997022645786983643947058210609115879699744281949714013924244478360125752466632812005213263948815547556773222082631454691225693108136867617865619388810052156858927827403869824843270255332382473347615252809743719733021569616648223527664684310641919403089256130415626313857556199911772056854981266473529017507980927360928132389705260909264921963675496766336342649557705858525083208156064113955132556343770314055654692901518597784621245451468870030482304009760065323820553405728725947994199257856945978272041361687939556227061369924827074312290058184867134429096600989004142807682604419764135882519075180035378612032037094842134524579413696134812701978790373568664197094460455480561894658773955273376866398952746528656914967863044452820805711234197768921545462016673693895130637041470962507990539858770142926430047303948291432048793678042649020373496558690142216442148122073228839631734438089057264841881408689980874540088699114425306275741246286495508943925461375755530541250805416759440161492657441548763792216353429848349480043976898008106231325756482710317519829755864897810755505321032442436367063736873234323907714812517969172350875151339139931925028450002336228052783887303006792438048814880184522618321400920621318976349929145343065777234070299500975562176508734933386964993231692338041751422065772048875927799720193993981069127477558548809816082998458720888132228113938825943681863421965410369364925604576277613129881288426071379173846247417292186526802351989974192920621110151640827705841392890097241725568924765790697579442831297849270539287801832557603802595338292806036641381476296742980579079533735830549628346785237043685879801614633632448722237884592019145590289793912226047624093271421380261747276622987904607527727948902624330462949366570019495936994908804971894222003971707527209462732880882916246180862942784894249540117907895254106112486867679641771729938911495686465908907603685238616486006685544964333403555562750584182449038821388023805984172445060826434795318825891366955818538809887663800655418980057795403389747368095362217467428343570239569052571441228609965834552323431743318918314676238028942130982265536267044681791442337155788892969889672094136628483819700041045523375325188670727318967085021267217871769825214877761492701412435111653030715853460950392430472139022417807623452181986055040128230206145801268758727373681329820804472075944662683294113230160091729726638690633603740507046183161104630240412116807963608257187191598178334279724195744802724785042220999528862437839482668072799175427709029753895305887222490873144993806402232056575877682271808426448741250306040445009858408246887520852975101374784767582847013273097694108198575090299497232937958743479738401650881049541716814403211144547034014814124125243783938592717842282217419128431497843258071356721956034742154378965443026494307299623499270847031796665807509669137098749534752616584943647783220061442611937056515365009049248043327127943815511171836348061561817929369509223228934846046113817992608810829424845727369771492402571788339969569173423898630556479977811861988242466808567629614439446962770115408881744308350680084780940798373555095121553513187965431140125524564687388444843546425065359886507680892201141290442534050828321715849773491844515392406180894449076845401273432017132642298110006181413758949755901220341708640333813565826423968675069321372922079945273398954631598366225254357506390005138994897184081791251275354017512537106817052705090419391724330741470199463785341817658119140587819870815550753584548823016082879732793352340935769948270713712293406553147110437403600383631141744588601959263952209229088826809257534146159190353811807889733398031424667516410707075141027831420155189418358308209468463347530566532155462874665218968218425883409460318450766082014438680173547561553317816678627167184563548644873938394611926163557014231869320585633420846914742454106508477946135969932332185664788719119441256530566564187043014891898200276081192599747134173578380524220536023926950214803981194090320734177025210542279820883245887751480089560509185423716744155209795832534903718947730800898412530162015627732506212519260924882890683863112923713436591535681522086036418147681487750411989675939714747039544260194056819014248101597555405357382800431472763009197821172306607589642976083965970251188506439876961042191572397508240870905969998950233585106928516289514320923877836038554363669888770755542634716647827089647876319857602068870756448139931521096278999482461503507972562412458305819554014260686421580854660637040904538840538254094981155856495439674188332900106916438926897280044710533545429391160057867681412637731222581990864634381309422754985583413469261624840464660208385734910732639373611590510403917849739241975746849856061172090643761230820948824954095316343607388785269486938924273052285050648099811197532640686190908161757538839448756731775032896173116167601702231694715562177658718975688380018940100068574771965673940653707035370242447018343194970800162768456233365275891741655155131016913596532246847906092528766226029420269446254892570477827324521750245416043758545794935976271701797590790063790443764065244902154925528766924424703544187279673138032869246461044719594745602097254857238449873641076699690063305631098905301061458390440646462985719818561699871436051069765703085209777939051166839104186965395617025252963763708791333520248890237465396541897795456454731694025848270802085186459277267991218379943120881192950004808064931320566684640404221910248590327856261521245029600794194213183378701897270598621428966958781018985385697630022413260551026084237043379307886761434464570704796156489923931852438586678165972825103871218531973862972391182081677181029603389309674795799230706205380604078103685198179465847162442651346207054257988460548691211267777484895944800551691350010894396323871602400528483889664810303732452076976788123241978866664418702877877575572379976574812979807478724709734375950719117693757856926055972163330344829260776942011577956120131202044081074739891829529480777576296756321289656990140554633094481504677102564749687907073371008863835699229076077246044516116445043751691788616841784719975410041140697518536857056410189062818588007404042339404067734798055933543604236282109009647841731734383782242549833760014082468073704009289259602181434889996730517378277078511316090531564083577145142298779694937448395035085512837752817487241993399985474563041771235748544897223351442107138667688927550623459669255990148567988737085898958609331944619248643115095048447230993771048243361279002995780509325493385058500909592163107567138091682957216829622532350971367410274028047677260823856746851025151023618011990390732853204834020301690338125186598279314779006501274428014386331435741006694308738512128901190931683246069039367602043497357015425443221794825939025744511303249228028316490419980155533749806446291105435911590423543668686459511462333679261613763796963730209682612052794254569153405058478520944141375385641591292735923445226121233745900512124809875290573651501884172933535091032854847831419482839282910381013888273276473683126846041486158908921872140212556427360873019662477272939894992472270241939861010687578276838931249813888753968902718667301509032836124821466378213150384783780207418843654388969484090120003578949144989423142073300110358137689772694434895022877034771607819217018686650560050931015316861679061360085483746032621786817651196132577624997934622074302188631028550153249092851517988859368621074276770925347466394967614712463363710014778443798262509119656191274675286107778192506061302472560287267736035323534851971388744580152812135351461504045591895473852466862427646009342691657558458449632638155482138423477659219843446709112382380282631475184733359675728295794668527554886631100684112112634329239131267916089209226157970729913567213231304922187029162896983497229053847952936190642065619926839942659167082259979377089432345520250367386543300944020523877950947555126802446873549597672797222384523982369838336310397562282694969386949932541382562911849765017074641542083198346391897252890734472468898889867435329923131527698492459985329633905137747702486011992818989311865789537375271260603361264822122496765561002830770561411412295811742908307171031149441479732913190822233005130164723561969234503450910003834151028377954486912001542375178757598130728547288573475384065883895090962358502433297225878271303371353306026925914046487746576960714244865284389180488419093921505886621802178285021695529427978470679762363479380716294091901596796034386274407532654233807381245215441101814950906666406295345406385147754109395334629179857883061851572512102996354855361740799992362292206818497229563411316416091149881788176978641058547099206483170598307982589589561336363722289873966994930206532169033551892593904269421378795675747056981399786147298493160427761234616940661029919467516266321328776662793118695705057919546455257058054226779923892623466298359338672651933491145936240217716100129769723362383273759582229456861347495137220324598487980662650052802291578860296520161551500413323786619336128811456601945329907068345942486566900071382805656377879422277514522972234941972113496926895721314670000604294202836271359315366085765669625887418759135985414014791713760339976936023736721990252211622946542895653014045404209911271817180833701944280370244299827605976827712047279215180167213932454858216054828383376967260827935567580872087574327113109731059568783646563708940348610255795531924303491304930935606420490398534232889247061837511092496830534654265959659447085463057446925606551790739357826070031079667481155726801000066881488342721872527867398535735289207930999369567411163768870116864168940462767786894195440178721369504922135340327067130687967663499424209777842602448880515046788386261399687181856657658241991543382475103599123936821691960580500037645361122394158260622464814707316798966565722542553764294175777491053356201370106403965965137039764358329960301410353225833325990591924412978125101985566185278972817002303504919516846675538093242683149873249000762267573555154995382802548752480026320916226994497438734032023773670246941462565023126402408290689789311965233958268298683683368448620405059197798905669177153844005099820542703238039977134646132376174919302856748085227908626936354144753473064327679223237849290991555783579304214842351670165124982958502813523502098943192225335916145858963523652893269798261234561574572832529596211647039151456150866078713292392440195222425903484738699512755106734571842407430722017513267070043039501168671028745301020608846984125042974820698147470683962939539480289713484330425445832337775426798480465993072810673380078821324801606251136753255548986171134335686909756843530951750474870815669514275999151743490883161790733932864108181541359742039605341290776934557833419209901005578593862431345921865306866159641408183736531380080972463629207622714415989054916877129649782448578850927036469991313121532863681320671323255510363335383380564660818424238198104878951118553872547360458187633273566346181633120634549532597071594953169596196538930043396636584276263992189466046325690923609620205573801421374863219588122459187732837456117605792560310198058531422904929667769799655508280249212865252950728464447593161863791859268949258377116947236321685741054255600700509493488376853854003758226287192426818841125092676809381702810145328862185775289381337693462913337784333789290356174530493108032660291666093020092893347453150655876436107311625940535098074088416712016611895547825055738431892230331355907790478875200567551655055528874560696150310907547426745246306757917004295485778081956793810530787292687445862082369801938067613714992397111501447457704737490738664295905849955991393720722142983951799344974111924145870360484891084093311376033205983466517969910655448332567680110166621467875760825465170376033877547185775453475961589899828401272585462883650217952466953169434593106514525707446703467106786940428081099585916562014607123637461534486197456094778118788666206119093792768589755837124289331835749180040243924435315335855286860174199483864393206710699050128663050285335115715107341780856980710729919474899233687327060349485626023730481620801406088452892821250311415161993329969187568875612904019325730224516195644209771706433688000780202588311607469519760671703883203706688124573888382721486324307214972079386811495337315407008543977760757546645313900467924594372198931023768680624891567633247350037199089641823616314639740505470599302906191472240077512622196496911156877937591035148238768271309036679275156558181421985003005424116923557494736221874446436374662404903965543838481538412849449086761955392756210608500141231677238082076668833149053748684129231775964753994446936856470746488654904915648384749150523058842139795864307247866903199915955856725515980528116203838986341288079479546021320586382127061649629801919330269402697933925077592678006604976349602551614190485885038438059202542734785089259207595209109102317005014085850034001067054517122240736311241243474560169501606468174172875808438369555825386391921623883173988272484287429152435803124900491752164332245955099715541453129906259473488991577192100452297573848584879938024486549947340526601321846638448021931131690260251445475455193300765155917480476644676613013845088869173154484481626914364532007608793421474161958769169189912913008051116182044339078594925711054411007967810521843630777597635137354020101525207417297621425558818751446556797621671337245630030137447065426707352750723149788684307246138027326168361925318333964284755310989807343193830031419328019152955618871848287374918991323537853395752255135593942285163426458255917942311828353092494371352511097392626563945859885985428500986783547113765490346161210319573798756614305521437066273152541612689758069465560514281664274015532633212564014415542754666089472503218262850475078860023731806037814041330997007661268134839254928081246089006012342104801797272918325339650495577406711712648649010911208048180442411340333410396014435428220939719988048702627971093751174692421571554958324716495570413474119002212699107500665965855261261281568250333498580139941573393572250817720133838129920148429261915455273202253072034674085877318339062012474119739626691050647742142808965633740995694643129856572098108483308220229734938609240653248387298926133490812994408382309435207732673557913638566372501461826497386396705169957263445649657315472413309344366799848649866774225556182134973869733380381764604704252243969198755824834255747422638409215820892709690627953958756196427252487054936357864224460561366053210442413808611296229692565898174969624270109293937828040283822985550382748173837167612248679427128843562662724224964082231166523048943625340167416455422749676150033447853452559050192762510323332079329436713818845240293931771507941983588288178864511258014923154053213754201471136244170221463379974517641864050612199060839059734267724245794616670815076818303313771145494975668187076093261257480674244565647581949897171003956239727173829027229552067915104932081606288530837851355001685989119656691502234011328774425190599837129630160348407666474510337498135142772379678251355487036380291603378237628362423464949085194806267624394138134730649193884082007445649994796870011905206253077102946775270463522075643043005464971633070455780544945451499016788545215371617144208404448485405593114814602096893471882522099059311023516684851912759312865872330234712180146003922579676469811311165417288663923644760044665198273048164480602524498023495272735295860767283965365942939015891188205061830207249190924929920916959428879796862056706661067302504442697394010787448718882383645388611211789921331584414595976187627620651922313449103067466331736375553104658794990493785210247475618479409570541553289206438675205694294496997701113445559918599490941283848988208696442731006704205612606533353923515233168466077916009819404822683559993440264223128651627213853842119628380135328367534044308329590890837364979370003991923088745852093033319002030098880974516161650358989272426046780688223593634048047931467519341527733579107699395286050449748965306006215956081500607276239131602608895156717643555223388142364868787462137751290898558464025688000735917583915080102650379125971866972555782120771150724786684118650884213263206021857492042032929535950369207121678545762315790317070076269892246980242162850895539801128841239128857421229458254170622033057281546444551388174061134807094971555675586792542498304193171665021666401097477806124202636808705421058733051273763864064158498939479011961845600783761533020752270141805989814007156716321178282694612342965395280956270700061045103605469045409734201664030095199733722034656722541633899697366621240756283893926997677449897428093741376911254275514177363011782602640956253783570463658342112852217236206681430791475491777372004855793218557307331141050863991394738404549308170609368276468812514115674612163066929226066288393255118793785920628667678037556862545732748856584581985654043554857093346754505919568997189167982371248804495219346236419908985439650837145060058785177593861866190059874161622778088726794019775594746047185304834299603649810023426391692508852078134017301828182440105006399325609189679148442700307691444283164362042619751083807208106090416336581195754149513759779064981989054242536582804506052011796632459259975674634832740547985560104564407785379161206985109674600673326794472570960102020792727953953240424908086823564754664237394722551474244888783365922869764040479799748189580993199715840403927186027234005473142089450269971620038121685287057710005400403813822674922927580758625470179988332905824487012777313205162793762090126353693536611117226932822816323373223150502918371785634046106452397421461739099742096192316636120046509061736197658648847274407268609235138249239698407973701328667504385545412564682641514892630409541929898172380511074823903247682846957090578781813344236405930486641117963343866511753512369274718821898456509298019389321211899792505029530367322739668831601357609090411925398063735308949576235258330374370983020243649156772531082671649620259700051398133079630136883285759672499515153987467133273606643986448677497556533645671012437637046698774245389800017661845811141645999218429284396515792149671944321262389971491418509095524901852435428950150865475953618736029973722722708719245668810051449238873559598022417007288079741887053061965322782761289767140135393076706433212527869234729151950675016849101662389673006168917793019393476466288981840080194400007303458673455314542328779236409132677602851504522884359965073337062327843743731883970590502818908978237073830459283170455914272576382073431154796862260518113211165724063935425073162201950787812297009617002880213506469794786333574366203920469664394443147660168183520593540220077678211065727126658851176484824430650990564811198908338285871024645201841466252297951133338890181739047796356381775093812117056789607081921100284835819119154258870000116930368339369892306496314405688677316851815680534381715233270241445053099158311135891473109329939312956927280043316808143431300795589650773713667935665072058994303228125650662709839256433394679977130725874471020756407556044111717625133661074548866238140936243207314545406575889850857532860413657399872988851464136656401866827157902764396230064556553459749725095676791066977072714818538743612160243263435206073504800971384854019510860894721819068372025299097099902140855923896481341594701184603400791832828636068851690903435563581445075444463625105378267004499608816475635837794913224496928122755527202994587529612707678939507986456223685503556531581699661836584584496852216677479580936181045752231458917025698886113105109496130846921647126181791040186723222850036796985583257568087029170853421613581746866356987669411516065268120680569230010188447662552558646019543319926634512000868015105472154607101857132759373546699590137284098961417288194461783593389175549825991648192501084964995963106532834100711739142902087316785603476438435485505684088890003677215611267734993541995837183339439105221330698652398361681295497191870534661259676852231710703881874566825961391906983332553653708797215129743104655194916900571999752433218367257065226744413820525544485085984331848824375276960423111862374522760826369886330264522906003709140518400480303994725188802352663468592369130728913830700211334254658296855304375303652116816907478225560311256602171237068518410244085267940457096263094329671282558778624119555604555202511990576019657989781703471461639466038223218904908986268392466907039831609571450732200008989099162140054060030516007488034825082778595243855042061663860134139815866531626524323269894460293188648567434758421976237472454226951348182745591301200690623606305528798737377730766040944803121677043281566885507273979933953383124394109053926288874126135819151201324388507638048734191662208581674809287240592270166165451912829984298252309936394983596666252868264572475761852364396071936880124566711350355622060851443406434936875854504732274350264862042939996938563598889027126332104638789096811270251890632599286008937795571165550359086065900552201016543085566164041409771665271610774586569838967700625306061710467317787157453914368920926453123819181890487112839959725031171850665658099120866209792315758994162997366418180455771761374323133788937327511355015666869158247416036058222455112835021120149931067925470088847619937959700402695613432730646120052030237959124829771505500827210508501506541554155821941697775741918797829175290740305226576532459562307182818402837246041374561793110689851401746206453477292852095566103916420434993431318485855772521377840076620660890113566208492334885373744202484414660292880850735455179724560407987064034174341619816922768446731363800313310514897676136509066840748652863272531828646327454793530381703608430490898247841226199649253943718967583392046151369549460805793645358658045017290837626108558091234505023729606962822881882922510057133785770884296762555480360344808806288260115867579887717944885507340656087460500162758836148500120421136569147952103125696772480016541949163414730527229252118936435236824281300464975351465949817716868719363003236441702190342273448285057469533722908663217967455157208992371740655631449696520055675668834657245586775655949060078659316675431161477114827277126952093353326050880832858811376514594136170788894869666414086475085615253535774129629613773616465935243206805695717026492815639521094806941057617864120507324861405099304351970414247619455867427141830348168775586678866997889241265934151887537082348939835386625454204993519707300958798524370236407988270906835618937193212943265218614674476004417884706874897140115407545364068791853764410956530110743108044583648879030072658776762495141954288094278823210785074221437424611385458400848284318468505093039229098645587880143167743068556181947497186806090240033896200092581979293571389688563410747680355205983992981868667023852811221858651361907746391936528256628163594658500656183036841893114173510872387583179502763386380115137214600631097278297433938340689819822033784393888212529649787362011227464502223409591577554160434290604389744674950181314486315998990120143678302094145269882608041455399487097301118270152110629098544206612797176891197102464284878984345253902733374996207782315415812471521965017619659267111711161739155240339390457481132959022224108329916689580507359397144306744478660217909046907071374848401834958674875057178780638395082598870590073899195908345045043181795539836038310785609011555429829312573926704934032713774804153385632256421705955869756434211241103810342970120724147459760038868123092994540547265478335182934292643991988493364763610311181972065440096632415130074912304014386656302128697299055005973790679988448072216215419136564632793906659902605533338987263600650851818326901006910408440987655991416522682126508191657341625965218732792782930917660396961707323140154169827699977875123395781552573343319248803955053897309000498196803536829915065562020547520294584704166290783281951655404627355381009936603738844840582312126027511254982802438513397048445535874389714041388034219682132714536822702322775803412220648937507242154468919883374383982567516512266403329143308741161020298059991316722828401141250002085127535984521832326470596663799227648801448635361519787913882229188780487548017217205059190770899363549951341358162500052566790089292816323025388553828402273661785366903366577653777419691172017046947598628197805828166496803937853635290280277956851730386136607693343785355458351117896687774713416128453710187324193016696154752752014017800213006555255575031019339024511925576304359277105694558674923559823835576514699363569382893507028122666134716768869262426199597467223974285013983975920749139312863468677065721737721954967059240786331812384412373649120207053988682927356204763205296068831928728391633100429974574124503656916586785651555919144192667686429697043872677636003973820184024906428945003347113474750224983306231437872244255247873610667156001361778479885252068427295936682443600381965537154767373536944863243518079514299861358712132498079007381460440786121030616540452285295912235390156022485582189544653116745690982438921831545431016641944206886333086841805989376097503047404188978782758513639046685120220305851991744507515754520812036898809173135016697204771521238361823067911130421093095012823054613936095945582115257347915725863667482880285119255870872116696100971016598258933005399901332519650659287240167682372442610415276744298405730766991483042419224236253384554172066732969205129751785838996529864100652497058146241240729433557675595223605954204336459306139769651510568213345148226573048750564538147814741263916922723641613078176026860770142941699271900031283080995633192524026910032229148575885117808806551759460647322687016718721731765174414105426242762100268265549865216582575629615377711992368982573090012742608387912625390674417052628068237947644208857355693224644981902843865443838567301887350312643992371834040292911454551007110059772305301444802347202498226844628555599410236444143901435945504687448387950824865004683253863402599672660822975882858309298073750214547584955657405751604843904757394356074587474897832491078992549071206525667772610021624164099459878052541956712454878058022707299844822488436390799348052483204388215237376785540230528766152955073607292473225004022972862063587553745877880687559901841071882402144329623608345960431385142669256182687371445653330445342008813493294911400862052369900351193452388152472685359830100157354926824768044831563189381924258101227110513248198350512160107378947486109210038129704829814545851606503387434555084895655946850729951671225499900280961912358905140408838098089813264701894914022473279612218279068864358856151441876150617455160317687466787976081531755323569318697023867023472024303904027507270002649780561601242461166742002305590898985256835003730074819097086629125952804743469635391556573254895529726986076864195413696554216800969095802698510926575947043697935162887262678252234756047786766643947606072511649430524930929060529715166076842690160838989203332116107765623837715781460413244718823455239835069444297269704869866550557698694966972719179019452802878914492927757035284520173614465935764422551278547532315918994802782037565558587494165657105232422003070372839060218818199273601314452672061506887977592726099891337317290692744375144508353843861749893723596770333740613875067843498238076753096939882038718075041345212616935530768823149978160136031289281006642190441924308628947505177050470999791513212933982921833505064283042830610252835487899841420041461223694029984899171149897712518071007638962702686081478231355628418525385428778504857268238322150670910486953577960003720884094906240620432264560799457154081644070798583402764327594919007710838191463780771695746646637186459981471867943171447362651034642811212790587606187323395326975833440242141931995320763747439648562386506114018760682632246896781330730249557178744319049796915698913606612198247981498692858145603597423975841585731468261472291834784235645435280812179131082901425695082152130068986149608251474513591870233146682152707363735116280660220155849238034046963284062149095290660534600228536674899439866153296261837735544729563656503976198120142862965451918294707441337711586296146227725867232437355680668347353600520663565706965775330827720437693521148179676906771169849522438956785546510011562433946538243434259908708635649247449896313685804557036368470786624585538720348782420077229664098011314900875154827991328454627192280924065899838594514282986755676527526703032148205211440426990484300596924184876744629899681000351450814603172891892847393199433369814068174773908067875194054108439031485792799900673050795966634387547025650752677160446067304417508283844684452280345222092044798633452639345245967476074620641075127753351780163685540256710636351908843832006152935621790030180844514680229764620924692513892814846285142460104529334436848829923741540566344053859008215151656163144226892136426549295250270379766595844609445338955679451676876366096514092763700673141303429726365693050090565173077047720906267578374411865699498097118145808635817018072184222344520258899031652013233879660523612850720703775668913884695540167112026584904176711372082559575076867244264707684491829677080911376940199001166006045154289298985804776859764298583377191065072334324941151342099474872457640748439485996836343678376172173093258715197084961215555947589091092707565188894946642311232873472059532080192431195835826427539324768786496575837872478468450368629006275923682495901072221501236898940292590535229188928002087871006713495878814156190108519091151768737630929453093438491174511742430964554638724558457684129013599578367522427286015970748782560252791068106201793644246931463387392772564401728628194662917864926732227212671526246613391763377308578789489664415614551936608391042445678353619250765375830691064513779494477410063531909587905516511412043037227254859366846658006347322786694421488537539675693411445749683285724299524507746314868078264262696231966452428877008081359371208392759878689617175433991185825897502119376335008149836862974438091319195494549094227008938541740391236454677267831812459976705238675949784510599266186645060689833201007808326182022656185358688060014257893472533329807238952022325273353774777431928020612927346500660638846946782704621469566377597425350463310222651012879352210643705777757409349609508373734651436988712296009115605303486038459693352495808487671340724146285129847526925862077389105665047855605739541362497586814640278903137580407038028024613285642647885197838940426188446259622708623871523607824597181566857852559509221775027754914289445593872288887168253891039689612446927209961522208773337025806064260623064729523562959002377913489587739416178860451027664754981026296824708629569084115265712362095711067606125839850309140128483482449402882107545132894610578422194448181317544130025385234254360971326143476401770729594384740737395904954883568163935779121858568356280827465545878030401170815770354311160069405944458240317366496554858638279895459409692676873283979885080887195553022288275466712963680091019579460490828212565068354135126379573818865967747372897646582802259149829409109500028426955854787203651091048704806663231714908728912651395310833156529428705781544823142592567730777686938208901369932414706745362285695495944290008031151842865585244811436030481102947137568458655053667589297173479589048225370246118764365927089741498423667452563436084834205149947059188358141704800450623071979413694410121464968487907204869540034331195351076104666926565867230968274585777422034452117166133797695299668591738493560183149636989237634061070053898040638158615986228557696411397567285369720952133825013878698060021406809028387082536871519838842445782081918053569459145693974532189870658347293602173053294985234242460292503980356986468496342781663227948142276587714173041719226121225008585244570045870850370983178691019094498784088268683976091431902707230851878836075606198783453524273853485182782645680208610511885959463723844203016022348381171900937565178177624556427482927760501690351086177194707016153942436867875524161265421486968488068061214346639148076711956594347207159730376853893461810682599282515693009873431600092856941993111512507582856616653949678356039507403131041755130752244080339107305407401122218978273060958753255988268613361808064116537913986451272741810119294405773533103440133881765755209347345566502635678142666570165694453620681926448241655407800866316829935942320473254354262997729144542665552485182425464644761469123691033615277239969387279266592542951565676073594097582307344572772900438367108583593880923083537847854241748579094421758890364320126180227706938045317857118312328800727281795171505259869972436819713868342626978228432191791440451797878316346286715334183015908834526689399079495808235866381983978553216573389920239648517784712992778249089239378180445441961265331163809304108800388289245328400371623676591383571801301378436181316252251513372160822578595147867838885853148688742236928174168973529454760440163720435851278901301796036377190082368181126916768065359146855928279757224772028594272562727549235639115421522562739943381285098240560754573668381895519049773473014059236637968621305757352068186687118254614237634475084738055958564475739944601733081281669972736680943910072474934489769449222810036955654417763308648744106770655665359908906279386053316976762630795767426551628175892137055681588777747634877787115408483215577991692290010452546469649584377880824218689235273297764783128926208954052218278698321614367020962321471456482351283597083905509396829529439803832075838741257090291537106203529993892153250411498358222355923621595413967535704626465231023465095069799787751686511023275577872524340875615040827129386829910047451485599615312173641478784209320082134559534173776996462565284436764987008620724998534606767538441100033434623004454714839239751969691511461058419771496485059905569582616889346449206543094209574022299206864765869966692886084310321028759179639716761368046417602060132246788473942107254883449430655703319058569303481676418972666530695353373850135146449075826560991073145486938062657614544759446073606563667946934759325152207104260376033273264531656619135892831132738785928408060666218559854190286029449475874898934855514584518107037603904738038338971851027427462095360485322303206126522114339630207326615179523119090062326316305377416626460002046213650684230244234340916150749013825348486304271741878412256265405844500406602656449133947627581057245390360729391162665197524507640601108680153586453747226447936768116756306198294927969955768208278597597948019788835423764895542927606044075374384385819458457294594666236671057566017448666330331069409493475622911853903066936559040648191426907343564574461146316417389186904030276502301932951213462711921715957691969967421385452384329666977070693260297373013673130870105300132315041543290350009392993041469172586653435277309728823501038190948703169949957433519001601727080739541672092049697840053353993009829398568127199255049980209256514996178229914167276953955178448322445439714574409678840978602881099331520611172317143659165389653783263966104366012474166863036092453889036929008139930330258433498209550996412445979798202882312578405270288232094080216299267538751751266812206949544542631706628192550922647639764243102067948491354329276867227054850406240187331970450688096003830919047427757963778238188178327407156221780856805158707452396866212891116695062961824313020576981207346704789049167515492692375879959394514108005426441866846524873859970670760421279367098822800546607207703531616542685191752548931587371362364414547575446843154292786359661619181569889616221923839241904269955921804869515590221189675452787784482339937197120770554992823011119631529544969383575524672615070287797538244904392689715391167921602580254560364614896943663320094494733374418162267024479051978570800412414609952631253821739484472301195449597032356611930556358762885015643805446541759376808588421829010581952179491922418782771184796921799900206603701147927633170417198664036906577004384652271547188232178250273258363880093568730059373297268262644093230055272688679510998522783935097068908768798227119949002442904183136290458585180857189320762943796739520765647423435812078449082811212980460437403535470581238149077249231756223330021650448808029871824057976711827354222693701249123317023665650196403713953252527323784947744725979640651924186815742266305421712821511786186515146610224688876648916832594839744710174168547123978950135732900265751899201160991188284297690785364427938819420655329766762709604773906784614269556344152561696038076654553956484285442742510262321911625242179507067610780456238754110411868811455998664681466669585670099170488879102848052371762226627827725194713584418024493799935386571212219330373884613071805735125823876626089476632060041076117906169639481659174288269486329459247680511045075496522870953394167650452353617033384811640826797908315654312536749513267601849612018808671136548003700762780977534782014273854745581493875824735706589241697363358294298455883342610469317521708709406455779185239727893098677625064017032697071193642811318180284420862966190762634020778311622127902965317802769502092156990989966874584902599336132456778755756151890456400886275708149130972276049243733521365553606008729242141236118091647813796774469146935350145215297986404608159451466247502191425491401451192292740032684321306163938660820070910847197347733676414205685484572373418954421923293744497918783960709563496691893096812278679852179954337541129642409971329671426841797101544845500954193781886015892267366386700076956337711420907350404404034881816640350054117719295449756412925570862315434018451691371585516820420529586071042271530513426941704838579375323507726279596653217680514817807607007965156412981422157602134788527364911751244437991714534616443212342818346181020389043111679741510587165287107893719259805602843751691990123253258002523707550913146294784947841914773734294653229291927670661509041968165501515452261991899192569042461390443810431926646650330735564777346317150366805457923923706198010708037451379844265511708628840995755346596066287319623286549423789080439605416200872969253325243370696812132546612233303372583311280685068927502151100108103675558042469088442116873442353497495461128510880427679223246352985140875534255283618631286140039746670549666209435536206020191376068112577380917053330290701290053146641621038457755342711339372503950058883935678151418460308869633636161951573154254631925212017642723332292745442428659217228165445226405718613488991882388342680943272845697121499609898105913798532694873079644534929073742992304561039309562419557037299333365102950720041357951495789387244855723379557525759390893081702665527563784809771194205406996099455519835063014691466959391122068191888894406508417307977380476373957449960711583781325895638893310081063934913078568432625974933617382727593451137727338286551800225320600477571575121505540759192183865067134539536054007030718889666307730952603660109652873920501708660500320413168972688867877559611372567118947332679685941898479150905993936730051622060605907666875515455757768738721530291959277774082057048474303208671511647854146081838850966350053967813536917265967470846509364872769806268561155223000369138225350971326259947789229455756349003750459861852477371492671413189394713163977686085692614091308596763090954335979359198937142560101685426667063556323715896777669957772036220088371613911605792472746760978850727798982532159884437611705658964318571298744217343374279164597643928769225342861759914583120782023396348084391416688660732234639552388790778155925414596527492371697663891373087382235791459585941688182823601509638868851504898790968246984125394305290314592958789181561117806758279063593189291572877073110977733358441525010800443536988816405505808583790154326075547298615362239258054942482719826021274558785008980711320948757685612666121052996456656396069976316506566219466691750342789563017453338049428884555022079220707792667284974979641773256045175148844930356762891828000499084174673486672779129448857891995291592364882259743542866363273585295868910840318452641596183314017018789415316616450999362628064973508194251799197344114262633837637455239011293040909474055356708697993949566957522857349947957310829175667503789539074558716534045635514509513326879947698778427917762498174711436685232122823644148203773305480283541270100991435507983689696205686053879380511290162445294375302627222604286751543519494424374458755483970112933018840000841076706182012166468714873465150974283736116784986571966623733836042321827096227626510528434375568348395338224633557024265318578640279797194645304115199123395472906320732432970770196669946046591867362635349138964876132478957724729935394431860163840180554061197910040428665673253997149695094722629880446075491491362945636366841187060768110556241673916792041894879539106919324292041442180396992551822314369537423758844974799826294166000118332519246412463123577425364064897879231479092869314732353663175404485580888920456938556094622868966070342194523462455062229356606559671105213024023353891548173933699329637525270541868835496743085938652169658392228961394005147437691791342735053845813886807473216518708654094437496100442347659402878163404300541489520477466838357486681068350494515354396499236484179080369212716595730927449937193868606995261837998046963230889218288219234228740968515286803876609807751643889202072556540281044972217684645272247268029075625720612289789446267597497767241217201230089882788341058496727669101071811169561431504084715483337863474743269447878838710633805621743467474477759614207064995434694649025670763848510157585537434451511608984728428895463948957764344993295022535464635612140569156356771395244886000674325973880535694751608961078418817085917179066106502595888279726077225718533320886183945805205349688807531532800927651616496383734039463022309153600340792589656071121427010784077638660670743172365159802574313015640503485172105346523934561147372790077919013065579901702861938019260082625194013683515782404848833011427718399732307069025436133647821006097910424104417062280310213918889666519419602605726696001755187572560466603257305828038036435463681862950777191169899484182955053045187763695302552199001218536390567145734751517240295653690312256363480826259083858782079460913005339935855557300574620899735744257047819720031480038596444003431092191339958663317126245176075233556439510076679496310930178995095533217400178932161364169345490941394908189132707016830410530387927136296453273923798243726018199121461020009624837872857907176504343718687379507843591082857654531121122003787821156901670230167872242020821135819521473502690471066788952892635497169680801910800284475607072240539342196351516991631762284293542596991230879897973918506592221812863853975385839247340833954587150686288368709302910179446798724217750228600252391689003556594249811156815229497160923375293621484279521169545519346215118791514241914226666588402072871736209153376313836916993392855429219644909830024139051807830935651858704395358554699890486242564517482063300983017330580824565011613547967414499055998925244530817585314682927437345719042184939521208644509106086934885284761981824141261546076104983180247737598670792762402582824662485382830876218390424888078211815230965206571887608259591961353308569256188523491768174666593670426082555692101414015318563867826623444269506504878611756644143699754252206270587332273964262462346611417457173419403580423524602968798760914775584746167637342753311521506831821864689414612993333087826305971838050875409935883098892517126340478187073896103351717098283349405063080972628760566113163251033791920080207260685082897080363670054427559018611118524057620311527282141605975806061075603534227042664723624017856223762571371338483022090066260749868060967223370035257227141978082450642394701661415438856654862976563137130097135068602525685322573131867475796480528010551863140240091898445120016142104137627990080744538821034311805189723310592691883069001137057727170532519925375439473916723686390808887317922064016066261680858825375843495526823488944865171984567589871446864174169605109425008357557027540913610466539435961188299536831611460129956851806996790249199612031544054944931567737521882257682736846339854709391447902543014962010649121401159841398912038484451385476134504653143461302482699748117830771204433167250557915649566019455538883725866082893753856667629593766273106756757165456628285328906861160813503583647340724969860772445027859794823541891849332492718465061387280443214089651268887562111001186156126619082881608713288654225454626445143813020585069349016236970817632959834618171065013309609273559837919066716588488568772637522943181867480721143554602366294948738754872642750001128485125183039594313093710068288864668189921873216573951041867388704965024347373355925151265566092940376657217826399116285141109337093793205160404938391686701294167626431922299736435745977970982442725245173249382157925429763561137525608547315129514403544248209889357715332556475211722732735832983100058454603355476004823707027294901970961083990655178723286885137286195339970595132655354076401387817457917227048889216216224718455826618076350167420068103844254709313294819041888804543300363904890496916465912176767877706312869059082217307620183042073709513169832109189086167200777016509941144880320730102972288611584209712697301246610616018308038870904943277529852362240232998348863325428893808042462836352697762501548472536049610983817825772932908625114874502757280539760798958134691593028473545921796276958728842276596810210552640413227454163273714689829525805152299791454989453223420684904724234424863395430220013082470022519854121632215593185162349529904483768493867170307418422783023938913688836638962354094905026808788983891995966643991605068426874817132750069912307307843036550710869273254081959750036079506583513879583426028178909320991627904053861089059111734262902325310560259086216237737615170572154838441451677401850356256635188515649261026604180404987555078911144760929808570362605120665631073796254092455832302569116473573818450859944704739916676780391955169452706127193081092339410390647856521993789545050189909070771216226819595396842923339398080809344458657941952455276146199201809177498410072206247037983406875401773634822352278674127223548828506388076922340037177976778199061210229051075960800935917535913479424116351485485462319917832287817243742825469749006208820690840486684572508850441189623171052435351820767780864115358784122449698289720631300319659497958332001091008622712935413369076647962238152442904289916869997127469058704921813767607603192287781380314629719748936796224908007646921300780883933752478267950854144669841765474783358061169657226719702180235373235496396452668577137653150257165345532858194515268001576869010515945176953616997503291725613013673099191020943935144374132253426788326287504084208445973702784256177917683898694842779584659015268275805864033541935651713461477877731354544301972043977916679668466364691733788395643146657268366528411249150766347010317403513539431240956251845273014797513489054299131692038293129019428860968513016876322585895510515562095701274643524365717899084938927817764875758782087047930519423755459719860880160216957677876626501806476954193856864872851394685558322937145276051477530447217799325045052545513569437232479298612999844234568928439516871309363454371755340704909835179133152584841709349153438810414214456049403519570066954517323550389394833425668757726741509336065922439940515024005684716800535235702985235836744420175381283661951872611175637893729235211041271532284866121882642781095758655520254865055667190990164483912360185201720803333410278315376030539679289820834220127093629155939499682658624736959502408844064398514340004338610755586904548937065800583160103015707150656905978340836821677157462140873031040937735757609558843026688257141150315512557321058864349147369255448753533670550011051371945521216641223456251497169711709934299334604526368274587515450004279558365747720815383647379800691205653049609241982749034375217596030816653755222048105530562314909276839741455571978850740871233202843186882988613825521548012131697407699846552064447035599171495904830782657418050196023893987815519622077907130129772684984272047963538833435371010936660345496687346730913684106083524097428159819574229622482257690342124316525170253156601176734143410965356761547080113546511877528095735190005238782629791633491616903329477141681203222074046364092999115818931844037050154482986333216769897283643974210813992523038966893484513456784599136458287544204506017691502945437476303742937437343307354206650433041627363936856974263058032096522691692378877991961967135183360117304216191274020015465549966611099997719657444064599557144655473562733202560816508507083038731683144072442218261061492979201116823034613444572131716320660846234867949138866281040690439695107538466180125932915332857156890113965174067342032305864690189737554154380501117190827146907841829424058461775361591876704310871455600351865573114374790695684048049238154886990844895413680140679828169267740768061316346102428750144669774293687388873833271999999536573581636232899171353913061861512632135045993585643783527867606072045648280682552957946685458514004955417904603439962784919342604389189890055874538274981355041828144541843712221358062693175961373997782659073777120244908491898124663783069105457104672933194499538009150937060364876983345183492448127036736784415889153810270317252917127911155978655922283793007089556308525360882080259799572255258504368529332726273183241019963640592719114771378205080671574344332320120556097350211797688000800111371075599457016596225422902498715627189797142632128455694097664159542122216889669893695264120536002030792451469801856672526710564814769896167456265606959617075317784025298589689806394352431215165161804249131297519205877845790355961650850526822650166599849488516306452414316839556588003374297901080173384479399423567361523002377601655927214087172733222168259631915156034678177899817484919408750399508792368600634345721413783620513955576537637918722464686660426872843503188314815468323336385997046080340844004857807694068032019033473726742487268475416668700551419765106214224950600401860264463553917698232802678626379695366337776356366430836355446258833559813201270230149758729247961632486338203415071225123596979810787163390890887924022262776088078578110368074622910151787332927163227206292057276480774124286632577963199022613173181768407315981010131871049675150276709474896907701148064403634908729774048601349834401773842040086194552287648422716984930493038306255014966868911454655720209560313362591272515399949199929402367652254556100585596112618875353624412557550506656019080876635954656794834821490486702402264579072203129186423443423052888200307159837442917193850918830846266851633206426417723264853072794104927545354737103068774448650305121675643318876688828551238069160895140492242502087053105031472161984019321412789032304328739221568423248564160893937838719879061520968814337399260051203627128509191503405125982263564142123574100081194618462638974733194059643862386599053022248615771904060259436345223594149565380240077145213469098068372928511475431460273952104849008902857227573483999434125738201063304874908102521055565004869779449607755113740859119475651778268130902769036839741365371351896003021438787741584777365492218558218415164729919554006867921346301206375769044509784392821499801226747446398519142978306253600583856279428794259482930655934002727864110782725046346331071520244929653172817910339674074395733786654409747108906002798829491857569758648172250790047450014646131693638700730223050847245175067460842846237896635988977124750447270396463709412503919822018381942840299142978768861184770545070394922689255630333114406668256420099056603443736121492176885532771406011257849891055020926095847304548995361696864520080748513208330566369076578251853749454083805032878829737858851147586725197562319944761245002268363982267205600524111314885860433116293285299539523629564345518144082832012734858293468114247135585350124891493131502479982392130262700352364286594323192087708833500966205267001629171157403548508988252466497113735441652276899501013207994952569233281981010976292878207501122221031535675385709559476353662159506442033878661860322853914686248747259100299056019927992874485409652341718885838960956170833468234416129967881390379112167240984331271033245904880105038642321521588514980465778967243253091687149593911810166996632407459387155239691916677956058833448879236024824814682386289736154443543589693798016204929211894730650945804894166465489092405259223068365128092462057832569814663823221881366642059732478048533818905872957766132256514367643185217439406476227527152175109012696574829299811696287464744561246093319484470538408291937758188894325273149170155759253366851576528359131580738413968132675200299861987740546539959810285600225432086286133637427219093797757704933723749037045678041716248132820800005959544297686582976336156788130131103477933742576141581544295103788813975955371730199218865371101671647682486099406318026361926696575095572454201348190174385335847703102301204110716925032845851212733302370354380188527215346836512913540637456473092428601912061633230092387211382906292347000256638148873368072428350492576408801245039247358828686091602279130548752338349302143631374791270367476798535232155200886501753759738786526009034459494564988902388582405149298089559248945172288599638346083049780832842178946301389041974612338676923861190828634417688195464697648845924644621594054442606716403322493363209036009906862412548967425743240421943222068194089463027593815472847571581961170746027416438725040868836723242773996819384339820816787806967604377629141516510469810604411868698721871701539216602339996004226919918701511991425194277943498082031953343481944734301975037731275535665230279410441933752510823268081792523533143747661640928977938420030331797999503936809908401597968430450027895096699478333739681918605305154051045459005476649712436180613188713687102358228628317029811482741278735465235189395685563550849305981734906393993340745615380653962185434209061919095221410144957806702576511267976247644345299630168533248759339237491390370964954232495347974438995735201356571839469001331813538702076912603401586574584466788228179521000576050637752391842675713358128623754816154898068759103114286263324784700914878014238342888533926769507289149433673961378393348594173545923659804815934694895712475499346909262836643344410442201850226562755387641321329045753923233781034029404475562180088817124478500921948842984148904423941719089136248072721208522573306545676214726559314594437687782787782322112749301966703182926170424008277326143359133929186562218678830046774982019620095983886306501037396822705868050533592061465974298614227972326583126432609987651828948669457193246767776218118203319699358021045136133269565082616288772060779693355087770412359351438699761586429109039647179517150161530306558121873640134971071809187922305667752291046499147119196886764444083335075812462161748548663293507034875156519759688298841818003516364555211801920699441810825563097315116316888951617575958673560464731020904859752324842447283783868135560165648331306355849346199171149810931336971091511154925160660234239503779785684913054469290170773599846560599693829320826158861974194793461372003108368902615161772289705622529907180359160212149383210936165351227057620769466707703752138161647579712472481963620132999109591440515918703265077481176856120082910187070216447439067596381350572218869696586408381049996164696184971205684890391171439482541931157045875549322669259426016923556475094824435155261134273944240366983622117647681389565445354264902910136214813241808689513584448933524256658685754137201553680417631884086635563252364165070478003706625158998693418051182562550770721086367069211804715794900977456665599474985780575346382981332433684704660855108605487527870781186919884966286337716303775115252337493898987432161464839776755109459849395023968432859730680571384339138271920936392679154523846555740010571863087314731987638423591051028568166510761607551461450365321877762212332896529378001289823988373072759777347119228726820517614720999361794645797200872801372945596822907159979806971914462444433775424182884784535000220948237502338526128813807739291648582787200163392911223846032375314570793548495533174127116286600472859385017339608689286467710658101381790104145787715775342649334850099787532220226526254126193681665803058058296843397833479482494667825709491768465403887552675652987671502876450448756949902788316777048891161574616776656768305138127778214779158191339425590490971820332290388486972276934233845594014861199379335198595658790362947782483955943327269620392428457138540332419393878033388924390996159883728077649678639902664150668620377548586582400976298284646976641700793338123853275287164961362863763380147105367049097082141077094222568853380092304465300240224531103297004260057583757128239469672326861289929908591313818108397744402671496748532391437257958772844010341397138606975934200539613972687455090961110958454733917175577073826013234848352718157345916582684503809753930044267906757336779596347720835836405777714189320317842211629525691501105314100707883219619583649964438016690040599566726418682424976120357598972122843932704278956848990644969398155745579772980031699767434280474822277569282669347079697490665805743874117143387396926952329035666924866885342428201485587550903726220347466422401835239977436242193701218257409006320938148783262151882347615528503978968585922772085845550681121144085667040984525655312428819601061179450956256682525596848033859452387004671964600232277166827466489569694267259036315551877214574432980459505467238972537518650654578524982275943524436099501862987906747679347812662323744920945650334311168904768931001881755457566792000670821091990883221532688612534835880746618721932117802911965533349650211951912704474313587037061477399905444549663319744781521940194206999871131743373240652769673908323982720156599783105035441875065465697942819811066613921714725713772491042640167845080418498240712178711100658815820314512828041387263384328176428352017003437662319126020868157569499716177810351768024852754629860901351576712647706027162637935490909382639717885229543340039795834918760448016051633452923361872610608205583225955786633305092304654801949110098853807878811208704915967398512219879301969743113399457247211016465724856868938336905293163993808873964411453738018192157857425168273271203145321227266176794614531246233762545688484393951927203056039258212091926783162973621517209561176480943906326355526562557551239488208920061445198371603812110942273198857049142208990501893397236671359276358062776548477910871911706446768037059599641649484443990215233854887148992464663893360795506150841868404965109088826047381462618667032262591530761788071838022055497838732120302914118031227479235419887075053901502403765160943155106236563668392333810847783280905564869838357973300102992252916516488153980790266459630258781184299891849799245002629231227297610524971157194768187509527257192969590788345329077149354966583873098668164135286151363390094080853770543454784092623157586314405855222643071124305193962313859990977644870129502372325629893405327949060196371612090211283353629887925914187310494743439958392796038216684186064415136394830808057986426619899939444075433827049505345428167363199177075885345196504903011480343522545772441167792780837536444884855571367313538630573517562954861851992772905146243769915414933548068864460354556750608597346296373549056381269853535723312205263231426018365821099849134946405813609289964805429403527097634642214884291430588968227858136326297736920284449746191654692733471692373284020853228346611547580256484762697469398855158308776468619274828202025199209544894416964615548705191780931329406875928378578705802971198637863247199686225893962522210008485873029380641683078404090529217675960924049600369103222992693190045408287513311194623848236005541535799570100617482424532829504541190088621671439056098677467375039086650522681536989318804267548159788768343771337974248299315292568245360040555260601544533955745317121256158011534513921295868555059522891441001218969978647699381356185450760355984397845921540640860488012221414308627162695733019830424074493123231001752557853665701467064505475988905948343298076319199890196936381876248658524307154329482208046522894178995806335346744029840956134649921310065156528849352750228545467767863786067875713184004765604775096389410681996427555027809753471133650954989379798286185383610507382049749758596984233175370894298585369547886382891681164677795099101074719714621741814157522149577069534166305766746574013152589096904857004357396739352790522644997621748819774457020450429029716380252392106999457647449222529422308619202816659750050031506958004652393566123768051787334590297847248616880409849222045694150394341158683119938247786502808283903118567947434154046251831381158598657487011084621995189981849645505658955171288693662985568117542776822662586014576411600555560970921367465463722996212254036010034565405838599644420342175495242754285806550002566020070137669342648656389330453921068323261863695872055527136094255021387984574014217298155540801384739582097033154988118140175512855498987973667104413348492903821842634812375768665132351339669963961342078335132542767485754949257236708669306645078411949988601015095923801357849065785454737731806763343026008493988153367057294943777983882005620111508165153914558625447325904319662478263850428382785816113619720315705623156970894585152450466679470458901217045196670454075418381369260378216848722781758036228493582566573490507792929943512793461961232593473338398425737592449490694056707491964395049118237943410388725754907502782258295952428926299679586863232036164917814945055999012509686263624705440213724248808709890747756829977497642600848444132649818625240388506554922403820050816773286672395156578668157124824618923226660728394311348976326768648008508463181500703173848584718623565612736830216545844206373915972099185201088346440644793398300021439866002513416454133135961345239245079914725622353416312075871678188492286414853051016657071285022147639014526455241221663989896771758025191630843076084994735266769931899218941999818799282342761662143605705119650359253891906099934701621992396702883057485842603989606214879195127158328069961044385241432522138097804974086789702845126927014442962198625537937059642250909954689801687518123300880614348010707074688510803202457355543710434526845008233929025979740339547627297195908239277682604054384894601537837032552970173033424857612267934200450522301920199303652483427611078958029194757277671807072318386248031714661320839495817551140286725800426031972099645891204391962054347088824681788701762665806694917257786660873194310593395834457868294465110253410192152410750215665225373237610104057854632998091553907480317577821833723588657132145657058066103065316928244219461819184525551567361555733446485910406729780973530122461085093343874635221128755265607180594438968305503189272348525177210873111163486748712860560614375027168027609700440781507148676180404817349673918711641137795591537277045704216912242460767793052249682443575974911909951521873055110284024910718504421118434033864333211087981692946597926356421462470902110615396665585566076015617554520373827705678184051944256974735434022819604718471999194967495054891327635470898947145506061646801268923870145441599268882829812229326034582562365343251868766188345913112944125605141008912801605910806706899773471270902814739187072757494004561970161749751781980277539365680034150625763880193333733765736100178037377569189670992722823240677611841309943294204871963388454491584749600438221779273973274172430965718417195304854516383411751778818946001987571053516971589733646137377938871484133941532668096339055983645015045062953199768217056364819571641626109686676244474328173623160086422261314928640337048098099555834906299442052591986150711279069914815031901073263061723067893836487905058553170437138066320380673400422595761080047380966076573956894729251394306840070626478458357451787360381417784854811881377435073634989480745172143821921632986636618366454981704098969990791101756141480772976240977790765188603944513562965009881568656437466942293798651606038735459015926138112745418084121025998300445035495064631052866969322799489034767413940372462538592420145282897370329824068090609041156142415991711216212748396218673960960071546448131540202678823585070325545851055950469240460840479322272467010548747373211395726652338671036614730304599478514945550631479741283522256422188185268917979564927453284700873682769763723552448709148531518936626826709173724511942704352620118083899161321965768336553421816222384454781645913008955081211619193250815381189533129639019867191499145251337040797402515546579463828125901987875240847125981688365143226119941931539898813117480065152614667332261797469312689592204829214949916464238206924128901392612916575270509522185636113226336642233517338223941212386100590291846923584605080068822554206372388223660558055993672939327897280688761334985444717729075055474396652257799416479940792888094751834792092678569772946725885695155166221184154550581103619887522437464936519562540940888410185224469319517920813228951487859472333422198352850978460539527349815220282142619146462246826840980230955731657565134334309877844497321394241741771128142558575243142590126779136105021151527825406411719544624959523080426496392948562993179139640598498973288672072710824563902212027328153062233224769585101133367995582308582666669544818761218977303955431694462494825320708857151276386842603628485792574058007321374215543338307272682565542689432867839376276283386787338818554311701482177758660388252948291188287166409940436252263187789486981725470751057041794440768098814874118626376650953432823825444913750786446816369660674824030250127657058639482843908397779400700651965566707886477002164131299990043419150403962471419185263032878875690315532098526657748219019274559465091685318235048927727934931264962830263295070232504503031689480645242315660450488899734076923291957399894685823969177434278775665241172240966057432570128090499814235353471882693092777019874941588972803313508918700590656069611347722671880379170576209920295535414831640807785944380675915834909309404907814649770238899178788174272055091014103759473910506349528417712958286731451824233957580114097888632875633247260273562181117287310069923734341999541514941185804536274257201418924686197518267325893112969593102756678700144194726940805327146000208695372344154850909402178073497986020165183311324535589878964414775899444440820588724276190250083330522285158279178128251083963679737873431689911134174768213307209776353329843690001154813618434315231884852520633931501299532349075016432809988284869945671482822120466588399216453641574845984618698570155640582568717530287238768080603975198551969862554248841043520488892424475727703277419551161037527986094750416342601391774128862263611226693524576221683910359431813649962419548054009776256171429538413810743948536352480133243687429735126987949579253430519337490046339517839792370423729744477802055001049151089323196647342612432929037792602111109531861601566251230827257163672364719033790345663524305804654631700002256305156115826832887288471532395088844802110583924800230980001595667907488475103032969767197025674627743105513013179720527787212438851354891842153687179822315791597873687133408647958889798508742130381749534806547791541949486673071672363356819387029196485107018166471296521477066364425192709834276389810383552408560586734120245060403627837295510535796237945939466300779565166489446376952416690602683045962333848125233558488433530599994874936539459376214308009223567357001353129204625259553989363030958328266131090331127729696712008828902669055419356924684179078230581086372528246559191552051060341573723037671888389194643464225019416699860645582014294496012810010440663129780186313073729186340716932593866552326146193929577444449948599680333885017471279047378770206280994085225204006996017703577768272957228394855577195707686277127758466279399118433651397410830222425649957342945468896075486400574986928914443807786989668572373281629188319592092038257814002679899289892114912316370891930940564316612029042477455437230159777300504584356415661309447341079989550232623516368786287299113092369659819186508928602715555581083294288434258909432147041255415006535235424357322799978357395136636050632175940044594801417919093168460935500888449957148668554118864392091631314510730318467968123285242964770635413454528515308023941480699383055470809861500396498266063708004391347576496807504673335262219343546263902124682050539954254324421054830280577837138312942161230954529202873408428610671245429469957207303730678829924910665760840100726206065441119396471228797378800701622341477435727244500320399817948396116447092129917300230564243642010979520334622035174757664882193226231589828270704194656761632767387851198731239511819612725629282094339371984762956592285143239090738292271474018253536757728713391423661184243152276257360314851860904984758985065102513574356169463619033665647962176265838872792417367628346232672839592614300693924101931871654187290138582695759588768314784297774660736975027114883900892109623394719933826313866961896350557892504606004921484933753385324036182467147461849582016261669976413656121072602082090013848097242049381239672295852905644422449371171537491810891429612141710677797102739541328352897294651865577107835764245380162094574338236206801650715922693451919481794173662144762925366515331541756972573673747537783891654280355946528600091116420416369678760957465125249474890737667059082773854317985573165594467120047225724087288290985024777961434382978009193621168833270014006269252653782494357169918018050620122929778778503638881659749161100276194281464772153139249044289401889059240086920563263339245818266490643320392903842265081648929839229571185582377042230507539229165382422587565744764884204634086476721065265001839810515767236117638971918846571945958909585059036798488339069670569116894388007349136956876827482257800349347066380338835098283961993550186259851991807404729485850572393589191836099830457168886337397970184775006275743776176329706654782215936726184759667328126227831993506345614801645675403048121514317954370759937854437714331589535044465758696656519838409670723980881781989051183862145811924286121772356418093060623720158085968906397734934690794386349187379483382273378846105901404407237245495052534071215327571577640290752065290790629661135647573267103507030877664882619743008957387470222923865067401154632129417311906933397805702941804932458220316942106217101964984333014443941587895659975372190740869354872320640037968386499584197207746564720300897970396028068843979253307413274179543467363746085997325742986043286523411682495007352333581110068045308315304295546584823022192293474448790874413686132062680469350174741973014351610724348034974899659356154803764495980219176485781775484483065952818532047779303634030310374101846244245645875704675675426333371616037297536979893698577672861822061712933036830983469583321114463448628604477996466882915590655128832780137424817576579359392146421131016370108958895711450251199606238882698075221868272082262243511232167812381799305092093508713876359791798282575790102420121521346320894707986370027938546526196191745728237596357858777456601104886389662462669968875889695937251156301933397014529379412914836884071073451938555056703289880094002826400948441443089584306889051185156286757969613213251044866517434855303159510726530353047421384677470924900370658992199004193498984384763351615016024247678463271493518189144387114359096918298762279364673401369222840010547461719505187188441899378530024877317973017977320364279088406758483057902089062204568847772961959242299983276792301766087776353931276055681958349868436603678747272882327487376782110847213168027105359534168627812366626828654960128065043229004768350317220956788679358556846259303871043877616990182288276402540399707598214844330769259760638003117446588582618971426643951338486605546087312584490416876122571212728089520827618731405000083726215827120749542362125331369723375154542153554186231144298792510049847748880429027066332778384058590818762341119102333897131187161804625573799479855201665717332947866046069941960826160248506300532328454935466007253802677215182958912546979607251063960334120550633561986844935095357951738082743164231254172550163395541713553835801884037076372480263099289327717023075828226718507395755897911787353053127690942678536792246683661094432372980696432686968185469537282473236275690636948354872148902279732980516019411660276570804541121974440928982626042045256019114024885554132215312743899060347884704984754595326923133347690965107805918192313087430757815763812942584746854166732712720652790005388797541805173049169718632430090278601875261722961725997237892763596721693133985476130033382477455547011102494879214491317157744862761027300510027583442436691083643867363823183644724235567404385754493268106972795788192530133486296773682720480054295109948168785086453779953996521625989785498493186117517241816713780844119802877107211891585333454984754721681670296162095553511558984832445282899079663806697429528169997207781691296061336969895241800967206736111937910934400184133118821020307404746448188686471143892844970875241378461888861232289784230099435816752354925928008480505231265289967122979032382533686460099085766201395560134107000846860655588841734999925618204373619793784298243115553866232214048576322149410534665626117454416804681784222064393320734010201871168059468660529739997519992441115423933639638039207271367878290882827383375670853566949025835491024096988360443412446142756620745405764554170451666166596390785314165486753752839310105506896547975120862705090289471033029694955837717003309940624518267505021024089013618457287830656562699824220331458460152929006614429281059382307932079215745411332754234364391919493107043391735570079648091631331292812291442107829349582388813340570245383413137691962737327168180627505448029480709373917726160144215464695467820112955074964636266410396906879855738773316811802625436045902239475897864530173725259229799472220779017316572801629141099467453512535269632833471720460671933995967322033164175613508412361819794383435397863551693987559805748675799179890845502309810439550027387953440359741224879551976494582468896104285644740575262997531036780699266670582124074906959347916818101061562349584772721993957542483385099304883122603397263962288381245816151107110114663455552420474415283188022238621100828405593810219943038608284953171714792599935091456135217309943923586472061901010810750166140250841899066327306155086722265702311903056971065943761141468845819906191026836063339846951339089044937819396406427952349858651781120424043782140529701842280725636849697584054647423743786177319812972574617469577875732648665922777773547332470147718070310650443867720168947536647007426717952413505085658666181174682961570845733980186331266484827844824482052053409772009275734451495217879923542822748807224138497982904377512697532884494630922347672191769641400481838155520464835671932129634642524839607641855460337734182056160731767829611718167046569324548398076914110263794683927296444271887357263927107963203143411659084050532666932134013463134145439065362848152391609627765299715143630585766230929242253156733048139741172015017390616273593436140570052968567466169533152746970792808369337340457796254635735837082862548535797790653135542994362335359876305095439965587102964717636028694107878051307637224580707316542470050309109047563860174293744158127668312679321768702102282545368034564220390037837819336001703468421068451872741645439862766303614503798168818009234000208562552558202344037586583617709968325557051149824597039029535247590881435657769083347019516457616410053710383573527549175148635940265175223295072046472196023176412337939787887796146247145324428586129528155871653811985682838768082346622833829994497963504632090579702198696201285343755430479994931593960591663063971287349188715181582758220888334774449561563843549087462337594608316107133090432117875759297081156787875840000068824234071836229648920606159079695556612299759373910199714013626795176775423605822688772620720037821229369949058269005892671990888708233671465664168709977050679446892827175911833802691877720172596918144532446698851034390421550307150037716962700805922099787372846725694829302756827703462621389932765841475388493530368706781556806482381336489038104571806438394473492269644012510369731123889610186206234064281569859250366980825681739983749875609159959132561696541753972839194194150726874639038117041073816158335348495130093077348864042691258702863397478541513871928059930955901088541953735020923208833184058610977321317524425497824041597602158779951399788705812157501169636005182584608737897144776670179311340877327161381566448767392866987730685232575747414983063222556792023104796763092789069977597360881730693756993231967340040588551261803310555359951175522479599370429658325368921743667248058659770341453660408565751068671039691572022675292272675042723347576482521595336567907236648687936331315666825900001048816364839971903333234504233783043317006173431138730828633660160012933680924424797826532214955354428258870828494701988874990018406483556326605826534409430245453593249088926038227543814288792481269242168782475967094880479463087807639964129647543464972896317200019241565623794421743695947549944035548200564674986166173734865503503927767357637949641654447823090970884991421374228549483831888468985546291589050102773299633812128309533527880421408781610611548067886083711092751444873161018680736887547973777323979043330508541474874752418608028741345271839511742576195908151902075588572845385797243618628946200916188960475853052185620684854931287754704633229182837361201485386216249444495985171477289772612381933721240065357499799195540858293352618746793424222758220499274814688931837225407292222407966643476160100143625440923284479575984276861548753821930105392520556994325755369371049204759162098339775860853239453921166252562486495400709212133026232070606427004763040852847177466414852134580976339171101097205779853197733168809794707321544697584222907476168929137054075377267240881404108152382231944237963151016389842127523005022452849568918001225477486639275748307700200612536288853433372113338291642934776378818061313066800429152521038219453013676823106072704104261267917907408498970804892682745704373014403067652011681190823388010480610577743192426562306275373186316944459593923027258627101969169169767006594568063043980807861755577137239176807757184056356978726490734733967903562320492376035700351773427151379075226665934107770486429656699638777188868845491929757578314508948077060457859626991323374931680995617379478631008212369889864404006865438245639277744893843308044368776844196154434489627956354411300188496273510130086519034556805027197244282675516291615218695147486294160042580267035561805877100721181990037566155778143060968465416197491786950844060850587705753739205784932677142885297710954422514460474589708869069385022439947578437585581476931128988205953877176667004616103304647769869854378912485769452861277965245615710430523536651112796195412220867724619067290554966434056635463720100961987654855811136564879460449695489724376731215815681667341018897360780155504565794637157923907976592438690321180638205682208151158055105755622355736404197221266154148412963825308787894989212939647798200342664413082563318197822540139818389363520586399096383538873935412048337597669627981333907838439905520493787082430880519306920025467555068154030568854821744103593131007794818415560747167042091060310722932799315101778663233129343484232808399314909103004860062981198876365391214654567147947129848298623427357940888211335684207548248915698810008120585687127385573886728173007015609710604535843239143806139884021030225593970571773335141561077765949360524056943844195473665908791791885001184180082519380735580026997135222753063588157871770352813377156233357809201582591185369504790363464999079226713138334228912322653755997633509279138527273043779053221495311235085893064459589925380403937744918020284555449147460231711945099620886372468029743799494497251758124762132681030635850656675017597424673510760635654879752661274921950754386335598431281770178257085798187860952640833006781891275366716492148208032799707746100803245589620746250599555873010915156419755219664978109712216719122690711195841857459111357097226979490468640541425274092657588751295478853574827504031660578077113893518981166965192980759839755272568575670977191708466332383197377031851655295448102411694701364605956385634186084627054164493041807215285361196263524832718527339934646669439994979937246732784021851850702394577104286868324371960046927457755894582198214735150546597429152068072551306507279296664310894142554360291248013760503208556741977140014174828558568312686560902483977728889166972183075375972117007798564026492071025272992602706012380532352180959572016589933031991120037213299945919525696968275814593457561365469284805384382119456516917736341701599561921881737945118610790244267762800088859091990712627937626266673802910024815982099234832544285031088296733611665855302517018228531967496482016759919032746558976139666412039849159598891288008394016310224637076314722497252274492251909401296463183724923800810235441500376361971026010007705219642424209692476908220567903683906582718580884720432845110230612692939702208947415206303844658085248638705174050023676913688927902954929299134279634605895599527396429382996647147690039927985958274527991900533336966869630499399104436236740633951970619580395742792632462653952280371008438007707465814687576519518149246966539934946159644399410917588270851473219995130494671882249246580396543839122142575549637791560938318194962656169294785393935402969659205941614587690255112555559310865922808810449508100850857260191667671204368441574631045884303256613755138130697288662397000914048289942588876906506143485428757561343077353368240571751929578981847708479747046158673108341074428107306956668983240381382776156075159274099668825749474317950272007031043823260455901315468761236730783173091766460283581494528149391741105393818126781624582128468244540398658338863538128030340015596548038882172681915462240969799787787880681380115798425348754294570817707466810435625701451236725161253255656582044053049796135714290334437209447677145801772044964847844179993754544457338570694924110488479180562238530164337367802587954895225795853495690925929367139604058403950191077684994400768826011619472648264251098424508622135212253925600642149982847339258679520841383979319818166744121412466253300004160430655231317408430159481671095128676284038206865452378129608546334662901403970318377113311450958644638600928895275824539044233787374511921148235099572020637152358281056670035021202782085405819795037298682255591203501442112421919151392433098660592192130429095542348485874232930806088161326024874996441031183733564089594977843430376579069973676004275501700582181554713534401240843277899559580376341310072759537088734176958026902564327561093416578365493754023105393892411615362728137584965240073752841158516947237676618456330833835819594859006032093277518196898327314313273776980163106791526566616246513288908603765463639623106445007461572356953967510216719438584516456463744839683743286074520690344087703600863609825781365868676177927915994841596151696636714394578976353055727204549148294337403649468016726387703442307624825614865700203894686108263191448889543713624844983177122803954982423099703244005801264856981428114717287505669576739594412897683910478024054567005456662700628872049680846108961962285990505978174225650516429423292630621229234096375795900273889308206829568707401481100566800594252268932196440328434549944372180584348475107178198618785406087057793814902125313812306535911453083177010929988163436813873075515990846646222945886452223212271648604382359885299337825620869099874385056413315536849600757423071740653101049099992103154796820756114722490299544269722671018269635572068822645042442481385712452314936269399300104339416292067616696821398185619930615038175709386670596031151241855361802593235908794247537430413824110541626749439036376092540140220393698891652299294877070659057156705293639360553292347766652825352467264367612461082765504804003886177803514587817541377047101248989645631776585391529281144579780175385942760922817943507802768247289789061861374436072410068744731753661361176184666138519288482550611295252189311297698868566770287411419781890543631317009404018533562484918431306864383692648738453031283620024708350186718275504434525515313617370313537213576194196697775971825361230323347832192556443093319653124969074306067257104222410046181069345147504130126656295946676095415805624545558601287536728596197760467284034240159607959132447976609151657485249009826809677275256286662124592204596079693238654286891064361433126023140558077637679129123638014670465259957929487550922227455878059270688573447289435030392428723130919695828752133716299131213808873706070246732073353774916242208577884411973127924105785651075372861308480680334508446979785698706003413423360187585510619527523571273936631891469907413950274566192804541493388328561476970697289784450370110975691602887812154940510313309883139995020002807072508062382347651031272713554084758079689124187966425632478142800499344102817562340954863588834654923893890127983839022049612732915551720205400253041607432773016240444634909944362806389165117610488969901001550685420336592708656741882827345993675123131575393908000450278094927371263479164781951982999483107925513824748976055721270896772541200930870667565134705895141790062747220833108427404087908624196175754107976789718198762176446998239882026176189207270319783405584314307164199756145693455313240167721838777476164667738901373893257877088648628392995782466181244930889687762850483584327417489828156391403011935745022506917066177439788488686445349953278604500679742699255366329218080060129339559094315575411626018751357375265210363449210280025536804482430200835358245867985408831238501037072674347167289329677321535552567798244933069283950746258732259196619683949066217553547359055997159875182472088342261105044362320303392891326772156511967580556539206285965851852455827024298969168903725553084868193707941499214890267131239049788708945432639754079132615511615147280039940058605866364495001212349558947500438358448898803980644767762621202424343240490001369548774589520149756215611255547389902613142165213543310355937698817164785325567079381529730788334225711959519751122318894617996856000355151592828192620521810361171735277389568117602807905792690037095970061369586131066499083787539266051982830653684782443378057455541982274250569230156229389298380829758772401608466486750162950326687280753989864383347894918084187208112246795061715149773089510146223837779755103454001014740158938392953510952952626648094180493982998841933609259318937139848348800853554594297651860089307218384515603316260162960640703627349370583726511152343110977085697203006065894026787531892457439760046103285626802503255736032114092404134512901763687089868075441634570622699987161353352758324762370087261909277495276289850166099919392926342232691197450562984557666312283979150560725768879886769225102919308608686883776955248418155058289919218713538429722407109606407536428299813360660543787694522225315619532747172133981608594761101911986584783403593370013788980316583744917200845239035374382743717216141868483699886834312667532224870267340743091907388010914182523773409356095370098833507980593159701332261801506893492461874897535709410575080827659732556291747986633793177105467255138370184333493953241221555792001813711284611800774608472096917900736449542321171474144388355501666648629415963438732678559589913385082553273219279061820386500433063220938035000199563037425070504844573918599439286097233577364133743246483506850598874599914907767201891313953152580444188768273651673889401862640849551445115108684912314948243812391590454838211239664659665896300799997120464928664651748192401745777188378200645969237465114612999066193979819781893488488543382373945068545076970243792833710548894974917460290193849706596662237541885907720144643865567430173496109412781744954004473697692999086366415543692783931824304660460094473122727786699074017353665416449501291690287528733722312010070974378883102577569572711943111563627434244564013062809576422925430275688529042977285921546550757501030435610638163317050519603969760901856386006409094848679838764484741117416117583346383072635930684337781720665428831370625094115643357395287273903633737793494451192899432653273895749447464795749989750956919665007431195833347675802870213420806634659251637394849690003420888208590925479770811338284830257430410773815242557283816105763960742684600807247024683996245650827931332388099857959020114001303946547747731482119817282748735968726157804189668499136609313254320784635572739321347092818098514971591813898875114239321912134174261082555107057222479462415272539491205782448503640571583931797041014499342363788458366825780432933356341932484489473448048426725713298111646333216843533573118391926873153391075221721507370726839822798594303466603665555630000950379002252001279670660965466796963306038483609760644932135947858455363033363137423832114699592656964828156143485937638121736055726127352770500371709696664869259003939839186705820354159154688380290746154113895123146678327836014185458794700102595254270789219431520056129857312957995502280539862935223655630990087155058899188174030718794674449908500959843135484455978074070827737958762606683987348661495873418628329394351132640299192728829124157427012457064469653251966276272778028803253034201319110642103151885722002023738592185581902556199916632997627803634863498630235092023855595273630381692310124487283649929676033736761798995941755683359207474389327336130782251366169460946677184500968464900032584208387878447259792499920218593516997639881185863519140296238934439562067383352319461832897720026914137654187992992789142402891412213082319837385953179495061009975377194228022905720228304318581537040237559932676061618659902296054784678209850331203302637817628106133969532658434365903566611999238204411465035609974826445034415419274432403457546184342365534561387220130724356400328855177535380873781637693543089169034156058250157982897250655493628519855584027224583331983893491994168674308468403216182105588633945814133444778299711426585318117357780941479411675456301239945224497231057892355456697359581254002467369724348282630773356381179583623409898663806389121214603910019423008265327999561926444281394368694732791360710229986138033247880632404433373863143395428611068658309560466696342221886475234631570336801789342518909666169254037507061780739364254996174194926528805018886433460183226731375380466276536574257307420721172860516690525454471419744784471665284123124349082101741489001598532956573083207743633210673009896433685728701092898929586284731715253754855096254487939295677614907139823539847825236698168017859040656146773005442509476356702054351287284588719553746864717983667832200331284569826284944811118869208869913857681394658964043971729290698291431659404994344944665825593653887315288378942770733699733522993556774231365379571129131873997456624080038701579019498952128354214696410640515293711600168007090809243861737157079640147608599069498728267717354892241219206885769301297870086628243821278794976908063228909830290173866154878868421081042817247577985462603541350986964439732616498932063159002413953487741749202980855587631036696004043052090336671701447426100967871461484124334146627835042137262117656282647976398421183740270350680180363056530510045233940159802189087213107312802388025490307664714169657318987910286752722319518861924526296348392142047210725634925968293923455891331323696950839442224507028672687619882512603612439904159816599525401392174018626770025330710468399326055449920445269685837725720569148550555535552183600627594992359247862148677915138758969713851236316106145569038786814006035083113546060851090855716531686407225237147187143119686094318690122577256293383827137991333407984770157318305958175606056132694679193105230359868660272283250919748069759859795934303692265857983516185504267440040075590460073346016280969832123407772233961084745815250897551469592420182336100135812508488718373950255128097394970824280522903063633418332112848350652934615225726018914988305717263383235947717478931257378493139977940875077292847331001459928237817734974441266485699026947192675291634695314330467633612525521067045014510626788722556912967423040276728450112698870672129995666809930354588185100907392956630994857785766828734296661454615041687791058592594242452289699383617825242975860553812265496536500697546897049570038373496770468482273245773396372146130306750621849268286750397976400635988870368170501038974048992267870878868204341159229915425391468205171700964911127621873004034549951644549082838987153127573910215102403131621268986206528691985732662395573258768069765880461290670546338719034620462434480090136639579905220285835798018045324718459573661227545777856969931837246405015192520029130230698542069540094854491775706341670883844819337208269239285470338537763225793748720780222672215290547509888403873242065407922067319452582665875615024699981775551479891916031846821780734564661750175531372766323597314173799281900387165000529150069279844196783435112654631266528056124155293284229586487423112178453184878822970878217571716809469282372039775860524608742515699981857858656232693379678509689378519639232581725374448010770303342767841071012611757349110241228178451632380905542179455208669691383468834152609341148294431290576110453599063154458991510551522207191110321693578803019378312186908063832065826586963732142432175818937530012968074676602958612053514522640108632553241656117121021239157205468365302507035193158888926048360310225424763705216804101250490014124265405449799790041792937246797350494032111720009011516105748595175486006259620224360094377036715420259424482895701764576986615069747006350169521164305880757084519821966284914302790153488986024249786126691830582993695449606386583729782399446666905823804931053593571160782572167104051863055938328285915386791946547425937392120262118894941616507179919820858465322350733133668333664860381347425452190452097368907689714308845713210529809685761848500522869468733942445707711534553252823570441064416833428548520692983485282359833010575572652818525677682605581125156893009049507830041958543961462839836084379723094787053651222308364542083400446953988908511384866943880099491425371494813109871938897630860323133126093486123869504457975713586996727154819561420541652229486202043049520010328020926468519894649341037179715470284473399226025217072117053206384981339872604283291343586635794909766823353940737018257943713573843947117596904235203407404923833179739408225299626736552918952648378156319217647967296542867951753458719554390491906740822102776374735321076622670537666317697071780994761168406344651086697164217494546808408064481299948212785248970604880876337597686386010955297700580578381936747655132587471317407727139545593431712748827188704961075143936349924097720703328148568516558636442032736945008905379996057405028139050338656550777866112333515532223570149174222126637731252665980242871257551718860141333904486660665625379473554913262903837693222678569557551880047565895888433916877882644725929533547175967083303876448432421387163996273002489909581515052210614619041079481159049542362023202876751307578200716873627517207189167704650657151896543762212779293374181842213152075498994369657299279680798959839446923504430541717702584197704576897094179821961856952483630954390896369984102542278341801307813955733916264012034400593615479593504517009313508970013447684442974862197504579816522162923706272750843276358283179771519156824962373369544793933345759591477537753788862856728637827516870509257219971820214172715527526480806085423785430808979725287489767722317037965335424264314442305998350694838977813201149626573454118742752706054282787604441640130666275655591935650705189089411996714092926609703273259782835776704351933907998587557439681458443869508994796247849690490417653672731707006479117965061913876684525953700894345850417989147021696062241949495395165695800126237054936873202814269956956982364736144079236606272039579382865821200228666381536644252151883790917705371991107120345429512481498292050486589198000305160530513356198752274540972106246891434343914662704318376427216977553549724478852747070857607000594585377204827053600080031449172646656204389506366629829333712129740210634185931566620137759166546031376237979541030824755730699171731551566003226678483152297042559652769916098665903475401990412474593230114179133230989656393896325124049071179507861619418722596856736379898172470688857285934042472863661802933718955476781928236484343863167916919980356688773636128726166072429964049326563819232325390938688470013891120007727166345004151875977085427344354230425180327996605390801883045929032441273593761218511611989012613126362750065162974952584302781613020370981050887894953434785059755974278731849623341604876017751780735934649318037249050631698642173636206177736555675064816855471514861871928966558401342813070064688943938523080823392860910416643560082932949742216518012641546435483143162253895872953108944105800840662404107426808053944160783680715710645736844952660246463970449347760591589609337147966804277559643783841498156228908573001258645704304948840258922713289299385018863135877201271681374956371684440213315466199331593959465155593972318930708961643800970181080010148913022595720506467492408490971467090417698491000527202681838241475782525328610883279778507717673026240988771470381131869276230269001594473031018922613151139057830493226388392059163766053773770461887282241111988827798462860678415049698115078153943956759606489297699465621941456607620184379006713642114248813695144472192773203623894483116678442467979392220283609919442020355296446650694356137769732726941017208380780253055688290082636796153618239186592531782703143467195455847531269931416572220982063318053511115639733235106446537389791583531344262260275162624146009799484137948083195028990626786744601975456486550842445892009633085272272836238314964055130809349702826802760159717300791716582099286432755797147059386895464665980240032026193527974038219196519068944145465009775966525803485385294390643243060344824362216866361295230569711619572431466827518375062576670691263669754115859212558414016877154207742606582337879528325814068486175826731052710860753290791416323260815491754937080161615958706474972145971227515837083431387237975658525475706156282370043558701900595936056335858103102051525126790552460322172896442455707493861423213814274638754246584437133241004689925721424231673649307941900548063773304797597704564685562689629456688437854398140980694584559095412363184623907642351300814403469221345910580006190196187745349115033834229650127691185870701048334350435531952015673682722301213429874375167010515085985083475650348253781848507527648920995933158857394390182664625273081429888673799476725531407791517989340627457724250460411498963791801814265838834382900271322378075078723241324542936724841431693458398607572946751796166908916726667664759592092514314787186695928502422592206253420126351357619306809969669556550513831843063362355207655246226250376377532277902665938068391725761508432501716069883781343409398521375592733709666083812097367163746770841511722646149563660894113253870532029476055465370689750037591025345718595220157148798973713886618318979149868094768583344733366623507183202042910721587447427252517159757034286800770369629172217752475605392726242696293312446682786796549856655514059566347468602555361691579749356611555885121243090759888300814803439275778725153146922969305125707815601176006356566860561098935195543067964508964315329319202571965929482904191388264883900387799670661335650992957867280874865988748118611318305618723943168271193716598808884100746009454561706035172810823628559658686129671863284511341167785196383713888473855671751627028624523688796193882055556355519856551695761783195086679280641934928450342964755202735843659768712322356807130580284961729621292749923982942965313820393870246525558498694362106604575900786578622922873050597500459756072111438592533844301808665771647866587200367654416410363900198310153598834749311538092361969395761233102092115334813392178048332429245724583596565456112055580643409893727983104465722641149228594159753493479307688142701710793216344491042842555829322578717734022260794932214826329780892445003945778919889067153873402026644398451868549942871860033925950975426531883343519309738409517580980013529668919164474883140604308567825163260287800527119965427303395460839912891887313857788069581458250355261577755442675678920418814160483399948309429030032275164679883443137512523115302256558532195113807581838982326590003774446225354533143603026690016040884105618450130023247185697524924968195799466442764144490171707025366824739747434918873452603491303381305793824001567704895669282260897675664093218958413866218384267586840211318128055871861961939736783763194641827825937493015116268295112863028187414897972995989508158604722582065596833807837501158433164275298640197956201534580831666344694946685182325590921442644891759809192727237518087691141694010355378983380643506475518160537592129165227338093173118613821380643586541743018656377202493705995339886632445987295376199518509532598573258920011486958834005375761676686033883114850327801610173081057646779382372055004023665984308112361532130905020164370915381908534131877228297120992234127260137326321974427419487075696173960250551896922531927788622223052015957726505403134283097589662819910587014175865267769643955129655531830557087336434279969644189955912090099869385427270751085833370688895916394152905369266442117117201184470384928490674444651513797043361839382761517425567003345144748492029517067746295648360537687227119318985169124122170921427682387867235251237582613563084565795600197412623098864308816931269406681475806761318312761763907278519804495556987509463780628666348481563587635525686465940145046333788588822358093810275091701170508157310283881120020775754344582394856979863403940612851038703259239071732132161539643295151485989782421049889386518206909992395905589767981506232832557731139060068703598703520724910547008215440248873585358271070291269973300824832488850594386201193796748481774551629562914371330455998462275216899827309545290188333177469911905720877364979578474505017831691989094463447385166491337440023266660437197321324099365497888572159224565422259707009521700040815284311903154952458339760129296158362324808849359408788234871318550026674621171396838684444529709590291726192848725267865673609343993197951186415554873660857031758516255127065584386733990308673870006348648704395661634527546203230038599264179972239990641281530158935139990961416870906918957822985478417882558888807977145583183474680752237359835487904645821628684701363083672180236647636368053981656787961980859091469028534892367209243516176663068787007665021812110027655540757307677983416021272857362832981162212971182556805768723173832732117271330178087531856598345448838055044197630645463527374100882018629026177205969101974720429324781462255405695479710946413485159702128536994509940255962713637466331254899977210643888889956978228171662378966455484646197288624773189407151213668705682158211024841722370468416141622246914875332066155972019227614808457321360551598067448689476800747979096505072861845400835424844033383549981996539802111923840398781277026721949421546028419740285470495793301959914262564670415164271446950268087153274915861446542210527908791929255649534838406340102753349678648669929874359139127019975575310230537247369413002481756239221470317523345168435214482880867407333317084266287458356316191690711294388518376361500106913906407749454900449750551823803889044948748049126456063494802319100205190699116282155269801608934832749471360911273005477407863796696421826399678901818686944115177726766263304392476421479968594671721961873088477684843228163578841012332863864588132022090863278036559638528881945955982482793275162783046584622831503090715067851942826646525683272720473723013028703175881252102773516587040531905599919517624872355353622946231814591877966955700044275987056638297844320269668678157057393759929508549674049479833640240000169174541450381183141056001979046622002176339707347767669748619528384325799345495848123024294041245777461512202340658000475265019990636899969721323881065548985613150015581512882550470863171113332140695364475503806772384152219364862949779482100916096157973054175177259780928887818298175980228588054317131110399812932470775568384423272704789664274626898611692172582785503993505095082916502435299876552219964866193695019502163156570069778982194632043018117449829076382647882230719040448429202393549072385986538023781652230529792394807821312480640543038513154692036979878136445768614357863500910471935651293928491944831032225012894884381880768933387082098910617128191691911540147362836720346403236273854877646400453550305494371640690211169835741912011968508633617405400791634214812093479253312093556348369268738838452349739830800710488955448096486613321318287499730226030532155689833523247543109420504952126987229533330012425577041312887604080262449442871589867685173493572058474927086744265499158386832447173093285656177008344707626014596248479490484895599690540361435771761419729096399842104701839212648162780615265808049281563867294960133234442668832788589542130341912007445894927307489526093840167081864984948999391022324085536120621160581915378201384521860131511083695290805923647020137403322805338946475277752322644749146475972457801124494783793321931241049299314576137676592852783989169579998585605561961648554782072732025996426984260065094511712750732607535377991388231865971456999097240219078981762024502249074974211261692979358600638088397104544699288014532086203978193731504470010676003034343472539379902288320959701183526865060961901343648764992447694284377428451611199077314349771186029031925151003078648612259784203426870514504094896350116120550288885389000065946304781619796857208347025979290714967764831792989795810848441093361178224441255554395780968626348626109775225268747406389109041664372481319327206425219046552362624179855616828446877622155869595520482006711876146212978274964223828369252061745191527248956670219553563454883624335008679317986022842943092538759793476442342801497553702162672433424457603956908450922140673402649822628543374328764304330315196941903063212427028647603403928884525555993101766919124657764131221598839712370773885768903115592298994647366513766055697861795112796148981207257564391870726259723669136329126204213551653731708365525177767609818029713254303411417425169297695386627692384356536123618021957852186389208499009848499398573206907659245496521792234101787218107198776345390957240204141277533499828489582952949734666931607426249086841913135366694788810914631417763277618655327641505828840988407000377634133460776405195103462114401322909317902391197282471814787413547503004163255984407159434509420577819371413754197749482772536108470324777463242024601607195367721232458115686792899727248309795697671777213834804178856786101539412378678413989162304252023714958076413031872951212459871895606756313869185922657082317851309014943961989727089939601369473887320199718751892883631469592951547041433178300293785440843220879432396583773212503977730570335820248151402502730787676954151256684812634656391671917209468531681913051116255600322539141060677021287400728320726783640074766282285681663815961633764111786800541589646392505912855481732063215026725896414112519803270627064858520386766377191253077830235507651307357140545672295091173808423266677027474137041857896897150231584637766853294664992871369820216915374888498349302793895575503984391436330901541110299083386447805292860497367205061867609129116840638079287788629942929232071209019853600458661215665810688541807644846081336454680207907782744328314148266433878721996239505057575255148772608244916209437899389764701005713477491437624003064006288637561990777493297244370600639525108712888292324006717085519280948177971581869369232762587467256165044757379474049244736729392464644376815243281530758934358291823695964875960178361988226897929494385325585724396675910823366861132136991029437568443150483088142274806231260950654522744212185424404639403071132124359535281022752021773887826649806832888564667757609027872321693855319570421432149624157068110674539400268504953115838896381820532525816892991290319228322234320617513915581643989725860359109847294714136862887983828174502099132600272118571712244989137926083548859505537404254096979406183549818413321155011842706786293297680916466352258564152613221183440357964285246600427457583918927389589962172227877075483633709484950479273837459326171779116146735998090197897633106136160552866658106010590835039025215312506029922251427631790620622019250081680259865029047938348124207799472121238641555617012564144420295405578145866093064291046094001610900098557657838725428543221179025576570525067164955898003389310453842530428691316212743920339097610870321342202445302816589975993942950894622678360282873197531364329083616227893408860011812655401702229808733791355006910943547025426329317964877351428104428179924397534447572811017225775154128977067725873474184633015839526041451122862209035490094942209230265412844992763069593203462926962160464100987412153716331200689672040044880360272758975022579763795420160914898575393920433309338849997044016076602837882622423153046535791152841951503745190269148561187268063670882398750101435680778451611736770912653982024969634968324353114353001079974774639491020352411082155242605280601112775657103699713956327352516888038078446781848682331665836486572663851743348870699027598434038033698658044023112151549958351660481537173927091064355864968484924227117537082545415263516597857350206040819865916874463195714429972957874989481596085076459877255438743504390685934679393012962515520920213459489198346221098389138001880526217235536187743324921007406673141174964445303243023404485211732357259109889046728324453896510323620285596922966212750684194466256816383162547265544654083214596922316305660715778109615558578783837736452243007928056995344776716269375336719087849234529259616304794590594202710681647967549034418010773266310440388361158671950261239382847983731019587753957794617404620788599197590070232628008888912789985088795389600617426755941551082023223828510568258256559470696787386865026976123844595753346826520906706763799679652366424305244719016502832465973560916790092130758745985746897036135067873551547841770144151582471584787153624169267756276102330044592852905702168188733441189569147208814123447510347927259835785234098236776953317145613435323441251862076545478844325137627837031319357497607188860449573715665549126766818963085797085694635654032534606465212593970230852525779217312198914739472313434043388688815223337275810202751920972981804048887544784030530266990771504539414707381102648237806542419796247647364305901208241372177433490221458518880437109834421037816054281100516085050920986842177521272041535801205991126500009718044424933764736784752493225833329350251443218529323129822067480841398018423917828330492544960858457803487145772518711944480595999581478234164388370849395521129742996583120623126800812778443403184888944727888137114742684601327007292685952180488925892286032094607847527288450130701241526941510699960287333348794849293416314039987839385694377471446639834613971981247775587869800322475645351758008868999684599041138469059315692044450267945676749574115043283501441747604876131026769677601379225031925702050399638727067500225719406317318731265874622124818585156163182210672953515157929016997410401688186346892676806482797909850904028332987799763384671115359297401998525702550354267916846209887248448990843704921595440371717909076770937979584245710437892557257159394009092461689901047108357026750790772819447568370475382501498035857941002344746721249767192508800480235165248102673641933632068892472061949453288616251105281376523654063434621702602277472855143090359238027889633114132190507871852455099214108348340473886397710198511155298988691068107367767460116807490813449879475452814228096213322085714777560740033510093316296981320078254814775546272970625534327937786954780291838356401505086780609885935746648024281163377774025451986502633529139166831760584276013421519600586220574567940452944314311853808260839892231172351383179037604132982768638418783259230985244631632650871056754271338432980511875300485451344126315050683641202206409598142567304417816430297906402003139834386131089532837459059725729823019118983629766292651554082214793889661568313399329328914032569612501538008331363533507240100805009602996470302025898299900417516752311961919390448678170844977105430289357197195815037047175283490749334962598910015485156193474906633787609723090707617989774462881065186622693810688900335671702856513127631073151227327518008796390251624457900099332030264879509836692268305258280773589376368406947384808769470249399463460784851616841360996099411328197376145009938426694824142960404536958363221495247618937072167733738455272365783080204895003319860102958754979513388361644153046317074625594260098672776138202431246041613374542913559546948783006055961081501341569932991300736099462941775839553044839165584091217861648348342437846865945202569742933902995367513851862884554432540324669178828694076969005774832776327953082698515488327642584182355771969832625382925232480028869694518943735396148482001629383149266604116414509725485235210663009417542594092866407876736802803352345928398978762496532549237303791211398161112015709745286014694754175668524514364223906160484647675289919342695389924410276522397821632234479645710096923860975518363453489557303874414339305800981617220915262750961437014833238375653758214965095403494365707860797322150143216536809699109755986584744265850316832560054698166124470425414944384272820076882151560345609690052915691049125544397252237834596496809517874533804371217759697290083234114410645861053904903155505126249356466904809804470937980973291657420650724926589105434875431762186556399727098841064157487227759227274245075787417523666074685304554029946985438903542000544118937152457499506309610766805032638697867468243282594002221501365419397570459914319604310788492355722481057261735241513199963034634748523585668273143841107639932767686072277746900639405011462700082304679857764000977142954821932764938877370728692717455204273194121416153667292298290437340333095969282370129644071100681210898682167693140891620854276539754022945117736321092828111736128651305254327686889029226434500107601729939449666382674185447013322057964024236475825421335157980116083810265550685623305405729759546784543943240929566290919973090396467814415039748816599189272710452405100868031387012685299253245148361304764291713632785135994663046993400629507196213341063701996693939318656016262541194268199554822502080588680824548058058930235250625301999771943648007706446326255788612035030998911304399268154879643937990210588733448936844468054720349713491960683134957994791834209553135921192457714773524946904138920236148339889988156194053186737208436111504233337520613321291164116972125538493657686464618871466369701630098728331704320837959075756594261123063094001128146126766002102307732329207102719378805046901582794431765728229522863310024273698660061049387909359483115571991068625000121406941541972765751333939766275523337424736444175141361279311856222887527984224298884287290524841712832240810776748780926568041871969884776663395434174290365891798771214470673274493517609204653037210748906099247287716383162198756470986171878782947300614284766611168747874038112373339516532214761872124386000107813471292593892275210586560334381514187954197396162679492485750236114675086554397193514371780784312806713972064315427197718174518327282378736526602022394736018860315088967721501320710588836845283233434008733069079035970685814079292923270512088290423835542995227715163262128632411585052386918684272633047533677010754298064763047397980702119766034285328025786655840343496146963797588222042557694472397423816260367247401051379563429007514637809075403137405979621374697316941994044642775055641174120303634415464761851963668118657967790356127185418567615770661508187823107925085938225195635042674766971030779240781769713690499487987082746938448610471428365671781398079603372397207263200944565474844068469365943401624339619688813380088577391280266106631826805510716267605138494990942025383884752832964359267230725145126795852188310088432893073685661029319517240331918664468807625361866274561020879063798490828001999611945756246868131886489739925366292122009868224619399523894530339195528254414936211132947504310493770497399793107842760603743069375937315255741870607597350827186493091865522853644728742528971067792199723677654147583891699946175544951592725116484036844388186654491776627648137813393227516216285858871653728312961653137656845715651922794532163685532648215342659441390216121242136966027071666063189905460720815100179243877501688572482094083559348374470467137573333466880255993620748745605036583792003199123605686818355230946708803169943604445724275007455777103517987357866940015549921968591908447805175751538223243486203108242388528982353675218850735400268655835094838254306448222801694460928045382474063923785727343241917896395451076909152323363068460793867694086374790316253045983143961612743002536799452544114384313715890811839700396330483641105916364236271454176552127840304662637387877604747947092235499941408184060537272051777044856452829245180657319745469969696318519357635492314439916118879322919291473913982849635347506101680479133356428481820019415312017439747173098200632262249166185951118710174623875305553772293724994690746767086714859113638655846794623145438461274959519445497879851404794948903028025802458017986325571099881483476503195488813620514380456209712231005677092444307651881282038512140986373117580466161007031924218361474127268094210461878508887127834023820006506328544270933280735088823496809413647582003495487038153643539496791863512401372769125955361859031655161021594235076097084873169663001385333391572881938407171310720988340897181861195979869168367118368379170863094144169470533879644753337958900574780467400483699760592922614753049682320846065105381771041867090942569239387008333627947738456357300439843268459263776447696920753834970545366895933456300483850499834383994302713257446657086257556633858399408263654335383703414865454699997256938858912357819790895997099193938258742687691035329887152998256735002147211467074345252196449800077628066825155658280463309574269733603064880542252109552193585914074482218559468464742636780471558587673270224616154271690464453911098203540001251896580994234033776837385755894552471157139453868096816689613278404071499338441473172670121139295480733052757214624319319732704689942225892483255849284025174486182025384981408363897314216056750639035068083824910667518948036297637703102543149378770567802762871108169560534614668530604319753008524319041027597858070920160758327693023763378316242880537397622596314241687082883667740545104610141728202932677757972312206116965245106644745175964691456217572796239890011988004975994628492029045606356657813414888848747470166928578852499237153124702412263121940657010426839374621828686385781615207607453246699846674434839108440000245738008929813099273102308684130724606849875475114830293059358176129789704811864829281952163817148393818225208326558714472200684959938631198421846015010491225840566920962033632496193338874414495325341914977777466638400482488662150230565456474171009783586827063224579161546163081620239673251583487681836527343914612451002515308703649927759208249923576386295232137732930407013203504660333525320051916485289710358996221191897804189447128995847075776876342772223865904130042793828685489875894682282124682119225082720651832791128703635595189555895217371796967931483673598032486260392726494222158862950061675838299165057256554754897730078395296137982406100682193292311364935670757241258778435220490157136757727106054750982105234889504441801725761729153321398176059415491276353837515025146099311231368165594342377356862919605538053168079255562513008712717506636025880871377104265316347482612526289545259024802465185156780039612998969442413573695714072744764010573367777751509307841546283746196539871456565395174290148138830032788744860529190898598782830801901479457840229081711029177389704962376364571949936727575251850366837076408863650780615137515145858499997850185989550181735483149370965629008883602340155285955384620224114900590118247402960974510597164475694092565007833308882813845115626303095442256467007995005566562427690858593202633203684525906271384607108835491096572263315668003368686735855281461461696999048347141781708747997849721357134944681031243724270570578876810272888131439503154091933229049007466960690832398499328095678158101613642702666799577693698925109713677626163304159386590595100798503758921205312574825010570375549839192596583767770378898257037453466781078317289962294242976829379554800278213843869552830878974034573941140748732768136493589379259107036952184204893921707467228331235742815831047775889548543728420921404630897008035605237344970929055497367375881338666879638374824341471359794759860264533207223089851957613712869705880247058932146519506761425029845041915429782917422489526045031471963706378267940901936508650195751261623563419769001888288880733943311521332472846385162892090609627471331785937563115080578726146274659630456370020173725034539222585740201247600929321269574270637728651837689278671473036720962271144762836228682152094321487559567437223174119577863494933712817202300218317298332449574300909526356664926239346372871300141250006394550210206444255310682827385146610997076165473831676937387246134403735056899903391393791259104427305692123513126686103644934178296192003555531351197557694626035093258391013554942964791946694395967369552585046940109726492739656233874498360585369109650342373773098735032145989868507891087719627949375401568596750472377775257117907286476907831571992130440216926978750622245909445427237687249446246647749638084966168201689402792517550850118217779740603089338470593170929408927528893890193989857251777230646251475452334077152274893670326936374716258359415406492423159656122278463888174087285548113480523314908784273892717570713286723491182052000739310763631261235676341995427696665729658170790835512300061236721513150601035653905875207618728702463300948532812008809860103905280802955519063290482530573213896990587437656224825862519168235546423144014698731634867368013783389903325324743110910649742564317363006446281358905430801363778001689338538198357660195066002107941940286164271899985682189137857937711461495735785088932558881930275463156587739853271695116450761583712890195429335108294239210800804467085773614311535383042141763883805171908038016313353977918021056425937026243217680325054670594869431501496178032030904154806504815282976420500602724091244908073550105106345546823198712700093518457149105758457058263797604450760319900813791035159008572179898503613680911166092920915943450600129191404159488693363764324425061008099703072754461523943564141449940142270428975997552950354461892729111982506821810638662516312926066880648669860251155329819067662649004965073402063296685306511865566774896723783811637950572118723213295359599008932767527900577697588064690962983921200691423284595244202288871179589610632096546610681857771420525737147976440724234824517598166808179255071914767088872071405126321078949018893503442562717615306208078644518173484015582438070013004298744491083741242179729860503029586322246432934185388202881473049630309860761896294246318963549744251176692929784947244569141258513195132120628985937168756254015290382163422348362776820271630910810814975278801572111321450334288653765763395328940006349843585519346554272055348688386238437570144460079434597712427352868700449335921931704292198496922456430434009720221604673875483413686419608846786381780446603341551244655362869955243420853688056516698956464141561474284576444293613708015978794111211735156726860949344096598495225579746284532039775188080349296478697836878567562818417729059224227424326387857742459261242704700446495526002532389466831587711622861261273662173807996106874550635859078248252653777687615375707582684246127852059948143699216548844624585094335182874589129903704249508642628710722305059831764615742904674092008045963079253212474361203608162944448198949446515752359521736139294306718400592279431016155515065373141488621287988959200782630317935080286631945235179149055106467759427701557318831709026159302887723615366906903465015927500636796246756957611926484359482511911861689621235282227386753604652954349319987111218305582154659489464678337721083459221065810419940140297615691955619592940595747210123796802158646804378690218604673773706489066037737392467256226245624882156472463992605434073066319693988405615254004630095408826518744993945306913974607258118304916551595353122650299646154921845535919071790414912174514017014806308337589782357034923338563706625324230387897359834867946984431570185834236002268319998231813046256752321460005424024086523169542021048685670882176840979187597730660367432642119880560606399473465287837245434563486348378022631449459062807809565368268102972227331787712795245964377234435953003354760520214324055491001683589676288035310597055366426023296209026731407303094950857352969143779059168499665861699448361589683800254231089969338368326704966089549206366579042593459549812608530802114791464881343225849700547652859896030995467309971400245741279553582086899502449624470730584442099668366101470489319705412764046173336370931506538189081351971644267777531869527332968360697063760277174697144246383535035775822538357719528866512893579416728481653043579090109399183363027651291852453518101909109084771890523847083854723550653824746324133212309047619655016840242581010842021031592558990371912497834224868580942481802074964064081910531359140931839637536455721687198330320602679801085759619382955780186666037914949282644521040679619250406289873805932979010624567027299560267666433441378548612584626549099886190859005901536020916164613060895515474590864607047019074263108574583771940905021499074025367507959175247131002857479854037550781834343698950668229506450730035283498725081146417184341773202535736720519424970301137137145274463658953726665025775024583546044589141663140460307377519429521937674833097608999634279172695570643156648630323419115293739923447255491215112031787803165943619016105863876807781246507371631291711164712340357180300943826568956643031084756664637449516415851497925764115739656937961972915797078488005821156302671902873530210478230239996830761244633926506742654824501411573317093469383478165734052708330254113807726261519094565349556167192286849790982061691064159760294787851366419068724329683417186187310656782384044421684790261522045146563402989281818109964705184906308801289072888064500108354164993717518339652024480999979557125849668310785458231179021239991734654112786451699005469114054616622148911761290698031451199852221960610076593648467187365087656232358152123645912817544499353226010384897383314220096753685760611221745212322130409321067739664560523381066682000008129584515933566656823378701548908043177728778696449044796111130749975718382052565614234432638394785236617386668382441816987631015336793407347057934956670442367654714526306706410311786502526665794135659740541844325717985414312675674942032667720581567765215065174059646683986403969948064205119883657142097149334865369654355840140223788497717315792275673204588000864100506646281004948918471114128139607567057037607899867225921111976856395036223207620492216022990882968434044313007879429969273519516194041100400729322958170174994152521337082237351525791021506381964251952093711874956012101183678388282440087900541259818804597067703930514237909660925490265916335115150700163446128424801012873203616026378092556089729419899810807022831705588809243055750157606198452176821780755748680369724344478595861635299233095871043068070578245989566822205219939628604918950702776680742978330627360003790341251729485747734447469111034634614444926179311414381380040984405875583050375651810342762995235352258612084396162593535730803993593709253265527362625779946510445967525599303389155088925687618340377036529844793149157889296940578153973221744931750267085324446498185618139868297578215668972555341782990385474284895164459123646468174519126316176203721541729028477636901241566405066188075186123874615853157912607032616462696109110757091923480936300711130924408257387771208682340819526876101854356343506472733822168256281951591907933188691131356598310971273418095815609292109267344852863755418944174982396787658720709346661346386755400116109522789747175528320245578311334142953071114960027509368660118873512949540506252983577857893832059426908562006725210304665457153290522095400224280492381552714409249478804532346154482861565803096611458713090681033785573756878218963267288293406484939370264457134108523569507919720245262530973436609128809275714963012876052166655772670812531353364034035902141788731329207678801827542794387644525775077144187724303179917998633511048835713383675512456958638116750023657905474843726551317660898423856755251754691390437907743024633204832284973308607053704883118744615211613674551351560782714857208284880801264190493548479344749037290576773792573026962847461525879523732405927525556174794448129568959273853239364990339536022580265849848095686087014865805191469394603732862925174345945127035726965007909952101588586889790269422188184962440817160822773567154808233880930154259403983120235837388320014376306266179417910974249252951235687430633156037130047120161122798460918285081211790369107676084884137948590639451549759919292310172768989473610999831897838572487423356663936175144204132887121901174654747891068540211801735844884150648356750483598396322687708808986233902370248025794893444239031297679061197219959362877268132874538055273746501009167105284893233622942504404132488924492646263674547615226438680883134147662327561873197335812536602104275002723504756720591888190884623156887189244641806036104495345902404766253689406633460033254811782445873286709928730410729892226572363999350254261384429228415133283230759009602248650389942169415119751894091446548045703675197066043024266538246652416314009604580201417275575823936503290829409163267105302711516244453812445375641800692633687997342056398125992388338970160180083325239661813167333581958552529739008359883874810365645842915355341645409300224974488526218482274086212835069583722271164882277450735834821594862828096360621503501384290149835770116986432439968809200516038444790454713623484298049036354605071606658951572616156880977082892180901782374942801357852361654251267321150764118095475500666726079739268830815246708715374562326052671704376606031535808608769395610269340221901221912533068304908928220418406008379806683731136321851361723356377101752620914851241809112673430216532978643091618335056003770320872832680656948343224886329948326778376838887708286721423681872684018280604061804469834396489054080387369918267846882393342863191433895158943956265751683654577656850589572034943945446833372429257479115627685747031114490338535513011852166542313349440764482265216786139991386900101092355978018646924798825930985217563885976428522685627540707706990529589083286050559051847303994601144877697251990641585514666002853118272651590620830749046548749883086614364349001692961263057143906549198229629262684558097014635090634663982687680875011444989869031051200285863042884257032224801058815478459987770363650506711263206654706323246969946416144948449007646694786049844164532980979290321113194381927401070918108971093208949289711067344309862812277022088985648906140540359743849417355461358329812520661211395422184594688398082481927204794379959198166131689744839164651667103266425727630361660836477718050936754247556104346242050847847683720578493025889548431840942552174290652331182263262915534537928272761086087155474043985745483475666732000787390928275293890739484217319198319059436690314599284256287146533147396071020780516021417236131267615857977336353513449210308130517142484777499367567986641087591917816506220187040396904770201298904220705216510658824414270268145989122513970772199937247133762331787866935564735752351567003902570239714697152041758520527431492922498412203086004437540081278960309738131163807214775512464465852284277137912290173809200302411323998868799207415421488104569539965961860322945194712375170866790106782135635880998161755365808769233246043798277198311821803570803470162080714256368989058416203412875579204031936327710486344133357606723670400550564006714938219973776291342586475686411456149782203682248205802143976207371185709606177623590012967885851313529618643655267518657311641799427401718827367705312544823169179290213745367504268483740957653630709361702732508224503707149069866556023878012568988362248007113083457152519388528718707326662715323940333199919419371676531278003885863535753117650847179523541850584639980467704864443281876263633804646452082200861697810966061294187375547245714294096720835236503824534833360351002128331251149326152973625684983134346475720478867530084725593765919072041491181441063822174754630899438520443757339016484430689849076967632756190673978062044426197591724029563878569236158061234418543207747249613878580714637570965188780969879075290033108892794082578665248711441042979623298683086258897929153638032720298369570273411060234828767688198611496356939594202702531901789943143934781027366598205321005423022074282542097408913428630297098204513503043643822675880036431601238338893467969260226715626661618682640382730606406027028886817942500220492844587872370267681011355429968127663418582680770074119326711598784993235700298352515178830650927586480705557435748893435505859031674395980662188164414102919806527836238483043299984966682632755276706438730169042291026535025325445524096945493076895525922783527929896823529202862575711458276840202531872526152556283031476890689019771014228794919849867327965058748721762526265919260397652137657956576293916974776454057939836833235390135035913909004302396582985760604101797211400804455914502387396411445252661985062316978091212518695712215128149561703980414892655714555684606378314405196380929457111908862526070631038772408594323720575632483791729661069523102148050412911305651382817534644705122994163080875230542629972069641901799829136722342156499234370916264351307726918062530945752580578691369792938134559816558325515179402776773958523305607037341532618395785952514583605388904726076287544328617401889242276480442365960615761644474619659354454119049920635055544824261306618374226812878697862518286369439939340186882415254218415889694404624265027259715519113060658157519798782051219165711128988497099413532062488383674082525796091785203546402393951819095489601393443694267987523102602299329788021118559136534206169700528414262299794698536554767687856662558874200608077098369669508037171584506891653614828798928743373173290407971130181580687175121457358864606399895301204528179962735988532546596940370382168231295207506274108155693436632586112113618594371860004908865212631611136988237899005765535138251508121301543098797056997608114422228069114775552404541443812238737416879723272512305640354479567239977477678163093292042464433541401773486065200429556807825349318686573762032357124951613786236873768112934303242867099272086057764968078808340444076968676383877097802153173055403640581717456237798416634149011458918659875802183819206641713381599469991166254612087270590978804527846931359719886775351955774224203336887591401207154907724806336562002748847735096118553153171088931817573006708435994946288444946128307185402308598202614683062303248626817267287253916163614460143325223115930249428016814913253155071865950889007927759301904279199774289837887224845929586634313771882979954535144663729687277913735859335994863735657890497548244147164648087831673927798013126016463304282871051531882991371486934333983505833190215139546657629391030081863392905127325189330230927737986872553911735893313248834611370054337785829455314858351159642550070852068701564588879848532876644193390121362047630663204704707811223411703017741037074967594557096951434214295478624052172647523150644951999771123408853378702884566319141956938077153265876415566465786895277300654859411390225332753721052198992115021908991455951908150089347259680286440948289079605266792451041643853060697968948708082606935551719298974227107359733796041861719117875313776517732481636126731358150328100663663068642126372592492178978465279575566358556129226085906257602886637349366992736062761513975664503229323989793865584684614219571138478890972355078642845736888659309682128412561903214729287959918864626899596825904250912837297213837571688332521214092448495185683717166717074646718975921168982945397436700197852763899799702865523407374784672547071717053312857491319418594099641040997672372704663917759476608854241215094031016320550945280264524054085188895829559085941158901043286117961573773067839438193856376655456093223815842018245386415833143769365936980442390042539415829001989384055837695459332302768029354173683202167104379244194436823235427226720587422633673446813476775567216395668590136072443339071557997337057940566303863633906464475038158166395943179478835197254003716807202571799820747124220678399347641023736964256865955890658302568139589183655978452405072420053668663872146330384885035952770356156348531733233514047117716423972738006347688028834477105897310126229387173467421093653125252202860580431344122900824745854074287782290503989354570112364788745889584088786159270455427269179428335520484753047240703636814017992167633086989033639393364773307163681749060288854303006240769083920182809658309274155811835043295690449048693494860849643061509738217776500432261657965374190358199653301070557167172665975286920215196394446913656037815547938108059448881893254702978860239746505589332889616402731223389325207572820845516549728412157761370117137851644400346902675689604924473503208735740494492359469803454043044996944547684234061168241125549194799699816932817302760678656150478393943738656344710118301115882560283279310521708963435623599280214435537338195020082349017048979142174992154453633787262384067626870559423464242390370764275434893684584148147349943660278389908794386021299294521838939443640049728116421679660885082906741648772301550957955330316975349910499060121875705149353219688522356428704700109292023147307810127309462197616810973415864325666376246534857524674528453684468355891964765153459375665465782320302448044111797481276437092932669229289981388494728860480671293674093771369068884298242166096691221450409438209324040226230876715766204413802346717505504044238883057808343074000771506863019236976927678541700076528890583700497584176009894136700947766123333510655877985553055413859402054569466668591823996427240220022984372726775650634201643789223390830793480935970253888192984609188482902419484468502071866508498516954365676819586813078849854227851160068323341925062845482508033058546404963278299708488392921680639731764994421572381623717757599304943679269272912699101814540530570081636098413231887457396091565106609012245887014541596224338449383071289394607826463466505747760993297999755070235207913189774156055765018237303039712371384415666168096926536094287231427870775343831286145951938586966850506691160106064647586015257427631519378469055851136130137830805138912772663266783970886961077401723207015382588441201269735870556826377167175057860909675383154986473077340061511745700698360078597918216927876960815850986907034978311897826349797792927739280971626370773857936207687562608300204231667395357761262279982943385146384913222242598624165741211959615026499051744208283423879688282574806783071181697277380270932663227399394766001565505783883901683107668978780337954352455226360344071395251433836821834563958353343960690967422161391380141406082441112623293599241355580339950276619734153048868740927690923154174701986866804415305883891117325771870998356669474621747137688375557228913061093521817580654766513033169232554619139291693379099547770312841008593650392332278903811866356760335786937703922480049198451632135862507839524950241777305544856415780234047169995116240943360067459805655487388847424371119022989518050481226194698875283244373460353213957238355456651540142626928602511893413325040566322673871762555192133347524626180838771589222565492719903551512135204797931087017155395016089319679680950691202997354732314003936888375342032543109938381008594741258665678967317477845553082329656059443710832332899258437971277673900383543840377532493125304844505303118608898019262656471940900116565510666682049199687775255073186857474422178428415962889472662925838048366263510126216338141886851891090560038997255894685004456700690592569109090254672483676897766873080849568000026375768817981891169259170311241462902376311931158619563528607221543147262121893776216974011297868535641617952793503205840215834964639215676900396015125538474202238807134529825095491921255112559974494662599832769637731907755701474841070583499698065845676638961487511230397513610765471437073361200508332070791692972758407878530660371585881201885005453358382105094849346002673432821276318838304672095605216673110154045137747337501376848628151396107988176877423546883096596796028321979824358730519977670636000281954404515801384218800538586113719139123898384815715538813206799767024059597636529097942877673658661553368934670655829704926298162808635443811897455822625997843800696214121930791369781798510632782996583889133546028444375769458195984978013448803467987559164111055272101121034615877783403531141208861085055123103190286204131858550182485799100645327777317961232284000588324967106045775097154115478077822298639248423465644114938021581809756443743331369881181913320519023960349121885930019433371273741267789207029682921855585279341571449523314028446799784088371541801041880065341498483475572046762391239854429477951818707018112232624398689288810927854305939562173443306171744266186985982563900894850740227482665605300965569998481374930899118795994086163114163999937482079780310830338512526842270668965439135112858514397182686406176220236467017974590810890770979350980951742835172869716328714220100500788081163710903235162630522872763862621219617991449133293338021228117616109290479483440949647750963566395784289585781992683194918963790173039037506203815677774812637334853326787320010040694991386190770754272190220761292510482194253207817759396951070559257022589642354518750905583614961045401317648268970068806907064359685662588195958503047290841408999494929910873579151609043479223390159689919397495084445912294735353867592706463380632389985309543610332944998199426307836185546528886507971659946860767974384273428042647470856678922249732063860056277396424896847043001290839960717145496003281340918141786502684616569245088742197284889581317844663716952284149183593642814002744616768968503602613881095714768402987192527040646748256134202425631847029370855129092801011633678007876065561521179050894582462144766522365688794122799098610481320445708203167715098871207403977586688721925105881070285355705918464085926261885492032200520802148728475393359716224236991207451877315106476954932579559078949336622062043500108945312387353739817964534122353833750101109428046480429361264324521265470058949931425899141276833677002312223878090024428330740502665595559225885962716473087426002003223106775121214269500741396536105243095821768362582314451080745191048013841138928917558895493665578063500055643632899774995561402644098492256541827824755877158826558766113519736520982861468669778616188194179859808551490125793266136901643888898252866898938382105533482996329756301660642734816323650111281889554770892393420378979194133481861900348831532729089079343925290519682373041037813041107700672111899189800640848080443047433898747937102988024598099444548823092134595214502480487588446227803751183414977288590436503949851690853130153040727352282998560641538055820636923795038511704184608631425153853077687345583433095115600647241595101090559175323768896914103348923081365204982167592690298292191363531889248183079498956172397814258804888426487720172553349433376371705195718743567594237286583698242856385069243799765864458882557272745254814999341432054531638068312549147735406949838591958471187563001538399386717444963430519702923968923957376121069714460020236857926302819915624437636822406971766423618386372892386731015714988933931722939101800699073360473918015072340748465964096343798908649999883366999622779738929661184765497044960913726572277774662996743315601507168269423469886763893569563556121298046616150412739191880994647348986321006897334619457714905916267446107102972765916898076086825767870729744497978222306206602997261962339540671980888770009967457935204253656254417340720135216472993677098815460669681508014549633319247716531305054652582464011862203417285456420920340065837066561515610823856984405731288466199606974246654020713887528416508599495295381958649013152476985891992265578310230348894440143507271372160658384721568136850980197943019067406078092213673069239223744096600595005210162974449577976375280294258933019710063956796118197085263936420959518983483541961134811142067321784374650765600140435663721550844516040960080534401542238087119547717106743738630266304615374802661038789817934051558428464910398128417438184858677098624464268606952498755084788217434927149243738351212545793117781393074233818044820707916787639129689821570939427023549407911911864065614521103152069634751877788577213239594978847144812058770520307508158146323790404848385032328000273681045590851216642181472100258976778366455070603074740815596606824911081746204538591641158097439069311111349741399765950331155234184081732784560665857416275560058185781004013223473522442470488641075349771003181995566227209466641757811761799464648191919514482006097752627270140689850290449140179490012687987901712116392325694315751800653537680971025231525106171586865720833208514874147764488538914271568415005711193717479330897462599868676189796011522750147621803576196569392261028002105321565068704365524760267137906054992693640919694596855628770605536362053158123307029003132721396729145069829174587276105267782805357698733847528130731039231172020005711322512464758238247259722279780753683545226902834241521090570518476090930831179332914561563209609128245467434048487685246978303756186790021125297642613147386188571389780519975605125441382144362910735820079824889226181560229534487634739363042213974525305081180839078391606630016569563294151696157563689660017434977142426193114944587271457385174131176890717071104580572530365150483687188942164636623439978543826439403540532879165559992284540692033331483609925320007830108612016074753415812198842561545232811261946346687261980936184898543997210788409029963044719964834662990779849032896065738890049960495187344855560154507079719652287514349917528322888042796534741702034130219087928087077555189821213678080527018215568316515529857701297055463598400425962356481004850976671545809687855758357305604192046363287931508759624488880518047593654266500019845079839005568516605227191939936218577774430126735099593747974153666743005437069992886393131811319724410296837918096887946469117411090221527064089310764464379989914085153883334450341032400539319451210249033634705255474032519844518004780988328869345712482350972260876591652056678197827489177855948126961084049319482189793403274207864486438053923945343589132341146389877049684528387378227844811885932470854122854201986913630823133883912056561272434980511344602903029129913903077000145001857503379788159357323880426659699502153279793624448613581491290239236279390794320797407983925889565156055887088602817963352472473540277369254138336465005615143480757137575272501509280015178387019540235517481145255366472722858493608385695344334855479183075924990449363488652360351696428389630352602238526743889549906402147632030235259380270884952737763048465792386996475587545736194401447870187670751714623806658586139107645001522567791156650129821617626275099418507488356451579488828471002385193186887245990256215058970316651168485513668629946696674874608408994177392568777128905440246501757125816474608928778017274431221589482691816627613147593223808675579492963941990038997374548071915332578665980955730200194495243344451816280728055218109864394233118080850480250594412021850150806953671214728926451834541132095502323628994474174160202938318992465609090127323105090373175882054034810926480902777610784374323228077658230014214038950192421181538779574319598957900827720091971391508176837724315853413561413792039220058020628204935812573849539584959717434936461685677726993797298006683369907426124404488371878465697303583601626807053506479487468806891914379657403183486044788125032180725357837612071532665729994681831904567860285203501131874004174106761711646914764554817975956687633975679811702552513745313333812830178393099244256936465585820834982852860313377436716647266572001101585964890168698810309908938078649705667590021046029260081928436402887449633446760826125133595106693581777999142004344212270113349178031552128341605453660366163791598717517892247206345502155151645862994001598799752960031026419498762750810215289487824534668440584640095198486683446589460828293489908007286019320861047024525991271656208851864060187176869562010106583973358021131563366367742598561906702308884413981523593733362788324265258681960880112394228153493008683620020599134503759124212974462806914559339362731705563322784576047670282926487535417451551080997991656786559567074932425139722754860959196200034623377193189908689330669083077103433041587554768043784077284716280264773433158967145628860055693309954480052995918836801582483065357609929163123953598568593718216890669982202354389677255389301977030557520482865558058154795514586670113275290590756694005998625337738812838812520097197509173973674111599824807653203324816633539697976865385752953144209219785153050130576574691245639148519285820198177584597375792959358352942339970030576169663396014658961596649342736542493240045081029881707219947092291506079500678775342545573594922486176079023786068886985018368989562490568408540899017801419656627570849599171051141076320495971006605838557008668768532594082921410126445251474029776694596713756851612121518569516134698475821040247297766603273399115962791053861628079600726283950407861322878463724031740325312578792539968881591844578850284627397496678552770013049018645681132684668046968253043539144951626811535334309389569955786039258901168717487911566247376130080454636227386466683625841719088365980311065716136943406630185026307032503758091377748384185369543557972115574847852391909830971884518982016194527336232090924820525791088017586741745078372811499504370678481276312442695048256138330031939896533746709529980909534693517396450295914893630600620891689738871215307923967672105341367539236708338165533213166206021979534588242121598464883245174904876397434329025870947739589050335857264208252319666542739315548816286792424601493442373212097247911121750341292693687654347601475134348158761318029113745066102664788232925313013821836553763377678543378707656806994387583717866614067580809278921068533815559378869414180379063413350715045736047026763801649715097485513114193641893002490008980624726827363155967684393810046821678312280529421842377821439002244268690330394253702630944274975530630735565445815319221516147584748895632160466125778466954994521410733652991759128731872306762543490179074738731955724752684599957757044383568027151824297112681349987286338204525009817816833493673772930249473977964351140000087627423922160797697405909440652524179064362846747975878341907328329862371691649503825205467363408682083285448622305055381038674232402927977794081708633646539476648330171851004802803750194758110959223268509279851253220232685815619478507813077591264551002781391993795088963540632305628248699506516625948374871794401206865078434888969555976005344019218903682403833537264196793406871274383946859216604765102867728868951982222160133770147955517115900482699629888028416143724885058740410466016321757390068516861247184627613590744819788422696413046191068465167736651661484371097037474958897336553802387213950703292480907974538203822821065725626599904578938497451788749367158405323721908387953253080273276651463371522849096769871896724031885410802224987575096557602052216161439819526039867754257365008894232505134181835657462729995410964330567324333183006166627105448105555074746993294025503291658725672416009608852686766276281460777892111962161938722838698995176855589247517552940868178853929076623963986840956812164017923979167907519657665742916742620501452625794755615597671587502617320524622071161133209717574006657863516026530687460959216802585939177922285293728292371982013341819659230373626783412255019150417070887252408382159622881375178722475167529990089368221260412354163240693244216615747224146024780478998644035106800541708927569144722661468047480987520320530299059362280581430815085029915595251915654306532296253972998716697639078685485417459037456629886745912934237962170878257891714591312124199114813278670020840035141053086662983474813317816452221527326031120965879452640027794804524948757956976193839895357622081174759421020009327262690751304965184159408411554073918800771350544816026834639514554953628368432280140434492589726341135765310499535103658751180387972128356776135071503268789171062077340832255818669432819867215873285430011394683192033733704600182460332323573549976793940548423925455962441243554026996705861310646435769989506835157596006368479296371144097432563441052981183919576521012477392342897823216720347229284551432635630464994446752288223947825128245740439047079435654473512051934108661680472166932697822606518097906500798476647469148472346400575747016433279777181892269427953464507791524903418701111636382235722122763691292005279824569185081951474856867310106751052627395588628953335215447113691391188409057223430147421614958986331323670674477397755651493142953610951159397239620224446368510805443677776042626228870347578601587150898069131160113009643842673359082362860394904876889566212655879775867659472979759970552317363149025875126986427089867691775402803988615354654873702912745351698275283698686296857577577416601731638968554784690260248785245285851692287592662756194474395845600753119127629746760562009997520418532542942946165265214545675480431400065615571766178712554434246873118280026945679231191172332521419388457447477321850965684910589098489319640882823583805045547795492208968368994989180053392524622249333980359596196890176693541265304813837471828001021343846856433250137613640649015113319022748462154233660633212611753168785991647738558986879211083065756674382913129259885181672087128008101417061212500741935037513500525874311608846227606138740819494007147849196992393207198210712977366167590911425198961746014862876079562787993998012672537063640860542000504818457028430698246467695084338388864536456135537253316862663236264222406195369621634919046361247376777785210537220197339511282448535764302628863703638405597782059767398472083091391440434952347159817743265890196451792813658145202036017467446060343293637892129184959949433784574326988963637950841401937703804697701720424112177177674111889766170822355404010957476108612297689498729741468573360484928278766597616021103401795083153421833383551207837742604270249992696700770348446057750448610943070637302496243493149207940707228223101757989306207049840521292727369583644229527428829601127392288898795622621926031377028735062616552020862721840071093449055426932279607185431872177667289040975212300103329781691110015399137294388547080726497107712461016273164426775389730328601471458506407894065621230322813034688850248758398720553601103699795522812011123622237011456516824861897649873993889559968294596342911986858159962466154897159925551770177439048187812220485352896194411690907485691545559190539366269629060701295767541444985779068946426549706196849234566226998991758205741648895487707403485628260616580258649965027701432036007075305806246148651541649027406784692887957338380252170467259149682587408312635347935964274825241840959230767322941107471658591370221154519972726653387282842004145424425527727675069674310367077635854429511452415890211440320112951897203332409068995033687468010060919150400437164264504452946085494743194297627231063088794096121733676511151124223991801536547107238553314775154924647338717073418132860879041787427896769473426384625904577660828728476224727369377325937082487634898624351227937349085298923832632341196716078668062837359512132097474036170952194900156135838242700783099246029541313782672595632717149897339781254831402332594424979868521011030718038892474414912852120511480003011386968534412934592375333449244300026075838123738779038257125058491796200700674182361199874805704530557939513036845389357657923310767467631049014175909070983132813359687834663949506257250163966868156258724723796603785264957619338799154282074462368065385710348216248013860591626518920995489534807196474195487286555666602917706559706688565371452583541154395651610476901525864640989207205405739942722481220159365999016266694178869094844586634454144693564007227597475821387697448429116873415812834973282378314944177952356262846287972313824192370676839046827723535927485813521105588033757359956413064837731201566082558657775559902209718286630389507908209246680450027556409458942550006965149985146086464370382806950520524962407689247358810125345639440071605169826521892574156485370894998050354338380041855325528044141128466094386882717109443739737377711749205476948326711801555229241820365206136208729676451620189867216244736890626549796156590882276877830647550638245265620392144545557911071847865947359554084949860025484597771444467058888687754457370855184846412616918187629016302867907416372293190582342752918662924262710117697616988131498838304989072822416797140887603434909225725893980165276067251392968529500154798437855483946476911784018356198891165125816225743988506496037199447032292891625630940054538065846175909352754597005891890126647511684328312882726017532736513643350885572061619681560522462467226812489459307333096905708219781218562822432592938380397096765049493870265616412409683536028139002084126554209077543951397785978659118556144691079435750668054972537363275423569042850123745795218534464062620755892913814842465053089569714625266829286540422434015623505982722689026473652910235514555954497781174641869557786261837669866150960928745093005622063900328905896695573754513536012141005604564795119197107254282257998731503467543887855292281406606717428531817527929005465296383496562912215196674214208748658455366928837630836390320552381183245211639360629514075594463517270272931010693589727759203283471688034748866539202239900419745885331462335487664200332676205697317179165161402133980124712692350864414552332537882599319178434270320767121047097840665361153535974456768220276444373768119500640956813894009070060104532264807896900389390109250160271301699873818627878856276135446852289234571715622031089652905265523972682374603864146440686423620366060786089510989706721558598434029916242096449542763682002015884928958722028543646253969660555815624937191431450276619368191860947765294112642673432384839980250721387655748746793504601956511268891778563131768299779169398723386012887050461864578053545547111121785157385812773796770519800406837846965790295349356867573050188320826051927461261176209224135622120974879196281457950952468350220261635663258327744349120422613362914612879109980655503644147637523487881117129832777212963524790039175987583671702945711508934084170997452552235041433359211294498749124949643246464645999268851264888508885490817240577022524636827207082546389933917089669601106706530541507326031350241185637161575092166177908762064462777332471236598058482191550285844495470647011063359841369750566704853270732047017670395131346828412621821954225893840164622198698413883510089565496927847807553071110205090116928125797862311692979275669287862275537149473218808000541890970572372218727486137779513963124369636553257478910451774055892663205088134218793487956455134207981036676889193060889537483795036120043492101930258520993403126373271405328633106312998734906734062538544776323520751543631833237915837616369522667865079023693169403523465924761619774284410932040349954641290896396266499363378315219236682795813954004130026135559810942667936278172213610203438570535621132888691592460253888478595773087051648875090782705787730789182219984450587366048943566696850536005868901932399272714837181460550178007147387908655041869183802778735402712983540405328933463489561411367079482873032327740656052915637038226232476795385126877257719915200970085868954787046443381757702414188882237034575699489051734388598415276116501339524872669869002611994314322525709905469170423287497110029329130179265643743779225602905601818077467860658087753804519605527545559026388668228197680546912072895212695754403906113510328347011279902885251860243491794412610660907323090749124875640290498031210689487483562288584078068431606302318724637911820912080820226547712542949079166263253129797653033790792371356430615638217548386424766158740234624224249221349658683512330503575271092539628355092373007023295063093465119035961048344084467852647661919186065831531695143533167320663566469221868918016743092173145183442054085079595951765640143134901125164044683833820175300952268647833873131301259386918330483016160259707168482601208025459991010807623995098864819738341632766982592207630058756409429343734144156942886680397884018309370644238672458158408752017334250919492014591961678258978580857843512101928347579485095205762673606002952757353714136823149531983144092458532806826095064409807215370982193216488819463088460571090925737291479168828344313119658469157178167831434195282604698745270163018840718109153242403287361452879413740122973950834149875475164663848699751753816570531217551853791648491921674805259326496776242147036402126093668434970753319378477388193036329359174264753677732006878764237326747359603111686763778126732675656305568812716626556205036393117890103473681038594487589452491877317954638711076981765199512428723619360687826904404858581714933284104173206528106123389204218651003142753594429781793398864519977309679492382673147060921575231136977958713761879066187850794013970437864712641411742559304677327646126892532998247956601856305371513389836045766978431593828305663270325743065947064863499780209477894548590346473979328406487913770910852238513695169186593683516578520815327786555884937513527627272636359195250827370214097002445832888885130725980038857675051375523430116214826351608246076732713921993379497795130853987058242543025489931861189774577599716866211126156270458627174581127908605771541743910084298286818236205164209949224141928748984737800749241628740128831404795292772060454785865498367411461524700828318314527985631872187937443010835083118704209640761908907639329609357058006569360904523040864145370097448815401342253682079059603773638142745094885036091394619017539494498105861272826959629795467613504109942639340861550371348534832585517726490943177215001258542418074088004823135043660723050634804472545680482707844277901947550263589540642640886933605986323403988919073712428031561789332949281979686605193771201129261106932181684607308590765846599683559771121134247942152044900847234091114679369686421026084213551390973285405127794157614749747420770640943054762884102959261549599878394571187168630786893198866297291884903800980107655874262233013409565689735064249797480576091414692233789369472952958148788692235023398766528783020914188115574809436919998513197945283952057184781128033098882799595400834212415886305796764477070903111473765014387422850915877476957470557202887858955789670768308047772254044637275180332085707819141998890694052659466098534011964639855583033324228809561958743747298665176490408951782811443145679301422150176930717448554897088683298192808119368060219232684368670074004916285948470503918646983976373629340761556729755330177083736260877739566785666211602365619778644879026028706299046844239440691108188808439966567644951869949234045895797642894191281814320330768212428617729327545482725628524322510836234183022874779482896030524095983326947349946315335098287586910728130574381704790767328369838056549149830338920088795213846503744416789262370849303593133396288634788155431594978757400069558763868249823481946124915813461581396743234666654880678178871536664555973175615534944133335683821124833254543693793027777019985596019452862491281550323949009155486113116101461091320236029702833683658398439183279526971305795385540756071144892874807982328960519535355018821914309264032270186965601296384765559105401288091849540637615086343753785801293883283651265690557979430344010984369957644371382714142852170150770471977188277362858798026555029703114175846712456503662774160342890363462441567235364544814724580999008469782913804604382287596247413822440576227593713243649579544543339220382013878042216561053304410517656086569941999002824768273802766525320994927492137836690304351274803293799239665670711043728045639737023774441856376247921826661530326507408134134070499848126024249846258050944988777883082789034076718222902767904638481603812524225194968329705593543281126725409686259519137427527035283673746129450749948648696438963898418831268453774155417890921253990397240535900495342206091479170182353114612675056637137066199359035176657716796216566807905231161552354012191538310220416790106971568662819250121053299204935284692555048167350647825250146375924568725500490087148632383340265237722224626996618562440741481057137732650995549910080095383677044912057424569758697613219896172254505999478235693003205785221894943552959654642779005815488502545027374046275886924681267097335271555090453581898095216710879441500091493984239519710286115353178558560155089819563765894677616097318403244185747030725395115879881809546788360518585670092776963835759699654493904753669594000130524598086245415534312509562777976123344262329743566816138888865152680482562645468997163719372437257666070916442721834494887980553850733233749162726757935867312537276867964847897778284357523747719901985919597384662232705582192949367283728979684738905964020443454524008409291307743930500531228540901925610154053872105288602608429213393008305876215983084803973482358432772550104649949530666740751911891571344720770269448851365870536931836910467828005452191637613660019014972485820871164793031148024721345661569708847044882901821267264815144713319703728840719729066214624923375945930997235055218976856927473750427812921488355179451136420370270356052837389852473307343630341581809459557563960596248492120419652506907629435052301434499654602925622979985462733278177729622917093132616039634016443410946810244197569964926265494174985430293525673528609775613472320052632009247386513488456872314339841321509201618824326003751204571370306449318006717336496328295944903597605054124097060819063592019246284650171411631863286416063451055020415461460997876173821971632793397685897225448014496110366717702387979283480135346709679163293331338110218243348843172817166812339665992532870106039570424479381305197917595026466078892454368755502768566061926451764379398708122313774976754721464585752908295122533501556920846913069816159562424930346883241724499998120087091184950517714611658697241039134632297782085419751815631624781239177919620561183262490171682394579570876129570094191117191234047536304105618328151925183848500587875594149211006049957245462835686147922307993702142110616260441150503378714180662046689399445557824439015270714155704070163141760293243418705938956829056779906794199906195486037547175720387391899328056091411964195939618825395332338105730032576691851506527222605054711875175333749877638334292386548818840919778632202181268813676224716520570278133719735926344344731930741255973522345695117213472532844481427645256714077390196443383453190907541180054797053145735358688760878243550509230460206671573073060999860151057984916961353901470673400331311760747447194865918676991760551257608840714209948079322692502147456605571132972735669952207958375806011822095802751726198645885639316296385103164169988148092740841989845121947810188542355881420911056843913300306877234624493303742925544294597647954082009672086801269351292562421183096791911476242870784742409083889845089301263921384577477228040830841617040395023466901223682904017406533816589942791730196693433309195244053699862829848143382791078958688444817742519053079447801544992204697129212616420391943717650918137589240633029242609426489512087088307678283000314886323082849188173297016229378510222959370163841739302713770084555541952736842541421668584595213700648608485132883099981785243246201545876625522017807504013105821206583025674143027827069987011815108184272587075424136587369865106668470148123545444021455639157989414788770472918520744398051932319782050611336379593450193079054328121542975350999372396252837536130863319085180734896631095996637512631606158419378666889445798760764868597349723682345511048261097840500598360871485705199953149993129918996296557953229882507225353866091856956315218150572266064127214269809943774369214394544358419534642501022289752957182605697158726388091543524343479279111121015698856712400696606495364677828076729985793029592883367599749779372211535171382990160490663659494779212978294428560909958020926233284833180970038894986000756784465052986309312366358664538090983653202276819199041223445831383295091131214772202503974119507742328879948617650628295199685748585907058872127090987800784901346741608285356823119547307196505641021018612334229708689380158026015474959968909196110718284665603874290694370095278766002636568053652355311695267326829500584414590677477639356130709596150362228633675536185986432674294952792978654393324664993157863587671063280240167842182108556364948608553701236290714799170375783734442262285329513366603505271656875014635890262735563377492721836503288769069933069920365154464507749212674721810273825073908087252781337467008014991637811397273565617528287390572131433730656603674115240102993891967224637928790605211531060767097623399841364256796834815222346759471845739509437601466018179146740295159976364284900830296062794457958771708130292554452025284860678779457552004423861156524609553226097052296805153783076171090859197559479435783107660692672056930983016644650697706123039160566952539249085984282320499007578257904063634440817231372500737796456679985201452610412605863997619152368253163021511662477136023194436997223399295021798722236840052517238376064240812305343895151879233247719005753075299439132551760922454678615146380970001187650226728456700041005007017570268591520107590644389845052498150289504942593273617481744341561344441967830387545281244798840020299593033039410136900711719415374695655425561640374286155912674387465286684087994942402712085223471688834549924919207941357801759744685034360807855873658508574202745686573592741449506544841719936904038755156065961118880731219505182385967033805407219297982442582409270982462647303331005257451530515224978512369646017590924898007164117575935802111528645899782256439374116878240039224467510724666310848767651231664504653716397619382646928780188926229061570608870548072778315546360292433587593706834516577926093266434138789071510950558252706836329094504480647665034205223607040143233099258885094546242393800784990058836778550512046280269730238067135579635404317103421275167455252169883600293302171387090164751279796643037800076963693899740444885781902407344136126782452786174908039465982322359527543220356147128718856562005483793560727062048128803327278027534773925642006550999708969673402056310442017084847951545075959035489246775849292177536711615074995717547199035279894902711576749264015886598205982158195985677958421276914968769344812272690623552606966025537976430793110690842246040368870601769394068155804432258894729113735912137325418065737226363016792342956523552176471562990630841953703730441615500096061647470173236798611719420978407312914443785578005279823262981837949758547310163142793743558744353678896548247123554634351600761821971758504498210602413637340587304419580181128273472735900653149472501715148245631771068531357537625886141760870857274455785840500132165959323595166656336112213768628124894289834121261135297268737287311650851994760835330553837831628398366737765116389168919957992582358493643858022770937154521068290218948526892045175931352214300613559164112612503322378213970320962423249064541752472241494323437382345298612558633914424693806369747262792248661319403558689844875743726718564065172523197988864680075196151718793290999852032068891196153739012047043778451956324577622530829861804444450574973053328573903101594586592536444501603820497067854810958845172998152799749565392147313573863765824816891630375033048746471871638181799002655487370484594057020491727809707151000915455824210013115486386813025611950291365721876044413128705963589614926286365299822700649375335160714754787549770768597185665777265699793427160544861882169692894104945041196048101763452640097612932409682027040382787631465344137559888146804933271313304165731679895907841198061468593648865621981190276635151287987539188952791647537027992633086648925235475481419135021786176819880997360675218458295040542695441517607667739615292070855388333549187507438620706265995672708871935501822580569062949863376474128358958190084961481744153976086389623442378100664653799675807031153812478717774656743465112650034408668291198668843791975768240010448682121707164554372186299500263950675206756083881130322755371176718999728866909411336773171451034002497859606402370420553987212000176487535207761336866868390296689694902106311384378839878344474020761394461929581250914554243822938589403634352754229653859421248964615374946604343247148407499267610049953824045608532204637001817132380790831168153984847763499102110934167900017228825109559883194657401431835010180986552275058522024194159350204725642561511220424408888938191996756930360888204779302439762824866255579648593092592137003774348174627455752790955075257312198787321279183040499484707349659175264825589443360422545353578028096103854195243051792552189387742687674292667697794323499421208762077604352987397647149582439439227744681952211986982117578111262108700412501200759172125752923721693567456250173567213815351399961535993520446799424049225658479446204515717369138804483447421511666596620085146630444466499164818180432045999534331087209241325013100094540476510152551470606104798491762438803428658388569149428794021446130790845935045298839442312956866815132510069747712204730995206996343166882815629062744437421778714636876707306972022544139400621542574831880640378114923645671526101771028039064897367257980400957857495406895515019298473791555205438693938175095173901153240154822867514215317060511408569125521720541689207709456445845376504936238024608367180611536842239842784237337532732799323692785862586891892691765943887045990363113310247651711850315856372906378146664681262018693721126239058494360453137764795989977833065679319235814092815147597876466684834500454884703871236039837221940304896737095227583487189261523406064133479080473224186402365969293604781580765656836839522679326953018996742552209017258979049324970284861390240132740894706803096606544458626660773032056650935204883105700002070002397258586285534102336126264300264225543791903230576351793553515755603863963054241052205340964710704068384197495165571150468898411057665234594147128456589027768687819431872275872514645227619102048185471829278992583937736291023571823718865749836334942555334224948626664746529936187387310056424574934412621497274585238401806485645426092286266499735894975177121102564816774653308336874471633926720892977040940545802716225775716311421504448702043019475927418220222445494253485442644844121317979541022998662106421094247823191635091647295870998708033014158802569563881013288211836386405988650391521440507336641729291607876206258946998942580980985763713798017611516242982151626493532298396824277042551764853749127698728388171053439862689863489081073520292784784377735437464736839714685094321960294417945753239665753882165286229700591848731518084905937738664446616546716760150480223145843829013133774955091389847636923118773688165501525996738571101021429823960389607659589526197094626768889031185135217871712530878524782531019666677030625154960303143011428886781960476780468529141870596700783740711560631191866664445941170432570975147132854904018958734666265097125669013475533553703296615207630451864284529731838137560967998622014720533958028236626063105631936286744433317680806307915141718190906029739169270527442770838981691121056919311256401556857146461838716671806220666223463146889426822398342089139722492136983274544252305918442330370047797346069481382061586092754847304369144464150035639491121605888164315174910115729205756523865948924730615071751400153260502869782457967911326199299074613032717286486249197811216801378912793511875690658604851243377113805722387802903560618555794840918392884957776708326618661759619354979731740391795427811710949354538560676579696589899359034138841324697124068718396013376575927961226061578919210822530549068773238330852793356843912527138607033649285293319598024330236793296878601322530897491015880198270849337450755633556652615074558978153526048619719214933435258588626681846631883215476694193552814186538419306896416325250863193074817063477863267263488359905590482851614607831702136390287602335221058527230909135763181684373640103987791973254395333576582778752693612825303762899060094429490080333890593079408406676126357814944321933079643789158799723782608677448396559343922496227691104437290616834766043920250924623622961328378484450671133758885703196123757017481419887514493150772953729252518682935148138282473254871974379646740545265993905111853587597158352473315422183976536038810068557061249801242241059716847699327184447822476198707549706596372157128628066577369334185785782666797927101473180381713492143719591569472493475789190840449116649805754462614492625798430756274073160228500847267221314548862528567399212572532169880580762197148101514819672233895746129485543100681162839754373079406822874771217008644782549504337129263534260434134693475216297262404677226595931341926408988801886180343494903496177143272634599985780776834428947576343403478253481343224684594695734738028287259676830116893573881971500032061256767796916925743054150258879722598383414226946190154366502613048457354526772010521795350374319274479635878386178789092025146828618521794351922534925850502897189404435362234255123454618398762600484949366876159405133705457743229904570668712253825903058449828694377914306503809000352085646969550128172831572375439154447089024312977849854174275856218098831359204356079943582405933581716783727517261405528886819829622662736219558159028925146328788187619410941335140786715522645731675595233142749324321099046304903220090255655950814119347017188182308334254862125460646245294764372487647377033569914212489514991811852144029485466938506785338832797902675064210371792830142761833826721828345533123139201485294394366537818212214661158777347841475558084384611993324214816713675835008026150679443250090462769146969997567831603529214087748543131588085297361264237717218563486897809683038927979977451508802882118679472804095510402054819893444860482746206650761578665775678539431582206363202702449723317501235097976596313505263170868225884450966106127258622641038727483847920493941989898780723125194642715852012428018310082229468975838224565525372955551340825664668645536730888691136318668932963089663789174774622415062576014566179705149140802472711034629696180745724221877520116971254192740173143285481381279737514303437110133302219413696013130333749070285758622222715737471860106546709953990996336376927937203379095489327167119644186672121577265471731697709051835554183869280061607005526210086466801157722653254506973616558303533090012572123883089623742995019333127828339131543582207045758201947263328693370830564881160524616173453280725805686388543822305142793367472102602507746981615869164625069889103623586498672165796136642440134229247702462487468266427758943208347144620806602925189807532676372994609548319049780821842659068533303500039613979180897173909697873703561209444799547036236482233087294555509617910394844381424438559853411176594375421120993418202171396434998463989372884789386183980313829479527837275597621743722686386595158606025223197635183271704660942088571470979116650923707770600355617833154041859537044083734628188759994164825575645677409305718094156260779715955487687280951406826755937683570861864017767744526793752676338758579313681616858123730352498622665666494517366046882429966709271236881789406720391684653106556584950696608902944658140218461528143371769303873896729614849514972294135770897937735127124327702133682957074084229252747353175591436491486424095673295059022325208264624298972213260652600854413634151854534198907138786690012245452889068379809002923254919529958971369744024130880970861196184766038836770771607875538181402644640029933033256054762133002314850928667022960599695270985896401184793135900299416452253069181741517522306980811561552710757705146243881980626370887080998987773417539692799589847559366224572333370391708792666723927394555138731252862389774796046790939521190991294239516490040908165964814008374049765528499200109752602447133586292095336099525186817468517934048426001830026654381603809496276878403230681418238837063957604466988973705799887743005486563441828145277057652460042285308828316062091373576999581535470967985443084367421749930204963661797848065076420663185044340957242031162841532935675017452204284496057790245616246118503444999706055004021812402956885167931131797712514305904448334729222464141390420162547453898366813610073904578428451037415718334120353822113341777516785426941712450015505749439343645380158768852568510950998311398723732929330795047408426236043430092058166202161782294288313932737433927278857707412073833947804032626752488513482484337273279036474391711593772755084811646474890717297915589835425821184528222845796433971327572567677404595205999334536625670601465195367720736592520182405010058354637949191291973130113665457956229743387563909405255882880081004186751890441641428628389567926734632656597222712069561892111045844435061346973745578612800086998995093905879376716736932890036654930784472781786764111048119009475542171975780465408781249651136130232803207875630568817720793432658234459981635385107674915652743724120447764398472525452983778301648447035205130530090712329938529077508303864267545921806940482974350069343214194324093046772866318588875974102669599487543014364795198728969571823661111127736512624182842524399301446492899096875427674059799051010001539963827825071728734590426195599078612797664538511948514775764919517725173507247231325241534318634627775504588984696295596525810587210737255321089380013174451773961569021018064188089795903429570461076796824569713099696948169741767321532375808701422551665519079190051357290264272761215920418281869298930695664623628890272044686038506010435635598673718577092722627545556758907549991275354013579421654589022405115040550512751715424228138300435305050298154117720719496190369816904575517633412980485159022352895947876107352359051721077271546219923308041003798797116401423163502167735901152886507278862758621768276498387480938916123905365156073977697255029684350280914050008969652102762852960360801821844042276799240102172952637086934195515849214560933127082722383859420768219740611419091568170562867614582787580728110529850221944687127944034172880899386275125159237829939506937709589557119279634944119676505557468477318720572995899560429181914840628130320879474437501072340212531245499114141975614745682498817498879630761734775322662694468914982355087436922260877042609573473796467698770334802284820592653393954631037359131072139541641934335519507184859118207134047964731311735078793684017889367122517637300194481514772228789013542313181306446679529329845467833005178157894589935346382583038280650852128293350981471817158823007161263214544925028651999458284023952075181178432697777875232633223707354787657788017420562508237972132273696273305479465336319885335363297535082818191573184653741845748175902052561121206622765866306781388044592901747854804439063387383266533331524779228020007363775803226963735842580490911852034150672314842520907140087705694038151012438988101708300111945596665301413138180493277977495492126415304890237077899592588140127073508921080031814942709682929064818564274732178081338478033089021330138961644696599376238587063751916074427816701711450219600108453383944035349289536340428079929103938337075959662824521487436735301962056256041513706044007961983159427570867898691640558699119934943415620130793265289274914601827181347380693156476454411778173467660280044972323084367901972985596099176745932210024042014151502611686397556095621748182373050286538781793459741307007821350200397821352373692850681712074672527441569721080147969824425655476947106727097101776560447347487233107190995796583678070542432773567115219035540447883738769715803398707854692872056853155699714661694930472164245682844519675000046019378770126071238204397389142816344763170933850594565476964542844731331722957016252752576441175755169738216648663263917525491731775872345420250914536589683934354110980682436978644852856221973191617777033852272068226629616133983997271446292579424072045542355102799414964767411753031819694138635387738476997411915967576846291152138355313910176508611521678797148741267431302859403351755451505257307616790690984030090395452990240908653024082072449710190025800753184992131659246438993535943862382818869144941955384696270972386302579286185032500562540236607931996320854340863788505115417880413440008408363277667207475069759033562393010691836698219259645047219712040398785200946625513787100525362159524125019636279296388364498721004379212741097045861571372114420544522524872299212001937901789830997786349068120556675620851427576265631439113352782450190356877084214870944397361872023261215821056405853955800313205784128454753183371844245951041068086332673026399300530117734664818557295212495987040997408728539436024331368520363352972544889856247040936840352900173507479829364480341104873489087154376151845956199310607367971562455300913090968711236032227712605261695573801507277874613728982386807511243062534803543519189490782100019286010960884605093116663780411921864554763212120550397958603213764742201367109222041688268820435902065423925019162483956135933907391312423716195771518452167033445891000712823489546034582884169753380306358367801502529316170921753364700540965185912357440629098160128902787377584098849558128600853234848193393342621337300509567995030505706437420015576617314832623685757717019300032676055886611643213229229968108404388667338021231628043633529772751034829660046470834167929889064628882197482907412874550320903965754298000924565143925541888554544038772689867351148368523837223331384781702798522081025063970700050094209407132755332685457848466101874305391793708617879429192271523382381486300191332686085964540797222334561040361837687188621847837915968838137428685116588250833644529016721950765680558231393295096415409844774924834592289760235380214997484244582602459092398512085682324760580263015102620587758271676201657271345919447160206481563964308831008447520079465941167596596954860629532265637707472211413222065429228417586681017930228828344650028644230556402935910459477147046928801099193433050524966956284075409187968202859238708711206767512566594958077919146456015431008832008185549736902283739512735913186790633164822473789840542446884955188786499416823381897287536442966349000005133970695206776839432181258377245700033984071415704602777501081177481874264633069948309905418538217442558082521683776498572606901635900047472873830970252649194495744996683990678788073787541910475443981805821455193062637453573708417371052702510468426983840817263553617747119282196349681719912040649903321887746294914436520017458137242322016827387801999652516233468209385588656820629621932467128078497134417898580074881616483243457949159235377334725072510243343053632332085206749911960984980554414078456959910816817687806624990732970901332083955794806312238386994984194347008990034192338858668034636164853719935772095071126074651885186741809920032596522553259656940481866647169272839502137285925277056937462774127524147866393015991360255931301932661807954238215230863442754226258631187772816640357394630205066446237042618133055337459945509553906577705639695650260433664960969817626000359859109044125100816872763110431186209723792741641120729780456952583104070860317925123326628859899574682133029674703287084094383722114216244920805040658205010111684428328066284666202463069654967119346233716729450965936751564446109009354149578739337572319973945887932045381251097496813972453167350562060805140553537663210708300210521113163973481449034920940616198691861500578561293807303672921970903243646634023508877279447372569107324978908197810366613252899926525056341075594510622124576162122048760119519585962597555591039181542977823088035122994330822643391877248551258331815471418361860603664595198423694349490638752857692745464321675249442768524092711240190931268689509002641929133628426664924144461468776582053905679760235851196710407539631851012464686566624466915835299838668867399895318161170855978341520940340651126232288147002651815356945324815297755751623839256649163083496161429413484550582083540450416317702303379673582422881210390827136990097347036119390666532632930857658429103839095995945473454985364890621456770865992002276274419753514019501359004248823246024981791355945028863934052028389160233634028999741706893265438595055547473196766496311682528124550034432815759882297127328222224607849740162537866472276697666469407780760328788144726150615086972635886609901969172029793284909071746024071168971683379139448322267346481992659412307817106343476871728531776826702533531234450647110104552688118446716598936460805835165442353263299494880598345379932371272748578618241327908749923284408308487114264070126033019307322760781142604909643051819668516386556898510094573866508504300279059969901712223258006958824622172456931805524833916116143264679229739256845364879846085374029185134761856421817783771015196879872869228193605764618312479872219176141255144635027867717856714253008823162159916746800665242929216837328427334138033699551282246830823105927365432788334990827746232998576495667368621994105081137561997432682226217124720103798842034897485593088779337090328920125443766226996583856980215318013363372721425646442905613207781771473911606761460288296938029935900060774795630843049791797863758564672434927681464918152649807929794888597307955435925276273206581554934236877372168060327440053080979507954306747590794993290862837035727601874750608781096416628405600652824839274487373413537579986677790427062340851840664080306588515885379171993713819767938115870079802044451454677997310179194005355569588640394283857321142736562837836998065763994140039749592180084795520222066061836146611805053341889452672050834747012359804339597761776044015000515762385011864013924816570458569416028232520576881330738269253680483330420872239853166761290859498590494426523498836955991272423695055698415060321378305148636357513105453152881006198926959181005003984107593617095157027349817104819549303730376383352200330798893122227166137150276409296892310449664782783199688349133173147889844462480254639666739358321792474344971050866405511677396526957187139060067825387500296814100022291394703193786186576339418994712968863388140072829227705337105720515416117720705066170040176262863778617344688643154256283318077491707283790816219443980267591663466147339424976696151395745803670301359752590393732195067137933525726763628861757323990555367908513268155396468925748438984999498406541111566525385419219296960229317659221480097231921887258546079574366885856304856323005422833126269119923612790601307876739590941001292545974686510984852523105411205032954926237198870651355117627872058321979609564643131971831446884420019322422458424045884546549145142795936708299760363633946681951392261332681966301867665857391408482323826920858933694586206413751841906165184850678855294967515023052837379377183185642143584756289206356932499263545439769341156075368379018868038261675985277929856173661851372785243846311432128607829638018050834986539804374758488743148547623320588630752693457899418534120287112223142391626079467682461526287174456995621984829828019889166342721167208238285593274488440084221017672083113871885657381589871121704145446240697504362560098550631572572663386048733628072108426439925345072912756186117646429316783056288028783838994072953937762398097280587714077071531727607254432881986079154622458102409140492043530499746293318353101664851019620190260854859867110213594682416909545163268249659830161367243114049845663313427177265898732946431814605214122822801215226925195851979947889105909203159747483678043637629528191760069698588599559211139260760351874027851063335716968153010047885659412302975340987962482738499624840672845807702703644223481595067253337875745963560250840947382100941148545917548583460346242468699354404886718640118392524427374492074706748579187021968556516512531809361078176881708524957399365230880827306302515944101325163025035814014795316444514676461440890292391896444912165455041356458525180622827110942385175382053775249064235402007194712421580944987219746878835060891560324197554940872132901945614317166970396745523922280239377018376146882656437851466530487351672124651415586466783871876524813988824585411262553184949246650968374923821673632750040888532995277048095827059474461847822667978074335361239687695876353795212068089633076878790234367420354627300374309370108828118169457816301524697228732475311517127170070529310707761982178056832719065347505972809163598298987643735078556103810956149294916570515306674767146222606418882140620916413153390953676652753933433940482166298978745666471526533651136464569912982028411279612809073576781747706710459282154970526143229382683940773312477292689706231180377510898757519142780748629417575446895654374355658406018732375709741557767249030094456916845067914868351225952743872947999578412772796281405799967158773881506072230810617133448587051913241129731789159412027050916370222193216756452334716389410607630580989027667383733941308701488772591008993775530116655569928062136330303902689679929572510273767053804946515780100625011052788831000452492558073934986015001180247441083937461331734380967397580016367748455678549156022130114878465353656722648825042597108665151160632153540662703956522737112202850942417342357115629920923647172095391982284802521391985945149812920650458131104825842315209904137620177986720606864576964595147563854723619181903109235454114894986767681693949483620891075727647330592218084112628228173718705684416425369668701415776699706229231088315674061041435001190412685428898369265831740425066908947806491186931071165345391024983820058885403151949916899220528595045586271591608108796489363055146366212611495855885233270796274549885540581933809619710982946918108119901229352283358049059638262965386942723382076596399482244741520120079367857045878872075871164150384177081442777712349137386595350227939791401164040839404166551469503610474645999917009835443031410298395210252698477347292676008263099434614521343732944487689071473767187962214455736062204935782567098949193194478601948997804891620275890934211795196193562588029562826833828393933750879533729258482289204981450524029984232534973867029724830445041463995444163159961180510122983113428821740267399118907038386412550597667824763191771249700568543940102507443106743762008395354624502819635733307764199265439457594919328370444961787930232735166488478805366232711330812393505011948064868963755974164050080085656024033644295886851040546732561998849804902526587219580514396004308437981471876177287715330488581866493311115834617621822116220229665238695082795862252723888490557441319505961655813855907551829686949924885535130322140699776549514702114376161784822928116798108352843873806964796570613284806728909636458579978221363868906360251950340143604632362818938353437027044701488582799429057274157740392962214944090364055728830433087115237212761769069393044053273871358728455078669561272403428934263344094928385860252340392608666710539349714448876303355128816116070077993036656897610125246539419060667606952504140904355182544577070794086635261009903814058723943409677501563385326166024563961690070904639523670054646109051139805900213822479564924409752930754211583508090018083021639345456871387521137243435723548071378483508862311824171093336474875285109354574941094270796301834194279286592345028058870779365747541630563668582407952530769190135245749836549960841186762496856102721629260422551619735111488599485100447443030875257491086065059315591772894581823838569930513827740187046376249520340188032163717897120872125495411465025959075830648176741806232407954005750686766210604123683043268837348147613505982396969119257326490030169905834133511782967290202667873408737570096998490757797473882405027773739542231717578197618358241898516686097338940299031517510576137108287040770879960733482261786424403685433555170160411937701036520135684754952220267117913781095135186539686620231221682348722241609449750941682919852322963909951018121049534127612100327678216403392993872362252650093761366721569147511292062100860030964575055859064181564996236276588377731464822414337755846963650969196598111549581170653375043025750731615401382028997080530659861611666136794921371414890151042235931172051715179308084962018295714023065532188513105999640680285774751857177828336899309193585982137087877687031824681309720701105668404139272418630534365459161288439020540199633910438515569237319016883706549027306414058396681171935718975119199041079457617684602949393839000668423004990840952406685937602098792834299560889337501922378718268472081671198297371117931828819886793968963558562310475443671553113471180184401179383733895808215467014542962238137483547716249538397505044648112983460775573310226394827309420032300087444002053044807513951203589632919956137898806735383339714611105081131492915711089244253662517903467749159654295607130751234285005981708659300675129511997994342978821706562913316026853335435411423047348950256861445037522102890502656800035320099208426504380867360053711184941890912126196025422909120648097901867168061582068279613860071917521180963984893093137054629585246644453917724001631871265336820606654186392261781219529771434747834695583894467748843315424301972040446008955825300807551730450098015852159136688626005423177178196029106577896597165178783121891759449556057479037845150578507855207605766816739854572727923642368339885993236144778195896847363438144681248361186109161251625630189760959515006898832111248281236219664500968191503807383866667757668717159871440160148610597500502507218417670310992015705280033021769085375747464565523635663101482611645983397657872510520093938790022806128086684832293374167371934526934874776448077196073255648892805483790621716332401987183990157686840287928157517045191078778939304363935906024271575712674881386684897083802189152922994268512825608014208811173077366365049687151764595252695314017762752944548486683044448542002928476448882982164561436143857206712145278050282582808770087224359507757868046805180158585695244133543705896905719182839062279321031756534094506449694707625651399510401625679910750523376451618625373718422863445520057033789585130970480426032587471742300840496313037194539368900210539877576316165257156261028612986200975329232049175849698916538810137400607281718083682340522445571842487306258679457808061095854522304619309947685711612540544217569421455829808990206717967569687223868181448052543151533067355695880183289584799548274599783616578381265916384843737807100211347839916656343950948773644476686916870694461647205118671126730897541940077022502180301522590393448013067524560395649824748949106310112723229739957605945191309621118258573273729938744207015819854387129622027380018164728137200423426823186378364126522934578235611495112554679745933498754843263419813058371989220982206028270668349725760921302844564563668943223291667665446355338179124029104510989434775168660496648254615263935354107814373755387829633905168025828713219056322005475537817780580946986261522233818718659979712899962746949143656268097390197079048889131240599076831417767074506573231926784498129804862539529584114770703851389013869537062239549032076622318132331668754442430216690613823120157019368801777875588749944524963963117239538543212950306267162890859880513581856200280343088166223487412726028192547406452720744916001507241058463170428410755844906085113053987296277853060722500719318638542271331036312272990565215259659121133073558937408267293505056769802158920379435889310813895320576513820540167220616682467044959789017956467498158071761590264747464421348995334110349477441116497506766951482675348129585364066195644895901631322522535739163744636172242127010809783741916747789894675722024301428988825144553796279309047881857475403918290643075809787965905757739635898700601634843340294181350508895787704228649060294043050095043530844987921618194634127566047707173994594439430530627220067459751317803517875780142651889732600608890383155562831781739937850821582291402994630317249147126698638562951114658820451119526736743886248813363578434007490511846062794307714221868260231101406542498199301737473062940406751389526248511107468280022445066321482491055913562132471328762230255378767963672630027611200392453343746863971485568649852459272984471888828597447410461934783969183672253946159942677091429389900950375959635869567661021917083817393831727226805210842933744052496748321639684255466275711458131434155389328028792744738272886941628184086075158049744934129936007174165201555478737586705992494231859236778526498470499088404182697944833081934423079917081715384510564925469975410118043919786112258501574131679399188401654805962215524602894659199946281933091251592210597866775864603171038121228383254231715641618373512486223863538174850014995408503498081784313009811181491892803255324247852398682474321397339314809431678003453825623538216979505130300212731883714091422784607665402289498779367413489935303109455877635317741464879046427228889329230731316365291418381930844734143155977349289482322885800721800445344387682535077792121460140854924648971553846937653048285568100656113765224068830570794089221210664001748232214715825209061392816062863198556471808787344837176310368524617144839098311137616138190500245189031217084815925094368278711515459082770678821005935311951134768522005978382693850782089292213224896993860169200258833290376810166222984213483875523489161987984559468411474926503442653982271045138569106954997593824985788431436825905134240663808269305201991687490998950939377781355614405093021686628656639781249434455687790159037236934486064387982370156277220902727770475705062943280644061036855160912305424833748081468493210667796944606850582274875574931755826687509050451874217702833735492589970657128249190009270399236688148478465337429299873744552001359360423928341903849133310261008050000656978159442333992391340657994363366702304180178150512472415236416929486973446841948355030379246255975933637576270756756660134862236056528703256999263322105784963486178365143624437362327382158851822725030809009731144419235598542032714794642053468016442138858997883975649052778345966521120300884956386538089067121760160641370913127173576348896545222831864211811376442252867855173182270453592147119618769428157817748144504498753576415935764147215102947946462489706894611384152719863847334601783975302378091895907222597188959240328607978920698595436215325235263198932774299753004605704252504676941898493419818461972086252168685037310227345544603525945662177741695579391526849051465548574940547198273217331394190723281696262444066016604828229571301025414359731543446561664637963189909857192951932771022067277973186066235283779081332347917944039321449198870362723017571343647104330934317984420682590682562224651024733944945460443767827355049897491133719304604608673620105405602071040773094283232270695296278027524122347845025806729891606786223568289862674664564605329665347643524898056143239786066763211121052112344724846849320958170542824201453688583952798122843799058022351898275954181912298241938185134913319829942122581495153559334705449953977062804029725104182656503884923882463148089738183930108155436915511627917977491174776545604142091426822979511747279092253408696779668859283644791799272644844112929472409772208754344024516437082635197373668236813784784955927815102674466955199189086034711402317704105079796302756545807259804580272181425366522742716328517858012318607719425778728042983606758204224144042437783623256230111516221222754524004924975696775152445020629488294469406405552264197183807888199049133107931671416646903785815422207998137780692281694512000203070397406693919969679210211206098335492518479690492459265890744075437144736898892062709474223824846377045793640218735896305494428945264341837251255601360914185059423824973717886017169926164024722765472958952947407087419857541854917092774109940546585765538791190675195492642469547424003008417681795005848695067750746593309120450010860862952114410971194738697951876606492221339075640923505891396536007852688889689075231302446235229053137079619392007021999857813340953091258687539778492898192690331800650703193879813713094825303057297207585517147312665431108177209880365422023029537665619106092119316568233693534858602830407680241403367795065644460189063206132769829421359815183439331982478088018097430010068504980641578095545491615272963124441569401058370868897992684095682176360737970257072052619950978310605257177307868048932436752594208925876329752888614808405065923945160350353401164365702498352345070146059915444220613392640473966857203845721246212806240676394971583338654745121531832413727995176267605476429934655390627729616589575399104952528564643010898630885314201377506674371445726987092258258058097325479972250615997480389040958144572835442585302345077031895802627915669558847553078492819394462450882512119459970379485572886373632021894101450016126790963132211524986153214614651487929949130729966198931566083252310291540979173917410683166007852647764692194764645790343619905703953001027273790542974718539483554948833588935221569481209949178380698259753776430760235801757192677136249064984136425820355938276933841555221930232660345881582924104128515983172169387384125328601191378224212592049828190525102756993660384227422801071317501593193888058456632466569424884427248222006335891095127419323837741621387437816432030534144228090874672902240195214985184279187175435709858573616726673649521171074772923431550893918130108863437157391229834573032094864107051264568772654288584807225627914367902422255559220540877720650027275108242657998001111010154587998023145966835222640504435442821708052677090088730418271204419303228588943955977963766240969962499742895825980529834309698759176207603114366519733905940715217439579540342126882676757366223804732931287162167330960142281953417377433118503062807165185993225241040449424326648969629431675098303224520051897529731149909140041063634603562458260968292268283877622252337947311478158886411387646579520130539078001569731616078114573139823309828474714115702086465647575661448861551738833754982658938471802740816387098559353345883739441023067939828277806100909656796304072594528646469609128848619981617202794507268020273797380024138839974616971625212951078431868228459236845078188381215512526319397605772452249273736907891718862249389540175246915984535470409425308145877491293499902858680898113480830811564504467574320858144482348568622951684069214961529865448929095282810299654091520669598492284554107552303205983702023171983214515105531797638305758369298971113595676528026152062316155419219733277364647818258797552728391846282468536127565381806289619438359345872975524227138006118009351202892126283370443776801411972831677632479204831274194758557677040654543713679251808814359667158911178582405684325636458121028705348648863328887294301500512524139307307847981251793514083561363467957823604075360063324552573407360476398669587120845111292889081489092452778715090699177140141679192660856142469964994506297047925544121991346994831273638332438916595797857887821373833223815131694599584473835314844388845846829603249000530305079889671535860232442417682587588245116993865387637830253762896841028236341591070939095323178511286058144659164351355914448965925495244886359157683289909671731136942033836956118557237486811375585492749183486777830173220029299634293144161198291251095871048079055153392585771796211769902451855079433847623219260084849301226247431815197823388058611911235670151549487989070650721566399764919881576066919591216620881110888942229175975281844982986132160047849469822871510870716784288499828643734981307602488120514099034951437482930407309816259463243180014788624270500555923014759500031239920429474172959528773120034379028816223862928657767186575241530999258319439452664201326109669998735989073319202172782282563591725766849368927152814961663241128728555385223816838836063509764673948589025201846753181729135187677933238407210482821333903874436523438064432858783838295301788274956964394143664537112924206747218710414493166402500457197369159594404168178928403796212285405367236859507895751022260916708334350722700312607875726125110817600301257439858636193061054661432518833648465513184432889589953777757258223214603893272264356026518696242079825797442395244617584061085156141420500328383027225737613322474393456332099891499756067104019049580042990779395231113397540121927359195851385509463493961306203769730070837910604581305223915951553074087591147794473041519540279789291706732268509694893060666091772292585939003342246583715253939009328548183870474971760149723961007260817088652585592464349532256513864800019794730675640126260059128255320685580141926645700395606664423781138287010486813355979036428018254110527924841307179537689872858823027288052531103996351198223609869191347578615257203854623177475315156257564903554644211171206579051889330083377654203415691297092034373561452345405250124013062858843591758186648529071690435066646796062128119358334813099217234405476972015758697697298810284248331552060515398484251149531145341495666836678667387898188240465354777754253975737816019212402606301403534671770286957634289672667693300095336881286162661035366955988036827654331599961814774467724312444571855798960895212110738149183963815051665430200540686956406933363720062299184650594730230533490232725091170228752440057817544207582418935290778861468323859065062639676501287453664279086784899406754188221446444918715111109802261753665701008327270705131900676304618264175764591485924575521841565415808234188961929164165097561356431356212464860613110264542019790797147391374250828672452074991283063310322328281677327816185332047510783146189917782969606343940869605258736138514301060247144729931977983082371983877244257087628133124258779082984735432198713388889001887118824757252545326138851021602121308464489193444093445246770385161128238271150082646207483349361868402556484452667640035839590148395834164523652997329089668528871408861968777990144555957555326518280083138324580463988331511499000638491169994481127097955166853277521997647661628192728684590360639579162385808021373138313552675001773763145055326705035251223991046348163546578166152475615246590554381282226322238029489778648948770972203235764089642648263812173974515408778888109368455597020597652141352676687745260653353474067016423849520352184015648038930557483404183320500174709791629354163194562101472805933223682152061835373434730984958002283826692337181468230073434089151050182412677021542812205166894300126173708470042007169809760875176444509973724912155001459175552513642939881561758682605564623100798748604928889764342076734125651888444083913089697688381916491112161657040801420002377860168944107724742993021871228219577592904784020642222999826528593445784915328899230795788859955424487007370556628607564520588481518069737230017383126578802252827720452233637107863240062085921671984759484537066961991757730552880577771563531262424455297018474428949590049988951801055964512984552952931890469575906557062623032354769243177830400527665959437204387270415447555130584892471564821323777887169680928792629737202381378603544690933280579586422215757474316532264832098997813750061902564054718015075229960917733687493924267486649788007208887132609607835241463504354428919743325541530947794600373143595547845204122677379176902779221866243919073983052636665784033653621804617308361028528035798793862987205034780120038962304712953425624948841899391954859034706230375214854271354600638965188263526116374280226547306973716282025613185159602502344043509497741991118563886947363368692500447240960211916612149378318684281519829673119251827336355952680083821399445922361027414193484170656033505037612192847799955126909559724404065933766259096854540311241839242748661340839760262398186926969554849959249999004927356629853602624716919293166506777268651555658642527867229676537654616114942024339335406767586617034881211500346643547095324264235172146846779642564673925853778507975889035479796098403509053649666607645720599097288737408753501077357381332781457396509028210708259715551998773531165138335928201984189365448054125257115515132455020506167259633002842608728224096534428632951157504484384763446948792201687328720269093415099211313506208438597196376329649793696225308473129412803839827203815592028481073990255297735011722229730043043408076118125504482579428478237351859385833559173157065102687513403566194190257675366362311190000341550830598716688528851111029616298852494638403708325842717975601014802309203240591892603833877967486924545038716403234853172296536709988412097163128977922564064661945217383935222485747610561581007178854139705238066231346432543249347743508197271950022152198847992569075587976006362963754537563789714518425987176938431630703455039762576049599762195187955127200936149369917623764926342312423051965000249001072361890302959688926251454657671841993756698336081399513625997612701473172360801653902121071329339462782465366790777307584927517027065845847348323766471955255515558556669405255002305281522205344114091523018254305045244609247804908441091071368908043201102226130079372889651294448237075190386637453739328012911572010824081510943430804853520133183767096679456464261384539078757279809225917557199029027772579081207455924106058283238200150585295000686773856870166813394855909958733020563076379385686883528315122245183222065125974831689639174200050986001041267866769538503561791376574131576299820452397473827023072682978141011086089445230157690631067309851650597280986085314550632283934482185607457605885432209154088002065842195951192734827496002032636162951592267472484793043189635605047351952170724403594917870800905630551399771202763219810512776612082487136983458655970054010501386648165112882324948674834818791281343261758761754593177396592367094475775236346767123551613691794030238657610696094825775607081393736579133517175066555269060969633940631775410546239473839093768110455469086739411808244301886007651463107706875347680299230405703233104539333519124361149266056366713231586377962327056428737450143591030373018768344825230961662657144687457381646718088817378084023309009377846522728409848334674764741253249552084745172905145696303813431870731155086048373911632034677796964106238391672404726365431025005886778924074876157205262309077194179538951668874370473236258147691256359573288475540178896983771184782440390900588912242674380074635550219470010113924771609473925791175675708919493640129711274198186934422681886493813357907892155087093692188514116879347811022966835832278627474912313116507764286884460215511246282774078866814988800850305604313893844264636201925331905312120374971486523109807393680349796147315972412451689473576151671005833406462379609774462924973687343448951243625852028366417452083524905976313660779580654315247545079426865677275057814116395600861888631532883527632078642317535975804387670670894153161971036722281219278607580231549828754537164477108400934890338036001011673237483892664543043829810955302864921668580361819226773471763597944993158476609547587327778385302715799675860461579854342060951828052443075928700627557554774991545717291155966035509225280336818871655359547531441175061576981205352604338412342072800589768519085429136426196727838733261906698141758546415920731346403815415267015312012560249315217228242867464206374674894146638970999176423681898648608911426750959404288380198688775550432770930129284335861521418993363509038478274074256161618149345181265518057501980081512451439336487121127799788897025502961425797823948153002314313084014646618501576547762314726048936072392645461568066829562147134637980847867180706632955574668323659558622984462687137998005124952061884806933010979401557083449612399263581459952951151259363169327749002633522261896441121947053203537974537555795619643101021994495313973311144648189654635275179643314359741659984732025628571044460065646552918547623930512919460617034627108072967044743830491105459102481732647040344627674855963183383099141233391694296607302909908291226411561197920136972729182658689963387553213222653204397686854554618651425536604366518554512847985747737700875995771124420341824750023696744994363225765563865545691263322858325216058354247161350621149411023045593878344444339014204517885702731793884860532425952964767460887242515571519427567302214113799340423734412963247849323333814543179791277932959469022156879028854674527594219006109123768425771183070880737682096800738370288485556906093821645498497020884471209111717952196237700715419041780893015748501870074716708659305416321516879561636175878046823441583346624443513811440346008959725937955957578877083796973110244047010071510905091605758025366879109187108593037598555822451452284500171068452675180410923693028544599623059836931571811976271182101704437578376883390386068633409388267285055123244216840370267524913589032407113444621430874680724557527209958752708343352885246234156197258785049379025676524727105739514597821164124888536253571618246230801480393117606167550674857056898294488505960047401084347040774896573465620586217374760669614139282049078159199597472030386664864561252220006300949581887989386628393981917934575111915461985012545583511827428268394309271855545723689375707672411254791884219727137491103771884320541280246046422729251413501270168461523943013201516462759412160849666891914871108018896014361278054278773168963011048947703685174847367754415256002232211145297901276282526972191747219576872923270909694625589979214382590717569561474991481928249106250283281535282149130258909922420776567403120579203442607469646040586769971270623791212145368050777333888304944554012479573804283910907362150835690039220408310847605734148472071172244983669757897881212719372232366693736862133675967514300172859844612040691255611616968746730144824551663423016659518239992662661685182978078479296798623844428607953013114838789709506351350949690021649113719605998234816839662545323589048772924529067018701809716290220721519168152387355994324516268800810206036989030933898261089914396670191733458989320319115757528403519487692043596384034489172386228546966688314341540608797503192534955948288472851417084289533852772776031557858664715980415645272084011418043382122270743191720039120622557836424862388188052077625487335374038992480985951597624238804366192518088123269906515688147959891412806523405407535301882711179932752779295978693061202122802931633589769191101306194613930192807068584910428933496257484655830517627965022512416678030577215649394399646802239676683108905289683145275456530777325887586315219717113970370588273086688199458200240080827801366035881513160875531691111775553303208188069795450149776783927723009317181653119305380433466561134089883910607635535482008795995770920237775955017293726414662355449313300502018123590976079158922652069491139338767756761285226093093189676889664763533801153698452897312517244573587588167840097385035561375691990702298497459423855284222787683135014186888604380680574653921447372365001157267979787248480571080224663799588947762350956950045827180337559651032050953497936191486571073934506404654519559874136986876494867595019921289102270589827190711674783397539831247469535603379426548224649258296870175725286173176421340538276560082283144225687950455125734110691750443055709023397583995600858813056028798921879124139630656402905601746992471008645245227021982195111809993175403193562975581716275996424884022147650879663669467611303340905551575604043110792478470730677667498670338504279470639353638829180717720632419451815921904640614311376619959439911931833120269164872536280516272737792192203429590619639208659127185666210749638933648961402111371788197841271925734455885844415471663661886244558420092733048215255689771400207087199289513149380330161586555549196305594548335620883381901554303340566295266977029340761877312358237147300859667792643863187597079551051478565522980690748505508297075268593765711708405734397134534676038493881705137490570543019178252829056868030365435950686471743707277877288201729629144616855171790700739393360146532004364842924173052358705571595720845845264514444786373304928118589068502578925125039119848899939747836715319197399111755752760036880185821082068256913428249694648279606326939539582337719316474480974256763249076555909403940277949166824773208371636918924329568030604033071680022474226829653452613261777197309205956185828037439719823154472370794435382936190485946299378877341885996322176782846853336382795373944310496704038192144219601862429166465666319492991308704262231325806901513018155933131720353509534414647064370723146554764995265473265764283580017051393356981867984180965445930048747484305064914228184763862853291407207780479043017738462059739761856926883299609847432987423288389370399749221929151757506977706862896830331104404851848742909798680439461405354706220785797734620036030830465428287580220990558901400322462728134505344977625431526395133343334734610012667856196147003571508490510163604644441677160061463655671368549604908114325804334002188114065540050759465998460715302252754157391633629221981810414700253674069863330638367986781771770471852153322790422477521934192447011814563670965276997948997799467530040251275620922109117003296896697997266780174646376880287662593474981316959259188327185807949698932599406028484894951236478119256164191119561551475821490569859696367575380717380662107937722494677671635933022965704333425935648305534848453737033336997810930318640582838359065369601377311260764511961110624534789651095865445193348324452830162926776645499883710254116310939384435233055056322718984981790927648877927775658303019904856593289155278658223115961617982237875284732135345611367788330511460247332142161375293739500635602677389445698882447647934608059794447499192793842854562089665613305192468990920299209996722706610874555100759869430640652409519579917984030587486192968352876938369974262706165275757209631214279327280220445768995337663018141375750532248054719105485769544809024730550025891472194146685951769133755642192428521756938987317131772708355264057062083733652333612358896852248472568317457928783744695962067056611263718634174619487480437754168432929808309251817967507007713960540149606914057728566290750316567555125990784174272579321442934117439722295744264601138109822805660780609511601825723485308961406900350210849236060844709610092685341784331011364427273558722081143957883406338877641587837963251612625011222478401144547057522412730672357814802118632616563784788801803858412699023698472644778687556714505894450628049254638112482629507044856318196586186673314906749583473900591669019212921479860481506787040584918742871452408129406213726261575824232721575191416002600717498983245281826724344780670220372307077352561591882891757979467071000271404716371948257576141840620693395821169678436674504870633843014939547583146524373306827094828472937657224107746963996740275992781908940900794905574098546063696309876112970497931232044111046616850921334002310226692333480571823261691859918284318670439101513253615606360717192779541835143837308584060318587015163726532532089324918997711230433474969116533618491194293234026211408843258740262023904936872726708068165531068120469018715041296634802476825436537965336330991217791370310223311207140228614305690115441858091781936048314972965099022907718761450679123080290493188387997765269912498898937968481406692821446111652069957520883577260357221759307585164413889993194871487706246934372755312774669186535260750428628988332341440861632026060609544818231846247722886914840243690838531471865628384735356479276871580630419151846134685052520229161418246535892078863053079783030613935426507173157948044482348833507342012915997027661579496017733381792315913860303978658222875479306080926652005442159815840643880001037525864391018301461767777286564870402680830645508783061181622343361679054394509817065947343444966111832936146892783701938381822018547328603354610759514747750259044959280711857764183021771231122402336300010377237194321471399505897840278445853731814176951139873770466360511421607520479863321052433978826503288276370767887578284433350028322161927776740521356078344122898378801228572776618378297633370983915670536619204257924724515632811697004626442672073168944863406313845750078817799019729668331820049399544993712184072314294675279052434323072567162893688618789587188019607221555886857563850368626966619523330081512022879710049724092676284877405834550135308300068832614975001322368717261515443680938188862968305814692299530938378094969031995011207082452952479322005359530354799219773426371089456720719629114939327906680876423811091445388474601057177910521011829651784464179969607450943852150787602284531527518377784487608554283345750012854220113085838702416866313872956252537395628743175222550314888251985895732114336999549074145714233755641325198456056814856993905811088653592980921810787978655306813936965758477264268774788974678076882517902248218507023507184353038426590626775834969910140952337224003359833946366204852210007772720785649791392081969727740872404357842426319381367933980994856083561137685721477626338736922840553119564991778538419665065722848461022475353152158024949849799046642991406084143468401357839333684262277019766443029677624185469791189062766942087481625065776531059655902718430964252063547729118354824073207017108710117300396314877137301222537576554859382068929627141695311404442467802724937830107776868475052368245866428868143008432831115428773674274424672046811587040820996164408214253867047425211689250961379031268143768359244982972400166756306826078693043712571387062301408441770764092282407768187840035484308589468970647475440063156100475156396491799927499556898195632297455674157777419142890127923009775365930190491293028168633269980691331808487595097535784628917501057731298059774895575256126106136186782353023233711610124375820173900349661862767846073554872043703619675401324834752523730121251777681429512331403781658394802561331089277806290673270544495909621140622174743870157196539984483532423809856669357547835455458938988809380933298087461116548138611422854820090978795222529632984777770651556844384732343357384225293753572972119287348818591022067665968352057749596717360078486933731827398160890881648329153575537209101707168124303079874471523163658472928019357153903636751832393955336564105207500794348918940453838532243013596923016583096799238855080635897349560432125486550294969104222692756007621181092344028806282184147480221688286952360910040062461212950642025342613393292746074038160126348676186115586945043338866663860829914520415885362004260241971618841399803343840364967542082068739687399320356982503211096218546978914496476521120177475845959109043103686931554874254849020713628024348112925228638873216332873635540087828605613342424173473572694083350176646518655449609859038155847716398890482907200522501595890076238100830711787098008533767940824100170519283116438209184542428427885706074186261218709786789371914385474516740467868370035379899507699718968871717875047459701941088761512440667886434620375111240398784418419550104768856877742522027610899121712513008112438992433147422850443978297629711077188717092029377296064399856122085420126373452602529104032649819923200598087824615447692006953571390140136571024669091242937679357417174049263414433282010061697920846054890896767115795985881678424160879752103336226407204766437589425397018139174397072667862763931899225069752910024576569461338097768805794847549204533296973134304051798772742099736765620628336462006919664262645951935423872413565481060018630636295443840214532460655832183910387084767345736871370991949994837799729941700431608088583064917056093249818902427415093061863630067425250113082454396018214894526415430793018963774741965099225235514393094849248018423700628113295973316708778015382145433458757886890641074689966355334572615903383011465307155707324108824524381133025644441172677105467607485056711908549480720577430922123088366648193056916633963115445475307086497632100348405935570950885121560493869163625918196204215360439018293839021895124411546439613328898978122068059285719149127931340050014966428007030474000819709274102930818280377176339540323397776562158382215708064255955036680004737857971238254424030629240988951677515684212177430223483685355566494102020990956056944907051073072384200104664641493951965030524978925343546785865522033670878820373747756997304959636809385423852744844995472066292199182281979248890572718837122602385315373891758302670882476177362065044078537059317883730973418458991620461909702783977383675448631791100962274213249240770499831457600183496532194226235143517658738775744963851459629703520809875903522621689300356688085025302477116095212677222477827183188349583462180000443171910260883568975279234138050587950059577736313181535016637098848665246626452203679422621506303434903160511901026170545124196998066468311564032770695957630338627939304183635018137143608213773883631636845889456281610211541446256927786728098576448785407664044417460560096152717786758076776957438445566059995653036932632108056410831819217115129712092189294075276725488831617633569788516370692028895256621674838361351957662725843765612632542323717077803089026580155872486203154455933599697627411392755720194053950511591576304418611140974690102960265090279629615146464130949879694440040377392266055246589143370582334379966905655356622265275319040035304745680161426341077776953156157191633682765940749207526967591669336219830391692721384872068266463857717259744351202874715188524974820633349911081048102954971429603400193862785104292103328512600930439647887568844149921256148926139351495725143757506181172542358822936892311349856348916214534014490213360189679636243519602025150153092912548843354401367537672575576321316100006897318220129286853501941051642068118972045762579819474496853344692363683901079412609983097843651129168517737818136324972877342743550682153811952795647246314427811114460390837309462729661118200517148926977869806569431325646588994676766699468326637939630474770093144573640467289230780719211597401037525932119706778821056374938564922201879870516065651068035282540747768515136920169755609741368204866418320109430610074531676689077233203950213175615631890089870137922384336879184816702847432894528841057464665243674823088740139424314820839938245984556281602262024780731595749807337708016102820485940631653317963366426738888879401215130782020552870168956373142710298883453218397480303104311506585951125197688329253898506164457026766679510729505304435231866840028721479536607270287846155553251296098381462722925282726678033905822127717094018360856718717399837394727664334164220752681624593950161962827905792018428323479920084146090783916983037985262010643351621239897478398646353062542784589947207264907781943373103654401974724966662258786007178043955834513205689261279893771253583910326350333854973863633011036611635764291702322757259363255609446265383218877106525347743365283409905881130807983932723121266093468574469700411892563727919838626849811757784656019510229832795490263762910522674437459148946139317126183006717949183231598298747578445959431986898562233429239605962850152751380668658988239902139153668889797265895507088633100235441623956198914756313643074570664078415166589059694539166274382617244244681523813117262735780572733932599864717485973355112399002743761681892159624582284912479174159384884330984196239418029626428471203850065142932931963979089021463128066205421746685737993170627387843236903566650058990702175430072836013245155988941414758635078751622787599904024106890120478304860536922924560317223269592290773032384548251809231771626656890637135107923370111571553586801688611433967936608157974840389511133687282721077659516319395473779334232022949886106464627456685115841372217804131362132559447275195755418268286829670320047991792333840667587048759238798218263299906711835749901339421412100683617804505247578949662361927290628319049407170630403423104485399962620301820405283136088925492276351250232065717289628671445874408847528964337644759054482465034390028069732951256991624515994874126905755731438764497718224795268342267058495328324414788498482556500141454592818820966438277809529848819422063763272669160405779267135682020342709039653001180388978688018617944931181433996743460850916911578554124147249032414809427006642329953994272034629274933597188575374076039470420887344154056781631708471514234542331158922724816080766542550039491575387924341706594884129362976102211760152085798355896569007747696612209326538129620061100515583026967329345641934784340775625735458446122120192769778749218426238264675519665766155604895297639569623913117561620248228215852687123300890980638986569390932674526224029120982295324964320324608148183460843285025161611376616189240121998233251661054671462287983587618762234743787298999943745983024255195638681614822043051067014612356797997349566407870348723706001950806913677123202666133897323530768167558333124874249137466828955665982075881148262130566762907323548755377746433357993506074888174798569970246197999196505472564434578317405290693971063352607350487048621142681906064977609080128170809114633697992248646603884242959032774622593005444587494299451978585509447993675960166815192398914933854072616637614359535025948009883488295199673113163129305404425185129208004839443590391954415073335467120364858361699309642153486859673352925804211043991569951623465584435525803819781103239520059608973130051554526941164498027603352587129811863426733159115687293063596594894275256534884640890055693741257578195259730797490801297950646746457067080762232620156835553325507136633778377843381533815737445005629976288791606517345360181511659064743970437088115219150718037232775700834992605176372623202412063310100393765184452497543853444347340886100908244124001576391102226582451781552790458827174259732726560216753600705285026415369561658806311823646904111954602715552003304324909805426056340312457209206112118421497109716335644762094591070692075194278273016574413823980791504139025894083133990979615900244134819358205080246831641960450624794026254136285476365597293539268143696402849257861796663287262424644430391237002391556412912140515861423343834094689588667175598132757652330359525915360359880478947851022729518393186337436095259125886477991140998405657576351581772630811430252354701356350568997596070646513124376618301941314836728825057601818960911377705731742042042629510771816637767271116363134547043712116448861526670446091757715731607732945761680290511312980534131452539404461712842365806794252620714031561598916174577958189902272850729061258450356584980363092729048618560512618991201472158635636214322626343272376037199066684767971811935235743091851232917814100147529530574296167714139104494989420363309330282290963138464599715945579208786739077277779666144001827309245269716931440221469587653103789288448084116551240221065297257812694984917054987310302226841948962393677682854322273559511202076979813082191653059336061779630314269616016345894981074879938095369758960161355220786803221586291499932782156302716420214961785837337686748402222305148407347954645719264799849235278564499149149003653051281514748735342697554421102313478862600547692971136623424758013671408515294904778413153420145692889755477258635053240823102437454519802733787700392279186868868043416214168726859166803778757021801004967033030339358497120150984951926391995560711878890988358209897017804614760649035217288223700259603442649243593443580977983666305168164667231864036915120857796989022256989597904517052542061016240588778830961022442671016602572759916831843246365538256918908763351434320738188891268343612908366366067807751400925417657991069001884824203802070157581023332138377343565267104856556779123379152281258778295799380282201993619554929300669908161852562353884905210519123785417128059168623414870859148221312926731259663500865953654664838406270419105037837172324405717506030781518665749710463271697991374286769898252125023182355894529719291414836550229198838210761157046028814633635574660203832893046505925860214067398465712247525828096841470961502471760046661684583616963240372680753119531384654316398671714950377373074358508808440854029442158130384158435994630105681554865895146485359314559356189818162918960077488763193167848915221007515695257906873622065486479583872828468129463206084319859992100571564158105826175145790771242124272380762021174372876281765005568724189187223806944334519045767279216952031245213956552536806840799460826890876158073709305764986983906401706871596228820470732658829641923844374271826299132382594001307862063445518962716721250229122631104442822960109921339935703120533155714762749388398205651886074342926684833308129857010502239261078375061764497060362403368450087941657587911196487265692476046744529801126055943009716615060322971175111327146368201217334387130878265328539256388557663980114838481846545726429969998142613725737535781532057359398978779817116721036190461657798950818939086762004484315923669934968497300915913967189738155572615997711877539090334280097231777917486203873211656576744052978360617273291428313202548709781718687818708935243200834225482414616452106203005445807789558937675862765270288749088229163914919397729003624547792812076284938254621512707871464268255405459437788543866973406520965155933951989738776495129982252115035143316033979547488423911000872022893558552432325731329635536446210240738519948406017447445413200982582246636212271419583226626085320440615299135391414173932177472746037221066870456472742803766841926475153330269327221765001083829901162534789166037209025726192899232724254193035734696278647107094493774857569447225365503029495767521271845064501335357028624886211042053903053155832216680486439505756268626492512896573879765354211900942870397088574659562230958318454922354899432221386327648463844698442862708843718085234821005172438106076452154257491417767021908389709240064393674244645991100904365187229194645877246750213551497139758070306986457372179130294708936253763968111288142326147830267497442437767696292774119330029171376711549727497709596293234213510804207901791814368328825710267414161716292840827147918377368377437977208919064546322988940216722051791433915734370627458922820380423715233221926435315176929010528074760503758751562949820943704720716730936175055290991802527063290676536702134615178162347745761011473819797996862195785186855878307190134529233342079157369947321606168978681164454322630922425971242252250969473823417823184955115075660713634346892202155867555071082691314778798079209942530976759320215010026097836313869836134465705713504279966193493498484202683598184272789492638498759500951888982088277060486391935328247170478622886222192279520054331177320624910193415268513927065136648019272687887233071891591419482042902707944191504072722513902206245323673959575447488640739735039924159444139539434920398730882107430530365027079283285172044784379205284254024278377712532633646915121358502881760690530186355013849081524085150562443178846332000057620667283694639004298423209946701641143573002896275899549439915873375645078882442109020419896743006478381630002724665862970923950498223362421654708939115775093617351771172359182849667128312134011052899832377188050627328298723428632072418108606498631732983451035461614774775965850852322958155449613734709571289792921817475948149405830157253511651838555417640515130257280515953134966573089899529184162158994727093033174912050696313183132696535565527452059951544623268888721555307750985920879506558098099295843488929062467139810434537798976124717431252755999572113327606304949783456856589647259558750065905630063915211281577005118153709368840893026567643114261834317386817572021618806375683525921804172851913216965133259634622518728886442679168178310382456510615002566210944645438116438502656313182578506953897118384699023945889622743489445587060751964338024638706322480730069619359916502701703181011556645487459564662473399852069324879526305508188516517090399485707502221611227544907910210189598433893186835331861097185836537086129934135845363405950906541328679089628238636589772519876865351049043469152130664650317961252805501253979924107035229863656722996844802303220380771992615457721719337377246168426370793967768852723985250153898691492345722644217204141984101813883082308309625939472288128795490550234243028162947016015773751315449576821215521719971276965321786765036922595000370839536313349211565460746815379202669013586315878002286059817353205190254107749877072242263526553258023956241177157932840652685519497349580906880125218507678973608090517457114365748911718250607039833966932750048571476971035718818778493114366797916981034847199641256897618229982923063648609414801476904837668961556517478976074009756170837614140243454396677571028928441853385576452749718174806136002432940013446147327371499684719048294048332870561074851547904871741212478173242903796115887683640791614487328641119110010670311018989482816460109326059120141788251609589982237252922777903656068569514867898109831471720488370404997439788122993829284349825880057269667394334143385884193356296074630388489092727944984403465657918967542562388769579176142230125369429811141292181382988915941712793294283344090374034213445714943230331912399592086476499988005341910676006987459902444872938542548452374844961186748224775324616672103912219718157989224974057323731101474708337966936058301027706933612101084970826649819144109596988212547602065851845087492932474881628796291457208196261716574420245289265431652998778931478796414946972727170283290589296923975932116156995003750047147806900837793942480541256605025299284664197057023336769812463606924872869788477938521737479467477564539909270898797268190439530557189208580169564567203595944644931048048539441751940193819528904976511316353131949993352792268589089796428813243353887509136984991025153373544090134001895239656079088023567508728397174257371343674712808027757724216039220325724546311530390042749437072605116455138609879528824347976509694860931283086934577843868929380497641777247348367004875372160983911548733054646075375984360297512839248575713676765429878804657018881404253494329467421462535059440379599296228446168404152496740167668088716086295623520748958884183524155047693386571991251643197338330380457044824237868592490117522452835480039823390755396422672397815406393957092290390159785585532883868930494908635252474549904410234779074545706504526706527440046311645761697094018603291945828436115432894035265737767746036018108622440301261933584264325770184739149857856033806220347593972700197462415023525970793048442187393072061995181932106244996530737942675214891567387485314946887623914981669371662429871248074389560879658767298214843603957375161766292180436167024395677205132682129649338713925993171977569291232838539168921935827464764144897617686040992749477219914533453898559114867031044757050137192170450554556592987529653993046226012961235452710492987158266932170222978972710206871774697303799475268509234193777633941000015357899183556092412794769643643622230955047887399489891839330989649783084580250690377145727944317843789945551203035725875466428526468661574552612080509707868583103633332019710993193798662733982817585179217740614985332511168757155561800407182507849081891043088316360547334529745219720428079428411536401433751747873114933381859234983179990521586050883233861853525060854076861860986129430778556403113989587580311817580593091157692461831738915586546323951150295928550588783703622114402280204398726589534145667289065124450521467409375560813715585969119455310009881240556905652508744388066210096315744830144920300592251275345873099417253943304216577137129223606819248708692356189613307056502643602658227517144543541506274747774748192592931306120186091741168870489285522102502969847271609323138716590827389113495266615917251111269000310533609677827368109048159660767122831349990472776534399238719351930534701570778445746062748852891042617255580132582410703445439524991937945277864771996345645810923617578115906569592093608809847289951460671108180410330095637202274557179584652223587737614613964279915195634677300371925626011410680792492327212673285537198395971256636091700610667180678636548651355845377997784558743350767321018105583114139820959028123308016820404288118842822995389100479267832897424846012691966196385527897571795404618782379724052623457650522241667206820498315454231474184450235755702584043774397244990020782669207508080236241815871989925679599175844229967323162794064862295975378364348193410283542621132262686802929260507644284354091443896373942812649334503386041498435518343356906674657145805594570048814929730345350803035025033114140502568878727193259616606486879537027181838843597366818554868853456704843998896893760487150143613603370321423576227749430137754063355378330040267771185270861022319180880695602529704195561434076467934835060628712905291410512771984851126773620930303888360214841262976742663114803911876917789188976581249883566013353440264505599770697379524811910810299672584336338551291881263004943605439023837559248943816878520722665721746593705624012293063532510480218386423415422194876642481721965712314753007088832961552613629784515861776800236022323879850754345778856115631897779815269945230457377401652742869117260353799991727870362506342276539759148601220011662256141063774752799082171116579611411580906371995286029097281887607947782120423912259712313020844200399649852882966695991156991881198436170211702708983097003186152797247120242483154071761092274674924830520933468917210360073976786024721729346515709253972924648241798798031438008708356977995692737386081856736464701636726274172756651350866984301064013499836903062505186436461495970259765334533954078735838356639704368122147138630259894102612220069230491455334899132557377121956100183622940647179052877852106045096031885199150199470817249641469972653889163939477227472496926517613926931115587880473689171179201494141096315237755620500983613245092676772111278594364491887052509799339296481642156405701436278993900153460256130243851336059067627681703288838864903981711498135734243762838381011832444834153671598586325690510870842534524145979257135978473964088778988403694885601522539575671134525601551808549553736679127000321524998089302194171789208516671271366533236769042361727280211610429921799837156524465999055371798882029943269224342800206505583923193559374506123065758104612474812302572394072247848159512402037355810659871487823569081769780840503937022754005006855266038784183722514921378666420908115029063045965430180363298747903574222199785379990291766080143558978160805108886688771586166510715455037573631172182102946131755030977424873076573967250226611523640773080334106299372432749956655776844923688158517219850626559057603778355861715443393076946116333793367210549825082596236640164972115790684549103484378842523082727793178055379686652090705706364083925571729656832038760444402929734789465850150231738510403618957209592841188354384175310987042249634740796340720991428736741714211391867058552787622984332415439150325961835221869539088421149761720433092820249635607072126457434039808605647841228599702953748369936979567430907218189456347232756881112425857117372002638051909017629336573211940932931522512222516639240092600479406043908216470389601592163110800032299705599592230960799390797397980334493128815099969881615901027361309823010973599893026621260375881606974816778793242018844310927555813432803047709044738240137300570808721991926988124516840873253421154887346815614757830053021928532569441118644571928454224749710091469554917517127151487677754145366629898620286015392479051440944146895791723871368410704859889964685366317608766002286059955353107154528567822950231642076188992721898583874551770683925399085093592498770622799188747800760357962645049324402777096100708025603124028394811566995848024680282058143824253169733751027127925932969747220210948292629972908640991811586709850915910899272163857692913646080026843872435234465536513365080557667085436477495107816423342596602753010352708230393603129103472464665030740532170709949064777532913530160730858072735433423986572875113786057381569708548164541174507897568082872612572722843784276402103023122576938918870001730910252100500346017525751077560024029096404328001551444285526212828378317969476371562291671299977645221090452506270420548483091599685262555612638780629843355856997273100354954783139817353527965119856308284319018629742247308640486425950461285563627332690982040621905881203950119040827365093810389865911418744690571562772775981174431357421743437134251969379475165158807899990527030221975325270258449609676175058799974263437007193142531611125735324201689761345447428837729834325115490969785674287780359383126102374760501616755545680463085145873630216513024806305843077366658772628072675590946862841007254345855258665903333156703364978024095218323036400623299822886339573293809372645602599067326864730228213653857737425688315098897048330835739912366563829162622519206794011885262610065281342859123723813166899624513193024689498866397151879189400503230643866581250566034105494341656173612957665173832910563412076523304984022146319646191109826674226823497454179925899721265509067747482598773965928095904123959159462747277112267031875925907326313518871876473700582487257655388653602830754087087017485678497143766759298439144586977008391932155269463246311878817803208948940616780721254005044553144294050456866364288776643982252545837890400743055774423844118916655007220408364987162963537847278716927660242052761425845151541469355587493573454910145067363096305267761983523946055754749952361560531241490750433409280619311856843959160570998427081000718002250355424364298573161381324687552144378303072690496136086775185325126901096630326767027946094457714524941268950377972936523403013839465767525966661498867218245404674969934113587571208669042200637899960082003173613539090993464393661567791291422218648761163171787888572030672757431291929652702534840543370728003438138941542888755472383596798284244285694783531796933608444869993467186647405878661104023658610658833321888254344694918678344922229221056675081576385561508217061356012917781205550452077117871637497807176718836454414577282926639478420516180459502827218889151837413096580929168819137552410820924609293064014935099911400614982719927397313386710250475372320441243063957184050087092857969832453495827040560369601276721862015267258936342858415765664903477152416703799744304120499222946652735252426669320870130720064290714787888523467814156439253666734861420406046225653643589486307273166341404924172699951233688861423957455821372965621863760357631233168749236524856766238785929189262450900513339179755663624591366209863982171145323988453913379411144919084169943880217062244947817971331856003206104778032141529474629685482719521787214874855254596346101369634921921171114717910079744840452657311174260769835842827162021965087775514300348174369092235049960817075474313644675676310991964452530796754072954651149233227252011087481023062530369988650834497054883129249276644821096246459095122152507091037825775243395566586585494181607929449825856010331329191117189715235045106516471176863396316535601886247668951518621047824322778891720893085671373291686442888672720687718007839000752975226915032452374223382022470901175610637063715397002633178445451754115572844203545891845579714877998129036388875249764442272816579811314940437613477393565635879158752668813841996572472216396097414064200011215253787048308366221262036518708366274051871276057487561940013046694744984824639754812941085909240133342722178882613453094276560868303142533097032957811393431093178438179982339012371301308891129424976424706393513628993629518817270556762523668333216733204792149490289322792781994917807267207970241567764009383759840541872288186603219438300933951856475583289945090244132534849357024177691410226530339247705158326915005524666399714793786548580852008652759423399583712593299973127561282190797464700224145848598871124927422834165047254681831014048055927810284998317935594204659876764741674726733206336417609681591853649443606250178667886171055219049713019260776505295347406118469953237351435127352186226081645409281865452059187438234622232775384234596970704999683369831443662628094165169104736680406539038106061208878634547670540017370493110634212070801735256196660546249254498120493883621276494844849366840916485379276407774510465001081801019850500549208165512539376926024008452807627813380704923464363320093282110229671729253904691743660572583984855067992172570145542729576447156710523355100984421051839352907972345583229591216299752503499681051806533500297152503699516738431549992965473031916233509283940998882573302274649611573812801628100174376980573720125954736963494370361925708761836916069128969555336623837964669776735283207717774440136040130794574125578447276341388512001810667638839087622611301711016670353134473673046632865278229197249440524474789490607063229603791768403548928787613985240596738028854241556945800807823759674332891612550202165248604843308909050326013857713941481478213929153307932582333143769704458697210053268818032316684227650342828424512113837898377342102133108659439978195527852865937437395636195947979944767801852432650931430636889123789263542665339882844411185643584134903195796360337430143733811188366879213698539407663823275771545751885330155101501737370787757225436813833250772172114433635512635203358926814320909927019357749965595232911650460122892210085570522602165636939498196670781702659385942715263810077217916100004302535802496812210758205119309426298345948763562967799976164015174426279935467619602491239967228551596705542062580798355271297686240273697931591793711717226273072146463530502520171568375518062184582094860325396472633184117294468020240051233709662918051529390794090537817541206995381036551313515321424989831215252505838054717056920199082203721104212379136328536425438894415940926323639249086651370960655981922299022475796859310444231155012771324844502095179218002780991956340220720777671987170392919280488886453927951942267747622157462130826305802693482689443350248237486015245422244002632124361672392926187853240664373561062969643301722781148192569303564641197609610606094931305757783234829331307491780811421905600018316774103280252066396178682876262679389064525355624155866373508449027587266484502309826859881864865219191828155072429221217011883076305049710135605761870497834267912812305102347891659828841394679156135506597530429568487731681350293839058789167057010330574804907560222073764645414131187769240497008908479462218166037207711756135572306524813189969446961911362143612952095092720605344006912922413669403380566015079521281272719523794889712214643706460686578509893628553347146873042506250955526937820337129359543880158097456552626115175195694361130899185637040323803592082627843220955353434708304062479703172910974396834623112370618827641257970739187011990454889870040168360766998417839774034252645203384054990572758682753536131126357588730054152554709204835886995967051711656579092127502915700862767350801412780833763079080453436471831534200499602669922056757835154927696271395760521442388173308935069944647254485319818376514841232875322586209090690130866327080566431247000292668879666376487128247107314511101418354279040924509357055045318321864106729068168103850759499148469149732676409976970290787294527993433192308221931483146160616423019343030329018104554707815330977503368121964643699544904025405591823859807879102703950431657117884775425015595891721872390165319311360880781879938387955184415817528965792691900497985582517447693246482947455374385049207889920652770419039901007011547996176425169615065629886253753768603235659364812730650492361966216250974745703343643128461591316412522645494882879250275666073661172090938978986981106554749700983483067692606491615338283667696855379666084771728661100289911782865740730056313269430437390625576076306325513810949344715726279097304104988361615137968752139598839865881673210269720043304206507336116675242672940691718833037463011007944116976571043430226203333378075088666869228420462081537394082024598228999841926335934080096555283826311219435619495653428956879454703370537609465270395636937959564482729792667171414633195266778995447462740017205164905224964627215093138290018207480787786295249637753138470183554384929399514772061656427885408035339596010211210401011452845121519079109869577817966891973730430958395114005861691700585579008870991668660124757968949223033187668914466928724466187169365347214779060345185562610964730056545191373748091635625324446949953567965288668454899778358293086772095653503082202408344919968637822672980314354824476086363172489666375935785601872539532957625162327012833093915228209403001631248886835518297085666620393676053402486909790765888193001545973643955114382660955780235058765796293182358807307923392661085421735200742495742315672545381430255394782833922723821545248076971270184394294970662236085963217525112201092540237268582247478269022187346966859186229647561807109920470518292835135820112561961605458914857727805419145695216530890723335441395785455793602927155657149198179275124889460101054675669462276702007109364453866438320520600103511083628570721932986109662370334943554435578949085305023941178417460155448781892690339033548942495383645851614041829941817411480471202484772789034229112947910070685784010599413141297866230867536593036526640358015261676027532747314695033483005174435403885298475342988792821753872118474094567167729974128991251352106663628787346423071566155278543481522310696124213251180873499628200148034595699503586311777471171978057782666012813991730397756636518566000301234697735664451408034704571572135902371649648125012811326422779510666166476987229741852860262580143099216104008021685601770965106471197665610848686574893299068195813454743832215156954101732884033300199779527666155470991262906156211518964345853410540736348758059962954662041426126803137009911119303933384760866606550820121186249275749320402247835629342581228513270929481668584171928536451919861405866100609398830454672291832004313292592168568108117244944611537599077740076504447684193549481504892688423172815598912966919475890252076204582948101205403972554712372475038740684897504868342284167857508175705792503577471676994644235851523230083977583608056328663835840193256517733461708516849534343402325130091073317147714272007094276749668332379276691780320238903835773704762340354391385206889028185696996554752765757081983200648937202608527069799271953036977187548766431646793635821411963118540713061087997425447865243781219939345854425602233742016145895367397193676474151971939761804103636183440444821319047942344901012615884595693535341716260698098318465279985731572260032493498875633610627418494942004284344595148522669763247358791729872921498022481218860760843295068236705119510295048682741863687522738158989895034645171268152889111978081697585485434138385667798306399815228134763777837124659053596487144250884425434565116941944978477427556452273967556898994682505661305976283915027605843216768818662845713472572966061227384975489194643802881342998684238155018226948311608871085969424072778167947558220520839182048531585909799827150404700519989403441032451432576836878518449257981368355850206320309375799882098664570217676144263719390613469189634342845889659278135280900842393786056415642117804834473154456965562387010340540670379997952373987138883513150107372336332318912162573445012955668529613638734331470357187596971456788167179039144689505731756258782726350626161612413096449902464694381414997221249193325017996175767229569709656746356687313421230221135770296769875253182894577432853035313039702455056610999130020331160198710241958004555215519478224059351583676404864815425708859020733470786844758918632355524782682522337189328097180411472421227518465426074318593274655428497269945164587600742689571173896149572071418952378157446102869243562544554535441932933623234423401488097097696308921481426585921640135325461256764335687348445727138321874489911526460189608897037717213951610350684960558297489854605204137174389646901389103156870081237728261545858748229469357620949612524257807182153705911566906311144955080798084613629479601570484194542821032854218040054243791801479356338128169445313041219664524301587166644915508227944191992161380085852868549829603104275215352389715636206695872115161845304662942596750823931909516784574539349334066774632807977618560450010011538841066317201206073183128303482094416169847488408184919986872596859540489854401988647013630306255459619718696706048155821101866031503859118141150774564634188777716646935357375543259526159512466365758867229145892478962437624346971547539862247351951154965710251079928634076572458082273370541244234083324780103143343792032524667005235256013100690236861470464559112907138160218342081592122991488387703534364695421048133730141351162886146676375353499013622710160254930405064371231196638227677432392214839079293336536230469543778427269175754301239062821874779356828531236611462675518263941521363021446400242508975356931986273708587026759105465348263534277619210416455574086383324210136185860355116297620802095771564135505032484392108979916740071064656633702031067851951586200769038779733942570041996808022287112885928973870869449389688542344185109347048030614079714065347889259943546445802838473444531713603901278815758481226292588919700978655022364050908630786786987482165761147531059159533174496348285001816520873331178706261642473924155714088126262224167619008025038139267325176726004361903131434790007662428243848820742850686494485497425361958935723859293173403721136762521025351413842348457157633808822105465624243890479298142017575061937026904051854136683695349152602180918874325731516154515663452979480082810930468356415585963180129976865027091181107977097012505239539303942990712712641068859686283758586937426763360494879705979887922816661864875876792902844401130809348219895646652920313232500696578135832009801586885459949295047547673280453418147050945875813779398824419551190730168096067067946213120241394698399673048866597270411876465055514002655512253493144679020224851806187395162815903640585057365829456889773620519459038136185338687174569400992175363921415745640528557388359414436270657736372026392546757859795859304116431598186151549208068862188631552046474177349700629033494119313667257803698138677038882373948066310714878150314167249029358518708967332208047536812830861576411370807932197768898747646335681608521803097825932092449920426259106899999415591072301077548148460520994375919865799205079857588240153260850441902770451750832673505441687241935343913084287993263924995533113416697945035656900046122741893330693544239078919030882647689310547848660451602562405560309676883207535035881264505562554875092271706521789481070482823531213028897648309187948899956558362106412996718044924049738087348370042519188097959670155086604165209667010193500299483640863570458680925852579654779915598135915630526239516513036761406646006213715316416167059775714125302287717358561612914520594659349227410391766937018586761608914535407218844870774787580901245682041787999071922330407838528250957904205064854705012707095517153866933562008672772288045354194599827098587745250250126146185048206372824952008330256892900162249729515612587071909021943518913868007958063788785243522407375339926644903377788862269487494895180069897759939897279883049863384965377109626297130696752738981344919357157894634264537679714408685948907706474242505398260964920972867187700719011411180363489751466582574419281425702980341055677837179000703691659200692887060437142161465973506534449548641798170408855513164959990055393251068355758085600536167017280102874957675965058872239743563221132492712141359223432888960287345023558818844256598875291267917337750176490420751856880700134268179488610485201554253575897048468629930983761155479997654164935724309008712478086391239218231735870600642310028910592801675539240122518339832463486374980069015584684575450758270720436315933535119825060203564709804274545070215889476143788853890864688178739131985121601624482419258338674919649000651408117303491003283090644479961869775667285773857131060184031731403036029542449866569884044918047682657236154514495933751808777795165748464504513681910650237635062312253257024781877469491783454282876130052902457889476376287296855918719388629485966876803649018542227758618562915722513415315393701209121121787262798868570355484224122322599637370628398509864864133008040121870773540496194391875057120540247045589773331125770382274807895114850005639342036043341573758993188270288686639983650413939044042891262579833437765017876314762708547927294299132152491342238007835286207153424647054420442404191632503048302294755259413592728673613956527426944933869849654789181519695444170955818417597338726806101421983796993625361594469235120805065354497025166683149416347110688201970132416331525577852192463046825963872345525742673808029712857465628976418360771402606511801080301692199554408938505806754989052910515553494747445993328515142348133879134619715809055114181807724477487456095749441388181006393082968847722508564883786731743057545142887118323754263615180855119244829109067137799859853674150966581503986592686346105224517964781283140510616863877492085824173090581279324430772725199966201875123985232716109039409671224619407118353267479542502843081056690130515931046631346989858986131896556895447450257848522193926739359811750834715422094120752907253363852750867070291736454399940630333791811894603150635174261705432253660183357330449658097658780404627311187629014842193788824445813052545400637067967255609925818949607022825575482248799371277460373131111827153007885764062329807205426822651810013295375175228336202970427146909277251160180890357658128650685723112191881371590740199965987725991950635060838337977675189097270878195628476517701291216446731576144898026424059460915918426670081803801499926611077142269770096414156174766851918579161220266025249088600163364992558269143157506377426631000825595255588435775102591031929502876854833330668728049369209094381136485926232297584079913450768017571921003355821502876083731147324847129764583207183893590471561595026691426232331045423852385628089587248587941183527543454122105602925138529231609335204140744361744796001005992965918221388587449226766871564571097653006771215209262200261740027426611359106374907706447771323982603433394897543921020784410613090368382804990567210119346906157574474034881888438104554887923135503789991717317573039815302405318807990275681548270970711465066589728155550586842030679631407091080392332788599215040194314127572473332547372282934823878279245088157960605647933942244822172067074063406680959954863523943087231802937605401943083553893283825231209721142624507025231084057967717771232078100948703459825197406557962869168423668969881337564488810435834628136794737152340319099004473694612515228319320337416732872046786946661568268164474513674330887544254964040716896690090305471298746169428767691035906838989714576913821782875987513948819780450213522201814496453409581810441287640052555116580575207327856043062005532919771908837419610457747879935129520710382874442051921128652655764385595857450998835782815338574101002681762667227146423450587403880976994575650338549332413679804143846925386579815473724005672086886629545047880960029221389121637477087044670068457860111496032325636236768557200187983905733640339257965411186427617008129755141205725615615244368640458523416600937828721575036363749841500476049278611881062449071445874673256067074407943837643907766183318060910749497286655529539954030094577549212104464671675914219345348025726823652540805216764136314369614226308660535213177042311684579807187231437139566392063548269412651453399740038519327837402447197540298223336493115618420824091461285166917230387170109050477081011690893672028646285206668909603405082431869079455820181614817281238584595260307308438528357035945715222807347396769695547071433756434796641643167811890851347952264157378312128935824805491462750265377135390288790335640004428483916870463747252038153919630487771902823005860709748652257451571441196147805538566376393475505760931261545222061207128174203941887915911442111665553904745295284833096689913221662191804315180319380360284345089042290479102182776793812623190357767586330433052931626341901982241770898074679913800570546020264693042204280746405462427378742018919203092779451713805773945601621719937644154975814532233137590898389379262053377419512597412301509292355253575658449410179770087647666737224085036324059498073093071816882987459103911433056573758631337034047121259542360504243173742149868602015087873369613475125067930278357641387308441001442891453809512694203990872149231139651602373475459282536429388137260432709910644272411804212385160338913453923140421003620231744780376378195376423560611957456516500444055876358061841915498495740974514016133133566893147558893790112006795055064273768338514713555748016424904234167580677207671599391216082919941413867624731414616674992490021052682687296704601967628439834474740607508575079261768468825499526186976481576903026638029739847551159057125783796287971386044267971096005209723816268831060164255087647931106075672187395298957402226303785201470103841552472114427322673901853965418984124390735368782847059234570946635919210362431023858679343517443191047820560997828730565920615669739597225230658920965159384077508338770611987818300758221708484875370827330576832139394250668989128863579423117646027580096072321261144620342776043077225411208869653042056472960255722931351123266072154029038294218207881933335297257914083509520230137697533463670863277351097869043123113528735960930225749867515530166758499197769555884282121657330432753711382004221098913509004167591190819472557688075719279219198124291334025627982197990215032714817314337325304561510959175805591978975433431576116990348213033584161950917128233604526424972813112293479914788632582923629445573768000042869230946241517357621510385819476828126694091479092422254674179346663920910359664932415878813443683469551397525091507611312801435150346178916212928617912079931065448010039587941901065125655326397116963534947202270809684749799789621987953855545286112105994389670266460254497211035530576480694575747471997313055415845803752921507820072512974347839230774928282955359716859040262636511199196943841127953877962944618225585760416955120031262947057210316396240485035215841480896509728903292789755469083296365901151088920582007478792981256646186380488189141544220507677061880620199796240057493547180345215843469656810473977759995041766338427990345113564811345276370461617659088601572835447912801731290238213066644140632454934392377804380738758039465471687589458920314384530291323306006991283832919277788717644719258109467432783535959051124474472455655408705005070952392127338892840535196908658983332300569069107182573594434064807013607296549529342971180852135017901364295541150122834377875116303084469161187148098939618674743240840808808704200985618153422480107905934606864885177905567012567959145830889429577846390508585198602478892752583893823178945097117835533995689722858051511437513749165321570639100627938645976243400850980401781131521708660887173330831865466550098088498113719196732456617387022655206779900910936555243275126289323905348479581801087716484286060169014362316087333684929123126984370790535286415982047578077641012384101138681201546035338015308340070419974723854855600531736029792420204414380576113540937181856413684110468435001741790898269454830901450023273569986674584744867495741391633535791271621588992039988884887670379953051142921702276813109255403943873751136333348012287108164767719692323860441205451016931909761161586322212209903807710591529640975702159306080828853581016206651035270376109323155858177018473643606889316237577718824994854071635626380432998381318031528145198755587924789972034899259767246149358863714327628273087394157327107915686811576575724465223230224089908989575511997049183063092430603320235688047525549211686277528315583984547199386341602717953946888674116389294846205213821018290742759436396977421668275601078738957745914812007486427904521737296003869465606794395970399671284753024441974691744367826887280931553644948998268783082798563192385661070245783233325724553295317398093383231764608073986220457012322590251662201561307972149621986052536310836562274479423030904808771023368868671246190974157070652606354981308084051053308244043930743597080818170538745863639344613134873115592992124792699744759495422348691730032450499304891289793020138641259908758358022059170803640628256530480627642890723771117126348266116463077156167817467893562011974085606210223995624196669354456692210346275047545736061304557345545157097180396740767165511496353662267059103023632219016268285295945881410521333453359328861832730524293615462216215749011410212101360808157664664308105541856332928393042807612270133052552469039814271389225985617175520315887916170595327918769948584273820729874361201556189611332106973732550588039900646632512160223693377352348126947520579819761673957767366253005598113592895185952611534603577814712477386210781408189538156377181062391409768096431613467200476675171903127628026143147519292727020351596650081646372244220881562267033990099095353026305564068068769477796063903065996349611916926231361449494831997312337862429208389149841400926946394101281042114936720973920059680325450645727810737793860794813757226189315123869176047898489413013004463997517163433241250102773918020770560761704422937045363245429110777647207499007400674960616388097621130428536568203289217573227744437559090916741313362539109975536732059704903007628574766692713550168236091182710181320356953869311058863775963711776387483982411081824846233073798815983753473218026019025630745766328273612287935275988402509546105874011226356913001400371037893039213051913183062710458923263641084370407714223161598244198376893737334454062128754211824289419457824986149185729721714821989386407386290010769502947807001791954693041689620618830193564344553713159744286891327248512514978743287134607472589129783767722734426243314598605748412229920221430493703674455870776254217944469265992866919540185816883984393958690607824912505811999038368123756818849024552586129047048123796622980277303947364404161437656403158605519903759790461218011835879647144929389262039984249153234634750280162026702463039947112311736942812715876371868278973075346026111221335926568353074216335790073464124539960513915767766415930975586244962827499655873748301835420498300151090948834049997977948739036822913785209219022698333039273297846318318587932586119789299364499600372644182684131590709869373935846458500140419518708904365762546301720494707499620913299515944991836433380056789930805439828163409395126868777416121649411232312763931985972780176518967188152304916729575559339093994319023301117619641454930101794659059124277688293912608815937990348549505981527861412053350377957550103399960311342359234288016217059551961384961683046538097059881491247108738773843959522516959633470865216626754681170146257677416318161502363644109428184410977835189094092319295333545137674339141391747969082429564874975270527583710455097141208086724100843088581165559240822782693023641807358094133294420611768058752224914291726711187904206449824327927019147988610902950847498981221487184959065921734246407472050659567606317194609737059465205520077069954360175685206918573537428371075674403767749144617195320518371225427325106393668436709731633639364755303574390733843051394506486796201140607829363316411063255776327179076007378327018876022000123580717614091750623547751145066832964995704960449408819200212718870894624731672044500013271621067521104198126259776554954435987987949503754599665580625027639373425646093370890547668907835347078488967193696853920757063721352311795994113167425431008854107995075072314907388145222164927915491594414691143044245818168557576300576348318077719718809007231541112211871272154523532026612431987722067607430840329401076286761391398783196065925536298994006309744632420438316990941683905466463370529590973004513399339529934565368881502683646245744609795794844083476624878132574546095832519747644798919643500494205769973023677829479737651967142058860160274241490769137577806479351393883465828867186845083413245276082617520520399709041909182155825731931784833470615565899741567299068367282935876155272630073371682759736937113661215544545542313118217347882059075505869720016450820874884355039380094155241779278620814421257731669521675129567395988319010991543975743720894849870781293842396507799143114313892501932696202074263832323222704840289903857398897017644387199354982897958154368831160096043576089762484057705711446846865310711495377735861713108495452113293093992234448272714027531570572892313658441740568109189140625901962213686390519100188795678628063178251208837142244587182578758413913946775185247902513822219937483400312258379802939268437331395729291528621455984364076033387492945603938954575841053888026408195419206323123903792087566356734581535186831990512848727117910379479632778562710520414841195121011164087473862404796388616773032677427612369492886641333768214089599098295692908240999417401536944378777539913996093904941151553994482455974526055348999662547099820177482425286792666601900461949167242287518520025319570048450376652697931628023667694632665271112455729273517579321510926569477479172003705900799861343813348301684996029299221680426152640036138359535706414081354658726415422530768598516560969389775641729350140593895343367316150638197183044808492763235619867323259023104931203497394372540833360918175474001540235840794513264574829261271386136853988239613653674977770256694713682396419276100329590717423258057872019209028642798931192155493399689336954366228195380556348349383990792100775387054982047036964467313140087314692900558144158833653859890767737617572382287608541398624105353185900226616616752497710300153803691426592162806413998519283821240729516017563879888325701709759890873125434356128600779176742847127370619135994004853223703682283798718223689629319728266505035054623126464481137693255141859255544176936113961141906741827066526952328423973819623937309882603640793057685194298341433184173511529916209351691433121528639264561414024566245492375465647584315500836932937600874233154875616981797031531931737297948622025006138008788684453613809858037784858554585262045156482372864003520479629741278698174087678064687125136171648971907468434868368196406466215178434989048756450662950668273386030752535236197724920087317658431553312787591249143528572356200155410105224426381460334052071569954761979722470379349807233485612617258922788083207109969819679075418529445731902513107000960725047496423711026350446291178773087769061527615138025118890756616784082122806979106214709164757438887855900975508155630038311767306469210825241684439829682354871905824103522300750598510423449106510008022977018752672151816325734622909742814742679460462421533038416652819696354301491937774536843882754332355022598396695024708585460857798146313960592560689628444827909024970020998314639643792287925939465964842226347142839755979076818819337961694188567684840484331878222043379653270293205289978474063424923362013203112439643991293405674136014049192377783500443153568948507261954971825192643169854222151095011193258464625591967071136143664280823174391702135660311769166025468234472081128953671323802672278972655369159558207361684537369647413132965907936970533870040196911557229254927835800044983201488771561126191560837960276905169818698289252310024577479857640154292305680844383313226751894292905835814177327223094214098694075304349628467847543353236236418331565894332544068032120718950645951799196950891189348497249061386130115144674577390370030092068975914239500828273541176327271471305884825344124777606748163886231414055441535847116561088989724573547308115714146079394795991858039336366220734411803520192069994287414181711835233397122391202982605107786982575063256296509735375337762253064331650913534748623664588104370426593425514366584936228381969998454954050262207680222016087343813847393459844460576534301829529661437012253412048966344610597951395191593823403094899140152021713186205167706594066674438336598375380696908076228753579252018276402748308113745360621783681230866493051753574680309685644062993828006114644247233095145531337033112880313862268887118105199569770002030183037864442990886992387382774498431882324427315079793271188804698783365236001980661624482058922768432253068979476077280493837962235035668200006030574455234706227353850827371829149109460068602838847318974091245430466683467207572084277151568843163965811319209602716151812693390038680074885149316436699494081111216148230115585378279532221681711734494534096068721675518869758460906540458049269094729733944758430561529451215962517793170770727219647053501418367773504948997867647819724536053011883962557529818202944209877721898269740129276515410456842717162460718542065993612484009969231157128755166667744932975067987619931334867551299685374844861927783953756811488124305562922331533112862716740803712939164579691898371564569346042997799655323550276186671403852309499471451928584983722757421651514054366236094666439068870799623603566938410799520299952226877958292031701443932613069812390059534113235384268454939877712399601136261032756091077152442506932793396073124800555508980820747086978144618351622433146071233466176901212033264800695657277805648775798965804551220461909407986159227391765688257896129778038223536444928197924594070248565882595516396979212959149581857666382397208845655713236146849520032467661214129722960022294560872601208663792734597406379986170851181617917737930989844825526047955297941204443958758741057816795461132986614999407104208097168934770231065248459725230135529962541283386213274476777590938357723471022723251056009200051179665250685834070198747141408631857558223366556614491790108109292782394044403779395193254569547489888650518219404686269405233674514640853908587039657117893623630795297579269749730718595658197781132097766579314328456530421448998154282610204506239223145628435796798625559872368271649287477622095324106995593677421086007104986883068894686866500678005499391605714726542517506620183265041521565604089757684372510996569879180108157951134539258085511124738235820978623229345150361625909721039886814706923371828914570852415590890764728145521307658006214914137058503735823263854415040002319634954763654098325555368297990846228430736978180208951205665802543848408124491638607201140759308881837092551868375120686029280174216784909456884929310758394702293759749825147235496718486998969301787830485743056631409658061277255818350231317689802975305238060062226897414344452983111692554556410754657113224471337000764810201895340237563813297618511031131553708749709040697647588173680766275139146570354412138826730097944284222185451123890825544287115676074382099641302028838282162461560947539981633800199850654213989524309114871588916436268572549130807815985299317920274442885798665904960027215663769813202590583144188428248907901435925324399369829556222508934045031582863208901990128082930824484950110939446565782144335648956202472594412986798238195613022219824529233329461164868116263232504257979820203523896137970908747517395858438438203989664330338647355494400832160983278277757713352381706527568664375777190802990146498023913630129995197366773137411398915515973734478764123633725203429296877375837437727302900500763915202452383026424559042431845417088944676984489554179665769328955568560241028320030906707034352354716821246275148147829998275793004290877301139098525240990791956752080756646042585682585065345883658218082069406321398452846449862143042747087333185298036908941921032252418895936230395102493594716705336875503299802890534427711499853560333672876533992560486072413505999312216377588752190358120208769189869963720971392489318303572842994722388403178449737147759086716647153294498725033922491420874243318486596399118664965019264370004831021816512323141978971747888336723633110889950468510004058138525712863966187789802396687773795910806048660914908464912610148760231335869871960749386638728100149192449425070545536427454481509575350689463214222278932736518224497925097677605434210007704957390899429807483272524943560575301704086825595479118507326653655811072899780325500736251456922684720952723813254835470586304554381195515881908179651968614922257604692617988515147050179414334329360694824974735333584724975991223658045800498061868498202847332393698832983755441796356038647378156534359045098297893389271035039311831267016100271556400141485950188210313485104213315596082686623165648912233957356974547818028190936572258053294498945441695231671267881100681980393753428090335607018127240492723076620683791758490984017825526168293920133321876471220858843525318697961028204444525769537295602477209022555676945298398566680716705840051343860211215676416257853578456038822194694880293022614181673194294538240462838447783426894472863187271066045481073799752689601273519764942557547201732233601499690623268045744867680559705199041976369669739770367211455513843952172543966008762824302122723758589072038119824360789075099062478640264408619312201072888346740775955970871518838752310498186870845382456538349957316260709935904317417717328050715829456310939037444031719934237539868055412897745169505339497895580705387550252263379012042976805304769758086824596627881506584255290715982445010842771292688482962387601669193569063799580110831774137272687690519578866408202228991026159986860790558395961939773732404251426373956379326943586718585745579906507125540135010820001766566344794848661627816594600764436548347320777286428249930296746705448937137106714642572826018067181672462927125462783634377631125408778028479112121531492517660656819359388721789718380679353901469251141586076477553845041027336243671470283931290251843094791688276883358556279360146813192982381490646987373991464893217382078099189006315350605790557159298234002606223579302984101621485494334324864591271418937724367639933710235303129748096844810973605736594426944204658423754819284749171071951111702710861758011308022585732959151145635674128741362977793020502065524429587652728928460221129475002222235088834250407920892319913534833428311718524283197125770157617314202133650481306983244181260150024836788068847373642811007826767441751615391158500449256908456409253264457646947219063880521988754315142013600711333479426428367800452501964028914951370739749771320016686447860793686674903168040439467902392833998134999085624491509688148622305568636471202423480931323067742052544699696129473767898366632208526724685499645411034068129976694040673373581170367762308660791448935349546722113146189877357168287108714002587605493166484331084773590013415740403358681805155430202208728216563960773855859093968311399846525796559131593068310736504042576211331455548071026897206666885922029387905733375613132636688936667764043377124730391855358186449052675354860005683416853420227461313929656911624116372947668816255153694574759179447132190821434323408109341996448145287268077172584320738976023807574297348221982512331208285969432846711247072541355396872562026272169011692529920834425742022536861423783799866747667762467574297449042742837019899110680251427437109420702730075514595190888583754854251513874434270271399339596833541179551795001482034722061828935092785814813652554658121271553770928981052737713125476796428230754554202964519795651927185634909440879275280751343405295427890445572716790277039597727065529901219542994244936360488197344229660486404059441170917617603654964409190315082007223899559685224977762766742567052276254884793423568354736496528228889143823490967684648358382767997218474094341490969951152201095607898042489197308302938346830443701606218989852382345814949820984890655100459494331584488511955309383635534677356774373495943779953018829561775144789355284029442325209123396124971799733103634819171957095865870318499062183454315129745666354320849993730514753247760577691767881711519908283304784122538762182834104607923237358761961708458194061066494865603413989221076419263484169988130116955413074641304811446739201118062186745007477838761396702699704204475612591054094198118718181583511833446514160422178539465036831682729171966662757239523259886913170375593173425335376767637623323209181051321174600754281536462079304995381134659223416242115473185750429498146534812872014330687762151775409232434790614238776977509129956106888777652294171015966569070421786091289393776334806858214112973895501330791612937522964987882272541988713041643661903329588231810767699995072681796551350418407704788883828298358428418408310669618898575854635275560302250904016902062088653516139934622159226109961511073564178237332255481066855040361716683992073044876188051846510413540185565637526613658993582288583905650916608856538318249007980803644282667304383816901046883238342760544951109990555382363169954242342234028471125155998399529481104970040126975703725395180480970800591364074334976932267660047747355341341886481508603644885165497538592773839990082184280197312752382456110904760039378314560055345928545243139399389884369302005347802077130244523228123833710867730622614684976314584430223910036853084048175704026289817693545564030785300784105277116139327988118169275202722161237947087965414220482685350979572240722093093133090490709529991578563758954536650565803883669694618217617780325343498407502896022764831740473047289673791015478247562702405870366606758325562169129701441857223894390855598776326750130835396279283743916672725690822184644832299315458474782710183271009706760617467513304094198458225274852466694411505956638144596954320706083180054282979231091486003367870468027447956051641299062656958249712524162056646356302450442144036265139366935832188028221500452151863914568308583115359775178751895358027894376477894059105070224407210386978614533749106099124217738337956152139901872709633899241465803196198832948565924371645831434420818250673764348299241663491130484176029463787172830761448442784712822317699442945802830158239192460891738725465414758885354469833453743833523373444759264744658578057718687331789737915276587280653537130168662347008321392841915851158004853490294263028709220598220633719887259341555763911069036802912462289813323616993258641361438635454706326388608189617136202425421929955550414726118236623777647640780438211845006709795894194548692752626217371456011323389504557057709277164204156544677893183918692601303301648385755869841480848218196000350114538378087500607204706107253054015146842354812670625201873202585243219912832101148424499045432241797335386256112542901418950520412277764649620078935818054874118269231853825440352703889542281585688126698593619871247899339976629620500843805578253182454254830414795739264982476391538338907093329499454564394111101013234814972541521519920267823997830522839757248151739536855599793958822487299836428062531708457907887267592538919562264637299654062269490792292697854582673386800413311611626378986390508304513985112843580541617470622743901988094322462067695497131519382760644687247821357860466406963025255023135493725764088954683646708027981250668438850498598377761969563830582699331450435076806274512365601055894366190504583777343638752252058122759494278601069774671013641765686161936652793412463578491483193226994279315077259180650284916626435325103670017043505666826001531838453730321522251579592753206400512792900658470629579861967057477050306316511088281743279299045474287340172290466919688281586733805160502329912500643958144383517111136551355727065877338405993935175700765803722139293462826247611686525780452708850805176805712715686571582310298368515133363255496061275963455604101768998291456477728857125029619688523005191648673897804547957500456387766995930209657870301292617126342635251942853904721183396096215963567735397504453473947103123732654440165407467626166243628465029694283264497254456954345902010579448527586371317281870989084997952543883278416120031219207314970788122945524945709685399825046926934091478033569772731311102083921275232451795255773153229687295149710404218478236233111240768839814354020407975994659554893840541087076992062171416596912706185702730901679932246268616181863991447642095371589638188633443444086013346430557917229122582656091025141043306829312774839995607016248070306671846715268495183013844050113949809613885332554863071469740121923647232956166276751960390673759874500831114649088936758341482922850692029776104900133052155740988550618775374087161580165229697441931264557018720916007121389634510668931308378692423139742455267246045765357480945033219367222830453269174916844127806468070112613657989945507847696573326154908510298158984530442340315453922929977141684171484140627151995977523439581013394355079081699420259374639645818408374553131442603044314183051226811804060328441291861467769028483081561247228745910685211978600227401718823739495686718566958186978244789023652540543059545856515223079875371525001969196569037022706600760590617553601158759178668636030957599999412762864938451106999085668174725461683595838774398890434575619823684405975155244179342694967197051991680788276655154116919975151461607158822791274708565697040154890631416669758933959819087900779615218399604682815479233883007723089495250840282024032105287344461904889329140009047784974096790003907645263803960204491624239507249317224505780990500422602189327375963314126739048495839811534910881994934536585782835469441332980839771316515077866677729887527154883443538500361205293804285591480781501580092276541462356633681896164127750527112193637053492606036027003965805229803471038109328830079601553928288762134588114116309442393973085701875474082827816710080487992761100336717357154960183554129598523003256326245678507784032416733546998760852722664733015428150007848505378695357879752072920491940874328932559073062923076006653007150060910846568832692825070895477090820529188469406233400267485089223179334411080003729423592805694632609624847596101290521467112003093426799664517367971398513410013884445244348815632370172990505754524301877164942764981148337463212534989638198539966899830113620103582320945237141708145833050065073150534513945719216523388872032724061104113741210935468590118470462076981981696312460365888634600202725518274265500187107548672194822270801245885956588979991083102695959145295574685746988082240890509802206991923624874835332497540538989967142037530191828573617316704383798901813853574082601549216177885515793292331039494127744643984488930140428912506208147909368573763357213495550201081610960197583457171682613276990368603725559698076430447086956116115523635189610508759162918049072962056899516721972617470888455971798241705323231474615540616221464640845902936344720164165829744682871017631661547464625278542819297653665005260396209227987388401299926052401755530408591468432133404607652571609101457766902322939354311494069663877513742750574241099758824969420421598997203637541270598254859364321885051683356703616874170286363494630062494372489256650544844556294966548443794416124318020467732946161888459958239974058001219836396607668115301544357755218388426767004328304408870705821274470610727246220410821302525470849318227348676337522578709321761748489699662698508855054625177549642002993572631244056257636901085167480184840560781451762571987169317067295609552192078233458586994624534784186195212905122305775610196350981050924211014023298273886367260047607398497917523373749868505172205467249796358404299197695322841355449910909761664307792070779080282196602411493149064609630382826437963832705406173606121934481886109583949970145936832610418635307552662336802099192766526571579227462944709962263699004032685710319934770814589309640828247335676099616281695854863895982946685207346995626123460122260631364679463624979828517100672959762622255614775740836039170320325741425304068621773692150202671771200041363145135698151961898319239925640927251296176449759342421301534415496303565022398903608153197589184662534321581762186804363897238637465314623830656273545970416312060115889961431588420810667103716001316407048171621339663658785623999878754722255545698505185406971560234366446910961732150121108676432133735004899193453212224257269800504767945820632940332327315326621473827987919831042704871981889406207670338895227000155185129966199755132343000152855148568232827156172544416870424597211975162693444924360233248759317803706194912461691910978973644539740134979922087099463794350396155244856553049704218023314703735450859363108386938844762766525447739664712539964928919512653669775561412222857139271067572207508058839492517130356338440698674690268543180235359302142908162992316217185621884316516662876421914373026950207325948502344182320424346498208632992285706288163837279273756631151072567857739415318897918584136503183363772114039813928212265506622288846534843645203583855278730131495025721073081710996485099050227452984524726044512882068731279236500819302888707558153874744041446413561175621639496463108571197390092715705558766098280815131557832967323659287436646978318274778337613334473288324536742931373067198602768524716464212163526143076318096022044959968136612778882814537095932917098136776109603193591541275546358961402742080287340735223502277477932756663101797106841075068073665325790598882101061195876484896395973134084032475726853582327782036043044142604084760567033075692939367871368009801338539913357560309441512398128722917499333320597808157837746519110478795987086794361492473514530821411106360706757265394864974064643677557645060277288186138186722785939479550787456576174252124122924224007875054552940607190883964871240798274885954839636606020903468703195408566705299559208655288931702973723599745786334594542921256741813534701940532774119394759066367469814874125932627373007109484665082378621407398828402848707105694332119839474901792759784156889496325962773788646396252754611285476842295474516329207394751966214856611513679459546683781003725427149947940334913305027214234426866323931438041042220083190516366979060439839892924103598274274236771367667276529019483612423596344058748083809134974964796313978813575658709735989901630694183071344839355011157847970511637117686557390104088189084388595957191924383130108178255644554865085845375331368538069893979604867247114345696937851105038009362989570465161417826558062964448189860620851291069273070138294915362385630244220492457506568538671302220678883425607166950167494989373471752075161924670771150359691822630290221593424166902012756380430736476558720063263028742393640594662560527656332658514837031029503209151144601225965964563781083473871870230498676407173112817758946530482685580097784132835755467789375325132800128670315244486739665395390367231933499579740633000869503435882998498378796469409164768126323342727616539371355624799742333212059358527414647995284690893087549464955810047875372355546560452954638204266537163277588590655847303015758378148601895355580591308907521584227124119497117917462708053863109086448367970098329735361796535624105395312224159052033790256061930072549916156425390568034310257355651959694346620380201068300665124154426138815471487432665419441169771571038688604999486972663504789606225629836085798040233481113256396002815917032728072786879759176950516185628517414100827822066602352889678928837495878309656467881677896823721865241372633340970655905582357390004927994491990448322885023345727415691472978398724581490246994121583547215965142670000459567180735305990959088370340145221842475696047394492150518094725431087442518941766115843517083664843855203174056685067195664862386027407800682052130113276607962041637387709087930600914410319772793082397698501358487606647209892547309585729700540780511829730017088632317382717219046115737290952947390196230071806865998885297677264131095404800899761854930488308633817595219096050353691475865540201951725326261161733897061550722711630346403621778580323914164483634571808775509078918833808473578980161109120939245232700205684245344979208749049821904105049142489415528146361336803184594249327356318543325069240862785208561574097862894636356407081115698579040609397979348366478610675184734467561085013863385895077637052971151886839607509727263077119123001879687074708360001321286308012160379003842314534506786526609193565463265051452403420204486709094872943736424491102909976595739131581502125077388220655034829487790924843106880647486231976957166215896870052563810687030603675460071303697829283625569210143084005576930093698335247817632187486078131776615138527456294555734106328779863559007691687391070703082923860645276708128665075026207860675688114171141709958840602431585127654665765530085289500777958562003924787723109371161542102030029078054719369888987216850392993740185438940308313382190327794721418790675452755174490126602732919195183680256431630258621684328731803284453647841449910649815658933566249134130737268696644616714414665254337062651897971483536285259463520998322969493077030968345786556919159474311008912272808872699641327092207310392784083895316926952071979503146637200791140954418947671967055996390578360502094508866452048418001825303783165443255282181059830413215997485354777955515049073860059350997217949715621960277249837106559396747966196870030507001078833995293766316496500813221492093158027806434191381798315300372316230157262807172195496429176682860748199491445754409467455356926230193531620938729357016695781512531705538897904668620014966275405040527563218875721404720932137324384899385893245889229140979327500982747425559594280130633384477448545041747135720574514196982705306321199935586287920953676181002821384202908843764554197192838511825730491520458480624442159612636932125426861437121626100932461436138977744107633391272484074831568015912316185799664460248841442728695684610630416368406910241709090592318789191656454839160245311738684055097613496709994858655515711169615231432511693433745017640823683532496012428984352925255411871175214446312064754359865226945330394660839081693594416796222214874657362843948498699866631724965973694465811504229714849818168788508986507273439303814586143969301868703716333346413387266027730392546689311697091131843261287608719754601191413983730283458791049662009787749807997148959662535817888134713220217808022017624143532466367297622440666199418669339485187484125142305229803267821891826123191368157673070752722643355467711297715533493594040272363862408090054458817339373535688702706793529898748357358306817446152741055758866766217380541924633976085231439780528972024905130718778582905833165797325464022926116516958827430580508442855096667829099820811212056612034849924433131373341469695894075295603114695900972180514132731911124375766657999259375230841336848167227732702801041238864287819066479268403976498721879342278491016972213625436619836217550596805863216808159143684428809498179456336895619359905740321113558899915596442018023429238672470594987976922866683371416594344469540619285237164000735358501244134035644147217297416013903556074474429981814365026850260807942274344058607701086770488567325526552349942612991571123676207647762345277117152083708115985123139922495141479747933724996470300192777752609640405743642607955633033251308878250097740045666720898575914996078687235362131514948164973424275291140980025145563580567709687813887729836065196463445794638610280541817673279838612148146475739608511671460989257488232709756763679738637762505608553626032884006319446113031842554376654281795128807671245135706031559453311668531719008052325486352413129771027052410197981526960129002285329541020667515336887523242088110830284990186243077394477832535490894831496796183550452302211621572543473372781490128577397598956920340165545325418208675299537981478226750945919319143155642133611637743161141117251414559890210563835631038088493118534041054513704232591903505905543527432301783871303583984974980861944701273526114984619087743141244584612879119627253825517546398400087163015338485505899131737265886401649346395937729458715287827872314124558903903129360519531924450802053952113531714725642730449445805377208747734022804349697068560384845610107459148625315081880014023852127774923656658691330246001546266857643131843020264627118296622756735999361861623406650060754418614127252861921028415438099431355507997601788560711719477742898641499033340718613007418098492484609363859640808752066910288505956817402984567693016761545424525950738387165131370154429454534162357466208932869413011919437454256218458168305547985319565004314343375381227753211837787702086788366681561171926785520240370649646282869071859502792498857468036755066423192581451957966876574199261011653824392709644621801991016816231452469280524284396624707236533738638318550604639821468864959003752449322494554535030939382359005609672428366592811612002815399587038320022858400545493555384830468269242352090640251993672788514662421059510757891363251735606793515186065235192907906190122464415524718107171043592721222335717014936233536456746784304276818401778239988603178749893017756744197613483006160818001966661043912984489155246013798209798581419289958395816285033748119695719868407568251533988339362508047654759727685553546959314383846288241321840950385760962435095675798306775958838338016858006773477596531878023374833187857093468902899406361135336892963897079574964825596641490988975657273200139584234238632260259446591475608732464076563190950100899874791406022801004406559490102060155420052952283119246378670364216455460749339874715817385771954685252141590593834549403592717122873121954680790034145702553649657623595943885306835032147189620571792555088115476724792978624253722954441381189065488430616875972524901731546612586877263506319317729612841277610136979819201939973703699329188745149645488814837033774655350138079140335606573452102911751276336335671529019562458002442973607375205232075186050211764994355057970767876911454211130343115759961087348159532139143555628373189402946940747032934902759001864431452226406800086182084558009073085849120483548110760617487996538795017357192696783204592290640556981773046966373289156008593920968798305781121622058652654085893254501470873067826341936426585147364251424842814332648764664538417911780797799170630522223850332152759432871490206789488781808684403492367469490973890668125707732887318607143547151237959405417497999811216063977687746155588006951857957265615947253109633341934797286967725414740246784479605180496164376838081951901940247825248633628311258919194249564510400191900769042064668067332970559572003728457972529180460842507478900893052061265180657279748933613753720134811952321951305201310206761665798391478034163264553266588759216251719142908768484989812678271300706698456520575926047113960540915026033281559650597266589660223849144092528515483423054312272771535328584715559575547871086620532588900271889574718910077771698037269779117356710435262441189137977184362117914128014772291698576360165614575729781926978014843228526233867341315469377936417659974832022362458196822828854579751883765378589755171680505220279698058697841774760025720142794314121483998249349291584511273418106606154421515642557366713558019741338766162516621725896085329726131488894060482285774982900390230689608224806859010956076606063247808230232964944436170425859188471906200490261655922799959642491692477157028714120164541030607819292850733637658182967660249952436423720559116289902089403156139817307405523338956817181761669451894394491046998728020921757194222933440426937964284446212104881257678177638027160044257592725171375561730505709757201903442816834470395573575723450730150789598680948114902869991541834847923281322170758305063379740875940308119094903021291069658735817708449606421259243213622710834655107955398670590225227961609266968299067153823582211398987016111084043852339577730327237929367222721524634477636036213215098631841286691691568820690759588874700508870716700180111991780844870975855715189692204588111522541015661363516941954679184558682765918126387263334491052328347203802069592187326702283279910795267212200987622395556601023087961314323026579295827696100844402239169508233110661696481956294325364202735189521367750470593679261389629900817564973265376999760499580283499808940617005938165681576536807057773798047399757799880403678020683025454604807988296206346946934681466705927021843855526532434583045624243374652327387552394989127271033668496717008866209358454133104784800055992462148000482723599499691549786612899222955794638902376959228094126544014135297229839755272676238013415928942595841966139665274598723197564108702650504140236558806349783030930409572323933702056742432168217740004113380409814142200433440280312171528836406296059009040932668779299828983666037680999716743453756896811685782606529639045329054884786569729630804759172800949965911949608707397420244150562228455963535172551823247838707218179136553575166754648220032093420716656936117622438235214999311612509482421444712032870150694568773608088007909974759173091043433067785066030573634494839031140187483984689848057614094605050201264771579835256172299385384622083541178840157837081525628372434421428976800496112526617433311819086196651222661979096595641536634580230730978911518260547623683636529627197356604043935831651758856482958450511860835383281287025043158951153657188067040770457905203183821627657062221203763019315682165038926734361592053452486869389197761756151114522270867866700602842753578016044565634293100766627975787906143763315471371772153625375778360680085897538570308140445531552246726595432266145187349738263146736125266199231201099024925766709258878844152023363884437688270618868495251218289865609265277187010900647003516670381254139342666216156259676292689797508523774821370229898665246167980778122403219127363518603137820707178590278194259541420856502650651502810204156120645611815096641279227546512519567512116291558801652162844598514968949541829853878869171757287436345151739996411127170301050294296143405342357313257714229738995733343287650798374692644078860174760822152589845255773174339255668663017173727752965767057925501880390778086814193448329590153565063809265289666450761231405632375520359017658366525931404247711238754425095440655650873793658810255472441682279098574069102658981860625235548783572686544375438157534463753909721605478607689606773339273383016174417131189722392619278333687044198739370217780413941375991011365618189408829313942047027825652711400787414212572053858857713371960460879381274061150494768727591930899078129597732839911822328987172750531403532040856773807410092746762768627768948016037384262604193221059444303535858367326805172391208079842228637307362030816926316261386546912088266464286108503492414528443459163662404788709287453073531222319404973454514650896455218616026404842509187988666189145251854356628588687394721314821320266420485566758676958396440710578187895247752852312849349489348811167252209281273802972566089768464834566712691056881543795399644255932808291036004619458006616770439257212227284441545668339545500881043797297168751190579561906901672688453112982675617909176476972023523360370211348606466826354405394721022814105959393820723339941299177620162479471222137446503474521542294973253970780355053018880337501221509568461503707204584585278055323519695771574019426534303302302722258883640837546263125376342388620608748582439524320878764552959803133385685719256739625933862396526864893907089379715441069999346118038798585388966968050725604902676513283997703166803053127594126992035257384865777160994953978239682131481861002874703294759672295518186326989937791327619574459800113492413614036315267364535505597569661879585709548735885605349014898817999538847166508315480013822635690058716735768202333075575768139065998110911437508768198750373474546762146242026410755811759228742309439725627905202557454307177016120232648560024909787257939205438799885992076800526811176518504966788645267407909905261843331189750966931117689990323388695542358535202727927348209989693909926820619922091793779935154739639783359078938797979086945181769129911248098974847326163075209958478636583670064408294452801501844490567880755977984184005637560593513740028204609814424572511532622696536698189186000917576872976523724539282738910655491916806203639852777729041008702767993182724746962338963714652006407572447741965765889787464049729071209711928368832891533293841730881791713719116552389383030785873221905819357869976096505702135012409605654410500081116295006642664375281499530686265401765626472934833830651119608930057917410131400431886494750407146926436364947832710006503708237844676860233032991600499141954123666912813690891709780845180714084920439338357241459435685618564117574260035720280586863385876251055275695357633203577675554789502455767837555585128104102204824100401218412010522635812172856656038309909493605468203952082966861299400263870060295613326639373688679395052946303668372726682222227649063603394424494684405640285308581500048894169067108208124723017990723756459769637680337538286579054225850628848595970034447824854217122612666534360215988073289841588883298339466594432883492438115255918825170278780563019648024401351912731826105642469657485322074301267392136542704644577755097250327950920052695063786974382059391454828875996543048929328393877672915580973346425813347283229613738729986058927407274239636474447340406878154596110370179142833592914827976721481452806023125829707573235912943990817908005589352702476252624851778032163875675135830027792608444085108550622739300863349215085197299649866315046783369467028695495441800225016412747193963927457352638393737860242736514638430840421950575298043316886568034592731210183081443978934596376925654859827756236474347515079959375592203807065179434775808652979071239268334365493993411534944459207290835509737671943653875708348595982531226555692039806436981040338081968105432132162352916492425283908848239749535377030733110320413327719556220011975013444342180563704357926161967359266261507596093860320029010686112472517357696351718402496105585905162382706372779102812100661495473759745542189701856841460412358191823861621263655964159598169571937188945750252666586744920270924762004745157104270704630389523472754407647054981634540789963544261942419698064997079423296951487027886857087217534588685784795003726719586672746466213662955304470818756603620772239085745559682572026746338989792874856881774322500413835339943078687043410568019697320545120559839217756052128179687386913548508481089142126095192802336944694779852829963324956354199379901626921243398439964049387378736162564882675756912863619976429120379206119312459216679249935433976926517234032414035775372248985337836138283570198056809405547119316617898890509449485043286242582326237018235346495308216789403214040737138822219910568198034988479840669416065603638311771957142540538703276783428868299370518336187747914543866449201396530887158659731493639970460970384179686447396721675240490765049976519220845510878649963689793453310889901544339825750504105909972478496967359132729680158817487324777989571934300168525633735100527728240074668872938307672204083728220847902334672427781038953908850990221396155669874486432044407702631839035563616494244748033455516475365431930546831781753224853139764777908199527076715191378703468930474241502922965670041092300781155153012285031460322983430313044713927543777520827033143389050882104771342881454877030900778405570587704973463112805367316382577889815915005582627408567153692297858304845076866934445967257833800837794758822814157219090473278535348032992845507078548194497494125205805174919144505344270225491147844382920401542111615598592538967321200695287717869842962969699912572909247730559168282187263467816119205595600825609572699795906435492182730523912109398173305424625854508042632240961682042263110759304532234875353391776476859359372969160355946332537805175358671704561460997092454414713971828500442011202646260947149905125249399261067713486904077487598603903913096537683908711849296004664659398493213354726823529490233613279158778339343729036651009999890407409901442443587501805835933194991351874947437084724746428450965021355499173571448119848345283285593496475708943152761805005264348683857049481751000962284244265088144332572969145170332186993938606115990095967425121096030513901187606640607965621899600045668163990178883693354550265317643928231601064303952614631299885599312006162638267822071339378190951014759464295666666078722527001062895826092927783393443505513680029269096325153380942315631667178845329844918808202992727619225906357148264800751123055886336173799499690536197439990698887811244351557968620297695887636760829231745887538233252736534887914273073669564542162703035449197579289850308973536610707857234644983058867404602287654590984241344756421595764613083072400700673821032235831762185927462087169373110556275750568245083068755081976531098345964509935880276056035047208280762330376118467416109851994050190104568983831755423639750510115118199767636857204734483931283231792707659839830753400595547468882189001421774947079178260423243252810227471914861619537052944971182244212473714212110583828937857565196632279994315414976352141805915942174599389213860343856259853742650692784771605153602102293482237204916382354998861767147300054432413085333837579869396358899175521599806628714899991747265259844000774664342619669397083742784841456032842962414900285417170286249310061572372911591027178313543920486861131323831282692512655663135930570277043953258338046041676401204879754828183473915730095131481510773503717804481674846360649897155903624205648703909547156611582855726569481176758518983020688681597610838163709684948477952043814602507021960336683821155851179840474472599404565127210505251903173745271566059820592343415611741824024857045306052674996505607492543118376564769844905360621601499823575450548917085396804353425730112467935057456649671407384854101132854329483724710563852189831395903147028016956717389220573233298979476726938358058171738720331007392618922043579019290054173397427133587893887042092351265397859473021382615515671622241284655614386795079433585077131407457933718697157778264834670835205556429432225629879112213454664588171489464463240122106554037116555013430572001371066541331764409202577298561834589836765200175403200551762530878217859542342304196629117791975329947555575132932850933681761058625637771221326494947729927872476817566255641911290776002335049229891639621414482365099140347556345841151700920499038938614615980646079369110845724724179354307494792092116944049193134790264927925446286899118672629432879931355544755356420894967471594904178200695775049322880868221536526807887340551896416650705648309203344302642183707079560876721220034751710709814089856719593738140803201020510172993689756221314852706932794347315681154308414916712789080484261956165392583198138783892767929373728893593965998544999966468102236101671433701595167882400196092138107262202903380352433964438188256757571549008340716368444993984064800217167330302882972613462633212347796083006280469161866883577349211554076780833835570002701951585758313715437754105853513161268603657090257995979887767619260798453895888199415229611792899570292975154021290630734642908384684338615201044471917101145158042249844450728887804077290537136313342960571353156994674869116405328007389612029342800381802571521285939263554451122130705178247674955111227977591529438788094892052498865723054525451974519451835829416023225617633480214317275321647924423779337765573520179379870525912102614572528420124904004498525902023348684864632391050784861064460444366385213480208071665745974394769154179400362451175106166820811663660618328067046553174804794813249951631823500910617906778192408901780253403582137467263173943947500245376813665281615934926519696244028517308753826766650975695185340940127067051582496997981323857833555979018811092648350120346430200534347134517866746491717912998245865615200937369427925954071347699407791352552777915839568183465573411595910747204132638396943168827725039147507672187498092171403636912318230515159723390262999162529027043476101851702247940409745983204786349279572021033987024959613450651304005583688042067321313249742686947809187901369095300692248275628161468984940633424691441749883679341824672957181833337446893619149854497960975586079141929433878508013486865942247562635487541316950078423841139443082563471466637845810630118513530957421538066226888257103598483811416903380673534098702321827815031585795319614378263380938147297150051964714015205492018248791290222122525208585229259629830867569551659687479043123626440390224350434612037039385659784222009729307511616669985300791963067768491575907994898822575014626361776503722397951058193904645183528109732786841049013873801433132367267767789701592891229062490976681439466411778940091291531467000778551277150213901725949898087392396170398988039715508603019420313506739549601488604743710946444541535612259083824381864332548854807454948251302159322408418309017187555354077783386796800644865907710995699423351906288295258026985628250927518488544032857766147353282680337636688311934147658034338536436635353230092389412367457359798126349033047098006441289965672739540438168847327546289689502631562617790444682637679055543349700337959721953433411334843805941034630985170586238701376754200531963465234947070812371054479861677615984820499777076948382508100603291732145932720418676721495607799880037531287346299360298128737352877014069305828588226003551523757085994825771533249150813252043374567112257017862202517855528156223451110623685613609783401592408367688396974180332608007198232788681926168100912126951583450055538873634816472051248951980031193495500743500168422335673154259757035766294230717487307745637160746527109435073345423954749974848850342167178384967708597065466076889119642760757730717749642260551482965833708256222813274812165098121715544367942202873962374517094150174948528646660375774602313907907946477050996212438101332204945773327005217231369498545669921891843769781077701208919768672985535488272509691514400197942584312977379212594191466475966961024175665039898615133061696101794591510686420726958062846087316943572507334610418229118535482797456289221321381436584544959546300603194187651487480518756489629525144653143806760792330236407667695885505405799278469550334784727728141933333271250303441145560782598436667940265181683349226836854764611820993129253015663708404198422911890636184251744094076046134424308080332814337894584725197811182207043542622287591471056815727451231412051528933466180671201593404367800617922701139433545696577102908868588996268772301635109412278183195245906775926594628258908461219357172200280071608731704684207656744427241496342876893982893320658255128322745534907330391476739171085071206543335258555830565072681025011771585186200719845790612960406657094167703807818326505657324120120217453471105817551016885408062382100750306067959969527898174713267287923192731538287976956220748542007063339842961147371075308813735850433426317966891734471107875471174014250415682924133643622385253262010455476616921547048839105200610322183761173801254567590873922488942991527424609820343769113953951757862473362950430517125338557530706498972205830896455910508395363435989688404490051413189337024896520333272176974003461391108836397581724037084682555629897527563793393771433769246442311530444600619764398365224569344540350433374156265745188125999622871424999095793739227348103104881857032351728846505647657576628540674983235722142508566006641435617523476929397291345975209183486300669409677810084322030769384049495389215736066450942196927948895398815877940626685944673469953202279320141404427703823366675087353819252322334242471284345905161153484797308538737133187171501644713856272243477769235129751179184467747578779704312419292327061645440490855261275604271022005428322092875913535679896123449098572800802444273424626118067007294904473145981338008335778470667720584563578992184169657982856619786594547643820497046581601739956368442094506527634567116804318809473443478012304937995358938403375413467940815123218760668385832376865892756875993680424503780860712408133289960575762042045688111735600577129230746722709550375831343817135236706687880113901659906068789495001746113597573318345969088809380713025472658927046292483881868245023450334426226870215677119546789486368242530379471718283994944637777197832985925933357843221375591099273609412758646249794527592311820381627341197639001589674182572092367860058790004378070427867882205677160179609417398050873613109463349546659438856640434762986589284140034607773083049643240626808915090251237855958268341995203636784859210145810077204632803192564590624653662208959225261928514909147257867787457588964775250105307043369552583557015325356904025898680658934990860063814524517367414160884865413111750028085236172140552445889544298541961326043656279825195862751133019819465626228581277359150605250686147304891573737924816843641498326111301154146742628222952725368512799605771007514924545801880422944786662324002501725439136034423654927013595782250520060317487670795472741666400220912892814463990942415477007754913251327430346466817196391459293605027527233882824991630286766546399812408085421304430938299239755728880848646587725831444453799468898428132769692470677145318568503342260523907905043642494392207795771318823125004080600808775402951730306828682945379301817915794040984748187347676371815091968581082458368285299878733034788114711527585247450585298347253813657033299639475543280601091045039667595360286763109642019078235844350262262182485961784678668877582464032407867049007601213241586074904349148141710702616937357100991308339882281281604042979566246923788563052333080778050326311217055360866047528410594409419688601247056555865945008850816785802607342801119288126773859312157956890637504491650188081946739794819407892443125280127274324839558394254541591412099025563226643992495534413146152317982985036142887173830729200195646479443595162378228018922011281097989055217996692044519997904570131970839520700046342132268547647047571871097670125502936397696464810199654496833725842235329012307636299455880871383715105315093936564640434886336976646189230111548905112792980867397897430814756241304381362004255858429345625040127991813812521535267676998988046439993556624602349976562151076051209246247702342199048085531576859424291579572085571756854779627185488398658537080136248173479907821606739105215781482051042087422020819142680832462409815695211917951702017975442253595134247801768397302184719388504157295722746688050680691828816434154499048753518242180473652820478858554511213064003528119745955687694802104796597722551862206602726561760267632429944492187216914429930748646823673293382028124217779214959259098712137331242021852036167829491193846782592402494059011700533170281605379840914102686792335122561730262014064962242439230725194730436163913850076736855048968464550811067838599772190731156388272512271019860753370229939243088067775941144246412708457612901788478543321565650976589178825989411553580804033268551431860211622075942741190962257646853256097151949463829513816009437332863955683388497925595236888742505089305547790225954227454900923154850566507084392378282516660882909841143726073817908111530069003509293304096035584975187588306687039528387677371698135040047984779991018077952441176671188470095941259913712868890564512481654945283028325612176557978860434108307118273151026741752612931617301964216582759391225175931941461024323727057852215702808773838077797898301774298713980226661567261755253146793306642641716911921743304820545009981315425422331017707784071489148100126822191065142682461873423978902831047834991752670923344653000284637683170631942217957727863227000336833534388320729426417075465051351203584513287990730813063556630062635092331159715934116060439862635036807087581163313737039361612563657548453039659235839054253886815792446171970972490350488952862871864636280489287907067309163545390255782312957978927214697521618456320620171649703269356762194224270072582231276528745254685305551794827651915516224304372571562750778728531787013043335045558611373438320100885535716510892596285703313681375256983156374104893382733566122456432483443032617193372192351737716505415887523775100981154809071870153806708217813660762548746414362080669391474605304593030776011786712918776879186319288618128237944783630789250005020328820626065709315353344444945328684002747126856283126048752921815592918979438866636498633811149232962961255061375158062342578917296877214197735652274539723610858411772422658404858573256694607563082437512815755830893947014950233522653484809683968312198210109222339524822377781344405314615663173731274697147122337060319311562633192775430231298689884781561988419926380463652246466054210094636300660324567313983530321857317646953291657275227719004087713058946824773662460799041616824455809639663128470046411736642240353117366144550521004166401080065990867745029290821200126209005037996420807977457216309433938629832638488505749340409612636379655573167807806356048630104229384721735094947558988805868390311423511139156398289230828875520388842501524871334757950330492470736468833343770512698542073559261882052389760946233857628425371105098840984938368213379749943477156626017118451151381217672711672769814992975088934164807745193625440345861038225840503144215432716623536771498670539064433586899884322307985265245553724791623676852762086251716551190040076154976579639385614706007685159981045655844692182391193099321317350495630940062058223781681703909451476981697139686934951721843913311562984148961993891365270243891698187572687757935357076738010731679131173101445068070660553064598820894352915608396666178032304340265317365911590955558741479466260657278934586383816848192329064261076096157206034780533981635316316153352187163902533200282454828574661921627917866721553711174128364702524495698999421509760116516492897967409865512766667977444498594029007017318101199507078161035687348506736746049087021111289825491568492531018282593962482772037730805511650290858527120739780731816545770580654016534702705505123352996124870466427695760764858445029940712206833129952066490981764561835357968383955279029810110122560136092324780709469666980890783173699209439900971841288816510710878648293702500605576725047275764734801245351470072002178389240470764549090696555621169087430566273505494308548137781434052841279514058824433145588396458501400340731320583740833428313856178900262798524296693268034531833019456838629914739118750914310251836819273129267032461819596382247460312048265046957303375148931133362982540474760942326664237354744479271556605575664512437868786976515357140687160953349553452534878758331981138309968022992960344125351771877229289691592251329309976787236626629165403621177854691169727757269943796487282855288988512364381263830956503714526339306719071724877586844731175408404827454250937397437503268932696862312102855668753397124528450610229625989589016717327335908329372538907997900236052776686438086401359427324414013975759558208264185109782880539821911794294339946654455753745059817675283983352735149323359289035661600451032230227383466643694992138174289176395133291876936144440664451570305877952587087683179341521903729452905205022873555271264897321887777131200740141617209697479380629193436725689096589380662737321966347414982848139535791645602591403237345943624920833999653927824951969493062826734390389741790779242935350551839209285429693160691210488887955622785274665570526258927809905466502895543117767839816625810935532702914910979728834689388575038112970662270844152301839661869801186157274781924913878438995843606650821630709866015829473839970362195385639760841077333771873162896341919254459860786235157206861071765774959515228881099398466228170075404353783203644141796227132726070090259442896942329997060749755329034177179706734703973632516554605214155716268139683482446534633010358671805873430145839504036969612230112892097557500692358364213515176962118488529729433454804461556619921850566097385696060262513574855165991483628532816139621419617148366221196019163268028633995279142671414545790921609315440757316483699242143025646599265409784121924422894438208843113109325817494574278525761281085088295335582866332019754777463535149396731106174802972958280154665877368786465030975324296538528534496787019691226741105121414126585554685114038726537372172485066371054695650018270266175951264922234117156112246319376416782085814779951793542261081095666277265789382964391520207525769112104771099460727902162910002654467802847865554738386769990959537966067138700740641470868400262496226675948674363758339450923903755280171189605308612858659107983569571492738393902276507901249073056132713252484125483300509503836904185284398467199770084672951600191165890934053624215372150278630620134538497470565019043519939703719141714894987362828706336441757162493035500260478319043130999202469882234226580046809212056053950265993882425617631082497808783255175404773062327122727507399720762172715526513652365997710883285008495205820521819197728465013300288862183735932425870388869413449677250628556390846802881837318163843496445425223179764240379036245690503640391886429259455718910887596877204001575202038796490729912297051684777031838135786442933157086932933857397376838077309888972331463223671750060128153949046730577795687785618862129597201552528327034542838329370273879328735060143804305019994407647114857776940859633057717989894220004577654221900044305658159704768020543857386331670897745150823435547428931866719165845574538664423341752335522964180959029125626807994013814295482765931942232069988237730472172462575778892107485552654293827725501872990151266509745851310408020055981154580172440098850876887595189257346390532106024720568869531355659361868933025145268999565446139975542526369593035088088096285575528945286055504984821656093835214923257364387403775743016016654628614776113067560298970677166101603225975337920081670865399814863897211257005116132553864700865366717913455083528286462199690747522255329676346685946340198972190799663508719745746498229123130825670848636306861209137781432649781480011336668855925096393138675210338565436612008514237946193597437973129619144190652675842922780504246051011304748861505885668304583905325273717471895794048486676902917814464814880998338194297967054369423247290000912126175855051653462233329498089272524055574078884714336447845865478770144282290521270747370100097211740529441583207899223843106481581150713832012743377510134952534859482209313032877233766605118325094040290550536857928518736283859093989155614699151230420619695636248374955457193528661381489314365664396980633685711818819190887162648930895762648267912781703020085445370078418705063562191957960490239755384581310112522093638453139649516538514213634936394312585349085758245855932757391613687712582789248203619129359369428148318912556998604639298568822245353586370682386209360124222248543840086719272718510596286881071640460337197523575312389255554014840587946507575517007107341545262193578528062474786418143414175643485816719224059766778886605721017715123710078194625467039971537700339372591212518953570769321908865466883275386465768441120098176682510604768256812107329808988052134736592848275567319127139169200809397363447334827893304176453491605368163569638149438265129152248353380405306982936735675733894093859292808406123278745863321986519224319810996680357371000089914811303723493307077213302430683996811899139747246158228633459816415947609886065393963779973262308984498807815103922339224975014694847268292931164792695908909284031503142114551595834905214032523643445245131709916038638707459213407754142221314724613546264277703508483824948372360313462553587258614715169109509661164458053546306373075220967334493096318487234334076831972212344703143520957462303298527905714841834810924662459293720766614507902273288899264438779956058642999209814012789824057962734794270838968677009351959818059843995042785527259373315104856731982664701630007789555865063208173304920057428764526078839043433789780697444205403527484437260668836185593322185779382643015709619635642755173180530262463502057344049236402027613409166424330963196674307456862092551966127230114744259567102123340756510804739301205394237257371122835231607307248508694722548653961976403167801992464872371875078301374840951577866258194685978341052489604962468010945458115016168276979223467269640475634770429414771395821550250459068494500500054440655559227412377853706105427628191228004725090331259926254014145544522396489668908612135712823680775450811968723259723131131087862271104310839847475671096817877508609949581057682368365790709356822183267527647298297794545184702937771090509308408848014952135080809427659635439550032977219337833880952657560171755059729615694621893773679997775399134541192114398778267179586976032883956492768944342559233102682133443847086145586764661002788103476329226862758974794087464631231303694870845098821819980085971097057322772504589470052863390117673807893249006300485316507844426189435381342547133045191681859090621539062405501731262936738051128196720263345281725934487326678012724753157458410547033104769762115607643616504143057911848421903591950527836101173346956408988921839775018783608339273706865587146049276518836976079237023470040115809076858215041062941093776976217333139947247314413872277150833396138307859471445122930973699312467448628088639081761451321007692802810656299909319885742852125579282512858546325950761043218648334181237122219316775617778686106814227993438083588375975063670749483328599514279321827871361213278726893703011120924055500559531819745911652180677152837606955970052402693291062042263745376150238891156139721678979318114204227734210813864735528018748336989155793974740391211064475213401295724008036932312070385397966055543947399074144121937294944518748842337727344665465020518953537487908024006075518181611567401182765249583771064960824351290987697292174704499116007986031438375811075922388748405053023851514142304592627313798052889443398174645585622435660684260549450657954388972877051266070462316591598176937728102398378869361033016977026179191250045391221981037118574137955049653988578470647527391307901279023102064442693138137662170741923604339678739976717015647028637511454612024970153289271496829495576183876485418009489154427519651848315908592452718543598743541553039678459237436261683030780609780489905941995912016216071394013985882024586184120028119689526944168243295200531426072839605481222143503835648879819090522192059809502957969806300369718480389039199301679123910538570175009687312455425464636372939915121997513731927493527192295782902420432694014094906150497833835128631453749090492908436499786319079582676991969204109578144448156298154504880515272334526495477399934319916653504671731010121320736714650643599146447622872213467178060067594591245458382945009917796423243277814449232366451235918189661682865863357443533566840915373616828736402810746163810680975187747231965136982286511504819867225403962578759656308611833090044171645830596570505020091051798812041346783560295423531874660429201523265780641861168142498806729362985001455097465893310863454883745793436381230807720535715887181109126820507493677861382086983220617210688320972864668217105942280000029782936973678217940532360334667016636492663540466431526441839085414952985617841733024327429463159096643003687544476695670349243811017077306193974514350972924163987821637315070425658862595816790246311257066494313296318902978114161104526491039329722486253582022188076052419647259344088461675883557181865491129446981609292308101921441108846149418450705606824045038859518250247621701185819464557436656682714847624577464420719766516126218057041184182743071826348675087804554661832817857930884244769236800901475822610164139130842308717965599761278049456724989478233871859653369740864325661071928115712082138806057787281504665504159673920867337111550288217453954809831506838490636404741047723376027977161474991985527211514604776869996370314222483335988678243607257166652990481537139834324940530819676684952086425410367912593850770817275103881411926389945451626080023528687470285144474150988874462922157613837948071051717772271430726323450995488358002914996737672264696411428050199273945541083264917250522854175866512811567328379955757752618521593504944663476646474889373091347040750610641965384237026417813960023262983587909611759790359614083357041345403325346302524014022088203062859331659475167022452231250948421045589193677392748267924124959066823298720210182032376678529318886054371863848928035189643325104324009961299902023352156022214188840648042876231126788542025358105917020409203273715467059846346729423839002692737396630342870991783508161199299340041668585173428686387360517218053667946171631602775652191021832823318188812783799252251556565853931441375441023581071675491757755189023756088826889527329369859443608812389366166219009290759935853357451945045016343354859918880435979050275091599630488315611064685425504236989598673732053248163871299081553789102488112156196320402084949892247112167905390578296012283970359706728301359031209054008407054351238281206186437670441496123346836831763533551979295392321318045954314980999246046949421310863705905815832105183105850907903792577833011446627929944421708542709360759430987892810960356228750637277428113035441986720898182601437996432342488440641258175176459219612702103339543566472289319222005004888946867096747122162900654590039123620379355551524128757612369516515492703594897016555412792095755977018562122552347738472711033147761216667184703633555877858376910401475416476245394375284377793137806861579902952108015510155207085735222436485947874818047072367169167885528670195954595475165138076163882956512432327811940114397047319105100372791482903607913856585103723038925659037145547818278584093790928084421820463616005991282668053733620319549441288998316920590774460425677932285538668073073582323744155603921442513231081836857748154353926209920180409635524006771920152110638727219906012698239357205448679613268868709471218817593416658375102580408109966508192479893960595537622945740268001682775096714756685189115977497224201124136937850609404853577733204881972460392628937876858687291745905898883673123605632038645719780956479630504560475771513901154772186397835559970552810979700441649450705869241684511725535755497626729607263331611463498905117897768076563859620469716726050089312375860661406146144302344096717729912781877901090657005706134421488360634832045087283426774060386103176905728318790546792498669412816856525749853548188376561055075638614410186409431876605666232166497550061003530854667494060878187008341151166873413912428539580956686436028156585726157735936667433760508305539204751796655750498410686446294690610339282728875663371881043791562890689982906958914042970096754562918932907954292973174329481218564366058972589229166136637595118005512674964062980458747762475970094261146505104844678979928008576705714007539782471117042877826383944085659098627783525515970289463979320350996200082014911531957471225601905971849332060822661860417157906070831948661467939756943678602478365102883678248709035856593309180248870264155646193285394506670052807451480243831904957357294531053750831019848840722618530858214080958656272629535189634579893777640160627183221896996378667770215253017019237788111200816020305844960093704162880744394672324631604975701174652948713277799984169497087921041425476818226677066169261590485098285020794285733933714469240402558158194965872526984178855959992563772053086179963367053512785807231491071290158114691872490389639692303200163713316004334755220550381276587464083067046367685445580787348397176907255874986769307872494996017451989029173482823488617665753627573036056097485482350239481623591455525270130442741602968943617953472156182871465628864333551047549189587535082857844920926752175443452634539430606903175850113003777562619818500778668549911799158049349952749553022425234481746708694408165205398956970851293489227402740154270041560740367758707245110162423718835735424290004604909355663839717851207160984368961766048699757050601227692661084973223676441414191655556297643580930985200935388789886436100453965685907785362767141430931945757610870457399747055229336096068214236777951178602601359029179377961426449250693412899601676846155896135188274780378080452298507151832257898158507388406442204477469496322640927990042809093436156038648411050953645170020104031269789640706716957689998241202180038364323341822026175564755579575546294317253129269632995179395172882622131731164391878892014138185904281260432121348179932843040135571826476705946908140849752881990108272803285487586402797862430907589806996374694419980226508114117347116155562895208958114601694382822035649520863053415580279008882865191955864164707055264538750640578135380828123550486699176453895735520243527627780809543628307808761468946750168426512758728511058790889062741220121955166516260421898598498923737090215512183019925225813141129665455893038708135570114482266660656898022848525540275627632507161326664870824064870222063117003088355904783867260260527785964278203710975649891780189909261490614005403305253524969924594051807327535875317554910489152056590419711738112298886625401699953019491149583171316659768753104277348976872438385094584387751804189954681602540179511797017722973573310418659393305107942389891607319426561895025409996837033088730173079222116628796806404870085606950380302962979079985138956712224538166071984716708992475251276581111173803123099857169300749327651248624792104022514802847138855338553540199450985503016760740285657019664556171292431008774996006403228024201180833841207658738255660313666789027739505829275193932960514353929292067697391891639278139769903307949056722007857661888805258728130416214629909597450731484407891766129917115753614444953880867216507494909245635545741876582585271799540175848299250929764364851225807990708311825662710986910796455559356048360080977657065765001478510093612811539343051007798924363453783461134939158708254448984929254630133923641119432411148183182711874141569359893171585152980520553737226951234763220800354365175608464191968620891141276500180896904912983147408409810141885819550114304613898131374193936526142709510313134073208596055696866149850732263612533472212906990874038148775649949589811724919491162827134338208572250821145493772948199996695467968377047463170052776348621519508526536884935886956816550007737459169356361744216370705208970831442807322451905129879913022547402604536272468636896833553667669785633606021748230453027439388362911094389481281827372085121746180252297378406771678322283077164752492909498904616822604475064939857194343937230683521643871631661685272287030025953054345133787273880737164211645993324742617973028444154140709076630150384637960472259029224260465886141188634331999484592465660293266080089250797778228542059582963682455699624037618645877529257941287865610876212606906904521767202397951857050690426503140295091908805251821923113362282237399120281054720284517954523976369083776130621588877732319760567598259627233953591815356578995362748649017621789754266526716637234990477061255015207360953241437515069165680873487507989250054967680562350062381279638685262267471178605662981975805136571339707824792033243955405676325779037429368438233705031809285127373134453361766056692025768633619787928405706904579310658065820355422459106846993164006864047731535208085050043668163536957270645655663301868914072005085281783880350668782065409360522971076981953020994226585403128640851874995427834546489959672800158909943726443414948282622352228200632415707913813815228904393244851675476322537981617721898580688784723264351475925718552688071457597175256430450159081277343885865237232656242521182245709902783818951256187650586244310647278296629385838585189328166886911669686668098936800717879736795887676461469457310057082998555191659464342304168859742471961725994775886029048555291104078950413348322403786002725486972932157058399432698375213215420359124646138479303432998097666688779721398537648421522248336342520846994393402840055252478602108111804771981705456375097316392941431730774529619769629852120690501153548840587211295235257307246548388896950075548996326206740033769161934764020911217256248535981557336053641395570284433231242239128327320412878212481187009356301347563758137726260239181025937231847109612104477938231238772933607640877964930655555443702485308709408526447542600311256614669138469413352783012530427470368141606247636818976106538215758656480723749003653749720913804743871463082785408242563790916534529258683910386597572819010321406466988947300014633822474568659550884265950638184328463493213092062341054355188612337230972040292759176640004539753907895049242670343997154512671733133085096931770186616959719400762376403498672815141892057087622943598033024029157786921544916335968274393632327093068392546211403247092214447607558522531659097837394211043659323559794421807867250763485480291624443381760405727224609467574425456904202777580030299260471728529543372200197427115016428828736987410281582596283342098142078876668274374761558124793112579817673299430991670316976506792271528914397128744409773829782808461610209669518383685327984533861166806732875833470114812930431837120369811959301711759565856384749602453157343597999027734179768007054429004997890172202833894647736369549491141160524984714882205610958201194524229915255809460610531389138226613987151982714980795126281953066708702040295827024226476589887910903036277190932310656029308392344795649192806478348128436950856496337321944431039955774843907144539463938697137253088583370648953223562881081908097058610794422942688769688760835684119574909599255640096006698402459163943016404620755250493395225418445841151015051774316872484747377886522817626566386453991656003254209466683505004969208577468111985786320948111209592535381534751423395235258425096309415096639793877805343448042358397367206563649011291872909175724586224099374179072929259603084410829638926527384795758472490895659845425982705572064165912909623187655277941551215704513335272886649472318674134130707602696324341265485096066841659531929554605078607917442715841044129741038843462132546668515107546551698167419070219075923892912229705143061813994054754813330820617109485568553085264483066452518546015747410705108948852068775507519651794907042875400822951755467113708177397235830416944587410178396945671768736836603600541853639677600684416944638245582614495902440068599075575389116702574704689991132110742767918247065466256422510988759982392056634147446861246448908016964904249644814323929447341070779963962104771873130259844944912679365669458269382434637691742320845448394557143801301389677783222508779515222345809170897210815934740434613862436064724708405178254657784813819150325301416836070615477187839053133597577969035349457208316316812812770557580675053642405057024935222248236386257835621531338995127519281941148269764402278655162999060068317026263965506915338280115016361932044798961784827657815937800147531765594552574345325472935972843006737419867617379789256887383746494125483407195662862439411962166746877092679427794097475689298276364209212900946179384160168887195710080030816175793690596949764505781883748399686295581282284766958026416981114095866507300540518172759995201534384566513042891929034116409534291323967643120350343920894679848191130485975628435731249105471020186289841189496678698142308541788818618834460999120745503776347196582232448432268666423677567497819408971388635633713133122412676532087704636471787865320475324207547604749427022344769027302596472470897004190719623949883354827450243721209945655408444746424296430878400545508459133711385514311750739590097022039016966625768885333802101363399906768877723176030766400865701825888568615346756503636327503901181220887567983698264078113337658654549455120055892212150465264328046698785570995915065243454504775508671719143273915738434701996021946966929788618699883173467289296251644093743822286936540456268309376348420529893014634441255599013906005633455928804412941407419461575401519939199678295073558639179337009536923140876736071653898543432242681166993599157127296341639702316795415923212221447011067040728012068112326516204450681428407395790512860959176839969385035874116681691146303530439081834352000290425879312766723399120506546121405099296466913684195741834898139988724767969106043932001299331499672380472738480728091824628585771514602219339438911105373866325875183027788581742020435347838101583575895066761372829915448706853749132838252062515527018902014646706011519238990250195591444210254528716790250796104862555318841627678482360973120277343392973815566445217202551105481788659964268480107204422677716318894082971445966739744174238959330992462612982055985412932172362217314380488707299220734904602448458165079212104136084926733901079334974797860356589065833109136432014608980471367058596771561677890696696665895816475798125516904551918088508392681441032121620467547630178028714936219274485153997356684906151187554346562511615430360645084625270119002499151037776010750076517214901639869866602842445228232854198449737002545106170267300952792778446457205413571214386689250362253238201784006403468428902098417130323039410234915247134411120993323440793175901351144979074699574158910705831044388614052106815636011874720997675428142166810748478466223109147490354932061659029190946805096122682411533150653942371304898179409626106744063507973835603260739347093542943600547491204016233840902652963599604033161570570816944563706421423512452472021107224405554387784555686789144113230615641281432337711599473819897475620625775849889749027160592142651188994012741058478614490546174477838791128509685283350462020699374333133245584659001429825644667756718263111903911445716640048998358421609363652523362923263976319074557336693129817830475692684547264492142413594766039359642017913895222296278246008812046498739245759237208993748484350960475801264524862384335462744789348765189145016429525036392111373725351683059526254705239288950836866474248171375038894135155364536390248191765819321182342127031226822555144360701840666453759373914925747265559940587793653133556290188605686697367521540977764815463520414888939817855804432892337030648734248303705655074292706519039418913546888679198696110442126897349036977018118523309605987844633264598748477298661773664098670617165272645300333230503266531851598428820039594555733677783325771822226084722948487435564563750894621802894911783886611216896381881416424785006984878607592096755006937771095530286286047700194319779889395004266383098262059026060824576323958497047523426986924130374305920671445636697570823252366873569025082299525381560682125631326335089090780790779260028067542696697611404311513136777788644504610031740127484292478280586728742313878809149265491555623046076452509586118418894482150525353572370255541934352825197138851880064819056922336018743875561127657637333690958665696124999130635366713059418816866964503609188618975859425154422882048073936594378410153720172994009751484430340560258421973057440205591760237566043460901917439232845237652906268349797222224974536996532643458241832927308907240570404331349339544195872977482838701103015308852340677088574287155942429413714993319582581144497142495142000767070027812033716821436249127482972754312205883814709844654703713108000170836553340886585998018054883500414321248385221774024471023887635464727136687391293532757341031476832511868813735529440180351626527040697702310608865816472851088355938422064835773572643310389385234676055233255629998333888215149546418527749295061107939309090324205602941474411440369782550968523830092087542870717535223285236254456124582630455825751047288485382205106584482325409537636133619183311320874383773952722101908413982590603604743865644786415352421070318249274307962157183144028382108669077747871043515590335215256134074033590000169707025480022228938651909171359957940381637130420429966927929630320602112636575745794318360348468082798129064773335238121801649879092103602250742777121224004620472809845274597986537684151239459812857729862968704519585921025028910285171862536000009951402228182752734436115339408593472002118589509299830914363175979828464673004461089421524218710283821981493308275723763855849452053948890032098840854371886096987013477678209325567646338141187517844012807061939579533527073710779065691088905880718880108140620779612864288014794627742773101892631090635450867011770710875242782355847237991545184274601355627515704557239835820417473059803551736135457038170536829604847929181494612662411348308183714758110969496122382894923215468413376334036942589356929389368229259128541096129562656468979323566476674806586114896939098203017151117645730475599678763900385107365188044875002121236202432143890530235578758028892446712103815312855834178474840141323265163161872246265009512871161781179463901543819069752613444953329785262202271472694898598231889292749077152305484522831547286695412684936258449782042532212864447135240448775496778922130558346812893915743155669382751382570523914968391564327062717952618451782132526126640230399055217434414064666027849147186665638614160753248206725351976539772475438075303483898158339790472214826932754519362141846279660722163563082372789976193237539601834785352712726892926110718669749718554937021221358615262129992236963484269253828396718397953641742174031452145432652994261130965885438921777705674810787050210351705268230472360292213210549372764876276701249719839880513962502295153191434793341347523894019957679645314764944145895145411842515761824174680703276228211688641959036619998020956488292541191634351342008853527617292909677048381663890756990393591458639866710450005373333844488853306646751882252850670951574587719311555162405520582662753310090165904610457082714692263724251940463147010735105798041956173310415713925605181319492186456439403175115447623786536812884459241636438694008087683824488136004983481119446654806678709356489160562585793299144871617319846785384759236940225234897753390894518930753237239306290453115407688360508479127144933963521221941778021751264006499985030046557270381953212123834374228182456231610317626001763004558108146023329137868198520623434959732686712659054349518818676146044997368801122585282875239445825359768697030799001567329109470276577708946698294574398174316279089031795532506837846052907886982013718012837871755534017523764387540212677654350104395961938155712967562930749394418019080335034057796355597956799142845061052496912282190214599587750634607079229542905291904978948711825980671501272753416994531987390832412197609342004649322710100172789006018603025243931630980394026060480120129586309642713917993413797896688386600935988326962884139983094487830567711765853002521086897002358834458477596486318371841549896604891096547914656850671187879682748250006007166123007309058094674038793980692356156595747999732432644570768181164763968168154715823580824546789015054391794539920468381367847688514913582938708936880441794892987717494797483200770680753319908366716392868114793340780743676766571736774695905612556937178889830239971365855506258300554944131325396055797309608425404336347930512306320321010566553600239469434545948204548076867011137337244931168584655584776075390743787489354499840856983270862902038017134576061655693758415207464429026545550381950142796447337130688497801364423870077389803371632160124878971129297436867701361500227098685274603287683013828760960222710299676028591810922144261358456634182799365204601087264597277153865353237323766386631912289312569130212412396321263214911774501266138610487282857626944228367971748659555298798379395796679235576586823457324734863093370530215874586441657797670457850383920289992381100636305336329915721106485686296928738029036105391080427400640473890644883135877434656601452167677100769740072791131329519504927953107874656876737876398416384141802968671058781227827019773438056864057368317449706612235502033906635568106388433222826906296981402562576748961657303415659870303453247656825379269839829437287786391359028008347335478408529923863496161218592914677245157917639613012236557426050551980276289282501339613240051998971166560621917547518193160652146817034883382990004051989470853935263422253910814109322832069648979576243652151576959940459499217333545301339331956273156503354170708794465186747592848816465907067679837637511613848421285649317067369730109334339034930825812528336105865918014438843012484690428345915849744066069580865660550558012671769050292580757663861232799826988940686987344785245263317794641930416811016237308747945052552456335827850021647873042568012190807497788692976647494278423686547661984686648657845153500559970887208667127551904796512041177499902068435284193350967784227774496400526263131672337444764151630455391859067479867643910297843578297722289336946931398254710374451580985084745926959390386596878916592014147687547416621037045575804091178550855239758731626567493694071295075063687860703031394210546730017750236253581364548687140580142354147638175954021527536264512876796633875564059370769293451279354408025438726705007447606401349260746434922507781357559582469599792345627605774680564479300687535182022777465067192516892379281722814172458766185829555315569596395999217533681669255651032081593693344294640701690121257298577581630575012164599853178103461540390886553955341633677898251741682104138723238170530804210514777526499500850918672874364537049304887073664141273216431759306649429417559345199542210592446508563087253474445538544149814739212860135948799139089544128109839435761811621041989616031443875297507125101393930126844633468498156686706205654431707360511668916977645707187927392963234258726795608893296814391948425396775784739326121088856866254275005083674145257917886955798633457354512273996263068555691212929856839328064451860788686172288772253579107948864441042940462949228448824806792440472652902272804923306725027876098526625769868158326348639940832988596726039205586542846328216827871444425228953256655990401905399140635442136733513913062403798310329070314972343895612675322209365731028111678128557652858714726227791577732082529629669032765608211489335135904618332768180060877403103157722029500657226991167819403634487564684958261506923016465823429207021829885364022863674131297176301567298129304038251048947448219246936864083039587966198172349191561096043894781639748514299544721968281490704422137320016569940791542763930777156197573137525576978760450801344783198575311297751283424390671323916207733609992331684223067115916977332226595910640699428069234134937976339575556260072471194207314642666561213926792684522926310206954415187723146602382753337175875721281521668693125176750050569085164205344443125137466853400343529433646976197461808739454886361754639822235120555193636848826606418347295873435821742473575508843054444852021944064744435753107529329639650244611626538402814662469052462404734795895328660888113336207146859916350441143996098403853798543532485050536543410479014710729571126597184427321112604351842424530503988282214105579902250648367736700620365967672967279798660566080827584740731714876825584745985777613777689913965784699112831980536239625018208448095244584253663310720276603578013501681668400104875795297796995933844975776902429827610631240861858167223973999045649314519810480492676224665647464896913587863338561570344775702702549600251621591609652724660756213977648815711643654047196630330774352149112565529328501685974701641026398764043899519229513469743862734268659808435815566869761573389492285969550297936038250478458925531943648458664741352755030800914076406731389240583647122818084928763927521929807945996614869473302039975015269906286690416413971264381751250745132860741825479297395701105798993111610559932279976903231210894243034990228161597847345234886953389120134978932990537083527097304911912130596119925449771854275502988870690325906427579653277303836944940151655373941336087488947412430260258740553421036447640759235691876757130062875292043726534664309777950909657397293682092191646156405323611206180006618116866283032966346303705983838124653625547127266908524247196863794259199833143861680255401978263929786204443630433197360168372442649441224056788564531281877474989520319282599790991024874589032075225789380863068371686448524313558087137469234419680316269479583674148555103181343320477287680377717583086021565751875986554816214063999317437344846315299395230866602370879497318318391637148478615672180550079729849952784002655992363009308572268794353071898269075463065838516309463155747632409489360932401224216581382075934816544537574264435544109685316319933216150259330809687185508948620053202098197238637139969423660890603893732239232887912388220258776379491224807890922775398002793916994678058493688272063375194519364926723637514018900121046561829189343981885944311209460573369723759446573709817513453951058320966736942017741660594328386726287056849519372540237307087868998938231456123112938689565680866197957859049260557948967263668100069837669181780135541735279774934516558377966373956342471135722748063386298996962969685477651859323710496049393927858802875861610955654331049582060370603962028256668227285317466463791948663805386768745023016365902555399420383030593132625705480503231170966512781500712494106787072793413889030150980326093869387874865746760489181065562806745583899042478843025728119420575813226240778901811955817379242320475491289998684358802536495195753792678320505929292594077262320006267882842895467601040187332278460005337813305014593117569268383196034313455326034641608498104729425866259880495701021294722253258187743589559026370186371381193065091126563708816937592401916102261278019200081577622711716797575610724651774542031629238217686721933462689669256793506235025000177441922739140911053661696099299193643111696614375964907817603580184977581091221856110491024543473946818906386004263402754571009555909349534834313027910060760456005704740421563526869241238661794971808846194989989302361233067295982836185149081742071832185992152908974806632027016220491027967531979628863961540758835081686427413387660382617538269295358490555339949981437035823033237576304400761392087875313950987017779478592562514624849483148794624463271953599084728816560239729760341039766187921542966205955757321178653308365644523674261306134969709475447748793750668966276913652161812969429264445950258347376862823298516092997383079139250877524503700389542071418442142411869303255539700310741331081584280302512849518905335715875871234485468570366327570443808429096067433063551623617315930709891727560478626523019273122125991247722987691271358344715475537452620828302860858057403031943881380088488240450124422595690446189118558823369789768464089561157543301408510285468487445773553708536598136834179132513743997919817223649096668152425205624256994680878310691098620870046080851314219588301866694137272338285414353782763060512579081306271274339089241486668771064934032135168946031086417712652447816994652142973298615587539342608645864355961800857336244631403109161977013312500316143569635180213820582441433733498619398273119026755845051233855624955516573474123733923308373629573433923133348416135005597422297720157515069131436522114106094279132815662277569188947139492050576279919747444841653063881220369545935537764805270411683336581986169917286539946317603450462719015515463064779482190317827804821886566822483793394959490465402979581743503388084491627038093837882635176704514282946561622692976599012446519932511212610615287482167217332876756188515707937661936126005913750613498660700607751349066587178297183030372411605209828290036594890127798537597611244998647756839047624304654720861532689806455105294616493954985894774302183482708551564433412913337700702791035017594630102070069849109477173879011982899975599145153716720628839033311382974969289808068065301338164202759410647375147972972332417373559183828096994981436719643653905173842052562603598631602353879590386837926498190087631342124879404201424431778556154833876741283281124993342704226441401177941082908766860714632940621039585280084024640390427584042928740577819573862492485198398172121468849063175764488478272186911799652467020362860682143681054589739598437784958983495562524877163537701804985251740717954905359726436296622479863378299080509613576647805978972799589468804062684500978261822144214762128472268811878885165086740384284890263644211855661692164150671684201590926149973940236533569601276578089067020091356498804645655008195451451626322474268200077606570669409175135643987729953460565178658933506372899333381986178294663386341639156272903094219829027385297194191760878007664844055665050308657689587737349345082858443757245088831225778041933182143533866234101075966141406251615717219180333663524512792189670105115393943241192147125292701843211561508564820854728924672580082832767280375131599397887286735236688962576972727189841458688360063731774455886739356078841278403587397190801643133980960961723037488108315768828226156443178659680861656208510384395534326718480250687240170332165497871362228193884753543594186883849150090535552315661070333985548399409045103919705020879159519911422898294445866068844971899342170074995302530391491621659537976252871706460209553103794025897040930087417198298345926633260261176505890652244075625022431629872828101771866380930825584003520319772926250091452339494814627195876034086433879421121853459342671324431838865785733150042348875497134222223887689040511691409033717855969453642631284399915740818401689482691816533423236332153324535168163959407623729733884950542136973037074063631411394401326121591692645528070917197424030273491677267756008907762471945810886917103113097090117200879438590779197370884020522634672071327015665774555545403028143235154942973611358462118797600909964807166503110313884607883994418925293555527698760717675908541877601867780855097181653149328022243950006905664511566341582408793301744766292552073783264619030369562581237774463464618954790642557620541918929036078403462354900314155961663076263207827451349292502585812124881760333960471137467495160459421418744764084914886365986777086958900808024514996814213577929395246285095719488729077398126593072766558678971335600118043220502717027911833585334737103998753047165906997945893524670269348920262459513974425446559664821665578327537616890723693642178535856519333720930456117044920240820657416610336375682470737206962843680639128819245324588280381791905295873031172475086739597820691781579214842917172888493749212783829867904712291932766538443590079222832425483177447675598084293282336035335731949189642912370798027940889597532444619618060004139558641110704747114517008122259452439196163501581741561074149749331458417540204910578479746201744438114536605588584298146101720885741223215356578256042622446774861435057629628508550722514747853084362719563467780487336557658803400345108118858626428191087029547823115191233656464741769264871875254543829209505096923899549232701760625893139696359375388483275061742392538144025081579605409033784105161524143125713400485073674540287172776586413570766205899388157517823039050398823564505401582343643356491303920227185345264601945247509884744482906899536380359679492963927550591075766919042548165686426782832576192227826070768059838523505466698952650774878692820612091809261736418731640639223408806491856320494820814350785123820827477799196666983351733267386463424800262378754103118245841857677394489441261105133516386853312399712752910359655830069390506959924940144819660216551172610910892460955339015336926861124186430177716576831907065050815785002342095845393099409921727466365618740314607780714583833592535245041588214398951020800383468845353544939359753674791142945394008046201523695946837387577059454769124468847892928373933447188045969667065128239311298547935040174153109627475855721772359773028844017770820422931116990444930370015633801133624986701133785720463553100931817913923651436454538012128565821323003154678807371873422050823267086102264636478579566052691426835475169766503834600323304951751423043592129113660986155375535371578436292512761407987631498089007699062849771398781101308236982301237154845542404058054024200176168357807828325915909239728271465745418670026496679663075450124792510526278295920451763700657194489329963295019156452011098585506056144461030349749618144533714866847303545962094918031745861970906669964696433543542031474334517504130520921533997160570881365398248036494019019475637633617832109157658717063634238429838751702529704378867417924586585771794927465852594209700320309783158801320410023126639392473752719916331751273622941868194553553055967442771672361259265854153901718381724241200729797450141194436647419200760914017812214273120528237707472013798081163773973784336057319561380710238185655760008168169515037312318259920249350196377090842233107121662779518867328543255425950580093756376609380825144745641201855208726826267696473961616531133225695628736563456460766857328105906909430894928355178769476264691345537079118467853330618808523776741255584371488579810143273027515024096440233715911321559915272051571733190423730620907554381847231213886734522833249941544313819856939355680998480232414071938370490431654247285991439816994939448207724582528059636199305988049018168500830340945908879409003703718830482399854387243270326336341865095964036056093963004319329413510021036111298814481969150515116770030275258177331658492587389095751127138260139322048631923244853595643312450274648911937026740902022691385063931751442361168832768909014525207836380260867694028306758766958369862030963570235543082682618890217821890276024900709759362381676958714613475059975026321619866994694757911657971760988426627083830800617742653499723979777558254189786265399813469966759551120550491780060027645234626263717211788787282512455038708339727863233323682612939323287441917742365599611690534492396778979091563919074047367325043497928159109206299476780989613380936331943111664760209964142589017678334249767257366353676275920499232824823452759301598568568295839569838065690970890357640865708343481416104675968884828668438245463734884665514520597318666092825050467759855309206346094615165865056584623730951436197157383822026048225541985664285344953183273657442039000637708189716694277436990593331190635827753237610235309728177482065179110940316917239474789619633438681970970538297409302427585586854154726416767831444895800123453713983158739182023173947208711514057066642654845817755771057422666673971871759161902207568346197425057466989176153923265419381631759389107125767909407381326689963341732109795904332855957602907967051075055316743738396828094002258441735441913686644838077054910901046609154291499358279283132537995284990702327089137800049960553984051242485415164155482183092344530426671925601987420533650616849823810098343166241922865544553895418863204029630639612840543371956198444167622612989577824570048566481832412212580452350608023728178891363096907483852620560568919942107675323685599152950521473091664194599327481232399674331678427783670568941901597007260000245545652782876152938190920436861353167056388929720542596297764752443746371569902104195554072785646502475002375237611265060752285337027273397438343417775291996589665033278694849354689236773082670441631727958661436449996597603819668965870499155146055108942237560501195671470875690738621314145198495568910918887210598089469280353417188920803622792369472395582209840186635541927618756272962500603984111598333652030935407746280261501573126007352222981563599349206831532448081589685136405610080734007887223415992513934271509212665202196409690480432845965041618029317538446023349765442399118281937466344101768637702903067199891714806626701828390175003610577089582480163386191613782034608255343422916078016090948334588514637988706287534571450774264193946753049406764619146634793602409550903014487095846813368177851779387409670284105969673869676190118077242044145714273734979700028434815792417162053977819925575738584916285155547965103549839176102812489219632931602663797027931179383998876904325572355114979158091394827455010575277987129230582932856769596560110951572034695903063147583666752385257576848680904470586310888631998649110174811385173645651777167492906146945806660515256104688841779968742692156395337971559301983976218945188827172536991303101009321965229633156165700580048002675006214251951244447305491872825653204278141553487610843410769454983500425462009707384142580131538284071223389711686941872451244700280337507412012208503504980786994604904750629420037026151911892507012629067749056705994876409961156225232154576554362413961726641674097902259487837331932083717670128935670683286023185601069943367077543708790410710487432617161011991585356261736366218001662207440447010042994292052216141323520200680543669256935275705477590327262505609092620047084780340710727905844846364680017128176790385262659589236920100929802840151484379698075320707514797582553903289157107717780949563956599787370857376056749625849492804772760850624648382339356039051668542572619054619646541765040205743055477807610121976414632274416303112435134506059570539615334707738813054854028419209213396266787031314786390439466430319440120668508514051284360177951306641797571347230297504825872575334570030925791648463816248891453120351725789548077109156467606035429027300477947893658959285643998056042042122897364678622010241232139926647518146939963350682533886904934244710820551569475554780744119919264715998903020323927553686077445160543978260156830013272469253364755977454308336348875472187183611764013445555485877404404478506590978687971256672559923554777207180691116405084839392285281078636453124366986683349997189988143260043053428575520794885634424651791195525895303961575877927444911166753642128951851527376124513729907548188936863819287563180686762338251851703076337400119199138161153564797481794500550596358241112633093935487625346495219900867449661732088790348746878657556440033471086010506197530240514862807869256880126024657152572721971153937282411972185369489049489935312427532973488612780924462248800607955856436656638642834911745670916064629039393349155664179585186426236028401835749117333024522123250135697720227528736584102304612702341224387741723057419403660104367492698718831908002172800417362281471084416451924754470757073423189103512524215658960214661267665150381950686902162683158694836900937465629636615588547992794979712761680974781124901036741491762995657655489195916741712275588927772265478451699141197965743783099781100745570232809471259091480356628837316082637936414894385428673408515337264587563089463448829613839140009975203500315850315927079023674762077728803588210741210435573956817137122091196632190264677908040244667094273481402334830844355543023617326750203786078413428256145933533014294550603011259022739536647019908092761476948168254133317911130948511658504861858180769388750780006372677858135885051244367257953449495740990092848869823611815523936461037565590557362130504067797881100578701393826040754566270821095400039995748758256655548418943186731406871298692863887087700373529468018522197210981043288032535133927093408087088943341289319656347926370614910080063021191578886473733065020828467420668991637655327964926441860383364518313760510296170851623937347949529032680492593346283857127294193611687392950389471355519455717536168973123122667005534959247652746110554176839498893610524400058417123420586473190812765408598816476744314905948159031429067901137303464758686757871100227327751575308679668572983825158203405727645043879571055019998835093636426524206560902853318817644438207204746775365377699325599658467900990027534941668836618133849748119059916851537740932092249023417689120882900114975450796228313971985023727723817866175738612418607410251370450383947163755059528481355407208340365715351527822804083965050654698471618099236125072122023500025073418547158222339338646334481702565827516340597748756765534028947777873854009709946677702055911598767721881693758380944222996781628141273049491409360625968395335618509384280758912405519509117940431369865090708727900093827535826576634357995644806270517875540614963381364890756883036898994505866684469376540050343601471461803101245848807954911613291467398242757461094573243092024542930277253370498344698603811796674497932772991005950219065126562725600179451004353230467962212254093986752770146592168623097935782141282840587116343590085837119443666347606965373574846929072496186478049145992391880536484901678544197447209817170275534441465002849910180986113348881625394955686157098574157436591933616982172984849730388153446238667406099439383941761340379266512465797211285324114665118405521939899672965931956552677670758860362895236739539771268109435687759128281071553079448854759181927658065775524338120666240985813775526669378046966189405587350087016359925429298021738909871196447715277482549109298259344254221533430250110455785277055844785485349781045445502505460351493067718581614208068327939519168116125295795265284684968999836697003631632812912877448870588271948900217749700350627162917630227067011272641035337312840978266746484016068944126151786481094390583240622800732130732588934873112485535744895308592442818122820575081795881399361240676766486788269046758289693675410268890108197373560137192284823812721870238581771995888720793307765138699997040423415575302636371638199216474742107265238958923637122301093445403757177152736499434937211995152887017000780807434750275663619333179347226458384766411524775004845959313539969049823391012043211250006073358412869310608038105462272195390116454324927345994556265833290647487446796131681123659748439689937250239493810573990844557112381247646493983994261510487263592168204694449640720349274285885534598254339191988690103508513170128704340208199334430286288008747388275154305947933209199476390127554519491186701326520828988890061241197743342422483483836784144504870680124362017786555773255409094719138230809567830188265184185016124216018561887585112090977594207496020744506586603430517050703770860738104651940992246077002375747249722791975160336905044703301678500190796741864901391416419293149821569111516548841609737141310415841873203605907891884773480353977801987851323091464256459392846330554947569610655159188250678451736676477200164336691277981306880600636912115826002569084056761680086525963288422946714386258161764968307746332685135233141014378792329192550785785367258449852053902957880890798664716563523775824017063583346505961154543797593134155013151093629063399263593509114763790987366019945412163921644391336494253430777879375526074260842578249700664083250458489749144020962419308845580865440212978116097872662654291496760687646027046179602475889810732483512975312594372612678211822201039467165528800159393451159029358343258682756166447873539203526519067680762259763452979810380550303938018626943418454482680341579881339531080674521833159920747871925232394651395794732208363008169168434136887540534666561073815075797665016457847580941525495908730570218804651367500557447958191004382205585760507206719125584855033393424101603830462221027221559788236288795360184695161073276026498241675465870123309510986318495063902200894758340842596378098137639008523231948669373033377646048575774733744247252459499638367080200239847154418910939174268120328441776187999594452016356213709872413524668273461835047030564844946698623879167017246180429672476547174418687782952895538617339157905937310297041513773788048439180975131969784278362652278206800239818076157708717143756456418132887237304132583674628880165761695245230715762128194667281658387536052183895373746657432140433424186205952359912236246206892952350687581882532263112820956863633883361406620255981898203328468134756105261642286521478453548547008464950803012342333755528400056196173988006808433683597693844596586372549980562935830432147519206729048194474195199978182783833940657107759469740920831339423063566526440068644952217882300179355851397964248322846710134189081890922427545434468173922135526532854195679161297451210053716252003446228238746299302358503656692517285312091164209124443411983185786121626180930889654818871823086193473693318695831965535335814184063915592597403940790467374522974374018244156820731025068408304659843560801457689091930977537026482700982237867351197917412354553267586465701123649095576435331103391339124336858934814251014762871910268147379080443787856336465864341979027330126507127782517790629040289789039348869362830812596978154323636247967549932781182805218222287704442220487832453734342521558517226492832715799966838394396498800530331525244324397490816623081793692092398654919357891985466528866001002731166003232980589548512064742959457953805323939970107059910886285432025115883616555437338817510051721050679698395243885458795626681364898629569678197857072216945833535536526730065792903264884043502593636259201835640304356791404297126399802702964262718452290663771901865951962532115614985929857204840680480646497472353365132191477497692178809124426052313161766455124477365251608290945943304856199024806763276322745522800414754828108729261924081131835076713003950824300606097875715582550602059873205870339283060457825337626997250879112048531843430863940267465250432678997901578500127626162687515149670605641802467477937598710697601394397993207824007169743565743493009093619331977532898611000014670160289133772539240725208088842946744212815211580789400000515312151692347979008615180904751482857504641057753787576005814336492781585944540712470425648337392896401017462323395085089314314018552663507544919148519677997253388575228894182153064473256173096362865240528575078712279411697770925249024712400897803898286909064979813705580197482903535174357249285476647268563462756024126793396582425388887695698445128595394196610019532547218075157498221768577476051305953519784376425028969694740414651221089013215272594092039317416032321802961117554335707154083142138087808101234543327131456810632458715935021497523322065501550018256653754710297414037982111257908230288567453928997168902983443501804981047296624204457188823199014700387927472218403472860797427641791461942526519035391528289293363949808890710424214880688384548401287737213105622458082487209159668981585987000778202885556796838761067826620755734113986886889298919358394023216346911121686392893627681642384984209006421743506350092328554651075245699272035718715209249300726869370880293522931696132931679438329625273632331716779986704632751354724730395759599231757705081236720153696482786898227630914623510981976864402951601032837930191226822222654018485536216506455519769750106670535563487154983382022898547996400680437502130399382121057784305214979655823297148559838135046239695535137444214599132191596976831719863733356853368633901920144714810704387886294509511755733893247129519202947243156229083657678578592331706112596288837693656507794928079824326024580621480218432225363193272259286705371412496099211869957570276803074669723086428854431448327502653697321802132690945763123848461370776497612940547254667154974588389042488281870482081153638069889888611884566473194010557759619948196462416834783242724691874928483533833326748010884720772086486666746293849927924457372888180243411749062142714564454295964998861124459113998769656831125563427043597037283214964942423291597747345241169158689590040507055367694669144637246343755358697110051628969730357145459706977509827490458742820599353094563955888617821072067366713219159020322663422808270078649061258205328398478270822817925668248623613153788232791970459428018786687024142398747028575425476583530986512981423527021588327600512476526594190479570871160574552086981304167363221296030693426824091424463922402980562725091598409298415647806671836042809833402171893269585164410957557831808811987222566986667081368954535807774229444696335540771499607089736267046170763521597593145999814324691416329479127516624771242672676310473547761091029391058626970950643128087987531043331421604706537592856457118046569000958565443822645546935051551085916767306930422497624401076439471603500779285677093203024525029093634950528112916786035588279401480821525636398616146282713640740125480924593017119131116053173399530854089728294246796310988977282745543770722609692608174216977702120046419350207117595260468375944431452609633677085754786859192711023543254811170417758819011847265151859924227924206666647018896116024913045969817388755472801334291671097205693197774517264133999474873006746565441592281153722525850941887186429070102682676850288939902689619751002748270137146179626871282267959116960046292557290317235373388866379999293710831021566348308945193699514198969521380001788113533588879441110834570044184775968775463245432633131980535211119302707115856890012347653429618917901010158038872190286251304800795342012202827830181381513278005846241201806344111299821520966695672585669665361204914191223862584709251970747748395507668191695556007401111894598762452951302489752310870480326439439564013419801659806604462984889094958458803523523951573958990983293200429475836783445786604303748481196840547356852164189687064602467410704111408537079124291123254729805413975617499577323019279909284359258213670822504522641580452338009084139845398370830832747411312054806522834676968889829924258597492862016089421774042957441221350486253355078205201428949869259697642199765504665079531036163102433946109181892483137719858648731584114973745327910315145710541334742727379610321376938664354912839739963318239705032667236116373982093438536672261215003316912630962310871879357240531709623834878124935477550388988948121599373991175831137826388626723877787562111428819805389277651508829746295901162154326640822694773150750795285734231100890216524577965865337510411010403402224936146718622734209429218354745542422024116802352245693230343596364354901823672204292668958749047713907854790488944084176989244509245791230081015564319924273040695481658174965936042633326947092471510690904314663722352118963128559304902383881941119250595310551151192922213011642427643965720568012818279263174654229147446862713812999643364446742492493457071559179596229892086359230062986422820325885919868188547067317694505779744547187675778751493113453779401986079085724420398132828975118822241737806250788762987653568931528911365885348877006849731888105497005329941993945211015234306610589814607468546844828614698521897060448057312106947722330318538724982226860289292322693523380800234935321468297180835491797785780156947423860184227098955738555450010307868011986724696699084874895876020920329593659800681094659478002959568685108557716340442604701469274264033585406787897296193742557608134564023982972346068597773830403588739125486570006097359871248678485635451253324003836685998520792858930229196248459741471331517045642115851237697803988655318530627131408296709687037372960225067605799711798682915048313960301554064560458906815985790566462680333737925509676739856846440920370092750765896576931030932569927973125913151449182442085774839445308092745681326016547024660655789196171953509438600441783051015515591057395948263638302143363037560329714775392327785006150358943703072995728983451002274072928041902183125599315560563383101419895883175449412136098416777664049471892394415473558128269170587917090423926953972791597523434817159355139942479513723546761696241439806433720544923424247983710874851831761552468262863857705445395016754776466761769967128197925031986721942837358680552923520373084637654825415485550892926184605112653512741764296571738876857214572304967347206243379713468700796263530596716102011753162559000683703241098501650922201342360708564623398497248849788261286316842844656059559069170735554540322423544445878608078805628961262860962575037903800635175870547795599351658989619200098595245178864980788189243483187745963480381083796572793090764479688714219592950649897349757591491552341485082524032700558363414914419293223565328661488119518976015392260594200564695687218601305658139527710439487190805651218546746292821684136883702459758495017985994699933656527648080569977618851910484901910579164042217505207023582711440028657467409353106739314299176487706068819964367117944811709687286952150579287944792709531628352665697090604553034276863371522098044931246892895427791427753758867663569952568567907202509798002286366187863797243627858527329543424543596934554233845588167886676128068147636939663019734789589452227219898246040935071565240350264957858943006662924890206746882556247567497849390342666560799327607305433960544172859997607603979195002262097338559620118031084636001330871901911229641894507819756431603834954259463045763412715257520329876824111255591937048244714320036200753288087646202477131515067098803886728499820647157797190189629192090879631297510285885437405282024595179124031396026102002621726034518767386976988052560034797244072831495815966472147889032842595962773597947997531045459612310462149554394036168353122628938437748609319379731765474062447057115594453747511903804258900731402065573140959094767421496422424099891054920927970867783064950062495256894568396171008137944976087733041641557941843583412423474386810652300718313685825431276303704298143648057558230267928483231993514628876703647362872567816022383801390187718983294996616787343556423594912002422778582953370672372555290308806562752309285273623259099455397464567100869120302491202204402472982721417454816010961271453986810882532310429239694701434624634010961460899356466437910155426295370862419637372693621909081180205962288488415096700701369113202495356754445723509993209307169602674768422611177510969694767037533960566871273081409908674422925073130871973995247189510659944615220934699031383630205368851960329429913966118976514770815896000561126445085918398522805208782660317444846289899745683758580685320315113382883686411069724788202766625828902536072276934555462885009686286272806347571798786822969013127686474529962973050362978380344411603724013191278962393372344871370131880570188086616733179297583194304507846584269736303637951102627164197485974304138585196559252407257696897707716661141812602764021947171979090049488865042620903204360804051693398376148943281225355493407039031335378729265161656466583820777037855536322706147974497948275019835889873883644909898633984483440015137687645691956432848188426438172922014491359207919557916947710368689957445844131056476524679920018571239926906847266757063676942872105931670620800639692753472693955769126386922355396478434703655655702131477785099222824065303189836286906866550026520781822927596486748142708550789197871111076964273746354734647146469035345015468577621969676551603548508711728119186695699101925684425390586611487381243676658742729227263718479928118927646563684356832840807435692607164162120973359056773986727074534922593000383446467499956394176726294903115462041298439609492607891099726609545062521505331216699798964038266042244035669333158173393472954917411075829134246204187050093933306157053438980726898138704780365232181014905953641222010129080007509001129801733674030704748637518364389174008363807322083860232141523334118693935166366868398256994931490812355780156972265245433936056833644299185518349952732227244558823843983707597945203230175959583610496096997859039441464472180376692067431513888129344527468754582839575422364213084822596277650919110926752546549664875018724369118813863785031375729695486863309921480272194047150298771426956945068044739099237884117511935864875188343117999790775533763569423948720855384826599351230462722695867003748504390295337421711506399164026257681501760885393526986388168702724723212723771948618437373423190125837770487028140796758030521887406469470685309839651188344878030979603619096279059252402322659074075722880574527462002110424563332895060447504725784986446437889738930205967253719625350460674151868296856079742664330068151233782028683184856965609381688081423407897192959289840933851138750136074462032198244567337287275941370014899185247779160015461050804345430293238857916707709510233116205776959744595217660425475431496597354272582282933380218146074085416319700159327947679422782716583666613130668593042546151190331952663089742770855685766508704876480391600017553211028070128583035534417692065190296355749035542599733861496861920148387413756071233124370979010632901168544120072269121112662418805869755888312669385425819956397929641127056854333781225361697845118636572059671100941069150424332192303583338382411290889705857833158307515410992627343986020841316313516671404528602710107301386613076183285897621771289099470345715545355209566508654396011500645069303025097420429926985789923234109015360127980712220988208752986758055564022399745245550375211606451493154742868603982020457904692548706026874660406795763046497297617916016176028417530597259542444668870138734404742331684760555766147251221953563529793140555303321407509813475495837107782249208009031468304144766025228072323654252378376612954740648409344233875538879815956013917027519338303225367728787880031522979582614159842554185975087218942020605976239950068335138798542146806966751428618301064374668061576741070697400222172271698294282309408082457516595115441022108975859807396066051200772170011945513837941318296673635093013090540913004063752459469390649498669151915561735922978049201898177696357944991645145949169837182116036623026986395685808842300435598438305035729015754295812306352780417989145112795748040392467347628862550947980151369000844400766529190140706431493313356723867021830993678183879674709246325729159847236460335753851182966825461608854415722377375169781111012804232187386662854489114994741252119868528167189653199674361102796743959131252802266901254917985659747644937503734922755702269084853390697463120511978149412674832614125377937280087243301179953125983601168034428463293013265965291569800410146950591947152154468930571222870256486105823364123688337147117035316372328563455369966224211726899220366215322829639617703090500087597503556399471633064741381226521020085233120166066935352492860590933256305881397417668019096664875985146958511112470211670826757928460574900355172138415532319557407503635526126754567948813800936912919644977179861320312956381189516875166006492388402955909354889636885271136739433887171631251465383364960161762158810715434155224513936412821386261665926889838419605675757939432994138679891685805859330856770597532141000756041779057917132479704080470481996697233473019877545276280777339372509677456378276724036380838207338969828201668367524216474015655620384071152879172646113809811161219880709377588655121275261681470426615455177344991889202655549288794575706874575652919563334343416014194627860008741042429512076995557973598360813336579330868453010788245885586768845902351786174515355416454792320554870560334644930974695560586797083538926260267844351692372226662411610413604806517308489731975989534762237732646201687218231297390095681305296314879999647668687556522051905903291712212779969305675062601185664326045222792763894647738929321570177292851985974686457000301880187972606508145162660406231528633755197195427782807075367992374046559880154429649467310374906496019011924024728560193716921056742158414870764982185715891105058622972733615644282913331469050102598326490909316284129940145635029906702609489714323798331647177939595438699678193445693959626915347569112636071746372016075501720437421770132250722141365416054370697875252183576833603685190386638986547488623143023153323836857591270909927036408161383914003349946419084437624315617698308329501928386184078629523660006478363581374132763660412474414383635664645568738981078188141279807535031010806175870228326073795918434153556567338502118792831995591756263146264825342140764940222844550153633392047375981079246672440819500349982138539454207907898659408330845249524799999549529624103081107622046422629859688340374838270496814615220551844683847543583327201756487724564751882735847182009748980132500084477907979688666564443702611129035632111371217839597898128207272828313298467891633918805447419493978793392361696654951805963150823993138760780584224973653308649541526049170971773782722592537827998617488677756670857926061810183641360116846981121524690504059888434172109661974485709077765615030716684389116299111792395276166479054574137251499940592175211677978953806351563421783295999718340745763906587559452970623603605713854908592200712673386679783415308007590610294154004726771747824406057603612181693783732708961036079979158433506909544929271554247031949184089550061074778810159089989411641336487887629970113258230922227297164099177539770906280706820827840661539986811187328450118744825874282411463559568973142743796246186875198859337081767965877453925130941190343760242860689514884194583115201115761875946527251990813322521385872573187105708138077022829642746329228130144692152705351708551971052079845982405481473704293880004035041288487229658202709302616016462022644612631890707065007856617773749301702076793695689880192314901328575549589102164820821124669553494977119695570398773991860083408291573674957021743553682954927575426269113240606189849448499655496759721683894696357856813408019425181781135775278847523683648736376963771245581127756475668274177666746853285454027198913617155675279486369473870152537370714307855478561759364026186848330982084709464906576570086581222148092293573262462789626998652868084912550234407559228975898620829000084203977245757433446513089416675997970527032043260723670603109093004337270744542880863020344191111778627012616348193585117479168290994128839433230034452218225655172202454474513800934023854113866399533993819395463677053982179694983882351707988495973841268127203987965219120542127373939359327233612448764151667806730764067796591521871390185629154408891347758308710506181129004724130222405692126000887587383904352109475597602320914287077723880155614744656291102859589153965757374259004340754498276823857769950661725030922692151058024364840910697601085685782199593088231192717924665493156371057475105832089658125121349559445654545821857664938242374134864516595072799869973560603870321383452900133065379397218111331556308874000529895867386223445363089310615494673769959377155738200153865010572410359582255428309434805907696828014033327983183209391113730050497123994831864424588768514840631580258457047121326229794502098095336024289671665971068662338201321967467369267218422016511060365170802402208397837119296383982767675521319985704829128485420614998045182198003938217196411455473989507841901520268298607554457025576594711858584677270149653446911664309098377708917039762368168974270914630513738516175405801200384575084236578066907165092057099850747006192183777977832172161578239990552245129083801165197529916884393363646431927648732284225998835286210722686878842213923655831307280472996930604480208538902877373804023799772762181498393430229174483666653704193508453023100734086288413079264492687730196002946264679449951959690667552583062663251218783365992528909672805046408269869768507125327701532725165228652688672661364388280664487599414855168855844992340439975198648873398098948209147967808034682313067596916058645907819467369144229560068802721755382141356987669633991391422889672380123249684861219325435633716028529753899463389227648759888969349420494742652117196607688638024809788318348614474741339938348532348752488315910226389010626050818271460682003260644099648141110085855979944847246100270784589936800349448116261030191269117017192949959550736729747599687928326438067077127282121622101247324751485723605698956886192989204754881200109655957068714268153456468356718921314713884837977773258870182343182478449248743110922882388730225474656086314441220890684048467894259710886733147202616052555770223342724269344543623249493452778444928648954788978829399203383106575000525066723650509607960963367710064949097378513540997457138535379184413147525374080522250911806912843141245850948308351457525248385704822315309285832644655893570479146393643731952278704581975176552247420465605821896784661027829829536285181738503890607968532055105754258088852614172998014583517835351716508850887004670686409137922102213416561563764678111801998718726826004794367122639883047283270554080430052179685182014116057133130779375260435545212850361168948499577565261974391793019785280987018090501915871056436166455739217255355230695761833263187476651983213052907292492019452077179992561368244777535823098405909798820503635804372992586969269613504672683810899981433859506787597068696127651129497271173702079608419000283735742095970222597171938534381860499980748875849631664703730449009727822086825448353880399933184901044914147861324678755713715584296595860150040340472102612737140163034757950757637783100607208222213105663742363661178472355617557462398283927426540989009081837285592626744328480822080978026910475216136536362214125067965529833035337286050479729662545047164657699726196480821281088565702842109765263639574650028342126240958783319174097864471699206371063070847552962610814308675297650316722958904058789333713172466535995482029196131515625613314427492131773447985667835349736973556952831798879150334136746945829393730302556903758113102456655749308959814031024663645227412666245065689394122011700935298385576654660386297629180500648106944493370543563676412992570805166297735147869525479421250200875100407660116036079666991527806672119556647481363244272646512770276078188469063200586434722793024108024381103746916166629171875622371956996856566870189146795115023789229975189515910837705007680119195593971718083140143949336381578803727371446356915211994217597609126727835885139848730259746700448191110302663221957859142026291013684314341755598191106384831109291600336913806146380523759922933085166812855017646105702137785427468113200635127493236429830893972186291565692297999979002255665417986613686012153501311640140544569513704129821093303794675475711308241666144697215354102212100764482968378939661315196696697299819160074392490885953381600625907411061088289372598369244352667282716351734638821957382979543630410045460961297827847287527050093361378581778016342496042050947032141055940869159820074929503844328998148013156181267198509200208650143329456813031801356929862806126411470931147490244821453671648797818865925714627769187974305420039757146927354447581779297667964378429272717925479867978892137911039808016560705100365010226995107199307983454745334588567697956170849963966565477031985329625856307808926856352302222026203023440110447404832447079169259372133121825999312902867767986107266026582725706144033219772325460065631447193164832480098186231595601464393706773092700638860306642206752828326228254535345168366284561505201201449563068039770916062990982324846606080243877143155316510618032855470522596830771674808625149216604620908738285800290291686936307908991601064372047297805570244296882079617921403554150806894155261608153355443038450970313381301540426591351023669059220791951539002884047289635306717343242452528009490029744677189186233101727495902456769192199749344279039253570865134872536780189942379422667678769519421293035791708094133103746633519804044433885338956170918979252738586986469216496963915124649945701007053575017527171151015496042504997938653642686669464425539137580876033151664845284925488694942769199191159741262382707833880400637950754163966441382214185836107583839688429646059217755138911012598414176297968417959045374953600069544246070352052614627029701608123656427211460748184180934712209765960844786224010933802596123488884130715952959739751415033850821675820546500406006502049326593674764903575198538009685587855288108510369633214470149717053533838384468181469520248295154726996529115113898684926012295576110226961724195034941153275673938210816703702057354093041199900717690460136393330940276772782973578900459521963298094581984461804506588273536248011628552939333527193676369281946532355048465769831097023181656304204972596841519341439549276538981246050357777240279314976378161645666953178483095193160583547130654255732374810648649887001258862170436161103295787401717202716094062719148444690561137669077074838637903608649590509145147042046009499931394164077040459299145317170034680258100648652600885345187742889062385290940047423796252203606931253021717654974088370450265219544181562100020014691780889419465907052566247709217703845265392338024443021827911956621444058425288923237346129130031737937116366622961503592665567467083106312747431640558552001700482738857648016633271488771576179972345759030815188225708846722138027535693929095086869494196260820789616206418580868301706438392154685317004229295722704773095823125468624973114687263894481546689390316559262360530844251419320982826745498868544155161044419997310699778303841963661669504728330441796126778225924069550772550079539704831433570267485515097975750168183566882740159012229364760974560942999154601578693030181048787759075617603002441703847092971585146923722718833573035812562529536674759952953900689035944986709662507650894571960869152543877596458441535337178868533990417956962553816530772501589773354093501709706736738800738230096903618777773135569551582915955835248890379401193508201029007764244480374943425936356950561523342328446930122108239885007829946443834288709122233933790212525166943485599431914763818756050028318381142391373507615490527172192335642571339423171472041195524448153085779066300541563119481348572511345927974090158498092950244585235584729512509004251704136028594317412257460439903210315958805535109814546566203573935329092119752366604262093137313100786548637559296398204571551521354750676659214645902537507449499239782277756739383295748230413896964667955039985857122695883582717570749468618228377177019508688794600630734043956741010987492964392954877781969315221349062064309830112922112447121947954552392629508268889282629155442135026360286763880556466813813323554195871918433882348904797887056957908264606613321995102657889643079712084904721809748327005292170959939106595094608781975105429034232108405383092120105153325225036129482590636872529056459083084699434356544656728618650305643429921633109656525622927281048526272094320890162597453945068034177623503100671325448776125828244560849433418209879470341669255126785737388953226037562564208350461732760481965298545089277720642050384501079506645917149873138659328289564399443893675264796896372053100042918325493309883348924698657985565181476170847334471754800689822787781159629911527705291226683507921380134022919175432368942100256814294239892748485739470061014345146010456681906552207045290034700081161618344211895730997524757993374182988814399697824518482141135357006250521872643737398220308779399096579951236189701611541592986832333689912171676718334427868831780425496804177791919026611920633846344296621372318816264068723518820356136525306733066631993863717700852556429641288123632887201126332823978258001424124160558676543532145929400987920854488427250348806082389775257812211596832365902892823920464105541432298696708030238876573006702744996874439039723090649512955939711520729864383786968612723747569419341970695835470518393886709891069204508187084998313175033682146477401660187159997836049070607509800468095876474106380305991733764214549542567081429266275905203453747865972822066512456206565756980664581063787010826963994390835089479377290456082952461673574213172438111690999102719099337991911837518246357697466947842766942913388575193999516848220142517092358561454539153553508476028298893815660250945623049670994001566666941328110360688898072876628719770869057152545211921936718734613738536392316929435634852014844548144455307434503327705592156780875633870868642103796191663149758730312962850991399972627507505692337739502096623406839094363509324271783520588939059368007989704193128400568235180341753855708017354898043323531191748531724590597466249747275553410405930014796118595226125430786029183951068081554985963264379183408294674240025345717686416498916695781250347371977872350443154938939612232624993824138171330315820053834946413803259273639206646691023679928177083129450677390593313906936986547733001376200495289786195205796375921491935077748624444554129864661618495286244216055308179075031711672233373433026231237698707059817466089685677838270988833753594010075208813567361732751797194442884029949935422837892053800813867363149726778639231918225564504949051549939932703606955888026321288323276317386864788978167182967871335481979687065127870233697768387257923355168931139991050089615843968129495743933384768033366083857345179677884732145801111152073175693848113174814467460164299799564463158222800655802273074236896601090941818433196621701398213756084628144754549569101985558241209683459001906050084384452202380227330431670006571487123814586297633382075609848426784446936079498515175190455034392145773608102421962809280856624624176003049733171743558436584135820823450502438636796345918820760371203641987732096032247197196708052009125208630986622973918391316996541254890467143419465018609942639864031564825444135153963774468305966678252959328340236776730526442500904887252852950886090346840536905815804784366989550543414963772268473983557125718291149223567880454819114349518147910735766986010232471113013016771385396498619679622971024267388028919118385140227907264550071889794712748993594933326420289584263979947779311930175933192554531270315201416163968684807091278824738668032698950575957927926441942954387227664449139014515399134712540983946019137539179904351013321230359309500417990502652343403667722014169104982567748279169068667712909538731946192344726073490532145894925216826255375353898112630428337233256704179553661822831525065589050588431264586598790407879849434701922806345449033052146915716724756017191903168216116080275693195404188369205647153939123053649522617718296788729212628260950834083487358262190946205498080214456662352201895425673818094612565069943714471826089214374012397551144047106967478335522855601041142502486580379936906059266030647665039053336809165433953293140123447336096200725556614150399519383356882785129993011062836474650419962029282542736462978936009210453921722693299686557859865947915954845669559768662923137289949801527527446310690571728840786679932922824097856016388251228477393934238334171680669837621747216466622611299161895993638950094285784253765005155739915909279666042781454921843190973026616499579020265613339201980256342079489737549660684596150837316873495881973662392270937306011247645708879396056004555567720746933848266665178447471450908141542498295841684089028190059196166898871202100140647747804013457350757642347968415010751893787512726300346340012356885279812209902495087440532905558517268378585005759905273438627986266055474652091954330981212032700938018735930679761063982304567642664618743735090496693147761198837619744407730068634723852488553074625955404646396213037566117928719384167132883908355697975341704583606373409463582187520709364914382753934270331152147063575656833969547307717000594787017176482933721357742263943105659091548892021200578690654409967880363748469115470554012341975693306314661818066042031569117237380855888291887999292573461129042093792108187535045788898326357884948484458518506748017587663523770871769082095828607308050252914798224877582932174169026324391215410598178130927235412278303579304305715503421750261796674655421827575928304986902901307990642947772939643671057043657684132681709476836083239096449797439654181445460414249868746330782240680263874735349041992096490067260140589052832661305308764725069783452530886972469516075647420704268393701970479657704061011579677897012150721721998837990590505946999569858435976924989414417953466761830917190453065981727843556498988013931450107645428391791187367256191551067996539215664444401473436483006843629897131849018538504199245668979666321554605237852342558253325733104104374992628200011802065054947599171205200432536954404015984062065683761203871204497012430154859165115849134356881029401390160993867198405583329731155414945420469084099978936677029249062109054078992083349814271557655256886366312734408003391447913391338639354288643883330146921688693813684307656802005146958806296789748754060526059611735079526725046070505022525865922052314299710094500317867321495495463776122093988231765196894654110937775926946768730835131086989688394175242662470696741436790847975842218145808803328204675660532839541718410773211026269086635629725463441413412634553701324691600459681548283814559684618786950990150549517651672431647821858841192191958943997558098812486726272648221546176985295878171456001048201288321667522071140082112673656043424510119949098008980964995653399581908714803262432793297410153413628041808784478166742274601008479600639271038236749860835972591255318731601893379423129584963839642536857216465548194520104857259470830470030849556375931097328102423620625228286584056909892509541801982869404212503576612286592854693295766699658397561536620998683688974229935935081325165036016291087115319837197838802413721371787106204133606088936380774704015718503968850601872587071215561670676891578107120119816436613780296027304547436578393491551356305397220468394464579842467857860846204986612483983969735351633606806808557820033039104252733022106682815467340085917835817837710026564233669988576379692019175370220188825931557547121186347030642559132934899401132362743654164766758363896727101537774292559249074152468249851214602707273745517028908724794158638523507116783014627059049818332644188783457470900494358422070883480024213777069558028319554249789755357524229911714418041724148791763801807414626602701366601912719290506013452835698498576782155626492872145915542824139196696852719900619365161237368464378292586770875319416503185880167616935452146722374470155879153327074287499357826685111046787264173730501224050544795341091980457118862988069782701843416016924835161662551669831217325808611079456683585242648341644211475399518597045849307882010993341863128880429178398158905978364795686832295810844142949174245121645937974574699976545274704490869652288879552418629426366963147328169986604453033754380260586738124249370795692139991375084012002525113823144751068244543164319712555836941587506842285118793210377055361026177452766343909700949873287138609923377798028130829925670212028818987262855203479183562125471632708496549095320712460307379690698605317414285342210238008874642012240502858933861195895301164861818718250192442352867089721206316477005655629896006674699731981196900588566918879651699867952846999219264789091031780635980882085871062902024983306651694745067261814936727430930122032184768549737000907181023847951177008153021894908659207898666376628507492162541697446697459702876697164859969760629307858604729731725307870648234678251432560190137308549532255021475901390335163637468940732591321612481699135732762461354198858906383795868372279320658716668703961163514183445949556341888469050441515584636707411790975248856476566288212525600296462011016872909874151621597263105275765802979326004291698263095950141905566369788302640255798794632616812391599793815031302312921734878151563722150106977459137867297598019230579099773784539318797763796075034761140102450290605558543770311723722976845211078661960015161269106860005092390556904045278071561506352436489987394910376093467975080914473994076311034337376082728602091227402016149596940651356554598617406720644142205915770367093798605292261923896634262209081849375903086558471234377781736424576612403719046629734900047612902252948039381061168759056614943246904841847684138047772167120006788708770393954155696968900135092299708153084840957455368195545342377229251397861875910864066565003318665013512620263747570550835856913197881246454827914269932867260895142120917422974234299685990353187696133087507479670646323494827936665135188906540856889295017092814162384785365937910179519081094565321502545028852527929691993456820737769367053973614439560232351593529402400676125571461076570613996076910245174464678931407673549493461964380673170256667388338105334105005229537229257998436114442268516353092063522239026061261406296010784801701237274711550867524611319186358699200060467918747722688310867423289278844095070576820668960379076631624921907668469171288961128625307747167847437253196538174223638045809834663124759520485441516929758886982821510783275410159145848330054125312762853193603796548790704351379932629253932351849717519263483006482687370586091966150268786057517388075812377722607097162008174468868584559711536258087897580847187654545843013218385258386417012433120068001784149743522209545377837133999054612894599955980104171289221768698874149952319928178046647085733728616802962529424680538839748843827543978148695920736493216433986379998142407575632827649812607884232745776466296067288227271490016295060602189770288480729790495634733885051906691647498746713049352592435652983461626999644955885186706917946217188588467928334788305344582238639435750166662298466722878859933709396385612767941338338465592559033993729828764265723112868761352175223609741805073129403081566776711004286341275688130039108084908142654342085350501615694916223779656185507800477219329957064579856812302369378825528972620516326036649145237988403304515787721445729806873117768569939371015632851971804093430421566683434437803995306614863157857256422960698730891317064356972376173599705272075292125651093390060390051315376732699318386021294522113518683252977485648512907188862663926462076494945180130551647921132020092329177053403769739709118769093603741671890661275336471538533842548931024202879526608261471884081177664947307568658452326833199641056846757078228986752333988643140495428049782376388373339431601160902043162538807528309334505438231112725184553317956894516143022157027002633810531822347220221917636660725328847737420560265141499000220640045431835954280960615230283400009731987175594410486999272649603105508254276126965054539047263062160143279444420876266935480349746487109964273170842348472800678375013394096114199205157246800065662858794413914997720971144993615434772649799450216349230663543553971322214391943444664239787459851935167756220841515098233572041227058077726948005694237999860764306016294388532217193527672604586372144787890936112057286854473839824035874972860461549698652042441188361880648131379666487355784090173715325761249776129260869170278481726906907257212368627469769312480977023235031669096882319195529331913769849125021030361721702119388572480479613381185007453037579268322210099467215123657075858479756401765184939462014869150184657041661144373143877559161967003075886217958473372117840264235234395135175509196408817545063725992692802261022483369228962340603117708541417037961148248072174889455964448603945881339595590102274958028183712319334652188054998799047909451528668982272684544770214318116595217499608656991072314458767646147735432406047671303675928593163933166827233792229710500506965847302087594394817407579610917895883749654273883954041300628617537828000476151824488440336533289634686170735195627433534388209487145635706302934747543841622198704344587531553638372352167171023589645135583973879741301921956249145605106513848511349811644851780060605300003048066687618697623409476118070042142423316108745589569770289067908350665468739282846315330084263449079320593970024927953712571095186661163432332758085791675539914471207932032048110604623207904522926345848932206322699342659090552591454603415026879431759873564372369966129189578142947006462138619733972123648156104375676622681368274341660229904675947831440485508172732729560774603545199752517968502836894476369166410248271549681653647398160963568888612297544337033792799195485892930394563746553951618794245191470009956435161053257898557407790412872608941558796162001241806509517744031470499895841981492385446300217928139164411102025548391993263487100400840686224686259237275578322065686825359690328349160648418773732278888444655866041704862471203564990580350003247333592260357727991823901254567702120195138884267588572161968576488310942157027331065299520643297506226298183375938633674267188576007951254740059320294105152814125268272029338368733513586721406913589285571131365022131172964463041233829699851922903874430420011491681447238118191335219744468737085005831481990960273046048403057253623384551410017333535515938056429498266214320661641116634413389080348704404433132497180986375484260606021025572165918022937705221014592087019030436657095693675742925509676978531225649729672350301472436854106186049367125279136446862278025096552418922702031073960357947988005152014654786033332144338781406831312861401411529569417749185357891380942719457191534568104977137860055545395947495527785630531274443621999987310629489931921694752502312929567177700220559766557144896044185980590563043593263183741611600744687615214457303114739745040583929502282501861859595594401931752790148666721843888187581854394310213801907330977188538569876131918151426482479853743443555152569344723482065048188142415864634888653563223171787407831605468640819483080743629240335735673056045445744234631957028955154371444195903840082090664254749745433929311755315073333948545093482047283942032764194820253939664321900748707530845425227153023725211139343701957299956350256064006126148648347679460650016697401655106400932052501218456734109562808535397548369377041847399384330362418901552555069857274690215352662277894840355899902423606427440866986044518699661889209855466342700152878722681287266548180251037370215838569818522910724298762619245639420076656362125404933799325445960344470534297165360996817101246451466522135843613178240552878019352201473508822116691074401273004784385469812511620085288077049432774952070343723878919805791309625895644366286654647728838928829489219339792734958017850030271003425546738745632120233353505429788138865900344427791804222459393974212011984967350798535207197005037290246446402867406405463660730377644114133659797766222445165928767572456006087751859994156303874689559456028391682741361737344244262634081376462727492857125944947301815389373120890631444473416378004204556396022209886618750254208856087331311059728767711730250855964792050940496608458608357423534641796521143414018941206151713886978525446479115925099013020344798723947304543238250503693209445403333140073807538086751764973633892082266942088056755135360966638537091601245648888009893862624312956056918315556409587260547582027582996162445601953248084866467583268284198097211545038664562556189830887760817046929082033136185007527751034017083399659642855304289704601670921101162136547466721224326905398886262183812895620154762086603300452511905954647546234651390369386310260110530460010730164525660939969024281707943096605166111552978785410135448809102039361970879248410656848788565475366064205419833944919738274467527376469979581902293157490483463334487214147555059408569422910296086963998933184332501492419822755326171108450543343955928862426713224485058290310816573592360792437684085884609574075787344508523254700494705160637019343805482532781702775212580270366839102969327947642984755938922855209366213972549085016219535449962830093287354575921280939616900631821823993783057702373386156540326654369823558461021299456627566134787426993022455069085239722253813400589282416488068372734578509237535848950220392812329649559791729697839652143443096756442169319126646101086617812640131986975765056039390551251938635781237857524649698067694140077380108625417874954847875053191422100496382424308068498969212435296133358596388321077576013491578041872642725024773878620525658986654695337332018826548186443437511508731442753207629536210016240220309798274394961090609993940607410277900421203312042738954318822414759726251262995551499304042927219208588268516567564071730238762701595138903505811410980462767241429260800249137439647313566565304094294169536320009712436117479430955016753494229461727936752921069106494262125201038854719045770143077068710298346417699966613194237578644808556284682350270380232348337434041161996677908444584649014754833439389646709677063953662539002364623918596327045569944983418898559503461934677270719001626536860875102339571715118635974588256390349623004803016624286101656726062099977873864328951750004314954029985425203358807503221781666160304142576840770752394447542626750366134121431329709191763141642240521373492936415526536783590596248547173791699706697505355934895403751456263003551801588246910349599790320271554020095363943212705370881723159613883565793697171550449497141306012386736128881514503352965992189978679238818183482910689629862126293824907663074950601672187698403643492263184914750600009382618296803634297775321505635463727799386241001170028984148391291334719848449009423914200100614227411403873233649436392996967367731989909510661646173380194499129619849447722072861942520865993766026564769275864847196085129494168152957787647169036380794813343054451733270218614148795213212676102057706337497375435110864293347728980879352815990502214244857916215165514539572542812789971674439521495609866028049491114933468141298205133604769489704211858599526375760447507446486528425192517157464724410599086922534749843377982466030554093503040438689056140318274048784389077646500455410861029825172624988037727211020027863360091045345430987870539905337656415769445278991197907472608527792806385664987845400524174962438224183181699179416857134171575408885826354692267102219241266014844577392471169455095372906074565722138525989989044169234326589162583699904711203696062084345843595628278618240984279485667055244084276531208582915949786792472871791361513942472834303156325202875223548359645947763455959922166751029829715641653163742816367657446306229516882632494299285281625294652160111193417658178371329706380674667240132483473794315474705490515580933303293391576135850295343083108827079930323917344495705249729371244871923905781509623351535110848239301864815827446265766417840603429174577862197275323059617542425492973643184702157774493004753809466916317943138378812390940589491463661571864614492217137360285318708134124757582678676079863196333546152415559496244208613377081929251233394585659310337234831245995500449920466495266224738722542717663774388462919251718403522339687887033699957258199018665356117842863736644429228616703353893456990765302921924049340405880255414807220973111307154641076173737431245503212359144095676497282284866139548623222435340859630031305495509138776877563163501941680095252480112821883394788934140200904731272947494779806610462466292030136726506031601001358920398799539638573550073138450309567946996400481691662560313522750447820465352070440225976594448426024038209828865756264267611339729166391173693736622658923787108047066075008491395963647680866765788077212264604087550849201106618664030744359102850607666566445277340180217394037863491136558028135128938538176667524122945530191305906584877172542414573924038068368475209514708911901767701326308468500564818265326369948423737142482080914306944008685752709701656245148919751018599595505808752567915495267464607344703949326438575008979689676261599671800911530301672240545014402052701105610832996187592212764751668086729914902767320796543228185990429087790483755692882238896717310430490573465499250752118695051073238850519315442414970054334959789098183500223774722173163078652017562110207914455178716321131121700566133865864329455560507660035971311079644135792296153060175557477273378438861369221918309061060897494905613880604254589498364053215640129359478011070830683692345493080609725317763544269384971441126600264803864833712491624984026176744233231706388158131024405195241999836543332416040371254040133456251150943232559383826687250427266210812264337109803022763153978342553867009935536999003762609392305844194042972051870888666473820198985414249894587901415709889838462846222483237163066541926032353796084021565258958586486423195951139971560543939345168311253079238476329424705185488745228885551879502411076249535783190758310140572568369327451136690286497871171618633568540727338755034360352546579990584619103554589287985232650564959809031241821363894798774418420278676200805084385926345915894066323919398388967084431294294865693951641983467801153025035476874702908404174276522963135911288504402143385276560121542636983682888156380719584208983982306359783255061186692791918383059705846367321106067152449970003858324329558316793247495542673973165097883976389123302777820479785443588216681264753369913348649238649542238322369367793716607484642830777077775550176148704776954300383973183506368022838597415136947721369549808108900150672119542776590870579139873487942945060140258011088030353981195623403438856875516696088973171658081382170955038879419648984239402002542932255420248804973684445723722562743684861803506475604264469628066451067685825400075442410116722498903349542168098152588060014964428593890818683769285278397885382286289786279972443922653779724765220741599650905839484887602358576633418729764483212389598864742277279800893599741985034701752491945731674950073411316266502554243173607480422412497672981433980657136158980506078738930587031942013478105924575574600638301288092945238025069119885366969174223898840039557445162147052478721464010612876054921927028160584003886991050543065277733537324224221102166151115625534175060575111738030333673588397028864778069443430958464784816694694925463963675320058249835906674107022742051649872180203454528615317375456781165285561469416030715811225228984953679795817875442690500750778427236116187841717961841605478652431587849051185221081075609833440365192579313562063910084054184838306894049947132568289340720877962446724280145588173476035426123455585170816946491182070754398469539531745933480945657955454803366868659528458584300617828459801919429199047434593814756069468483046204539165749169170469687031554954292968897212450794627268125734308182517622744826363721348673490550879928154044635694383561559719035639818269704773168576499765426662316353985201299554671109759862018256164630807793917947721513769709384120116394979663178482874602714922556048814766872478834073095118029293168702837751525524711559855810192286379513236000529570842288929979632664237090484610659766316091854467995662257493029415065814707143700476843396933424300901279240469836460502300024030330621192266789349114317002162938823470164372796233549245206929489329219682064756144672021239865177677266514838517853565124481592001825711421736813053892306453564609309623118642441297344191994830100299898151377429882186309744981867794015365141777498937013372552437755207488682858211595509448927125845464034410854556374950475775826477694052902086814122023476659629663466691755879345020874634473477449929798383221327306596805624491532529443568459163019533181528597688083623696743061699267558053869470612577135419443615403623622103741567845943502563024791802909048982714497158090970412548892672037764156485095087221116036156424309967551391717822985160071243116396108747215808658111520868535299246691659534058685880514701790678344512493810195429684953389519280957867464248510535907186351847646409728493288846430934999924774756139246164854133556159254615912111934342942820223828727616748213554073063908185082340845097573548697499811896393238095996806029109076924437691309657913041656619450653344419639735137726490661302652055566379280729825695797486896898598567705029366587709574299481177445264405564476003566415432051656016240453479065870801320355984136262487628892025611399231612186270094479242877728609630689530867646880930894760091204688057712332953037173079083378711256500509235495526680218534297636500048454404132147758820004872809265175188851436952567846814396940188014011206513312911562781556109299813316687794498395573398443399008294948514163350871552047852219676974818022402800762739993880666622127302281345374714478819853019995230602502625677326053697762238226633826694714964665449767732695407703292365773896835772288974274383210067011877786167346667154224778978835568836219982597564018853096473383157489934871902028175746533892223671240589393324210654438903424436929255618287087382049064274253664521741802098458053689135896674470907890683589644492298376780162106947149430725995715091402105532964681994533765750632016408446645802152424119975381030001239673886580263996159295225980747123419388618392147578359333866586279131587487630947810368940229231249998386119210152502640339474512297861512480631164839001025229777767261503947589264010810142680983950565984119681516290786467046534889801135519935872189236558953771645729989090666432698371996706365233936646744160467667301042026264387296952519886952783077415273323354360617632907298287479336725740044932818338213836581895473540328640842552031139339123243966305440587643117583670599699816878902323392997738370926591039256967472046419755666100265474952777380637688419124464063114647229001637003176332499510976603840672751509291317756926354008036192209046754708346081195164486774604023549726893284229793206623753142278859704542927019124070373458161540347341488376421038004246761427824711997998560343824459193682835284125665096816022176525376497445387243313149295577795056950575572161097827482456550179403021960615222715283825779219051369193627597163900992171694654277580309250649986216379507315118595807569405973933301396793004104924277685646348420918825095274634643005819720085701396653819967369956936320737909652323452376482122403622499963015597414883015985159435388763865551420369853308390663427207466299720314514240660598896396634314648042499719634286934992455785328182017568041687533164234859132420450590545118496478102304993283646325835911179937761288433638105133468622836518770464317506168810836555889976531251618973405127709406870694138674435921577768597272059249385039930008224863492931559396598057449266841260420771900205513681537425466268144591276763912336315862195883169492953520361387484996235909451918966738233411075885574616745036080207957234254361010289122937261609445164916381253220720004814190651607231722459856677472278894108131899337649428513540563682290789628524369576016841764974741300538378465960890349589023536551358704154469835382988678662827902168570127739093865672623524544290236253596160700495116584038291631824166905035386477540273793723591438962652776866693061699512474076811948512300502608263938889460260376875269747842620568631330238201417452852952363209300933704811358078596064239746225323455598023675184547050796614661406223755174378503978225296879907977654275099512263577304833745341601453363448845074342739896204156098636743879328480106000778535572066603630449061376788663785350536884336286869459735984475432209049469127810520626324422629614202931941102591574453999014396815651356583935124475431531137164708582200171854758030961485854238888158534056855721673847279628891746825966440415364521712669241452341461289849587880665550624928469775081801091181227812370319193713081815704071371961177896316412584314078165270379800217702411656045446346707870009970370657244755730672270339842621365013481267438058082495368875004518949330116780062598260297223505570196197686207875199991115547385893369916653979931828505303373353930941784532172513429077160125708103219852028863206075653332912926918637078346406889339923503011865695336296064610400342450324370535958478296180135430227398854828839842107167128489779350882740199075138588100029607009022337207536460339140270641095648833772074410706587917951808655963126706346084616976152948080984707826630725131007917641266688798595687198632790004375965130153481355033072061060682182331642711442096988474906919642187463618580789421161749877508411824287422895864513785491130220792225053528541436579503233493316313224803661733369891922421127550425424462549316246514562527692654632033550143841159721332866482994568452239404620309123383366662045170225996969822501084111330403016458582968571805366670520033940288571936071815695570369415593476627978332835642578101197409745018771554080945761581387112046237857881832521241899917521804023100263152479739637383998856035201183689213080671271035618572286147081634049866864449888306700410044807695498958546257404089446280149516019064137953645863616219544360854599376703070087847858195126170136880794556237670368708023665710464384391931128684535346160963187624846562023979752244638099323008390526563550906789056734078482697469567996360818984852409212836301144853021299171215772882005424073074323465450627398993266304182777452407361148079316266485642395934141854413858740914385456548509475961932349376115103876633003317500390458972161953172625750456787455207420296079829102151807708817947948114444821116278545929743321145392070890543286526430741234765690601249157167151323761725728726612527857268202676404011696507019263629143624099570295877429521634502657253205880347912600894396237475588976480741499263176985887135872790482055493998579124181456373272348808040532372606298371937989732663148375796365541575149576964644521136015543320985154488407700995085478320397714375182784733598874551835081303342251283856888909710567497885576566052462799690640402817407427712395856763060915803638193284972290917973582566136838273509648173277083125054778278299068463433414780256044273760921056948749882363713256854452933969284657010985079693786094465016575307058627519096692889722165989023487208866153860556923760392420852447196073772234026942978527256278709693153861277515133479504112615025316385674889650269771069600978193046110989198802387500860943093626596119180510872650778690583917468092635820418598976759672201716377389021899903815976397901714644914678419746215830492158605161720987260079671030206995080261701142820790039398829604879318585475685368814109121884169866498803633139205805268970909063019635941439158822969792160292824838894576069449680738882170498408677945988836213761332816722675594894939027776383595490549296423898850416386993729607308918838122723673461926298417295518383578391031693394312698962278376255388502330109643151365578641766998607584461320958691349107328141319308038673017238700416126516075702675014685868163823289397973130010347453770692899111645412862755837892724946158678480264005834339292262523711499088748889690854279338342839818186211495950860457707582729273177612136569906927520694748218717758253442536420277128605681764998260549206735588931096326807185105318844936361138600826255076949661304275145011902552256557045227880941941220743251444445957678802078060149005780142010133000471172559687268857407883194494719681771674249030704532421106294342307950027310466657878412910946490616495303094246885706151402498471775765226330912418784972019032665365527797059992262722347180507876714592014879679925383649766156148091699893300610200496146561464635461223740640778027370278195406174353728446671021884264101696843012646640881113262642373904932889538997918715123162178719539228132704878939287744234387840328119529308913181541968767171545125708902304286701104748508704453918011244193692847673435332179526835270490526771891431472899922571058510755885377371267168905494105491334120532104110240371182484142512461720968835417691641040179052883857840038964526554816994889354622496672085787996404193292772351918165388560018167658009764877620462914016551323731959779434609168857423173527949394393087374719527430612606149271464417271741693698141093083200726695724785092419700975002499440540503161864316928340155244374837356429043593035449146479370300962178681274226329269427040334025792255246506029244340841882907919049753319696807055011918741529147217188817337299060262389587949357290497761803574261061324573789417336085805100770158203810510370650737862871514522527057799235905090618827121267256735371367252390242517393164295131372868405641767940742344652170560918116045773748910124653420814510738862242477297966718673891771018177727651487486238619930631228266308985119913378448008455581200275138335983904502388295632086526030299268757102493280938238896963074542800866248553333120931728439888721767067571253139310159008668341729984660659796611479994416554462949826332391914710787533089932778406989405031046810334172186254490195081024840569934543471341236618635187084733819050984735395275438303957540523282671106803359829912488130920543588686753264130316101981166265645594214720935050522437023389790570339504177608755980978296376643394084423756764570059448681360498897359615825828946818616441930955025052357525250567769288159343672208195854183638308912450928112398660663251455453148493108871808890219449319605651303314376177454016585120299180437545135077874485526038033852288865598888976779039137760812978306810813581452512638265425747511818424976718727949145621462208270741939168207822664023172277475530658883000674691113369448713646077059238746619061238237646621547811653039039293162591755224215785832053786232701199463892423119304769669124999964534465307819321906129589955816077682542900292575252331605386996573509171949224411945116006911981048120747419267961327349356111222203405098475646130519655378645743066316545474832354689809842013680296013653497244291595156570793694266515650539377874265331188402229422912665360193540252081982192150016242361230232055802591263517655940081749963490676040386433064299189051321278351218099743752301142806273564249526906267713280471731642532196861680494216141803911552634137866108366099498168777203052278974312463944485803775929680571125451178164104199319918405708748161784192269980910253075366539905494579065766607306508998211251387573375992040021412280026924012383063539831717448777248636940801237886420116147267515480768606954588443261486200821985441105370921131854549590411931352861135080851157631788575545253709589725886762298825848803584964612225524568451509626474469621831209982172424707526789501795836778879675135240617433192918039915936026518225380641373360942182670255810702490650333609722319079078477296010666751852819659402954971899035940414791429220528184196397941119573709276851542634714064599163632909575259913105962579668121494749709765105668167643546149345928465119060467245563560165564485027609199888032818605275699700353893446748196684741554244195120224165462770102415662559629765996255115760624951527120359047367627889253563583912705207159194024960685654743515203958176684968359681107746774167891356455452524708507710553254519107301473766406333205968631018242333265864206790244622945875077728634294192718176753513630815382929254439646905831280581095078976569955473322125915635984485410418403634505371205879170106052386024160696202029754464807311121478969835366673610685844892139885708673464655149217571936508088442803622487294399795718313685303260348203111040017420049619135273898312472586346458433521183937663198819301721694724058487308239746402829354731462207389183331632824245217447026563226484759313088887141469330669980093315440341009589849031920002463568933996110036070292513888599339827166979060136656171289554801182833267871392755084028520252182029368289848842740586911746342083065540722663465986590851782344906698692015962299178312061701071394050185852288401484060441983128183007786303932937650532191735295507765053370288936490850348489913221586398478440053299624785157608395664031367554689589084906430267172862107319871694460497440353778943721778813951299674607714253256829912396637204603166275069837082062611596498682811637623732716569060920232768913488343353827877859862813644703384222533295891742015987538016621612437181132936147383636416872246731210068998139683524029513478458754371368908299697580408655220607376746562479383551829526304823399888296487606014881650959712391843831884719594070842296178566375584259416678078724141751479998682356308988556687867998858914229406290980552332866614280933307675066567905100142869082464639378278916025528261696771040920583292582507042813011900111134807080470460227821879526368810107912204997229965163194734099274831829701482508635405708167383251610506334939741290812658314164822559888136239333104742426621911558122803852093647429545979581967806096359406800257866423241715157425073033390486886644209554779616375845425093548181774966719631184681120854822388986035933328399701793834940262335965237125221085177722210246979117234662692291968019757202804405974272029392965320031438141371137464939338183266162326036182085088362756548602930500614734318917338422107142287231744524135898626458236961861500303553336279024206095977066808102368622355437976440724412644667060317769716786678235800365960928260591692586617507171305572376884355752542479348902394194820751756799040319118014555790448680846632107861021218222350330124139743368001033576332385579849708723620638828569929557988000249663003139096070441980680990784303487284836606684576995164550626984118720090612520013765681223517817536794221250043600187201385535205394287352801592387244126477757203891920905266793567049011378023779706977495071828270291374943984909746748236508528306765178403382103126847981515518278811972092587969561195455455011476425830876549322234127466669529200313054013992714988480440426057732606589755856817187672294445084703225164132631127586893381217025784785110377145835298750752058017424596407585807331187827357146201835421490073270193219562075686092699188495988319909384269118406762056363022199101143587776231278557849221967281616470101842488302253806762744121446009700988670801063589621857310636093596659199342735780613782452899396413845480326237510948899129623589258636076069310714445799327520915587692526136340380080609672691260927747232266055133773457822063921075104107056868912344219190618203847741095316422410873183742960923796264754691042480884623470010755999870053363297079589637089821102646033218884464948311651461712402663759826392478314189005472559432867117117655443708515240925622438520560282156929933915677789925791938899769340993619318109166121153133206150956867521691121496048927878241147904479893555668364291433772242998551437116554729287279923110071017102140564899442383417069766318483535449758771971930175477342631516673712293241528424520792519893178463142440005148175788899444476520915649791738329021780243140107676211271870727434588937847415854411749838745256632220472560938380936341103352026697424731245378525807530075984455149702072868018670232925746954462060142730408312868608245276829416441494721820935399448429054656037190329066236401895765791339907742886418461466098371691001185304745264015141721893796467594356266801482747722362005984419177716766278273293671256465114932728474437875578912968280000649438891841258817911355556600961132031503520240549410612796325428833632444477587642935916279230134922549088757646117935196620273704706556549700679464986555783135314212701498348719717456163563797318366964135427934945913229114171759784719448175665768428194200865587552787343450069835269073952148303298055300874697417204761686183777495648389103112661989038512863854507760264771317783276348136457107947114931537944211149351399795118408214399435229684113282421964819172566522430618362585655565483683133860843966340045274063695072323681016540430215412397997498953215302451703152682187738920325744503383580971296263214143019698456887773609009098985188523842586040363006440250067497858624973185549161642124174512900226935748884913828350821756424349394586360028440962486619779748808542614015722073164070361842545913513891159577806098570714038264249562252917538193444275975136940369999299207110375905129177454610104583826876322627169911310004264798633989879867534658449700162494626887964755997722222040950367399875307072133227670786553150495475581733951041468805731823650315834995258644439183621760880455970013736272544131728416099587930557418614541413400040191460232697130403331039536553440032333283530560964987297000981578558157927729629120245234684935456737222907479667426900201237222013617914979537592069175867880412247762410815564542817745486570896928967736221628675392128854333696337218770260102670844621750504642710178654132296730524908085518699101205153778691642320754278991111503924299407460482759805543890438106729444995237997056311398870168923921199963717980963952040878773300560342994899660956402405686268076704093733956037205118330032849331321249526520889153021503148102705141513825206950417903233795665368029141834845156005662096446546389917961559622639931044106999195274431780617923621482735099026895239824230457899558212882568428844037625320024061787621589285252849635498969742462348163825059199934202891524536123734378485284246295055359386068485749291927180961412077956446910648083953269688658129418955098208188560270453634212688608898934906507835459600999957881265517628486343149439398590385791805196944806127587506743182444261778002837939099363518612660208107617236191412499225177952753493710668027025715038856370391820897788009200850174438838287627021413156369029072643740241996349105207444126680573508869252227315309024841456735926032579073464913159303689481097203372034459327202291449984914627053618409382429259329873942400593073472596222957105601140675032822524476883758305964312480575053102217136346536648206872948365697211565329284192938378667894828491633254080694598610461414029230218077144694149271282465776072153962295576023432433276911597666021238781600277138470760888190025411434264405765126583619760623125345124236410059056986284565333670019514984324846155087346823547618168149321417540207631138833947665555604966687053129447574159098376970036776073962535246250036475735065296610391999099144022543642389548791330900351836983872544582095423668085555095084705142092413153561984814196768687502748317519941571259586090265981258489261119761628094211649365255181060645551810541217940215189802543460519474098236462934049841414101569240207510412113616379881458033164187342008102852763310033579881777587288518099889725043719237078798332334534987947219021911610047043860071970020626521806896458725114069339771845214549317033023593036835379879997425409819873738602514507195823783827598716651582211080543094452758247077769873437128186392237150569822959675982172411251848399711134601529943626460752576737136954889326200347624701291611790094710739579011522478753233828713630653300153607803003325717489231820507171001977870800548778625127304170149955431410307810110256161592797290704448744207357563401777096270903521929133664209390360016855473263472152312971429465720090417028353729519797836492937038425599648679551054762724945036208289860555608898817911374590718635931198680298493921558981470689192012751546665729092850369008812776876507475017567112691056366916863646165807259352707375418660506454149213829474960921528536105407421568581365120806398260233681553330786830918406178311818656659297824126121041688997020798359486298358674610781536098775627408657310016799582144425076617679831702706215144191278427517130824323845065245799813249744391753497267872310702630452564653510117208451925607986477045766880459816551736454607331146018456546158872049944329959538474603557489357095287630950167392405041322425736278026424178184464143217945849897458178642001061539762011199566487094051465299584452134345028671183169384852176369526364165238987036231217553732680969140247486103333798695966857243872369365902587859086880835435648026293179833034006125790697538500646284480808444221203935186015414636623751384896994537837943749036491988884492205953304554748222992286116587677215414314476131786196295917576745873722872747384258135553575223377966478140264653111839212764656146147389079124603103972311686407685705010981810008939500086947248350214925144356247967524186804495168799087732395738652420999103769473641207858546636615122685491690484456417319990410744591926907057647103516747092805891803239727280826107802005850283981672788486395667571013027759171941749669274881131891306379564643803597388173885914570275222032031552399485968523091016592683137126883275451646533746365697181195075958338510444798666890325894206090418875169665399828049534746512826176592591267003615417858269590396332293587895883755316624333983796095076339444155051526409184524608696640457896991525779539225994806290221727307444240587612298729251228711344174482093398742141875290722768396111731542292014433216735968319100120808474221614111916176307653227331508214797063479705193494591675317034052813694408217549322059074962790280737030794259407183904629822024244627931216097847502282502152958689155806760129762859863867000928911075184585151914718901557844156012832342895296372357492145475150189049672485540533218414720538959257016901113999275595594290065305713573867469364418637201981991813485185533741446183013725786759102572960302129174209793402188817785432351949671380119910956096363054642441730140842716296421599808300992755330965707242967877736006276482428881128199853341712498963626355496366271410736772986907530381353313422410005421763855968480880520006528049989407432261875722140744108549537869043455572369703615975285374742693784541225502725067911194714858119820843101087881514576277579142673172564953120344637011803980070128013481411590257827802900694850459999856237371061719048818163365671001972016254464458064503309259972347231596574783690523467457187800316398537463138284663146519482998578113928395993375511384699872023974461794034137432457153093098404873096644161441847009529929095356671244402280956265702120387665756893312283324353826360680064475519782446645389714410474462282497420658361013497214075140029852642818253321940344401197306275267838802050386675304056575570722717157369345893547095087017485491170761280892063922500696246086954970568676615637295830309936770647317709914714816130969383822508846185073426044842593368813057434493694003841870364914144042721736828089473146708221600147609456747466215218076396466475338686768076008299206963760563592249075966616413273123292163610772732288126224018251662397279415126298534596737039193527247981867991774741819046724792658752804796965867409701000778493354735462327412603350367289325518748108719868453362555273804444299640621468566513536973042172032003570553214894929200669833248200597499588798777883288115158445870128789859433566514570147357419250036154519162312208163687865481471196738615494143918452102292773672818641956937000298895317905523122778888314951547678096304478291349260601706215742759765190029414469767584376204697726342863573234154245368246964446962367491889293073052735025528275086495153072704027650339748764141669563700067033478963234362799161305051261596693561552144359764114538680733023737449932171987019055869331723332758259189759636637621787839256520135479497945990433714827342518574139426953675637111726789987445592202031140499265395196349329274465251060283955467189335109562407340628179603308808496612014603928346736656740313250955139535166533669439657815952962283642799129455321859629446988490222972157453709004259371403247807068053602350214454420755644267957255868927092350973524984941942248801217556215208697760861909522837328657393340308586285087949014550981575033051520668621929115078828981139500605360386045215654464212911513030616375309913398749767057359246844348956616592570806752721260928353594029349148343559147064791506805870097009787350709388843774061218565357388460309350321095426187520295752920690579829295078771501564081556529254019211748247913155042861389535700483009410260093538988390088397750533463281418305716504306831253818475963662558140412285983892708162151688639808722851927085936756326293698366704140733195911747669437767940444700875498555474391498772997817328068547876174974474426808945189716352409995523283545685418456883061361836913869691714202180069652985446329354477924019830569392499661585185624932753256189485622067658874524536174434225555012194821914940408441489869908495455106934144273032670055229031754211883786060269973724377500014111029882131711829911674933774879576147960261100737687674559699169960760449495781523395137103426381255554349262723852237888814980322555158093189622969365101262193587293642553136059250858212405859826603963575118783617295160397422797035883454619356302621052964178019810181996904542383675041785747352845315641469817743745281280635616721493120537151275874659141002237317800184134847442083932276274025773129525585466745623699421822927157509706404986273903422373387176923862971661231905157966975761311805785020536464493718816955730899869658057509612557243740848032065112247133983116043410613002422558196169422912294380426424696540506876919229062402245951763245715681705631312007229945232562566200913446112287578597825400440897059559604559157508346304648267552430805884514443501139565170714413559713886589778452193316510562943688683913667662695525187583670376493282342849294809058162239989446764113475489155326708409381271248452977051524533648086654341604277428664288971715238883727716366515953423462939315205872039233919996389490444849100086252233276064147231065638965524424865761096684961563572161011933605209863384798257036824482843623951274225326733383321658465239665763548660696272035071328664584546340033091563875398839911039649443325260170735910646382245203853758098519987516792117872248099232204180763897695184765572117943233888731778740105061920716303995472433200185706764945492241240097744012356086819000405520170460554493466604467025813732657607721451795602461005394428619254015835876429319531704485483032893567624918257305118518517155367561882712857562716747183362185547753307427905823508897996583677474054470559674054252928391322955908373000891164966113070970915550714403917278194772478810702270423404056615304030045010406083615399379548604453268415629579143624728825357986981125793012971726736793717737139324547066895381439999261732170963474768513180462996724326278358688991821399371876638424642128615006728368273626925126047681711037727195120779835900208346087260976982965247999672456718997223601216724391608299550863139454056045997417878711822223051510760631762422565893686074282539538907174900004802217807981995853709173816269844275353497898174860704811347772923207109847016649099662861619468347415166008546557404759515010888826973414743127076045870389872927590913490313173675741444628404218975524547270256763697869051591725926762629204830542655160325260849877625042736574614084661769203085126886104391511126445197914219383908275800793588829063179251555919604367828979160932178433960114108668260005234015379356671546300219453296215119861907785874904163824198215949080660533019625800206890512772807418814371923038788578644191921966563180359863728019341643609997062772627757435412727117866528123509131094395400211041142026403067613624150842854921617986764032139933162119767283048705700684223589369503466030072209095274962833651621378894198254713711370346502242657873250354407382221681309499144638679525633401666184838470935515709109827635055491531928575095827163794000903256471252400187331644153112397868302335816119374682438700767638913462787043843862828855521016668727134101128507234298929469821959729883842836614389349898222618256045582954142430341198129826981182026781254921700007795501077188413010830718615821108963358347887435182358215559237234315741899025777201108727515575845297240116120513119202591690292971168502132907855589872344845898629278652153066736495982283888910724417151607106600921006418771474735229406478249454384454294592636733881528242103355238949344492748730963754980259740860277748455255477468062866117334596200729350893944752052884251819453175326766181873251714143593176179874522851314288828088320742108614737890394098196820339096976708240872113240042683598200355167018026518362324328083798677558007490881288969291835810354751260197202671200066834816715517133835543644370174495081299216115171558262875719193871268228801024298047118599957650138634935433782645571999627816221203316650790173823401612389938976735756196109337094738077612116767564561752509576705931543889200351891309916246278351144041524977099589499584499870837677185989870050896964658932668785557559760410879362047347688040644003325819524968500846586996235612382243462923415497331715645875126046305252200011663904300409495618784309549173747394711203780668736136605598366003159711431303864282263987378517379550252647531497316605048059144933039908855476346741313685302251593798282269027226229411252753498675105434785685793847985775794927517275632535670105560151346249384525792162633832226423564646613014714163034775789361748128048180792437304497100737142055877927674957867208201510279693537717086450700892797226609828895928156192259086046253070733352863744572520872543375192613073820799747794989570933637178947400847220363630135089642224746447003885597614820189366393193438184037953214796394994994481794507578155964533629604008028641225192976141078244277008210008497661294385303314747395029644757224348810223337831838908712807894919696670740524524118095169420296957477178633372005784972025525724956874498942080902378819891304710891343363271083645243243339706271632938423982557569267348094301509166859459743038668784147581518228946138779783230540756484400081334923872695548224522327145712248404054601941798779059610153771295662274219313761158915903302216860637024167340187068336371568289369352977039829563520086314486339800719622989010222686527405580118628008541276992743485420840778259094656882906104528254179368381592712745492563952046107857501184656879885700924229294289122845470849005006695772819719205838185426331453397546703712921486555982062079873756329820144890653740312133399810509042338872999598083213781438603291797830902362797768491921338945634842113620366106272215548403176213317676148744318014255257538986985496483397403390575264872760957945271781307672927886627577340941794993280045206548616545652205128010797210660410239271663215479807567184754237589810833897408135398514325348494261120382222230523120545009355077581469134637511236030461166756177982141232397983281861110291478411168901879922858464830937125643719250509756978268001635593431432408875560847661911690444871243398698722481070996735020135550898258942998887150434078514144737117772529176805295884980962035305944472114967828918919642958317820603582626410660178430516912216534827828763869244349531250868165983687824655297459638219048311326658027351786062102313728397051236190067082362407052136741945356216805971435712115256005112831897368035124180046520184512027694620473887622927684516968013521470552871858902984807625517556366090094967521633008178847332646812093100230067275132143878693719360752054837239891765599392260738251388262257446195149583070670291212278666159341398542854246580843423624429209613898127052061576522902707931231623094371670253777637148871569065333551808637965204062339791126336901020911771833960834741146876812803712241063476533903239182617397378940934888386574713167668349589270898567489530352809460159587625514626607915083161598547041234554516344447762117871784682171219271404312595252778017229237360250843879650068960270465248447673055770546063119065936361412937555109061907029745937165444721467615781734476854835098616308193171302330467128970336637260705588342422178263826090374187946150834098378664260802944054629918500870525337459990304627170904706087582472517339596759593765388830191399492377423166301855593309894969575739026496522826205835098072406818109357764357843408520671234279334459839082718032431711122678910419191158831833000651179069916771798895184090511569962292301000571290475596577069284157575577309954942867879872004455745874218734287386772092785855577518545008985130183608574955992759613266826125195820798622855787171276857243856031479650896625621808713551936504277123392821874633012854642831238973341715593912578443786486910161911148816852514065815633407469632413391551531917655768386769113350602130522919176525749419787435681506465374273705886555958910844964553868278112566683088961491869024374233443931648867670595689960450132382463979067257486944343032745620006828864266935411685136055814221221408711668567255066648720152960605179550366267762414612192737986455506303067858759974703909943472428899846784200021358274726512089477317700244743471273643453037612025078004042088550027440794205410842026924693539893118021964727050924883346034237941456181674218726852498940018598124690018685057536428537495750874743442272575698335532295227319791422960220609653547606726669528076536709882183918301602809219579133461467963806489199433382988334465792923843776492324465410777079015344642809096213241558012677772787547153892636357884704470149482225955729987190265201223539252249820956157921245324543126815640713707938200171995619076868226777906611879740717534965088744869676994863497364121216261278102787565780325227639304538154349635320926708422828760860136520821872787522103452505664236122911802231154281054548049736698546378176885808639301874412643100186738695766425161462573339521653581917753347989410739512370263799397491583678141185004538855315945605927138756592687095798619409947725772622386034687642981325472715012946852598685181516373159653869973803750447097104926601419690211895035295759842743345016036336418272673219533293181263319890175966946147157411577259629202172126320199702824714942285007272552231257690104829469187850832297388899464537697406620115596199736005496357270617661725011648083217092798977816638216017206579337964759486682263934311151253255743315814226306050430949653460861155560479672758647073547145686805208376982988027351441240390226869207227904897346584869936935904928931935964739260121635505062116934832202936641153323259559440719372049502944190627422667809035127875767595646895118198439100867746333262121811304643999380212846350364760490210883051829820281585121914656171450349666279507606281889819316338441980212860989743077895197139752635992668591302078225103832975090298801256469654904131020950739841329275978512683259404033607151728031743532879984477834911790932697911515572152051348521105014065472133067738652081231181918447315776214200038730468862137605696205347533380881461835649079776375783785920966052583611260989145461004279722362768027435164771034716468901845309162840963655712172387403945906033868393580471509152350317807486420700409557370419904796382399399540879726772930914390252539268868838928816565810577414693988268625850717934803362870047007987852371697420589729192502905365763448662818435687003611008842090679128105729970032338833247793180247216827823749192147195449161597361692447173488104653777032884525962921346703585455829733040440688037974494097870025276983890384945125991830331885369944791590167386685027104482441984690789316480755258869680114342630750160306766177025965774197357596370164067988618596811288089533369897905304668545998769506190074529504671312505792765766656445352571248211518735841005333361933937721246186709190899154958969462314361877433483239419061199410266761563312781017644135943196447564894518390142083785683155391109691212733434607873307042375149713506425948465432831635811428899550794998164526877566917297967609675522230965505132054129680457152399889613488109067813306783277630141753380815913859427550326918556313914149044358203879995917760821703180807758150853088989821560100008219092704904388004103875139492124735519190129242798387679651915474552700533297391192352188049402714026317163743678515227281741820268029536968019046809315186968966245724525418034312098508376244986050270912051753843196481411243418423550806787690763792737327271303104314469226602230252702821650858154103876761246886369192395148938966998993028527191801083982603516108516481657593188230309327866129345611571751654530962867736716680400000711691127471674309204623800881643253147788284218695948231111845147877157211680801602014002678899216461055207382191387960882504179569504456001653016764308583046163388586026491317543489709247569231160490127811487752147099802569191086328224122387447166822162148734901409528075843162102617509977439467107129502817650039697116571570650309092626187139703282000781269071770012323290579457252200059870376772379228507553453871201306725095132848182526722632785075106709299012657433923424814565116325039968062464691758459632285046157452772679016215445942318587963578905934112806902983471570113128807729757017583719336910307314019141468456098145401053002225060738951307621403419126917737161981508491143011869290394819435344874340631308325431409749872700627232229407139033860238764739773159306782963722208086712226733333175354356290691934361997048359209596431146223613494040712682776211224028573455439364845704427969146183566267784806436367743468616694459275963808121206567950958130590087491493889953443888550625708525633118871111837219295184645793285680015039945512402149230465135054836975782024389582377623638140154994314855413849265960622015855166396020946978402579618572027707132734596113678238990193902197294845450401172815760813571269112073238084239927470370038828280587823397210672927060063925966753684015391864270679196903284117701295398328915687239156210265018814552641609314888259946246695018412742248231409071984021306546954771830020616368305114462712321621869198481559706738119542850679552907808612814149447010124510726935834613860501814843056634737283088777748459693555680372629818469944854609881413866396973701812421216165575895935077982448403594054145025583144899188180874484775867095565920379847926547793071402843539588539468179924735881176535732798682312780617611489335319933858870547192925622480755110581524822892175881757371927298962803081758619292977872109335988728453518927253414843413121786433318839633872050299973273544710896734802848641971803944842665262339080939172451601790289915851485417069897900556544129894070221409766182469718965022134892261792787488827947486820270106945676993075219792682332990412965912976547503943673784374199984753361944306973759785219112978333140750172766904299428970085571534306167925457940631688345925994670681860001236772463243168864645505936016238525873046591942572195584250470107592083086540599589933874607438269906244330197780737781404255022432908772097393824026311540886449313571290820136709131312303535221203854796778188016885423884580329470921404571679753409647341198899082855394250435537371004245239071114391703335207686745889878703937917849351342818193479061754371287712221745125012022525636989063270389589164632697401718100051143848879393087757394852462769933581442125033091033096286310687519276074317638919639424130311554248987991282851803973234044555493112064784155919917532516200330401438791054796550629181862542016108853799715742392656571202292139843750991249043592921841783714936863980132974164894206792444508329014359757209009130933451907356407476226671258498644792547482059889664538029972850670973185459361522040241836481743240713286245675266946306133261055392332433509450259948651229042270118888066161356867527005081892466589358779573214673128246724988558760798412945365879395775717223838351712103132333753037754881188681819208272616272569303459070684689339344162928073986421079229205016539977114070009781115663446396968371337635065793551814180092758909727702706912148508548683587732805784374212201834690812523944100300521188088756202915974127718734147943347658309205406369234637362131681086559553437447324515204287567863247545857389739556050849377527934616380552984132931367593631393651596777018442070570526530433193923684808481410332107516632531771725783386963675244006842800941502635053853058077707502215867485035490773331846242370798919270201897046983928454009252362152987906241866164958688414264339239394027912097827464630257493380917281775566793221420493921599843225039051509789132056716105047412752711246748574159213614473415060093298699714825738714303135940262735632735641503702683776073237728628782627249381133454601093894479564882338865601168845003577711377906103070206400274108492294887603062026704022670260083574041149574018317127732284936931085148294582508222149327742460725339972038097358138604079166515350223648572701599670715004620466554105906937547770799901882028390216664407221594439441183009439282437235132668434575469995359791114314546095264977857590065672262683070956705525009093698897950330152060378401691875508535377531267322207995876634641757285599349137740731121479725318238635619286982571060920078645016176176126058403390497765063381402867200234794009443131971292181338470989263385414178294255737075995583179488484763819288159289240826159901249509714002241026316632442443203115456778868530224602966337613070658453121274393020493181879500565273104653226912064975892720172053502196860427726484226173026287950061670887090725661853935028577531514028623023315065570788017259104779592835281475432532718158427284318308427691741175593517740343354168975585797568496919829229959235590785532280670899614459270883380604171700040149577319800538185988774000220693979316519892240331883187946089437795063308189162909565471370786044701404795066632074011909130459856118585551602816880726863965748903102848433970801916752552349310262443805868946757700467160574872331939710715256473256494781527504506093078470524488165392928706163189471133154818032293954708403232617248438819048494546247042789035200142743455301746193096261469270987502199130308302348260121038211615860034238208720672651949081542848612701119305900822200973392658933311100443438532481078008455859395755630354741572329194700105929400257235791278337958302015185002624794912103536810908361722942861978445968988570237956768183472798456662062649806675699094380033073186831932465029483269554426911622808294022868268812342813492910887087383859788185877695395138732375051304127600331684403791381106755634800104069148517997539827536784020180445754376927806838414616395856810441703881519944561978434547986468185768706298203173457050301466268477882216104828984006955998660207273416199189804716660419920555543513447485134182240539287798774651723943265737152062339277769009835590102757046183350849647955548605154751837545970435104684296708806185280652046151998557873364766540447183650140307410199784917400152874405790749207379030943127352464372792911105943624613547753028599423279347767250214041042438610245019998296420422195603593097626778906810222007343069536172893488025848412877000475274695413796409350421918656774957344075915750379376511980723747545119856449993919787728016562216668961531170878201565455624510650302612516733543517034018568886981258819360058776386109158457527787422400666721844683808297122291540884835534132621170134908417662098378812333349861289755359018070744502281192747898626175577284788678515646982483545394310932999043795215099900959913772699646285160527197359130149326730060624633907581424165606505223144530828671351073924458759990598811564628679401933190185873797493728368752671237121616871501786688654050410214736394378838330077745732278375593496003345722812705411211973952636034885053387070552506694345530662453578678301143482762216700362506032757408572095415573093429980075996826489242441154087650548996655328747093762574270828011790843080816674530148814469757197693711337653567882716340479707897557756453250250088464583083538971366541047862660657851689538910009863448795835099035371007677860412770766109620091266916154479780956774065901112213786252038285821826336418317292245683943752601896003891888511541922571564440422259302199054830214357139818374397371831214826463716015693864182241511685982587781998119354368242934461744706709563153870491845933183123848683778960562847014037840432540496636956218002665442619058200087393798875840668043314034857383424110880638038759496424812829314549019859344571977186787055924579654945036415342175236401176924568298865927329939761628644070767174231129672892508798701004058390541303822168284665624301840866190830589261410143227942017748321047211205750127795353308960770898428759557763048218788557684725645570674898606750434150100878789820870817529164827710387929868986163392672165779387030167729388340268637216280645564939625998015572888193038326311295549231023729415621418334804667322789048338569084811498088431945981788808195855127540509896816020596433727973989910857209993931558495852860586201017071774955981201865557319424123571088612370168153589001809993474363315951042022742463848833791333135212743237290452747243423606189645967486381576711784074315879391560434108719955133500543051646894936807680841978469761342766141462313640729653808146791095549629949404836149890853055219206980741495741784870158376683049942287910266101966584799612333502446722033641552318272364200241916648986436450363667766859082350404722786204787668831213731058483561392247361776643623431628473860773500412209580242633321472330912839836464384438955506754814868491889466377756367072366738663935061923690541107541175041063951904009385458153891154848931256180996661321661230177288416063110545436371657039944360856911373799137804256452746641301862986513862866864402248427045219279191141141721272729049807428303465660693015452070215969164546932851609684922753230445158527354973297973989986429358280439491187965445207946559758157738009074580992697041754650685372283248750772230076171801744813283476511796365411763577761500469894573080688298817092661776819351130319200147162969379041433825856855709300773609437733639490013731078823613723573059300495012549080403023858744098443764420585988487261930631598555796276453029269143542107328534573417669116345739175808520991882483774395599600791182769595581342414399546348705846903201454441111031572587434539138314775992772007407234946091251617190161797571297301298670393200681651623808373935625367108612642092536177496449405330583038866061803973705253196011144453238052466574850516647928888271383970848621840209253463633756352209367646212656985775774934764920824072995725296767232481051446539806749786840116821300782222274147093328134074790989956927517339463317682611417780046765817013676732090660538276663789375614775977234867725949462619840870600885034877418176105756372152354525536657291627395529057062868603528054504800139940645783475904655226487040056053519301240831971092498782885357675650999658552704328260401824112524653845437882442154371721663609157920248830285323482179083664536027023034903401472499832434729859478559898863245987276237606097285730051725329138283555042377979253615176491346390778455396578312568945486550307542152515922937274710180264448763333476136856989369161201216524222105296338099284345143442169279355068100946632857553498897637988159512260012483702584111116763103044899214703000999213122630689785619635883831401404044367154883898944586586091071418226939889494659629107328603224235287649948163905095928740307632717826072862916787229494079518423527224545204308164373114894430639101529121897957468249681696815510803270821531662511571320834996183544644641978392182866788131085363363548046879413270678610682845929989278382473564647285103213591436276265353121557550348396469439770512857796515540292439875116454738017429684919779449726752800931967370151288217010829265296798190239511081027724717559931630716332434141085281516162815094301835657947399196212289184333368558938481472433298059193844708332941856230829074766718503448922453542624383962522699412843545119241562076369400926678083211382875710988133168243704194880577953317746238780569827139774861931035517964823320411449749442105846875817672906388760663461478346699503893215452603769394747461229262287291479253626984946341084633996045129043540574180748650608453626153780670142752426306075818686696399189696924583543938097641308869329381752181327440387043837121897916308501610948695940783313766186758219630838622991813644400336051250621512003635333263659896838950781112662848916970130920844670744545634365661840068058700470302604655308016223267421817438119668268510939438027276947612124442914672023870127185522534088826641348029928113609294365533248776386650968259464327448510808618986654864529027715672662733007191869951197790636195566612613578627522693016595774575140005346630746762340981641609283529492696886428873066259118191667462476605123612832498566708962772895208296188094821248542056951496222989086057845953409812413016599645940564341044291284951050342723080248862183316105745321255552892416856057123963004223849063498916530738867336464746867928245948606350206228880928576568169772356134141782719292135279407131631972311976109542309655843897822812404035912951483405028160522140061357162869659442350335701308511697718691098513370685370032135999325065234640508310627688295501583556924248902387291700824183877326246353492860498848961297797593912240438800549800400582071589137594601177645621834384054390681168844988658069175650215476459884840563357675630924705277454330088903508492934697578581729118611210875087656164893568442956388046843186101558841124917707739711905727685184119940606780208322179550779783758081046352928212250733199823370868986923909446662148465895109300214468982081596269023411603985241266731434125619843208954330723745050108621384724624550345236119978398255264163400112788495026039879021680567961957696144375080556375247810781947838712465904557505448534420318765379918560504812785506964918102884528163109976168715067742975600697924817761187333030912532979457017339130376346461077658325399100080502239747314560269266244244903556525096539926278441429506654998981968377695112121752013530745213703202424482758118848574917762316963711902913883553718330906806411726441149818746337932790972576852400342580067604271309476554121738351794395687980088483275551623650378172614029920090298509105419463453827430828901741622833775772499483523709031922225054482972346945855034454989020615066872412436893583312187685253575019611230277148208223989212915105810766865488370162690055293662919085696452423998820125105361073763492578141180558885043114269657812790242196212523330853819918932173626053747337327248697254569224595477232498149772076766117306135095633606396501953335024150462072104818028512298034571018327310417326254482925898799216479955435613068832442574579851815204093224817746366774022279760663120291032918048334704051037914369602450471179973447518057868315842548825350441178080937683274057431188428541686427947357226449668457221517394495534233074090644128838182398360959319880171668149915386707949979086973441402824853315543918899942126929543289568001553692149901050036992736724597959858031207504097290285958018630748980092228827658804725281512481414491519670031935680795353599238410529094613498205782519241261613955973806786618353368579870258036425426498411796652026869195136855506370723438886360377873065848218274661201711525878100279250714429034476582991263360071498961347415696344926731051114767075005316207228348288831405141009369420438113806360691603463987047486311284130458628822077568169181305390334255366424190373152500190455599993598544515873200062899931225222425665696020563977091228434032812843869583767155942281104630484011384795528221127064220521481666995750423849849409778656015625671853811242630803612458736044877584851639550069209855393715935073459833652262432128169451952807894338497076038082637768672506385978485620540479875640829543494971437982878532271494961327677539758824547911366508844624689497543240010390246824775278514489633171240791736045975073212010034685911455113801396261541684062680958980495169105242163069488551505403463087586279127713325162334311564527449108871311124952791374131448102785226227506780341411270657519646842659148172779129594648294905395849939700250065573703700877875775951986849754443796933640185556838352528472902984806458809982695057753167749682552177396863592265879358738787515300351847907047154890280649545097747946693483487845915989508376203397423979297831485547333763410741959119848030903725555001705382365628024791696704033574058849779663083862461563854467059387816515601629587433884600674466114360640716865880285890561037699647941448703272877358780539680086198357582413126898721454694381817666388132907188169833085751032388910978190382808526067793969504196256329578996658739623113983963678100039472404976305743040993418472197485259386352815441042534157903689018897827644988167163230591327171777931843731235524782753083274722967518159195365255306242361394664534368381327638854098368359244695553298207384076981097505314832105385474110850554994551626065929866915232927992608832812735609616228846674437635972654783488803257845920645266055600334840894640835946301617681186114638895799192772280577725810031883122986256836450575956769291874221264787957400523661649179355625724557746628696070505339748728858444837856106233841099587236411382744083975956224778067711121716342936280451500622904735798122729037319695834481486214203332307719437681600426399808271571200435867630689681230422576477097099818026625382013241589363870017377432187575397682042243756779557168447646180258496151817195234611080354519021376023429396385096974424684231107907861271832706628648261203866572839918100435332537736773889585815426180002985578992621356218914391784611082775201149272494973852493643429218444179202341174058463510784644214099759278600236388570976509471187910540789680010984114279897420901026703877924960774663262355334838849646336415173682521026371231839622257483511809014130617774153123906043345163395619941073276747031523573971771515950369102624580923525479805173651494525546356191208225163918117183957998515147844393971821394563383379172512539958662070537972353471843236693012311892575918865997043556247597869024812580214975374750813792850200258912068507929677980301153809170012893740266356109689191055025700631871237513474645079079072219318001719727046341603708715648815592781758736556341991731180573817402399377854086548788931033735840779572834485945564403160092934781816526422441456956810685674001149372301960623439340653181764697983368740034095403510986344875658439805943184283275328399711030013062925825068516636225648881465657280533529054882491427618695558220040280631694371615491478696400063910336577333102864576610022420388128081477849844830420961937280766037761486360973435394125648390281003176566412076155400880974335768566717026503915141442403143310144319267465244094000712340142734247964677600817760971000030399402448329526330873373228114877976857751914885174481521504358336968455843176941185377767341767978240814118417059571961582297024888114781381176090339537791374678048099315095203099646845796038078660089559146303165415875930909539412703161567302169049709883466051438414059895836847031829821090816386944785714589672423011968520849730595524295981378423255950582036825593174498668603855967595257829629266117918347883328384676575202366582677683460625023373717790847637632380766143415395701307712937339849399764279552184882594944210300204318494386421936001679945274868576792596404485285666457035385335748892654933639075215507819319926284603898275238630125122044590550313048393129926738865882822080678485003221403143648865692224984299229159701363995081156467642961573747782043042866401486747816741111058249582195616158870789325563942794725406468367670093873910366261200790475165742495296445445387414215369705562059143747090959895244898503741696916045107876694696200116887659276594585509204476274321310640114846139108063484576408663001054138324653712920560814829719004081649081657919878650162873449847872805367502070499117848160484680169266075953442423265574823727272034307409025469165310544799821498430864151914283215274286251868451064478913527262857373949349955298349476889148391867165424417935809077931828740611494646016408553683611536982658540161181376855031824388170700998523771480761762427774491639452289346929149902369339733652645372182359814816359776211288018724420968297169259308841476626717156733962760967482134033071191383474884436198057668095307272149750207746293017747115557060702765713978729004502882855791745656801128576273856269730598345968026368457823970694422457467996097875557900602580634429199409185362881273006356719834815106757356908196508475856139458838912277426877934988791487541401950036267022327813714127357812996049771921268326880872719666821691381878807552409687160354262960417179868535898460584118277434099040163233997757606804581900734252312167163650576772477367608692134718751757222453140598022345202130490329590944041590674469464680387376191796709544542543118903404245079568477386048346118818040496997886405542722999498432917293022144950784336008054291902159591799404796488098062760712095665281750219640151080179161848918865993483763903799389018933833369128897517668492596872941361501475372255280456037515697469635627362829439540450057391138295621043055259418130931284947178857983717969999405159315094890734820455914732467815171904166767044921257528522740452751103210493316977754393037096407660210566502823464231054247275381846823553822146183204419556826956859223371541208045208063898866269794831720725714581827213515472272234224015456497433821926459426326970313629280786022177540704763631603379622924538685801962600456073990558070005679493764075148884682682570441914856812687572882062092148361841861263967422985287410674309268716299472863849808377260816387656835209107258592636579530447011414985271215328788891957755586978535288501263748483918350865006783984878446371083999301307065606896921527101366665067478255836651324904005429878258397183959939596047526418672204020205892124426327485962763732111050492581995276570899995344399546890470710128552256506841623976258979337761191227398625250007384169809211076978445347720930397431953736390553607992253214775780157870121837994305766797094337894290185185214334831817234309308148556586008302184429063668411564639508941901696144632333345135798091805363610250791152969422339966187795907018698793262775325512882534516215450206367592248980095069136560955973218780558825180053209405846797882860686718433059183423329339862448416268825399497169533795748020860629241890875286036715106198011838196576677760002259755634269268169677675971052343738007079714471622766607168601016197926878319200311274198082368955333732628488897225801212125008779183816737549593988083802509883078848780018475341592281659355556306189573633474614189956240765976277728105229183332988676406694211044191366194801111015140926537982141463725242930172807533043599505400823022576277223047192637372103864188684277674939436408428030930689480706387452824779631107186713896395955590015872984102799325738536521059041812558454943380023340289344454558373499891187523065861240100014567045776465611786734163670456648162487107971730431461871572062755974771155507158913426366394208818506606552117847343586430717328026759094106997132129853425385226901626342146321638207738805814535376447024030419651543114594261419602638057028376959292056778589985425882396216129549922776697658474765563057340605527431015425485141461422571696140024642173925428328539828251938641548210424190010863257405185251365655195822840354225156585420050812341463905907098657354535686052031402540237923517982304956131062635842169019074374814438740121078383576068059434036539777731615704003297690812251441484814144607257674623553592194430008871259758043643601341457595439540509614842245610439384308668007367329307837044026540593574498931231656290179319996087995070611958751862999866665244917247757770307993747889057258552191100511950313772365960044162568196657754310495484838068984963510147119770793298261713362325814110891561364605425249287919758888974019519207420877514313877525854337095733121262602794197042126103667109934742031741785280422646425117782062039875056386508779556142443771893403165396727707153352836457484746106754934817637767353565027433925255920857989344167434993035645776646951006886496730414871582104286900582475423251727879189192097943513542058115058514495585504428278493119685973092858484808462914581034440622320668710846871465071230576556946744534002050258119068305809176744722132480161676312009444068329494618818100902594899979674585849871070842045343310313199859111201805875955970311509007493435495702908515503434783146610331014435607182774711288452484629273186903443849425450316199922575498896978997383057737534554468402665071587999028774539849628276775508835518129372814489814353217191126028013043696084880701845126675434299459813661172212492428734616103323406033734379519771824893557083044440516396169676665718615779628078036946360310539777377307953348743914914170999125018479425421341179393232197599955891303326539117131126777098023306793581837583427019131308492934846136427568416254131903725424988830505442369746869921974165915049613611334679807109572507527387466048660649061767151164089444745503161495019852104433590942681855426125511967489394770006151224388458082434282305945730892030332927477680471076954897134767852692050677970724873582460673915594707607680412428954856695511737119739160177984152266069379260257785347310953333041114448349217505677844716872612989038366426366749028284573448896436042942823116960343108715810276722287427122947935545975922440547587623717545764990060072662482604724566226416908529764654264924626903754689879758484029020462135744750463626016943711053118231442898805070497329705580915136859233752910562193711449281685721392797133198699613006592423981321819277387684176400370936935659628675734833736488014923816002859247836915836531051874368459672043830930600969996709914996262836082538657655984812112489211164065592251992150289654842404500500916052802055885224370890070040145839210518336675996490325016084538522666395666347823136872374946253127488285247053262869322442712483296378565277168315980352898380876780815371239325953715588621760060965490216913743267244855631910249045333245910179027914027595890346433235608459639807066270198477763035656904166570193152516968681310889320471685798294109917373468022996863246848222205311160745236938859962468214005771010351441980487715399276765547128886939681566034887480575722962739265396916838008560376573860546323747108926851777433424394188187832991217009602506173265670949366725572346034351450487596710191255796215234098026536955531741140542136842547955440994922082917404111668866088083409717187622516791469091957374526178874545976639561749424659782873013151297434433685669068932615390564307329286242470736031650857146783492250252076860094877252102170390862320703515696025932942593939184960766124378617320133517930312797123421551730324503363803592240726722721850715718044155237508049762102270792788866420121392421193487521036318063427008965368184050413906642326131718917609057502422971639769798733035556751499896340395443135815420056360384077707893456787165825467488443144570225830592948274269135197156758358489094744122848103560166828749419913316131013380294612887685749577362724931862441597468284546360999122576436191480612369394970228730251771280988746419230404859743583397943037111505178331912161046805467814913329597396391106908900858276549849905375710101728762221126567338160222942347161405193149223964363914651458469302453089843137398891751947727932544479362245633526613865395503392942514025353050173265402096747350973352509496723954688938711459096451512106643453198810095242976389009244558473765895355084487493201101664279486806020598419291059583770357354470750343845809917936382255587242859610878933453072583486624087395642723561299833382057221983817007358899765366245352496023131906740058545921038668818228061018509471724521880431576932018089596657693812312811874801326548674762660634746214499782821542287891736909246032727086191542307841119894136855590272262737210792898961922489865443564150952009019549705780864158295332636690395365475371286915723744306988784640312757919715316072542013703915803793677131107777517927667731842524404247859944196073711943537898056832267981477260861688572393836657162178103361369235118179061060487286464443677053997303569188374464868363756799963816675382721670014939881818692645808787265640924518610474100090149386015294545060163751869179436422885691154314222246998705812457660712159320063698465590501611150842886494627489677573823157292470177611241878999140980957306288720775108913852010876235313116576446049214728908679529172019012722550330699973037830490949909686811465344478597212186150308892846786047305044159420994061152677474733403771337579374842550512820192159146924339433587991634748591661307165489886352291807031965136512024136217916193348851363471901238946784759766849918567017311597318545688592112003945844028443729453860198703977168064133725946203185299263777460182719641216638485576258571698520850227471613964630572115595339601710504281088543409611802652147669850243277731584881801261880138580402690976019773440113617788143318613983892898468604390524306093261752071983670184262324844380116197224372853313746992751176755732698588179564734523373190141910276195665928293157298378420443848629506291522930952068380985506301388668283592130118487832819965360167690086841415473296498548804458337232492565734938971715386373427360522532780885645642676677645314075273792869983281059544728794317893197602121202257569198568721972429517604315813986622408165994183523645686741770765458060102412457409763140162503649154640954625706030780390676127796094651896390284202097230311955470235832157979660292456060164219175741157482060208872325735884322920787278674834473114560662866721615199172328439307724783964749370259260309411431851457094623791458148097036707334960605368792970050457757851568053087593559925266274723078914597879783787158005449843116132856700333197531520868555735748312891821992438565965129627187927772188845129319200046331102037818005373106555058645843179772016188813774382777644466083987325637297406624468372561081097828145534147051788875728601528683801728378533842162405535794628096119215817478876367858397836988967308956758133273633429416144471538863362334819659343919881946458085139705602762810500874790716595234183424043084210273674403908333300132690843734516859629120565408061927665716027094785930730858195215234868663969370608264327307204239467486333205593687000055357060363548951922081858033666827840921124732695097453233583463127259336783024206984554474773001819543670742629124053237057467169440060495077176043487118000458483806192894462148894785648002752683559387422202330616645041146407995450000157077617631259612245076175250213704025069786823761087259472171551496987231378948474967335991031269462810085243756590800676670705445828232574178198742255901921270571314852838043193725186061935170131286217039034090065988735758979041928238836770448394912963323244993946621324564941432504741825533777676650735932134496005235773745805877006440345288725952751053527402419887177889909171444117368362188181388701383020748553338507227292264384791461754336614348583548003464923009516621006917693843828636808589569104224918556086404137357034741405309057584466230755253016049030205216508149185142881178798816127161574369900817148435381328240460387110864789793194324148266120672359118810801702388103771499304965155120872709903738181256974928629891800380636752475433820621386741841694052961663720423424421729559346211474325461469046822835956474292699435183357113075017513431430093403564769010780323502651678141282147500640896468388737964991897883865151722131092689717538837829059547927087889002221951699220482010910002714315736063678706011905940802288209845133934572068887172292660682582284787646732648478165522383236831611287656535863129876355614852314361978225548171080282449196471107616353293182786410276280050084524243489586707447507771706875540655790361430701319944829331665526630654807259744234115156235055854180136661456256018753221954242625892507074809194374927486233914774059801160832554786325428488076666978216412003107863049945407873238219996424331661125708873833315508845551908450570321558997970980472071422702466459925298644400773541800350189100103025948477917407313419386400711150562876419733518314474404857777019243867718049918351918431323433046145382618440394246099559222507479910697462336737568783899952905843471295581752890203474542137639559951178946761869784126431718453361410518176621369370255458219191628284485567355718942455833963278049876668245646302059477355028971459760662197716450302664326456959624642083493742394807132569081183495549712841820375052404240676697073384463303575672809545455783471607391107991335424765084778692155727369535299769167292180580836598882373990811224841885310913426401152438217589991940382117770291170597674922036976844535661604368267195590468752477260540056517185876526208532918212773454761958449774310424772725298080245134690857231705178436875355439066223361624641780708518587606313866734994833937749465104291544035944796414196479010583921967064917287591836034011637463815442237412690840827723302625642873448899788637505310499197882964021040229566845561749348584322641403417511678134215120584096839176603955342632315309390083803158128605134908553001189395849539435474309000128841616797811047492368364497964398668710952348595987881594305317441564220047424847538616653104226878916923858102826301813295840942726746507469121557697833425292388452761307094266502872790562547451419106411747881671307978401096559023185264709235488057815099756538792945909664867820232980118650305543883552500385592442171485759520263884093159009053747361690953130642155508512505975246611115513972985487189637780485849352382383728922061769341925680103851906712526189220672005624661494381638990626027409053498971799471450579150062318579613271359692499088534358621582686091538531898576280711790126914059799863594286669003616450304879306048086812997271382410745017175025847825782648384338011861878617342331543183903100433412058365011047929368491615415541212562109900954203642652793097852269094466089105775375352266779323785134879652128167786064509742454361752870416480873771226124898767220006323851125444652983917392860932329344462591756585780078224402491883768643207708287887962349795757485613807519251541849493228541781785132913009864251008108626375019811994095848986563695009503771468464985761685822291628890667715006128231207804291118425668283997069637218991822554156203349739823162505973739902357989138474524977199854688807827658012690351711964032235454988103590427094022799140508209451860499680159505318907598940935818305361161470186367437224479057895965085961940667871298776864616649121044593295577896369457990904766449918521445007713187938298288537106272772957578881231273706324819867000226331459006934060550116025417640050612315504668037356423443026448691540001330558768669422536837236574095188867620393451748206631122724917485580524591053558616152131349340828571077827433385987901908683872879519092775459163610236252225393027640399738060564382840913355749924528290576036812254091475711786142301342201975099697111382105778037718335002109808390886803136167071228328223348544792882523627279913460370597948753302277411098148311737233210196490825526129283615042405969243533888130731987727268752119843408987214777280571484529667680762083098488907477544342599355140172679331144681756319118118593975791176199722671863750304279066689567545976529919326001234160711765196794659379576780511655685705858470749476462283871521011075711132751165394942023668797638438838500754883027254143802453044580098438215417761392144338158255763386998463451224484230971192029789668753131215751990880233365858686955981720454275724210690977193075419931860659729221837735423840041689822585428504336371321227254450783578504534415668305274757176038538829784303257334569730946834113811520936154268013519367021084672953334667869013812273569247676966592708723330178524258254069551191834736921406175574155758414066260220548265045464898933493446943785890251072342797707278167585622312058984793743837791874374659170599489431627411732770434637077838636617591478524570836633359763399328867817841211235270927440512082438142673457016372203969981091145747287791658326434158888933549700233526124161524571842030075835088998296926142286321267944021580080589069974436270238843008792494540228544536696198297563671426006485415220895952880373999096150170921292488397935298279914255799220210097310479397274869522503487114441147429320175793122834799023512880963813230288600781634342559001536198952561330004475585922295569025066386747242447774798071625116788208726205446084177763303697943860301462566858929773410290412482201417903528208640604833526914922537925491812874222226123660238689073664170357131774358512465444483024221416852850175210119033098540521000579541176848646536353832174996168638369961216691197804592562492399836124582045306475178440530417972088318674185095933308450879942258807338389784937279649930674907035673568957768177623171040357007697142942372914388533560293588436558033890727965744730015237764460514377044738635802263022624831600518158461286692561418707572811733913597703621047629916498568117289203098038462480599575799128692236201783960904422041988442461270460615131458716965121930968498849300922485765981791573352200577517189158777745713761924897414502076766295020998948952809188346936626554492311010963820022857744180170440377461410675094476330259672153077372644432751901257835213184291431990994884359685943533372723635858067986294480726739139579687962213157722856723989584979676023766450995729402679983747114385522952646723563378323025428462927776270078777742022199693957925125708863548465783046975849740758654117265175387540472850921266046666881039734494874198180921033774758858318637799521331887076205702337689331325430257163807562840158518802349666559834264716964548189832076280432611301670836222515380214586719675461201265851312629477959475646938702580136299615569171965930793704078765753141776861689056924551262649330715881570809248176659918973193027588165771973043093217831478818579082500174302746279858207452886239752499823218422302595601401251163655963766341051436837752414629865732337921627799965050059328815502331268932887968011626399931996318200730471813435717404275986044930137485308133516731998162488557623265832680925155616138575905870464670809750394470745838475175122484165266256945733681701268678452947547623302242678718048742516051593088679984225305830462383823296312164776384635168083837157035357433205696817988689153124031803326140176248032050078758549187695263419411192483199085170354391695388937157918226390765943792340725151501569756208247392348655771960586343246771386736127033298066607745547095717442337416249319774936346163739632130947254489443443037301022003336360990292972043183852682154102385428249543280856344670238983298356708160130112959009588847506129864443503781918225002693419754698300484355959172445236113843706234734052491867332937370258455374593946562081082916212013425020535364349732683633930892505884732113404903647522438719553556910959178757226078991893796623624107020777219952810548726392199622818630675282561478963466120777184789654818708356377395101976858613714750159484005261420014679762950551676753304874048847311909819190871891254370566314735166846869554987170106872857838869087543914432992603296090939652649013857250022597737678677831420389686652962203537994591900378931691803007759617756954274505088099652779172000894433854857393137011759968705290161901848861232812949804423413613757691774557597965457765416013366919211418045394092083140057862066534679930850096009112629659425659091081892220371476704440323952688690067016053232073414600460624364698670864538149402961973668746583316162269591554286580600579759127302136118538381547393149225167100752581252670030783448266594599449944170683298422182676314731851166579001034475114741005119720589400438797845275407696062560840840020292072822938947804340483531129645773443091481989764566951422997405395265141632282389104235426586563591610348086735961793325151928175446024244786679271572522510662327652305492353109768339214538921263616941528877208573739605797498062710762026918972860140610035082281222000004556985580491532817909399658433225896015032426948501032039591286727634267595403833685064675739890593211427910673289341120282342610265950862576606067339526780629853182031303754937603431640081291816547093932585015162815906580767519906426816769967690773324992845515246755562109969328095723601814328603099646223162351186921998133822962230613863581446979429489074926026332217759212989798658298291292998267847357642804449171204629325347791760672742056774983523223505233539703334416188542989717019070265934338175041181098627535886142824438732840203206737368269559388004881864044448703151520742150581729309633468543942441967696245557313749450441841850475617811323537171754854074838393918485835673383181496257525145400877932256292442709179309999717091509334197803257005510945772047336179257805436650872138133720870558842245454709744683681901618412148770680533396090826606914845433238744773260559487318036882495523250805034690563540314405727256084316143683005440988897465952070567683828586967504453810640651570293773881877633152030721969207910019051118226637644375795422849303723407961917121447071357312259035855144521413666625257562849426729643077039585812478813912848714924659482966540887323675123431825604833564047229905966102907632676728688842851314594883149199365394453138095743552516895741774678003858057961121033823035310622307373312810955124831131975843072966487389850558941630298721893637066649290532151544289700176488083868037665105519107743781783048501370844882198083401407610938858062720847117874658224280950994360601393573527420975700437287403778063807429829238628876639596975819388954314965281145559784470220615575060122536548177135864620647865246704131049405378942220714012477618915241829344268029004317678641242918662572459968695001905889766534502554764021289750825338432959639178228984069289323213271067731483874273561716715392749520827146650003254616672706760805585015212945652069671247287719511464891323910169298212911499920946472744960942272811458312854121905047084188510169378157309467320772359596198032134624433102090316871517484311673190041603584695591735188451583849990881054825463010916872687264374872003754578770593052754181364361772202349481857788419244928209913674100492459443619598179470148993216033345504990512227425570103983729503000285676578405570445313477663606877715705048641207089647849766634065937462436016857817868534306219904283209079195749073922628243997199074053437364800809684021867982483006908987222734969975498978933803958114857778948467609007583829336199998206933791806731153103992228292247207279123316065861532047498106109741947450245383395752633578614880207482917566959351878543730265814179489415015048521793365337227205680910154936685909109469959452641444901018572471191545850097001278369969764005763813511508731318585954811987075523918603518421082360185976668428995357944163235574993296938772767439170078630143464489871444484343629623099594714355730580682347849903797272984565142519434976871334850228356181423503052551736628784265259439787960868742364543683381532637091733760566290832518519317711041822530418368395926611134278459305179746415050966041298768739729247150262267735638553578637741966765774207527404189062665121524638821138417621881533822414711545616098437115558783041315946360010042621516970786140628780012320611399760826771859624017798441420151671715815019193352904863603122421910378179577339791156838876305973852108556853652628942904177177554122002937857731865554775525590430733701352677377460879338375092742409895217741529945794340726671511243484426632339418608332175026342259805203306779580365128413691124548635433912077633235091023460738327301768659091001641898966911500792198798005730011759427040263128172207610365115942437765398039253385880579914737926406239398961930916715523116284376312858861237377243313976319195176581976486676442613672413890126993883959365158061885939217972292422735401819193184309822105402138014981456853850380994175197775033895224162022885332206583896881605087703609675227518117633409874719180969957613718121680320517194931740472214899079194311374009273173728394300630592216911540675287120537575721476425352862000918698812329944586734302311791160265014231065874685788418902993925480210208797325953264736033553888599057720699519549683153239778457705052375934754294953179763086142867151652969140170642012413937805987837357645953053027362132458451690608081138325421232815963918622887428228251005789134798253586146213726600625276982374334650127336915450310306381411866045385625836550681725782945968941632985843345156524288541522722761060667606955043418100075397663013876475750435537776813354737753828568496143076837558997881111870656058262331437642013093121157427054975851865237581583684770857922665003668687641075453102780878920147436448526055031293377305969103000486971748076447871162089074432730424973923710548257762489959567560851042837032660030947436113315585078527041531763163828615217755825177594236355516035796209250294116027575873924538023521429891859241839524059454406286515046727448171021421769807376237283334719195358610727710425080195518221188928075518497980491162462290037859541552632753802484883784659935951100185829890068822799835961245608348036479440399371410765548002405990369793344408876379596389706683731783648748000597038720298407741447096617371097191367369458004312202885066381767429862266765513991267284782894184754404673437048119462117527438957622826096485541214915125551220193274318333255653139105665949516182402339334677493953043583528572099542591266491165563022849783109283406281899601042211364182208910988654755321238724439028349053264031627255038631588858998456144586154298344847083426608186691422355197840674771849154802989433173741749447968521865970571307473463676478645499263485193287485345732977846357164223226035136862421555664637954532197015073195652580992290156302559959702132838479710655716364504733526290869351112226019887492656376417988924533251145404043043332736783107581090778928367951839464113493299678934862404948980965525917616147188547227957314130438570806480785663818318043223495920759495081823507360169442361992749625460426894665601318737276121930702201053429308635833156054695581771806795426153796058534044530894881045497147193949736857239654435378522233021532539719044396725036869164909723414238931499890916189116780429510346543429595549556264454279825746001295736993804326985216554243427818047500731515939766534802040442260672816101322467503982724655095857744327251519063069125908323660599525132255807881839366854179447902818667247152650359636536274346203412803863185305783096058199058505371574922692626267208963624947191312126750954544830685931973916241996216559723295699729299942343496597204031651181748053279031740004673929791367399682204997454015437303093240360848152435694061056428285733308969247671564114339164776097536373181962188756967587814557607400117900166987277996534889683755186246575147890038404153412135578156811954831485850285846350656269129408533665047000609249465888776453718491614887557259891858258504433031192480435992440746724828959528383903931117009426690427101367145135073925666594497526435135457119144524313679306598967337397036923996110742696268566642519347573107388220928040475073124581274325329156832420590353319750612362311817833791481067199108164110966641530169547587784363577189795300986320350022122354718363650170032141687547905650043960744782185521560401961520089672299707560719516091446861133281463199173124096220483173712210170517559393205332683462989737348186680989163212441604716149738051986925703399230827089522081741290167957185416416536550125947652368014830832017577484696375340076411699108523868868350747019503942710928845074740742066222361556972762993040825491018086860510313607194177053754801528994644773243181054723535610409770587048192558344770153626782834855383658874149819552106790157750915257070619055905487582943492591024760310404353457087379119655278310754059368481357867679762658117258481446342463202168788660328936507991785164207092709555086869303799852401089372759691605023138855311669845240839358882763408529971984870286565372956010071954644529900962097639205679895527339155851580762766180336830497501687604833947888341003525668652775456047582214707174185080685753323012956707008918956755801945219145096155843423075174835737803672450397973104544358730068308235364414951216713105774592791692503607749932174564539533414610243412321858724111055922095010871392221429035881505327540145500065005234053509881579065352429386769235699355237693020942777526727646770036668435251354015531851758489802982288981659366920011972032443089663428376897656349878744231382529250103786660763595007670403110854697377400751108648873884162236745043824971750490918924869124025053272397444241326499118128612755634318282413393189514004373696093506395354050479620569799600863082990692335843998055736129928869081062426491456856199899938405259799147675554289673512656586366038654117349367087537911365283834626236679695733392581385781933015387066947793619150373955496140068909081561575252866618037778137686083165179145895935808898442689427829880967507612957506358911660248548900717630624157427045024978920356728054470531066902257305337219824122009099367946350640675057259616770028300808514071389611337849502859634205063049422458947727863847573029223782966102934463124234695687249044193760391914658059466581302312102644808114884711990877847574405321849958368688335634159385165255640506310850300994706161003016823930709180845929953979015142225680051616346331367271403998843886609682974301537633251411116561278182123105137879845772248560168456595485188496177296762971910468044765308918412127222684662003604169614545571810509225039655248164321584358834285386581162913946582444478228970521026789328561014763977776812513011793892279962138025549418176946024306560879977241547619369849353439069754138186139329596908575626819673605416733563996093293093056275516898554410395871979949868299096528573769026021551913750935468123831677125584662482263317427965663132341420911269362349730788083041793046920420772609867391300623918607961618494555800027233644308663419475254224959803116991577731061358181997365040442660585100455843650273987472665186414740468296280251552123023608725524810562992756630582409731103432904549212272037249358682204306596128122704969288522864246795626860681418478826873100067093942756946788835058840536206700195668242686253169536819829146109474458954478710871638013464308294836278218018662742469693095123847515607238170636122176078232204921676106053851963350680778763310415229737802659794262863872181739096071637148591159786377484279746367065413995058241788284114709219425430324750665918784577075507351973067388050369471462730544281328793778635451649769819104068196489715779568713437607880959127931331377797716658687442586205810887999900527723005379050879073931326932327317196810697783379207518333991234931069664465214879990775141567522082005429624972070823867251613961467107245341988518969693506068130413134074046197848716147706159597139841478409630550918135628223102527213854068442088262047335853494123290275048537092610283969892086789549391665555349580450815951863934745859869855787803368137832242521624838048013721205755731500040413293062976294039847012358951756356345320346328190559320106971921886727477931082555007074926848359587097638318947600437039937059955023703213493209354421159315693226375968059227213701656774525904626587258550002153398215496050930210975209998323033438739416774832627718138580909207716715503870506051088837131031213581047061579078240355388218577557611683513768236014484798162752375447933614230028027805229836003809780671171032022892473113210493482284226506505732091088548552037828808862703238275455563174813851066637098657027447436177181592810199351876558115650134743202057097896413807041959991473510303950851868589603902754442304273433234100576404010341817755177723230078334012057778741037487779640032091317713201450743857002265043281375155847286248618286972071008602780543277428811139763744552998450488286325291524771097264665965513475223413722272282062767467209343239469152428363781787172580103267511127573307531904769706514441979142610022825969243316111697229462344061685581078831234414014192856241935794953428892507090670475522063247372716917389696522955507548988157087470879891861488496677225615983142950986000514199351289855024161953157941295463251372630454546451714650184405196954636697363288086057268431304444496271759103445374474797754649730096872013655049061381490149438299580975916287362539510982582306652248259027076585989673578713379795128275382138382000434589876839360628604556424692434356463961202589780764229009823992241212812907216849813952918131401447863757148935744360771890274370824279990311881707875267340165743719618005758994878608908946262305991051646901991397872234664687488408626700109164343640380141225617417769700643762275311994388908055996425924131238757615000938505963093286755296472258805267541975358615673580851026396859146856512160226242018228410042791360027766148701697325659218779127298455589174913365419360170271589048522723598397119916755117243082183169240601682037115653355330493164172605232966961646676549873782357008614373813384023499541769719218528827816656399061665262514085914130106016889928049706783161868443855356280554493293457822877730212143573007243037073477589034976599031211485701346200016335546020609055493898382346363558306220127522563890001914223324556826570428381360370685237805139049952511490878041266070809862117946663496487205008564187735156101753025503977026869644103124869110201277301669466726276417264942920433848714378724920317851544457712494913079403995420474265224231216940607022724773676264863818486741884600502547703551837711922310436427087881242386631904306818135536110854720937882507998832248392276868037977039127839117467816824891146941669313207725150726783895789013390106539144112952903326460799145255130130585562078835723453014683914108373253672998679353072394171037947175216211976827778656314089349169876708156651633952496007689523457608034204710417206906062320811905837913363516699849882394457646976806453323312677046429192490474366239668406586727946990788261391234249190975509639800658073218495712303215366469445867278128505068295589446859832565148886635031167969951700953742194375591256439391551964329145582630981651515726199036827373367780709258439858070187213058233755384272179294639020747908072078172178305063203952692068531632125541191403327012195652351223286825839521994603918616382661965218760256446178553704171539904495347543330744411330465833894648039032568304436235049801842560664967722769639388002532613905955990606670994657119786493792418999077352226333061083252684349207112507953957136521999979889441800140684589849211310455970621910931758972170961002273059967288290043245465559549006202515876530578154105214912617773341333500989178678328945825142931405491696987479185901476650030884993175233875163505908076117396384989697756641065723647718488502994141396212589343774912248920259821961184680192018149236218407800497907950679841389595279309909565249301716839878987454464302405485229575552556323043965609545819182206487494245918452837134186607875396622847826120870317613819898282164872543614650038640143909306671704855195853174214852167614077487262184576305868431837364540975245923813489143396253264487172853367171873708595125997233470979851193245898439980977053847109625833444308025110025874985664240094329611246969247672461531234667581536208471588972520690993908070771167647820642134738116624858639146829308997783897922713572368067169672774069697783211541404311990978158454565779435983375942819202234627138162269495686113655693448058227217684614528598317713510592413961821569843158886146799857134318633215509505541286148350527260367016015480287175653029919984763201971897566629291527320700638562021064502968461859520078091907618478668509428089240761531936818005322124977123936834827049260916402368434296955945052708654746914262719861454243406813308369221240813966131192794469983365991866378743539034747458086607111223664239022642848362675235442431982172024221744922934899386364740021754969351993429947987039290999454440544212605523859054539068433685176869676292753197323914001309731360566885309920576577204500381519193339774895553514212615068491776562406042908679564425711601144205186965858574690996259671510106918320951453092525402330665595782713214057758514462893114067601117629700130304555903258822524870405717486230609231557530801450590939756176108676037081219055597730507146299196779840577256146502969631304108588172070966644337990154329290903079071733641972440449223535672894585497666625562548206747058310910265985047696225335210827975501968096297732464627416322415571074416612842345654673432052413069369282362797839995414823434646420957250240535967249134399690616921603628550194125928760225769859523934967340491406938042085031244859677873751986055004201009721988132211167569485368634954000407299539265548953761794575654443319366373991247907534642845575434952814377500457462495744323783327955085080223028568790110430089691121795088585272487304978722016127218848130507509341018895163905866442651361208571446623963659297243206893426585310572982330887604918809985129423402391234700119283881543883264640411579815299099925269027126091184953613203721416227042754501180249624651218946473289586023653392841251824218161793445260476943787925601656568053045032174858654388284891133810593774401887498171524471444235216943512989948936456094615617809525190019350976268123943043493123569437606029263502988031809134287487936368615975328032686547739691149347873419577240006997790458100709577207511809571335100104210864032342090216091161420052088482575723846570584060328763282951989411127876368321399824745225493947085710480334395564983403943516748310407800958724418411600182297987382468928797379412830496066268384914667910748567591841525786578949336179386538659862170957031072900123383951103819430252709720903988850374166896638716923345577195332714676971891985363800007329138129435846823253876410748873068784441288536452467953801409849419371240374704923830282337983201440464001264204999582902761408997771037746974215039677664290258526702797392963825082040701708688656647849285178820247712148949006593413875900375153714153192650628850172405039606503311884620331353632398237486385708374337202719052898133983802837657370360176695749412794757940704796800581943315436885716495115044291409655819363314208049074580505571987596277891586748512140679058758252713148497902616755382924917073035701296863677924930472130526833840940507179878878113780929416262414748898196650430715330399415894880813603065318441895269814974973908589807483952767710809164867864405775912659444216757939821762222415566913860454947173562263650087198312969968484530202348092458023986545952528332876897620367885556822636215025538604209645015074193409754883770213902156569332722070473073619426567960669782398275278223467703308008084219691492967857608089836353053673111627925532369047243589440376348638033053435997179928139804001865597527259500054793619553899266407248197873582906164799005310359544149108668859343780085458563792645408911959109877512768472089552391354111546643550605393470945111243458839738276771921361816854240776794557059005446020413898540718405273802537418795236009334292588899081409337056667975557465268624978952388708910001507292690844373960844511273300867936254089055820450584472268385830681145046914007573874218337403614861399577594582809947207581862360657937629502207804529653940943226726826234009175265619869689484777040035836510811241909140781824705010209058604187450714507560350539847953999334531489638346367621381518337473202600450259314084280172782337955603486408955116142870941632636334937389741595932862377511937114193136534995632700233753319812371523294670029288289753965482088582594379954185771835533100025217570640381363760039877392318014817195081026972377183467421162362135761920682898416711320106317676703318862908807553346632691761560502509651930920658670969593987121891338604854367037961816203695227447889109423986260794943644293128115825946715089467500148690033670514945517733147373528907159658130006557761548360074933876590663409448186129614710488703722651709115622646116553731295683006567015016469070279034400375934512676468062357810078756708822609910284665947359626803150524040153799367926380588306508283031863727037657665379177365829032814274092884315613343557070755638643427159864363426415638048690495802802698928780884442641724579735842744971346597795449624827222190611364131519573097243442750813417990993491795863965037844207320614202849139627261472077584828725469698468883232228935996983753354254639139488153211557166406086298122933051485949389668415238628019477053134925892875676774365872999930736647847886809948297642561101966403955531608710804652587333892242138530959255628135459708229153404331340231030854645473160004285733340054791449641687804071940659494690245219110190492760881567368625028372095505701330700129494062968852362907305443885940811914770628464752148544462121166761191206905492453006942650622716909776110440041806883042169793296084122198882945069359372159690608392369046659636280708608994240216478865397933145457215047538833704392279924225501287714744885494871913710744651252528209091565075247929371731205542649517417046807128346860635742954279776603117346877994519645665958430751961381848601783200457406542459104338507471105273391339690671143390783128032317249751870966902933673319116290921151715841605271942384557994839923613400696376718590702126933507296861194927890877594281684801891725214671354422157486235875237878785072815923187411963025342504013868797564944011019032837116750504771450187126518006438950954564602206989467260149009125992826045726336987075138542869019572977934949055891946363977898603766088505423461871350686873248616446788996397214150754245805201165412713289245039587951397114928500917557675718679816143148870551347162106421416664792717035213915665922528229672416323616797498430171268972226622905471676595772451805551235447449341894626456359734770242109569123508582689499964045400353012444166065890057160347126824931062996602595911108309336313017286540972385186018735065187984565845035148024144882953575051590272978987766662634188560005823232935686823466552767716602522125568767009889890335857659963423223270587187508771253053841388905521666525610613748142623881654137309923638305346534389993619945339848066341499308856467306457117586758945843105851009415350892463580034466045492686486251190687376373563518135943272274595459699086099706709240812762078048952606782895410405349992581196599636722409295087648614902647921020375402436265865596894618370835211250255888281116576074482891478662932654632735207004606988689924687434539823537288207947982498238153763136297681795985405421383251605743540886580467052425680800583567283842302558473469588319064947528541430630730412597675298792960938245993104955762377282701719373243800529627279656297625683637860290407205857227928730921491084839772043783697781985459843689271327763547003795773615155919026595615041425109967080159554676696598522982258320495130637133933544388537017067063357140654459132101464457447748215290636782255073230032147982148910115628356992336317485882044474698881056474859217860861028102976699280538219903534352236100595801785232514874893830695065857546215922536480491220106486922205186650888656560981018768688271197767535838351022371980637573028160562855621095662308147734625703298769392366153751033460435130341894603368277366642862644137194550447614027263880881392390384112144074979509341803413941698401035376968596237606946395795877431999349912245940480358916903560639250560211314929738999540986743003863252808841558013131155615578117745492178855262207147514090999318093948864083265372777330845950262157286201665688277625912828833854317042694226292076216508760754839246238960313159208019226535208560802118833530847628930852411118953477682252047611622793449364691095956560935243192860536831364459814845622200335615861597611907801032072349705252082648896186820090021358736119293778108228566930192303667228307224947595977420596200607624804349644135498994387617763108721132783008899739020971379636440515227388218556346403535812213591207579639754053711574916790081063520875574731986875385505860179914001763348772387017723855737968174722608052846627126395475812379158975953873849307597600259026715743393956039890155705250130880257360641064377609979800277639230112725929251701567446416427217988688780658402179323663826120881533085241547007913055111308465414515711112835437184789175015028630199055821219898744612995037257038155082260549960249893704835871196958329237949619271780651123464732805645411003679823612506234247407201902935990461216189343912906778320783893545276777729126810896748130594386515480806046625387338660214909791562609972794938387529074615434073095123063600016392239939320734096041041772509369711063725892932474331834379606228907325699939668635265463454502003151010446717206213971637423265179893896041421672077009707244779266806567198639411894947106267219939717763663033816451536477179587246315716764847240112544346750522653339767940639412403335636309692078172744824731343235755155904226514783248420269064064857204674871919549250566460551675981367064347384278543615950545310861017210858832701760077365225532937318683555911100061532037560142193413720305158199772953154199925650329058300753069787297505199660515123694607936741427806697288307024045281057143164855144695706823095303107864101641711749756647352345006935174401876773645645293073993029089880859269147738545093217402878243449550454016086891433597231162652968779364061513677171297699661905346179684972669218142454003630580753610481988617071114592319530509486019802338041506321599195983271911143899825049799531272216648753190250243460887969062296143020018749047447717397334709389181655646502338117965482164299450175252888608024075013860158804223882231625198534203540659448896983575432825076482892701147950692937313194508481253756641973885550857914805676345987694612026458927706588967371045871833802168200984630835117614478301067252690167789279745637166294676575086565455749577093394771224022713658546962851649778167707767002477897727152528600349640639152735655308134247633826623680338704288717867140153740805331413007435664073364016139213780938317141374122083902444329276868408197523413050322084768784850891747095568049248628856215630738358964273352711973437884497962856883702021329617177162508726824583961525371733571104600777208726020356941163910178892272764394129467334902840167610581535523687927402833551813171151817392873481060293606598627626959112467024590974407979294370005474185127563772863209555484624790518690010154227216734343903689577098966535189583770908773701940051041449061694951490265741569813537940842276250034085634463189306171118218601408342421449283408556822420445907789655164093204777753041840317040911210672863934882343980638433231958556818988085082865764408409412738100525750997669107972875967810527126467075100014147320525165464283199887636893219704507208795027845993242034988456426724852762347778423378081157932371343173049946531125550084973342742078873626374335832699656104512900640375750054050532086216321760747420549609140294608816251090171413048890415423704813716385567380357606869623028367040639643314280793309976777035490654056235975704859191397614186789822930779924740843897563941298315470246299412295444522533224888413414558080469763845791348458448199055562917547310733901961818539067555959109198354892917559377137447571922660539154732197993537184970233806508197472575261137598227448287407991138373485413915533724218476807927295157927968813070785091796618557411204768331844329269471403981654398359456528983928574877102246727133710796101491165835883175363679070706773742350700862607437209654374609088593790420546389616727669161048020285646689479402567583922293010932665500361274071614569208758976066840184604719564357999716999501085962819069376219169753063229401697287321521224065643256405718646823754870837432815391513237806356616334230938922295452458820263205523144612492879766858193476323895326843076992848469849750783112435504860584901232336866685946759306468319471032811211322044300368991387386505628378238936844149535102616261381925687506402179430554209351459044595379383855412110608365485872191305104405489579032407083994767180056343995117564388576181928081034137384268400475491992203147026889530277514533471261250068177983153317272393377505096474078242011403691263957597925722646298309543222933259353728003089027484271378698922106281914758828810407610815009073456607542052993150163983788905853588474171771456183015270018354940364018007205974884362771967633668950416197328867462768340772429557265270197986631187555370006712264847771572040726267181322083972662417992226828330994568691795854569495365956319890358909635391985533032581365573154366793697246948303875171618301037926571384420180243008394098396442916235589779501044498392335062307498133114847180779355545504899878510918245955825949263442822983828792572560981076350327247795509444770230797129780594811312581579178737383552863118417996707957916281900452652531326829075018586868141064092827472285020025880709415063526736483706963581649656638159470695850340041037132959586463746131591865060933533237608077851844282411604390344686733594234258564506822727372038747552737239511420812907721860126295150464162151706740971379573755343052291971270214297920937172790880775776992002071028008704611826656243128237492834384941628291760150946669929543617283004464870755388329137756461572521670114716259081486106324066449005462455490779085177875469877409126572960969649489961895423774605801595358357906970158103262278712182296165681423861912070447077101138755387847114096515030082962511736569446418305548483746702167621464030172342663317613761756036412239293213467869696430184867690106758398420165803670814627266382564460091538526062641590616408019872014660587754526455443143415409294182142745083698241003679404343508523509682172656629147074468049298203446808393136542133167895448416025449632338676175059154941393035941324318764657845360563872809442961316127862718400162215791575075354634993680500534114631228822805186388434502873087606527879133209273324968631008772116286385061293225199983663133569361195367922859885125709833039537658151259734484018252459313645921638005345759003018106296388807718347637615053184417150685573073662860950955022186787060606325850728779222918948745986644843910811391451112875497409868116924004129911300443660118245366061001155220806108897188952430374906605296434147351058075492638942434299761535390505771542950355416997538255469773722502991513651437537779794501932042572052839574412698300887965114461617194892404817699402738262332336286487146658174396649279798959881790764482964818265055515150474955385708750273323746346000301564368232405295978921143726668732881764500125084358629673452325239318477865835027730921676065861430991976240667777856278770362393905776791907082956223903243111673883453271477875770740867673624773560214699861460036909494071296390793088469278910840912567467952642220476086208299285876984550903961173295235887831771643105029737694463129044101080126624808758460711970538679832181942705008993019523477338339603248086495719655738455357425003730625846983521541714928751817245622400550491037004434190077004412387087194154413528164148166591128270675953787368710383017954026738292135629155990400553601340757326135187731698976990883317514567259213110254827652069446038107274758310056883787499142691553578665960909170498928310927797879602821422044486693188004653850800848317187017255433397991050582291835262929935021414836003620512895447100921989782045841201024745615416666201302204668227023321273112289148483683972803879736311932582042312246093419166913939641145170126732805570760480625983171284178565803495032007251808812858729716878221934029706455679300617677574598097278210848679558581383233770610650856047861718341351218882261063641441976148984539383489265180920179322093275523705590403607993836457458960821773075797606196561265495291186405155503919720875044659093851299124485770725194978001224012145127581496249391792961071766067696175128596027213640354129672063541650072426007766379002470257203590840899462253087081333881573163935021688804468106472397962467973931924870898526219281659742513587009485561912465825726604968786933238332675767181261613080021571304366946677328458390956488946349095562677466286201821990259477822538158700471906354727358756529525712959654339470877368896894522589033060006032063659041881486016938882885380582761470903134764201373679176556700028438897971111644211190661794168530980105785365256881641381524845349785649551251969077977477106972449553110034643707972016496642730632855011184481162675007198838252812573994371936460527080902759022817124696924015189179911230027913031060473438586784636923681787478040588624050910819609380502270117890592714485089449457507055160876517573810244313731277168976186824007597637350243597226258738319061266355031804407204938229457863887333993122606475222057726864364815245383490269603758722935867630957899980363837251380887532190360378747690457275551108952057161333774366549241339903317152833872347722900437500973753691138996989040548182687298557705414951757743251510631797732875506646484801394804922451059882124890594884138606040466093291463739110164244882388874196444554504857838810391041642031075391664149293603030546369494770885582049722545494162114951130010329131084684128291480132431664444755493602236848768876236415599073808506078082751566130016115902097235739466689243146595171768000795358011490970636442647436972958820335436033125826332957132822329080225943401785456408067221222495002407638941726613708645392297099028516989542430972424851725343017336622624425722311032111986731177370082081460212083484291051809094624693990230130277471368721313630070490665292174057561032257632424467095709576742792239548220094496912733326300947919925306383219523642949136385526085947727640551246328015858109787098344900766361617216218686645906872901756803012747705375167279606428618939530331183982580147461026258406960365441716264692154497359327684035856461219192486908287626149745189580082451832250147199985527714472436437681258503156720178160991930781772305108413220141297947008322513729063653468449369497498977181286212485706129443957754584279632959046428389531086644457729280008702773333725822690185969164957032629922724447209989266202189026917815048799820895256664262909289137892753966736377514614223940071654949009812159294790128336986365686906403361743150862879586731795565585555946231212126428222359083139134708109101258146808976038485861491260913243723004399411130856437885450314314975845004613762050652468897229469765798588722815474969904817086593979463096959495081465516785672133888164396179638702851926521842893971221194911776529688931139101533250513618128879608630577026181292294529098446001022769750921795234392914029982790065102163689489442104047388663209704970153870133649038125972334134556905442564331752290148620434851516642287249675462522530290539498144306679424126204890624016573077968855661928602837387650874286588413522929859983158500530224653643114396941629297498339953059296185420576478304602737170080662463313138149022626504583589003982017756459494637746423957721757175333588919293280313654013334734708443560738322332992546147716814628836047537249472052336648455963063460534857970652099095821773036136045932509926990713707739472773117190225272323196801027606130850074824540161157385061614606103527892766925602005257833642647441993326340306902111080850905732775538638686771667814960731325283663098193630536377772629188925476424438313118268921836251894441974548073806312990575541094160304176037031279583982276471969419195003325685229924786191945389659682908408557705973674470047362266647530401834175289388110525375430011217984169520384772501092406114190179883502593714457084734015596336871827990527538755241958318566740059613705574843146536880359316943578282927053332197534521984520224636937051821080417961504294233397327842130295130774433301434804676652176410917233424604807733287378871016836242715134154292935577376461567139882183979852880231968832196927721677506840622409597740857264065376931915499880066887241121707689671285024546480861370444017211512393837515762602000438230217162879112249628302392867767017892729256442727354142504465887581664050092737544773097886471824821574160172244429232879496513706756213797334390979177276384546460221198144958594417368124803711558704973163337807166965666040722829971621084499121736080803067956786249664830448619636615936716776214253635181691346819989532912925841532929784575457261061351563449043246144438895182786933944640238366488191954150796400554491448292181006711920450346354670916730136596327395472301513530576194560794260437090799112400439157316983897894275586501623658692067940573238036602895927080043092239513452737486143249562017318373957288417991456333777331931375932694252047616791620107134841599512096666711399988082387208359200537967274461619663589238631789416815893699808217509174723720921546755971238250143411213800895089260902316482505898135450978316310823789615076208535413687300654138485858612442027698601380508604533981458548919741238046915351916700868539783861301523173622393951939507399044358765786909760777885552233713363924854209774536636939316512799084494771203228807980796524111927518207910534860553480339382788503100815949933090669869523265580712198713399008850599138520515971846500464847793291231171720289761486684647178485535245165568700166578300878884340172370432629083109663458105595795602039551610728433629487462081822621342173090114805895037997662700311680855659601884317763409524070035874323570905691623623070014218547804461032553642033037091552126735842747350332974249018640103478628357984475743783565371468048533684549037983859119850267246832145018735908909838992039342377841921851897221884925920339463064460259864938464208897044846731373430179304383418811211339419596208934332006854131640734087501384766878192404590226482267818618241050618027888962769517337381353903707372997495431938233673183403870685935582826994924062195651563740854483812969220984311664545982187350322746706258206560713314520900592766490718168431572604200831583503394581083056611847954066792683579451691290669165812079380441147536821810192774311937549118564365357825025375377876265974301647753287580669143082415364132330646074257871235431258923844829621030756175032287786967100601187517339069663668105668630623122513971155125791739269516051868674207822103024136230654641519507746234917406578400969225680634433928064563526997815063604575001748868151702855260899632081418740855448870052548573035918772851149874084765105741167481133332139840094479194002290118235978451901907535288180013683068140738722923180456577104407586935683739838145786097714723651073148329838287460912908254773944876489503319131295282449024347694229562351267574158892640635887155055374983151702984490917059601520735738184288556885736142685795179171048583245348592688381662806057700619444385925506246181304240176963855316473174260463633910574282968775738909821459438489671253050974806716476476667031902373270898582493212636612132487913797634121686826499572746551744631786435447418685613270425254414413138095880017472626978891256465434221714543525273500099859357142919304582802644206551306795091692505245614246819870135045269632446575876403970980012061249665982258838056474603443301252928452316779703039329439805438270943583124374653822714315945568826897020441273707989326600070819406430746650107128635580315254653582305920872191291904876985566413167731025666426671057060904309174820311649633620118237595334550364798914428747901368837329884884296081617874269592855906838282274581944609211825421202355328559374085452426970963297524227461889303797130362427826230745068884993179818040247760321157476503997130570374743052443338986708042338499340449119511171302062939380064915629449489889027022945578854591858008763033231200738087177534405265812487147617958905345828220563184047215607738192954088375307552140654638377184928875341230488447583549456565471579223718462985704550869948430060540438687226077782313114948439323324726734496534751049821958807394508434331085011027069246934645231682270200416690117631861152396157197888188619377867535233973447647744792930418697721950370315514655202065903648001186665259653701739451440715863407205129968303606312183339423850678620553807187925513859391507743526116047570188577411747165289092255812560246428965792358816118679102562297758438441128103284941797519697250080344509979764176807445089805260385875267611798246950112724006088195606710337087493828458136887402108230332187399388446523790352173267249571902937441918875659295655755507098482339112736061556060850275721867592261198393723082675662797181263658247411988927715474984018400542683371617803353411202986040350654799578003999739448115292887736476077556101959244809632139614095540763751810290786487687579163074777886821596743255892102485387500230060752673894330142508871620208022117708283874982094674259187950259356084654082331545709094309356791488424022691877074638283662608582958269791268540610992787527757624858244040441974196280647056979563479664854046970311725051528798340211327860974632788860663041793513863286183683954008572353518486779259283308295095493673730599447342671850724561049638626769095535159820832265758891895590721134155283245170584143420004563087050249806907910336409101193656509793265286055416424273711984989433397426468691151929203797710923965344905168074742688551980169376968057513661773890589187703264242990596337923291990405454943321856633110712530816387832212279700725837429188838683822859733846772104845578125223687965308748901251823609325879784635197693973640483544817863213536706238900973903482050505744275356565935584272475113137925952724224177753624543771353608569886681065298985153279985735599022000673670263576902128898869453470106939942432554081477618911920463581005860018931922183431736099131966395879085853031174475546242468684812761917362459693455370812862985367307175972381729982401748413213661714584984031173877933943593404980756187357000534523117530738778378130075641518783745688151885922207101811257612868010298287472816724308743977355557070683097149697196016954448571246274798800669249934313836107163114256290955731723933014067354429790588346203998848282185591556127069262619043251666911262094708154355782895257429796102414844325431684943210080193781789079050624882305007546438455323057062148492501168011563486215559280402808803051951066731258245027444653350535888135530802279762234622109907331686623667263621635404791752816570271505148306722171931927293466956634853848215773825052945766864655237475568900027024029109572271730800826811396320425483814811256330807827642609699557176460129361845679693344402502411778709038764637720102380857005861906821596552234586541314571783374817927994113401497271543429921215838919082492768977334512626209810045651824561649646578440631115265061391052921643105433041690497598931501460947830097523641306644227597522658285507634916608968429602041438931318539349394772803807649703793896136569568584118813892236944357281070716561730773251743182290495467567671968941103586295531757983879893042711578148742241008316799910496262520959854398734803865064943127555227916821785736108332051695298160075261973556526507478913758791508029490441531119999283250393427320048756460811501821991807911829971116299081020438415232375376868396825679494089974418124501146250661188982405016191119818532665748905999216028864878619866660984192346280081802853323074997996225828686368549609426101100923324726369394658120876525532195980928262179934082454175512059988237439938142570491269350348852331077348425286217896964450545937755858637402616392081053011264066807754911547453669755306675461695275487522830993047639839133311722031842179377826996606045159235849792996474141869959797677227281344336011814757136337574407867610035127837586968098141547461715215462521747335040360892298241896655633105367750941301820952644746738975702190546800535586527282510212265635343778268658407782625805696839112556870693946594393534218784191331272122413303784454431222092974832369648255818513073142113691643501342432877772537518830684289723700916342648696554570139219344845805794123654326861345226040314361205520736530788546239743783745362913402360694083075111909995260392259460174466821630613319354503149200607973556593642260738795802971780538738923959501159290303515234054341310987519696035681242545345407464640135499067133521246493021455269415152703384339981767436547018390407564657499633723720014447557244351730679071788862837352024207985010958816753528288040790962237500976062496913361232172382957518089319145914131755484101214188615339851776252453295798248061368527093587320022995202737636673704946600970932837709767959819082920195498890008178132143908983748503688856058645106582192979062676815551316880495019387144441261946292858360107962257408368491098334745166247046631728106992523915732124349579641436201611999635675602445580301653102504670581570718965419219910168733124323531979583332065608968022556996281123069807025487741581814269218859107624878701168074283299960253179847810401295584727727343103668768725158913813918402343765027446079106741518624585445448437584209036355681548343908889031815757816566300023804080945866927778703154324318876923021250358028610397694754969850891237583028687182138494924629726392656327023505349302267106242405035406318942811535218323579404315101960607362762318310313292290537548402560266692704970934090225021064235740105938711877020700988854128458619119717017167927684469753512845615332587839717403142590232835553289341669141900267529375071819842907475046585211912595281340304846638305781927650990123547528133350801860468319047316679440841153466801574814033877573032845266969515262332636877061826395693856534917694124955068402134118590769290586132805382954132901960048308835230974310975152122891007110364227679577929189085654778836789685031536004469948252678236618595996513638708604289921193037773838564430321229080318717798378639603882227256008836956629995943555235099897346775750730986598816726092766344830375552178227618109918515978507838354256472497087163001861468778446740199644758573563868352643152098398380098841933152871557041963554428777922996124332644073832520571499361079333115779195812806613031787883913436140053888172053426310136860102259942655882281956945740535820589462791090976451819558069481798726411962203878524294594923182624490325235695235231044668271285669717730150895176205025570865217995737104497250077980090266431987495366996741587783185244724027120563375580124184261513754691341804119141984807690675513001929471501955393123224070978393010889444650880924873422008958685644598418402381759447412794179179001211378365373655210670951087110303043959865644010012171365498538983205221785892427325897490878443726073506294718426854502732889473015181861643222785328864778022806679405343956925259916933182765034904514372297657682237089833855170093906676466392091751436554596159581486522198744105525989082919914803175521659131641145052500945376655798757505789435662116208718912911806786715808947804124034195138360813389906075220870709106290492158650602456352798323027594473031228463662247596046432049805172197257530581322207610953057063899167175337104486155306538252974020406717088507973368875530783694461281080990724078163605078627707609704631777178203983529765032860631964671170776708222668181297678867984639817514919156315526338714830596262725944810886214742829882473271727437872466542580037779485588367779303775770105346061108379370109368306833598573496259005546191981550198011140846157461001217274069170678829553810374751629945783306143794361797160795878152197396608853264136449522594175595892249560291741910331507601251632654235899843751113787942697605960905478082760663471201216281686329319732202367473662467698370238585483344065837343322265421446494452718408557173700594413516514408894752693920427901444566561072121407231398051376634760910185541173771313439972627134813867655650559744374243599776450787606758556598560824707036240948292917995832389435174521851852830502598284072644985178717862274785554394104617122057189740473188286862385195686398090047986367651842559395160295354130700538472596823617315073452404358576674245960877268828419136575657591716570324726187389118857178376711039080313889355287056741895052276962739016405452066433806953913840661083635772228663070073208382818292851653795851473660249246982012345016049617912732891196443913141643019659507338656300221058741472301154867392769475294132263813147132979333383158502527498097281080248574562017912535059368541406659168859732158277492095266449609008093767521309088700540757319568678848566796470526649073124274276692594988480986288932034449617406430163954492076641711962459624966170575605495387614523684652953621973596604403226397256004343985919870711030814496620997896059995647150714665963535807310307274334033264257747746497666630401697734513704237693088556256299352210929962925692367953586458712197150630531601463781033377482708693918774999759781112655114059359907910931273776391593560251899479304953840130946807170316492943343227602424633269786671983839982705873545807246383195904831576329219488100002544610124128003693279289302551627589845613726628844792883424816121614627806809412220940118642997867947317596375866469103695929754562443506475436110251258052084170679664103224463250414085189499983303058720216503503088856060254567987778614818604616691946520858309828562546320658210226573242672252038079124347190106866245666067424501133393020651994307620945072256317856796919577670512421290332223369389584260460889891686802587957023905030946716397736868094683316818434552603465216386943743526275142234575598690100059155262644346482044374022137516646993296354630223109395921308092318708206606408832191213673325638354325501978087230687717736529541716732370500227194996404589358871229097747564609041631627966011673491737583389872535440491355240784720529317886493603955131455572125500820387863454643221395348874724223490932277504285376114301374358007506236708616019968434008498028030822448799877759537941647890958556506557421060714207102357056678175358120808625091208328813901023215167912650649153826437743724797752202691088885136678715223027819311256713643474823963245992141213247238878879206135099492210384150249115670990405673302720256149538923935315376247073216964872227079705284026903850417015289660492876947940488116064032753826456424687712067806396740660911020525575785512738402754417402726145376681757377362588143984734881853263713456960359649033493764566053290395179088788828468365701663719412706478455967321617573732914351298718095391219944382268764130209347639815657860401770001509948247618576537387250929496209241985657246525945196549438706638968184799706429683703788984843888084953627517246052785497391148585393094640520303770520621041437430564992590999979572271664422354127174674459976571705255851988684932371629421093825814043452679870899038104502407257433564686163224385829279531974189868038063859829132405971854407381216650756232708238030634864694465188128265231277416239901532502304325788931856371446646647150496877633306200239827709880277813182974331474231447177408159677770933881627070408827130560929904350903874289847693075509641729017923751096158554733767013701126678827357020011589343902936808393619897877058691509928907002707810003313260862173797964013178195114911758749698054924261257673198035033705041626676636975656496857669450872261173316013179558152001580773670602403154249012894386297234345518610919613685019324416894477825536464927074729621655315833706935159423658465961671051730363419200293854183525213072816457349762799139615213135056849143640814455660463042097452677465026897681158864127441680524576220523208509463170675731026465450440141222982938389034865234534320265314291609990757442457286778736421372685798827679549764735169773794508555470950358282327877550083497506828406062409860294185280962294094841347894305528399089021062352603674981640873054144284030846987225916093783251382873195841880398445380808515747214509846846240418259366368481050812881802117861065532552691603097835246024723300407218061270378590661275456721325009224575816480045298439497506757563610211995897524454755020098815622384658453572245758578076676710362562963421098904788191313825803164498402829141090628227912843396329343076174410963345368626205607375957210874531584410195875658148857245675836116034677429127996631857148571009775520551508273380399162822313948160019239716749992854736144191600932294770650948502222155509540673782133466932628009831926572707144663666475283017072984636971688854495581524353806365578164206220506068822625850950304958576365290504718678733788092067564261614781244102686265220779762718955501214494104247854616989573813620464241915099246769650630129968173929746344082464047698582876293306107525396226512200001048149551387530641680682197076362369361280882066215382259283706531098820388185310160283993883807625687319159516487585308232643712308468698072709649444762367318263807263080974069902668069271224422078292365168100985302881713377604522159880693840663538098226043173173140800094192654066370119093332479808201583571356862429831172402291755179812350507352553487809510595026335227210360719262620567961618399612582695879171271408485286389911350164673168324701297403315252320771956646924306974004138816018164680118542764768165862831226828451525728667550617198108549299472401269267209901873593627136521810933557663130218129594020318903605006602799711938111470020921830004703128161206025868664633669519805615452169055748668704910240732500670521208909061009474232060931295168377445562964993223864254243593621643100645404875331639113518581763522457935830473795458713014806770345452564326623015671610596676423825963449453196871570653968316579659615702456318020092634916049700370322338996499747726900772508910743821228589063773523052121007077339618661519299407418610432510575341973601722015175258633334225566241140652384072537266400062176643668562036354217533030742020206857202101684488050152141294593268585403636400100857688598920908908916593241746720749096881129872389059622744604321084099372349785992203453578446690871201207156838156782539873793796639084491516692217125698828653687460705385332027357939072788961888763766973097405509701091508927486504798758280599762583013392458007776382405131817697698480436275743384796807488531133165209591532063511021170515510126184918022696640050592977033587097774307531709322216122789201924250634428587155358951015580888566120357008820725804596729517790515082826075437842400450873533266640234245662994799782169837095839140622199481956929017465085259751280769036756222805839960871718241717871600018907571466209813649128219504972838112799208651103615644192122888366922716573511451238471661344979448970354780116713024212788293318572503746636109494736432510158285155949732948816108306189155272927547511195176286900317184328975398639002340158826864053934750059945424386529963801586637674376954441025310262188484874407257567881663315873132336721006882409098628698038937461820959604915009511370724572013022187749845631859270235905340484585365611263459768982341610214498997827890028593164655538438281977161945392684986478857300185636796025599595821866337461445747315101469209592486705181973121662091972222108306254300631492509848659890170792265151191071925541194792379976097976280653665835211440092282177831665095969587003069698716738468390592479103060137344446189726290478669423159679060073598596868251192728388182199977886980659157839120483665693150526391746861397117749182424160060696696521902789991962819862588036612686216347201942925553843380779390355053284714843278709352793682547749071969544001521661272516770690256810553545350557090912299747158420812987827140494485831348596633197658972934413521555282501190233377617224243056558238499091745175238157012375534499141643797273329818059587231519607643152298425630374703256664275492195093819598099064818589041929637199238073600057675455202642508633426930014023523104937730571084632970264119879319508468038758167029888036275711922765098418475987452966304759729651247605092735162880998559411229896202323948076307361011555112057291075509056718609106496713502821892583118113074478060812225253311541134244467658482832764706852244679523999922736421359256603933356018049343837152885256528863085285849195315130088421469530740998331216108781408268743482697210686044809485027441574206397151237431053316261061288256553897947152341901696745970813348502454583010108413270649596325914298603636914200156712957941465032106985595423021806270622581935220646387965950476561914435466057522390999126494043130952148940876048030452903401714083761057131257274556850385564155032581663215972263455263429466327113509708617589943434921989991874487892939548937333993963374213068555302401755383834739865173397911046576323288685187191943268327659415007495529507415303896865787392074891571332310553352836019170156806357196420244187214410218694974997400323756453517106535864040026367669526405065593342613129521798989115346248843995160278423654444154865072332197405307309927757174792252771197032396547096537483341835435683827296404392512429245334760519496424375206035783972244841126563851699765789343524623698219579885146478661044751159412340470090370571026768219311035278499892294821328456884102417700129131545698635104265063378185027144704589290105633856471306431552677572778231111748283534444774136958055072311885184893533906638565220210279351433221525213127603222313919117303250482004613634967735794255426015525571893233488413690258401362595724483856675143615965051642192861214294528486143118438578892426535033850406559050015331724352140102875415271058357577972842332360132587796025245149919594282663212325080190591545638061751597639892948546860517929331822565981728004280723204208224874128680914325662686211720479322922240152094817454911264252771648058363918958682170602923954089725655583775048635824951011230104373151223976877088845815605170750446369025716681798086970991747514476033180029968343755622780359610533386032921344582990966997368209776772287770328530843608758180930498737587087202860742114976346838088443261108106237115018529694815079466721899222370140720865529653964592118906439732824639519847431646043295373139909497001477936024597497338906186687637249980754997456622436784356866439257327520572471961833711840230718468270106191850255544223330747602187829964484507286319690897650377860757440798597253099081304359047916373135803714722016367362483250897570182425790727696138915930535690250529095307450124804016896145415686351169702491044499436655634258998694633890768643222682672066751684742930779789754109817458725837150961138988121955336276310926859546968953069771817081549389053289694638310624936483855686132164128743983967963338681914063030782414110162505807522254331229951276138639251159223610639839477029865167757840130051558122668385876339437643498845618559494583800588182405108206601301604852396940292051434226674980955636878898773166542559950423119194449971517974828635634547681421073438000935423078517479481016053758813506520522921820805470954930291856510927611726842935116956685864419309776795810192904214407940486704027632515349512915652305154563991691144943172288682574479143743291115277833024654243452752780277242420646155749890347066428905904390812010521448719757570481026885443922914048801653011637882443990408165024362802938708323665810568318373327616064636054548518976647402657883439475960300640773173457368051126197171535746913764611710940524535081859664541558037458461354480829757102427033053546074723667079961020117420416043415618896798267613345972358325611655604735743146744406222524869604937146979139674545995578577979162567079033335697081397049071658814753844293432376107549363168232199169004250420011872247576856977485471465642449676515858041296753255677085261479763664563921847742172983736310004164452127625781941209419368251204464433913981795784916720251278894547628184383952767857927208330397190736066947927928891769167388706735584728170437754008173602801808390585869974713129502702512315333771086820083488924673375316816747850318797885796759405913521381894260247713787997917917560216277383642144357737043319612732354268192508426495822801640510208900692048250912060925620910900079480655127650584050104549830810482405917084835197507709592860227962076440706719341661046430945243629703461564942093832550101896029999764623048480431604445507761732858032670784867326043314526462816080995093333132050218926059440880873395460003700993264784971336276144313607755718859321127370885676229318753461498839846623743718620885255819361693630780678822112182058334166776552304521592833685282454218654535513257114363278542665671534569360144192252883950701616751722933586911351294999651752818175155672791735718965094943727646896209187594628302310487628898277532383474659709797184739222395040222349062056436360333950154726789939887562723051360815123710606399429246527804619846556176023860458410917635530521481738886976078663250035712968633014751469343159665577642801275459109705778715004821021707320843474256906135371839782158782866375232351838437535966904369625932738087246896458172737244147790319556775874747963946297478392502634397871139335063761009815459950371891619143226012676769341013554280277004915239654779472851954628906707845140042669233993006291444536024210972068271665013722471454488653465781166303112442056973728916956786926109333954798836966881012123449914742367068214605754143596890061544915808041637535702578056918003139815094264804578668210732612820475907045180957897711222994576862219606855738657762627956605754023224769686734717555104869083837453750203296070495190329374809116788568433836277108318345269573755667531336907704156230132018394036377771926688935715369450667031372789709165668212039423944934151868635392350634373506002723870422424788545055479068334737928523251968669843111092987561754404797137996021113052597702097046502596016196640467143651205201260880950911062085164779093762558575486188933601835282387436961084083357830016302879812018809221089959062942556640909096096604938446727820030127563268269551249419913446850932180061796490883737059897060336315508007254327768465360352725728388254126390932490452111917169661922652242611174535571346299078823535578615597937687648778646698353947132900024217811363268911681667213661645466701114473974754529600764706160509295375363390559312348833123151044634019887837780179439422620847441425845684219957129688442690444276256799248803007236119634568007965016580860263505254653274913282573138659808296433100538378479034312752740323251336327509328905188813238253313617267799759285088936025743110681366882111217452359697267547325237795341019727551059192795766687399187151096524436623872356171222009556766505645818854575749193014395613545506941157310286389337586870625175074714985722579743913914016856030230609723315668314649289043608850302566469221719137405937262166651899935312668749188117792923202970749503486893910605838074150112076077766081341795567450652285446013210508157863744380972680546369489535097692542317972592600570396167830934874788623787471648424124917380356056238321639090310160472910436982969522699342165577374599643731752917851564230968119700227877671882576646121297972366980315980677263504014982987840310495377060707206060947489561976698655281666903589147728919182292663155019641003112327576944776024584595269839179108986748671111268721554913114079414679285603060217458449254918546594904603619129586096051191536863995765303989839293487794364865892601005981088221612621426052890894830711007805313744749649003491309144817504551227220057381801928474990928439863949618786383939634811106311422229367619992398442073708976965537730188925175849942910020309469199168044581234892635502127546083294486637883312861738069038676807884310291658926274731207031297397566962336624386619038665975353629621822800710075429547552450735044190544343962010021773315798027769612633901765995792724587830963308676578144974046530125082073214164404449877057560033383152651448293004948613572222958530978026047834702257355559540600064546968028066177826587983074905334502367277374223120581052398587684095017101909287397623231259791725347711814637427649119343936910924860850309390345788508849513202916748307201017427237197101295876194346116580062368100786774987598725727218070614423800120180524308377990280231485233280701916738974968607320310202665989318811762331350875553301926404186744499956833881727581077120112246017197527933412310580259389314743561775423220210103785877072010390302506519263335152353182250200896784745351429155363653744290420665153851591727522395279312801152320900288970425696112059989111153197403524154079356946765516944494996477061244824938586798595528564637683008274898252309928197153856402664714201794290203317550693234584285589904078199953948165800841403311491577905910151065935179004995503129845706951542979845372743620630359115415342001244117987275019843917270306943571620676140883848061821593674848802262442246768098599362989357733907063731819353838089837056934655418484952033429116493037459345023951342072049090214297913593024526757377878880127975540139586284530994195341574278966928614616039881479475456335205759644222730066607309031297557810460406116687657166422173527441248286130762060423258937557832794675931812205444477836242425597274133360644141953687251203927165250527371079428606761543686973292259587371555745970241677506447915586098919430772227190471880288337332135351592431108425618098385064880140066681986722798997071775951641946467517609376669942430309414924441338262079372325922132898136135355983205342229624040351331724098052413776973447343986781449858926307785804001658730949844473308359929987076550508411658796475830608400060967394254208741013223813156021593549752366304103050747823354298913786941036449102770925568291703340506844765012210923153292450798838657922597351195272160058626373275749011877038323562663724097679419361211450181751709403357297980930965672342063589005326939441142325500392152342092948084059788842775798546119476131862894782750840459423415944724847968632528195151011192351942343462490861929264524506506744502811835708438685586410250758782373977897001391744851556038241027986757801921540086618905202968666398480649988900450144191319222444661045656629017165290179860128798323849747281856570285718302770190818837984054617965928513651022475971564651352415864474936923462237586159448222686729247519118506081470821116018743995964109512011453509079485730933056748496714873345213140676507179139352781606692997523154672047234019083271841698516758068968531957736408502202469828866542727380622051675806352440749951967422949459032029820261014951843587841582236800023468411814497967700611074006212391086443392433267618095082496563007732383491900140704227626629710580900414786900297579249414068309497100238647735814068946415399315890943526569166560621116553618449453473344389782426025244723608528587644232262088096739151684827101076395399031790878941022229771341287049966390520018309431725913011115551196732280379066571332087157319612025922539739636773551924646164562082304571130037007476529539606898716121491981958810651390114638490505067822474341346085910030731294656613989125462969799690562561672001445669987150426336865262358202192441047381291406581039351461929267245272863380508826897292048185999280871728511140952896097003822887096728071924759103234508954421145872180928109251535149307573369011825750016028334331790477864960872984282800877238731716992387849152828437306983247430167876867881079362182313405574270232458868924788958990202063716379144689911018559996215054548487880561192422403490918739328553682081417088314968840709522237002427909502191818931508795216776199864288375934155459267410461693049123724328101740448373981053615338626676191713821109342315199184960476456490496417048988924966767297347086516588857161364345624135406133408823105492992743439065787971261698175588397018877737923000207108484285597779842253948235519023917608771894225580779593124513611138573262263727148702834622417856415869041143735819152716415595775895144828616453634452780080686266567488281727695722248608512778927878979237033631091766380353881595527204580850250403887249192542609821248864270453797975474766048241728269301692276787849390454913759227535550286608138550690804102141062561123889337029494445331162193935279923930593672983539189667196043737222022338284603991080294502920260907367085408430675435162125750995960275000256711549224458386780514106207981086965231611867638662246706121861621271509730398867357641981732247676049372542189853982803019286308081977078784160393764683813342756278585056283339180037063766106810639728010841796560148434472129992622243571473546359932288694954079137602187859822684296860141541211746819560497970663602973493205715064426826277542891596390219019636472981401407934623992978823005343026104564533803929658410739693814023180943217726719126500050263437744754334664674005095831503485771934094364735124564690365239721868353828729421555946964531976135002707193622114849863059647859376143236407589648414225515763515234238722702521610085988940260938698366316051449172542435083620377919695732802011310408511427515985596560042298862206760600791293998232949161189447408708276900483253080490105723230739405139174997743848492612434282491070350923212225087310448602250723111692639511713370127984535501654681286400672679381875614849688553410416444554059476442249644660404865647078292153557847115352660198408911782804929854405422384024405011123220684575926713664612903684490799586506967657590603318142464105282008376595935297074310369544592981565949936605309846623210876298866344240362618462971662922816673955927460433016514923575688562064745004762358936476677516158795253930208015546635919336124787290773597624749195252516982782785521115461477711033171988310269444390066139704959887868368682641545770469879536917808053356861218381365917701526025971060668399128646233170118848028886108584811889396243387414790661877778733986105955198256282982886576900330301907754024767284949705309358757065466343896502006774522472753078567486046621925162877302835800632673338208824760211348264013646506871873103363166236507581424515782739487274290471853433325395386480610553568231296287366440251302937225904660859658995743134896674445389385007640722178349601888192481915107123787247580237218961646133206618380282671605653719380888527489377634296116468853838438249671623942929065526436227309296360347283836137813861288741045702277097617050241359356100262323018093983578762062393571319947506640547161910312603012742448153038668966447029445349109887884681832512309609130547611681714978246000668906337548454935462943041061204067737078453892694655334698751668227406625513518833468669511783443069116222328006979556870674147057605373948527260757938827963220268149138874530086619669370104400941043814906539755127896553938221009283076067927973868581907042283832578476896862732701597187776926139009615066305937945137126464820955261170648644927043271975041594801757519852583098715698122774686224903436927048982814810517830229100500733477425787043586197607936099098600227215530412084083399093782381864436285786971823385149137994143755543095624692236708522648462688853993331671713170201822223539953024238281101652651206566628117082255965544071557495159426960318039691685525709423614408006508268348980398506727500229638095788945210099391343256182460808400173305553646070462907452730775925460051282299924676586116253161223441195019038746891212998693689818265205724022197909532820704494423041121085562074042005364832387790156470710473514935673682542721352107805718183663621789916018973215943950693181092398593448210194776968326107443283091343475619481823369726476936382934456608247059093403705490346920947262165094308067446034234730804250475421438545073501762731152410554841893054413359732230765114393620579740453011252405068175790472317214943001534977494746167434654313807208717931263609251202407315608602567211670935921496624113168118368930088083286302593217993903364465849305477752848958688407287422007850860809273019488384973696979605255816925386203740949776873061985173201048389472918246709216013279554476160159631278660512361355981103578104939739704337192621753359266837387095539229070677112845847949976986573751214731281531412018066735009180225423547620964889661180058539464065404301215854530353234345431539138526586268781801192375892822116977090696554835383056694772191365224550930368739599284829214560640338610409942408601681603886741707340443799527383377951249821736797981510506591186048083163191965904481835540300989048800043200506956384151135218056649041296948157652498300689829237134238651038019586520766943476366678627568434515363990852758676274192538746953065354068228346335579645740777338839483093564019141027451451667411694244448205989350206153298573433292063526663671091507574452034785522300116854688881765883902413551054457055879694513927369456935187650473476389473038097104861245970772910999484371738976711043656390050576448301227217859387331007410029751716166586821605530576658120565822605401338397315210996923534317052336004446292389349070756451351240507504413165437994139561425629423374283915048260864183802341985531296549040228477020665373065417975533258247342925120597803095379660731212791865614218471139060735922832600103572963847801243081074504400689340830310038036347907182779979518805871706831839877052225154607504028140720812291215514470886428511968368779062683734951922282636455843331908333186234944201701478313559313457528442062450797075187180478283762992148058357980661721408778130664726978401271375992815894331146907221370500731877140257561681036751640641485233938254021654440757802395766897057418356584167896691871935895090534953136314370104999806357726485479641853161500348147127301004407215433316419936492359005235317873161572988113102344234561388051495256526982205741663026064287736416549420321074417688028930449031843895271350601871806471562364016188261138109459213398019938600672621417984489801265295514622364719849191258291272626870481732996237386966088848213104850467592474148504249154689432308722353956867452327373180956006364821580010618013440016774109893174157949150379168398227817237601804824953107296483811220357958947561661710245690588411280770882780721776970486350180655975559405568419713339560931615394656750810234402379428200990078537970008155518857528637555316712341738858528420487911430978582421326091387366001810444459978554671501367887033757161140165029183084097531540655630450765708462268487640822890420506524605763201903491683962625313698251910507316988474124502822377082865729410649317978300831658089655962670513496827420084254018604247833089760678848173377722849363121190466081387521668098324359307399384518757477447821629698131973605662053784996916804278906758773762971812028608080965191543243763259386520177110675953495023861597000801330217209078396744811474380450573555161064141951003593395227242459290175640700693024675773117440382724821859817203583581444852220696878556954395444082146674426148429854666559389750602737415569560015518627129567453733923275154744253695712483340745663738700353393067640672433942544069818806245044620327839904251922805190311903316286600000884283779766036941671573185674350187656384474478212028302185807231964199911204496832682629426532867136042667373981775559560721619810896479259068806768191285419778099619804438074026283258757475421213973618232219941966154712055179574395064091651215050772697912027473093833893491137634031767215330039185757328930079974554562901657577732744486310054090899343595133841077750228463909036269153550128983933452828349641899850008772460572635349188779205809182147733256556311631272620590782712317047253608847018013273018587355501161371410766164561575889269213189114757017060358437740511513088778851338269803102821282736313087899579404726022568029919101407387857029060328859465203610373095264692182080281569886972568313051577325321409078992860677094719373236597879897664473792902839251455066471346022949533499082341909098468514681615691844010640106660256618179851686250553871702782646948904611234258844995977718247436641549740256103375596638134900862077678464373872443005071937633565374156088922042447090036486478823052369249275818138318637292281911902728075512265276322295483865737091926352483643201467781456851539016143221770034712713226015032331473056882641948698453595962930154788291918274439118731429540264079485249213994487831694197232540425187440295276537724092964571796410867300651094075836456956843287294975086353173062559754002084466067820390900957978062630396610830114478267734405275905569705581665984014638067193287511717993170967590646017278649252705405500966673717025070083749499283234535354349070444149242195886573656841464297516299992596305951741706502961123962492994308428462758586932097600236685691250725246153457130018378732541913436687113368838569208273738497706987705181264292102203183426059256917463743112298068283110431434904368623436403449712061016033358769125926973743902822952216356265080502638084411701719961316355199689647282029288656749021115610462249371466502625080242690172002022328348568330403448206176256907821974455516081184972707746406336657697992585147524077810561329367065510285779158608354475262962462241924727739951458713272432308630424949692170212714613593786102253472164547615201997934524458665542491380044349997597768152946522113297629914499835414195510741956695286918226044263826980702989419361573094622891200153572089314491037074063790044647651537483949795278411721112908818196811610398802877678436488040706688775346740239933381142754437025544721570456016139059449029862142578928903635392552118629637350689770199535241013767570963244917074590317427400771914302301616739954968982985705955954334863057759825094642801114417367144192974639532639961961369858714675021802998359427250783069751065533622867179356843548339601220266461195884429920189229324422620044691505147062085531951339346200055313297453234680342665666843989627686022953152502606203107614081818317230240167642013457888811446810589706614398998282052547730314314003215560716461493099137598420446089088799616428644969873871386932766356870954136704819496481738688014822067413644685417581836379391906411324661355078061752491438370235021965891070191443858080581196803358696940381316660811508847120564255416372260470149163309729069218780957369167000844946276123627999919376166999387515963445167679471925288438086353798918017136962987041626391583566959789982400695472625347531775304569239686023261547003795470251385336774169460820056452384107659843172985465266843784788215785239671227676320393672551332684393122231189022764391115853926976386368328392909587782623779875773706958548896123676836450824001240822018090144260390866975753566157826390362088961125905028955798311687168464513503299943732502487576865998587684019739613345003750242670477934488713032514517705907123610832209566995933405699983337987168223203776699890090284120521119832555327216200471013950330585904550066320953100521425177077978015976727776725171193866748351171127267302003130349879898691117384213541516804736608080770834445586710126785173276674366389664897064574283192780842188991164329563828582172372507285042527442075257641192052482188013488420337030731488178571167947223969040976230037839202720321253193201929353042470550953449580021005134058405742166047288200370848998792068849949739145206109106235774990596766340565551588350240974065325375706661722677788213519510874421543392966674093109285196972138115690692500743480927443726941530448596150157789153127943462023735900089914774921896353286183331809236757779456278134940351218992024727693538646681223378874665611136554459604283875569261421003987922312219325484787989142763975214826899334964110309551972492290210315660147539978867069286169615969997530240910014861079618028962134845535386006797611479984034616050285603174522700572720859787378763548845179166304871442143709033341266951435858812305013667041272384963427074165326856523813130550274465594917827961948181856389304712708249596912249949074268210244530774261113525076961518286871164538128986037342021467494174877301984599489589813815427277967794965843612351730541500662537721394924191074399667331280352280261026248738156264070291065626433972946461759052552898187133825221042752857866548272347880485625725717377052444432806045977657679082825088447998484020812171644714700794428147625127615504402901670699819204050643274958900314151124100800344084734964997977451816825681163148712114690791500108798396724406237594805508121883435148489007356014247884816770106454424950548922918455110389448909953094328599929593289049595463470140512071776435759080106259863166610839476234945209961069219003631065472131632936313061434657233336927601721241951985916273457664838429111448080316381641371402277010311662157478008896169973505004804882216096205963363693955151965876396637133113425266868166066359482710200355675936383474455014926153959865682121051111181074008200853361199504743786936016071217721038807925391171855613038092295761194169418721646371435716667071650292262240199520766688514207218995912631109011776564632595051731842732759844010616224376088927818239843406868859209280576738156469698609998766797086847317141519404524655510160308633988390580640989143257019674750497261162986422648447386545767766001764625049508169095127967217178492628001525776527289781885061530738648687277190483503032490420934294104234643503440941912982220847714538130232282045699141692236889945660183051045601468358178531467054667799299275723976321360921130621771484580275203416120913257228626392573025621559630818847536907939980962626918978251839424183188633270707670093948157848239661851845824913399550098834611993654806516356677601638481405493251682649839595362377874563766700894966228377318111579510208476129307788495687605260599429676204483379304408699729213581967427831783759333013000638655094045449434770264181277812873894201110959406341287334096000009280463517963117673325390808326055754957460383377065801816626776872727599146531668738984871143626922819255511074408512183243318667200645923156969685696491254146571344027847508312164161019950768603532321101266974766867447501805193674930850427529208260531130474417579396280003955834595777201652533215714366954689850719899979008097296577918782296907363006961693125994715521571199681795257849462931102129519029720547381041462262519773673314436747770201413389496686302836572581643234825943481996983486130739158193644832321449119666324200328656989687696357561536344518622504360219912605764319311813214775637439440537701053843806224137170003098134832943095564417859992533857397371564033606555770121711766940556108883578697008327466855859626835521181985048293975973532009109556982769333936208962555431881266811925962399529023414845278456512382042818364368238061495910041693664052658736599790643627142510430411506983884505311489692479655400030936123524229122644228606940955176833884948125540833389969131101122840663769668835774599611754671061309319534615852487058841476825359693007328709537580297916372942405286507995998345508774145971940343309894364129864216596682827605977330826931838306443492943133023230798878362089313450999169193419043219340760712594997309202152757865701489294821824020002272073687062261113359946815789322650710235448524185731697575704945027627700128532357332862364429415954426510698297052146997704466206869374682163322509110563845644791464556020047275679532246405215655041563335845774569179629434210754920870673287403211048535030016186973108309026999615524523827993245864218538316727876590442119196135703537578004841131037830630581931096916475239878760911755924232885682735274911876186579531285713628877900825642987163540877835119472912998916383574338889614693095217656112869565849674464327141645492519175722343217739110688709084465195645706698172968211217257018210052465145709216247661441702670697059494573706012672994814260509886300441456401793855492571417074005725793577031628608287802770838477939891984224669479310031725490955785358428694119419541095055827879361274102175603818115702491211339692232374295658085007987641863162895723506523387313657815299383788871068178286288784665199719354262533835368448894238754062280078174081295509046707559103766235732160901820876695663921133260357160957124331589262684998806937436554479746765417554598536591664789604783146884795373312807689506588998306985064007332208646314667891254700591382389265318583015409376254536593611288822431070612687889972560160254187560467812304978865868612519853872225256574066984139542780118145105813407907341662233480575436676591261530782815514719114419183145960681835891994885145708889740919437913271870426573780135963009687248392450032127977649876372024278900039916368790029034863005938928302033840347701964626159819509520660499347677397536611517073047103898731233997940360845311793663273334013100865786911022086634639709916150109042996933107889505701227773159818098730746238662916629941899106135311655740810711276640490857324753064934252823491823286078669965789531410488816392344879876451464374052536756100633686710302594521691782916824087866675362193707493399576971720312943378524306289711030535205138892742760232281177270371230458834372507939849453212688599653850452757569124038306140869554338093287386832778286727458996131073318196905153184643451010880057610658970392242438308166470331796911870153165145510389565857032208680181341685588327988087806660339262284383369552974897257113797098336905973122746951040211323875032040740478357145198050007375141330609700409899852913582055771127837465014100529444687557250673455828456485697546910476616192646313706081214619037246268902554311531721896872965347969236015923667693928261935175621627001185009863019482173006338154515913043609472439793188195427282499365415426449737682668261628814755455608517665896123272830019526757659457745155430630372801145060899544764431211598668452316862006963298286779753885604982134809382681262843732375934659294040117594690789966518840957694214679137297124450928426808226913033795002559895237490171722884111822903625444814192833605779862703031866778908620096165580777663400096678274806604362685956166376288177664080946256136300009082204227089025319678585012578978288832625059406021246641185563839621841672199607146736209167213646349629225182023535728881304203632016340170349869536132239071079130081131399466859913865889440184538071757174831368010055075008211316636325349324806614280094651647405850402946892891376628500709319470591712222935412836829756803324983559100821567194671974807774541716345447543324968836782552612973110751047614745103463666524892516701451385940868331853962910059457429983543991912674095366760421853211452232618116454798302180892880253705755498843242611877738594296880430425216089548330525314926964952614886249908198954243149345716895501402305950457081045350494851247541619254129924915169359033787279877215397465405821733474238120849001208999552992248247778334792526844869476738380123006846912479372632702283360624715239091369016499556124728210064655703901145760294614060467186202517641673637309001117348797300930353185626105243026265403480671477387259551215126392580626168717293011641781689418732316950348928492946107685427571336635269285091625862190582320683553889271295280934761094520222382306295462717571429777008306245502109244498680658363001649374344936859995904039944309870517323535137713268703588248592627379775627703649361328104770970108183819991735788500105594937756593514313550238607264718098381851323989368771712352850233964134401367139480791037966696137118830328119097742057457014799155971903726915588799490959046886740725419088290088302117804797641916050073499489587833026412238389799707093622637677488236434392483891633149877112776631641326739906164615472196964596585463591799034366496585448969613742933604917993357082863951524679716813886225261972875066339066674834511350415550983498390157170943129610395131520326861228197813040698089689574331185485181650649895410423514176965765160856070286722184294460262149987187873168308786623356276163535913561348898453384857520901320802754785929942770820295860785626519286477770962278491037803562742339138360592578556137468854016222292739705774147535279448944054078129970430589364602770322748090362383091917977203034661821749440471713466287644733439441377809348836769701642917546654602597962232301372562973244998519372627368285951615893518249284717451236089602081202248870531075524656579550349914524006135466771184554393042976657568584757600798491927707591873312863503651568155247241309835113641462394166085602095543143781212155965833477343323928648003308173353370055228263606141526223671100177076322084433049481002727070483954422623014335376657001888524528363053872219176118203248343714703623218933034121940452123512178318928910647612912986955457912657976996942294483079010503801852926511426811136327552859738454968651006538042476862907079843104433384250255158228026384596950073212675157492714790514731846102377354009494056835775067705496721956951406848680833505444479819614448655312011070767791153298850347373226193802209688805898738513791250889535913980087839801228764510391831803336926190451845966726319311944733943445305374378488357864201777780826413697603655808024814236048559485186400725031090035689213914779974463161767880449743332229828280828893316551831345259985186280514392993174652788640067638186118073611792899108768512827373531861565710512167758328700837988135556751466062214820056857044410374950665940375459969853145715719781650987561638106282827796461702861606727284355194097641875455792006458302431232893328074741912098736869488993947952038822757134023196042514177627428645032700326298935927082403743871019585301386864646084301601852734830584679497249105086805911717680113069545913425120189427871638865695373241440841774280829737654995316741311992061316868456799691646289310634181468556473675559834920451498063253800258266622888364648844278257105633942763275302423079481180105691952040323972242259270163019919823850024611479276773985265751002232107454694730855281585302561733205088731370831466289345010321914286461094549575075048471736258329599504200958625411021326821951055780016893953866824515126345945815303020297580647360830919986736421897095897606473679381381523002646742077871690620917771128139245934994623977663840176835115563626199127686390989457647849891449269729168308953006913285457101208428598221188337496879812912183201430535971100298734873351933132874739221154465212250629020124394156404034558711201168918916479829883711923352453697213744721692222775909825354212519322807095336085597675557549540694294063464351325394005780389228495261046018130049154788892902061997765346134766092823519627705978076295855365657642302322726506694760564245449794941402744673044996175412672490247699242639341816963146288825352044704478174019172711805507930387656901369173059948657036997698941250578955799769066866063174110618097370862299881838117294426568839443537905391174957639591250928248544870529756600796790016876688628039377971599469776452712317122743835533289752113962706889404803157258230881550119675825053602349622686470918433929627769543148936791422602209130959806396347999223726810081705795883306062660048506412398636006027569070155073199903407877226280851749729098898509461105227796698312988778468718728393210488568980672361016800872839076025215886013031311003106367552647856374615885456827271888550047805077450262467889500551500839761751285991090334402472934805817759498099829434697953213764146613185666965027853830012635923620136377395951078342692781061473839729972010632131539518477186216119183121957484228355179563641380154331086523089477894471560367336985102577904225099085597023229517098187503624595577308438829027999475155119979701027047660816621390613407876664917478217559290133053620175683818563420660476978974020115217824208299709069153968963027928779233496941469585921784179707120244242866876405106084489877052839874718361391235343894967690994449586859198235900816455014692047243264554728875953031514102306779788400450171183695240898110144601561605816372566007688224959807708782621708484416663862925487974527953805326141251745991031109495521225309987943869289190733973572980844246596712918706407408495253749197609333058570479481509640947906673547940090492894326775102566419398983244010996652844359800938669089571802185833149062741644111207331657985186617708269490113046975308424608284774271000994486736641724280534018251042640453035252383050980371021881140994988908363018394797219352426384513385509117327319214933170691425693665542437090162303699690961737623185730114227401556894713827812698772541181617115043801390413379569396028656519338691371044459191211145164162499875308662252043269074867642819484654717157858173910802333173204388270921768036248251748989757427934606260122029789982848764457103052340435342809138609141504786946989337681505103342675887083677788147637713360353926727885516402167914690884890686298467855664260670444217521395762031438354160287295551858968069176390950193111030153738391975861320461293261346353955050915770750116346915659197680366556573938122687928845279385657499297051110572306471888416647352609540508346398061975328616963737761691303016536410205130232442946786076668237739800816191617900748904320622448957591210795446120554712266709703149423024619731918921113033513394809743572672414097061004041807697012948373891583197441263531155894948883069654503062942335589124755779505725978677254102421197039880183815906188124315178586080019784969202877186892639428912929453541402650796554558702532729593985515087237180812853561735958237773835665698573668698820733293462864191842135987662980469509586669861999761746791668046701275286418631244414594662029080929451293203391600107524559960494932385811235079667922608545351555246905199432981841134512864687312548568757512619884994821025544490768847842887500049028118573269988172641028946230798322314249246759175442991380126631936436806525936052043956569561839873878888975859025111251981950738053041811444418350296733359001686383706977297631380985138871674202760353219103145774604176611306983158796468590758528738414818729062069293520084425246581026117622466790533675669382512464067466123708671843039078149918756506755055084384143078067413085193803768697814008368163801382799311221620104930807057753038046769126799862031974536238423217364941906188032337345237631750976855318578044319702230610967978643563572084158008397879722471172298103779476692743168128203765557463162751784685232788218693968753357438574247094745222736043171789408042756933467676020713462965140351713035304959315307467026510749405902349194655889078080815044988447109060744122948310683647958645460902787308018630443028784139192055687896840945379512518563413377182516969975527382611615638953830409856471788176115061804891074970541103390303704985117536340705218041877200564099393726146799273969185888930872993203239912101523410517007915835400178878505431678042919540381160046986234205660586229223501275385661704983913074486894002433719015216631196832623757834037029467922898457755401106143865166350525551259631652377245398008886200518299946135670919290654137615972003754747767332486808156542436078122914196175364459249226777936284498999980287166512517337343493800104532779184715795630471702361257266067056262971680661222632390028251863902506329687558178087082429537057682003941812170343392738186005165095655985981608147510994454989499650223230456766161776964001036363406600253978548897112904746783837514777650089587356857188174712787580757155043268781882552000592315204962443848021433477453878090510232512495066905284576734728808905139456782372994195302132251056670789585005101594322067205972106754219299214790288618531540493467352417776947259431431751053929140414605800108862282356623452948378423088136702271897283709812598746843720812658433452275301636200095372385412733669866350848373243606711795013844570255367129607791766473013439319343314701612462120726177434813105496494728493215737564886145090981109669712792069519320141810962807694353350502388596356876227483683497853311115575079483918398228250420911231913218445008996428561653683825140335289770622704513474082745615572273662567856132716081539165829733651624707703530603905708911307457348853680204431568149512342704525026875018278321060323707708563344603819692443526949050093758532153542435317163722435735751005207335695379427394519851002680178591011362358813256913592840947524508333114873572323745446947516050108022932201135470244452618723650459960519295990969661463560483316134443716656475661584815641148583483395575760554908846982338050067257358513782111114519306455497024939192631048259672757750509028649645565247464876835047447871786851175131774780412446957197622978052517066321769220612731009495511133668179189484107023035089321074997764742661336409500534630747931350535881092928957101307856979598719374343968896865891638060782296128578985201105308872289827569584397919371587465704688369785708410133671533352075051820919207421880288960272214836424263453831640150690214177564462279533902148381893716393014332515238304480653824661361755117198762090040533407743083069794391838010707704691588977081912739362004971314183299717469806506425690979087861675954757701758044901101834152981714112534422109010838443400129353021966710355022009119878626217618895861360069317364104758549808015942750038951738298791308172140649240395896143524165837339853349789600568352855091438531863434416844297751403875999173067738261502000184994975267006478888413922480457295592756196901726730525074799559210047071449927272511109191417121117810274414613802112902881291891534688429603404607195758378262694055790181242311564571695072346561495451306278529700131608934215241803115566536398051183904010306732491384694993367559269782130121635484874731305582686146678508171707172082795306609860988979260124527263072235210203872025233248835035579674734232307708835866063864140855554989338283215351065684109558959754378006990159981301519381758931471196908396955364911245873938254773096723421199701619048454669990485274205680683327284306408829496847576033733894408581687505342741276418560333113149125166850724506231699914061738136626330102145192269070040117499364361356223818403596675675622173151576592665324581419403963894822611691745921681261234210318361922194000436824859130111163385523218341653536597122637912277254201852459945643995225012341557510606903798153463083325041119788433601504553763796469283146539145387706855779610112682873899475136328303812423565876530039932274933790634848737452248317581121626746894826371038165360915613188701741911093181467009589184724438606826192157235998167208083364594484318970972639119570336693389274911019010228924887393059881876387148522791962277947784036666418744466292484219126108791318359221657528065427455930806174768579169780631022543783496405301706121399718374554766328052051232044599156526930527443009382567248101377473400741705460021126995142122271776198812151523807933685281199462257425556785377223233929635818209606160761917293286255598421741174216983695588498795146628796277332491659670635529534155462506861328480202471537189907015093469795227741803922721978488204856717329404636057504900556485195029707956588279209305905515542085541490547805930932592083372835768410992188525826327195011889957396013419881063423412231294355059936099939425487618497976183633531067736961108211030690519738252581642052620192891771574541262446436418279801458892672139999133961326611818475829406714366729969890526424431787522700225665750997462784132209936022131629787152224985044210788616902848164801383989402705707919865533655675416717590913892438431660714516220538883970958042483113167552773949145335079220373486907307828752464277153865011239293777213503756641885028101935909632699186229355226222826678929773708536810590226411465634333065742266447729847206482158209594030759576085407497171734014496669825878695382083382955974296358047092740539485933034493987132642377941506772117541054499662597224433504606019255626623927613763903064370841010024728126438871472917583336220509026748282859504871384379999736146148696976056690000586192228789354942640420448772143805087593320174255234480441438237490192467605631139947710844497795737957487745530020501965542772840907700809844941282750630111579484614330523461109903806364903502080258299990127669735790862492540467330747322717420054595811379742062479589450611270272384660849668152057351725459840814739179575562654272927392336280979280086985147583676555630331966530768347612188081278046371997398974197623386976742029120892986669313294671704771380266107908047302136042159880280446417312995239885666240653069981676889757025802231934422121824410599168054576581741825850230209178197437978470406846182513065605405399370903914068890674417682922568372773179339106274623451778090542501115173521165970787097896350579157875324859049968428742776734795587537189501092942392620211573770851484661110205998012685656085827106585555496993005237776573495835606211903630831913296237872949330830868703145323113405298453924951459273573636162499820938049272857698597025116025103252615660336613832363611371562825364709890211661955751234530905095431724543609017788389295400606315234225058398513444092200387541228635537263508300385387475596998823574958706588017753479615980007303644186718731394291347331172639609869916357986198483887284089851315222052971308682941234051522551750417209664296522515073797765852229749115896234929813858775430189101864319384247768739349306238781600882161435750939394865183103583726129280915267937260262086002347045536191111967704245521391794491995714541007994146224246495919503229766652075184805678770834014832611746446974911586344620842069306311993797396618291604690329137163246037073923628007775816624308116942068016505053662227910955703479864516885101773864372816665954549813451789905860395320160522657395989978534147411336622315793525135479299621264830051257962830248384328904004836298093168802303259941917331135535630149388408293356101753023735900225306262108581450886668260751844840337183345204886817967269867596929089893357999302539874255144673074080094051584558910821075920218046661961237128183594378672657479970986707632050116223249415775603118098684804374263865973865154522989838108639318122155367515984287213823570897090896040914775710014828964784759529279180124782501869973982848067450089994904397693313259612129240382307340301269179568144958434720803515880116759662035916803511645055166614231528458121686997338624955472013029463794265696272891910930539319464561932328856574136169746766470447190448989734124172163791497245060695185202762881806206700075258519157341901305820328851694279050499054305303451749132158561216441694496026181282015645488432114305217905024563383344029500855197352823070119380412077111187557697585957692361177787901254391977431193765287496024865773751579775937132478560688096798295693301338063875626444194342520181425259720104449518017423051304648835770235589572503753751435412531446823432582264753248249334346542204739178413383021226838874829781270365539473935441107434409413284827358349843659670128025966517490618003675680734883560390440814308954621161683131241376461610226561417484778695033296361566166256906069807259586130658319891282354958766784009066867995872700924570156422720346642162403692987252597513277757614719970024143786828473776530762603199814594865813420955026448192154750425653647760109591205255252316714862018731270818827958872391075956807893583023652986314715688542220673687588836625010256199977088372187670301461803486622450058580106476009704244878397991704976906727285410166791914824666274926547991730466409167943084759142845689311639213644549507865508702990553123852486610700342692598398779564334442380644376056401498279832358044834074542967232139345722781498301306964786236699912458261815939682148830597373304828485858460154929789275214921180160981966011789321030643608592881152166494431488522900909523825249023267955965626413349795100654773896607631805601080649163229454505478506471593213093940612503183075955845646316510860964563939810843051016104460017907861338256137148230888258076153268902083334612074795043328275541397643792331737517089423653383088949525704521371036025507117715395620134139841688699563942321791031212421924226808555360241935458637485068385458821049117268268177181454082812236386039095135152095629317388621072802068447263370821405784626779426571403590227057542044098394102487747999677256211123774688602820617401355872640903217450072655604925632808728413103026344479524221586981355552403340631675375066561964882094217804998096132981124066674893740367482841073786774837783043469876670843886425952847095024305300516548507343586459394721496924977756487958401943152271508015603515985450117900402212595986793271012307784530331142752652971444127740613892162847785051425471674846383513096923680547858431549606886206289056927867097696328156752648911959752955431660085934264990755335616814960693250283203010835961069555994412771230506614666641900597869566964835235008893716654670633977790460164069559558783138196520076579859076430159596705350615381312805772075573519859803629707041632678888805393218669328090549260728456123576911897640123227038172983859025660360462474480566829313664531075022634803934736251630626826851183086047920052317322963081637534809640292771650722080265018202521920747036099342538301271757706889381192700011393856211550223926634043767235245073962418371434242077554165269720460826223922901113286319256008544908915445140585984664019143899030138000345377373874995828317011947466944835856003101755138885341028466391529751870975144850702341802946232791063023973754056682932960155067991937966652072863996336794844746304816030255393604907914051031998553011383635363838711332661938388882323078851432461905786533782230559729984834218899157047868914988831859983593596790452011503613990243209455061617312323037286719358578181566801398159491099736269935817114967735449359305148564406548109129536795755122611252581911208694382641208233480140609445229422194289285258226009623792776380724998360549396347941635298584409774021669949554835895008764194559161762346808295740932583369592182672921202447450517167594656468185487517154812218625430147605941044556330639765923450472928660668674011236403301494185423497426559847970203179542554984647596908946149512634460635429184563341672889383313842593763665131763151147070666514089269131072976291766241383331756631091847981251131011650090998689668738109215080870909822436598313064032942542963594471080048204058414464798393962432159100535000495179338249474805562411630582631619457505069205889744898121492264930955791507768777867607114723777164447913301460905066980739557452057429188475038314609590442412192062304832895166386718478857410036997230308344670906946516934726554800490197636940917512466696052461750528580640941015226544840480225442442456158239193311827197769355495761683691564306367458775172958580693160886843780772079646068567385660243263104221994494088188974557630942631758479156305195395450733957414335040442031292533960691548046454071743293400382753816923538656770089963957695253217546039501291821849837262092890333487322517075852019532321954000376982179119309038510156327863806983920157154999341732933385129150521437456864608265346840806319945716517573019808862170027688120491815696153933078826167472862695387398311558525618403428544079775579419802879598071147062797579499913557094485343658376203156131969918847907860851123332817130161435763502493882786166433989636603964906687103385549612636416802100142813699669144865759322330981344784152527833301233342541823313323644346296243696095729828366502225037346059666368165307720851765557044816737358858906044129244465085259251543940525860466008938788293285461215321316026548223083988686218660466081386104637419809358562403624645241634434490830280784730751490424169137854375919807669546363487781139783844987624150288657507130653841389322735576443485070833032903429396446874911375345817946799816754687009594888002713614253760851996332511022827525483933541859689445785927062392792813301715263026275362756949259053274489190112830226535316282482384255964695545946180748416937510816586573540066937596498290895489762480265492664635318848149926124741425581330156887175364117068553163168038498452376310772128847997283818300263022234318163323096590442066856835647080230527780356167339154170197151964288822093974112782330609732244135525361327087900015658604045894465160857145323942625611154017033363712118020572903458069126569056759367823995318300697456723656400728189731929100310114107754515446884660254907132413421764676106796574279244944911215881084598087574772935524545380124948501089211720759305432705847832520536232082345251163955532210743180519092653493591756488542691288241027891553143300665318411423793978561707110637494960514075113045746118151307894882859247779944986406958711223337137040425459232425269744380043176246384046471647158152500375020881735492253382957594335850272709165672833098639500114963513984956312806767254569208110640513538516481528803663908293801503138003588272412918676683227846112807277914083176920991462335740299096019266719495912476399673750337895714563038758956453939494053164337735600272292674782937414599665712563468317146552985444766534428108106529356498022724247739609713722735781984018374818325214029634357621661764070499655636864985211299780851374505766512106237387165054419243723938777164789469266018059994342578391535821131026930697130911311917653774939794153546142289320777977305579512531817411130638245113574472044364133242292770091484321673307952604817503222378102146503014427814033114130044166137256086187776659130552286926697230526277303340755971812444092540682759395383423226977335482060125521541466039854391018559868352196576528878347970821359734317624960807605225951567902595087760068972579604677336689279922310784857642822298602056947943418414026300998844737897522787251505615296502238968747655097561128064002736997713518096699070538654423413049557229535723129549096039856508970626792490266538624669258550240693388054157570430556647181309978267846562196413554696196410368803201621233102123207998870267391843844272972368312784071059960292018532895444468777990856921554396274651902713323358964818377944519599281429649687963665843253720037899634837577327839161069884070470809033709344858547248634884416843763944450743501159642778967468592790972775556920646382127499971024372054072101386756759386092953956319795454344682562059835101165695000369271729547289789841539308898991391498586284814343740381848294126014048295379086160579199706112800288663383109599249082440011364416316354311648096394760065784758982333578542767938739882399946687287090490298107557632080487163334666457135050101865823977365330613186926654327161227580257950990721325623088468243216488585119332974325982315283763849535242491328674224587804789363450228506629297791182318748255220414170767264826954858972438376763180260013768986484709847279012273092217754789646698555280870198937764602162615760188510162898620226310020150395013974267163981963832328331515599391513871047217117930761526100688639350123691633702287100260513305401511333646921683324833838250807628423479072221186020134184316026062922240598383577934574471626115183674193660483094676246253377524042408596799208235649735770387263927440688931669150508870199498032238518066266845625609979095537881064436059486999494334966475116045742120949275496148881042346488703683628325028345327976849929979918072280980308415697478466722136953090130600598373058281599494574176879122089302213103345481705717445215421898338717267103238511865214297300354151299535376111156836106953684231287484001411486717773769754328536372570378181869041809821461869502637053566564073766107249387841716124105038751658609649166318994567851495167814269795677616835135614509578219106687760476964336199399287836872227492903846402164227290141481106891469485709159162902572460591586569000052970710429352638642897971072170858313763230900132091972015554852099970111771257015057954909813077711816353501381783038845551942362872363419739973323165527053186035372986023694663892424412739576438077171604776556028392296274026734603996060810590480407060048756119983287258653304451036458136692170743555481254519033257022939135664595570190647850781875069924795791173756107011908843811158380745153638315338643073490426008870390244732086155239745462570281378713630086760277949121711110617082131900558255221841983152529050954084213646905773138001533027205139655061043355147296158165334474779105349164398465107601323910909819080281645684296439158277783418806410059384739143015771072453375661024487734227184576650088176984112942711979894120174999355353301787962080274434766416641844411842523343427230909933525488453772100694673132256619496619603742889826675647462872101874257760143998306859026767278310742541114756057176194158995317413359681913003752740902441856923831435131191478105338146096397309716145269801715362803043660181790023536892022822407669581523502556544156299007477314472355504274575966761396253327428720902435074729859775771839616983454170626120293109001236092267917652073307904404140412053291831707961590692789605499380145754750308522517693831677892532000628629611473574882434217711423515450684141919886123810024599152906551149710126652492342956800963520477942166819062154466856995364674636370057693134025387357007521292375170752900503971789701517796203278207207395788811887152766561527442204912337417884589881417565005391141028086974311321865498389623657950795331101650209593729975084417310128202682136304460325234629257366075952259330261092391196481895080991211427383522249235278958629428657075163612174547730051710982441419860693506945316542898220775044022667354286534015130483123984522104858065795050073987255612103105296891965693116376163129225549894972988004585804480018464852424076940147323657633195512147954961759702082146686359048203816102575259942511080808714880916240140711941859467416355705848541509325380263095924385180364479205948983713691302707089525312496936384907406824282606024559619680996793465035611127649577763936031276417105651442703407265674587134618756864102171341026889203592644707880012217386962531356450931225091827701524615792661649309983823047056122993686305559608192294552723839438582500554045193115563267578941694382509369498982579187285213009200151848544428023732063723268440016275719552679049604941856272375489609507785891601159518165779177059807002942092959935732913390166931415049657399336570035984384526330643250789087483118284236841483481521600762811146930660141253505319673755314365798481626826541832058695277376946501216106554269978962560889240939203645612058242350132136270006028951780160613902782660697519705372884716218734697701140187118600610529175097963611322835186900187978149623712856026176672786862662436972259487971718104892744444888380707686049581449647489095462629167322417302063859565942003908549947543355362584839313801472331865369621216553079932787579334075168569479955894097499645075864692772960398436096047622820591989050601698591274704772163891684440998726149138941081814253510918077388890677837186405389106238473175973355915323122334348394109499465761710696930070569850363158589268989231333105376161589749156601590183520032772366263953659684436949285948235930711827133348126222701376695973880140777230563435416134187462356213963923501286709385200325351649629088903749160637109629609628412582085018047268562182478802424756469057162573609115991428984504365253684025746835982728889422174103429469436347159250869961385090897487366467383380804576614192190440778719703018056087930368693467906401515502842367495119179323491270374559058802594171881188015087934310630105552075062493381017845663617738539723852507789558985549514997084789479062612356113456301877003060187915946410205863548795846245193997025612256122017056721348469392314050267259041960490768169883695671381239741310439021607805228878062746953431808442070726781404237038926051137440844385970861290027422837923773401633152966095767618831598333783701518622398816791315836764864709744641877094625844671255968135118922971675739508494503903544342395060422830820324835987806306627470749899602719105467063663786117179217473611591891646863320141992964087106406689558307716776510717169535913390882534879415755845575268608906602770595169522220543017096291191544007936741582310214765322470802558971294072152486891474756621427182754829449065163135301778775998236706469966372318434551046683622549340520483205458169720776801234486770884750598536006200966116451794557574585719689671095054045177873840434984252605062314702484436996880266830948046070500283856865495991458201652663143515677858049150482050000070493234769762131870794702278616719721710944537707633638700315281115231609364472423760072903150469911864953930386195821061907065940782436634732977812396734681316596823251907024649326514863631633728805550664248107225051006795574642687435809624115443783648441776455191891980077650866146643610687996233262219058255671351400237775543081706932868031846356577484039214794526270450362690673016252632757476989911234121246764355951821059946392372541135887212053606833596524130810372372456576499821318839675344376198406184531331340689956570290015108506387114337540047790307627082396643610859649474696689225859792421022941475040903137985461674886648879146899271017468793028648307535374517881175978716938515105270420683339018835048340347301724272538348405514365352248689534432165262802491660126162649643258771518367829052801624292832718444122937284904205213431795599730344943740644028967095955045890374358697064353244934457707790990680847681348680241035513363530189150139765028158805300707306993340914549677121546776908025128971234206708645992866063111277278773749422665892076837597407578309791646552660520307813224373228618832978452367972110999141558359120719395593439025146898393904782124879895043596194025707403452182087468101894889786404969117177654064826926939228005888480426993268585721899672409536456385713783680874057169706195807654392153219385198679202955668051629455232926730692397607604439016890804207552422765720851431648415130865699736283468195914735789987671146314907249863954685432356700545298692128523863957346514696485592871237576801991610590556290675046538976654966018859060971678775476953589515368061256445507131788620336933194207785295154186289936532651497033220137912375533534775210103913002633166907170880602873790800747267414262335576565162361701806259634955671741110963428234227896887628737457516160098876399076577293266286056766992505984036736555002898797312931113201407313024433868328695138840773456768023456855412853411196406483815982098710438978074650316936692910148829909416152460556534466916929209624979313108868441957555731491706216314363611696115183166590351877344301310783454122200387335421552718843120313554392941085614339425089671267899530433242551829797200389923793070970828118588949431681049567976404996070617461796171677299736771459448214761409698528604781945347476374518077630252589073872651405042196624068841578830803443947514786339913655177647737238301249454950519878933349900976272958371399796631636968945368339873968145025714657850501636652586122245770530499351628222712054609574575644262705431710275724523313901411131938698750770183573591205529146051354773677510637127043837598471684472099799195149346513857222912015156668654916667815496424925347082792758280535876307304572740336452764387574260695365459722412492531284712641375952255625591124537131848820857637053570990750944289322487343629358872465019728843477409733642371744846579181049448980378435872617244062576646188921155902996217299388263609612690600269071228481397501516967997028956553845784851619621548757901659282833792314246801865960511070658592440860714512660422558080952279908138300099375674853137641456154590325089375618573858846939799560168385357470685050015340703170807588430094052567760072222206766180395527660600447746564073398329448694292058654675898786956773301189325139642888705013299423614112757785228948548782050688692463614742677394306086459325828883474257832939352128721355295308315985434250628148159399840095645926044023498247990431498800698788997043580457750633903740568159778552316249441807733964343926184043152936575315676915787510502136678344323441507511395466036114375583511016966904505912241911306208679801886772528817181605005658173099851341243097008809745413249773460645714796963157805528139381657595386045462459939904984453994657036046876125775066871383208862788442110314532702375717112142105467770345714840918409220318244815598820462368214993650913714494555453587537204176912025487709464523863432479807632001786309810707578808311388690471348712229768208171253652968116491121491652636978454898125216893953907442960314389837657371526635459045897154138135758805810057339561657367315417765109582861204588543710982494613317400351292440259812026050613175818292951791921696023282257309585711285582859242714061915893348493483891051616721197298812396738971266126116123924159250968790056972097708311176278239466753882405075996498063891106238346677432770422107316464517752187889070973166748422731652024893266388863609904075112732530352346282237004868319598690842450672345911516670015664444909102332393314086143744457639085105927344116668690008353343329069113809942808769057691588821898523780552658528981295830960309326980709714854755221617070696945350011066086419047401742271866600750990181025936070502474950714187074076985339857176042096359051332424738926960786107724946819991604724760522384582817757980549022699149389199887526530529022759408864834775409425709762721674577673868199912428978166826094559815770410637762848156315710885510992711008935282631837841483517673927492366639805330294086941721927644051089928777462480335022881553886580917667529426140152744415929023087789603973066348612576535511248558653797385276304229784096881291771120815431418188857773430914325211647178266405582125959342753243775989557032678900835334781131847537558833228502428365991756365753635729956770477155433867192979231774425503471683465624494066443223120134446883562315929066434993078928268100551896802431711610313862539884528079050396424078078813384116362014728998177314806390365189326658204116717321796177707310968885592974423202031670068163700712056910340205905271941481375574236802443521358550315662713493042053571962640804960573552782767936231080150972634883887032424045427326847273351393302151124096984737252294132244469402520270747799264037409756714959775891991087051708933352734646451285743832094040655807959231507683135506078875801546638262706734917632462990386549134586778871206977737828134445913995461676862557857326622009406471699571613935037481098993987612436467731147737969798910834987886300488561220659271553713543832074854875625550843608212883962481943513020496487284415609902832117848444163787852738769478588320179686234980465084732670444331625088780881703950121267890268852415747767576805338953462222736832121779597184284437933342697004068972460956509091535924893844605275785214034694814006183485685416712805890502831680654150087869435818363988638956393904913386854844325504223386706305020665243583872212327054116517512830411030741963228907268184929762701723780697026011774328173368818309714330866696248299341620322483028214912120632153121021290863542847454970792909758502895714726730679585136028571141676795790174975750463766809631806735237881136167083069716206356785817799340508644883460193781234800843094322783961510965642073314530886835203072333034968998929603805430021092649630826201501638841462436822159022105590192397028412019402250614296747269997898545368604791623814097455534510992517213727038256288652725348176937703186608033719853558490027972807961374921252431128230850469717374819360267010767788688582512564116761342318964091686234869456769797045530102539395455720464566244845781157921924008001025761313834498812970617857188498074296207964582817932154905309807479344787161143905713588768596237212578683546166086301377128500770367020898660291156353806245723849012026213709717328973622353158514330927706855540195291913903205688014502030067333650083327666586487869889239646362272327014567272899532761761070661707570696128076120133656163460746914703275705793445609697204587465243987144922523976087654995801936735798378290963109594275325152272814921790536722500034491687083493739803661357542796315591662618315509187393554633071585682262083296683023585718196891236536903759473580271983123141291641928723555198426039207345015642526673876436855843605063409136265158692169334819633748775067616156820894206082817005967897684073449166739638487076512988779030619487294599289170211539626906823180889119125812100076645169312951307268835379862297000089818925087016878654227612124561192429231138190682164948621146808138362331247097662943806933683061273827967100143052679266859929520068030276449190368909585543089350672245428478006459266308217117186915882578094147858635107212895469765871959765033139889591834723624055811811125239699902895484742258387093123811442611760245463154683679829609664131119857057896608017209876413015509045878880769584786175229352321402235945598808527239356869314847407816083695049197708373484240265074207788501008717596970385455511114397179791167548573925231158078555985280670523658785188462496664284346775568879556845417162830655840416778652781805090920280135487780454809453215984904685649910553761273328045064204971074492545733049142193653787456840678235482924056708675251908781593249165057683023915472680740253188464604027303769398559303946739276551691140782654813684032502186094352642603962089947731625180477110239247054411662061732761595165704225644405889318247269510752531800129683190173154907148024138383695573513136591900905570517231630905874872713762617702018104881776875755643443568646127775035822981660530084470841580145701639579321876271909219501592457315788219079336337799972631154844898880298488792140733229184970164972320490104251005662858868371904731863325693895617353504370380293860472202527619002949817019045467436862571990731415034232439302775696251769638908039571582876669969766194745284291188017112441119094693337238581457662320691191345774906207714465458333866466215019043902524458687305201510269717686091321482701243169008613976166211741438004908361739004651332424764504311220139606742912148878391622383050190854091795731379900011957958889706288343575199068225139331441203247005578711405470302653145622218343772882361058743132465662296811760404995875972660215408122382001579604228791592853398218563953864892458741179163089649007313375881394854223264213656325571948245032853263597937708456080128921677986371758329690636078203661922209781716646664854903478358009626817676401586281717179359709966928075051621047123602478579910009585282997418807509388229261578842760398178483922750737427690742920587680298158486223491841450803230624731324498272308553657327319977586187254633979121393083665176386444744978481204699008311437883317734165205349560409877554855610433697857441363038111058141088984573833860876748713315177709035105023627731192614141005787246182219239333181291353511275291553439300455400644569790606206538375758536156139278953344672207512925823585484822323608673789002101766178375120486960853728836388066527270883049973864412111744466069785497226252555806718839141291322471408547107187125545624977346663441797343165935606017985167073776675390378567995389238935201555150065324423707020146995904501195002921374031394000701712350184467916171612069259581708545550799246724277766222372816079140584287103322167901300663602528774805798629406265388454194846732443797546166726317575418332628951262513721172056576823124698737723213163765106687283601920949131467080011701744170436498642997570589767758943576921575240574790195744717414450350890535389836676723697596886093554905963359838081124109133689334894465390811820579743980522578225036355441040481891610940987789908433964436539521084505279670766742692442812276413018318511619025352772959994858816346179846036273270716287154412612317739139465686634525957440013944238026056467794370245229925757876419882230922084610552617388107486591895653689572333750306485156977304130480981208226125739640968470265502556320038113800096982746796455439001586239477573426761713964097792448200451107564982194322484390699711920253652123451917793390212422202257469489747642302464348335705768928386408032720317125795933133367553535863496816585997884277033851711401644106633266111013632051596540820330140840769834916943073978909877645895664343004159771388352849503701800801618168002815077141620088219760820694516487469013982736288857620367686362499842702417392461940536673181119658784911457461403958632894340400883884173826413200094906016539704422248502969112681189565868045453834433225486434030793327643093577267364454716112481234278352545720110290471264119948308380423750183310660016322264909338884810411985975269590875893579859766386384173352363931857231197019542568456004318352915083525547265068728797626849608144127952505608363994103997832810699538283488935259794201435652049583179192690241941748313136877395606882386206684077304154571644611724519772849191679768695329959630924216710720999535855349509218544859449210888345432822906369742810376831326293883696667875011626552974967952894579989468645458517845574029250992958255450712391648362673326757642584543814207511321175938177015743795835157157718184054677646402100791024782853519875032826440300302458953815865700982851327297624770089906769299672638950453534349676779714047164833076760496024143348271062361720535215906083536231466986126001130424145731247904265272240506739636892430575331223266456191665557872867267757966671066455955509031977409471174504296675751333150428390818909295891742487261655713258846808151360204206054066186813118729794708204970255296821532183817312438929774568892619617863163861929680394997768147716210870429141270371747197163890874030023616381513727476852954037880206318273125351513254054312677163933998876558404283194813294863593789751531102138811137105925518060635567841660523872599643574938576995329354013617666962130454020358620650473879895257253954851001819041594267806042882537550597559481452928730587810696582188267393254260556704512349393426652096277943790846035403174932932247201129011717544129004346197108212996346369553700115568753566782403936165285974678189427828378001335520108982986944406217423482890698320667090338106006380116806952192782758910935157376098437292809104267193248879765955770584188833688941629659322242625825477690807346718987003880607554319602727454429377935081215671152736065733442333217319623942803060873571534810683495195552105252416874215565230862837837706205966386518659596326495897067112778945502016563122868354504294111859411426114264455398015090177201414294717338636532659766620008264284904675833861412774430020880844713252840765888220442528398720525304470919086038366977063402335393104498275037939901025969606328218083222692543386946941245758577717423458703021276417923651418748478879304833151418675563501920437546207386414333150115012456190634191536629607339785670328309618246323353419336181611329228371221010842693026121324627922796903944527251841004825848480843494901120170374177945685135687352011962131342951206575873402469672354498735411234727486640579741297616539874283399379364452949668839380473076307349140048630869067957202526460893844778269373567784465891611586184015327518015571101302816189220322029087894762438954065102689016877411198983350701205409395413397016434004146302982780651448298414229248493606284170464928326100115465646946659514926253514761293960105639372200218792462402471908094840010132291605671525583482768327640211085415419857573168467000742777091015586958054930298797040991201445983925676391416381437541297384048380240510397289825156713035002068547839275759563122725656975392319730363673025480613853687885617700382950155563008797455377239483232009530777114786703858298643065350119977194736330329677878795725528386665630664293780695806526053198720077560692733979082038677976793205668322149276785877208312464639500433392269450400229259635011050795888992772827559675788061283484696808976708946401237902127212849975849813809032868547422532332768141688141131140843649345255460130953456927650787937190803604522991515973646417611646749404825662977506517284593339378161763407855722264370495448320881986262025680372073899978037098770851245966721080120020878344493238790287051386969339173711636381958539504595061058982596154305975747470989021352068243778510693725850888100152453456663927471777493274460669410930383114626911107929709988262307090318769486632236682645017229038316811624696627237100252647275889444661588197226250872830797764568501293626016619174533166499026372774794609996063881473522399219854585485555568052357887264531734325787253252726617422398772394471384716999265695169362851522355672325805003308032467403353885137450377534802528100931098170128553591794222379295630872622633239134297996359600125434867181852479684788689308377176225799100791200623491065705297053225137811005711107668125165146289499555099188721388979770723517137651550638728410873704416598393109461889359527415083034118539158025087712916786112927219986547105666063740036667310442479080970105234255366230932922534164978448187289346294840276651021666167190816756792771381457479429879088392234961014525130747557934387274923397153782466251351438959704410179879013724886674290817346959197232273588126617521811644605399430269861567568556848726893849087780650358793257143410536261686503208587559571464346677708091652775109562544217829165764053871332560866467381569314823677035041352445948106536159382941344208642662041633876111160413254630263540049461146795270268592364757767583211089495723280989769085442359582113187900764508094410919974299999196049281802794572361028723843363295098355959845529385509110192482778220769619822804311856942716920203777495745951438372081414177042955861454352510950167144087232179518576404020893535117782812359756877116408715660360958725752906396834531695653294283542991253426102553206126483741885409464023796294961954923168698617419670210764599184936206773290307872135108993637844486082779051369855038550969533954586486976794118028456007432641796234949174921494314940610889645409105737048223925098749355774531515148437143787649907325634748757888450732527378232650516588767422512850224777958348384313474481802755191018530149517140941938398553050415298962216702437855261356570062707917081040807046866668007234000391478400330727519800811246275849063293805411385524230882492478608276322466314709220494468501346184495753151954419235846455907718342189303166234651648664570836408472465894067107409481375982840619670735214692108805989786189357883830848767512431207254892799710367218909188504917033038342009306960053443199348752154283111689311052411215252923731049411192579822413890559710624591618165769967884926553005276605152465963333058944297717030587832286439101687937955431220034465010525167313743208908582792439504939793150326677805159806978840741480885629101165388242750526603059698242623215034708606957928469074244217372613399593969393088497892433789527771022395639647414786942114304189096968710938691866480453025561054691902155250085712238633811041355842457197357848437747944560799709151811916828745222273495440088323452971238067377531817128518066032648810453092783194315755759697186726485561808960534665546772538519244817905022384855406789127339498379822009949808279604777573528936918759042546956260316777320510823592897971931892165994341859063377280319290244245470540500796987046804498810890650468142985863836933242477322523401867314931184664072722734671533534393455334384079995224358532521030530153189037742346611279997437953915754002640592902209012255951154282532238648384063605987103745303020209805822784366248566619621853587351968829950036341947426370283122242346213008687460641928095297532374147942014906587158395414396889015676537011006478785914900171775950393355717641783311911862923949693157254224656180581150224444747672096284381861824974542488983164436318549755174113256229860708679602602305292539792411038046894829965943907913115279042502374248094973812843951228632767147899767629169225392807029143771009434225007600579595973378373476966488739252986009490491454110882755956294747334829184155393366105676219123675710702043724517041632691135894193847212708795255610534745525582724563814336196828660930313794031180693726593636377238355446044416662546521515969736099025482179746853261689313343674278236102021494559712773652578497849662641259957777136782549527514690267007622618443430555101764682362235116469759280503209248200395254554078826174766065563221469952196343877487916445065532460468417476677452088301143110279362195571100504385262844852692059302276575250523047944006785707872377546640864817055407286271118983339088312153285210975266861211608744914335788004701275569606570844934864183649434035450855244791647645262725995795923429002574130803854981541768434287124260013868892211761937929756492359536905626752538805745233633852157980282339405811342451356869312167761030882940508701824327698145023275630728340960577284893426136553959321321276685142614911516577654311346563059596282681601557988291162263913564714399059330112455259490035251189569214034468323953371584668342225649277203503778002180908996011154823604764046880750370477556022960083791336433354227474712599468527274323302637796933806841621338057457404806955358520858774925001823972936779233454585435586570395846035584001171769048699475332642190366353862852373720779705028258862805051733806946567658998034241608797927275994842693260799137490358250216796537069149230428808071815352466960366274686231174279470909545450096047870584187363452600153708132499333208166817708097922579940107104109257087716957234150680179196553824696785951067212970274962558105785540646967901827971312229988453447694415632103439994299129078139811663166639799105471469215128514033768847152693438212192564309662532270858227949859298040253629078767473361836790318469796026085688119434053604824316067955158435982631406210125866685197090324658308547070674911459175968772367219120253572551666640572430715772823070772532755714067926545892501047110182313110245557606901779235474328061573971485504428200741468844469858941502611351084529572640751894847387588256895796872696100622447581850016597082510618044240397923153219924895403515378622824590261139575894755814195790260459412742528784232629927172351461064868053405604156827597464977482374178715186071485467333974185586551348559179707131079383068179138663917766370321162731524441038330309463399978922164434590853985417211638044499808181935170295826658414423265104175942967758289166423964839727589435440771915057799786576936336526738383699079628391128939988881610161755304780237327341740564509402441209387918935624962961107722881833053592205787063469704513012510703451898478116348516107357579341014296805864232932511505056093104389454699288311864353873902431815078344676714094948671067292968872536305919336800498198090515882165015974517891879306363314301370231744413416025357275640277913883071262417723178950856545728287971554662873641623080336411800480820646620213977549079792057372380100049752190947421772648059066162598339862256046400736873668073871328551524120003465489700962381627949032028170213930800652173660913104034411919035875997195014345284879876897551627926046626196774384624788606424399971168311837037707895837227593406986547056510061367069498100213907293233388459827856211591435276347241511222779948920607173888493845375362206204155595388773070661517385723139823681210985354864972592011268932424445371295478672202258868407468425024931983467769118099955267067322218872008042211358978532715982282774557180879574617503414228503803943684543065342674228167213225913638319953353569237023859383511245192688649108746671726740495248537049096905381305144371920621103210725262400007058136531930699448795749099455137502839321222189101150423109872954732238855834170982172219312192370201641068791330696037839747109950678563302103989626089747859139539216570195076040631271126404771625226606843599208398806008633590584388673997586381983069291119059528999671204900560809484545387641179782124377471734408375291870764152171637914364483632172372682182236248221873213467448740304362729588287543371175920619304575092940237728726254689025871231525976453876097918073019528614421948916127280071345617988626120872153485643455227967273995048664989232072496420221497516258517875289419377462922913756724131143816140389752879980194731882418439683851951660305558000890941046991256207982732766345792738431349102674873980870834664810890171302487296900563222114928625841591560452704614152855863146998762166843503207387553070232469045034916483101827158641604191836480888351994868506171231217567022211105703256533678746205839568169659981559069651771969771554205801779740210345817127979459928413568045089391757335577055448492024440142583013844041021284283303412134518565067933730396993009292550485870626759177651760595843446266348398162823895698581337756424276971421302946603884971899206623162192127477791795033634204160457931984727168819514786922453779123273636842637600463090088186273360166967679524341445324709696219639705303060001770615469259506858026044427213507189039528496929877050027874402029133793168246827175600731138860349869735323502465071868975491152494053335486075830634526671507320068003987937355748371480572106300355840356135094279928765789544939521201641780390298330851450704919826121745153020614608117719559638722249038408329778525724888713248736331074035516500728968493058213420809542286799959858715502271410712178631068694420652456804334336715572994693619307736392809170872681639277971591577327519642536720084959825632444100458708278370794924107698815944142060091005140836083638040828896449597183065669459409449032771744464435301726029011012176668538797736175373525708401826342003046119487622348200903687263832338551910499368191168789579829175705783529385868276871710270697314614226062323239898210453972088027006054359239759084285441369724889473719815294741972882365719126896628514760770383369381026521363631911258258544461703606264515544652402185136946513573032654242377357247232908116838284145015169408970733864412573313655228902788499602092847331934437328394574699415834552754651809467860933026471845366232161023760989439872639212069820508499423089915467235876762342703143866048344041362614842880509159098715097866225521887197714066835944248060331317527605241430445864635014515596640029701184594764544362761200944433758817744799206453344338829354220825916039482990256812227732374434445447369453828208018930943011737993114498406631085570008663685957920291903003680868492782289676461945168385004636128706874064236635887210368827675453165705272475555983311086881581233574598563933772944639801150852253696336786560749768773270979224480338330129252110947461407386693170942482546709862574754677138772912724683462660574146538566544471972939047142393013490930435548445614312293618959728117321966885667258672290795113410106902643880052734369222150437026304353943501965723453793389288938969656692526656066658220666842290943761675438258383706324813658861089805737983170962834694533858975490024866263617276039302378394987623319119127555495197646312229430703554148851515970918253157152485681532110202959450586611775132008817452675004214162439701814000880854595785640457657176554077367942231205296335263895484983643368846330132517704700829018381623072147654240788865514837161707361263764415957334580333321069291483399173548387675950109432655353678959208430590707202050543708630833301189561304622782301019492662408910613417335031681793326541191774218355781838678011263033915270077125684488335531479892361288998830873285242887376828251115894386350726277406816785388875370739304389030230687810551982816593859926616225320835594383095794074340893767970063390972774623400381591412546976790576894681438518911392829867217572116848941661267555621386212565899436141466889852221136192992523258505623488587656318836630594431420768399622376652117888534494433138461637181720790751477450141855477666716221374052403163019965931645422423151782213427404582402441952984788011189834528195411798252768793157112839982770121427226481324216200482038308739458922889249627200988743756511652360697124978163505403095714805774208484886459479007143435447609005144445110096172376151894385423683870872024597811021426317269594778980466581543003389273007308444669824863479629247291891827151134046296248476604908499454343175547995095995070938392526880481409460876524964115347986869508168849222570403363330939728774737637199647296527533021129724146066476038371732325191496109606988899814333142207673120674970809973046187416615579868718066303501135059951369450958879727977731595138100067696617036373713932345236899370700578868937232009428752175067366267830346187634982485613038880828884253269478458134932285418947909703804713331824275638185497711653988031653729318115164919475029561333856018313761459300848263138745642127015446313608928499975139008007806262807904832380931325855577903629216761072590393350236654722273502107571427152752224637460772289898184942534823787625171767702342119534702442456054373424767519097546100421137561618279527166953232418772127260410952926358441093176805210880095961367483989100299164311379513448840204164298608254176033324370098060076034913090868393664559175083860967861953223005833291696619924851805558684702297738646606914158882108655759203550453198661879782590857342121239468860106252302505292526135553091407840833948427162242912178923617786660050973069967917323503773272357883939743386876404577404701348032607583907235730487651876360828682206263041634233355461387521222008527973374305123583011551138090425897349652717390972508755041528822285587353748782182437749018993303068797903460756737297722342174036848365937258900774442012393558735939082088304340460774752358666283933677948174588696145122205946659520989473727525732052808562900984283283879955063474483720306673838544459440472899615790783603714815576714283727624292975332772135268175714587069513311294386295971205822265207834783722549761675190625230449286386308204721550614665263363135053064780105059367310504114534285354373473406023052414684687306690313773220386733033942047825421807987649416676988573021318504464934557691586336557766649494568639046411733541881571685384831811783863003111868640456177625789385893837667660711549182024851430670021378082350632578895593133880336207865121978440613362464739085498409855855648859706660799772668446291546438010179059699033739119144510319138823499929875124648452610506285496776941571167159586937791434477357960002246002663746996127919283596032446067561403714175550305340184250309700915353768652995192958595300253439853789585265424328503146082673783751389009317303996407903546706738725943385482721372206844491185079062564842949545316138726828616536368116283784030794017083420894783310005582905568626501823410923484704577325437653130165790168703099346488076577773336124431237662355881803257076131048109397322742898057664049928191919891276391289944464868957200073946489513611416600252712367080690740496165567119837077272076987851975860788057392383081718798492755086694956803258177449578062299300635953529506502376411818042640469506062986962661591545723307738654472162983006693325132497211537508156059338294695871750805961354296331875144853085595127659166982336787188460085998186653286826856959780232142478609265441532037113359018393268381141691174822795876744146049240449574467871713760002122419120865346134781698758116809921474577097268506984885831192773087595387344951154211417802937405362561349388416946138161675825177992042183026387970123366462326188732307908159463776105484159429295660453875804911846640589067914242321300152848184359762612085490246329027860377035060795472758419172761922580782250008819594166631914216431758885659595989556536217126691001175459655043989850778453303468001180746350246891744881623844346590426021293567685058305893494493172965914249123529443784670118670407680542393770959394496774712178055606936701423315016245259304835671293871252644621837365333055583059031543869827510818248491343918702234020799715190270814706609526850142107848355086472660958045995024658553456063847344667760827899914748313341240487268311330542313763424354002530992878977564247783311809887972239600129207527754120276346979817695329420678977773929534327370217948344313566705957510833557902746367139208375651888717237445531012371969229771326225672830766470374746146858746511533839742908913685082195850471558069188056327169733298684164958608545537606817665427400504007767688347545251495382810062896884302471156022743820198097504959540614938571491846569248342745186553909223096788717153618747048938625091178841895306680613314336150455065376041474478182959569701029338448655702778437289613639498816667132188964587895645799983835689577354915330374910120146822516749338654684336784584806119092479050023960755206472978358453768739357823385950505927712545954190274024031360201515233389121264738920866174963880193805246159189593420992765728883616100593873161046528362888980630814477923569540005140703106178111544426333416330294626851705462833920055691921600955354611563301561754225977240518209765591238738877385733544478052010271628200612459973445477875426516665568223034067176106902857649023042217120838954543749057531206163476964236410986102515757881503416084016251834854997574247257723183002416384949599195149576129297490232302756165755216827431532826688461381734454082470277344838163068719520931677449052328425345018978628710673046992019020229516129345955388610690531108440666904413521941792582521422794068605620053518045732678063155514435849231688594978454420326669167837557949088755447473131233555703832597289878311182263113568619325664119221786358692323856610684217159185516345558325595898996993556447119165881880351458984437366221363991133319635539985570907510357380990584351314850334444468188930679109685159299319297699584800693776578475775860742764331077666362585109550611900110994215031749062702663503541907078223099242578371890147425909801483083219052433625734085794107480700158534244278709119932872454273230754805226680159323195255711173498634663443390413969981117740096787346657642029679760114022341683877955552609323423447401634660982371937474059168323518147534201921815249588547022462399019537909896157341578089671626420350012540636315568698300249589942404177504716519919060218962153308735817501811842544146605059299866301780799693694469082608787962560601867539933302089818985826537370312392099603880619201623785915637739481832045528229325430151023016995006832575634312800073622703530805715339989839362670947008235605069814544660002452946458404872472233665745309958752550466019856610730121535728349304431420359317530532421654283001809307680465500752211188301695684125156741162313023346073921061985212393985603945591616868050143955295678643976725952696915006615327695135244665984492666396788169873641959534696978310354925789077514392083138652812753644322036975915872125735266809389949309969513093044864240233910119008734638896220887126508127428566137763984137446408667543986774136686829471289944647168317712091941022174680825590560785356735248207885615506959384549579310669457473557229086877878333530977945870979522169818961749913774247451756917677731743295248974426715277071742511742866066767579090221245083592208975716157415858148188975869930119442085700500685418701873812872876624572261340351617486705991727005416275428846352123992709579822616246867026470060930817100342718798678080534952475061716166273958555388776605804060666095549035665226275958113076966534419237330172938626052157448756145456038638414125766272052494869556090446329387173697075540145124452008808317807130634523510126934368452698062750077151813737862484798683000414773874234789357379318534178058520347952319491857408389942765564686505428455658666463284659207541881335520511277364576221859099048683207310172740166211875862624837307664865399613881334729893721398698867649231813044610925241738200278083935478464461997502646162400626478181465751082012075479157498785849514022468567290818999147082563440555481344217678039809468249101308798295239704949238407779861750746055810149976474971937116911804854456846996078361459333673082671036931156152672091029318802410508421703772336805002154217869009693428290976958930664964196596210014505773071345051452605575921089827479890018198262007276525926704173332731065711160838998963906061091737721894306037874482520955880689157025751841220477840234339121898698096703902955170916411519472986541899660275553375209671381740755347249125129708101166158523319071251746844523824977781658419629481345597101701279729747265656761497973406339748446922004936445705969235972355450214050405819301920792308400818925794930909847260195982477831612320319828499797232784634474633450567059147591875770222878539515785444729619241002665757045766485835744408973010800534094290374079567949311683692443496363237255801513960351411365684482968546295978566443447488965853882255811741443517479071496440229705283580172708498147391094344696173573336663406439202574302609009188399806202975277502501272087156925963466968165799614522825121288853593999939693320073828954107486050922938815837671929173818570083474958933261255006905445187278411540287252373809303829367026198742753484576659442183612866986247163769534272656665184617787606282250787231453951809581320783377390215049481953851076202335907236279720394993649779311865292468302704906721558582490306749133781643396750684798046890641772924146810293473934519793716752925050097246462236974462482529248205579917472241003574004674089007816025445838229621243401774440721145302175734415984978125430377028682551933043606724785688329224546885304889408701166684621532069452474766754878296237005939961120263282589352343721822528126643515342103977724435944350439948784005221029196178602600569534561578963585530084193354661840456305363479926664084909896981996554553180246449509908667607985346981506411542008859934170905643609618771372322349338575137098017167037450975216439405333032862256443719421151466799506370138492043185145123915585937330347337610663869744947976465925074828909395641241461464629827138094918745413847115710306774584272508857866618349951745368761406249597220758550924723885798550938160955784783407712895423812982449430677160666350959728340394768484665333345758667003552778340123462623220981771151669970499918299929474907189598703635018305493055081640967356928492628031948043186683219473663256188169890866034637840020526043547858049216998002771024521638642280780456866301361305870975263383200156776697541709056039154344691095670309537428568366052794064734139817594139253661012873580350978086722449567442419229428310489855409779015607267999564693639846075048866437265709132203134302207312260250973554523937977018047714348683705239327787902629955340432418825778397492184464798697662746102995241191801801787242350491947101094832581245940740858648744445147434678797569235581670619701260018363095651751197179029247007649832761517754251461529457526981101425674933810373196183119209516182166880053412434321593650341880658788411845638645411281792077526990442008424815872839761949768330456635108230613741474548683386912797095758327261629101723176175771247212088281991368072327555830446397407841648725317483019227663638315887678710223113791133679839845209059088416315181771601609883525712666761123662876040737296637997927024005836075425786278801253063034918668896675762066071022899631739490611112674700777932831154164136569277587950456524701442302735235592156211596381665865135819161923119716022143143294829455985956917388576557740121041899510736367874211944193059034951914128907337018201813718189826106906168009157199381139572285938614662280759755277988095821222826166932214893109033650508876521630393372852873054034491142549813654384174655951934955533413972587720891201113728436182891186670688315121263576881577582935641509270106743000930654459789639216407008068485168773602701989296450369172859373858645717148036514051988785042306525866629442303718636049408210412650576925121749063252794001298953839871506455796616688175480415221042946796149573242578506340284835801598638039314538747145411274103896209890340148090019365272268444992231460107442473350848597673628236465097940228622284980224333613429485642517740067370532788957368567954090482559724006545308217103603885251239138226102702168949409245972126508961302561471429116270769206644054212618072392265766720666663365585030469652322003933983621611408843073861212555157746305417993949123045605531788233521645738400893813636381509183790683190244851958779354379946298290770463604899231426858642461950992225745342063143284021180054465199761330333366235236192516985544610305974272636456788183643186556003724560332646396487516868208689558997174698474220704470309539665081951256273136761220217411701652443981053201522426722066727037968320033863494825773291261206365001004915948175902999093236100852709636882763778698054353707038340040297085491385905352520030140908871698798526331707884664759966184547897836075554705646936547451957145842700354057864516149912916011977971392490640501287250886694618672767165549548578864178453269202689936365024152449209750757921165268939531392334541597398939121933546645263074380227162159976442916024018500643842864850769832187816110537081167409069315340472942674944780092059538071053819864779642164674190000846362050836351985208698501859123363942358772100154746405349690705709871645584188539589158085887054487597856738881958402539408581639030190717837752243444027555185823501263206112559895304395876529093904202098379167215602922713030043953341332619482244762240242758521893119198846254447868329346939899549391493392045777444707697439450647817989422261094143273830714175331556584587467740520399972758506516933951755641232903620769376364660398621707860707047575943786645473070169119972038852169154739723764414337992623026984464185240656361990480128150853436169961381536065868428237554801684781756719673494571239654214418876794255138697726455855628398240539138330337249451607574880327000130406227622530301858954286633941617606931268598511447137965747125509736273154015859508191975249958257458869144990851591294692611464193637898456714755268954518011020610837364732293114130271712818564805236863242671936402185334676234214908768355703804093408097298517823045966043808435844378254147467190925465805759696982323342888721130233023261248369147290232259840806355852745476662124956882744915779755907273686243486611067251827213710250435233151765663444772345045314609412278997613131387813040738593813668054901779586650712609747355715689287227118778655202412891071862186114515516471523344201854033340688999024457116577524582912381470107379396371581109951076229789395074037311589002451111860719749731716363784205920028393170775450553378307714896303426638762782207828177668084159120973759684507567525677367031466915494468313770320141364406262200417352822046681826875384556996715073410833443009560623076564919008618568194434113607163840807262224566266731631552674477100378362290505193300542501416048881538093706767292320808313050968431917584094199232677002040380364063756462434759551516533824402873884057606807616367074325835764234604366838403165462970366651433358593727426459581802753352952427502339179173566742278718783510088841500153460619132571984487704543763459240023493454466447765225569361803163566590559659434923695775533059550226309015808191772826621874841499190623528705059889285668663805728908954657508824245645827770801545015264601871771390247456096713343447636124109452144335012562447749122925150855571139014030864206911331821591573156862646598292574927597929851196421870413522483490046549517572209904919461800286731233648518192536085274640711855163042288824516749394661745152571967516623965728944724367761933416553371623267266057724108194034547636496429789276098754656793154069051184914325316360912521636831807318494613633308216179390976956532686307573004454143991184999848091296282909838610914642196863426868727221447947691103396393213795778856238939479019923043485179739651842557325600839118503036554291353015435409943060077304463336268788640225398824257695666665161178667064387038869604668674516544580670730625741401535205920697557949047329008347965641360660715962175230517838100324168474130230329267215979662592160468408045578864539430494084545900143881345871524306302746074180449426931222425812090015696327136007738519034346215023651788356520238910023451540914021171807898502027777013810038294920671841855575231825993406852580024671855018541871678308045888398613393361023422971678490524489838770540022004798244820336554755900050172283931531668021335285867695027584492595757391480976781118243636170424278323343427172594293589916811716973305816410863371977259443598618276706237323296474443415367937685720416162689880581370496815658258102585022214282377625262346062151647967521333297779806732768937605782948536175699034322032491350526506993780407858310664384293321259705760978714812793045610106207081481909466733738299396865271077712793267847382429224982920877801894215156782822984986239847619110071017217085343749652551742232462997069859428291719798697028126052418433594899022222877889961072233118714974561697042860496838999861549083130936960901076476512115323038298303032555890093507822566733771740228503803925398968860681952788496021948237626958996288080393376035835869273887334940847745126797106991656590925976620819833344954236943731406213201010305404779794901817447419924302775234940207329657199581716668221747618823058129619565896677707688258037648221093342137678610079020386086942775115004006859802572940196309163516813597342689225746423693153144226332416636685214226093695228801349215539734199607077343361534162559427128853732909027569941099783164509826471896985143661294388413165613369783551809005089173015418884982167245839733390478823857817992271642407402046378960220756701289231438173544517981121377635853954143099854774842429327963246769674280401993215491072994084433865893350638928398148758893930943853613863708145481829173351139133061631453451584941191325387764392417016801525239215142147220376257175584855011596285926427971886771420621939046429016549926325358253260810658893778563449195037728765148720063011673078449790232380536883278342195226527957036403881649299450907454903687307580923988786845248090399322915443576979949599815746310414249478213640323898548840792180678658598980227161345297323679142065200395659402214358241534908391547318124943134985217720119526631069906281452740120330359556677570265684476131289806993007804080988073260347964370316355510434371642023891518145911929108199155779126794730976345550404185813239622535535615796454896349764941312426184183915556680043002515003831600620036071587557035682529969817696370008415767387581368353293599406743943481516615172504389589010017890985634829877735673724561645308749572077750153656735885475089322175266746526661228811273244282964282012713030199131238095286023255887269061655922670790463871377020371715617093609157040986481126091141461284208390505355143954151165924929429281706786340347968701081802990985469315290770297672793851222343031411220252282896945788044731359623151572091464630487169147903552830363578386929431605940748896194353752942087987364848927142192631475133445638278296667316875287710865678053165817728546850287360620130079419152963661160988856589858488741144912953861427549648298766693950626991603428410079584823878927372169689444717723305168482232955175026165784984422771505686925799868918289627380545941661847041385690817301615795299914533868243767782410283375753294141120598491269022148193944451144221655369195997413253913352851622859100093535753800385246550823406275263786623699413352927307582934645738400870990298472796934288073074531661419920728019571761071792492300252116654519218802392969860624812196062343904562071575549676569630360142178001819172771348037901049809926239447105769837136258538933000556972399538923890198787051698249776367156683927517756413731366032860036167424618206791621379730743715723612962588732715738590223630935404687153626102168614323021667790640848620326200963687979934452160869188023785467523704435142826831154301189696513501728892386603773118054908513852279254367743705005162981862058787628885037558386446988573014210057756508418110823727393540212281131670014225277644067030917661351953906197760015429414799834852700771184249277592322986166784225104887483731039224864053422810626979978608934890080079340927287521265083263580594773644669296987301456677969513660494084837208896546043989393934997122496412812244101094854120509661345806875973020593156020533336360702444862125634066885011225328835284293635808026097709017684005765338491773649848511901234701238300553133924454399780524015296272239250930969449323372665254643366910179942990694944942881998051139465679222381953805801685376016919947276601528517719510829893472720345237796063042411902613808685376585168011047502872476293043463313846724136800270097807028291135058329961746706154905775305986013274665210936184872548897823439460527635163042443888063502410642864436371948161259999665564399019352312016681688054837182365475532706065025403091894309032414947184796763308745593868833418067411270464683406490753472308651735864885309467525657943118141160578126603476512834372516715183979377759637582843639887443660198637837944329515675730337493088988680865169811726568661202370926963001998470035999117281613614230973958007040789722267231694541321764579159111406563332272969130829608821124352483786831181696704643464135492112498972414158129286603399284151507337288045025034164281570460722048532071349313449818369259487606557466760520453300861031021909250727896580924175308726150241188640397900092449113002253445772957037100387251124441404336274541123476680730495728973263437051815679227124908958813253506474929785428572536982607974138096455142300892762128848936333659687869420372855336763856552983257126132167682041945756162311393311768127502903558681439760022532072458794627382070082943912696995282002819513298576673677903956368515025915258653240173430809292777578563022032445279672377475035532129016894880102001828287729550944856688686776263828713662756185512546435744577729059594852939916453355332743688404072365107577225855556449820079794287170388469874865452398144768575070330027838304218757182797769569081155419031975883611133572726197110223901300927863275562805343205424347857001893563641120220966513120294049483461823353579029775742842505462801262043714739347763326353653370229707613255542435712978211605658869905979879243599198354774769168783490791844191260144219496402084330895347115282004320599422101307975273116784192085009846838223709548086438612715206219614215418619643175573523633542344324613235586954936072138026734193293110685041664530238042772131149130534270200452194761712751943526023842702083965854069767787461702849175669886962872703941543766060786117459493391889788246493149951571209605091695454149486729720652094911622424958583346860667244010834657079524075275978507895113441261543958614049978753340145907684519265698264090849390245092528611927990790875441885039958746408144259383178958836394172548269792316759196490928411811093477810883367974042503497046558456039400182398357423979052200233727932285867386716230325882226034101333856407271896269525430163407397845086075068643444628741515908148475731150594863043848837618502470173493434598577528977268687567730525840029801510159510748842420016059671407684480403809448354359951824474099562784474705766263216782689028839746620612254347264429932830022025892525028891484951241918131175597551466401553807017907630475297839066372638945866547342662168708322470978848458556813088106602295583618428481920685788682765181451760882047738471336994620571972903291224609075380099733168940376830361633678677363187971728443171807912089532360412898850116577364226722973051540716989392479171237589867424021942227101647892385224509725102617336065942747457116708848810484445794014682989014672686897768016530129656418120717989583810227497512050657102229326926689842332448877592693542646476233198364838461041488279565988077320492762487086470189784151532914552509714006228222031833698564974434401920482713650700038067315458966884712170710911510562534215958085376840353533142583305388605787024801877525225754893639672666936065582496669489893974858636532369240197669013918738657870327241801616598221582875463724128877462656803864879229133053234126604800476293779881578683255888914543765829066268040885142777009486702758838149652360638634341563108287028286401025728861608583298831490842044580764399274551294767348148176142400180160660587964768110450302985251637768316228896610782665329803259865341074914362314734376054887894935681011582920009361500333251931949730412348903614687136121687440476413478268440040389953707099464085589105468312785330003666448775399015490739550396220363834205389837619227164752115974378581539754098456554294128437449280089091288286362180283438271308059444615074656579432872540979669911584974089075345029234205073415273002526024029295991705948753693132225215304386202659423925241333783244491630126012627311269038381558483955320621581035184484201427892430064476450023978025052889166376787755214966545693714060876952185972249411339822673794808290516756215124095709592335834840991339961158125041151627725595913821678896004528334374589538423711071232924070210833376584089263002557949124946540489251353556944383959850775841778391159379988299707980869981743839528245017388770072826717931069715228368730160815747951646165717994687589751823701851747454323665317033442877597207245230431430816241479943770224703902185012447246075129273978487182190421346748941085947894688916461953219951796666760458359671603967380949160058988606860977136481832924311127326654834190943674728941876680402325588380928992449372749314114762993831094004198391286852064448859180463821482468606343247690941851536953959501570653541770336294010022346949001266894892505585079540076173087709101543260828883017424692208992465610479421141312406464862584024185673223405045535908921686689759208264525323037281125808026969909916106953296450080867297769593470947007210211257826822061304329488954244058602575714634528992091528569222539902636510709799139060922480123239049254852083314410939528881516845658442221182838892134691023255037583642404967109421786191339964236222666966648845488287999570484551935324565267607796503769572206669501472715965802588032537636113020280261756197330677493145522882777283541105745753847847000898374844253427915749299344810804280290835124579897632536744210028687973906074815465477189752766005501226964808208375696157229157239362690491849694351724761565821287813184576211199580278110277045418200127364098454316889792028421395628440553582268225390928505906570918301743015509010809510145062826215027094502876642349218231193670902363905129912972170710916903269523566008316047086839685020427550612161570230411874255696613654118332420369354722451114015728558015869797261765922228029912574630258900908562916187386669291398241993219390767732188622785283411447192993444661148106664856050619879734205142977788547390486613153916590624916227164421811755586566149726618369688300108936327319647979367327090340441332687051110884933551886790404344886349752764277154390137198898067333835375733366814733398907712746503720937762445526630514270468361348930628445074777518272504424829896462069640185166681862056053676897519345485886106642328260880469462395595671667168280461035588317679306211788792737560992342899577404120875086704617279943096196289422083815990360247931595342737698755429110283456916428434615901520446677558022792880989487777562007946568908275338125852564174461056421121529059330469870676403844576822468429509782351282572833308577590304117677036947093139237647401168192530514098083350143651158973486740951923948437824405726583168198878022573194107706034904301400511068331573424160205957366725628423563590716770213897053443191594634138271411106154026982006449188649071927582376620006900165836682251361081951103555912880155718274473779998885201639723864175850661801819301286156271339320903852294852737214190699015520890883477682840093730824504890803554057873034076750575349933979072954283111463686458066237868181900701562370861570388820064602064699805773198791788170854506633541530944304761704503179650675495890532204360486098392084235959210663873646643414923845241618358208741092195698587264853489713754094476754906955454288375827614381479356356156016996679361492246896043270276637702460783618267039975904158878164409064476562159617252286214201234524262923156467948200629539749597347249102168484964995634801143319645631025063352715095205856416351620362783368484924841443947028428079958476039237890570387628153465750321056130652550858660807356581236668465870443509150665838755229881151859083424521957653584645857507810945067223423789959307695660926005472752984569505846856874686370057954407668397296195304586925685115294547317369026165273185443436304317756324816699827328470607766925626924090569022624518940915931599779322884535622852680884646017731946712203770369878878570852499288026237505465733996159712076506259609854967103542988976695773590217687760761145371601229440395278909422076615777039663020339981889913844231631331776309721796211573450993969697812206990775556756864084367666472823894395975862339656426397845570303335130372022486949655475005667751263701206120219395547790267096501855166555817091341876966727095402052031330562632297712654623378681620010268270872339818094137051720453846452080603009910997414897393827311334525633223012088514808566691779037077228890781621653353433006324059467445903250722587686960824194852265738567364030228478355921298135999212472855637044949165943192588761640536680106265244448909278401921022033877706307959111161997403216517456974083558319241845122416277338621310618837549484114750602876350172795977515066127622580688297752205343927393593388718596329270688099248042443108591341088831786919696845635744588395359032176043330478120218734206703962100412903011373514865286394596524531089616106739969297658134085399422036177777900454736141775340565943935718432907811242432134915019639343075744761792250099782179478249679702792118423948157786088545011357025920026750230092311226032117578216466731039473026031163930393361285905982787782520291157772750222692516895298740892616948990277323853953640220751500955523435785209904310671723924673157953197436058166491972393356164577196138213079762220810564308365645746378199102828790334810143048558552992038734885324490701947758657185256308702464134553233413565116756563229277609504151536327338657787843342552850119335143205607555853708520887602721809332049879066863726200443845130136294568738270773499112389778343615268261478947173323760158680746118834223712602383957144379421427176853764220772025274701559277270222589412405611825999733357915241073877657841128558730308167191739350298686847073283825327543278236248187472515262861996912956454797504787264532941501132255638586351363875348536528705540234043832767396236003332281446341956579814863134729120250561949084571828352806326649415410227063066402304389224500114631681086780792801787157699289999253481968797518380800111112731495631344682354205842229898115594850714219583033897632937233423806776724055205128725134664860683790137778211372879185246734755219677670792510346615705254907925372740957271931249957241742480217047822080543309543734989842282885764884921905576794723081406796420867774468634990110290049364415874176994386004806635854568139920100817066867636074359333273007271664486428541945814141232926038378469741273142102097755169658347179837504950189055070731775589513503457952423801712007739007104916172501649292352089961989357653018774406614732990969417293058306102844066031511604245081810585483641456039363128493577491528292723695523966842287099560885478333867438391430248297702585218104889663203956595255101626456299190578086942285839232537238073327843477943623354355516161181138495717492289393008049504509860630893456897252010481796194050861161880355966992244305234570509967971254166088523304376072615436454004834106167870146053634648682641685188513629824444347834990439636820354154898589020864848251082834235526449758779482323238813148940700116925494728464121981759056069661199980205156227989503659250891526471475251020600586515436305585459169340088962854383519633811259454207540514892649145551443453855830397769681962555603397138376627846927866301295061123837248930241434434909923007789687366963271545580416933622089713479141512453989306504845695567299231133042211489316334018242668251732251834397975400706903625640035917893467550442529180699147787683706284196018466427754781760623236157984470872824366153207976152458706904677521284461484438772954896422499224469523011692430059542250845342380380749001489011794189393900907094393282558568706415452372249275884079105301441774399608136483293177457166638378239035271001758523544334769557803586593432907357986984087760407289280595121669140075745677375910969739442163098099424402194681135774114178495032416775737694104067310598424639457209923695534203974876078797869013711056406046710089930548771132073722731232226077056760470382276581975254592374353761330807573673347569969047027237585462965257122241721662438506236819990321540119034037377024134960471959693247797779130032376044199529756817989084543602564364515146600910992963931227262184137400258620973555405924608429922800620600615151986056710166891263372758781464333562025281848899338930731235925441648004440943752601370253438099608872150035362257632830200028687175428189861761189297350952988227522877868602492884397937233727940300609953514042054250883778135757516993004830644894938435331014385265176248918265077224688306942137819888150287906925157353937258710172624646565430631452641756038372344606649851503195262678492673177004524175997829993504526102203907094599108025812700659332278735321841418035394385839592436092228505167293367940270264452627900814387110183433178919426274780877526818996114355236466317379131099628545695102537424894891683773315391452253376232839910527627380787079406107957720107519489208951623697518484403953700581549904529519990300016384534866790571143030141607495013832152690519599636453243077583277425288299336696816962052982281511439977888756047907062492619317533860589843749606627835702762308704521290729645372549212529649393425301030497141638855830685251033767263543732755861846841072888296109222303173927963798529025869571500485554168205213293412280481849293686588760982751007159142216770684118325274381865179551572427042955802650302803838421405120138729105397113057471934391336623352224174337637590597665100902237965351322970578586065897897316939956308975561858832231718592984092037022832581055706222601070806771891641932150593997416786338607439386432652460472588966891410365059578839501792593155831974262128786925180233581197973564900438361026161919729677156717240308369990166308561265667624265816417914872458538197220470869669063171575676677705785620387835682248958483553714147574874709948515664312012814980601742786055796372381682272015103519388056206239383521814564002246434366210227960590382578198557852517024983206037567322617824555638863410834792849915726210929183482391039162140956415219767815886036540598406964247022051465044024798881803649607563738100800593619060314836051630092494374666807922724406420104508079675325839122939673947321779594789509048444982471688915891478263435719765602213389210551417367591252348983702351757001363856705074112233990608365005869912529871492808435346607656150325481596653440998615643859985211354621145692365037045262682036430242278174909424379257948428267923427399810352106686604697455207934479305152740691617856510998997691044144581391376403577106253296006963605421368940397503055213469029280258130651038508354968339273782724516943761055966516383105140820415745691480054334835628860034569993507055538692941730418549250400032460163410508873689722114021516342486519173228895052644409043585009826474538825183207368879055070933910069724805384893799978779910798860111663188831323976005560280129470616337641380128473435502653534749272789247688753286999722278291595150686975795433766708766116085267752529830570401250091621530074610466562065915129468123950798118190773281167744343322786969364589464162438031367248194326587271079576321108734981934093065909784580262781261438702356382625911429735636839090747093607378797561488472032768138149352404517015390886512192325296157674205282980936849762514304180358870110694192190241295282293750222333068538777318554166573607123752431879491097197996429833315286751170495766978265001816563364082711635834525778477182731074227165278187423720621456193598420857482250491141791709918359285355871402798809236367788479569728979292563011316590287176898370735221356924204422055905240047204665547574557615829276218944541581164144504511119096292427758678616354409153982207098376524902028367591680627882583827112264364124406894095978821243855820455946627737261422295137193492307950299378548711018709915520559011798662996038734018680187446172468974975843921330850097333001291688427792406890978978187845381711899568615890112760482380915725091091278285482177130515941269720498048296031827116292986742691659517494229784442905382105829152458572489907772821051630080116843988734497659874638409093914881476794713794728616247232351221278318215317017812342759295876328416379024026096466204976715320719081442662097094703788417641925052023867969653879574527943072218414351565013513837281756674270333616627313292151723839447795262107013480147566950730268707360264747114456983269748529510405672666472849642294972391836191811362548805533189489990940625268629903511281507566627780245097637718533597475113787613851143638709376315574343786228198982706647899982001246243416983681471779426301891055956345446117408464238938509908541744807670002217379404324142678777281914902018479498162022291111078320425783637346080549861328709982563817269831209476428140108521230881092150133712906382139375483250642312146145334723456433242505190371517345121740775609012990098335659349288785323824721521638779354222025748803663376538096639893793357541936231559175463003608907904913457304653868159266344412792490671429119270398609894320925674214181461674691623866822086912744033038192916489981360178199914405761397100031079456792430025881599699760248790715687505698769039251654229260166103409858528975989848305231623809640478908390026302560059884625519520126080655834601881008544962667030866570874285762884364262951733959337391306442339607669280180285712484512234092249737649452992931311901091427126542952897090499460291583500963533487324182821327959518591845043873232592349814769532764010822018181382550034767798726121345419434663290377258896720592372132458592567096962545041906181935398969337502714319504506228977188451358230823891472277556973907395826076891626996091131616788173095568901141155781348976002777115712006461980597455198854467575022311913773809335236011532794804991371401983433173503861049475165760339994733349637972652538288937654895841049480721730047463759501681508153922072797043117049773972010858452445001087447284977529844062257969396862210732319356035845678217597706150777382707310800940645978916940296894885027208288645604961071469691157073663543954120148512927336055759357376559195379722767668043536345406629122192952125432490352872182201745798441261578320061870842505419460505671231005488822271640164212437073250749825638121038395443452595079190637638408878388380895871708848494282937737118013450137013739625017912347511880824041335328763024449566530026771535831356767881768292070655839108126268046219272810119618960177370430659261518637167239157850880284164884940016212656495106762592769366172592906674118574335792186087449306309223561216335689451537676655867878756337334436181307899790079456630839056580421180650993195160265155182156646995835805232219191960181591557746300092641363644844976160204526273170389348550641669360966609304060938063534581728445522003349507393456444422648142125766069518066743947005591981247923893388633340938927028713570119139927880515693478091066877750543453849104865433030546969955495704515530130236341931893415013976518932857973189103285810586410322533741617817957499563037408454562687532789122885576468623997764256774063748573267259876166488177312608292985499638930166994959322005275812170741875199795657403640512508671915378914802451989165879445502934696587210171523960428782238440497487790150657801505122145529086002137596629527985343547944038948585081257487640638014674504071398041282954958414918632801581797990336204274696725604614892582155136921311261662882199771209783519597539813687546019803102778963925712030556846929202089116287401312366772693231124607909886624120092992574934196825137829372975971664685625092385129166348822325968188477280412182046134606123778296077177664402123392143748903047589866916234824807612688057625346321065828124980868643465222992542301477802052707249818625787432666361015410570577249964813376950889716025415231269894299279106840806149770918179531564444766850252961591175017489709743472798978327070055351951685190640699487772858414572300843887130102625922446988629622723084068181848403955981689946372987500641136484153129259554445599022613985776752800513785173680966225499047477813918362773051730100514487251951079970069627846899497476526908101668518116430098490066233583736175832194794562866531391072055405210735850519727394414352716687131389934270826611626970718329052194471881789429709548875935493044381073660335497216053248471001835268608173457850790647646722990716107365380447392492551046695114344007541764807548981188316884782876653373231732878985956152961972132568026205372902076710722396948346180635378761544534953443238418106620197300976065805159068741036936307383982562510570596639273440629967655049615886137019016085707615982864955081166979832003812450194999119559411857353600223013612450666658360665771804552378365801863827784859744149422853279526745810478658494477079216952548163783427924585507383741887069715394981303580173628425172730961948279954307419208530153531078402900481759661857487067590040859095955517941661896902483030964033629284903446308913689390968158129608040963508089624173852583617769934134034382935788806237011590313631054589804106922441706637053478718343770857070631959925303395132125354836253999373877699553970594938421483181311996554982114602459603370551504992590386540243089202413351234985483876737411758458487376103834054322361716767382848642069528537614005253682971949036110452809343054494002400393287089777860944265914651879691441245315990197282471822903808608836299810228807918458846370954974189293365705556505359467829145482506305206271872794814860223504407462750675316882666741998134472682925364965989628160295900833514556926430040614595326970911985541091503402055322273766969031682031302665304815428357132857790968302926654648243966947207121113939866010342860514721842795166345471913867535301752511032679487051720543092467573645568279245470362183623247105137347888458114438559705353020012797709333765034968383427497929929098147740761007069100277755129786795086627398256061707327549815307905773761576928017093162134143634071296567793222710816861055555765653230134165545677403261580681540243094978312567604930008786482666131249786894958101170924206060288257059287272277831810095868455805211901809612233079255475379171390804933993325604869749480272904183928145310201652633627519318452787380391474065656620001555754341100595688834053304133269098064178810500185085528403368312290417501042275447774253443917396231372883976537842976699323399535677721034510456188077480196300252504016806854004849322230494533655558046560580295880890645688616148550375154975432011302886025284728766908397466041523073626173414067669333152704057368713306173714496231606485602695163064944140882409349841002972952432812985294649797387658570543984374092637383896641754626104101154295933838091317576455362642918386045391276943505373768865741182758541194837458344717119615873477168400328359373041360896398214847973887680488958849059996659029871928764251606174929261023606433936290929886054364880593875433422954480457206982856476417984617721150728324753333752095865493175049351639355670405209139271511636425710568706038467955938529939139428324790707649660314574958747320847094676655551085516539947765774612694634895470283000254803877378199174526764367359169606466274657365649631147858198768303352503352903705683636830033996243991278101080825136061727101169422718256499678422117126368004544859432746094793938524803517176007311522233093774574665380248173636812501513299952213276860329797028947452229609444163152425286044969975486044454381275431975512340887465428958269597533892117100611158496140507632208224355521987206283881640310369674133164242006757601399713855332821196754471737922473995885599090938824840088491213853476469587796132367797688166110405509424494684602554174145472060720144888504089868195459260994921734396458383314410831600647886242808718806670663318051415289886129062585290515265900534700211866039888632184550285165340351017441886337673716211989151007785387569347059966291897404722855153439797666915691975255271387455064510464284920519385482577616086408531328678539025667061681214637724178660009875213621483935063412898766714139121530486931966044436470216131698394613938255395139529771203351325675887032076998677954520157328573185902683282302111999691963474304043217075719565178170514828401928347881734407326083050871730310115714735695283922721943480489626955433381620550707767632299301669773246260928134741209169771367421803237790263857763626463472266217717570976144341901340239387312115991169120380897082714466667466915757443100466504676004662321242697658629971474333883212742131839991109956657161474230268029394216951044494804490307695941597626674374577278259629801163070974935716494743581110040966301400260897690295328162773681727823723047439755301481354734307687072680761975176691508558874597654318824464753969078844594496916501657350744439069888273314275759551625515173547413156044059073889983822645419015968224675124126981377223632827480596199571755061531745054707451265186414337517723671635887106791597151378277260278748806830728557696797923509255117684878461940268720003213540116039390786839841849481199053200869185084233830242311884850968699929540433916408664283905421784708936388068708471885234135603980168456516078786138953809192615301040238984334641890838775418762524182123418316093198733238430580248750253647093700940456970561373383027494629482615100037557395706506404239270599976302803692687080270995741974591715347307892003105476936014148548742523052599521831271270185770144089757299650231483057159567910838605640608370776136103178407361837573098491770387550302482170777763489512016389466539124270485290255313718170004265559630258536807374895881109655037887730248071131879190495206319760670120974337784571769417296668056847983440158813934057640070516023354709303304574186058550249969296058988124989139314394121754142469053805309536234168063314287997922730265317102305424503225513206699579428741660011224543964780607400300494975946329890631166058083234706873459911342054041472074761207745052889681704846494511468598631341125612548502557984962339254207914153315073401091519100199897006678743196621187026283157551061142043937033693481470048809226271105648732524873365942031099520598814297176775354670322233315342686731600593629900509498972277229009037839414128822371156976009106262798941588428864801996439488547677468906147998903892148785509248744240429103502095584246965048284255154560708801433233233986981010098786591507856563082202957389175311683457463977369480466360153761535727178692438505921660824867200038021379257354482330437052348498451434259645257974233650788924039177661728958079414592453956871208777399330405955172617506575055906594897390053734744918191944220497046079561177128657241343349952862859524479577442922790492970861808533649453375085343627051801774899241766095657068013744788889778994919344557150051711544830809611365998513024083335925689549569155061448475502523674721482269187516722445505943399118923535245138649056058735239069217835709684269136680609745999320391017306909229084369593544740028094589132561293959962359071437335884195415382362536294198480603665059865492911289098356620250199114072007041044818353747317610168933131841753553176549559556203691251955943971595325106695337921080787388700785393810857317312596632482627032766252558735276950150816801479384874180990404996275254197409888991859605149816935497399747694699004875664518401649199292307208194047597862662163543715670632089316222668673679810092253744209766855861864374862795436698030424301309712872540589925894149329960573162102485227884398443845761336697023958660881921334729545481464600239433640896866568933795004744374141809929219039262618479553091939090052793818240438321246589801773008418667800024667800057103492741569475173114072045210726013447113345002605696544783467792313243459311163914186189484959938607533525988689539318650505992521658750270634958504258682424061959833731231393780880726472816007422723925057495974437325306977935144190282892131850832119079521876227687463942220420658298464898319679072179550305136321705272637919422417362326390410444033635442923486697155412355396506806296541357598758063592873770256695718463035458668634295113943702737550132108981435755652797348483385236007060110431386378177259031211931682458587813885254713758194797049961588222674225924303356883444193578735614144006775687028415440115886837942853918066949422492702448865567745177566877035868358889937032853798782153396809971403992247527434053729906817155784486985130111103597035933828836413379862691607421814429909936123094456898543441280241275268040905521384515128388115474702468278021170993040313243825086559694233294080291811735086066419215149746527446564838835771625224661650777754309370537680433035225201388503368612299975543266763264408599920067831926202647897677471156076812362910459830788615606528885094697127188392864530874750179787483340441483109903220790208045940790775052419814675427329943765779549122386478171715667939598743566380875389393031854964117553710607084117066552355999792433211649677723669064755428311708435087562002104874847945996324481379242609541971572696663400701400520985467817489832055202552259911553162736845535724637116511905036504720473753203838923729502389098558227087067779817888405347874761402313676362254493812454580975123706625466348234838770702063524277583075288977600646145462318794370873996835434295238868529773883958628481198426899308358481869138795580502029123025828458761465198167486120805051752406020420659281670468807198816470473354422205687010371054467809984457532683726055359570275301003679357725101391638031722240597759193716193419635990966006891622388790429050388731858573049329800374847272370569291816834631949585592107350158615275524113875325805599194909541038436318750845119084743411586676933397211208769948371102669120116298259408067388233442487932747060252259476011292763119097593808051562014050909532307615746866143125255014462607834570218212309646137381064110886206051218281712328798104943040867042369738587382900167590868567156232153268333390349410859970542498120266960161806463329825933791183099572076785642055146183153042870598987320312640433397912744392004342261678692944626878892678446999128648159053354578456406130475196196142570241714708201571690104627579672568199224252240774765422327894964406443269201450810318441523642957853977571315342406523806251664433045570612881234668811968161609920464902341881130746499765924824838472009408978741919938884956785850146188430940828876859027402471653832828331022404857363428561260193653159793382754037859184992371351221299339491333919812500064229811366261965258822276923342425477264609280784800840082987435008040809037067822466604350249686641703542035151850645640273324779103698397537744041723798536317220393961340232552066535274527703106328117332474295480704321862726525500768447855731841536022152728229049950696700197708598119593116210294561042504539178220336935478036732997548934738771604656841130646643407708048190151750146265986028553075064362075220295200768898678089965563309159650581633600932032665482284196130645828207064529101975740267883720480032593530835490574205998837001735437634156544187134913027221812606404161343381213201272578226767271676627932225559769735504296325113605080525346709025927819093923545884066278933250697139735723807397024255013380858645768744660685090409116925202573995814080293628355914748187220992431362742303728510329657504805291173365169406276078913707650521289341201284843130177319119823690508856707351181130430303212747806935595798987589681765649455237958163803744112877088894429360282528743600112123725591642679971941170168590886023196109576099123539317120447165097516906938693206416998259216424202047920698795963208330745141813726150565806850517402507516532282731684257494290493764873190879879889228035602977621728851854801648130570707590440104274482871039671428466442172619298896024030774184399728522779861064846632466584828953584249781899106673963320219478820675952621064283616649206992684231323601403421905862534028585530652279591427759724327183439071380462436825461222020221612153390356744296932700100227577018305076482426838037038522956462544941275649945108745098687276331364046736192896934016759771806923873732246243530569723082198802819426859633990774622133540529379671811414445328418608338002707132270461065135003339909279847234961837887270443772588380269265329344905948438604924914106259076976474243677782545079432919693512317036089901519073152868432977497279647321477395338718034807934471011533711222031717179245933771929268067488078637000684360143651055713060996599730944265604879526233451223536710765862624085910749726849041063228766536282773504292709811903856575729280898812259756695773515445398204390152256198801975366040257398026908193669428117874064218575168056180636469226251368383013570238992427975379510702438052257798198860981904006632383633694034373087429240822394009439371231029486260834350134509886116572679235049682138225480879535949239598240186666551954172535679862466497478069729115748965325140198538635050102690101943238035625496775129377520165290055470797130087261528730397525978501567935030794701543385454620805732255065853108262761424808379995619343804503082907163749843933440619850011168822793283003183232118254402937201721798471713618460760552574798215483591131694291557274236949699217648209107725068200394537607635471805306824151404332197524793402000104978799453904675261247228721429555557092874334182782627534498675483669727090777564462718106588324664482743044551658912598694683421253924206382458612125452533129958568264774546449320149554462611545195669291964138777652383964928000720978807826468341190644022411844928712695841904078134012592731026058665570999480445306132750795254755483481671670686136792565280303801348284467575549398005044327565436090161240390975565530523360360659981942091054138590802107956600546349427302075702499277761168483130629696166454248562104416301965334694790054271636275885289303036356105916069367146865108714443623582589361473970278626834663636830618706461053115412423167360805915032358869872987688396574041889929035186771805911577998461155363123821290071442820490718389296578781951206848554288068595211904188368092992539800652830269605225167197573882398166896178557534646613193641160788156631968732446015074142238022757332638581297905104873758320800493942570205636937466042629403583060425932430864784558540330142205241852983102249043607559171097592694835477851684591998143825673034941809455008971489835532536351528910035009583248782009121482809191093973902795739076693292031325276781025624325551414734252207685813755816213687233982503609150414269171774777516722894726472475649825733882558327050097923576194926819834771419569745020664400529232636833589347858716314507395943585739311391431994234574078064548918271697380518237545957317312540268436554333996052967353265350282480465481674131001875184116170081871774331651943958493444503591411704214541534746308422976779046019048263843121702041291518549120162139441305943346397309023441844353991944969907384855823544766259801318560811508876893245372175829359535482393892660120977871134739254292990727690122935591066845039955155279544784583453309296052770480706440599525525747401597556983280694409848563443106153989504192972240387200136519422474667815244276145425082190129087328928475245581183170161329194395019320139405061525718610838489448416438923558827129011924037655929496664390573783396503994145492081436132584299543386580518946079631964753747636867215587857291280248040571136309137115232091227545148212288996700339859179104762823232424999715311258194960139978780066323357637674382737390956278028549290761812964682778041501693223391847329343551336230486754938931439443033686923141496285528205535345997545803591976783591163672969845629627662987879305314651406169292280732499723587271871186876474501047455714208784465590956676496984407164681233961662305610317877892680246040085399719145801590094185042136104986023997412711303463343593281680706404293637983962886231918313658548248330191760861893270011182847575331246809678208573285902358112643513320638833886655662745871195491783598512605381566625532285722700923946149379422630386452100382653027040722385534505915836179375493709153152084840923130009679218965056659657992458093382275490149428989358952360062489651370093598845124641994316271277264058987042541210218918362702272396621129600450661391527234091403588068570879078901936099893781257206598509404481110646638995276234899375959987699787854230014494732671458013399952148372287936348729166636942053725687417366386392322980357209521475530135188571596561426922446269533175344572085972772563625129211600626781556644052612280580906252398677717896041639588114056892977770784334656931096609501150599153334185242115411079486045157348039267878919317056640506595764066339338622170925941305316870549319103416654548820246224299551808387706388068338363117744918063362431672219765341646706645429357948632916602537929036664291749770189196889440958166440817852577455187814338595412475626530049270914916992725904698633465661948455267131741328200194073939278913845159391818773978031565903884120894636555853743339336042527236456009550847944183396577749796726810912087946343118369525345790707926776689036806220763217813356597084484825374802410950698172785546209352049002024178741098555109879479737091523706185508038713172461001300675446709195505656984615473227439671385404660449072696498984228272650402964752812121245350462465365501010064994145753012830449322558381740855540841788518104197736720228589401141108691704197012527965699573940286913862201586600360958496981759801999336915603884407774251961959671326186023323063236194030962744241710860642881559222519889538356764386565306201348777920644862386050555656644112401340865694721679815773070770806799706187136078874711978750390160534711911498605930045194664994993363967639538615726925834028272327034614479144322428941014466301705841903886857643707380622338025280977701756985557400934431262568693373856714014984687078203880018871550637023486710314906634463631944056762841729164085359869711882102149149646187213804959674357146418029202137860408723005685441360250834981885787684735437263465680407874121301099110471551055547374928157969224367430355476150050494001144257482080965249339457595463431798845383910129731097945854420370264303212592015259150375564155939690153597849364068989954986504531076508012924237121095099078585677794486506800970995403556212540164436582725106070506218830889074389453464999646258862009196767180725862796641960257938329373623168571665000921617777267413376960598628121214207657999689159809538478434000643590886372905146807278352642452903886091152054918325705063300270501214477540037314470219792777090263125018691809863187354373648484003954791876674012571641998833203790648026199736576898922153132164782568019647818909048317807319938113720536284276538521041281660308271763881847583823634227433297739695192917963081421604023585862884110238056178384087260040650619134900923377754562945230582883383520173874894346766647770809932183543761714637962979212708017519738185713077862759789538041986590452092581961193874119017439827242968222372636714903731527271511739909299075534500197869543836286684612414817902646035069583862416482127927813016737598087173198511001820755968377661890172928335974241116256936050186184691109986418280153010141584761796894854499873229974727099922565382777755870961168989005910729364528722955358774607516881508195381432570019452535207615732690012270464840946705374188861650285114623342857160254257605970311803182607688416422492077614783608405124191520014284707451961206983588893087186890526066442084338533501604129516874239603166842119760210916211367916417362040805768639545119551491560802604737763950858062935819050909197401221020749491147448220076224275113429494386713002892064154998612728920093374783933050091322098937124268805255486626325152104624910198614478972204509449316150613405007135397305539469249663188269485395794599988613471835617458696936765271440181503093296574379512794077057383888116627356933031981943692197802789077266088296990398037005397857511384164663642533691869052991545380538522192828628033732991474641445279852294674683143190639688120599544172564528538969392660286203452942778072654728862453540390508971094085754016048675130805653200660945839993621053073107166945984033846523849687262042876592647577993327064362660353343001273830130715360976608264949292983376749704890695848560525674343543635895370028896299392730786416929596373613303947512581275973458958412332043019665474687954172847684219874721650539888543911856636230504054802963679934949681131469050552676020956309891191191715472944695999105422566769682361803317844781308032695958996135727377228084453503616130680779086734228237299473100020519467602260560621870047283455095152087474573401469082787277561433530124431797215828703203158742579331922304696810488945632991081709471139000790039267228006443267786734559857964823230042840583988781749876989186522582209489547096351823561712045218140816271645536424920098424206799087286742949137290361243623946353326448305469389041579139817018974998853958564023396194663573126387747018139990727382276029933162218984498129936517048470107599581397041523368199030414359489104957753710506569173274376913040688739462395592426028620540611314149500222285159603308411262364557776004695076266776316808806382050009238220042146732391520889279814324011509873962022033786122635403497664883794754609222837532083426192648839647534873339438319841742751611871346217934666406790924873021799902906504624649260857156114271898072335796634886143262525419347236028438076286995737735711105252663983356623723577410959981036629652008196343045021095385457849862548062605534650138195862617869665117059393781990009402327562133349054576118504857432786899080865124864788230121592228590008566883102539571419758663976001551569103493800966986739298992536267654753273878215581736867631532336536790706896462147704874020128653519444568047505801795251222889294329820819172137090928345099807564299921873099730736603473359945826992027255645507342188694810249083645840204568028960471058290708884949830615299074881734826640009444955524116161682813836327453317493050055782047528612434580269619187173608559805769090556485713505613211553818715168173319828706531504670421113208435551127406118729058073104809982537347870541808614783794659777116092470272419945614226742128963294612936058562091387297664059867576797613405743905560437347491406915161754371776601361522211536124863286450918617740612997249866239196077568796430313654393947159686173835758694615610974614098626140591279722019412443505672462545903741199966402018224856835657257268476219554482710335968290824980535450076615961439875373054124274921609003870691482400028807066880450094405625491849532700797933374853002310865539024681983779230232058964527273111344217783376067598748756033649476882778472649331884056222518041874647211677459120021484457921935162649328116702275328997290489919075632591219774441773236293938731342191658288956148558505776111841687255448535171009127006699830988740738249380890769788619933381357676152311363907993332836929399915914500567267124023692401078020117396519963185430547800238710144462939451312596106228826669880191365742179574255461113143669253166453108483126764427258713683744226145926009020301351979476434240247147435144103991054606657436049039943445213676492773630657695716208859545247008858693923282410424607811882128183765091731736077437768806274322411385991489909066366696825155644410357044677840052470796662968137121345594223161867143243405696890398256107019631113910302839045132481904567808540702667547800453849990361718106429373895095208149628371702354913818201807962723947623072819608872789829866851834004108587083583460705338729550565075709232528149341375634451383441813111043718876421968713153379424960397787500528653404885892101059386573885130577057618515365984476558280442901141645387047817885943572120348817918165563537094689444244691316556658766337123622826737274284196993261638606223433316883870486975167010241780766749854781253293567957707604861378308099245037678709196413193780366953347333854261484114990673973063566284733619471862010294739707767042166440848366430487492878784900794769316897076794098464516658073059000891524075241995117471998435474371368912987554430724615585377840652482848383726348420126560332376855530054487882309753225175389567033464942038006830422039228280037945197670470613205909249686555043045213058674859279464592346734513668442969368358320264086861563790829345844702914416984037913447760657842741904280610744743107143773117132117782795337516390201410895118461179691871684031578004140208832236470571353589424732570211158189952229104184666670468318091376454422602644023312015935017789293410116312203999784975759873590414700703117153324998327127623918878596777453429578488315663422178580072754858764168235134230734818200915164535373190890503994791959661526267090830280669752806253226251530139538590399117888876151352996194099247307748585259344646340584309031404787351357676848734077720822030556002715143509621303352947989874176472531942762737967108216426940315353788103184995540917782642013547265069406575923015734573281628947884865574829302137567159844297159755231767663437794970751390778280320558187695645483612917254464312189687759352289821624268926403637810253282691344870325684215953343597460718920625001104697545350827264276570535270746773700457229755134388342686814724125321937559419673360314147306597410395449383910810914704002398641350240859777579126756250554435891165858951285264711177317592228888174446692899601123345141932530064530713227379264854495309769305529833690337918919799414953576249956775566298706171913351223171747406628299774596286960056954493183564900321397149539660728735812621668941631126419147790737537394723779165671639155758336447286665436849530136813978812430973491582432027262079963736184376926845388692471940122132329430882709462285742802546969242596802421422032597431042402581946828900846063848601901184775131628519974274211446249551978323301506851581829893227664795546117185637611969685790589432895493034437549920062692422730455183059556250627114144177946252577084145464694550720108605299228945333668479507110444213422633497764839697074355250439699320876869703333578963968118981977068183023548411294892096185952165505184795538564095577830511673206584824548496004857190795864350950089684791408197117864080350212011428963769597297431390454853994864660459673427545004140367206333127204952672895940816542897380928737842094236886599493459354950950082790535321242949457685043641540224951979923676182452325431525502990976274850457196889024894088951281144946118762978807279657098456654495857825824226172511899910442246838785238301721367027547850256226122421183336069234066899898508146973269649563255223555638647424699369267572319066683835066091111228060238686957411363471617486677132497621461408625845571772606639590362095181277864776616591555549147468438141919220883953502485466816759051387751887096624098069071578798750033095196770246054814009791772724944246906766559954746865271179208048457246401530929325803995886009028635845832601049834455482292446744608402167904809083494607487273930130654349908704971567212331763618278381537020516965859224903718872549826182409810990559184922040169603785321537324041646739111456342777695864838653960309154244753850798006661026175015260460791115387885777446811476434288094266503207859659753028748056707634371091328708303796605324946406861474568925743300163402171982659842355410269363732637770860311465430386551894647871593931050978170770728637151377291337849546361718583201833354296801306338115592829453713058612731732076215313486543850954528015561350450993164361571818731833585750953115093300234060688785821246943525080765511811321643391609360494135790079052452274527124070506697060233480217137863475356112888915506209412377186402968076339194934332340828628266633038972260150034737660716093608146311823682555289600529566281506925899559632874429117529775663940824638018347113317527455119594400670173330012473960371878392000910490412960568522774862879126713857047982033240414727774438668064732501589254455860309914562388725309974636681438158195095244480067356309985609945949169093479060245151567632771281176927319145884752335441509215682770841573270082945531089431360972768197773066259457757648543890304332390233660487850432316000512991473970587927724904216557051815717020536483388946078237676583542160193703030827541340184266378071835793606059045477807174768603442344707349062782581174555072226797405162721214389112809511134027107422514510217761161919591604737671819212264226047582851378427292572985063084054341648968432749055861969161045010542060000929000077014628970826752033997440883745033112852148605944583913351142222252411846356038464555551612969117439663405333660731488176901647074080612351256969341541908814745494811332034143678587602713668332545963216927292582059002264524418901197180562253445666269365067258303017790865443629112141269945108313705401679493295593325507230381568687233409681597640844766627396111984970377104288976807282326337523662345860470557493464640111738816562546400452417188597362985788836880899280600089467008788097964165329160477814464375465666645595707470480492283730065427647181901625293377467778657973644109650006823596632236689958714891226531343067985761342644272171701157548877719453956213905207742099558493469950726224355921459897028886790416539086304728179554776418207406035984608149434256896320349782477796957282689248223479203349622370776959193938939388886760955135802987856344497706876513411453646837061656387295333404749776480137181113670580787468323469554473723217190733305972879090756717499799345313289323072250083781683761778101673324212866277060631209264703281719159138018354004376800568029618576457199768804516551691554950997466026372711801659127863820995358055822147762917603263480531995810854367554049272195245711977336461067135260827096509098919189968908590803891753424790959390310425412084704617622434593159369146863440458618565337695680848341783898779568235983607875962560464935183539641723140998805059711674364451545439013848677359300837726333192491571163680216186805342541297941570569830918913972808338686041350720416917544241230801351124307849236016407498594751982207733186446650913475533656016393003674849010009934716668945484250219655245064661092736792440894005959263832334241394556361405997943328212160278120439681276195722889353884966145293992507917243015658363391179086387425631255667569162718904918079400896159481397402186652860063789493307224068752847238127239879533292137416480305801688609511158565419689180604869118342703016539326932173978791528680943195106017881754568288955398715580991740009294565934376367397914382552151887005164525258521071433150899835823888011342448231926744802713999081130659857860749622691800735316946563099235485244818126939277965820945261270037905929139836339414009143413059350962574770596298040913849919988847369838142196863168218808109178385631854033982155631099629850245221019406770962520812752628526819875674163231711989884987046455863019989448789030635212352946268066289927432542205177703422645895626032482036104304308218796726095171740068803033605332532897735830613946301065840661162934785087709481736732610268099278300053307546042375446516160449360032287420013610237879697987386117432985208992126279527045577628607370304661069188312400597674397383544880980902697063136953527439238218398274917586457229714804635386862222180449073941469566016135616715478264366601392930658163360396388843118193161352672308513630987133633626336287215699777824229776971808978021970156001353881896288996517648316542545952236696152430136115693874391816720967836759688554881048794832675180135406428902402468099162697556897796567492211993534203888850151345636380776498319973491264474169839526830239990609695583334813387102020533965703925472494446414933929092549971629946839717214405919644915667934420165131692929802769603125075450687263965588627962206397666071529647643927957532874644695755780388774117368505922673778731142813450397391922701139515419579638668106581090500883150159693672455826288951090152158176090699434918651621340169527998096220706520876477949717447715471717619145925749499342517616238812413784706052147285794195852016030248062167049243789821971550622132961534925305982570717492825050985140805542938522444657137371168017352073016397864347045583032239908770670813653030668652702721520613742282580217303979481403862094855767717884832622011115185618800563769368540860775122376941043468815890784319190394619184788470972669481027171784392149132023275321065686925250606289102257662131840396111847914080708000096468230139206097921615289955460015988684824371172784685397960414938009765336997325628858097265264648385417347219741935480490856848526715248100212194675370286434981265019215156147888738231843928032662694352984894857633550998218041580057414564383141887669822465410026868415800324665337920978012754251662006136902037015703807712043971737535509278153647220764910343713357516073526463968648500867973745486956658074524715778568716710227415718531483613452719736948388050938517380174960102164999040314921673880698103193286253175956067595275508566835148815471067213027636677684182041305145673523439297132325637376564050478973067572509592166662165591009324527442758082611924682489749844711559292112126294067549340457675052451960274295075414210741106104661651898270397698845075955563282976205577775119869060813943224428581820934754237057430834703185314709528610803269191422860576319439354590318230720322201898223043630020864246110271213105135661989903055849083464801275976229696256636512176752257410405411382625253926141806763646969208727155823853755889077598391927451990663489631896238443432140089869015361047394010067449597004779713335136250838807756666544167870374451128349299011961272659536922818240747446984299224025019839267003671591819359537734703085491443243496825289329492719885079830439830042782606088795786914906694385185929382012569372572903670086738218789703373908795488547954964308913315852802463979563250450516821551907881076273032449734358314380479976390549983847792771906263197421831173537914687830250439287493402176116190084007760285084328605348742657093774058914341659782016316885401470231180340889960814834906914531687360849181761988688019490675472659610919645974566059823727350662676603885503183019660031569870565231718253865152395581195755975780310010379362643659627832718069915611344755157579543391830361823353454666665257880149050197622996675886425852240120026307819585448255862887864700050277734893899864279706072969436866832232608231523150558111560039370557578199782308417668687348765463199438159947987957618161192369411619527569939847273280712110944207834051512080146512997533313972382273344552121886658910443459284335515939051464876156154668457116482393464164881022774709619074360867532067247070105419008554249947322928198367700938617304833075980422552346287368631637363331188714812924935127949888492935863068770312209684138317134146478000053259816046631560500203360252108225266135448074907992885571267338898035430481681107347300421523533789236973571984378394357078581087835571360616819980547581898825629421151117747129942870790944485443421201486529548768552122294095319103638900141046650450891482101966803398423960809716616756381640111179313028800994250600211238087225910943636779976099742070723786780810937040967508513544545683476072044536403719991419172704690925513695835436934209270901867453161801329509677934187982178154937119057391257964113479899454518177091650453515911192779222076775815403438196368914929302379209909424710151704522910636142122044217489460977305613557845769841713110893648791805117923839155755673109583005794627808300799170776359280717664330264930580015998817240888492738151437227177645848116662773583006371499865152666293247392367893387184089001409158978330608691727431316983018808189254071731850440804752948992363431031614231744769364868471017953800669949750507610860120436987569368778773943865435814830989950249240684029074132045537139303837767149287406015949845659825572328797137182770161711993199804244416049752573667556676883122586762215572259181190165774596065173511723306962146870813092813214257148619237079306457538120201745076394937184322679857879048001528063355425294063363566767547909706720290461917150535740200644703581451862588384937630419849689016535290665107080012190072234406039083247366603421190520474071793401227647115100361006231459187268467717073600673598056705974077052327608603034556417799349665124996940702293116876872050226277309390490477429556241348931901576020391283304546053981286346632043692495184981603362976056421500765333425932543360873817452425069134011521664436691280478942718923106379624290791342201442221424075511590683987058129287138728863228646596236575013966907799272946384904731467047483863662066792328126165794341865108630342083859038390653652351312794307450697480574075562073651751635875590875681824358573224371653756783643169834929721345612630531974071795837438162433463765283884145433379792160053413554069944989626179745573573592932824694853476864399243838719727196652114374330386182755016898441567724388213153766107070099476428203146831696118700912131911373167642929303149430962593043077488422596683069658038066458805948872570162453714982115549167622307961748127811230628135767465840278834660473492990775562475284611166666366475665381547087276676400307311676501914836183138284750952161853911906822891379937363497327037595612062568042421867488163191373923488425485175380299291433098293941425178226611316265962864800901199354357877103043527555842484720989858785341328744436802983714646198094285400617620788303601958700626004376383198601076654642471880655734700821088102584587831143711578677364874585074671713437336970061088501028888381969436779872626560649356014558294357827325442544263380395369868588164545542578345761747933770472082814682429315178396323912879771871507275391547750908934709141777016576959842972862908620480420285258141918645064364716803598942299584663753799639648813965698640056359363895853399999937298097043752217849808835183980152188882185828650869264067557664560617670363699646395702060515280699383128205140421105591347986215829818927622416743668160072561949861327394110628078152192977590333874421053636089418744066888274949572396828343159005341511694541221320387367472915007125542580318661697176988847827514820574215830101685111457978971948450956314251990884590155259390866871215144087543203682239178760993090277889956874470010500907277471952884227240078188637815054858504482479030069943023767689225113364066615528729773495870044444465965652730516040031691942451334671474205053660333603088696336205613264084066011145542534393487242371338960298371754723998923947057492729551454813736149809680709912129127724878020177670369324813182861546368209407677290500262787500305462456065037400087322196529245141330678200363960095478988895138887980444032019286816180971437141081413600052879616705329121565951281633608887967097426930180511617832626586838962479426309337631353177130559853242585373873391598171330825056533983498068796481166830301308783716844838535739673043593983349771773956386495398864248455496982532939261480164964855626843592596551061963137113774767001385243422074467436307717716929513576313775021066493702865670812632571158120857824675126736722594074496409161784037415439260182884233265328947526173076232087911206696715072402047623988621536519518218830950105279588751192252981280228721341552949825239460525292020933542184181551525031060591831401232069666231139550361080468342647092994744335323047172327596867134957791639044873054423154611173974144178404133270888630368756195516997957454201337674387225324939958004556238687303543385388601820373926700936110233202623000176750441155800287399651521579488082778626150784856240185939127533372041512518239859106430737456950861985217320045388243397493492663807021375156143624471852206538645830193763628681060582501379834484024183327461532968877472565640142374815989891995666910678638184985539886558983886358889230971198186661692110805138369515632556850739299732153096674981665827667071787294701649958657879265613871470164889243881885003676916379872859465007596923448954769982706430404117316753559261002109397016363066690743323966552815753676008432761267069515162293807571863877750093619765287604043052016986216793641191548577231172674663989652493549494945163398893419254443042862898727619077713247400668478930839953923591392963494238706918973849215666331694273217193817349776189473950190856693990579793307938667617730294363592637800830134519351507279172497122804059605304739528406490925405229993905396576031845108773585986204554151931113493402619065604321237611888827115752922467434604751117771476937504205540801939662831772028457090193589732793650337876873071166590419941215600784555248374066905303648631161731183500523891007256836207387054501987713891493415823861820604126511248680346156370879624737308983056990370400759188961328498768875693259623642390851144205844616004985113609539558617710864871875150425054726238678054105926027524274107110338739952971973194093911238753705460793784658962370947703652706988068388559190189451549253377367453516082827697191264098062006446412815019306490503538327827453171704876116894634678584069727902319601654400934233867044764647248250636251278517883935281359487909373567177115884784047163269537489848991537548741029565478090081351631680996672762337474466193611944213359502997640716307682836024754716215621395488105108507231641132286870046571709376116501321971209381433063360852320341720794179493748945554295285420876305250007693820569593158744728562758179200629497025184919231074669688946309547239377000550004969216137885678766871852479017304395997374824899124659466666561492980464608761110247880533185456293418511033983217066695026773834316638775151248553672110060267285873905803827534989854960790356589700507966526096216871300959888463888218647264839188569486992917533133982219721957342178569894650079523492927750016200170938765019538390060123684123648049680091336050365100595607320066273677543367680154741367274452875947804111391358727511828594211385806395914511563344428616828155843474650741697760412985556590053403741344561972457029247398853854343689222795578215638404462855953601493820858504840330437638409318210629082622557160273040123389518593470359329405610692187265070318669301058945830799371701501849548790188847222015197791617076707868921105978113818927016246995011982580328843424551584714598596755076185941064345205351680092300081404002058080643383972594895227497032719755783278740202835611692076933039500537344876255852226720956285911017135892249561697121265675785984180736376727386237365792767986939282090145931300848729098139937390721810157803584305743698625331681632666708513962399503178486482666093311583308315206489156012485605438493745781249492110542704445475431104346619325207133293266781829919700791240748335087726422105150628070627403361825716694811996884188746591909890679181234400334803980762873459610308373630019877236964291614821923752126403764800046099774036217619687584930423022944036599529167221401577793104054615911820957925572326449305706428283944441560901154531054052343362858988809829974285840842913920376946301681265422157360214054708615485045091198477119045335136098382297867717209046005595049280402833565236474401194095486504867757047592731128885039105165476518075354679278329352039712769708559147472844271054071229167916816576056960678441680792970820893820175278418028279532727412297872416206353705934606294391914483196807492702498618077391843632607189395040214412405994512106653267424680352772338059686512393592191020498946465126566889918699564954291559676770996041826127330993443079524224943478969627453783603744789747942664619585936964110574364120545320389392754197185684230854543852443486405433784714352363021833181191485783376745708312686604559703772257293341458280182118441550133017785691619877970331936756714837522670161725104102856466612211374327284555596347838256612595480547720571701042994731465739997458545334855880450978244502767165430834653248117719269425678661291817363858047090458906336475624524741768987170859247820052717770239918492437416195408829559836952528075244274271178634989244734125539105868973528721317497293291502592965764694638796728637461940350880122993741106177631858532535768889778458201630254670219075527388948345274324961888993678004660917621670836613257460430333399252200274428900834212389642295285869898184814386393868871317116525725424884486703110448496243110556617583077423019953923986534505027047525749316316600852740979005324402957841737122554061623353975075109795804140384005674420982808657087999977399117680218987953719250603362437193195703170904366735525045235745133853426918230707079623857279637695368967749286753460396545978878820937371680490398600750858585251511438981106566580051202658550432857258545168112741103617085622368043796553892527388036097485328552989288720497676042579133813894434862814087057327569364870484131192148701176277834987766404882009464072676394968582023386646161120572802160090885678284070077621411204821734457338854455162582131134701855470665584920382463560675989025821429405978306398592824006513120825872541166498015859971098468900988091687108608812529093705000414413809485540601473505943942260607296215953690303575495061445555745641642129045972345085574411384876374973698029141601767556146201958865170149463469059327422556597414743747002532335564611602196382380852811748581933049895195191756224205685524223983531840119791446569449169439564511404036245425546043610393371296329322032426995729774135890617024312667446557360961985501504077623730347463229788379842700906354156767712377015951932596330144453289503675555630423744415311780384522483030019729201763564856045173683696830615385090182307772156547893566488285553419673266253334337478615892218705045440893059705973315148866843552834591386270402425157612712972358931601050159742215151273819900935761789600750940212443991095078222271155042013913360786687626290344733965487558907156934043268396391802882909148721110423285926001920277760900905287072508281852346775253371785995070818563425605110867975905722784164594684144970309543673114919661373437218861317005825683009272325434182604689964810846818090976198264878164346611228862341032149139164924054874718871486813462607303512782017008867168372037596068296802592702531250292329629675163311642764042148077876115795087419432716337858633043378018359348928002904809034804623599339266904320412110816289577910404085502116346329466749731121110110943720590390732188300945448023178235699579551189188452531769854102489757608668670270871938102813412041518022443710574409958142774154595330385964221635304976791427127497335947086052576508658168522878667126793352859463228661790939390726159024998122204773524456635862687471225792828850831378311934315412728399292198123280004390344505318045661582723534659137329037652396657548520694535764581023228938721370854981580098038515208769704562289794986390346779518453394156907399850464583618492814843974146668590198232884318827183836844252851943665942051931384030244346174514146102782926646736214723834611329627517337630199779102498408818345292400979263994384291226325996403095597630447033700063982510673277354630579139256459496913334509883964608864290520022317811867570723233852639831007472989559632751086180747999695260102831203424264821554245680710895286688901800487846385325324072960229142953008963143175300818114782255490810876718424649786457315475598286990095023085677461805820337708881451176818868490240403850845397488992829676932980420412922310475751946874836897569779108834374619477279963398278121055700701104101796102325242326762029919095501987852934046120727502837775151533235400319397076809813652249867527189562978070856885899047905955904205585708913522276188793732004751251974228389937133711733796788264463188584890122370297387637983905050343482478492747717431552519610519221440293426791482897659119252563834247684470169651917574270539993643927175184924991760470263568458703315494240312710666549450938986476803963729004185058642771009153069031645736276997149634695097359527951992453686323006339954756500044178910425001395086797460177449053773467371321671415298591270361406389037732492120230211531643972741927320321969296088712469751779542238588361710693332753558518936596106247309386854664715779557963223593541494467249728222366956174967142530132704701814011295962883862438879818524698694070857578274302316435666879427394920187101414526899036943587418023669826031122735073860263709675163598157610522844930793352387567523810628984653548371345237695027205063372366935865180624647737176205393097094930761294697048945951135323294240096614531729466623420534441508094852674232094260275432904440503355637831108535634725273078175592302785834668048123375051543338062029574810038974147460001055718711599412109859495129137099634806995439627642777228521117914307801165951305987049314358515866750763777055797620579616571415158312325939032938686804263204159951797187883821628767321828945698167306189722663045018559886251177818533309513706934335880198155311917596605566833862354453739126517116542526497055122756855648656775939017020783625839409453312266288423555629351536062719508554009468302787863356405510308115865343891027831276732834244822390685415608645155256265049214036145884981218196891550262737436803988053953770382261679070482931334388569047760154030276405132564709883373454338656779328852595206146352273605592010359995619493971325604471476686520733344403018585218265622953904725902641469518020984606906099475942152827330231047894723518205880633929532534412321373996246992321127229527589965585751625419154584516135761302443784654495315600507173629986089157151908800974974387654633176205060080474695226186244208710381144475093631622621998645687462682835256397564358585499515908773251559241204348974467740973126543279168508180570914743145333572287781266946666268056650127934126207925433250644028059197623714858984755871471532493119968280657457921427715784148083602520404903723667460876277569003188789111331452736058726715708594298484953902086352928271064075591441043414187710786429473566054510510563989447423682280527209215398966061067922243182445930779713687785000383744905505378560711345014762035232232961045692180491858380006904772180044100213309761592064966469451484630383145768295019686327442777072220558490925165341897921964127487666872139301390325600061376308268491516316143688073694293033524054533533871152092255160675762943362179085814305381355044831765907924724819898633170395291226377549951341022263848575280940806721116325300359287798244872951058519593929374066470690150342661485863570528113764472323047065838704736355903255073739330767175744143312110690090853643079426826276716147800629962953912737428976269008556525764123373576844163839296649258043227717007795618696215103257144233465056204638796879157756246447349823061061000815292495741041517232416801726003750346386739107077927580745468238835748725154667441412090861508506054651365166232887005999975231358812595811756651226880464269508474286528261363210064134019606232133351476452460064132366858653086975007170964564045447378930105032317395571737543711128275935392228108600404268563304708760699767756048816256876329357752813824891992396363164490195771314806716391545250108664340262191874089741679222908095234792504074685278817141974353536554052486782122138435581046960550374243125543115693660936622262799556481385033252422929752395223869869781809574911184083514605121342575899966959237432248955597086464203169434039026355574464764548602366880126800339331285932936216306203699450062129019504844586004495446299593831968279114124190089584550799893485342836341910573879051511004739968278079170255459806265443617375259762878118453941358457333198328746939381241811712276514043976008669863178340380851865546233587114407031947474548889097432494025280557303395496125352587732163067883832955551112560941421236726068990049987596393986574833253981461808861746259889943092263762957451805211555110841396004368379900649988939647897846028772561644539676789901295991650090952915082165401673632822363535965931870633607434229848934463302657746979426045885979124149973392541126535278613338301803170935770558203879179779500545395277205755386485628122985571692517469388570187611762636069052963121075630753650026179513402259520751088950933228176707605908944765022883194582468728937148592597766188045094202335373956598787998448737386977584631252198841590656499035633213387171885395882658320402313051832073218558891514722947025550220289935519308596913545096949558823310633013812190670958103669470083198133519895717135764513202000210165341877117285482881343227036647425457356651465804056879027690829231167596253843828625232733666669687270777941088479062956925199013095225874524586514755290648395270479205449408839872941752716438559738301649419686036726048624404279703563998620178214248702818846291446681683387752640878748985936680676288954513928685574013304941516462459029564325219668728583333472935799323751959602153692076709664425720015433521992954688528915908377972331184942025795479698256648116865051417270216877115039398047270938472959314820093368671946997281525033794369944155229360330710362999879547004002310245300931217916516887204839893437919897840499395135803476012494511211091696415871772046156265832915665247883566071527736280817364907063374590383901406866954159529684864658681523334788059031707191718820869066326460710998134117904532532721930029761541058363187166568359901094867718582536291439830423810125970022216078801425202538814192692350275542745982781580400705605257650959279314243573306283329991674880474034028257415662253802305296066464320579203626030802742469696320354585144234829679943294369441548868873460409193822456340703796389763361697326585967854449424798996106400065431775553909057725066176600281238089825591284323234325278156327404907818170768261534744658262370289623249240973744597103029195894546389453004241158088024635777074529326799846678954026217343781182853035697319869881418871315448395238445966195600993493998169009096002311128291536380415251951454078024982192177049380230723716139132277101519971423851936432411042785502128487465344031189396821440479674603793523546601628219287839642201566904926125476527017398816779156883021306493754731152577022652103737541596108200374645225016638497542612706373551354013190643527749593441697191767408632289892606432920225627154220991570479145490559377831834822705677903885516302799246782214844538572783829218343180303278351947624132881536074811159225902837380396365706576110298559446722555143320380520025691807954946000704786654109557821295000096627680023230285066472574307304156408193437567629883485074286118630447064618546181074319297832142212339471516217596383322652271934454662924228113613160112371332376455266603020801722861215350743117828533239513452197426724305657859368847768090739306025871415067042488370760767542288910430471397848623576407086187105915604990409826366728944938914472867001148351563682119175647457248265041469399947508441997564376526885668097642014654074116636033784288867295068989785897575827031398678874809794845390569734723806991041692108357782586622174918286130593599797819871429515326213341561899770741789739603527929831559989281538955894030278505384308847789253960095087045695403813686967617023887245235572238705561784916914653215520747006074232167387404493908354168880773637339153320025243817200140135058156070376282012645664781059484071770285951913558621344812752553266991875208056290350985331242435845501574035059566496309513303941379117637852081468829887991841017709551490000156748084242419311742107292593432760089731728905140733179544120997192513834101002675476770677492318716975445811595531316845760575682420061721142941096667433184465330068973360854458774810678610268154664201529628488651883474676017406792804197913176868607449490387057881842584782931975326332569425917068716459460396524184187576952936868693063015939693985351766174324552536293679923542895368961761077729956661884383051929595714060012124632721463655654106233084859318404218811622594625392318439167627668169738272911981241035629061574861814184166791363426914955289950478570390482757640123322505251539826089505960941553391403750003886446035491432594010631577718230960754093872336651010466242191275573111252629909940065538017807446463263248663355669502762422043722555021469740570045232074725399801493260542929755361746291016582156919491751047368400125306834110092615271843934760410141398481175133726601364594404033251725225609310740882614939048176932960270866056228665809436532614646139263526129071919023799364584284543592314762934762408133353912994059189540668514193868888890222768885283869603545252895626715205113688328719260873875695039207326478217295285103416975629292032402317863101900157085970887129798478323006678867018026883817760446036575129219542211824329924726571505412470403621215148596108124394854498522831452157110104635974620556770465749312873776997545609364195581853253653894582967868197697641734162779035017664588314579409840665961029885704357298587783446809505356854603030398604685871825643072180101895931897323360997506746985885324042212761404706543237383263529650783283456161489032081454397191513644264290006612146504160883457517487874040388514836887081460650511874670442349435690061338007792139053132504096160817831033438341496228717285870574738176702469483119397764734522968297982836228313667611311420683503337885077744601671708144556035757530176394554900635377269679125682977922359915123646084248783122806524526078761483106911232763280198172324793437242917132731382805373104144092907371560661242579244474649664262092265088229949920670597569764047242407157656410002593749329598034806185158922609152783791373461782739945717981963579339095585770294195329351167320397309227655461172202999535517134804290252422637884795237416208817794488902617071435225206581285484596005525605419002251633654420140032484856578733133159285121549961825986863676705694668675043662091206850142484126284332377239769011585794686717815957780517095153791484062913034454682796105845520232978494633845401114353658337113331832867886336645617234103947585918048978701698770009802261666093758398104828552169336129120940209026838224378615344475518270429552971358006662610170651740459268393687292464115550637162137552031573084570402754605010096497487640543177084901764644184240552900129467635294396767166368496547234726444171434103634850213532147150105337276554666019742091708629276485031363574522905769670125291802270129670146988073231801404734665270935376907073145393552558560103382359499579453529748284584088113401045316597390109474069503925332329813014758787769681627998055467014716769446694377821395273099663942930249284664305922053061342905417254022686794453645401814319993399686617795530359478978507057656211471634841094071248105094658712360967951612743289740353677979906095456893110282440013459886942448952543436770650690406455284155172108261160183809694788045585922782333157470740640339532642239754047773884912241769016002439781550601326427624761069197657350431882991459386886787422574645747562489422954666899375747434592759991048432149844414001836350533055488452821301589855727440945910200003587406234793731378186492509768235109938242188902988820009122540893636562667625611329444470354094300806936058529150896454779670093066387846946055768138442786703555558751031397665318918959551723777094084916312159748052931313109541481408353128406822664036296074123162074140678019706347144489009258144218963299316416474554513607138823231755990516310568657937631639661411936253019237600061028420860891054067292654634202935610055495116634003098386453635676588826401360550145158854940185567033676238330549937363273730690645795772937647516259058641314335849306267125959704142636665866402207640258642951078070521320255247258030191553697218142583855443452177310043500130179079347749011799454548212531859997597131792357443277837183195931134959234050210929189239458750650683722205654673807774884721823215572986417823632392452725339181317914921640259000966555647096108628347709882868932742593142029141524629401408637718382784571147991050392847123140949288374406819598955899888005530149123426522471410751635794407684018808420624837012159683331374394611789998710659183835103807702913690369355822185259786561271536677812341112859447513078295165301527476506598305558217353994231442197404546311274451766822301437193195436227889682075780276453876834298718616059526283975831511973983842902299248554815236072003306060918417651862431808025523437242845404394990235483076808765439587304090372685432581120222823383455372233121947542524863902473846454807900665443324357960432015805546959560253638310862632916462846758026975602506854087860371804206573058314062292916473578155214006798641889004878553619301707543581206123347520935827964122032585223406772472276785789128873079286317798689875943847282348033179001099626004576231830204924198267593584089468831324601267196519409285064900147995825355844603905521513233330608968950409557784239194357438911125890513786417771519395828735919062461063349839356346986253540088071897080174125436068700036577716748878181324294481264388261673054629647016245801746148704997277838786998372804924038216092261807750144571087297437866500882325942045610852571917887941039256246663834976310262509529977990249110403407377179133008213163085830641655428070521780007208103956306713042194451098274795784980001171085018671067101237456225105016696520532033713002394932967504631874838375203751963215727136761250349366252171554857302421865759133628351081428700726779578432530076009514673780183937616480284359987472239805343263709395110373336677860707188573332697303627907676465378217081347761221054960899622108461526457477278023610222710269160925962436630663824972851347766369991775709579202680142537599935723718401558735396978652662056583295443394936520271763496489637035837317427557932632880944414312288005859161388287179686982117329652412380412604136824280194376026955714723958101483241493480036796706061950888364805073351848038884488871384802815176928413156491350072427495386862972463940544834682783274737514231184855065524957179885565439627190126288233389806919909041951565704138267245132520064229580175808118096395928043913581040810705536432251443261461333486328349932665001834723903486674570202568297589410770543657257447274048891507891640408935894789724997723464254820904038564683246767324006462162284806818579729710035203059165536002353287925796497424539079821151556875427734670505115957380566534400100513319384867330782988357473031321574944844544131777247575271339518306743022905708642177711335292093775882413400908054709733778728593529025783047704244585929963332784494550285923743001197578846672651088728427611969234695827373055733469595306982159727905469728219083949936462865031960155201053799241205114416288919315734670637727756359909314362594121619228914798933358697585683046326265808000393502770332203597292713167065596604095922052209375943499186666281527361545127761002070133742035442654092819756671232121596000214793579701931149353230557891861307246218837366708307681353121230195002160931031396309745993095742444475394755388620597306439472855490883107800551777474273069059664550886350361381925266532289325348217444531722912091716467527246398917933394026207681519790869522033956288991797780072465912289424903857086859577767738295920659983365541694873818469337314546134550706278539046702673053103583886855375356676873912126881876406777438195361435976866285645586146134062534195847527219248895582705492987768866193538195336639227348131220820158559751780404089561170645076329521042712508485421143692373994924665942358622571744988352741207698484799214932377419431680551514722693743585850868707340637394894359981507308417799848770745256421005236173650555840808830483045709279643266401397406827302363657347933343936237273088137452486433866820659708254768152297979578646838930071773880503050921483018122593503025502031164223362753039225922271399960012813782835727362632675476585057115541716468818746550670044879134661491368965844957023990170004528758159639261551827877521313535080668472171586049509089058282783510547216259689949517784027921725562893166255073284044767648615270267056325531767274378820663520996679367498550874485403710389026701120388406129924104226967272750333418036479695876231341103391447549618788520443268462886288355953466061043064191043151519184426541465777061589252865010138531749730350819689390764028238846897220249867276589546111936225131488849532790968243657232917118677992117927882951157863485772227782931086237770223555771375613232032801917070450366827145377886223798382335376962593168559558288508394202345105566608794209006907646691917434530793208077896696794412766646438842228463729139795682036654212983001713792080994329671587981633096955983014043879023705759121422852155101582465951045539557413228807298748576690176805778828646861833425640707791875659567894528385674073930483978330935480086950784925610868846520669128466981327092812999624651045766127278377169086800993595867027162540395197396001163094755773272591386608248433277318975186465561820653652869122454739806926455349608497632567510676454039648097537926243729104742915896012872819764530905435912003361141423690616738154126778936619920074805530815255269162555090370425304222009609218641604627244724513528885038330907944871638081300839106674145560534740437807905126775256918590866436068143203784006980586886879291764626881521128082207168085828857855799757536147217545118305288443413149711353824602078998394275031869588744730134814715446117189805448221938189460665384899127616101576146298272001851932498674998782242378906339486451770732932064332596324321075780186971673771856601626264581846957306086883600026658549141542585731046795239966491990817227866448332188727866435710515532633710573348735641412277725818840567630475686304410401458443529245597529406789523085000634482218144979590952938541338428425458254775347258242139625587061532459259469733384549506242890592038691733489441634078099935599976665960276213852079576471172352001298717803837732013785440165338043416790968345174329478029835300912337228808177054912240338883163762070801393239245836291207428492038518547616778458304565807735896571988204156144323292267980565507356977937429902443229434747788200080190564901683326193862204161954553615309023525207535393745165889425998314804315881505075707804276775444249145145114672321674017837388570147248757947379126366913695038217211494014935753623807224375324844794294200051623486559138711080429740178177932316328847842533730749077856417550822628121710896959800347789667844658422595624479156486996284813781814474067562263711312782333526457199870948867535076143633162395242476437008293242577969323078994284872114490315744174195934971917135708172582152050346157526558570590859513815850477974278005239447877065546569038580489490655075693585986669145324683118873914597029232102301596725315523748752432537128690706260228068434599259235694500159986252544589320098410838355306708203600836364312890142775295274164139497034512054702097995188587978573197884950477946897500123364070021207497059804961961976857546756028726478670924937632066760046764515073836938521684497454024543396152940775085019338693343157425471732212550210022336295389535261088828425469108591972473798836009341561129051438348820217066889155646201460267616938061725970320418207195594591346692926313817326066757095241012289403006865336761914354777427660384519698813470717320343325488632286839452861993660106454133510057487091133832004771047907864258670552748831741490979732881856608683138503406550570323086626575472521441811391138466620520995957553029656334635114840747419301372892119394509998893038431160165487767165089640415456633749424140827538157000256166548290114489025115857937195592916653085405500947975616950107539963739861231893017551704298470551983105668155783459685043410589316672444147895798076766929376342138375661411696437391746751374768593402638937717825840028560550804235817808751805850471056425390588590885315838452747003770545010278658589508488025965973434102734363852591379218067508769253601252248808997108112432688834033133990232041323004330376433479439312334684245855176073658831987621679478619293677746284130143183015230069270113174100536761531242038702108429981825323082567003683390154958587716477862368372288540378790284230641916260211001689876961357202102621469107765481417090102050477456537192620077495616126765498261462256577695318984603164724781433988311158565019201988447079828325693122508336967905068478786507714128837695078616184033921100820644993097127527473435703382589293053952608321896279515236703695823094345325002569477057324216613216154365883223940145995520985628901411646033807187000178808570809446320027495065286197942460909956047447967714241776304272210729360858601124870297309479241321755705475383705201456489735909822875345301141339279294001963980072242285182312515145144172147787062277018030151495713722880475680139953196422099263783391472822624306499751274637596111556129515454467565510248051465638033835164723328739824457627619856645695928203110822411390939541554105048545370556109985624762256643497714716939869173983461778372901171264847134132591581437992115839300152458265746414652654913910259337967948502403408883198354959778231118121354471352593029678536851748742920734291912814001216856364558821610545072242478870562198038178093280786350288030819610732909235124934448887731401344311214453790100854271233303066634626367796324964703424256362447533219132063198836081428727394254219150712902036379635948058108501503327251955474990678600926119187881028251897096632019636899029291768912770535082858655097956043148153010867386381324730995889754311853587993616442474228938673838141425907090304142051531732214107321063574672885116173117895469178820929822764555984613108114725148141390562831291238031864165239525968110110902530141106922939465107344796731810299432736901393127944078337896775034656633512122252599071447606279755230896187708414152300324817046307127886888538635284006317986325961739822981260429859152860409052680956125382797761271289289256548483317926999950497255241328406345933836280590128890918497132001005526469602808502837256913113080290333171904785235980899815505467237905032143630374734660059297309670951867922477724937125851966740823555053040970507160143379457441313333359838078525904768177610739021105838119462930743495935514779837321306789511863673046719874554257308494729130799610650173032007896806282060798868294548660958129908371197217674637992183100217888421098649045860831491466258820318405774009592919419283726842396406872300992022753737991265365465227275518837089705987013888443640865826143610930923912331020166387911707552842961164568465289962644940957476390248438318131472133982844343850883965369542803989323068077321878420979052490246248175680708943380637547772746912865989543912020869060359788575276632590482284065397456186059211792961818708964351420230322820723506147310051587206958471741865226590991833461685731890599920841106659042621845449041811280321592308633706448402706341804208117228648489247964277557026573563036371018677606194800110655738737064279847636452063612877469279662685268874991230585318794297186322949193630251231174497121281346127758892277817409965489303342919115349725035587910214040394318723148124833260868730601088076286083660959709231938702763281028306515311311372113293906383867919431295579746204826426373103103278221705745339236317473221352374668551020390544443341913735048127823791529609378156975549703421391325922484004336173160946629686778736273484349989136384787352048808105818608602598435997512938689639781574381759581117016070522079711270103354724154711169706722995411694099965183507276292030905783411985282348267516965041690613161889942778515625501724447606362271897576809407409588957376673785447518860844768101657680024288473478368923296317942267925598506725672137755032899767992506809197613138849502206124688072376679298138616001786155902155561449754267432110826476955001545512041393562549551917122446662829506836954883097254180025738370598007352578870348184463334326996954753184880569097135345918133964357529826155737612570168148128073839309410778215076747802007860364500746346177777990338108875581547757753537267294921254937713451383381561772233220956695929861727572380757401813949100820996410736890699780295467817003687652488014114772385134853062244000498774706489476880272847345581412745169964214736009846343021673425927937835240021396462387650103394666543756927163474750614036499179923346098194807304620039733691918471631985993705227928674988580376634579415576320295339654375114994294783919042171701605477255663777737808896127351747438584277542841325093184966763899442490189858485367790008223868895685165088790825443056136274731268298179045385108467601158599137309462828741225882096716257669020981710808429881218306694037096877845982175809878164316276323826037062127488017765361321394349117115499057842943327847735033174074418909326138059593655944156334359801618551900940691185035100699445384384860193077562498269474354640040735334957249468630312398847565728597450932370795020994511978409121664961997148918796157673621569425571656679361976767914131042578687150274141841752647683118473272873741977579281957542496676393454588029890618478176891997116188042498807933022512610562286441588725708806719480880871995834699013320348782803397071919392520275743007683924808009940178719494637804939247889463460308454951303578784067171545812649073291882257830431839460110657510312270766642670009558794368995147404054782638877576263061771358022495296915097277494026735327287545375041908158443219801336786997098411207186516944826062916799850175540401444708390800169351569141779349917174421409959871982699009345355538751580199305894619115682569954372353317604159027698725792972380044805553733961658379537147003097331136688770591097969025715122615877857920769856592341314247804641394632649261632936965214287321649320442294468821874399616386584855037923654847880092990253061009524435039779692589161145913282055676623146479432652379055995743822086129480283492503563295394596364310334098370146439617110078258862624430532948688347497877378940466615468396404077876565837074934373148292014504170265359884015008199695409456502949235342624143553826631547569965643258885826884610727168721174746732939835167620488708845643636323371780469069637870897669360884484067219883016711489846002898440986141202255538241382171861410426376609188443632354947115114000704565052585911045612723623096078437890293796632870965181409587448258088806628132468450854844286648599108522962207731655468243138928267194631676897812375949751191138086551285421218133161268005030432176713414347365746859890439153477135258487065609026361969772133078913489556133256552817527482281069483385602546261819344669713152952170026073233834233713034464824204788300965996551677785645160398489581279734298257041017494273044996431702676571732524177101608196179703945883762571474036534625869995708198331765624080254337486452090439483438520363735110932351779674999719347001780279360999684804966423151292944137171725065178687147636443969221255059971384357873391547017763352876037836809917114571176527583573499095923010476794060731466444964616575890024767844414667767450991394086061820080939601504628185409634103951805786394399551703063846194095084605871317029320102499952401880514228215404268555976419409223186033457432791118861503490747760554508953583494158486115872960003436622615676609993761149496644918323015961961348659731140635416793587806354700702832600048932851326232247968416377432783336925238407459316988647370734596756104909650566003873618981547614621284653668288807978268155041861509454500632846021793346844997284252648154097742267566090505684545518489212775950060596824799628384005338145396453131128551251342972018049745711383140808424924058086562772419253661056794709220636862437109339179625757969244954879960215401999406864079515465064427466119542812583628731784150960203291057091199568665913225023907860298226481738271354665243523255609951671539156926349980405844839987664412901049401268561901803973135734402032507790492908665262025234662647718273903133235344361241148039867276361063617261447801767344641603289765108661977491523483682387878158976049984348725497797485857095434087470415180537230842348771254599457841136585748916205182117316737596568267875711991768383724079153962102649170386455311841510710861491552718979128653181998570080418775494163955032280450149643691782977439421395718199429874029405578256729265168840232126728215679835482522963857442359913258550308116437654055209865287334145399995861193922798806515001442421167870666254359559307073381050472012430699783458089869318327042039768915745995062960342483886009726381129580667095896856091523791392774831935352484243702722646645836718676011859075117056700706257625800702392635681934331848755657885807523814869465995254852225836642381141688589492780593477766436205790082866015026120197980063159426782556203048248390778325297029662555845969803469674463400795935418228612818062422428913816244580288176216497440648074711183122931671223033654317382345051484822113537289290175093632025446720703907252637711226631724996808732712284351117248721879810903908968190005555996233838010098916514340402052348876840610420949393466467811875255418456246218284786220565855751170457631849252357329139091282009950234785915923588812248279322630144028141328160953987228911305701702882712114023605853945279838570706624455502914987751245135402730715354275030561966073423037738587122624423955675284045207676909751361719855417789359194676407711713820996243407875248354033552388401693673687786662777709593757065427336940971891939194669639700513086558703499605447452733632220327615118731135231882929244572633319165542247597059148857447285529626480760180572232045800263792126228879063398201308251096151822235601593238431336844581836020473421864893984791344907953945151855032471483855576159126085004106973004650097349825120530476088534773729894364834282880049768663295899660383018810041490272121484299167852187099222633406916823516051133213174611750669333862668140763006222167178130014368407183526584477560071938506816898814635833601231942588508399658589752119757419704332995007819840705280340140191717980574068760530558958540629820054143170501053336993744446493358135359709137011181425956411087838121846624717804449130287622918475283654060597817371205323739661062479772564414742618274968116250358467730144971806268141619707102591999653800144246632543103035560216420215657447486491429447139655713002196658865719576088080986167828544677367631674872847088472645423112527340781984869003181899038526246193547996462683367991017769306226284615484218387351292078069648429057639851747621712924451869700259920083595526506487405635886932645649081107792480483654062199187403170408957645580350278883098909758713541734752295517600726818589708427392908827952698772001682070052896308417993125348218310695286393169731106351488068255954408401433364813521116103520482284641461130422921282145940929255004933345702116881608083770389682348684279919389606646649924559509836794061514828407212410401775207532087786714075837502514278096915345866524437274811982506302796570031837478529903683411904982703376020001345409536457837414092505347999685537705772851778051102607722810034584938185772216324748146145702988924198408876466262966934211097576856431361426481193302212987577626229921751370459428201233546359320236171052722398973280138166542853543945817093557147860481193141203106000981893510545500435915647327890763575560641513156164066146737384951010102317600016509417235251060875943196841329990100299819369995424775833536920685216576204422523494580017099877739125630910912470059914357159085755152938673235831095472177065385101919776923692583967037992769224876345019512023611278706735616681820938056262830369549287344185402772083002987038412388190172170052007749672323280041556704386740946674178611383089514356054747266979860202340100655945721724296946519101388703988365825726233170945887265111346430246930356190412830343655242381142940720438578834092471234731099451110373808727660637853002823207706076338035177295026443244189921827855940577649672014688691250509580973935902719306921218301598494486840446501595683498280501422490991499341635280482470519944354242804585161643554353969369421567338781190999340855153180982610574135781314118372043647845816752109091315392632647984035719404690794130541551745149310953977867574992888642363604377021495588754369959092046040711505181605312910251148194216452827200286164436452659034602107367817044912348407362941820083538914907680372329884715334006244308596714203266532227603555248967749386011686475513499688896202347248891144134346350977001410844809806770807851319173417776389937468476948215449322175296568390070398348537647389004179869728878660841105923763209846989084891528688272445751032955371720598378849386512896850734409231132996976661759869139811262587252375315999604079401595725883578169673704656977493994160227393453880498254142305120301604791455165976890961662112844991448147715918512040359045807380130332277745681652031201267977484371714518654020152393116269314033072103588652831306046780982114022790441034221026541890999506950849278067815116507249914086512005840401022008906363325281438633306980228605704307240261969421137067511009216865833110600264234655648291072780957219269717269381631943957481397020469463723364946980060425355903681404062719086856820209026921669234004407198046238201978916373610093587588546882235467690008425719181701901138426393960555002497925273225860728228283723976608480782765012401719887129990028547724672261282761083203142018151981373017173943647929739665175154190472726138101819274396386178285933445222187074834841012965635879045175164717301518908378982715759873231715862678339628411645462973976277679076720557926994398739648616303264720758433477718824995720287430067429822196009415625091709539772747607019498147051253153203519254872249344470064843552551573890434084537268885458328706745677583480945116674167621210048679182094115820320403037957146126669048535535981673240735536309909614149578818195815700424385711249318408186391537552069356158826515874286745683445722265781087578600163553209517956301906508117702515424861398615223713111406983871119895455135000774621181170743661978673110838682644874778133903066116205987760300083218476008940386958117254276850265739031497645730156668424314338428793294701779878349735495966551614907208652408580028158739162922972229969984398090963247577195710394609528392708354333600355065620947538196680384535573937603292609778924859539120325729177328215149341362272789820186707755392750576836085128587864218018381571089428951242719222325722311061127236912639621000222830697893968167298305391129372280257345343960604978749559181460807300899191875249293793237418502728063706966881645730591348788827571789671403211047366727784567419000386945228572643712562114584836320172901904187063682858503559208169843888211079468966506683720778185767688658134811029784264793560952615473496045277130716358849412210918756960929866072291280333173093307831050196870618887631519188885673252572374330742450759998575414852918053614083077587851288093087309688869643985504276915321095777882010428009832880113572264423293888640163999527389966200276396654645644230207034162594682009383428620633313226057597998884731784496467064325880980272185007434361153619400429742038054066959575261968505680281078465567106806293370632659071004713164409090335416130593560262122415214484083244861669240781119513728599627766313503246193207521828320294239925766515699079576919370488393375717012884580389137222096379115661788623007040437114196322764457137019881909192898265809187863615884096119946733976157386523097582781807391710630246223453254268288433655430861172821182753448791891393571855736133497629051160584623581521160203720905155834724178291114351282762117059213177442764509014106067514293800558397409903383540340731667034190836787994108079302171953140685918582228442647889752640039075938290307617403632302048563296709530793522900975768962530458107291838698217796431678703210079701117171086819691825531824543167179947169959974607440045964689478733070833583267831948168306447506250669109280916264719218817287637552003194283664526111227906597935726167788183639217326048890183650141724665475294285437805509484007711699991159902294849398125496251039917199680282317577031496219316757567958603326696749517504811228340922405855082984191100004674937894119882252065710114761501234876725955244533546203582321717715196316969918466617203964133167890697868607500138615777755597768248515104361123342849427483534951534653682912481978970670436274512872093589440515595669589755613085216142977551489756663809617848476443349388488516645440772277510296507082135851778661954720743026173061233970207171954027317539538575612456859968003891936601125922408026303808318669387867119732220230570532518223191062218496652351790100518394797412847676527590644341717256535490866348481845936206476631812071724530216914721969850446945851350393811222955162802031400859871683110907344301715624369112454881134500976332044167456825391110726827592028210774175819478588318244152663791651138678524280502821235346604399820998038009410286217297745471276315733549956504320453244294128560152739887721454188593757148472800793455419875512190330912774351778794000545824004399392434252939141164342899494820043270517667615406900425777105448747387950784473463252440145661768323934789028613125453324751513920256105691586787251824302768849217266174497388277363447015300799681748133257986469438235545537343826233944544163972101035669675293225239045669456377159438039822461237804290460652529067987491593453713407551659902022364965762818497403674690763633613729701465842085729139812615143841568778016708449517271122289136114951133073078066485583852068777993765292569798859211048787750735941871988029549443306478934050826394558511299449071173021425147834873902208868943473953338368967495421033307804795715838147502455660519329519200595481460179106168215893744125039034016737962074254269942767746004530240807567687942984219294578067566973054375331972383276521087066420032049374406508938754171670517713890407582241887144393953608852969824144621407240520987785248393323955657335918262505850336547898867100090903758958185751961579818794186052244161564227031977051225177688999638127001301625990347118128243110902503890230280486357875302933182631662158465783735081789352994816371494495279675680049467734204157860418008332390230270133737923579353587429653975932943242976159804832334619850960482258216757397049096524065023079132210304125462702945229545201520164705558512683110884132985951225912186088050845061697067099490317682817945539068062050022784996844634424480207050616474968530939682823225036734799206239039897412980864025675708309811073387238110887390059512130435940772053188650111493230902968423185008565514049547231629448227793141334631853923055575380092767571291114627708406821403198761245001712433692834466895388069713945698139021852090308485017669328187927760182879648217522258427139997439999034342607016889156530814115967059369520478450027471654025661280460949928191187047381930896182533555787387052547375300272072244607375452221628314561194231914671818357008256877610205824090829071209907583537380914476324292984004289111993942463486733423432838474669932220394506238633015250224935327650644839497274495455042472681725325009227176968797891172454508517753219221648869220525171193947993993062694793886521028182749784796064944173877003245515987847811380855454854543367693490766466818837150524479895620304697450059511756122225620502243746987417685193107673430761743537325087787849459848875467736102453005160341749169554072002790122642639865061310913495521430776341196992996306714627464004562655562739629560568529687713773085515730567640135671746454086054825373901039189423468350658078925276150248763212386943463259630441471577392787371102010632221515530807635463264745506314479225143730470214930704749135048858216310002536878491930305818165143612285512909972943603382711310330241526908075495411875028320878869415052170324701018718700366061272965129231664704006549112793543994397474401947458618837131569699372396711190960347855654174017639527045195191775867605734269515254417959110988080875479399596202642703227525782907167535446483476546238872140353489538056374730102286195766306827786681634300900501264965628142929057539586701613855889243669896197730950814979010800668140291431826951460190203944876995095553203932366422108492560629493787789216315804254504410180664170572498569585223901939036182576946589364010508819160312650010456835086870982872646293297451691887699507129399625039206911709058902348352911385181256422275298249933731218073522194313279078173173672428041719371561961184052339340349321909642543181805809725863058120556065421102279167606197034075625459074093047149763874131639837988485969156437766360068463176028438753358494469406279103877680159692946256066364236462677612711368431620377349152807366778783511276761853782135341185641088805200380882047664396179027642246352570237410417224387817598340967816013686490566120618016488445383255233790940831717536673294458824188287476317161065647100052507810527942816030378826934936672984330060721160634126249445895750308328492740938060570784338327496864352887735330945879439928211456864176496880451122334611515846626414604589183919080263476401134263411184422736130074858679987713634146086377827462434381754288568691780478203194460017369232320698035677639453020021797298138907769431497274256689619776432961333743201380510836985466925714589943384690407941688243403676504132604073613082726032252615087659066563945864953294841123368210434150286287408484819793985246776426718360464167983686813771311060986614682876605561270359883548836700240909187624621835269318460451901153421161837879538892270781372218665199881867654810690392442268609269885100987347397902892774954501001629166488201892570035920336701498705840325984275501085111094883238077623033755469794882177445979214249852727150617536943900115379270635274586098288388794321777590914163679596036915361093337591844480028916796619636948924466175267487377805894164892426185739479681037537915148157366125915817765316958909881699789011725609006576917499408378789012838383426216810446583604920987141820807787093837368764761709042179269669927801244596558626096251779659517311544057750477024041110632284988813110476831721792045851848189188761922817571279803917958200943708843493223770791034532182522229097069348990703997351559807206083639432577199700849290503147336498491019162313410880624950810494355150672269552869421917478034915924387287093156124750756189528493781552303703883414093743829203046260878925024189704082817867991375185133760540036598298262213059689577023528296859036710745299625999684699485778731894927534115571508507329662942579176530437561098259422594630675493040082101636476812577931096806294798361957592018471923590114437911808846196285098771153699159708164768734291099099353190871247564382063930342642586777412073653972190108242966769525219343274865307393626992456939033176124184843694167294072752012082059977319988536599850690688899604824345929920516391377351717718908951935911756044445305433789779160999025350918350105699336093913987876838947058355856392860845428565645662501656770520888259697661215580743060998992628643123326330053083463989671953038549978547801201654983485343519998558988961339717481949342623603811855041257059015743554460139789430869094444774680259168831918408738572019506037454832310027388946997397360227026560049297258716663300510176588532762888089812681638582685142698950938468110695020293533977961324338722668479224538561833072678610359780329227940752348766634760866902696601394188784476866773952004142544820929703644627286762641034283243018907454421800318956008862655012791738151644287604757657589569873383513372773457345011771504739348667598744160305100002285204078218302154749255993632450197127194144635823209756333605547466100852188679492418276803500264051479903821736021816087062797440253478722654359565595463520891627607934136647780964509856137702102918189725766914319632224856710136891762342760895912818234912492089695668719565515479743798893183755785815434830188715599133428230870226803450437054050294542962794838273755603018596950773585013449034961414651273796208996303888267582829937740941302609158003310316802660922352195873167628156744429288312070366206238810650317927809139460929124177770830458790484073539939697752540134595581445376714921074306939322498098185534468263617219946372429333897176090030524125908582429562787765278192694936891762348199750014658721616410334181447912531822366868520434275000390465703462996065420542457703239581388474673866697145889808866360532909981673073842506289504304523785341645322453069973270198438009552239490631512183071740548949442176140840993031901491334391611342358088361891820813782003589907211599756200216315247901261018484155620380206487468724923097663175366104067686700810295295154540720963878767739184343242420942393872541795241113147874080417706969925421786193118562639186904056334659600926721332396785069799558555508026872637122307862071696573522152314521770289277707112701509615400417446761294887792426327437407694451750826693468779726784980248968723177408756275571694168087314914400389934238240425324086265365267400173122302789743279777698731458803052173325999156996045036476042867900728690923429175507342846317635608588841151311139711061541949793503572006686664895669047706102737704873554195513291144667619155780592425301430075986143135820026212779922946874283711595930310670369251119838424930885827021039942411929915508377867749376661204512201042105306997258130618567077849934143510998287027111270677408457722003899278915489631432545374197612229918346018837833121865838755622871004700698707445309401930531071262481868054560810445510457310665533196495094239096090427583781760907566154417157073891408422164164235308412669330422213436551436057218334462652104985331794623607491410903599275411734056882715507069282155327958988435002223045192780907570415538972260236199390861272815089414485486139059132733173713586383340436755741497103243711370924675048414443958728731990338501465320588259447472374400894947324358422962524982269973308934550206503038697975284719489857233218875941273151992182564871561219831951935763736503462317324056198453330678004821827824208936324693211977384364934149712568649112042075191570088830543610849755355070530876691107181511769829534430523276110494146251489167337674894513044181353273433121438303803354305098506703697294732555503272049227510892477453524825328941076820490775761846552350368370442045437225637247221689634554483263199021281159180907170497947170715658694415455695532285009278268709090496455384112170135237545200710123401533832179288887408636941102115433491291586133034563358392047702506847146781172801837609900292642135993840713705635281952469591973939811388685160690031236480851206435875177284429451175606274534130927713661039979976007267113376459755846004308049040719869377197991648107113770353172545331115267718030924265689456824668373927189148883748634981638809622731449504325927535837600347749767686114489522896649422735014818840714048086006402038207657482258642176476054215781651118949261090180836951942956117890570566915334915715620269630831276065770465691568340154957115973732659349578784150445457227756582868082203960904257715066098952059188305004773374528460859039657195333708272298467816599404803204350106567665590797636685299762696649459573411434932502350740017830096858061083818192181855227187725379771802347805156330495317111038216150429667842588449130822764282438993406947083972680700130798545895225901007606508410968220161087832349875953185540645434182854226002252658336021405684227728078570432432947862974989687772899757026453289447309079445718636312712404788628656740529626124910701148984048432283978750273938429994771744580851792814260871058408070351592530414775851504037920671564766640570882570568102919941853789842073810310298323941565059599574084762957598935672054947129255625259286412546972811621684016209872452101526764897147765400988504036273504096760116109280160714719097887965473395786663883109465452783409092235362103717955177630283899414760424083736212590477519331401120393371373077446139567943641165085462521217656475257769295533797857184620419674521484873219224593767820668695329861020302633945450185957587488865873186289093567281089275633349888105415558686119400209123130063084353641415037859777568462559220746976957455059753951420793612798547981972703507580434699220740577658615217216486238457292458237079941571463992940761276968280007857472401298169776269506022635748297010514051069776654183881223248816560853701785010861302529559396658727521219204137163976520374336972290642493044079799950503917013977751693188563655732053558255785394786752388562555639946830910581483922343241419500031920553388354789273995741270480711636644689470589327268596542219441564992461664478194712059596560855802243096339681264746923123033141050993072142552767039928069152767661717454193260427532287550281872283527877437697429822787549160770622187049451430002518345569636394101171812570256718386414967184590731328167926384318392797962164809308249970356112592498544531885745912321722062318559199871297214576151778423923442627856695307671825453340640826804605631382443096230968553097776054310653248430228449673267933094105717987605752269923892170247838816062287881521960671216984184643689778254529611422849469213840884527080187685621736719493080866573761745841280897795131040842283364531357276489794079645333663982703280034681198436382707743035921363689416022342712449259625382972895395723512014602057590361255362175193871217732150862500883090689387498433123079607844988432049251983413903436909187562426697693427592313881693649441007094604185876919820969973961512094509279327002157991084499047099342404283447127048347415064586897025851797753237115325254354695689216603424511089674325363400127657198080816569083550127379197594025696034307288206065728177253082344517866057244903228851202225193424410357273952272700267573004839428349135527186367782153836729099904240489751130691782499653040230569883049502554086502988995508422843923077788090444378532359436849626868249188990078241961576607405489147485688692591979880483649375004113533269988706067858394624283423748002915843756651965792871674136797408288180002968901513863712970095655561106915068770016432728376702555614236327005708269204816996041385523950448180287883858803907983089490680557148336851403732087932643564244366767181405270839863833464158721042632640680249756877118100692789914241670224195453868806524478805392879841298928313611562590954545044249969426883980131887140813948215117812493264045573536277977215225854738607282210092631733394217193299250606741335482771457856641497857725856832324098102084475293038060301012385413902130954283720622169215361301203969176604887531601261107976096888272157809303305177214756677580668547490504796558346815247937774277730428704512091464537881284323900728887125196202462980726013125638411201281740089112339613575539544564049940877422390533993206534820743207491261495265852955641641942291522760924848380576279179882627879412155543006677161449305784135824748062923382663746734170968842700266563599505929430814182630662367463372160021787575042875690560238762331243280387197882406587437075384800791611565998433613813784405541591710343459235325976864584602456291024887622768791990739884762338099337737210513909343012045861529200293810172303030414003046335247476261921513463506881749924727134625559411500162066986930042179922043825586699546654510279454637599864653490238126110022320805823922274316351487012363880777913916082586248899787766997368485996978372712893093424396609798527690509959126918993819492489980670641413356608091561303247908762570077302328415967190146015760646178068464335896361002684801709437495410391703475440276327945197877217853146939712352612110843211923782561429991002213299699617102132951830077451635970336508547876319896364390387641302000025302770926202193196605376116400940143787084493222663034748795693648008728395169874023568131867393284003031088897035569702192082938892213270076708584298062635448930110811149761180927230612568396328444953838202550334352562760447589376503948595432313108783683884344853154087483273015253875880498052207583828001460362912057912050259854588775780676070970578942219367103057746253385174207519176113525892820229399931148708078063841448357408469026827905537832180022156384884645398555996650648261606125437962738947065920865250781658601948968499096131618410176017137093293719285263677388641154595333886820783651085765929084361465685786167061968836336121878965252276720954658161192697944420949545619521176646769448792127687006577898075767294458840934806254357177096484772750558805686630028178736674161264345220238877200828592318660010829312167862115615676398213162213404042559470047188451833042875617022847755011226984920382570601760800189737648176527950854639209805432870866521067565666185839120255280964839811124497508230722610074411471227188447518923453511637512281993351953660158562643097385137402809172897776891412064931307909523440000924182131289425074070628252086597871864132589643833592481254632411335754788019538210863227611546121243829003851409579275298358400093184130028063984595235130490827276028990030049541531159603119161757289302209985765874134575498069790293789170287204841253534549558185409870825065337857923733770811866282135848263797702198430272701255236701797856570408087817308881644325497455875841990773101451395222986849046354007739729293238312456008015212671562938956683429590675927896122705990943288541983553915392138979857003045059065800608918078223736275681219942108860196307205817353081575026449265109972466791256794989989218132051431634934694769981654764259663305295868973755848767935104794840890377839026925438899427830479344532697681671468894762694940253927707916820417343487736765051930679636278257724422744822008522293262946612683881599225159075594795102911091149655776963577156245136076260780901947952480428349039562164199297457534517503331679809364841965687139583790231556910165277177178147707665265194512736960630193655340709050541588314040679068781811110177204200725927234748868087344049517091029216784890642881640969855023846954412553947419022860825671820483481597740543810296326757583029822361209732731070961238602930282948881238214547021237442597410077464351664710660947649061670452798696994330549714479848810854373478824125238540373223562950710237536537355431707582840716380238248239228131283052632222491744420575731012090844998201504681876816117162001615127399520090708874468824206481046191495451758206181181792862779278661255515641275925544507588912498885784437798049453062229502080654561456569531035779248017191558359321522404771288825748185542864457325141275126546117091332617758626498845384675983344534055724224126153847992209846244802642946016946252373412718013825297989268165754467632169211600565311270110344861679686200319693377844915421226862033572340604877200640254243553527165172685811343800570949408740709068732866654086598120277009320240628674163951396284889505582817402309095175653012976890172866422353486105914358524183503257227004795709088128872361252120694573032460390781572247211465118551084189131577203701858064215643077312783284139152220942191704373287557282518499941863355844946350523263648903836306350525078687096840017244130446942491302711102221168828985564418194982645503393515330911036715064588139511295677440014448717809503348416941818889189335004255494021313778373527409708511329691911757544864564320499726912289802869213270124348739791351042238585218291799665681421819799020566261570919938829745334499498034524117484065118362368979859199753530960926437807228756809590171506333983651528674126478244873929507883276609598757358170012045030111434457134042268838577094523227686617390882092627104785654605921160834771471809547796462929067561889549155985187856879742674333054998348137711222039513134984668849204012162797860971878951476903563151352424126234268736943645353971772603390689977504012219121398553851777183691502822012506803392334256812163824038187354408718614549564205216468340489617336721339072852273254447300638070494296224546226822605834737986415044063880163911577109032229168051660246064257400814519591108200777759742655274424692638844846364981443031325723784148199368151855924052401658512379042316413635384643853629789022995703303013141142076296002561190090580898476569558047051723278362953104768029747714184238274709320930189710559335637935201845249684896069379019297515236967316944206603698526710855308266423106393017667957910821633208287866487879453255966588066895287178594357601979508959975548025344403002688225103462973990007752366143723351828080585232797542660507533791378127728297522397785302173764732682443369935995066189861796864562909535303307096299103866706909729954617650403855843314892753928585368185592760961718021435214134999712744190373411542422022701730922209960049867857461396402528272113905764804564915883925796150687510876616143438246459380902703572799669009611888340307773061997546338102554384140652951446258596217526994562481821721619627015155573860397608996170771122340994433399755767314707464000454443273888909093082602582722142185852967474688982806217471538833703955756740331328056366014681301231999806668612257477806520689798683309092371847619778363530349418289164714263833394858725722612531876471892466423637774842059758425162460383778173885359417422958542427361708357111047342348856146343413326024886321470489274107517501361493289702412845605919819895028148834141472963992852064840971107422141726798022980421034461898475982466544219496412604853025194865964165762799441394913802760109056699832188354216395010472324042466175870424945039897673830602808842397305552257692046255859885641634737263555926525971977992061407729739706962851802169118053167058481473114730428272957456829260395516870088494613934814679382782851914600583924314680103928215730450432287349974016951779776850231100131117041693056547523426476656546928215700167508176436460291720293523366493730066269655092009479682634432677970116230154852323965668475951075750006280788298417866395612403040027117114355960276605765426902637995923086097524127791743911928942923286139925914010607430116764271201424975944289803514116662554037450416560312839096627871546503005821816588838526099935987072425359406223640175868395621542224684665442945061823325073765537051993738307381908701966709249409253326058800003379999907000081553062210833481267764282259133902034142121780461303585393451663619646419858355583201525057868111099296718725381943890555926326492130722799399860794953537619285256991602156846753774477066672538155272676586608996226525192911867840871790745897504523053717334156733264936869860767612621369915386774939605449672456925619329446635922595099898290744281670945370521339542232518318952105097603485520373201145646408935623279545021136820987951951173975358061664133858207151297318391500348246883493241368564782829043221561204583477936243978561402392670291974435630824987726355663023309705008864405983413729928760371432869717791548069207256691350292427045591909398826904078942636978927422026661163482974478458464059051126131770449587980867498995939478043716527086590511033249517504978187780777191556581260974074277240249688637423317608283976242529988342288489358315168749514653848942588340390333690409316998058871358647297154119387751732128121878012905296371480603965726105452628137479048183691801313167334376039902056425458176436003309351993470492539476012989757578257898449204302179687761420627688572984577866200166137089358569556887742494885382474903174420183646986850548749523071892056417027990576475506683680949376976839285201480074898904057899538363892395978063868001917583108623181632964378417592581469663754853936053730035762102577529997631047465000204739539284218388553250031661327824182878449881403964901231314012924354687246111367988427015311972288995194699691441599543234672485869233413102593240224185051719011988522354923494812918752961168644859086287533339934468686468284892098703030440694793754119593328018579226174827278730820257826359522963204563757101783965250193408462199166235810991231422818830045914342302607861099772920479991294430122882395848763729927059893601942254436581436291879664497151542786231618895869989490019591822121149816015694814785289789446912739364587786058393068109129905628069156994102893346773738882871943325949499893702827301426739236882154690155099015365548816260822050388495410900616270546877087495671916532505238762979825356336813069873627918384367144318400873503331417280734892649000349212299928016146504952121197016875545619124249503921463415148838248139326831004490325487527960725241381431564732170056747552070171990198708704454268508058419048968851204788338978078397342735187524046474950945566574770112023334051407068354409799623591355352442328275019134525269158325822350325315733627901003631810693338796996351370169327659946040021227457642615391234827472507497203657019372353337008618012329675488218601852167031991014789050837452360198619161891500706513909548869863410498948123067894199308348725277653021617017509237470173823502623229056280851524689704915267792556210174138110773628184666932801444552477989042958566168079994124064280042597314837703894233342121366868563314664559674649494434889417038690226589610180126620105270568847380639510713345506755359916644096818421605437616429222653208709523497561413286587810306659555419932737762299678182994449591562490203830108760040498297358093652572475941335133684161085543458354007167633679734162793087836214661103813006312309837842385824138451499145152314426649646417657914802129446607046840112953432380814627607154856792692415617826721310432568449817134423168338713645259177772555664090854362352511456840297805255077950960739609561028384584652698972547340927508139004137092829496746318747151455166305297187184376821692315681262023738842938490733627716629376940915170578456782406517870419213382675812053208636828785391906244765283887811573085175547903231212714038236067248884526827712335356851713994804737294132906228746000436889639497488666189019023248923257945218149996665764394006936001962028164604007899847508752093011139662689111461952337286423282834016413101370276938788091309262773202511499180846467003113380358431233225284576701205318194664388025322068774394107079212028061174443333183273736025339478703244223865144602614326371024311004900506515554563284142642798700948472312531825060529939558306853648494220855894216587192990063595823174687426782070099036934479983420771522413853122701395898736462324254403948807325682428989333266873812637434976751311688336638676368329165834212340829920695043432804805081717838400036509628182754331866929295214075855216124631868681032044703811093590491150246243374032796730450776599578926673665800327957417845536513813610503108693520390912880055961847233108398211129639329233278657517013459386077472380596078562814391360758826064306295236581612002923936935706590672819468921707058186026326363142464704365915740689636587627077573935200057054732231774599398736796017226713398486937035316635074244894158652371479789154135170940616158126985169525665118295766839746189781141377061007150186528081652367654498011209919967248046026315326231659738124126732301249793501411228319371520770179801247026289132580017749429224517479831506895615385065417164064260634990542900880883122007494676962889739678662467144843197524901489973959145800677158462385345370286633922779399824388694558129071245746035967555698221868853379315827512509105779000016019845622871391455007414313003766486119117890285442692065351913506879330036325939020230708075515997352952622967794976190305500566779122179944917179715833692298657638374783435614667824617366514767994896174404795100103386354188777028094718305707792230240227834071603125326930420178045936763583290550845249799779460936183332234399059964816910285185432604891750201840309535632397430241058870533192184640892427896193063080055291002340573573062465293309984738480249411006084884202482817754817070102680473573344821828330637211825969190685224037628022551589127917765193936666546608244989587941217761561026821214123320821680415740370972721848033110902360453790599531773523936049051136809193338656915141621469181730667421044136468266585240858940059595971070451736949057168519865951293809071160994450872120198480698351863088591128263971012893330709981824909903684476143186191887244708096165395160237493258148342959015785187603808021088217894436203163255128785254277121617430138079968389887948547696155408302402543566154986077716626682491549955523963415418869854717816477718430207432515884773296693117276957241806936882025244405100825435063770090492555305030067268810930805617538646257731090463728971466937379953649579331684275440997264915167217470138411312722246424000978008607597800528579581737809434718336353380611174998888143647338352432819882448081057658176010322260603646598934398598468542667112577458752786402761445590792656097518452255594088038007445281232562916584239467607420121694204361738209404139183389718902774997833549365712633142085008035337735705040083716533731249958902898484205186971958309812849277163681157905848525852829530814576303997626964286318321485130213798784636455229326786195032826226988601775026640637558673743519772520590390972365781250613015399109949135604131192314760412651356200610082440382618834551049893524991874489260040834302133362752587134674598787292913331849009259643131522755033165386937944383061198972020396000849162762950791420626695655977045550279291725104422021557110878406994187264814236107946599942155201985827835695879850288167162937080540635827459740025633863826307521461481434064399341287513789615509612186765433030192978873491082618513851990947944558323164074204602545281203112684089622515487822343947251462374022116192798863889160628022870335803804429909096023235530863173181014722391713603598882773194618726214590350785933101008672243190523531067213859009250432538594313093294311305266986788364074488260535068615495793661176472847625055543925788433755525029267831657342467009818403195609877579410537568082761810379878306450257565462908371683289250263368711562814641165179137494938810888680836864520499545518698754955718941658508355193668188459793893473287648182400715954026601260755377728840557200476869819495149327173547535570545921382179622253038843485592033868495439078597095843522497505170915394880863179306431659297192763146776235749403493317112136546923474079708780310503478169083958784640493045436655830893760511045614092619868394499513785876743886820978905299926987827406269775380887510076472555229782657271524105574097834734718777080870541814295981457764141852261407439767309010216433553185806704388178270495207403633476470547474614890277319835298649697040380468782774437125105210333430106422167051544845879959656813398068242118629765639279982368023079209461726140308201489344869602016959225794239339000734448085998768452299890312906794078130574189542710198100452246297284455236729121978612306788573970674890465706595984942943417071420339389990190126691087634864956082221633990891519155099314485484170011553621667819823420449986873905308814662471700383273461379601772299609101147080407799348583875201426751325906092976493549892888219133698092613134339061659395097027529269267140303956110572361648841832190708655478163603583842302705683793477156299937697734661411434992318773216854163850599361805366739199998359853058510141062353184911324173203575852983515102509952688720370355910499266086994660878846028387195277654697928956486576705222702493336440940615988165145754814264262742752924668303624821736069619388027020471625762338140034847384844189283795347430743242457844592814503334511121842637492457304207564077432751714398681470671881011969773064854586033034987821690809173536009822479411095987195469919960404719599434015807831225932086868259313554959352370060626948020940278897882907190294974685090322873129921145100644152775955684973074625890751075789796455920387978974798726976400078233779941415805175003304535259157963507727540099945643543755314487185180991498562259988959949644455313055983553010115004736211924600396680088107533170142938290837596910755896285932985017071391186701929443761889479710514706191580568225995626057621520391813473366073702520303102750796055763479881836993128741291300072694940350678201507665029314428523264470504159584574482027916852788761473847916669066326019576300414310475672459953449091439342157176616072005415413276086762624205751942651574550631842811078926191666010530564909981846295945126564983087006143589371383617056555905255122476179020839366276827386972120509651277379084754908340448328881195453438378024969587473343065086222312162152563866422773224096422814108930896855499667144546936561028117080094577000180097115090571081846588127795924553361157439143767534082162848324150723123894800975627619843906497168642761279284433120256766261359849692562949352355282419686239003261152388875449066544642513950200796883646253944995453169164080272051877288403732683131374785605784384494026908042211747143146320399735607917462415039985512647760411638778391714114218111693766367712745866138447606176828572961015273877070855638572340364318684190612720586356603948236664448846481783464958611393253394413873688841602731618523407899389361968216361405858448084277484118352074548756485496731290039941297458213563022388820923382238019357599075169499309655480051368043789268176180874847063192442150151700191900055458591317955270404265494159854153663646439235169113153341057756793658007010206176317114546945658033516867185201997395770527057650577579914841210518834066871357009437360586972094270402148780915473283477001743294564470266537776284104218038857611490704671925843146159709257994302196669764811402370027064354998125220460536040567917407363688108571357626669029168351633469715584969696792404875660508405607591397774399817039820682187381985551549799323188712115207566035359618216978158513437103680181041490678354956121445615911158822375091257388463020037396576965557065238857642378752642613411164756875817206819238735959693300646186372802106367305674294026376526355325784942029151704937723260921043413511528616555863188084681929428198242665347473444395394240488316905875716322968127184573720159174831387007649701194383826265164832405663102591433025189767001890545293178367228031881773661397623803450120357796724129605762730959394848125876344104782301066893240694034239351996500738612518909665420038579384893679148720000514338056480656894223216627515637445579282192973834513240998378001012388225332988098267449651861988224842373385874359099439943257729819822003957413804343272250713877045729235787250417996966750243084358699945743188659211487787313812877580641696012448516234238486115932671046171609363072999035113561718085020127669773945960230946168527888034082805131786698726259732956061664365895870332868644323345959872067239679547732466400104048167358443999843570715793032879399769192962675642124968215125568951588092273245232865305181634416743897386147773592738573883650444995685270318495063081930251600999134536293779195976374534970153086819132742251561612568329916356636517515224820272649498473498281093062100591566656893300247972220498849169220763359723305080277849262471337699254963312545597969121307813144186304618003427180117426327827206099255263022699922370571181182750533090470730689167320953582359362985879095660161823144477215108351160448696149116529974800744510480643452812760303691442437001549575737915792005271226193013698284765617681303496377404802391236352902721545207717431588176222953057100614721531224117122501463584880270284637085731116748697419471499682185210335309094506105416125259908013349591957701774567320067858096627175398374822002944607221167747745799311142510474484315167786762757523824241911735309398693567298509530102573663401149876245008027367211791062707712735710620288843809137772432037671086527838354778186156424809298169566128110037910140167679120322538676052752552397830947486113496865925361915846754639869015183509900673888363425586101343784257457714515292804315821049012789362081986413916541039858678941871514695252660194172211521540151386634471527647235266959234392907710868669967802577301350469648779252696108541527140399091176594927517144923808066012052417048312038658915373630215438589359222373479177618745128759063408156250035396795025293354528890264617791441389321861211053433100458213126553399004809464953260491574990852935638875264395539817645033177843589806511576035642333625078478189744010623750781085108354254159272229245227502118352836719292846466774596561159558098771452050383263266855766070508815340924727819876320683450811198317108507175390930573357798795207500294501182310432308953807584399675225859050662973614426954336783077496743148671388317839579616962278265628913693428393520819639112848697942566508708568035477432696248769126575769084720621259945005497201535503780886290848010421373920295626343620685745520544863017412777134309856776534385650671805961912998975768815538949342045739346995506003261113290187111622377623844168648694270103069802741506316759325939547569476913661590946309034390613334914928538799489689204928794366618821217709596901137490840194312430645730128585897841417225329452501325761169992736918759433208306972254808132027773305301378255401362296681898883466123582414263260950446261934057315510038582815825359132809697323998370283460431384653155756001245120171547207431831924185711809682483909790243800560200698652319845475450070371558522586545709226119855119949036269254347862820233068492558792660775721287674719059087526318130425201327922625871384137576594976062074812697025809733120911475090463088972592755539676890718593398417091298266376829677310497812645237700951635231986252874323589629463520189440484871267515033165547215003656683811233620185959331744244484776247742880997571822660029393455952969566538546569983804474975105458942230339684539304069232286817294300498949928115580934619149761741949845236896290935830212601251800960807554245734562223204287398271144353771536500035609191646752116740250829194400864463123979166251873708061642730482818098654202434732010213423608535278722555359383001039142884837931753813310870580026376838530903972924453344566080317900236697857286290013945810381514156958107855274480997540778708957255511315358009653329681047976682613717538149530468057553038253158968320000813049884580549146288251481623275202977597339278551789655606123645744769839195040370744692042552557741440704502542368201647582150800344316235625140868987449758978269266387962036328818855384348063639381627513330969490790611498584043714835052449847457974397514664809485419602106402822938610543672517783458358739228968365275526079006103415689444933654184221823723934937018761628299382679602313998864221598160186909779353748879429188519665306327111726256530350541345694028693927551950794928011189035724201960356403101098852123352638204195585436681914327160084779674154857420516499993751819669508766799208889615470190201271402604044790447163895200933340528361919360789158664566915052994673475708753099880388821928205216297610104691133685743237677878171276138868702265939477331875138091729641078886808048590624988834054851795600895854938653743161190326697029851449399279322335114441417200016850359721138025386760625291381945073805992128266754014539059469094574013947562852622206562610482271760372350407512587521446507158498643539996651398104772652687732830705188946891561451050267342377553325719700214525314119002843919711428460082775855141891341452453448729095098871536892270421229799956646872438253775925145196071112524313521573449379166083211272972278012037861117954709567683683658109057654616437336507295874700386699567433051506380367356215287117545809701289468315588184555795189935413757172943449885155757427691528256984319919436806106070403641607802457140210219538322039377483652177492913718215517610514808593502425006991069471923420392434111517967562237066680641075990190640256334789517762154633868822772301902778563364617752912431032463221099130802403999267934491704367786693220202969327633235543354164144677483677396284064189059995147925786095758849535817023635876205222473328282385988105552241805036003356836020019467395056016894446136032819182793075678290369183578600145422355473626202566805940935014198194804526197164244427921670753789963175096797281899989810649867244258520711082567153928165828404416584610384760673794520907237781025415551185804767749160895917186494753230878588849162779117319047112003149025446577986003889384368866534897296941187946468747677671828788633204428277679779646788560266443425771501580901085848154818039860042549984493367298656466377753306686273027822333497476056244314515891348556452864993474980019946824309153815228523602359686136661014059088532922495919240236023558562028445641722826994761399061840055671545365763192292133264499659517209412171304926631153825004257885826588806014308466962172423291030591407139882342028609757276240048823589072439440718171333477979885006764545688358164084194873836710745986960419684668349625036002429467651282557925884274433686201321723214212071695433600265632039166511614626767703619514341731846759914917879549099835227812740735335389097181260067699831652560936640555266516781461974891389447449517601638110692627529411737918314516792723960877070474416028048654834818393170017748816155599075866931298954470728650711232065591134574392564785107072714588912464682109075614844577228902493671755132299601752142851986837256741902253103154262178643034403829186663512157664081720079391433304237828108428325923233757654339203894557126847012007516372661398183163738204857070302216880068108116647232085366645435374673486459418779676765903737605351558418683116934215358556869423936545609383203627396123179881416941535544510369850776543027187079394231492195016114745520658666998249278961541993709564854852386068778450799312625004538554343339376405860464614951446758542904307472201604865221190275891523453731468977240353942179479229284352307069215829755726200881387927947183152044893830347276594260158275503986142119620947263207738947758960496928680417726485597009853320706849821688563776980282897981533170070814605714693205816347277731083937330794421721656419379373171493318765198364701708153292572847467521025740841407066130297085704276237976952954969813176713702658412426236789882895987202551916616818190130452680238825925566651528768282505169942677846726622399280950505628185911971501763719989610213788277229210148772512620881783437007591273799189828210610896879660791257546617050910979654453042483118918207315601333718510953417613964757922175354076053189583165072502293153755561305284324231284218726982658574748441830355627692860893093641979906848026133614886740069401068477186257257344820768129052554097739933967751155518914564340167882297809299147486585632078629877668440633329799483289041526274375640955526795250519289051267574415574475123296319535645706553335294071487406766042907597595728482441790687121417810064434663473089669956089363543741317189548668379461312813151460931074757057603851744030808603443255980787053487691489800309242977887708826121816701523843395870725297409882197291574727961102990345645496662087052354618580197197917073043255322817816654781718873594112956151934559827783665486532803572053135206787694123041329620976009325837184892042852437974044759495038473614221462055574901599560866213303963020363072792293866002796481429312909428057676110348278954700744232954183038522096082594469117894773681607387752751863863030374189728268206610117957977156856536167906569021990412402280624528536397715727229697170474613915808047910788708513489505824409202986296600949716250050481886599717750577040287744712399548287497322381100531467612218990996146062054071630802101421780459017745967876333307792941246728770340082346334690110141446119054011425283619570746394920686877117149689115053750540785656949585219734022380149122622425043490821621261280093710338725946077490816440437236360917078595748551126489353978126502452189665485676820770766113008499059294733877212315588113631357178015877488473076738101419186477839994042956388168504822292268103390491264030703941397881636027683545697353328356701909677286289284425235283564858549344288932143493401964106672267530373019303561490139011083755880183218421531464155692217176628256432160824598753157896404593566233647197259208683640162083809965510020875727071489917224745036587725936129504396268507023704180505101208759236858367855654944626425080552346899868358784395292926920033256308036999136137498640384024939211734942047407534547658279369728224134076063959886734363971929306682134772113014473925909713777372538527665979194345408063709245166731502194632703301814193734664753403059178302862747151357345259303472133898929836535844519786437073920677088666418899022456627937452638513361623847851427374587839607961271972877770661735306450831944390321033329618184810412997294102032904932872721787833093981485955105762402402864150337175758237903230784201916744140023838775776667647529679174857889363417564298756532347893210811569737954338096017224376477283612616064180228611174072295645529338248222278275008119017356614353905051753569910824278715477855724842512342375636447593567322194924594883732580227887881979546569156467592233709002074590217022915136427240720434916516008905970218635219485128803080561158543701879686225143110044282594440050541922375707595456762680488485416780116774290258917939150316520018874863134282357564852668414747862317099524165247665121040528891120085254576802821479363245555378819385922016129982583858426857235354086878493331370214868734434721769279449704764684419414403262500060868132087835428876364810944620201203305899550335527195280128138167779745476669731238277426898899780636269139167180719783663543959322963888595138439681560072403800224248018282877763250391665175359719778628960525189892148969213625657633824967282665687266570965532418920823844802475800902255044359589292390511325101716455495484813010623194398039511236655378454001019279221550449153001421311437123689115823534998961112053119288594035694066709989816981028217559036547042912749645428788583167711285668895769238928464660982307595571190282523112390204499739970683550545983225012007756574835445945185479107384097574378025202293753972837672511454212861889879152891807596453351551381469019598653340589396090864967455318223919691032036723075329683546226242245760413376890195514304820132591606895626017853496885789869867048138536229629776226462344786824588169180032972791766771286310377059901178360345802748180701375418292834398217462692350913857669963400888414545285903425797347863349598411003567284383881515605499739977933905364992982051651460521182940158639443400420301105299253778562140675885894482759456164808009963610349109813054348535930458308145999441097450309678578771883584591154394077884248213927854101039066852565623850730402690310578581216259714188205644582443079020652318459102167699143791005042025453607563602408774955892933597522124905158840005142637075422024822491110036224432953325656756543073411669882245769970606468694693790067076159103928421315067416553631492147872121193273561933773103694711202838158923482864166655713504432809474947693361473546108877989095589109335673009610627428779752807056358292745719855464552094869924741884185288480587774064356735704654647144623207119689201357407377836921787437080214007651689526214005194554782980480020682149073737915989651147095679719672932013111457074350768673425317901894511498915852486337709343379006127709828005688679005180361646094947905086244219274906200361948080155777534594637673559301612918864871980885845462792615761705122211124916866517345713958616290145843132566290849017106745968060792924786948600952271866631332276383808738111856023168049957953818250195316169272927738248879580230697376874907872087884766495028867001382103249684934352478995138815568682262590808347789627265106465258037105369170584380074673031542070695789357621371729748703528223431924706051301351683461746916280194597674736223271846359093594987170547075278171804709894361750033667535584090139919038899201322226240292200698449571499949079057003298276653178421275879472206037851311269560284056634549098038175420913218556002031992182942019578437087701876015101393126001350537493224372318232356997253591435564815052404474394565658906235421810180593905387820715881692966754913189409672152705887594527047108956446852812700425570604419860632511097247890535147901318823809496474191154881480192296189665913200517012444080815391030639072229394556607245459817023951520780970851301667963212664592886078582883295414184532705164531723539970155463576022770581990936119656023970948544406623602457091031084417583700726342991843001053692712719610432378228846539323206733198854132144944299197764330170827476418884143236426945486993126478624929015607181545536034491846883964829379039120193860444100689400852866132276630841043117432781333625927137642020396934293123889037132094934058198450323234666442964924314910820429940901203970108530042969739081807301376324294778875129097949324594314849463543306636090382368159591813529570841087321219490500509776129909859608209766427949944280160228894392271061489884770234641662344732912849489708217385966607003639255358755836890391765111981837704900838936427996155346314029743735899765973505377839942400185041207021909368414199692479157499523178354873957092225438103038640877113365416182568912650319976786026670184862855399633918929605909867501241677959966046917919965569928435918536369899737762623090722019763105835515591436120567000688088728504547367488977827624528603566115210005278249721901371258373947212323727062425571372977755721516984014692371590855930404150162794100190039279294121752643244717390130961811574257962249163805500976914832088049404084687096961268826390520201571485759034035835063346105654781812196611420280678655692558984552567184156471089285093641693104158868471448603788556599515424357058430295165774722607025345540980359527751275534232026038701052559534853062541544501559019502802425540778202380654424567649163523729327027885928180121295191446163136185866497222503065354170507176892527451081793943054340096408013003021387713078988253098525983064086128096856575768255024213315998252674948694263161136308710704982499154813930820748413700698167284579139731334690587611842740769381096950321840293378249054173006613997911942540287626203951571380874247371834874172348759066324594750466171685674563455025081114685914162225779001106936639189161388058147773061694044540970470565252242671169452482924680205569912825156293016478288010775404639839947671533680756084186072201959952416706709225569951893291425947558703152820821821712745174589905877723455508043241930179381958976748935649632533203031380920720262572863194142021388599207470446825669380961456538561717932210286786209794095649097368102599674438827636183121909726754285597347935682308650792322333607606994614174309171110005899357961086317567651475434175414894622649868405593487279997227603857829852751057027195811859764261753730406127794487136168314309947627449460071314324147435448814166943097758822430028428391918222450898948785469011881574398051763526470813375759343374883841102051504888482599484198632163624378900699113733308387266779432148548713581994827350019684975631170660872468221146185140527041810226643513033704132603942128173075370497184288423797770186578968999088430414731738429793186761962889874041836542157800400542038137991937378690919174486187549361358982703108573382144703195314730291970672954787270587920586007366799997059568679867740710662534868793225592935884995401521631515625585270536436711939872435029823492500832123689430912570148376192528782031082606278190616489233738739840558743307819728960399021991705744861499422192514069891764730934021011675960582699995475300511352098258038071131811613746275586006869353007970635410370068789116361052555603818159956182426251913211602814965756403736991998074346362953282675005917038202520560004833964208478208444572415950419721687540416002509994156618578736610706233332366841082776947441690427547753211476977045760794107319944795442266449688359487161497518958104143489875333605009146541762728811902125173910673578310796334952739411431459889001114675525630496029382554827841414578348298430482854242397395009416599855026031804659623280234559536673699279727523493409301484222716169592848258187367504202509123464238384333561882009290923620929921578830685510044780889537853265799152377336814316096809755888449230817386305958953129072254821528957865776856995542898875071949325997554339697059229501202311812460884198492404706892970130907273634195744939013351426023140068774601934476410427663359036810774569504242216891991031890302654003754018951471914736043524661955649221939715977322803078010451546625996945978841028813826302823355044326805576283513215689624517919023239469858124875121133300444860840557865772399039066146617229001108985184365413279447078222649732570763856976764024839380121538367232001516704354476522443684764015035828468612140784341611158483431153610635822123870106318796742094283567099610324945080930750840106202054219586761093016540901502077115922438367707253385923915851897368293493932420574419291611473951177027971867422728410595318028166216056322515667200700673564854179985806217145308711853933679633966917736736354543420465332158102073445032600794796348128357804403812608609597055476443590229642417526630729528699810304007238358054499595311349433748732189763303382709312095749401416586704885682133258179227572053129255180237787128624075332457413950488513262375630298377009043720835123766709936331485403064576010706566947953723715395936175807094677981240896975208463282270015258669226295117849577591632161475650828625102448262124494604988627617589258664443316932573430672336932235985262592638658609801296866885545677640802961539675981401193710846128213736418701708784624641004827546191383880015044095435615917761941293604313931974740353475636044432270563883060384724689694257333714905492628795969962208220808901016352853119149887720815368870351946834866791746128351943339873981336898956308585618864126187791369044095896360163248298222495452855320466704648056161047042671375797802520769845737847747924544958677179921149033965651846758501318473286794688615286964857385158333716585227207753742680325351015359747067944624040537878221427347518383444197259240951885532403156487489157948278009897299646818235668750979359216243615643147408947737115355343649273252973271935862914529472562049044158609040731067315979180367598119229361897451487693563463575245706776804147282373865892767695391355559519862405446884586225907095861911526291600846338076228765694695521491214809923611074011039660631488050265168405092476128044890014085385592678810866917999857034580835996610714829149480394169809080608746806306740511588329002542071856218734718642062486071020603776515110931390710192309591978230771006398079966903178941725133244538136643045752373141153318387932898118153727216903892456968758759641034996335133349564076862618628355989045524085887868968068349048581954495767990122728304163982343762421713775512818913760273396377664890428599155736938016201896728984283079336304891185261034633827742381428866644145868645168420691478053381957858078041200885960537395328837417090796903827856076494815345564848625042639683931273479362230618622104711972358732479843787610203721253783809052077759733938603620858065412071088409029257786092674332169209192945338142570791286906333413658285402352076806054037661333271249827987664654756585992589159349051918156447455680332956459859047020926163918520950055090809571843542384410112323417948642226780943636083074034884788575132387599946077060746656164922923369553474006221997311117964057153355101096262387736936822873189800600780757490311021140401046271137819643170551568718373496656489709923454382569859831296916620391505620615255278410547194836478686397909992267169018531508301742298917504663658207881831529939097293124310703736569781777161871806092310128927953913550606035438714427563143081255903516980158516135911195158712194640542085731114708618484350317378203076181227640682837021933176961440123893025444654606131812487984107498871011298259908972389587545291234911117275485624627295392502682364839510345787559879019761846464449581279668034566707812649732122085460978056748012555483529069158107159205099708894787037739339183499397465749052027740127646533564083264988031247314551022671966756849274866939900072918073482968035499243804606261111363168001944651028000188374345817968198784575392560822375393992558636667379925698699327292967201216136147017355298692600393780910481093870314619409800308237264089940874809005529438010113679354053821894519302859553322416950170256972187166818587552918913461324199974753846545827631129408097143828751354351017250656897484739075492921194422098396902497333557784331890361728979944717730834690438295460396106785857716904121726198375944651149622020584550672960858004304253981812986016586804176552308700533105111322409439526569227577647637682999655470769019450201883084295386491098387594765006103580276854747953272788501439781851306298119663402363266275999161379075108330188200049283743855650839591212840100394699777831390319748332736399966727822237792191028335282751162720306612911790874575117068009636276695664266420575013379903339606903463162448766404899336357059807924556243694059097929050257778347884137271914879850992859331692997300566243974797354972181166136376011844823261990381765081935691928769297476405667968017324045877087563461109747789217425213888902300688781011002587219829893796939458350592872873516364521594740466077096301308478527360472538430559928385877276320808371569261804355276630514167939107821203930028826073521456961602351164383770850872006533302198578206065203749981881549920157787296010182740819991712449552829072820660031255201532325742756029112038140996745497293845744145635098491243555203808108508645830614931599627518529933404286114423259322475859365673353758918018263861092938046498447557693794378579284982209406222002373935375173764728917591172586181085860091697361192416299081916633437167349503527235296297328141732140797808774318117412086816304513350770935961487785358675253281612882563459021898897294557763227291713510666679718243632248530554055001630074321049266810334087773104135132144721501274151759305674192570264320430106490834700272177218522433340056654976625587307214548126459344259416474675744665320836470968022106707711958640058866971355326478591020296067397380557537282615783076422723537710813877744009780314667823090000471615238903264321278345024071699761846476844537923134917445667241906080051095558451200181771564731947082596098936416729858058676315326244470454053203149511981840881291456699463365190938180201772621426811373055071178606702881565369203159469931863342965780231112956507985607297093124275442873765388146749016877460191171230288829795132907042083278660713312519867813403605828129225747163101840061868498924634972003482139100027730542995215162900049416619373685693444798290195962384473474435557331074679845496274003349492271076563622650848451188090796348564634438751976449024473073184649991948408150113848911159131657320628751562501152932330499874414543926957262480184654318063498364748686756299888990655997091301175141474635533403240275556845254384703648547866275007423022841555958491994607723281643597666562671866892303945193946609906968902211949250027816477687502034268984553361276762086185225711215544793003333087113782914852948339167172259380805161702583901775208359774693958810232067447497509671221459736042945183791865980368569412646687326241448376385169758417656587584132371794220283630840136991474144514664720593003601846918459773751522906366003909301290493353092466095839737778769955724466541302256557657851413767925687647560407349437429189185655736624822313386502187836024173046764944674405653985773773877332349588034633953725521715479785908982710739867135231250879774635084271983944338880929310671809597878611530310772841461648471672359083301108189688156017438837694000342857467302782961456887079764584754988465859464505897767648831715549911808199762688572832704671036392978272977641367102350417631079791750292435491108203222082684688634295651870122774778607969654712151646547400642978987033713044321630051573349949003720375709948338971397362819621824445606633145313390736126791197971563700973919498507545105041279742302836153508262783689973653843441091686753341508301956637237655333295280156133813330001845813270590840630381314132795466384860906823512826424764649336966575816129533435707569913525801027321668188597324497449302986011500368289923740887209481243961970516626735921494419897175266167141424222138171708825636056233890980615846407317732969843506001107300440000065271424180187460527232205526785465746418570191146906569080232453902241636624735910192153620980081641964996897528957397395010100543801538664023388796641637458517788909334424752663268327036753910603666772857070997306448860256798732376250066331145157407596991228112551041354352999390363380585363423479627749372310374146536408042303813325202398544060156103343283369127883543154401338868290853128972929314099649429726350609743088345963759175834570423378269376358388439108904791171216197379154186016939860848277630073711252629466917301879945744376877769772970595980043127554144688219625597646206382823516704015485694667010561814459627145173421071735909367624341449034452311067283851002379465438884446422814378030780290153676123496669786982495176185900267435757318241332884593589334938271179971488111730574580534166527119223479393665450310489597450013734305310894921841429401878297322384193186083722747570548354030365138069768840180797284983779710895476020107083380478027528695204654197061571800182544013964970731259918708847627466917824385430186118250410170258220052594793762919725542210552835458961215236376566774821484142042945283726184863432862840728010948840462634431035289367667668251549752984640444836382906549747156556121656746700652783457455848073816281238999397009648804042658420605477640933538561113667437574646113429497701169597517887993272756017287718028314339603576662810641321747630423262210927580290028120306092323421690456471795436745307276982893891837104706973770028623018788436834922482272675035351649195210295983081232986777348468032631415665515320461361896584816389888982917419556710732827083346251623733143979300702437989839840793417435759857175544370319246546715265599854073029656679344072399140173668549269805095769141251938922321479700961858310565002857020746898733602794646683534139725462306636840977018490111573642714429020851760000590209606610908581844732960866463782153104934424186724410824958226864655942571933124625877084360399934646503664219810954917750168163596140579151742990841424208967189963513983285267921615978705374844579840928839411083488457883041030523858568106248497278581502622583287657845118770851587916607664012573786612242496337434938704631291197205680656155586077230939079704837718670986999029920626889488651595830411578211476913288291415061702513226693400189765858939215590665353946436909362750460589805083913902934096944263177073456293130242437184935114904812326311599249656720287083751296615546043144781123534481215305519181950460147796921940424587346080626524321315543190157919973049549280646048014903325085616613525718909362214621444158699993184621937000909465892375052274534103552836289518880543411250288766003596934073771453307546979062637253540839541858875309774628782875156806858313511930183885370783529596096631324343566192808005391628606843090498785323225998921740949739843924832886291852019971799590575656603178826440237146014041265388089424200150223201566690155286684759042936915464173146931590595003494185073858999053925061359890406989708697025579577675727947410033762216039459236931307292668538952406720862306184022908695293175004395523456143081037326087568421455932018323359385741250397440871551440964224481016857746326879536299506540867833855782156062470177351529496700887829967133821615073235880922270537761959745151311881549484205431013397938666108595293490569649565761562205057198450840574999070252204382377964836876430538698210370469866716007927788526215761480053268250130832620522101358910025802359909468912476408033953462708743478435071327503779565010280229904235502256306037860949727544721106999947862005904248135914225500685195130126211091180029376443101701686515469256431389915746351575011856653892135532991564121702732009182928810587054322480760190641937748820627341445101449154075911376327687378758023633932657049333314608765812878262807526482731319504499027819561183020156557414074675611216122938637344141812873319771639852024738018515859905319839774814962242228145041413346862681018174046083846198173573326257149253951976911416759521101872259857181467241348889697565847937412847743638051864273623814238456717443395273898270201736045460666197954353578594724736855312338943486878120221173506018636879910739742313859979877608563383369355276591763847847539277983445508662709048097183129278417173818945297552497067101772497897724538113219807394754133994841477676356474216286362424915268377673474451536382832862641869085867927744684745041311923188945940468921093938019146974007848644940682332299687548276051590671597445842121019195353351049517052716849470113034266598069915423619196644190392778606889194636946063244914458517016375478359888115975876848544763345768899572387038096127960196008735410834717689835490243907136303097798006323450697759395567786599399834990561938065649426347464642612005743438108738521661568311935506102692661976368454301145840201223393352651910978230998069246068420131159936751329046304446107356160194194843444279039283126938437447211605494127827496203785109541454023377553567767250677532135010675933484332540477144678244372751748172211823586751783736876421295675471614629405859506106104669660090587521876142746188292773830816312144875241820304644296846155553198284268190532047073012000674567086957314503678582202056618944934489517649388520853055007380921303405559782767004350555706742032792509661740430966827255613874935994285896826454290633207385217264772185816451377968940240781741992342271756852439817783068989201981145776451486781499549704868754955734272643127009570724738377180021461173099124578061627175419118572100129480608348046727530986732603215488215211992136577470944077552848896138871293285017403373882202015361748984134761312189409198355403913666503168895393557154903077090950023356170908219493236886430579998404980142857452271294359678748074395282131058908561714787528262290286109376632923722740106587361395509796914251694159207520238376656055514817731281548154392948262963658389588049879363710254544291007102604559170933426044755433492858365201358312869617132986970311940616308806337825704091838357028802630056879834149671230780666686176436084433285204434354523651566334179881160604435292312127176401031003670640448876892869559604832328384614656414342241065852577130524150793937343816979093449149216829464991279408836245553623443362676407306484438362478038950105170183767727532632385860115143738004877822847915477044707436289331685371098979198277681760163799785247706371260316682561347402302073750633233619186274758719577740808063796420330737945068250846983479204973262829421430983096549332499494468613782698668036694037689760039560408968379137977095385828818954309657140854332925787419828923485390669300490560723871073829123127369683794719340247412034315917697446806765314240667680639893167446573605535718564831709426764165424360879815187772428378883672608130783131342509433366817222752478145759912376159177163512428279649244062734608753757284647691623331835278314114943870635018616636257664948753546294543333091432467006069314627165627899264490614955822337115042620745668918187370165849783454878094162832031608124247062417005932669412782417654707392886966488253710823899019085418799347502712572796895492978870712913717758551315497118153617734418930111828227432011652056751915873301557558966124340866464439419359683063282208326804494438546875311783191478806024321508425554945192528032312501874312882250589598998854626327113425026460957000141518456209041274427234035066137354115781380062617859035466649665789843268668963863802294211178986042378373737776874041274079698846489768605448635412789106550468228774759447055883740258619298952857100617109792007128259021106603773810574266214004626749284570471431346894432951386411539216740554677160667175702939514120750144667182473703451206136664628207548290099970973137990086905946393597305991893052124008156742874640028854423349278582873740644842189011789839260565960677370743396557566980933663970173459022738613951293133193964752573294123399505652207194238306562478146567412423437052850299931065185198359297083518495457071091355187378010832876423510966189088477862407279470822595971380527718208919768021155255741327228581895078381348241020087953184523837892372827094346164342010665561994847802639182753002508136750452690695111576548437890505717614672122957057585408110458047739371880092984116348814526849494013007471365510389198730104674689575605760737057446305688896725851343627811277123306347036225718600944430485135096627416886893232876471475670918349518250517064223544687274473360635858026161519548663573628902604663388576327219927069657261886998294688602635788658522686000854808015170613113968967017790812966339647087483304328835286152052245523534139763512309335013235328662941936864251278471987921252989564328144806291616477221690172486363337156661824946365542297463601935023519509128438250261393500692989103729302118344688456119855105704018300408698841287825761010583658981187440064969807614154397974318362580340696365379801584224355786715600660401669145375875569264228160104184872532997816257381200304866653034427365526724439338759667908297484897850492396534865972406763662587144686850006991104193512631518761483045517815419109549849807318436508309443382708026942968620867344894572045392312696670810457774700478896792768315855922266951603284490323116216248376852122392207904684900242222213715743325286539322942893821520973338314260256899112645979616993619010103192357290406782751788086874395108035565285524025482320424058957641143951336310737569113043702168860892649353177489060794459298907119221136486259383443932284965319258206321349970529579133398338660835332953902329354478601773723419453123694293404658605347394384720775743607101096171066630114294646620459183267927452603666061190070328631439626718567583139214819936981176382325375133572667153236455163967041504174731056416947874039314254305243155192534411337143201451186155095535376474690765148435323693825789626985705227292728836039367566674848758171381081061376854166903753228616989745875165673572256639211236077279220724119411591350776379363941956538379908897949571161658575274782205392234056389877123545557496676619017272307461410640846276145552290792494464384203992316869365061578751168389863171382177875182350315726418596418398463654358185434985484235399023201997893567493747345381904288061275186554616658483164918607480005646978442508497592620624850478527501862546513748993788204934387936317155687984295656462922628329113673259378221682148810158051294827012134510500193084953352423510551316487778064750469095300405981493092058059674353515493720008130853831564644455398796679729106297240576112042983321060237260541700031429761458838791048550753169436408683978363825157257898275222732234419284749748149024657927456663517545337030680978479806486924507520872276768012061944440010884075844256056153919286654321146016289415376627389881450362177615710348291299455785565971921921362204771041189120971995168756906876357878167480769169056322990608180637420293195793088234492891934674438838481566967381337986196230372833084094894203010757968910332907957925746870111404035298984473755059931274588279962121776727038923041945486980624764523435195216589726138043262115677004265997392335486492557173640600482124191063355568883084335294837806501040498305679758587554459144048683852265219114610957546426983446617905325977940035371924689371103883151138651520765706182253308165213225056806151781580090853776503973121971860497761497053037820564541019958017864896050920683374186654992050062837268876128713533269917543684916307697324584334568808991067643864491773562018674491853809416706575335637887071051935861445539209675457185725228834117267912083894840254678103527789788304781369962204074275071993730014294411840062283518332952929734384968546208745626708424684754961380428509082111488020838570522839212369203120893305814214692378658668410338677145026687064170881176232470303656717574263020859811551497392646086154203538005123143499299563006830800693662086481114353052102320601891968077196597336380075765824868551500747348566280762469083771326832210518334861547753468891837745861860703588276580455979776087741142660872035578632459972254345914396734115211229498371973302034566556522816697291314242839902838799322821679230725346925012045931062450370749149332474591950441429871438461011231396625467580857713813436850661195235032368624973711166056649225430671019793118004577455459201596582225798086378815502416100012363478911299806551553067699593471248713776717260686265689148688054017793919024043936770784188643533086672898181396902926740068992134083712771718131177061966636783641446788678727940288508800569102739731181137186105914876941495406753286004499844316995165394375767086684602562200533340312055833088594783264623131441673340795791512995403376224613334195348624955819638221805901486781261810245548897257552533718109944685550934253623727089803979946476140901745124330055988451372929475533945122823732832251938829013771301271326649860095819369490741524292622539195215121719850626678657856064765048224819961571393917889980616522115196238234776857641706906675123951584816316955409847780636755251101240467458169740597957742659557530024624976638796255666977216762868783103740520698795655492745268091804051786003738868982789945331379299049174798648898003372549539971974348358643876599691991746141908611036418472155778796582719312826604791365766542865883989755160123811204378203844598956520704156224718536779080730553413956092233612811615677949990819329137726668407541723355586814853986962153074122619897357920444481011188521305534325704357098069386658888577516004803413977944459143721847587448846614256910398664545733909226667996302451884934498503416138047204990751077343893063896334644958949942701629430548552031500407882817587587248011336548990239075321320230312647917124887143659219358849491477489440638600062393539496578563035952157185642359915786410442038274069286723882026366614123292973437010891245867413443339400766113586268935385608932210204623019587019900480351639229107696002147031143165346864012070563557099540599386875920917185278504594503438525306616590241146050885979645881922672040314760952116393343818059257657090410883537931995204201388719143413050782184039964152662181700718608410839635614398047285215444505864145999697258504785661672852130963818418009205490566999405167795755679748532118478055228935399208306572957919033184740596645326895150981709024108645826416508001015681041432491095942345971963250901237732539454061360925629372940300997607289252728451897452570381604796082070108438701550400853159510539168334482213829319040798443734495061688929336058394285580224046322701644260631710882484889082373548787915122493023778634404138289897573107935109642742267652678124372456821580942582784086698100094559034749762717444909952644153649387305067739059304878305239057961165731759034160104857520415827872687541401380960820622454223397457888635631588831599741132923081225248939074985787655785613635332860409777221211792844975789124805871190784831761304711975326345726561961913713938974790178601697508765383508446830200399289704673761231518691361801303538925773414748931809550817136150143589328953605302417211594961049220930841184264930539007607082291050146540617115450796744100360587015182901390347874176045116896758572912376899777336492107103892907418155813887275772472452372250210006289548194840053035133376865851710044175672136386670601947150740846758788362784188347624247345410353547185813437291899625022808123401271491813043091083255143161547275624461875590385717574261813494710040928228279081874207665649437998650702202428613380445745113697132290477090965081934917787422410264677539532772730958066207406550974276740305369179156261463668186569429791660606353262175947849231734696881858397294864642195256507222660032278175116780301070376401393819691294656844814181578253245761095266517740772991747869830367813052941552185545508383757313828745963550852663828347530873708605771121944308763537273694202901464951198833327142259139735948317242089242985482154886045714570901727410044089433245357518733154621374323956981929068872573164103904650866910935753515388567009626929680932350877708829026060761020054747406999910987567023267877746886718079066962043257271190488986326753549042745158116850303758664343965268659243271700227065542046009217962147420311678721841628456849995626621984947871436040188567190788791910076927988923529012243604688691566891072651815073629647984065349784424633678150078930415605474598356572868037811124101104929469940848921166171809085443037211971448576408255384289704417466217645918120351964066235527641675061018290865623180032702712463794557508385336816646237014153804797970459952933050685075971350255511837452803447682100402856486417643047017425455546543535410864778923150055847021310130165690633506832798074718895223103903680090835730762164670610313281527123904623390443933108712595966143250240405056294504247834591248955122779114880864490427784370619960163893313196507926169073820236459633010684918319724547040310820791004064643481905705602574137793083464950216940169134022642678590763024423755709135689506177874681439656257274106337602565921186779379876443185084016648467051173800092032665674867465565411584161427040828733333551541260476252219529439618132680153371635960172686324884176831606607302943215585299230730687438873743658034297232100635645994005521349534862433033557584804216026604558128141681958532699844657259658956228199864825997112718615638769717525892682616547134092763852440251459515326074055546604502285548253266061269627972623724914400470779439384096998120644177404481077946589320354412548254753249833831735051480500524556018044824917149873921178722982444679049694073332549610331286126953235027478744163440218295946079446588825284601130485216484550025189682498294306592355158465151035463922757578750705471711896888419808321610091041928217561806630528045610521012299371836763508837266107550232465852248444741835439107681715433378852674399081577346766941865556894361113826189025065675399987085419511671120201308557709568241289627513091589571439842975197066053742771013329446660607183642138611702146472483172202340431440438926892858563796736891165455987675718518430950519952517557196654761379715782714079285792711684668657615115154518136126007335134089118651859340468753459090680391142161736821149503615393811322459507112400199581236907414985827385487365721960616806077856134262510563548461132884296326473381150885932945202840468921893996299295241809911578977189567720641265596012195678241495099699915159489541382521506296813964404894972183155782992069665826584432376894767840317676033042640526191987835094459266464646960346239052088698995065656413287407845299006249146462883770130637952605330882939110345239279502670846816812403194999682913341492968468227499847872659995913196108321684744002115570765203009749686503219226119785815155484479238066797256058465132776554053088520790858073707498235880426819724092652056442626579955786088344589101964464229211695135605209833752423098547770988384979493009920174927797292355471999976406174647967819266413347448948582909144899231241012949853908569212730842473750478681986799560267386379484677445312032893974144676505499986540124700908762650893367514969324810158608478338363369590660101346222992281577377548228818998445974911714436709586296681035279727838877735880911496303814399518200400416518116485496162901048442727648830322037095118784507595787147143402285296185814888912727402809022241623568521853441771881860068040049663133451362266831812928582544347947049144692581575776031417525007124978782392900409294135394007739353702360052264688722555530028621976034658581968701151465575902704811754921327939759841476126032470600312520264503723855316587457559459863187802884847839475210323998482631787169333993352398552163693774273432911086281990473786057183721962817780284000649487374576812389313724934792011792610937230199927173536913002874587533820205857340635323089074950447490024276663823052046523732011139290303994588891620339556308480206828263400598324197197972982940467234371769463940471024383202927687886997439628324823219790973196724186702279221180378589062175631709490646216983193397122105930334783042550601999359251288246695352945190936665703187156495270231917672670930793255665795110732820868783565055036124192728325479941463182849844699268274121572628558819535971975119029756946685457932612071482664058414822204521746754542260770034412235420446500296458971272764869779021219164653160922825102521719870751353317672269364389744708666822420030387232080367619845190969876758088849284330244931895352345117509679401564311303074315880186465458389495757024362635713705101255775478229742623242289986968889997255658050538230356934059898861165349607992909117134726695888126478688039196830643889523925477927512689556395284502254820043162512408010716775571524623781015821543015128658552698384022234291227255477308498617318496222361292547998971734161327210812809663564821664761487718211922071138473319222378193122453047469172358919470056691949708997140017246693633366590445781287893634038541769502895556106818770428323441081225214019762221260545649251143860424222010270064569486082224272200808478522034866373628069855007822026103319629205206169326694950455502423777177516729000183412527002825421825099497720223172941929745473936782768048641272282989492609976347785816415532584030531966068023735072048249094482013245042240996911205026611087592878448868141581785240171760089389455019885695315621132028947576979127646118004617060686328024614074053625480318682583676363321095052846826847955941332843680379962054145959084865137847972058683041053595961508507177786013567809810982973653635305687819626518552267232513991575084975926565943088946779807508519348763875534612940274714077346210405898116936697073878466159855154171940055821180450170789713965925618987719752968603466557425798347564601783098056664515497040700915046048225163120402329167405528113281016925346798540848863303216464225532382385223934782050168367238817829241758966249883881097242760918360411357402922568238035941601508332826017802682398589965176720141883386853573020250283330387692229046618578250775067229255704059023172384207542032912896699569126966565483298553251836807155590077373199639779811733731401831578927416688582962898206582045383504935853918900703377367675935287337537949408560291413600165730727919938440802197995900207068776933566273694990496651343647076393191346652947179308204416229311865631889142363366785537159530194241686188793077716237814726408237133087069759828724088511225939233301267356907154910708984701536304023147684578937845377097376501456569555680075968039702065864895567329775533035276366364835427838438762965877184556527228290905348883393382762718311599818798989514548095068128301256474755590390485941146539780475024279018748192789404466671967992239337512631625710304967518780556088854904983485509250144060865785287756241832602181854008051657126435827876284660859031651704170869537720235397962382740744216421091942572331992656573271210766470712774946473913485285214948906492620449748530652245146768295450566837134859749433494765267321456396235148486580972815541980147252655212789080731566437621107677076020561215359621903894759066586922069215656780216169850598503774144286634247961933169988160734693607981136849662975013629719543630143228023396289622701657986815887213048155569147996596154649018648291931059817327999799812448926200350790594635802050657992228254071744669426674610284335252192813448482912447107428406897160211422016969904850768529107286318769398145466792955600111238253004541396740553482128872900256056864331508839549122184105982551432246610963822981120359195983268617582594255174022516317794645520324773926765373115149898598212860169320390038943908536589936567065623900313673363639139757118090975946369721377524307811089855813383778602490931336344583365843799594888588552209287031815649390971796394896641191731949870928799651550217205542543321114068279661080137900695920139132387380764825213772589590910342677882262665311497402617335445463727351240050166997094700226790696028418265787119701801232464939244513368253659636633682523346789591840586638989445795135188173694927840253388103254815463193741875708275057921885241541279100364646608122121315234840466180789415651360948104499913967231130805427307838861984685372645518084279853935225526352598023866308961003231179474947875521974013889458584621072481701952790496498049135010019132713839081307230146922768193446371257228210228478404343303926755018240941891945562513792241405754498653489702327102089754411761449410556380602532229813945667544406109890212313327102870016076436002009849763728318592152096580264521665721926946680608879977920077907160256167413518445927633951065599660280509150746059108829850784645850355635491763425797494283143184784649161566332106212947977819599107573404892639091287321983749181244803799346393837001526566237659090224961895999181248040195586158988742744982115970777549854737903012386042816872014329065834212255806334315885136906599130142432478854326475499773190065353225686546287322984081204947488019546136818493267615201332355491467030178767881742999237254664856156411107779918290348258806263024447963612283317671666776556726470205982485656171173116610910155697799013375126983252023434731510733840978373738619924864803997617304712522358599360363268740965646917272217236834585844730303590462562023462530765589404401478864346662302875069023683966885841177135273792317108581557341942089107693249188644292103310890751452623469225000826628096794316167044399708258673766444051840287027196490855299269958105807211977252078747828522481958146024941281675939583223866407622789878378751272728204359380387593522550280473172860325913266344219238049703423599300397374184096222288851082565673336478667491487045757143312008221827154485604208871052002386117317577790433205626546767040691893882099515440178141885307101900539302569813243555749357295242937396753230603129258650026573283743094141716982855664875550252906565937537502535273345494660926700088278644162705712070711270295870308443868482814579928124175517745838277490481297291623558055230136323841763255144097088601493120656162367548336727540976150564885935952584673915200403407948300394165406941924612053485320258019445874319703697815694301788275764246218949743973455479261825240880241014762684074222349993758944177046042552790729790865015590232081540134143723434774845171315124392536016368602234483598387798253255034100824282160094403469011689111548057188573043914699705841236671434398742971600692054642027796823348039341850776786991257861233467617131071996818830068472176798104432494118430420663895292790364193373162845951934804048820474038098620526367583260271367798853303365582213215212192508793249005460952104890461757595200395160435429498339849177681484317920471647135809530672225948880772713104013001376381925157377179360684740375224035845427790269535819712910137498034087800595076384252048363786687237871547314480497298301229192300108608605181221997324203722602248429432067684596401299008274161304481759002816694016378264096742561061039645373840077774812727305283142158741973404878346565099696501913166972397040886349739260899080934232065472223481314868455392207869336416136190547642349038060008607895298447468525050764293203459192263501894649001152906015263310722805998574491909167371050269535094318119617503922805355398934163364350296924216631858008378088978802823203085904385370263590735547980751996367992063634322313175098935533466879786456657183029362397937102210107671707198878871481712392096155271054799842924056871441556084750903449602102285763246412436417249942933779342685716653507374394547198046187403488555338930019570578237061190704203198788457425785910876182721580002254646615936906585946734581338094044928324195283668263119872440014167795997500459068264624354467525100530496705645356460455417700240689200555845867323585247428749585805555450334788868346347011911465152529900043963926599366661239780657296309137570357648160843971313832545395655811940713340175584828528362766883150304147268183496993488000867666880861583930824615035349564857530858884489181386878382971311293416662190234990257486831661163371480131893793593788698244093688049630496770567902741983820597250944979977046425822635096595041107665675430064864674496587679134858271428847325153272803324802109056772890066767744013485029208868874265894445807985987696260463484056723962827257701871746288816034774366653925359679084934007665099914941807621985751790415660072422939260321476697522743131082689424764594965634746196457801044725078282265074474303986963727506538618525340569137515571620045605978702527553796124438949000992624919963894542916576831126750522610812477874796778075541793815028299627865106151223754636944432450319067363667218573127742630312245405939427586694673569650098174885782664943565906041537249866957521289124318648341494632503834404954150854746015481694029685807896041447192408410624045325267442259183917795038678046375009946682263750224402485529635497901510922144741157053210958866765946936205365980719439226804048604130240352862390751412821528375134829018116923486032352729609507181482490551488752374473625997156184896290918381347934967384902167567487167401768985857873557979217672527857761064841622093922217515884375466212079264276119981367950446351664022390150513929773059524937044995594295486684408229476447355289453979141222949768416625371514676663147250124553483975785556665522908452214698309271184657270964379638521281918243852553877567260610905328064993794018014034295945795100365172206554951066355122178636467872281897904275125136590102824492307486374930906301366818907574511686794107310225878880274875655455262741881417247509917929331375330624123041796101047666038202003609771881593755769384830447015743690679194320337026068190566729372571910501862084965393707570621629547248055448556727455910622929684089536374498550262710448310046593151898032971323201022302702678152010373548903950375871126908215678558264929082961761444717935878674090140674992360247311496218863695942778345595010373162319962014578264426904970375241038241229101846970420611949874775218986444924119510280674502643161319972380436510865600950145331156492175723205000786439714471943141105031858172433726874041998872775784693507792012658451202316809363652239940782755234076606651997875384947373781929393134588998567595873558700907544262722063518904939667623280675964580414489337167245498356751542319440444258099055923990062122504157273822964987889191158910819345325339898638144107326331889160564105988040828167393316644331164039246374653640541070784058335589897737998288096148757871540697021251283255157570886590102475841420757394698758544944277736501245060060104471358568059100621521871611794310947903011676772954307140127206105167947202486206531761449451044163919547138726372721168051430334803326735488191979698255400127994963099432442363606954158134234672923369002102763216559662152559491816075564828629025167146343525313147972344585900480409545236219024205367796294523802799812722495197075553014638051357331261091621802458839249105587618745777327802450403704767013371128293552556879288214646792447179556175419770661522023771117566516188157134540113947171284613189880968934744380701874173500660938681355652104251691949776143922700595098675564307908751052111427207748523360099999708299632466112101844270626853389225111829615035269273127811910893012139905004347056617140000635217459470199620990337303599299554923057676071535392669583880389848517202827595596083779810441013427912795227601485862382894035026066600416571119653124849978746671317144364403542193131975726286961096513699832761558430632117475847482151417933380719136524553314616760775030619521697769783899940726199093012965392457351565229166734139330442352887962116785038858793900615258829721955444454590824740114872805125726243412303296024573502850198842722373925479898826988762632681373222475296621426117222801632326839441147217039003696433711804255460437571380978279941862325680241140114385427371286810964340858011676746619599538966821009638298576664237029281969859940542578877815195984552301812059007810601131578256824190961006816540664788932551418356976280518540438530751068490886486226522605552661173248694824899296770983869435344209140921309600096127842555439566168737881599354260254125674013783918233661037205615858187551113490128837693168660589747853469053157498953747615571447634198112293817927183509189027323812857329776504774409540535739066621520941673119362572690866187331079773163830982208404673622785301064013846674351622102490056350221624528913751246384616628343214452331414288456478321253621843070758425618450787440000452847590808272201158088516434344679274955504560092444563408534291401004238355827222831522887661499671670641713402663821196031675645996622546491160908019384881763036810646514249540660664443296461131603675201309694959967519855297306329418999013769720833651129200512950716353825970507972944409315816607736905338610710668071703971479667415524732655180027155581616163015975749699384039340868716607190582649668547256039621994882022698607648896739420954704440483036829950323260493673036200581775897913094596268911173527136904054450846242605220426393570562572368425220730868073132962806179362733671904044175640945411244317257393190980057145035328921812544057116281846220504856928014379739185318039429822400102576418867541207863557316607592081969524975280141928627187497408833540672055995675031421506215394312561935649913903858883816164152758813606916109825234866795117073291953797953414723206012455466861974011705448701834056380536448169594866276704975001926320991159116953442903894857110626475421945511045510557134686285646441344028567357415807193316850355132321437878038694391799406757768716374308195814510559320094268957064610640215821830029119446187529725474351842759010344647440771479484675773296019361180394830633505041561323619651974659390664803762521784264464279575093467913422498028030297297007746500715449898171120085512901927173798710336996620051943037411664971956204189621052570992241350673952377350610176774348449482298622444651158210294052301240194993618948519579895612922774092032470117234070182828383578107031929304170980683050740466165212323107572804949532605037648866021766767955066812688780355531249342036358422308508649945205225416857285127005107975414529797008100751612978480247442260442800657763179590877405142358432301825028343933200968096466523254008714579604834896990058762316428897111934864945315656287934711327017345053657774812261492447562300098655310930415739817259522659368269948915222256844647037530000602548374288280634482074823947449141368149159403421988954685834959099597012314501397582686525140798483847236255957262707685985815794433403850845890353748623865215193821331249985838993327915088900405164166837139559591436589100373744827810411891450652727918041407841570090454759621611039757610157774926902803283272903904169606678224542371758986071676923501403391506824429542351679968695164986249772219420792530279380978268500010123191951336497671138832528821048677575140946279607313798553085297750039640793460673103302293632833676260818544586530485148419548665451088946460360192881837804865918772057286727272085951369171041076221078799317594053695601531339692212029741608027495497601732302409082831144118763940036745424800791876452498310317447352450582747739056704236743361022925192267545688344532333279875334064282674481374103521967403084136328710023112547171418178301114634977343934002415833647001325353921568193974802209242912714701001705010194846042791103391170227957642244338004751634339024186951000696445245701202733956126574722685250375728314625284030574689743089001948879327516195263451410707936410424351833716538276444544088563825743467751467425577569054138641511758806266148248107553037862522547178859970308301441899230354046588348482079145900871201838883524702963693270458746319711348937164980970728512722241560396548330486552103428999419612702072565274764195860544031398983410923318825362727834235437787353313938387883452671477317249810284719440344372459137450724992420794438693407705160485792906453109676727192521804534527201662504765684042711803228447555084232583806542877617342952775463104279351138051093865385877809634911650016030288538876970095791565666031507737738921015446081509336324970016421313254449649456511550518605503086310351864047778402535587249232430354769501681153732361771014448122609000766336537614366210268071944119568082212619607897014606077963170504703545358885084711211893409882153929064228594159439699841035544085355057498025185550891430572963062188083178616440971747985696890744341137789555157565732092203784817516848294004358695130854173704807436074007107878173404883566820641169533893964832117699322995729788173432235008087670533622832646954061299905747464842339856640247229047843714380949270641667640813901027676959926256504488494110658834404271641472424182021493013066779549299305096080615766694628967077301094058158948801778379116147682925726310393611259207278832356851430017183873758468601783393234453860032277162929573868047871707654361838633025342372740169534858535565538638393376884244558037951960765277069981250337036045366636748765169178799579085763610260900385144911523878934567042721387300004311622816528977338901221159594325043323154430124909377196414539558228450680918576228163444758054973187363061498712653878753785940702184317421597248881834639728614975437328135840725249909959042935993358054915680122135004759474414604660353444518863675946562323043343334767156114399488303894230743263891951182718514118971130294256472106662209035728051448355630093940055867166629719072768211454935520838694276930009988723852046741483729104432447347794208084547373021898882275195296420561884390396674833938233212368764362350448142579842920959746051306964633336866545882801531545510275412053861838084782345814976305216749708451513910688943729951409476170891895817774852950452886399123436934638185952051999253723910510143121848095774443748369437478604553630047383165122503198963967199418528973745815996711500520663428200694145176278391207304587088909791931974763381789884068917390783330070130216006067490197087310042860604138287532061136901313360629109158864646538785349175485275778318157719295321430282132570133976528975344753401740912507014466537483700981269012123044180022627654922923392494473727839846952243837001487045734773474329883345172628109853321234708466396978413502510052510237929543901967365612892764514770446232673538073463748344463638288412279062435599791872170192814046209126836138517538533458456540150114140049195443200900975234396787909449847666313606528013358687362527998272363842565101870374848265903366847564806418703492222074348370630190524296592987660447629945539515149862017669345823183266579217926328924109732743447290732163515402064096214574568817997239000096845560169023750868777189767886755866278794259973504795729873556843585457669112921686588759958400436239498506997902303956962353896123518397570780743801439883606076901856097199566994172442793207049666622673896950919703212145829166799095236208569303464683426125859556684519878157916351256986021805893658153317200926457421253381126563081078018476026313232154973457022853164438924924806584041614378675688799157947024089930957708003034396488160212507631237631356505293301920347897565775995515927496347064862654766838787068288577275012180761359708583991744647823445440869356187534938927798474471573149150498507847197206750426373380844386966321593402673240900491851560305219338263019760539621230292312725136714101943895415592205609142215092975822112786912171326088058655759044193203590082840094390721581807422839999528116458515914533036902626173277624530275122563095162636333727577683759657627504527990606502065684017006543348695948014182580761127203565592073825104555077900073373804358940390748230951251740642990456587165279870118287851991505166885387354158635311246397089808244318787026671352095939121183280242284908965440001875082121026784707323973987353000833195050883512651426227112122170567911689071728818087932117263990418647232456374791561194216859142662959552326941386284157836669246078870839594933718401152726549519290401399402826547379030774173657911148106039001632339544334498043417996910148896111386458046581780189115122408085816251546872212090637542157985374030461843264569908005688602618017962082412393070593753026376471426204070356220599592023752452205857980149080069445007543276759178870740149879718167429101317078037172178070281242002630063647482817146069787215476697931921285660566994549598247937501883842496361774557523180351013418739283854940786168604691692480951815770655120220181928220491667358700968937708312437388941277622220313486164373272965116246630572051742075381848885473739940960298947066231369678659699890364072940722614238350561096450334790969529773740058894570426131997306954647851674457865705465073382971237526002298729199155490759977821947282943233863205331030000206855484660073909982930028051957085654031812989129851635702904226489260485195422318581352823039434193306020893438222955504402849125071804143564275623520527604377022716550842206645155040723838291950778466166599148221750638764948782307688333550610907236290758105969687546388328833261969725461834221640987903428703559538235761733577966093244842049427731905186871164428889909206433041225177596692826739138956602333354992618961035167585476211409448888712059049355168820817483927018925286995438416133346556976292514102032525589570233901410799340417470262532566684366817546330529811766961181136737756005525556518162101861643116717524436110234329561752248255137730501296157457652997696829826175699848365343780572780039805838366002780695932780240392697701087450776442635204824010813113104080153493178015969381016677842918034646871581308924277973202363345124995650858362140331010428552150765258985810099925681944804472824399923839173881020800989936065219588782116765959132933521080418084838738313446872734154246284863983527537528494944904181618180067676404751042033819929220119836261183739973419603949001358479083071838133620006971684955072292289812146201261880141045526027766244684559112162554258901109791277805594600488329632564123603930633931513205132079680419364136314775400324560990326959491611309668751974484693896204698525183274912441154106196862121356126164274140614397041444419148179450358182496380778587157158238268120556343542915077478022678491395352107529951816126933780136249631416340063242788524242845872020919608332675321035517323730047499929266976798236873582212423358089298414462690075754494087676319715366316885318666387850059265702584165862768582603785264614874967691137599049567263575157001693086141253369625867352794634855353394482245414259758927247786015522009844293647886866730108277371662105189991574217895566974779236247919100129033257887448511396916046976354433632208204305861094931342878200613265897149843045380041487013288295959485016493689652954792203824415075011772451213951147460924089764773532423062121978110812445788900333595835997569185384876979614586862077718888248598807625695615030679190667462063453184529888271289560789955729139460383449797715275678143382214168152106092448188527818628146419978110229656711707735900873950516795103393454699248710597375739115493958750957396697489846125682692875669779242196837798508934323157605706093766196426112711452124506484858766100805227859524793156619155970986945397192037081589183530706874474696105138000190433433558685059616930544973575992913610178939950760810978797336911567276035356971680181534487022780184545876155988935902269666720410246437940551552969212523378087516980252593723682161758635107958748681515612360558292993298083175129174875479704512972377561512675788622629498424399216397412736594832741785340972257501941755491075767041187684302917395754982653034254591539148295873254306143203692234153280286306319137905724583266443202816080404155769134283827034774316064486155482026570206334840954351463417348715699600607677323858325757566478958510303903747444873056797576693465002794793040568579295099778412363741499303398179341937690081296006542395595568419437522222352888547798780551837630065591605540638273561346081184070275153160882048622393702143724948612819474245292527605981469826275913954687461812068586325817535506543231411257841757395184711844973301266521689314552850034851341615991646656173219075292669554028663301469773392758105250513211279283277679632221220411513827151628352077062578263844196019312038362781541829618402229873819889234067718772635097262553177826071543896018605801992215883525381509924623978610168392926563529714136374760349839246583982598574709820083992771962240006127646984434525820216799931821428312259405663353938710942303449198389164683469328205469598853148591170872489461959664834380992349844731539767144627378244481088583596447351775394390091643539925819126780673233898910243246899158111498649423497236221408155879488033342452257088763798786168367738801803072882954214544304670311725360300846654385936914403273664657287797055549494117229060135793710550406992841599793107650792471453923297894561125668088585712732389093678475975034514302833876517229262533208661125282944021375776488591259364481185560529541406539482762363147455511397955281834536141836212695706663175449311044522539406169341108003053928502844707773623025973583748418858632096580022518160160529518876152806598932259933030268126258928737687036840093660705408531846458780936504234207691905382007344413377633596859506095981261407952710641357841525055515414049404539680330305839546390087823971950720150404774177614964696102204178267590713715769616700098416059013334391951523668257670170858852971895251177529365299184021528577662091935957284295704783832304130166353264575985549012836067197939624217260966444313453184249631045970348152092316337805751073970006690077275612022683275907884555147642351871244220609060696551009579306997999858031310196402486310880205988108657411576018414048916645783444726829513338602666326076780482128910086253863608182220321918043375869306007854677705094497592079414023577047537513314950037295104895707024423784190280336286509771447518856211542584326088199113913570962807955352000835820843694788147504388916694651867939486892863450116438984660083185946637710214680288958268167240450805268796683349115079217587688541762476173823605105861984418535437612548069812848380629200718755364494968017836124664741747183543884847456895322081892541516826399346615895330617728098401500918888459760594711319576222465011331953838521576173634405742245444889474918800150580036695742526753273400001549954552416732186668069835714143093367495232822289527277709904875973066356635763235028332840647953576687330998693396279540199157091623665308942590761200049920019622208857464198298231831911007940043996246538295159448152386953072171511499048100382486090758909053764326303124949124293077769070568309241495850352356385297439902201526125605188810079177587137587393367378334651989424056332669101842522678354770223854401967270468279250569969359373370311943367022865878133245705482825718892751489906681900743863594911014298520782573704298436250370936379927606787264394469292622160856683196639533330108539578186175864774818590201280938640659713458836828134963681594092260169981882694155464916717278335722949962761056704128391227861413241035668418516873642470304022814216259412179726822389720826243692042155021381727223085576540823844077899213384786179420371780117849534370237638024838694947291434422189303920245105335280529009298632792383854755857436722452883636119440738326392203783090228253168581183788526912454056206597030818793284827779709371076123342374404130572726916400791768039640644342237241406374235987250543776029419954730060307847966259917608312598401776984397557725350217671329750703286540370963629482804317638140911536607950391729591147391568967922594443036374348487759270669628308671550334518359506491124332711598085950505242825542734767246227550467312329310049861886021986360117900039540521287375183372539486671486338104826608403804700549217980576734050450315435014197868261647713983749209550891389195394541569542561830497332974400729076741378344128464319883408085617775120703469177808232074581848004901212312079620623594841076895723273051886067443573568950300131284982074894666560641265395002585749796367493864674514118082437386094712400283316223993830527963159188097478761356439489236668305353262393585156604637499242717629730987392589960942885932951069903756109384904534654366660849721265481837413281251868634233950040297095784382592263334842862766668018990770401592249947098873222048792140721791730937486834518548364603856229773662642276090534318810909639132056812454202245324560365285865808348186456011199030209299721700878964959314385924746957483185909136919585114997114598149003932731974812891134419422251975562104158780915447735952604388723687513317147557425694045281757631906064746830478468311672739486980163628110623478417897769107214090594375188039604200514449013786957767111805313418406793942095718930048157404326211260611816904982451085306836796794904747160832402824904961542146788917834027146811665254194920180536254400861891843835240626144754481892945206965909347079352917391321409749851877807184386153129002252303614703427551375340940297536913985004283057452992888143431756695016756235344908233643116812701563618118521990383775699540148427830348789221048427248660442447803969424756612239907353305824428057815422976494983172779306668854063004335858265219712018323931904822324346481008901248568396403507219044531441690859688305236036635945690071198276823770431260961967795683692665783628029096280668160138700471075245393614874297839735427601491895926732112560599246127430360623696033682080360986314506478048446188076358501709421653648990890197401564584969966271671974104316916901796920844102811140117514504639577843594154520967882906136255115016168360091416871041436471624170789567544430386787023328123037856717340078032062108544068606095675967954552083353402188774592256534433658663108329490596739874536559088052606572242570066681186278616464014729449723360637786068548570062059672085360686581125909769643129128189424478754375893860133155197697298926597770784909617319976418224642911743805374428181548191921476862075570087272453313785360734285880993938001465739213872709076705489409163988862486417097286120547398002208268427184976809205305552088511945949552491560785419060240423934298611391363979206232240908033973312908225184461176145623844539793701113304255472743607943077881861442168657784130908857178684008331039344619767715747089539094068967893870350283396306877200717468839454740714355944104783739442577343893493013539594064770125755295641976014612031637027048413398237666379797801023646154726200637174711619219660137444985718623613361713537121931087485112049816461463010943115414668323197572866481208805703901587776287900861362452830206549370734068292588886400944073674949373939286290916312775264642736958424222176786168548491541618470277016230172147521663853866036620833547677567180084090417217950951993277057673707943881409863928154490782101826951268361822772043158402724548496399551600975591803631499729270431450805514313300500075233701772660891453778979246348157937659870299710705945551603559269594292413186160078771024561018877340795197657063744518457468079272200870578137184527852818988484773091844226605729889332530877270031631056606686064493180677579865254301913551735375220934134717687947219588301617697456681557529680195079709611791916979381480170763504906218072776795296547880981839599044384269821980699415778338792216516619299777112503246469431865367542170492319722538269919314584040192643674540804262314923568922698514026601353220219118796969441916193655086877180864521551590873359593804265731798789239906813660941041986202598408082754163901389140114842862343015681263726602740483016559907302061112395952090424601616586133392551844633842915668554101537503140245766313681335663397720348172614385084324146525054825747099777327619774698528163376843593721015584806817001228764624788283693077791278721828058978658865066633563420998639818447298954699648008542973041814936327380449533504284364573139423154467957761949663568157731943624178651361202594060453278308161558778202187797937880568893472111093564650649477035951065907363221757857020602218125948022438355695736244840291291279881131226005652475521641461548393174392681975138108348458939703533112343699618879728276328839053053011628158664155297188631918963263324486237199686291984183625088742933059107368793928523891053059645386310139364062033246326136364082925573910430292996312291940218529771406379555317543034296776796568546536367368371535036249124802025271939439829531080281380112880234633348785019961593304783789737685323366938466006702849251912856526928311089998832817332896128187457067358002848835555722076958465671936576160190075043081485894681269368005688728871234800477393221579345902955639523141190583521520346013360652596460749323129588494407990433644886257860720293726981483028972591415523594905113957593066436314350468204024474692076823203919961336762050093047286292502516520470875200744253667997886006673002064838350971242696443541995464296562590026750405045348828595277986644505272412897363494118083048185591846029061528235504322879658364042342030759017496941748652745421511587317684202634086558631527231802897028156521526604871486067987848766826501627218049929704086048804213647944628737448538523715681134955936860162205965212843887330686343548489242087231319368446755649085178714877864409035892730186530660455758078817516489243801564189727874360506528412886813698943724691677111565680384115506917265419522069385959080789720166593728991112837723015990925397497689310076693833697811942233898237771457194138922243657229164667971450604658575207994336646900811029833605073219726249301906308462219347272811583854778978972706108167988630875174507066915240664056547077364960250207147605411618291699042702205173037867564748639978606846858702231056383572424827693026702064474837609460458150385665549875203771688957703501828966343068872704298910850089448706398805402514847283305131815391239909492282584846089659040802584209968852499057055242808665260921502925043734692848375307515924662263442234106432743511786245053956497734900571253606490695123315115553987309481301274990586164777616840820365246688106502782495300007847747135014218316868719763573576309637474000180338671470959755327873831774834662978644191649078107865469118102460492070371674402516744565224450156422265837621752803738078522783437271254223323953061761245534127093988966299129912571667054303564152840669436749460328529610966317400383472193957992801379491871371962515985138790231098073943032546029454638611824384050618898790637436414402011468228716842128713011913161696533486343605191835331659551261536789797597163142114488395891110369473366222195482556004472971377227690104970548279961447658004517169572627508055756607624381843630223251683833751955236775825191485682110381216359499933961014119834068978021540385362764591507551135130625788440665672909704327714812026431550463484416237336343472357625024649033485213778345927191949819291629683254617439625351031344985421039375154850647784696032869555151623132339937954862492064842878779215927163750839261958477233924643493769131367630343933126520144828707871172109824136342403228644621795117142855961393216156407605254346846486851254275740020044765005377175055091114391493862490692325686388516238737983889446578362518024549022615128991256507151431041317669044257882338664647657234100686436243404205444327832952747828396682085771623677258162261666410465621082160040608490484764875500202980421154453137721564485398404483107289045839246044147146026973878762183881313206617742897227678186853325236837913417663953794914956925783200497038653881846766712196135964585542169153928876658371023882773300502172548157522386116283154889431177846672626068677876640725329192822676816325486618376141918229178456615054607184885448784672508903923659924291207716209650770306307912517313556827217461646326967861321736403530916248471360303608862699315313473866457509789461252744581802090122753320576078246469908740402277753949758102609189991678523409498954564007713260742877907827075818309758036444942695870681753152927461327610951431842471847572507626356573468477781527905851357725421016927229292929422763666505246270584025882526742086237364404291500325556428734099345743923627195708704000637060916835057152168368482638996909463769716140035089056758706629331226498086710310524942525686550118577677002651722560937759133331335159446364367375946621821127145292628059753703691671510389405759602539321540329947849151550904246221015525342854315347916797821240300600016175661597065413510651855719784334186550273498093282839811928556107536855812273205162771117752585867501914963065084894583716714215758756275406991493453833597460272770680207008766420193430954782351734784356245101617637886503506351131892703855256414580672339053806526704976687506738796138079300504985095921633223671789718893205981947700518011941310529464827660535635862167226155894809212188652637992369710276944053858976182763382810232109070410190236729398028124643833429310220055356596854111134811933741237986631386297080215322619409635483158463488534605263133962033020325220868408897754758876958238320494100599224943185639034633934941182848265946472581375262673379090733874548443420279775600950323425308811771590572203552272438605499269428927668132702342559483888901409618966666001142934029254937095571701861548770082588221119904192955726167275112060805086345542200640821330632059899763910343403647475975888912122288851424494867421284080982680066292125575942941214795116621434898129158658589782292750193131378852013551957899304742959046219354941746735951011047687496692032216645542789846821796060975933047835675256543984238425181647683306971487201415326277988756367078474950813695834227260765544835017623270630815446741952879488633555881890483716941481269640053730408556543828764733664002868565826681816001995416543368484609131562064295419518625608866469308413709539510051945309342166447041349411161951750155116434553968502905914234980340458823455243399490697347425733641251332031247553361844246166734376263188029879799658404967564808589523766107963809115323519512960997635794092030179869351183091096703690527111973590480141360776047982602857014904211300611614747248930434867903154619575548878834186727857931910207778670636826268011071947686320138849711162387694645227328422395898161277941252249056994691988770204391886393770829313724668376285528637063004091911913483494223815026186528284005842795608522763429045886442988030782273862121299877454315963817607288394834391249483394983692384342794709452919820701018558358607245057931932417217160399732052577365678297310698107427656987863002013104428055517676167685733034602902499377790917437708431339959597467019960187287818644124480390564507440888582759918392845404199060986638434854612961175421539399461607017907555396268604286629343049896632952380275080911214405115053563913699359819524861264998530179113273147303342355285330412924558768323648708630944464301363197576976249509534043802724866498617651760257634408700302389790653144564683141533053362709547079608793722095683034850048448958876568348778321670954293690363917467060459605270014383352878599393531643032949389015435289129070467723177911506466894007119278398019398420140444241331198548171739178428801571013127247461557251500632513179461067369241250478900814857922549284338033038940477350082169078994009483426631019874012145286740684071006230300792016999553856695469656648411900869939114946406200512959550725102266085493661980062403300447951254416253114500790842436939537004204820904500851684938537054079553463687483313734397020110231730946219850186878622686530190520253198331940309460315368705803055560055629417905906737987293605618000344455710190870207388118342886605561515939181596420518074473337439663228489184528755429035127311620826295598734509447591444375593883395088995358997306726835090660790605733750760752253417755406871686605998248189766117813578490471054881620552248467739618673705816661350719138560802215326660366311397513095254303054760653449189551287935168256927639262982967826708448029155601568693634372700531954023881177549517689407529289807062799427405546735507622712140363283478010225522359992790380380471525441825602334383620598383292125747250053313227161959165188945698725960441223200708418156092013241946842134044734485244174954317201076113992467004144104284055963628676444444874681447594286536979480702003159407801980945035798496891879885094505143365096926868912682240501394831922098143182603728536161717001260645176766167172081396364053749411657447817355009573417177107405370447697685906742511631086285335975940386590512424518911348030721297943488028787914877771482469649871758753624250970050033644752861797466302799716666783919287024100083708481117442014472913101045990109259969934977031183804839894769026358372527385484245450231188946998859792434247101767374718732714494527477486589189924373353175855766468409920807098999802195755516104132038830643233827645959468754290661243236518186915659631233695954117568903866214758031761475732682103851781549809230363920559507311188354739673076603970483588224482911834937924638143658303209478037636161414705817460700677614599848823238744686386541995334622397486650524054868531654724242252010980612972020270189483522667515251752947155292800666892634644547682670132585701909333513501674729989163306496373416139905775137630807768897527389992999257537805415868332085856707788948294375434990875033131892683555966416312649808110403261680109901094038756125517590027173972700116890105683931696163490664500551543348079340989443368016663782991226331272765492935321762948474243415445516033965080921789231015464046480334865845824765966583759073975778703494137293870568517607809172807853574120621304979427843557181346283584084296190533967847231407798215337502632921818659369172146347531973162591863918727593046696551884105444177732183073661162398549581516290000230951473516463506063407737258162995239684797638174040620781408809933891875392114063019354664227736039032735100445092126126934441005898044329095755272903116784899979166113020552240130036706611003840610473184295260760520815497823694205995269227415253690934950745593833547289988465049075908506584269446241099911890116460581401850777991582758378705132687561262633008344081156038536355490504355842608887089564487744528014758335666338962202660400303978292370078987099500822204583911647179145484439093575786864781569186870478964693236111098770687460402592382777317704955527903112434245410839211980889087812930058795778594031147721407647758172721761623097559350051091421720061410468566036912542998801937176227886144663891657210958166089148319609941021495817358973134259289615140744464346595565042660029559346734939610430539829082260087375938032628484294940467378729946916437500615135337695027740885703068209888403699327994498476643786868757634092663110659120395668741629372026631601823822853179041006630124409131368677106056431907314213229509309285284339811379335351575809276761861134655206710988959600487940983228746048740924115078278501312013872420871612884977925301669006967288694413916879374259226348883212424877186392188702078838560686134816981151556030974878044650216486645021928316574168401707519048500262545925678908053301463995233822059073911003558885821089718692654383875018547886650753054901622439854006333750353997721582279162082056962514653945355994587209351267127402298332305333538034503632107517900201449544719854162837749823627187456316089410855807800862014021648914879754028014801603682181036948654830726548428164221521901754778165972118539053881789310624803082117826129245780650168010172447698669838779423835484616221969905080206060959095168650461623091552748027888352705583880887802066497293993470229475481649407279285050872952375904585954187500537675147812543097841238970317736258961428935695577146642938431964990691686896377385086636336105252076218735393518177374525043377558481923488161410736153783494581411453390533126171974968564570858599366384505434882137632945418962150908521297768835137572198427458620854155927552320133306304831543113194000629792103991507352768343957110125890500659216303283065008782803111423250413738162498397282241261970477553262713130277162478891777143129720024696295315988931805470052209585586688614052347574283846588436682807096592349131930921881383422203479858986464719001709251738802753194674379728510359067732494392933267879684300715507294183438717591834349579365978552169590807682172465792797476215653053698361510142510342399972921197244211285664626200390179379312029963520118266539772507841831226582731610078073181115592959794211369650243078785977923985067709761903708830543380433041545439680927789726268313748477732104017031353302747424644317176107052950543724386851514813456904564881695810607002082638174091035947391728270314436338082467042502519960826651145446352904002075834258602559232932892349863634502734213191284146282359151493915456542326431331108715984713979331507705603450077592178623303960658713624022888950239949027362464493329909392352284251722384034353248300856135671045652706517961016865812056113305204569016189681022167973571425643511487463954557182874376927274485894090974537001931874219900301841223701805694360316646339392883553374343243393537174677963858508870979054123013939078688198847189009385691629989990887554311631809548267064370125449144906285796474052661861981056932462249473571444932849405071112880366983075927964774343697404262285826608463663637544270404648913931870682460948995596087485645589895404455394449120876744912841309011600943616266450167998057629205383534115800766071960708128410763685040956514323064260408726714688142474846371374697200795940369366462847917314348463001736534789034978332241868084585573678950507801752106681861619787272448453474254587801441717084966449763113529914105126951026745541752341193015556502627904156613962090664254551485958290601899196298125574104576499125504046891285474277674805834718198653285720284451667151105251308863589438997058170442477324038997058451514928581585980466212662669565666025943900269456786926639796152323354022583059527036428543820360417825481154748097729007952174263149060983493379898701134459123673900527688087548488885989568233931837627777383141287762732241380469981148733581420287610565999994236531889400343918906575208152966634925133580234889166970046097266079369925373689800820294762634032307560956986510152051485418685584375836301158841922776455843139331326602606057017165834259830869672287550750213890358457983808881785488416093582977942295624937025175338595898459699656387393846803421327463908820999799480960939696132145023030774629159565886280956121435993484819792866118609404992903246709540315916752109362659201951621495551499409701942939752745961374887806785362854047992858556606036307063321298880040942698591086130024866574610801343983300362873174552277566542575689089624559218820586893025290091007893595613731923578215953686990829470084859159682455271934373159747673385021734821445967193266403508789764612833083953694884746561949026650927952343010175885946861895290204277811875728165878431826614457080089041023106037062292963664655659492991285734772007775210615999265788424962186431345998502657412653860548598954846926232070226788854103099493139196341949992157602474784098521121536530216962105600430420393948018493290633856702313063819643236552921855963074969337378945531544152315014910477072098326232853713086110757458660326479330910986061355986956056687735119110937174780126352427121637288089592450297354117716553697123272096518693276668855176388881639328930980411992589464423810495238932691879894411532455087729392764126373641269853101841025229652010947694287657698653853217658787810691520557589316459923254115950032300077359303275529286379687415769613569250452539781011002191674276507714754879327180608703351053490135501137211884555740615093684981886284204862473065023407458476502612385869490568595774921463229644437639713512727596059967669983827539265750204914419547851523985068523694345452537024720414734332249131283592424325909944843379768924944394436275864663424498343834646013003973234366580416751594136467264501802381582031976279068126555400099897220955583910430774291002675908799118044942322891505147128400103735117175387669701158893583136564833220629461989929027311845332506203795409433632517362896761167084726419243566839761282286660475732316840428221612733305107047460756698225970051181939015660016307639041313620579220963816864906452205197672171206857402089455414222044360941507612312088916938109315429986315730441433048169174786714844122647446514993038935042869921641815014451651464761294208851928383617378341674236131388176436746313430399813968310264668867769572802072394502306811928381901921486035709294789951160083312582733743747160118300437521717500430635458042740802171458947277322439434928897827130767432313151001502722396234751946950088948671038846446530943704850268135767954919142678608111095062297791965782843556903361018813631628162641745381724518508466964579736031526035833567113746436023188945642231543559495956398419982362466850067088992934353438020820961554265334240523660118544780440795310617471413168856806009292435250435040659526250783442416106956292023804847873808770157782901666112228666669711459928666976510326878813728730050989822211801092573704808263987242736693312615536300008302330406406208317516558981275297168790125978754926827229385141941316035602750849949789482539649124129468929456480273770296970334053211938273480482927027048735428600081994961277741705044206750878413256359651526469184046747715640498019039188814230421786826094143015605103600344257962804094011477790892212521739442934627959036274815583739218860195337539416124761538838595572665866071999636485088097390396706574003791961141861391651942051713843072113530735583705520033155563678997495698586179562954486267342168067268201405856517941825722337339882228183254419280742572283861839481478754248973216771129638121498119184863042464384150672278879237448057683736760059324550036882643815412284728534275919840403064069073019535145328220108787788866137679670228452020692577763955711500974434438053101944897185126411061999482183844249652313838982810466486246112577660201420677241279143588210916487193627005752958880540581641324962829492839488262241536734335259055737576918228186601394647114552740127176352372594821939033920521013250370852414248828142314383107905127791730137149305758254444560581416895407408480681714108581273857371239562425810758013651658612260588464859261430448712313715489458389676037141675454281300820682350903077825216884881727949982897019699971970557983410976946316333241351903813091719545662249731843602196538047273488446720590821072536234987807075872381808736840859196507506371994158176490668665513086203306557440919264270784811733722694637016524503307913344585229011163681605448622341137424658259162848285280552959420088216757892424969084803076095048209838856429507916728375770856571819068853254781603293855220785227061630649543501501767592163579944602948326805477131064599448199758806397516795002486694327707802629402075911588965763867412570085278745857088809533115155811205052438223837667675858363842773256639691777096991664627786618696793526103414690862102213660218313187947928626807019922277990051726324541353026540242442666998384256520145499182157386795968488294304469892336313908849336646278801308645557091121527753846453747492178383226069622913629071480724909959739353811768763023184848190872579199802695261110664158415575295821812278530993253683677942645078988488621877648737917155679686168637543127632536597731772600050270380576366025774156696595615796030900386635227279505992528928603534552776042232296772478342551320779248874624637745950810032697927551700642432826070664593743302795319612406069269004853722257475024615214386626158054975558835144279425116556737651008770509097161739351435914251737031936232175552599390259712859372693705156773786443840273108714003570206009108337476750713122616627437620818281807244833882303945525694350093867269613047395572613584151637925434093563654753307584799178053827091131513475636459570134559308425952138289225478030260285797539686776825094070738468421484954678114401685354975864068486768009298958956040542177016126514103666589224820339984309200242734772957779861992828438161575524448059568436235815147066883755002893698168477065842469938179080035944134991446273271310323154557108885354858189755002073290061364423645411328061988919668089438800961000895150755457198003084005097647708820855277448694073272662987832563647112150019695078845578895390283612190717685258919432064758795774267346373399134994702983229374131746010490441577599964429285769275314994706074611559868694389288726568494236639436979565923340362934446036360791279031724115525945664698224417090042710568527323421747385666096406839697381394366405163031256434558512675843350144742860865592499899693252896766250103801801703233022328739652510887916181788058964185050918702756118055371509595476523040713578517137000212087761137134848458099518669563557791124555104243269142396633714867416037048112918178486186648091374869826258522047271638092775082420619122234115875419689563905256817230554036337375127970856253765674695023956650989196838316248587765976341758363488256013896119311803569203580919013565553037155873670811782836909471401654782761641341350229982130190653907234847411356094530864617386338536416096962742063772949396937765427672919425778724325888321608468428262848829577874388646929888556249714758820950198095969717613617781659647270725202857007762508662833272703983086804514348543094554525625800708788111736432989325417863234656112646102700642599545361712225903609477784174896205903934989009614972371030204613591641107225279413849856591037671690627253774704668669592387949672246536766392253692064994340388219179300399824040493828781457141885277863092067521589291373739500789754618604405184761597965809988173079797984448926712287083317345853533591592224792348025841063186342061954518909105033977328515022114993320436286870853266864323870729820402858827393076888920001746904853522850342458271460339335523569158973520029900208442120548475245783422752472670702803099212915722024528218482324392807193256899625537368909642169344658438817088206068524631368392599869189883332549728298372107779753493379310323521971863064379539990436348048797432573648720980863498376583153296943663334832181283879228631484256631338866058248099159202040737704291189619024066766304228688719051094892958790978752163099285564691730626022369785525498103475258903057142554530555055371481472305692419774582885497047633727835793457869254062184244218667765030358675690042701683944029133036913309638940073838644195730751838180947041481777339669808658120833557778645623020436751458331941919781894260869449334634467216435158037098923672690857764422166634139178759974693992277947436734313929811391174352285922677253712786574508523978697605487313939112481869819212477889489003936461853054327218786258677350416000090151551111790085991660306101472861577284709625323955811083772236834736603421106564871143631630382283406455223205408751146238331682976141861099152887250396045479862126542259956132796728583029651793328410713939948877136636034508973637096741233589795396689777655102954080009207938316600336227297599442267851248510954662344774354196929116116414734833962127101975555474266384474537097783446365184442063456008233056916054540634411520098440767347079315119644109574880817930115430179114563667288166964131618405212971413749615972228794327805783551981591723538142323856322536595089309960505012735955231999912611334926863050429429490416710001606202981686081597259970140147106301181570858079810202053733040215997092774231898820949082884960332386122080607250185216544089465765197182338894048107683190303311331025558458841451933210876031331939948843182391282080243437886308740771595998913364145018667852268906223806661677688332920480156305740251348325515184049557539381526730547728493612779776076012703708374295744634923746701788171669996042641088083772461455069991158172804887890938844809860629927186027403758549483214221812242016337286861783111772372761483215693102289306994930647123055070684862092730004334326084684476583685081245187960195421145028715402194657034289522803524639287363525014484302218110823578275785162256601722625398095779071231299703468301520239442587614946471646475810231934650522374815330319447668931409510220759197921837018113990693306220501264825468114333432042840947024247248590666045484827507588184664863761367500369138374800709802055245585769910747323548193350549935976935147165191900477233381999482504614730205102581667339198020294597510283045146071852533230582221404871571190006604607173033746458792770949261622841680345309669759637982266824908781736524356021562542943203552577213319921150724581060733990578052595060880050962793807107693699980460325364220865349979308858286183915967532575689723258326000009278740985500336932123021504372312842310487834827675101415277418915467665901379316334614748663148693284471697182672402044724891785357162827753227447502375526437219170050570484063112913289494435964328982025392586860168149153904178370547888505828922578530226806283743605617882231204981500083284617331696142164972716119147033752591972578384778285383685519843749162195465078340341674729752923890871685014525994086253798075903205696157502547228151323921985190703656632479259919973988560980459680213837578827049693192108291885155880792994313907189691676686147472882731934253366334035106143306230443988014278425594098109754481987520735513049078781633196785332917235162257535673347266578894224113649728622877375049303000328601827709412132397398102027181618933437483234143608319559708525277899324236968155853720521618153844906185478665772351031861119079002200704736272046967326340665602843590369894225036122863793975990512961636770965124771370415104604433425530206690485820069238757515775991199451337729584123242392746015024290316237775526685386538253606954289087829117749493467391112542638534773755178047359081285076475273296992814293119608904687833325899966889588244821190857818799470442437075193439513829061226211916144540609963793630648186889486821923641447001654908426098203059002918727697924636252943723572580290908229737561504328895652808606315071660975200131109681919019732934306855765246196176992652249877600966592517918847677530024430938483441927987488472603896620662257371298426708901103214205395981121758156710995895560852505148298562535003277121086925038557678029483113549349554314292892499647074046932676482169424126407942367549813020107865666538083843521090467955231984570201879236753336832276055797910062587597457300309364449468219077475899376516889994696812414143680489868685518399622095900810109222350877025215368630301727373352423851380886839731497225711692141836958826903374648258780895327517626191514056324991310900128008422532843049605792247946355994763832127435879332169216032013994911393953924688130953434104520756943826033093428520222660533190250048601020501153972111459674263802935747664378943417162557481841990006278245975936408832723601987124497369449211107233053996869740961502056641469108772147350551016593463524801704702932785836897758312117750482681037422700720983133937822232373413058259758542452674608722423140173907181377744883775616231674922624440703834413686449713647947955971023065508389381559904013901827149332909582247352412979894391139580725491618282051814398885906905377302966615625123098333782008881163578933183344507732306293411599910994320318856585050058787818065035099890037421968135624835454284889093779836857190860866220371512634696244290298038168006986900202760174177370818340724072591311868939194055862508633047480091502596940692571877755585196385726845271420261804036002100999118252160345946869756009648944181956507610267844962879260393219228102884192043148122075668666007721423703452888480323613417628229791643002488338629756856991549195259798949637071078677973326446835001194603332834669321588633148172106884338592285164281536577201474686917087293614140931388876086256044641110665904665770124088740015679633251615862589116988540490150114155607342415779100397032059032277393599048965284080670276496333761360099766371571991435575598203588559699370055036041310178319799852092285564531029773377878807229362399042134312272390172099053415814923431122377081505967976531147186699932647078065381108176711101428711904694457637705378448706486556454122516171194565497891707171757143152352648308438955626244600501656002214865715030246991656267912315691369358023340935402125432599233666795934716290061096858881288150099986856699594863878323712875861546918034731706321235541459400433704680693939681273947824999646812228331549360147482391877156294046322163125113750271352352643272686201183007073883486031749643184740783813883565669144267861705201330924443934856720347838223088553789125917963624316883026544752348671268940631884884515973286410462953075571407033370270851494999166487788625789040644576748629427074048503467256526801627057017723296574757483896939480406443810469929642091683240007419140600907219325033133492525688571421623765658492050369995557880881467133031992815010085388190057148331812454352002932707442383906336273619530980955103309045530745545740712544710044829157022462398419105345135547123451589601884793031755845840029936324043056632066822519534628421944055951357927999586958217585622597509293812052071989044553632099072685539023238621716032830651152000205022596562212908125562049343240398610036400071033742351568422631109330575319058098438587672386402775339218473964499581836817535875489630845566908850807743008981531551501379989118555128898561374317302782599562859999332206799051634573673243733661411650295203017747580275747242248184497917630508959032274851292798708245416866975123900883182456850896912802260129233419906780624823082731471730787846322457756124204290086212937703467152119000743406442809769974443682688548646234653632517693286924602677517888239971125097438318113996914778355980615479588439503791737213736775378640560340912183797982866633834759293292022806522080815306305543782059162710338916734432401166442200096810620212562418322815399427076883858667492643145062646661030632830867286531087282299568641762738327334409499282973024524272246159921747746547243052037259175049311497207021768905532076806087536667100979751904605964161065886846622917397641265451513456540515813659874052739699973510274349424660588973551264101871842086451974508900341905240056271868834930414347864126475323792411401931459513452125011584314929378785031693537362672057119974111771052491291055798089331237290787229575453791658734491734687353055980765087536968837596517195366791183217247146049880590702919590602292358350739660762155208797900363006196779143821452282640040879537318133315519463028576207092470077524759239174759720765633399679655720841844044621982304316765568009170367186235731062302789852811805921177092083171815914550677303704035781202138963670474563903132476245669794550523611953191446431583557029608776959545532706383643986440253991352669638766557908102302803200540506031045641536498471789329672214807189954779272367106391646594199941506193548239350603192613583146407462962137512890834728140034599473446977292751014643344854636651957605088141577718565696727768378005032940599777228982531504091721211481883854512634695748574189825926616624084944262201993082841402306376358783642416037780267900767821015641301979453163234514891564176158678295217676254843689554739967211248047509030147074666806295217434378824414779046576366525103063149471224664939435985825436236643908915887740603178007322283779658393725940881558404279675827607463294423739090406954661043775830811918260147031934676124122474057928000582041058766221045675261205743826189514001756042435640336319394169752534332958823239831520207982767757855417554469749718341765023360573144205812816494992881460813429308538067307622676881852911862799835923744358128037638968931793456380962288484016696350234053548720002107772535814046153904653057753713147957342253999451663233501579156149082724776902615221902405612425366127248687809256862497141852807923350415211579883925930056237288845808808891603813995190503062521437520183200865953651153038758771152124864684238482237328414882067740828649357176852042183296594213153541479731873924056732374762993121700215305971511758154529442636954592727878345854333615475860037831884990367820208085186129487575587165249510694827888552517737074395930336592039031269469824360218453288938299611486383355953477338192860623404015299839283154230686786172725016622773573526365628358477455371442272742028864319321689582297290852307355064921934340362720215722813670466871687674782837567806833618757550655403385115730446486541859016948373910536020100494991726603750894995267832604077650300763820832230660642477719555437525062545266897174777408857681003116190038173307618979386297538754736383420963855156136856836777274755160221037968113315840325971947843979974020430081920493227008338420584888359465802990959369172722829741882715687778066677268076969749987634135479895379513118548391595757516171638167224114445526985151578009711404701883327431744153780498465361653851052417802403079170838262066964289787901062877877377603799909455810408143612922998171738048935170770938706774165145999105490947790823074033489984353441970960062238510682791018195058506887373037747013245485165204217890299383471300568935503247685168272747656364718255195893465707375874063107429551451854634186785342444825337259746875470983164562700598204933272119695013016681893277942852558746372545375682314367072032042137659989214933404925675132459566958878311286389125381221538154196367131509772377123941720559694126289177006300298614371585324828194730447747743474670791311876010999129773620251927514355985224756996005706446857622117855389172704266335217525001192412028194727947697540957910057262500090072830091328068304321589421385119427563200198787207708018983869627504936874623068298050660114624476341851677052085909220189538114624404741680861586788078437288368296511181133049838832000892545100991312856684297338976107374949964704938331053688479329084108182612817950899762462789912280837518051088021874756166248143708277554731449188496971983131748899509587918232615876422684933360068144073804581077052352406128019330110454691100228050065679910321716204929585834793637575308869214435973396721852135818651793444973161568617012848568911968268898874428532838372240383894656567325397102927751184359617346062055124321375861952109846361280487528880291815883999054165287249671523544255592377957067781457519675176795177060542253000923055501582335574857246513715434012414736223377508900541125748838094382622437556785742512868765749877258933364417076409152761071512631211093891683969094642745761137996738866425807361606603263737388933418532200331552115428863984235670532400331802028987915164863820526514509592841521785945690452125983238683105470276150521338427979725874126131200970726787402206968163024844991503836799654270829512440504609768580505310424388837027789557286641147000488330847312514888458204885586253289891236250468987405930597349104903692614057493233728569444502363027594601836194397530674798714806077367212560251585835910087557688246442298416876812340109772259610374142980371662634543380499394519130263935825374074295003099618418569435633824925178036673281731620591442763060069037970434171944003540631773437570830609169228101796649217184507884162412645885120844403129224346904229558281475957646602023310228109822203101094407857329905899811311267367606410823165903866039087017739051244907140866831249725362285787874494446232824188781007002469828869318147746846414307733834725656364665583393620277535759906607728758520993336619815218618590265957789533881560496647327132922133808139771370072791150612053217633838599131728133400396977725868047774015176651649562351076163975451057442683699708021148698661913411760571874783619260971341092028884768361903629505905746189303492225380456398776699916116394157024628330522985409499627798459911560424786432123995389177678540559922077119361109102290532666839988511483860484515953631076231069666039941860354911143245201964846350262041610546019130757846896849200204581111204698414850937594896511903804429935691677653029635452764005241395678066418950635820382341925903505235836787312263479638242421268041137974752545474555204421062513420075333895448187665780093845641653644898928743467920502628030475279666813296638999963580028350284843885003055174600919131101534298528257036835484174302308033320170707159699359435500025741200509719447396969876209585587077964553326308056449087183413758701985995367914408358139443549816698603854608707430117911317660956449139644554058144230424465799970935830737175119795658714985950542948596612682255711579175282777073166099696328958344708847210585221454132794594100738020914915182471536928004642539848943693438551760133639158820059178666845147003759123982575096609503662789083675690491536347452022166175535504232913497546654431773723968199826309000022820583669375896143211707706290113664005883703689152289104060240687518982502567857334866806695142509554964085063009656299056734270708249766041934668634748948138810485807697210463331352530020407752963414340533024566096348467533584982124077281043445239986857538891745884391091702348523032326067562368485383149064064156682550426164047640077504930818053515827695058578915282264041314698168940865640436238186400182749794414206277172776349286714588492715311278617012664579249546557036031646569945055984249641781913122264890008396349988716562259774715488982281567138799889415241947192419864659939827626504000620858542363401244557602603415163885556383461822136634924854804599199523830159107581968870944894625979070295003177788716523990510739246398403993497291161607326711422662060824719277124587426518060764803536791441226659251666033511551913635402206343098122175431921848282655727415190435309402431837600155935406044230520991662853287450432094342866798299757832759125324963430208462950020746780692508442082059731346026999612550501198525342869663463717352236607038803703330619124899062222794206686504931713453823967161557391719624631999958116899205021593946163855917351010185815344958834237660431249958067900145741679213084386074063285960028542479328613098672957638629515134606902217003601432736808183543362467858425771381659417298279665365302856344481210432158526900905932798933214493659390874942798789356778638817562393427560906862578658894560370982248231355290859195483721900457285387626049267691240827346202963501162125418316849257956098976585170152887760084039798109254585667496935051152538099409159008830780666926414925054993490810295924877797150431516900564309952323829934485026918305441930344929415234529997114539312032154648510400038464143783385467649209873458237239540600583048175978555625555839900477147697011738720333149269907551449103121611028638773488301951090357291187919314385605001363228125767994943716441236162185197562857791018374209203055113342124211462529780714552390415193874340098653744998227057685005633725589602709642686168708703896091137122927931517843787132828662816566080697919877558190753363155949110994530030635014636757901337202399215306326663585109011280418301225495998902606850833991936886658796754860937798160179950724990106291230619358516597670654090399667726782843956979708883013032630883791233624428513404183018309573900878530519956138875684450773896338762411536947214987593747892550288424658766892399750150685737776664819998868124710712967914368169329936772329502725770698872132063197214052150504589618510331001067304192311856902717048262518392464386407332932493194322217306332932145394741936634431877961314733784960379696125217306743894877459779128048006057711749581916422955529079479267834180631580715138116033352093118964163309088510691561105591076067689170924188750977271561629121665372592642415377564766312499364458504040184975206115545563660994242445377291833637695084722655154750236272376832768826865576114353896586553308671789844916578114639710054523354730293384165377402119837749182516946579311516577838095641216632166116183791055839165544143731413378633950212536324740107959268554207384420498926010055368395813857995337687253553137495497807781590712724394387713990729271052351737722819057347537018108285761773314095477438220967965994344198047926663925543518717578553199172224604418984705752144238976925030032749742232515032082017042044174758942988482992317560285514859706772797354156503513143932611199744593248923526300411206960845790397784721424203872136760415774209259154327581072244099107970520525132997114807717346591033145124323365435467598480106288527724499251248840578100032066873758481313989676069424635565033555573058963000794189142632651689566314867522673913625835963147726856110633048790094242773604018790614981053299337489335357445188279927682919502526133605303634381442449041624421561347274364919415453650166113972220227820025275807822592202975367120997761150643913625409949249023823702467179494304617900321193085075867438609157481650396097446140250674309319209007157432356863007315428169788962888311898613478282000806508624716291715753520970248026888462533758003018002032615012380464201527688858347128115479733968081868979530046381566086553006659009111785328885301750733827053600912884135902685179621794762990187571476445333847307237734298008718245661016922526680500798425541535196463799944675661566824896939037975546236767191599249311763766112275042464192061255652301261543045913987290066755075564071441830284776905266752148815381291140275842209391198615027506901660723389803087459895586420656465522035870095852884415050969981994375182866706196590506409141219703390207285132450299271309223145343851777780257769208324887303052497585176062187218077746201724490510179467105460022572441203792172656880963336912175282789084562783027148559322844647075129596781111881164661258067483418660470936487703309803582464489993959514246817352674065921324179974867545067265935945943950389001611198609630819987216936626925385815171047695710726497785098577881458727328783208490481884064324852265570692921022793837384143745880448298281709649256441001504231362934673752827557343565099387163666676950780949086449578301525645153565667547577349482694846242745365172228457847757011791774150895636884583149718547541876037228251688271939982968572427882535579162094142082436335852037977418066535816406059644884344882281090423227270319021869914993946449956924748526432421008210608004237529915805016896110553245075374305695465465278324046170604778513922668085171463743262368559499179721484848800759585186382657577993457991356370537220041541252650813478169376598395590763419143363095938658851773112618566137518112004866285083040469246549642541937353639872337497897579934475079839932229180120722758119462279334582285505897989995103945808387779054929520477889136200753722658407027279678327224044639464424666310179338799783398542558431163775290603259351517222530681630748639292129724195353494020031405721309782115729509731878589101905036661972251242292528369692680046409091344478374926398393433334608859787850490546658160574442268847912340359669535268687177898095973857562555653144326198116692558380233255415253556967199974527868592228186482177107177209548280128151152060231158353553856004771937746379847263953422240240346247586678547959456197215539691703887542445973437801331045045844518125648133624172196346543986010690902334356206372970095778946700512347403772650567433193472813002833383529064888783135814999000825330038956488040641323871005052916441682606061602966296930160181726903783140602101140242167059328491901000015011450910165360934660908632216012056575930243304438905613583929309456411794909761830395726912401041066946841280774695948200775794863677993164481938690725057327536320050078872992826803457496001622254476864875961744769706355352961275324994593463668073313366269935354917514086944030990269655139582772250959989625134651596843935564690455783008406330532449353177033948479222544509015777010826655982932754207381669425810128810497066535160757533793694943536315941498717986316251931743484653937827746604058659940092540035483268933790879823550805674903625268600756188890371752741018799693672386344096021470035584516338571840190485104724517721542434033971800070508369123671900681855244128583939286970172535323851698387797848550853957051922047268108904094338319174348359034443154775008683318325239941800668848736886675858382772754689945415001712884715300062314593385322204909435317676411427011098574688593662063675531534099549592769957915603326307728205486057863647509486156414920114300027192848887869286632103057721372222693896173137567450963114456334278891008122236259785357113307936245061646968554334479401797662233289559390069335808060393060842757989815958019931482487169981748070336907373442645426212064311797053041701426923543568941454285748471730579482607916630095293529286298997214626830006086792071192588077491309367314398334820342028804113028182832677946178880201484969105361307373281240227189367968643650573535850099324118819107112296924592292060097277804182735876324102017542303194402511340803044732576036472602903391398504281194076411292069146950691579809449777998527049225816087507490538113696945742981324170181607920260716443057442794494849378004634471260271154273686749728784669463517201912930761699690753518203179862702782256075625230234831032758877283059915190001776019493814743458250242084327455462862993519926849081190474338903362420525072834645665744266990635386351206661263870017511928212424244414501386168161771756475639837854085554715091740766377525698128378137808822772535546603716844260546802099610453781815047963104536059898289374499995014426512841889347215885579235754282300272725889810844430247839649566352206121144280913602514322840067862667296130133775680747239626040401428413307124262716571022202512662181491222831597008743212455625036408906494769163313217673288373858111846482115106583855140444153096732237667554691565832189047497129244976222032991748417741976107524253465022247330439672016885718758287999299261250032711921814366685215962779864130874868299681511580704166262630431067509826064480655242492728702329031592752286954348215139071795523240851740191228315926579692508451474768285957616371018569239333650961024969227126237238838122791343332529187766398076946328530020841281954708474670464139881874438280679951537284495430672876270316647051923936757246892448305260512484349812396478354112647508986232089233915554057884190085734222008185464633114522816720630199580062182612922658950159347283213526164061635517780481920205737621937290709348347779257775278444353893150404100361909508579503875104216947784994955513649378589202932362228388181491313282797532403399939815840679309943369119168896373465974484560027997583162099503806924443916689205687159738328627822977869292991854076655152425661637629880445203756629074075110558393613211427461888505119481868605082550617686373506524820094427788906368573232680171457432540831472188685392090428287890753462064450387876592558054761424556423343825386352402770121772456054050190269606202983769180500771264103687287680398277081660184272150160629696127832183671725374995219315063886757233723617836110676056541922800763895941678629928496203494204641040706061123190501865338357432224145555199791771771114273017859553525114294981983716584635798042859605357154424535266221347901092271726550681988349998753707892720024812156516246565169067392563431820290748360353579943198779861579352398518044150593993865548768876753470903554933292428753296072876398562416359130435317978702224774893487286376682374218017870259381426967540805491483029129805876403560506820123499424961535721723733763667231314711708560959651725191171364752466871752952132475026785071385607821317075390722355503606187591131827861290232866920845563507097966689821971935732819995263492040647986615691144186498739619459727745850920772535775139371626450283332691913675206092359009788360157687645766055284133948319466628074742169893931265355085149161373265457143951718288026372273421724051014015958683292314606095906484694965117201650933106894070648995475190803078273949427242176351576832985065982057539131107381774634515253029445751684957599622201713407994435757743120440864848036299735128822700960341874448350821780300934701753363195713827893479189445779811712955677247734844291161321847572864807223995837932234891364387138578727316212639493400349061700109691642177204293674058195115855719806074187795029691864477977560571022331710413562596313033350029914310204371247036427049709763128653505124119728269553526299310091423494104893063078045618079104837440117944973866923838656837433737895003446307199535594514431571976929012132994920053635866619499353028588928278824787070894211549411601174587770882378252377490428445486901756367410646016559079514183260795142327870805554047952523043927475162735217788146579357470814664693490690429757787541730478998531247718550852977335631930452174060415981726824863132712299998222018232266892016075402780137714301160373264724033440473423542702595919176488764696427769562270956051682642966988239195658006730960559007385340095230670883872138136467561425639635197438463871785758218835836137302642815425860034897635381072480740050311853435936342108907783768613958300419410163633011317334935077035541632548078019800875805625274064465068074045178297297353057727033988317820971164348869677771215087791867871021093600376376587330900347214676796025875505090114824668671572941596778658340858932965631321306402928254554375695699169440283194574430926372759801766112027970042678184802678997409425855365249833779780705853828248814873676680400359020737994095062227534517669902350993880073798619058040786002484737933677816260243633389261595497688902625248389805222124127898558510732815943252073869215563004723239914946556457766131057193863675994919646296183989172760844384565723258237230293613622969967469011424605463369751027054219488954742916783183681525448472189433736595256711393652955579687802129433504701284581618160469407664850950456347822922069689116758777268305149497511496502666556191926126832878168406576233302211596553815113650445742023380784667064520554501871206186031630512660490044898031839806540690229772931242705963993047200962615503947243088417003936490369217299157309661128118208798614648534693973027561008432273728779731709089666164751411882119829489203935194900412988271416512201109671446562513722686970163800577004600020509930847474354706574007250132093462337354180508084362743119237372289784669753591266923501672621918861734303539904566884709211529358222376777421507351621583100370154715785204370964359588223705575070671097050455157714659313590894853461550588585069691054426319786348357527443848831345486827529083922842170696883518160113588211095397266461023930665243795526431640489855258125647792299746408193892366295354254720631661691759627325965278818801666109164543969607401070554377496016629446201654102340709430018451074028540584404834435358267762498940631741935664748657071004764855455527104426387949057683153136900275934794332717707351955865358943970116385798848896180102544780854785841337265109585859610025617962743581191100604905619409648501553982683245897842449816598054545812313332159321747279513542715310124613686751312617984596182378520593708458342013177169545707565831210369280251089998765003062147832946943088969211965103474079762093985814242920421633386031549459557465674155432911848418733826033709020744309284846841594547833033335907648915701844664461388843909675370447305631003691466849634027228926493380718727101494479417646331415177564100347176426186242273660399187471168422722564274131478869097700567311603830049302984739921145498522547637427390918284100026263287862412192748398709774914977665226940539656441585322497420752542227978207266736400759712737038866274445605148671135279414045234855829122702322855642808715839219145138218733990757702633742363490185018194373503475066441385228300029402861293210206450533766844245357173983782116618362134553211088999942115366049344990365560019020800535732507490231814370976990716738869036142933033585422357249350132667855331756499877806183882594294169716583501418286532617740339454108730126144360698538433497627399961081753237260880393990284194295418116286509029978933831729344683656391878225620124881401344593151597111294218879674226901740505216791788708789552590300522108176243328971514776292417387160923606362467444876393043464629599611622948336128105497079422437618833267061651416863849620180608203271902559332814296208632705479911675081151878709580013003584141442869675425993950423496736355610416225820195462487207391930751451173264214055148807963565734873454285152915253923045605978095449295981559960248916273638636543275380046382182642909315954929460011577856396830828325504324221538668174164288193764616048721587065139267671996189548790563579277374545171960859954293799830860009466030426603402736675283183700062917957111356983137300560575457655028745300580636886605846179140943489502775015238854120472305176101597184712853173473357920732300114538385912964622271802742310993651176706794445304875654283356167912085440561152931704565491830898714991465529451818397977414052170115875197255924534938275786831890613143809906015128252119094830198007932013604945814860853907137555344619320124027285920689090704395036654014807594292507922543765141273142789263227934166673041132285280902267978876670540621475086449720392349691914482408570806453559060694521883621317383341110929674152706799725859749015494830311010339350653831929776109554967171647544774011772838872775555588612939439299996894454099330608773004603692407779592716986683707176516755002921858636230298034383361085682273661365479503552141932648224800267189184333594032902926910140231596490479231828250520146734494983430416235580430088209344997826472353245484359808065443210114136023741504361851702659679964810980013113244925314125733441317259538499651863122810761922086397559248901288734378836913609012819856605255620200186409446427169297912830220707561613217403011628038491775819327440194765739727051098387930353842035453949196051574004235936378912499391806964191225245549316391794471454874626155705353372121404979355385879233104667130762610516693737214006014991720603444739153511868515889989331809554652531883695232726872597205625430689055916314901819351385550092057089329421000211347842163330570551920295254060916814044329530548153410806172540288614560695168938159994014255919161612163280169142269755192259333185868074712281741558446579538858317895609855682679946279796880371417276329157815847710938024459601612467908429646153646246561499806628410089539987697429867987938169203567991262222760604650576727226302682508771288733917984177854142772370506700726099497433325807562093637844033846213891157433544292477155146362122077626597306981539021003390540165716918014134984271760206693267007185762481202508499516126292233027649480874103166145488348207799495582928688758311397537951747302185476322863984670186497383547358887358491822423283760708470551127536193938036165957356726908618991296115267471801503964228788198828570851580171840633976525929185471579626597843858488004701623072638218454479771213264312814552496747479073011468080621179605101440215386545322036688255710655520975564801514687145464198754432430545224306730000813946907264599582623596594491348932152851125825449518778040092499097659032686652623197995258290404211402462075943386575651017128517551568002643443397366302704658322429877664571567148816406598987826326788299118803423627048636934087889729974177799831217582327373790346787327018428226057261769438075237594505632215843724289579090164361973770495212374742118069711740650609326252271500915165192858353912467528780745611327713096923131459986634154029596920955558065742658091514727713134171324535631176372907234344044566803668240527046541865301177762825219132246976454795878898712881712441282327409407788268019553546459197402967000354994042295642265728623595795069286015964327623548106299119421894924957013155291620868280463151201239639561866390640788527470833013962588388481651096395621163877839300702996272348338935182605967826029453704933635991882036819800350619359364068495577840841694763393650916533864104273931290764451945170594479250655220224348754598378066915253111965087903081898081033729045111826153514457908259348138523477414709088811578874966310144988209092423202117535183926136864392405595726589896874997453685040637254780982684996166365788635864416155566205697993130163002198432716729075789089945569713412269076710043552703266423360107478256826321570066328614697469952070637035733694725884627100689374692384468676137895702261497953688911064560298858594514607649454170878946394828098630880984959782437545463635473904099196326419965892146993055406881419558465516448050835485521592054809768249443974062534043596038623908332420601156303538184301531311478293309477874669596570514065213572899435155889022386865390872457425150237939347554893213957150987608106576614271275698971419897346176063231779351035794555825837166623714571970887219798107181859581577628363297827563073373136958084355804259224460538097835749364261659801421247336907528220276291794712523064681136221969645572873565358077426461314307565299023431948838852018816062203901351206705011997571962230563656827944371777111460380147114239158503282109368368635639488471919401346813687593618223293083418187649215079276267443578261446556554594222543324753401019929868304023502600738042015698787102574296560466408132323621820295947419767754934276661894694851981947636637212681575447855636450165689857352680774457195918809964247899240391597665107180045333816880770983087793922837395587326618099663215043454855064282889657934263336047262107454825594956331740777795189866095622213159471519922557976574267616248056726164425982388468170546188272876306834508848192315824746982470384076178087005411484621383467085016317083184483303922150807515371557255133849787172932032564110447105967958941050745505858955713149923220697555931923386854442888054436826933737568472744991023913084425412410421510328750662438995993424460229394307547845207406788901108695858640739872762506412914737312365192024904025014417667864682503015370898609532752806253552108306285509192544258677054145300205027101553352551111245035878000305457769399838019360066758762873160505435202144054868483582776370580209896214922545821023320129273364205321030144949436182240072203612105085708976364152325167251673233000877069094523951045785260699345250890467394507081622585972452552154515862092516603078074764457104668709556240805620764618445417517444594196368829826329109996331573993712639818123191689655084372138461304984444976473512243207799318044676326289092841505366463954045351612486254016515022370912944585731967520822415274909069717210669152380361763179630351842182839257445236087057127748356734029059235089182635714301869367849684953882630138748283987032734906915330864031383557084175819430327584303796670926572762696985622258494874856790484081422080732217488058357912725513060101706441319261274005639547607663980318407138376382724975720871040435591824082569830583483124423826762094250454129941279576135934253831700119890513745995108165532827819638838702009050746106609739230789014467884919139351577071436610434921486229733738438284795086230124683225534403629047182318737834706770181960496703486503737839043221875870774689878677394466801218101860190140698481201695458833710623080669923321812710414232788793316530577437244226805312669166620877200244715592165551360063887772767934280278082677571682835726495468475700113979025321336531845750317286352943749799627749350022409995222484728440153810517138184524135497373244493577722082058774788701789128189370819846551052074825423928256077952499003916480270781215318828841892353838908052103737200876874092247361279557702630420961177506552786786167177018302002727673690098250447397609402161243957024046416655207752876563625072394723951295182507132940846029740181082638355665434378819385167537735128129150866525222018772111748038171884134895757924606762337532140355489312351307556747287663831304917166084672956526779711198542270420045373754544530771299927535227079342715960351186699951652508586372223884225847524908083533433871597237023453297692652319131314251931864811746339380322831689001638407977479392342840461694727258025302931662315828297835486971268428381311454066752330735853733890428191168145140038747642862025846068693286560225634637636393202159028434423567257762335526843591004471953210692932897176001145299341334343026421276584737850951148891395866842220262119483437266656853548195586928481912178866918487551514353121285674243779884033225804681578615359228184006009264571557291089123829563535042197622402029059631195083681889230778989413736952293107005337491334974189349157000807094952749392194331806798072694934030485283700422003674126673061668260803011563301357283561245385487963676382517989849519558479601040957376681621201460297775615239106484382726833438090764121948679771130324513165735225281833364434872325415393514327964976159687316789455469662663447983184356588539966436111419662259687735174608531591558587421762582093038800150909445147854412401869940651897114490128300303739243298880143362517335492046254859463092681878714512063027576068181061868102572677974944388509152856359655987249722403294399337833704393789779750307674587505441875370358792790551010680606625414600604986344650394775310569713039962644273844449370649068915261778772309519822471470022083056201484256015526493483901028793304364425683395986928717225601030446074007381519701290507550273015039728079217416515354849661679717287489871946705405944779639799989907647718433002835196665585490620917536006910058166047043114768651387690441609494274576980333466680672903627860679741605675817420475304354428816106465622975903689075261513994981717453956389345212877710488945973354595172772204831612662264499783927658280984772969219357988344039955224604877868207651642730106140819322574984571638579028260000807192381214887893458867359961651532084759199966626628511107804522710486361241863320428863133835291588116016991190041910734911887835379659194256033000696203001623732670217894219117595188901194373521437765814200045336770971368170223788316080959954394064590523519795805110412504627965157505523120523686296045135134843260143815284782774165858937290993322587739816692870381958573934555461449250093275843362267819857649765222139422577893149627382544975557313684222768411114843516417185472024839801616006831096202979309793261730935649761393262521681430976943207082793430152083921308592903638136370630799612266553844751958640349451175142319796249562613542155779720206267657298686527049726110331488409907999994123291404681269172987205263119348094012606589176319972372018148603358069029373461619950050998936734215433853332065415394664195567870923568298881188881390914157922431483700489223385462919503893596697896403566979700119938775178257987269984720100800222618991008812724913416310716184712733878814463705700991997837915306452762195524058147388022177919040504987726892276389267252700696051788730766117882726531164629595844195741097505198566722755974887364656715113668755363146217260423583560401574628472740937071457237515156305139682797307696024358085415101193103598085896478543645416303630700180708634882313696497403804813745488788158019840647475812222841898068462641269266340961944089744755574682025152000509966660555550154444007638605137406460258213785745310440660564856246635335262735319652688071997496067863593245175260426770041075757640851414088079619020665438882107350845788864716196628285716639480745763024172031314145102861453747589175109205212051995174012413675683568847980454646974043606618492545065602250539622494588832385738659830719058389807902253705834357901218404204996789310488084828376037147092515931143970903215422782064437340603681260544886858692044957124503105075987772328209705235304638037588683273306493328549252319280760060472026176365805209268118312888951344385061386340853269527906587677868272228863481431963205708227630362903321781430152590091711970260719454182393808229982181147923561972977348443641760317530802594172160713849283736245644609029609686746318308557263905919909212598432021216255706981130741498195156475899976035414864605855465853598839440539127562811093145747262072679186623500815308874547271583723999135121187973377869607077882592768479330428789281079423328282428023010130390018240309409736846839007124259262887133940958613496585843320793035131185062741806125531184069352317227010013436319629075496617644340545744552845073898048391448664980620159548920866839365998922610472013178580292183869075818251484536057807394269569712674271316881263415192424056620063744170431184607879115449409595019960971698512718102749989156545856121899000803661752540671957279514311678748281113699787856891081574423190466133795379789967539040758743304016883209200979216664116890823904190607099576658841740410725990156807524056385465134173121547562555135311176309999922638353659590842099195493820621094640619284351931046626698036418941404973103401735352251100975140600276823829730311102931309577601449889621926605463139660994907476031155515770840915812958266246734295982945808121323770984978759647969488455389499962490945504389576984219206825315696087513598390377861512680559766657586967905434302696753986653689518434359134675863119383115421755820369297516543214814821426303674311008157494926337611885648757684881348610975600653731110616836325470353338905909837600328255441447601767668083790744658483605007147125427619429377826309227971982342813761682932508137785810535007757720562722724043957465030670947657256202159147795088226526668925933346840028398288813834387402757882169954575088431751268358723100383696677414397961864614657503857545446767781295505687680761955678429916295644433104943986823033305936727063805538424249264596565248040267688191600601368332640915267929546580580212953477581595158383538080749518154325588973642182446994286618518753719517005609989573506500215885940265265576318193535534811536359481215097993398740137893751884908308135424996612403149601532763297755389455316336783264654459335319957559891565910821517302576577572648551957971178445890797608048732667103746607340325524618185454302027366134627319811037070507586673169790196063244606393181512655883026645213176972519719596397386288829314501296189147669772037848872612378586563682882904796664029851631583391127400525255275303533553143606731560034797776134078057630989411576084060865774230122318165966360316546066930324208211798184404050015587919350171508608739156825511590713181191426350864693006760298245897936200795026212768527470597029486220719026930114259885155312924981092015273896053900534265276636784485340517110982651050085790299575818611784453054413332632822617708338114277997910637882816558800178458175820377406882962658430383818444485613205444479301222279390657204148003963739733177127104406612712425868547126503724324312325160225485645835693498177232301438450551439108868346581757244927161760687710549627661497200542549784561760901060764437022148259433455706114631534513957010983901346600614818633266718843820074486760765752104554942676701409069772010926241609212109857913671749035091282335874893944217468715390906370506627720671702263100446298184753689992768258446152644051413312249254144129247208967942848373143020916457587248269370670610611248456742436711518119609467330314788212061286590997074570336953733046279014211194788726933008706203971447203254510345745706994214029366908581985225010682491932132807627869805292951018103377133408059300133956269363028100770721082364498439296908716955876528609778793677568546007176674227485333605934619893246113495763362296874981801004535449259947862516387491151014323669243861842430544116022936017811995787418170013449055124498111407461789826304146507389956939559842236911426311709771065977407239982117815155464684409076379257794737763144851031948849654126132207793651754680973697784622450970721719718499892601149701868160566458186177087372246090665131324554127233879455838464876788933895919077872664868503211964662945704153512338100630706778010791170991491700944326632151751726990018730593774805909361552487519194321988836609177936621181169191884496765348475916394161514069432611328205676645000513700988189316201222403048877483293942263150146460307677420340368656046298767632328797491459781133686388391623370811003097791184565090485859850261921928843906475535623129712257805687380066340999495451729791478971083958011218156581299260163819172257099209154078362972938368306654436579104710286302157914585212547825702883027105594338844662215365616739787562087730674185810095138231852366471614733785698726413751696252968271282552434798103077624581629498176139616885224900969242355524765513126102781525901191141314102284397773369155703258278469506474868052302435213362208052026772127812939854243023665231744698662376477408231597860993627116576676387659721165515410741994909192806996738084718700912818871165242536387097366638269646240192213863077218110881908170925755872186055304818467798834956068045218001656475926940171186201752057504017519612790001677400320023238574256440027836310955025856818767098404661808559892489417322381043279671697173467638056145174972231401764952883267522876839721132880363822364797988167030387729138998757342677778540142912039352200766027849278921494113711619734786699505782551759403376827738149031833423435216472877385964347227840035421877777419307072132517447871990407498287043037577426192934457996048363654531250491546395215978824488069753507550340104799055347898243560655769747887057790727766082480725977696947936714923675857004374016265659615490652322361117550778227894046864235208990031050544101686389900948096970693157035046173461607862205411462878844566651799765206927566817706622475016069938216038652940557064973985565453494759869499368682541110795838303738698322530174182039419001985349070258293551198638990725149211460697850025923396075932007711468526294316172867392958535056290946296140541903698169331676540712733956528711131959242092704049237948932797689015983482476122660592242790077743804093073398357909994701193514500439102528213535079546357863969407270992299737202707947916958615829741108710417830751621569966046226760056104924635396085725966286719493149025662201547077029847772411671253024883411425149340384217248984896887440202894931365413335108916572120987440313519475889418613193657918384257994074621880085361445606538117726205450399290749194088150459357888658051896104612581823089402393658166548491166067930149345078859822941694189218148058758654428821211135724026608869798620550599594671542930523938137667603407871557278803440558559130464895285500823456281489448932951840252407421169108161041418403040289483554017745399668446594403707630677050758874112656591770118131670630793872336382689104051497116066441910398089601518093973272089180271361675741886199901309893785198869444054137399362269094911937088682954879484403818075387944270752334220896432829769331120025211056285587137926556616303648955929191715809994054383833254431105853965028040660831061894804284853526226616563188971231366479809482284963190490596918877298014517533774535416161632851675197878027105953721804616362277498399470703025496511784307538483476713672885023831689769805229671455875227778778818960006525225244531099579006946797849356857796756798884104042742983428053972552008618917584205361034005414216282566016800740971655562878080586767837137626509471209142913867881004851847330512124189677736098962068512922260581346841870580154988997251632852997319061263657476796434518665734055190829537529221066335163373342981909735953026063098644970102734696262147056202945936444865473517146735836358240074637158745800115274569580924466601860908658529397580021814876076881904926729477897773365866058241367391415871433897455229322294325933300857486596277763677573450568884173619812183146631962174718752419731237415587902114692314131965293813806404016529663532255834451154123910737766797736987807832254494156059098585035117066428848957547818749751342564064994664453638168086726132180394941890250831890189464644841496015676919863381421348085482297224309943044605351125641828604876402897309202208901427944518948367043909037400458591502465947096713106538149257555470921012295624413081806780004135025330766457145883449432087218297001032828686166184284661945312812442489594312155121904963484174339279607056711357199739197973398203329279623874156242359348061263521562102028751951209025510062218103754437262190177633245209890822991299694045136037659652254423679651954111853526230505149503710967275487740948236329679402689631498771754282531595844454222978872466060369164587519857943821827591370280322726153122122236564469081747754842578028432271230139331207175950887889148521056284799791691219624759903244269756995928124822256233186118303465810251986242331253791101855304371240869487706950174791011212486084112809351019285480839811568270216024450144874513493399682984366074357049493958642265441115758526008279638984127112493441371460053211624443993942738686129567673090711701241263733901212381233144656013427306844947636087959771424192340509766254051929489080623031624071115260932885753313234344000013095996908079004688725388397333436245771922935037596014884577698343231007772649637063735048974820916080083205981264416687058528910259985991266929377685022191816273634847321514483994244876783168607495410943269407625749367651635433584170871331974140921002139372903001604996517064552661359095714796922985120184407695921146837524295307723530327849079429036330468011089161664854089815943320275747482900934412623304123731429936538760214342530008522244217764374810586484974091490908267589761738180173889167678300049879789337549978637159848191988424082518779032985207620116522376480538219217928269805582024795562771481833165585011561244169244945094280090991736074867943794623310121068380225557351996325623853585969180438057600816980464292276521438135019884109053426554952500732637622369338396459923730430307113515388688972995829351975625885617046563039863836343605125772137153980078511659973965812027140153886389336943825575866951994948002670910397415530184232043796516983193655479952597025156366347647753884066900171254227806761738811153619010651300122285475561318079273202662589544657502333091859097740934378867994956932400952930099613021980761613626606356232803056675537789717282093420521958400976923892389604483121456013322703800889148100272870558623587128780766156252352972609430606938266319446999430424559920941331552564893472842058759296346840437837954467963771902893622139829831471518373557480789297999007302710713595789987751451155366967458456833998362643132579465582561223096110876002186546343278541679967809832789684871809463826012695270786824695399262874935363422609635768049259165700224948599161174586539113638514108782553570036357417706028447931851691019874883993945531285907093947038104209287597001359688161083533914799262441976069551053800078722154152250877367754969078731417608163427239148285355027091996588088678670539003568362836906337034215739102750974683042903357937226036710007747239081159760447472722738890218048789498398240392728653120426411501206043222330756614112995355152812304938114341635382825930781174956126042302869089044181260344576302717440112038777011195295787084978595985549170092761414194287088962011865582758906166802710961274109802885161590585948443790529737250169688758137186087301092018985990181705528295602556117673667340439206520158067770775455802327751674028999946765679950075278803799082656010952291366441397139021609650162384804943787740409491843007195432885851502780935604903455616587369054394375107195481652506261303054125520517023659772776221189721686870142517919623478290582921440108790640807906954318769606918146037105553650525935344532804554664633107923545213075101471786867475653343279474864769074971021686816806214408088188274479434304479116765454818531947357043286233179577284737505225119849242584359535791289662153294510696285453370607431885516893050555459977136569952684135420066769991776242249686942357612947029950021748288710229250204394577154726518016331931894292357987322096047826120375558489041651561540349205758419626441553519305529925014942171592020037968624867669150102027149493524418354937141322871687397804483686487043060282052603678642751999322696098507504117343519703610644943675398480518773773032440963730498383726941861078605125319643879931981516457552399871019665186160650068351416741923274010971664925290924405088494900740042737956506874641686963799584288830690116090319861130707477739173880992238330442849109690187341728645817384296808738373961175055246809488551051202936179568279516189726112567943012373230822731963426907326569756788100437494272963677176680405853929596355656508402575060906128291247888747798138909710845402107894185712408388747367278998951063017020373688856888264632146474846600751271211386421242675992229995853754095838729431101721463781998629226333334907934098964585186879549525313704638935531438414050069662501856382199455050307996463259074010568666334449932278655812314027326434815871622812492675495723966589553999312012207413093831445495471748765553937949552098034440151486192535260817463028230142517435821845957002127191850939358471700881580771494517438829118872517539320265698666231219187014204414622634879273381788033022737694246259276289406567720049228865262474940325339511307422995826017128629890158307634400645846721682817604382504702300445687576099878639298631917333764367727065971785586941020034672677547543281417539401127585588316229445557107929736930525367867185065550086781917771080653441771676344639776492113338372149419421590481670665755485553097588683131060546829640431322879309064680174552382190329525527955537243391042392933088833625334062978092783838305989514581566999706267715669265527748198506039896958764519587756198053978930791502237837653509506173101132969290277556350673622940131438457916744938569504816761771743149331341949237919234755514947796621845347591189360390024197870443801940176729313870193416009557798518239443364015385098757595227952418308506288000454896066775905655723770100954445231502596294839504142649374691455203872167487379390532518000387636884176953195453190261342075445697866725813991765710481156593265609821558715069952760214845170880341606179151685430203336580894556081126637524942510279860060752743969118659416849815896374785262940626676485692214699794336822578518087443090515275365146492306264052636015772843507861668474510398589657648620536232183068203651297973478030296850611885227274600914131690259401554804219942965731183882556912689207841386331300644225685880302382243779626228268572748948208572507267074563025392949534313350874417260062309171714092742062881339714311003443552689181014868402417577641329504030868865580718739542027626971996009877811700003804268587383794883235711448817075061152389441238224727822115935330834198851614964442988267396002958552775329173210316907490118509007260056844888611126418568587029376633672618140642480404543651492685763849448237155311531687932004487502390346428419992567826983120031784475136088455161800954092710105499225724356232938550310780051622416301101392021102867086118291756444819883581156749021977729817053180043306391846708570807152278609741101367291710246444758287813060226479008913607736092981194006916679741660383489246652618157832993081235923593016095543514784953356053442543454879618957336549039709784721421656416672706477357764091037982430565752641431082571196680206182649650967825554138219018686390120651599619514509726313509879569266562241293566683397995502132580089511077498622153885252416947366028583677544414153451897744437556605382783533767081516697381809200343342721240932094822575346901218183376335141339476561412347434691849725032983829426667833231547072937805142408278240390393277958476359743991118933068892968810457873755426169172659229223591045196476720891982391222751073725525506455531053657826953511776793265109060451651608459069639021468657918841391649167734230230618101030923178991055828434431612305973247729310149918657747173063518490394435399599639289410710057713937960113312341986988607116331825727173117812008710801066581345270304727629681769951218588127387936144927340574016430159789255114992008711658612223729079654562973914593814816364669252317258715103198864855471311838716710579008218288313106034760666619219646738679218494759332241936801378355506508459978196730160746072278759180411699894833510587189698977090886874768091862779513170947629544031624081642214997544792977913114864755519223663713715239430703092344513540145304578428131427296768433775333258247731197242436043310547694781657783868668906886705018152560288266172796327282603055846974338463693047599218129295862781981246546045267910776549597575713033002771417421446948845990716821903753073436009442047705957921347416837167189604938539747397200393106696650584295278611232629206775074050286212956156449998013061435593792258360848225432412652219770067760894264955792691657804318954563955952187037672739009164826972976013435093687162872547642319253657652943890960117263733111067717710241570450078242891402639440328595206369788545962828121382962712854131600523683961442520486984593917408223886669861437058555353550715369716498683307977990683000546361906807321776800834697126527441790316949741874668945779259786317101482089723058445935389630344042689690397600117418352789576755289593924468240367394765635565196671030412043506248590567929341284240153124612599522997833167276319018017195071752845296085721147508520790043399651047766124873161597286321009229062076552672718179022570128738729073399026879838614131306551641921427608979064120642379102002027426973234554010666649314827229829507677473002009353955579802311449695042491361966393690459730061625905422785398917073668079294625628754875252757712672172491062510664899752056336741384182334130555976832308004119362432825674107373155950935381562342941396738569561142936591911817854850968337778994562321162165528633162610529555465084635036663260176924672598700082769091083745601313469147465776387776467295023406847227057449174856039330359852201431008607754916839534105172441978464923777807772529423823758780614366877367854601649251788828942583540491061605726134433275330858848895952763275549503130553970148876059507720649883729863625465755941835050545458851639338786091229385848335105995889968880602193037298059961455558930231369237326901459119771688287380291046230762963492395009698710129713258216975413506240364185767792858467374449736587883669978147851662732706199031625377871979018577389499594199614872797505723527690274221835707735012712471030460682973707378838754027958622510404517250691048399514519527422788313847455242489621015146938004688328251120370104160853315626831469311751780258939037899133475289944131454529506490369940391454881701447777033935880655148203966888521121559058789725001688156463989800235700436198624694084500559846179331097944096148207271915511174165917543090017018016669483968498082486583275456946729474197158378973785063953644230788843701404788183152436724339994281383036058788019739752988522981624207385395775850896969728465453810967398207820043395107962316747565965104869215313271721042959996749453540477602423971017801256853137425765814281747224078895751791833584363894695487712474151595473641750276160957615086126068223333398107032382878175514662453273221557009182552494292083747089085825629253338147655201798086579922367125684125229994447191927588748019784207226651914798927287868351191607938650316756007736485289081628158585685414374026433917596502623210220778390309208530769310002468230742541278186731197620944247077541918273533806064742555301962340412089279456055020737825187385606524136519512928372346138780006924415552833324123227711137853583559862117356935757511330424344247208854066848064901647071806419176602644836667621919587598103199543208300616200221828389863197716669185265670010709177851436379667824388674467595149398701003784973936869454018417849377395685330203555401059070640057313498675851148962019536235266728152578841854848719049440109314169304752384874513218044610865403502771127526116352511807740010877698274650686555056409128400786798042229164828451262032324265242196356841093842219585200089400020601259893563694310704408497989485924103186337871528975069536376448280170132509439557320844499916764120541743005097437088768347592285849326791496356271794411622832960220062403018136535763501387783464029445554096772703466995816901119324685148510537219225811211699857499302198828150428679935237485192338584503618218225059286363388534258247178270103050400749457444770697213715398623015063352474332374895473726055021291357242851578001641579738147966276333015983354229741061484838906090323079915144699743206805651855641246394234790989833619274979571399125968996982716727521583626061624185446642667444586203526487138691592353089948265488338456368170538140726941223285387768294604800261106800828238980147232673692012021499023255014246699153967092413589405282736120396706331512327286019196545011182081413390180209412962826125518702768968396101388631734635376191139216887238687206894477393452788546894033863833220189779224370783381623876070869605933099005285170830500080510237655229123920675260853444638902529089525057357710066969100319309050338217585404330342108058918457211578811969192532700172305345228940417977796572940805534929727659117679022050184576792369723790634845447619821436148017018424909503893179747369986766388428986540106661936648586017127558005828797227678902875227778236028898478046704388049941683456658062666866256211285389688915661156935724757417617257958976955320498659032124520027399375944734422720354611887167392772267797018837709937716678193019964626567172643689396507829996003342070747081606093177335375602273766215951817219809489217490540077622621576105575076879597189429317145026543285436744308962963487114247165471134229016907245797160824751867711583733925621154890203247834928303524981864992372077002079380593107646320286761883742791160914458722897044086984683392095994229231164321241619404118058385240318126853806394878883908084640119279304164977439011014159744749282994560335371462518589668578565510416003315296614690171741989084043027472840028457876132161528303990278362233228289945942493816639541171064728490346680417374797767233827412139167149968853434551387181351746849113421827373721151318101776747798397945978432599695964344299461640998223146543505852616682701238572550030474736818859396149470014936533655472662749394972273749370170750890839675190122246202523586895744057336228478771449910020622821855168368389372255070523612659793897945896642125642216626796306973712637435167097534760352491772691832186791574775949889447768200266942106328824365515230959890937577029413684334201170713268755512074634333535437946447850496086120206476890665626634376836788230953875115911669606334097585832655552517097735752882840964648800886564378573287854522794554037931259436826409971443843279251214566055493760235398805873311564093684953968041702109482613854389326793959132191543424913105211974382475434595301262550125279294194975442211082431825797477998698988557223630662035377807438447321853403002063777939164973759454598195973227437432881740558656620097106292329728864950525365191862864482366575363437065411344828749724474979272901394540611129273362029406812668145077470603706074400725447307655922419878704443120829719830864250733768489970155655827346413344987884728476506575486406906348841981591041283368508067179246042383122599107150497032682322233118337786995753384020282229977921463416732530464737536118613169162305047577329441800937031742286052946037680457176591913171953482438348808496400858662314695808801496105742766562174247277303571839811209226494031045845947036403561869039246024878377186593300346809305519785246532815449339965746752275093249489250580473711256467941203204374397902679233177185353942020407454055852062087676450144273100161794318848472914894375493501843879233540216735933431571862728735458878944204572901790095879674089728707169650176067649692068099071641430233956223029346148987460271782005512194880634861620126766846768618086543688689492490718245145808404051021664160190869887736017554115539238843629501435397170408968187144175475961446479956216182913204772993699706573661078308441714181519704296858396306935375120890576297909966316247728336455529730932726845783585043950869598533145995660088361373770718409855427247304529142503687273831642944424438817582696238839358658226134870846449108196629289074895702404508527739033722284980710322436381392148815375968731995395996438532538127994831196290246884137745918311143532499356481559816518297217717274298843030994025061418942094802560851152430604718040330572423831849204609325162398937438724766690245773532120638638950690469638484619310418830110222711019104586504383144366685766216371123826475177672940343731163084806136586202376510962471710253778266536088133169209456031471005858571699279803131133757591924684773118026470144268191019498782332137401080027538737848978352382047805054299835798266058204741258192600939267811224916693707800848437734899035311198534541670420253980673920854798153719463438278661296169489732112873562973573479330123037140091607911146489734390252547026548568013373705984524223185731123290719421157556474305965447197046828416122225158991429889217073370564613372724155782868445753737681420827635801088032600971327775977425621542274563261099502646641906839361772375544044388736406000354458040011623787627820220979505841120159026463219867822235119395574122319891686563149657450552516712116764749390560898133096980723759325557550189897159734617283873505583721362851031375263212329414268059769638120112583262214414726588795388168293086262052334317177714419209479251288544324617370277644909496414326359138742329972743377331102103941190369124356835807584709328561578921672392344212622674846993273952439745962131907367974182036991804992542372414216730867054582103138444114784769357478074491065474142930360095337423172574290776661138454245637502816506736954005743874959063995754006171828467732284372052239829340405042353374078977862638468016696093195540384486564029890321265239612961191233773530338553592507761925565400784482836568968465418698960840305514837024620046901306157346172773314364602336828977065375837577228165757229647995528582430234572232877677883114944606986328013638181042456388198520100500450854701556942277700110779096587633695680696641234869550025940258046312525998883222470805796792487017984087820720474849283257137308788202252236180964081223325520262130491328559631094550087043664523717128553925386669277829208541415166401510859890455840884267261645108255929573053950266313688809595809755955554127758627902337680141639995936723881455140896448082579875645251764586065305001505044311267967510622806636582105099174790810980598679597602859754008292495252677980371455622030620798236841650219432824440346986017234576870119580285480099700063889726555601763967507658430908110165952867008574273334756499854532282703669398481675353107782859458577283223232439383283868719638820850054218791945235360318402452211515180977982951201449184843000988038228055715269651008681741834432537213079969034719331065052053968503439448025872005720903202813378226244034066614511027545594634996659643845363203048075485050947875013576789290106378421496442736606741887041954705793264321918371769421639961464004597211637314575085116097307839611824847509216479251596402396241692899371917597475594355856870802550679531353892472667326387379224244893388797262046886607130245971857031494812028523502770737106188617606684121574663522085669689910944642958571609194228139584523379090333070178181953164490249875217896445238080595254979670103317169867598591400747416599852530881115544487344519335233951097677950653269998581152797983976617390173735564700040328736862291106547787864814754835739957336764936136869834031603382031207466739311231778933394765353278630135313742345753455254753774310811756725558550306467644964905263246897803103178610072526744340647420208655070382069029495145084807212976495474399965457963419067914930011675818558572343310701486968051888946412013440959345135009068402487307907844912946702767139544627745656964804603257303146117354824797212042476539882670769322817964998818376115454502428547901492044450659331910149748396649402713787661437787215674765290320657202411916654813286032675053707707125875827866534532328371122285878942727113537548380808323816296343886174653602156392542171819937059046549865197888279370054664021884015973966124540887339519053219086383742035696555009945268946489552573833576305751673539263260778528710306531666595174068813295320607034359322992319159218035733824817349809142356238820667912865272015367760252492062960897831234123761620363691980287600702999299045567143204154168286611934458503895159223699805140180969907765316322637504780348045856850100253626259015538884722672505510694167262372954138724263173131187164677174709063824768058893984266053632154929447122494705511375440863124927559586270750520779829916182205602320821790192326709704538529529613258403446092968130593548539303765989810597777718067704212830513353054532730395496216364184725226459403844305121617780932731730579701872626364132866989505667232867606306927217094752576825968960342938072134914656490272723546163279924523726238884224081177262960072656726932962575038286610636760937544561797475970653883243797907991864756145539873028161835202888225784320427040570606890779414404615870478586605465182303787786688817710469486980154455406171185479238822603493193430311773369401513017721337223853312964515275877873303341833221796526355746191738882187196973781858506971197321831271695169668759833668584805958303157306338333785037479436778268790767629381835572093555873543330479877074238541412673243010950010395482790947358381207413446985587779286058343799867298091077974456340264935765754774809006948984380633477000630904732234912201513242019216564081042320710099350562712719482587114624458756290016254131061338856360184552230420066488762274521015719893077086515758635870084765844991767699316862292950068544365095914006260594108956975406756544227625065889473968727800624365695286792280783927933294085669668626674577954333561184677685231433882761885909043858686904132507887274939883525913939524943874708818493775809067528738925598622703939142091637429886744712057639975386170522335148433820661196279831975561285295201909113648402641197885914883334696839087637622411744511201418663233529190989083016032728805674914089857046274744779187248897576196433180694185987749638818091700563878052885596724145359910623048768270358357333392671186585747548866515374776630786313837803714935320749114594176685980065260370034823524987410872145148860945798907047900192743341405671219886173648381103656614379327050386025716046064441764394157924384789457344008252184272690961624699803949250071971874151849474367340108359601480262903387234780274546256467139096009322709005087313462703924828078248804494186117901222630707681445148339944207408665440654830950868448694856895208907366459714258028421902069648298085616645892265014531225404639607174052880395728622518867100736589704079640151234604965741298570689069511123786449255901574033674444459444543138146072833636256757250664422377392121871784111499218213338156256685263014611943697106123998345583579579448927868143846502331097962714120304813774432334299947553667444587881355341254205614466730177421996158535108667508427013298237789578347049472220609522375188291083907032274973295085949632815700128672880885384421259039900103672327796646272689123351179280329686286863860367256305707247164785462484005564646658856421256935628340690031861739578712434115094347779042866994001172179301784807375419694979742115030861148283333097497278699064894031465788147066205134706631742284605607839694881971173275605797586674385817991107502441935764401148678828192143141143315376897893388567686934611678482515926511462367865956832848041765189875485645378478932982874930568086489954940085191672276355872208241722211215307389391038595706545431716312149488134501014900768227951783714978366057189644711305130931590994218195237987716504206188722204871966418155874280841435414368777272398976057180638455738656053372344545773924808084434587671902707878956922162814815325697782475023737609310150377708889097906620013599039342852515084200162352989671134884582330908613023893485761573694426901359606797158232546000969573692631771420594777046854337018635638143381337754619131064484011124972359912461489369906890901104025041179457927812612650647495764518907531504597814471806622712486505629692701425786223979425111746712053806209266964879964473462837149597178127752271334999427567220641455209374736230692241484883566627965962183118913937263770586542524575545460205201654170211983157640663102693726366807739804126256037819771212123970363348388770030039087714720641403218756092840045414208692870793157320353490566959377994803270277783068346742977055108173288784969140254705462479510108939072925669283066727484133022864814185056760478767371280110388089025105152378677300932810246194046832817225957863680929897391926783052951096697283563540468273820286534685408993618212557141559244391555379678188051186308616615098153269655704145908506787144816420899315046120419044759778462727735432474104617528359002727519031554901806199058458195104102590327729806455880178761502629994036909832220995176206345766477582347366738269950743928541380092179355071612193269965678525262162857905662041713581789993535017012246244107355702050585688104494290461484296768102756073282017706028121498760808878173025398239251573282780934222185986376104207568249133222260393598699526420138359840572588042209651761589789580585913461072873843409094779550784112421748965170859145073277873112623416960369642062660230719069932489211518326778221090356298346340103791136085657641146378241483449864195619975411035989056336331775523313909938583298666807474503149436749031772980198712056446107612136231008420975229610625602382814918176874561382918150209391335917733407210667938798200582039596467645063088068773976700650722827707361653700967007759911150987750029129948373512643620655784178457254219295351797576815890908608818118597488171274102363254940065759779780751067412612650128448082708694184989835547491416468944698899616129526631194661304986675369514307096692365569863395405265852877089933268982053398874083213753578302882002993755142502591289707435643402617839014409565364900997071808719944638312071348163395391875558405560561192984951568607821266428654343159702377657156371830391519735200262075433595935827240977222792728484986004234347307821359925193683875680628229444470833653101198910909774699954922997884471547280005021971023891690814070541510971533041953144271124076940958067403812180417741341269933235286438893360016381298978516031555543209117629780568149461509205167939400628272606415090867263134349851753755299044096241609264240029596083777045994609996450874421887084020409925812350556990783548288977439338043913090076724994523796438710797511719781293198172535488882103533030759529141522138046876534901199703355641444012360881299747426407419930146935894970834482908351752587529794897912274854182016226169914047018687601574850792900631306360263436214088401410874015755865265208749442076382865573684816362683123604279437306608320689616982167078984587551938163877848897412011373667634652766459982292071263011195641653897525553704143583755251096382365172717666345229825936382446992429801431903483752663946356693677317342268189065671501953531197756027377236249338629508831430370487832605748017499895406632777246702271089702153746667759094638254985136417733504779730035670600227475715458322695588259461422849009587596953028042906511453088985436274079405261348939668483036941397472647369531709228274563284515103541002906392768215489894688409187561994090305286211139279171712414526196468275617730212793387038703502402123356463025203983840616764971745969296169186356287843827987616371086032102802479872090725552972960711335289956529901410509423046331007320484462114474197300805575901833784697058163627746894150716781239046606489750217338636290911473275731819236652482700192970908512587491315216765407196678137951265587141296475611846609566608184951967136694892969946400786200882499508157905160929198405099690175881923549939563826942658452270820275213956637317388899425642614289740447245043255855116944098314389695354553991760233402574876711301592186430219875722837113783025397635633610995821672729535250458567503746015501205125985286483190897536411753633184153608548513737395153299720475880575329358612617149488385748656298159164535950929225918575790869120130467687909437723574759494308103631343292468169520653833008880965735927881321644615895165108658864048126086624673380992871979465059757891032774023277892009239645890577142414302444507398357560700508219727433814717610813467213233137216601565557896868958455713981223007598151535271211204624698568000550047829967817168145109409400114747462264191624373434909862604442766576044930661252427850710128610222813035811799506282516044518322642391868758812227530341569694988501164876256060228364674036587774365219155965972064054706613284734997397619901929350308123802934749765393855462426230690454822407324824343396475906633855573186152676380968308725466103367531669541864273804358783416950638407339611426134438254964779353903569836645818302487775824577159510254587387578767462155675474894928201775959781059000296653135930978669711577538658545841863879831491443033544435660859569349451934394411980562894035181413443469422430884767302739200779802388445902521849342042598899495728034346684706399150202883070137238628649894058563943770909694846906233857208382998438913509763709746616263030490135656765181816823941852216723890616109893242135863014291274595693891233706539871002117104044435472573572681194498655583842153445898899034871204386379400494191501851434884229326817199259934493112141982424868800214617441480282787033936448429948879067193064483400174421822624290273045958543918010565941184425801519821331572926006405285544623182934976098978742072382291314633549061542263145180155831947719710456078442839879966798399158238876027895187252439499282392469478609966706758375014876561336629281956332125801618939437646143061246180186765438471640285077717313484291872457542555273716370559324296154513536190942308527718503867771610459628371283266412666926084005684117742946652261743053703498282493725685629809210195145952691927648678573737280733431462726814636904633735767133293471263766554076092657671179640670128290757613133249623741000986752637148830307424115229252512260362152415396577259207284996385712650018947991599773845868634569518963618036379071870764164637213438108225288121150051840045422199179505267838402515215153024980782847031596176715271054094201035721332562939662808207045964310559765985033541286830809596781484872647316431059575147063954519761232953382669185393434610762035123642794701496518488770985501550685122287271185151363759650170176679271953080159440987338719754207721801925312350708398165018824965102935567364887797901876739901790752968300883087570198792750479245253550691299064739563244118401124153409001404919261195061414165123842409005986600574881693459009771380153218562488168430565266603647549940862750700176714754478851283641920330520136530004590141013755598755822913523640246521986320671641332817155836932740623669560762566133572761983146276800190873134480264849209304578840062833849396592201502204141469109526438818850448406181795606022142032544288912271734685788022844298732056939051423246189557472708151643245632450111607098758726471657211921121203984078275775667014211779106681766271619399628811485716624812496487998655221546262658790759558654155460829599585298976792682509026505813533425249608948233746887417454039646068424498598780255657268371927757899327248498164543122741548565922641091645667811385962140198456713653839905318963733778763715387079766931483130778611250132584701366719144719929562825236144824505333561767437351864601232377960203265500934531506521181037598840947556702151077978340249526859241515030059026913868317194356376610910364240992963475969264470705017709015701849572257449754802753037051241094054257969961818521389148467990547197182529892709999704840146617940646769766368401506717090141207645979873850793031450166276622962687928664510390386406474725464920012777842018497239403900866777129180628320034045612462870619316000499716788958675406535164135445975772519690726994928164005114988730590584647897170818831720075009752179793761313593938900319820812911989080481399977607135617433866972556281086406668025319300240112337343589478530362564141981024263163047716751132929905432043906783307652794614220772271760344588933951872539212955335452044272748726236082464505850465746658129681220638985949160501054762567900917421578291981888883884380782604499163310856041325050382440279502933123123166595913066667302631990406075815375571606595004736995167026014521781818435238845657291920945558815611591143762552733218303519944949385841658277553269677235481874342710227558463187677732158371320743102163115989653846767587961728089683465840887240214468135777892960852342396115111138436080338854545858451817648103728954166472452973304280204040935046916493867442115844863531059573927170673606011017026771695142832440792298276139998846903883531623104544617264483683177116107314036755082260932839064581806199833555319908752616759889854375738849787713131132385163597711607530194571246839153860620009469758796484758530654790927717204649443159043629430824197273691973781776503852873775356285406907184059947082888841401746203865894765387500461430002218763591977813910722920566892171169330118562586289521377614361730940528971939222945646499453719255738677394675134610631699311392670601821715048179628730922440063775192047292604966295136950832044047075339489137274284747167118925059978864659922263672809007553985067620154392899152083359027115414303700665724595007027446394554551500947578441079704422784170436488511152238736431342237311022979158685753203048527056496280391732966383847733555450528295319220571629609333415465207771113260778859435923761415530203056445960497994190324027147345002081187853689338278992338630548847952243559114807946179489793315422125397885933007987443701185534589128838002885028902022048219310225784337986702647005405431400342014692257488303085729752410102283252232265030446216043545651836819984695835870445882018491866843063873986165532637715175635727510996713173409099462819429429375021697807577360858336786967380838875387218619818812955646797074288852482968263234596890232275887929303666661002746630882493312896506020583500830120687556806770670850099218697560555932202917182929195612280551735027709043608458013916213190825985603711057603599945560955606049354487151777284610582108435622102405722478201262668369849772355778026090578606316873310865812540194660950225495540959463726146912860962802097144781886481802614405473336657423189191481196960871571103993340866757128260172789860951903893892167433280414115198874369533926573263084548295876819886634702381719707493925019208947844553691657801947664960833195002401441446784732289455134347088101714799088068951100906785312229401130678044986501057863247223053359183622583811695589275017752939084418519409407435762080488540203842099339293055177726581212919210957205030158390566350185272524733914422069722035129115313137016019559736056376770712353126630076275527365882143119518490873987067647880232165031122215896624561427522072031578078357048366391444850851345527056217072234873435644065250710999000317841128000696216622673921691777569761976957524310954640343845602113370808353227230677902727583473037528975726432503249390296777172132989080442402081570365574939015103827990880703227441635059113112718352151959053659413938523097599069070917420915014984260320317259850805272301299974574488067824139651113319907965706802210481132571715618223976048173235555938992753911297381393530890110844719400010918018334672643946680872346697341448757217797822361277948737984885723043457626154855401334025026705216881883357641685464705255943754761996652219013790273865136736445496200122774440936826079295502631215412814902121441671783806826968754278799594223091578320281633805014569500621842223123939902085741649893046952804158584064384020377700943832652341450712339589128688446174230154004573878593812999035949646751049250762500718202440953821698778495708849315268924627426891579350176559744870639112768724061364034452087189071797072927583140026424100686636151254410855886550869019216133025342651522753540475509983585045480327210698930893027381062339577751544969320956535645613008264206461781159726868740848058073184037229887898138914294676842663131670020776367755616951933437063235509063806468005185313364914386580373741355261341081080055871033863576308944746869944528516760373845575106339100853896249712917076023391335948717734155620944284743968223321757987028110514928215917454311551371263963091890626287849274689177433709169821378890077504949936262660896762700467889378455948287265346438809787384372640765055390624342999071102395160933993601127672161314113110629647901457940168688230954671713348956062202017185889286305397180437263612541713009684796802374281294811101538739807104231198448498357737620886300569027141196731285062356303630211416273361252447556568230773696288574169358938323941881692029061783950370350829536966203250957508830733280811520989609374426754559358089758871064806136927199942405736340579452693658041174976806791445315905480725308635914722909463689254310042527645797084829008733139136591958387247150902005566609428685184641030764894027986655001361234879732502570881795835980586438002557878618867403493222539988645509717690241199191086146781461289017636175110019784054173062462936524582123266963414482977762877305963887911062123238392157657900499181852433760160617037814908289496851157168369815720553163657226492398548350275270015768146332228222669570081868118161702577401787842009138124327389438115816662653002246296804452731869040055194172277700937299045040887547196275732660247379543660088745386708880742928122925027776306050377253952572975539011372622163378733973758893126019014159332601985915049139461113335627615925756430855631645162101008630180470990550176946374650546553038232511791954579192837524982891661538826590692377915064523131388832796460921688422498572730145634291245550942826998406906194098736828349448459347952156691380799108496946841791981646256137084782772980727393630904484530612020426153635161848266370839860964838369133671501333350813886959969843042138717051201264960383054664479777074950150102412962564166914950411930063224410362236373824217923651949340667775096684204450717345863850832320137401744389109800617112148084542699600065314314106846474877868479115231911207536056605420924479030753172284158045754377077223836100239498283279929378715678715169065375307706711055240102174685636465168936662688129215782275218252214538922329817588437110577120445734251573542484820699911283645045432794781549359850872754263299887510693361902697561630858883258357512479011310350285773326270989570126413969100053345044111731572174704023998050843334541030223172743741590195211229326003657737271121411549624918025815774315907425528710367084743514299963975745144810080731535308894747409163506484023619919218455288275394052609415275675491544794120152838896275535285241214805514742250877743827451541911327359730319778101925198244419841729892587999404157853936814292742608775058769688666251024703625790899443092889759955239387372534652054195701091878091631708746263853156221767938677419625552757550243613895962703511030713166789081112062909680388702609274240868637435385574878793535671761237589947760443252652287025029206001632892263827033449641964988245227018743429964450930566482668141445454236596132930677179218613331116654701190210505934372475934678379562112427136955035466358766240280812974165096351174921623870662259118650506178864326124990573889171644468901542289105824703940739174357464065944387532610276443542107472124275445579469560446047132099966748774571967805248054374766105332455500464488518865676235663607923677652151790637473580591834421478116696678646817142239147106524424209958498780829180831210631785925361249345674364711544260313492758752262563354869208605796280478462915604459095396779279174313448448946548257220008509710170465249696295000581620399823841815796744955632349338115382504998291479759434600445703078055046828184644288578866836558960773881841702598597445022047308691922053600117856437071324718214413424381273207584154090798290817185814659164646424774122436597835207058656447953272946144482223695201540698776632669857315572040632263255644110140231105931503849030428820761320365405772316625434426569763989648571409221467989042116373165137019319503733852354021112893154884255966565119541742183391088029154862332471051851718010343535579214400109405706860753049729500115753757487601225083448089627463634689024597276345674527662011896061149372225618700644034370881797972701106793698669760673154410221219431886724473631022916214667235249200373660007120879941613245963850875608828358998187816919353404999534339680165484786052283634415561600142674352441345922939675104753677034785120566396855827211170949452651229528601216016462870564242502295384221392588415714618223769133964309148495734151658156202605850557484503267028703376668891555956085965032988969517132276253510604637587305135085657983954150783836022684754903911658189610826234439424965186064455167004196908941142743186190311757751847221278466026139129435897972466838498246184835765862142179308254190833188743887366186793459808037714492305506815334008945734033579989533503293408642301658098071462858580576375352591281286147136857469392696673055796043833266046040658228208397670060055408113767622946128193063170274650869395671739588231110604650110560629162296996532161762167973451499905330400951365912912984042413211649616250866964708458414173298100566254815434508678221608150528457722354354596551509546108336920088843718966881375431070704353743771573339557581338143814859285664537492315746365555875808171473491783196537676138587686588678625597700673387582929218538990691928965816385311044103545518189170195996421302197348878481785910590583334955879636539619650130934091750826353709610789763581594327481995160794949152569109334094194295515118328439435083290776237319309042039114937447953803260267898566320221521825288248046921020056430436901673422389943150468687872997052946019454716979256891843434494759716000181148804620010654403367682833667482651563458621750709969331923586567447165534172694093414507563315803159420231907677388053555982974329700863484588440682253746419319772380424990663741431718364038626762430619080051414064458364938383348103530932069849098812112216975210691138991808344853396706737581782709091129218779726040347142476456210003045735292889757416334290191436292922849619794022038671539909513327644877214382434193026675198529280497891775533138734540485503162746546624548581303817605473486815495197755284067686082672758181080578513896990109239840956669002131464090890242826024192516044078836337501336444418739948332448382050607156512918749440136140671165904089873231155407441702880556675173471345344610868267184182538833981749948345902871610816379264875275298228485410389878544528726599292041800903306261505042680824091262049083695722967292451844836348520541678511337839089603632427385325574039376768490577095102969813822555207887578158106954800861552519000009493298659404396101937993322553224135815903910774570366726277953847522611067209632865719183046901420984675937964141329609507456024300770523561256894330432864607096328941680769965871492705697703853502954455005998847101919920515803437390371161266707802843101199737014966638254614896853053334837605927413788764980619309715163336675806838124955442649856928270228582312670092203095989465593151415181062216440650922099432018762875844128956664016183257315971350238763965508275554905859879208485824469349062839268659328979153582079344598861923850989402948346039555741739041230976090519815909632071521462927480542154964425646500650352378833684790396702796605451849018400765824869789951159070435389634706554806311595067239585926730226129891530129550699635296075413786971338318589814898400507855542380301549501676981804399898366111058566101395315964988313772096995063883072043368295985003756927238454105401886019988221210591705116342623861727179793637082334115314711412911720229009400216444849132432611896732993914923410988945997906449501272406395995229528697347774783580809885570295369201816857533592623621114434228776371898721863313343938526833981395946600745317806357132197609973227471198121385568452367534889292022011655012637557182150364738303906420052465793313205083175176535884083472487825743459045293849231378105775432685590347092640886971162892226524248979615369550491430475982083581527632556655017878872616788333755004007439694271554313744030526683849675445448224634160279217460196121238981844783233004365090393742378667252183828352584587110800026867615589115800675892760488227670495478511621870698947584584083648468977931536483631070812809469868230266916648263393833827450654655014383686317855198423425635330793921661691000274486139845987205831788532426526398262047983037941430394943696870743623773856006020082156345662924691545395312988080647760243399761082449067214822646000105087204992227615085372329737385467900407523876881981407637987031097020463338189245722613419874952478038537242602520409826113424749017938030749822826770630884037189511141148412266084384523954387819264476242552186525677027023087575564040749641614187171424774827410768977099302986564929575311680131425539746031547788517523479676283433948565107649939728069509533650598717109382785116360476557634117035172108036396221423124362287648830852187244761089910829521392238056170670453633817715068781543170860799710566377655863253946922359577633852195211745637890225211916527197101175826617968320850637739789706867813733202130351917278368978678769542181095273362094950200206580848917962510967598200153356765824254684233225366979764738107107341559720444693651639004460609275628539538170233043073648830324746289769745472104887278325760416492094603561321377650432135602987859641681806516294536165952675701538986843199865552108921768659062774133992656199374903327936584386110340108400932928735523877792155790265436370551087176358640120812957462730129202414583274300562630487624747579768861244369493796576110457738521145350982961453302841037866358099124718813850566049191044864688789113084497122326472256756831117642640114932514803759848274611131609013662687828447076099617298490676728388681780676779227186426436097371289583364482958976474593150912045463748209641957339917787562017967477663432550097966571539893444156854665194199922368495262622193060062236545190725302612271475793202312006446473731293839888636954536878224012756652797920252805337470824860310800627283080464604465063386804372958037758060553403665355919477281898258442999307544000641420145038771156593712691660551483079060078018960405505899479089579782688559487754321855608259895838477766601603134122739522232806314606579989111102342622885687104718425756546284782426643838891989202332485637966288599104511865279743688847494619124314074947129936253305179544539517442378323287129341526576801992354108070867556802668504217088635285295495345078175056478335723434149559619037278760562592113123240341251108573238618677770105037983840257729853754183871046333736380349473811477023722645903963717503262383662204351272735559419705010497968000093585803597808686180942207012054241188908369813594194164083132996415579385930054236887086139604375157610457269745574901119253338850119017820050756833510879522149169534713722688881669054507821316901712386525692227727941737159852527915226985066282922356034361593111404139554144060212496298734053244053905660647444225073118841556866090052488690480188501514397269932720366292904552741166977841366072334218802683217752557857241155048181296917132080789482654850435093113073457640208136244679804449473669903046577363303032718697041861858822261638656703447296863242297923223825760374614755097792895552609550658597185610300746081611605601220357425398613416118011062546092199685188609197717953662422168215742504935844154926534307764177798338929043221578828462317215671427984930895517155038183338981330473944943205310838971490390397580537995388462714959782133756413537758857325218458763620695079217726014691174489075365277539147604316507508222234933226437599199536644499018095536424987436006334656167063106366430882400008342678568015908271137848924176203011491645277177589129545915337995244692349681771112642595776148710410085249329641629728441554762638551833407241177817972465402500784089616722871325846639245099438826335686580529160836012955276711947668413704044543819928691553679726417238921199882853925275004902891945781195557776638386164602416446571736972946098482443855950018891960561308034541923066131206827384436684194815196649470123823296794125142561681890515514575488678273855385374613546759830115944331501331037360033742963435974776473305500607012912361856953346112127690859663969344046333323947993172009652773904948373030308209175507324012407162201934903360072101357377567344577500875521521045849045634660968323104488274449374090817789203560637411612899715263405534261623730532008395413793046849724140886297531588791827306391865478748313192010770402513363073287369485012399893889494469637687631968381767249608240936910686803730262505629406311797340098169926858017138913305909803284650685454484695818703823355598947591819366025442533636288319741000267054433613290839279966570988570499246798851670177933538155164633798631653095571085672092746937102583262405228508478580342603590681201889625582143378088228164597574349584441034143698324638838720123777915925712017095300969638128375014692783465165860291561756628806082103762371082042739216703275513367013648148647682484541517424803382202522451929439348134118769388224953215820032889453978485461488884142671605802147079218922642470274621118669548754657150334083559276829535437257488816061087083308553580069376478302216800953421933539180926407188805972945005580452679956038656375816301779657972792895533365966087784174090713482714051530323304230638993144585770720263983018945638580444744945310185502081992598690070652456163246215609523322128038110077096824029355147370415543310955236929988505553026184985813753225850862969095220388611513583758677668120757227692526704041245369514763205681623450688015657193030042796273779409789377549185260344912953263313431631655193025210143391541931536093852375606658299455890908186130957526510438697247978563800503415611890697883849258062345440125953673031436044338466733678949655953678215373552513704285975052944278875705234747580039333483578080197750260014371405506802343176510709946889364200448254640870464857711672033036051501108778646699148576874017916143288866753463535714462739434829530744044032621274504869715791819302633755398514671562489925819401730496235130011196883899645886033804279096339383037143856623945217967957897328841701101381849396687331467038324448316032620828641402191497284593143140104824864764667445771419915544024727113492253014860470551449112505564741642742109665814266092312653389546142569131558810446116635373182224072076658230642085793362374944316372608512898698872204707168506716798944671990637674192729706207026173989321634474456295175821323903104763080066745003958935180140611839879192624466870413013933369063834605660706135110715037751988947137675982556672635312736683711842616625443703145007800517221430218085469528979283297806970535573212934934701873816641310116446739865857125926078665287756864897238772629888847239899622977001772614161736364634273162781036442476066762180297380596573911007752686403652561311756010664597321911060044255266570234928689264586412009797626630201093627243683490150099542896355910422752989557388258086218254357129734555654508100945006194665425547682933256090624825780528714996377141771180552050762734617727542771839180882095509317412658919217989771590182466121604959504851433852497837380465839011576149422432010891534698132547190238311063079078297744015617618321756161437238924131652945907093530213888690242593466003791040284608641505418904823336600859668902518823739805269993606265011944066018971180498278174689838926486156852122004286598036426614481407746576131018954925610039816215066670393246442092194215276593980338126672857033492947584413689199054857786711218482720301013084772448610584110247687207574196379702723577263139530822585312141780963723638020633205796193453675248252794495710489078428507481825856900414870147771398709868007213189880691236218152095168974270981403411373847475520379550012734178947880619984184608728502235368420432144981716816647876697222955919760583913437122629933873747306860323862552126148042257479604039938831460850394665029080655126092318035068841945775063679359058988205949393536621774774528585806770551664712986486173754630716223508646635930925079599660974108745713501367999518403945881853565189161130235776518492301572845162549415409466491472271323310233792208816923801394307166574315688375043872709098421404174694463693274586415819531463296140064152752637429675472931546813609869851154497212736535375786517644090423082481060667460047676107344029809352842429892235203746788703650858226020173797212979281285884940314225984218833540487121505606030866231213554239655490936136741582074435393323803145522626241802771500631613877910538916107633163763026537516904147672286917453791051858334213870947851499291514584258917519553556593877825010676021244310201483951727702973706514449902376735187341168082979656825617388982593018440682755941470908305686854085310959560295520092387432916288573604940148767855066853054770623300350094128037573029233087568230442595179783980752736006477914066452559608528011436193502375133793937370290596302350835973357779250541985517356125496383294283620114316096662791320054385767236607048836292739843604076752692755932148334932341171511017580712187008846384514706989100287007357239143009295461646086269800066343579809409024739306391381216579814075979245958923039822858610664326573952612466412792872505342053206237358583060408101489852576731707555231868196832272424250228596249129801335145151611721606509495947832221219845468514313165397275158985210284487634121723434981348908928414742061067284905516336951527718022422487458351851725886388318820447871380242644523242830996952372475723441172178773714915339627229939440838617439677264298293898561798613531780916109254554891986303210618690157239824621851881534587726367755355070272293173415729440699563348692223368967127314876670069831746161118341335344327507254072404303369406392770115241681317499201098973876046507010476142925623512263580253596256312897309219930867045564086763471344140782719623678289804003178110082125901815341902771975115251903386427172681197712554515565552396789287868502293718894515888751995479052170076009375384283453002222464826702018985741647573476546910105812303358773145844401250596777979430804047384466052835024041772376139682036179818114086238941991500583326858333517302964596230586735232300165535422746229469406968166950648292947447654554313192193611066574657206066571398455369189552530207318530332057431759776380485175789640223896474378871967631844010631408860933551700025381134216951215821140094157282571290433258496168479757546183366859353186115220735200447576827401514606031946352614630387121361398975266530356096815054941058088656187665720055307141316962607496687933634733013100039857173796776888910847309026866658563602895073826364692212807683448470537599259606046476408236122854936341461695029057653002787977699801154969732898047515739441783537588800772251379378828168738548568776994231241258665535218428910991297625413324446378445664597327018063884397778922825058032679903098123721511892368706513106869859625422139112111183633383181208077802617911805048377574864859800864405361276522519188258945016880030780731796975567111262400031920700472759551613025897682964851823303907324025228885175061991014251181571472851762089848687608537005400113795358509566618209636887629459703171571185459314149228841454033283979118242217316611823042949052073543212217484211380354097104158910646148522239055096926609608794065773183942746712987977240453965208420366086806107338337546646461537748057315638026994792268736574872874857957717415320225378778829424008840251765399521697941312282906522589972389083582643859963232047699948628092027115621268246086110810024204567760931852675053252371302284329949004360069074153825832827434442528759745754149351353722334453255317090432648334573052659000583043906012766698634644724968326609224815803479530244868802273201408240074413568148368457356303071891660972077522105063439344610723030045754478324320062158600154917798478483904143444032901669437360281900766114956884243081192018745984025350142394783861603455096341549459182472359759313483827608085745283756899114721061565933633312409328416121647264883950013452709232141003246391605413933893906480802192439082721466189571061395999193680310823939199822797723506975505310717011648712957421126604107584385932135125900119718541177112858292249629181125716082269634835470685689324837789378485404567314490897278543870496508675840088573619465956473234598530834714522546376137660771029459366980867729756091079821176353459153161392588223207824432455949545795817602752671924144014100415540370892705522671921989665894075115185388639653797708079713433866464487418241738493556387301760307132692527915137647393922898861814914110992724906631871920415979863864120152917161043529492017166579663583393665203935450743599663077452105945835639921630252266928161178254773264585558892651817646160302302991501274027055226269554239985640047392414144888147580318853717601026315328969685406025671890175751481622899540619858792309972730849205243892911132244172943242788572103685112524139515640768273940488455707324427468931416893672110402514157369428572807816224775812697554545198328680806045768474764290265727503956011465477549527477731634953782649358805770790275303127401234280402493131653914475352242971581108544508179048398487360400738097228650146388526421740936371195525922955840086365185725928488058583680211768900374021882275527531759823569164660500966426409330607766493734631207699124690604252110455920746836960711169365269821026686386800638371927480276105063586527770479040738341590072627615220530997904049940318977708445085177275756316423386490650888936611951656243962020156090024777938485187677740373257468070308085516403835751251250427976057566201279706596316288329572404574365126756906070756223261907240374281642585542274167385545560395916635698528463387341896493810129165308324343637177546840965571834228009699278663243079568313154432710134831163819455967256124672764716534566252215393470069920406134444608629409408308211777187728935335723827933490639270154234831460798421200985956372164044545363182260091156136018780199532005616892351502811164267855365088318782940206705897611569475691583378727451247216194452086261624071662860048976888277385635118970220904282721269367638726930268673323965989349329202633814208181230251348060401968084811262641996518176076658658762322344587408600857288232632239376274713690176196376211245439614258078428735707298555620211431659699226445505640468714846883329908081178284777663738130103659106815949047373845228289676746636939882984080183959148336054138687881279320254484238932419569758460653900339433770655783297197972884955660390072243101948643993895233548642096567792592331503899465818413607200733997680120338656947727710431215054237565864234932102824405753501318866388426697990421268496680673719550470433045332381655458555331980677442100817044590808381653725485324948173893262550818597175899354732867640715662953104811146543640585258552140835132169049552884270807799526480681935436051070835850936981383168375802849940857648863993600110619075355526273372423844854895604358469818102525873921749803246082755060974351067070211503325337938788133045645207323973379717231377711314604459160385241822079595195520998500078815795816798074646367138228783669483177676453009612816564958728537457642520736845532539146139400773487834718674929296264592760379170953900598700070665335972902654818727769336883719900094089306568767857204169781936069574381567958355637515411043087303520248176004715671184358326798977914593329906949332424344819768754055203997233702211504295741544410649768847730317731703222739324299919739414423540423399374350624133404244389189646179505777817209602401286270569960551013567769134852948842694419511874272397374637847580777026034140959971217686081708136600666116603945301802082549003105222771617405096963704646111812519589764970099616859861553057676212322582119970500825147887269879259431380390562924290106355375408269903616664657777475482961680176713443357707119148899615342459425088224844172083322776719492651757437771625502193934671998466058611193768079775038069278344444907622477999612908647304673198605251126909010427879104801091514057091090139602882788102365049606601638071507506626351900514402914878023203098014664517397330936538544912768272110641982157430576711676484578902245268866399764959741767416672496383419796377102003925303007510604863185138038075708829020335497971211041712745305823750697801419277320078589176437374963541037469018320703925759781716082150348643044940522901962661446753133828872364086834879082163968639102823157604270684631595323589604924986065688840722837699661628717989028103187092785299289665459830129820063464994268926248308197472999301441166787892123871167565456348315475834498365032988185928055202167956037761887100278979237178653722923646881344544587303050170423515244824189119731834545274668388257319728299746779731976063629701415454186048448908598435680078468133452522359616717612238070346941390914273071893558041412485345308651875444277986814729811052346479557353348749395719390132681344156506817865973194892250831487969243012742794484652545009340476867488460479953501166317931636139355258648707671767046835201218069108073418577265917161512602207698180315184420434403766164762310065420781602061010747092332337040678379702349934724639920192379864894704559465028596236451244470271768900568065509673645685893408625320657045467744927470794579577110176193882918009062111076056773875729405086435196293900010603667241180230401464871798939558687777019372240048357268865423369201485775742370119847740520383935885791281263447991343257858315681221150109217658511742076221496917563628568568216341564082966625992414156037114563866117792144991312401768700117768512353738895169188961381045865864298136814572343742248226507592025399428403821541037839169720082772368333219216292134516439349440988975976666598633837568353384339925290030026800486667659726267817766585383308039957776167659382015196385029680667283147530557729163444842329649355820694863895945180031188910006914713862512470467918408529273792896256027131445884634203278579507381651905352100907785191519863059458057576146365891277650451182545341456402895617161076912428735485781163759462649670134907358403432484673021812406984316939074318305456477177762205596702425921785945929841391130065942162360562989848839187426184259753527526550255489921307809861416624433091241139674595336051699579858300697095458203196607449065441684335007641858200443421630899070044680491059855912454747735975747578518979530844757770341696926370389637823020212241900288902355432926735344051244855102429948345660200833863062163907117552060524998102450336100941829251285205505088939409773718565168086779013616140949266887013723501568813253378617637082055416516592478460077634601288012187473306683484395769212978600458009995790604295027805394770742082987621976674873737231341768037131969075063167037817043710137558715292380159402903498422530372519522670033163312806256344273041434529805760356865218725870190180755773688563660110624571560635742956918335155323391688446849259588922398429643370196727156014280779068726480148674446494005659968754554492483123092116088970096421474123884359108850494916114078915459610168954527537134898003113081911236845273733559394248688612649031426839021967375248409621975023677187716969507612199185814878939731539864110883729032969517444171065445887874994517130473355018644885904834086355842971816243917295747837567837070623080157097167155714967208368674047229681706782345749146739677596378444009413811983603169397025066243128977772724508005664926137849008192440180781135225956256439694688252889020263330945799324155583926800771650237827387871482890631122831714472135808417029996261927787101071545482067923595203775193840578423918944106445680169932930600751487618837706340870021013819484069675137346937195332448407801985260895506205157672739144516553690671788330093601758858026163717071643213527167720239817228854289270374442733976874347488004608002216306016232792991048154726786599529498706210104893990884127896549923549946023329932259824358090939972303436690084233289975714741723782953725945598762146150101538204931566677182924207620851318875403404754347153907444132393474693066421528378385632246525610884317621168007528703763238324267912490844061613354124394293251962348652009485453742908016646419687280866527491908955310172895783456770950346287749074033096109635923224363301626897281511831231032207450418701014080059760920704479273625553116930900872401677842692663914014717340737513695108894295685296258721804582407502641216727260975763857976896382781489221256589691459063481669107737490381752196061299776631281990987822753468826343162259642877287267669385374602168696722028559831630145153419245925752635163798001712545666996202213512033514241865798073971392873565212287233059871610251884029263696854801098965213457175271619321027891147359728629135824256772244511788010423977791138220805895418065864648752219063290347548707918185183998993293317356572577892755558753865210136935306522994854370038216559185401544516445835041628739355351944658174678669390898951332258250586416028100487824901084202118882093179529460669908142173986279963639830074121740702907505673624368690180586021232782110042868911385037661530128182541342003013716017782938698962149966037792016171569570867701288461151456427062879494331359912350296933457085107967980022923319032065556991655543523406806705089030816661345677302814681739976745242664363245765835429019322088175352491360443611285821944718018130080768671817080316632093844414176479703215410122369045044948932235468935783386410398017073331717219921266043115274420912959020157046439783651235758933346588796428057019469985542290667329635875373370661336145491454007595678093094136278601170565077567292789961360151296372681434268171458144609124452313058311491444150702006089763724682369807679743353901904350375815632644152985604719432186840946116875423136514194963151444211214973295480095652592401466678487893810955166728811690615368422258729470912561832827307789706148745524723174761081131210197501387741818476021707082207934369344574833614068709094235233897832360792126582059907165987950993677134449266118303583555310967335081836778477085685833179654134992773238342684364911737000955632189041772598271432272644944381436953886323965019543801320207620982334730157709753331098772022367889016682386889523627662975987543143819807950724833763625877989043376965798084655718922229679316205026329691010704919606456345901102000639816072035086431025954317687775636680691917857027878938801436086435286053904043984973710728429280668329321333082282456252682505404149099232632509676938653154927065460204072335365080754209272524061939413108631046029386103890850292077314716689250790281667018549655504521906795359619725117139905457306588004323726906675624846880915210366410455353537327969595797884111305609168744281226658765064002705958623774738228861589107380850439371076473949422408349000136922982184259573016246954723384416847563674762491737197301772647494188564391330200944392639748531612800050781823073400425785458144017103226079517213738035327448804147319557442711280355742651645013818972471725117654456169499999587169308950838975133303610984411826107954432398874287376368742121316201895575270603433267109879969481037766510223980584240103214226557315868818348456588868949925987279858112490944335279591161720174547283804885068317368137311418410668531967714028284518382983382534815627264732510683222400138108827521707143012168369263671245166831679547789110160668321517646128433346577531278550686992574891078673527499607265103817663514984870905215239822458963946473081336233966651133765007150817173896597615272392243724525568265768426901735368679073318410658670010076578991378184234086748025488233027929119603866416941328543425654874301395129851740599360390757881170263748441668307910561082387500960966360247154066539932363193441205944301662212855025897384893122459133685912740862056331769583076452324376420282143756782840950173979086517077929028049907095798943661489517797976774103071561339824650801421670665339658876793816138217651986060744871859360315870965229373844602428015268420649891144771430464761633014522963981404476907157052849873212609773189790894050097456853072006452946914013803563348687610845428570058665143783932615619902454802810611560254145832568056469795253342785731556944368385081677873661659169747156455101818712659003399120572760144162627553941473127782347505777291646015189866886757996357452550052686147928303179793597190342634000714383662798181467516542232678436274037222275706620174101655335207277677903497026097568682458748461635110665382953294571632116215920419417806007220560473372798656545489983489698722831959253971748129798623172412462754469039729026420915461969868105205659287406302725908462776421411007394336980738934799069512922682591990715545813309573002614810383604924288133485774554479262939389729291105893459421171935643066888976580417706047266992933867677683977466674648215522589433962902222493168970978503979879741433068932993750203928597818418948352311906431648386257958696503814145053764418307261984968267507825378927040973955135993010924208104233118972562886742402087017015709791060371878783546727812536904832840159509169679487169785622563452993089078651675245678025381988790792643886143290552665350769488757404606311419898149121645277370394575465389140622248752971120904506170935751585543744776488252314184176368212111394039946243330030470384645601476503096723013859282260912169324303578394320124568726477006015668983379392269228079274577157546300371288229555485012898192899246079517187678067586669835633956695088193964209952446491084112800498947882690680463809718629331095219756103873636114042587064659771005809605921966768041744389244476452983616336237651151150287859388938576441433375069475574316194031194533975891908555945980673151754521850062404174014593343655615104344093891257196145490358208561765813072287600038823771139405829284842668689684894513219928442643269748332544161425754065623625220688731644288187844542110493556792813245982541356539893774605307085448112163330983308092085888385156705507283805983032710232828328977596695982115060814741429783711056266025786584242047905264559239281577486370513590073727423559412818540046010121646436422772440354615216926532108904736602592155287848566226279530476835191450189641292640545221903166047797524440266492729538204434058242776352508077008115314904030909620941831515551621726002131602051417125640699266347002922189681324931915796970956131635041773549926926813114127608912463813915016582485632956243519219064637829319937850112958877676862859388894756454043431011695296415348503704983211682939538945391023323245132537733922000905414453198904461559396385568674010832770377301287847580935539086689605642598073883144532128508702758546219239161862445639261840822060945140562552060138279950322659636427362217402301276454947775581446453951868244052352244101517587003987520918491493633387607408574679890774977651073674479141642494763166300188091725050732360284327895516190370448264361900240662093759713845828612900555090578439780922485453713362551979987985708486389584854575150001158198734494889605344031572533503476038599384325638373975121482081006374822098527680122826837957861994775122855626866627381273750858794598327643434171706782779764812440233432012819525588827846758315530189063776710796133790675850148827428433804635122519651910747676870673189571353227674779983959031382780025851583125906031595094655259893099919151936380123091896756114390737212182927151717256391586136893590664180356688172071623227796717756134166988212557769966859060763911730085061657445684177641418822927554098362513572798375117205023184486135084476034758450959305928529758685923063485297698434636486213607143890180351499912920999336189916617912213662222880691181173560590251715964600178776503114781981714130704601841770170773667637771266936034163501264081048605902683558703379603477488359190428839596288480405779059077193126315423769116243226342215438810263583533458188219670558095239324076607175033131389564182745304488763047485716267819161199627205160875001823152924538281504955166049810443036966032824763050360916754576802690966667081571783866644487295501821495834529357368245304075335915353509838740162046151767789526333885923570419620448805896204436204524251059954418687741263591289867086026344918772263701298797302600174311186320447747794897223666589178403876670356183511424617837034954894225734155803334061347955915093095401899487834487915851950026541123605667678001629687582877884012383442303782595637830049619210057875498301386460194450031843202421915982261685413557646821441994660082036175045273059649569117770292552603017747151481446153050882977799698010989706884628733321891312052391427073647767311528924766110822227597605954601947447404996881148260155619576032414750900504932493289531850711410462605273239978924973406407069950472133299576034382619473100175586374598833890409649527387786604877794337093991401938029711079147759528275124685562165279551375968674646417666636104189154025970290399149087755434195692102686788439285495297655155334739609169244791777743200124988081287613304016961658987364416695469618310399541791712254958713332229075873001420649909835030762134380600053916892297483388757212634179030792717126824818614250109320464712027370163573061775307048013430151066211680844749430567460146388599209079506121999233202043862695047094525721716285185714278836741060193063977459951916539271245264584476605482648887441578161775285986475107954219307790457557114519114366863092357445251074760754815201057067703244391483991581453323102765998754718846552023940787518139200894841048907921242070647315313282862373954654619089569841994267357395914623687530464302651511452409346058284041111530224383403897542310671604648040225298693640957509616193733204016063446540351480998395198336021109295164231349284635854916664177428144977575240376748732517723737364914590599683922369676838029538075791332557090083782377452815253486582000240413776485354173134090170014846107362643053769263394460920378609941900415958722168968091797547107387213740903224729555264653743841396241799713899185400778010866846524042485604915540954052002760244664039834578722623341072801094631174655245944436395285815486492766849262832135871379981274447748954046354284361513708467313268640551911920698601991755177292850442479269304168258454028816106501980961497297590153510029229299790977495625612032516937435330247811526835111832725732851854405395482100014294766408977318571147885582200868142144693125444808342835526935388182390175928707051345746571948620632484335274567491441800419762328015428471368112285364355378051313293328807375799449789777279094434453192000791609864432266624223388929589197509700174099903606375218044837660480025269784614362077683629375793123463139960016123513921570157680047270881870481934694375485903798798089967779434225607876264942338440815923544894960307052590879993934925503745016982372691455084601212110316373454380741487843679064985528618800351208754216974666738793192535323237376366111549516381375334189932291359635812353883239914888860923769736089788905068870185127219180447901695132006514732230673012992513945646690796843365592067745821729285294240174890854766467553247937550234213115130264900428387035746940267934530419772868107319516118585100185101088455541852607009441828030302592101683150655978745308396033285121256061116107955940142320706562814152773446938360256091444609169004988738140896557345808915347174597351314805073740736424199345223649723523218428551314914756607280317350716341068546679772476997904674725192695481089397277109020454300288905286263459447017393389704742381196484049350126093650266187254103228231844764972356114838249558694230656542351716758205197520498331252685355527995936398705969509382784884749519929083310647762984601487365029192326455880567992289653798590402081172105581149922456634294360445074989975800248077115788745518819612784438643590191784623230965701247053288058966174733225942261319175688494316475147185255775254094253017247245778854098461956770139904447825882386794518523989870025430537828042233616955663632996678922365850214680334493432453772684748790551402383018212808225665901692317513954467800097676208207600816056905211777814957264670943279843466983226203471990333638645103848136390693262339462739039481099487009259143115343151060950006177701793316635754812729235052418090671501156709504797439713321051858545662801764056731310144864537943526759087844876832354049853707103441900183184572316924893952302538635385980766635908020097609538654842355855419202709732715695248378218932343637006089635255224788313949614281888148646305504957925246704131127237721039343563486351395205826355470554355111886603296732115381507192518370707809751750232054215648070464659814437029891959573508659973018592925760963155083543652524025221189721823166175478653910649051295490569009001894680647434449675499357714713334393337787982547601423865320626573634401644375400417524219621729632008478657128301517828329764712367145045874380947656067794799250867667403290482416481892807333049050314803627398247666046589317652256916422227989421143878854661294217535233928328795764760947665840262173768234857022567199023200046322304253674067366436376729521422282376174805062665402028121734375846888573928790562265878275070951396743822603838232873654454815252716191629612307625154876100012015686498205344874576013796271277194682521745029793145915442393283615159461203602285910018583847762947771072812592014850016962483947313112001100441061825428486417858516927851543849386514576376557727606765657137921022782358224681161484246814999157917949534652940204362676068593035470349122428377691837088248734514717498451056273768717441545284144647523680777128673115801637967528173378139877885521781493391268822136105103444934137797631066937344397965615108256360322846831931864535296076469793055085237051602095296081514458508873152791452933766829873160691546518494428686045045828701418491865050872038992433937634270304488704731694576584800948177243420572380203145272999187619448395568634471724693242061365271126753382349174477295089698374746784811154293963595215065236969146908097348879609732679058531781140095164832411568756411282089046958998647817602355505837138672392574414722200360230960392097284983215468269991542918867840701904582091699193006728228525113386980714035235867030820326177455136521840596233957987358187705404145038876570777364835043493797385257479266462284983850434992817737208093089179207057336333112273966317714275859377908164543336166694920356167358584323796724139206407110708917594194627060807440966895960784839695127397431595125139026230472357778741903061495684689335206453672081552941037442381929556553273102553410279084897209313153833711819355946345213319477987639438067695708203830750956273032047300391231659769329654231363432034157876442086092733517980697888324986957302261595093779896304824695402254659661763312090186259401686738266067932228569233723298234098189148950322387670406238295942442756127488499129435956315697512642861171174928377853888717152029270327322922881943938973673950086225238525713393575963127928069113371577110113029935129551092725934539906873506999044600480618355306327878018988217730347490561216180066840126752358406061289451333411175176828670284445941311680650143826352694306738035470942712184627622623476187376957731635535321335451307930650567638813838314319352306088155039787760924709885389472440590011024270965004083775062129252943843856293973384094556497369352522171725328138711017664254146284812441743682973199960641116030689441055376776845334365174249074287398497138074726110076541271756324171718318753170639797816956470282688554748648545724340941243372016613509283430491371191747159043296440094254020640130330496500771258685008836328653094356797957684713955087026897096506347946335259917211280878413537609682266314969977879036061657263342386268580961736951438778263722331518667035864057343715695897722185564817241095568569945162291824373752326617241872933730697413967547698864642819945598694630682564426491396027005530188056501387063488912750106375363864698505536744207132101393224982652974814175291059936105994869455025906449042558306029467398728916634132313280401057745424323860930754327383935617103891896520523867751780063371583604201489455356432989728529469796823030774642570789602811982432875547796757807034588777629768465075489378707349412456820096300077355244352900356439853599674397536195707714947639441364463247962219369638374851202499673313028433102690367519051123024849382256843995459768060536477262846177882733043082015600845604190543691424336293967433825506687881203736569905471291650177695879595133464152649612247446223487324107364081184904517496921551359185538611127086519796488491082893683797982493547237884565782680564384628213380867616143303259024923908563194158777358038528002722846191764406653635848144968441972280468640126439410551704107944962450578955687796919917854613214305555989776529676793902358669994858223972287965448997057801380402247169204334579945583523141421072281534841632711617215161086063922233574536614121845095912672758149502596667925078644691161144632827625501627695904817503674746897266025689950735302066755093045242401828681329212620988589345499154723227299732980000434339490473259830003201756601237395701961347789038415313197920970689569897853894543585876326856873945805592129064757933883181754348919464180467469596417673928914149371637250227186716011246343748261662428050396906212338674991643134388349625343839456477012043846405826044772655533221779813045928211808371402197868902433286692121676854912810598871299922092137989412750867992334541035149920606375216293243062816158114772706069387405210634420643693566045968787968660810191291806557526999141713609344772301905567395699074134192021714266926204436341438645118318324145929622833023573725474842396823914174694494282800406270232296896671415316319755163224117963743400852841924490230522535665604898264877969126395512920330675836523900945054075211794139803366481189526709567440245115093259593004696075765052672422849244005843049311552258645329709499747414993797456233543888662464472719687834595270520620353685957770703747712685958781178540579574214455453158770888564281707504570366599912033788958777113634089893930439642017400595539076273229781960647706233246974627007681344815691236036975270869359251617480243006078924823719315678021394454318105862632097295561491065559851983651600834136641350631100708551959322459344121706336207010051113362800542130007612976850753276535598639053528946369747133108361099865430801285802147728313578562553239200060671757689849813990982292660071691976574638611325607807972262902548203525849186302270290661750694713732894579099364941071894557002067435352787651412546615394028355914658098815166618475059828290447405629910339613127596109530868080169355268664844986702508940122489514528703212336881346195111500615165063479233154866174154816869838481365598279596823829237133188700543223860099895243579143758477948171608258516360519715052082399278532424109655291310679578063982262513459001556025996521576542185677314324099676823082667166159997839501370801181208048717316884288235589073797880104311041748646964473253834732059249961681385707566287391152388277824157108557908537980495656112409743350898966390449325596956107775744578201345937527846778047027672006789088278168061734092073437024545840697436874819357001847714849596696424044024979040212208052584147361795928850448964454590100459654380282736503382522020663072495454754959634973305463572541240105723416416401680702073828724384110690651228821331659738133981191781623813668835035293631006179647196324779311767264712209113632899348542104944027385360957101358555043229321682151159754188140846802857800776355934243839260188661567891572874548208451092867858706800882282663922341206212235142821626134899938109254409342788228260267286318274064866264845141964994949076753990921801918672557157313492047614562966910314033759145094644105881991892224641250912127219928608642368247146461790660015977917243000228343039407579133022742463939475819091267730238217684750320423444062571020385299311643259305127778545677544100284231548266305669605256302500846928320769911207542108608999285835340623664660518653461490991065000166976760301294703163781790696963085520387749961319940953619318226407118770585517908244531753116341354439181691718999234043440858730447949851881369088307290464080866223089177061218913066993592625242288489297786228021081098127880139782745883351440004090455503894175041775789893069678585672476685110834892014572325364999694901088952492075307688684513767901573273833008722387928115843724051349664356387863696686588703705928609723098903330136576679858808320472190016084501991297459184883932374545578544846749581156282483147886453247853323551420635696731782739855373771138470675982325130567464179192102466050575224367795186915105964412839486408888625553705375599844237020278964982024738366788025228644868179019885628962733530180245174554534242962785561977511618711150059243272778922605055903081069606454312106772498674641303213741074745101583663313767809946961575658569283300019136789367714810479610863247060663137204708428008324939456328852740688210735652886074882242470395799696861636562555490998764963735895698635817975116275388317778981966368978679212376740393223532515001164826355769845818342474527462797871205812544614688936031802444199943903077736710308830054383202871319974972782374034146173891782457694229571725250559631406324677201744266721369030900619968915381853578578777332995035341208962455102392871353724191587529401744469089550535840816409543501749399977840784332130860960499055456980603887458739973796042524484590371275531751312667826905987004888883973481842090867207959652663414284001694584975119657700245932477289562464805352029228696526753706486456779777335147184579052192066061053227233646723870708393588938914584034688604416773302395713515191792972725581117880536917752130543264571523584547192141163136183065785190692121025461142354593664479485015644036644429777506359451524067258924092270818993099595231099011904737069157414127634059964437658013696921984209956277763356413683794661962909690451486121056508773351764770995326586379826798223551791938509876717450212812368169004704361386310888271461389453998318823599301079908533121295472943529491240130546931728754361044273419609996310678240178623017558177327806533748113857895056239932994900207572908877952673132629314660754728028466867992113606602526013896013865193062689010631746126138583536016645389690231891252162138492537745427146886120092504315204848814052967439645407504580311427681001855338385064007549201884006523917453676523616058275627731759651746667236115806197251541420327941648754691099680314763088628568981343657794595100567615314141085464161947996717150151064451613637272920613240852796701640966698357222127225340482401878375828767115856392580165520677373253758615987446398260697326009701087722840245707177479302521582459528652042773187349862171793239971412243463450074332142096880817491704164743835040529467496685190425009493808946155890438718097103402838612548561389141383685678314535606195763677710849023953120106224836201058504380311788390121368789113898238146848907776665940743500464045022430590747729913500686016364058098526550857214460357733198736112578346066647474378327181820514173027026560458498579944806188179663392260778865911831887412013114552061271338033483937951170773390619031572836562561063045095268818360470857901485661461841660938472877929141083770095731357804428457667360533643653616550153244909501066477501722378138086994574997540925392455405357474687588237865528817448103492155654805822303880008222747074427609133352731779958389544383393039125367251346044728575251638700960713136888315206992330187180020605713404851398912005050347235265580190801256273108203325000788575942160622281835471260072004265185435697923269491057196813210221430584588962199318280003583197921396776812437237273893981656522394474510822067388940891701532017395979963916239924698292802499996871607511701597376054499200795071786226875695982092479794664063978517684353118055698275384223558043565780476349035707490499465133519552294434274651785619140310184332674598035636548825125907098147991716932126174841827591471315825997022141809863387934707135664775924804344571567173349743351904936264926746455097026019362305873872495862879227073223944000713262041485472363538624897301219536296630949214186387571144621072699360496814308946193531508067760014850649795010661232345958446180294465499863296743076831188845014393981572288693989475294243933507378872266063402357961414959859501404597087261314318696048737760633468487372535581254208809370527051283239199944567214815797895924351680121311930920682950265414919582650395781758803999495512493718904130118852713596408057343582307956594848136183035263654332758000317553377466556697414342128687455210314050659575443358367199565975013897652076475081180503752981514588682832264257116105530966152408257809981201290544136265924924669235489817073888644698189762595311422610642793912443476762615082099843364130602219720629075956186570148745090758943567174247522511671800832228922085794151266055095453274494171135645232875050663469975323106574606387384641627528792324394681657179815142241606517389106499882527775238940721698134890929920874381286436568335918449771004522734054249907137432451499375015986018261204859169014649065341809529959442036029622809525090847586373767155274336851462964180198579546434366105202013050860059028698430431980691354430397602828362905743946893638128864984670576947912883259352424509103736372193662069023611513622791147988177339823337335759179358012333638046184055428699356682788447339165391551221789764935822852620471698545341345468199943154958146064256508464090309043428421138439644851213989533431497488984516791511253253976489842852287520547573702235180969708870935332468911519944836168209883637820350764050955118745807141596603752758179014635984576230596796926232765218524127303117761493503131293335960468650673832786241520066404342491830503786773463433961329130405019834779205822258802780614344652402050701189771138758525413179268158804339882820720915905800047857865473950578242315500616733785924588931712858416703642496139200822360835176101012109027824231678760805852308223857813329253743658260470099464224802506673278282190949044201041507073216755305318503309817846954492257149099802212944454025583182943472558451172142196172109519135551271866211198226995392246786993707491271319653920326122726378792309662323656085313204177419880155727351690547690803809628928608520490040405086640740237922232235891026027603271627405010932879066150503764577227230452241556258460253863565723088198606684386464606033539438471045601218015393612688844705954662316500324611448721429711866664366845753008811684738781379695017615329030803454292342567439054504795111123685086565122412121902222396394977834586874971583209803976760668591550420019808849373808891826380918825476572935630953694878730878306168106420196452526395223120401317078158564117537625039415291732209279796812177026694426999844737228051611196945205964930553539838343656505085377858081820163533173547214306899593294003414363658051407110060153912840487856277686489309480123526492464490062009434799921253993772750218598336262362661950756610416105519772952445367415481661086061496196116895512802969134005620131012494277848350574935410239012632589121103667538789131885746546570547875185245273233844465764017449243686516544384163064788054758331557302232777260968680730807616835978592808655123195023880451360152994776426234016744282616049576804577793734635018026617625610036291245302304783658316031657640938260592430920164254351182959241738239692111596939237714411335205337614221931742548850502503104376957101110333552731885234362449788921676769585830416647134341995204722172928007318888911595757245148192725130552527562274287179301410542531744508086041755977274649912273461521581602800839129770633984518726077065047856413438702918099037448880130164237538286189979395846354116260106388441685097533584206597803695787100034812681183780420724143562201619095662593036321004582850041487939813394661817072113504440454128218903809417628851736319196923461085889479107251881916368053288050627646213239845139066385573276942195544437757059154680774805075320414185643328287627377030508649810954678314650065527460229413152082657944283155628843441045395774189222987469575785882773070338436762694407798698684441447492862505006723333595824395926430077115960257719084956054589857362556486225697401686668980249003137658859100540271669452261681215385997923614828872531472004884921477805257208463506189534506039739212688647796138681273339945421237044354746861258351586618843979116253572654441965642328784714690727944242883754565218806250197374774773899303038578448495414471845613009464479276235572041729079315685604173017956857003291292491443794617255753208297311206789918016926217074803722055982584871744538699034224348500904009287715865374443822482050376381333242077212955749150660693331898499310017937682789150925576013918441761422756506603077404774953924142138209467221748129615681862186691626637216353843843326357118444646416628769302752175695481508599329640935551087669690696059939015017810961867537605541494535487834332878247207383901753309740122308922925993285293498682614798242159803890508733749040207990878012808142062549698712111789923024630034108366886714865762341517316901420691769451738363611980316536739753887174252079373165366030460983841571568750474806283059778086157811895595020449569703887981419521780656233131130332740739483231369048223567965271351779094449024020526366970070737127845037301290206754687648033912368845192823810530657565449748749176652158155782133701682037570519110323963499500901704285515925698221406188257984747785559952672480193793877519371220884933796935950226038673237576349767802747362235316717126505188495215939401604065738025850247523159482299702304735506117391338223296487186597812162857604392869361324637472657644426302005965800943130313002062249912859867324731754814135051364592256583580770451076897836175567185957936318206274650542840801303164560508183457841910463980433873212811394252335146598556343500696156628554815216664239997429882295875808862515681680738459906819746925259002583808417635740152361369344225266167231753927777319134647297231676532132010772680642548191515325963989295830031798289843637841642245696898972412133933189378145877074555300083712582707392596582813952499338257327220329505540332193980353574593695533599889699508119326495324572542542375033929867909683127521019403905885792037374716953359207151324156317702781033207506030316096471923029384109151196937021769152770550024971225030635840734624942255701694049037416144872335507155112122905262746405493395013267447336528753182838442536258623501160111252949537972899277212481189328303160933651445466729739665151419016591110837449952612545743208338298283152520355022838141022145949015292094167507139882693182185971317741685150344175200021416102306692043058496366096831560531357985296201659504735722593347245368697843097167771100956383814206212051833485105284831141627110074047931091491899441309080202100209034402949015611690029547381530036596409669164366515326731839322161309543603161686460677822322092365153912558506950261304507279883276043091723162195939092825256514462514679528367953815533005319991628769948154611914477540820986905978391857639075534171530314984326024327417795002071746375627613755949247109986248415546789762717164060098354932401712076280163205104470521026484827914338341547034523645961822422293307629761491643347862845255539724861183871318676561056867548011075217698461379403316063630939774024682857250208219936396346718167000989443334798816989785034763776925874111346524176539402615259950895964981388651863562877287877396486519612556480660999228597211799368181255161419815851163904426940288223572155219596491825583560210527424465457719824162956207730746466944062966745776514451372499998948666291726311690250008413453805764166610838679518369573913093223634701339115108026247056969904557160271324121373794992400940873861951001700886678519698715892263468758561058809362899249211793376717117107817622872903667833480822616334408129580734380715933321945988539578183596946699694574292217836622076995520588388222268641318706745030555411589629989276387335075447991000941955412827617665885881493651480342605798057108514453401702262960787442248923129336926040314245304628776814216632038502252376782558673377638146128180060022939974232609475247108665411703364307973819938788000872043518771953554723559935716752999679497972203425546712616901271916672108272945798082800774988430277151037662483333836732144181652091738716144419536657211214908935238566642992247129954058635632658468603188182906892384989224165837162880542818015756941233410928878398091031382400341640819560000001119789394500477325316002923291576623023982549229673500974374876471792970868632744367547528994297554080881796978344470636154501669077478760893787171593162597426996244626612715206490189211124218370358390580408312008330439881600578926422044494385833565232979677784532155474915630390428074219796855962162552027859204474855013642334956413371035425675396046707767620118322830414334430505454812969772003613279595146938623863078217684504753716439460409596611047820070836152404509604113792682344540877208807631160320412121664674942188234513679389755308933633982138710335304005010309530957398184390764208648554297455937342736530227834395472382627862686726510296953923267180774123638530376155249540050852227058823582615273810165294659613148609204868186535683927872152572722175348545798304836596806859016683653080469093748728589280992568218210190524397218336911843936258431229140287566029369029595375064186125671023704471631044579534324159011307503899373640274848304792495342627702921351768973457220687770910909013594572582375866191206790890800214969474134513510024542645010540795351823942017228305674395277657013906755441549322386827178864319397164617188557863124140361848224284984715985179820422997918036853115194376097546145404981756422161087126004793335895930919354754446002441843825161667072449536885317787630987575804427592422224416842297886844153127507535311143308971711009768148743700417275090525049527094653180611981714720623452300834188082522824824918260581967253235141632185368681434945153100259439948856485450942009226691028352697829392003595103372511846475593244650397092070339869279576159176374921319095587882820407860827572404791247586634184660219281513076436041951414871700405005660113370842350235531582266604612051569436925285275816789024710233382102251330852269798119174104561759311801466545415567956705937300900734479934425146139731640033499873280281621669310963295597250255649764685053518979572336114013250708262284701854211419991045899652240928176845057952798021283069145305481821468211988670930739860216202095516955095482757126709198572840648243480082401324855595534031841128377947766383021677041119810772947565451208335622369116237605069643434554955699798727623691335692318286106794974913475533402625481946794697670071791952677180941712244120606548859417707598377948784968614154862016804364157497096619622586549908597795268689038081108266366818777727281786409032136823415390817463832456658453403380967418754534164203580855045066535884282670546628609061221662309724055153443997071837613198441148926338678672012229249032307133763313953911198885175599806721173642813468394791787768540908641644826769243868095628876981612522610827643645671058056324231296002301783145077102105356755385534359287128843984645653018659866914530053621089790231807071760957803585049129623926992366271383712692267886350105971037893928663397002555578883233552967420620121132150075119448320290111287435774576256543369261900580822017368381563836684788099260871418949598454376567283911869169240071327508478843140901773774135792564688751310599375247007913856956381343248522306129719757729440881730687141034596127341104208803763532123202908188833412275608985628899083473576917501417776801837679300051193515910565718683525483170628239364908088725412417310005167468685773527831460704760443559501452909972175466291830059286393797117076005980071912897803465790029195248368018800735527125244928546674487406227883395031211044947422071824806654311320491992422322437536829580099049897494878344877579846398049177554708509488089239842010125078177144937873422009354648906485255415077648609853047562420175587872322215894569236324685226167826538812074043040383461954173035043715857871926007903706161423668713721320904757415542412677481676891225691668388791530117423375781044802129901633040575103763339306386685687594371173013197712484264010589868637782179735467451311294224504901839067387160096136032776051600809943316346866933116545382425403207243914951075981655066424904541966356272107108421299164493176927172894852166641558644538274156513245418604350949583130343603649558339339246951633061404124892998692827679898787951127789065307928840107473256296005092285678126215585332913570875371949540151333552875073082681022148514035408395144669641929572225965604150619275507349834237636247257259937342217795093302289404872627347045525974740992918328752695948919541575615787517461868426392093282289057437790395196900430913165644862060145077444716322829218846467463239296880484798494284346249533538793513786786990173266250402116473075097698659200561302753458505857658585559425644227288210795995992196704012713517134555857855791775137355276387140027323480559767605935479256640567346649381985808898291527512521352050797865010248185770383218867972782795750067383136422892739543357628950608369157920365890451582583252566034508199847634733118737042860451325175996617883215999111936099463167202089215415337168577034467852493607449856878922801012147847210784007150915014545119124225717478355150607276894530306352061071293733686132105023039199476867871491148823415196940538329247670686128991382213467336573265010690166231159640680341400405709650050312971271685220512934378719693025521989250193121838671174302039749133733709369774419414282303245372488132966258087462760032471510855181018662134312812775137784806178827023102184543743868044016222031803254343346452590137108480025271164999096970973219352180637098259391557153710832318339656683590199198579442394510883737664213670792746329085997289958498782212402605094817728771791386710775140188390513518520392552207059388904559109502951199804690816852539691403828134187798999613253437013772711668410778004562801300584660895672197363208606835447109998077259495465068492039754025067591232175511565025317027472778079473647845187205661585092032855482450823661445370982811030169176274853471176182827768085825346296259375222345776784898002346942202908194831261687459435878185809728179017256375928355156121780085223898865424108339414216878416060978569503870348627569160179566353792888871993136650649802533596602801940078345520227427252333252636216710867654900788776311117780401669795094107365456386547128002687823372560184540036010871332919570988575021750717231570918195528605134010026754211885914769467965125363391547654774817876367018219380717658236228877770617663447931179400633382641740935145185245149387041916328509404846001054807232726278087237082040379817011493456944933935406449824505360927766136583904979877282728303967627611120579744081995518479440412802174489155465802240342432414054812242352053843502720874198017401778918974166122394516652432267858425401630821099436212029243299371915584010535561529850762044653753366971309729356639947342306545077416444468681299587628198491442679421313543414978894246372389676193989735153139396395227421018510677943643973462689238336513299721954693311393820384090760337918711941071753730142128080539776386080017507660532890519242028124383820508841289290851956048224359730893135325092825667056547440577899558798851610705878613354189788629927160128949737983081544244029135267543364127404736604626806098563627720935707934521221053074822691892615762710001682349306705974957239517978439236666453195816218349342492020978749206417150088718779271377000368831039661493391166584522290496375254248878614315534772544074859718248280505269264568698629644564037697189447768327357303004905259183585869239739562647889629067773666372653791733083087150695923673028030362665593838585559043319424504875676250181606571441654117820034796081131176343218503310433676758503326744558909191884619238455344272460359394163014641592426291820267956280476009129714454690717024111020114742869641027867201936751573362522641289811850783791858067929768035799628854536753813470244768568796908896760006269876866923870781162024305842465582815605599113251985905627142834135582684474856463426025964227013881679150531750213853005536108201513873603715941513567456681585668619133429135509553959827948047871654113062018923062418599822884805096975758322553861816312579900856573088644324249967296967654315509907408201895145042516021674618635886244510261718437662196298700893185642454538417353598181082775263621845481236519443565679057525117582661260294533069938294168563842248876535906125818885193785873472911929181322530446738876075150722576613870411118841835911606332360520776821433513610898597846554729751110752448099524284455127641185984993381320712605676584313595655092663823027372890433912685452105184487561599203000140477700709579801873589155998243748221405547046791601859625339208762683004990567552778394145583054638197020866299447080050664849132747292328243980127308316354404028448740097620691857727325934167527206257430266067023554912921953268181776703563708622287452773861007402258619861641486661825671497680767858663853245872997854604772325146246904610764404156973080129800637172426159464456345245742195918541665289705357631875011919723025406714314382484783633832953413672708774240913637343137567777843824838234979085017240168241963273949128459169623647211013846634880872071863630329269249633904509923730352545688640398813100774315674705271901079554781540602931768921872569128503721138578971867630514163773481691758315461703972133953077474894965992277281092483917076506094116315742123924500294073813234261859970582884648792434254494264003065364899369489179688479117525673703886308954885796481765827539704093103869280675599514064062857638604555512373055641691000019101759823293236741623087910812261235987948839896664884700410614024398883009760125414593374972546319651297347608835211673514966430334088353689876726027391032857918295637982834436498059920430674572919193111142875031445341782304625430459270041913126004975997698440331513388986731757165114913215011217039830827284615862649196348476211533278726912756661299504416304601169604972302367407721959377163216877218877365638401101458558037575304548385360416985511778709073089948297757559690024363499277116952933884988828330148548871907384283179971206872346702875234704279174482316878792679660496972249074121292247133629038240312098102898212866363283372512659195103782148185250999503999053852404338340811895336163682042590700967548476716173097521241586286479500084821038146454068504802552735046203618566137918260781627046159301101027234589849328699328112893365759071306707737046305631866980154294797607414486797884798891058982312714686916004552247228040068306645540203822254339383846232440893619937367475164044637100753266995956457409067159050034086993112508047571881728142857129294874250707789158266616994007535690495400658621531231164880643159025596356611128282741136618995497081092148902028542699263609144913093265389373622245875822614946031495572650274298682970818767914431725874264935038427099120687298883842491405420944928651854088729200589247410401419169097471301452784008561518381180436969442409864276770372432692265882212105086863354182529144484401311536749934001375516450289416222917035417440557596692757624335013860513616275434598223750243276035720379949408140247078083493127782803928838147842833987270961403844218273736375926091217983669297522951692037567145512216964838270153998104395245509468584071442644856455139999109192006720518578847606514575825690393300081523439949556318607213224314007408366433014591657739652599605843516598857263775970182497482008822825283958070096994936527823603227628612152417827950040791657068515776735306141550471999337091239027774731103237652307501778668522923975264303698274800968775052044916206836310242733281056433825912290301735106594082152231946665889005778294236075132213762573373239627299308253671869820658832402929891448125432893564514534476032576873920624826330793699519097138649233277470371294145325858416355183290252818101205059761395337003718571795138550880542631641566554031087172518354794450296671480225966630857965388608718686931819038545950158505935143858252632561224372703409922134099381023154595872085530359865243436236359307270537379279744760778386019323327534172721592903766033185825615697103126967935204422083215758457772358687942224391735613029177867839684273839902237993701535119897622377987221089549407413252649075631518861182841446296134300346028146374697528337475813795231509489917103626609265229100597017756781130064940323897751669904201643433957969485139587538839835605458862984202041496278838362622984898897056817539552524159083713566424304812404312759100859725901872117003532403215728471708805917861430930610049537505849082711325226257861451351156034555783392380380844546912563981831323210234296276751631891276122270090099406418843861346457776154329732762311274390534534936344664172353344296183704254683439273480981644975983950454945348841592449119895204926392779345330349918862958536024555325228032566992853263201086447757476417678170206084914430499453848312381948275990090141503627347228179106277764580177584917751755697153224101771084594973595565947613373472450940982540996486249923377559178255143298288607027583560015005528830300844369161018092109530696152095409785405107954623778834754270652331996741320024102614952362614395239198493557376910261081239109347518310995285402648744384040852027235546994068300384805560864238531138678914585036308806555649362805744518307355190763081972289962152609078136042541358336044474573466976413420193548223409575922366944222743978382950769273372606440235984454856269449929063496933955970064990851236590820798387352984471208234036982970807060607432510090290237520217244863162793698656777638129039111523612088446613820773135320055873133847945927652900053551695011881382992786083016680545336551107212863712617831165973134776622725101117950029625908478927629112752455770112855030984779517034766038516842269735806569751098343434355318756493498728296544175187720170255748102257218071735298160753652971873144717001362238542799968657440927936686495767629765837464075943735602409048061198357551441167892870068961761777320700437327631226932527763688690640548882330511225140293452859528593938839223547840500355794753142163596032052071436869322764493976546375882654405287352379761850810898823377994179770484738372787957932737849104584716102081299220559712227086832050923536770797994128137017908674950204351761113112536921923524735353742988865959231296446739359300528069081953945156093925852496183579709405432472650405815787570791683193144516476655452787210320851258246566115599394101213383901504373848000185849085847773942769145026406059410831089733409233554003479873027262104838472139463809235583699344616659367712068445588392852176675280630810280048003472937970927358732868179809895530706692225751772571564985292536912785718524559910743288459093314765779338844209477079152635480904129274719315124459610524285838947638422252961128291275038900477336366974090836023044025414222469943495119896387246470321053715993952243393423468857081326805393677497487094153346596956910419017860745526677254869232863581490511864583155589370763549427434967832669728501313228338855905837759127064062592225061190405807012076491960501290229034796487611689751792489222981209085662320562572223292185525547491668419289842591369210262069338646549638928473005222948993165679775185130567300200653693124686919781928391947790416714600427352380556621926912723113612753981332431430088413157518660250207049459359765639845888374163608547688094215229375243871907124277497783132531157359790820975694159189828435650670007813195443404524677691089964552856493546292428190474091115192979262037361149524330396878945254538680277749675638364992839554787011408650986859722617988472964869146692337459992625155811784062619062789030006008053205592055430247184924499811026480704231542898145698498170869741671421997901722852879785108861677228044934586183218757577342080018740149840568467592295479606569697914982794570461081278755212732446213454610216802362978406885140414546903077804583151209503651647281071028529119702673335439821616990596119449051694108308301832689154550942125407007214615824482677019763357359024907533662427348704285793964920708752529226358912084177176063860556887801661952450329313758150737735841260726362148179259489475283600031576650255633485853179120355007896751765195428855895435618757857140762931107406558629877047875293382504764118414580091098521255327422707864199348298249038133731299104089668434978161811239622939461382805122697095699161718859554380951794723975254104492116759101024912351297317209401268146448787223919779990064773668709067210395517278668011128889240852786362667207097083934363028105638186093640225131475349890474781354284852387335400513579982364176096597833717033552427246418381591495021513830417824956812584021827109465333680018816769602628387739974838893248360454485766426981619253490832971313399983777562926994714645822176347656596841019005054672481781269123308382036333600470653874296641104382814644471231892851859753026100558743090860435509509610002802537167753221440173491687098839162772002503540537521788821916632915148465982281302014559433178565609643606511097806912529718762506279490500966031251987107765263583114631222652812791407628369160197755937702365998055566765262269768446150948840473890831980397322957801505985677988937245241120567118697757919203311692615067881464812758723221829315298255816212945099088828830256331192246251011349239340068368809977372260807235722310290791157535321582393409995087961878511919930293819898514155077097431357063072550687540136123364724617133192400299853025992251896377289216357300140358873636412687020738187926829628441933037614440290999766962353981974240563267261145658415007795463269486117810334878269308671915812955334051048934153395332293387130830524790699651700876452397914529386396738781083340395393110862887297938531029856468953397842925164834638134388584612266516778836063312689937918832626888463474383079858355591489184130287520359043636952307025923620161478228267823438434039964891706463006764158891144494204114174259572959090950635114220218826454691064927716324683959401581905484992605084478015656101842290443525419516680952597296761032185082652137246249874797961464450973896035796642830530253190981447529851261284670361935029847151357108025261620770931404161604210348981400109905942606991604417727477321755166131855189031929898028135670597206107641719110016235470399727559896654011486895551921653990904637701943516758095032009436867270757960022313565956077759701172706707076621485355004919745918854021724597809240272110233953036851257484667807949289528131632304977470783303504736300419843449162858003597215909378488824049976125936260932228955394956476722354814251069369952630048357283934829190045881511015703508596915174660919637022441823027850646685218033426927642181650936354856903404312089514888386398736129225961614047267068865967252900500138577942416043657696354127515883355078940433592380724311080901336274709740491149862093573717847160730856227334198179436620754687036608316998201103279207953176170555078401924788633914172318928972317786468534591586125191480641199929724057681493380395299371152242543950288115836227470019431908839967173953335513165666199535966658069586017948607525926950855946252433174013702514754447884855037882516798298109353648481398979390430493313977050789844708725742639697652777633942605730860407254916362242373515876449230657175175992926004723487484329150465551224823193311445528053638322863866456795681461864188610173362490199654117568741816293152738880449489141279831397818548307978172666432118919260203723284389302696946709502101146930310975723014376370089194997101187695089550064153596835673374230544808050664194651213183697417592884221744813657813745200090219290305521062122743162676245344643818936046155965992621428012237378734403580703190216106034462410747233769523312929007175442738545020878593740728877916714692943535024573994053161474488269816398197151481929751494997946986234845018503058100993920064511675155276843008946893010624858963622287577887181750419148072319794080602060204666848133280102638715645684498657234524992638111666201816341299185269408612213495111658249321701641127462736329484890793969928918098635884718754717194411207892787774932963077995962597836791157445302854794794914611756369250413592675411051929020446724013008485069293487088379397339413012497901256525919651105891049103893827341067565107229933268098086661262028688503994721668625355090850423402739623573128695597850206480420496983145767034370466569571200906466572918369917862717852737796294426457674804839490081552607160124749383052254963161215624741433008516821167769882210348467701076101419953491365698620811672019095166304356648444545773294112478538230816226307374114687044211114911302769114284209285613590828354003551227050818788176492196545446442992276245585736039523463678089028469100427412661020264575254397312159777874479902514114081777346100861205870486767145298111595253475105005967847230665109782732792178256047914721032412240471046389132644798363954342432431095491451175336472248107450675366444151358597390257379453442443405064033075556199511020290193196818740551306880862656095099264911482822645546513877097251464472309871752825825898780390975815118346706252032513063716946363031017311869430368794729469132332101084506988415033705836003505254805497463171917633118398243266296577110628484009300414888203931153711065042705410247113706084421032610468486399545933898594586502905459510633070887202851463616979707880399006093736828086273833222602145172898521839490853152906090945878527498074258555023283789099654154834723639277102033043505057973984122548766330052347794837785501809968079205622769476559021830609993133581405882641035174625431351371334835148688705452036503441681998759410411016751823421738530961235252939210684489445195034239720770776958197008426838696441300636114046611562503220019973181245239056019432468563452845997128729357024120401416152338119689819464676993633976261592730466402047143846149725436541956453874260484253157781504746095670145818978125641415881717964639308551400574444938851819093703147454199596215315609013388626760418693638267387855372950585934292890634846544001176816300569449040388263751068748051279384666538276338522536015685143323664770745985575325819790145964338470155881747205222291066317112315210445873501232917660620214982196126125520628249408646244656168880707362754069693674932638135531764574410315376590719853245156744147246412295747873011770022241754170333337979081709268642246371949470022322673806359434817902947722658434547427489531546848988139436109940911549760256624251502002848029880921630793097215102601109406278447133969656072289479773374780782832055038871408787349325375221606389881689829649301615814916419659898472420863830960583578037274601420544163145144601431853137387315466931506943310843102491654931877019541919030978325580863146002272384001504927252298338750674512810432914985067655374454638630752520541486800843365192331542953208090447589385245558996545714590825958977791597491264731230209398135972897978649814871076482470114458829380368119667354601740578264368081207852845152440290458343233572111285321740734123526380901983921030547172235132324386204972809059681016321994202506416299616552011467252973713148483303940717138161010322356843771974236008606012539198500705166967303284152856042858419959510164938914577519884441327682350746935644096593826725644135715844209675915407782380192632813790783009826545911797899271707568514828910166238882273086923552728996211880795988762290602867940961619120275177808498288246841053727838262019919561512049662687577996298184318413613322155773871160857500156433661316477776603077783617180790778567711901638568027265646716779130331119567079828023199363894365976261413707144710252759481743631163174054650588944162411228571162488220288789166509747261616269318704320032589098861492367031951020465292802929698925329229388989597197005322282099967118310946592508308265198898165309091241849043594521854360628696651194011854707914449943084928930436466364025805896743255621285133191644644396216322453861879832200285131624141708358584288827045815059652434376779092652452506079910118175467550574478834382719479304259581405000857669325186017069896291157540755833192189634998909610390956127864132471369751490951688568513257138494685368650345719125490599199383928672963941851632976987765702068098977976790976282756116553412477636914006092490048089966684241535090167512791328716460327936052180139313536338277826274914334531627789427330286861086331578247581469727184594606925134374105310051161794976062437414553258330852822345046543338860372961159533340432650204588212220268238666437899628425469291891308553855730355379477507458685705506440693970479190308862812717425126155132274705352188058173053036900452344175444128229061421586961361199641984147205317232187458469409227585573788894365780539765083543936647289551121042013936512339665813960172311149816139068700796695425343352873415550022274183584790695810117381788267465773690711326370978384813209246499362435640192712783831934224262464610221871089936748777339543737699367031622723043202257425241486971498363431021458236460117681539114869381610186116380455923882281776204377204380225757192445592043747813850962764378528807767434958511511904520928990988498427759868134504108238441184696788230023822537890259645767398921547601185840490396643903834950860848212992093870735104399046439957498044143000631918479910714217073497285690561142033241345476251433517248394398315229347440278274092065232467500911915135723295088038350673795955727604158009506846458331097645059972855913537427565753478685115163887599498177846335181680877772491450587084349905391682829528346667918426716499150692668422128239845014853232154516381624975049625293807788940382147968333967758949887059719327652474998479672267948552040763350234287956955207432083527989355780536445905658611214128236674330612835920734344690532502333272191117799241416223712812648062419632124674329570788953084613915243865761464626053069752351935643904737687178371492057176772305143481307414693843352527663101795789870859298008311843559462576811790052731649177160241233869262376756131412660525782763588960610152654760517207825008246132942830339682999767691505334818465911493207368914708451904944552192776670451875942254199713037126789181557780058687918378944252006735893696465110575618436156515407936050832223183629247045653273080379260813005673222170916496853920842751345935214424799910164690887030608848011216404044530106334993229276236196802784241997517768304913968858826088353581474545324559671680204525862934139401866496783534385331715169747303413256372006015903866126686423888981332628317072103939861955774956259551610152321721402794213200889219574290346546094903921371679253119232430945953552523571975946560575101190134439288198662160178276904837571159423064799347391717749194910651036593736713989071160289823884789570043362512131277827255179870004129177679603183874466962652507993745521267104350198117501106458570509128777731795865978238727694284698787483809709747246969661210388306046524062588478215381206442072142077694086360621169297286356471088829321084783779345648866438839659451277287114979360268579307947716645203830133768740077969465458160812756145632482111787429885344613276536042986220482710336043608783716603062376475426762479698139503763440884851219587605166579405172777396843365788492624056229082081462596251674325258027707251775573245816117277608206308994857641811137511865624802556104295023033368720851067970685011373280939842121405517587267445059996326565529401648151914328339864760446704586336761859983500282243228767723714799191657256981959277380974456490640631970034275748266359340831351997089957779376046714623538018040838599879667176840770542230282460389609115548580381056263705506866341311526627468137321534992585440477606864363868067912536175493309628545630421062014872103327724183432167561998913953299910292816022850145112191455711201876601094866586475338807252282545885513965840907083701435191872566990475630747567811264686450743989292254636577780104979386192616143237658526429963818502953822595962094393696251722587851459654537586081995420176407117659757226925631653011547269039038833054376835471031209416374785371569928536094685608690131504393257255650742299332964259044848084610540152452343863627483186744425695666104494714350860834217038400171697935093996228079018322960759882803123890348451734084838145891462865927726089602803333110916952521001362822923798872141332987700336848290523187859919162076076842369024964662928092965182827160444165808262270914908852530309369163048930792889166618097220010964311054908691604958975960425588909644352208062777247742448382870914037094778802108510916533012307814562208596798017469146041647686658565706852409969866080331264628026838464527412778057713411344635283784233057978519073695503581227969595108819694351712217922715244191295497659686922883639257382435904375452998809953098388139792920307911210456143459874154461575484420643756142671433864683465560557410353893738736682887572960621603583444979387597160649800052109107637416159172710357744090009680954956317733423058787759964146442201914490996410424838988250237203593466557060493932704712146494624126090045211226677252361292904948250861430129701257900501821283132728316487984010632101388279828871606015039137628077093833314066267131308068794195460874393220924485161220051184192128174794340361332851655939251869404063909329611284774922449353425601173739499167895097979871261263741833977882719056991967037216668068002654096162194576053843527765322424005688589955805167400420718322465894998962074099203244971742633321391617170611345565088821178619603618898830641581505939327757806830156033130300396714424863385214810721049733183231370186462906587249911077495346182192871567479801969666767127431997614444581265004383085754108101860165886115106167622390228515515482689631785471830984408151306253959531159505794771868023763569420202511683979241283219696393951459702422065791056608779580365139253355171912273860203292281401545581023170208874914091442654412818148865571535709648043476973123874187363830106188206919124147523803131166845128134088293976503784863651279187410026817972144114750390704776393442787009182902138192966153333275588466693179994062646595984118544403936651121501508616522972886074733755503649451349604023199283989510139637665605421110767503566638575491905904318618541573943172502620279606938005237827836208933398384111326925985704268075411732231868870385203010196677029868534028443257449945208394311452337165396718908724888930830573884342588548465840887208516381427130926277195566566759052392266336040975252471734905850179718128785360234304595491403275877702177133871097851776834511266442064159298411765862554710401872852396467768944420769117519850441854422226557772236841345234644234697143362130529589965185487586830769120386817099037836789854289888501202088449653167079895229611337754636843805713963764085995191362746748459978733245443852661807229345127607334833693926387719041848127036593855574464150221435616716854253504475003930369991834119359761000812391512100069809678133423225888237177001672332918517086854621213782395844283758349026452473098072725002701702080955461621368711859179306450864142936263269687334523099951836044387458831607649760078709930147911883947041710218033404801521351900489683575150339729722389875536684355947712316831044443564813842410915196344745819679248208028298933208504924050845777011872088259122575857053800016346684101005295795899022359023673946206054300195566883848697172993674815240272336151415340853836048769291479568308933596495415248201451052715056850288670860327366093776366934815968678134976487928931016875214659262859735352117302377434655194431319506885573822885236152074153137941803012895730077782465139159993002296539183773073498789792553758858077464871581350680032993615832679889607850264873317024034727672614741142250610117333275989451080798758905223089800893295840893548676757915296347530594167302836427676971812795916344156487971708341540529634013859845476516715142973163764454113238095448537221425849948237803144639941602698099649048404251376146558702834899989392057742622439320551159268089381678864141113177873821702315419159182812542625912443628212357529311961724893002762536022971264785669695904764313621224868618620400140876861860226948906916724470521683781796372516015322422706019608657196474753158791926197567193383123127736552120779345742330205560900608699375449722339209365430878959386766680791351385249268177109183960065822943111326405110138229339666417520226663919022651361081112924952947804918716077908253130110965444218292290628683889750262721003061974217896631267415405485659885946304210230667626525193741895758879526617757337311559584586599083303945404443091926000653264776489484241014037025392855138495962431093294781961352237779483233727421688618168911862307281735087054347560274268682478017388252456515893424200723529612095191945399604434853712684484706933441978360831407300340331956917801160963032450097429406634331110025224378502589195063405085136212902409510368618465868359570447836689842557817310761667907620754005165109228244447406141876587065886941064461097954048182755911991882561729169660071219018215330782876633582032480443788401795063904111243754610184289186235662498426651285998102964616004738582332172057059111605925967117797966030565507637123833732213043796703704851920133614055551769220810771821459365515360339128652176542422710575719959314234840921290818052523586966239540910939980743142938435228399815778377889333341320923670931460034477919538559324846175580792946260320060584399624507576072035731504589531010862194420399049748985275618376158789418975391880076485407280955367605458642902920628766921649533944107716345237983753003260259788809841267371174814068577506475734075366313486161330772880406332227684308834249876097383403160650465065582553422670875143860886644935690891298617292561316129134143472024218389988209049402147315998648870394597509792442928783361512112662435313070582075445554966451780435699143802479542669901363645473094200980882854944439353531106086329839772861555486242217921135715047691789602731453458540705391167117825151802189133488471394727299029027739316214561092635725354927812834690857799989357461716344238955443617876414343591378633330090483184634346248416376154872071957569791119654745583643364277499476343281466740134923413940593611596254438836920770136496537147824127612192690358757007159629831467827724462265173106219666247575696792965047231230064556566607567070849023056849632999469027820201612138614155480302615597025317994887596811733975279069988149570564408529291637141475363163626256501298206347669643953007594602793071845378650612864097153370897555012410833420916373041602357379178731163065345967009339678987865693911007182922240663966750366281971601991187536505872314899956304706409433136264287917624501928468290617886216192456413352375141111537207882975886817073984876877989218378232618116412163374495352899012405449483610785705445810428061703195896395707687872071842983774907050876954649457207718471465693836760283744676526964099221612671195139033394408766405471679885785451905488566382760386928484336366731040986368679139793950645795694734619743716765201703624897185241272676008859639491203907369897390880169031555983810091615340158737495278177884290280105335045812914432783014501940668372725091938540998876100152306008076421994067865353547038235084023568186245851525866051809534270038890249458934586446244387299358612450436789142888411303755991529878773689918352817571945992136453916698220011690233722499902511098781849440440421547093151341739136950827770281510468232740593682365393717004669146223608850609701839270193638035454459879777779421223600711219902636895654929698252551929394405429990381298923672053288313043777147950259234385767916645776869961462385504053434952971552951840094336680813773245829609475803557016511145557208975374466481303042086130070245597808184987556504740270117647457378147814143320693181068471493668234682563374505905664932086714796714467071081529306308095672855442577252344774899057963414070951710164364592837968591762001681941881989884541410122885401684270135342590777517307803466281206102558366366962717832175639170675519681274444510407780495867757864942305735672674696841065048156553258492741611669747812224255406422341850665498098175067891962241291044451616191061794150733859206799684387891454441124857526157586333258793407339098512419771327248914734940189700980609836854724996737582468223989049132005611201091811565862212017888412250233297522392100389036676571082238579316070889324285676646475999100444300591885838522148220502317529269260217660903191138687361966048611569711338456046598865329963620890219750556764783562697094466610201563443332316619481988722369588385507878717213820549640807669977694116735516667898215898582698115820228946200543386969511528622791782013071769386804125328326744497990126233122151213398140576094942817296917478563305806847346682800495497238094231501390300072886556733194373012914513324150239945594282508355223808399842221775224452421875076276177044088498734574632373770191926139411022250271435123219732374191125963247836454968993064361541722837161152627199855749099973522758249994013170179882920623572690123323131850354239322643953181601556257082062761519928808187983460425051035971656011381019221188754522695081589833854937821494167128958271109030601670313345946065843224144126837193253124333140220916343004400386053503067110252089889149318310714403412673985378392721712347374137094702150311271500517820317762954470768517180123189072766716759309578300934662519638730949276428496826685429258852201910822405469196665102853003131779082714993166876154309507404555764895411162680348210239506659261528355976359545574732858888963896954979266987061886569790394408947638326282099012153872267559133678295484754294541484636508092760185280579195108662135900513886126778386431113475915680259393982632180577642080711704106617021656861058965740270790342248505325676403308188090624140212426658678394173835212042339823285767891052380397735194004796219311233269628439009699556015977441677892683497877784650877896086032815054497986980978630083862222503597590779516434458776671378492883705285670157326613877977695555987822067897590484302725205770811844525789418869500591422917186328459460646742923806248756649302855410349267093145555089581666575041627549825930641771961415811637960544818687395520612764067807113075251828963482622057148603279894086335255994141347965936685556358313918441534229388991596376535712662179340260030679848304694222166249975149023296560115567371929019866918003185948408377554320328536922322357712906343383470496837859551958915597907611993388242640478995367136164780624189796566302650647851733129506268127747117716527982486627729168783579719940904233989377410371771602900591691416436178382931983727906696143775815497971961592471611506138482879410616761475785271310918260977084145654630420868749214086680739773005769257329033978412329442565644274578834797647961165395461084362499846176533559090275983590602515141896031130219778509470198178938616143328053444047544690626144940277324876836796028786346976283813736907145116915211087569742294709842530896617457649237653048835771369482439141577997723488545825865156166180552052443525340448268620983827896689687486432900101662652395708507711207788878578073260348596369634027842411388714692860826683613994760605645876906448611783996746965713312058244423723823091378342607870117938021805082513099609399043705581832166769997053103571539560052167978413545717761831024050775260387041168555255436702212902787577871054907000125172453524635392826527639873324803186565439130874163082534565676030521927744184672135939387504041408618970772942000005834086233973052683431962681677721933530135046025750508220900872688982363387431980193133970244412624992378699571509361537947032994990457179172854230932602686814683294298879052223998697853197969830756529035984744754723494603824366471905484744413219525308722518938945382513590263695831290268923701907582187684517072788629640726393988811744517498136850924645420143111448950202714181715834725281023099293825115537217149341365237591585612060147928818513840643140306254492234334667363368226290265847742819027007262314241900856288497861184060182894034862485818989208989281840295647859133944797835253288536177235705189179405600148065224945955616822737472506505585100169973455958166191721580512453787634501691893770140899461495973113324001743946408287683272680666190663579090437581748558014107171600823341758160445379430872078435081586130386099259915950985924748091618088340669082568147320771078496076072161761654333407629859286725302876911007925317769519954513877085402056506091166636671768452104794311483366330150308730729160368189355605847555903378199918478421690956288007986322356647202335657641971567429275754100993501770461151608315542857801611960718638343560700234436045794638909894468100746013267658347191933369684884669793895366668964585435543358283920239790961800937102615269688762355776229970853973792758237607387178685820823599272308079240373092065717772885209088009969999510796655558459600451392101065389069557813536118795649112713479658390504884439688579042857033208886661659588861364787165244491589996217864617654632167280979662309531809456591700122320825221454697365086520031925339033713581626462474909884141935406678588611237874826156768039669871088788195217268081392305070193274927930949526865677236746823027276820047070318193790359416403293885748374541997143453914986500984968347137527886074977075397347198783467824737994882715088333285301467836933291985854824975701098883925613547639837617349815607362430076188351049329709515120966410861329658085532151264614876477488332333598324840821149475194857719429082205696533390116503537138817620726738703278213805987258962442242604928882456044821942149614568905037007664418442661905872503543465401538025579247643105401723931946735488355769369507395213898703038898686153684244463763901263754168523895403252781416976630489442592404010986679933241689797739318355919612321224152806132248402825614008816729273808897974984518906977638102726729730765669517939392603924125744262844077521480615439139538173073397193350763122282983747965913033538785041903230746252474035027252032064538178269967956051011057247203823162857796103902573707481895984335854572536845505920092595913984677722157192449311071962612049140479291330087238495736039149023364202731614477185389486580804377360707883782693141965328283523446868966449749855807811178884028383379357661710963064482103653943596583021535963715537915276090539252155049510991907517138359254578837189632751851021280425443564933588297755350624178607060569814770678808568559637572520664923425712957596291459537355968760935377429705389878301493596756035926502778060525057616643811618670194923436567474072714391105261876432990307230743677055763998680288839034194875901791001696450330058147354341780478528129771643014226452946797885191528415395297136024353846443080692047096992585350549063158436731726499143994649177411118510578930407887677478932635072888619654607315129857683109735335715553809115279984713321066088156629634774983622938393336915624876829429251505751058788407741631782685621019843085994495754170032287869778466462999803772765116274929827184929423827692839047863826190421863376167796326024167567686221038133879397764252384034104903785745835064918823410419885541592395015373570129902086471065766685752241318550064742074524635460866180118970825832687141423778163567632834627422365574875634717764414976601527462441920309668578021932050787130959870350922442915681463282120897739809036377331667628147027265800814003014404649815626731354519210559273270942769325793898137519748254504733968545351412886281950833723796226066812549615087034154836666752341864913964885194338664943533201283029858272163038860085067571883355864559727099417786213552544963516287678552921778382562185085497149045124334630143717983993799336075694740838623488807894770747682749293377895311216362339104002901454775243493420115103757867928079690815780063138557779911755544921353404696752425815553776587164803549125481348083787257424853530650573276560789498372201882873104878032274441283242693035800686751999549543980626961841205889238565255003086348308711918579693756370754803611473611489660404015417923521645568390562763066101089449827827083201799748778966247675755274247535466400488769585767181897223229050620621732428985253847203749876634947710448965357139200867399704259201189483245463689852222268884325133191875803942777932442333010032402073586510029460314584379448337664037024229459079748227699906557139657295901635858767623235953034923222562746081451216701048402175845665896726814348543186710788763503087097704169123940274374149387376428821946303287270629547866098894458918695170048327158314783904535040246725829692770312698129788930998586022526634542139827182258580034011393576041338786192987495572307185402972189311289500902557163977565095957404257249919716445407377717897986008850014638211694838827151878584262439614906091235065688564834589794737919732825109650338197567162163113343592799064592715871814058085828897621531149353716923627321762573379198555495760147822122171214545573390510056750415200530248891999865363658334239695942806746838168633955160232436448377403690434891518846078750706700579739130380381551845995239228641465103126145965168110998992693370221759965065445740202382730026625693153332357160528355887866549626252994489932838978021733907880459813232181292480870598684153330798004195825685200872262976646204822620679439361034136648561257440132387261722728454652227669459210811307762707969966437651821131886139125629377384549932644129482568984127469844363241145157555409050239136636227019257154787894536390469990417305108994332517261386148851735448892171714758156681797053404530866547317448777899025361189766248868076318807393034652147757308624230820785844559111872161625899947917673406665632008032151873729633256075464949221909539905684795273862025961717696614420050577922030054784937444291173827980596493356555366436981544950818014593812209050633712790769267046741853497421388798971773201617867618182004467832517971730243765890989682439779017418227180166775581096189473406737451581391385085520488118584845775996499135173989632825495086949499966189442251509252485684869476037195372765735183385094776081497185333320446119626654068788112133182188993969508630097616715073210930509621959224087223749237118067714711677281808103747299869772533986501148096289686602586383817238330605957743104554806900524821995954941001033703833860022685181069393580516657243278242794461999446902643457610847854390599570149825557377356763186332138867767782141633808497498006074129765112222818355740763387337351491852236529781862743090565879965055449385212774653604503400375945943611473807499712937793440986622274567294784986182992746287081826253673056469927070367544835767639200452376029731205274631749295942481028928131171545753210863739510868390072760563101528893199973586774309757774507990009430847010560938973319459062601771658368843135005924916028448204564124889015227524649855664289247318164648780208310658272069745961878130905236951421838547592746870643497739414039610585427694064352920416810893125457704075690495712016932590805083594371842703548295181331200793316932032046459692869928452135055494442072577077024243935414199728635145272209074986721504154646252638517509577986558130359289594483186976895597873497471627821330159101726598605988020048364229617759088969357639446676258018535549623747060865506356457042953959389748368334109362927088878952885289352818684429104283918205603888223663459433136619302732886530849507123194605059972273934291076423633111091085276100141411980177659638606269063744466304016763179822206845713677403446220203366253038235216460346353011180031629486474362133324584212392372457620193865655785175544336881789484669249074121131520214350130157149984758495569355361171260144484085255040461880265630702275649648095104248866699598247905786084582103898654457823118106691314151045090237584042063766919350566872739712550579204077829024873115740808306117889496903922905975623388016997820601373577521434977532335751116040906095195686996107564434052610538608218217481748845367281230541396847866742678062516056413355024797900210613520946017404105835468592544998961383730118923282482076147530711303004723155670306477301840321858569193265850539686794157156375412125048455576054916699897253732735329127712699165555495678105675533323523048796035510305760918935410860771731709501574512657720526698973401685719521704128865403250877846463765152611983439722226532921408268045077399201843942805713711117892892605563295034993861308022879575478456331480603666166432801887368589660197137368361783714039693663699427731218019290094525981056762625144475344162977683413953782158151671067541669156914169277414792333230793012536804373308289006025343700457716551619754285200879798345151285222871658184688484955876930309189112135565956876330706369333596060156815411440146464501111535143557413658941897330787946253559821555491401203090827726118206900516209695158092885780771244875785295887644511865683448033360545870207371472217501550775879168872591663326531737337205749031292973081015402034719436651306291455798982212139824675769636953543468408725118761190890015208683406768729092709737464443433133090908905727211316062092267073300129268137758188057237098780971059762303461432250130998037458014027485081993713393327519715953002772604540003535392317555065625597361722389474994296422516715370409308562609131038741643838823644140960449021869302615442449801156589866377254901579454832393568388671475463323554989453477187978023156219706271686691091119176676626486921366987613044450344646144520746833204790068276157285044508673003002094937769073323248787303719896743613679677108128423664717243853539926671107166403866508515358759802392453061574086668335947495918416230533144896444608211929537681131483812053793970529634423171262675720621742148568091552947120482774351065321797080613035238531842049858285482844608954133130502966643581947483176453845206803146226189694804185575150694936830809662368032322380493649051387150000794404704352743667055733869180315765027011869488287240813737732222870949690195410396135169415292366651154044641244095216441317089968464523895442217900476071622141540278128516777159842975628310771544125964597105298808338413979005573489007633131485848439103816904939327235951570812718586839686825022820410772752232363054312355583988171633616652813362216758703519272617898668642317682746173191715142372342992999835891625471527008675354058529588478429890324049053308611944181977063455154129344281336009305091552396265211018996146566770924003499775042610358150685822022296780891053417564825821354489753628600434150445167636027011285440050627018349473495668950161451940147382205444151474373987285861533347580883579713247124197822065818213444614762288764712882199220255811309216079721557411879805402627842403749096160411028621690572477736347416836848236057406862428814224571416403855988073373254638703362703095363116294812189578314878931577816793666254141228745269358804546777310114385601184701290850345410324271011536938634817720312489851994019686683284035823010310537611008086157171486946031221650770216156966346386250316258428335132193347958746360350410304906807105288726459799342553381071054837203365206326070085371211574609467348075599027819089349866524982087251518388639637234462429582172281891689687932570604220207029138664440065101615961068735569811333943104970233094816513813373340491039754757140301353418903858852437112989585976995189185163895583795474384137854786033096967300192786954530380912164992852852791177942514206983068920195616570321498143685719527895689154983318068241236915735139532620171787609972021383386311365111979229563690123906286749953866368154195053246380854593432658706231027453835617388171383646078068714893790981814384807171089189867129511835819651080278659611381322313529565904230974805030169578624916567211710210222989699887651220096774847611913943678181819579252784693911440438015203447613708467183221133216436920956850334316330164704781789776394124429809671418879475767635847113050518790565879251360446512564990105449977837115757248296590879226924957610233368123181431573920175079441016550727604824151113453390755006389311738812805373255217600293098899702815708029335571908232894973631684770852611144393587538486306106284453899843740901467819441317390265571464470502789290594324829102811248964637964351523729747325230075250735051538729771877380871916810639261260356010181167440201179876590132166382480027188603761433665055628806470653036549958166615394504888532086443358059285595012419023005436596761003314658993686135665841478894090529651865022042546031586289916156699371002369279052823241713327920108932494720294515785749802032119523470842858342924807904473764384079792176817544988721422194427415940780410215146207958814382369139353090483253771471724164106225682124727354871417121117658126573627897622197639452144900683576166777150526823039215022839293395247114976350955406960627386276498283652312353553042922025477146838366179622735505133628488278126483594047628249966264664159368061105179534786126424206767027816309077563997353234482776203116491095965706740361290878850571543458819892527321425692734336865492607756640930731955644533171129570510263151475460247342978089666449731908067641401923643563494717533380767795900611279432793331755045423256609974187324081651749985384606032589948180775393745760874404889915252616672151874672664153911020128894293866937644197791333996877490767449008844637579578382414554185882440940048766418243430957501903437928660704413236285698379812212459738336401194107437747501427860648435712562210963260982401897874512368453567907096839146059069514433106609667831768304814525787122818363352468167329707238303775843262614147179540617256761682784933661749774189217784911427799703670717155441536902735933001250555618140183603306962232058634981479965679319459026586786936092990021879024235354594193039514453926779022352121049799018846941917405508262228216765507196591299937242333119120138100511653382955393094284360363459479096415627011197735863416042902573636883053188218343843756183843109104626848551891232113276195737244401055531682878551225193350954709078695120595333645897564236589619708075846632376734379998417953580866849123162757109704436195919028011448383999405599227553838457035449589832771579250534020878013313847158075362052620435799061140121675964076856638191987438485126023406593474514576072026536321334387871784328592125422998539197270491152390748543067562899381492592264208796325130675001034361406797301156938636884156914955039919176315176360069076839321618291498856470819360950151332616277897458794106515625316126547209386386778851808110263402713349103517716144539142360665871266874462731705660339545031769533379702005710811944469782177988139334636644376322637278975395001204274703593633873333377565221425234943452826791845590025097173584246113808729416548528930008969160760954502578721535648486247478204226982733225536764903839093099449666692038509082732248758472023512881219102116385086799714281341428632576270264289992922837026163291200055179780384267225853811989577792502893839294893995360446175698054312906949273200946204854217142594035638636322666644523369803074154531316394229382802538942566565303877620259397393599702897815286207554845818642269393640778920552844644543808549586347159253978660503349307488935343547676775163789373964717961582287895476017319680442200829328841914982079884435042152616982257361655241105194303414515170475621661780047257769560553033199350101973340402940511255344987727349670231037291687460277421670022949023263468336481189972049405947305917263604142371362248690536334588355936722955062912727764032122151971176882723451832776581219170887378377146400614308900789970210675060172067321660008714879676116929873680166583867326049429079311164256791863593065392455020149324619378868230009285224448610215795855317828687938386336409654273127955477502968296442868785204619961122359649549454843960062063382500957646292390102326601347869720198847915036311836307426255474808990246304610348157645161669184504441772790832911739845746611920254279655970431063542144249015994392631585407463373277533159113098717292979207918400099396287616187821901135971076537662633362524149292420551019590325556877759173048146687765406246054724272829623365562684886476537899176468753685743473594569116778883725507042228868126349797479088876434151185431689843351928941774717620742669063040812044681478360809057002695981033745248918619210954272458862756069560208133667885608835646185274299269497170462696888186960121996247049837244959250717221988386859210474450241324547648790638094329613612527611193358700938803460519095429694503186481062515254573541413500315489348361983064814481308128913302076889209508074812598513158086127445352815891109522543044325641867868287129714825729442162966077114396314091453269632150171180146560046798675230974411364789840940858523705730778906281678308861769765472821754665674502583416460000776767569391919968034281066955178035213038296067166077822794096231262419723709500049918990538587251115483543865577428974107424794052637606443130939222676152498439636158886181106346430274464281398417374768493464345346484900106946350090455302154484755096547344502359147809967689195949076784749563022862274940001837927111693376726622242892895555971940265294689387231203548504005928925133840190030986501284958674253920758769492817566452742379329579786168587174163079846647873186515115845825011931538639552016744909309968661328011920058257307841695933327613375148104606724786289494463916424743341235489386758950374011909053190584587702364567772613035207711368024266909919638272909210260335680902850186373796609370560167324261522400297318281499609249154580001110007638916046058383760988969935431364790861745760077019847467771572701861223510034654644472333155036860622210468101311538710710366198027858249377194435375129302339819390857196456819009387285185678878376702308377657642340763162592535127168075065825536106915919166744237383070143176630865873833180374584926396928806447799408294722929573875804773745413270330516490432893526505581608327487340913627124344392050869708930698057823126956785320208011277942131802060702643809160571610464471625520439359986931188843109768594311143742610874785993015680196727238259619754582566963886981146116329450964288080717486596644696126668646900809357822045315953895412406536899920396260369398240060519005440623730937236002190191421595361979439801892576991910958195502482873823768560858774793951055006869807694782577395749715970531813729821715816679431974299961718132789211829006604761979667803875622327794959851663687831879189984878671273219301148047494449108022500232154704571855799418255478290740699387850818132449759100365069439014899918119679479692713547363401942815374841649544348175717928599066193232650531803509282684485440078480060266396978304513223813712686116262726729456100930365856038747077421744781698327223885283438381701579092485884143418204853958257397043972465717699295960665099949525318596627004130988607481269072070163080312745837701528520029108681437442456109425806739408811564812886104249671922866012863680905560034758540882643075229003275689209676292756462077173118359250021616374500202359186974099324456239609488826882986457701842465300268732100823154998016029913326479129616843244435673381015979670926320387406379952737543242965855726962492238843420372130483669601793784287042094213180217174101260684958630805963620122779396385383735621075294629250505230882876686224949808478112503678179891319086714656287480852527958914142184375769247024599127251841724572795258713966145803205546362630915582237589777252544677189113702108887708927937967922110493394112928989182689622516756348109209237203887391268526365678262199398317525972237817434189974050572875935125825256186328344541917680259661010734007776456810756799370860178885726143506836112183801707338868380357087251633967352091223777990336008413485035852076954718660504066836591893463368479601911680579067928961338426368192998688702851218258512848465528218558690191557481932029641091092292246064467390256118839566020965031245268780909833373885621107177019821474934849784370329368563994383105996165173318651790127727547511086366314949281101368356822318864394027196177852343104646254394987633718540568618537983757764833279070590575431489491349558855954400717338680777558023395085093438191229229667160072753880204640620265878559511076411505868994904252233016144452355442998114539732476027879828686083741392794973871055218719979545556455339335708100692336324672384463094176005234584577706684859582259403034849009858309377027993802907444047917168497502798394902074938503929198155816797794388890547291924643638819422564765319429397484517815832083235272613711108686218524592506616545685767789642545027607247303591926987430724270403187235772084005459230779642395819038080229319264390319933193448625480347229317571766039535853160600310618935977904371216041702938948284173686662539122160717685325247436813036314506040339668867589436272042635522878904629520564646508664820062807602055869878004429762973840282124958659012823038726932350969007949274814993753245535091027734443653540401192398526869853865906396977382528995172364372878236977683072722760973862020005741888657193738343093115507725264307493333692904319646066478912000125588459795885084649554795220864386285948472038850385509278802498434496319686720979862866349298438545746591494504126158858821849763937616766663260550320801917592518055980161675660896010484179683785251468269894816992420661752143654602561649506052989962262017926900670247632754413904594452623710176400983002549568404354408526295663093454665792987236634194371679991524595130651352231273489305103519091321557304103770222194694783839385978240380444596234171466631219102623173689053858406235756223904706816568629613389519825482825829895780541570581804579235746864378427703103065720415182113259238757831655545103278569281932928459690078211939948058164290310604803433624930249764371981127061181672983957404844097495835382826646572910199989573075585773480894854997941959651271240691318544632341602701330373748449155121417268411917524426787488304540438388495490851275381431129548202436227864327082506090035084543111938523355870922784017922587379455107452093398674070987992657209984076424544359219995207979158151269425833240576591171423994683009437155760131270906480171433875841738986304348936963252338647480576204285702630775660203097228293046606727389597336449463380261526500204217592694272526301297746050013795049080443872027305177726530320271411627533146308959104552266453723821008252881641314085756343846651353189619237654121108273586456789249392404698102603511371941939487292543900041870681763669139233839059708524194416846055511012155328425951777437476058588606995541986269251527681968966075962465612786851241633324294536090707916239967568463137664107356154116325307294331586249881609240037781239840827251407259184112593025854245154892986721376631455301438645350927577109889967092620208001626865672959582777000240383392008970381066002372275681201009168384253797278914240094178848616158216938005794179022820089080702449830043441581568915432471406425089190567519630777878264889112982865408639032480662730518392543329701499161025165776612899149680935181180288604165533062325650443304469003634398605896536086045287057942184092365294369938188694761457780175068720739275506744267978079450383787292834670567112933334373776454695740964194344928989538035743321026929814428487365677182140594694083436914633864481577214537026819225019773935238958537557597784415295192118856673591775810980227176578876733000692917039050180108777268638447388648958120395386599711031525622546174502256920821666833054368269883218283234103603359821158712266096396072762469574639633865997160766605043938069945945506838261344264733452284732630422376784853835003615378624598735983694527316200185739000704766948233908912861895881105577221628836190749280635347527335907245416313826194410153725321799985804627709032962497122916192454179785928255919785078468654139198824799773998335410291672638812147020185878992430138385807588108399112949484673332129990331008134557927384477914052953536512904379189942411215177515043192356944563543710991869714908502739828369449215017853909175300844596703593395601503631665467939231689401192665435561720082878986951292612583865298805742321465333167698137569801172313613038592365743278327169306462056877326577856050869569899193927440332288300418203837015380147850928224418193284219271641928787341396520982741860664610536606658268839238414847864735670456380260995792913969931355141800980189792264870936779678075597982199018041458994423535473108541457090266141271376182765007522164113968695714729772614938785659955259978750689217018356770813636406298134276926322653055329712647214532615981213260436847263276928557912138060680360170591022101962777728633624458876543912054189796888693811961806173425101227713892883565500451969007030606289947581023372622589456596227274812881466556920929556471235431004465752134437830294788042358382648943913425246480510769507576114136837500045429540011799130920039973188015666829894574469279395136933423052718471321841508732828483194645800900278188591700089089270194305001762567545987219768700860878643977566283296241246026806099565286267528037479980652139444533666289869023531959670945264519056305839492553304016321199052110915720256099740526181957751479339730164711032231589713529422659084762097341333628228095528247247686786147404987277586338762048450179249413386833336788855453284932239248089150713191917434317910653233161460646426124388908756274868913291356760188075052950700400697954337015240767049198059813272942317945734379437593009298121122061052425409092296219598914352427410922829320393466675641496840024664287476371154478685623536214134403471910445481909700186403762725161187123445630643520483104250922661702131755229599858565683057823217355118682856468492152605332837357037665547295288387291692474192570483979665142458379129550772236126740800238025778084953460395514846761258302281437051835473381199665042889636428801690022399245190426645476828540935350007769773847469731301256732496330923533857293153032464588981324556848456256077753741635319206744416504457758148454942993910695892466317358166784682474730507898671696040931868690267148712933866447262662781305678140680497347242981680571853453348646494840955425006963009208982994063927252636851184167001456656294843535711559374575362940311494415338046428780932148842467448635627193884081924962857086554065129556788691761089462748641419263564182565050658344020102247779888764728818143041362647706745804073897648191190939163010766654454267753331088324086767258200869307575468041118810930273165630201167938764470824180735395462657334159260478466620246067713700845508745174366369130279432408363080810882235929586472983423714381116520446884840588079955541047121389848502878935573000320119262602031280517421150114600690220678730008509188762953400056405331133779883110985648106597117399297581166783509473873703547836238843599493768253516664895819474733538218517747646359535646110551289488553878037313361074997590713482960128848548700625919849944498200267338686008820142402592768902226838026395261763509239163027619948629967733143815015025839312451438144827535442456865260582534774185934093477843698424165080151958206086710449978048292424450256322255433365301796281316696503909074060206376976337192939216238316073232352158907347701436248223316253344499271410290883733251497429442181585152216136788614413460581564844250203256915895296824638742615456516157355550639399310078411970246366025409139999281152354812159323307955963999071696152572147782586151709921176227504070042585099373512340438899924322091200683389601733029124065465172222371987642292335913276969861081492531988539730548206596918533112932088734978794528668545065108096022697429123407231769494088752611858058885270038846875216696193135497343569471285489097072183830002216157242255875168413756182268209824223431851568886691564212999958999981089925963887015077675669986279627653841686285780006093499392569672369236639046958067704581413645355395298067804525084291602785664135597173266691405724573633181107590465915720794301048001838595239512923659670729502392954886229963530500115861535967327871335206750059129827382310019191720679204285711595625475559935822553026410691456403407160184009785266520077716277110719199375040561734136324928966455071257724861152801176571552110818975374885270020296381245414546472777841421391118624798913020815965881904124320444893541584851561647118088742094084291513800386743525131664571801135609077816730132102570489767959041012776212114037771445311586977414878903141884102984744610507853333823214273629561097410482264769065450234943397726522336898713038835589414184506807724469937701148496291414060225698477398763722341983345724730577534782429267073202090372202798920604488174561421743654167582121353422798436353516285854083928299124023440479704405337042766292649223459570657338773150313793110786747621339661099538829888963043443365487164281909690778620348862341089066121310467815622208213498941190818518159305257800484943814180387808892941251909962274988404231465155465307234608526747973877787173059917082761469444832342425648004300551305030111621766369260312289034927648610409889776134533308362500189063369111877549585522319065874045123017383718091580204752714684399559851942883815138226366071925130003464862381080928032014900953212197238377844297759717760743353605535514162931513714279842458844076650866732605105097416512056553576319746111181658356316596214812988044954800612052401101264635700649005435585937939047689740639326156626558724328342152885579771743939665844289255061827191672279417563486091582282900279154199579118949313863465584321726102042911741676937669767960345114551615676703768236491314528736688492620518170821876960076965080113642354039064625027071254959822286778362344186053137326267272022566930149878666376830794365358362605920923835859421067242034798507648498738343361027262503094637130257782803716140334712727991268008891337836857877315807168594563782892963717631079720455287770509014424896745970747687192724864909631922838858006749030729712084898618366910139736379839881648599448644069989409416924502851738646376802361942227197449490513980765891401783329680246497040075173244761076562064613294510555717964368023317314011602673340441428619184156658469748336525394396356094653115886732302563089572789237230907185270601561600535379303187237775507475261742974392324859683509727467883801532164018885463599093619562707618870911233439887381082268065589094146611381222930224939481183254885129533127691326563189456003976389003499679111465223796085878571207595921203974923782094575231559936162690976488330026527533276056699684309788684041268730427096948907105964662358259938206743638555976563142306904872894011466575411089378554392022815433314498818322467515514103086591403773619537547398974150566859163210402884200631500804506495092185106541547231465849474597184968609090235454540441316333309748822984580995702030741559247791826430409349252813672897663020591168114867225325373804735970418071731641280898645595408559527256929610227884801576735903643059697914670755664673508521413222393763126334651107288674658842822081548874731113193184718311071152324765311458629102615293979256531190538621665099611411564982906032609578523386541895726465714039522037749293307854375072923041523709038708622379169401404906434551568794843711107109255904431123063266070402523255268323770926481770940258729123380369053524404079769527553058739241620412877845406080289940103851579143153778276649507853522415238103503740505853710534084078265419844182778739796612051443845468656373785329641978548113165385714702598208963794626072993248425170175227898928133350469852313017415758644559588128046351506809899591946975763540748146316845217844842100126446485548689377093431187828197203721396279548950555851661524559793699283792952116822248845046386748406530250595141719385955561247965662646545786663879429049934020168408990604273105186943175071799358317304988256749139869464999356686676349819255973884929744431341310916165729681573167345364572002299522210349952772803515421439029441989861697955881691734810628237235801488843096592457970723583151482939515383354502579854947280791514067257246421215234813605110191526103479978421550721213851239382791608538687975055628949729348272708837543247470123487374786542398094290891796148578387895410636289969362363170059533126503404209827346556246882025694263914235707647935701699234593703338240696668679096860809394866362538733028996236837224081079584268085446664966366527943675694523469599694000262984470767582083103972793633168350245872891959022713605732086151033180822003067093728931940677094808770428210774117441253312217128472103079354565792659204020688439458193998996669769806452905584558965592172454935340477097236400372912783913897208550015148708308812944660215699782672176822302722490067180109627793042133309641212330947271844459088749533927248917955699295988530143759425090210401024341675302242821889986830461243452332838263346850120172691724258491242792537233457489960732503143029386266709285877687360332498977350742418000181743245861313680289382003812257697088414558658010620613949348190279458440889762465434941145680648351737341685890679282230460937234030434503264261156423433049936778228155951283706872440316252741187280655675858585484161072225002617190434914094158082346072270288789751796002410455720495254282257859786425067202321457350983729621090053556132750684253089482518576813331341526302327591053821221639041983917612720955667693394250160226987304071766991020803416171727133623321461066016774110159440040414112244590001039387010244300553900266670037747904176754315411774319193542079444220525345640457965236136085497885038768412187625035996830120715773895634350025676614265300115377856145951410317037482539024788400841968138672425311486031300455891622348054146232003229068781918812342513818499948952036977830406347577032338268156633944885235846102364628417835258112445949006117239180310968975554138817342935389115775054015791353323932305118677667806735700543855201272151490529506723675441715842588005101126721577326772245121333857700913005841329454345212570064226338165866570719770997290905381844021033109743144865170529931186807172637450269744822262972562651153195747691026053000450858820458904198995800015412395400725326597811279387551501398228675731106258795185142510204345521312800122224933731344937587359847872689864043083735310084891625145630571146928695820323669194150099227710029579082393368724847274176895548343010854287992184442324976225138769984468826952627944099346632698487245205531892473486075056285275074413498406220940459347352216353484709142006263910858163934893925862265896320559513955907406167885603877571557166968219416488171023730941771434946820554730556001480665972068150526328538113203722895191151453639931333139018932363550266489039662555481752172731405721880966415284253019106748916364637763356101255088096364850552930448137720163724850650043888770107437583084116228526411170510741766512231584272840050890767096016945388257553677755063884227767427429358958080044328179900125382349024660027708137235185859084555933554340113142551962181414854231376132069193651101032381391114509564315983338030124630209373029058610052054807334417519539213495974397893666883589216788739904701109199329757530126023882283472458956275788610815777653935759594646338740926064781152974257285063279137478925822142743887305274457661324015189684989724312071338548987521807429341518051862855731838165832616683163253304731073844546772856771680761422787933163892829209451022117892605132625125987348244898526030934997737687754888465404627334742351959957087669675898014143432467864164304796897728131174962743182680756251350696521602723902042051169585090855385221713773027651732911133055917614734300735912077609983413553955638008965750800586938918962636212496935957669022019251199978432365295522593104953840325199973016223532196697808216187268335723624288952085684293845827728748055089298267934214768829434256063458712345858557014462039228056448768191318718422647595337492002295684511900714951013020515377454729498073490493405078352545901253573223357325480221812154652619963666473813234120404894940996558157966035372117766912903018392605495297943310737105833905337679657046703113607485464231400691246034260244052913536475900056314818853710935478292611328826627194658196128407106998548779613259252520660085712929974608191876884313519209893153333494015242479277374664894230584019678800706515501176559169477574992873409863151482926533247970694984124547423554070976353658472935080629937356658755994971801815099688830061946300076325104238562648798336697293093532798250382143987849429313550432993717440775734944832660322703433472297890887347841573937656286617773899647151836762786134220069627711366981034900785818520787093765413914565350802274384873869722088908835173347057298008412277161467986206513515009750904678570845081868446012577840739324816507423087316356117216936647366083899122804491748438389289895387046466971517435995325490992679162453129331237956805864553535993524712976055062670857342653757751071408136920000776558161839062026835059135879982613324745892891186103675585705252604515499520209345499864709402277896513252705130511092763208173765834588462997364002939206162380762166513586061704310977170585405084710599057706793226126410492314552509262596701895264276232387938346574031745821689544637179145234036747728527137473537771475929059946842610442871752918553743680177066282474909409487429869527315932934355566796779460757304735213568720006816414295610235906000823110138575492569135312726143987332340846981159751521189830779387638601419887776935423419673004455174126846428069213687527830201598526188687346848304615930356800379879443668534927427185613982266197982340049135288141972741639459547870936980547769717644990552668840207885509425422271320121361867382393984368772580312928978506527920755934370360570673591322264001913902357894310278864399763501362470419956317391386024078466962566076234549407476362713344027823637540524454023805931584247661626262014719594790493449349550367572942614433726440667573439952945493505169627782742471561863954781034699746721988461354716101861365025965420705760097502806510254814344925037321506965280359875366986922691945221220234677453152727819136198677238862338755646140721747430035053715488303269390684586299219528895406017933478569452629977032408849127416606615790648003494952559354145788993463156948944534419655910821976479741134670651249507093853380488424939738222026908475954571844413061957938358256100129145767162882815061747160951629432349923378662528898557679157325020357758009135684449026502004503364969447619403729827728723029504264533273184602798242343041267900469091328164978152053540774500077120630500605845208667524875434047589634027110310137240346871795499417026752470402892544937740397304527125930825555970934408196311982022347733554616226489339172487694356720598251280521876928887342326320703876346405786987179437981708498727115348434583296299050689145976329422736128195280240686311520085372768140134856328269694757756597892838801830340329563305550366379945366825057281012797138147750315596344880192464557650829798610190996384833233238792884356632148713716477960380192948989188049542174794872719394288782950296330305832633689266889732117302313017428169880955826990926059896777505377813399732650597922779648142918609324419897195582254473834692574138530414457744128624668659746803458089313595798247714010842339949194220009736128938262518358378223674218022857950873172581488179003603611834906497497034267466797993565642335534607482274207439134275027550858291512014027214363124698586260392856044099358672783569451831726426697595522702497736667966678369831012360806236196932813379634673001483647926539583987166072370972492775116262461113962775123050024793830354208058016941888493203102548412747857007501007943646681562546891332901523977614845763713326810648741674808264090592500711212424260937510947089825393647760744123500842301480156427801463581272781670622294644621178523457204938936794505330405529436034396361169789104807533256773803559997148849123781234928442595055653492552164305405677691381501759027364090529692548795412030681604972682946491216822224138995129779168587308632684505814073418713780293017745768431974995553206014025408236408977769230151914822120101317689128397085636241036647376160773560968863270525825002745694543968826895723652792508463448347021778035662085546848663336010579255548953709850244491324254617360466459059638992417378556597210080242346880772495359570548227935117389119507119108932489013979558254578074800238374657074683208398699065383905917565368562496304069681026800194446932433885458476545489611157648886102897830799483983826550776744296421412372165375602580565516811236802576558954126355678109387715551529825971161702938857991332159146123562233447812953564181195523295225806878572010311770326325216346149149806017688048021383251541343898081682833373242287827436851477326556892084037141463649006029681011543373083082434070480286784884698543052647648475140306661849158427371213853877902904800256018060472693183845986187525348908433908732439292841140635387525999715106522587120975403104078458272746163458874135032992935563458784470685889402838209003684675084531410096895918653146725589120136555999898538729289557073366538618516969225563751213645042182336581236902949154484601083191039020268938073592399844401531195790747704844212223486739818860936033426490559237324917595984136341864465035960532777340856633362978051565898633869920417809499699145425004806732989153991525031363176561892787021691896121104271733190960362158502479458035800809461342002694800416204749236218752228952027500253267187944768565896498195829421571970294724325064420288831216160680048766683965579196061982088208572426979312680246098143863698304560210101423969039459686750590290420976204386323237640352409964980361895743925857406526250450226834357838343081381700170983867172813940020818890214069081717587963920771532071669916783035419375319973629807136709221134355480897743178388909337593201007038317272365010543095240499569377634542813358291035590838090280233919068509758271032936959867075341396038741590596174148517560454447248626120664060648610344289702364601212494884615151797552051138051691026799733594300473368487216716102681986064399460292930346668861641612036813673112287455628505177182883107266409000368745184268393555528117894940601310696483942773887742688035478340563875345900027449220440864341771205446359585847514230902230024374626474236330034780394870485581524108288274051598111650993300291234622402077325159180835846331846896539371202764137438385669757479605167966036429782588381571078950792289122681578618587173877652316711394701483199296495859872935827420829525103276918256473851713495263617386354601744371307123527326874800565163552767964011449329324591154544943817118577851022726644987132793344793831642461106922797115518528509917379223628542889822466710490706683266153231338583887213813130190448585211558877307447459789591796839008032163352944672405781654254276772064340380615111882110243127219724195575262317557881668212431724815386461509775630142194244469909646731544587140485960851118029269986390984702976069419991271146199618772743324174920648185341969429436862788440956952460039639229805177105828423084539815022932558179715836001411502423164436192171893114315179960822112621511391615593953862829490062399654529981608391006662231134630438541504399372054348010521965331799207575633853685368884247207516115833225522872100684472368469728571866336977075823197336032141689056114769641981810515910594768944650981108003960592626992220131134819448408077717962237048046278075024128386580680018556027418896037669175873002871237849407767935618452737253887697377675706522319377644814152827952708620053062835840144128896434741606509304838830611407299410680386280374945090876684513083154226112432672391496699111702514031037140271402829678268495076979372217709835358586424401103302327139285650661066060011525102792195337578013851102812280155629285948092675136417496680253406159781673340468341188769679379733694975618746829813859886348787177909058223333868267272851777916007801055385704127016426926221464397507097971559776690567584970378781881998545339256338221582382706015844794451499579048005325692158372885829346731178214809856135710604951948253957191614655312633394174678820449282891665086333639880237013559910889328006890188842950399491518951115313434484598529282893565884230098795454862309504761582422438360600071029028153341072868120778043953930276420176844344046833776384133870301170266626952480225625570745971570267853674426146417078182682461576084228515554647984728358693185576919449590090004598660024396346026329896795398236073987897594521436424700158190538826404871607124998978246325932400899746466075658712834813343151006672851269163765671456668598043082748743321682716145037300220249925568479696003415163654742635079180217298610116358236008692943664996862796370080090638930732020293571638479167168122434319903819514787688166442844430821654974387605189024222200264998289317696384429185857344038302224214689081687159661394702057940018262297057380664280063497374177192183779717151734610791990129007941808531695069268649300263009924646096229324897035455287106360812122983775681258491558875387441079837516186627354781857378031174453588145534328417524652610067894502888223183241447395721650731710218079248694486887937670264012475216269353755173929274576777563372617525279490854427227649727370046618973516953268588249539250873709006474081517423454053176107524635745630247108424216549270257142420016734947483651210204148116884402589428127548426323934718025178913208024289769941426805369420290950265173478444553380725899457149350086011983615291963842795876337366145358981537271776404576580913047256344786133300005279104112697916317399704174492738078924930446405690667125582737752862210795686768395778374217658437171102449292224059641403384469857543429146328845221558979461552990215529067881656291615492498942727806129536033597204708211093819826839938161280068178436458955681174490678794227764043999972399826068287323993646296601513105193367696654415659638691558722362292303288615546533241575995170084231458830232240387258945775684497799161351149660286059290270832716028096520354627051620304015543563385254993306332389136658643970484454990157796561709352268255774303157026220783998998506412173483629156520008935424059586462236008776425644911834946258290112386201056989074768910968507702373395269302380696266502876726407686527729658709945666064034406679571351213509733222037594958366372483503189188352419471903447790688700992095306385471647838895144008327732817397833251593292004948901648264117582511499038622755956704502292050250096023024756972008795167270948638598473257687191573761685428660758654369618594710572100200732845884980641911528947046588428718733529511710039991312892487223730961225878969755696514567336580963680750848476810457354682032829014811032895734331749244739514011650869214439356717358508454608329770601607177684777805450457017067305719066370265614892922269644980143619105256414215307194532100027874205386659560182769950034067011907926821602679418027581219111353400752774380507823335000768634929244974991963750311951326175037287997598427572311577844643754270078421063298471179157806255503775380567409252378190427310568526645962675594080397304971488630295987338482761594802583352676402949141319164466295630931958120619446782017590629615344339178036398347197414010631991251264759615505016887155678219178709396998300127219157817538088071664283369885740276068778867028551448872849698513305636304721024665756980127734571995178498184450149355149799570843273496470760755279949807859948888653998226534396393845568858662154052082016384805055452922527619179642368877226041808866958231565436965302992476350835249583158571717842597832048322735914340578140189724909950703603128794678257190183218179449049829488537774190604042437592584628002025421022826396209498835035311575368413323712623965317095810783092858536856401770921782262156982512588861430645603673783371340744874372992250442504907979738950779584069079359896278449087325937463971683570372531758661783770884635023418777342202602399153361867691463736766733937096138649834270428249748521219946656651377344957988972928827431107250299137259422216460491612105501446826235366009324162799132550204236252076904295636424839055797233473504197652153423438486870746667071457522407135429580524051983650176378609268463478117567759886050812599466083773735609538429581088688549604499867711229245817335173793728753515144140890261945755480410025327795967160615615649430402355923320841356621060910550341031596066123406286603006929201795250498757436705034641847752507951294101817862633891699034353233144834100700846010723242982627788042602636333661613666924122703654635235334264183108359631038713385035828448103800485676696038981308563697826227852837943088993092823388275415976568711087851512899673531374460028051272206180509980303129017692441934020325583511720286556790232001705995227625475440917663949786690244997595252232283469987772804780880406296562622812904808524112301034219697663394052665308015285338155553843905924712256746326743403529253281022079617705930722522252044125836890723118623398117507035903541257632200142538106987905520583796406301770916891561579046677968673950100439489267058991630000300835170684903400182207852262069521781636821837466167993260176574513101555899674273279194587800657449873963248431107981650447923810807503145079121635382693779750300859066600046722955494991377235597921977495185046382755568755220140132019260436764600126625608853686256165503690605129549671046536688832937954654456663946714137314833813306485278680451104650124232110619409005758506338334118369145383415241889196870118022248629245870454060641109927986767135773883219546909795057664810194723995481512658864388260690986451880604908705085001120460457264655908261354934456661178827390520849417969903221985278893530639687033981401365619125485252063383122643220297114600644028410054006682062796182062027169429786663754112955632890456553932955441560843087740413301557284612639868525967116273875283558471144432391550719212463025674972008416330141709262179134397883808001867626912567675764095106718048886822094579180321488437942650197080213489336236015280435006318666027716752219258974719448864274752834178345901252089888407237728102414707787589381697662971072742701058616730328417216601660234611869445778816367408088922453637722378593751098399651042517020728499435101398168742512572195906464805188306516334911547268035332249803348895614334314703489792313907966925929185850535302145413726208753753963451301927431569838932424528157698559867102936663520701600969749967768207680802107978547060343338618042537765800378804503368073437172841975152624580448182530945929625189716506918718784774729404332900004411389700321738561865818104593998816803909062595226865797891087198490239841355874195548867730891259536274000850288020763697002184583853683616858024610045483108379493302309466676977615908371095717663108274343619968705722406098200882719641721788832920984262702499521427549318533752349556661589451642145453451942214406220609150849545819852988644010231861842625976839939490022181987309097996956798785031220284938780393684898044057312243863651759970801694820445890357534921182189721656140903612545486874246631119885400772266666740129168744201158871760975958298105654430632062416599285288515398686814431887678951836344197577346345772442926296961190267584220061690025946886161721085012983556791153896303442651079988189494006608876375703784488359294921822536156788336078140120060256919406811354959103794892338931812325380586050072031752287681634724470402362349228600290238595185162883135499898484174674838195355572610766934773207305234582639402508730785275827002689101683152723762829749778575538152603099462954819461242114109584934634685125052329431706205681854283443512523169211637752299699131516670496863345071114254716260342320388424713668734273350524676028384909300179786785623093176489567472848349241212652843115413724460643473496721112843230079151800199081934281872745336929202926415336074488825461651847294781813972830038950038133493220618511250762567598636429089221242458015176043859212296025231645809749234540310978711835839495906166514898695782761972497955456515481103710955536859265004178346627185702341484193227677872673534778943365825369793328548154904217916283689957199300418930968663985934300625056932858333399221494929067913606836660860536147637315393138532880794072652424112912758493009529812548080427745830657731244700062674817127171399597490479602344218117427623009618496707044503976129928992933512370146650743857705824066549696425101991884135640804889310163508634233611320590071089344863526780836512832223637023788355290449625254403658084007241762479425487994067732453562216142768084448285729692195215414802046118693909212548337452152024874516595925112906451055340183108051341041780785823260847463830322183735477532271412909847612860169686178790053497767114951361589178478124122863884722369225129725858347633291753696001386632928535285545826480862417282948738945001830353317553454837266978414547627698095462049468112826083851034460105982001161026017478652117777678974175291945322809418391369030110336522455940766435272520785604380355031953830533369007644423030593048695494907738722236235823832927466186353066667003511913856278541739686575668968031340125352833830659115885559624292612819961236417668332348507215357417819532125947033368861287201136027975112378469065805133033110818758719269405293118313046048382523491457731526170941486304177186614165981536048948734112435728423240464289661683077804740667370638602678716368304605974739770984031864106874887957658203372986275252933338608311730043904623679142894161721124897429311469335610923497103976535273583330597398403540244069126398352069842391904967862317567148960319368427001478452754484132770199248301693608084635230449651819947114259940691140640960765502961497452400553216584696369316974141318602283859398247569808498654163215888999019357199281543406011144443819870052239354778106929257534819870055389912329259972660855219754725731402039457329717548985040588563512050402259167363967871843987533819526106850963528259485059934957735295677509361102735434395097147533075916568986046835013092219846244459722278873304969921827022250476085628230612818547558204294268806709354399950099051999460142524388159035542250549641294740863229905812248596619813087965626293863147592303695483345179166982906995943634978790886569442744093718575802530114098100511162381462768576887846030293106007524965527047331064495016698364073210021082840324101701898450653859194853306804120487022907903641863945527108414316899559194545457939542463269259531331815750453237983210666217425198479124852829040637660011445996778326330284025843416238949655420817984318783203487676484706482171665447673315394853368026126295599656557407434166935397159216259046567472259353755137556681525799522550480597364850384242652117015948537612764894724494388827123523988036566318023985717209658081576151087882199367309379569876903686879261538543669969924608496620107654294921067639592733609954614420453781160364232788012275522124079932954109232646377401110621883441968575899220523735802704805466125864069186182904679173788754888396203815775798287228069526396957134265259796432858584648096114818463937873480377997418674158013064029965929168909162087004190174845323114375280141062667053137335589014304253274042587971615790031238605913199965496563681723865211815204429833629610163922958976405111734419126127623032024052856933363590448858126592962168122343047588144049637883010932138742614494702402745493372208908192789838101930216972773247406630892547966181969294377893772232993446114511672618534513153459755595509453748718075261093309598194756303446701388321316068960769176636749120305029949638092959723029842725826403927340137778267264136531947598980194332352185810195112025984755865846640742746615081795280949404901006889851855941512014222586133000538340443476220989719853863135181630271931966912909501635931021239443942401066505675452150225631430344343650643999967405333246401015705305001426125701502016992424658341410326032501761975138511429911617504761522641457495513756880876265827769199199128498514425550543017327985589497682792020681549439151562331230051804788731245506779702910228486238889280207041164358416111677097181011488881184859068836575115203461623495959304846789614537522812247504398128829743879888129056915136303940066677616909087497074930208479900118852247058603150413126354087626825223804679197208986187616349103042836328443351443785754190807303338517828498667498322514395428866053969360214636002043916936151021894414755985319177895884033061413109864691375846785883550989023016579918003824583632136254808893261053642616046962440648097121720309564006401373407886247025381478786406023880804239935248706325022344812590443234998810528132201044970383804644074120512956252345839571045288759407907994277550062281125526546957563402907701344106280454585027032840025661957136178869557654859748129437650851396561646872990169818638298677003253189195633987126575794492115851047004859609872516914790552172928179941480303055586272547690375711508304300011840178155250458298389774791894653463549289500026074857184113281260753190377157542931872135771843200212378346117265138287373281513722316591055606691049684061635778807326846593210529139372206310315169057260989108784982626289420362438469825134031506762814441587642711714554923348887875267814644799588523625215580766290847274810383497511176844499837288820968959832738270683509164623033421915237448977009065106239009424000875659946275043684492456495085526722302752230682927112716343269169331379719346473629565077082523592491724542660689119330879352782754147542025789192649136993101841696209700302712488178353265649853804400655334500556449813343277888289506266100180836534529150751528773976267487004218122163021397106904699323130078331808433547210267490285579740322380941379856860394067604229412303057064564032451690837247418065802062089596759799968389898465511577622844881742446497246279629476803878684244205755877676610406344867006688383700586883972888987898964626784837949756567833071552484086069118600016597949887223478067930353981998280787308650322044053491411717471733344666624102266369677816393178460371103437563117885309150208460615445677135793770663250342923662359633758289467379137220956561769968640119715611633416174350743340577367253066558459395887250853612680538936683751824062015061518400718125932750679831699294057795271964381961995610402837310515999150733033225209989221776335457640169182595194172935992698292038449439173294529736560394487470193989299568419029651379804423147082670798324319873590854841556127710999097630123798507027670770231619024030628242519009316685200342858833719271997370381591477795146616790034559704157730346586814918357999999979305296135765827681883915643490175497317634351638323667732681800007575989423988839370699762943019431352783304870113915117546186420568593971953011768742929857617447764059904971703141265022148065957599229911855147746435548137238848566994739339157406054110904715458320060039901869344473928377891577782621237238804931772035156023722084493265853884009923086801832247035212265463851422223545924074531963160478948316670013391492031493884493209403148752948295764133348692446011475384892504234025399642214192863286839985298331984268172382690171545699057146576282473786813592133767824888433955743633839066539984172947842005835761012896084164588987968170826997631537283288359915246053919978759882207777325740423130871583751814173747357349601423487897564982787652697009020037366446890523062785564813731150953741006903851586891361548080374191661857713962332629193459104225859619297817587022518158688002739472258455153816744030188231735486489979359492898121789756534402523505121975584472370806785754354398844462460899072210159921857397029843691922162495702439265989773647947769625886471964551867316235471708961118645129058752297489904139567723198062885647564098801685107847804805264107765984814169363544758297481247928465785631490438335685074148159184888406992084001930050251020848085728435950544176218185700813895428582330333645129090719621249189404120502131722540464168775933409804275737289088272187273891460390118176177534026260750696291516063281948939752083256787277203936931036303402821987489385562977936214407901529079424682878171519727289445593156848510212178373365425000589320550497841147076083934659263013291973784339601116252191473483796079291923195026365878283439673717330139058422633288833500969287948720590931383942514587770235336684370893846935085411712848252030367353859577911771385759456347191382320367993097568496541156205070310058785922226897684581296875494182425205697464449437410674672097934781282363798672098555785513861494979545473434931235962608663500609262813547764741938322100373373913397418659606115056301507482557834537543154053777518024598865861144653107837551112177174628876279064498833952197492847435871572925583123298680508873068109751371337579063955536903569719124261125822616860190611966253647373220644908734396143026122937781740591144653981036735686888488102391394905043361554922182129618462975754420001074075974024356631224280434758007445225886085140200094274537014043677450138864774336204465591211642110024307153508821040584405797520077790438494952051005306952674496627063272335319971195996710597762755287963256222861997835928252377901035041765268442809620514183704073680729521788305230168863369903756154857166432538016474605663623063778335396387196449740754013783222142201652943565034596800707430595391163053545799467582270135182788573614520384018229264215423496327680847310058901367168221290170549872943309237695795862899567703862022917322958508025681452279920583943985000174775055754831889461234281804004057291884394126149210406821220014806493920391654666378945949864047733097020634296485295748467199930390065741108373737575437498492665378715035777942277200492273457818528825120621221298109332024780090119918968076694964305775907547890773598767388396879890938648140251672244218665444434105500371534701104726310523107504226601804255968799269396728966324707025526842518360250680262531029302133789395537581045130839167412865712492174578493961912381750865865585846312654340554884955118316219809820420459182816772713971188695639632266457147432924554590828940559485382076718851766150765758721277600854769315084199934396170077125219762905801102757946902523464029057392131901665420814912840836115418314023767398354266320331994743631772531330754452751393219525855645826440001774137509955200677869731020608481993993160906057109161084605588576743883762687484534485901320096304345224238405691365809843441706213779953582218429611118891021867905024267030240172574232714923982405271162137963995123458616528202867643174582820522744860382884048129978129187283799532145202227820505464013787020087839606626248925172590388169678242322794921297929018044606865883624199881564087789013363132982503193741420760236824601339745443548986721903101916821723993259320421917087707026767681683077611192890058280119633850469495164916879212868026679407334111363551043518576507045674319309727466919139412292168159979051993531382057538927073344206014394900396204112839993954844693607255566183373667002556129205611054453488466074522272815993109755947641100973386796397256070151530276504532346358243893696170978580938642931193947282789902873088613330050390575090012869898263470012632507489134916026406308580346773806947996449543908162312946366357991859394373579561596248475309774186295904650181588466065121195718970075273591327158737678440592709237175766041651647647021461829360790722607754033192843063472736582016446991099824215374988815669420751161857988238486903238872651320573666976473438298391168713312557261906086869692289007811840799678771149424968093857127581507168191714783299848879923509333906375196394129619854486879043504844717792295905880978789604032722429237712874121728538930629460041038968747139538257342167489204316657235079958707499231200500737878204341220558604283002616331660958461481658169364223730777520380152228263468945778561012070166571635559151663657647563864025858482007223368754635168515040535760247001013298327567092214896923850413277169154131778915133449845445006353272398795237578960706975832276036312392031369235805837374177901184161942984303078546312623287832822184039411148851220986487232722477761238460718526590129493555698087833767855316452307399206960179288787683976323511574538125708285586395703455109572680214696989214784891804509759288183908225678767782992473826685234395230631345345149494868654267219321481210471777749299150010389970751081755021364491295854250334669543106821911051565142414984994421086611393597828195388937140027634153241193845912782138081128340751652606196014697675110158294853195780891286742610250830660225344507560104421121724681898987968993855656935526106762290871097212865245442371728453334231883315791985334160365855749649249723961602090594922255896401078120242277041528389310742822452576772048824327833584118430211997910793242053871725283615627671313305215166975416865577861845386002620126499332475406983234131950669194423265288560543777109686962669227464023050305994241790437173253277327640037396096322099738795321254057110854089636626558715562902456848261331187177447842451839900582006782951981013305090155004352976748766849033283733905019000130913261396761452406257493559851787035052565631305436126714390649435539156514855198909907503106650073672247174886133304650775579689818398490317263654940314856302645050727811119593016177764846456156953781226403875899403492047976311805738908792104580258913895172717604410963687425866204594763111037932563928224125248353000511054668226767804371189006507149615572306099367316385323395525504233842015176250338395410393931794486434591394750707412028556553144666373706574224253888084668395172934436768594014953665287902224042737359781495633284868430727912293917004848527501243825866066591953626845037690956556255267580462335248285504511446674014801809336001559379195519883882806198268174242498438620467388076749319847187926607423730123856378878406280154662324012344870957103739939064484713922823920317529217740359888502840937821232866948005302525409971665756502160124709677168583124453041655726222098159838598552303128746147032444182333385098894925416520335273057160983679572725127199562656092400398778140931119810525039241482298173742497874189458483180949374322390600298781379989116781676301365330860516316388379959801032494881183603454433995559625649089162703268473363741819765460769151953714373627360951231211890900612629256746244070277800027194143712107288996185907754048561113327344705657927121426216454044555363290318678823703441616194426211559701274051268740495995124802955512369266723152664486986286125330650039740114876618619800024758293108859299807874722808066690612906321154095088481353290375071875986203672319000608119922924225918127890870471000525546807541547539165280853241699663638910383363064424207534512687745249335691190137269587285211979619521906613690371380481485071311387753847667289733555491328981641283864248165686571236211249634525681759032303860466729477518803453736638905493750755945544018141716229450361258364118562569715616813501227929029071671414773139217601889482533206356618394110434870750098237751884109699372276015875481497370015038947369684359308592168458324817615738522711687643376626862717228558301506750729936977166324188228103893232572365853070826943982335465306407510211626918012671983020441839535478650092604701362999939410356610900393535482760368780213581217516958279407338388947174066409194956779540352228490747587544095888957191526675158750367954167743440951980316913069398014711183137863238695621393078796327613948996262245597265887186776237162887796115176640441111531524511581550175671715076664768474980667734236446717439462974011000838664067161798023093967020025635412352810694156102987735318917803021407344212238388933948639696917155150535843705177311030897070060882228779915436334948341816088828562896103745853870334400555171535550224426372782392248700138284373512038625396719328280658779604184657372819527870519497545044869666747553248066757068766643966327375151818561551793447746675009313422467199058159761912296979908307364783489284248133067979926876109905834207868759417204269466419326904758919822220179197213597212039777223312982982364631076110923844664907023325025266306149568968388600847397764768398725824871057839094698681985315581107466228448767173186370660457391132026415570763560610174682314009741126781865918315600294766761071836413846355646983331639736898463734920091353133175126849724729048689791867772124387344463645269886289462130092962968778338538161405059576151960281970423351677479316187474395516300252338390233890573554814816502890443060961316510238364967241305297815887118833642972110663203246370274170762372204651831585535879422064818776891491359435351039236088358193067958472001582113819966936517973351737501627598015019807579711979394672762863777415482646340514411561857834330872645286718238668562905901829131479538762083625296091729825567661314379760797889958069660312300854952619937247142866056186488412198504628409705912402761721893072827921729123119526460349532736306023098666738516589686865986107785350306668119279705582955759088483923624985095172785756317305703497076731906260300188052007146776413574587342558840856581679111224498232860467987537769453682175342641541127065482127239854699121524754819056788054356987564309736845027421011949069943278050106391757889995289286378828773594938077217965418178339143221314191680692912833518006554297085358803619998318232781465505410642109899574108923217629130442543278002456946726640292782792618047892996467575350118449848606655816576254346510211314438182875284832300638719097169958435626018229857517522201873386004544138682875750365318464649345292066863133976273723243931313048114268895025323171106875871995808588397537993782964388131015866284772223760122170774261919039325095945508513614333947687388501502308801359020439961511619123732931644597960463691408593701181388222091422902472780380981830459089439494128405254330916718712028381550577922418044721892045283226954900485057404401640780683040179224573780495258335919748927738784881219591225934803883669075044939472674084001335483116385495356123265531052855614250252832403136525537997047485826473960447029907552882250977619910290397851538261630544747296213613131478195465426479259621930439876959964042550655321693807826077511912985316213118170287701818103428724786961506450179696205931479226442402531996846660931372003177537658943945257391164989586721949489414903754317791536529496875455399357090870932455302428900410859478476967246920153454473492423362264735430811264751242869986457964419328819266134858426260181302337466070546124872498485315181576892783410529368528515366940916973795402497417556566316354663658004022519899923698387337628179084090582399254704020717123946971002688252740748480226164627529574279220145138213154086109696844973965044201871704613238527791668237889293991682423882874251119982946982822355692161873942825925150742696012218980947538170253403310953070211266170005152035405480939927689203745002623496144481974596592825999819835121480425404226728933612359997823642367072407888566400483261902389400309740211357103393762037370720385382815361518692283503728142389939065598602585144786028544199181043962544450258185677974331365992564070945420592841342887228467800546575002552218757945785648704204280283402866631186570790223299580870085505268423074277295917540480804254879166664404479125517367743674774383545641493373959353438257589667520377370454723059510194573934755653026859280683996165112734756302391897644807375714721319175792614419084477526597260943734694548083671537088825515090404996884500387975090187719293755094408641231513476139852788904702812241365263265872249373250982248652506564516686198037091101963667080578622384239296209517731995579729268719191542146572312524103320195635699231422438191409914762859810390292358386255514348905960783807184732468911092513692078117340723065051298533514883519925871268450447676814611813490549837272233736392457977270234256906915922920477715121175989531616061010223542205928482516237291074966231526457884092656803445818827328696496161341435663503405366034569437041459295020614376753821056156490294045574507687748213262936226190356395507972567917615306716865164964202310354471315005526369463275699304418478339791086557257721064864630833200086861020456232759925794242151774941788154091415221312415551753835548478150841303161566599959212927685166402871284696970247647311644147522115172859113757160531104735707087377481785191003447760971879954634310808318824796335111801602885749912496197310611797879389666063643869328522080892675537519147390282148061401483680686460468186467663969954417051710074366163434076787415282172788553116062380607644436694422045859313137385535878538187715834555467608722985439946588147021146310884173513751993390045306084741093701190757247011552507287212202342893503603744881443050294339575448277274498100189355019263761557811117642280415645782244800250575764294673375159459236631359278825532741554409842495604331043127697718224122513884533048564201982852949978579263590102610682011298981804614310513472553400181730300392127692444598067176933811236609332441548529741007823384607133217343751408671510975354257795323979116937007575264953734539870895344594906613702426502896736993452418195155965485229667224833980012463913214743278225416681909923235267183433390091726137673608018071049543094698998942471791339300068424628939027519224525712523921225684004780269821759239316831981808818892268549462083656329218803471976429876521474014056058769694035260135913200693012144294208018903168100646220162465549169057960203861705978024822966078052663108921756046378341482748142981808994215073703614801253344663748698486140049708263569039512132920510845959993173586942225423479595855508688988665836049566098588096042433504598023344895559640653599914306319412835620522516484173806212364088185173836877768653774005862126891553786146506323195401503836594342799652858738818522505932478901336888073733700831847597418276275313269885661249370311604457820734004463394677247561481101540186251249872007190889084679039466938649082659038973300254279347466840948197814429835646834208493785256153391344359852036782052100660578142682591895956489595686519330299181262069575172616922464851316087668783766281916615237222553676240249931653499136046528519004375656993232235356018227093252136482188971474162830468888061003050638103450138788300443187541271055954059241646142855610340853151053873913923443975944338186657072578723821297713275406125159058137332166114725217369496232361856998354606619412184843059391150860012702101784913288908408078900940208768871657904038323226839692421878281139769191269369011456512912418696195486643269598908530635798229149506965180808349072770589078339666704433500645218768225332567642708538313262009504746464744145312643224900932921064671801876975741061849890246520921558819466858876525770180884655405413637226163363611700056852559985842387513909639158656642902376059897471165689624264402180741891188496568259839407294458952817425990820306860254925209694287080686436100342536760679519770572139163016813105847659616628170013677307629634988519649873475492714453651336293869872603271908229203071605103582495318875538011278626902593493090814684160714621971560791242024649371945938888322762998823762529161811555830059269765670741555892433574697238659699125413761180481321805158469406458728119626156207186290517877469506177201134390123999539687554352426966164878012112711999255188176716208670451853359266345285547678087484511644355144876496373912849123181634003933868419674995670642664005599319745215403840205999875824404939598632782224785657486563843909055639590192780230651914787469254160765165358958576471771527094289381096748611521235905008677330237993234291264877435787772447990510418973787125120530320577653453121667823532285980454049302647491631517347583299725980150078153973840467625899076589825659153762679493592738452201469818390900080343402982912682298036270236449798959709057349581270638908434513233289092274073184262915589050994202313934591052032696529948051212156791044354792349390631591188931953273048592253462675389344601310564135435355455522725215975407542404466839557639067205555663489503601849983627677073279436875337700462796118665879297991812808106873975271431361292722999345213529697249846363755814662243822292700132801760364866077074423109141279391027258627355339419896994046789345178151890974658653968343705584901595196915132703375672384957024945297654699113753119820610349351111663968411780148475814779548946772596723871832144164861228530913660283783495543087899757784083732364488836866699741229524622654117725791413263333969896571250097793047538730979730698787243678217789562599339045834652525393764417096705906825843532887760518556163612987435241958897996118046571859809554787155692332937122082101042216745402714852178785633031188818426888886955315198690819089767386850487869016739596481778369227404962713614527393212062209279800936325565271763437691736700095518304566644201557664022170566255469039328911290737657613182655769986605576637461752494429844737371069553765671842625518854653437640254603571372052436811406755762838960707606214629669413244249846007090205573796124133399615367457788088659060013452437412691632831168204790741535667938467676396504331276135144437745111686336872776763946228019377677844990543286525794468698500481375603776932022965561464328353206087023551479364500109840076244520200245223812194337372098175552574976429294967989046675891754053040566479622292661432318906034016105468130085453948377711446999417925274588583791280999715374770519649763160338028259022610377947264238035762485636324346029445796100527952096106929395200786456422668416268697220052956885911293405514356681007943345280145875399742648337505438346298601272205080358645499322996126692990123214906762943168423844533567921682925332818104504671044970822553653103974836697746183921903041591147150714305964124629883434653276193398529308759301346992841731217714709155837661678031417361002908061665593482173609721291078219741987671414566984032134386054591278278981759029415401402046113947338644461918237876567197281031333078528425391363785007483148016334261383831904282880209139457441911080279123764077018514731909885394581829947569891311085799937894459764059398334482034406957792577333493923230709934104067268721161105774243818375321052726633704107410718481173606162301414363656261341531651881295457196089698028994426648595487115031118597641922608738594254797402442865476500252070375890237546150169302929053322124072738562468309006470571296157102066319257111333690406780690139047031579746983125217579691120826036036251519057479040673536522209881195645846888787477433442501841115752719659636848173097742299323828697038561406496219643865734960264185774521585131398336142371322283481134124318114015265135513068738813635697005951600853389237682894815416463398128616382777504698295411264817798146908317418345716409765327792122944794424938474222464135318168127034426493036795261208670258158763032573577931256197808260456210860034105849781566067367070665872124377185051565946295336174630059789442169396262731280825929386003759828760372706092307286984992755586092298349117714583448562579502029737563919153433583762122443200320034780164542971875945190091850666036460427751696701693746759667874943315677536113410515426374695844836396955259614497677116896978303065292001025350403380070235443533409999950210295197128569363003766814195551316752347353319778608931953054345240116940343558973666509051500535650822029657486574524950781172435184401490047981303376339844192028491122792162155179422160251967852543968247372805032151590384356539068570219127537715702379543033174362251805417502313148371793667965106163735532253220238733526001842478730781496057842665373392599301280965683203025476633562437102507065228879928079433243658008682442661593519964578479188715275895855891724992555185200334116449334787459431286642847100627383734581571445153868859991017649311538245738293688602870914838720559844579414554393034442983301375649147312005682645584577858483686822987379278037518054840793494290497455431638037647830447359683433116830322483283309241930146685570149344477687758556235128970394729990506008464267331964917771683564380655762493924609439864468475431405066557311120149640114809662257558858125227121763027915678403938757930314758012205048965590516526996105076960727443182392449531852998371852533325452826460985319888320875306346673664071760937254930579041265203453145859917455942189811423393294249776965449922985447472826303398572235676646787078804724181105021247714971891055800701941118855035619904451166306086677302146951386085795059803669566460653991517645999295547324072827091318023786564269546306956706739611569731583002521730924512320264973706258741598372111806258640551411944542173368241438712352344855308560456522705393929740918379524584015228341440171976931314357090293679875399245904986591013756176442483393096486634257856331115646605315496998451071864487824398524487804372654510205609229755298708533230331260798991071287061946061565507537589436375445941507995008332249895633440090700541709406259835298970639458147343138752326127807726388400947536729278664429242431099556912166568147804338417595916807280912966949762634577125111726966112132632300456912173396794582357382387225878175085058411049418845743400155227055435696187366735405930179134091717000509177971362494681468299462030038303451733672776551825478262259494892837547655913012180534339169812057720631265656394980850191043160857985203356431866605150617750974075829863664177049187275753826657000959611136640079596945051806527826041199557007573999854528646756314693612742792888618249120308124359167573697945950329538911027948454562326611122546627441401162263092900048819261273457716731857612991566025239842583951671522148140896345403612221100401740718269435117337265014259702536320515741145229850538970145226579151320970347565699112207275738457278189882717373445602515992956299882364305775295712048272888119896102504410313730277069359389790923607504833402405751274963228145231220550344727178060104918037710714424450883846965433656484258124892032015390855781095199656197831273417615727694293694413421370452607302077989747838127896528819991246583981640610447016628378472592276606799924799084502292697801041031266357312728813798304459533669551194486779444568225143718452574546089839532341203535904423869077522944019188405218417236887147708499879412450468984371525894278872906837546614954498641767763818819709062243120278495337034933735236488449213362514404308224884352789611286731496975834235840253219681442480656368150564684823019435979430221483146737761636145842958833375136064129969635344769787869696604228060408703483249246136343386980733379308928792212263967157526764463560507200697557381246500585404166254572797766285761639314444556971039792626149703218493098445196961224023450774168708330490743898006137785201445353391187852719350053260880837855084788508785513580929412992546618929064875712582556006386678447424394603794457990288039240051368980303470444256569381631133395275074603878284109189317647849066840637191746708085520362091050114782470051630621115177390872136163011141975381777628224586839046866234254253407957675908803472616394449079861802541088693502924804107447057237232367144142526464270015626103938084362853970975740576867471394546679087311904594985050482723330729322566630433397057075682416122150219730618588623865421022769667646005067245339667310541441790442656400997225903183138483003027138022662678333974991703625060505465108393209092060448730988914307106493241036974369278240370543579668059086281938499326868136975148827820488944507842901935420374380090933591068488140054362826256863121973372291463377780902036039360867668718804579323222573825521887662488593498958160874895294981014020996321979571716209654160379082142815244630575260096687688800200498132066789032474150894298452386677593848894555826505541532326229636482633073332085437745541768222063454429518594103822688315143315626245749975437701351025699284185639936068152519525654976839297992672338987531976267803254559857912563954856498361286394434111937049352045989347920881557966281492179490792886003310619470217502521162785020663923711623455109765936296521193765026909495602649155052659476902403177712308616086866888630302858652076538264236913342687406461264496820898024753956325113547955410097275638381061314011628398510464252905625096870090743493881342411043782109040406420911016434137722477605999547623227564648156066786510196164810816857503656669235287907739782086040575842974536452891595238894196942702251824337496146817885471185434106668789626260233134913185549757224378510837356246473740055361089093364103980937974471054865926411667805558866928485041732024034725764013210825752496813829796013915330684536756242268826481631581205942926617317683274955266339090736571166849124356598520837327380569386523798140333243398886466199254643682002887022161827786041335462914072685658628114817457085752442880149862288682677737497195121448539056269559980389574663550489920280874851412841947852404077535686325094950215117519042598609071023675723636149014920625283568308501888007964475244349867712700765833767610084819917735459560829018654735925495533951676179425470878297927574868259569614790607584777329205768533897802384061805031811401822525436617319900175239241505962141107299449113679181269419965096050388780524443315372905101641493407593533997110905692552905346697516169703579494832187750358178709979434435501946291648535794679603827403880065883099442950891223409268078824060372653924053862788063356273185666799605656502484434956606486359253038944478388781233019615193061631930359440688235926233002534726524933365856780395750936861883356020928788106568710017644336539117602000828337904077745702603943841631800048393741090923787809441197711574762783552725120644068026767935156411040123934668901325511179241888140843365831465941170708016041228630877777611848253868828568279441865318422183929623422575906134461654118758799179229901346846421553123879734954560527500168141664466713960357551500965666972104716719498798639182195201019533624691307724163947578992113853538987943771785049137812996226236380530438044941056706624443256947212451816695996027365558008261672569052782357328784686437372830321312200912442753271879520913174055200366462854426437163443382733759253753634918522221618010236826566806286416479397095644630205436041887261006915456923952552061214838915456918537618843294654619190952757819786259013737879412333053260802244810128286075850397394398886015003106037024779373918107981494158722358218374248661577886768786314824899357936136478221878931727902081951297212164875870596801143056007508338259660390260907568958449024516541150775015924870673154726671538168830702628233090423916798332427859377881001154168584929618711412764964256829150206855996981597005574021439156412008505389846143754387049394960486789686158040038395755834619276513251825515599193680060048454353596708308039697855991404191534305911660775444594450924400711748886260614287172734566094848177298468371063915157420620506631007553300964481114386541126004065204271980849661207085362110472934994620474295940643531065260669514276418631303199116781901534175970133099890923758121783895122987325350436339675452591420851511500049714839292356665360269769585887138434888884602194999509996398708937276929685542050603598085407477825801825887280694515999654734023326362252735899555407961673847551075701670688409589146641164564386075516341158425349154754979215192703457471872541826750738438087795574626402305978363003559436279201808187776999302317048032359070332706717348168477401147447800117106683460483384402449418915598093594186566581176482924206775463153924485884652758687004304453247629416606598687451850230892688106856323678012410447000793153053475871228375200445310790756686927342671763986447474606529640622911076843552188583916981928012827781930752927264932848344622655839000724329390807837278473132191247089728775716950138308252135006684781720583363423411533963361163556541339633363508581352939644495996421660708265403084587746288711028114080205412386784417914162404635362692741056376953307888032675359757883617266979617204512668658460261747366765304537520391879245955420367984146953877234309418819083461165561084707273060953839180462211216950509474486211343331045834367451056244827087460625911391502175777517857164561278687729680920673267336188887831491616164219103265773569116610089087951098039964949037081668738578483880774989616878079397331689624429531353967703992410777731330208792552009985538696933452129534193520432338232332910804431718378581564590204849889483064201720870406136368479946842940368802799614928628776438169617203428523177716762669117757331444846182983251926074451246500218307165476044432494965778630218912670048920797207764820018304251705080555899429952748247043175958023684200690474710420782446540030045312913405336063692568313512553662208822679165328643987450318610313246868181957355786045104624629304404395005054435148700828171640168705008721488094107656225308747166299230252740857278060696837654475798528725358622591647956810799725538787138529854836307897072499897934933917231335288472635443384226513655423399595666738802688090268068525076144860432206954458571284391690436423112733532568021249900298618951781770597578373021986586750155298238301945163086442449649437711633351645088667845301851137955465021173215779587575087502803523533570368721341814683253982553606534094724980856918114681145154468336754852702277536427933578668536859696652370266781087144645537415831809335640768330967680583343078783769552597545000299330635731173686670105390221218732836874880151683877307716416940858213814136549955290493422985512883198214331816374583425038239525945498666914963718551909704324397610233307504821342711228666761522343539575649762679344219449929396750840039074597418375172362486987792531893052366685812320001954472298830145073903441389166328653044310660917337205279989380133373900292143090368319672722813874470439580588333163073889596025377990743685959566943144464440582519424044242121259874488345456400256545977082841014718711812934356766460408720451017415539376070398852819601385436900343865755268131651574948353968129111152982532630735269547105792972299391433294350513052632051844097096981200368429879498183724845975218716026409656314577487073991141555072677309397684757076546106369047400048779049092109860412844876076190764544854430045925134963941916776627294237775282753616205130944982342317680432775970261146238204031885345014737583599877271655534992070028432962176122585802292997090132731282504602974331869182615324877399965057702360643337260878886881216198726817232929452193820970202124969000996095130298798622640153274502572854253122878961600640503487981100247406493516050521004834279730378786421357230821287840041008035324239308720297177082586914517832266328131850093756640974240105342424840848904101722465187660862325333895005433257350272552439158527382102486327294099849295772321354226472854670136136341150117641195865738516842206560876812610111467500884389007485182808933672192281928648948674042212857996577117478173190992106345052630642189060865045895245921901377931068177750076893232178883096389222396217548351817030581624245369018721938561398853365439486471371149023939884867413050052863985450874977252958596626676593238574904714792741019244295298250605058677649028262087986466973988555722764316478514614283962766270127944910506763957929651928066439108489012197440261746824090098313916030807299948711857370123319818786604525027990396201963600040520524138484235912118599747112450118189896288440866895799637389293885449669034709826367978846334052617261278115781394861698643999037819288165677890960743281945063447718300123203524920008503542723899015133180325914981524335044337039465468784692110341589831842039168873861280940875192318892455488963439839651367870258611596264230618222751955310499851608586152212156300986351962549517428699616855483965249932588480379710770474541639849259960571334153993647853737910515714465211446639422064773502246867159732647126194367609478367857476715005001977069391311530434792014679734999385437607520353159653738756535875384655606199066696023854081218984593364613936179551060886826290520533869236578579334591519004178621273078720151549677571890306368933710241448304708843786944709140597751809239151466616579545773755652634371344369795856687952882470490305038739576225912684488607406168617145720346744569487820455757033499053126229735644935097374242633157121153505007318327207778718868040495913695404886340171388070787143679114990590426670244519539097781805650806130955415107617632803456131804347323235527503008095881498824223842900864684396122504302535640485664110582128013441384955788072775691632700560006465938468094220776440000142882061696240427715877255332014819317943585474780954345324748940435134874315962566749435493502959043950495768823072128493284781566037224157426447571250035573726676818562410881020362928007422321081923274478537650072773456419854153651553096393759213152355476266492189938169272763287344973748363307768237804586395933170415769284781570185123013974429861688472006599846329893072716349374098197923912366327864086895209397784879380362586863226341363444567696208472785337349072654040496758930750323375599633567290521681320488460633693808735162627845828045560885346385850873726153353288353717786855170736942475667878727472046811796096122833025794407423219184123309110766037513357519647447371954754245965760740133484216245797177935333786030201551839032257082641064696813202271290983758759166007974519408493381064545334190061719299082965824849105918663020319675288519705460003016021825515067505902918109942809625041837035984801843864139499236884082741342553529746167472641491840533782148752508242514426004353057152167056090570467659131499774874250085421435537497935204484873611144885867944479695345748771888330989823047684958920274919537917540406449059702612447043651759230691365848583502598819194450057930537147788514317001531609311782931237542808857937813255855627698078183868115903726125061257938012287877423240019266257725942453068801269070959362438250830245517018517394291906568448573982810429962353171879735470501556612996805906587517117416071992571214974969907366750210971592107726823694447374850518963275643347808277978836050266199285110283106387728247849766221319154280357172571746282106966982225109190705746440011424252458457369561217834804306774950596976646191160638270285605539927732652139324023982478393683030113654814697573915248651724242126884240010313735352707345492383572263270195942631192593934435490374160865953361456933660424286738967552720694590763781551834749137473878476905428176089200693410391572290972594103111238110321095248776727401653456880032365797011600683815472701378538026194948487035655608894452394376979857451997105880814609152439896389248469888339357118802282690611069772925879719491542803255220898035226668225637155180639593001068571972915066800743109850381893301601474519496217946735401115909646201700953950996428155579219680218688172317893671034134503040881826939308683860533267072781448704440921174053040844413294071315778674199646962896264301821868914984654568226829268326436161748588927362566477326797010594703534941606942989507049265448585697969411393822810674858293850199772118118982417209042278431484512153483398165311481085818696923691664120201154727133598887256925482143103057276687964417793337520322983700633426911580151574764561216201409868336133068023782397578741195376894281119171049318442030055489119857018434198625813108863308097796942098756916803301195061594937682388382956661092022791835174476081461505786771392687370506360074045563542899696814503990751317577018952876918647612073804029286794272939285088081106710053974657847523484117558764504363257616908216531893126105613551846684958919623227104350450820222113895684294712961901509105522438660585634307864640628531940146348219148547224003705146248453185602321423079743398580675975945003497006643304068706321373556038808311117861497255242683156367774723129599295728401853269851854746145352478413112156299908666988291489040906758554440149580486257154282479877991207775484713652256438448327984884073801682393368546267862158101179587157071097970551842406933243750419505501262530574923332446294720254363363148482862712576723029016060343015055709240710657182666934180027634325265512095851006809100061827361116183531830068068251143934593299639115729857382010067701240628063461523864787316941439901021658822427330194741106682667762019775657698224392209931187547805872188482911376654100693470152657318890500803252403765479578864105001290981069798941369598179723602375330614433019965569706987647619702309678210634947225846196697342286546936192893618977922729992118188737049477965874048150648764138779438140257269496225375377180515043782209251249043673294548704351526828594431237035401910006553940311178601406818905161914552126428189180943785784848683098277746877768778425537334681607120454310744431354441619848345441111953892425143926018026911575789501797679533687399059557883897792815775061676768973160828402783072584479113001343735158688292585355336612754837086426507747549908571784129741206302920304906480323624895817872530317365858893879152005256661050842819997954619738030876996779200860937914618205385851700895895112821324322066318154218614891728075985772386775783310755045381266339887133012232648867017080056691591997633261763797401819569561876248571813442832979281062306024812531803460054057632859499990897826071658956071668507573222025193839860550970332867706466920723824700886225458854515589828627313376068894693710417310193272810732992110713274917415774324478783871766351096591743236554816554641369637763463257647061260789568796276077932889532556225915213790430166590080856524101753854390236012101941262846623913013183006478363466836633789289135622637265117226890392717696116359964467743634607963028094182302168374702618539652808554639458785088344251880238134281551725108434594720856865224517262408393292828690817958955725505692620119942157266551875794889447568606231547018548733313929927422638644907264955647877926676704553104120360821163069596144480188007784571617089504334271870677441817047242495510671098197465841279245860418605040643184467379811552255808793990882641924528557284957850928534997885982075709889269685262251597058785158577987732474729327877478347476072240906033518854855221840496624053142169716018241216627474141077909676749325359046289687827277931059032684586588554726341137223280350281746965869514246027273837205499425242047232854404704324716069972854627345523577331928053553864460067698003841863139341687141339285698355406633828453957883710048291659004331388406497993849237707589788592030661839367846443270433275664039391213465420987663615618456329322142814813538889356431526274000619682344045217884572701379753809401593469378745104458441185531303558888588507402422582908339923011612932835534623062549626273172459073962312030524587880535471543848096579388254845257101944012033556312683225845858687738758385189446260065672717179319652026562966201928149988972483702806464548131955693339256264699431582965373441799414141867518258977554211897204171247935648135604997514759513670601997498382341871076537186978578969805150988399800028480872171346417352762835241142549036128632472504121223592190165873908126532710639624235907788742459261942451480000101276138390020454709280381331967649931508390363556949551037920663508986764778130049914143343068720654667393421665428442184696947993262382898402687926417496895145910852141788875877597847339514783032298851136322958470047791856102460668179351760323328366950465074468758399977378127648819447338434924294845033848100560014432945768094457355418999762308736246774615861909839850135564016846834265069960960960025279215750655192896467596675875336399898876439357065318675867994522815991601886781440344651504941338253055558954948953404979136391315258702452005338471872770573167482986542283509845701437588814756856411684524706543724736889326330352571930071811241536578179985675229041561492313394718877360339686486622266415923800445135906201117476623121356558366307786076163454938397945221390966849909101719025617849820041976221950330881671602631804846940744708727860943661748331728271451357702169004843626426076365436836435157882512517630172827628328919721908914727384864966624688825758813625556978048346664425717688103226317782111467754395856666106531062523827997650077215851109246139341983794711736048229414934049067695506621864971125366641060280542361943207350845900301605818663393173060971147270322332209348958522238650984412282762885239960955250151722098009257042285044790398017757529068527991170143640083539974158748141498712868733144952758982293736713930531033781064586279928390258246902294800536186233092881211254323413540905912419412150488850015049042024337648695898766799249396846532052899817402982042924220755803617426576088688124891690346554255230601077655044506647121672790335156103108181919096714873252376496017332911444429089712942638230740945009129893433304369232989438274012802099997127802948433266205859426951043826849078202689394601022160713613716157340504066281537865843699859285106081285026872879592350343510904382977943859112188332614013496128020988733154419664694341128512363237182024023467644716338916439792660615527292697768381846149863320349750970386101956407838222705014433516144816367488886933352602655466377361640416216495996083581114457830096790462729640611822837195714662121479796263292183696316323883470804831768692091199459016400721391814563408319480568790129338618941863639571786843774125709630906956817304042356191125552511852537734668914456506086812378101428307028278327971240714864027809981154193819751496210492544263758631255837665683489597941795389587046974907678998379440081111648973559807110473295834338108029507312869875255284236755930408620563189245565926075451195288162974825712417954856815103538419932782966045437688315978251666453728569985903499541084922194532650546844602600834900226386855219481227870542255028499263165121384464365917038388430123599463327348033668018220508928844171218909602699829606703154557063718627457006217367252359886551785211030921426767105425227177032579310785304802458307670526827131505608725806771246975086775392222304477453158024224099373320520279647063663175363284194779263848877118199795944129716398969045491935204829859321447351138044774367792161735916165340246913540722119568990681492242038023186715079234884578454695349809920072363211791568755246644473511436816383302536510307344154752120819766387399197295423711725558183677913537005858441362988935214685621106990877407167756652588161303974521792637362755156798519891491921563788127538807337649121427993457045267214643652060555318555459805832643053023935868719033946950906188508012281816375462813158058745559304621431019116368458331319057834719921737430294184026597614666893089744040701184697817404699011425579149607118728855749148527998313318839540020754709621132293664363618964219684572793095873952136848361191221237445229407538834086373745393510767912226312184471957529075292323703227213968707958728229401193627602347289343364610602720427358229287763946009832702745768531860270116146850760332660717188086920665496680683213207397236467277851280453825776721528239437244077404701741829158412140328409223697765075964876543961450617157420179555645355207237194885396915584938068221362412920512514213057173465849993839987835726222334163912321709359951457742655215302788225984720562659123243149021745041982408999973763794962893217623836612326565051437875200709467641278972602564720379685352458828377387707032802141617905146877573308108775177601025288618896910735618281585643191461405479219047189876067126110938482623008917434811419093294255806976655282142044277949528032388850219716546855689485085113644895167041194961537329786964301830023227216798616242315977087590964833638729832864136648706857126195840973556539421668064592263793941208387895128938940413959721128507174819378687342106294489795981460334377895776711085955920055114233211822426125130188207351177209514458665892533272735352907760472124015888368025437632636244337814751596534811582379747613639703728230675845990198846575051009939642689559180595697692954520166763319615118896236232670368928386896104211598147764646114884126839488731702974927692751087885765959412491265330617768022140598416894009857450028006035160531308715228769582385073766648013738720067921848305004408306275709007843020945307051888613992697843166741090518474119539172140036385278649632343364263459459208316089946993529093989485555335663610675016080477879436324314996909424588920722397668532705015669395951971033398225664915937789734456417843943793154017176531568774047453363648924805124225680442587505836454448901790683156859601754527914141586106251854129465422889067847783289298311417018156084496895173919355469931281194971841397884511578231234276915505832483635959027463563009012361140648268424331635062304006357924327387044689794040044412036959061822398764159839304662822915913609162952054271534732659480502573677758973105375679560250926609801466798504309524108168057728064594581937577484420473793187314719382296833849418617728122384234375208439116990365209305319033024976052318807001554516668046837371006890275626117777449659604165215402845288791896902631172086138675163200959313620588287037651168691131614560798397925242305272974936423640688053113023648221501433945627596562680228990570982522582242798500818477921649983130542642004494577400533819672560171936822146123269748645868901496558072488799902347021206740364644403435159126873882844059853317407085182574174914140591052759721075485231829274268749502764429814503707574195625158661710111102935037936043554567328023835248873040019401721366822693959389843068918513195506846912969797806717228763429052384884302501402311938513180258719701881968608164253302461273625898202005382757963237634985425776101740906808103778395224083813365206428612313129127583927506666551432551532477710734773462466913191857501630496879676560306366830076154814518286970130827852760362346543648027594315017062903926770759115031866783673441689658715534246567890490559293949585307898578679937019454622400025334222563938254926249861714883094430891709612209708299667915450584221577815691677520103479254871785442954729126844240822817523784932535301977575052592980463331787418514230344921100927552681113549617350417141955241032048987486515069787747809858322872520814860926476987743681444163767791507898346793042379510010298329415414377573497932534296074364278968128151462287074076704755305795873376412621330651440467460599028764840894224914068710459253182080074257971307083238874443311966286066226939761384588733949734232083309212079879046996845587462827214135913395340836603040169210426487788679765515057588942751658819556416519658528114714896539939611001271968242620400512077682024066026703113717874878395996824238295428091903794319140499888793363377566677963258079755231564141437703428287774702594166392622066323189327360753613806781497559490643362682513633909377507677374360306925326985833654312564855877343155631504282544479681003133668694592438698284726564164530624153615430771917375505918613057386064181713461532372708675890967034294675273174462025868658227235877176410198883984037255442372858391417233981798062560995847124182800714904277001834920585350121503369722997148025976278670278953418756245272455266822483339311686205174421868789808561234371103550154875244643523596992551033689619605495602063589530006421028282564642135620549471804655745383117190838236896040930924424316574123531786083878580575828656790401396616749864118127415884772913717290822650267613614320463453394507491626824616597591684469891846041211642103508904530454554048129350842792779913938897065797280475224884282636423156273770124045274296165389346061270770523569583346050658308655563343065150735769359223036951313813567756292792217244612357630454592511053232273647605832635706536089964717297312006717371688872983790445358064112240686536375250702656099483803459847717200099506965651434027717144274315158571414239028320064412203661500166337270491254008368386947441677971509006131636546699845378988900197296585337294611433874799416572282235069614379470724863924671826475312171588487926950175892805094541906613595744209562224835060796287713478621952421540867583619989067441800007093322279796448872881320216871742775875499453295687071961108524581764863105614275810368284923928761300815357020670508476171284104216628568167254260935652986024701876233058274981271668953279200238716868663335850266353898184856079778537444426109538029542015806557410366712001764897161292376302913027375059520111021196801991002327089328065844676756601218457482100346414190115072920792016964062219634748489103636688134616200904633392440869512317313949833800091812440899130949724927770947411051038187092109331533565559232526958822268201099985656697254215960321919741962728239670677702237588717829902266436796478459896037257438499236873915066280719825511232906771463113030124444600292240847659662273954738880531939524152797936710187053376595840478558039404617268125267606870854384055422646747683588793993205976355595061181361804049274738910431221126208385538442065083181095860268495155572640440379766879168237632441883472218776980729029393710858601415126546746403732392031108636505589868188758589448219806761308333243991312821780175000848193189090204405523244551427589152399966501218874836854272212835886130204383729558964014630623108054407230776762737663572807917205419075603336298871244429893539583732025083930910953722744660432260660453428491801036951096872335414573394338764016837602280458690740746754751793370368450787518076264145770296183819397477951754147538421256312677855808684616457368660318494982765496759277155467782720101965203317594173001906598068625375288648732442059307494637131722351642295991536793617817386834208098576881452862323098449653024513306375196951071115644479372465279424677460055295138011158817424952781317661977432841996341029387906717346504944943242534494012869637911943754836634506908824489943315385461713078287198194934521953310458408398513908646613923808015360571516896433753679300233320015995000857414929818559182085733435994279443292808819213784494371485213063007627935413408855881442405961641883453350850712741932867316149940281748564148707836627023241722522152039226492655417858035152141876933149075112287733327179218056202116132515031439708846556122443166102398195392433899956373595761520452585491041383422898542921148362612017693929491258868941407344005473722744542387735323806204578414372935889911077035942590695663763346525161434338241755858460278671728553367490078005566227761252164593175263008535925376019961954487026984919128855453642311878701040524618243753331812944719261238511645511665824774083107718851866187581462897732371457610060416702374015788073288365149407922377674841620768529576919704633383039349818514287542088793179369486944399973506718798938317991066295071954317379940056119145969985575384670389447199602993089070756015450514623650260888514953105185950616624013031593547992916304364403337327672494104899289406804207733771998037432583621820450339304025490383816968026529079997331847622694137268173530885030079402916582700630406135145104569922410328118385465772339685006144946109291110770143907359959269826014570848920655459095631549047594250228318454410302238175141301163998299905239971053452624551471047320040409359754932414993561508559697659180028730749441099515057499796106198145737987584548856136103707263005225775810609333195588779909677858581265187483486670202757128861625493109295694157852044051073876547288049177679764717352614137657202952682411959565456829894524631641327322853629728698430482302512688771154593377340424990133312018606412084884581766074637569244779702005586917009859554651876201437359208324941789336648562878993140578751900377665629504922884569349708972040269923701142141606932732384885525593828395746565279324979939816907398420188701252907281861187224789019654609281804651890506493907422721822261766210437984123412585800442046488109690484583233871224730610000737593479005640274309696566643089108871001027177275806244691463867582447322723218746084444421308065685607205850655274443880623284982668494853114508440901995697900098651171093660029031370377596341084079286962476411487042534052652274584171220335196484091479215961949148264944028033834558563183794784974306252984643903777421097039968592814557128602112355340389778733434250587400865746143768156327485014223055708088516703321742490928430876863914488126804193044895827103835436413673094708632094124542756751599686942949510747267622012172375755879854480131020798278780090863589280018003113168841056429950609063077112205602437019014904816261339788113714759463073142571785578553460946859653353728460687878580764735031050753903147974459087993107188890761454702666674673699459204758768557681561057195182490993891577396047554151483592156171513171678942859611614116549250123328570899624980175621601851763982192348150330257534388642295714838483886903498777865832200266675929020768123588641778952459224446625746830787570547790267673787401939403041516069653742817005214640971684028603821448619392750099175068757118030012106049376249353844795647262057442285389473685920166077025137622059387217983475931079618166560117104939041561414680798979689733107549449994597132032762321822775285306868573008269188131529407389938925648387425535019272812045884954106307335530768329883550189503864643394496490034805137795291885491827870122099211042133288157450938908138408925004237970589283361616642480187135194774321568435195277089441159685740341921521867420827227503179924272469793359496306558731523846471625913353976215535873591653215438971656556043632605379731573766178428615331350940041722069385766676446091560934611050604503489646500678671310412948602455895376247741054422496960341471851540701014263636323040557838597062364024837279011731643879436901915757995015850208848206104893816298080941178501172568550486431326670208611650600256497974872457063206416265743464657591280099130089391183886274880445298051822988739884851297063466517269768020329840624314840639476738886550668151856885254039880808730127939262451890902326176926744617427945071407573306695201384458626615414060376604363011261943123216088613400153161662014269422346313173762089827148379607422341896196135709892466695597381160161534387159187250961986877624985827567941709629964247690766655814033559636490034802314350038576851778163408062061728766542154696942612289240054209685271972906525178648804094769058596227293378336379829312177181740394338775254005395898024411738331733923427316685052738013652946864007691382166583275756679565997305346221423517798076203014799417503777376229824471363070483827203326372010603510645231722156702646855790678656268904908298976302988486747178488391209376637248293899770175926755925837974852006396684055841912640933100057268834803703771496204322953017016480221855983706630551460699736710159558648662116491122675658810203329589589314058654806789297872125147047779480027416191330775887592327515042740810508844159810919393138886554363653349455302796441072557566883832491060277574634662809485832405825742213375895376805508159731164857220584644248930411517882250770433014475400354604321993779849646004983057601190015376163754521468604177972255502655401002364953087635129304660875950785318818811997731102394952385620783607591825291830952710333921089550435108790279104250855638943815306978857693500826702740463618223246906874072101025617209336866036797948858879221514460086971288617571894796629284276567954457534683515522989689526882430787765367956426077052279852697505268760049582835336353743321737505324878079456555333660686665293278605258802923261255039964259974060644672835240522806053558085336980444331926974732944702620137705464799094086067779382186996656781251153693290821101982069640363047828015491068499403089836954261662324623990794796699064935310427506639139278379847405991792683241471651120410274208054568090923256912636607419488444496265551109500809930315474114933167467844401222066213190040794202223066112064817781920211356405567396970092651445462951344301094958459725587836767756693234741024401413933968733258379443868153723562781530011002288679829500663748621329364771931133605621345710266343994029781987091345920096951337995586988037816327473481431279115983661070360096204642190326432616060308583846934940697029808104016681449385089324298955614328418292496487339806731858418255021782626639218175242395501413038839927555614981028444118327162750719116225852673248484898113432347629284924810614381833562588151342841052828251792829819497942596437765288021012639794806123987469068311026028782324732561925497493784620092418768985282663471528756175866352888901346069684756349547232441941073898429140295126026406163957979579642553579890783840416723285557142587635623698015735402190139846302518206973460221552032302716557840933681405097862402443273050808941217718529959181922706221558361263185526583889323887406003682436836606183218494543619820851466523626340590867635145231810617919974537353424815753075701887511720378444223744233858848126159931533862442379375030453195933440596365804761571560812104052780948887911369948286740097633005899699652061349880547513232874813510987563428780163585909148724722445383926376955155140643277868927085425492900340348638445557442029984098618392726283887934709323185191529861030570744899499512314515230635809397238371605047843542611140944123423877934147680754132071676798404227750167879282292611227447763939560015633707927401623532504739956713276570166496196930036678656110893606758980744218987287424849418593521588578325804902037236508102456255073028039527341781204087678349407332303208487507151118013482275713527283362998709099446356327805301612544662700644827431893843174418014556432852408356841298725192304106949016934142292767097653507708586301286031414531204115115868320209734879520097634709489370957068760873070049862679165352024866534759930445441818355970683938135809489041672125428359358343930974376383309226360141202093562445773885490521594091026437691762578196855848538199039292067006104098544534080919186491944852806255502074831679301170231899324231190655881927743748587179623147378158318550934179487805125630097269350179443791278080489645975454843746923853249953570071257547227218909922937663904125843290761482860510739006591080148713930421021053993873116394984132484079124715043991640613571083412506417505625096228857638729071734161346482159661011962220154343614490412960881558806541035357217294885395370801165507210497940511445933099748370417788165002410867987774218107003275749302932259820170232971679522892152029395522580760752547280310903374376710387009500850457336171973176908907471607132302670904432645043567230953074950910889238352952396005476666353686873194283616495026421068730668097049085642714913176128722790595006114178483747450960197052990878967933465210077137630684638340487663158940170191235224700646503809536713084991420469281738629379536017131642629330873466993773006789248831418433674077171541166003109652787764982235251234005653517246817813230564303027942099996361152116433644567199688941597259279881766578995525088165940302191159540990225663890749101861682861740860915052748045072547659306971865972746508601644612353280021128125579960419724525922091936013747312260322584073156191605758955180544711805835320197787424697528624610276978973270704361455470406617679488858996117715778905486280441018186278187274990167837162405891511707009534750614596258751199899226996965940990780719105618250644213359617485593851652406972466806536855221565849017751648143887706207325324085681650002217352233929954086461098267896228898594950829565523999100260890880905676036271748451744860703565849874234381008212573173355531243950811245337271951422177810745557632663842074072778986833099454785951858754257761738084045782026026776114866837247612133860639916119385635738673944826907540645297410904625621505720588673624664607839687577012043703738786662731188907469554064756583723572171977761359587782494723636216901097939810215594764747418718012652945828788769929618407568022012724366922645007072801193621164134841446747849521272202737374517054154319987820228070239408447810173043123844437539537094026551579463819885006467449294702923716479821766783648149563047468638187168323688641410696996659272475562968966345078993940262709687702733599659347111719975537966268871732056913298788440874298336157385174243680478263612162446388123777280375746374463338049838451899829661209489596200963906951311003399815272387758302409438149025679527102722644934725513425235785819396892319313671595369679101352874677524704001106753359520253768723926946067451754634270222053312194259277931993094702044864543416338991287683478347528992165586496723965253163398308200792286098138826665306448520185405039244611356505687941154713126478709855574404443300427306847791339959811342506094210709770733642446162394718496569879772188717600419322070576861480357990950035004637049082719413832532617648112835542743107295212315197544105680302510136912636957737737729218061198846520573324858571219851291809586158187737835646065918951589256426733612732972219802726645872616460069669437809554453665651234409721495925514272503904444204304379921800246126822940463209968597908386298274338928141544672436075814789671646288910363476904697479826342517566189262594433204708789601194713252921368049658018024118312820706898494007773274651107417607840793032432466697708292306994583795592812248817534655446694091748424836008913753394651398406097482396887623019979409228707862239409962921198448846901176470309689204221550151546220658697226667228989028551996037169847536344203303309828538052743802296934780201637923058266641212376224665997826821405899519173602657026627455988270727191452944277144729633277035342593274502694260653759272980679180852959888494989010648989247524690918371669728307586669236786297785440520607329947897763682262356824680286467152888252239482992917365110830637907110758387608133348568526972917694323276322402059466376679304527718219640163598110595617122002686854657442335506995446373021666316038525445735014116880469494291167085265036643842501727445705379256061740836769620264491398155719812335895643028895404245140179444118478287928688361088519069894796836141559057623945300905951526444131199817150563444865479592947689394269860364050021442574303870656614729284605436173126266302914283120750317574800792484430382735496254097318803768310942569663217210849918081682621598258036255153975718933733953861457019039110777143499431084191739677175456854438493462164298848019049919754544045948543668174250918556030456583686832691447265677776547732413718985642571684615189632389343419928604331986403220439073850569674788928666037988078117380261975253063982199401124269320089885163031111694701291579952942300144997074992715330462617016087092270789679273320290791874346902041842674672345680074450449001009826015844227614967511560749816263168255173572391968777838182033682093983598455317282761274133946052397743883375174391981116654792669303432992742860249650710462819273079657099651037215796583293040492305353226832572721954560887990110520097705029760142949099701475516937894540550712174583903926478517862241991655282609831534978261050202980810065379221266220267448142951643223475438464400818732872056419308006630418791386166075970951027497202603370204837399107970091504913469013623183559367244319369842674890216994663389769520964127338650955928766585295908648759119104524318895494605005159262672394868725868850663757380803917279301675468693351020505148833426979981762030005841144596245291107172390754749624297973896066372789164025828903740038861528993683753646653686381159124339599971538389802774678628962063579446651541804796046157302822535120258994802945415385566496597525198257929729151698259832820635448520666023257960354093992497103600878455296433008489994624890161682859203928636447056636204800604521693096802210573777546127494384380749108821892812531544579714208537298875708690929715638614866589428952456389528395961950700178220987723386234063725039200168134269716167973101793504890130140205686545522824746415160186303679158371439606980001975502990589978918375025444946860017640731340628221175524385049743899172623794538292344154385227960622872063630171029892141920303370099978750680741717103024877920414192145637153393401702633733722517572507675105064138080430113534668355080001960811743732059098819821214387904939473593346998603096470484266812771860523840519479239300156224874526334300242754477138572487224780052815339407566397793032808298709353202576027477791147691450417194919316096911921282530550934374875382040515075517656746284140698666419957525962716426824191166814331845057686872444896552090300588961357178371845775259802785886425514429981705725265234180126776692760035126489476298507626491263866392887231578696695983295278163393656660748356394426633818292298237672014093605770823015577973871465245085179140310222564676665923358804710311804801984789572675367629936261200850197907173672231366945969640721618472135075250633262961248010197326846506028314239894315061779591292963294359365808030412211653615094156496021870799365292290956844529637558520157730439885378446103483219082644302411559875783478136764573673086399506661236105404018726774332608949134950844599526424328559056409913511327806716925660155777304084967818462775087056383279091640188393282396686096207022501462447538568008190212207025959507629147931298809802029527920244977838125747655622065839956627232242450265448466556311134796289981381342822476997677715494118899560929982787859370663594070739006316826886731489330575204615374829125895757843940203103157799309992922784363957576554903249604306016601011893489025578595755103884831319575531470916324844104133153018461410438308777998350163592815648319820584894046030444165093542477786299812104312452340429413724858573469719485488361396866397023624526357183083027196261958352214206877727888610655691036560349048061659705319819694281639317379185365486369421348464669139985637926607582863903562146255354381471846496654223713510887148904903276404825162525885109936598812534047329612956742413862920565781075987442423621601624387870175322786960058117787276185544359231540220892699435894382081350345079464511821550603462390168777118710227045889008563332405458729440539055534850872362301115576645509353547049618708861830337718575924464867400864248811468942654247804471568686420193330390410256779180069967577854467361075416632790237291978828114314905818859395212657627537540534054784782976746259362976251022485790082689910509597077339062056905848004843517137872245970262375506332967233457772476404812521511837748681459078238669859830609048015665084177349353047252548665874886363751750882973132387111487379442480321119661721497884593479034114625393460569863470814472627313782187475903082250519018727214464405013912643982906984359572551258328195115238155233278904782965199945899073650935396508878260081322967254313908217023618786568378682092092160948693879706070000215221934144475031336288904039775357257594828557455679207537337358851646232186585569826230604090841619786894938312468669704555594495568693993206939092023885032749062483490052125048721602161704125603251201668137994021289811547009334524366251969641633538672904744890553473406559875311492919932220618964539260682489108753748600978911088123143309127869404968022089315641589580915478083243356480696762344933761446905833561672550947035254278567460577043794272043421719384319760922226055507505805782048697754265302706347581679113231088922290999303436878436181998513107660211841357130337506980743100651657323921702783051386450857820936497398945086701426862645438498549889650856470997273981235346437724760289159490057043535694578793747807709885441297988770848318492886370728724584562380914928060813123904615740039781080306207964661510424037904639406504344020480470949019057135040930418607881648087017508934256863219857109570464474350337529111908034659848941914335082898419008934130898962982827519114476417575130975413108431113162247932506186448792994741424672835519170207343323733144950059257023415598612058002446533165810405021857045021066734407576720825429364299108537748776597374699033072961843132920252188485468731371098225668761208037205157776249330477275734692794355170325807674567088778597172923329654304780767888121101522328944317586309326221395638084398385196668916838664883080212051778612819241521334129770555304004539649202255752505900543615041325822280628954338794359328895694660903698008258738252145486150442360532155052877933589027008019527569501028109748839199049374773465409413086278499543955174455528985094017131904299195370535999666723094351395698796571308103400178636548223145105466068484647958825336617307277926630087349367220834794650264505082242053568356615470033416146053195708202408361993313329819902522436568529839534854092251068811092052431093748576957976209619268124733680507900832675116952395374174612208933742937830963438496273116186826268734422662652112856209371385793333552499900808861678899675268346411053858287300903189297504392871953460399264482981448466256380878258228221244293850376994645510175780920910771461935656527773286709645693088196665342664783643015380405391709687168827785940135063168520495962371351040366401821086011119925506080360421739514115058815143517860512304050194584756502583207559021221528848699122709513940412782349295975910225338048904448421933390034332803712986525202034693855157450457848318041275838507623761712618488478521623172883648844030142755504389863286456762671425485639418728293728406892695241137004431831139260705842092529733890395362961124662562904228376358915370156973811797771915852104279287834505607601148121847992128292037563978121168743320435911048394233531674676464702529311875430105907342238527736718485419247823354460366068984964495791642545723274860810848299151949812561450564654428065367368054074831946249878671753396440425837117382677672123259869781212114028141089596606561751755716181497772677180866201472931563110230941082198036013488663800393203331129424613005273930109219862044089265369556674890497065608482590137008430334342748109984904987598875489549903235177370023169060615260214930088072254352395129080173460936382703554702403698675497729363139013406649993336994934240079548742482079903886328065100563346420706525180734454312717592137664437835793921136772481873066106213397875284543586140024154827234593643131684059020877429509257472762281553419627422618717193782783562097729847018800650058319634135530124840134808673021199282371136814960886021632504453129249148667428691874889210436159629186134502198246305649517436760224714340162474113239319436044415129922179249086833313633196377473208675849774400736142215297971531029876801710201094316564992106063067570784341680262702632727813185920844165159594743966032463966843770708570457104508281813071391990875960207985712209272632245476484109164332594459081860986276081609686181409198372315618884624776534853697088627760829045319710672495939987602852717777977320576006398805777066956418975463353808407642383737984763333775808761172180513473773803363678389265424350400167395001585484256264717441952799712611870980239411088501045449284819624375484969637021082803553549952898894034706252741920631550225725002974713331795520464061182099791841825816959845287129237831624087279052060614439271989256081724368455707162416721521044750353980404194732264882764351202396810956046770322247836031692317900119831508706826129642287539034427139405517603173888316508274685764895454245116159586751920281275582730506828440314537077475224399054360760171891807812656783213659373535403870947196058130763005520619363516994847790108083985881023274411821869175833607128189674842921707926436658848392855266612405517086692077635787742836004714572909735097955082606763254125472542148879464107818088090001417933573417961968807771909355562863692466320104485050060979530201496461221462147251366150515163103434920038816811143994916377130856379791487733179698255710946509450741973386931072158224558085803641117175335606334383376805602710242045938392691842200193226751592024274095158181744543207012151256808914922797342980168928576309813074054835962525016474700033611861376436413027480069628538675831157391205147794959982397939751239577269340125370273202830252954737909660124552592480977615094431554983246301122323088459168874783625815501892371818774704928555225378287880324240252496674227813301676196825964940455362626491544065459297793670624741914397222465424018650292525480379869806774658256071375353697307317118984332248295451508566549690353506307033398960597042770759789350537414741040591434202629455172807467535796096470673992020859080952042108838535210467586151941041364451923310046692694758056277160361699625799138731957820443529176160683411148520071022141654588197335792766356899120107731352438349293365046716090306087338660052850903485111173952331954519806066780489804081831956020852953562675856431269973503451213925856389662702455196618127651287061391364357915514756124288719488109481847727604843186965051080515102643443203009946188389452804788498998618358026909030602814822139535504864290876466015431624115032909811329377237091479377378285538506756273911090747263868076966815717787825223521065523745677404161497664261870556947799199062355603566961132993547838949124811548284571101628046624954647115432921953196987519248550684888471884788232850092595074461077303954478153581849511401176722067254474423848216980983232870326225702566760833590181502501829378506538086552856054944651496195981938291438201215852536435583613000087994835014665465456004429155380229595529838331064215690621742353453350384268553874147641316752851539020292008810572948805687006756266424713922436747802998442282788773892545741034622344342961278721504086973030979618260610789473775897125614054144982368322696599753409965937322776057767271617632085067182319864852971691551743689295316597422282123314295286425737667886228899342066056291146683219179954177109587548156902036593409012031000485210349350648850387953734194422368073951626228090176653916307869499341735296839516967906195354482828031990202273669896866672910444217237367275248030539740350806320315725525469114080316908812746677458388699561990310868996782729314648094562329227785257559805278337815888069592870515038601858116301382348528950085547003610281517246707259990428139103231332452512263156218556318195406985733405308069714530043508189965742095600317892637025136522400834154994852701991423313474799039498470245861101374044074949425522323000889833549226080575084931975861992103600223223679808352562086338809846314786684725509383729627566865685363423967698097902489142864292833977777003611619254720624693623777912276118827048495263617984544576788053913799343666321624281907761017099337067621534301508373508313865172759443924658687440337200056101479981861932605405109344740201547298285888629056905972206230938080012948412974109199210196806097070052514729292440751611761483336320873673247252131152514365431672459167059144854953573358495225712844345657561453107551624867200195637966448125491781023677295189373410899504979157423588568213545502202717683687745181178814439116455454052561248415830158377203956427838489826511352047404278747877759512213426212629922168297498925318154728694843329600795818324417105858943763114720076710328721201253491737481710828963775340014398980340314315780093589567759253768281939906710039910257010098951998866664172815482891088893356798535409043458715573679335277309868361145037864977098090088605964928076851265133377144981149312109713427594590952324905315182435995444610327093044901555463394901627636764413601707337422465668847479338812521032820495112716561748347441875953227174561879916416457286057377441127806913126075297219772208599424096777529772974883830322221794128367601757824007228999148125823632323972083692556341679466557605939710814351067644613316254415823307271328821397247009568056321008918815296649402357332626497092656831552015506536296549514334525156689634409577421540009830882615147967487190481383656326197882849868917708973605365534831313797370884000689076440611545400949215331978916643371324473097478229950749120216842641174980088914957099727027280523893130125423115775695552995424197476140124887194166132813437162760859746625102346690559641964102467221966149039826478389933554792309576539596481052153953129390093786314695552434198005958486393524999475795527186422133096292241484425863669830994524189179100962308205290244557413764669822673206324370277393658379496203590707091063243106545808582728320925120772181529863392469668046278557637131792826883802826506167659112053219602261348075033815331636345408240506679161127317466216635633662174974016293733388599604117765848671634707170569325259514903808373009566781745448290891371216916334811394069779374993766847855060286763452711321960347739894410528704230773539931520633816214659738393016143967085346915620554001670673043183007938793527658157251005996047174498291412168022854657780701808796948252899153374794822861695308182636240971601976107140374640125781035947197269935458489558902053993825414169230100820396973506802573584436905567207719111159877980011494360450635342503619528456579627066887985106524426388416695701823097072448105170394645021298606178554282213070413057886125815873120169266965371906111425385330981535291045607477953245948698022277781442703391516258822665887374149157131179532700255824052338699489138138870273144680266397401103018349781707685955469776530324407084976133988211542863120841708849002447792866490345869330241752619268155760870172066516176492537838590945040647969662824240250108281338568004579227254456171144513975025735761588230496867284272173535005266127097559442547429874394921407362526350986668096694435863385496208371807287507220872442164588122442458364074708608316071661657892625458557933392875222258321900566042586799348914125417619591842874187418944366798106608255838864711210566645163258948017504649111152102549713112985141380359901335512252312338550053345260631113194515536619217066650635487924869769366902354571923220939171213683368975045863558510261408795357351646733859715475212039702829876215465665245786412984193061734562891457776265906126878478113667544259935477221080814229233169923173170562502768207726263221997747338256987702577778802552401466964821641485931928579657961739639194788849475906671689180929393430689762892137456051550530594677379424628409538443004451747358545912859481334762857530668038186649417662015517250975216560705092980081407277138540034708222923755789348071460129175247428138475726454065055656288745777428866601482275862031681725205106378417691853844356575752564114240720328374788988846902943877608405810591428388956720450913264720992259617737619289598394921411004856456182531963877915243125084937275562631485279826893944938691883851014966206279769367758504454727234231744078435631791986972464968290920747849822186992465815950382704947007581083741097162157838956582327916872843789313052806253812300343598176709306871968628069323428415045579274327437578950765707613361470017339261964897552176019196188533912591688348178450007158443509025636229223210671706304908049948226322838533018648733124750319953083252960740123931700619891691787918849496539519620210449994803170118102982042409182863990756725035234648312020701207761279493425608760249910488399707698122724255166929053829256192367391064022901847792945507719511514378676726128971206368140108199073642593388540872073000667100075873016624917969538686332010324974998529720277762294502879712139446178722147895731956413330490189819840965542957995744456744893755156503373031992826225678979379213299386065533013139833485142595931379304568597008904368397016692470765809470447500909878242403126313254424515803343765412725921606912112912892249464996524089743474888991234201033853614875545676129282279668288156831233803156716538233439991741924022798250287237338197902025506494615199134468766344579806240165653364351812405836562400315498459405317600241197941293420478179234981432475211682560838551247621446778883871958756742155165258450328621927432319543247814895015884070152057786294871232536396064725570707369844423755070894215703927339126411581200657308446228279246508546807235187363330694569013758736670274134875424327149110778362037942274387674154442018914596913544268063887663582350391915332601503503652273312118559243027714705207630391862139917073584670087635557813870148313031025368242132350049041885111790938657428100656896398771866218536698795066992370890244452577754445452474253781638009430577173553906614102815032222972202987333389846428133546841573773089576532919412329253755859685599358961562809208466674911648105954169602294612394539198712463639084568996670109912033998139845780068006902919453901494832526088015578382256032656619295224237828890639497116616228887792247666504494975732816797050120295564270152020300164345392562454128071690384234470886915646264912103298054435807101137744466294180239741596500668119034305767579671425275443295431950441196808921728282032195525416288835962757742875021642001985445577760418171816412239959311667283340497816750018589396099835482060349238968080843496807225989549670728583694292094508465343886867086301762430233756900578087150324336930538080326164629515847148721666627367564586136398077849692551287165573383403514036154538206141936375207582369145598184594331695076497482929391870555943491811641405135187500765874768374519652347930838512984814924094466403714787792309106008864373547541416367545180842315421335747897512697499116748118281334063359136914168104557017699185881008711038488408405070036111109721345404789722080548719208351218420014531002723471546894768478811467368610864305003739976694017064249062992779011610650037097554675513309912024265246570751312553365513064178593692198917828991094462430600036211860766550914880663496940354341676641169546881042406242601094912310894412596667273809888804110848045235051414432205658286557317388167930996770854182853356341594103180789166822264140414886910895629639681833259599386980375079935226429104930626677256151365699697577592139851885239768813339335775987178553411184116439939836661981107204060432997246183317964096327536783047402132559381709797189041609595904391908514667287905530460481621154937849585701818690463145419056566325554075092372145537338155576338710247795871646725258290328895543691249082295754746416414301186097015174454730412173327839868949311868417588300882411403847243451015324524322387355873875030741661032492875747318342404251829714510940379423348320661492229013877404141957244488107056443611399058327397031980260777836602162372680568578144050662930078849616111144543278536833525203717879877135452730114005748018369380589279439999834887131267898967891502280447150638788423526225690033031314401665648673036720390661067278060835312919432915350098989962675789730704773586698377809389355518197425438152770773183895024501748080183164901482763261050868658405022892647537558424786996020470559819230490755958555437215367977337326422299850339361838194124464983217996916636260546784654849974713304477313369716144949235276693348391543543836540866773376372541970680509384581593906336984008641528512052657815282123540640620456269706285047842748717152127859946963282232486035417922582032401387739286074418807270362782977288259407498630060194679474875056252778691909473561750575285295057600797907974559055745124397910031845227765647542096699446557127841474122619190525260348433365679838247858242315505635512172168766234329478042183580760741097925500761136637372586863498101752421032340734603854119294467774986317369436139041873125876929253496663122293114753339989476672090252852608403354787818247649134934600251628612646887080466315408366885441753475044946789156484943123537651129671674842826568932703756050498073265793909009089907779329879336720323787291225180113383744003617638885481665311578291703883068939192048253002390903880381401824619619535309130837085344619567529898547932226097964221407040669339857228437642336590785032262515262307994031358173138265358773625581052294244105755200638151304571186418287221693529029542015579725345762205334998599407216600228514593549747079480463856060572842247104912584527916628961873388327156218387224513000373875361798665949878444933553563373956266340145345381869818149995070905604620216745826273264800221361807313950261804549135903474957898705173705990313688916557379715432704345650975647357519522519458323696731033838741244611321209584614052732400278168861157642490165707428674533172229307735899131800473239811517981736023580873537122032771703018647292851783867533460719196311485083987049899512794209559655738674573044833458276320975847552555978194049463789945722258066054392870224540951571351426132702801112949099328031271351585445897076779281932666642843893280637193104699962273157717950635747791293823352429279074655997268674301848736155629518989245137830058352561312484458060899549475982454916958981828640883367850102780941636235096241684335473600687501569998754016502288309358150214045397737107684627974786895443008640906143279405022126603480676980350708964392829116034089189574368746017704873926374329836962198226220406932285087132322264805769187193262596310707061484397375554540360027266390577380642314979190513134422923447228180740805284970493350049498392808746803463982593769977272485578539241788514255514634835761886334741124260555038623116435297310443548523202225809515375627708373083713095389729214765596128744076355131117364996337042715870332647948186815732237072500946672177774973672972410686383678753858431479778552530692624428006708436550894273241385002030477392672702643599599255477970007744387722741951645263503733117356184436373710077910131696257558473896331130870337050027602630003846535124317080680652705441782296498161038162985345512465528200068391927797075355508929433849142474099444039985620899587411192039342391895527488055469909637836799750560801006464132437575254292389365936793488734307927842220688854495634259923489275961390204251537279468018909642140803565153560825956425733401140198759580116948065280357840229714123402389604213293826028238880240906698914293316157886196828909135189514673141505627292624477557481614197099076117086133053840271285862320332907000388301887621320219979209996267841333740554887066006864811359244322522972144579147212318413523139292792443423847349067608585895427457755098487935933763391009477297371671097268235043729740407724352726011100911622424671197994410007914094623107980120911601024319360534116220312534633498655410171124356585524231227313188702903904647151261549329673502324906698476770218419823384143280160093421501238286734048757064601398915981248449013845834023898530617635472939765109172397789734239094753859964355778724303451739403833120665393247252417246257498965531654272014496126704439148559132804298594168104705040382081960898864358297573387586798870934673803890378682346154739905274247986296055379447871122239093133147640138334060188204418923448078285862859029793186319247770431334924396765923479158687717626733810004646451676972144160566745341710235169634498820410463416657535335577375060502713158861375554126585223478700557687356110727831869340030816839286598152713526506213881882278793544267313375296775037747333173704560933828078205343406750099458184269645015995442241324168586252836481832306719453291657136562033025298180267067815151789475744923649869927552902971650878797480103693991452677840449272456346229260283126705641716381401153430101044117043451685291208794589768294650121193793845865278482117851185308595859197901482919791752043739417165095439764374723907003518416907597330921126036180355712557624704624225281307770457482811989813456536239751905322259624155325237732067308653886884196200074984640432643421080400293836595620242483339118408971367617477831290760318506810090268781196106745012737344325603183111195699060600008112271460725727023336354608550501953707270120541634043373620269476187335035336373541254510588016071981579805775496093182912360476494106665986993337536170371643964802612521884992196587335054044649378099214269187634963510765075066684092755611365359315669268692541703604096012761252175417841338875654095695136879292410297723268553669946535237149113505655291427113205798169541246534879031625139196134184867867825011999643291048068144658607291487301609959252851531098742011003544355692522241746660361927218424201837157856180319999407064735970553002467515018593292629517722584864951912505704052222988555925179764241676530114684023146099056564817466658941464079209122748300067626905857252961954454830021983756978362773470335873084987865825249456129501716576152864556561276693386160689059974747542265172495716689021716530888009127682538346910462350306967718489261144366813091124379388561950793817698390869958520002799057430019177980423267997125204718235855240270616054211211854115990799882920215126395244280686280420371510441822133816297673909376506889534933724106632772304554756520555324403130089555803591088105259839304783398835168730323446865023459761827089176942972632812421073635279636099395308368964471077533719051085599577984956454982799759098413967348414937910030530566598983547260144996423910438572239247372919772567041324738037585740269046807410338126298141372118057579775872452951990300589479617537161714811108033716776734719814607257459799047904528669606564458838609387443344779520233171745251377326623911172798255097575200275843033839746385474591303390688045668293090099119299709445186357004531035403768682160379718154925042489756235041087245763592131844545232284077371627968254553036078707615485800443258334059989216439975197880565552077105658382100289706027793368831699505928425765885474620543988312586856591831321720495379790795868614978128080978831457556116668498824903166813235200859406702537733059382756900673583848465771592197136166096222614191274144253498457546298398769121724387582327500976216759187769159394277966316405364198123607659158878476949342196926495709615317554557925208935912178253717399934586292552481746853676700440276512587385991334021083857315107229340739234630430090988575315634552864126114756198278843664743721140086364621106826399913890507090536390003489686927410298616418391415111231667105756696846520586266933721919714223429718554365906756797616954874772307334015380776145744408928339744805199451275106881998233578230432434567450555784172398932402352457916998698041946427562557338192463359861819507820609189406039990437659954181257161427636255637819847334438343488217067908488894616389225274451138005663243430852326260861456271940126930739950190471523272253188530364052828658720606936003719587477403386565648643974817724244566880825220579941797461739517680644740207381790365200284463562714554333546108504116068591539014103893840572017637321569641388855014123618203108771510140899479798409780067637461834450860886848366876653293652128139037121676197692882231053898343652355087355433593528245573692087615769888593186208371880421130128421414290877947949148927046020016008388823032604352906279911982538986825348790875344253893026317616396202690610546565194999392926033118608930761930423008429660610618595159980413777921925862543925374749722157651689852908731172379065480903651465278509506468140239553030162633878636940818253533350864117401431358142204480133908991196638092830945580470069124600795627287989934600426175611841538118281134693071127056059188152994308446095085319315662531880663932784439599906246219748852661979872344265675090376068724127307809757141823386040453768561231106952042322156839264296716557692665510861539485469608006383389167869495074149100494862713722122037847904899743269675480874989834831547564093591338959818485091569263651338675702883790986405019909333196632707748442511858539539419177899375091311982538993730889068471379415858862448305273676526822701565740496195830780376577817340899866332927577494659077787727940031953717566615574811189128196198834065415248060037703413846232330029929638382127930190012218943861459913522289805810275360111823379812601293792767445434304165022477451046529015625531947161396926864987589994602916340643927141424597711358685630349199675328581040175038467099352682849767595105222607361707563269884813237855075795054139090395322749254095476982650923691539309422521954419184582327703409410923213581678665012713440333119018012091912706023318195212350032003784429660143798175047484226925625483742386497935544247504593527328563210527722402121041015418914805238382268391993292617969649344676155589551740957916228379930490280079200724918728566769695511693981192396806491294007646859853085900112235984891472859302517702062979162270429889894338915939531991396738592119210791379676096112728481050230140097864540534518589833321360290109579316474819752814779315484815215411487811286377419426429779647809802236768408164150008964272829123058437895297857676126680624930790580661439210949119026613661727077439101276611564040485920248904920867571716913723900968049294784862133407492538690499460992699504051107004990885644076911426170746501349168172575097730351270362863201580813171593322441542207359536646931710880938949346299623979760480955846701400550531653269742432818852226820555542806426487847156626121515758959937654623130221121528854124842963821515283010449536770370509967169849146595844869557260091484710233328599854626086278005130038582353286512912649796639724936296073298483391748388011406444713753740890154724400095556685336794637986805481862181529202834517695212049101465032623580132969533110776452408872721890799239591980614953269610845247006280420501722476277409868920668684966858667236608637028797295329268461227665853237645893276035187969881617415621936859365923310827040185468344646012559899662555152661259318463561459023705306192973015810523020696678275566374701359250695390238875137561552928247853133866480517607126694755442511296502723795986957229262750141259769236421428358696945488637356898596459886235377998401123203693511330915308020335388450015919206677804820251575106643494927341976614180739467900919164280686919523311112529538120604453511790967116695524221673147856918703936009078529730320928467010017196301051640993938729615509446290738975863507832813863712982896314766939149828509469712867491910912351686279530112066538623931714315117052892933158185929779454373738903057931925606303550111788027256636075244730835914786015749753256482068226106464416089747739964962193878420574595847380885432365512751281432845618305383246893677506690573457699314350957189821293407302570681616995999560743875789046781534155205006971720190315814333463506069040070597672739082471630261187521767107802439700720189851261155243835852745094991330087774706291820015743873517112388665790074488834699257088611915865072774094922162209081589613249943539835068454854329686502942575185624497564474341505633291513371834286356558983448844371124703546939551690054295261230078526911356399668408234379722626020368427391333957154226586689540395522329628063409291932846050673972600295171527732548767874267662498638517039692458203565027986755069224287428006217437216069028997855901946718170040246969124383077303602424047154433391843733770227155771987531499761313914444206339149913186153517754509431789772071527319629547744782018315734384751493761908277829826956612378585667171883834381721554231398499372329597395455044206245877723530240526384329405192796434660649301788437663045987845712594384186732535441228074680623402382273436742429261682854962314829021953212876825332407184530116002110222814250700951093133590495751090862275501170917398130244765035899923091348302010517764024671514359379658156448787751370984376822239408302870470698429789744747368337679252921614996021230336184791358715431096947766034087714094694510568548247467738362606430262361410299341598555489360080257215054296831762088957220840131788186490778655734452263462541639563365858947122771310064015011096892829549338505888460659273935665000877888661252837111701182343817159411369477869621660384014232294889412584171134654566111564103648993328813307814975822644320421147729386104965926749112587576796875983338811137576218321918212354468040699932557384612864038355696584004071953685049019184538121296401822421937316499346503239113240550476407660125339126387233566482570552677942594188490615417374065787700640666809317174518179747882575588182934311393352413813522748177687877268572081942131960176534456636910524163140808207907851374000210543018733764694303998528561719121525953222496133424256426751112386196584346157963990565772874930175977773082736647250494081754364500085302144811496576778612826334044232268346266821336057399210173616178690384827491940478189446796792610074979274877084948063679929257001590555808685273265172373550710635259586564489105780555915179669381189532841257206720006364968018443142073853875616135543372546016255313788704200916749113643604135251322838403238494577705410418060820072567298812854706385386750469296017124639246328966567100870372919516801954041327170985305346508712022802049269431913565249222507036842897759011026557432879787149885348435285482456946516715716161991289949293815195097574570994354675263838596863403466807165474834671201264086719522253731251066866366872165142082961655834504692626243790574736869328327790338817654760899171882445657978099774267347613861524015581276779895963379644924640067896166743073734755928520187209587476319190633917709977254601512133671703273537672096829179559019322029340322917281079608655641298814700810767251392920562794673093777414314880854287910007861464529219263885544029800002821893280579063236943622190009463744483160737992751447100388376736570661253626878662274158280150471830468166387026463430472259282956389360461438862159793546387567480180798328621034266573560654266240112771265091693425213188772400231354504581598669788850375954459422815351838289848160978619178250955337083135677404168718252509891875839123281395748223476194960158045771969394178393340939080693315125830266107175751971671407132643711563326196283955888241878297310671787342818758368606597453008674106196211229620349761138158886276795739584682814262215863219456011549073807998160836094301957252767413834152770207464990153240654482990400742502298585774044701771247457443406201362471494752859118713536390055264964450447090593074626087523501920374284024146177013697636108565409331931674060122092454963301329510220637773216368880328056412099549898572933205043417461889437201725762971699120407971701035106657177267643444127375072731224549616039382833179350631416969049707176809955832876208026532017383806132016180946256598111703603235646442805120562614324868565643057848930361316527817098913960518632171736926333644294794099623144169332186065002779345290788166256187190173456250970819928541553271118451434301389358087232994165059623598802744434190150475735497550161971409314734712367377337397923822857520153234867543503692887371998923917261097587023457137406911886684049018492559018038139392416450560013030356972626734784540843699208156610128106100597691437738360333908020243098960051257516267907223947915598368792422577362970081427928540399566044152961210571840269889282749126854059825898307951810283406229212982434641502570721737205788831514381354342852566908728058322606443996123451628786069225448316387679393632218648982588817332310173366392310818601604917848508022546113489435844943051918755493657251807312378144894395089857739985028962235394195898627930573559366523041900162466081310852233956190849186755354045416691103869290344942816288772677652860284929604288534989657041322526941916416691825972615082308101622074669794915782722881638948800941889884631777486939284869220242218219024540123201703278233284098403923118667912596280583036790583157668887694911735224955983611213294212744935200563410655563822634998266718917805087426380815996767141103399985946910536756376851668624157976881558342878465479202039455957778083494454793896856329314536784968074130638043777391333585442590188759825712914327249993930828509310256671543068997910802134536256253898517308620120366301230477529536838491065793070374756942657071295685990940490502144149389540700916049021186914672493725041848592810975286803731078938956203147817083710833725692020687387111446798317613308447895111834140693541330579169307991071459472208090180343494567820714213796434769843439982408961072850374511294658005785147264184653384725357488876498301830001160517906644973070539845675100344059579602642966121259764778145239061645074722975853192820588653884057936793268071707284603002949545570055466634140094206802358955788565837840075933296502901185748449979523806741278330269114923724717848863260724846108821869866348622284879031659236933479527442611730180840338129747620302742351700771234566765208831100040237339844941455821233308733174432324892855504810071692163776472419880940188050782918143919333696309067963786257010301010917993771606874108830109688852015366351415912536786908247750169000825929783894848224289579755453045946095278912070023117802271935199536030699554399775257449825170216497505260534070374266909118717151595114473826602393037378953725437564319103170845050800266737292035494486109459980817506060372067684933784410188887969406318196712332407174102640466634125553523631009586159488573271251050592122432836164621859090096486196318639454489874538452416098806231596075579098247853924210809354446069668838750642079595808808199862139162938795140005014376007506739545678287541983420279231793471298571921557651229802636881040768296736242310468468363327346914831875049637914740670593328605118206089955768508138937332021632954371549837178694523143950924075894906510735332984642102750940777484306044368906711955477154018543567828036312294606396995518706154557587842182086715441228252008291458298934222951269342539312581908098388226626302601110877752626559717554587793314062843589868662614368423903059224694556851108394544767716542861260968313852671012276198505881982128766484186188670241561230327502591121084239277417079259585943884026114852430182422566679481171593561361148679473774021059525763281899147150889018994156428339055792134922117889752589044012405426331002344753299836756849881051616074122578331047327447944900824032764457317672154660762412054946523038420439023817242890282981949444760824945844951072903012222032078458036090919306607780931204770932867838438124050233374217727384043276746688729928969255593713424501676939378442805951927524336004538233113772514180070539179606382018722338255205708609335918393389347105624783537620218066511756396045254073107388583839404682647839476357898060778522864512342241748007468488660285193962791450196192816316711352700639020123563036179979772344940683082472397436501142135155914378316929626001208899971619854642136106977985371126087478025916952851187052581541634378251636070625395380723740550741843275175071719698721874409822927261038253040759141598092300955836818004836671083759616883652060262346832035875289376494090260317192253449115115688023853993799658106624716784649116088095120008380827325462859986769375560878613981220718104756791980000223291956094942752180749965115153541236589410239742571048597843160784147257805687841021000186753646483196024861829026497724360863097114390162148517426829150064052794440775307380463465730649347634498487426645048030544093414331516266393490597158457862038743996570796568343280455325804092681523204918416343459127564020194073411147534121567319450703865685450077604157321879025272381660457673175665917561240149466272755334871324229316045979124524633812564301399543966024677894496382544202821843901797825207857906624208812504567645029859573143641178394843227577359187787591282992967140447083466079677849174568592227599055320340081897954589431243193115596621338116030310326803105303976702666401497972453541299650328405727655009923992331058050196967430064508206795022871561461086858600281678287084466784046166082728799160235411530345922954304447687169698335742799708895234339006563535497513175016202310272832561343083683910420561479208413846375323121666554900571995562489232616780918375785168811410577889631479698976647069874804257106087606305645575506367098608569653530810341999328643815467287137086015152278776169668951138890938186250022078411964672764736678799576345686002194289451583068729865763888951458947148442516098446065249321898889324937553462535662363511756247577266366874198217441659323136608225141487077371968548398226454636477468562556535481967225936097656824745810519776177862469391029297721837497920324485028148700922079975398774439902640444462292547073807719637894493146426695057732601098130031197746760581577715589872488534314570164514811825736112173439580938667965280185567736821810085266840053854335507838492097261068713501210657551839728792584332042660057953852523513302911872229812646272793190382813929418284788512362662769930934119782355295357204979441373740786941001361047875648919525600307679863548982686899998521812484802202987227055663582317931053938523282545740397684990668772329702343257015975066542401349878030562336358124412763381517011831792657847575125867574831197590380182739699576583087278123120055689109252367036681054845366777184752073214061283268429375021006279646395019304358666898091346656410727732164920105263394333241985389123400791701954455668301073603928265675654777611496348758773209437624225849018364467283836973922036269506156381559276432651619064316299519100829012965246587759781036615311577239410766844710563165341578755744731653943786081227281707752563796498738105035559748549043962991570087797573229787450227014235493463008794711599759053051744641926535351088941046958668754361301026945173611067671568203515586242385077131485290818330862383165623058317634350051477300784104826120396231507827989229001747815166810243493130223328266775889855537348396645964409092117082518141213726776204620244599809255767396814730021312355232852584725541715266100157430217582181202813091715433891169370362717462653027303511041819299427657666696429194589166613118564095049862040666134043232650268769892306079591321868371433181023742190346766436414906396272529920134859421173562920859859016205957486720466828232074991137616628079457556495165599614568469540998334127532557826363066040738343038506050606732546150374273394569322463579779734092401425226303197282533352561305065493960971250091155319621074558252730023074719820715649369842009985385491203141105843628491291490949523906898350035907313189774023515566174153911630635928292572444187033192192907163336127921721678593016958743705372616915827055157664034606314946479852169630140792513394372688725396668987719142205639824254111854756949855939791059664998553751138541330327037691418387164650741970441288060730280540157995112136668059765811721753145789782162739110184765620447779387170437184127654632622039495827802810021314167161050503721817223248381739159866088268322131488859956994637301255573582451913267857879433769705062351930230323590891347618793953737917902610509117075950277865689637849963563153599928294436689820506641716246576526597491038941243629108875803907334669313888407245419876278788737479358195330468027144078359225878197804358735782056472683485208390283741574549219784307425306357383578764380099642318952616511171710414485800158480498082332830026746075594487941554589782116947211085711574024627356089795913780157146293767137386063655142078692245521422290949818617963478819797551547591374482129355154871135531609694127510179028065658603009720341480749038538933278091857534940694798393999096736790482891860590418958969683132905813380941652236542053201223443543047186828479930200816996836605730151801201842968694576273040121880817837591262160527350549511892274824495056732706571872277393824762534116297817001035242993832401682472309542038656778894465912317260979102673713927761501239336304170124185163753945518792722023643210475763440825370018922142999577879767577115647631559712630924985700816057145697887010852833033040276722960724688473426005591796630017144559733298221056869659796652851719242988523924846555211161780318379686972444225949577490732574071712429414009471415650399461183863959549587452637355959166072821774260849392744765287318144040722851074038931954016418942679367591125442028921114559656602432715536351954799737994504741569912097122374893058625488057412097652771728821551402626334255763663183573152644093552411160616882523531059343573878583738170340045129575845497656790526704990523834777710705386738066378528311906728331159266120733265333920088639152512872806805851192840625310836168115539537009936843514399293516546665408415179373753855306908441373047372163320475018700108454503967207531351215337006979865121767190429977841277876030137970473251113835453522180931282740555760704395581864767778454543956975740052945715837645960963085388496764614286907672133664945192356523797622856287748130988361328586339309480434938459675825290246779075848821391207042807009186394145205485567287743704052229401702166217217125955667612740860145789028589110303419084974537195581250655411784381883980122146059271308739024286405743349178323473663143409853211025179894397486526546834403626636681048745323381077445140864027151389889502697947931632164910794207614766990185978063824376814663438567379020722993755319153249148416820654380392741153773037683426005659926475659039277096210269034768942108597741547737669445417049891035763528160692961731896339264107264106749783411765965438227679851848048220080966943180477965661883482511035998954983428991780977841613283141313616489572321308638844562667366376790528803066168874496218442917812638357751974833450149459091770823149177825902438602564863764639941959342763862080587925548751539573073734696187202710484138806799616450959658581289604154870570903152970920947596463555300228146930202183122767623012060005586107170185745138903677021379124927051789477203400094101372118210459149280295588744324903337887418855031483997963577271847801624451565711146727269313299966457556600615186565355027477865712832419457953533065570675656301158634462221397594616251045876105764014884088948605920403340081434305190754278304375996892019107820117457447862314426737328312690841284780402323971818861878554293975230021701913177744266573255980018409488705520408764016539250763676015312213826615260217667656211711553449968894384607659097514924115655017058975521592645476964215596436020138974456376658170528160344097679193215702847479720295548994034100009397096603383943586154917069310247260791614656474656066073170623153624764908893511169491805964402420657788837664186439293424905960982515973793715552607488770642222689471161526824910890018852770476341727637875108130049435807899092469355714061952159730721120131642006451390330380473794694474611289851031354237762242146201911181784234751645649096426602160863990635724178906664123775332027524944932479059422596895179980745498194898981840599983091210256887810165013601532852707665930921456276767391496552384071526917738533298036541465466596407748839369679577648572766166057337123203663826265999015077524980132244603933287848996217551295864243930291961506359193751967743397684435821208650020845867467852231349340081281023972201847726830276726372441475724469437114624337698250087898889176495070081643681973874527483542759741004146570853944103855860888179097395061685120364611495133218323633719187318113225027446637401340575217454672912971318331417859164319948819863697107269209850332718864926674966509126655375137051705469745686429425362290651838658608000997744040141093895471278894262671172395743783208272818565984288132735757442203881074067323142057104907823229305840249115642854775580155308054298535296904116610964985616732190825415557801575949715862132323034488138087274089654660701493916059828316406305524134351910042528358827991405562707567139475858662778493443549754741639443732609722571130912829929343781132726684037221805619958859649279540481314511975128838871239351943853220780628678919638199254115092451975135418273639808298321839372563774853244062952971454128674141239332217347641369779652969586776545961965299974636627312181457273942186727744531124287146132332987478070458429100591076917633138659893120697675540396989770481722912219993013387695966739691891429170167114726585378993661078587377363353609046691286232029357037179125407521372579397023564325631411496904857414569522931114061142563517063519183406903287281925377337639598634980727036659736787697455630753166869048001875138003909160989170461848169306741314931683550974888199690404377356223358253565278189903181838693435415317249353310456149619395357367045602002325430895753184966745566813352843358692071798613337402273001053881417845587696282324307042456185687755855007319143701634331457623120146045696526629453616438136761230037319676006140265244473232770767751789658729929613986533588869685537698171094381294525535560669222719336752228637221943945193731967106321137424822193138982763388326060980025639001517167655675250777540593522479701476256308102760480669116308881826368346141944441921944869494361796711396870612808466961068971516397767953040665670975230933011152055070742529550422211512944737315671011658342330534069487791640491312211971401877560425604394526849546374972241953287065636642782979102489784984840806585461700740347104706571971387243113335877857194189938542818795808110711916929690243513013706942302769004260721241982321983766365423012428627784413356439100196437213155237162346224735735892212005451527295367772791732243431167964522165442903333419318761279813429325078433240263903648593520266573771977765496141171420655332150281765773375138731344409263391573608642718855789905092152047177580736709053954485314024896598457018253315507398640004441883726639757502592624960825267364691763040716267007434346129881850363904613733457631107660705099661979544092410488942717162929460935071801326946055839149442311855792014269141046482232045351767053809482403473132647080479603420632047654610779002998449511888857188372371008867882471172404944269075597544314778224764010848428818175479125268056795197064278385666293732088562199378204553838448521217239345241724796352232590383506093356333508458846987061560760367234537274359290921352853932234680477452066774149422936748824675930018911865246502401929869880850276593528778050242263946318825845646369202876976385043013442102498683488580397566758332305508488580335122331704334589231299958530788723849946371895099208830965028886908192842877920467424327281528356853938382450248911538674220712389553752067169243912268083864056985280588715624596812879866139321716602915116552138099518031915331315276403820972150181615746929143421119905941352515185731881324407347551083496108554725052879076244720340748071938339530322959552917237932502568859275297945384793475388904028665728929384003191074727170525059226289665402343031857613655233813149931563698290563242429432578989173553250417075773536860362393687413374384456700858889388305327271385157484815687139256081506329345454400854635115336803343776493057641738174256561574500818074619681444493366753034189400101308089108553949126830374575850002123967700008894773517015684778910888474875957790860365453850415342615816708041909387356296022462171748892171374512042890070252752636058094709811491651329428389149769456210704382688872385739605123051081776622052778030847105335133672580432799369378967939094980097836135549671370194622434735796767203876065566110368751108953410502741566395468233806393891129869423899627460074309335331116973506303966055528147938448721964288998135144218339142091663655356782605069845864074511898760914562048704666884932738235833457404776246314310296569390864798242613861861892031302765324604994786571814380490872417839709359750029474065341229231776720987402652779388488907745632844200553828849780601947974662728676121406406791516206501706071568425296635914602370558065742701919838533565097467141935588582939668044695314533820023264462743954794522935462314645908300051746229954140176371327028370306529835505628454350946419631433030127155564511468737808271136013994024483503756649001579965814568809355410261884839353245948309528744485073859395804628862443429665183088752132323840880749378410162422032771760575604827733081425807937835270899462882208387105313674074831861639723511880593196950563962383911157660869193452824269321573941611915940732759308595792422669027807719260258946043509320949259050923608084468117783976019759634720483429439130087465187913114141048064762460355024695773343897360544392710655857197723940333019517233824592799173680513007179044082891814277058862225802980495467223445574258900511480670050455173960399537462949866694637045374945006599181739471791416221160260325892002611204279854437458172869291423375479012036571678180967928946771142840051432447349583406519662491730628080850886427636808550799671807354460215849569895321754554525939053655212111261781070874840078706129023427698023641825171194492964942140059085383769211272771362413464065039792491815441333437175268683647016773478937016725535296193861325633542899328447238171901303165789613303713255632837569263069085352576985515125798907559048433602534732568386183963722796050274710028035758932887988380970616738714750048727375326059129509906208901106353526733539229242925684567523265494878139604841553119820450355034151050384502072176583130687748701098028274549356570724086478365350365933109999965366798431819726079817048938603196606221002863364085749525532999418297777184661754600898201020726967889465562121784996087287885952088604958614624320267374182114825102489164251778837804118006815060181966820915641505435510838475496889750254203185935441833985910223715680132194857198008207734268497064261553420822693461179244018276880504936946190500999428209046132678213537375616345024292060734367561630817338549315439574616968214965025763918301112149354408323749408354436995312318789153367184107922249645958301689787027276888570733091133498835446078223807911514054348527409604483147637626937299852222239881681753458298903062701176426798016880732262194396058899000433762160539365887825607586698569783272615614069845848582240195554018657328712629936875513610536649973819670893419254842432220942513102747999806560607855667034535589629972400654904809239047557333364856720014863187198538024801896979839083671797698679827675194801994017083635865532474449975832713365825860592786126214459116798045912399739849395399647470917064103296729029346778693485177262833607226359937993737880549463915628211227590379860230699924235229278401191353626066437441028476328619142169408563082182242208775009192294582857689956590251533938843458936968088685790745503493974919550646647827783492786682737554413407612591213023860031803528936498599428336137422776527029333660853786290320432818030480521126133213445892173084984302297883678395344380333666281011023453847743762169117054836429182322558963876029607953986281670745510369805849622062943760804812094603926760060495843694228089912172490769576844067657764572483571419609841604035727504779398622597364846888518638593898483989569134840475526022784039030101407207813682263376137958113536865175568576582400366965331820570179211193696648813266902484923914905157577311271626367571368482836656097297508421995313496556455183657976849938700085770317360213117106727176673477499978688120123280492233395533632266401791169839359467033587493168396313394632176843801372517844205765431452622779486448029698910922439602955974916718094589569150665366448006343684879333768109987686209490718135834315385309787559160358358019501370533714832156450673392230652788726449808127178357986924451592658299216477396172269650942674644219293501276183943984114142480569668772684790970794156514717367081055226944209908822200976439632113545133940550949497617961992332239767293896387615825923895409258782422073159636467742752570347758939819726438075398920474666266274274965415922490033964053053960107757994323386098445519084707433306185727788426424058610390373674078393135696673052405747253534499295445211515412880607063102289531646102572931309923154818906022210834437214690110677751460771638022429025647967994360807609037046057281929059468720735169457542986589349028163701713856322315603648731795273389389338553742933782247072249347491864826397435844008894156458844469398362730002083908200236136938451864680616882227364752799151382277194194646675861393473207376812340971244848993454207078682460127929362591373271619923066707640376692743500973191949263615672801001670156944172651783145194177459848742497051444152223703799898216051898147901475886078027371763986888942538339301136992309599599407015135891858629052845470525275120681387708180289052370687639790490358267186589070484789852535687938051748004790317226635132762194205181668242141757796649531397478553359570390472795726633760984101065425694752574126209754121475396216975815405332865859024188422150093833826864228149456338489552840094393795551516663916394563132237216692727938220960740143024559965170014318616614353865454079894714078284724999781385793635967181232030121432257653075757930329207306712348167977263068626042457818044442556731217279555699196675530829455632344657806029838517727278374603226159141759076486742845677381427941058985359382445215856717517275859445556657558120367507919855395301854894666566963964670019895221011362919068960025802368133532950806302515832024557194609455033559455321215455110864406436514983778240337580387924508440137051226803338673885496371168085295811881224124331429173940766512360719277783686087609863489535741607657734326449494742008270326100252016837649295439652561410264603684973748721657163693702722797529175083105252189659089874482467158307868120165337108243046739520511657907860022793966201878579067404074854489366727115647382459373845138866257320611059896290106506538206416513475286328011993844197312400063967323667678096918528520567007417658406151030063887644875258663139157135923628554744168678507798069264366232676182386583388307911656810393475632316148180783584943820303533718863593340879436755044646811617454816491785003744425658484527322530834205830036359627768425415903521176936686618758037209688218116107596334902869421588354979446942440571493222885340950062499622552852884096219494085829794470782916935862226502833393823679888714816506064605998018923952936827679202280228046770177961736406758435860430607170495306926902075741268311509216541090986052539393935584849849299754640619894609269138279149042415153065030773014482491388981059392793233440589034000181582686354242067288413101571204764933792603332041525604481964342158809113837033314604388699659653173250563257837429162253314344696293611877654065389778554728851807204420114898863968757427539470665723802152729617253589137396969979764814173377477644324435919350677858790497859740582336639127941585468320969953436944884622604420155678522970364302627181580989313113029103158944777285051819670450891482107420104912258658207686978193738159366402769319486068701386768350148684442084962517472736044378506791625243336954170435369391799539239922682811176789523690517912161651055053351845509681421315158682377654406298103322653377604564351412675703739885465336160989029968231982506380354993047906472044038816988788385395336387222316159547215512503123118583744254442663263144935411641909403771854770130954249112230128603947602756950760301723444246029959185646189423087637801428113786357735516723916514192537889227722362836180261905597031242408778157606197780748012975504807919960471101376696022435083173883683735023905168686205952198387439501275990124011114217032246817764566748097965185215676062128451517903660683732025716007036789401146549945075027871398312200830329385585753358279254780838878832642461717234454230069493797272674157422571355582235422340983751552291010204567631524833639144712679236555976558276568592711501203995659894364019102008124657078191579455589564726468199368230644942301545183217199545388854717155238743308684259925821433975790773862802080526096156784603175019267888850486675138076027962532842765300028642548603812070913576704587616824372422859514915426202439278983417436992589998724428768154058629523985841899907011009904857683908446943979605915349709389215515432456097817959711352133280132305620466854967462922374317022081346389165554839405282835617583300670513064395286751808866272022881572178865327242942044980855646731680991733350392044697407002894872943870943877553764587216391039588320478305451106714095651809833557613867070040906171258339943077769475143316671052256721598562404304030298857842880564866448960156337735762230828529605367572129368028153715276334282972896156812630334673944390109487272476170599096917242912768452684003129150756955452332669839535016600899924648304920489829911429608840449080933658364368212299387231426200065984703988177862944517329693652855807461316341223511145049436737385438547565940476061729014756337470365751467837682756186891491721623834314778368393895345945207370959023243876512835937628267409266348704397427717929530723709427197160409150177791027132043543275233597306652333883165989637120323022837875290647280792443087502601897465968655711563523844938002912275442449146480700109252542113283341964428706274538535739446546139721977451874620819972058497873744037300528609097657246369316514402719017340298575558046850958799411275751160746806872735956197721132706690815402252201300360809668866836638545449853140415178674781377514541933561616599334269131202555005606159442733556575726320987596455085849882067761870100835508641570578959322322695012440098813000096398249784994485377918269510524402994040147382070650343725544977570378908060730019915628877157844378385272484458472573117097728964309921283020517297006497887350354403897068805504643158082354957813046503539117351138325761543737109397040328285678538252787181397149211499584869065918558001687676991198955147478442930987100191906565581783380875093918114319975102978713089484307535082301177927809106326550021106346346434112014528775190542278519816849500129479851997348692090897288857523734906899799889148348519137723290874755685373823640403329600614498336154138739122510916669309318903168026939875548384473006323317923876136898798621942379992530275594059807349238751961382730446527505291361251081803954899485454429154931046530916379734595202441678986111180874806258066165166126630016202512891787723850496960929353975164427964526947500185971852805679245982866666815194583386724157214471660052977311382372800093868740321281374933144029036964991663707853766071191773782017045966892430109438402104343424633498584781738406793880584435821520566698792159794722987436943209331635002716519247131616042873772496624124606961071198837932715329907344720289845042103957035362508708249261536893308598207447101277478526930082000862102976881877025623411684918770214491233546343929734068709935275620865538955864073152398026463004851522816733392776518402851606349455231693277093897922381417616247417457192362921551734049213458885175797015884273634163606667871629777865770148819588175927262228396742012220108586335726215778723339458217282016188661791840621560446310540637366716238195624833630116561080351940200688015964768030001495946656422210072793394766089015352706739334188034713645076128919623058563424316372834296521547513555261688557840566349265627630689672549431067961552743298079621893502040193894870303787536251314727603573652948334232051897272199098022423970778804390175753762092772848060680692840520229154449970580888337538926936744124563755463682935209219258042973876596021878518985773670946515679263631973893294315978036671164218621149205212710008139109394118000292634152589439548751944357980796699458991494648598262696850077897289384987846467190483935898779319248624079094021831598908485338547552760726997251720778552838469955127103795257929362244388717734951423165241216100567702402119818367197757912558936091440197131966189953911026324271012526060140590514401067739509490784141511849584633725931630658992662494052960014134743574478404460801068451108929947840517293023707727045226524331504970620270471366643989021464250675578088707877150999400692165851882541892713889097124365280365217316121990913021289497860529114577264498166061557387170613805818172458007970715888196501589059639557086767634392067276212932686222878193523954256511236305904099024222051066913703471450422442130509810997856312633667279344275107591534113392330223644925652781175973114732027145591907264706100207631125989598003076451581345242478303028810541627218459819065765691084569292842907601174648376092931237223694903504814317314903362114418435996129853415328189211998897405279703382977943975986637881523430819817749369823569183421587882154327630161400435349198618158060907974308327640280135724291353640996312578035933366251899139325004022689816268365007208394353478095080449780779496411687690980523847970225287475448965610245426093376828716406203906426537291305203172673968951757291635257167661137226134216878167367258188721989224419036815487745930252689407847617885148019773178892986880533695217146196243481930587844105720971740424275633782734309717622012398063542017700247356794194758541272518407916286856443533498084949741801493396502958501871376793122610052396909928173041307106883249440368450002810661750084563202906409799475523344967255243179573267285544799875759030026570864287781973474923552225773546387707174185617840011607034544025114339384910169598458926540781971618920256292145288560519281484125727707240403747248627986392932314704191062723569397610435479595080258011252104598787892698166269389216222596716887273978068262540978667217884175316077309318945435459065617683498332128892810202423677690940700907060802451392294245390229850850669031311663069980043119358559596873901526481905121654464178132735050881852675745532557337581981732625526228956798999028080182254108215159788775973701922851747486487900492400404246323902067307730084936654047348679665629626949235499654287805295874665120933923692892523937036507519850832823159379719617108664536242665271275533361234211770943168347151699491901644295167608477235939123563217334192208581517280094598520817756186557606677552219672020786638156452467119488654842860246079849479043160243225693143310888633934780893716206240987091461648971990654112170965810705695809532147538187001334702723746535113119495815842410792165996234228094003462804059332157795838276880236910753544627784924522448904907791445991631601246324304667670514587595674418523637992595816554825720861471440664801857303371356136621636671779702057721025454256104840546762717190007161465145065641323413116805368253401212563497223103016298961455001148850335353841071758341174570625098419594278946522699451974084304442942788789320324211599048422455458962724791648632765079562195504512747037459166897939664634430212452863093146629075820369613951934729789936053245533704350851593052221402813045910010869887215913355198430730254022500199089247857189463479928218058933608400511844598453741092574027404436685348273538407413995301395303575355749853110109731076437406473139315385857063859443637060202055524612723085823437611300421747155355919819467369591713477223283794581959912556283255852253564578606589067844139899192012382403487784937219867650691961184461358377097242593270768859323803909528844662705496380449988912541021436893659226130893619931230079933695996028626884566435830298280316871668041449017434949423633281092875826163559093756403316529796194278902770266487189823967325976986974158506355483028530987437679322146516879756586387786003710993101610961307554461641007364075319481292818684328808779958880862525638716800702085699812743682004202139117601700429282191613063720500941378592835658935589685254203277199342762072903250744886131085570592538125113151609882645461069420086240388234408595958195223803066131414126065569877230972834183262526621680308928272100282252379151800384344788860041731591747757814986322935770326584397393101534564540594492481908889466176660231866706567982842022435500767613330579053242319695002184651858026744920381323627150327849256923325876173210655639501456533590947722485003388812190280941623338248245217384342513572087282623689671349953633036604991952210052539157584383433642506451355221835065131852476109159554450325108376894303899673463152734074377660995522750110338719088005185917655883115074251851739389063494202192314516262003528446810734912671502386760410762512043668778188967306941949397371991912263076442912286426859085499329187365769479562725161354589507468528051928123758953504683720945403474153964939719223216322726589408434588087693134499107481190870318972637642379719100120813982150577452204077172233057986185488872819174137119514485844260219142310132604845447508330149526411348521491566032375452383280556558596393085670574610946003122002135687661485002052047660754474566452727267675966011722448379069928017975472040406234244593881817557915120156030416739091475949665316428964944763902227867439966960638834072328998795698289184481654294888818812137367836944734321776052959826566757357656098826927832088957525118745296971649123517648845325687476476368516463832283827054859816694701458889431451641798758772114031419005738751506886432604870319987244862339008059495771743629955063168630606900092220695428293639531957245477020116390095943988036365573255836337588333929153641170574706601753232777522214727300223348136861767337796275198590352741520229886857704882222991635477568306183830137183976487605739658767321027855112376884539795861070925242984190349290153652215274007057726433172822069109085865724313682340847796594009573653399527739036491157773925954568616231729264852678000063432258444551994796929780051279653343858909964977569558650297482237100044017125461981047580401554936638954761023050009247620691180055623160097138963736994777934441490718334127363242014216379313716660868934894196724539663067019120471934840432662226599696194936589978550002192410675259929714436298847122140458890709040035895289256196416585876393134923315229710775153379750224629512356449851307885174939387560566086402901554861334255235326615595461819675848941482394948341529958883225693273368900701186352800485496198812078678433603112828671508113578669656775186133323667347833088184871745754766832593571859972559500716148797052809031379426389437788548333012817663168970223297304438422859109344547810065305267825825947077774515269300776027898872378439575986316221990860555466703256872142752733559961623668452038926594981724199484605880505353477662432959499060632427489315100435448845300945098213513430057637051347830000582922432134926179831007644736750146925465227866344084431593504590309545723590338921190800274562229555968763180235231312947237808283389747053935661258842728754386800390950286107464935446989141966763834464558023348093027318539707769889863095782317250004705991217388693213819409666363560373276202671146459233875282242539045376398104485425443313371217686367756708387514005063146351427332236314934610777462232098443684741036809813220982516617008811490540992101275727385263049020795361045933122311101685850079903427291772922365978735234004996442116031220630059299576146944067468691248626652614577092796063804336117238265503812001919808088297407410946839543441312292328725430279873506633275013521929716894146315938926810385371528435970194457808896280892413723294446440598836704576920238765788730276523291832269243974039612733535283921907377967923416929541569223370213238454127451159535444103524576484146464447839186536510026252520028200711342163267165615548885705356814718528845908752927536745051952829640592780635387623228326349603420058615290379863575206656246535668574349966705560858272825361026758160810254306801464047190240557792675090595243970273151739245262436416376069159442129260911182944622724232045499679569241596728291217581266702909305867685777950983362978761366833250597082327853073730499081282992989126083049623870927996716441584957451003802629229421674794338881652233504610514157684472636169383013479403793847236549805436644350132009022767216278523544159160740101266444684338427450108689424242678725120020336751020883226485593671488123997689720266344984575658627605824638453194837252671213723673344150499060571524247997353062591808157173038910883285201287838265098975973004264064002792125612884726698079393869343930240251048379683416967831909466563805698592777609424700544651342820901962526847273773723543200689671527153655154909233004730479772918463170239370851254426367500511550125435486319881183918148936491803411053865338207632621122478618751493696294825486733791787073848913410381928475311340007340766629749157121323237182988612387514667172073836135595616770515028879084501131593622624740092412103837935273397753411820217172418561826397959781111285889739626762738845578814283679027215478233010809572167078665818593736550070545349995059286488126826827003519589760278625829755509799071660959014898253159856582020937261508445879364415678445032800942933840665800179757426804543901235275851852149006728023952136379262092901075489211435432261563140788456952198247092972320744230358756088679222146139514460466235534967984415069461648790303385750129532195564864119598900664494026144895802520820668986717381944519586716694692811827785301418385664616095668885918620623453716402939745152107116867550061642812956042266974961751654604407446652256258312188729247581891839586491961853233688004723127783044715179573683443570996172409954231987010340208824378120906984159891191380514302285538494163491283393229109445001543927954768782485465768565892164716005414210678878222053791333622687049514851257043965018606989041654801146354814986908443645979589120455592825343995931999085998529134461695192932556045891909177018309003714502871856581236901442036988058145852249465131495699877346418978232697529048460429731018895424741008024169044291101647808524905411544207579020538590652127443297141662292985481841440004693978556158081533500000586593334833722163835513025819344243427863790276719942944034391272764818996443564799641865242478072688903600494871374226704948821159418014208924101450166985926824174437020750054941685166028408949926266942357997177873598452990784710808573635609632732248659292195401807505102044497325746882217971246760934995975171392862779152588254882517274627469204607468566827076871028370338355495788993834963344026304324173615226514271136775770307963989082883007822183877564798450189171460976932452850667099175198174584901968320936489275790159373359736742588226742016975849100237906717895312227784924290602211733366621262967338022985697502482699265287939598964170383838912455538977212998147108938240331326448457400493960835096750760948338698734801437882237938552871719042862616496649546069774371344736796189813484289512743370902401255533316447524615861493835600647628224167873876395181004583353304142118999865195092204804482312309301748179825894146869963839929522272521006147374904575855452582021812404025844836824135134575319452609664728827782785918443971659095410317500493267295889454764144806174323719316996443193694408855902243442177551292549887601201591056146022321430871885561672230772370406923729095841789088301029366163176175502048661742905071594556151236634169082231562294431308631771895977668270894741930081926310025014285722684266487253661744301222288836130980958515472854635327954516366309547148111073195106166432456166566685196030125633758352155390366870298787934207725429596372394348528584259444558720609674323852113688545716130277109779390752536638506070068125284725916328871055702886491809116337602961726595516652417900015836795647949671593464334225909443171943719045357771290800786759288691773252917424353883378085588333406704385930597051120352778669567145072625426231792299108089363182162234231568934611761352189108314881593074787259223479257000562437482741595310541932462219845660508317571694853437197220338643281262472671946061541147479704432676545392195599130915682916283999305456571689803865960797306147463317764987606976464995050657208105130689226871737622213159960926843164425548772725864707864425547248290497980783505512491551392314086393938939665883649486044703638643353357066615779797846670956411181043000229470205412285599904825770485981442282284203092643004162952609999401067243187779959434552287764434014483757020668213141681023536221964267472678196607800081941482679771869546256687767088289285726834094195357443712258938625108381083015735574501563908961379916433426670842280925163183598797452997885798475370586158102509962914124704415343933091910233073353716868823046489588111652015104920538817856947542151453612238998659256894688338839774477027079511988508207036542196105423572273654200324598394682809045946655994190562174769654380287974992282464713821403188562244106552836776686865096590772822101676580389343183738003382357649408544597322317815123179610806634862569306297732482820945950029453586121205558978075354969739388004088053828743113675220307616747358804550192699415860220325256445757539113885868277670229810889900392275711975534006936991428743162183549197489178612050124704187289197341382984344592318541278615542548829602892838037549721869656930157452910497561479403958804808994973849462305149369638253116215706960209584720406114737288006089503061054292794714595272920412585079500721701678232800130766284725077639657860969052820995759875690046893171161095995706706323909125283890081896145932558576479926670234981953209323687899077060007772139670358465464421670112636142165558856576007920727382576337983677563881158130687447526260707079884340358233992543057153883606555797944659158353889644957141733528349505946362677304453749982362100076823668872857355078763270949373027418601284158379483013796582655155495659081177444045669750587122491043532356718584728223616042106898944764757523600712619666841110060482624418849349868437607461195385484718458276046400116118956361885677207276511907227067519405832992944754863447782243406868830277354340291301257788027955727017945032585117809254730337713003258752553505853524660597450943786929250380986577148174409970660303523845483929219228473481927826456558928113313135875363363026025639219715965634945832245757036805709234851262626334638573028733951424635036900786207123663732867025699656668091775433534659267714215547102824461791856743108392373914367267954469121014952517164932214031756400930863071146975691620367688602609008579377220522510787256493815768306699904524326496673369552107856098586180353665879929590040753068305038008990049621450670278173840473948142841023915354456568410846648430701075481945354299084127318092894889684009605427407343682629764074844436852557698938449060152835842898680332710953957509331199793739264816085039194361416607045426418009935682293612002478098086595419615468161275753978681633297940218436186809692733989014949268309213991572362875147569363733710769845269091137875981652435221124964140680021084343803928050726486680394410002942845950162226733022928988210927872351444791617558164093238472181356176034944080698150728316377416378913922402555443144072895877882085423063748155124750869297110839725331358075832361173032664803732691472608357676625636571441655604864933939302083850079653786333494672695582513099621709505874360585019842030592290740171394250036500472476829765492250453325217125804176968848702113052456567446890417432817441698684035965148354303663296454842838151466170160478685693387499290633606096663791316261268677521290702748536342275017069186298748459654466876360399773455081491581391269543710367198422353150629328859118045486514062708809743509505348242064864329947326255863129650131527371098966300300356207099029442416008001504620900034452918399327415622371239696086543986253027479496782191475270110130903171468970808289968943969671647411578617865992394898938138185153639725756235546638672911418298164548589339834910145610601509883291637454394518418816279584960591407026826350668706112502750092490988345846268637703038694182340267571268680959228795410827487394602749934876376397271391793987202303755668145861945034875292479611850212590376169244074159290114888682467281627347226185618849721335530157685381965222683459387919241776448678236037178650974523133803797130682451841345449435692962324120647053117398446031311064707312179802999050534525198841252059942707935067967783236695551821152505541855219316749275024264571185825164752760004964699489317568464703493865965270580167774521437663972036943499251408827243396010473532401612511456714594128459808275157547573001056306399464868786531622125613588613058810619298048337555851326140825768710997080844522589081120994091919803256357378849916999045640944805362697272022057931845603223442599091562306579262167564336843685689929604784928365237635330424746667190557309809143015061913265037595076531513822355375136536064457477941632662427733082453587037989868312054466489245068391666117406014772953004317415236802640653163082428849587378767889908050948090541049225004888392173700561372785424193732508211017026543550293295679730997916074414004580270938379988410733260338966748978195045489917233033535234430249630964370673954914785605647354359443513807855363406760055413729005543028130660103924598186486996736029251223186992032259749593342545189508296642117577490667412226682084975775319411562613311348028301936334294882847236728580541379890470918270781402478845422515712126606495303414391395174306580892007679563053791776831247044123908357353896306659670224970217485258871368191311974809729432542568727540174624714474969464387664254947349285615230833563833492488769171282827410697633358726961562909604517528507260722739616781266315289415495929270682387715750368116432281288453356383305493958386706392591524668322795892839227320592720139713476849571852882830660320959287894871328945795935511722667623572439272131637378235535563178202707909896584701498867240475322819902545529369838340231337320676164976653672869713466682668733872264181761060150972790816163212620547799837497517855699889500769991641975405406371469077496392509118348140306250962772228712161348029435391149088811636552502050681710229397470644240261241392481815312616424209431682951211803674776160708203504455405538462066261014485503931602076529495673439487284391637681887026296938370003104009522724390498450275222491318938270275183990502962480066198760712402542222794789005503632592769060664917528603326759531329710217825978136720042971786538827894051948384776243633879681067070858883806795340941211055403796237464887541695017412220390040965351826282541284092448198171854472989514625566354424739410470866748286122982956649348972346991029867987838045193546880219237616048001892815963110211495661489299121700300764057772452946299405357748861355616908473140152040474343280740826169613411048569853826911676756157671092533907408404842227384579684170133590217377353797702522957164376044928994637482623584462248113201190209118800505910695414177474540622181643917219279106143126544107030229426969814828388230515989862398143920982309295759041405622549702280179169126381236480090243346940926418586092561830682491284661521706531890534453257457835157126010231836973676152178004286742222255567607937709341718769391581248084709395126500468604895670247370308023485332399354407361077218752464366977659769499436499806296830628579074992153028381755863278179236220623732005427164942235902187962265969276338530228360061009355729643684351475134318914537961502624063579363612144512321228274189981645899918833409088009945727704231335674974789794427473907115239485394622157249131616014284129789436419180221263946889360329365253039382914791816289358074549183911315211083645623386593354097377757529246969783374645833927669548498302132491351522622654875792012416427152840275005494841293666268487691290684435796465042362250196696652531974783330584479184827473704154780552101746810137631041525059649744427918336784268750158982879209263266566726515421797481638466940575062692973447782108005118851593411461992552241649270272869131768693712452037293786071012329403387608031189040076611027533610479163224058551318203195451619088912599200324436200980188486777415003498867976860211660344864542379458751183704500993371609962592268009823509492402807242453156810614156388817080787389206207318315739720748877729191758525401885485034320623846137069435958055820284903906776266470361284733768472151113363034592859910946469190595014783727297968216153629625986559006243596331951964820194139906568117985821695366907151620481522503463387708924570108283306805293171785483240380026299598303514509797909429534523703990100580721524910949135744931344840713850235001878611107929686332861814477662722544872635638729144053800849303303018511075287823146043066814382597011854265949013213028335715731314750809024322855901437741821823888889279476085077610579825455392156680987332316937515649703177093876420179485220459503689973549923407749627070469823839832490040364331698662288450352959327489752492943880788420472760238560927760556108687148220588667373316009461109387027439257946494927995973983773254847824871720737700187329348397474201120369022438385737530288456206742019982098172069642439218248349379889619329368241091053283182060602651736811669032393217431829052304576749984178003927353594866077200628536215834201242975042933062628362948198546741659383099428892514900098440668720597688019221141208125052842709887640765447903382181414309127271663068507120865421017660476862387471263820781502645266050199387564974451203590804579475354768097445858073690684207431751570025456696448372795983877478166016151957790221381019590554461389335524575701931599832417218695101861879842314028060640631792928392506762949309066527475601707356564997679105741074537455490598407556529466651163550485211225168022966978129739741042636869617306970285678111733061110926498180374854727827715384958555769643376391325977506736683547023301236399279300245026196805230719766057218828885392845422463804127527247523158277598899300960449143888247175052016090943868309338635019608635342608477047393809144836302543795913043002676321142012425089860642599985806677966310527831578986866167999605320779298957122822957407138802718877975776882043806890022116915636350494061521547193546630202748065329426794325623287265971052776535890166437598985011787507847215865637221868442280648002680492551722689730534591202665744645569186596761137907663477925840091503411236949187505563765536929923154789264756041064367203246636245631699284242334100945936858328650658308829711986908814435425942073156215955529266145036383278837516961745224625639657050284355072500821386484765721454744308563049557419424097425947506259970140466077239169452738399932156218862381885095147077692424737793477583529342194461193715631211425940015798862959359746844828750947617641515118676284860668086969276434811614577141095245246082350232412654881148403876062606878552258057691074564849351119035647523166010596911020887542722752593408489996817261321345335872255563219179797500121119532528908066212928433406882718065880000219555888684151353030038077928506695216851311755705582835706568151404501996027642910491188927943840613851210988631808111764379214615457976124301644283037973386631588616199992079470203274209402354646898099655477638077574983319661025640163181728534784209591055031749176225146758094774095200754477346617980470314984687014439483948598482122601395664704289800640395142080939212487914994994513703828412277715844974420865818348692985274114836109038869642420865653887690094699830556991760199369517819202478252996546144741366579568506266913123019256800695967374443764498908090126798855397879735067296778389883655908962337830566452338483524614031224941576028160293666928966050559854103589911037505012803034500183775495881314240233758919592138144721938889666932563075121627690631257886151064779234994310777620009302577941046206179831904306943477608791335042010486964213742913974284835771630628808615861613430820125504392182771981352026717007064628515794449208230223331280480375782972155975648374869022178862946579989831702259051764411601230959590116078230976295853655344412228503114718527769165192402990109941796080694766653405834517409309980294380041191025022489520545076422452434155866511275845720788474907165073803467406888023608718220957382186464242122182961325654884400151136379096464313635716317901193482424187877723083581960353013443023732303130579700679698591001478760577993641261995529200452614293431914881650302276656128486976378867508169657364992386823609899866390785153045358887638730095876196489129446598572693894053472477261294339086798839467898930236655144936572250913274309108842484286111885540206929234626645194857470754166548870035906603550998538551285150306378721153571327369351500378703377313715526448394707804259966161290876519252101221779927579686123221952004793307833922889088995963237136895050463120766433066581294592611232590437651382432282510628639454979544512174239295604115352952725103010645502393278464227548213769087961972245395810290384293174423119353640837491282966785488665800320564539704189811418788289967368510926770242982291553778108709848686574894176828296700211179433559009559040168776088635924808154563743944863641622141182174820333247579270595432569661266317749696253865007337943396279864574310222389681412224643145374903466370322703426266354361369522830204079123798772700005444207278089483995095423382682239160153884839098097991816257820904999488647354121807853646369636280388080478346164363527890778736544145004550482481064402886011621718785630962057389353611261973216279413455696929791005433117069791663060523901774728868077342619384002329827160990634075328532615855974352414258037945580780587174843081558492471055109547370519495613178645893282379560943702114982974644343906207116784467974192318827225027603203536048851339418938029276612930840729576118298159279289195963405295953563379765270901562225255489832919948019814070211750823845562080524326703446857153044746563550557645780299786286358873831446602753710318510948924468776993369659993217561372767861008044440815601048799921355222887756621286310239608121134128015073254589777333619479387403051226070491484730661958755084065271337440297324962187243840431375549490369084928230486263611630213185055050390451623870101367678910738582623227865857322458508946599345931174355950286552124965134806927593756878856734177388078469232994738786701774449730693806102128939774469385745059324387608339669075142544224526045446042208941020750198093572658776109713591526505859766862408686837746966636981515211730376704617836269054145155794223675962036386595042391127223027361997297518773948450796624415853487831890553468756896728370455861182274328027004571766328131571027004082798488142818015216118299790470705867582320943312782650823605430067716271288212562020340230061241119172972044344452204191947727567176958941345735608700947241024834166714298483254747819336079002072868917425603763298184895954975327299287668177631875881581727309330026522239129486608320307467894064211065835603761207574681121837486674301983891525221110549937986924069946561359326406400729670367211477240844602060163079810194592797674263017724402735924347050804285769123758464365225997060458387712300620180529575027226827121574711924263067378168699127703889952336059982039985783037994871257574882921422347040789014136646849489611594151712998989467272482954485509907879839478012557073806867542305549802271155278441730337449476661810029882135462277098785480567596247207548460792214172391488750208657555009255929645005095978347915453336338172256358123940728950881502225042545859869155464105616376122806723859757958002728834743720765646079939120668893533632400234460931750462536278638059890966306500767193147270742901219275088271208479061160256214021433532095996467277925522604126588601133483553124569755407822317595981081464984710949454374016419760264244581794723781434982815465759055291810294049719924744198295219672264179862203859174931395756383695380060492207369444539033152169895750057111002492152146865346246101386729005867575309781825604965995873252999640167087467111328188179297170326977077616997622402946959619348661239628091475323108231260392962285621303809673351797724205197714959180874818873204063657364851973772422150370032730329691720965245345652925096994045051588747258087743974750790634615288544665568192492044603767796935503054827450839448596242612809499061701734997634558594584922740378279816564222019374946497184389501503192085538650640596226546522363159570648771066279264673875893788582719333901709360927404521017356510016938741331340492104293233210126164409842381123111612405181172538668664433976743091777642359572869318436499468260814639244588628630357220414883456806069513077652809258556667415979659145460764210467987102546436753366075013921670379120559522467612204627249976312721137491886130969886664375217774174384336920361891064578282708436110791580131818783589097771226176236299820743071791675009900342062363079797418619649106998510374729462722308680639288918237967730906611550959210462301634528532448605534519907504149839197380332950949590773025809340242888377300541104359922031710878425576780548766850437387864302234348048318370350709463155099873213623896750123888809407555662043489008201761326469792620410888974801968677432399109361420627224214895192051611043608196055133692441903706786749428935221472285224896353706177323139267032890335456317380666873402043813981785512629063204886965020792149843564342809593329206636278186031585634607260508424499092340813676028815126441060765573349978648766791756389874917081748409674126311074990611128413220763169835642084762038614386070259652751701832410568088737643954662226930266522092547768321322103311669227654180344752981207901183830718609076141406120303100400733810424480421098409303584458023431680389496300045927075194098291706623027171442541560422662667713305075345767286031597281885776605548437951128248840646970214699157043201490473767318548963898836142316842869456241037139817734796389243711609625157290036799073436976237492645136883034377600019109241426501519235595123391278690713536254872897196138996480539510570818480264696043832908696627516517612382362919196554335094017730116960900476628961024177207604202656930557328054756879369401487778536568643095207323578382390246292998479174211258028096612698762169003993070088268095403193002026683071572819468325364704941730189672525355309177202598187888922274140735506891291604033336924110940075924542668044286182064472300733317831214736687896401591211286730053179167215889148208457583203298705328224236368580250988793449855287633192159989301156492393147555332158593478798267123102814034744587569648238135176242706732556917612816395023965981427716858068252024346573102205813918510077836239870612874732713001852406482900379456869434314018944373831047545472435704048672540531993672592901996337926791736035433405530503584342770116850320434288701440085018575660869772414243646915456362058745336266476834853856867279523586711844757254130778681963943700427808425206258286078401650517961564570123417556278803934119202739782118916284005019183106311669236296213687283837453862543090356367627273162901220159343966702809085391134593919023544476500408533264802441401153622771396212689980500672140424273686636353336384871991933172655346449667212955181451641191137527700830010624708805871331331479642134126861261250655256925348518266346441963851245157499475173597156719613768305495244842056388739953783759683724026356376355223614189821785214047753179534218308208152237329761214944561060162926617846034698461732248662970079465624621096168831168322062056647052355103046051096545324581914654515927613222960952977461837560003801560681789905374837780705337355544935648416348938146243613574861961721496729189831313317025124573547394561656058960801393458436305859899838107353493685513181438949201661943413692264037056884527275691621351254547834483899388024237779302761122996255721124673960120764699791318959137991690731970209956851636512807743757207288349913824838078481243526243152386212911497066035942581886468647910118080985098928563003078204783328830753315062692740573256215978356935201875364831210031240478975070462925539197858648660705841081584707567215455081917854424573573109757654431323260253844314420078721110104340661106880325473375291083015372344876368550514940316637198520534055673829785855099281673068726693320508627989704894771178472142845702579153331963952621692161138806735512944428918445206258238186445982615678659338940638723870880244738592443698933921885714494786841751137800806215482975213376322888854016557193197303821481988679826223024487100363635403327564947662411225049615278498823588801591752255798024442393014313234831749667015857512728624958719692013272993489482993490185966554096487141987681972338650629547847403442187450172395987142813514500258193630763375150133342541924629519844735836839214577396518183516983688354608481496731894038753643775512800450494254070397413129177906077843466983566816771418922639959949093830108907454845718669852085107548203889790644488222488051769990234001351037592286939934849812565387749233108840288912360750252472424159977039396846772239972753561719546916024113487376348327763544558767087859864335068183308427677410621777310247542860544770984758292938680582966666911729255082624681800952871687378967117559171175236511030141363791630029903814036038861316072241135445085284018293516847703228413870097073603862975975662176174743146796002812621491731295384526805650557525343825597169725622379823780519544765895730880717416447924681571110615958271089758837042627579169906630836176502344395811343996725207632732988457730206717550844526970554599569259700468139463179134478556460759640992388743647892870748506412207049814533269626562896160093585193159433355684415358685390097603693275545435237562320295272732984626173902832715791192261118058358821963439647556696350776281117359512149154345640764396249138210915993248068718751366996386430392631226489458582038021102687151909667698946748114166909413747810560288492662667231035202252860348143175457145852766995936810000717679150900616439413522135408650451399662063501950612873922405655860729876244253360551203352594107069715536536778715697976884872799962812335132418634400118259080804997916807574517161506539418299905963694843247978699155739096667135714188019560718616862243771401045488526828599156998139051028027410596738818103568803865483909047222353250660220252202211824505592237917467309846631957212592139308117468249714795658083612989385197526806059838288222474672124696050102309037967514546924740359043070098197349950058664697250252670851908541855468925042082120430578232071993482908372866293897999090796103607276106736803482991362191528304135686558093539817697974248758245980975089458003268202970560093579333204067156922046076191433799732631261437714995183533057964758199550230904191082282231053004047461276273686646120969244993644959518253658015491941932372820775865382258833675225102953935142341723257403747090245268830052647809664659940268128756059976335185069494274787142128350709835048128106699577547113565643100382717183351635942421510473450598084641719681328976495485393128562204025308280206757621896196106734651760738802186292300812706442336100320583557243670886532727335257012184047722781204710122669627881229890500296050198338375037705372341824861436600569540345642853206675472485268816432278095620376631216094013664284853062942123376857068971301175545635078281479306335319788523016357495311762224370917544643911537496751293384246911758508801214431027575764378554823685173080394647504717574781549614383305082968138558167995253846900771621892609180577260061270679552415236470411999232167533176458775937505401521400449194688715671486022667340459085434496906406086879801221875935850836158637272649886246962256902070881159027855746002483110679956596312134939498115037328572822732261638721913557118610491119224105917596018294361434469729401860132834831182663845151020233172459547358151591575345520092430487642276419101886450335397984879987239801069958863918647533104747275825298258185430502447329091966852160379374019965043899291216958777290295995278156619445086348776967742664867551654416462039988541962620390054814511618812497610415995405580602222031067320760021812576478881004202692949353327970611369726818970859782012452672767307080979960960519214038255261978975303952477587022247972044137757191545771119965709723496744648354836360974915270821025098963795392188521367208540262262397134304302394466081142711723720781850381895376626690677710258831203741828352515214722418632830459390410054127713914353921129748828811545228515475283818640880891796446579228147259270634945836863939408361980626464258063669945328738927568695045583429344093662882575428853018146527437450665677955953353551441649833443271808145726283528891446927286138013222388520203119217177309160621536882389907671438545352209598211986441161210669866317068427688222629070934084306012859269192113167709298233114716080503961780242251370205059024892346595577265414335883997284302015724549692748667385798828679124462451451567060057021817769008136502534797555460604046662854571074639154277383824964072400707550607570442662603149507770754404444853283023832648696101890380851184984303473937739955264437155770597078655278882607341724984108444906974428291057267295382568009793138130861469659694428696345578318047379116970830811246453570266624751533089826993647036754213480372750333105790696892215414716391014949640851901827632848589523034241826091845981488138245982999136300488779842140091148540241669996868156461231113657852913302454372890885780851917884217570746059763606267990491031901163340845213354190855543072654083886216289993607420457651561826778541829282057689277655261357291484862160961266321067675650599532865488642210589466312640029967738286142598029115529674895506008060616684539469397763013581746939182745775829085176102244104568633281876194771314117844339847939797875525382042438924972146514295909672050581066005146755774842636621676730137554193512057395135978578660965411372741222551695084038488624407811373890053557196101404450817169026960981591606567423857299469887661722818798794209697064997179876450643407284244101201043266325098170393949368999484767310069499926987706295193375687477323152321950484652291173798866148181888339275019913522094727530466204886043300924371379149340791076804029339181364255162230793456438416223183338220030808020770680491251272770458262871381068638488648668037270437157871728854959005002306789265759448214813174297853014813546701879245027223533170491092424617637973811311304266609067593760468879355610917915254404196232138756401616090706894975073666138211414422357395851704163810756112779656360423418878971238875159714939695467825962521335418157569874594372443989952889138198384312499592588804483773899079483539392858319612686460937148957926049119212414276251684539374795066562204461716021585125295870463416732516506147863051765726682133428617452687554388499312851954961544764147131125837927449046003190033882150002336465824647480584544921689405268881315141384862549575272978972183046651453586166433386253285213224570967689303559130934697113194793277156164470469716873568585097293916349490118807715760254945482666713925962820083119133969665806436690519835298437812241925541568118609285686095172581211179390235689755888580794851437157014069323964577641348643275444086595032462199554893090074782699532377492692024040374710932977198085265248783193509094927258725078257172547079822437951581901357273912828314874970657333325057623196088314121486177056460704578165228218553907756988936099550857388476181642714507327439245115476944647603142960596809862531165226482325465612105167954247761262431751957971055711788353409634317572273895899384066482226374192525339497992053396534098543889107932093333860886142120597654904103015867483249989059458887191316833264701599760119425965013777756344237373391059744849481322441517070352793527741183142194639522546956867277624823286176622429643415716097319124700790902057362207478244683678361819737912448918537499619532556337758098352086061452596066005566134360616800560730850895315385814497595392102020103574476030917651841915644313289149725953838001139237298551427965332271740477463653707253694047921864191510000865515718563011729546913042340268722798344932523391864377754663866927367000331308483374504600772888618815248189581374681283430082096391887651415482942170405063040160212764169185624055663351055365184316547404689295160406702871737648936634129866299773975623881997486734047220645873618876361734857045461041521123819186206183269113570170365858760515633367420462884413585394471359330530526262539704572263985627665861619526373849578864812575020238713512949499593664620647763567312677248556437539314219936240932228013893437348221107940421612618844174519172689976705581294173467957569652273813994257325522802839802103503042606450417152122628918007374173668577045111635556103153331271901008731069772804599382425561779756119621645904016589776189858537406965974844941641528312504588420470258557240427577398192011388583884882091243827060195683275229173289002899342393158833744753393648022381235215192776198919974404812775671838860184231942965002662912358505613319747632662192250297500395724633763443366622030395268238583947190142502332548595727858538298913565062072882627185792751498557453678748024036204385060805331078928938145997341422579230283962504269871758489941064607016610584205954654598122436032920425363239539959128148046871263583760341869992689658315901899909297906000430665419321558428901143272138592217794629313019682731992415535198797031014786533887301529839253196048183415503335011995026415730448685874982749507508143716924273943471253373563978550330731887604523763067960297039735586175427390702586028063441789226920823184834422919176710815430437448733309189776601699380006517725098560271561921167025964786050934780689798719513668133741191580350075506543060063705810561855312807720668720896647532847126410701127383658408968574328026871822866437952961483718843473245629866986669483248038551467397521552870435661762679091297263528658452207147043828061263675265888696646893654857742012296027846874256612320183726696481345302576345536178945398619761871213016935378506430706317010141515631424712456998558978343868191490222754465216288337690536986687726430663556058275480795585802616201411224262338848058655121754071249567387653671236501617336898031272797772626506351513920964414466730682447839916379700256206651748276525944362576834017516367229317795978433588748116137824510638819284334705915408400368800788655910005949510681281548146013513185388752721140403729286389105209749393911918388271906590634619013607953464204734283628484098594111653362059200282273559386806547214985201911544757613169342988316489296444821164776696597302718726016116108192181413017756239584140155215160768800173990130612291546140618172417158596715635399257013596732612112974103700044611127355944866542066393613286669368097536058969008098501495499958668061459555871803177046058019516307590010514911983353097431401116784812669809716621038120009191672039491753943870796203880635187851891798219761081609655650863640519447308016484600027044404150747457088627088402364676161928764548499228346803133308169475866113637908269180589257663796453362552355839200560801006301543328186965293481095561332121570046502622967760207185085369358084614099941284246105645893647735887059071522695699425938033150388158810411678569984569734878702431899468006246157961761931130961477442749383075645446197107372706105877403001504539631762157604522238768829560539147028284978741124355737579531051460891535440369734689025895736456286738115171227281964768161053863957314580455300621533774693791334958586929899605921305072442773457571018872562085770013443423157176781090255361246825435665928717609192640292890415585748140537769780002801227729790593283362552119864853144860451929130106564263221824634233436949048984769596136224781820805543080883742812533401189289190070313489555805222770123697230321054505819075305666623475924992504944215799534075660064044599209194051924584100024070913095614121228828299601876969691301874467767650199313096462727661569599276367446021184267580849725679942592869750428554859309938078998517981256524810007853975719389753160668824708975918111407637046301838848584704163127023345400710680253758274458786785325254787073941032549150434149279746416416210950278317233116697057151353527741552276909317707013137476919259323795099441043111382152945364201876448103704112265207992886337301487753085322654024189120125344783625149270843052432708002799446527920447002569650567628218938026431555268134886101550693670112439521266141644872937305496672213300860929534309796453911411841384223043372798268561093042853259166048590002234363073792176208103516559939414828584737211165370704999290753855329158764911679625848372030539286659557276028619261136553277302284467489641760701586464295932406741355048481506638215740769941377876584422436523499178865946428320932608406978127539355153994686275847474640112115389241035138359517628930212137158784288727987878652640167207125129604992857921392584747346827637372501850456681661781116372765852261773435124400992449995900626458753673204707583448335353523686492669574476711410318265500712430913647540330025901042262972111735905392316476378007425614915743009753162030040672402238925682426010366894842219889830223358282868129081939795498005459444456204631343818624267137861601210611962586644628799426812910435768655642955429855442237931979829542555502724972156263073077979790663038436852176060808896289276082520087427008703246152520793085308747041254917710253492506741202335438668650772731867698168273274993574508200602446593094987136194753088720765179531086482870159248398978791362274496685900755980184985356857106364336504425696780353878887017303217638017145899735750587571501263982309088557013629729101534780498471220230197686718503657911649673108663992220798640316899405064444397067579704225148756215705911472982932804712062264473179735848495305740647514838782419197034922724872436644438045623199858860798623631990746285619747178379502226566939298564441074858115380009804110110517843693851185551184042072754523927355103790942183585389798035182896005656794346516536465090872439770061034561841326305259528999247480357477477620501320770074104495443602732537229270848773369690775481220254447930164167821527522362752244058010260965691634914473295092385303714737537482483155855480825732072245922232199265302759934548725911975917168053617197878759010277752545776480767273282003864489462045670904920803148093712480489792257344113650175186362493364933791451012820794773299738737719755106434955125251875346102795241784768649305821959351796279928702338532080564255723540857852523650983673400442109166606816364317069327297102428013654559703982094015741392499373442559404746171363329461098767683561033962547893423016641747287766967831823955407397108247346682930250667898707380137932612223180939346792558224255545668329792245223522335853212129961958978696593326359187857583579342577504727343149851346753786066006302158968639059293198161785101791886740614138520564065300250389172710748643045857572861748121688163985610754864257518501031175881215096033258608772556616784023582938422957023160656030353467555115221664220581845277512465947529546499319722073401488508203029396996328977076756578485264078303860203294642675020601844840686452596286287381439137762191933616090353722300475180917986188119739460443553974889706062547091191279691349277857715335402855715894791287502644811419631934858832135540966975940230303865209996447376680425410134674515601369810862030444851876957521895633337787204107610302549873150132627244589564648023114281929710363182377748388556663224663609532509640431510492806304671445129558779340954428731447641102821801756655903212582830676123118417201981607634735140016485350272229689023768556354078945014689365049525768024347954239400393575227386862551475026474625162136928794524711089795892398852156935042406697798168182796486766178970182649620989548050701515551761167547569411868984798151361566603280463161523604185077804658719356876897481665631878488817614340486204698574429498715312052241305169065059967346482272395793786056716392788064999271234255886719881479601424004434243515177838536390350104870404210984037163926193505330414417149657017734739245403613639331020657760283320914666256557713057189432509145547098328325919884495483791844319436022784544709274202395992429320765840470202361657175488057883742367586270633165398162194872380148144642835704433545179956148556194091983685879462790413329918954181760802608560280729938159485424224344613756490938166033018385356891438377900983137330719234288974485935985313039219490247240520873773819494581171475553093800485731175153508682344261116634839700256846201693598866658955188571056917335352940779046349582146905903488676769587964440810607490626168133547019722460904524655166729558465765813926663393247546612655068097675066139389184979188180104503380474325429576199910861228816077080010294873207688821072108807656645116949981146145159861863775801662213002303072677697214351196585635938313972359451333188547024338135610066292911406777441224224622362258231123394961027833737172210788398421270437378988355113839574846807462888003331719857233145163899046690123651569603228159831379914692723472709982277156430011520625477787484801495830155130734277276208713986093441762174986841744053500432174545599628485223466383599753413544243743407198544526746437293844202853303818486645315255977855018734035195031125552793786399806555453304709761741108903308497448580337961986376233257698480829308452695447892247632542621511423500089828754812059094420767353812883117357400076181114980631529646470759658855480435057061870923267886624247644179899172627559643369909134804702179388110793059926952538545727076001223633783016880812939958458794018019038640233681093968343157815334090387050384570271658333594035667691824487762332973240555713374780139673302034579264191558982008987612632983891880583933679345269935215375333032032350825327836431569456751965204170771005632148536822342122593981705379843070024417670067112932044533566340274787887462567915463939687480226890868280118766892132934621118008622808053292292210484645383863538933661568160231550432829716891424610635937197249676464193024404260468110517246939200361569802111314247388028649915486175264272511951420606714823769998132421120269934328452448953399577737284936662804181242102536914387728686974632073458157339277187254128399696578469494806852786821159814791376268021182230519982129384653543708881766145414473899961657253574273908648891280943497813943764470745435666050541136927991998352760219800184860293732593707990870666106686990478926046755851917516335152727223795259431759387947985229645193370613897384116625962055904995704810766245050858376969907312495554829340225654863995215548913209345900960607795056688332992516287570056450890991037575410383335516386636247615804309517134992463714341850597445927094930345066896444221425642303732427108400174465567302741791919411702282711984464406795535144167096198838332924110804442246365998707591231092642098539973399212952829005204980433464147187013691649272387637928624599070552182374904741777344547525330638571504405514848006846133735934225890775859995242023663952972156348066807944544317088863423039432009454375361869349979687756159824921164688638458025850663365139011774620697459592627235622781032305027803733444696449293680117073736749344924343110465824017174882230874795907535537736039657572906569386975131113187206239896971082481698471537873646409697393630664811084795461244045961661347272724216157704509940331166592667512734316310343139945474514439931739048337112511140173914867283686830095020712626073439967337291046938371272618429063684906421101942032779193945892074282318363501377309781936601574946429839560294611835316046980560850992663032747742460778901953030103871074087772301844907612114945660255960830444325554184335007606666778805671370986584608253710403638216062984210174674332084463230191918178860753483861969955766689134492435318573504254063412223984623735535367165557515459419219549017794936375269362714202155644764241384912357896550462596897020032427134103758382851477379749368694503570124402519682422727887773026832859037613534014992162158553885395458264902208293552201982185904168401633685471822713537922850988367326416164308731026394825157343854519797215968106635998057757921173326559805125665448007146511615296132920472559951996851820868900163776189310330928965763053401999292589229330802917712031852661039916982031360993940838612430431746461599464965792324444437638478527638685924414547472316710715905045024759837615339812544232133625273511548240842927516598517842410480241903885770873550473832289849518473969281095993881647694367873536495346725699849308520998939665475787485556017601789146881128370434127155861609055278687888887818185162025502689053052057525313785233685417859260688355026843564883995548101657652514051756334559303826983620757300879756633601428998174808657731915192551776318563612011952959567571264485421805017812312642549574708238543934488010553658932338635409890896755884481746138331451912058579759202799383126424548334275985424974249684480424733404307640276093970478210648064728560364028192149396210471574699526880351493370858634361356310715802885079510560840355531577443118247886814660392938887192342089423315536988286305207932673240362337548293403521084004492628862099493883948254793711841894825003290841287871733590718874994102184546544137617275785109108969125305318139941573549170990763088657882746445297630646114556017399325316188454895578981705479929132977759518106045519762228729443923780698688922864028495669955943369775193176586499440706787556242119516630704603134045964797043760820478940640987954898671734486378623804547521250594075539290327638794024558692968077123430013271452039067150850055508596043366338745809212696822172896074337926700866325718228965670533354843606991413050996280815023581607153693469684871922050094777924378461136103447370781048972634663862969072668971555273977310845172840771227321137627973901375893407098831253813774902136951937235629110904044759619501188969739769465559004537322212824329282316702844318122372135350383944161152357515702218417815160485561725311386316783757821430092110277656198884522901221265735834960895854058254387174913470139244992391152732426877945553701043722748426688995665061759573765607697602735999116114112942377973884278464953192976170223777409700338536539704578607614780781150949518729904614159781285551724614703168969927558307263670408970479469942518677589075417932710947115526090320129782355374942320893130548987394852661096304909343602932185750873539544120504598429353645473530690518105566230385711946250419229392937039904722358681570780459392298315272287952520126331133806151195349137062770847564884067442920217230246602505384057188568103470318986301617171691935699713286003542241853989857452043659471971295314012415257901993755473462258645766888774057222162537382730781786595270610965607581253720491688260699931623212615108151453337986980339059456071012788565218809899079493483635453231213898723273307283702245219167856955709582451624020953379264820853782277819573382854402645680015393884290024094299989534221088170012305123851127299384242403002728759374303402748130962417709215560270841418912232856512308186138412746377402383698518961324924075392311587681731341883395384601288515749198114509000420962405996743675820007931991576290292541778126317577099093885037862368066643075405143638717731994168067986313909982405303472869880803835449058879427225524764877196687981990779000954719352922254123623324016511028359042888060395662970571620296367095312038925735350731682445127154141864248802805618935832337115347880522594588777169517160534586746493838910803217087540814921827759082338105271919475162549443545701805427807684841141234898100061379289849578705475074755637677596663889488761797323381336225706329869728269393709513585441534978976015221853440264274410863543662681343291960714619718314213144968382315225834154744029611477311377764631066473123728620070182179736585550556411675434924997700899502936643154672327276714430151986871042277547299535715179965155071061712260869298178972040492092917852551149517931430504262635166685532312981767318439651790193497997394823057989592141440499383152701341184477715377339588180640042025189441374573707300700017049358602096668697977763335956754282591508063838236296936876761307279964352373454854596475307843092870493040199637693820755145418611872375791437500435747567976389390671454910463861070475145809331042692213277178611950495936297755323307614248776710984121816360278174164180504458907377675643548132421304334534836966380398633113241036508123329839284010273625895576466066356579045020717228080053812765774004634525056354814387683670229256364568279881880528976454774172670135369577400246135380707745122675104707311169228941892056195388932821270044719891514889723141743405617407619936119894276278647085179686008655096732033730549237471368213594918396078520969245465306323582095214770790838259020101424288396026780778198806296300066427632548910994805836016307835583786846051437025066439676821309490664786126209679825232242112899454391060302764466325832224914626447672702015071240742443210611336821507734443726203739969664144297366074224914348797150181482860859156719409956050537049541498942211328304507917663494336244032330737198038393134485379910221192682760959373683233982594983168657943083876540358587123084837867746871292421802203973510309542712573031083545656279500194729521571273114004481709191443903973778828553775334446877268844299539705401585006431274488841046559160433506834234159214163798390583737064449080915027950330963841878582790075811039430009086763703355185903949320005520409743986939906759685922550320678426377723001958791486550289187695168616679964051845623248315773225820648201759432996185347724833329393049669454016638130081737641271200357882110479925719860911445619956423474341073595410127181071756683596012242859541754093280240909451115798557867613838197688648978794963589527430529354781335245079566481097712996210305489373119002589847432197902153773607612888462610343918890988985774728701211629119199078757963213542796808419437067762543433880753136915721379713137461814542363347610282895484662983606866854110941054822130906966727168746457549805109258451795385544189695779204942532670485907633838353344724989383232359572698426908257237033839279266868048024741459260769351823796551536725469624329525353801227760380892479020296223753255547100378586023334195640742618027747903968801948352827270135687629928761125069172144974971507037425798712396128164271443423785575802990249954418600789869956993792357334259994229107064888080125474147815986023477750645231283987328024373176090253380872970164675641137842428514771318215808774790962777418178132787435061940431904691756224252328014897414299941350916331302823168949971269926791683117755921111738020886576987086307377001863676569883975980770140997434055217930778968940602227934517017667547276800506104483002792535370422031727865528937283646670194766351699225906666152672647758555568782480432288377569753690745843384482952284530207504054922683351890080776157191683314769730527989352933150356403722799033780303093397209930513878406916786186095650002739918203932361133024830633021288941384246545746236026555153983910548517479628651177709231903215893633416767632444198116518921519348811182177661194810572846226391577999498956860122104669514659690713964954751225735194791025868922328061837292508496064955442687080619715817710219526605852707184427017188136680221164574089790188707676715866385359878089285835132481691668023033859136091483792845619780579331536051564018603481940999545361230801337554181027518985345502618148457330350544978658490093754153626587129709679222170903394468519666303452795476542014378154918345977807788826325257817107259512025355653909605858056106168557389377540107401986042450117965414082719576658795052730875766410058759411120107714811819372279483966009714375203452528479346081354764961607304023366161966512750478200903228626617163315536764313451009551408661204432496733742796503668752985837158594195872713276567616057063617929511631974975867018258034588440040622989549661603889540157253387603745233265675234618778447330243814603475440411525565419235162502786704122230341409286430673109139720962704856730678051392460209944005920103715456787709724641881950977325413602855201809425960827015045782706628700733788860956185446898738441258813788169909444752998840728243506411356718662354546672939461199170673218767065202445212293813145466661109215300021359767820663773205690582690386281494996845234259910662161111082988334311411346200245411079436455333414554518878625642755309840230519130815554350882137071702620000107305355598785761427878763411784112554300219879252783189530072115655574695759517239221191388002872429595500752249165267264996252656530636864824013774095276527342607876728651033232022319409292308772602455716095673918640673751360476393310125795418137003936590503887534833811163065447802619119894906602285812696758041076332021144637863157573641217280267666909978976783123332295114116715977466287992915442574536357644219933044108471657159361088992013025912205822722574098876920034375817971071812995384515107163885760807134272615437460340323429456822936656315838098466431673127753666881820590185298718642407289795976718319057755422291149064587428341280183786393308208350471046169069355258206331617065299019515576827861509448120656051964100033355874965687866227512731429932710087194945148443632698272691569601442386335544023757714273588223679873111894998779674377272706548949845135720019851240451530742932844395899024190780115798211129235949650909057679901092721776565402669901008377921381375448376891471303513496554358073219175561764440078915707019130074911850387743154236936350782053830559669501372605759855291653580832925964317901028836475019826879803120285450216041860339545456578988200053207581131316097144788893837643677143377999444277141561288399020635900306877398489585130081189705184492668781333528333697258908297157394116518633635768978278709286737598056511540043109684191506706768253030807484838868489176135597999860555500571869948065813376275423405734395214267251813733977459324508183764866750463478207465634372128644586063048820823970852697074532874518431839846919670087070594327551441225331015957327061701261455429006383709922511700945290126069548696549638797199705246778803271726743513203063258225204027184349528566822338167929273406011318944192131168270603501328067945860179548830581274160015256566003963510790242918916391733899523601578935036803495001165084170800232648310509709394685800982028833451778547167301133073984137014398293789422209063402865530055902844847849584146726349703533312520460634200015115209489191785793474762805798612527896586798241453347680137952594297209362551960413562113512350438017903392891984489065958781454881592410101627056034396822216875320781942284115840808439101686971531488012625310186493304839965241240776183704979041171000687119175433059998511593332265037672826141537434877652645611945001392743041569669121019638270174322704273889256471377067767286537312411134372182057988484341739554415271449331983562958426952520512015589699819515068908409373499723421290040183114209780927986873454914318074289274990570366438943114571552391696587653195931469380614860564483106560158543432045388344649768988939566251910472729539814675119436422648775173662257713761649647461396691358430559670382175011933064430354398861615055104373387359205510159079914347369595709667964116991240023550460546196721983371090335901083920915729383252868501382086297346848318744299184600289428197130221015290363864844252221581421534602643819130005345160521990325512433360815041525328913095341306656479225685139735547717016333203914952426075076098163452085444744760228650895791985586610197668557879818618394281907148734036355471398956232878520205696629010614191008179108104592965139875224327874268630844599030287319357315550506383982147601820550530186930705578992831197263593091518077335752529238581232527326123850903193830680107206539245964296934046769670051974183276367149840665788869421954488074987433221140157518549433885934095315329226064339251176666292325952551042666824088127922920125595501639099559134933123031221513618935239294340480514457985382836097527274602185111221378634292254977120376698084177930184217998988259117064377189625555494430549428368951129693036787539439240618645690715014032239616522461209241788085459641812190916789633487281544367714102977791764421628417315157442248509339785520431295110107805680663805185104729324857528029593415766061184150824204656059686616714093720492414710118933662651833001719800119920755845587087568493321525951343178957842886964518874079851125806520473987226098418362620587116216211232683205757985174097862381588417086370655513077083081583590539077798659505109663933382475880361837094725553238587784285946025234625421147785883172417050939447775501471069637603307743595037395191750344555399697135880700568219360084616873222257885357313195829626823031036526229454574607483512165999236500918364608034416784318239234541267400007602634744978773186197661737623055861259057588084180140653491566946916108819948784629131640443864514192363502417127780124188363502247719221018250412091536579274503216754050063449598640059447541733568538188984672226358373405909142748219623834031396959680523031539546659768022579129277784481247893359936203426506225321543955213360064898172442270663385953057349934151133311587341626065075925092518133397805112958189327032971801522829614424291997270818552174353843581902966236584746205133575095534102068255640936292225474648404144500522002505817127556239918540911811932776783341555097839314196099654177280237015366475318543988563006611273496023288311896755098402798174281559895722199725977730466994150661243556199149008852759117602313084929180823687188188083598348438121554197548064800515457618047554950890934291831136466021485369557358270259360959440537964973647949554889956532491271367464195883546590259374054701062971903411130844432259994667376413635542652392993665295806837665677025343341408110639262632106638330166844794361843254599396742140296863510862258082502277207073445557657716792523753988930085976016698144938772214613013383694499616597318719359532406715557136083828481729541419141288976324768357096194073946893475357095687145355346644646349701908352798371392733782593144604366313867152917208089394764460055416262971101495679106727658646580829117899347486082406371811582430937896865273091153271428216026513540371986013991256231986453965213001908097640960099028636790941766908161675172901028839194520430237103198890079058568571619083910612248825190122831410582616962541906971904844334539318694157696281967542763745242759978147513815413045203950199893055227486372943406353094474250534341853668752849682467806592944696661168618984589025859712314967338702230267444312545425668348988173202710965022868294260993506552020166235918946500428290603689318774054774945231267753379733116876171489018142877611348731171453866093079935668541957815937250490654032812811372518576896256110231919241560929654021582409807512643039073309141768672649435100293695851343101091811259615256661259843000857510221702680196402703411542503452770139677914243165573957533215179503577348132962840197362226595045555272021532880518046623939573475800833615737399016727310646911476791976327454365576501190204498857896676603285118633641341233509973303799243750269958424697580668134983055063781131064667415242111707837377217154609777995929001772895262548294411384657199491484506667047895446216727912161062731025597908212309780482175846565023611492662017651386209935310312978226793111848833890697276523888717990753183320417144786636940313980651703129325577516508219654082689333951799792164798364698879521994436211662190397972307533571454316068711859181879879256120167458408146919058720328723418439663738562942213754919740077636377743427674369360041326142185881600173277959389027656608612891706551183802793564783659409383185607608743061347417628529162194426627586268081658956519593396647551647938151897692466168926368637131385597609520425452560126431900728782635117330200823773049082095789717022016892538498127381818143236749164294592882905480699170858450017343716632181621326903847887409660531053733734136310592595222708291369609624568190074579225948066813985663641701980723053997749843280712428917988735355094860177649368157838459332750482432697709318592694895846509814361183680553260881076786079436570759873020518046338606772466406338832732088557343593643863327478161737881908596198972364652977449491261317781627205662385451440080310749709148552890578551506603624625524771559291127361069271473896889971251220092781484250462362691074597463322670578170660549251860681062279181873359629677626191430643995512623245339974968137294231780132630655457488821905248835334325410717717590041044665111026098004715244589400358569499628287424061146202978414952267219242606128640614086329301501365520330327654631634408638973685175672121637323243322012928282974691684242241944564772108847189486671144292742596151682424479984132241957200193225086489465535766421627914104917438235793012423217241589515208924194785780114335409616721560851227784237454834485501554398872854552344769148777238316681379773371314063036296046443673701962312888311210959842157813017499370163625764728169632329004478656820592716424073092794082914335815119432237185149067110925383878081396231154666911502157205194418052564012871549623304389384666020334668044498077452737972414997541538194205311895736617614317828444175184779130277642933305819272277916649619791573480230882042869861948778769037268593235479419045942270843674064590831806274652002028467151611559179029008557029135384119596725364238303655357626923201383067010045914900357734151221154978431890134044359388541761957649913821973909556677645343428248495169310948901028314804741536189259242980190189733570204458482265222289631760306634895962896838330347738903099024903507116824101179924945334180343284865356373735080299339903990733415231468553348536648887391005559332574327599644399282431715802668243471546072634616752295219405049199041964024223328257336413248356964378977229106102229706773245431352970262686410237869041919271545464393598574565550848448946539722938202289971201921132689939094744533107353285399947456710903863285999436463025235846487660001360098593890596497568512967723273622187705907246589359249744254723478513572008235170407184067726028982891968076637131697534372239141531366555413984681730109440614896716053871339804131474508202764589317879804045866820002551479532746343719512558766706173223796059824628495124066506652975807953299726653699718470890628811916188090677225213619765664750323362205666657928989822742419563733413844995057320405093405479082752095848691559779629595312383028082468869884502055342671811972078427300794037193012312397758964038849463628617595384310357885738340603770812255706831372786656739226879512756632659189189986155293889004048474993126297768270250004702818760572117715439489380283084877812096476146597785337018018650984466412764790570031716595850448795871097017240717785861085369650173487667532142584315272712202136949356376697750032769119310174949304105336183556814663232657999691211185061965191233077760023278007250301206162265892812759588467422179567707949346475339598450403378468893379771506941563169861671000414294540707619867727138632213604439099594311861971059844207114577963458786005448568176500076926745772088379213758280713058497317969135197366806902525599501388652672055786157069114462771179390291073218915355194808903944904342864801724912170779337079412306833214207832715979717133126835521205711411660990145656432802971081256015110533107646902005559341099475863341736560250973713104428158070268863583597422798731308528613089952302785418726488250674257571755957936699107541475710465025582918887355799924921260931138497110443755415110209998462335388280034924108979727535245677060778015447729453275933832850049268737656960184416296728301452508456030154560253746898491130582362395915683847372836954252699396381628085498328464090140742743969164153506923314532846915301695197237584302575045239617407350011534158641188199970010627213424865637590051222371144797468496227458781777952209514043228805986983757377766576999866112428944508565759210713124538169801756314643914447410114185144151813350746290435849227875313827416424767350271168720671561539094157445846074329601993782606155380797673730718834129684915849942844193949366468261801730186327264583435670068198324664447413171781038516736419982927536825983301165465854837065306435427534626980075779503819669409694421921061068787364222001119576244291913214014503369960790726418183287225551219743685757266796488111486769783223170877698765275615619410380204094383218697569056327200645704648743305477108927335480079090962719258867910152389227295827915918727535483033429020643539403830181448751752115353224724758535670727529609733117252401134643135909721720929489580439240891361037888563010901018878583398637575583053461176433428959011991343247315430723879404806465000764423090773360181019542691446504719594974836225669515207777779846561525717405693265867132270826498952277471917414038245436839423467627128570356381418424397797311981431214032637094684024104689312945566613597177460257369086477432421812477552529803753367710491583240979907349813333870346371671908016287489547692811060654126481947675480951225469928799462939322273456942304197436405930344530273196389329962756256899902061119405066879344787502666359207627980613654872031773819777654386905059834568810562897644145312179282510364087737313798924903374069589146332092206651823593150514873606174037286663676876747302027445218127425119199496303524295514847522107365792117164095492944189765073296357088759350115464690460885823321854655210285120904752265040644914786124991580224001102455901906993591499359333099798209826945921674363563662167042663964922685759542442346839210349384896591175525780694767108196635588005149778225773608482247808481576695752678715321282387471112784315405949271486887510674069659242910200327997679146824432255695430306732709027455743795477507817122297944448661770476863271478323335583062250559215014061381571294900359772210900528187981348179369110699510685706598811959150759040059825006019278795251947367811834276167033326191746820230734117866024059342482972625287176323740731315163383502815106351738035165417429708735494980755359807831806053936866426606559065963067295426892484843890268126092429300782711757905698203458011155672110711777961109660416657687225672892777649448745981891309013677676248440678560925951500111389462710199312597857494561740102340330939431113596005467215877688857293697222909639625512094424208010847091066806218782120442519407547195520325620518684749983531378193888784170927981676166795914559110441535998206052201293504529938697725725532374693110698575729308299834356795892400847851598195885323430814838062237417607558718332661784613197105123698715387509891649658251873896264348213663813698015649669116062439034350260715094864953454770733947568895426549634303426198579024042474619928433549054978726091845759151196130387165604856646658733329480224915714235628775011667045926780244167450450094842398995827312815840214110916833504908931499523775669048665304639597270722586374630533427534462615958655807559942743976929490440574426661123820143269012326498989703684935023603416266292011553565830939308845501699538490602027701062213121303577008452479021049202178855558926801007406269444362678840524551481483373715781341649350200477732321663683303984838344193120467540245075808948300532157118840580509446457440640538350588748273952446583253860919583316898261582420923316628142525763737166953683467192003725664946985057284763297906581815130810946417646705943909703502612283208282613805764355437826037289523900138287991426746937077874003862954814069783300840260114098537226444534457475295769965940963114486934498772931814192894422178316500966086098157774045624674491924263073586718620850485150217662912134455760438123813749325134008884261011137881714463620412795414894299579640062921681463328836275423055476392674978344275523825215018072016895037624998641690035172249052156463491362104364266470272250425326653568508213580300778200086207376777481133297347455802048693129368051598904669179335949244276243311232956479893567833736854458305477685441400447043463033427174968287905965406905011124985593622693849490337104953816765309066525796653555356406152422541163295162755920918398409676293335480172343943724886860038682526786126294485011282941395378682397835730853228778801992615727025587469520921567859737171048582643747680425334071299936817893400113248867533379223273837130356825047432136956188227613123497797060483091352001403716472841825562708238001626685031059318131464870956309085737959313812161862191841005460753892403000650444616607769959040621726515001467243104704038575796560094485227303190189835775122939322521142021666264452338697891745758286254388855189201542224356799577855426680516937918910953125823401315636983790609285934864015656418218896289673660271553109618486702078521251041791101997254732373544500259854461028924050184397791545103423823499957748614306729649253925877774347697687081767573051844584974857179360193871567436200241602652572292125034028691777361054869898003687929931062244717395813180214940777165429073761079778861956092879636380490892801886559153201044749074164484078275855441509978157292521739624950166642224322874170947848511883737327773774346108637939163971853484309935832427769222142806524013142510423010465912676568432543596584432787668180723250025962392728728043432500371007918101465871912742906612638719103110986775821478355756485299070345811203915646892711000246325056962136654914601390904032147018319172184637406103386872498103699995360247038153641877663701873679180213781385981497839178459425625538203456314251679123186748040169694629458751484120047251404361246873370093658504183094722460899333075019231230987908045469604207595418105991966460312047747962113263836084211740882405758865101600459471618857497582937549699420079999817291397241770700756388783946460108693354269913995038645550721443694733395940162006561552037328163558151151822505955215531484513252512893637257963382146216766172045181507347981900154205426451027278328577197963960264638958550547229244604828714837514299845939898335314989422147100301332816854412571640361371098528422070836176438726571500842956055570796609021946907102064194700087992773131780550677772432507944123880532236611491590326158775996836064717894847772075527777541388650560583247823511119381248129716036355808887228778926786049771703379665298242455605577666625941336690247858385130365729139347794405330940247901906762004644169317176157645143337256549275498609481963869347478293847575511810162181160356055060318294411469513048725603939279864964544773577139820367539662387934574782220636815718009659016747303478538680507257836834222187118817319592936252846049031588812246846804285162446800323512856097930885574144178711247873112461351715772297056524117102740117931481602089144006476875148182959359495356507228033900031683868615463301690030893086362837912975091489709885658507586494527211872705329213746530601368471992813074145920446430236079248465902673481421673538855243487694335318017526259756594026751376527313851605340605236101496373323037665693519558892887703984706257349098285133038597911623389336012405448508102536165763051937279001673758215144013892142044829084659514256509941894620669519617154258686266390275571501124600243993414486835747428386462930301614439347465852659795983494980981663442966005296485301118974129834226558569683962081748988862952986866092736103206056803990860426494377893996616170806929009429287582983731480891945603974691403990993282653105285497949209478442941464553217450132133438138006765255909948181244116305981305848588764966059610089268162481095810168279190533071380271916898718071025248021729751725789983757025502565345963210714850373021223254498696033499507092901687358918191329719981783299873099539030217715890517771765655237327481377302385381221848718315070352298229763330154037220467922466970455466515085566492740872084588716687470703186094956416050118600244329090389661558566265331135414744975470924647862800222907667541431098606122955826949130546991619054993202548037237538104613426875569263266288635807255384136723297493025732194507504933258096464358812344183284465304511310684548545000222078420913463337082005343525948767626231824298692688470339122502190140881736951691553223533373952948505267532421078832719892026843335207644152154605499805230078935202370579524638322708908508194288328344119733706540288121958930942258917344885366539785279708213068305920517445748532452944566032184159025032234292167134343224584905868755497605625323381307751496207355249273212075658023705497084008313396003495873620376719469646891161761439171204120160407215374397443472524167358774012322696132553872290559797383124499624352945894387490465667860286768828064674037031064014546530436046805292078219127426670843419805070967163952049543807104117934844628799397485457220488159860413808386659732730479672433374016546682210507685509978338093615806048335155391408710676980632700938616868970315494243490649378914414398137291876490442120744864596350491068111304087919820255735455679199848173926695879214419167445795173867328032158139731597052144199529501510255826048798030782523352130086235565158537796999853687490704012677866504543372623154143296613927463801029222923173404529421176455683922122290260660697226318981813709641731547495212183213788724979456712689511879678236847580641202067372486287097229202354294354818058071042516658135282902626394255505766009054244403852424617274627109289534277338711848068848299780564160502662093023226504225471520995008039707912210089780517762867666027183306118347013791748842350785080924908471799635125352568443943655450703992406573758408628059175023633949659295183863386895803889808256024797175284057925556705410797305625522163868042328832489699809070427505193682727624507438371671757984402106429703844182763689801202603831351394326310308308265528896583581923876915622134040209393582332079693423542116681651670310745661483750679114334233843143376800258804835696691737980529557594676530561169611780112285043679502882931397703706610758027538420613901361446442762939726275281786762711920807900501819608778925090724737654351639786788605582217649837417758571236495775639030773127626934405288213290795155981948196700322362004824231010132832017834763571203972753583331730045932275981875538523966655690580483984553363617098922666547393130039377527995217063929689036340112349454209375285066144420428179972014180088419198818060416038004781463905332031113749998105119450483740657504926992669513548419517680337795693699545082244592924675953973768010511350586955591264197319699870400251893658063915553463235202585027427555837569063256707331627916422091820028224827175387616526806994543978690521483507592803486709695687098607103429096863915104900503477904502558473249377500981105545623339879893148813817049727949785118943685482683532091124232594650079155696611915452445811032104651378034361804131176399493141416916300517271572984852780318453958495209108702123972306388114526601661911804073198240770175374009528044385599664967816834827306788146182763689766593322994624630131239835757000053370611952684000686086943321567211540073969744575112214561530277396264394358463226624297889435368907630391640093261131979587267698681360369330557917691117733528898138319234249037301200979556426301345296248741205183253210968527587225014183190450489331343651261929383105828759661147101606872735380131009510729293697355835194606033977022606882032271292903437088312746989130535716414773799072566408670722810503922555352875346627874076305481833141279323558611394153879638274283424316406440896501422951660034272273049777089691102116412046231937790210263518555863652351855237255354275279247405242952919655776003404469665333368464627301738155286682136046174068489073935615384424837841930470589026258502537728814245156692144871764464444021188618713153634664718569476974513738126152815223466668250584119502122134361787735019671146237890706326441257736547121610981560084115306385907956289241625949777771159608511271248131867645810627963039287173842677538929267712535714427446208801424103568735400333463478296405328685830876866145255052545513779062800729069783058141751707894997590011014462061030964415019967173011324669796521310207538400966773894331315733820304142680711238501906861024860487670389906564648836213474815841756886752843475351546554638839096312371253199803364459260301569230810475198489204585321498689888717014548716854932406701164057072398049082830335399714702546259022641268889341784626161125567735598891151747286219913413498739696440935860663708426811795486515372702877447412440552090682161019272805931217134327586466128576323389457733214661816694731091195804182898675208408630323951308739798204306555077139921892934859277578706772031426208829190550570722573386634251642463114769601843014408019984168698424426098026896386262670099662548240478411083737523895231215707047237903508645717207335614211047158507693475496344364315996496008360272913453578931374126008670058042369417789355619444277939718111725350561527521542241770511682661337055034845192965631637046044557994472313136538617288791299484438009270941683066757385364176301295862981653103012074699502599854849760397867754354805634795794846284582778069464495015149307195648649464616671327059931978585667383677865608368543193740763744723069567101762512470840061593991233130186821435509947857929675625832475126018741067582805368936550000534355811677865383167227614822370079762100234213565945312633374603932023631823094238421005468368796656442831908398272970299575144294066409564066212241262289264518205207475168625578687261385671322569604501725723580244172569103918331425085570649534966245126364495683443300888044707765745728876244780101720833651689038026026567312791189633630082601079526444905204524304523261724724998569582227080861917383314407393346381518864770335060971118450692983634000872040786851554016608003076920691660653352084841268004443278123278920446717707110211015629140320758718201651717585085313926440506719518596217833164790361247767019133892842277714378511713481748339750218659357436946700183344476985006661621755332193847964815850799523655599650855673972024350911820436482840211995970285959287809559966364589372407267084133050834684965161657216722955622628354226272819813260957322081330955808702243593158307558001710239360671916226684495961827208189472682148796841796728056296616488016916425272644890922897130957701568923861451728250300986067011469004599631022228392080009622462030344412696001082446571054625828566347552524878235217139271251572461449627859180764142359588234010048399105900172131738683205333288002749434371172062490870280529621499310635260342256640562861885733129685759354743211272970602483772696949212621900733290119384141290141130729853694905391825438693979282961135615178636303270132091436226480637070699200519591474827793099662079811218632631419396304724784386144901108151049520055901738930837163584550502180027617079272539417425684560178593845156266610195080495823990490090390823277927356187318312219218825936293055698606745387562364238636257605035572944646734865246575332151232588500284477755119006764346869808011699974040616652736517569059796365711572905371784449934851774972818407863922611030807644009514320343019610795583771345507308524482272535765844641751363187609474581879419381597664083500942110845824121275717816108274259300969832593987379278996491064042381847847202624286903276397660785329779049508343870329046258700509615596157571770767334301930712952997271626936906449362040288114302819663950624447951721753526147998513206764133809696751635746459242825720323378781971132671142765885305740991246678121394465697986601387462635297645249978828317268806832709775554142065688480574103052290072753409887814379129684495353059978413995053422402960519394131370285041021757414521017210154799493623806427383946791589543714941136179432780338377312952518545370594800255872738726247907271724189683074284113584116288753029996366279784808974235109284569634765495612233433900200043498070308653896946587885702379342174406807001844387917422271949497902286834091320856908927578575868630868111339741630026271890749034709393772314235895446495776053204447022195274166229771871777388251170957581314292044813697835766739226873092498205441893525473798370869557991764804212289791836214314456399499008232823360689889225788944309893642884942978159600954877761384968775622201994469711638655901079038232061589329050241770062088947914792813190915886041898467000088831966650189829654816293636601042489219163617100292540010912641093651757706132952412020549371309147112759964584869830677722840711330813064028600312704610298694845184757917378811890483827192248436388103961662360448311131787205939452690175633503808122427580104721096229464753325498726235705261531518801363038824930140488631779067290720474802225454901910558700696103967261366894590745508336175543809577683993842286710253403613980001908086182839009444349834486290436262758645823578610616932393928440768398219917474574519410769886745808919557893825433681166593646537118193435837811878375422724421485888135328860389744483153853274572473333551870202783075031077234995665363530572240698037315804938129979303522345764747028573319993613807616988435060707589215721702871565148868518830547183824239669703927777818619983692608219698540656866153153108036597231755833907731442863056629266468492669334717891722004288577165346349861002396491928314476563209378222769685772093511147207178385643133515425758897414147240334849480549863673996338169113092453140040358244056987563073935733764323233315106166902612183389588445558913017291259528252958888922674950907144120837291713351951912054353731872249039692623027028471554444584668435689271247967196349050846929104011926518035157770277275825324822005512908828350806322219841012272683193440928003435581580902959045270348936379462709489262911114013129096678183171586814325050651343385093999910492001141050389274938671862295239917767667840314432498668744794883188214692923885393331165936234899264069836210970741297447272178161603376110840345821685356016472860136585524078202603091004028574618880939780624787579153700310676091248754974854298393456000633192845041248112751590038596948894455065413170957100690571811189799017468602230294386798908861461029625284306728844293561575640387462407823338929913075797939593275584588245042403565803660174388378656828212707716651854473825820667615321263125391162311333874665055280033197172098315019440820745830276114415285214011656362094872528995428761102481921819017825786818777248820377504551648537634819150220370440024448294221466672415056349246606279908457457874842259390096959463283602461041766160681807951762107174332635621049924497544203462492614290980223604777709770243723667311139026109651551796373061723089488411636368937531898404058133747433371496435068159220826638661046484420092313985601514227558063142328671641870634819418941292366448860775516133622250860285297040757298227108805053390445428463852459613812970106011715844244894980261573577841921814637918016416354637385692864116358442132125815933398869324899405205441759235357896496323725827222413273688074827621789692576757149467942376549315777003137113950762326382972951461142892668234296069126291847208772998231566220339326614117355388688451112966238878405345735042626908361749842905667168010113296467475924848480663634385103492139919174114080098183093193150859709191627193693782648575070638997827526804108515108070705919095451174648256232946070098782271334565809191856817653134242893127544262652805558440477722878868644399164739694332641730903110640228966695342867362082398299984729675765166946259446120932768982381478954525389433865122568321020840258417458121750493800388851351317921548817271120215364527343709558533813431071553724655767065021695194539974959184841584578010466513402820830329557212375635210702598293691921108510135678918338499697251274765696753972195832543878968796731895644935490187658563527951684600734865906801360188818434070032513108755818434705691638777874378072949527688543038227333263929580060535265144381364507076509420659478058622313879462884606571790681755657906825316364080517135018901231763218913067690833137199997061092788689719860361614470548999540474760554426309977499014825863278587879514752839151149432411143641519077105432266725076283751989898215798534540054026094549104933904911722715940131150334646849435727233078695446846465635240973454584417953310355836859242490151241601704202043292413829240338848471951011132003787042203064304973391813045015815621813989565045789739412157636937846227164841256536882858223823501790243677018693023247889695925608974091755151621483177143663805641640706833162288387799055603797778797711406115414937757439283521977866585273091283144426225252534041868762744587482329455940196189839404048352673066942451935173922082322492768222045324517117398106996066110972166521086355034797403955864570059105851453658899350549198336996709076298048014755195147800361138842759844806016838098306207245216993447897924699058539445273558848068201957320435971396712776920145705880921262559488586076717752857916280980401443627788503023748989295358538838623272922605887116212188223133416580064074749245488743796042424890034804969294906184646111759378349250573497172602768926730531187544449630210187845664073468805596315228357791926561879557195944831153595907551561986882254261822990851509016825453740392687001515702593704307588133763805651251872843432767909013672273853782177389161127609000979221572038936876301201581341693473492263550269992971573006724991796132218226155217855818027820441123895194345546532548851258468399201477060471025167970315999853266012201359749907720095221550108646611657864691443429031454850907559407335656904233716561894981860863696006974176876122916951274067791409994445863116531994130167603052544443346418014599269897349735144446853652136458436653348579139534109461036668653721085985650442580842340498910074294399972324727540246363319301717620898474295949504608944831336433241598078638725451619163661903390021263938077281949269619208076925675886670614951451544936505122058735202953809876553431618291430592392996849124989418962164300111659708401190940300061994659858652047607492491474545715405233948498734508745410026474530176444974384305688222218952043119517498464296390799875597692241694791107701766009138628017669798230289365957324324974836407916506992894099665986894114862503491501368559281540372692939929371023141650881353958213610701696787493940965224159512721817015604326773984147012608937027259233622167920450182426862355394641228952914019254346962042253141548037238080735117981018821038509195779161167582935326531369356823316541628013972560011757143398197569284619209254006699450302179837437328960127705764054022425601639931125299132470270672997996954917492891541535018631399404652630151420152687281812894785860512533859544458210778643225602494829124948478997129220044002942707322553547790167911830171176132716728846621643713334364995866953370407507860922332321175536831037255635174445494154198417541497379957320651915722785337305797929090099078941713237486254551758919935980256680168585025317957583016897364782062544780545312645554770000172408401372523181935838834765745043185028166534200787674127742868231815713453241495961661155781623248569397718134041005814918423779808722787240605370476131668216301102125041160504742133699249780066252335570181205483347641086626096809699337703492332262144017808810068570175515981816446661279437233275168276410874262902513257391045314544036847657877118334283476267344049205597110331530308288941895026584185164055828852816732848439133424261048297331444525255258190979587734715494615146071877054249851780096375550192465270558005568914283706167350051715316639718640291937634138069375922174539611491921740849470945992630163531018100343162551978598771808914041639550577062305121553005312003645746552021124331858692997781927114679941892138176236131656521871439547317131166114647584373571801620575100628160697503638594939546041332868967226845374355748803502542790952981893545935937065898709460485480208566370756055824876784670229058027731001315564914993106837787650164999228121607875893773092162906826058626767317204592584788698706670099171255481459645945958285177481289714961451837446344579689831579645371842105438791777827630936510480762832257034788342074186582772384273375165877443610285398875462022660570144704343429988528273345558898747528684336862782791515235540744621990111881883377448794801473415636717833704785496422145004084955235009259397487971555032834801750179866847966239545699862154434872149547712327108027075396213966613674056772433422057749632069966747814206641064115354930390680793370724678386354361975009781030578948792966530209836627371159457355454807323228303181732990354405537685640712340661788187523091260687116949894321441060451739798840503818737416438078701129564672474532918635487047541718995526279383419267414343145693533672480675520814722923073205257412280072951412728065528647684629172582184145694898043050246282940788646252557592191500346658811238402106254952750042713861297817473403794390716709298685092771029738392900701828211235914662419045998585400492111270054933545479906727555430812065056517412302164938951693847573080472938047565794324796582117505915109064103925628463798971328773883289987564765545842246082841262273385825770698662444217282001872076231523072681229186649400912425461865056406783487805102601041684966567910835838930194150627463573102499811980224531824998957097765634941453125583791563886254415295734649623862915335665963332459882574005685132317445834713225718362760867015863378354768438561402244818444901054198599860436279107853234494381202731759727119963450591793870571064569042500240827914128949854095979957975861512409668877196549797156032039737646753428678785600518471422179419335831885521579809006348745709721684660643428472908487465616695180126804145608759592733398665057126790482145377081071832738801032869651034968632507394661861566564115127204282900252695279755072208997109316192993767610368922258904552064456640025341978170362947966296115042139160067108485612579282185282305710698870026652514859278397019772812890619684585107733243521167200088972339655865423914637926309375056241025624131857837726358556921063606678560846865382428563572814699396760976197831946434000559920395314870336144273293181910563990598100296224178088626394089461397828721398314024564054345162405675997315152318253500460678717765495113099775276767159297008138084963976863437295558045537455870307293400599529997443041589985051758803825150257458577163121631759013494759303736891428389333629536800922606545461948200575087046358104512671739901115476663158359815885209341747142632908396420742255409792506864541574650957817900722002584410085509772771854368135095429241181010386723224260547609363704385739938633187280390650175153222307858220976281447442766634047935993191648744145390028811181077283411360841821343526983360063690637467141605938016964087961753030749201648679528404305711014875897062279157244481560597912966959007029286798797264413438060145991516142217490475151635365110397108108224533598067742881164323218371404535430318180000647846194371937750825163338518628826207515577924229468162665600139596034121347647075942979934680584447887770566649014234988135420859276076173049406482304466167068262079283163979930074229954302472570406728603548457435133509506903588433014276952001488605931869428261244601016469437946175988366720924276251764396545066170524289708508296501111937977642213011155867020364643491489021616359888345646669820688173377959392237670788686433448214024371321315177701315256970186932367643030343614825264328257268479607481407893672025482887008069682665409987681078569404854968896138156999132874895475429178305827434142680816237908622758423665960720213434874466133312801424316526271060398912053962628727418888438428205045581310088122294117661824314027869884656444034031150863900026921723128705406841349887354019828399825058152063372065930305916921033126018100542993513627457040282180308757777622065493152154536030005175963774276662062234255683744493005611183756194795618879905806768878409166003546230142721096482950129040351451172690109358830825104968815461963734054342975553890755571676083056185721032835337517455593041195758478412278196940749437757305843066204669458256911618012853559673771021268732610006121577700867457407678393935160912429779654410960091583140014585332408171209639045350685038466230809267774325746139394458019271031313133310940424447347540183660593009676266103382435163176243253607480290351654788164025217656144747001468165392603444716579092465561893035755549869772490898079246972911900616563622573377651651269236571937264803885193074402079236769735516871824463738741994958076664798723696514531407850688173464584626865680201584214661153150000422410145139707916094142964316110596432676818264172661743329843871550706111300869312445141958729682128028076484730205084323330813852112092341641336029040509429543985050819323892077363198608265425991708352839034906575058089002824124947233858337820480229925485325450385535402906396399437807489175026464588656945499252724852080851288027594684118430876675562538362783559430413647504229032250597842130280582205361267828993014227713548398333068045274458056624215529777598757586824387959565741885075303888470241984172589635377526856571023871177511810303194449744930271573212615337422992255161689359373331563297664316681819618856821025503819694525501317697462274245165921242673216607098507944080275447439694500647793897664123709944684962990115469476126281831972897570380309263425276543721372698371189853297613276741156788969269191774327418179618950836063955284540758257024373047057746211481942712726325538319763366653228594964563493471010683883124907255813315217042098094489304907060718870289565546819436446751105854611061880363019163418173074662756955195302141897277776824819919769861902422478693746136849870030594551531957380066784640227574830129116814193784907706342105918710353617128110344610004130631737799217756525934844279550803797272954874339654115634180116827321704843945273363749069202064138929730533657130290218848548739175352158099617869066201831780104976180164832631260247844776521388853076605584775747069263388832670705289585662950518137059579529425364137575519822616976406015179435431621520455757752096586087315700131105383755475238007465231828489200134417685950439163851992833975156216482757445418048798706019791105042453923315464828614152004651494366321591558240522634379554745394764274345356885231005355066083252301264341149035111736497025275336491497366123469999460867209714426742398743305831131997248431126979422644136322550363681617848301002945770807764689023360307882371589634015544557405842557796022635946598775230195996898173565950258628919247571420047083701075407294395003855688105265256383299631626341637993500025994333018484246273455623532379571949582448281066743576466022904366042715181950583026585628836636660061744931623084007501960414966988505786247727830915072228243545251054692340257475725989964398110858112852157278451143933887962140248887384419820486182781300200763208708682241821208030532043461469251296305353092777089512108953646724476744331808890563585311088874939648849315071084637655265747251994650509369768235041428685636231661819314416293498224663266465679141437039061585670036890941784042644259287485629844253585341440599802262001939668510803088792589998865153416030989884705142545698888573266098761410296944896853114739555663465996361108121640775119500329159966114922256592611699292637274237472323419234628857165166877674630800867833146126156713788157719051343397965629361712042119778868741143292284035571156080246609390264795857148938206659196330169889969963846465560889982871734174301943318131964294372962219629154459289572169663853510646369969925830570145883357436184732740662027336463130335935863900058992691947533080093083146341450041204340725063926953769003517824958239355281555856195889128985029817332659050582258850660435819716821487777485020791523084728594371472651035649123950053482059687309062331245261396071257734167861098269253139988258848149379275270481676013339400064767291145241752241557883198076834839207049661753440019363137352220508270240314716708454009458837133350018183932422307957483136435698322738888973885596808682089047027176740745535564500805632021474754738322012023241757676616621888691128895902562482346466204877713476939199667228875230795304653289045620113140058779047569129684156177461398565200505029367427894827701470322340803511220790610995731016418209357613329022954705307023545810335816251489430209446266692225966353179503254439286993007798112686469722864995781801984722942169491614333738695462432883081848065598904258818078901888079137288404327901831686268605575951665877274928707176803404031795031167506120992653825169061943631012164329250729224229639833915341929907008973045546616306282473366262090618047018962889939904696746099208952014653059357985457063095967495856556788435492405387211181944189122597066162856277067409109131406268744764349813320364164208657971281754721722032285575335550350816021027177357366153954443463826506216211400400572864650965827623813363591116089925826807104706304251589035396347752879257273961600036960447242719896027859642648063426465543632262995932951137225281966779018639419640775411259290277710352128617346882090310412231862383955058409893367932904757631693986473378345600744099038643831730787579421484413433606504985011028198223445147136329141580025019601591955310545537447230226544064234086885571376053656211607609397197078083999256429990608620834863584381027175752807817740907714272680755105603486534183572565632412169260514433306558312897176681675516300233374661734006705358493706034323195321581562076723344606199626422658243784170060364323969343177853736791397168127181635709083675720410565096648621884630214487615385158137821164103211642383378290739326204579081978721702178442492341696187915076189805781100078393249445879428583192615852941923286155299921148843415465211226037496878268695339404507235804026345475807684705724937373883706046292019155729351207764112909670058330978879336310762085990117507882207064869049258584892683113216638440683497954191801375504020078979107239773045428774054037473831392563209118454940176865220018677634903365926062177759279444857741585616042299793365166749743373221042989031404853888793153050961409906360612449294417518541981469184053583447069664826137089042676012041474697950535466088480936631433950502954197440087341497923081056853500314864735292994940289446672562317529469659155716924850984196265984968419997283495363667329895573015983472912075334558779536537310247146347744641459836676686588456881233770932149861174398436954533544596516491316971590249285261308901149814764676102290246054078809401104462827995896762374962151956393843450564349622318742488549619628764581637028056939982005616957420667182882271541118825028251142954427091255313754642351034626692622863276422547393537691042910883673318313696673649837614755687380169275123822619384615215264341835614249210997561336710436544242332179243593061682237917505272837099801817200686092730221593119846866445176033218936648499314584383579070206761925668687558292422922041636509158881361175636889100889102805872713989532992386435362113904465931627227423306675171482747653601702792310944117165931757487437271462397227290791482725267189847219322259461135169417590327673853567245737535116017096199412567146305837015031913513284719627511757713633217917756603297921993830932643136019258482726817417384382818065932355267108119354825763055186914734750483657395690759488598572520557871574766897343858133100955358285644457500090755405314786585974808857002121722724322206488494838570761067559182941603736686146604076330266616124179399366422664661374889479337383944005803896289649923152013956846599655057620605776215240074550721138244031141571158370664401808298697275691024586353159062612681753414819179205097422395814289182253920878890020502018665672366417781732496329365923646776507468546519245375816100391361850144314968892815323709211589210135419017167494274592685518375424018598928319175729357717711525519369604205995136264119511550421785322489929157556756370259718437510582888049731554060495944950214111104184769253399203329144350476906326816542888549660078515334603792286705404931384574458920575274289123598325910731053264271217480842817227217665805049460669516565578923270559740855739705841667446623552362166354112611324405699191641585627425001979107736830084405646330962211442798015887124634629873797893843785488054494010104902204477340669430661552902650766553464432267339721885527281718531033641159969389506361828082270261106460652872281343678110117617583056228833271285807195394824004208924849290118203914292662546273550534478951034974070461435481598644777794179373926040830287365749350962903645217201677914883488700365248459488106633532360886965375870023906117986103120516191626800291862557999723672276682215237563173689481868066339185515889789013682470180772638742983693604404180259807143632044988624868579042875369268772061964589793303803011636123674121876277341066531370842870000937180799636386260782417738322107882319475350816770450311939629084287771230330104692738700528266051673617551658917292627587413132187422448437812480818826442169447414684860470022515632575543964734234563754193598042465625407914316356853123785550834013434501881918891513214957570444701067470170097518161947252691794314284098110207786217555992281358104265896103762949874650646206416607513778679810016738214679548608087738586431680531698708209664954598463785308884379213154170231132172113983577832713785446993646322609253708071959852357444354108961651446306971688435913861953748334590244152432262312901303261205897856716556343040475945418152773324726540106691231503332372251938743676467207908278883575605526895870828468308765243796063662802158182525204732531109919843370783301381691462574040300958208575051658708824585821982395554869903987209936109695945790144643412594754426495357254805033200811146925782307027336974114198659170745364704753226016897429365874801864215997615677153377821645594714583045607109589962081426293983688726629791351685773563779222217809440195651691578806181530169641527794220962415236311541847200277044395289406155098911578013230350313812972545636856445157904738460638424397368272091904007407206324703662808139920253802633464725540160097530725569514535643782489109193967882087907986310496767865723506736308520438158693610049812699839050734080482461338005965686180554530772960777483675957522873101018860579842852333758596107427570422924330809937523728328316446089907767307846547521045900196963266546263127876086588112185362387055502106717594656209995584054151908349611520186512599205778516644170744615562094559343679344576612960552738058936031625662569814172077067307557288032902307733594717178121742998457159305093564098370823137694473052507591635793273882693855253689687264444768134557010988676654701209053354280089615386909057056285186656162468415362298325858310495386666042638954662595206717505243787041638381321365985955678819235918924910914209096561424200820250584996632064131817108028745178943005162387775204762560740224442441588720601395228442866931032577908575361896699877593003085507960770901954949982621314253540199460994587157267135667269032199333863855678205818448146858311652100530153317470059933303125333158928307913647510905931226877412079389003904848580913757646589254429435630958032920104067722059555988309576695491695501210134801656367687789583820478213920730537988600525342831606577392983261259216466796251207965456921012882159808377800487617757358463712055187320498094390613302737254464918480758022741042805770032106669212109301598499264735992425328834625112921522048724148390676161270005467083169682162562073085792375432760525749396336755132599614788890763789335208308371073266380222771702704547108109550879757532667204298533307353522240249032924378308953641197256720270713320714869603837581803746273666277082937144589155577026199616788566936389480925301026470162165899784129288891434932046259668119475549922292679164690772303382028672323291917895623270114269270115104083348107542597357276692000928808110219521709631238453562532235837910057923104537043682651861231782454496044899472561302042596150712964220424117903314483823805964142723774308797410798791091121311125972387024628857543021192549000685151347344387980083327833517524522332371592901037092407613932829861525200367136347823206889944751079770532275412080038084789139505365407596779665321829412236687312842883096326957164130485812996656281105960238292906295039885019156759349729298914902270282666837953079914187371616066225699667957566772095314448276960955267682325392287879298942153417690793047893792087492230633858848433720694097661439731815941695638802804422609459839831920222989545655970258899907836275698569980549522020517924985799502505787321038731713091313486169362447397520865693877307168624644536716966219755252000011723606575320246989425119142869516372117641924595450650620054221407387381681061490567004643207146634395545042423905312241833430329412960177338259573624760799799289697219744785918558400400293959947884464388490517951036107149948888463770249915941024688645012541162893710623796416725789047171893759714224294548180212505228923014998318490432032048517440385423201834299026769324134535312371372723303263260539843684543816885083575183454431758883252072203441307314005544636646944025911580309029219323910621121104528749084812457899794276878943482212933051800688718327592694192581583386795670661165257048848428539203103604473200157832786291106979623566818971133853109894435204115629516795878933652191264472026559936993710602147250792548365765493754308697409359687531611727211636785638946956805907521464434905724792116764747958997134568480093171004103231182567845978502047067369114489905436383727893507337435372725567611608714720009427598289085446337886893154822724484028202195100923397828751867159734411278429465133370700675440811546665681569528478512085386906812045654502937061375663730814991028564583804047349889517884691553619974718829485605123824655708304215801801247809959300867829728707235390021729055588069390373641631088439218412049062604159944645472717055874705561131686934316518688934836385502213758366551185542829304557408046423579953110757582865421288760869829347070150685117643148954387207783539035914583186798859253964184514225460578086062668117636242884656258263658776680002924570170029844125562755432540003817958400517689314140597543679765940428918519819598356262609737155605630785628629999206268462629483620693569162147565151426533292173061477801914489110846380888247315733360860788449645502136336142546180550111713361936814774060189365977897275046381807094149114347886656624762848791386279766413798946684073517068463885660929003747328989252282538430432106200986019456284724474263396660318772101192041747164617240417121054221363534755013945537774090671190753340869160720666309295621027992099886171577594042245155525331722497784114879237615225029595474310572976316655586473698916527330294258200591370410132672621167542250671551580555810625027335529048869293640587294367429955034986383330605560967868298107512581433123037654376098213407419762908996151178517959163654709786733214027349253194654110240204349100818375848868020325096602568437714743405554997640078094739702370271141878216038471736587143506528312767201833514766927588196863740360285117947642489329347624972568303878758072156073285687495428660917853278487669419649783461605237758207160382650801080323357124364532974995135057753273220749380676234331573230265511207788085849743661697893259786675037426049942440082475268648221787043972910266721295273739546905845561305586133505120139053020987742405626206050242392591123297814219485100810989964900455173805244482300073959033741102167574707238828975248864644818915360159394028726594192406898748835175901003869879154785118363731795699769756318950880451696721737123815301005978567557749583866062020274762799578282375052633264132983025344997172764377369532522611210627295237733670886281649418910840869990021000914049490182129307267013414125662466248421567204998687542584834594635081345952478212996178246936088162303612654694103703551600557899379862178826887668449679341498114203367713792930246101316715876761413178749507531161525727605935586721978401327245806754913846628524630129110274732229354118767376758007747527322383023391994259723462308251490285051947417731592722274082066958877890237689497906274857653252644040804546390052326244916075635331201356524483371380374723469964879462139357676404849844363398554840886744774296278140401048855285618702874509217921627001870645821334701101946163935634730583507905780165434782582365671460047601765695356890740544529241329794847653822020125003281501808713214560673866413994554155168303464975795476548553880292064536057092173714629853769843128370434322828301320191624668928650070836395516976662461327559338921306492793139408100997323706312053474727515961768326154884347780336714795137452560001068243860074968377462414062343073681216093846540654395695634928619947644913701516359168021198250196727968241677290432568935120929727837497235110135554908237199525267948874633446489744814269775924021088703112631103740430176278987230677370864666281246311536660908473085263680950129234524069725219361004734960511212834990434030759266733184410805597424041498125970974215295341925735898096762137139484014417534138964614892306728047678635530848297127519048571205827364385330124682368752471693881247738916344355403537488993160584114181972407736356069324175161357002890202018116231055664775800079287253521557237295941073011699237324444891855473758436487817211629557946373716447442731314008787185283576997230884131119703302897494086841526063623212498548140022437195690156608022412107435484028550409119474920146226358863654346554461457593491244774424850013451596892149934843077262069472892403675703985102366660861576073069556960433185335417138415778204315301405372542249459472532454326056905432953016561872628176538349481973941569401150210780975668072893081330057845916582287470261144713476533078108830562730761885393143274039158539746899599006095462864473094001981382055343098352547898272179800572949337940390918634370643281050874478862275804932316206872129826094948296486713099988714239084148127402394256361086301461867768424200777452407701054748322090316662230221792545598006778719458222606732573699226894873454736783476164567164826665979248745699700219593221498289497160197427415370454576097810299124522841202406366143438481691523610634679593122961996146942602291002343377595792890073593818848990241529870002242258235349735015089348737879931482726863195029255450984036102544236237216767001795216221340198577843677218432048579974700814479644356762653329988995307659296003894358331541788068334650969276036082776285249205076133338418466475148411458901154915173632552825881113998002275228299669626783200350033732131808072069182835516888080548883395509293803661427005375654506481273597292745127999654356140052118809642505943504676310535986150186268561357435330178348345528990968488381908719457068076614571310822669690341819972530408844033085123765263067388746335826673540398023993144455273639326569020430741666694724621639986602687107665943548930817141527865508209233434977383815422010739670321563148148113790336404051315846433466972191195945589328032199950822805637479157734131903580687008705902591228709154177915086253322806906698193466492876700496429362737675933704727640455954723160919975792409525265388725875941463546637341742581976094774951146440081685398341517892904879131927417322421972887364022242826371351390747571149198720200735856841118706904694243803088179739943349588526013909842098664678051839955418568464705402442514958788217946509936922924770015373359058699147756314477902615393706248485125042382005584743176240261366693375129724994224865291320595240643713483110100129918755769280614950546823700681091437437345014127036447239149702322797791474464518262015373097383707275184228768876197349241973593285529406907240450575752719086545471548113171084184808259168071771335870722556237355542702847596991748485876375192096112310963868451328796079882613419753420135195417759068320240440681769790391052283285347407388432711684878810463833263565514756169318704074738565830292675738873496384686399571452065923340755637998406100036354089988796286490192481423750012271730250214948383863312775755743759769062662902799529155253422620608888241229973621538233248895817666261509296253145588353767905746015338638935995515793755916741553281767311596479205396506264088048767941585362660898724992226686256011582900032018115997116966971638074332850389073402955479232556793786031271617637939414544528343115152485519882519326670113624432854433190106426252435091991858763042303118011627801716586835385843808366520958556396395308527317280030239429812757303553894951562878479442349931411251922296564721969291228185894030752634509626092160131977865461336380147874489774364164475094175083946337441481871458113148372672794822517268777638232870399220644388031893568975657947550003648575279288356913810948131263150162847740785507031800006356345448828356810995690572927102849292910948644069423793322107282888574227642458609906316758050015660358549388954408331705233162548957004867164190497545571160250466768612041321026308190003215191099957410761181825521925763858274645860145244813077375406447908619979482528945453124685817131084443904380903584602824512570821835919941578183110317160654942959128707071298183568090191734000724370049720771586631952317045400606772736346389468543476611135381077992451250485632873310897960022562118966747094836982653015666981503782087604147213008033978155545789968563743292058311693678984856615505879896746406426106173059714199480896169903000619453322997044821804017361501067992796855233373381290142899543554282013767596464958433851597926650470316283696623022653536793228334564378851301238245007482161867822824416989108818949635807998340372535029216278630288354783314680979874519611500021056388423203208451942470055282211556363620730551101985151555186915477592678234823524771264679166567742861934739733072226357307368019379741494019860368683398436923323382226254372889629701544675876789450323775781490735977030925364035746931895893255460418041993445476972906949371817199341901099704296718441630625079967355118608123592891208249933180755744490188720562684936662804843805729923179219835908465751302055256017643876218422660908492247525917412544737255195457103192450125970884773306496271580512140426839967555805086213268570423725314970646172248460439855096194413096536151043145917291013104532307624369232408440893867169768986901189468574204914640535993027531989030980813768401375469552257110356028266668315779324688976833066424945007138099670588010574723608960085700575917591848590524494721349823442864382069950278010462424673363347014940293271895178887141007352029141148139289048484542099073351724391272807897734145546205049333168244356946394763664831651035047113734029791854011890368679059603401571848977973793859319405978253837871148580913164656661489799826784683314796925335912809493029442869939715591247936724333770158030886005340182196567026056306405914879081348614555672736871982626804162305703142341656936572681561448865380818974353985933876456637459305043963185158924487231902193667634088089780691003099932582205464143321458038189790243078153927503518387641456818637803092506129663884194157797503916157600689281745460376668793593571057302529034930701009612767363087646163369983380245241884983582964438402912512334353392340115553462763588872325966187142297332023542411041447963882521368104390552565862225600835598052800699298029154385588816798279147186027432816046162760507626855420788488642863879159001459258668097267373097886916334696826234786636481938050157113973266703492736449180730227654192406330592824109028077583704425607267865680943588461803947573711720262056108383015370421238200189002875796405610632719399342190282264197288454262835707028544863537740970269971369669247831153759663497922900820563948951231864490510882035371808622339402367075867883424424355144520575274322393636890766977198168653601881129124869376744648135164504827341253215019215269970217701274347185440400403938245822071685912119051671441533649666600794085321425538180202073663757144640290299313483150990454535638451021951624724300933043379786267301005453734199924206875858685926666661324445733783776842419525852489602552384452896066409480763270484744538506917712478078188439813069835005065150794220582290482581586935308579671574561313116863040629662671707059222938425725988425501435904783946190281089428253718751031380455805686365417622509457611337886012156034920188310024469976473774727374408421219000089066844671586217781087566162833620237105055111213362953881729070514381945629867989322238650203957032036861206885452113814848232217516007808744099607959132608359345192112070973022323973482601624161759695774880771326314599034391268264401864121072824805735226985025351663386283827482328332325534063644981842221560250403396194435897010154115517296780820233924385903406398898599696335985152671680730176954895728858642947118787903720885843644863548730683648372986773412882428818107798200272330680252803247223387459800211997267759524122831432091417672180271538102109450998578553462174464824601955905068898840232768512199041932590188676551962734861115736538919082227734388385350449330044996280864944082180869397857468940359263304664307726330410427628416489975273999256976203850428308422569827297289589520913828264445058683029229881373176126333898726031999441981158684937853694172139462567726008075489903373941289599812839293786120074776556072846235096358022225611952673922109598947424832651628464118098950666925977057560899650945307934898353698095159482384609224060371693871913103600796770891042530637007060783374884172323268955071728007436178737934562442526202254722612560559689118959588473060509121772766809737680808640836216444722643685082926928322622732606924432807952350302981418489964247283555903020710461653939822938271379203292408122583547759592551616713848372742188260975761649146215005193633523677227663586915424809724878373264658539605260157037190307340134244605797539167319627310021832556951512050848405340657339394902494296037285257051504076155027595793310318164808143479221255074618920268360996045161867286697882598097546480280534181487548760257268367016906243684687075207965076601011792606024815419685409009445103828758055562111689438840252210740057079976822027346124749803669538946739126172713955667154777546623033011729142514115474662903255649258876164821044743278386157928357968756254779871243029161808461707822803785794297448638206372773713019800737416069358658554376337151522180231230511079920585379737526084852348792199501507541270679178439820960628884793252279932179569844088879315529955936648996021558911314346017911177884193357813437228392993867522467020033730653985445527431887629781888796226328612919814138682054007506675175548565126805871970927940317252649576983456336232778096997814518069553137940374235321736080878160678276005475001266286616634451653792701766495192414812391177770394068876513310338381575392474098180085440633842836607602343244254553095309652410656649181340783495481753975412629493583987061663242004828790555378388723610018813323814639400687656026200548994824709835098440790829377834012889196887419085265731598917820205465275023426756036832026350858101674305556850067239372958277582850215463765547459963364733362027163824738616753190997650082428312191636050378842976273376196957149861458218281393738457713528569864408457802719112744894613060680791062953520704565632970097746885107772834504680137758697505833755950331472962493426326170244435513210402496579965527663470912079264267222334770489240078474033869559313654748853515552179196995562302785429341781085845298454146321911133068484360310791048842758594765898596997601281155167705819924557163601858849899281016410688598532500616240482028398248005814921914366326582390490262487097288849144959528112637733799633848059961262083495578423135340695461352834606041703825191892481411064334193839576227285188489114824415540334719427212052797325411926493285380682052790018881451611508810840288990727727026011346704385883884146464720101726513090083082815553279910439955137650133893946989739774269027689325773428789516984069466488621525193757369054690491957168765317493291880640668105178776640426778691075820502743678651134583670912866630461545564367490203439890590730906560464995222870031399859471688789544400614226299779816711526034708405659835874842773429229942975094379879158640483432026213541726084343712103119754508189370202266165849635261083505932672985362201346783816220792390025445294195988929808878140011683439908900579258869951237152104092751198566019070286186270986533804383859382569334672807733460213976026621301839877444635592761650486353818574715822526332464817849167824821116670185244059282257224441379119725971368504072691944866349331502806718392202766554658644537130144976715233610572978141967729408338822797544595494762115937524978528958941344687342280600271899520260687572743811213170621174598447833567786596844235108464455128538547841493812218573688518750529966419536257321515266048564973309703689101035120389673605182780840023029008600113643260848734719621741989087593778118078915180206783363548480421865969400847504796856445720497162816653338374394480631373493574835927766407844652839344899032859713149741310925063857389822750272931149671601398063982363455380624603011827898354572007285313250942476029953376472004556546311002773312401584194741174654951830164309336067442351965326344206232069088173882839013018683892579389425831235617498939898857452930573477517154137291010766006953972756797993346817093576854506187177756003908453904886962043026824646151250362107786243773699927629528523209803560255670390262863744099371244830599148240748086120833727659046495237438355259656908030741447384096926028958693909158356262657560135844962201348364609538686892771113118412349730156257313838542305902080197061065613547401287081956824871848451463207424813487892040291061447511419049876582525554934581902380792709311525044448909193126073920372154774566429983352145601263750226837435720190206942643575031807453115944328174211964921237420843617936383153329222453762318955805865908089150731221060708566826341076777992008868001609736926600871470766013415831105175894385704320611640080028256250111758262344936654952922850179954930419354967739858241941344455077482351118935142229344172536365761433121030037876085833760571616196462094968130548968062061183712802947308568008067394618199754805865531334019013757891923384805092834071237999036460967533715857844225629045193976569701832105992941571590852731285360311242984033182767093880387999267670882041906671503419952752553118172214907157676297042946324025196791390453743538612915636965321772085585347152903940358725827838009283178283442629745245362123495098758502233199854760837064198101731068387971825497493306750901414033493003663459446469655305136055522790780613575160186588933653131544417919404796827254738696009365584665286585885468433832020893668648501333823616434448355355611488863721256681488854329361741255232043029204129201072413119088351932182925207082335554790946715782218451113957266039621748947319042645497750130203883288776963171988392164296054554651230620344807886339716442583016328094890511500041405025178903292121117836533082620660604996083587375264378311773235181361285805174804159624647516598825715765048419192118392787783824426400741912346757384776558188008939755245177521262101382768863321605701663740632024606144110164852192004600018071391282562474827754588220969489095429294659653530014458250980592372021023957477068309529116141459682195850741351238810798318264368192616031992696338155679038981495553672648460791790291218675943327751525646234805314042680513064707202027520460682347716164232674386838628040804506228812162232635012578943772020250660262452018888478199827086883447306291613332888857361920218263691462614391000935249452459112918740244533604727425466704296165166302942243430247322261311495975332622633657281400822156440972800124326024708233199026629578681078966299908673449617235649908028144200628683637499491647849541366343865172918763836394862151165574414796953104279715943509899316151625467239776144509621673687381290583022648192528844934570476828097349742833942976408729784836930573138205012416348058431617740777978214632208671476359407304898801266303282498916503211438008318380950115121348898905825281330410534591111571547041640451807469764207829412670354724774625055456673465061868629140162173823869885414313445490910271406726692200537392195518977624744745647859966005955112060387200515074379318597328893264010748018507302693298354824798377017352559403190470505368391355989353564588188606268914929514713976603191052277330223559189602472273156375869329977515532973396613293782672817854390963640892522919660540865138786990637861773599805431233148022050161222033444108976619985587131172545404509778503082452445163418783190739060485002691473385107437701283390808485998076535979652925452258503510095798305135150544181651655331295495696747347770701031065263773246231762613946509267842410119938762210876561939289687558492488256404529656654937074431192784615279334180046557070238093382383085929265526845820824313642852987640607694359059182013076954939966405219689008462541239449303100413227785578403661336604548046003360182366452488695092921258949894478179437181077062041734993565298261463343037614951568971027108807790507540801278325969030762898568936961052244064493585773248178417589864216247100869843403073782252982797633179589388938580656125315104916322038879698195271167207724350158012956666079109529438377135547210146201667866210615331182876788566918946092927221914616621062304808272648527483872725629173201319829386862082911483366565871072131337526540865806868447220965530322623307338547817206354047729887919862749606515617948061938204324546769648188046941886590940422564191379307898827387497450453808909763285101514089601263004891868208837747050067084676803604784618044953738630648254347798458210723774383849063987432783336696226201640245320522910347863859939939552888390655327213470789191062554428753914611983072802526587754641599567977634467023937293431737602575558993924623172591789961614134552760929873302496907652292227592566024977365155739478712264814401628863025079006773075108915850171978120277881238549274435495538199286954960743428713168413864312388781506082948479501220200112876281669810113787414519064787459051782766318885054589650725073460971174175397987173428284530912621221679139869633026229215142505392803996617874994259383844429801449655674469801394698303657309946842362081539016918514602822915700596993727215275060042195441271157456769358490955889693996657697182748588948264935474968680792703684125935038324628268625792247349335288183703900867615398406571754882239536526425082435995161455263433799348919380456886382833509876480408994855159685612507650270013558271125580677614161361049511423617100473899345397152998254827018076159950806482279858627117049528024047900846554812127743673057431015486634466543993968883935211895278866564622222708934455157028306080209827489246778434016041696701411551803803278979516743842609740550488207389689994136662668783840360751545438304359601645768302351554553723951548865674688080321111842713177833251889297336800699324977225141792318380048219415286031198438887873086755947065158963484791722116328948932847053230273502988413029160726088129495075790400006638433592030614977900785803890702940651149070178575095683621008574179909959190414424756141991781591152003973880579258050172300811728899295966710400206420127683767780163305128486290528928914138425434379212657103857919021396099214568283539040388861780395260081700558404873707415859327312670937770055479043754560082073263795826081067795827824312933586853061683968608360421776804780509990585746043235812388938665482223103489254701395635362565262023953120623695158605547292604938916175772885934092643152595088842726102456696074098325520165792442093040413592840737093776182618040341551484109138223476598777183120380021492960334073952472550130824033400916244651041401096068945593779009767676246066661013119660125133807077443263565647026739766349006076694867276019222424647286480681603105988824384581459364068621178353509183347412815128569823799707258810611302365432943400485747348006393154355923620463378130682986394386300255968295463517717598541040793210284584230172874427321886498595431236378587930866609875838993947924319620090293582497824402846173063314865915332899954521101326607150980643240201517209663746474219298350616933808924193071952292883083368144781615013742706308294046405516450462822899494627057667702234855691367862508788526127665904811314830218457867562875647241571596509787116584867202546054421324183455029422595565169344815174233608242489073917715566691426260271453062992329181397090032998011306579568701245153238563566851135209571386333605159687148625807351469463761182216633284483065251541006242689371618212547908288654304666792754651217266085846117891120518397540145695962533621646050043020309949590244417428700059596676629924052404644232438970870012397871381989826377675247014642474098669558232485342894372530717348174051594860395738339883404846418023506747644705825729280602500497419161049667633198674328813051618042358607836559353275883621254506059648664308166332412041089055056430662006577536626065333161515716397036844313540531971398363674414420313703223824147350553727210400816737387674195078434510163717834665610525188100354998321162898224308963416655607065938174602479419937939229521580784599718261942761194183758645659826761862935656939082595481932510726003802543746910956807741944513471803201645233784768154462229860223357156974014698779217794066902551874412897233007214320961025397142048449129286481423600230926016946443194299685203078825262903646472811355232527898081395723096888625818670546846720704485464287739937136482228763709556137554890046871256254170069183860163711050765709305778211876501821067135127764390642572868656459479083389733210391042603657715939939034251366120204317447261501071765896354446159234368624759319923471783874771061316125375522175128689641323224386538929280285672014865562814636964188419215419855387287488850878869075838455830272144241356073258589175290897055866707935347678928423325542521791123399366727510171735604988978706977250593852443966786340777850154972431573949198364573058144558670202586122583376900793149526092669973968714146977943467702113985705733674517893300014123574979930292607510816003529242859231616695578370902481091644495965680858617420277635962177158525190751821437966573898103304307821215240340994716422373673991676386142465470603657838735014448850678279232663171438323688649797009912079004521069954289356530703571338510069513031365358956479175875330167269552246981005560639796939900843807012113276000790206584823420603150070903508646396933038267501165562330719962847127270455972073601910947653736273547992708306498075488800201653723438790132520812489036481542183304912950364129654094921184768523853511883331039563342266761675458697445371942097498851568729045391364241735441759236229895359079875247853088098609101303596812587043158893939941594093901108219933063422643232348148981112675739956296748023322297122773817948568970105399371085496434483580991011975126877896857577023297180918564569695245964061546963104103013823746982221086755825439904403397323311599933868619954663731050425335796512594579815195100943061630746132848385093231999248450709084412229304346167225222255126072937869883474022502968397968226895701479265243601032402083062274185793088094920055192306108474327277559497160721492889245824628608821140407720178687868044107646924030350909884500507349038877840074686313626952123518913934825549763711559982281442926588366087174498868143368842243066971008348411119835528991195886452310392405759896007501184530021680096459452997965232711686064645962253345266488320729192768898915539073458808751416886973256582511105081364349644722454397753660520178184729555704679545791257717780569255787957729397025974831020508006843820177897594677613276677433490080048211797146460516184705551836983776732413724652733978600308031378330553628749025512649290891475336046401875002130156335172007653843511616972142800304062368183582222649528484369701912651112413434783998380083714604083086428368230508222525066579334332059114250697420986545868591747430540022159164899283345625839859248389952142387047335403410034139609395853036834524826298335227001086985467608461278119508440328037249437949829928589182073843688858662033266528277812866005395906136829180366932407810461389620292146547611035859914982604335644993721446598853145403554950059495996833853843850308658059033094614689002925111967131229640317142065478498699715261209367851835276348422021413777272751426537924332117621316731062912449423883002847300354908096418125794483781348955120028041469356929743197116366601822681178549388801631654710818986221861406207335026555267617902054989094593608115141430336755358599437956890757907096385635095860514139073152702844754836206954473327983615004375323201641414649624498758877636055159922807181448655085150747143207268502591165810618925088451822912504850437950976789451547197350183925768716418351131403725905619594067952309449558457698303774247376039728809037295047303836006348239397771388312096988514869875058313056364183284385495276024340828364100012665897840871361713547157528962964966876268612105201096719574340305638158604578243550747405140678908830060734021819229494220629735799143295372156781948847495758339637245569299470857033239536257653414486493784321418779130361610199852548714257305303258441897108903058030865515047428287640384848078902930885669337955196469883961944344518157979457704883258355596907140566818347863140779377441578644025650201271233086023863405470016881372411162610228607295993274938777595135966379346359660236072810652499138444361107342117964472310314031829202905574172838693868785815552619922116952655723352515926384600938667205728854870828144583449412214601348745355150250254961128121581066581676817711831951532211448521961836491021952887092157012388611221332471091242604889719338237985715413614981546602696934166425443860947425747668623448603400392420845698859368515706705861383955727302953179836376708748621689045000269670572488792483791507004338715825972144457447302510728348888968596120674540467859264514275115804823964043864138424782560984147620181008062131326802181480127711368279095560604546459407161266228472732273792241574659182630066455141732838801010093443786785623999951557619095712065472811532023584905879092859216270442917489206971468925352557829553714337184565770084945024293594690258128513216515047318567466390093029641460772826083440153975637362781113214743531982907551358266117319168389669353995795928272404880500035938035529581965423182456624112497305421939374373207494094337633310163498993794528792966114339366167459655562137740537371238859946896508051690828549168895573333849660311813061381799227279253323930895717104339474197417172786405608169035213966760235543565214616611629408628419564851684537748587016808408097047170591165092117423752709309410788280139122826587214426258398350827441132812689984101076636237230702107813183948756971919471233248577149202745538112732387508529888817544486240570661404957650697859705049117666186447346363309738814005661495788050646963567730948178966575306991235802363403802960257942878755973702982661493116315412510548483245099112397135799309804848810811222659927264500608759133836955460288782249755203770577977707581862290421376789840194133981544601683326267919398581041291825050214262427857842352804289275503768658926911949238416498540331593040504898829710614332957706282342573298161878296129669895147435475358899694624480763514535800058167301225665794970632568234420485728207265549458038602409896792293938521062840639499026598531674735985193435591910732025153667601621859626537173857806145250415515580610033012914935396661994641481185523802753556674112368567028945570860849927112642899878814072555177124812862247544738239907242780997416634906659731683071154212202830079500031527544359440148326479591206099898999847799610281865551276362433567338016571074527089685443659358351964188527887796974371488370707027618167976193702085838419123901456143743485991503024442170136074823968213682448227036899727950507446182947399167879239752425304936502052310026705698032657100844996932435386983414906451142058108170600694064125441064611153406790693984469160973075487137174654505802688668754375421696761392551516337179026664200946633385929152670243205536575322289764365683219264953369496052470308424235618070794449181611933500205702304670290847389845320085340448407743533522576465268213777558853267558744959655282071141344038936521200790540651509681158016789277194580741051921418106058110477790848718933188370790396469503089668216051277944407801461882338981895908043281567966375669614606107960883549541641327637820365078525766950116296400601328049426375832003489976194675354284059832088514804409983190752795741292823759169558663446467664265981490986855158359871768838258960208096720118306506391533618960980764215986462568713887085351012896930498115297622679790616559815663047480531326239727135443970180827564271589538484291281935382338060541938085293391213256506358539948718236231613071245468816606204187383120326891972494709729948111479936673112028876282761882308461236132397335114239078095480592802450998156363029966865206949378504009425869061237713152670049441250703764710895151549007686776579245970871522945161774115725471855189334354020492242535976923808259564578332795568457112108504201300513426764617740694103978505714435987835514613230217821134927406919775301844395019263395413554905935336619487142269769238589457006226528065637170131771399158946156086535046835186099624621307930693829185089643387286634135481433073699856192130210303513188691291170521396779977449013228189240036724158492019132400706741519334405431671955989593365147491822800029661575791545370906199308590433446298483594546099748935756165161809508332502229464659985248479329477361740020950015609619951818962861164066220062072418563436913345661214231624130836851300662102023739915693252672517832483714180131891642165872411903841571293076023397131101321212892046534905625812805944151985702517394350525935296736156225758080891867555377022305578936237990054897539781061165756047425176854262860287890646787995220756570068918183228324134094390352515039467463432591885158035941658402331229720859716292646674357275084298729046985897760681656574748548593650920544548068169458103625153432211725618048349787596104660168454456174625161655507172211297794083380398595513142808945920046706391516540204288237986625072978794738180749778087599296365253523551929561050374416112793556240960564138630774976577856722428283122457438827491476771512928371103473957400337469389745626613940485479251819722033130535064848959975304593591919710100598790680137613780418319796677711962127834514620982821064070752310862473376641869324493310050912528124015621538640499911188318603449065453137725108626949580016799960751211142318076543179824144779246092896686890610426167596989936780524151360715332765016152864873235823541251437080772314035261403620443432765973778947687548404801307738225039034781159746169473324976252140436384463871769570887734691921220122812578919802398299841717479621545908011575533421917362800903151696491946181480051744962694848649050279562374172381271215864403741555541802294367951757411398767839515211009705113374722749171297341650305107354158768529156697539046827179477544928230360409505957984536463553498349387934366910423887220774968991386078128319601061043960169413244045387455011900590886756948991991426911813858667905253911496343387333223531185389217559842814310939434171758178995236239244543672573203711396260417547523306120396912052615092524738237473351066119026360148154547121683827149325355461973015059804508152651461796311940169516561498325138810119861248478812083594700944130812512784834014834540130753388458163270356942915356481650336692823162929972515938669691063195499250022689550034910075614833136041820113918668360764986806972303090430930183942105503553337872087363021999629672218651355391966797646482127280861120105888923735495313247037276371086768094376221568424286605427092464604279990217940936086715198154229509375108423525937368039630751087663367214383066543718504281310082912208016291377417409147263942105067218084990063690830215894932437170015000911147894637571249198334568000151722177076328123492135493317057062229723413145008007727841904270077158152415130606446580090837342073516669016017996092905022691643370624214631792617658386251177270542925801144100053074096648559971130799522822427520294892100560809759727398509049827058740958538267338328878732842235586509526121771397905003872187188938088839472143177501294857867600672961785750898150581539620066215840745218268127988674719345403705964719992592161211467991442971423384794329400956271952531538215110802518205259101003197628537267580732487293281477145865143659612374175949403816782755063900509901778260195774828532510842544456135932010450161149986767854858331160708192580779472306440802426243467212395357223377822642513473806459025954871009236458849635740733852422529048159544739886685050542442190167624565938108814294981450815352013217603290152977255852216881056136208005896291771926054536319189779224693951230614413912474967626842426434575032604791311515945730431292992532171281546286738260326146420762023990777986379719500599529207458989354409164637877982322287111043584111976155622750055684796383407449140742779443244320424134125274549550203306906057223158782849779054324757819138181862051594076707627173919872657010699614586038740951852679367435332555993774475762593772085446249038196134810490767688352631075909485481118668710564417479627169479535301106068828980408096868275463961338328632636923761337032839891513808786922411993506925569645940148045270354539022206944493562220421370376432466975829809445691861517221153987957519274636116190268664937721109685856154547210756754134991428956251753508416368972483448263915090436206114104465495577689077510120986271423778694134321792497119948723313791943005096551892963476741177503802162377788296457945865937476143844007884586823946102794542007223140835725860325796820140032011942191056886191215544392933416556391033477778131875972235886061684081455079516952577868289433743570119732745123684609705686035724663868922560929039019429980706454941968396153299191725496131980005627240725248611274799186527203454631901878803627050363378417698523952486397307015625317780395278448863101007847127851546749985173974141905081665485856848094084266608493480987998259722042275901446591883106608717215576733389126706731929118209735345140834293179698260721454177516867079546237977933321858504006947650736866826011994512378269991753595227231768539156251501141198776966615064842193774923321940972400591341906704909472883169299108714668764843524222433833044215789847287327460863765278538798978354441977270010745313376431417453774438394787079607093830968523325814501675536946015306786326952316750200447609694005211905869167888121156446531320605610395697422308494655331684740064796897513302619193864229586638558151780352541344489149554383670959946902478711474148190569414003719692154933715470833897975469044882173247185959116025311214945722562146568865459219115758390081505645365142828612162247021097787242483399652380318941069400322481429524130344013525183903278985159179516410592071606655484958008668277696493482477734746949632538212360052410120176199840957234979014038122627096420732454988737393948902699506338779559770759662013355630446023895682236303183556312941780155318650252514575783892884529252447966029286326586141492597152464933553472463399330651396973937047282572943394909881370088719023343624203199044666430732604405751517156719111295383613006953693955172039777511150882363464728422704432481510462200621519857559442701100628532192916837369949960261419288683968647655499521120843482127074983747659618767283512950373033183396241532942069151313712916479806222978736334643653593003479265146338575969261783497928009278864303473618160584090525862575991292226286254141616449025669152426834277679965697500417310328684507601882739435271694655978040128509557454894637704499923825260928197469049162133580957642037681294810465159425263514482439760177884100497558897476296633360781221795333676300691237954596328038578523192422428179446915792924740505054040769739090775408066873235028857506841568247213673010929121104589331437091793312777390381294606792365334922269952065770755212614492829369061114779552826140805024854072310746547141060588362009632561665370255550378688866774440696445804730438179511922902642797376555184575745357881867476513421943272960889813788954301220414194296109138587468203887262520592125611131536099739828864844473473617405059432301001780730664896452887381213070040573289068818602753369500780675633056239090021326753508440963747884132834890327436322076929706759259888619451973884678669519387233137015272543366369662562866635230124711439069619624583563981807105154525573654037747630639816997038315398455681549172694522394548684583559891714448036572894987548450306931355492824491488168533877050150521461446909269524220772711019263828024210406497892129393796673601512722635423475682614825012700913705119251022412951395491837971347140251119431869449845001409960286158833862442752494084576565521574101683582304330627307773448545538386256536666862431952709921254464402400053503739504108222844179651434853105276809523744068853069394194897156718684788509664618545584510576242301631119131886010914806837198917328154253856225417384109064924651565044267702344749727771862759467514850195578233607051406550853341816616103013683766906663788744223884307942164815164872291791844654588723821711364102943571019820182830590570376986459214506522435888087718988515134829758441114178020568002169990380993882958112877652833081706444452998985699858537316560891845099400462205606221348798838273969065598485863904766872426638919348145761371250134461218108251352121830212000285060823329727101300369324739528346308013345281433656490599987303489176558741841194697661432688529761737725809461421219888971028888058029298777004025801866201768099898755437577274872188212144938357513878285071780740951364736254082184287498582028036036826793736848775271090029659689331656584552373352071643794501323641518620482678997135214888657247010260991918943710764870510964804207527855117776405626592369699543455596436222145772518521113505430903094816692826148613675007781537211624991346145521609033975744172300565207108707225623312104011849284994422670105661387572093313975119865292247907974939197737672310771424469561749605345620609724954431441790615097427051867346104364333455811494426024080781258573085494176746751844820717758244394834691681002103558426499463906909409613672149037396291530658603195701135396563723181587927461063017651783978737212018528532568608264904536391344853179035702956921248345881322748135801961076132292105010893328739663059596745188403833972284635263431762487578825090752896957086044649322219730157288355746021920599413830414662960894556378614019404256925003334459657403081973240926344413521340252140148417278658684690972847506553507677216110353143577572578810645933631817243455585698610341933952486213355189428602764334040798853035034411906145548835412426042937511303439561789176428145296996808082387602980447304778240824075461876257299953968861324594505090289173618778905636659141600438928483111990045454864180070352559435037085303176541926507212558377425434385643456192918201734207737949611115261742023706595019134515794565800766127150900171966201126860171466251903682086602196784650233405179437280199693315764481892027833534613784820156929085747834033297709174360453576291218413407509449015956350087728581790555948570655476659751722769181828813428012431774667628565714794733687801526262557050064219482465494660319998923771109833273596918157207973184950253539672333770819108283550853519503161044436365305588877264596626649184816668862174076301395960775197869620432677257920808348444344316693503553853068565216357781049718886180851256568474072970727014341683611821878084496803361241476773565454874793976689480329299306681638657457957679551089705147646905086161784023097669794758637814192025841718091481019381343103456352183838434277566720650088885584099566960193827781817426764355428400903445743268723405203745466472144423596556462430251169698349724264569584940159746894000053804517646594925533161948928607202303975142465180625137802200278302773716753050745573176161779727948733267674490382809109183446445420303038376760513892998703965412063186009516703926053438598157418513798372904672698343630474948186615727569025796154385095547865921443890581627550414115961656101231476530856511873932040239089507551764153402138206842422834507548408015225173129668322568297851568468805677676915361688148215037324693893854518385267544598670067894907084464379316162856694546359523666598376476544956643694223610058044084154033437871433125690342682919592035416275020954415492056477323392172160824895775077479558305467746076175053503966039940709049959851711117595013109145841753344388704740545634620602005877077016962761022319971872150764791668577286828792380807050152797811570666260818342587174129724189181057711934015297593784099149286220017626126780208911411257914048750219138540278121834634204051960806746809157038243237747308883127994981144643094830912400816931260948269392288258371211973151270749915798560849966619109777585489974199793229099093983628039344609133097036723950861858854598920052682919836224856925018614978765166373723893371240687744606269680412074892508559516502248295734311987572946101866510895134638564512441095163411854889571999996222369931596658315041231236432696175447189565459190604336427760795002309135927186215555396963977031862310331649698930023293409319877818768541918666665785680704060574684707021844999215889463268072265796084482559137748272505108967802106610298058899649965860056996669237612059008159515647499798252234756135075356704297998435317704274318594249957243288663151219848664206804002571939451379253874666682507633027693555783134744405098128346413352014897943341575775833051700341236095438670992301653282041535751434399542502185022056612911274481662274388562919879848942416613982383486314658131067651768004269530585518855358328644000689414028794852296750004398251190007144519989404374388690183629674311351201954679544382794872660186139031417237710111662249293047394579210039440480230714780177274284004391060644628951460913732507770951027615497410583652236011520994110700167095460453971350031388040775797247203199696374262648672979943376554057625797127824508000281038322409652498373494801550248918956285644673329952065130584165182526478332885496216083824335872112919030800227647752097418591488259747279936107070950978248834157982716570777052000005083785948144086438201403528774422147202982005238791883255793603363067614088689042083488079050896734569146176364803605630548686642066424873285000844972821810395269733406635454547811918320446579932657370489869533094715940847075178712871902104549320714092145662999489929635295399118850685665782324032844152646312702704051050834375502345699240638916460545753766029588367456994253632631242187848501898966500453410612099094049904681975856413087672237124329050552666297540759016868052277646455307706387899949779720409425762999665831993252086629859953077610190202334205895674554323274025075997053392858202481039498777156752391721757766259453565987576637913648806704649689871400893862201654906883559094296583604357679975822636490961579584456488754635545703968883150843903609961389729600419606111849691011300398929057234987928184557385880250611959880082293515834115976125654849902613887271586698545714289611608343695946620806118358579930579070776919683458257214757879706786884788765196804792476042852570920620705526055239637477333735769447587884512808817844659646544169436263599462579480267472846710423935827666074252096538959798971907819787896216566694279517182422820616407606266231303282525788756922730026368796371420177097835050604851082147695716110862448667660290339665565885041545670012233395846294874341966526161819548789844020271233424449055562700824357251644776247904025319726645023480173160112269081688376276267563308955887747515276838180833936623689817852182054736165406336124007854457505152914566266682506658273865235118363127234458958693212525531068132154493174416228363229069908643119542791241992189260673154116924961054285004802733116216878663784654585281276702289744691040999413292802793360516581886545732381902667420774047379768961236036954082209140470708592268545260029067816651554430365244461224215694352351817068937123160046689236312471048832499745783234689618712633069681560802176025345936629159924858996410991919458192552354017867103127210613373563667076529986354283683601957993782951884910613950468037967087986628587331411066136375308150442207611416488397105236404775869438168058186855541930819262729004366726952042498453064684415165487951755000766668138099331841324003496814738937991909192557889264096837773706229176686015033464193205138850145704867235375470202194214777748923103755061037227184614743828828927054072772031493480044287342721753013504211793177287996092563090690288637699522139991185842186369765046999828694113955860624239902992333998815298270999007354466328315930363705509503216855947322031737320132421244720498312409360035740383419346431452666726150539598697671866472814135996308503787712608099123123544389771740908951361910826787910997320772778939133697313958220124490320610960087233576386518971895918690167311922129217289858092561604323735204251426203687742233763573675404344512804382885633858677959806506546067970768629341188319095080709787605551377945078361708607079911355013559310668911631010509585625116490219899152657385529559057873211873587389026269121619516551733288511529220533460673549292045359114903025029618182776104617812464112014640135921546016883915331466914789132507069473381610410199838146645449790554273665938475724868441062393565457363938213361094367617866132933148008865221930786581835162311613537328007363497037950783969773068300626966027775539688332652127834196831540672710097260452936374532211366747558501431185557695351479384572719883156595759665158431576451450768200068501691469186103473908568582724356811321488284912909559883193550263464184278698136989120951295686532443131736814110850107496061839444526331820692763229076782715228839182034945854904121153889178060988503292802669368884773218655111348934013658460507263890986850336608796418046951381246050489828212536917550953953636120761509104720542886426333608943546665847033525006688884745946131895614928795125299667439660774651729405922898142758889035534792176199349519853918331386379827696871593494597132070169943038444619355009238966309380512911933894627463559566567019736162259255749386597536640980897751552470621664312402095366537747668505658382027400447883350291676881091029405391826205888664861341033320914528765326678453300808108798063859603302787888836265835222300737308297660657300792844288724062413996536977600038301914882260815135887556341226021751236165024314085556864454188328068535690247732202341508061078088053341396658353518839097240653093457122692922104122736966075748746867925760760091479434929075451475482177951329372437972931604306142639989167816845278046484483870861682176700970636071129033066979374989665023227559697866193966669576045171507112374982580679140569266338385786596794631953332674312400253379535561912967675563935873289946190882578817945204473062246237754436155237017571348260085814364249705336508627257317815231757876018524865155799517910161322603047578222550723526844272553393387949547435104130095594672016550106784977468190840459022866067845020112788504020248408036137601456094494817654679051617508577225947019643125890163648930299933001016301625584927211723636242514238022235919750568687925782175222896821891696485296813846550330434157288327164065503104539888592831649262626468706763454856777466060505594302157716760902732703962872584585920631320741904057531277565409178811951283270772737804200500075682153209422233994285006177736366400078539919577839032047340218767796465122230456966414270174213611425635047505406724257217632849365624196732634151661634469483623213655290966922078735868787006104441215044149137657947744353942059806149162679923095203027558701798399039059379272153041949921847397198271031571105409019281656060014370584466431543623648486569372405079779380620930013562025068268766626645352971976358214393718354169218795285553360400283171393296473250506567295522199674189657883645532011978424812562324638223481157677283796573295865729585013562388660511362715108382795188065252844052536661509415104099631046578947269852803605377841453829023395904096522546923571291621505313134553325263348965356957128160487508411783402840696509613179350328153182041823939768069629879789099906647282066760579052839013183270793454902418136955846747128050386854082133454703985988211102316870683705093125449046944865071506699895119668586346457460099723858747630817713410181684476235738474851114152236511193867078068605376783643874111453634244426806985857719128795886220060371765351728314122314752851491897452819244054467160867585838200985848967232678744822460592362897176791937031263119798485041181974075943094661142329260121042480450839289104978373729394639593307676703669166022157909647924173571049918935882449194656780254373297668164964630691986454824622118953378563515882016973050100398556337390580404653065067840424492914260832542598264661492164100139108905476170490252220176144529101544212873651324116262964277849967403362094100401007301941069174275234348838897310521449084686061414869919679614895448872317859190302141401808653150500773330067786453388954740928744581663736505821597995604830182318040686334857837020948510487088509982506450429309919307323513895218517579742268888896600285169667586582743194462318102474604509851298442682993673510282703759787574474493080699278872966582519582928198786709020384303489503860289397438432301026901966727922483881571801695952008759004672312323285773834420575448494756261386643992874168123832111996025022046366226595402972200020749235336040993536169869307684340493138023549246280694782998540873356332387063999231830926282870881751646629467411065588201916921248178818485232045405747045678409030404030118373903412672907862057832670339399653558256965609094660249514777710249763210762771252455916233814956921014122205481736345342280755564269045516005869506147676339175416594764028622664926152753379607662519515115945762402744574316851600032704854487431687957907086118252731206917121522931673773617663021886124125897475677672663443579328002568291265983155206911902111502302383108793744857366202991848218884879579466029238343782669534646368941963675750378964393638792833198041174080668085925261467903240215150440471478345877050377012170519867067638673236164008654282602060258108457557650317996483512145481633875369094140307063034818150923692952982390116284226742708467049520997914346718850870058666005041036731881431621792274700767401986351053045714672652453325384038436149502368457063319539897968540185385983833195144523122997741740375318465613131887667873468226584059582082548265559677989515393513240786641241406822668728660924390676382669318220003139987614539713906421918323193188451293680140792607438593561915930811123232412038911318075502363205174543814760897929419425586247069655079438528177467017220747634090169443089395537142999509597535100762545531468060743856675526634293603325713883849741422171425128383378831897641891788709259682865669716171019680444201089667346028436886533350251808095784067491665916928106457596827187089496802746279239179848836631371258984389895125440965684059660795448037033390069057077131934122754912600466084290151741086707174828516115369360862492499935261565106318662596738178970552393025395188256919408165523951374466070084703033021002756604904390768495384203181819050036915527879088876270647654196765096608332058511652821939471043219864618171681892074445093594697139158955987496846518858544751496453604517802768199902324877757021648664364053614050880395008113461392160717633345484804373539374479516009250200222640892220248303445553707998491016482696739288104081468917173163649902274448774608034165208735288523026451112608306545828228592779913582149341483113703094546212405961126186001475508541177436709061755905351740013402008053310078883942500177331561439338320175764935301781871717173047859286118648710258432381024584600853912121021261236255596740210101257925961084740803044699267905084495453790922392396626593780750780489755228576905498523327259972969782024902897651655496720896342638053289942197699353710464668949607452050663927331138347120498324488049936502514732200520670731677195583560551575408001814436381973818205053502058261819374713963048531537034352692855092303728029034437565750944323521153899400272638553452694084715051034125873879682180643549568203163598593494053257820096338358030641504928938474253247683012826877432212674587539145874304389860975088881746806452908073337024995131455903783834294383167352036862200478974468424141592757589598647737563402050509415870876676502361343741483570517777108558693642948406659107061763235159827719617589413149936570836545546760692575137495269495729430613407505096140471513044010530845405969764014405429750611308025565398343094798315522195852072884307630936174413680827914218645912557779672842128281161859026674534893473137089468957601553137675257532396423711787846437220369980287930267922480456779927847992125875169243242574113627922383109399859386553200096943292040739631147201672828492914063689011088478084220715007724714001562240142023501882812642262144895542765645298234533931972570098035388688909898423212338096634768124106570254914424133376485960409914058424233113564204660108551393005852194600795153781047788303444048156696402122074131905236740516134845004125323909167641396175651422391945647673033013625961035928645399842685244655514910815040146059428647832758247694402861060914565119835071993315459486322580508872026447041011838278965517067714670561582133641282279832234841227241720844853199980577377281208512939089259855477220529377591651019529627686439472965850282378158190912393524066048164895330020689717594409097359930440575975171262681019062082729655635305746720196236553551075410287944162278527364113284414250684426044639471637037240871177339479041595431173704909499565179103378837532435308661606181840295974600893536616521879939423406328550903435571074167732790958214363563302153701202370182591983682313490488009487987627986776613051448798253824707655198687689059887578350058821574643930227335827264936093346299031490043497621043100726164844416843085059460942575627145459043273997207487477827403376670153554354197265920222485335747314283392618745611137652471253575283965609314592706469100556631221181143106484665575104669921327022568128547569869130887521718493600992389524536143952949245223425030078992700268971357291707217456991433213388515872261455639124829901193563616752507206769986980102489595044661963569695443126270127192975781024087336548919596167542052277313786216350236389688469763957740403336666179793685184892252734417863804294766711735438689549526405852703758819404883633263315920306092020335728863899833427255047100135322351178135723396709767844721402423766695212918152642917350614866434470340393157219932885547313361168335339511756878576542243204459754381059234881530833803054906094863384664280704199207472442731972520487157496754466402193287922239373835590464259242996865665804982438137972423083539610955560999275838356913472012584440140708291118158302331078454199694738054689172479011001709656797330490359983119823300274576188863554196725724565327773908469689471491768355515444072366378442150732611631704274817504769252858752417183477248903122219242124961635523633488059917680153385115363645115029491140036026162417547704237160245414323637710166844827885761114016201794231360225965509967219411085534575363404029666962384435316197503793619193428311717777828060284134404500375312859583931291094245703983760232046888601686523418990263069566523698920379987173769792995570546332511359433193567690787105124376926107237695164264215632642909741847856568240355018606568149263081542190319428221763967428925926125472949388895133872720749402358500192975782995336419499865431341857757263293464281708186033292450145835222527479516186776501931607463163209958000823663441925523569153057664719530650226178908773878175020379111128086993135046055863891236738753857301954237674271518359822421635848590528477966514497646614240484472359479284885050261841891370729473744105203553441267640973789770539250437057948531557359864848938068829682584698912588147765111613271943422341501919671390946212082764572127589362202573089110182416731477950822135495815676837909131538185925124452086415054476644678668616400559874272654925811836472411572191916218646488999609299996629714688711468727425462703149221766802843139589543599257318172227685067415205958659650580045024503377004128212177844156339937209076490012246933607025967609347808930174645550064036648742427035286215908083438277440894848946897497466254443948518404055076307008444947645702839026230967228006210207406634246467261031881993371553525961177876826833568583677753011877651501963106413692932431943999173042648405680478411828917617659086856881106104340108275345858002024501097792769423588392399052780443942178137894439234163381169130961979033149541326052814806673663756368527773878634976605271398009305163752521211554601885255305209781583608247307430576775095543674359297482529171491559849533060527445957319103521236808117237045292239256515454680806494014352993531288879326240917472014069413351257430006372443139305713957557590371132334243312638248602065323451484834876015263945408458666222845379752015501050801984650979834929164226334987072305781414101439290120499176165326875287720815625265403183124815023341880253077771390366342021664811017362676126201805970655824784307035033642331871126765118921614174976171187256417646308303260564767358534030813962743395595687868221017154218657353485383141367261785875487174797792253732546224858104180104477585499273549139507520268258401071859930454063430997288842062138740211433965716874311624823856554864677015781003146539652705170958907246092713636474750932618441226073347673580857146076800653754672180715021194441872933630431188546029578030655565880869487357289552421774242522619638624159388279743107701445139896499252028051400554170776167308618079804922115675857352433230211236201812250922369980904695622528185458348118119387827245891588819764778434665159456986139643106293667018520627262561902841805897405946445004078341989531586680404725463214496516338633656812953760241228671774398867820678161036884438309819819764054925235004792125931194147308754808623246169969356407224834469479392137464745639865966310975060982675730015851981575101853055964878570322051567002934413366246908393267229620697975735429641878224697799502463661100814562068952661734540093332354202250861477960099357484339123774329697716025226519052642044673093977536114558353645565323133735323133535796330146090631515625724470234164546002492283399232501635614239291485906855510176101304023691454912403690971075470446223470370444614104164474221035403407169839532196899773888129068202951084075877127914633006425507260125207007594895469284206731012026593296978298119237400274094910470931015239550037517384623957074248534661721012306761865791596364272868857407382616094083537335861451708340352568407336774444142057220983078302903827130190401792793037960876355229778464383299842926045311601220802985858892874457423696254095258651258763156234175952013285045596702200110321186806229375055762412975805979058612145664829942769288518268464594832129559698195724930060503101427286020186506902029172086489509770696115313680291648847022970676969244452698686307036284877497247128968447625747569184042972292347913293924745018212844883597804510284790405025130606089913852406466175910357290710654933898568544403573644488376069017729977214262717518936904678896702025626656436963458933137988011299100760170183358012740488947592645652681849697589452318133620160412738981414507312668462353323065167255514557400139334368913517393294758086929516467625732263621008189925692333312242583733297731976346158343141121843464770521367095590192046767344655195060677537184481851961091172589592573998063256444777704677322654554650773584106210796311768246672552575925829717863886606240697848550992074132141926972647652261844310686391091836793992813177400678572595447875156732502648554429821843988882245046742141273807228018259214247029574097455489226638846268825243235287976130828482231294523999115366679891962197959347218359978559981303780845343191242190606668535199225471288674331718022472942347133268460374050001572234272878661900554289616939255693463482234796996439090085984094416487014137293448880451155768773408936370391439742448592881993082528520825783630552866033793204691370649556117823047806947536755943290713377086028077737647102719767338519069479568045466837862316968557717687693199736371602662005223348077423364463113548940815211908701721733447037711496162857178576182354346904168594101747331221496148660882986384069312902248520908961899332148362876183512606130812455567434638441965953410678714676990947269382284133932401187212618205088427582179445916844041336775116096683216929227721505847627805507442216515297515413268283383911575920585844248286732137074004377262359501886405378895912152559404850126458404550256515519334478778847243119295068268068749242203106925937116184218820966882221575817202814104747134867448666869842766192309812325696023467820334038456537776049157338475912537819498568842890768001002717039808974709467049336848981488633950561868943931316825719657278411595730583557318076856458528810085271237909997561512007534784080664954648490790473860166269377357239512093534256592456708625056471398552184696595045143401806692714772887584795709417203054353912896802439509834160831260256578528184164994366058903436215043032226410313541527493260009965639176483873838588832718204985122380527026495595131108455402589460451568683413128027654459807754892420037942820995130788656319110250970974893646772870485852562174461757529954158379179489392031565702422667042831303963058370029671279686907899607424420526948658775729999303478701900053797362447082712629371700501202635043865060533700607221830589065529960577992173654487123183114395333442998908034470752732295727065374348011212115556577629871331310229034536142003919406499877951489232042075394015256402727342620534017748565825831678312653387981877273174910468322866828705293403311481128859502352557405588384004303503015935983227795658968765318545857128775677514640065184097940009846526137563460891111877366267998893046474107212107208244323899245650076286070846654695456161735220932778940534237163336178911778075293773003742750327626211662322514494473742262415183820981461855547463860327099367996823234044307909887474843307624841721125274104667202951285197428259639698197613453495395644639235047409641582176190236897968130414451692841712781553516726403226119988815585001106557628271991132895033619415839735959675481694306745811786396148429332636845419067380511669654174641814946239288995508477787158785557837464585004741250155953918698577402974650258784190613221849382851715225609466290438909960215559946397882582300024047924236316472455702588310484929411062217433566119305557036949997454249051528537166737406387779818652821969892600747422278271090812908838608103792880138743002171714230766386225494454479867920593777501056559127123627787378012029304311649623962447772257548313764968486692934625074395683965122122245099397280338304627296903612281483476385012070986817483151864689280457460687124857798115255104722743642060958851955201309335707869128573929916093834919057764521124154954825552423240065019886975578914406479780277464698689188877398849948146128543474855249716972287684106861156363518720500256667294598580950046649544286326955323648560685183974570800779020193003868115843546821183493476221626233772010946816615256914298805746510604182919280108633307998316355304053550250397646609641895096838330901658627025683209824071216517346486676905218917934747618163482581328078318739267700455900678902051230062065053491922323750746936806029687281001632662654243693168193325903368510836741721908289367695378363896905246055845047097024149634932299780046550918347166226826319989878602558746310504102495015823363213847584523930476812999545998939810983143250171854015792762083096688949207689482543970295709107247110742858679787635658326174944092468366342619989074534186758531417096182966293439652374348734745682046062388186642506766980309702973714311367701233593345973027614744432568944991581960801565595281422173736861346381883961802984340839000714376665493305326835136091207135045479853781450677046950649663500312939185183887595125841605511744176044662007675429935256770557418347352872012078349693951733572472534975065216987659251959089812172939693614543176643045868274020936019723579005170237494193190560667645776937140815030522773262374046366882858262040858390653654174411541645500056977773472733885716511539470184232782035234194634025819371043809728887646123947494693724902007633030692113542615030046988440854689776147504102360015084902596342291306294959633184560633922579560859890683338467158424943425240795732079258261915634780960099360893285250755238057685945751585079680981994118308151735239648304249448098796843404894032550434573449938400470215751252042089221867593732436890466895818910100992065317042528649718625506881315913055331375718164830634430157819002952698474353650764991403184321924828189859888177425197275897760603908084136583230405688602747224270453531163329335653954048499157829719080314884311935971243243653862128822992695650046392387721180458157448758239752942010954068460422488781091072558122606423721854935793676606823889955081808740913984227766636262108678003602530615112295008867253982469951018273965212739428950559819549312667551998086047960321786911983218576077738326728442457029020426709824860278617936376628697665000380285476121276284384794011775506163101966783395559771662236903377562415466004269908821183000561863124979202731342655888794354877071030217645115785368465402934369770696634892915776992063239434983439891200108460979404378148835464447021703001822478977360239666487178277976965854166530715169544028955474575737732130921908682538010972868147333629122320751299775716892501981135493167611662271655053621690332800390266720637487232937693247270470084381610491658199105179178117639965802198638965216083455885402110528547168671809944735689709066976292172190129928399221133878246352993239692635584462013901137442198521981888714066963765210143519373817114945211322230129326273572346768908882692222431213512095712303505349110923400815289452557419178379400901274156276033449794715279491798688715439959068089144081364274696405112005620766303667049021030498126667044864666842159122905847221464243889748986242542562092373066572920461547638859071948727992472767398356540050590725819034395257572480770293773610854927468136438532638518635071375825996873688698615567994912286379177816804372727617392003544327596151303763137438592437123136147428765494774560465791498660550140979906139277159625501791014537402059866873613939660678223996940208594368424236489719760515446805158395584657091158974272054018057838317099521483414480859828957056274895893554412864105248369250208278757971975832408048223423446179824939032953745545863220295863431576457888862578760549418604070002410846899263899800183000099136460819006562929778879929190786272419135310433434002459217641949493800148332234853830086792590823485463413627866735803954098487021641977187238626355414892913562543095107524123566102902274008842109777166126973189484557540481883220024406250654118300931284949936969359356621101736096488924802163448245184219369571394464792008763080588375749605686170362637970296216463092441427502272988441685965505917834111666646469830896338950204419453426887493425029300870168251482344026073127384640532449954103029653322262394715574681065277862475971976609811428086282388956607915396596842171622983100229056222558753077959645046340087185185662574550301690395955722064009364565936993067328674014505475756644717500350516201547241573144912258292882750981542177567638236071744285326276496587787585322533160868029041346819855466687865129580582089686790457580808064130105772924888084639687040113185216383692514202424447316436538664069647439623211790906512252903508461895776840927211003509627724060878000147137318763896987901691451898814319669116058948541055493015212771965079360126251408111554378315288701234550143024397529868626145138826936901787054716157139216815034665153467344835171344292400960062805237552785444904137640558628103585452989966764788276567295647186230459722516725667025938476618630952044680193468575984442238046965972526205740264871501559020636663061924470270214117824236421306211083112546056292041783356352438287606117486908501967875634868382203912572538208488757420774761420450701485720985389218690631153444891002329286424871771434339146158103539369279115084230770383239663188918111260475794880033219753378563422613361951384184614270201909143079221453741823418820049206598183998197165743388668548081374225133069309437252580624766595982008994513440683225226110397051476699735351119569561697496019690458004699935112779097695120611729864673121737026021323642402446170141017955258216641815184351426759651394666291846841409730467988350380531461182328426155961684600381364354180613239799663446392926704806829332310677326295000922411786984039492145106053898500605366044881085657654234030450606863729860098236085977368679362901009152856954255022182742509681032954169559716813360187139377403182704277224917470930650222439441681411918331496983123021696486731044491087807470908324416505951916444572866321639614779873726042069651035282744445901453555272483240856617134107401910899592586113306374795811872148717928997668219702734224333343248697409434907618270884586868256125849367636946543787646889150436964980092837049449973597195848599471759007066206293859141226231935996712070964861908818864970592272932905240625482369694117993129398901130539708651995655051472507646625439768530116937512204280098746735015858148669043528337290747049688728874612260330479985179138731925322575137025407937431280428762610726876947058017863536799271181557813479157733239220158135340313493053184519333272927997118971995111999197996294586476768589557375245417255343836068723853204049584618014066467538502960146531459448252293487615908678915668315405911644231525152970941889046480174980448704867784163235313274850910148528674024523537360389508574239481136904859374624686460645986934255299729626391682096354655990796227182033929974810156976637945498674403889080360173014298617488669437112610367081597576644146429413254805290715257537589737097658479577528715794148456556414497853686167996041466205104222523202270189908483664196232641524539980072319583982168413749503712004548290330359268095568388581318757234883325907211238628249573778675415208228197382532760997306272632588067823805318025058763889851998760041487884595156056800668553371988515484980018867924953278656886010018761935144461343684177449860180509614002447861478997846529717175785235058012539078797609377167888416937348726582905253377323846797380482502252263667368036793869060959222625492389508466146893997806944168167053515845780678438423942087594484994457521891653073477844764050380486555421181513649673822208598827558191956402218890500129657253936417273948270895934485047820770235194090613221557476768091512419399131271593872975307766022976919441543274677029403037557059703042539113077498207515358011616608140750137389379092390336472103016761394260492516529574897744280028072532400962553780107087740323765856274196289950398295303800823834242733614997527550141203529178892402714756193269041555971546971657454856123914677840143357865868302132101866559823137951246728527494897648559448722842689493667768455329585140570466902113728203852356274688506196965810828280361294861634324848153097926858424097297416463488746059655154363437792795653899180105157031155236118603419001554315413472576502700876400607629583238961363636364344484076390109098134499810653828004237455508828578977965035690967553456117116733442180064792565306810533464766500966734117794149499121792995564266550786905425573595047353819182887318529742099437402026119775229396906498380685111870006138477941744274144288761103667252378574895083442579329902019887540007689755568348762062565370176787234817448361738147370891002664786610376908855629644409912910974987077861731852914609258477356714072160798154146770079807213739619531901565822695018863535056563872100988045733660199635662044670121218208300428400684355772705774874124684150776340030425231799871259001608327589189287978044927377421170897833294197328620037573546174894074449089738207935216009601312489429440264524275363556977621968685182905419508374200822566964815257579178506223616398636917483300343462640961671519427714658330090506601235471745258082916737772248649414537053715483653158136380298845035271324679056918163377183392510575646616608958247717047669114805382578748501955623679720605028195248139162456248247083290344824594190104881670125583873792368793533392271458025083090680058720707732587152582036928534115598102402399508247123048845288261515457080732579044620066026319940840040948827044330776702774516203323511300990512438675405027082904641566335543505205206242886793339446350970663017213328620630161966564243714538950235593622299351565328264096458346358701480996878358413301628698091553537587674389342398504899332182535767288570174834423819038594981571433107360714216223978098403605245439918519793711116646143068415380653095727409368130915553744384953561444018814362445096678755031148252875604317720741983989147709884621833017407802308495624774636500468791250470063586827589042553778732184923365901383467097619765755141734144153434886449909544244106349353709567444624989942622056915073529964099416405732140989902210334420398252190188582404157474978445554744878517626509904891859189813060210236240429407283849808018589990228785117403908808409158648477344509138465977303465778360596323414378853576947110642027914811736731155652608530128943691952607698225233543907495666848458168648767739025710793448741302791148254149919696057947744962271711994688314007685018829842002143319861563037056301073428935781444791564388306315764912987809848962239433577644355758405781856371993325881404058232122217647845267136458319404686372075888244683715032220564744647830161209143377469284808499145035242213604422887166323041351430886405871940102354974612208347465429114786766190602175312811027524531003108087224523300411837259116508820900521890020906674349448238685521534895188961521375215422526373076353467805436020264925475013242824181693471922705338240161942292839166078401626667290632688119881856528839706417815816914312004402891720810180296117010472866045586132707273747663648192150953910465624787473477946630177600675889232348054899142451024970351448167144858108261529738959861187130684104838957011096049129160419540020472512186111562793301694243297002222014732410361009891654809481434268460749779945600430460030907285836283197460463304324937345634390215465688325193399895749374571355138681534267762765819299741200811973720833802591587731741552687193232177166318480238333062141187774417222148397157411505683838441137861144993500303979335541699485091076273383221809189910425200976091703754155549077201552836165582275194831564305995079893579458046860411654188680560420445649560415140517055917884780673269988849711557654557238528187593034280156908059544644618875717936613064098127751376475216462231381808432948527271988974923668976243531095496673664800833996263033233173279642954457477113637265748980723526120551492626497229298181170251464625117937484711929818830123593155464624769615535723778995108606142367895781630763605176624172553887637119032042858026239202977470986042975542384014004882134861750058334304377730457706940980121831021810235488692251392543911965365736464447933096256635219448601435404340496074244499379745692903358989683976734140491906275379374777215795295596782348503981235619724206593948255160517280265427322459233493688636994727723193865660365198652014909241149489961079923096980269044698416725509209488557585192554091883179847471556290001966642616558288888583942359848646913888209900922693438776150325838522623149997045862288927243588141428724635998309962844308680968848053712068702845414246412772628561765653228326053223935969250848954913796058589640428406052172964386047699676128996267480591586853811341066523650509568989208624936031122712827936729949310812420395900568405120570610471732854867404300744438864610989153364636341026690550380293328536337978544137981939169345826183701719816137726478606230618502001870237738895405116934415292843361132551336400714401926462533570750587656856837618001524341069553603467099378292885553830609477722234178385773805759958250796315411175743837366264174592421399222563073018420962030067483686889310114424676849298656108547917361599359451457756011428605606623235340032129595172582823775372128814487764677122822402719278396558577525941104445641031976993334414747243146494777065310575846457812467435814518209330991986748879451052770249445750556886932733667441093467816448292136692840878495058534043740150827968420548710500361738486374625387096663802696986068966285963339019908915652641251299923043595204419059475068583897893839919361002521166314012604427312447804481541229825112220506139218096097359062702052710073346773106072725868223128961476231644456323772317812510342433518869054249617922442498822254956799363003804237618271950063047547191462342672005834399011658740058045649599846263738885169860367832883874341152853873700435291392434077618292141529996104350600095146399919790195097994861381253424973545836220384390060692253413888365324233157823602718598421203380763329473919635047492834899555804046913973223234587802526319324932435587129641758881572458834831434648513226738210587222762403592928123220466585750855836568237978438761778467764472368460524653518791806070677842588439004923800161600383635520254370744855623697520835912066344163355769402323042560360208276351498324830916518382319928706386258330817199583760496795039280293098338958880512914289099293848923525559248206353349201898346870772756650031493812559109002346249961592922853085570958478912133294263459071175254696990274720127003762758764384348421392648470502395358353877232336163449602961659543288298461174033437106509909325917680444017606028678292541210138906021021740037432021670019981510887548851668187003670071809000731463372473686723217084009864959204131444453861080843347790950890682389585911616160050834648662179217491729306774168540970017902900604551371191311423575052531108128829929827097958115934589554026179813595823504379731294291163889080660299887972576968238096885598725465435480979665502187158840725041326462863668616184095613337611320243334865147196537397955057219934972000247440458099644120334868665226260161654654682880784619032395579350698701044879518283841448103926630032161130036121957540264740108875668864752477953251004799432213459443155750924075330820277798050607466936063777430668563256409678654647941106376194524853693713710735423041307578631722648065715342545129513570566500333471955943849973301960287816435962643719814226801656446233056854107686855272288011320275980248216800898913296468502336014063514503483085984296077659801626391129920282928936554854826074975688632493832951133266947376106819496590614278484636163586621704607191920583948860735842093323863958807552434825294647756958590264062278957839177585772015072017482186502758707381132343771417171058825353116014234772779202760565897044695446208437341995315216324936792323487715251863122015422206590333681117456674996701460520016371429766031035780362674776170645430037957461528684452654656600070400925918698583578422662840781188321876764484467151503981347920346194943753492272423179575955886222454062572330527024122339661703916961726857213235876602210649930263623136405165018851567419789443177064804695127969254579539257794290844188866870042378463031139051948837894309535996176511395104152058659710141926801034883004344132111956304792195371760919437314478438149747055312287015240869843741834783196994573773474393997836347252767459973516938958180959259077682668185591004847700811450349332646189408323346084512511078059114011361816581900641973809328599624077787791731083059145185334118602124424258337976931242391462445010379236886201605509707525694322589322380036553734406864525998098496569012126405290179048939910363108552474348258637626228077526356418436568978236154375615705032952692730227936363355823483740478247332349389639297492506294980416097015333468055443194612078873947340178738975803290024772159636926596795237759738984762947279650070387722286283610923618540748624378276368794352778236345835495305276009772217271737708813513991936138932455416069481696146381347193175833346973590538522845836421603427528895797927909308065753369719034423604174465149367808373353150498912829300787647826971619074161596341836203072860137624770593281365858845149966493180813131517804519329049400414176496012375368731107601442380580347093377610096074353659885613548425894141558310746527129210743302721018924781248470142874994198961982463074792223481036648534939955123962369390744532073954752165649472357625887599346099251120383244469987114128550966607654184946236915384738298001749779678953738504394829534251111109394273362633007447824832121839408147861414063096010003342395730073374182152411413831508387775599869095020123893767840181659841097146992181372671855152469597557846159824175265789021642730836142948388520217236817533443275741237774818145379434206859583254797374177033029494074288396312533390414827937959398280134175989259039239468033347994864147228057702647216308873110254611434665808561474599701362447065651385229703165430858898566023918581673047134956123989976433155121928328171803891123844112135951323567793388748599537550674374923975527140949337509273338998122040392732113953377023566476847480498332286878633008432663983518300117798363596884944078913193036826965213808134563132148225391763537763167176597390530268383671217381796108589742290002110894405996089855370902076506529721170557054129021957487438475698205052650785304912500216384052230264767218308743100081265476820006895567631841528714346727373873706997715997710770565344822983191219841918504397005042457327503497909205660649666822401895645466789114890180605842349634184490883357575970901141504316462083580359241053220998312643520003312704624016362001196800050388376329691498808420882770242156506270917894316849891149554357567136547478442802004144173077299604000027428246724818695604565332214647001340496183854138694763950368119619126725028595809565007398464530251365048229986058790275458713367661499673204918030923536346772757386317853170092049406956434066454701885758907764457965065306417096306572528922417155886490557441911004926881441893619963281910593587810735480171361876656958955389859806981338032548448856358451284728015859633347356587791627012304980232303377002228434741481646169706405649450233022480089945776228479240274551547906016937776403772215921024230942478839921268023518340693174190946874736297300346050868677036327350864651589007688113366080777497395999274929716029152898620088120302706051380585905173582997822322549696428405286673409430191042288317478838980799490592467310649967156368857318585801270794269523568583066926269904629483029528184234943938786646030569069317711843045722039518012161119743327561257938618837688427413852519138420066057782921106159519218269981465079519457906386303391241040879360008170582634329164031686650886373083729410177945928481263344786788121573129219105206476885194016590061848134958491733727654226227595624264679380452219207093892185531904808096229192308140584688045027532678368020572238074731694440157530700819544617163829844398946820072844443627090694260225311111633526952184384973764456935151802350806569320022241313729853475531233805481577259104821432114648119754486247389163579300692366459792810589717678318769975898094170916836725550552389694012030024485250682667773574720718453302303707839431518047844449607045225350767586297589738789480447706093181928860506997770478714702967321385922565551570421676971785090961167714962392983300082897909584884217295217044084121310276568611617052822011113438246964077678018596287613214166956322340545643884089005130000875217012688468112770816917116747389502256178083797929922466922040205938720233677648002964099982045798694697547450676755951505483053783785345051718502827364191919992174405933645350095635900165848357741793094706434693678149831067497424061007394246612905320932102899059989946910984363374311886527369289909235289246619282930557772741446732227762764281361278267183320096063099138774873712446223983031764780872794919994663757572240186344537705914635711806270626790917643482933507421235122430401485940255712122213539014626621475173584831469142994454302179560952525012980746765295288148654588100887294467151708688135829667227477416882945857928785603268697565842956365780494169894105177317372454147516020085298119052642777430570882518576399116297305125121538324907984442112038898693224594508716268669886822484527258145272457141530349479241518140414212823825615993288409703619196632326625131328466278623679372062884204440360580610331002158624793754500105870590206891868631133046817187135331581911592195609935839966952379497391481845982298349315213401886634970922571789061429379454235240484197804880183454439538073786897895722558945833919514386842723964690320999617041865155312195254914716036913795762166022073283446065865403757251703498704603774381060168023849832391104523355184532667241711240831514109993139793454438621728095956931339888491038143736438557649391975747058534229810832125181116937830004127048366096072939671713194514213204767561764316750000995651912591252182586481876045807809095468453975858942095011707633155774509784082988338521764247864116275245034636091987349844871260292969389581654692729389212802198385287337715082738287153876137031418149785954496392497226729347124399106952853040684086912347101416484482113271708601690156865658543744051671175815845804004026293216571121732681062992214419707100377448662635414990205683553226890874522295063853918622623038657410725430439860495511432829898377905973766652166149613887965645071369345467299336059692586329730790493293367491056952138571570273770882946560933954498050138031067248258231573302514047464104412404977648785814907219183079728413710914919949558534609059811227922674401527915536539919437583947426576630447568886646424633130105605996403702980813432821638276670524856515529175017857561293780315853064508846692393441056008481601883935173040499238689936476124794608632101699829042883978228647669428465801383036423557378523112389496390480190146542416815055867265900371575621812403770665485815087643105755318140504214958130548782053403985649972583253553534034972709098569518511084343583905502525056522601216653149679602837364953589835855478808732255795470609321048034640412049676667394549781971429958341473375905634421937807144026085335038891157684911020351947923410245495848953827120326560248973165135188886243338410412612898472344317002920740277743142175432380570719241012927540327606153217023159131281462659277324798106956000254519058765872572629097541855405427597354291854195213095715559942196790030420973536797991194650427365446641281664610510461668674739444270242072370350210149563329813694995973763613160992891908850659628664813129322341589653191429520214681351476473854281506044089113357464651420912939065310801126693035924264209535339691974345337992362819457194156359413948458830317400992085725828632827676727131055601382956275075320005165074589305929153133496697677701112448147338180648810522471045448594075357950789390974298277430526454426886483431679833178310818267877546111753744279636271472210443647022308624642133480993408401990180486472225523514826951719166778260096540055170485362127926219053038097143864262743808917631997602039401292171489661372377851304306326805365889380035126505926465816763647978197031348049212906356022087244348222763991264573385660197500730374909633540983350963018813473866872809233469367606511277014286624801078854126654848649300789185825159461767092189662847148354354679455798272358502311567661502315652664077027946192520807059945978089640900760519528371869374976722760392212768267051040989918734687408309375024526795557766050703452278457153926198131402559597706797200641127793300799209507079633300853143605223668401139293018753727595802757735464679379760823471926263370179611350048800075923171601919376837709844407639005440328156641059428648298136237286020798659831538126153717031876722423615517471610501864377172645838623935696279771017638235065636602172211854170973455219291789827874036349057808113145676199650346332958033141432126752607377511327361145953394854884725562856979312276432677409349531179581387022860853697820589220253722424348421552208909984835165756013659229878710803990369241508900470272616893741051838733927988758739052113517876827925303327912322845118402049321142136547023752063436122803429366532130020276582354031566855131755569859271569983779056316465547521026591746739894256315060686903885126082878890208031815752024532155391838528889276661877751197022856606818725769196847776181444411111804533157504310260774376577406288650443962713751244028609370180425579011597931626912318758321415146253472891358545829331917090821460522474492064537948804476405989858702121899368880552248603028498363147081526908376209534614266638336700926132786086954930971248774211179461996092942737635055032313706416270276204383968992540323901812588950034444614237136335461638268153623678370963586485999250988222381962291515566681627924007003638535082340974524306108977179629437069200957021189982038315757668961306472626799472388752250889603164195605451147129915826398093955954206867390644520342647902823719259048804897227227642287955475116099048308293597349547043834775177217632828760317906471270034504090588017213432533570180993269146571899923358422910374249575815335244856365161810526501266836734620547788407821632157791638416551232685830986819861969916599247717421565478114812257294485564260855131551305668828714822028001563490007040120492627573016301777841739985956191426644981071515604813122454031093026711834962273441881560862339572263938878583351716229619686429028186665643120000959369841048676877264989360975841431600420829549825317721256388260882018642249504358730212903337814545882944114010818069875880276537880992138702335887200925429286765462696717072502700008634042661584010741509186073871818904482360538776346385598405750265120739460269024187713820938785696570388032886445690724575662296717042899990032879687901403148238136565339268613191948318315316387525561225542589026791895795506006580883209118733967067942782454221376280875497188527718206096101186379242337845096962399048299510815966215969194601140667468394493785615785769779408153457863018118249823360865877970295075965192002666556783312129710884804141938782684324633977402267458084165446372431228910405401238041873245552399394004059453889241653996089155881303981963395430142451078536401188100472684524776287960239760815698574156628611635898071232627345140478280619901455814521183754530705089098663609376813396852325853203747619961153400334042303697462766858479607008752163585198093196796867855198857323732710606305037605877081545071611291582852424666262090111663210023065626898423796227148770735513404902483953532979552552506147361037757781517298409565098804139666094893587068866093495088061453059640668795461468564344234646936743440463527753959899534367449352061139842209648778893429285541946448262166985181796337749931018930412838844799030734810112060002001691160802226057069577111537513067793742997599975397004613354525965219101888954630830979385722202199931242031324313669258546782466464670984479826722390004199262439931693175506546050740075083036416278664284008002585795805665397125166525483552336336923645016013080472678692965859794123910058124508745368952289909329222010028145931806866547292217109573425970238666341684954997528501559980380721606133361135338239631906066626607366065315299392357146279027477888974593347424450296875472172549113695686561201333388673309096812958010787555712468174425296744015268124163958150984509201187200867474886957446152141807905426053569765709606432127266860217018337073527488219083899841617114284588748312038527029536439966386884344236412265212031959486323298496862270103186173173963173613286291178247651143819385205533218620477126579523092988074164183656568557781072543435440350616580902689656500301326583515597544503317008523794609536227821977232121427782880954469009530430994825737130613773301138218498491598959531535815667196748174259392223407537924846794652392525867020347740906694253713449451419738075933467652124141034084067634873385691798979981068207599310025964795547992174943146224632693307164865613914894652770749313346056709298498043608601262092681555363232273037699538814845016166785587643253465920867848723502616663710897324332636096230371072582777413799549644289839362890523006979753773951052859152053491263492543081593853418152072459248677459651408890310353852310998221279258750340550041331223256190434515137167071433923906944456076888959592314491235887629619565610747556465751479944633097101698507597646416228534994971986233461074600385433921375114876276415668128892708261780628897954462582929549888043257387950893477962620711466428066150102156371438820226403409094773856499586995075788493842060736468748944860683583936881255081370280183288030194140620522202664170295085235748955013645283268416016316552355304842185642510447520217381019740727342202393519527663737265295413765625042963642162276298594679998258891938933182400115528958511520283751076611804776869586304922125348841207726184461075621184230340537481446106888867423315674985728344662219568329529723086286991404561095823366872579385541509820341869677329155010171527189747916350920202853830997180815976818740627390001363861563010877800170111850215779995963582600952006601059421852248558687066988788204094271876131964685013329151318161286951331835596984316741696631974599043154679070161951538475679558864766666988273589631690270959475763271304788637991074468463322587073328708417876707515779902997440094896631831858492591142975084595274550408323264486542165734549011771974372216351219993561993658418970254528083472884892269360477550158913968904125649972867781200151790453490874397565186603394931012408531191136887136430341578331492341179663046599338656463037967109997444779341489538621376850893569934603045450523028227151683441416517818194493938686004024013731953993249280709581210436763373304709450639561205608018363828823891409419903932402607311756632790041578013236120533776789286891997343521759815327996937756543819726535530723280036602767827431285337690786252241622107350686646803015899600412634384166874216055247461152800495826167466395782181084614303111857303617647055813156573816931135929379921833084311314253537779916266043874117997827214311414920444691939958469057241159469917610570285972840244404831464672912550100066830388373343573675934968349699666737597485347917764620500169931593640383235202030465134135833662336124111220983895474543468742064732571252049682038934235064860837880910721821109327215982205722999278252458681293014246614101927688343301632266317582000957001898701338702911889225577742531488790302084697137613167638646200034113451380589477087181171505840636057149200729688242959810125794486258644686667866181778486115294720047756357717291177950177899142089204195650528242575251606768215461628908835579616964138770067859542851229918144892791410631920839483345658485084854625632163407451641441341081916461461675842877450697251744546544779084443464994910360449115267188903540347344986504851348157775392111707334640819179478558180887222422147453374847858983260780701159077814655257265723942056776228558346244308648213074641482912268739617331168321240282586261979535692813587317698540133683986913927743455074507197786167175439906593961836103386460472875803699515973225424172353181189900209161337001456900278038534562118017636494141468426666249754704892729228274962613176518502408546530182859578917619478764859709843316874626925411523988621820167192158574382537395201587290087987519460403910497479391223627103721993099008563312206983216155916620389208924794991275901379351342236445922134187890136418437217527409293573376160775550090974245005349620324847593451873746228296203475803053394457621684943428748165027713753396855453273578729694192168662096641041012831731864758996468106147836007755811957352389779606348424657807845831300626687892307958227072759231494190741421060143909546376337052345303783714138963666616241281557270851075467781222470668225328222675434291492101596877068218930091535715970579989037614041572901822499746668816896695557998684340897501589075908342245016908655354987566875883606136297679069956363571064110913369507924339748687217998347737394302558810619169967439236162279045998326893287359810975365839406593636595601752577010697199856515812202762268981490008083327035168732417922280951464545628644516805511337731195237756945979052714671068925116587639881969419311117248749971665158567682886893424900244532100270522206767342501516485082392344892814292273082658003687722040599665690486618736367169313450310456427689245042780354578879306753780119371340282063825900047568532327794135519675552649257045261890168786157792874966935456671597939606108947758843708650918829638004304886184804871656281932959651513677183664765990355990507114475401040086199711627536301631097740037313032891493576001273718820195114506689781490466787097962811180129565469788285818432854928748510475547834701762006006032848507256282939516121662668260935563840503856650832081531619200007057006611039310544795210627962189311302206802147268888247991772634067865620934875140501622040433476702706226818019514426918512401467054089684124323716280861767465958303341633581824888931551860753788725004185326014803049346152524100849952236312977926480550716172637756027053136136649275230879803196546509355141693644502752918565347546798084079650607135806605794698905302131312894740501533997116607473931448202614987645646376653374435880843745107996606829090569968831086105281931131779736635246521672544012377062610578288911615545458003408436806977405387468605550210406356643492075504447810182580673088275313453174388274903966750276862920241032619938399084933280673666969970985231949557745547378340232886884597876270367349285906611241652723589137909707557204973589016189335771804977787700677099527492970056919140152793967339525337790036350168289987026524047034305681953720758025652216621326341649788233730770210610509829786919792491063945712227506094228229522240893434913674895971751595350472758851973793274900823412437868818025410889633853272049138844899904535297023519366795861552403493700389418917910124610955403594119843821666715269889469315209078890622469336598594630736722356256184750338438949668706441063646987082011203713981408791533957219171557889527503068139651612033211087794959579027408938124266994258348685097352115922127603208604526694347156974669389811861715228762826010367883731879976425740687364664231339893386514305469099281872456953148541346791901157183169447265909331567731280392956732006116616162942430914488639180217688344115696103279877229849410558075917488188686933283383757361188680441384396111149543093073812144976133238062613910204599599984631350937324038555871733005124477440453268097461826053598816206453161437598415656147036278271938169470274688409060056714259834149819189909236066957030391849729106261494428352322052234803887425166985329170893148244176350927437755963249514900582536722769965821325911187731730521793539712292762185823904882608691756032948840179903857245828374154579728518373199376372579203817901213079672580673620211172092619327819859365254191574299609484318946296451616332421008410261602751139765762891433521688988988919435266931835231262521821661732549504077501442410527323108636713146828224318525619089245747311217785478851302782979964874349341452611083962864912360045783852426660748412280820445924556268530618786609395492109072181479578795098233696471320171562452518249241501053592515032890717959792807393079428328244021005781961213705162070121257954988399849611231535479617618464899036515198568026221324490293733885797718359037067477965490387439099270234669598617068618651623122374679041620723249745983072724832398587390421456421574387607789123494232526888720776527284833991632722556906737606166023343059080339586253564559920482248523110627034132648518032034634959827070461780699253626823411279424905525127494208167535162738572420691352954512079211003739938547298171218926844202067647660151615589237912800753931916855790818828818020939592438907118257180583734060970227447466780278837141197864723135587333605210698263432855509172474651559598910502494734305420712694131511554322266385135125532217869560068769246111840926891047323279530015469499063106541487261949612309889130608478624627555119891618845722176070459518613963103067953468419414705780679218637255664278124538688333254325823943587676876948748167710825268245775988333422196542485275244051574092902849926587235985399311996163516626811873363854795350227474451628642455362575861466505120931480644068248364234700962577043581702269576514380177263254690945205478235838425178259604209878072479515090341067753154714190650101688410708023641183939138150450953040507636184658786416921260979533497188155194507228356276215871036652738338266816672901686385331684416409927141279298208056817040741733956493469663617845216237263447690733536647341012971212125801451025557078067127121935629282786055029877442188482763019892447571336744531387353619367022782438079662735101015189885104628772871446952745653661827080656990222342269672775898778943103135726632405771372433571318892071291110175434465449670209258941576990020127484726261849353851999726858382992840591867203671402818282725351337433394970983083356892192324838536934821726811970029557113474472351191810171118452826358166375573380155442931191823732045426270783996088284109728129565348208725635870490239119518465490647230672275690910301946460969167034514155257753571776659258578057269748780023833833905941153286948128556669983360545600396118280614195368754780175500601823282677909622521007982140157979585203192205588831230026858792285828352143337519676419738322821979227427086022137130471871726058837332229608644988550090530185881594304326226747306064739144663598850598589757954017527887800138816558739013208561758436608342492590979713703133674750625627086256584319051089759441697112888890923243969573863287378329163144025689095535498538413871310102778667135991668286358029703403536466800037733840703973749559138570582447130877453240825409446675613779110842253912237632538390882460747273494882158872851160778293478678741268912148124334419241505418445243775743515209535314372745379493535124215070628497427238147366437000106217772401384177785216586737843452590364424740165709453619697295140714069028621322236262788432650437002811547218892311551787942231567350900472786349425940669912772351368734116039161030158034971057109053376814590518093915637176481717434296513209500794458093420315481952204378670515942201598547589594641134292848530732519887967919777050053573849726944138163385039965763646285158774121131085536432489514825974322571718296976145846029058492722022853514431152327514394559114051650288258877157419588459737370271470395279798980568312401584178893931385475198933678720354621181011032801975480198710177368831892478597816511220107459701908245182052784787439463890103213750477429982731716341062708918105723286656696961575636995538846568125234720225109401134367222634104708859542264808128910914895106871966784580090532189215931112882469655973861031919104742964355405139326875884675281959984297841575615478882432399609427554071737432606769519559197602326135890282193152283291611468592546948733736256098540252890301362702404934677413694199875362310601127004880275974151731487219234145276325183811745808860367953014624211577885661954835260579661806947629899153750765158805667451686417145049257479237693741319200751389271245622256839548248741454837681688657142500010422801387837649140862391388883659957899894136651673707227480604298850907864450416940854568717385155562637236939781292770159138666029540428597558761725848003617531849686046907955433562457147734355137916595483566829479315296986129157605112478427192615508309183845407894845324148799564072292455465612016134422007017751199829478362429328584303873627398531918678719621332402567872097155632756432375561485670249058007273283696048331135573114169652863440940351325264536200594393381232441315320240927239290802171520230081801648984349427100831374678176265070297040158955126748098546221502405698913972769019853523396806162553695970721462100950222818518189460628172371406231276910599464766909807075344154357160074645567753895169999513366909438493061284920641947678876919295420393330992099316387477230159181495036993910552634338563952004554843729005880375375217871120434625315408125180053775330579406274542316347619604295959235581834259560947554488726688517940054618811247034685461102852597662288165510361317656373851024628560634612566472545385778557997380442124690918325991289166737273608410626222326733489067086743361311940862620175506745178919290758471260341832426575485628811302929230691523759756505950945763449482513299572487454178302322117434288676340795116216509097425819653231629450323841896777870853645402579650016521831730230808611047228071532134311940614121404447901758773235501672547235916045864106621736242108432810905074874027692581544128817491302777991609111118679879011579675139261657198195319717080014936084192141164737438378300150935759313335316631584999001670781052613332192633913158939220695724302527615506017157999044678541538238035674872518191146577124175567048772100148612011465860836902962504113653156695580093675148694438710620260909793006689138498605738018969727581684530052925342942329463871179793373833390252546283368707467352769160846217763020124373506878960255080759665055841293441953386180351962838458003313780407375327026062772382127869563778535303520601177291180903793131630417925688437695404078983328579223961869284276925504547712241647373953796455816575492012266751473733806805934064563189689308422706365865919642339250068400668084961037426950928165483475070999473925535631069473904400086029282395033061750716731917355276506445396558290664980929006463102299535548063247010539325382732431437199062784127043018482123392306508401056747733894115034323911127404966082691087132011394480192974687529520484000225215309331520658688403090333052040699242320838743212851373619027563814634024048733702706044801259444254376618540554276579180410199126421100486596408911105406761242617645909935823842188667516322576694145457660846204959714050011558925383458218786428976873943420515323532750817552828793337415331236213018975277998235428956982854618384450453429285188896361787251761380937043389931318660666113444478864748972644873796561262986636465251303299327901338716410122739122618642753831734337805183343735501781654492809249611913993153842844540642225261267695831487296155468560755583631073582470123748403416199815937290740799359997559697073198037182611548358049250507505815990987687758513157560842188093630861591374691743415704524083138024287767391171098258900032294407289184872659916806689440875738272234765802999353017928947500488930934488781288901055677986696919342679587922958424074648139275679231198446786766984257850828203503962406613024638853881783715795241488729465950982825767406159108209395921314305982989893944122754620069349758658947062534678824626723456731207210645626869823142550771614316724555111948737578457231219121674425351267227647575209994909231280012755953234353705496983938940896031964709414009311934072795232019941368249976328812501767685749193028896268695941683413547051796852800012307853057677635811888976178877789803325875520599992724650267579042744441364409806756805990267674088593340391346406289772036043079972691917568340476319113419449764454943040837190200125439792002636370479459554280321598195438599502610942048492930518237457275003966222697266720777292600680927779859010797522895873955725745444364584615146241821803314886055791819416753240204216755179323572701418903302043836638641654315212252339568527550879684197305728110040532231645419118778049725033426313227017152852403269710887919408642197116789036752429482225294285899574023222523767873227985166083302194272161338197073756660494350014011794859136189511803194253749356347814589372206211016513794330193454796597901301693059425721732771307166948311545332783563881540062601942928685642307820121289489973609442711109043670961068388690233706827352260365129631431080093149349376464586775868401257709030991026365043389085285061451859584812276804718066599860280151790694961594543326912783632372486716652367796467009164074962492382475177985548493072148921019968145984105510775320110650932124356736453868453262210578964246615708254284316159766945800167270628978346523412528861450000464805981660379550111062618919438066131613310901210772247850997226318116181336740467525191304702604805021479910000399495992592215068162145242195470771769099701003594312019035582922355183080843722993425056470903864777468148665680494015604705732322074590380187788422424193414936755327979717247931563790056159619997090189010131303822717118204752415935890551504809242880083238078300564784053119741391404665631516569000741649587198023473615923072364357133259518490986648533531700819380774544845235098139649496023556426990554049372298305807074037496225601231933517298293113953822698442099316985622774968307533489560692473532065315471500247173877719361780859518665556940687886796956640995796601180201474271985966762008827267406501213553073290523024993979849017533855208703604540669664331101467010067123777809636783171490770730954582492161754753526922178810216213357604956051708316522404615839303654033724960127127979895041288411349100054951773146045547386614398122610233208936940380984533224947515671375955625295546018229090169121542109604368073271197131540355938692713939821209730785026816057779422835407564518578364051173130805694037168062608615845377974400762688773243283975876458508686809713479484629332182155982192824664318190188012119843605312362151206393768873316721248628776027619259311097641015657780230462338441337823412440547771887393227432733010885552098343762878647178813511327315085207995621174399739752675437952581374571854954136567211376946096172201721482433525376086394668831559800927448136590321080516311496464490287364505853030563179495149852635755521794995720665570595158091870249109284636381801823266277852327787233653048816845974937398068923430665585910006674361851350513476427147571782354619419145515988203325447657136697982783131588475383248150605073643261676087273467230396873035376186636169566170838612717892625799802329747231595052818715637529055222673945871756959630883024047821512350494187891311418966062143096856475801879850641929438414687220537166544647890526938029598866118293081104411836347790195878800805609718579577561220912281753026317582672720381309921282797472128407564138335508292749304400679282548781120049573524131224388145549075592234644823136980947790178818812610876654899551638233981192220579037594018165584502404778244093697428463001241269290316176460044263040625412587562014033439107243123266489275074649633853615489915960002075807166893737941063461411466151616564667332324599742073569935124557443001721686970363224323037927497053555532740224911730345332910584566250368658818461790457624091346705400117812782453758217019614136569592734728784505424449991769892081795055690918439302175391780595656791459238505842091561993444055040240540953935732444753993979528938346328051554223081589719689382186375188653909805163712481400579456062202257882645221455138860661665961573345270737864197153019073686284134831148580812116107052151160563573522895122831278603090135438447673973964229898498449961057387394981685198792209235275933699514792496404740741532428604605752561353135226458304574180274910237505560403267872224830336917092113437552688434288258930688548790585302415404292304685549764676961344235769098446207574897756161718686860687014563986168823988179362775663914455170896974519221830704216229143205779514859782002246639701280029789675579329515180762804920312363334569667621613945908602862446690913867828697026931847018289931972940714815339201351975870287900562824864547905621483268500909947863916796002822507089961029340555556379154762056683242322981207156822527043317035936738754069426203193336124166755270079981479199231397551009153673284349027711272822097096756516018274579887811853499615145817897325761325891004282760748887284781633772679205945192235591077442456912797070470174966609628446557316517526710498485332473119817723006612715621141440934814546744328140739691942954744532496130092919453603814962359376051514722005959536102663810111824530606471963058668078175678768574108297998685038113449263609364915960234049270777170434816989589145142288693654863923575637692855859546392160529113398825878478200352747397104482412492208346472375583771613830506769306565249482788160643007506295645841404029194098898844006497209396320984728663017937956247597535521562818167775255477497153958500030210881272154900016371371442191270139599276341169393866804194472188938690442137445700010543637927057547444362119765600016819119999240851061221763570527583219006182319143370079004391172557902724428660549262338611707285239934385364152644031108187432553388461708532697568357602391904030186992955067175464636434032740421314683429650556844419665070409446177152698763728191078490065446301156576159012053411977877565278777382414184243909117831527945783610888211575722090126510960874224032140914897448701756752174651661428496267026347092510797138031268512232916030640833977091823744332507609556383986851599788029663830275193057374985361744840472599372897646986308250098935816124251923083475253031464950535714052602237857247846295633006553538976488318824567037386367743358633564171716468758380172749669914092071572826209344656505755016396142068551963243662292895484925278984161572831546077685705892293776349838919262588779514717261998838837178154966099327947227412840769714901557354676044668104225524722953021928043245603688548770954725048680045948186682851012125126390406662400546770898345373489177095682477093746308482626146690266424346177522213032700040669776585837229378490510136728570817802618325402926947620709098331457708167826697719081068709372532425476712903108723186882581795945758660903712559249723197444240366748117044875522656137149790947415602544638057124128819627880210076884361609594603919335484841333610920138696235138469909944504529014308828839936246382962997706493486951761865258605330067397540776436420276943009161376479500396435344162738314347342507543557792507835838611768487041019594511315624874053047402178379306074282174966385962121985149834099096060258917904015079393793992518489982866397783593189652753707816406165277310410024494547813458003754104510218027684225290691535960128458763262853286700753170300084468907227398051370511255917343682655311411847228849526736859702271087265664172957600338468815164752784294635208734041922206382448266515419765349553493964723370248687458963870103335248355348037375135983530245794801643299298440342738555065025217344283361434119870187561422113028901377167223380381095170944359927678541588197889546710256625437387907388247430239261160234577803956713529307480227713881751240810601084388093570520667412160873237358345065162550661158990780276596426704015895325673160611622746991116121850042709911986414889968151019454905003058708110921176203240149887597954913948996009270146075506881511100524696144590917030469778729376508578399666100517413768313246988198435370540755900116621797583257581831707779532424198884181570726648986500625110491019299726100204166001393577943960438637180023386902760992316287625338162922898091181305683974123614551002501242590348230353893744141719139150882835636075194677988434718947753534782087952491596404493974698862374025885072890843370617220138721596809703627519182747170611632488671195551158479008616275189597913530113347852335702775793186444339966993726080710936128258653070634432685200615435049601910973477462508186514914013718483278601542042246858721415388845747236607596495503815586608496791095212809434833662289756601746084160357674365368021120691787223276099114524165369858964276006433342472596015728086967358443228294165019139341385756814008045414996089654788319262734755692555079460199462628057382824905532607192793674787876844261174554302830547864592418881900967409033966975731556227697357609780493910073005848120513396903360036077711986358348068042127298059680401753497586105584302364422528407187754459180971047219466074588257259167314209195506999979874412226370302695737106508070772612981848940614257405061062450496566110591042396906391628656524962989081695860596686009659067522334048518433723916948634615849900306103147343669361974855126728336393078894242683622787546672023050059778186284071756693920585743408636371880539579001137135364825239405353429234414687653683867177821451345534758843059819350999116103441022155323813764018268703815900325968260269803711336967285693574977141981743883297166195983338831747355368718279012247572105782487240767721392292493121553940026318332246017933882590877188016417496546641029819181799649384208446549836737341502409259651077928352680100193529980246864482682744750953284412178627613801913127494871118153032652922701756119958422440665265196862713636776945079905159512767343355803153838195194583861903310887166443148477380875410850930421246295301925837285517826981262945470732038177905924259676121831785845588794577081782881642886128482603709069671749527068086991351173220463974360962734128558774025953596806866502697954148396186841669728581152282823854923901294850163262570266317140178829452157928361319053201204443287066717780189119468687400858609637707897798521236386856634016212789666627636506991352218803770914457539289859938895638050405798844982389747303415331966759036219304977896971918060219115373785938665204718753612678355409236501817434304743118515015587355353359799637943911964568774631122606541533483496825585958384461614905079365175078448735303261130341986828024228019299324248017513230343468074714090095380777910533824478466745283818740389474293044978373558845885594967265518696624816623699178689725360583302172880392480643398785612931945808224229271797744221303807826832933322625867306049967906536723781144115777397174542307814209110910106679723875767157123518280939817161144045720953737015413423035601335823081635852545942476612334760546318867013379930377311590773904185113685442890810623379780627071620871533167740115387703156365448601307128917821742734242710041335072074667556843736736121744211627288705939983811950424304522514875916193649559086313601426645769070867232233494472557568352117950676396122815604276945193950428590339597963772088389110090530162995298770394251282092934052852443528007415224304615415037311674393381901936612404809711492041621919573109959832994531241255932859703059969507106421012029034884798821963385581450322057758878033425702262689809865300159705818893731899232170963511658095371879397407559803220059395929857866406039615358800791369777435314863761757805981913120755249249523010793902505859992774233988836925483777537591210519570340410708262410675825399881702034848523038169740028693489974591258805419267684139593202874304564615880509904935777161502100237005167392890351154517050803876821191457535528967648146653733445889152420739712837748654548308389331828830301540722067006737369505019148814029753040735559509611988991840124382804007983178821832172027019706218449016810277050793016569159027907606657823933561720744939125990572139180505740351047440596454053193971798221966163307431211705788050525001071724524915895130242685929111640419110301682255398076141802332198006552836573632522651823954417580559795294054612887065230894764528492137829931312918802043655543423627878548461822041959131718326198186996698225713036264246115987556309283014617767452103356397763373507999824473552521431550471822355605575626921688371061249916715093837539439900605585946830088160753412160348442981312755487033567592497162231009744012832169386094277673507974400044486272377621570070289388639451960545435588403812529917267300715202789446115033543247221421214678131715373262227318748798563706436800950338214333176997101266796535052271823031454432099246223574447934308033579659725393030421351713357709110423910678652596460897213325899807772298063423684683150304508506681906572461163770016951401824221521009202978240804183459161802397652113944580442299451081556044703672945668515439203875681341790741121873348626092585593825453214197668380129232865059853263102422980259846411263403155722746235753208224476149990265952512705975430961033188143376457377794352476299987237143403386145785402106739204194033519938055955857735924085661570101739952124804686854330316640708556813885472824579660740275866660100857488289977685567343935211699487533632771853305033177182702560079962806111187011791780002732144123008071169137476850959076549568802029591677460326545432341041920597933628814816542900093657466661395609213129555617832257899106041706594331096855172948399453948319153239964942151035243787434802875261247307469783659153872850446180723807412218508044744994291025598528669496008941129666119762358216806460674704676164497516766285903790931109179772199515757737698310622655173683267064056506328414150703855468687465451566605475979490602700136514426138831381726975834836652253621664472414279479585308548438165457755407256748382505822259151117293742573026949777147633568468309837998631816419075521916818299917066008611986730211668975468162800137274838809139611969138013326717418853742836634542451975272039790314389558596637701605968059873866433457948879021734782384217940200155311722004793333358373918154735031662421742223281000048034545918847781888511415792225626336202949724959903323421199171175371126716676325656565588470141454465281435386446529538753403223956275248533876582024349219198739763452635847686738876493643660427173108493768685674710456674542311150365828502204357743204693811946576848336155057485900594438527970667297429831526650073288564585109938611302642495463707767572827684328207508998034693678295757788412223952780423780633898168946161699565434098570173904937029534804795718068300894342215403032933498776082584479279801529852261147273005301207375530441436751986207301421045784162632800319544703188683293021657665923161623426239062230279878333582584997408316957024911049559299259065448814167642531115091669079480832396951129487226239402836240718248652966447193978778878729116612529105668763383030671888649895607817061375618486297661225337738447644122309060869323082649717739595802709771378486203723970424396536769777899270177540242351320145871020866241360115058383747955665224717493509261931835144286534666885893931121385955294941409259877608888183136559612746093591051880086068767746425485298070982473108635455823869010222715513802656843848706325428456310135127021333112150090253794956694293638248961822543502186873942933391128190902294234886160579887778660745729467943009564426997873300161816619774349052202587210944242458874599758909179159896090082807188291499024536956539719830196259985777540791853659914786789841659176605830000259890900640377605594717450260256187405368923139808375467079446338726298811059789714685059180308777637434955970750088631267079861793335173019422571664876378977354699895950722774911406275978177934517841128322593366844567062266026559991398259525988343779680079499764388073287748057715688670401923267194111353349791655926630929304433444954151397863855627678335740816377011520980906244034006301326646136922448179786241549231923794541338905516974456453534513144859172816577591993596850275722561963492637174105217239836281139154344722441739390773332719316303657800180159279974727606434026439779651117413646330537160502072424610147765106758965404996737002873436385283577141873445724562890562650518896861262344111132366360689352539711612232767064822827147011329701892873956002558786259087821774619899674523150708312941958245179601974313848322166238419723132023294833545967591448496527612769039653343792135681863135138187236597489430656094269719959723742019788485439368711930637446964594604459320651224131751296823516128169713558327073987558324731518442344516035275347973454375968951453870128930420756711069285336324966996336981024483655706484521444768992192788726867892766894556606473381805807526659740141491825548158783732566755984458133600877944444964820588175621870083055892889628602490418523337172542115900590917599420167755296765926120813615205763325359387972296014870746778062458565687481362944533582935963539442446525348401513750276282575791372731423602772954771803921870297520195803286573959270901059126662439052364631820405381287740259154518622684484407872856633557423954258258154991835735498158123844631465292259526061276772460100143608199194292706070981258888495603991917283761235192876899742918933142471769945929621233487554945332900847021065240332300410907586776400997464889325767048907556067198980754002520361644314270012952491262345038047747204698914967680861049840463944068809701241841207266499942121127073307302185197142522153174000706751838287379970630751331045443955120216895340004937777435035370491151425913431115820618416415852895169289870042627938635014026470088478838576076107397608352725091330316468300507938696413617904701165530435767281954767065806160449196529852104625127652681189326839701034298353605191740678925575833923835378130398273208266160705735547344193574515391733088360330427753359206717609257058564684546628208296969560193400865193913783799446068214589843919314696992622808025925510812691440445945776036163658364659464275832238983710651265599871568614549156172337980757031988597377037025515774152528626152131615074146447198181657072804842685444025468487276656351416811758675961572397652739617067133693684663198982260269523532839700606892155131597410225645578222502732357763028653650690750613503299318440959674416642565834277844540414884579562435359346234099890285846663853868276572401781625454248808483605290704533019656494067581963837512772112020487028726271331309090757093312960895860862801578473795050080119609778824837419672157802035372697384155880475218614787626776093769179565855417525288541187687466124591704974908073545597641568688073621266532336164646710934961330157277179184244199539406613308075858888235206821712930367717976344977076896396162421291480380980516118655809992812789266454490264550180161513772166437706953496464809717950749505024542938637459361192993156059950171876226751728203461809267808048740385793517863484467774155126771612545532071895486599281960534921433000499939324803902598575533827596281447299354000840474797820137067954631255115661524903695079660724020161609319240929698764308879310732341302203505636071910504752043818325174390520246486925874648018562700694342554988932227816331253344408547116810134909093724451523732071300890822652626224690738901597475474621321834274262521945727919315371579020397994582754465308781436011362269039090787864793859550759516558463910154839835369324656812664050930446968275564249237146435327274419862733621159601723841165518723782472300840752798297316800341359692450184565872417899404100742328240806345175301288804904585577929592095524731517255144375667630095114548413640023312480519591018050913114029309217609083610925170046813025404214953655020466311044142774417326763252041353145030388777922009870528469698889134959723697428022437930504733185656286911632365722579989308452681740752077144706269807011026539267686695475896206382753737960585681818346710059826391322224125102767722271121241528450445964708485275855305767917587905297285558565754483894285922836917020860952743592890855099733781499703369317184008640400581505634657050917296656277052292765432887437470891229794948584777282374390075712557237245229053143062559514468719349840212283529294244015947454982242478227209177494925585599089162861928009354226218305110005212975419676318784108123237188269639801731896099242534255066152164771554490594201977529736980329526990260891033404880237773706937579278891551378617343785505967942471510064982657056953499833583569987907245021635574901142546436106262794123533191897751854385447529691348616291117246426758964882691631498902407275312533984772142792310876575229107193968936575404945930931719233338583583607412855821052332142839814458645716465710665046384823005716996946126276908087872630450178375053314114848482766894033211119991313956236670719154776473925015916447874120222699461235147452410646367306299803902370617798901614601912913429421592509449294976368157308525741574854244233231565535834838850784747754788896778121952120973066027035384888508484777061046243945545783932993986546623105774464045651732228044651807811659871815493181188501422246716915228697642825209323071129843142089686737296233336841345718483826714124965562587765059181420811328793834950880047638560042185492924588583773816600052908825473199684783962620411795868173437988333820176087449305965075991211878421306476253725872397793511733714432981498621459461860328821825549585291435432759171522416695569353160773538467441017130087688511816110358418893011293494432830019258018493112938208349531103597068311260297805335071470288608885406272843446298603553508683644272542851100116102697103188672421221291646568802254033064794224909021375833820818718010685022400737193748654910446359310859699466521694345244252066808168946800098225824711097386789609264909624078453729999583190397214016900217400830618698705762919277706354118055430276243982788140689712858536206950335553684729631985577863558719170021020414341850164095104225528458430085063081043318941335358420891520485240597095201492179555407576376059023050715385967005008841570564205895716130799868150327802314420408469615433836655213843198975701870892667645817480259963618860768901691371095272939950982801542021000988577652558372909954701048522381259108278692959288489164928831668256102420539836390940601075592047693921540554850598774176549569099518216700942358595274843234706391258158589626587568289849909124266936469551403100828437251329603977691139829489941922459675692508536678756883646227840526460976044622009836520287907968395654384202090162037306011305947931611344728213895909160064364427678596890164571753837522306067368518061587400219507867737436824423817265388191407766251908404054081884735553254864832086394084094258457948091464619647162459301209096167268745623640929510948230437110923651004178005426888019147431910239908871643939390205024627091036049893307951513376783816803700987283074473497739824402067320108397851577725736997161506150635601362371515849958853522961058737635060419882083558965032137308989697247024415162398021723028032499358065007427643103518948938278275761859773681335511515870429711111708367062659587071908732780280054473963820961976372018698752667181895586367844699933489888386266728888820994134670886158301381465794976333036613174816785051178490027207474298545444361052338695985351575030132620938328767780064191883051068239962869220956176390123466088501164986765827770575162544346282170874322086261652254316890226892939201029480070315973598704699680802142278809033420899382715748767775061983953754931256355619937553424378167370462584432484140433496811313490801044556320496949585787066074221491300255141923330572643674865841478905699340324755249076124309881352232429531147279794487071614456833343786079746280222487790541219671396704793352565321062506987424241098807340385168073823633000000004378863235980706671998004053096425256614095215913798041942710628916128873120234081668014509032035491862171447819428007751206515892631871775873955935817667755752804002280901129020675315674454417855180466013574896711851300002067877915719365475303341542051447693914845690726211323407930691676648432431005342541433247198542504792640429834165680356959145633370204498549044333986463737693106734706453107244776563434578299885767542796837889634034347323083914350667476793496759916206599534323740164763812903535283191703458063076634648142469257321018350169093022632163103310911516074698170698965588988693181442602178361373400477169340439892953960406522972020556102874879531150606441693047098823837257819142754172086445554491482059070651414266278545662975096133370533151827318965390330075530726427498987988063127031799038864498515545844736477615236857206050640609735112470339197504363522067232733578596327523607062951291186440609379308009455891880667572694827640556075985731055576532395437029811639477988395294562061386401773121842982748308089826668470473002733216921257309588442591012131310995812271732856538776733858714003673100334280433617183787711914481361359897570367835615403800626383693582076536800053924889448882843123054908154372064339981043441476050336532495387228314072649214031051575198788549215622597352425629722354083636962590171581384768064691501023913098237444963343368887531211364940043131719784944986589241105469217533667735108456355350028719196227377425932021308963489906359452871552793687552829243516377305811284831770129325520728681614256247373882256807680465543870661710371161195996672845658777580446549933899454840288143593306607503410404762830392141245716112051390913793993197753266358183557336758898929375267563812373944329588418920057605592424033864046428785505188956640843246140335712773275283353916432872918039053337737356576355394979872399490355157168803101681275037343887028414135921878817822867363502260777595920502471943146936756287645860839309068143796617507409735365218606726112289878571544963601538862691765596605643724335045968550504727759778422630477871147625950777842733973722489455985221394826798492727075102810971879574580842878865998799884222610077080252518213234562535711470224419818068212981175598448312191985253748609679026730335567612032414230425222903205661027321400498199900041786714364924209931511283536348942760849793980461671392224710370821289119537597895792234449085404883755477705952014615710219992875770424697079415168777645478274013226242650701637898434232338125422442325234090275663475541368098910646157918736606283337225925533306529155004399727208269660637591382419846871372408799143244311299472570414762787201796529745276673841566669622903407766259633690361254409169842424448536134509825065199226152881697659770222031312754067227586516921183918621427254050008567506843028532299590820397892760344900382618484676667729384688008203943240559116354979639919516379907378718432249493891563074012433766499590934352450850409642640313797773006739220029926997651188936278101685653074758194182547807683023822613067165839652283370114160652256032300288257256315516595028831245197815090667831037965409846592804762682500618503727742727595703753880874670772814502228860259864100283341361935665060524711521009116675280122562022467904912273125412500201431375154402068850705309277316426145185063593256706685515064754135690000886213386564987888200713098114708751264404141386844575015954582621624107912339074419826309602088515712772961601795081212859517340280964120289237757626097793607539855151055704921133847913698946096662134507305569072934242574999161297653541246071112720080864301419003935271550093893289751404511220169783706368140513749571313010176660266349688991072459521819466578783166851531220939299843418033967186443646219473228395962552314196112147030119923865502053423156496086281663437834170205290014938948590667278556040067230405049765375051897304830170148095423270717077098441674489026176193641248230769388921326016916509979489371931892149404529645772651269248198745250123558039332721125677290297769142348797894158606443740903292805733316032008790212060475846765025815731251170915332331237498239106262691906903773109540312082162236205965939674619659939779208307793376480170873352606822426209031154305519515292728851052078661583097051664080528272525809031129693709814237258192916399054211091119651626483259820390996687031887402717494591224517477567815495137443413423286197109416842457601594559029182191094339447435960226747522462539979092200515163711056019227196785359021882904330237293133834639956806524718935945933337106664282054493195567297340538100002527677574328412778906164042949735750305287975971748763929262537812220236339407603057447744589752128341750135240584606891958136134626164549232027454501924607999500815575742357308745650380414036852360511483395567881143172721253409666522099554963768263717306399230741300995215014413222406019950485566692735990544487075457712671761352203998986610489259401804032049896477808206616232803493528341553450102863082662653806879384442905317037307521346308080882915167833490806871692316343295003213432226920547044267501053886753031936324082474161019191148358581947621228423246677142853395474059279256746836825580483716763643689605555557733496103733472250760153203988213303691456466095936876282375642216632255086113876713870967067043213884090164705364945630062680900741561235118786430578004475668286126503848284857274495794079233195667251977794882057013572863588815138196730934156417141890720642595936297367600171753282970162909486194476990154789858146286354520123832862924622042626438881528878997685572716711177178745778172423579434827867178559187436824596396473942023213351847088512299446817964546406915121881615216891203693141951029198742499009806734654944837785967640922810338632418230913299466702749062760912729622266303978139905927597434039596475820783201300837907864940254950766375508932461947203667467309926365161767316147196374000826083041935367953997639577841178520490822194253722181087382520996008752949403064192947813032271842439279406627585890824868836789378842877698236951094282894783220641853578715275281826875418499291801528548453641087640748864706118826493575720481322788152652031199632207543189093151150898158320499061110903760559023922620276235401844595739607210416745178028707639684666559286816780350831439405467972940096266859626901089779264688203996040066399161264020461153763962970906784314801095593537597549608586571322102324017996156932195356206951403981994508116660190945340082428137258766503622008694984913202648795638831791352139554239197862849435098297179393119027130831050447641016682390591829157423062847344725009070058800197355386830833837192313025957368331379230287187263878094436396317793236492824498752289564567331495587073527594841546235707101843529368592753832747676740670650973331033893923889346856026557665333142366932315927953373340221956218666667863049322258896329386233136966133106968807381283659812896001925994631848748002682254802152735688278222128603634872140298811541851561965183760194915422667442957686692659405688113712198974289260583286066094540193879829461572272023734497223969169990034352146410580370279587222236562131819809124276061926132031903486559063527533792318715791520745495049373951088274344281006522760847995160117586118455201036243080623336930610416970751591665802556343072971540289108243201234292935890162707379436976782700684136761157228112194806688606360211271787185911260989026850151491468902137965062210506695676441380207076361054322582987223458199613610747330183672164453192049006401379794486233395932713755982680335807097069495159141674547791049848091714460031932745991628938137328892638674832302012135219165943198699326690021108431866879786790606623533558242573271157638841752011780587897918989073450022991429540016414592682843764078463939774822014079499910013919490938516966689907018866358252405199720747862582832709971374791393512054229857582094408678664139830694169960557316529873482218668320487582778014473864780329854478797260387704570921271041117353746166710145580279811363831488751506540953743510259312247957326472473387136070359107083484380782328140575356436684134317685820602447153835004017977585113310024264376842604238269031918439556221492281289928441415572679616497238585326595859299933692110456471363150983910682625379552529667358357109381374892489367093097388640194331697198910926792521783182868731276206153054193390383002002844711303597980373414997236933343614687126919872191865410698421696306429655361313206318962350501563084088046241870154886606107003661858376272066296244992114350409550683745728531320245478675898498295239064749262708661049968017769182230664317834015715432002333209336080905779943225022548503583786496822102945390321711911558194177533636814795786696756143569095540297720375971678033550452119863089706698790096290002950791603442326824966981494078283286942569610000950033398864142615799998857378502075073335861278081057181637139311920300535816778855361570898201561126401706415151563757449952754100440035130586694439300281082219109902284945827462537273122096674942739427023332656902633161160964123444222450576449166184808654512946656616773644099976671897150476233015067145745127309981421163298007095417811572073236188739022004296317699003196502684944601107199358318493476535153879154395627940162821294374716932160668986784087065617347650058554716579251025229759823393988850673991834809567673521085965697941407805891922173061000963742676130762127462572727111672660724936379166501593427731713093332769894847720553276807330037600930988046144622609256967500509355759055781075158961628842731955890419412852257433707900411106619560772877896568007132697736707935313024200657801237411378805680183679874065281709883082925941519785286601031213326866311816052812446779500750571326005773298283747563619964782183520280036248924924048261437331874801018852214475720946288770741261159733661028581809097059450084327767072654716858378816094461889197135474176588287804675606784962043826023734623557713392437645835654830201294324563777778224744249885797392548660902430972607317523411801577755106166131090616826475915326526192567517100184662447832981391911456113771058137006471019449357266419948710198463847789120474793339589442262134842938758520814818867720765041661943657431210802957235304929657130786141435225378186637456554141507152229137494325488845626591914706404286477478014168531429628612283121544433264805193097748367359279682094300492980811022379916530735074656306720132280318162393978540536333789438224728620617730377015256541504096355610638416580153228031979697762288996102958116670064384039013869446353135666243456393932691848023808812596423238718256929192800166148315830727247604849993498899965084570683758247609499662424980141494537518324369755787732915423319081009226923263079088529487173193937031416127320017434024618965156647395304098652385695927116313663887611799920417904767547243339164793434439874597558312027299306445895759412423030104079846069926067062258803585578326044979093213778291887454063315401020058189680709077509008740637718670417620693280237442728492740746599382092097931821934168791785052681741101401718531705223579303163783432978834690102672690505116445202747628376408490051996172092564422655168363455209352121301768785038296164113228479917070310600690781836734571413962177816698251441086067252696022342852572434678028945214350001809718244827519304949000983151910334877092438067928150976052484466804037543124991798057856721629655350163811810667100226846976244292542278801659074438768477742132038942687958954230219905832871917434005609608206364387652089372940421928229989824221626524137302173663548138293393010591118408534165952890899303440852885857437898314854603925650082692197394602349786500690112213259243010878705215270436204249998872218686741182313837196351024463346074311539381220655999351529319136047088114460585449113037053969344268585967536446089932013689636056959990368465785648778141813532667940467444524329594161255855130160797405501753808023988623660849571493588357656451572362386900305600325748546382872090525488763693296901857061261985375094998141992139777909466819357274947944379571829067237346649332311387235478970564251780291277378963750302176026164074840171385555144673367765142827624300956629153722210745141688842727478444323019252604071530531672438187289365207381397954735114123177844430261147794476771061119448609814455804813566738443088562811616612874914185164700957282552135573159261163889223631278481384485370031985331909204975764674622908114952725692991959250097799222040603122182624988954313843712706103412493509334068549155518450581740639346413643923617225976486998695046966480116279256501256938684789416602218609540936419734593110310576254493212097208337298288283992783026233352966218429655539256357470372662751923723393236850768484100458778907165794519331156943016541267919753086249649262014196574085802046108730876330394963900357904181725410861740891091604325031484944091085429287717428355085941433231275670646159208952647413028337886906101503704270458303889568237279837544776807017278310418806341351793988070999593811866622194670563790351946537247018110043605651820107965469233184033239629663940897804015699284104673426108594190532302036738837624654391660151793565035022705221358830216758180940945054228193731408080768745511984887281912896450879389651810315806612010209769677283397667751071409557895224305688310871343063259289823604260098797819479277822516832898758993197440803593871170817824819864667956816917180178562674488818927055717899174073885260024167955676739677744774899638978318589819731627676314767222469308357276793642219498520404375377907923032081952857943835547551452441714235814487955112573566669115669232257432096857301460844893423922155177111242202072246210997473384143388295974839215272191187134777006913165847672701927575534604833856950833330033813590857133251382131763038656495182867558954958583242284202872559898652918421322930594016069339738515574077867436304912184895938638765120433405318454406177529271750264739359629647072141301948141050073208684611020829909413940674279335349558743836554524790684698066921828690902173884042226322248655914987502557473511161390584514068644011826113979327950812838030055045587016798101595128093515449175234265073355072568439529578837361099667080483047624596946879843032278694396455646451514499519752703918756617985079202588282275199191997311029176476038660771819655449066726359845956930773116444411934792998566953150898611571831984328226734114565754540846087900196754097382114881266330831220392579982611115432916498374238645351445113664617111434682353695831614393718051957134374162950646920277867292667203749875177962581569683509618921503732703290519287345603229529699638716992205596222199853538346495810022283476164449263589202119436378761962809297424089710134462645465125057992688034056718689683718535885432767065185033248569280499908114096271785671133687102380325331375835416537671353041761329938901450016320803843058412575468928827189653399797991126469550030495592611089077721344424086935810614017552605665459672367230043307609938928037492380947578347615098336425231014000050282376437946594316611275757517538574737564574496470113076821390214981124393659527750168268290354791824879751944888248796581619939878823883631723361937558452773639122929603836188454920088222539019997877322345036273424695696914744648849158217197647676985550976580507669769464777993162939344574760834826904060237925455141833659037006380018757421749835590027111719189279884060233901123484334595120284736406041986983161480776242158899772020293468269045871510715049408293015804418638478909448332857926061718923029489982520063743974177686085853831406611388715159357048113463456996858020037092494468793177049039061147618520408573094661212063360159228056360749541403235514164890205944931839169729452986555408280629759178579772582410651242943295086450081458509937955627127496984456961429253492785944960009736091395788640315120717179944730355251551475011067279531880051239567511065766636271385120905383681437858533404344181093332771321567122994128898558074621315584707107885493355529495591028491267005244124055350734752398144533465450649825281821993572632073418541367921410593421268194264594072014095878699458403010988061524633302618306677992421476576299843569115567711278709396488030186063932970271439436902237116782373426487952963609670162134049191353236725092174342665985645390257777691335452211229919844789852269302618453549717502460392556826118233524032435071619661935649525523010070589362238715334472705554378972595117258668375492812092348525559756693342423398170161650023468423723928623586861593725918525316240728008475638003659375291891709207710095060144427366889951464572633536819565127415997750177751637614616678481077716829361181718702301833674575608390934534231588684115366716291550733190964696458816852299390777391921272954266173351251162835272556538878391804497037101099967882685526584318104194176218130929820386873316005363280369433604236740484626656849912278961124784879024593050734012228336698182754783391233791671603267703088054447293396944618940594315845319777730240242396130275296370419414418914930036944946654622729759023387896169778628652998939151680965077306833630562126430277111930885503932691568791480584405174684068660096681934508988404298924401084845736606447537361289109524747745890286391102637836278106423721020896548713401027277058582951139610936070151751630340861243722801446184130490762172048509267736167746270519325653047832515957890366427217006626057342057531809023092611252657163435997025122670253889431335475421686295235064089814511772998536126223555053421590901778050656495901289551486241788801879396748348742793701524361906775923550436354814727779765556519589794530195167565911248484227860832396183160660908131946414850921831604028831883398286234734829411719562822369123569982376397968819444425604117597413660352402990051292097673665388860147816302752240881204556518065825899251889096251585225031243595198900293764860667455285635379672647354424425616813915301048041532041716890624517325805464413615019156539949358360140619105470413916829578094229587353135648226986751010961875580604278189705978378808357128177212171492627905102120859687722641533434993007500936859153021002334415918105393287271479498461928417924008514505098974166891848961116304639741107342621265463841683750905133306868760698275097003429604556870114716177915285651894038175665993127047383968715302604560628073668787511714955703510806713467631530574241116983277569650957776125804622232815716630379129338126824293250132967954514626615485369199103115815658746705501214472434866219141500238548421825912581121085271853425458654415174700616417035380575540121382104607707293207950684184232148575466403019296350265052936513323301719320228948821447902184147259443994790104297655266506835447755146193816855577298196648499759177176453284815010401377821016858333095210806790000773009242381782454238233440444082060549807285114491696326006203630600747045532695632927386569095287864861945752287398104331920608601004739826726145251619182809144656226674357668654300039810168639846887890696068750639644351583962331486699822082037099695571733421446183810289091193841679239363992822716517651673289565850756412332473609478290379779584255763676592877790623419794820321975644843655320590841237052368313950273322207602826520905898101300249082061459987866975997778491300574162031201806641667713064692398250991024790971091409109607897936170319611593545385745923428594096327131051885967352520570644958263863012955666758575260626570029082499860210581774828975092932126294145535163019438996468930457878630759278045344720383560530725003013737525157435045049873416756568077186252724053500108813643778551286787615192872175631444940414824501424002194397888699137744551681828228720295604943617201106870639952055294465165035984099156411431096636393455615281911148137653005130595249387938389616263375604290709732968794913531417165948682148904799356386740462096883896086193043784659219201631524912343147404555236366522030070047307918943173421629210261328386743644432758431641521787513731445296916107798380983816037595189102572615438925263379038347502155808093739561147964303398672548828136061875851312063044784355219039940189904066238248264967597599898031393762860277863400915252152134861347401386536545121740738534799266198574450673088677779719945509647997734212347558645448109921975566412892899439670835004216648787758224156629010113993399188087763649126558398356984263491213095693775831937758346272105610168895807988391539025197018180984589520038660344043251288126685883523926762684663220177959654902927995746642790139774009850040448263418284128120059166227521700531114983500140917481022306562352962876194607763587613908847156177412496760664636987200855825754784411325028598075833708794507069832386425551153671172548108780231525128449207500077399323904402293671901859153702551944509219610652672124141750550356041148222433935816894642972547814600687512101668844894199477067037266754300413783732260795560338145814348708660612384507387738476570108256911126936752320137414725976109640635193117581894068847251130216928493731052139180066442883487518309078044294856803109006573634729979555604914076081843018316245814134990014790302177848838101111841202116155264425438181906646346190202626141819555706581931090789862760975436175673167879699732761094984157323162942323178290650678159413391607079181814440926011779073724589557401632879427527014263956735593996962748059697729615712123603084258249732682029589634669990958939714329992219888040491592034436132896265606690445154626273892572292942823048651393186723106184821877277370894472277782514600582061314817644850294482586895577474766053059759513417481043827526582755903558513655860513761805536132983195425879576258144512497931047747011558211124246912315522828056803811419004796490813206439909995545617066780812647091415616150319553008015888932517262756462988454977132148824733861607128932858825079840104614302500888481206731502105154501245585798537384184325950596671415244029059745741813716050264979067345873765058733000653434180305488163141065956665376605833756518159277911061244005493084696327243086610185410774328891837298023536415808668022292961986412575485354097742419488136901043372566959337628125672552643799566704305971105995897364639197883833139797614665822926143124378380728186183528945300748342914531517191092474165861220039028937477367939403312294061884624386842779466850660087197225165730762701346832185756389102777404042883157095736353211961104011028330260976572633987651677966060816828643674853727674969670741895987044799029329332723834273607529355825284867178640569981216298108737847849207487388516892196814032917292824137157236715734645870978930469723222670420922994370662238006852877148330076141579427770997090564415850671332579758897031961892626288218490092287793616773539043435818307732862318192855172294824856865161884202188095139108547739247178404221574543620877782641907806297170747050250317178163283137434018682287145646346570219318282351494172593921842766207484878321943759090179271486289710531257609964785188481030476976137626283186477533599260136258524439167211455681690623589784243542241937146278189728832550129788413470271444358294537022903932555589417498263004682101060357907981329549578866284548859710532729731038053270959715426441367486297437777304049814678888873205714841424899312447976473833843455175161190179987913638288202226870335600577037973629933768544173213342153126216329750675391959363621519285653778679695619836911319401039232047832109321355943443482532240431975540751407548411193531262436356116770283086879776176668526239465366671719332527459423122502823459819667156790635273495398767672269698844080892275749619335594089651991185578199002766796349051018286106127361113627062898776198951512468556828285543779923051067010615199714791693549129467527697247192840225593770264535232978949815399912846150022446403748567155605481627108520355149196502713636720946518037221144247368847805165761407185214104791375594799282174400735551427042490917988349985692045176703436953899984882127817929153077211182270576657772186607454449540817720618174278362854038757558433245750415941882947575865213147312489399188126768105502643573125778110961015559284037060857188416022630309061008313930080701908914643048906520669102137953408982113721458810897994687813340520301176598757387202267866099665274710900420662362374353996057879568841947498089303878629486843984387813020908327369475978673343982028002667352355140561287605132984614108489799865543552251887740910466530729742628640686681214955599735207274524360338192099512769894529103988310375513157764780345942928221638183116565203890859027930931149521501175981438681662289034650819705813279939640852854629825715458223697713447520519846420557551841090951858267770460824396969834004510899115372143047562409667912402177401837630441841312341877034183465604125036499475517639182089984277334310801392369504997757859546221436144798740782197232840500728738031957777960938715367632156383140394925879180033708614165956725855846194204040645692249962334503366381793006566087622736083267037577590317260430943674086609090116306017272069760699367610713188472337379908382747725701744818052164300999272927931410265525525027375742679273722687537373155681713364649350363307550207853738913520524611087720585708352391936398746358161044295818883913733321707597698205903282807559154908401071996705393062774275379996187992383491503608835250708095431012895089832972457107600796917381069376202715770979469832813448259896292615838946415550726461182706124214038350639007090129858865909122280110049669935089838889434435894837783403962671109275740387180159050562393060218956582746266556007076220456978570216198214196591945674779392249140784301851976484519887000025156975289960980487721473789387367026908137137296541044925074756872114037086008720167779314811739639863286240081573568671241657600888069330042573275470986732873019146277816676066369027555294854441441352727809835281823065585842025154835808398817063702100081065174048038569420237899061993000607096124106390699335221811251254095568474849981681121512967791999013797068320886587206292756522563685144885316332148388683974177306972089749518162464785991318700409152081988977678292395958035820521860278177028682114037816926772266906971554136882802679215016335430913615324377849477471261426677721575206016799308081783927071839800150529734330558608651123252237599102589689235415596924204985060665003317267766172914683951751621515912356240189610259029267521700500680577314869189640021173884997803933674506659052041068316443795945692523591958081363441482460640897435441478571374654992209161462913462964913269747499075657297901466993554626065327329811250982421564627706884162083535185555065567937330241854356570312043038157033959705305213498928109111177665920436542296601546523277889198206310574427865574754022421387741986552049106619027470362631379944645985100374618820003096882836527646333831520850884964063040729982673367686468665903588708171336283321289674744333632298897662951710823381342798690029189408454982980971518802193927069140364337306383298055650558777241529229390737541318428623980017958729925740341845068059560071901500895720131582627952336206106139111217264516248888719823426762131445098941735345488658729418308361339666748668159160411355297113427741838972528710796351310841938597640145474991474597879739896043313980057287759146914466934520206160421938175037089671468377885375154790977175506485040806758369931872815716671593275907459361733248880975160636473089758597067885793479089017502245896291069441791181118310966868336155086416690958692100466730088967462578060319931450000818379140772079074671108869854780524054289854104955827893921460267025384899356178781049272427293487673989135518579869779027865890247060812958381037624001925092795006170081200949610890941546755671798085635612141104116291149608790034258124693215987720898842295848047662723975347102436355547085102013182386207794932557684476156685310530860465716285883240244844296125071654827475815347630195255220874362401765403464222628148261477892357225599587272625049454493271434453362379699506768227278691258674314942976152374166271262464695691436245365675896599887982927478364941157506979477277843166484206289411240267606259736001693806851018075661806487514026085024506677963292179956201298183333257770327452473990771751421286956853292227457063648316370428841521638301031640159993008036256559486886037264038185688504947058724576848928491983272083822857431374806393720779150317897151610706957678759185423507550898841952897547712463458392046406111939098546475515003897636038754695533034257913858519602942465740793000935733166846761231715007362642020641426939658876478885329974417384658536059110737416958070974118544944773710931781526245041309730369084530834073825643530657286764474143606566548973272422296852635832301043897407499224462376676755422403025682624413311072911707142472948986901183409877117729595871575117423273837371406295952763069870709670642329058052581624049325058653669714107851720993317735719586929048003789015470337624774965272983562983986458168462852045377565109285819695202858195963803428804123994471994599365187402758034850637331230052567336653561021503276015238189112779625210882128468542402466247136606158019760357089955757891347343062043745991042483178436019812270518973578579607773943403927933718257417919996012062082597251538755873150925487272817409089721036169030609665309835938032668915349058837361826847594253712689778809874578048160102535751418267451885538723278468642208033856036088029122619070866801009859181110916000314403904733613626984740834492915144279003384230236413935797982809257884588998052446188376371676202058317746571634573671101678127671008915210487106283302442931470933217041003490107164477024639092730909284553224662180204439286846256192351913465222334019469707147791015703709891035174229929572612422866599515789415534708788671366108322531601252509417269662299300151717193449079872606560089936385286258690388067699642748098298111307360254951601380843425961291559317143479070014749856942830570049118631744289053724007941940512678818111788784158177746459112153108755366926519757865163724417623817056112738598413087665145776093704562465560801892040388675968767863971382833603068889085358919662637807234476343322718894051059010295304830309175945512756055985415797615739648650078390029125935705620433058496834019133379278194238501606342581902859702940672881636481917189418550983598999353973017430069775241639880960583546022724845989262494187936632034037725784959179430932909423412539849689976704924880748957059226102831036740104996218994313617498948477800784008063341082821332715765918934422117333097018162079452852094620702497507172429266264647598075688845780932839742728449119135017717114807617625814327477437081341590257033238876330768874272540889485269862543733404074922158111489587877849722227088241263103676995032147555045204513093611465390408466521288539803056738147173594334375279682612530168030759538485332650183707333133799137281701099871952148620216087747998197625428919405920180600516162182514005568652131893388820265164210688888046812253994629744240165525590698476236214994758139918532725893612073699264585455558392122999653020115331809710046319372496644145210026172700401531525492979749020797509994953643204033810388829111478273529122177316667555349750062563008678058831703805707197182612888871172320829761545255289101527114608326030145911129233435491547689820493624769684675946558197781416828088230901773128303036423248348342588533895472320832314225771707342407767467718173935215743692168290698515958668924472643722510233570293954633061313625329852133138549728919880645536346494952505544004698540215360180847020840258038901209946200036229565691558218006873549894387029792864005617343395229541289917399812866004086023066974837261238130457648430545277159468148555152639584101792181157898174722572314169463582709807748994170298611105907553209824860602188506474263489252599000148288766636422606993341402572068755549739231503178833758035418425055201709968912499964234164197151835103973796914320946155945486132141868867471959221899681905496441804509343507420964107435709551715275009509444574425398456537261145170896347995348029228225784943437908824536456473438126777968013104272771665071935350446078683260270333961489321372763940263321993722133523179337563297482974662747756003876015843499358411717193701509449055132775455235501265764448660743841419816444672698782467242260404575454052061532177286177332609733258639893446450766277684004282684866326572266608296704281529011346064826496522630341189214753984067356149428232270438454119093193709087863907360386818131964311514064185334384924324202289881270004952092792658705863383696459546302803892846993483466502846056486169709952354774132083587953687616202420110454434674201273205031328547430489019383293204181662931696983337570466469627842188167812241808197781785388520538454593783408054920041341905419516715201814630488545077931248127329486030982483472459318269347086804000429496127388407903397165958531388622205448391976731036710437363578917269248994671653201931743342668402352916732990364540954072347189200853055174020346657903898808650571154875362156870936738946088476054997619022686050108960946637700976244050505797252728062396361225377456980284478826324362346782655315117011833929920326035361107279368180918099384261237533037542949991998167221308470342945046298410785928618628225901149294126840272607920996583305742794286104017362443691495189746858767588204743046939562713220121499186450062573633385687472846477798932721487632603372599341880639819220914206533799297599695239077887751668245839861928633690962394714710035658767707015150379464459766840149161428801086874618473756251584613149216568281411905424785267374213717976993441009783013020808274419192621818431922177583181157424377847768197604567762058043048134244863549164576611890289176583758624359836933751815961266573982481905183475085456998048019291600429214259919477079079761698397535256657856307961062551115154758051212218468663695255718692107365916272678592430482121868092116201685897553682242822440542170311375971143834878302133516837162082709189313753981545730166193330335999776842262636977913170170449945854048394848324667139761037695272425094234989909465064602845507271081867671104625220091078974059878634218234363865754494868418980780521354150520516675247867598211129382460924733453580707444688059920449075550829172824134083962671005709327479031020979747346518996446501533301959768774370295206405271053175385734208743226020913127076794792387841588754159727957049851387496307140606795288776483579309024243077217378560590830102081578711513981669262778433266514366156503324929379892290768944921031210993820557449877455498611622988545993716396059475140736030981057616089860386297511442557938020909607218009984135881247521432027839256828152620466632784186569602381833124643340556101458551333251828334997683444266463947915998764297973946863898394956340459791061777726538404669814351961717732652266066572907984926682950548171873764253514181959215809190614416197256692791445904522155209110549498347240789824923491558897693469814569451381993209626631599567594420106266674805402838214230123599757642580473852256625088206270788728782865299054262809348071709622966537466940302314300410334365133987350320252626568895077720247060939931165089004629586109514698783401402391735373411091293448833070436968944049640478198080113741312549182993990966072397801507084244483868451465607501334478404052342668464571528132086072944599790277168228989743965792170405867288421183781181495823800747597458470191530707345930452181843183592221004304251559614152763238899224342777690862696531853586379068965934232130889746226333411389800139407953836049943384762239710978095467041712510953315108058412074478109454445915894713656247304559373728919603497313776532078006528848957797946963071543905001178664257996959251718688861966383741516473828796737233135751107556622483843409837716595196741335133101636726558978733505079643647924924950132822427321494882060662762398696662262961896995695659335894951948508912166626134244905249913063987198018313360376954282703223176792499272084554363546862983222077833201065747013945647262646239223365559487871599672597587120447042790542292017438233475513040789335991709759016786559187370967521333914476341292635322806905158665775410486381987737380011901908486586489255745761875311217088471777523703959971074784077321035744155945551719409360019350756981878565244532287119647380593807765653821649748740502326591766028250956931219263600597605859795175594044887208487249224652300312627896149216392658580932171797443147057871690005221895731675861877022993124902151838305511368148766643011726611838814451376184776797329997537057934037871756566172517689947205585733388284390084858520504753795815515173313644676528457003805283705650039137387083627316208020320635108512038283207624880425029652503269771914652150381640666331178903955556460997955917172718566010327803928312179233642024826947814249856672738934209795050656780875748485235817958778628355385490104850114736412437113919698702542806371121427253391895543442534338628585829622179137148263300550391435575679574348901995782564252956606647132774918601870722252708292897408766674718222752496322625921252493515166873125220951776025266381891531343117045588655783809693211934199468536991147057729879155157592108093834446261481758201076955009398833553397806109958952099425578265076623359350012725702587698179286158311385337428112577575638220429998654392665363793543510585837064753451721215892954670018465162232824560378630163158131998165566331274725487301129396608914146682930022984571059582701120912230205898174638099419760815711648688680065189802057010468544514334022021329262764218278630283362134143587722308387508179746764067166045383213505859291466060476098797483435172548010012237505416724294644841668081404574174826769941367056498463742443677201341736684095857603402474099088313242463526688530878486376864427805081530714212802404006486286228605375229802272028179605558010305115512672963207761981310752373215029613008345120635282929497630641032940938367395547219462362634746002096427519962417486940068113247605908396973255277214250946606047128691783518984699737082358661464500896637191066220186240897998803415532189862626403485817958164310389048329114894314073416937594947980744354869487226668066138508016181699647810605557211398723441975464003041882620066162621799275883281042403932507355217953670935960652307895924729296020259774864560564094691605536094989471745927296379939849950249045822861719783800528181270974108382157445445275209375857175702973161418172481450300752882515427242434778561927211600733825391044027818280083054979696719831563946586972144235762773712011953271416509947794089595519659241870857463760912999519046625979663185248270027967298327138130318940822443489190428634820118104155874434152288151888715474338990790047588844966058497404092950791529939468109689867086617200768523161836177427161885677690139424238182223923219168734351079531396485757157409951999626005774742363936576820255838633898529563477146895784667942823396934574547912776539536007957673501761348951642035099129360349299908673460476859407563955795173387085784134839318183405785647537517687612237060543941853158478384788935276667031064383106679432891180486547760980960694602451508693287692618209904289273535476101224100144632108155526677531646272627181001887589730278212199573885332214098788268744477439169328002899962674004628986892976415189002791723429456989944113130425297082312970080722634494077639726072280725369447514807191263474889159358123473512392218677031407514915870827210761991616913429536415368727371072287899889392376813529329530267573954526599909347706093850472093906330741943615735586253128495422570351319452166574090618755951849436966380137160987316161360275802047392460943567194502316804867188752807384652069028937305048039841654273286206048284592550009593248301540659309243855483933682917583010417992345338290858192777647650742841176798837536378321925735715484472186616191912762432840103464369006319889702712655840360833314726816554766413519902273821792737908997101948982847012610401317868286344753680982112175628627243881627920273972748654870151198072716938198190769318569127029997535381403005734112438010112697286220139576068879478061474821101716036982801548401036674748308668383235232295282731580459190444142370830440162970247303721612574563233602657091590034877467276009560495509804189736276924673213720837413365318941014561596977276254899199366352695837866269387955011890155713740418048695303766203434095596209040747045818446388378133130604409660143005842492720581497393822712221431495881652516412153877825616111327957696767791067487139844034281944630822662005028527688827116908332439573694775388045727784335422031553922707437869124053104857126676106139612533779350632790982729239602408492434962924953542696481333854089099244529462344924015104658517736924425702759403542477091395668819537396868379838741673291085847907761009686328261808785963481903289907018340215649707813619871455841035849460295900168178671554694242565130745486091316001326015368867142183924883059658337171480698225341325569930003739931293244076991900532229468463044250096139668533711349357535788729210819962095652882083648616621653367276851977294671327786632714073074487050759125145493648864829402263084429202238620445897817784444530781216811720668040543879298945040411759974228878345557788672605499690387443359918195121789887203455315998073492890961860215309660372843047218044987098698825916594671853765371979833906751459945126413875267114990906973245321271310459753432522781702540564978368274966630175546174937889674199901195346258589738720463606335188202719973030675578160498125267041911195951413003329073962361971424865729272304931361635386875693487527261461794707260137720773564084815884269785290240029199919213632102835887751329541168316417582313110326912424963101805479008920736518647809581363732433855583713717708558550451046098914051840393055444399414237213309797167055060487852404478556652278230667595077391643337344800512769126881371964195453236238318934391266666212876932531005630004624030327133525313896575575938588609951827019207455284033500285777361439301868716715664890905301306886340452380805304909913104510507384390256970678107884752793226494611911525671072304873889905392113334134668913487670267887623689182072157990383675654334805741405849479800596072781737744020214186428912748077607901033881673556628687297932967940838880293708054840663478946358391914775305249565964908260658538228723417820556828117009362296050232968221649122067316091390521559682427067678494099634640529760907869511880543437064936936616443871109972816410960038647420669939867632253548901725351629162771032472495622466155466722747068368673481844566473554364785668342523912478250519354486551825829061066523196619763147150406957524295398661664057102823528084454874413168054501109309924136907454534169772565275492529825828184248781043618547329248663186933395806868710949584059832959592365973062540313337515123777634034629102877106241043296204614632179666456296157969170502271360527371279403991175339398314450015832907031662758564629497187794431352603878412111465683989815143983778692671014374640524996232411692455975207955537605971046220206008931422449790795482152938908325355296331728691162138132411828631158672275526819891457027325621905789454354979281272575990673685658248533687515293633035375632386739045385602534091741695305709394099611868778046968333328471238328540944762202147877769172607362233193055372672986334291469967843553166712115694398055829249362977673196483458581236316624968756931011128467967714806316798878030788288771139100650932052570492045995524333660071230210608033656934494688518662379654833120577865590619116160875094942991884726833367664720057147683465492987786419510020534972132862709326594236731602173000647229837453154773040196242072542841647733118017403350898361255208545255778829951540797325284672099230164763829754586056352476656436197376422408278759118380225223952963694769157542282347475737672571382289262762147512941549996279690830924410902560338142678712084391793440740695870962616563304848075222013789741418805933466695788251725879850638429565241145341799989593418720467547497178858457964888211254834224626156687211423818012040034539756419175658534788887239409609345090892566041067959205177845109095281121098112158656642161625978899509684106882019777488702655214998241437732004133849619381206519444051208040476662556698290942745549627745668135126137619566255400277202511439701326976593804955417738452009064226124111866325210155862688444389296437984205501609061419911536546965147065768029556240696016935409621474020712656782650644524932595202308735105044451686634854036191696728906733960980302930480996522620324783043840729659535041970827280394606961015397222939452111771258608345856390202579887633008472209805893733597634291965145097695674320424626384120572161942087180338183204318431159910714170609362257868602328583674954304433081267224492823182631814055036978790604088352181679137315696829791243492860816225688049772413303724495966833571831278169431831954190700257081382545170164057662162420054045693000419997657896965295005819973812855097371074868637008449959019813069769577904211441771374508352372932841637473800987843422942171534114966599344266980160835023981354247837028442333384756065116320506383920436640848931201760093203972934630490653690969277976565542573613923223733674273731618667117536983549360858775771535375314708848968108099716705084526631745743438091940092074904266781101403150726204970537550108771237866914079659184559840216824031906320221146605145665277680353060806165989688975106823166974298571295658073322139326536419094018581572645822270152234160408790192066124182398274408704471747611246980863671077650974362792942930682776795951140742172279184886379140665843817255460726622371287294987712802603243168480451042553061215717687429053639611872067636013157232453382263930856236338284614029765023254479339989829445114942293847653760886595052815534241496601416398792146612919856050125365225584375189740979868718722966596776301746880141251183295820216143820741698208890268586275845524402386527010089362041753159344880419371476874694667961895772769279577988940698038070355349468952416423397122553347709644501259824088668418226598049875666668560044447372979624785907437686712053960796763916114856282383867350048393745659959077549990748491114857267082849417285491975426882462370450978206942680549909615418509409428705692691571820773362441599198489820931965607202829331469358540186602736683659575710053197969518480228744239369187730870750278608098449408211500607628398454004933111887593606069557188177199153414793199863852091095924187181844519341357259090700493672414372105877909506275470228949775646301315845334220532974125870055032778934584270383779497962762750528798875828510977596720409410647909725491297622965476928799978000079054704639910318267179177122943097720481757594823458875627580535256958645524882958173860423037140022421993144660784124934759822619317710774093964189830891191983661530669644056948719714431403424931155778581522813409895029431007077332570880581294651945600784791594666051026610978340152643105094504022821778214096025361943584686713379222916281851933003417927773355604408887939206531340303260743175017623641911847285348792417296272551386343299409528814332775133646788317821776202645477848600980603747407782482258547638222433450443885115609784602303949353378932205840507500876482946495879850917010966848128956084137966093611546019410796228455339542345100960124903562493710847955470060843956032652748454153347460165534076440694901196912581358669424270170788654558131723496997829368134894818692620223739980701613637780426527398127317358425923184764471966781736270013777108998659684642945194971766182503246551631659350451370319436255628150816441382021413875717559425664430892247595064662528830318579008847946654067934227305839988372727217768459025242667167845121236842879792761722679482886276243229987396034020189068163769727335499916008067443778981492280986151508494283781068336853314397553248219597231692739247114381070362522036463063700282650487700146533833327868088602671012847242444662538774779544119763460403176106478483490308551538250452979394996481944811833788943010445298139680478959304989068841455349390618455775649842746104883862135597672341302332891497469671867691964840422021616532901160778173096472810128730337610721667137469861349278356812466557359638677729875523853947900949770930798464305648400392787308690568970400499532375026651975959875997624545228234563472142020127900478389672992915592972956114091898920101679032681013515113937020805947984229407313724145917215716416358988545194275004178169910945131762617417735489124278409004095510361518419324664957142544450480640797084416404678776296222289436414243333773612418177248333744570579949015826015025477156059004785291416500657216242074013576425839060939129670978663092775297314808487907552211401151353011962300227471086924595263050827652300418627880484059263648038159970598456450878260400525175945618561873848787676183407773556070827510430160647188044273374750339015755815917419031433237715751010434613892332346421740771417567439256343585063029603540506687742674492111371593619588996010202007759165729629465005395913895415009009094434931567574239758951952635518987916353384787804290680432733587925578703415778626005790275213113209581121903038430701599584065543175987623816209959377957296474752421769590216899888006954076338918224703588003479678253708703561564372177300025260729684394468368223891274923981650694694358752369457794100493889396958067835265403925778048848027961831291323685484319610181990531957457099496746396099953766133986507362283643961284940958530505661313541286604887111319978024298137650366036512324910020170491289123446852006477331402962574469232596441044929896307172948595726965758469466033516161967984894444550269753154623760993230244559067862674290313017371547989141578377705201901184384602060659672999805460942898757556220369548352287384788687713362613230762161439228955023503723985055101316385202570860632944371843400059832500040654018560855508467560060239745699093583809494885882836730840076379231127489877634885414418570898999644908853875897024814734486711154477547161245637516259675089099800363479341184986316411082673716220792035872315541845052091739166399242960714677849892623635865053444774902764284034774474514087586272252370306177922866506733715807355072722278904834900277193786985799804673052974764398684150809413793693685361274683822713422536444842175258937672582250340730000238779052393016184895259637881498954001986028094643172649667408107753558053308299159239397864869683177352243034821649675437673979914735004614806056490451478453114061786482717167108031701118533653504318681791389737962609791240115644638912377901503363008551462815799855074468680106513045926955598640178747601165259398412295902525750944992467341471382782288826528399306913338937733109513024542356900717998253194149732080092453471344069378655577950231492943594052809646206757769954828916652917466308217799337865430998555615789072884007998930201801266563084527227805198975717223442122166057367741350217084387176331154669706486327406239145304726212364057097029086738249800875767904977995813972633253278958208810760172231887085535895570156643338462343120179713224902893928161238631807485285764795034890457539226881702249171968499156857998713794696323350688291080657733735372860232039302805137066999385495302366780997035120644842303712398678461994101540873157646111070365641102409931258023225977125064409242415848509841607527149790975393982427392395979007967585235652174530270148275724002213897785377501259919243851724537490127444360157107746409026705742405363850921444216368073440715768821907012846685631830538137078025449544231699159240189921329665320243148646372118803202823537252786528697589687802401554979773490321151650078034684570993459520407462817484108847110158645913523810827766730828767978438809929398798867111865921704879628984762619709724074058357036207906817905089200919658250109685853423586998559730372858864798724859892488133385918193853015385801872671706770631028515424694865668365510101554460625600894838681390015941417891826986668809903697728990153619088422971905038233045354054873074603485595634994281257250756915103280693231393149274816545027221943005668074335571245902943692123644340891752837556381249693318811383427975982188827152642787967005522922845075738541278810600825823562273608695823670937139810562503489313269511368014802442788188840370282293512974879737853187351081727180121809022952649774644241515781716377718215049559294623151870935881994456267103932124643096688413199009790749015799263884925580377100515609454706767429090019403630058012168606874385971942199256650287874344231585051627557008415639000836486244351216213070133425706676197530384027268196148396962186408760228062362470567226119459813894324736772655924114638728178072145229789810120013556189272736423869080757417839392489628891223304492428165346269905792224881060688121301297132684989306471285359908310462200264967759643888100470160279572399922935602326634704711117908216041608901566904907334021392010021941319316183267254689934155713400146242941385183186722575828815463562812911897641830147334668610029517355128586182508584212066577517830179840775665082190913267445712738074801353754245070041671281765733726923865580414009140307619341725396883475061111729174159816523418251463047289150343532519697991090557404949068857422253267078384794831520354608672947692494522649040869823759774359320505009271344822153167984254896339975545434758777699747250228593629332549236672442733024168518745403697524133814842578198490413790188667208777020321855387504216140455587862443175690890495062636984110480741480834819457556387553273397179292985501244903183494658005279926313133803312881094777046570960831123146344428438795813039811778281344273930340942489359407754222120227487602249056030228457164600593359595519305051950839444257144333803826803897910613400319414616945407791405641355611649955630681777239001131259562613636417484970601101225795784756631650067924905109343524357726846526903440399611295103060851530849301098275797858809320590277041885873123862833233748217183668407404441328754010659565333507521386794584017972334246226585827682651683702040747507163063716955995060140348961284329369004571279906275360718905703457211897482170499666089061775596441065081970659977112938731086646101770263612811268712733558199966845678149564335315517405614860140533677792478761229393568967669653486052716016574699328862050017744170699766557924810898367263394568356348048888897348551789495877936690398882787249805807609108156250647573773452288129921650836385295388429286215801400751761159635034695547173233072074408718886078097368451052450564783425500368745759221993881368184130066957270896364830243432036445981768745668349868410567359068580425751696221743651399279821793780559335763518080264663028443482654861329271341197584207583318945159573870822983984740604093515872593603226772335189845118503233492430457932392372451742990977459214314281806606301623916393434606960748272192551008200023116124979391817042481092373683959402945736779786359085512545999709251020586443355691841256039819496444470618339199728596963512526677901443275754696001536596117839693702227130755056033968161653577577052419798546866865904934011846512147219740755169591194120155755261756745409617120909922715873401202092626213358094727489676175734598827010352860939668325574458160157677134502997726272867936417630825332179105267262325669741898754496867773942144280942778133641009002920928527294071230295671355478844497946519388904811808774774610255209128590402505629802524261783813066976448694992152636909957675956992679380593588438500490428325259138984610924153910531357099994053015873035134778734184246925847792439477433338156767840412523835976220575702704484049756546740532086875565590365455487063909756489902333773122103091923440258658275078280557234403781671729577680331668632455402579521864796609839460011522330674285040494799101019859069344877643773152320854697061461666123925027518320325955816565368449093537179567604915911200644396028421780995563745405325203501574170583855161524376658789345885276515920913309951063088688134631291921118821642220804137036236975662575590041167676031876748293507093066503447896763440370610517628571656263645035388529981665447543424644241107764844219109545376165222644903743993449241459359212901637015803663516815413061216976039920048604795100098383981178276425008540059814522308518409186613903103360663127949550170359050657739172419285513325356555279705943062912074176331271201646950341086462755611765000351549450613858072946792904629725078584721212777582825750134323864260989916044471946225463566267577925039322804371922264872233078894315343578701354902055165045857063402542376982628132865794986590673758134451204785596500707304806727525609874117585791490101062617389360991022648313242958194711639699146400384297146351106932809122798099202479041714131905482249076807425039642590578381569820822735894817263459857822482086013552861333370069302354149239176916420046870387682699007139749932839532144443631002459042692282838572463712072687333801920593282104039440750077928095084026983753551734967999680658950116925384004675708137549711684947663962834636227900049890258240525080741090081121654469667892200440941323015325579993553588744483051782670829645473362566092717440434341580178148700783728838896615462234583548445258683853472928973937754304924182966556439474489592274075152385601135369185031738439067609953430586109534300192735200779450512889733642456446280291255654966128931281618511121938721407009906899972159678813350475055819833065748064675064562658703254332664719274655068140851918631787185851375321877821713597692272970695179223664460388396197753631498550063924857709850231960632319466214755782057504578246938714242255198577653182703023162807073202077098924895381139087325911767874843666495282388220025712081696631375084569929448922354202763809531589983076669420837858122031327330061392205331780693463163591075993852765521014755745786125237091749666933602337201255940571952827964330173070268180848559691034818527213206000344060912735486134984432111452803689502385722717948682359940636858907682592496630066289949233370391661480442456041752116312456378890842780617470059238255024584761719905657861510431901546979574365434953539206529958423817742904452883955293521480580001314974937706798137988591922255484595877583195187426659814119427751963996820044739133936149198172152663774198722115599262194914525866441334170510146104901455298504954729711665883255392852575137775342747339091677179687069522518025002014030696187853761578407320583407897475894419007576204114479413545937113600148005782983793293210789584544734063067116497745086841182489729972567083462322925337700194887964053686686709093337271344053279079458640126329212292070708949605938562211531486757679598951726330387925824388324269858118027876968164931599050577702688008543501804619228254093733279023355945789124323769456519880325724705352398866503256739386220453646467109921861628217613861566115274377075653973812280789439726188158679393450993874547268592723429430209130735693298747099328003037852508618582915918874362131881568378454085567714819300982692680948108019013509441716592649744967630429581832798536535376596041033155442944629227921085526837393099981767606884415172862002970068353499620603292980897438086456286978978669134602810584291834404199448217211382590658943874605360854293468977181231066440327807573066883814572711202375818564596344170475523018591353095709595499961731761489987746232411513320798232251530209165203735207637716505722223631555498732291522821896140196580122617906669854109654892801773964511754567578801299015481503740167042678837689761266436610200783258337114443766694909415781163299897096072132007889737565241193105092211737659083729893146131548572152577626018220017623176055248198741498195634451293009735456666320575173881602746622051452311596559637196430656394896624773030720426188940743736464213909091548369966563870460266707814762235773796997946685396460128152019906709735773023599535765046376569914893934702490760140518079606675585459449731443444599077928308359979811617778366724468531133230618015676687250982043139797490780999836457712976592075882741170308367669635070788863142009400985290569710135722995573945985925606038460971447124658668788657266609140565467156986400968047897458152854192321741383538890997263599868069980586730700534794909405794249787800066053347908993871629032704680783060080839722198136683028187241178789745219116622646706948903255998674702230496427839507383179077384254563720017561084408140648349928206488165167347799371545786294949473633310527047746259038482220609536139089739880380953133531500821816009645261525096809674497621503830908743290598325206316418943700938498982868307126354126918671890634030754601162805978688885237135069512657982226593657203809901359850234815838928034770216930972396978824969659961023224596955829411254178442650142768520401019338200126754916570484466164490244463730444537213620060867512371782774094051857974793456557121002162348404605857030826443078173913605210848891256724263256783009426438693423510516628695035653779578395169336115686445799836601581052267517555452412654578618051697536121482545133544617378803991783503291395370877947832818213568921080902198029922845671453800240385014020279055673408393764382112337549554212031622236128866474723002041336465159101610705879369177410837181579492865559250716171990618865403605472898657651782532328271664771408226009010060029058079522292457047938327378130873318409648541462750527536569388076688629754026153455530706410849565223880041299603679548078813252029264242388381706732857638881011374866342895003489644037257139379169440204201114184350701258110359053223264046458297802883171510374074742705537641134848841521163013033910780093837444341878025313114658001746085197622618436215322331000562353159114608570709681260040590006143075423172647647033901590283944642153277114893235106868048434508687343913554502669532938353275869621191376253119684240842329773712599168637457033646107697638891044626676930944958905916560988904261494533983259998944167319250267165559221746348974902300937764847795593646448002492923613342838746989182027304577896187312790745056003136481364263098447421547686055867130452006516779922146946286398279631103325158509975376624532652241000572794267163548418763559836329416552770903982776139066961055075192895925749920733951983976269497684153827360241110009775097569326719865527276281455735698250883097123344059219370007803975689846131267999549335753089255121565552241068291236033373127382267282776902300863137747031355573867808009317127749619360224639954899554903019534784150558589660546784029318218112991259547655751895272138215330344437949282293468615318014118790170807588699615490407341034779502374909853728465104785678486661817109742437411617101291837914135683538995388637516326073769758804262057183243597464935657436161275667270659953773678825703179405546510961433262547496954708006905208348493095479821024950231178625133187027076823326602575381819981040887006285820738030464838085591691912594663692219927613102593591138883830235412676078552526839976570410743989490262580621726311460606621168075854400691471490452681543834571765585592675385855662599185343951490135324429611388521233544334590561543161706544587668347819164200440195937925981311471930557244881742483593557680219613564166411271733590500055595466534842950764116211564736332372246622109828749520494553987242274006608620074655740424034546129329117161656975996648592278932277958074789043958885292983992113881588956472950081273165478596010193756388399494069416847817850347962445249135694866055690725411537344177353632131226380908805290882446746662814772725443513393412686625825166168286144425775665248532264634668701140059277147396817505439405272573227468793768662217051573920941166812145313327317779700182506674590593746314107582404636725816207080474541671577712748207446587876175059858624081679206835844974797838515109968382574066703529199007115323566126310336249207150237159145783934296859949538741732215807860385056981724001219493396313154248305209659564312446197203185206136829156400252078380108493895982331518591153012886464039207161109174328385794686509857906914169016948451891246762340707501925770356604625679920683136637792220787216131027962534594397244475215992640582692638157041066796256097976232112821328544415203627479770106490260628613975467442680193028861521289249167837492478487314989082627642501225843877985555605003160169188437287677514521991332689214950956460194357131615346488753489735419093737390029545899983447949545857965146133006890272758461830666117238597910305292840493450568510212863678723299519816466978241485232407730954248290075948921227620982292865590109708978926012386377188173527487185744891471401684897900967445565599169426655870588689914445426369865610417624628637618764396223304695007931198583731737591650314642767273789341666885498185572334127361378229483137294218401367709390385382106193551008939086490927256709787548385421492475696032633977437290899750073224728188834139041141864511217124923064243123624895229858141024690327832426408105758692530698969359639885986527036974802593815142649372664405441685591406928221780654235286792684169088996631715122521584912269972924050583924168318934323881519491763599870658335973736597262721419952277994618850532610494320916814698783167062931827002700144321177326386021307040953889280383449146488210593917922175198007335561211165886873202490590169329376830774138072976181830281137184391559541761117364647097873732886043913083361200128093840074129818560455832116055778725905436468599474066251336532265820641904420464430883833018546446543091176572426183546387428698365985882278960681502256915734060448911408597222368191013630467301330731695443195009947887888824770269277716487331694471228144218669743558224629850302411812733181326791876047503391179928972418500009185863350939716013025008728730188150289430146422189715089152309085598919003725167543692946652148899725169145458061661960051971061336813014433972581076015218474367641432575473554677324087503693429272609963880900823016999885338805069758512099365205092867847854612192153600104019394121715067616165819390664124403318410522561906169213805121145860474274754712054056863005444107328062874043536051871249855701554370863279703974667376496186156827321027465050827271404392909725699626345665062536642015343776707209978879799882563770645032154650103751153271259813949172825941269938730988760740650797890015565423457864519953818907198981822033648770710918308046880215493861380339502258870312309569676492425163253504034487523811399604627899217264314752823340863904177325036037260158606902355287068626768957121269383606075488015073184624066089990674191649622475436079850946122605859534983216917278451133113821927841208408369785607809809811468738053176957046428961717604756186854559525448181845293747502744673666088117737612288168580777898093362922873566807513728083056153810963968480532464222642040879420825540817341556557533341240865693912168661293229797360577809514577225662530453344929873934719292293162505223154942276339590774044451449954928204063058245951528622294496877492914130898213032414509190336101181666604919029080926630243671452538310758343808684358754977640984994303927736977794961957136054880139229521215779853925976066658862484876404106344463596432466234392293277673746131374214704604378003742400913976250944807535035584643709993066571759584267801578879745731980623527350561833493410017583753044683087754448086290473259530490785208797500416606487902149545778717715010702327793227912604528887009505949869471696613988535410009060105018265132714929160379419605900631920165265975907036306450611520235275181099547037708337508721814564492905222612461852466608887446358219362475021561815571523348797857167412198396371370667707265488298630000107491674925666749839654252260829457750708687566577651967230553626137528533971153508835382826092375546402875597171571003096864905770993597952060469797488920117539364378522101452546510958583242223429843454390416081662282712134413087247128874557790017099746046126321687399615467096927949436963105962124230873764134672897609151069960475569549905394778390369311187161061906027735547269456808398996101146007204080274635498756916399278098881001966791632932460598186348848271938300437925030973673053419704978437152243048402513372390648043254422764002580463546419408537281200045966713981559364231353805665182438600418298260769509894215482758115395710315964181778792361675045957995102178214908526569787984624288102992285530849654530780046012001891371207373822377493878899016039957486899342032967337381278693326796891528974261450306246429390696852163550460245528243040715725710126590320881960591880644765785077772836085899473445258756242513416236274027442942678652053891308329393204182056288372082791345336458860138627871989538605158398499786132660278681331248715538513415474974810129115955658779395171534202427500384392533257916856451338786666773256296746738277412718030705526287076417615439119859354234876642074660232575656641151194959217957318797308219941544592779744713450127306499372606098917362504306554629315784104713794509951444772370234022285669143229440358978496351465524874895775281150140686954672420458775757823229220288804652222454103472713024483537979532742600671143999337894539809358440646022708223071124123963529458395224527036115562932637139934486066681985343079487340574186510207554839600067916843427628502897623670042219100107307908297241052563189731056770220252764889165076682656543568269891838501311753376995502357350249081339148602238117312565894260826731089054631748996627906838103725675777416753201465455976251728690851632436465379386818623892111336266950945157661738950681436406631736911615094133251995663024461542245286782673087885865296829657667049661614742913315217576234492906840543250349735746344991859216555704471720666200177696687019135526167297961027217909259049475256567464791558921163793004947402224830183864710499932699733596900781299656814975752154135029362207344147172560053450242027386633624724063549317626103211008328350957882545009765423669810443228233616531038118241311218556264113320071346301421631587691440743113865088209367859986540796936485270838258514091348246310777871054433673348338614934638666412006590947856025613735780532489626614759431561872483861089309130302655554233701777376854348546896369168415981324373876307601064374003941757075712177248598361181876314689738800287878242766606935126434503987147072792993384906128904780705981977087888192959182009344408464882385879302349110496857760262356709662857354967770871864328594309025076451010712537165763449684072736812092670011682450963497844678264053962535923587452999407667185902557072411172415382023920430789818989866581313577131152376742110657096983021271525677898797593344895039789942665164861646350426533511396012987307103020666432250352274898145205049539727157353667186833509264511373495799869961753545385650421681151903275347463246971307937072182710033216376519984445875697303551855331807290171612846469102041257694448655823139029522091366209013549806318566351502910575983945469693021180447670573458691778768597179923322128882067671984780781017188488178358004083948666105514231003525524799833026493425898405159148732235252324739816328609320197529492910185857101195340184567374802519033701824511229617133039388705300159905434446345435467634056213200334012371133724201756776054298698007586599896394805250498511374747154977944826428809135037263179394646101915388804977952397060452405021886585460213742915509413052684240423618622365049449928666280794733542484497928497801706219748784813951170062452621828903721423677507940703276476050015980661915391929480699662491231605035710175232036513802448036952266692524287122641600315245800628845862744169646229309173392212002492832153485472825512654504660084105823531294036584951163991978954708386081835977742629038009931609249276302496482317529795525790596771113729689157437351187802119414476508244020409694102052703204678041315454047989811325663501680824243163405592216266493150696271649203009630510949951947004699687864921371719584917266272996651197582666039273900053314058475270590402298389719756857269952924851186185780078319906592159436034731638040109881638475964229121097425279953672279799632673267174373743335343235800004221751594305929118821947673460922914870944499148181103841898273406859127063196943974633608848372546131794436110049454961497403557764450922738016274219364828109975164141986249309115302125914327821122053963112864520397381574816560057219057061533408353771079518526227141752719161615430790726538103788420768965270286597632430284023673149402063658586820888784208984846445863151908142563925425320073825569957009097259711659118448593293873935783455280660954077456516829908494821611215393360009497557204892656132933841596631389564986831328512148135660654048715268059327112838366038171680829968649080535725088929955377392699873886300021526438913532953527231588323699132436632678099802442696050171395504589769641186254670340498848285677980882551325458830064248552682061344136065422714701570162886995176583167394247572580193756033917824612638744521702564129024267104858711976161120241524586020951346310227421233131387569206621081359957209472535260461666467758814986712766819310964067536027170321594088121629360534956851454336840274567362691332151585270198809616579957172775588060665999678157118435223028721279683620426023747509784294442395965811932870847349620976905851266571866603499068745212462127838315914646960182650236293046524686571641712159021338779074931959012642204405726235913634050543020681269360998984087729821949851865726712841276942481104520992836889217783584113520862660951824531620712688778104784578101134902431808490789640270418968358948863359383025571318882050340683516346762227470628434147970458253669789009027418486573127409408795326456858845965458726982360420415265496329910316984970551122427503149414089789971969650608328935351864260400611711500902282788990771228331931729656270546135834034368425492795095500378187186442953793596898387772686891358447357226476674980651685291657328791617393636096854019207092271262031370516456887979676114419940482031167458003702141808884739615369199954456678131144905951492837239904621170142050898915085911996634363986690325966264982318706375404887930256183337191386901156840086177551745926668735271820810809077916427538238031836641269834306147796285693844771732446282654765993582055211673869999119545175320559383494664486202066846238781433659884133842360641155310209473947146106892941014536258034095163705252007034228079013977650052888055741251073993592377442756568415848619575951377383639492703582940175353158534500577596449530046305666737932679243406755225882543576045089973254782733463238834226355547796466024414282546935649684729701896160311010423888075023633669237221493924092443986706002444996390556351586972371800466176803533396995150171417942480410756647044458162172508458205667508106688030445064248026762554430406506103710716995560513026080666226888857393591440417686001092438643369879067315469647201533651843616156395752793487545529154006665927036294181732873422950245321413938721535717837227256843116081274427942092663868768467589598321394292666087543135281854915846484405457098947904297736947072476602921772969316186131086464729284142281086767485411853120589618619321677174922210710437772429510314314131915683579227848440926470485081381421286587682551230276926062411566559365838282024906581418716316714300827005052814889549861226385113549096174979206308974805568205843497447808959317407868076694339900395704325462745674411599438260940723448740048006877235079935458635703351643803759258316737548584273402242703286012221845065646227459175138653862945183456808666342305397789585430753956295230486975978779592040333808641340720352063744604474047308257295375210950412992517651560190971827911512436096015760023121844577438497965511447117151743055695491792024719520555367374280555023970425348831041958909374033723758130158101837110813685765699595595519030534280933071544167545765187054568513340788471490390516256244489712893093699754759927995433897108644699844139600476256231002587669459191644897399873613729434912960055251436003391551961107299802477181199308556117892637286743884199646889122065259284189686274923730450092142521366920654376637292489666163242443683347963679454632969894023549186735267369157831550912821883051948655276778058382895228009212648958547929441986423808143238942593213231226636903072518233078920921548579900577633215972109249506478844939655171920981888968468950770305670606281440128689564239746948534807443669171455321773432012592371258146111634149275911289599371921832704249478272783375511445358189857612787855748346036647829052929010013452801116429287322527273795010723859845903024056323812543461221333895482280926997999028840070245249151683736666382203030260314078421317574482788903142705813321197745549531791066964992903152479682328340062493536662320079198860400636088917323630523637823637178810608293181774041037800775739479937725769575075482127453530939314307623710819743927876606627354836098082927398043814011682209732020030257888158175357151974060806333613461017156240174868610761698364622092764691948110404299585759918296432424048249126033687305079377139050645036561756748734435717203103049726083257210473425604210093925586541145583692019568198963071791994211595176858270443471399660366307604023755789957048568256756891112455501939042976719112417600688310806814984527784770891562836501118841777098608176056269938646726937017529031512726280830808229311006440657432505363789872016703210160197246967165447555667779174909820327740480979247589428270149213178576410022036100413015503190648893768268884164613842379670818193706970632845044430239674776059332245346844944260952522659766225449228800434394215289849446307696808688470611970090904298060468517679096408037814265898258632514489790627020254272052341642798323377995984158055898105346595938283756604722167867468027315312221651580072417937072680535881676448473344938795907557848839702078737010899102485861376979779109068831143102386757595557825884532705389526159063899441465127485735899431927844047681734239630628013049267573471817974069112099402950763096049064374096824032047127572921274232702197820234565343933924738913253606606116560314181949908720605016476449615454012111084438283529465213823652655964428000471693386557723934379491255917123753325341258504508075080637393874818337041184698012690127423189376053253756046107784709208451342628816274176115096619002939995513350529055508534017496992398912165009852291500148694343334544749000350250075887318738215493510791902995366499762413010372662827189186035808645118545723738342839261143379335127925731143794391100449782251937050255833322858028386045625750192302326607012774774935013725794171924535823556588676941043868274881176719096193096216949999869446754421091073678286030477194926412802233052338854464754952568276783607294968842413791164733463607774311630331599108073211495276111018724467610670703749487934881400554628750363780991861395046254716756121328167876115779577766323972238980939613660932585736470617717557617771426931540247843731303985240043864451386454484691494984609349198969476306050688369804941846040590616944245748475497754138455255202134017737429089237933004926081440819360322203819556367409872376449128985303938976959269140802916130855365670142811245325559841251120322395392594880133770882879521124193395245667761953085944262589936582803983964580462012634579843565423640493064955626715968337317063043257653398635755513990164850645391882267550619885307527991482635762762608019776158203103686063613954209037929260332754441460725522626017754280523562953302179272195667021547331940494400422777014033758064502899331479942165768388107125023751326645030049941662016541309126019147878087039770198529650355574638419921858980384821014117127613041956968191580683354956528605579196424220196769239728205669301425628328655203843363375570532828112755612334726643279161263307405839475215219814046207985251730973237070372232699347111919660233034458562167309523478462004018143096269488726372444908589862020044901233804661393697074639896367877163364157603730279703784896355516312750051412231202868330452008938132323661355992934989657181428589828084304115708321491192952738079208612794122830897749635782383096684992714311202492586518389770182005866553903848880809122005806366180563286676562573164416870976963371168310256774606742522451124936173300613992206734043875874124076677096354431373881604993007108655796523311424734250458016030927562877723012082732976566066324207029435643960237365525030460048627300014245444502101040979847758705176684960586986907700479715162541425289781199779541834744536686613568332336613880761321068683040977088628828921605114907878468388858436739124376537376523006574441724273258023120496423698657966539055469994717402090497938306896358332378040908305630222358096871087739089327607455650828893260309726799370476063863485994795817220079244529084833196373344420656824357763043529336401026696901063640312413863948431234540737329634723404288894819776135924578586134196962283784718134352772476840453501453310546604943095504015332151120007111495590228918146621806239673852022708467532752833350151141548322883207922021340218487455595248985268193922723684365824781360549823723764621591186551006725153592129811053234157202632220377940005114028705707072062533817074376625922910736582764505858055568782264286949970051642585553769779671400189292211324524572961590051420625492428480683928411468055385253289358568264131769650393099347907033552153389076556456278185661486841026793064552174136098446917043250745628561098394616761809549243133570795573441507319841991628661736767795489467214357268364128102383563182005077216555192208684192332336284370392416331433364005392767439864887484889500544727737984742763608528645908646115657373015452046087960263169821092021567471048697904139530152641437062804323697948261820045937974925842087487126257213993135795643376510205334840839037577462124341919451763023178301153978632510344170684276764055673940824693733223499194634077164871626240117097012708041571846176047571239402897952245544451641754448777745224103008890069426321961983334578719065958903613476578301842019013479254874532766363735467912820653987187121620839602219571663120146884292855579526508306368401014872774575766567764200549342416233151723004815484725079203611839122067262436523282177759446275044507302727643163297245311545366055767512907531044927960297556514604270055926746593954740742022999449189594666324627727068622263201990280488086751912813903240335956579231675027274166176007865739294540143583199395739131560262077726683811542767752190651441007859970463813547140771696321069685298328409351784381473668231651270609387803358429243691077951739197602838790037649228470124727674393244284560902520386882649563121656165379780205881249393539530637373188643477611821151468411144402129067943092150014855074463789427059306939183058760994243033801267382065857403104359425634486493481077704674537701466018860795396380515969898468140062495043917333669766058644937748423106322990086619493487603258948947599102025085424191318146551962587335187639750016545359053318006971497895637500852835460621725607529922876683486616226803833650108683186040111283760396561216368534552481584704975974616528834289207395089875539600954917085113912016499475063611324712827606254021662817021403199961601612985618036846979061633684307893565370254967776853787246357445487149122032858833100189736799828062124395789890211306922175659585757048026266683132975111606869812235022242235210612490471823557878961297644476025962085568410703933001374706491369196726345700817919901187845142083210125090091256052898585308496936107443144105550012467567789575189175137115821841642410887773862008930568609211309188460489772730672413977824077285947033474371873089710271219129201685790541851514584468317564759502210266226459308906275415358047009292194540655248799397828758409426582031273075826588870084885499691615006289765668386016385263525426129970899047845259670748582255477743759363019938164690589684218556382835891376148172133494041654728611407049467734223701654807554181312113204780961615793466511844704809779384401377970446722878408618659892539242592586144408888058492208592822131014514728515698093697780053628633758839277266272127813750476111103828454415020101357174263265239319155762746705669944312347777165612450761942041624371360747163035949250946009052352974765039580983510624545782675534185906831073347315946414588918050956248009969689868966983941614603074401377776331157487833318006335218103379728584561320929300581981721468816759983216574601621963264688114549596466585210942390756633574133416543522221540649242455267232724654322231965692470534774950978430706012651233829649782798527220120147406851781575000999253774867043105143307422099710431107702341546182646848423764861200887404994652290241633702082456348182770665254213660333615710240119396856521489869312586515059383791184860240429236777099263054901244124246424618619858594357030762580861473300289811869909428405664452326696420533488693379213989721320350101587705616919582699173381495936026611345953594135116269594488180951124252623339813029692780173130833550796578823005441092859385622691809960945513077540776773330229921308882521304553079057991355616076834737403057976377130814894937485771051930887465180649273554398770400499685547282852409951436886160425787171192623805103825960408131836075362550477363436324325620062412714025922474011152031301493495807262900721032955079511848553905477246835697959962395553781929180555822351815152053084711620158857440329813143746662937709876948973390234452932078307012447937293903371461298906274773600804689181795797999420172592786353127279695067465856514546910846413751720361203218679231010869774457141718290872532915998637295135484111588538691766093966271847794553659234108619775895535498630896159231336503771102653977458294045169979107007982126247162540509845637809102600130054254888682195999880323846048474895050824747256779053180056693131558225603802601714022242510839392736773971650008460336892189258977156450366360781960334020706991216393862041226016929667802957778067652182980441728511756841281485868233795440790036530735905200367855919330661427298392584784609624740877445446393398184635149015878324631134268412159123471530529245191382189588184295957371804979896602438124176694719750542800674993956007928325614233029310833594095569261260191601853905496606733026376392229394331683412897939100221614958790323102428448279757480821011961060404477045630561410336072454480199176740212586917428650959307804330409897492595586856366801183325266058551179734994766694571976194389596747684312751231997380295913500913964118935961099291445646685828332293098912030989507235356052832685719579963100609942009557334557788229031215493899479137663266675245457219143897915644434532069341879620066443159551835584426246551591997977746004058819211279270227734791185586255932046874114787133313368033463083467853982013339052717126233111910409205195547054929891488108146245470081703813702113221097076094098582172174012792196196539117748609227690570839578154540540404169667422624452087187826887236089526251687837300765380146156605267620498317380026600959163538639395830976387081053102531289258773053979703632321084689480736145864767463804990002305932372779748769635198566508116286380292487757692548352294467727337891030539963416426388356522646996449437970416668706779723064155390129239533268262603151144392490174809268072140622290654243756860267069831503437462662683185241287244235826206079250085386252186704486640347997095081422613159071141207432401525760024318201361506361419197657610646957021130591816554246731962330813651800536685619709971549665929573230841093692525782288438859163618639150387503354047399953614350494812884722364681909007111838038964988863893122034101565008696865162009894949280595217886628896208206355376506867761061458703848180861788669475774427378725922392812747972171868842843142916872002639767422640642983722167535838154119647568816193021062584373517548173160861918541166335667973781976035721623918519818005094128494372239122485125621018913230011908302924024622999909634339136874531463657328711330310483880543467280850396825826830626492552883472967348080823829727929154097729213564495164502728460551613779664508749501964440046641279836468390391504942922108556300676716726381320988271553003434496348804158397773627972782962750883479770198141183130738800082109220899736247957539340743846627492776086498324621667238215646518518019146844963162811193173670890278421564334316618632868793298402364157306304454188593390107490336800699701554086917235337355945524838905931029891840866976511906013863521004541078213972159311435031709465646377249003185079840386888446980457980440733672291869244669614448145079901082164057636701452068660795105352557300933542950645001752556613185986305277932819069873513531421337073985896627664805491317347298986308063856156367245365496045188505845630207507767154254337217098944061861369729046519334753709557154895899850375451923493168800128560286162980736073198214906617636380559115371732088797171137149809365215813802063335599180209906891904062249840877715936714270657092781550521119192863719602111142976494419764499587726382815295896052606336973951186800853566029364880259393925583893510252035287975407629264337126765761356225678579432360934115090935401905698705695114391952809900966180424554454576390913386588812963940069739973076512935935084070612974560322350538165980755838669251835236013035076793156559877238156171607730042111121425381981625495979839813519173393432759766798443749398890794925428739955010452841710339703626077099714959484783838413958087200541373097102822049786517188924934596228663777569844013045328483272021792105575837986703991645481492159768018693322168337822640089653591663375621870615725292910583174232499397935735485386314664549548804250373540296188266327780490476911147103807973103715439021654473942610977549225585174765406366164228491199539008723691652728197603940865139326759611875618022476446261201202567032012673407529265752464260510307703230297321193296484192410494675677071577268386004193756637163485120365358536632754580489857824387604383223483188467148087630041776159841504888842512886402509140998889273581810908238132086192187974239254259245425516793902100266273791307107653643359044338403916908691085285303373885610930299648057062561038751041213322093390248557815079343162300824525548000503114795679349032796229365960857090124674055485104416201031289470172443999235599039049921249181719583320589128718226768098045795236632770090745350382478926223679514324508402980956719583537089961273126012257917033430970988783604889121104271645453820258441013867284119227701565433944211934309545167262578752982339871804025188328326402565364615304383579391678163941322419882232117967444564991516878961704314521319473753274151467290478354443211135596297080174501540888250021352092535493119262688019720486193730401417599235124338296803388468535193988030780099947499679222063520946918603214893537082721235280406861811856175235876522038713404507974366378850315497489072796860165926384928699230768100945066175167030608669816588048943703106051152165910154162105508722069996279370804029766582413078410899300497869639318000038662095591409909594369106482175680618804027984703025087404907731818623747070697185818200870274865222433229213059811932212164693567445104235685613176709456940214531239342349165906041971966023032647939535105946021383585417047546031648795313287979887972895575402118755456059056391754733896437385890133531045317963445041377473514942097743625613445211150687482284428508824730010703349302251101915447690275525422639412728960996719503562505660686004681438600089398402978612677516339227748752622261052275839838683407686876104303024867143942045617377461613626416573050551826181862164893903586502232023076024733995554740141814424758532262162775535544799182186884679416313080633104532491111309745628791164035318995171692515929806557718685381131331353916898319306923471629678140866664470221170530009383621050736121850271822845195601946539272336807350503038879348636739670772018308142100860263407807490762701580495903385558492562190643885968932916328124580066033163625137194399464413598158143668040122137264358952223565211244242852763647109747179364521823915625933269428981742174784892373232551072088955740861160624998073170828297901385557049122040436712041349994684505511511036934306066196195480674306582238726290815086592869188038482803639227852227687431669753209293967501556458730242931352880517841230397240929830822448114922308475173387942337093863874098789722261307530633961675282865028464123305998167178256238030747880646988100227568769576008861959745842480196630281013921692079126756246086326852542348999755616052087867141222597295493438970708498139781854740247235818374261992540136922943441562852993829696578310204141382090646872975346610595659525724634540206629931009593982443514205324822154858087748775911022506743486509548882677733136473784223761083338124673303760214681763368270927489885336504957854067710039063898911598046876787180385462095148821887571312847241346359923868211813234662215073612606811139174989244829476049006062070573580049272476829539922111093605317895719323780907727784498927081624967275172565050510664056247415191826058120662497533119689542100137997523180433934727512597509533783749479881922176312878280654396172494904272728960340959839469603614441142596689371898175203008586819591664480445403682535779093415308108386597420819229521833875882238146254436593484481212873991563243652674759135415967796268738334280682793428133828751652069845999578434820813405566102189567370195750522346451117214752643642045355105320799217769632631411865115409367281128605147460852807145307438943072940562549409625783384662288603105700544207451298930029243780525658331326975146957525847903386050050183771455743887057833323454323537699677372698192567187066897364531386569719397409169666318171198469221912966103723820112496501474068501208404675799740895038925006108499782524093828857443424527588961593639660638953905300749518844514097315170595333637431560387462263951698442731457617100922015621578453556797881834069466526409811076025274959960293258338898498137343782465007968764423591673012458041615700909433985186440201901678163188938480012609680282028344262991708805893152827028245280101134372137387750986144054394455566706347205752071457519390153451297015017648649475603927328968589849077989611064301509399286459302307396534242788088243268830556156039120226250403738854953169280615053666595941408500591545419265216952099050000261158616394290245074621283139789207561695028392576156750779083421178513751179623036974349165569529834047907476295542609288762064515441148838787898131742654847299222286023335670624661926239648075960596475088563750553882562332760265365913537109438974648579014309993086256539066990046973691715086758502224158240231056652441341663472871661475571609897480188067210464235619715555866268074851748498627332828335465811623596678793643753794108840911236272834660957779178125528960513930380973436780742279179059940477111517285512734144257908899654255339683165158916276717437728638270352387372567178196826460265016628156737072067361344013125712262573452342971570152881704008577378325005659658078178315503236884178481772127705265938919360340212037131921795568462207618021454863672256713533312677613143307589950094560610762591061913838360186719404468534866211867617677875674933024516865594721737062944698331542367059855332569289321057786158840250222766538639916285173009650604521616694762426289917146800700788414801163828776228820897414345948870148127878126234020503817624085846972063742624727801969754008909830077866387912998955847428268152367366314093069816651365759427363105331166949894292095777947387945353351106215961061496143641393941400573814535118004911875643469208426796282534658832925809876150728772303854857994639439082622260176889278453010820107616246794654224545201131691942688630324125951665303088517307619264204903150893710551993179508912340225801530864677170597923213957033541811714355317882176244831272648841046318487326598860930215024139535697526759704942616905500543461788349340692376865130099216678888390030556388725496469013175972794902207676643340657174860906911174356498640385656832804369756792111683806504695333901091383424506753363368610655982485926594982257654859657216197905907771584495415855648393434576480065027546317128255933590827821914010228706733177476977027441654957199156983547478935027487113277243257056001221367540273569264454591202918286064112466598397157901098307302961507326659026333305977374067903026312700949147047379387224697069291640747573168404423654096232762144306582171756776356141885972560472680286970587406225427876342496773999092751191269384488417401062199608294403153339873354541092082907594454164224285463714409382092214384116540629759962822920673928823066181580295757180908145209339543180569803955107650716845355069673528701512047314796958087527792160182007980682572440433461628797171308637950778247822872785697103734907150839316379708572468518018140073575144284916501129249693342884413250542827368375066847865754663381140233006087848567497594491491703192478164529423734649614261885195535370674568138906388341626541770242070031725286425055834894410448454218249113519039099089176123088739049073593540161588726281930883715660467098761314433299188043382460837125552753142381573282916338877505866996421961833699852921577399742430664554679694632199626517817514700148938394984028544562760326304872231139899630149156989384648929696936790599179213834659474642313140544902019016598324317882421452192620188606828181119642813690546953983161007819277290882604916272332629489263150130826369838974829892848129348876445652857201482910338561611056055507284412872426814428266437744746692212020191988592792706445183490437455129782152028604349821013941191874825048859492229708823634376364532710816223686886015636066095958429754484373556093712916474573374704799049255963799359506918534307403621027403825930972907528440320156396956713105532373292599629240348167687246945156038081025442263753682185627380146173209424052133705201612125915427586364269436730818281864988521564241218878537376341362361913723077334941687122479891078031152793170848045126656644259572389962156349907328545647022642714584488537006674383751135047975056845109880267378172850927800751834044385609135079499989099501933911645840347924606652803770520921525755742680453023648559828183925065858037170751228683336317153250624243320890065207657462559073105331456703104282011260824384947811049295724958116102746651708872924593389759761445465959974713851161859077026781213255296617985549395377720441899284867524568091579753766434916029216840193681312209060694859299338506602715625456802836866561771486901682121800427478400443240000897693911931606018599678105595946812667744792437994414351983940403688713129013574130299956601418645174308566542152744543624972267634749767695543846139617118229073064466974784652540978750482969746441054546368010323590203914946153427502422879678353808808091042696976134832537257845448165167914978221567736069043286814698485073256652491495274428846922251115857246710154870847107947365541382312935193229825957142106132767244375695597652754134099565019266283042342084577449888430416218060999577721191478403547885802190775608244221179877683181992987165625866698336484575503237444572759265450878173914846129050189157289419546559937931467039081158265231715689354939550921492042885497108586554295812217698338603100220588195268799278194594789515837663292263475997876378353705001965957409070804817493022426877008337221864487598505313472032761534031597378858946976496665727031459431193901136007688777530039416415487074987481053975472779962367930344300726917164464477948692381316011505038508441468520758674083988060752896723426277617235676966921773500188407992852278951439291844886979511784492926699889770886480219996731739786550404548870828403015357894291804387852581644469363252785779783987485680482685045723049622478702105095748187417476440706864868321062527729048303592809027358951938613380044720704841778439758000456736911022509398565422463452507792798666370048846303677615901148420888929279407381577255381517869011654295314468134750741837745961680819461677861331976548123358027116132443618398873345113998792987260123899813180235770913900862300111637095078575843146128568106689495661404669902597693000525507390350361341557907072504351034446820282665775928543043202280881042154618292858563256016807656716985789524746118119970695917810611999135203647309515273007620488525609790704241629839317211665877192798932349222250163541688763567569449772069766011217603664234880307088981048316027326877375158156817993006342533892217634463859695248147369508987278486595561297434395155735489865917614092123280973839011214223543061868509301466017605139409293644205001108251726597773905394471113657664160776647890230451017331510595572397209554252908672594276661418500240722188596410051506311368871200715521230479050407546919699607263258420369809293236551371120561944847245326405932081496708600474866855121339578258606324544424160587675885681728367928834656587512427262743660405054894989497517418698946686941366537114159925510842431408889767818165495254270021621445781028148998525518368858277486054749292592872892069278986334986584114877279064493019584097923312916521556681124824693750611773208011514182515122483620683759410557127638250832088618799235141152113388545697627384014387611955769854957987669631807586987495127492098192488786084199546960910471730478490319038073305319673988668050812777610946067662626077452072609172207893820259211232144688934654272519372737673321897712388857297505283802670743024443848197705622427637294472512451264899654279232623204356333627829090894964480546119413688854801831055694101250093785353378329853449053793412756413469580346946453129167226007202730600714519738975957181078382436726767892302979526583473652880661275001434836096189812684259777450466689553858266604953706192260684880638814654436512260273496072118407611761117562887775437823843397508839619099098465531499069683545367356856727929054616394305331107579255936988147585815142022423046968067083969773406527155705021923598412664679433259581738715059163740463154520107071284539438669997611345397652793571466735613725245027876314542253212159730516258207008902070058946181565286239831868782205628956058280140765794829754415236008608879510860544454927641485047995117213832911630505947449474619729535744293033389150029150084111210518042711471324280333421123508318088233358792851074736668389023636896107411246118598485784972965900627568853317504750462059382390349106150819153563614448272678744843872424982984110741597639462722218136620107091379336425814321797530493486623192062821984819353869526810273211465942592926216449538908604429264993099601196161965708307712476987329794735950093314621947767302717013986090006782450369588839547418635710096293835186682975147269644016952476360576751315950484870031554504211366562472876927706472612979838494697097555034560496492696777865352948798952104638159547931705836190354325204053321566542743527939753044799472995125859099976655978101894707190389664300669685857665053478610135587941118419757113136590109705952892130553897087463380338769974052174976811053231868891506605560435159696951633409918841472656844085185650346892139715865110078020372572089512596410550891396973471573214817213298448665324715567729345199496151282779807711748853515956904922702368432888590597255433650843656446015927200395162547799015140050474667086103030313234529076488828000004448060913263495269746227944417523466952114477174521360607296570891311859862093140272075281260366598863401348600896313602948702661001973869140307005972535772864145370859078453196585266111094359665190982770540258883411762690369239754498095705002982417761419150733751677485767686543320747877980829805750671409800215692128572570632676589105729441360882748429320152541285912340403475062358791417560508912155212657368360892478814297939831634932486652953906303005391092846007823899438625862792896873833147863186277502699620310973508302397739023521782296619940386442070760300876288987305178500252831722380737183402885153523992484040912428940755410433290092870434056061584456568491821900667792421295010467090607431957048759150910536121966692042288835278414273144203420388769428518505341482948239087746926880212571002176057302599762099912012442588668940067323408460578472015859070187480248965490786125464027708914113690689587632211600060427452823289465818009086478030956123921554567528612097896306115741434251945293510429512228713982754999280078117683933371784572680103230699981226260917443674625072625315739742148524401714386523372245183640073803637426478910015643316263365881815033440881782907751789192156438722210358306716121533707023058762890440603321208872941627908017760158023673725387431369526156411026779643559021168740270095647158215004927795456871879748944002606388339043792730366850370760974938488859329483878663710821981920208886467137181339618317536417230949476033241566745140790267104346055005348323133710716712814249071564648642379258839929458525873490210986757292218901787714608525419078406659531835771524723385857016855298794270647284220110416124455212674883513773574778595999151512607575697350167421833180203709804977684709945000912463344994296186545590517965049975788329739502977892193177090491167384118238635315006157505545254762034488937781493645756243016054383182868210630064263584597423646968586810251225727984267950348599997265658150555124435054188129097620842882038491946453921970968911791333129548097828320820065943556061912521087062216837703669623378100351105075210877083917901514134608482993951684151724518552048025263279625638795448332294381405384701870382885155386163194973400504539989025505926561979110085826614728919821631745145442439174267242995692553325845265646562435134458581158082952093678890425252571107669208190247818520492561151698836604445704421912160888309629921792575365332208953666865944954506248563320970152574743407497683797878173576324457749766762839325595332749293777545963669829209225774782487044664521316616178018038515583238337700706612452097618349147518004217767779966742504540064113360892010991483679184275804582005926802488035410982534851626390837658261471783448327151221463287068417377137529268335096432353278123876183817795133488055841305462247895622989422750380434574550934966465454125302698010955895285295744319898451678125707969293129155936192336484952729656335751386650930355420012182832951019920723079520864594776558295950887648267399423828845997914118800083131125154614496106328111456328231898191464474909905265328985099867607200890251241300852656822401766387738322491547433490140010217761220880823761220996870955857743677880355777216526219064896155255140775257692647460639132208858899489620643589601264901608389234147516902990078265369410111114917019394612365358059379254250664254313627449877366049833152727922188822639616074581736242720424410777154546123234445407207659561943020766701335461655151441701895393893270555896179582397367939518075573491801809581724734578751437898577691573052899006381743168650159157848749853737940091282826641841149533338387676973550498487734089435216293382654211142705075718327525349125652776715838720873228326652410030007747833393430762246204804812976825184418214615094112814378035272230625941559359207194389411985104926010615198847451177866387945714072598888763706459241443008239659654803057875942103155382574265141112193502849211537465046787362134952154560989343684698582408220280140454128257492231482728156970205555741988922036093931824357307656455098883270611527273267864431705973980264428101896943013958277879574006608213773115119713409713545790185607951582382609613931367831033896796521798711559351343570672303592726104774322890651663501148421467307724741292154366144663029125933057366852913041523969873703660165196822153693428336835590467068957905357800715696963856758190658459411520322454846850673216779511646857677416277990139246250147251114328263391236747954466496410765380036987971048065063417624373247876514971314675800441805229541451111561663836292074821509583309373947466295484753550823345009491571610677510151764302537306100229821395940064615235684514822747883150214777404114439726634678462470823623764909486278549742010253069102281839767880682587654742688030849479269777659439410776146572919527799299117010092193204794973148457928615466069663320593013468756527889786124669341655378553409902339363508066213276053421336315346086550980939160813958378222463247705897948968277837331826711239168033229439142804478537631129355286431313231600823367045966954992689332249985693234974030262751991945903459503099548235409412935422657390184711520257626238348398636629961008155333693787812776912921799846756889707487742238935341137785486806427494855601690943600261979538820860495144876638869949894537099132431971477742206128761164288554178498229821673617549958635993082577307451950091065964223099368622821875138284149725278727282368409823343874698918965706703514991201086715380332191965456555461777416966202787063536014424341305933187027519867194112090752429938178339663356475046316362883333717377815920523515906771883511294139556889123138243135365571052451107126259007572524999598741787627000954994713916645056685105400950212478510772480499934903484159379742424545363084739674675240128623066551441003438500889098769035036003000843435494176472126379833333614424434606642392667172122011535822069303515466882754411655952940028718148061593972955502015687593445400553471722224106550219597534041328824727131706142362511305788538120323771252053953004610453815857500204861112503611446813120220681528150379872677162604699028459259965184271236910624410133166831871587324419641019142452706521195230082562620786989073957582072345811880217426450312009016543411719254564825930229554518605066169778905769740917580171141866379966352449925622560073474687227094451830231646056370906084153019249288826920557904346632482885407276798288553357990241860486554926813301083551841305914595662286178238250935665895827050335421422369503195031755553072520597393937945874239066710388887263170204954331457187115205466124782951883718315874768113050260035099923973126075116900084657882666830603371815629468619316870991431345141568112168594573446544893135896013686993568694690926153785397120689277585677992650867465170841841945195851795043373707497610166277315091688892387390085532258323305373110052750610822618522787293708431082211091101487148673766878586104145058840646990024351399679954892708303409897488894056335223306089212140094994301783855348645803493845004143689920905520006775009160652797490391518201156237426310541538702720641221032950089410507871385760363301969931846586734072812154790036359388447788921573874441318602877411882764095401387438737538535302522688477788477606920552852581319028993047550994508832045574904567828830671353252733031044800839302904573566317408052619343881273542695330717373998485102031753745906174725624634510456855903144976651579496903439370447745492505395189796567728009362306262450458041513691718605582431808821144570979701888872982278001241495823212081745260404333351026165499726366842824949510931867050654212293875046074606419758215441075710367413051693902038881632454906013830756404238766349451239639460847857670155638866228757136192320399300764539638275178920821139130029126764472884010730103488359564034889955696085760314888288961266769283318762928990382029335911042088107720105675130018922193520892202439002616713817196199591341882528041095809659424236157147796904852912409332041330687056929889930518215974009610329080040123180789790329830192726172546271499021992267581332802467126580591314682669444462429549581237234107835651220192658307782389868485901587201858726188804074262477656075533482667141985376037174964577588277747736631121641606674486110821675475929288268491719674301050252952050839064470503322371975493096393158051711523420291041578027789418099579839871735950015016236663050449982307607519181030904391664465564692053164412639144144727209729643007526946193143035992555882763976747572124607121013632090032681141863912028607913870712248214907586915078532943678620200995751497337516445747571642145430570971945757820109236314855085219215979377066251958735173939198811333999818825265627801125160211832240786651904252534552978475110994848912011782567049144057094294965124658378844826740231310397968546206883816585437877421401106850777057530446310535880079238871997111375721648917556423062798716038141927058285711980876889670356325934883035744810379709570828645019625706389605132123279436837796376305999082082222876347168668864700671633970154472040549747290395000221225393781202405071531897720269607767479632474865732328454047491342135753679258029717547787284829308130998449090196029461172272906478136500529062369692889594030036723542580475812255452192764713779970407798310699608390246031398985128482792275220319415844779902148362043505411877172941878958026262352424446922876691296738881774178979529567781680861422696934254672044062591269216472016724245603680892514487563425981744364414837440650250061141773685983861702848897867592688380507792574433395901752160098651103712847576910719381531674636174242731862962355640176220353415735364807663191704840300025935118152382712267291403205965086235058185110217154171568042098919836606190284957555891336101353576231952950958745097789553218551160462862817803428786390528484158315152425702472211619810003648584075849446982186215477831939769423714854440535072427913627044990821653908943251141520142385757607860157455193921755492477476882112865477994774967698159566253556136354931410600479159020614881935908827594673516070794252108665380857980258987456821721070480866175318747176315675290888394481417627709886083947177608472508411414916823658587444424788691852246757236266201957135781001761420128103440541945951927656497470569376235044682590945876975551953647739545870705396557487110773628026620239084739559362439922983703458358396954153374887566263564607188282606568377694727198193337905434710708553305466875779051761237630201902934872278351103961514198086974422248983045030500804484630720773576848423460852852729403864981243638245565444534194861792252312584545836883422248510799194784111969865780909392195296804662865162783291373457766655123990091428734458630181606192757695295047877576945974894097607433052762600468591860274695703564626759522390395968779037338018622685851195189128341563267097644136120673585723637110600529389150522725502683417602784534962235129886904529033719520957867734390443102438386970272296486728153886896006689225118986605859592975541129598101242460869572022079444143371313110427633233427897702007250005615084115088345893424536350048061220490016708514329948013791085234059839171732086561828079522109289442981613617681557995717360967126984035905053629892181897991504591630968648526770682227256287659396897743533031925832834737320317093259903718713259247600465059188346282013522500072158437120364271217195286458878067275716164889809758113312984056318118424555745899228491217308206441084704796656387593769409234692702729193132152351952577254618316609546094873548017265008672960844993181032733460236257763003682173401272957135535394369170653802162831087810497924728040569649485417865152869709573114475437726435295194366870953763925728424901716334920618276380535876590443152678127315840805950292241309787205548915078894157848176447455200123971644887795374588608649081353080809032561839722569572401450124685665694362717685939061086168489973738287987634406786916456955819927890142255201990684614283141615586840851886255997805083610087377295904688959357236704444294620903702947528922879813688504014485857619401944498262813300493492673366634852998411633160048339942473065573063790108602211982549818967763500903231754495555717905076616351357621385277172157774395043376911061503570286568062079297564806677548040433723725784561755738204903890879018618140089094760982576132174218527421025545785937446595124668394528692021434956164199770744132258751359719152648286875287694683250807451892750200458962414301293172588522080032618409618949518478363682450541636731573126108040246864215134179578809996011869442111296410008737071054785480866139757302238932521799066506569959725281706298495585867366180335234533933993707333750906458316374681199237490317525965910796322086557745150613204745369501041450831653292631779871604981423944640541847210810741466876331370506160641467250991055407567019672938858708409909643061068218736801235711051586887154908847535545132918380618405494297399246512744257293081813638642145306871309929052918691287406156915475376239671098419541166701956912295570373760030172334922135600978107994919605931294417258017163804559259391696805263781710871823562879633034516281644977397447262054315743148652936926350757891654367629561884889519180033434591585186320436365079939615523677508235430224505424130850125860459735749580216690672760634848738385763860025273922278615856358064730210076965438370659228086176483462854792450129683911497109260515816977170173017727739115399497244878736092985016513155105837869145086428296905379550019963360009015810540057771564225473351593475469118080852242760356938044126335796485555509475525333863514541333038377080193593255489276862510238143096770317219983953801051730842470561950363570214630829991722822703413728620050882157489037187680955093708799249279121552167837466529504674703449469659811095469623959030456167902951238611497543585476621048742920349406504471550095563891561246880633512125944870432132065725228289247572240066422854057307352511679633890016475402691968666451270804236625291566324747263027330139582307593499533672624077392368796012550556566653321054921431462775578997959780227553939089082529406137233792150001069268988643578567752389955553867275583848206339537135368281871350176216973623327715220067868609431416159791627751194893600987783727588351812234367609469705354831230273526771463816969399026738451925987947596896993748003236749907926743682005268203624756093030360770478500394861753199375316821142137259257549874657947733899100312086747313207568724481215261421166878190951271041236711654855674366577067603103823137630857625052210826448766243328363721671515419844184515136389952389571404949008322096740981573975633871197289666399923759490628776622813640940400697376303656149421422002897058934694381465597140537584699381298680176682534148035453774533341739929097731404701905388764359629079437016581671492948393536247167723064879081588233560126718628430324562640387509372607532984960660261877349160323932689728542967957997154739502313435204553950013712837592331458335138882973898828825105295290039265530371119189667250604275618245955354515219787742562711361577285932553423335364041678716916502166741374523273023125194854789467736318640385424182484730327306231718587656710499036681164048419571886124462176538148913707126425065968804077620214820077171884326319434676764619752133021830249652111649311030857069268453233868532192578265865235959227062310063111293464345887721810967240700405761080341562841346425376009604462506168016662431098188928420353516211872155636509705955129266164071385158057341927538573586667495266181509634168277431815676870785071782917307195533777682753590140816866363974022286743364330910541842413332624646305624284196559812238243867825015494769506840568781054299749088612538656544453058536476185561665310897741091984417170703536829692366451638661170564633513947131987336450857371284158232391663530617184467155001160701788900399884138917349589878156213631836281438585344191923949658690120060420943661297842183707620846627349449613273816019508669337967149194367072430282161697241155214632035964002991671886765920902327227345475988886407863027962591678059339042081482514080008482045987588640594260655810494302536933330420268039463261799065654837732016481687274844340373431942126419088191237998235389768741355793085700374773730083074302960414453506164011564367020112206737956676749151667056194243283106583340956660410808980891406117028933732048930117579843234171350990025490458869410045939894317713204215638989284971229147573434761935671711296293937122778748189920679961929888915131045855651692231493538875777798155006108430608039832579075107530263227465790001123813800448357316371930121521227597918621948147951667922578698043696144455060954584367657746511030256013072208269341829891696453561515869901402850184026037091702036275165542022048225841116829797850250248291448233730787910272137289384796519276198087040918817934747944041410123051249593403254612750863762959852851591986907038307747279854424184000084538494844173900995589804330631903006706218243761629802374454310820918593198427258229884536163862239298725478264022506579405644371573060251418426229908173445684920855510171998464459337218633155487178794146730199870796151401713094635277842697411306556878455982134036436101830753907419089556316613611493858506909787960414042697362951848376669169191319647804287620719571375759827126055020706887388090741245355376038701125953091960032200750954799081156046846078416641231868426268991708982772322729289598066427340550704388207528222263805465357774592734609886297896504972864909508038124604660793546730511837564625807341751940822022112226672514740130512950789872612110587178121983634232859495482565008378285723226881124317599535538585842628634167030953885192015053303593777590866856652010728383955659415739017011846945344063570470469124299597924300983848358047621449648911306858586976808389310001384425866571331873992009182257728090295933885434864076582637911436056412959512554009146006735448963366583100695348524954844901784905445643654866070951494677758736822815330009705336473381749195030227667230304006150259165708868065680503774676277385612491048552199253590311891349577865588535534729128619701970625163017963365043352464781116884755189922140506287132493910362770755829003050408569093994210734641100383391344550974847530332511370180366096865928532044418116371061333428003421218051655071350780368833429585508020145792143493456150900553424042102057239412818259306499312130516827440168165260488098701690338018494066658432301671641662335425999878479826882701449228147118181820529940608218956120080114773907844832733356227250519946578321549024074379722012822720880607239484165487080750494919385353484161519305931872400381023785983063352964199072271220265524666991743432142263254477231565691499498522177769523351926604194319891090594489257010555236208371437216489867645148278829171540417563308976837777117548227961349238222014561627935460239765529903292936779264865531719437414538047821640927523618636676938419527059764463243182922285206032784221067218900436507702797993448732280339714960378988994119084003134293990540113451326208489791695998339132448804759666375307763482341409219865776341379731505086504595352052881567228122318103047820094999262365162230079381826859630461465367477943469538044864794419091409999391496406160830136414845047737174435444940052151111858152723438292988814186099419890924494406032362593311888701074515335549084879537310830509298775495524261734681284955127984943442095483059826032568390850688058832515549112738077901074880682783109995955898112198225444714085006587645498538615430730356484403744682977400615330927217975429155937528065644656122516653354960967933166393586551949781264853426102559913173007254498308895547752715631141294269998783829841823218327431371968489600423595782213177125922471811644296213611802083831160700145396370882066519878176070234839872933039686409992146517590448361606716263100016347124797150807662928346289101049311940434049204914183586791808883484785013073613964275384580611419351186163498605869030252476916501050154503492493346966068764692586454788837907121716812172254947681024170535526892639333704354683992299424034437463397014246991942322838936954373256878753948962244178452252233717594317727429487381664978344058942821087702823483180330966675822016770476630423514954697741122014940806426534326679304088106614197689225733004746879542241534055590653884405460159134302351629740204847033584431752951744493907131769426439265918184122366730883027607254425779562023998074060100161090700582496202902563562226265400925562402956196164043002501109826026749883771109662769717857898039433370293927169127553511206560870139339746752946563031252582317062124061443719972882620227065031057101520488656595041701451297777759107911939476800834205226580056050930361761646769394047530710358718961856910603765534953551506606868293118183732696875127120445644665902529931819836072176044335315217897835891304568545531792721150959984254469057519686259277241583049977997762570250350103148982981667578117549681337273414211083436394407136559493234579870745047545443389969985025310437793539124846529153953416545116933646522181307980977083563321699889658365679956802844693300378999333593514052350867270679551668393971409410565508041769301438886016120570484466000276850726758452431540632037532020796373068682339383934660304245126835598589912005386903950198986903356127866905413480782444138862884740304213899821021089799877323888307987121067861092698151940096961977176325674166172024293091938170591767214910190593485874902581997136781229280115085645469329115260416643392264856754712810024935131143808931865897310953823662960186162745296502592252365618566796337338558200184787971713758290224798018171976206363867224952609063995880115619114344088213763027251504299772008097749512939773844283830237654412534491050047575869614416934734270915665270395730981863434268976275490157658099425889223943799638313972001776563342117657637294200527997731929704229068831620148608394403019350277235463305426999662985030282784207176516946927656749717857747578141787541928063001136941999718742047974009331848371903664208122917230885223195773461872244267622976996194466212822426712345992030823237411315242716352502191505026929121901721940779773945697929899722685641637320907497316378039185319057121418886666227772031027637763352200462701541541150123431678983722861839757809200751371600299244128744758251519587687945156492959679485724979118400011287524376157762872944571702018143521278450080122149235989037920865346109352450653824977721902750242265241531527575749325731008991992779581446499877530327811880938902209186086706810116905173574124957191615625178897215132010001603410042893601340404841904152525669649219994521814995639113864494086247400598741748627436191886977452065984414911180983965925148722690834821491941834984871971259237588587837756485316998627163207050513341742170759603706671837925135084561041107589753257471649795725755250442744840734385994264880814562774019575052301379777092432291242397857354722739717780319867274810953125771907834106675252257911399628659330043098074988265992932392083759190312483786926399129705941286158959841113374215621740251109350104187795966064027934413014223868280006995360218379757699378592600817929941951030479159683236918962581105756552749591730993499011919130749620181923380216886276258542336476069267089970863379957286729284901221605001301751544377861478245814022136680864540348685819806621482191312393864696234805193426856879488127618333225689446207926651443455599342311788616262348212667117280963952284751270607947012885311580862744976200531503424539662204309399379522070923027770454538324891555529434407186826594818975409592147624698230893039814445830867005152060679134519751486433203244907030853274173662389711099648774488449138963988306566147384180833967047552032079489436577190613330456578442292542930758724890263819894601713333144617099708906237568097206379620088108497670054866752441042683437106290910695855502145965329741235738800232820532009671095641275243650128705858525020202468429802856782604847033776098644281253885966434854563953983494997375778450397412407314363688368425069968468529613002493078361412244976848465891753575089025671004564249528847946719455929516702985001352222729611977276124039463403955905662819226948931101037816505682666785908455628789545343618734361987851466106872540494647322044446038826103353126679203174684708745407414278485861479734517193515149864314781131790204763531458897379548673909627845508445672321953550527783969773667117986499177976289262480345481152563754449952385893286877322298084585866423681164189877882216250033892429681904341387067081767572332353290953281427261923854704711549708151332913262897419063631692407381666426323608576475174628756807102349658890035206876368106655415121976792019913077241400006149378019740825334571936933023136861090044580773818304770838631514961793651870595034172732145785311992128895053703141727738668259975713192429397727327778375725063263276561210766839533717020768559067989587111751477990184999201727499426322283439853415199953053962841521277056995534046605999435964122557814248012707231297432929367124707596442949492464335682661640331277632204570483856631923782190788358323926579465950380120957104410734080615683104739943388654846385631138411169625198577626546600613238056644484066880423169039277222235189642230472258557201818905120798113225537950186790397365552951372632113684397345615115466902726554561615441748028568656341330751172715377181722853989439271434023873806785947359960524001208119524310685248633915543595684913011434942108313721942704391474588094644179327632672436984547677001126315756081064406246570613792059639982710471969648049205109494660016831487839139594012991380713882720363437594836701918741321087973365524512493679439581072334808037980371757409034734954550563404719317071501189644496881407841540710991748445564821432248856345758635858212280548255053570623902931577377128754770757294818188399956191863482323914006830665004515462235906884318046214735075163732841847013035203899059833162818650298854196326858310471643464569772143870225084032101433291346791638200060579836692764903944477278600040798760198256212046537106239709254625535947676483588489314045535258897002031508204463335532517478921181724949988209099522361508194908147172816821162696092957413376125591310113139027430404076343946180087324585966510373272402405399472073591533121710058220858822458625809906195961596397532689094867405077017053173076765804206663910132409049229185730558168856157203527729710697350068643128222546946826531063018052773538052673658896298868141722814959566340580547777583919353491632619257800193580450095415131732709205003368565647849447606892391158178326663228069660881145116677539133402193180273134642934873238726846476810330500968467695503287446283138254212102128331044076846062400746991799515176953740286534031245682815814522021014354758495090154671986370425222679407794215017539893101099195000205667824112752909687970764323319798145933937502210775303613649411912647942392249112117101159833834544049884115589589703249081405990067014504535689408754441904384420997691948272299686372018995272645477799521210600861102330234502519912512476507366962490602406847557010479808143195926195976284266691542644049322069177237868869733833813842500168955372392946171047674916011365588812175740316811195158038738540283729772917632343556909145613203382347653296180576349238402861545914490564104430036330610868821696461568377083310395194808109479257075959097628408063512108088238223143384968384339599081736815194777759113301654751808278715410832283353344537249542198108833095786878917029963600405652018186043033158181160211574951374658788868451324095356954533480053748321025417257682328847735706227067819717810049711912676361258007920308213803572205345228798946321313733377771751356209162584057421571467607920269678071140533814167950427703631102930345934975480240786978336644615253833721339267650700279248127943999978595966163943185981966542122536382816176714105937031356383932662029467576506893523666178860937654258220137805561991812763388813330633866075952177494120368433537687085268901806730188470019682268124876355622981003886274831082862884566758731555402252878255515146456023988854343098004301713233001970252034387137394807727261294848178903981355880193153774347697106784638208131564385012769389448376750572709409034395809226769789089216672484658784044814057841031992932796016435964922943378640703369697054374013490693597961870811818785848391320479237849838228809427510373272296818509573080829452814032122365841080448467393163305477290811749178037394673376459430869383590927714278342272915658812338085569508592535379671892995203141782619662492792525423347365213388773484688912705964630984991511471851280312386407448830065169384036033934807066954677461527645632876201173553500306170452211974756383474641216617555217082525690155164363490734013986187265233149029837756601098144612899249236298595184765556866232984671182185394595098505608639606226198614238145556902124500925632638449476005547693942203741586536480062130054616821488782210818813772508884156357855480351495667597466693674307232339608037333540101042895142122019840447296341221554732691293372916173401259553587442702820148414509081524213745893920302960356134335385563466726897081244179263031893534745356580879087197035369925538205039307230552239942133366438377105540619626837620340702586179855818171356664807985961552740269251393141981264647168748224976625745833243189710617694092379962042798613110975516805281417689377026851578277251295307481390302079108276725919775117837991886173168353024637709635141534962196532009444358739004941152321373372805796963604607927880187842449715531450889099810465155595072823653479216854674463281982727875698354430851610176849373151358360527043856903870911057191241504754496929326159903537456617699397849344527427219234421963526432457156391861866867118459067026129838099963382692649561786421027134542249246770984873174139107121208495234690548592066939129456870468961284425526027070148443479104896157833491902111830046376750008302063375814709139247434802795343766271134971771358383126905089142052932966639579713624258410308274270254987701427228013775603262324511144681493406289518124334253379548903032293274074687194599382218422321872206761495436614337833970163029710261686706370645974795712927237311097372052795855965559747842819404304449573508760238803314192402591110859602810613489318068584061651692560141975782567734096215882787914783972207921622234945290381102371892559539600063094544288248757801846121727256738515166378202243363580833587233411713691388997214172332161567902586019580263192511821271471502333655053080568920348025706195123588495516218933693432322103712257867178612884438770468002286953224083441415779565725108429389526331908251738867315968188290507649809503363903595622409179709307180318317107311587790432010239319414609570323590159393197668382871938059208446076603856078349623077863863114784683887176967169776074666497837665867477326169227030251555551272411858619270727134495166041792554978736817999956101930061097476775059100773961802183244443534662732456886530071686230241581303276871917205734534085352920644687176032148689351937545526963328984986836736979012637005828235552825028028053810724386139630935112912725190102621453154065477737194432654263938808721321952406853851792730622424280240183874908617701368052788314840257809959742909395180229081133496510569063316122001362017082998340353089567715075621851996418034703424759471056260580437771597400803582148182204813208323759438458648324980399198931998075772672474135663291813143718635760949890792121462849543479363256204281898441331775019828207585057965137327288542784798586889852706673973810545029576151239221165411432637203627335075513260455878066742688221686396514149964611884938991053229824053547235311089580090903746917976063578829557755625522993829887682409360499626346970602674154631577254877964847061084457342610087317148487680607757905630032310952461073520414915459654942024379376778069341694634960494193083757130473549744473146599295271174640335755210432297598631780897990764791631285006537632245375656908471516177237926300201413949350603613405168765773262877192364328401616353747745132569049167910091799201680633168704336562627390923814638088676594733179393451319677426154850545744751473104488251096058468621221800153396169865368702310667603476787010739816864605389713990380787754669202688836670123128346412316908541301538534025564336380388795360142226919697524256891530568904516904150992791324278217196952212046654740969549149857362666879707248555641710662118350543151321274324366185693397003130614508359456217836913847488299984004596388144446897800525041326486213129092991868618048070910975445156977833743505340975177136730144744255572326078512232788244385303846659238407169536219102801495843440623360667112163275296963470756602218900821777600728446799918284666001837137614698684692110026620544868265860583344829692262465126088194424207177897381796514368045405277768335614290611322360535945300562556802016819465678160862372726929104220423101239806195984332393454866020082363060144457637372908794946767340655523552724666179889722701604985124608964794193131707246211957592505728171039136788698392080979255097278129866706974996700018102289493115416658532377029060944945522043952403027467989887609247292798751829184700779580142738533465095774029170644951681038939629352965853008950664420431072013908760438914562014094414441981556684961285911189247264359799061663145616514686680960828323864620410851648152786195100273010655757413155396247101073013419162872052113141405256697437020666882764322021680196270627096714927197577194475831390454552003380049946025042950067600231926893559368712436394981227543598642766091784593696640390748803787017281799461350908330352942001984691151469312358156917599933000405468492385858719818447113959728978469863012754357180190614200815279392636154255650148370555883401666667826638664661766297889595021909006057053355188795080640511736440815183012290496839742506667525252900165575341373591714514593468703742207849017206804601720703920285204793495494984586203232202635971898023640507425051003826571456745314622968179915529619943400309030915050288022690147292224671155749746024573345935573529494802958273170864055127860503543170329357020803456367488458854963840778832044381689843139422498839970604795342909214219123327464981711216095859232052745694439785731126771752431032442269469913073114698621225105273933364059450443645052507719544693235197737463857694090371476132784677157975590678373553630237895330502249782935442360836264916368587842093802873689568648764529815273273816782363873199289871363002414433097526916915235205195697707570777412786140563298300769131142357184765617947233955887722479943327277041991466410542922631016161314465755617950751578061839022301099124261144099030677999436397174544203864913916314272692896666089045489475300554446049811268692514212664574800761011559606182292717500997214251030293593128146198786428526542156667266999080475134608015491856918986075769667107761767054302339753730517931951526165969938675321688179010829698859496933774215223629880202928401725944698815396105422801777639281883129311184295587760464695102991324199607460026997671242753806420354750963657348476587683900002495180968422414046177306104275569683466939218749382216404239086155013507602848749295703553387276321661443895835211529412429614877422238294517849243767270639295668461260160354089376350137419999524299119025314108213417471749198143513661653850888751221541992577387333936567718956114294163826854145521050704532349586922759875259594714988568267405080950562741418729292153316624972956923595677465823717377384997029212142975268456732251411659928410330754436837310538916602074111059278953181601658569580339674949954418409852771014509822164001083187691395225287472352021812524276030728921755182677176549244437613461393220735259458584678376925429978683179819225639400844449429724216256651164026827021815708463380024071773962058062835584802326730903060456526820220249213952351623278229309482986603829748961058131233100393882692479979403676337930293232197956797957543146018896436705582012145092790815332730274245962322241198185236767568690796162862422381783927848674407635742506665996790613763910066044495194965080660831830900308346904814001296523116433337460634247085999264540560095221275737694905760816415322372345135700857686509215492159903426994277084794110401335399646521032797762376685606453971806002550517479465448242209797785766557555641838862028938333360781110801092746952422787585393573573914527966306080346540635782150265197474334887616336750338858297624214049934886018650564958016078434411151215856849594214480031825241577530234613009104105428995238258731264533465620545134774926551337026762384783439538570559974334242292271202143328113150778847921366737927396540076161570382578611307589986877628224792475507234008263483631288328929317510956534912043966134386501599978505097080987681138588616724469929680375780972986097860811724585432517334892986642785762879372179072891375007169657737140641569869309270132337968071771352314644086995016803762886006599780239481709494709757005977691278325555953225043418872003509811404498034011095653940340150705789233219504352283881866727965373204697720769676867862235900200604650088115010800680174404680908909085809974750234151877582687289662696040268094774467447658260998016782394934759292469484191175031038180715651389998348633011131778381325729191213055460146023798225183157215416466637496831916650616696687207925123328736919612736765050800975049267794946159755223588423214190681017577721196270408244911172977305152453368858780954802082558323494285601875987084674842819519370478125026803019258237319571285346809555487243406732709045411027664250602553683072281919990457952184558436711966758960954856041695172393509830750193930052404417201706495510302120118583140161211514507855310253672086275622524304603460942368861526183784136257610865574374940210381174684607742811266235466527479535432888657172952857212087937620538807857446995286307883839208100274533995079295979178125694734725525905327822852716611685603381258803295928198562548877911436252886506217240483314053952331771883840142786952331553202969399486529924756036853091636135704934798306011902941613949035282596267768611806879480942266312088243090782422751734551664799822452689360778488976613853831602859097378738663435226122904679636058527565832080600673199824358489765028446781165220015444151895685056592279760478634131549827094981161997647259342337154123628001540999221928789061940185906210916116227703069024695281970924212615433573200334972160350975009754248284675098626145133617107350997911930211118409394738802802940755280803826036541668552597423914815601179926277053788722000164261070621367488815018345431801737749217373431787752239940849971441110503631592130391364263256108255861586031549706581314205047307491466772283625710576030591687977494925454069098239504317549919220731617394975589415108656715261849449193192082329415791151630520169617526893415052405577463274818668138755106783657328262973910176104450951772595218385449428067702470130292346788098052242292278225615640414643089990455848091688556812649325984460742366468690061163597080116213266423861467439036254527798114420562508410771811383689503976734350190933273155318811040463095054611326483988359995110286838552657672008695314084015505316786584245879171085568268590398820477291873189171937265840345900888541225695512276500659560440963624550691350983817354660805146976596209597262412154769999408773945972199576593514000886521854065011419987129781943240615603661582881841499367380276769477080701588174874466269025608426440429232909370844552334554802269084199533723999761875111983285783623293982483041768362057001214974136386991198811253165647038682250926834509366195505755816818037700066740360744362623624485362159247545582358885905884854622151996697657778355416504906879999396744009226419003226650245745053275691408490254015542243733794341548066135080309075492041491813095514815989261670813039736480274393879839126839398240490722065003092642299044028300806876466022130829080954105847469667176806217318264971952831159010937098990961665420918077172260397750626617770488081347394537753855557191367828437646023244992854502738140582311357666369207899240755196874355045832803712690097827361752429301214175438149710981988754400518340768190921039038397283170485861704541046170108256009997943615294543494132188043126646015391291881028027121333312871111651702044542489624729775620243599035467235824897661947961943636434207760735490152710077539856000701211939964149535172263791719885879578413794014852271063152697559070552087829223260782991173036079738605280010360045729905474129224620507058826886272569486681568348614204943117034321155650242028146150754144382839286737334071997537635977751290571591741223300272941933743114225759113011154480316687127694200228587407628899452815126145850818267064590222820534020502050281572749217751979519773857877277067041526681598330469532350695301096779310352216640407252424743947029728295813610849955546140485063050982287173666699153978182397017151908217238914539623800842341486828687387657161103408053352110753454890187896438103284474136759066728360205384105973300175154895233663040323945765868384362295289378345470719403636811811697609217674725891055690782905377171031063001804333021305488869531814512974612969876601731132394448093325815616067489538708411463636487722677208259612412546505789769075415848629615517127637871465436919732114414897583152407418572940920656235540108247071866068975927554261003590631322717778584865849638353140999526461963365602364350439659759357691403257146744476617733358472383463018420524621429034543415943982388088545411397773656225223148077458804239916381908671235636565254205993798335470693459159557807402145133563021230960740882199548806497309610152501336198654288813493677173971312550210266810587289886275391899895672925553493528990274510738589504539965529995818831395632499300498174574806943373288481838682510510917621660601214421275260997679049291945650913361048034926282652438207634512574374943638449073059806581263262071131634659452045066167786209520831469449523785474102176013400840550673723291089875263023174318879724057525883836458879997938538797137916339082119897793950656105355290625691027519484674467638970757751557569605602445042767915163230675570226965399582668059731041466954325735085900076848612332495635804276993148980305146602742292504439710187036608613307052077916142021721882979372568582106294360423340302928185969721890047105869835978057809319758317625465749165145131155981601816841157475692039742229913155165565487348978061385270462022909423985252822000233668525087932210567297295911659559235210789152369772973380269667804912490066517310941833874895111664434548283677138283548277745693974331277828308753352479098585956993074225466399305724072942645873491615834690149820954719185735685256689081972701299966960604833991953305333866423828601126699160659833222116696705458217632907420042661065184475190071733913995487442925228834756014986069833130599139391663885863544721567757512061201894399762938376537939975440206680158054501079538012008215040405604247976361346886772002143664266054519586805722108345393545730124100103235721812999694162942360895103169791536413563628669709635481256060862870657194322303124537337107038595611434891205395023398524729295886779349449504910857927444301511811420009938960226513897246848430933246236855819035694779646645517657515023526434596408590752219418801841234225593005499801963775345180387671140641465544384530624232045447321988519063965046395665234555059484604223864927594524386964386692431369094762201699041054707924483562760999701054769270605205538873641498800242639090291524495247264688488101284077465527162175081294077711415976315784188089865781632588376076812475925151796669322336920166571031757528222388964936500478858974033999331564213032956505851065957135069277651218446001747478108259617352645751844864866600248967260398319219850681519751628269591276756760205681683584299210729111470647049898351475297729904717925471335476559117226126099333282244691491182581480274790805616375380615022097830932152563744418056123813657897481433204613543116816618293684898117385478649573022546787112438500117453907523517950468346552655616626515463353170564214553416002808441944374207124718084769188648802271276808785124704769665518921978047603549011574227001890802279465679728143864085382239267808002669752841936720098112351671811327637763417717022597940454347368126276093661411445293109038238453922307218209782788328681023664790866123363748763824304387934592226055319831248726737966248435697628660230998515326426886432656660868195072643604924613831978952348466898739788357321513764597274479225767092090195708294731573146128599055892156789431585807112785238382060453652533403286097390208961532679853273820447290413170464930171859177678309338518935924766411748268653785546335823823778250477516816876071248407557789360685159856992936615588843575650063485257858199503770921250593600775182186449673553379329145092381420459857917770224165604129055229186424870974782423434720090708184551084228938221164294981947973136338994733407498546885759426236776359050649371953946121902997867334515358367709482723098977759510435304981301406887964764015484391621294133072486447749115511180233062795604173650102026501880580226677135011543411925747246945911875202271954989317464871314132956046471025701428659301777159971459050117232995268611443630746911804620395228391008952742725176418246775219131033642126011676362693288356442849084413979280452635153587672234144425296115769645531483268879190301035947187886796069574213476634638585706371568791471123750013665690209750042758711783321028646350307132175123470539410594203912716676116201194317507570998622059235673816416309352144851268789782887157182379467344920254991471701581798045035544979994558917051824821164713553713518698548664963408754471036322799143850838265257302368184529231128225754692538709322374305926305285157445110120432928426942589526080372658554017146416629393538723537534568955936585252105689893298142324848392653191898660246972825764477983043887747711356977832866333330362430837187544765647749688995834047423578327881746309484128524917737941060766716860084189756767303133953686178711757873341558966930735979522596718116135815771650927824822407133182940035110006689262097852038622174093832247262980680877813621832599296696191128042428334630608919027392517687497460062778572374742995207010236556012016839481916938870098086169053979779628377007496450521925429175686067165535035212103739362966851810301279120923699538683634631202092190039147299824124795538289860420939658749455063748509452380310025103833881361470350489524764031715978029375826488368327370055958080851955322868234250766834475833724061044570792169814893294256179546094978338902818542770597561887630884416117420442697553982062143167468106148741580951579243216712728518264856656009158223306657500546808805886085541603033914159730082634947159785021875734557756257660876933095067988960178949094030290656541945872117730607561166473854782574966774443524714916197738576797140524313244161919807982431811788543729351811994268725633539159810904706769309640540663833614258987535918506255039815099819107739093049055585680289813289110711016527076029876280369761425650158015982981461081838359098707379444816150691325023468029431064977162711205350713706939596709343118604435093083889131750241377428393194503822357222227391866390911216772636575666143426213282934893175287511405751122215722293156548178334368811800592817302844889825180916205780074758822504065930132179046280299944527883898795179371652260368745978277528432268809819936374629869084594910819658710867313977931183710430919726425780019034091208977527715975412300209526185260624546412895814377095217202076897591122530343981778260567089845032278668942660798216109733625083010864065507573590169681900907490800410107478844803262218983724578318896160197440189923921136282200876068836775361439873997998650246145870426938833586002339872040912062523010460940126296761459037274627336377844437935261181996894680343942251774616139269451827427766497101118738039869367067903992877671494640686621758760275191024240542787841686046007063670027711212789772540446071297643404024104326624410509362205412205494888875048231808740305274654384022132046045624608010463476685703442450575236829579507754176999907492206328024434602725476368731856183945936416676232750494826292400595398437263495068482258468214876879858413720384067380427779962319225204188063313204622184253547451568731617868567833246643825947915409643051509511629039707094846789948835545836135348048943795042109721158790542505554574393311459713965958318040176595989217106985290741489625116055817572189547624673407752138502206517840433980374132671420199081735576202923655505009424841385722966552955456848235807468631059369997027071556410169381187607065060531013841292851000355543326374977047076974025137655533670531725207815586604403810004374971780923239805133844183619339650515533718412041996813374900655073499323173388850473474357732191164447590096900278850980581667998004703800812477484133155850527478921244781303333772431877354758038202557667504715749194496129633262033126270071703890107715873850601840255043069848905863484480142277294419651121680447037268383247159745434386386740638350885365961487576598248001832312496669372961297598578264664833469378210942669247542203339809995553002249658392062571073661748053730815194269181268852810421275351894110009255419762746776860978986208658155294541174731195854395281556061466052716943000668268358711144403583481653656102157364712712060731860591896787462987151993553311921455253410520869519502113650696240376694536972652753201326282466723989442866633355084793282026633547266348135818761125516700986175819108502047233397266507527399395000394520320125589169729324774970291831539007685091222166177480915733342777202342215806074818181099358158822785557214346538457624488108413098503859067509408817820987078400109129469310581609170724480985805221551468081739722724052439614599948524804818383112176656382157471340360267228924819013376552677874718472356482726746643852151765725940969438511009555446837530324364740739933829625780109735055630194179614179162593989307135623536377745074240354075706634851647384379612110327916319777351705731714367367372032643362084123823025413108320348706715903498145285378761131013125587571927092380933964260547354926285158303542346713669819109639217151255874739607426571586950486757786102801683553139722676327718124437448189040204822499190413990759870757702812492306061613234827163010600963213473725739262547399390318726724878102466137613013900530615450059027911099227980761319096859978731041846195421800571263892371181071278130391378087844812086347144615125025031518988522096713961822232810327456168790596790384243798845274665784178395062171660739345553766469765338548143658333574808548611076676365041973624756134445631384853823548036845354910630744645878158027840984148789743499262078427394679555661215710241190753777796927226937119831768772437007584889414886347269110480863953021694334183236516057195540305404967547884198098252827471375871616846843384215353977171659919983335965145074800389421261251708106795459088298039149853562044625568077552288238690500998740474176596381848195682811179324592210416225248017077722028964164268089750430423172063335199099164545633809130604908600881524626406895238531908486157819231950416048060272724246162222591677147237926448944119598375835579883746577022117594511332546862574250777058329212162344000784292821619332433508957424761490965194565502570983031955458573213239852821624186853614814425961696229282242573183643451638794623282048971024786975991188990659555149988908367134969810951545873388378061152044457582691082446219500004349605332220373048262836717596852006361394634025938763935181774626981640580564466189779820773818074367541647358731038713076918860052895233514982223376431978684212918532446815459682807986335337437783531387940220759363796477224116241141038817344056058815142379308931274227809374021074571316066098070945726055992828295378437505075316185564806539360006408763979008751481220879067889785482789504168069861712723948786797806998030475242435875748440451035832461616943845733398396610463861420769121762114109771591222813000943106576105828159350453722252706504219511180712470852349912941533318569022823645626420699158960149051484904939442483882737122062895749344438382554751730770003363407656201890824105714169280232402497017510403797495895783596798585737502857031688421125165972353556578021213302738082288063941326869105282501726890212651905527437909288231228415030646864633204225237119735592366109469433433163174441807629757427233024205428217568993104584507360008097726124709735606933498024186564980763668149637305699118558024682735131207403841891650286310999716619704810488844237082427117516413367417354284034955305017650358790906329338175148960560282899177011365170088635432964330345123887355691397222122791736934292711627236596668838314802608805193859163146998686194829193465399205546088693086264159891412908838588425062293111409765599416471615619244586878053125096682858511014795068424729406828212947344285591283487949993158761925238482689941111604671512982848143781642380336014814995121580417036862692122649878577889230211560447622141328608632753263203962474869529645354761894571333524044925427863887643745681199666081168383927774005167848740704701582863286857169738065289066875769902302036540496079011355142599080511519995911508636675918935302076983681528550538678696414442393065191270342772734856987514595192345715793080582569974980977522253694469345612232635959457827312335622404711669937492776311477994774743565013365929972988039980098303000814860852643425626255367004057065959838969795188494544988019055403972317896202380042860587030991334844449251091666972098842092561324232381144307627417169656351777865939563208427425126329018876856316401084099028115479644843066328964427799111757387033125506918689057159470380128681602100574544471011898701968842808536615274052228194416889032735824796594990618387082672637691799808705919596198712632143095641705631190029246099653314708052499302449604008089613304562175044415179692197838243622460349181762437640688189245111421714584596801305088052573218331992045320775924300492265134416875047427108656795365639458358079882393987620964226996943486750371512307235256401750789098247628788967862762019530728330837376001262920029998941890791865170082409073692531510560621772201401893854614298464599607725574479981593708672622776278816261787813332142007671913363808380093432734400055895238638113674321193054744249162813104221924107037604935298878435868413778206002257024825305272236586858310106401641976539634809941501808712665298703879788946298872781710191155344974017877146196622212032711982667162597015300670375352722043235295109709375626151428470539389514686177968702223539187576436592014492766085750280421984652422843012952688486624691597882863230426619917437006528900877565000410409641150948450750545953573086191307707638338525566707463645491677612888635835119284997322827107143452562165110938003150707726968812814840443641516643893228435917995825857246267059506709457480056175400475733455867170886394079689964727609522071459382022477994294372597509976195019892725556144042773551711857848893084998105733382839333311635608380841348300432249798939931732988802218851953216802998871938074399363549413453807290061519330961324634952237667646511236804027299123626502654160939279264674982675604719809527830521702088687086614690099467422822278970226839009582889982359145555830084015513016980473739685668740772705814895672995866619678936893962996036532986746541148034388496390253756150697575685014257005599406327560178634452244593930079685285736128455585078958935877987076370238138411967750871843080734454970333948863316177795350670533961093501515276884738682718978942795362343363522817603376043659743793366405086480351661839246086513919349512388721641523378191298813325820128275482291368083823889055064347510271733980012980473220902887541040881207760369231558298888071133323638772770251871484939327025080325822764611253668679919565325646406109305008712586765404659380966689905039898210459276452471516237617386412663681899260387443137792095279987305052017053116604348943287500101201427689501893321537921157195202442854005484747157213377585645152063473054091704030803920005982903113142243640268220388635822527162179899508826611489177078452473188893811520371445049764004278548404972627012774153816816241921731575086761922845286171762154786938239404174795469242035596864586624154059763626130628087348474179973571302235598880702960914598115089234659906871340283570932982784582772232436323516266282675068012800353414463318185151413904448301258095679264836980972021225331135331031051518490711335808109505517715099831148912519260805053784918681160214567102431660254724741130391941448763650640690117405126440395684031668675291091029749809359775769741839132652206235703382632165985385834808624442456385911214211596451331261506077565614724879555789617601571561959161415047969124053270260934379061035978378623403405048892058239034776565149413319045887121853207519368927264349510452997960726542422738806317407647225110672786418821931196367906441885307561666871657534697574131475210381188991574667224300992799695770882579563020630321413260370069657818057073955602923260164082607693484346524335990197133493763762268783269972087927590471653398614330941930631770019758603052617893865527272754887828773388453051652652344560100914639700135601667137907679435527781037620590409711972451380496550678443842171611492544565645841978272974922808697641823876951831987484886182492012932912718862387243798122445514831373546037196481328600779926195653485684694140878654426515685516396845492608024002158969413352535106909495090688459530466163019104422383260800758809117019181423345790428169014822372412638259983569509312008141787989123620447462267544592655118131539235157798690586342003190529250780214370346411078894490991431972075933682484868365474185003573720421310294490628902422909410106062844201537095167718881927057231729235096608043366940310032756278802139806991305542771828091992670299914621223678432385107864274948867805738639005924830379758161353569830702189863125817008442087246991140089850821078154188340806013033533867512284172450060573634985482797773988990058860452331695145080761402623806741957165728369720823231678268430185621874341395751640043238375455161222702500672937150424434506723805457113641077290444145336686973272631808797956920526912732710486974691041318265012672835448682818706941015532109840921131205781881462867558788134938706305894000150959608299316163976517152867782673558754114948215155741396553878299474624820218452154250898048510347889436998114848079216568933914675383980878339403912092639135414956907084356672749983300399067680402295799372945435280062491876965555105269857664556199096363356529928234419474053251419655554631926717761257955177568713849709276652577945026498880728121655701633354722185376465594101644242475983107787606260598770938837718333685825899085941581743972598246196623401228074801281858327561385476774602668588819697396265942416350368074980638746067218372006213415345828926234030119795496417012713839165785045027260928632464271418552212241259469202284626766500491531299606768747231873779545480932721169497915260158184153576883593835692852395149254710690494569141864219947149191094247252272640390874291228515778594715094873094762875874062138419809364958772572016954925926852250840878085983989008011419130007916281722252765184710277573114863962443866390462457055775825935519181563585128326930867179192198973841808674773307803815892368185432610445634800296102635933391679098221906081806939890931395063077730185963482514689351014137243959400791943362577537050762118258028033859400370626245184606236710904661374289534523785773831667079891679708382995211056031546243959504181332618263959510126991319798860521421081816473493022609879062304306301433116057201726158648338620826166332048995061722809063822676349118051828068852871143973675215102032013418723489401530661328462066477571496774538225393103009686866655816319946306059306297292459183021739597652280714725807726090155596147800106307610538954624576299381960512845585286757734693906533526150825229967026524250592514552800666429143431875712952518781966211045100038849896822697587783995734054852225953180539942607232082013351980468551541321755488317516562259343680508193444127683254877378937012270635950318435607842891921214141645223841897478580153201178331042371020429845894731493294685657512519339990893254090761882743676463185917280338145645175883244715956813619301024818192666348720411197516885988194809820449613167961936798308524896480842334868775924182289970426820736560840061831816800542147910276431868055439984777884421420979367076215216343239345859051815406270135702218033339761236578396895458962416070056451917428715160608338261556528260681028977741393866524335372285612841043941953428996289885166423883842887103765372435560073772186257171970846961778635066364497207517419039950883811487046128925155140100504096610791812449571955356896859984196540307403110948248142861420894515321219468416731011334969295513478899076770372539041469598415637212215717453185861674718790738954139806021893293489608601934490871317263509529857021714353657684007651891571154481355098414972178980931688442604426445340647968792044726196031419825950159565669269699992097884897321387792387180416927344879115110714025347658246115461209963023251499763335110461672046318069995858408323183603582782814899320285443220781120007888822812007096003082947791901805253725299444669083237353525418651570620131994150709587174269883497294358857678507124464395795653911902773199571842067208051698462032376198636150524709222213880153328440984325681725057915975850086669574087192024020339125161870137929051045436976839826040826108780866397653019076947522335358100730760522274391954914670728821757248587661348789531415879538220129618269889794027393239035836256993621251541794174405316844641823986341536963505571822713439643977160411531090094688337614818835323503286943767265156953480024452492406394547531529403841289438604229179856913902211565548260538582837148521628258724353864675182276647365988389691930832743582991385439721387069940033022073053660976340092660173964932654142366515652128502281576330080010896347338995285403462088852594881309141360464425540262832176864521525173692404252266852229064921873531748073121473048651942917441801889348988870059634325343157253392871591306800651537387941829859032615305798905549440722480019928052766791405396711590239567077139194635801779402020851117558462576464607002659642872407813948946036734649094740531697173749046137576791813834094118100514602746285912728928035704297934429084351761646759763463298742021084098010067591952543923802638585939342896159572730821567791316077769936446936655529529979430581642711722753503530465820405328317489136705676448390042087768542491848148466551331274934620073740880541295904262655198866094032469236775507976128873315724536400595416092140390074311848538032476208382360639699276297895028073094768667028207039054859309027010155165317720609621574715373650341008248101183893319249119034041871079395783318495838649338799777282076949660209624396747730561572407987043450059360175063839026919609854730471364578043253110182201023620776390771442925962068909458566386921206878623320647608409116583105583864375340755476652125323838983621654121684069811051314498863374973861055577396319556212383074923187473860884657266466283821131825488911041669198763401509084036591253490645525160907611677380413487349269048617215067077466123823747308426317149351861120598754003668779485387120570278415050035202896822589770460937301370839359888685995437993223140441734047693122672581741130388106489107098271480660242071810897088807380928856493145289883793032335526669458318604095148239138009004576380899192526463329377050122694112918940300129719184212296065208622001217446640200662473205438052907807760068426085836041056213722576394954690745003878766538658041102092227058747256443164272527981844239277666736422690030004174920134975686640589997798714516461504943860116067321963424634191890997828368888981012674038273404918698525318136257788099209571033014892538812706494054100379418961285716296083340331311233117366012770603540707751128542431905481349952598994475018947116997610893571661205743656972160229079949081778383795208667494213782701917586923077013446783681305692686475998160518753266168009094328105323578062049536806553024281574853384376129685879036151759843024436231374798153589367726514447118153738913075732968858426277345301026065126761671570301805669165973370878580781128532444872636484835200197675533475983370229190454656022696254350755344979058628157292878393603551289131617573341090421960032244665897305543028980566736438983832459378577562934220278872641973745333657774459410020390668166541974364898517116078884280933058313968725798940421315118437425122034675175028397240857297750210830208501537437420213953475286994285915560782342231204474581664681977107829043337838387606588032280216100557400094879109798356681235863151977748344614282149717411691453464401401098546269921578879642132143766821282901051065981750292612447464390090757472278612747326546874331852832570645674658696064479532172658373412706576642831494183691552195310383823923243987615839798184146355838255483298763866956643710505223534540818368889537727694882504590791802699779530099352860174359722147165524067811431866808621732914948442258828594753532171564683560156023156670419189988790748851509720415579280427970864008177787577891516322739572141709825243812393858190371503854729178592884811199907123790719227081254900873502804956580741897944992233365405957482608226914259625843416765352133902306357819175409500998000749424540815870620647840908632710999679038701719684075917686127188425537300969237304011988265776556604697633608368753556635206572853475739176376622246498463114983245628432649462205471608747839135880477523520267415772498842845203627584551509669174565486159619965609217272633217910629281279402913984677487869868275032266177062643293335036866788396233632171095980825216943708843895125030407943002407639521957103378668706416681299552194657175466121203217826578238162174965481202142133856036997246355660038629444625569718585784470134328437392274460244402470461177668418776108547763054695418891823634950444423189885567472916380578698285860127602235037341989268229357180269253274310777941661630761077593883770696230272880512250108487034509090078013123502390213752105269105414269597615715658639178044460364117437924104101294196649782588484300427030667946649825746212047705043532118630059791095445512476497724044339861029178468325804257372390011097103391083174300505791264229823327796990114656712342564437804405982129174578437474515599726819804296124312078685142396359311537074213286218632298650131243758550966096190584121527059525474708286161981679697637538464952853136910139834071813329130798366762891266425440456067532528034045732551361659301001398129014431405111994600417808436127644367019689644577675029386722179703834461598943806051579575303519114745223821629444429269969124787486246268708917998269134147493179257030324150131302556603304269550337539657043212182962602547346990803154938764535789245985419043862991487978630559110495148529130749672852234069673448830055578790455540593381975491365383721614029539141581616540697683831408581430312433459811570788068885368155668761533607711727344350829334689660339276422978328838483745769723628915989753285017367507688593830213266468720332677443542613538047349921708486249777070179172309906018411356970041361589307861199559742166652119033901609990750563936675331114931240839550045642816875650990031312185436037751453211140717337871198480490460213088091657764469356591727602572827943343589234721200405997678380596324337986045662883818907183995703080465698533685632550881963448850062539354746920718157758073486125891083974820142947874130406379110448320984375373646325471653794927585350923505154109920046603358547640629056005253623023206303267322007327669245413391591314933048330850029033429608459065844891392699523376770058321399159898080383379630178675209911625668251546492599424971468436502957348594459189363768590049051396458243411655804095226572108356776433971045898428525700631654713122700100072494999613039924141423689893254656358512010920335855390819557033393004314934538465295015665825117499027161079371600604970433434194997457295921114189683592666897993694474335217160068671590576240789665901196086245819483071772781910229675470736943901384825102138701216487607099577659242145203066051701571575239860008781886632081038254212141466940104317048361151531692404859509171783503169932802314975716142137440034838757093988550197228877413676297433793449070761983913175249095930411194027032385162496920106260758881475724653519905558334449433780757524949019600757976476474624209228289442667671155461971895731598828093549599106854241515733983782983393630302602133801650586352445399453348704511018999094962167573047311155600421042474539319121740116626326716922501416687536247741124327947736262724137405179713508315594582818289669751505286914267100282260315901010555147131428586119535069098963450241104307220420140294194658245501404491786848917722949019326057903749320988081578437762957748095186208639141335279443902337830739605782520781868773016558205277506334427274446806180086873396361587542876922515230254993448156572859916093526105739787607440645985263590342921001522224090865732994593770473429885812658666759892239484135705339671762228303563324877169383456281855738631735977779810828531178411134810195237354357494040319201630901174130047731095252904875954389136905687832024647148111702947155293264113865958903226789672517612926595530572969842858029784762383497169858922663260194634609615066570843313041738796746134101619145005710603479066921031110357327941323347471965901376447905448927563357509779357321800879575428991271886391584874371075381493269218756596720823000599429153794437508641371813220410418850375055330492798797057091097820847010180090817410751561362735652105250535902544237682553059981246817651462544291695533092681002065813317016822050492208243697805111841947305566165570171955745790365640864538940149010641332765001558496484837228385110048369135351093377193753459332188792465688126585736069630475132092985900485805508675695560622586864872847397538699731878107937701715235176226353386717843771186679659443791712601564231442444480561108020812382868871839510854675129761207503444573142664194581759263300366707745389542647170020592013088700174230808588294327487772900379498532543123434490695548906673208879072087491795713074234733938729184159440583666024872040092068832892451014892478178078084873927286707183220265648376579426639355812056817728112761555955233909532141768654203389619823809622187191081670103844971192967697995814580106668398226763126909930578303603370499309722966436738268976192263737107481376884286479033003088770569866582156272137245115245623912711488189818348561159040235138692301668916331862978612871655172989865350220335109561517022874371515380588232465380330179168585898860761681598369254217985557422253695503180964070291356446797446724808811369207654879619766262411265242547572964417720894187275987879325256854902171036364122364598062871955558685086052365678684109326157484456240211722080972154871561860723603382606020601387340113196215828663033681016738405281026883023039687807225360521636816057405894541971096871733056135882457110753850178039740327817108359578095890867635463839329395460297866431035940043142869967378590768483300648737784781725413769045845926696198335472519174073345333327280196998846101256983209970647239883342276979406192147430993600431274488467750832631765443823035262027087564131111273862043519693135033082889590180944383551723635886922006391349964554344271889594783097200127588784498194855765233729240404902960534951758188104835420196578870109741782604090103803047392996896856459108712463886776164608797075717095033134275815731942319197623258368000182729820858818766070514227338553019982791143402093511261837321661709931322738733909534318423914376122463934626714770120002308677185516285810492392664303840090701793174908286153678903062958486326694940091269203503869828062931746690705792695923787697461327156363798806722062720916869957768343142399355760372402103804719506886252199788715447647994002312554703915675816555608337345866312157595256140791304551374874163139969122505561599322023478673991946846488772798694232901014795127435027510101294175354594644834471267703440162921565875250825912537454502251642826839628518310680351709338421517995502993786828972405167799492970277256848347949100209426333994781473635291645050445457632927957641508585306219940637904205071737987496746004389872796721820490436342900351411096670554911009546688531981807784543660571380126448663131748941435857718655985936442480414468870657940590521327077335754783880470032661939334370718252695165038960990715174624265061867480052996711287435880956887731695102718760273084153441054127980244017175826487783405429412747233176768279649551243852882479530700486769308361987429413043039230936967016761583076166170720175446996905673491006237010280560164029456077444810770501909390652585131232002859607779773150196559432530948891380097308260492461400521201723789308802583094402724836231364451723818328292110385684343933039287406435175291079575716999798331607274208940707006545416245785700948103332525195400100995637500312076961334797908212292039800372623251451842533430181765020400721574957789725803311186828119144684566553004131632426948373056071932675430591656115359937249625439521750782612207059188719614514597283498744665543194561600369275722312470738264687993657155111627540524674414732154887639359653109918645150527610763092182806454605607392505036994274114378138070392855473013699507410484554473136812970527071486988520692205040601264957828211599950683669498052681837332379082484966859056863718206238265945386217324370572363244792647592687791854724178949032336123707720836531999904736174761219296627744337622393629369987650171390966596794832041700759203840245286186997591488336353653702184103045224195253193138408010656228384180799849861373703322697498529679447713732195360451833259094641371133434915876314925778413777560144508410212920679442491019904456772910338457248307929492415803992829441160294848251154797992207534263310317476707011136323810386501291264324138341438261515695978705299799520400249853369635977017437207015962761829044960326700087698343480378652581477342293240757671705191467804414475291546668764662979632288649699490592490680548862549733002238427479956495019030421582889323699577803353425557001637750661976209967514161113398661815162219566810186509424954046287247637914074355837425533155389387548036052106296680790616457831714741961856067973339725703127282913233967162532398877893137343935570714915210098585317519929988666029683075435584871709201726111699839878186400666245107069659602502899581488902866356128515750562248520812943112401890072904360614150655531864634864862837010928770187024794091164436662818092051642587152311296839635268252107919611315178437200591553804095528825272149149367847131528427148050083253335950165189509179245407464886244374544920161643235182010336091871565284640735443065497945570536485759501485220406250957395510726422944255990675844839052863958279817945416943531088811694738339888490072452998358861019581948524923918281944225031035768579160168843185289815386872273971294366165586316010005103698528943011195733479469202891542153711230380198715630814906108623249941171013250986494914551424521663470433099490743347921846362322041600083003113335559824165079856737708513282803824110711477246297874757241399087324658172240210899526446748091464400206128264909842228323458834910125066780440458999711326063002600945851963962556603125180976962943528599412180505484900091693516331482845199440513979139632199240507792046898994070485147470347562155691470599634736751561201869998708355685631131063856884503126931140496221490912488562031658661400444257574388956437456453872801070746510724802726666261624228278652110260219995451535330186033324495314459581680745055765162589930642466097031698407251254976422108770998855364508685565890972113267810311044513211575945714828976466510298991784831499137454191128678386248734969307057705331392553383679611397940041040357994755331387639873654415693169866584588735713803456463544534340082854691157315299599367316253109575573183111580490416385604176465555824833736240620990877240138168177502846808665349861810850343673644624269801323110633186563853203575986221360651841449505004219310097824766962776772357115260555556663492685528571825523351677316271470053017785274858631642365240620890978574878479727981862567067347722469911557713406769610756245017755253298854230029783123062893024019088870395533339572167313703679203782008392369912312620940009693994417139891695833144566422904278556340435068686482736054918289307589371391284929174390697738122222981682510448201812084608735343147109000514547884961424953136373132622335482187758249810735539771164479845012758837053714163444364257655443086863737038281087223043833942096422299211179692897579532253361706810801900587847406262226216638010010300759227527697141834904065632181656575649869566974269074747531402278306826657468320877908024045312002047947967635642668793029242575959864644013360500676863450951578815218065061393199790399107430748196506850600772750476297404543374676537542103162198227327162782460228197170307686887797329638503956037808357010807875895995954659764848954768995309297355898750324137323362369032558389970907882979897594382299009538704544626209165921214469770044608433124340195107155197617547783615046157294267817178951300929052042573203577257678402383673788701375099292485807876777272141312311358690129900017977649476855474242977637783029549059139546746359876934872925400161491434408648984001100695787233274563617904830187948566064274636157172802818635798702655660129074628721940805822083590840198983840909043522016722301619459964401184180410307031626786892869691258384480122931778693063070310989307592400895762579006731348363138096513554751272681390192360078516543922621314325045924572890490742337307009894080507266729513944259212720404354085176198713590050780603930661306645700862779954895840005710401998383323172500902813646089304184703998568165807632569456067837648554697051360569489838402762790648160471067265354559545192923143806490754123422660754783256307439719772601510065480308591885719711648410656157185427227063154537097744248872357644834517097591674510944044596997033635212625058990131053875881143702889675634634575332760044112339117129881922995723567292876032733312223187280270493142115316552883429499575856700796047360919024977985858047073811710839872746931276824989000941781081200864211740669190400360501446092085237701043734201443897482971430629270501020189390887645593510236569441009413971449603380484935366000665381174748551516036954118350884062827364592941063725365018707973420464562610970695080450790555927946058436090427709743239208496540197771499245668834437624561013465548108886232740910130168445426421663702235976194376237686075398642274535317161983622969875233578515086775292415913301554138917861605711918720881125847959511373366062976251277199836294035339541485577713270735582159401044469945083006782289258289426735234422341087658915620258580000019561197073141336119060397689924968691134060955190722204242330128544182047733159967584335455020328486741224782654476098528124330838440352925354710000363779460819512683963866810069445236657000053985726928347773159135282634293357890668161906692061513542856342414770071041700982033393231453599669592191896403371150919885959769357728174253854681775961718183255917767710157858015928017567297247034169868857705593389667251051215191968835488415239619023555878665176070808811869132772908530139605106405995640880992806697415033482907963094362563785491594494898504154857966054831338325278940992918235072676746094972914823556167039995423032701328290355268608248816083170284498271996364557847533339831765763184915805284144727172505207008933158450799767611237747167165372492468256777881629229956632346615313483549131876291390879293139626630784209583834934474543873149180565928953032821777297989566498925735344785761318118192068371727150127222965742609635152431582752389164718436164479471634186275200389504140697574357116956459891578094930480751592314451290327224076121247874870292637233416045707120709158353490835981383945913598149955194354972988159654711824794760364686641652668201923994454073666758721382900988976180232531727388522071545860373459031322272981208986288075951051164708727487167422995193838574822193068593848442363386001150559399797220827692408854791839356663853796950644929353132449543958261795983849559161144511677065964724079739509710558025375608614720019206804485450881434980432686181932734235064263946587981936747919107522917210058535681544123963677833732256410780451164313352681608629327018337005803737793274564642156101721907220360151069810805552934837803859265851493462565649849785161228599275724826245832505376696748952479340134554757151285120815382570495571757409400684356014449909733971016015608355649611458273848649713349858056369220978279234134297350877556614408986474744946829719118092755058742973009567432879956938021897922150043879462481442651886557830320615816474265384909364257537621610878528540489569823948239260701618742320168825351546722388438393216920523396419680220705329541212989116991826642508474420420823936691268887278853775022235001252560455630375993348852708789737168340929216851521407395794574294887625874704741840789609602868781486630907711380478928761513249740703207330990778576866518588600799410448278758041747528619909313814823121869393774537843829865566165931983897186226169847265228102112642293884702873276162286559434769597898375057020882971959861359001578854310578296020341135951010488579712264881292455316021298651523512992780372008674949214084956532822933666798948319182322150992735566459629754902770323033641748004313688954781389652887259962465624554026268905671968040640138581504805014061446878480130948721461668307547301734672890937403524623801851770671817829779225171784321269646505633028818965928536452145557746860503201465048077759223518038697549725643889760318059697033692675491789523530477919458528548779627240191000752281875730007289741009307798436859758703205718674971943577060445006446224660274724816552892328056961440977378330334493698122740442621648829102651898558820116841498857942741584103949896685967746534031280219266099461761968001081034964702145078706636930113455503924767777691529108289892241671015111635084384432552877452732134638213711489431230443574698053657979655796765914376052614769361187355355101840580899473076514395701433409821000827176891654026611808608744771966072899801482889916855822665585591774537148446369399330039917335959772941136626164088132990292322725798333793599240948526785906299596888530235309501507999223038803026200854954172769127140206430234732479618555648479848295535688888745229565678179948072247532242279115538764754102636110391013011259092375298008984613998717771744222122860149439494153697832919653872785775565456486520169363300944435584548282317946408935076606917562510627616820667333471596650841683152101118442113341953682737852895228843399912331473569066849199686864963511802423661271698841505557037808702878320906758471341390051538281600966878186700197065298378838642145851059053423562877805844709327181602555432809271992792672399960851145624412058136060260967128577325450395450476213372948970035378189780187532712736671183527897974388172909477478514825356299118021632934462407183205352521334499408580645047573541489802477598044781740079265713286874876427685304720185054586196832760795452563559538714433962505831761600182998796254320297413241632003105755930682755910773176419109555912176085509185464760091703498750982236305574588148632818595421711813456094779415193130567991342812420440384629708698555564908808729601875546354092236831048774586095754228625444645111615212665545076052010450539748470706729284778158689472679501460126873734875361610846061250032302676001980781185226136671172187488060137796479818625894841412501026756783568211763789707375867320253157879236810883717464402758545543786081315181163991344990135797176054787924961827008339666195006885174259838608601259873071788258152445745277170074441818847240925284945379703459139977725947554698282056362880760047208370064962624000515547074452458548764313232609403645313679614448767596715247033217641418677084685787993453422572081705353083391278210244676075112598339455789339864549237267602286045779205782451718754506355779313223641015855003614461413290180062490496306901292791762559198504400803710710127227264385034544098431076560719653113096437648414811864962780742317885342306319939780980104218665795756357496053393284477746527499318515240153429804087263955290475272704782031729874167151006647405278247504469082944375086329152518886457150294092842789333197444682903066936881970793597137704234304410728205449633232504864372587508150115207757815748157782726677559547263720902744398097540914175924722364502557683912111599127694465671879513260937723160997756741533969687234137543650943556123840096457997432283058351548943134162927855428583932198925753292910271222062804326419636730900398408506936924174952106990725676543009373961374651902861759739045781882308484648687185827499562074165208664676684916096941396819775238440177860208925641094706160069999491607872089969262104135430387979951564748723375497129699170361139811692256167024199645065964356329979919674128394991193896133155756456760272907505671612513227188392893657300055755379650036030418782189382593854023257717227150885239555174778185823674652149710069271879195978999463421186483912924804659601322823076000383521009522916458300533405408691552762027504210717739513299344570958831749763861511027365690942207684090628189531699504525369153873359862367803340155431137612602502586622694586143926216550664287706712002126751591976291789112031880755561552834215156302770314788233749674252261076198699630995125414175150134181672191729671325912494704150700320711220062983598950606434459019998044675474810426256920919668213381999868407366029962414948817539038452272199998314324536095687253631802818972963971122414309027406270071989791818823675740445410919503000896888658641334078149222877262107711967702710499529333531681027850483744060483239538325987369026046873542732185661345352859715631171983523455568157577544130178568750407828274307979183462707509412424739241714413569542886110296755900234310257013671396862786356087574933836559099670295928981803245759275039435458372910591830243554732808964422925771985453192649341867709566376465495669890219329582445808462819439857624287690234372615879135915108145955530239850669642097588339533546679394397554645784761618906073573920663595754645373537611954103445220161688831955789089306757182278283993106060953410204490367344666986438996689678568261142823841000738398315015027168609518265996101724608231600884296289653215676599531111824877026750944848611463445924308970912405065641498685785236494356628722765200729233812650416210642593438001854279221556438302600366509588800694145746534428691793832871940274208229021277057507841134686450090013495071542579553466833279810621452099627463649030247577260385583099064531562447397843512447933451570935741872125601818519816081820816934664988737098484619676626518836073921698844797291504041601272545171848034649801390962285056747972504406326175471212040549639154124183833576153031361439385456015356834617305381218444914034668093986357424747421176040899170616174515869755689393966329629175098416812432686006523653439042109096332805599147993680451842503225298981342539911394537079643159359059027081580575315230583700865499049129187228992125107620577806195242000794945639581746775229594531758142328664906882025845641958410412373359209466440285143041818839279156018410415806918265505112353925436174242192030714793312211612195972225613226182276305114307050542184736392380990495824026611236922132675325436783283852575565910029289441448549711284842974895319890077435246368898012819457009304903302274064617473481210619428886475293421366184814470635329038471148169973059618736905252280894894091129309394157328826803749231171981446688727577334377823834197570404310101576965957028604731429738098456504435802895830928013190618148867472070085962055045409719343617917681201335172105753888708817972099570802644905096152601256160866624997121057601235385124999358148069971554669684299190637016614459079801318618705003275241101356396778578374433915501441213672763059713488746538372510136866553677915897648289079896318556986056194122039153839493620665435030282925876490664824204253824407957320297451823728557290539532666489634657212661009941865114228851192244024775115986091965217214267600680022264735558335771935833808796632765221879171067546241645140509185298221947431652996966783080347839000551320455410609136616137882333268281704096620440682925144770276208584216597133041615046794870929729881058220415417931536089369683675391484698184791563895969343716267317241506733185451957232723575076370738260506409184989123273494850775711181512791190995965676453300576966549870803269640595624150313709081838905738409405067984872616130224757152481479228511455268850776045104196243153738224146401794333423122783588379597106395564180946457965955881947143366578564592130419305175625822989659441392134794049377320345037508142409143567735639109688493499320992118945290587271851664023429836201438767342272853774682380623179197523714270546224344089166350708923771130506736188942708061095487712905648828787294725321537356996735224488185512358141474684487781586721898461048844216602381841531574980534610897762609645051585959045198415780272685674218146689165112895655094340303552377220485001886511442914455337508895573606313272967328096204964866655403431849089501128512556806098600117250729488886773298730911855248638454603495560481483416809786428603801308323487234485828500509175461943779870769980643034535074522462483912085824157438447239167522441967097786526040545330104774986700437143789072765897555150464697893163405058315541310804843471117789070173312442593978594258137927751629188149365584788226782719245712437981199056960971002498372964819221796759450273479159467228928476582201724321569540762742897887388313403512783142747405857896898086528842181720218336912774096993672956742362336720690973784510724146682548012794488724812829081748665351879393081664100605369707598924389892315802881102898382845073184445370657741043709220503567165030668102157425357749888669137056201892615102296546890398712777016606648794601997519133458361392626177749693868414876545373493245839270346180676759250690190761855309703688796524675824286405738530723532090389706733737819591992450299500410339824844151364599903528617643311049331256323697619193987539747604870935248780229572157841457154461511313295701967765127560819789994732366523348520863078583791836598015025372799360091145150441674799836022009556436264756985511886123595296327279854841763641633213269086389125222843708372014124106975862573677918535907889364121632432991428801879963336476079949046329746676957854550857608190210214912166819390095656697782238112275582867858111727071971074223576015243047750513768409355655095665561384702708144475737398005809501971989220427496877475530037916683464271619584690380982167066973072225821093114067758482901106182661282533511670641098045605597040434332945400880117858267204958912330779646412615005880144114406691480521758674583858410412774687647399765343480282483740955605630097080418282393515395058207148055498642585986007592768026189257104597585548385862069111979919094256460101221430607707952073304295493828985761998873687361429831383823100664491775693710762618852662978213307775078090031588629804213149111779818498445913216939626441403364606317572494969033238295131832500990323516397170391835037674959610599200240477911921686162473777691118181845073595243051195667706622993750316393063546259562641633899731796072137250059944882662852336674721037020963466499718900748369598319131400982809873340051140556374681210937673955460993095574141008289676119766856068678495932579875233320613486029760689760172319735182933212647754489266962233478731638690948902983090983876546351325240866960929157122110241180937537489959087617095520879493360292680569821937480549274619134720190431527688701720294163528078230783022012908012949228293487128689449398522696414428308230758607371929886960023303935895954561398267398259089333606817847807767560779175471987054307688783259783229529885135298355838944801595713637477043674027807878100129917824229695754223638231745383557561686403291321525442957346408711574507486233551548465326404959823535324786057881473176877325425372362574399510840537004536181374023367331454050629353425867416682995408609806393325167567823208038324133432450340988769286269914535816304907561066813721527270639836175612904978699908392292660296432845078471598516804554537874116359865085413004498802713486686098758894331056899495096086951210209704319845207182647119518589888711277045898294017635809803061056567130225464419913400946282079865191079727044790182828982678403924458073956407266958504507872129114557379801683581520923455378297372561344588759677167947336366024930551654612513526386154013571033484650881662223809560087677931526009969149927341859328735882481431730257830039570616640993637383348430421394654416686268273700839245341921815436454184795228558425223948550970430625773295899119094826697905816198037836104434113890918753337272938025809596022677894985655555469496651261889186408828053013072756016741581025997203149729194480927049581400192539373761121396896554787484753236037350597764492141768697699597278987327639950128029906312654442202894583813701467439382961865283288533020732637151240927579436535368288076446722109716978920713845208214175680332243767860304273889304065421746088672314410774172028105425632885377800455140698900748915238650738691007516993729699385189070082199351425993699296620073108340287871627461897623438468447813372072663912241212313221560078282983301158770877263611188723832778043203945206058151526337975521945731232248630016990983471985750874531786666000448849889557226397703959743995172715990343618841776443953350203441317984885143189394842974811524555059486553695461445420050195135301828510109682206164650782603538579376173755367191910305293499646646395641637142166334643807466696040834009919115164712350505688120069173078334362243344678529390468701326457173760809791404518887788522863870292191903977542955983145990716583348550391467609572222074342229449353275484492002753046277975335327403560372536398190646141943373328482468546439282779831736017891366661145611117530060883219701592256075359742486082607960958299761795443302594850158968536154474734005313572591419213092838520929963600457511302625827184777714587690231479086315070629061945310499423068188414764512541099122643774136411244968974289116821241815490681121349765779561205219719885453005493471299500246444120856894282296988898104207580195913031029661467158149399056643641838586368492031667223713405990519680358319580495664489187541088998646633353714689841277655880366341558455765906074706782514664754098432642294330308115704239439343765020240650946649837756540186075061897464151150783699106542117206760722381476641793735146954125011347057556070576795379747343084615671887397397047084160444128825740583587969162065082487503346508369023968280493624391864312608010172495749667599870520162388255883487208105121436425595557866349433997053062534396796315402970710085850147769075802277057932141682457184043072452810530700096311013604385430109934489785335304240995591438513694921355783073787312133072288756604127415500667548396096054140125718896752427750487417584922630437176479406278068218027930476847051660728198694848187951540089923072382854961821124910739834695401807380945820191280430150577678618179186655811498106980397922772050188389062599313673767181403944320755945826327810063264025591998489054598473301214981620073044713038983555985045268371779874677623060209578795056722986882655274717028142842845416676097895297720543181755210994865509577410857007517077434610122599700865506923182707118152997635162395835404794601654184366781836715259209701320199684766766956176880655856740723224134368501760734340723946700714371846961585248906187121403316380986246202996270111797226606920210017656836630268525460269131049348333166324115284435432417880173631479809748213940658429751006655828112494755380066728507820374478203212826217773841049057661074444755428765514035816336660027801458560497118120799628833275933198872412399790613532762806478589378759971184303786744350673423285708295847882808007991076265439274812862100716421475678666947542619418992736945131719054052564193215649377372627465059436251268148432426585855340249001536464212353848379123557005525390579731516836507298533881638036265933304626908980438829649630443398626453378815216830104744926103229718089378388622231907696534245815383742404377634500992730866872865731374517188738053081534287956610893094386547812091906678776637765275457256866231599553755550307576938840038337762623067039196920699349925425369782586743483503764034978689722628418513643018350740572840552009521509665369793066557209253002073589982736529461134122305662455500697395758989462301372552827457781170837493298661632643150683688953883113099034264600682322493613752258092004087685469120808898066231279310597449207742743872766398933788978842853967873864008651983512796320106918320751759378512898062855102627147686828594637526304061456125412628800880530238140549882237534618064452628227938024443172230392357372251652264695362880711311021102091673181081237739485556290257161573772385109990170089748157690278707922293011121481163201079652837112070607928173414882934100770048925120032119910318997511943501119331964807531907470548678493203294704984645420382771761906456980029143695474521854681221944099946798446908647644772883337281301109677435889934108572911918275480201097751924681352714069359723434688922969925430282472552987831153101721961600767413244006837630028532711563791786765369944236602684355652135195557937270648830823790809731774120527841570954515264437395222442446913297305557044845672570944779784941585937027263867573753664757424117215391063380004095880684148466447180275267950369242201747421816700244065838178008395938649005319519724907994230952365845824121412146979775448000175902321085163875357205634698333995834891063840571973016021916598795855322010543476602605751745672926233895678541322839161084730768880359003043604621440727414764579215072059442028351247366087413034267432041401307107845464845576270766530470515762730414415054580510276180997297848792150158689847607300709239550161792887960054706168454346223567622972391398471343215389451174574925914229297186724816224090479959902534362147344752032631994009299614744106829218866170499738792304463656603812032516681045091063843969114260124617305251007791237484553656364764148477530904303658863036176189254325367538248152258689703023272328255925916583827826442298106673270532727218092977599869210318486347466020547611068804753652129701635756290337072325564708794878544601017993464563493181625720080923275256134837674578889009963754704215395736740728941333350822343377823043517339965393971739405679930320310819957584945724768952214698770738178823379604803515776086506284649824898870496352099506933116207845436637152654675385212057514208882001487701160135564876941373757674293382209613473466063355074042977984017643982350982870778362808316028306034593798181820406468789976598012130918422051874270934107010786273578051299954063636080232564740314439485403539442188793924136040167394286213104671425565516731367635311387856281411886170650408034098697182013788265119686731700932143214719680665163982482402996304637509008739934567758059983704860200013360470431658973553353122239590822626282221015980786110000172997841281586736818988212363723251567327887544022164153078135145889569079388628862908147532969401566727936966802229653941870157175736986940383891764501666340709301109490129228338825909421314654364347749452518947246923353608316019947522588845608996231956714366228333987671120210717892292134509245512737079130255231737937444022169246064881119690312487346984970596387668623459995971213144459642042761646317644117612707917099197993818393983470923241233978283584660232769939001892813694496808514763796995717870827943609292783785092830915884589832991545709097958141216855828531064151139663294714462131933447938484751756077782478129803600833711373108751153073177136623087544243116148860691973885226826911135785391557510505732989200641656749642143631096323868607120623263437538582956603760304666431169277262110741475889728151816288478779923115254954989635190596911228179368093971456953172749807474203099123804338572510803577393274501328738546499818825633203216565055990344684029809414429516439093605041917105958664567723090754710757383677338552527609067943444446557100662388941563326255880643706964096162862471292547278676400385352332685365590295717331883491720302353865433339692070310520996488360124720546352548376042909882396554179225605876870639779583704284004636361120380582200589091452558577390516732088184762581434861380172952564259029327338504180936707516184420697143088321783856638291699298276526416491770466363943118772400445046516500255792015171345130610302794223762069014739986403170044207813516723290052180788890950103657764888331087860594856851723425073126038136552233844987810311205232462998729613473500238393978680640735348736314381508336727309079749056054930571450844179644340193407270457345913610920686384579929376878702374327759852432156664989869561966358412235281312897158559889400519651415325603553258643403950386800152338032665445768346179467655121764055775189959418172011542110510677485243295408540379697144714922455765256530000731105491418587353008406000488951602611034625209032475535672107496089073434651457819797915365420844718734980037352689779654161690604480756599312400599995147457756360721852723775344165386303421184640678049962953577802200276153963102402699518471233615564675780341663858949732974507324178280903721208035320360641445261110932675046053833244753346264238822936285396683430597716250317620761699591851077305771856145681621274202217637704952632070640420239896539033449988207104400787181181446951547203459125070625751618404995104399756098628959346087146679271127731100460467747729357230037355700665439826797807134875034163911110348506348575527893061400985743477753930734688663652414529179678862752356419291872058886092201520216485480561935975716423069173271613255068284889177443314785641382164610945252909898840531511389332243941857087846158287405579521288756711834450204997317084668053431581119333931111046106852858762546164020491538979435686575080246995150158699634980259159975065019847253746601169346967687023450579228171739575355580142399147897846320804881598143370861985342180394878216148618711328793711136947923692408633688371019329542406448959848077582595029273932277008032309063624245763416476933373146090386884012197184514733521650740356297816159039637205532245304566073379029155266195288603589453484983775861963690594082081379044532428652500462404754064205690150259042674016812258695504970502117505555078994142911722267616039969025147637877044480615626903545910216605728705581286920275880396912529193713383143444798966194428285884195775375953153442567038266302312057922029231988871848836052585100736418719652363271859033357835644393225207160146490554391259270386963833423763183065086408977119452234391664966998175174301163256171531215220389812557166012133968787855089262284664784733333900790198391610518098816260276833707660829106780046093691551237538534824530062996367995703916380851616191312175415862086949116910687479910424609991537792017639952547723426562348854916495145096753892183774188538497152099917143816822149648493969253930349503998986334702733660908801801725286520246221780128641190343800560714785565046481235073561831293169588609252052616350475186982750579547396615485977682704766751157289749482424751843946196994237224230410590938332926700604180892720545509986127795043958517827589136645256952879294574759120513425357395926274987658705758201108011514236599141839631088852295340625744442166271708007143147908133705140222877736658582795507949021513918002039720855018264009350093575389901659006061437345896149388299917766398878568964888402204454860419645086693662086583069353679635472243906311255579928081300125354418185246755872386998693367058022857273199020600241884914842268646411638814191483252777627963206375694176895404605447036176426087673123103743689462620524628989554250429423735546831637860327594327334652440770161946517253898854053067638835946034997842999867673904233484021381521733487051538322714552730843572402957854992229001353016952695156553711625986212436785673424821700891599507603379339131580373948990897615086530970909534829305567363729925938270210993761317753542614755357179407041079547301988135292009808211288726196267389357678929267629579432399995445097459585753958344770239224181689207073675173406153826282913896237180016847535233931362521652131343501249604544731904552043835063413948903328120051201723768487196724436903086413839696385003590500692336020490637958663148883142855112790373752971152184574014348187565814357048162485120799250865875788734253290825827901034372402829942478491899655959296204997170861729639704761619100432450698232909666223864880737446811358349787544367798309657957322057731527466342938603564108661188806548663365664743637464931084034737409456278922585929648381335119879158656143974511724441738471275970699624259071924933817620341206723163564924731770053259245028302520798972977739509803369346044683468631460325282362729473550680704326816831991479349624973081898719492962133074009256858207815455642509216235504467355458086651435140584739226008726197241817392605710206873701890349923445610037646113608298478110684061771037965505365938320243256440172262912023907590547802451945643767411677296377713506743444456088862960243107187131086229844961684043723110233335209007768156302912607859252681502586357873662163846104076771609077379702894510681503330861684932341705230608065256017929397074175213147895980993901323752880198172457617992610663406676340243963071888418090057300866165222939149862807982673261222948842067681235499770811526314169623917021367408397035654463353605761857607764740777157413601581515627028363489316783427168190990691871699832822345938876245838984890790824124474394874359727661455031655437312997212496810910363112717456177956846321853169374722525287322454746462942416418557162841361567704876817638514086038118986227915798945237509379335730006205460183259841155839674482625747704182865281730994233485025537339452782093735698936244897497516094418977864888053782491503599744416020489634332903341285692663769682815839224579641315202285758768522424005088306337843837669018629588204185932107252710063823057743205621396430344410496115335149001675590773349359773340491341079798474886077067870243751172297089805621300980022576191141438194568941908954129616751346011988586102459425485800249295347679886011263199191101264135693191122352737623525060825812595673538644477600562681674955789678662092694140500624815779610819167355056730351699410525678252634348825335636781568836053867787153788496351011950220706547024863347044868273267460901568623763903937554324018498634494842486654354472796055266836800149506241919782170713253804665053085283769373804565655559695399857395151403926065965346531423181583217466063391818503788626954316194718486471338801673994674582654508596095069065206788290468442872788658717785486281488278103125079526243827601138385027274725843462816996250276858909542344685191388574919556862658912439083693576317053935632570098931040760140761862397057251303975539471008882357821356617129474719493655989146373313401479645735063350074807303084680399207793535403196371750559840117569736788209143340598624998344086792560592455436928909579022918815695587943543897125195270147972432176332301484385359437525917009544633965151691215540943431103068847489792300041047082874353583928968100157562721293062810330399328758282460842076226979916021960363836564772592270422899622118227485128263149288020978281570903930458349935801138309021212000496391190500083041768462477216034721832729632556971151371423980507120036255139824022677116425948314296753909365062726874636885432668117919297503419183557269454489824614131750357343123325983627630554561624683667945613814174643774784661833205582724767160862935942677842973830925528809407234293534719520687915410344935255243980053823944888694083694496808845910313558187789367180210369746996691455145998414745129346284464189903308088323122586075930481700664951302130227532074022600088414437989328376097507510315330223248920514021922179063638145277197819219102633448576513101790934053381687345018400291905787220222196226446021511691650296777899424278054210509168035299282613827992914418873750642252498851822101742801665738333183560560860991627409156024472967067274318699271979443012301774764668451449820199944733127168340963852048400176576788279079178142339143858937388570389836502414258106476429183200515025533329787752881818264664290134481247362248316789476941802753033595484139585772740256477959116948666113405325640069148659621696037550424418622466138533592442915137435768452824305266366782794546556049974227138803601095072285691798014337025598527881118946303253771628180074627438185779822974187700697483014050873199757260999862761055183585061519544506599970041874337446510453383497331791961479014754502911109437594579733909855387745877643893436796191288938475442222874008023045881971470678598365484475328840114149531191800372633357290735070180408737716540946656038822382795981905520282048259324234058905627289448509915481840548472793350150939208020517563451814415129742452276906337384191877667146445893061264096199575662590945067530665066819204034742074207038351563269581082496108376229137707542346472086368329943864988042870958886509501580251510855002112105299014913333872824339315141411899970204337561588391360185127498023450581281046611417240208611317143780158871917556481484659291518868239725907862472110097003219780237247696094900235731820251308226836946376770257369675052149348420228168604540511810258242111900470226242355130384682491458683243093680206224997207130136741027969123280683214174609153833125222944019597475738494448503483442813977682474360290374674142384209104823122003857139094837066748636226167417997045095418644528860993715545314154591008251470355306745976643861787680600398505288312878215759375336096978695993103836777848975570119408009017927540203000098896704953257758028329156707452903654352875746873727974098237105481401087495859123122510144247570532955050821967553962925895765071806776354738689225418358115905120890372029721054127819385012513551055328090870317695218857097782407246885593527109769966168246348820862147236091922474652825073597330342209894774146265561220014262915671441087623229872747111580877535653149293223549976914871104021317083655654663188651977996325492681867195643681034835169571867768805064793009537067806694649185907568866330457745987163245496037090114314339551971341423717405824335402074673352874783242678034915748805091096135996527518403897564418029171541514520252974014769391161596794874551902784636823346426605945466614279050303746627302982783752033587334752826975943301356053799216728491428147475869241601761269349202188062948806789799879073095784503506413127243577940972416882994319952884689372349985267314869460123131773976009256541240002514192396390658535210020846850064672883402339214843995166914459549967094866781574041433769474273588949645995777318135278344218287654425737162447235397276930489047145016867276694369312516492091090782010270616175544482243762211091263091171800844333963450208945186540944994663130286080951275655895949479518364260777596958558179739663878780447299670473512286196109346068879129560025081864556001254262168102909378474480745745633226223546930112646143338573608794240750790561884987212515392027548468348364489278798114266809216931661774719378164783998375409338410754849723158374872305707986842702579292765098396106744895138973727422783198699351827408900542592032609801467400635168973664850040958918121257832467133756073439503287735207673309200221961526293161510957452192510411197373637742384388076847620865566509026119499943133555103425918316086460785883366757597857872479022048230699904632009506913193067720914214388423425084784510089852964208578825912360016656518646034755263587411669542144835591092568270023169460492243342502686435757328234758214469560187663834966303493147882771790711095715792534181011930571258874027405309676543571612651337951301734996675290178382476500552924310910140980294433016736855901060136918962064607898823587313587392393136570054660763174196846612184609301765363066135199548804897887123511100428524378511757151769489849236761495085289715421256324506311495728622293134977991038721377976703292873015499968219788774952520709687459690965480394133347721927927567061916727333953371082030347586892649708570340719548972468034739588292967513087236306585333119779885734174607664845849614767873890323992296428076388008930241861991445556559134233603878099256796071753581529856230718532170616439686737775847953837528048679779884225188435011406816500442346846328511799070732567838127353758456391948761883807248666451696761873886398877244445619074130428956326884978893598754779533050021940983251086414615236229103294256907135921390203842792305248147034903520115649212290506276716807159677282409400722306921215650790083711651724690614862618387651396885657713581554885561928354783855435877349794191370231385066057694020019799687234910057109231554720394977868521170072422540578085093139402568733241831878640565039769382790944878899597082628548513935058010698785192806690896797020720657801621241795547938626149408314521859780853643457643507190769735140050071747957917117532591973487925193060156078716532018434382004703442606854684220565069478227937165813238683200769353338982116776330663236218041942630035219299381004863257756519387204002799781729802636048539809703838912228831549342180854759079127395633016435979114146347228698393772223887799458925781851058388403105168730833662780755966948924281105702959970483025956066978991419413465093273846847385854606660778364049612912553848530243673952121666697581008579326744652474221995059471995174211994779364163688047893182248772630592801844856326543908513974470086543616721630859300220307316085201103279421929746093909014463777857372333159328285330836147481585201163819676550249930439364415958585775781551587809666980910278417666206588152283894818007446226504836948263941425862465279006252910486115478856657457139367543512678490319867860419517655618614380297864625749332849616041867561492742574343357340582113550408031213383707930592406547237956471259210455515709438106357054906248749949931719867207349636419366316334617084506843973701727841064388367624862545005961550474533859563194918116423247253301578960564512009063725418494771867031913423351551366787802217660149146685739986529420179993617619345909165955788627912840165326717577030367801872231330662247043070124856831403063284577749466573045297760533040047856579208060192324093417575101197998622055314733432038381220204804488940697970772914121746861447351415295870106352965375139099979137690193133271212557707300746409301195372993358557719920145044600216571791483217900057833786000916163133101582765588268278212889509428531566889177811472507904965425667394156610793242757245662744945628900485070774802892201234572888315165910159505344593318908285469742827563129459521460101817310922486621210955770460799437712921404253306959492696206737665319584767598031262398891073099623904296824658608015298455378151256855659897176227800966607383144232620318288134928365041973687113088464591280404943251907825113129329240225616511742223848564362468872546207085887156730186613252093683693898467575673252024698178918150780359062876760248911067285376471375023890162300361622833259879716712783989721740837930068285499821986297951550825012964313904214516574784340275084221141588724277275068390903519078949587485785562455812566408112072449048187684282355137135612842965736554646529974404489880360814943649929488929084661106086599752893583102075572994922135024662743165948760407123591591541000508723628881249799319438461230349282699712684311110617413316424621767223727964841402890575071115615924078726252743816029400447324800288269645859051060739629072958846851578351978497166872226490509480164328541980396695193161530047597091584399014477645468403703550049264283993335087230468306740355992944459379940288290135002505420073186292895345227599077209944369671098959687453051312509539026802246811081993470482519296742964773386629778533829918690421795322651164800391468972556772697789132910415986647934755486552675327394262596250443424161246851550279944454591914717227429608529366551363394579537071844016908240015395357223997067900288970178177319882680596527702411740341192233925772339416096635002559421948716189562947494638251065469744268704217127877765632965531119867274668841525242596410149257882484801087849633551725188658391488787960530466625855046903344787170208954112041180887814922410858962716385557570743474172642513145567457959755589080226241107361207873413065266821573769735673128915745428927346479501800932390986530079262475865041923069198471882342675011658114501069487555871506371036564612038432687252113213949997327954752108474017865759780703099515871300962439864197365332528825573910200968392604984344860242461130015492058530351325173531158418841205018850803782763747732572486140358314066143584318995412332474507328111603481835234231321495338758251666444177269437820135466942966777672660249448789213915733938889768324227071542466256715036502154703253779879724096109094844764609918937814975798155680962253659663141066033189530889377278669813785471223733792150262463837110808501323302939441105122922235821197049724874828591092480194788577184146008478856255003725335459940328342067205592714267960811303406715082008792785386313351024465246709292911768400289574953456807156037307235965002549193392401870481150994161754277829540737886094020843941546884960942676048569001441935752331196401411286093885490530410321781442627619539227890473452622738523337459003585601261286232863490167822782322813126774708596386088045295571757661951260547581747353142769504028295421448235651201220325392199075773299346044088813260530667179988271484280476938827433530999925773596068098831921696340013956155440022359654050222179977498084280080206193268102083774528239010760571654264957704568612304814553732157953652289962623435497975276359152453783808716981217879066585330342854616532212544584110782696922444181564757381638741810031996370450806607156183845652915265626801905798318893790947921107235305377296405393412984517890626233294628730235631130501258556176079955083197111176488474675584260539978525025666395446986491943956659829860874487943435063647383995913349728853195569592411107092233188533735866973607931177675298317553138948342732372212124233568484044756386434898007862704915066815279445776755768913078784670773010283839872774392664896277545043419849104037699684944126657282765526618439281835498591417925407011438002190093349523920461063211032031511093860417915705023652870420285931605972367943288680970008444670795170460397742318405222560745043345610475012805483988639346048574240677200722693035712661426303554892539758696474241097609344114556463307910334801172980714490202613605709012206844682670458780667086406584569973324485833846019097609607686698252533997040308214465307459525235057667685383642325798937840847654497539175240778832640351078408865214857079139299306036162272878417247294087247231609994701927573557147078514709495354345286308024174013588545205562225920988687873939161869813566576774429969123759341916673130828038193099921347505018191695984130778299293548029080817699113576180202407971847280992193980718358889624918262496318836685207293894843886174104045249685720276672122921052795224958352949998519612648146120313770014635691302602982571771431273850556854027169003741559513517633505927150402714472945080694613563672663079933348569964405072636169925796570551560825360091668520677086954819899993619388249147373451530224810432187347866058864528953256941080342046783687130802158328892231756962195599399535582275709837612281639009778612450988186926720528182242311811724437518509180442475097345961043589955515148983896476909661160159467444406264150277998819740662018555715514447508482333516250904019112338942380168325003563913940912658308838688516533541566432537891407834558918892024961538520747328261948608239903837174026979505083089699169227269623612839792275451231776639376474017343676959010278945034448768271947172299458795042342526483940555523985261181900461760915300425307157409407417399537289722726680463357552524809486554651954376479678272458335883579074124620797144910347419620316560409121905659404295002258557408263993857016136603339163339936359862171863212074104793653909595759938318627874541754493423162744622313011264441859719567360325048162119369777757973819858393307596537079428408612950127546411576927543516951007437724148823072366800630732194193064030912684036380294130817788263600328085535879111653390856759884566828129760313557503225164034579008825175949098113186465669797642835674921864645965962980622304594547067651621609485862347271393451220360450746145828415715330214958771999142526682289951460940289171020307976297318128390079954460973329008784833618395291531175718887043822540534929700122731295273230451114343482261839406863714836219954227531344315251809789907130330548853826786576953887477563676323385927378811613863376821997746386830184796214234680810897732299160733036985710598170508530774026880563963508165694779649248211089632450318127206656539790722259036206411552817819773371546406153845131656271396480402388841591244989524785579796357707187043537972222103480122661283852806601560855368558913563327028425891660773873952809030609096153182740164416399755123794493144329604962152366111977982623189437718566977605655915039972328773277122616245995291754095201996714625486594930630691262259978686800678623227963045419065101414199058418597028448605167255936888927846740762773342456672336747051494898263195623133767066189432434798301912954168506191801076792653790088325144150571107769690111925412315708605289328759319785769598772826972939938110431094811401602105230635402539239564436138084072109572338820625685459622589010475678292104323946360982422750236007817471314369513462000680969697904815333252662197196934182210582790323184207412702704389280998156879445495530506389728714041276394673699090619419517366512428602907388293907408167696290819980404254379720700543190277745454051745176967010801526905721993597863234347833012526473778842457566174134327522411712852400309170217782930288018038729697945086989563938886279393834849543662811883520329679709884101204010281049959142976926441120176860009385705655138519618777431361633632928868353119642323992566007721639109475235522927337410024763929230991263227018175306841466672339446923637463759391061297616812943803448735449418165225391412706588533644645234013964072618627791554612683360021421973005193444966401057745244138564306552233621517095003546444175231553321647806097135254382147411101072475579554077074854126514749070092462416572069159175305800535315929827378552103767814277784184705180697912755591149268990963117929464458820174724351074929819856256269728116209701463817393318596025284054741877242030753666887338683929527815670538554094724378535177173752540506702642682747792061822605532943456616456175873673527864484134171447666073014424625185397893830568329355131001715229902240148946298825298414638837500245083568519270576322666977883517384727559078740283239518706164222325764676816534634485234239009751148051426416433118015390186206578732798735999781967962810738667491416146563961564767864192336943050710742557414525018964772238633910206868425691951245449077820805511087742423270785382405483071980531802916620176431779941692380664415151453245930608612706493704334138236089404541289752988721576704309883196772195254667859176538447234088401060639965169091141400752579616803723205335630639182484075406217287285759210716108210003573708490837251547922286942859954593092435557481617938519691017039848037004328448289181371148998474154440529660880308346781100304768514290097657998377118084806624049109856519897669956883671561565809984046229041058209480422718845417127821343387159736266263741136857024486287716662215236474097447537067297688124297950189914306979746220266307909084695009344031820927785508355364780145145256572033554193918479666622924126682979799769942989995518142249154771796049403911099954035525944254744701946374598423189877905853972954140321818743467092003400787588164628111214319552661175736909378894637088567394968931558737145740511227392437558528758582092152732128946350629058084717070341330346638772443971694989809011613260471423214523752349720552356340043872614745219164733305593872229450475433956741438308384496414152896403201460891762237849367854434225156082800279479368608588756480992084694022410626901237091234409064655638392237466493542075172726248052063463790867663664357727199070882873070187660687306808854508957236150463680295489624298961287106863420024496594482354605246978465230444222679287003722691621011669105056127204762225152323520154414693038003258837031150904110208175213368090838035379603762235595468436667225981714613149113836563239158361583067301009002097376332304272873534935891778993660539909436041182133216504511625575986379605708873971523624614535116238813058159474818506184668653880578861942598311302756957734874249144453460222651244052993709559275829587502572339457171794658651251485114318448295592344752065698769873829659278272772535013671601911546514402210966932044185063115687449869069301893926144045566335912418964227559845041551791099900071901662452600237482257275261118259580695380993530822763711325043604396642746812059035901676009932224243540647687068306933998137650944601874315886565013490294326600192029895275859991722947540833280780175784107928638044196655254034888050565921667150234599053918895039078284728364116504139752775594675068962592146169273582213496915209737998660921874456979088801114423119737764962312018356092278049976460751748884849348205872830971825648585449430801201177025947541980538714416044694853925390226117779957480468379560839321894385159015843895890025491508915068110958261326593435631061118069718367492347558285647267351443819934050063026073673760595276457010147129114961103582868443317457906000273170955750786064966479870731996863003468636114508542190696439706075235651541776199675116143440203294577954555156207816910226462759145168309944246240141952538285096755424308551299142641661008725076387916806593711647017558341727097329246663558770820146230897455869692247158493922485853103500668482280915119788016646813064352144899050148084963821362913032625728374753337503973038767656387533591076077239724256665908278620789509240296348590791247195930764879369124497472099652656767772692859997280119721369173939038351538081806579097291804235922603457727774574880779851631370774277029482787273683855364442839206326900340338709948637607656711135121329794611113070536797691563426982612439397177832758535103231770152963856788423210598093916513161739300372833470858349141003859190644388395157954143957181588880137078861103882946984684424551210330465245271015208705928837187396757682006789731617721543629668083067647114434288257332710709769933016117139395737525588607574868745888985793736831874433116549817184812037689689827448459407146450597213314420668836127855474143032966965606106089280857871681329345264902052126313097341354420284832316855065181213891038898530449051881150256939037832545892267867742617863973200829963177035667895336517370309920683043505293322943564405514754191572243176124855859229154752467819986674632293335394750890235774750907494615250046094488020490621807495428744570728610967949489480283131928958849045475990476929242228900441807564944102461406174549219885545045521408610833325185002041486380647618484907766210845931932322763632468880813044381241049336204906642599095764378926210333138191729248958091522736021826921882454289904633088587788670880700442275129206213079423632105151710041784902472803659429560662326894080357224380478281840140884977382922136741476300502877960653789754100015438525057043827012441997673273781070160184283759079622824853832875061297337648546304151580187139324178516788051990617857339378491406271658300109636169987343764586343684209745679151445908180847864845711424667871091189886211499759624216270565175666094994449956806177992909598857867515417224790194668512624077720515604648005076624081499085470426085591633707188316059067318385827983657331165597661087714190643139053667172806280708739965685066627277969775323017919165527946167517654884515417121342198724347037381058431751249679016807876267792247031712464818741451692553898682332391144433425704572424196174399791100449262435759864280023376489783710004510372376418320488658890832320539676325247244092244907901962241357735102040870630005341577699251628818984075721670330741521641088807838538476220289120456080565543772997852006494770382657504488162474094797035179164315042408813186230271555518416596410564186127668565246677377523118030934348361813298538796866559936339739324134781786434468930990777269187252155233967780293045725060224180476679942190673615788775921603339971493915985659715373827534482344361148550331467643277745746868282084262654631254166502676585844991142159983924520944955662050589085089861161049174311043411509993155968978561373750841955003444744184427051046120089587470556240698156252529076225697381774143284827680626344136539792218732500157073864565066729161072968628129034402356764159006816844444313996222657657743944784724273673304271724931784750670634507838047107922539824779900474960179202393844695648886161502863498397519145519005949495304513901551661672174509977490101084732413413411563294741931826545126573711366085809468225856810111353128632417411102813297299507243727177638976302959791984687084768415007344878795648107482131322485711845625634699772557512047560055157874695452246090472564739894083097638158290615386972970883835700296935917781527008950602247104677287109580815619770453833953711600865690196156298927293361401376828938316388837584420051498674361391824895907482618856467272733560824594061937725317703879282527304027306250718942529825446154790461685620042241973071570627456647260056751608803085247031357352193227938314704413689769776203864307833283787251720092760007894523656942989559508677843182668904056932227615383994868646976107863732518276539319532882944783664163858230546018091762164306469423584644289956175898995184433237715165307858667336271112987466305996209615822558261758117584527438718116598548466581791509659499043040945385132779235340648803157922054245948586461495386797466125218899284798447346848903927961665923269401636573750708699677101114041759843990539159042531290365334806793737725292226219857446519866767766288412025459304075916552195066122077712773665563206398411653477423754105421374711259894275788819350091901987541004037244031029621354261320724724502708455897818077612335180750336887220779795038378291957417963708056640792885290852805437998040777745704068526075694289052060910564170554897094095835809909997184584852154904577859783056137627612871857968930703367069422907128954949921650554010524097046919694131376264940605322538509602219440128739575243394813722758228845737337348654521901342777488949758451442883121238891832777850361834510381147756707413619297279909193683437749166690501278100786561696468855875412719246394558503099921305005144827652515301894305189176784880823954573746843637499713092284799569661552149598379824283993457760355289705207106920260892592969793969964813100314655094887703991239973830691445494709748661394173297586555090619907409814073445815374685383183749406345443313175540755279099752279929886100274697044005362687892062779449725092555561363348462701690285447465361597008531187600795198565234909542181343054422020484529293279061150135970767390946085587494443787900287340026712962371601118401062531630385510230365714393407611364644992667786201192049386232083069760379528663494115785628702540240608611166203625472739126764442495437751604810260923031382238182388062282778417536116210324124360293702104785990447100435668600858158860774726196475899571228135348315377005284164747323985833838847094286216875342162579832749030777644378926725501015715732823866227628445973815856823407390336658148926884382055009830219963573597279074845412914324582202178439534525004056855301092675826545661253915381727541067484345710352664613567404902350848348526595802891855786765935946096665639527815532677679144458207939905635326895377534194874999024664753887011245567502102548275995289722062141711424439372588049692571848026845103344141662783786112831931387084831274657164242484440305802950271810507169541416376690950736782509058563803848875320213844337348022543458589696679984429567410133703254971567043448629066356445228261502238481735263493238879929334942554798740424378255345986163296117016245020265316824528225693795585535239519071611370669067963362884220938711425396263433904661354524496890380917279181486061314271922846576012192967065088693731850565081059569581582265985240999659487327843132455251505215279276757062115025968788233185227906937175141932331172219888102610937759531585514182690349354989580029267697697303263188514355112128083503145885765067423156329722244728757834463496433178118700074842118145339511029749284436466820529227300822445249664322887907895498459467730410598205890433181028295020724936211175261402491850502759770389333010207394496606490388671566180246374318827662442550844664796914152140310829786773086074661225621382016799954326659148888947654634045225696872702731248177961610360230311721607173978612408708149520622305569903034973255844753759409465813713007048472246949391592879295683597527448950110382965103190070544644557582309122347190441379282889910184243989930132321169218729397902312096172984431185631292859992192209066125929990392946688280798723211643069068796559517216095133314318887417737421783178997610330010453216572944365285763324761289549490755758582716710331386881974989928992512944082622750505619930659745806220357711627312160560431073187436835240864428743965118352581931154640649927271718707167013436814305603278280955574732487693549241638747483024812563868984161244698503623115243530830443407999881634653696696426039716722410348947587400795032679350356647107463321776298754481006571330496739407916827014143297812105340671943537285775477713407099613360062444386337652086744683225823268986050214019431139156343277303711139737587166587906849239523360795296495029237320363758708299970397374297989541256019330836849895375160672943326315180983997071499831153246049406415326188994449152616959012302601986975533126893368164745289094013265824892157046225720161627230768986615860775554241575708507612335695133228838530852204494908582860654346357205965521661163241751832051643269377980353205496809795828901618436201444762315878632339169792623430792078972716945129364144334716383675045741399591510259903265186959570534668256457798835729048910834129134123609270397239945676189274795635009971049033711169983337643894697015483232246719402924659679182135356762272379191989089440965664855071277118786039198942804319642701754054446757782354269637701328006384525178046708859612889413921303838231804416008953901129745223353753013481005525230519729728792075944052158867576357621020860076463270910270980107588267048542894267995002867296863467794031102465027353644888273697652789608676654613853281801042032923579649866650018708205752519100633425360197392017384933695514065279121965555978285071473240502885388924188727121938630673429671552639517724390288952889737962316704309786085059028717227267356004754348708273833381837927704121789706149513404521822842938732821775428902717484360547599793026873540699404552397857797859799885542373285800108767478982228221255610379202198279130123202740235971008784544653564123260302076886989980498161120099376603820949460803935581425857627619090309024800405994095641816290036687302257946728120378616458933089896000839719155789041017008047150646945884207377238002504141701098140045860949282570436958723277310849991733042409091892951083479984837357185536511868534302847688109647510309580096227271153435022890577670153414901107378215733124640362379864985688439200069137521193435105986838078876099925718561536230079910856671523092143354408205183483886964418256855747007579293363727684178992230648044627250908935542455885154040587756195703549193729299174006913232369978226866465149572311315831106942214890035679709379163761384911664004484458681642894492760418417453290788343902582625520051889780834310815688157799579176604855501151838460499722494595862396830985179095299383775888733926742932916233853230159363698940195348805692644083582325977905651943537104216884106627297753865264938682886489860399348354372389765454662373893882635880592608166600848731046376525940899939653513080113296250293127343159926487827178308372182483704435215807695020763763194621264775346597776431671288817412540855406591770218037712173153082568747829232524895823846916724223990086390346323367615386134854259121619733501559794771575786858872482079026373010933749261173918767660749397045318495221388569242268459334054837211032281162412254491708656480484326747786442507854041217341558603507082474298393835683744365261446903989675872737436717562130775216306082626865901104936524219400687445581749988578944221405589578229216483268130972863257569845431017419729253300009007832400704833355502558608116515906779204972532928212070660863679783740180242253043573453938340110261804587221552571796363034708085099329987638339546422991347038938956855105787758537862694168678844238717881481518660482528977256617654179983795238648289237727382940079345060745813703305030221117951456509148351811972260752517885337583362916484995731921819186340974146776717363922709888813573110899582931469376543179696009301843654747376816090342178513622428029062574506826024442261269213052845498217793713510878136076055633212632695296673652569242299049619676296435492145724006125102888161198361244877532303171548741963627236538463008723450146626261710617534129248530507217631924974494995495812290326638717788204982786021280243940749389389197336985615927344456214953731926205585443640031059972803708025936120406053164462485562327374355429659861148074786126304119175298991587225666196160931890802910305536387933491730723040399906101224041858792245285166670914632836885542704038445724435605977419599270764638800834864550008014128832441926534223233960624652944735386927914380683345116409776949532322715235908723729228450923582250367872996075973651780269172532199366195472639834977871693485460458683986658885138183796693637508794558750045911841576279897317671833189788637934045166208809796420307277057610861595901636745660863405015901354719548735659794463943136847563394824824177349279704982629380052320883441996467744989773680253157057698720455425990261244374590227348262934412583008302407666622353918945524389877481402149983851189142462086855434146473829856003465406283932059682079974025338300493592530486269311744915793101289552827234345107026542459760118690893489532356521369770566440259238928718561797952352371932852829305638001012432356982080080588336061633005895049026683381896478706512029008828237855578879750125417237581691108297229084082729390477888069371592497185413827569032157019979763997142558769260501365562233100439012289185664919690877044497086022305262958208762207187951168690972015515595592139481544376469613390775180537225601822206454795543666840805604328440302024964071503319969782575047349109015422576876951680052630978689234801663289791467127852810832288644003328298962030881577615480847500134646366367523677100231710892937439206126559446632533456992526507617490386265067439464655971077607717248400705299151323307181542305859810287809679798123958941072902077548387297969779418654064322979434438197951769930725748285308273096710936564754016437554429592432264072765665759372192861875468423861262067728269676690951027992220813069832800540415713867373968226328271778324047572980817374295015585472656859231635141257064543791044661958801543094544432748740018114480583608997071587911138265807790147913006331938995945002417327580820527106927542281800143638853509000446775312862623300263579769180978441346447349987253201459795944840850089346302923726954997942991823207903719200219508809557427061675582533648003249410361633302634246132969032344223081900945174157476307234177331921361971476183813769472508125953919045263140347759704711680629919401251659499920127296529459362004835101907827182284272752620861054989130031844145035478058012125597421705594686747003769994349543479900520706874355460337813976108959068529815070942025252366431094405492662940733089183344008546800784303487009394150311382139242939019793404210757203995258870286699362703343095881524230375611507986727079844430889835305974102723903931069289566057683762209536347159159380078959418902899308169779867180249335192714081843649366499440907702191671038153018455635126126216760396020796077156939720986589972720783492763124801487087772854806306732188483643092355416003815844351900080675070247690932005056633967665786084602040202096986202261042631468403096123751877034861642168918655859534000825438515552067387448302619840471566489743299313346784527521883705221991436026642466309467277802037069246480484317185380557636996077158686360003894321957038062298501055091347354556048288547508206300763439749194506856481409874928181077776385954441010874417329165726378165923481485070299756324264224165351317859068134435890040028109498390967432203294211511599544835572505073212717098562507380205818882812936736160494421839508117959053016024925004001028642841793580423446927329468934992387645212036363493136071561288549018766250685559134872585020152982727472578503983945783310826667577376188748222338386161116632581392183151940744012144548180277334726736881062412241068476540827849047526923412458636212556360190016066912447615653240519987797831457240385395021368204834489027190870766058400327494548176372666281810679076428700077456390686100948048883552717833560347902054741526434488500227037702385479599508795361224586440782493789379844158032576080979055379174016123896824731525355897447074997865947043247620937936191995748240271641565222123842357556302670276439822688798201318983374652124956497948233460424574660338268379186367182235422290441600423437258075619068268527588553747106036157464227955211015639951445713705638227797328731213391582458857947315428821876478795385735818618138091779047720116443664932373730711076216635825681069016413877559342802938041855700282589673810876337486448841478826329542142315331230470123143395561309673341943559962815777362172416991061236607125127282908247020749463674666268399876431660670438207479898630140488271066886626649389272935359218768503056177983513623548513869988728204047035420190454619859508102409519496383214735044675697131486257829145870199051095763179279753487192905865109811820962150431982097067927968361257357128594048785727103499947492745328206348976507708709813210054521691366834624494442060783725363790983421181086703774075435883682374358612738819755634409297290192088799638640306232722073234422058113992004810997722422284534157459039936641756311472057759737541461987349730940924752197024270108169811204111367514137740681662368612702294767373087101519484900138428879947904555318714692058742603295561853177114301207831177403966607077493521206211783574360853327407764768955303962754525701374653478525742900130400014934595463323847257888934637523143212283548811624013828394493773031328613462241066434529498919493872586503256702053966169529062688606827327194201318560885270161927890492992444880683401395922071704880334567530024333222335718079706488852302797923902493103478959526394618031432983824554101227012004228473634047845054095029624229739157590663422503813518617877483912395133593144919336509964236104122318221564762023379844867915288374062649281085952164949490466161862709872403617342580098336627812644462584206045668996794541249567695692443380721543426246436059206162644404598161696271747496051651987327495911814030209834874517737148559090568422915362197544771713804499604478131431389922175886030397827784121173280305946256899034362628874078910330394483415609658277936539033496551398860193551756869449514796942497880781850544715055610174176435805651451169432151025177750862732695548164780004359721326893410970466792095732760675729592457294086920996552825921333665313760172739394983525365740778776974656895943923850987958943092370921878342962551443834401586862750690827454336165326899973107456788740419406875462853458351247239776406837618226414433729718955085799554213885564221430065171928756112858016900359511305565440765301162480963201484052201443047107291341219669611009626547212911132248406166486979300266865164888849528730140398583189286321751844387685920228078450485497689768764318059316597269947499118438847360544824689063745701549844207418268297864252421601842691878088443001602632596182729836300891390207475956569012231603061722174778538308087350012013756227227016689342378379364995148038526843648885594524816345086289495036634606795591615078499503862700695633827077729357231766335956024443560196635538128927788335388458225830265065946444086385175192396955340409736701616827716469331733716760073128038406902197284241067574696364267995706245738255870131249255310397776984564191002089115060909504725756710411353890643970376716821550041568037678249770693542420925598655455304714620443995792234419344472603215791448656878452733102746861954521712754893773638096037793909119453981800223484782270351064933613116681576336893970969436551043390013991335757150122057033899579833106572466088509069182303634169005364628600974467425890242835064438162841876146380863270000660613345353099441275137190103250832078879483050544376291226855564038888472012908105021272202748506908126758298702756071303508312854990118385325569872734885623099437644771370683482985250458030883083518964674659230572551765609913407090385237573298023452864379602871497207147299134546264554991892510862152380290732356847219744517280977220037009488555975077592329047673655621843268316150032219654411325236258299521537894360360683806710109962311515283668527400422366516390148206708424013892535849857621735983780818710502015782079680461844608032839226728501261085483350481217230634871812961792089458415990788684355912320791747005019791731488390986026269113986169908453785006640635088990332603353968099784267268336609490910710047196849522801164938049098650296746643833833427693383953577851486282741082161967197038424265600734898169243082698454928492953188441815926463754525292622061928636867286377727676326661198138162187920669214032955131567074775933739601351261572505038227021160858212705038716733809199339147094466800707972949691597424508612768086490965762594720167299088523634060587321668129090295907248368753437598227790402884223821413724923336453642037795052605396950020273680238826598546419802892530631414431210076355019234241475840360459565549052153066956484859971770585349396127400782504300243982606631408295194551725854801427625134226580110316597543898754947208792129823199058969829200780161334498796589538231138469562394024268547492620340660807355298436657469043005394911646158050536701054999076392410433657780210897052660806803762291564518871926656823839471822255599812910996353678798659444387210393890622272058111013454049171528831041053301625787065614786409538439123311965398455856237527168631600592180088068494354358273540280011505127593238180157642649380233162345332296796758161510587368624711888453012791304027659194977994418578662009965557584811754422089034402726200803421072024776191366042090182334493463191188313005359648675620132787487576211644938821932193094646777516570167804465768836204137658072488793700403882767799323115781993397852352060880442659873049534324583942379715895551339826152915448236650045441064321182140735482215493043392472571091241263921624070478274457886125413779617518965648422994526665008339566008570431332942609025018648804993274683433325557070582987215942330784989823468741914849591580874641853035264398010864256273909663167843962853846260624789456878151007528287678184772537399767941595793264843691810433206673526619366885489309034241507836762479318652100276883308938889408061355592190954092495469085984301474578044542461568115992437963258336004297502195255237420091802345135680092900628158088549307117085563649366142364737072907536820245363339210547168375692423305439093070322201207002491820339056073781068433472774597879671639446211212708385289724831734340773463651388658677342821652020653332183303233585303634353443433199260451690843586039294011819100802101992115246681522709937584709706792924370379697840128415027119175192693849317804051192703667507563708379857617812468121487103644652597600559325575005975843912315567575068128387662366185202055370089446963933697762775142158036104420587504570292850545320957242912252885658553715596372318287396480139038966394362333058746758985523775706465715817950246998897823974229208929898140827156090420539615331331433098057687741697894633884156452046536808177488381118980096470523452786699308310520325281207654006222418028413158802817167791349950285456756515376607484196449086495151488298500084694189618158134915736880482511103368625415999247732282731978580167567501591593973461323493869471345464662352590930296724609968333602649237731765822266351293218398304421666402914432771187703493090971459425692998658543779916181848473118555056610832369783405837109247567916519748783482896919484036023752250526818909481636003877855738734583224564510199486439146126116876152718674637302050880593264551537300673682520391499041958843695428934381690848113672616873722591837772476955459360167899485558102860469218201142826751362961629685206215220375949196250444841471095533400401214258696075361065778597064357985024740542300091007842273187536601339953883264135168943254104788087445422312532121004459045828964475158716911455578720789955146759556870753847517371114339893777127427335306765807287131097631485693066705125820874081080676677178886563683057869371991771498158397374865960852380304789789846217558680310968199909105699248388110623673236044072751442034762283936254644379566810283438653667070469359487932359097652277492777690518437981424424827308363300779044809613959539870932148933783888642700053372699172695653151649716067928860590074945751802250275613411472261004314005137737720846291780209200524377341124054219047782525615579988038407534619875001262949990861805559740721400968300192348434827768306293332209953198251576606796995172024783045431272966039931298334153250274909865694824523790355147626363075972743369641415764734023329792301857775831865811831046233236760752732616373091402617730049369903747768638395820397599549811274476359490016922787435384879460614503822385350981696446308962780294362378850570772206213751560429917400868828143031535200928577267550691801256196956017505937755835897498036047244693815721486007349361056107066851680698379238740277733062677788008786745227499173778730122385964140725946993950761514628177809706353446869503181047813632039883697341065806849361462393348556099638829488430274920254142919196131272954655867991413008443319263974802033061476595010249070483674483819579124571575945975137233614403426599725110773577275871255450835757019225714718417761270408697038352674812915109042749033225770589586615586107934380891309393627092018350365085428939370864605429352954782740810832904806396622447360602067973437901478314788986753148135683333885106217609212565731652373828983864601570667344146445766560063406635079119330668386920830997193304635479901975879708966200346325519696608822053442992647038263867443626374382418936804619137120446824621899686166673945538200580881675192139949705464561773281731735941134092096361811718650143373871782628383040730500798354052438998187420856056942449047148129620310717244005242392586333656044656299702616560304363549881384107825110436549385893248700979990196132245890901390066050952604368468765048971265419705341587149875557024270060650927470164996200523764747955908395423501800231098155332708766146842477338199176014435822889118693638772573785458307889406455567756763043252151548670080735961363569691371163998310573146852381596848593197566731158741011374890313554934215569966787431683903002089558340883389005561035004800103841733385591008584106987683056077240738119076000583330438423486075661400156139858644211071358020668626066232050897428871712963343202488402399470632925273705355014926633983609914233482756313830959751041763400082374464798869786439970634023884908645840412137587377138446129282385146906860581031288675541231651575854989125907738724681798996589444805308206911233014267507758424917395592303319034337153599885874050210270257900821487877213125067973700258940830343358480980020129119525367923798483974755953617259408083321859094579856541155653453102471118380260167882227953680678129129209254172758955112069032463940503619919268074084897047598945033762490815873024231715661062161026202759704850995463771799965360978633522407747640269139009123977723491559145431570137533432089682614316177758506129435505639374405455395603240733847499548627834406979671378973321170366401507831295298368251302812670884289462101111964170986597385137621121399876558779111294960510342762236803587708574521794220245114926734315542091850031830056708372319197626158751044320941110168569294945447175227058148480781294439039816332390693966867978156063141050248147937341855578126647293487025305895961594790930334608963075166090424017668144028795888914869098929252656546557900022652660734196247910729932673471411065715340511092833701169231500979115397696028869873215238434386757039988323728439427490047399569862471653409752764547739396608456310401878911779423139818410001124353076948525979972725925785747778020579556304502014839761910440310557264346057495197028679269538310829093832696075935211589674397711967932247273316063582582434819599153450471345425664116118848426312428964028711621498473711024461137958114813720095349018095693184870656954452826983298506022787201423919292676682378687861678608245154930195183635378486959903813814870552192837060127017585349754863244295406227120313601821665721548307766423348920512852333614814521713504692344163954417902471016935207667247983680149218867364334512116784781779232879156308615843473055281014909997613004715791255354242015839092779779620126483265075897163821709226867394906735545982845403705044897659022709904159824970917170489013519746160385544190884553434221099572474859182398619398329893329250122352941693116126482135619491579541405744421132707163675962825604724982025945781916974480828395440494047144654033506340272085331274598312087930890221457458787592446528724683690804719540108105720595235645099604868338521707342115720018879111918879226992289456368147089568044211543099195449495160753588457073836770079862600072795351814123643430281421657786316141082172605023278739659602665339375622720082809341053206984111154208167245630007084928105828500794966486271410284428370558173706386972457900739587237228751268559711950449961700517493551332458612426554228755993393285672965854157990545717323797843823174822898634333538186989597676567967088184858777352363518581008412956314889939464086342224312179853426138995237727088147143949294616054805978144690388339661422842099637597127828492557559788496824893963147157230011014319399534370780537458790065195382146199474908404907672068337355563625037423834699932219695054512367341002790114796746213774054912268752988293502092922461364807748874807220824771747767019713548268090689546343165187650452801144837042148988859725771602039175477647987037131034056359620820965776704949933703095769381579047868218861142085019365160408808322670233563040015440951000018641881810499109094304250878847456191203793732234339278447652571383204890658854533894243550832819208864684237147050058088544553500977142676184398567231862701398491807291304218972696149230408742544561461429956745663700667475089151685582999572834969389175045846950063594007037373720498166081847457547697338811229354772647999036540739302449585789586020726909353547893362096987800825644489918547246123915921033495670466101910187127971463453279855507401837768829296729390356037491304886381643056100260255301841374896443746836960418952692862239989640004846643653646347587951162935075340548001366644717725491224031654274850769738791612675800051267241128218328705524207763579005605693255632111443877864028103896185630083134979831965081174262894203607798260134619737740209731465478676866062570539785775250756414316537842679229630271100244758741717393823622319864148980686602756545946276696739703124194823234298287872871781464972505626229325472301050373991446694104550780033557142806325720883806001361450763581006734195087221826085136065033212130693743858284635039685266578804493439135412288788981844847658561427931146744592516742996248116313607645547133305546498548248027298560321962748253730566313543786036497138139952189634778321558085155670320580898952219412727759340032559839117179972805104931675977528343754263040345949681904017970122434325009978267975969496229354097628241661608337092242203568285862546730684060689305230616317675604393702366996935880933642951946104101143157432886735095350132302964473515552595690817820285125233173958207298482219423620806787239716059008905190906923896406732842588158238866799915359630093019940811130746190342107635459556423446857233844443998842933284821635840770234691962023165227597923440831618098783102360875152650502462980362960386731942368309205519240895965415711353753736857792271119079022503543636713103162674688546420637870285473179064314576417439088774393231877064342450879515614313571666600776262886555269215655791625106546571905993878792497893816947150385904543280182339827806619656433259538735662133927102087485830252649880353680045276627745951913138938570171506411438362575161588851841931997427628055629829455291086212121234473326362282130990089406401901474984637750260770648311325808217494607229961162160887279150126323591174974027091211527269502129293847804206927427356223087595964903162719833831556608245421640865514388902354831607652015999547419228482555894035787674455598375412506963464087881945849618127786642728109015553203024905588625718442571406713295196845778927722716043771850251175917088401428652453694246962313020768779644548284732860534530448092837073399652299061881757045012131603407558360603535179603375273112411379270120491119192743748118984912721635772501988848687600970715093954567639984580756749973535049809315011067604269025950599485000853543475549090410611785471816695789663597076165968553361286313028638018833739429419734533614060738185512753986805313106196353303160195051222077590974336414647597812744708794610043854463834243789923214661041597065603960639153657670290497499882282507785519848493552667453487686128711397167007088512938566509491356652143615558632410254570346269734406803082102318900142502056794176912794376427005926770413615394995310467064630827387151700562719889645852603557922496477849798950585783435734192857916117178317149971611810204896392925402322161137988167847931622432894393160710984234803769982957129063691598160835006021525506990412151612159247325380229850873015194063172260734610635412250415993376129956476601258571563293893484642719183031873290574635815791591744418679724550931487297070370152853418356927287373166144531847631367516370803994505408301980277934245080259181437824105560896853518980432758742706399350485256334765490416273526427780371699397239048434365319577815272729006697421876536436385132092720121879796305022456646257674482265714837057489258583585969028426627779380845905555047060974401628547283442754362452867901611326637460385413298119541914467597749576592428779121079188953150077551475966318434969964199303443953109616045626681160530126100597324664325812528174160199134646397800717249705633008324102682821280959725954003015728633459584660172105256748225395682384871019046548500485979439457521850628088774528761721906082770887556165418011784157754166312938976294223165449436360827360424145865143153459604216133065815055724784969091708432573463288505195586932213908143235634992172989380581961281109645995284992624724880605229324546669028897006874344289160742159193217695832480085640173022543493805870129057624158976463991057899096946188848097045786187260124364300867669169881666378931434006237114207615510231424449142988616252021639917271221625405074726259472324886410188571557761575152425790861140624456240533605163132904538654366614210966431264075032404228931664628750897015718407639292113684273166822986029270604454004109021862982097570579067320660904520954040972684917106624889473967104649218425056118730285904773325437893064979918459505446975561258844620625293957747342955206759701494847932771171280821312595553582527453308236477563275244829388934337330239451207056620250766941278361318178962967765674903015079049561309204030143361981276682706085760135378101127576203858836819376902126253201429172879271057804600694921668951730320206091910939392610998783729711981516068323597041583154121948458216723540320766262887951966294816209925402199230270246305744153507327000240236024244017605679564063023254286566329320313323638555622596749169611325575542171703379212142096916813648901051166663150325613078621891790825749895835476431485822898300899943151366797806887311460290528689503810312731517821449347300831824003394970001782551046296079645947119840003932691879893228846017196853012503023196855756657581295942444190902202669387289255787384557981441946013216224220857873382926151803299742196714054018981038719557710468063638757064278534324686753958490409336668460238963815715390944864187836861265080965030220061385973719781286113260280724718014069022201864289862091647839660858791544180270380077949809058091001671283049204087879458948164346186116699617520831317025437105243554008514231178927906531871323971555373817148875820563421491203590429841445581251561229110882702007691774476480997529836274172875957061580136608810694226537251856837175434919889630605101958618932820737448069998597893732326337118426913136855639786754496730551874549117469658731800121147284056553941850207778373575662813430640225958631035718544507116120479872392335211498253320531525975581332151211799569245072179974948705491247811088457689396685403168285231194456432136951422747622145382010110479814838393895590034041053751878851145782795087711748487243499749382288007697339805855822223476232556004166413853951657844092917172366919596784654882692641447244570316825638609693453139815778988235669562562505541714464900406026996178157910436249412713396546715062657774511038900421076079421276118579999826763668153026943972819121890309663570138777495707139412085174160194745037931737873348930361414764525848244997991076922096456726131426236794811703064685269967310428605482817769746135587955429833725139642475693079983815434714850856077190854149966584285826390061411701559838331075244412072358149319879235155633028781701123438122764592086658785983627207502886792105049158592622138302929895377163441485885778943416229360544768385708113778012621293026366986708597804308534938141549038144890600874246381792934491782329773492866123725529876353638054238101999611948773933065715636089498084338002825334794420808902612180783488698230601467694822108077764891409283119924235434172502666637371418135603113754635598800847071370572894682625191820960373502074974119231482110280598555344670985844704808617286232690300783394744082748024465874220698184303195963047778721873720152334373243870203430002722242032924864703586299375276247377719722765378246605162864149345768098113600202371398140107029693622962139539193579139078587434000031025195331506945152314995332232197159985822482912949654682595397745172174080911081151762722138525331399096664582493470287280904729093848047824170002827017927860939511840964677916336855979688405144759233430509911905978532219572192389148134116792344358328433551478825504738604048659546053523119435234273138003000402795804578794897502335611216996244455678050911054825460163807047319028113485286325597805896631968759659409903265843783332480020085863957844576906964009896137869637210575474122085949430667579695100396582764602333558242746363195276927454624737562148635282573277326594125316742863387886368562228026983067217025232714724765179863776566963688479746762266740093720759153835120589185394866910237425231052864901308580669288477620047028497137732767472434555754005910532116649266418047170429463014188679663997546105963406660371133002779848687434060354033677411354071768108885350822192968818790494804716646312666073383422181261742839686832779687858894532644872238017440119746013367361201108483302602269495112990179716557323220537438019269842468167420778311957722175761127497998786691591107397750136910685555127459654960550081427361729958980384369410946917246941885942581657834760511085079427162183352378963022533309081314961885611053194553566420198847182009588674684101930441294616901250173087482238303901077362206873180916416716828422133526180742347528910640800768923645340317904928049052113281618872966623970616703268571351207191385918925663857387243078111730779514725756019700236053006069717411760620383136105723343795868059081058905569229430657193686927580604864890554843829184879641476186944735733029130534471162583035217537126217562869178538743447507833158425035742769175183745168347841443758712086911112902821817393501758087439069188329084875144879884872170475647177731029237181556323185234426094272474676194482619379546199427269890628014827374826864799367371095698014390148039900154643794044832615400841646739869631030070709859664608774829265795747928476617372231324692600840703693145016055912184145810100368817069044587054741045097365700564254106286913772946284069219303370350515726410830170622942410749358747834487458306088519669683469051681268513585789551676501085603725180816790427831410611891864349200344305898851935500976304265052048895991572624751393135828037067366894256409538445888958729553969873656094046047311611693693356798276684241588890946296978918360639455634723996835925772520476236878087787046659087327550368961063452367658393679512582673842782926172033134920015595171428871611017092664178149616901321600789602985210022049005537353008127215227094901824806943842350265092832099962042781267238230736738249101675523544948021132041937803561060413025225092721878094683495438963637813196246176170957632226822913305500205528923777209136777072528550597535970853365544701398382769517153871948079938899585933791069839578414739277561173991387060929758766586214560057316304857533170333268116569120988683223087230255014638659031161167228369597478388166450809885375214813964030491270721842600524710788442931419901244869982984134582024003388550290298992601340359050845447727522044171478391945308927476290352001941119400158055095427708164019424878112306584201784920084896561690567423701534502472095053181078969007251452376032766244725848654216406375957183639264025608044742614964920272861490671886174895231027139831655180366346541990741657462549421819560236884511800405090549359999631766857610529647865135847665492820525545616924156256509732748736204708990784953574033221951044694607777125423496379963199475022660527954812915611022956923276334838065794388173821735539920667853954502516707292430314000806294024128513628343571480911678829833175018677255499760642520049062093867557910324975021207836623935128427643296117421776119094263330386544991490926832483322510623996751760604893401796239860697008416489619371510867995906761614151843885474386013438534987998749284417008741567109981656315629306589418174803772094921711777224431497577613601226136328332216618305450781122722926989426623965466237800153299706849028088796755178682020419148922618873141610726299226077718300942365294918714964143526758585511492576733061657322277507126798000940457460449737088120443577594161164852384941721573339000039786600351901434901778249419172819743139478610777682550652652274251395965889835609031563969827101029506545898463908425415749037352399284065756101665187909196539649021703177866601252794667708300202924664063941965328614387626093387981343933640938237180725637766862976865520084640797044622400347338596217020936446685392730724743424597987358037041600001193212564278216722052662866451896807041609070463604542242901842237346900948892315356094409046538435947644192209381243308851228801414667121717214288491947694199268894190651654142054076952425381412992406044238595736362040111156716142549692683293035796003293931008118526300363943447560504487412302446686860181845839783594667030906303682066577866803752535774123339266868829486132704114554304488151994940027392245701354214773134996440181171284323611907612081195655902796582986117585931861731185820470885846291661682037755338580576088480504329293109636438827049475027535137424170162812961085331801726306069892596781700536821610497995819147331949137706308882897519873482459959695377605471831411299838482315499901552672836620136058627477783632977038206958789142805353215167382547009282470290132205630668853451511325680565815734074380845851628892395108587232307960852797758978140855026938106443724548486746723126932554313694701816824285767276355632611747595652613526544955572026584163147929168962318612678631789781189686894237390695845898121342702471083940195466654927405696931529416613292667135984663096847956689651922038589221535687793769572901837413473668107912960695234176560571774009036278936404238679216767898232878819484653409300550980688684081729139392202123508310154784014599819035199158885352951263068938296868155447824151174466262199366641032285915994627283621807682866822532148641770514950736904179976384839889827968790199996605972992581439495933601291655887352552653906485374033933147211991593173756422110638857074588311165242780067054463897245343670160657329009437841982249426330927013698239881078227195587640643106906645474445858323272691233276112668513748053218941389451190120559297638842584223159327091055653218596940694768523182721567371578428231835455279793585502651089627813816879076756283929087917423021520597702841284345839397508605603667987635982849174706742431490365711965613717198020577995335138777425541366482290332266460174862882869149343263174342977422943067259151826956482771420459841298617656907422555167238206241287147829777039871926573886594321001003801175937707916941076237137483060160557772451655337585255978266094606505575181661330241655636447723310429056431916512510468439129453019817302991560805950770342536740931107668835663606680869078657151186885617908520231511024364597125210520778562909410800018453707698115603999309436994096855724306069990299555631307381847844634968890136176986611432300474490754813000802936468002457452030095269867912073703745646325433963091634935504795754692662541414223974385396794934027956486129345528773478768176590777228377840523237169976159106750605333929282027729708231668216292682028198228847242302971111339857482640305916062294792967303593169936759513429741123015320239377014732831828243515091229267698997485903110742335486192967625076609925165975078768440302841132330356270770425764665887484232453140012679794040702192748901815635455277897148590520019510096353709706217399030795197746953523295122004109689346317020202071336290009670240873543655673959946680868528352325618015555140127653782255948769386933873261322831286877681701743731145767268371972591968271143348383162483362626675726189138349145991781157787020922682019847362844198111551747579375888062128889490424821895761658039426112078473534634657814715482374604944124846149202320392748829403368997421226011892550532179316247439112037877735169136876088021619852146745394313970993901224585009468429221559172585044794922866345055909497357341359236265538018954597950126166053494354227755054102317074466540217101551913172523356185126489121505732848941849703193542193762910049821918655596916109232768666630982880891728211040292928225971149110366562114402236191606102195075254842119764056535687929516172586754555150882216537387022680355747327662039679622368949361858234747870583377794433735897708298611447839077249350588335214115311910886684104993473068534618225894128915090773178996273174365228597729212029394722591943639085213352343872274377346084763829905234130086092566633395649165216264680717828077345333856464925179808050061088608190615823712031156877443607170181413693194231006084906134479976953726639861904262645618287246289486098838716349628429583993119335093346477305079674924989827844255886837853667522785359175441648430077625958618167522080070629477262660399428573950538285931126206158043446108765686203796946528263463752189914899047510912509369263868395955534928461420992217608999747809873995794906226860221213119209494215603664468437208560069452435644122891121706490888681046571708361888931433626846375662119891069934120806402501053361295940373608236944773460425500246805003935820835234551551232237659824143864330883368473891170222233008036286251110345500755009937039187247954378660473538491539118021323570045112724254483266309530273744491962175818868867592580645416676947145703071180482115724965090518000860945953300946295053191423510360514186930064131734599275514746479637446233497832277556932741034488925128274424145107046409637160183497325346795296673060626515769663645504511095706436169907599491607331146812247816996290589423606415175446649577367379285945255575876732211778470446410968073563545043729173186252371283104055144489876406634683600325865202804933883195779751307863934047264951423160275978411731230484009780839956742443359910909685380018343101686512825077308216116246629057191486898136609320054839397046851747982944471328180470832110438792046785119396175714019724673060070552645754917895172349457510292386638417144585004642617275397095065875542204777500957832655464766347033493610085557883758386534686094857875367464683483166472193364883631653124678405216902394747650862304016266163855915819294229162960372069480080773368685795290308014778389210486919432639919963434266998312577321428001218486494808590090040135569803238747080963669671384793029821300017055774210811024099296871688074858382644470977654076891785909453444514888678881935304972401035792232282890441417778273948272940801204168971419979720864460444745991908171285104074511965548723696375530535865627753332204809177286034586754907795840735164586189569926609559633748081485771554760011615916452857122106878357621388637911919729104536232872786943916648368663650627134184787907238002742595328265313462665475474980543821932336739770088777707404934797047854595384353280602267583983815032913211343326561140452811031631636072508359511052988822080452249923843308321952803064741912134455762726397703158890434343099505791705917533620024400876131533533060664549339484205185617965889123263824594865166679687130734829418191122723996374011535414172741000261993093508618029650817913519121738074874759717488899178799332931237072658270416377929631199073851514048334141930593619284298388438211994342765894123911291912936206029304319410693160850090617248204674098963696152683567196816818661877947382319435988271361325832306204744617217897964187675989929911951802792742841498791759250017592976381059706433516975814583566425445345904102695537541431977720809770773045111508190181846504722771812051482008303289479265069661347590607361362757680808995754133216980133705658415390194059100532714381673719269271034926856926618785637826546443877765758768254770328122585143222066206155918905072213038887866550821836550920706343462577435281913195584554399397362006896225665682963956494586257310546559386828663019286504850380025188618626415360127897265843672558180211106244030140582232483324814443483159654610904861899041068986574903496221037096004346354444072456477604472387180746401510346283408148658490079200584852023409311457899760421236796388145068329768160328181281910032813323821084914096324093047670167906665513988808726505061385499909214054877510735273707706461228017782291716369899509260664436461272892012065973054002397382691875397461659179680790119405914160738665191912981858963836866872278141928848434318818672487981836855591360657193041052546199484691620704406548885903064323631161607901790940234628333069787800351364559254040366013834287810511148714765175736984543374092650284677640124906771703456540160652016816529188274037265603559613841628764566195172565614836218865163714762455924550279311021821747876059907941505041394484449560500482930419762945630728600029362876232252524762711497152599062834686435438551412908246434393607645515960007995831810433004781961133793433957406872890304689514956094035594073172214155122883030891732519548480268038073716000875599973402064637524570044352391900590176491627254304071065432060287757149294587760914403615726284512205250842219460140890338076327166053863944132474657627652582439002286483950215152541144314666678018999970347564184312848145648402659074887019590694140405338606983605660367021101651373550727515213892400866639813332467597981687501653254929066166628546597403145708389188267724433356871221918274887338667899017413131208008701569060509287703314995189547929550952167951013777066007772814812898707212515772462314853044819493023588590666353716452146548199606677812029330121974286862978241506768560175986374737917188951582419148099033764001324082739007079711333820416787650991435971392735935552869717541644800935557726255647622399485603347146040932290341240636945466623227346341953097184229335938875016224721441662506839695016973467606679282868737109425299341124096080326072020669889804810340534427917760808872375042367729563867307670239231866153227984308253130787907640645209433164148955908192409537519070954084124072692603036761878194717499349017463739474086996250692656297142287505851025144074641946551577508569963929491515408568054649446805880700593267992531146791570401427494298868516281602234013796009207509875341207270887493117816306800539089680586888102427743106221274084350596895616554834078150108818245672098813254283526303639239076849415718593307777237505519187626620661164437529690204564696157523872811521490532703055651197539630161197509705462578431874870363802765007445561072699981421406192362887770832516391651993082553816887922661712650638284830582828032441502793775500051097767213885423127651053566358168630524754112147101332615538784310699945402878974922326563010945082564582327499798005575436777050484324530853572445296044788996642289648353641216805049707374209809173141529642742814093120449812192883757274967899502513997783457335549015825350042475001403962309858250307546077318416306595425784465648797090824703190321374017962314714821553249744117176317481571501227037363717580320539102382204845302714036472322034692841288860619996325981948954928420464362414386813246506259557293904551950237834710229304013676999068412243329138297645499081561166902260297080992097086718901455921677559804964351385141393097328438792640839633674119020131888618028901585769208345551396651874759998201811198617142943871325775150173728932903854898502623569129019004771740961496527709628405060768947352337317741744502312156408411971652949647056410456323987726592859493140552027799903590725940957429721171886903495644839704373692665174868497307092606957171590483586697791019972385117595493350263884118748858488517001407212398050450805184353221991211081841053934316049073829933333048761172510756347433447924333930439728408429839152613463873811424277475111982082247182460371710139797429691757033443620267928380453205112022551159368150701784997329096484311934558401063804688287520417477398880384521438884651533262571302052373418254466238273659119810533073813357194208869028082880958098116142422510608738769570484828604512075799895551042881573558141593708746865487053080037544418001880051849890292221386252714161084242828952827679268479240277293237861461792938316619902555068354892172110560414484507519239188895502762749693357787392458129903547166396309275711049117465586696992595305745004882134043142156923793161656417459365967620011195981157423432942999103875271842274009938465555080805648377385799352874177648160373636610201867644685718393793405086816347938129685955765466286297974192878979471209581886472506126423644662390027803500984850342563784151942903329510505737273015765956699982394474156273104097540732860668449843758666860135273339477028306637776817409090883305113761493296117198800286224774231111593919322073953066478038285521258170767899792763097432860276378692465171871367177066880125088778646679360716358315070423817962837608459390697953226439099362381491423366689683216912849068917645945951599849273946934754645796353380052075157442562861956814045103696723211938736625997125361299901325129918421249960794953046131554509430495642941577947693078115428759526301629739291907528787659399408595133103572828677697520310715303322886273182009801687855551614098859252351644876847340222540963804975811268911530557164396099314838505707534280348796976298199329701264985779439958533793610416607425234567582416266482871142637188489762019899836262830646243074342556695919897964373359964372415235918020542869548922296865750332583260864265362294132841291412582326188256093184775349089379433130657283708871681175049557949988295169858005117317210132878166436098540334050103631968995650820421038439431213899324082482798835536757834126600571105867895005918039479745675206507498483114931876893472031470825271093441807388371287068403099866002844550570346616976254553025031433796450034984505203011682862159818122746300178764651673874500036758155870479091685215699666537846817361299582302205298433636013851114721036057702331944604969595046257872764544466659766930848882552692587311669796405216458781764106883082002741698399753320256955992094055810837470338235425117099185923857593567025883086094279220126175167425952088373332142102541474529468275351264753975140653071879324618605045751392872617212161213545825282896460604600299043675646505164313616814649115592312267038448280124117828088729470430616195672494181280208234568870096767836048725741366030343808202232053479607155042465678792534723222101599980824372493714379214284087311116940803331123592889790743060093281857890101403960662818198505832663099731827607711403596795397964480043000524159325520218253908335195320337288494402821920975334850441289940499196442416508767270143750093804534716735421268707854117647710956593469471299445796079216073617232486227793433617951950488350732890394680512327641275871636527003461848235117031587393668582814092500981397717588498416591543133440536186951862457563530751968462072808721255199698683171220898415045500623229816095303225997594460988786168624354342925152222381022002980197846116657448370336232211021858255470187397466718970490899717427494637188891617459532749536696454548506649312535989588589319540675952500765510267971932867631539547295019051027323484494341604059528721688104439214389066470221509784643257811686970626745895736588895505442657496991435065862362376713533942361213768038927203733474528847836240045893037184907552179871323587286818164144643843360081181522476829752133016094844983340998009063788919402814053660087342664745608934751020005001041065335568401812092426404132705013553886223834128877183350221485065793439881956443742268328208124720534893035964332450884274257007645192041989493735744776373200109052770142904055127944317640372873351352392767643304933748870249819618790250689454364262603015039731172395675269357129055479263229991189499332574317626348672893102772883455194351270847793092381372608487442596564072910885666474754697336769795235467350702591696331083433388710851032760433999629488815018499854330157526923881702801464652617143968887855260628591870153441516693402688356763678292154988848746829980556895571079237491687762291109449709445690828659819306783359755776375985361202529152045116081867084125104608022021391063117945672904292799482315995172764310609065919007261521919041804413956908488318927004508869543652439816180285337761182038801296028458942522054019308120788911811557739500809690899151579929476060101326485271694100795854077263842689858828676305272347049737328765620168644693948768957680250118731815374395838320608143558522241996214734665706087249430652531681396924327614431919400437487009141476929329868911562861256964517409069290820554670800309596548077062057965222536876316237826744009615044454567769314937000210211612999603695631781819900341280939868468150489191013974896352490226909528732151258181454159115023641970958550618861313464863001108750683701324018268529223176865470869066769337806938260898172446098430821275368417373651662523888152727623463831694191773886908833040655448176375788773289864656190721008404700125044053665927284278419460857217469951695131621810463580099615140947151865050344506051490263187915461482088146598965819552970560757688544973294947772440711673354024315752210444783537422089189656752619330893111784468783433646910509625038355568544046542348649057200213432747057286864889850284619002067550231961892520340611005944840824308089992102864914538608068788462400170857927834604781020214210962238075231997753922287184744040525192506799478334565894623191925118751755030114066176526855328657009713836603843395567707904004728930199715536312536099251993065847474763232461819426837443996172509583422595941585347371174372290073718551035113187369160134134481149090727181421045647114357198161348716809627682607653163653667419467817671710285279282151219779774333890560004780309234402755078959929796728555952199840555942285116564389978358624844781066242351339082141943643428962820919198963424304820152460418747238296125920966524005621328361571589681273357630834536233112719633499415309343102465247826434140547334367960875818880266858827216565807863247386609343990592527924651778309986937317637935449392168264542096668354685718247619350906776565844188799083743158954923879108353141723671301928810119164727115283399586842341483615115985566121127709315428866187575403147248859610172149650761891495396668731628711315178307015535165625966590092744324160186612456697684111830854097145447300237890712193323680862041976447501601138352528261280361586782812140787024963213786380980362528133093884023282843941221985095110827616543469504866815969217539138281386451548041099638713534890307183643134783485070068593610525242069868496261333539419359682485711091929320558040350925839052764238494554919792695478638939566944067932718852231737166119655754366946116841481869512553075675325280555072413909489439411635788763587588951324809690426585450299288277671498348802220787706871744341787007284755635674385590022496312228089859990219186755737487935270952085240913836268618261998375437583346980941800025504451680247064637747470283458790051092770542772913052223730620404160150524883138788551320636197870635950950627267926384900017578026198199154586116048134421612355216434569482782859639583367246329135687775401032387893993860891720242359710558494351017711250338644611309799699628632753835549593731594521544258337275013225263266978858925910017504713872972549776920499962375158771466791685487433208418767479889322219116763654892302933572231838946553661454770175256343131279657146433677279167428565682775739582550234396587433688822859483804360012775505117788118669870051793408620223791782699681562006377414974649159940840356950717332928415842812192869790277189758496882980715124178755237106849225777260418379788086453879721254184845978012001599559489878953994785652340898449255804282231672600345861221905672630211598693873172217340292124188394491038594751646579071263827170533475628152773834334773269135238757205008263359626393316686829548947007845483851438138709720816506149849148646361566965395874738129128925055731610697069880748397615155018322547739286116575809337230350385549096664427195531919787618140919106241238878457337174342282705538932083012003733471956336932789025125109001011668721168901883137797737485960246267106326767362890699720719126520643767099875992903736387677047669868585602149066718021880501184464381024857782506932889290767927941161872175465634840552914832992946564001453048920013838327819969008127679728013310529834422047636576182173260135008386641430584354585177018547094439712671110566455559694943897266591583423973338589065838625937212286793236024574534454099144298098272701471991305636860521938952146061047846374861355237800752944434167681007821585616798930195898611902576742047102181595093130777975498823420123323505587219031910447561160514836867267288883092751712075406572451606797305770322797777731293697281095315931021658513253944713857582428375030715745929278941877954118402163184062544892262778162702314821642830533455977194057847971321268589369603824446312116183911192826850395520585329468629735313861376110206680620989658674538267616139147533237812917720219086978215334254957539052271221593455921027503022752384062534729481249236580121873095827960379869141406037012794405872303784763620776994557887317405495867202276989115279029984596236800311162532200887802299093803356346850303458230546414953167453486379167287978541968316775705657385891859117439216827027384557968758785265608574913088814769685474713718046432056502294197947477143385455871088788951785395332342475934103173399241730351675187333529844788854316937717405224215933114423285658335692165924801639006190780552581676436416941427055473011247588795337106191766287466167779569567699526852234782267000300846196804166829992323666361042835318210462877219060479026473201928544085804467705413258278810681370571128001368899301806787891280779839120983429174507465195391901508501195905510510896376143627706671842878376811110855137317174571053469466698765134560093822131186387597494461844037835033970305330598117241293278337372309565222832028607655284703943546141872493612180269723357377805587809833273496791179099726443892104791589342851968274260793990291654052036851491310532829619141872490082468120891528579395812660582246867387090181001378454546913696889827272313912239193993342973542526295661418519826085572106483655419598061304306273674547269133553699367039822507374509571493199390887981535680095118935241680678112330648709483012420428559769582455550583286681602727906843600564538879021137263921006153095226348822710713422025802110270509932307923745466754906780994471863584739045042509167615966441554268475277630228338372975217455388460904754388104086262153025045969299715608587712653242612096612936454131231752756168727146153065345931220093080975372828847061396017497429482677803891292285581905764078795131710904392365126038847930692670585826567591339310805022855008935847393550418436920151125584537000053889591915140138662956669712839745486135227880539299131748616312253600653133364957271009431225275793274082973647038996577321638535371109490532492635862440182672107650890812822780358085863199656771597336522334523776611505018367807165940920200682386091475237140929876626985214479505782200137000479109058150421560118769538874552356488320909139898819167870313352401937234087890838695353461652474706172893390636431004704902021431063908156577797195211942593557792325687057409836705730767125106565121028661749138932124430944586223623083811455574440779233812856639031757528405094071343560775465234949997576402236997615667356149240855406480987187266017835932047588162558439454129589532391100193498311193804788994639012014123567528959085333395622623975088710539152666443167411465560416243715202450347137007325216105787162457627492291434907411471980158085987451149754351395503086524243168798837801306522635321058235501896786516295521103096535187956886905238746548424789882181019194897520198122266014148774973750042917971311642325682700318346366810427228357255666650439249841321535795115833986804902562255458242431098635479957604013833937307441603755399626700844216765605803722693813469932501601794524821401584875938702511028090614496965041862880853242176432519344880015169704535548570512731092355213138820704453326252218715529363372082611979894399860887927410314135477509159569011239362742328898137717398173085720801528898897840982997932435167026166027243767513720872070498190459469392411089571274404901669841061879418639691698306255810747631042391319258635861880461999618961794044077105880544047354005012443597053270316015410825283724723318837353538656439625081829497516706568892309492004384260260553779515162785553580586043986611349395813278270193271928669781483036766845039083748160723948666894838142009414406173164423829255141355108599141283739392520734625395732041882785013883841383553587734542621701086194975530901369758201676911825228596328169246936375644161263559172074419943313935477310890852243401004891905952572829001204719006319838888442224655291644123039051162663776783308410935527740179290912495414005979182202275931127704792977554725021812193956521535395541957461193840432851278465955136695341308585480898276492421356488605537253703846008217885650775896585070205806682459190082596412761899370241878954690511990194625910240196550602967517187149666290342796314774249450852616131824640264796211881528473404770694496597757314734773075920125190464894561608791187661119106497846056496416943063618047759099136186140342411327541396541318125801495628101801928365222310742459907431574746098371678823488251479527302795420807247080379434714195244026309359725658698783415154383041685178656271938098963151080581568498526588699089410480159667131455436363268426831922013676712884669706709733627955081425515804965302257271587455384472872519352684219135801828562742349970418603262194496611142526471133271604603636525726340052884717267863698038545865273714796780378045355042358758310212102363144930225604391637595934498909922123338361044632523468850275407422964584953807476658912150145095951309474330607891540113126047974975849736038969266136112027861681885274940855101333997205720991297484221753883749067534046773622110420935404895271147894328943867495454732417144820314336010243196489564864512339284138561074852070968892379484528015755589687119114926221110871243523754634195749058432198797632314411618578732841930582391448980622486799641258235630105461060515258396234626394025345427786380317854975288302398122696380989578844072750372376426493720431401137930568038290127235811515312241084381169265560963080648329290136944779144218475684659754254262593717428279283728398766318620211124092934573395864844555797691213192297624918352937696892299424769530012206413264706475110894832185973393412207682279712919014586732057554421319991004227269950732238444903985654106623135832511916288737360807736313759939140473173059721939605998315177394001691890313660632183331342716928005039910549287283271006316090066988811216454873160738844034823964089085410949106229645592206620951216216867617368822206980485686867010263827280755914613276274704647742089625484347150437296916707966477982586136490755855447578122761071253677941207724793989423271351766375094971374345350173618486693982520200981599928486045474089196338016112582016628864239330243872282196612775636591362607574545203075270166622811083433438788798528844401458633153119838232586730877331043681662370314710725637434448238092864009575006185239415653933344318104757413009484543720808770216637275764071111207827410444117694742871119855996336170707122163380528078993277297964102319161932838974156111048151412505372466786435338482203583283534367807277480717916194471083523311632722418652567603771986056392093179052831328556845489779633360827007041369895059097348609205547265565180889435390256440965716189748645336375990565377582948557083465024872565276293134935423506961228155337251714599136544260201081738132601973241035187805452801733234619820958650446252520956952060714820014608144100378808381107873475395724048137724918330077335921263805095276924978471903841412756460048100635295390196727715169622580323456091167113115745278362321927520237491207934725930840292081334978307248446594154937240445273647738416657011070267163856865182855984890071866042710362691380487988850252059973011754993937362111291813096036532716724195176053649432759850670694145167429234660321554903138741798321444621176640572553876406263092340340523116337914102117841309515311925297168887011252478907143257634849333050503660160016892015979586636687636752265865220039404390819657130839522317815202385772466604629004688765684030978294147499672648075094730092963250908927315986059105720001595263797810363034471434693557080370246047016642428210752631443011985059138679782046714701427999413593819248955244661119509445648749584555068636582337112714895846553482285412355358924676153435625165369507189018215157189302950713399166083340062602886184075909228297237445470220597940262294597156591264586821823140293534382785116408614859655714101199855708265420402839166871893612351930806409160672923302530185165589179554015147171866341329776291219127518147339187625754357809479492829045124877301453358953903517205967541630255748609550435746485245047049661885604834695433201491950783785948557279323840919447770674751003369126804853747975267268981459330045428431708304589841423342880403009918367757237359288395973874402574080434610830627747114658386754184953271412965358041150461360597493989883245402584144886426463017819298724723236333740607902794545908441318212987410531403619050166951192273150739445406359538222420728494114013827553081867393965046442731696986162899307847581769938014521901686377216442239266406785763109877643539400472141845062711878971416557177478081618734828821338879882342198017840165797574519242210108006354092961224161676611078336509882186158148066287097921229970818250530903380949241685053862008623762727484125879722962540034357395690029730060383691688900364993425374925430303506121185635619050437621570572664969075602021285635583158744612873419269894285429456792798544602683540166907918416573301565494122779192553219818297052588976668700291086013031235651332168362985337380646053449083402095450321758278693156676559095978323935727488777497369235318020179792427981080054809541838827819541391366257162788454236184116121052276302653728279287079374804859470773405011395342459024914131440068818056590816359528042658723545596512134382984906084116744911490412818265405332597366604862984888592874389023091317556328146706562593153899089542430826676004796317096823376932850131874866207776752012217564067800477915910727773437787413497879589619689313600346654324149236653784817157649743247252161770529120773441796609459450469429032008522951208833465080048764012230699043843668419791289289465644938539225813936971007520782365730451509010302520432333789129574756048335189961957603710413577430848674538043720035990854857436652705595859828830318537412465397018384135914260763866316806503244461743615360622356618656781939402063622492126403358360563356675659324813948748720336646464310475743246100137306054792875448537333219886570105224185650647301972264629431695390283517165188322432001118558597708476318451685946552937352257700602277270490772089385912517285936767017064167890293255261557013237359555511606363486961296063138385385805742856566550652737126758745733804239386706742542071925744320470641209931322705156597662190879284133724315708850503392289118836179600316009409436989558506136079378783482855712694347119041773424149460967714437754092573216571257321151217553713690550767227121069310219789553272727702901581980804787229195829898329046617663979674062707323928242815938325548237540958065483035718382249240881979907861673789368110937587347926916181637834551361494363770579601177474322671796655931609647637922657901613681875464345115593743893727877190146285762881421155971432139019773264563418209282205434660806818679872634206059720139066530576469492239838732268437442202814697500987819512993325495598281953955176628875996987467683359153733354520302470945028714443496656356091189310668670394973291010767380019498900910344175043960949951389949952118860839987785485307331279174860784329849945894754820013295077042769174046220163369697877587125142617374665268375436083223751560142750157026368184588824531199627535629293673958578631921437447726946365288750823541098916175055946552539467791027802319100371901190714058431415429634785888098883458050399741520838554364797749815841635045294646696316444503024454503042549274474991373097868272209629226910187329705575174009348764040314196604642059567305557258173985260320906455125549494591476241807026338201135098075628596898756397236976053902832276759588081466594664792758700191598606589070458011378262481045865204139945950067880208905077143907247325341506503890232897990914692110568958118212867338620943041814987026255748289043324166389550409078718233129739545959271976489431945859666973834675194393070565500539603133293971082418435118520110080175569413366548675022619312968204152877352076327793614489217670165069386500563488183129086674467466303048582256370773675978823318554716890082555833929629519645522111485913920448008873972705252267669086990046787384470739829668457046131174226361053960747306391964400435900629427978925062143503088499935759329326170055475619402146770651671382629892578298391591718183044098571718599583178668799278138028606111685905470940033582669603772885839015076578545234113185863177259022321852552427960768863814489668620533389853652890883971439806937287652291484960381325586214693484218171011429628026672157102743644939080922810222896283860571406717827808725734282486918361891785354305489082654613382260143482068056408290093541312029084175316278157067828751121222462527271604792741549848590990540897818538174976544498279050069229617473064297265916680606625105792272901157925320290423901007990012685834941564963969578704635230913788511496968345715924564665410122170611267520473856047118896679088603481320838059787740579058645918393274283400386879298639749521535900479179578287204958109949139089798150102622459573717691272652778817012156461991800943644650839691318100251956230162101818526151286507556619832308558491821375540869951455230098259438899359789018493471041590032973924920744369398622885528381358325931090026055361100434759256295644021414907238074827926668115863025487402614054849468478357050404406350044145359249664081566941902308994613240941118901506028985627162320563064236832579127561377680262106261395071960862864800350549776966490978424999296632651915435554312524276551169736245467523004389103117265288646895517493928036508351965009701935420559229230223706135726539722342699182916797567784886878585408551998854175675291303522743447805671501020853172740318687448547617544267140531500111906307043644019403980343384240877116572660341486451898255515617154234909945448151492502059224600648547110483406311678651772665224641320916222641512893370885475574466961523267958852736864164446797495279255182627025728384599251170293007228496205646918080423429717913502812004361471109649438788218252936281642146005752383188596501329840932337794124299553967086766835044795131047867435566586657236756632625728430338643598880377096795540085613461158220720952701410737620839408273299838516639076604529706694341513497353646674926219822708753986316323847128991608978816654615860685935557389940489980283173001586032266422200794262749315939537240008288236784237945324777045364706078119815583589636211751983316482424021413750076974675718757388270366575621826598424143401535183638246212595250836151384539662628737556579992223492975701931460268463123393552017894593470441358566090581054167687378066079774179104999541641872118994275939770911572546222010282161396877026813376017013722975719242123523202229302096876108678435589154104330906721875998995717479917627396805108857721477313133474970254530707342616658547090311802306970180164887688633088631222549662511696131063361050246921651121027155988779336858955744218398688865690595667250262898956843589287448878060900208519644160084779033138004539654606349241427973412500093684725974834459233867936164011818033732587726522297787002341936146240575817994452610440844340797204282926885533116355163367291696461551214037583291767549175316450373056082558559605491470174913446272541621181157448189611438832856573066577563817535040202463149155791597897465122483861730317034686161704528012615661240390673934332942542876035561049006857046183158125554204198673366656240311331024427383673939477813286199487727538650506261963662374623218545929288311131509097271834707685261719354887192652372425259148768173358584788882973659269395193582897225291917409824304591416074760084947075768997281290547234219787821657790013309757954056970207468340858216857976568882709044349755540285119900661836335977922915338507046421231746608586790209977477783124187828624479457337854835863630698115069446802609667946911168026472254506732806486828401018642524061938726978819183948461829318581185929274806346392814778879324661193819020634554445822684538006568400886387951466705146309797144884717841205879787076327851206816308033932818671841163577125275886794848411665255000454937447268265760684797121352877017353814480406474930992213824435976629051583194329555981224036169541269035014717082133235359233551460488678544828791392903623343336908734471623419842734827604933151682422545058962080912379495752025813681953652482976954196841851284868547969161325855371781140452758493710231330255914593563452010104684297157698493917920600659933099025739300020541778133699548860160708765448923528742492279928729057187701440559492667243582514091742605125771684823449616611458218402824436757965949565886205685777543628203515383953815967686779684163070640055310060302584441211289417597553532711748173093787177585533349072920967456896855021010221267080901742531644515733054973985147446141377472926793789456753545478038714445223300902967594049595106927264052575632030293179415593645906183627880569942012872037088279426314847443959773368425835386626988015852315549258106098431507217468449376436576430398513576995394765723892471412545087794081781882043717060204732008686672913369448931957178143851827001965294972027003078395477865785333464376054249028418432014316373062916846097828025652081379316979263400865608952193040537786287008725739910247050066035395823997155717976709691439524039280124754714306447430319209372361441338822236141974802849456436265281193901866214239741144705803598307575034900110176664311073110984353242372560334634695038845895722499046432215413967674170967589844269968683568331602530074643883877963923046961353432790388745472896035616731388098510465956091984957477837681061281353149763574968162029157538428639550935034124303563390945309126158358983749013915212197661967859643168314435827589018901961471883208942272728945833501617780230581434335667779603280436664845422171482095139226505045385911549085601592188589325998439309456266866418940378561271542610373625467708626910699661628074959736356652857817131513406746729812023403200261415482831059192606463176781401290286309948636747300632031051418186050811682274151012490238878145415086859866741215029871967808142714295103598132436403876446053389251852102787393822456245811189761217475512722682556519895056422651243702447853102234576397480054315665670990200529069604322616148093310726595874032671073903459737500240137108757804941552869462243534359780958957218624307678121711482030244345332541301687274978905150841676950908996558522299474108187418751109236269171295298435877637329167351488501438394320844529458768846758378871867060024833694496719515753692666089638928366081656368123280538792243914130921835706182311009330691121366221517305403212315718019959338727062681119273262573653530905992922179469873660539901649613324890750493773447139764651817309329154739429655724595867544689618876752878305270612711644550052212825510731519459166941305948106181710765844203599819632766992998577368813459195517757965876203524314903205064599385316509703921634685288459029693148756358629150234405013192040521853164558950767627303403463138462117923208004153710661891555921298211004140742461124524216839360732798325773930553923396983856922218338708012815435590597736725162720514763111562964088487146679767635516364404524144535125717916950713559327427475260018457887744841068782334263275910475074615782844796196276455516350978377903525522429446428834782932386815837619466411909025354287142036571136739436529482408897941218554808352841127373268188099056751520453364297852485277777998357218502738413979426890202646454048576252669370801817590884506676569613212201042722842102200388761716271467402372745072468632332591982854851084659040270433761615926934720541609146220475189347260633501344886820591968989128507119671441533231027816197258420951141141925836038383836431167991145036327903357630339654943328520344111726014007128518572257257629643420268147207220537165409108705766656285502122710142574757171886695777156175893005440291893253250053421264250387061009979686500153161692538098696147470542263576160569145633506682424783000900037432263652785596160500891498746582430601304094341228214654163500321245543794548749100184880686147217314821208935161527671176584125316866948849486236669717876669654538778890344475037900262451154810681543047196292464061896608485117579904222477725828300348730250824807154488279834260172704185752815275628433958691809099916101790344649773182523975556546308200730669753485669707545725343686655782923704022899387679367832148879475445642710370867434645969460592894446513806423783108437581054107699576829768969352054246043945826278672399290016211944812239687558151672441559861807514747866244217689334471298141015154357052360483242269300372341483972650444585639063944869622971372422370374518814176967391394180194778668858322687126026727335327460656042664271144691957630055232097185359521231132824155701600833100800752334656193254973199818563430346176759146245251621339417133697343283602940927972423694723315445659024583189201743130562666023797564272132348026562484658929700240787115912257848825268659108774023000904350983292617994979029983662144124005896093611444110154995026105152904584621190074543423440828879357723318006662865039646682932886956212481375937684166529407200191628159344141600701602399419613844334348395001337353930548943780813988693439027618887043833633846667569037248593766791074929368172850422909265820032607084862629854163009379627968881536353688231736157657247286952905641576959369458152840451289632714353971043347833203250291184629444254924967530616314061305342448997865174508672098714339117094539710704890892017495490304927867998015740118709352789966283007439530097418234941008838578313218966195435120891489350147087038252493236602418579562164394109532078967836919753281550250284806040194046633450000135293597498587417954040505540483269237481404459217045517644661673406281298004234459296347114805439202109322376220061579219103018950249100123287862484343409878644724058945717531439151955228190138488169653414850925220527701236576962413239939985321662566552810720611880229419347923800383875112980184611965312414299373024488973445632734776880196005508453949906447082812303195316141098866232927026871547292260783631518831603481492045881388165815231577330191581059387706126695791619772419367866369314455044517403189743732053154697504258673016367902206562093255892532459418826461381348136429501716400674390645710260076539633980316215746749289107082750031622439173260471820933680046082711772942478112843034878338539739892857771850564007612093880731323399381284934038411957000463435029673404826867727079921488477896963301581372089237412198633023285778397728207674434151034253678128645924548417340941479811837399697528309960151704820543141329640293116647553698446511736565967752672974160706016497840219517724034868096550442193242285583176255703633771854620964385762914675087240198627062905871663306367030438243943712292683349604526396201825000896336709792248083576794928904983877057232427258963885377338199108701510881152068280613340998790704574411524322041756516530681638988897427985482883140238759901444431622982294872485263535845143441936798188768432254569815843015707824474057551624752230122622337421565908852589221765557899108374680852727245533461940705044253469575958758248452427896687925909226224494883780292421474993073316183497138967875874164396196080257886216626064787757506552121107200600173981632390082430026531316054027174270265659738870572428616497935287881439272277764286557685685190641227548680869638992743764254857999142535007797615284703354458729668101484024576800469465896382814234188164729430371617069301576221843756746294155900987560418397186118334881762940504677455400819511228856931445629309588573878690496909202991253649644667806467083892593973711778373423104100395187072789318055192337620635749952040686995366197746283453497708058481815676291215807767168503472580741252505163021740672428755733400009046240034377892118506773846682378917612326746672181166115105911588445140358890476936881143610836900837104079156204824995009318065099153670499756582799190655070105243216608777422618447935603443275897439924164129875723408245694896310471489890944255482746615859881371748001156626483128426654657908132952587424935537053520625003205679770589014477137544985565441136552367945976240515466741856514376669688737594741836094913898845968824431999918291510998052690545895546680527995539032833968774070605830074518413022729084587284731635307015899531117195796183696101480286248308834047084696819233944323493460039012330434921702666173791532576815485490731642881726056608494431381905036184537968319623343089690530843733921375090987407329584092964004219153765669696072049327498719823710042653768585893249986277890530767961397414195564168950051144245815948266131448717123328154930013525939798812303643803947917370218984121935517727938692829570606031817811853195178843907372237197345022581828267943760825633742054733389359232176570777537100169207201485806906402600785914665087274871556423471276460843837262637949038935240052875249317694613483978811064238871470220933102730260797598449377507620297907160722611769609747321432580751808339784902481922942798219708068876135179808674306155474508558906029046003726917242784192035546120996624433730923382612075018694629729851265704387763330378385625624351746055515939131777476502308387538242046309125490440163747850777197390135024217015735557205329296747924235744933763908345941373197780027971551003948542470144426962174896031194686715802798606928978771259257674983241107616032768164588898256762842744293060189051564206823297927970677458477079598861629346006167135888624423962379727830695989591276591458471433171569675608205477137797452865839965613350076076454609981286733150525061029760899951464727723743378219461994190825027038543337415429290011472268670471991223202748375145183188744512051504589202777305791029625532290371490964703132351553683531873267202052048630128793331061766365524255971914208156836745908733475337722774428239473929208060813943716757450192862061238071548249505297562822769686010050055843547363241573515410395582780924021200648861951894917585962043644353246326053071624629462092834032936682689557630782220313130232406218816880181475645687647256159039164892519949003474125084840879472784062523145745446499444249304229532467916261665455852358762922653243247661279762255583704843794727577226385866865715052308667826754417441578424645178375933387863133386305917860847236335658040320502199958014319515128148922107464399380612022920566153378980072676979650478529501342949994769153436661225683928936621228726367037188446203896330114941460902155431885080659530624899497709257074355456710383628993351257662905637214334060114316993519350350287818009936782028413590203785317324841222583664404436043217268481965603098160868413322560245147584158284143582785994133473934890243169086302425873635886048063096303349546346250303610953421523804246225766673357987907204826430186522925530522690335291485247212906986149471779944573161521066513656589404871909717346572159267994193326478947926812550122001014270809319861204534613556070389604866482302250456579324471128855975786791116712757866538754566854866897035394519595055245043253912294041627181606068360417085300275060339246268728919087421526957374246974985459439972975178806147823390630142564273734206846767591182496336692592870784439445311566894987148288111097766205558164327841999879946631491334748300975089785288706382235368799255939062564621524791553212915326287876670255079904577150896788161694849949616012312410396903998057868093579053118976137058710652305704885886969218414933815766070102484559797153152340981248340078413756221985363830788786048110571838302204630298874535969854252279541293440082927020090654217783606286739209179518635869506751524752204931378983275240150009024730290825134017805321727715645143857681172840449707498391187252168480323011231930089522772324169608258967762508966404924095106000519892388047170671078925314940327869722147970233623513749845712453632932010354269032391049556808487638658850662165985069215319900211755430028868870745251593171542632168830944368795479368609049310483179549524704810671044859232630265083820575544845906238181773763000263918823384378497786198042697922848416463394190906825893818508793406444615059477892628447424532034185164117715102172238398478381718743517889703461890626894117420705408817661391567963220484393625456532738575837243072010528286901584839482400025302946409496333438117929100081905797214426303248614853612294667639581679121922207806803147115021281248238701922707696379335690087913130346895987281535781239261623673541651356050489751165669854368361723784138002168990483740362936850683715768043817584019926908706030344245209444504009517213397889999534107653971383900313445324191090281316405597840405795722944802368075639239373319524206454668568297738703325804726488843758254128703860545529358631293477841943314230513441774981578446556057950787347053501714675810407856113120625797192110717886756821828647753468421880351150826216829180582120417489137920932761233634398527347132792587178783286228246370147909412680718959241060516556571988005198231261775813278832854875107818559063704165659367888260480784586076001616303055076789762287265347503346521252240765163348280197078849111376021249733515677735594788977855022422636793730700580443911849402430538059623129994912657815969365003745622243221678360248357401340916254141672591373003138132179926661262411754763828180631799628417119112902300197818958465402076143994760596072083298414819159032363988917193845871504504854474299566658619018977644694540803005310507392005560405896385045127459260413638456790102182272561862604223944704698314148629126029402854373522588130395765970107572215809651852304121731166657758624721335393556011204640235613773969631492349186269799723851754815899471172964017250975257070600576461018889769270878235938759406874956568117033295854132635495726129094591859281538070656232749764375368203210656711261005184135928117537377454745891200980679953406711378797668731615984336940175161832024093814838808199073106196929791555427027817524334072702387775325328543392700942331663596303306486931600537855636896034274582909557902450383607965880172356210046873371635174824123147441321003924957863304316053302006538779208682971127329105983982212164952371855186844707093891229158662450635729521605356782133135422319880985905533040770802157582714530667085866684563246468685494932427228055959224118743628963671036627368656226238796214038256544031250265205492592390882350186153258564630495412289943633270549074984484880899867650389703343534784378348926514533089396833310608031753241203236124088359324147580901580596199988339490337288638059134769965653290458410668009939965223132729025764564461745097947748924072366071640187922596714496858838412494701545299478399269141788410693188771582195005666675911965046764911128181428720018185788790962710780810143507808355358250511554710894461747146243436813813176383124070697763333104326100529806917948688491720769380098808234570930925870589109608143110019576934243165966087508837088226004386144035928106847986261606655420759016979265685528620690198463832269326362416361707093411155024252093159507913479930694494625225418562972369962117172048580584556826207011132579386960057522858892464367632317904109553174013236490198794394909108884814022726918334524751679183071142934992966883295252210560148754640371806495736201486899160097436730157298440554065382155592992216025129821071581904851698446943024849798158381723683319722033858904444610415985330215410921445028792676374137199962208868289434415641387099866269952015413897197634954266878956714359788244111669439784385194180225977772097568421716734484780899511918258919445795141263033709714594235351260138872848550110326373181327076062281798362697151788658630295098113331334432471316378978183598550639150326009162769873177216463042583366001865476382268741127491708386733313300729897278376437375773135460515075063076515469664232772892292553904133465084555785936183806229509912246853925211543847030932951467864315338889968024667724751476460110816584070664834627538748060381712691208318264157214440468671677470557210009345176779386546962420553346853449437018909278377712470394375029636444340372900526107141499894673121933520141924993425827889617439261429015695785058291076221488462779049790000207923864309622438378813508100996335087298431555347452839446517598624323095200710827595109567043962378628325205302387595512780871311404026203480019971551803890924029435015210644969632329778563719095809935238847015782366866986860408095262376395980525233462138128244244422697039289337186329149835750462854497725431451996209649323764964536041463219498541955744488000815281604968031335293553102462253769513490643416491831936650157924220109705910611949107109194031601107403904994242256710607312232618408998686376144739680138819036220442598657721048345678674581501132495745129052044972241368526232246304306619781035144976180909821540380565164103854865070237879207214789202563584351728068725647847557582072411311937735613383239906307019498666493500065498082501361521038001490520681300157907694137931553004822858061211405396380523932012729997934550722321506592654081847047470038792636872606186249109814454944124056385836065942849552124444541986492931214317440830434196511648400809696997390779102112064585944186609628006677245365003588222399990868383632010361558500509416233394496323649727740218047932131975141993248974248394314260112286333930067681353934684765041036229713714991409545699873007794189728435840919850756046783406800085115053352786406369267560619955712218801133242014250092350065887482516712907668455344740338039387607113130396919660455235535057887494545258129623451092645775593074900057015886054336066884317454725247992384348780275730606341594160457569912885446386061944728202499811290603561790651233445821794377219184820989832568978172959938023678909183543693633230626763123250119660340705809577511977609332917689586809124103929170934596029481169068492156164480465355642472000921894080567175130479913556974369399036618252082601814991637404428186650858537440516153991536111594807601950642347977976451360973872416660496553380870230625229913724640460745341220701801394759975590556573088843108619560566820640629230660222513476363424848905291423488658149545934996612802140364650222557806957030260933201756165601069808167940298006474104342282488009266767810067981270156074371442282800403786905052360747392168237472318846318703310385385484190332935607008581186697707692394361730609463252662297012725506158466388868194252293270566868367452391692302671697018380503921424214873272056879272144456581184253251995606901722425395889627441701669115568895412743459965578015943644778447345675633822807077773290154200750340919514406740708416199721679490589323867111596834462448723544963534996338035503429224823105051926605932293360961031958702747345515687989385394175645250586379095822581407370964767566041728242341201079950510502432565218472100177575652863531089109074491290021464656234225267493758964571402846956416468655874363148558600091858411308973437448005734756930843542944033627328621519089690831582638267313198257007920133453859944957242007172123926294009060801366035328448161146308873497829804854251987086592491193677207402103472114204282290988665169192853220060934115228556158473889577302380390029052652964182597343920836348596276422404216215110434295051511819320489776957152702710827895953524088728313490179301523020601923204664534128303120377354213849178609270523604982230734643632135865074135113983731253798060380359010189518954739458295566537348437280208488005983374910905824199300324073046416500532049217589643466658214757966433688940067611929253435212630220825055219647950295449306056474739027178031015149520602878619655685188971234037818709763928155147916255396003760646191719445498586289955906965907808941385846660040434593277082154781846051448816632215277829653968520826848522566904334125479930256900710867359055345788881314811412333941473221021535916740408189122520006192638830518557540149787065800955850718508838170006009892157587347683242402019193330530629865162898512382626750960705364760338072789022252686444871436362562475190805825767998515249121594294357768344639313715253046261109848730434575149613225586192787868859440209004121483759702198661827558194983977367242288593540314701938186707979741963628979246660443830639539185414095275683970480946209687655175285123942065539540316168906259784803301797372354057141571885757444529973040314818220107928161716998876263233931473845711970552655505099644472113628169496524416832737192329876144276813978599828364415535088593389865415614143722787727059041783402400946014676676089068309867397942973788550570309377448463017227689287924204395527446729615328111913834999018763929492609443514089463746164176224960159317904543075547339431353171617860262667091293950189952306777112929440599063090530252467444165824475041660566630088463092419656516990629943553470294121514071593751110093240887820401182069048630724333231479772700645320956639073684289271274928513784417479019253553014944685552919060068420045703258648835341461402340239990183278464960422392889503005254875929081786971723223121028407439673766913986250340294173033608246029605193297614808190304888345662080634280716441382359343806849165006960804255730863164250818368421452218102045913540689945776935938736925534386972144148859780336571372371670928129763148244229727778052163501757746795747267305156080522754477830751372068278487360098264788564733361380644394346672641202839716813276276047137642913507498599448953569293214403474615639724262405285513460007073074908456598989164643009936850918480663893303382484343198165892356814703566654578706949130202880075673916377855119045319911196106962922078169126234322307399535550543768431039373410243969228378452965345588099899169226321369379855145558418524192123450083079201104011195609666612911898225799411215038744612317114332312337407812532752533487233633649982294342924341274188834947818030356965590817425946085212746292159868070410048932823620825359666948138004184383731954289706554219330003002086736648267364850701270604458707893170855614646780519518598516098204795664308584346889604498720821445257965400088832816601837573108879848314859849688543931259605918635936957252934450395624277243100274612872764845929752884051986670272971366732101793062044921041152015328327319647912356504638369909482202469997362694430414242427505640429102318443404387394609661683237228866312405948330014909354560185415912156032048957804705207449209544851824270621698675254091501724124272064030695757814915717055769024027208589701431335173631573101843367595375425765866980776209818621006982015018685846816226702319263665323856496784817595751242933481278408230164543674849705591303413638853465512851197257332564107296938019953970176058818803440328677196451346340702306602267326625664774666680898156844851346813976354521018629511874211540186231207662929710774434415440230542516762342026505590001774248412451806275585828956524259491800065949286743182724124880349420706532258926204245525827939044608578542404027121676690325787873059212572918828301769186165489728602071651905854100227980417896794818102703678338105427425524175908171946760634377589976698388901115341990920797752504706724836899671966735752956771313032359639340169006083866443241345684117998074890371548787602566187944329729730915973152482890119152263593808948854660933168571814849324314187936821722926298623225701659398998890177208416156136884173140776239685546465220390249819867527104989162706146693012906541423390819830873911795697563547540714186361971258580323474394993584286287185820967860994545423240817487009363457917929482377091893370788359385048718920037316235625693199742067267854660425479422223243787121698467691607602659966509490278425456072319752822348131642261531535035855169068285614442397228334990987627001120962020684009441017596908132518681405648873519801261743363017520551279542063947022452120856188116430859622547027379289721989546519773829839859435473043245900274935399974674061625713207556706354357821072994899826408194471630363884045607168531356510661629655097145760902828870062295812722165105764647427125133840145820405338035227282991800686127645940933523109455710897494469705503287727375895807471220000025884418667116816380652438375066660922681851703019269316107160862804361716624247209616595073583708336496583980816287610582102112777296100715350722048099144851012825921580505141820320792021901101065493241226077663428437796015540188137675729769829562516921539879304826717510063869340695532160612872415222079295815236221958432506561851468434414043626155556391784493547290568535985104398870321090893142087144582226614620562069310369241750825733084819034350491136514356728668279474118250609539918965806341836135341694319065334126748672742098808961212088635025734954480195721306046823375621602268882934797662041421748487903243816214246046924999421023285157023142188659354429159696423338077681688061862290463748158274024924937185363846893902619901403643249150561458534356421495209696326818068224712057141380163436012814614824153976511110377579266403346120372920941110884730777934885823381653169357794805236141888823775498103744888508394339730314024442739868627073342421237097309520429698005717402788706633689407172194000797137329821927347825834404419004408535001924058462990518646662975638230383237201241294717092340144748209858614991648024605916900702191256399915888183289225528376444418651130827294179452979295755101729092055219933054814280418123835521060150882847384450822225778127479484553523011370932388135290745792288491726725475812728110489817759605613566450124550616904726984180680010094276281235336872423459407197760245118749333594112471119320720523621824001102831846073119942359185998070333641511536694165161629184852877419337949632999781248695377534455481565773244437254225044499625488570937452223938367369115889537577991238128247629027549570159513489407342622568382223482162683351403757294161106167231527694265215690235623885052654343431963579877368477657208787274758644481475731866492443570411720556533671261490312539629634553942403118504035316997422846985579408360764678394079789072056219146973781856435379591211533612222531894030827193985071453019116202668393412984388730688663434242736625305821602280480266086040318735175576604516294803878594093150647255120071303624764161374871900114639427406444050864758140854277797639806395503123540501512580613237967778219369543232335289035797753562970406150617910100343834631370559469088125975013237271074445275848913791258629495467189439768829542862715589305121166776019116653310653228934065614766451159270235867582454088439485521036360984528695320129509064041348619794681102968182663521564135429258398659811698820031461932676206458526936164852386419218846456081888191359591516256451048366255093898657234922717666257902037508407723517072005960182416693668404713463634018096836861079292743457532635531146334040261956724446002721766619961523800333634135346130379901847694787784216745963969154427799582698254096264345408057952645052229915003827231855955777048098680838260454975346156302423563529320276005597938478778962553449189985730258294390229255109917713425940687711085338086804020622786479364930740346636282424395942851128546953679558442064364303471206455457570974447745979793569432806838935316926033619891443359810026624634754983086547102911818571345063676047347385565790351143855573108187625042951476197334847892249991033111223771814405942928124381651519669016669339490658315838719977628933596707754538714836281015431036709647625576100304279334986132980017465637479912072690820586539319173301213042764522300726875462214977003903402122427430715258581591941264559143229373818172221716206869352694262201597474444145447865228997976456316577001980796609219733187405683966857875288209682950122644553199866019630249150961268606576166573965578301824294764060300681570427839558633188806162179916008057101114783384716780533595821683409723117354676844644513916260730807891873251796961915259642076229170327502568631877768598887482049245421897438889206740995915414277731771394104990096094730183953556803495252708451867108778332793653325119636870476579114747962202436753687046304756619599847963663927686735934494862520417283002543306760215468088815360271949442433832295665361370287641834759535297443991361471730123207090065079171434295395354781743389365671889730858127365156492229193934679627348440361328642428244829739839165494714957608630373973091363329478756869954423130496235461063026486346193480341031879338660263136260771764598852418673992311063191676036006619918549492426258006128546494699776611182653995696386189137125774062584248339198464067490682532595160079940176981084858054929338397065165864753443121690629074368483755624972971132545684243420654895191431249662472868327502790661438874902271900663003681624597356477678507707607077508266335876427038030706878600889149551202402696870328091508462431564956709696962692983428061601467359051642202142385859203430350769042753924559111688858484469521938254143983050304835496742082446418128883147876618168253147510418630550668834614096146230123650567358894304572169085344355159903582552964446323557314936914095652208138765286889737844801623565878469334054232046655536062031439379788059519065449142856157760872413607370543938230157444828528185453573000841946663857714427611743431590794945760943727410507961738304229498098449158250845571022270175466028656664864392030090896860606943558305901258588739977493312885499011123648036491054518926409497166409195873424834722450576216297264230369331676458351350933492512431740240240526857992226974759491300789542294439052752066112712996690870627402404010835100597761998061843247312415966783950313492609653529381816669092816360851388278315918129852239850309204619962079038749121611022996489907111577057836675203306139770617000560011116019134815927767762831026404479378189948505569058096832584214219965280577233408503918235885306347715844066627019482724471577553727730130156124726360084392209549328775267035730770629126400294451456971840914273654603151449613766160262118369110724645426749406891821759703081243583052239654006178734668245343035925954891939656317720785865724885172220787391716182715249675162707900370820238766677800822987597673964582779907448234728969675831971294011876007597540622498542230912794536724397978827499286559930940139934144617892642923341291454676955801594228294375751862460208140667992384673211022870996494731905773707907915557925215041532356187529963172958189065286022173534986290962460081660008071525718006613906064228906902401001415475343908304204133514074719287573756574953609256962184527131611714075789681033088536011402745399756754617450574845458605940479337935407023355245203449901771253822924764700320336522122702842821127380910900852364805827261608999819148159177009251639510191056550495051797552190257473393029517712681974489058335057794723067969215589950235217431619491400786706050920416976118572109057410398101904905017898791646110008243850531866857885759397863929508113029510513371601299700557449249386775060607149994700567746030327945808717279959293382581235229119271932336721131154616638161625257766933727428507894496259465502507009115376235422881605236103899022756458427098076470647690545154895524898271084180752557482137345627449940506304240901581810071471167575777475212759334374387844885769870141199212780727621580355952225706834835833793807483333078594158764040366405690905192191719399603735934544292306863778927221757760819999341220198609003813472888329667077628840335579109409696498447179326930967604729775434294018168061190873116059230050507524475265714935524228685125651528543573117418360001700588515807379695788354956906744129589006933444086598455700532130824120071880497819582343337768453269201644263537190030874361138385186988423680678738230837083112721893957265604752345712329839072742023462139298591009515268333243592650120320058965279958955112682855514616254075812685029464014214716170667257033119626648248926409790267374989394572860610376581318616742386769608493195561848191069598841778636735893779294663742735251877584097391203883279668582040898773708420497537598016761886524505900215756717885789589879185303364976591718941454672616930693577413988840675256787364183220343647806352551221023293248863528267299655585373007707264658846073299807957795210738547457701385213923333342803390618949508012347043834630058840690204529157661384504480642135572956175589534806641152576311904486833392512751061048986732634511203515688887331594849277795441228450291656143267622296479077739588108796967545349021691454660707574613259347199077650222439363421506159142432663039507136852971615845939289729300887641092944996018934341363706323614783075379792403439703281186817445003039308524120304277430937652401274735157726691462428059444431505930382364503265305841046504801648279679610167582640614722186256556698222755184512559162112172707604468531774269558688833182449489512630065578212459463761024122908428576890636486991687314781864140760349235518055848843158546080774497805398920815833834845604965901317282951429964069479493087345702221356387112806486311204048628859364543419426729362578164572211043972435019583755081926194696615597017824959915489893368728501923572609821962109776995464376738190054955529480931425016633068980663051085528844443391728122146466197233427801711840692878906336551701241941486264928728592564827454592488206523448453116048991733254859185554771267716181033223660344316836938880891076359383052695605026082299888327650708645087888270760012205167831253768554532407567426544643422763643193083448576608907526931789775831020433068015903992392781738087533384392118186241486921850644530215675753152120229852486728279354647554043154477332132046176768095586143138270920692511494472137375543896652969769404396228853163873875563795684204332571449818090862039586028131974438582761532807252099347211568128374225623173824929196908204677651776516186922579375189130448450210121282659512349894995124415852101137648924065202341969273205085191503024923176631684047562186906188272335014268438627549560699367867533748521502333780770796278992301632935918835206696725007978758203381764050595034707044121385932554411000244487248573027418767896620697058771392493226192708563025605667763731392524106047605146991367846799274508250516170568222419519569419293005079392042958037823176299085046088114466301087956279427023603475104338027465025208630917700569187124987032007132892866288964281681544814462634743388868558123009308932867753814161975931863626681363529220103439190680135498823529042820638255166914803286518153006646173497909244117017460829427104326575914412705764862827550755938465256177697085016486854132664136164305272933506039976638362556669310593732918829706120806317883058871471851896669316608703057539831539565596397737493827774665230560419869404287242229442029436546652398460110584802398114064002365289933644943715972929323942669211827246196653883806895970139038368544995162554236006219455929369250083055209293514340936914271335041803158666387628283597908771045717682220586105855782331989267751631579305859961748847211734735544229478826718411018997794742139092000040900882423583758023288543779925149157675025134714297365602042245432411105322836321169247627262072208544459492202133017066596626168656685512134413112942137390602519938367669092191702131781728542629205509352701437675028600986597044059972595491323563728524782326404252362324066450104707382633646553850701407751490912015680621558418694435714717840528584048460517322066552028348143030148463530095206796266755209778165699390858055482934067474988117137714373391269108101359803575817211411054239090074957775972511401249598284345408268666688889825482803167367495536285615053119954902551369092077189411269864315312584208310715237234096169938614822103131283807828807937718675833662583700563443763138380580062310575109019823846609406626873017283334825753674248015981871624762891279639105852759833365231880353042367346488269135841137231812897550335744480764702530567910592278167871118566357366604743431066161116897642090705215968328015735580640881765831755806261491394605715371472549308308592305630588145661393207298302548393151069186093034761875226077483670870679968873399304039847003704866523964172592247789696954605114064778719421266336549258772625208056293699327758935559820305190101220979864290722955027159782907992737050619981223791100718996756841464886531076978872076968858252129765544168041729894227367996696150495900624535278849886566866470868085080565790262382928181799380905270183308470415803202537332837343095240790488379408644829117858154190741711127490991055088080510445691993066508937930253629160721797180450579453550697179406117964977517428305022116391730522656492128781973593678047940898901415811680420799550427184604177119475023087048334019644894240178998290150436180900188684528232584314804362190382882145533886938236385444264661808688652554442507310786127348454258817490428282254812179040043514909935036608192067835058010316614541620877953913537902712384285459910524580735143273691541533499851500351461751845730405481038949171649213873900698850650948272654159587548104001631618407553813051408391095557794576643520086917219591162607956415442266292903275622763315203813040546482934541136503721546479068593982375257221728708052242420101442396763925252671210570281421348652350317247735876852273808770503890860978195648433198632585161621458187909852797805046482623115156852865478423051940777046136263550776431519129909914235968773691752463194716438740383134699887736062644597905865699548235460327562419918787428057480653713960649762381385909068937108937649119605585280093863328804822594390571357884417069230155791028511277134180727837768810056261212619978591517288610334003018704318465134406525352832090605334555377001832990947207356072605131430337567773160126283028425927032138238959325174102861601782949332781504090607264673628877267220101619803209450025424687942618767853051531179765138426739465358430716046428259395378885020551412818984436806262762124214800309081289160797554963936393648900846355987604633713672719379819100129597540256273810682162640968721258951190945747291898052604128675686121794298086079397836774403669409438675915161062537290761104508471387084763633279047932984842525747750873255954476179099564426465213766954702686824347629741376851220801736543365268376320467453825870861161539141502491249626247014140715223211128747384757514056684071490279084146695956771330330242048747087585960857665409307458164796221357465413200497717524679812899862759626271943045464185510241607447067173320551448834545806305177994829980185413909896542930074320607735622249520207105768693204767530301422762365335625159580735442659702006981835828436047593540653480175579465983196189295231151532012554589150611698735192981866289908572113861463240584599463880575858319786689344086793245650893706769246907710861600840911788295861505896769878814573065549613034013792675455747903163279094818549682369097058411600421585508881615329119700270808973134228157003488519037961888834252506209650049299195372706940393534562831719231137044843394938677467104532440682809528638850442778308898778619247051666835468141780872192257743328271127412827724352830713366011202653624457200582596323169469966160711720709424752963806370823809222256327611696169198046651196757772199950867485420796560093511525796180071247447753224372208107436218035841055503379872834228807265424188164932751514924833190725729474839944432201734388616582225911903636402881865608811353594900952337297983269778480977672852075303885337064076263527457656267618139191540095128084756049538834415732695926465468711599591128163576267589961102098993150606640393160327906520917593426615153066162443458762366500383954865024355993006664416224925093771448187706170580231453599215637421305412138875501698249732159443785267713059961910369700372418690935091273193743282178522069911293000158492866824792511382945650560181133703201138431186871717946073197490504833906706684986221901854150141689359128249227089030766981029901971649734156120313907781515050398303890492009462563264562804686733451102679063252200373270974498694620397368278031042118057942802658847280722056757253756535263694976177345967403232990050363854095169564653519999458119750765896549452627474288965779611199603247825678879473622624936515910769927805168388892393151754968474624243095267993804859036863255211210677196086122240001298782207859980959734001385644222926626266347410100888234412141014848021520097792096162640479074563096875903706245413116477444476811059124518647466382110160185042698671828625587853136894700436888380559852598399162252724354506464460812594638572316684884068974270814272304830421915802221181227696188729197210376760911578437781962434028382869746302922121490231686213980449324215402037277471983971309101292359116325151737495554200516264215463930152495462573517628697775149821858820971983189613574786233091298547105114309042966739640074953866306901844494740754716893166841034875988834410354258827437187733296377240231853080907989538264337548787483035716381053677939453665786442398733551520472276356391498454198547559613045666279478326249891979390118617748626231139928140083002969990409727789013030167900509574876024641465854390705643405151925640072186346381142281667299400849196739433257262064352073201947031578108999254403925631747926564687280965276490643139689070414887535273626422199005454137608649274153690241308708612705216102061252835098337977642125198943004537314463948098452681316409995892824110847527111944678669138538783875193882664733602295881787832423376394892660108817920192448115838734510529320120907988139363793444274906389709630746807756494356685980277745633625504489208886758945023625011347494960843092457400601403359236626684701854121434234234425699398463080721946798676505288341618265731745026541811358695988306474968037220601950398019649040610910295698190782949539420337019870258499747403603693599121923630634103585531151057809105926231867286529686129573005288982451863951677126978431926849284106945364685674656605986263487862954965076254432230384135111557475409970677416118790201289134086168837610772009167565243852806458679951397771277486450675796038846452503383871676095660917244151622216250512306296874385104596209715802696280439400938457499428160848934314514664788595282854374074704480491812823606192936863950118744918307785694539932655551365194084762985490874631876960781516098280115575598201242671700454059866132803571199682851134827137668925197707167166546823833994282612507675041224817743303552008464371650079623928504153932324170040392386343473512724900526386408525372633806938741549511073679482243095300120121066950212496958199428869437713561410793750871508591842280825641378381920975521078656677776344325124094092188284981069168568825472617826572999966022372720613899450509443399830495672472258851618337271998282586232093635552169075497550987202099610786059741392470212112911473219803117566512365206385455965166241362695554252802207158240985899100044568291146333134964384667300887425011569297637640141822207268304274886860659002590247715551207415636965138764221026124026810011073541156029425472844019201632459482111510677996863426622680580493433210708402348126855083362068052601104751597848849394568683410093297796212126181748261968318157171030302648810936145763095395703032253434152529560513233499127832530076627985351393094137897874613982012887344960991773947887063640139923456055998468618167994142030589467782868306325245803687362276388177771499774226030867885769455949888934904140401397358396245924997011508426521063266260054218578225270157477353929139968017551734448297081641272041481238459109895186229914632905341673775355436332352562612211950490259889185788363918654295510422971680811860031436415380852853209116604302214108998234976906670526721046636890853495476966448401189872980479675879275373412339829045659569983546338989796426427098299155700292367960048686799676112672883965407426598352827358587614381715536814944658624491951334978381863284168973726308418765234706288673855493299192840785503232441365429783611470446062813572567934545411377775882820926477043359899036250579821064227159537412418068535263597014663623893463170309930057279052936021974925508991205855191276675934303065303324327230392278865641059641695102026733438988135405613136622568035945342022417563410424255732314599153229618108225398963609576006776488358467603757115588937664527360171373542577804091584485920945140023594043691624177375210720111037503500137291415630275575513745619858431341783819152784366957005656366946524298462168037247608438145694262406628776086084447534165686248612430464152196041166601085383692004855463966319190876259538945126616980464557353220589973074637590072377373361234583255452387256273752275682318918951979712995383754380077507482844032021685753983842905745839494063507400903551084116334554930205974192062740492232101000080442367860602310504430962230571475336610851892415314972852687132994214113461462540165229251917264043002046073695531515000652015977134117289321816891911558053107186896687361068106077691403620935215711579850604365844937535689206943323075481302343475798630322486107205809631969913864178089105663560042125786119102140456090758085122728264175775559410581317897608979874431225586351085785709537230271150510041138594397798403732398979510826261632352127881231981468321890091409239954143732359113820109657098003344241108924347339939511573497141994777035048679757252168385298928084703856518101654998705180286416187991706617128002320237046493564073305368861233166109859682450343128739368247954669339307975707314903309670744622988107631514909869309262533437574520250340965667012884111683994181382676599336758173278002701284074348942049490238215625044214435040999449339307721901944882814608616731178218155444978764904137704484029423668892642927378720248427433002468693916726757126586751366112700066579127105746086460841510379742984452084247425928248877934397257718320031182574466163626511430570623169493897657009437425687134065571506676115270323294862877068448701589127618660781185338877288133394029133105797972561156893275583960609463287604488604174692663634219406819881829480952518040704009282556729902306331201207152201406540852626355056645737181330247220199938579145790907263216398467598973178865424677239784612678682569926499333075331236524830099714548083569932705168281703250490757171148465938210461516084694698285403144746629364675759698459088390611231948504799062847553853588673537808922579270499620874750094132645745764390663629856531379894301013306179977928937829890406140959042087532339262318754028117538997803944858548238287711765487323848717586424545627638174642618271145499770560126486497182757535153845967803239193026186595736900216445381510311672795522955568783704717143573265792153023768298128914293556654369816684805210979965831916636045446354895316637727464366003773685274271269915948013004302559800101177622876420269486134612364513235117985000061128750891434781585601568814296161567650584240259516607987952440464705578342490872729486385957527668978260310416053821761328501940287475400324328839698438483062180937738351887638166011984999794038718440739966810116571792818955301033681551048119474886353750629347134647056391740513431307503642326334924439915821017498317688086921175079263333186647219050616429847606410857012735444555413940633585821812081294797977239043528755617991007136216714615166979413209449350970192370717427808619934725121018876230403354158604713831527498529527659830553610829781440510360666313704169310603548327529903943362386239922034613054873702785801548708807103228725682136616272142236058518477391503183798678874028365824599583118594605505083711380525151961375904710377692951863162413571077267596499150181259815369252049890014175916622716224089347987627247819449837695939712920070858604961769561190409602296747725627681076526423304347347782109392343557058966963031801634111318610946470100634084145848272521705847919150813293730714675878759771653055860408369491946048955416055337966637037260818609881068431769520937286728958021612334374295646511717765942838326974625404730841074763397728335074645620869148877407911238362485406631500096586702654697093623361274260493896488797249917697306725919745204937340145707097307213338003773154558390786157639320155803884586582614243004751707843244595281146585869337997665332394584066660642613105638056906221990327268895313845101318777871665300509172606431234171222387063728335454375635514556514337401717192783312418333112158976652687764648244745473710526582188215101003094783727522862031714121851552605541352466629026922791667961219129605672636319320792119124688760636318790519629831508181335119903609997993065819196463314416766574502445404194474555651039520314235453437197445260641433693427656844469795552869319949264335678523178158386204538350881348898244907927951781125525996327732154348219337099268282869817352028972360707050756383225299580345563246451176918129860310564157823492115773434773720275985625388804158968476930532685015390745668124643077312330782750897387299454965232332387825618005495725317711559587747855049266746019784988271730169639005464835686454219277090907523671102228897786187600416916581651273515875540671628109654801499844974887008467627796460345045901656489695717643541716852518629242228698797254044102153426450027780620035210359549558673645552438907369213442003174408479247953009968214057328308547925583625443711703153088800496762059816056195241534487680288276861614263464100757651452438372932726847861097425345069371857868035634925526264849986359590259859262922922494269856219139993954325207479042088451935306113419446133852125987134937853194158174312740449942626651085767909255965154657767605768150423664439770030072176369757885712165893788891375441615047329409034132204180203255199771307397307409863081069040905227229418870002553871547801324121678789637868711307542294161981313606601675522886166911792348491530502076494946966014534988251023821290828593647577752175556852974058494994253656749832027020267451929040158319794982473453942545684018214781491495498879306517300985144757150882595660518475926802471986944242006310696132315850071330177233048351367128641047233005341502504786418958884179706364959502959259444201072393633467701670224823453084394520095512543118698761057155653816526897458419459086390954208704566398500395279493682704753978906547866533914586423466260659442614670917139534536263477846613867330843332143722373562814242688004986056913631522700200404778299664545109602884840873701397701406124899960553054620207747202192471293236935388958561114212574120012957835001121940866184543612570277812194067273984843163344730185718388377858709326672158120564613810508631823543256393129068882008121079965756359695787877011122739054695236248284401481822822541014713413680493178922676078386099957439347575883242402234869731603846005757133154646511686785256555629903901342353751352228449731534580843628139937225665444761434447244111167276053688043155391375361151376033890240113259547278017342088728514241460269393533711416474014475064353088922635437543049010286003589648647426419979404586606114579823091732328163757428434771500240011721312645957252837286534956293190056218671104501150285600339966218445658799311874659794955721089244365299997087721999320614094075427812507343724299371937690457211841728929003828923042428555510175485140491977847220559162401046691603035622124302831256007628280629232207474716399379415331893206210413237809220326378053377622379036198805263151221042597409126626833282872236290493336955183885332335177320347917264902816483605332948162343491845210856437875228418570824979497421556025069128885783405061279949896279772439787757167467466592949598661308798801259562107616547348437010415416438992444722325957430836841941692709903002050760927171425460263557422075514842098323706205908837301402964232490544563076056831252318048084005596077977372582092940617321309584351760768944351849654232166915915373619281973639253113818135243604033576457752842481150336328021738991234987062125703106598421966367288149856936245233063309443896540323168955771108329529016388670556357280383910319190363365430175895185660866186165294089080928364690073774716666603612497574744914364681182468784502316571391061958374681369842402463551237370927630580812656251320862129511645466066893983114324864803645744355542601599350979388639991413580508485668541715878292711638607327625432616815954199338859059465404204534175380751362758491648267420544855286633926860320134106841335176243375698738617242375024609370298363021603729297184179201901266975381279044171525900050077176959348850148519527957229710956393331280902412684595756391578891891493753122742350932861863431849464406859517762976552715312333811089927022104890646841918281957339798814503134401159472130170560375627312078729753860591329169320383520574644554669726906422584215413627687710185308679477500722389318707515444828946304036870482162788206728703271812570962981967220846128066597829186965026413675990381163311621780323401100044827239546989097646947629529746842044768439252569581986068477509939212044997802459328397595795007429509416224885968734654016836712104973378246164749717238681863513455208881379091561142631519598485610549501197778186666566379317309290890065753387526082271333460976710498492538159033562006001885033261805334083922657382018786719402722844005999669977126750540310063432266959783468022775218554690495475388204678549565171988768771765339181042084796703755956567892352986157403774170820716549131372639109588654455226565195448755009147072694562634433324509435780886309801419573899790384034431730250575923737187447781187365444252936462427130147744885861761948994409019003011533293556730527955627274333711314695112087975133575443271014498244018394843977516719539075543306948654825255538135042056941781697258049230150698922401317156603569979918186384974622692823858228468299861849751750679943159693128879575501664517587232482431209033329105827127267508522991959318451499989254600998836266786691268402195087814228200846062873259031346192676001426638040415008688810694506235643831676970630953100875173450222392025514935920301459650033619540217000630857153759494124198586894842280587482869149423608064510451536264709362930168537854369522527951096755868913566178201724207919445355309805349485206192722977510742684486393578233402965590514251449478115926200930247838866959545452536765989790274143045003960568801494222753117147475195176797339105237759144280524532702650699292896234312037675491327767035893899401232237368989323270505121481198731333794342343278312111511057861797485393385179910793460287489058200598974600977877413717068309456613017521421959355520707514680686073469940167247908648511493437083527869564873690396720983566699845474420655812626026981733945306980433584076396926213261585784518208305303749986994430233711675194571157627829749438978829057914617382328114141740759757758124183704090710507654829007340028951266582509955732330384176700463862286765393588395287545861276958996970769146822834589904054153743434103665648933835839665944071770623339821298863828214531632134522020957225300326155786752876653685319009739858572506436649961243918419921553502769972554676641161920406949414611895941683339466755681574313949320723199696753869668423955686016412332314167745706653837788306836682184544110411408731726415287065167365527424034158521840463054198329942698807101545251926729351264737153638373322471273968746144182132447513695882413090491291004470610190212716854583327760858845882662613474947788639971011963878140806619773380237234600919545509058111669390612138055650251258449021802816513021499539109476999218736250518980563121686572567463401818659820173909283841929719384111249157127686002113307836592231440366113095357898211398937482229957920633063866691764085779340899209548732236488191326806838996490206258735940284445337990573188589707458825847639069963603990128220210666753988309383804039301219554800632565774206040944792704005520328830837830431282737632127567345580888176579981520714377928912025550227994751930884253122265920741250585188724585465781531813216391926017821561928073378578428570145614250462346235799140323250167813213736996240216287502908813373029685231187445964513412750641962289034363383297697466062756549783777882919359731879648745885820420005445974201593101769232691024621802293432431888841784270700477459586608414254519911588889128727091224930855696177713594885807892298379041905901953148685720726442758378808552091530245395042402610592738969839796639965081285041509498422767465986827692683091221138477141350377140177358024535064206412930057927278962982429012913376898082991826883874099972786523449334633509443620545345193259337025195926237136198496756490829025463693289320602004536975376551471586956941510164516347286424450739649485372726645957725308199189763004706037181493994704046279112184689501500385350338777101696370952034303986832414175102351168213132824588751264889613620899136875662199789083919833168588728429844115522910211956590920612179312471958377533640863355303698755831909558142882487437288330522437797611279837241800148131896366689522935208069188358168519030387949049235640071193539857014449278475629872407082696115942975101788251664281115297762075110111753226093898644635434145472578164060193689612459199184127859675293911934648979306805833186075055240791511389256588991341255985155994996251418206873413762224797268001775929946184758468763255631463096436273878877362254505308484271870655947027869086096176282473775057721437098686142226831442709050855139284401923593091013814531490226874098868194214940068260761884725384954493202427018380118735750434215993568525549108780272207505654813359173001302580584532279720198331579443106069832427583579035220766291495861246899871277206383448924201287224934689792195279303446286297514217849418932552690174466856605761408147513592869203114342300952850623045730513413319581812359448843619369624834041982782499181113379161993449481077907636835579174717763403685500718473273785854723101954765933286529534613194020508698860055984600501062608741341816747392359392655768402430103897255205966684474921961238269672812578386344171171449082655352306920758366037604154060429865012617724520203953191725608766006636569113307451947796355357337298101562446002384881857421250372793242138007396210134259847085898341706574871737676174048798278796278072314277861433359557680962915877681130154501919106680979607409547583001401434926631797170815635452508106093889459990210886540136413236715442673861702275954626009328404807303264792110472012647702224749646168114678825322089919631628697113372189822177335770629036934527384637456531352501742110390103302706421031276944467949472422871213040361716077857010827511492245482252249206098181461532154653394241094196456713135354782432792682338472860693211652651877788098007155222449281748403251210358414916795123066679533885597676843265556276685249535088508214636825116399751027886176267723072694775236042524502790010897708169931983432894192620454299985747378175708055496221315938330744086387133189756021335714297024298785346852674355122338644645897800180676126844780441545093012722754865483379554212405165737013585090245776107414350657494217222039956004424907899008924759167209362856708719126615200646002286115476672211855809556479437452423803308179787487903043558548607336401044392004605494096354288842666530493700368440521723841798106437090115503450596706309680121793846267246224815848190719660164589304701306111113962774589050128502032950236340099379428603872256787253962229921984807642467849573256523662672819333711461174609232079121290460925588931131932949866688705455682593542095410164560932756099773388040783204220621423076747320239797832415649282541662266742288455968733093629654362763413786844804621908558184084591211841915939961211876007782496700312707634811068301547885772839181309027604976042297370349643791061491474243564859255741737180921824439366564533803257869394044633246649936839220097233605183477220870332322420965899301663620333987795896267122033802831452473079660186402958419918172882700912754841575092878406169375702559544400818366896745906387712380154921219253582991411349902197604008203915776753037771746413319896673171384713037403612651792095282309902841129630060296061212801107952507269644291267824971872729292322786352811427888687123365346602954815289943399170066202710727060617021689391227867080419313582772817188592238205173874674311047685929854074162395921850386468880461591125261009435437941511788804767905057794906720614902836540587370006628418223901918891871423844554155955782320529653999845936706608474712255093613385126389967430654420688390293725384719332338254875466022552290409190267067842929143204534074106504401142249301487606005446917644974983321530415326930592185384111070051425162126659069020965258399322938390683892046838647137265489321530488731848555454068867055357557923955945974961795687453583832299929295635654920690764895711802453114769752305620140890778882905483826196611239050421655509482819145375797909449374552497752027242800698404077644513455950733752374738190057947636064946858492697171235122777032976106735425371051310520197016038114085599848178903470219561619388793191224132982591867955295295860717650497849041036663848227930699019977376333110955840879637466917845624600181813144602933697219107047420913649266371926165826549187355529874838001231704272309209602829532640645327818422415802316759692559039963377765386165751788663632205105962302852523042372365803949860267257548887014511296078133158301197175195721028618627851989532713924230387175851928264782707545583289352791190276706944987278135516254922908628313509881325669100441926260773218424091472053675292817645043456549220378167914770946379873860636110264538384027449648131101239646235545558231576182581611885013964171323069119747663160526467805879063793473384943063973426289929954514479130512445356697683901579852354256590067706528438020359046902463542170657388401218454324993011032645916368407183485493151241845407332905916820888595701385641331449821299759126561786483909907260301116360702192918616883051299819952104555036028807429897011405985455213005250463228352711241893629687284999719189871851090228017456154376638315111080885750447980977255460596325081469491404969280719125099222729876408960060243159476408547628545470310664828367058334810498510810916826251267310681716439601004885710369946516113668247760760464572781012350974079215233542849253939385805839577357807986705729246060572745789706582024110674046039191364901990380876827335080475153488433339773406128726683914422038387761629784528822888655273994697806596766638198557204297847675708708338265938458508925353817925755452246078402631435675251709110621085584428998231228528657825589923624220872897728103921369909104817826689029402996584841955618088485160178064430285443368897618396928419065880699708987885627588535723288946878178772308241265322357880271303580572897223120156573743235046077365708504875124350374074271668663204840447056332866259970515111288096558653455601956000789580762703957913945243833193980878363892180591556858588567363818962763965839511493489091025548118589752362044230714677305723024695342251646840819919954474702747155752970825864575484714129501693095005227737023017186158141210378541088193240142204781901108412466170544733048767957424166924584094478586126021869806028888633922526478747435423640284243062345790924756109457246876984632535249419216800763848931528145750570678013056354921832025502104365946674245928624490038179774245241538561361772080917072062416495079865585843457984074800228305993223602202923960624784069332099625946051806369953871768208849013184110735188526970619324891747502911203280246491246274724669869129403985746472990061891808595638924046111112296460740557581033752382447344704579029059368778020581591843665617755338736216353271154791350213864221788702839551335689409556662101390032530581718673974694089814709357102005696879768625923887217412823461397993439735561574405497505944961171929375197045575607050639460704118488858540969220039586235543498906630053140971075448943823357201294144300739583728159350901193678846193453708885330542903167496643991964235259851260260942191623557529042458578513413897963169317860940868149324050582109877923477398903629969991623444672906725838312708398636597001916307255664300361451537696290591544765639167740499194435487150578276432928540391894862802228941103958185708354563884488647211250914952534231263499378053451682420424837981355959740092869551588760273686779245597447763529404879114630939364754754911987686474733805050617299661865766241400344846677514468463103605135615416696981547909518493039515104934649378789569176797343649556429972517260364089522145389160708978562419837229688005776315540773569195548392251971547357220213761363450868682611812750066790138051870935746011754058816425302454174213277295974300240641048204486883363060039313746378105387796996467802394785388920742931797723971229986153249630912549051856476916569139873623506264714750348072034138531871587986913109344246798992468416541121096142431076266453660814854668562835281422313042199556231580151941705166363993125898335450060936791986374630300840833279918939460323338393616725726384699684268976567339626874178396584729734012584392348635435545997759824952430044982335089465889098052334263392141688622472623382296793806100465473460824450361800428219341283448624949519203595654456632476060522942790955104828433200985164908810675272516686080028622879743168192347542936425190237958605738008869190976509464580372296644426980048095504377214363929605236339139428145969561500405088141965730736608694854849977141924447905993989769277239388010715519827825201871011965440401949003291982900186831266253807277096597982754840050758935062079855413486555736668129953178126429750466298931712055483267961485959574128373208560709056537687521639275734581049219946303826724502746431071026996322822790540253927993701572779335950246956658019209294872732565919593371519340935704019526083777360231890380447490369090792810564360120511724796301574705977981937005132497466621581615754669846577859894896667546773107463880232100237645087974917899322806113866132922464294945815095656856559954259139914734968389939630686527536102072853780070272589009799044512297198276552130654536261963050739017460623918546319931826615688175813728885386745173623084842256330273339941173073576894371787616216896160383429161283895649851273281179808134108663389986288061171340539529490294526710694438125943809947655215927190474659339648769484642626607943345761785686879009546457729830494728894693201352420469522048506699269969104023054458479441819955630695740519043206220621694432142266503141494939498256832411727008827275922251611046610784624965771140262276407639744455942952578603469222742591779030425012947079255513227859805706666004250386454415469027555107862183861851423115537533484245949315941366873339839078836497072355764812804166643212251106852591841601982595527166982829229950945705641426182415744644784251234498654086189214196700313526189872605742864110359064467707748612648165229042863390601858636305417972520097355273064511874520324104294357763176779046586086195801023364320016468272080277492735797701008314977882728728569899869166914843822614848010027041300025709866789018272531456612592904920490634876069917961539744720850351817732481613793369806959846493822938555048189080637621047259187411571696391873446592649065735889917152426251789926989179206332596094071668104237820945657572592262912676284396028174167122210651532580444967238739226769195832085354846609687317011781043997082601263707847811128182743377055707863627265373614407491708665226940531390761821216826280605656301824760632771686016274444848650719630061364710854964398237404680697127038242203273574719954887272106832787828499329930253354235516221090084529089764795754024169854598374790402284358677133326091367312588601421135508675011373280728230512322472984917388748710791248914896022404187662689372479908504754744910806191750422434378147963482166696642994233642604950837455578872242940085837974149899768051018132951334400277333737422967035953966008557340471258354182228274951285974840579744587522130881712158661451766012038537368317825966287218052360266377226446645502085187217371745153955234983304008741018139179971070155478851188801976289080618573378307978213360273212094646194286521581382419311475609971181915699988213874566469866545679879059123703763710251956492879667059397226455712968801195304715206775437209419558463836730004079471866531025245278902446154914671385763110623948241661559846981306407342557571599661467252666316287816384058849232275588480522861925615202653051410759381565075790334631197545987892292651503279753518789215811378842561668017436413604452053124395558412699263311219341209137673319052484651119082621948689761262741200791072019227530580012534153913036520814461519016208675830861871374878089429441746566778844626208077947116247992878663621188844197074179385043146976915745305261716453567277026188648282348271964726896055966975290700336641323169960934441347060108536895460574944068022105360025105275655290225969559840447898709138284740200137599835853140831107448841009247854899669250601491994140814133438907785330087237306411867264735351939730176785640675374951835752806921155088541912473730213646738422364665435233754595479053642293269417947434630889379865190079350311101843058008728995302377251567850318022972287404012977670405718390370183637717458962564676558768033838083747548039340026893956676756613793285281668387525253460371014431035718392370557931772876696823897041538110442599012087916587010998113814317719404177526866902933588057406341610296861273163029312239178982049116578002973424934159291967635220448241143784458310288693786209005587975228589060941659477001694970314377359573731949729039239113326015531135912735105540119817931251694300937039350941492552317383216621761821947033558150340948328794457653301905971681837545951464162071894919399718970971843096170784533589582075170898706148929111293704581991530133684619346954295089615998484649861986295523967438863293475768633693280876938913819031049147859799072415209454896064830044833365864226678899328321426676463687933277487599409809553923283164648708470289710836846536244872710776319109640436624146141164979746118957587989567357068457250535169736454333321419821793451872161288746366097580504469468194546719321932969329608842434695197569276391506147249274960109035701689313447907884617462999267314319930314356664209773931028873652155475756479013694042026830385848522497278819385817946942302314365791008446763921047709954721163687608655792692104673140121348155980802613002488373430682808069141802389075753142533534365277683703672692793818306478620162804700503996725594397696749991786826753064961108491472996202150433559767268896550483348938381272109724665967640210762449831277980329421639842963042500843571666322163425805182594692753327049695462142792407040767751136709584183364101151147979608081931541012932377907844388417122373891207030642713055388089453389050515423497575899237020728231806815439079842204289501009112163411807786180536963694821669104287683940042091318893056120720195865429217691033418923337653616329090016960333896736171426139264319904906240785568626364641672539464239569026634033144024118332152796338256075688067814937596310953103881183717496841397489987901211306656282875459504733918383356911746937728021912292370575367710775005433533384715078940918939536173552720274091766107264961162003827041390116505242049527161507286763642327175586654970914931841148254865538385091539102181996638087613253060528099457001188888324967493554165366064422693975889995232113289740431637800899564126353392093865298832153151759352505244684175703339646818762254157188847183654120682293574652564308062399952008334038187348036340935506059442462787582371685224725811134575086357846600927712483636227147386355388195307463874805065790366623027426394229148571602251454722718889531462407294791328954040228103826399554805847093695536380254080863101747077907881109162431618875342460877082072440226660209281801109211491971202300732726547591753387731168038257253522718941375662049095492098687709796095591640131234201115160928691455469594684830227592065445080725228511750032749659312750534358658670611304222721645648140210763343020896020455442963454030869705398707243952717046617595669458629721259570089154411781942822118384002029542592263490809432706110471531980942560548825116130326098807647423625792122781039323372182661656959433509364550580204321261392497840502799293013511541743844638891757060067620690449244501813321556222138494718463436719490498634950634959563597800286458162122624971135653004281238885591382550823899109161992936671864269635647480722346745591670872427010732236984333744319557892157002188645464334108959866012813834586180323551814812169525435332917831841625528363586370119722705591368445642280747069268765788510929480832960162092303494864711048424340832630948577890567505981619575330746363897859019712959684010207381797270177401141602726350627136373705653820618327072464416277022143700175090500305987537368877019028255754748073424195014078940583039591818415407194551426539131147622530974840011566711744713603872500090864788445338266314293399770873695153238621694720358954388973495641593878944478237147422672856118711705321767777386662554869073119535087909548289826327941726553035451331917744140431197201791505121787945059247013107192885294112629757879673571426074420667196149999945898585330613935490954560889018422890636000996744523722727582580858696749578028048934466140376476935794474300398470951488751934192325276163568425175751126344134587294317301184001095415462344873918652518299132080607899827617997101236560258943975188584313622100612452190793482663219358618374989422146921605148276610681509354743490138088070436585965339762609824775098976719395777767417342395528927585724983751452080716017023789732774525574471553073999783099410860122865478030214658427634708178800649467347359983577579177375240676132462505608866544891319620842438744565533443238608823842005180655075031800239373075497063239755793712214450728873567691668179960143250355002240677443247426854499596712166707453829236347938196417272905151585034603090754436921566410955780257943260302775644680731572427776920925404226479955416840984418884738860747328857704326362750424143132549410705219743325621912335673351125681349781191452744607363736474927428640126960471024111909661702448391971650906723424308496303858230371028551284366586005803560054853149936542893921592006655306456301803178184455607978804631610338231698358146276804064700553761285650502676927484213574982716706081387292405875716867048826635241270899302504139504523469486416781839338293168005180664725828577434322608079816786887940104299062167523150437806932567195529988554473926629596457423191811600651337509418047120453718678666330359528557610143851367618530548312577617748261434147253716902211620623128700058119894632351595365168465816862540274552909090665769989917114444517566290186870737108021830342323421796661957224008108389693617379858078421455117344589625217509995730409323410709434356127843458774072128218437768399863521015494613527689542214260867972969910959441285721026713096065149348028178824821036282333879245816620758303544417006876630194307234263278407418511422828317617784241009126497851089877831164855150030720269808454888478494130791579967449121649144967841664308114691612157874048183634182963777113032638913238197076910966448977421295039867848193975495459145652666339951530819555867190446347569727524537669801750010321642927768381647345161099449662325250190849417145686068926063764807411912392081696271290748781828444867159454206373979227782928261761836749836900148258157767760967764073253608371692318016163151265940975524746074599314144412136142163238357588171473248873666142867808442064752613220848574849169510369617385476780231414323331991833269374851715531704797005112330859317714779566502864287368415626293976603150676157092684443762678555071128250661835953989978470895066803702234599926233377001606789392629098969796260805297592465631767020811100791019975724042060635709103367686303577622448076329984810591786677669426558179945184442991814634670708525221446052216800361905479609125358198202953448966990534477892606804872277755375270777783630538656033184784380359068081377607563075070238610009714515778144102622710868028750179162626297924361310544126194927246855717554990678095721436574947041434666401409189508407967690950350233691088978329613577643208742193178385577870115635963623026939846133715722625941199790173079819370365312334766880788440858463935708503568312344920662796143336992349910666433341011022916096711906926963153304170462901997748859262843670162717380602678683263208395395972741521428326666190534765843606384020176945912312785435351632090243185760788831458620990622363640784500243232447881727684404124118795727366531867015105893894311405278645804292852841102409262576538642847157344655134319689221587494993091914166110067450748011761118323852738493956705213853505144499512644541798137368458569679238728451853050199354408319911807290324638878012034253724047820276988936047142499566625760872807700026506984367793830641478223142695165160305842029882110395836002222896071770421566875896839255573706828782881392462395291426469618628159298975713605329152499543546173381137832541157671597986839514493160484304277739391451814636274379506940109285422436101087618975711441225749814875664960751124068007609105223244417466736103231084824474281484620283787893066231540539660222833205197739249987672295718775748653504130992895056427623184826734805773353444107655073468895363280705816472857343333163237566752768148067609076286284331199404820907900979324153443800492881177746077226426276073709751946724873035123647211832197905612835082200117094855776687082132830881668188119141288388870709526207991128562322171592781318488908576804155668876189901801383000653012239711130574566298487209129845678668457936774182121407812641866922370284774910144089826497676820757119649927232591058502743071135313839122197855933550776906258870952019318231454510011946775376614593435325246099657131305302857710957292326171981587389089399292214775106536504216936511120659421931229200295572413493297239228611031980954713903313832674403300729762087125950676512571737190604455573992240973495349854910945908504129298656418402370722273422789181213332925566491083856035188288043958752394225462078384648376527168431994834849010592029402769997734603312033897202619559219063652652960629929262679810701438358978662600758014973342066079319445383022119014413930256029105630717781904930784274938588234600148739918440976125518776421519754740425304502452696654122193552255320352607323537378467777140846655055515235487117589486466900572856210447905617075069028425816326300124526842737851324240206286629239609436880458712008868438138987221084663536307070110384462044328005871782911769759061165271007501720568226963583874781278977839695368372056331834079506532221294549098070945557205432317183699012105913609946268544821023052431388968948757053337866649261358295437608436881043994701705531466767228784497088202399904462839960346995815605431855427412052711187835485595899383420281829765979801332509278038531417412005525009806037875937011901822404663915792409946942743406159343157464421156961465974659348748207356394543490536316898711029808527354727884019029496590946551255865256262046495788928405526845724501508663959457210664555109984943056712852760459444984780849272481719913320378020127729032846025629123199414611117662117586074366172139419737975548111116287372449784092704053053397457169322784290651672685109169410752623572504625979381695150355406704767952577550782540096776278922544865637436268795300137331304909450240504308994065408234260284065723748331610379660815658008275778493775024773350873260177272687043848323191606336826463273362199785546598173379643208707852408506299794198607145607507510883856738619866261560641678019057713312620370691733544412551365109371182838347142563066399547956501981699927550773124751540998510102669272015141180899081726379692031719063773444263499437535578080122573334970989744526528149953238120450373406699797556012707550363253528180256453683444300521565539418202789108824993211520891127837049238113196894727482003565404432250077430902817250246120847588112996818851937398364877075323269252430683230896070354794464625209893381245389158731949090184210186964789245198066456913076727490210317836898801979766986545111639943150132621856756092884428417594140311489324244258802330344093150324580985083253305263622135473628638954412507749572228605875717299864474764530007389959928707747038037355240435045356846457290071921531197826136040668272582393062184973858110093455087613773881678944832039979409303008221315857512722314068828484480093811512950847762697342881450624235320257520486313727499553354981596590808010580927828069365079307158025214440923652322601057004635213323375019592464353184642383893781583334603043476945080072272775841607567084939714592427308483477065993864981234592751490629921385860116880107214296556544314328790049477135904017368542376123290831745980705726530737971196846453783514269441595127396552858374774514579301445462105661073416243825342513545450376168291375628619345011536844013369887794002806830062654295057943106705799510786983338543775570816805540677632369319300678037746337563864100853165670725813073431832656947870055810411005842402736943639528055017718340246333171611799731992433988376811142442287494207418415060892970794061523330366072837717511619688727311262595275434963876425548090932203529534797735382785169986889901691245245316603466324362570876681941198928694179603636302199333059182095624353321867420779059036531640515698248385713017849169982976358543692536895516456182866284787084740829208956029681404745155969801691565513741773090892549267286716286100577559293910756497223385107351254771251208267453770757741326664648927119872145597425054697708485611337615510669406921338205139724000810227322019099708662480791431693815923190056946903372431931441031231089287163267903367158990049459145123344795595156370338655662893412921327942304200175790071723471696768268839051951846183899166038007745766137311803616669349156762002388735441920647092893925728574197093783288705958312607999918230486654729233849015392556397906676377557399719498030619591345853126001618110350963065941911633876091150681423002554504151208348591055372653701576248921289253917274925527941728765539373842022756215094886348214819422648904040758147106774559756117740436448606111457048676453945997278736341053751670017209847314953084612846213833446411982548995875508689365361602613372462120825210074071530185376129498449935502495605400698616146570247067602481629484833216587731509193517570905644735565372593237392131849798665758162734925392692086593968391728299172528175120713198917270815739171984648651796205232314254520026015360584053377900807987218385699188151981148714342048531256187148070442519969617381747441227908379499231845373708435632464464049505786716676475984603530538292917768881286595701316284280964095095076093822306378940103597391186081096637139837495961706811115669076616069533181501663923804955462719123247138001510948916626283425374923127579831801409075964219459924896723271941763352267543087771257375570099138669722312343511950002966256001752908741749096852635628151611502174910027931822025658966794151756010321550386154388222820402141029979735243683659616396110948494854010152398053450446963155251757987911897211147806223709741515360404728012632034704500188600840821797794140186023068964053437682409125204531422399877669395021442655053536059626433800666265481085889683646031881076043813762693608988026862977029860255092485904117134047900876860067700111780025192029202062470962261008904496319528779831396608510250969011103669057657864445793112054766695962423420426541870193153503067469536125628796634596010596164568322198505554388575216780001303946226429627720866199072327524687821579259957607675641467978252325247770496904655232579654232127320756212499463232860679002199364777999198179746593989707694344912884094840985914911506276807141911760771696609551303962956162490059137377195706282138204604236798544301881114087283199474860986500473893592374292695172861906923086818464188575653825428611639034217700981581681748173968177317776532522688771223239448202163632257922095293797036519025454047211584949673518805268285875343572454290080834801775490297677488933063582992976547033011783543114797151386054265018922644097403086034280069183836430224856384282325358286003024637816663767741364582955920042036168909363865540462570349061692853538966917664536209554570569158000361030538405243588872754241126679215035584771344117476312252048010635973573803311320459509959822361280655453089960553530229997502583407193253613950568264683734080552844090627854401336869747702497115223506221024933683419188296940893752204899942925577440786927931785403690669962038020771129969205561986992711466490431351661102166360130884473232422266384443904443735415186960830306170218687906651864048835751518236944798918622152960249990666545941441956006277295173207080829130567514089952880590461279442924756996204948458362841638742094567403289842684814854602344205788554839390227954440331145047561139032030559405518429413655841638557360208732520235948000660883399972603853248944700741286971232784225121742854752853701764228611361638162676820011319996324902271806124257520178449777538200015396906482062887249150388596478209487602568945880295122717097060416291598366536636960328576256762839928793830273799925607189670654375883423930045199227887964795581525446683293300876556973592199817670452423031620666655261766668280001286137756468417012840631027483474595592052855229474892517018540999620833883784509672332491709848727925305901721346410097451556538089115188751990916472468605636915859213270863094632720454968701607583283393341288069168738982517105298302367112184861927386421139795194556494485436051875840938431321308190129107381446869522825141729437249960755336569663307408186725726388475804896823761570367113633144532668083115623342756707658603081745304121719183185910760846155926565366490430430613356322039153171571243857122174803571979502173176193029410075061787752880303720731144103406225994350006251094331822664409468641206915777079875967405214459862279206333667574455494613860396366957155452275247085042711926442181270164971419894815277045083536440637357580712303975919537966034757789429039868146267479436594539294945295390258908865355921104742599342757367811055552690679948024231145755477461226393283218799085821135059831861799451316844894005471657007368276884619120274163776358571106798303592326198666884961005622083064075802972349724687506346439917175304404369093191756443323081092207664436806081669850545767323197582063254692920284775689796168555893491958411814080148723095545282707711839401962942673888746364142765866975995419284389979938567758999974147392370215649079444366716177064419737826193610740384501751031217810090508100830133685600414064821679077914533597835139497749964914068172645262921036849668048532333198031553313418556007846085483793968242074603570182001442430837399799964305180043944166150739365209342653226607912118755532252958336874609720803770357776364985597492518456029944974305075704337640003939231735251428202817549014476289715908709035612498933385085613467411758007927748499465283899763896981794263186790451969008861907018210757753914768416801115094704816915302239488529124340326022634991393050907521313781374061563472611094366804594587022886681413666177494024735695197630844779246124557107123626804993620942181389519185040059822876980331972813087195900013581000873698680202985098630926230583065730705283647714347782910642125401519985950991501523390633731215079012642796333508660684624914046926675845319604873330212738771933468066214159307329205833045325762191916944254401458567478674947653811452223731464929499971614191995423774507289998346018781072717811953079267421160349464453308607037996758219295864136576052558860626304509689843427764135483933980654220521601719149002469549210338269703145228884512757186850569159226063832756906629452364123585264740630290103062736139085154647512391438563431669325245853048218309633922964247671276264649048261220354894265835708658283653912714999784833369146774451807552689743247818611068693167047425953651053665419743852203266504077061392693199353992354822277974214584599254189417137251648155403679696666879972918661720469825080826085895512383361177102340269789014480918692534739029223255666004133095857559256890813036469768734381335016769667455958688803108217975943053400024998018930572656336635244343724914055569156437680202763029491457912645724444047968688236214800207044651676830009287556743690012320849615403247555066832640747228361648294751547014959057693682933921896648487699152564248518160564251282656220815916850031564114605241145843128392517668370443422811739279392433154001515170961746592515332764147464562187139729932810215854713304746071235281795574261354352038502082922453920411719651812145665537002184887148410198170945461376402351212097645457405216814915260371126068521567101452310089519896633393906541868179252645716938951900774847186589928104324947152970262839548376956919378153120559888333792266600212133447233255910676413738658266526925251314969778170655121722351697283335969146610859594817332784453294826368706269391152046792391156436090182715234992496462643282584508005237159744160263310055115644423419335346892032726458272901166474418927551025992417819771910949484909159777935137037785400968034575361585077342456325965984284821375390756889819106024184236617070591119593465280884494186184130920662198740763530056055017012983688516736751489136380479017607968601404054417748066529091731735637659331104729586636953454676081129073123720925585067794688019301002604810529419351710840750436436402196824222866653263609386884749304377712712914216440017396682030588625591435834102657050643848020057559347030774127330888994211551252018087499922013726370785436009242698776654686362836088328247535317882347056912039387035182255976588643392815114305815345779802590557541970060940291181004917392038368507507016138174402669805272767253823156599456752518878518072676191763932888094564212597341085004339315577700545430556938306068670152992276795986751277248968543203098225021988508908754798958119678123461268392604367484044877536562129786498746101407492358584712034024984220351176796376265612092962293130072299172457844520047023072329245325611315474860351914486135191895644634882057668331886007456238263554800685963081229730978178069580920559708319619272820201678127452241739383719885664110322208442536675131686900222128432123181683942807948582530048514328250180276365906015900750588681213659723628305250318129902070639053978062720028326815695642744298375473346067279220725935085014002567985279447548910946409682807031229564408262183156793091077409908811594212553247078867346935711993039792040019856840616964082412484016188168165279360960960646091014657026383006798662247793249735329911770552346880218455663551423724077664608798796016177654550381707300198974247413284304136590458941023055756534931351703931085280429893650999586369039982379152689749080451054553230590463891232828026426545049781153081339826478808290945060509264658649069605905558851231395807114012072941150690940174666537253209245928503449957364989726547203128417160920928560002362964244442097714879567407567801215680801829048282626683845050974059601629703739744404421776195180261052630284965640048038967685075753097513874328793057452582411802497125300302527354605627304918692691231398490529752037256270065668471946886830240986847419603893637262850205263759512910869136764104097673783415338720427808613148933306874921802896067172082309608395156107659205934260857682006214429893651452823526158591425273184003094131235771666584470398872675693004514742773545475644015510452256092777571659328726576985296818940920132427267772021092262144641516736209591863054124350723670434523856697360619704343969566819016248895015983264922894709223482444479539306776967396718640366403784333107598152195935897525187262246453001500173791167917023809297697601580932170660566311855482339814051400447206086611403752725602069973807783909208824634960412278318852762616728852067776937163880739215506129811295531046285394106501137010855346158721692087200325984611339111697490483136937906579621859518875484041481971055304558740731761286198625350702118532753476053549486430251937938541739631563667246857881482120818856908060521167048448789638082232663753489929448010750376052380954216872298136509395210384850582698394076491973729263378708332852575867887932808021984335394194236359359771927559614236148011662112620897543459230526980899121141005671862375981078672496530202377584034065445844091131286974227442782291227934768302786620055044172147170067920530075648843531659151746011628921585539105069086414051748817192054145118616332823283158085644982459132144159913898962706175851533625519581491634466366331860211637615806873450960445892609378962671454124814933643448863378659280957426036906854051852727174428513346268072328157686723266272186855064476530062604330229416474237707542173961497714309897341334444577171371478106938143658828070955809428821951614357047901970181138345721263035944948524713580397067073642207698251877490793326199967393525149144915950010275393220736932681930006322011772511717233897042368882092434147557855552539095731241233798929708839876837103970412848329777619143537295822251833686092213232634941201264538703664303544748933932807463894442588345600923558996524041888909684969105356863705218461336215600217088435894180932048226024725210387866684774903909070242421534982161718202048971113895508458593466181699277327754649365852123046157672843020547800100196821303081505395221318694176716407990352701574534041656643517593615584049563963632164366692581441971694712613625229939746803326885211551841640838896578800691594366863588740380851236590286388258106576191428765953380877179597427660479817888945761453240045444290606077001125860165335258259161607101026272935007227424421449144401294609351774064345888041129729014362058231355059305673500333733700360640078917463466471298220453717315792302972091896711573966100429157560330034011632117417124277091066979380733938299473055501843037005632306156007771822577444335520758222162073199749280213881988226040264434537266210552453066953403703907491930700220818310019306939251138126011032086763686307303115150706601868859382846984512213554950834237309817435221655908995633109927337184226380646819792318692795206299691765251511489408043888347863251583542889925789274557272573462594832781345330211572305746137118448757506604909547664691682547016825734003261113769557499596637237275370238972343785222103907091274717543246103866200818081533572691659248484399131388541764326531206273956484889237511406085781579119353108716765795624766172468791185869140897981582846234138998681558506839805012545606879302912951246203402347665281416188074328616511761416087110827554262010334974830497700673623653589716016819637182615219090778506589421397276673566081660047729687501499724907731370070675021725508293997967225107273231190143102895884361457298030688102158949069928063380429004472006669459551345942420191382388643220666879836950847713235305136114758232026762746475074166376648388795589894504406883396183428046601515385177521982562567880230822931187156991907296701976600368449709774042279500206248792505520925442293364370539545400898392597629126250126077429011140100787945217069217006179749228843494315850767038387454970587414778201059374390872388996063644361304601847268399153443004716937292932340749901041328598488806460421943168108325893788545662119156392005720062610772271986002257321446281703852021575212042315206914915763575566336890255783347995589526444013052270926126480585899770539029173315134039019582684247507278262173635425534695309269572011735915045174685163378349612139733634653977072558768956839333889428182274151260743557268003315726447510173770953761417089426052959193884583641953731286343795114119261951114672075080462053723964410400885142679398880018327687660575133153211829885356391079871091876461987150179558980427039979642364079707733742633700468258785180664557609054575963567803390810195619874703177828237597404515941287275749115472429972344564569819533992688051650818940661024451765477004969267291307236311133472077882270828043670825724267223694045178041224315932114644135980584633123563171430056639181175389707539205480813592215571638972640875885586415271067019915164280962174157475585595507400375150803398515497426037499597594496506214000392027633318030892474363200340193394051642152973940474079794668068946385076800566466173649173037986683818760542871717062542533089900082142638096627934533703435222282855747036083517741246087596190429241066505861191614713180236641288943779044647119083508943876870843469214026445763106435974885801042267894164355162553424021054646144009163024260758883859099841639285535717657334660383376193901901556388613523806994205949813045495545656951833832221179094454984474548685776371097835892648813060399698825121241336456144970689505022094540914053933996547770450905173986412378406684617588380655807754552526669499822269650964118455466515595382956826030075503477423482264329894906117772577726700504159952787826768722512276551279886050889319238870080642584624136902796847256634357629911224018794537423448334434863938187839157018045271105656524638375872525327961849477951974956136848891745319293726603189334398234747659855230227225107249293277147533320903861626038904201933511161313872493917109377674685016448163591538565150085784727204664529134607126702716351894851482941244397886455616286388451003761082051767061120670531996174021910416466792596817837354982131611671762670131762736846368786381224758847183972145974656560913963890263765217075080214472333927434981079498630594539450034669305563898588741612426943377253270829880347988095712087862176377813128090708167028744370425351384888522020496761395620022331424027678209335395421031222646598450038944147403868092055561103425741594990928669167708745399113259721936583109555354911260053888832707382442566429773597233968160433550818630164806821387984200573636841162697369167093616027387572680206512654587054387338118374018945061425676280415798763965549637483389608334855505762923755412623677800706000747100051293161433639437611482488795839785155886861644767250548413185714085874144458850808837256647364828423923660413915292919987918248361926023016757474823116929364518403614967604246154429793479108879939142737228100314482406868601024780032288303574457856464672457728061972976090076538378834082963631734672130762192227897593044779850555154542036731370910351651225513539272361154392737975590444215609512910926290231803097940523189538797683511719140738767981917949114766179844598269579921949992088413942633664315252880749863850536025707029916381305139668881260160944700030453377143021427238944474351961929336667369508034164236622822728217413093913567034698285558777233609580438768610906812819695704893421550763611341485675820812836520088433356268111084253587280228776989347592870217124609840749089285193698792582526580100114648301885464519712085134174390695831886077662422094593744632756329246608448970983857902225131128159250486568953206324232208064833046072980887354326024288144909586803022003993661401278545837989749448950979232527309353548306755063949955399578102684412987882249123638382844355440667555162557671292347856067741513047114316623464574061532590903108338502688040541407548549297337545521667839084102503134120789675447514996395657313833966470705220400830929482486788516349821198460525227675485932547136842644859460522931431186229586181788858737495259183724732738568146554150332620210873000182029217828341150155232000942886917963582921711663489711154442344800127741644238795626747109461687508762708015549634115272279874675926398970750142627225968536710490304104683624420874983728946498634647300336309422725647185926367182951027071474536549458988683491381056437599668451443527778309439341108692004878774962435437671417593405382950463670393853226075095024288360517273897696664058698810149836916952803119006487399531524209283544311405879693733435529436924043640189428458680262385402029396256403093979372888915592093749977148662400880987459842770167667680558413661270420227739676562374571377254002287807958443897642319505798046932357944922491596750153293198131206797125034572424504949179329156481139236424457889948527848712031695812562645982088014930503532935314954558048039019056883955622657256263423775048457332525383202998569826920296188405285528957457676329785978299636895384760835073873866737442509927819572039213203435304544673095450858643482262758450238046689332170914600961599048290508174798610896775196605891528337854998659297458082710633227916324621050244411050164119230474977464193509085888368419906346227510702633465602003357252743018336232435752020491673865709857165903408154800213474856360949947178123634514009801930374735296828505117465732745819957251615091969687092077341696482228095828638432116567441957098680597393713721370855361872699489359188403096397993049792739439415388616946670222167154656547589187498573520394905134880413720281273170906870561109076277671971531946459231716192456475847050459294776466466942340820499817885207192415208489154781924507904455720046118179830437103413429693322020390999620478965531245445233704515314083493140480853275406761974129630387209553346423154168575643984804025867423090986868441135927705716256090333061660956578210003446869776921892004901363100290198123686596643232657269447387153395818962847220419492512535686196298529621621550330157710263880788879540070129614824148410898099569981274355401593064975920774906461381228095511760418538422577991742674112024927291284776685659390176582393072827720276004961071197580316675006307979668368626948896181324230647955726489878536888625307008970551848925176947629970019714120237730847390841927972869162793469376030376442233842443882842552721218680892799760622863141928481748463632561391749493031336962514840426436037904795496646302192603927797954703938769904855097675304342463120729638753966132019839726376381674570332624250827261420796755494290258741078187856909837922530825804718417692472258135777638184345169255384967380383217541036037778660943052329753423309840378506379824214538648904070464010775615657250873205519217020468742888284773141329114493700815560013440024506725257686089011495127692039681986074264821064555932593133550054035013983956126014470852670284149212144204868094772721536527175397163247355149295405388300486286113380944030744453467729929179786185507725892492808979311513568258294291710473045608137044294591538932555494538281673109994027659937355504542680814628190005075894396478592551781042563581432746225888792824672477080191438904557632738074529103710312324742822700926855885373596076749466356580636652887635348788760959478462336855327768924138645029377458549377352060069432465311340823231213007981051004481723779691161390592601224770042423675503881154455236877150393313102081378107093744295378405347054198216512341788364883109072923073262039963593371857343663054353290660452410162623394915698913738799391897626915134252912238737728237187230210371707761929646076789638562517459812625486888679377944712238578993573784262584051628584436165617268373496497884893152735725231659181050132735471061262981567966811432354920827724939925186770138653336000103268070089299426928778400251457091716920145703732836509726131812728051330661581754379734884264705581781775465794418977375008796378455229591737921638359737046691040682651383997837658483456015900460366303287068981829033676733295264792464932806716973533238263082330875099475203639676827903029196725902293082584637708942213724533208827978699870724067287049699824826057907279642429158349243372851611636853597139173668170991149992432346655534467985176246380128887668254825044911827657813492876215410966905600588418069483399350646727474502387502791813433086103198393779945385509453679938669095492922962291684211881418724388359828635610941939847224855203900390815107809325163122190644919940287339399278296674196642716588747850311866679561967045629979723606290458626180804596790498303691685314863123796104620640111650890177931178576923477632156372034085969241418726730715766604354687474781238534581224234155740686550354539660777333498424497499526799985708129205847944294136311218228224118296706659175542177143263563769132533704635952619655244899541428585181586257748125662859058376568599395558814344829413776829484684419020450850915561736524561633246181450476526641305249645462350889196890137971529907907706365195096660778119858738804989425009019734520789653946121672349451419588741265586721016439152096900529151175422607461371509117590051384226061962726730873701016080396113686273538057724403644407341838010237297732697644063751358973244613096674972275648836132235672750709584944603223447158058821710735438871637051568515508053435421588831807884408613663499672648167596559388214843248323944485144022964177853443047179723942358085408430172083390515779833204095218053430841918873374076189738746240120065625754259731089425080715577888377608393910714151551359743956491111086745019856784898935973306565390933852612902922446612061546877749347480511777887143174837644189108999253240840618986674801993855788863888645141180299138210193400201708552012960078669779689809285844882498030565604901603013512425154705115189758921232338638152510628150430061152977686765228538096771913520632269334568917108885335883831613763304376354391440739796335531371997040030901448149369632216557370513090251734263927331592564530602561636815725511775139407592566978223520619726068314413196375281975716639960255272941376413905072964917256439531547632714364970882929915166752100150390314953098270932861860274283543008310422936021012526189241117605427832031475717902553735707063089955277067814976662767979550557118223241345885447725294733149480723007857689713734149907285869098125433752057301237380147382476074644612436872851298860842606554707364099681605579126319932396041585959837559358781146848834586822264007162558385182590383748688946345182655855185845525521090115133005314717092955347812885292706287834768601459517806819664415018138451746118913583563697907148581188744450267976919406331748937616343018992178981803289013868245667571809650649938673067491870552924918243661524146453613757373220983153238915653102889942221738582576874067609838331514580925070954876989577955297471045573831384154640832312632666151950035394403978530944166951901343504575929511395629266788259941424764923366250292436428373016063780158398190849570734868164438877059125366275508930260172689131570638464138271172292295013938754001957594504611517806292529932753529982682027726843892559339619842183950387523064857867180028775530452031065690470044943521898375481470996568708553402139018345488510776763444012339596959700196256571627971581194942583373130111654174870500011357309144700093698496352709393690368750115066150517383000916699126745243614282437431235581512882317620954021278980866243453911463021905265453734487746081199583295228387074877968499064538638094665212270215554782815095703396501057474507135820812389171663593375707904792981940990908118381681139118893919913049459228002557496090442267355930119457930861305348741449910395417867216794808997350788931020998452934324189521134528294661127227603952676089556471186350878235134596791404682805622631451352590339125846938786029702098430417932814600155906767056317472234054347419290585312770485321744356948792021816874186920867600380700273347026607398425009514327269728358025451750046796291110700270483951627881017250372351450942418729529158469735053834927574520009462038196040155092257078135365852765375414962521185129666846443741049808455796902491189785644029191202168236852893769392352851206830695267609285801003210250660261915051885836308057487679042255600674756535202295384576763113555528226110670531455399659143193587058837618137329656754732734018438603326469845460439633024863620234832938646573562224723499884180323536123131836616473461154554837219100323647057319500088636883660794014475566895052144882440027739349413931096641252947619561623917553029446628952809618448808998731618733642504499360246243610191419764566546131963411676837961169375907839856365543278080675764848337228472060294845476561967758918113310241951144449747959724277448955368505319061715886692242590215033787833489203070144868407567870254313592333820383352348882709275003369690624791130773095249052366386575649982692236526240660708588523669892363043382227305066480774129873741075912988347805807577723966716783116091431277843728817757241339537325440653289758310062899943868085647256157249536530268574161552225272137584488171355882609651310350508804504853307067896459297001197184919077438180224282602058090440356698629190014429202624298316948672270562397969933178852968284870735099904989878388394051971366063962778312782365884870430695086493426587294884977037688202562304998523511380932766491764398769906269328749292620473042716215481075230765528564497711576024634584897428277002012521864649910497430735453173612268305556755671937556751963527870002611437347234955246658500243602679791710049911043775266241636286628624330816710527812093294780295439481143064575257970463826412114156678191761244621749228095151921843962350326915550860803674403567464434541896106563516812669614180662887093388879935173469130862744593119776615996897149077013039845900960634195801542651461558665476053682814092040576950107963855865897756702945548190054301277665265718239567411571492938796363020171042846002099889365395449552023191414765183826617731000348416157899354743234447012857762622964774007220974757371121434587583327499602723961951615470003232721504790188087186031124196738385205569098704121239842230067770757375110576626814923153035148552163741154767279500246058234022296863993594655911514463269091805306308248998830998232180840347971978433877137982085562456298097076084190754731280960812558330919587457542251408777622826144543762363825482810051890369857672788928273520852709047197361980298997114884492667295758696145218704457583609973209961553462424941988628188209296131706640087259497164143502466697003837209687897372643694771002313087307291726068557083699849905078956529288090520529322669001112177735511160796823131108061493889101709271442859391819838296395472997803753280639632562539015085592134479172924977642273813252475145463481054541019186159523526938478386607769445968298071562127913057200634874296853451534371232436083968505271108051662420978405281891670331481252246528766069250059490538422227735099641350451062791158176735493186781461215036193871457140938814194565517016309971743863607810153073025894108122895415265237658078341785449250098004479675526849545629772630646368879564684689393375507127498593838499303215160485049405313470260513787834192964919971597374020783826069565836992263150381308187346062584673022613078369859625308310414292273394074312296053619118143723028525518878148129842764830593920638629192915013190823079169772155410764085181857467136708015916468934532037710432012145971995603217751749836806481190322184899295455413012787047971049232439854917106761318459808897481946524596325285235231830094253639849550584173980821741765292568036400668434244414124298556800297208747949212409406175036686882531848374628554176476858079104836959942663747751713627869452136422210626372961038421195393600407709228073184024670583613135981715030156730409187150740796020291744295884505750703491976855924703333205889759521317629635174444384850934452398126481333229566039669028800526931340700118846990656532896884270979250290225896256937345414871397341390538291130864394586906486662893588027293588934424181655553322123888341600479703535511386568758970454684567475765369958105884597127144299923728834742101985538999572687715581631927408758296205798073755835781850016106308996144835995954090782772026312709750376395605664965441743408720230637809550951147451331074257786638916563567844607997755665988907484021233709431170204769211127224212702055582235413687902970553404455166968745858835800061889478935332137752009016372872342434409352487417718048632587052824881875766584995447520400046599309974644613551053729050836055984956042426777195807704453807736330092481921077365357742643372454105961835554485051887165330771041705417679750257035785078850530612881649940870865666620886053843495775683307890346962271297189569629700662709772742775996828470455884867438152510306727267287517181102028102700019263851402222007476351930554619335107044097598969387631712117099866835218661814312726246279675606640992073881805374754374683435045625971029678105514370289598975844685779005337011305457076106115872379892365194761044585198343260476546292045135042744643111134631342519585648630125635683995434683500664696452613430599277945208680224767352905994876088910617950356701280660574843022939967823945509759103600296375122624082261664071687536152924789357683391821354659448334160411037222063162277718733321073939023187862540890354605523888698341354036944574112560332843563037321638599687918861359162307260773503035097927718461341915012206238983516588066013153991075593333241060427037405976544324162411959905893465828575890327921136592406146455185626847152566514610876840294981724989358542374137922007116704964079543021234401028741771111964416187686827357206030569010987834339381426364530596509574013446814598885869132819484213305818302155696188310562877964048467535625170786805500600655177491248413238051758231346704758811044724306276024599045987393891458642302618476182792587015144495657350997289999883943900665187124578401690501357142045846442593694108850547909333210088158919542367271821640655679016022969877840055889990776461087614663483602406176181446761990988964383199694576003393719336385907204379802584646989347673294565609326027113424172152199028433651163679778531007183412048407998514405738265704644811373906338973784302237558629173675543603907198908617331702953412100336836848286751779479163445100835962441371301589482952495150467861094380739305971419119116746401837112578420800835427848015671255146455814454647037441692135187172451936314226455472000885180919578219331665133682063742985870940748561872511452088885620404112441241278165179033797624236816055128139845110820738950041858455303355367007053874002219396027353198945836416004905016085552422658525165042706775478557162301636145714854627720187001710517754421400366268609682450201829397016609443683659558405318823161802223284973283124921246363385326701284534171450751324438072827588073932484636038839653753211450327755883377534542063998639229526682968174677122270339843936684913937083373845469009841378856535740973644429957756683050103594560613320252457533193786750985099833026639463942316400578776106018171993375829643593216341102291420199878625729624142089782866748219639291284386019628955700621506524038149704946087765877206616398373692321800808218011039520574283596832118941024278046718197369635350620178449040384504276954382568066679498064895275804427216687893599445093515259976264289538460686610626514458119350300344097227426711731952812516204804335965993287753037056596198378215670203362947174549349351046887416662820645643421787199392669454153118953839595488756425325129818621595111799694649874130773987484268877723419674908049648641290124308271054574754922472959142434490145201415576893715875625939930921096875253572397157786892099898973657873100096139297505663102729690797611912097235255940453458360778745728858202994370147629928157056295936629157601720926680982346578653096106938742729955060255932476127462569236498097841395630652009733580345494210998416402481180141744294918268796522583272727003071504874825257525536997251721017459937087202929946696832003522123393877235703063274837779358315445274455416209029403848729019466088730742145334289574225825752389658440199503359683293655702274915869367772232495516027647126967695307863632148450970115600850691780930379386922683818023415063023939071656183939883722254939416594966167677000515261596821884474515976615199292734286516338505619552534512404774489318437396120851656167394505549391043420394430890860927287312620728153439138125875574034850012782546213493380674984329323956461344565860284221190313751359022580526920050491469287197930784563341432325042303005918568444480567808221997336845769138317930117082667555431063535415231596063088730429233207783269415959786422892686998723239366497205940119398795415217724994124788236574546368506158879239520564851790912524342635257208383645638536419708459222605014249876733074067965057295599817674295041471628105597747207031047980459637046421790702235261176501991695107297811411996155942147710391923979098581587098351131895365652551787537886220554261864145171878503569781951652195103147007100223478869251232697431256411686557382311279044031246693436081366400337541766946650535190870735081390489732641419927687915927111391245405449137830918292603606687377733786988264354283942012978934239148788906154721151260401249528193283112649088599802455004059645440374424670945094469291144087421268990645253567425893995843624077819033039174131762417572348467244241471429328208187216570811703034253525463210873091142918081611339609841745216498317066360692070305929899159555702705710990767339030833254702717756455785128007771760581411075410909317222068803554749876426828884042544178412279930882161687676050835496754245833343577679027060178862917319141579674615890564310741386940435526265724252838171417314240983755061799875750739601382493830955945309679227731715728842337415638259527362304300708033159153736270493295745307228557117376510614462767489421438638748775849541029653258594887973612135469180972594918041704638314840443779728522778623318642326484208680226113004518400356772705486915323448811038757480260961423425763857362273511155286837536923548559137991497301834297839823430232102499003937889243315162631728883795184607409670445236068932691091046059517879357619596860318586111922400416335556309516789305524868064988368721087288605688552535724043188541245912936816389360486980632946640795668071603924458850967824769982394927576290767677118393212153404522529298362238810757720133208111793651240110201826764449848156984388275305068093613964670994500184270423319137393010864972091411143970387040207790959881523826916703269175935916410357251380103708837067911599972967213560422093419008310717616378287582519824235061022855290116995322150566008323590164099290403426417423349224350189608973328404519999406322194284442460986763812410382501547762735363893055174470473519141251119079812549004655048584527481733889002666641816140082371483696414501342233657113080673883453496472307722506216583050029929251393817617043809228442424128596707786437992638037950975480831870239497821429037464210875512220902214929774854959014318395337597717793491660381163555399020774188375991893495319191676881914600793721413090958790746948109104020564427946509651031499043751129954251335782239296584079876968507410356952010627965120380706514665143587719109509487096506984204655342064235508829262544281510561116546842523055395576604662835784176816203744094155781701964911212643276200507347738575950326597670575161498508102785090011463878493015380402858344090921557392080576699853913713399917419734760917646900095125551035110290911019732984859806953405390778133470899045920541800844608578653808732535729716407078493658314461397138186925148419090019128586030861835287808027016660219249948760024144248638224749028349190457927802561908086721814103844607687538530767202419959170186387035272553037225473264360729512123874543704523148010955052536617789263915535802434842159558950753838758853329531921194678424354716993728257173967916067473292355493537511505682947217036808266279024921274401715823481254500494935895415880016152472088597374296806650743459095850920468571016692367539187073117353607052638134368403266587400479789012190574228762812937404881857988538623374676188784522338643111329932282234471420035022901259387122834906141744848282419898043427332047433656776676713234349654090081912989684742960240961997186395412162330177975712765008141298982452766505638712588161944492140654088726601243841314006044543081458234586040326909906277245103793071669979799371852942576161615217427965390683294465344778333646414049731963729067305006893002855891891321064841517144506239141444221292659184537271331956205462048676708495924376438959876714490893418483945752427737428882670227677437259861237967864838218258267910917761885635758305951706603300349697009108991058815287287788286618870175798435640582839583267429425177229068243613155992030394721035756032793979949015721047878624721374537056569054420595583381134398272723781008119343204644467960619381684456297020023050290834502343910422803671972958644721088562193556613361210278444771530481966066585741099912495610179773158585402428649110667907669535938504040309143786902593087943029200553108099494225373054234095807146461255434575099501479985321784604644814431302975162020961004917418240688018637021157537253898069397479250610357852748611554690375358807035645358360667873464722639015633775188060812435431996722714131215699411920964121884865483705979572852530246955865448672330559736603421073110799795328143744288975223818643868105760756846124994008932784491568405461322720879910111958888188969759655873252775736859581230338609909626608497967710095727724094636425493825914264236192087110132289206830803395769224153886478140559716687125121976704333723226469756721918952895521810703904542248074032646422607067689600588351545682643517397420341217085991242059098246602115690172384991875707680081713487106854029986359583643724283524044629487437079125124924385967684207824348249306654803061458166313636080426029269127453451772262723681727975604421231191187737030594664136540435987709830778386670393226705020042429963465628950876477220412462104280930825442109155584762602479508256020453365996469814866800466551251165942159516957742729215240304069749423987237807545254722679884354358351945546365587127241846253374218976689931688859724894261726232766871402302800432882835730235473351818261986120812715330365036019660717390467004004942592767889062073493839419917408179988830086379513144825721004204557000749206899633605416271754726275690608033514569859442284371695705308237231525171707575251179465162149484705867500126861003934780504376994132122080365059459842220573437611277609099463060024324162492146062361552757704611420559792376556218571259967108671343181596500829843972217360916011979301992750040556805686210565950126228998747018715028279026998638098681680564466737378074365330846926448617257332475263152886699686347626188203939702393818212985239537385858602983422549092700191791449474790091142485301480033326386693654997004662773576133301146796066040858291270968798440652514791824642106975180233302091496246368545172899693071138868434615876109757128376143903494074405776954345942766763759128201663640156540014462541896851463918130782378871842994039436184033663732388657387137912125197365644782021372574526680001370678515146210392711279589149412909707159833706471797056557431234782919578356645649776429432981612454625243976207742479991539736664802519182779769736272792505545331605346954618185550100115072511937980368098377500087263847944691088365157583247341414593636291308183468507426955112372912926329977078997157526345571193087398405831527529831816540628065818239902828360940426953328825035597579650073101244545768911566786160166470208877560268629101217155458690668862564090612176284840436686688237390419918967933414038749391037541941095924095949225607870386923584015123208659923654036973789960701896584419396903747547738752729301556592878257593343124065000978865823466814093707066505586423165472797962208608302436962172137662305942994073480357639479275181475656937661047891535397739542405747242278442121036018048283679132398041184019000149697433120418947123678469085699475514914338887179800604167104338093362096114263526508288686703158698103681659713051956120306081623197517558039696679910271894717483946236724198433992136963752065252910812664307493599665638409888261258316331475711639435006891458874624758487710291713569774290411452816873105600160499643348508638046555742901056179591884560473883201329840354054973303557007232710303459942594509283539806647450220000786675072500294182732492382176587509472685553244346609720346607445959487184766827996192964553440781406118413601198201373918426182567004882482044230156537655287308946808098928553505232626404236384555703979468879226199032763112241854741819538227471396349460166727484217885568903204555434262756025084161585653828829640918731356765110716721068776394868723145565324418523544183461042402241575145787647542929170117121786786846236161054799837307409658368635541821312291329607981812895186358949118080228843484157814295613165828141018959791352054298642043029716641633314545848333739036163501563036186912439422352506930620280579400120105850657943436038858858859212100802950282487806155756805881218672323934025571410155956874091080721653550053034090949319069053977706065792214438256235873480255894487171764111027705995872833230324498339107536839566119629336540618619224224540859363550474085185579612032371839513909917831464336586865322648639797857508205633035995306325324277949350254004887711350477780597976827711893109184731059804316358138159419768983265524796113349437451252900930220150742576412572419694051373332437994975337848775743653189469004096674620118941195859463957852710503041073474984997258870350340467596590224220805229131370595868500123354962879546648532529628658823234239011282875113138790057166574379718867140862212541091742384918956455346439394568895048564132184372364356533200200993814659741995248267535484569080475850718835934637505531930218932649171844054804293625584761928049902482657790042442208007858283803926934356582963407287277445892740242996154167121989535842023948394262137392533420080181700628705923244909580646570181973347102268488728886978294773751040384286338557937722770872197747697033097262096246415225504645953860880118002365637235383437810122860614529483421028934216838136083438634120321619004434471691621427906146067699848564203623048033291980171207459135302437097959402568447769107037410280883253475840402079025702866060558767877125134369225965966254209319476254566946398635320700223861684411841273883929877766814694876380368854159934247064319947994328042940554728121984170853271454140144582777784594714115094682540278586162157555519470576231700346888728691673029106363389644099551416815378777181574649134389752226730132657083119986891461446658114330221828642202324372523638703747638798478946507239486833474994705083027567119127349850673764615628621546722865225084513841812006216798514842220242020103712185187399064804957382797111285467959077579011904648021269925739097819811115698869504665062522875017296503769414930712094364265292156590606689712390379624957268672913743905530945422763862545458028341359860196943627630122645951978066839253233696590809803667670571560079125202725773188578108405435807520819602212796965703108961884409093605563644694619978510829191059346140391192360575779158746204801483237306276107466342577595805682220797921240464844143491284776346262340161891645716105802316932035448941741348999597371759371628717061189218599199235964222720270935161666811719798885813327508870856495139169925055049123409593543175612789001093883702492098421088615169929021519699408998521632121411777503180260363840426796846100362177614348564129348405098786735296536591862365466659393475903653448469959075157117734920752162737038564129938759696605295332692007137115891304129811800770659656849815820458081473769653203011269930256724841297402527993123509020257078955973389039951769481920933004635119631284240315745105894719077957346807211910132497390987239043041061862219897960509692626275280136055171053617346129876815067159650256534533933032077008667934170124796445925683135479579815932120146411496772403869140854390168093992369083847349145753641240220847919932932176484861931359831056669565418762128399226766702656663515939062319899297429367461826068503469276077702030401104123428963686397809847292081525766659329361877269306631737905540386612082692611908961627503692767710736379486042097119807023457974089156257109347110139270533351257291332976029125199081307917005189940192491102970017177319567455254518216539181147620063618770206255304343815402945762708682043496814080742306893328961529582456764617465474237769993153202951051270663729419729020370946891629356006999350004195616842331205414929824556325272625455276671859068934690758236143542384714193571267104650114333547684002923772999890792847262535107595920217253249877289349053881314976047610296859776288900728494957447573176505471885192263287677048677502696837025447067556151110608917241850087625961124671381598680021803957694112090696463119307957869886007217219745045986348887147050496629323560256244730272162912216678385810237642718123395096966582983395481005607236910844137589222089314948932423310989254321531289998946768834407832546668354966855257193380028450710148920221925016989616735237431840181961595877183851074047249086912009229863764325136791462605803880880404198367332532560647059980614916199244092676274167951207830972547160172060795287245969476183274211632944736994273673856226452505126715473923953673229045193882077754338228745397495092307971039254196957940265757035192127759192337168305874006598088097865600421167672827947970470632816380738137777064040875183438291052438962386493290777565936265738802572121686464043874400154840852948818116083080689164125070094103386942070848307509527313300839858623670097221788452912621943518714020292869212775095199877912351941460616872560753290097113694768259305451290441262778206332316244194726926824810966003468527687628111543312702038586393964882292451553798703310814956396441602068449656624341131202813502523216701231171029429924953477172084410815574836686606021984449928980868326675356961756356624438060069618460906289949805475847397512982298534824159922116261907971146095673179980345275293450769652174489723105805963978292500051945427764433402876730801081782739124071472461645237284634816541368988975017054683470246694510207860541404868201145661522778168155636473506210220087401989057209892524973456617343611783992298380308485543782941748056198959228404912591975743433204247451803773414876074457339305503887183634172842286286486218894958187129745469551067475008447529296905368168070195806274702086394816586314734776376010253827240965408443369873595577363939495776752498867833674190646169005989767374443935829528528008754738322072703782348298521110376165462938765309009879719604642917712866740266903866147319141206215419109843270918812193837963999238423635272621645409172541080562877451591772751564189042937844463947002315202357586392654836089554550206260152196003179673315021330225112894858065421339338433990636767923774408712990441492370095697235930010541143395397930921620345570117541533355847842086291177075719846505613267088237519658387450920294689629975286691919629580764991703010656000868387126168635590672189924939249738865915508294806391404509209525151719581970357080809570844535067119243264551499430246265951832855193873655117883244495973350611671359303700825980894674786140827512494686083776570863850172637656040615963948506670622330835910491886053652831709248120520468838798026813636426890963691235692308597099873474810919445474290149491254720303075646637312695022925324752051962237363017113484279106448541812252365034485670598609111006983666681089601647836359052965789301868157345138263522852428022943406799610117545784866185925055439627653666317641488698572604235059427623754608734394352236969251555445322998106340335340833958585780215564822413534036165240969491559846090499110029708265122178578438419854454757423553008789333326088523682964291528065081152222398931282797977779266024349899105038967980798700473238748313550591088911811760694588364065071631227700115194111577242310157051972629380081200366464299715585316449090349348229100072435966387120216397817778335543857996684123233352697373102863291735663766613510847090556256263593264396982707070814004858269265728882628602043798005592942719841306380500337114071905087523147138437843244690096483203135982522554445996019588344294887228840913730331132093131993371038075614742875273488113731774156993149171730361756003380221072398630180784344594089625350758620884279639633131099181012806710484658911111934642162683452869691464441344250200237491188324839372224242852029130288232971159350961646372382683024085920467184104522721088820513983796050669882356191516923338754150848779147590016143547818598374951043252661387059523262025072822018120924215149971607451610843080020489737608657359519839060497689064260773910320635933847849959177526806462684175184732097880293948422480276567571198853603405457414742623724219321295368178611395343133477807829602215545919908723630382606868359416114828151958696741019526852396202836429136112734154964404255932830430668248837936028083081919742653541008524573865948714619409535196814535261425787158669600426652652433798640443222253201945096927282983587272587004719766499215896892010677469894731572401450565241937818992140197729141946769345872275923292719364151685345497742532969701494680457125494750407717584277995728743269759742615163498314850928115184447092150307102280045506676889349901694800168921012179957434293891689554541928343075148172630078087642881734715422519659702026514829474012262701987744950082661613696179963296971428691360851579122596014203583199904282039109104108701231121313958446153396636977818603292134261708755652671914056056869184482783001635772729350818066915499336782061517103772145282726913584737983845796828994874471439537079324948233284146138517289468980315488354918045501033709506271183116100537162490913304960615492097017418120762960495316694346823387394293403204250918089397774188787456253725240076849468207306710706579757082292450502876451392090391639346465951727198417862131418536465537719984283144893203558010620521822064912965465584143288576731308699735903144837348911613408552599608532069465439297743644204054867156261661080940376501905473740071347667528472671566226764578241117114577709879902473735635495787050665877486567923102506284053588415475004160358979785713575455312983965917871442651389370139888382692651401007937341927625230223734459521493348073182048250932894146057334154220101325902454118524582006596752062999866134416182661346453186589351517851929190919857229852515583798271316861238897533324186033669225903457349834781235869103012894576536500709266491011389792922224536909597624948879028519630385221914441414409450252355765320653550475334370112687010920229886467650341384274324743242423756244348402002603226894325756530306501581100982246529626804437213937260135692723346444716691106181468423141379695234310327947089034436039811757423351203103450534085071245883585064562959361910935700108617239732546032171978203369351878309092539319071796169191250459638715345463707199119008709030695102275897905753105302745503295616239454814505544347284660916701675932325821454485515819686695368225387081482847665285143391210216020239530648919357465391401256545987410561646716411319445344829281703933329149562862091045465834432771478977079578883239777909919726140360431439062799657305524655597789319813675424319891579341501813809512847055021303660324006924597669964552138913798722137807831530593741862589864000007244397135689058060704989377840635128331347430081699483088801932410979434138183699070723400580845949042952517643182382763707114956509116262304841638714378089848662595233200712563750787086903142458129139490442153440420839361248905858542044801780523514118066213421635517328925350991147872709260914102256980678120585260032371695456182275435334111108086157652113004427519575791187489750222806388724153241343734616754533221315427711182568083593474717419825556076651309268572489448674355813930784921278767625880141228749255335707205899397933765636757517837931322185157517729895598480635100990848772897701481935272564716028096377206924775871389618124953901734442792369479153580300614442722023012496678739141228931096515342746405791485493901666746309775945663026213115895933292532694742374923514306949742090974257941856259238182762263759422656870406302394445672829322449445170009197498169905578796757970853089288984015969821269504699446556252329641295425484068719400843079004181645596665262776330484034368651663366378195005158802996655146450768872296056744275284519887907241431580521423542259931929814505831960778743831883486243903686271484371568806795383799757836014262970783200492143413493345737358914923553953046327377382420027418026000289288898334517624958350301614614533856823624577419950812885587165439144178155220819372039126078578222265959400256547133483611753297184894039278674228948040963106765375803537419583530031445309024458685196025225372779423212693198091725619255551474381782852785873259443344258159706925745709298382998755954832904599202829629903965209298678541288725964704538732004495195943350422182730728711777456815318285135275204593268955453407422510922799292550384780300104125268089399612990146396972486504798866522048691188229006261510591675844828515463643329792956226030613847356221457706983527409128781305974487952648113578457796672463857099721863755685582094716452539505327582981376395673668934667354849070845474027078663383984851137807701009639277512111441797292696258449945995610243750910922410107983260463878128431075383942734433425377999423220133166623134760937702877309986874921624358411378651533756742979913630779900045070695041325299321618182945468819156523747317277752983898741219319700454009739698924839444675257777366302277687626793141312367560493283933401957784950000132407467600155216581976549145769279806323113901876158840305173045993499392738277192196545246634132394406352540838678733719120850673415839183306188299137911314333611307780389134745439507028241873212759709097867208330754509479950797607728066745558455493259335152871188390838419165567468627617070140357292659657139292703555183349908561406462451472858697959513562905035379186844341989670273585473936388184823548694706170296962904609962797504783918272816118937762686672320838740020951013667577971119265186920495962552436358281912765294472952348139131218027545555824979886170790570862738911730043158562613554312100272678708995443179787329070689229609674648371209447715584872686254120188177554641530407466290473575998689583166454065351599534297771279360176494441635854811272135350222774904117688180807112807509673493240376875334183901435672879312842009578682018638271930855388673271966868724356650347385553359546426433700277147619459273057459821513920076537189349415339879592170771624991770395499841188914247051439266595050937841141052056989050482594018820835807705016734399413174190884944452345374711443775235022254893921793007104784366830258348385412619428228187342039940040582049512062852016120472560450570764230493436120377983152050779697034911785211748910359082348414167640436340110604728856739811398373982880707114010315836193668278916500800262872545454598980288530258171352656501391290549883717449177987573845724911038115090976125008719699140451759243462897380009376208091096575150949068843946044496178989249742495312869132384455331980425074538696758476933027585664089563386265176077583661287377095226160628431921658330021819387951449734804368216592708674335791476372987746765717625847916905820720999160303513472514493441977626625717543382339193962936076839041927073727737622515118632604214272311809189626871721675806583523082242679847256161675928932323572369754494840982496533817553587010986897994048085960863206450789498493314256815269601810137351851950193358898366633339931953431557697497224596067960166065161847665500432416736282550836045486019651816546611600427265169512283292899126422548097285591686402768159137543207491806552574036840486354987801865013413468863771945348828976703760559517479510085539836699500957060860442480537472237968765975420981645888779760655246761806927548695885640325821405037007335496033224112142372791670803347529704385447686375616039329486162073471597967822323696790100298335287940846649140538991900725208537536830096270619733118490989984004399147916819895675541442087628890050148328887532001915139548266721357641667688764331956627259063891681241921536251388701004150865562641275864351088987203622723055815127601898046907571899396842737515579561137238763520858139737226935309774463116354388714036576623227570124637060618992738332825116219117991550223873587595805055977448901281561382736075433200386132645514665749503894068212402045155986481560942177072310597133864331680060265054403511822536470786274173371753666433406536600850615643403243307465542730788605753953904106628287177430404236653517275218667891090902316593815676539140329643790849476197316032142159078133119987832296475535746744268175487276210972594193838731673633693706356776555509354460610640498067371271380255620603711707768572945782806124393702590795850643449023628132392911332755346569988032197595587716075102158724966772997617314428236961703510033193623082920584392649345230011603989112209519215367463953237346097190818506405214991408272289563950904248986259898079956109915426748995573351551058139341475310620469779949369521212647685753063267829183564935247253272367081111627637805279032903799839105277310679689268317729024363009174159516749143316244503193366082338164021666614100751751166030009025004342911810960357051270662022846841959468472169010662902426010921884886646859371069296162440025191126019869533745927614197998454812431001009559224969455353156071847334688345413059102789891584902196034486683662395570908428356170092795197426872225679786958384668141553670865664091714667364619446308435427461247103777346636412501136257646488413810567881988130468592918004078717739163285315745595866432129162372296347169467242304090523748345792332647362608301616621828939261932221426761487450391740945602531772458089173342357934241176734102823646239754968368427805788126319792730243375458395191409778462216662007777788830584045768916846835250216088318424621229113599451951328901426201874106773439492924255790856864059748394125731480997929767077122043485380039440198339979722221046713459617331546737105818821038203115928510437335634064097309180611622767255187422724454283857039811480442878104070024498006680472267973253290276351923767165316662860720087750990999951393901307698529511582774505866896467638386169850793547364748905174689113408649519932516108663432786758289993280047738440575867267476391918850570178393204379038042967969209372686258638848325171675393004351326723081100017173434059564226527680973991403592326952605676990286252478192853602867282849354098514651927083661346775959320250159191692634017242167674173016348744226142504310024811282019117310591521135312908919107368740317348646496674659034633112318702359230717067934848187773542183074039669756037079902710837759717920528077309985757391787024689908280281234538985039309869291170241441644379231489286823850488245185220935495883574214704218385098948471304269863132281467795792862634372054458633724615054442715057830734406148734037174108508699263309370051424930526938208481776947993977399803526330830572184958325517204713633522337365113223837033936193384414111844142865322269192391513989290971018842803629074437299518399228945585674378078741874959288647524402909989988654538054199795843257831714756699158116732380579175431237010733179496572587033417098971341364645281110353686683024381656198125112499792669550470480339920546957486213732230224489026493960623320488813836965813818204315947576581948900224154825481885197275522565475624308626048497850428472296764446041921359618480357259877529001749901321523951261325915661049338962035596224386106460077859120712347932417914306522571091676111246223294277996174336991174582150764427861112680355762932774977798808110623428140090655474605556084290458852965807506355614006449085958211363523828960792877737801675966477115443826024495577409063850672432838043356099529010721208515860294887307131802586500874593904163926562964749350474842125763292815665988203951334990652675084721933984072342062297451435182021763066494040385320016595733932157874687140225446698782219366250309162875457535086472966654469916042755382774723555009988478848050377892093648115575651349655687782570986258695736312380572696327427843782920062758620795505938994030673556009807321605201590471831335605973981403243539759140664070778592695497718605182237930752695421202100811954542628476945226200559897435580631763848352766178372307151033729354416840423564423603283154726403647654124992639389313411301228223265475733043850537795419478643182793199738934155769260481469504970984380356358063966952003602180031683652393600257858147655677755960489156572118643950250851896548484430998590102482577417458885550982765156012904467451404309729111992657195745255115269573790350392488527436746902332842930671090710122654205162095110491645931115587709560035520513047295454296629183443869231431521661326400258066271280718216187740952893492145808832004479545333583383865554743086611564120643682468165377645576839121662457833073409720089874539697562889297186958983146619867307849056010798101623297458481640755889306711473684603481026282182600830201514279950660965307411662280849723714701227825003305177997736760543201156691385249316814233071879942185717844726329893822889194702408388757173550174530688537910436431744442859421276649754127477500875473234967197006524530325224563215769608768022695400438183376481944890003247492538636770233730905982690142324336835581000780263121535078739558775047989777135547622678545701175584159917645248471122544183178050132394771974494170052393288943642202677385921191405880055133132131722191445358847797474360981386986279422198974904889432918125935189682577744486999626639773593533813104631390651336623743511784891100045177016943041524260364136245622753191470372481615382970431736968380685482606253505158388096707404884276798828873980903338374218593436329456251330712467285750546162464411039417001396462348701765271832569364809968440042373147532904094805606858161847132553347042637036006657106946165165921290667965718225169796999242874995938127025541984609708309035500833706427543619188647939401901160803961776330911046831252805374817422276377817883044757096991600853028677155036057434172408831642399253395564493544566961152638677594203358254157749224268233302081261260208838125726102807334525444098281199864533442599574753398068284514692982419434548581481397925112623964608455683987790848182127562761208601613091403164987108997559683654420127288315535195171511160179972359716317925935704958627321886736064891214149506467592073571536637563881237092814279856904870386211028182487685651325488080803880782320935446222304352621826515276726256619684066034934189592005880947807147166232875458322499449645564520445247192849998200717387149186800711796513512775266436032815115156663805044275107075140024750516464040010493795231048557473931299269784040027605906244019114223530343101779345302486967976761967487590715604152147264256143254018116353062200370662578274199324139221052883622940237050802947279012605040796801836870674996519633026875958832741688424921410452396951080796474243972311480946031667774205475743674346719656307074662493093853614853974159167981650641017951514714169252210033224392443315405108444092415528811878689939782967161562727664734997295382882513725252614737184881022489836630512987046844804429076292247117627828318539861701654002568712953691062306414187332588686662150260197547402329285043800895840349675043438471271387296380890143345062735298280042167071737614081436956983393830196124940781073323998366961022568775899702158472170473281035394805327166325440556426806533524329470260569850255364614761217115597329409012587242899134157884346656129121974110311730469737906658165939328597408325118759330890658934496319156649086875415113367709642946839559378953532670101999317268506305633336928905248745790397476697371840237145503424152853076968565319824748852833046473699789134074630379144489017471580595426458511656736150754602542375605025154818989054049668294704449136424615295662866663887550583391694407977036232773706954366845094050387961925727248858696464869678067098209267837034865178859032134765157455732375581856435824396549360683758324583460256016341116606024551964101132231216294937603511806941168520305184509839051850090928500486322325718489681661674227781487056071233475094667648698403416615663588404469053895459376778287876356027032786866171688896495058908056642547273365690998803492302380002396130188625608313834554782342412968642626118985844992546289865761156573066170908946253311693748928818211371581886349889715681382860648144428553949062593431323446604842297992025942001656178248888053997472311921042419995635020359857890257031564876211408698491729740303088456592980610961063729100602025863293611760611121958685929290355616783955725983513552779337872771424611077120107944073259271519989506911905103711531662269181626329340601105385477815143334709877030431208573623090931204479689039323195599199766670881836814140920530274092065219423716317252011685050304541574394392514702957126055839880178453726310066048463843857618071971896061150330292677615814823954946364022530038509095844755003123428246048544847307874213260695836374743598829526641040902608210725065174672150718461554948901910644256985655768925097519363712998224224975525267479885540912911854988116811900497198058927596288353364974777539574511103456618212434982040256450920631449110308658955975165107115230924574784188442257578551776944867777075283858415721157413421629951299082965881271692336577789702418986656257930176136477969601726613518804098805170360823563221281922579330315412272028412960216761297728496175747349279602540280687172611745233058055155716117804693657271926376608860524184680584592152590762195441855610730293150702489465350938262223960474195751363001281438824555002872797286835598874231051734010457992886585825679808530366404729071374326226441406741418696847507511102030011345219092632116737834800914726151726251540078620667500629280006758985965843801970825751845270817519277055682144489385507669351923284662890293759452532010646276747432964662208642433436050305689679567229426265947626287786560612010657378083467567241669871506389325677416631633393757760861217398749693012318439421467074383517386842044129188230739743849307720582169847803671770697997841817091023675464121797722903693892846009491815757757577948097583530085270309788537584879173692402271401485343455696063134043300090496582713798165283578473708683855573291089280782662183465589769655010997896867196003160795136267453430400488581990775125100328494733070288776576264520063857617948808056058491717764551960243544932798404886350235855396719070465901770420591502087874044098093282984252789054224745603275118159521913384680958211509391365455994356849240659233373930104802673521441162095139025426445663509905941918028996030629021380077991264923473460747449762046818347983590904197388399157501860448480973767487059721690781142917465990312481930893312817991205983212740992518659289219873594403564135312380728141977428515486029660164184317209854281392012952201595270112586984048474408082563535167181752697954851650327536336493812515204061346491097942605864020861495957152733867283996282984898960639292564328241848501600431463435128219433724720708549116721023614110113642920288920619420571870060337032086462480060623004933088343190845385560967854859879633849032763785076764986065724059386025427456183220797981855902089435233202861157375055059760311131119210476702927677113850076508642871018645683660824217291023240524254706901964654253827653779128693415280686241479314311457820830775780119803764875822526942451506432172327483676529338783235575497745435922255731121770565343275163232525534898776327805273942568586066245461252305719194378026985734976132501001650207077606955082536927855296099290774748125432490825826655169813835800971323093932322006005209810897019253439995510733422220423857763811197567859175881072451320042349855601497175911773968031937208794450266099559768222830438568551451381508456810221700921877351310767162272410560131576830192468081237229377916253552573649678620134891702260049643863044981281176128433203111424591426684407111737585845747730986759602419194992375173146810722309683284097082759906061672407963057621668487833497841272254801605057752736473804334245090740874076682591742317775287815574173941502636541512914391278606055549041687998458178309162312713061357664311817389418886726776600368459340390399938282053131204020547304693721944540419082340537868443516530473920576284499708265186725790705701591780555159912073803377659847893549317583698084406834169336928143236937305243296338383829361983713654247780013585927373281958960213946178859785675065640663097009326631560360952418983986794157866980001740646405986962214420653893180519634950542717284980962130412737165973104611751431619544199004747788881727571083361841938737092233194982787505830075429740460092301553276456964412799768822988769151808327099665851808327529065759779062030781136925900557555353959290310994536462888804114009516455304638843716712018646027644612451916796610857132854499821208502507045993511175848765858707571399900777658199057592895468944257525453977283082901785898318574468086032604339027124609125453518741216965030924619615975961691455575125287287932239787118058726375440967315424526862439165196441216049926195142600934183953905633603008026091610325470810789411346273204711861779753318797885271923470792596605143016357560286748468449660810790341107296713095500738563849881129135290655732732781233566228054268913298176186371647508661926455789005053348303439694242444643305913716214684429130096630835082985891977905211737830516259607560138815238865869132191318712247501547526758816366663255171284047108373387832912548058178864402321153924971363841638797320311973774522238476185672774947564004647277635682022063049621709337548975204590786571682356566933231869540024751958347634411018248737840348496088867401640722894367762984054265704566392500670448925090959975051340895136571921022583099502115022221307942090176276713747659157017820692035594156354586458777515016474002437700547182058296628177204635103136995452015356006350644520428516636173043204002525616786470029702371834807943225597506439201584436425262519209037085970843010999862873232772904675735719354731330428293478834401422224595158306235909579148659583862323924678102437000071363171599365794438921932161140726248414501791120912913990073051675019848874274351810996608869195089493315080254429815613490892935906111069544848944154737158139877792519554474991936454769651022250019251069119950727713443510468235184800287804630201136907675957228036348531879095702320409035163512133110084507809494498054546337092966892428961192230203261442462751062346236984513098334686839951513564933977331295758071215276444607309631558250272516811323616168505871392083650142014385687110235579048650940732427241895964362425308310800055906620524993630762543707324734114845740987102553678687319442922628826735761496918969720205931734373235770315793120925233246012503375912370031188884905554158129223539596707960374678521200885616272999970932671023981942562862186040163551078388354941466770616800932830542856326274978060730137488872172689262371248264734346023502091492166875956858887020848599494608387519957837592531343576361751783137212000288234989165394295660897381158876899580112261258817275787952894130775159018074440018718093717103238437572433870950912246709251838942679387269154704592337625503709256908780170599310310987795608371532316684473071359682962726688362786510061005723867867857427040085900968475925208302876811939184798310799514189210466773302811072685601891392729228634468988975693977250415877228923596841431622282427115980776816601279443520701227214524524125584452356129789829966899986248928407050232455101108194989892053379779972001035571369693682896354486728881035373481234902492036476159029934915635447972382301202405431260793641008153659981733441371409679173037404476329242786970545433148518306781957057645853407611017642749143267884228248200283090020975989647432324817304529319583686113107705861336906545738335787731798638006594223521789460209990083347349054904804006049101332202953801243436042642393919628265599462340240452179188258627578267883143427688335160211396761435495802610069726985148794503600252523345351822201021692390301927256502881667142071623889192658746184477954558778779169542742247805298218846896114354943827993567969421868880560423123934001999191072157056102475755172375513436087670207797358642409448263093756419002264860373952139696319634025835791778886422689869149178765766670947955137851477728567967036039060835620861794869781149468811269542919557756998147884013937648396849332273167791403593465937427000507730584970354421737629176979968921568024580806378859056421465689820314727753172003984517770808969100014588991474850979064981824178097111827335617828309816884037197624162348581100728260899984958052750273189937596639763616062567743249493303238108391979149705599249142576303201171680191162959073682608452860601368847445035138904552630792759509822960157044091037603954072009014591318905210549524335458372940831582619930857066252793817548427469578208024708094566302160743763649939780229443855574039756991331073543223497728320227872470595668352315629644024816463811733385354337636097278253084617193022571446338942603500277768282733421424499638644974078942839921756718299125108086009307573829610966668710735592124801347724083978422288744582942495204190830569677635963170712463648661743457095086807288932038341278977908141839134060312225525531995720888747914039211456163211590689263881973356502137394135472726023357611231587635867794218642452541563489664194595556491460082735749125121643627063557678535174360403729877689103924249640265190290312326339803649986756228025089901669965390757695771383662670778392311056366633060175746329316724789624015721631865256704403266154797031010530277170982563338338375099472119054771258551974656378631626118091098305315709294348303421391707078810296005773037408747402256039035936204733878605052148669708429243150462621753177517949919743844114402224514598474496496652885055554390877322275908830040560711572769313926356022377750340252602646486489364517336237865835472921366254832368318810296269147861781292613399220611884992806983843856454258645837385116579340876728568651033892141076068287516199661974021847463311600985045304175153671511978289135385989688618696065055741054695765761766879475989900004338461088102973660279301181690551209424238909462607075664241633947314004869406286708584938364967197635490088209342087002325003352984106626295184865717023933061696744514597612072634491710399868092590695433273007977067822679992931847291900102396607808895554208797085506661298921665240083787093344446653591855886889729251160806969123544133460436786148245410857552303749305470557590613858832047247152921816769848445263191082209412634918588942447335829819498087320253053204904554141170598146315692021980363781240829769636205511081428227703671397354044802116878077764216716649364875904457207647498044973090476251142483404678104035338163613894558814878862318703879803425307009863840333572462283953917670868143954451051524559325989388343817675438784823355491305498438678498754122866564151471541867299581337172314443515148101772481447604778080425227078786386730488981025614987574723833898182326470146203866216914171381171980829285328100242544498392563759779794813063497114215389330029427287050610774401360467168718947036111158911999500431048368121065614966592690275260497118342727381785801802085762615206537552536401072661730272877673152209000149588084024066625408026223433717841578203859366210752652697921933683357213320668772393769048691454856934463645465135197765724504300215714496801581528839767352439323905859816705161173772154321674038064034909557777915550063588640072682260098975352167128223835469498372436232623134222965907901879894272673002273740225921433432402382304227528286847157070293860151784578820295719101687427045211609151759142254048481489251296729127767045577575538361787500695839001030790680982223141404233151407798798471662652294868309809340732023201202510608816436274246728613691937093672868031973383163368890995819314183480576591148958861062124790141288400389062280681948458250973265800066345984490570306929619871123411635922976238631409743453477238092193481213523790235603536438349810495518820241330535628851780609141698484333800685224216404460324460807582603194420149521716153922220264054133564727758034908713113578888654682230140604855647235984633752170462608762570308426584460955628119730811931224000708568404386529122623586207482715759767531747816316744796765017189188330015379080118443126202154121162260702665227361682280401534970141091726407241919766104401295873449632309695493231882490212565191281025181437696884492041984032190300972702557819977928171580662032346657709356954609642548468948330453911296443359685218870201665870313193567402321341736106040276084137925278004436914020745522350860660731482857320173600180542718020251913806864654677118473134300187566862893575850607010394001232946645914405979395668208165630687322119233602233319712392318560195681960605479338359528013543629621079869986781240531250805446851032512543883337042958608416504830411333533072565140599051311382510982351982731995507630972561941855674839914072105469269684157084377164553153718136824602071350136574355974423737657441688722897495599232771712048832649550197114902934247940417725753776251572164663322591323788584708031122586155250604711206304926128329432261123686632924626310468589505634589573326434726782242145664104721956678339100958079083352858841697626337360336216195245669283122431275287229409267934932720321833465600983408569129358903271305383121240135605937846155242764286431296436551080504435336338186147153755573639337355508094378789500566015827017258329415963522324576233086197651045329158451609675946737570166488327573087176270334230739320017597763469727614886752598370018794544972181319515359590736254569035731703762238747546647422011464012132483507336110684897186057429402542176714712042421318904173495899172438261804960539852325509958588042775350884221323936964480902074949293030846451993621995541656749269453407144033617845414433471133852063911595794826197933283185830415059202822538688642206634128380112451939439131852845592010797897316807282861471506494828727521860152119659814754320644566070752911720819341098559782964828353597994186436487626279067566585034275845972494610692018784059532041762313383104923870250294918453858915820259341539581745653124186949744572149475789699062670209964308713053807358268375897253234548030535888759248303337136457685468372043521916135352699378880781595315774657297942861857243744380849635343232403459863454744914296838188631934884256835773305768481015165547814025542886840424618541977335970387871375326663461558704149040595325267209989519769839291351430443669165509718158579015257746327077109207665896011965187356121615730421698814523536735620005158760652912656395871123714825224954116218213852990276762685681568746723640623568337939209361511358756131373602635478264744759583179024031577632851649672945857629170804377063902060579016156286060348140572178597392190949335263841331437783066526627618758652080296488471300579866052550608150008353274817586204852662366897442841779773818649543083915267559464189236198200091181086232747512251848754476777963749490755020223811295926352554744984150414651949484771409250371052818877085720016413872852364664906752800849771839663507896531755577293654918123335700523728022613239596683359984064421285983123885132122053695682310266767792855879799877557634686809949279668122942113933218920901687609822312117679595865584925575521766689911912939956272897613285962669256117880668206388500855249193098627926290042831837671113123218626250380079521965456003878313638575290801154121566700866480258611084499827798191638583565174446317417703583558371510447484022888592676982270583118351477548493499757937935241292159142098041194166071356482533849812897495803139634056616251937430497178082241872923746380145530788339021215547521229856430802860569768222827425853087460658803158222587262716979057682417512994562267585904933609736942949787648471513302368420745783649465518739009108351249302924707937289109590142962285298697661756835414096123514649074928992567250025685567160228005296734100312935796883764813647454767536013200870626461696734736840307565746548720868222798492460507003607796930836215366336502684559246193551861574690660754674916361528486287134307812530625872761558755853726315071421712989162122334348280511920183677016624194607056797623770376626685786268178274381675722389501933253990050711021680294994392666366201076662971912275195200727830478388221415388155932245010451205311499250156057389044712404832511794568685921423168527582140525831153138323301650495240879180882744547541231495507138820534733836387427152800723204062350120787268482645347524656989588407289700748163207683366046006522427513561933899861077065561781185190220025206384302826430548090874186879164283689618524859189981817196732314931696374659875032177901745928017172622501052338722317112279744232325995155920530526231344341509061077972319445118491974089643514468545770114576909588364634307997303781783311432511881001440746111157998609114791540162012750123846662556984677442022995187268122701936543252521007505006285936297297900260154438661598938104608679786952951569529087098389299250233362913524556520914191585792382641391388868958658497945044596011259469988107376959655272616280293255716482043211008667324318157814698216597934904065215590572256914533321561159325014704819289135523773201586840188702715451001355356187111615505304036929002956711418272987492497349671210323494986227389592110663166739496771996151478708932975603727546810151855859139628443865228882781134489115060171404384121230892462664116552915771924282401580624622774375528763528598116406855659242304129030526277707455213364835157043749264521763740418701015052519446015269654749773564370530846484734350496963711683691913468207046706026536349751536558518844467151139878105848866958761412022329420379438419724548689371290694322373480602560005672368782801136660951539499872528784133975137670598187592300976874978103285750108039207673122223909433054194370051660443922477379018738725059059548513664855668811582181003235777568761419737729503548992668547252454787983777972854944925599376450427326634637509655457540805981223515642910343363369572886546462488450880185343557233473692816120013784799815938861488215491639775867894049489825485343237740510626094201857783053485531279871102506083922415263100370485882052898672897018091444736532892707340341795466432741909372271966255766558363881160262951264066846835837955614356849610524650808307007642314238783121347580098971439232627900686000263097024944689562673054776282040681977044535564896223585412570281473634866044728896936984630954309020070467103434418958747450764132489572266885469422983210077657806396099207205825305029571688635858968853311953290891589958428827543043206655114019555207654575319161948200674924378245655393557529768341266865977327391507097718864043590992885885803231846759328929634533694215946591006596162773156755428645607598332548203038643470116034210684633234438961964298495722885755803626295688923182810361240079471824492988507983993835934695979923427093148971750437903094806895365084198521322970080208959772172334526676042511874890597118180340145251646137083074208468361557618999525845107544063544162874951578681028652305477916567255093676556198520917573201859077774509101217566255919954938060444608094813421682111710624541338938825488968650279086324439762807335019409181952692468725252831902485595560548602980145355264561902005136085034847629987144359040788514756338281778937804838190127487957849857683114281442312892945987618772556867502869453250458675530065153091784199973581602240766602073224390486150383378267639203656421058627795184520920311640069779999510861189558946163186438743717597257679818482579359414750350038943530036293019659331542306377030255938744854719115672572534140587104184250827325046466637763494807349419868046153716201313736859512938102319463988125791890945962315070073462942513985787982186243995772001658075295621804704997933447205146462412120002047926069604213641758809298580012268312941083632224342792815344441721250095828778523082405143921017205105475806818487968479092530177021367652864407720205781228920408708841464904012212502855930717981844650758558556018636027866872848774431481354003303735403374553341592921973399894834932227840716867399261383077634556560874531691452350866890465535377915670650296802637193869676838409757712023303447952486220680054458046946927237125610225035780719576936450933706760872701912764341721283042885551960723287908292966566195636671486382486517642124618033631275432164572680389954260053734277816420040002615072154395224046563699890709710658590883541958818501933892318841021530329534314356088310732984173192693780649736509922740765754111568959267935910130475058955269922477387967517936507165669376075906820637185583506745209221239917221392954464865667892037961609719791953267071143065409966089474426109087210680783363600896775398070105636042391067259083447315875660447076357227271054311032661069337358138582729825760903164496572354791992231874634305407417047849511334113169817354425325456000390558245579612042739992813007182468309887841165481663467749975919097086633279413528848841592427289917778002980583503515819239763019171339745394185802551196830600858354822046595011597957757584257045363474280959212981843940120576212787109568280759818390082276647501191699588489593539157371526248439415480470892297431884789347571483932370302924626078058448272433065616279113909487416344489781565117723337000198299024046967061066226107120957101874872737702519986124813944392614284941958939840421060871644421424190117075784001355995152093421725700698072421490859807930265468533947574504600469799738561094610896342736242567834371712057548666129254325441454173783080590468562791606345861782545268475074001906275993729849341518411292032963462281205225719403884881035618600226744569285581884238107576074925040215193447461993084229127982346585813425416693535594171647507056564668290996474474727607661154082018092594994089656449772290880189703393906078118295153229000418499317409778175198263352808581075539059401100238989141575707104261620588978776763924270153057510565212322478752707284394975386098052920197736188566110375888835552682400838389265723689688065323934515856245976421317167525876946641407769016937084583818443608197562106157429922559126007507991802523613582917604559391335756518250787821068357818611279387006496491499263750645930106122240016716026422347604488633246421244881750348287271139956624498352031053105108144994853419763110223358887870905340713491410106817858214428721608072674379720853666101811697640029182453859948515909773153717548408059847172402022988958034514406396790288812162166900281847753017987345640636326422595648577609185011919234583498485354755575640553445595823126066322287829163595871215508416599554341858387332683500948986454551472656945799776935676261131000736327374141273782852818251800626561022776876350270904149734638844506335708035573455465784185330287744300281089991997222871859075621140139878666115917349369968755204009515942933450670985714498753402607177150758301170293167780183642647676392113858533993242184099296680231616674681025408889548475707345357837588272706715401929009482797647131105150071376599518588368342043125984497609680634621343069679824956349863384176719449184462586298070385888054150226894133260841886877299615882321801576264037253556328718623496024576030784898332046152075937421147840412634769507844241229809619752945610296114602671419050237959217361582959285354008412589389445834499023216362624116204183896081447389727423165801983563720094309836771510422767287899852006953260059365143288068784467588172505460173071758617846334858767657421151479618459071336962761214624129250222611688385440793917182763918481890550052381908749958576657317279059290232040307322727568916304578697916243437170306309100765669899854490167376596510682369062125484145341056993720666978230180487949276869850613396138494105249756349754856720094042451233699098865709067654335649443575852182761088485411996862421375062727028851601925693059430411319093944490370612565666066919099907135045093283284432738379764137939896015202684320880314912012394156514170919156289196972806781041826559891168692942148000210590943335588280596588471384371771867935287703902323468708476029655073928273956855602960363325499036165119449495059839412379306333673248590271060797533658971807749057942487069426288222590102569653738846705383683464835730669282532927281395342487124935732832530884476752732671438283027084292705897002000494779573537385178488513543929413050590424207384361687698228582692693032194883936778308004168870860630000318186400057352920486365507298510698103518732444411971555344826583306609051001980733772600718422774292038431421061887091015210762566433046063691497713136838222787160122239036843098220844803007223385481131227862658963627525304864756138641940743406239277679542114773445738932588918429485494523301623496292169216798315892086290699879416202196949668044493344726912808690746827688146780939130442269327438799292011334158978864781143931177222923760504088255062859058268318163581495782783579235376425194743474900504995666578005952572760586276829879594108480208259216123237610556400700651448434853870390720353433002952775585826647883188544750585681491935289433138719157700413400379189756854276693166060403415453838025091522254050031100974653658668191308985801909712928784548009073999322242558238018547241111001853103050149253045110211177377970449464928841440419836998445313979345294400656324543089910525290748400666879669387593670709194251973265891088691961811341797486272977300490432131150967921598771757833698680325413149766405212478578131552136307058974089282311729420522125763949827775728469176371836905102541625726445171448347322827624477887062375425999804418682593068185894942760606890899606090936544801012187329892855423267056538002008607780067447047178303733158870616600840530958739078568833164072367461417741098465757654239836740290422231455270179852921625481481180786373247818133634654464790722300812406887228571450300183447003607936856167066293024370119267738402979025873296695410337202010046916135488980835196611966084017308760991680508871364784434264224756449783783001528403573288647503997162608923055904197562830453415541454245709630978961227954671584425292569115180252065108984528690496337598918573366422331409006477906934328536348506231598369660450521709836991776708626440062616253642387618513067883568803769480743563127931786017631112091498037460543034600396992203787230596000946982353556823970491893300367080978378888774205826647230040524988996118656457535349076993068116269123867640292531803631146291336323990288603589806362391923592756104924647561261194338032001002938622972795557477124545054415793598119073814470819809439832102531633375813239791359591171402938763735769128381103300382149306762715392032404669011688519109337392187886089146073221533529095924143115741551171888651259441232688949393927030062532648738369800002323065599246729466075483383616124848299506066800408618083742097974835001090859021672542853003974609748522260916083591864654375093776967716061451194184210481293526065199661895018907931170206404208308690803040019079745590284631522092992222558302772659673288720607009735808197007030108429831866703471071972238828069221656478791301598690658288687189352521180651527507036037853804007870369624865733282981233727268640762169840667124005405272688425914988958440932557611005171789598111961202298644563393290709678770005230067346478727425270186753240507443580218636233905517850663327945013115180348339352852793298774335619614778634248944962693757096189102900234499562287998942468633444855187693537496463612151480381944524470739112085582169917785844188435038182842316063544557115693688149108542900066681526776137885974432143867838976930909139128003300802040678309203054296702176706936614809691862951733945620003233903427738074286421662126855904310288288078394156263680945141461955832388720191942916192082945661644287736218127442215836222386804171183505826473796133039767551226341112800856808226481266923491264211946708712090347810003175094144974907085925482458012830941333782080944002882508528870428520372388351963871682522051894127019440292818625308489896350572737878022353646892431064592110095033481781906876054931471821159207597080036514979132776334453130104019155153399161554493650547090383097210931028011863744437971374699059730450826268762358932904076475782398074683678839143619713412868323847884220700664995659116276972390540309138351275997748548343359217755948137491432633345667040140734483138740488768250027503261583460111666471847910761625484939151836597285293981112574680074408938850570745940554611220543611911221232458845913070243461715126120915251437030574109013362972808425479302413424928294249461454018256633883108811081165712025045250483823585074237598131179853940340010982179836347163669978754999504656413343914509842620542293174463732724930786411147780626437145075236108720210178275387262212429330776959909295854778806959373935594208985615219283583069313363846315574606457437533421052226942821861102868377090533802839440843389014430199617729288310926105664615621848206129197458013112654581460458906586387038657335250905613741493037228849230935792950056458458222720067904853945086104837770777470481503061528818801155320427245182551249650406489066262882292062554086002881015265076155708497818410786050719649671590052323807986163565854760876265599217174552740232566639733798335643925747662951061876893378212485161826225667287040377677076212204260429171448063090256580088930829274006540771763398308491619051414076541323674200576849354197267660467329757662646446148501117675864252740607580161423404698284296974295927936652518092858881534970536892723478297183265969898177499781015031009143957669928675991050486968025374137033003289677407457971314547472637901983296941687466962281518871501188700702612399335857980953379789575953431016411068756425204760939056040204238933661161547779598622148066494143119906252637276423023265485953531854324665164099813246406129990623446757873639260299126163654123267034785731521963179549245677064759823706381479947440281397519159241469691004690698083794042456407464251213592902209842715806890816082438834013606643908864066423800367434948935091842950969284380273972618632726312210458907209370265536091997550118439218055702469469658552638232020013199186455817550975723020745056998768996003366210029540845891047612605054415745838415859277189175608721010324027908442933420832907629908117305815570251313968606358505813438021474281947898222242910101778587128041586308884211793897743983555317440777907924877862949668720134027033267611099320677364856642300148577915325280191331057596271966313083308578215897014619176995901214182292315367294682018493228260371309698556509383322625340193674174660625859753053302952965959539118282501595816836487808267082110190058581496667702526461192074540617641376022314445813688609132323476171140702175442874119299134238209310834177002228413828421580265495772769149904666598862249088084243496485705389609286409746917703768815564717571001083404322757461406728830728389086995572028391045575657192752098882315793547892477307985981996140861247216455378911599526942305112349817978411644309181429791443960175787308224939842011947688988282048305840006683357763233313635510366739210903433508540881910450142931926708341644223042841614124183552356834845963254111950393468926599304047406790949987200073323862772176801209006163405709500565344107949608535329412491772852757014576537050290241573680478348476765135531338441881716546941087638680931301699271012756038359040112301695520258604646880657550599841490738016190168783721271080581816626552661302764274595031486889429270590263696210420602891327023694316715174938107725406648101871574950050269290700439892661863950235062363494295682717741742780071545742772180316569142798645158673716549563783808373983443913615951057236933987866038397177443473218769863899282391648704136572258483558626008106908550596401777744831980519229506843375386451824065581136334117917821277979974286699525770677222054991671392661466749439004004594632252765761724324561530797723267536386577174594369279642464540811583656414137035413668710818941062377768444875889249883038830602305625318594740097044688370941391646088647105781936484228656110824044953565526227221083591730383798850645343929810455409781100690264501028046734422276364111746118162969982305418823421457158000093627299116309489346981202948875929687082505159159390402292629092783966044637048326257802336949531858948656235352597669253083903714572079095785770259104924924187303383951306232086546091437063197131901438395388497547806598981567899803248307213232936586640123594190245045096706647568013279951030194689532596558375728949693932813141147612695946331926985659438649097977651926465114840245613635232869081537691832442724466411838054470392250122946039424408236247010148329248446650064042385493074549459830876345684965263519710045972235080127288405828253526044318432905737472404040310342817393301651027412634885396846111261882135847445398603737385572798605591826211943138042914867895095455247894307756532486209533399351889498791062326674826515379770200956029610906869911340194692533324849813172154114775058713176642110301051895131741154685358555149529872523273365950108842859901202936871392715863076380060271848363993824266627992959451982475036963470414342688412133232001816049603516288053363548718855518060852660788778299985491986349852489041517068850345301780877235084719115344335044542885393401305525659082980759361809667823793846506854022514787611930989682443951584789215282580767362055626170044921690059722489022069657739784873990117372208227230012912696841006249771663625582329287531687129943615770557153104437396996441324640415965379772377326527387645200284519415338796864098843187592661913369582183182908487539249128185618350810886631254549028924406223276481151537957791925143385990652325763908681421953071420755345924563227168688922483532755856864070472043336696950403384339304274121006270362924080782225615815988506873574768552984841742887386327287966304212345611508241693622625871643367952816863447391521842883399789817054299858336898211413005162756793287999280511722052305642387847053215412328021729948689338543206799238842039497670978696702818938378998679849114935215545494232372796564085667085976909677121109329104857611485744931171985294665849047514264936430533458596873327130121756078338477406805366013410172576146478836170680255568045355301238948131557648274666706706931506782319462255923691944145470067024771171524234819448170917568223545800958673177619140459357560211235853390118250293723064464872932932325822558363908461614645408293637019931991225702577936602016917215210842745523245071290876707297463486363674209361552610767576814549412054819071562914268066364676450560533237826901589523500048185179225320049724850943991203776817553338751449613137960410038272198306367728029134893848734276368886813660915036649333862531088689119158095713617559810458686445279670354524970248539608118571870920719589000955402040138420957544507261263273949851443578226734012286019517607348575219557054810842262101767279894594103656632828477756077667794672034666450760190863816808205113816743752515813001041497622035777525497401802116091747578536252548015332139956059479495623829518511891133811909873008130101066451272090832710676353447341847778306670200081504093291135178148001440950099516104852249064844356495494799173429614532562919286071670063198774205176206040297014768738124056519139561082347243702892553277323778645433444725496381306695773199789682165224966832149966865663044522266237974394488926804764415891970204816359449872994783605080768749780396206338538798144803662018350978799705931629867401499321627948862458192979011258539620466689406818805807413024747145914321830343716718865483656034493370660492146073546361491538568464270793204158308930870509489316218877843365733283712120765622421667080713964614751260228047646465010296308728791904476247777284948436523861635381425520334893937952289248147495223315095987928027597427512533339872978365478244158887070238499749448108862479194875135787353300468056229081209475952170255036520296880489770649234304636651518313647562084627678833155928591287682774063084882678656784253950034093309423819848534768844195733347297808293891356504774935041084439056440423674563999377716952860515742175541012952228231301089416955955929535234510741213715523579980660348095168608500427031150998153487935133960616407509739899448922224468513610767996386342802903381894274442073100429898790098783951869109489227949615924389237606807966894818836695728675490358108425201482364255218407158086346192805940790788708409435423025649176863995592712085210582421135145449658829260299049194100086030150055538583700008184697959663671549771773571993662285301467853893619023167789859968584174618172610279663061773650692871988574088117231843131066240643016483225168902392948590137287137118399509128954879682613825653423001978897252373666292773834946075234649374554853078102843523800174793929327042417031777799423231958395079135829916734960385393901883341225874760127044770135402598995241967580442479402102781997075911398071765512468898415248749337842312423062542841451121878806468816081859675903905497102596780581119068208297224760585449258213689967896053476202121225831574889712915563747699999913818827087458629073518667987362425744978595076394525700531535946577750495156015929779735687520010568875032681110825660371856109836867538191006910073114682159503768540242013630124070683635519576809101963436730120794820727904478720990435555096215361261955961726132124373005349106876070667395590761249653963256965314097514175317873133323309442516492126058046211873242215728533372032934431188503521293833250909736853508580001787255436568300510603961898784506985756327913908646103326873813301790879400141214797676288376972356073123515385180201609130516433140407633079342278164464175898103985783564860335758164355778948511460606606106093917028037129691537534390347476551646419238370893132913202126343069950042635098758741390560575860498825566573328461479515366865089572683171217725960916321406827036037335989587360521414814851413339547503851231352134912999595335392609405783446081917365994378577110327763449761832999028988797372676366910731774664027361239615502315138191118429157232300085444870578416271908284766507476108794532465168658871762279105573040987313671404429004072732093313573116326195378651505040496179807707054089694452886445251946112782648346367018220713962087860977420985334395922169257539851264816960473020763531212608607721976927305372481025388166402638148595699482953890391920553385132826191166286684814887239585735265514305079880931768893816419895084487432921663639519989263987254005479798895682980318975779343202103895249093599990037552512328111412905349963638200223923308075219598305588779114498611347179495224893882637716163643035709325128815153354961189465567745440855966767204135168439724166177577842542960243552354514530244874082187362484975075366260359312740123739025591342176349691992708737569559817280612167605285235247364127178621413918547296369626816826842317370726360822216790164257651280007885953732473338318205383753830346901684690030832584892209768328604378981906984153169738194744793391210858697642115884075770642398977009178525740544778435104722772360044955017641362419224678614981797717625089488436539666470666730469365616305044347955248146181908165705331795042839746476643516931734030137497212925926058205936158430076668183660592246214661302015502202687306373281150678454500908097580956355783790308800814806181140699305993426104065680969321656317908066086702394659152899920514391689386197884380220033355547466907425865540615152846145558510886990989372365624811003327974353893019933451081347264340118967476251501803355313730810962074897280670649680447099274931793104017506840112105541358071295633198995096036409542713303962760629309063319623901470190076180950033652435343470846297494578265743443259476144282947844849529249993077436183856746031886745671640725186280244847625252383967332046972785851167984193751880998376695484387610741402350614837451725049226914490577394091246264315183444218713543345380077067798133843946235484746613029874348450833198538203913220775321145021538580386074117223900530669042009281325632932858437604812259835894822654482779343060203131975106552913604911301182897659508568162372633584703352581730860683519017374155765039803597563591046963535607858640067578363724004455286556621664914666158406030690116232161212919653426149214621456558062478915713849526909741727885509909284407992576266744955126740197751567162365441717449535287692938571152802529499323945033793961839655864650305883161528794147385831284538347314133773362904861757655122213802036025610829640118612094713551043208140559695285976536946274665118570457909820572553760134337633795333841693885125338040260357998366029151209265134032708311115568845589100352294960777043922236538724735421622410192217559241648168190070563590231169510862556445356784373391132379657920520128955047684695974439080685118161341636052145818528359084190011441890569149876838885735382350672020964670565367390831917099125569301812952428555822160801066039136389576474784818992486613736828965396860621910674322774760318698414621874527027619236693580558395086258213075941348889991658243063900483399063180234262846056372219027467575138306218037281733866798524674254055591725647673989677574358445934490282794266797424831716325827106295681478254336941552285747697882559390921942701723907241028177022127484740114674107109556435568328357262723876136377203774151326167284365229230155829277796296248298819701534949243074654086684411134241527657729351093911436666236219079684058603856128628193718675493106278268731670997090503641654199481452547796311875630040935919940406973633323414237040687068474113202199840158128931579797832928690108595748309684756732606734997606933710183026907911718950452361864408892556102379920257483258047608968711405064844356114271149387777752467889347163823175719053839044590301202538050917688727460678001254518517868198972555969308943608689078747815718674049011532657039836707821144201372278130344677598719084541770785605128446913181486287983967199672413220753919873314247474871939775585007697864393778210642615309266616041440988974554848635687389117441434781460405315974431125428848612115593540140723189017819869244072962161685023074179957146642367727217465270673675570941000689354910338726897021144171694253870244055785750380812619280355067415147199172099954883225185501554332335904076726680820170884959635276832969651683563939563787421931545656978679189669889477680388462978256605896616186578269446382418372717949394144474010940350131514293577275104612626866806493753729185258334847457851661236090890942617773283912052813389714685785252993414874153257851449600586945640341913172554191346621607726626329905277338295895162501168616281137954455975292840458502902531505973099237274208778318747349244156109042863992657460368971579445608465445054225831251478482587175493205246056608642808315380660991533391182344685648072573937687142929713773123421393399014437457832088427848761133169676885843845365599842795720587314329145283277703542885739636022908097721062901828664306043056895854195802729323350069396805366598949921521454654389751021094715157522400739017529646374775337260984228736382518662949531614733642719605563609622268606444162865032093254832124084763368295804343807294753073170799453010507140694065092386923605008434360785665516503646752498054690234456204447943229513487247118280377732993562972764203315481416445969920881210666905647888139790253319666741223387067421325540788653419786046982409725636109942346598889906485525323485445237165347477484466175594093074614115770287130438989090290615830090383711695385884350269018117580726475925592242859470140574235823557559852713434149248016686446940423280780234155927621304250995951034885442286569356134410265681633513947598820328355872568457137072556735764542668340617757739024292408558813259366127920975155510117850399871088334233290131130803467663443545362939575051617857880534391782967692647165032722583824435592068332202524517485769527880332789913860292452414037774495129290492316023411797008131260090698377083665259253799764068583100325431146498205474059279391591666654939151333717206421818974619123159854226410564359681738944622673561733547265602555454876715705118628057258391062421489680106462434862202852529105090951588018238740626453097576937012270651843699768630376794820588899725705406785087283523894099085309053942568166692241524514418061332483164526079809872163874997376982326239135856343047099625538295657860582928959813539337890274427469815845515478182148249970630533068312363172326066397094412117654663652095841604410033879418696374026147252161619520831058467886052504608648934349020087874366090897242026125074794486931734159987497938984871611220200784235222623477611843791861186436572940592711490722275730244140282297793345591478396998803151764808873414475848921971226967250242054515199321274731072784281940994091927640780344582674590652921956613084002460373877971028867773389312139518167282705150315021231959855011615121469172247981776613122232366379877547165836922723457690832610036319366046327389028420501837822182734057811555301777916502952558417923117973074186382629756631109106959702269979368317278279016490794468551530171325508401066391130353816313040173895797860622410048727321161303087510695689990223102616785088162400655938481759014077616479986661801024723432206256930910769119699841470569571932580761552043475258819563860668418980304254728939799290466476873134462450867628377615584704294129517607550266545236647838570585995011267340878375414274018231267264044600143549330215141981721970105512066729878468048596463938260614296632778917852507957034809052757608149600653210463526285140800089145349862366752212834926511516767938922804146220324764044790528794371420072642350004991966678483431861778318365124655928837176135057463589640105963197884210058297042777052932640659882567591652560393038354142600463075639085092452498351255472798310160120568339549774451495938648637189172955584744641467547653746279927635056069895937582427255556095568206998591566915134658702857681779505717869364139146527618635823062202114609498568950967145755808946415521098441688789465563335659894912925777141080149339333269884284087268563598152310926324371177243541470938116762544571299800287090550207877778472846227588541935217343493645836923890312537070939479728836228742010126285834812053002309958201705263259002428670204728552832822500420808907411654560364280704019369252357048334293995607922173088194737359208461531944490294465242889518415028489821323802319354741572250211700240512373298691771613959565579891215809594700180424639515748262170717790076857779804942427930160780809797471858232663077549178957668415696259764950429226602445432763553766344648226180975633841138456941762963232830338809922505743770269130225797055569603888423209438386113766345115425416152968623266955534799502993977238708885533860089204107832190522955294766404285824976702172296412795440440499933166756532577360970116688510492036042418898512951279548666977101989325367595988911105205622244945306336869423381962645912941486712536021882549044527856063930051104139650297067913252482348527900713619280380104117516089540123623095112112682762245516377977634847607988579698238610550575965512864518997328804599165422114610288151922797144745290005416391858710850730875273660913105419298936863968897608643188715658021280871953782354847513768285594859201337751752873977685887684429258494986566478781357965643648871438032392330755781928661661451466227119758289851406853466151899005844224347176297096409888703215283558988588963345147850898120246324324691504345605555397434851912646294552665122011231063519227884732907144005486299496311569626368392175774547028843401860525645311603798979840804268368202944281933178241653090938290166740677763404837319944496475086494860729540522964053099744466596560516453142363269573101552659472541568411047431661331670972998546230456706585414524144312223266208163812548324727632674527339975330090620300325254224419829656198542654687782035082488056938434287251646347299078026284408831604866621081842849339687431035161273032904636467789719959950444824604398943960341245193209792997252184566550318879224530196476851448180579014165181089669343001029445462283281098015358339476241220405590938557341804144994257657287049443927233931979271994212184321564166662262806834831713893200366971453211938374955022493110273394908880607561651380049371588339422482080115144000683225234150687893809323276370150539397778494337505240350838100771363396708158580504072667431172138294253361963004516428760620276945012942118213423548989725325686839849211859431669088356813881898444846094409488514405904285792265343334455956682707012204091125015494902765190300133515828211203746399138056859569646878303576288192143522592277270106080905032862107865258583735216322718339387305394077261512337159701266030825233966893364275047258015548378157633586642634139225096055804166882580273454737803769444761464537395856951852309866696605878390051772553270795170724225109671798183491208289749592661575626918788186770356484906029391990669903731612106377064862801319584997202227781935210622499816698900765890656161590235295238950554447119612026315470765093349454799373586173263354525382527577453881749027422580311162852843041131225558671192025388397898612761452451462181467286491238829808759118317736255948168819673805580109245961797971610597378974580258993572264173965675650389398860604850838075193421269401383954163321362974880922313768967812835719600494605806886122987028681967699723648229427078240210396794889118808556655044187976723620212625158508509719172851572459313169711251228151061859562783308238350204555861252637256160566528670826406711935725540862224573072788635082369885469148214855884140946754975655507816267678430130091571861815012003793567918388334526456495599589300814640484808452953490599373545128623337299531151623779966914949170076367372431551953490412920017420313046175049235513054172064433580026637393706140717191012613627493565431723156777659459974576743021281820672492974823358080497894442678013801316198437101683079563564556659735355005626496233932571820768002380295241706343693796519945604846162937297391873859619744141556240123039598836883473388079001393738290283846100387959101845633134403210676687975326578862035267106913121058071748075133596779866389789217198164641572686647574803274001981531451913344186794363715803011238344379247679230109553426969439371683320324976490945889666098389244350137855145729740749052625884374415250304301043710125554789233885538122192133057848103065378398905337695241983678154949439553468924540003815244763335565551140041783890517629551632413848197191453024985122631934068951584045331090275687438191780121970802474760601975123545739607593315478130223220146317798890163595495172446694176033557008591253631311960206815766566204645163394371733692664071781405318952595941911103249375566373807045327302493091938273002322217397822118187185291704992772548108051150235545737122167854472462131947097614166699517981345520658828978591464770312013261193111485075582473129483514227769482702076862806670011841049762220044341652828845442566900543148807511689165642921808292830548385898564776132762000828254276660127705084672091749482694660229709885120766888696359491220622992511141224502766007078393023488108196860545339311393822738156021658914955098574648873408022112145451791139443371921069476424677960486894134576946723988551372290011804155940319348411030641723722036994016852583783314758664932361812714547527462557903923668951354356437598051652952088094671819198471048918019151634774879864340781896057051624181891377398227939866498736517819905868101089631026990476583424775113080977310775661097084706574228501571156298160375136915004264130784209380403774318717356765368575281144882203616481060445648156645237582632712713759787751288431525810192297753792575426587846749715995567981747540307021236996159532831116554358728637475749417050725005615054339917256127711691754062051052875534543159049854711472452756699514637346135548496171704223973763677899114074134407217071474116813101204834227912912171210113275205159003807643657364811130207913879417657419380324476972061209990369994148979866822168461464481575744655863859200817125079430615701003597331654611462056374508041072972601237203692838623748184900849004174753483883150068295726235264071748114122888159576706820462471074467228144987540299859799406050221850054636218602337861723339265268359262084006777160554947142952506817733392272227105663723473797174089344480503228831689633528128357884456784659606999215524785474352951040903732558883495998037318662436704574711805884246445441096667083909350561273636588743341255044638852801326692048602240472995871024221597227713438947369279735206116213582033807182230288256167436774236253820247096404593532625570459157416725613811082453081252295274153680059322385985127507614334451074428640549568296581795216722900452832850303158755189991211618514808146207091712158514668352328532383914077927857980788105412979043098692124645770176950500376662553569138905426179740651685830039318861766129369069774033942940958992990050122726509623977436872866169298458153615734307562395626688687935908821013883288359278808342849625622482480135585479020552712930585062381309916649551888989629520049502368745947299756160077877281946630958578471898720189548519521301319709850831776995959144117515905432480219353119187163684598815557433060050271236321157123000847741705761038602007262763235972364659867030411940299653594588901503416744196842852659997035451409916247780185859208355975278787307048581049534898674513428346712210063571538803680440103769440496034531944418772421207595203873521089264536987415518400497834033700703855974060543901568755400947799922258281160878508043154343524520834363188112167695603979755558744100507732919460660396923093697990253347540427711231828440682033961251129662316594070560832284679218197623276944644149055265557033366375001839949365462953981027526337071780372547536399155104928483029532222168427765732152556196786471750486593415946716363388095649813661758441861846848381287108681919795823989052831747066510298855563115158107546491081145918151986274861973617506717836057420217241495955646730968206804280175361846755095066358928189945283088268592783235495861119373292550445738278912687582178410644203806151615217297907776567098110077857736414089973019939720788309619346485748957086622122535730571674169926214312504224418332493311528351910401375629688330406440508921679169338147128661302560305567681729190916551406830407068448338496590367298305939393299804555179887439703336172444101283225534506378994845991165281236746879718437714006881403869624995834397573662979865310910645659962976270999352464987223984998023936154125228355356768937274251447831789620567587965903269192082584264606089181313966511861636792306681618403116933797725821600916595579441696467643640052299137207337935713893268912374012247613639627429128148974729907255065577265113499466152743139347447098721622267644001420625465429689584241378719246876750695952592614768708383529561931873593417216997481884988209173215105064259946489849219984030076712631549164384690279017887917798134056303609364385275934811156105746592121310684287155661049754920420288422411209391384148504409753851884584813156421610951805126501512012421527771115461331110477968559302654152585525844464121201850291452602785496599119248819578939034061567868504958695720164875163067714894251520701507641737881164152631868089656254355407871530934899637954496710133510300595116180801130026603020782128273406924465798260431419645401784390812309646446730284637250630688799571449656452646496187666489760747623899482286848688215357087387262887150227343891787914136797419502291642726632117509344821869159929048399893608106693107474381394241818901784158833710058159620335265983202240877302347887034591769035506292958832115316000196615782400305265970833817830271769100859500944530370327010822868818069765116777574459414977747646161473360127678256289322750475832808452861251279318107348163638467892431648122234094357618396273771687255466679601029095820171066451006330711498180617213251105613378332460992202509096115931432948085176879273596896934259445846073763357699942496347662709317527375900545389691863358990000224076084080092304466075760235749862549311365205127289116401260804406899960178217683837909021737631727633863443549894339599479632518660353321833929184142393688876547004117270506731886614866342235629288017521404936889023531486105975210634851314368314770376738390629275091528452614681668382548671520827750665713835735126712665771319095416009615180730370025369859701688545143502085373459512246132060845571176703331881838441094768772220762387889049637770097624468643747496217098912957119536865776959750723928583654717427571183886452391177342812394027007326489546531409526891525134278676686112577838329472367816357845585202546079488741235325739350380118633638252325530205842601751559409010984587941682213269145858188435554010904878875866925672500527969833206202497217796199020150663833350825609670787786005842863530277115419127754223284832027649957698737499869610164822413056827958776715423266989566902591545437446866671859228240597878811612445676281851825195133885253687162675794947945001061167944897379027647442018558045996255210917369533074371728784685482270909817754802986724592549070708407338120034708447808367959305816735602203784736741269806682812701535664697389793169873237947406334105607193589875399800993798209973911071934400540642099073701737090699549077715407846158970611112286639931612400213269365283983837058568363699180482342965005702832412234554557523353357797565186204085447420096843866744773837930326930940624721615394196145570600819777631478930342103201252021854661116055572921649240273361209780343257913264509659290267767677432844450543930151925041273685831156179453771285740965793413549778546178195601851466055009075136865086397620440391408815480234051011372137910989342963881959837802318333730651709729046859959951561858717373482232101108973353098155429983900054219941109013526141272861674133605181242455641102109951022596332364237402234930151954996855760297543421288979068071606678637988772148150541821870482357555666522135357382897757818241668081800582544102262371385921446078826665320670181036138031144751527086442775435387627868659398489922261583163146206351723852466866987591582368265474075951884542766279717539502074562536787398016323235112340768833272732700464843658189259554825493986395450719250647815486745632290869265342847578074530909343854647277228813275177882854799996405085602144722648597860864571201092661440772596214813780561136465827122916720350515295591431224365759486291894705652609595792231231012064965283736976609387327222142791861029383476078104391000056163418115034144925826862940394727823867393955685080209213711156739879752719790503692473559485229726399391286015612785577799478180739561667085977847444607638140167053625699879265080703812315738225663714120622057921534045643096758347221017036633407397721446873503848029349129320570637466109539425580195540988131881555975868325620505745547609459848565422203530619350362583418731903615082832887104650182968918696559292240243568397657864624208006438137967238950289570679373469382253992373813679791837790637905042922009700974911412633174669421374960449786865603637744695970727108178220473249187144624305929654040055938550245313759644871815922811266600184017080158996412699163035287237906905198624624570432411415564611158655742727285486292237429607624840560020739890749700451239640997810389067447214064908528295406081469597103018489978392499129849349664360908396286946352528956001561945316231398239414432647642921614547773407648482722244129013715989543692176202670004980852245980088189875347059904648504783233712335933967775290296679603656429567917182180816218446356137369428665243732890435628437964198074521565779473794489868143072379321231894964895540585124956333686315385512312367784390727677442233659345875172927128841302076963528312361799612761330635064103140365192069835808819461084009995576381148628269052014361173609880522321296720380165134504721922483923427988483680472229522880200944214869641808067165653536027470707485506939009427742632574240578866792261960885281336529024208473513918791417135804913809884883265709841437110516812949162202113675106022504165931786504601374360975711856593900114248137169971955807334139287967540875268067674392361483383753164123511428874635777399166420449063471447342487195635880843376914544648978763494625910619721884748608881549060161736876864967320383552022850445320960603083916100843947593530221753383762699883464074613319243527751630679065369655219296922778695346349844227269900679537240409266220978237506517829764723806837609560384305442571925048087840772034649554987341709595082609076344345642636339174017854118191963777607812482200628379451765055116098449143017628833499132639362049073254849789831385395348938223001218281552864690528155767664771923047142473592744656035806450087213394353697080804527890985363454644749061159991678925605849938266699039149605425656745545584998566288390352782341047284748956310468746655185965811888258762760216933009423814522049872955056923605562410051983448960380653841994380370008343217284895701578659808961248249036498772093370010300866738102391837983639747626254532164489626863492582368329378876298919602138690729396129626084775316647723832171381829802080690362480457603008467019320887387521381592414435551861188097138107378365625054442303639576307626888441449002684027097897933434644916756440026690959028745082136235264530908735486472173869327267873620399656068460443534995162301310141651371146308317093768020108203637619108221513588362051126628064481508726766007178534152011395650968301705521434527883998139602175134437896983387182498706059328005086310870310151795447019934949206738767441351898897698328954084603725561952277026391903320438976233303887195808474433401419977058211499530039145296761440718304431447767612876197009646970062621194040425023722865598726972032568871813266954825117921489439551111741278798580552535793153487343820184481170015203735355132690370024090625712747950042497018798942687108336928172819090027371106315502962751756789231331112519381928358391560471549979925813146502408655143043252678118777154727230266439936658624127520805562206307658306051508852914505692072067095060835047999126067612436018868813250267336743553549138024407994644024813151456917960562374262142756829082243681573230949617514018897181062658931355596706624734644743099148138844695702505869698214286786309852827517974382272830000467605442236679847717498258712249952093292062205674566109714740675453775608541279366069736097363007339652989577924141154417249641500305801767880694918883429276992288331099618661831580211407807979818455220032599462857404160462381500849782363424678591649007015639269104205972234579551244917861305476524630279887849931304705365944518924114961562440393330304889791155804040264388885796191789323680348445819086456505629526567192752563829907939398614920648437876251043382926619938386767530603582541222796610666865346369050610313828773205740927637554378062343000657156176085789467855757153585613264721940849949647905309713453017132631648275682534190111102322274348705737795957279970765476866888452255071433750888893033403658748587434115191013904315566192771602623134349820356697095977885214467782295682397215325972919953492595102600450362026240538703096135981283572385679286396845245197216871319733668860772814447523270709756409026798010695488551270466174470798256538267517645335422044527741668420633627406640421580628922262466435753576142672833088292213146202910554660725738567315503023691698640896033341136403393480220121769955027626421163438527533173265761975949701152685944097575632016300212776253405505151899368669490095164970622015755209184803740550489084059082350660384118085232176028724654906497767631172990858492272685746120886846769197191266251034010367883263649740130289428104566185699211944066865382778825263852178917221858445361488718289827335266607427534806674828890675220837098804230117889149272723470662874495806902289085769593067538359799913655292827622396069864435598572654584060567587380901748837460996548859051809167817296836932127670505338249952507686376491946355872090546807056971059257983020191195476538700912219531584296982559388215515026474704588955439718385856402280194037317681698228078560608617605207921297038774022140545525214009755887033831541004413648136024234053546773693737408038534821338320034664679086885765140467741750184053253183276788640441672265185541697464475967806409100729995310510739561665703997924560200523693973713133155209072965669747771459494586589457873254049421109643739358648167685169081172773015890816836750114841358437538164052116403929343577478454651037947475933683450940788421036669295986914694085341628717476673149750478194649306342249843939220204309874670509518850189173844878455788656647125020404717269436027259920000960441692137235165339292968004216301639469269995302596210569425297000166186418386145647928448235517817694648163404206520717929156632551418384602684915516255657428998690572718031913653501058748809336987814759024374789573211433564843269977585863854216155639044533432056565826242663336038297301686807214695233128039926509335224490827653896151381590415001115449757242414549365929175766996517903728697697219843751608142429312887513206660437882624709898631893007144191983266663976670614178695390637636503060447139197799340902061425483426371590876134709835194873563938486556691239177292711060081227551922973538085770703875764190417821951577648202353880986920602688056307043876727828128886062506306745137371121358279110016056714583942688393561506100394307205398050073507209562695991088559965625660030797392783600105161236363996886288156538318738785217441665149417853449705571892069404068036207896297699354333600198061327637602027555333439124656117276427794466279424188509053919203754955006332368815012515515700938545002285931481003067496086450457598781695933167952206806669753930819799904009362296472457972080703019042819406367347865344115736317894866167073497939941966189997386238469555897362308076399745127016105546992568912808021150838296266594345037952986430941797921045684822020909096964119261632471571149140133419030675924953214607639753782963420552689707479582852695313227877623985916158927175503630269881788601780257913942407994390550118295345450881589253481221512360701594914234822385973074579010209941448025630410751410418915091736792457423048414822601088019559201301025397765477347332530216155353493064413904463575538212672371667390691004509809728773176361203700838523063177987317796669394147751209287108987881863202616620801209017899091777355741754549500630772434392881062529928539921993258483120724673708988083534455556090679564976842509905241138638765386687464989748341177550171673900445666685246706654071438231961394384610986751726402723056075526459905304407633814899520231454079570473210617576694012148372015687783224233311085957694601134902956513824715595205457529966666574734374480004443586780825691719176645801574898614260561009051249737993504010673236615440456538759715674296154437908033116626814137252339124086897785363794097142443069736734675568584008498526670020184312455568791878854183965155582841444169706546856363839176476543144272433586834501770380486949547410511806515214809335721224322255170527868361276508265235134966099660765372211081922366007480372625621261726473142844083598068008960868788160081516926426176654700860045991141070018101224260949303023243704591021235806616750074116015470690200797846589272279555202761786629862646592668206668379617764938457096028490625058526525882266118414653649513335002865411020255952913179201317164061945915318746975294139545232330326345773162768805086912829018257060206117418258632954847039873861728249157137914490216493661755906907376917186235945233175678188576640900082569570850953648415289289544450933969687637343003819174874487511166443025442104396485667141492742397127208092092977929491407056418613422510616045033341031363062766997266308022434118550687302931744865418540743890432449594032877967510697614565233565055342241519598612964494718892460224629712173317286641996699362601569270135240735673501257452390847771584551125245513189485460555050425123296653149768707855959874838034696497436102890166581018689394516280512392485370269533990750463004116091264624329687912946061503479878133432228083067480958940135380289292397894274776588637558602298453964193963542276768095320477409928734672654801944194755904954004775830578615619308961131999178293191286075715182911200209131070939307244395320590465213806652681255944176567448216913532166139753677106605861651891018097475467114348452966476552087938754184324795397169681960276293199438390987919756116619603522303470051201441238280747727595721914915254717448789907573482453783844724193769324549122940619307313656517046482785991133034073716052164400727763027625224597812080240103516158137831387494023941516590572168279379432204813801050661578429717760136502993761741000904476076651542417323101886527453400616642845595904110714657003410918502141461126912521003562324485300695409039713638896763445068438483510489247287526772822988230242989792845392587455933082243831848879394286216317333271993685485048709766195781511874523483707536683865573890235107903225012690631418465531167917902775645025422331276131125886934058306174509597954876355304652334283430707392916138771563759503793791717142158022564055946098999489237161235183392066786636595740720023194065128454685737746006631608255904369009625457264066134833842276972426584912349785175546535404193661646572808160216070609624452580619404872690687300901090504110652109893894373803249835168638728781936565352175947937052499304235735054865471853849407658071763158968739810381876104650330043598311086113199638698786526023751932888006472603776449737845219445780060527077023211537496852116322086750562028359935330674986137097081437493587285442099389715303858115475947225224962003814429659430340025527369159638170110570777876833590567407763349686793220933687270767830304504008449162500890182181353479677791070662873665047707361275286880158336847148723357319468645022504684081114159938220014011293861318535058036519344339740804441650508060591190800937469298034550020589322238508707853805135767711794607375990147098757077722237373728203296917964134351920421571050702656399089848574077110860444974604785219169850352465755765154216602700457328005311876658199316397859904890586108699086919066581586510668615071922346467525687694165409115936936289851577429096452194857343563818550537179007557552026161069066682782990312393835583060994308033924716671748934992695386968756812631658956325188870289784328930855578321628983600665391966193101118946488917150632702453490784982381215942957356367186116983612369931986965685933287771869174149674437982691005746444458580013616070606682034839619621769868002587183809182652155430988755835193641870482449900698249398621966511632595045318984101273471425147411711102644521765972650336677921750985764496456252121052714056624149103100257754847171004008850693947483113105269509882339327704737843393736411547606430474077796355637129906335419852803662862226554917139638075935521331977131360085141189887040426383636712927960352461908894214407553650566132719531208381304491629542282446537699317127345518229186517972498275583507292525610509226963027707417960037990134156159256760160327736959347136690612147054833363717983259809987665769068749351531802795081475407732190584217115610775669107964434804133750970838779619314693883905993311823998107235399462193455103613012547817536023069376172180643496909128677255657368766924435410615441127675451162061736384185803225333913062652898045140324274500327048407645926204467048836948480497320006576748084267129255526560548544442169799459343712678005900217498932802336966999770423991091842852039780760784152993282092576898621890822369865334320365251190645553185075991145758632181834378271303950683210730078796831807236959379497670294178865080923118404970914091905765401810434943660995546141865188483654975420223531328907977352198563206287038691275343586298792179690475877713750304970447271603414452706481089575554589968848740077083848600497665159481562036789144575875730080342038651827268847268068484764599425125003953695045196199655175074893123689806048376228304889127658411961350503852140020295605496659725794472562298701410191386995030728365028159983924101103765899593902589059359767195250732894859058263823142872619208157757956301558398717618975166882187522198951531172280204883513913923994418068448662412978069712207947382121430485263960900668611890526135447749077839676789884956133187520171448488671909167844464885678424397736849659981841860366258438564784591710105717958768067364055915478093823378414593023589566027907676589393074449002476978069968691432286469048896560825835201412216833208677137697848543300501223030547054243533454915922254594545167392842535501597681835802447381910179536192732995457035722844694016607567201220545034519841159566694640107424128267475298055448499809522358970808762256685788394129761446173522065249541001680878478211463557417645234587064744060570263627568238262353456200605805174420442885750811854402140245776475447604820349200576587943547956309796400978274086711335049107523645386244756672340650108769053089134068475021336935168636943325878972255284127982055605334734381227065636588369758567523115148777888203941477762387212472675450003458942393465709616605892915573457989973716402773341137789419511250509736826877964666693227212427590662461574314994978644259229488128753404601055124690880215995771384511514328120835268056535149820018005374572931554419227498111045716991229999232483334225652864635833436528535280651644998626956963758354495675030431007827943950980853798287099329173574508466430423807836458877540314052193903122169450354747277220712627296985234288319220696852908106241112986892815316425527459357576135716915313641731031558465480720347390383858217776612077533463048156103188534796043272274893721998950711096463817126789373586897116308884248769539837308167824532525566577942111954346477273488573740578281290071646643452985281808151797311115451431078099686123190643513594358742243827386746213712099100988390871890425294623010772589146285956234257341323391888542582429967182944526154363088762814195117870985578765519013848167319112906496665592913648970816348118646695970408974582620765165468664268091812952667157563498991701099055166725991270323794680366588155463101887334748067547587939500344976655982167160573369891757625677672117788145636409009779251615597736985607608554552181103730508152905020185207317259429871891337530436225727986641068249836535420241889158317315881116184282013399117741797994004018104054710223686604280468115666278329026890050730615953049301944031331174117090129072207290989603159427957815238953652149245165201685564208366049166304620664756459557766848875690852865199035989958912814463694301375480783475673804091238608750770047485945485338240202519516015376847640555676549145075972240840520227206346398157478264685818008666089258680327814784512630183961899839848044867252170320968872592798517463241481504863842563452389962646478000177631870237307194765420356813863298046835691482769497981326283839918229520874294106628716063555960487384289783875252792289407242101563095880399435212583274640900601519534312387020453907806684080381137934542804795376728699395730078701916338371425277701570905612672532636980124573167911322114617414548084283723070416279213479227515289515221324194574914764246863388220714427499543360386033432760216315732617848922683959847207914321541923926616078166535992058819019514602421573132224944940055713591837343731084739261199903000226349406526533737459517078508422182347919062705929444858810689927947126502967726197687936820805882223782470505747410204538427257566547971942771053255559615039885377539186747805847420002416817986118287675219047390817725287177900502383945670040051041057987273024893326198381304388733481229721201289871962500688345059616282171408627492583769786390951633258912112680804540732124896581182094089743621300089477069250186030360934769068279296291320181515850037770856428911704281670993790724921671837963339286711010099843081788380125804308549444170474954258425057993295959605793617031146167068570054580655338051438054305661646509336108504596606486776484327494708860940051576783625911476212465566713834696192332857652754669378425841423691712801604834178799903718664654063495749834876478255646096549675207440586054818814801226006473947528112986191769844282310506544330401630602218123678749915041955049850678642968025307377634142753089985104868618612938257582093317434264411342565747993800693668567666386667046116584692293951236401860408095097095056971458573294626525908398973028798253367289027972384735716964714394703308047239629841177512107117840311953200659966910909419807734872533422522902709247654298530254227598276240774772859097912752460406073276775238396899891705693105578062580014865291892817434560651269630599797927757015616317129111488915621973544948540744807375830283615869340934996682425496480913006710615424868084762756235213731405962224379726668554813299201370418554850360991528745076190527280486743963791346818877041668208817767279182043936775897754028749385631621743471826673974468991401688224309665874787103239609480502425539629185234955140226956568088456473952988033055473053842806616180312177319084601422442835529953393516635128368567517698615248340480731748214228613490868150553189272481458058183625392610224726203648508139199505127759897787165081099086035322972054088357749923211167170594400759732784530757886560620435726019755614669950619441529578336626585118401872306439901025944608377256206533236056931049511158237043431576710726685145213493756780497887213269351203261216998123751856057597341081635100898260801468238084192580119859284590852112653629761076012434026300252285572703726952963236128611777358392441801469654856480217474915687775525262491318824421927523719085907559997733035738834279134616869433849969584239815612330652172685270531063534444580484956254256510595379338264002634297053014496551265320155753792234696796491385626067021479915572499880951346048937852780977904170521145249390342878981152727966240343802696220903146314202029738966345270310946261977275192917004972531081600525424796841807146193807918249468849661451619202754419331121975586189747985954449615613059884201105054390421912455303112712309078081292115580463012601038973921494445797450462264293611847500891598921028892292898934708662294918755808940849116455532322135691446758996198844558607047209692332981140376813594456508663820090451672825720891059505950802724560703197355539338185631945462946458357477341348836872099093388860187011982759533340496497692839322158403664009354792691148934275618426855033568214127641768621817892238443173416039752187539774222811705478831189299966605399242293096576326867260380817353376493949961459377722168677960476450707747402965612108744027025215319218561625426847991526132707233271664210941175612760042026210671374802636976470907573249216253442109122423305800195577183777581486538280825823432657411215594427667854653752625362177960913530698964796731569793986406134410501541162772279200809590857066129947645568391086427420769601360836695150943559444039585219687449974613390992985242524324737891296958626110484726581059015217103205437822153975269520747118149254912998466187321936012627115431711338114780990983948511631967143288478181135339227254865137050250934835134018828077822836218348667548453712066606225193408776605519871718434759504808273240710608177017074708856876862512596352819554312429085554600540955246405440960798700912964844901915812964499079295745248339198707499655962706299628820580383950225981349188465159675063432592666422237180632172094362813744388161488456004913492499613099208258999016205919975606039665461516502460295399650068074669153789198943410168070504335966399123035013257273022125655490990751294126520848463776825022861802253319033686594564081229186143497656364998198816714857840335476721346724418714719568930914319588799725267815522127621726969108939164744288775522810448585939705223302229671482596144635310686346772263280600772919347111258608283353568625280405327627000425072859984689907546786252209052597599697469952287830725446592393190774922653599835417415344805317847953844548231649573415333034963793605745425682595697646348547858852053618742172766118197113390203854086713870011255553016521262652594796629132255740755595747780030905489373961502987247564093439628161748085198456665937112507479798371925163970809866993946310990775587848032793527361307986836464816770071282449405962876347541215124015832431656980609294066124378967471707460740326646594467156647324859176260722449573351206940425140667506540704163537321145961667515545742662354178462608935604639078337248686912099003626317334907386008564029883174198982452138122792839362450937482710781838268274129806332540111092948689240319305527220607100790776275986586077965511389504882380916728748552432366479885588613613309610142858408441507572425767699908076982825375737402551166799967620238711887164513002038031634398709583265398163264236227410909011050670877079087142678906956602804040132216987929718336538563181843988578393598192270083964844743551915241025291446174931622531488837890950185997624314419163787398724145871788661560037597444786318610703668480873602464390493631445343056011092827208954959998181909950450330411621929946246830221773890647499507062431261776940759839885896941918713677260329078224750345200425217416226489607755245252090136050491053679430078283792579736137059115379976885575931644917013535723700826032383617054435112856453399969252977358335783324629298587151433214376090551507488386380546626572359254856616697807716726895433835255873424405232189007591574566389399703253090150364535628432209411321494199215977325642931068887407053668194659879450961035478852189571194879089040067999993333075730324930017401741466845792191796780079768301931875635633575603768502118549293811690311028506745536778731579054830329556052871138131940480706402314214927394986338593655218076937958103383231221413641345648316991694431594381741925609960264092630419797384654610702783902019897281080592116251388821940662333204896508230397617667832802764435791545529494485798983414799366745951996712638911840911391405222537677153040129187447373909299009168857649096253175199337880389865436702273224008795417298976645615372315711936754302585640433501378499102368873356182366577270577723097820009653380148286621532119750275330429955555355548674405052050534227397790285000057517491048359729852097507492042491858772364157831964989045068029936258853057378382128079110709527505259310379506897968685310696087250597277740568197071646241831164305789438039620281450946089090297207733770270146863914560169522301882235109925673335269831684631643537540235090237837086028325721947779417797563721072035827468503111884703730649703716333282865948593784132915877119926231479704861132645279776299764565029945596454804058396625295852801942207685515497195172761503509821799804209634758731232062012942275114871759401457124862815995277719914156031231984218220867777134483099418687637137775427309906471304947173746792837702252744603379496078343738429489053436325222190076396485785479647122511507956612751076821372682244283063176058180834624043648534664635832294408644561029681314682840737428047899275125298523665125667289662987566969520807698682551348439193638375960189191854270938788289546463188627201106084650939864983021038580435868122393623699105663492983078619043716795875198882412801380341692539084790477884345807266652357044090768704133980096531157389613569443749178509154780073902460224938155523948157714483014941271970779098134158095208183003546278232016957534472438493265611815489231972853418909062577552773908911446726989823990844736404617269096214050321673454602201488021976158567239774799344632032430044116134624779035012522931768138738161655910234587469435320344126653383320064186977125983736211802759379538417949137063606239899246327631110662886384162912274547123294934842633241676353653029052974078570156619923579410356766850481679895222881569920705360187356935844848024198889678779623699371396567377652297839881262600524420764545506058330543918858242993661022765344311215987230066064879868463482580635976686900325704340583813526707359594017713141129605278711050296349429421442230033340102422873749465078528928979620878041976756754320974206395822389980035533312287047196074353744617970975941288688505987531777092278183580517694330850532202692356833046991953739250623131441361731696813742324793368454727708382851501303327377875677047759383188263606582016030821505528580098348811599399837111937943047688664652209111387960354754520240511430681608167244171569798169652605060340162659040495468549200583963431120006463734900693993582878720649040956192503565704078374283894232967888937176027596664537777073701251471239346278965252954488049286648411455342224522073625959246290081133576046495671875022495469889093624842777715195687718190325997496155576085071215030162362531428130140544486534982419600191102300468840844042704199517840112735912456507463149459737831181803363782310812497385915699667144174091414518893998685879552902339381896089312277280117720297341664586733796174790165880420299863523884897246478725180375241671728112869839099275115283443417839289821341219835865045105220581611116791743641695812655206932978970477072182107262395237358354750134626971299087079284991070184514972221794642377577479822962465390225042029202130503949942740116144129152311906253940861517288943033647627082544474884795598246554961690125887254070192807310600671574294549842370811376319519651092422723754431052075029834842288170411577730088471107934632223196683513208088535227960800510650126949663998394351536946808609979719803012543322400603128451204726384612106394755917097265364840334529754823559550693504026556753090840771125970129449273231813039613473673969516724109293218731815974996051932611462177620619097776489627588601378811175353592887449602144024369157241359790057021653771217594917526696748869265206020446851071599850427286133510139925845078231609105437378157128254098522521780456091543888772410650867519490971001233529856392683892713890491959611003492867520141613053768126213571719460548814846403268931893974549552633060004189421400697850565460273500073475994327634216935034582526518239137143728930742945018091012950847096568135352403885526849492089611602603322595798066042458609428949076615676995136623339309582313041406638917500571986844603419793949325215187159457894186586475556942612583902970983487579770436200415832381154535205280352366782560939606028829205476807280599600534291862521845067760182375836566458691682680848040295845691682018710649048794241775855488681768573956711942577419064773489519299448789431853469034793664576399468325699059027155077694148062819304330629747811653147221957088583371605984873784600113969043777398309766977641879569651989499294447975177592967141873534821606754852618929212748889397092231513299407315803318722669732852895843702419642259712554692280802388896939802046582441471498455025701690605150499522218782640232264569197797816842340285014922777295966865861748927914936878268040943477489991282371799469977012757611355703481149066952544662101183763071100432555446287149205848595855658571908565665191297553191547700739397997461661191148211641173004331811983061217199640808700382109035503881432371486732056779509089033075661455605523024612259470541204333593603400069025621806325404348898386145700340004229192828034130127674476530347393491444593582860307321974643575145042712276042198688101013051622664750336768362055950185433598782908840491662626823757855300273824481514930153205525260167427090737725109554065699764054351354102008643956423289094512649530369424532232005776342104614239655903563930839672683626070168852143519581261188873909235330600643859987067279411778671491008430254537818822850801923969135781344641470754668102183373175937157192198981656887458304019162381146288876883946761571342643325927992144265739134863017782021661102433914329479129351130656950712408253321256469304688119754592626545953375806856504550275692019388971028149295576353636329979760971154882484785262505020760511627488070004219270259988405665751708477401161288392072497539402283923020637924093517812611885808549045075632726185450724623170044949581249110957608721834058775787202469722577714484549587668495949508017701002843093150855064115529545589464184434810474354425792490060898915651033577552777098081192994965773002649977217538921193040446739263590479300545507226199518623932095622597341446151093464652557154152700561933138018469329499857896194337847870389854697393130252613058293540274206496415652571683208305724865338452528506054769122898239573162228108285546309127470295637561596248514615879955654999779071370616522862545250781953420417659434276424526552032877600903185999752117940779108227629816947512436921288900847327289122909880811939369217244802383505722780247920232165457266632746657769211229449740182510021625342643733569042883234975422374583083488307000730184388847133833748547320464837831930531924911213750199920077276142662105326554957524045821853463868319861551987453329589853698087628443062782393137943258717829650189025900199289796897400627971753793585860225324709709507233582045431879887490658057046273049822625271166919994423990550243517703723458123115869915530565770693237366923084210473874847191385891079464789476884381674228726271728487943995734174228823023486838010628963274103129455254639656198678450049802425378406211865948308242800706333915660716049896692864130768969696841369684548428002243640557483546950506831693225966835375919732413085017348644919758843213401298282373792869556861546570071746841552251818290329893900569135845984565778758747259979217370227537357346246986767021548608681637096135177392944314973415603466253528629318071915812464365773703433565507084939766661379413435510293351967167252658775500365455778378127366687438625960527131475396726765875103123212019408880221960498613482097419508921435634832773218298841198341335199825540166628488060837616310224165150942886703367419576327520057421599241434407936947769042657818160718853561863503659446215112877918237022738189010380560705551515247827193731682022916179217262361588087874621001391660117219729783236778877140656900679873053286479218543760753059421176781134956862808010786986618078316362724452067177478423440259759294634728568009734424609307827772057944056162653868442501617147745823683306450740631170245017393296089033670209088257920985712485077064018010193582949561579655667044352524424923121948389343575490518907937919967841070239371340720923404346330390556637141516570305158330448562888528220216498980176922685440655604135709977989918896990383062760009553172344642067512621019786598134415789061918139449968859344642284235964659546284277601336884872375176196245411261233955523527064436787797967743884229245607103573679162622518890916043961098629983002384070990515516743580678882315099788850990044979620527172753044122364094647208549094224294312413979586846093834893599241783332736032857866958750556687864555972638836397966708642725567775249154700514251152927045670148875476723749533068808666320310976080772172245763339939959451398769261256154534981629979540937157999381992083938633588028086143670513753848843508084576065450462657200326298356374602502834479921927267827152808452569034679226651067415234134597166975399833700272481149737153179857351397036390277840288274433767561551720035898726518586860936445680186732315268327975986123891557606964052915665440985608279697913631638700486746779145576536104351988770116061139251899902073912895980927326539385680070742745658435433370834292569293846767154516721094212099489132883554633656886709679741632702913938871860960579667729335468124787702658825425137704807295626038696167627841436101948616223051838082608092984395044784064992471527044200659547756345351864109855614662415978428987388166656358870445464305275786630527232583943420978229224507772705450323069922289705672679972071744101813178856056371061118631468165939675620069620074105140975279295569395889150220793685273063087227841086558630038706187898769000766492745955465825192152362165970868793126407775391081017746277905667242094733073759601424504056926897923347776503143865344713965045072116676202605584678196635697765246837454901348121261153527311788078490215591879824753412670537411879160342392601461436419243556034259665906532431672802444343370967179139460003682783942773863530138539094711718246907924313391491441095358272417438492989848535170223224809343946740176087740331339372756821658702828168836264015497305619234706907400103687824634432386044218775140954398498228074701209814107198124273975498301644849907703109672994228232160543673827302869610022068854960856894429915146884846903549349921834716857979645294475156942830739871831697622964485181316324637140761525337993933084146848822949407903049749192510932876515805816222618585334857391614548327046950097842460780612937585669273785649170077774989398503918166960801997047515177578551258447535286256249999538156628847616116373680789076637215838876208509053381707405651853855730072045186103792561078502092623168772283698407799448688928660646747434798708965458556388819414753238028419520940693834702256808608832782189200327507015862772594420057033728646610927028860808305306110271203669988054522076484716001755898511124142301459255743343790194844756832266171704108938862475121971828478966706223149640465158109382312421856629052757479711699137102034502632855490107650126972390014703236421559304492872435108579993600563059957251041591528309170702666112866301422466597832511894151752636274067243578561992685392509811822089031910248660592658866124871826248818281786650683358483619395124239657143542223949114634435434080863497864214077682058334613890505212340276312192373874292464636691362797258338878401156749835854153524927883230823130435158708017565888057708450142693160281028926463760389850120907859213414315717577191143608752829167879152230149003856066778698548835933834421039146152783278006502737093684244094263890921974245719205349289921765133986832418751692980674392441053206104564422938592221351360407692220807747653308992986797743891884545104074532656085571026595662957775997039426081961522766294849803042727565503867153725496693815712898538700532918851353731697295316314045349825188016720009327878760238125525241155354697115042167162307490397799020893020947985767418996013534618623154539265201828121389254623562834782648437465733538030912699497993156263131081803831439001638702705857416322130200813680525744133080513894453757154868227775213939201069053339292766349290643451213614770032910057602019934845979284203123403299137899994932313006229485396260258125443645619411341137316340427733215386223790668659085698486409659117285360891117652181660711385183067875729307864183673011508025206016293260277440155114893043647789711758000251765553141070330788402294050591156256556585430157134086862193902841996056553998471051758495798702763335307824364527071967314657623162538237073297256892154712407214079382923507819578186463580342742149086141923451844046927745954354230213992153628190079606929076093263446113044450980722239163966198080593134507952389408696530574017023994919097647181033509390191427325573954295051670356327236027502706137525296086572288580275660075992729210397594701914658292017807443370724394232903175830253134240171182408205743476046478567656984007024297229650721043085435683598906227429056068619308517558990908986682557524879566232954718131256429928212236133815013571134275203959222785240709095063432133607100559116237903173022833224525009097019363895121382577184134672907227242572648843306399668229387137388794226245123954578123209519402741135914025711495023757984503242068832185483457825371051020304228039623583715778832279181103043769523306922185924428986666439908385447908939029134841806495466310268422962364092300951782637273826695003088176178275479989142442251844615532106448912489032590728941269131848775794293315722872011978528513273279987340470543960508078318829071911002158181899722130983760252693245800095962445241723417226808350628452734862463217897537570710733040706559087215580134559505377112409456373642079436965036155995325682996385000805912062395080472956681303954429398670659311537158682649721269396295083749007079645038282755756177780035352825577898587195890616182899040360318183642428360895267512111486458203794816793137003466348100521466996587660395478175282405952561456289262151957183317066066291855694975982061526057526518404354604249044782782602072092235095243359923474752476869637127715394399747266691067034884343843026310563609429195415146345144941653581580872682576267849263256548088099368678305623782077460950334889895048333666085524482993372759911950957882113168928293836423918124645580166584098498370148480702174210737373223744147560418283280151167377056466373143523953133957553298339148578946320524238477874050318145244821691150915325899099057416145970618570409286327412778545142879240366515216901959329174546853707680088731214744046596040540456237879465456377648458671539160061392583531699733995857400597607108949484991160207353197430126066017052625397662463903537802459521699119850762651113357288256785289882507337477772500288487764333223907358027875577579088986609317666579497291069738829742649904038068296008161977751159316086241897173420389189314380571570148359227223548071995257391840615556205821637934649474588150756233892916608449149882017828993537215416758980742708268142035079526573037666546866581054272080008694112710155183146969304232670389857195564085626702587095867110398497943860325375601495833698365661915558611376852695153564343440869895971758913867980006245346842062796380225720558662563802045460961428826708982802997468278836038381325663366364353710966543332416879312513444602270326832982868971148013910850411074692373049642781722852667604476049224752484401715981613429879408458229679601772012077965105602445920653653807962595334559041000179658285339445056657016256559925379527947857067717360480671026048502322567066763218218595709643537231865419724804477098868485250221701211031087299181536867094193147315045330332398453696907442946511115312459575703227876312644751536570444181942388483765673666163509854414174378189837544392665094709765873196285717292433778207325455082669070376509979840396960379694452035362830737135281083899530301832578237254746614829864507197832676428687868828684112202750609785917537855842327363291485899344246168440794702403766080756012010405886299863232787354876709623328361823664289801265732016328666879736902854868631237568087798872492363221623250292775510370310294950959604088329882283421832444477893718612199893713419004627626305474426074310186970160417768195943474144227367005491604715848934925735559007994909296609698539511645936962228473494538967898591184960226803854874200092125293973838174712428429372805799057979095863236226580151806140123852285034019549740764832839153890386937905771482733943536844060550416328086063470058117368011289992248133378543417009314258017879771338174975888939040136356079729902336645663995146151721420995431577562274581374976636159256077947500768295637568761634057147459777930608328508103735237119052894044658200819197491841784873871863595879300396189404508180970339959335485463675673465660857848923557960352969028235392315703650140136767480952972298403942698691079042468695877255687014298665998739217056224746729743405395095984539095892174251251915506146977137799213115505095259430089068441499680408115265721966134911907735026027928506248286768565229825988460461923649662576840776462247419273320454529180292942621532011171326565188518086809615881548235489380891689631902800698498749852601467673177735347342036661612419659966380919766275694908560019201667646078644894171323700892957673007541215832165065096980196083687059640838229320488233074797736016267825661438853128500732187300159381888164433745583332442596297204485328425167807788292259410948961036638567596022814993164762034242794666566056375709988557003048831595209862800610359676364948130125630789378926096647355224924406366322557311707535835900371899182235165821595106362638178369316656991814240411060698126150956381886617195958435243283627069692233358802794691040255700337813588912062376045571039237211422308195959851084333235974078546081320034946971957817687817516657249326594352407998527230310673731015158389445943097826639767916667966121826947120557866459945780550850060775850352871359824455012200392198086247932125727647629446908942165774904131041463385435625117520834643242799153424799954337149025472254407075994794167449912954273623451935044067673474554802167275150778218979979868660745788865010395440372058666532626888109353639988760763563703948674708018213059440940735355849695160603036291104136834612068207195308718815165503947338031840494055723018006056026169928865189739515807476336257415718586729462451449310940179153632383757511551669449820913589543533147091718204795455852191167233238850935744415294168146090324233149515597033592561081473760684936971996124411756451822432032655045873927647954767632676873071031565148480278837545064810948328583443595711621178834878720951420933393619568393751489590045394633347206068303274280756832577019232650065519174271335831703564716865552627288139313546050677521958372900643497022028227259480269673295662100637358342442793267828081148994244121373386757545204950836925746877293993074756896050483351481653379684854829075586680844800162955763075805352734500151192272522411228497167170785349020208626449901614659396391383121167859889299950237259182751897300135016915640322712306213419139230798284426503078305303911221254743188203447093464616971669999568302190264217739219318625286880316232803035610627891327962805935869253145367332490747716313105237043719382494598234120144860988990267706190365452300410767453767927756165276675685311774872213004415021885666969292098716652901856149767902201257948230299752465194257063715464833570804411839978164486527244787390355332917141984758032348503473037728609837878868630418800288933810998889950438062604532386251991950991370687987651107542368048686449612221286487460714299853669058585461485458499210114007792983613080810988627629154810507971124013443124447706979200478858431001800041032247607716282247416264828175399412861949751390325475379754512508844856525949207455399768468868646393183356286705085370395229023044135275889237108683742176831050041752297658999618505720503801057348643261695596448374959041601758346343656062622731638819120587468471976056637756698258485590711607761448623920915728941200556332408540366316425357511604206570397920820745883177209432952014315502023371145030674250840855319070735790530540708868556901340623557310379783617600151420154109385522193233152015425254733295035355290268715500157828016727508735625731858354883884559598148078292215240226413472644023696867878619082853164420577154746553347443902446997271299068315425178790161052511650700306413596582764807561698786319454859420724571975682902045479139853324437939413619416295396129969131562458836008397329810955437959375320055324487340250651076677531754238073812497302727272768724250884907382553666987414214186005353292271017894744738279635241114771528292791192934211612478788351716331977177880668451528261918263822100566135372612451902102738165151701449367969610810135174249536644643820875551358398469224643386101427751520565724988853554910249111292767824082981702287798426888520416877077024045869989328465483350823835118056197912088983621727047792221726731247950588884456923963465201536745660163414529795657238675961942186863945785521388104066812553368254590119739247347781625175083891591879952791838898108097686556197099656360960165467165518313378617298509515213458978058824043883203851645888037430116884901245837185403999692377990771901737081976633805872171450650939974268490121147256628061570007274229814294292753926419472724749189533116939634216683475689651287682802268346487342180670395586540493389108453884231180066430360843850992055155769222616334847955401996206965284756561869480135686334807706811809091378831018035699349515992756563206034649927467272139324781141748651759458952744893234543048987219337662193856221535047923295898250998464714250198232509558688855474937590337558140058486961707511495435254176209037209912818335975129649065753795355264916325256834326589811120157320712732523658460682325261499279672112294229016060327007913185494148292653735101150390366791657919981265769510790947865353354226213494412996182137860886023475860837740463640438737473952279281449661453362164072822876425485679923078777231587552264216491534652743618128456186169440788645552388567089804544094754373643304177074659540274760972723598443377029973410277508556135544487848082732842858583504076500741263137938053992003191409142531385228404689350426873634992240436169819569811636433305468618141742216611552934122922618238161529626133217611299521978091601594669247124017081625769567110230655965951456576609980015853538881796078051032916718358916119750410961874193109924761202196233310776105000907217116547163706881235073972579541039963181640342506374622436962927794095849662651746678288144714042362402073432065711330441247613466523198454431868516693639790183671563910894682256583493025937826883702759204159217782515355532655594267030750583776471545397690760528422373597969684522667589890813828834954196483499135283767024986344864930286612920565665129571135274135906227424699732022017788481437300935384480276464285185310970599969355217539502164262038316668627956307888390042698385352294345152439730065234683222855210788989139210683334387473775569347536707797204909437262182471060835141976897081249122662614370609597440352532079799164551154885567601871782197763691937984575671277548988529773076187463427279966274288211483787270246871976186009638445239000808501270766807811330184836070245967724877216962417473479018788301448958215183219200649697163414748339036505930282128372651292691247445222512098104553427066809568858191653438209004654730812757300743024524047543001186195446335707018735480005134759675289786273019725356934869294971171509323378423726424308575078171896624736064404688862383753590145749988350538117095523495118959141159096160418720024629704533626145204723592302356782414395102737619724372473142842736020203471229465152524198426063712859463734794485639696858139026930880796205013695133435346955149136540306982363386421276987867082773948244743526446792540737890730251384316460135603319258574237698779614098538372650226028838501986209918044821226106538928468668772893318468919893295541409542819632136754592315076106873801433854035818497001397316321331334059500477541320660853358884327282466182483598397754866943996599026962812184564011567456707438036176993422220032449209103329870151641193698619367674127392244121320589406330247182216858943443274784687523455744965528066326613636357650504702037681297865281134886142042878568838474680923478267170270785036123694930998339279232872782057679378987563707503266608832808762199408467486569520327547309111162823420056953179309851322709075718458657070252846836387541020208488663640134003247676481900864885580821180972954588345227675505161100787984043125747137430419466777651957082818515102034908186999763598069687789955414101666334511271262268812276018950957754532779846643588875997156503914662521548932754075256372410829189505916040232953717358782556446213969685758946051942129495054978195972458629668078780922541425577208408953952416089555343446414830647978737211394190654439384643308520518353721594938840438596145481265004420266472903806464393802196218453293907644927109402665054961034724779671702079096236397019412903553438181708577460115192767981088984036352272769885220054807311068711248979598760935150154103991344732019048239677620867606921945543120969168630596185502216410539831076168860482334619602620578150296798268711350482623477577129154540089292787173400575795836937140389629391071199140591261951223965301958621207980162972173116007765767515747205430429608532748248396781549416876411839119842782496668120571854857423171886561019620486577888324847974882082734550562820918288890980285790853122373633415228438812362496079537223020030467199855992405706578570785138745420716811049136178057355581666912815694226170456923947614297765182207194391057446529190772000405599515481017490699056074134083142953871613109910553890158027497860090020909323268854055630740153355100599006524246790038771820685865902398325552968914397061502196312738406814389793689659713197150619053130631919843809142916424298623892564219253142995380220662642382819078067937181594720184839328432496115285844075561885442809965047869226376967384736166700508391162145894235991336680089785000826856198143741773217886899155871397925919166486813344735500788762266473706760189263212810703049531498985508994669014331704474244597979724295391082219806344057077917526631089748664799530667266740618593125807806707483464862159208235022757973508894664412855675419826937737359390701997859295015691079437756125998209731651052052013001978682676524008046861339671026499093463869129822410768262345441706269115400754172884595102575212620844114405394708918263860941101974430507688711459119311814027195037222633252114911282117761195237061652538856257610549449416379130687731433425145468804099030900215991907731590581564448935336606786234736487133331452542458937594651688421286606901660152161955842886304825507825433851227223075609204340027580267785487324416389190346689049965888788784805725347137066324322108118019820829171612376781776787195415238912441908911640389589900617561491278542257742341934929387919051496587797558370814773877001797888567490895130204288997441995332926887026087220498596099632634719715794262315657458816018917523420673002433130433271426021702718040832408232982220038499830086658958104613964605913971034902543904954828523965447538187887970291556745234297635717852810721634941590560130350602629058675858767867883452146951454717334439631358896088705018582064696111503375437332681228221372241553742992921516370738723850909893062122890626496822063578657681880880836733225920031295034880858023531310494905803313714235116494032531264231178655792150135577322097348265508076481912589600380701378331907593053473838425442872281891769854593527539882629845714034365654867709218863750458984530654246797464190422999700951455937535045564314083439941763596381526700550585970521762952344603067671763431562408573036312523745608478980790200539292947616523091544882360764173057976187349488448903561213171391501478837329691631359592112189508187662052215723367305828944776190818805248973016620757863585811793462346504338727359042613987360041654449179373340831691406084257629733868521393299396662820613126116238269637124746021459358898370024717272897970137962051294107405660620362293938373016687713905390840534569391560680750131134623655527405216461589659834055519461885267761348147298760797617141685375637007600879469075554147381426305994075266142068903408659307170159228131024634878385123217949846109997022148961928084851590369102662311733375743377518820748725818192674770810333051158500827958047867207595245789161342391991580098189873019415701841114305330903149765167444382033038066294730151310756547031081315539172706110106589625119386261574868194698877062172756935480707028698452225635341049820396496135014654194885035120033564758423440829554456981576752542442756604097152400659055762490731178262754029511303152824090117774410440140566549898995659110911541738942572565753316986392474901336517907213498261199110008768274170826489038112590387024725023259397855141455828676124906157157242924334927714967906933853957213767367476729281876733103031452991360881956303081021428559569398702420423174051536486658132117866680170097246393905711757271779043486271131969708605692924498156579356359807137276284292129906225470864427808773172175541799776463074777241011631401728326185343234704911006064484445885572802868357791675502457587265880228907100851480552798260643190404936151367707008130738796692966942334643626658731238855480129850828499341400199456525690917294016933316642398538996463978405874228581099533583716307881401723131266264984166336141156361302276050697660108374686272353939411332808906551708788756157776373474266820859894085216023503884505374467664478078096490329494466658886231557667932326185093601886476540657888920002207794948647556087351460233977931161899927410867809319574007063488372758869286011199881572500164246072301050889388054934679539250633968996174665978269474632823124537568226130399507261440067015325400477249181621395991091615038532154218697801417898869244136821735870457406438731594049365660020516176349941035047220874971035002887273631135875132331486054845768335444632708788185284151196502189227297725647035587845067298665331768543349039799154155892785981741546186598282616188831914071774633204291552901637169594681377149866531301953364873122397374666556320332476485184878306159827376736564029439921697834021713898576001881851203962642448083748072116188828551814875140756738615802016148842459695397703986034570090660577832655028569275963656909018858969195642925291388239754610684384379260914178321657011816827409658795313103683693335183134736213404800420189171733104002423685735112646998869683063259869389687548730613026987383617860752127462076857725845064887296031936385587681396479957397466250704341961102670043072649611320756390777932749580600407765932213822946496594919114972850285560290705863055723086436957912170099556693472738372698786365608379452618660011760897952439454770691553555260057343156674612952174418146484116867226875880219987994347909337517786722180454151272763912843944034497863882009448479941900807037366325548626660047496431154511074443882264303768720300724968449962647840593078445986643264534073319999249755503363895922294364517884500055416757295548614033623773110918217851209587455566198436979732614763244390565434416997845063991247453630889963874857871496111106247811539015126836973287234512340796049294596509741090269515453017375157097261506922517927619468536518230873829143259231529733860103551731927157358659903387315787535405170399441183315810211465759977748416688946050144448958622151645280550134000666448889386964693612140671283157302625319611058984745339571099053609133209804607582753820446873319698467702584216870338706558195811649798236155586989009838795858151716243246597984306041491932953149563686641930603653946514006381375469956475954711948218803995265844252900245802924253935876436167677083789262920035078793569593311789353734937327159763207783348520677599501915532570585119980592764936710503855751166935075191950991247361026487939251196621351036192599102935643525608739148091623819744435543910122977835996335329233308906582632751999098409568313383515588859253009552909975877109016653176991704628523105825816936527935733482929028729062302907084877210978807511273567075039068818139968157921164123489073612412631161633399562744536167547530299781305959455171793593940175875937218811413105704566634855501611659054439788982038758524520243544827673487271447494661762156273558917459857240924987314456334186869647875612785931783083191285064662893023527115754173461687198221870445750656137044222335060844040855978657950337158181323097186220105902988200654757002153297540259106931983874846231474520930452717857405819858380645655532506880288640602453991718747867366852529432231660661241643704624146145168875152797787936112291258542531226102162320604591107311589778936245040400463935024061444714507283166801947379655266106613664138029758914637692649845685229246656878674139281006798135967551752672247828136836694333552071339439475483560521028653810050656517447353851993633306083025833142713154353628268578103585208071788685956227710206840462911929957601495617338000926728201425908544408629322898859912123448943269024904996033301963276011859389404892050141172819649704763386871510645433511746204316627734199497358938613173205048494569707723462939842260470635481094869625154076372906127281947754540250774960344219832806310974426825797041468528482673739813058438052514281899771396875008047257343319605867922851673454400385760522493592850586565492945903185468079266013771447991086431529185767304155600756897173774385503831879463061588465737082154072856958628194303889669871280955086380618500725700385943369224736014690292548027343193224563914723250534223450984334301292228918679711181974165172272150021353569266205110344672631388358402419072710176560375949172583744782183610824374975679850226333744939312182759856674959252700187592431208097779359713774498990151188880990495258179548474000416165314374106634565026484904495135666801464323595849641877213820281132274681030715087039395293229523251026563596695429286804853902508114019598519345310796941867473787465845024989378001930720914456363084951220208152061374224986207618005201895404305641713143258680319524326465111693885091637919128911677419800677209740660484482168710092962534745830887371621927520968320778945683280034122651239093282533827507733579796189013594189191959327025542024490352604348968993302473731449616539432445896224335662011371821947147977363848126414520873374265300423461386545000305539654718289224659608949606371721562721923822355175261699279245449377601556272078947091284976531906236372630847684269059182867920738756583972019259063089654211113346261003333985863657085567849716310546039839705045674449092915275555085559177054133660674838974733331397807866174325753817994027187051439540468607163608088353005951828697718445783750659251700225903744024593441152466594540678908887834496681402204949971787665162217175724394343835380529321466772487576642723120507993764372471671036554013540961396679473640454246389501685821809647645831040136726238884476509124776400413330116561649259815247540094336655359095447170079039891767315228183375207321761363763124558424109664049233957853901224011995788245972378575628541900278361348647113282457605026760729394710177281197678555833527668815119593196608321217015482681572872575163489087161779011667814727504198065870956751928806822267482371061865468297071992120397685112149539327975534137594527723838953169898854516245538823131274663319980500741952221431346189460952077435661641449001574990427281891837216912643791557279226589439916969616972503747920165979697041434915747110416494657576060240505012027361704764144205834862635595786804323487394621914058104572694025089300146640116120791742659682702452101229748657047114170060854062705651117821124597972112981521983520508016551988981438863751248139951695947343254694220543431352741754610625065119793970960758918622583766166768626576516810694750133924845227821775577886030490541935412090034552119230558319118586442645633666808784281730795400883520857446915333580574602421006605875460461427869752458808400979986718647105334394680966781750645845328176316904633497494164740134516247683249043380877336337758487772308399441782888925984231839763325163028770230485634047490879909726343723128223324753265880842401980537786993418038774018053677924558612143404717319539240190351929720007411796783736834244257606071253858823457591161728679877693564787985953005717000319223976778175503380249935671558875206588263587670086909466401197983456646351805346088593811345880013700363504331023424798673721868783391212467490827317876769233476028569973697873889047854598379370832420690656765429613168501494153187177869721257811974634772455347660902312723033057611330203955104208982302367576535749867261968319740292996754308256734095015531894240469103692996898124228274212429537659318229002036134679774908413828380416363038008151175334284080004704110274056948535155127316556034125800601733786620893243246066347780736744480878671432010040951023322112775168715412227931820070192431957387373203037909010215386118708648141548793979066677455487820615182910996453806141946830724985902369088550330556871669710825353289967273655902878126861246738611003293314106410463752423540259761462146304891457897677605416988543200320018607937292572640399767916886062777520412213368922645443291049272102041657150761817972534390099084807807112457233653495271515472402694489636339212005199400765392868875982207945603769166722869973505133231833041260765303326836969393473384611826639838609580500286169873507111975459062201797823697744207204589442162675636357512098813933372280597404994004818489164843651025244302725772660951798957027411010868574227803826570689492372647957688879846926118204435970191063224209757272291956860410701723825994046097534262846269710129133631852971209125982308510284046396290522959116844706461583139701280676487425391051598800017115891743804796922689407271929851533592890326199229533771790168675080511072972722838146708235614184350175416013911752935103940165731634882900442661282293102801552806143875893851738065647054077783082332888719667813607994131265981696849623223250030521099960045170498729777477004915780622027754947171776911506873602128892091934854436497208921228146503838598737732822493968249361237367906274559502579254475367266044316052761609861281034180890697437040612339676072787182198942995138636368878265015589616230400722784088976251671446774917173077572532811404355206396824651200943056951421655960258617932727296176551328274382683704717905219455597297702954846285348814300150541843026919416366326225500458002906002907216024359401520849209146764961718692601958845861530422900071602221330032857164044572508102262246878772046383431661918575510719244439749199128444875919338296555569927937347775459785909654823458019988782803291001648364640008855907393341370314267851005525432730672795656800914670155041879260869268241218957431919896329381064878268433998450191544399506897073604416847337213661326847160216350416267127238856116399827997263442016366498200110091372190380660217938143454174922864679075870179155996706972447025527794749605320763929099483032336844136717414971236837642127849808873598006735746588702161293582874287254603126394828389791971273496136822970236741162935150114316774762546816652266958575052654881518797029171605924461502052949469136144941667959193154809532482758522362240191138744067427989805521061279049952015875516721189906591325112755719207223583665925413793442757702677581718395641927314619277481375613553736812316642940328210043034425773571761637499960245733079074458142437047863005922756710652671807837501706860787895935042228816130667928486449476782552763778466168014378961951787384196627012852509121904105365594137331879822225923617850739111213875564739607634277682438261091795245278497615802588134482795752251280530681529637512926290915153090156498379828489731159129783871442078015982349020211231180572154614034575573953360831051349667124577421070802391489537167795832865076751563927263587085830389425367352753495104135597105649121497941047177765611854689198848079618121069589240234926094820438146765007534425841595646497387621289873005830453136846524162966127234100789344282767666641084044686417020559001568283610931409753337074619189214186858032233925809491352505021743264105053669706734534495075780867119827143886494339636606173658209670896314270124908700880742643855976004465764378561149537276897113887984590569245331464811217597554335645014174711263197519699057086090060435093315251445752899831865833099760827718988761221574930525222829815710627985592122513196557153311111009686117938308543961012587623285041036027475921683270059585827838521470799320734188702761620351343894283541532503367250979984918656898083415440023254851924397974459073189757323690780427062903022371656032158392358631196841792703115288650898786754658977983150449891455736940956727375549031460729416694860995817548143736057174011761780784285688559780490193052202170051134124512532493641214651302672032518869232380119169923637602631436023334424998261965760389487826650719248555183835086095095503947497427191679742707578834408694989414178623062641660967798665817865372426183568090629735270213204694220150826881226107052840876307236371866417515763905333331673697147242223376728476235509145744381578699338329022026790385346674507856563493207758761836847568808949581325399001072704432361234513043301836866415673688094412654441062320251147510607036439500640568222449051570192937269071981140486126547092169124318915452862804369044655318164341759329075532524318660938737533146294722540146557612072624668175306128417456506262603534717115056476395015342261480876780948412253057726253002017411318714906345304540002694502177670770692009694511001961189141757152779487065790913196274288780520990925146050975332863049720583504170627721011400110431707260223359214728095731335891734957324219352797113836851012546448225176752202051065414384635890925851068379519256493586064339531584216203694865146429430960405361308826336679937388716230310191927767073697482283854520389891727325022598226085604758885940041397170662198924974845723527205829948064622158519880469327981705447667852916508942748912567573318439893767164084726765830814375289557462292988946630298793008905663764266904219539713395291798077970926844397433251102793053266503272679453241512330030110574687811545026402255002375061257695406017189703186667965893742100806481799971581390600859080065003967834122750585213052720100899504818939063909090032678174522863595571331035329105766258716304744048437758712750674456113840586996622307123567486837929827450100243382083879288558096207753286368448795977866144510427450766296042060793549107018096616064942285675817001244079994424630759124101927966496071081143101428993353617316534167753639875385901209502448349968154849160418093837442210748149845930396825951476516135090289172087652733484096527086470297047919030399656603721612443314087927693952273524206343772903001069720320529540392115675156612861738421470048039083931987911270417334505528249638666532392112259447200274434684213365384288414563055304552725019240394465212707321500592034458171863007497938911422529897901119764538333695669679741864478613036740495553421412681244600070747421033617740156408047689215309189793260609698851936194694191537513689312508474462185008111165003896704223849370561791320995959016127325088856544826274374664896893309207006525867364717689812122338368358559756030778798656470809876386749686200762047036695790564611415083297283016672073328885736618397891376150293397113685688793531091329465438234332127242405290998237753610672557508118601656221672029152988155980736758437891268726151989476272693874707783115448873149739409051076708466276863090834891444391259295399795876961932679968437663248025136345104649795206575970989053018780976043310068183332529290471123425708118104055350513599612349153911801819242504377499412418510315939567972912641251010925747623735496707454672503513397392929260748444886975296880652011602079768039175737723662910788472139951323762714317304614874735182557137153228023385072124282731748405570330700252645074668419442482892769489192468707379408629380459788185059848663966873680314776902508749652764902552547938735875637074611986984467965878877230473412803669565906768960902117364831562600488110437935352918599860718798264341581488197226558960293849458993885110823387189349749912666154657257975872394701223292701984577640028588382292914791827145412855268908452823694324946509447137576289800298852438291489045328062744136222769081554296392649147664926931332664515020789096416974508870672321675040410842929991187747127918784870752422815794638772757310388336557121640026659389362657315183519735889183116908559775753337161500246133116433567874235791158926752501981173515669533895408265267781746086706647456123092051450022110444586739302154883625048197243287883749656945282184424576110308936199672243530501082198898979876751088542769876078194850680924868863795379136324147098416598595938872155387493191131580261639636411376174774777483782323040544398091815735096583817144566454747996091032217004580926234858346349011538823627781472632648346069572805248534569769967148176848094091748412803900445757235976633315910892980047511059024833475476047156917232441441557431927675301790644549687005614402198725041384847183756475279309501533056605790667351680335226587148028883639861486122923632498217345901752578129527543276557178972752622572040220379047135278886555328565835111883593929651854818221665249917101774509411032972628071065006751079459044380658455706519691180138372804470995983149678553993481109887460691549333506580388690359633642550743049696052878140149012509786408939993197953472403461495197101142345733183630237990727810558541112950914519878005737120782931259915695311433523931623029151530743366012118945670871885354565172912766385525052189151634455855539324032545600156440473751925709104323869339733630586871881087142137475599542538493486972153587251883063626878077613464016073091734593018160540905122017834260993404947360872475866343803244615376643989944837396673065580680968153189267821472537075902526697659982702395983514208289867059708253356063769484881170340293396690446095613322462189777776924645380084813903683062194376104731243305950992060574836906809955302417291491195556208335717935221863599647901557738940059713436620013330841763043889786233698279179104948949178767340547239531189431641815745710794256906135673456493528917032021581007746693048239005552597948194624406100747117192515257732982569492547773475511664277014971923188410601354182569492202758620572425464862278049176870429715158738396842227487497055573505807504452850820751095822214095150359566483855196669778068256518860772839364963741325794815140295264022336194003154973276972557619456873331347450424959431328015751073364273542075746436325799898300608746490934984116007918440193033284470615612318589732690665610842396876784320694207173481680718626922369636820121780032976226510318331718138820705127090065896228204473243795494510694493473442268217285078699966800870271016354490060326757034105196251610375841484085151923273318753154665259961677296501465302286555494717199225260221318212713139314102321144804646145238609545642435325188140160299321366460973785996125931980004192820002467336861923388249477745625415592408342950409272981307425453671122843194224759052531592623140810947475268689609415751047019709837874888912806317140688547529373284922487109236852455532316605733375484216025412106239113039674616787241603601889149232669623334590274631787219799541265482668707418568347449346416078069788413891770869061375031660328221630429237457840116618190407523912438771160348155552285642990383476507872118533079485428363514592922695151679667487541418042298895074390348314758444711762539885562661547529467727470295513012274383718747407180424203686260029185118153174377060127263381619127654526531714292407396100193934353900495224042838960953786964106875794463622514642744997512695611219730702683613919275276922515789872744081548991665400384598653363152055939404052244341891451294348279768951756309374003712210124752499711087853088110759324522636770492610710700755453317553140427120565468717678010054158080237335096701415431911328709550353411789846647689925356715613507185177846962204877200311705242102019678664921800811071076601204182960848287051612448960667543101359428992375168881648542662245398877934763381803483009470382611871876777536875481287033623843244661705813955504992766663608482167437288022584799252486744435593258453286155987858174809517913295766037014360582374900305122174368186831254143789663070343832598780555362052454498352051239323244137478504244086489691151593087106647732037125809823974197567552307283030803554924324819044819286622229259687371136312940183601954171228230377209202091707319535308540654239698931554583484856727998848223917567445934943625530831824003731785116476875167543834389972717622027176171928131083220845520516840255212493223727731034028244102413846179696334709780591677040975563151985573027589251183530018737423891798642306403904695221364077844821725501626393636353070797040618705283514612907966849342444438722866830986983477907030933415452835148022009411835572576875648413386978709936409122222986633485145406693596222348669612295451876192055282684969951339075747526064890317732698853332800294070617488297552036342124955597687326598576076862200003258522100614137467333032125937469729507308734290843319926167850120943689660657627226796792841202731937639941384183038630474420160665146773361596834738662459283767558244954369336200535278173113893889178694509479084129590883393712957451025763520048959127181394529157354524538618391011782545228995816124501010227858610004203605513401168214614222450539187666445764014172228070450130390564062436927313088417571988078087939328933091225400141689207275368476699503945672594777359510153662186664696390105712428783689603378013614938231995177788178586101282822718945435368286833148843479718532678153241628462940661459771159113600909624862832601718670726715649898728735670805495500691873150771805690982121583938169882481961529561705240176679483933760829392863576183321062600896509429776200374144397034726704018362236227459434939967690604956381157049623489668173660315526105243451446197221367744938572072547931694371925382538520818704424082278391385614930623399471053638859224614111268574570442062045258797179215664693457377561032868265538439875704034328475402303573067144382595423129835782261765958573790704390599007066521966120610292714528453214832482869686652600778458959528756947738530383158413121935507302107900576848722751222941777134126759802048609659437576933393174933432638734770778541052027576016616516268847768492310906008880572225621483068699626963101251880884159864723441438789297766773495785787716349056256264779840144313456883725078279420360268687160416675578457104644593434166158177904640482601173833664196098659220616967673183524574891700581567863058298822168796398752644610463867115419915408899675507331644849723561363514214641380312783057452052350234829662644585853455783092204995259080891241016012672767451953952512700988232281455492581046246529983944624638485032324075705527526748403709309624847690895464014242207805536440940274611450324595050181777615877256352598875264048512179165971752437255145864360257273179534076709779916123182960980639646549912857770431758948823023700555925817187172832468490328716335105732842587785971422970079873154434568516259369169751836599536129911200145437011610298096172867592665758946945647257934891964193177361536774186345984212320193854903425957303973946930984652813568123552469097896365427842767947902874098010053131494998056324519826585914092818278256377858759596978522761464121337314177667938982801880431818953623915745315248743237041822416600132075848649279073280664325133353264415856941696566943534186770673276997131380353700499554205436189559311361437332560024224426650169626313322504180561488920856363585343361273555601391473618441103872045367764044299013886227964469503674264653768553978204771865616428425396117986602153921491095039690052626705901159993293943613327593283032886323154992205331867433511434128467567228777942547670131299894432814627646313730620567690392003409471338615451816798856997863020512020548017017355868051814425759588896448183404013125539256947223025232081491464210246587922887884511152807186214185840523601232706759415725553338821377743056279887829505074314088414474108416047347108790814216176019951064909328166427329755995714192659110452109964836366839599871775035002541250384485236970483293909383444980449463371570122367322015120176320695757722329197874061416761796957753810008305066611459931023501187442410909068598996396190172787198094205522236687404730237962514128541904065959560251504766855591567546530607755515361764693273376144145014442896939835618175131402840434539912807835700268388637166888380112672350317831365931585737046806470936147914362473165403259259356902650894771705549954775700866129252085048797393150389604347318291410265650195838656194721688280895261379327000375506167172083805600552341996815724325443411285211246086381575127483771219595753655842076342783345576368132938698480137470589189789071564891486439610188588097186849412286272966760934002614014752240584945291444857357103387784482937018952801052196474628014904809911769547477784759924784653962929743099435819951138115678811415750037361893551921377826330582444610277548372742785217276814946857145484513499236494874114382203501453218171407047376092754782215715870778650337352705805167959606718987243320969730419146739571045019870162065738800671293311698693914378192297924304443120231751196813770167457269284809229304253616618047007629664880636517912934250846365457915839613365542149872772393967234193845030630556841757582546303012445032980293660118969459769413937586012273210349862206470397002354640046284254383768986008747371142032228964780576152095383152762654390784120469759571155372474241450777240883376453640055264323993288120195311465962698962232120762363458676455078828375119894585667651837792538996476303809706604626511250203631905737523754423264060198883064727611503391657659271047283095675190682479018197365905880069121678411790357414312130311172627357281787555603600612433784155718540337264149720155578266288179306651963288487271357938834098898286363873807256193139699473455265980056448045814322444965974724359403896607530916225515636277452175924433083076524757478549093882277560568635558483810706520120054522505489085007212192803920852676550759867023780225381603055236977000386078393788285967478878028694149683706177506416336333162704573251768208284373790519225312226905649480622174415422735227073511493011405466687019800042069518379168024227514535667357637497797630822456744118860777874779996210679634389101323734191430617226077397363261456647299990825083817066053794937388671855158732165113152554771503980636228577854800851807356270400554973757733728672031234666146176928691339891415733038694226575555916819615598624114792638415190638983458944903099097607268562415140011864317235961777272717921705225833985584831874469185010156065998733392553175689818741353121678117509352047538574672351512001809861751095074310203143639494191992913938017939572608674902006300000693639959731680619643831845458405753721758351011883665777892423357556435018887228949839727253731956927648328711136095179617777927843002565571207089980471681717146393261073250801152391540144110069100593875718436396418690748957716253024808373692916830748045032637469943095448416611429898528472603819045917944108841512098674437217922399887175539120512166471496474662419292812524473397315655635547213498608472125373012234743389002634051433341974030374621120926902121532375090344016915627964921767643424988851000427649924921814526352458487314538212999203845280231305353439815057909040336946165640683807399478371629450321809392649426139727249401270734829752439012311880711948606491557897155936476082755031872457368195698962221339552248382205562998999812067995045658278415016580764739122303600836831320376120344765016044474586330885134260534946334420318915562850769289720413352407675249534971155680210375990428306405058251976109794529555772145631044235722372867457302934765032221598635614693765319434442343590712178416059172399803899256147153832847722975540197764817144533196972869049582330735503743633194534178821237859215226784148445376030471146052000158496077439474134602997526079762424468390699128867735524245814685668746189624525161138475900084030206955614207762812061077478058175878933605071089363026504740383172824605651224516603751767110600822169762482502512113767520007869687299074413409698793798031761889355206772819987264599488788103751486847067106377299062574438755646791557790334738147397961015190591392748098395587190893006000138713184329805903320409028336713618278260907268992263605364439712026243281577071640319069554279599775001470385528543810768245318949719473387032330752588573819389577401857386497540035898823222942012803404103570806299361407314016195577195197640609305324458309736386384514148231638821075956813287094976613873751360853512958513558241183438953820347477725802900174225600202422240686396174676325113092093611852251242813918298790455045386738045018938856037038291279672842695403127821937260314599159993322033376634778076019730615142996208565005073918764697448409376072322648956419961240578519884587560950560550602550614387290873236511431405405060917196444075772760328869690885208517196415814666954762361542623321230042753247953308721857277150307505948265844615397748379244214039817393121228886976562430753657659827131632799267872302984788806695979839419888212436151249920727668870544181269235938123175633984393199757596937882718746708878792291957178446281848484853921151630400974707613404969091713462334065118660658694853282728191666526489836286851883814480957295210131594426853172411582031964285112225371630347759406700979796760574474127582612023267486935833050236572194176913786617522115281238381584169454223024586859257710956077045963071011872031265697182067190739763651049145853274954835552684113079548125515302493043538368831689190833340575694084478486813787986945216448478550971955437092797608841562668904149350334922158454698185510556782114797577939138227426467147215645033883656478279076694390042983495445003796107221759680364382229602948088343553706449265436490373534505392423963093247014280165997044877858526067093599365449115523100163560470900199806436562461978956546247162114761337485905449517941014093970610077199229936455431382460075541558078362010731940054302696049866318788331841910840004187357496583682535646691921526866497028753439316474976878631940724110433489346330425920283027078599524190490264562604407535049091824923377172370935831028203535239172998106071310036080161071280942802471129261088926255231504387185386322774140515845571275702660123226261028333954545242330301004047676942801019865241866555944985472518682556954825519080655755438537737930414360519004206801182228501081796447500625557006681830809654831447074297324333464504239999693634287024495220232985850257513840557895661994981046198474230443712951946747368647509795518872533680294278037611035625726190253145148958512068611788796756164297473196936070042414017751081225219336592818890868080449500026366376768278693891422041281018109938040850419196155761027784520976968550078254457022442063882371837306251790707842281428380762997393092972714264864116018942039728034414637228040139916423046665187222759830720879727940533772922484008975508516896627591042265490448143391877489635668140741288373293915807742420442887677044911841192928979511674338535715125488122775436379809891107279816930863944490788665764471384807796724517807855901583328522261452238536362662081176942293381106891287179006166025666727347703027514853675249953427418993858890340472751940680433871932216922823299888940647015547597927161951249910847774293466755442515595106245033076456162296804864392634916472091237976661699619453263323406397488712092792015170150811694721478817772600992415568589961361430095863481420397008563563520356283655327142227440774323838567677405332375769521865146100829389792111944533831166692920240485110406599797101560974320855698233762798798977048259451272753555288956926173608505710826190720759126670488028329282545066976088598387486629445059420642612738212947355827341690343053329531845466699773529866270988627075418008577074236140300031616742064157154005384807911953108351549525826387371263838650504255590964940686992992047261722144832418245833698566023337873466379767271833413448396719246011349174728423921691437105690458147284214619703147642262423174747560103580506427054003517814108523290254021188642031035991254295102347286509490148693213441858020330504293072669749273953388783384403465342243185268463943789820852795280581851189866985019933085101389852233238095087273242146964553190832252889265338294654923419231265900794093681121215038367708604105622533057907330895710930939004483660090219529063186766469185661235396091071530530215959027704709976959471515254351438640349783363740108665370749497214100842730337848229832643063827529962252088392236935695460543565800751264579898587304872047332840458683855652051759231733281273629938411079539484377582375053712714071672326969737037862531249909338908449023745720765327437604203312511727701279547972176783325872238401854584815839421281001892852636317092523202289218305929112721910873890793506906436282011469598200538414442703008567202086184740470748864818804079566901727561521857715208332988490632673519629329513067851203126511039902918982994407798354647763485005032671745794443967092295095577497864537266124946618108544584585936410851786761387888003202895122993436784667471511993482767914394130924263888220419599315890752350789298367235365042439278666556289374262427345224920212368422237978524255931026445278336577165329341839051924468096018968044458346341960959683824804300938848386312928295264714525600369693814968299364426208392110139333571767414675981980891143585909592029994989544734665905703131638175251888016984465197415452305042669479011167268921740022498651928191927464258728511897249657348875833417433935803761151524974902073952497776059814283395157050960637890652992243595227802885281160518690867202689731920790034090654151112371145500017103336418972260374220594420265821693728868489146334423180847517452205967436078575514447559336142506549708745561227102066076113724568567191420366133421279888738069786588656079227472940020695988677830102111234774156967633239699629733593866164542236396149460142958708863199738797117177257854089689399390793609805536173175929543803480910210628883250897159074512140622636690227397686217786655878893974700309887027987401825792955172540496857788756521016683250169218262471296078456323849242924007783679983203800908390448131761792755496676522355432343104079050860325376963573918796009409554130515404639574982081832274535297870425461329216843939110516901113593125154824491353254438933677300253660188036552210674638578956098332060139962599447513608899188904943565262846868814887585218597780116070629881926787930144405401881727287592956437456921947102370727110767421143526555962354543007074105697178107426808748743926252193970851036678508282034638405021715771580973039689147222560113651436739825770304496523375550170331753527034317220366333198756976708552861978073398547152794727467562885413107877933049196685511072685837923200197823229696705520256899356300234300226592772243988746396651492956815736097135121579727165884658314788620153960342370579877077755107836929596883995218585925149982654857526703722304670541306777528871556670491959897417193237300197027139854668027432586003111935860743555332730932739275122292715235308590388289075975480914470408800107824548399546113007127580781756480608711455387552825711529078480886248699808055841571041587690575748441997486725249714633156319709497373539609901407462065768530816643819376277628914506737771318494875135868353265504596186081696883888754697564429553123291618641273148777824092482179133247089722203229806279972633391015078739915966778839567889960461955143028108368640003120586707971052712025547130813479102126018298370735645673679888079336755214245201021140978721379137498006360168670687635475587918263623351097897930196149224860370317876618592865015479857880465426122488424162505739437719476748278065185842436606608734597451663378585204677635973441298950190827482049782902028355475760180587939857653371957605552671465865204165675066634419595846338493267790940959624079616044867321064142148042041349406363803860066872891402530914572645990658276031890547204258986337025068701320856148037519294616819275391182357735728215142990089559078090095939468281940804501383256838223683013864967568921807298396114507849639985412002763264187374100337016803175878070722867744051405067941884838315312241737573939407070351077065048588202769312802091796345653416921874421897195056293019028079381307086260159789885810075090448367899933172401982355659165951769909158375502496338189479014088938304186251953378609149335317675451224931618229518488022543806458451024457743165846147426268667983697954211983453208393370002410627027303643247724709445891403138724083772693085363795856956455587580110706916987849976691497469168679640350625748010707941263515876824326027843374573694164830173990637853100261450587731378132316906711890415175484625249022901139636731338800344221707561081778035918093011277642536588371506426109249898832897942900062385656706680429486539993095866902131705417461623416691683001763914725688405916635884144538863648056197806994215001362354968025094460086992500458854958771487642022124201535627341264206133255577319343427821290877126176960618162089446105517142120750465785635809645445789692442891875184310570448221940355747218199608078497917828851058848162541525760100638976158011137481071693479119726677668383348760250540347397057180308254110734703821134682035801800814866553193398808162128914087879244943400995653898537690499038549507490416889585367370546697325267836964648862058903563491168694340523429569552770276315542472130132745922471580216117528913260264352933170188457364700447876769422492416623442261209512907304676659063275193799089022718843401373869532757736858196608640450362101743348420294886414238988344337043731115795437136883631347763733325458948425686884391617473368067978292109240861498579315380619704880077059179413860920388904148010389021002210359614960816101218477411421961488945637766608650861185416827059445157441597115946131407338557600029777365485506274460877790629606032180488963453794599049583649162158018776300908863255176275380916651647751271015409983130898024531400659327352198427639426426029501091861434225337875242806694229220213809479001359835342248386979088675851073251209625865661567067701844169284073949433157790577551505487789645334478391155477526931293271569012598442300310759601869940132954528026491810547274508086042793824587426786899872749803208311386500355895213262900620817323439975727824596871338154479771102725340230019752655100542513911582600012394153728358590013017644461734489449214455786300838064634821033334625948294976995427811187557887221996903143106952169958355120119989243703075930651550762851485649833729659048003530263603225984693504782379961696423124579096126197801491479276249688494911861925532924950873471392626158846113371592319167372801738776384199266227948910464291559354986493084695576091621682295610903544540851471687806028422602509013009104208804961152548054092737525226641751521304616063000441556221299053275855053707117485378932428593270902274776531674916229126674718043134112952743857141683197215593936492208391170423752546899040672783041302230044267814622427548441210911016378198140525831575611464058845552870112196417163830833525895234807960964242475765159573454673382015608263232246993048815873751624801964869293638875627654067392265611956975963936957483817448764036599173421422776661642060997861973153029565157645660569973527624806314238403416151337967417152211379387620797310126976397642297908067730439582167688114858281767922881708858437562582683134744322596054047515060506631822138840749107265287291658288535679283923835501822174015459218002167970439743244742617330153651406634507554387812789445143113094856250317236662693047271529932787170224231976278594430606081195466446793592934189733869396716000615560263620469323968993604327032817147264611835675292151008822982674820977760177850608186229633713745005405652923313766113133564179220357222987788723909154186766306543401217872382975206505820719234196446023338853724289064382128458050067198073680493053053010265583677289693948845994909347123229208444995459772120865123390471682758917996003723977955063567197954555416775927968021173445130953930130466016437908819605823281360038530870954158833422519472668864898458638966378111517797880771596888048921607385597910928485796697579484449776324539557469446806241065642883966868708841296801085200919890966781271022792102072451404441684583126644928343098828798157375770225152553263869845868523389416229476847907512176520254373537438491084164006944731927873121196538606468025189480151972976276350763504784811507067676016792406212334186333671437706535276886646879427705421177673951754976905387060343635124047217374976276995321860688925433555949208068201674817023185555896097326857257543268521845084833465826889102124498238617338753097706685778507121685471794633306266662065081874583336913701358122421926966869124597264921301239643241515248838426454113236331652913221421807512009079554652530714795961745360194526010266078881658393129073343994674069265065411282413073770294571835383369410378510693674950053255525552420668061466865805620330113317569151463934821516271728812599001628424227336519175956264215862045846279098647082405806086011084819134903955713039385271090731732730112272268902365895435573598555900734916549980847815281024151012177111583375155767497612842863721112982303683068389533181251076915429584174270941355679309941419757585602965416696710826931212978392907153716909165063284346952459843522331781482256376111136117927110740776186705501039494892980176047818409799952219254294476942389500210802287697140922257487710857059796976561226141039152219595801670758004629801820295026021229945289198549962002410009926452414912558157825243382469545228684063114915265439131400598774972821316028265192635416405849984661540331118398472461067258347668581462817978056708646407431098967187474605967446138244478679529208257222283002739792942409986028232766896293892481797632534930492368062219916501783768400046651436733041267313792477836413744469678961684613122898355022088106585098999871390496756571846375943405703988839348483090997478832194198576427992789439993401584378632516515650017727490562771233126068331679794602321757513091609509620799958455462432309213602171283036010955169940133937107559720649052231092097589488445634947825541619693003015546166381466227983951121845086046558175907662372702281701630215916136425791172062873029165124272784471437561155280544913371652800831809742402130624051434772703131726774506612727821154417228619079978544075828001000408211459468670854238341556283548461837293534263220071769739348288567713319606881249287957787369807845770793536665449430534147996058673484427978391318524409083837475685741196580813998680928280106307088002766872069936083547999986589962067852688588046074223271870680516253652592987014428932983063297508897514544741438283402212491983132951312929193338309126665428550948480816323125511881936539452712602647314085279373755870579476082644174586568324965645933879286447808438811751402836351454455219925758171475166075190205355438937278134226586474614793197690199306282879780930920013231637447031866292879412756456645574321950674690160164713293053434325883802570865354894275218873496268898874172503951709897963733573033672536229071288765010429171083225850454193435929605544359231723462283982478025609216283967098330804123472555273101293291090089955601593361207192784465540103811008875644632734136123875561169225533286375566742346898793113240784786411995645796550116511728091780452980960860309911002566079970676635528475545248726750909401403291442217780547305254419543395298073808848898547789181715733729755928716767779508350400274055210495106808470990359701591020148107335207724546227915361217909894482368108645518033279362778633024586777923956302928534434739565596174769305052185565108401766152604367865915679056343373055703656198838277864482377635332100750809626515699491318875006059869718313309456043524677804669204598454480121223374062750862251598304810929679392220470366721346294302141115851774392471951182192720790989480344856415033251600998542956650532376542452096202616619429992745556355180593107744646667598914081233224283151650973499503083890189153468224071452041354199102126486189573984060264095970770742408976495618561961724681919558589629152667596115538489405252513702242623660683041361926894127888473040370259838234876421323863782380390211823710651203257071375378259113477458135630318233016920992691648429660081997628368820460734221679276887252076461513694407718844120993144842123727128825021297626776048022246238766899605026503067496171526218044524762678188898576872815034993887216874638153948562400688072637899826940788626634633926702989295602295459045008862637917127745365444608714736213569531826570934229977199489131044295916191366717655420527278259453957387835529712144852487504010578463850128094290962282095614368486111872072111781073709177877658562802266674953459792807388159078862862378281745848527622674609213900421933537755102951373186800167359797036118891396896539301721509854344809904311529256329708332594313434477833461715394799137138081647201796572303963765188469075859578380541291790668012718118202297023279577887152024360569576140702415652748074929263047529605799529915378183648870947894883312146242378518414421156106876638409153670947973968104862900912508181347998608644698130943452095565234561992088080728548027189572666335290097639475494556671528597232544548573673100962314136067960806365738477746391214291954337599136223095104148738145536239062724313118792996691721666475603351421419584474912475975752977099376494668971604456597836791254563396235320292243197377754670790001578380735059783493345973942256818603905354145310034625445143369075805786303111331917959433446556512936916929048059332282948288787038030499716270655786673854504951331853619135653819597240506677612901733998409797756494159188310161794494019891116763721640218750988171994510079464305719848898399346943855022482202290463329642976498784111710903847374580128654945334101285787247006492104316885099251298626016855715286533498690204945235289786319189120555757569649453044332469809279112766789101716928680462954781629186497389299278010791761191151743920160961647020171443140083733862824085579644031805763006015701751047450419853916097961702837593648731123653651831550427857925961831561931649208605570703826437849917037733664762827886651198699787827761496284740861656538285257281092912422857523043326413946499299605661711251456392058228809276783510969751176196794336724793845381923778973906907986374458353685346161233064152364277661747420294314391732052220871164563666125850883021698410819329618426020171890923836704272059593326650984239131681461646735342304685861893910141526729865753650484143289836213151182123914916820908151625858252489832509321967149056720593447424719708100014292126372183462718513926509889274857519028097413664915490443335859943316402426698838071364836488115537473862088331928350564290122656902161785446862240446737036619378118129316943059320172966829143845077050955359445207888839974835547300775062188263293367011758200800357369652153489039997437413786285423700508579989088584653599081515420528256775281809815499253385117491227888358299039411340915743001249645236294012078839333761697635332439311870704484538808286333407838757014037422195656029276164227232906903612214156264905005936862059255260762884557283105424488570207972196053825130019880051601605040393382134697865982435613288152593475765822213920736131700887932201400181040288763508578547973350169207683075779087784805725383346032928135940599278172493569229945988504453580197770506894832011775350783437859732961149279740750810642008666537871443814381245272023570535485085292089911112465021034998056388334758846338467312466684347716685882927674974368668177627820230263367132615148629906174186886886069087644280437604697866123230032197685187376047268784272385124877254115031751549467621127899978711510467501184119235347845283965768381099067912123647317304972453309195305939956006468071374841909483767643379541985712698154909397180978730304972568527250204134576572856509538502029864549356399607948975066677712372190762766510724523278698570523619162425643038536612859688539217259486052130654677386643887412190943994594907270725151856025163196102174327308166174567639534593900983186113609688142459151574703437903006788781638416949745624209283266370902439589133879359418659671993700729726791315341747492857922805630292332136593892935256608403130975106591849144164049296411142319988223485052829495680386612974330556151115527785373524947374514168410682008952651931923588510786733759100633922624768698279066999002111850455557664551879716501321199477199388414908429092393446337590282321266215507800299021639514693170421021913054838155140638513018081616537620618583250985080792071375046254757230706640619413214756458151920475541131823161292207566522826756201954138443576672530621283760730480999398515508507976156623980620687571197547223439522481883666096358846691410134225054620417817290988242182187424815274518346956031121751729739643309372510572779957305880378535732084803209716206748902153264532145484835071710755257126500824305341651317521054882234932370902325630824294797177557160114677434378393307976312617241860459112434969302918281104608568669949804710363985917448612687458119163004733097502789501321276978292721124668430555085360556278131712460170139775535955236772121075361801175721900904149130250412523173063443221273689031123688876121027701367639534930052504163881239399601922643898852382170279776519442653846209866504336181427259320015961582239330589231757169727505327889887053147230049807826515506172433159783358041382700286954138196913431520134178303662756208221872512418526915306871202950822774422441079146658815202792571224656161096132367366780833960850108865682267535472030665386488181648283994779402739599570809109571842171374555336414883602384331189964983543744655320543945329466706528158375249687260804124595683291050212841124017774650384740986952939933456357863456211160916657497496316706128066217961972669102475374289707124823079266029183250261657254338900274324858796074980539051897809716117972315339005451370066364497723283319252251325359352915059619565639843854687185643974207327111764706425575855019667630841227416811327992725356367184913128942982775004578728657856005946989351527732757198747789587608626137461801814522479028162976447079708042101257348166814866260959992281959158449944077646098063976675158246131736858861192798195312628840752430770648574972323011724097464466067974172479088642620211920981296777191888286875635308411535191378864230111127609733036080149404465583765665635204526293354168904081226812026462355638719132029885895865887435093810543124836024452481247298237671273198506179251144840027169169841662975394531732168813125258801737287199422439794196171142689342196666959356690407497807549858067412399910371841893603868547751101304343633880190996607777434812106115038341339641973265042786819333983039731324523867979160718477452042363420784635555984461768961242724678505546386237490166317255709061539458104222033546938271217789552507926556090284444168234201029027319885851156715682783753797801576530024974308279128765714150092860779392039538412084361458251493464718446004896016689966457233581983116138301746834630348196446977111616236799726840507097344695976361147131616384474581824047821540810917267882440850953622302588336175786230935532672127893476342297693423218208916622672962034891600569754867964090716513433230080403046461400815659463767124987075146478826940321288931697257318246707615295691517431966052091546063121925965251045851206206182347372948741184499200649505259819004173924682798188846258700150117357628819771833483276684804358015554569949664895848956512838034066776118150597157788704372863453220352278020872611849986852281403263264893638547994188841517729851663288302622215957538808654187181891811962102848016636706789334647591829482176922898283153237544640017051124384923530040430380703049604696919082293679983898221649222997151769046125326257229067505282502850913042771415579917773595965234009524588446697147397318690784995899090775774606095411304278449467837568658947577222871867363807857608504409948373267308283976349284193320259631452928177237557658209197602910543968079773478115121858612188052993419122821942777218812143662045540001083390260719189392131922070625676859307185207046717555800468753257038691213179484082365356364729807565775205249133144533543775720397838441700740864695140162594792856841511233392719081888809527489960061708428987347379532645685981036847758320488112380278766898768747946417872290488205311166451997972890608363058449062826775494234320135785444601043778484047417314876936911646875547213889554684577385366618691539227479279946649437202959244442287411067568938389427676015516027883030870392642348854453378855552418676917330996988572469110642387802864493001519861294538805974194210285263642265135758458474206961504843141637805941473791928244198688493909988617349613497199830688187667563883199538417883878151003717341608767525163635752402385694349638122830391005565005666475788012151047243126404792000213317535308931890104799365575719304801128214035503084407981765815083192332227791521117748879564261011410105500864970681775255513538379699678196924048623231861031608756064222037677446485875523825587100332769791264997304034652531347707854433669064365871733123768053049103494962062196371058638506828398261237158393633855707890180627152161383750924302459387038499371413792511978124032041895281786871506347526626979680404068502459097292070527337309433657869874297117358741850878088133397179958724809418184674529566822726651648140817055163939325789850021630831839036697566281572177098001677108027203923529014249837003884024552088190827337441333006867586938745443511501959630220679502177722496605092223893953080804710773362485793524283303863140668743243779321205848140384894615686262340317800786206836834928342910564665262070241422655578961978731992568462775311894657241242855545115169309112929562483576502620065695793664725758824305758061440960083557496466192824113901219723560246440247489142457283705476078209927725318162399082273149726327254260077022233808051147896060295777989394062820884538307684054011234350800861029590512166364095155898354471757156728671320281629726375742959921471989864612678563757987564802440034469826773954378705935454495674188034276070656337878868284383135565159003155445415013216933591133169649786042984163218796584555230028759656465794753553660711688003633177875364480444260805493628061372949889321238419499657500151046295554544619530487995478474764810951622026856925930210676215581438380345523252243649588522264124501223599353181020947149411982450792020534403218078647655112526967144000168763831122280478575081053524625677639311548207204484309831906990513604410523300905993033999533512295530722325242618000881426967314586161953190768047290376438277636898792420809230247083869771336950226944871169711336935358753493288369083897463726396841310400137893750706722600896003988877208469548180445445243878309866043043924973654663696579355126376983292753593440144911265533219781835059549923638226068451260035067160726104829821728134447178054203047650445415293032018438538781149486748657203459354253400398279257887424360796814370053439824248926494271087656247846496900361602441408644196576834017968585543065075797021099332562300803877582765884205341258305665451548966305773102677702732415687967020240284050743843230498214679553749294793573383717832002288304188718529264050609658797025273873644829604513860658191842719713544480932817179845645729758922014650762157400298421792457708716630162398444897286066442012090398890479791708640454249038793335623177797904948181836563518907262254588388907105269625602819620507511579294613606164246257700692036858655480065220989963765563855686489111487613034732177591725277349773329591366045016417264323623930875852160404030218822572527457128340084753092248285889785101705912952075817405658793460611912854399217205154082661176858145060518473822006017337508535507846028260531251413497216496770686184242422675133868512756571785460368554601968449905165688351282220470181741069539906858212126367332819107233764024569593450594723384312197703696224031818985247668518533879084282347019375598291174110536891195618808123256168999920348696179879597316045528934224111922023067434639325559114471224386671360018148993766897175860643003522806410702785334549806845792494958668060095812871959652839123361996720223980715603007456973201138499413157656199920281084334867152742402036404935272832386910120899536564215676732645266171839392265725983775190106858050226848644781221661729665293033923722986549893903431445766757831691137344337640973153815566735096195582932171822832739701570630779923262668396671398033280322876073617111312673796729492182141886778491053417832391470709635668160167209823859269208334097818818176398643890861945913483265292007740839358293914428584262800735498241988299335343089013263544439935568815210135451156874649054370510451364557421526158067645060181440097982091167569384411972213907543313669009166795316135796967763734557232463036484298976014536363049499785060342991895188486449119584567535984122712057577879103961340491961038562176253170699820139383137665952590714503492837268119935688896196721826300782643219427060279395622303368836958627769768294462664242163230421749211797635868830824177969008450648513862719465556703528784238158133511579687102314887357110494223890360958462281342485035722985064527543570939591606024850322544278490394161047130128466068112510696630588352152113504666110679930012937019887576956613476114085708954094902876986813474179230514474124457994747244366070729958029881101876310643618482906933483432011790215000220323371291929516335867283176194597552877780454054492289566550313753121271404467678451788651024033922721337324861679008792140979813866977647737162319230220759886454632719563765283447937911993085829709493719011138408261364357550644525576799303215466436494515260518615079702257931541804247560601707093888732756330677330156860102570870360697296224407473626550302753089187543519169720722132932307270814302520409408403266409310381789923737063582537889563923117803653109742448282601559312826872773319262456271990727210809890633810022419534081382514110829697288365819418946939785747249198096608398936869832355806822844139886240356980014537305968257601601981064414149032401803087089316458682937354747330102651101596578088798056515670161149852863798229764828916022279184081905448710568275387195726079355483017341532879194169771419054481034285902541860465254832450673540982958263372166681376453806319060679113333381625483606946353912730110615246223687162615600073621795731529859334344255086911332942777297013223194780819310902723823371728934571319756651252829304889556425962259182173758923663490245852159008053130524946212980851397793700803231636559422026066860947756268583913035785662440379656018334301000672225469720634836367891681220410208635798731072833449020972979282887864566207990936556898314757175688951228953788293069565774275581935747467118316029271818525017745724080720827342547765161509409035039598496955445004926740611943955211036557215399103797390856398133545417918377115978781990319715208986478305534089737777469158321874430600321150640930345890074602151909355627568307732870097408153070135951774990880143608787454061851175706994743423810180266619033486223870006009357871281702151766001877347171579508011563319856091408458773384138758057124474661665691298830422392216348167310416905526702641977440896023282394347133111404619930636081657059718713979809611400451435480238483179210146492695847406303350877017307276556831035548123559107741692143598055110184257515751721026008309416062664322959478776963751263659558126410390003347968986861116235631806329199504070885456148519366457229157548189400244996245697515384200347169454796898667985907072437515219291189477075327895356546312171650919577060130063621775166039688163605636751740107737223281434759173617132858539205340577551633656428511298860461161855760030205569254331803208497609287211902939354176246692819091484707707238079721477290990109610859790453830264310281077236429388117830238598712101636201133775757794250331634644050832065206716225088395547341283747709774832705730865018125472259892700794819065490296057124118072179055745223464896678841537454062976443853461987722671574172434198105338651580682890785205556270975561973802087683790311901095818257144685767011219102913643605864952595858191568327498714627477031531646472403625332477816031947395322842648817416873883078923122839188148237989201425343403480014715232051200486431002586761610834082587431156442017778560156166514096972238095845716279683933111127186278037912295270035379443889357290780044712293556198880033302291556262437669776083349554703629288492909778798263766563606918757342294220437959353941530937031290494630837063648503361533316676895152078854860887068739678494694449803988222226534872939103115965937270811388490638089073445052214013533116736361643780158299116992281214962937354504653575888226719588234701534197030014821770689082418868464497440303098405703401681931674021446481238651393508913759422523498424597590860093918954344143891057685454790298797566489421793263566636482252360533671657102028481627755075474002213397392720810814913357981691438431107737737777354795469630340093248037163125278005097079472791885615217722764052843323455349223160984780348020250848639940302643221706814326584513125019994589207967866230841657526122924724911524218117610437553596883517818632742548644529180583270445140915657312284837003076482657272740704098079898505852724125553215737668234274324425339367384288566993117393361210434913919766613152289715371943095652922675991283043192645131348247306146026280408047939467796336957643257491573873895152702675970473752268150929932115118107120542581801808686767596018092394782402748833232400419465076221308548116499041838248314954913599054556093081376279662852928200778101344336637901073139015475857925865937066104632346554186206167165648418915550676771606632469645655943096895851490948777491947513540444365208178887400320885281478099182512514320284339973328662966613694882489907468421398432619190052693604366188857110059169949342259990326331607190938984809391780860035451641561563873103332491250539898285692828402151362663007490789795189815959362875160606461758342606846067380996768211019578970224370131939055544610328726111061546724590694012032095001830568529140563985604846257603726069440119108485803776588686257023228630183083369924474127093467157047818682362061534821502303880751738338243348984576466846056876469055556589376209419176225702724698859581022092852155513107501367203820052269283106579921669476760730677968369476552409787814519476781320443250732934668061204159964399697910506576398599419190070631276067615090772555016053125528996044854021925540437934490528623466567747131053727578029123728048043801502160111607588463989446047444353931749407876042937320953732919856916417404363409949014197207950281002236959611151600509886520601721886581668074749368155295209631736650474716855308383791481624616126620052704867432008305485142152569137916663649458396403596870108569972296794714787124487221071074377598264268538603247980439146477515993668968858321962718376290534653326895779384916736823988869700914405724956057433542488259027894220084516036888336699622240528995309647632282085256438425913476262724322708420526424758717884120152757778244401192050137757680582597287960219495941837881951306612650845602834800023275241892210067253468514172793714470959806339512958583411317395453751036928642850540233729272054353218036252517188333114715855575898672062377019750311964745536385871334242852537332728577545121335443161753062300521521309975907266733503438014758304101129858097592967414143088171834504371375804768312330264708647457531120698953110168236241613754536581148963865746415347973852977799170951313247010224196813967928712380644573678595166529316267358140898185721694423978543667014334021421942153514266091182025248818843794117939234140808839632279446277809854995058857211178897596600411840954765394711214450290433776625461838921419502762499600533197010823909530901744505752296070178904018309456849662443123318756426576018567303897470322753546769211608762316660580474960687801674266915697449551885347621746544371624298265202250783356382250740260174611305874406779328492577966222979262552341741135327600650678014121927234371789847889928967412798735464885367954331994592894532484679492277407921116922128412817021884512197961167907678718713924164621456521636810147910239850499921769939998235568675507172142622510071151311420234342228436033587194632771244268836496554801938796679514701050876259462793671590364726522166783748044200592840796757469348740750144347546686100264111052098147676602174624734953647077963077528076513635719835330488014584199527083686695302396159581475483904349279860293010189447720254003602609139930899078136380119845657012631651256571166875944791122752212513831460171412685452563448989243973818454249228946922491734301864104044403526713472510655314169782740909480979996780267376340002924323602057421411677761685811694946188769115734513639206912684160967545359642049832722966180163260168105707296684070632068263892337321004860764372291620302291045770479031553268687355980135527403991748766708413602744664326968627021183292560878742490896824142636484289006328819922007606038931967495544925905108631105963097307357063949757064120863214997075248211907604220680924335037761585127141482607227128920212009833770786917573774492950873177112245459326571300969886081018140232780628002673685487757170922862106454055699081202934876881063979801119578827625740275147340537386328834535264801272199735610399737985368819689680925482236645036084148152942059121685341445393770778061391225854054041039958940784651546518688325193572729632097965210969567464356750354712817077660385895846850330901868762828446125384890307198041275340051576342927979667836351754205706456755504470342655355726588026395854638322249856337804862493887667074705924048253932478666386537534526402932767882639394699456709418833529101678414223766761271412890030261741938530508421742182250078512903838140090378167379011554986884625463013494370519088449441084326100141036827272947890275525758002099419855404918283431806928850109714145893389215183345968296744676014103864645983746323052800021748202725012303496091308432696181885230158391298713795425978716480883711381271453642598290020085821976972882732304812452891653034117166033151404582063482142928063675784452232344639551044313718686521988965034754334369075297583057869403636439391807031587243435590354367913999316861915101953147101556988892100830340664314102756786000289774903979520197468024735009013421938190070043036229470550536549867898929408605283242224485347739675781656661835060775045431026295685017780108104528266618583515153444012742484392181530545708521795787974317497715532972915404977801075391611287116055030922363185874126108523783417151856901364940209115868416137903741656025381119171799572915572330010227196611260430012328675109478871223948882255261657553432149744249360733601521291482451329664604312940037780351639775647222006346546666263799147990376058203825320833878399764009255250794241340018156277018052227705737461170130358026771103875538965569008331877732594965058042502781784513423054000616848521381559473090637076139509049731995167573484568766074262435447183192362591378202266596966952805041739101947890119903245563993868861656035377345366817999441033823437240548974274958996983096416628926170753517425924525049936456700356048084354889182546672277776059566722621048369576089211706859280947485574507184676584236412765232335530746300022191134808105026954255930991684063202103778994875917079684577346340627641933826503121896051034097364701487224243605552671921957372411468426525685951654028812960077268337756892097157153843493294962234969995120033802970158952319218501430764823332634508264539973184127171160752097588294457777208483838097472971971495730711603622667748921837148419045103852705184737940185335751006412970456204845426841182012666256388705211892202366713244336985519628470871446652023552797102059907189242449340004855490451848265293618385687039646119650220346829852785365054065462346775383945488458893793551436072224718509341187415675051744744903783239728432040719202870861899858628247727801590095200008603612957027300952800368796460437165531480332161656303324680405350805122045798234521531268088000088172868492081981732534430347983574586904384024253231607790448332638547630639839441314271285076242000482035919559722261526704994331473207903555901350448905721216379008656336468376586683791238325278025820934938527680909023149418594141691674405280602573650987835063235144053204576023610898151447845154455896330772863220280845653314500636730323013873562401370341357840977345123443602857250411383506494761474474605742113776730847145363547898152721349112044484831336470565493993955493765133635064217583464970385157834942586382672157252977571053652488264215630098864031342297762965033686740822283602143051002457660520906860799286597275523444221495851325972564530880329708497917791908032142221718160241726492947420908234515453482637275222829214584968006645787255088266069994501286659970070353921499670142885441893844074800716487036844872524211931577916221569513861949118901600074961983944300913073253059908759039882016929917439676148655802273440444008813372000385015226380795940025159772221802686269429768772086967454100576469376799434940033281438105043868406822573721637009216283135244535273401040126955593330416963310059884912802080482888263535613816160078545218327882452191634568773230411609986943552033341450337011254288587908922972617999277610100776299913414225934655195915701707373621800380851629203452358187254470216980677125051270252452100187497260843197453194183724415930668891940778858266733742292875491974809591946526044317711650839151982987243455475129117866049865155679690804173159224857850998817265993227821234713545423169485069390036775255505338716994305852909990868042584167050144628708052197936955284945945834441559744707369445335417109142061296759251062449632937034064749651019325290302283044303877851211521704514397321356873118642524412819119004848098353085180570740703009557483825685143558133423658228596933537316328256279037963427716892228586254295311263529780610464085341318527760576552292855770571143333523246052275168765524377308210934769792625900600326465959089968567747619181434133332991645088985225797308489361408271258538791069006658137325887143861745652460198064377583388837941276785924790132097829742739094313199690847323703679264382598235325302172658968262036886412309086002656114093372190442076585066230306452208173390004290629973505454747065903328364128349389897026429888058709154839680631584882587549567099912419666095782190831570011718682177511070227879615415517484371435154663579414182252352453921864107381000975897061369899422855770720929691388445121228302910002866124369784080655530036262444069057589333077307266853427409140764445975711045438584228724755711360187323205140729914024203482694119825016163424918948731116010812306384995595145898145504148610349582324009520946908035530024533769364178664341662393085095057213846328121965613286873979895044944027896987582709537434612246596805198028635980802826530032837236398278837397061322376249594978163263090841694891583012001113250080966280877362193141865691615935118056087814465039332682338779962257268389076858311850753336793593590951379909726453463796785015188774963012738156257611991065725343508996243049069228323192332007723133846786223258662988748166854485079065963391722874615032057001961418197874905818181075433833033294374519885364382082612137962635770838785809574237908317135263333912680623351573120669735304609428343627370830197342646500701566430325846595026919114858499013397174171681086792191251362838540011503454617498257147392192288703732012705449526556260383302857259242944713419086645893618425027178883382257612916208898302861044852397100019150614106152066173633396600757939797374562416818948191447938318629141929679660764857086294215479393889242137597747757354743949984349632145236468099307159815531229495331365846535748936908922663877031232150928265327918847053287373786014258181719351253950602583811205899215771008705847280741754375126585743401747324611073661505831385427055598308724000273568073921739609873501742253035005087311140332030077966396826861073045886781250980713926961292061733628362566768923398460912243876723724735477323095379148161936096292886241404506230437246320470122288605029831439606520711956521593018415091665807282526707290100903436183383220047610795875620605698840678504011698435170587454508705550149071511971667281395496172965915033634742712405534436419467003429145861193397009576238618344902065931750894716034144762745493791535385359461832895147225312812733875921346241665356925849439436999537731988677751437287259509970492812338568522352706901005037965446807889202229255199961493579480650237728095015168611084396075961567150763440037196157069380892726030453834785620733393025721336694133444868017497350543918809981916646128188565047737663059111580010623290365230031510615444275904641215735041668430920124793088904479597522897009131797256108093291587459344959009393939126960480927325674658136517044933986250998770360005483335795451919818713303624513636242035961663690230312581972866142093362440283538645992777880203081191763924632565425159004111329620171059431396325375656883020128134288781136943790793907088853936085562427271635969129504183684704411647010378008860860334462670071251162895840243081866145696443588799917179535889554625457865741614657418703719421916628222169612250508961678526740029414041194998996141695471707882742433675647144145074891130978662056507298131485549934631573242058470433830794040130020948376774926165207908903351015198762446545437502116605861923343052274716085767107662328529797725552135538812977279081540467033188168327449842153053251494976330165285572187030443573823603057397504372307587989135355451316334034230444929822101864266171973461468052574643544900901698113584915071923879175208630414371951198768015632340737085201845613573526784927907120306375515312692306202983828594087123096149060581157745226082146556974269746636003251764873501157567375958798148120309688598904253323315637190908767490349788233120519812831946721984624303439267721500377318214665738538330724866270088405039263642174793354915934068435454036587828250545518368922333151711535614514484367756484888753523911846363946169796994718934613252810537082469612698405341245824332953865690351286693750203116281019441154511627519724218043191777093524960791849619247453367950941553611950589742403005946870983088572085057673586693656016394190031859318977419278104861942098858523632296353710771503405095808443895522673146728983980201454752568507856308072686693150381747805859595572208015555863810122763680936268559864884387678215531150099785204717328656899231617993572911310105650477973893109842834413868960254722399436463488258276640266893360921018564967229616739425100383762926275830528980478279732212658284688577210122722071989305479202893143536498345875061350097005152396502698036037011173856360882014489095990654699569147921686444542228393053469939334612172803294961319036063155521501929856205539341516041324992705370733776167826534266731651161564718775122898974688315292224615734728890918680156983130925042896848001262438659970798726156760425561689859986587049584636408114665003771934956549342127255289084705828856543184509533181444683850810771832753473973556215508974967176999562496066145925643807256497746251647664888761281547719599259842688235606609066742899547332517228003848078467409874834928348687301535964876777587128631414819197269309068986003090593968572923019022121748675998293239373729453849589195919044087950356285461730919553780424579974124270572529964644012549244505568561858905288396406341409983030983137147444738472971857718692590259948690005129842462561478204110168035560259536337339504338796133762332630885078274728472230246868815873529102093439927971706720159756339620984416979927041744252825043221598720566645650017540783706490807124390864707182133867600190705227947233831265310406250017449082961636205941455321776583428482322007306531177337371705854213523399802544260302615952445000379958878065684785634803389229423764759220147412750425489652708659955563397528664136672730885085447537463586458495391844885740977261106486524860967443534450389148502180771283255520894931000757938310772761437809888342295863990949043644422120211059001806745958433378879543217694606904258630199370670092582641162852741636803987968929240307158114271294195890638695514902324893956906675889308593958537464097679699015624651033020316813271490715361361122948789304015848184677592689048170371565214382716745815575797599227356817116799849090912645188937676961503707323255142182368739022054474848821323388291351467926847231026163033961522645428618694610913738076119955673272661327598785929642877930515221817313078066374103909206850320889971870313721601309541901460376281060712696675605096749332120030909912970804137967573962752156665924447417436088694015862247741774652308439961702429943012107538663576805298564179712370434768891690394461442715040962705671538864984282381328592603830776446211504533691224600187131372536585608236526318354580243601799903934120008397682862024785586641745475517234550510938246587925372277748719246298655140053849776353401889552541720685066767196633060674056156110402486324305858738665983170992193660712440928290694056032711944855452215195891175184238817690932161834308687905481815863806485127276667407636209002453534068577880366802298428955796549970599265863759721620904263993556052471284793023448997720184749586319250466134698812487595159873444759247445927129260323483591850770299073089088316384945669670287252717722988835982329510363271442201496858216046281558322770543550594122946431447882135990010247792270100873610040204073667670802309854761029030945223368838747783209125447544202783659862086268675473900893807338188770372930725967244223204933654272034862671095661146633740520631597490323171188213299913966341585471778014848093502251979488111040857176063838759565797066078867291098971099741374933086002796933751540356083035624824274335499578193145739350235111644209823115502848962825560082634544565228113330729705382954615955304070073783459984492091972658817382054870955556315137210617896144264533087373134342856797182293997786291569770861283770178072186907183259194446960867411875960777390005944940912147355512388676339568520390596462549369771509574048169084465122322701473128303733332508696255934398521100049414031828521333908241957313819588352804940115620686171672135943540756781258963377316823969609300289546225916955784837872951622385722647523590108795679894226239361914609623065506201661237447312185960649283528213995540262355696596375874521352032181818140114291596845488981221592795466746643154675578045373400782941673714541118359002835032678815902308713380849131127654560518194614057020535422589647983048239206951051332325988705394462824069649461455921506927978795856461663809539912034686707270968822888165378382310556111386511118012089685257832785547858957324235703055964324369271450797604145461768659930451018205217564386740751872774786375283930143111866181545472577538039769882251239015877865692525774413071141753135971437901682111462343014254871181449435250305891433136921429614159137211864265496167259757104997561045820689394640060980908533561786538173477230588202371839722449404217424698209453201176377278548163311530692900807965712849403933432262619459112599809841533045657637812570675504041476653845651376099129661225263476044944762227353790387011335309797409354534229943509254031368050369422306094506384489882888746403833456686239255223024340475368949625433925767975079060883162718282844886776932720737567464036405480063328046852770093636906840856802053839062263189603689238632441027088968019812309862447876762290337745087008482364814961984147193074533487226129320764374819150881662956272408187882987687506787771514922235308154434179796040923463123548292007297870238321212280400027581753360156541991761049289475967473441205650534793584580213814259095433672441350257673114501841612429443403639024171282678268341936753051441112315005023151927347318329103616662853434036474383934747303830152845796677387647958670467895789108099709458304582751862169535742583469474460512670611025039926503374780622886317500830852131222259552225992580183687861463242927851479252900551562449875381848683637929781464807490615908788423817052407775040854618429266665068057514855933465756611749348283116923509810766545298859343893496730186706587074948495475333991914239328586477923756490296474280398691451159377364939899846771131074948139536641937575559672893686524030208323495370217573589265301460389547957677204956316803513289633243578770964164420378601339751979443056615395169397703440406978075079836666777379748918427362429663842379720072645072476296864241816560988890800717857327247408801717549718434657631078013064974146932560217213956871950556573808037011914202159522768982111501221703666635131735475603108877815239310074145308211048342700811955922497797747235619713782910292852202208290069557243309495856343240926292255898470468095103224496521504721466720229118668562455689252385604785713651373143118392777990407481264970018512637703293544678098982963746277523191598194386038677757780425407898323826284547728441162805020352431225143825417027607240346050747798655173080332941671883460515845224826886547933141998468641987587121850145621614052137534483811627944832877707445695419012759833674148169019328505811155355303292984164073534178284413599446867451718235219858026830839732933492235965376903412403909295784644342101714982302677046892762886244283966800700831722539939893605881575525091566888737189381756958658231733463154869337540471065233942981505488352765162900048259807258595986024129299134997119437436115945502147632531461185898991526662998829410369898223795132010486260659594504548001212244341639474027842313849357865104065284996270069875716377345927738302020016643575726275907444676119944262295272385906702173395623908067421917080637386802604054497915273607804070096280853497063955030446159554171634682613691805372881923566509133722724805330294080576165607006454255428758706195780285423437088985425314828220212702947126278238735210899436994212664619002969609944231112216136711562536381397994043702600262728471074049484409760016577061680183348431868770612302012386567381025646268644951985831940855504223260473787358135576260886175946668348045741291748996083761771572872503991053451233182641341091545231699944092696343536760982711660828344174397954776003413853158560758255888744247576459205834600409572211222350986115008272734480159648025568636314357379948413606240951739943253344333829287011295585509860162345506649431989903952533169514549085251145866283564254254945408516179247163974480225778715940492312472272985723170283248238538535384479540379159252027387420595357720382722503555944037030295851988322317322830641507468593847045117316110319475401143949907215126497790513411899424431145645848475502792389502996683517797412740588760134638859136333189011255697941691975271977060357844098205224512417664831959041374791509921034735022858300928758597999507718281102004857334882999999817348291781612737675479317333702966619163731598008642965544426253360199806183192222647522241506669428027671381725867534737257881735597625236408640856540761682642775708519358788916806554885911517546285621513714111777717542237038807267172017961014941824582385630239759852257583925759919617869845083990732830548056781753237315242888789792532262106745171595439090644472963574300174598914473128819216462485348750373973413062596515172508413344814517353956988901598231581391399412413743864563803263297744914044534513385564339555756127464684365854001865091652921890852581743242568610864247118373408924344272674298995343235379941983250392347231797762816346547491717845800418009979046801846387683521080694713880339212006657231201065378382858822310956878416629605326222916828401538969700668305640538618376945934701850320401205825715282659723693942559605574266774215492290431701592894574120443082297147731231045796038636675535669150445929069616059223772934493191975097346650245885750498425013361915359975235083252819748531956134223260483650511262890109971804235988387741887674296774415896910938789190519762802752443263550177247715461228454463890402078061801737356699727649121930173633390415272285576913462159551701665527797110946403839833870191734469744526947882903974343946350996386489323381964252165715372558053004567800149124633426462147641922467093173834596719368173363714483253632643441511854167716061977671218639385854416228558122586907078724369899124568824762612731367845456774736332282029803801951184410977889690046438009433528682459839178414278129958467429460844524708022192718477133553937877916031404498276817950740106242262720325157244258497268578750799096429728067546733571473645263951667474818595440931535154872849796533300426001637314294760417084420730261912656260054994207973762244295935989610722281396685178282761564860043211763593677298427378528205815904460147807546807501937141270360835129532397035586816867444643242799164915043899346810517644574701278361325264757729213351313841964140985626592466138525349846560689319710108943607284957451387716989557755319782338843761040435930216618074744285502679367008934943719249822967655858758787243631035268723967642309687289535487382475525934971197264951599195737192343066787840007737001584977283247359409400540471837901875143705069649652266431014774784719985705000873743754954974501043639848803273485032286380432540884424668236699459424333736676269002096642493953269015041492634032541769128931137735503509440405067747292351212618397062728341762542042629238785846944766008244946601552263610311455756945182644320733089940503815794154986387399608391710796106747767576230572038596125416426303426717676221813875854762698082720216290120734307643078569356101597954551966087516912185076959179727103090483531797157449738130118706233067022753670681929226273870231463855278322417169247115289338011889645405040164629185355837434896058255692558410513854700866203264243681733514951825092450869364486619033665634344410237446935728451218325912924268009189933037652704041701727148127640590510640710078135454485787337094944473208295478179964261056287019071360481685381393917484056038087336917516554803236333081467996988282859887826631603288018149221398277826154749155900788005725883063277620489942863424106701977252480046852046796619623828492715000924545254370419212178917398539254193000715880023033783053210584084756923813226375634425660787237574803162796081340082466363964035516069217032166208595857465125683320737710567852767160410884555362948514347928027517178576460911067578740965539923118585129135703175872721611149297437556063532343852512422718173872727748613092830799127237097376278634353717062485390797300558264127862844588032245956554567127360962252851312662917564272484810952718303210740812956323798656846109660474892904702759371788241857403045869109230554538057771306769844511347015379923522472668920166348002782873884780993970121003405634655837627997199618349986321403758785483612801584204878998094086395249317728408321235179485744467520606747038400388886598473399129089836208191295843427114175455036821133167596959371131986107505084215408852374010132755051562315494599887827052931056452300077357111775593214477342016672922675566907415547985452231485676862154325719849306691012816169133339649735417125947207705874329662388111450828396991183123375236196510260195834661680977868952678959614629633623730150754430983332861191834512425494260608127170423542569642513113010453373856680296892681531967863620336743354237181123839501655507018782783236620471404692417675518928525518581830807021001280196997799143761461149698715682840903525903003523176885454974282135217310423156180908920656138553735132788845766436955739823966994815701346662121951142367211034394120410438525950508971013224081805323410517716212836368025872905389155595491749861668092943611895430106284729951486817838883572053512944136567883037802816364856020949409483527837938385349469021154053949113925721753875058793312292572707799754777682223511954437542145557145192690050871119546953346056132341076622741841634676678153469257980480087743067936980381891292993482419595900612577022244749016404138096941414938359755397210370244310560262715155119144030312801423268571709079947126334731150416209208375267956737872590696335863635768698974560904569646112549724058233705007224568328335364505316520320510483017494840057209876845964248174648818628198635191212504416167415093423050987843243281412387812084389505770061679656993194506663957345660646177822852773502872206689639843844003072459409804263960191497901535020251838629664097714862945516676391570224577017319063997728866874622757126039471907872149707237215310294227340145064852893621285437758709876515807305557485689575370248046796135323915384265750516377083111191489913367863911281399691192294790279152980063896446594464170082921569878257690916144611133060932887664741725617215003730965589900301820817258267884784835718091768991173752521729309310415522559997919137174819485188863967780793539864601820420847658135106563628501608109913818539928454623706164040366862092749621671690944507560215231442586336454640974771670867610993928679995626080694038677593452858631578296532972847698396573510122523910955501705489730309085413801776434635764491145087704372121527479682573705212995979418413125391817071575186091194718623887634822550819254881918888337459866459447259778881866557364863633354247621100633518412880068256549678250009815440374541600830682973642294876420796630261131432954315644481318981192626511962008473199924375596997054833599836812133835720009297340590827354957927732411565119742269894871654381101509541967046700109231319056090617035697664265740444607828303948213484653582985923843641219929406082172546320371179650059424512521411777162268471715149725562414777953406799637518048203139725197515294121300744601932389442832685573310164556820316120662663444587063107651876315690305841145057566899608156820872721405270904387182391457575034792037856391981981319834033399107767196440782353497583133069459969769417547959193311606073526974134123661485171250229496448343965855662264356998939208497210708457618069930668595809668507510859674259846166551840640374697249423454868788570894023917465067752913202260008779616890399669365917085364967557299695808089799022846752628339277461469418974954633432515991447816099504380064156017566147038565304112108842349391416066923983235842746153371470605367290742398407070739292328708010389042922630756955570511425890856923037711165403110402882493599196518585991269192272328634708388596932562643224827664785116978630084675340476964358452669498165607030771673014573971766577680511082051354867873698962836206523508788329704018860877991568303104523147519669694197260448944304318449220974706058438353655198582884088945328649814769240470365024736972416729672290199513291786634632939585625490701549991479390483417513416732900533172417498613212820538489195706703551118906097797597674785234469359378099257440083937753499970104848884192510363771790212678757541885105426428074799529248510125624228105534456166412252233439143204568593081364804194213208860161446085128734555850301818639794207285903890310868644311289232911166477847113534264368369554151942055419777371556120770651976633294543844118329378050657263157362496437730840877659264333910631709637361600682666938600938614217314896583117761312993467565882838491256675441623528234030171953168974547680397708221435991208545672695103463735830869191554771864831050422946184707399558174750691186759946111882475858623257104906655594017579158621107611877835957526020053529995217963208788618265271046062907573064933816590724947121046315427366834815821524527203110947680417700582920804367853842660447045795248628503588361476380397157854347227222191535302640374629887969860140907571535001798361844558455820015159047158496353086777651627528743888795517818904978202866117220273802412607045221812447714850653170735063656251964810045402844217062355988868622558651093005147850136688659216482769427159700715082367225341333232215045683584034669899797809942335674449013875676202107942605727398771842410824970956597226741966700640926958973661577899655700526925421465258511067859036298674717799857546190345319981408349790079071004883656514167168601469208564684224242088507333300564677296062541009246946957020245728956451382343791165092940618598942705915030233337296469402061223007399955036236879127340964184948390078646968258116174692890326094737048867755856983797702348842189272225051742133312571900356713817296117496894497775955691334629686482329361153269337669884864879551435478412923596314698485627205813284315714236488458356608856274372581508752236002268762352351661560813380645908661661205435626619657069894446576852580051339812062743678725675469998631003806338784513114379194466059691924559711444791809808882734052985848245800605248077319712097081372749746196462059026597506542948882077711509339112329179384592375620501781448926320955575334168495683935988981312641186988313625401645318122809927519717392882634100137014360726498918657961179387681198076428187654561678153898462578061591787921720297372440563048088743924180418291598175684349667998673991250421501303582089832997945595615899072209110058724469824618228871456581407490260426495321515688485873261685370845786369049281743312376957724796640631752254327448749216313164895866227605680108196897696410865514805869562604639896036667767744019321192484865952742982531815803144201796130742401220209389107345900694409057272808482421176201481123098150720533431885458113241761792108436599843376603174446785713237549972597195297573078935196415812276896996215716019220219895436622355167854207730058412616270053991654504477519971140829163946442285857663295896969460887689913803946639504161225418291849833359771464521793748255671603699859146587215264908543036086120626931254226183411482409815565552168972184588724845918032559664052048495564848665982228785544340364596814306384380866320705700742556097169179266780292798053135098988147225559905383581954689246747133489129092902929468152324442264240465810018072496070335840540778529372712484679395505451924642625632212804893946370601530930020930219688203961096361358912109201306284664441563733879293769299167106347203266050571967602780048358467956915480398262877425937871067941497179660326174844695265841059135382734330621268433369605756594272576918287644741798931572236834397015416714383475154127682373106552812234608191331491830721983773676508536843414357277839123637013154115000341196575396286243478506642286852754351486504209160578513188903188720925349581212259880005562154031600968309451985332440155041975528662774811520609707920858629736690098290874496934719467392985537334259424280774769062755201835660685824263394201791634799295028754997417418556995448548070089871065077035602649702171482563004460638245816880072916916424557685276992575269913244494537539320814756571274853131027976740252601070842700792032351048981278268394500433461472907570270520295197236123375324541063254436800223674171348402269506347997083328720227977401963044888664905497936808946571550002819806804440929341627964453562822071504017748617538625330230776185008292803909100128793725906663062719341405565716385426337176446904083138566050054983053666869508908561622234010609214589069637439161138215958757581965800760442523261296160993669494160572255523380891652725871551914065238393426525357195123163072286856145243069695314329018448702146958375121775511516678144110938982069208780891373190818351715317185855936086484518956547970596854316599128652842781480002517559490649332658257647196945530148681562372826397698376221782649256520017507774412315539308151098195475121207774526912732376316588848945302299258830862772234578252215305326588329664178758437458694014071145928285608324012268538079875654837587004992167643473344384114160554338444985694199563103664879495044003331691877497067982414561452419793477046738984624040140166250283560630662705881276279533918456411004429281384840468207645765225220604711475120852026435597703412270950687550302463638122349386090737891079764066073556148144310688843550088791350481597678478249821729340669383948937115419325673738815895909474594994706916609481040187839571986738497717504673309492828401641967326627323467335419647234387492434954121706815028156240504125726673126343938428552252996749251141822136539264576928618159913406493811548238206168039112921586955237401372942462571502216266067875067873475548419567275655780668623421912476138668649135568801018798712024249780731655772826955095866634762393914446908656394450658579660047542074730638815059412889915558901169043770886439461961385868225522769181715624744508834258276546255755517131853270288227940627084253990014126362357414721021799454387197684983723721811702367358809450034743881169686421104299625869903922743990405665409126741467756699508379944842703739467489288849959611061635940148236761024674212819822591443320606367349636084234309142099842266950353678949968349476152260501402577222753075220672883805408958979044086437798679460988829973221986962774984864127979658403859397166032914232356803379098444208528451658380531811695607108193496060283435239747779409239015141055998075883896940760345629251474498320645007791791299992856885251857790122055742222307863002037032406771226808527426414130125101327040008888877809425469092023094483444986510808804021073821968546112679554914945275923665679503966703952278310129548343333853084793553175314010309624662058366577560541240064114423972061292271947694085511847393912382166240229126746931584957825483295195387965655216785060131407758764020231072805519687027690806963797127454117850105983274929054074219325346881706401914445568159209246449378619554453928411866166880211990889398571866580933915359922013858130744412433354537509363001562040191868836178488934094239587802638302046892321755852130638092101231589281723681238971543203426966651234585725608266751560328201927734638802426723679013133724792862866874143240926437615616273042960835295115869768642864473038665527012848178316882290301053816499231613886195949672296158935836806819452846640020118013588831806101403615184452195348648828732343199266316397160374065555847653936365768333831615254823809878987811036083131925424158185510548559449351695742399034552980704894048731794497658047003029463153032283637305984182793220525668568180192147051146810904779330751651076568822089788890116111217059189096687378851394928909923623715426510945690547979723193450445821312445783546343795642685693368755891513540194460546462667940031980868393767770126370258694178267609856690529640204722069069394103458553624354558410194577346116673263246136797317416836288880306820614348137007425236865555879474785326101687262918406328017641080562301586066162642316923988347248127272799781504384240113395024190739906554144864042743669566271024086623108713995603908324377737958081164558450730508256224135723031121998475944919281551904112680722891478850593999058568785570865330751677483757426445396696158224714033415758371790497284198961039786499048272015802745141147733725031859977665703124122437173459391444221686765964467465971611040593723606640906973181910088762650823376332437018545651022206595444471949805723419260022064074885621320426683577180981114003429385769770201876347576545531744468082466467792710089942398887589019803622113719446374961726400953406246202884831770704630535341068381340738876401989475441696784240496727682793281430156152184806413732307264256002769932959485638705354305363368599340395964475289706551994531405287013334927741000955991246054664069671696987351065512662037768933822687005425917753249013050202071568907200190646425406229350335822087218018590419348888292032905922212702694230310727475713252759485731002399376046128562898600821704848653252688954405050935854910911451314286896595015471099418551190074169769223533230726703300822108454992667081078259724886500431196965410261465592039560196127829079296244069882376106338697286294655442714918876124024284605298535417423086273932206994887654623147319632173650148772711913918522976806232869493258504478587912788553547123584310823610279096238276939344609993303276089685295211213236296351291148879858438624937394063460481906586370724645023155081319571858603175784556462493513299997867376608245166521732623431830074494035340780671765232406704983176215861248857245154716701103051147390646576520016818938285661778684651969856405137506871942472251687878303053267907026340027428355563667752461869819089843755143991738154811618944153517402133920909330467754681967893257522377315555325516573631781614152130915973741999415192668975707345260149435125650357455797531520765621270759060776406705055956052446078770839629579046543457157929653092991962267784101377716941212703881104351575817062402699470222232588456716853104863358080950475373401550537094791674152568569225834263904616082071232356361479521430317383196154893301677350692897466278860768268961082534751783888938806743167011999938637716909427498090313493569859951077308084855121244409376303562001368384514970975785104776604353608634795821131045345427415330376690462278862587251516287879303435786244165653988444563889448016775171278323721927476442302212454929635467752097430404967166369350972258188435843852823600889323247714976144003996319359468911466977840325638115543250009887887906645138921795040644799428514014042779924920511910286140697339075032056862161645222603360278755680370847012122359131745690521673622829163672943220404074903032894156957862652503378724047776458583155815913892535392229629592819575573256038295383816580343363783357949878573450245313571533840546819960877297043702294821338413377410344519222079005909122578324677411001256266913047904718970749006311395571881719394909194248528989346216702237810395371442572657032645517275806984926106014240805292104842495154025217209479868671651170485275054869074571950469320655818403179447285402851439969489765403468030204958119709627297473251752094430183540136706639137214897357086540178229647861203856239505196583414969745057922260234654745206413947768859360776306294613981609645262092210047312619638794214108266371286523496737043599964769711033035265700263576556524245554733366701421366790196669061740512873637945234243227555355842275526913108374324945665936575095827720653073904619310243522994854125546468152518896410804039528590796728191418485236685969910030946544617578329135622579815441933144705263205460137740308415937097930752278092598642883500545641256247831284743677936393364877061847513568177727712987461122607366972027952907060038396906428612613490707146587765987175444270755372896520708627852152182823701652359978777093406623367510794613690781083411603075872754073884883545667507770045304011086187470835328830896960421531325517635365776923317469984862856617991429623346055316335715352608468808556931484957711698901298464172401379782191314466214446742287650783698190929204641013645007866646759549782552260864386610319133057316015468579970997939625552247807854829019945965425489315628323303752280052332008984963150264602560286719261323044576389347042976549188259209161069872347521807582316817582620786512082195844587321866648852252453145466055280250578171854342618511231305185864588970317610195116494579832357287701634128154723409732781068335498564562723734252330895329378849212893456784117380388127419803169367664235311003038845972383508400642579121950118121680419730315187816268543418055933303760178181945873275610776455010772865714127174356870564590783747505556549633679493918890191223617250468744214386645628763109913295246491173822664825722878279057926906538284998246936248900554420523531695426766637522932650469405902263838409896664068897721134442633038558933591138181665299320061739457552189634526763559779524878505388988573149466429296208147014012244323317622216252286852980174908094411638274530946789446139024557279833109269536056011073783551778393297025815165458818208141570597552730078946385691101721294686017880991034159551956208742448261789997252202840726467153804223458981404641392821165754630443966482829094921053010008502503771211371874054450074641983008590557093994630446137647403488084550260822506190978784829503122559587271140630460333863033147025700765820532800334284633659244289815236585166108126099546892249601523660370713755792207374262743743887603010200218709096231615921139132100087261843761908563448567162416162929059948190708983167550681702934897829581428263518497605075702820869487802054077203534104029523968280981867160015908142340528438029886446704387210610555618715181945508709170174477222969620913145408489733290497374254447944118971383911215842441854050876485581179624506504162097964797239868604573066524772346923753384444665411692895270723082873435533637522322743733565511938503242312748963715844377207741338341031307115111035948612321543556109972238932046387273600650868049953073701568313469059675745423118334765069124341950508361530675563549942824619939373787226563388305631223898319631196133784319612352469861728552690715415086484032530944509959107147905670171910041803447195964464061942093739761505684592646118148659625865586037128666297104901792578166949648802644709714106814545743264662384966675722394126599645622200443076838015467490683301098593345269878229295506295155066150214662222268071683658390858602854231210624031912662921455291979541349211773629042332676629253384038883129459648997249010979310393732849542974122117857402609209902797660079998437730938540146088866471977073480781058085046972739434636385616225740458524459836358278595279925757045432056252748099054287344281309048266615172509727017226685007453069456533331705106604508927454706525950234015008088786070075328314333666061048125052054383481380666284799712799183101387198602128880217133367145041257097548927774514345267508905038585535483280851506820845438340279328111932476471490120017907375592121322942835328948498277136040033527183047875823461760892873520531271238006996550627112386526774768020100759878808519424456310780077462427257227485334060512407457434738136592242113106556930026498980160942259639502468380530410389892547394533480157026802135698795468436251296017965515167911049432178308337005210758020217526780955476813946016526631045657239391906366383481782303727362504002889482720587111216398841272863937582926330849125539545701180186772125557073897993032938638765882166248050300613963873682148934083560701579770544856268287341458782022338106748415023095305853418376746301386264507741128144219002890431933849869409734164974006925320401827175837921500507888624047132384064570589650883114935036967721399695952485487904158282925445439880644333321143064729167264170110207824269342481967092772239461400656244491546372314549113234061349896921154297942420839327457919509581179555923245850191470800181782878833469912612879835135081234808924264149380408198802529427475762498199643063727211795907573695321433398623800197214851773602334301234977458721892480998246929391495129592437650206997208282392420212815780898745653217464385628595606428946959177494537225723037688111398047861057970823193086082641557006675395242186341892668851725343618932692794235802397383604337690208560257525933101463265375560017901706870043446405611053105647668926089958443539364071601294994565058764223241427239779283996389164452951290562325198506383156061729826966834928551605994980507898639566210018672987761508488951603641992597540284144419688636275171803700174586878600967979923933558097103554286358220161137590633145225985708639916138553240626065786463055274976069148288012369121925095465314414500987191733736102868676784669240444502225877099596285334868012485017752839469450334102308792905388401901191391537562789777104081412858951425089363196997082654100750794287875742897566382095950370358343758788457432211999443350324643345455563244580782785851064676755788370165338896849322133570794639821799131597317612233962461286278164893953062355229650804600904723294031445063072494341044577849725093481311948536476799504667939819209237687311410116630948150347054474328730540743073275553548681998386372381588795900785163292006629577460209761680997726054559707026807270881596737939222127626183563758478935616898254678363792836544923254453385900344657953056229605588659019893005717878105439715312215936576030891851032969740968487592970991992508677145189026197790237302039333670536276952937796231010465355762979200205929210609894946563747851244777802110060826658486787386082902033925925014387712722652239452974968675558682183162378935883269069096535405711048305507221976622878296835033372403448837971326849837187567501676865372784290989971227187098818670816356005672750617896861132574371845690254581930289718770664148970938253200892622129246776462820704125164566196152229660186468145230431375749043458269156522599647203334752489569395273458715291832365241776100042116300716337207394213050279334033876922015266290736475810018275259958958665964012366061491473178791750970260115169699090545571739872591702480533733854528806606749520008274403221338972411912650789248515253755233105372468602096272732265679010197513763967273237534131253748282560322728218712629929127618860325929071000944936268321982238076406866529311404248497963881645483018872812160646105040457053937684715527368285509329125212261124579385587489798841833008239391695336012465842797591408678139375690675779275206569338408433783115652137112559818141474087628053449353518892935019625827476334265048549688925413889029760852695539676346103666083995752978975069497814738061556056699804264057882033861058665534421259552039581954987477839378957220909877847398317727480866442574424111209811975042968022798269173024847427022574286375977849027683070477858547297177484783575168022120607669755583563547422198606567084375732791517650462760336459096096654947411483642110293875171361105322645418666350160644437416227757167362991010353159050429321492813821273028295501438044571286685444271448388063010896272531677333934027031378601609993280429250630430375420952207365453761130776092330704977940524658734643962096981818755483346527889907319960407623336871853339290436884743425323060414750811925067074067683133227576740035156343022234154965693918312988725101511190011783139607894774653883261215560186800264475772537659563733149775605274520500995908014103517153450960115444918439029437355835743588687696917560500142570560973174126530077815094020479290243615589982848947009907697230018280563164888871983628568593423954453948284095446756500316259935135015382721061326159015731566695372491933287214768609911745959637701213672556837853431152709230239723264517592859899217248396297625835554769139372444986875733105533219326672309104962852203651599406652357246798075393729150432723811236932641009358412766426094833367820740514507198915358466976284082020345388106483060105495169589774174051980583463142490239364956286392209598565863096442298656682807990139809561617806801530181428182885528031311921242954291747142305056959326332870594388018930887152314100475922160549810071967573718880331882245834039827473645000581073316408934540315825033457649623845286749459095391464061841366910466481056420531440484833957113177601795341321735347939722706046426594566644756217565241811500514622300200613452512318240303414202173293604736556219569928080180638999749882657750642871594243180212230522955324558636429656670052615741739115595143312743585639120808675732210956845007550813475589564995545740823406971542521442291196638103659303502796921784800763692473347966982049929976939992472164910532938378241706726934072174011114320009194272120787833026570402852008499915582894973383752668063799350259038076370004670017291311872703968800932346204740954335578442907223090618981897395297937433984803712313529640223260420365533157949128612656127156835671842253143848521530892231900752251540851070534751480931690708028265412280241111531941067665773790613895251427123620895640216305484793222840310610706704328448127504938137691632600796262936670943589295287608435347482159684594869434422621283140293372217309057373389711002423546020589373564442892070501194920671045851376853765769490053662131817573426112085227719020000925877867962049480539257081632518294643144862999800478595633888670047908807699681699813227099667400995420785509522090349984952840489485393504661758746045442704010455141413656620831531951079922782463722711712493039000623731221001970439674394343002474837157792522356569843248975705257769335568877778000141835502551054815383229781104258320687865019014708521523083597683228779247427065567503910842192508022853586395607038229561120758787507088475529263424847146429987235191999846522030264293271193626443223625547580748730618172575857738069450858429839974581502426033655827820345909118318467966596048951687941688097847250811666093146902665629488295303451300285546577870294689536372625665486464785470083874083215727939197465765381951818547004319354543772533163239740635394258104424032173552570862949150979545529487615574082017713810959153019212093774380888926241702836995864319322965440225355752587711928618639529439126144848678927218463187895012411437761355114954787066153196412003757857470740570813747292807043248083839080601863376086547670654139879262068998737869201293571794288693232833034325140100976386721993778056194217954815317386456640707215114621941711847872394230338340283249121553684587114575954293612518248339541764116514945340525260751320546153628313287160353414945478142902443360058801630015869421016881233964655153004435156461792948587633806459502823674978430237177136837049654155740156830905457280250986202982136260421016708467483665208430810137835354166516360943238910736312112788803583466377778747631798701352230500109965628498053528517133355303086923507464544468992373819910636328495826987995228271715182146581977593902510632833867379548248058041519488545752558727800623042883926226387219898843983169909076692224970267489228570770131024909418948748562133177400272759189417223020651428550156006437557323430935228349702035981010146775593266717642058932939038841836101778612330161779571052800671221657790711641363889360853922954306144518237393194284522636758596797740037734354142917881919846732048838669540239401407156575142990639234771683520719071704212151127510162678010704634463991418755396594305814537583096051165575659726300530515429116628808342277106108470463741208027529383501551489637026094661448885827465520795768220720949417192387987043948845698914059704101201962992046081110222527013551271444175824789118558615906160994232951527764761888977522674107423237597320504421119347809636564683238887340534459230659395921022443305020923913945702479440392673032450631589481145648021938500853485975199606210508154580873905584999366775578032270455711454995275993755878749658480193814201567591875726626804253526122578301661350958546035582942504330019573311507983734879716948892474070348075993011718746532726185288624620623656336247640167313302874611340194611891298376040741143074017781488586162599131827426276955081267358223276893232328647178353219962995593756613145624993662642280834423853828567004785147831312945724182347413215772007290827184976035132759908336501326896909693578629809722853630417099420133677781422919033333121214820155321997818369863315927205041816419627432074314505235673090103702917112761392748203053803132539084472856235239825866108262191473172617524893560254784218108308676129773067684599636384439921125613960401509099414401347186600022439014101211025148627154182010481618258687053154019756170024422920275217879947998451962048047708098641656642818686656177453170493931107127470219134285653278791054959318001069568249629647120848143431119155507635053085364604730849209220691831239880777382583510103575579862958600449479693361177586612783325688398100558627500214044416609752485591598409200142452351652727373764456507050956796379938655233201376304986916993070669143917796856895575634934491606900324778765688861312937938081335540324872029930697224242012368007583894975213832707250166607102413947639520998365461210216203835758449052258045287266971550169781896490367646144781022929634362933196933628417305697443364213699585587332359864485535796544636443364864847341796353906694717270008583472486109983641075700487864673014712033209738015410869223162300073644887834557197607881076538973547865973680523326103863652205527325673522157489642555546582517894692375605662699156341944227027357587316687339171506821502966665031563152917055165808428499952140421737468431419228470425095310021543564312795105744149464463307507858175694727941831866126475285953605433036513633770418184140145737411531839791101816442313477746062124379003970718501408712985088568734708318699381234332352750658556343693286492468614405388026796288222150999461388816283249279367913587341935799433508694182679485006308665981730306150754078352394911922004809490432757038497971377989423500875236033994551560504697689361224938550988527379468158479652208291364831238417888537216048695464142376952869658218770792543415357291352534348686687309142890995660212630590963323203653549330417093266932489071979774604129236188121129045843045967836522741529057516031985968408458399209878544749970178453856848755866689136026158234096497542204087960700774808636037549531288281988405986762878695701107821942226704042085053293275578517662846017042152097099113291944427668246354155623179686742591171083626014076149985207747920304930181669645002853695298717767442538055424323830495040590829823735024071515417290343548455932738364356449544902698162880642804590518200798497728606589288475147389318716509787319171733212776045675316747085340173049937118857724376268034492569771455534204135492540514107909012117061544473715401787328442726774858490184608540698133768418271792253808407272261256803637084199926968148329539678155850633493102413396213073105429762591324210249345953042231320256117200175205999562686667114942362342371315785021269668452521936888156465563592394698958922033637264581096187720125119430835422077846222982223947552625666750033200124886351909526044173920148576349960066410474464688823890351077517466525976057651998820801612476134633437126950343566046755132596223126563297270845061166315285653536026836832592694808063729465626422971254737775733571410569250692015076086601910344140475502668566059850337682219603256855945226898091493201853532326693958662096118694011065333155493623772495063746548012832780801556886412429366242379085516073205364698170177573513894238448354926958532695286590739689281928751333427089293518024826411140932305133365052348824359643076716289146789448673480113840803223870987834925320743113111446812770725330281781485669512229789293049109259853233246584056016898921983098937321556916355550012761944425769699626911773846940877747942114122308461399088342499518351780640365202169610850302091730657666142003092355844788147372169888712461970586272611526799405718458656706029053046805223776368559616744132457689252226265243039984919813880115175497623638064495932018261506874700573660984013332438439370972837420588805268120692485058388099795841609262237760707609441000862535441170688619448842648283323393805930729462516897099920263230809647261404580899210478592493099933003197733133754071230210632914721100051085309823971413860279655441243679089891207130676720971558174428591141266519091316447740234093351983730471907810414904132674916796723072942313475398271585687254271244335084470536387536514110831094735444286830874464612190238184994571656578352184090081147594033311036289294774260842869921605184054366558275894507978204036563665682751816178107203786956934614117602096823848430344952301505821997118681893288724461621057575118247854001802105210914459825816777798355570511049039922207410026103171600533127679303381568207383279930937584801697594418534000674690200227764331713693000881593424348497408773753185797643186499621812824892695022580571853027743396030394668626292372941011893556637181778886745350658498100069226447850134393506566014891099727202210742015022866585116701780184211836028135259839568067667819077595986275823301196623270192658938339135420789744178606639516939078810391991098414842745379319581255551896827706201701097162370358502300099865419087885921432940183449033132066491674267238596129465644764873028807501264585781159425530762998275080948083765969495528358949277318923065010151941242789175413872867641710274724839356082375944620654977715363037009141237735988568657138379640164374516335379393676420881815724976504415976254115943946882608728306112878647303658397355393210869163873788030008984342827714229534860962401913809966223343334948063749731211726258549576089493280377213490817119967763320723846569405691250536705080709530268303863623071473483215320459929412161264930176670169084858585860372683999690620877415220849602486573330549302888730120319002932634962694080464394884616189315132104618097642759861543966411606118958969410840347991588494811001743744535337638970797721011872875857370800436915187573271334279237630016122612793432123035988405384779534995079779692522992234491861310270218739489657729390368143183290670333112108267536117441466377201925376891056030130154593092324976471675006067998917959454638795258729233674375715999876557651593960908888894528093409961939271530408775884855497545193796654314106030404002511707036282950221192778755783665102093444978673358668148836968663431233405161471629816725368130333095366218748218600710399832107566790743756920146615758373672605618728399741212813575626596471823294238689309317706220846937565922121729802666729696790498180180120976448393410029272354157115068879475003523805399275846073499275151252167420979415538813800761891562031263570632295461433298538649582337705583696026606150947239087522214072802356939357171899979184806749595057568446446821570074156464999082961110121023872243684158987754943545488606857292681466062460712807206161562179763410036062100692015753517923492654301959430298544988619745243330090506942115180452279520545044412229272387669248320910441896278154089096927006287850545919368648545908007124308341613297057314142595489238443669223761956694790830254285786742526384677215118591482331287133602278296627411386127624986868177318856558910510927262367813395681418343007475200613182904048482328873173859960428544124036057276921406932006415747590261617771250249217684413439353472345744679917231731159435354310953321025294285948795282686653478744294663005574198969962342837503052704845923077029643827483024955156491845364101974755487118122109490882141155355023101466850134773541053209296771987676383729735644897791419415064792194916277508835284964962902532447863045717258758154371950645570473836601983740692701959548853254544800865552627859429395887900172286265629836169589358388745089482352218392762364723526219533253404905782700396570939241450438049182502389192353552917240545966417064377704677987687532380722921270266951654343244489105988068940029112570908919236613487301374124296445266717468306981791841516793329970066274561515954640406431693832081800281270599581722142376018931622973478267710524261101800543252228394683428228761438218222126939111045714768426751539949109893004878262005028825947425030842445303899354822985829287334811841881907857164673793296094048831656812238056063285910670521895944051823095144105701620605667614955785124540640863264842769757080136981348060260269416822791406778158188277763974220212250762997520992489536859573281004226322720354946060286883230282077605346924088257138803524229306005874279468341250942287437583438801848463962739207754978282606524996571841034669588563513704656090547440207577948606884445966084189449345293488754251940402938872788713820882000754567486868431735402416281174695479682205884790175565048392245707276302511611243719324068411309203145347138774349307715319335981441711354412711384235922227932131277984682395910632189289179012575369893576767690217409626072974968603034597253028967005009150320564019585928082300262685120444274560500880652908169192375939767344672147892050868871292653775090870227949453310199879198076737700863913253732357663518985242778895425277344699303955266174319853659550441184038817211732234874532519728561618174474062342412340958274507100073172624968308927964202994026121677641577585149271719937277484088042220061043181859348639175704348736093954327953475306352060096628412879045251703318841599681741382702197231803080751083495824936537510848077800666261903867951527269013123097645326301796775895135229006953444122655770122185739384721620775097850534618509426229650746971879932953609905951869572206044628653768194244226266831257648227517312814811544893675567720077269733503294547790565005908082188620824014919592305656593715840041378111992741634461625570541086857995522985258875490662427856257633385716255629638607423445090494739270659925813869190891431419474508612465835962865022930824427760578719315715777828645858937359666101550280112587005166304211488705439533277176269953413625357861364503193488795189894777853466456425614812136261298809240489678279635272279345960058000687845451441230496349195794546876346904074784615211679349823628798165933242449014168414944630747800582094052342019549015156024307837515588878851920265470723810071266575696641606967514553423192389274668001115621578198678365833264260034500532534651238481196008066256786329210133567227878343570556753994640220865965319042966528797127173036528352709503496482944975949283189047561678750430132880201310633839628900359565383046170737522946104972657996388523770187725948602529839625789013613276540957185433556451066976981873622996584804730067454310264386574381234065943238693589206674563071097940540866507782527607187697943906839480909343660570305466500220990571108925855515704785895680438958510982932365182383991417363328042078816930885605340614817487861860956693683204827123471087723495278752962406940118038591991859624050186281246187940138924670920344972413247632677810955434273600285225617820309127305684854879797025666987892025746438373793816431519485106995855628098729318469951433426500233037423148368903815750100231337866025742898931134511480756446538783341840532400082564980049572418482994249323350295055158995896918903276842006910687265065103566009670660901540825084874623647934493512368047580665164713909132879699655724867255021313274260979701651603985171845052454577989848191010794320141474781380749439002923938939678039178981464929665986895451701902796709532504841430486154212385648735207016642630430198619385797890912058428806893718382115278385942232509870078111201426223922503393264332239352827807256334854156043496883855675116790117769573960155455422781228313395100838454021078322392102911367816122911636423888871128688824322744792881010166293800729511360158465112256150778039986988074145078745598417998188404342488668453543543381863386779628611684757709691756723780196424486529229737400316380323537714630265749310951189344111683248574142336891472395659795447988470298506153702405311214924071233605780969388241544547016314409062866678609904770192736725883422463634018044413141475049265325871459355842513264970973830767515052362522162311667728703048669685665368491436383110083341874018994211765139879731510608292752221554213875888755336762577503332552774845604576971981360305019407745906069087703408546933855362321679746806046225097011508538729119642633005859358781023610130443137112039970469231991767088948987629854542149998489532932841707051362874087167135215950181316746047041084677660118104673357879118983498475570887313079954344761105286143673048342262291988824465828465391743962612142263086409918346643953688414073702206185332133170408597315519760042165906261074689060069077322334683026692577154175306373131703629545617554770511529639509920909719689639540259674348661106965408922323793159910137266708786668761375778224817823237578820984786959853843912021678996700173892849605847451767258935645449676704595013116030917594738375248618648949483139384566947707115044532099511255835222274013331939992379053969636690752061234739704331937814573587112984805267898317340989736038329378830456264331972322554612684008582501431134742979967647316752899511592256763108549784369562275280381925525729848432420242484774586035568131393889711198934047238420983491351981698277458378972304971157975740229638749175044202540323005753214932312232993245002301152159908068803180860303170327025079554723569909338235998358602560343525014576703210882702948269402743607546537978208867937189241686589461228212023503675680234785389977221212713213680612624277646573299426566752998997405786648327573809701944434508350614253320656117202781283698363087947407485358968688769714264474095181796195113339490777126504077426189059196947543300676296637731036666424986699661958451671436786841308105460345591152603269007100370044267055191251605817919187485048704628446772021670907232441882195219792755645878979049793687163511870506550030792461511670295038741345780198671097678753460302821400364343332649277977449621934265251397880629911000385266397231988392524473497474737203462270010313823577614521986618096560991710866930587808071038153636858172631717441375454269154437855970474292865641701505673972279520896777732364939061841319432257751526384700842720642532703767414115629471618976495266029671800029872142860381959944223196895573032090381940363637386608652150774197788957479918040099868476429900628430464501809048750438870531140243950406097476091113778158050661860172559577289946408826208179051174615660382222387176640509572238199704728252969761242733386358719962724759287836903664910025869535191288884365076925152168092986124944832109021475936020776179242376899671268797966277328681694613162775419775497541231418655742481315834588996371861390808793696409589236398693732705952870350899030595980705809474486626314160061421179739007284404271504067705030002536655121054451260357512821389981555178738373554677399295035698356306690439227744829557039991371938291145642876727714658352967553826722704052047280093920768639561332258400206657305324187068818974358095274158992563290876825794370555016498085226492235083999832763991631300974054553052174311895368673301731723449443979193754250957195080633278538374109085757957056499292894154495258128039772795859190909377298488640763708095224241466421634566133162853454445893736359706326358652378451149847868430840538000431878145380694471527554763832551771025142179097947330139482629390643706076868995568700039325429484000469514196860139161435959156463167050696486148735968725231635737520507968579978041907721226647308933799275711195532985171120563796674291723808566859143014876801883204625051093256162998550730635328813530896099859312430497089001892549786723668553154902807397072761293473123703969367002088631295665529326802569678559234109341347295053718979354645746962121208156568911479416714770466851416189936490257905394287665622111573035371283000015982240388116511949716262001854857640770737976001716936795746772645875275669895828845354532188321335191865072824199674231274924419431958164260894655730395074501617079708563589089055536576898646417758685611146588264302306027423653284322021395067080694554385383515770897949662668644039400601377333733696408756425236527900172030141955551875486581465677811054475654481913307637995406730825823923476969347675111816566626049674038159357941024464270500158673234689150022008993018553294245108727643724236177707847825305438071374282769716159941661960821171865958893104348458558019667834523122303105794264912002287848595762415006951393516704067652606335416864441352585949357408771434009172067124417041352216421279801093480183929927414340547808288934246378958456435513030933132481673579505641444157906402174025584756046791533035960208166277344558480972642210777133143173055036903281254825139534885505924815830610243114748001425961925904698882930106914778536428939377074631693758280083061550794010553566370894580126770354087832103097706234055459512888509999655863194515432212630455425292162065042624501520687528815940554587959314878397605533268074417191385667469732526145633705945286879240001288942745582851920522000794670736217397780893587666175110425257955919806615285078853850998788569493518929315859433337042596754514496359480658705646735173687716948466903030362676477527156241375006901728832234710793788883659125838534599797208130288408431107774147200658220938816447868225943553318365347967842102273114652437037380183762155150105162852297277555719119971944852499491382024184353000768186456997337498541491435940183692409917122088884471918806171663009780447568716513734022028718315973532382160039203343926390588989199949507937877610336435373459100428088821930615860917254366750063726615946786884518929446299208771518075717022173259739404193590988988328330118462179958143988516695125134195560797667189321034236849556382378358254865172726679504809830135324092398313328750294011057680772765141837500431936949531597907031752978313348360870345421560974881767794462360348183393585106721139347503545799125816587071522796789223279476680681821158239040823754798784079797809772972928697030008235526585247517843002902801135481201071291671752390375944121768520138079106179548906049694400896848235924393737323165023532495524980589526673926094684590633204778866321511212839343046155595873939827639079667415921911203160100652394763967341429134263817961200271763130942246169928227595111339640068911488590504746626253892940915266233863766647266963740601314948515605559881373231775389326218456054880986002692471303953472908367101941661332147263413818543506608402223742516323298228030955139946514352198368387475433033505569609271363146905287543109692066646713961679447311260470118912253919777471467526659206380988975473303608605295414404963834655877659189978569601624765662775834776977596501406085038963490217931476099243183325256842038584643913827242221314556550339682838854117946194207115067616772447663565891536780165215249011060515176421184859680162389900761762036194051008079808997451073823971794554509937983596898303423918848943626383407371190629337537541871891364911873675103905104096098181898524816620995401566049335906766727910360182162507992422373128784436572797912536292964898046015271673687043024974895284064398677150937167120177882011530019014061768477282951598092317661254927862487697094185213020373823719300939856061366986441723751436834500328982378394286546750532015081823983441734254005647552375498583066355734441884808311823835862383817371631950770558018836579972407781363755686871613805284541518771058202962737994727784423112859853368128839030965859263504636309093020622839160898138238957755239696505319522067086624932689130681303521801912251659195394564030687161226650550757977785088001082142027724600469885367979873935315800045406658154036398359175892531948042662654461318967715682399397863627561308766851422432543708191749656859981263058649760652769544840214057128933187872885480359627182020209105593806029992443546584223679268043938952653487255317365941268307271737323745667623337868288930009080408910398692187225202469781346973969342761425341276197475511882959732008937039855153601475771381497288876528605714006644649196615452525703164653815630182041390519020739855798119530078511308322501397108976164101866636766590227700955780335139968031151663456090415371997226042727572828087924762166633441395080621033175478932154879316579491536064646762017936202537038734954496419838817539448413874228976674120417185800509320033736802594638569006323503452902067378317004282289956057467493286881161146420115184438247409965754859295587966950101545274185528185971300013638927633683778816308934851019501682051787072206449769238031835620030393836363584215809330226383870309772358737752167259406724518855934494037540697516309088882051045445081415804598864092096866711613635805702299551379416467145529090226343034972698331533116155367238616424130944509467857071579751071964711207146096365926637297536227510311661464732197497712919458157380565920543891161162174396111569813650474757606060129471587445305422481176779279952356384682430708712603272990979869097235488665893454207781368140420151643207868325904077379680032175533567707281754191833410932906682630275653234839644833894272797440068393409048769637159738482574653585821074851998735168175261732456383104251058229530778045139378372689071021732627608295243500631845090083568931472803887100046374715176385446794033150645636178907184151992971286566783582681864068917167158151424976755366545024360380339606640340613456052342111116857293793080037543962020525897714280341137994136621339102602656641216531687072527267799512136571593755313676287108036359816989025564116546312285533959243646842894324879343915468903684412751239048035609069345111216034183712244442161381291356142697951455375762507655104469074913612013180524114924876875840197490572334612292027051091001573305939545153779064146290929858326042144765945058789321831540061799366973355975712160771925591645927959897546664612782852564388555950530314060474724215535886499245970584809242595694766902999916511457082710067089005714347294107129288139371548239378788927885781031616558640527407242359765134066143653127559778906300669592914153190985707909209901809364913687884837205740938858446940754160172827143804960850994705015462478793219116500989161549778018867129646274952084270455259687153801352190402276690154374383178989871235410962575913911992670962571060567046097172643953070754121172529197749661936101365750713034464940801208491649169016718220340793772505534341202826526730863619262731634550450284768171899482067366458059074005360341415705842554737803919990448271397591434484271432536058891343847422032342985586943138019157408948041771028888327909039396586520601372133808370440472244126000102478216452586020199813502698569393856720420001766098246511063363248613203187126796263386112541265198096327858234875497833650725776744206949924574229473566109229965587625274590069621519885248684736475953066241312803981662845198417623162939601244284792031968397544535773251441928789821171250268734790480991033624116573299719111988320045625223177811517144391504934681313472760730716409258629916486060180141010022289438579012770161106647815424561466575465716588596139272604242968164835529590615149070132373099214176303491950361083543752408621820490300328281405929318550295486089128233130028893466401288543513399331140667048948598201837953139854992097403535336425205085803371449277195276932764229194219384366291218599802982270737504496157183191008570786692875775471974667880433053873939677074882813754239467159199223963299579422147192472828797977235721651093188584728909723428097685291984292238641088649513207212263796602943101329691314158788823809781596985843031183343915697204134220689526533872326769489180217366069238587623315327031817029782558838804769247507217244043375192598090224079439199548851926131125694067766626454400391090544822320696069693743577463671595910222835732593529095831731564857452825249900908688036080978735869864160756266418097993818348960662121289984516597252827143481775159038044897412020161184580726093454760778732016754481371533618263572294229767634055953166429136044450386447641525073879953989774554166296568800222132140361238890344060715463752986318361386024488680279513234869861425880055211120609650633173684402285089435829497263511228093837642055969227129382299993740564968821861777374133125245196663955047233739705284032612831821855501859180639603438158593199739203321687739845710839876318239170368208781458901580764860037158497474720230818033213086347130942106273974279999603538346740325144691291763414835640801939430569160143176656377720196628518250049616985680677485417858232994867032655864415259487774857932965448447926282203361152791511766423709396726960534941598974686956076129910954794219878018426823667240927721769216296656401952463810135412285267053683956973536302525506419666886477071787503563570516926533420776805098029700297725622528211456826526448647832776541883150146183800021068540136442048058593539458055128799477638794270118218935385515768027977328991264237542080432613900677457211220514310550584020385262945519672898570138885785749626290868639984965937356777825874389792739145126247622592489042559561507301586023952794595457451115963014786425969509951998895617701506177021840392654569926822098150341771580396357404830636613515694672236505232745408401362418656308985457265516692298287123920749122502836566007056746985015361933839536523018057328071166759439397885615093010196071330353779983741298090055804753870528351427718328111332112711430374444994015236110116349687852198047375590089690424638587573036037634770083691180402676351232906054982197753416235454303684269814877548114947533139107169719456241597254447108693522679793939092932423501598132797324099871810585296800234936477298334566722983386942624597581336420815703244284327246660208420096674941220668442261461812013182943957020263333365747633513988266409339737251305063506944151958361219206765080214896372177519757268766038713652592065523299505160422205804093588991206024637882810687282952197539470640445285101740764548967728194973944139031239994203564170083705422313289745860555546784107203078257129896847566212784890611922523537090035044950437227228509476787638886564538442078454709226105153575634654876498728308812942033283561260270582882003519779899336378285192994201819362426960835213980666025818272188562139915053284392719708063046038773770875390043521171817498625207049147373011769579509807279929161436797464058715596803411393054285208229150735073501399470126248015186069934224859446156177772477656259497045202363698404630336488213873995539956214593154999744585496875660828293072970655232573240611840799905276785289162924923764360528362472112747241953527976191861052442750627640394407460043767259599332326346032552936667013292844737295715511475121351162650220759325817292109640864746357451344437176370349899370292472865149607239592413825952081680647936584892637660295484377904246445238124463875444207649201903243478040479078358947748826795095387194204350596476096082686045808270868404980351852324893800498455988551492700205385538015460210470187325633377078518147100273163050423182287297132754607649512190587168007353185305468291132492900371498341856675725168899017573092660567941279616183146184577930769908986935076699292375943789837952131353833985832362874111343201024139829434151637685260040911224768538705540926992610237340701469895530375453225369439042562335572775431438073698259086012899556244958099299097698791299882697221768185595595237449980592080814724971125072097240177279578441994552188919193563273581928104143713874275426051490184701808492904633124847966356170719756407482641757789003681202839133902858242508109702843682349759699777869200300343125994082303008881266063409433745543683477396609340100503574381558056523280468998280512267626030200021385928780946807874822767603230598471998725582259466087395389679375749679679773217903022647553459304388134177862065860681613226551178586324955554008199621420884848140161447969707877336042214304293404643891236694648205369790697354903507975961493811388529470817647860889546212090135196908297791600530080700197341190531444231558752077110129712722836012354788798958215847832400305076842732269574311210834478689727215540375353350469973650173409161498811381316634485755979247756114687670571580736505759878558437115102738583837796357277921026518758452314926055091037809517808767853480970221394524680977992200489881839572624457455536580651633578360348317298043913910863082924418653557390395672082061733613883225055485195535864990462906133068956443238765721202420488484400048331279786669708116022572965194066624199017279953647022476329796753739767627061317735115430443185859359891850002274664833081471823134922714207753430513259383210406997319415049416598101534643815637426943108898042187273819783122051138263553077388138288108231898554029511097247044229812295130408098218105858440499951032358530717673425678858679060159312094902320170817181527292806343028842635151059068398837105838831518416482595573473605546446276668603523330817901653241867015319389871647935445881951419064240973257160384917641519573139844254031770303766227001939776984373064999287432394847928041465763397817514168479233107951407741506613701585410769402816436554138310945325243212481230763217284860091928342950425334585965833175589141808349080271298042627396286491930856032502505623714810453393607425436657419770632539065295793137195283041521764545796232062225369795953102002479774029907816382364100421134680502359947764844800975046045745176130266142816292246354378960227831988972610400864792710189328733672022637216754955679781993418444904899849259875721630734677304185931528996758991439966264859417746378363793368895924693275832427843183134235990244954138647194871927483616043162269680004456214560576576548777029386402328862671940707279558056354067189813365961627471055603402519482610194349859553359030683962470383286219532655493639138926618687203738614460746966667363167045899455054226006650572520747807288577988229183787192881998558207975944738736101440274740403809089713439263635103796775305320581147651806055605395839857350251233957845451804016925180433305544260083802189109961130310727616378266712512915487872997133444664805307431649556874252414701744414835436577812540678436653358924620817209358378896864545149206386831107479390422114847120433454208751472237474763715803435021754930292852891540997589960879236984479102689358416270747407252179031702610066663513158625285988860465205951146744112020190066362526273208527296758275396554272178977140909537078890662663737107727961460842100503251942401631388424380605611247944407360160145109011342588685958138302367734775279356114781148313369735430942405326783658349659524824487527314148863784082149295665519830482179293254137526991796931215813467193169242652655393381169847430619973704540565076802023811188059742896095299263468221501221687813322876824283662813075739347361667920356747758695800697121312004817467818668167161678668276057082601983830702513730684208935685793294844583417094943410944474583404318953061644794579006670474513093399967719861142274487303047587848734018176127836835377223468564674768557454477482648283330192907560425868328062908496015094336551089907428576116121177561074772477090580408202104525312203688453577400488680258573060826075483336905763988126483892329442853554566198433133531978238391767721024332513171729752068434860227377763187295244557859239678288989332329195363383738801718192718701454776158633932342156651657300895839623556003705703126812355070646178486201060472046102958885809506800977665074939920188129707095050395216420994350520418398276372689317152479323834127426596889208345859167540903818022434367610086017796030162833920582387272345967907305896342185701468875078325895969849836813854234907890754904957786951186991955246134564816241366091701489826797168258726920249782263536630103590939866829942183911170018055659566080637965202281365178939801415634711364361379718143589755884189583823773222560218838339289539162752223090935514895365762203358718428820660237708365297802436074015415565975987265918311623758539822700159681876556524124893097510468200476628943658700946841429134244160081705764192723485601738220593308111143363791431194444604380269855954091496268495571857293430730509769106398979514226784381148820943876798123173557245250952321384764080738333963384692601387644643417098566203333461967014947982633157263756573731942085703642165053879189541167107770180604443672275068058546254266243263350032867628750915364925041994895763107392650854025248150000468430619492401414873680409213253960805994509803779572808698078391453797543405695902608757903630430297285030908962024460933887576435763556247908803331137089084753549458040282430978299131678280340044103878981243223151617574946320790841172746938390304782366600643241349369602650668704337179276398355416620127031549427108907224781096079764675530357296000467331092141536225992612569191733530196762706789752410208436661449108404415313200379236266688970026877104645796823459434750704210662385107622911673643363019734474523175017726748622582107229253565614643981136860045065715178824880574896526275378880154092445375295421811106126400840166732021531329135478623758634974149105227839597176127847054573032885738604617576565791787390573912971620460219180836660137954866227127005074228913041788245229032613854212426735136555654903489957164085254249954311533983258060698186917870557931709583656969607050766679872814289841547779587723351939098357965115356885616452299960103337420531105617530746381545293059162142135246852381372430961402402850671512008228853269084446002497959867996049121777002885511331714231008790573547718121114283466589872402219268854844186917886743864279823508148933549463973724213586131097672201647390117850488405521704350640126209530661639927758559731853586022354582358387255598381297079173104859245522874230490926970402986595008746179758141504662220769648498194724501595256115518516155026562896923997536423016172665658394744323341103431422565497546448674872730695318831782986061686382801900936357657083457057652145521458991820317240616302318575489021239051531584399072928542740966852103585946577838757221450695455505917830197208257087339154264453978252651329108084216582450130831427748564918179875018389960308774349440573585264794329397542730461055914214342366780862670142881391274128601962402360337678632122527511763167728269355538718970475359166214032275713607056885244866980098983496278428908015655095721204364972248479378856627531680941815374138490235313644412144024091237484763126170201817218759269697329271862867752933858339320884190090923634541026965413110088821490755699655694097877141360700325749310101078526404483194157084347832565675155611629199664852224537490911783829117416153443459538114509255057370928111630657055406812327520492097030326938536989121690022147464836023468385161446873664280814131048357284699645776092378981258645960555644674234301235755445870873213664678158815203329192752303735053652487639334711557236945647960927170171471297719253950363257491422665695299430844577506082197998817786743065440100448256709510846664953206210894935668875315602643672680379843228264073667423401572366011652646639556685769094861356674361508923321264277841743898112873192709703965079111846889261877942275996396698429761447490718162728127072958281992764675621931207215550843455301951367761268642017830895121311493749603348042340285903994021707620153975006219450475087021840495671961646961400445419385280389894114754173310232111174662327043808390051762842475221503938395269320255761172818084383509936775228580349114402024004201054219044271666613690914674278247687016472485774280534451340834469905727060825531944497150321611205654063065498330894889479191459758768129977786337277204846618819317137308022408440678287080199780985844455289471093302292551586096273143826005809513959137317016466100837455215507073244261637872144500437262823762478963108197278004130446750333449097493399842124908632511310611901055650110108753163584976873768980468822772313408507641738385190024749085910318432377139198576747612540821052812179725599889107093846700168298716888982645509750525453627789328089378084070023868288779104158553423141330206270815542643002434761190696842112682735863543899050704033696177679018671375812151234457095897813277735177641575044269467950304245528886367304415977793791488858953486322669993926380396433690227532596200326182380713188896724475161263845934627772387141447760114161429900970754222493673897147395238683958060982985973355406074669842234979259040553623795097318604263444637745698409559491648133500112588334451901775588974559055172422789957435651676639068318479318519290105324180388742112205803327350588643822949983863662050676539638087182064549064625915061109817541653242359559656229261329261176009388843935387452509660297286838682135212243047445764040673489363667794592321651675619795909225490389082755787523188479510195517779220669332406636518962523881596834620392664527659839710376147278761752052835485285805789880690558496108376649597420052662188742863511980886457105323232681728852293000892347931119785871695969863829693439670441536413943232478649729707307454739643236444460846776158496315252083186203821628016035064153136145425838662063884589576790590683137803309831642336827222564423641247407551573692404560587411410831822622153071271469642636839149064003552691878058355522097030863869355902452798486627488990147063245636866714628357832601205806206314088899182437666367487436749381814413504747543401554475762706552111954023141642967113010806727130612581275292350998841686115488085381710101709584026495767455312228723786825195097320612926228188910834127181145146765535899410038047841247754015297066413851492144365316476977918058156438872967079637173778523452422244408421029660097443145731062752616477127941785279722264123577940349002884798404543335884422018606734291475979823606908480041670289983262592518002836824900649695072138307702601568203400473920531128755367624049663011564380936483647718532449906921246528266883244566850166164848920813282276246488532638015793575691832019821063347841883235811474979401380926874955429089051015951635616715701426255651410916157837710752762678341329526046070688977254724157908372411881771824263727389788192361232423910151038383425432547398892366578965050633250422791222593100031884890073979659952830389367651923753379553716101224293094803515610854417767879371876244991669371255942886233177210929766568301713804296372922200566813830709047874297661748228687377305577318861743563546968443391962265557459361168656796169875323343651263689946706366860263222617872724222419571593593841335613840809665706099843346208463910312227724684643493055331746418013983994676195899171708237417517611387858651199322342120669869536603862988166603828318985259582990685269938424867688911174788684342784013019556709778384402307222063774686190439403442829501659706008828906955722940563031929058536470863273415494903499108945009980412324401449725044213538571384584543242795501657753810763985427704674315594609267009032585634254777196260513068213691461096753863050831332067887615820309209435826410874336221247840060492399977190367778219440221729104075702909998393087385893030341236130426458230103258842435867540602671685887667669925584463745444401146895473740057829952486190118450754695136843818589996887240301897594670191268987994450638634260564668675184364102430167684258429135256870540614875016322807961688827788867316158239571432550078707980176960835225039429719028303949781614627621787098966999403925101417081849289684307820505858362607635024414475702655001822757807008295682037611907371197187671367427948869024763986654005147148670890914879366600954944198881028793101267017695044486231767481224869710039265221394818493035822048924987134946285414180092670080353207831006566116696709340080679899677447738127338352814309892549750207547325980766430952787411566690223446169652204655520086970929314900793989070339604784723862472293875702563440827163828398742290768257438299898287741059226623376349556063258608650065751739661674419062956508242829121730274783892291230298342796252979572806254373279564817425129138085839577157225925957836716923198690678547759871099357574461657498746683145767460955163754237059650153926751297154077267085748799781929671765828912194195965649011288304950197558705318410633097196343944701763941719028809531718462859234053736394058964189392388001203656758403467731649572613453122576622294675921783745522899571085072818193063417035343521782442714408009500405218880625780106931358702680230289764128088563172564313441206222857071787513608214531620217910436906051028785736737860437110841463125089324076432791174259756217480016600087175136743407778530458928871090025492324131150687177841715313561152241787478088740626351999106115192224973261942526599797368916496703057636340778605998861352231898506268109648110382272808461798224736479996434116135111879433714209894838385233822013087161972950328332184618551962714161164861455972059017129709112264202103959424829645677286557433626926596894456415834066092857744301087297556197580464380192462021640479142446075925333244830109406027791283471150039791038428187586723762753639022428957250610099452099114960624321007340722883443342642772626669615494536376549688787867827422988994603839500261867957748907233632277824011922709130920605620065227539928963521869027761840499949747651599424324857508110499273960628802137536195854061857201626646375831942068576633841992099200532362916402076534700367767515188756692349538222869086744092896786579317881518377220915269968756405334551321997460332449106496761260761123666325252874726022559670705228783735782878418973005536729254728532551173188359426809948284872784569430858924019979527453262709024577734884269474845009532240209395364773878040369809483742187941145219630659952928409430671807334788676843193555552617656707030959524842856484567364922733445536665436895570798387566025851294747935401564835178695946094679274297905543575992779944439711338433816269090459657120468140519895962266202595601820319927900862987898443646890359187639264135281146416829309616687383679028738224815915062586937907975978938581349389670174318900762499264224252209511462953572892402500771108269844377806655042413654666367402084664882115312027089510152411848618007466646946601573466915771138429133511721732443729961547612480805667110993290860967385335695948112036675815713636995324306801871108241421072052100781749165740048739411303041474934121743747173437148534706439150130780556309827212727481131644520427113600111390244828134757726291672285056573737531391382768569491529562218276673468615838951193454668435845579153350056634897869088826999944315466051432336817979105152632361464539301934604569354757335805736918279189564277767878371715709467481163281729655735691838355854705901550155995738935686897125604206960632101400661097255793806699729770716389349799572135252585934074935180857875162319182726559699415897194546651568126073263860823620379952788551516919563843731460800527856980335517954843606802576800247357016950888737514869379830855485455209269059232932313601203508082563866653793293173873570177142687238720777602207021195664089870137106546752725326110420161459923143175908327684377176498066439781982563435009943524068375574295392054898347430256669054698937048077727990652823360936896962390560021424098196408081421893504750036265424395239194737404634960329691582276294066453239373770987682778157069519193619148887183732575556080890781536238944375965838173989674525665442899050615988443917572521924640770981206242988551831635836675428332484309462472573308511376085664325099185472317686171505394234081647381552992326507914845164499739055867626412701571748127408345390170519448376876319746310320051132446707467145252591666458011211352018028088979448304827629595010769156418454689471363047762599149722661381671205050601598609542600916890415386877033355035507569400867688149257999389166117150472458527249636083315309164828155708454224309270924991963029925782134217857898271334690438770157426737957260751523899949760114091873331769493375819100438540971334075966110963923274314170633337914351620031388626655773534051337271441176477779658654222903121562838137962887602726861445624813143251036553290611609091022277387828293263215666672900292147525805737552590647804126602995025631091847563133075745850880732240627241905007225569395635878191580889838081054796852657410920138520199843903226270748508256613704299535462969407171877150233688650907231049841032834759398518445610752146590820976662268314447882388579520003337446952735555363952678004414452836712875208067183788336499473761969860874979610516900322885861105430293951157927990585306314717897385284585702652788327622472915276260723820840240122362320262261605421132922011611719832895411118389883117892126833981420738551672586590970602197860246261361052787248986714837850011332271057272632284912803981090882487176846932310559334543848553560857040246047130420721318238257507712189030736130162933516143835569354398537336251648173923728445460757064827716945148049484585420753393114671179331190230407004958783896446528168069801420722011600565387624568317261381641683563198948335072108931623265880936873024582351022325100702421650774737783600465104442292144668186052930084690569658822471415519794544050960493076090407331890364893991861845702337817589084022650193527374254383509045217245995722965641860380398456984006548299685309530221660031870232890807490394888635152099861046363337384033479693529113620594600782762152460870663192200551889188455950082379895740564341827675095929698875497419148951948957531563341174791291710789363221266726185128897017335107355102518693903610551427279422830312981235222188089462880714992663812219046585601855064692058064969473730222247984825731460239106246557448255342072539130198140842170113165064892970193601832443464954809033016039508069835855383031561785943881824731242495036318872344994580759199045291677198836608539167717802732515111749949783492583650901523891117699319081039196809397023068278751345037855962622920188447556668309539473180751065551743807575475506646916776605350228579133814151432080883940781451572764102169786893464275047074814706768561898319525584118781457430615629670633031045588143455298071947253274227230771753933312513977020466545928493349043712847335782827119146609739495332454467624800417892974183680052506987580330458754366062510456739449219251033397419375540695703984334551074466436104021662915213322943785690560753687104592808361887439888610198293489285358974189351818024819449445588474108747418207946607268263196668180485462238736599209115364067526412972461065948614793003453669019813789818944919046971890234210681906062293293986680433949281887856179489029367413651541103282664360232462003938648226567083219641860235860609740791345615751260060620023185487244690525492830175689585887778594104679071005073457648095000524167605109102677481822750863550852941644638235809526805219270594150170694987001977467548721441842233529365369851455650126691382266016859194077825897707330207151786406459992367196334661344324107980768195106740628508890423618176443958410826917409728563976070427414232121734294525370305525411046898575545416453513598174382593492724219645831600804430241351616432824379396928060390216699706062072383619325317387843194104392838472493314639400663961607379268491662583979055631254607474945753054315616247631847890789452620042427816722556853507345259274095325863096799377073117013516471613640284365546506090325681407317985775987313513030692894159435276812224388674410370281897754921425955448173515702729174313117386801880542066435841887704950733094610168183936277572629181640693572625654161132511082206418947140380987025093332511719952529487152466950429862542235444611749937097712155083179314128004219880972340167801294622469990813224162196306938648292246999253871395259274783068932504388960380300508101696805527893959639323356383678146620757917576949432549428276259422689483205813542242090468521729417603064540989712882235637392605617289842168018545764985099667125148118781246288958467917912276191929612620267690025117256413655403776074756915496983511833674513405194108988516389411502890909704302960294485543293538398631693257866837843801667342865116952416965643043210714195211983539567728227885032643965412129476686728423747944036487180873697082926208869654536151128937951430675211112216508247714177768128324639468959774803564389755979557208623274985069911048391280511068639928493730237579199176787804666156993529754290842002978580117912849070247292904025480087528219834509827321918637893562620783472060649338946417607673966012029834308171397784113559651724823799600913654882303903053732372634435310211263404814402661729604589674729001120743409262225100104187680994659096359688629254205274886000213211661301896618537948180990661202603843977843445954030493711548066264208497509700355632988840465871446697517164410689618577687311922399459566627548679240206914007587861848148369070887266809653488496773376104319654564813561298259512700399247597038765176092710693446596140459808274160359298916089942975240744675679580137247020924016824002532586276135000874277842069415505792540501500732312670828773943607529192532457632978409862425588144919815828707662489067388746082833441025006192297568315796819479619108655107227102594876941650086628471540842088328899599244063455827543827809763265474824788905312807277027581947249608735669221957997639349648945612705883745153966787863655323777673290570941222659900619055292068809513557466072068859203696473497368884694956546311908659686290866749377590528515645496217784633357461300320322454048455469893647622955593695977353925212541050919949186899994251417645178695617401620067395810975839564800610394720315106571988486757638152157642882141090544012510335578184195772723353645294830257237683773489800223743037496163669466106408983182864976030400160937243496346346278850932776521329571120284605051419788885717548492901217228741719368614058763632553168331855934788891455340450563749283529564948041855521499305894624891020589022514184689754490496456449288018047192343298803842275374993985586587502382356219952560405782566233815973510915222144038814754451584769985340936671316209464522980957517000102768137477563529368702452092546279642374764258318517351119572987652048053333085827073552923793376446641270080850912722905078773163064468330122116792664714574125698945125616043253477243409096255750433827453185102446818274228132371408419626288519939378198072209270254424600186893210172319380674268132856611568315432679818928613987336499539894851604594959641302057889446997150088799250722020565901976015736262863129207351093119879941849441973938997806552357516505814977950582199607063454889280449139302970067054482325090677030927320912910737728852053789373654536675732890017300803431400067230445161049230687870374117313851168684431215870336426104297788798207996871629915669356506359603539037941375592005201128344994968627882422680147586077096058414837339485336310508745506350929478755157704023051527613080502969961000660333310843795131377542155702496582825022032913805940495393372166253973002025367463783844025977541397542288754654412198266042319127422454508700999989025295689438774259323701845050986391161891896302031778723386041791913430112771869925706102006389433941861156054276537908186796078424506505128911726501166977154233129205127485638292966127372841933668158009395327454640944015647390719357377900164461933057358555422209839394512609091352505994312175991403788018412282989341124864522597283973358954974532031900571941374011128106565980773821360039968932125325582676093287905658181602743510229392620526009695959491504942144926266123030466343782615507568710871060706201615972325023089160283298363743181224313418544021007137675415491386831586276484111822994401472366546409071957105655662091363802859265742906509699360923218008985269388694410876392284181614671602133316245710069189685558080216692169070644312125813049679842999192774321600912540886298420115065903073349376590924131037659481515497720268316529738172627208402381617635390151659204014697529142693220652480756355316393348367862487143540336913258393056746924722771551155219882274642761809501148541029084961760790965881132717092269326544108377597561403890371715200015407341445455240330488504067749882987401338976527552296617626858856618148254715558283380135239202757427224293457393650116226404650214376980940115484835996002052846499181064651184476466843704375782720720992965089268120683642828407102527199907472770430353463578888110031036042628720526399453006308107739381043696959162304050219530727460534012321445987200576794612334545939879026642360917449035089194610536705131082202948298229058438237104323049117158244355620374667261785352044831141566000665608695130055460531528337136762440454004430690889044054531169572876234666725979022023451855980041428168724656025911703306397809152249771906718599029154341105876531332015898391918735089507869880200020248463667280743647943964203816914691902612637367851057033604815842444702003439856526242207617879538045273577731822241845068928971208967069957516260037481811920025380396475227461905736282140925836645674573203164043464798842405776918299361847636557726313732028932128571151283017534292449009966992015071502860966624149406912667646721921446181601791299819173623359894925094717607846606411446042850004794106314483186413581297744047016072684934898537149580170002956093519816512829201459324927893196812876129056098618612096597350583600759051710151380108417781987261530573164932138806937685482484879307616197345749331330767671462200807628367658226504887469896392038199910272582153918478882182886996723789041789317374730124305420331163270738625367906077760272019872633673139364665111896670031536716331923918252931868654246793995582339789129759369194196946625679176617525507867801585823681065621616201274112921230821819945610905822978323157815588665088781121434125961799138520913731904246542314844167134874417588769706721342631230097084297865254800683361316953080157990847157856474432991051796891331179098673927672169930566808553863576695011526255942311732053668653727451754118695118964451234101652194775177225492297410538227619138726790817248861451775800016160629036762856520331211077052353462481294341757549341025571342969635035475253020251769763486919873170512146849212365398164324832228008521206810570967935136493572386701228246666455264812248517939644841542260315565555919843617462866147264668654250604242863014585612362336127465771687544653358117155587293963776339245655085225593105656219952815102454859233717733414761410873626377869399516048447254997926526968710668019645477737400876297606673266354002708377688921359374775405906952119369818749199204645187768392074789289187121058842146215118903238662758152836131562445791631737320730204559554407033101644088796516765878340392571122000385254607234211341915958362756295697116375025621941412155807556872695177944696347491533113159208594624438446836932987623874661793242097336935411946513065119693993678980105703811107495737062904911138210387052218917611348658425975871804608022054512496817262992171844972166071737137655525360025066759344508623477621555552356729233351164806408875912839018197617273350284501526200410898273825065143885305966571519284165195854708122233176383240011595602204196909660890232132650324723859154041398543854967590871482687077644660957596644342296965502376627609459401120619215334518130174146905796865619322857982644456330372059079680496676921768021617936130353115761012029057327762802113800513646450584982417301149739517346697227837302226620922574490137306124163663973696643673768080613950516035604412768103240159191093633318671864225107936081505849803126866543572574600097881597092192764768379186600072399569844207374866548370677021767552491399491116128253545149168786763050114069478010845358883011049598612775493548124991836457071977496560888071138645705210506488195430423088189998168303902017316901700314399100630930528110905092131270375729351985870936293018540879920360999494098670899588031492226950581057437219861682556123125920505399557912079005842933116092260111588880897697675626650584656567810314337210141452777031355509114360603135648080167009524272523807879480727716660201686318243136132213138306801475847052672329918845545118244179247450908382275184932086113357097867762777951118083791226841637240289027351315305341281817458847909808466642408581773342493119742273000595567237491637112910158872496402535414483548436730672134114004607752129903197291044910392230729146650049011310733710442174215382505018451824863491756108873591043490074677969159700589438271230864311932288790830736617531968553429454015246786331604057956956411891303576857380157066768021902710601433362905219483675178112816374134680318225680388116106283922254596369496050623062925869539494186155593741224637352860416657618187746880850813092206180763736712728381467497662452972323597873068463423947994012409026078447010445752967019385778980211608643068379755095820996107537792986364116853281847336559230406081402917023745557185353874331833680417337573007907223953451187312233784486870372638341356581969291854266529033630551384510917348765325183548285785822303642176994109779020562195217857635428892879262115565092058893878809880777196374093150554188410725822241539850473250013426785455731512762846538365305637183188780198188014886015531078217146040836626824605122356543228921603260862090593414897121281823206484627350248720133591598671592196849093875680911838425618376490094700764185791489995262699783660740363262656073946274937198886866338592008878874941823536712480898619053392554436883613569046285112234348003480771588975440338094746186220013708429756429000987316536555658888854011497780893848314762038776108215360145897665069855180621907106482305925344423613668468432257713809683883065633043221069626594483381145087596765466278716823418401431803068085212966670040740713374570029148817075937659317676807905456160913601548631525217950847368973811652136982719073117924227326250527967153338811337067542229970116954650724709435920640723779592724253275950714798919232272288941445991587629123409370739571099557469899400240088627299859851998676906292830670584355130972457596746434333402103118985765113970133107219695735068916469574595489372750120346346746213494452130174026353417758567515995974026351770939914873866792265521777573028891494393094108812522010611924989082607204977088944992283503115414497892854522680159692044026381615584652564232213664142160277468159603534683125276213470517013306944839193513762034754684069207913506878204019026021836450667976494234645743088951239966420269511883321801758942946128680100391618354147975634289738265941211337856518065494392197219140543942448682098612493537952302068643892552808519068034171312941143092678093070237562923960064853225894521525580041484909172214868684416757113047393251059232389587382502997040736835387576090456983739110762660704124288378801071686094237296051581143435713937741114200154940131743484553941159335215258062367805415226847913579512662768996652898184236194810285034200757769263404369730881299034739226089173798322115878723767898935631009405657697422751396200365889827684768064932497854728538356651837537302856471330960136243334969274049305927655770012769095367320570860797701051571457156605242655821722470155443333554216881611823751143754969631362863125010233872230971790747417231755064074260760347530590041054251673559636451163529898588114498679138008217811159188246602518410766795699586088589168127971588629146145134557898112039397988421608357221853513353862025334638439628544214784895141214104079899075740545620255494580320428917412442419730516852577441797246874809865429087747466306977125094569289471385226138257141268096622448051153314751806691006872967431975244553291592507881191271403115307650358260931806130542070605470039578476133516509356180189650336710763234156983031110570952452961322652168710254677631393848169576495159460940747823711608569112420690739011621302204544649732230326346717512385777593536216555073208472646049855559764969974298289164732876011799076647223732788657018973696306645251703594059740306012184356908591034548936400735201267976573221990249453010182056181642511825671520470281133309269762511796992356700862216216815737316629091856328328614358975233333247618924630582139409383382920364457752801133399673679352938005322389603308147822547410548125430998470969961125000926481902273412993743729552667733363725123803460638437653667561800892223014514360510051697443667634935299019258035208822869390610115469751852698137419975792206560189090135845974971899422322020456038703151716788060786334781897182529915400724549602217672857378939236464516593755956950764408167304362069231003364191955866863508847269658191997127003175833737175996700666847228880295799036696932971952666321657970216702738305853681222491852489775910421400604558393754178858606767500495083687018665841759030955112144088196835234880311960890894433373897894376692956151172528980065965794010675021423790562597704339636132866411067239751172912302238214143633274841542461663945069152439096527889171781780496545134760668572106562096006366470881453571954126617301471999020021228140756648826602703554255372114488120740869405341300417043261364351276095747777151754267221680637791676362410203366723436657477119744300343949831140050128512718409706569164253206206726553425669226472937532526313353859606559586088630982686016814622445009502684534382859885116739644346902513671152133235854509313616178525306031070189704938238259965961389449363717823118865465911101886599782239641242822774065519958652189382653666592372225340996756932596363783539321480952923640022905131396872253726676435307754410509587988498366923182178035384277578762058374353811312045425986597944228551524255557569246033077208489971259853132435692316751010851740838882077165653808109574698286882596722169130433866225266942878590253778762950361296599320177176410882498919198152274951030523287562256231782453906914443895509760406286513683133994626493977012801536232110261355689331822078735492182179174346774065301826218549493490503476644187261031833369958134997062527043573962276787280936322021963415645624114059559932877837323721238668875180326497562975264730381193291289943176904970055728751650289800630700727329503952463662469335312140362869979304796709888194300468570000813383173639159307624077806400147551752675906303034016958901094705874450415283994218244360628885186020641653509229070004199352339346769730210268407088655058903361169249659595350498267859810079025073954428369874926837196103996795710994558591069698671387963092680250771872323894159682433734857208697829251458271392731729207822047848921361467304521784796263525057494177560071983298353101785463551770181026967086175769574960136976792838807560320556412865929452707937658230403052942397863339633568923921920608096106463781274564737819551531574767525817974746585984666275687630513197640353563433200443631829103623348459729275269832240618611812511286464458866165469937277558555427134858319488440166281091253603058654688768326596483430416184456227217930200185808235956994500691074554993186639463912117192836913979574470666137597076481722408027442625766192841045951556315046240824032947674689853295647719043089389916823619832506928102474260519375465082844066390484644565196029561587866921421581764728185234724741509449167726531552800536770550434419248594116527273323487518866671589083231578252285572521695316410333222858149767425976354545295272972839156879994513068876520049161098942096501863070955578880764921187115753699547777372790849388479048464931964092773514863319439105466661168734938297279881754265296162060177122057178792645834471854975082833823612283002307216304304553986229571619363573077804672202814595103496553339054333672720504411573542332035389587470411003696766638906003120974466049588559517450393706610158362252126904596969913343395454333569778914509503611254785241286435209993248679046888628387487601233311408687653661297602726553307795342504377466922428698512461155828706160391950395264524741668646955239814655632733387514746970906461258075772449715778298585857427224063203926439349873091643321402446422452049866923291985588152621638521190629245580175314159906263860815438685019723241231120791058876590585050206198717905667674087419510215741693608319546776420257736379403113357775080655207934510850338717518087503179326014468847267233873831880357426652715830150081201357293835225715848853189721164628162543922384633453523747736369281959849760988159521892312699846010295498093971747096464452834570249879495000703049219565436096805097304619043507499232471115942602702345463163242833369453754320034165368154093858062619444278613235108205718415703506170493128757902080768333193441818257304062044284906839720293015068299806603276382472646360968584774252509108006856964090738737359055976332799057721114923138844122777539060304647369361854606338937699284450954457104131712651371068661380211338070978825521337718961459610023990271379222936679240972694846205367467182229222344336288013591077022418892823558231406338772625937124175024838240138889360444586529300934844452113659609008568851190864684284743052620148477585771366704546588347310945066212673259942400208416344493557915152963140263874073011168034052107929746907610293923550832963708233707638368541034399163054828089893016669803261024993854559749475896023958528900835108661733312923972113677509259313927030302571674524271257183357126978734519721721161873739289076082182136928796255847038622191915177979255258674359590709400823832714385970384593899091151949339678485203948573186157841066167716335818845964841468257981190714734393702336296119123535875503994573149560921890239936863735123389914657754166284898120021161393898995604695741391022296798775439662248960955902986357269934460745405511078777892666101651893378879582081064505290895918755881976999107392328026688721178723776067326734523328009470303985500694053110617174535873958140038972552118923747822868147438205148076407451004206776580798303533419279520632859517549116673170794375289264417245340657421244079289315941221238136029288288132684480851097795357122758862244544553759266113917723317303825134476793733936101687526055581053226209051042092053996266608656688494169405396627387735905112655619803537747256283640020404037918514943506168686655409899011812628061740359101051924687541589167265351428012057514255077073240670849461865039846584447646405627734512795910843216154381263115628623044847787526960569056820619815710175442687793351553902200768804190958849510601054979996505926122721831089512988309355410827904091189814300708655724280237102598746702673192031978271584426483046975161852069272881339252940596620042556863325721509195550272639089646784039225686450302604120283504388534160244826912106986098741703724078675476979820822483555634324331203398269116660232234536740919071594964333767105706167542002064298059043080540472448019645609570076452870386003278454685580964483513069490385128232766118725792695510809287252452056406513014118098777120369429642057405529793304518811754006472328603671697910234626273463056483354591900521513080333700577048381519725504399282192505023889293499625814655571380151956485083237780359393356967559343272439133694800253323642227013519460318209698150094628804908304652405667258751555600791677765372962510238469487833000791711920233793628687616841892838187819191517540554234020271510678805211172436118491888748209994696137503267634052255929169613315461337102172943635813269096550142156698758922767584278032810508841287735176838181819785358277369463589606589835510698964729090554017632600920818789820028507921371571726479058303615901059020769365377881594483383090440598805093804046524195969185072831756959958724826448944030738776085152810467671891640188889751393996441068567735209446940814942227240737102890259653150302657131591399019712285217197702918187102337995379256553792587220861584220889961083359816147491586801413815336948463036945375550756470703477111569133708507661296547518436298604332927904847316045299048952782031384888486762292614758845384089477778166163749356441090958401271928771133710722497192573815530985301677615539271646278397561406673649800430776358455967107503684674881322764979640138161255039424790505447542406960360110221736770198399803571453279706039536283994049333618934173774437311685475839632393853500727570777639187967202033295169133245686490810960564236008562685054654128333117923725893056895358918386418922610573462487190225638386630410795405656248592340927273300018879496575493530777747271114444522401372483373468541564980508971122403749029505862483017268325853614787980643011967803659387065328562655088783714313008823899727053126733434409559841295278290826130162397144992464201831879915811664651724240293529744861840072400552152179991814061387943723577265292119781802161446055684093487822859866201640506405786325843874349356900935044096182897361801510407328110140369345363945030231314706735402160684058837922531398226409702047499483140772854432130811063362800955974643352491827578150511081651886272655937410642503063517400224072389579547898883366951057488661352117580821111277856937939608945641120618748792037162410633059607369496951428841491663725966121187264677500358547608453000938950715301789163598500950570751898463630900707706222719215217906345354055242795915743322859717456371529079554972015856472209502438926849232571453060412888856141051624063266938673772526343564881478809043180316221948320312764743701983020809722485548199669341982178250788065449966451678387915636122154834871065293711747079773498730497482036279503572133325403958479485101779304024801768106643682711505917977030396107197609352773936186611347999134767488285433872676093814971372906033640989222866822679894986632623758905484775223665611242524970022842532214716375175297494556660402506792080302550283945842263680088237748488921482623184068355723544626027983340869718165517790443335565335582758926897452442842925542611054789880926770078908108398221767092116938873542246074675801549520071060335216934313472980204376416049087106886750140565939090684687179318328043035692751714824678324122062012495305730470855774129905956291716711242370740997168410841744908652217285477033646471287504119617534251468659831324478639894680985560246599274027988128730003176154630124696611466431167881781474409058503244696421755034486576839821254695193002376521099312599924263699916582250531271481259103420748685402660391631134129458765351278525302498128863270214273339232056651662381773216788076367762452295835375334162630076940509404904281500229814597269879890936515971624027449640257082344400704269071499297668501942318743629429911673871479108298485628000021894627073913954452040747986491653508374667182522724194687849449190410317399185568837189625516730729699375673965531305439428622059610044307003281919242859545178172069604164356377324575010315802721616971261280566017425293393235669091655324222672934030990909868676076053577637917174992033250664709806282417452621700625603712927131844418003736788475221096551591851942424586884773385552481049205681900989307510070245925451054119361256273588557304741792768252137966784921826693051062980978822808153214273592447965240733313105457971161506974073364460658800838670880527890446084983183950020882445907144148779661007776855191704029695614698639973109221484651053635968442091649132624287414101371874044019284969501629020829100271149976484542127615362924165999801129987277074497037312571608794052678946882301604679939955350021396491010744028479352477676903935860164756051791976015302561916554761166379861557625650838823239736209234651122694651617805785644748313265692491439487700215426444879634011949588705352286061473596938147120530563280194593873346350714571524366019427351576664677129598101509234697639277833337367323014433093913315187121552273329769647943320662143251936470716107459295587555736121188674882870360945056224279622436006315487273418356998353026515302471660735728383925318673759692768573988296434598652413191865811593533999752710200835257062890306242183428347146106117185157729405761058634780605194680808952451762902564093270308755978423103653607202108051161744819767695219523442236061919507491290249864010173891934686212952470859982656845727777633927233211730814320476433219471466382053741691427593656353352412754511484431602861989067309063387818879921304976878343900731698639997386972586372619122247110289005456836199880394667876964336406174548025272042617742612735626160643147358900192624842620520416299917004037376282041652496442558403465373781803411447259387013523539552301451511202532398551363284454930673787403357916420804221011081596946694357472343917589369300892490753576227041538712339081592575415504509010708694191881477478569134623064249381067573727495124451501334732839577187410020422691322214168507332885281647932247156804630153948489637261455461266232555500121760677607268646983685795705251972320929546563249715030779549460695268950039500676183581803612580671289371052792539004170961936862150484604197623233930126139421803351051447384947651787136083028015650883400765248481067439662243011046852085451434422099961920367450592776414232701244770337977424200645342318773865760175157682620613397304915705302702881523036598356419166532881359609609414824063541059753387076079722962782247479121886566704931430286459009130996809951985314104172781395781080221802975365599174770160038706905461951412815807864872317569837721680913037622710558947323734218982522839381269233991381376440011146366726470649069453164832747267744194587385457446886259006564343903003255492277103927325162271498676736827764917429592984794459762057651079763228160901517683282473409397258083706373063047661645678327959839947160705058100784772882999917657329441895585154123354978502766157633485891593293831493018962955144744460872811884967014135939134015985964341040476881727193452237266986684878783543494618576183872409194623430714640102132785100654474913490949531129994693167448248706122542769638498503146726617120339978839906390109478640681432431477674337207686255835304181156659340298704350458066781982371888107027012796298531425826206914651287594068760630036256956039794732439982041208731632439719702081344419660877101829494651887909060717371474876575791576863553367715729845030639304805066860115698904707865160560334496869863823573217453126351932088101119301488817014628597288160382492542513093832066707976925796528583620733277671387403467431361703319373875323470011467520090705859086033552304970674126251209388508621567438655701080373530154757781664096628340999727801768925668043239804199076731332444112239845968078486947069565453625306792427543715514263084748299714850803739188848045401963659617897125410608081220273509966449486594970000324939360463403808528878241752410219154602796823400724174460589971902102029638714750119870719793780307244320246109085275858092466844166354549485750662310219260308237127948584133194426479346236083714739652053336325645680326422930929901323772664859218062952583225352681619015005554505952839274795993020613907195225731419043785808296494033644940068557293111011018536563740482260275256713947954770685179998883470792784750869411750180593014045874097039843880220806052498571993683760421261227108610373347528543215715492653767593793247829142791030959432822835581346306367054452122041456927365172406426404269330167268786697345377360620439324866460059287662793772814769313661016683026786204534000495788860410693549160637643329313830556286060765843445924807984315748332991173169749871334275582309600729802286770943514051980707906785934623714614248600798926079698241081011239645916477811545734928250785866435623804183795468418209756490130661581099091948006379397955013481408001663911446972876900647991992689668262504976590986678698973612287161913480473512840372733900036000765816393856498837070889123802979220945984754203278832416464401329208682128282315443235431462965663822724387288429945106168861441985661755449560817949496392018626960506926810814414337771734060359576948309585745187777374123038191327409350437120636310572062241705375069913012488605792038873839850260915705194170865692017027135156828311236049751693334770149849255340274712975237563696453777012724489159197531973327161733545973203121107315154744638388538351153665182565034784821449102937286729880479125473607967337012253536113247609040213950099082694284231135241312869356808716837512026890253849262973867922106900957317308325439747897454146601428329998642155178703004581617220669617371208724192519774263288495194878835904602452587320037751711886475368251927607290092555285537881620440216190911055645803045751863739986939645497695483689353173193756763674173172692627825343195176055101556884596609209271267548862474726052852652304475609731370887194935135405930183704107322035156828397008311798260770201542115713940408195840325695968752381498776564975426373155360683900773390974516459123122685411290313673037836891527629408089457454441102794148032093244389120542043063793361376438802182828685570685468114405299667369739305958633778380922018523221230526080325167789746473849422658454262299598997753438846578825427382527100951719610749235210639120475386840434876623299279733781957779882127421573931404469404748534259722311850034286757654939635589017229982675486427628916102274835602877701721871639215149359954622030668474057603912140549801006209928457003691593456603409242691312625288256470930048463175906937306912301241614044456924378735265199573329799686998803884141761514934830780251123906244443663851377756830963711554201661643248815910273675097552573002526686356976231675282700110515691848793964462491997918598553578844077284892257773992657016414999821185743526056256075112979654713772460221167132311274718161493986425176904818645740341928386927390708529766294309510950877701707021412043644334225910250336405060862235752233183351538937323471196302839032292461438878184807753672884235981403029995636667537399702072691369867312075204830325881185929280988447095188592840488708006817086869674808915480751151904485421730295011157175148858682459558926035158596179392408049584417183417109548556131901860994566291020378665224208117176074082551153703315036674492686982262621457747115463473993246943652629178839771939553225585170932894461352606713929354764184926054104802775362251591924246643018492553997702811237528673183586249581597069034432686972087919806050511914341284000160401507234231723411173478051489805818781976670389274321284201271809998450666729062519726570919425965037971851180446690865645090590749768560788309692192694987430945178614919456064206510149893073256681344427099703694157418706171976046429399392258716671026486752140756567648917743450068516984945005799290642944646896746643722780576290060675769428251337491388350229520361688856216342200804296525621335259929843026530328994489228164250455684761751184810671521672503846387801980001862879583539948432602441065919351724815962050655966477093441404071982980266628268943305687209738299292736422213029355234001006087124304422082837179667258803452950592780881826154149363304284052446972054922017592679745000587670787099447526286471218540237594265767407601398058238949035842638542384026577467231378606001083540914212106527398087696100321956047963620669609998895997916995370261449406805863003384222377814516070591596622946200871387881097741901309188050399988450380125633222099758776432186212340917906812395141737602397257713782277123687245748146585336803857294430376251003088772423147545104881677620220971482585201904437407405133584780232563236035917073399545980673077968799334538388122200588086054843846510712064323591710634722082028130612028822440289829288917851663978715261709149676790889840860107769702659742382036565679248438643394435925664907759001690118543425536567856361113685497153729401015860688948336282083986340871658512534297023141687313872723798623153588129987001265087763272987722015345840179652063672642245508937850918591155406746540516178201357505378928855078382354139781079371975661540761665041188330110169537291727919107998284054213175725246657557825442917537973638454828959840265155464889450972478638199357330128140281786035758580080410067954320998303159318653102272932399254418866284404307047306786450919216258129152662073971003537622976788813392831738570685538382060335295782575868332912599734224971403368624863264837218901687053170056382617469934289131632667662702050950460633083974768762776074060355477292676707513956253403419618380275775031853944875363341171390989248325154074581179836514168857927346691041345366618683992738371407929168324787332226832376085194723906037019184449452324613714148599813334972815441196934229053717688466177718453110653231398286642135541593323303938649851288623313569580548603683510156774424732820947203739133467686117012263649811527435147313037826679571089900298305382700823097697938429135906094250974423375874805678190833793259299861037892893013234710996854512619735629278222467383599845674468294161135336162116918413599373810373336242818004102140427883371066039536196005465299122353160950918806258919667188682457754937864818429064738207658524185868750473810015816490935968096456799944056213928152933308827057342028450881040205725543413777039703260051971559268599029389190823878493633463085866925976377879878342917903052429124637197508058839737125229056195233792994006903705152403206356848289263718114652372886284577526941033663336153615111568411893521373035614511305689405433719202679126963841359774409860069853776837524828130182697689587307361283934235552832708954314020173900021457789346530181301551921296646056194696100789002965414911539681518282739137933397664948747473321874185776275402776365628481584649733422449041309432367078133824776723155129664094614960928395339386416555617412641667512686345747033306043320980990545897838634405949259508688540662358863770547365566315587381087495640005683716286143170405572638726000436710432684312375936760314884678116861236083280642090091717291530214270331329538332419415105201347753599069427208754387314646752561528248583872225390906996532550245704188317183086483566721129423103585999133618032821643698590494228665128528486138072694145862616891682013203032877138041640250912926393723313919851398796592032803035095969939082735896174745464541682161858899594286971091010031094425793584800771127071154812433981292478112058597243612008876661798121410010616881162968489506588149919173802345985171910821249925357329552821415843671809350837723322409029674443119938941726788594313935909441673992184780449736109229507500675600069114229629868541133703873714794912456685190544696603781886730519943182644013218921660550904644927493792450498350953872527908543501922905405301771949366414539631150996590511664271879510300396787155583205201997174218955163488370982534391851142772768403442043138416739869674542156836823999318584518397462469125558660530500115961385912649955996652484886946520755375358703716948656265105875218534208447336019490300261704606396700652681879107319486471062576933628456156335401220886811460791435345601835255286651413185853441460077545349168018677977762769476843801517236617778534220656307749534513156928551294761406276862874402307830755481539296090610332917297579721950364669870035501134835518708115020871723179632377623924371553839206366990616333767968385141549208162248337369575538620313909754269271213907317083487603823039058607454564667027336184956154248918919196731931126868221662749750342736308472665589149379288337289426229182171870278342775772620807192506277634400984505504328481819102936283212070670846913338223754643809445507143447668199340838929219027607410008908700250448133808989874786541987014920207701691395567321750593528893221973490249807344098737624570198659809999225429932068407850693988198303669255158624126396205050193448959437224572478447756815236676772071701841427678254502690757678126581606009501810828148621082378049578449675724184511477968985157563543495873059087266966742008285397798799548503712588819717744305517358171166335135758712874524898954866814021146788838212835469007639260979353730003332508507206949665241996586743771402640334951512291786530585198779424234020136044416464603228506362090353477277323491321871156120187632211474035074109580946049240396391589879288587349080573266978863659038609526645571265628298344854953003013362006018192679432142683195734320726336486574496249166514003770794666446687502265184329845204004423940968098324275164188569727254860230007789514937398931255530084112458837755522397032037836775620122508713759203975010681470048942104464865732787999996205484339598133000238383460713199259969217214205306618725443652464548023611815966152265020495240620819434229537560953884012931213700440430069710510689903680812558691968738206443865751309370430951223886882359633238382055761646844881933877498533323860117408610047786167264303742063175370077823484834604442187489148644928224198778835372384673652387398507603544742989387688420544585078984084999585252678976118763603368239638083395217762483570368358263374483868354467258557624996115332708996082895080471260819196759380495244952692358482533147400532615293934231422701458460831944671189487337548477197408566159505840652644831396941808633244809218249312796171794148153350047163765307413238013996935762239658475776712119655192273578899598035696539523393515588582269402813419517361560258536631127710980168898853642252247452998747468829405252021349198472392748375160716954603808791052346955765607554384062989773581284375558033544860669554082613392774260907800465558102646357242216090870573711948742161086234814596721029912107779476923152673967901764294656779314692527904972807658853825720102072761406111276090463092160633439111712757931025753670997617779407528221690682655866641152005411271855138278657246394742224670171705323304069388413424275123221411527840407929406419340850855870607767585580672840490761342007376948368135512280020242344738516664387336133576684695704128146193974561350266465881835869915554838726989034490238554888374069646373911129097371556017324967967159217157694086409230736111360833024851416973235717395337232243126241002203089562037229074984518038404842997696264840680283558784154355568335744074385403511515811215801842853936387151565096830821591120796797104211220739194824406630661656225603756108910983114278926435139103836900816280013803021351515986584393917876529300263568137839811900477465152023556767961795197922616751334341913208945355887588213173242567844544343222908812169883538752328217465458016120231626244589982412132460311614484676272218092733585659153091642536617951675089400274502913650063350366568282725922012627480621211624134603613766607597379230585100486088730075863269941353063273568539208104213509751825241766190152872550579123346965293675486577397576433259047969784920351024000714688208940797209141944160018744764735560171163162290259604634510026779119505033175795990292895526511989874805304523332878673802510569982275273093288498577128176678644081277580383057599618223362083214132249466607407337794260301984409267929391843075113883114345532141677502739313882352200062990714359002980372640564230500951419174799465667446719518760628565121092666355368037307832103243558997367393564296858030690453463011619039639886817899854362116867713541699901906711063985342764573265761581516366505813257520124454975127795411443501464673861144419558601231507804566386111635622705009382504755313220434857087250518067341465123445771066164726322701901145718295531792893965444220483334993104493286280132457764840711459351860992075728858143636236164401437440403572642158216331151982000297469227077632161492632019713148993835028093597892482200062311163037374768375969399057076391710462078965326461325993213435655665212117895326453511895625310932614706510349573095391560395445717938593834859446096738654834159523026228079849521427757382918363560955080548673745530112923530568471109447047170727121273941259944102560408255225805071709797778444339382012520324947282783623803896695146493169639421204606459867438736077105491611202550396159572988826234956681828155840812391411967621912502780934754854437951312348190376471205298600992989610213117067258360123180060906059370867645923516783962861971683169134674978680337514213412816608275522941956919652784065162261317654427545128702299225472645529220024860166666304546295935774467769122836448593274740026433189810881674507423583631538075388564710944097792104088188875084535965278028921056185265797178630733639601900292693843199836910192489237290889700068661599516341258280096843887604450426930522949399475321073308015302508796763210437769850911102909523872636513434966405434842532373199661952147561348845445749226986852113444706182311527305157217525005749521821862735446882615340765748805945328515818171574897384962328074921370659573496588676713999583845984608164020944965759029853946746088038106746297159754179394700739168254474878935161223117242900548945572216382724576036380215244042386671231183656084820092917024964388176619302219001562125715022332197172960962890944289547128541245627244879502278269015242494910043194721348517787893255450512764273270740450381620963812415999382329062483820561532177980776518214835514980934119694019897411665451363067952696773865078774800945525964460139828579714709075072059833170301642310595140611958535214597254810282160103615172989325648745317698089049871052993103605852327008148995875442882830072778404494029035840023663059292191599608490711676970852675549067613175550221814478071224629333318158056318980490336024257287948337121409777688620550828209945345065574600456094340568881741668824605403633867240877984121491491501763026722649708971708525557909575164574813557983508994667644069592221995783221721294164826232139974808687512303355538913385644248094684466446721666964613140345991907527442825899470010066020203859171325506478845624019234831393517912089319062135273237005050671564424519121561781606319002244380838107596745660031034330369850287130325150379092422723827931515517611194839868032804545634075512486039581030368237350354088357075181073295438345227371544547606481007318434530763177989332323379890838813683937666581400495333642374261195968200484274578693791103541403079506116251487967278986025320534017319619230408565688005037054992506717147007180261866283742189410037569924930297628722956199333614681966713646335411499556009541490818348364952723727228577226697166369973434329570716822288797957678943213799048686839328344832938506584200590026108490307238404935295857853036002523163599763774132006705093482596256366042400105155633280457860643548000957075237466207324855450039976788901819898326081564005283603667787317502257746084907133216537313561418799422101426080843999114260942993070689799925432765708761169239314554290177005740443755105821291925589201475942325806319140786037415076727471042306093213738417104319101302519790574587329701019802168370278234450930304408847672228766588401341118196976725557144471755410970484268845137757305220896866522413729213658272181366856731131281911773438612802027406034246412965132255712461545127773075274172663138641185376698529503073818228867782052723831719792447969972733844135784958625698877735110840138023701192921732579799656631628329807418740942928528724690844046843709011942622383578687959974909090670494352277932166953911507132676354078768686767730913298242326574762440037556337359305816760968277664756053487301779488151215508618978484621497517964196558234421685493753191984616878576073910201820288496946915075289668492160364315776217967868248155534063973166189060399258128413709456161177672369803289139163466802024866206973998428401184969459950143604662175361512255021787228373180023338755337478307611477858233710913965189087060065447169562099770291817305858921683120376681591925436945296088642224364209417341589913141008717755493545316573024087059091131287211563352147172763201958247236336110300593750698518115264605316847951482148143746152424404787315716418271588023474831576359614758618242357599790339435071822264062544408190078392445545111113723757967903941248395527374150209477055971791345671728277404440432190486232798304178041838714580298670999431433594782125632788422396372488916051543427734950604648100714733339179139559596469827431641406799128826691448688117006034756692923570681625750509780820270513986305790969870282840702682047126563687313328101585246816433543424092060930624389770578787873576934558570506008868803887936191283617284094595047795702797929699493291319402184407633160635097899548745180492525888820037346108110106152623175313900127656609781935179823285507696344792167638806703693543695491836898755799769625038370978367320635543282548579921314957553063482894742274592242541111064744196921227534551497033308878216444786562511959835654364777891214406452171741588755325861346998992282005692189269902320271753512747350452817876840091058011523099183261161321492770297585424346538156855159135989070710967153403617490826943991106921278156783504679806956910644976825845091188186559000465336013195785528668668223055661375613734958680904183061282400649810505737687455446479004413300920845613276801761817490579493966658768366029040541045652202936063609864954251678765890394096661649791163307174076082919341763231902598677294666988736296929334525122097753219116196054691498410847926433775727041668472797111863705159815664079216694750472147961364301646881751199000652869100116996629993041474755589650765616766364180826931717252212720422998624150336651768998206183052478744320476184922904774107924821721111962388310877244384875494227780746072780674032155718142412292622629870238606969961072316103884683055693049293699759277323934088276613608494582796410105707890597651823064487192420505749827383910218987218426864388393687180918358478738742283338388221176835583503275055551446868891546353684498975865949064827445038917140934018656414201522479469467322957937426694464317706612849803241490460101293996591316509134966052670082140097196431142894424939735328904882153991910821652549881779423646691345120960304125632698223677224594862536971092638599698856707347775904681553324979591731945841549950756229495528417623620695064197163989268477259970107048043449076654836702994192413273377972953976255418922492378329624048635642954317399871137731864079954026503688856342716749172673442384393161792117382347743075512902673570692882794544125255120458158272196454280133715400229012197753331951769308029569409222509537630754352599823954669124594263565391494760477516330387758747401204159029580852006857119518318002978134623868107865362775532555075418675445322588564793352793615401315617186290868221554166731186137761394525511149689234362315713698978390201871734235315150886085550682224302055503754311335053054367270452730971611000966721403732396396369038485813875548078447380489711573366012541849534814444369052460480298560149554729855292676000630140993261490721583709192637948887970246837533921782989542017514005910282250709915337213939329823495290505195296388057092925563352488136022979881788900166955196041752719027984033177672846042624890996855127429023519397749875428163139171871437468719345983001607205874944275271632414304087672673961243719655170611132251722253903910082501637182632870324300181600524717624682407131109838942030053331513510120834155340021830579913575665602936162234812097985827372159715119475393796630864093877920799591713425834767685721669674333901117108582033196870782580638829753628769959881542168670166654945384555054599877392390896151663816348005037547723215689243879842542238991137046209557898906790779306072246893309883618403409041509528254858185724562080846417751185514512180830714112786066466205575407150939935665364191780094218990451016528464779446623321586280800896807149699688820015392486825154248626947540641785476636539981371683217225142505581573716604644130756502292256409503302288617118702618092994841503097557912762730165493557245530507199204024517227041840063217909096019269373935434022343697217939930241565389659408404195531754214043643700232603948445369608662818088449900044457479039649688428580056029782939374224261735755466334063276812855050838268292925391200153331767370711915796635572397731472772505064187579833517083898147243559612406255753766566616258418317404962959125737165552029619054823786266176267889108400957071758217271687495475304954867098279617902919825747154276950583803621129555653210393143026424758496313905054873488373370464990196408783778654756973343838233403791069795092856821393171761174123953094245312770371653380885477243595140408697949171573614151615010378899085064358068820361109910959294655115648756141206026601160087365532779522255283424899850096633487210325191071993234054827708423428018628063483342440856232587606803344170141245647519404139623373436433911703534386166690837909375122982491885815249026875484171574124191835666599233527869928484526852428142816682712416489019706597326020508561489813040262398014812933029662206270544834625934872266246850834637413203082320481710723262376419412606930281431085217895711448399892933087480920382984360399307952284983037210841636851937299311755264482109956334465560017797358178676266619729781360450973362276458283626743416171096537316541577688777599288472746696839871191091877613942294778570073544254048153158067013522827751214430195026113255222196113164476771458866187247172479349459383783852186421727697355701577038341568580435989871532104464895996965765379024522944695834313207530867804577326026607975418621596525755856589018162157510843704854488735301641598124101818941374099486584016011039638431795612016713833338707306192942142954861968260990625985529229700070912259397077125333764828177183942888315121869926803971878655355276798498686260284091472652341052751627657120949295306370326302739317478208418722561125591018969428385014613481361425364760410619233950864898931274843885827028810624229447837883168107747293860215761718684972269669594018894541330007867874253582732498186749234712022104152424665339253463506969621215625723263225803985451980832391387340490580532915946951920032712838112767511368180219953113524367725154268471913357959424912504098270271921526111733470952328553199956435171981028042755739439552540600347963518997656421273312252648607121124376296140087732336413924400226806592131196910461253666463676201645411812426695762116148528268870211931085126388013761060766938368738900380885986007939446068815567441786593313731095470405496041617735905169921713710606355350090248793016839943080138593177884281431474263938310859494359862071791453609290487517244454055617728941789162640704156434636473035571845104681238962045483613680800853266161054643896296162175929319221979578750537334408184670303301227862636955583027723824183919621360269081085717898021108012824618678260876803784267025188831842323176474091409626819024216287356233022496077599044653449779341317036338394591043770290161235073286116068999785341530343628754585446832287518724263949670586900789672687243628605058871672969800722141656529963988935571010621620078902293858877521377264483285015591831806547226201057403008358178990111595523579320984214265439291231388197782061876736492053841454777316664353023226020018752914071565155069702698994300973290350405723876813728238901303543302253647290955536099981698861194350780698420039859461979664338239983160553332789543448348729326908891692151640832038411205584518779611096459246626722963549800172726073546922188823051033943757873075021979300108223818799469026290200883435204427917614606855282427877211668602561015959543749111717194609492683922336195252013869063523434540470535817082630207581533887534284711425497700230710655871225765033878395994319408864799711418877927411991353268145679891656952789681682699769221698049023878620234440528371666734365126823396959084061375956258703150058546209776354077945655058577368550749548287030032763923271496221866367801924785704908449739097194755417614123918884578098076284095406726240275314721575280994970718130111750222698318348543773017033229889438497825777416847807105479831530711374036394541951514155894595097181604792471043010569050220451822560435136798148154524971641380547268066110929151422387719092452165492044906124556781953184989983963343602992148210902459257473598638777788117047998640157967744056941150763064990641659695313345942873124249194152302497041991023078721817847784600846377366432410164881405389962898458150217873173225877405811456155983749669661435384503354051030553174435427060189426233452898561414971668814120593999977417798510440576139913839336918629829948085405084588125023449841614905652746543769065851149873648549807708736786903093797765248475604524268822624863079342739058483022312353943015951032437488553976230745760156923447556707644585826434531928894264444920801617288924100239107811410736313603825444080777845091844991624703291593500107137411161679446334268877979472656793660065526368378662312610120501382894666318076495320309983558059601501183135412010089083255174680858867423339514574389006310232457308461171257240442144672692153793389750887804913722268196322290183722318856773486222763267702193615027151068740913680185365524728317192859537293951830834618237286947458762076253271500923659664761232404365900216915558264892952913747243941546733514479409429513036545039306652975556321650638616860901968698452992172245940870291690010785042687687972801200795303688635865061529652057149018756539075467065021981848639532170443196720243799525286972044912741054727020580873869729531240139937925514773259573479011451336111903998269254709338710554386004360089042812981006800333246653151818369429072937778720151733193008377406064406227450467275100895453684067647115996094067650582924275859555367305674726841755534387723817848905195654632015109426532640568752338555600139232926078544316466145130642533749530249169541637488869292020964107073044057627512818602266307829960202461399040748165254145904739368947530506776824662542303641028900480279108400862313341778990084527332834349014551765589191257677086037576929731944313326196295127826944409730230643958614333821927945448525960860159804875478519723137658141115781923312601686332982076316048324587907775848141832696013701652623668647097111754124406955272229438584071040290488627617400119164777264152469476723943902907357809450870380613757910342864959598544539252005752053972110296037282318303262819051230606718172811325812836227862698581299383209368695821371669853118631788357568099371779458310048643726533507757623450886293653053750924913175640372706450663404395508845706147138481368082263227064276240990232511376675438093863078928708054766948380685195621933241316086162222172293058921779784824706945995710312839898977099262638503651222427054579152946501909903314994454842715520311158765298481906534266772458388677443582223557738831293198330353969944030011839058114121311225027081161048455300900043613270387869652634869734721797987467131179338216977995168185959322759967686644847565154096134701816265086978391798629636135061162463224814776965534767085442467182102668785846194499910221247133300638901463744765638939157358079747712702230869198857990000984575161480396967566541523754164557901650945496832555762210347529137430254682844998536007855100050818243989909072715651998883802006420996390469947310371788908527752173433083076291658952369702153864964283496904359670041612201883963367346376921094968055386235993320223485903642981280285274053088050622048717652906912630384639349099992857294489737413473759154078966655219226467369116584933497209458206691615506756788722001787222614918565533314332066623186641270787918709416929147959903245018106643618102569178432318068051990689727598964170957071220766921902822670068168194891856526423575050467795411360644374692919176374836341019709696722527082850156571105568856110269415776817055955606746749247757432440003377858310493054478247423363826146997179516918659944714145806601555938998955664624619202625970873043648366752257887876569639317329950485262938868351071345772274415258504912664147142474728109582464400173416197514559381901154897032961653037039934714304740983651791355706549668945825039065965054098404916251679242562753218991970091743761857658971242821056800522019262199693973577868472335858367538508682570344402787137295062218002337176014429496923806934900192541466230729858788696374454383258750660567015338417682619338007246622687901455672531395054818699218727711336182341029710271469916100629215355461022493264866366928512707876551993221026562264530980982812437943167314477812237315115136655949740297671300705487468073292940617948110440637610235598443222344395161137379746498862791613296606601463365558698219164660880883974426827337294862365850475648469400514854844512250142900630731057307018240354551715275672845221007498529682817341376443273147528536842203079808340712474281489656549230675939207869511909469623547052536738044895378298018654614288362615794777619604219487722121378822548510618680851562311943832518567184251576221038246134220655354449273209277547206000132028969709280715799378271609037922623404742519394956906521920503718188302105772158556913214394039639935403036206335215022167467368483152035137154072360869716063894824457556923646310952819249952318640656103936397678406911455428042865052785539544591857149106825513414379056909463880037911172991223743968144527236373764078259243640624276069065297510336262972000936773582960147147065006055013647774210327708927446515516043963504118063177867059811749797901791685006989020823154562506539280235660596208691181755416564060338217536656630197443096371248442583443338539127290966023013151804203628404148316999101363209349254132316601914355692253216645167174959813647959146187684599735823044646984923393838209124401359550530315670636462694924670419752881003775653996231072356007726465431266472766769608864474180769530277483865420593969192527539181970252707129720498263972252399825909803869775794458501486413719206065223633047302064533102387837437824213272549926715260219090476176199892147879115601859271224054700189818541740464066174227564271883184868517626863753660463050449890059881526224689702682496386058541267909000800150686652757992371572263530531369350591567970742876733245513354526560902728864243845726822060519158489066158374821014563730036246541088140556138001119609368089480156139107808037968745997700535426935300663602134191323276793247818138928324764939017448099070993777325505784107684961853512655706231636070915207026032944410776917263731522041450552874748130369625630409313156919609157498083208827849278493584747149389782454108700719696839183301747622590188848082098649491829366094454152964612729953736628616240120832336962339133187214011941270562351495546597746885330553341323211566960912130918101117076009955568916997614821152447385705097466195967603757829234642342948666532536255889294050335392597274484994385777301666624476592424833406068656030408456006316458382241842528322648318216590935860408554694426339789974647118165621095877358313131841391857904415629590397515196892473515599793236228878656375860312010195703740894754299052721703213556827392770648948912217756064986791566330650916841982964638858832831237154868040433300340733580478891862927630274008998569702734797913199248509389488090204620993697458525105487278481198637269779789778013474473674698335006786167854180799972307852212035459115074512307184223984481161264413484632979443159983450405010338639427720146883929149767814245243377691672322468778953794206572413828735703890601857328253826888218273573036397870309062168917141752418842474257777375864436533619927624409140629241880057780044738135518461321955459527762457357665176517914637641086015467036689791573822600883765658977845128058471037572237874473268688177747151144033370731372230231335306038558860460005776660862130257532456072121276867773148663799508117251885370684331980556973571267663114063612840201895476042088355995139537825985529240629980002827328208515658465132522870945165893459700745433840178311738388447440288542489213255610522143982013841232713315659241285515511822628083012510957240422494128227169717688761511610189737838354172416393337746866143802767628237501703709586707236833739246475004836545535145294724145034185988894583714755594590165587264691372693165519143838952618277933945144092300709838518967498222947309803633850064629966041164949273352974221481782273518258146754954286745747114034966295220787564219808539668265371429953063604168831297535437550410392385971685757381195885363211114369464590884963594814231533504985243382423820131056756087309671840672662532960329350156235247239145024426730310574294398389473936234033434598914472307913507002363051006765325183291754105092454305728580044273658863129547142172228253337780356389641464516405016287537444277627194384652810694638907773055501565023170728236636782055865505862469104561103449241660522318211322901717132809590519007065622041239487582581549349047099418235470296640232982825563944455387829540029028712559179013845842923914927387044892483056492526184157799712631852059209185794251087235550445268668343685499239019008473275782331783879528550191744244730148463174905482463215285531457852807872839925344621978128319567027099891895569241512968916843295232907091692091208914762740202155361053501244243412930513166577325436791497204314910484211865798648008368832880865367669431861609114152535625946755839303892721085354684852962505756097791545928116147339381947234105458777445599601210977794175313813052781514735868069579586434911628094446404060710784401485922916925037141459413400153218891794938099330102586204805414688713755238833028087125326825084286169448475304046791847055093358861761864526110591733178665566539468493363354582706360090321521324164989987385520579443088300653859579501861418621830400453791710346545269828714800663093836501415372926769371903934003566361810940406448930625049292569981561684740732869020774546364518123197836285566940358122508223016378045453612295285653216517019807913617831377059030303422481191989004834980110956467059378501794393126624479673765530891024179665794756437804509302070003677482521963757998341116295679019299645892240002269057905108819989554789815283178537658201437896501398826334551122048262671311253019704005826113029409199142547672624364864482598890829227995504360349086970348202322667157010463657072719738873070041178099511450938739514610165311535952326800699721125882705871032514723211353967969808316721222827441551853606437618301142905053693681013775838316093213506763575278546318336997936584028926266391063860948776369780186386223182996827349815515173843290986133922230338214960876005578905413012545766144067459559456051436896965130975758627070205074450974745693214425660048717699352406705141251123385243682903514248630786319704215344682219022850480028352648905785736788870038681906003038895674497948332435440671375713917099762095493981744988450001469618727981284548475803377072359378765476581718171014115057118202509651525100453973092435871590722566519892073899247680597379055049269345052940701249092383277195719354719293082208507657930682065622568982536760129752852928102021198142951673560130375195982076881472931580380165396975352958378434368354267675815017615718441349543430742566356448578976854079392082770440493621034776728577095938799335907678373518098205596416543263102557884854537463512554090924041079712728941745925569870627110948244598601719883805203252892609167650007873378570228992032562156760349432013598171262543023020839686950653933349743232516302863751561319781412030595955601639564249777679675777360287091213292821260729431316038820780120418478165726443355607420974808120359916982317795684456543719102655946434170774382014557322216365783579374244930918397465351259954844175364929874060627214203726316928086980888436088080291508447943854941844876522398886980177544448288640937210192666730588818269168115429328690929017560623424472114993194078547262997005132290603760261739100800357289179092011264460664762220079142834446395916030372329745160068092389939139535584361648309971594757045364926408203421034351842819298822947335345827454705020860029719039293685242164123382757567547829339966987734871202025580944457917282680040361653465218342808615417501263219084534798931575434026593367012812827311388108665124593228466600565628445300826583080823625000780195664193081187645983343497380104129708727129042321038325938799003933604418859540916309969001274101602456396779554440865019249840854297112204479506554535531624043961114484408405648922045372573381826657488253058451208263951326154569723101976865031710668839427087912409394486222114765434208458158292298443183255674427890138320550734501931908535990497592794464710711040408111752219279322122837811592230217204278976599789838892915647088911167112147194525902967439642649444317350530953386323917598251142879156968506717982372826717012469406200983890629261581120420721010945334865631475396814846499303180050949176817400442004010103730923374429233782138769239413420613797024465056649652586560292854583111163027911946872765447886934517662186437133547875265691948475176941033177762321743154388693697152781321658691914827983178081389294060823783617577766461158674401614790282608992069532879180620205214200909761340771514230668733181516704476079294196699651028927948238459539755778990286972948670049351766753923048223964035963507443641297478763449127587004225852725541893052951990917830063144017969337244470947730325738493981729833499953059966113189567070720526851944434194165140748034966530749905926291331408008158888161301713291083687027617114919186762503866016694744659860275930964314734154875879274373648753561329760668092080704366875948575383346236326956439125012717727921174228176101841752278905538574826891537046087325496585268803059710967845645813694872003555780974105361539034807294434110122191457218641351967478078213172111662974741550029132044592416758800052980454404794742046021481002189574557548311536659354989286854103558359782085242560506111869559955393291748405769059406052975096978104944336483102321672221064479623989986959696788356097858655683113675192835448358292922524654844469312755411703523175047513778472564518296619630496105309695275505154585674306920980062412837516213821303060998097772961552392932493987956036278035956294776931109192912104156265001746491694048158412195344246443887824441306898767500847741674349662165771317010252450794084233726321625250404790832083943658245501517453927276613461907804215007176300334168135604828307061824438521110738117005105527303985229650017669780481580663255478843669678332584971491029595802685447019596700590354985797493747091950686158227470606444979613563752111466662187779724658805715237713968298442432415719711632135061017426964842066252342100198197550324345329024506294212723361987519466846847496828564588988433547100544572422834981852836116444672873933300950944543110749464993435753702469914174880883984190041027955231270004548589340566450170057617804022659996305894680259509602151248207104787669158968371436683198793194674455082617850644220772350916135024024026102162590526269925368291605796895515731866697992175940697499124778023639945802238778822507593805831141316353498080767931322006044804843719099168487305092114266900644139299866946510888602220633091285710122558099657656975513093846229500411045998881914064904954459570069132068611836167686686814929058884752705070314284299774029889628955701602993082333900245693335397974383188554012369626310360938585775849727912751025146328741280793202948393173901545637910770515492770464917172497829982704761877864215187946411753726931078976388156582840469503941026550808277606285315611234059208394293773327994148050271172271222612539190041719268649717610875571549581775393540912197380924615453058231920634254345765032621150328488954154867765757480623014709196557324916924528708593078197950982658527149040256718190546247768918526162701726177107449996106960605907386475942322735710317184208360428688380652762078677161038180322070006973492912067113090692718537612125581172287304870262360905389913530346485232927782045653286905761652743848047357723210834456285641034392434238830723482741961468088417515933867602989568353979547694705550880840660149838162714147080948061513218278827554235883376134315602203102345577167932532689212852563427367505640886944575439389696454344170575039397366430504393575146222953295825138078519313339443744191775084930034141193944705937464227990738567231028236087391343561257016377820083017640820967005251059346015537194414358158076860168874699890729409607421913541920264748352391893406094739942489781297187062569780971301835313774082101634190786894800465578318446540048180379432211454461291317879242212296150061028795580036510325070571210466150365319445409224983774447243695673351360218801764909650261830729397748028650093433125396063818362189224693296942688628990748949787163255301872459762475785661903901897261582145705978893186992289255731460479983001548824371783777858080644402865129896488610439988691171130070248295368284512351246699083777760704677768518181055058995297191394997040070757811418081621348451733185586877717310289403167416953445992002219831509145850732426010502264344850210822787414865890907896390516886853244093020168124106718269273577693619700596374021989023603619107292268328620300471351433305234574087600604794918551970982860090775656296151109510897891278090466012070959321700253363529783533922174230822788875236587027989101782997509882307063001560066377624829034823014258168479906964816586795193185666164661081556958996233897272732851962828690594261771213165302929924432168730833146452346577784948985866615123715678787281812201165735293288768277515140435110119291009560028886291565570958427813375482205099676059816837681193850944291837476599668156577441216453542248224877170224998383170308327107114266961355727242755608942477206658311200247980647034528847601923569295843969443921127102851969776776674113880400977438917837908874990481304951024995930384264868625452360445573010438838570766857096164148227957255012646489231989137736876637321595730136427226540626394798031093626754746669087337232842932763991594851631574876535804038298401081410089727937317536814768694699902852926519928037494386168001884545625081284681256949660845032718051270527127962314709393892526742953666473947830488454495553814565094093863815176584350075454553408980808451776731500509829271176059100587227383157417793968699515678382010301189491733559783419381272989208760758206333692053667050100639416510847426696868108877104738650234517940486554513269346890633403402079792684436823856785013903870745250694096316438878791687391741383755379807327587871051263167768713491659593623870814712634528527747219900698556859054449032392840366263256461779703657123817245694134382712848645887154586098402096457739768659164778508631698170724188757021546514192846526027573951035162825946910109509806107264631124938564556887164436969466662344402192046216595345785408081368905736830313316378391815628534006326907327397601808010663360778362827852541193434164991206813525679966945294710420818486632931400706862422872052851434773765535562064484566603312949141652996832466952103243528597630281068619160196242413575546319002965367885911165557669695572136155834655317607499662002608531563986688180864108474806688041476046887178338664511406337084175789995922004456857403756426038937931764010503809494713834265121267089567752311188232521175519972184579026731535012528305619893193292732281171257873086392559778960280936292829895874454270219114710975593729540138269998401872239068468839605134110780215756262935405351531175156858162779982680386227255478295512185040182755776349405200264174084792577925121317152769078946837789804484034971565964313072938627003313134860205663967345593785451991795505675602239493573100787311061334771088375553144911940711238853926700445987746706434072818034115317565938116726491253448616277875334212039787076370474457621472822669636565907663748219721986949672576177551191947995696607012067901047655984678632658876579219718360282334380116870274037445107722547394572459735410028604550863832482906973012860839216694060075859714205659014557187135630910987174049245842810753166210418871080069710420212117913026505407191041938780798377367114789368015319137004247331727494461822484957556090566974542572804962677699380309215634048109666107053844876741037258929399087553014157816236724464954993375343175014352658718650271250316741608049545375895229248901186527426432675661260511118154129673794876212581513508480655898694086671778969791066723330197809221632554177497013424655112658680159364236657703994277050147850631897490725496253975974576908279752581521559947763499012930375328728591507126438765052397323355894764817814463206586516046225586790970270064681552543728922731382482979935430347959474197633066066335705272196547825640377594864587386654768154285867089289991837294418028426556398888696914689464594791459919154890644785438124718446458982061029263703881763321201630379072834602697727556788541083468589251067990706775181088038294508281884446871494418911050233475583759778295286855940663152255538894665971707124690828181105627339981945799055636573949668478856901999361941103935653856941614408591060394995751303066718503670905478779522701318748303312781351684211691523658113910773392877787632449390613872136607311277372138088090095338604199602932356292487171558941158099198754112992583751265366663816959568282870013946568539428842838286117960907872456178583449426156263616917000642672058397718602125729445666148751139942960123389921617006279244649530489184337910502277324497127750225320237632537558890011520876556606513616365528648356190270709730942142348763941900167153902452150874865579825450247967406558079418794624527857564821660602740297508650184198951228290328132233561836688759760601165730989012173464723350125101872944199716038541222142204471650033427091523986879544901117873040000043476293735261145445692947434672227928275049597572904783391119717918043221526297193248267727746016312614502225572632171237295159441138490790749973648517174015502972203506187870541369482254035258037624187016975234168724229055173907821269440430943773364838795195376381149955943830502152853328602516001365164712199738475825133730027467053253647835118938918848611289753031762454065087093456652384051094439908469801132947765402884917660997397683310266340342098859147957134274483752693309739610023754618736249443948792276575682616163044761775877956078257267242904872440417209604931991595741364284599478515524648187819495126638073766078149584285539454222306431509257862353545808380334873822420788661613489543865461560853901239822832405833587397113464571695087509307986103710504835699495896122135912814964539946892966635480605953041112212210559942383834936096331625692146333313597351790983532286702606115750284867345708691792771220266209657081570662360553156365952975129603985809472470355528918361530128389255135726711537153557239486885518018519260896574329842804714939529918149195327838563148587151463694217079131270372414639371676905816277202292389149592001410606430433240284608113957812764424243589494460143628739483054177481547038070601744748490991870288826453629467138086500021609818598995408221357727454495046426722502997390195092672271601796489830064743601162502343853110474301983136741988081536663390982983407357997615848832370262285940822306762464421258651311896586625909647655095630772621373317403526970949278824290981208266422107248089363822598803340171321926486179741952698987128534103610306674472384735439007977680110290077637559852035051950369635359092347873842377285240370074123937028073998547104667967992856788507029897853508911111582739896916402038802264817277999877149981764394763405927260504469309693277803175106759167229593028384704756961374744591546966971560374312386779838504104198467799788917567825290443428575851318119243386408429827360148789996157408990916326189073900013533470664580944093182295686701674068622573599882103352953966700984684116366214090728520386159303494763998271475377668562718554038610295824576289638523528489426298163826616837570597985094526399447728351801570066749952925479297161978777580570460701187907329858771444839695866466818105394056948598554969669879068812548752867109735548996257906633983482293408223423175529971296461110203295529793474565380807604487792826459064393485230628646227249219975333628499621595978437869472967369830029765770188395682075272504587858694323909202704259689210223301406914735654413459975666838504025464183062023090588805199858505647856174828608731868759940373053875980338021377543623861205547604090526918423525444651369769664735655036514404703161993197835763200806940653586638723124538621653085018867354068823057254237500961297403091876287113640454988946060022347281238032862092027850523455989625520299054506186516324696580134336788826339925963789154422902261863449711878492983600087814459272877176880057162627786735945332599556239397322712510990273183072236237310170570914481509178747888205515299190738269497929172456195879589506776995834071559492887528360002286316286878076342142724505618447359400511334704510428637509999276866418329861208368777684603612922632031875177572791679050327515140178684533883639560779287730775430957861994749563267022237838885353249760553009398279710408909554304950169655168704537718468580864023471818667155643625144037937702190951910730407802542801814868434044080733803800573252686414666802543214379634518512836040930256072436127045241742502526460178257640069028165605255873515384820812223785502994368064090558592890949545244898322241511379778989185883949636664633862352513095524946782895393155359092247291784861073845579339877117063373643142190309308213407599724951689765523146202872542623854042307855173555729109007062151791637893869825989543733909671711015828818163489866308044231919081303299422673463284233132716529227993093790316004245054318175220293120290997927304606113657745700170693683860133726299862420688206335571516858428035639604078968169870194010028222354745154958370903647141251650991902856091705500017072883467317211880696395518472286662555595864438205615871792652759522735014903621175954749083593283127319753460158864709898794415938021889482566770798017275458440817941569709564433079854931232331112104477410152684775138564164855807153973774705262574600524067420949211013234456069212784803143112622354536376157666962102777004235208542142092289586391646508340002433888737636086427947821565003541993820665550373340561466533367156107008057229669217212494013543737097624270559084960639090864240074288217241196710103994647875351205348485575259872986820102009114464462739549827455315587715234896327611918398259415400712415594766463614654981162396635160079944432487365545094662827072970874609257153202553644931471865238515346941903919328450146525571811496248489320200283393508490842248779994468464876851301153721657845868215536120069326701025683940851329644599135122124373871999182670315367011979129374151615186806391022546780262822065733017223371473795211128652952915310370491313830480053514405988252249140817257394015776539286873348288178216566415507133573306617543548639525383862113131546917025978164418276785499447260205966385730856419758104956797166134808302257971915621898416756448637683922426052354430177408963693061399519942198986184177994818505054299494364990628203521675209592765307149678874970612247644693704656475501759352408228461743207616080042201366998900201704940746053226966958728029243828992763562731995920081270539740557327836907753766191227098309218143432478746769633517199194011077261334807678719198056406861457774456267107899260546848515743493225995288405457822223490446600096061354484126410777214161254591699646549491974886961453332556624033497801709032317704483827651137401469353647469593817594570869080039522315351428897843787152038226232034955764398753136876088228112783063320202715586246957637256846442058821026711381155349960713403400890239122884055568169335872228708996631430000714941681764679566919610343494358495625919621602151231086920102138074572309323097267623835961342319147429681656683762166652330183503040398206680585502506728900229002238123320174462508125916138680949775069728504873065515773969091049273860037897618443080464847475108908822277538601933988210634868025997103515980491870041305569021347022626096841874336038943911086695846316049546176525346911711997386704290396080078557082343810948459588612268174893877974341106329236469406280084794060537447009216620137325916872419864727953058144893682735876164000986893936125801282319443090673333740424221631306544534358099624033475448550127302702820021258198146483136278586077377989637620306061764299165864097064830090674761404559995766279654126171929411997568717867782988761964708548342329534063416964223379412607959095887956423686142832664104085763310923364500149821886979396104987404688096707679346739481974867564049876061012663625036813424393423753074764508736841195983720874227588735356162317325449825927968517802506487960646102916024464979147852683073533829777602158310550927217952210318402744170440577641604382065738428217324601542725880494828116770896687794400728011182671166541658052749703858786262177201927878279131586517446196371951418942722085782543477605225198157206788817344309643051051317198324370739890397975560496378535462993805575659802161988391869495301602298084093206750936937108123565529436952076797914835653405757405887354125762264254905093717648837953216221483040919531627779292955605423482415965134702785878914436077957449775371743998514255944542599795467690056323855710353813367735999465185476293208979764431635320689113851131950528055237802762080456206232873048470920083862933993925145820013987854965111139686337581109303263324565606893310810018074301671354647971601779617505671874628235449125115880467791935209038000333538761563963785850524931624198809314291545990053070372978800029348040108287383254122383281459307601300788252936078485899968585851004080589449839102986124100182194556674126328581944986639662506392327397125690142772338345869785376835016791427904025676618420481124665793075979195089739401874308820807732472749280808626504196844133799690662994129990128252796709106433221070190289399213459714700713351669062392174495018955911090023041378839169935392885259085095945198762994731667881421509888100850849264026295556799121703911146531662632953225803295309529865079495571148822876118158185310249741734626662817603432201934244898641342189252857860450368533959156658780014852242323111025482207393537540727613416606195313277462549473647239983438173468177481741028135658010998060216916243401915952089115458610170894128131208613125039885981628168622204799037458942663271424576733992514208909028616066487480265682119484980696964816646190912873716738059266045477646968329497589583121481035858750722408374918806949346945527679650659071138496971788662075882212848134750843719827946488040796660280234205946171013484571317754814106631754720820608657293120245911071748032342775366696741438836054371105047141225144299509066174787732704607219679145850546943039446957122857631403697266540277412604307042237293050629200366200423436794334225806686223076841558605106843007060260909610602776320199117323166338101175203704859659358114496548491461736086088151340534388051917545438612755079312970629672377897071276537024366775905863113246252864383770815077101609321175679666617201179891820254012289900633564165501635202716788040697915931499080510914604770544975121610583077484332323449293210194367986412017077229513777543986307660675384274628626371770178230370955050735282789672584962679780493885922290745042064235920351879156611605121458519803574982519274214140719616493301676485554092960248188252846346466520091706928900125865175018273485987241769737374324889599416848401392949563182369861086222148294327572177342434619055056688161871329058670180225499874563634470924644182759868237983053495850266083410547425224412640834103566300104692895266193761175488701626622584946403578200388930710337977692462026864869063105430735022138302202656570371350965976701703146816968838446070982105282393514629194296532146261267949797949396438903597034764710183665461370809038661363625897116565188967659596513823561711108769788611305266066983640081663655752683066131319134353648881642435138476504109454600416958206913947698329049410148620171496109092052492767294885636732058432175991909698304413019778179617299133991220434230998856180654325437044457996775689207088569392134836439359131857511008217499154917723184655180779465304370007383239815551179304321576179205765832101017691069999667925519535553010579899442685755421841096319434951375541367881503663357641750760125309445088012149045905404250713050748608492499633900188768534148017499770725147766303859152826213752075530153927024577541641673810301784498777884760019568268982708014108538669025122832179742718915910631702041774258724875870678041096793378832517201814277723422667158381069463837802740366914768757246971669330770820570304752882009102312877814574532674348114785506213926041225423273987261145457621977936661648537847944402143472622574760647140027353537498886105783520520392424280220969212943989074595181731707056481548189156858534207248671766914747140032370070923064158539115752925294098773696091388043432447640710202037934242948735810634176080315716631832770456098694062981125034303286134192361692722616911004092668239198941961421236349897217221560602765370186724712087633897226640077413604040786485772136598285439552492039509896518146247336643961565942039933399909276782056120207325459112961183021855683342278497351367099031653599674655905184659611823402569261681040386095008388278001952591182210751461209137012781059855898727088789491919234235013613044622544622522816672793582540834837916564402600598733732075981619007041995970759922053058396954033798747208531623041843394768822258193705896581329968956717415899842394345577099697009998259363205742446040322717028288808420969234043946826742875650764319101980496268781790064468502654393342997224325377347081084790126236360599070257442931886683360239311589679674640717325774880395549164908877993403547558674337437256690187361077977284411369390984339022374248603718182601808023871640281253618976052416914414597995346920091246845596607665064396513783748725979517947571523481861147016399563888036655791088598918165549789074871822442876924939988394757573570857058909891100018172528831649285639445410885601016164328178933558352056563875429444516274616082468077709575928689278548129476043020860586459276768279076923247059582817141429346662488486558463519631970035482322644780110181903439397395221627285172060130631797186070745072072576234923194341912472539257422018296375962085757556271901880937852333445453543806409905435271704750085165710617524729021628387171774536708583454985880836831039875763810714423508756961179825952468517259196767594171827684165499838490872798478627885893182894931686216874899316162116673826691091434630372538060762429107291694305038245027355649115197518610921686518798332944613543176844228989634643434120268085007011904840478221850167455475209816313149777418202748165175115997638456888112078855918085952721858681415599740410814863432762902043440942791962135698349464093649888742988675606319382136461847246509783697105066319030931900806591099249898365279186684980166681411513439170541914587875030839951093139277932011282407443354399841840118219738270167323221572313902412509361102707733206510838980702536381381166089839319464592547048468484162976722098297875928414169232040185986267629223079150361768951281438263219785401638006223917867824916472107431211955564147257696239285056740729657441065222254980277439488140078885332625778741931346883028276116330807650722799681962758957507363034356355719903711274895861901517452050460717886813483457204362472214712707079056070988097587707912207730519212654520596533663177307957416347622469534350876490080133150530756094813839950675121521277337849155202147834379444552368023231840105868317764288135268539804889063721757928929871916131894786248633292566722928429778192500418430992443435090680074260489047318686894896946447653432129577764633258376625060971312945211196715490063378401602378476352892799372559833605095523973294620793318454552418875253340191171888903398045057145285111831033529887780033575765652831640185136798392055031392569654326778846737702558210840595235780037872929268327322087379116579611172138615311185136728555437974795153801883561335856944194535165833601354604904439745116681308736172359356014335765377033177420657346586995642158623101878649776821636578100630123972938800535662285068913025698581746151314181560570271898871704440315407476356149491280381992810594341271526309447475097163412120029376651181522533321280415653070678188527395032110671116095248032512722710660235751888254931290466160771519793854602480885564606703367565153617263643654465619328778219571546421089075960409614022300917179527608737689196381762778351177649824113194846863519036133690650280117075022854227751056269353225521492254912407414008624636861331702441082146732508095857253459269214138717638828210163908266969974199881651933442657806193708030131552270037455350974101032524690039004965799231237315475568306933527571071149092077355967041797402616170295415334357790098579163523190116395319641497486297026965681730807082766332287715087094281400770364162685123243866130460044965956262012573793872636875534800006741481716418227336168340522970540097702564475471628300069650080444872123173456850205239714061762236143906538501772386813468597510982932938265740759308181307870119761271697952728560575296212963506567161247862914223811052170334378608411732476308390801168133061779440057769559773373714765742687810127693350730434612063330582208552918501836030815712274955723011120983702757395542688511789778377375179156000939968164142785335176190408125007231983321501509636869178525932059946681590668826484232444780283722938613541517815729763044924246855141342139627629984398539287178930316076788587304396662016041318389790675585629614467491131998679994958321627357865552123060085546802784402092719615631216507030356764205243022071986748755385166663838581919491787211754703989630059948694911818255326782683385905350571035515672901831728514155960558399201678094902348527748437020840150953335221680125212044109581999934842553620452005975969100229472470217568328836538250807516444727485263649600860699433501101053730592974566341336996315953006513872343858451545213596821504370046073675112432617894353082508054896735158205993834050825596262386609087486621031766670238284234178091494938242128552963135882892212006081973531503092782226875133635314249356176288864227533354966146402172644246886137076865794116717879805739618274791718201040681884869542984204614923959097268552286066279881266654473092020178836364153931784515662086592217625315874602529957528993372014523122989011531742302216005334482326936332291410932212011165975923874784538675774830200159614158018325354945169882930041586864581919407851534764431481276312354953827572857769057502707509522208691165592688700411851950594368176908558186472510541129196240406492330536659986768336422998080618657208451964733170494198945664990871406201774696627691520286617675604997163975832470865970175511506373359394457859116195509347129120749765610665114487921345165469504291345563042583310669356143423659357528978379197407729126563413382292537310175687299621305191150985152950558520193993004079476707287765508954668667827716694201221130186398627877510126450011152847834600246661501702599953794438221199579901130367484366989214505301172538447078437308883726012409863253877183777571279411445764421169630929884752302757816984646623600806900615651784791795331689291656688624741723320607388865679445090339223189423756413198604717305032962756775596987901358413501785928940149882293135644192080157617500393975964826339937358494846219327820069370083706195581265748898059870211094717812326785768332994694083904901735445485968352271786993162533710351684476792902514877374782007678390598538809801907956264314347879767918740632209264271217911515679795524090715242154474210610563676139449301854213198142360473971027666835720902598382862889628326042355415314682473069788549873295406818325625580889162636751767629654478323790708629936530506722465435217260612435460230401521997492104795701940390601199060548733517849184346697640369912293382446265102250090674876061980848688569574983558294637620105367757669076669952196806944509286868696488020709780243589600902786400177550901476000165131296846265405718145180847997881542915736078299217587418679599197344427570952113983083598691735558235061119254290433002897772333141301857117798980038673892675015125807554052339515346538654852976490105672799417492341545970312606640779804828306788737228889766758991393289439535862043965606619843556627040191465986989076840982361902278004941210774466351262358235090694554453657472428274884740319086106760613875210989326740988923516374496395786196281943589186346027635247116497604289594210249536193845706629717331892721034448991342473951137730249498623692170538894234641508735973235169180998623166652343423954264614568603383356769797629376673679049061899359947562035530493625139965998566024818723422280665420121047735743053391505975492518202293639235772491200032163829840144749150329457975581780362558357901341031415192005023163661643615061891974809385853553934291416502414797530212660819607471463839629554611227992071221426771813449380924388902105565060979849164565833564716089645852774949968857631031734899343308970085744648467345949026728030804544984328474755973830731275349443481069622599007231873610500526239928779352799923745281184612095182120496943896307375591972411768336008074892339430413172184471457852044979525132290947925813207357352423430743140832039267185039261385707631221444993551550126633266578803606215083365831142962239115125469699759827631101306500105100794524778708377717117466521737768665978638605733020254383887339024281601258211023569091116366072790293438773136207374656070879711867291461506418119716013597985719057329518543590051783167426448871841351943324073138516701174831703873052062087103527966654169074733077900676181664303159519470446824777438559526861035104829289913358209540639453173355370108653018486949117802125628351680117631733580103613118769042294244491650749381406028513768608207585262383862958893490597384204677474427751038406528364486324019621930426626046382402825093925768217293632653379363410409141168036703545133901150033754987236560348975656519142048218951102656514050139627197348873382760052073866596902826953590006165912814825833808690670211100037637700149404948565407408012837818653002173918727874504188414933518673266258919878922360689381856967518591754947500844862961376167056091918940020654275217327998614856630896920381075473165860127727648088695748244951280983398725343029139883479138269792926129971511120282052975294035527978377878003540561653502597466207299437284247855961484097822921470190949914495317909104593817768715929204453845130551889009773505640715537331060490915959136544970899114626578185693537014354323633621679102117598928194386519239875946751322364666080324256569610245480245722099900926651698497821861508452899365667519730795816219360341988709107780194108655088379773123756105638681516509786217723818963226232047502718713877156824414046457355181878506237571551275745471891352949441381302237258896970887570138281706669941924685888447425889558958477690754438878164473838968924002593866279271701455184916305908459154506412006660548955076670373419365880858519189507147343334678819163543241581448614075582888279003480389658757577599406277944494711992856976551485041132459383861320376640199865495267131988794970560257720906910180612874195216243401066381813896860406427836868308298442427085768917497554381487958405981054253560066544513486512613579636405567345730740190371854779936685615205011691328794813566630858455496790232222780540659693732208141453670753575216632814929529660078709150500461893954054357580150315791851502337066947989206118854943043184214427953998580114101244669993927487775494913812118722259448236754134086646532239167094509565480119293715893416608889582055754353367037252034409018062296904469480500188248218066708808022073872781932823545790361258699349827596096962292988902037976002824214906213768831266887299952129238955632001022603513278744514445808788331279356748966182905759150845375354348671873021937399283850804610163829265054634946587658231069890780996320522995921061542556811053578047662429259395518386143612874349086128580492584164179993708455762285412320308843888078362744411262169816091647285877058821073273186076889444295036749735768266790812306683952949762381974874124147257807848366625497620933792911838263248068248751800938166034202492425093063518943813794296288338084077156434176702087395645417666842135431597274338842654911666311761158977074559993462423604112229530452466295586854098149449242006028951971569619357346340832568148065193552423434820750687764719965789990350673823248138590871909080878458059882073577048189584859249506268061853906403340025452883269182463691585436054409202062178472273427940140397674498180656638517556518105266388880071975692680813830797017202016689296518008082815027673533830327643813748456296037441139478266533490861687170816314053975065199541884817313083672247249704319544651193787782006353539270168128897016831663081396748721121618849650695027252307880766642017790321077778328855691747641794976505507910836447051885589292149025351948743639765496457394419216582343636174491857365371695688740364266127513579122597059692762430164607579513291355209836562178811422034965912967109733818369367294040663831183430095121807513626496381090184442833515788123883599835805229358610258366736375083135200874597806599518661842470899969895719666989476790707461966869262894049931928423491673312606796036562534679125262109052923646145847616827127925531180729410035714773306695947077460404243673905094428665564612792457614172296879052198456385238346285419812255438600968603728582670466944299519445805526094010957664143365849448763140332134076985926396844424493903103593525313680598663486509616042730437837266766583678400662171955467064761223515558265175472532197553717565065059169458551592653552843183446392126568845487981041080698765110207116758858572407528427218171916489238808244034453156809010983832816231044626634682950849582556324390996000301136785448636692224416952882452529078486185736259877661166929188331530881394161293281555600260615688685837841924362066450694953675911827330040980002235481383288401162603256761213930088120811558152404100505476741093205035297207862819275030164937872337101077767470708335900098867179678327004005706655956024007062158875077389990725926846566040585093445949368441949660251140106616304989425470023642849993881313673396863657104145153969835578800216746365903315483340282103854638421879315016212791443351672287906081243736099428652115531674751788274675345165523596611271346029061749275848379866223010724438837272976201495490230085237614497156298261014969265316014946551836193957979330028250736963386173936723771228064170228910585013232539196934998656991523611686588407436318788399367143848134804620927378546138082481411657724056589393598441639311531580502975293567286612347479092382517987237912242005573985499942114483066875142869849704095300439574881877927522021380861110412408617002653297925421527520407299700493204436467682505337067896737618896201440042167742619317605323472098195820393265434070378671499334700332136030817142712884825283519004513794097182858579318516545074845815349925085203899236318578842479405762962603848960638220494461500893947067346216121606589386304419978780645213802346810838965532596645747739071097380343657368609854425792823881070924285407244423741547616207991697868209011960713346905143432906681391176489600981983670749050149408708039509604616083621167231459362398607439556297341542220654344468560284905070760315247531010178838471251454275008277878908165426400494947545394731886079605838013995694516604593347180208769554833766033093380569941411095959737777290917992585767690402163230715381232386544422065687925516673764321403693992169796177161524499537867670040122222072505961388392708860417707410824265629926070137077509317191274140587869782527583964869697560650603223716264273584505024889636597194605070376559947781720269868891592451936281271207343291588749499006573875170331029713039875736127314338328486992261379598173230659832402131373287976394628583066656455175438502722558561263166851221834907541950115503961597015310330682445494590867841216984634044015525982109772410316056734264774832319592293585626173494210598500180606936475028195665060731605232611321611693814488124083314385632580413701417799166995904860384993149830979852938059674675902525069694680468536676020873361028742200706386284757028939970951423238950393854730345940823869683745522448969649985886650507738537761121405461855853260696380854882052079701810485323697416420685076867932329145220651195034010988205214092651471724520987137065858421216203400388875914478880880446653029572566026639988533017606194499911220865478113098720483713661115930199515158290055266678327221940868894737207832973314995189842988763166868955442849667564826371602663028013312326417799914962371442833722760859352489891614902916056222429668392914398592602241710465959690286072638998639086973848297863162388381778369450307045996747742605830966377919340334521884340813551177647667680041527879702266875200202966380055439244868784805595175357285400651816358285455937376519168889895536483593445598839923909852534145148995572864003806604084684144374451317167446861592480983458295412781711903787691029269368166772298271390711437516789011812516234858367511293438079368318514464627695090041575240780234795930303114964417382331695397150241178838471404710696922228923287668070812815518030651746073346322983812019303210088425282836059717112641409299226983263385761708015604096649244999208081016807984853808221869178758275924950189018540258836312025395461695730987141003286256771899374434430861652678970643956408610967550053514197237423738327794896303227233447290407438325948316074985687110599085891678025076532292396713690986458872953634557567412566668687908091179727755452574486792584840407167792519698984756456188839521579827326111191856813944183373743605079077643485906127638840585953732937873431582859145367405199349580601003737332407654904158063077416113701743273398313969029987977100990126721562077013452455047398532049662058060070946417555393387246892673586710849166368168487675897131242968331085797438575513416895382003065800027483241634853869525357764210665101657496588675282358467546951619966805304881504850595061203367956522184898404117602187835095784232263374686896542704719040682397335274050064487937610398814285831617310494224458390150191583449351992250644579694062127568611876165270564150468143227054252077668075958833075085243809181153909657585948920360655777762133080532591252052735542701241904586440473884949932393129877150794394195789813954080533337889216261539720430217314158018617536596415530974731335010816630161003646241397334887415670126401240372368876353856824784568170452819624934434735776083633169070303555924773611051346176697960596832336977399791216699784687247120907652315506499961428737615377185823045032723967840086836172880302875961358546204654492182803515059981223644464327040434931532176566358106116897953183439737779241169954430320440825411590002118072031005292065311496219255755383060816664500417567963842416491885924141495205842763387231147335404755369166634057276276397801160394749601952421349699610852264664782071500229467155973168342466864743150136066747844161446491534018268102645234674606898297187286033928584834634148651122523630353820570538783396611471531152357426849182710360931157374367691519141933178275991946973203411729749687259018153838745097788029791815981995310798461611861168118374203664258144661706746955759592184765767274339228595339319342488312953189252264446597353092360091412315073272684907163916408505807283682972193526743242417192926074405944784250177510529240618666368943152065855360942542035844683500096445204721770732465422920150476326556609659212757847413366268510881828077872500123998631309844065088964057995713095262126121785120356662077228595019171997331767947420346349175021951963437115133190815356221318268807216245423586053898503303971978807090041489228442219958760488436006252483603216105546106826137430198641294568193392552563882738422196580211617420145921333099242941225793048116043548377781399522434481656394879887814108282312054819300028937005215108965444734514608443031919214880536245164400262711183159016272526336739262297118519391160922135710620336694530957447000595487738029180297318415871805948352770358442811204313035538512408382996538717231654562029147130803514473383204246855473488944458748494267489154923123472025104293299224012872491926609587693216372284976140230285059042380462777695372969362771829812500702360365380046541573793348971426031741478884623298999651963001306195848881520611858279289396225270027780130051861253217254418104124730358068061851018715688520999443251970416697262292658622336545690947645416165643852149041072966291521373646693412869517237571179172756214951957274215198786244540420745410100255512132651447280870629422256090758758857301171670355749086104112659441223926903400886639536994009239468833459321085753556847425620713598251600459201955894506282654771281960863240434413346833394659150230024703015113805980114453224863561835718619749294999918819521843887183806149761547326262466870497820735027465711173160595148806697635331997805645001147947354915411634471542665120505939924303971244881456134310345385749872700951795879087117181415513364465793055703721914714495095146399830068054864632105180503562288962597159820492520427864506298138765486202061197278546062650868101544373951966857564604536623612388297741509740608035850353971381381324686037635711052158227640249635449896735615553202770598656869896034418613693286526024656795506454984135452464993174346716719984546408408092355643623324670583884484486292043221813561114014183015169722924677449817354188472075947622220136592004624658113436096949697652529387094232354398850440743433492495581749751690724448169544595848119478721884277707497633097115072194817392292528816716193719951638031670734940545801867086283907494331248454089033158668470104295047736140079515318178993136624402665677541805284696478101173925144875920031336788620339287458665186654300359410905681773157456343206668586805091938611954326123239383230608437342235113771958319628622973778477419395668177090667004177377694385369426791751954234257532647786987274276890596675988723215247746219243067934384245592869002697988525238865061087401447752904611509337928647396001106819610498284328733305778012710778724443838759857936955130344768869892543538143650796724546863445525388597041296535187594378569892970318152872453498308595509331077396596553837376245670863734902132843883142320726562204757066342785528999281021657000690363645640348312096969441672491372953183482788995897569375114386057458249329183822334324574827245659094436033366660869414842151714572663738816244763788127169368481705976186397943123214755441872897443899906185904663232525403237440612519490710967752108350860876752909697298802189731280750216033868858277116244401319054858842331395222825761989722623132524931396388031163637931581573052947336553972828690378302052991820092392624013466066440522269188738021919044918549844335116304859118169364214151597171319301568922803946220661362618604346700815486359882995645076724607641638752550013890168854037750182413334730374757998380057841597872255675562151796255414211118464316193283923512535218617005272542682653326249422158542129785819883029168457600329150137851244282105763240277036002900338598803322702178232986739888180688563360422906696983872733830033437811857724435313446133973298931427528135902598537218942850180734808525899484882435675788411468408082930728057205778735744468367734820202934422957313715717110232406967508805004591121591822995503189639389500440140762497075929851438403204657764875619146558247711473467377265997401812671213249313388544534439116552761127281427541456003738451965550060483128890055838748204229453362416783114694302758678332693192517219356164395024013895377993820924897525396947005761181351601443054623247441430132433567040778349178587575929409174626052836885009294219162548173857849602546035966852708534696772636410672610347891356299805223408462726034758045949552373532782715410465199948202235918009648177605004900042210240375689951692922418025727595282224255519322191379574923786265097014770317264979259472846625276201345080707497877314485225394347785568232466587031503387356540781357862480092485632460774316983563217712875654041720710661227722853750607897799217369868580806569643066981235107838173732384023084303815998043628766012440238685946788514304292818651590347810474538257937246652332939541609491159244143405511089424775691917315815189510424655410060303988841023391790659543622859378084793858140819811077724124294532557527420663648196702009136352462502823389992667202722876562743882760459554008708698187687789356397073230118530420774150553342348896141873567973281791158723460229199341457479431359952545791248611588454882065097734852075229985519389197595609385712643462289227617415480962303209716831120870321125443618639334942514436254797833648216274567811706848146322172336628389774740319119176822315803590694094082088562691033667032523020766576142495000137037274557727474281440074772331278161829814801355814188731712109024201031240821174341640809806707158529067108818211235910421717909941809340434597528372317411641575889254285388481111106534184679513502095774648143486149795056920042741786220199175112469455619733142119131690737452240944293180376562914877734728552415756749878405735274713587107261706660128143006571520395871230760792318366059872181463858861355880229288002646733056364477728714650902694715947473359082963511652289443329426629393342757906137112538746693840637084668491613332143580648184039147748452991638552344959865531197381968330277639781162244960105483295258432140532101158909379254714498843168467486074728851510226581736043419935760868862640514402850614798500857180812274727126209156986440676131982412852899568805436268967691501872857145513555778024927889507991263551230710268791033752577754842565971849003516955132328896627474414385868679118432917629884165650904205331859393195974354907045595248493053197894938021908892570540166773146728205190248527897939792419041126950051447911326508059113121564515376930717844093158872373618425860457662832976596809690657987966473706081822559068161553593566546905303985689298997182026733795938042184813422810105099268294955817769327053686189870763065955690593536482181505455638228014503677338317380546122435345092285028698795884942776998397195250921833466568663662777145816229676405361566037643393905997647727746224669816803523237026667832279118907524758112574327919560131093730337849289458917054049450650987799223468255897015482705086648913083235462229245116964568118106405769175295485382170551739106063150515456856301600955136912956585145176783592286698225836662035823478735880855013483479855462561633888586057567925967152819907428382631199657484345156206922465443971579797841240924443460514727953402748780002750849057111112410526534763506798750788750498989493424015425560778100499317129086669519375830736089453386954735090163173365680346792484885671449449410388398472911354784355492774685446792906765905534834840613384477644216821976599089530869033604811934388830535433679391351004033801602088775431539725982870311048779024645666559358126281809011599063714667616806667687915725814411193324390896026489850184200379605397190795844442864768582637225927264272655338023178309962541401239102793764329022375494106013930669967879059934599127895255589923426730679360861929020727846309978878972109179949876203942395451324483867171425947088449478676762489993502037255588508751902958560761216863095931605141984975025442937957019264210377928373596960227113286922131210863942406048486805958593821351448545128200402080957797580340029312603371130955908266006495391713492732464972996612747199728379145008716194127967689614092874068479247922757797180052360118329188474553383334344217317712118406264287627317535016708665095767373099630418239842732777715194897459136736703017892154495571867443133402178296868936928803733388694561074713512696286709419562929391082983172115582882018952615642814114843210404943934567741942469326759999492083984912101107449035061217103444516074077476302862849393755828976039132113114909930120314992287394117200247379020761331411073552550021935983452668091238240423498193518616620139861247292147021636107881729434277223085461031578517400064852769501985875925985368274236606250224525371672124731629067072024399472145420363951180958750352162404224486113629587545306391098962442331591090408145765509318483003596798050859461854715646783514762838240937418610031437961578423352355624282884045851160816900033249155394087606927914809187465097499467036297716588506669578218401549413363027368835184455404086977427811024852215553673400187570285184000901452781386532677158901292107746556550974482417283291800378328751046766566333812438144003459074286516715678757360179235247583194580045548052304569407353696673574961785909081640235805717682320169711193160678133564366468023722886168325251623088576687017650825673305615519755421151878480207215507756508935838654479223075681556269184194419868279577515371955220269277442362545469212691094623216402630122337823582701213952345851911635229427608879202468051537503857993940188528793362880132909584688534882290563670209808447183450943392444717205999038185220226132425392690487689270321174514660657286680148784749780613408244019514376171377081158128308642658262400511660689366198414191255789196053502460638528698715762877612104880941331737650211007078249718641990021197016103704541342494931865636066807756683974343929104056434578107227648346204900667884824805592720885742920547217963160349964751082097168874918018397594693836617027004227490048781014064201355550441401662057535493811877232214990200117214990565605792235067900100199868544035850320569386978309134611842507262175727511124513294877495998279644567333500557777311789013622714863468131315486507297994184607460935643299526574610459029061101576525180977116043091202387360607370386008036386532740282213315432473502283956176166887376186578993656037745858085683092451101272614512481064662934796179548676046096337063816547001875879775308497548718841510387458075502902154863098234157712019709276668845441474172402219265307030977322310040984616906027571898859982759842654707414419981363061948919026964287211146533772894812525014505482334499588319893361360716090871030897461570476555233916479488352357237532579999840887407652686483955073648264119737916743795749132967666508804465933304112871055402494143639265454533461718177849495737371301895526827279492693180995218454018379256850387781806038523971443790118983905711352285951600842928383122092531945215138529188322750261303218718492822318668986979556193935236724716071690921696925865113235175195824803555695041418431913886345285417295031808487682578139080298675552280115560928594753364229503852277479627350238929951663754943101614748466258003654345472739852533806063603498508260619329683906325214523513457786252417248159800370459647921695527690944004024355852203982797241740752093468879321575711075920876214451968933924151496225907724392170674580599560828589394212511080452652623343136958155481962619810897671822953223079582215294851718691667939002210864745568759534833807401111093837703074845532602785320482416232941744777162363457473384816469501072516678453059803587749812685927545337589408632015438482868574340145331184473103752027851358262676038711246135516168817590598594639821462623891874375931484264580876776903734603269612319685898540703580362940386919825150629313092505824265454192442675492420598431648904333493120802853839185507138495268485080597317723001617855642201608993883625957365880040122236307185741460758904234388640840006042171976594250529081994352119656961659253626792161720370315444258203805522282020817072786985484668201135018486327269196766960434503870102819646086161810442905584050993998302156028302294871218870613459793699367293844869016789829289614161887445112171350225923121977821601548230405527961653446174835857012234449912028081459048058751301728302331359403271036404191593645468737907006839262828876667235338041805251584549748988541498459126722592081325121850077330214368406722172752614313450131967699607205377061911664273377589686362992890843371042896677212062087282587570110720566913492614961134091573272906911102307429869994352162840422997717205149381384823020363169624157036440422262242891223487781411593257067370059423366565629340430077580549960092421647022164444084510181325742947182791799737146418482568310733330077151768484666141398744438266049445501576369649980960318206459766901035258225077585213247326477424933330637215728537243140493067140283645842009553021267881705846017019525076974500839179492988120136093600845182433983182378980099486453222504134826161265187516454380836026924396200362210334076191011296833791145098767275046272491089648266655664806504462614757625278260814661260641882318566409056412002336221836000620451967967345133758993330005302002965259820645825399864098898033148627699754584849697930474655740664703979446919525402474923204953418345122314015792048385098517798134018821124322640368398328034601892579129719460444528992255368858923203851169588292819099612251259167907804690403725952092481291079557804265494032772985601818522831625117280217396677256074262390133147274357601585535852085672799724140804453415786096424122541488899991973726450578423957987399140563576972865657855982482875229879820642381348519878105523183962050033586751250888322473155217902429937543732482588434413310838059246163447641719011259791163891875757305382567005221579528122485314794173059164351514990695721722381149491742398112649529645506056816106279601092078383126123246097751912698883402460959000199475580204285920814246105027569255006451432784726894003190259298969012389810449867506593004102194225816146096012185230142344306012438619946868271069800627909806225434482056803782245188158973234202630925025453507772404935044407147738306565925150617526958964175200855924562533486633635513769215888918116304978733626696585816888476404106231211294976734351485020702446492034942485931176246466509186448932734346847297983808771925726869615390383272028306691608178428788703175006555676501058518120753911870326299151144187641260884752027075758076690066591355188468813662030990126880957938320845743291729538312552513737808240736753376992539653679363206324986597430970266945216982991114064025941781445361348516004046719195693299662939458140271527668422129066919513968520443113781637546711400158530514719388144629833582989154661229741597534003697382458052576378885705843986192782116910553517277102012763841634412277337628995904753365610817137302845168550459134020587735244101041360461657611294513102601961214976906456198746866532072404435781927324668738468270159700046925364966722089146818529491365598069579315784967931156135493903858631751938623669438997608104725289182078010813088510061630816459643048281687424379452437666083356912338400505645122632563532428787388114862039004116575478231100643651488621543551976776175014305296380033635588094392205278089330706851418138558374934862265855624042469213581036291521579302387426323070326031138832195015340320916193139448356966568159472541281879801479243910255115445475908405367284671701799784089398472017751408742420510314962209873156059763243237023374271800778896023566106645990834560773746167233317109887169923591203294447724017751606100039798840924102206495329141236822543721656569295477382595348783847354779697238078371799768280685763815932768896070485367571273319927627187782073031931531638974332060401939866683909162147144001281020231584415661105442672569821977496203751249897684368795032074061003146836367481014611140388933841867611430039328259251923390166165415236956988545344251812813394232038252933725586850138372039607325552936957382333373795021909085491706884277993566021501340632710650672386332564772000072466148308554262836311720463264489708652340026488020663665280821934548582768379914410813788935706479809695612743663153897927600501953041513648566770521266843805217681722983961098659242824193771014711817927212390880638877902777648752064185300753712236788490956215371339758141264749260857083746407771057490234704252126377288399152944170367286511541272091221664290689380505795932546224074768297463606907676040381108972881187939566756823179960720038913515288057954714573029151965184414679376753288288720778109283761977953010749752059378222476326119731822201661560808770056335366543202287570634150493777937233298696131785758398055088704050283013289436101660943101077100621327023537291590377488490648888298076438399835196579857422860677624166459185132774231355215182109211260264228752469535866999842275493798760921395612943203256014584431955407918274222236423515596390193118378817739979402796567823497244900019166155154307809560476652614900849306872913145018449802704545903949460210172340089224825465176157202455968788317336072108210588752661620278101747723321250999533268695829071568826909492850574152038553005378599702632472139021903958950073181844747174836420311509764001008535601613735995008022660649455609842135771748133053182977760132891949816218167311678326287752288543808862356359183111378019476815193366006087276296909089897582558786964228935344998467582901739204970887529815426635328749143079034581150022970896556650792430732045465289601152150684122819368436572714228602517804727292088268603128612952288247644647559365829005431025589958791232567179548031766805550730269643889710099938115603848181610231725495710789340396598036438232520826283401376461447676550484460210361068018798602027225537447133019168962790966410479433312008821035230024693928980881977890250277468216665717037450810585988957920835871192258815934998164522202188704162290293562153559176062803970642960117398646313377249335425572098787355656206500324700335804913877591768908696258057349963606292955723191621903952374794441858397594553922662189852337368084345276816003332084197259520106983235990290685469073091210409257386163148591498595291959275373001560554496622584049197143380182780720274633846231552762409264049168897729111630656761047775549670858369224804262125108093383802626543626842449860566192454966604559673340625533456566380582433024938457515906892539099006825229269303648862995298732247935709090126548449860813878877495536503446443836216268275706950531088232504830039800029144304119873770688502333073916818834649612834032897637613933847670717111808981194138816236225139021606999878268676965231417887482676351388345137177327212578691981621742571460686055739678897804446198739451227280734161329829727325973789562324659013039090393234014981722875403713490996034256499122606712934627606282021175937569147584362238331495986052918756217220939587164608483530816765425647832698365554219837185297230939168763665019641417685690452771166501525951940504253834021839433943827754116660775182939042784572676205555720975358892266890490010247122789373132569965656677562496286129412283654297934074525692323600305786447965391999671366478577575809245435129645458408048964385167756470752509698600250273416036042704318566736705145129932478404492873523956134533714478441508488979929422227270296792614508058713423597053714092764413812258799475685315319215516026754418832440390318956472049411617531914899587055355649922462348404467028107527385808551332146131402378507943248491863153710119300118665013355773159035515242359375559791870137657725123642332537422550278160541183576080376467760666302082901385729484669675050597099539634395975453827621706478439344645387439341308244645518988119048265303428205295747336612770398143917894116699728832646323423084817252868243004469808995192474435501054026147458868202078518148765384568552956129396548283824508044065172083788109422693442317819131381667357953449688150062395020570543568226513113687726181127225200400284805875493645979938526505659268631221280901632146656396700122936164196890000177978481625541639953263752929016846968340704092103281951202350438603273158013134049908851433331677135951475235194534960889420208592320080161510674448742877467858586526319202475711647462799798221900889454655097360254912928460082858219933536318642548913500092760153579535278815106506061073141845906039919597068910078414171265656450062918092998931219489604309528002611928447118819357748214443243919214992883714535277967832164032844914904225855600388762838894200764601659990601327729564749463083966173495621830919351237954285172638743621250737967418353900954944082637686508508648241700103227622054951769727085017590574693539238590420411869927631705767613533861360934155096259753487298878171294807077984905109208287098655647814183841270948145445352141223504708645855823183726618703951285097845577701270488656942154747734721781566965111224241477908101967265869610689053812102485198281123343785553086765996456597098328409020847653524207740545692617652341799549799861661888871546483909045200315676280800472598980840976805137331356265012277624881555605833626833382353637040424176691298978311794802923255073686495485891449387552633608662516570139215817140120430377995207736330664416759352657914892369705851586424321031183254118591399787814483316983222498658945579876650343614123284680247334860374774422866769598464916452504456826251800327763538894234986103322805981793438256687498122426735849973918377268116010381906622599737578178775322830122217786831190191261235514541926214443464720198376753230894531233865486287545432725196999239625313624417245343538600931741877726573025127889171280717843359695813952163888709650698870196931761889133054548172753910052679052083550329422379773109973183573688960456912992919528941413634741615061327365861318165109912968328048024764123541571302733146047607030066772213825445029771093697789110889895526149736576440084648353935459374534449963815284647768298331821497644809802745007259196574543842116349823229098617892285058204939644567333183443100816031004824579909843860115970686835076287808481364776638573292805164296140664864682989119345286416249373698925557992003658414938244046429137209496733183766397504062247702849649868363149366543414734974870606167172582937469983548041016975757401779353157314658717875576844868703584357696037023075157624012277874974289940944118541860428976480206943597734057900961865746238190908555039011238572287219350449295804159964990716764795464954230083704318688816944077551436868834330087582933957436046979608357450721217233065070451776574527215872231658760036808473959728270065259022794004918749126917174803537038023945996033832380089270728984239897724838437606710890737171273784289070966231530234490148864183067846248097816950383714995204174421788811234051206777878416041812702168890698517766828001113318310276767109517320461051169543929675808016024969873026841858916061354852354021545632625447011292860258028576177289578237480669921671276927269059879989847058365589905915934049371121524514951310789544760281623186005007184464530059616256461210686185164011741395824932418129010589468956625904812688555083006913321714092717288705009246649814066292770418222195163298808006339162496856728945118858557990190804004188970212598548429937198570724375085527498099112186507094308375939054227447541329845869537525299982752329936517599592962407698977968352325100180146290132735684542242924275910230865590706147893528658889626731027044849931305159966840706319194739603774113931672895725605523482036701632257204540918214527387797629030371012914844608084823368639412383007372616249434662502199329117566443223055949415543121432998742166337770265190027554489045773054609741346215370579776611999623712227901230510031572240867371981846201487644216306185520750200203572184628483862055310421811093452198057404262937937615806005220448095484409081172196234320120316847439790745570000490695692038394236952420555361262623494151156004082045334980863249427854734731237714251535361824509085766294238267586189522808990652878004271177806341727462907546533228262960221553429119637512112386854422886212091220055010051498118071508918379197950038826748554757038829505087675768530971289564506416444754579785204481069463537713330947154860462490346909420858207892756776841974467163713654700584232173687068978175613633345833629159443178473333618660074869798992055954623068854975905819034387925433135031186647871106241781687064169112536743860085623857465329473386148859871252025179955242495974276209274522069505103973105937814701054665792665262731528853594838885558896012426531936837262154983850327915932419006810817629479211115414568293503589194697320595129461697754711641879924198774452703693986948938751910845306556398510626040037867225312936535764574466182412713210653347685336076681977917504118635914959668696373869793033497897898998510784024691451305449021000907774552569691816273163182625238638499438820770460829916640533034367887004832799326614066822733768666918095214112018961617563838004553327080040622226856197536348757131172418268190308018604604348568711870822314792387394013571662113834853383954378711807432255634230559844617070980398891676993476852852367322722943898427372553339643224053137153895946162874959585820129753733526304244165636866142125127554562870713865571897415107886667846932831552196068226793691428836762078929246392557860329144470183092481286656824714260379886409830028432200253292222142431368207246928024461428561792687040293761974311009195419141672011857159385028412184486455854996290970882908606853198512793463154183156231010939690404190785734364329769155079188355102927764975454778527062186383016330468982446554620683883576808966919022780367739351199489440319218696817257880572773151166899572333911823435208984177542852547676581060698276079803954034983655330618273755459049836097117187145149536454518058832086996886040446009958664330053617239305464896256526466977088103752473972535778998217865825580897817510660680289110871289151460611556920421217499207912155858635925800760871290993579613935915681118888462841750706084726608781813402991945197833888298938708129449340096765383855536308468879622495947529706621697653351176799380162262496412588863421122053011591248905685645315646043807404817725021967864791769888624661155541940582516643565273661969118951210477570173715813303125625486867568402111168533790013413390664907944258106615349260539874079852757300175126895035794602951915632533322104434194319772324289808169213830708263246991609384044989689762562861025263500784005385726265355884583451095004503841805181309068856880195784991644923775682976300351868057659207330181327184688242823886003263453920826847409177059072502723227099850777773275662561634749961744254749207730243085247602664756398439511013711186759884326060223040824897935712452866524266349812296145720907125132819590826387761780645850592889113891304288828567724108899316777119172996644560992139087821246471959636185972667317025414996002801234982174535683130291253062094597717638363938879461422314729714835379995874820107541683854999979735560182133200672977974345289951379411574831489362947281419185669590801754495040535750304205419627666769097154295974558115411208834670467119992650667034562477832709197200720274906181827295336404935465144549195906039563693509886262936969083176115039057779520174641071068906136913987311206122277047789486818454014319499304721780319743260782998611293750018615012636901319617406145541027600916164830661750618062355147011262829895243240441531837980920546063636987129076353000116375793703156674377835954073688415586710371560845112306802434206191107393518962523229406880732707893432592654914744791512901391260266564291925367809039955537018490653696475552716631674325060157666610778309733345136235772420265499252853069043629910212409333713036028994094557124551818803504018834011638876787586305690458560201625908674295464561179556533764941674532775549797388857031631980435006296355805026509702518331599393216703360977621357434538579764292061922069929632684094203149727196166774557552431969873338764883526220572180243134685332225144873156517443042844502684191677402977207174486082981656711633242135526877336039022897009373738017554202790212306277859592897326951282084531879404057415876637849632908304559402216377937841707614292857535489225317244304475227325372427996077610022962479171450084993787010152052446228290180976739327127360527748821583942488227936773553677580558508010421741647233701885217169246181655395079433215148772674337088106248965128597459565289132740783305651864218558479495653243701268300766857865960256273442882037004582793198200103922943895057383719042738604105234535684065337915583891207151974915520387019883482868399814694799037158631236912196920496682575039859008438120826877848956135774363536795658663174595914513003953970337037353480063707265495092614565842872870517630958180548845981146596832232935212286630338453620342772017557626339137949754566110160947704227376215108779723018828987051509248656774427421272149850486835424362914353192405265604770260082174435164089162495195341271153527493165895001188568705188576486377122700770775261252293189613929938209668805316173451276446567229657528121133576821457632084771944791404817122786772993816105253632046263110036124380367134670171663806713018290452716900031316870953426755046018217892697640858601343083593674221975078584500617877936155070464850108053947053552914117315629034319040519050044106399179572571809252658812135519493674178651915750517260607883533330515632547982595580354322949145999795399685056266411535807009014673156479290986774246481899066698509404833879645133180723367236919403922753020433056615622473761076783177217315483342449802222367635167318375489567661823798701239834328713280916820421465957017550368934859268936376322976072737027934951124966111929559391803526129866639405143620260527598401936080865519019812161560907451181402898403448369787000689610668835552438629172520595253393247337444862583491780327453067354539968675243293223163142061567698440886999197399395657488637727466421612833960598797239202150123485946735161435043656807874557893246804291829092165742814091686833130230162017608128433915980225556504033735455923561836093985319872826720176689643403707915603111725224170917665788909337209525063953122259387482333302649951562236139160536320683948064835312553493351455370244444981104784958282608088961808472568366262881220185637798461290198204658013246833549718445447138108421989303503583511023336088350588873059338250261177478374512951720104756867111055055401720931864207371707216106139718976082427132213003844929109374758784585187128303544882538567351376681797894232863008424805038463585086600726293429236537472848235990035779091576512827533558440835910095786758057252178626769924358056645390174219903322088576154739520664944660932194215901684460128176460012940132166265413326352378826391212650350079283670421527643908707366569192400154878148591307900758098537864474759137570590568705130274863054664826543830266538913877327942824652446916761833635571688028593432160051665116603244048099193657976788342891341691998559672390675306316183750761370774391088602583648673555714095324832766046767559270968076995337601827036044322710395227533835288096660387101016486055829877757358641594850716808338526816615469365253320480640418158673588884492617379397971406338831209589601437166776150959897488018337008834681103746617205514673902829371988525938477974478845460877938771283297231086938007878131468018859644966224257244892723462847958737403252631768479434075782208501826761675032870423366853600972402077394611459579739123693265407665660835177280893482283795090322871179827818685882646352407242429995666871216489372094672654333733696570028249588323201409597842396349551012735567891311556867899030958149153734742184741269500884613779363664128251497561374733769883189106492558679629018926955540231699447387934284690447968008144140809798200838566289194902575940805739697035145826001092663946170833301954270817534987283498254870694572454289548314193095844281271558483786108326060258189335168712214699550595188307278375518943122087603781675419360554316021703485320055203278902391975572312990778352584168622038675875939118393235442512484395234073986909622172566011714303371921798475184506737296321768935074152655634513625905497189953779943862553199672014643915989862300358864543893528506668896134164186577655728749138365035799678159235196024417215572066129545792035761570871926942521327500723953906686679324898050587919884615712717676294644625291732789273245082713778632275561989364193816325727177291863908326091744421025856903712117806535049029892543584952198790198555826493748613846492395283820606137633535039658368252372005470671807856460963832596269628704051729718278187694205166566096434617197494205935451793468215529340348590571171950646543746711610674012687778837723383132674994873269570577369875570249456936152102823201434997698933588599220844467231174750621045851777061681170123711149584808754945977714871245331803829618104638035322181715869680823015207006438046629295759436635794998668007472301693765826021879015897330897406328809834771782604008962037514509022501174145583042390979483375520092139878630355231115912417072717204820411416258242791652486003866277539075128123615269390619935832736572039143435673035523274683196073602797808282995865980197480731075209143497928987126793916744641691591520799488522849282171373996378241575560635555598240429958821160827448718392319106677039750896471075095808434100019003009297310538200397621829513659255305972573522592602573454961360226780151464636602831695685147481730380655174185245505601968120765829175598515826569337120123083919273015982520156769004970025258169038401888735491757141377215069582136559795897013895328854168894527345456270234838126236906768143508489475907570777008784241053064410241990208752539127319856311888828844134618556485574973591139186294683362889867296328315925415749175753674629605423242126962309192144879301077461156517364122711392109208290859659295051069113212412968447703031773636173358498850045347454215733762766362343240410625692326725472800221157068542004959794033641114781101567019105148733665089314021647930374849294799379024338721536768623590143897254743552849107393041327198221675391605236508225980126852554735306435025583554784760700124226185168986286638540336594812422698828026239951243857363196093663512698574710483662225183080896780523952358320433173573270714063628978442459257585271811245183250922713318035535225368465539931511249675317816490259807336107900872186202402228193957136488632237819371223181040195745008042184606417649028102463960279091639523721177800478808733499060508856284854038748895693256382487013239568926257201212806291761529595679278135853422609735738040786587856893064857945840091518643118731825289594555673192506535362918293248927343446156045113418398385093741934127138599476674335806033117526561884479635551238612450608527854283323223616248528517702353108072475061961424643482191545600973092525171595841885273458369047656888516542229756922944962217339248182655703243130901021162793163147309982274688338355376392224651008445461626759024876293591678971746138379739728052209684335148594519077739606845482008753202861688531634462777190206954865497816052094388800087409335073168997654683102137338390016995812473362969977021376147539623827072568169980064639247248904706443622389333622222572093157277362134761750051623099880657592501222508192464632802904867738406262766058758924018767500113118613618376505197086748897332896970299693742631998256375794563993663759001874171442089573832724056552659886984879749555567664631162427138203789728157232361250389159517573082569448234131464662310159215933940687160286581398471311336684143591336070569617923803942316995884606540622093363682583932756312919679083276225081602765542260154783587779167065304384010272122561802871560784499922132064879099805831227652648274854715476368734700858267754492305833435588986704913701520336488831222612000706682012224649058059824379545228561152963747588282584748285372117506663818207869215683527399219010994177121255614583438283091577923994211740509180026024462812514117614322805196454766276379901545062829469476404232847731627459630199816910051627202689046770955126899603162805351707815033869534047452252579688641326814417379777511168500796568063594829827217352397412035614953348868863108636825653290891934769878228806295691176683457676917171452183506637928329447542893695505282106082195217452730415376180706596189321588303450637700202503097491003489024921656072608677077417635669429905003236600969690939405714570613772577877041490114171881922676023758223289572679413129933298840251629865543368633872167247824993917095055782436339104205444252555156262200513483801530123987494050478096302695411613120445866960664052482401843432187587604533495258655701981560012810837851323309155937925566682851083628831211617581970948944932876066712108746658379550418550559471618163454802668550093889826105245730848244152257909775728520941177707962669067631905990904664445523693490877497449128645184780925556845709468674196695158228897189493602469340081347413991167084284714278201833507087340160691927876636025462448367041503779913446707378751368725747464536563630565090298183344191945622788846060105576337257119903770051655329260720851141899235839320430805798067606770698397493571944078196097646171253046292156516516859248102797713592159982140571806473017648911657402051999589669908061543483992154296536661108755776516552482169346453401447722890547015424489198734856966808384983164435721204132744408176251837910224086876139139538002886821148805267036613249595816112100338578633523198932006959231225044637250753219187164250667192832835993804645782645282002067053774738873679161005791071935317266708037347741463907023333039264497716002594371679248750576522281527524821864616901284779906428206705524888701940219623460920218570752171268227850651209154156642771202646383445762124141308061071077472361291489054906281802673247290843124488284190113565719020154915294225912803781374509835145535541730284295023049157712502764403003971807992862892327130108019356468076957411870068913582475260279112167784012053678293969719446077480634697510599801837553561868269621131091052652331052089089766818204501920770791018069571255478509683802763210490187042969370131835670292518214173349449771040159915619156432500462362822372419811582531732168011646801720710245205375194636750645452399992722341836129215785453853727953087579371595975297394666356138520008643229683419462761143804574398256082111961404712656217849439369940499648022450276120619006606296190709292502019090324797067617954544087272238116421073084037644259537264661714365861004487094711215488680386951283577998293578950416498402356584345533834404007278270023710286399597676694735972755067793418897906220242319180810424318313836080936508700320178515075056443110229884388662072210879658484008934131637643201941720516547881241659020455680476149385001193642407152649308240267077248562250027704709819042380726792510983712157891912819373446490336771078300621488751272546637672126032321089273906312584940402314824791774932382426966630158429904987243952415294389190520769264888610750590842188955632912495672066208835771634349112859090613824578750092853246494612924896031775978402621267894209179306062811804812550192868700511315533921223623666716779895653651851046475663425320230235559362285545069387878234441728867115988024710589716268880584661167506416318535707062233310639997589218374067933437760379216689767210069047788832649507652766798080548369335057673607034865026564358249709106073012263960083915792134703360359902462031184697821093111163366846687631712271038611984510026153615382401843713126317449416701971573478971713961834836674693040266985388707351597946809153820652771833769346951655346555519635858963227800493736987551752526710648780686337853075365825467262848086647957030780068420452370726082477722856820716158805515318056467123609738585550534909395704483806108615180765907236503933924973275156731959318095103687554447787398160747687311165056207068321039904340214640232144683553599567316247287581689542582735413633151469232097774986955472685827049338903430927832954343728488862335739351452607311190693412034698683541959854115505740700667322022430439357496111446803731164690904151624489787282698080943483813138942318373077110070181971091068519288902701626763292782991635277174298075647512918745314507949098794730674743361009518087535421886411970654922424838460830046800568834665872429148354779623438377596179745154003772565889085095198451834616705602534121264104824911884670398175537240324020294800039480960223407985311246276832727911712514334725834959492027846737896516347193712834469115542976653654315075139635400933092930810594988111082580819845861312985549126405893137376445828073639977518927212277143341962189014366971196838573169586019796457962353648886183487225387071251595184779921441043757515491189603234344184629048855804795072907152785874460694461425010240139205137717085715568747744637337673088816246751597910576105110161765171527910077801030317780148905900148972672473355390120372253952703108636171241030161544567745004092638848304141639892507257739019849642150249822135467586574139594150153033981983388537365101559563217940949206143493620644593462355467130927427096780576104542611151086508095581659901016735966355293777348579534014158317653167671552493907862643150859190608271314659228270222710620322304639896040288750477464676425248691985944564690523632357710046308505258678208852129547774806279598482221140367333136547890282545421490085627172735590631389067791500700760383341175897899338453575808098908774294178776894429113292129756148186730352454992319747650436384811633492261781818162356803554343353176061574471644966359386619342217806291965640214270606294255747974356366988560419510561276611158039324317603201450604457490647876360618364552399865207253485551410530179631514696430902553290152546276118419122047643085718157458876061358118486400230170329648030844205734301905287238617531383651243752341002596906586490696934803724517238517724332969259391362894869010104208547032354376895185790575247821456769764706717926993711617654320731629075586963169898410382164374656860253803902887772222456874394620212689668422705590742516080462016602758811213994682788847950575920004843566504182658924079349013282976071982000392636201392333949506400379743633889636405398274955040443159922321380838979192348734995905589606668417466989205257281131425753696489483968352223189742962512790320362424136816653727649487054893530460752578434483793342115052429824760179147324215612612272045868709442472655028097422132240345270686993981049413366290089388251667018361919426821438894284661205915390910567537483400039086037796448350924014535754259540963822670723711569973266445351822485168209604316023335929846631926665040502786811989548437489491706118169190833749434925759370133786124522414901201607941179435048253389857572454739392923139396501905284765828660139625270015398679710570897336466970303851537029044463497903243392098542929933504217330265207677760048925745901063531314983499205884475816322298782921477825577196977009363687777518678489681346111098399416094592448036206951122448921300290805708503010727183253420102928213679767494041910068223626799439807930402818137757987580504594972692771233774393897964018225461040813645586093998653685817334581335480563098988034599745887555628856378965003194913983677617982968043949154995031609950218077892610176854363914869668303984463049099209599909469878160209219089541811386543247439541247376299076314411386020832292307540053664661662364122375968989028841617737610132071353984455282402377766937532681804228948426275947630364773768026159417046180525333295967635107048586806043816771057981087898311218727526654325259591691586309025111739971689801656165908132438490556733952020424608375360383727267433066972771513639682474385150488983925942255895176243062741304109641711706623538200581684671921734243645604552453452404806308249111723859772882934210584925519497667986768188681251392453148023302591145978014803244132938832999627139582351785649277255899296466289601521590952446489605548508823851661291939366637379531753762575572007297734464582796636035521910684030570425827383441889166361478388072429603818366326632158341232116440612324439372411305445531444236161427001175887384757837090871666719136055115887100858861248331426603788918179863308343533081470594591619409312129560965362527116642086499266646701641234798786859818391536409953541887843705534870047137801259666305837925110096024444334623352826636762228983161748757755835380759007378519340543206096310661640705352590231857848442940612667589406148631025654065728282831955969176323798747248090012897989703877320167223192323794326393143412908660790571943534188576034873524298655178640421566457983965981214792381483464086015007651461443065607789819832247904176342303453414808775537694503459203488760642744480010567568103297215890782822287244894785479441800359455598687473105547632085066256373762380239872925244663385737619756742818076595285690075458072299451812766937375972403876312232566524763838232339082093418507448107054261637417676441177578856018536553703505483048884842332025686811755907832624261076292052909686584459523336795298326567940336731012211784431494263280358235611079939927452011197084590470549061691121438899695352552446742242114451239435912214045736753593903702705634672553579132807706229964170329816676474487910725773771050209828461589817990104277276930534336471985477828688855192473544722754707171350022790645630651615112360833425779520377788436838806318544114566875081603305508936198963451419533444912985643501498833906232566708900964406509639770228456192896990119005498244295937514983247226173470986543146758734019304606969734943196824955318319223095999381398756468030695741528551173926322209382080860873361493079812477165107846098703916302217543693341076995062963833509067165396944397142956811373004437707676915874365606054338389872648409930233448609122006522511167389959002510328866937499655303832861680813221286840628252006216076284446129052399015690432403750289095414116327031784978992364690504138655211122136721831030114897345161334048933228168215686154334807337584838849978041266240059913013993555231928264887852059480104169574071417150971011998698133446573836663703633371918335772498703078937415947383266451924121423098197149893578316601036940073235930683579571252529905529539652751902809133403165962002713861385638469757906448913461667275601999666327443597150935257880749710370965895010012309407672005798292722514633767306574953246628072590542738953970553544168564762004821433222878398865150508796799254451373387907763563997928443580520937359324094323470271192001770701468118846137980448820949648784895588266671266329619410024198568884741080972660440987853919025729669459154690037256123062925288360811835580767694918822226556482350837275930958310614226730045314532528648308194814159740530102245168062811339256684842510328288855463892175116883469129285044850905888511360825787521707020040553970111454702659928341822956367741035735095381821433624057903302976341587230651819916040627666779275110576062384959492076563303409915297579482279254371284800458001816487349341898650224781963753686324530422449717625076059758861857539785196965760296427280193356679263416723689455141377700696395023294514213505597142084487980584731871127893301238238443733282921215379908061864009964716301425078381326802997040657496712491167475960712252404445158529886401454343087357390082162172170455468238279188141256570782611931477366673893365727251722921252151193034985275494184343972795473205266592805410885159653848243539004280389576754963372567923558392513836740731792959395505297972516957958224869341368700120294296235993766681976470260497750363421590311826913135545625895082341898999442705152402322197779532551585052462228113647719124724506045199278656224725634178712042462969548976494705791988045983213900330866121955968247918084354768169543847091161452471706768942664723440491734665575720416706228240052689998064421748926563527253617099811572073936152746463617149941632812886369897140828214360525295455779607465230352753263953480880939737855063744779527955605673692345936308899030880815492090070709124765411241049572182743625923276010664395964135582707480604319639059447736634712350808938529194025434612110259117895149311168572826855091536280331322510663203437213139272888880144193117333844266076928544552162079212445658341154055793564051102093907925870531996124594626004212205013900127034982487356479333174947748333221371196409280909292400599989955174257552385100544280753426670092309299410667376076497089815520462118917766089822604790616632841918668133052296090851991661395229973919847648071862812986044291596887037360775915696656507474339000898450177973645458874400891786496967031303884418070188422601524330903057278646412510723434933152260981266662093557744394454290233744200267558406177358792261489467280749872214965259340687532484613397302702106719291678248849898011066707638604316788225384114232819989069814769481149003494187540026653381349174041788692582584917089798342450894193478589298438932549887887936550158979456569984151633109011319241513055749738607831167829988043160958593618003746536550538821149966078759755847719406483677011586681008428786865280128206566009449249510791573162050486951595942083044641898624355190473156432331103598303279511339100718088689645745013633917458917319957569045810057944839126983733694088269318936741214844599336053508511793023592003730069034811622825129742577020162239315558381651776405971832398922807660681002024679616507365408451961338774605294648297885287533575129117387342161736212646215680650554413888697860917289948810262605232248354657733835623357653442642427363572398526662486747027451284039109741214216061440546019708793718686085785169234307780596177983907397627300349421508917986967841847237060156179131276481004924057632927367021794690711823263698801311948368099663691340300628201651184866399099358997927783857091224240358331507950697427407625714130464707312423875142890147657544033962776321145070998485821926157415545567736514010457790470425768591183307911036544324172454234719769295929377944940401664367676678792292495956165182805245223305917147601018496411680195412021957225327017621083282737190697178991085051342376824851372051054662242401314319566407604968703578799773839750129284868784660365974659994138003974485703149584647248849718095459857022136695379872301498338988200446744502771702541096936577522076338657526722856795965113313731831982860429115606745580598582062653698183240271157705009808278859626040349468692287302929377724485877166763176231213010825177429152530508477884596613127811280829812530440117186910380248894049835063090047628412126562436670371787484306779244819627912612566530262749404930291310783231168941192520195695520812913996467872062978949081037142642242248868373143967656310990295923185442815606640638593635939789766975657743909794661866027634452706740582333179925716702958814328708247782484531707604054264073467674759454436558429615830156485219054124887663519173964942771434750429548644916827332486436951822406007661157947863840501046771343478391795473733793152426143740094345486906777345110980439319753462627535667165958419838203687236704639948860140503183528864378825752898292018830073631534401463193596568084366637260690467681276475140249135058507051839159862833678369702920520277188572256751634814014734404330311308219540539668507058798992459799626290892373268060050150178705382225244333610166834825068455432878362372072389403211125017781343758732832491031318398038069924749591174432045494484262021868657223064184781755191689441942027243770367632399974001822568809178563622846954740300668225673871469227413443809146513947565015419436994918094203066652622321204186439879452111180978301200384700159214924891111590410528092563059680689754805234620812212686762040724068712140746584918547206962840321231327717153378388062134189659425394395816825376171685239556234971247712968632462869647190463020751762359650669130069409317410477261349034546892467935782703976775351575239760606974165411602231814244613346106214690219585400684273683870875743674719657413762731274133344553185107627284520853965608487896679456932491601225954239606676480152584126904968925056370805578033949054543184784964117487681732620184967287499718868178723609785445022296836215889720004123534855254820534655571344782262979348958597645152469114602287086738681031768787941285382388974154108372357067741226735047601998975578492984076361640650922372079613269153223889434835546788221473449962723279543028664924209614331124357254677086405942671220584832973115054808674257274127502962981279693445103206243445313171369132781570693536881972443491066114725110666933109948442632935584319627602585365159172526643608404153202191056925949209100137080635005520897786372585770965578248118243352247219604117291820145336004677682604509351233333010696069834838770409492771199859869531911717319065051021456784356865016780675760106927281842135311282292642594315835961949547832799570781317085659084512801426964196775292346436629326243928739660017593842157414738051346960717263558333066273272904636021424158974319916691403861283129909008866452944499412886045778974032032845193118950802633727347402576581905105523114354573438841714064122636719723044596344610208582357561074586358543165227194032027063390990243337748587300582937415800693006826937076580498895489082049670868875748411288594490396068909462607568601127774398871527026690633323687372695520487810385308378514408155461634981978480999276769914250651332971746099618218201194305278067269519253777325371071733241079769833637761484744896877291458250050199355773849135583057560273763801432000579218972830480002623894241967091377437606854726811213171259426421456389573534262348495664765577048075377407766268535194915747859997609500942988851246322560201465614600566527132573873251054622183584980264073970881072471084822120348207553585000844847485441756897066949799260997035616764931520663508104245951619621114457112690719757318182793524013953248320704767857296537372436565886510720474296288938907032859391439461252928501611066294168426307921710716611055330602958573523528274011701058613107577555016121431298250816261612296957762920371466238718318044416220279560332996607274865279617771858932539045591739882254631334802406651482045629053466729529285385695647492721303032985599195153964352135770494632534049984081906918186323495194920716593207272575932484369242130517589519057345745325712720300759542868184124149733825246510743410314215299452747083664013671699695753227934142218516454836506041190854561723301347137438939251978837438307715161413833714410440685389659001174653351305254666012943142056164872814123459079342308612661837047104363017993267714504450414081500097057602390638719269539630394455516465275199920388487641053355617526251827073214788984202935069396358790473690190979820961211727303698589152334578485261492095746747110143283930370304032000167865444848548378523828791149975133230197993125780000870514185846328080877590284721600976120478912703129334097726504795200145102850446948137270611503900163274284450173147080028414369876067672656628355985987558701351131877182645824562027929235418432963787941322527409244400493418147964678491812443533324193920700420123632181690849708150906510369953654458432840649362437253945061888356824739843708946192804514804779618194880568970227010459781039814524498361243861024975259562647323598480919641129788187074903048225682218463451703317483916088037201778140501371320184915531344412184270136220596281782814109950854245999418430083905108522912089851216087772567255577200511670969171237785966485802711573926390924959256625044795858947202926346862331986999264925844276219779842736716566844833242610572737000650847517198393033045265383473902593374279388439768228932768565992902174210082886326062214413616605471639166153927946271073613106065883006995701306525334730416348672311417191619089691748204594383186674317752546076247279142641716249102203054174501654038390796320137197212802420226674412469050768179712521923034444161736983529021866539611670370562557402893009606471121132344874587808757370384386153708883534810101525015182251396601579402260913553840125935990963860777793551170442514815966846254270359852923953687377334865899046132947777624295427496492027643630015024098475126756926008693401556333209148819979338176740948119199623944866339553468668383358896374792887595695795929094410053155251498719991406978098670654229758111480534765503546232232368252238670714412855605463606988422141293020506306147054445650645726005120005289569277316289699800142970889745254997266103184781692191211486177486930253563634660470710288894815697298486032017633442660175570545908915987561156319630196045265434662315131057415350477168053466030259420884466735765020162121516801787882624875034507404930448648067232266490247639493665636288204070680982973615565129109985056493175243511425537157378844274734331497660793292794193238648085089213276142597443187746614157843075525043917783982246174016175114771953505405319915931388309948747995163535394091193318871987333541098160292913325527697819190114839725900664816342577560139129583876464788687464716833386364256767448468263514345197771879004884555516290904835508405868607126620032270335737952508002969377891170597300369577810211002164435578825020668590558397252848277577442072760803041922128469598786057265801442104625129012266770905494978934789406595172734056920985358432492241777949228827938110610522139594022998109881177810072666117865359416929983373797757688235700828907915987411328094256990224182320371184766920829857903783492020176872701995949232035763073843753424660549482896092600435080664415881361902203926645511147193020965074568493803803129996156450931660599922009611849814636913515420195319383123312151632862533000779889009940297514733350560234422457499827311128594208730835822358006997665355992415789707788533339094448961142787635661254128361051361187490077851376368952870427367156305889654979557962319397161800930662885825089305270435442303461416740510153195256784809137962669815357142668693889611335949286688370826827063926242579429568697607130755227008897992740421995460080756022916573159694772105951969904579651232038998086641192172630317775235001659302225981579050709665707007341096562946788439190262015827345034506579358432325945341618794223388749908879983341894998541600764925538930292714966039264433812078047016331859758835459595696780817716452876519964379647683273764589480442345842902591393960984959318639694329979141680784984297953518029031063789648259435838630375380596091478397927403022433240601336790025293919787338626943062874436466708082871129841884393018020422472502394027721141264455158235284838247550235207696301120906512504804610223555173711150706772350844791844006655058967818599254110670345617197332411996866899317507871326650545911980486252394284924410173813211932729997025444755487905281598976965567099936557847765243219058980255153784407484643982301831190143023106831415757735510995780829727444442714301643298934346111386077563286641514404218567453434239473976653367440454428182527383290886820743479364882733506833373500448932160974098151833511244104679022691987639157745468527991043437927021384868993815840220577631246833046508529877281243273744585996813348843959337829952572124666127841725190568888851643802043690321806273227778275696585809320581629054948238884642823628218071172271034320064538529547104518660591784837699856678831377293038614838857560448742724152651353933625699394890009578945088791305929827473825763581964853901893317936415652936769218480837884162906796841864646529850264102985743628658201943549705221992290613485468695837744428149071441428843617181915545754622300414956297137664992723579884660441502701789520005404201078908552844250077314784554718951779085347869133358983012529473289003492739703433127159692065059535927046764380738493000790656330872477369528605003018556774108206689135383434900608106893639902157229206849597826520360400932576548461313265826439987009931532463169908073518650245755403373674236151591813380843885453292472945984510132214349509658059786437687484642456818255151901340075309522836304480106007955509731602256790223337141211399542951554906752463153977817173851686304612568209633513851186690593266545452085969036331319120216872384241825115073241991409318029371300651909391077967870707430622537217696290627269752990432922050543098382947876206019425795568936518423386387704486810186019473386819797841757790847078099294952924793809344679196249481517861796195802103531678911738137337538136959121405299240738340581729071881841038725336348971705678324705895404699414180538162661208515144543113715199846312360692063201446687616627229085970129916993908018418168390672274826917366371378687252280592237587587921467387309214629475542552075998759306951937898745766631488817222699963100538728137551276766652124239215540389627761776764624798316669880456052511919685495757617723846627686186110697451572263576777675627336590085679471506319963657548992805085736687290032308523735497231254302790843949248003282580821158745580799985975612419641308798907144387017018958822951362771183937939480969472874726625612142502638498653087741500687964510963993106495172479487784227846003597260726111806292269898812193708708326074166653493163091504315626482607689416441212728329449612801548710955272591093670618866362963209605075725311663769012649805059273033007237420271009270514200840988852566724088428981115074402277599078951017610605493709968976206835433056336768241684314535602470243422215106928148853601659613401799697190310310284925166147889887705771706451286293587394218621367484777790033534540688820924572064887073242579825200508515741153522763353072631865260471206869850952368072962731047223212347133417819794609830432952963104739242403863133329287616368591472457320893119042152073305067895524446153023293209010121419481790912357280109171758882977929742036265497657526471803852507516706244072229472936350408839049373104565305668329578842746118661030937683825118733981886405660171894583287814932773464145214401430479523685129169687611764075109733977725015826709990224877968137954601776332962018664861227476183799913056438301048607600898748836905437641186376414862848836865642875301939689683730835006214005843689097640642243894569925913218108776240643819697735695252954243673452325132736116865995275985065201972729691642343139334508533265703683185617359355852566892904520274566504836605778007531673674620604438133891973614645327272947464268468796394555832800509726442715250031669164731022185213935702635536306242985581155473803946757325878865657251218445664559695326637702248981652405026847350883134666552382962193597185148395287062211255334729309692385685708285035966639895671859562084904369314269812412047036517736726821467717895392211155760054912533350669105562258937762839422419865823405010868138711778394411267307188218057349069150391942169344995711482641603577943684271632776354606532557114685500136350246343692048256741405852365872902378978296632060527696232818810303286059803864302797400159537774210799299856359354299836967792547496519504692829803097419098765200345364545611734075791068974687099496184947392844584185880726423472427667804579436680329139007829882082469728785117451797535552015921774590389995194271794298387780733186581634435588026097225555547042276805273043264141295108925065799794254250033207082349380791029075287499062032666695190968597471127763534448441989450253134904451644046788714146251103713423195498769943700071654448147602559192870280911417446991307313868305466583493409134944715468753184629009030585738470860638031217724939454436451838291493616773998273992269627888402582645655323321287997917043692056286848773703216300109093932586967088434301518076582573479197508651091358250383245343330769264380365097682766718121300302261070726657276809897067554603555794574880368590268841715267180519887757550505044070988946522387311058937172412370279267624878305687889655122922019838229810193768682010295116575464036048820012967811010852071908016426225651754958152335965016705468076835649315464705656031598116719208263495360560330103529883804043622381909309335009751606638370175587881594678778159326447671161764060826338648087139623898512881254900715843645882495778265520136956730756938472360686258522279216220128430376266921377649954497407491263138089045775960931769596340368400065119025143203421797406011865512516124666040208622565046643530497881112919618833194868875570019945412291042895452834103072828096637193924681339287341384160280748417304492062111169263313479037506229413829678021458871982591776938720201659153452146254392925405077496128992729082451232361933573269722732300119526632823877798156633968883281263147510012330729351026533242593646900418240522270954943941236866286217678518426216248257201538368329864314138373491517810220818329075485420511042758678138476209192402546805023661185214755527931080371468760554874624268467538937401010548970135846405590765016570225777532454718247116792104269372881766259128866956752763918404078634528006647825160881460640526782685973044559248044130152826714756787201333608415989392771740174481135786322620690384578650732504033450264731663905488168679960903466153429089236961483206365182421658212669742247783073073731406777021970694679541185660598858501251941450711667024285594175555995400785577747062344613905043429157919332615464858581808350794419472680125881691185698683251056256212574591467170518066414865486082656305666031583414701505934578851227275309258162091556617341882808045073999802174569760486310219294867582168182758000968251515074679374708621459475765909470160848284661254306187662914270467504014529975371057325895432142436394813583326389269546922330272864779162267593736368191452514349937979724750100040577115843567399712877387649844243876654920079096921229851631510839842328154045521532815976063119327963193714609238404329864700554323027034691451480843586308810786411066803541888782241502195208951518769590854236457798801927635968616896033273021716715363293382059477484341534164667842803051495085970455304305760765348030975246213268809984337175396779051777581013769200635295983112656161111592438876634089330183685717448662623233104746014668323146499833071809956920329965579479039568320130896363500407394020209705792836062283520538969563149000666689400790137927427113150979139670800861681170725920393172887398673837433585430335283897212879249944663885049734581233411944718683516214204701191365137416254233448856873717138494905408111186284688498536000439102444601069456289637802017941826715674548814284418629487287056876034737545480504201486589961135065772580918645661380478995980647868704146051433860286365979438505580623551806901764460355483460886813217675074476540116568016640502284367625982787835060026367191580947760924920063516078303624892607066271692550531067174568074757714238067397946449763932660477411921725940036522208813819312580980773327128514265367928199484161291370411614263037866258791385979628060309367513513278104159508501561639951716017717313745249889848340885351451537250247168995838710626503315342576965956820894462083409537859608107029302435803435191231632312322778485863661698571327223280619592047059267397570508184077756865835596087269718265875181106899332776744873681486328707152928908912192057900448172616628818575853482934607689939469512298039487675818353178632546481772266000397419715150250913561150456622534443099425993972467811907230876382472364065046829332795112064419466736267988684442472887478033651366960364522373675432903595786183660376518413394698552198978579334798969132399179744788139675304329256459581838658547041153473731336579827309855241984871496698848731520697133249917399135494504721835399839325812866579060159281602998943267602373852746321432521584628272280796928063200065397209030697254432872352713032119899188749781316216553187100608045720080232624391637410368171181442052359629712436183481973896492163192515135722377646847108929540595345442655426995445189683381842219683092097776511407651878686534885163036050371837405585052157403551199718118893872595917646439110044079068253418776702385272427483208455898155255032166722270145544846223958992197616968889237022986635283572386723883758689168520554423347650643408685220165511595088974386417520158943274003316011257060614509676856601996254144536195932507775830680610798964348255873395359196009897200971267953290136421133119823714196779069219901510022989415554298789498054645720899140874154016228440892823043915167050351750844621757209205055869596790480961819528306401415391568040488400077043234353001088665034947292627516754826211704843253715054791276687777283162454336017812726588396912911870518368297626458280110292433928372220133773293765408242387958921850181090286780214397318796451818861305415664801436858038315037194607391302503668530560977656976129049067757247445484365457300885821249092354627894294949652673769930893912626806100135400396548268607878103183052567615169682521427486139515721417725119193107123395787526068461696041548178165343005754605162912219720745766512762970907230582726408172552544694838682277025438294255332470539384204332766762786622655774321573335971546082444933920055920272189942879509824287053831323387051923717279649557551782288787304567385937135574231417430307088619379576566873212993631538417493278569733924437715852174532593503632990436413395317796209730223584639181524595438131273665101766013791040111528249531599837806987326399398334392782415195490186899336979396051675864231999667219432613249743581200150183694861828764308417649880024727832355788022573800856914132252742903472721597921335767129343277260327665935424514902652814747741912697017081934474874961764225774244111979291320919457521823743166495855291939742027467525934794896902251478071002402562180222272534700560500092843849449891268226164877548653513811289789419421963140910794323431067848297604380525974937210017880937647144654930037001129174851993756787685724106518538076974908631962236758562871224295670210944873522076568624725207743622565875571498443197674175405725517482686193439311400253580346670628715605367643122273627776759080446975055793911816461111360198107234777184432467420298447698642282149058286216244840716586579667977916891840145672708998000632042645522913007945052866178833552553761231560108831863628791191156649615015125917400748055436568255420247709974432314206568995782741010768673588131993557261994338711625674581960422763507791974381254046326059282916344822652718481700024266031216812730828056347777013884481817721256614991934886454015472756635028221387219757541937648646589604541403646360896337227831588304569654429480741167894746473376639685588580374001573780808759741395954980449965457948776435209888661289134137806290257289964975559855446313254903159238962225359093216560673133791545367506970498285085319965227058853309545174014902803711430024550690560963727475642011956544114751066301974673488882869257466770699748480585113838019112940203878745451555518016666750880454423082504633339571390075064953306013755300082610335886781988437516130085458440615828348726286896157744865042631345662099397763225012935534992127493381515917927905713558392243190495122467079818809918396121562426054295103059430595898294448205757637161708643983500117341547712366880321863824914977511562238506606888116924110574815707508680623168760482035765557471498732713442438435108483423676315480660825234849605679363061605385082883826116124511090548535079951299214994334474009315530108445294354723686920823371902376833673032962846154506116092103130369843135352042473468984136091668035087792364813681494448294157496983784554900289035519288131781743944691671915904837600388927599573032903639035962514134737544194847522541810770980413218687814950254768250740757004539910643728468495829465610340678677662407554734677445133504524613882198264309983969535924207672583408685620137479998952441887537009727430684137680731111730180751010255660141256332016946255860188772611684609603877202592744287035025890172570068074535253258291299684934132218611377180373836928113602733757925201048943924634235314965906825100965333587107472538754565430802487050352866237550439947980643525027206329424611186991928350411046943792120393392125601223640662951898132396544673947467866655306878953488940606570611705557969956130131158364006971588466834669270482257606107724308503663687592809752332248180354722491546003797388458288963047811083280814256125669856630073927258227072569682029416933038435095311237884336766091765507462701983523112183838761735750160623661510332661594275562183655417108310516703734816423837380430906147968231460948495465047039351907698492279829353269155066283271968584123563529287562546513342633433578142185195052732011244766254089738189819669756280907651503242090291045932018513730213122652687791488163497345352932894819618590783488426457633713244392652846516601993201533754430835121923244929789078707534268300196601350995928459650881707919824463157798326488973377177535915283459821702049861525350028464797853249271849496231502495951780789891641418526389822138300695091335822454160580340442082747471459194627239371055779785105877001562640399570887779252625112873674549332498374945279695939716735427593123392241965387123709447635189147591911427786055038473606289877213787178752011601297049374561476558900801809257739648330435250254054283708487526146093075099959592028079014160127315032938438424609773781456733365604719938252923056962754991277281401072397823235901520752868386704428928709921724826626355096722018648668058302941959223382725450412144960119716479149127014861144667489033853182538785138483308922210893493276054107415569281511766267214707711861368806950950052278568812297637746303961954374329218642139417565079135865027371467593741818736829769474474120236507460241279171817495071983367396481158208052407811176496801242128112330219844760211185398388019042955371767330681480558663874030908316877279445695470368858916777012814246966441576925086657115771340876103783816239643681476163716827411223743339713800765168976172872776687802424898547168000327909335372084356827928076610969787686384161780264524590798622914303005349781303594385359250691418939244645857108004605898254482468897855811966944387508519505076784439465078074127031396982631556595874888808987040534632539222471459563780234913019521798757922016292084169622722177794129286135844667822900550448879237588837539808521577028634992061418538553196097276547336354938704772585247272194280745760732787702026175612916668222518121384813052612379461225564278535864567721234003241053644221972090348060051782079961636021678129057179137897643146104097696191404539223838837959545747463278734622729569935450173403044485744230338785759490335293151762501888754815776979308607581186399927860392883837659132814202275747514751470892340115401374096551006444461558394453188803345141920668845922822019410410285540673468044186616286513853693971545480034671975049638384521040188353670007827086002018420655823456344462185052356780964821276128409773602762866838711704961786141150918944327761264721350994893308087267861086123146416430843070074701005669395743784599264179498727349061971203992815220340579987623657742196122601904940740161067338506353025968546166038371528545534019588273054732028856741588810163669691620631588025537456896656930516106842103880096614502906764219201429486103596317723022990516575689717822203380140940769197867884710854540851237532668749723259731439921059688784012807361821994569735059273250026826263713521647241068015846645085821519150999481889667703500135896164440654706697950048694906744464484512114793333496062368939248081526143146924649703637524178692980308611236418324625098280576477886125158815315632081639915529928227414199288747145735592432477534823672985069799541150530168617241585443397213206594772633722785315492598495545408009663030142705275720901683535298738493266675454630467859728175708494705522751019633625650703278601956948724684431789037760838384394307142275847877638098585985064795933487449393712794616193008181421967777582406355021247033810820727454432259099475578698496617114195254116925270843213852681819684435655999077713208524008169042993992218726271811587591813810368215819451021004505812898542224985545740046650933867100884907838903270443432511628890534397639693154238545713255469817378968494481797942866769388035664439847985169597303204393134037961736446365426826355753645669391445698347468911922936289949144692082434899921834853821085175309017802720237386802488762028611003938317309648313673464532505074748416369043680173109305656151084048156003836888055372969279204216228549256418182558068639240273719794907795877044758271871587947903675089572667143973771887134590021355946367329888092723485253053285241114408302177448250315397258547775861955434492567215355124641783810174877044701098760526796201253664847477670248702551942407519617202408781168640196919692927395872115192836168416510187059003023728819266127487511988317758144836730549485120632223348807734410985857797598247695728415738711917097149169209523250043825437743483275459543597581451646371618027994384548706685623035209122742230665582154626858397208128407842293514172588527937779303176344659744260269910402936018209593099421422757300811444009305259631633157728042974519164417955353317069883397781317452903815103186103727771110478438450217799678929220926862813417965251871897156228310471380326748913843778486018498530918565291468204702245427600849569074039574228254377969387794048918141078482498693144949856493417133252359987564459503802916901293032071958181060728412001538926458817582083664367861579892226753765392614491163686169523815723827111562682944625063547115868658582158694839675310175411984583213661327027581238160266529122007718706617900307372765186542413715327655292885688572833231663562266936992610154274820686888031192111846242653699951051704490022008052872258658947096732957989399652936096516696077960885024885963296507591842574123218425199186866646049320491034883531931760052519349943063801369792916187141504244113661644508369521882937021962470584142992370898851320360571041035137043777547207793815567490391694736041261344525459675040370927081363384966125794590276114384688478013379843743962973428395320422127274671683735650756187897546909866473040197479151221160928302518553669944896544016495026759764208725202589434047559960151408847814487378129674873572737883534182448258212571490420613230244298636089736259949244000246523811034304465473320562447421864518214216311434586276872401782390614474972558082285050600765869320962441330767805223684666756434269699803995736747001725503296154855003796379918918148208027362202219403193240069921226177349487425139686178243137316159562436260592363985063432593679559699618621314799377908927626762050632849948990275592798214974743406901014999753711696807805577549970709653119775689918366615319804265951885879841565969131744068243671918066576686197974639462254425861350524462303880493407783233892459054731028467927173955103183619588076423585824720372255690488537510206353579128856623574013139528328232769299385886201974176278171575111984517003241378463848599342482492945400967521956414034682926477649094335018683702403620997430080901919527724866336152585274419534058113513534430917933406688424528617635375521446974682702876979882650353242999054496401916230014355992135309818691318609996539642836704313639254702971269946544851071698782210528990462359466716364084793092856023851277669732758536907471015638463626768318120245572276070483822768556776888821842416095328594490312315011848717700927244938881701476814174498029948223899458782703313983296171896472666367754507798649560470578199799118081911029172978485411213567995488046801489247194767447001342157659704778726958481781477438682495226798911817926761264083860667860048472747345463510315522701721922963613002952929402953897375494760210413821670391792021032172801241616206290107391878830334458415180438527718805954290445365457537346021425198058754933724966795279269914920183816298532486633450082623995844309533121067575625934700486908897588599746889705531877743744444905892951926558886223921669503342887810165620019864090971806555076025722611020899844288270042298550228547504249258065238644407915295323179736421284950730508607875253172161225970680780529443389448086249239658350759383965145007852455195291348898307185065093234064456030267645516415232466893618595673143585892801012430814913370405992790784014777893844618773410908245291410877928324956315995194792584375179634668881539401106509002485173772714316615713214341901352525150325420336174032605388409068689260524422491431289622145814360390713977898527261086813154346004820227137992909850068730384276647915515575609377684943981498800249693197782932879315254615187708740439275126594339535044896832732652439572147835543190788004757251384904209994016520327722919504614301274541193210587999419989985503080074575834138254848391288544508005879688683508650696147900940683368444714028024040013463247068892226752488845408453046349199140442088088091257985818596086079880714356699827474689461375235181316072436356723367364913058671316524147455871783170725078330652486732942239594021615449605299029749006670661355322434232600701275622427869049865128192324148178132836424591549309700055030430765431333837787987682838978603933227360057712268632553565305197152915171320333515826323125687736796672156572121821109205540675609994557024583086500504815150260936666101297847833975905616493900679159672988558461350893749410761861988206728472792114810795349858450505981861323873158148355823937843295244742311790557341170434697088525260460766636416810989973636858572444300805550530072247913062300673986882162551873674743739180165729405635910168857839249372832030306328777958273116630142497177505958085476829350610681871273689830796024323016834010604277926464736955849724402918794222534309351790300154595952622245321936477233712850764571176365469750261633107817671373777661118232236591234356159942232881737182287888514331950884218542905853720420369528008736933423072810254393484150872045387690713170955075432319039690568918162390574952188942124095075395860739097705668685497836554665141914657253778616363761675475085492393688621813542908676167505904460972238917402933996843330315451879834771064039927864025563744867217440755026844751997190482209892300155813672345315184473735965307468154796843530885358846822101542841250204482760682842820892018970270359350003697286877586370157968922390715104670873043912781117706748288215143680425715095568065796274926323966743559988260881321044237350430960019598218275440411793290413662426775889587555097919463308060735125066437139359102867361102813247506234899100293233267151828551952429341790277997497073728952772709186181409458360074797271159302860109679037587026259686443370600321944568835871994641838969282673848277340443333450996174223482855857240567443600880459206803198880363485204644364759054680536268749878037246811376120966389560264011630969416651320196049012728547459496385038993335135729661228455522549345918429000263264466669872515044388262361470102434949926413734025137911977697862922161708546778940044299465224247891042424880650698212908897662439649947943074344782439368819765990484311855902572519890638217637046770754229030176149069736441041728094206423346819810359366766773221524058729544676286913143156356484512824318826870046439676516089890023536009715438447004852283572733317558761845170481239716848286391721397090385559155852685094419610185026357523946702231451391773695166668689116152894619353558452320005118933302475755819460662542344400661865049369244744807363136623579401185563004362880586857019176183454861987035002754045403195791058356571025212262444169400735986835993549994158615617782157985738082420013532899402694437138797485964377560580035299296186418532476720733673985627816355739842057346621777311017621882536671894006346162553903556724819521388622903273081455965685228444610912085289774232751947292411952268934273667859560345496789177286161597240638534936682270396568256085894550803956863726302578671663607287405637881140078352097757376078284092290281041708811092269167306016278720028097977040529771418583089704716416294097705790920830877178408885129292163146124263156518018697090414959186882525785866067411908854929150303090875533323836868053462315504801234423172187958410304682209281502288571066815381418061983999271030626672341624022647771880267717250848567454117180689738744073236048485193691685031448129092664836563436094198071636342683534415325446981821445780154013327767551438870028014400526288700187122812748009696015291244346357848035512482012940512787234781602370258267591019318174924023714597955283040277492077975492567044458296050919568914802266263114951413869984879876451732616532852813270145655511291465755233615048379373456127677480971924781824231467758579742955102029905578817125813985722923813461307914672041161498864201533593408766031896767830757024297429681181409234450825366094642647212389065216300067674105274639640069315020488879267073414044713213891865394801136104186392412297147431720198286009908598139028509607564055362142735094832839656081014898068623609212333137625935573814825471696210853552794430533930661157873967984212241492300266376816511123176407370674065812025988393895929017573442065011535601240006468909530388610199657145435775577356414864153326555121652021862134314386323283643669796936280753984312526138628720553650574157743170390688812347619500325686830913596250131894076328544318493765913368713134831641220478206038326694791805014041121440036283939714603186125267684789888521065396578883616925173131518623317336242189906173385913121143875095620842481255429310240173901465632026208422196638249130117229607020039238608021432426121411581936564744792553283305046557425955279710076130909630927182500972147607254438516243301669173278846041868165289911167510876956985062467439980736932604517984965967081946622105949531367413372068424696149618141589821132796983039993753554851644140028800617705958392309010947752471438722734131848635525318227399326136012717380706062579987524460131385760591051642535090961240134602946222375011837305392606257089855537592596887913589106210261295126900365895564526636293970441119955399087049979469927875141273582108014290014297535584770815052159399448095087164609948444759807491455638047189791949607666147344648525332586695095322980795556524060504511388495184010879023160308879220017988506410917451306428253945491898065693927815874772838936537385856161150309133759666720961125834433657930827102030087287601016277138560509708033342353444458657880610279691989929227249563143653628843790667027890624289305325791974197440107634789658410764285734374662372140793706330720369037470626286819223634429893670790845776030396517913959240664601315650002464835840247540050630698935744456501422009156219603313775996748634935782945283331196290335961971019468526189103586913946490165844299169004578589849222336610172608463697653208789101482796780956991558377563187125319708575259822961956527069390081561195124846051871196862565062569181821703968471283010441519271044223192036214039659782749518132814107456075191841388539274043316742645395811362680703728503647314421370452843946320301345887895894595984206406018084251999127296898771982474855420832531391950435075049385754185889720617840911470016276825431455264585447747418231205410294886508078530269875561427395601025653622700611636281191649636201681119117362320190597559666212826602373717711826554726158305279865498944031580976482292901950089099237135774724566105292539354565072874732119165755652921296090099872117091028136852604958909648399543036677385700679480215639774553254937828242423512996753116678440630050085885792991507570747689300165796621903225986712754421055809138199420442682108044244640421885377741498318612207928707715597797595587321864291635392595333734177284087961668703686291927914494656881424179464496716059738588861317495488177383454165969860412561217377623880114328993373468547432780818299806178012108944770293231374499010837613609027827235734872194111209514537218401036697289704884908918629646144601171643652523269312145601701278268099777252444993915765555617052853097384900060884356495702141369906646363477450034069715483469269978514770297707707478930507597053327681098284090467397799778076885549893899528898227231198079510008129338033801306911843922148107309736739647587589141544705195190695224841311807357585160788863925974264109423558408376736264075091217929227077175572901588520511553582223497832894045002230198671520512769643558650327905958852593741399854124167704225039803612502868336620876142677367901619744861981145243162511342317918561148761335990146041102328813045812825955561485891640538184454338593862410670245453666304314850051273807788283078288068034034451427767271822498622265697093872381534687848861394156793513457633487455210825092134458969686046052767607779519471266456501300376152142478305457473462290765573296804609697105205379235942671857100368266369952085402714280361821894380680010854622318708177815097793374455178552894365430529458532728643305817851800654936213682473580485227903220358189464653232135007083570563098695483118554738300029892728555455561027316508039725191599823351269192855277274257048667709778612752643530816845780010643208482663148900545667298365238399981030992715409424554024800915351228848720177560472000901141616946831912567988236920638089556084326568763692714080109451593494094547292215923305645047593135062610834446745684896404481349443536706139905495721933124437629355087307320991857463972904011194681286251475667743969061979578350828901295736140101033250264281376700885907192930304878097638051558801806693002526587587073310666785634091876258560400476764474225717694522000112414467209723757583239686939262599675436777973054981981824600740793728878897582304681054094773301353368820593398830305853037583498094247837395662580594581122569509759315209390418317921217958685438903210136561064598551751299203673176457037802706895410668453300215209605404219743522685861272825761976189042436010771672512384936387116414847572155560432505878492332427812083105493700168300823188544586515950226813965205296441461176325323751251780029918568461308675585712482120521348092653487281793720188272519372904801718909713940169697990719739386042902993488704222799970261041970059855341236051335353461786860650412939725797570908496537060758871328447655831781154538683198582005437864427526950313818705394000986418035116419241741363258642317780725285538948720309059803730034895336784459540406821700053301625624613530681687319122295169383099138637605899367321886442057375468172236809113995237946145872278031418650508919345521850573151982725220526637040682971054322131761096654685781738424928176784795566165233371152032183099659529477651221721126608267201151704844036056451918627268390758842479006804176150892132154230427901295170809791846266286951918777737762786960622730551158711787872143141284796981754418293139501054911084751297008544923757537398034844447015859346109411255135299151821664111417021239769503745101544320150537835229732684712769586233193329176453326518239585108885451126246980115235852260198319667583142799140441289788471610893190544876876676417886818995742689490204662438835096943380686729608675535920164083680464330734358091845291230440852357043796075820829512390927279689566982932411627975899780659568377281159537766009521371311840353693919188469188404958845884471238968542662500054151904650095922165966196686217967203961894570458441415841844247544233647159528615011408333164851609673226210018938674024203663507419425754125609392467092861559840674925353837947883947620669844984969306074824501260446067710898899054470720171259699491211426980389902145985555054199973298467099648141429074214804980852221922669999493282674784273445978607631178157761164526657436989374146382362195141879524159418370071358118146004741071534724994878551024257660109638081342266884460456081528573742763493728365580787970949665106990237359500521925968769613931261317039896459499796793074731323228068975057390694272329891697333915996768306821433621955815391646125951518779228699428672001488200325881311475444730261512495247451225695202177209295398958159232958856599571065902526754565790501780089527726174957222709555578942976070359737440755836094444073660534378321365213698272939758531659373876021833106385083985522468053499114822332081739890462326780288785907650787373257027040386496278410373391536160113134643923916524867768352088909293486473592247692553308996517583978812441171177190252474705126488226326867500203915143554704635231626455937274874149061112437767408830413115884203804635693265172520569560019818567994355098749961254904524738180915619375820329455196131938102795276483422823423485714654447387134930577331308678448221349050820699052214963515706645028868700764690351415117675572960701215445921931905917730071257747660184879950409553086763956582709278242349860145741194426338468676128903205458655647200621384148710603538228206818529714747783126436342361868361244417768150009667069789089554795865695358100092886851556597840394423269369349539463213281687379134933149855253176220155869440498700292503831643153126934558961791489640704230498622436408592648100230634381426493046940762065217977971523799668416910084935273864946254430640940018748515570843145166350560910563152152777837624450523842098940329342709450295410801041492274133078486844291184072269447430130820573799473054151132783016156725553181695853916555951041116929877037847998131548801610144079178358913168429292701451881776175792497063763687174687943006275154543726514924117603010199851985046532812422049309200908957882870216105361752507101701942643607122041342159397761895817418768457254347036977396970187855755050825844275210173410884816159889246424851620153005695465379971116591504980415158228901622068061169709043094961612620293654110606393025932761094455157448272419403179184995527856518986908789734211972911835451118061116880117625485784993407092721213042923306790485109416760133953683975816259993789043908633106041086035535472685224608825690943897371607400544412504433743996980901378315387899455999196277346542754106832880101324581807856052619082701613683901912096368374449828704892934027568378840722138309733070102270478209700263145159147990077017796211686040272845624337332310643966071980669809595604003548222139307622650941663678188505574793440323705239419719056837706190178754894597060201342090553584284451991095640030123701895261338157000495198232480324136792960682300375819631993498349823350742401416761000155825318781661871673365164192685166662678565267836266190840982608948418765515890905588089829392526719274448391571671449553137704243371613350489537053550211754837487905678497652132298107283923445540442115766348331903948653017209030912806027606155711103744571234819996407666374299110769006663878722636057797647933307384227069131880238201679183645891619091618230181149983790919602009205881395664795400742758869899267630504747135366636758283508814011716876624377099734469085626586968757412751209531817361503601293527940294534078020608999140577776461097616377431889633334164734962844268875562697687104125903297305735674782381032531331582428640899123129626461888610327054145538751345058702524999388769218746487449523097846969671009677661809921185193097207312148834617697063991915150002858973812231998856876175504364062507721269676034952189762091113676456799258947452539761514819899380039507934322601457089319058516841163060535788050997605544450206101717227654520676196965482855038301530020312843132532923367693357018300111378762055244424846663315768823760225257912497320192304670652679513676908328982490965942209848371770648906258963700576836333804694320767216407800831842988678125420642930851734565384719947533754208872505899068364800306891748147930197268689932737204823555655112881795419456085626329124625076587060255136127113715058448789766817361780467415878324675418556715471227825364839441435036703907310160255412194762658978457139135850562939084176655401213223763263207091908589180665497573403736066374766542392230111097590822956908753059504962202097443449404121360911119310899056472408355281557247272783319626454781351540863332905055468808421218201511759720263783886355554364472239873468438075887656580597678427613939838535550007648412202795922262504886899709529782327331201066468607888088950209630183149739121108243400020284734114937054340062380122699688628757316025587845978942491245501170951392379992719696722592018214380958179673472475456968250093232763342342153001716043965466042718692691534326525395875624036258202717226670370882540209893624249314319338970108768786285912620947528251858033552666494001615601641950389182908803939060113235341454063546448945953534914732968555261728392982476270049075159835578810203759751573387046829722821791979362276804321149157418503862598275760798907583284064383308523925517980706280147291276148145433045869104094614470732078248151389061953711677997522456096053943505633796434816504439874426266046407495462141770678130254106153762026725580451211700326897035777117389624142248067179236186500291605794257158130091487533684595744053512614624354350263543114496721463776767806270827706733504612119622389021696858373224189742700178633718361344125051979034569168453014883212462234797870996109343793690946245706372150653217344458286061066998573646895271851721885241145731346615823749035618950445063998537383977298253922140671857296396458206412562576238063652832327203907980336575087486535871141554886823387858702615006371309072226023574052936233195633069132964436632122689767421826781426255629467534871318188497980840260850689757665096687362630138914892247001110089067045194122274600337068309634228704529204290942373620550446341153538474728540881925863008249252044855048330112264922534532341983664232224277473977550732461726410646421043116217383772219012865106021290571215770866110346949101274425124874735507407683655347146933528494542489576669584426033228795079986591506483395420581539925657096864087590373567750210660459989141427705869388866586739950772640879967423927805115320115774614750405424042998314070199771930472180993254933962022961525337306071650046870518113468307229349159777648739987497240853322834283024572698115574784869433022528885858947849956239751335476020741757912489430845217187802009012243000826360727116331841580021867243701915185074963378266200965970564726443171528872400302233492865190584154484862040297815191940394344075614286487774257535168593352676621969485336587612761042686098907162770112001114832632756492894705500905902615959696222806221553835443260302497132008697122477536392477689761571742935764732685002661739728114197071018220446365426804764428087029164001880795700044670736157204497217491283676874337031686883701845701662513412943036948483498120167547021947735809160998127902256337821596893645589592202112734746251470880059395672496423797638080469330448215625564088277487841636745447502542335371509447278094292635257953766137727105847628611623496931621367541784267352541263170360627283129818648356565288649267229767356863920383001143381350779384393117145993581809668654648190585500405898304117471319219216831239501679189718666855687794553819703552204539762675275841123107285595037106761198060389537384601670416232241215072556078051136978838822262536281076247496349410693014770163641543322072617733489399308121218692836691460017653298662681340128631064733072947499889328877740796795381470930329724785696997815212461732123887149434450384464490438212876171803081078233321380425678851816563013699351442794412336565628147398288389961270209755179624960550636449945298703710296618668555629769341773297061844184270896927210242566088302632678740612076509467998808725867669727243154961271996444062863749537119177270264975572645905223619155956542000729270299829280985775496072591375311788930111721282826567555696600892468146789606733431804312671373732543442564402564895038477179289120999529069455655352437526924427354129680444753105328687364599170548857271306470452481777416694060513619074975095567176171712565012160213498413077207428405923471318594977577927875314215316956686485137861681944148415542709998181802818099140942196045708358252928794035621705330734821405809626653223374629181896955419210585421214348304370165112820188690667856536552458363681911418647822734882094038891435350634953944142677555069275003255280084076112036202998009031191386273395587721532605423269662063644113021218704801604689191112187005199943075854187214901000313609091196587925427825787162527517293915844432566738110642402521329236635335607874898848530968373125825435741684013446718445485058396833463735941224271982873553718145762645837952538152895591768051318339948387189079388170930779282516707568654991983283855618820354352708601780451072169005043202202217786460558654148582597087207394452218724125473536857488040488477308735200273433347197038828142541099051050885797815243495840760250681672789601289818577204102433871545323420668536141126302190236556003998375269379086173492383619767502094159506490695722293282738846911771326797039572856742783575936828448922083758540281467271167849962055543789029194859726096762077979890631726863298491700225452012356173075104441638017477831274987022088849995471359935502232166604804100055189597062585527276022686022207008577395382708444789573522801870610977300550436760955959587042629077691800132810245157858057367294676791517370490374409057161358320053914704304601360225304652066921881041316092801928988593812970507158120521915294246099546522542817688265277774633507593600964741715909362318941920826003155773945184501746821490801563880123084458587153617584003559735301461050232402110014415328446865636774277207696996116142172684098593286958787346806392092577668999896409406488531964259964799011659116266275177837796801524601877408415045423623010735123406990277692127924190459388173204470711779127819100621754326745008891131994419065952337229543820285628321738067974882870855834379916781687284912596309070604917225466214444524293491162208548056809933131298929395003762226032433028423091817623396716833361095888999772206765848975273963559506394380997402577562469101383998487737819498389609446237440797270987424927835041684480478690494145118113861295356873604087337459571303699517121759496239526379558064371056831307458151073106588774867268677561146594884093982503178023099948717541593158567083253956647634469756881445248101935889212300192958069876509060287610536115942478994890517216958632202124374258390102732132888921389036428341655740493943929997878992078490402281655003356532222631422694640412882078496553044320540254529657281477405489704635816323668359559286815018526335179526425430234873063647801630336214739211384691707570917205544733190480337240285418105648683951480722174199474738886785506360651093455953197214345913436839128540417503547726834645529082433173408781050850067160842970143958057608569032893453245244185409026104994974758125843756955596389004855459463374552503869497099202278135972740843810283176675380869069396414915178036862790565289981361678661184668454114017628848163637767077585710798110529214173997348523363173088345466149290345911219752361823543424960445748885449263499714752550503270544812291662988697796896546264008439178680289856299671027740183377788224100794100113714954183504107052634902824713023373732393246386882159148202751047395194415132107957479684644155562229362306342928555265128559927052381241420808152756641154915827525711185882642680664099890618179176718266282399584314221130129956862215051706082466478271099857192132429842598905042069154357622247179366048766504913343653516073799071239161533430788160038492742222260585219863731309910410470180491618976565657029663777957472030456723686867822654003781778542136688923397482852385155582866246064180446126146022071984318116750632124715638208749113048970728776628003220612839165192913187971600115812761267074102617971990221355154167047210366478036424706997438902227021633106018141318423228583846191793326264441053306220431914486823527765878705195780307224540405442227283961514234716565171075499002462243320565318101295973972936982760329067080195883783454213052169484311659081494754913771086043317252421178536512578236679243012265675187449680674327203857224535421451097546418672527965439148005711603580986965899487256562407622486239315876517525795947165283984580569296737160161335604194960964073995378761225000825856644857558748086129767722812428515875980742744897944685805469845763108318194406221493842439636550197286226054807641028023234332844999401193872543002388566709150956065444817746493932708797914941358235119285292480166902636895837235640276712967839319973775471497769767429631834025557602436704066632562091190658687545620384382904825376520057789046088340467054647624784392197177042446094590097175411560736323800692267102440924480446778165034219709219325012103192426110098583664881621785436452089807221809422840588505846582006099115005960154770958629375835008707276811125017823385049747337716112825873546579039169656702285050035090349504532257803071367552592286357611987751150452140718302363235983285571660656377704701849626762038355848464791586872643189362150279234159514948231475105730658139451215764189615768862100925089792718743948078833495109189040428627901471808925848140057420398003561054931853232473470113400966487813818504561796080332981555555971234195528361795855516512088852548430891617083613314245873574466626182032358111343244038357423819724899162077461753788023497360326573692381504274962423090776431303221688872953763110179619550446665059324001102584936310228177185536738071405607532319351422569099249648303106187183936324266680755367166417508456147869265772142633795503263988309789669112799634880616316318742314842264038141304252843700498683876736330212476749226269300016648599500417828546132151669568757954345830799067447235136505421820743967815678538038167034239200955702097765993807347261834291185127945120609158941718017065411814636816677213362893461866049977340906398489445646319354515043521789337374305701744965416864898259514048957066097436810015330660540570863166271680443336309250943653392187162959370565179564968854840510118358735966543917033298259338725976117180635601736665389489605757965581499116583602359548214877343445775393704342750418882912379986990446544591339898960578143894283336929147691860413910373849309736424425720723857051939902002142607998554958353786535639173109243754751944367043588046868535651182899972411537517022983310707598331404549813565487080429167689573867263704513295843832399536764231301682744865504708853902151717019862871774987526190514348958485701698136334098081224612054805042378227071639732108463900207291597909678722501463693459264545702735619800770303857611269878135105104106665215260397741897938765099514364778183867914433815558812061022402605625528196608017018083270327350942508403018127726938448749243155023604781346727346246579773215401584606548943693836741925158376545106985791861045378142486808298060724337097698323048972104776263690982874326066424626201660382801328412271085022356076083152496261390053471326793286539290043956139936233667918182166324989383417753506876601997342962289215264284535176225026984895090503680859267023565830290127998560586563997760907990593227370791110027936206458155205696392847743427357579150007975212251642767573664750620094820798821821315684926306712660973881437800732674932053095113159443077943971793290531522968349118458433163545358476487105820794198016805833279418640587369325498980084804930072249623188935146316979211952787007078715606896512139947940226802585767547131901482527249308213137222084076769032545168591855988693746340061522411783140844204188551833890374901202108321768081197408409966959717457059094987863995843781905583811960507283695943280504720992629342663124896201994363294076051912000824028325409829331941081227230893987352109679978668536878319491522350088946639832149988081901240244632799432479002758022643064179583589685820425209285319272774253857297209426475405446006062538214972768582648767689497007920424803816015818588341217544573360330603806596491035806433223204804867638838850983790683455810356067299441353118099384099340192999361971645164105372046116097501130885312712891064772070483997163477720293648002015622466646202246520663529344210551288531380729707183691106881739467955578271993198204328361606134782308521296898599764975054939962718636213943699095971790708802064980305703732440980867050825204703622997640561102521568421784016299927364729027035313819099869387874247006498870810817727025696151652722678125734317734895288696692748514016967331339557858661513510109613597910074968869876319963692433494507297755168025399185409890277381708185945926325708442997955367901924959810958094464146785113526708844408933573047283980617824854697145457922838658181800175509256915773482902348371886512568680849735381174584826500554089434573976878388353123936752343348589805841249997788352879441260178278728592264760767983932485538808658782789764660504014358105441620696143283245829869247577194928247770241957365009745930106517177077711552521193943587531731794162299967692703706424000862835052960869600543871964270224636032167007530087622219709348067139534492416757088894306756260161560866189490461230856566622707835139881710303555855148882082598984867620943997541985734314340608091678916388806206950608923664634004622385786358148318054642842027643495261635223990177273340996790026280981096989297156187573804525004729349013038026473108679597515684107562701073291823928943703313997714980085958573817852479853825642553339924332950177398211683721005019056096418214385312018894643595243241968445947690366526167616867994397948117631827988523937366505037153781062837523541303790657832414410943044936743722651965755018063362990432032921156734029569393848609130352514547206147223553882956851461965472530314807832047314998864564063997195682039524757407630635004827256270483482839397343062304528075392584622787752424410293024377150180032771775141276869594949557441818251476267219512052370957660624546206118336439095071166187639752360991765183765701841743316963585098528815658090900215277657479707677312018886254916641554126678193946357563007605843534264299977996331231487319609110953114843905247544633458832189927276795816345320105072327806049261630772126500820730281967482813610417494098030412216221160915525064654253142406178379054582288335370373706041881616270512060790302058918658336175005774200266319325990014840262107410561751787171774541449566738968310142819854405214970081995026103945639329363918823279110442678591018630382982135541419793783709705689890374873445828090284201386932641308284634680336855705215485445657407648344763492218044511473396371940315190985700608064528820914832742923488966673588496634352389218039483522134025121190229415636984518644883005931383592434052509466928743193461456477739794808384641927809045962550290388642009028542193587598741222586553527306175613435266049246226376054711579154443743286682151408432984670676935959530956953566136294805734793443278657460033865806598125995317081123835741559661297915668082462172256104530732412822138506952823686413629103000556128958952541843857306572641630597513617062221799945132137352104025505418629664145783568355034603137202087806783486050594004022537638286464263106073216555350143974370548620934941662362629514494310133772075358519290924008887010333759948983566550587750575219992457521715397767659815930707480381633926189677961162054166813175227667944571834522220177207792651693433729277814737228244121465804134825844740336674382692512664946130275706386870534420622777879958705827387767418883861907496242526430072116926489049853296911282757613853930432004146424878419509570252586756437669702938708356584746677411889322273834112165599051039470053510837123809787244558352729803086874783328861142788545376401815415909974830738126543896930546698683822627449273553325783559805039126430881497321240644502661765693915732514186896978072126566601448316289682040249520795765307447915346546089594381411307538692594487912886091015552332950773223602194328367399817113222984428216233726264460809747187330309013801135747274703473936405930975950641164090007835562129527424411279812264478132288774850491108097246613804408925291249048980702314903194949090052595720754266812661316902050182515907408568181588358094224376283832520007233851433424275799858269848431143754140384566087062854906387708066119335390130857797516946941341650909474781776619107336123658748128927718585990159350495561290964150195365178368077590741111569672377579559520064972426142158094135792357240820753919084726153662790893845321836398912292362464293759808960451073508376588906561310639024707420133209380737013391343154674598581469139935023907935294920357663098778778604600119482615674943929795838164972281313235230293205776835942705992138025337693681995826324761285247614963706843689166514432308400353703806977874172400534875243377308771627562900841653829029862467553830931755097138716970458892411530089232511118132688345470760304572203380206630054351788515653614288346318149914327571474251833315510605716290744316673454452060633295211366050495568784168857747032673666774701028040130843260118186449730934737300725384860679994220881119263562831225992262037298374457891276109269574234154749398764430473187577122442084246621664329067708267633529596532180416575415743915247328391621337881254760821771429890083440334869761326909712049199793102781167440798604917507899067268221243597598400780222684839340226998449665321129915430703455862865606570604255167346020012814583492733727658947284509463666767496271316593316853814258836925614747138005303328082278513407128088739787795843861764488568847895906465583873927426618017781021674395827314145566191762272900618336813811054319448380420866880134486372090997763575613873965008299385681538773080780035506371250870522920496493021997960132123068333563133662584341946074132423703605058318758243825171982648219357634059841645109493305603495004952896503415896760323910720507239299205977856669056658789626172773177807803514677434657326790858531009740455603656438068707400481699846782538007336011131143288971295814352882462140338272330404458767782867436596255387391293167590051653025984588759685922750139719322933425694542492495383017775083559124147928030843381308109028322974674329972486094723438569678604616969750685931060398132165874162296139427678986124710259360031659079655513383702059257331589921652344829443846104570813946068715274283739889069520498389687944867992450725125516509368612091524163600111178504898100722082083724159036448815127070580588735650252451526666720247315598367971311541351572586659504011217189786895030307407181032488914289432289601543803082706735871228365173475857228572098980004868415069771473319462768050489381268487561963612470291632616558422844198291840310721845273642378387994267154840779222232527540242388237075514837373516687835936220435752549278068270926100067687974269440187422341148214551326611119471806270349382010811021379618179379035731174006912775516304083154447430179524656344984865866510406368208327831403502616843780583867873147521068311760838696669560543253662515090716300946952967709036254812037469238886027290679798192566803131009568763288304036721835603485422696425432490454830606523302252982814536944946680958321054423324215085646772057898710770679906653353531945132730480197355202328429971611078277253720341245967342527842263224252727620945545460414080461650296826356941445218823935971487132035817498090341648891374260101798337889830703513506944611041654824419172335102104595497363901864873808911545299585020674228424050729895509346994513646654055013192638014993726639876151988255306634172329908660754321318917312683385755629091481221104668452237476523629217252141766793414371307095274499493680695462951577468256565940141781623700676421609747641944012147309317840349928962724347796112158977967671621969784729868486070117143026248681504890581621551880744840368511865831217350786005615784124076937390445451428765477506462978188917061271869732023298742641535866701875208023080763134840398027620197046535960927653204669283272516009596373291424982874021005413258173432757616725307320697186553904387225079125936674028956634503627351303548167631488537489365621333665780816809637451751566536600792080948694951734155661517107894275716266422377316102676480002717686674243052247202751411181484774998804844070874398647505986116454898188548545978045175919705305649051500752404718955430614747955417457051102852101117684654941853330332437381897475348138583058381721967324103273998439403775731224472281616870085445305327348733163511673249087437954125475671280885908259500215730590614568122381397885845264427703235615043045330594857667917221513092107265621509730375514789893017580891327211636427905046098376300718099531629356330003137405169202874121625060451810777786601203005535875286809466476648547930748846685754735932462734642749155234238903648175591967336624055243037514282413006792847320107171727287600965881523705436370479977418768169682009129254747211826620853281904375601843875023730379130222598767586158532427832116526473751912997224664402253226836908464099054730828137409335831501263558927070449664087245124868806146280942406545802782715253156451994050381967385184288318970065769358453545190231676102261180354874054343717165358642625541317364946651848911151344840437607725521142383874849427718362592321569361514505079182686225305554876870539000441968322251531669029725455740105720290524091194485426728309069630081061694304577433130208838008906649874592669463126612519419135910224897087738244336068655448346637781819547604280351387749390969401976118692172272123532681326402574816091710030464044263725265196999242342100231587042682447477961839099994456620434534485083486834811342310691694424730788336289027759076939819758003323565708780175532734079785597708465706742256699835640266176233453323998849410081818422382277173789213745690440925257061075064700907492284493533719616169086396485140040940731018812521940560010578815776526568413826943037789475000472997688140763226795775289860609713302940725466528144275541349108124516846318887857980047775684283603253364795323592447731966100078192021375434339961567676443405553940886089208896361978171128688116431763331788227278357576602641277885767764710942610915894158540610419835943271662870411126516573937811049933989218312765446963945989341235993720858265617339774324650224047314463490350483799218088687760851713355621310692919025219824122969287081122318254961423915283108036267157921925069942374505342534995911046008528505377938238118934733836612187647053709781773879481750808804652805971462183410620817908335693293483053284253187954280508964446278482356193803122104468129656862267134054487739914240900917330200971237461705980127231854951410301384261237000157135981549194769978137736370248749360158352064800205143224276387240588933621208187688008477092175631705716977812276789256873516723692967035590578714599321419968944796785523751645663837166926820534258541364009153312533166565402082292897562514639314245405737770128793877138048838271004260665986718601576670667299028627719212361996129330412106391461317057739937379223190371077292676860271844558154421396245496365633588942889293651551304615214064338158793323198050765365324642626208262535316915072545529274104115395187339628865831918581642849716532061853017771553430065996399149766059895270454050553880928721052913317952761974240790556598119207182644963180419197530171900544093534495439515879912168335080011206541624692076073416079827412194102657877416972724792889803969205898626938123385218101192385626748851090337980977145049580654003495081502121664762616371633517220385757155518648279119819341042824105532870004144432226864327464838563170481428091311831826470918610484359279072839244192126426655300443220162902222092049556278347653004312216748118955499941998657499221074426498964065172071006535441333164834653001154530406412735445524978548742932837876568652820109978992450436217154616052974936125157479673810008291367091033629437926840679418299465428949677681920490932934734009602529731267031974254272720218331708812897377317448567172234270549316357721752816330882426088226525880341451413761110018264375817007100604894285942202262838793885671201601381449761047895813440333642666493429711021542767902256129728667097369002190417248354098951389993061942804638868486713445075935415690349437559291765890015309941170602704322215321658133335483504247500839078224248444074835780255280053695205054973459233830173747709685313821339314868633136484155179822532564808964646901999831208121731790461590661890472514075134815623115054377976562648330299816814404988936452183193941141807061429206637853589547448503948555989450075416375599533006219195798842647532007820574837800105246145572163295936594396072216209862901117226015326606984157835738703387703452189319089599640261591683531454440167304836372697154737674666255080174913013524257850256981487510953449006381066969595594589520955935866819123935842910999820740170817445732011344521616175396082215968457525328609424310084299884320547578571638504400277878080406297522910831250764819925363252468945974019374990590052295523757319820685178883864533841702937332275657597998348679814920928055300064591977839204932755619209097486776648556928605091537984154116141399250058865023223437683058609006806862222537458386264626193734872693291268224610602675491131620638433406944870369075491052455537929306577615992106335961534311984727504991463087802336445283902835128195954097011854552876546146785456277456693130918124371270046098011915010471649734329547260061145015338810667342128167051090155009074813219829634082857108315168825667523051329945140353934340514202504222570802597600281927760015809679985166659512817467562078337254551969982224112629220817996555766071989572628930604912609571648406957649686653346129110457447112521159922284730047153627902033135252197205846372600654439845991244936862104177669070779618548986009677887560110561135450559412439479728814004859663139266380638702195575643605288413319895852723173079023971376961584430604726082941373586202481275293450564115945549355670359963629226531056573233282700016855491154364870680031406396960284473047918963912890244643096132216270248597835627600510979231722092149232059029674473077096214612006469740831125528386014797488610415912014959662175845405553072761462615652057589057043879294432249504333064295682699341527963797819736406124814261031251579852750995720769992437125413357177056007921432243584295045654378792500122470042111476940237735099719943675587579640077174880413333420203946721568150677630610920779114970859734551735202563869650415209032068945338085126959888402214938120729656432043864314655061482312649645953002677242367635221263958808623485535691365922471982028842735650796202150925606132401120705785747197825378215354481632511750850711024432461262912086414570921921446785701562042139796888658271490720962542293611259926873775683223006016294784086200569638571908158025630762996697538447918967765557486211853596115171185356730218718117535431701818603987636093199918383084281255799790788851954268099866699962592159548678511635470603571259177250424786107116421328940929348684505649504856348547216319236801314751956537360437845876650137089518580885163699042416465898552500486561388468743299511293305799925519455054862291553170239160557790018207980494934109310593347132396487240392700684624787752742443924189876944989484018658655868871662522787448663904269507519713369694178030114338288870002514701856020635882400924702335835454348363497731412298403939467826283895032014360897744232365352704769279854485732736278439697957397966759551812973983478370312333798164107018359218122420917921367821145125573700802799101559481314129858249882942702583848202404610351092224788987817860704544797687358575214292563483626429613314163808303476587025415344739255218998618512482001920341332933082467584666561142678989631118250059596213616483264015531921343285276201974163742987206265316751459827840474406095071117453686727340409695110180833016268812263753733004082177528170813478596283493230112100174676694393404806361042087052874945869366565561256744833827417976297681930503979339149194804035337484661575303214901394547725834995236191849592900667614378504714235178806756942614606565084991219293959916727759205256083130255592565364084346091069412086924044800706049228153911456073380068168302463488186949923887698052545124031291726460003916454730351943700299444087276064845426213619901981901778737358850202434009069975750538192872454038912992871332147432647090719101127601434259218611579314735773437744433240239669136173515556046285689194918091034549870987925370092377186721528416648116231223639043244198084746681324245649738438159869941208860685298651992023959341356459864520045370093403065999844805046458674472962835507491057879882701329482490183917164531059142534035664154669086341106561955550559818252313597149857311840764452234782281183868394413670704372750316110430757089626225023822964381436923349976945951711192608813125874616705364001766627081089741958493070923734048409983730667471996684026978154883484992159248906506621630270938488857126202596261777580351575198805274312089350398228544360451359498670521956636692283798027791396851721653562235194600554906116166991068960230063128945204728219248537625818681289849266751984165520642275977751614881307901487662328320148612445924943232740716601843612911411729982163138134120364039165675198576238181541432129426528936555983740712491192708637619807049114193338048067397052397863110532759075301980277561008568147699694399375364824765112708730890867121997688978995592645142412166006692899160762472536544003001331709123014020259025282273724765292720112787572715048312357153404978701181274938168822369246611410037526577419786658824851765594550550031332698787534070141555717636905783732728976152625980623314289399317181165780585782418388619923583218206224669994932124735206844438832287692346345357782141817942806381237365887345405591067395480271228631916254006739127483929069892583538554500427099805783071645668890557258470422000361555844293916733031554540402662164625477215797074557570867394801805416979224552588390420015786377380641845084595820052417494031469274703368422887251339993381096983401906164438226932895615713168243872963547808046915764647190176372474329317690499561422768712957766594369553994305820972797960830183593877546721059342963512942317294307633190247442037908844617309865866009942400811363119306384191067447825946598410285007493506606614242637860773459739554229378279864579452851189166401138815142899048358556706070896646836996205335000924692523314658099591178354177410736251418864213053654211935282012358893431836783551896719038089517605209856710814434977143817864559188746799335886825947331589550100317325323601145509022208889157828623740022722510342417086013324194575047140110295188978718507178806340316526131206872073519496308037285612460711788140553160726223603723703462572220342320332888350357948967706289195701638631130815526198463971744269929396356543065504642126854004911949072715699021326774977557616625047547827853570740516766126855621646817940534664990443247389323925974962552298754292433518833490114418186664917728237506810716743274796844124866128724696603720672953967815765700131315241570534354363436619114494462247152149452984359562698846043607516206861831107115549374093825208185948055343512842376693796823244361976893857197158672876715167064873032424619530328644722165322738130243498794560117714994644583325748084739890167876364347534899425440210750531503468076178352321831840033431416376985712376019415770713662507252542066335766753612110216366312133552003756267400806147504057508608025958734398886884327201653301499272381948099546853446402144230553972457212088309844304680447702202904881795144815085916467924470262401186102061458140885436091192960080816134023474272463627041104107954566387821334488131661591061287602912471491498874523712102550477416098073886982064718423911344528123854969028094035659738663758188962679240665052461909993812618641310964466186744272969853471906573289473788433256453625729894662713119630239255637510013404096843174947779434374692003249917431270090893614162672628581216658154567579488113304024951039632650569933857668592003766529796843232641762262401519536918503531259806732004993554332803501370258999380630880665306061804865045059262872446635244519512266898214779297399913738170986303935844785192303225931243984182282969588098749689793347503033423684977454013579169303014934958485289410030037973168523547916220551907132054281679751283854397632535755791734457421055088918968648682501808467174988584373317131772201319191309928625530123285235553372234366628185134234258748407344230020484753865462185903073827943220081376279607088737195947434620573980046903730313071361573602121781452384385975268130722010773574911652369773581981289662733811554145414086513560560419027027165148890437506295234413517416624318565923284690956408824009658826255836731568074446449233187176666120695127162987192659436127541244311611197121209540310190114963332067280979675090082003137269004319987479901188085228482332853881962538312984907534820484937581519883846757588686121742061304608975052601019986652136206892229971931310578623694420948814707758014616482454303490893032064082497088326028133447213127361361083980567795906569410113483560934247126717469806248795050328324829635246744358058880843909047907404741427966192326846948443218026054935804996761747104290410270535439095288857092964346181987465708978897381648064936042775944198742414752680338591072647421779617038706856282407686258632252763740922503905623440426215135686267995214790416262305805699837857119528888477087596620495996026419031230310519404392823849619888680102737825454788064729931766234587700181275406109376247005472200865265657924797546929843327157139048709905296202084457468096260985728457046919400915669843733984596020112877078999480489850702394350986827454554442028872170285121480772879204994936151391191021236386871149424736954508706093495650931276995339567848358362065939827172157160094638325760046274452009218632555967070792724847089024241765049598091569400128466644906765590240948384368588298937724099024559128581139572754918972118483548136482133813034378435992056775045663010874273737529043369013616683149545792025474088110859594592656665629352645764346994419232978810586110014428946600815516233036100127645607219363958175534795390797832800627217437635634566318239686994231283482809302722264417959315956033864116269806011168089747465068945120663053444091378736593664185689374496396284085184588994344083950472313217929867135456191202035749546946962468512164270045423886770757045529155354609874649685384320497291884436248135172728539172488257651227319083447903436583311820370890280330773563115330504750376851146298014162762421422077270226242527815821003171494673807000750737556712260576271712535761951735418604892048990182662422652525741996233290798691078403114273291056618536342610657775872365765593244607037061861325930307998932491322742282099095496163212713574033919939479192381560443316889993742751579832286757920389200818602845126280835537862595986692630424501813002971350325985090537257849372683151380885377881854743605455670035839352445868947722640581076026233500853300842633835153135530740297602421409088597353595804969354706772652820935939332820779276841031360234807322859201530312756550279202424335958303313597205310866839335208690104328860095457207096213804428785181053895651413653559720762892095829045964124795308151838274732145546475072940110803264683701718704736211849767390990114928523847227489412667015558733936279122849012234580611923544488024730966005431276511678309496932781014206955242106066896995324207955409986834785521479129998174868671234807711577307100693212665988657667639038905238024220267589482735456227363584944917743075148660466677746572605260586838915696035497725550619541900223298640876007961987540272559019871953313855332450042310193333816615193631321587790185616340140864313433252998688404876426174282293401189234951679069795263471615044958917104700448565462598921274950796652456228704882238740689631910201595090496256231069804030979719372913801955466447258066322952982524760152259232411941679643536168055243639427897421157259404279967792797590301418788650561096588889515661237332228115864338002421476060454413481268830976476054136629770432097531679708893775589107976195033087524170171686677478640436066059240542615405999949850362456923218512866037361517379060053839143088668210831783603846887849203720106967248986949524261334676964175065184067947738183337735077311942722769894796127133237796358541444515706700553868088562739095884225740530291785755869605632463020812983087452060882387445658550571911603849978181353887392322723883069698024605986419247876946746119060961905400503639607628698232103727403454646064280776693778539310287792836830150429230956907131713312440495905010975554967568320919359930825168600561069470694249345488444254257520660559344952781181342909469153275276706959934789711632550922714366714479463168879281928851538710134687690210857114206612607872998930170055813967650318120562767659542455732099238693021487940536330467570944787941096806608339472907859304184745962695169436969729888428818857159174716559572046702972055887228558400949360592373099516412101035899796167904204830662053113251767017669608399783581771469373112807212994996419342891298594408834695896773094573886952048043369365361918312046189066378152587854164211251902744108482660346159455800564313607649005938369047946071388326807414063206148566226498683579997570150980784065259133974635520377384036723373790198643593624249193093812583908721631551880160371616100651342312352117121968832827477056354032089535039865605889520413082684648502790726665111011890253305148536706768364422218120496043347930142029128518218084172211681289502970104150739235193843756596972235806682980767938120917940692102450730080727191171216331837092704184879002296060568410354410390166555072916288051351059806843172612357904605098037269815466994159309139613179233487268741541997438460824192568606476372462148426786496212821294830756826054977486147050943644017584175426068436929887747758549493599966717590622826680924210791459246255595290348287302451028381468083715975222021253894240978740605778042573281120268310713228344762930729274743912608642777397909527545460749901445724569171005086096017249474424951868529159072228554579239563178299921600369395676954422244535525519589058939602744979915742027856798166488244865276458106371719345907311285336961269703700240225703438919825461559227356476138103512058289975280122648974982725331272835308357031547327468105267475075906853325705065518681926539601283059573414187409632012806207019308597285457791011829182883682013739608405520473156175957034894552996789403060996583497576475335360722484294567891808202072483363847229865116001472375433627043869634449058027928366360562967876440098862312185425467492378857418430358315555756014999639780140359970444981469415767887499858445915297982690856652829376991151964717055093124122633146757671434248927201303540128636457257568956881716895864419746559209962482781918452850394091549105497200588340788095360135215558513078753051603305162534799657930328524843348785010542932658286920746689465928522495576281182476861736586161707457109905878792281200150084178035055317552989368328752642125522626209607634989175695298552247524147662193924405460662135209705866703281943158814898907241128720272378207428022036173232521181921202088947251990721126035216378804132603391104588217948558367138596052026684605868917185806668733421932494059831027047871779481174765229273383513479367871564022083908283276757583659030632793022494836266062621512661536056409825860465015507159811804639065147391692304592573406981925463319092761529862466070197236687595225553029682148047600851565359648597844852074195279586091892216209468431651982778550821413984116599152651910158857270388156727007688849903472071075370570109860299548992508328924792624407130903943692212256647031475953323665873686120385428774368247901124900143411811101211410713793161042003921641925750011561698415277148966885924100290937922208704248636383223924740690765392284171392731508856218617914069370393105536196854488742713877069979042778229839860918417185620387451191885945232847502617788892903187470577851796081135387999744616614035895713070706882809823727198285883963005075613764163940516480082215311370325903738648642057073988613005240039683265319353852136579356493863581164392866788402218623319021395104014978474029380784118511330527225498833520834963187153855510297806775621094796611486261159742292570958419514311223244814981797126751997946359162081029871292875338005974002328881451005873914050328666161393356980313230643909006808669590997210069779966721551616447233723443699995233150141583261176781705935138780733953618317092634521201054698629743131821106583266231239259877608456912350665585105345414736681294354332142894640406654736973863329853448257889796287236552519937652206894612826108434556846032517192531949721413847242112801211559228693973657362889854792969985752582258683831651534677686600039564720783592926364710082380927618990957274611278698482724568698661468793387797250770095782548657819861047082524670810273222433660400055312895641835651111721765583947098936447672860747350276622007926046454593073381285315892362240724016591106391803787917138504934648628849496182544985727314372788730004319892044215851067445394754849962894116436222967833414034359668549293931874362609040535006748749544662019846240097526969916746437393760717029276393805574017748310097581029752870913613803781796922517828110497005755291705069565822087268357054004983990703962590626956234433229001856881138726180632631123017139663841411700214798733264142694435008537956601026949500660664340241611811031848391011665128630801468611989208501585087973599856117829453644781184599198230723718026492533461746656071988773016404935082107469265249925443628514698214941728610943373288964670045367128159285224140691812238742256485440895290351942275258625427982926474341115458990004563360382406441065660558698733781859676767909897312578543104983901537791350916881475136686122560389923145413389801508071425369998517849255180385450814857110575904683802735657912526601850229718791215711621601999813896031717024843622701176048137182510390651499541520760126229033049157300626572319991357073550020691078749041890200820243699035880618614186962236733370655838208173413928945755571764550886672412069407914806366354523622214562908906415785184504472257814283451565779219475513551178608613226963913859338429199403120575265821974156508373972981229687937935000403460937185655095967880220945210172234352506127595501456649911540369916554543934119614999915426008300251893863923607249543872288193336761515989536776379586340354523166558925746313965461217727581778883439652315141197011820579111876557063070364496633834968428477441764340982335855997953683868248649785658522340767175244680001955910288667027361370902017900025431159445251395732646904255608358702460270744826336596102886099326271430776479080747757383893380191493141286367440230260422518532911404699938973100958031758396696989345679035035841641548123835564859199414150971358621866231058898610365982785834469813451059774587509755079672786970246918772320737070204435481407895087782707010900637062332251536664797302605483667536604780506360151866230050200250916606402079307850664770266736399414039426477720474884421907473086540984103092422485325681391830917878700083909691154671335713702231933462858747224883242649829688130226299218333962724990093855419583005758054365806718138988878067737844015593906301774972418514748037103069075851533038316852856092047165811049678620109693195300201048188910114653950149939454819789940522732170130030523539711347228180612413002733667934654829655891386096439426433176553325577471624692195853289332646818267256315758556180675897065570307863453485434450797642689137530843975736050324020430573826950534073942305760326518402106764658011561269514842621360843406863786076344722727140771747786168558989961964536384961755083110593641969979497807441547444020671336104789358755814653963443348207493214386976003494459075008491500161427636307200871971610733104501377680545340079724380087088113495034801560103555334705613078208629040590400985326281321823458385091472562200135346111934466308238762199224300827680759107841938850774342317459888900213586591428306687372470150346163216943110028580736908759593988359375249261530144789018678118798499677333759864462227795904040844622709201307023487452198305559281861917502171571746227779688462846826386268920295511327514958511997235622919340274602269107021786209820062292066349184999519052674507973039037014076115416785869884351612853891372664116669755097206495588067168791383701522131191163797872479478314235341668245108807367100876337782070564177150090926779195839742038649442655649598912282142376658724363817222155237628471209775848849460034703614837071831660623080801311561334918253741927972963181734675862867795688760185397620626599371603287155501622679395072390062727148280375721990167784735769560473537143812949217250624187523268780303375230325520465550853748413771056962497777475399821949292774604265013248342396305402283842482044643916613520715039588066994301371237787708160856511765900978950706046988677411328319077934407710833231452527301684426834526509735738538280243563000846801734481377651067994564787964419303338110688278465335619610519363697536719017984455454012277388710856149701639900764632498991234288000626484395613828387754883097549963316595358687046143653887089686134804605121296418025696180532712897965580067664294463083958464245659080151628372859938244141960091888989750478860512690632257094513308513665195626304935586604066478606733497040262281186901782245255375402283194232300711814472698424565626729090673034518867451943401492619546519416887376821274514033235830036620584388621789476292132171997582576192162796727450046259311441813667503948793284193488456150924753212599074244083794342402213890753143980774991907023049581628487340165906507316950594003886951430496744565787490772577633679132543643216108649615939703920449180308482725782290073048711536902336962286520975396865815000573402392978924932539221511971589774252782290259312960167458899411298729173585296536509913829211946321463435031299458010856968318050629859751604524625255176210018472829080435349329974544366593684877231774674749968051378257097391254402286511378023555655242740465739689071993164287069228484707559985902203851948172790622774108473824605162119920381334016582387674635517060712489161918029890033898253757660486063782449858929083846153172293637485357522202331861438436476854505186628358019992396931443845285697744558886596574602860938502946534152985939964110802451808436567462370587098036341324928577503956715320164185285456699213691806230435559597439644403617502033308854346904903028845377643282134331702369600859060017734272671552715982617375225638754282463208168715386114492970658366689910661095064453826438629891800445987361928628881260109252033348084368456722840383176682490781477615732570350817576122925973261993866155499903246379242277837169250929853868692853234748437902552430210852607889630851655972910865600634720354808059998356526825308818486980502250429980150303878483507564392933107222116920889878234605338112516600824049981734080172951659623791709076786742622769054542638033854770571471930891942132913549663143115496097933107266926847129247009022323159186633632682388151904260673602417352398941149801303060201379927547308586972206859710331024729100534038340616613057071068288241969421250801049978159737678345339588141460544183633764095042904122126892626199475849555978141694220541755601645022848383767097625662340122597059574064498000593695377480518951009282120986882378175740481162691591942433163142310166644877131746737934544500159360756967176307168328329410380891411196924874022884160574677232663731937545417146333933748264676203942594235967805319987856287465588576481667159870153721933300451451011626717282929985394165543977731525546524382246140260596599854066096050776437692609607195469607651052218054258568332527908975250066278741984141447946044703739510311105947000838129507530411993270262826219683540233601353211993208140651933080253488760020963333508206016344872339086191954460242835228740326293640420880345173260907535406038723242127878698463476172403847503500519086234214249221216829764568454094382608407614031080645707318013822552102197379483725036346612738595266365724528428005603517736091173500072827901872066745222118575372182985310262024782222557612799482314982435416002308399315849118868948913881296139842135739861911187659099178615376822791574265698103935530520203286219954163213229885557170313293431218343208848517302536534529484901713802099845316090030864322691211147066206101662227839708911700260642948295268819707411191068560423534950072105669087583956518421722554324456683209835450335068233155197320524154728919544785640599396741966236635737480508250703323740151598008914800231545134461425633718153939075024413424515177468700136659417808858505879844332908684508931572332118797868046312817009424948422393423525957239904595349819305460178584438183745727006769368016672992841251457199826074493031553502125093062897310674229696587747267396282380945094301280085457795481192040043462240226925651369562627058630430671658094376806340220104383851057951613711836505421243344001350154984060702936348615803799289611173213190175521487445681682780951475979589279946350608686123777833424209376730970022829325161356748012603459923791276394768001821967693044722388312325401010367325983009726355546862525206501998426558964961091885912810770399078337809604496312856562061041862464301387736688799555699292732360002655271043156351025446376669327657715747404595863012090918239968823146100979711346582155383058208548527884678391778153565109796849817204571760048069178967175262609161992573667352727529658701607675782674871681419647733924298971617312918225579252228623699322934033029697327076459999698036489574898524044723378921274894713080217023802377487684935940646366936094644354397336313351899727056206648676578873315563387797206558199329635265544638001788595690592243289418270820263506877503001742482901647532305264596897261035909382944775071147993758087611195728544573423732613499607151234286768261398700236062773492350108969579351690630166012051211866946693738644920684878085780364376318351840212793027292200852442496154893890031196079095233200088181446821876339289531792004474676914222939364563372684370996229741174201238670698184241690783655976571130210435523084106438939236559992458352703207022635768682271319987451107959813630045520394267349818954013660808575095382971458428896179604368691589329259453409442274526135830155727756034568417495546456475861321429343186294218434960146551679358837194316046795625704549153291383658319471545853226027094642900946190772969419239403426520331218697646514842683621434382535431482453507589557471990658100706139100933040531214479492320882189341571699663932391572805437889187244872838575081191178708107673744097681667673052908153628519260757126687197444295355518185933478219000609560165877872613903361446182036745230483964093995782225586956802964563698385140218548644512037113669329799478915933367190920432178955975950701649802418998136494154577316024795500280209406318056379944159368714443846601141314406683049010083977350474140099293293713887448606487294614127376739314481449477108119735711820529674652187409764309221921242555795429615585130622359141213101147883003873305384264089014766775667408979485483984350271735364174450306989312038323032130926880277387000671085273027395937744088682726506123384743424561162650397403823277070501994315395311512685872712495202267610102997013033630885960731962500682108663838594099389271649815399759114178685194450974320530427762523922798027743598564413551769593992875488534026581373910891396336229749064751851382562107674628762756591099118199997819880072526922395393085151495616696116652245065531664460049360768704642846196845291306724991140393313599635596952874351389770222314904548656134931881157542562413668259291926082787316366269875192191523218128294004959063322571729823495576132370945916227573949832900553899614478090417149988688639847429836517063222233690901553400120983864308660139762635311284819456908121817329812580952791860584692727101483584713362130295141718958518863684637807234178625091756433961692425482932170253221397808049384797256407293246513286191398869986630991678542939735487876789125049895648410142545209232408958946963174213778573933678695206610812740402124813053049437906196092204823734322617328344030127760427555485285309305880016382025256471730675887790614370257131633012331766279394514246594089699196949286229459937765303724538246231746715034530480577635429791885715423721589176707928005638595179081055876865112183357755948379327495562141589762851964131438965588929996617507739508841190377061168998983618816302341884401105481882768919393198806800649809027358393494340557848297987213158139034829596532121370933842790901007047183703166579305918795485761849785582277971557118110630960735871265960319106242702791007780869093875977601625823816691748132747228199338773335961308410008003151804090465939277275644146969267290756763083008103303877162377586948654702231298958259944295533822227273507347742600541328723512159201159683369615729646361095108359876265864864849815777711979765880201689016117093352622404348681570485005599935761943055882617385036725340132045863065563448366229269827550247910167005595537505678737711187445232825684874777303388001178287460582798977735702513637086953496053429431340405570026345448933586927637326604908208669300204666409799488816134511357664269042262545514926928779361153515013201890356822316902230959145273789010308729160924331060593542878135590468813733907104809896508682693711622062251118408344356040854150892922956246400889757625201423681340333409777863172626146243138416267893788870742601893233020788129441987886958038646165350280355640098701255651017050611919446258156329311052045337244345717686534276324825490875368324899252771772535967261563242914141678123613056365445224066543312211864282551272036569228836141860425759434045280675175502957711756460335243574146445611754466137249879633945537926046661021492117983702413744990388549937798330520434148274868131145489325959445996539636643533759824990415113874211960876112947687950677126004029676282933294928205521774870532372765535567761884018127019102210640366303330959354695890661752656550636468487983020326442829343045310072515625953955289208234385211308217777378468646028392712241699510258774362690517909984874057414965055487423326694678414823574343348648586212325543021603878220692447415020064222505759199540896325345774582291184754263561760569852390489617270162454840387486186417862456703503041868751494256014434462057522122801720598217166415749956228005263911341027005588051452967278472454735755268000332272726078469591884905420644352646748121840488409439914906831498452196427576029732467269226592373943116869676391868066477012502399177025679878525211740782256273421491537471482043546057176289735218315101953471738643313553966773924083917058015260999576430453549333092664896278044794156374072841435641785881188743606693235471937695513697396434084824279949140459588003669040774680165353846183351260969744536972122393864554900707251876871283601845602957977855008560851833224880943648631003373615530689624253194330071732352134248507630220925444909463113941183612850456632742726106388325205380497145269608267771636887323593129232682251103951421360888457103413767048266753988076264659974345530297140428503493493983299126466950755378488963990956502972674855996369018137168436426246112843818345344093113579373472477973390867878565740704798283955453391559394826295128035620922425081762624749845085434263760355781859858163923023085377451453140432898640742818114431921576023905593598214066081700504248749357002262073178493588918555948307051427420633854482848522675785242553860050083504407029311687058781765074546267960852331129727823354777440546912324598780049116630761820910845370603503228048925726251574387503784198084517479716118488562440418229606713540435662951707876958801712891992147233412944613071111107759768878672566102064748335231298167250386686034639925337871532421890108109871541015943213689704284901696660389686656554294983937022223577041856357964412711566262537040025599161072683214369381705060856168172544527186537585431454480020038967483757291666371893887097029417400449914546743378442610792448371058301282423707963418020538884229307208341060292915606342402494919902884080431585498689239504666105466095771871906059980487636905733426037677838885045359680137368380216208664233948446749439521397929696266743992321217026079849089682016496914200900866355292045566883577672779127715665638917873053685699348807704258389543348109215739154640717077255864231557262161293519153107156621280943155464083704356593599184044098771242307717955022558920072391572186259347991011315825196932221720914647497760294840083523586702758631558349080712153133588636819291326467313067161374015605539532014484912768697443588748500917648478110025721729676201810315721555317420174544661429383007964217445634765414412866227453031877238871858080766498249125059926152247420993419184448203640397938985950210894441382349640991556943352298325895862532835553210941094521776771074415102415363125506273349124384796923396230137278672273998669072434614249934016446414271230112419815532115318940003526911798830401719499450837665893705188762345772693969125288195486335636686196551682284549503490155294154990589128481982884462851311571962277451828140773918400262989587436321085026232754668224241792732248097978916476780265114398543686543525579901443300784048161707289570146439010189058987208860660592728528821103361464838103086002254309275938418713889676070507577386493103366786281759615810143331914204589008527568615882286206311160461872791544556064455408414976183238086451312662214736026788710902000948515502149563142983963171609966476499996042790304796291145051114124571383349261924226092936561046203136343780350333412032630875836123624034698433023740518671356703795324381408022781290713042908841445462590073681392142646926869279943793394234055945107229212430149948291770271178416251662118970336885167752214117302800088366871620199405613744539397291921858741580631175745146993494293163299087734071871493528698559733003377950879718900267022115722738870569075954234051497880912252830838881650390549128446275761473636768776973152509328323448305213921150773521194154559283311885175113493935623986322425572380168297072460285541232511891603179175215449586742952800344182172060887710302901953020301507093686637136438622384421252093526247859059940250847681747925651515854400994448535672751301266861122831601380543951001126557834260406735137793453029325915374108817158013264628845635565400997437747659586799090303986319679360929146112868818798198531678094554424317963771879783459561004704776189711083957457498294140615543724199626909396353239852754008468686346337694801890621380806336672519114463221378708886599672981725780848772717142001095894815216204646207618396578702305119259317642247463892162212465256632555066757244866371785411262841144197120705992628120111397520133469313816097829043228390795595607238200770591655529305954908976723235843406227793750463277706877329506297862046198326575203570752004993224259368357503957733851824109046543881997849876098833478933350232446066791249932793349612629029185324432105704160016326204423736990201477062778371270828569858255475881484706645703849438346792240719677213397740945335433855700450144840121753160293724774578397317855288284336435008753604769462756260624260950978289596110034294485952498881476819756259039574830778518885247494146345485455474545995437001328611520245934495108108081574044723261019411523269493542320611992814656370651322826649575610262023232006830505141861353981999229288867864918848295742403133301913343862376753806320398084726319466359716699009572576845085271748859329495387969917102823670255868285215720025734164414892436822464724481174106362865393157303139784417767193586534231889015969938468866288985623621373403939411680540316487200953944085341204361138270016312322176092582986387775772891164738120067602077441087417071963834707067929142256451810859343156641765418943772874136265424570648454540523064081359892994158425775315895864486265702769953645995771371862994045157664002022994756091786621216568116735711848532954473583947534486294178575056970610015039575878438705290018639600403104435017019502876914699312652682461141081207503610790192204957317336476320488793832138499435549663051324412564928519214157547723069539206756016411758281110454801792857462557236322891575200498635025692550102200814334023852465302633374946620544036600415848244856764093261642612374420958519100899075412739684357172148418693667538932257893559836622111770297460919562642483331866113837399982289046501347526474350639154067314301278993736146734577007843485602098468987148973993471743754837277750928301095321716918633788850251084375405778019395742114560301353868878377708343406254035410360089717016285365992924300757971909674487617870995468352276926567079122708495406325182212942900441251546032850568319471467839600364005867405535578999807429155179734178213736707847307972952583793305260895711191959672201432436618315373845096747678253861817705472797620589407066826340783030810713202700484493194652819189661588799337710439649987363744095363830740980261255589744659259540486540930706149170768554256527148381315668693613467608838480421783605788806955449323406153499793269472389492714393759814673872848200099370201194694390024979389770264936933996762955943193968299478965468802222846249407228979462363907844507406824905451652848973011635381601003625308892382194991140480509032849775901340656538221870146310788034832626429195586904104046913124074171009219655629856435334494936468174212239948791267718665933279261917226912905001700543248443388608802281641526642926398244189512501379500082267083858328389326379424170809233907141713035540609097921804485803629695487288296945012439278818441664867672279640295517151959189085873636140652572585812303813249263972869399400475859292313309944732621115948872246352501036055549182737198494899830623718734672203559035921096351366257500778061201120148768382084907353382112965176800814710347544475230911059928538862828284846179456548563766457583119116276031965603049638069209790802331891236137629093586806805025594823275983180871427643808184215534043802682549895175389779414531958583494004992532253591204632754240245437421346991752404324073208321183950056028459628142882593234737862199017733454208458821086929675094222560094713583069456638975153133279468923329108733008117418220525547966844477927515262388494262529030911141979820145400956952323658137179470801289801494898032038532124135942919488268047474417563682629130976693487686526269894648332745457925157874561072087355709487411561777358853730537053490385928400337975961988677426082471669707927100248697183441392070992126183060072560227685486826441386686346571412278355361578156863155998125619673311622817808301883203531293714063944148988930752347753075928866251785181740010240238161715754497162213365779864825171976242974357793076548226336005555494783031590618931403474123143436737370925649698351874851472195493646294611416360306668986486298813865291145630267228990504688571884666568605198275861799801226168105634022758044800147220451035106244222797283745416711004960121246458347978639901543307401139436349280252386556708406446276832869356876712728072186613407934583915799821790379235999935667528732166438444197094134078693493148088492871670782521058448451771929598719918698644209829967147324887109998211884253227628085706076752845883557359730244970165881078127575234176222184735188992819914462651283834577308620368466941134401824713931341918080272349424558777705045452307918303235243001692326837514306755695798342387432479102028069543123913802596300770746959267748227520122223780565819853478417711005096032275652163656197702926995431935325320345871451184525367583800279046453776979778407840956081936795149061540463431748627602278915394481956272368270753086573629829797303966848138211116660115310349890588568603372152002124987487982938929714553683632475312713812200932501671507036421907458478526011090850023585454682979948742533854994677533080821300420672615215922750661300673759826724536298661865299533966528924184871507978162102603377410121338264347501616995451600970553069870443533454427255027022414729659377906520908169361713899241422809734839571146880795590998379563114212324376931609485338378090912609821025835697424591899422912603817271521149393015809812559473165395434137084043602641408798970186695673753575317818741981250860902699196760518224954688787360563320906897540511494835587401347570234357651171378128146521800155144097908692372053135699154626577357673867193745500887453935931879960214268416195223370725477572214973599324407068993885868394598715289754423073036415227235367860776242347491614585660278196854270988060005797348600153908453718374987839149872679472424102937344958363705823391071847206758583392678395465644146222748134935345920625815210792820416063883364369983622432366827943657103861706859649716346093194111360053072474023839389056598961858153631758799009757005325665233321980896464579806881862520940381228244629063271990740505799867634225060405920861275805108540624969088663041797023471790485810508620061646311353643510417921318792577610788513919649038333997067722947088957525573052583935039465417107766227509971676580038494700863060672417528378266892667095517743867295338087955466219567885113005597506303638624416280110830675568014673075758454871851356335948987556959466215885734470237861400893822804835729435595573902280589101543673059030033705046935061231959996173514873759057820186376264069918469211696466913332979058103939870175118991882806686473913822023528404890214211200062802384146526269550935841285947432479576658831687456400031854978729462864784783535355142127289202801964949969470295275782398341626031833391064074712989091919656239443393565145187771968028865533926470860499583785952973430877057856117637834083481331241749730256713591380924105082930737581424712000473886866853938597634611940197730921519893141129114132620332045735851732095836678386297311437734537201173026585672961511035011182630448090714638182099064832379583359772065662995783591135649169609544612134298792294905647524120449706770754091900041982679059316889933582966189641296940543761453586700539807895695770736964089863288578880834779490387844128929081843084809955256000529121132515199843706855812023455819608565900291140661054321424394836700648719315687446933680427143802389196038093950446712533400020556073230671377958265000431932103587425550549973024321051653481448544744324626140413644040099720194639190174906726545110545864985001781107691607113439241784250396349632572410700827602459767216647589856498154685942232656885896166896924523746822741455812170132041298600063505494329319307161105879670649317732267088115922179403824438902720947397159361177251543283798667266904257322260042741452345823491673265741823397950509035011914436421152783378697769260246713660467363247116617422474814966847242946559227226653348683964416946457635247337602749809999460260451620534524446911366062531893946375783478113330114796366702505568480378610574829985168551645207788690613090548304244896551497350259569850742855691257653847378050712045423289264892594577065304970273882227070695653557300098860222297710479345142289164902404797084613448244909424521767434791293569290331690123695853951182868587083309633754160249259080546069080535963238241990338759687418566596044105881034751118232782863098315220179077018829361110114205901016576045808243093369164588816181316507521057157199186045095993551826888571171541346158693776636209208995916571341054515741784227405552897588999211500683371077150802940258928729059904760101614014052028902337902528295720840346997690529547186529012948528873451671375385180747839306334095158979011722789457157602652745117984321637109730327831489817356287164961478943894647353320992919104449020864862412723697523701852274672074450527954759390431074291593263821386333306954094443123296311994275890597945945470996272954410162666950129533514878068245587385085727202169217503764355486982458857714990361317944524159124117252841579912225908270643054533562277703673920894949985836888911903712379100497682662095448996079306636046530189126517975179164322992049467206456617453326908693490926767454659152042288164452253189873864822995118878060888890400735704176593630138882486915377153351228054486114965681233594854474615150471072677408784757596025525498441367629066208121766771112424771164506392028532306527348807034228007924799763574470910141985680603026826509352039442859047029179880072395611351484098064581840022438573776861587146963653829830323083785314883074719673168005812978720701374677921574560759311480722859434396092180450293258897085376983166302570865837857086654154904073342332232038309317400027918310091954562459835153603322080166287682925872700493807979302126464752842144455048846413113655781531722479986182661196355611622810129571657398599218701169863875344966987764720002846924275822092976300778137389261622767453486230083520012880164055424522485598682680885300505038300739179410644717149827083443485081974490610931986659244164479565370229730579289333579511259532661758601893587912111360620262067960254088941388021192934772222292890260146769118350526005842543117501087014214528948555209007679999238476266676171294320499893785092736175784985954020742557786711598902011787095926987957076168471619928898000423629147034644970465889858635130598463275116538249248550399738382112713583383869748503256069457744333191178980253826563834053913328726042031428533951323189867731275833611480401312581950146854831275386692476981886060106597818622559362599759346849321068329804432469655962886667058469581352919152561592565489138959411344003340782347260073257647979487009201653748184563024688556218380469997083136241346243453518348526300314890331966785891821178693733468336892423147862588340869094401340033505077695855596915117056268265500998074990713849690963096492176938153026265612329452191704447349388392867423886593772041034636344447790704939124546768286187299248462229303996971977036547469917805857366987959335884638910432105528858686614474764975906972694876694813139828502670549920057462283756000761659992465402993137428885270114686731981567303711486353961589315754903859423935659285493163565605770101881205450488480561231056450621752993067783004212392704914639164884576162263095268122323267529176904498647773400691223403086272805921184202023858463642141701903415708566428068041406714966780141445650009619658517717476918146672942194555575271240981483965362940174177022060615211848304935188539767975866236205939246420432349641921609791798366901824305751935340927800423159507987599638100205247613820909359304756655100319165956916124662617064392960972363057707050760574930116730302331943906837974412866154016011874320227233920576341869103268971673462628624149430040725051248305977494206020118661468000046358937326839679509259444688590749690385877062205076064828205962953280460325591899682492184086041694207802249743664699915979350780732529839547976752293477992689402403043985575661709853013055649852549345211540568664359206646200537597520697704249895751640196177356909578966567076425165989974144522884745783859406585809404371258216837105447316392314680538988619675563144933964523919221297383504288497588143782465234188112396206273574929180499332183601821684986027782111067839673071162200642275335045078771585650019117280497545858318671251220329248737480734797939256830375402905383842003462268398208463032684596366501985036984359359219629071789639245362627061261385054760231459843697142668599710468899546900535031747749848506523894543451259493220491617706956656048416159080643373767866805254826636197556720468551853833820602576784755969843904261465400236650869357524190234816028570324568748439191830305570854499602200831508136997328744595426097897309168110133097303721599294434655264309121979935588029215096945050156436857383158988363675993370703483839124566009030621706322089915724641380325992303912581710420079819590244132549303317320903677245291450366680156873595617135819265227154135133520523137579102104220157717024190143909114520451803685631125563459278125095745438925017384490402014105580925369538053139985966424874147665742110983797578813121365617843714557099277551062458986411204606942969850759846553589933298671367812923912258435584013411613017204190398007455365652326374139141405744520427156524316881151730214686443266667055666606079224026808134966145397383040966357065321994615287164141101536981160207773652197220206735737951380797962221697618643284293819828944089724040269989779578644419602077222606414109150591323502558604791514287641958208511837952939020837120768988538628111539348555800756731342481632706284526889320047334218450832023282198086589262641512717946548389244976195549602817408745525681947211467725153136791984689079043157458924383941065478985059540877272890074474278296406410863364048410682816376497102438476881986591438531437103759244389453024146801149923282407376241694221592471247957403552117870399819414233243127304159607073342347025024425141994936347768663346694750658328178660395428886999641091660456002402536478684620876207464591425674043017063733899992154602485772325768294860147500681563516659064463363400061046621229303967293407066780294833982775554086248548939059449485787907599942455324354267740811890234628698741496927728717104982549116920680207553896973829573851133799487110001405472700375724084992293507242810475867492984025155243399932418504425097216256435767397117526565394654017271376701358229783835553260912373905636027660081358835618694916893994085793207825385478154872120711804817862121031057706503824968248303299673912484642810517288983177013547589803546015246677273067952513747267906377557963258578608695821245938285881319589482974005178900676252669770338103338208395097400055001197042909622281871256425808009784897877589091288618932328728071921233917745749258037229455064352843242865091430922889884745739027409681334547521802538844264808615216872076522333869404556342968350402485947169591289969822768396074291885411995280380689108755966776114125704491478742190482739871466500153895657069929913468739635903945440958056615025940851603564008520563093782103488205050378076359329884899016102090455256436473992052471975016076595862392009328336028480574330118555049743028392437967649981284384293892018055095788839121580605820529058394727302955872506882247773283314223271649300241904012554664462209202643110610912651680630143929752010338809353082029944378327457050287316636967577732407505184075347656557189863723595837598645843569733563291397327072838468777367165804564994689079882038092147964944810384472879741801816957754229506725907626249090657291543709254375892944215309992539593094788862288241576917595231168008591811080515312346588742132990295484700937765812420782136424460020318988777366101913418343558069144789016073871492481764970787213318718996823129852534690551382849890614763346109907803934191333764020347106287002271161680589789550756020793239649500394126312337451500096720094289647342512096883731414322315507044767322576602195903770936594744003112480796136385282695980000561388786353165434497128827948447802109364026392565482362424452995141234028663693621149627460605650586941528543532874967543442627647457288959691550836299197237344617484660547373036481572420382202146299593300922634858488188426036007666842472319661556933095756258000940156621443136014075557234949251785945400535348588042828905027874890673032789336126619901386974226940946567658942902693349008318487889807547161159493832347665796694224887981043837991137621929991148078065022753560328070211621062599181652097655551234590193910270825033045793024449599560689197262229050940602088159193282958214759065472011561823972338660159875655871683410420632010348336957476665314881943718080014741705327999794033407758726692629211886895459251099797122793982043938252529781865763908227343773695348175634716137331462583008847061924095796618433884416800738609668074890216869939524135450407453800927072927330455014132328736328814632369708461394396486390428475206811531983593620191100398531465772372464504810856060196009462833043096515348834382921445181722464199839258852718857748565330622150252496275953442009529467640056384605563113523607265382985723241999272339481353178490407434884104599771611727762877572191409707863041322181910842196972366394116781876936623432340681440617620587035221401964025332463665082430777279120160527617038173773490361955827385213675004638651050875024959266869532461887398541850197757322439994579171148807704198348303270709819627241882028839705860545158959824174490212334445777054267271651031192377534323838087022328746909411325541628946710278323355794177677358494534066617353436702154637459417959161036562811432964638734308519625853949003400863190445085527864103940353929338559348578086154212899332150207366474357358680988364681530905194411671738107821313734597671435801467604027047990597866553393184543470240503560502219442642469685848460837740980807956280972264945696965067581409302209714740752446979272838650477929245730283009985257104862403236551605822445054921413117370119339297350767454336489126323635055172762263378664718031463724685048399569860182331512628304786625068920987956123917984231518430237280745298780995865187239052753457955865958187148219294662487715808892733696492389167477576074338250655342235516663870417694901772804156008091251128739914712895399185336588064203799323286037323682239471351501391388823161556516994349781733393185650065281991982786588590724905691355840612809666857499852392258428106388838609230426869699820921717322286352431973234198505941727940711087498475841750293251208622993972065245443410383615807953827895241617989110865600852036689449488561244274346773799037497884106886614817197219201498286774895159844887171849082280462651609257779320983310678799596243135224284101530749710886765305790410854575198960384793740719440943531046139166024453859215372225561506684533075071324555241785328604581346987153617572594564545704154599084670843478837413862462109517070702254758968321295432065722487323271493032216410684121682528677082047114283779520360068569584034799961477077789829359074293727351670921150064456551893842990701853718789129794583546122499519145908017729921437768972097563670365640576607694752775246049792861158164718625198074084512671052022247886830823232366396499786395558301344866401235806827707930410406006967260503631519268492794528052129594469871595393930869672505749447806473613187981439724267674207536880592667209109361600806900067782580093626348408495160764661542123884027540405575473103222735631639111031262557979789396787700587398780723238116765879054624867859175304244738801774624866228828457249642952544806482863891013043545806805108855501176664591859561044926019222254043588291289289511220108051823478626949970186558975766386753753909152953931008788838720131694231978589048604980633475416970733959696074514000844053485719272714293183452492470346857642762718354535991585779589418750209242827967096790661889778578695519867924264490920375668567223565351761463260460822868451756180035687073109969445938467193715667355145979059324419716228376425202967354831468565435605556512604023488487337594772983250522906758313285785426124986569083708163726259108670503434183101374231062324877444720288700245198256994586645337716062224442812445422290551367182550634488358228874228917246188911675528527129564990347809953277174413574044014136019387438769466612804738713317010534609856760238494070611471466547717374665558927845623413748351894469387412558535779643920055273209244847565552548606940809806312754048197457792187635372782645374099252131302843588260012953767751085725957761821789028113567072256566282240234838431439847463057922640475749237106917140220182324098694401029728632929391307684576736985367271551905587930596863010103719448141366365187841873011811208553363268368005883612416579917187646220134707358364017774699041928401174209908341966817664897231467085414775133305048136178551648632699884606925051590184087834150775627587617391044887079743141013129007436493125587220620649783824978248329049259169178932305108050743249797037824688632791488623898732279815049465105332098353478832259750654385501478103045540175857971111474947962126378041396798838551291681737590390413493761932020591603166140005426166895245969778387373699839727192102848353536718740817227165318980333723968147348915740967403333902205015283048502660841313422671080364217125894478608877879702839273913037232490830584801547707601858334372641715023131844304713936978627032098558819804472110819413837184890412540154536461575716300816574177194991637022419347251680397426812970225323082361880677144945431695562159361037679225310266867582764776644486078661993968091660281095893509960319022266401599955265847993000339238024266666091775744152747255763597671486552629790816129353831945997941767537697152380169291516558148861547996883916350735878850302634280251515964524641301537664777284167872317763151474751091934744625391104360623042103353311386534033954106903315386216985707322110382465758721181774143993996732860285678589550730427276127531373685970516562093431824970216916313306784318464572494909697588115383643367257253865104994155879004105051545334413963385058450448184895675950030060450363868428038865903900368227488970756347570133930530154390771591240934709070615937383357475711340860193215787062559189502582281270501369897500680159519031147818507602758353315924569091352008818159419738105503875812679708868752656402182872166654788975989232436359443423776626024306851208083358746041855370620290154338223148584260107090453350227214921024575705531296728784147432522953049689708651182086352708929452026246525598855578928897612019161675505597352189015758414398127457948119931260327559987785828513979976207305980619808517921517018123185603009510042893999219927018568064955086385298905072319123405343391981185833568385910918610652954693693950592282388577220733203393923578554549981407456122756127351359115782661962368820090666016212011726832343103973457387101789006878215911251525540591853655495670038490980240452130039207024943952850935810973083466035867004845885822222406153000656730115791855495895078189430254720726107318058953070428568072630610289420512378292622274786104030578434631212507396707653345370377956518320900727745052686519664786372672995508481706477927173801363941856405598448636937536584171909147520050922832377857026049531852014933521534806118562319706400342465337491219628757063564636206484516526414799809890042264025943287885468290515417019041710653156138876757210489769451672967335169626101688437807024667477482159703228650963254644705294363959453761376959952103157434232376090165888864371491999050898012751857268584558596080009966692574902343361654030803959162211959306187092736024319503573331838222198353453817801539334912458979519146555591383892228017994855561546403814069953245685191450055744205311926902408415871485597852185846155482418827277234521173901970200107083169709396102169681412754612463250764061830604048313778154166449670042247314276330380229582822168734785297599771667094755450886097709790382218370351332574364401535750096696548327597699672255069983954634895652722122959834592638335266752728229908501518954909138355728728712981510019628305381688439311713655523753970148894124577402035193241552645357731325053169061529232902002314488893824340541673829253162892598987241295473248533372903103191699409111953930723130146560162982410949061699827930110590135620290640855412565596414443370279267462107590605153060125934264190004629120791073939658490309565988507454702119861257768879519811018735873279838135872250529644976976686131576411090416035131092824928056329708227285872703434517832495128027952983939574787778069571805502951201863759745221319510407649098717396487675946706813586289613215513376134487284139523058220852656770661765179121473387900765700059526053476445660273552113542878437739981924062809081857139229153604355919563738161011045653732044855887887429154836915807194088074227192735220290651268029596737279604644575239023691885657667017281077689140079197907842489753258013832881223908059753354275854895973176341273435507889583802985044993710176713813891311003168752462661880884038988861436702438564279739886092742955801708704809083066476838298875687069932261526091766845757249976092967679365825505297413436905746298841480853407613433081794654954030252074130291128079908379865768704343505057075532381687498733988251795930567218509717042828787136752990689626607763878772638450961653990873956875457085742310987149237558901659809432910626847113470999295208999626328193372517870438170793056764271130485827224143881188844251825644673562562641259748067896831611538982431031390434064707669921030357209202002724264917264434285862260784558053574479862253604455120387569140002064508553998942516598567767129342875334269383188654775615419628329567380600725128918788964467082493150966818014003993501761279037455487632689121208689610954671610411263866714287026446043465695688765781568753530488890010646238537514751388105958087694870156689177833890413844939239776896299100207967738158973262028431042518127817330409758090127832296870489997409668537493296671233443249447673678434185078438210597315979557102311810706777496581701394892888408007889710686314966596270375848892404227329870499156448758234929457904939583456367288777375261874626818266004908477999937929778013957763508041529169591415376243431346614744022241951140725452099228714237142720887113235949458483761643489682614847559208837907569872943205240096942973256966015462718817658657375383691004292056402891235551746882106777609024085613205007695121070929903677956518445579792950419119710345344207882647731581329168513673485969056406729588450864486355113022456541767792282469818114752143404712193343646161657690551202079667164280031429748521620521671846445491076504304327849074887383610397064017451566573103324933938201715125629326390561706569035302715979165939660997579337055759881708857092989435138664928605350121462580503771946739237031687416797334106318745929746856421115177852492865031506233039421218451822056133002001097052738848448181669878500630470537347177718034996311026085573729994387807118370573739613531751603080875080863891443342630573334941132210786949913626144822385616518272548424689389357998632247353598968891426620481441973592497344644562467143970531543560677833224532448263667760775746457932986135654294940915573068276058886588792300871301739564638814844762509827900623983376211127332119394588510542460798889291882589607807657306277212648849611564818360330966290480883085008161778227766293817351611178429570862992562296262036017210786135794059962918974847593302191307855069524896445256700959682674716494373626616134838634548938786539086706819878786468521610374257721138440840631750193261424852249009585282482046667922602119597107249816677256275608004628475867095368414131971691904535376966647110904819323928759410293297611917224180648846138647656710733043080747975880404202863681127428019870798919309363095463246244648579343809850244591204145317830838966867217501398108921809669554572275285840239683708265285997594461183862637464073436796048859313642461568429213044293861425675130081916274750675794781778660547822886065778671315308442601053682557433402069097532595581211776743666054819149153103305096479012459116143929267803305397236884586798971410899831778539605598343214712741782774540412882409108274013341968554297114006029040251612862587866602173402081746510477672296757650444463289774011117283568079231558995214681076187970553215006812247701387147221307623334692444049482455096096962338508218959626992754823391234527973586173909473292158217649820304476379095543597063316901479254701627155764263785987773123180166648960058903146807359786504875992047049836840479760504956733419630447738088570754076930400657658482578317168375973515659749377848147742093455357249161801096026235492846748392766181313466440491133339468837946972738763368894647900811748158109050157838100647948450530772164958008388123826466610546715513292608020968368820580089519304093307358152600759327770318202886342254881409296810977221322821682781450866167363512912788099018894562914753917852236242383300356382608224767600655153904534497053050387224476102338465849162473954870199084907924636734602922883105898271002254493971723520888263010886881755491805117931194555365154324642890270942142413315098884897502518653248330225670278737183623954191179318468669829503977942962442201251809277173243301600753410973382534504720810860232687219903156230349649918703786180253759478299910243043293383206698667996446598987572313087122589771863767748044748292528187350136466587643644714551680980041528198405011157366615876018481750395829971869337341638600687609602591870917198611087106365482696538172653805893820293713269504233217291384451134060326528901649943160310976865101877810417184433610247037363911176804262678216085790845671198268181159261143943843423592100535779642114415530942429564465281896108547871333823148263246616156520758492149564069479451546712677499380374305457953352089922876929712241510730951848878809788852186712034264079598813726295205970393799677817113109543147025370130334525061272595415501997659515844152819283626863198617512967741049153904596678002254818680346334377613280393808135168997531129713122367292927050075336170397602551379682477769608503018504061605657307570799021546222210684532097945978201074139790079188599148543617929907469130150755569159936423804568819478866025884500182802798161548181469660513687974274440106216987765203603198577739366657125956340776553858838632157275142817637748661041780909676661846720167626677305750343376960816438872324937252669146378092219007902799582530971355638973707005360374645880460772814806844865783556347252241879102896382647016591683307300228105419752196818211901456297055970632186802828919318004542312244208842278787397754532892166650957933355327005258645743329913872641835191872490496909278504251697648085251033996349613458075045787576758224055639393852070643368512249029595974186704218428342651273400376310894990764411617029766733924753968421330778466729064925623725491880904266243340650043446718809538851853323871644695275481644486064027488420296423097554314828217442578432399518322956851223555395446379218739697183305795992348652395570248271274298309541007155546437469768166617368718950700809832961690608893132218895762955937188457960920042890000577723519439397053166458588720481477030352726883208492060177623207015275302249819911436208960808796980864292875490935256843094013513790778383044251713927240372019975429217310009118298971983329880322559301480173464638685741172666524661866689718393384809482138779639742832591885599844174475643384771722089842188341687776423943214476478325517570131239359101303779478394100021644204391640680766142719818632706043606997079145629076875339664206070891833519011462539263248378115751332350522822262327220608289858789536312268173111123453805814956145683641724586503455916162116604419278498639489497600345286754752370932979003346285060825654265639849022217877106894889864913526739210432947307615145522069987914890996396269873035498378580197631969149961588473097418986516606424157594978486116047498443027343400855558978130637318730432756687052683760797130096950049241881746462171792152853423805854946268949277546505304343663907577141302295684138344084885408529243902944103101064808713590100756591395738131227094950737076618593260668043582109791464723310572563309131788851744005788799406386945691260687170923188261754933897669821902076274006036457500075743040284058242215988348427349767342085721215061601277614633133219814898535908593352700611748713660189743822948269510069664775255720663493369408847323034295478268491103870916243823540357926075075716054540953348112542963302624108883288395493653588305323864482294172531040924085638431353336501546944547746869952741191613707695905435137634934801889908058043771625640423378929258157173455486737119694799157194831386907533519199489630799683745840703078967372006638235397989257589860966571559464772628484287156482971616493971280480185786578408456809831348081373640666790314687137057963951512623080762269227887448437272811730830742366306908971377194865123607121046886105992893562931375351124853489528908863938001860878993733169696136226621609978393702508434263839147842545058737012931485607164045641044135411049568373210043991754643481853943566649583780100380023290667269855735199695603567118019445048531645240200159195060027503505916481526227023351648438895967955234990786829155797046348466552518031927699309956272554759101098149904873015694246405858936179331198657851170616939602421121055431569713236106420823166523342914056997610326172145983372384483310942311503545488882312556685546932074909534262519862176673382235513268453298377969824144309666185400135259562079520878646830680490526286659373114031350807915896380900460995936113224312243742974692501642974838555753639643388363049344402785714284017988212064945921525429316289357023628502617493336095234212689113690976991630681093169871038019810304350126727140778875704051638908925181983881668189980131616230196727530748898518836869356747930572019906283102768005523169147983280748620849647151000683743836381084871165961756179942516777465845578271751744936466180334095133270972783097198448245874680027093981795683987571080023274218004175962199106228717392032418861888820573338210213370936677158635782640309224185494036177390476145638253878651052364817613212489433671840514715441128642782293540208850251365273030893452901431952249654664901878536237354282160430435138072913478630901651379444356207354055150425780322522411588850727638492202171859736339384885528656088724836019162304846799174199015348073866501104187019944397610090929662954396628518581382008790830617492820218915051368682178815962411295871598480684449507512155259920357331260813390870990203964878419516336471123456145404778460401523553830447594249055829834271948966198731415074069100485355152553688339615531782780790021564600845988102059573631228130635792372462492593128679681050347858504399155332756060257768982927875809098285818859146881295013358276665691615129152825422497935323736915760221463751220705171898861950623578837401706244649318214825404709706851089479004776820001351002999496436628329667413591957052379972349941190521019542838647660042904255401545018659565874779860363760355712096534764034223321081552190971220070097190246677837628184424009647781120548876978335217498883427672577414276269617689135347000088513069563729510606514028168850497469354423874662143996339899354842454027157084644751720430036048068196491720908994197651401337540715150083156964265621924604248215313316922678628840813011636809225636670020803413264297612279678850268772870060424518642423106120271199434785738356745927136388408131136931901098529734101499046734363893708632606331247312674429800056374497204192821210193838041557565047074174067369385828035103613897235604798017862801543190246833756881195181689814382740825570646210092089323890787039386657018076669800214152916452694078134470385389946731242222187300866974851162918611385341382337139033616136490134174157709280282807096535719481513389105191312675999223962432059522551511031453039765252256281757349074147778695712493933964585889844344457628461673162683372084624202581516632521407495643209584060646180660168350879609040158442912542088923096522561681457769196820943585138379333644021855428128405799393239277744338018650586511372739461006163229605650034003498461374926528859650097232773994588131702430872576348127102401949333214965665933132246160848756556812550438102336168792890621396180528540780695801830665523432327513878922700360374451971081060869222749754481248527310052782743574077855637881730365775684445405529754637910245638747589431045081066373323372221076424861662755426144070682551217511523548934476156430843229108129329108198802372735507876755402842855698529115865902546976704963786784612131381026085123807780120037909213468923451388108976041982169546043804301361922375896870575545972074556763409693282487297084288603062906751011528168484802326323174520443104756926773286418742414264649970259752078928674254291137262961677898245403882980879960423675879872667666980840043057118655296423676408857383545244128528209915346256790365869900870322643988627912730894876751648319180381952164295581573654322909360497841790641411027785065666425524204720219075627469963518137984262694552512135575183986382719293018231330200086928671808509396366731090656046165832473582833810182927966795450844159967768921771718368710562191083052128897755395484515724974280026813820746944455812200426547059304434120682458550389729131588717396957623526755941310579493640682816296794021169636965890018937280899396731749951050714628865548013959356339639946331539681053965438145522205057748996698238195521050625277794176467483130011314555211106496981707695288033359318255157747239713827221896718414030152633577568631644331760779857301771320788050812147995161498389237379733749022993308771425787516996081415711658307823457539249823149160337956200772751243941288391300650170785598359386746841475711753640896562620311054569065243005905093786075368981350882224460979467552075674484248564335778811246901027278372266647344401196484861119101234849097715692988861644476656120507574760291349475946718609414680375012462608693108634047350218650914304163277338769239486471412894939088799298771039296865699571982147858953376348486630621378473351896412248771838563641032473360281570367178709522956952104921434741384157150554527436673240907178012628257090303672599011153481698286286688761030364428530415297056956642055389902084205337708277850122186776264308445691275987617886876757066255331278472928278892733200779202487643873462722716075655062973831001676059257119341925620730837859907659114720608617332852190697603614336188110641293021596107348693710725756973048371924595811454524915345090013075494846402632562332589895094023810445319141544366414681815012471371381074880528706182870378167736272622148679088749655647057963124815039758703935931326364407853830375538105761002065148960712273289349701760473311137505107029357490592805407884204710130360908192158962308324392279960726425132750902412309278242074024078908920027438578976263482347229387776880093410428366535752882211932483110522932594952079467321494666704450244575127020418122068025905598269227666768278445816390815387400093282464518987297505758540596643923658023615517781034870124983061315958530712201188876457702371065868291794484335189561283948999857288302428774615924140936073466384143120551025183157248680094077360987355812994790346368812357731030949655166016263406545191362530671759344013976905091317848243071634800747815799117112263726767790319592016637807321433765858036969783957244106034001333851799774780450859600269981535441381230478296262316902531179930731783344641405655349391382412168968315546322548107932296067121641667347027794741621488098050311899382579405818859190995398570758018400622589408573532367927954621691258244087548072405057772282900894094718233270461020294131523472350556918962325913318600192613893872396050892855335031644138602066722403186981352800447410869086603589625427579410949563885351416522481822075795584661192594311488442225470192583944089249331093129388005891824498368632101037425854273358290232018807486367191362122044163790758312611541130657820519673404902959358557561960739721786236237294561120077850561449745171860420845743341130374997012266270799909700434276379367495296884016755929916110943172512909845703983974058313069831311942511519668442698204944515360470409945895543871672489503193760005775612125034496592242949787956416153654404188428927964245460489810371656506213868185513852118511297587499734016190333730756561740833847310760244564839404568850620985448472020392341777308161954713005562496131951747520383222291708654956651533893730573700589419654770121062145610182876629470615492081203206398535474096828127870514101038507430724333428393229131042427820108986126586405020982213775372457226478270165577302440089645721519900016970754094226258525647493598402925806844897726355292734397096028175132815552200603141036503800114201995961995382660718104439254916269290826057610339975801644963489011266288715444834004678459034234631949992202694205299175534397884640808727953742015326958176659114551317618401606070821455840998130378119515239945797001887317035106843981325357719121492400413443964655595828477007295209592576061682179384353933845364958294394615511693025750111427101579931565879046776972780748058512907580168785076451519905078799927798668901003899130301927391631536790805615401281638381603921960925105260215874571311220198666485316862233784781886500042518093705862018669987045428997775878760543925819766443819128845665625352915689997954633622256462693713036139761708607232234871857469402968543768564603055016463299566969445567465976543917083312508850378672380045568941581865696521958930160422395762804579529373256568693415957396609370606484651838542834451698053784855454272491518141936752271072229459411446702535188364901303180764314729761408301954782344326136705621855563944166835259590954191657141860605008830107797907822228673499933234468277506175461301172041645799599728586904586361575715793491830297714080165482775687058623832968028555608079383550643926668364797876702801362269477106165516397511582432524618944347292067463264420643419647522536973784043487610788620812675736659307932484563345285902745329095001564364511261552965422737684426837536424563703412334887151694689067803833016233015801386154055666413626791404636922141772264495316676126700854891373700225835166196669448443015572124745891400012538730621587268773861259406185926960826105996270591840524786170815192335403159401242291215771032070616271103236344981369195465449398328091347861825262730876746477941586117716547488498003560667201752463537910887899017271935904609167722302886188277648687056287206574350968099881634803552436257658057914552630350297062096982306823180161489356395629479827528463688118440016461380996478445659881727879250362830626433493351908091788796859555501817126042591355740870936411898284731035255092082899547151742817941023061929126236088390289351990262414225755680228731839331143134515226469228409229340673871674233598008629561611920251427995396598735523983648036212443510194288089431760086309172313402233048363022567515152184210072888943695569014906528812810620823294297070140730569806861207596935047958260896387778243584399797304998377039055487212708028249542535470990926080326979117116868052158162009585971320908968683374232390112704161823224249721791800668146154469902013815769718968158223686609040485840263950138859381601550886077603823193930246465654378908898262069460856121142126288979372802658373458387640068670287267490579027899886937564873959720822394916137115173451840303345228769813702802043106993325278805371461552317798482615832314794218155563889382435333506985291245608081330832971381132181126942928850745224422814300953888787871595718869095556833576750728328276511469117916140847143551425594440540712058721213026064809499442198780364595225917511993724201984651460847763223901089314648903197440154811727871733975506045328380675752459974268822160457585482080898002726385661361737314239101204735179839583927417219702419954926477688063917887466336096590434620177980750362237735214088259637245625431393367036868196299708944451549992352608678559990131710665463297115005347391286151948190469230815761662530964261704319436961935366555337657998549875420591901620526851504503503949213292107592168087837466262750374634437391372532147805721042021258932037075466310346623585108121180469494812731296046776286922764481212720147986901348429060937140273101291182902012122757438867898235375854269646223400033424515802497620866601193343361970464379171090906354751926162358277857868127563171286950269908292881078926334111448315056928461943682144443677656099095193129000191211741631773355587296305189511243760821885661469058539931650713955622586073256615799847627674364628243797361764884453218262274504069794392558793651418637947824092052670674299810234010708996554362491694779083814351841291176563937004829997004597095381108018101073250276649681960107603325179864101599233116015955604438563684942008086530052767594892597622571985772157912686015525438662076417551746743477923923923667411328531355629190768581007880659726305297505831798738335960466729626448116996974978722635175184525591312188914682337895383117361159046863113229921984718897226467688727015847698536722045986626956970693398206014695495080095726564817447803108673047675258024960967406210728963950137380676814079604299901472898667048730997655172723380572035532126276929431861213177474717972427900344935432910340749486630674719798331405177855214858006142208870943102768818975989967639266909804578541354592160012770705060200302288899963219415305888759426177188935932876966520561667883293246103539895539246547478532811463881204405226690868026919637822171197405583007824545933707122534839371008804554378204174158652769476992013660887773056025488614241271951159412511897098104584957584613763181917382926702510989774704366353938897897694767494259965851344063144545676925359961691996083098905083962743970681730291444236248780368699653554519932589099560400546560853523830325296807958826375285350326576031303413219678063999924389992773488086680737637657909571273077250665362695054485777426849077294866766035570496850095460134913983637482033422026785451603292427059541909118774965458718366006209169474207148477380197543013143908265836838459432429405726789722824049741789742490343522611095565792493236502785457969488045154303319061596999101801770149869026006944239082621615900515201696249905207531514195755761921418203749775810384336339813837514276353628548210162183399144572932704586002659959587356334467828533207469206809100427294787846039364280914029377895986695496207018541126898653713404013325241221264699870413009356373396502916145407509842667114273071559733023908300838948784394204632893402303469240736460535105330730532242865949080259946007075897747026100411767108901294199438051289276017677149225696880041042649683994838268916518572149633417561205155026251779962027885565864465751880629332881216759872153628628902367343937066402834069411309406851707317689677444580284804003816603342927395377810845844810865441074251712521408639260776042336032486663172013749029221280543220757044270196813881612373647281192716597072634835135223879542424467862462222123310800072684397660008535786741207159383280642327043353483623972137675615090896446446614688485363993032989793624116234842222492068514358482199993505087681932699964264743982469132531625988164391968441167307482966890502927800846939397911392283918467195283592034332325796362185794998944454282241958556019359385724161340075748994483299108437721688959717732372850550778703987649343223364157675178540419379668136779401655417933127941906713483579140282927962223364049081476947683916402931122971608462364645327748174339185083100171182006833653975440393472373112059394426131697162895277598049149641253364855441152506933980033475175595843528081649926369762787944587831961911437092693861190752117625836328374072490470533820348802606734033810280911732172464354893319152843764416563274707056912722496924665681925683480265286840332353891111383032633459515841893534084449184323087995545534984126305663775498380888602479957563370844666130907401496975471951080516765902546107078112673528590668449226955343811087783415239643544024218752187695714824406936244676174022353001858429310158362824515982096639337605939442790858027572992443263954767193929080064884841490123329985613593725712305599852088599490789602833048860175963287139010139333020425265699023301038972577014532924395263907021287428180218793785645842067419664718423514122926871220764872776502394107045184451174772604668289414672203584662725551993153159286281218816578516621330624062027411304727660075651035011429823435873108402332382833333779681504175115402874234055639332371602934469176237824535951183146814855695617578330897733165549237048034079586641187305180419048525879406946476023300583339155060319082204081123873844412244876265123654271685608724710617432669518252047068092621332936097898955641180382832750538299400746094971863256639594871173936217559927717923976835185950689789365976493928364319895289054691204348957681671052806129750648009850719063598189770065383840425044988542523937608685230637639975981486802078844523455168597008956791221855846717154937791045667399856637554813752518902486820542757508224531235921569312821131328706945313235675996756790278672524007506249904212476386535932060719320076510887288176527576019535135966190964646272844207777300062878258700924530723143301422474110682477030690583066665949192547585074865311868008187194306653008875395159816580179241411899716256830961906560221110287300307115815073418453781230758105162859829907890216016968694868282102394122419223127926769778171679538756578494234234558199231037634638233672835988293660836736753112315762805300332164881916558599144513389829533115573106301193085992964266507365270783775641767683594091255610228199445005983793614595597118500352841810327802476123828801377434753381953773123819663411371167237805166202086504483092713886910136666027975120194814743779035182626941689384493456006032350472818270912718555270248850842234241853138500545840827666333215417970408650597591289106669265841866873242481895933961267018122105134422288256226991301044415912871016114635271579610665708630790149539393393102989027486478930012200778502550107725111941791431722203495554858536642494343914587666845562102826941358362700008689513001181165958686384572829338631441436083191690901672930658521450724712531975500905493319578354199121701345859474386373454825478540430827891840668515866955541671620604600852932985469021912511774161828072230949063138003120711392170683747111396275887263094498109539804888143369234779276647256916180184819299583849333982993417287218743015778997865204867755039998066281363665715648807140163991606496370024355840849585941964075180234626792188696815695135659292566972349132167674807527132965478373753419668607572481654977535859718526449181832476783973871547192032921510580266011744684313207060106039695687648648411338706972942777667840353941328481740739358419537306554375090518177708016220688075545720602693784527353300289102156008133393336316700948558380967901333287803757933440316344622215978341412542363494141659126223324104874393091245106362250185819930000341364574009462184231648729640795946414527408138683721965334375784027068900452601460595703283974920793521814673058274174068483378309821304521653197842306196709496500465200747229286131599336402386581300396713063844057124955933014581850687947884487385979707340428414356669777040642708771449976622326410067242921793307165883641637783423603288125843965149789415200163425200369289041864138878649888747749947338857737468781778609052401195078393212494505745505910569100614328984124074343288692756512898551081431606397947843279447741497319671141588528872526514114206030866331659545389193546546469186746949232989217833206703376250799751537465691747458453849525603277448181524767815149356045690957078011912832143477403267666054860757673492095914006094819209223609197651670781496412005147829226427853430763103128696345208017371888146163077982177116157191746270151007557386167053303122815125703563410320606061461424516163696040926444702462521502512435343426545770696113539595016275655412966987662019546577039535925897164586147045535719351410658623475357766707886245473786797479235649286307517145174405126902944451202249347907693067029434303186021024067113772794966181110469574074814427915339807633086421385218503253459470308352092461844811881988693605164407212730824620136809657062579041833755299801966282343923725622054527024314390632018958598574630897436799841134784976908948699053890460626732378588526957463876377078329345282653710134168863991506830785918728536228328324605447637973749733202930448895753702563314818752890443514862092374748920173901155145303752818943933841664904795420839051394441867811855989650246791977268670144131861409768777228521939733342297095376064601650275642650539818702816469400909592615550924064199134700328796942425480554678125278793687200326749202875146510664149011600461161836723505676164191098039694345573746012352186318964629588131102462095153204088454091169700708373909789618123819321173304900737987144612719434808795999372153079528496525894873045814578081934414382108003714995685164428571398976973015631447690349997791443166883116962766890477730457709099964319878624968438664452936626214459765871421305354899101597969809442762064014403542793758254392993822695339549073712381563693025246977437746939814882589553729435670900280399334664797782519154988071344418938429110021135553619039306013359917434166776252639731094216362136799718922711281218249383589352214324291232319115827871712212223423161963210772724272944895061080825641103456643540151916374361447346451197934987199933813466177225915772765883035357174918717285211554457406889130307871047039774501362120551756587844935587442819129505068648860384920589879518122832089419746844864849684364014678133494883653518407131357369250449894930691501546114450110986729986824523048728912240471250956934739955407944331853733629496077398010480237427795621071386277243067366714402457264544037747624919720307728289127909254927763043482942898763007723243815184245112568287605532941862887475078812675588270850705567988218920947410530829587359205835760859335833292998366214427107325729012472730811076855150778971222028543139246887578231512463697023479030399449382363320434499762806064441099626166360242569339785201990755766256360793934925580262298245194076696198738396014877335645201785278114174348604612258753578786938261340625634404771556803619824786587080725375721334122830214566415182042979430359474742222018984893964369115167855674344042051871566698699204632065264196802747644424591516757541078315200484566634850124957401896479540672686855901747084650524395431306198931930928165128739487048842542812028433853566185654707315166276715213040021235783909685391967793113503557634119305887478379809728935912485316623831986326486987565600859881975121996845952908518002074726513517364678424195531730996970707380336955364209047054376552553904877295061325302979501314829884336408075356657470112510558909600954951525175253004358038135277238706911118433974720496559948341269338773370422894706897951468674300828710313506245899545673431265505028492805899495529239351199401551521680982837197798555422459573428063331589376171069447301981348335138255923089479395377886253862201784841536816286473204890623466113091219423010796464543280618013040972569006184675016338567404463803517687259265986701925556367749110718650887753823134363235009820089695199908121888998409028980211818435184823310838519736264184411627172139457762673558899122768231675987053636030540402465007233833102070660419413982308179806583281918559057661547071387301194643522595807442467836672652552696285175399742875834102587798521509082306918444625408195656356433127685845360802400479183008727888362301228005674485370736457738071895197349166317139396811639913520017114353445488154005579207647945934711927123365644676757131930871775621278895102764844765173177584633577008128103236289414720440993534101496213537907978203108331110183851957097035848544185696496322268891731280693047610436979675858184328649654524182048483914324070151220228448345493177658326868625132955351612244482974124495903476135324464886953784017130823198648109997840812028787698629240618788178512018030759124841022753004023840367420012427341138331318302742225534433271760079383035560308164666334318679827696321263207056228677359037786804997997049125040527400802937087125465162792428375179080691966874331409717317192363759238289035056764320934309984283397832294022100188196360356713296802067135674930549533882097781663537543322185526296204261874599326688307579953151178509387396542760659859461210104420926933680159970785897620762947623180717494492522993604240450468322502252655263089298688775145231745160746067002911212693046874779402034066582879840336461084012207237735936480431254572085028445391268416502252026845159968400607950469586169084093774456996857034019231747497422848865132411787476371930161052235788510344031958616021318277679309750618902965445852546251526946258088938227444662376874836352721815381281975259835434874342416426648681202637081745723464985313920788740644358517316460260668293266015597126781695151217620221552870115024380036549274697680250066821703770066823271496152684915900940904452307825076384536392656068009565622373810893461787401361268754632246422645955028859816107402498440812321920089320601938144042964673881953777285299375353428656553035736010347935587317788103032880379661151633180503282872920263232898455065655132075668120137712177859553125476740540888530325393819581863966661708978980744335213077757589683663838822038060702231734472860342625071894563421498991474918739509497386057228226984033448218027211499390296614634016880722578996596239441041073143758788598022332063437939916329605507393377166567932264565542633588417061130292947748268451622045070317687273140125928678520483878879287671811776703442220036473218367050698423796376248093716638922877945510439669542240709123860249085840672923841040978745491478681125872599383772754007135765766139001288398020565067231474933429206579664612404792972608336791895326046457444981199211306215792933533770446669600619920959675526066118569882718130751875821684000967387592689674361771393699908817170809879516458971380465874725634201673817421175484612007019029410679093650155950970369770246304934282606566388372644226333106259727408830539149323500686601044810255887933157325025932645295989168826353363260539238647780125785454732056380484881517556587275905857226776593065561267174702149605253792992671432001730373139625211808872604315552151541547474110943228991566476075794461477325107553890019776608686876198776794787641376970931285673859891472140265924859543302345879215783265993497319841344870950515295705696228292974491010405093690379316648837876962072586869205420668661321735652961491888902319203737952312701559534485553409078607648180387769588444565087187054350528825854985464853787064045439917012890040586182031913662433214103396414184659197449408754756601308995678501703976337454017209341615468299921514741871990771086992992750484375187922991332481202044688732368774069376711933627091568642447563831302311535522942834655776420695740985924383837814823766737316339958841434027331985317385847647120285786088070042547722956685930607102170010684287084872844237330197734753034484021977370555023265620548491283318576769574848257412006570641077430034002438631127215106225617934198382797002538230000282196139068142419451832876807528676533120594084587431572126254298256826951940353329591088386190298232722829939169338112165554679104256488615360736257815193639404609007459234587919638234573650410026860066300696391351634882743707030609812586002577412019973421784387757522071132024626947573737000971314093418143129459570303925801576001098011296179585271421332356469871545661204492643471207044002309330641734583161356812711543304106702785677083866655771837275676890084471298784856967355781459047491951393729184548530993844334469900326717110674097218133515472246664678919856820664831769857091589423382571175287315337178025002864003651528813925952736382750023860924555667120436510536961269346425118242876199904921982392790361646546238792921108910882659812665074338264138651980780232774876855974853962547537285396462965186072536664595103458575289731593960397315558907843704762149512247134766289820307730144943009363123754946546478086190452328172366681876791897334160449678548841450680021684630763019216318398055671926398478979586188335435161867188782292528036949321935853725720337611697697939891838988536692855860760292550526971650183544973276828084979856535280251630744131784864591940550187039326536506168204081346884900063738093097477378131069960163388906192342737833447133574910926793582325104751910423348385157925892824497007172196833419061859708626690590669744274854489657432220286593117654167863665208867275264078897246460017789569389483361148136894177117826287720950656695085860651682325771445585131566520155120477969820632653716296258442693476935469324628439399643614752344950643164984523871042832914164026510891059738835329231977059472242737837722606703703811703923994632490899006928156771942198790566884478653821275413404662297504760966721245653428253491375184935371768699972953048905996248143355801944511584046524814262776855200744659835365977984279381006734452276914079700779269803014249180872260105359288962271826263556447359668256756691984271009058117952846572469571853266728689566358974096771073230246582698526297710572099345718005022603561395289329926589246755388690045696403006269829197280804254179835953019470292768468243417864756372122485314757183152661890708724721729239714012351514471147843483143605089225921549974054070473699215788086691541058996575798078892389944084425144666229252701143934175557615725477892111692060762848530465110024227387330241278616643813733190082371019090312064122130766459894847420168189668102949702242599429598973116456788606491239262683974459935956574816801084125104059670460314060712878760385109014962368269573281332177280933004751590075607693572820445062477391797306114780679712515324412509481325823211631710355650130058157714808730922392673106649400817921543733310614618514699940920555574714014451614463758409788158054199611416940004029598770186432374524933626103455124319139747338374672213225573292876576988847896638865192853804857220871983565288674922858002318682082894052589787281928070474609678951378190027957440752498589955983994969601179539489011773463453719969045698974547704087714955898193688860723135193214257567286275689948159725120124425318429760293287555924199811352556604601436216598317807351447039944975349390240139065569029394614422011170525598297795671774133773975162656053478601156351170958935220114942357610466855163237360320852132066301293926115293030389771797139275218616072777970947638053485018789008718914568736263630399158077809409093883812380699228159208539403231192371976719436025780234709641669488368407744760189182148688154594126425223556966139983363600871857048891445362044068829516032273209094496929248935818761694079389335507136826455718738052694948856828268100402003264265162080528628745099539932327500348571610871548297325238264524638541238257867502431757700985860359150623157520062117431086917882274259247256136490140519847147854594609388405159799653845290556269326119094960493926970793682884699039172755867562961834145180495906129609173588361792948226661619332282541927127321545607717728608758599357248629094924136672055957471788424260439807837120525511284573381356328862625266313154432136720714421975882724072805957864054544974048020638215132592166419065870258675356696362424112804686348464402815881181899494205698433485373039848303817732440284951314271313179624167715402311273615276349825690713834947819797347019430688946614038585768938247200807555114524121394664945760547572725164446895347551960706186954500141846270930808486247959273792041109953020625307959156000872073850297781866924701382473519729934399751445405595836349066418857159848284149349308567805859374717074487484187509576787020751142957409531889702095188345723007271162795966966064639060785563401914923104711804472253332983529727665151224714331840180829964371225149058363722024095647907768498327057337069830642707419847763818214448295334135088449431233943770640000125085749950462239456948234586734998143174131072419152705077389986141168041567181682237845240437117875854874079981567268802239073791304491081014261464141995743884459425391980432796672876971850372281338587125745952474005826438294286552165475636527515954977524716201401856744261534126758558423525168341308055890750000663102705123182044533094909562369094469562943628603510067878236448786860851900431419572556098326767116337655178236038878915441497874097862911546235849705027788474039987297327449180074502929929512104702832878050126880186782235267985937669041913315673164707549498839233868597554773220362347531325603718468416191968309109045527741780037816353787691386411645890095830548321332880708496254337005192988620221428401855861633173152337969019157348825982015449414530153937104591127578860955082513110108823498813381349737012922245458402382364338501385194847428030091431182440011557677968628677090078118899644209410785376037551354313675351514986132193100785611365516729908551857206462176764886847737201927379003641294032217301849357627655902717526573702770978427171541497111418501964061597284413056488542154937102829873803381367731443361829619982981789841718590197194883557557020443674250606121957445906790444380429947116067427525425401813959638129570443326122086175640570485770306632935941240176937040749341577739408058463902799571039388364468355065372190573757331831297990825007800766754240062129474657857396158702576204112818882394624494701518106534233989106258554770744466189099807039627048492717627397784503132110202315845053469123263495002481766161471175358076973473293503466687005950098046331506572586876778202934972876324673040068108265912708850884695862428446728507921506461393205878852365391971714382156295975386647996537826348295032642422729584173404830457457518633662141796344034913954561293421918366196790327643243386790810324880993071430435160949265899290363589792331544521019856427821052377839195687408816446348080226953081504493513856204821648288920265182921538556426912619227460770050613608359095360220240537929745790932411624894056609150127228010174022575275194064158877414125844330460082548416491053269833713897883560538906601994747957242244219059508960081868779933526222998967550956214389075231490646087261603081875913046474933912979064631221539843616626834455848141238572189025659776475834678079836573212259452760482826442328874398170058926023400125911598894237911991466479540697955927020652511065186393806656839452703274797247018061225104424496715243651332586783568528726329826321664427718506351895559966345001094773090644768144913367354100391462453685903360171503518392418182840199478455615942757000448715198262075101166373936046889511636129537001193547801594262309798949769688189208508383200763564691785074759934272449029589299210924276184046408804715139622371555999007542922781301184262585793969975042816897894110843136908583462887023176534807296363605979948546083903029299074161400977396210741473744563458549281902278877121474748000349322805134405221802424627778341309213724722321400841872527631892018789266025563183467631831119763051135601567822744772802562555455052778921718764352834134808938146924666738826088585097950504037494155405248757092945324109862092590640907858746759031410138514520667015495280247993445834059566477415252914787517818144170159625105437017289822098695811100401712596442851534075161732320661336418045705823808575205458156025692322303229712032109289362115356773269191205807558864838793889076536274041940300924994712572655350140010951398691295180279990335969860669979927453393065672346139991159182124199093612201153542223905265889800314934655870870314511190770475577947601250746330647952401538316567652004299490166368822359929482667238959707584002508315468161925181903770813686396502087770535939766065310315362819786193735796051839711834086292373547105850926460225839554608840860014747330724622345533091591813394980152345038484003356081646794815352225868661569214355400743943770567592143572969248611257446083067065964110022286942406621695060849494400549247022112665886881218109731826157371786907190456607081698091064101044514518888196719683221659348570735872025215681354191915453861639723030039870823284775229587213706561923659430297483945385910674783331294926443995209664484391880842406882798799100134470625761869539581811720473398258203427068777623178394811764855193959466839799467097505521124967607205577412009233833845770450493334210283660689507497344776291532546714010964185327693210478039407914815515855802515355060897790308988030507321159306070514372382717206951636871637425236265855371161399235477546440065130737007811998708362419728385506749603674936596875541481066494492392561850519518351038923702568195210139669623989676674994550759350241080030922294129958927911786907745463378246056143434199309262470515278190733430863832669016686286868288298391995270269923502786731694812705327897291061692925673607770738514606493068921941581674238391220665813032652899028518451178016976611213870482836164147394744219214287275644663308536384864044587119558461459598837496552852556286559060313253968025524432122709593492705267984001322191224703500386129327813691769177088737390599986330804340663678870900829824587382942118340323423448036553106224806367051630919387115311630718881690074156002382120506645212372039993996509314237817715223230235130175932893004684766315961169059443515436790074435900510101873803591784240204884298582985970084662688400488833801898651068041424407850187193201377128737736799578354586409704395512647744060677631533974201955742562673360732163532617892476696260890521518918526498230866151323978322413795212611085918758431262926242371747556689268734570911372124478861862209412710711878264009871145264050057496717317645914143978018309058538769832429876215272542200305589087986312756873926870565778692294146061574668611924175811401182178220662908339000582728318968677837578416500554804513311028066503249366038346942315002957941748744354163565942663709037690469862126356971466529296029569027556077133710104848223387665498498090544495118675062884631763907843527995903457587709217326620481666636914970173256176742479747833799510640208121138544697912395560777759011108283181110656033095810915847844030268535666816807385067941418081501128083143190026267316475140246724557688470554098848409168334558674966906770731218758671559043566946326464674121306779587035583884997521485083122904178703563641953235430740037765844637791271144646592910509195994200713852540387200862589511816277460944939535454513373011096666809935904539051347529629735708131435978791233281763896163275229367844973519287262150482812568842373114497172083249857415381842816432662052409909777825320017540632435363837920296321522393991009810518605397477357114224988262633979590197746506622931617903398515319051698471204921438738832684180891806986467262647157915692078684890826555623237319782624192593202508761064091486338950217279848046232525819921915438306803201182305661856900194951931185260173073665983905560375468696950931096336493290363132766375862244254314792730780678290439126777280523255318423916127168852568518824056054231600969767109572028361436188456542896095165645566454430754996404726555145239122372078413377523782078062336986153803372201799011324230726962825376606083179204998313413974880897068535054880029626750854213896050884636867410746221212156932904012767352200881073919706145839213140136079054847804700644843220359511732906922235127039359545126561645076389038314346212205867472953830797355898705647481985719623447066491589690862102677251982499640415624558617375849590262333060003983421908657760672628686108207081144389606238751123179363818263548951427842918161342052576259483852171749257375882917779624243596380063441516447260454342941632414771045254235468143061769110107576390145283579248119704248018655358814979334360893453606963415696922930551278137046849371724598822382213495043528959308984241934351174796024390094380933714405665616026191282669668173921075639062130789199170772382082707500061993422286123987174666933358618970654931586170082793654649042641138869758526241722547600428059051509690810844564238463653511164819468151206780850595740466673477672855785223543955875275267217497747289103476431608970803907701636302597932161787542821853360517608125767393255898866155255281442994211409741454726173770506063960252705680063439570374459883177755422890469812826892052055484562991052748998336994490661101155659425687910700486302205254616746155977046313090260937800225641167537849837787480437417294380565108691336757844056649778095255789299546880893414968393439273393845312394240465414403218195447132631340942155727581359348041707880873890412590493639178262895859377207002154783486387600088630270622123559898895873326044303597578099759503004550164077793552257168521718368926927108261868983858933878617527958130906188360252540222250265535597864022821862452130619589531136224076882991554760490543193739289295269813638986485179327973450669743485809840953677307563811194912445921884112500176528621048259495799905050692573232712681736314482993150241601842389455131224779685491493255048686646314736375668250125729212156830694979257773855550080911883940519671120384860341498928102040132183110207131744386975420263843761970398474542890688758909003065459435642336193473241300032640999341734757942586790673746994980638712005458291477444566828023953960498474877109647398349025449559646959072403862892955691660384773370433286739468128044908422522224215789103216264552684478093380918856989029962950347461949922917418780100191171881931479633349319139196106909734451289351276319705481250831469842129419463716106785023922452019029123129360456400732325372817629879402030644380029119910922386305720935313554689249064180525821340354560888405054546015745294088892331569302342514896492798764779316390731546571290122307925414865180201375715635872901839867462532588902149757218774973767076609545603111767913527577812004814414307784644744417711006347137901926508331954317753222854594342169426715260043298350758226082011058847188504155641929703128237774160386250798879835945048442549860544511089856624814701716118299546550412161530343078700997644970406113429449257755851040746629310452675849458098200332428819694658304306171032628594099198002306485318248425838903193639596281933082566920411639165413595979923748986451791363855210479493046758365376396639764693546366826549913490996561238361808816448080032112710220840738945678876345759593168392824230490799575198356588031638449398536348450611878685639104516304219347544376864516893211581501857735172276268190994396798446888729030492914933093355405036860701713787208942441378240260687879089243891703529853832920236387298553090247354676653672809866082139622229465782090453832565993802730389720507653400073086370244646426061550321648287539241237030867497096837156626569489196940008924668218274493358878266639857471524360852947956186512518585678848073674166038199878753766673513548938967493195514289268401017959184578871324001754067165770436232725847811902801186081602553910258895646379484124089624080201770008566258239537942137502602011520688340655833741894687796903499166712540893645817211494061850010947296908546459663499303862269658572856355966092671770417981528137431877482287650109838985048652966866683975106723705076277297895373646352345968414475731302888069065235839944978253911233225069214901073182426296228587704438688015349895063730614942398904498580511918715073860621887877924905116042319216040708579382655056223420442582816273324490871447777539518146698672132205815113656795901320510724089905659100133529143791413342770713088183419217823797821872568253118955279874420854874267655766259959275047676852207274771161455220051920795197016905481968387228161261638456342400785037602942425495917133837874032718841695073816964513168845705011829995030850409294008937793022065551834371174922050689895844610916963744177648937443220287743111584225081365085382379044694719849377229090643139806417403062723426120004186953558031332652639274131193144157036714643967471899838084140333828943056215150744544870802011137319574869228072855231224489927134998334255704818239783042425136929700659651478631350206719148993577645721960781584007027300014520855198119762645614166397057357797394173462938992598061234020043496701894401643919400982568523414720099600055460548954907761350339299266495371487348632808429564250580801215122989902374488045572266519059323219411502448808481600385527170260004150797231422587040450539444542186826035953037278232824966895495972056709318303276103681783922688515238327778747357215057175130603362240150957549851303954186020457728969546053439562240114368444357726359031337973375010342965878921083003434950978717226336303151690476027911219744288346646429155822554963580031479787569589431286142073528779843187213106046795286157566062682635254935898072003785634625930052174285457929171128536483069343429736557695176103570679961281271554762165770401827168889242555158435296504670515617683901799193106764078592697441885411963715597083214257988970620208057549383639329092576272835157379711433543101962977477344888677454236171193197131795337331482707181655198890801570582555269016236217134017098391324050020081289813169405772206301712429674186299648476721903042943565717409999473886758424177546101678130385149092161610583299000434092203891766923001515419669789435518460992182197917568065555408029555005360253281662997164061621695168966382949939402953651180679574018938187608573829533368548614635481457977234858074180460165200392800293548638343013165189727084414219254682401790589661710599451676463991060748444929805979365585459098205874788576303433307469038702433122731428665665812338189074668977962089910744312630619838111554458896538505187445561237769831812059821946196222557915421390146792528822417380736012644738522699982414113639412107028386103040939030830900761203719579606170906880292169780673789952967533829088089620730724274606284800028015438879846702106728671340799948474083558626338406955100278040267266627390074996671716268429722955515570136422789703411238082949386593639108602195584583012819451684172207552281575626089164909504015112192204330542664381340322217081269703726188077070955137614411076234618584407610185645230750842384988782864946911788331389791318935073352321500501876547188682935319248502679861071299538312566625557656864335806514619316120733100695776140203272907791008514257860333186085571969765576403227765106002689670435432553636195835224335549520066554592076393845900796753991614015573747613481749058292400400347815118742338031421140250817231079834498123398949138595297524933326762700238981831022700028763109720887998598886638478484738047845441234208769482099852295443449053733421800535432059649571352647543836368474400782101250615386710704057866347827024483827342330330889069251286788773612852848327664569142332490846976098749028275416272012258381107992101392782657313403719135838385003162260211233336610684437097714254078648588610037819656938757840490750577997474963218699950588077219346435987946767102107828513427928019234596888860716011050346761958203757176704956261495111257386252095222776199324973222809233089824858601486765990634006654179544898492466516205188717521456328461207868680264004919075814722084542810238615973946797425486485839596074673093318619787713667998750495997127362928673496081532796841694563041002996506203736214853163313669183912335914075827423310871252274199594090061998269043202674522119997792489361858914248619920274139152049681854817121119511499688834038702925274151581928873877229777803271683117368240629864351149683020741767832398263218144686103307084311065618933112184842281536207628091881646494426861984369429458241795667426060490689887628348765959887146073955751859060886347859847955875893325018301666026110006147205224105864725427731093222902885511713687997371898923761744498982977953545410532105510193195266528561302327922117563726406129357467507825337714400464623878276317261639756276761756333042657595125469472893454329694237963940469703074817989840509405778411913991694504333744469031605668040274519541655370585196879248192767977752279147566718679240787936761149033306723165187595977878928038346279591210700209899618825671719067846843527183143130792616504644979372283063811657013733991477267390667532261485028765188741718508149308020776454286371122935079908575235693254107474149548993015774791276178409602555482129442787037350653492454811587021837569214112252163297246902580977806253448502410805536995938092386866024220738980744273675836646341755445639990695318786316621692587250940509454568880508717365908232701957364797136436244024976355046849916832488748642284618338853192386633626872123110454727792829728366250888064530973172694186211128780678514515310440016534100997569645252166100970030225798864510849656435092226563080898884226365010109077530389620268525400665039586810826992710847386370895601684687034372618109323748791708136317410710575819601272413466405353139529779358138614273920507026715660974761010437903099683611724330510296615135289995360587372639440496327346994673338487913478979616862823306480072154947731815889895472303703792787364019055673965818433184981816326466949427906141318207623353309018894788542868666001376403749521389256885652242207439771839506528798093119481333698444627227742293812133208405055155532920526962357489721433431251692625360711843298677324844811960622148775964773336379478093244839928769904270567979581124633847719794308147317187632967907908454926220168943416316652406361560624697897487675292558796433119905643787474903595696797095647771717264760471428406883302497667154583746953258586978590987190704994371204029396741960649603503645258380413653277998325828441710989492036612888235131451835067197758861619480070032895353076958088065077148092701175112532348225442414465031245132877134698345335236384759314653650798454634933369288455655597895191496579357889356144051453215261542045074699617282577113863632743211099884003629130982450507401683273192502902401154934029277466423160643439149082890041512568110834375854278770545616806813501410145270623143356595685423221263810766216436169160967235052417451332064905225309919507407735764974175603109068851359327286923130652896237951005084704322235012645130641744002219025872062104701270334967377281142245260713939349394635696956066769831687817036483883469420793842551139622510049253802143712838848699574790437840965913915935023616763505976193827683412164422682224739322476196273418738164669312296567699407766096080786813402388032568689037354568355835785775779433591372894961691938078512299363102332081184191494259602715341679169062082787078168571369981163912805067941438119976770327793543274699025156742285145395487408537438264117176027036660115572069722209417197106093807523333501792914215694453932480381270951625282868441152593085287908839490970864121287482565150086140125479808312284226844791284308344549698871446929640140695335673349981775719620288059544643508433683846534891208105148847713802318604559904746114494573933483054874414335693408627206939027592863266529003646475367420807523468236582491838023656815149788201531735507573310171796152005068146950738737657749601317980860273524937542271192758905936024014502489207004129526352228363625529212290492433902601249774649832862100722128282212249739809095094727498503898254599855286095335563765159789276992752900139529862761620291738671895972172545990186961445017453652884662232660835074922539335514627914660529262267205954423363214747200538049193355378178084780823734419572441547825620002818709825590490932833537901400455776148125640218777506067685218330552416382861303166445018392720336703011688644333584289964231386685751035680751512389037794780602640660183576812427742605783995063545937906696217616463204517157500276363565842478371857540425503060008606216138810979974643593928677610385726346920237253489910442761636150348867752706294950673833427799353403048336641589828232822425879410488381520500696198018326887461512760131776184661029465957337133083116221449288645291325054058155077994846213946202309109913555473124078039843904978220094397785169270853880636954710387708016453338483058391911954650904718841015941015354505544559978726813791581710811063643696138010274340641242600380785910553270485978626368069638162417886689417429519773830163076208579247959795504856191402330959389654164716493957158883576315000237633972565416303464233727723643547028415373988862553983790259071670555715887807473387868612378689388332108040930650672661000281563324489842007563788205201799298374067361107945377248908430239399377448105263851848601845037029190695140574832809361193959717863133572574193688795378248403401186364422929189581994460814637510114285372322441450742210139649749827476876143477098387391703130911554446631390957290486884129133237745043516836240691820256044853102028247312340718358942830580511439872343259383089363404646761164518481157729139570620023340148715241584538981678904056677552616587998514333858789571042256054326118299828740910036461972080824469086037504839799000623705729855590250393327132250282709989324586671813240719295320822067994281519132078738016245621850172379808261561030671216155177824819696013471540960957073317498333961569516550984287824756358895552436567435004471023947160515401694068518727145597049204019438019828363266946660386737813099411275493709155946592118341691033694167188028842000872018090894865047676579287036899048657834243462303727750632560164616504943270804563297565859918874862365231661502187247171650103006240457181571556590365511675193949384300539506016250399692613657695950313739001361787319659436059040731948000313699786304626551960729492621554843507550551467662999637848533348630966362257052273653498935235616415487068470241440625635436011848017582262015405710150840972539067693954734426968824014846334584935898517877179321254326633247534079900678928395096012090261329538202592750314933665953836756726941870657647503395111778197093724414296359044046392715507094485262284364981664045855087425811492142192071672526396186264653156918971526474216704581174650570768420619961681585608526424450397940876181224104445728219952986788172365603073314161874120839956661734639271386754172026734327301452429574171384488431800667246472771216567657544912097622511822115285425723925539767867498880446766054161837726370809790896123011462099023956860276657686322023284929787329017850043471018122605239955812455609949330295805867391855319188372718864811353177786077795731227071183543462618668734686814491065876707988843136744937548230614210790016979846965253167756489337887814769720154270496913128307627673857764036696521585504372633942973833740381531217811187413414281339469329739310269503817666275868498139662776320155031805046297432556680410459379513682333051636410624558806372735363827395301472653411773227867985833605964385813426890264751444206297261123909443268473812407096566704345115920400710192926942727984297300589214102334862434063514357586651396646195029812961966298475480397041226651587313018394939355542224293722582840634943039570312111176587953223016102915802038877534645104240912651289759986346895860191855263929310977828355277582362658626770467079901204026466133740916377551136506814431681181174984487237802210692302453705814814532607116340373197218815041153805410543032466732714374341724720114311739880034087414917691581806043463498963406602941847805988714903742503401109367697445982464485273185413208676805817758302960832512195325385471108224333431706801870132682104057674329545546274123057331202976589379530329003990805452335985222724557565166370252884178145844563056636715142399728645612897292467543476617348646174310211936684617007436164998098566162323975679730026084330882994505377485530663014797745937426248170518992086916169465360453720993023679254172762838562325989354334591201062296409386310418137870862172098937791159930865658470416763054057509113245203036134554906957477102245196924999965600456833279617052653660448740481729340773481506120676868636128173821105323478158633503767136667742709546653608727216372566470189033904285724145516200328964229198407998660005512722222187781520235791451591618501819851841568334539256461972409401115367226582072659274713628552672649131506035191419205175286408551261766813167432163425400813194436777031219605512012289115660777045670975665683459029038929929008777431087295558980604062468241049289553580636732775902795689839067303336009906338675915125665242143729092515170119525797338651875406922027246367090080155091040399221918699652447493802808521907155922415449804969767159900169529493307094121120564331846801608200131355076886048890094873885594850070450406849057792868476872153601336097789234339338884275819011548974854374344291284043447261393641791191494819018551146795943170343333019806035425999972892493449952342290452632007873451909477768600137450770650834976000199263234021872752796612223859692241995444296935688075022785960582629290212373009959597230442811701784316875170294224029268702561109412358150377842385421386853224791528062231506156895053455647902270278654842457142169291968441044478099850297243965616409309269224716183552577995895865038602889810727498201756019997547285851177123159496319918920162115480821141840374525957023944239055330728654383571090552718035110884006651159798922383556384226621397932533873549634288666165846735055876320575801333549458348481274267242274502483246884056600710982393423203685984724549695612981615188626993273714760243931304823733697874082915224439364008560460937338586110940695506746678008734546276589859546179687628210245366821137372171987248447988324636354492154893447754958177517662954923188491865185092365063085484259340955296435202635342918107506853102636362799209134608396917505317361811264630228260595777966315364611055488925645272215957468564479493810123758684569338853597754393436470845204137615473126950694504660801462019658424815992626833043562284199606929721820554643053744208276583241921162331507966917429334458649816901752435743346552337224678701802679800835847326105764211314694921470575297124578919519381925583036968313720357601230127074782794429851196373940224382172198769933149131491712968136180602265426553052276867154933238660248142680903677406098203952351790619172401643336371226962343128505544679681267744879654554951270536084481734350422877124344496743397028196925183667197643815259024720955667775898125948798478546281733163573242610420162042713046531429242409223256565896817165184062064480986071639263670557165720859403878465488716018178546240496879486451169717860119575898669367827650688449343761924824734107087049792858283957138810985481500266171681706660014206020430219460054205681977194859672937733898690837136610626775943351119546255555776228715956853083295832499728358448249495572445522077606882028714500041891495025187024479479791502319977717169827128961078273337701151842206567389298715612886913836359265340165896287233032840309061094973080831319700001253287122501110891859392309892840696848199793050851865445305449786432312578243597681456576902941235305124405703236967495634596725636563103381164048395146928482000955566927587569415575558310687027158773656838172979233134423821259330477699490587045600281346161520060158512122398475758916642372084376121148272764641698673438135528177550468180877602592817957468610696227242467415052482564895396067269471424089443183946317925980427064506785396759455569923427046449763921938857956715571996335520248170759220609181295163730463974751099636854304530372545969813974436103000371680549163472820419921990531539926878036358311122926898127438142508154055028169044118771801959035544412165465895392927199151907724838732491506717972408658685296479296850616295842445068947971119388382313392281635817476773549516410351014818638084981576476935638339937852712915432788371680482421624705888616331384832992518994006561084182290463866021704530496701119950501197274912193117178431046263922848245601841997437878198188035118167760147045145887403148020666217721613194797950038224412901233071739794832647525832452264518603929283968163919473504275254979759024141001424879812089778455337068667493379838421644685775957703375535818818887504205314600672651860412943407638520781071175957887738577467078413405100260046563762338662533969662265986752043315144916196159317504584467460494316853117741101427348165351573540029995808783193456259621098341445762902306137480223220284791111728177767956168753380358200506994533961440053670281091622966525919648562108249877468482154381474049963783994661311517251855714731037724886803758314829668876725236477819973988857507806184270658098529750330010390492208676975910587091072399344145284627145828294565197049999230085573054795818919549170685531715450420718819667943701386724944222666902687041627953948597821911458453072579426455304178784837604733361983907215293760527774853824379567577945946718005051005712104495897733394846724181278553352528672200189931227197296160713931996666722202970938764136342744815227023765623863634204994593804250193320679163632268012092503787720442572953546216023609194802044220904904248967931055543471638886235371649189011815089035157887519025526664938140907262519113731934370642120529397223626232931962014006834051796463876604802577958795119101768014767696640922959467938196974414207720875525202861102718728554910996323161847273782239235440994568900464151128961544108647926510414885885675112453313118377481752453528176918785612279737635809433812389665871608281630428015377017547373810797966076268175679467049706391303874781126799642996626703171642915832938121008931937373734880767041353867213136234906912281168809909580206535102540819483109729681579466334846664955225758509911890322345713402104481384804767597514127701832901184092073287291290155197362015988178362527480114105139321482220929828724781254687587709679891664420902439885381480035027066052169680646373820406023032366499464138670088963392680339622722051296207044572667669993205214364175238466527222578534084882417152085672501747148676176004154388330590844603177345298393728242931433279844045163825799524527052745695270298973493401829347414018319966264915676185795051051624414310410124007570043160805589440245095777952459555835588212115637672394633051119376964065548875415381400691273182335322143228605009627099259660440300469220131008543800741764031899466224647850727276616168920531101300019753739738667128271172808014019851131420707643560060863245603645885173132511660238073482278770876950267088598216887078256574309694529739147958901695741162656146962377914360051827473852579765709216884832734612985409919230293631970806973575579700280880808179175570928470699866348656303972135760332535107468396821839509809310884910262574007716433274027019310202012227397355153800621003609417837646723414457387912573784117772462812502780978753328382245230241784963855553635117344796556521368000729362570751855436508632625102587074463549318115827703061498285606674931876414576740394674682848009333446570221775687161029105114591530905578733584952638206624600900532088547904859479977436354900634464358889383600182941773230097909387038944433137349855364412809680386427340540208673679890418728735275160616481616827904795018840123168502757181149135013690881135219055990967068035078458183285034723572270553198804955434790557460899928322637457641723998987013191525260397347276728426050808381350976828563794146845710417556574032663324060021427697060537005170982912943092793635977634234045823534210217740891933195158370032301920545518396895827916670050070600499080388184358760158945285449949538527938446448050863430417702639044740550092247005975154593176780065626286879082799962990814613557863291879158219478159726158817594295395195651998187914862702826166020645103795761854605872877067260778430148288652123952916133309805817082781867936400146388229313176867756032404591973653538505632189991676925451118324333443561305237212972261161080170576664818680775139181006947173805371603681455137128910500408614517568232730928927434578025039976437359902274301365037366898893713581428909497535540711450813098738886742945416440536219101291106754191927905764196599906280290829567389600092620635570346805337127868569438813934824670549473955112569789867261769944027390146171739756198424203393153869294632372747391158421237335134517091177797937248845875121920347804668840578323359582963694351019672201758197028720921511384491921744150666740737544119610333680528863749235811932506972166702545226984350855074036733865307361119664210604234996973354707387395290907043232070039744899423403328300072649236431199761627456514799304262287831920698319748780970997840244896891138533518069703100897428650318945677508525855835767534162028105630521872518902836270137113009650424880370069621594292963805502441976234502571619810575216424421979602290583571817129526120202682457386542268437024706063552410911504849448294920107802039714757382780526421598782531231887395999374154369682968526578312040813041719795757581563702230831127892407725151604020248645844404112203405591663145070189825623222228928243317483925298372510844367760616654150239444730374685196439978174733073527073713499935060781968696527319682430821827060889379230212438766963061960264562263005515452349948021433787645185793526107938668041402572291567685281335034270381187155931380468947582201333041331862320941320321488091032142113828062808877798357586289082506638030447594723051132989926592849650755388136499027845164198774593328655903453186479028185053342543126566438270553086501029881291129548996576755377920327022122295164832262293904729086596199308543518250140571562987297537624013064630099033483515828642500937511474241375821137804487087457605389107558582075119707203856686635727979178353497127355000366644696898959484119929732989761425752851771208744074757635924500760951563164922865609017124759356293123110127353275985954056139710858242118610578009740350165095147696840005427345663187064417758833113197555799200342428939936888616963483630483205925375130622131958640618441075635113429600022445005449748006187450916200023518643311438219975421946694723012345721357336812469305354848653746561048568120819102221098117124193802027651143428036545656298706725642045205854321185508352555491073531893882586104217274735701451093315181211114829362383450812182879176845427520667854116323501517104749086673005131823145927442996680642245813875652917334682118265481851562982442081966654703375129776250746432136172471392871950380983347463602571913435581271906883683419139272290995278315259033864032922810678570072006537052909646733464669989056620631825705364534216880354300782671114319865939029102215063775664140430875047271794811225799663104992913217848868970136392808971607048991933820719317431958509800510056247243334857072248733699910886571601262288334134660943504209159468847812633074419996450506367374782714971146821906615606128056259613139936169596397910404520928301118310552854286103728275253339266021689515292693303633401204720854465022098072620554499653067494761651935069883608136447669875543538065723914733715726834124568281258100735248095051755756844613921779034646762581015188436442981696603544697668655305650611162203429965761023656332972753009579345614337972855630022582121885592472331200333074841071443032070110290817362032112671801353944374721760018366444813494732607834681868143114551648572194320525312394298383915629211158296347576817222386771423071180767342084901711922162144359431471637927686698921521099509584787956193198838808808815876295521972004311420272880532236013038177500691850053880288814256579269419226723541317351881006073724655548606146046722383403471315842383827668843830964294351483620495200158790728999751050030472454962729424011747718533909482288136218268048308911814586379791577712542781454200606162618869410873163813707295414490834802776112404165759073156821556905886746155630195902435229004038285493972155412259306199112769021846017527975639213639209555768320061695303159250433331104606162850800098356489749165121790416214751411499002556868759094766833604601636172349356576896582670235863962684784275344649530784710231470041054089446160941196620994848055489649387508695939688239108091440335165374539814897405004495428634179382023663749446504662910546907177643419132889672896565269534256254319528707677669993294471270077320408039302503167327301802759113899014111304007255150165580424188091077389349726760052046549597896703872108731409643309802410560441817073615247310662288371946694121493720920957618094190387926766260933718174743908416191252694997416869725969722405377714397182965464665786541549916059451424388852397914985360071368987456195230897758627271016884953849804344618318059967094765684158396079867771019531113837957833809501641717957267526389360107580470188716625901637936996669863553634577497144561023501497289021978751990370427235489257182208619348215250859090968957407032169321747366794829951367658312696410437158826488262105102165524819766118711493676088790531817835091426027206044260071395249724315016128737243791201494628806134825850765121776071949427608177099676932072688964465639617139450557669977810156449104082337588767461828945687200824689547250494066981322178446378257932314404658899280447424335424070864081314636424954490566302156603604956067470608717329045429864927200945557641259876120195960461579247699643573419978309634002145350500358128135448392645693592057672571232101354721282175974476005891937683588983185019278674415884801250070702095783929459624867877879346896372041709936380509340014506547164046055721076260772522070879125786503228928466080632351641122331295118789613548628942115403296853045569068491165433804712137367402060587451357944507933450117452390563245990988099556478580520939629352564755529291690008198639011420320982076829585855765657842797281174856739561271716735619150972509827668248640129500357120259493669953987488508763103675261411986471352345978694501233713958619449325978600404286474718709117064079919513428822739862204830388809301461963994485388080973958088506066233483613732014526633723039288137431643207716017081947302595081516915689734372423029111333251792977390921930244635849518105581568800528191055429452236766634301459079474886538667987838459991067176307184384736553560265696682259357165736650962415255715638781475491777096986916302998367889709531513067117841509352918920201370855193073018277758836726978414649097181557969564483807528716562443902254236874048735007885826920011842274087084849020127188888267353825726432497026758114426347453128871661034649519375680499067672547114294255486129334092793706694947292211507398792195051943476405428538043112648361311926188999467015207678961238853321166583358640701377344816416759498591371069057260018199219861698878410135742959424367069506643967694601542158500807883853491886791535267557081042936344638177246923088287612259459716024431973731767525519321436813745575858949849595289974666703803790013174326226466635255495821311966995011677936589692590145397424893062098324950202360545154395617345159735639458149518891398649845196301463959250243093783390411224536168051246244403611571951478398460921475832243778204585357086615111153869401468068042567642727103897248998414658739543814904773169627194673905630080341810854678980607163927525590483729527176458559689465003196546875517127258091900631134029295334899749132486203385151870785846161360410141469392912750547692247217828297931832907574892910410770797225500797768710921605709964784511713780564182377206871409151545986830103288613468367710374944923221741206014216225006361182739705101906598612240498457821577077854603006092332443317790590726819887342497827844523675802261057306729467916691920372547677912776044157553874908642268224107953792069812419918015922409867546754940134749320406666312170220487085542205968930451283550471444482047584036382204936757848032047867661500407633262018190808652295810303217597536299379797976389262560408353553544534257820513865396191393627112315541496215109859469653004843057839241724492777560827759615305488600532794617719304121005570072884012992812321359805283908337795888796591597815001678537035415794205517814717214296179910061423108974292554883571688698361000262322121404331411517722756228736079309763036113209855732230550003203922712786089782832855668675231893167749950297503385407886920658589854455444488017587053426759041908302822555124801804581238078662064173629428826958070490371060247125164580113301615063809321151304606665926736062034391844566099427730020089948458036635531852121353605977646745377285878009780343749095966955049361186416806446081678447440689916767384777226529456653213197052409665113208783948836675219387206197308625978058185310342926081286236104997177886931278959153498667751680171855579799114708076423074656122342923490587148162878194117230320619023840911228195185528595262468405731821351553659834718203728081631135799403850263731804939779329160305819373308003759479106453964245837137517041412003961399431119932516750240798129386721414939521693787645168821133234762404699724530007748154670288162169135151034780772872172421746650455759447866708571711551689693329911309819560232821061820142374757928270395126098784001343931216483810620844050260803952106193598072684338074539726922284876054268905997515480160116878708760177582596687076264079636663717876624963131379481300791083995088977054345714245436952633804723833460437700381623850901273104800118633943595351890285614759317060436629788973988045463095529470687303443656613801186749163604759602066139423349390803036743402932009325236169296545219268701672650933583416679042681164713451873764635890301789922248516720885858668384503527751320344477654477439378025417269240319869710892173840579051257380936260061442788148960122643047213741248053325939934399108414703091265854939464331726594647183914274535780230015954728729335753292220322492725021194103778903164577585510776293361093497136640881920736152508265492870778044331975873290239897451572245074245315343497429311997744541663560761430533706725921623279775795963848307449355176777087507922009551420007389345728104598414600058615509520879409782511251149224507995006941871900499392239846716956211719856205846735616394154482295463627865402200408141600465012474606100523378755960057360294859598011118680126286144757955894466957487709056493893230137246571186279801731827291120641833814846140048449463927258774472908528868204612979215898117599503003295816010623836115250047130632883001222825157520243569260777348026280845705183389892052474198850200067766382229320457859476535064264805313749143796456949682224645125418310891263266406651719341289623120987602098999129301308521199763455169279076526516304911859823387605150048222706076264077322648588902993208647409127981844817512378628675466373741021727505658089700855130806604658015623619099606182981192812190068786745526464400014204618970474278402405773354813523790937864154847125199380679557635474468377950778700957193965967420659530736691060199071611078868334954198673269926537700711589033770061390931597527076928991017479691138194462784711357524803516674958953720901750488921595356260584465065442187970099134442736193212244393966959058216208079614008956251422383309737295605201134249229868554520875254152741613452055630032613977958758340762244390759379596211355036824797020693875610706849625699825762311142632666350664396587602123342885868777948123507031091275312080737146105306619908965212224699747427046008575485306748867173814356252835239959331103983895307638236448798265268509822783942562898562912955696084665012312681375319456074230778270899043746375952858444878777995020414843051985323893647818501487113948535422863647030806065033443189267971947600110470186579659730979936299200928746085640623424429818043930319016299788227942739745605680770816494110011906081709891045384086235131830380385680220140919643533807909369494461687469079134892012565800056412229954189831490537716258927153596673981762868326720679581934055729509557382596676165058677854284302301146613091559703137408098973999953029222432869019576723031872504706153240305967233860405978099838688898232036004075516170164762154907964987154212265543249417046733301895000796064472960257136082043486260586635180848182481135129738681743867638140970901544298099592799685289081449834144472789276457451911203838559465427232649639280235218254188788034596748179329473903319461270098006886431916186237628742430094258676813783891863778700010072459279271948684786144182376931725205867790754301073117487662488667482316773066360048019726378101969474819657931692507212377973117077986782747151031107243052163631405602904216137077172160697157235633754765085135495497235196212008301921762888088383842515189409653840913723947600051062106790296546307323804669562857085705869100896291346085833868287633506582598894178959290857257062679582805957665718376280027745222932852363070090453613960489554987913869969845368801738685296495526248005443260321957146064096105862807777157450822106826926704246966676329302769972880077708536679004092153783899602998694495642303854028790289660682153478515877567415161350020034748416682386319162370226631282433838622605003769149273999630348660064032401706505654665535114021844408634117898447666189778405725063077902534817715642884321926720321784064077259887241612353956157082192865905562646203964050373307456904593648101289862169699165034926107560975621283725945998307863877552135335994636879906823100631498449621743186274403274390933721725059115933194277422228706658119866162189405328217352223861107150691372050422300504916072319400735686341369596785356706928106457878102429014482751826661609597124765978957834290883610363426376958127293958420689021212220417492924808003076063222833137619963132361092304826540070355085314718588973557139869784543499121751885196480034552418738168254486867686844834446076737726386586149753251331510015213170104796469888782106869021663519451571349867190069920827147430870531816205716000567140866954619832221613202472356650753790693108322103297262719413470943162931655541295173647125676450020043808001155042477198483846289676145407956879006227997301798962113271471883984601071008930856396242852478981866489324111036447333149892894817214626344158570072399446996417507274015252982824864200645495613758700243586159203232231380006405954569829153695346894072675200519212333458705786508841758538708211089162027232306173362435672595068355355591367229727881101986325670290669214702289140530165105672277722719716159238013128940408402097006677826386535368812527186259753113867002741866945443554698608072867962488693728681377668009602224626430316024328110130464757665214816610828114611544831348959168175842562407011229970325138052747378246567916521970568986019554357831896722629794914014719786023934519594677032292246029754331908542335844343783594801416054516062597911479600852937321510554127432830760365972137643874002932711712913633879261778538613538824305537254481949764428208709294915050646039598258939631525761575192677005537130241969596614445400944374206321970970986344084946871961101311350143165808286914920663233959849291026029436357894215175159027611941926187452027240856848859520979533731765636898273552650647696150508825364066563051527508284625001005867024767998249384372879670287544923832948761135879979415417807497408712444500023751709255924512393261988290993715664481940531909222849362569684275895584068138815099443828157261577347186756719697559440978489728242410733341855646919842486753877552305843028436955604932759172719905213201097635461566388871052806941743518276168712755442544636382997715665363077129573781609037475706141386056615914254347417228489098797135005436030035748797158300371503157319638552174839785579903315858366663151304074713644872179433762048927053452219437540438158232429891874614975484035482257455758953589115298969611451946773752018979409828341420435863176041199703520136319196597709154785971391649319542212527023367160995349436389039320530827670423900020079617381811315319742568123817436409619976513408518215305207115951165715289525192097981652635937289309970425866773089374974308534353203860842765267045719773685573294124053545051484453460424967640680138088632887022288587503388426323121478071761537910736193742432798554118802566274411486651166995049157746458294702185112105808474531743178432363363299366147306420116564597106396682891768963951672827807013834985928684176047136166897818236176636004846970799403358844162697451957587466213250465746898312732560047057168720480114442718650428480746137359979434276086726915925507105311192590836144789368735108431799790003493698640053127948571150707257708059850284408294679701068018613406509622147527353426342702868765080992844380022864616352844306879580182460177303849098167547097770593383077983640456737547551027023105304322527387984211879200294944239132221535374770897233674630727954950049445809305296812518201336191613831877916190617040236556506526332106813705079464230066812111223203382460368115788365508458620202014482357449379997155413764075304718512333090225331317580167375521008176987509585263280919973948630746288743859371583926029202661281788717982824201139397508692899387038392282998304761788354089720817421425514005677013735845641492129350310195425691635096530571576971949668804944551102308732843210378156927216171724454218674967606196231805897720244100435708672688943607102192657710170904033747793725064514072670444594823780443052945451035692748578122449606369544269031429184770180887345185710674279730841900661595634994531639894718984539911891741089846835656866577243009811867315263349758918802834230618515701825572001750227016633900579464246177426078695039783924918938018411871631437038635462318985829856312635457928895370360363930870003303088854891694080099427390588337309263364193633237468765894121984543096738019512418795778549960485075891864015027815978841987433053626626704960169360190400860044542373825021257055941457015788759051478620741588070485464003677122352032869277739500118599600614120076907673126351964191802518710132696994174460947997257630289206728328572509320765024684934494568821040699005181883277215383661820606331950881393866455900359852031414528549945480902357451495786664417248511803598973172481193951075612868980943407519117249688041120689691875645468523036024514945531008376925181111100340757733040039784966652009437180682952984789771840272385065632194759660351411504708187189793555841831598749130284875522424766397674487386612517354028601876349064581358751393069935835006401005080449251492672465042031933528177007467679709411885109247808836201235076382308861054412796180336275606011277305046110451766225478548464720472777328473107941256682993314256999118757244840959979421874661252877743269574420829897914474425670824916022798754028103645287479173538776147720169982919649226506939013400520129005209601955697399924239036868206225470936002301592479015240310481980313056890032459735276145344400989086019634172568326367921708710434390052985493162837814160364749242425011924428381560538234911691377086727091897772443272980442188766207818175199455889088237721425190320666707194837902325797848297663388679820063712156611381022690452320047492272466464399385480947670886493698014845497223783910230510235653311945932754470331229696876580238203879145261179833243220516277502419471826996580548086901602804794810748720422566068799295290098040585824243595355475871311095260599960662121367946289651256698383491426201591614724135735597828214137466667678839731489081804998265752766658449628552461253296984666032706612131652563524399199783274652339395067572651116102501167739645198800379766163901846143418131834788781051190078848257300682087716464988693839642498021179983840540474602986122227733019401147684540275659476446069060872737589815998084676150797462240234336605853761806556555720334453943864784813902901414676762112233649740790813149657882080154241287302737228465227330949240907359361749658534655509592074703230005157020530388242194119585109760112310403539593477564879588931768492673663659751973524204320840429292889043464826031998658696469826305802766622917327633645601650296393877359872691756332017780787821162869401747981706739376731965437668340022691130611228057037435035540704952733756771421082993573147163401916433588820820002073748016341928959150061880081403192575858391511064213890675887984024233742868990232659631931118811223255487794077755381189880345973659303098901775757426619194473453469039095347257209355319661637592274068992066708512986230719640939103953714535208890663135418996357291566293598023337507748120203603849049747014449429283357075906698336813712660417878723332320899895984945614473021629354821381921008904266628190592753407993886918848750718359189059466005300513736418521714936878774603948067411838076220037641655291304127443913989093041200700454391498009636513236512251954740457007841728828873089046047582335357009442259490959213733607014089275137751506013140925429316770978414662699658380225945484082207751360661972072831933408153637705067387737732253662108068598922246978981329594605715127117658951595286806080482506232373364551353640594459304967173846874911156204024165747575613426921156676247950065721126054863844556317638060690925822948921000589799625931406498366342860153003955042126560619846979752668084803999037262466182196623237285732545584340237152047003268468972385994279973523739669824654978960617558937537355870610790461651117594599783196650771025390446369629284112107552152495605984542131669412536002693654549829273259838811396458810629142492305015991882249159001618562451971936833964439084482189659038625340534252191053483311919267209482626109913701607102933304224933738142190525603705116456352836281146125406998361835137633545783423134368251032531085513800062095871660597340283641325608229837465027050978968027450202679567166898921584426861054026583082222730862580397266996840710421426490369951593982802365230228037968720883522711405971335134830484396620367460235771100555920546119841471915925704490161841870936142145449321360901928828995432912728174366342917370570423602947837967658427956098917361408113617171714437798964803615094166966492154197702177777283447292607060609202728630220443801671074481885362613569935598220135543109999861561653968425853228971381952689303770944117865861588099483630653409709281139438628322884460548702801564388761270136679528018585601308848455014972036555882185256973160607963732886431393591409627157267491393192130699922669471591656688592101186257824857593488225155883309222653068375329107348340914651277348450655349757498613844699086550511305007118501519540684489381588557099321336591294938663963660615400630048384230559590769221793496000030977930473052757702186733172710873107492446824020303868933846205797516347740009176161743540288751083880558585419999968171121522992305094663226875399264522975353465352416722920268742192268567253321760380065888016571187828755459729492333193004357910422861827891651816699640431984489563024860927204221886945074185562675971720814775655559609933540466312578378520755351565420476503611770833427843435347815730169405198959963380248788594122109677432326416673893835025019546115344079011222233257838666558883478453420833306552475217049887138016750182542820078975708694661176569243811010788567800900427271070249972652490133175893184120821186996585521039078220352080129724251227367074468973900816083647447047358937973280742562753366844905323848060163913005699235242489143611796084784827365804402768514391906027970771114982364413109776610515433079395413538866384809831195918900158879151574082167939352947001916113220048733431447455621498933531410468464507177813320804701470840377057307546153259496137748637834633998676693035754327876867657650951303819740551680005401866156165871907899722294552182740876554981272594755621365257513569710755872381994532623371571969476859639762820957131885875815768789558089652399950321574551461551663928016325475455037201706867434995863480614106323668810394640669445789524672178291751946954837988053997522011888165124494861537944516838333343667944425204930079265967262134405800180145918374521589851111038165610961053079779843666147211707660044621855347421183475151693764891922982231045902063001834260426132915487895135812111878557763616612849007100243274130638996839628339185988119688840829739593575276488889139475663605482765997282902255869125176112129700893153095867981138356381923806264446784190318001042033844965818891500419640012562587731883684902139886811592203851252077063813141594217403733802266863362579692192909311756070096347068078372082023176095661136536547770213785425610249022656899160585462722117770235148388819192514746506995344900846137229361630324682585112792823677130695045008896994454952809014434487973890255806554106468426076097195711093703269216990118896252431481529436783634316429195833850832777280381738336206590393373913523385507980210162565081688470609051718836363661273298194761420069603250575030093694146814633022200974289711673755253918507868389152787850156827210583286832091536034915749864251875377605601640511439649624845035130194830979436338202231396618056250508220809622964861922465423753289222451065678701073349835194392892863876636414441523396312651710646792937944899898624187723220095701086974278068725594828018941119180612766114527533485985112479376255009877387859181788494916584732813273761369077785126834663643157750051148429008878618174472082192241268253921092973399954768456537445196935887041601387552041678966449284097875703358051109736099434426547562044944220965172563222379793168065415315498411080385816894283769061136672343482299739891234818347121239964156204240620419332506415585147764332964150106104692102126741770359268145384513726276161698964723887767895274051743155823687265001235014944656867274493080976043452045643447675067572068223940896474388369192469510581801246910461420207875004037271163502376176993699856997346950154417723441537715224894443322719526567658729534092488364826604174087319354994716964289404168989403217997102605549024564295420080665373198216134974067125648831088573454657191890121146480572557541296907494770685705943319671801902865805436452672590789243089790082992270983164293354900433054132331023650256700714470484067097690771391234035375226369833343575866730823444025656361015945487881614968277944872211058425723946262577331654826097595309394053685188883560086383241399204508960857334747415291567526620033740992412974357194878876915113786364705292874906589669738227500136617776382000316258470218044444140602482265131505527160834191318538429282383339437944051399988116972021452432344976548232770520076940931114204763674160500378687500200174148066193394525206670114717244930020352232857118859303878184129729557869412237934235029989253070987315004657493288698863613742154175359837319477555068828936264175053812172437761052828560193414640512910319107753460809960939727448830966235718803359084383459830287197478914203530071728973237008317236280210389926159469322947406352413636878595505144448662916040023694446074653721594333936671920346272816660669274258688825388770442683490330876799143312618395244635156349109685637012116363738577485759081540697017744438667067228239608709658921989755306629512853897328108786086005865668499631009143560015779171104282600093363956777825444475003279228820313205843968205398219796453488626566948405197593314667886094783346574453850775719927752296899597171784555929646342129285722049551391307816719084832082103694085448312430732551125246394120391460636034924373865091322226572867411595642471776938962659693204895398092505414726509509420122834256166151269058739702158916293252621700848183496597165930771089549335898573930892287074161855950632954405831142686215955891428595457814809566890105763562121123502269722416560531753265974159353323184062535590812989632097035133132359134163344689060487741156719573386993353786453211496336028399168171227034077513831936206495771827249064439125267971057464907638587147837779531195870540340169173618049189533709816659545593701750712709832496566738385904072969833194098510623409342988079993903706992883722342495548399162371539335495249831622340106288103824318772458299072010874185758856155481938135022724567010801989740201625866749872540442870922006633617781183159060030903072558292116638376919161046440776468262942646410424867087055510571602114480856045565560077969135747092410234665314837708533591456668899951565451463061567832097398633684258808669612374983327591093935189671270355086871806812917153385742522647200164002709122685532692393438872976798446457477976722122587390206953165058745317209519967244837172707989244497004212975556327198901736306234166586439508955867695499965262587709170226293665568361441569200902271792614322735015900951463010835582155776467370602253981494592960997056516017019762867489603765902772907117113955759985722498362242578398112029692489455316742754291598159989419368953997957849763407904443157055411817904278495378082783042537787113617632800625563931225141634838224507970618266816650780940153756026245189556330684581578099157754549303431411529734636302531928979591683499185273516651542198266551099007254149901582441705736208380726261803752583251740276793989626058723116068359212193385272359286042678094718924536653067063553055022936168023983190373435027189406146029648913944244986591907232712904028322611070008617116720502496784108220581369145729114665746640149190727673844243836813916307464598199840808049279164447475228726969370423722396078152272362474576001682319231963198546847028327792867597845418691148622249478058993395196825370318527838095828357903956265474789938548763966653847679136131207163149061054861175158652719236413662830483824161504187877121583998071420884117877590215483118810664698497816166105450131345095838179723299814768969989107884436345610783304531507870796741159122932125691081920594803366110053121579018976089977914176181990585157893470964795878354616270201821546280455194480095400373019351928032157214300390833185179660564486047520129399864922826325708688405972970771226970662915996324314620913498335404376750435236792133917945024040688559293483856310114409300239100777012826117169670113244036546607947597364509805504364971182925205643957732843123864948969149686787885319146905435504662854249528337013160033691544776760451626752237021983612565654442232546917251807934589693999712838386554371200708593856013513588153556021515878912660897067328137346280588993081458416108787686697713835606776165915698772855889350889382981194229429004648815121519080483326858539105224938490407203990289374110595959278124615964582229857825611279863474355670702902508242052972127226574863809766602474755048935148162736451289696992009540938411619361283788266651250977279469142274168091770430925663921505525705383797149005893780311984041829655887476205771196142328138598062561345009704144806935499946975327736789799515185788971912446828768463774984545221654283527700552647630463551469882047425977021884705550778136868239527549268160078139446642254220214306791948149957249244005419311481261084169110434010721938443599829723441539370522888812678010281615230326296314362027047168173340386504071344786608229251632749536900955831025123235426572052251374599035080524238226420012530208091124523242361642185413678279377385326932580623929431755598462123325900263248618229256282346872496782994407162826936373506100689378892228961470929353120010184649443375688254342455124897420926161002410032056596350943980779499964137058332872889748324250328303980860656633132759343655682111818610672839218170607761331463816206589401547269552513171104632336362861463094170451386749930007579898768714874715587719909929958821208599649128122525645726743530712261957530994384126982220424195111664045254815456177282866304613256775607217448414792153477815011179817176757628513882492525789166792503138250749743526662540168611465767760790902040977331230050877829973326867185330410074243854377765139557375627204195314918556292175282311296624387609433554876818831580324546029706974197066710749140320618851046382044573029564046926057654578072732192987514787718686392671147661927521195685768820342946220845682810028388891040590402656929569970473233922394839402588072449779372646584388866184983153521017826823435522563319712299379008837128358011937094335138545672823579690580434194186945753222531962479937788554706391243415116467437994758966027240025797513091317321697786562198224473124621180855124111761829815269789133319313914490547467012482533990415464356025087284442051243818056709947093107165655160480948840997074945427546325649459453001494925340903551896029727499881567664917201650703460232174120013628946132875516945690657873292427870058453239103383576934678534676862118268644878141026237100776668732915733734690599435241842158540786313998225005807970676151087163863819370458466299641810955365679391097496848475185558968955734455340370197220974238565701174617906995440797802750906683278757779055890328260243304408799164271224989572168533654256833048639141175641175637347316267463066512114154091814440793106743480442582820658207533099144243071484441667127183635421322081782567819084571491552402947712050213462883907009250655017679052373542133838842165005886256907508543048967141757870914366377517158737312998146901046069979643877417900904037625039954648459623587591095034318390644643476912606182521085260610620546278755225819812370977282270901184663187053936454845712733497687724838591456144844597538401008050272321624802925099968189449154338736941552607373048114610980078502805692903212912653818979882503955454077821212203992499062417642737273834588431161584654274698518225615856355227718205210598818488994218502984405396531839711156034119201199133448556696248308492797322098158181089841914307901029990735105944853718493334033571412705694428053758514182497394068421795200896452353570588340385258846261636387474717010381048569898212119952154032187788371051290917077993263124724907858900296478771678064540266097160231641197460706348256118646808796351674571575128434765560475967271389011883744073671759580768285604445373830233844554269710707052761492929319788338309226954497474686232439510984515431445364476340281601068961745834536195021614926686909553852641039398432113044252881984993185459315066289019101612580360974529036432343265618058027441279201589414847553809387014157021989778264317014694994757831126969911508059552404745262332056122772453292045531471233917285229777452432607836226536575130210749980217715697574134669319928011606353353037688142106447255991362675363737442524332068719417788685702756207445143853634903730948894722529086290449611550420192512072492863730562791218677982808596386086681509505046450503972356249808390765737083326615276340812713986380279823753508269808195344060704764496854887874606540750950228857643403907055234804359526620840615411401243833536232418357897951795987707110560596802870482716408462923879762280582336054313302572142949230911498831232934550635106975159495581212993131404148179426314057316798501339077814965517746408623731402120623811274147896526697930238205114114967488105732542571888195841994895319425868858492460937495786243129791542892064073535608869559685394877466563382615758637919457745977491826522257790546047283134302523860427905248528534322030157091151894012759487477906275309948151323985867751677807915334410919989068885775537016555452375653347827220773199765829274656876871569184806396778344559601219398676288002818518946301213581286347333124518500322376738247329472200985980093696809617279683861795213729565005583318854198300048442508439760428833330746393888709178061749894691552897066392566382997739927562284618062179207765557913844153670441793438697496130827741977688687859048214665888483212215440636713615735157051837138680722384668950400873547459909261626720747698971935904306139411447148634500489947679747514512641352980773192853882481254770547963778066760278112451073094178376189896107266005697593692372671560762514316997221502760838835586076027159482851536935137388890895489582231996832884854275255532838525755813425748806982792500846605555867621633944612614981430884597533086230147544694458644182219142895761663075133489573566811940126167251829565120784815556684149700550922956597457862955644021883468455026315953643819859090301036570558897014688805766518160911867675623080065264688433784881450076875699725720034673947053634435204993146563150843979570024783399244694120677969945162611026815586505029520246185284349836660327898664691092611731326972173541841230483250221594896165818249031440960041112952584531236880314328550286311387726283829019945681870261965776479554829121227325085965527893997789957662495326409553774369129525927723731414464634292195508627383035908877073169490442882793306148792582584365125298062569695327490661302673196597598677323514646991327185348100068649814457598189373394876723742760053148064739937871677262602839711769021336735498706977213048513347156802050576987999181242421606806667550695042935839220232104275385796690711098876215810241633612756647836164160623255093135855761523601380582531363763752469355518052656590908937784289375336447185690145544527830395367333513040320196647226141053373171018118209808749265031435287856746345641126100180301487714732433195851538185063685775375642156481823705097265205787764039790730281705333291835853863641259263155542843701323423382733137152195180672815886789524727429081663795374294982858562499373445506937936296977605605346751949355172975766115580854447819154309016306553930933017096103289406030139313107154861726445261749235438227729583001274508521614857075296146769546672698687962220106794917376534050439315313152181909526751336709041347495003734296868955169577925087142244572921203988603523073459585990533007259243924886124758127359034410364796770773410318236391429300784413237144628748529293336431262156998285033610377125011717852470832507644315148267327004790988126092510079305202142261236638750624985282993077418802047143447331219475640611648899685588517574841010230838025068795341460105884179520152486833234194064883992897550657552858418743735976699962864260981442818360966052404962554614659872568120718305977116439141970831932788673888060021954571199855778148401475706314783107594279486798975772960117604655531737620747680942165827192739702066535381575077270435272155761928159750208621042470335352083300987991762478740271520424411524983644127845222576869193393910925367640748994598619073712863464149127569914275423080945716407327468898143306241969370587861849461416913321966743039428123670140818297966765826075567654576995510947810113198698869634020091159686111914006331080560602958696275966953839364012199994642490496693934981104924527411382075006395087522582641264550557887778794720219025971393995676548545545113626989242190511223501679916958587846764504700154037642138955599597252543612425646151727303457934343889826907636342792821885184633021328070879959356211915448896192610669657115292365997848939631062504704945954366882904143273627534136800118868408533597876631570124133408431281855441814680395437923971394477493570164888865167641515006301642380911884521730908025066035110975208811035168754925864561779364218778762702260243785166575104604231458495834141736992622821362359179407842947749622927034268529264029639560341369979293729027810187284625826814108770226415686038002292672452696157034961367736038793873114408349205394269447067610171329539647463442810818379835045861838544942088728121638619195340527399343973447359243985286483673437598207888113822949337395761352345577256292924996585702918387150284457383425869158245234376481336339731113550823806393543228375208895263368920443887398112368890806117636812139728776313896144176776759354003627670603234062812373735410335852925281917812859545757868762613343000218409286656165830949676495775134986067830475435963097284195499654085980158652881591477603269367104116410160883340993750498630968586413520173370611124375567765254469765363312819267643497794599908470892097907449157832489079087796158437028231044179841444738329539235203285456410428689102831319343900049963514842824164236898697711162866759355799651910848024972400975763712910471470815206486543473613442672633384295824201868069308992809262437130057557421399413444656711484040760549387269810992065383264495684156765578729204595621254075041750173688938179196358533716302278406516403028564345665815148475152379275980210355744559030611350962977006006850612914214897421218221517294017685272449386206442025123573632629552624870550946308955623401977618874754625340217705053722015932660742545223677857496861911052125134199769324906118262566093478248695037286476560677701522920588714500260354196476968951662212182423349266078799486105430400420807968261453964553658414484527336074007409995934245780760321791409760692500461860303039926655151026997154380279890554645489573384876227443002519999715315129043856704728625157036125128606874395054691042448363928002747554590226856660187609533429596333696753612839968870310155721527247297365047493315958848834566845667147148717311647075153471370571839169433120347864657982796101557729782547983683095304929393380826136851701068901185309032006175672117911539373904217558582033342816178475171790472127595779766739517078740650574257674660727306761900117576699022196330586608286286305218325439142956758442178296474745856134019005554738756756605914332591690003917203135495999681935427840383748344295762038580237914902429171493841023582438289952354238127796844756298322873217606437367751868319679701861649314593820988320956694960643215166238699857193729146461346913082258856404851692103528009600124168199778751850250446882950236631664297879457116316355072467092527518246883713337486999355884530186791402374798585368002501462740321149657438154764167824264435005654046844777813957764600161718136539194848425457610873375896046841147091124311377258883501465391180786878321166620264575357396243068271562025100050188035806950985258084045470942712904762163190774621126885193514391002946964081683393119533469045196226546097956402469965939547204325049069343374098350430937996725609809112636055355179328139250647692004179860121551191721614644005217664845032169111320872344071289850670682848474870529152832589634230261272243125499248698695181732821125630472107208358233505771178869220029423032853233112119489560932339082063050486590998661670812310334520717441466820169975146194735230092837839422854866634344521597444625813642886867893014325655395376404481230622568064895013765214004941481285455966217508266338334483435191950449058433355256927141987051045016160534416894240227788594175166166772965476386478796449845567979912420109831410554138358680578283110022500709737616672714190594302330272341319043664135249886279348995597539033130858675874249668772796829034672087587992054045821649244980611703959886383088761871276815966957300662484004490316712327851538536693970801880680793682705777590799990955213499705724757562586368466743577816361290846095679732105131888173265570788428535351240906654378044490546847680301867905140443817732267148225384134344724258132338614474581896739949367576989332120969295048588416159254977075993730231496378939358125008291145484963729721747524412424865518769033392354643803197847619081362794003036562775148107891253554623403642999420076563872722989510704126028085829777904579189827884970906941079682290849810087309127478007163028988487672969047109517116542131849672696863398048140687665490617948614694492358788522383304894489771635707740646106274932357585913441081723613207259212557585702839673786733383446184947206496721863233516798575107422758448710243614423436270534575484700723690745674936101695348844085752361858929170069363920844991944472243151385047090680638466913202141562376173040495046167134186032026432019564492131391119495550823415555318945669320234336159725144867921087173174581363305126255977659841038069880653351408747128484099016742516718561054993347297156903685814088479012917313519465692083404175490003338449209997556418455223669904333635251215463502054512951766025934328635991910714040950767865096252056269347231983249484215297487559710374002336537985242804966652088988441707048527749925003005509298982031488372041107837944885192219640933874054274295018748843183761370886846487021530580901460697894930785868239121017344676324295807544185319602822977686658494988997177539477755216946096976165404819939771058430054250019789897253697715186638735784182517320318099347286060316515577740707154070227555519149419228834128616351161808481990005613493506853554639372496958188685793238055896006965351700402879368513927951189098512873831123699522894125120763233961686030505150544268088084040944225117997207838356835480456595149110493923000755159666715460842610160105722944544473053228330559791188062972600781117508367917022069557044171459624869106404178830491296313513071486113693116500556718548077802192790858314492022809399809194389985318914959163477117769246329937496498393864241107031525385913025475312840591029439178783536102156127851767981573277999521083115346232293329201818547471685792132533374037125220621793908721557119119061197271526888545863357212223928310021169465784019847788155955778495222681711876799624421468087010884905288770275487765745243281911491886854059697028497317465584416893526751396044063695726229698456265102982051657922450813476328223242098703761735981754727371149230123542279890039548325074922601619406707146636717706945755183779947247210714714763483642375500632785568256765845801046214521726263308325460887151614231940361719969607861060786675302577558329524531710737747656104923584523077712894275181942395985809939461990521543094950625469995639267092653917605027928263374181183272438008408777427867361562072400333561373442245250638404607283856558898245008181620324370234043523151744537983266897350064921361500831174143198761267534677361079500933649738108831490581714131195688031514398807290036185217324407660518902029527866568215186262152204083537882271232396287376923008938682927944590752869413566745857637433849304036432974114022265869680290339405099322111940437011229253141380170485859886876062179117531049211625262419232851903841834371900256320244479415549188753929676492129820900544931282464669574695105438080490406454094796097590350386861866330689903485800181403968401983397749965320834135153183739370017200285040898141880758186258100731298636861156950516803747354769758120163530154607279934251114745937481504469371012934174290593737751165707275631353499360728793006249039305466650007252209566354319413823571523899304746700299203093094415966562189571815608968701879179809767599738493545824843015329608575650529153285878676364460217552970729033024325354532269094555072354386947186705635563449938677776975811769625138784644274106541032265692206438140505501453619274458237688116769213016998851347867008534649277952591028990059009534320904348547950074111217831539890347226291334452469256808700109104855196061768186384076529742274264462706724104227879220314526572437200362056786853045313850079862171352486963512510434703870170984729751339471881759468181251797430499888782411072213796369161955650253685479572943290366076707145465053487078371297320776501843863088793792126592418522846672630807236490221640619461244344895175892075904468343963387325330466789782057457307511479679450799342558984550913921365755509243835124914553411090309432049451573440454957453239424229321020065069545631067144264234436059453089178043364516552245515929443654807407720738858636558096176280941885684702958333628650030117716895252253245314480627546161271090915566977963061903903696022822585793698577297673509339220602357533736937269109805148525742304740753250336375638537320376251691865108451246587883207616497411102675364749777632681264873992661807839224038241517860261919414224974877517369523092140105567044760029726229619884815627893763006947376224612101561474637645080171050873442567696617599925981012985340121780243011331548418632903271760645318640770672953612426375512133082765929384932436316070052632852228993532871935954125330030772831650091829048935265078494016917327732292012495743343303746874820206048200350378629028775509286624271398755604899680246735103171216177796698291333845915538302351880790299939363268298003974057493110436255536768115120962704536004668978501653763264804379610003968338795559762179730039043436033249418056336096126160606746130741550767909081311782660630652970075657654810475907150565129617218821799107532071252833739231294527035712432142477076824358255156734380625821921101792362451424970454671219537891900689854351029158350330345969946162498530165785664388609758427778587862299957222798483107888163164768937803835652062593445441020263532674743453145394901663825149151004904413307544967319361951500133583943988589135811026212373358682747536823601881127587819523269963251694700992474653604598668880805815382054973302371352663966437684549133037805464006374079193176347064877560286876225218360977323541979962659925423660401755783989980600415811567874446542566664341752914483069822874852564911118528610086934410511250860667232380386025148594893865190903057743035484490860339479591247440198908417657035919633591869217964762420009186826557547114411074695940997005873099626246242535028555549628493156313724550359612099747391911159004174892885822681957559234229204372198073435634961598212836457294580576518810662553710503170262862494938120616614256217359377184843137048889394320865322008097846855479814053350697080704666344382021069372986794645894369377281031790468763559979311985327943629060373213644636347788126014436242397114368722622555644732547796993776864245001738655996714209992324077297863380866932202050814910650928471561322366537422587378757537092247511350190396290546022860372811410771432676513515497748004913660459797288089918361462754443031133380694737881249383119060315982738084024798391359482203657000072822388115977416615341221752212301725285861832761975949296873725892405474231298460415325525418198671691144102680650674125082127484858798418619140704959390554716668206195574212733066430506752782438952427721669506351526034293110970184084211229040109828632611684710708505585257463043985430105388838342346846937861480973618522429743742603897051227141399967759037738444781704083071445328317114989877748045492857921865089638947908495523884158800269456419566886851426896940956088994822618724359439535930645200609093304952310087114654528164358266519794555370542868596290908554258042207737803821598636218775987058504470653381121324493375405116689245841215604013517880182723817397206277859988455367442840879165882623056323363176322163164471586359750881389318763383229428047824067456054978863469062893977569396136519717398846991431844395256196608511757531427303488328022749342760761238179809918468317503336939572137303300045214814392830589181268182105588890704057064039398229993042101381278187408281780820699939829467520026130345736768576517923932164518539879998092732317145768522258854685572223431779058515949620137145239881199683001036687910850539832524673649736057385918477375465962579733442776600510668304755426665000500412443484532822766802602460803081338705638453014723872904485367435371272952955252750552780830710588851836300388000799953902263290962136105364209947306342248928607930835566880796237360678385988862975647786399615368996516332195674785913269879769204281299914518465429250078813636454725403991884470583700903413816228622927082464675813050036956785776451340908783551703285144104960459076199156590632308159613480984190762910456435985789968359797589144331819952302115554635832004690677364852866205235726954262770156502995082338626432256901856409115301589182049642829362124849674454128813458286243484444681427168068623136123220841121305860058862627982946081522453053940992791451040390968236228330587084306950629230450834305587440928093146093501195687587093704948252728157920831503139661716301754277923880772512744572218037620349552964888971504000146814348936344322742241974756843418871247164134790613069799474622082681243245622630885495388230260718008554088924137789772002465559347906936989318475202057531872613175070948096462711016877545265505604989693938894227633524305896699715211947358573651041027342357991868634284188973601673645457776290434870148872588634412228632148840326176275087159144697237203332063105535253983904942323725914062624498501708063128799945519217800893548159609237250697925550922500415848454818087359791855428869322254329621660184305314517409554942928498453354316508618703066539578170806862731753862191825333332580445572025712844947437286301107369975050108781020864571624906119353042446738985984736203300406964363358247982970245653018482451492772330747622953853085199663253023585970680050389189077627943041075484447197013955382205771526288100480035670619087338363556034726593034780683532537963092492477791350775935355101104532660768334316754148564409055300916448539334511863115345963409714875284135698259343002065080869359308625696712678672110728616763584080697922336098891706167436920200553300086954768290191240983232272039581796025578821962931438315708531424896400605338996724731141360481354050142699202865095946854333677686924368359769514434760167501218207244827264534729903090226635750251403100516456036028458213912569819218269584545490317854096892826722124581182424205548761008656856107554077034342272970648844297453627512115127271622838497859167496094572303496598471537722080192196706185801609474174669709699136064276865284257884180585433997716565921695306008113869372639533379315647955188875513230678839591785692088512895273342421857967144189478395274043610821195464329733282883688090958749868923221956804230134094991040978185024680850415487732142649232681742279736689853756629412280894564179638430885315278460350892251776603375574093025270265361250535034091495573149793826358346826445110187987510007488164400288690222479330934450615030818165228239903584574842041791031191366592450483600452735297564125574278857689341661311073813825397692758909156162999262260655582601385649073103003363611062858827569854185099500152665824044185200352127263217215472639229458796826369051755891362685872539298412970220073625456655831497463240268132879540740253272249403725351595580864800223242231963649385541053346397049066185280484698927017508561983206467577673420510917582097451641163117128341866692332895178927355629836918751756191899269850786392340741714590804136981827662465375505939372216873463945954264710096046439868693430086267260721332470790715833690294810111595163954486192230061078411168860530007225688372008562992256547636020600359500656704341148647471189447848614206939139700465973513126142725141761382311109298708125290240562151890387305362104012460421927728178487146003576588428402512889286701297393777927499463696348531035413250667963914391561985946411327130383836159472177650281793254147968885087740300611110827864226970220402374291476660940536023386955261124703654824733679425040440509461072897510734714420776448978172971960381927943499180435071448701529854554615054153444994191081515087217796885718519372619858644397460274433765708709588234075407486396939261701030105132161261384759351018431673554410015309632471378347234664132991853410685543190695026428361177155437583236679580971546317263319582147259920486159426157999166225773838824791353675323322613842320851813452270956818272638848505441115155092423389169762557164654557284055351224778809277117803951912259142378574107229763460040937791585728543813071352391786834015010275576777833700325824460018190034908948612193283234553393466864803348206674725783065252381969741506125248077197079609000622061247131654479534422993336663504710951921749863252721959313933770775578362749295363684301133483482894625632787621259045870976891293267050707496747306856537238256764881064106923014432759473013867361112745277431058545713613487787076977452783321149103486552740011830420082266666582991307068595387501129288342559266695280599189956082729726549934343264180004196356604465344891523180566538558036892215103604037273553106226969841089522728363575621123135901545894245886321862891191347511672717565937840472401654178074261810529686966812954296367091152605729154312577140115864253561885080612653832924322863950525172024742951971186625780978035845869088156819482455793395826757210483839411441751560772803072365379367558775777255694775793439560404422092161911113266454189229701458385235917220500647847148565022391388093789129736648922415895140233973528600110117705849080745945407835010742626596835230906860526104913979306908162754292278432800098580663084291709836323983109175289536230931836884900249419401548051454435593995054698951019248449077068304411152936709435251935536817607513273733821758704428467651882395718361412127395872279266184087964167047216406325086454436997568152293021304925844478219559134807751695921493814288936410179187435387254039701742159971230508885497027323569206216616743512627009116288589183082711527321500718400555870429103799141278600960005304509875589179263291118676586525073973990783419826529795293932602777716518736560661051498923820533475281152215075043398834544105793137643696895721919208966340651548297609058082402489292578226601899249568193939519857900719361090682074210944003228589135270092233398851915104904373775796513251328326224221313467176778781091972915423863542619145847896325002000796850384032427925087566049666288269490922856053602038132890728149100867063373754263477055809509568420901538125577082524263557136973183602402569059216129098924938363212799816082006613308137761707218933665815078117375988801334129333209204899950973636153612640056175408955523740690973523537890703121181047937134909352898566322362754727192527827483455005144918767310209704922797319982717802352412297954405689062223531409232937704938953966064751489703385163245731627670724277742936001593348624977070107753084562447348011993580205651471677245499260466580235682468244449689366579292872731040032922977375021263465585081886341400924886119347355001267169122120845848747037831861329590765162520980005335759949357612718104744480758327090701822446693053932890030322492765993329134070732662698244451579089116739944127475327577079350733151274010041447062363399025664806168176480876318218868965969890896516574676146725438683444165470101366122345297070921949845156802225139846780469158887897608330800232543738521829039507539736647412458548740539238908697681869386315578350850601881003911552820599352436328333792712776720314660685740902602307723645644308849668192745716080039038083098264511166241295903853968296746341850414702484327777249256716832189229514468064904723594833820006919993913567971224010062483601003757449822790663768283280651844202758967014701105386835107112452746327009969632944688927774619899059989577182274067510953259094704265200090017694196829606375981870324411008135014480204447919764396298207121721749078566362770570812158880545329453562753614087288947357885903186362878116126141561315500277596384506050908946753410629540939102091228854597374319146394372355553161829472977268192083935282118477450347766056239482745673605908709949289498116043705968830843474462089261790367334961771715467281259578384430125155415306178503554398138144387943158124542049894555707757448076477661273996464826926411340356842509303882645165735673134652925965805205327851095230662682580448176952502753555569103582986337283235013681674257606417362730695071282126440593246511790713702010371709818413609877290846178177062556002900984263742807491091258176177492110345108339951253737890009503120858386634671469579410670756389032070560686168195272180998164402720836331129268063947856016400705310319716765981545022307209461564824851282255074671905810695158998390997846688292196633436616204807791044831627161575634539145185906081325138430628930140371488400515890741776098592216385513662533068863167717629168176398045100461172455021550119328872213853357913739825876958149274779184312649757973493553748674551969323407567575688449202133333457093198468778396288276351307334939111899169324754404646822968872233593171461635562475839474779697471791994735305764724450144753678852257054841881360397981725695133380745477341318122612977897209171715455076613639032707996653484118707803886170424040581008115359894400559855772422989007763967883042904542370072383669438739149856724402526443095372124807806851511139698055735423100911944557951065329991478811575108713601641887742070549008461861311608540986065309390594453150338802093632115824936922232611684067855614113764305883805722705255300005385662344524049977689125698883254977100045636434094631450039859594610344462062609935211562058645586230024482773602183063541510109489793551376824887300633034709261692797363385188971806845954643785333513589139863918170397606487298322626613549102110547408541699466663455644455281539344600096114844739333281244519727600358632766430248304866006226570167338776167945984076030563283837671761759747070002343604105458115880878696422418651980071473902036074874098526861124684031328115905987449590062221286509094051855963092486816346544417552264645170577306460982436958150329522251326973136735229930556812752538611223037210899982934030338205998840994607752939623443915902448719037502769303463838177544368326861178959376368218572957787188156583417147497444555903281097944058665955274172608035033129077017542184652225911560584525499565789137085679148290298942859656280310915133142099342815689485860495436596513014645648134388320560122447903228839160640218724670177200293603977082928420832094630453033073008412418775155818560715534272445652506837270133815715483166968444420447339252308981836046889968385165843694008101684311997714940732472840826362758854781028070849586863220469862271313709037043747390511502436975511871072983716005450827197676471900137583576625091588681932506510464919433916813153940019443959909096734799576137398104796047069580297614542939070431120524827789086846870171208791549829454338202583574568109367099318472610881231470101564934099212423162645652191905844193459734809523160128986172834018176178217243460631990696088559639282843156802935358079678979102687160466883464319222397356718731862004648417366380816728697899046405862120534590540205871724858162912296014792701314330610449324529451084766801363169470257791888924842373177859680845756099200408950524300093715583479836573252791127737752799106681010272692186300042989590444930510254941480297001331177529877695449436205687187293958003414262696954064712379184519687218538227213144367243197155930489187543073291396680521394396130456485185721387173437568555141615448516263704723710767566283405286391072785822862802018327213776932823356282506155436839536296006524668962040378642460508381904008148563980787932968230006585463668142118138101961689638333494293734225735412910096743704397917203670641157256338610519597231140872593002063526979527119921715285797089692738289951314156991695147461276324079755927058325799056252193468433442653422782643109766387497057789159554162378657052500002496149153791097031108921123007258775003090461506975428863366572533701384092854536947826023482189929472699081081278234099001471988472481550680905913382809479519086649503260114899615480825160849173672451667711254400648280079387921156503825717924633005868699511580641492630563719059761817752615739168360123572139388123649098826932369887942506701239328349288201066751425554818171314125675216570052976576833201997567296370038448286969774520445600213690110414184022482356561203988197999255266334405899094699664094965641323597850734484554969395284169987580035578307084949141398617781935274623009172172472525365388178094335521816468790584897786597955670816694951762232044758794526404534119475117575326834155682123852189661788147035880144534046280316684371731782314012768229686050715476327802203914244174811282971368459290764487939484852264433311244544396233025656292625727656169091711971991912249706296375061464968418779901802003934088541023838194740300535310728129369536952399814116858739053034582820563603655687680697594322386781625681258051649982232900315515256685811394201058391961324122672338138126794373670270119935091794085554396687979022701159947747653528825632973616936003607123434087433550428039927328383127272733685932923613848026388347236421247032924710638495187560970114829611908565982390927158107664573901931388203620358986842705482183815656533686439466092083323326788545982598665171720664364454995598604647141276456098964615662941166915016453895879647237162552539003289411277696764095473467515953393599487562126516840334590994271430300342822429794311160619794645384881482672428741621193969943470814962356238785006790226681388821174989811728187356982816595657983840415513771949377952646260552043858906488583181495102548865075152058822557781539298629981384837601052656162155791533631391329234501378007316739874444298013470156163923080490983537692330800308830233090870764990241585591547035939781893748851570036036426043451674987885254170745428664874598819024683733150635471972969310055147982116373570295097650989486067491849862557484159203917005642042881237665372635402274916758539861730789014210942817773825736467656029277096429213633336593167043945984166933664135790204513022673789269846605462033912963692837301897033152690486513701381369164246596411787515385557371437603056554551457829598316318894892422814434384223299834997395021851975291476143161925030227253044222550583479020221106871994564493499263824907930337629111678047474193962879283180438351515329532254531364261528957652909158814395319075185297792805397979694987030588654206869975192323805881539587805095946286190537782765776664999164568718149189180945696875889407382373429752555263124196828833071014778161046367525598315710789504090359287624759754240327667722128726846976826384145376228329623609210373461437706274066170864443159216850888171393973197183625796326303405514016765878658254577116083104824485493142013433432788865018062380694469609942435867410344822120667919098521669977229941789936299717666861098491343560998905323981945664136413765099212010355800367015396718389332088645879212325193356465792247972724956029508841291664651267881834426253791750690554865654530406160669734721544397902935526361603178673341916878562996965110248222509787747904232524548893281737376617776382425113561198993117296970261708862644186181605500556718976163761819638710508369371505335636252911695592573689344404274567461109228947013125906920286534114103096924150624825058843343159465096400568391784720616003993614420461090791827553440663854199309559817851169609445306716282187388535216034798340734310824838099414732809198278655556587749949227991105442750171699729993566877413289987454111767284048283732442511798981207960149935022128686994816374036411682021609117399766554151032636167024589163095352949728794815353079232416075219638320816839395894754933578885058349800223948804336432263796380220587382695796338239634111402354268723167154284723922258689438091802787295912780947393137980486767389007735564392843906634754898300932242043548093122641186888286747548117049950869549658378212890329950320357653448758911282545639509357713707717876353562726994078302561063695566797669496651999704265161460329329918038620190126947754299508793551709222704739771808911586900556106955680906441597743134427021461137168515686477229790177362580269912158767054731584710103212138615260440698483881045357116910903235010228206445905663609225152182332859115137378299122104413440467400240268334110050986427804070945886262626284144257062392937456053128439442205878179582843139535156791173841865553028110517107792349847983733085628355096508813824275155750298323689882131186471961774952737957819853317798455914595291857145364754886810018014244436004244532983768514925706931748275635158463659067109519408681874336715595132220129125318306080841075680477437419308724345281704760647032477166229752435604443278427274007860773819451370408961377196549046427979188269820862456983528269565283152533264348080966697064236869831017589385562237855989572524927649670534032930453523765806926520171501322957922544381993798060681324532238879627682377953261781418489100745625979786608536286372130257244362518849287650593773422472000802487975748261550109441248227867139223814930794097770342661952089524069139616667845532192694258895031104923563926584234368680462268384216100488101843249469347481205662858868210417145910139973562055328596561854885120589318824535430332367433891972065210168308040987477775076803653485307956539949596464956472678870012208017405536801058650698416709948587457116736849644400994212719078600920920142385702797800671530286383166864380039504750118329451871665135084345065117484500615540294260279219110154648202719788848757046435591594258661990805536979808915259117049486227839006862354869682473292631115469477634358934293938565228242278953400434510370766234441214250194930491686352542657980375339619419484408907807833957203049063842144173701560220224948198812294901588540331824028592432686698379341320095037739199952224902451153808014261875203706509701659562301184938093610091622633149882225427836094381243320656295718107340214796856139171528337531580621724688134356937519393195533379331562325415229826506854737696988312174928146642281430035633262901093235220471648111429226638307632024525271804290059987837232051345621234599838840400856048396978007776160103513593819631438210245097906799574528912328618988419537616131458964282145451356818946709988672681264443797371875128055466925257060555782154783580383810706330909638037129702565775410915658037657670874395353532550558570026823811118582409176317771544062893141617749569458136187924769193495585948908995412561410916917791384048523633750484829393236529766811993963288887352988042526640761842768681266371966732607520363352502836235325486022851464833957601102485367530773767110231997035631417019920195106035478998546376487706766356203187178052982748104365895868366685684396557813579316423889881051730134327591459406410483976817216658362759067055256934799074076524177900590432232040392242358080164652422397528757502710131101365549925852016613218491948504650468731889193561801199322504790478666410058727162373847701556489422207818095861584822875620820708897469865297711993415893071416506733454323596918733745315510449300914244385949400162775904414912194882304945614950068333104312051096796599261086726654597390857174075257429724408311232826243462125803546057402356331883691987701101861365412620664785114685259750201663456584190581875271735480656944376832568155476818238989708767703668362095562786504947289804966512707450739345023373086856815692005131677449597082224008502412765794855657490118027511513394492667146367198070158761257739116578997195687367861620460833569384064621714649170678278394857831706014416404885407420175115384904195848799685912652757659876095326956006252666377237932223985100094174491050524633637868993873224360850981895659615191687400363929511076023030567061889711393631673086792220300702677443274138017596544367223916582316338905313925710823649980259597235359548250730657122600113948484855624377817745080950748766482673026077228213261146277924876621712156050388523840877941583953330194803364488865315048896152024063281980021179117937336267643388636646378763454895187067570240366899649180520294991293330141515348176602369465378549688333305656025966976541698117361188308678453311773717312920542884592430703934684172285605499189091909316621368463631209587539393495346950450838370579492295896533113215798141279379221782310228014537379029024378130681670647614390133603012252300309816587276408707541697879284898800272710879071366338101066274265236850339114620668378609337055766680684383136722830927783255932071623543582471272414102911235681586062597713780598230302533516744432318513283667919945902897088503207708977155189485759458989429568970705254059590062021758659976760129502995416033523893083075659441758503324770267696858511828614306362992360014988409536069491904997468373865674693659148339988870325958183902109560471205871943317223362519494654024959516146391335650797450368276212264575552067793650880748127236467550836698030320822923823269825786602368573412960312885250204206481216206338063472932766066026356429225994412775612032130910707195051092627348053574142045495558832912634103323572758379769258329186439159981485085701284481858666360543272439672666016069612754356047320467870962516502709633184357533228770360219673596567437729904789676448161526931184480912108000487556924006693241697435250795911762915194596449601908401847968567379405144081156474446436204739744614200800861762337350569554892243705510792976144434193565405801200276465165097647140649112584957923255398535436518081599302640271635098529831442754474526689452212318246932597216567839611946560895782073658047405408923536521657291591757910547367157218263961602698226317147878866906639173940965125025632060128537650999824102744702004488984715078098273655156533946170062591600315636722408131730177572701809361950526915243744671629826857118229880847916907034092359130118458282049068233628770173458098103361288433180651929124172874675344773607143852692018635743133981629074243164890378291993481755687479921934478499556926614269408988924601966154528288394324288034779446569672718002222377957292998024737784322851980204429483638358925452887700957894378699782669396672396804321285585440524409016534348655264524369043962907841714596331513173317304557499493537370906521697342903274655331589203616187416569522494342414945747118250874026974988357931668282465546823319890585738007640888451814691629350666934074282150003236110806713969493650077575705703590166478475812081920713040893600719679204983116531933941869141707516763171304519496375993168432236610629496868978116101697673463969631080224032298931522095866684597535547219119766196885447867020012918991371259202150591545164379474487413260560885996824878413376308317188576174015438251392613170958189312724241666582786110657107953620267143484611151027593565415468855556585225586393183569372019809888861343371363932233359387884664017033273577128942575137360864266317698700816953484966851428757009253220192455937310321145884282947373975113198517928003117053521227174283166608264428369234888367838578780849426516554105061309251404131036321383020747356241496924999307130630156732426396111922919537754372155250063899196031834279943759590913718650043881653462661933979273021912262157884864531679119231921752652216976489817595816279742676291698826398623183374245143042671569042690087730193488374704770074222313256020504004931457790917757448675200721117132795937455092632360133663463037333895483964222243320698882323358832026548595748980200779537755637163508977840500254645291169939572539871038935540698026632072441099816386884897953022149760760058342879825930945232493293045194537909043363654951648967920734710179442776324825513576905595326601752936528357239506812724635131263971027616066003788712610061808807745215594347842108139630833121479243630679206685911597923631534705916232810689393709959037545805259842657504603907219329177111371683377136339607535444577157487512103215862542545861501660015270677499023350802257997148284366947891201471918243839332846706813394953352605877237057662374452037784069234164368688695118574908102646282459400857840538834045023413053422680511163934800965578553791510569718484686182374520820102174050552421116206441466509350094242245158839092002471777788869563462725683177077050854493653320766072071303834847995667869175056482009545148767390798635254453523269614661898627881601810926755927813295176836738908453213257916306235506270072215622916610037300616481573806618614122380554493503168930284107238925705674396781082109477293419368141799163895903999124778606745284796522542200343641636462532326369413380092282252132690049426785667404549175723616891153606470920390033886648373826827725183385585104294501953529294318867471634361643551691628115595084004167264954759057910929888493921979845601945138444776632392353935413717642682994225984876598237598357234041555167831799176665602882516496263634888296950378245855671449802274125599905969383881398144478327070180084896554640119003461290363685316981987960468819615599137428466226114240418573437208402932739409321977329475550185983535464893300105646556918101230651678074134021805011047139015172463728007424119469315428318857493309267734096318824137428900895313073221535709397010025847070983851711245941533025476825839220726349162577217571479542492365711752188726618922640252518491300075902783015426610582068898881967880699659249158342272737057481268355681643340541134779205136912100899079726280163401807408431190004674450980827730484732602811209073914249881059251752327687996169633239009522758323051689934584878639571948470908620436069021026159191030764897426224923328914973405271122164299856638887611447153351872780989560920821948107360906851600106729150863921856811547884703843590150654517971717856985763613166964071454368130066949554445459336485732963260485044179457707342130007764419787072806857860216825463160694863468394249558803449016561067217526143080756537993276587141743490358554339702299468414913970150229945959682960150950641895734985032802098341697856174913951603534144201015567551974151001641596728400712861099329614143466868999412404693093857223487917051460677205529722370337061812709484706871238938001957671472248581152852579477117558447113306468787464785202423971623572912959415127779184871186206376712162253149771796070834988666125588219970774774224064481728188757563886864791495488513502243271306481130315201234311153846434329406520096440510369309007313174031956678644711221673287638780067465891839977370531654979540337400125232018884637295816794056857362090949493727656220412976927454478786670994518718740424884339722302721012145296968026509974225206098891843948770529211926395149824931276019574287137431424767014219524894286103638634556629876016562336389980146983272608470201143328235083340110592521048506118455286762631549376081449366622678476167882379327658779453633213523644507743735353717298005473204681821320562613956671758244087041077440300640494736469874256721126032726882149626933340745377494174861388535633915562632869330135179888541213109512141577062562886080534455633117337515186337442433196892007238303478182164510749433329644507090250201755994765471394501071677833381043159327034996643067977434226678389996126118336354857018023503244572605427680001953512268516532933529263615997826825951503874033812784558744023451401564273076118895293334935584634508464999935197532435389259966820045239132328546819065228274925163764469061415304764859656472993786001332868543550185703134339479586963903692605973441556472627098928225710778985870403889666906542681348589413615746367432317231100897008351520101399409700570777300381239086574274968189085753843040230749862066726215321166891609635355061431607675792750931475546409689736413893984078058471301336170686700851818895921504767994184786601905217628885649313310103290810352596071298632878581464301957116525724066779095318332340026284024393929525216285045489281891004799946248385220564498223455414396355390860624232988676964205228989900396500770409397439910810057306846080022568062801231751838314935293575482156301283280634524468348460057352158632562660629752618454820712999086528419445031824207917105310970941037107147936430529489598229291473985286954184215213159665764458708818960855837892264960145876609604841986542317103075225857045809075497903521225297736458573455392615425203762570749162236530506313440624630215151965932137841548783382873044429384425920819165577974570937325050311436038461943946268581636983031504656771964453940283675883118549727456300777255397868803779908250707317769197373767173837449275610603258037538816720025421841102194491734276472707439981971973824812976649318060784623454642189924205605211313164873383472480810876742803610474380706380941621381359800757595567268668922972034691887775083467082832635935806033664256097791850705510669192933608750483466754988613177401494812817832356087130687391102853783870023531215945155697590396179577290073866734496368362805143274529370278479753950924132559913724334914199655618474329950313526297445125582762497285666425975906375359606974304414210232425733900521091993944942609879922777248801276003453661468026536155264431032600931921729513844909743529079765640864120663935810268622692628406420003630695554823671942155367423813781512809344600221623907492924477804566746997771313481718799169955123924281051397812337912152629644025670474025751691814125218791142739629417846930227613250978786086948972151282381669008780392294966638496950557898276682959595731504089618830715038997440249338393488564492012130639657098918021899819998067985530460240452550125750583691335812722765089396684127523545435510608871836811189423538839075581325482351320356383287315838742267516665946092164849674208262048114488691998874953759729093139431741796625301334721890691555182886023978611540903271957496060739002578262903581479364939065953197799004226877442057440191505074826675735077986988805678436836421864897744549704776094615017611391288377781832122130474348457818591689739631213724980866421943187570385442894918028755890260510258578826354531986406172145392193991655501158583456608007932385624561909151028216916160121433539260908717727099196252828047335708436075841897342192315951845490081188927217189519024592881865226085431358905527956427887645435823509199161423551193596088853306698321758001376072551155819407885162458621833269168120417340040830937789347565123571116748445989365976109860726859795677477120110574319788104392673442951432601640578888354000385562361480342256324177434286094369420552077417638154963874699486092892671073244978031549422909419782312048045473781795063174483797686632057975631210880827008983373295900228498653079655385377341476031225797550549035329709080193713018086841770763688949288166956841596065841736613534371689833385003265912690981851409960875319424202654689390526548160916116494116506285783456635983496661248684468632220274681605581582187206182662788908388847422883373783420591706650743211522074942915004727424856451335540272683778322996107051421686297853741556261437023353913479299022628749938322045671654079844538648248395079422543556352258046493795336037703378694916185258947066062331178274805307697622141465685585987820603566836450950144329019683429062622015605081550532943100095351424461257454827133956568846781245649006604521987104047765839970369205146992598181204260870184349374204925817193284615609409536486991846225019089943038817161156411321179101617817090392397954796802645346021223006979030243893818310604988078276611313379919368187126527245820461787826894550364918743644715289284039539816019676735235744274421695976818847955640729983076896935342729315867703322722576911828783967579752121575819373921892210078374499298197241021864016355402806202953692618221794747406458659154919302158951992124188745167339798858367737308805667898629994097347264780617137569157981819303940780878255370178135188280317777261393206660068297360244442477429152326049947572181712988919018928769737563140443628461403996514158532856659574734081940954323426631814042068783099353755083968343730914951982431504847913807888399683423548677457113616348260327127803254619059332898575676063402115571592669469546400202231818597824902056342103347583107075422788359964328963839508508501826390551022739457528458476895776708846541677679278748126788752040791411264229665000796440585048554336192703907785891352635149646461809636685919977283177099849137147344988103968374825631288635953578822684582904838864120735872768268445689750667685444623837826974526086013802095695177646477915289869238189190302122956948529454539383218164408550674683684171035100523615992001720902082658450533935884025941501138077033454898429843500993971817376433002010699656055995165739520337600905843623125520805186827863977419639701468256988659882585015610577835773643094309940317470118859014341020805335127275590911102606563505793473922747270872151843274061500921812369218637654726463638486800015932723541195835419335550930193968614584822185862487516253402839909603456172867435244826283682239301336302463050946143093617641906036500883604231054804816691521070161565979947425462206505139135206611848626496573666094384615296724846374841492578188086647082437870029550807282170824538495763954822211502753900975284921116017603291464241504467842896624856785591252723146414189588632587558545356639955093128806483158708492699697703168431137792607651120195962172714991114372836948399585276321702866060507649789145758842499300913716980302635991153852225633400344483196299488372311285401536220558407768800067591016758182028963924026522082518136158669907417688609567344181389239216253709626802141760897650625396467967460938105688037358094279863024297290109672367200824061610598570001131677200105941489290160592440198446905047626752329746212052576539504141433602958182151243599529723906264787553258440644066016457642585963419184493683277357929979338273394201783767515846361798985340729359209896379019832557703692897826005361397740738930305118686825944534212009993408304232781060414759732072810950921412401372648585107617104875042000033261604927060633124549345796907219861110991830242631266823640367484977841629868770101558287843146833748465669959099718582888220143116544506539725885604665012971038330894651087959815422908022653487760461788864226211471099714511757272736382138696443992841825420195900552165645561757578797944788354533477852809115936205529254492940181344704059635666178113573732380894022568176588709124163818012997420576363202376454899736540200246767963776687204898232852787737154101485949194564001370548965314461469475153371827065804484370060697799967243010194180902557217774846321067628184168616837894092430826152531798342069701128975624176876222444887794762066105204863244279031239991308658824883500490666109897188126281722231591416375414510534945104413450769165061434719731736382426511534697488136668682491609796925547633400195484764637744257079450499955934929254826391099009115798454371417153757870398952214264454690960885441174189042046232934619505448365615979162600687750957230765231910334123206659233734402550859713939709582167697056911699739715470754356849408110874505665598698425440355717806239183555315677049480030251646230145068861401300990415838256988120865431281963396212628216951925156408023791805723364919305559576329293527276976405633573013267348326346866760734155440774650876311242789230553522258034412488509305374011471448532025775344442579567519281198456280138449922421200602693360355089480744289922771139594048952470773397222615710748958159947376212576679519331638338716142477040436742815032222296696180326513253639497097444043620166715220185787656586756951632839319715435154515825871726504258044503897355986774609035041547836665160495329504642182145438483395376898725226605583746666592897749591321198873460541259007234399630716713051626680672279710543371135887391051454507794649876922750530583416675008915079358192979323507008465624543106363430100757121143428018381345522197108785195294784694346419788697887998239089764799727242380465819144005760605699869295486224376351331973238844587364736413355528639795088058936409088505477635475804057794748099697575844890019228936337936961681951106657142487546776873484590184300425283026710455589949257301427167910373221823176412260207253787555724392960721018149182188977105385228060661496917218326948150548688954801507609677258421306563634283691588013738102533118354695375619692027005121167376647684020865680165973954077720962584146894220794573081848871228461669490133980088433806845622784577172670663758964488833228504415606036691401456273694300991235369260385693259690141228658881742865217578165517662827080685645141076107951423722965107301831446946332648962010143509353086633776540203775657028667176771486957696116796505532416902681924632427569776225869789091727912186484869825941582821433051431587674482679718752582871755826154527324949961652293913959308091629559648401068815374485620130859050715306407570327636250387063215289200211263656463989324498593264558771435120413074815252338353229941707735806210204179973278360027769381562644219763313370025878570630947935865467025336417984693769798608666775873330420310031950504173040594270387963957583633289760034286158397051205712728147122442925528710277820202976477458954991618211148808707677643125569301450070966468112867720725719293369747084040112861670315205693813032437540547985669002923264653148482353341097843846874002662798106337840262901573806637085086032646344641760133163908327237201554467285497809519015351050830819966541800129438927004228685262140915183258300126539174902448803939507586279564563318190730092237932910207922401733392309700123867972871869965417209149081284502786224583787914407662166127524211838554626424446953215670604857042635014920328517485369683938272041113558978349973913825103654471796772266967880747127600259409575892157786650762536604641179854409287417104034282373161163382357026371395089005360008837914631045979405115863708594668827689059608381750933927268192071624624877888809872179804187767290718678042977034851649436910078834200822981131661378146978127658782200327904858251613324869797834307120922145993663021024582536925060754312056484220044131345111264217179256512042456526237651354421439995091492596638146678376608419214245384509489519917807383774003263310934880373705256462198629547997519173044459071034796344756999543312682637414221578658027692227599197895568986291386278592533866918015620339085101759520926780974976851721609232914788454647798237848003251971434850504831077347493205891485232072084799023322218966800275765406152234472202713910937467591056224076854837233869626274253980097584907115491207367011888876261738527547544349960950306930304530580714097920290502893126872663781638366326299778574524715471072562040701483279489228735626799187542657336169993302515915287323189586929956790062200112084386110473592408348082413943077602846260012158666589989313204799171888843825965724527163213058387760120051364494769884054574338404844008762725950007703703590003350008388682819213529297025898587593035245575331683593395574935625950748040807674520902718231069592686268606037738183655372470154893454841792688177046475056390004129710594548249927677128170430138350752266759095586034658447720627125420785187271291180359381797943667577649826595804166432161272184738648713305407179365480066417398732614971620128426740441378785973159121175851659221328989298336603260685500270127778540981627337437856421357622799398337698108967705850213394729175899543478043791217168591649212464671115211222228112877807898406025749617767426713639751742112970172431823065692793344581993555045003587197132699585901164330260487159119145420735416379648739074890282174108191094779112652002646723992908250740116284573347499025050244001014277429411941540933893260465531060006433724694391978389322080868993835721900792742375838297047023291599339449989963002049887368065598389781659484076253814590579714110796051227517985170284182990807046831945009893704090141389018902259713162093242203177669290727142955284677362227690349523650199984611031503491586616644891389391076631569628097924499659278443038335491736502686216402259840616330214840406967808361000835474375998118491768102634654135479794550512044616753677479601662550876436291042229622301483687867968142676541275150818925598057149250025410638453956507406089834079034698492700027332901755066583897778532139992785871182611350862863690393800631394889731202056330700530856660863033633196950688722803969691120487563084683918503630092323489832413355671182990241748498742041399054782834450674964294587063182283849159083779405877909615670052904342743506096536032557741702132990260372572983724869752479918793857309126190028275480187795234664864485168433094455417812122625798727161988416497898718581408326904084872099892003322679405341907204986214331955194514222053504116863980199019217146515678854780413185734617837816738120077362313111827738889783959306988963963280612104865199537931910779735651162758160459211926502231470930613204714719102018076966124210416726630780468486082303821168983181233030787443355976295562537590978546944627608494559336453129903500547341868660269764239850650571234440683580767785258210910641155587726089582470613559336447037476106704539471361566145424237342172922526122114434542601209330849227824005950212980077875012313043761609812810343337183462766333504521871100773571814725425559905936737539145339176887866140613466914013731663477566181740381902279323132489008923711369028080060139914165235051373776790729964817460879060172836644858800369003847413215993805649477106330140579599910947769190387676597107160440043280188038814823555830634554552215121976504841862785924470378181558200815767626358276754649536966880027558528875081434746446293196688505604968616682941805652782499208545995833391239633706792139707090685922370642445015935540401097680704893157894735098086246296468403944335505344643405746564682405380500651181108882463350040343607000375235343242986086311804448040694512602590528594316000733819901140196294988512135484214549399440037458795934131962289540244078220175925028971605701970170035850393197187508803743202774586223488333527464525615509482536284478729358791276655087284683564010743243705256937288417963683939292009321310760781561263298923499938701098901882991676673723956560689251654085103018802185293238952891826608671386339425985964299627280021034833089258752980389130700703144580936997381307909031498276846718885601428515958973074953893047709553140653075125196697849319239702961309537917901895486192915988530521778459289546944935927285861132814017974625080849898891141247390057146311839796333148435657028019127957512448878694805302877903663579128805766328872155487630642690266280433522961420280455980453737788916046252697820264405581320408155059717440886111388388056724083849620469667629289502319212527090824229251667623215477736080150915414602892340078108714004821362546661289829895397420580957134840724311217086576279170028806610908113210908207320054158749752226281970070433760997724767657643370986960336975616346014078768551074528578420082101953509220690719653317223521554855083657174955043696402707319420471058687273332090614382431269815525877841748361150118638307051113837602002962993693920245812131222516492051896497970564526366509856890446759624172724244734773223084705044466710715920268477163047725470660234390691143461037062924413160376769290284966902214056500653250195338012610162071195086501981873503842861031426291455695138291461452901020567670250684537470658130559964781246164499295893360499242653147323936170767642919377175212808788364353521276360397485095894719190969108045385157902777415806697437279470063265281206900565565621544776915095240925653044091803219200476321983541290834501979282569075701090469744458446628520400516394807947504791202231235423799566599394078246860217608640216687895024411042682002596905938444316712895263758397331606875764636631868891776946440286907360076339888306954783589688892011692732922814973333649138735634478734846666789820808974951603889796605351239057160007804719461997821619348365414980846331413034181820645686007539155436280683889616681000258697597792504885267001226430904964099570641212712850041940850346224393269630068791423717760757625553784206985906884660798285301740334338957718279235602280855473876760570453927722026082762223041514307372919306993153039376958142952231763068308064518669008282510526839773549955638505831120808956218300206278408729674638275779434128683775781669491088160084748909947839912632739723215089505046581167059407531475210279887680950228840249226681251208112674420842750793603158917192394900291217490808756303209634583011600089958718267414966863396692479079054319271002131471724901928985507640649893063018477317257733188903638235172389624636918453975950919918478651397685034927363950226448930317404958564051456085491802314824167624265015579748901663258583639187521852542778662602273679866430359129064927135327476356308874227113147306491116218554443892430132641859464547027757802438809651012206766910830515325474721291272119649546523783786579585356217163525554750759037971295637284637247295776652313858765890600554416597637549744885894766558584894433242428556569781558837563316984940985459605291793599741939579619066223397504729931270770622808159022181201386460735316112031903228070296123321559580510462931551461346369691309850963276523700941331568889989432960613637647090542907805908798061815268666046573772833025357799827822954904543245193765328969161901468724318825369674742547336395138860308312331745718927869983197068990242547079510966800928964696538382640735279558467370682430282808810260296295441549239426803956012075534341723144328722979899356663409012297361709468934036345124988007017683560655672500602228199406822769422782557769692778672222681570402644044502898315459585998974016410396842405919173575593920840250455714921435531140662883596199618609140320526588813874005542148622490446055116785529684389069313715307259464967172052428389979121808853098323193883263175343643275808753824710265478637307717717399641425876880576148940110858794372912076806722512279545726867197696280894153626664483082645823710819132759954276701035628011411208934324633828324611183399315113172335065625917374700915156461944743291219111232875120838684346154370170028038251467342583532210670855471009272768729444035374789376316233173280706726148105263079123222890648216016686296909587343250125631933316331291708431783563642543824456077815166056700381532351075318670350026565473937567329306316335858026509334212256494605015096028087000114622359028024328217304507126583464470179903744903624005204936153271785070743221053111712375289848450341785884248303117933516157240394272986532432872324606875683387009614990509744613966078528122057328282959727915086832985605624972501712502760347844122841201106530464621864435633588326416149706087924590306265333075682520787838522477124275406842595256407168920583476513733751508599049099904329564345389458212876361714561046958424884570375789852267535065533208087214808511810678844884162970528052178023123812810591222171420212464557531830694291243453292821850406293410764497694665216813593452355414269791065344936076935009645915803401632316898398714386337170803276281667723967214681186558851788394803116636974014857225035759771360037109807887082020472598577504159662434463680271642663222865013916595727346953488477339974693457028798214566900987679894010989047826074946815264601087547502481580692313485537008109745329668439745361718165080404656840097914018059420615026357171346589454628875005603694723041405779153026747797141876259425337871408713249534385814849185237885235036382300185815987236073686400468779700036195134792643493421475929628606596288681689019795743840697004452744459894099169738112433236129700880076141542330221916638453860994862541547419186060357730268961174637379043970253405021580778886769962055853453561036399105625804547618821716158848548849222748790299390613189423720441784000054918646294358673670374374947238077655043143179693069851342458976060309393617439193381642545114855952804392917326912493327327072663967069599992991812165701285479205385393421190875551353980733695235037033248985780991902358286699454099439763477270572568117817828837753042634500187929481716251998763714315803597477829262210663954339015575103105530730506915791061638799400830091536092218659972021790349946285145236688302082169367938467945647508887313594877012103610291514896197777744549047017073681668964581996033822186766648092729526721642463526719585441994517722084989042429944077138073344943826565710083136102347010052888186930602495931816180829455147608371274890183481579464544798342369433980000093404011794208134648938820650400002331894059626354442138657959262098554343075266413859411578356850620478122905227009083269819944755272135113874969008330155832852211757802579707823340083400233460681141456314395317075887521459131140276250003422413463113644054427728569401092052103047917139720093945516886206172554626149586545395242600324969102055415429259972893845883242634058391505112494289563228500916128878515414220353763000843592475321610887189075265960524393661751534441082798140265720216120169640483489210749706292806793773883257005284492517523975648777349863824699295693259380267398619369174544163599371911954523476075582862119158105489431407641528063302442303788803342705237476523690845795183623273152830948845197867932690502662663815454827865933340387203884951446236107082125419194291301406596469091730929531692023303735538350094235361500801892169160053800707168645524712956596397753273964176968755959138804537432526680911507183824391476659112022256460426907683539135866861998273015443674942761119382855112867661233783859224139055776973210627370554952229809990357454816237726356983668913534730233751181553345235225640658082656325932930541778219761070412845018007404477242059638680518251724551242534971033980746801890726143462548901287349752963552776902282294804083147585279009290508369844853690905544659582700396786533002745644579304820979617641824255831579706029623685061181820769220975660857415581389781065232908645075177390111065844392037758074960527604877698071136510481318303532456352026132677904037083722323840451545180771860502707024766959623586919703380033178424714799214544859127238941588927376954363748827988918099906343526838615911503676862854000393645844836180792589705894890662064678925456335737186881580879983175901139439144045840860929387936609941595434178772772576105667856640543809191397508883805249937100991550707161288603412123433457173852355758070439824055633843733403416113909186519349256592598624086831257832033820142966011486016434397799221149423709410059697781867094243195878350822499464145146892110006578529581835802321866978560598029021981325524167082420069797599296703688629870981889276376128068722120331755627797024524066428187646648290937276286090009475800431281497019140671241518690842843683372469514018632024481361296962934509909347135993458442884267332909904810486002509297876874322209806695051021814864929208722998555384597923424378903905495817141767583523770764806435764778512850761550744454506827192905280225899088877212775546744347591004570513963629430938013857545268078209544172692071909793662167377884446064479564124943592123989331761300606445941493803191031842279831843726808927198303419351633934529626417603796033749948920960319089137424357060006611879609344870925197575436134050332172044840427319018410045887414432999049098621994640452071982750124305772274048114840924376163571153614389433823336141907886174706230511582460602215152826689533332730591435507003449595656608443449564751273215838096094036525215446033894172919678006787187601304627461918232678746013570957707963164821949955158004173377900574804727439697237551194438053715886662965016723493435952916046965361477276560236846819638780152181768138370559779819460393719620485149008877320856763594515400860703806690831544011646506191224284676049950723104465678730750770665642537692364578431403937445089113757848868635935377672979081493896783922424744608231847263373145372870160152907222331848017069864552130135914943751957853768426822024964039881415882091007235759459582949177462458842990488310440216649585658606110234677924422772688713388935559333914036943341284252158007878023041456799618287095181218797927590102444369106641869111923795938255532709495609220894435392337427772704378051235334765029314483504799758315643373188079285178225905446883533629350459464054889588574803043557524833404572762120018488127802900111931784327702032850332019026176547423346768787422409062819188789298958164880627457367586655552540067346324309548484180376839564432074500176648832608044240604815750435920571005566137567622105165228013423209827038646046436590786818611278285445118649094532275505647629070988791104123114377370982268089533328372826807135713412000660279833284921719984316897110848006260175603269926269559161300598383898774695495996605428378111967182796494932274295386372176322703952440568623652429169007194172204776719147873754227215155671045521122857277500026959350903414729739137529772371741322831848479577151898301427816606355750748367363137703558115683750362549213585301177253633861299203218422594682298145854443559353176421884406712549112467522632875596558821533207345213256759350840497665745621899995311718610135449279432157302223320911446441256945301200281743693951740320011817183192415803650278941802190492238791050361112168993243388469014083589952038526700951725818030934437715174609611045390308670795243740879366259840856841236766042837551199009563808947307044291399735842865320789265105819926257288267023419864274459266931344747187632575837217850971916001464952037815145262679077615757573770083047121463863729738245403800970211788137531478332901320272874747660331017893447410007226131908952155235314300670387839155184845723185468370703748484099298596673053423743825843659200065838508842425101560298579444175593551274685745434775102997005023144987551168871683456083019001686861517314646294006401772631521266311332984319612276518091101632209589818369636152209800942380504642590986272829266883023003663210202956488775752339545157156961510698945217961184600633527219761780481052617420750995682341048598931517460361853198196284614304571465071948077884116375720774548211029968723618729698959680988484490765008536808780456971062733897825927275566796880513467087240555368682369630641179731798761124775175197882478428336471998310062138435098688017986674790562389372128573388751156204506033319686255931091804350070214300040684282835628687225992441678223619775940565018316303396462337905157259612730654456161885371610661930464407228152323505698922563071011321205267748769910531710500943718557541747817850404599936488096452419406266004456453015304885157522309196132334732426333364710616879312453313077538423981652032494415981644460570552880201929689969665131667080824109301491878477620979935933218883729630713735903613441302821325323301003957675243397689866713923266831475969380497440034798943630585212030004395699850867561754306967473213596279835094193999547441828664816865405194878548353576993884621811574729316950494842694683063315715350171403195669450744762105043960473911360944119121404127013187320580549648813404193310742588455402671983949178469711149446400389021970857215969787997786732612742347434458914373861036988847093834943613767225187939519825882553966216890279239515125285958195037813810298247451886740590475617499411964353691012803194989778416021877035108983613341956239882102829919014655113093744071190591656221804600087959810037987664268487112842599729830705107818195399422331738159881459072071095560014736014567359082470243817182023408158367388419157233354437074796500094030594433271993075825854749429687820252857859967090069062950895862108511283503552763450941213826438869368321833530465925121753586019566626088534131468324719285235802363638368036693158432971490093487788228288821147472858286213661766900690027932699644433653542126572596435788698695689960780721511667203050185489653859138180802948983295943845104125377864328494870488767363592733178863459129330123789849861928777561413874077310486349452558517198359890227597887277964788100951350513958490243234999075658165069005483897110642123920425447261529400150077045756747376330015932273190755210378284980253426439728104420530686472900564963208888106323694376460223189977451062244957576695662721624945313559560358813825700829338224646816602727173398539720914605820973155801829451445318490098275873115804934687705985597657079021549142622977032508426101890873603547192425952966644984948554233200475356436546024564351393379204044364269254595845771595964920900119748911063486946368746675480585275928149759076949044738258149078620741725012640311095363767703056696459585456914323486836527404620179690866646313601204906784395362925706107347505421141569937339320656221467521931128436449459553251762701425618164439426192926197661726969064457430082633243985137236323914051729327519446062169418383955798514558509536697493463590636556717580326014014672172114619855133115567364600834378570177677301496196669923234225380492893263187725315018806597778149502640624945488888758577414430156866447159451970607210089994230966029716746075153946904161084288340040075938048603482280469990657536926637170259132342600411854959563847373811932643558497899233043804554223147058836276869510943916951896990169285613423250480886200770132506975504259132069078582468876324868668167827242945549951486331278636315932802962434041464472092624000017432191236963969580214088450431202247221185914045093175046109042583299118244441002901737502470878047435019855967533845162712747816306030089905333562118914452223479993882418104081051769627065283620004086705182485974299472398735415799576882019180539442748141356351558770764468603734076339829075846885054715031546287156636355171438217732974081403470811469555980006155303466896738995886429359101514126260827575668045169530109867113391466414416227898687224194503218033295473240254013879953790543066509680676688774681415092263999609317252305184813855073944819687222788852067369181568220841789743808655919371341979870364485800908332984567271915127579550789140688275339710154155801660699709302931479696020977265950722313313873860554884203725871236579715616428344522507365984966205344994565057201725518018261101429615122164031909877328073481815460958303210947750654854443609539364488653949946416844377051421761094071746753489355306642340029243348537420270980090188350649960684291169658841436836223108055286925888666520287449970818599240767465926021583091026360249003701585814260114401273644787984061293067034320488776338316888773578459179769968804644450947703388332416545371967730293306752144467140560464494680069130817136152882336742126811144820713350207336214583549576503135210532840182925586006681632157585793545885913643901033258195740316035318828022573122727033136911046245984365027475059653425721818425640145600550133972374965254699972086078740841428380420544406170366625130527533464356346077493084801888335785365977567387570615567257774830223631583922691192097238990265869518196363059197598640124566237474905689072908011906215862277928844384607270285976899102893390020515739160128116804381106736701347016463425919017507335904408805283280652268371022997417177954579463636626895566430335978649214083593592396175212209815217707212084950655158811062283050521898661810210835195572308127241149359729206576427162743391244416101381377737907394235920998001627367406537089762625369091465068241963430585948899248244230496010352011010362378944769152197677679583392608379767594279818147503055780381529337038918896494793334267326775697236040704476188498331285027434909483668898872893170984196000412966690461238872954321386871196737645918524542859056836713506582260421710020422666127011421009174980988533801248155539069036278024799699903168434465551258992915130172035766764536287072538976774949411642647956727544874578172539995876385804946814869289196756652451619061632739722335573381054550490015865978364856737993802702159641313854927351743201956176814360731440602605279806433454228581347296473238574511683798667933133915486910446915230244154640052893292039687534939864318897647382504327924837315292082344669695415478878807939941409079730897349924763049854106910456818776714295963033671003450723548245914570934781366255070116787549397210634061671425175342035927523456237438666168163917760418560134136995234065589519340758755239436156612561724168854307197735108997322243383084368237903122083098645758952273994024778489938511024862425445552017160459393306170084829153543644721308985658280117039965068272887384687187611431725667319437567499255216803418712493141180101684592207063499308930128409198432672628783549582444139217672335525175435226139923060012138344462243809833557065860534891417636624543542576334875164327613288432763761013192900655696689001936405268682712518122915747307692636714742619250271728711658758624404021332543690091282986976534812071792073926302286365103294088419761907671196502563394004017090466062732600621093026703242824611492509212494677804491070900219183068517221751360202329765649310585413983946177365293425710276113581413218398047413664224822554719726027024334168593484627310788681613177906813396701322804864005195088999380643840455160612226469127470999036072383861390967427445641371665616535563336755858002482258920714191766107286887337842632557393702901554844644211056061961804537752764434304994919029217216200685597267534984099430966313502414636082040165888256668938387159282211791494069062844488291858061382700825529930003900453189517025161342981640463959812969524311953458105413104147537944227279269973593896234573479183739848393789219281703392921107711551375185375244464992124515402362942732640931268188456905362178494664467576189068932397860296353252693588163975225908956219649732106192997533874411688670453500530083713505374452807042819806171758379436527181566028180064976479194879931975293373326232561430831772640549337698523934806902223496914631858402584015952536317244973950603879647842922693830642778665118998890065057959198622054866828379834627735507352010268961764394791905110668894315254885558879001227000089525893252278791345597278144850239214375180030154710257514573818354329962345989425022334490026641537650000844161271961568613450058563499304789720665448513340127140422482373722644265356416630477462737096139103590760046614511530082646340966057421785726017681181836384003847510946188368204330304224332998484794103218662040689272921933217368480577066312848554611008238049924704227943572216678929733932659062276382437536486586067479940656214997479357022860528979248397635350697604184387426629234529120418121139019233442436403069972317464940908553856862941963803356411257132111657083429567617133674701207176736240100528565242331113413603176166664564584467802738763203163295434280723054834586191987388518573078205140527609545628848307469251837610122394095046691206221832165027264747804808849743430128556629544298869373619893150305940203127085998114081608274592572877089024990446190689812233707735078643683928775414494565371069946298259240004266494897285450670884645220457784960617335729851644545351400669586121181423510463158178338690297788640555533169100590862385167170057280403127590285732231029150427147536767982883483993041439095097871516922445364047691495970174598229365223989192084462518651185385742573972746546983062646505489934277717002529671481490532386256910734058841248418498985077162245261626853177078327753029271978383221766742240095000520192266767329606440609992346080536292937689640064291058176481317958147771322606862192489485089292789333344615637128559354370645386694033077958030679822148607883085259988255864993957093359152414626072180484990565308873894361531146609914510259435766724522520819948348114113630300107958876582884639072302899060510222501051673969244124698306298838449084460873122784424298675002200445755218913728926487368611798139574455048813655361333098243051065627154018339318517215209568375776072108513491538255371414098781593879366085378454595083162846894260101207881594108149317028685744446834883415910336035644789500228657052666238629280643689781404497899494100182588838685118632218405963018591970420582786411164854460123775744316109051499065912046004496942309267969876215597610240211040186966132913881897747306999494995304245284865145562482287733014370352006335861204907353672832715288978039337593657326817725609102626098416715869223027798787973753475317617215326105635499259957333849670847119854361300601466258095349052500234149344180813239859579141164681110642018330650888065578899836141730923682925181829930634413956716680410703305368200856742693940314269134052862365607362214107447316329763583307136478215784371646183299141982701743202126700724347759218776827669601835491699684187552717587982301386820570939052011225178789928673915273771591150218030851273687101348611539754622242686445757810872899230128458318723520777737970706877768998848089927197588703671633154945923782611509162095656288640446688118753601450328653568966706286511115235528257413113515274061578336830697493092856921059975806766377694025110030558264578813747311313918619639252119146299568075299188805482300019275898460727858224374384718500961044934671498713424590817910877202336343178147897090095815947334977714601390366335329128840965780027705505374270313278835507692401024810486882388679986527889638141518194105243035421576421747665602081851044141899663316597347180769012130543612743225123734574990664391186147397732835343943477434602487865968989760380907894358775352005677242262434921875541581516084227925843947850002248167944811922146095299751170779506729090500688062314141972441136714877453263364739181244109719706588943385661770723678274717427390623989339312450341930419688894641903722196494243796816714039921663805406306614071793242126239150649442459996292133044102686188684891862984312162604756205515929354918609736790374764220281694053789234666968754770010469698978854888417749989264508624749825461733202057234875912333206317562281580762445967939130480005449730060172638275960538507345924339778526570763543965472899377785826341004404859875063269089916064657864122765144479524676544757067346045973271014674643623969615719463037542317946227654953627483298668901748268713331164849351643727792280237923181273566382488453153127180192062025375169994374723801509852518332826718728630959131517787416655019041491071253100729481885266178545150355533925583583437943518018485216179429597347998400060755519070628230927689951100681857215408986610575429289803828700932330359034971543669946102441185001383668828896923096184975464426332922082275132707362597136706617420102336940873588653434122328727268498513173327975286115377912100400952843430797526030364927395071142824485113624164685232486368114316946180326379716626280310633291072030854630247635501853500101052523384027638484152246488081102365148395888174148681652566097317438248425982227265426276465553437140076217902102370776609338231076972005219702585667723564700533492827091231579652870107578264769424143579035567807096611480887114539427332978300561586891008311228295506571820964101544566314873034102409353283394365554312547763519430714301641823230099587236123604916473400923720449836776824002258509842357856565091059900677285765701288723828763770398640715949502195611044996314709602144083758027399077938809637155239243774056344443446695380046565731309192969390363735999747693325817558732881904555239952797779595984714035407714111157284448359435897558706993303496162850036513356781986045063590673523079740226036241905850874317475578428953407201794762261988105752082974274106142614256112992605886626869099641564983210362102429041395648098209781916889372534703091849342616778134673320632350227895904410685559046094099394648878640117560573828940140256950567483696785585873825947754949268480072898767469929144643059924268267949172234848351123514187594335886841478507003913363788100910983479457820277709454319564465980790158253667815635833754958536470348566570580939546338163043576205531368666152699175843474973874956046898505105282569883596022679771607061350464367869103023323981657048759793179013161739928946156072720538330255192864979371942960408096277639218748578281518793196231643401434781252162922835702301344023829511392314194174295267907101938700278820692911813617951098589990100877637098539741252684867251452071937278786126462901104820024572613514613333799949421895672033631166027004848559873991222089553708527048228731294452911369056621411037798362413279933670338912409129120484270594455215146373966876627162354672518187291284430266869344411125422161516061904073987570146152351226017298212260088823813541418896513833405630550667785283823935063805166915805973627314536387405320437187747966551675476340558697248371053455037222479885144862097755426248195011014297192131465090206140016531441728590804703485315950731463839370729236031213261294940061718752291057127256580215983602696824378771624208264745276407413089872738340110411128300345900713647113707267701887333280787376260709031490101267371799064058499571410874112142652739005257865687502099089612753464195312356410997355229675936896220949543963635975271330301754619403792127334679948348314385404796259621778138475562841869949413866248526683057933102428801185243950598318073046791240787954389609387879403232756781737401099595560260913164677501856695364195261920577935376244890529148252291229385555297036272841114952275602200414572380477834770132697471729735635456841208745953695339344878666757689887496331980512849601969650458454568577075732634919822085796194988803044988355633355261279619077674410064358507280928028207353399114279724120289774840793828838957527913002448233937683837697552386157517871497446948648398401449073284025151252779951569746384361921784542790325467726984713169920814872927296458279929383088787960294287448506798941744325356324452665767330186749734059933266110222931165290433544882418390827336052629408495370625287673054033471793717530040630919109033833991466379889586092143670371771320166078151062653926704497829653360011394466630219691947264492164244970841616941895818046067295063720794004887524905737292768376173121081047707703052922020427060966099174874835080944508986122538570399293877150700311751927695669870944098807835786344738025437277522842636902582785165847064915977268854486627079907489882445584429166633181591828849639302916623680604127191737188425775941422719427562898428322344954526834066265650638254527298048485980693593704821921783935450468519562858717972880396025614355137804121304032435949352950028786402216220335027979697506481811689844391537746177052084534013293908236902636246069894727963043624515588811933413130878081394640940725378142548535058931170884883867343163916656065840608793938720200796457201188229517508685091210559229264334120194925766864975363944087652770204177362353291640573663940321179867873004010822073732619217087797397878056911953373461204438459271117148516566767187265643108401786580219194105752217071407456870274598376679356226992012301383070002284709612891047591832522458591219811613617205050921764724113671218143868484441978268308760473587215065590887742804637860046105645747409795142121906631210860648622698466588232941959975821077587585781186244721742713933639319387493423285093582077578828372834031643969130573242670901864318097379704750700255279263338409572953598158874394777496428185056998709243308137851309177802159361991357927447912062688635879443172134907638934280828284496577186856364476373895139073262837684494355494790973730205493464351104915844850796360547119362176164329458207070812880844450316130651589238262153924981821306575876133894309980077025963980383418647235372584699570866351620071789711928101979695532100562187894061867037713279188555284241314837997423111797222603992026303500259731959461611737729245195296560452118925302505493618125129197280109037917310780426503767460267175690373471398726189926697857438631902599018103005252214388739835313665285543021051996281598073106027827256984512713614135616893253113672640259196626041679133093094443146116056714528699075583201672908798080334891953477445443131332727508948920699762658197323061023236569117417830946549091175387948929319478683446139379466462692267812347638066989054569255126248478399996876191722224142647892645190514924490235975400266233286089803550335920269166084306711729195252077321215708323656627539699960452021320241935161826922742823039612031153686873025745618876443156257678553199943021264485233871164777740655596339223191244097109527275736714144194685649347528144223595549996523348081768843556293112618016018906704598910989157373597604929016019276914336834347707215102372034751802296780795510776535089850770121395285034602349226744361371797760576939670722349891125844226506761978269630895430356758846169005181803095553530526637304973947096763710426999965279639953960508009820232112309842397832111121769093763553506630291864493745471911061449493136140158102215110360189054458005759973752770185661770302735880116267204978972468507115548385951727987200059426235434231721409321562527427587642969874817065748624539425884777265262796492488508251732301196837037903227044678688367200911389926809379564755204525082994737306439665746509113063688316598030433459484573627745137334756935758640298725616339266809743434103374787388097929286652254834227889960626128113351778351521523233003709489828380286331916596611164324315883064261976631725111161190703380287207582985017301212703192803149015714163036956835193489064311468442149142339741390416047328710440805932320233140671876125388497205682810005012144582222629866983541781661223170860101831656488899241656658672288598326703670100212631107122188088422252413920814025422273745495776398018969241728431625725643114646209613452684448713253916714373876709902280805520635932836290759353044325441719463629892564136620338637394053590520519873270666486168336789322466390869280393776113528795123338947168245959316981717150746787544827917209712223720700589227267227534111490260133123828839986050770638368874260362895548251203229338520201280242250323437040306420169247985002109448787718935203257637807982506624017984249934567699431386881385462212804191758825930739107692459510123815247520983466872270813103410451344318165959236121615172084589145916621073242884188852357336733386525462471683532638880422091363809904340299332099317578652127714405089129366635588641758104417021172406589160539516959986099795798339699422949539683721980344380486069364024756768567948702342754081512245901700366184224540420137861292337050335481099713650653025250088187025380494565308495869836414717919639649846227511634036158443502564701943598716224234666790315544216794766023356741194060552070797263323633332860090498936877588961686122447473559693485642584828190980837062750556787302849279583119137304675315968073536187783454817313138194770321603472592339852212564706306481460063030141273638326670044616770371626483096651366526647419433891148183045614853946773753429443701301942875456668434478692348583807984931707512135706783820066346894842388488600983626487196807043058251612854851122127369704691441096644717281023933123159337775013424427747581088507374435923121164031751626189061954547803829319931514479640839944929197685896556262033961602430193873205633214725904978679944368610207640645524566613454500230434749649868535874395885183958599197042773387320712517419983052213422390967845137370275423445403952666207666535505338387242082580361021510213526118291742755856975663708327497398100885656161555469916306977089559795150849198266241421539933639222053871948429913863421495007981391220722926974646757304755615070781470598969224051851377394441904429709858764379153824617027457927455599001728611374819245007913087438756268545090833559581350810694048381217287734704542950987020512459660305686340110335903369374037332379252823671733182514500164759181309583328907485560322416101473871589640916724624198636018581586168467587478523674068573172999259401161353968997343008628659080823422340097115590758050331302278190368332066898446434193508953441019795047486199086992217719232895756785287045963345796494101927057062472663000820608571884257113068700199586547874132558432632338892284410996450688318593973069322688463093322965620162593319354740206768860577225705158575267278778517285088957456390550975602988767971137909118216458141597781243467822700830746640629000450076038566469150361830295287845086433740545321363629399901502215112462627247723769047198432616701794163260567043153457418943843582045115678305406482938014895271008694915475269614056581624756148752438724454353707099237794317486411411229733436995617568743060938937697050325515226498368610397204770847465757240774484692223139640670090800250167334391576749694640324793242113164883386592155472946988599617997055296773794086893500874255758819412639269776247486953863769647893280807907590986555781992337182928944260326374590860556881450287381472937883353483046746433629020179150060411173947090984328186849827452547676052173744400647186381795608154280632359173272410368933284771787513009474159368681875444395017272575050750237187130115016986629500298435692092921289468451464860614145821567758766158259295166846333524671906219022628401427551150870941747469035022609847197647579225204737776921105501936013714601404736016656032870010140285350342090441607908980560573514916244576128150942878412754932495689019450453331609480499470287816922710921862849658523140181819448826914309730408809265880956520034419349282550535867992238195020240191768493405444890699438438678332320167747207526436658425684592611088320985389635990024634884562158218221980530254641922284496908760099437805535882242436040261066144511116999435907408959885710953038701639529343149264682592433044692036048976753202211729690041936068429536937697075623633747839292555211870063602591315223225928817549749983659325934158618746065721442220845464419619759788874197278638750352863900701391707851556383652505686196878359511400523045381925382169367957449055785873045314725522242105533168016354316760107233916021676502058286328047046134471686349522739124843671452820674345215641703545983775690773918417052629142194591349416283733060079500090437952590725755099577690351940536521563976511712683587416561744222555199045513927871572225029646054522711115599210540857646701576055847073619617719024127677400305479285001100566380359002373394775394618433342421413690962357942052608938121082108551862106037748126532650740667208929325645746866025539922400589109600045335427247217109069250548406373352616953140003949711953025157828096510034614690185751694941791621775030573335321299130592785536720788056147793502601823739827256977552906850853970729316586989516571528413680135663271462862202065142410335743845806858848226081984496985394998880425436431170252808209522118984429823974664875229173011101468044190386328517238161751196778244805862177597703136524695410795478470301082235918823632492563737750843296186808975887139972560367318793788208553741499597567136861634888963713101804411031955124665904033652903983644713787183949918850556901987899062199673084972536046626037517232561544017061096650066445606656429105744467278467309654791982571450495628392938220344471010226916411243282215901340489036004588552601239761838268672202145241242781957122656525739589076780299265491511713314672183177003205587029967864806384971556288680412825531146270248783798330382337998083337783948994248771164613683620286574652130409867656941026995240922244580031226300193101660697908869577343101147523631384989259476722669062631892225450808094624706290847643340083498547896999426392479796107853673429034178823943573305030986377298232293165825153911201163698117241778057325674168175642320792477899190778822061108606594497790609719892333303484215559614226850147407681453775672659868719911450923585862976237894481713993127169860567099115481386752826742575739733331926477221051394198368076054637993022884308038102059817834693374111429881453248241413222421754985989239454321141794767151590474242464100748931626837412843188794537744877105809447622292056630770173252929270547330216502712001352257395864006343608491058136707269077126624079232790440688814004174408612812888523691379406232723108721161157662784229126123169595553704340224640357782800941491914931806181272347873087302808900645251154750486450728280828504374490961645911830032876028480197620157554442945161888125572709362615405370747279728000429025732014809664346511487490945470481592191542414444808584240676786293210445556313307477328321603130843896039135201343069112882470033251062352970728705469921492120623373568479475184600443664769476653123503577240979259598670023412511626946086928179180579703901855510471017084365892484073313806195267541840365510528303858698256071303271791173075265588962116588789363976293112527354369651797746780256647463326066532236074213846892077444573201937002588783172788292580977138146305298692694552373552256155374811504770749047803802501213598277396287977958319931623626756051239681360666152412917308964371210842191671131172261149499956039392030504707526921925799387240768347224234891765535198571238885993431300587601728607635791848125933154351157605304866835951696900672618935991405315090757145683978460740358970813473221220219000049242338270193155102203808660123966841832218840327793504372963568240722268802303881776729894669188755321714391217020588234044637016808703324726279487257512049389158100781911667347154127550833704827745798320989976997461413899700608760461454372886344793386759782726269731380648535794309472502034943442421336460903293737059036443290351597758263936014320283440981480919967090916106301241893663055755942655768764944259654025369662829796773270993996372933907918408645974805435013114462866467194238266694570806384432758696940211945886529210595462097408600065328272552632689351105448999326127011312632330815501445777833423914965577692104237581760843794835457626791884612078135628183123062753077142725282271399885835333228163454156580167989908704383545284294341293208922104738152304611240241719529388559936602525794510144555591748214400274389745169388358020314111685524871481740623835742721857537299009880811947859337961679642375425357242621050611835485816814510706550846064633304103851682208664560383278336544942473682170581356523073171300135949366463696914535966712091986304153429987646342899905724580397846542047056556727807907677350088174297881822584807260151931854491321799447450315447640233951233968136555547411825462849188273396416491870338549183023060765814681858569316497257065939663721780924504952664649176251814926329098043948283256865795731512538907094666144954819254906597895159012757292701417621898194435586010948083107402395552277520708386016017916128885537157881152659576424240392590195217073183290370463234092111618886794133900752737899240552802278445992843709954709990284475752097659476998827369095477561381832310699767920824761708544559594229037251229468972563787075828148447870185579748153638923936793278337822059692890276971486052365473526378969600225280723171732739638612975165822071493150845676924701783494133598531213070514783016172384307209399561475933174708850489761325098457946402581809289202352369157990256443848944858834487245872371221043655241568504807152528570591045722235129411331168070653722638265913570843792067165621787679360514570883195909125281016472012160883363175583898437416027066595128753721739825633869802419125236998492865414959869085368457530587742761318990354174319620898898151110482662173821450861859712933000576900256343269335924034367062268961176709161874813088000591880395416370372792549114301433012437681534526574537573289181311405155386261088323036416756288046717740794322382387338289319900616986121626500626421156942631370657367428617548851965528625474908059512391859958547304132921058109089195850751981873153277272215763115320916933464167453393586762732880554483884237449668226723383052702125234532886941302391266909702464637569920108214404503079694799166071163496650442286022467962980813786638131130400724509723770402817424494583210847842729473570582132839116695035508106952154515877331398857424671565783049847772239953781136811834892599906798146730785038060771475368621178695654602724765657748829437642757559557514807283821811695138486903938588328365597836676740247081390457227574158612725145375191771381450671159187423348890046228961425360968840115624677593493788311886222902635074256974771482841752342986596642891661158615715733743302523964849076772335666083135612225770972638979818865741828364312867499446229397431385259035639506091047834705900824179095970990466883618584749845980384810708902784302466120510089426524469335696352246959107498057559880948431346643849598745285089614759480945092342021988946337185001071922324914883368414133771665658340716125438867915863591283074787046778555586020292060093151972428980136331881718011390524676551658341427503741201247953571460559582137025433301897634865461468741243643246567565870007265296011824566070295005835435536661884401003412777555781626092018209709958248754993361793204053617452410128824337299477842199080398126664101728389651454558780923855265405663642420804714809070156148524205309765525989614822154717539486172211090246398726845699401778754645374773290468342780231836832909481797247296323529818863743095583534979528426267991474934209710716285157606252915408474019872385745077293951813039455051602307668893587523588302298066416150016724409900743721017244565940637341871431832467581632960370827130844994192055931265283580978679388734465483748680532257954860766493006535759756461884739047550966159977960903334089122011925400444201729816577092480368232373441319467760576282256688768626113645758861688806458363740434620098893156077831058329183828068790019598955517314866008347089861076427465508914604584141731652779859318481117735573103828205039421995998559276768383025922831051302324908897112002538514458287995649263184570862742050827197741996324752506201270919392691319348075429384994327514646430050854539614190634218875613044635645420253646685920471562019199619952282259770916063132121470859473543029258122891329267054450974798202146690905728718791206400927188966023756742857691582030633907017710821874293622695360162754546807830693368060576413190818796802155146284297457714206397006686166120167530202014806506251354095787221473890549415196955335162853500060112746842261078171662517600480708381198499042877894409074708014302652085170605098580201337631597329404190324530889811962082734364752428240238758929054636591377768496739429633227205068795743503737164421373879398399807129782935375690012132296898338992588473433029460084333356415034498388091698395778014770371176719050047094784272795105577706400667774148335435467509071965997858256152160044370616543342973092005548555411627764032532390001156694913944901936675775373586757646567287240603043463750954570647321450846486208984922881959371028456339673371646664163980453685947456973469576207552612922886992110841655751816639747412045914456318283970298801195219329032491052233382116874368537114381717731703912525432055668850764555042102737857623562361827216761237437922015720668571157548415599933454651691071843863405397571795802390797595072400219255924302014452658848386111452147118458849006854923334325037019616767316642694733870363246389791360859523614810495565134487474126435864240664339807674123792862775996776987531715797238602939552494650382816815615089177083202329618566591606462872193076791301841347615064917484493343040449557219761570114331563012514776756065094353434976589778763763671088307222833552902894946170123180330826541287708714393668931967895003420741466204419471573995668270116856271515214683236008358922225156791787745289408886078605105129496633844261333047716954539952746190967760791146438130181150301417196857444237169239828599117698968404897404741740027396050695300497434503247523810930734121754494860415775544046140794028256158711461004201350742573981095038694084025769908822536291569797037187147588246127144721988902906897330259736386196565914455106641694363886090085985180473812688843575488644371182659788048266803012221121609614903575039207228406722554492060366071309838056420498621405773557537751576943822737044816728216242291888427847495466925016657548816629115193484261857535645176822206034632587468507827730886118151752753720009080072277276660204032869375296060184217528256331447533002635389486075153007148470962450422501299296764573595904099226910739153028829345934114696360813664597999337794121592548775561165868921095367488828643842567391705291851436589671732283583358210195921426322941070507703563233762029915774896187198911368161568330839880509932453682696655775234545618814737835727150753329537544646988325694840169813113317088345787677488189745605732436931150142057707799043328284002400204566546605683288557399447897449059605223323479214170707283768310395158441552057706529486450271756924762340065163867360811684499076093735297771301643250923253548747066805463608939039972268191244384758189166125460319638497364545920745457986767428651290558002726637040550596475895821200343905047271165920634376256390887529031279998965506977562578200766151437618215449254768955215110716427644135873749162932979381063000698011278634854173724035393183844480882217576359345564785876611463980079024788437738183455051117514592828056933514619910994437233905765509713638216603176854796510971791028021536531122943897491228057317567813479657315278096448167312835572819739021650606540472736252670655197790611621089845685459190566135109467295155113479347937052355305381424604375692886323086084193539321536393142711879574247503276135035559290689595713190222216850251829673119530328414066537964877550949137985814941543013401014374834485058337679756579101884561954166701177134886921675522471373010145377994794668741341743061550991444383238353469722686790520550426435231663821863900815131585151209456786369621986687380036144847061618918004311708180675153870155561875522277116341736716882087130683480475448056753367740444593994251305933824587514321410052396293204068971618102977698322255184026545425228421115566511182066886487262500097687383716143844420839151095663811219784889931716024458479808741391868855432776611440067411202344297237254930191651485633718365078302176658614814674453219456565878579823921535041221609871908814507967338237613881087092876429483186614738957570526182618043567027285914017515806914391284235567164784483071022858137617090659933561087172369291947449889528107403148027261377087842803880788419266203869208757566544457206181182991524881834775949505165053992815016361684947705750016499636270212755997590682371831277912156001960237014575396896272102524117365710599661356309380248153718446086619517487637022151096426684142369674646943107943958422317815656484650322447524892340533673155182831679030033439680857250939588867605079466827065742327889758628202494358414043593689706744570815641693479524938569853244369459373494599264121543380762860262643923773470606361443497997362548282648188361049539313914683811760987393789299880331581544677558950851957353867868672707632169169599115420777039602059285731095964805955856380330679114864873019915601065876317696009000139069950359158948542199762971650732068410690631428846010104173335362754145585088500009718846111049031439206579934205546996310013569776986549977050865652505717411192133935548715839047047024816997935906648468250242039572146682465533157460288609852766512574168373061029435349988692348914477787722841331998249513275136799470228805153002421860473749137346067248308030764972485714035632129798097236139188974392574633867830839166735364828195850163549293211567566305565796321793987195828473425992347469028533991147611432762175914156637838004378185397351116162770448877750404551767854193594481262224233702065840207135215934723906826103554484156087247002996079473386667337048772004852243503477744203139562516376147565585335555648907611016613008288646203403262247229935990790638614383205545009691174776327276217653126868857943200797997961402164077277740865363879777575160645691312886910969457243167380855172198117766307138862626070059940527599719045416508915775962473086333637371535619928235249542200361520725837242397452867890737245009104585326104075823837340895188302710795702654737605956181843949022899145026620802780569590670278388976496069627495589893480818328053652752647406395536228788534481598664379077174120028394815920476131413700489457455167909921076824061684959428572869825163830653439194599436922590070676640107458444939620494948769399068408373445918596937270702581270117739125150583874608988930912556279858854574425849623660352516447657200561076785733290285989584021158408911647114189521857873799796360964831094824590789181888978087347935564295636263873144424955248965624407646433371389664628275024858029308522754657948557975090085846269945363911358788085666984673019849031195937347699042228251879069943168206953580325544755721334146638652190363212975962193205577241674465526891249265346011985313391830195938041393857416214355911069238449743536726291726570943218316401752958014208200474733696375512007233280680687646084015219401209226039173516126305819462980762498804414379821028139390786341765026471438835049572831805940779510985972750512552956435934297504524349245769983789945131045738502423007769712687654351796688602602895989219047290508442100694023879713826252171596858551904439018178204874585444538420240209247160790432148233817147992688537724448066162693226703396052843701754621092521452858507633881644146411626195180283895713679879932947794100300843482324463373181987726271609460335261350367423483844169089560062078297331643931144626595123864237441784109527685816627421758750682309714195280351283540053864073582123119938656190054012118698805962004956990594282881192950222347827991284692678519169728433715928588429353042793884590210787538948819750078921396327797704231506673814339602521182018688749180810116431949435637883049848703474791619686771887259092410710000959009552922301867623391204694011849418396069604029241214072959372396176005108072415192359907342418939600162346301308355952324425099312182575881784315723471232071715311129447625199882053786728377654822355925301309106922962444992835621893090018721657516092995183168200126554905557534844688035498767013745513721212881205602872927116057945023299042441904987715393967244456267418730737779364022745640137979776547702792851686360686459418644378011185294179143595858802597363935146171084962846478279964345645786138305020858183300485791280580547474156883294290909336863797503720909709408259837502637951558764691160401520460819673626011947008915751160452851974067898471369896789107052468180719201973097013232565528917864549713288982980955075580540742335877527544883093419864055519014897523608880714468881240401087175246994428241080165703908427283632234962141307084823582565962489084465412139673246489961453447989714197276299442712594621695196021523904089970308179676396224415514836109319096473865211500194332625986188508301094233322575797610345852398746880582107747052001343090110689988898154502304367339744374930547036701027322172235001554213347360249714335069259313389425886314892086469420616995252863671061593659381158232908058683382640114725850107609491248559309013647282543494559603057796219433124203208829623846516356780272590004069236614665744160189201080620890516461316476811795021375608549963155112370482275280870873992636491700433323623970805256603999150740404401053964207280361399688569307565200371289687153655340415854247282579629058253914982607465611226213289434036959495037951751254999954674667864398669213245303439095260406435251798051068650507854972548206805932358159983334325338900903542121161795095418510937804033997252551099381269973601690147909896881077246133322499227361823078288212149534558815947942404914444899343009313548289629004732635427306294259301574340192097850822672332307451710015689071896948643559771540237989259345619088601633676544985987383129827219731226283492672462926969936060538668008232656286349357481779596076865931052934569013240157182522550883385894730152073903569508758663944136950874592473866548095423934997070673559740622022318396623274646562234804927467191047265568723872128687860036346601269575799037924772861173017216657056436801152358335977716492993559121951971681517410383796873465421601983778858143189512990162097830358197829880340053622272312294731419349585651015791497167290007717877973646363997545532662697518079854912070450225860169200506101221406119960337170181064968432333920166190441930694037068866120090314032720397816383970959289660914823372581947544152217389550361910643203106492816101670157391714368134137103959659525378557985045082969168990210698083467447931383083824597129899164713739741342380725774908372186972060750354161164540411956510672379543876592434883491487940338525393579161644995924446471424402504767725053169033923278834175358375016614215660427998113432154631294282315813709454839260895242231910464693138998821937830443635152479825960734069183504246893106193997063697550638765831948820156180916996635268739437146721960324150214014333754271598571860720450663717716202864699079547620274819744162765126680657085445421161709304779690225534244661058843806447975171729547228935064013823451999109896173530780865620660015196022724159796176082126713446991300738153193186411527799727680926406910131002823536752800024693751697003171028108394186108760971407201947735668955626136435334888173478442923600053469667241175014797456784655134139171650105017333942798253997818472456569018522238105373608381730481417916806567327923070973730447786999245211313369540438420888024776712825491411915968511170445338375692368371986494347714451092405246445337246624661821826267845447594798037580474361122273478394810677355174072043804218607269667209983850951628911952576669752154644593944222781852522706873953760964079748603578306357890537923947788506975869321899945209243037086729353671138302786260332159633233842736228729273185258735674443713298732811079084390540992872101265354522676088197636505629956465773844484173815479341858342187931502709113075381676959680430208526682056904608826110028214247166729793562128962784492268910144199199491206869029488563230256029264309808237095034658726906431600905574175472580063861218221858626378617381239116484616601928306346183984913833213577114368972912151511138378056627060898354512594355798902404490045706540120631493532161767775999797127655526575279822649822234107124398674327887001766687778024084106458514501705979813430383468722939665802098922459002423440216575180399017230460472974049526171434465728771205435069744305306817171385311707545481661653237362706446333218389236343047363273137435633775452469177745165252250032128932860098723547391578960845269515589938115782275893076272246148653789316958800074918658029961972493175377269909386321557036963355432177334003761354530889042093230055681045671635973160888815087166745181598816680213304741698515229279600493051528502239551426968775874722584416621397172331820000312901700425340938304477739037300713601329358016438795191906849994576522773248917687442167028235624701862091829952436927040356536868567965655950303658133074620612423389379380850645068346050827375830558360051275758121053819455114838824078901412303654012329561866248613624820704491826177151920675764626755615911772645098300725116259422030071323969395009285663489956088583810104728006346965600711554534775077394725294889825214307731557708381424844283886732208297740915050941313357911808544844107147825684172789701710692616841642830059966492681748352833202375669007375678333688079208936677847047251412935905145291653238019493359093124008764030079487885114051307921750911800064116854477989060244535784764779177056226172298028511416263299992187040975186909307717245764544522518137527422943502005998296241354143274534249885993655300472189984457542677948108165273090065435993532199815187574190129512170564381701398176692967301321602243958917904672458162681875919887745259960564781373196450614479919552298771193249096230937017050574496356119337595828634039714047884507059196463272949579551241532930567978315570271624784077964661261657252019363296557069046325185461189667011750983633256616868194250996496673818119149712180637688159727655952774033765862133776115544789629090503605316595803111511648634676791258245440538992580862663504496376460221506954752597875474892972359369344410130055257435721258037085149940457483110102296895544355855801189065986856092151459032802358813226810014116959252223861119762802093824733248953535370774664475679467538946234890981537282123524256852428197730247525074995322040778190478604449591619553583675192968654607749569955742768047111148706991253273451817446356632372061735840984459922212884158113617740776791424417539237525394323315462853841634080967516351828832796194804911754357352815713397799777990857095941131286079409721694159863777843820874721249592407646881159942476289735835601288941293873807218226909516938935203778146379925348608017373509459822608356673045545397930752923908706561139311677735191476949917649949965841717523807599521291120399225121243524770343889549084389142988258290036624353420999350237805458420971674497962523205158341501667084596789218025436484396214312011951170417197953634850797242742928792544018689072242894933933870720196828765944838960710415468636854553363278306547605344809407262208498247603859924327826554343595466641493285310982991047781966212358729946971264241292506264596903917309576521854466558580113475521600741585709877430603856313458095450448526695631635048506601000319156117977928849822486693801009245171574631523299230825934423938752734411941593928913972785358968547402213525836368666196540003412371210209002417130035272682572679522099895127985635598074874125348565593035970232564898976272242414801951831410457637292084410880677749465346644777848744854383384376975280565836177742703001079633085350179246735554697188258531322649460623440871592896704744301244756728538653926556341662291580073320065723835502082635477329228503202179674211439712878929614897743010886664242167806532738367829407930354817644306312785899068826093349514037496454600835673327539572026081031680536819401861961060101885872718309043485807849027537340245982006333469813125036350538908718953312313092884280421320107882570343522402789146647577921835720198338743130431441521752338211860577739357969651862925366179271992857245636266876963418251208130937405170469855556780655345844627531465171236079947221785889736611273016769697874945030580996382837079365686555261800483908240273786965329186898752974515108142995854011540098806942075354913634910603337848339441960636458721906992102102504207386185725190296336494703676100019380278772807404621562284188100120555156001680274660710957772901560834797485434892632875891499763850317670671358271680995675953759242579929948902573424969968746302824657194464461687048266102338753786927244218779009556043098436831913546469645614483173803150078885037615068531769859324637899217204645467541807470522760843781480033735031183965486594725520009456262659401863675903339528178776072810786762966753162150225782043326886402552842943261205915961712648083739018833873341371709357433461208662442077045537538754796264946846246417843307647627433102199720485436556148327169053093689179653425394259629558861961496913391945594730866240828085626798611376168352150906343840004389099740337733063401772759815324641936420386885608589494496006616855248635801522202814496264334780585100181445661408967586256569654055776581897916386956353544101599612242722401665332281385741986365172918591751569705299171928598566134017488984564756546054652011379696943466041873012820943809835970346861359955287971038092016169025456739497070906584073653235193560397951083811689464793302027685191822039946267238359786915735696485035638524899583826478277676419003733242408952467060579702806246358370837612443709437859501768233507207378029109225343717518620827756264417585038612272690016374308826163910851858262102860510708223102161030327365647123292138554613650938702746598225626860417777093999985878703258467590738362997120048797942596356374493166980985683758639578102539475925048961316316360779032917639613474459815071965779480179838505088328912554129178035170718788338279707929599569035233599080437580152277381328238914054636380469974870335578805524642919014706264514570125051364881599129010693347085597146851327971849193021438261341402954499143975907310562368941951784335000423652853090510122720019980346184824320911593641154862570525236311007957597484966868881567993045549073739524739248529713479487716388888851555774649433000589563129813081816367967739129264129339151461574531735842632988061074662827073284570467678644900486206589825939090889300010735351580201235228886639073329228401964501019831275248044566112998694593827443750986468104229497042734836035343502395745355950758249498925164051491243560864627361167918700301673289012010946979992941186531219605628421866864171034861739171394324752737466985391261464914949167562800085466023044533050977010695753397150799063130872247934399349002514901555829036266321562327878055013228795317870199950666848913725052353851704086366524512806783287419773843403536883070424223031800191150753317584223692847676658759700361090241964539047339037128076486766863425061500777832630722259231881363412118413654356297133116480661427043589467969543034161958962216280399051087903113995038132841689681695676734206909527388889328239793314930789973408640265966298469325133097781561207521036198364369160830713923892187756781779399086705423289641849364100497637195527420111360129549887979006509441428619184759308803776052056225684221722229560469966250942367178277867711252059572327704653988795959687395954884349437781947268357070359021773732785573746193203706144823270980242665459885426125406001699314210330014143389481303904276102576358862649913398691530407287591217589346967689892528701011825557359350019379961141268459462683432650835878266652870782780997098880605929059644552342765338354006291997264362837828365106376649311144163135076443950436495498538869099135443135036576150509049928043765810269832983097397395721760763590473309995487734061112849162021085124916991160247310474497615396046413259614151280499888405468237684023480968008780498698859139472490319677885027534685093212067649655512439856536521416964800363944477382153069547731813591699611650429545397408956796682551444145753763887567936864762140997221169353065008670112542334362882098400271301215495716757806252606069867981998692093240170360994871318079658169660225582611660167809061833403906004706343298324379033617325841037895963316950791042034525629668806513247579477127383331065022085117345185571098803294328163518851236886270432994585596728777101451792645987849899056474353815984619333642130173025220927532527963880744120324029302851725653372904067332777429978043511269049398273331106292112513330175800937456272506129686373571632095636046575964964415496671045830890067641719447693618263839561402033903989225649153796248560992212817798128303297386110811028950985159795711278662531634892532283380127345615356294474721960679113620271727332153355985234542838013762070054337338063172302896795907007285786716135975092629412160659087143892821987213871023000101027288894586853737299643998159856567859277669050144511044357813739659769388896888565833543696763654428987005120902281168496582782699920320052624893812394284812878201105011900424710452078150271633167204323247676582148956660757602941002544786253492641020105464455925853153176560633552176114189000241678170229035785822989146238408611039804386856011965689975886702640506963571378744789874415158968555884308486717627683165092478501793838078065945457423589902589394831164741484146808164825443766421891173973083080844973186716175611652829719355295455909863537509113875085361364853714881854156657325269458158961092608453348718552642439520806372819904995281982459938779718171717124763426654154462665710783931809564523224596265602730173981534570798229023309320741957674336352625526874980232032920512078839863547734340778994273523337717968519770410347969909874212131282482998683048067093940697195381684180575944854364066047843337182205366161602075067835236380244258840777224486661896365318643678186104964324147294616769095531181963755040720195848069325967453669758517508576180072749961877349355476423968137146542409934406151121819364729607046782770980448164318740168652449903935342514289141134454409126327766972895247842801270849166204723096248710337780174518723941944886367898061343295550833564094160811166106944164251655039381112156136143496001248519035668678828922470197732391727798766441859851874746063119076907921916055718979886815599266815221380002757535832926928994211968075666399594595627990370124763694542686950031711682834621701062192495735918771484632966913542397765519075367161043084040435844471862694925934982839515636895223618271673068113436858212291365546129261415809370545541370591726044931331440901071367224219378269168161849399938678958542308425599758910027598086211073425744399603169598459324223939852878281626546796270301600909675962732066022419226541394789518163109936680073216018093638464041350463335207186689129530387250194935187447395431083731507001365149364805029726977088935590765328380861578941264604982017160438813377217020749255585550226709610489290848323939684728639970259967031650403665018179113330359753788297365576375029771892733820112951284789786515923250981529085403233028845381365072283087851014468805613018073106621653896972484358902284890518736788605679005373020623660355533106914452526916918828644962456727688366221016922132292253255041566788475215101986583980981396811391934036726419358032659828487678440049914371183638432341651928865544634600754454129756445018415209609112929887370752634423403468839959795285101097500582858229824723403757633165637069497419499170582718465027852381178660473939673661587630660198034074471279450194869742964125590117901902187953919478930724021315259780488585533189173546523293011429035089273967299979850032809568953552377513573071323607081506836404887439862490744826712571905889126230959459928870235684827532788163869125557105674768309330740595016926808839915810777375162173563680453980342255882029077421400532382211827920005881949630055440702722286677506923096937918408474750130560803888119431148400460735405113879428863759543159775616714455905546457150189370131688338607439522762857938314053662119155485509050703230994059943563811168741743917950335690167925729646448820882657134490408378864668286705655455383898130931790692529254605799290623592980632470510292877284413528951700679457086458241613937323794539118891328365550605188963412845268933756759056644854278529782527617885185416854754511526067814909268342347032701770130221047266590428110700166663453505022438578019053652065151516019556279721669215506666778431185702389256402396326737524119009914313298507073201609401387221730783223736287382816354506703632265655076669876383048596213679086554344669728714998054036268896127632628372218329790744024215307604629817871664698301908899605478374691329707020042621072716318469337620953180389968635826538740082960841389292632989294709967227269076628895106654800103421957914104233025200948638743111552998754513545041524639452578527729976431975130725931713300731102225695102919740122866009391232601424123706033497824964922320469844248760363864024940785715213427220221226761750818818657967235476289725770979602857311534439047989670609197649389842292350922854966725234960936301476571852256190338121077784994780710800605355100131328796505916417222679609811910952311898124461127544292443005270170678516577314886854664766675306231504370212757156285623408438429680197796932773597543430325269440161762822381531799731249518273011586822367492328506036172926979567528634394053467140875212191801322088454987206580352205042721346243151431697953939976034202359278294047932410671028364363366761181860319623402964757816969070435066317856712002136330431398726281962160419899830339579801457476039065675067003501441040464265871597280277631989655439641369610873113746766816388276570509617527295040816843790214140968261258065208733908048098262791855026169294770349212333516950075874197654736100615798726593019198389291992784426789860186282768176110998095936049743473145411717402526410278530697717328067454292035995168991030837450763173479606111681617053172857390642374365066499557193116225340996529352651149327295715627274256842095357606152133148347069697337686403428591338588892729640384756883928066542620069489564850143694901238232228281446837140907867366046195678960923343160711863684692658577482413741238303735527162775668639467677654138817032848005201073318709530459541208857843961420891766554251524684363476668625706512104191978649073570467883579959732027684279672401760019117886502607611372798840380838590025451781530520044681304063398906810353152247342461198033810060159514524925198003030184144704639800132981395704672675032241252660783859278288117293806250764666475086797970972387061720081721228193718435899621129661616701787629894763747494710427849903754190618954870898695165760355612479112465273194901644579758033410683718901561854061440375543018335387133271775347805439324880526564423184187028065932309822473715991415544612766494780783729734228972097969214323127808687372146543843598660669776636522948126222199125286686254694758183515990295649258260831275878039670532200255114648716901503055724166333890528072686120712559056737227649122103141115556824429305265406143679244169139877062175976927767256093539540835088233597070708700879019077075854573316836149747940127462950857673857977295289643927184006195585268132236607563360912843146151990227283745495803995898490387252385323007941782493923845314244675210404750719780925881948000284238847835439870634631080610021368039103690873241739756602096739450879910769358639550002646775527042190860356127430486690689139397592642398303449065964200236475025705764045870294550467415264823515587844892907214523840238203187050559416114896619586894012173005676553508395061481700642475105758681096933123033224626572482425480939866037102094072858987802912021551908183931183617984789176228148402580298745271010340744864716171269492457826371889982577093827038026016371896628408405456256802951075385022677868025083655892057577334360253252803838962924923334515246316446350156970888972532491078493793811206063437555567025399253195865534253349167436963559144499251963003279923400158167628827606904082242968360185105985463901962533430694918528213767859682553163903850248488889484739307391418705215752184836599056077622429678453884804779108643080142115808072262322097445542236476597632910294795067086876745269222298623891099766597896656684325920154995912174536300950937062781825206540630355814474660550574609497666575056300330873266052282026786617805343090423095602791418639770963684997150031282811693361537280836257752833407808934365126187473579931128067928146759384106480680926304869864325442723146386391552626593816159039486090151788007809058328648282843542554773667179458883521293692515155435029679798609041608424587885657619561423530679092923292996570395919559906804020859306260980349632155606063059506383197074321247905883236588721850544372589925033727510369732084914770495589034976396927214640557013256640790935643712082627517099420447581282405018824740658189337033610624863257769662995860634983559168788971257749906631597215000821087204867506825074640252344879977340062647136132692381883937064589140155739941092498168967407702903275365215570113628501421542984854365326201128627799418744060234437626484575209498667273554184998974097462659895005698642397319531651218537657046371454897956954657317978724528922892630383686396734480742330638560321352899600869550490830160064780571708983393112302382833698470805372626936628852312095115014238093215046155576292835278963071256350242040632762506700536809693338919721964700345039073100384024105514031182276050650533583833618922711722555961770890024336141499839101114733934976587815883974310294534516717966668671462576760477307583177174243593470527989822188590790546635725623144232878768244094895392117007268500139148653766693739018962185171516157649802080709261528199933049186418911948690370272783850251603684302631336394921482548758865209600878085550195216074077292819227743581093972246596387589613568494460170538161154909020676714737814890440353574024990086999133622838170915630887573443176598725837779410001361108450373573483619677788638003404240571880571811599815113885890629642050195252380511695972834998012313814203926271999414168274622556254819502122317197785916377009429984003089972060850676302598188892336314349448506494193689405864465692750338183196648653184020941660846891523511531890714937839091122287606422070127899505954406770583237125913921302445560314422268493353856304485793874361751557934956726685262350041230516873636654697814394718012326072743832790723607646456058267993074227545136541725545404922374930786992740448289727756283316925863776344936351873853708954734707377633217934208732912128355750095883052996909899060223789810048842471640677057430176793973412336678286077699468718909057032028245645382816750151482925142367295700342196748022883847965684154706096843362433754210740342433667383657991430635447557656242293449296503227672206047280011854286079779335551486056113979748566956585540465735384863211289862658058082871102611583150469106426671328695528925991262813027152289451454229148913712155386870885554341770955547196790986578835959116223205251938497985320575884743941422882261467048039671684210769079950284851687131171190530360094369112551583057171265141530627150843520214536054907447018309548662351062983679729829649851476058412053305022770499827714246197357652662988735663653499600821405350509127835870143527612610002501723047356286497079442384984156705453779492321288486565911365921332789431662378531659765214863850162784640531801613262657563027469104146057466995410746037255935656496279067764481232400966176234359062648681675299312644124271030789923908378045714308343174842892228286341189233390396513909934495078923467261908649642896582103215633726271363762041961018192890960115477593292682085189694534091238046183318287731521521518883234717707377564044216144207428129361113005354226273796585738624815450909433160767119515224667057792615896071003942815980296526317524289016440528445824094384039552502226179491052400156663970767592125694955848966979515149578473224453855218089326440118656914745941830111024420528454018817650412946813979775403527170321487743616107600908077144818973919620212263924152001365186597418399940383164564096907077936447637597832660346362413400400817331310535056863312176769718623687480391475099457059510844814740409525941648221287098214847958186818885145177736582603470436659190374677022533166535864653794434568649461061691247745233003823996668413266524912734900733552601176637683204538617293066665131872876185167438455811429652405742557289130181633898646132606830057375275490876035059695080911646778302621010025602556252193535756715832469098157980420834220974831994382538821896139631542402931677868635151043227029374974975407043700647310225542161311108961555828325986928706891421226689602841295986057479178847370810306834377555784177937247566919504629028263600057045073622738798065271227560956665647329860640607349246578530394778341274574701433086994094134447655579584329442565687900991981833963176379960282851557568318330908893405487039104333229959996920085329971705745013071068491893649677212156144104865815566807717416185329117812792209864052898016894226313557207181286539991339172642673348945246293290969530131505769141802088410000630373132634102639005402903069205118867026613487268902360085741940833199611030063854292859364101371835972576409222584548337288142657997879731993923571281578845986763817918081468438786485395120465053124183531829000479447103834400976346181863196689490700159040002162233187024831877050943124407435133756191298910888906526557552744279331022683013721520582150651819067716214124651833657777813037654416691250379035460273520841025497297356242219844096608076614429039956898148103480681348304649020311365967273286334929039962494289808913556352184301110393370954931996042375308157827017712335051840270928159693412013294491238798561540498015175722703788054946425569230352534143663815856774772427320345291493540231083841545516320108646057648368218208453591172094464135514440639080000164113299924172915998665971292765444582624205506060963376706108713108846513552280636879854978249093800497500050500943893057329082515646692716579017783157885775227077192740839559335286888883948651674990379325441390627139794791347573228587231615804478809007583980179634337330071355726701172107674719878139607263153402610770644113750595803962961553122538811734525331519922767183518104055672264088313216604591998439368040629884120233324453744825432695850436639672205618636094948731814971067983130887193295721581888757961422117730071270784412840783862325661608879528279679767100504971691572524767849884200148034172647947611865276217682117015416157411120045715428914751280084458439782945798746522189826339538884222692768593676585296502177285653046317617021032751684349077892833382694116161658175570749876117702041283286315851628062942522270910577636435492838041745250109363083063040422261462521762472829868608969492990632324922989874620672962756454198590093905218480263169950116688583290572917932096030232437833021488705725759643213912877518457098617773682001542144256860795958947121216665279680734349486646323456483019912815375862447131307791594040258949464832919438423243130424267376531799953795283376646150568486192627361059348895617467753668149359696605964410239234731091755367923429778445562468147761987603160299343290205263448988116347647977253593456245788502144051549228967491194332567289232330056319100392936206791482138728835174172826601862028846474911388383348731046804529994374572336080279349707969129429622519421275740243477000847323178078694350451636641382243173424995886965416857606570936846604191066258832158694827366058587650675462557280987468338524461851570909780198823469093770102476139232396669774331806683724764329563887409462559386974855354454927000740794659874913794276447757346989248351069197406811143574720684443729384854302029297278693411367699379007919894099619038592206137467464962147711159328223259860741527726826285667356173494220925880343182128370745040788866614847625119069250532565120709111850989609317736888719214699884264547393442352602067858147441770408385300704963678409512621163316966458941835939005451109883816220897111321581495416401998450156878213235128588681184039352075307320212601817152509397777480777320380130585045036147669891951392163273038466747883304941210098980092133380994370376084892728602054875758599793622179883277304721596478869883870372216018946195136101772947336721236672333139459901379414712197752573053405190786895045420817631042883555384742723719976693012786507383566433891296413499084684172035856391582941905105373081524443326856122817192971224481695198258325543973099225091349257046691330856874156699585728057595688018261359582798915936308232711463718166802192512794381711526623853735194477111642137366959754677270503649556457081246876600820303886049322939639310014225541397173781260138913306573536289971049172336766103429405680973260129667737051087739600996722067479951216067656455437702346214494422225511834364752568677418951613265087463796470390997713763834347601841815832749392697803803697637098584432706433546717010166995576794481352686973892985847320692441927931658653319872170461094370606972634961135830091987735944007580527613856592401223849170722322497615229598357826339038484804530128725881996960670623730571553405973836063681645397551884785369015251550811373600314793453242681811466813138771157451750173309716095936802404955147989652419313912444881965201863971117438712582472094128085201422141759479989235147987590958730643229961858940630243824125861388849967907100996390286610506151374066546710550724316460700043923871677321295154990003785302345941264212739263794613000540584258996608627505654048964098876165814544202253608933429599628124179373076225921853079503525201823803952279761772633288426728097708816215674677899303008616595278134526940218455877098283793273414823526842784153839399099967963746635973969066196095645638517488850840161480777308812159596442109204586456918968214632132075386639057931065807204632638617020535257256223932695274163977319444809925981185251191299622680631938961802939910205415665128211698074700071531497752674274521041468056742217279723932578766715567495511730499067746962106973618020527303988638389147738871150694278601228056077250958776023267847830705861306783787133123941756831596586007183168473193116066258164758047488406103410111123261074530979335898583892622763199762490079255998900210860959316542879447373286715577822369475770165073110991128114759656840305945659652258631483183423650711741487640780571718148923032360294522413515098137950747039135379941932506150276647942149994641825949355321247729158401282330289600524265145768817211838481026202538463635992185539523514280764766257007306913571884310281026276459287989910286422034297783251924162739595421488964191928847224103813517467227538300980662245730709422488370817300462680950449641129920127433502125520493510455869203196899848268205454876178637395840446660667527736761888097017874362685277933881379042806719442022152637822622148969796072660808146838881046658418208125744753940464410459976171935983553466682588645354886342276842409411291485746664021300215642959891964479346758896283443981458138052682065869292585775537308601326968665505794705928632516124422383936929961857721256196776137491810422652854543014551514044125094106136131604654079490133899739557970268493792081628884636953793609601469957924123377999175692914806153611546773048399773517085074829627216302946411019204906252013729538070346921239203930762257876419846861460535797586390757696069122773346911078738636829325039566704452885690351938050917055868523924892788335307340379623335557640487473976955652270734190097549351602119282122571743113215022909688179707975437386095241450769759174498885417018503644103687867551394145365786350934749731202933277705193064933095661259862231589574265125673939237144836891929226249519241847790610496951093879943347061796200932224040925643150711369454278275819388237680495998781620222268176800623323989760782933118144123722114104030063359193816421113762536043843571593957482552456280509971372809012548569339187802092915965472469359585284908209511721153956227309873777954839497433366748712169496509550788141359857170301497266763033412332321199397698260369791828718361357476714259823259593991169897931652374187010017114565547058986720712783804564341977019197694149630025172035175904528261766809359421008882708284073976460430900206291990256894817251575248909245879684283762791157189693512999772772358542414032719371577578966577222919235660525133645230818863260643172683072322696438993213390057417872308306250785313769568573433873839933160905531740459682243458464723451647605580121799380695842880604204327849719547597827758310694756926013717477360968611745296899468772230701093930340650800175582828619528454977642914767277698524015835161825456839216589489875252186873169641261068155556879495881125474817152104065770866122308556559957036245944244156500296342375796095245510152034683564155879061366488617094858544896170819902110627103198044861727993344298468843917521144730352439580328621057200480231681449054294996530142365319256793719426952959815732593016785638878726900912412906312855634161488863223122531408207241168993926383912456378917465809348653035174654470977646353902677967314785353990750258285075889554328323735586759154095762402932248609840238352436239351814111403272391380034369892262334837821272514604013041079977829667309865040186031170491734494969323639238569338970088689210929918707618284857633949334418472073965662383594585246125974381227193782816032372991948119914679290392942237769670887285527490463416595371206672424263299963553107544778363300278635380971414098076578899709132917262726169433239392876917823719248839357722371455671034626041253963066105447214966762329657006872016652086219964654154461512026854880187388967169854779521751660786450080973888382761729442826445133040023743569471489309340253726099605024728286750628996801618182112347336707334925609046931782723378997806865044178457574232619015344571488629670281467916448249657060256834920053461657600429150485462332437433808768308782641116273666435725361383458246338872540850301787768735023945714865106986378350698688121352029598701496499517445586926948876919083603658068527966042684678299620900776531855094539371774991910564792790678412456618784201791094502617923122308059261963387906602530858195914571332827146159340015793503140350582617415671209166191801172446104414221524033666863967075527969616565098527847558734861139594919039126545163028288271962454925901094525195342477922306762451732226813363409780098677665282707714940011339168842654676197016600419462601098812241001774712897577437934661984932286542195785904852088962387099308514241250040657742782104131262094194139751937191789785623170897890660696897568769389045557149918148455804019767304417969388091808694777201506545454181834812209550716024541563106686761277691149512794778980525731587811310753867367657420186171760212071271886711200782164031469173243087518075117689574282096593936765799188505431236341114715735437231028229718231304249133069754105758204324274148909430997604166497975348270704027161732039994517609776358147280631753650896920519586037004957472703334908014622846859198357259839558147958111116220577667297434173955670949134921536788541021920551192560531450823361762160296176564345557801528985019388536199518743141328117167657052093639266786319903000939758811287787711209497265707820732933246609261560754172625596294282947899685613096416490929116159231751947412589656186614766274290738806024890276626932488506291658044917304461162955105164394001626336532602134734534552184441513393255033722484203779007488268147029174340467450535054566560145694899949601358130328489580018173570598635301739768909187674149985283038346186732602491175366082060900341793497534235679895532156637920362008129613975698608398286852081059941581008169995003688005540658817904213592687015664335129474962904750672507429819426685750439199612341101766877109289985952120724755163992596958885191517962376603310657145824050056856063416262351206107264556528217584607574009404203230209272453699375337915622589580120344517008445709839706762423164943745703908301965504633801494006962394949204617853478695779403440836805015722529006314225804838107554647762287885541480971637237739566439349586332167818002163291118322993627312656662910872930848510502498302816386020541662343725764089823857493656993579878269713406223559073330621059236053175585466163625227469556199284603257557853656565504093613073215516103677672323694125405363659619158396122381288825126170200471430272428636308234872792109789229854447534440581183814392552975826337436464874075322022162530911859003408013577305854976237120610131102835125460275025554616297575545018562909794469385560783267705931352747682106158223427979003693194246807391205743874179177050858642582324256758509602521556040872768088264257394907864477201119811101609769490125999366379636492249231344827224150529558433528487418234026835739005965366261019487748556529032527786328258168473400882842106870358836317796921098246507319591607446005681419421135777161453965954860420718726861857963322347597564657381953707754516562049675691554354872846935178612026762565031303178444223882830395890441719209342383772481147440676442282855351875860524404636339465787437637512081788601167698813156701461460591521571489409640116512370355456501404229211919397975630434722721075754761141437683874906178125806817144255590637972853352373397103689416366421890732335075704165160576399844247700536211689858206897306014912474203866169219699140561563502501969315177686566374608988489155562291820469255414231505724168354123734658503039780428531583085694087764026726806012756952250879659499726233216956662757269219819108832856185371962805077451430824383948485064815641785266027559034281274892800918105453675622839229998273003982639875611266949142049836001198497669691875917166915457388208215142546203220087718247614847623295276379705255018747970075988017779654854470416805748387415984901236863471736478881021238308521772624036544836584777629188361783917125351474413964646659967371482304449661477713415123975414535368377644402489272346767725435116879152288096836078282589529059772458299153724874446500592063860396816996797505111924603904565740767681438283634041773948304375839251866075434997362220518732582136741521903576305439731305953547947937497978200125995961780469075712414236840675989345613304274740055417354628888489368711737975264355473587447057961387434480953983814930195307738789412667087487521439134604026359598658281555037328150572165545028087379899542895687574556714044116057963708123743138449886754115320861341131300105386532835059547978319693826091219769485425501524170064341565858827611320345074140007497613901145784627886923766326947560896690728429415185267504504362073817902896609782012515031062406709491499795077519929648825297158957127937135141954444837799881791769982998501332443344239945013017034005350707301588968386174402064871564692977255507126618158538058061440703299029756175527751290635332373002224872069063855822914509558311316699574256075526011153257552033247154624967551044374522596694271999162115104138850961523781315151905652627244154635894111597783017455593153085551485916032734583808017639461583024908511976589158980469776127460459497116471409027924222862630848960840689659338379879420735629537083820789547167742869044756819988145648511617255669382917787485599383942043081100298258177426048513629856172064148864750235394488704772822928904924342157038697858005996030337511422167598097108290388972983669708371411709711873343735249563785231317830056925045811202943237922612454220823413834744084866447841836192444084138489764046332830011976682374916870864669255498512002615191112133152334680978559336877010900299271162984542731493498333410669917931167074624459564900014756282259275479938508898341852627109003075120906754092673172595709232576209528836102755568085205965745104759245866529329875055569266078492396352967334988826502034351372647681018783040398172722264863842900943759530839454925050545203266785288252443257154614658839992026772999925860333862055684392908007889996469560247438915732450248783252314874034750497850914462121163569872955669227335091220572921381583729378159974761442834346544727002441353565483007003412494494742841299605715680427230683718284620390666229016837578581436832962634968846434858894409586220911447443622575584131267689301119331865154169350866677903865235893324423668990271681134754025969081649606758174408532983154370869870683416266256749459361797337764534022927037871748063802766747800764828428511752699624558798867914349578063010006047156408438457567111058615632080468688861789059299089472955946234473800242069313558724617646944489188856411152270704859815743293294111498717489076443454488934570723590879692660325711650161886420256338846520699292936076791615276323282333931870959752812056816560984222348659728379983491699523554462525481436594862345236384035740788108650369614092110116180516090154904770780375783893514538926054447139192850101633196844913717528563016197925082741861402512510056684528688430487248213446175208955826329270164352757523773903424704796356157944927926554937893044579513992467819074164081811617870240953860916915858579341888137248080136075531611240689248925531596624790549214723809111765075399896072796139857475217465370406801065066061004113752336049531518883138888495672288753999276937942848540606258369473723740698660187237006854280593001936970691401573360952820073251758308904095527109973045179944543001927176325482281825133649026890435380153518734731415434777712939632359415290513068502533665333094443461562239983455389712294396013170168970343709874486138016359637241263449128392926479255299918144437485907349447818817795614443831549444938945580467679464304227761480637784948681110545270308384168926529128435092639781722643347113081417253172529878353457897270699167630221971242401669191832989544826379791337218710727526826654523595364028594280790825879545834057646559466254046717335976259779175645867466138912033148317794621889088306633393218603826019498199176729324039608396180472220639154061344694412770488724060108389161883964389586734923265838099383801824373831817432395601018820724036036004446040996325625152598208761535451429002948370671432018958996152308343009751253260691985466717070364363395131297934476818248364392607712293881222246489023206540190092873826247408174502795213706342187241637032247845802449574481791610393969894040513772572340450055143274836389661706751866542269311647662146987565545535065621761729186495043771860620352881137074269053876714927250733201262510741949209617209619327843592481052037785624164890282305063144995218410462337326695290795593013092593481404895580635069977338683663186309709465653373439333309997287845874673288365725662312996291980442706559431282225826299362194715346582411777363424158749062534117377508405117092668889029457663657690537652234050734712261166482636359016550556613821643578388561267008547232961625305618378486491356422026414470556407370671662075428985512625695650330518661394909086692466965570945844576724087460411452705023901908357038891468584422293829073677141298008713223771908514885178830902910010784171103869648750299800728583088072850334060183835984055683400142804482075929796757234953834216915848242331540624784737726881337319511132412243068221785640455016537464802872228627186372599125719885913552652959058332041373026784730047298420890464164720215023776002581750009892734714736118968908742455181136999486591991949684054086263111892211260509867756726742721871003664117570087904056050533094423857619381698879692861130350207566618020459648275248213403778929239384803619027057134819504718293263583495246403020426676297510662357654071938650418087441448943293706910238588323436532408592494795033582278708965893976091781123436474146017107785131278247568712294522545160540012208251446700995355496053096614690511980800495165360433777476411038843817379545977944403468625551730592368217215985855615381754411533873256003833980154792708854400938015952052556808063127200681571287352232335551175023746029617146036473527286370368035570986386999509304010925204683811184116999230114107105834383089191884103198602815632800973938362684500427774189917532995911218463194256848315500968668942473737198396201611666870656920056855474899132166123392299825605375700293074692386955192153347410299436700161200758099499359021384063713622466590157212560665571430417978167583688675818913715019152405962834464717858046836423891893632939139177703099701114536367521281441508816668537180848091476184387058352246335796705919396976029321786659172371480280992216036735067759049473843634381412873662714536150952675087511949453955134945746131296710587204191700063193408816034846208060936388228578549539741057613736130525151957990997000648668468343742859039848451941129029483302464868761587190237598036971012133557011101039427396081331827580137920374512459239575913473864646402167041296763183470243661276306940021653939706071009111034559947448198898447987302379668485632308042437393853733706559977425326069031861337876734161530139439703032102108210523425033695553506789622758541827794359369084475718436325360234470844430509924259548864270262578460574508143050963716033548441057170052109296101793741077478355302258130940366304948552435390745207089422809436773487965400858870055951454742095316066471002273296133300129379357917103269284306090559552733976295784632332735891792123542375160638735983561431430979220553988079592938928214909536256233634407692535996790617619140127997065124305372945278874476161477063899319908253914692791707372842317607682364288303695902818741414760495855928230511549340112265866379683254148241019013827069418331642349130546070369694793565744129213890262933736632708109547071029171930757038665502268618856458804654272410678874391626676512548357157741744414285278838576605713229783142696278296437892139006574455942497015094241878065759271996556021542590012420098747886695361128865958646449522626161836329148069410695033081102616977247757208192315041855857335632724027630306174094997214091070027970423369707502378141095285566817930179685880146840799794904554372698453000994829861084271228500326995104839593973383693696078184939864664380669544902962438874604060890561361236438169611504110782896611052205143214684586295706702606514815024289866407695703238985010566852836996107932266518247527168180440792017237180786520514464320807510059260429632019320329397154326735350451466616210899574105940456411511149476251594093044588294193337283645525169060210731450228618294575169875882627370949458973961063683539063397376289697393008010567624656789673351680030289046054810026527568447371258743414054417404711312906563272175017919047394009954008300263605619119516366080397954935036118156398734036884501856493628781817491482045951309011145864781768129072185009686794222140388012125813736971793488265691309820873808990866606987747901128033547143498233827333785002545969140271705038872633693426613522042306095167538098963151829912718073031933744673389312402586345899823152778638395546533533958948328082139583572299961713478798096497733185024778171422017678950444539468872766183968187243363853924630659442318642713307032881410922334200191820026957643108661559416882766227374270096628742733485736347512312263218576699288600120143007335333538548676455961511117691671918231105254986199416464522137459671921642547659566075947010604691961251446058813121236171265690783667104275059824767155359280796256817307516826342658336973721765202455393780301743806187002932831593787812752376789032328360599549234493911402317042743615538479721483814387307674309183285827788735975509910768100367160170846164082341929880879647346943770300825870418895345057658425741857787671783997964095048510557946314466962590371362492278481437647962509344428037806763017771258719208711434332076370000250060999845818662696977907516893401288224736327476695600565781532290161508621292870419530101845447435312358934141821891544753482712190084955350312572875014066606286033722615244659015227035079891664738579391357473065956437075436745936542822711069563064559979748873991713737242559945417543381636836094405645133463429228735249439899860656150582935228956077209725754016318708811450009266589869005345751622307094871949145619165496296588078698027140628642565067082066240063054512252154606376558706375925661440746125627574970145328329626976984072153608668739081999126353833380181000663094305398067920754311874891605107763672226552154892670909371244569777248854173204220782568063872342911160216727324042581821656417705106213681841151689889694074999315186253834946453759835330569711193326915359222420215478821140762140273700156749852550766035054760316208906213821983294812800267647621644405314417119140774282305121624784671876046366280468900849447539946043080072191309676009788723088722744971921029085833886694584097705877160029647832856925060624908838415923477591728873363476901916885290234158702687554543070158692291674018911966542890119494942472258747505471612305333323362458412899684541157496468118659073261664065982025373182292301236723324583544987910420202117635612140779190573261662225238611012705852251557057415994428535418159529536282271248801916895928794116765797412656250465348416724824042495942081016736952188358868313243847891741494056233442890817233679786527859188545290916650874055092706829235366099465325809898046737886879564940603118539599356171620213992431138350584116652271477826526259126147881751560234077413906705943645659842778190359271960758513152913282233187100962862525801824995230797484908836392852362368120316925429044712903958631080837610235975471632219791442556863493548567824456691217710990935165424465108543924953266872004250837939695617601931991455247084598291364662068559855605184536615328536488504284583174046013760626702526884423359664715879384832404468183199675396200602295038467417888335786928512983811676832152138319045820145560141659851919489830442716389351880083332983639037197554705084606566431599728079636343227715716793732065353717702788211523152533130683502102011292798788833969765468731381892238981583169403926418727191751066743672786452239316676775830233676529698781811611849277489435762111298899629872979942654173022932190428997795337708207144261280631547899426392459886751113093817620542381622041419657948587446866397156923003801171416262866451205849643958554960731993302271189588480869520137224881137557796597533977586113825054101574719423496708478802679234595548248024101677063575348839170437113743075095499818774101015731940043427906723561742192516194898209749513535857646207881108785245869357055089315120818326434546546220711054105236824430598668349628482243682540928485407121280959560682872869602936672027834131707090563039828889657730648238840923352011383983647204474322017642255644134833231352801470874801752659261893531276893549606414261008591916225614845714759353912462669476221331961407455190676005582278451574548452553429562003144926842394789217923207821228210740067377661622713649962852150171200903782474304148770455758306353181325951560030872111911861496239793606682509510913652761737205603499784291216541673109507484229767773744890241283962619656339244230268481284998497725364533924967444334261708947069038928922458615953803443375476098935820905278003746517317794734391049911306486926491008297024430032432242473049665966334870788061937609150174638799107449515872495661109920515117571465229806197739359280841393009701428942286395297722446625680236323995775412723405293882917612071784497325596332392386945400122521784896675643866994649925194649038937501302213575511684172883500347362982862548952310928261120669596011070159082214158001814443542197953599386769648414848178245514156477513272916783518860570508516967527364597834837585491543565889352998161633002194189384593918206019366410108666283561760727025245879723934205101533608500532386434660062449040711941632563575400566634079975080434804990723784084895962303143035830323257125080913025362286451892966475931598510049786226278550917682654581074458866851873246640204333816869725498719587676399977859614024710199634995694523124704758892331336076138698515225080254739189435924586774965991742637258897927376320879573881014583283194866647065083669862492898541107804437976168060359934694882889035029971720695649911384174403809755183301958641716728515023978321085001334400650617087397745104842528534944387018954738816002376161096857761522545245021196022418325118556704863671905689642636095173380956921616878959254418870745450242348490890296349040510796910149302240120834981655846979964652325915432307487217785345907718164909354981003701634258545158814138208665371872202696823899090870243316924976153198737570769074308416855873917282783667157746609239181280382153140656374212363654234463542568974445480881667720198715332968459419465020335585791511283705161387617711036911375245848133831799509854790216979830422364570730169198275889494471820834255866982568093336034311632932131483425882453521571945783271996530337713821795858865398809061169247571957015093794650054268203115797587594913662337243377022403065765155136888544918844587703203159537597237981868304973215194074071660797047976005439259746509331025974771392309639272442479854195683402762085491988582784311656669310424747762551671773458535781717133008810623758184769609332779669324307531460628176805030658008302287842740681614656706054168001863343959938983143942480968474619518875925147474340219886946911747876084994017623286041847629809105572277206548053079160698711500699317250175463705116033242914596834316394975999514571499313622785358387626375570664997908346398870960685769367744790679571084372642864502007677662917502184832654282664278964465765095438185463987610703116786945357909101404173877593656690872215699721422600287669746875195644611603442587064536601522302305159488723289036702559117205147323403116382590441373940000747115362865951760730281494079549266662080444770812633750788473324924893354017009153944291083360554532716662392005884052191665044725588258541089722810082626758905559314116106359222143583605069162480706731910709523232847886516839793205783298687085763894944001428378879735721623092789340107291141794244582582887468169834547392041557015914057716405235802050611475105958313181900649838720861225734029680178515598347571792901702162461841361007775437723177313015111448226229978396595924191626816820572377309910470817792571058504297855529277471679536721552585061727112693080646121617173976548414768727836857559800494243361036566568187052851654911279344742612721301952491383995766705943337635737564442445877086759774480531377124174392179306563893044314091484306703723659645234792945244589624667995032156612196372797772705079330282024638616962696115253960892166881818437523258435983011956563177467744864881963575254017381685307220340670574170135926684586083248264244404821068346275981236772613823422658416672433625835782779864673896675397540668256494492440124022222103091891718737085860706829698232484223280593145148605436455770921681366750809435496137093502353426680016033783114104928191506756137860507279562331432270639827061817274847175584432845487289053967100460779011837406408144271422100950507514016833904942254266102945672994566116435735580414722393373493360481162556235616753276943907884538588911406782876598816945702437143883299746633372419519156170640663428751704808934486202899840282190582311376415676645538125027708135464819216289243821927325272659148342364858137484813510014431809986078854570012965805937545666866300614370717101344138118642143471839099288037460762240341354760090668236552515257138748666597210576609434869236409031608937390785628957709102007477599699554640841879888193531161331423687257526917704854010782739139515081804133307077027481043938419016123588388008681296513337484883913564215927732930118919422721746240653133104465652579478612883159726857428517038017173738240219774273311087816455195805239599890180663661142301048019012721944677166265489667124888163063494508176733412449740318274058976932236897917282502031759795523612734181852191022290572518103551451351737242595073981344255582494168475744436975867544710317786492028716098802476954433546051706375008756513866399908454984279957930143579376603008147894923255422046565979249999747838139475173111718549310173283896226314185931713563718569937216010691627904071496193131135804517292099151824467109510758794886994750762670847187354082191423296874990901661378348046280841520396906674546436219799921665453655893202644056522477176425108759021178351142468375670459984520518976955147985487557479402640535123065029780987640597658633646261290558416389982493705043579024710718196057434568013697509882436208617357929681237689273999128783803109826325538238669270346334637265583553946349269281750780546457905232098750187044513654352956303839348724937045446381124887492585477337857280743135265368142952230626150284269410078501857194714986582301826725387077829650179376444663307735280700063584116732929454058652995454725884909055211886518809178152547053034910664686639033711699204253999307042297620687287501525191829076309940268009961072174547805546592949155468362448385022468012840746995571814926647490691451902596735458022885757469534770179609041673697028961235296369059163289772031695367480664739603091860200944680842410550367727201952748080048185788731179682196352765073458328841284261177133901991798837612534218623049811250951637175339910220404107422833143009973326707527087532412169870487746998338989309071525198421620608747888489146506220709039766389262950079614389548993752529424596305897637744064408973400512968287125411635741511721555004969841333247197930622696665698690439207689131496255700055606422855040443790431656506478719664785699899818349479268873435098289996777453938169369596242352142564264058408623732017061672030000035318606795253961050373995058545146440256756452486881873028061840057064525339011403029278184752224805329281045901296406300102232159885626073750290894088952606263361492633216352855829862294690910516298494299813988439413649662378585547277026627139373783907551854988627887704302650140160629826230143530637434480202647719519347826147295070501103682986709153100066685008301352638161932525878781434338783936688476206144352397438119783299013318688457262525724191943155244466221003713657857181596750323217603504963012221820275694357256399269591050906470258023095155394659332238518627587540138224906049558081438647559330718347646910284891031820541315036914242110228473331339611140193384763248663441884216477280933831991817543564111356489412065569569513762526798675904041164137484847154601127195190518184979836251589399336486379220775758369192616692894059639940356977327625769848081286559364611137659341995360591239900585844967842996639870711851097592237227966497432774734268494651942732297306764648984861396527559981799563054871650871122597853931299177640273363408180828450960379049246442643617615586340059772961912356874778177840251301078072831592956960767741002573205441716361605902581994878482579183483973883811548168344809844222464844416060831422310949458758266994306101878178962957886950577596711536975483097513306623283650471508685270389634363267667392465804919348925132225657315995956437621652557687153765651900117083100793326099232954064007936194492936157511584206229383972415898493021718152367584316245783877177043228733799046697198769907946416343925916104338208565692346768458625464480561560911324026266349636309321267550226154031940017837047764868410155892405218465624154141514035334111257648370300874974467903377714439967225601524802761584770989089330281424287453661362114653095940102462822285388073882637097574380717582936191496034210694489458813742444953064919719268697418635083281968496418035416044020718917107464097531614541371193707285663646503540111291387791187992713135175930631945536385763367110391397508930103786208357693934889901700336029258319012243511296374877074288486446611469961070449049094602655383639786633008800594868699653830390053698301881303670656919433181750691368492400410306573830929582674908573605470429504774859749310891646693771818012545296930963521895420465627903484640260348101802799278450089145201601439663590950370115983233952104888642670266672997390325085528281109523677763239176694128116147252256310055690927368408035803585589085181165032862257505420846149026560767218697350801604009596957250847195374746154872916870063509632434478349409914631172834722724522349510346412206675099147005039269944133988475213545527968819552395287990996189103795158140293718671281297244960365038821729411714985748969369827431087848128124344140601067623215450379423396822983152157523409076130240728535255043547321168483846576497445085791864866345413429028373520799652058068967099293348466216837260681328089711275473215193146865494316671509176962224885014284673281727416708996539619417976209260759396282185514887889339978050761034192633214657514426524590492330482532516028638704206573433775351139590344563161759956957712682675948655932311358317227081935918941412419152655768713213488048523077503052493672914895783151958186766000909900804369829875768727560220276982047906288107102979209624394082070690242868845817924911433356995321083171937534326472534473114764337863638258315272091792106597644575508270180560489398239914334291356441671012180310154697860253129273145298151094892394166924623601629507876075574642828996570477858934259910088518657345362299265414253706486986043477046359581010128314970074098473361432379551583199895727997082157489264425238512204012600855894295064253896334743334659219099087481435548132581048456349070153398836780459850734564471062796965015763260144604918995637713399894870374795630905558946273474101965348180531225473083051533435866166159468565559874949728153000076299699581581109128538998909554789474021000148966175320294454556789189365645111773402570891676915272865427041725837003373019598372792849846639639133828695346374161088337186705574635551591309583285954095528399386371078104483072087425196224801651196899980586499628773871253599511296484904727695647084063411972788063039681125727906160108307837429710410674152971855271843814569430648584748693473210154176757778590677961950195238362050920185871234096756031273079107312105913822179860116768324479447248154055758188042528966709808156743755438089481991765879265849893074954562406343362933694838589417370707075479723978835098251692460278258286202759502201216920739897723766631978553894897596054989385965959218207926347554290875832626620807665508521216673311547782293447640507667429314787703582136402397745243128872701180597900274000508296033728465323070567718954448511232867238006540490001367649385673294005882265433945006315899260211958356205244910822289507575957702219167988442510520689592629112607962264780779772275907854720138916482094185657087640636974933184069330286297215450292835170471449121659233901210858670290640427940900186472857784823182111370836200346005820379017702961474437634301487940427430437978535289046891465914094884735989145178395256953170827494773417472792945764396224714103512313588133004380539000778289424415749733104824225657204466569292698904447934066175877300480031632823142870001404609705892543610535036083105439911064126821639730898733273208550231877904838601394940134515442217494926537365473457880890817809054577855090800792964008678913161922417562170546040288392479645790848197907216407002005391967413529240054620716369183071349351851016441502768676218354135721577694973450426955461913230813364091801839291148293110840415198461358409243879055501748142271260089307656662478839888212126261160780585875827652966484620587249235645889212748419288282906371213087949731258604142897969860918715387804952193155493130657955779837386043791037541183860968324570848605890142797623375853098294172915144051564706962552429906441334824015016393833631631606761965595121258989840176152436700129769298758388416494409643349543748333307138252768628239325463867242108005685434840789852815190844145529237117081889105101467630773536297401373045842516972011262203678740988727308197459917069358277511513766669846638957887398752416066594152937282728179805102458068871680866224417808345220787910350380720231549478239433716192762398200011590034527461485253973269690721310633807115665885364437636385592728094176978125489079087242472626054455137150431689997783501504514331489937947959212663465351201476097737900289227700217178241637402903258621274444809340039882253399368538697187611077701432011352106054732671373478576581939279123622820574273701052632839472497431516830792662331452749425701516449855158182017296848428730899700997912304365796323149928848367007643476112730212798405832940061259987880759942705864147474144881576634986926184129819456214590959793879984511082020676051989169620406127890549532580549410776417046733170008236674279125525609474720563031164456279861103635189001207352236967821809572363718507433917788579352993098264450844872545942379473429709283834428201843672514438926059328611551628948524804479271743776580189899565450949392165754661175845567982758408194610798937934250201024752560856293048283602677156043062416225723068643676855101486519652633613043969370064700400381161509895912789395218379082384966458990896144150496670225174608858502331714559387169287442245035328881990034281421801200506533926516620485813395544137294748022596310135698386010176552639625928750864282369616366167927791994159468262668523604285699215697177313128884842918833313244384147424117533634139384684775877225144332794719104873046802037946225762490400910774665318210159979386076438612239066883683672691344295859067234364511615492051493977596019396472977042893714801296152915073794419715000636541543166753352372983257145596994196099111527828883205691345663332041559634997923095809321345135629527568973506129797657795091284453724846030872164483285477350051031462094804980686294386312674417575028800940245374484959160602481153379943711465098744646330651311993511682775155127785174714733912696025709529985547996383948923266500735667596303153148842699453790885080155624367751854353618235221858278383287410707870179678457977313192238379630279358102178341421099856042533696626000403995703753187258684771591512824759069889370670502090846675123916185323712176070995856090028669042041501249426795943239102217249724563331470893163927541406969610981770107258362102877771978715512159331980753347241936562992797431389787493093065008700213105574277820635792871885131268642103089417580221666086432245761606402071472279021890473573650000240997915833354801019470223652544947305486546569430682047549649224065019267610016816069157402232521949037514880986353049991361043453679746190858109718755756535308239427738148725396840920961918249199930390810828702283823720028631272682260228986641617447932364257622181556369873660012538360006328665219637420515464977424877856417134721503387843936478101057800613570852963760467692662549055271860236606657288137955323791626012440330765873744964745999895958122007976197435406768260219530639636291175633409779246121617083984490356818140926731065801127859637118683363688383286745134511342971924764514858516572050823039960046608242971711532135899385100368252359644862926361054957712124763250539137575422553049545968307595117234655150254081745369569973111604406028929678070101923288030483791868104440939958309802828430887120398930509442362384684618980517938572301063239006373557945035969359584766526778900068644067546847830358337016901023765779056176031289981453282445031122804304614321031040558329854153547257030412780770596688718887981742127272881740190034088499360497385930831913650623280048739273181288223240932798636854051724765336946287464458272713783165592136567752426646733696768043991516278450494916770832055475131493948002670577872315066555221329072548202863854880449523730605671904600531220401294929563832218418897546780148187258169796991866067396352996676193582072658192563095133816051809952370119362809566769617710537171785057652757811698123351031092572161127381942593180703705214631793118372315405911315645282903467765860307360497122658681870808137706286478634663206693862485718544239247859419891995715906906290317856327927603448491311749379034690986635261149177119834321873591191509379763014527728627077429330555777155670909341647305917822434812135324036639879298364618321889103143424580748070442465330775514422974904105807220183901541441607025648092175379202038846701202936161028586876535776367703517571619777398433683970622893420201123034510430464952715211174216855697032097520305883252317794564260892110116055838963004487557430805603005119432384374936130244352400149997614911393871396796510336431099146171177587716808565619627056454082036703283431290534686505671141926300739057433239198577864535873052336695753564771665674539454953122452242689332245529920311004393146094163769376427476853969367981143160607599041061962805258103350034741267182470583850833810285367552390130825653127642862746279277139515709983043186428092357671089880774964653936946458885421690414281994379872226048247591195419961372254653891600508746308486454620925691262800688918400654491293367621266046592474193199578501977048371035383606424736403753258926209203323910622582390547824935073648271099021857006295420703265243896356276285977950561940319129982565157978919009827793782017036020576948829816920311772993245428612350262567926972950847193496850546918889877861027592965243658372494604683128163217283389234572837904061707292360077521240631502948548841126743447191360372251370675550121161983302910912123831067841923182739453896349191698620919496972913168494969051638163965561131851451549687737593412252959601240526556830759110355688659468087365665869719523710562545819604924691355739406829430361852358685049884245248988381578187754245590897317608827614206381185864063808558024884236086333642819109816223445879973677099941579816339514586384584395071229240942454827162912289219603612398415353862488474194197653409331888503276839946773554524260855475180871287089883574874347627290758402669921034217124011457535759553643042113730280970647804455914818375277493046344369087846083411020325676790733903824400204017812980697329351309077360573263289115051039358194961443223576680898722908015712866171189466727423832974350216511829429197648733495176693149497182410118483809442981576892217494021467952525384356780348519106840148833610434848054991095349078363905677646302766045316000154406468870436671016392193586533011379494293824510969413505381607988919627204987854758128916397345239653039852930382197202135300471417419981653786894428413272693367808411187206925789485308816591593528238339282602326850024505499317560725348605071485941040808388484006169233337669307321884686166284289533565242387233301456528230739745012902968932912641450291580855401339002497978715689780243201749694692827954039193574892192483070537830506055021938275144944812252384829976965225562408353629794111220155215139678735356261715993674013900589469376784477026181443259985770228236643320566989324717104574759808969277865013904487785849653588899227510489779927300541394683809927667779514371554827134657645198910236620441875610843637062819156037019499152765426381691712533196886015524803873668646543202120735369419500795665083700945978346655452541006357568324142054458111565044778552046908457260915655527685848647217894517506208708117611410473091465305519614933716264349073840339828482446643843041931868667165278114507196528696713288288530420694493738864877584788659028188089439223138541786411797777813568792957056806045086916008189086130954340876495209444264480748856349280218301906962843600679589200600438028005728774608780343712535131166877221905717939644868985108366267889827542189874453445412960295465454767942576369832488757991592957617903464580883851179235417142584041419141468552003612066561096649722070778794056159245818087352943398686399592274436478476553928424072743439397812818954367559702324378775044509398854677773042968960913109195861129838379481031166618511385869859878627214282989812888717447792590563514685086419971485421622837514169204315849980841953828968918466736497548609397181888514551440264143100144434947351945623350182542973805902667676997088468223045228008957359261163233171100646076322600242589549788916091989540373344244470611787247136097015317335466214507104935600445077475844576094315742018831560874077337662754421278827002314965400129465461810558057780645171049052804671175500304362998236146229634738961378958451212842100668955989013556997358795560509791836101847370467758237193686041281566425636737812938797834482084817092749744668837156683923893409021369687256245541196477902736759640318102311379293429545163831062019486734912206123411353908761715466502107393851664386768454332330719007393570297500239157677725731410017148154930688520086462582922542536417305006073304966912797130312903696907747835894686809272443295910193423416473693505522091360836264445934777339454114681802990776944592605959103391655495275182799647504189852181817280493613236765789092779003744364329727720601325677471538878183657391463921894828135060033846007808535727012303869630658860913470487918366546398069022518551953593860316149319552671400491512284386892668460416684041849245444338701660031676568927385249564275817498792980505838053152543842224643360325723428240151943421184736951073853458671475073318570494045359111314987436691577215954301046578534668296946803622307728894749754156683973298679621223686433819495155434211538858240225722010063891208387440049174600784270724409550544659576722457538627081090461207846549209478653808734414496081515372572565253089609901793247734575529980708760962940277271322631103969797756618123145064823527674051479457445371233821153454564236446069680170147806174035476452689244890551687427147695868435993846556623708422285764121702931469676996587968870191547576971442211813236328833806866232532215613488712701183737173376894617615629551036823747944462521526939481858347952951330578580966864181031135161270615583917232535261311939937292864098469466788071807578264758716210909263681661914651057427010722361663567629316652756776845032844499493369637307224229787072302948910787111775422231484278543831568475146884846498817158429437470882517132755370173531521316813845032121904586194171100651623750508522589519102609322351429648031320253941624322693336887063197415985768334407746645626960797984238122472824307859061934532187081939686670697857540331298676628055295178037793323002907368702935470565370553420607615408378123823401720931659597997172434187258912896956361174109956255907220355173662159811116686722844851936358797632346659686693031981476323095539305493271863004233157033357856922478129040850465075233309898405773546465218384406424322662547422567633350039092197880579381231473181348142421704849206191731674320388103440351723557954656389676683636461001150553170729675970054781698936246338144347278791405024666457845872808073490639537302957975844096697978787379375774233707213256374372163425536449089496801190859655690544440446820995631608679568796827578110766072496119759067916601337936551033039712773441721757023521350865304939488235042381925384318752657369370258160687063192971303064770013988031587112863326606408383076276009223508970413238733837723362656084817595278328322826122988599526300405928965934236367403561012836229294236775507152317837019688184486029568070065034050031506019000779517851131142182355993839970419486299920808751723104107910794613650812778718621772272276812371658252221017044830210120018652578318106043605405317184332323594098512604439538855844455447958814290553696870168689994192884012048290218381752236040360513840401231643739229868608490789629850604665005437796974791907516493637768903046894090465626117350779175152206689699169669019343273544122256141992664708831106853604922503239087968258831458866342718099137283267479215142977283760271268245482638051035782266409627788755525138089691951615621147481741193389601003538586196437908382536592112167147697129435148930766249955689873152425990277867184364599443727873286648430477979519353858364898996050288832507458484265677231434714349204506556358865304653424488584722211199554200834703816697658211216342584821308341207277900977651437384195060011763034408242995395221743768699734634932195891677806733104412044800588455809960420668976937532586067025877016367946979400652513574799786825437033501883987214918654705190955705742980473926928235482617546963117407278717087474202308066370341056932319041282803589512112292222943708901347621073809276922506046089568051817614523254930342207085409373027679571878632950772135943256681187333013638011827523821762963432053152716215547416175671820508557704977276154296132683863982058405651108249655437142172410811178978737100168852201085897797577141744752104469540160219114815700328192742806213930797517924119571667820128330938761695284347680208399974131312616028466054435047366160916002690332533891712153674371426225089988487101761192363367066589169126139120053595923047809176669545117998393865380560974982798864578827286523402538457137229915368592880607507021490358558855704505524495255511526580637848610552882662848365730666971687242660667641935255270164541747204762650558060399110844080203259778946889229945578352503454661626355766220921664228478683784040912915469877890935278436440286735269120900573762970299217814289615164609805835439221146769284083429042044093616141094676050245012696410738324784098514238816759339552720922289554918047380901838153029146663706377418496679104300700552016679731733262401792854917508944596223281454406464211091355230334636120822216084933968703829601061705265404585425416188691251728847540252433493687805160199632704967095988881133842282661044874101886481577066154523075217250931318279961988164029420391172280170371746994037737331296789735778582412994862010940951031736994890282485604370581199022588135239257584567655982237283158149106001456553147463418432203097412550015144239070098378046256940519286857179832937610482659097110899807076979898587334690147894860047704345156149976716912456166585933968679106488964754217966977825989503541077217558576635670383751706263369329827867542987570312949448249537868856945317895055148958477586988248750720276467618385046068065309079593681587370477358600248505842536793395830397294844221056508984549523204695214561580876200097606101989832193109282719879304480156601967913749247266203387558091647551278319401850421246881515999822772663279991647256871750662138795698821422511454692143218590551781588306063910120772851088499942045658527920534958952195081819219467803592674681843434562902194237375199619649426348896836086801714165864508674547961881962321332409278487969084717743040313778523227891256614292610037588397153045928948855471643523618463967089568834842737794969923584642813961854169941226282117696549272825471191817702652953608567016476275293807823402794130780919338629277929233409974627520058670877681405653076719969412956193374903670806199629256604026036505994998418121565445128910211235456269049155994782070985548710958623224927805893507102319685636649000452025911726774467605285767228819606174427663562132130446033801889993455552955320800647484145062610993172041418960221818571827751658492265933522803471206002120809720114647254661384701148032688767230560359755295786784067906477010712399330054746634017906345033955358633919829696689713675871000719551141804870080598953481231214817205922295949072931553891931646608934287058619675160890022929458917317446759804624718908598204349412385601909389654378422082604306461774413447449502613093162654360473056654785689727359784770379916326256754491933041854584095198771305518918893225800638141749903474523142193663229881019735051759700213388893826264404153217762542304508668127533009828891348081026545087287002037113893950113957315581879451522071348739558102686408585784932479262407789796899435353905342991035959941748212880006988615332940878589110980541298606771363088998486338849629733235127301694582281258794616070264958079720848981626273022873843875479687554043317209032019773674944309323266898374938867088732524841478760835707412667969483441668315462338525746431708055186685681511904272488026116166202194436700321263403521557362655386303521862797063998766608141748473807515334476519404482537918701958730488332218622425291141192985622563043376315788066552703568186941037176441979050333272984337171712902678957030134277315493644598531847849108401121251282741790371743863948645756628651945643824715810662386079599999338664545245925445801936156831123463368618264585908246354170660705995306372216530515709422483814749775248000853845112445677063529615934613415928399968209928285118304556082605476915379482757875773184473692958347185514609690551447217204566382343512025237927991005282884639937644813314646241913527201649841960498362586126320719578144381016216708405818485670845349528350374580827540562534379398363064029150379096205284794342686684694585035954753349826807003912149518091484021638320184583860569717927747229274604232908090976132002195838893447014855765753966559506514118190208316763566653765882322327919307376145896039500288973120541705271830336638437818951081258739549785993990714220157413717101400292723101466216702907892954424528879413459174318647985498837721402880305975817092574554925867633521037150769488810306450172277967640069940440762790669987686050105132112811222899564256214162380223915052903874628647683324131203812552431586077855823982801639788489964423007163295423722312526426833911937693648991432957817944198569467263673195616727032418134951938677852589504462411940326976692034017717966366565586651552429199786159579085165050113226170554558014144703474470301627962635103027466242180895364335396520540501882377052135758934281233096041638249089379860312679782136200528675742734445806366374377097084732574469805969625107343060088616745613587048771122682959775275594489642346907737938446399262288980986774421947174143468900001965040429081417797605139820098179126530837784814848268517134145812627257306238616628159999259852923281356918019984672065571915647793786467766982965060122227746813536497816650710897370616290486733399776796728564681714730339806123121693721028903389926086675039485661413070992027986938419064316136899723968707901447145994832840068860555584928437764291995310836055649705299679978928876741166847443779418986151415786300837305753616365912871947542866193425494019030198049450819385103562649727356563855989833770388217656863595873067198518895138862385045653405691615960480850838850885297317985301712906589856048247314539667596278495066214888420192183332782512374837299092768184831104377616528217441773117807307320318341762311754510745599585224681501515258608224864149603301596872628242630349210913554033973353149637188988452820323438049636027612767628731364954750428044917840459973676877879525261548055766371962594298764613924001242519663228946272519039382630509121594184243835803642931928008590747219675740373304164068528605268555400183400164864014736208966430849005900031757109009329479649491025392028410386696060909382835961132768721896059983240728226505259268834992277111959962160992610558674728391206898104338064539711743755052792630121137702892521038956863681993569939613946706163607088773729619498222005341085715955844598651393690079723850291695049930913853519460623329747269249817073592929217933471437219951536763442934444290924345686798761713304595207397303966375324606591706732080896249459594932658716422340715002048180308419988945460782905327983093234043417968828363367499845988386187626102358724548567861338490407097991325000768200314776578458616289321920753833192540159449175090641205033811357028919916992405338319705052859346310752597493249755203454107754580454605943670042473321570525251433675579742389771023977469855875037093890655682145808499658360629082454331911441073994166048090336556344145654645962472575172300070183182096046666737857802717605806892762424676519965328476846679662031144421880455467136432516001674401716762095865832397297972544621927690774315510023080686673558411418659965494544238265106441859406784074315511709497467302112142502029557900339329979020650618181394038133127417786643447449869741633850171851176360298033199709320907807402569508478183946391483947351907531090568394472485019956125550441188072219250175087580935509382462744555619463292918696537653701308945028238043915242745601611067819957400431517851803080545308415429574698274601546932119607725718176220574227716202197079034273223244367328850554292869002363564993301310889973753182389864629493317067129297761905989134901659076328310934624384475522307216191160106747806395166264458962785115123238415794774951528237179763780045132431844861841130821901611604239919176534478395584235571449963316670167069903421843976834828317261752647427825777818343728566604145079924083906754695347150693222548461509745266946965899376152686130645708097620246643586967353304101953491129207042254748168572187015729731374548289462705301063177046404393830633008762789997468920260230587480128134643931511440577275816751913144426869715781355312655611063376752407508506771419859833543802957133023099780146228601462752873238924829663208515049249995715517184956414000696232988912659269239633386065187685275108128463915195751215746725338039493542464738339735908885763462934848759837314622758932533199238905446969080512148639550599483660560709084347303201526780137779519138112895422721070867359079813933587614086744323046682115418914922872765603965538671123450788808987944253179518363037971185043732737100473813642363150334078506895064304099600279168583383847506962536850701703112308550396558769769078275962742964343024146925385880004691340732438271217168346033212028637914860456675662454578657723263259558348433499935836764583815984919683980688908282578634448650229526336449885104406857471711338519596103258652603085842405962472310369340225689405243361213698018820753099466455539437651996611358211917801310480111059525139210200030643901893552673593485782575413028860222221356754964415356285168553859984434529580429496637065412503356569280004530594819343659716500530417064078822938909397996794702757515365555682916441603121814667171063090272547882927565905313458083297402027663202879392440784823657334601132177516655323792114866804130455305357114962967306087206193572236979149405804787999065880573670694439486218014401589097558272755359687914414209628050187749246422596979678684828379343983055325179739771100257211610403048110489204322830210314931566397778457097708981079889941755320469524508578514405342544406043352276400274066535348354461767704861021154210164613747569824937133759825376293123798195442170719041212472280047672508710323933899909404858453996227601605561329750706808174958335565927816571067683551539220348469358724449721275001510895598560784915993315680008883780897609177994242110448300659755794416874360783559293132164608472450746750062847293738847674274352471931842555159244091123097193383018632351217739266456609910707021242795239681880163860646473135809635233388875728268719162909574681909492284415378611936996698158086645953842819028230480437676094430764801616102767417937397127614440171267746805055663914999209850053147336524210120877868123457854419526965588391004327284413117183253578035999567466216286622432558457671826220719602616200355204929455091057541749524136711080639844764801266067028949776578176892213627464007414377764246066672613808132390533018815864693933665392969801699923443783254097319993187144777204492547770345817663793024308478625890384553764266102336400443035131732022751582689313187560431092697973709999713306749541894929473864482094115054062837774779907344378228100467342403596609998789557046335835101997061144000715042641436807233251598104867352237770504983365971371643294316209689231775151367368346848875382291417496380053452307401508068840572694236730363615989260204315618282426143333198679676577180988154383818399039731776412342091846699377568449106001743317705040705032343607652750187408497843777317092759135467089114628425825851828133263956114778382152157429859318519869867815551519840816544289622637992475093054647390037061577901440489285054387038755837552630652255346548451678748900294289779194830150657332485411739776719796320763552230267813257907311830608608153721856401905530666197586394379759785841765915958183117393433169654206029609668716743575271880449147612258711558721731450305515995581275070393590245270885647204131504930892363528928843632084789033964300581891898297422373118647042749627250524081579988682420800680904980712821943791275575527022108026136778551312128930117633587774055877821628828796001093813494086384041313355252101960115042474407477455235177946452602006611447991941323480698420640509679725117888528907313232879140973336469040682275504672295050678380348016515514606542016691109886838183890430646727346805039030611560883289735721385567368859491038895180678709364825684856153093489596459466466793292932796971609472448388269599836591968895421665963588884257196038239043749596665238946696393375580203406688684514110628959503134131018573059053990772475607265371213663749743431979179490609748571859385931094053460529399503699815721086254016123884751491682627578056696426013533948975957724589224947850616068850370551451009648964788340334334904957319237517416355541644478788795484578075953948990232240814930572084631286533818319528810506129023979005257674930440041538159405641434561281408510762154272754853998413800631330572093922757325117380147720493019252503676253196461793537306036160056003013097213695119796257359184163779742506111145510274293614520609933653023167068658986795314175668938132009171674827704348951001791877535395633131745541930670264767823895206412966212487971494153634065745462764093688932641681692108617126791434275644331199919665881634013132551498375741179541687374165088000201186552925679146141970344884205151919561242020912018918357039938451258663447677654328886002202913119018770985044637262623331686335425561072700362924658789533431962479804625353592887739708209489714481043036848033715154200068860709899444246380921056777115478828734251318447727711387220550130004376737039673637928766394162475995465866446779319357896670229255472396080736692215511070843999259913807816774742716557282334517897580007684414767530010916437415903480571052650505005671838011156274465434138699486267167163190575149330310306559536152860263522024501727326436191677678340471496924721452239427706347820078681398687864595550409903483859894827498665182418305719592298029144527923750023944061043558673859825737536803543916661507612140289180741352259462696146417876838046959311916881563147892510361110802771264370228758954955490435171669511268680857296426793296138015734417670929704166784085321143867795860581441671429902784404908908167890311980820337953253248024096289075506365947933519701909366350866566626938165076742265064279577012530251207778634811544461461838753863757126142625535869869395777266028181272523829132621241890075602218547848701529730626040303721375283631531935360133061173342069935765502219189017453997755552246806731347932472069215885733884303154739255288999651485424962967866159919405705485892115819941367169745782738731559191981854428706175691422765086943342971867148896617848534780064939863475206110987336261064341441564398143135801444983742673662672601999693796655355427729409763664657150928013921784429246077329759564070000200899076256985892203766665563457088381357079445072101071634925521051876865433832567212662620182289452060424250919436661388895787159606609587047171034800488614424743352272216724144832960094946741226660862999032983151901751886300073670406283668192633561234617793837233410979593959504460758391745145740341644579562309758701452012225870347503071119045156294754052394353605885574142367466925441043864837081517110499024972344408579427419155700007092261153915950259661407890044053538231407743047235062495309209808663558353449189842479851248089145994178808534379684444139059579609519912345333423644106830424891254320397802623709661653382808699707179803061930951991798785283293980932402539057784454054927819392463112109732545587538731038654397536312762348511018236217611570008493692885249992399629111987586121222429711277630285814428530221935328692609128842779457117513646706164972137968947131568343946184565779702184949037055847854766823861918137775879188523737275859673911455567205327711755880188250565199632755174876015733114530999134202571169200051873644226367480613505572194520350200751246314598791362387676658946608467049467723616689249018914546593066944370431213804005699232735280930818408031111887736628877825603645408108896278664137467291629073004812033767552194774907643033323448128510463389677363840377798310364715318235707593711782317119739137786386718269618293205300440425414715089745590999926448407109390944699917540795363854590001727747499655359615651646481987106296430921267873515791350949883357000538413799174081584914933918977488489017647062386740968568051331254261041921715496471517862384606199480125696793020165927025118595202216698189324786659201526650946551886546898226732299799364508687094698217572875258188028361447311718887352303947954491590555241160180588894017304977110286300796110766102391926709573354414199371020696743567601056773197613559401485303669694845659272113214076420184366330261844725130503858701973216178104913842158263735324344406914633515696287522483835017237828033836224379671866085021909918295595480636767721782589580094936234841399058515517760305892393074954774014461843240756543852702761268878243139703982595521848329871793494440293839882613196214957430252416431582801122885088351712837990510326626148779154007615460608328444888502149328856570573550008653965921235633640885593559923452210927435265198000682254663236239798858499158221483271009453084363927567652143099153350807263263464541033864666804904753179325007119952628268033129259293682226854583725484254749111443925534640358374163815170519110362527549388483829168522361365695971740054358309956316836531717276580008962067039519626266765558674001793727675644385855093279231248381575726857653105180357690988226838721970307037024235522434968349964907695174520071654882877902270458790086151796554416221732096715228901495595049108655368970682026140564243795351582868234754189600645528913423096084486591611591613576105502979992418602776144231875981351268110379779447390725369668052251885988305973534362736969139860528095076560389823046532215056934459733859787180580462116805844533049553015174839535262495946363971016115870128735944860550612110371536115483343280391851229974570837592109441403867344647466481036540391089480174924060560556369624654674749816199689835810736464209130588257788405335903892491694471329412206027842571383643270653441263717006821080619803784212937297627596203783755461926504136876593185950325024156338759279650554359139426552761388794006069209625746739470870683830836402718880934143064997593790307654446784508513564940205522835377172558651703696695401445909954058917778316640856668685075051140990286640801866872689859694834818161771169444652453699380924697726152840858356134563503932887077552635833927449441628585931541915494986890606056238168201023858233028954851799991862250996140269722035660201777605298278016646469291404293955387775310210806357375847572632322813899648463912523746949629906221856543251239678312124784607650426691900201445068508727294462532940766612987835331591036335451645473621337360833692876896193045272910707672749012757872250507494043523115928395417926227527120392069346311749471358678410499193412115540885484558229110340559980071864447630184029470865832354693024921887173794479390563334754919784957301565572783240642301505957036016693349477865725089021854880746276419686946969945259494555936819514744392728381609601468890447534675977973775879753620593674619914042247459222979748307090410778014649397342119071022405743371668579034015698034501864580450533393443970339733542262087096062469881405620199249289456331993064690823882941887451547236770864827032601054144211046796519711503905587116463268034468703064320701334438025186880158332229104543306044609147925889895294847214161474143912477475647714632016571508562624594970877344543847675702538758592592334262343955967325902014395414856844092821142846222032528687133302470537303956819289397818648505293333015905928990405978287482064552070460710584849077326090368587462972270522606180797314395444990606794289594917915599856164341516607710718765169738557771595196284481448844271595200733645635986240308519989321840339868995316360407364821506299014985291806149798955267553344272882375352764142034917741262672912306463726481365860749563438276343728173822168941841023390866671613511189034394242434839876036444736504562365471705044230460685894024905239232871443930941760127236724360520813246074374493253401320475864489927580467771800765394489556089325988866264880362129208084861570438938501155293309180510690542969692503187044640787177356502207260352433817774835429137878822171270932760476414830228722072359555858148034350313265767306936903506195828707210362228251468637086636168685136416469359203641245232667414462768406646730764726382281863082605595061787914369036198745874388593554586774460173743959711692978083511856129444563286882398136379840925257347303633292175467589925075381151175634959253687804736497301690202869904704300522534742302321391472753425204444406160471090388336226255663342314343026864375159264502584425276317611100417086426531916315699742810108295454729556575601938549615040666341518299466596659910888428359673200705650875811677679319365608463900201109359678411857393583831314743946764905776123454880007187817614927361960584002463743152011909676066777734381330776149942847152826900868729214571461777467923504785895017505807545280194678649879685793856731979536392454635980634062498274990694643549037078600099353330171879620538810677691925725111297154662278558854642180149654420294459551624956323838030269945284838234307089482403947482704733543248900409427534347411860669303005328813265332411388725036506107545304569238041085175815303513896908663688456406377193064640557019304172818152422752386154337089483320202207740704479782122855693854678165191533195871213894925900045334578083750684852451402656655908741303373838715899588267130349262465437024444237343926895507961524536004387988857991901399616720519484309892333160846794900281481919601124517876996085260159083606257010818748052484877632729200952559007770479519552122713044050965432047920132009095107219524403824352434690088589347300206551820217334727142021718445728226965554893246515656669814347644913272938077731648225170265996423212587207087300104737338091242559574307129932636935954355270864849503833180343994258062627594521155949643161103186925253163588778596872422966622805580071969478589890896142059711812004432847533266196686122814702138518880155060194981084854208011271705068680928267556283759529623650745491096718088294566499343323862282987395502054341381770282375972557538747711250978779251640950718528371663656185257745902070158260497174753299756803077571833067914548451938810575069934089764809199620832367188208586600561556293752712678901043071907339769623030827078146710817944447237248977819000463588748713832712564761238848454389739521568479730837353970378644542613965317487674815765235221899866644961991471579826090480760626587326757791661509583906942815637170341189495105202093438113655051237552688615151115443916099353789153722631681092221202551505947060665027217631617300441647172933825800866302477533317194154614149419632344406973208759907079697523109001533797927055007629332973852383961350557259497488765328790302757798915661416741040342757006276142588544794734919778677922151359343354594372494342204369891563273239385252170738132140195825528615929498441773182942904728521940558793149965764457515698920622249606424786467716801127906891022371569455326887246532196404052697946145495773612468153917715934550946447344717639921970986880141135987181057132415386633232945680527741511547103346071155556134849184902733387559910233257724042265153390663141521781436281817909899092166824729088911924925653125615482596353355175731867846549991212185220926772975244755544356668681703690278411048769211100163155348464748002109646675283573259976599274736125309770087843703834222818701020734178413705144989557241595577602724336821345495807391889305692383749035284706351621869723832022425085371025102835227172537158549346184090231374302378011155242074082678945685681272566562031167897997808724293508948962852128835197139640315764161212271542356803879597705964366511470240191995901466690741744522768449159767970119304462460037565193176634724301187626876109354979842072890442784457422498066628133822234431208828671802853328058651594825684997110211447671182709129272943885213815486900233290939125670085530830082648836479501856596718373213369662536125340922645838963993081741400515875927550734170007105055203474174844045804772609056961722727945516420149194002517088869331732467635326423574267188668634125474471385248916596965035025327143044862206563079414136964838059636958965955355010350887402245049105932631855508568815934052483191142363648919267417810897720738681528728213999113242059249696057843150707165643703722492917253458957871472587496875944962901222482369727760251021010239936280487053207268555822321637846474356351564840398256600064411499137730329223736871983713826080852655284876973654640190977265444043258864634649667569405481255615549596758463470876424676758993801255027393553875386055036853945654367000974744851257210917446872015259867100217119053820260415312478561854092270190620510761833724729347708133712246788154591969218530076654748854430051511201697017766040446331691733879617776563039341829382530449009659673098421109685050301064522198141072585406601341009869991440824895449430420689241020535207759472120328493050203000302235239734132538264573167208951157885553735425772431574647039379370524578362386427656217166478043917692516195443472134452791944276024014741555560687380299295693912172807928116205645554116849024489304462671987339972422262198725103782251903996995321762077148887810122384840088911756826607391157077107601885550769251116977182994704990192172874221735339350157388967878679590271004664431168949836847153018969472068848516287842917137722627299587390812001875248963698562422571138659015086127334060204490724114912478044478701570918373593564829437150519214921005130732942206186053946926106665791670228099775975843905222508596411746474464576480409869295319624567459460356630302296715976448506893019804076177039097690043904631282190406468367119297432431573991382655532925361294557868668917626219003720049892392283904799297621514920694149295158133352772770378341766193113334008798266284700606883836905977078673017226943649301980040264005901074554996494446797865414643306634877676679387464434403536689127121839568595824209742990542400195882079656086222621329434951408355200995420038051140488469401820244795499068840156418903071544880193160491720818297158162278030201691520685798156473270887049528089425110728834656142854087621746547120659960986587568900663086254083824787474498987788379305665959470511885270565902179686203312137956130571524502514621640129932669893908214384795845558467573830699701547537722378154521285035433977810269294553719184170310827597203675515606150376021210409978732565451193864354340165250526400582751236674896294917833100936340473994499699412371030787715340082586761611246586750919900067318643788291268826024493016033934542865498557775156659549424651117673927402054893942627649483829836269158986714955556166892534939466413658961399789085382696027047929448345786461406328604957056662330282283248729564560483631481593378393801189058098485715942466834401666910771802661510141513400871522139638967849647350376073000856698561071091588487243770764789018340314683943755958878758862651779686226857362683992978510900499635540914728073185383798020938684824761527259982385735247384228143585546677835435710913327001137433108568836802317358406311605061553125392013718896721568686386742541457850123331623223392109213235509639057872121410819147148252983530711829789141893234089223999207775334755831191386947623208972815223881561366047812568593988863944149218687109728057316921112127271691940941531644437796264892391125274562466951928650395474868493371612481211832391384426978641967336612042045045374505494198470700007202880587781657734551749936004509314818027873868370511980735937794302157756324178568071294450318361512836786717680941381207375888057458658633180161675860953231540340999138421886426944636062874598500381676116480228573141784453698053021341312986907482037829093843695727739576997856325497720859840650408641273026242177106878436335970088339708559828611825905919251733828830239563623924672583132545868678541797765875985185361286769524591094220085263745724266507863830479848004581458435281031516482378491512203365395407485954798163254073023751461003853073167261430036003990235610894704538125494346877269852410642847143712082349089010865571967935195528500090747778122375602440980785760836437393944739508878491571451249898308163469652320558696585077338256870875428711031727942881945844418030141393343344313203795137500648203836913296768846828388993087713277983668857221392679154360262936675970006018858189935489168128500464241874522073756188149911452243857247926015830561246272975515297079714420749636033253495998362329275601331323504133770741280890034467382474922118643980253296824543072597203884947412512382547208165660037597770001637495175159070540510290586946608607477853267283773120061168708049766361229468468358656177490298651715576601060263538650739172729552925852709185495748188560888702499710384893697032321243173914564335473161255225560762573317163735594603724227508000515037570608522945312635079075975743212216670756294111448293423646326668441985037485793387905050515070175235736233849249411507226217001396166638257876083251268930536878900733882335351681104940980725408157830090439726872532563223972027607919476779470143181659622524665732635396444924480237721916362162423181971052208753753972353768482119510827925845582816649523218570345179996272253192136153710183606134064806150455046891820657800651151485416894253237907928041190175012150763144908453934247548715454855873594203103363519034480944296479453417764518025277869880557787521605402256910154788437733940653774566925903577967911578217535900409722693010603551079832798937739184212371792083956674260679111207049046763041464219703557728585430240063860373914833593062157173939568835656073541034560261753194854166813350390125540273875296243294388660333681236859448857722974484579693762121977309470371850297352493587124710504589750350491487065197394323972013321361416740724322116760414590919490699994367735715558847416210444643294461992611206060957530022590330573831291987724921918208493026688289042316844542835504481740440778806253447221003460978417120883858596030882003301825003696946213953590415640085507388452238543788094201278664579545695283284302110479503972192881798371445627757457105803259249074187615656989108471569510755334097931253420223244822212139910019206352375484319026380302462690805843791064413456480159447925908369224063921764709274749964512250599912568910297623470919893754879547356513309122274111665201791149153458140528304420198431068666082438295278172544099609884705889931774990641151670420564297559159932789375002977376743008593431612890483471079331911070612881146769471020672917331084729826809541654031352823861311367434636769844118230647144510220773801766739879297001172346267949086931596434105494124315799903163947602299150205990840665817147422775400618095102165736952686620338958927666753211873213590361833693270090007885007100812303871294652393152652597575182642183072425062123755971843815236341418318090116169054120113390562443058490782623347257349325243036525032994941132445188831951155121931373192718042395355745613159178746636530529999701472687788082743686160192789691141046507579719961540893470870351947006872941332284231524875403323422944991309538364681793860947383128780853761953444590507231287484684388005234871093596098068154608111367587619808753171991102530828305985774862706181597580579021899550366461857572600952585192581955080990653109976716009537371344023963660320678640193979403738379032999964270125832594488284760671532506172671430956738672215289948238820879656921211194709554874571933010574394448672573017311656114957241861665230668903057085627922363966597745682551573881548968826702189498405990746404300456163047465043543232306619618775825663452378514482661828356702491735056090514010950467180167002083070545838432989934390124646138165939480302377079294831154236351536108536954794648876375939452770744868237756514443033577151757199598545712439105658322840987000505094732256585075717828824978805236484680879169846159735645643852024190454897214718837785218088510820337877167065201884427708482641017601857564005351500471018091077229241256310957532024126370251576046161320337096342137117979695895186042994225038253536764379106716752200819198744610395112987526566794739600013563083659380080911146935075980790791338861929806431805579626089452341094897990158977212771028963179746886927764673922997713410547668088804098525523479602363035462587597839562546820573851153815443616891782445238087202878697707890469402937092842734690450783631134091781245650510871411546189367054884137020881209467786724918800738580305409297213440409103253469570153915274605412073071336558880365400109776934359739324191784028436825565169708701952878147396781272533478620454975196027509492045385607750994761272153427810048353316579851524925859997722812899429966941970755054797189130602100543870738907694242560460281161955931875734225749662668824829920792910049864243579788218326237081167667047580427094978976891838257938186041794143998234871360826358782748304991691265752152124139443943913958384431614100667257615259863976944541376793281004326542844075700603291461509400180911957116055272729072983334749588318706133325944205470287246845494656136453881328843785603508563797420636329876867793687457154840941319816904609496723125751458290782091709220471322782951827280393387670723050398081659613646976079522628905308157575867127073916610521881257127941763951098847638769546020073968350851012743172381880783497567778922570032498878405747870473918433961091654118840810144433833207545279841734447544975423718241194974337081893014232868805227333027374301042926943127985386089360842392567577425888174529510197291469122962594215797703843282096803672622320783221467199165064995206966512833089953485911713309680167117619907207562852574219491507747754753063379244516616921776780709578419073561985996319257713475808922931337539892150574882990256827609206224411162210511880953105694677674703950447334808043735495439041912793811229123109817652899823190296805501231641639376428019632722128001390826477413481922332289714175165494233984470362221695767883370569308562767644266127354036990025828985196100087011847785573793883312734397696369139361756208259637342817535239063270552597762998681004769828255973462970310929738572597895309767467464539878176623826137649635686969741925331162822157894120607547999781607451870688493633889508999064409596462606987458136135640204552230200871578167736318159423292891229097499553859644223044320788239830279793534568097579556810708456431222465636643630501508652650001750295305029005784671644239886850562196267136464264630029913407180505198207689951800666241525900900641386028478355816707990001219616368112583216254758259104409668732954214509420508760286316900522196429622936953086814651577553222048259678509133749653341200793684348576507458118481336446995826093869830946328562037098154077585117658346228044833298265908523355602329941487516307342359801029740281139547378827624956995232728756201616024017623228396826592072231733535897322476974446222824419276989144239108185510575262454362755097999393244598880491285487605254293030792259304719819155315011480466560841517710464731100579274972037197844201336505997740739354033246226056690091648889352233662814886390634712832406240872238912980905487740408868462259667391367499368865636764832119993298889065476801874221057199912195225408072497873046869941052178691469898483335747673584449843339106665753897912861820180769708718849084096778571506733223423531114038005715683708820913536110977512313236038457438407204856971861136901471198010070183910328234148072525126191279219272724126184665541649856462435597699545259372128764094139460619867139749776485334947772478052989927729230066231048942845811244322850887540425460224627445948611764584865945310866633058913565103316941841605412547753020410492576747355044161489385295316585939115598326953183559060223430714889415064878997176291374462638654566790838017652563713787560933823557858675608128858374695915421183787794744984663195728553465740513880188267348482386667594685554622297330228126407631192246577285092320829519375656642146445071378194416361297053101903981373050564086337751212135605292729294590003264347630548722006252329210327151313072156620892258845051137847210166382409757952184750993176216403863882903721936855107418991604889100870276797643272249866619170056570878649096168256991138182663885940206068361871868542213526382590233504512618411991269528422542956325816142546799699881448586630433047922540892918447933644387525568616077587079064751666514218692411449873419008272779943835372221653605619346166106350320777913609118731875000273680216168969431205229331404160013331424901201738828836007809590403591901211501953710696027911106747002840364974971394018681942939677830814505536879193943964503349044768101494606744301680155037493749081607313398909565678264191747682403201678976035802109485152870151286541739490982466309205224416470033919376518122237820041902485741403371519985407731215361004109594851564091377637241225404989088062531982991320543183186118582198161975101087030462313564551100895137171470393676474735829525553148468921138118035038653638809779939162671682699788800574421421981160331362370308473992951607268018889029591141317761678518079134351953792317202589939954584302637138011994608942702595972232745883918670500522913449805731910337284727974771505532274105785498930199695283027270570628609485169649321601319857872001195673400790830633001524380936742785792646828815607262892962689618329526382732709285273884035777828467963417180240156692004671859295784392849971067053743360126443338827393292587120102250729665004638072386637344943117076215669003089520511937084680955478526611588118973899534441676417793182223699179684269926965649306088726173676948863834086569427002002646409627469892121861421807609207092149654807619573513753786526200820304556652324956689143166780338162279233736751963324202621051626166984703128752221880932173817990229006709429703689026402779560599342435651314320916056286474493576129225808121733847712887713427582593946871712003473994270018765148128461201990193991270072158143867444150687150329362621832859788179916728817499583756264635835393223394433234243823252785311505529866249977899343703056121717710436286400012449146420455577112071675636312535723174601941209355902110369585484966269684654802587895801487442720239313046997481505143513850722629493002104534273089079102422649372581955744431593929509341140691531322526964325584426151453188095639033089207194127948222023485783874168580129028092312497943923599869249018446111725597236527437674942476691894791447411862645270306810780425983234484102164181076558524673652064169569878489862503765899235465343208542580302898234092565882720413028848325004277388831612954162417600369634171360783896181068193797553454143795096540575115750390254192382794144007349844303212492377018778224461711527265273249878630845253440699214054390665536700958654764381972565314531020374135395224520651092005286856399078484425376292565296660557167897856560941515563294856142388277053621580762791410047377334764423196298031861610201235316518116466712531473679790546016085850812584590157612253974942837486978416519345720641883257224798014750779519260808644994502357164989899982037795190361661996528708692998779546154709933552085049240598646766325848830257351106242337559074818036018182074166948809437557966494354924599493021516159021446511546839633014328596690618389282681149238027160428847467135347498718353053761655941020047324936348673654361756926468618028886614182379186255594250672357265178400558471627574148267702546888424308177232843882529770198177893893274492635287285880112603976977407630074036961485262950351153291460795085154557760346346676450512070092054882568724604939920825143275014957874352712449208675202826472171338253287037668319659537718560843037425985728658702922733435783253938077646938489347838583245027146425470163060828563687644999468719808297727077220522519530892600665122939681195778413013152263331199768675171432596648670985897940951181839476546436859235718512723756196243908765262048775778663628842113571279798389845839515606408509869108866229593434233039954716892421297084973304975145052297045796389433770324756181259565640078601992355869041515291086508168622695612899700814742694427723407264740406751258538745712541050818661814374791396467556691037341048632405688494100242021416122286376377765846379589724511440267850419737501292561873937707326819546317671872138842428255262272825941977809119459583377615676648632498963400324141890836803468187971665382364226573621726339001867873113320413579052012812202268241781572109285309057665124526314839660431544045117123295373692395370789899893098127378023829158023641274170762110148068374147169786677201939688281605903688118096296833101916748041705712983236420745206570043490595232811242852875484371876648094904154110292924695028251197019666444575039809266059553868130338411630483164492549383533764987382309300791007358984883954302095871511962322484169191315314375432850537910573641906732864675391297492131247413605470015805259441487695005010991718353370261599057838248176380534704678877368841460107942867050989890009828107075380023019173252513422059144831768187597376376102254806773228493528511981604586536357774685075008027039903367356842579883160461795334139438993347308443506172464562978477283444617627625066337528868730476706864660499881941488582861339662327648444802925066354925475651151144757687305320654311707020194819763719120251190129084621451436220207717319565420013064685932154027755822361385346871477176328919938063463627796446278431532582359975283098788830634164184775854552688546679622698222514729548910314044314131802361662772932662377771477914637334584159331481094388138730890009279802880822604997005767879034443518787140576858380121434824814071106117123733247718277143904098239556576635290775116084403691774801414651886997365527763605888551213307395336677633516939041411849470361781482264389665750134308435889517337079891016871675834919268083068273218795212703560014871686838032461686128372194062012777279775507700404278859054498307878426672010236944103111534826913190419581007688619950941247421067724193857708004683184587992083069435607642449896786731562044219175161317905152431649869303591796255532961129445372467977497590154865252544644276398077271832867758486476846333070088758223219737732834854802496128076646083214723697466921618189933907794205532428675297719266815466812716194996529088906347931489510323046062378867961902912177607088031786407506056328246273369812641886156295578507613880063356749135247428537184142155761947425033890299700744884386812940165724368867729559941735612432235316036977739610754485870397217196399517085624481694422187446268946529670161615689648548557679938205513707970409230593179279700472256429780755534179191186679331076562781204533601410232570768275826642438534169859073926327734994610141685107526098778094989737426980125276143173663135033522489655258398981488596839205202476208542460559334851186643876206286634246514403524479070415294526566720996543495866798544501149470148227836246953102822112453705001783308733331633261454658125977445547281991611317831109616525088392824065309991126545455195016238487557390108578661418923014437108278093079933114438403751345976611606736012009647853872012371417379481887603433056754028427601921524438685615610857485766614538668360056082952374667796234582738693834466867216698034615434571382887184466934227372667056892956778391337816050782220601479398787587419361330814898141439816514029542211042837231224945434697153339650472461281342553993413062439278784681036897886510695395107797357318357013071011180274932676949969048495974203731405708658401097650340427125635815748734851560072729664242935095569026576825554550249859141328311175644391243053054880156399632851381338439924374200285824989132495521883467472344770214732515158854384663656607806069422228581528467897316676377377332057442836970345161941542756936118206773180083324478099027691968410059044732371842494035955309551742543564074138555583458025799303016544391733050850380090697376350841509069494554672250068350362254786147126822962086581010827026196262048591333898204840151614386028387641262551742635415240600968276851666037978411029695444288000412807751701699992464171154143430658066305756228863939206496114698514272564534372013679791410787885801869839550621809839150284060823609455809358331465004663448346705892008210930511438103071148993862870862487928749217116000678841966150827136097665704813550459311073017846272895958652087660668647756360974500701334136331206213509865622456385275580112506769879267657158737053089930869575296369564685010113672262260322430059126917665898776494620484099841141349134535472294790963739218330652579934804836758919893405262926767451991212404121114447862657652386066334571341714487684294299190478024155537223311639482709002578306355831535995668888243172578788474284210784767594232608656259968076712872055188075275490640612754968082821461066395419760411576055921340917335494237623538168873284446638659287248565577721774578505726085072934862956909336714135459402779909473242154644579617704799220586516954069208651585933416431437324625290847902853310601568105008469870854777336909789002606920022628286409285099057144166601093240695118928923739460394181923607629030471734125157678659758769228041026297627794713843349597035848184405094471628344855013419183959986845199457690456293906620890593270111550351833538099186498005252700648353709364319890247739057916515214195511211785884418791597191533431074331317713521097417281001832366445081686305172213957278777834173023145714596620280358423642026130608519027872802338033188558472675950190085570347387420612871164558578022200425904604567745339874456226439758700981331880828926546317901839439725782539746100546669809883390410308025592191313934414194146305485933935389967761355534270627647616997626607189936776617080670905913809967310955438056206139847367468973969922243335847532031080886736051196870006922099377052567521789847181476202436458373678043649108888668929705172063932863284060431388460705011151989908951074281872784458628223012365127009651093856654931897800692291294049192181504140145244830432202551972090643237743275847826594907295230280184683478395266167012956509801544195291836627600767934570786971521993352299020056401879027077813024925462240150751537419657937257363932538729804677877954949483676481905527861458801806434397649687992963374146064030384571438097645511235513471619787910820972925949790272818675033863428501436055696310905728038657876472533103971309391455905813321522275884160831767065511943539080769887478002200240960959820323247271663846871187828568129015625749640691516915272058713123821008349025288018904054673841223014281386270219225923431273176802004090359746459192149620873079096646930339576093589931511207823788970259115861498062128766188866747572645974764336685401271393445385488365537668437769692504057860681653967426713543827283605448488162442175320406966699031804405058971987555803776549823592292060779849267766922256821360675377448938748204450810076195472280799231473841197054868350639525914730640562895789427695524404748671962773239669707453645550599086354093952898270985531829549638691310665446751682243477493574687689533357817539585424097491317562822842493593492458651850294312423302943078387903294983140132930745781036524087613085381665513836228942280119961876219345258220461057460652452685687576998109375021890122434615795947397849596058320864199063395826366844980258298660048800052370114559081525567261002921918074977629816694402812751218370170214179397618118304235636061232432704597822871089779888645107319706717555692663257275587659287211480177880324180041861258133982935714395644376170412825914968434023533846858131989161310027725604119016743691509749227570586787360827378255248008664997981495102427835642212890738747292963268442296878989629673267132061325115314598540130790876803130353323752459920939363269679692442459610858513349141853475600481090865767754794832550139296626600709949154257259838143351928360331320794269903658308184417418720534954241294829430140283916297631460441015345049397509246718243330892386725378993590468362610127087530866045208091080060933012204737423306166691874118700137071995634034252154374027000162805385800201419626932367896294579847699376488087034683177861023502927792955783292191901272511878785359624662149676065967964550971032100999606543347849108161691020021892919541318020342332791270741826867429396934650351404343262387432818474586350460479867125155366572548111977384737775177794152527155671222784982475617774765459880658242070052602877052661529481367544474351989090855694103839491469515526553240908724917194827070250396052405271387379632442736203434097127230878142218346796733658682468787831622535219935397077479976839282450025833370906870147211754663186582669302452308149731055194500894852255272831359274229532689515215742344589379868052614977096669777378745904134308522725792028368730542708845678590389501327380040688204697027121836040996534641251990384723137687579353222820104096270866509917496470871104446762809821912372362720377330726086700938693025851140734364084950040233121488974475761417413325599093531759710098892089898288820784367550656846325966670919992945853130890944066374793461027301745668949652611574717760445530133432205791071341678459874899297287680245990527872676810450731696592532435035372645604049780866734350213816619986089376950726979078102348145559996311154007577246442589434498594395646112829068000809432354991954674332104630002572843150687616524471181469177337922902171704522694998799189057500842829125203377864544086153525065590306479981150909408979587717309069908772294466817700183201661551400820660532796664319017503410582508615212593640244213779670392643708164903140649804811480020581248404246743135834222390959759260205810485860207614940120431374796616211860953355968229112184727452793692114765351391350305086248069395031975134879872421675777580770700798023425819958509519873397308410484086410887300140209892446787025004375077144694847938615451232273337211986673030246353302311441256087395737988156977808676504527871065200694980879048232272670741437694446836042955368894649241216597826752932885622414269620906841550282112703428988347104863879052240202324400493313788890520770679673666437765558044017734649891838004876257944225311736131682659886518604503609926044599335289188477482469240057416804940050491797807020502557589811980190618151073907470934241193691087989898699389758646877369761466314382645555561508684370038812750241547777878752669100012071179709640510592176490471396264286511140952134530926400260550168826160089243797081897467845867808531026827875116527849272265015628555492111412071226565179141995979627325661329678074524950889739295895522698383236334553020609274211015545142202473971717984150729965713571280469436813768831945342200599848023951958740478810574286418828570621038478585704976232090780459969969369620975815885814510384964769319296668723135662078507246281950476525309318077435384929033164104046368731786899511406552658517260626901462692629636298054457857946959766329586895639030958583173829014507417315360532788911595127503995497140619612807192385930986058731427064546714231324087927172597824723981440088259502226807505248213075207162213500422361108568548162629532227449326123073000629227079028433475848623765140772358972938152846694671940385434949710941857425364071204769466976042677336530735911645484694079246738113437374624119527005812611587317183120509116078161757333318249425325891983540962706115153308997611951298747727652196975776592796536517014373676322087410280549256187627079887090201371116270823708616694173295185733936251085974057151133255354938247110078899471858365180050984298440586640448079420891295232616887476261984464065954408717110262300526724179951979073895734570015004282689860250484559328200803553667477503043616042973220414580070786379815835147305097796744637982996934473565285570385694505051557001128692062773274983711160845525092091225736559408005387323860217066187109013395011359992434173429440338460594546981169469720655218605142658409448851972271877793600946921888687514429491000413659390437372551695163375081795244585774759601263028623330272700226503043282410346821059447280275602882925203459127688746635213697928799867473041122266409494603420214669383656368388446802967241605061947849717654140686444647679200698087429944112584671175679671107297762192009617869149805157862287497030307554837403758097647784365677718229068438024580593770901029290781913167330016845826018777869151950027575396302100430955583373892028140189107713104180654878788214807534813567106322851577388798995314200762258545164939047990587615881424655446713010032199605372789478894799831625972590966486188230462914863962109315792661207892097214700611493409152532005980830093641766882738161350333405576862700291087850666061450244562528646982492374773293897855101450098383404440002888650829829736644058255834867812001776568719567634529177330130528252887421361654711277797316702657130910806681945598771498325730078369104069002940315552064820186136544481685413111532016854163131901026657050103364056011693958941042473778808444770528767322521281449661173972513225392500476026036155873261498718244033446306827328186310550286067580962545053362009735399431253412188581941075847330446721567904355681619823443614963261422175711202427264061772993983815359732638132240807479760188556385157286763096724679911462979975056512242512237619593988822525610992429061157291661614264899805612785267332554767679116668977800812340284860892337297098193552925775840424689607006395673281116071076882798371768143687505122000194032301007968079259114405405252108356412339276005529037657847857722372943818524121817910364361504799090393560086060593163230504605303318747871809917201328696554691186376490058721515354031645953506926877354071661540066840322832184058307421251330566811186519181612960831981967894577777395145000868332252784623687334231746150539053539695142433154157627514543410361700296453128553653040114336089326562340733727350873557437036712156589346162749252634772811907673617177168866040025418109729266235317890839673157187541329844249980126488516908639969892218309127505618189850849257431037881428726075000178187259347061917486533737041861903317373714783270433890723545472580515429851282923677206580003257671040117575477553845910065009494166480706208966391202729485793583381545203614885144744551283076596373522627579609586114292400983971243712323190384102140443144095384179122788654692791012644515304891940969050686658571691554767338707704184923024417369829560143519550688400129645161209656999597603169730097685361975334431582800660430646538321345657280021916533465244192354325171992191053203031785967320484899323294446576163038396019779582600572184758020263329039529651501454935983058568406258801289732651833456843729419117542352457403233610400022204269173983684404137953563650514927226896281374149554483135180750877901393067886678008585728324884730988679251542458658968510206413348128412564787109836696841463669649339477000234056908643461179960582796677524651487448719569534409619253125157013009655766853672647295277243300762558770888487419223611737452240010719896446211039199688541380444141568497774138958855872533163285077470133600740186983163859834282620132520271705849863894478992602955429944796019345565563000741009453598947387084962177728823125811776592671799651865833844491796590901297816179041496129943626660729815087426016014226924160258718941214746093587092228902195383909061848404520359435406289293965712520653000428932143617453083282120644945844399406974485766447799184674305163450124249867162789797955482424163477164452916746308793348268836549687613589085094007583199903040166882487830941673322465601033891732996093935679854436010151273503183351095374883173873577920093347415185497731731235271364070827785652076500363609458695846561426407181377186186340843243692396838747241338100440018054124852135438631882495375294160753984679104768089576918741877264443080688209011851402445447131783252984036878258510213221414725192074895864449399075918331966651845433527666315085009936865746207201411373298370565529523927146451344632627182074803583994525413825757289604002460157367889587453539974212225165425513624889824908557887798041715977171733776035455974580507297446625059474157117564122293289616827141644746203782618550591400688031838594362460348804159046133972801113642454536498741781042638491277548975274838223985290356510255085855786616191911523375847373044401232142008428443832659098973535746768779790779126579359476757421644931938900331697432009484433316709119040491136777714885584442602374772681241696266936059291038327112558804073437097696051088239428428543191026853425424670672895914000779340666934681132607793091813241491224803986524352884179686302984836742181532464556947673415638026787360679485318006557278255113896815047004601931015631839954214608150099159763761600866509747554698668953410161268107023399391086926314826195777541057900159626855966018734851606958528132010259577531083909865241119218078869932589674204560314957956022485564032176193475781844007868550865810329078818167620187407980987871944578244895953322901602762817509536070956039603462597550972207886512453812833395195152531980310782095525227264504071801962341182567349145241459581357129273478102602694697876703693240789057080710028579400323121166121828334018088036515046135548191881037394013652574607088569368186441882994615440141522061375792685543431943084269557377135256055256875502544212712002969146140691162072671515505951537538647183485958456581214971294617507070010285707237879092438944372438361532899794287176492641279086831313173080017913522990114415470763196182195372323166600933458613194241848380932414558950575108770309620092146391678290534967732616255512542363452259229878322021766152710231652994341058802637746507216672772229078856584405800985578621154723352920334089108967156367194136992088622946018022195953114836294873856384106234994602628593714599447221709607542645910075412725229834987060832128628290520682991658667616188111438406275883476696666359029335978732103185296733898494374710661634567733592573420175612490076905586455945621516653322395505308373821447311839649133208305496980057568817830226018334105070931817070310546269819571969906429957722820676763335717939339377133112793231309601964255292812526743377979345713052372920903183006153996249058254006324790648963381832440890088086264186065202189375379366868722918324330074631795872680775186159559652857048489042855960229199864134551358339590943587715186916847365581694440337500849906497713834533213484213489015236216040018446835788075359004931681427840977689035005768437161514235543223462221077856749950685815626906151273382706212446776170135401356932691588003880819004440662380446952261669796281498404290363802742137811842800557910684702023440480017459670451367632759452410709818095041149042043511298613486228144271063128166312127512700728898887799249793957300827342030556231368298820127454084724792655470677764316251769622584716871950044994401439610947110583543773213503790762112199232652718378524730314801418761356667886428470696882364996963729955895103220590917558756830358605065595661532140730084819394427123833984267882279538058730971607770495789094511602630337525941664505845597665320230505786357547187657018187348935733796328862268388065060519679913844122501317613284718433823982669960148703417800541946727939929909912616701350410361776145951830179130166936930784565018028278047652172478700416966101771849528014357411070774686561459185846752323373679195136058206959132872505709292616794406276943569437043952008409860982836530457168786958653441543206204612335828180236651897934939863922173340766847524649543715483946775911830900331964666245984508442341003886632760720676461384885204740849487489750313474119866899950705793368845513654371286574062825078044968437710753233787351850966580045970681303757959488507700706645641117362520153172507045964375937102317946682792282181940736947218685921836740114046469819969870278591279481552556637564935323983276695632658450878761645206053930584071468026843954235376221708537897955444457838187262190532392737349898684458447982349184088848062755645875733974952884591579119806430617371105017109322801573705462484525201492097351518625744355404116320872660568537717391634019078799242120179411619907204739598214506576725009312612204826724137946770077305318634835374802492533508956935528462155025456464927488805147381206530411533662265149576504109526233172332413131540231688991017617898524445684067818942610050401211750517197849978122064019853660836423127821135077878740856728170588686609567058806210547030419959073327197090608861659986113385037230391433250182299315171496996825593300482749791198400024439356333666678626793736631820693376603871624041584376160881950279280652499190151962403325201020989969030511558370280056419970585134491880924971061451313391650350528496144663785422292857340898415485883078385709442130338453687992353244373901923635185966244268358911328553903337739026608484713596819030641103093791722834090346332751185898718149716683410420000793391604214027649329916125138625369053996438577248619477736120578806435190314828597378035478826719120909768924524362344419018473630430023699734729768204309953461597803068937452104340752958080327542366664034584908077084308162797756933187558482052818493846613932014947656681717991919788489603683952736322474835830113218780677825054039485852801888460416270415031555221430052652327984749166448338600723032934671102776158023269131228143465081326184917401654835160393981693478342731593624092743431123946517992194800443949784210226560588387888451918809806675527765270133447460692288989422037942358532524440229333873461732964522235413663929702641061526476045428081174153496013253694551622660921211530186445366535344591844276393664277149162221365602258473512645696781256098881837866216206297608433632574387540165064812092802636895418729855236541956923333088310808795834654534821615766827377025786492420661522206924999245138475405015295371109714513742575227915321019531086347396380960577359693177823751521826289799439358707940878806446931803902048161865638528067464266014094253055851220425285700641264421743437474522578952552966797460591690768350753449359845343901890453084808863798287934694475707146100983116356150947015773055211135349318509161697231925101266224393664804264417715971793646197657875439620649698901422797096189421301941618493476802502143728134512959923606410889013157885069874389001154156898940589770888555151819648103490545366539721181609285990649094842555501427225437039932571332959084546002266341030665604620932714012731950809707089819332324283543510824724505757959712925129946853608668205688769359569444541880460952025297149382368081840741121380195429423613133459408218157898429296071327703160536438714310779688826106075767183084361622543152025492423131424496379158418107652591234680486203258877802051405614448066362386896214794983157844908215439941371994093686434166013333813097667378595141034108647555145607297750405900576491899705600940392123463639297020625411051333704392625890502736509099698417304008590769853235847077519728905436074214242091583884179036617156035391221629891731862005367852370540726329493328300123110823973203902426109172255161708160682183430167481309482925054131501793326292940283945996361027690360345246017544690750933610723196377285253631687652436948249279940251264425746314728320540950991463418565958194888965488110670007310335596403501908356540894067292745281373531217887220574585964264715447095606038695954947409490686371557351770657085656982197262575093572570635553609397044930534053636175922616596850728771599547143701822675411578617387838382697406243030158017628836369229846987908160649648597829991762282595316733184501321221613132856915590990700315133530928791149745741231551897923102226192375495129998233531352650020544623762307976813390973223049585177605279003717408858410034057475493407411895357148529303620926826823708450376846561767444875361228629332732460669911337738587290118352378443581725107247106476885610173280120386492994333287476976657927161679388876901997887886670285428383230219899503174309472653533706209614819775222110857604484031297310861594922856507297945364230359717739378775914872016264817108491351209978706506247297626374497612276846570257878462996557944601669651928987060133453343838738488027910693778309013158840549063112609062481463803500407090533526805253934954625022458305297886332866972170461446693369880882412873772382900258944717634465513942869193419848938612829285060726909649262453648614269824495815931840080619719585405105657532546201809315060832546365035500325745942021805200731032783245593096318728970390985264178996679550504011462212794727190587925752710366367332816819350021681338364358894000887429787497560993326546742531702879465270405983286239330215385250159085731462110354270010191994319871769718341144638690577589552972805473126792660186246823456774960086853850836906327442894525629889978813448150079109427999591357621096430664918014207067811305471854458537622276455324779095414839941316896233053015989485465459597996704966036598510804502818860689603979219996194638572438917938141263376103041304501429151275965833134858215442427315727993823290901810289875685101476429920845230420774783154545342250634685702391762584278455147274502474565256064607267831569845946041515519603548985954331256422672544154328399611168687867789815858751665054063719425048521062927643258288824118226271923259496771208343973994623657883855770555139046627608472402538287199690036924864190342686795352077636549810830985152598266160943502125771064918750014640122678977874745381340931000814551096056160984229532985755063295676546201952290696168121135528333148571494922427819569523656025155682450721032854302413701785756523579510933633760044520146769146014345223055818872648872361325762506560919411114037587902718716823231747056488066361410151410884675230828537395352161109874644155966735903229846518814350408533699589383052965813084276656498825499288186806729092450299553848411596206779499430556190680557689710595350588373991341884276904320374795022614905955124442063324152849133328143754288588705818910454165626709222731438802564284431971165808133933572523069572691849983505563776071699380833897674882790043773999117443947081911241885278620604234075313012001876638143068543395064149387852095203338522373541143618425540763952594215884215228045406246659214661660972641020477054295132478166106323162349966057885197365241550626240463786174438904167307947443185069916423718080475845518359319998591526606556957234239248463445923418700026415999855363696152974068823040002807535633158439033824963993012763538221791742013370689802672097634774531517414076237948866933480235929875232216585519218587159168426480475587840510918677348929758520280012529603813431154004894262563775819908051243189047831558019823871081879022334660093348253661687871724056122000831580534886635725247400444325782218439673296712739880691814888123250733929002672380862980117403370312140454182328605380675177996265459896188297968299009240248151420340677435256907173651998698330482756185306640751200819607785822589856021537394276789178979108538776881252313503637931481793346998887736131856326452777138171417856632954362461260803979453740664804832378201965321714552680392675946393297340130638488096392649818897337083983709911685653463780547968713635590921997756421930061676439145685405641274700991206956910750185830346542146569996937293513094753491060800738506835880532361779530973903148254982764729778805683786949674344928675624599734827735914713253039867405028717047563400437570714333580614496945439604608095334190199254035066798011722668617210481479824427406852032485844290629090076240354407665786904437769183405537725451217234166452113733966705288489215792038496595433994044460963857232393771721500587078026738512436065975210659340915783227968928641986444747425960225830464440242725190671931812892585171443386752416027599076640381396705558572541421804204002344108296467148872364062067843802207670244402521850398805817273239853386011020222161873300709481962926575567404477620514280736282538860337289962764883454424680031104502022111900024597070713588628992395188661297500624254886988390046336486946616392376929555789165906674361051982730677620247994821138087976000757438583531690467285262738041110920164378999405046950787532123354931249925954431722749077389074658318663723757782750081051038182965216040020413718195603562833378542377429108487206096028051315873099302782630302222274436113180982188408514564086570467892229239126344342744701216205492188802301067556967458884971635366915742647315499712961956214880911607268094843749302285630974205792534413906653628057733028614963668659799017001277409653680799728536895617559540166002180146749408952151571772160750448286460704367344515235877936477093109990480966615761166498009894410843165813756191741671187803387151307893224737795864069991686157040156553362067692011329525620561060272304715215925336593083416393016841582259199269266590682017615005634029409994067917751465940886980980594766099474923636300564758443658232937186767223332717863777713057366262505932931143980253337983847949202339231352875326566814016427120379463154287714331648751595577109461826041509055188250971699828539403524110127936361318723536456925304653294166597297740068744543403338573380060604069613724660303235838879289005102229166596212348250497225394401949249200087493189579277460004632961449311044337866453851937629188763892012958603424787018605567369872297492557804740357260210132992222639287882956928344092856525306585747620788739478377202070174537844003992066206567634431110700666999395253042671325371280363452714971148694736638875151777877194325270098797700483038900635115159320469368767010713988121073008367778319391749929285213992636045018095959512980832348191844625477351231406292938640041349816588067815610849161076134263283141823724802710942594132599859151196997008049864158276490720226948228224390592821889246610859826145510273055246729809173747036852227681683071649255527567787203715113885535114030141137889615414052945462661234847027013444951933833857622546565650896753254040159511503153143406804987901992537147375200498395183848316655632220787765748710241739419041089860670558064348960047428277938829514415105387422245256477044131464499580746444670470923385473920117961931551141398120163573505770955352107244523267929092025801233977839613932258325009694040750587560368818737495961817716739245325403013192352707251074376169132061245446278850561170656335324028017645228268857964701219267004546688562439787157269884129583092014196375602034270197423608426618867615461570956636500959052507024252478164174748392634484323664808266996282344633168220143023355654402274932759859482311931802823949425626200147223433454916309598458015167444584628717104313081002748471832603820188309438744215081497001376806717340373380081259801592716663185938281682178579169671979648281595341059373412652032662039902208721664141466645683146087329289826876122519989313044822636885515366552407493286691514665779766853835174159780427259217949031630851893463284969454967185037649708086860101657679020818557368030279610267167286908371635914318745435013184557576067826259169326813888180632253358640845267616588778618106861033271009306222603935127433226316790509840557250147086651635562320868826358353673727689875634750739765021982309590716362980215043241675796103662417069851579995299487468456748030415129026326642779569111876857562028551079626664321663478921676887128106360599383353861402260078794357466405310966844937088594650946675795289534275341293140320963829075612390163428183910121900485778923256887494958100757217671667460164000480105987713019211937831134987177665745049851326902617742018597145554739418774545213767931494364452937561886428900918994116359417047141199693867728153830059601651562941882019878396971275152721277442402958579683572099852895288892248029548924824302456699932894979205880910177890509158544384362199630143556285302948918234805838730254548546998220839674327674198970071741309472457720896288224879198065115704291299592343260584965509182835853265370684233921031408506433651375888231842300685795205448655169604830661361233232105617663010648765530523174826414832401053564314516133231497586615430092378172271388598309841914711561043345371143379669057303423596043459240803731419497609781385697135941638325314205112734558087893410283142080448323571570718865136137669684852234656911320135917894396796722734229499945432775996472738441611831921056071130250343598147372108337237616698837670707912805544682839337893083659499326429191793883684004508077807444636564316059544110851218877210776469684205175969980560055257043743740435507015140438202960275725879333365583670126618460020984435031563527082293134526809161194312839655676770446765976940462659272447525133521889548762307568659547213971385583074107996557417135291422102779852346862125741970855269805715133111684549808372867815120019775525878025868013481322704364588095544991924833766570785656471196466917246208833122653587961912005844658105928727861288755103076207442753230767115151366145862066579853455280127851081047604317972104381690874488088426090582378923861831082145988822116250494468568627272082386369650817284485273809090080903845669803914895019578607629493290727072754875498692235539407272098344844219292063983363138253959920902632307769509407191436067359388861449945954518755992659137481472256947627579327587749351763404257299843384507282558519165069117763191253410876000024811613722237963683170342578849106574462736711482761976378817049928419555432459802355633448919717069978253247931468625789660798528845859750789271922680846000146509301421339282474009317306756572221333620865239345524838695855873646177628363733192790532603397296316951039541651191325398561003613596862792261907122920972759144704711429607306029470033242822697401359978626880764323908719345977500437939901539927421196889219845609630441093431224889166375085702878586910706746001319347678107071003989624178233781745512832528739884503203990200264827208213809952513274574376856801057957026307031317620641787010454078352481593420072785294678334013401296963600576858958224205475792549477989958700449227717338552491691940228355604129645727148379316496023721120491640523720296604657801512313538566984487799769556433644507091371196199389827050492800338790229100478567839541611073180845894507420137959811726557575749683040872095159354404681789681269400549267330005523794038075372668827002749887043685278454908912384207046130259440286965460002888750922321185556561543736661584397980593584214259202541336878697680192247588900581071793417534861109579944608151897871844724104768122216176753219403173181255987854188012776465872019841640088873835445906221988262983890605191237383102146792116472857894122905721419788308018266192971213115210381833809777028113844049679352350471810913219206803187709834162934652084719070126925515129301829277484969747453171139050522864400927299864470641411010027394659560772619364473253310483390822684129189348692460512435024475591077493337912859096561442169867907510105708952799590301171292937634043650176551571763855522653020152081097627053830634379579147561014016523464351099261485940126784792126807631403765640526284604460778159242814818646300461040157391486459056382626980660398633415567544780697742474178042033368264677182209208382355965752147898838865237462352825394130273820921073203092141495708896885295600885514764757785079906759313411186643751493064639366733114865153280124762879862984417685451785089092746929884786551268106050903996957178063802835572193918605641295962744529690702898054319475987096564563098594100329681816827877783350290022157228390182326061888365494369822680491715721094000726851406054497964637557024178995723751230182505034789952162831784188166683071122153257304029111097905667519301853379870383546825655864561490995204499753441986955161726885837322771926857138037890473326913532464991410121594586684323099435925047002362276289834134757610601562727279930814085822400665127688031425869717856227068564106234965733770246917574404340708508890292040332537979858146109911109691596307833358110730679837570183666709883169400337693888158214903548614501656253764770835494028592614997026820493181997195794272515942441525598856994901813748671566252909205971403177957758768813159527330088014819067508183756060951679086623325442228183064022149798730142576409093431080581879752220016946484771082684434294186563570769590239349110383034131818710248668787590484214737946978399901817263456686082249960323758888887820013466118858185564086362843280028797803423180741067393686437065579374253942194311841036090951410104147865998007543195480393805629849346054612088691579256503185165676588037359518672379523411920399433244324005098095409536440356240983247700904395121452849256578577785929722544447628274526718315373115448594857395246638320119999647057562635523885264555836860522776822842864506068220939148402398988582563222991921387084622861237890156742805045125274317273882551684373263066257604343952341900129740565072473592220280025585685691119346990803429993175732128959548510901921960923053517933906763412304162103941765173877177912542347723700858616813375342578221206415389251802796774159835335018519271061740301317896140405782141703569341991972559469996984521969177530546736718080590028901066685131222025431185491838210719824424712998801802484181979155124791483635254353760841691326619367600555384791674500261286611272305355298713509027814632536968357821479499861082133108059516482545549529361200194979268056751917799661166034424521109639403801377990547327800212698293936786945128288483424330465637529036957609752100176130978144884362241466320173748656217163566037633630329579315981704347582332592680290710598446543763669292033069702515012772670366299783001747163443135364555332553880180430188944298061698365261624533914067800503889569130041596561498934801500102899143084031249674212670288742914477107689274672027190441531262456676332560773856351853565222081563074135008026311824455015895703508024315009073337646458409163115756098048553468511108347077072764209096297534715383585077022851535282836092304698126034170384199529036508015499578881078088380362249478733694048788388625137132679459532456394041083444743420685791926633624777524731890794133418671625449316016991165632477808613356551363640206901266549015305399368219706612192120688394599263399198452333734341474999309985626450705834009265553101353729780349680541632143844339972258081409029702249384965580446087212614597680642915436319218929173919358811074284457700887343192771527648431992369186569497935907123011948969578967651786772751150060638222753806148227806522911739596282907534001801307749846287479163738917046937587999963814283747746824336109449821126079247868416493380662526339809613784942956754762041263266803479029305779735606564720894064399735172678473946866224276745432740936349459060724995811923480651249742657419658365959416235871904828265478995211813904683526767637080833788859367770344619349679079070280540023306419098169096028193952427349172367206910359189131155101826854489982954482961895144231260075707874499045071482170089583933793297236198682420051995691403671052270110856569579166231529863661414692297575652913924132687537592208301563905501652081822133430341720868668643645766059397835090467309942774587814375875211845176810588444336821785819906346073820448458659015281741816796204055676286149000005106956320903225357405471688040845140141459375213143263551945476207426591982138616783423579719112062823501935201343824104269543723516574341682597697813870301355041318782613614610860804693830131191549368373654726673105794714524912025100675509982572367215015052356688032036971974014446555993199199370508678454598686735658078601141754872136199995188370698604940152372930569018632943021305574809944033648994778615377957543234207719395322952094775364597576072716233279389189143121561839654499861556798697605557361905368954695664092057091357791630781306905808608065580581399934130712748454964171524146751269282679722498185404726490190614604864910616636915695504804647715156396793508442491816519356007323483335024590079734587089694430283025609620955961641880961325109184563562116582918890408077760969000311051615569623477150551960195267702283252412286224144064269807271988002714320503182263817506721430079166712886708854240184859676633126123810246616933314412992029956778506660078678777034347105021833306402885700693056859723419321263865830208859904188633823031656970954144057764985613732592687035267517278625007149567850442986782523323794392249484691813315606603323478450064161511051555352996100051010956532480823034086142491314385448969561980851445300218850816334460422444422022908603258867288550963936905856310888949662242144616828286458893875677001782008606187549399404013372533334496866770303685422088490684374816728454202180615032904520847988722815594839919633239801706761339097622903686549510436911624967119601427699012185375038287168745810587121989342312188012546944824372013490220875667132857547075553310475250095114811147668817987378495027296824918441760160214124331883342927261498015812270256097275264828279123160322379394439909925993620680356088340731339907124019426468991736283622941539930027968101201160510338744012159962094856415320320985791090903038292869631061446084671175019500723929214234658217720241226777461104885588308256404900545725530429377532549588001373092499163603019840922678894734956358142420005686173633898069560834358538820007865323286226822698172998407462824587023656531446308582590032096037597136314895634491250732480465685316349108359718199458240788705871961686190623579518975648727169957425561233949930460254343308957552142146596364207154682059686352572782229741812989498348922547675460859860737212863570902498235349259713665931795555453442722088378880464819467176206074689970195899109530917177291322824127446478059839507900708158599065287613624141570596765105194655362341755637912861657659440372184839639724102607361994561778453299936157341245957537027256384176515787845592698555663912221226321916409694549012987311032079593451955204221456725252879043310613330613090731744988750555491527616702253980736377367952944972074052883886625177496076974269771280436945361010628296811818070377331214439439926705713340554198327145876486657447725626969285674280334669146711112320499770069704625359582272635690477195081522228105470319270429750850228258338112631221736608428247449498138613478802549816031608270873822258592881923847206817076996446193543511089456848526092887529163239241710441936849611990099974144359009955536954000113044094547816345959884665951518129407327675706051078003681301206094418478333477395780119942448339537794464920936517071048069242962269335418187394637446607980342926372978733693036549591175258016690663523594047335105334723045061048987233455233476909143507566315729070188751921117342367157931743048326252517530075351554163562577302085108359537124387726772606025258308166965989327762674904451272068661236581694162493428255085514630084532361811157516399937435959923808042972663282768985552799816485982223937621930902427184732934127699792526209224658304009704582253654775162320691370466634273169730101767477987662025879352901368080646051920489241789096923054489342747498023406655915207820588149460697477806987225758812917998286238091999780598130737994419609043856425917706389353507845493910413120760857137911922470744088264319765639022927438382820967737073468236578909189061355204760060855486014983911224596079334777211101498016567118176924286256478997369800892749821743931746477305263194361954584444112980357602539735262267852467776848600244920818556568885809974933194734498267456808889635998605665489595775002692805059941837220966124201549459729402785460677505062668444210001363754016886094662107750052876074731296224882954821531757889414380933143377562364665748160810222617723783339456180257973358484236439646458985756551192315568343051242966259784564986752989399979117106751154235415534913685520781862799211451621483377894751617071330451295736374784958857366823993983048709700583226036997613864262283949014304946262905504991522410434418372766706249773353842555836348131428452368556744080484387748946455967605040019369347405866842095475945620751456331117230271568792954083714634572964455478528662740521395034942170266395742626847214454370588885377972567434943642210659067178685490471683864916729368503875817182054473547567016179779040809571697025822046557862965599816147428279906685109027432794425142100031999907551643234322734599999839186646638816459111734383521990771931688033532748219823202547399116159209294771412643690181456333902508468690569970027501435271112748772816163484603909277632049698565069394365841583727409264979724058071700224007196343603590010474679688118697337371951021447129632468299278046190945725550127589028970859290691803173105935498377545531001377033098513032894779528949405446951851664903521026114476597470235890569114905173990466552635572499508087686448757671589256800127853068482271441740673065418258920900542867843360153229436368702564376973475990545189105663031077055906302293725008469230233912451918262575065910635742761034942399064254798879599651169068144566970194695268378514099282421408582981245672504646670762050022745552000960331610193445630309660581386294868295331883109609050637876131063293355187814615062505182832849514839892483654828942079571970307312045307308085540849529150514453306197517787892300282401970514226186491972514042184569425090766128996648035730156364288630118601076467094364368679726121731099214812551419000673529783528119805453322232012635019787319908616368759242588659472476034349172875126637495099455173028695307320675683699510987951300099974203332329940480486312716578800770873978309837553115045115745780865618905459956799709163846190504275128278846221307925822379143858907028793704414911655223394050404519683914646704019505657166223781582153207699524154658546225094931058962586130947915341040376733656795496359346439149075499476914715658979545965234443310549082747221283825043543583261237440243867624301322826485308793866755906750567760183399785895130880905232700946157711596235308513220929651202219923536743101528016343789920308431658962400358608374875424601111456812753546936701411447670720105876957046449803329916140166869807897208686650176679924930447079702597808375032255634179236162727605300066243451860268652611574825104678612808830744593199414141820330393335982216977114182230066777000410596925214254111830846697659526300809741991665996032719097549289903920030917307816762534611202057747059629635307463238673749548566544022814029857147431536604384213967191317956516528207531738800081096347573822433559628684376412547562000270365248088382040100011545695782630534844541068158881276354776827696050983478607666260762014485983916342550751131510474368486563900330369271461161446294450739365019221135204475500736590734003129395797043455203497092591569506545388474640396667188579062960348578781078521270977251751228094012931467934273134738206944440186753384325724881248177495623520023879335089974725930658640803674620380248269187438536353197194479117183407446936965796344785159654256534427731902953365831267161885063073746135677774698928866229060580293487415124600784595116573869171305728122710652482024571988470417326413400901458768900469894688963899730568743492300375893022403428037107156729994742610141461331601931031959158416465342566810939405998680122894358294125905837056212305641849940576671459922498868404357847261530749747667947497369310434232168768057953905798326576392602401722270457452008839299883912794756310599917844175107690324610943564545669986092636811682430793016369135824334617714021611670893087149759322405302842037960522424172013132643159367433258046904311882960484509839794260969838879596886313224340735370991756117631425636012633301178019889340893215423057012212444690946961383112884503013013985809417143996577125603422280458632029799221916932925870514370870190449490943086650574117584047257092964557042393676167180715003297761847810979208195442468692295282572641394154364848860177630495742625044870300173605862519827777751039881328289461887202861292739673414552456465828342436932252005109447233383336526889153233187100289322486561838804377604924853805186078330920565042650545875786952067858157374094823767989853574406467739416003382418535998456037757656816398382104948148768004937927304934676194068916220663070752351616008884705049984259953691045412612250872090434070962035486331092759806863666700498379863191177975207106654244090537217346499181364221922755570908039557655894894519317230341131069197887829754008553003406516085283211196926601306436514268544630092635225090219654417232754227798020656801041538940181844213833093418937656690838005765969962106798074159061936313184336822737247106587301433671921633170948170412919767494623311509863256057819332634470649251871512138739985030520234101016572592305382360805410843518426975245557049510439969620344531046770273650284559531409244739632551396610687239622822086996855255133978902125099151789429093874183319256631224015740981844006949957660835119997048870421998627973358948409535181076475221788457053880797018074459229441615814668847773873270258374540009349147113794103011731332439453868540894269065750635219634984735503435031896277461237674110954408257259668464225842602550543251084361062399551994462263495380941899539377909138286782312644227198843015406531976812072041495789155184457490048417569694813309681849249351361435622452699434866860279024256506868100157618355835194501025614048845657614619951921920460453326226896656056117728942523671030324191669436374520197182187553690979751884752199219916070963385559856748339001356215015674379448929085265179047005455523231407867933586080668773567395241679402009266121227294794585075748540807252507114930650052338878067833907216646318658095726196696578334632780826786727660261814927045715076989854013262250072313843801062624510929005791592763370286523818269554390788346175435183629962362759141710850095693686893150200146453649419614928325518167403978114731548426900670486793773376555544620814853359863736476780578970374904348197407390593627343534839104451619646240591551144386619808807751551291378818312724853487559943211784504918984985808312770158330416859112052354750756184935503381561907046989987180987477115588964283317432059243663322073361538732401964931212838132477500541635484752407143702853167731770776572182835588317099434449909905848953360684507987794453156837411165926895200955316366856135225125984974947950643111012393309414424610432947682982510830977494848150738443757059268179461628291640721926983638254068753082190155417595324685429971047940625028614484675599866069049522081731509026600459439857222083610690398165162701069704136846769283542563202689980172059553141903169454032676298732831517438950613041309450760451701402589599701402871832333557992782171135222612426267198028706071540790167947235361054066835100383219756554082451509580422409471376542639474393623113166212500916357179429949376679601940342359373734833142353643358900800518456885092438517664779179383090168193491763307873146043345163274193749154653081668426640992825451467506648515731453610079671705673369024312956837002156055017605817549694677117842147334200616162011193592780641130658515701372413641429999890553164781559572728445130769729182897602621324851668728436085269073625415897002609171368738409171130631842391148962700206726694172478717469022727863374160742215661538600891506667702709122916047298934272658653460888679097799802372148698997654991514335391944295423494704938437373644379641176110211478908308049150771786562375172330122285748626201278630364611807177944403187881540842927241072417117523662282457152620375176335553330759944914275353215238962854689400023473447787854190402831399939697371462257641896780086188407561016565015709305636249340146063326620823362719723990762083973325219893467706666254348752820216395830032435946249904104336448488539043964621346729600486021799849326150256871739724857006291132231326855407416559423485427333470544829272789979155961069852334748422023926695399813976004127234263187704476697907045523404351786879964558630505828331317274086757367912480060788730980195295866251676588978882688095480560224596975506550081804816158561800134867827143860865044027513006086609719332137459037096769596447910124602929446948960513758615588543355699292832836865095865419511895700830095302182918807519434816305736569283705450983418557738048642033961121451340964772412492490496544773362673956641600778394565733652911823960761831599800230398147049688106263594318886013430964062578455008211151813258627224165015281998457804478369749111081668926290427274198652044524641349302718121242539458478361835526390713838319469911022280875363552082291900107704752463088364542118421692831940672994522682134543405937177655544316909273661256643349247498910800815399526585196340825726784781402294325900410909017128667927661511909689174086327485428289574730312043274895047748495075249139143566316757142666935686057038835628959211589357059942340535261088269907202593422591751890902411902419830523039311597167143317918624069869984296477581837273379380934114190521518226661206773091204390936250793216761550394463751553972302963113515157318444708333352248962420950932428938588543061200156447759874128262904296349603040505014235700678089163856234965494351743849291648997567671402936666979260671571726033393385929993848456695495407831213324378832501649500221521019963074091059178962455144217991455606748833849880268007145883405178016588317304963081001747393166021845563470965947028762014956794986119609994791222647223308418706957438189661367595032913453318789742191400211625487247196605655387164113635430177302686684330525959143916546517843225998392014084192068261710423956694036738306489396753206364352958481185518771825086092922604667232138197408234299479618099139291288547907534388106331230129889934465853124769192961768428458673005437073501233025436391828709402160527138336216061857282655382976266793350894389040560445794066748404578906580572515269070323893594509761697859360008991018222278114972893209437035706453557117795133622714686291729842970154006913093650442901412343786083909830944619221179830161776444035153594851507133817683412057436085168581769986198825726900619840578620726872088249011427914395862343879704187800068659779344936382239451330603697688825696298176223108797967484426018123877533805340756782666175973517177206071011521892707377279981151081979793800016721204201763541006337787270078743913474395446183989223858473972897307527460471197223456781183052263730378119824910617302196666077190800368149472302886385954797556654219707192617761115125953032517527612005640612369173962457269707850427584814002676825239490104542204097766465231607155814764740056197906263093106784721886720302268235738293397089897840316981961468020907209545388960020626214027533616021048820033985168670195553842725812800134208600284161302950098170371630984699562098726173283445568037973065922059871711038451222567962349060290211775143219449600696870655218929882310198924192056292305145676238667426781088233312016522807047838120945480981787183487766674777526995565531527446604458228084321386026318666106759945490586504654207137326890096900732416735297419951312733372093966326189033623965164294465927132934543444330290723163635101892599365726254235507211236464749876024788921421391458630214806024508191062356067485661155378027472663953272409068757224478356639060303899078394084360428363214597993173140275065449146400676737052345761334023659167949471641378648668727839500666090011970813087276275352513845357930974900880530112072662827366984027864732205588644183319255109086939645200775687823014507502171926208895294354310826248882424368214570528031899634244425430328787925882722254461204629916940733614071686879083601135260222248974542130366423351026955623144414016911726598748574341525210192849291714953596856451535957829176121596519927641998344410246557590685694999929884794884097970617762558558980985542729909023920343304790039659912721083145868729708777915537943652560205074320446121522167079886051409930732771609336136491477942086036514863768090969352031951192255223952442603344355279120717896781451959650835066196659644569958768434874152499564620291552000908346385853813222316937099344539723832823082232854271249829597160148910074445903762829092176856864392060844335786310727201026436178232230275007628971150699710152692601481089565242748369660816262655432014289284015989767908002702066725251239610308518771407442823122942464176958344417476904975719587311315828029822816518737686307275675409523017241034445862568554226652751758831313771856798576341987167522473500031924515026547298483327001530648676507284348690508166564843471856286605316978477602928451369508401119356013144184283121987096362685519785496557090152280274727603728873845430331440741803287961482976034862058052062872278437804980119549799309557729526416853561542145898565470006198672877432516491808076466230544943543040220094133069581335558593658647969891512261130273060665549078413840443959516386375932009471994061512779654361534733073170941993659148768387129992196414070521217855894556776275621116773785401176418043057337507370064789129711868783393942286576120565835818173453364716728365883602461114949897001327700592620603860764992940533300033586673886506336410235279412022366814358987609771530388163490673705118924857287067713421848330136099917304777530729773283679441251803473638667966224192994843263637632126544727050614224050524921469447523199809681318930596802576025772476953333903087428280030623729128876408409799724853542867358821024114379597733661646218621881009050943103471159763207620272013139051565845830828972950944613369781968706807582343778722275577644310180860650369546113271757415798352116514382118880172057722748444990959947552108738042416512876187664957691599443006027456515437551399019432203055003985640890372703648789178251614689491066469234226928589540419449545100294525056535355142591350070207137102481282074577455869195534432330240331879916361540928319452023310266503781878556099228833481002525927210472838528875200771318889328896335370523931708215900574341620547366747282066536605723082552174222106649743795012994125976046297130450139814914580567654970284239787395236942900162220741549686183457508121251585395624794685038850244880808054438544250123275086308825813614228185643224500607010423893364857712623658994517895374319439656545452605009128941048530334632262216684159156675388395358670861363419188239977405893715120014979625208691111585105238688255033373156146793379700705053982093955129462673381344653657458294194585000184616595194031482745843415060027375967091291331769272638617938837747417626263020377462118776761467206025264681078734864246630808617132527456223829080103299977973523668390562917862110583816612720634203148688648832048065666789085629430413269076302114752057148341490411035707794204617115731138757755534591843046254260681575032226464327364995234142961134547561930489100000184004403085855005385271323383322939505696636336315038913006696025267515631180482600611772073629192292466009048504088111886011581778469211486010897724071857253131719659207971318068987168042626372272368738979178913620720480336052450185068472895456894981269794303834032081798428156433346236035436835684290911648090230622327897950418075518004547354587990694335110348584626724385179736302938604916025709270453358727515652775136245955517438176342361039374759762531148888154573519194697836003368623462871345718188761145945232096872493682676147743823948157808686267460390865141710461244543851409412462651838027248590299141606569604361369526743335513846189955468505298804902706460652648037960024819230144193613083886804506273631688761005923512551546912523595701375053179019002647506213214384618685101834112711750374011794789349405706852363832138354868769459965558944970767732131365736352618573224912476402779555781433298256079632459966627627378882175326591756993285712580024207206742790878816297938429058225714093704450270930524968074257722848962035229671121305379362327863299802852296032739599664809243619739676496248857960240968835762536715751650200323802399477186985250447157561005498899546520339318932355023870017891452034692754223568345834798461139205831565974922261103869550662481695461438602503759898087672155427223773124785820356282428897415243890591403993760778379769299872001768857198774704586871755221734638679983717973134114984717089041000908618033925886670133479089943534445665891493744064744062383498787481175144469704127417894020734585841643631491191549608141364063738891713401540642003773303515465938032216115598532559793047201238818687396051646918227145744401672131554488850845336550362877103950252410392341556808408165659497392987362337962154252540070969538151022078791686572964946036511925239182319055801546857788243008016842431895742014472361058957222189243584427379513755403720243840835219732734045316904884274906032914672444067741998116874140205625858691558345271042527524429707574923872586012348725345766803337204201802487310518869147983023830796023962662131937647523468552104615597809594750530323191143723613557165788967334671538503823816203127248357869408553213536081456787033885761257335264006486010177237570956860012109258224505451947377144244245388414938930943991009992805376926449059590778127824588568861498914480227900685075345543851386583665135017391770960237558879718235471612155180707848632854244251108379150892605720677672323108604322292594664861088563225118831252435160620092508092924758186107389264775218266708774657523782316708749646495300939430508414278353774930411441291786461928400310831258688343483370589610883859526544506571413769364614785442717691631235479249775280072849930191401781000331539448045248672947564544743424990711036709554230407851923131008446170161582728155952869135566722328310162501432773702653636991671010268105324204118413763586097577775715772627852554493890790971769224137032310251125746671183231816546489534887145559168732465652218188131453247864647170897674310450231651410172982450022025878193554569856242573736526477483710858085957075537690521607278688462064027388747781925047104067103007955506332734832582434340173647244566108725721308804324781947961334103789696442262723053672933635612042560330535628761696733969302093220492872551289577747202654722560173797060064138231021158243116275147523579582803137350611416213125159267810623380234433350620802773717939766155702382328565883528522148749562912554608140752285819093428671015296626127823281483717162907155651308277875799737222716760680867942572817026263389819496482114016858326182405016684285233671271890571083165887687866057700081430710135326519682674491258392206578031225169960941731565086046222244860402207645915720880851525969813491212256409279666201826656648403854716697454956379182877742949946138710788695675745981585991868504282388331459151358318500606113771856804912776161701692188165379766704472528949189202436178078042135862249187118884430306013609984802224467299570413701128848347509871950624031305073293281305859654434791686368572611090251177199392465214103761013384136730447491657695223439972988481160939341474876929548632495257838485750360767976346888784135422371712963061628002261482056587890760294252787139972661042146662842942232613804921291905318077028723787269033395607316201880234304674104503459742651081816242679657138335684543161491893328624204013421027216517487969835335080385967386800051419566837655880854213844499411066343024858649439040317157219208080256211680109736846380094451217087665245229769951383492645439268980559347898275345539557106650450673313332176403395821653550641745046720230682733350891275727648701882826656118415698965799715375013408364062384583816595055065384923580790197176121639731026844528543188072182723575935179314109223957244186210780755042560457354058565559874973628907949623013409568011271121147426225714316821338994828695007217541612070760415668238770057520844773108197872408261414822172714530347590726741674836338591542052892930243910727961755877135493495914715375382277497020312924093735733750989648918043998438176539716233956799795811706545789290617580150633969821804916033085889805953766379309065273505965979583305257524261452920702868459349235586489266325808332392595932939221117044159313521685666646229317948480539679192719096246452262115858350365214130189464791675583868898693263460713437065547220885861560832528899579681358095277402031291842850588258754648809798844609328959366601427191100547254464894210326780822877858259138504743012623539626478515693843521988208280337321828645065935514119055800764226501223504447421616838475574184398267873314309489720295702066866667108531210259172508185122205002027694317550806292112633037394159689489811047125696225575145809835558628182871837391805638727916165331646990376186420910269014962965294378794049848999101577455819155937853158417931294476175924318226209720171899521879856877576869110245211908465569274868973385873514602033393114080131004729809867146652980452887391209644425413755932781014345015739280456027026754102581899077589570023375535722627075834919417537922048957608318144253770923025283713057823164866166927918743463769514761958886270841037682944611239915840113863068788932873061274215034057839407136436183251245580068017802034393662869898229235087910286980100576365366218836054033465782939360850702900555745878732721604415715029998557858608892598257615257621254304949803224052521854767052404369947178802191480897022883914097442065295915962173056603701894075352166070662222359755667827795370767749914531975758902480931930267819924159012703982841645158464662097323751030659255198437125348200809034665421130943805278162830922114364600286542238902097414932747031838704164861174943126676633980569518817539996488078515124770059490206497312591077133369746452863652545287483526123504834727944767642209655056624000739273013727303797598993297187836060530962874412433914937703295099329982967623449516236719414725412633077894953414043340950969699582809988575998715594320823469501423365974447264973879534732470218680140559095552840218597472621889742646622620026423463416531271962543939153359642811288623752264698094484959646395210671008726035511082537983784272120252572458873089017023459381653106058268282962817753002679097651257210252129476344685900204926126677269378713464046985352542595748256790903566897258873994185220247223101585026669100908396641885898319936613784286397003348757920452342390109072116866045921111764101700138560986842881811125640490496767101294071651321138751512928900896209978381653652316955587245860465340580387243058909998897198759660365064657858041050960853823434157973593473621608449930238050135178341246083198591514489555514478349300106133235071607853092983465899236281752985869821422917701559288185324442440143773889658390034483571830207539871399792424597175627014626001725145287088172229343421610112985012893143984056882236817011712148153916054246770159128358137295729845993971736846757724819680259282415485842554726383992369268065739886794002596353878827815370167573105825152374461716815173940101973210183931310934465341471271346746218798846833945505984747349534315095669791698740066829263491276273321474933654752835258143731815306289465365384633748677229815114880065575437867681586114796040853233474786911998609891674478445394976440115417612151834686259281208147429922640515917394530232698084867497841948426765611087852518217265877428875053428521370546202545704073676848307540735797586284824011889015063983875642922271786101757189921601189053102751942911783592795799240847709389009367620803712479215217587938470677753959676488579356997655378019872338491872433619654746340530686412689282149977677719109558654810711989350085922334323229781475521692903339618644184056082073663462366264497428885402921103063628688053659551221067428948244377287595507885707563148362390065281260823054884343920096813583587536516148061876689907836567118917650779487918727872218794258933567523758000985236985848186331569056546912091646406447956065878470603563664570256275156147604166001327471982051010161343044901229729654836434200409093052842688804742049649295557080277337427643114375304029604818927468321293639626650901790774478683183549949874609420950165343741459025680638740843522495601999930249542179908460547257121847889919812990561227248640729072204221395466399134741027725831167347268782826109378338157990963870316464356130989113238032382416518407479293816369602080129792119235733082378658869780348764697343207222313466710224570958511523450380478187726475549079794707464413103833914436656724085789656330051343960605584744424629323759619178903494741178697965146683026538250555559284626970808397460833072500649803126633976174457492001004622832749866171650162840036779677697471651597872555290191533163330766109268971997806552212072358312927493223701165517669284225800613414450058631176989116227897573968152245687013595410367323137587242216943190033074214910939879107380648061645824924711115278325347522312053890245108139559547185051836868610800247682339277059470216317862683106058060220032990599031072784358086230544028352156178946989041139978156582956701980675869107557312019633558465885129795787449785780949235944736464209999891879190860877844964926846319746824284968695965895099495157814474104004373307727728698522005972856082528354811836324429741818730158503912267023852994297076670051900924772851228018677686510010333067677764820477378561298057829174664313076007478353963237169008669787319470894196844298375851164585822761961209069682454465552448898748965517656540633094896044708738514690054911415267774406204446562789181222629710227164726302343113583329526606819038126707755729497171383506671071152154947366578127161882814037113599356373052795571292320414295097099284174742637409025822758848906573120947563671688054028602196926461750404285328203759049178302283091312769663129695108449045998772654482094231175076502263026621051213475677457698934050677945291600574408575299560075755480673309932413390286442214293030790828867724242077591984659281238428952564650422260252774779857930685030055366388698911306947463268200588479205286584488328346173500625889162142533442768367308740617512249049327445470931367170586994455864887142549538064188737891646144536984093551018794021725946864129768085082102571128061560364438630546437319205882402892774780755325880411124899358476899088657587345392967500507169782396768829909038600855481005749865615698978382915856212708841955311406770538536640788795790896481606186408151672378603215168168782302932362626260509654859104878291183254840624772136592406734745051558364110916171922191916504139730879015840445365821268428816751314401448325466643164884844046945274970459957749114426819290449187894050639288063957260520308979006018309141369926141376024724172199672658543431730260321330858700026240049221920068213644555331984082757257037449834688871021337556277146481161321578688145728294571850245367577245145807670042045849391682198162314492070655913798865901012413831543036285012615967326864770843259007121208481346126538182179934925996419576678840427348397759273582325630088073641184002106049149383470373438857466712520798060311420630387411126295939164193531217878305946270320468421297391924579419951671544782922427065082342124659525913712428247505447461942197591105279625791030107763325777970888511153346734136526400760597962092522356723869958510118013695589018276085202522643922571994314790331054837836676267953665914018541941967436391989179172062016081114391242115173942104631877097861435564510971528437845670161319338648548892890886716898347413150194532071213263960235271361043222346781531164833931282578595590427465827578530907458295016643525263685900085710493860372217717140703435038027631421284245216051685125751833890846045998753615723910561473554714737335729079830747470705489483443206265933104771235824705464833848626020906518973944829701481590646600537826539383058222314325365159246295241141265352037906177200632826375559378817597170591816867769342054333887867873090850487773418694098885766918323818638451965858955338223955621309634591381540382451830187915309565739997206346667222277309928573654716980248825669095565253297780028519658649544559536585657388945070579275946698219825338595645096206781457045666724089298001462230146333056138527592737484882967006877894070362771575919924821404091655609119489303501284079275500627370694982584224409443643841562920996370315898922500725125310795191690479842024561744665464538596998452739752714261081694484784275465650643919817980866006015229116407617955947698780367145870550149245988985824217488526170444965526171373917734648974762301587814206214733376545976050424315327370198234446069153493604603217415164620818840845215860372119855882581854813110046869059059142263613103224357010492196678257196011628754371482657894885820927894645505604626448173616937764608026113095199256217125896572308154610367549353492984848434037525418348991271578213875256804370530300010907118122164968227896086715633744983622837384402767706469821921265838396087161404269895149942466981537002112701451928096914831348118463884477854243179630315557977436926846757781199817556299180685421675469853983975440872185591774565361458081211685351140782088650698164530773557917599620760783830628890855383123954763909001440032916817792199504207406383377516219145633043755508678276731470229098538624270930680656841807414450330314180362448710971194970753460832467018094631463138744062137953862470334335005369746960033772068941579819734184120642746563439794964003072925149848209010562404381802539144757902774082390517081737894237542473488981074869743650828869007264973915021797009194737701753357233405010376835110866278572616842236776259754380184279696606541789802339581618841946452949637170393140335196876874735830247865361716032194478556682072606078034227282030946696483312760193645879705454386779226521761031215762327912502638688891991743032714889278185688544994369654541087443470988155558317942870408031146658668002069212791714415283966286849253589248506196534329782814477198724234236288501115778629665478249798294874356702643084343771129671359607782048480399279001539258019002898918837041542068440341085322692553714883508526178413593321230613866945089667457087981473576377423689087458119058588858916006687167344560077283845886135013207639561579514605075756629482499293051477642256566990330427940439282198224775223250905996452155649762969371392061814527390900786090091168203608839821190499522733465770747901060109811410338656025473367567151124521767670495849391965540684664737146012937386886451885556481538912593398983775489948599730522147223913753283691993492087951869713015987300819798753754139096353050101624087332991046954104488758105399115468908295951917080940270654198734894464092238160570853796953714439095899208414540521875409486534139491696790329040558621445338739455530856453442883844827096683398317468160676267517527618312335738667296788541908469254372039016807866390115169423275836062170019381910511231903283511301072473234549477666416485086852802505008026661764304687776068787404211245149427809937576957753239923461886825154654888169210602266461308729612742631332334220413452082167267621447748298759902119960289424575929700141605826860293537524877693563221309912487664364275544207386867245017089548024146120370565813315559418313499337358565530975681568557595213053011357539837881808599285507288504057012957230612041784400511167190791911610877504868445358938196410907645268105414140048625765562855793338269143959825934525622962339381645913079685197963647160619095396873758220131839598860399950542211926052584876145048126257596319629482612770594503761901855682773141836177951070642914052717507940505700778053912089830744129089420016508627358788321645795431506485842057225640900825951384016887587963517120008977449671176906219028957159679786651320422420570249897705981395120827991263394405474462666107365894367986375010910299138860481330397317459960834732422895320065671137781770992622875614226415820734472529685158798223986389097595220807454037706430490444084195443922189098266037835318258660704372828521408395614834018197892606053964918741975307199163143495359615399324646413493196562530211759536106116884230256937520693528013868779673170978264479758758314147535428972377389197954484917762210139542991081863013194482302722952496781780947985452439690968643240117262601447967771974619961780578151666825775458664768055352836937100333675110299516334853951066546075239252029683667743460496861164936919286487094778790171963346033198897329144938169816919712924724306082810019589458435065976605051474016447364385773811727927670729367741668631059778988021226074213268713115946216351939404881184819743880898451613051962526510927091698164449876280548909287058473843222870829339756541829124817186412208702777624233917435312707449932537336950668432362354351145512337083232103307125955159538804948318747202623108712588319876111569287498421327471471606383859881033531320005732277548926572077892897053677536121710167035784647626682049860653722852220661890714915866055625338599415672868138991541234819108014271882823502244353767543506620177821548414545053486632046239787007171639273220044876236137265886165164148866416827988921162172878607800482899114075980933011972619526821208619703026852186877446262302920871546114841818710182902604873920634724658907384833593576912456202571487033039217689031647699869645688424121564788697421379091468506361226117193469243037227244355873005834782795940019295590803862015006151938535335508542425611250768649920293091911572245850993276545663200022876575898011164910230320269939840910426093235402720188719724032863275284453107222376585035237898523810569204064836659375724474034197894349999038537834198313956257689530794087761748923052993874370975236499722869174618104811528592891892530778605852808819492854175607511117355575930841942735155200986832373560827842768150664984453075157377559950542057203562580207852666574547607756936562069211917187082746309376841649677722200322550953776794197121970964107569300685756831456736286689257626355710211753811961508468519018387352011359946871301390434044132882491965289092929602278395687567994341787957337650050658278821724637137521560299732242219965022792596660492056236409675592248042141395827224966574477361239056050562843931507431216611670696256501785942516304374600111055746093343541593579266893706379227406499595168906671271627617322071100569935513570591437834750763838079572502776431159390122522387945962921079024512476193553150362428023217752574491957438890808820511905470148727581259156480230738930005767310850710236815736572588050962661092424206511563263170586811799805820198451193718984577994685324696245588887053373548798422404972981472068980302601325366201810735169016579465936044689857969003719878276044876748478793705172265572134239549265830743391079992123098071621983628462019619799357020584326602887309058564259508578163656618704911486504613042573356882504390467142910893657315917239446857879836624344887488574181905696278262169126535207031227674599322484252529781086065755097340101802395544232119160042925130081913216119777571896048701042717431853888789734267243207452984853146130000915293279420120886460479147778125016403541276056921828149278554758029302625812142331152504106429976247178270099232344337934701487685275849612416523986610253257781578374064212628147955503960179737575743858204363585225203806113605500311949525056136647592757422614031071491658925616393631689345474428535706756536835338700936982374055369338406040541598825325611388755203093077530669014004056815825302764760695561395453434950850767304283447243476528338505115713367539524376812766429373464394994819623883100593190587213162471172357322633681301876712574146415748663231533593942792500145293577519093512267251119541439721243415364846610362397704010516359680494590115667939989598319573951421591917357374588318736665403459736911425471445383198614855060784366132143641372188282801595092177039095978938521269569634284739350077603021910247858400305709982134536963450896252662154625343127959123444114639627572212940851810104012287010043873152755055575200683038873294382251155269425782292783908890706242676853489511859608023573760597723965061518975046987166532841075415697128102696691730349233770765526615835228518570186132783299668300997046090875794097856881152689100634040681555322080880233250644459436465638939016112171460683375497096975334116066016806003721806665195511204655508942977266331782342137450321364561139162925305170944735679708178943024679782090589498225574408411765474283077290854834738483961045768387209623298131885941286675472676557206460451291437431545246964561611980532284705094973961950742582241531420624740054212883175697698326657019716366590036952737164647688938399333440747323962962734346162353355461844058578469549006693832616169298105810503725994953267319499682001570602643346602984378023155829948568414655394037869425019362552369769644238950214904363961456809677289259480282688972174075485253773203739100791799378854517743395919388196178969837995284610022905043411528402309706884970204637606160741051992661984299925284167592048402387465165896583851814205428102352082493158033956698010111070564322315403461654281083919820798446100102265285385188435662826223460988101308764147816534847408330186245786819768388991354265595485919501076937579031658787640252038431284001909449263026139758897064867139166292836103971806460539982838898722145784641882549871506642565297133926511137281636294561470190615798195352936379116142171185221792236801465512106839795003410967624798043282479122841502537888402567577592545101157254032424276634075962912588516768168459425343767393095465550455130700844728986998267873876303371233369349755433038249608961455420798697395508522257832478848751617294457352553056267730324180440452396576529186514740221652143672188338281057425996545354260427371744257460258538584100670125024545290399922454838704154033341618328917019907721642628028379333658028481266185747327713626365871670219954691621282879052723758054892074216006139009342918494739340702541087998948835027322530162914136093970490236646361018851469498114306551084079678684283341358018110220004857109063511993308169481697594442563274008999288358988919121976461818670569253808944792771059998506067071690513190682226153699038565190040300597695776835788604907139022845005847285906546398876015091480023773776476059605367774401136583699464445465494126167597225852369250022179039539319655834040544249017072255622579414745246305323126287727238060703826356011592698806280445091795314097082953329405815231646226300074698676071108742888540255253396293114557267237907615184396183802688316459620816169700926864001028182195921622739996771911217755928941622613065338472207411410915240520500934546578056931568749166550358690166642358384306513067108133990522452308542669943533484424107755730034146839118475438041037004747117769772495432588866858211843357309890610879678937788314685338910386745302035041068315023650330677631166320059523298007535170517245341928306311114739556216832382441482110175144904940335950224248254726449959323108702618417743263690868684529468476239076333183675305645665381615061849687906336841024080161874305659809793474658013345770660223888883780827886483012079649744416400272474328319930582811991046393880212177839343006550016444894546088987182686113559963325777998025120981262491946037384786569462813382349452637010381938492634629065527387531724577304618817459621276967540824626336810183025499306477212444686955730558972245207281750691265874166115719502188072905824275681211187549995579702922695484324246335019109323644008295881568482586337626832262807054443473758202745510297388556254844342435785828812279424252971901567572302611098538976645952699050459906103470606386061012652501690504229105958879042894619821763738988429924659940074414847221565964596003517656765259851881072431490551579257034673599394630376626688008744537176673761456738753523457596342695943279461112329149820647421115406533971241780115977372006396404264789193211790081160070614986938911419171321854450840723324502755774311642560390816524541604006930781960289533067059306276173741077713334016188936035067123045514368142072736882130895318931704616318905722661089433482783590718541830562850133715031316558449718612171418880548113161321615750386618593803938418217216464524707735910672020585894500096922249799629164742041697123031295226422226017783846274995603353448040261520569145008671340438235004349894180923176426466118051990557115456114157470532321885881527105602255772375097966920659970697519948166054898803235346000412384251246541757225535289512267676122174996582542835689713562259579658486822593044451074261609083305685765419741921772717350448308847768469210823445201282054861275173152000457330527262190349150061626807950725148076075519675813771030911139323815944648512453476391007364404853447322601245865641154046562293895779341351751333017882758356456242209517478320478305117916985794164616167360227480565829153385172793462223514623287367845969613895978877637442137595531156678151918188087978807079346916037768092740425434562182993403494158481425214902527492877741158535530109450350219078642261177114528186683933765324091431519844954953043284881029649543388794659836173674633954127435438109761517297512027063837231532686232319043132534183762343200182099625529724234514743644821784464271401950577128165926550531469305581286208491000703638460456156709636661185821747700238211861989773459488673644979939961810749084656780831949349884906379377631350553069332875000238736483175695030559747578751380798112105839862333907267052637841265019359973123423327990805994680150143557876322211367723798449406010368310270103519874094862634528221876600925115458861610390801260309333811871906606320546293035553160701298836956131333142721113390614171123049945727570784299831955358891832382616213997129845454708230646226794132049032081589877546308984078546707294531494367244352965679149857205205301468176366259372586675909730130664708638825090504102984338860445765909395901607071349052691935982209721838482080161848218556481944689666497375009029144421397481017433132148493168722064462280996014554625689782423896137793556927928209369412958761825210533587272897490102154264284040237922072519414792800634435029158596497584044310096943719056144578311154207022941148376151450173499729191934927670419269586710174506830100558063264418981171609457677114957220023020322005643287544509999026442251731499961938429898210353319919094823472560572765944403405251697591671310314313134329517806695954188308735440024212825973108354166716757661683374653527396129301935135834232285666475110389585214962975859035889771952297860465069882527742807752890860405046731838300908784656611210668566394204386476729509400754695302407045510357449765258088902850066894199544521573117588092305701835433410442029529812477506638522612669416554343940539674060434503924820997443123881901368697148861405077442583830076383072872304549149238917150694737367829082688489626928775290091506642904500746968258162455492668133720902482188004609446289177511941021233039149277598455669417462816830081027231271978281538935910357320084569394007643103999781929062339936573079214193811677187797243751256954954661392053236373257479926127528073463259561358298075756445843680075639677816523791020787278811754685744608332577696226544130186935237675770280077994087666706679041894092036022981104888621870080395774087660605720055817472934573472083504883179677266262067363237504867086854590323312794132004713276186349191939679861608718255265000613859597990744573380781537597606155514549061061958303929987898957931738748716617617519447400349932040731719735996679090571439370968448251436910806354767714565513240911403474118502640044017926674698324738636246961948526775129518178844244584366337884486566735554302245944643458035898253152426999857521015805065858489994089162837414732239477243243871260516961180778173721664206944723114548449900463398253154665149873338602613298498048385956033073106702182266306839811857062561946144449832716627770495954820136337242550414274896812261957691973871697097643856059348558555986939658294862124913092853068434158562198424355805326343525662608120731301687783388556595069038955620558968874411165885414109430503185982012374551757390098195562602786083242334540602555991335107824183036523590108361140427078192742035694900815770904329413095908678238689984980596375464536199672585281220393445088341332020728140556837280526714035823634023461548716634956163611352720225013213109592823492009068874274748051190416944760006019244653764112956726832237387186087835224688085925068806671334973142166206011834831902339392418655949046940584482073326129954777499472735466935044921329404812487230184040157567362467378771975996597395352058017694070556801396835106511559601171799688509301475814508040783743610704054852948548643427479122646181677770511790455344956451877289127689371566070889361394755263287468274521431011702342704336664542682769007986084015820603500469899679706615020047392718182329320154255535132195505037983091735509894959588472762414382343478515773469766325118134787979454960811944086659050357119969521355333516277159205473693857700607025889558137218112060581631292661569349140346486287848254628425639197196459649268546137971589544334236049984561662474538916854716961089603673349229477981277812507146443062300326265456824785253813297590118808148351338928150079794342785714669772423790589403863898152625653851183967912838394430501366799188832492277000050484646674993983717502226940417642439743236069501708383168283518277278242589895510522986130037002076783421532064012410854403259143068695862236906644135064023763400438738778480102904105394872576666956888202084989812178538471741049073523312699905947728008020379144569802999404786441590697666680077643097050340378726249917076121671411499935225046055163597211048126891250714994430489363124690531631016690788881450345684439794149175438807017831449990736479061473425163485237532746506243873213126530435459844306300379547882478302631132082278465081717287880556347403245832904602643980478000381001255874500924803704632160007943138455164321399589276599012265294720657037732611875105557219257293942000228755241932181294597095010825379418462485024031540553291112385753182050927285604672808335382178456414250707080847121935759707730711659211257529563868641771706425708470018391970070992620073801059950629774684833278951173411600091988714049303295767514922157444907557383708321942899164291207631383785543190956114660938977012370813950041280307331936348858345150799050147440699007667721039042594034311098252299460247307321371523093407030292641458752793020717473486161434890060728351283503313832958567610645878526275070017837311510439471363544655837789512591210857015009184354808480038846401205642212926146471486041411724331722488691535341077057501607580759925591032048251845113454203849083409625914142935584432406808159948838470211393310330290602432956379838590849192658548136702291015823835321809650519631929806769962114707359201870057201403628679873537463521948568141704498611440305350687070313192479830149156824696067510428889894027478793353287114165028352356177738195799345177987835583535300529931079605091510747957397825524440726891968695567899560784694661038210911595146942700619089318537802943904109802833546912376643525428828704279832104750234154960440757680724938988779853187857454284299219568992234617124033756846001500886513142421624844347675151526436386688995409855642294572731453927154774492634747508628223136523253274559551038867856001052360023443710340769130783751845106466160000177281720875146145324785383680453634809322688602697981887736641261683204997029161203209575811682886006299210617545685909267747163843158322235758154508035355636925348274031420065851266219564243027466945879748428502293192600138598972340249967817351240627941853131974231641002426576215909206352304250635625301287409506148361813300158575686757746529517304244643718632622920865028174306260724595529776605410618359216646527321478743608052284182987572541441141160171374487729415168153996173575411940455607702696011264143701447698042004807330276394632993009979837191052792097485772397715734328883457229403218212947256730490670916428616581192415276108704048140006635463334602625889432871735458978237243599927438854092040024325147826489103630940396865029469776982296042220432934302667669651966230934943848196212125714070053743797757135335125101169082950334444798102280733043803091071809163161953929762727288983910525833155262143711455948820435573415017761725946264305717484507663859211094522220198514474565265540380425677685333695068251676686211535649107694903817077011581933700364147615256392825824168565061378434012912742824473566832653871376689340317749881937916963470357518296521250283804562263384341819820324668741115582965993682584164361555888077469662546869983006044009978376397915175144986250095419404998297242058283249630759370650666819890950243370632034494836180512524378977882544658328276838277015971238493559019202470242729687077533399722232598468538694931907247400433555229298946525985339409994887693662404234461654348652887908889337731092375956360803140768036193500013387797029663372139948158414012379846407516044964469775731576858735993657704752733156320967399718646410784233590739162402851003643084052339032060247747093679683961535933515369911444516439654844573472987799113435706123963282696711764100898311440581022911242232549310206082934590544804280122465224243417668135381417151772231889398936955099550556629788208513060702663343717109791394801998736408770442290258241770929105751965473624865583329099008151514273884814960512915422018753639450213743707092182763394469229377439291058765652569346064026799298843273310386322307301248079232606449475386546810226979352380215085867991978409521709498135563621080035816332215019364814382570039986817049866207484934513648295362323751221136783035587889959452913336082621667717934557732278856018661193172174264987180995363484408212968101046058254160863201648710883284900883691222773991861431296879359606802027543861958470711237265964358698419461956836019825223737278011728074099506628265516180507688925932319527788456779698080159277088983945191390711876965827504175886664914311305679110044528715545999020742433782195554837759627586261689959812872072782039921891966988241457782770295894693492854729469673325639869322343369060269335858065455316264833906029443337633008504044266070052463082498555243410802512966879789413943449387278224393897802842070761303648150017243589886332213467243137238323797272452667612023083820810238613889623223454735410226330663161080353447428344749299556004661324283994131842593567875890891844999429476883665726991376939716184561396375216265147636607804832220515659248322796154891606424225985009126070611277698391351558138450994573665668208524332449718035216658512501676318206839775842637331914263482046560394582504355049025951689630753249655609641444297873325999615515180081282280893873221554218756591087322983612937519455973549611142316459021350048192287181719997999283978341053427062996067944908176615096772909378314536438765694520171751151267103461486418182445683419106698668552561794529341086933893576024119246633983152174687084059197947086975028111353649753541040413011193862623553387047207331829965272968054328662362090157734080887293272322902936486024416599542069289529829318742506673737611507271982885494713887102309202131829101060948324387943627015469365834262385828583562066686353427360187093794541652855930932730656000028813620803550825675556953090336300289716692980680725160954504904532425450716724148888310456577237252159361629166296510668617110766115981198204708623092385529279993199956609933606577787208450284232518251899262092507115625449738321915293109643396290273295184970470206676887035259381460936758236432636776306915102604718224130489944171123073471801477989339387434315574693409899000300890287850141258826625577041581707220345768733065307499232995641105686014910534443474967405675388973763860999244881862608908611992788491853959887045431043620903195428623162116720155030355875442358757468402931581375503136762724563467225898457047847912596917617330267761247393101773664063222379798995677873291418824382358613723615631014787356277499100062421850047024195905363367866144318812181032747961549876628196963322321823556429518317188632461987073814183649701557476112063996901111382377577773076033908344755411950920984433993227628967160501106051692315248515571625838210121754222621628933196650144588112110151354386179380324258538655104000194879359270455267327348552163436198757714053062922633624029462730785123882502081209197976525975986935984248421501056113516367680056957124403919499562462737983583907571135863346253589787969302343660546943137652767196123033545513753706394249456623167397396415989689540645579949042411736735161569199325647082527434881060488094137826469826146208623898653426887329611281480588302567917802159523971395376677079738478571235708628741300297247022003325384036433328557823233679473299753547335856949148690987776341295891494840748612093014802947765321177631923157561125969772111388958705688211434606803581473334039934992979392332689194302547472000908704141709171275123648136959797500561494965435510159154896719441670017669561633952524050176603930848556283154914168840853952422712207216068745236978918626737381972633101796177327708576793204150015357435997584897662333775515569505565671629933870923294248007552385084354818067477948893573068247494397117391529571730302739003309832671253100806275541052633252374543407585626829607084812245165198564001756371341593873008752316449450638727801187717275138655390427249295607985424534676921808955235429967701056810807160206529940292717711079223057370281598447069163619567395229595448522826628546240462542455797644004326713609769348634179672663325905200490974795212113192056837648677739791132207560609160668408679348861586117287338373908519709571702393637154041846010362880344052572884260447556305675527015959497806278168688639328278224005005468283263140642933737137049398962247523441635070942110189934468123887821744291263625667924513673456598320603132018119302608885447688279686080029337594564471242144187212503099212199399671984690941974443551657003373723781306652857640781638979321692236853253165352637529858144893393471369700515754294359998397194099634799883582310023818008632191933917117312753033635002676454652408053595244526061193282662217657281583594112496400731300281099855130565394620524838619816481226908065817610843196768963814689309930768868480054591680308021089551156754761858624894494427027811048707407740985498430110021679544645030139097961757329536955372153280734472646097004399019480014956662330638998465887976567089878978985467647331130146380512626369416123738559142920125590063924096155109668353028399719806591673088881677977022461660878023619334098439501157967175633640152481019690387987609661515516217063771414888585681931498518108746927656607827337666672298576338415741102697821612002235439089046237269002690996342921821868766756094369708546621140127918215432082629516511410028421503280598001059263566274108218905979390612977762056734559501153584843027697032269644509973906941124487934845605214353581275134819391042780626473004837927800548644958692170613144436527824925201848239567885934724185885582944377287506409292683264483852629551705025918228411554407653955548513176953075038817066070970492194421599078163945853560921147796597301248864796957185969546368487148698560726546709764287582854472134790120546110727544229710437819744861848355452405902878728949197429558272418930911635694841362451881617058162137832006587359796725315329543067165677870470075063591244437502771406400131449013776429347268287127337751927980885745997000045748177860203615114411784244752703690363273406417986282205191892477603065337120197601280956341609689470047646100261008192584249796464228148586593598864918621480681745312734577074292146600385704288847802168265998950406569058395790121230062938553143287460124022822928784909344610572214404451614490936135370466041065840428851396600408827462708854224123852438097003786774448950317256670664749782961464521990646290708794345627047201773862100527677662857827879208806154044385201996478490293632250826841366750827318549478387729409737643164488298257970584655450469596840669777086659409629944495450194468330916490586671797290653154745232394202679208636336215470485713762995420216276504879959421142662973734457424872846014690459712727499853825299980687254456258286376468964695079712052484894860143232328870874262255055137673006505940521590810085325294458305806126284115707048477744654289907788341317118922398385524504058748630077399422911506507003064678761568025726400914835303979416565560774443427550329236960317789978420334272069644300951784870923689206817989930280131461948716479710600075554597227271805661661977864001491505506963275053372875380824404456001245718774221694736682361671623966550076130559283760392546442310547473515573895191613610641682956137671819290655430362378416009575979935417449317029516532398030800520476559821353615805600159132347117024996314904375583319245628979550705599591730126796836313573062649344040085146729859985605436161169350206694472537676402977754100181630980966814857164023767020649966017328588751543402183412331584883394532231340436490863066898634340778044446188704949268110731790249859238509193768872794487650808051685336389298441711426268458526015486387052111384146861091057982421955725116988825278516123217212555317524836248817247766263380323176187106632825072311508905309675830348831890700864389267019460146494390579853446927093046229603034659660725956963082977522381300180217718268202043971501862696162737094092239664959469665310431757883884476624368854600563816332650495344982848843535964171960213062309159181028090995941166846241407695237912528710777586857127315229516324273298192507659300396473917021788723296385027183861949667026403798403257300606157666688769797194120570621820249275552433378103491305265873581404340582045765886963967815698815934833256114628389025648305780237759995146529287038361114073089788948678205134115685005686322095092126621674717370777538111520659841509399121325007075120449347043663312014477393976117376592756242105955570110110597993031799367091167921944609274927290985818766400974625742505917611546276661966287009954684016444722955341322368630042426540331869741504299035862760308040218777721992025850542556160697251959130070926427357033887698326770305861669735875042156722571083267092201443780802418333021519444039016558005208443104059866138327126914274172016407280833820184171047429911240721108011892612924987070733614690489531716374982912657251597466652319760001175425635712079023327991877380909786097950136990163255989234548703701436703618981705657406910039257869525289809527909269039036551018879894236689631568842300897411114484955019052295439552782231929292627138694596232806270900249524901453683506864001188118172798932192755967214061854890323718336082555694948173838324915484212272812703224483256166080198709624691116651014534112403147488578146132724542794018984723875384774957131967155931193808199380422955739097830429347728235135402102562504988377093097122834926412157117195920194271816642686782805378378294164217006609540210374297814431053674242668571459207934534785466195746603222922374256288717800846002624248572855574201053754774969464301692866774919697235392026025337582814625596496334077470829425161619998819086811318953289823160448097982365780538835036318528433646161959607641606479723234182374132548434263953948323972284036213357119489197110605756065738509800054917171277708732879645398494624939281618075605121925340175171827472896969810959070930666963891815532147140161187367971604754591452396917982168627668244859498962078416632355079393244120173119186870923293929713027551089381979114096032369537618746067161216607862197016394960662079480270324448561661573820053804283246397355743825637860950963619123860265298884401316523343857959224058715960658863924014203375637020438073129218333073308060598967869873666484720845239397415358037727006242844921332031295410869378093784171120248811946309845641656702099149695227108364195106423940109126824979579862515218633557638475151986863479499650729185612723173104613818696224363641583523350385546796378253203594955450072916123817760018062808183330035475278883675304970818352012304490064012971491706009878499959219024780270708277084792513835189550979180322551977212356531609116596429791633042496197849461270043686752467208697465305280049060451442117243251713015782726276343638846959655433934877615735798274308687438913351411091848807984321525624603029166081872685994651885415636090549001996286313311515262092355483735107818069611755430600710719391882881363300200384598782081829178920610634620684617133062706947141339955801903070411738169719776017141548461590652176971136681710839128882182034561848065738308797889151031678844907186675518361344304953325952118587507408674146697999450207010521273460847942385224971339540556253195438969323855002310515504615421086306029374795660670640515008281757758245631912208221158604355434423970797388745164432369778400852967120956597685791291480399970849719737557950367060714961726904278708187710580513169006436080344277863859530493791241774964145022699223395472712598449869085362897248368210349404833493992316424290045482739275944425552800534660181649071476750120214597940466402213961545495316274904814639569076413621543005284415249110135571076008963015149275078730335238309957567469699994889553968034546582894732982336478474435428956516200851687483429428428304703942368412227206865348321887747431735963336509112040073736016319227229724378988902698341598258557343593016164271930591243389280769371261377556452770566978212587252470665115578573729451542865406111290383563504506740702926009867568266552059446548081816571089489955042895811552124253864426660037795266575232029146004330586975784198776303084458440823752698925585542877198370780564660392915621351490401584525894799264372868449650216637530490945986760445661310679485254391646817075543736491011074167545858847419733181659730629285503303320261356249635381792141654141602242920440992924527340565626683209050066384577129519533711677980232422854712637323412811424799300964526935417122327583253861416716762206142589898049371964312084014278238238181001858886298192868219894874306010671608390925868252592201891158305798875494462334836156022430906993546007802673165011668117793316302271342330789936877357090058300828946372610664013998421062514551096636433719452693231077565621360414894077740359973755016098772947140568993061224203672341500779064735787419091095655354981459347333509862620886600289021837341853537917272860504459830954679389504640201288441251709502410144472632230336340007874265122095339041744971098007601520133691650283276149351227118151155337525300400016292757051868017569637938757275422613390261632377892858471601250907502343344010941173069372393832948930176580049337129142374306226909646045561704453907183264681704292768511985713885040140890080970129155756225367679565363913683310798850532326408880110212885960011773049037951908779755742904686867952066224479345682440746705733528087605525888440887969915934104147441607849026503446136330401030701735128456972233745476327061076159827778458001847818338867120707638033358874838276829731481091878083475991561806901140762020882762878471679597289479366794440709431423989591388573783323622226481669341041570049200458490337834384062122264774560813620556571004671426513984992349061742461110795007605399064795938262899054627771365527807324654123448830030396183793375189263564421622108506533420463357715008712758356886589361132934084689117766872344932999471476576050302028465441291951908446405267062228147157097974194202967054267517092915189103439704281389484841297932656151079416844538833631752670276379238597179390076686641536379109825956132045502242675576712931343918744266280490361828403612680637194928075938237679796911730330922037154991275084838282508731953007053040703747920218249827813410055543298114588721553523010439381438830871708800882832084767625360369024919885672827499680418281450646024791910834693488059573563443450095576616686141995629758740046648931228679073026134891191122324568114982293364759631532701494904627119452038316882942341684291832449821842653566805560822184524459347845281716704816211276325878451990191958918125724850340411463106441221729223060644575929887460923520023083021942902293047160853368369934136662839933909377232186657149574124922629481582537138618500254766714411509124108937752189733636851291592410292742400617082530962962119011635068457639429758538488995551860319602471609471748737727503827040362286925129897266598087244195595044469504690218787611902236486210659370395119181711410745992009462679056162655757265087814777336078241244898661567558310999974120873761729178902487286555626625722345149642061458349029823626796448684488382058866108767582819428546673498231887910316643924079144572314438172947854255519155576055617831098001440327554651459520545487674933233758657976432426222637944632547866899090083361096965575682375255570865784387190892207699569522840004818945905668604732450286484523084463819338652005756942317387774764294855637951238808805862446861573927157447369681133202926263600594770049311109206026047914639566023296061698129646619201806202880931760467473170369652372138151212648196621982994958097330270478189285781151915338444838183882013485947451746396444643422816484290045049886716797147844927949228594217572416851890434357705515107817924396617447276707598724034996559891097652121403251358881477403648256184563887454293811532531616220081010356518614285072406516010424616822820563963669599088912328784898428779707435986585486558306601659880484975101337249199651284164286439612318852976356035961138913954424556368839798742197127412410260155006618645008403444776174905107541771274651332165004899480599080154456553038529494879811972559373047975301342217055084937285180734451405064891632634307557864477076682036179955300655150125754511011449266560521772667077840967445516404615346253419425645853573339753702954845987428918892438928688156584815423058388272125287858540526979603939715426776809513102034396087255121227443017022951561875968807825656890990217745240151783949691735293275654671890841090888231286172724632635020600054501593949597108031666742120806258031042938368681233219318515287696858112725722692375469689677748551961980172249107935031343418271843023282811000792788393353178826353782009925271948627764328333134972877343004778678759087967017377142721719851667797954502752741276604984479610756116816943662794059789959357811760496680514175037574215506656462235690396570289119226785419730719443731060837851948034695753585080744783167358038022881863033914457932186451212364859663736374999736538367543027183489710594724647733007990059423610863544590828879222208337337323935683143298201294608351063016141715670821471560084261308874346296263325775984350320671700121448125368677189214806893068948812031775204922325447096134522467341857408817990914069226194486367309919895854827634690872960282307746397357474461790198848962330602652832795901995325261557316161160348223520301642711237573192190369327752594410608727183742005583210240983850582277725707270871196191954180798809959892399386471273020839082407842774140552019781103146866594986699255756440629823621636542980497689889274918383602442799167674886915412634176584949676349195300558870597577055676107050993154469320992385027762177494390275760095682467039645650637324307651602829155589940573759465755671525705694749863986186183778838423386800878396640965475739096288651824168279387665816313037750902340366515275158868608421818903845296473787619544789352050563720525291124545722645935406247215633040497045464830545586785517331004905113893003481867816741063820571400787875950589829618810933024888403138706321595965154094976069558098379293559763423323824548438870187694320952070841578523245490404410574968136196262271871497402879244926187057201806225198707990764443379067787664490581786467948767964008856577976494347856962343186710539246424576959156993553421526329470945266350718660265242871674754341252016887752839051564865845108316479561469562128939871656093353956880998733831434282134390130241088933875060092100323092244625496373626767981369037165638685015316559134111673816973956349115489697119755967114363923670448456349278637291784619588735775333713023312158202023025902222235479949367673824835640771877508995580888933453919322767363749639886414788277518833861606847768412608256369952760170861562420909805904472608961005280146821095471516745139046704799316332405537079489214619438882042343659760691556800282316176302342011880394034718293514578879170602708064585265800909379701049076553328945456355620085090742773338560488776866448978136838681232818492071013016355752609088223158306267862127858013526264789862918518542008835793233885185100384159573383702392573374270212628224441077074514914049306148455275109889528570478447516712285690678176931264579599708948545906591880895275764011742000111371480147523401188114067006110635339458829036680787406375751298712734817911494709309816755397555868920982589950612856667237603903386136105308365037802092649677756449161704824218392798692442503554824388793744725194489508298237498256438272775637027393078437954134310429110325281612292163277817473338267195818564849798592018386040396181877695447880813126655592569502361321664480973292712316482592568053440624525124978214673451380641764868695664226164391044097933045626549344346086184621821541286908045796644519833239573155419933066907928901997916456284144259222198702027115299334864911120960512038177422810542867364125302654642575034205238248052502869613866623768370866883636692289130501643176040232297206581921880803931911174611407247053917028572224474505128163375608055330561729994160880559903936511142040729463371609554827684988969783484072432356959477383430545237334645869416950913522093223276187265840321257399024394059241170606836503983535995075476353693460226521900662757794344388918756279084000230809382483452973503818708075706722766425164873637430096105046151315032505087992580408896292352393993441456881573562942024413852098634356286582869366972384563707834197564883699794362605800387614360174960219969077882616923786281745047110346952116678639135600341388372045356958303637461516637245172064156345773144476143528755966706477372022474635071951164049246535384230846204363070956786444957107375839491314709231664948109312478476598310712990606667193410654676558581974273814167418078796969087349801208689681361098165208313883963706952589289458783714610013734540903948302725471087731308246356292959191306555506827812635948480667171955692017016361595282058086437370600907120013351093235972051380741865137286404923298602892010860869544098908260005119360704730831197672353335903538940086516163889897325554219436489605982438517449493016092137839817495831274149272264256478720162401367166549662400750407966672788917496631045752416374963140222284673545412173929960683373785967286750395710335899136279963736830252323816345249506581792776984261223676492574755800793141836149109451727095004189286179552889302585043652231792221167143706416606461807668207018647936666144444203805708709493339919149218759382180179340772968101161553851574805592599140953915601654230049965316782245982435016731021547613797137554453353980124755570160818418542591317526061712494015451734009482761029114976433676089062034171060689133462837004252238088690655415911433092250917733985927597509880540008126147410468676778707308718069784630628766086466392996515862690587563496296388855928182992026954512013430847527712783574909507542057903189447938303845256137751259454495360261808421532668703957012100467679237775191284761569755032758216764739480983271527088291479237044844524706007221985334463710031899839717157623417667091941102778956485149143043917248530984860205104518863505140078657292845704154489618195348647966883998914573039612714301514616474460599372058453181918504211153235633358515012234493071101481220176877848611977230460636388312890507201957677214093176362444056512927899643810815432588715378217763569223948168357565926522312633688695920094290753129777684205503485680608312730376783975158219570541599755538943743535707357348755805934156408627325206173624102274867246859484457171714451074933140569386617883453538951509522545971821942534385176183809065241712751104924663200367219620422056938018460188488627388687853723596403580077161331823788436858149059779924922437331651657428643615999254140050367033905831603399842140366903201550228122515588922553287494687116941982620665066240648073230033931351041699238802702934135250052501766190151094808784688762972932506833208879740200344803726596869376078909379875085685268482028832457272629164091721025946080208607753885498093466657441869393735603740660207094487954287291045263726125993238693447675756239643913247802546539024897848441145013041941535548925603569186514854154450872573286059815682559342386288195440043278235275337089070945079399018325578842600499560874067188626783491757730169781952749198570345102094756565206321701488670693962729970965610235079589942075336913896610132430203400774451865449959319646036581838648290462167998056970131487004482666121373709077691947241390178543464689775370296925450395207763728617927049084939911174518873881926119168093646283242243085437504184205052723513961407760274556699328569440284250118759274483278549536956341102430467393370551041097014706902695980688488883220358411833139306086667641065539489389916513604529789248506345140958285158261346466985244501408975790057708044606385160471005422028454601015288876293136437208019627072830305053120621654105206775075768475798913380575137206044693130982118186941207823336814182268653516837486468502732919451732799407122091595903527412332739019578782723586976056212676010710092489240951211457550649855095159788706038334726245184605927356523458540644250899874568058412509652208638510212086896300075907174458972710381734552487068059206395882740910096138380682644808408084087106980826365063737200608744395600507588425458482489895717576199330347106934280479850655613152464205099407180038882466886758782241185305562288159480852162962292258651198473822368790746630631553147907274488721284751162948472270336485312613485295555809678041699964269816297131854771044661556707378591130291191068964053550947095977453028696702334441953044051818726275275317136669342879633434917663909132545465184013498105754119195171566078257777627265631287971916017989721073498838611071141626346491484509422672438896144582277251480485533323759332943626921431035730746525959403894310434676303127208821906762237401228069190314239855059232326767305454594329148559843832686684532696838207797163603506377509788734785423003346144449116273700634760389535600092756960099677066290469439981040017666308290204045700391458341975241329581811557459521852201268937732502023888144560211554280534297788208591089382652672976908021589728372652216190378649371672880181057978197390744781634220742405183254225597727519312725097106030106937980115260467477970381160327092835529485603431687912762349373407649937100425334499731381216071723155894570709407665368129225313607842248718718041630125913300787053251865203733713738749875035151973762089121315336749635190570270340788521955465976243463846335282534102208540682693124824066233747035273149018243596595712867945956264637408445410334355023797433379032498412828665572004144258514814653399798276989937793879754608925957383905820795238047583117772663885943953087409342969787685393722205790031498860846544614252463573845236670676974634413981499401176614437748234721329716680572948365621782178359821210316724890463530125271739569287771997030184521786425459466760126574712661240992217624817390384834541633557029637345083162378535876357563704948315022419185979158655654930560347682583253440845308805278041213460888969624986729991303235502274786846963845480293487773676408556243021501667214513022604956593090159131274248242818940493246791514228817897329874054331376799342600681692010528442630937222793471401978716565546526405678219730227988310341234942178336595682888675738893676172288693845618184163206739396334661597538723329308889118610954549651393214276831010580668812012132487379115654290604129909716383957784534078803890809096493663661397962737763089524539328739492276495553520052248500188538603450280873020622877879740597854335341000271344642763936027198788248593028357983884240177861806424536693744184038519614321516883592551926824640998565122854616840777592955914566683797734714111749176744908870083320674456846716353950174731821189691145321234702760236169927139865502719854024778043247009901205635037522649344723615055548630490803632360076454233737714271527734811609160058858161243018808186146985210998120255034034298978837127816238090532696478009813055222400771594943598391923651044746232689048263025702030760663574264435836489771020537115974672302771600787014011768354600181708081824729458374387673204868265564858309250403811751895242475243468853734541162546236116755931505946001297941536438521629879759916970705200613743989454880153245500141740065034660323363784825871415384052198394488803635781377883698779574272509026350277182794646341321859498083575952171753692853579738176093782851134595200289000825260456498754076460837845012063067744729624090523990018052897379549063171078475293912051299404510725081073006581909930183293162429369667123586482967795860222020134629988115837988856602631410802959474482209953962953702537281712847596526631054429173483860881353821478472797668617324965659863397908830501194878850691229542361180887048455186327979747321065852730095273947569884685984330256532301131978481330222724499190580932401207369405796990132812406284348553896647454114469469871325358234340245496328533004475761288957813187315827289898936048052719702216135401707939803005461276710003967103988601241632099716728722554874393055196435368615074209288830118170332586952808721675280290850947665111332867735630184069804104384804817497576779645507750972980923149214143063746619555239289946787735586743526709902816559701573173883585965480656969448327258415286490562853539771869308801299225849473076985911855430899107110347382714189995616507671823562862369948980402595156909995319119250225133674184102697046129862352027361479292066618586276307953421937142170195171095699674953750454453236930538430277517984336529799673142291447290588053236130819938918031131473730252645499474698989728114049320268783128762741834314927894839476524704887260016395313468153048102625864614280698641037978349799042524626588004820708509894182171083722037820165649193313085773106802081372031079000856929062320271639887297612352466098091868324317045113048134790913996875626650600860615828957134237107136229153498351768340532115369102148448156676604539999375176438569956068294795658725220661748040224572820369864962928973579538926543562129866627945159505443395316913343154402191957468769362831436070673210678089162583101005576912631871003416855518808618040183560484169940449131265331403994578514171204633515147283537765140639038531214030261969213467516463221704415068434667630537614868763387200511120081499231745267251563234347877872987066543284449677361680234716830874531767132564317127389306443321773978885668942487000522941937642005938158973675006096870751086445295714179502107876459030887970811474104768386625662042357528355214168778770049968998426113515257550587783750012327627688293006155100022662041651744063073087490552756270654459096295353793485198704900218498610851386693166359212534258395045935143680875026022656132736668583209117416973197645516510053042940599819822357299179064799515956853952831224339871272566494333263649440989165159708551551596628370875281858817039496449707902530575179477740126631680710672902094455163719942177019294011363529291889550983543514483118941540944556438999638836906070278017038988883801607533106088818925778172596767910576132870350376837167523361937762393748961080534375114070277754385540552359418744917794429377107230123872007699563391782014419280036482500080467423214950529593603867397854342264889673152003132271269054434495246304093501828906329438228141488742091851882532660292124022533531085917622489789158986236371367751049453369922308895314664432760970363104131884229113511743039925077100926241246378569678555494295108565397691794177530111126541799712873729472631396172938171782766563430477993976608760252981434312178233691607575057963240776677084340687747199943273170662965238395061815444432527260959823555522393905189557019323617279428113460242135982302926115859550554209200444262296449711267255131804477124701034098634842172458868866547751911478767579778259644337256302360338245134221163583161367773258333488610744718094193963897084354449939477559006952140163871553270361221051845858900143620649165097450771511515903115333602386612244068010879603964104161333934919731020672644249337040880264683461870931820401109368842403975513215033271287620195267827138841207722218961512278533397212142667502211317583528638628162940229311438520831757244470829802662885981427560641012653438449115453985694724981970929372399435194086902321950025727625988210524493022724694762576610914407663997320733716509523678491155909119271100130176527068269412068555435201663016822230799369080946269761403268019215039814437898187599813847620604548257661963490535991138716741170278641111664917035136960694852051761221262866991495788391280963942737647496546454404420827466007079361599894145478448744223500311017942646510569312798066344756909767895130210578779530609418606209815548756223239007475255953378791108818832718181242527090191760204123096507353204491990308234840053222821189772137662706154723734629157434031377963299558708217123944626868653380932896182671039103802162859592967952353113365441825936572573185648664328563495270159571618883770184533212498786673816172033484099931180318132373431611625970136109274464221898408842190047196268638443643682486786921852723627584335662811560739043714564393180690813877549933879463490890821053384029160575174704395544008393602222796497481249558896113366894572852956988570250221998599607861259886285944952583837023446770556200885534631981928136973457877245021956487542438875466469161254960466409814196707529986072231504700857692000558635740226422572434178020114267123401007228372361914244058403608752204595670454903090466810813404838512261242034964660444812589884932060480061686959123132786791700367709629639571883674678669951443484714065838877436612388626254438275858027204646492867280314184781439923015559327530121103850171901962191917281616357538466442246742968740267201946821775451640816695014407305752835968167187990825488680842974450779718972336692632436513687212105127200116326023837760432177641875454073352811186604184886286613472938709833694616046665614887293407738169621124054866121784472723045924532415325731079859877966326840817620364996054563259833911671364481092294124462076830435776507291918535987647569914120084262465386823981917158009426197903984280531562705624015627951869093042879861062191483372844846101515295093443255619812599626872084252340169660764833910129236361187867163220949328653415590672571259946643720467125040877869255797339046664116441258550921289928411982531914457724461922539742981034428798456487562640397794703674524718100726937943741123377104669891429320699797139001955095400489297798323756941365246300073114150785019968393391589678126033544688275772403825027555963029429206803480554913948842172344236794774794397428533641469238531342027401899024905593625903002021866463049791453691221829194851145263508860389021596526157185563851607648153750018301470612745372777138920777210939583837378813958005101259910918947206299546865027020258159791996780498906108253288652675950167396690495988444841632781764692994532524625340609026162571313984188523841726683221355161543068053063705583983658802755954849335434005114693680753370304178150037366541089575769627550778655951831274950419078756309148047384253381748284528826566280057944283267427828167065209096663114180471322113601516715714797390629803915677283843587281828018319477189676532022820469193944482459430217188678393864752875805571976545312715758786093692164903800578862624692307662782112847711598540562178888163158247641493071406622352780894075242344222311213951914453909071488621205673141316119710358976348298731505447844003203113474940956077628106393760878180119364681225579837271868559401617947069382836941815910668618021891217588494879089999363131275417971239353119342569987413091218177363801153141696006244522084929535080558285798722378941598937207895398301291100433838587699355996008896290420776980830500975790372118093059122270110600529839109900946557822361220455379358105230417329118248568700629334681782632152239094082861937664498202388297099914190931894236550884590542263239562718130052918133451623020689631072318470119248812494537791911211416839142407005391235557368219444646178192402101314107457230456377782907525284723083579399104105802597082216960504455557464838424316360866627799599317339088418645824695542091818426321679378550996056024645190753483871207184307686513098576463453841129303643003604373681524949932463952544816163971281879836159120957134635786454362903163588761429833180510139602025043159403561563576387574152981112190536077322894444864175148036170524751265778629436028981657913515144547064197593473625291330332149672734951667300011362029209544591174604283581070073439061164618430162340893051952069794622917160334295748200245867213542990505348917731499938596980562138345149239330309485197446969623739295947298825507728544484276326671264782219513742717334375293564501709408813278270939022762130445477553297288904982434828268198783311571618875048451300054148983659244164155731226362347281094670550438105995559462786506082818870732165176973190732449595790515601145555368349889625664915428664138738250698725878056284313114815527070709945324713702950630684329425327622892684509895335924495657068396366035633078266202997821623549683449261683542354763263225477567821124532532144613104994110933999917934555833445475000134258573089863515644162361240812843019648964235761098681400038669488754655506262844605063852769765505467066841975783932021885150285746514918864607077903571049295006768700494661397094781496585200604454053686894788381391154490034048039142100648517350607082111026640842715344306070805610640354876442256620589205602192958388698772775422930154798701837101951494027905195627605841002452439877573845329353462493072720409462963665216439752239195503909497077361514303761721030668119312907936531165624680137102434794405267774290384851223568775649823737911858856993209020422856699800971778186807520996967482793271646326812034454725181967999514977660114699285081229865817124558284451875954997605475282290416571130225670000029946727800808868069334469071157851659741520378581293296568119964918532097302331477726410961745956589399573344427053187606762879817744573419862607823104623435687752374953490764773853288081492870429979997980741608700226279715926009773845475787687009568974397491949043923484182142999836865738054222350520968608308217406512037944018718401739612488650165250628395711668353157438923602825713844701227645886329743265131936232021499249823485654775021612184404285197956699839341130749756783638052898481352184589463345444082123033563005140696199710427141189739356045148266486186005007430844229713894469424454638886994240970898809022612791976553330197328812732901535140926637046391869025051340923034254934951057203655372747567066127942750466732141236139534133618019812927931880043735779994470480468264825646875923993669559197638666686961082628734386960570848492309644417718499345866817745191474053648489852791357318083335049337611840338247773369533190386393429182020440505397724924487530065264986422600013933311704276172591350760852739911961963024005039167543920086686682752952546184471946226483831709379423032148108728813756153299910495444917822424276285617216078219056019371816474137442169564559509333496912195697023560643233612040108433618489652512997353767845437416736800363210553537496714219841881174215777353461132033947944903062681031486726706226957878060721867744699460763532010472621302329052233373378197885275103079362407231484694269580002463448938984871860736319714688212359260389766273358128533759167687423315874455677007384251458914196267236797296985090684913386582503645033828047529603402825792810898636285828173830546590959023427165082883844111689911993485862874353455593111340172488257343448349271464807301971127319590687615797412828035358488690438101330899205157320708603284186618790347298193918462474249941876933246142860965720272288388407072668589474642029045224029940488801442129611186853063089742850335278527808710049417272190175898276504338660411414119364007939305914974729324231985119056579754473258816941858261438287393155625137259139920632842264958226334044784879832655934538438594895974783456582982699249658001349401031734962943729984748348026636657611365301896627843210526950043608312175218040129280081497012589658290542030941582826381876634819433472611367184748284222645984418903321868248726247290911926733698205985586449001427879323236693937779666964069763616016413124988591693772320932447916704846461658257373173546749870767943618189872168602022312234387658336094019554838934494199662349214626578687504374689697950934476343266657405299419941129402764046133782624700568787103835780407666820978393716134276829696800132905465471751538881545539622548054371640807519626166422562514269174656977808475882393378008202292189972182150290620635569970671089110566386407008021822476476194951129642241090730372969998480264062661793410001224791285729795063604309756012411440218693923529674080909849857646031089664603873446139259280910775373753263511484860269534241161815525863611367047152518279994707284090195104472906568299480550816096014552654153549653595259738331957567675405373724810571998353647286626845981221873988381010885440118353833722650392270046449558657518351894945853492105046077252890831615416753639790991596065391995496378039302969255597699527659159608742047615709917005555949878897602890765831924730466892411314107154858034649046561240222638293576706567238990024125961098773800032712472510962101355575144848806020743228690327869411703076620937024457145055716156579574173543298629871302056871253169045603121045870992976115560171613843110192654443027912770035481776505686524832972288524416495894242335776759774961580640413267964169754531607669701323027316347205499378273108368960780501856069891598070336844886302102613719864098372659830543080975556379495774830248423890120990921751438254900232605832238838502188309008115716258672751468989110609484411113389599567881138894395032681474852527426114470838865696685655015173992533639988807787890460318830745444848067554898023327859793557570511739657207251911709512188477713804134995083307658453741041685474741653576264127132618572612616360769683126876613481236964750970106582235745142055809711614839111523891226045626425934522783916638821328443766735025198953918830019330972293405094258270828770157329252868184724023638259710485171143866146738113928270073935382158712219673243373347570376493333765881941168568275882888938222740112376365571845525879353351141208403151234975455235351652569932245489861262549573439883023534673047368880096399447876197153116542232829660667306768742643625755921468627721348294070966115017519304367878366865120874160842921289332752643883203744028581739260004163852548346026925108885352539764221665359561886319475049594057857484715720342090351272773951379242861046490454498921309258362119025881657435924136248500601288502941662145563671065990918906379642562684629676670553920508431511830752837782734988332593730493586404849952597962347902817281059203469039191584908225387636633544370862994314361827621608671695991970858872951416457128819422407731176588494792009585421391286575705878683627526873456622621415576764978607790531385425779008784599341381072432577189069801440135515924724982196732983300161863169880612693102786188036684941865621023510877640927476388278453975989721165390382127336323892726525171662405887769937551297700817921390951726775307994026883513492779298912895655457584098617167013774211301107460692911925792721756622867369782114439386324607385428145890810127894720440607126866853363872689975375302694501989175952390446193460222337210491947766759439590372703645575594047253863111651067574975627598613941605660607473410257531225368056902830794336478389169652426549810902811209571818198317058518474355213600254691995239126771644990872855847592891518297470990857801579640690997019258233468769978314108578180684534119757353846928501906583945834441834411903092912669233507784332860017281773719555586807596683669619072539074310286329865612285830463592254146982468849241080220997002628312404834280266334304631086681511623359834613768478762622857323257030243816160322816628183377807923991206590272204187433396813194898657016409823092028613105549699317207321085026062657267919552569894175277105634622137767783075811415848712665922245983207954597942683402085687895784318163286806397748699792097410847664329267367338776488670551672691621024680094674580064008116838527389354520083643395719596641961919653675463278115006141277091582855744840358711618590311772919306996746659484466858843218554233730166176979508623125295531338643025790899062107313063124433920595853313469992473614954551604632278666994504530861551447903219984112199083965245490569780984290630297504659563589610211289946072201228904811638102697176263187965592553516207616182476965956390362509625925811213662413451319242797307216448805014090501951949542242677418352361450317252949591151918676118266733584316568464058208424641044609484678696920581335156349276670020391386119091955639363639668347405710576619447709789656088109145661669010805515999891757237601381976888562989597454296825788564265215034394240193560259996792505361872310997872915303139845475236459192787205097953141615659079211027956786058772779222756074626583750499547629414961963478476687818738704723326879115293063169341074052844887798617661722901114377148308452918642619268506676426064262406225580488917563408817984522571712352952558486231046315761705886959764681117747026953904389123952651673914494440320363785412072341018319993998464487942873469036957799330276422692345461708232853964361079431471389441609665945767079075630692365908482886994575068952898094094068275132400015061668706632408583635658449845826690659951998294133742797625403875776710980122115651937177952040370089641906643459838717885201755326551529411558305914336785326550687261165188170796080294024708840482241676458226604018329502930422845770594645192743524003714681472453085814674798798715517753523044280226746812886020262141282113527502371682006034471907222446106484219861445897691127359799240510911720631577310672443328722054279367100720924437040183841016471289296541849411469940765041406642688794372931150708385096406491607668497818985282869322481902928265397883442651298859963810508357101539436232014934168209298825971394161996759966956298742866039783533684860775234215255148550734534983015961383024305353273921286316676032371234527119662013631543595315965515066775690765191032755400043217770886371785233053284510692573368457650485654711569148246138753651558537655231738547414797921533820204675987713143079691162379608172164559068331693752651073687133847397091905470520479995554326770203596040712974381097929539920460473917454855640178291653555182745389954325557742073210885325621763418899856639829147116925097016967995086530940372883930294573609508421521397815832400926937858610725219905316991214277850269021409120781981689692724352268109569208027303620556811637172240546414569172995144106822963014889050155669974767834813632030556876123125923425331915125014474266401475373531428645354247358485415434536121563044973037683058089446621626454013961390439164282384287821813591095438422101632940129365826350385684464996776218109477645449881578957004668461124153073067047854662137097335953190282017302250168389319596152707316523775617109247356469279293755261293914681833895675676894896892730293075947144168917522200837041406872182032089397441168190268643801389585985043581681810351100401073438198400466269149461137524156470337050291590914874980499736044473599167021318606991532116693239254572679472215308110896873146319900243020194494507320263133471471028279773317735452537380439534456468831760841812565523772424357151670811369457157629398635558911207090432092319069500472302365999563857764923492907225546378367633356360464400263434323159675147999359975626379187435463541103850246256532229704405037947366208528749740223205513315813419412134101054956004067545391780561756442326234126206208930767663747867061341758742343842590783000953579614629446668978391256054776355453866030190757133468998943602098902229931655432177062688419992453728804089714805119665016568098288434373227091563023997428467061821471764634473054437815238868224065444042591211006048793127792047356675956889363325072693546276707777774534120024466360070151326002931882740826943054322841973796063735915795623795702937470161498180782731808555790465039858009045252627033807555341316732922734013823281257411536279519604218675690260708061278495978293119518283687446881715142623168080053240574200710154678374079410986091667824036181975244070935890516711322789443167824077248686626905951819541196215356550862377471429706500723695274044799743148604322566079500180062485604492005175024639652597096100392857400547100839673137345730470710189583610028215625307601325020303805411219375129503882702195379011011528595097328678083257351457069752173562227333379291896284969955834952827946072973126515242234163951673881760496336072570369418619991619701629474367490324029178806628764386811765200645584509649151322155127222177106251778064075647544851763998550554734222081576849615883962209439554135434360405415805502667293197631328482095848698711378018405468237739913840943462093748422582502797018565181204623793501217514293232915330444038077116807080957959033677510854505083807030119261252228597095834375003512883318464595638927821980957741482738056949050709056155217217212919806665562604381555417649521552126940923463293130189279508919866941963418768061267236475250365412002850947491509634257604161716172951624594527887080854002326723841046884153346749965268526783735566135456761681431667074018768471292786510737735694958709896086071310036145869966453126763178393303267876895199176582040961205812835709012746986008866078076142443668742480156524432059041470774061456121116247844028036964686299392824971791752576024358389448807107502327952620783612054204592879039665345110854764281368238428720106650717035646694678566966902460516800165676680935990072397791927182304693360785687933753825013185093680590038946257990122426770197874084934056815523727982150645229042219326187763103028391524224965581030887332327667502929958916841179094455777670875261996963897690555311198165664615951182729825930397041859062966346455313764818283490122961665466121441992957978638288702561904000408545133345227437947028839878914814242365293096520592777943474052623764342008542031383886616682913966488493862899815793795325448798400274575480308219812118041751640774591465593855978877793583691500176152749830454382953723243284596805445462007551514324176777165423471642855959200930103960562649898237535153035544021574321961269735778575205293820515877516960538692915602240596371940613878135085050494280758562674983776747199372160050754955712994010101173287044336894605974449960527644525812154793406027004467986246093455484967123264081107006578277673573256726841382412683658187678496460281289287678891836374901059517149317900183485066608555937251170998522590865292176738245397143771135424102849631053427315003353241706240892441212452889205045503811458494786226166924744060938185675947642417766167502966797505343630346368330149241484896413423264861033801159435010193779186340087447978850052149148913508505341130406185948980323010559549642657734226839039383954385714280884272900397581007195938792930297017225499278463663386193432728913333172953414338960956883860967935795588431342201814388105151858197129486667117533949712817828745747712994290080396463275051277577146145663814680338708110577872198844352515919948153821219515116205621686238457224544564244662831524615840771369870392098051485538869807743454533989441218434286546910882376437829140782023993219941774576824199616595981966220434275886689936473511015109016868653805851138737799524938789962904125144913447996771928783824540658417979814583023727679258602108531767754943258557142488075932984606926118379009489713602326984551377318927077395725480503829763721804781116667781737270043805482816236722079811057344770711138693366778110097520477360840008834035591641779008369260882405054602907725659191213020051620213774422556772298273697541344167749858921451283183300575872039307515005871340265919373433988942745545472260892261515943197935578947605701132312216019262629777896164375686627708713865844833981346258250455065927923273520476112512763146507680812266627773659228480915614021362195136541098177908725795165001997744046268109204346500736296241027089234169213449824189947735947454503335009923115790566113108146846331182649298863091893514666365019649066417138356307119620087046929479978317109652166367233362620791957566349499148461559803747426019898018449142379624637754667345316148902625125504407742198710844187186802333986986589749020920703788585964747006135701703289429580646252284283625617830687166226704970472282427792487160064830965298197191590934171627633444561378912753306157926032582187155448573739650313558982674837524020340577260253737623966360211128825761183020535079274976583271071089008073077821431568518284413478674023461431397406594799745895746536687740106903795900594291809714139715363591057439031676541518171772729194520410675049080530115103789164642631645394063100712885194485134688420447257771488029081675656590387713909371883292696448507022396991152036835703706294975267388267125211594813139884347246150782679420906070669908689345871520758330506495234260621585020727723624197715137232439670103996500721435301400967605613094327967483398807745082734896384498532743224058064689392712812044058928098867412989776292335553859560659721809800916773531854212594168122922093780378149533109801170729291591782550607406762537995369418459681964873118143717151560557560606395104945564001803512965370856712007249761199837191637846860833391201557354682543840279989859188414983278727228221478697687449234095374483036783954383250407100800538902917512362421455910653261118687182745967227049013940431982039846390862742612705654523911674055499450177807121546011101258446776095854943067762705960871956939340349058630435097309263998573112187690062234199635463143488361222451940860864024014303293440608052935915301025445112481555816906870020621452163337899087773336557886406756930456370560505330051348558877800069367945906175861465108848545476833513811369615634058995861642413842485641254482334590212968491590886881642719598059133247812365367097156937609317516262427132340222829970939152857139074375368163301102942657338377545488278054660868567433918474510229079508287312949838889727586182739516347728750731418095171159227755720289664808772702292315593229894429599401856407033360326510424114095703644963398771673039856629739407061035559399013687653500831837086638778766402310826143228337510451795717147088294723036220897103238109950754748697728894044280949109341410853809555099561493691225904713425212340067300159364671186869777575663301055919544852836144302025995411528491559737408979509472013546339575097395159512013800942450994354284096370917410908702667154386811960175936588179583421093352220772379410652308063159414567514703280183562429738026095782866863751517532885446735469858405219048034179459198386430282320023247279404792413484696235815611958060760769450581631503571793382731066045217362695867325396170085732672331648602773848318287886589937516342150788574140786944394324411198616608394372136159868475031687909581885292067630478021691291441383583723961571412697618974541184402295495736117627888304791114020127603087386650002345996870128847485082922519981091994504866473862381842133548750858075519835900859386228342500153836431822921967798979870923108595527764238837520611795776967126847999405590153253601136926589705053471400979652877243384076994023703741505660727900703439505887484828332142714726728178095267099030752393264071315399946011989955060008185130412326906765237570558881235143378453908321968188328211985289042655093707370961642717877012852282261335675910092761091823417916877185952242174412869616147425623048397500943814637992969932385465076044704708712676683283902354605214891111454708236159776320649899826496255415303449712245679968260482588758537270856196498909743237638543521456200954049707882627607479083296527962385116699277260709685038444240767829124403362133563387975077192868378460984764471382515090433484936574573294746244468353582259759087839977580318112839115809614084511116662121317578536973434465301295493079908261653357707953108400059114606198624750775946331609972721411066164378930524346480745417505320194904148228433384888743521006201404767436128376018750982846064026960084344353469206266378212431822477007860055204761546282563055608819069784225082037567478997689975743395335924646754986780838370208305872716796639996637299641696560049462203461968944386601696939254554521062364845804151827186868755118809285730121830824257867088768253846764625287964905768090707931582764965028951997566395496759634814652257200345791184655719483389761718980835534415809714470711994024577660105538814598195304156217084328626728753715936079972941308358808255879703112321694957830134845503295668771160096535055590648505022654331848024633829451126020396581089745972085783472956657428768747555145321874438186200550078419707067237263629037729120215277982474271281558223330003020726360254444134230310911498983341598272382756597726283499489546091491539148255017377169340732607943361606805348523350194353399025323837294020297866786349289578453790289756370399841259151013045520751484390202288145782893954454820985119998034342666484173416353130340197509419176944724372892377274446699395598791387357102703113750179248283086892355898874300844623264550424019557399521092007313921846965184605196098440395162753931604127340183737344740494318881679862063583258018127929505854560299984574051759198268416068385468886221412808333516308664104551910340440445154725166404273078791531908132651578773832045571255482412204765640159755011444189814586310560326057928070218542255518115090452990429457197489285318229619244820080644379993922380695266069784063951371397682656875889634646738050316497174724814642892695630197589198692045766733752313264099972075944389061956948225976431865906236817533205847356857162388381545073804216173230880365782060749466432852657887605482939003345667164471685558346018803132778853172211078495610444677709260984702436163385816398458171322216357927012005843945124966708950129339319834178111956531665190075069534703854467619692783795946467503337787990483870675371558486562443060027917812062730026414232460327142268901568895353033544243820560009611097762742524050449650546614757138516023718845101284389939971242185354192968323508669155123463901852817006735705025824439568386194989864394416951386494129350892376343697710817596931094103810814341619140565243562264800232471290986765799760261572691584538988287309809037573299369364635480486653316836011194686428514618021082669006838358805820194392593203717850049859554842093984859009812277024147647988388239715328855131396799480036369069720156472613376026717076594865728121027920806007725763706888191266958233216664575458624091565625757591012181368593187057919128738188808653953567417677827633466235762740665011804080152391345461123287829292847427514917320105333382049811636827555809386040121557110093063428866257961582611635324646747163093588221256677048542750275675757141833974246344600993075230353356326866738687529798259009624723210531058028968679990885738486034617070478075358621118182598581184079168455766042296958543127167839931643853616998302673698617635881787189683701664979911126996343147005188502739339260710026074451482674472486133424785360413676330013210912321100401090415453933740109027336874150736526652572313790411122758610614232362951966765651999998610913278243828265374827817660320802734333569853308479501773430159282878366468563071192040000448078876711812015037615586458241509712278595648335786692791156127153424609598700005876637425297273411569064530064892762419314300936329965561991094101113455188497901843549177006287527048712038922598220319550496106036328737057921996524733703718807738513014254508293511663625422959623148730988198040738127969117026874596283752413895912657237305510891512303062637467668381995368441936241473118042987087784807424964876537343011327998606879511584013595519027749431513665616362378124442951059504285271825809724956563997000823400302033557044999166989798366016506467646705506158038254541324142581802526939077537019753500281016728399028274349340842248835896924590423174357215427930206442056895621709868814335181908137625995021895766307310152174612483808452318703427489024302229245299664859537764757870972818886149261185415146225442075769286609705587761044859517939999314172087970109143380266666974164314097323309849087849095943381861578574971504254364832009421502848987159832915168050548445402765084749097752790721243697407735218605696806910733775204352497766179992494105542267100065739847621691083787187804785155999932480293437311444891686501283627472809983411464924882685143687418207954201973396056660379036345719114812425227112306947218670341252851540648370528634705273357614427039645115100624824177442595876731628856584022989861191474905786031279391336504108942035545024281358188000865508683891529239477186205019789196834181414073710435958946045832120890364667311664143910735093454030284603931364988034830436047777243781843786185911890694508658630744502618096779052964738808194895720316996334963178811960667244083674110753618903521189012582316350115092416770180489257022741871024925467756641799590224366228587613488075827068557873320913459024947563439613833384158982300065043008327288779321499576721149327509461604057094954719546949121611729480173470296061823649682979548913429289775605281928365783797728641958053223583583974459813685814448446216085085884763345824321485213375918273311590630350973204125869248873635649804784466571080769971986763713441179542105455322447280540267704200016734876620894780457830440780738228544514535371039776461077615988128740011909834486154630266649614065831986395742792088406791247639574698396354470400237919204992933563961459063709566474035827506342806529845988144731176581279814289792236603288514035118748417785901941147641536442670500287442380488267943812562476565843571141469939508770485564812782830281659970323922649133909266774760463591365863796280744359712033649192408663033824511927411957656178443181768882886950018356223834902420630578049014979581209530701565668758030741124253093002286448005570147762436912657208678544568751962681405053457538235782648469390679228438636858095190007572931869806374959532887473281107382373008019666146437052864655229053200115355507459792105100168565181004208854699524679006493672259408084061652707256164202511624728817706342534725237168317675429818441189658468695698578006916804006965402246004387717972494302664708361718794396076590961106338812313996417526686063780504603079411055328265632797046948164974869692421850216575189344232318022003143937106280299370369691363018540221864718024122511832349289186817076639828093433344124131336720670697705130939708151690316752726501823679338645104550140555013525067990408293534773507495879797214490978963781419105895768335527272617216699156834570877194211886491023882140097172555699541215016683386982798427602019711530735955044332060128946670883549840644054089223907843541653629801466307010776646291859973490112665536361769757510761271032489835942677805374612019650039963664116410965588118212076212695719048772574238586864962626931211583819576033877218477921332005414895739957220374392463634296457240794849154787468963095892298801469109500957577550363722652935797827315637032640538931075659884599616396456226589726468388237434611925694592635268787067716375790655835117700728139965408964668416172658288577355697600471904478682863640311076678395891366000742802622664922097349652149821446977854582440194297519302315041098816031656153386603250697465024840555264991478906261321144146019826482415554825260736455642363637419240427331243066584247270525052132139835646538780479376180937299384924903745103659257492040101901513864522801397429289456138469774312705788110191064185185428972397761407978339780398306387524400915792887668126762864211919167630861192888546542044082953604768534358621856138437348437361535286367648073645303801251315789931630454802128137655587808219734802675742813030716809479071872692846279495239079077990755715741981882546866668186330834901631474464335237048329713122772620945847484249652559706042919855621524637228727680984729925100958745282881393158300835991162224222377696614357739662748840932664279193202857582272039774412007212640675930578391350775909288432516758933941536831981622472019870793322837741842220314348198932987502994017064612724415054636000027645987329691128859601379744772467812771572657728068993809359512777101141675454633719235383904294682642195610935832759987148346825679480380030412814686503575302783841085866781886449639041257748581885467222876485963369791818492560689645030720621666915676488998478802020385919328558740888307543889978172476634498924986348307705245195657797368945415483566668982345620740076188716487190126552039225942050572607916871839141055420662133762896120760322032892631520077208653149545458085060875686811074083695601290092492550898097759622234169634335385802939511934483589539623331120323407956806275123175651735517647053918292159193448560355011378241532010656527659014597593097840811013252697435396437530191356719574189103317169482120301066017997620146976339431220234925703440001083502257012837715149288587164798500285787896782075679174892340171414451827046043055075553504882387842549003357106696694218901818998536877887678886178454752545867498606648898817751557002504514535243797331498586126191645048357721673263732741968171663711249625945375252392625099131567335987425708881654810926336065651500664095453322495829633434942142384986523586893678202284412096200385045214283983022317965087867587091065274887895035707438676532444143579780797499893632155992363642108747660810588031663859818945452524703210614194175891482407390873744317118578934365462580511441413364710573840354498336942521767674179062399763376629528882195981346108815444570223325501818049142937063241530813857458820930304115777534271643243127107134516233496760842795794725442393443480768988205219456624713560097943865743887314642811539410923348861194447592325189308435646428132238632057217653026483708046261970710254731469269301243603611235563236795474659484737242137205824809701103514647563194277392649155746867021457068469252460052998829213452543732953241299973825255954365310253284340173876867492859205238100361973770679115463862278894897884108227997959492791374473479705413437779955019122484408764677402686559589141237281062406034197902856795206700577086228296521719231044963653931433961581947669241308008862314543859250535496552083371758111134221475716540501951276784959642751705981461842214158619099345601568875237498089955495421858363912935306325046545820470624357702954033065702905129722706155064930714134621716139414094746067541873879564058480871667494765669445274209833895580926274352246108214888694771739446536710859563990897143459408776970379224773268663120126685828527714797650510921441626328880347067793701915822420139335728211392194330796160666064391945845256575048415303683209192667359732677698528655694799204819890179487682867528945487273081970042628106689520084278346109984320621279169670353599163985624654379367666409024329614034628776482064057322778441494370966162794792403835730659715142128511952833808662989924832366204778103808027211103987902032678848198306903548467618647476894350272919782585309252509543973185250904591054202145033313337188686908752143888479085798608687176429077703233658272064057942701210097987496037826890901433246650880808197835852509717052798272395377783306737562096240844622795108825910396435417008658288836687138860584734376101355328473889403555685609902602260981554081302197929881929139363745912823830218571023470787013051742457896377636070386029051010585369393923403235132185817887206364038191219032346438940653389948204715164004469136667726602714323209819314887336714989842416717490841896028061932716679567028726655038705975221519245636391380254928694659595988664961576870641133516142364636041787485919876923078492071287693474354196802157801651274189211389490494557120903431323544928139970598540005325069303780265126516753264378744685736832114633696870113088063481694553098970376687488156820070677410471970284559548740600389484196572698173146398566583097568471817365302722407506459069730102373631804061313581441275567113309213265600844577823264145910014112683790618141206235760878753489381756608572020546429802687573944174914565984169066453386850839931207358820070971751830051092154713914146885395714190001236364820859783181114549201091165766691219645298766638965607387073897760181382878527498683084645993565378862839439890661184327554547777312751932327251275830752539397216212723788942596308647506016330007538157996931977440260426621430016459011942353029325121925379788588592193071804940403166201258614731439468038942190877246112535208242320788639512592461712655861096318753767463203284359101478188338595603507340520224918426670164945056661458668665103943025608164786502841256429674677553356344198142743398913650023357290985781702301554049775510105920094132963102004925890980911509122638713390000621161123238537661509671449918476791580594883631359228971334593331340936528248328171695705454988979067267891534463280787707752582288069355716771947555549697150795753323247007504781795526408825201062289280315671951189655490788269121278440368392156522073385004668308210702784447598894563065676598250784404540556871291658880970760823646076899330416817733425086250432221317084994543834718761940468342825441739965557336250752867234692086182912419315151198312828143303921141098034174908375346905697556979427996247120971816252117763827439852474520104996185523546255263377761085861614495102309350635555762659689485993150331051408081992995498552359396264016451163981864193679124463992188969898379496608921715775986432790189351643113761371068674316527629138876652793146851859793807571489432812921718793413404271416226887168497125819906897209906503731350469593387374033933710509522165012687406331344615714103024196117484452408690027778089753221316095215899838745909313160723379190052684729191324424820816290821129169819860725002332971139338359836255342307764352209134655212349392310345724894173088752778136314925119410686412788065128771161866620015724846862128968537569110018274447272151587342492746458476132525876998211305921579656437118271854569744771260388711226656931749190650266117050457827044644330173453396131116640830531900117962713518929788988441920776464133912986101377770128752916924362665065301233035131302775694565354701948613019486745382455818062608951313817461960444873378080734759202571634251637588174691640402815985035505327703373822346098950306644743753207555268016675799035891961409261499227101240214525715303188172012428458968569438214478537066734984384790680654860053363055349656079474188163617393359661064421807294908627261122448302658133192091580402208927943885777261468224161027966225344019800173394285002023878337242826638779318902614610376518225479228723257748509874598264714134749720601541065651300619160613922313033910280956268358061056135172619715903071664171563459233753117175358893606602337922415917762978577505724600726473451724415090207427879824970186299339837172284652212374698478265520901133742438787254376097265054934614243408764782105398288785211462424789846812527557757210459243646105435805255261260829609114586514307430494506250005341317852247166358676202980877180223911808110005815102404521015492252929447080752721871645802797562664230530841897449864695396416581953690315525288122946742153322655512499126985407015557029717358362656949781532554888603831887190983026342135125056496415491764122575236803683909024198320716300977096392982110282121184806309549997912725680703378585391046406611613998301877432361464172441602776887915928081502442574976331616662684611226976275379110558223482686164030351335748032100699111354106382199041085853563086643426249680889432674160449960873460960783290075052798493531016416026827370805163565473593332847449650513619559287756378944803362227216101642306441043022868681732828513482364895800680714348707873008903126338164333703939560858189485601105052085661274838644849744477131146229350995736390338698087947185830297075105295524159814773810190768103300010166826953071708140485607187301921441064206249183749898336053729414000230154286341876575413059899272412371851450690520223409226249438453538125141160216464645798386041644691314851968316609979903518531705046426952106079759482237708109842019858893967048282233574252228272372233304160113460308403409318231903764865043689071271193142677867986963755014673701532942704891776462842242946777510106712773896092190139506299093383935333545880013340677286295317149331270217319898293463380654740788501732895434281555939466542351349835368960852813494888100068284712248174656924488494479192397269242666939668886546352940957382204889614591061620462606076906371999643659146378818081451672789466237244055340459276618386308018569253572057135391221442805850378977134712099171556313965135391669341833951450204096057924112197055009372349488640066564799501144624760431225345987637235664178626100612881522830587100508146320213980839315762951931518479031311298190226274160266676945861072804847980277384608488147597839681211230551974556794673312902609482677905108730946800872092947672076093274886198189090468388099868076112336133267951995310883601172990882421545258611138063655456248688793415098712716458200452797483715905123244285109355278757647285420049564868711853042661341926404345577182615093711235876063803930624330566227222949233998670167301527763633883717232978056789115399500909872229765771792790231025014302544487846797813965825779061480512417447784080064047267592574647598376367333830383212692342847946177001847464590138288059631804692265710548951582212635732434812798263974323036713731428746641792711932586396318123121112398649622018739803345718829119953590254639331517894299517737167833208577797909218065528646250530248705568229671434442328180288543579917241238576807197070748072794359232917905158009074502148226497868809128709704615487701369684562695372193648281514444211406690890454865472111944859898655190433653170603594805159398164766747364044500645118214698048651424996748204114902070412376349589391486751685219023143792588537601530686068491607182859913148216264085967265114940023231286912604696564453624314038322427372221426272736193622007214709643235247471620800119657518178104759369824730494327212740377876377661395922359528107222868991740221946102014304503277205851976972721766856404398121465537850021356074233048650733447943854424234674132633756154897551843046662305841532934836826627001550521751374480801970723452866262806492755431732934587827346248640339475963091800474962997322012160541150112584848269200782715138484720074485399558261228204500748409996025589943248866630933839819775002723540546195290688557182356943671845799477632231525762724551513967460617973987230724708232551623188376648998788051455709584843950666201813633165068941704296131643475235257337355507386348021546153280700255792642754494922300104490915291907033684756500105170235199528642026946282776091754085895447221611389672336246217342994407653128289534490120630012692140513506315867394387223455766738280267692200434818588894894699728850908669416512709306967300079557247870452650794708034286015108615348051133053708473221961098575790243549841854539769445157800140159857937912290803387139284403389009589225590751584470921706056027698467609438066067420212334571438284583242802231621983982200675422612848356477615131417269677064899192872939824301634617763983192852233470476977593776513275023626390291708801608657549429749049078520165660317915388008269765335636079766174343988958153267734540697607235556860064725001526175074000740885043596091062424553402153945718887750030992184912446174124676542506739468393732150317713334093335497787512027748772409096887689915050664436876779673797676110747969538302287470634502933596770042877768859141002690744041335710780964498081190293768044038103867483112176003659794960677355629765670016336598869870982599425697220576791620661802852730090468087101083357252472467828699789167540098727234749016609102363236183351971567482549493717248509123285123138567716579832262815461339894236957997758316193290964738043818962372380503576438462939051863315569034302389703885056079657440271047420887358988282870700208799674926285828186387900888138954654727883098666563466073646062750869986894060067439912152642844886900379963862632587797080293494595860645195546234668195366937266173341724055615151888719138893765115722226193566731460871982141743868169837270847546839036367359774994549326803191249389005037019667639660559972512405740830817358964708875757519456071414897536404692578767703425215422554795147475977874195565074249043780845567400783010863347285664261311044748176131524719483895681328858285687003175920938951121579868402650386071656116906059894878562642687084576564982975419001322533451517506118247472264616915705757241838170272738654062754631712061255198245288245831061543977543068470708249658490237284989749905861321222369091388810913800861751321467605928765339942077307711893221171164623422162990283633807945481761751213087565986067723042714317597657519884078579683776362250812868897320038191834092196430784494217237098833924246431595512529256024853141439554809730163803505710415248309791568478416054636012364885376026951644804461423148772703672991243469617379379487884781742603905120175022066813208133111152929484180956177723774599706403506378561662157011624676055500206605381078201080774929128887898277425930474216301219756817818452755277067807221270196475909036561781972827765996869548866369943135296258071250598963963593616465561266655770946477776728527261909515569771911353507958859541064809480437316652465409428987412389611963947088522460488436743299068898538907095004733036936790775354022913705738189876712802298809024508302866372521572316768901561945327596826567459865517670425349337876660373023467694561136682324537403046072117252484323245101810464461107994504920934032777699306000614957924394340094867816664760926014081143627517015511418568313377665501630495784870753898959315641808592897378226404699530935435424043535154629118572092642310672015879503263152341395758639492126509665580183111942583864825715945890174760062734327130366949848657020300983163921716517946989707569293792704984690002208470752606118133590641042751976474962327488181382168589911314587615738376135227882961461627162091767624784313774754321257246648018885033714990535500152929344251275602026591632692414448198626892753736296816258283016802077387763544648784768040554605723911415377753241751528663921853904001289251629360977487207135088507463523822114403444346508712665705791946031239825613159468962177780429068434996848298516352403391056400128307049753896091596462430828842249735644804369368837833555712439695720474286200169334511022381335815536652089592719556609239874150445809910447326998341854454505106306616349725407835228212403623608063218284354066963821221889628871680273427543991888700233662217348549446877712211396935653708190595440338987492177732302922304050911119094942232726951142566731406199757067771084054423135565915811908277407049161919976775933367254365857036957812207395375755370400341366963855817965640704634954748962902249699374701389251440877577392549872550816276547809792233117136283290861855475063185078636810213215144080969289300522733697678825943595354450599068573859845701277114285352666927602498889738673132396413440858512412697179639471388195519469557412726475806362350689082299511352098822355470211482961009735435161252662909112064940666703226048582139387170410861751283009578875620996861687580612658054437989026168928914132277474461739819345659907965393987156258466260835494298480707789520561728087554043831113495768596244970347269250557825798743185682516416591767370176988046246393978563832733826066142709410352644331353993335455219260796604984817376153718254155837023858011869919881551240455483299626753003318274035236879062459490421283895316092690868708684885829387109149530187798034923175567748079041883042963355821012173760946968773467053758829778947977217851200868779200389357394206409801027464832074468545853734166982029483297269700683684956813566754433165227383344123741617460567339962881518237386519869420251538689847671418767212828093704158739420559848888226810345027509519206444792920277576414444124312766362687971741365450708361600997484044580629094668168795662972626224228917219978507608039345909562119575165482839257717582368194151400015170705623772903479260633698594792945116195890902900586887471485852831463832807835463324436839696421529991726835282885867204728297268032204437955201094127220789026025666253167835219757893248559777865352809528424312282812089513568567939746159637214298215078944805931916076484932434609584413834627540951635998612784313612299269078357892638838049916570685334174344864309458566394890671415311529906759300027174026877202609546660921396748860044898888765432093746997699534829164475966062756014652836856129023897048949529547502475517343093408582262201648989598605420137026184267925626571636516011477700043384923986493266504224440030531755110178006273124007128928119967385896439059125074897766521284171282957885052989784051469968779810721049463811967637099440816325220998459605603063739953692102036562720274065820641424243659728626426889656391181366960407434045412431601676960306582543296724919469114266986924010185258102908506081673339963377263454732544655892115636095745599686062225101908805665194904219999316529150235753022957455737509834849766596072925328250018275705452246904510704425508275747716074948380164320475098073892470308250414286294144094219929624875084935492811590957709167144360032306665461469323255674965331466830381707518166262041755498822624445167675946723624788561424354072127084119572924453399013618932230893627034722354688933784382860612711897416337485180849623963980940185769842143624615701620803819434237719866335546418950244899498868116898034059281849894229187033508426498668711233964654844377191825529056712298227232599052796929095366460547561640084455620204016521061152935063427666874555690289498633736974525030038447330091632226226134602187958388382091842657047877247195599950107222048044278175851036829512337597555203716914580743246967678754492475817538230108186425974158775292532662517187991890511893380946333625523639034706310661257309527352844794393774803400076983528630005157447922136023551840797073645708698552045815952900200920065635849377220884264287810878656484957436432905620486532832687191688669872548714278079479700993670512032702439793842701085637823254733188550726352706718156161659527057049433832548061678297411226847185894457063455963460718501641358910721647842099865363013945089707104997601681882141984045109076332893068762418706261509016730585117263286060809911290925160141555792491995780789926442308265115332118082247610249714121231783974119125430860223086906422866843561388288618218209135931916557369227760155758561992733793188687773332018962441399165124599966627617520453328645672520973279957130698855636845384460938509127698355032755804619733076483055430614167151847251309334682415786639162632208202908368814288596229513477314572934432847403436180750616590920225715524142794542501834295647224619118441618426763969556118367027882220281283062753155837929182855594943549539175700437084200372968677737602849416080753572232953471844728181353616785139756177273006673097692550653697865782560928088146390504367532298925316925513611654095056415442533518151649574074130013019525646798319117970861102456514883302347400920317389195959505122851932006963141438099805551002866741255730392233128234477049995276386258539894490387732668761910725083678628007790266835209274489707840827069683051442876842144739075547188399439952176222788411148312872722773812280754751777292688387589814074289492300453682453769076142670230572702034946582052928692997381721782831389747796231815578978558393393416433138120408798544102349657490107928662139554350713741171971404965549847256986190985953978751214720176204260943592695591428328415002457039766427033277577279935797358760521277824288780295196275967180946369200461695811256213555614792887816140105572560296118320566235577995024962703342887360796660481333873798366377023299020708032857078755167815545618923313519793466346032341337290903954043853846811339672610176205565664840638832516881091900466643360183082311579170993238986722255492109487063040781158849433112214488004292473564556658135275081665019346819091788245752661201512016386648813150771279161808946337291063354198251890630684955076909142668509286344704813044487522915029605672969718477309353731425649323591068271792679918229927814056331608326630128615065153067914480903219712098907006736274320684247222075516332162487880542430494449705178354063760532223445182934827081330016845433259617005951944584341757603934416686394829852207572096722152972105845511095191827197278275912449969554621671742277068366053831819469215019381427500334357386515215766675426837220864328202017027928528106660066346244441900173316438159375597261218670747387953910548032724360040762296444732292113884942701357209853614806748648406535049277459992729266822031919576042904824433098213705837343892627918204675780512304158828008054382760564985526106769102499498850303410777423278885413799348066218804245312685962171240579587357084984633155179537380814773221101474558086495848731354589345334657630503011477571466078004927155811962950305985322856084707053305299645901681540989150951805525077297611664441853965338071722000508362689230563550750002881454980962846227403588079209402311272971942151432491702034976095930922228691089379748251371342677009603825900171862713693624042374778732365418977543162287924721785537195682913711743302260404906131077109866545294920951473219474051034504531669725545613787591093065311530368548641755485317050183504663960278382793712827168832657116131964861009805862842190490216810298167928200220487856639558096065719799009936591767090731713859914032423192269985647029800477350548950714544215135600178256930679079593769029033155417506141962206673303711655707276455640202703807597650818951863783254430330428145388708726986351510593178838323111169640133230698505425113010158552592726809690713158233462436970048886460980709115360991307225691297019969424863445146442190399361653083269611884466946345594251983470840352815462219145248331187803223138354621582024389200418354861604866104226351474401568718937775679890933768365737964681593365633786175435295492601801287764616532795132543974432230412991304325028911816382507086594030556127017650407500895211277047928881042178499825130209581637067078951435693387147208968314269637990728827056839069321116212216050830901896548055835404869120626364510580402720898047786408105975540629769193483959079657106289332974107467205652140836225827100930879800803428562794921266267663734699190162514855584532327127418075717378932674265135067762829719833105819502979119474880944634149043692205559181095373703623183373410001524389650254026328998631073555975482905145062407193301709143763697352249885731336695949325241605618097267853132086156930461367997309713833432646010768894136854850075876149838126980762884402888013578738848391059273967974435137763669193236027202943645964311283066026259695569509115490494425673541786722245878979725617523305567958599535129766408065335121969749815182294097265365867927136309822694400093806302288802277230664783818329218147045231516444476978491906460028883279361566684852988413053220395187101597730083646275695592726622878608642981351584772797828824644100974571593090350071143011950764189415336552958004894054176736266487856651585977003553422806714730998803031272121153631233349269761906389260006060218512626417634254074686481597557704590326646680172119653483790986720098169101728507239456439084903794102899075426116237353104219768972899035017623597041290036006413392457757029158761551045386970570530321588356122277819376663087406448941352698876479586559836021166049858690439834746875847297304889846524866522195317539285946218477080928091372065331879601975638959606887936091232286267895139804684639184010660938066287065027199391245854337740014081917039778429822148012076067824900201009979473173574848846631288686806327581360124918572069524875879548102422605584278725735560996854785098601790888196692858222620606162138680479478906544218157552962707921252862240815253631587352276447923962921237874451944408847529684596897714058381681763523596353071704445122125920812949171204954965290642750912892749104568469484257333077048735215943206516134081696934248770706075321278006695146869728386840162915301538271097741363884090133710779071265783810550300738255733160333447400917478598032061603037275697943956660828763691256191799687461647320873775138823603450130865910144598353075846000964223373272103746389417650558703847152357944965028787658207619124051764662229125151101991091330007744330666415557497053738067585061321049558833420075370841466160464454381301197209434922355290303041564621535352294958113128437279436044312062977298940647648562018925437305736569245215249595066355959778003325926886120699339042157351925568855017348975095495851738786423266880639361736790729309424998663280408234092847291522600146042498499030902225266835221719838400740139440060575104115137603047104885165060944396752274420579785384348335048784075002051657064135625325739489834290462405292264421072090248785392909692235441646789674729205417090992396318633484134778395081443393241659100735254183429696419549374761594754466754959990344103667843433593653789953270699930489579219251152743916390235731384118510099489328107922904458556225075036131501086603732913932654295624429186087134421288099315970124450907002357977728714043800586358593797026863666354952312040437428175900634403756712033791646361066490638734630361757417199583342395473993375564198741096826045935294624040365717128207950118364631232369412863079365423424606432740970082740985187443152265462624971152753886782737115303786998843952835898563072930154101141858917629181833135525032697157131141034531626794006371891876961869899436648385632326155859400912335767188458447015147644460519938214182495843100375104314325121393903367582818999033879428011512960904115670830837634370462750800961609973472742770272385343507712135979260952673821039669534285477816030695595220172143421574294401019171127607086360106018083917413488756546008752577876215637686498674734754993885934923205464444729225885911977876822349464626237208034430889545522530543953301357430510484830449074860555432523302580414369991201369349514843660288025290500844327426628392851663151018126722796912709115645792970420018407251300504315384515419517102169177504384661262595568722645421545063679688034760408523122784952338705927006334638928025242247670046965384336945851206573107848002813426519713994573801610836093079474909491091483072704562504448311285672760063314763218969631385471256386464548861671684985265428958605140074859569641667277040796549868016634049006997607966483971589213853755777719082526535536984054956052412049155051088109100736801027733077410107725277189448091782427356828981734061574478948750043608226860246499655870716863271033858762050171321445652625141957192214895790822427935815290823081302643463742805066752063803136253689475197295504659858207484771068078010410743012180123629924798433739344890011591283281329969666664103478931968089989823090214881066760425411276235163665433094708690481045615003502911274781227250889498008153758319615802690445374406409393343023429844804778462411108529171004268713293420515361748532394912790787963186685872978596391274595843646771117857554394906155303536253026614168393451427492350177841089223796895374459756189072307756295397189934247790453974139323378466724875014679933116016592843870482838887061991575831881009396595207410756405193069240263071095562533069724324705677042151083583866498413004852381060454189006273802445910099416307506307418780189563210836285122705035944163467532891567473928301652513003912343472933837092863039063057301701627112880359523342011707591743464755935555165895065724417553086286001689106957470943111708437048711833659921997587214816774090753988336191577477870394648968086647505696327858164327929044660623682478066717879114804080137731336290989486827461814935486287694643853165270855429182709202254669300204654512387223008923701816650663582928590949484568684450693327145353809083757680472680430420725247792226151528746127672238017501949902933658348602453198768565119610521826067452449200493708239130868740040651700729201109119138496567827155316420663194642470628438464110520697070437743293785799505198186432280930521077513559195287219506251296288831861357880969975567877804342878525203846488151079382395246501704157073307938412542628377863001137820333818879624115596451523526709810334047154954556193209663167300463033322415739662944536389468825476138115769025116413203233915705916191518209023871534167422122522947300984164471099131168894127573330686595933383428313900314518709009687137582354092673789010881700903899213883187017394326523830175674902629264674379419610418023644813607372426817377307761271731730683540547334703804656997234669824765407902878367385897203156152640012943790908506970720792388626527773846705823277347301816740458648699898585537344808119495135338438337420994763477264816663760383719519115526919452466323650239877393049888717601552417839596375851422925312664746475015749900925954889095659432865724249293354716431589805529470848393035753682937797003112704249728986398581792989933257458691891353814517080102013492933631703314710323450105495700097998500528004349575416057879914872417355593216678117831404745584493717248265553991560969194131133785196273685853790433480089488792575885978679936550146129379083439815587165598298579731558054557301333797003380199265439148187773741738608724371098637140788277007360085044593156478426892380030066424701925425614679422893388814254495032108630629653417378215791561798622133355081384246845514880635073087209429088018466175996563804664607380936621145650143064820046823730024008780189025449176555763732306176643274041266102555288662694171231040742192398738325049148938717009214319188462197038325209794952853049149926990102392116345354717822715873565643387816174726720330395356371851284942277217034323499731908644070809360120211492328041107753783304126956950979078201990379163762941694120460418844110233260362095919306028760910303575581920157542408215436957321409272665904883452866846074750569767769589757723091798821534777440579654770176524216119091396297668772757971662570112631967487710589007301431386544564988633497947063851211014084185289730782983238245727306722804108130930792525072235862132500650825259318767252580314407172308005698664491762759093039807269819354275339966552877885549032128922521042105555159005035409392168945885504119111524753355394396522383248516409318195967172314258730924155160441062005713384548286902321687502738448313950539301930689557873406385761692009152995434987713624080164427235628530818414796363131485289107550542616852358931023920495284461573399905360229655400083784893738299155183207705360916779826078619350355806902635793593238414732267170774035055553311672202881680642792586628278942607002750414245835966473461947121881433737194549423682673208585185335862080536464623144907200790553901460228196233320137150873711068776225884238889057140005444212181341035435364617077412192805416397235721670324229554590844687400266795009179526308182960270479865668228652885522610026393644108794774428889829280580752684913689358939383346593108863837526364992367001496789322421825902724191760180900873062457059292680335546937652705925372250415792392656335758192820496328762297156522308164366373974590528033817519077710049013309694572909999856424305181479625471629455964575814527040968972407900194236111609095413273045063377428406311009821739639293339327110526538257041263226681696827765701201464987450117946969515948910814669939508577155182852928822685272236063788387082489330296650813033334062179612080168930913165732507323376539761572119019266586675775864958329607809035894561807174064925612720579114424122937408262609577780658950889148030328064822807844042183919202003902489739213358101030541738939245821739027054227888524796744828526296244233950179745333076269033500296830009477185664275203187499283715846979987005138502974263859379237860856258057445456650761206873032131293270060001898168951784906244357142954818413482031300651463045619998964103433761001327177377954698331912050452844809790631801219818082166379543339711415287928167953727110839078402554070535523588711477495100592236373507055833071416234892075173084217995243717825554887552272571241667999895457485884165628849210081514526053659452982915724876981810496196720138673851598486881833272095286083678972934620930013202970223694649637003227609993795373634799204757066347636127403200545210933707978100197785886683137469086213245964007308933318693382207128395336357433564887683494863214150573549979122094886042030483364666830866798957357253982091539843743620573994465118622842093365087102953098320063801236838980006455586324817601882808011513557853043939549786213854725485118064308711010967288344945755382949456634810385329666909807230820481793323405369109018297352775632848744419716285457543833141971149811726277879836637439511069367013669071547230687334857114121206001354939613568186115814061916343071245607868237892696648170423053170393686232881781126213171183901943417558304210239953726945489539258504810193491277308712217838929635786880085536904150412506625594119577482163313346037959795454396933970297398162845977706907033388099649781220203447890906764754124684331225896038700307332050234468590301057142303606491505153993807339471154089618324217676913886554819520565200019464884730915335790875346281360798054787622319694564543751823720387361189148090637937619757963856582310420248974525660114214836763574250177038947932289315499256259919061491385798721053564496034341792698521774917576685497599840163326851913963936249798629103901767700546114510815685655388583731199137019801591802560716757285691678817946206495247668675862738398954569712090739221338599004884372350579147039322838416757777980245039225779242140434169284575651256033551562863327906136680758280494896717109198257942055985067722924299452551232087422392457256073645497071221279744586225447317245573310047527012345574008727973884801503510417079252521650426939598583905405491342080556906692890309005272643310683981680276780240613898351033701430005189558551467669253921641330172724350047136455478605128426044064547567933161576363679739072840596532355607376064337774945824375585927280065804246479565740394583484314146559988973878759827778916763219956494098384842965836311035957597519193020559226842292643729640429398488292928099991970186416745955420395647534897543782870731236751959960315193510911921377044279308838951235979887388522276983268298164188159805163131165743557610184730963432967303185995887643044722431551962867725848676214680720898803229486319978648019474244226270012388961847388106367533876606988164470533524438594517711538422836558197380432578423325481483120366220379119813385080627677499045315276002641313756112674524201448050782165405516667664338970743042323409764274801292004239805666202857815963354447651728248124092528563924479686519396155086999896806215368377551696006654734934944474241942880161493936691881111280853550874906018774279135497118163034040162523663775894064668200475012323624780957021041385173982058463832710151813664893372127845355262515111276831965409089209995109647811997142392645506187454359670831742012200984934023384257079084933673822967594149634720753827792855750192877299180456077892392213134753203800814124543881337171947418216501870673044625648739424278848468942822962530323414628964785958665732691814063116587499394764242019352599122285951180763294822198994889721377859697513861217793067301176406586452665305825079149909701156493013449417153980546241794488851919574112904777436892895182981995650413413889010487101166020620878433270894980037417634753345876243070274572231647761014658124793876665036851136757201118469366850066041237509585646742849711962013013286019524872739831170372742391308020341397052903020779454992462294274349500829364817397639765045937016291401949854104701796500249248319654564650054902219585569023537390742815217627641051778693087397786337894281876478619009509741584203937904258310326840601108967295372758607084293754441807539752325613887473028286388842236326289694774646370263893192434106897058943279896456410297997255199760698295561548533031312028966018785862103624992004823027022329177559202397400971327631992616090784288013697678536399435543676631387714295040680589637517889107831618293718487290038391811470179409331927465485575796055636002148710680930431365585188676037630435179284427183777127962168401977882969063622271946729028068399054243822509276217181526045946391322061169086604554869445403529334934079566381477853437442566126480496505946043812735293000794041967636067029443760564240923255624065486736925736107658012658509349389891861161010534423824870358191824213370025307988046823645994356362328403799105915912521941693782825064728087398699573543610458667465967894299757314027672541751680924908297594714330544369003323479895598068370939944049847933274655878126192248747160745969087345480013965358590785606300377949467946435890039861665890358632191762600482524840105246816618215564082355738898377457166167626587090179549002621931755943042511495549457246109135895077916617970217035133077811279939376716672195117369219806715261395956529245706887130090328433176077045424313441539330143530636623580655648631624909008420798426046198155195365572779470573282729825973624380444198290240095186319508061196750831030649093759979504965116261200514121286128876018134292953156687722121346486440334162098967194350261254396999382600537014259922057239451875339818458448007630585362190403210041012974839616550781214032725686570905371010438650595941180668661837548721492763473726459254493633343640351942844059104395637816796202804160069122811076745959716778195226040142529924145585695385986897687979080122594113710154821487912759872161436914023588444683402396175876566578791550255102780022648794635956418696505407699663093071612637348557662740540372822487813478012125330657645650964244622292408709689352996509954393703643925293312243941465061730499704860096179471610054111995998019009999513989781872281984486218182507888526483657003220334335227617782326057218302310455442236668117974769866746458556629166775750807324199486732231266236582431369118957203960167647521124141263354921268428156112212712901422899217087461071311740315674822006704833307335011685703511491172448978486143323850962110588840468204397589468421370226059068698525808205059501961536664373531857829496769036797090897855393619887158067422498674978934891890765193111780042746667159005316053155966569491911144360603808122253120847646758557358051426030777976128941701877669483336728323620879996446521482252674231916583032244224514975937009182739190102429116090545693310874594012722800943328798690623428062791776166917348171397201715605211570607009796670707159217193255951050663534961983773861773145551609245646878257892210332288629457939768961322379714692181191892381545329727334239826276581889350686012666939711517398152189093463282305855307016477176814205159858110377941147996263875999105113755424761287672188285641725473718138925617755786647585532482611140117411071933325474100894766455109014040065134945972826492087983215077684877915183711819365208044648883898263386349027606194476230233279770443234618791077279330532664429634853945628262064500504037181716085772508423375475274982801433630545939260770382630583836587882628793383253224198625729259551606045775954813348439101197460337114731440140101545934044118810398034593365492704621318080772195736326512789211436856852754127281792244505629137619681930927246873248648792052311582344195963788135596909362678069673865872493703896501432896492377406472378580469225951049371992573744243159328048362420413944933001133569265973560932382960439370080792702005839125700005194811264057102696452093515620960332449817229998859797562773324255353495302151888182813731658278425846213683959146000622286587902196574295757417581974408528123528139536632907407175547832558476957633869480672901930598947911841821358838072124222468849100492592212729113914797641567955173070253065632296224469065103208418302928328716349999241286658796608472773645780333203504288241857955962371537023801378330244265240313175326496977298880778676511024965515436878479684183458994594016434000526555178024616998056451479578187826619202524182270373781567920948571193532333216320673807016902904331157126957601984857122970365289900371757793126703904727508261347223397016574989735414540531506748995326004240603281388202276771743824173928391149550269181157961147788867767162479212234226779500065881846147435740547760759606410713697936146789127056009866420246090245420495700294394504854412223260641536054129999073911372322217678428988327950779809023034526087203921994705525772202553718389092211242707044985614945270737635082322758327967907638297977758255096644418417230854914889257881770933246194584904721411494781812562689070415246538162550343705204515696232701432187389850168567916344963535863165249452943294972845867283914576259883328040095852653160313539443424275099143706611779520843257104227527347723143289056104260741060201013357288755444359256711957647062671258977366678276560714284653840789496946173703272708219349744871507683332518674721125479358408806581248984245760921365505785248649675030697544444710827047841528328211068639611232610746123679884805440502319365412131272702044639249127889382229602407968372681724806050481909869989699347786193436143991865164074733293476601881427356122506744409673255477758760043769137626242955633208014511363834083643242643566079246720807221831826640194283043607370843887709074502147540756359009695938006051593175361092427285122858132243284313886449248725638490321065364845937819933037268909914716954801837429291536270323989897053454296441454376554995426617321238531324221014239100595184049697700194285516801624836219918288811924580312115206368550417917423695334483933343430352902883374111570923253862331888704401371222428194470685956962187901511341014523317013438592016051658938321909951181859523832756542432108929148931816634170053779374878022243480916000420650054145647321476990000961746235290153753656264012675978013896403589118343063637667283709825118350349333007996033709730825380957854419482424196093993309251292461432513796236009086452180372815717561454223225586265194990995086119674448255828775033657990823693957133866442467261942160545202334571930886956515389958435970391463245896672689457678553512999665025757419128746000736218895072884606310535450039801768237827274233990440469081160546940791025131508572938279923719544347894698111888274712578167967279577966574274967960092500927060874169136974894586830218436951285863349349723107657355111189351558774007813254441255466693205077454767138831558042670101761992675195749462430061495618848561479110245717977569130763644138537703901582131466295914872547359511744053203140145549693784300106167359310085922730111987806353502390880517251902393997759446105355612034224409587574213985297819168318334724390504227425549726771246302351612298588806343736473713616531704339034761818975171475049287967202179014140949205832534785040184720750746298875895443082015810241251229266251688019995284837661745891930026057533409427593994726456184771224675769169613678007301911041594274692025964039561105539431187092713650331791860930595357596425029232823427024693336822011560131090342680447532259043238094190322589173043856717128163608137134537747980147416130647233107993565653724293136824413763449880684670831583290425746014201048999213663796500611929964050366900924314084973088264894416954121875153558517817825708835019875804675638701160062280672835861986056216533234929336114868483656596944708560018360552707935641762344480245028243842127731246577488119596983643093974109527660109818340256482520615155282138846526466499174847030152002896432133608493861451784598394867514482406271823160782977663512662633177607116618284445276002574793765888197285158553733212532368302873023604044117777122055799643266779788098325268769561453645542149660803989104367110347724897716083968220051756868762786843845209096318010956117740470695959634580196648947165669058743067852056279082055188772087195131795626899707635925175662230282493923276480250675364554169151518450908454211531511321684639095781511838275617882423333419734846206385324072428623694540788695741992881893852612845820099320180850813839091798625451971846115818361424076816027562784143170259008745344775419659480194604562697637496678664124669888450611912761005434481630473289993109527846618008910956116670657050369717093527800930969836129383282060880123970853885414475274887265537776323692694926535190184605861204220867173906437368734828827708379051950768215118480142654489592429281632700064896833442042630183979955103824306548529998505096337159901309150232344492782889859132557565503416239166785852662897015495808924234659058455818884405028814416038001130774433600242849057934815234962089191525839214391904092014412607387323714107269112384671738894858399073621969633040017094938960818718560845009972604851624112034111213788250884081725743730124592697866189107198528804977997959043915348787489951480495080837318877381754402918900499192746548023361652683896457805904406847874539605210470077359513272401561846824821217354315248692559040771073661873170644954296915265071546429772995970467328353298381684713104336110525128807732138408050992540651257184259373867177780282728410543983596842563732087123701135064398670128696485365406665823162776983514074065304161400382885765592793062216826682403329821016950254115315804444275212986719470511053621805477129353309618249421732958504156112147454712662468070495135932276260994149154003195903625705834660409427001624347974947935477283794529603157111013153796295356111196576382824354575761462161945244236668923934116190994916333124092093034902861114820235702983789027506244597731128791324087500836126988152492426854880789541378271067592680980547387519537164033262115677998219292012352851941525749169064299816818956941438671050482663480997764149453337708822292636566506643734214133772829944150162028928811627452858413095512950990648969309786838865690421857192550568869120295800254340972276069851017472213048478881243852116447226241772380894805455969460274313665657572236982191142684615598772484872366485165140681021406223486946250749349161020278014319973391595838025535943738312631980884508844829131027227868552372653628467742668150832885773558071253535994483259949660285366464420161215740882071617540293346515149578981169569293777225410238636514541283299246852181773000744769079009232430696749025980615138090563397912140896673635058678158500908083729226685110371937687915399760026921039474306151106583724612063387814277054420509529350179046028996733353866424440918801344764478807337948919054184462883890648465306182560622438198081066711443318229095677848568055643992729519885151499913986048414141469657399950252446429740065588484654798599888079219392029312727304949923298906900668192372514940826603000779708349887593734000249729029832423462497548190255542370466193646049874505222149652033631719000363895428019237800554200273863432772800689312416513703877538065475799410110421354505627861159648412584230052465291369159345902940506344970677643528529873146962866065053882376667609281676874286993988038813389887560963659697736694010070005707582921217884539677983067499104630775829467064274808867341387065659120557108182595747179508306070164464060082858252416612070153855468523617007310693484746053924489729091235561617802096115952411636725449580188168950699040858684816197319049623287584421900550727226489176534055066295663864132496387843545699530334442784400113021655549662129230097900563008014381735927888278774143253216258055344088671304537012554509669618665386176215504875764684919799385328054448308352577798135517786432101634091698214221845460472487993538720500989348145377640640650726152032311140543347632321373287769120641258210620776881380105885846614772944510091072169912717160504325638840507227078172804918224791050041148543155950720103973310850360260895079834581093183493954077393667229107837452258219455477016502541585806690476953767414924244329095431974632753480922078650596649388883774119885193556651055989981840118994633119248088972775172458593950710305496249111486886275188466529692373581417983899743199522740864965946623325594734455833166307754026533906556172374617833136019444085089428592129594780803381639962226283199523937279475660196119316504379017844556080307726242157798422424182059031926567411668894119208050298256580470238400444444086971927561396381718961419377069656951529734604300860099939563211560111013292494165160804487135612563112351106582326531159246186214246187192874910243793483622437690720525331624308271736916086201280773053234911959964247662837926657835930882394445940406285479140874116557890027473198200431529768961381280995433425893554271984369848651082929092634462312130186282950043698586578513040995055458601833994943176797438983000194684543009678909865092972593848884749848611045229803120126376622483211959363323019166833991730194257247224949487170625118131604673452511421294772968670120429060959557406771822831833113981759497553840746313644871910148770876344915425458318924109547118297634329226541910574300570980589649956748514266984495085613211928088885661841218104384178960081378451674745815406993019296974412251915911681276666278784945065995015781424680435743167968103522015557440173867900693409245940630495815475592751408681944818825475064973735734317566040594106464215771756898404714945750638755327405137145627298336925733633126969921674925187870214790224021321598676632223313022620207416155040440458813829286121503028327134183203011746409372652830408083099883666382034855952070250031326887756111155275753420238969277009958506208029363858745361388512803779647461750478809658669404364524572469795055824274214079814814757345312926494402258040545398442587422981739843009869919215717694955871712279952754594922769317835778923652657307847522730945013738054728734427269232311089037963607096017749643266714516104717239377446224314875948463537520016483384805478096007829499906778387689362280736964249938472815322618126331755686626988230963418588135260374226880513354656669522632263810870993681712236456638782722849169002766634850680873302447809208700163020554125853238806388303256934198593261158927965666579734180791623737865156238376497613213064922829669002531839871733731472398256578738120571972362419329933538408452820217857098862580545127867704287960693449820741039538517266747943904734908081847373634546839663622798819840778042584820323585402088917795181122033272817684472741208838111005964608065779655604162896671659857297864681657158657069120599845644439137415866800504624478684754478071975298372484382360417927985054049091419359060786209970606069932950039168840253599440727038288901308894127432279293307087167453854854047491494376099403497876671781584119393112991670668926619469825488663649446192290707935485277136426578529150802936544387721824976380408026825701370496981640527921602679134218836580222217033736746761481054830861991418424058720189721339501894762068700787992547945518305322201559265320042085425779624047340823587503454532659391533187347632514216959173923983793826969761404815980887592603299318558179444743729195584126841416398577248617551282557030720107415557799756576442804684500485903034483155733814812180226440868381485656838123394924983688794271549115767251273068422966935754304067636156281479932530059341360766764433288712539942429374844773852215358724410332772134061213060662260079817259194723882221267815583712346735528797372371806462742162525470691326226734678300846684929491184812626477095831871962318997565724394393028303430748811627026435657870809234578552405286912301388587076224698967049938572699874854759557920900315236866511977808544408049932440972483880243684753450238849023731242913432046148029798662046083273758996513950179527317981597304162210425718733592443754275987951168999064749644161967343371525120914984545748463166006969816972045100610115880958596090184398529710914096111245151780192051978750445551235741280343234213857350211351033270151502334533773418496400672405162152270779515842878090181811101105634792693242999106054298719952163382876338612473795569526303489413632748622602927547573708825414776844474568667412110650783721755429235815011894123423299763282385570030550506941257891776905668431993104531166030062279560006629327997437174595452472150764213091929020434166841796548896963601057301794762249956677302337548211380107371324816270779109783151160127428307193905715105623139526829538559842501656200265241137768163964923575990490845629872118975574817062431687296810177687437833165628439601216612365787774119801150331722022312193418663562681093984668787885109567496908767837759640219255147300847890560804631286285039164052306873064796761954554750157327389702729868077556659154469182849854709613940856113115421785534587754784588780635726751948293544859052393845996187275928721231060970764057716043745503791182627726317049253364113704969385262941778321341848345074667940660277937143293272144900000726927198983108466052329689344379067272682345977561055921182015782194705906545476881903470433642595796669794610871371584387021865718827625760304495032372213095767135029726754374409949212362588061376443463246835056451968023209680128100267615563760548890163046378781788382435742110906537925030770085209621713193676242603624044733298586949594245613239125304191987339701965015839255049783155053842455798396215894511817566659335182134355009423496677199492793563512921144781623177441395528678017408427375939602355792588215268804246326662797495313911878867411359592525023288652502111761542507786677320505477414529420716025099606052894124894010455576038395158974904309174216000617641323514814816743077283685859240636649480371048046902768901718926607229265484548354274806070902669491911937145866000023088164286085976617161742727963667081833342219382899194522513969867303354193120828709998573209855983262904488562675023369019595742037624340388994482800226172460655392513931968424758425635019915350289519555215912061807199746606694271335464786426984149767561935649079297285281234996020825083577290294201813062828597230150109658449153299732720057717458389617182426257047249382298889905222142975189361095871977779264358561222909955061920422057675980753911975896501533770594649230091082285316973408173233417085060673197299403155295595571065041415673305258409632377804884129929455891523822539381438727865072332380263649154975622783442794222945179399853017403697542445620378068180815037770753191170945657347349275578592551648717175352369107157116044692385505889335441401474986294116449674521773574360857362888407711251493414148527658354080078660962719007890069584495436615204337779920937072095215046007511317528763155868783984463811118458503852466680524241247588754298744698278606105452716864713117955505257850193213835974691058782294682059703668243799357857868214986366792334936698299893474154214614908567135328214305423555263772317701898651401579934956136267364064799129649552076905739490982554251739657864361524663638701160030747578129463636292769459515705164506863406282284458104418645896021107121033458061973752081075436764275530166580109071673870980407501736764576394774839418137160570476436077240533620074790810806121846950436286531031208100683043491586088192692630341988937854220312396147802401638643086026194845915437507789455981529917697394578652518082694347088197267931237809735925749886209657613707463827416230380528919252194582877486365701827223258289639158171379135329961615228307986285785859807605317561266278213818925881117471871155161668612636034944131535582299840109669695761961645761772876427927925616397130993683084569970122576842710596347637118728202719966864693931269029669383326456420649032885946038138996110131798251552930057462010389252694226003746376523742645789433494008141277279665449808652598387858035643292224607412734780712395960322906543060398900973260356050900318801472924444664561820459286784001179150648911918250342243716406956489477498343163196888522435343826397707588193271815516900040186610668642011306047607304888236726002411372213678100949538450769020485813152782311103380336693429289159481441982967887795062326763591455957578113066184568826692638478373564677920891438324630141465824033599900507420631476927035044819971231243750678335863924020693126045050520029854371931583675868352983597824010233024567215882388662517498011608755884701623043086298346385924367788544099490661163946073443296883324980753838886672986581002487018160777560483143832665448364302885631456094886492360456181458204130508569987905443516140980738197702630723330662667385433486088871501861786858612002506804376088312323931351542872506989840218208080793091456907261288414606588453072450047997356797581418154908135189021200277877189376836237428519066004173027087868232532131649402230053845689524475017360014172915212949717044621939106255683156539500811924525530608845949308289875128078785922816796551329873070632443224739972005604413568278474506802267531594312198990050028569895721011917448034130814517014551171508421147688671501744171812977530474866315870918174455560275363677964308566324307674017055972104413980119182589793848468160365738211300820961705529657934168576799079292562958325378440502727181201458308611338501855620547718847206249600429690949073310035555599581385218280078774529880432589017245587146911918202925096271390029593546006395434968387749809919675817013389770881694312304672663203230656976216552334278090722001945938317976334188384042647249017946231665107790738248233395908562803121610143662164244656302241255066370907045931323005277062333558083051646102157715269938830107844040122899617361545172277843711997051797123294331295935165855459220605707109190112122276448764032037711701386259355581460731989218695805152793728565217737174187439059602226175266649626782079897016919885069924145233208981152269278677910507164932033159581356425829581801253445892477658722536208720924414449253816426421977363757819613269139542215669763681999129060536660947043585405926560829440763600411887626764288774223744994985018367736703693948327276734243455308850904049713416363428186742797068267133391774271179556968245440019890785215007431754918663360146975545555542233476493150776462334894693702248164496496049126111982931373157265712722274364965051212153518819497137070932262962899622964447793944887100158217716576222411841120017936349323788152902835730229045635206138591642124711821410008235531974930435945531632977940622727774693017327582868986587350641669569730833277247663727679273352445869317280419645780896519928497259619257395306778645874595441079631312161071534123128353358179183072338303564859538971425356679626202315198236185884272164853669254739028307413653652755633811878628660033645972691469191295389657144681366733396611270831749670014344371139022488797571073443285936679252769418212696790995549515395582377266366636394841897443164392926487098201213213193374588760716680491044104740823771386435510245298447718792193097978535289470803005685304547628875035730481735102400399138487417301460226045928043516580438753581819841887511889556025704878246222754612158490851467181240851639743026603595654011558595322287987056573536017880584155178841100098738533526868680991038917413844854480293678740212102812985655617987490741601209232838212595018274947315992160699891393736232982302148996630603537599653701949159598270582719912548338639608277807145067095448154157795215218250884023000795045762659670321257296601535338295422400956259013602615634300780563756100493505565737596752214599792849277053774020628095049848842496015360790220377259828451020873203445507218344767707672495189318979422804255263041675955512972024958789241388718261486752256382092447881941609864127520294209826852691590748492854577300608636589192273436070033643018153358980975627515673540364950902987063234041570760529081042197555518579561305000876511756533674748394740232664317674825137835503632287265095298275596758553439136492021506687537739509845989542668498131643434145312275450635134557221135140520644290838003038347177796034317355778803363657485353201819064791068037185733548787284850945434138877635317149400697705061803921751452992232911168899500765681853597381273279846531956505198364614265704723714513026269579203777318873200199326717222023049758592053459679614975543492881275423876493501580112713870123770655957851318654264118849919559843593100394884160315500177267702273237802772415372746249749421780185861596941689550925267261865789159071733362750203878428747433376059676387430611819485230219630011533520122672321528208932584528397970011359729861869431742441470784103665953083284709313457002164708254843300149626576083883569341627685735746377014094298267756097630007454610936667743451140409681968597333758657503964984245958870399955300401649332219920910404791940641335849193821125758212938019907210050437718114069340972164595618685394683762077294382893670587493946920596425010452088938264416613820538685057155447637116514413873097868684470935439846227764160000063737273955501807935001416350371162778250985139749496637711659726167689863239158170736012724703049352312766681229877780895374695090827631746416462362383562875482775557419428823311835010208297802767417631359010289401343153614968984898065947676415459042312285252450147230420195979394948971761135789390465201481038166851208003371199415974411704060132635449455639566174557334238468728069329779098104779360925676811908337254110052596438356253256039725202471827788851935938701801349741711049901378834632942686960230731196781097526969918573456854537836882676836374988092809667127830451268116362391074566575612079445014960761368391149810594091090093140087248695197654024168192546110648355998060058979368051664400333342075254617243920148162143833406624458085455086560919478482859035771761924730363791522443005872588409416609952146266848912653017491005814194870003370851794732043097247073161418333615803984608882515147727776879547817236124377078949379288421359857619029935275454569466874680241925343025267056521276075540679948624271391260138221578242310100093483126228271692983488498538531070299291259214355513095479814090831461019750112853275243963096509015168442689083133905500501534365572044987869102167921774430959956872735821706325421706948565644538153229478544391626784743175127682630427478428143314992300289298502254137566099672817080730580979350474871409021322691298615868183859437358768900278056675028572395073468622844065778758587126839560749177431694868284433120301974640436665304069934133122978040107809528582369171415592837042940827691882651999803120171407810429643466430894284912632143887328405640243880571727148266031725964325973357314967419108462798042544014941876956954507454128540670009604986243966353349853239377787126160260531807562342662868161991839740862869584241113295581233396435212001645593453171723668177441058361929819684477277098128441421636533813552037584192924743766941470470161781721847249796512583246226239928101678518062906367449590553862782944936204313951834421408047129026734674280453792733208964037070844449477664572526331112174962697233238324765485231461652017059088975311261416008892763840075045692510440035251068946558330695439581059208250114850559331027553553200448253371315553977370648753989953941837812667697941903206572669066568736962643648791918188733200749869767224945352402577627352610424125463612843118785193006734018603677124036613446815782821854964748132818734059830780546858202323905643311528494564512822517912963238476184573835697419172589909135356015505698202765243180646325956684021379580154730796633569916489358302716429163985680183657711929745279495798400252884171630231923204805160509703179385392800393574275683281478945336116070156987837939028040398776749160623830071846301070170050211942882875236202591317822665916245753606763608862606366067321559637908165018233519402331759463972687874419855647844088394976145675576139757043328675283015110706765052321840763312017208756481686750923493962392985563248002396283216011536430890437754481156601497100264407220502059322536281145566033905368329041772322312014466998103703317541868520662188191178559341224752661993758209419223686489529464318212673898335614701754062025818923812866671991645518346879651106251610817982452173256069287350022222626592057822282796787416107836129599067615918730213079139828747549637468517768163580861405016767516292116687757598080153737367943805133087649619480819339729893016255942385731770767957077444704077110608899729388430432954114057075798344911621889294391708917913006103557292060197757252390018113786150677715306806974241311758351158021300894091550718082470835306695714616085726915125816285452089586517470657282182563739802193488015534238500226342096561948874723110066575660674380267375079391960625939557491248947049040354609991559524687494363156601662282793731626537597451402726953870418354954229276087922175938414701154375790043767031434616308446516910877222920915862357592201931040378188174694834623519519138998450434599240178210593972156658023547165523579643632941403716393410041011554915584450507581834789596939632563345302834284810949796232494376807399961241535301837326730102052405063716273068944831731580486837348229414140750893625072698534289397426113784788064048232085698178367567415240381717785120568848979334142764793980506309162974064719151080624478776840847572129759626470434974317270529724554192656172568052227731752530708363380580612316034754870927936798733787365791259883454955862497886490566399170679061724962454267175147402051120171968261990408689471382842950061460247107805398011477393206637714605291513206529638203124756269401050647698749756652134619583249594058568794260488380159825448020578303112572470676162218774776828707582693162785679046308576630043396930133881968083318745184474477540644586052170639751708146446221795539208148499715730897712993029278196098846825731607773413455022411183859836746291358534863188818874856326274041920956536760591787446744011657218914848109712814789644137814223186467647849286816211954121757247607579300290412108573748576971343548810124409847357707503597344275421666074145694112981294576659125589888398300970971119007895806748258101399078783845665456450036291522962792306901097878130335373609798131566803115467242020290597471959635927529548383818846981132238205635681303914699861234619123089720452216816949083654432013275376262860855400443344028865582467809107874527961817996148805888341612600835786998639063292241552512358959964943736651004707186542337674374801084438425281143733904921557333706366109832429851490368594878530320758798166583870178513177383429756148269610919513535423178586307460668912294659960786867877003708225674442338811407415889860302724055101070232410100986843744640140702184992395142176281165024348707925881677228833845549068920295666327491849629566792886050038833517043807137718875967862676771834732714263886798480142077398225534023620037364558817921368596747127246510395221852874684802658698343524290173591869268591187189450180991017192858121461950611123425840394710682999586086533890234569943836163631122976279922972375725780297895467302795953281534043455114919546716512101843701737964357074250016159021109651560077120253634043181443213178428751234854328077826033361769622224082076638267510481728519203386195598025658599031381620647083705116834810547519152305720640252361304516423078760497944109172404250284915857928220487649181273003493078803547478834401403607148048773535111515422774395369004494398163345116365328909012338604727877908764256367535142222019167478666797168052808266536086777471903192805480671355848856964485019327971472586079265348854487089188761027611277429952012184825684934179073737312737770939820782341737110574973195938807514996452792519098341189861423641339717568014961875066848432442719681107792621547174448098076175755637234266483803215405943286775845781039363440141987250180846598203608953354527431271253171936623850363940402268238904086316370894246702650228475275084616515167303768388057349156632350117453304156929174793799631820168247025198992315432824955848340398152962968653308251425496514810898182435762448056672097427122980361070394350445788120616770509593336800243098710122439366430602886534724906318276185592402421399789094891221127068049641419718427031454537090552777157192688678228611657114053654671238975000293896561527066110333357931084525013412650131588266023386823935269906258070794503560739621583311794882027123106782695333889231786835052039736904861154235151065893169452460862545233357196916098874675363558679772819552310482853300170084582399501188950824624986525432917766293307418853785584565658616342618026584605089986603255087022117187596044151512748625301358197819134530418041316423982854096491272671204966898376587323441005179433932695689262612260171865762615865373248241579060988765093809403810880121585005509571413434263010284571137432344111082718348008226658052074600539866459468941392372084453199652832001826959213098872130537646818696793876517146181813408917006986291233582554801915198389898206204307698560960516363381464936033291319067281931094609422559697443652418093296126449930128359757958966610454443407328983550893744475905835396497923206968206975649154140112023161918788437235857031690039434178581925557469189902602483399152588026899520803663434207677702165316050243290493762061598147130971068009561867095969949245079564428406857473946558792318201162611950140883412539294648740673658273298900999226437447892499305930957319433205027465405688067242992953492126129334209344702517062685380335636876830650605376279193706786226916726308461061463999287705971650497075701154060742011079276064175233057086802400893532460448141369722902460401399958178596661151733311268343662702960046493453411620621614551123763632684151246097785293577102502823099945757594475693473451891755923965886693290539565138165897851074582261405845545211514758500245526046188749867206759888150819788216656291977345243022961452926327750216422957566620363283234943036155894608539147293171160516820439258798020261358585278424660792533971794736759933102299162087514960908064618551159578879769946481048034913756098704655736942949601221487705603279874177553965503911974747876737390939295451210110475532168461753747738618543740908303860041640987841799178758922378604271649387568504099985606369456513426317657425813796651402304658231870305868674016999184053908108712948190661532646671387843348656731409429302443279994772057276250468650301574408854950514678225648467993748290139413655896616270773953010810311201557594840007143388619931151750798303059882771091369477202910481726426103023674500518437398802648485181639405649369699581609937503675531645407757587580533091511069054954734923510647726090114945697907153958083703959966852006034793439518460993000492607928066583092772374392730069071764142162553373973682810034650303800771461483851854425989967963414153880747572247289499888446505906210841670920933619607850063030688099491494319895475424359405815030685787158924423961681650030534392525582342288052344988427305260514864444886888630444693399300435686045047571949651813116080116668335871130579866152862399539203730829475767320112196428093332495989350626342976371895269239318407338034639691774889016302487022063471721446621244436507238480494817031061347237604949600926679738821625041715398507145316281888723164557812477346352483262251504464618944522126592735520529430775520708622215963706836926753203061433042400215398223755908500872255297130915807559701744823762369685357117019685866743004180400646221583491574125955478886274591804505595931453935903754841189977291295378379318491845402726953355641204409999876029735855587018532608366806131979647878288022063414708845362269427338789716797250633390718505836929330583098386082070432495762390493286621587238492001425403572329626975562297097380666487443181988379393020407540108921099440061755361583924867183310491684465959962819129190768590025369529894486787687657969991553666013562517903621600975048665279089481274166214834176413988981999546660064091291549351169168927206618892507115526396573927702364803689256646129834774512455191831033437925321306387082951509888210118625819110260574915929900960991164647895682713738107764354440910583586437972273741274724941570908337424563587356229762589770009641636578990225220716232104923218716322743180598056893718143991313997095619937345592181157738510542606537498486024065722274008354829802856342340452597251481021876220986734526316588063124174310145936074248666273889616338299829889525302247774371627526071939901931374861488945186445247711211561319965655281888770965606601865410549047555316002498824492845964081327136045871899290080748124509740422107496771588186223930757607797560033696013996241310847776237204809937068737309869441493859642283216083305909434824051296815752758274610043829023410296491692429774451219159023378154862462151103270004468280801581801055444400499169196316168951329539030548447567703254518032542502847752941913866293594446581716655857190354671227009959906356351947157668250962277596764910695266903647215279905139947443039307764048908772022245272392966968925631620151386862219144239220174233674697058209733292122918001604784688445660843313296765147621677855049447380698103360761922243942690395812980493629346871657451514523104880782424718070918251562833280930406762820187766732446512774706380226245176320733287884254312036506857999908424617746853587189185662330457650970974933987507480235908949417802619898920247865492164402746513497407864118501640866826451103272959014402921712306858441568376661251207095630996975155814776650552459794050110899797499530097587275444504436145991394588801506466320481587339766040764605792765314591592683744505346996992866180064462441034141912479685604627790762501039731685091187376522289082326089445472859987064742951787155872942083175046048494889225188404656314045794403418016869976509130059574164159659417919234210048453406067388677602451771561624358462261241346098036552104345541662833602396882688393185449118952790130780421539385701780205252512985823241385090308347401433027282094680893442211285772941682648315275971566311619998879119623735111542388814626409348440194502590063759488040415293307183003337219289116508412980561590610924122516780178542054581567440775589215581289882387158166832889127165843122931057424077457971152222990123362345681990818003519999950179589267840057282821493172982407460887513649581236405656076633352437640938838108260778398393871168952519139173891749794667924466428671744303632650440217716402051338325556678270909904873276294941664089528812607358562237600107409645341913916264070905397996548800689736555920489857390190802029953461250720547406565545753397611898384890852552785872396475460497556768318398579684836307208398642995440813017209507793285226421569834361450593355067723287243636888974719789871037840470534526362499105895866446289490029130496794261077909702949071529856881729033592707701058735393481310099188712035378231726655320066942994082376944593488241507852706701332568167402609428960595464690099127033074053707195495810659955995473836276929777510318517972561240807112780183428430597542655062658441266733864967136763933808662572983888556500184478297733500393593974811100600995004390959935723904005238771854393665140148368703285476158333980066233515366899860699961285103986954741662895179542741556704448681972750273142761743675385688453759765034524391561886821566742011136170427302789377706127531588120355443306981718836489326044166739252375130455030822275715095364579703575782655003328807425454992582063409283142450581645611489868712436213288162911893303309388189752034122301877982492830404957239895163786364271264962807256703979965325304608055935842670234339221919453938156763927604820950172359512756058256283945405614605664964980250159097487105620235729376960880508577256848813503803895075220919480190427025251234962295178480284861983068115399909843371913894950921308724984031087658615400674910237215472309893683687721268135380445436433452997558143280314840116531647340914122499148081399006009332248030463220546270674264603597302563884998826947252958415877819027450776470294522822222141323508844018047633737091883333607986752839114692112332394734035456956077527047719907034918240224167458845436486501046160295452756250265186060529319818907239558606872040290162217676693091665147220138140085224353435777420238552862152224029064185401619397585559994636628678192045806585363225597135063296874427978217498463408878230633617650447277111620244356581071434928026374687663345385580498080264871621049587428930124420330236686669931687155218229666306296482302070868975758285566703291455677376934925652548785900939063442619278753940934650347356114248496907099449486188186848452834485461444883259689058663954471665260667031428599948511303095403358601651239770076242114824920267744572294423569097897870341402522300278495440663990599856657311485282448081299717394506353305299243637933473773511690336185368849065038179213805513563332296566400169293099780531006315086152857341508989375850276805810998967107493331016875622174240407915018225163449590118530497730516009123183966613963526056967370875184119756613968117423753936792904822265964483767927631016879011014878746746197200640469469461423993118494061323411335861470902068283130102550850996457138662212221242127578802876401326904971044273350029420049608789121947353463969627096167696000651518373480499071149325400476080023859775591640626925774937911580330732935164477912213225650787258249005235946392630132734825858140453384174879412618155591435009945103988014681833923143222673698312131619587551109869729401516393903855698514720998325391132470213438257207031471384428528535455896307448150161530676714547279316637568695670528844108668949207377583819667678241588255244653421114102198924589598864671689513898783114129834062537697566624335727031677626030355864215722423102521401307378230815397969732583517204428634727047490706883602789876955261576734251605005519022639757800748845129246218844874400827533207787968444469864584956321607265974905686684239729400933165931469472767746733455909802977432753308988267225073456749272902624335772974293040545630122074106566679420316681449183568092845781137622617244248615995238430363914399501082962739015952054870007153418807476099048381161771275255108730361222070589680626560106507827598338652873756441566762323174065238136929070502230636420159514163993790127499220631790199294417557200633278892916321050067945932769690371662055450542469199534721204831988298893019641435229718092194346550053516811446413453352047760587360155305035772094701399548761723644623352216153103700056935236499516977203992091995120750433002189198363809834479720236617498083565691193787748546543076048521339437155784187220560134797717188832434946487671914059190029481225707955155009913839575233443349723692472482850978659433477841819226808083318234129597076839074780215227435830940540393637224797933645383205019763089882156691263498715222835257676740013329993622725312810764108657314965167537937314879429058455769435427245014467242775181058913742753663647257681530436315898886061421467233952843094304185650034411575774773339509002840214511390489427663298644450355575351375473847240422447906170100087695175535910575685512116741757990355995744032241886517428763804845943821848430112408264459309726222108118098455302130661433580135951556979834828132208267774186266839058208674828906271204150385226394380285470886039934330944271254405651558154560695298553467864045381821496961792026545961570380306324106096861758778563685781517464161626889128272886165427873032864009094331309146397062729859330812566368300366273317256310504377067824103252373614743181551703555245289432798767452783639212020264868104301921064397652261187443109637766008921375670888925342717052605620014652778850580974897647847917125597830578154030625713452125702236234130075579966187719152303250282938702658162835192186898141394513740802025459803728066345245279164574527400942114209963947227086826870693352254277015370730869148757288823025488357979071819783622869956866632854664617449258801806407340121636621338525748761038417319406419515152777410215658531440958207533264154671513123659315374886375063635124410916626230033700538848699514525932382627840723107350265152149948813115948340459218502128026611809764015014022576347492782403225978813298719628517926422158999698962156332951862317446636254637403625643887436936514367618105743863511191856399834740235769696421667668210837860895069146287464737801317674528609600679938336428218472265567512902881403826225250441980218942818214268643139864104817799620676467813102225002742675769178718590317538038886248122502191543098283032612611677911069771441475427936634056020987314400587160125743239608303621360926535019458403111272320421786274244546841091660399855301324754422547227741172344974902364528556116473436838367745386450302460794249450123469529775329993003346395786779610816015689616596961893632776360828696491388537275632680166316760911484772614013241516306347050123430515874908561948846742925705546757821334352035096221305335734935482376764664008615946545070260674642287108593655005322409215279739703651234781107424025484146712794036271813784528176611273986218698338314914674462801025376359722206840981191850370695937660215220599223708489639095037124958192097259025604372642528841327201668246115810727413473635167029700592233817054119540248619954389161334375451958083907830184612673044221857903977395570734934794880266697417885473219047689412804157563534669528230034838951037418041330650498551415348220888068407947325869473832362760942316418632495523546469024587809423650611194339715660937128091174209988322631271460374861840267948528398682819541594907005663652544562161916231602554236783112872409577556866656955610577294550894292461338420161957437089958394103021984765237853765804817334170330457866889754159844992633837815919143345235456453602216154715961025324116826881281129017645199034674959965057110842797920447028801865811123488006190369815512527167887077996326826259086395681093951071120450675592168208208646433135421766113227815893779974069516575119037176089957808548408894236733345113246075338895852857925886624775371071496185152792866546936202229029471430195019429262788036980083964186956368651755155737431280511231516055494563547524740043539404449772041733501865130171814336900164462131791904801267645025681968547131223305311896193725789794934131289999941766396144514577721099655038601779696796968940386406853082274552749942363697957078204638323809589215134549428145330468836644603840596340601731011703099780174902213596303763407230325047611700218919583139274003519344502573366291205787116452678247225886266747731552667508305567005730308150732781788567933144574266920833350707084054995735856508536277683122780455639627399217467915161905878396957063612210807421058384529337377881801435054635947482563241198207151831053227546356581358555374976093471309688149372985369992104350633301798011657386641929108702133342167291942659004930592071818485191575349981110367108099946707751286783380609587113589351873295911706068900488739231569670783443177302551826316268832700736311380655824786229779180833912170874076145894267719825983354675596134676680437916380231095189518423713511809460678084555290890414646210267491035854197536849582361125500049191575341045150643334707519867459818529457830491594996707821325359547832399880110553404904790248143226932691905199233904140495424188172492875044927266375144850006445338393816191214764245364348456242760872627881701561472907563337295647681203725697830011408746347139718899416374842578468354374836309975805213130428590221152804153377853554258937217769285498832631407073188409484949794587927368197430177109307194909691403672988496584884940481011800351054750987839836948775926421304724408286329032972322771948893316498158232615604571340361463049273063800071027018961013579145076690946031482903610813548497128593955117349016459486722479337771450060874568365956788386589892817814870418564417980121941261006803828424754528714700907003806267162325908616957965787103409576187204808840996957377136033102974774804546656940210198586261130367189332730885981366669291345589644458617402876053500271091199180136561607084591527800222617066891691286916707145067244407478201273634261008637004227010614802847064884348741657488145159505798324217640804219834927769979702172965675210965944221622344411150723699823682961319944681564537219877844883451507155244382767523515213107235634691196157845884119850485197986388887620140673161118992231871568580596114195720899851871536620614766715540844616733453517303903417472556183908419748028650686950073431705598276064858309994895565506314632648672479166349326112977673400007379315781712396652395901591302419557459840876469517083090236026835222147810920168801649344392075441144721722218412791858912023956707675279515991533392234200334812691239449484175682769700167553888473531773923531423727762314401207045447430107318602349963176915011120957792955854175733483515347350237911104307162783680651022250659757327476526894316793048280889116254751937728729875659974920141050181899747132131400233804134681279101527840897623155592280478720964035800892696007917286902229277488399807665366752053486602403841391868432470662323709132190304652332158284031935339435808041976060165661270968545793388197706927269933123529432026003271948199676653644565245567512297180254524701587426554147928020042700230288396093332936877189808555508233684504055007495384012995815530803470413798652727890810754941713288627801676570949290902318841254833119837316019704400855781389474544874336506680721469854685558351118647800683750902885333424234578333274861014297883965013143356226025467495956954859727139774997995924021809825166609352813086159456832396207277466574747090477036126943544095213943628176881840646311296399324820254209734786994660854222038515793480268016990604206416597875459658068062874654527118822176420338763490865843816459458859488243273613240012070259578321959774667668683339689386892155570843472903825613316289946066973595011359908792016980875594245654326272192958434879207286482459059215815591069481406002643196834571211534800628067088715734316436194692658351953327148557452770567315764582139110503337613814740790226830211836836665448298443955903918075503510948966980079801623989349041080882783533124591173786588116581809939290422516152535186558901501232868719493288401486648526843008088786460586659763225929806707269195440726565164006668281569775274322792483714477267708673390512194518271860041986408151269772075286993013449118010176788282666552123066042742116436843847362876579043997568215732063839711515802084509583475186038971089082088170503801641755571894826802120895931727133636370764488545929310911182371452382363399459785673385131873244646213289740887761536444417797693795596094852600224915457143887343505710568780557208953823775636902560910577163210274909091706201137955875367217778880127184332519964040717976745009389368294687955678855905096518215828436837152674070272838992935973665858931497370610288269587271724257710735667031269631234150917263604492928207484037357398729085843913940963786612587448341847762143265303736692575634299945468127134585285869528052596593241113658424505887344786244700047303476914174843514703752305721712067815289839397211259899098778932909728606018088921210979748460303973839901192689131118734154586877585136828152081028538036096051949234076168332998794446622003289992657225717820653288864813589019714752229552209897988888623646806381274404244963835550767580935519146522708688415645548031782258048827496986879238065637950189325265250800623271794095730818587657155427393717118016017102306241962659282760579268213994507384400074834303173064619478801156142100219157537766191565971851203118635896167260330237618800903337829144701979548434766010991264835920007308674102678206506012170160691052967529024389627091209901439175654736753995833585331813734487268186760979735875969878759265624080792943800510596947956086623849108408700386991239995569408442145948300293656148731123956956883405678139340671205938648303101697909456482857402139400375518203608790729623182542367992619091064757021782082995911108214217026363691125573258311177717553562551909177048490149986951867913942323414527007622342239882397582556745321999748977449122311635514866084729411193116924686679820962303677065579158005877309620084909665773125539201955562142199819855988174088576647376542085591539028550288376202666884901710577320204668805817553120127882798292033586820931170795748769460886427196713496090250134369501777193429868885330701341622200041451065940701613571328259873424073961844809090434395131973636172426667498847528720522814524581797752485724364049313888760320138473446586794361563598167579268492485723679027387470634652334175341245713080475149574502560025004130134063208391827918051502587913996824621034336017391543016597587635491674306131372936835812784285155617406692829811243681149219585657467865796043797295508393782808127809344978963943663678911638036446618250947204320808762777895557568397932221377701215713200656389046142024583274076466795806199605138400618320318046611774142025339889197225851569915841968741032414402743169919132112703873037639485433904493341107182572378574683700680681349601379279595651711162733484487600546085677024893875477442168653051266194955500227564324035679644263513660680554838429611441902798652670178862129848903348400448929043712062749198137772518238340481175245852966865839476764615304711642425207918518519688058702298653301649053907479857506703388473822064827342109428949168576767287775064287887780522213668494678123036348115525183808466834385192975317842402235462862610312562766935877682573085160917596706361083165753544906829721440297102644284912472382893258605911274769244564278094475094959405977738011925036523488588905129650761135252470801607086207942244764106777974519065535235382129129532873614242380798717092358681897103119912069215627810229005975656659328851067527618564415070413803112596735764476483910372718471432462810296435362065520946280975251510917243985675314361390463407743287417158455566682640258380151300966895383130889586391167862084342841214719858777916372145975756588880090302657392434281895794903091741119488310479323883221370905985874577182853991107626562155750817893772551903094275240315924172606235095742884412728060113148802186725944657671650497547755797925582846713134172278177001962964674472841362706673693841143991123016731800792656491347202938457953860069047021678574424913536336423327887620456625519169033021757754327138235298587851425360318642835410372131409613505231493500912582228964554225604210887241049125618895335435454302128123462114108666055296787503208452375502436708185876810936475990348520642619574323410060371632038449437718147265372271837374139961952957502036677120175365815989263002226031979091099243750954796042717478904985684616050342640552315161555380128302987183846422203143672741927631921596624830761648552028464103908407859665375184690690754848924279151376408759270154019570149679295677507826535651472012153947891368652043210604305608366956589568183737509046548439787223169711688290851163009948235738721922975452554139323152368766564503410484355723192997327180962705259674737011664296709251317521089128318638366774782111835486387262217223377552493150643824674813028889315786075533014632346721480048356622687720308201398613843194497437905644614463957568668803354474475525872070532470179005648177732198411131549356253218241941687320206632550877337263187541792250705699491441670568566591371831148798677395039177131341280958163877817979211067436922763389001945185122954798206354418085926917775206853626752853443797462529080611718369295022721994839211050066082865227064416042282468791450680954462544185171859365848307962409876248342847596446860259813982795242945449999503574393320144495390783419255438792294673217966239627502180980637751373150440628527001023112483925775872055904437421450518877130553029716632405130664174682552259054085776492239859391481237349723448069666711924198804040297648774299391787630658025572189374494559211766378299147918394808582381662028334550200348039797955731335921126166868947235870767490567181939556957196143216513120937774390857491447293262679930742527593709900194269508978468277034100233083236104727998985150438567617510235920651214345126451940679184706815250538524325430507157846448274077107383415500914532068246400254389107209642016468809189561789471589744351453068327345080547626115382938128057056350062191629158579116418877536077331456947600802631327393916917572633141295098881811265444882583359685664450692128215217184518082291404870725641559467181840608076591985965880187119215656683943448621858602831481527390768847457252699690210039388283806876031515167755372917899988619945475123015813403968272367663688482748308994717009344854627099639212754424564110716536813554851285867599433864322736099975846427932541106021240173623227847322452819335453775238324080133742711846654879321753952310162212113944196588629361569854512084960326146114638179410262473312544736645505944160636248264028572845781563061059197728498623054588558095839933679142206051961884140169380728454828552648770216711966901572066248437644568198659949795032335474675434757820495375615185299679341791951578940873818448138061286398324584527689730774446312032019825393917198654361337007726653924385598531804807417399799541832215943601176388185090057478954295203491354208103262424833419846868572597424576077959929681178254247222108174523065745178886446813448540514149290195954850209811863350407054648365034068847598583162377031817146958562910900785738858970615463886220289661854215396209193445065695459086801086205753430422547728171707429454197826917436700028461836584678472377607412320073803974315309962240327137774900251044820589841183405897559026282226504421194525061449624508389618166531315278449640180496380648696599025821852240541472607160099625027958299772945871775710851356282893757707981740225850798989403302654258235437770530627418924867713153876110232002918994363797695752443452591809801926756448969978891895369260915986850560387801741068782983336397927437846681915006622676110954572643846503666204980062075531790243744472052503806718972057758594441982753275327599264453025403750347046974412180769031323183149226089829873521047658752392165210578347336773945231750826956566940196388164140563212570467236903665197347331085040576803730209194536111947998693959521921430634547625411577547024015029246796468847252425688779779427935389460638691225743073268316759870143080909376116350187884737268141104867787132302790619772608870207514289362292613810655227574131038439865246715701098001853017765534206434433586900798102732136470148973168790045264176322200843080527203768312545929335814999305127080201493737583121025565239363808404850157313736870404800446518154732959098338013420293535451188906553308407506381421286806860997422815665406634105291316508620532885583910446774416488049368221515280623537684396649837161739611428922566287919741977624894652833043550665340991745999596245949566035505720736779557232892989658903795043765614180874542786821056040261717274466262050135300658412287824360154100993351095257880081314675035173691751718915676204452605936231849386713322342759699668267926230502469644118118663458435777038740714178189046738954216181229927016716744333580685305392915104466036984621198364806935259276155231477368037824636180602346777554393810834252724630247625640049692548708839620047943371217377742857813574382583890028743333559927269900319554462073801060090129343042315038072191408488534505051423755389832609056421297636670021764636629518052271062376629132725577667977697486754045680070618793479741701472174452417837333073085509985820209173983520450253003354155378725713214274514225147389692788810359007131196635594457575053524338177467928793982730272682987345234215210851620149991392384714982024917598548239035286147116023480872487931892363796733899776175633313888871888850071285243044505129828376238150329225607044339520679067424749954985165869184515379953694314477361120034657309633432588263016055615930670284080721617660907859284839994851585901090780144978514358670462641190975350903654183384580201269880135153950043166204215158300503873298380669155092469250841035376004521213094022975740966724154353754645505083931536255189770599530705104478284569789579553636217796498047224019732260751051296572382834544926341547199222501993548466332098221268126662376877673158506866632288927544020458026961831547340033885291961199048221365960993595174288736425993772328225363619228806083888513672441383313077900565951091762033621565255880444860538758102537671115334339966900022400562295391843693479971147823656556481019511326140273777382692325771785512944180626069939210500486178408224709517101544283932747256929731270124859746182517762750545727230846465518322686582522574971134289893372783531821162863640316193925095394371810061170189220285982667059763676411022603407118075821489069941001215635864326109985779840928070506055579860767646606897830526271375777483368318097196573562163691686643234292445845417227587314254194442781557681120259232217983148666458525251299023960959652641058481501349225412205532366905453723023191148572148215397287455817784583253463486310599004903888837027554213197016898931978668844598028495598996033578828452409660429392785244979011536307512032665008166838931641289682294102811151977161541413397577030363543265228905529600373725114253205217250968182931135555085201788433647080965501775319739185694869816554598918512249470765040618469374013999726050314346848009754763478021427126685052191671048245852048735166128511610366735330629119388271596044420492697824397201356845603280652172493121978298019291461218616787603916009084490526536714364242242582434254677454462185315574897095104879280016617983938123933639308279881437592617139824068324760894911718293263655014144311121795680975155160141710234880149377244988494908152035649738830356770055310011439141339861543519247604396716704735566146802859871649808804876194783618326572416188378601773423408420920009291681286527014233992754433279636964299583148586701468683477976335999886825076826336167935407313117511572922224278155675414444290049920972812691035545305680798936075892090105003700731207357426864386215285850486342881830994388591991317892626227131644409517911809991048215759466537587390019997258565727746340568679518147105578588372285547212155763757668802807120459498889824567759754250513583618561848971144371628096472017488513704356339625630127660553348601876523000743017091219730278774904181579224427774754364499005696326427773846411868161860101819862814637459619720065823364908490668421069449301804311703217674179076874509416508497705297059746056854425549105761303340602813283496811273339319453775383241790717424077527506240051828949543133856804896903206982482351368274269578139981001083821143495369688539068018735428039185792259048134441791654604864672391625509116817900138914295525697663414785673064877223998466814362794568751701668065343492222014917289530830849770830566984322087300713332042318683461575844220811572598617650579507398172174080045405123365017044600431924589203933191877473214767521528892051924150776754933015064934403559389088095393244231367868204023583645789591238752468806283281562511641060620236337879656641491322952772735023234097038632205103488713494946728363270577257493716841641745814592149903585909711801951542829723654081532489869540865246360226207477384000144218782653230748424740948834539615769743858657388312666852348110491664617630780086640012506991715680004298922356021293634700573391055538872691204474792751470811380140373148124054767123869844008825733353777937099301914388490633977305268295669476393108881191660174430538746879735592493748657330039520509241076618521369945999541993054128998395163000693613045013212719168652628742008697246517043830223683257938022020370902987465952002711987210970113459981267494283496652884709786002085772108444408220950745856336961158259417307800380385204439665158199900865700882447750088079826059746299477809374571199908425333735625060664955310393498053555735304253047553768158385828749095942350874186569068244002698160303867118177737343423112660951336065637735662019002015840914020355620816400068889832922858313672106178943178483649955445599071520405793032465096578870887257766205845351142313737528127216655784881032849708384755572936579704768950233341983409120871232847815826501869909931771766906248602977837929863805378451957471987117786961776398602408596480525338043726435597494208054065324412984487134465402354301861368071958025445084110427984024969435283421579592204719165631332186352256670913771754762936493329715922841783800856977167335772535803540945116426809501624408290474578354496044157740123832656048552179104344950107523880642680503682297307431322196587547148912207367262357651745391555545675382573177761584631813672753353364789630743797938196418418592324295938320658383845999651544042484571247329130474373591249708763117588153868887364503451680173958427526888136198447032883666859062474560118111023286482699747669149705768366985636886862044279986227618757328243428438381043210613705976503699468337826235719416790324749360592527782891001313900243309988606156480220351588940645804516121475040408658169438119947542256653009164743101742745141992304613318245681250860172601645709963041231961315223520649819906080917499630651735473023936142759784932769057174524952916229944864737076298334979794924167463744696070277520330173738724858077341803630863981186538523010745053866484123122685944877069717526372305182157852596701997520709948171302363786664499991773411481149778507765755498755172973832503843925804817178704707855030161963093339553927912498821404375271195683486230832855330012519377485418961601900247100129102589180719922458130888709432705387247354379456239727864988442647186364437625808030185919094382637011221617485553720531311908918409378505735106457522933923709512645507748859696805357807498659145457663438596907196537099821947395057907984795405644837396776132880553911514907492479247934317538909765100294520305546127750295642714372977249492797854083331708403270678958621041877724235728793569518378847867181182183729599003182482780729991870454320838607721585692682007899991075029077699020028882986477358495417904460857275173995621892194738765892396635143255892310981107607181865110626450534047728387432470034368211516893297001049595439505061629500978203747503780757981028340124050388597355843919056613932193279018797285087594284283481596447149516338377216662415230953678562541149870092759929594845580162805828523665363548305295933713588704088460942516878626843890827825479669129409533272830602372007261096758375259944396313143048658812909209226068055517226246441106318302988565330497925972323857188693316451343830049427787281515998965769991118638181950436965849246265324817699424841192186175236777073943503242624824692460223538399800357680614386031125765902522803060412088966978512700600753630359299712543558296570936425132062834708565339180950157221479607287914646796625278034622725169336601381235552183564761801293561070662439591972106821681724066756812516520204677032243243543634075108977146814146939256429002714123198448882520620256186575950968406104912131292469265377179758888099602291173138077298251421433941010744455694193444413920713278569227108337751625662172409155838769701572857123429414623509621576037128003035811522818135441861397530201379780231634817161420207446651871811959282975667277807326522907777592018805525678559335014363824963242010216370717900984673629494034495609578075702191581024238371976244926662037321271315017193404700161250587197314683148632183166503402721886162383252585555257903918206429938099112666584477886728493496314071344466831231990009152070283467491181737930025380298935216915012607135680435296042170362225084339013759423489812529204002391661034625439653636188775511388750135949234231769094421617892842512796727039849114659256964853485007009464183318645682652964788691725557799977195727822014200689854407008447999969764357803845704193734646806839807058058942212226869361428560224525644836933423519905032920461882680109479431016595737585144855514910502726434051106083406962609225991233081890683463653969128809486261088584740814687890221692832325481002181086569713403001156908764986245775754438317489214283594252488014967416248567940199827216138954826604710408141599977617254802888666876076453875324637139691816148703266743709637766805744471425390975937358336497856762693806959388673642360007696618929694829616906565084349997759414599665000836473632521841064829186724038533206975701055569953737662326734432542497821128734597685668084250291924479081152341164716833901700390614549358667629983943143468815781643025021649297070089237267112121219910586385156676346035649278004056832698258332249473187251747046142269337527899520581842060167925652382439912346934136986328787179533018704489510993054525559128841913479672977080739433698786174653674959268585309933901587618876827214029733416771848738928994929087644777579495963429212275353306404626851766495673290758880239185008594076971414738126535562462741667708307639067184052881449805758795885579534814955787094994692108209670553938440614049620444414847782577712903121333005781101466444922702350132129421075566127496431770285649898961373561700431730714207608243293935956279238413503806166911217414389822442169826694124956694516047009151110347231109280100034143259627750237266221995088681012539973679168894261363045274785952887600440075113689999175640077636348363900237299148481416744462107750192191205168788883788867164495219499570640721892422981945577648367583206039637629598158427829908205195145519836000782429810914539404855051765838845838462370201876689275855471653877863183811650275236342105936306709369557347916567589253177405915167050453860975765869150458770644800637694205848780838510206813844743845972759550253733298546925305202074232663197346443838579507722980208271864315826664786226768727402547412127941804540004247124731877995065344548153221836207555508055472415518742683244225130587605283663992700480020839457716078253057720697912252678600898124089699625658785270593481460544917482313173556693263042220409973877878431492559894145547151836278860566840251518667289037226134792856922860334553867861236961588843143062015716482002700316789669005281355564250915080567218308620443433430724441600450118746103286470372931664187001183199323485533365402909355791260233753633164232609394457412825130751956797369560444676875702835985845324244642156865689549510573377286204104471606180159303651318036708447807637148258708681470719256165027864071144379687835987853609148336232964027336953540372628095094678658337728470968430471588631896289733358335588702400192809371474908358625367841385672574695675634129837671915230581242072400208143854502896958281482449657084636102237385007092084572104113078653952160544785088193967165508320139852888230652626077089070441535123083033387727446991369262561099815182771180252920877222073866786846898265839512366847079374345396943431066233542743773889119136471789775892370290754448743486275993093724835325905103463480540549090635390660664580987518291044661461645789924131630293655235625155420897308405706955788736667813061737240533364986554178780488795415812236576535427452975443720372514526015088889677312345398153546282746153955573409364717666292052126098243023696741065886614590924921248352652414035781708797856055225536750935796485538652183710350123919645879402143506596146850192798525832418333567757613891714460548200754202467488300389193438336477222392926005471006583876473027744395882200882981378365326805207048740078758288010985199919782409799530588505372029783793609885069951811784853164476051695621849718959141870188836160077169149795149905039613181297203192805233287200077240228498979114931257367450269066582682180282189269373392071736547138318647062963158233905149624686105562444121262642811526864872485146120414310801223394147154282295019283210505561470802281721797980282541533739421546380149738596014722753014851907984891139472296508206825523328783683293098427782434470006141828185488115252380429098094605141954200864927096761538209704075580630531254534526855573407523032763230198064784493568097761664506855359074853963104712564571048739661202058560077796966885262190080095652366498685046022799304371526808142705761871748585395674508988521697127091959214516629248255479052550913531490611380678366785844043177881500358800541736007638399316968730303989211036383470526230046572019975321271848341870003817589081449831103672096523664812923258191206591580556896637478239691434268865860022008894374482018512618621874096927383880768386484544610763017301642506241695641232616989538869954406506998633166821057529373827519322328489131764210445386253522033972236587426207717183450154485450051337999585381646863679488734708521840264944620385881287877077969344456354753881755563920318625424072630927779558888489853540452400558783462067776801368720396131156649557475603583398160688453109193188009821018244492466787689151099144702517156588925079685038065510236909875517201212560707716548679755358424636090718573028055083005683795381987258677297238310419718077807504365036791615544396135653340702655805241487399169007831982939777395791022815753493504440143443789647547443190474335303713750935353902361698109223393265100848050558417353350985917816542095451582709451646062207040044945995425253306280326173484737441527079281238881037535805007735351073296652299311810822972848152630832735887028019048527471010467591226060091358060049790246129601178954194359169175669760924738902938892458751803102901275996233450868964202931345320345919103659038710012271354735112065602779915435041261656561466854456684968833557644884969407739085014848454214738711939776523912302165071299341957618394521226743719177347171301671619303697603219429592105444575603324268636159427897500281775988984973902845222266431104885307738165892794668750045061374718435006382912399640214429613053284684301867333575613377285064924469614287838576067230451601685253391911791593907231038789231419871475598324289260514969436560650047834700286789867951104203856019749251351090132234891699165455009732709632450270537405913520051418463699094558532168082150067870328662230350744457799853091562291406237238858352388474724530115783589636250697495933257292400771036438760318512333540991062518834786775894135172539536258504934363877876358174960353823556304336313130262888589777573820472559735974009279833394539414063238681000902004433338492876206868580726096285200336211114697762474932703793362080514543833397702586945437763123378055588714592919342023844589749915042872921241691321797884964795370265096580035489076553065394915950611567056708978478487989472726865015650747720360093313143969136029254511903891504487891107391687763998822321079787842592765839973265217110013955791711405484082504303525210999191847483951965924002226839715495836813696388645987259661615650238487700407025125543037282372231882085174352992073219867486686026903352367374396977924232932933862600445369165510264242796178661412738852605969321379739159135126731793359544833027293082542968442946443897320090716822424615847277455452725445658764933104802966021542472173677486069270492046775152830864374198581357752521656303143927965959941693695599969818864083749488752132207673601185289787609780533029501798003323384374256889866648424339591662335289197077071638341768735568305228788115409592382039204743153206394288840596571207871001213813688306965086839284846048624310227361513197357830268033124464601146589351567056297231757415526321312641390956080281228207625461208695636790104270725356367094455903126727905675110440455533176144101036984882357319790127876336063678048363534381559506772553964269007312375457577501490030653586780491258180504362305898240720777419555812032605365292579533067296180217857301672322788444367092203866639091896372856500838179495498771321049404960318193765660372045868435320159993077382746819763521656593899829809614146945059396384223839698799598830252070881485717474418582990869508166081937910783857417286307904383102353023071924734317672628023144156423712483255555317380671420448538505353475609041908803785334881341559244524896743618241124937813932962735144487281303185250325018377152166840423099208615112014188610302197395770509459745771757224534405488988493134970582607935256677460698171027072314971117409937069377507048275173488692159734305109497530333332636548011927799969055234581298271933130147381821882114338905506346279224561708201721026280105314166135884805387478003013059578884973428638474712872631208979255468957759062347781309633534283787928985163150795190256258320369099165263570409288820826854898229629089017048987536098388886888304417571467230016485904076642200981335858966357635833074430602871675243047440853633025051545295238062273746284187526089492253127731809011695794000363655259538216884456125405154664445483083091084564019943822801852911441563016159868225598521320401637026789030683530556863272675690231226561449900613211582027932200593688291918301996777717822776717699402251485931874454578799239910344881462045737623281011151086609083736490782875268873053575620952213479688711343325223316366006558920360400580112265051284446898933140541648227498355380491814961807052298598758475080067302648287561186120624758695681223092847483073188942649035386011304461594049282832369315657600739660224390668031002192569147929455320597184943873272856136061270839099323284129411864493996757056292140727921707245392789188034171024132704264632373257382826540460081387601288361377458679726931363590663310000689181463189196938329534233930146869661687025268574350646125758149709242419672605222406023199429447466160281452364411244485523454045575331914093775334184275243006595772531952450261924420338391643592547213139033120844631517336048791420209241139833926898500686385180572193910029972909932274699344581608418074951477805071154848327542115098454040445490859316792710126803528867606622575927555417945025818308712265165061074960556076190117464955794334316654489065984135521296377366027619918066245329780492578125856684840628013414613946134591199575581802162679874431847932876830158634323610048055394905822431945769908079659606202218607797463050757068411787902655332315382065748001298611432940412050685421504500788625297969716248919907640544730816668982185379589786658912529182979114441032115674724422051764855859394680372379369685796483957853800589989562879094570940549995085621182002026837190547320890159155463922670476675275455898539334800752562843729047744038282244866883156284610626029191611773053609772926477408015294244467375064561102522243050729190889865713953364011039507416949994773954533543913103123372195160277104599048710937885557561802094523011350346057818295488225798585664240488017601127758123906145107313846788183537228167645473238139717835296068690027743925205432872582719666925494643833029758133121709185830037706560011616575852345553889400494230596978832917545117726261178122146564960258247644026975493105864657294801014680005527015203908712187614049518321376619806576181432722396248910204309910460668530307373972491867751797523472329186202225560038089881184642348904179297717182311558432509180380555326295133731330831644758046431155759444128686776126297370638022782343591052815593750826525518096049058846133102567253342504670489632256167673594757082166069489722422326880235613878420466986881248712568261937231306814460216834694379227503075057155645673706672494340390547550743020477265623243695817740014834536467679465814573327049413358396248240535041058371566756435756478635395427340822121077645146119021645894565795193119908296776407756950672182640723818675524413687505495877696845464970607921825776674178322043432293636414644451013841344376571217022459211133779939864031223402163441757477769290164654192372109376354965417373500857952531746518414748083996654371018294876113786932008008349083645625303097122812480001267365535824949772957341138203870308389072670076204184060073122749441399638498739747860260504061364679420595384477873414802318972661267850343235533797437690355339365222666299058822044753121320798304567148727936766625231537360557949936092541850184157398886509489640841461590573180531920283180855634390043836577947022550172042938706492337390873575436771984856613671660586583819019724895599421707675277913299957002505163540862421589750734323830086250062793831846106491261286808184845577926485308859246120064314327804252107244211852551444361863118892535488591101312180616335991445203586499081745241588916090240006235846873611550874981660756350161906303489687594161395717629188876612615311847679405363504600301129446023740336233966348445550932335656438888479883973192618699162721521572522503686228955094393631600833519687524016385632985626742957878391006865703332803382442247187800293478478128989587399086970119417399289277183828718796719914952661565167875929600030976838264516554635087187013660385297516687697521033115928405910757768674413952083798640694848601781359793378363423416671049236248430839656337753325658063122685286339471364786805621094941569853778289026215302680689849304598092710193642081484539912935034463036626114451358982126566224280318281825000638166979504097175776148731896857473706971399066861109994562398108134083194421138734222950902944975091859199429142223518875215741967218318600844028225705580782372960555152791186597120281193508153618310747280986122047380435188425910824277954701702395208617869477005484203182504888390826614447201288296160156207510268232788111791248068886695402641049105531958302424184032988179885372601035502895347024665966200953155733020160339150539480428597081480198769030392546662554199284355148576260561878470032031168641760367878622651424047582507422482237167980083276057465343205181699943028983231883911523970595067912465863847026893368888402987872670626223941897522873198586237380133170182018162647488561043161317856179355970420799820516955322021593718454283942606134832192751336806487880018603467069393101267860890134233721928872675623448897171496716632725767661086136199351299092751669813276304986869555888127680116698560779348542556708011765319986942932600945123663491724005596982494150091201939619202351547923844861048355819075456617597609885369041022931047738840077617650140257268796081167555561450045720545990366213081277613117219701928797807657833267465802752346835066738700421296473827762130381801697013832424871210661264455482455337365210606705221968446070237673695824233583110713925812368972411999664657195587180718119787414226392286832138831480627152515726659031582580203075431368116949291566747622701384421254282878212907095449158178784622536841787140626999507922315316202223622992795041674949291025234013241786272168503134661512370737442105141005358540336593131014442538286764857406006524629339468180997764729303153775787653030738582206087825363958916413122202611495992489739014078033984514375531143046630953198840660043033413124165873968611280864562087170219779726012653934717703422816399180515371853320506908779246043205852929479554812580803924493104166910752924324455789564087462682856028469891919022179672800326890411032356944204850710796454022222131582362425584235003646223689689708675369839118316579108816454190838623719385630662079922177904558252333657600508776601114584994313979542008269132596373752517719932534628647276730989547396483223992975551512742247588491952405178924610281977001997230133608266839795592443619026167929293499800199820020769195261383162837256788704103859433296713459532042463320314202737124959970624643949046542557882097537498687036716063189338644706780802626048811784091436636769199122864133368636274859130217957386635216211626282686495016509840394818590824429265257162444273947539528015038258426674421781499961188624829941540892713062011933160486749044365271017401940338977377079609902132952078209098299133332755042904531106676171034585999530177817568317423965946016622946960179557373866842454527891869735872655766600189309208498378692288781486538806571431407620921950658469421143123621942939778799201610068373420256649401825557488991832283223348184904197607228357093723429199809895783952499402960440885754180236861623667756151392723299981054950549263622311705429756128384935619386551142361510300460321382351685561750056544433062639100430464694824247691106185937689932826750411482447335149194325784725114046497261191187592411461045683814493619862449512171335880681544679724941444436313341994721532249041861188881949022760300955741981227472128819233160350734806034946657407680338625850513219916259988735710194479417314157001978498861985751921285420399318810339866330954558713048250179854126851822880682141141137211263408665948454498290418222563128715296365672398926579644204256651805585417562060861886151093881046236330809418338275404334930051957879577168045560053648610378317534285046339986136341610678957184760614660945402308913900480728336882339005450580226983260125315263147706735441303156819630778972614024744900990450548726072314315764883684232702494278396179821379956888463123909073458090317513769043888554096534679894086862395827194100928507522692122169457614130397849073871397790510254613305835363578605823221680536184333007798922131886080269475748045653454267825555481963472073161294504825748766162362364390256424723338305210517991377650465837056674347166401433800856274465299632259906157526726392956901373472998354745963259569369106524125048969370014270978583467432403410972662681523832787953600705211715418328377043320211564662619871455701830978672010498533142083342974679477327365782079218450992956479353097173125916870572024025578351887458357020359294288822249354573179250484346062580169122252667181282509034687696321924922995498313671872755704448203176666815639514583328249147941108718409145312946104100786978164912113316478076123733548197535713676246089825566687792419858684960321693711952032145189923036854385808907621943865167724565435422822761750268485904838700865930286620067292259736673609613484374644895361200086695850714278056879563364886053768594232953153066404885916025406517303441234707388816662554166660680651126985897610320135149532919821967238466505793900413201021275125523797289086781405246614776259185428614532714814811474547630084885655665082889245705128594851900994475670144793723068444033391872138525741459871655418456233054539609400628876142149715600473135109320634013552546599591318861765794295511245556286719848063603715923569286654026462815322198504753280539136934430270794233958209753309963229412210142779867917812196863480688057838053684162219768574189812764594533483234338688737669949038065316667544415617229740217991480736895924906536716425614393846896569676156754929130141094803769961221678983745785677925885639447125805164698100048089613455517724318173161612121474389268281761248324169550202641922049004254505981044827345455873497480334229335372006883657999284492483753362954630631143080084519828572598008075376868713051050895810740325545096714760480220625661408017931157452372899490933688169170771540170733968545867103077530042227993706040569189202797595090779506833304552197893579850108185198173484674908645121239074470351557118405552141631470334922821076956997957127727321686886954567205557646330859835226919021856756834010269244234832009330191932931582876306056357463055643512833286625026637876574292795619672875329679428400504364249754661771406329575593283821606596215670080536606441213668376248858838574122581544512340755118781604607268032045425446723677256140784019314605576462905598315318168270739960347220078629931852787803321482543890507780994488692360886827247720429980130899766917502169020681983904305413668785700751402957861980241057244067455415756697246345748481133686125787928168672860012017407717597815997780988471100393744989798149406116703397962241271678463735166346650608027336166300665689594572437247602871740915006814580775794032613101633887710612790124081030542634328484054589854202902164435449866201937089490652419374333926363039910950882971875546597886226948088985955160007373918354364463130995864885723645669697597798510396646788408968762137306673771223776302183150890789747923280637744607957261620859596507941112231892438287414588740547073317611885506190750575654825647892199937362656420848099586744966760512432304221429546686966764331164710472489954954168946228072310700448920243637806763614593555228880388397714519937952883993853630714016886323372310103680428521395616132302218061613716132107557051834434692574369692490673486598087581794588387908089813390500927777749200651739149786357124327395516365014794275073601589689452738296684798162563950016717246676538978391662653000904088020830025533928366803938134854300662499668393022663818588239723404106362141605382695545311533296468299213666134370952202671037376577951856933367138233407571230821732351609202640503465027368965460121615860692762541082413707685005177354130490001621949958676953925492506227842054883408486869390541304975989894642224773883680479801364005451630505435267309481667478832080794898929862461977886001159664650023651423959112493984674129187777531289364573586669129519305832518553686462489699163520049863628552635516948689516575340924755829407642980845905843517660905210940352483222285528425475489530570258965665107767198329708514512983571215468155296287234351209398456933262675150176460174886967214382174262629047283964173872214869894043888219680200949414913853127944950824990734732791373550278655003565419651083711767857415547578300373676006373503832643352222655433412719172906479803109704594852754979689909302980927167704338922441646661851239680727295764514664393308879992968904316960482406046975161600157679329849743584966269984512329702264759200156758918565511972075418404905639645399474681700831778233613656537236312189731048409176821519893364806829231431126935010867382373525546805481839186839319219256013962437974778423040833501176267837500157417754010592780510852483003757211833502655324753866249363579137650927492953141809569557978349729509267386656917994071402004843218508299967197427510281045332546227100923195449491962347973956759235057577658666538888319094718492111994304165370223944751364496533843986584050222226038917085288965663613048695441859977954787919857223576042932160834218684729613590357623174311467690264539096116745414575032122916632282345255092898620219142830455095737035960956226509515951635435908822247575808510725697053053619723999158368175291093487510516897334581004331888619598735248807311303989672037425281153088858112115033517038726020464346891463933652681905437710762405059698016640111523050789650367698987673282331543785709288803612972867572481395148918809621403776743398087843119879811547762851610786284018765216717275636455314595819435623443505698250541105895162808237076053731812019052217990600131016676397180192674616193368216588292037776807007437459150705901755108989979826295127726919294417234209155745181554256497853770208234763766704616401497881623025560841893074433579546424383402230548620874300441625976221296171728664618026061159373773999303676623223839861169738314080418073203466513367205480007347105442971705505549295478004360729799208134089471962532296366047698626464083702674715775413886816630503869052665021269044653476401903790897040965645657801707848162738360474537458008421787378754318863887455012181340429852881327112788043059722719122785340776178820200843285300200816112140858588228988608219735196504442767414283948192379763255463857584777784371257664442387205427193118503004278710785095967191346515936880585836338453285104656972269638925025217100167140113234896540525507686481945722128851720500095869799023395722459409283681478854331751025882980624477289877774459726511653448550101319798509121153164483345405461603540639495303023129623235545119838819840890251664455520643275051469514642868747208096443296899526808887616560175354937590829851808462250745542193255381639274741862031905691383533666867827500932128174955393237502292070994862404160049215878550410130107935427434334277537260405615503341550336664062098248900089989225522114986320554540831547824473806896925123566771191589445914100453010317262529180101771783652385983195013815299355894603603368142611973882984553815531151059591320132541454111540645307021989115168255899720413840889038105106001929491345877365902201065462817546616762866226341635889170105845362799080148751278196941630727513394522390860879125501720024884961960413187346840487129456545617971766028445751497404101452448685931776877685633978892932860267345557723497121223287590733116242308374256162581447309293394067351687008076423352509044770231070122856891073348813166077478827872963966978030000480410163697494617751044817648802771495201544080144765076147384793669604544992078067646063301605636011523285613099659317917034517742832969411270135624136122055290648142925163707728719517143127741160647280801900406575943581216898667426069398861998333342473064603311116862122362291903953439493735742641872481166976472709942005632799921871654761256797221630483233401507259525496019320841330758931380359695373067666860922315702825856133610632851349873345291048226450021081312252098806590262295224211675215526629613618140542949013453695045157785921154497773528592529576076956453898459481307593837998635892544165788026583846422460943364406863919971947861963408125983467958198365627008120701653518207623752128755147039416870846059935878441489452199138846764279234936626440442575487115383277205957499547209521118296658077600610240346215263954978790529422136754219598684701673872210022761037043409397349408446567345338106920023153795071506233416954150781336104225777124139018128691127876696868140018404430181561339170756027560666752640439692282263659930601824655716491931200346892569092957416417462373307336043546177756451867663302214418055245894787309060692176940349556109577774601626853582483540387919153013487368116276366018421168467202863940020254262084465437527287847959254312722763310643613045379747695578478555005133173582518573734173853750214651123280776425949422636871362866066111582863689288598528574556590148498908803106615103053563527160546113971692622374552200629194626545242911179915363694964901539667559374506273371853311452824032591817175072265400170670005349798099123762958477202808891767423942678704278961263333175456170358889177179374330989044677074650531363444446590546387720459520086821786029943375463191863721130126331561549457514315240092997568619629149609549212796998371814961794141258856159246844983999526979596628980292997226323934432854581866382854864312729351129408088886913593363266242682992982567465693473746732312905089093711313918292506566838529689064579607022373720801577299031901325941557276641629438765833649035841204442901782470694543536357912102779528796554057526947585041637624923059952282928688992143663340128750691157251270952721433053933471005762689475911758184426102616247511363465133510355283242009596506080247403876285169944214462468892747377035412692207995628130730926940621886051610619513901770398335116479448813802948855998802290333033011246105620262651066549404837881669212148867586280121775518207678296281212354018542151193502019767769721131793536669693997515649238820524826497816430325904223427888186145496387973023248187579978010430482412106176113881769380506215972564228321311728332530138482369628426362263594709431962511609917803590764480579604364788176198917911486928572903775233293420910516989352704881312805408987300687785644506474837312691735377521302965104686532483387945809397041890691151369704898045553009217754905767587163710389746386032570156567259477495473814967205650178609602827706725860243079480735098621924129436291181249576774439843241937600553570758215761614814955255417601101924657485103735453348432548314394784404346091871549597840714350830587138300143518217637111525356974323999255298965270749837311608574482502050105829068783342459428051984641373237164546331083150562941319133891043036418807186319413903321729455849765704865849861212442912186591438872724956711225661368575186406264636335414354761882755825686063294202303417879749952129774089711126904933608508743233398087389193451480535935139928727282291488003738620816653688497335537073253333737493914290683612175663940650906380770824205261153611861662955251491081835802147064611168746574064883294013194379542772526798915953215102297238853789407780683714727406316979718073299334461793559837692392114261348344996733560965159565736597452727508073707777927455508512126572735116357977863566650850651697199141295040245746250147240621398060153109614996703715073561756429597867439008389885704616153685944137196772875940272311601922233293055955408276314548996102892733145254016380457669329710125917753573394981939476113456898095617132580480053427155807145996111132793533563496762757149938221711890290889326405255183520076830332745847309602871582010163067572753378529698798237827986211557023744761129310556015803795827559304925236907410217519576176314157825896789873906888788872685740608889003180538597686751168891186400391306342992743017096612289977607731718275191723033607377894843335343251400393919350323599106205844128891491289904699421402698018699669034130474444258007242476304248931359448545866549454003805816379957539650289101214548824897516656451333670980525194353285086005091887157170007683085278283287320947048367728683100312123761474423055964743564708080836632862114748974475419143422551262874737902586994402684257013911434395635353044625160786361380880804341381217372303588232293540049178689530510350489101389144710098354079711465509188080276353592157765813900139500916438318026653394122758457975328389539586860915172835911898997976273097762778440467306882010708395955698164423265233896597650497415495493124170190794147289313888085395135891274182429433705504575599594429004503244184781181506908010747511463193403004739686117522832088341499589566917078869539768214275248755818543905918101952102433835039678785519431848853547054439066040096537032754511197068428650677585988774637854488239684041623591356769981924586267479512192502038074196426807578523723928292492272932563692523676085900078207614358161708622556079369889941938891385860569230677290244114263512395047287424935501503030821740850400120652385288741362180531152842221848671975524011995705254183476890009287600378088345772206274143334980511539433043747416098163921924429695703626002405343161082541475351526074997971851104347569596528162040760316304326564938472213866361135225973695247418601920341221056805518081561622463176288016128926246079732203275114954853665570935267244151392871508676613261276376150662666330189807066097415141504866145606815355456176795018126389551505569369596362611501852421046456257676461293233695653381227748199163933269261035910814199596711294397204999186229823851402446593108130897545180839236351516538073689343035236987651516186077011338954595262431004829251343431850814740481752169871456967154339693422037191727732039813431136812791222329207937250705879603645444243957887485922929716504778055758270330324577631738354841383368940492739582631910962713337301649532830546696339295257183690024189821529500090061736214861096785296453174579130325668079191136317396719143001685765871697233730867585158508162232402204130771407806216914333329730724389886843499416563363195911081546046149070759430163261253104252316033970057284352409572887750831997553918826407776451710207162133958458208686925510741694633180223851251608171833429920997010363760145951394044545099718520900916844315847849457162753457216284156047058051247489129783372148461125920999792266851182261042849247154203979214788521262878901855530524324411074661812342707259197463684232325477339706053552119646865769308485862128869750277712114022854223134028050765054486552671877998934884443562215166978735101945779652639877382353029378800073591019315106291334570822666530471131731355030877238797749325433488182596666447603933041374102890840117661709195569723871315578911264322307984548601245813794188373169104430159628181712774432879546637145747500450126577597531733642958530354182297892473689397907670012490363734412389718786183469467751884450826856955095782827738468086814838856948390186339086805572876723743321289226764801418369146197592213610797571631287209463050903374476656966591715714465583247900972301534667978415200244803662217980612161723785868302803791491391332387769451474337470141708055517431025272789886995482508951579511781600818389402456420703134646979803820558426299700298940763124899215550720722998108251050502693481154934615960640847671709888607779608102861384710443521000747623223084818889263810332671375222139537053127838654244682249520840877024394899666464143099722900966874310016707547628151989665468172143542542628567067580318504825504834938161140571783017100545109294754616141383691605945651638755885961780586167007436063767591390034079312211127448306268344054405700119480750274457969825268553214492476488282499026290804450626485852157039598752809141443570970430606506558554724028501314130521393019729407438197590122610053196656391848822151305624366031042300719565352339824660537912207393954525439874938990373978324924857463354717637636140045837284174287185413154100557185940006846315777063380286136393137482388310614024734238073740004099004557804699966986427690599226159244322080648364493384528325915518622313019045873745902303989409926085716350896357690157466299176208238893564881478315848805286459409813161299418974274125540847816966580942522383851289783999560291960841496992445151733012712820471568783751105318690956480363436692430722224271897692429451278869396853259177261370928867916451212341266261984003015295048494855285293005514107234185805924875562110477410260747713349635458543137510231015235087259346929097963138722717233217521819750818704830017619890495195307219859806425302676788858588306469223429260887970078143051688915473455328925881486875087645326377249851012176786911650511647595863956609965948245808469080314648209201209007851011696718224931683198903149854495884923391514502818871635142731176356777885448271085170469942254494946572497469267363404136548371843413221646172810011658529565822696999479962251728973873208661000870274631348110097557825988852069124888394634240670903740116044792769687088216516546893764366312243761170034323942203228212013310595400452022155220220564555205908374682011640902487489707137193550442012281294033212204898022783737101102732146680408442257643152341904980625572434340597696257636544317948483765548455304684842285751630593262371522587357849618056992640731846379441567442926201025572594989132157172088319454612796359864200079853793270466196433620210553578447085145925450083852875413308046945317264260014561821900095164892666630452386164328294618994164666596966092743872323014878082833379694329129203677939283663075979015894592102579539808104550981123823874435027998701246531780328738724509749542284706539267962089135765479026352610068639618797726825233272427659557403117379537026229305648094123135457255460589290512298707612709820938475576103381935255173628365103223692956894389407470729170502848917447498194395776768812512754605409737125868449887412540098276937722675196013092671935868415210254043200031097764735066619192389506053043762014271147173471487832721614767905856843556614028505179651447870274607384115452767660955858265020255577898380416600845348795088465406778749938593883262360090279534570084671150264917646156091177871321097715580489131904276391160794320159154355830248012072481508836580839981444910945243056111571386382276746885160125268330158813240334100735341612950143572057513633802626571687556399875604546379800862706471740939031427998634197795628484599397418650983605498163506345329481681306867861931971896906165045741567459021833740911816354279683284642661376617480616671318084143962084583308907954016587617905518726094848398776898164141914889051807568076380385892105039720976422752779739620646651499653447656644502251864977954889951993619869415922102475662783890147894494081604012053480113958536500658681033389688908364058689396513131792273553876031344823894516351601077470586522944528032406881725075577395583427133062811130991789892776013789938511423301683059960216750500416203269346866648012254229954153298669189891790029879265805136450212929125271568643721052598986397818694534837526590329552438528667782881811612798200931290002808247611586884869272902325931540893286488215874190994880686700517859280450924680547309245457989901570989255115650265967923089021462075951155479666802985690194078852498198041152597256163969189747060853432166494321733566538330242253077775300726926829624426926669902072322386810215154155927943528295542644475033900116945154066564651789485645720026827241042944862043416184815031029746331062493336756858629414276000347988061024209693131261794603985564540987998457701320138525077470350423302504713745676538195527575813161589334979338235382614771960501128441952184717751535118821884645890733545302391374275869808727549544935135725482471750679375051923106308884098354510452973928249367716690985630339508494818870270312163024557614295628325593830524902357915431974302014576078141994653981697267734134887963588510211283086680499658988101390259888975716955272984720959918156085219664540352395044318816816072685012979109793488108886581566759361328410161811201930905126852894371503053575041568256594167823631481237769394971196774056106098248491483426798350557460999398416226943359530557347243132349645739016117553660875378685560971061503621461631574468180834173472578183609769097573866564006725386017277007174991114984650971293195896849694349917963611117191451933387171518348280236052572703660045012937865791410949164453709501984505906253512304405985316442591846516345960917955637269321022177520796555249774610676666197228904955602999510346638777582210390653357612161852860337986954241471225413293753027535795654910651976614307288579724843447146200850296798149903807336408902334261249414129075414684313137369926734926300308894876251972490894729899635142009470093059476035239701269730863952968116807969870228904588968986007462045202333971832410788713265517476248369599248020861933381958798251946959919711958552542359780879112052628185612484384909149354277707878682104467878611700822134815345993429276803765014957194342655426702117668726081472868081540759586740322856968339871020603389213491093636711565995851461110337062321437151148806162177892239044429095000163007085135198804326721654321197542228256186360157280798543959202491914397013278515719400636948708695964855619503687350893817949289310835291824587534122204307450970086832382118501845686159795337324297365764494098969238357818332295812115389902402566156073260318055296676676044726250370933803477991491761559826788595598325460867836432479392349282128016927048641231994679324917981685100251785848198935235279234410713968024792892828266724100276905209914766068785619113510376279876591903196663705444051563390941584197628668193606045695282445061040849988544302575745132084196966117232830344103071596537748655787405988656044970026955915614665003644882958353912273037076754510364208696917533103683563409482878846481317286098789461416112008735840604662462666962973021740190141663039482330088514908101181297416841028529102230448498029616281758245007597873281270170800202509205080953139366155568567724707787814185507926207352775432572884030325237039892210594336777780880879340587133227434680696654490186921847704997229273782173371744325100957305178169679743838916820704267338976340370891454291370038997476410592510452235955969433667230083871533231695501631359606415519305540441560899349293876287919423197923375022768986224447734528987721346652790796445377462366186982402855598962808190569937121888802773542663114752019950840096257423991454087831682564211261454414963522763699416794200579190595203111412555169139891327247491534138630992641654430125102020645233544668392510635522662055999879267243354765465466910267800076986778823016713932731026128808655608351323402997291398667485920085271832797351558542857474854221389656926804577060132749475399753435876712717826212289164948335163891025583489691124721193686241841631734033511955590688196111994376505070342076884085161664773643307889993401790732086056716926632414562613496657429906398603500725233377709203758121223504737773817000417429908495913824095415968202541713683059873633448145347623210349376490775313385225148437036612695150240122582368135203511806558468238748563434053591240163919782249723562255863589285323494479622591188686359593455139226444927433003751762185248702532536492884083852297982507531882136641558244620236543258203578817714041642855830566377931393611118653785990984926206406792312373964158471395948521316178639575051367335671350114302639973358211701424679032667062390619042608703717592826410290630506682437304456244052777327685604531831468967690412631973348967960944918912021163294259384743035592782240490479680521796959806861421965752226827158308269824624298052139336603585333964270978803668501063348271059077472086812418249097892354473643501216130330827747282028726738056850604449438188707769773396322472679015210761261596513192427570767200769862470927609245700214594522593048422103722078162221943189761727603951496088749230611894759770464531180386682299214391733954387960334861922971142884439591132143331168672623110144339639682189765246929303911204156449776535618533465658043017625001137638149849281177416374062636225187775784032759042285777407410616276475809771708206997605752987061108767618083458311653825725474177916298707922865646945243314005491924600771086750397557215532181661062789624009317763267827907739034933791242157418027626156218460546965817093462161651637995992095358995508221026682687738338149285632082732124131794985342415355200897185566584856387156517337145215857590980023478855538749601074480514695791533199480757736905603100908617489238051680704039892349961956000606751838002282868344041453095113283730066728908121436852505514078138068627983795443382460406988142988934519515488990798912238484626820651177305721174809775210504774986578593606857222540136377206381904519260009453131946232271685825508895827759963506959567589631204023246903608353609597072644481023336730061156767605017566852963907146256934836450461882697375963912458991953231008506512335791445568941089241912212134940891710395656618133341133841439507614823902467215290585018632810362878928160184820062644538458107176972544607944115833416808794587862266704769207921467580204028836521981417957021922184704712572333523040149719434093994245122097362187604868986987513455442038561367311191280559946180779170355849904123296200390157763694452006986023563983387275490594494441777081880481667350550570601897801821608601420220861919006575008597800376537618197980519229267551119900294832447910440861600900416475016345299358396001750155969445213036734077496183992855805009936485886714007145578450745416643465089360299961944971244412222969803703932816639686689647789175784300495587501998807062819730515169348505196277621702324692847148606040921746858176085260494736235953182391111220829869898182247329961512850073945147482211121282935182225880385580514077278859245833274903563949957292677580600635777933307526392215710783871071329039691731547827650495023565442437225025367244847967813535030667838660118720472159572610748799536708811318104148123044190586955061551894695175295754687486176653896426554707589583227023282073838580312658029512831242804287267189545524220955915389932646311736944361160641122941522849932986665027217546745624592019507064485747029095969213257948549742780117706121642633025152415268293853958282029681798399207575644819970505540196023844088387216750594939699671408207847477298693660716334340894915004759428322252275992370284739285561017019186060149556980095716256608455019171366394935952973530406442872394732211035256564989594474121940041102582589300841641508058657697475487642822106746348466036305293036412168526891775334649500076243264003837220957704471218806692212215502208149310205157432446796751875401412612359190634498821697221029744705844329915903457791656626572062210276341685424516482997344597668921853223966693793918089989840083310460372629029641730596650489397804984188213781419793146253257745784611489535381330753325798540078846253094873501159207227398236029694340512673430264117375500941591377649807531105857865480212143696143955367044119674762220500935085694361383150775196530621988659794959374232579524258799966492245863819668432989433213728809196049794058822958984908093256001375242225560515173189260621437206001151336433864598528198104527186821438784494794115031703657559426718430753663201058486268811880503271678113307372213715805205078946236565003195049527516329247341970217920483378454078226995299335481040092028255475469044103395923177019215547747322274543137401354915385548158127164979651008659413070029471698698671118358494711015225916719869455096398863569467130443294768008570228623555750902179858201678597465822204568648766295415153797396765158146071985356294126825463673837049495616260538464310171634248186561190937557757282765846466820965209398089978447921071644364723396978775260250758026328079329400329877837854086539877499967359546076581081616145473258618241717562172819868563041480743593669983173591842414893443708045907314759692098833836445240289543644953843229635764177506664868843566641876165251626008380886402138998955649999910719983135777632017278764949480499965039482298691077714597263416247473652110543471800390044432253113276753550679957623555875166190240678771152390138086613697109485993826494598585891680577063421060315057081544352523049578699106972783416239267931876234370098122800198935707726206861268878380820731774565881715860429476450283598513534114477200706485528707632868201413175721750652434165459720896137058466503961402669959133313167321857818752681758022598511189783959548591518196063774876378850281800048997203552548093606424950383658180310954183599940687514201151501858767712674622489901340536018849599061974916021881805907674412813285911749681151411167793456710884882884481844229580475433589156250618713009144976882222733682027412782851598366411618507110620582346873358242330538449728233389858276966219151013019107607986834514186508562940973529578570686791635946460881942782113602401233666081430109319368459351854583579972592361020340436146470613948576409964432168500153498209797860563819056751361704767911780261752751201602176993029138346506277404923429935480707749450789207379718019707282010449768408748157612721131370011686785801011070826575016381138388203169454503220712869632452035659203523504714539134045886571580060146197296232240824020863008583274277984458626376407529894567770856114065813722067255415611936360733506941190172718514571838887485164613617291602611030821933039594913887239000601444935214806982021271091586257166491146525611368489854664237831448865268799832051664951173549141550848097334455640727071397757131468710317698290778640816660628090357399741422679530732317176550268577523569766273205871825793681225995335652341443625774118051359348286961323201011860054000132852604533713892206012492655879685476396212149887153138780973653244962185805710895385771803530260044895522482896175303296668441991031747752760070712163322078940659742615492501679928769417885797553758737177578398050444368761324485512172123081150477349444845523716129095612032749345061674903202822162802874050233721121098968496141540386120062445409510318589888324612819477418336140731476642965299236546787298461965410526497985181873309415391125360010855726371848999844774587442182092249688823273596938053195400643909005320201541562614768634566130816148214351655319611301066368419745440472006933559374121577363700291915999479216697955988983202723918716700635018063330348597163124638781478543279687309098015021748088195689620311313251324804648971198655185105379952654172134144136599577270718688908113611033883730435145238165857336404981378071223543489289709658481420751505573010943829390635551310737901367058656542294751373617157216375078003580895202738548238227769785404357300120014580680294556551983089682308199968165079159931748300791907635718036402472417832232461966788855784305101080977438587403036864755966335214754433241223546212370269458368983277756144171504675826299489394130442939418600876165445252367325966060702080825795592868318919839907143934533265890410121474929696310195029657037214724540829554464350352536426904623868584058632159646537238137501182428283670458478253753564698506702135532294923092458498223660882162474446125817449818686909016074162204942198527093219147106781647485954464716585825534572899782874988985347436684043797969513666654488699841854428270564488183685002439406664944312986301536214112710822422814100548567576730554479678262890919959169480108444369579989968123743504169923726320884767660391209083635245453019393116971064564514917614004965493002112156076385794406441190548261071598429071428953052231326489772280189618788059041647231709476677224943374576050302923480324756334393129071787517922119573996507422835355320024515323231177381890082664594663951207631573371045063447501741737378155309249922742159270804731629406579672635374208251694142499726832537258683461891533849954536277296404647432045533212883230660432974075830878460101060252503970198737475851408989136253550732085829351572561018779032358546437830581545549799988740313478134397114102498312629584683651260599814466429717938401041272426872802884931019513275061978121258577661626811888641108262862558032318175437651924111060179343941375238098207634662088525510825531862260146579487519564829312198304852636510411461587946588684115975152714401819079835135404312472649819338054124125633125985617626607296037780998462669312072671460549260191935153119777706259477702562074811830147557527338216194768160408317852153478427489624365625907049188820951417590234373934455727168702164828927496697125236711288226779495298467125474178628911314254212311339817662120075534320688556334202021293730814502877642054592516543078234215502397680240145335974260901348633416016815375647073068576652697198457658741280880043266823044597905654420622753739696340738186257940617168462503620116969915140343819484590802119306584850464335311309798132573022127683052737374519110041014548485875012460357093759790497455699602668694791730361073535062843359332812655167289700679745148372075904400710188202327956640017874945682920654197659548198164568764979846342701527888632321193067096074341871927444932895255826635061113964267369181741775668086531826301718300432156393560838733287090783544457718778580588014163739717529719702609566105008910803038792891661861895436924962798794603599620337473735397604754141683678410916707235034457208095384967995085937069699743584632362252651492880543271872038167647701202512032305078026255409730061261300112924654875829668301634089524655936146078843338339540659965167835548771169774586566921509629988698352891450564539668326185638375904833584452701713003754032471608483215240697236491595865539268931250341450875621993663460382635534842338014770796466517030987559161042451774734776147210886082140075256529190765265585738344105018922212793583157169173300110508191674290426435779212041098861462614095558919887546105108829594399167729560425660912560305592164044440679933923146034427168975109460219987881641824936756323568150609356901061981136434867014695270594174218719715415757989057205248245075651272209415068425867580840489350979181579579924832183203228234186272374625464632711361803839960238266425286758297424667798276816902489645631099061500619609348482886632871937539037097750336089016428907533660718883566076571309888594347783443475755930581092184727072017105783468665919335645753796831353572781365550044417544933352069611105466363954723267447178544989438108213234360443530872721616498718682308780518520072850215011121869477652485387365208473421013662358606816362258710947485753071220372626605147098147675544249475988752451049405281140485310292779168788790502893482577419397154274608452785556962790527839788407453401456454371421017827944358726929837050606340226161090485597026526227725294562213679322004190028118704129750851421943855331868808134938938453986616501078038524733746579160949455469622903692973541470304490001428195871544715291113492289548308782190064376556030455632753697421313257311875083315310191915743441292790095014938663858820308168937931610300609741523683977643642896936553386353982427555540901111528216806166173058101408121153282437921303421434205512857255633812255637277833611125465928981031395032220221937539023869784715388686006400267934932607700594549122152664939984363995830674758126994234528815061574489018364011778798715205701474603690572349890090414426173853371675912743853891155785984759092551896471687151669787111109633040340554834986859620433048402925860679279425046582892534698848874517864545765248891643416995827841424422609471819919026252290801322204419460047692223811077818376809936229243479012151083126979374911043326978299375327374645305675248608540454589828831782738031639094287532470838850731501224835558329779511797129842562605164555650288377364984539650131710788319414001066391748093346807464594121369839232899336072298859871545957659713777751982701662992274876118005961706185421682557631874209486137456601500594854774517346298715010675883511205334596582660182367317087835914713127538701789396716869943068918524405791782306563624189497413425605844862172714241031371713787210902655409632015009539882711203002345290367379824072952185968585838594030571217570136192410361650160273244249667710429860604944360258474511922746035707651811326039673619932737163038465902004574204837607833137184767807651032248246261284196512688693973706224708931194687846539266445948679963657107408504429681502961701264172724285084015760974428139095590583500653349344182672086200320542056643115740895084415508208831586877964349092650826911921072381201246816159432693343185889189889647676704237950903134115032331566329770278772716507225975204617313153160567327335319435724844617920234913792941081354758589569659631974223177786858549752149719448603461462336834980792250825801946720916105435315212869553982962830162016197416634322279671914918167433149159489713767904970654928074786997678186177020973580361510261615135350751549488678567541208991641069522834019805081677807041015232817273698429387053655618378755803290674374540209061186230298075819397244289080490733629874159394222413475776875501929619388903212871378412221972058914984044185317536413787558397891276266480909616337377466170342819474643170891194679775380015640436928997542752439473858630555088129130268532839365447595145203115658692689920919878010127356140936240236528622203407681517324748804332318504901369254644009414113637222280339195621564640363366613651426378496169600370772314471226927003954124546816999501146752663674393408691552908577617190333496912227200332513499435183756167422700522636486447611290571664211645435487138962913540344285540439477486006463990980797122740345477021180165106532903891506599879671454596773301402386206147934354937512334176337985438242298888565751222720161912857446002294989921296235715627593993100118193292316309734049159582559672252970950241011210561137315087543736097906735092863924438759084730236193235464579282746792353245175521131968540886756949851730959781592394787173515823321191255767628649858643419593883551819704221429085238006179238703757208686606034230104148162938864446620980330309408770758428334205103444372081346063530726995745702394012497367474445536287250434907625096063762025472114582253408345002700300906466395821947937359521905414061927269024138891107359909390839709156071680827647336163382317310491385619500350957025961871576240939901444941522883106701476125980149511097733182163636070935685815402585098805063418923592907187493121990065371293714928803525719500691858067661891765965314280795592505100864137490514027300511514705306196121107868993854120310549913842317977843577753202312478518813562779045163133821374237707224068812459068474424185956678347281688131393443010767204767481814018182835080629480024420513024096624214752514975808155633293566286849368332692109566224435708809198225229007050269322371600099277098471440329399237505521497023074603863193008332064011230016979145852667950611283459460795659838650573376243087318440359883388920256659463170701970078244782274110755621452475833686876003780105482661948227493536360356190411390377990620280572622864138158186308836435328670831488099139839514284398494305478760386478292567783386620388225218783930410789044492050574601043131398573948097033565025279696530458497807637583971483527322974232097958946160417067182892205781009269871720105106561466024619566306314853446869843943355246620982061054266094975259494450417966946602192709471181645217255485520746033786917407277995954714574582702921477019732080737426125175337334692031719282218460540415379149923210924414876557146837767097483371547862357174175065536722350978055329984169897693809395800317118098364167862125114189781392876698012570039647563629562653632212110758606521681780882936175737070627934340074352031308475783258679023073998148041008662064265648737629962906727080978496254715485367253635132277228747887691533596192786150721994473654918018306648246867906537762034993351126777384491220114512266061380806705073155247608370655241495743613654413835830969515728048724464187360486564854950385646629934238579404995751613643362134547241421404522577768150774519670601324929362666486135426301674266310716511250035473813155835563676021250142096586835913576045348807655689112777232419365087050872817696715590770354990552187482824127922753407062151094552448071195468510847674754324727648168686365807374312774492630410940824604940100050265636674403263560013945597773083709919269232559332938718769834929809221845541118772950652813244131061543899669293798472981488717101486835024262708687174548856416548953415815762179101979671288045666819872166171219087965330058347403078220131267198417982601008228223956415057780391060104317190919861535998343169266094552887784004160676090988437233433828337736152049256354455879925452483843424480939988215296428202592908109736317116714874827270833508434535876400936800295282436270625680003871695360297605388504009668882044127394410936672873452336482849543204966121498383429463451794634709730030243646765066436423151917186005085024068605658346443341547188656244090527969580599292907396797227451002352246989206237870347123753186556323741876327949627936042711406145133970024333780137948297703920688114504196092691518584901497909993343881846768087626275285971189585485590076915120942100899772527300549510186879836118202769166144142846617972699019823326606598491668451703280768533188151267768130375955278366017677959488837079173316573227329929811807259215399152226697576364202717336211655384098752908416273270545712478964254132714457849630674225819841233649938031553835755144261225032609779258629869783899781113131504959186616856840283365976379730728491347916699748756989908546660947099857730947698753726246152004025019590137595433998631664665462788077845037215082427807972333435504689501401616408048934213568602678701325537339763319712367266662498858190414826325093770540838241586596277722548581209793953481994317703032750769645763380271485333751478727232935303965404078284129855146890419251205986238826013139968887535423028343511258491974110480191432009950098059315706031528883305467310370241161857633745381668221467561956158603828746519801309874012621081681840934547175786203848504358698553344233816746038347995201552886628352236040440781952238956700233689065472733625823001844362705626438890302169345963423257126959289732186676772885358630138510229362971825396862447560161588214082539668780013497816480924355539156913631209196541334535522447352362371945151195870160775005927093029857292851544464842337077105605490759576946485100286911111012938512712456999203023805807829251503156282730675169333443001340884641180865278261277837268537856880831951046002808374488192479741347400088138607433868790337741742469666272003977791387237469774666179616371518213965080982127837851063341999386227537862228977070674085363886324950845300022141225631606625065160585018114034692299396647760109838496164648573642468979090632531195872862960973697439403883627231439445386133856667611248374826470676919496087125406971756629603801372597417320004778212097675864489440647642468161701718260047134041700347466289100971889672668346585735779175878512010579255491866437443262979223500947303432389183228333550771893486353318594919938526116371567052637242862691202999412593665926899135512381299662683562394077093700664474781222488763435853207310601506341429229069142373911009645474890866235583554060718257492410874573168477890336659365165477245542106220066708708997112651379856562108813585818257709260227092195968339273713477793853371037319008037593926345600053866710282523597968532347832533849368228847455708654893704793763007254791931211918326431713288190588282583247466169297562732479935161904178401631949903653086650220750779915943266242993088050028835888243890430172812506043447894980836239994812378246468294984905601939699892666712290254966689297156223593650828998052820164258470168345288185186633421998085216264730686707230287259886970828288098415939077802480010459822780002709631691380899363985321261934858607227092644590829814563420152401157286894288007745556035607402450198093920212814271516198913638932640451309166039191684929375649723559649173408776237442649413443127193132334210324837467371499114968910255953092915794870169361734773656555034133061805311109528130504141838646816687542711192414654139797689970997054221050442695960134273664215592530757131909419182865105878293105810785756814270144922400326030511362757358743700881047983754366058604150083647176745655647008327801898697374608360275223670537646766129944257669524981431156133744307364502872304316276636964440475970272729536223919939752254869238324756271132718021059594366309998041369672700846821957331275215814790157248666037784419172725467066105528530281776569036087302985548160484493526037445346686533517346849831864663661375430784279463478385628928505218190838094518381264550669225691294218821648917173329411170660759004990705622306159357691934278039956112159230756285918259609711152222106667320961814781365684510436108059308924389708834589277112820376079282457101023354016419411687670238710285897582671861553517685205045717439236780983493695087029793214776555213684564308936175473716330381491041487934264395679270222347346473093987226035109086538464541278613849066404566580433585314782225338694848626325290650177450579390227627989862484887381714677502675686985504913771290510665411931337103644803307122497953804477574472004494249415343621551655507255512767786366166700279459883450912066004305991440929573591876338824905025320023570853902062462152743048577651960843591504295370073688269862251928379993258158178679686788161987460107082737198737976647592996883199716840982909950715382327752121346891864260734017206792270433314746506822810279999926192275509091829392890024046983814645771688569499564359158138085710076308394783089048956772701843275125140002057830127567442230435119728274263679765914878961371950792594421089813390836508094820575730778432374420605713496583661747961047004312636476414627099320362498833649285785407576660402085516132434298634863343931581151091765689600209048741938654060119831214207938155507556552058731684569347005914197930610006368921908388699333537234911079978791107707791998079740280772154369789310057633287873487831919514422549544161007148019195667141011762088136652350523091259245835681233076826638049340989340222941233986887295253943626627070310776091929915692981495868344715825155092803017440597557636794576655369550796622043856995625451007500726917715824064079153317588550118054636863977530030983614486978446078264829397167814758969199451930283742339895125523608187812094942350319790530213299550502800136015447807820623280774814840972062417994835839440980755343036460280384026054493515908646937612447871550248207850719450807026032737268292788259225891997254994599834258113786918596685475973967609095808116135664628845956536663495061828749334786222566347546086057595555625631736594778750503748659735333840644017840454419646477572715568030498660183538756951031585611634185407081417426610622669196915199806361096594082900827110866596788898600335015656566429477996190866523845216951096857459761388968474428809464432123017632417984016345567765628627539061637453872209662226453782600210740573535531470082269099864342170260459023709680851841265082365720894504029099137956583149403020648014929409520858723162594342000956428355272695907068946474582220895064023468692460069906986936065463962701716103122515934616179259356520892959846702997770342949252573966462776885169662381117793332598409474418855314067242621755356697844452097190639134798734178770755879480462970989767399540738314770589450048716898090848317929455289095705613919383474908729806843269356339534929851644643497329607992641322069303693725369083301575261471114108309051804515931883364010913716350729940840794639279050336388160664250550948317277079013928379692044101078811832689180024536696936938534496007232532291630152068735161288722330663357320595737376201354898855917800370967672655461155649028420044200899135705773927788645558047909528740476513502440542166865797548464764021652384466464206221781263416711429472313005794588390530405704121146890885644363070252817569833450943903075854575826357668064065354509852825498392009514286376031502307341137402040774018864595302835989465035475805269838004075680937276014968955092793391306004054868493042606341005076481204440328131468806781949385322210704568255704939089558234551293931862032866564614019632346176322842257297562397338293196283444423315276417211869182543405800705601920146530447855750518367413492688848598232739592144215914997228577415580434031774872172670401663994626089797033391882856346883644569041399384648756888370678222499528697663057566586293903268088387408686651883645897438311267260412775910819089955383137200910402385074490368249590966094811442106002129413163466676837927531997047720743089353290177489539351338542007497014685385516933131331907336905320557798541313012902372008464057284259521092722198136920377473488573687346330464562321122834283878334290679777200485798367403160094792381974995876070464907125132306339640854945697487265075813645778074903884451473846111671053062776982559712640370812396129232711676418445963432365557482707614248964441195931164319379494525950200407933048735599107417568388371945572140309414831193611235412735843633043800369014905316453466435294704757702546418378851024190420780122735397901016836454110028302756206546117738334244714668810881528488414036364053208217154500531304404018033877419553874708880076131033649284287822294928778639119366629170843447305060729686302331413313128941389107432869229349940803885488906247788126459023100090862183456717924308644619330745678828973746742570002920730889899568967952720319015122165649112704782141961300900202452234060901172034270326331098432876337567939775759389981819965551054544098045803184909762609834430212278699401921308150368926837806585250447250016484629622614584478358177113833198162899507511952850902500175468389353564578778819345280321725826686115871400362779679568019366239974732136658440872899978898981025340596050864106109888264057713210059416282284889130163978204727384870711947927566063781130971290920346827455492083871778571669032679826050792372473364513174545184474594942901801573452448445621487218198555567759475046264222630870204642093388946362470588834771546413275667255428360357699301935889314024821267203411182023120012425874875963672071644631304950067889141054778947771900197388155133929826941880540150401483997524288731686439721613467518828638952943029777906799977797391423984989800161186913829409033041918916584380123052290584563166875571280680654864653203522633444591552058218171876683959922985292304352370021642300076719402919279947281711161247335996772650442138606872648020154370661293608830586140060204043299134694655951371755641881999497240813461761898768654791109998900729707842028276953314215310567934617888427389274251757212622903513641033767828711280762293468725480917309297522510649329120433724078607035003879991885048372159418168776437269959712356362020925900995197702546324205182832021544047019581056522212954591574432086043477798980023158316949400609616868482960367157416511369447550843403640864778279029982375225483616315739725136612793513979224049846716062279432430041528723301470591630362177867046628581260357229801135369628752238975657835014167888884339137554928341438690001175661596186276993448537180815688218817443819178093518391999346483299324775121834499485743348046490230209902114126661370010146667018473823608411647808495648971967929671945307904085786872408162435426038665940682689172053554719275741683540364546341659199636671334632802615920066565912716820756996040446550563464500918216089952110484687892911884197700807525382013097984009739020456388118329216928231549098320397238137954166836474049582260162616487919036580138651115893769758207235092271328830592095540864123900472009882692080893827427464721995418180956170090113373113230989642787380697727136191895874056848605961376989678692461906834785081148412235250449061294538238935752171214857361182434979049080076755591217374110399065038114594006234860417286761305578312819430724960860195815933061986292502742263650362939828342517406801053546255130947839740066081863323309959823837568692479343023893413391793124881040492744154042554393396403808225739791737706312125007281135196738808186940074708376545765497476675118424743055801299386010321559419161313827357284311520108624897830155648132917822964696040872992697656909328727537364026102731576767734255577225191022586853108472189436568550044102320051069086792429999995506253524092801284776449413660114470964743194246448065224630908515681395108112162656803452124696765599118408558744589400873815841093336785407960438492728841684269930844003475932053082690934128093857933968315563972095841212230521574825018908238068664304285780399659581543499077789414374428858782563418984511453338031035653956310366209368511598713456384560013653182990893894816595381335341761132839510224620580510181437334431078703794075523737450985909274774779550036958854935853159670133844487519063198703379156392637345579744163875216078247778999789579331351665252965768731955031091809473766897727559911272236951256039159065548915067319413925750434851047988816287444810975161292187069668979126187521300064786919671361285820521775737594966923325523161780012300786162330387264205725729746825278876002257133116424680020550624658557214095477197953958553690483415997677504507847422177778042678386706022838795824415597470123056170786369807262092279496614012649422358274032724957285857079834934718126052632794769171831757918974672836890914131886532704065706750357139671171693859692013993332491195866540809380622013150294565794786640617950065330352872629612788735578337570516178772887179196367393722012312378236672627801310377386502133494628601486676733187018357902507388754187591772542193087916655729493732397582248097510508452459054838246617374495715909120470389421588389781687876308872953424612009160560507007465580983202191933414857652109561505418541064698892711997574875899663382249339485146980515900606763246562698928415551303293784479755803867819977821108148255687817465422435191414429141725690509253363460608497088032202661814911079669337590478990442721089314554259941589622932617506288201959456598192490781339972932637631812356006911328363825130334267090705467461996553408686298067714290305944447417239781583706297110970706020135839334895240578406435812380005881878764784105837997831654167579794721982455945905419215777808522417826737129330790063399835191570071185761992880065808713195420652323905527952929802291299765296025645996123014368420542919540096601089645910300400451791554370823959860369903351521280093995834351348752435218562837824972892782996425807949073673766794306589367397058139870880721182182459152200178451532326239114427378634436645488581247551364846922638567275511586970625355484381524577810624524854128341668223340753672280713860349584658119269830626572741697164121964827611970760298297532913629664873051287219514522073251106916460420783770453502199455593453297887163541108462685353543425778859521464869749894142734725740679821548594903699504312928045824148369960795804279816220545799685507570833482170448830087143829695184756985571594496881350631805275575814644042347918357321645848694078385895420601285183716539081071374281540114699699037863374031110377905778856841209705482251064220047361272658276893642256848192595139992275993689341413374992599198308166621443010286881669588157370654193187744406886133312167293281235287967109966543270634708608097875653915509086273810073104608852557027989090539499365029592596195998131405555181511476721252365490066865696198537937623804342707359504684425754230707771952621433303674365367263815698730991700052638831017970934550625632149540067275532379564527834591995799745187223936232653891938787999096123681366106639468496726946327326727081696381211403838590512980991659578466005217682758017071701732123728917100669360085434638790359010607512243493571711508946929487314877873768771866068372229314238287035192238301786453422258692785440662031799046669195631730191904821686726148938667616892272008286715839500245816190653707701794488829820871573209539513399256498367820567224835083087383218929219442069126390818194578819949911666356420575170399582717732156419906236521307605795072767474523224417880459780427908952815592132016107995319607146951825083042352468576649423750728241533468451355115043952594661692396929010502766165517993605381383720306140789197441758246857220487731019125513863525183536287308686847461358369496445160056147779179317150123884392367738563307754595234427494492921448735020669992281897390891186835520869678575499319721464251236649441158055098452355167113387816103283380995387489846027933949946060510424805444472824494988675884835155723428417678716386680488002575868859105647978003042089412703743912802071355710395881482219053390941249371925538510689482981579068652868916127378585467456222753093650835282889047286914689632209348379739967349168177240085152919145053119521066410202546095216784585957644370535800128030523727750575432639552195546332523486344360153448048823807522616451220492608271229368036907381369023545756849684647476202181753510637661004156985588864753085151796332163886636210694483693680728005363842906106285805728168033728798939768370668168923639808403196485950099544097199750966044777135554721842949265151190326031305568858886048532767712710183687019892867146225806388055753112728996873434341374216537554853282975059546680812317025927292965277219467879590120045174264976594388079257421174638214803722595984943415596690490659405848944154522991568239631418214151980662753255260171059841921706407691351196108521538188319544592738579320157456596641571884698454360977265756657234347984688949781206815930704633182617175807267018168615134469456943811118419386577260686815758911512846464528239595657662386116877450114635843285061800696602744380670640382143992640347453826381158941943863446456257907950040265717680465318251155691992675785878800109652180775701888099563395078547235817914654071470625273669462861266565803300058557041766591483188248103399903683094195340901226224937117364743416887476899448314381192100779624112407498825663788238906392485306533378409572213306681945537625111004704490941852510237838710502494212435699005884050328010715314005003105962487772366827446416206484162943469976539977193433576197804096470784293346717275475836191760030686128409785550405609994304865636340904633238462579446333131154058681193143312997958698279839033260541051256987648106145723039928461907245791332422939738551385357356461328059312735608548639589556122242885775308713847949927055006427205057685819693586504946340089035879755187021374563433327088381719586785206798516532943990932237337440385909594908434777010847108270022167342523362714442212258766688604416611284936815598398965628663712932382129225666170678089786655472717271325185398327385632451830402708330999260327606894951864385519259400106357306971162514048382687510893995950820177752235391097650004458517307256933722153564807055530839909722503005204639262030874424271760757499451327546117720284733845335416239881131298361543745784842379510866784780099794834080796941421318034976625569184365003196690118985675124585182627500698260877059139043724533931068677952382816420706196086135003856967288623752180469457407869099633771828910983069214857717319303929663138714748569617489737877960246058361850853754841404742072073385614808663127766701756543349082327769238902384816739436038141308387705028913642440164244122632411746754872961631671858592592100822598521226628951121549620005079109867143456889557427242407129353633868997663677870265408664883720013092692312463189886659364528809949889641870907029867270014403428925353042576253022555736057976965673896453853717831713495888058324093939124081354559237375132543317888827914986872816845836442607900282584206363449109884267945091315539977070452842782334602620209354688793052995522157834422302713121019134064454787501975332896957050253204044438075040305693404834962191107707308155283264425697342278211203476278940993947644226928362802784835456338088886724076416273112582495808725165769202100690995198158000884736032190907840147760587313362871032699094937965239932339900059584257197488769116556398201007861260342498566235368629453252221237184854461057407464926105661225576627775597796481039563802521814074992679772190348011424909033648367003619014217570377752157578455149165499987887236307177702995622230044675320366719513797052192919208097236928427969668062133676622288190789260867634675936632859662574876682618008310666329732162310909677343501130389031818797164699099432595537369767384266870835092629233837039063850505242372286249468334431515241595167526281864987131761507394828141232464331264758242735912208919704939940406032288988513868513759744943962998818922427721836521666755216819789580502311001346826077559973801062044685247113506382966604603401259789605445055630364316531624548890808394507027710985666133678761743001940109863290317867406277737263322199726442338643743806027656062398553071884549534034218680217726372619390547072817765396959565737170384401464666998934113463997948158820459021162830865701244904198246185893951315455185965617494393037385490624288651115653878367368826059130601397197759845171754467503212193309111229647511587253586274167735350366485584673048119672173651677308683436836918828235738872180774271469715891685165142671885444804291573432865946786557302724277855241645286619464342722290103877866970587835862000212250075357091308510989696297489749407715138668924681151539614009234658987818662727753746414894812881440162704694869720801896806824868677538769904503469472869538339503785055120794768447539427987294943893275436750902221296963920813294140369558991790367107405246303366461929354738412638031182093069414583128462954798725278437758600041432762320308877759244120835705904933256160045039318058020555735015254296849575954670558267183907262825628944944210549656739478251597316786029511280175549458218053980520482148794244469932423255639796328275573352325674769144101956835873446503964389321451547351815608929988805842315160574482218683983219391289691721471937622568830006099980920109664398799579442606683005443347437648942947835827892535307541209782289582011275641820004853070896356904783203543108121786877530128884141277458565997841151234257344875384647234484143480985544273585640168069299249866937953282528702111394878357132142454155138552512108945420221436232455598843350964060047218616463670214731953662058543372461632992406930680976370993641536368565228723626537686961976483237637508479451619904196523922404278318451378593352137364402504599099755596930935527323711490092648371185132850986220473726915344076011824691664351553333890520719457997206044090512833966271840935261690518467387493046518806466121732277727350519988753277881577169468981411287776963418254770770529490511153168031640550607049628003108982090467756545967632264967595890410481052651523112712034186352058647773035240650719230760632079549082792204290435206557210621288442200219136510228006396180695596418722149794642887675768700831796123798287762140545486708613829943656897909826934564154344583172539701848795572400604822317141928749307705768473184677442326567532155622468197219698441103141751846556452053249025641160741856337042391182492880475806841873723173425397255088419957671728471000089290400064960385595521177827904679880792217302383912180072964601523066253793321227961886236304861859820104073074046582223502995567375117111724032887557242912213102147645899984368345757560644477138041338919354317655087301425283919215347686438639336413833832688050778104984116129002261931289362173570921568013981046236687981667696940290509178832789200025222495454523728806807814741626679179084524011126925578626954863324128085521544116871961832430812214792611181311461788774020662568656979245111736243501159262109959213608945007578752021976346331770019642315698212704706687918312977407028433076623269482428055657652907647553389427678833248267692056056646546249183138079012212086276569001000178866010494980149649475877531718241520139276396666798873033003499886580140421292262044201999321223033126146878270369108516357145231628624618544407834287968697518074521707707584226562712557704594443735434684383013063446930908664432210681391992738478429853528024444765594730708179292926565206825828861576244022701054041473092031119838816313175211551424021625301843008611459795257315799382154086222936374234308034848167803361475113268444308971150412838164723598103960843283779658875358447898894411339390187726141023883521765797593718267182623794075349037047949831127925348506232508728805986629525647992147473909630692764643904634955289396739968635497128840490419824244932872361804573504576593114374648732964160846251948334972448241095934126180300562018331691310665197241147748907034074528877357556737075009301487568536855496980548743994901393103560846014983622135475647051273831807020909999388095754495517995856723090795098751803825926077935435231517334114517375190733247582532911927527389986449783193145576217382567275554462734958246570455774788094856971443882523562795308332978082272308455892814672890383880088494336579081558745736981196052462540602228824131487386314065005704167531059276519671803633701746022276307651642745867556821879003564458689328424324325750309009951994515603777978179816741141152299544646050616775490382956297069799100828327155062142611441146477165222694098077404337025601062104632081712489837888037925458799345933319628049502650092394864864596647354860058181768275531250668571471950621138397706823705080948905940186497605536055228281354679382662802766979365577743264985269272612737213167859983274336732448340351686316432981832209488661984413744515365284882864015708561313752505017061214556060680669753103318761828854522583516726679926117992999281193844890360180955537690178317478014624733528555947822149252908684193227699887353336531976349425250465396611730799596498465751468142382223688716072111473295344109369929632030168061563718933503276060445389304377226495871102470665538699906924714048308526998441768880658013312635678040429710711352693079867820691994518677207234767600484488146705270644231056918136113219763369464772872450974510189825919092484460739841823251918052387628978657318301892027585120654390272446212074914176310712465590953482898976241139920230224217144700751658676303957142336144066278855334561817397715697020784318681311344874823473420399397631917347670699169551660765182965224193551997289586512248226476396381635434271645167198491858847194296228396763920128697769180464488557572494579623887964837918861503741961754216616590051509989870754315769003549228779114778842474650799920973517638448902582687505971859387811624764378575010486293205437357043145618730181390957397871931124183918624843941668269269448812605438612626379025938459216563634487171539628315043820688800012539624267332441381612784510821033453260730477067938431998443438065652969164877523072845963292927402438231467805837493867934850175212286376989311289144496963744814817450229392778865833491516910001290118254856370246141335106964917515863765403528113204893877285896079893925292205472770670881784299510838702132822814072818553635329856368486103997145124412660266690486342815144690282037374971292198149057642661944129040165365771562589629360179185727232599883932424436150482028488522695940845353463190331627453564217134864257607026554921616993285497918296643189161916761008999474928069989354839544943534250257658893638683955852208242325732319037412974773349137848098107435207311342323947319723384646110383517625170005965840773449321742178922487390629380740133414488574306086959169615501407336840006823666906889762831892225600068624739700755483452073271955625840185136560532282276066181497462176582944162405326851325932194686847535139526912366209256824070117058479516423685889180673581792537732906937939414894696890030033629217334406382668591629898143764290289935901014677696654342313240959932506075570894499924789228900009081631820415860093428428271143989702747845486694785592161733110590096646234876046797711662968043189787334773875690890328686770092312088320062252020963486113845943281591921272314756778653989639824198073368540835282169359760824532341655116608145336480972116048328712015122971647094732816308047622636690905852850297353947963988759718897431097016064239763087424823575916666899871203228644172692632030544173311122984599570555797392950679363679589366818173338172446404673628666832505014619642545197857490487038661878289479221406267955973899280314155341972803474833650434620082682528477565963865490127863816523378910493452250485742882466222039470949131984998664321700968715052142957953678226345461907444242607750613535530871283287620026086917587506068507928608671405408821424025746926042587903067701281965622450889613843726065570799431240158414724633636254707503921979622669383205273087312010043179856805676816003593933453716248232532862268851865594816499474333351940841628422703778893245103621108360481139714099972961728776397946842256934688195227026068735590971925295770642492563976097789915105640211050464596376165743503082135526492178024860978808706153376204225236204265893979193790173550408471893226550494648431735765604255094436214111712379403593930957897252182640797428949492269723714564311205792080743874208410814792043995206015556306167746831922842804668152591695594418940030174912511822674017313354446507699482057168726464757245831560945999567332365533201706752679262671325476984294889466975118507017237767968864411894428486339213420636701642940573706035829790928458939664386917866025391557377345770627087598798851007030681916027769669940707821921920912895057499094390478528895638907662654458495995001579190843103342368855472087678901394814995930141435907427063364644151312749130286319463012102159088850030647132582641085660882740344014369936066373173552959257717248417813296366533398354761924156017274195123871777594075611888546343469038089236420637707860209904197752639492271739220319313527092588523154438885721465408670543637206468711425839777728155983270682397057653965833064725156824016423198488623315017471083270362568711786419302568403478964337516362534519241192793716090284263039314369224224270033495026247033660128783962273302353863054567070378660824416417163963452760986783868588923389501101924114694140702204465824661698932560555430843474578851802734103520028501919849249081000333446469463494169512100085305925509961975918353512389257623649074428663527727756898376152843934943239476151820599193772987053626020039307308580178049153747085930203556793334904778482297940069769634465372187634806302205828798504570949910038603701678562857548755690239752612186761544755951879345189764225332490927781711839455058708204854046658869718297333438856635250704693092119462776112666208717656769145032308370710971351655578123145048552877061351557977895573001467620809409389682624710172701201750179067934076835552020360463445937827095202134364843785246170020430146368405468527557324307905931574805381899484231587156709989482222230337763112632903802944425079673138461526221354201507441418058292475383974221760121217700809690151272662893951701288562993538432181985463530502854120625324528676784901543192015766544389558902443582366183963600716492634785760376275118211205274056442669372550358969724921294750565880733853047229524246997962962627228765520046281110014677627203721233869588190792288371224190435464216072669632693299035290231232378927982289688268284034388350740322414956884109862969923344019723456446177307465622103149842705269603114021951173199725344692592696148142733693964387078405161514821347023415322109198174297431022855418809456612456500107960551982813480115296272027553906608693735838793375577473365863850208823780891305183402603594841823788354408627389952622752908344415480434672349256829187811022474130720828522019476066273052498545837626838935401076397994335314324296058496996445153289177593738685750470460659686434638349398265766566956259548632355488894519723294456739444656100178547558762102629851650382698195049841959964236242024772160617217720541626253100485493103843165139740073821447204322464451825422821353726485572691651386013182351310535498450948626122925162000725188466553985881749970283785496539731632901440434758403440348741719114146196219235549286362968249669841893761038198887669437866217685378138035385987953543539911732967411821555933436036855403509049386969893485337482820100862692102531814596644967201031400404881585152231733091427645089903372409362672795379916565310118900502994448247802142209108976794290947860707373945842725836908979589025865476629883503810869026091147669393497722796784908553934249925693225880839267345282920770845514148871915338509690410804565799651152710030763151147935061858610576666916409387902876608611394764404912251652949099498705646872607931879554909591882688740046405430942575050706376542491650389610025695665727466613538744222268079532250854670775770540939200281936489789556582968461359354487800609765976008376012699962459693956195898276520755284230239902720451867504831203869651381654190227146768935838304991390255665940505448895400395341200703806077495588712698915257634488117456891667391425426775285202222743998571464230935892459384030765388094624995893949015470180081411999886103783528133217356702868368311883577605137493962145936652928750276426425602997888706424139062021426530995370978283836605944579610077948038216157410262866006341644336811175200880237986292139063062836032920553976940667050857621659717068690387661766877242168762734866304897633422161648279914591956000547949423565733703720864154786918851513823687672947619813961455902273506896424820329845758570108737352575386270843383605157414184919715640254475108508725030037597617915744348686696676236288797805463713426090766735492666748150026730273345409727360968089239115117700010756027977290976159137052135650356802016304050988942465297819853614445613008485404021408440336519791741703249617674055073785090656843881498226561962122827223357956747081928914457771236896799493341224389295163606358410834421714280199573306217575598431661748861766358871086284955418295237047298128317178861882427487519348238074862949802368759668993243718708367594728699459560217265619702876546976142017585077489201347513128703475968652332068205035843027518281829245555871892210789028391033568773229710434703789528107679460282979604081302328615238650538354352317429524462877664544619709262935119174869977959005293298304737674397690289144305526357025159589776149210785100320424336282506058349531496200351209055270731079070450863838313180107128940629287730914591966913818696541451943338086938187120239810479290057128536500051888293470743778542213824367658388937793098531474744191088961759683357780110888452639316654097491719607730164913336853373378748718205700865913525409671756738807942014551975944699930447349469667259793015587968848589469008182513362935263919263611055772522344692662995101205979252135247489304773646380657570903237687489825763808222477658682473488203103118655005014676631933424641998205644528257206100533740563278542072905235051427382933977043244509837607161847287833920936425753259279524417119783026509909089083153443633193503459058199922728277139483633651680764609364013820593973283419414190213709609713047117213034674968519128281431827403757335504528963266191073643475057465993681266373118597488324283467692153158484059879658372121656726171167143167370597725744784220253444537165810111778548572022652643790097691737834277441595176053351238467410969774944040297366068149435541353350552432103745960238519116686647315119016477838855067164445400064020730562388272553104968330977148015751715115897365239276734435364089169686706613516105215659833453405333882840148894301427348417560076862560465911252128556250374406452778775677188006264942907510087042658128872522148507516512953462003808563211691075115393644089607723543092780956001727148909911724566017975413973944775154605157033708409871276266390291762726944736191951388981039707426069355149275957505152591314418692042162332997626515777172849859743786858879486395931972441096029481393615353888496227025959677994225951560247974526707701647382057651146754318960775811208114715621179539356937006799090131809600556051574810453796493193707389773818106759143616930258921076295430041140707992961064450336370113470312804209539205325069270511433669558660581316418107192559104957264381688538768548757346636851028343673992297942099175240741231078268607004880825151651388945054824280735933869853778287710305316654773723568145663828671587190546960995825042448581457311456123004265638732468984641828348137691251944488670531746815738843947845873445902041459782218053278052177425044179107746404249402680138119103182180441470326198538189448967291124685087433823612071367157031110035230781663579867868944665675801218811093243146323952441385665070010445286161249125428444373589237375389417575543392991832004787336919463387147058022304037755803605427612490004180748494908301697009642902912211058669667037748261836408848388926484335197165166813180503055848067181156300101715933826546057252250791985625258756007193780937831832613525237461887352626910792807371851168428055697646131003644623700370782941125241687303958805198275800034766763608795060007891348496871094134651517308731609708266920523422138575008259361184254608977305283282506358974674554558834884984280408519710899591308547224360729222916452298384398653307005234937231908808879336398659252313678085712711476851073685121605270192947415222847280669464386816269999763611584402250127420304183843034121171553313124329519157961551213195790807749593634404187256276377314393685488066648560297746021713290052423839901149421962439259306716757779295646371153780330843090994671226253542370355700124976658283556725958866490274842861239212909149491714814392281092069623566723606729925908650300537044599342185553954472639928449167131265849794900774410553495260234250935001100802098181906853013674770694945294935667934231049692433636505224139342214823369077772640570034844358569637125205099034973200062493876268107636856123959095475295644567599351188311567771527151472150220871773463589123895907638754582008479481307986304485968953711753072805525358236976541225409297662609726831620328028858082255959475610463402880414540032798691903426926639199444823587952432725945792682581889556703278441787941673280158953539382762602554880246800414928211369436639007686515136220857525814715631494735133358092154259532173640427516621969395817280301618243121498695769378989413143807050558825400737160233959836843894846881855521138840875652837021428831541223198937455942307769488135331252515001155256138365823963910566573190095117853043321682348854305185374081686805144069375938963880025265707955629260063563926965135473291619603767312442579087623772982490892770683660003206247307632474192287238927780254723685074049298183847210502825201040850112557760582309993253133872909126464794630454566672635626187210273001486703794601084060174196862503898233755423564841087131750731249932332755195501935736924025075340626087676089775608541306076783425362937412743712955645745325254182808896911132945402125909423325382406130412081243495046255629543727456023765194776099635775240472528836850089293013118191891113511329736034165464856124001554726445047346009222454360970081626889046882150262126727572232137938448249480889822234829814655437958941957949724316809305115121266132856993325197933440109648522944790439233139895392687172726599583444189023882143905069358499082881953602550170673761435695711745750853197294640478629279511306068794545741431868540058582648417431541118232617770755478509306335471902240676281261922758332590040450227314556385280599927977220806639863331720556769670882509671859606735605391289004368598241084047971422754869547866031424495177233067571539279454702663813041742870893522614216172689099978237160102135301482280526942728711524154857213236758207546467288838336971059591940582681422388540540208281568611655870755131284008410329920584807426676113216123564378452315561539500270947143777727009827569106183955692040127430691074447887958824273127098537056358118619427464212872769389293178697985732398192951266898294738739233988001525094560643480556171430198670902998322392778740881203203585817820020467604731819033038819037727470811044836784753923976346098555841184034541412005137053392645631349504433315974958992107686684724132963608607394325409494402732233608975314809635409806290153981943751206028385197080970779922589400789839062456328941416373469885735035646412676075164407391085018010932069760188224679287647305805887736535004811312354287477896845894554607254038358394399329646017444568856340834398773562720878116819907293439100221955120895225425698362174249281539727910929446736479297527948345925729949239528821725798149749259684398870403978765701676806014446661476514995466552025331049068734160433688984947897290464111807564030385994924571435808263980909771799473575398605005361446624622346436749026193433208690971867147475328434524586209948402392354818676312613539575312362093268321611519530215396017022912013329764672139050707849927264945871320476829755649650086498570470072209740885967890849774266971793091203814779895033256333614046746418238192181624498882307033311032624358722293420754912357271924788152586212364632730261899803598266362133315432340539519736544091272220831495599252839073161477667751954995464851295283401539074183418720737302912963439388861211124202785249859793571051906403018138872301351016698028092692480259655616753305237055126074628605975998388706786244314721661486541451488084955221112282207582929470947364034557610276117194583869616340710649204503975890781458332879860347340705787146232187628042850957966467933588308189836874137613995368160815246277957132696434817222211512778195454455204661704935745810846363966324899075651948893395460380070313528061711122393703963936781884781920063345929172641016323866953267269778987671258369851388041879808070198243528460185203016385551012348808552202385609015918375050088799869972194283539048482653073261829829814273544717970762996813539880856637623629714316602499305908171677748334746925046786447172298376235847145921835415807884091842760567058554274787089081437026580326206406158577557493842707945358079196228780524966846318442982698036671261998942559062216236090040640520991832083851027486863314199813136972694565111855755064523599783802073477204449837153883986159828056672870271102342423995457612378754929416863541398935257856369707252904368421044391041127896969834676836329397785077908898436002323669799144298433575659574590530918502854325842033067504829051007036182257370079882260023134002459047048021897261529679645009346869695232093604854916192481503417109382179771709505948305140220548420636703146341966527864712343693815790598260937801587666822022171107058286906384430621969986940042821806358674768594777780364035819473275892618552018402873611516000390072088338384242932181895156788379283214746377256428540825818590005248727033414156260999652748720377267244505673736556626366961710236447315059149882710075489240539611653372382439591535740443129684653578527166808619142383304928179802543415723828576205647947958198415590868050259679637261031547311162793928866748024110509395733434167643716425978257800346468675034967533151750203937896542303397565747170536225608937218098911447596303464872559686886189145942331452478519286867241411555406098603815525754249562884723333392201459116947909806994302784007958810357139674536220556050811851835059558728867321275443884629214387309252493394506018454532729732665694829335837437723829066544259328695947820792443667947279248277120298940768110871490507637750363282880355174964549033468538856290481828021018557249100744133778130556914741903907194359032500184015362650317121757143945952246545449772225063992804487151616069816582642256290357805742584235706140361724086721051516477878959168321842300486551403418784667882858077781517897474335352934087356212483701715155713579531991549044778664212144248432859833542941669072246624585844561116507359805217500813356576897598969105654437807367216061881531690111717815719356406642294970750323742858254102380170373538875304068438811094936817258390577075250991164026783554398650114598193488380456556810243785239330693242798642889201915141251909058615877805941937287149181140288594784057274442958435465356940964403717329208707665194003178811566904051931233652705330698050331490125787276203902365316291721588788833302923282563739043183515160195891187690257158610958644220935865083297353885875179477652190117957362305279529264867085730973448496052833191812626037536551190497189714116758335438828555268244550593235293575811202532667086799202442971897742957752207999045515215456718482308186293929094656656912789736349856267604927764273762376496262424849393706882939625784636510813298862561172481311694730080368360534061730924359710340179907534383398344902825309570496276403720697727531731666430457961408965919572799497168866023172351061557135906163822406864163692524326805268122256902155463539194799089687295387723184069266564397908056695214915272274126627816651164078844436578739706817753249041870088434214245795244281816562960025829280638254710831975598178894538853194570352216947083972805684382489076846913288252253317367472046199583923093062254609204295968100207933390502863130851047324556359500728767416191018095631342662206428040937513090807682446110055841525351965262703982823368164377675863429756130007389555421491778916063620093594683702003327850855610602553590213703513608585154011075678170118400980652482381675508645442390978245006464019940579924422250273868154689057365790355814420957466743167791486799611632444167343517218944959687361909517663007908688112240351889763856049123434328542220564568267682035987374195866809076827584782836246240421307094733151023478940493144264208109977261861259090418283983085928007482072944002908780624711591234243517822312656697878503488796473160254053175971323612063050970974845519263556749214594232465421260940778616303746546501222415909163909656571589562981282724654371795640753198726171193742956792222395564700010344474217086090195544600192218207422023748873975256882150061776962933931561932208841949221659461370908955951365012886050218335861640971533953778878699916597265133276820973136209259932957514139034948385808999643875479170981978086168663636827831759356418123380181744056096989014717887543238172464331363862524353238682459963257622408717895888037379479448856134251183332710785418096367809344388645423535139969445642994856250024070937886531591287610549305513169443844107103608401311784279206653951346256632687094987378873400571680311435099705395787407847372064195109527156810246745852562576862067311817736843879045830530187334180029432338520631707736816428774974693682030614362726726624786097496872643942278310927144382267610327437529097585040846119497413870410443006637633598349298620081240423906165098627377138696187304504809470567939794191545011503514150102511488518979164643338690341688978631744157512920053594600674664957482076025380770817457316582751817780919989606968269875185720665817415237397941581613519711568866368619161378091075105807971485027541727330428220030677679244302844341780756768580573647554068254965243402032058163512958420309368308604993220170804060296509438156352771761772215160259768978714756000731611127217694602231753223215521074209731410814188341014391342972442430714473728061930180751734245365908297922245089623196285470357283130179892698981042418841335356480653054980006173642212980191992300301528846117132900016701063824631392569096145643376482109445825193922725678747992414207819541769392881122400589231562961761400981697316375241660881339985368663563448961885975127381081936222756733636524488055750249344900724205861388530644352875806943146630185515291785660119769272767083517352056830663845915358728190881123614601207446979178045071048961215560738914943645462196489829853658864054078862851702759950625246550787290864985000950534260444983115767483916399285120716008864110053057244438365511623755261735305396014888713439118973371687153453376583991315453923348057210962981713506091615574202832020422092917751071978962369411610874069865678441252208340294407448154537475267906607771384831227096646170056436831549014588008342279655812737198388914935693633770104900001735892169900450882362226030865220768934530494925242300049397889275107570477550700607955814106375773655750024083434381777316815713398968449444954322488867815351153329027796630877378941039302592629796954617392091499591523219056209565211002861478083047497732398952839608048783559526189842150914085288217032456667980116432751621962534452406920171961430967122830357843237284194986204008532501107197777606386775374670069732955000382044567477680049705543484797435284556666520107179196811956094025151470263116896075311591320723706532942073643005012261299659589680585635751615311164633821628142092104338808703743423553583669485350999529412774190724911314313221960494618002513159380324283895274341062313101029748055260574537654484644994131303480099614858672532763184634032342189362431102293327895580752016248952673340653041982868188911800415588260222036737885607363512974375470292118197529143817579846980615593676894041039216632059954705777171391631427469423148123250590334188652299206985592774576454448937939989351585368284000799732052589417462723121270778006543420656946915650513591779818052974273542066893019064624185124415407519073641455566340975150136027519788535998300477138649923393778913341356392270575408542723402000099829617037514283648970274659929425923697507272100384624197347212324078408144661136410652790163290085377582480605943668075224238376847988609895225985675029790273837362226205232242364834417418274267044574697269937016045693265856405054507966462124543234020534045365157763982480598470873560463022968082065502393290910998692071152484476806205414033178986120972319492513931221112971439264952991028464348359363672679337681072371084366998435311926574987381620961230971084736550143667939577264484888310050787819380070486501999495143972935057468538387642280633717775655178582262406815013950154036659036224643982560333709621614512824190017093321835085943096090182304473924245370666293866995627393007736808660117231735863416810241938725137915417167972479761844944131328421195342452702981317748304580232693476334054127823493772425180898739036532641555200213694761916657136675661263866887549203041881928648142938179345773787809481317453493528650792695168824934624958450373290173005578371535125644996126771551607049224691255271821427916766203705462970369302406359287998283052978713719218415416479193944528117830050682056882171873375529098124833111953770868452090297475983945140340394690799839806923929729233164351807433217809938039964024188786787333199896010179865552446264403388102686134788978667060814618355172470180635052415929238700772230568725098750882895594467593303814260321274609949665007044864875952555550112228990247228253654572875419142148343513348942206183922311743771641397265666573660986848773800210487590519547999893659367765649014503271189234616141913475223214535352930966723655983072872557909194359547331237728966231497143498621038402463562919738517615012712425900670842243020246402391608634739707063978662804159523001514271477698902742246226367265862405230531307197809333015545218634810032006448315903351843673054914244728073550604797256282354438726739231178544591945381723114952780044018717852607811568360277277547399462003931792383514081618344509995139892093999524289448639957981232289157389398138779426611894882257893955523247307428931347410975654912112721883512367997396145020900743326993815316649221577232396874908778843626494343131916097020765886828849771196127549793992485346701742201411704748845949237080964919476224540148532598377532904220600730052558817984463203260644644051389813933226132468118004063660224760565368572756218967258230409988260827051813634046617124195881739926022261824962119036001621419956464426095724664394874883552867279754404892213448009663925965867661221566461817827237438673347293057138548046533989595725288353331962579922136750656545051039660993572847051160896495615497497658717327355747585682107967431743989836334680060007358326899743955139199539051756660079934507751495326571421052184694508004840128797231713694107884118421133035934096204753080770712472538750145596069689834716560770249743703148664575072954041846964683930679091294716041297134008538738772971402687626995732514555246010997258263482144198996185609353137361072380638183573461076042483623252309369908244780508260926846873810988204932229388539611028668084186667406313558206192117331250971540247663937709417991882361042735488959192513783883675322853168310385300055177208692129849424554072559987403375384711323332786556152579532477999170889976958993716205918957453096341995815657682356704192000186644798021507661510546726001376674982290513805192447781141103617133862684585243876754224762981569066760401753150505346498765234893976732120206696124769284984142402685898406997287212061428535608229949629569163791179212093222769294818297131486438350908990731476299177247816028600751763997402624566418775354648778994303885927430042872663650946302617167894218661089748894662678477249647930879740691692767405528017048906529575465513388968967852426246905179445185736898412775258879811116170243624356526140089863851814393361211493585380174816661944883227053857925022510748761155213501236765459501334222547430009721276222476963867629054184824934782475844312132379860693082787776900923900426144389749632225262705414571224652922133103174934234440302264631503784487208613647317271955394729593057021290143634981081468504048187515087606352759324580394031335001911577689425206372553850300337157390429389276315558102791107878283848284402134325175625903037362637561391692637567827818999910092088675236284477260275544917624361501922694603965298989511362938193274314616610184545882339510825945489997842553116050321724484950279912496289360769267697662609271293386871000685692929000701473384076926772389892467744081841399895070957555701976477393175396026778323167115706783113120239480086046757335654066703457271175512221063159009476242239285184717160574109680208145245394962966932922576768769211126996574177996471417485770824565026656193585459843812676746241024728962843270321305883403063456115792700279065430164969102086060299461437160476666175213825595798126645281441294036623709222279863279767510759721729673261885314711149898312367367738451663341127548120716316304550760342028706086064504786086324127857488929828258072384041761714509401476264276728405259559636158835290291105367760229727431937563863163103075686005243387410396929219667430814068895239624000750188186994560510757968000885730117699982435494958428811208163231910142807549127418887886747279961074402342774237005305861688018603205163694774054608144384347840483907779715314414314198475044385783610280650927927828982858211605486653972674266386243520373977544659301730932074742465463330854998295839452362443004105335050944215222419053889017596497879884415932680787836713275332223715166268641590351856974156879713099095961655441731361704369085598914486951858961358729839165382346879690357072277988637634977840818604385371640379774388393744843535600342503252976749045036014285795190297695322727897090019224682015659759227078020574116496958543106228492777216567192165934396379643736651321670146226395349270533077326103566550416153858689068028528270503452217820870510634517908072166257151783036661881251747889839751432734178940250318751267610183095523273772974271458210243799973076583942757027566426893494271367837686504869038579150930434418141399787306769201536178086056206661525761388392679337109360995142988610667521862270698392945353388459449447480225326611263855174045300665351792146473745132115054226490494525638387820093828947458885005175523702674612976422234403603288959856333737723754023203519204228579393955056334381975478366190112715976574373477163878346920657675270166596206861608798898107640528901285665927445673202339674224585763876676467950748781621002939661355532811144936597814200503116533303447086903668657891825041707818141412755728324495638549948165758117960906068665491949777708266240212832403088432359206115900831639029690218697986141748933193398462473876601579500935435639051611504880060959633146600381206721749886743539716425131473537937064433205016229873420986509313614602002790445423117354837022856750543352576768236484479763962662192776635632461505972365445123060597474269390160093494112799701957303070950317912513036558848609080397350538537802134719078907409983623172959744114663347971653959032372270231951529098829816524288373638379287342584650036645174562608794374338461602943024722158840655523873913576231623940235134179630298569914870683507677199990794447159757837640841048184943975450023662379377622369722942425990839567189401334474833193687791547686623831336456497574537489515929494161200271912467414007597753516364222316750227428853743385625131052820320213019076256536632249001633564060435571672983533112414838519335115687307706672698075474033471994428300250304046655522251341207832289056065929378082741434174809382732489985710723627359604297954626967532562099568106500979087810274505244644528256315137036812080555292869430322504165876470102294957568594565849529289942226394974680343265585117351037062221114622259637667461095143747808230956895031103856343336599172950471066614753360922235412688969500014380505033588349213304785873312664967784362307812253254570420919670061117666308421996876725108081386915580845834928938929106561041087113201751747319647996242310891965641954345517975369353182241674657118477996787745224944268775576825658531596330050899769306954654400818722716154494770515373538322236463421601128630976021115851308151547236691501001080830625803233424680310741455263186436694946925159890928179233144753988824637911770967852158664123434813365694942367992525195116931718712866299639551971052163013141416050401717739452138946268033651961400285441204520214080500744504669604781765588194935217991746833318981304374241452928126537471813646883751661707338931151324323837834657495033184816148327848472880046507868162577497318627561358819446241201294697479985878995011097190775796097691790452430204070502167063494296896851556769756283480827628184082511085368753349130877645747962247959450514575180716103455735779630437013505374176657308063384547023670892056352521277410847511941482392711024973393722852359426989987329564036162638373428602607430881357413883539672217545810054599844029413730166213457747274535818521758345319035015149105542799492549643092766596473089427221785260897134552975475411503175630130532631516959822816431747161274475765440056838487957933292464289650780483953893807299380097825895509723239216403949306537840665812479323151824920645958415364609490401120448088949389794736008633211074751880088319478176850773956545211110510268504341153601446029037688096003315942358116117650130341259832832715852486300852263510732702639980332016714115303958424256023517817081768488281459224057875905793348802279386523824658491856342581089314158914896892753410822979413682993196538465938930303661812593736901703756371908195380673576560921208712558291179077923499781854006140740255210875557664974933003215848679498646431755266425428715601897031717605249542335518501059534877841270828159153779774788279786301132363233209285911375630449126022343195993376054944556287525928059416671085819360943598303512881095158443802780083733359685473283625228159233821732364828077186775045423120456489823906137467274369494586646872577271993801704659248053846785954173367118243887341736565896913478568964327402270930261877976056410047457522351945859478462866941575796930132919373207377732252659189338359579687352833394513091564224674493949738694017421353043515079899700914578971335967269536524892481316305777680166639658170736358011491683078144833039143528499794198493724375005699378609440620878812095404719761767494837106084312874070103082312085514494058256370618196899351847044667769124791745059434636131576127011060218527144565259045163044452310593995509637193745042434595679361643737054879798446797207595952355835286092442325677332784744932672436424447551065398084773873061087712760425211658587251981129643159618019605165834899578509230967037077260938386280258521645931610748694656849550166570571239084966674861433657622597455001754695908956683785102487100937036838611785491245355405505699418607383191771138059909031869840327128746617784980122885854381994988304079727627042084199028136590906945319310078662440093957239156802516912311635133249117953630732389427101191017879464201729628554444763163633148194830768519962931357401399188746550378362606439625690070430188007388328832741687165199881165127475564214037049548334352446495746395336134982934835246344462624466031371502644544263939999206165311857238843255662073066471980122230601556192919839491328064820331517135510484672030644730759725994609695647001761646030235427920523643418682678290046654483118664075199153883476184366273473779340039635775686761332500751751407240341934740080881628827826863851315148479857997222142349966748598224075356361738171623226828652541166935808595219506260204479214630982453838449060123801659683491319305454915686913871985406787189010735068550486672125417991396386420142513814060432087501953195071668368171700668568822168087143141160164744745880139633850117457980097684932728491508062504163427157956444911787255410922503991048606279928839559776644134357210003425577350322802857585751858437028058906713360812423383233081854603013596975441621059766706783400442654245080191361322267727289451466228456067252988355499604683374206385211427199507418374307237457377117424117896156814575830290006059228277452204513152958622988453228455029887592692921165857957200105450497170025362176422008228684785648394927259614249028767730034445131579162456960175421241124844688842918659905694545234822245136142064364287927770855489235523516412169679464211331620210416301945590683607156525777492685860593805729200382820827766204538368470680945430142514790296638304957698402697641911064809651834355204021741730736755603818926538254666371398511216200884572284367887276378932538332310029719836970862085101392202888974562795764139881645436687206307712435857118956218215503816078989477576732615762776910180160483491431239956453181727899956826040654624903377721439668456416787434867486683858590522304883385248238045071886635708537568061127971848159119960741078458612339072559759840566838243942243288650118179600217866676251660558121047879253140285182337552194428888500429069679515796261249460832191451002854438433112199556350181487800129933383417518614889182801881457223094877860042548823288421785028934732571888966697249422822653270731175286541547801871717737073798601664429612748351351330677696214445497420597831260535413745184994195529566840652226044018472747085540860809299915065043374646952749223058148577823446937204844599904905673894530587791213733872500565730164538842419915477270568902643487737191546917056628985559981415364334864847532098719289973689135009310536304551130406268450202340904024544598973664390731258800346152361477717243703490145927759526736332407492255104835699171472897142393228756238074354836706393555149047376481605229873182017321152285151717752977144534537283143581917169175914696797041973328846516353814904743541265009827897189865998031228696385768335563883876118873240347806538557943774673404587801021609258192177607217787555859857574788076882587875562903293321137922610312093054170305123450756986748639389809041356401686047691118478336743942467483794068803250663384470554809393901380230521158578985805247898098065715283269851710388788104869029424124607038660928158318966364796929014076388660433237601915859842001368638100331166609741888339130013880760298826872747743483439487330339487179669973696862281439044724059071365988365909838673273869226186390303208431987908211461145216137309060083198527516220894113142726756594603947261623900419601143130407066890472915030378581225605398809556982716923555757000295747703718684933010034552508197205701594496557895259224825396622540563054772901690706874778015334988700149206963979639533474471733701114119954066469531011774896733576877999243666941365463209950775579895791330153128236542194008264419654454313150712503456587584986395707413139363147307216586389851094281177531482271145740921256844928194720578913618762614269099730881890907888921904599611152021435799005262471425675973715873157116561435401582316013211175727570357075473254581055608850917430088540917448665735593442896768898593889001609387742223120431668327222255445218773885787864965599515778622753824417377312314676117958521737975662004896913061370379034344128069412758527716690874637202289996019638181791961289293381332783828101286387361449168089372398550929772660232846286479994632907433002231742336515327755743739709872866742517891549460099853196334508759411520837254213626668958273818152814698583627361733733898103936929090598419146810763010617003638745358031018692951700168189380935284264439528788086106868546644296197142186368842163369287958208450340303813782197484197707799028964838453441563366504354184538876957909362247689739392689966593191691807223847916893981501232084867913290153592593304484278930239128334659966789068952648323355640208099502541584700653899658475554058568523639037811556975848466406854317711882873358236349552734294785195125667790143225116589995050837359471880536093942985196837525552535062175934054582996254321470334430236070277606011703991571625884656588620686996554857903290627246178837063777331314208122621975830679544663742506980554598476920213684359310404235738935733492319847213359635093335611282533470536974782269652812264677600479034058766001923148036385454564867407207733257416570765483011437720910725363336546236450044601984728512517082429609906128272503962334350249549854028408634192163258875007639418036140000355842135380250759041083096856746724925525919524979070013385200830249771100453895233111065852905390624748887007748834566225688981565659930359358036844331824978374098397335350742577315262087029891345961917068535908122697182351167477361702959368619300229743261166781896116573169660517558753427585844978324392022034272719854995574125579278219085215160108331734004367794902069696191342379070834488275134108445430818382711882391404745581623779113784244726145043826123939328225636036470017432799557798054025571868946117668566149632529478457851728713900595055528357552132608536534144539581634557578716687758342419804041051911570277382329105108658083319077776992567603871653749173905453570050413371654565697399365792429773843949800350393564719889156971022036574797321761705136363512060300391864272307313537069909167824921344722090114602872184350836758652453587294069224822220376633578683061799419329669577404795624873424829892686462858151786790459503025424938446280734264811413633055424047314681965184223937150357689886661491839449558781530103496144034577652126133075706204980474298869280593336857233628052721845093077154266155689799352852661514619116302233965538419237782914083924894217307821211538809671409144237734441874662945448409577715791103526905128495254629077165604778763158983310482522475300830126853012650651888758095019033514728791342197330299154327514496858719030530814717402680571623497578901464991174068768592467181168559143941293657176132477141662673221530213666487830261949271986479902437238326942992314617712073938221189941577015296897842862628267867353290892183686944623291028734011141437925372161879255569219691151518586822455510674220981824289052058969833917131760507179250591306949386849604591833100666878004825450443615414723060072933428933584878104792294201884299837927257433938384112014409942694211511245830752191160922104773662487769148499339999650777458463594018694061229127423501698485764030873181691329228107142834245881646878157252631896389433469226935696554630762639689951056152922708057648547161516827789952411787947192800079093249972363004068861370968237484870756598477657390453933462946601915189027885963098304351160244567161048639270463161915868129937729288147619357942885298365871077438921784105298839332864788421364462837723400644095840372784445743875891609385924154239995591429217141871723307236839716620959673976314973866608811897552698865296635750004623855295855317193444727286480163615217881455358285458462208982719841061203868562470109495654554505210270094475013460584905801740098896231428461460728944679618201073240506785181623203484103387863115971354874807486645939947268400944776606180793072683495830173039424010056201056324895376134807807517515012592393668209376798653165272924846492742726164408150170387642657837593336222713351334905131652542188404790518181096065151419577460483298447951079595327647474023227640866535215364704757042403940379570205096005022278421472874812418654194161488071190464609959590107326196586122893145847192454948284855667812407136932065189464769411592614656224706291796055215120827045033812826771128257919573038687637632927123629501801687134962709899626515738826763586146805239477378910069908888242060847898133583607377379584735900151627701874125144913281174202470147855015479315250820534580218558327787121493560336426956873028576856163313857044154642892729326926329924846585426379309314753674655237464224030628381994566720840492765472259445084908364845952020130521614699564334366009489777529573188894749296664900172172461946346464845570197051312617280650605078470572541524153299558156032207782482974150216012483876071997500588079976007800305368240536259735922509299175948099994040302307080284840638187627687224157263563134663770458961521410012561859903330171114789176470593712816602748751589348882582452036986832998077808514699016032077097902595091470509005813003391530616799883360674208199840565042541472356318752609052982770132974186111292926245612126582658758219581098816297684257049014099989995516234979529055779436157784299891362190068845304912295699745247180233033615507618553385794103153396048083745239121029060974528093046233709502112843231494266223996887339282774190726018547641170668781213297175145401913646066589822118233871893659067956611783362638634460340277188164304358330886701094114576231143092268997821248458366230654419366255322971361601492981269202835750876617200950496649835430666510597961281999459515006298355541324124310044104959635049731447452741405148329251532652543900084204010807523232480543592043300110551553970970177617227743559697535484138964693437406261370735374027607381820459438643239283572925502052392953170792237334225714355040179633716031010513271451089846476368939396130299651086247378977055236127349094017035321672909143290845750260062165997080562771095502843434413665148674508161737331743685272669032215257465820836364440300055308360273724432219385111507307430447751959537151448092377068919738899947833076116502749168512045607693896090330480308334812560913089622169963162356418168675667259166290123511356027968901370781014908214108046564048232726739794509293386391787951486245262041970998346757982978201367733977999167972518159770712337807174160465567427152080017759603322778686612739502232572918459486823739493136075448958785465955840072581496810332351339795943492782587572024175977391658541078897652255893453409640501838759831651808578553523284024064680225832364374285150669497002442748587042438072676341817225750513410294137772097933702440890650318874103537839692806395452965368681558738006095484571481342293135214099021842240392487040433127796113694937781755238592111668715907968536976425292962372667167424701500805575493597240333168718313560770164534256713814187286479899527495457255912889858519259149891478035284738878890978782608094493736349125648702856507933347661384341696976364250002221643423550430637210758412645904850793209012128010075188601352302533723319860736779968662395806639731536082913092682026174018100085307984013199664226202724729557959501986572797639067838117644838969901089091590362582043950147777075935602933365513891013445635446875923427438687563721395162907817861435051808755424370942933543225665393779910630237517788972066848789611009862056623416831653753083710838910064864632589771421814379388302907261735501213791302898975268072465093040983472427215603279538379881800157234043772749165566532833651770717466468531940114406273944576141340532430682673273525778755197424454162601024659215201398436360704956682492857748771602589737429084499487310697687865289055612117023180517150808162627779701248874765854219814959776436120226027841664037292154842148203239869124491514974756866302055477058026604308637480553119471863792960029639440572061481321569118541755284438989052225048276068863173587383613084108219253664277426224554282110285205739538632720254882957574484465164925707207278640728884282930583642469656890000912032260328004057980998196453417904672211665849174386791377795266386177341938761985203811235063396547939526111121765887143497696477181874211776592161995617478411403044283906250646473575724343114055189257549598924033867344361507114409122192462142736539687626169852732921624775980046217057172666964823338514670103286389661331079981257299509966741451085079298407825827896978443387000351540978149164101007143527073358792445423792336915759938145270191560192603484363644544737608174656859516001153181667065737654900668456027301104703971247542896395720122648086361082085767097609673245321838908580016634115775101477385022407956839295926883624076971606271466898793281866129997107687602599841337697319468458310454643180879377229281904333546483800782108157852097377122712923626586662396595118122926752788253732924906510143140701492093497123854186202761248844650467413409261421227938430703612924035215473166959024449022021452173359613295164534866939421304598984798933578537818756390523859075544621104649798121739809176539575131323186589181521118517962182242765531813389817445743778643394608355273156978300539808231542815072563068888874910056854241940810402570733352989377047285269584126058802573550981122579164000990579881225338567452905270281733217228496028367443022532166699347782001920243372912275225273810785594726608957201636820470266870967053942244650324380887081149116740446992552466501486744622925833070170828045721270684333873354246136323585993620860184874438346685210479663793969291240234129202649730223600028482936348336927290152446197031971523514608770340896815391864481151080147664132302428662646071007241196947674267254802118867507915128011145698996614773146213289773043429920087916098922396268656112324839167958428693475157478522775418841797892851017600518633007392715462582028498530219717986501736869115769862011439230713163187132270274740552990047272775852651579006766061433641234251225855108293286767512688348737635319148305282297718944852722746681651697229381204150072553405461770279339746027952861863505978454271028547795101737533584494900726061015408891231451127450311710515751795889512851260839615985572758409889772757642544010213604184649739354326745910344867906724782785349332235666848734860556943942340245203998783588239493310344978803239647718630146853262092182320484349146525032754110858606675968561010742906707239161337899279861948520493623024316008338534888624577244290618711654916871361830213723193840890967946942109896865516109276253221280553656151035305337856614003728500249902724848016723296028340513875791417367542579738640744358486372401053299168503337578407744812107080068087233975420960612878142846938488271036775371732184851654173874742217177546968851911601940748075223645119553965035254613079891191310368049770767529471272748580078111094376367760300550007433332470305031942908315321235163181404648895653839499734953436437835266360837841363333929849302891914467434738825982505269082741398377103779324129506349326070225907939604628799990487910349992831194455482861358694415363389380249759418499865456442272730743331039410569264569107056871940213492397059079296505958182586934762074624116014449494914177706540854658974290557328762477333642572359638863020342785650626485137062539904828655955787815978669860396460998961877418764570410004482018885273821594927082763910475463079165779384425128789750818797483028983985842360516070191210665860432839442918897156430048277982480895124079973342216099766621784333299750012919721627795761036928627270587476657767186834199689731942586478668319547375827996541605340976542035709890974515957958542805404965984315210650658211927557664524232062765923491322195268001576890673803725225434207362267567145634228928363115659574811896004296360628323275945324483183393014333300335192357221127460939020395626057165870996685741213901733691976246794273912633012062036589406608023733942147944000235199880523414435355042077920642981077047146400954838855228881860175097640616132773826113612874302568551744093192480810374110988422497946834834703305006647534980932967468234438557934887697417913272948653913305830987390700691973559289522701725631455354557311581903960160570790056968174034110952393402039502762896281962885678455882471871426819368260786474338451553196229282804755561181749696794102063078995091438120627656477027083700506507239965894079379131680499404326008684198686748438533525561327154997536312791958297700202755875144515814602025164820032061375110631875806968516593800180529347242787752023820099242485980245609050384062026481060352388062076095862511420074078936716025196241837248201099404488566103120854823333298914263088207593570997845730923576138114859570199522873574043468683909679333890764275951253610502654677895859032070223345762615413656633918215725557028794226425256938619361943472405314076571554562323503177046679831118553628104922668603204051212139209136632794257981793462109677158759332867356124289781456816824965113500288942135634294767329442370135163184106051162146800604576216658733915776058508371646307479074886560530506300579700148122274460969536525179471692703203653953567530769985850258486883409316376168287655419432645774786163346221502810555867001002962503726903867110857857238425644118153181346370293827274347252426864150819936860949333634874702063776764595391086549577301707782378980050580893932221534761469520334735661069045176208664053743883390137045749224510648251771064286087028024285081567169953083145083323656344261641857492819394117517025155862642376104946201554438935820693448778876945687531193187086983972593286982495042026873428163313592733455847032918520295691081555180826271774477259430247740259136816949963561849936224145708537819023227147057247499489807292071119376825343664260277156527767211320238237950472007796907992622689544117555657658390041022281853633302315079638710350223560523431448551179551941282932889057709742131867472926695610570807618474147404175936027150283605780862029649023548704884975796424688103478301423323972934653515775032503698193301571930653034311659117534223125514896885927599898545495353237615692779289628864560779264524154349147400717801457882791075879093669402651477669232858318305781357161836842009977005086278923467606439411366190027599263984994115178632773577933980533855223792763268376152436245294346444034867655673107894584381169661944124546853564521297386048425096193345524308152042599287883239463869400420766071775414363877829647731215567087168701599193918619401492907356957570566113296945830101939626755899932867471118977374530877734686927265233344090996698133196101228859162208959928225004064809107600410256564489297350993342349499317284776107912004180669347523638363303513560576118275322088294686568896068030372117546913510197582261090785456531804095239183170884786531695726911364245943429774213505091718759265507189156435168677076609004963501848138096259047164758108460513086469900344082589087979034183181852024268654460333775360482717885470242607656293800299983016483690458102167473753648362605071355544326303916777412957613360761354078771285291917304035088136327120565858919797789093714745680628607083352999454771467174853782887330203651459953750899979424015155797995169192005231682403388747842985827964964200399363941654411914974364183178029522459449566136639808749042062712229052071292455816094903756272877437819405262967729309478128506597425512927660583774081744195928717104722841276045486538090556902811385805612027466754925134221804158550122474536420306449892463153572462426081597842917838768883199462096639198410612214050627702928411782366613033883169405536697549764567040780492579250796204597561402135661147631782923343125935902529273196434812335961721409447988584414899692457839428830806844349038768246158154267822512963843081631460169774243088808623409559108315870923788649644261714001405886360518656316735601009373553003030398307337459891092262074096692142300555003501859833274224882868668642372316121758446520919324591154849603710711100361379792379750749151405688488614965373850028208172291287060787447007727372325690871822603798989743509956424627736066324378149535738751867322203474347631831026266978241634721685606920064011690386768204578000623490740572087903811706200069415732590815156488596057759237006927370901552029935222620843225598132194132212300956480488169353244401619441536041760624087468593627048501240190323103353959954790672081493096030786125694980063212405665709627250158149060703481445120903223520386912197638146252790809112170577336776268325348957632786953046838715538802734533034859061966149629671633318181228658852266148370161056864994634039544943758482888824137973001676330385957805884817613631449870998506303259460751702721399031496589887479627322691413278933202380188048081184377813602277659465437011992069590692671827398109935829901325894919997444942708150708387539979264912489383801374619358793544584124972402651127745336068284411867948671563322921476653034686196364696691880366476540496897071647798652912794984032849313404270516795237678595798042511612530197379925529924095690505434135573055797289347038562723134351168463288016978073977899403128188285696935495487012793119812123151405139535882917774971277242640515559990259945164852564477031010873809696876076026097130830056629776318208717471001309946168206010137308097830985746884366275937340575643258139986672906602809404455176688756900012217908822833806341499052487958396855853309788111733947048143538243603022963768145385300332522069176422194105267730654099272011601572291900909142708998703403911934829860442547736677070022418503421018263250034307901364382287847957266937161638789029935228238228303408935820258604558252229077364181566104273513204042737676932648134584578465560524077217417231471509059109555776949822021109221944829859198266275356889019414480761134579044978515864028211374816242420481684411722215822464227188164921016964852213196413506502201571628767042792223449051616302094954963968778966360809852760966254093650862374441578800215295085895357376046524416567750559089958713331512411400278600185136423329608014401952116179171863450450880364864649007485364483728236246024101509070809301394083797612398167581627090187690835050721696991452543435135037334854075362179241586822758923441086370550729827009720501726205425059928131905476780999663416107864160635986582897733999197429157250039559796148509038191915902361743954836113632473140248850607200992050567247748972976912173649615443771408334433868881743603252186500899907552177963750737182463975058766577981030680595564193135014057854269605710915967012729142659513091165238849043793036624254494398495558119825280553896416479305959458891962243187038769078169690676527816167762361434926638158925195076084095138040348229295401671338861697769833971841174197924735746647867430320387284553146798333666686503640617883475656875391812873410298255356219865702874117859994277440635099107995961002396565985332619662534231034838416494171529781153434899926406626377930881264154924780079086860907294777213400122630989396783383831307367286665556300762703803898009094074104659515777879625667824899174990900250040739246249543941015428337869437183923475182011307838071733228516680072287259081567310690661434169331581954812616523390468498056983372271139789090717313660097153235328188574041335842977415527326750906784739196792635943826119588354689476285705193197897050586160210246510867431089518761460060579145741917837355298664242561441266351771016516293296225863147739742268016464486294723495695661257025843114218670220273886274830391294658338833310177964582631923183090759366509711594994949932183757118796447831731024353634393529124817512403337271181597945786792634723424473514341482563266871398104509718825589563834709210826210626917066572866321962663011643244731327043216290553778706984929453567956774745224290559821637454455437612520565824839746942940787603247889408892211747794994503991573053664512148752251492491021513876039401409430204437116066975754158362851976897165328576659650803000578093992546151022345144092996486920687683411824175953270542720355239412358458690735503341491938262477660267384032723447758693924954286240370267232081981595195053840316518002121942881010603055304706771079497352214556128783064990775954232524901812805713088692908565621841720146406486040118466181660971045322951888358645351888912620035983826362730073066749442626392345251627014105941838551123581664445620592314828741796601741165201591250275463487656645109250838907505790129820238446938002684924288566669375571828481925971740743145025638382458879763742298298585043201831324015321679837139714359248658807638575572573897292791957842336442185920237036068513671764183894247945848529470031547295986161689381981835396706011900029097716044216590869081771768326720279302392862879497419261242265847736389095131024619477118067947876194962476867652413143358698526565216656551591874654664029431054808871867636282151957168103777738037032023505533965546284392070193330238255068972043921609650831889447604004614932895958949436428774118118933856643924603627081150855469828647974289841188765391786847867061442717920004903345353361823007044170951278108988808033330788772036191567006209207884851503827901950310721432613203429345747597809074149240251145289513066453871624880355653442588578009884339859348009530347391899511137578192525270370208536703921907764507839601108788515576018642444271987619317931506940135406610618667805257913504602114767312863919365995407898500208863233476905442048671545322245876597450085708824715141286494583049852554982746567688938778693041520970283821118628550783831527306060129420030423014957508227919067455714217898450314835748207998876809573997262957082728956083302003978212118713819241915464183237059839901272123917229155360634168971656604195390119470633870293014005848360425329175998708752834284752912775037290568500754983361592895840139450518676102398070454999410193294194611429273057129986099072993275236593055369705036757020192429106879234154217758048491006913430518395810282379449014938176583426965261259886138903338455030403757155627011341587995590197125760615520947269033382511405974647542144546361430937859579401237488284731121404691698219688151413223359969172580788108163939267673036087773987341150571653795098652813610930412072544011173647172580624714881196956526337581327437779816728612548948039818409028627632791925582649336968419119126857264895347505821189371754822519165622313996284756436392573710925468952884858711659425226138343354694726649458126282181869447883061268924825584045189695796220294392780585933585544253581525314959061257813824141004572782632103845024160386308721962929824630294320392739170696356735427204928566288894570152615012749513668723051053427087313299446063130794192551237663481812385410480542359984773910884524986809988622623581445129932084107200676460922853691492707595045650041343795256136651840525403517883903377192861547854139108523422271881855216434677091514232897652449207332436407675129760987529955423213520130602686390273897005838193047380305789511840959090382326497310417328406569871648275854496683831580261163620983699299979785354378364136660503911975378734443513919224238232345612907110414127713150893090761823249177281748084556241302091724679433641372703297039403602785171493161923827152964751920784168083618769960189668607537964754607658282358004875914709773455003919744275045041854571454493472769322336003376083524603918270952197909424834269482524140712863629287066969709998554690542345836547732786891567916782494276748885242305979858091590639256491752730720949136474685672999890961918725196082038457496505285422041595376169951714446955018977253748213397501335921883142102389956885742540514967411243250361171928275472368846042615821002366640575137625305588174383279761550033953895443738664011808224149076448407444614642917601492228312209659286956123158135835187743840058952994458566340304700927335841458880639160576054857006018584207668246066378845275017066527059264311057069076044642658609097358267994181661495339872364486454476999710462794350054232053678561718603165576248201992712185812899941480736618984684356668907408928651179477284393777324234777108234196106045801023383968942868084765456355604269692574998543939438402655540044147459344114283271947502133741356830134990219642016221558191455353055306692302422704161876351988705581556828118651138703554590485843668101251137645123975075866078629563707625129883325041885892637281399188641605171538613941181753628995353689060353356293245867343148376478486450470529888180667702753432253658311532027297331377396398222729927552668570179243710372613170243271439564233982846248691472309739282265132951094797523975353919238850944422242087506677877062441412353002033822536930776073339358281023502677306528892052395295987741500544653619556806091163507740106989084846581795590987340687181638351940730367982147962615928409965325343783491124872342100132253222598654466866117572667546265913134847503200264048793598733270807077756210324212594846614203870401163792881159866360385905430033438873300120384280141488601517714320511038800244175876545020181530803370265959367420862900939980715623289610784452049132492305688804615844681059879342206188543245945589628376209851840456067456891598317877197969999389744137879376742569150470868610290511585789604101208003413337623056269555338310144377889555752437386721160736311957803993881162153750325135389718812165157549314516375275975144494673083895977742207653996566074577843948641381776939698065389304894386180697739492388128086126038787572693754289479953861327350278988710937079239439007656987725790934266557846316971680899704217271362362621263713124270281893847127623692200355336478373266056314638484997203892962053619335581719915045727627762473566528300067318166519836805558423580606476761645163522280260803806941508394038624148020405889500903845240780308027739836538895161968733906619965166489131336575502295343690630685938185178076978139781216556149736500463214321748396853589166788081589619097088651699819733593985780823345984192649829844436829490872363882084208538539715371066561581137647679991430479296840488314017094170494269802441866915019131071641305596608501464209588393383204755366270063967499115353672250055894268641873526822103551490324160756246434744666970663799836840746134118797024979856619560369949937656208060517026894832051201516646772440586666983456953643384484378948482648418155595909849783219102622484154585382176215762330209517079342269002158265337885318400599331598896645034006710568188451185247632999962634293949688640741006529075548976972323745148609130302130812877068387885036814380943558291889200021012085827470447901090951533530422335457965230062931026701596880277187386374864871025914874270628661919239249150984746829953826814840817021769487462296347026528703451314294880080019802674303742537885916600013069517744691594928579708676972465909916237247698744081953441300034092042695276006222381442374562036624882256820836616871069515027426860830461730584077913869300966304597942419150900526618033908791736147382099469247998144334009591022957846169117190687766983946518220573313087512042843471578559188351031804484024292880287308521872208204665816408323616992567381327875087720590816288463739541579030471462112050811966341053228146866312769772643538107276998483116552171978837598047961611514247765763858304965385762911740506755727669034792960654609678050834282930708063662025431909729160153695846579286271875385274036082435224329481839777292463908576813504369786451004361274587329121635015015855663433179395681033952165736947141945166220513259821124525866391339026145896780998866601925825310486935570045709587780383562895777475247035245140549529412956044131743736381572936036093528459471191624795222378934925306756898559390252188969329102363777579205094818871869381891440319215244513468506838484997226835216524050222122990100223888485324286309040739993509455595014167356823913175533134159187394724788073207953048606861738576495773775125521018084521796487417993116625011399504769628320259088472200047182964715480828850812997291463025994213049400144836540675359966716000628354920608643526255571188593970358243050783562718652167253769386741496780884330166121811927181970930453950704512802673861105456578968221047608125979640437807140806175411456760396711003177116973206360394439135804085639964254732462440467283159097336988543192268168512670006919049412040550767324702439857715480272334491012190378063980262598786971864064412886915141215990880534341395857424318673679060813118810877640751066156410601999083468289140030961679567649425899354336931143139756177534683387988245191593104081734921472606371186257195285543758803840307989918124919150069727808703655776654054859520200228041225861360877955586488339808531371037723313012766947479653182176921186202079351404651102351218043210512490162740999166553391124286055521249670522058376560874832825909585870960803996748022814870472375043457931838626389024263793968113818835081624673111481821967574712128701842403132758417627610922020937714982102505841118663466818397730478441651615294246551321786702630684201889832743156332919936082229176689795913705807549434022946018290580431092277135277393743562345460973393428991401609362022004015782063464152576563392574641691108391758128113435511470051626602271312840421421668759356784000198349318621874774625936882277749240902592492465117370166074084140922594738240078805798213711991587561806895188486364004768753350170278431105678332971620608638118556040042197984533208619459746261451845317330011261593518848094753077478022522639851332513903275718547076850441886021370920130968023577942174168246077420429909316715267404913015324427056162234267672258992423371144072637454390987932138677023248601669059143615760194672706155336298898517047748834793799354037074899662673552293965670797783996807659956303655443624291202423069001428758468599183803225457965230920360050015277369994959135774254413544991027163930168741495304108881072156435641647647920089692435829870774112275823273567808505453555005975934587405078248961624627379966280537656582392544585416507740981423338377224149910863040857102759691764362080371184847236753375060483754316463716490132835853204624212295785222127740364592374429213550452344428924353787236899661177158484348029883972249616067356248709915432603197014337920696186226415519001491252653368437529267388627534379268092290301313880613085325150059706265362460515969062134073037223512017974781726209994582518703871754994361186368530906876842502342672642201255984865536655455584134970578294939493074033593142125499105841325211436965589651932076485023460020897013816987769739150603821201196310870382106941471579763176863393068289419971276163168323664692773653556344156727187431547357487119471734099274130947109862704050072730865700991646512140984178829154564124398352760734639817678898729035483813241133903208574656455256628501223225678097418599929989273069985488614884066647789519158581977334988650821935370594073698246324048638722281608035759058621408580383755546966050092998487755788606680322417226513165687015247026143384929794923141479556210178929003583950359215028228026513808680349989879783493283297393532559975185531168099914780919911016216100816815019363152477003646873421863360363737316191781929595255724006875981986069124301733655175894565256125360837259352532842494740409877354444290117156311053761897536511188106911368298564588211861242498105540230579757962781344057543181144175377010781720919410762355486147232259060293190576098086790650180515188685885059502867029482974705592275963673364896385081988199353638399227534962353914434733922944920808685239106135436231944051914151963791390303690181600800732894262959270902756016268361557458610790583232498125198718284121733600131426750828760211953051696485911864678654629829443005730931749771770207921480705135847314974428562075606523725190993524960498709776569558061842409751946681500280044121293639029162199502905120792081899399811695318637734972016099314195245786290294140258547481018521579720797170225458528966149658716858118359227861098688942920135140779365599005614738165942356183492300426577997644489629064389949777438773282839000408326950876450586604651873303685159583126739199460468605285276277818298049539652407196466349886411879437545050527341473167611322678933891591399263845778487274410982782728312838256772637537731757314727048827123517962938389658069679061218990943055149598313666833063311273709221020445991776840504696648304815381089794481748001773336866887169580986092100619902080884459639914161186894546204108389479069646167929592479752073690684077877984527968821995439896873521708859526404156177735176047694594339270626092007464273029893922363993455164650048995925538642018005072862737990318302588036771619120409888234819767128324357664046365464038568748215585147025323908484675901391017723896241143598672676690115485489132059801078237716694889524859168140052699072534732235893811473659498372649297365017556035693218674480702795424317136141041249895877704513819755433014486273973862697391447227789889351795539877795816038964233913454496978349770033595888547511808858689911389717204859233956646404981356983329054366975128590384851228890705028952589273359645162733670590444802983219448422314923879341542596830928777245373756796474593958803543324349667418996459290434174191303466241388732380853780327861154104566766812718573362231308318810301632785470269117428528238452427253209803229390037585789175441851177408364297583057429989674874350741018616316407416609066361178482311451109171644682634810486874008052519273085619670593461365855616557773539488342552994812795903032519294754038659013950982200746125578335368247908496376709766596796662982931452427293307159644109145593759853614444978424722004086860765291851970153351347029128433884763714461357677695927555194842888042050645994125850806255725600782005974870215574005586481720884971911589190349645874148508667166672041069740417053645432050048116971064032483688567183631833771962772477226510746264203798439113163843035573793922321047222384988149519497339844994230053607604176523540041320729198502948641104427795704552748179193721628721030886487602400711278102886963330830654615354039081615625702037435011907822125249947701038749079350668390294162655018477234239989496196017166610968706249046315652085721622562143701819086401135968158531453960219646944859920937581627145159650155879384919447350005954800565680185653523371614107654377398333247244541604431759710704425838886480203490469278982504086315011502480883159700466375363265153526607436949007460073135624054588452502057741937118658702983162174975545971560782595477836057803435421037222493011515816960403055528433835073184008151998081724546702180095506879454922055361663381664489374727183442091663229259140745887828116701336885353394317326080612470766009024560329623371917923050519340600175389585202391693827852750745807451124262765758885421472868166315227793969119610602868496400990959586129023120407613195284787637337123221686884401922567675863764171189794109309512965651595169525983033174278954511008611774809309139511936852645134624529057544240040367110930938343875041735373150985351299578154003969558137973485502014661761754309826935299525485391576726526387762689632067037672491065510295512662216100947858573994371875651039444151463136470895439962316184211170222032095859342638462692263159575569751687396182447717932107372756565409658381505127509248574510869578453018733899603601891712336471915140808548640200241799788908760929593879849416193357110464308482043394695902569989275532838742875067874600113359298392701504464488217095179667385722120998327183582523013737381193388770392683911265209859674556627792731642611996020225563110745347136082886394729400776825768069969418093406552269394557802886695796608252071012738323022545099056734852016993257070252138565458274161336624099989850775305878891787571420683831698925775424670357856727890056274630216742323413638091313443935544219994671728014118213029878088170043611552806074120724541583963959858115036397848706271887916673812086112755739600693133732038213371883750626673590144574157170968763749894358441700337729278698634412775282250196141057085510183304729253218544153423264270738421848424737336998202342693256043651592384978590380051388353309882725316675714098338187837288393333633328857491114427250074045678983443326639772712648320582836400721815907758443247893618503275805554692296188104774060974281090395268599876874055387250179723303375743876878931133999623208150844548422361599154032701274664114004379579924770649702814901151542503111544127134886352381079326821946636829685569926720683011223545248450214568394976895248828364096260303433697317656074177087936819244168220141291596253275310983224135422286335906152269631842112237174937511908376193196189992462644284024545397447321221187378710513089697340432653370052411882126781685227162801580911453888684098213571302578368444177291146204462111783150681340634890652172300159398235942106974662534714205966361085721500014060332107156984362941472588759799484834543590728540930273509025110467117158751020866588373731930719288807558319886512980889601587951180553529646494539193349616488160715867139439192099033878132742934309275219452659496968973563785386605163947990312933690993480298954953127538872552329926390081168641773939748767865925780392153019201784748927716801276643536840345849232844158687802680155857185279759934019374339343765708769042600590000727551743001278769969380177121575189545234680563804960663183559805307687792518828376253656471687914180815846707008230860004123073617776199665061933445384477431588065367715272569756275614622874679613613646540745185814783350206927161615761482652983139717304172841508798440313321286846337345335092546195142631201364045643607283634822422692032005911162339872212429357120693682080495300428259738305025768072892371129647577580980319371053427590045445735395984196446383878216140842052337115691233313235882348114983285373168331200560433346394724856130829401299671265418289439709525789052791147144018846743401247977384436008801111050534877152400426351632551718835482962274852456482477750076106849803549462095074654008647714695359259556788263112235845600896841497126267438095261728076947126548412945135712418866047896860305719422325566218895351575841392084806258445326698568381305701877164964713586413639622068898766734510010617268096301375078561827177120098805877522049656372563883056652137293326474154657611969001895271836349336377075661167167551463613707735726543071100593456432895203591689662787470822346544968290540799076273252622785832706234451325989008416991718696270508064351672096778111425172146642694937016606934085359968012012034314283706085185945811643561007764268581381509031380300030346984358748917247291568385700984013690964556385233993194788430453108203027079740843808668387530970249263870257364645638113646975619787321388710867848219448071210544088890071218021132805222679059737841580418731284097628528695757612092916175840434224805158873672881875074497588871307688195266191318179473804846801084649745366702015037968113716533480651668877305147387118787079236564397956456035812271026261465564374878186827626812320942770899657716993948986321602084567219508192993981098786519180343892771362080154353690686043421918324524955659605696608388965506651656114140417742333358805492046239572194749641674815134856166834396019728057062909447286729984950640510135869074243957186895857687781900416308286543177706936459308944141575208011857934595063631669462904165846321024269655885697394341922715865927586429282803239945618422943114375635027871306988629697970636611631175441095266882464945712923136234367424227935650429876280833278651877758020397941906727116070133454547354805721041581822875918747771841463850352448953296245422688012924734598792273913873940830312587738227427779322417133498978833980177536890915691860133017859095865702740823307045625905529302765152323619849940457790097597974401399162808218338961342555823728205690367795351073020044823361926441113420581179460385761661554588453608316199683130711560611340898383588711844076873336687864122156956800435366224515731458206065436953619805055139269941365577054281020205613491411293127963584880369283702597202413157637936705921980402874577892596486442386677385683883031858557081171050074079908498240036472331468124558737516311499893541961771741844802801375827744712081920885363059698836507591819813598468318340056376897035515652633198414102487431908312306166740667281591678198948414305974827159635447453535189686297406415047756217125473765872239191578042687145534416432502430408480148047408884897184553965281188844461258888688905926641283067116802568235342706090184131967271008320383719491388407551862702220722922829126760404340234953791634482881066449780526691215905720135197470402169564620508322132327348442585428894891767945078477561489428458094011520312753971559422590694406456447893904937682011229434654239032821076383583689991104908943226678066011200136782264879539850653779564417799687641571706250648896996689042285414600250005131415657358259018314948097695393444446049586094139136147178959017418567929156305167422133361628647055467107432462610019968395239054653128856434661671302412987562176241237321384731150084207678669338516072024737856556319497830359149121821655091651385172533463076997899072498797384801018581633527514549575769999608798765808971443389642048085764156420618320124671514645451066262812722758545325759675655400456500636227608134379143573432467174291500585222171062685844766684189042765297863465827159908382042635478406375303701649628553265080961721098105986364097915902899449564439692651706500243871999048676016980099433610246201883856485080459428094240268680292188560056081261899860181846021553909716283735926201357116457682150284501186769534121928346929709462775829101481719864928197100018154238410369466686174912117679467753096638048342457530475005210388726001476294843245619159382159562259521904763112392315245362525501521726160010527783462179213784094721578392918510781631236708351354110318450291290708823970824214214099453136149574434628614733300426372299857411672872599689278381931882307520654504455188114792454378341311418332672309171238732388790252931219608966654177606798767355224778862220417792542191029574006342674385004641889676905187008156713676115974110379076312002435969900384443143173850897030953449014095381005716331738998342748112365620974928304384149022651613834288967050980740721963482653106649360737555227318147036105900182529869880646753386621779395767761386877811862001701934457489620568235796933623006147015249473159436048237754083417015291026668716340572450920588345132404710291693684322935210285759515005454227096762661341108911745667194850787898874645928547857166054851384064085390246594427798211877735805161084975973645655863370920785160161247445740875489529428933701861059825281849602246706013037992649014195685187897074998694977828972606889330062919920087412070669413091182990300138184914528896724390897322798068947625555961334154571898031201514747659704061725283057316248553880283035333887117981122139789843122229596613310372567394225899031958327362336586664531440185422468814449978977103303700714395704517000409822193185003838625519649752826872642428832663961548074408968108153859927810333008885954218850778674495877813220077776617987960896253542940477885767882937066042662617707928441481035710437217089426946047973837411404963110701643421569177535730010615831343622839414280549840049585175100691945517662449171843139966504795995461820913842773765117225621404247578575178528499776414283298968009115147247509180794910914926214052326413105854069107647379842139452291946850221620222645240849026112077435776281715604334701576799615826644119484933140991798437814806535127856089791586523027976567159797062078028215800441252831220563826302207012370702517827568162344764700001466819108837358984786465182472649606947623518600993399671044108704872689088120433122363989442480273640250498084545032293327128030266409668788129175335580439293270819284940709901129608496673036652992401910531805060613336731903511597839924433539009124561184209483971924864893230143609294197253408276789435588467892372032555245200285721431719848472335092747146891742551313659821379093767453639074644282105562066670897155047814520494098013457714343863059011105090510993659326593882215187737190157395651707266853295524562605244086315112116662319499611255123378580995730753305342234717388538563740243462966889308190110130207732483645635897675471280825714537184089243874355849449715822111481827509710712855709627215253551413840681349056600645431283283021313229340727746833964583510804364598567639955971486546987409687146020111476334140181598348643049094856948382393934680601881819702814695813911938929409090198873969681913301654427934081844289706984080039414919956970417610738871426879602696585349004474963325810740253158001916886226397539490543732593901891322167250396309585655117997695552645202558557860331216175928121945058018234809465657257957653343726764224269279109853641156455365106915294245138565453143222860451005100545233124605332140504066487165012278338420051395125076481601001514046451340337557820501485999166177115012775711599769713329052547060614920279671287100102733103637731430066523509181770344091665305534347809945593789041263122915931361545776196700956788816776496230594810470089977350521568717602086931008088506769584595182135129467809450195981115663989608506076374931243875063674465999586097171582920361996132774362577597949042277004123452520600070558659949086349599448543047294074536736519761855312350017356074004764434486821562633769936195674600064474880738948855406292806062414039000866796957932100841097138512329239183779202970968771863404967114881985240195882337324655564154254743924454415390383921100824510206212378108892535731202084348034839998280833955336976462243075067126410689563928328655237921077254382102139628631248479851687274720443825270483602040968452245295304001490609569711916782535145101944366028331714393753317352336951754633737804825299323122488016106213188586955089693704829504791455948280273653365806478337709037116597741087317698380656369485846935577154227923889388777294640446214447061188331212426398129145080605574256385597490371726958819783740879206918077666574839759470241236341756611107722630661696780053207355114197260798288095718484635664646346423822991766262102147588887932795539850820452409629518984448411535113283919080636214168534087820033437267929985297957627327921492395972746305237885579042527911908827672188218205574587234823926550045249586551130397737831535271232205454697953824746033335177710338481262583325357684561950156435221332168162326120184894723684539749020193735665468873864942204838035469063898060884568702497212840740642599256656656146653645006229171470963400230795257641799937143590030065201291259637061374135747162454463829467635222309774885454396243501859150270203686553979439941052067014800972823532562749575170228874941282710388898739997216886519725561976545867413045687806268608202830840276891289388059611514427539025152639762591727654021084248230632348559173806405927651073457432611566543530584068813249694943969080503964614416463132203380831025152611186158612172552753041330641827234420624140395095641087752008279026459233300332033798091916751589326892785811950373783506803661418866204567658833959849602609345123428973100572867656444657326764786070174397725653928568878578244913937039277280562144395654858955854300668590492250069256941135319318204342181769471503248832800348444918129907563465341341516856365638303048831442781226911256095657972360116792148485962597207900000591438298829131362461946070055533190929140601906895422872138698486602959337538309255259628087775974623226924262041515748940509025703994322757984961478801546429857760522125659054854415315105511183960705770857184639574315188135810464554913834429642588132044719928211657204277671092475675487831130162876921921004346712604834625178425067892601290403769114821528028897725776116189410384419729880116050821268171396456491328350504287635454557502849155026633465259733549122390231004397771516899178229585217885426465935945096672562177809054397930389423032919755558162192315761297430068767470536336357817601091365448882300841869909379411694444660428707590523121765226876130403185643091762095111385214973179519687861084924556150966587661092643256622916991868016118171478945581620978769168655009090581300415418653111696367109469077184182457615939280509071980938202522320256341405681781206462850092432698233267197161485675260728647711027896267259640642932408941387422887091405455561187941319872563462223879604687542876905237279919183316894986676153007177311000159399429306518352675816232438621196085944244799914819558756280149725048290497231941903889997078152253981798139126098355638342193831137633041164312973377578542390408575398542110753245120188950361805739914778779016090329435193967521255588298574144360180854711181925335466465445303970195404395619154817558235643445262055489288381271960700925562624046309455213765283508746608673435442968309773111028794932248067068881586821767593284741847173907512070760669684517050880861167890883853252435264912726885804713541447828057023849113907686590089166421079106965970573389800085636060491315269404029058079447123576570272691318122643033326669021147887043272409305425098144796125052589241929370766332602139118912584738608187014951769155597657824155778306326277104308882824591657709180938823948181873744187823195433826798774395980409484662857925554262303911327182444489006788771820959282369061469122674171363697126955917760214164029961649700440741728146917869420581226820899630653278740231531325406526730360364314686730378139005380806248032914953492796088088200354797302652622562882897349580933217203393132770769801610741903303615325767711077053341195522198847933670953005287164466096418919663191131884982318103010920984021419953396728357408435136154776762563210490055451055515159051793609710380104109573820096131947513398649042953009851615926886170725520134543394066318386602287282957162928160722614114651067505838763671895271339514519686588580747841157888284095688930345281831725373630559638720233568929860222013057342144696225701168171763455895671102776420175963945141088189816453549509430691126408294129775916973786179528615559694646312199765267314698062300761571792962810968844889325197444392812923715887828387173518108406646839806985862388862278322463808058186749730325170846634538548025232474449254794091264979462446232535743128175122677987115137744272811324427042354607747161790116786871922667865257439020724640332185305787730300619497740503772944588729412610024630936276742526859433580668756740394209473799111622706626542630254501752473856701156185494190464872929660209019085886263137764209735606612913490787878977356411215504395760674416571683531772435871070763800643813830615831870033345472739424115222418620682392616013943525310737252071085317577497616858249162600961881757244617048293185706375966919033566551732830570318409287167853204950239114331472676041795679094751611258896931282694649318881688566694254781432050627578377096477950915958305155411395776297499967343043424193265817381759307199011441314227978891391353402945576919002096110292467401665402643311391796990634287849083320231719936698906882886644905156316748295356369936570615705958792151150036339763388649436216301040069139186380101681009796563868399131417307781926731208034857137382675960769436338625836023939102204491976357324074008659393468638270108234645459506232641248042647031130788422817568284822265807920507123498973153348238487911229951351845143790298860606879403238507910840478873591785725017876019459092952726009090834795577022802425635983112252619552654413010495865586023337419783841937278358397053907257242670225974678848180855331851224043935419006939876241638151850222102622318097351239841618645665866768521833807423058743849270519222000016087331171107489111012598395051152594200660915836446749537333528736133516956650132763838458425230332713539162936386634577837297733756024864786282519949055140732210794180380152742827684856724212642894269625778126027260399535636188548155408633236936421454322419299887628992006284809565186162890746768178868416538065137061656702786373316403396354196171953805162858913363665011934154550282258856076478084014560396824632271096371033444631195901104722420117457503882357376484587567431178024503994832238264329205007297754518409508753115146599548804563831917768222063944115695329330530673306739158190881374941851611421840882170112082302561338340002905660959290757929265704590484554700124627768446780986813776178902469630236047547541418788304098670634810014047148554143628824041722343660110733042793956597465244787926927802882881052591028586256072177600803588378629751004936877520958349616329473354782662422707164823159631317815018267033454426443961643497441934181270154091901825571740651878443993066642525609513207003429148175027187944856844943230168670894323012610297692070090067428005966752260125664098328468597155957258029317890810958150930214094075126951568133760042285963262740348566008065484031670080905365297618612908794219365119379482330233530740598157967539293457868686805198922974647831247175471952168205096376017954082376241514369927735520130907469632435352050627017878553318725240981447803092946941796275345118455884879058278999093702316536215297522352623350193312482250508532473107148996744656213163946027997893590824798713528343309377293885336741046950392742806133075798134775219272026128137065689371696450656605770083786373545548984389091069500500133821479628355858748889854500682557740409365296605152474269356447827318508236715689673634161959802617920396685069384094627438900456608669240517910290065491415312473672646376070547107876057477668234062670622265373937038586534143209224902585863006828821288474877119477548423159383839482528741213931969486858143728199718738601515082965764662181517265522412411458347355843969711723544738763432463158581504614490460384513422532316083079819516003212608636028615169537790312344135878325054406214309055928833789070918412763448552518734940506137704496138513841709703130454722109215651006954713517349924892334070807738499378649319587440503215936675626657545205165876482255040312589599539345894867361468283801569459160353121145829828027781618006056428416781226598516507626961616003831488038581599329560577606620579862748140034228559586699842532546609717624613623808764855854260434367857124555881095509924329702227178159938051654171790184363619963269218683271153738878553339537002847914998347373033530900588295100360364086218801201810758815412488104758830966253589860001513017054598999602778179598364602588056823579262152351795813504842947208670289084352841194225809893369071988215900441187037941886333715708713828435500848345306703148555911914259180360132698486835836830567142327448128527909009639093931077166374600386860192842724794399374520466363463723433200044349404116855229641529100375829499897825848627222618260006554684390465497396251864354785226330429362088518872531016934485973246790522240760547794467324053105569987636482309555754305353461743779323158762193853338692182590705119179165196247463519599584277473082269126318828120899135984281952888051044979104490703110951695582984803694794813489672466900690541981568121367562555172684825298062642918740980290499389360523969485052819443275784724872970448491748613934115247054864643509979814342804540084314594346042181032158831875900033809841582010936195061817357706972602311116321123355146414880334628391215211657956479674610273598807280467710463214212965917171796953309175723082334268317913708919638501555819141185737825543595257821858166911026571197077729498781618674038784565436100507365292502822853541598886720794958203241755114761756571797958359961112889625898666195140829379756463277507251939300663178988721695749035924001420055213153147441524582982673471455748464156128011645846689905979554486584450978925874670720714243249452002962554124516666803022944904702211363954884652481936780719124281064255094951560778125383630726787682287470281864037178102609524086055921718788945349368341233202578933133445651314956741288561175860550874720875904475828584504757029516792192860784915038494955542175446534469866566133706192882133800816602433353680525745127383608892501165882714689555542904719273455854040318226325500659336755221595657293239049828081514720054846594799243778893939645857409558315548908431225354682578717733384093045215641406406667240603438326731281716589994351077764247357152932124944825365340149001028464197261446100585820144715651188628947387219295975923428031527178266295912777686134915751208243637414342583642105385690957382911714545293061846790715916078722565031681579332851537905383443317358762382956953732713935449122088726271275946570921781001639846205221568628090842071577726346222569199833450066301935926480201061112234295734623695186726550868239536062520478413439298600279735030398078073743439099665073992461066187709685152670535347078117350027436355867098741882981964129933410800692520936395880879529974378492172204178021383008262075780920913115857206896386203584566859387035805860845174750528976896484400631047482386765910388489420046513891268563945332076995942201516988732262146093646351083514901678111652168652490713121470502567775146914965277282896315988862205200897299292749886770532347741405883757329723460575346267907889344989340407833207326337898047134815648028850970690228512087821474778491393978807414365289693601106651471110377731756697042548552563061948291679882838910346760616800872682234293923780693123821288025406278768934071405022129003381030630123649813326005065012055370419264658052669365314094995276645659835962133464560034278469819090630726978093789905454613980135029455951724003719310215257933075245607354821666069274065695164378377966720374028187579597024403136418317109090770457352761629633846620664209655053027160522163922338972840210188714978018475735347793094341625642546246057342376708527260483542177334221083423302295122027126290019019562686397176513031612336894194081380877672377971734104128885223469092841339129540572592669986404048065401146704369543876430300639057678484709219799300360624326007457233112308427506025811770223663108098640635855516391704001611349542177732358400046203081746522706512307924852822517287085333387262661902942698548695331336861305403042594094023873367262777116311555132470590734059955777720295369200349637865044275828260724072037705942183518063178481126849851172731609025875012599818023251483337409971204958749835838695770747263836821660442799880500554644866720386269201991664429007256617786232323438437901875433577692672130769887732379712592447681168036574495366936483750864115826070998549358959579810883015242527671821515277798487399483862387385242698006379332073764541096624487763541776247559537446160445874710676907017177205865713039104544376002688921331398831661730769287021425237722421564703669226086576912168890312627947267538232096378472528524885613107710099537002904824930811466900872796330512895687194422165497637107742089609833039738006192491966076131938221549716916867334749346552916034503429573527699172331833871917261926807917496775877904818877852656092276042048402554828554476893006859054688081645519052265298681876403526890838130256239940972484091254375348508155814518153608737123896391936170007062125083310097218379052638272161213988393353839160725268213366657343154036326631345834057834710957977466260977256818548190526196636685393683409776226194087718696784398808516751129987554531248090734186860159873250993398727882564577527913441455386713683927285616048575947734387495196664932286661395449941630821850879990602497399445258827109891622592306912850969676640602156335800885700510786931082996021940044389897283592724322981284967112824400791500683426573708721839804172424464920662402221965663083909259222544461694111699178486933131258482809437915744124921653174681841975259961967031638052027679707354558120474368173575188555042142889008325921445260161015455360047351477384451943028123067839215145330718799136547526755562661609750607902224518733961978235865375246622145318880944784088203405555069567210730262261740683897600697162678700928963247287520822221170729042305065560956530099729871948022587738887765672148046108775069856401071421644881265040915066162253408788125462949728930703113482541051010034419648540319038416894723703059034814916943445680289309781870577235864146716448953047757935179221952895936398983814328219482693568092022576402723268178679452958470895717590632657994890557443781469726826312688422917760214440488857095103267271578108512355692997033639569763951721299989836108119060704107760914881689962901730618473054607784882659458667473861129080778338225462562999909505461817996465955217019432363365568970800076219614034419110251720804786933411898802776754148699690767702787379098760634287609661305659050239951144028696213341688430142357396600054488885806139660468428772511928228586870129499532983972587811619513890000371761917102119869819885692861655317415716189506008249361393806108291141063550966780798728731054466957849546760267399903973996163913955243054770938484016429226351064704951716008598989733628190963923052973110296586030638339803195849443416503087765342205209598537108844379350469752553097252376117170555601578961287761916379390547210316136097814058300178695540196991739061812440397548043047189459738120712847250149840496978485186887390744866961203280946120834889438605030395147879414383490089821051543848209641006709853196612908838976917345296404558604973654267326852031127011904232239080542101791741770014228520525026693713495694667131473421734821052359655742092742402442524292931986359275557549127140994083678618881492560563945904672370426840933321612267602935617898361210323169271971002406877894517224275008772659007534524193253604779976156097253163823724654013291748070975278825508609562948530075050203489863267078268982860766208695962621390761953187084777464497859922005532482413245173802153320815176640090462527074761453806463421149689697288140813078041825418780018819373606087312625586018811610454798739502382011493567230945950394792110713589003214640677745450870759494376898099335344151575094257596978569769585497878987714867195082366544424932670331392845677995684956281997817108741128372308484814571474789790610581666298209204689489361608402060801699810387951775751342255025593862616832254369970105544960248640300900697826955496510034719083667648968812676626301485145593070495717190205144407176838256969057046214866852139154836070086942885955973926811179679501604580232534893377892464158157972838471604164769973679961945313731756915449759469067914924024825770659963472145184236447867396078171317767885583783046063366393675527385593187593676978793593435219796313883829870235921496814173270961174076127097703004613687857594041025186033345601543114041878854939371715444236034675749822523384526453795295587805774143273257562901602415964495900274741432295114320276444048804734923327382966563849357772799047563403442579135348495322183046339821890994635461084976746410199919091367790226276084687425699446116424377468813207140814626978474332785323922624971022780321560377650611356559025771592613159944564056154571123425796795636926531034911603878525788026039279554897056578123805388446940009933694793528842239878059859966997824887273266392700150002326300539689899704360242008697823371752356939337407918597106877623181035036154528264652373935921304435244986361734276194447454473876378881692970486384861528054700234636022013624219567924978967325527850039992551728245586127413796326382708749763483772896012226664646889061435971886798692180371270273532449527383814182993314126538919118392657442455306261507948622280894090863400113181502833182326281355128739733433467034096927550807024074528988212986420306579499416126475038920694545760271061813167431487960826195296592434876989646701013152211208628278539332414745061877743383029333377034312651954632161626957272262217857139643159333588834698352221678265156566303549055026195035992759640302757906096902166219077162395231858437823810624298119226848355288664952481405984928708520856213063370885525325250641413889959790841948038909845699474659983773195529394862538891000757860039055655146905762246582051644377653071270525425769115993960051078736797911042463727575744181755795056593969239915285835676939316296627965974041901202452739852595100863243501146639384198096336045676121017224633285201670902380332487197199123583725284024925034689367877270303260418199647231535953443899738511066069503420535385285724834803801541155206610237570688413647558822212467932277890108443374134115620427062308316061708271647766035738971929368354231634311328954909922736195526240951827770068761157937022761315428426194268666700277149515353834196107713273238065756192294204462868949090212017457809472032110079162944031315656715537288392108230400563146698643388959843066316317703947460200993415382788772389235228223031312080867641670906157182444736739884413768680233246896085843161464237148462215881047655251412359560287689603484670900272482192122923755660461417465577222925829878972754662276320370934551067133390423327944667598737033303381387537066356039706603660114770103835472575262182272409758583509622560497918047194431953374750855554723649163648696128760723435034933810575913002579267754797111998631643939521365278445011859102041231307021338914409617061296169068374057894986501237993245550881121316948378471406132909482179225657524738337418085660503553761880878114301866585966545365298119234086588422667312376830485700846692649860613840595068301684742792215113789360950568423417457045440829290919891221069013746708309594384989990775074958232411604490688971525583237570226008179899423233998465075173459052249727056726001274733471593600687748083381609260360241395030636971697974184267852825557827908454356281741369126483800068108352423461830724799871310765914351791470844270030395368648545236381817748414015932422895183011941542841075312958562488880778610708374704778741827180216531242504431734954430273019628985584618230159370049330382725493167486861804954203254271914519828534645779574981339363713185318360722333447908136276146489474782887816841669236348739110507565748123648205715703127481514818209163090281427079684557456939718534045290510268197681412845034546825789365827655484770184784696360754097585140751120202275066039868868612602121281171119476170990600103075132219226111597947418509515859772380709553237226778850370851255942366089996087929004527511042400142557381894890777501165117400031593046036100870656821876009338106716867965544282140829398156290848720908377864582369955813701737911927930963965877909182933904187881297127640551838915678339942816895049030778013928044623696430332382707228528325185437873494473435801834940764017499111147856095549749267049611285078783499628737036616815953166057760499440657162481809416291913183760491487573739589879208630482747187662740381682632695169189581623914627524880525946358844137859988311971702130805803225484518282969816636921669595219775159475600278431992566810651673233786683431167112181489405611079842620117344800882739648211631201914695223971977161371732514320218625926544938800161100001365314300755299950111203114094867552985512081737295594167693463178488820992817859870672415440371114049667738660486692153238802281498296107955262333259125174494893378473237110908138613340658762076898716876942810881718492164324213349060256454794196255750343651597853778388387746704682173904367389878344674859188227094500366696623191227451748253827405533948701672076304372361412424513597244567432367061478885100643105977513852812784168954829252422974533021239421570824403177988166762713125017161812146995740260592730346997944618642005154498118768491329230928917505595548061936234155018171949283906189092782179884263008433445117978694139790978844772689756938180179915911563570505869498764353757437628834007092554363484871910076042819065099556157770458081516388978780620201317145833519377712652517182410141233564420721074834644219092455063426797964744807305883500855420063287870167056926235866655016733938612209692124516339894139692051156315860008121664518253762975418717552841649193182543705050884854190980764042700197875538000416265108198206650689059298760575981292082517837302727418647507161862878678996280127740898519625848784267035997428509852194286084662717446437658321279442924417545162070961412682081524127037229229623337721126562619820687308731930419251922327575328156973252069166438434155833856672407072745331786647302478888530081896077853735683803207974385085374438812684364363842805014899187401568764153734992883258243748206677938091391389183289553714302833480562954488616041625340582487518561169310292383744259705613435086781092500884386278537443555142883121549935338669629714644266851735950492497066980352885084129733594452471095835584464707058863298091693802855450647895924072606336298162582661031791414151861785606890760210799043763903189993266296912207816056087652140666049128555788187992563015797436225135852854990761223472537996866578115455184942757997762692793792749602933437226696109772650202496046589514380141898948001989780095354062698394449164277097245418927971585181794065460066804439664561250266633376895880448223029537487815491248422974492449359847732841494231239549470232676772529003866728661626961411271546209887282720188451778932232722905929473821972081887743448356856798666390438341421135583007992735851854337531308126837309505595626356959733817540925302412505795679081592722136901718846364418586483560450439000094193488175305447253924729667359713799063294122141287906241575825367612147007980557335663129998951246489634323774514817862010207801117188528090444841664093751683391980692300451423440928560341451582758254169534481891586597625688546103595803836083601034677046061436506113723889736388350923395931671040959212972879742058950497942981384998025439217542318968916478356150467807619083109272572237980928058273259021255403117906413563340266298920474510733172283369063447448580892728168990451868332632751994434602843234089364064455728096188153509964011880401636391918244447462078443739221132333139287323045613855086989524889693695071314383017341401772224917302667455617793621843005150384751607567798471224696827333238707287747449110218668603895978615544858067506016850151830958811629996636531820024230603178458621479053126219743906012133386854609355485924594790030547335905609860122131889069176514232023127920487005051664240425376129831666189941440687200136491101779934083518950286717576719722524607291760784090974475431163313440412516010306448398244931947667723767973814599712717288954732225186188412327897132756290732676939045912424004528662418998002642786155892224307775984578024095639830455841084837192390193999929442082234038327684595336650383636586551285350878291991501676536094694783755464702981611902199440650984884214358764987836917470666797535552641705512977152740952417542739368600753284918805260438577706493351642692130112614100038714969286947895402591310990425991951271996745181279194918751476550865193068597307529612856257213744966701327708509412489231586604081289319049936415780336754004936351463995366928044526460228430247574059560368314955226451708839432291221591702051624574772561446856116948387912118614474593764538275754111250838233782531787287724630438038566496497037083316211410416210748354066362029079019521351364568165047067690377215821071661796100083886014943979188158192211139771274101831240915431057090793267641108758432414297906025940818449994259241106662947147777519444503774577156389994047294539027924567527754813431616022710984253624503047527397591270716578359447325908738078998840788757617058405663713202229352784392305258353820674035037297479148762865940771310407030694252011939471619205076275532146373978154069912895713071640319491588295320315085905471174053269540916306089091757427955336277026875572989414384291118715858199189244211964181664544697656559065855318461120136031689047483119241337265744243461876634874636706653153534759843209141549167642536485509436873357948845163011257674713609030626526427712349126574080842140151222304820376475530490019682683977936254855823175090257472661939356725448631014743756835805292215605303061732503346514369323645777072716672990939328788518080604845811539684664768898993592990040579235238329233411417124449198145732515382134416924449048440839653840047537792657906681051000018139544240905952649793875309481310504212515882081476825188623160869768356109713636725013388725358106238746814679194360418493634205076348032167124271772011182477516320308586642901584582439969869666794784332327357415742047738343950483214956693787105469771747031804210160501741514446918063513523122921912585848536218994113518159058158007788756128942984030759346862588202038463058849359664228934332944635285645275043967061670445201604940456701003804534157665650851711635920048219395591824197644203773548638451990866192163977480186074912729316835900758994207258262898442080448946887259894602484375207205177988958221396426488032219942259244750363863733406215539910346751753926763103076455417752778676698956317807321399571836381813208801242473376711733163350961915915048893796192542506536513496670060740816463768721600045913963338691512205338719505825790764098906811119105708762759075652600212768185518523188608078662385774494547081428806803815887720734996687520887178146362193376030774785291887034689707289745149773797970858175574738729169884737192691953726909697183771686271729880815966153053719307684635141689830179302146609700565924718779832476596810756655641210759158435733598395064329283552206751630787628180442954062634060378201607165504278112853030953752020150910801824910731817634660867946474470233063833224885765431129891722977307792136155096277826766108125309786233439269047496320957519772794328023958928843372315505743949007035911780694652895428865735158087532857137079678372967700020981696897364836747527717414676794591074143288979748141216508636392677709240622294081109172035078195964346599058316952541964915309697850658576713112844577912069681600999817334579395832439694873784951069832630573269075899287634926129559114930760971574772895264568642805089563289459036617625108820266056790323324316447582027056884619153159938714103080043168982848086196014264720366400316790510774090334184255274452824241634507774228923214984367738742070942024369037236678693675515135065541561450290008321497400194892476529460755403594072676618306882147413561494917715031674627799577246601083110728427480350801027002283966389493214855009021329597473262911919241612161463182066822601922717670832193467534307878976587421547579495493295009118813846573223382778534575251539540274426421536618087511097464041586553060293482106226475441918496421441068842918952931084558340404323511205513078770497588282679234483407879828568819633420122293081389539582885621118507685998157282385382840580654717831720058895777069068858537875464213998504311169346563279691426341586636476559239633100621649961059560022221781026289077527137005163523149447529756761848465324628291353722433097758142208534775718358568869713734698766902687362890760159430446544407636657695046987571947544487924240636787816149386301681916441633165109844483700888710042193252222183420327380805088954750809643917188776607423617479868155464926358602924321783331458956402094822339240148112996116796704029251776674410791632229193659513781151162050149011423099727000347854750128056937851766841949723736016445675825115900843744199612741309462882621667111420513030836165012463055577331728979686359290811435239717983197785168612633748771958399044172722674059285041025319705435556564294944752577068684728558799328064817072287050780682356779115074769752917903610840972141297856149346239869487510901796391643172679259379012367660364961466432892712234496118071788688596113623008730669802330437008086537994332552311199600808445750183011089296315018458243201929188523424869705285335030587437756351519952218395770674807045800655130567320588577033453899613576076993439163778917691416465876809752783217818913632568196523118201640805671020575613809978554027887043255063736842451670903593130396395740206536220894454534345713778564607763993088340544842351356668594110007055731566236534207453236221756819042932383747876996370560620741659177582556856431573862708620519301957458912201759325097583061995436382646058117620682822146490116712692480336019438395187888325414090040623322399472053955327805299228083059465860540041994649860223153867637543584643302120507229726633209893307161624015250765592924703777065339014879306714146325680099452191821605574618753685460015423115311735853686952221670014970159830609739763410490952565000795670232869080404830700797232073318128833452616584197090012167000165593154524503476954176357474209408529202505203963696910952639507735963390623517583564661239307861685897625552882832604364794986056150232958833656154006206988087321830589962103528817835575252976028508939801159837209345822301794237393752079269308525992580331897566355468258325460264417413811598621450582489029161722760824919986075293484285077331240246569788431304553818982254210139023598529858761713040198844165930766040557292905248848596180952489510780823211299189619368800653914630458388280990393517071686472091596353986930350552763955553766369806214577827978369071991856696867850223947903181858823568659170695891069157911389539798282215530343380411373963030574091442062760857918387418876395471460456595755478356702915946325643000699833420293879207975060037877516922495637339742485205237518448117990861524025925630897346244651350193128620355960212435487532734359475958869908357815287242127340045420190321386398970065639608904897875822522747822737425817908138744670471564775984085792744140778904007472507240965545394509869663554194020737700504237072840304201755868053654885749095461930854039417695607825345964009822746676123190489292522914071748207687776863021882178332037068223613169494306250384000625934140564333617057828629196472748311642811569397180362266949350938140529809130450453964000825482862259591998193473104137464885225471946345439983458962872489054126437386767554672412020877713333149332067944571827604772684014202891676004356780657332546403863333632953428130806571315330226527105553140352634127857115532597594062423220165518987609964787436825156695269514730252440971991805597624189473248975419682990010460361833646796651762113375295344142784273368556635476106166448045512149303538442444361344846613599146385082436614325709858338124717503260279948873386849418472607959295071994108093766010092893046822282024895562663336619495427448578521537266889592497692169485731181137809176894379568106447562286870898064461955881866242083623863005512623775238840247931628375824127009373710880912582301358262395315249384299640268873690670225941316075424250848592076577207042321945481370827852657889552140690247634716854191773034789367643155470445914231147794757262484137109673081519150510787525712529565690522766813212518490911941006454680687183034389583290265164003369411988690278715968983302898510119538212940263061183927268374368051528288457421959890258256564516906956368901390463566373207907918424633455999425401243402452949323070789834409772304819316855783752857856007406148437729139847762653080590068261167515426558873487997957296004590145629487020486403755473259463056450744415982009375261547985960178492883559163277285242860686292173482483054525332918880168476676192128199023348755399464352332626196134551548507464120022994926305866777455254579051814844809096641165780192546188029005507211084829706670728916822466243183470000148248711890721473601724027053320203733637268167519834939766030452743680123533509089649041350189787254238155284318978917298139047217443042170570806185369029971814188186595787917087959628986737568149225721280409918743264245333374056214142623275343454903338597171705708191454229004164022160759644745543286957711341950020977537892830274212438771861748046533220656370208315725609575103516069948669382073548607734271990137942737069111016841343149660864248474606738865344755330844562704491573121814152595592309945042663972470313628970580812239789043820621674421313864341914878662295001221352938709057816448540030221332348710994665042288547723356252250916416759817990070250171032287829255838162134394320594619355671745398963217200233235495662542718616292240571730581205756750469830049380219827592457641331303822133410309174714906239343656865684283288842868507210750135628537780022244034601186082084753673113102435016435486092115260058066761793369935618520856050046884938766590962635518662549060110787792685893211534294439172500413642976119511925021646164521316450707975216270477996624648903501585825888553793585964422209091877230501453392381383257218520032718780020023485145246350582400863406112416063024645607289484714520101862690399176663963092482004706700059873542813963874920865607445877233715578795020296494348519163533514617782396585958271458308415297501347249232901066422774327920912809609559776646972349066507785615177328502263810342776066369253516631095068910819248095609759238527916703817294981665669370907966325631755114528030291192688074571897306825330221737473982304885815269625962038306181568057762508029251716115979554918365774029156589968365675451869292682758242330651601160998369586055318513277111735368974291910722666927622749084207011072667948426095177282096273054337071744985688220740738795095816916440932310781467502210978128502371704813226792125530650680385275708176526215960044866021883855582726432371761535075368884255916315911407002529631064231222968115526316853819383353134700053325376702500471738876805356998662518095029656020781573216587848372790044441287170584125729328745387674185699370974224936223317055637336698377215333426124425136810357635853724359677158934731749512436536623769449796217959644011952581332540161537925415832140461482647411395365819797246177459291879106048221336416621348836934192867625256663036805381325854150878908744851343047224629890400566497402141512185931792892225604158449261283022925915733865246576247197073381206781791936135481141305345422711559655638938718138792583388487710653845052949745660015798262688757588008627569673651776702424967248078283849778311719039518340821480617620910265208595655995391433142104704254538917264689281199412053984608699189034298136354219115086432547938578759362356524697345219608161013914133726642418163661091587681913604179353377800689848580956972666984841847384385149971931754673600270396903891095374188970628122767533507670782022908465833771645826706770190306175766218154762457071841975749655055728760419803634695048184951583176936659622030636031863784903668214674169894954214481209186152534629758801969179920816980526427185461168119787613251524555188954635386491869080744757666442676149378413389904190339054102437391795838482395407024004677539063473936735878389522899208073799112711210686826286973544470838526558128978559557582572675544228771521261445140755514265102639068728333644332875477998824382172339914281883419037872735566699212676669181774536102402992003252518142680174988379647167651218294874202639762187787162812849745134445281519190478396705845253668654398784059183389165289935640435821448548875177588452923776260540180641080239020669585006678651349496099997622696869223590307981291780619540118050878040866893133820207471872566665432593093286210461777818249869424962004579631390759956312298473287147763098142532361970278596149887991135578176426783889132708337183032058278460676599878697763254070064407253595043328871746385811201309840686335633119432134068950968613030458641055657929842103113958001969700606210084930473596955697500178762622512440473618968281400841698682224838438219643934195144049448072464613686009863471525394526501437200782201119981044820298455950382438695325426130837252513132042671613217643654343093967888654475364631303792449452785679163699250931513333134648350778225360082587011384444391397384172220654202658432559819379881151381055260134874938554068657000522605150818184245064600615947955577421517552963062774014198382108923784654868287236245535665789235494549222770898581517704721567823771142067639315448027534590994509086244071538600327369281945392183119243831189848564819603500327111322276962946963665765434246893688591109641211160308204480669522854129584598777250251637844431450291134104272059363999306140056550901995397256034651308673330586535725370626427974764617472389382532774372903664189197879609421954374479708850152858362549067181810472263781002451861261605933482322349284387483559587135500902023313317491360823430727894722297708583289332525426984658789960752129587933625454625402514514763520329413946754492520344615870128636895421517161440411598736244193091053969298493014409385905602728726637964436566885748540677061557390134940989754685331707499344348679871255748847248107402555162698602046646915998592170272655239878634907636363179782593717746806007670036948444571120140269420875453504572852824762999714497949612468494059187147504255763655231746598199970774802853065804592552325778218163292657086198222145547340840130413714988222180880624094186912551794583118297108409905915013449750230058364544008805905483025787242314130624452668157715660466851427236195061702449287372827908906338945125538339868514091415834613337341261301667879860926578777672645865509593561287804512613435069560093248369819153844473371493054576775816082581190169930712044894725059493134133622272494519083100352525319101715603699868257659040772741719249265964853490229641026761046231024112962486434479275076531978294962166299976948948983717613402188936590856850174607896576648919108186823513189882143182109227708687497730982828779026753157430786860356980661468851642155380918981032630399991045022216231514554357596804259778270305379203212783857187093387238327671941111331671627989169054850724325704121941743336485395420166159766631663708923697308418924925582074256135508602216757088166757019090872946837609240405134908570157037996534407186708700962495834384371038782451026666073436737876028318828088820378249622160302539970149575756592896084699243979523086490892721750214051430223726082742807447188317833061249592501158895802438947111010148781890727115755585347405706013435009186416060357925600737805814178422150736766798506318337234350803762445530634090136338561485908836868568197139479086938772875835382842666182492090414592942061477374811596427988305691875090668674901521356041433755195863801861866737086856417169132589094172861407437846465320590838577796059223227593030415418599154153676013883738288593419266548888852702964530828077771672086506268190563313172500946329543011042475920769541897814063970299759233732241309174189808047148909523865689031968662920896103859973199303868844281954452550452206969071092364778443699209560136937398011032791352486659521231185527386199145558437704302945695045242596890250951097483809158249034738643807618729221306438729812266173188270691145960491874422232210104640656382441193230767536174246910403623466365271578796395383000968056614308703743720354439908798384353190704377511188672810104605579495879431342571297748600873090145978951696565238354955347172399222226907146751686162692047293539622269529508952556192949895969490056358935547856963637872006237698055332023763745239894046215007511446004470442082712914859019804749103293350990585100307312412337638624392198098567786110058024818546983218564807681180109359200010177588965941395247083256395232229983093354571933120602261314666790593343571274389473919592346731213433080627725304505003907165862944290616213310954592658756537669729939786530124133376454818833329230401925018108576017758330618932196626884771416536599213162573255995582982766367627756083261061452618245247418964741238565602604226784867934128256635144933405287546378536021168051725267559002816913597932084999798655061778050418723387983386134536323792919119445558170461050974362816029041365360423467078131345213478353727231892999610586645615444380494031760023541469061941642901165927572348301426274520273864329124331289108499644754982304990359905156299767361634303452957831997340586854644272801249354588924084419622170562705287897919247929745165328657478180167262322982420783199808731747157380890533504836598982950945387865794844544763999325585645606769457248769473317283640656956138567742383624261930794378078722062625364667159116955623948256448598711928141991656352493242395294778744194211076667059461771183484392175786452231167634164347680837455854249977155906903062914476073721222240027241169714682347375583777212951085396420513149365024415878297510477191285718394533455318082366844917978349914579395802469845801452425155008344068012048803074637088166879370687627898862652121393649640104116466992382822058890732976703350611037630500944429737249699947491980964666998332783442484784890852791970150937571046518246796496942774465492420461625885544063812361524130317931768657512518236113029078193638558912327772744139837015067513004580848792932508181126967834355393037746033150072937111482074847045714319336012352387022857495498817315031415133117351749294101609098182815200546111602642776039982744742234233008028038709810838649913945324171571657014946428178698854934049483264626269362652808225214910445688713709043775846622338484508151621557094085295566916219254523053710166458214136333437026752185633257464524674352780212196223873473007342603467662629510580487922979085982874260216412331384481236467332529471749954553020336661613726135433435869677812491572262106065768877141222699055724471408056806605181180699694395010261902624286514209350641845664884649413499600738964397389945527586483384235072621272846421692004304291217424328913251699111536220052547593500488933642626948332314870539387058835540889664135995250789469870027843564816844890311421389136324234033461678558165074551164392198862782366856475055072175725231582494940725637764770656719923149501018723599988895818999142571972314031643375678378368819966832912947742332137340146906915047998839411507792693785755782600506782984583417331814428068422848000389468408195963216979513199144841419573176603675441263946680074778291175780011067220327239320176735506475260524258164706174869073369060595833656060290065106227171011762510521021858729447400515002956010015442875385291167682253158382655617758225633652916679857594281055063076157724503061276299110185435597180896261216800129680147549900392694631974662849607931291544816028868235162903350452048880342825319451590114456654371496571334767985996098313937661746706746394016565597878160827689268011421801374129396084978857272509337384428266203178678965675069522919573214561362509411478836060906996809471424749911083349663977803422943363706965119138435552769931350839275096749050674785475232371744116224305577403571673045705342564360971468403885212246211307079136533953150519985944397796997428519849006992480821733536078415105317906969070585548200021859049877134857434529369082318365054146010121680117412263966448710386972782394763875228078615580936881922797522569090412806046636487671980830214132604896630843186641419084331804648758619088766263306529087294683863035150749948246325502341372546160581458351791280217115508390228291545689703354677949384949117472677091137358455397041593800178856945419390114387331288897129597716666867945715891757371133575019624595430466656115640555755817986281064136785807090945382331719742731985541610498675721281625293895707675988405463265069057290122641473757779917915967594161575292035563555260772230528777754144402874685670967702551795739373497637929420225096241824383741489960004544009469988492758132786204616718232821021895706405780769625039674366589293233721737567096226617844591657225369890078206996010319255814291904756333882269983880897151641020651084585698465173764244526956809324561317796812353615436901006888430300364526472145189424820596522844022344018037856336546167112391394719087151851823850638423330790879328710130452012660460997741835841961825214388739615463129254552652521098489773586893037295490928170821613331385278960356576594831370572763450894477594476072934930933247949772904153934479270472089140484255031707185902937278407468882571154503419372030621998353012351831303945706137488342008598069267331642995533407614977136415782564213564064729929674104866798919373985075542739773844807571023573300553921485905671337631548679942944292308024039632987535318610776011290334278445744325077862495318649683270154073931689387066410482786856213985703876223911511394194223894067576116973966963452544541467122629656509666559693752282594548195738771554640421319131673838866273144278000222990516649155366008917562620407970353841994372284297001935616561744564150443806635772975408419090980329762891205897133669307950320220704940202421135267580928091026588327901935805100639261435429727838355419741928203181335864179153885141169860126810310816034365058273032725525696471987142844336093149630598817535306803429941178153444557065345510516995755668073882981231790374152336657478103114701183857497885040511700381992974126950871231208081111904613454075185518558153824991993029003803517150069669842561128426466283161095777611277004804978072026207328074180487032824463268415240047240429068968154474663002393132296692359171284087600211146022430839415493678181591488728536444919548885244998388094839515686412914756073158198922217124348562268075175874007602706157294587175184473007640543959280205745205335383483291177114522955789190921349396272313503650691068844470521529546541172653232259047951875675772091938368269319109324067179410351117684710864234554161630236310860930599772692830331465069434739091824545490207518583791152671502686555176954803423672135889825365125842144264559943610015372638550873801038996866181544635678433743696117231289247361760580186163261606415584750900538485959848464681507621753616551280989896382574412401962208705634409564371626438383549534293253779667066738949805963388094087413742282599654838221330553320943107330290333571531298363813255483140518159886251507611157669584071482650999000523200740937349652349093520794737403019386640477766100900428743626245125371911918157787125263910057050574768759343919131050344274938441176371988156168076297695335596317990829334368691945417118781940591392339610637062386132012535258863179038383324313391286144346995292062797325640373355037054086316587499392017614706647506570506978088049335384392711625412058083620153408266350817571780171127146197561356744355332979399135671757374681532754493274270023683036698295984497152073255936444319901800867935132717908112344257481743822191609216831864751096061064419003520085017531454335272096955714646635108997007358552598688384764353320703385388262222941818387651334237982205396376588499500107547105345010284397895006702771278201269394991452693212528671309407277717564137019851958687668162513966339173002993369261555316537456974490476864305058541399972119349219757441800926690153163109732892305870005725188598131138169464833934368656954004852380608966772948260711422936105879008278352283054809070938554641829216351590235171784683298486455165572310732451011392602620764005549382038114128317518893936609821488823945150934683170110890607874682888214664926528962158900313303715974761671632625288028923140345348344963177212382923236393220797574427253500139389122957282609837127104698283583046328146514499832656756596234549297263137435602526097692863161046007523984793374265138071632577464024863693595075565124178081941112923823697256190997276805698474316860098848355258696456803132151463286109385894840634569526326566526492014370643429669705523118004787229015873322223075504376030677163577972828133070567389846235867767713345103393631623329547427032556311337229719532524816101243502601492143611669469930002433802553583513824665719927196028003107171507809349230801937849923803711793064738945751705447595677776375335324882527046030444273941071485478745482167756086526708987389770782712706753710687876391718989993552701538724657611989036935218404121380570422671512566169849537598395234762668376769105048102623388101620950916539289137943708733834615347503413746760359223572674390410465200576701856858627321497731850376024992974951398370101249501554669806648678168447478098035005525729177691793764470146635526756487725689776952523103642426036205835246409619859817911633582843060176740959764180914255028423040850296219480244019092454488535563096711710078936142682929099065556814424612617535156760058726217694392118055532882139932729473754304890070362140781649014823002385705974779988714861505397734564737733502625628882109828016355209254026841302078414106562655607105292842628868323099844010950296965139174668340320338029647893623447811580479868135360861049405758525359961681525298571199599855664855364410291386416172379171088025119295808228503876868021016167900152074782277154605398874825239149322445547858559456177765978292484964167772082522327080381873833863538353949017805542693460760785823221658938623825726593530146184822477696715008102727518710254820054131078843117541872608032987005642786317763962616044035249124677728506667853199492670540327535981064723619866226084230343623876200607344559438913401739560362251309055909649190985372544159092293206985915895285734940731253485311591004576680222070939485694638252547118618415938015687121025420568897047192425237640672698847417894570256688094142945855714479027979842006974992453134014705061933285786891435008554139773305690642213560312536077032953544673063368452413468470080066372163491728141816792861992144867567202913168175529098609761848713596887077975528211541640223023150134426563059987574180204294080117094285924720439044828117798534748389637740117425038724304980027648197097447856246552188947064515384613667821335696252537877226682035410930093615895959360599851833409853460299264518330235630128506023926499385225866306592436799189698193003758198723190623592780914114998341022036870990711508561240941502281844048863205497950334527703752966906844185227442867517552790484873955276152806693216487399955059711167442733936449978082000314235288292983992369948335354876746955817481543514095790724403253591653918920246304339829845249020563613977203671672150366284223689313325310085920861060843884641856015264281986422663668790442609021808589512545306189681704410664204542533280173411456718861274696959150480461552167285493796507708103860393287423734504351233009775213255175757205349885025588150104340008835512590461735263619790319770501720685635804069949940781022432265158047013763068508678615953507010354508871539758077567926558513611042618170756574115104777055196783554337217671812676306140347840376641559905258661116512638141143839744609535313373356974162015876554875008021114178543754717332421551881092451261609352533113118354252512066703890550589654611719971856459574480611155371566887874677488644460488118850122396674688408368730091387300967924321996930464689072688044620386841978647959452047930653322450176915423656844400011125017257902340277336470160813459628720710375412214607509710602455410196918086890171894040069168275715718355088622189331206905170622518766724752563971263343903487901503212225590553089342457152265104357889808231339920978960230104030304520919691548329216929515753417876984653618882448204607896168836548037052775339723182884117745407921826531425118917896938663717279885819491138060019480706814945975269862275416612683302247119280899112682015192072371795034791175838278943452811705223716757965227189817098540764842259028527812797755860625391784707433072185620543489424235629665260881769489403244549812812197128363844569822090361081698625698272661568355406218525858149232202327912444738282256010097129430517744947434154484282638449669699838880684963285449271047137758398026291669476131722710416604046961291078061136370782536213448632416749737530664128256619623679141452371414677559193458899578439637584158271941658456030961455927095491086417772968810649532287051751397991595091272971272728620308554721143177155716436794217104680614525282320872579861958650551952833447764252406558487938512502060551368426064275753243919219861525269208568855593484165572643560220901658515349325663282331060575393214522422943559305680189302324949608208238526747293489360963691336295680713242957649940544906901740364629612244535142339625699213643314124825479127851568434237893157212573514165139260318395547330478257586852346569841688936204049817397643158825240578153582619662306009478905246978376150516208127088757124309206151912702391525811844969237729855149474425982014644979753802287707324879250709661857182244802447023519761022717054155998596596688197180985813533907549046490059077589018885142579111697587505430527877197531179847864249927137447736781888135067187493985071984714645777926824799398428403959439021586517453379324993607238700492612249766281034148917821967415389590894621900802039429325100238279106322965696749478284442827287766672619248169393728841451949833499044226605549570415355022766295379925689000944182911310155700310181435422337649321504244493717929344823720192954388889317682194841543000471610241791041308484173805546795122951964957140105172781559312168737088926717146221437777882445629571719560773577251664977938646596292604771298988276694529420810468490252254184377346221559991189057996964130510348549112501061174837021534667058508484210751536163531426048165848907982881013532040529954259019877297269560673923401206751455683865329581919629898877368338041127777929771926294069820786046000798231568392867642710320770334492253156228585756031610297687118654489094376156509180765181475658001254795988802094296968370961778086312914689891124346180790271314378845094942344436867359918345803100017062037957369822799657588832170879159114370519419147107089694370493642946093951742249741769761811647104284642194560918279834811136680893467486048966346144264272370431758119899933481919145718792620251767657554623572688108212239546829197336672397358206382166084288346473565068161244801276757943734135398246805738563420029903441522198604328756027243067477712614139641299342186402913996852099053176116099275944006608190302689268654463477083712368526188245364855163151423388663729184484698474865306721155152985014914757073731139785646127604187079158419843650198689131574560560765729622308010030561718762796107373577655561783039568826797513600683363786883037147537757991394599097583397254027761499015988605940761280571689770532907249643751036171543809315439706635230981289267467041206301117468293086351492619046887601091526123442788817790117307260996891761848630497409549465929841836880605631497977674356892220583553540589131456524394926819493325831218248458707253118756845666554499294215568875498087058013705469024728781364911277800826875312865427376222620272783113900468793257745356574587319063998260852397653644559012433969402395960054965001320672860974355246154850348590292991307265359506411260368425061951006587908310936416568664040829356485122743775391758339335000379498683094781221341131079988803807220753233982808587191095182627693602644064402579696486411409058313938689758689490952976233775603951265727436218896105462421506264259798723551888384474485370940685091612694411724016339837819498674703053164387076278509586943156672849042016624014292747860039479372960448074016321066096147599782321303608805658911307254405610071864115845755466741332420130457319474332248667584170220395422111209241691807144883980878701597019413491631845101261308121947595089247633687317573294786158198444718188394129156297477384122329498995238240140575652264129177809873920068301733365306906816541237379194976357229985423432607964930424076500846875121169762428178763229732553529927710730139795386393566412282230095801464020534041868316445443770556451458344314493034094883987665965084672448575853942693293808805692378581537327991337473515965929335701382981878047940321334883263880669672159024856509282586168075792548560075880282218516498604608210933274694165091647877353858759351259001920637362924759429488973969895282561859777762864706325579528868909431063526589010070712976776036618247782905159406097312177340356293768879402245444895039327092854012256878678151925840280331170182855722681819210340476111057429952489081235631191604126620937223247609586003998557889995756579866543297574691640308779913021997903522030534044283914161624172752848442712023058560298349464418083228099599453023237636735709328866643449364061928293645683191704702927603569243131393858400492499245992133461210343459542072704225504335096023280160748590543020903224721050322090636247580949559334398748946143534469255854650519671917836493852412258166350627753168513681707907302813758612554322440886867395768138583619131394145948694259866625265996038897623848029116619796317966289140331796401376357013757699423324858298878572299755893450325730124359180726573696485430134822656476517485229767742102614130107724947610557182724768668222219668970325346676492184574012830507062173894429052020273555177195884215926892766871630641485831719077251986082031547231321079012090622373031274563477913369387813002988497785787127266980407037701824340599222483452993327933639462380619204822962218353828879679079663707125804521028316004544846668351885711145565530357223597551033124585568660440875505416930092758289754289924292875973707085130795188466153907447728173794744199603912390509731588775909954882518873096454081698058050386951565940253476615469498294106535552148954121887859163508469499153811352932284803821152304419622804801818267698509840108561732811709598909605868013626470956377536583767133570104566752119614512322202837294440924740446883128742554042803306167359849470278761580463451531532331901912567052533634048120003114932395780771905905625558075690353418041176638058755672493434086896571200166471926666289832617440047031567886018708834858667255635702200455015809843507925228587166775901130706805074136800135467947279662397995219669923747158372225024879063898319234981513483985492644426729316263543289532603535205219862834648868204341869601654564918236512288681505738702569857403536108365632779789303943772492990701036951831564623359758907639318302573748094147586853002328934931115413056518297767673953769133182136498481186319388446702990444211659670332371277817189343283159334890484599433454152238777640718899579466977500449730762187011657565656619597209112075588634227926453326020734502559097927373053007325745720568070476443525829590838910083165324468250638683828261405713388500386936638197860339616675764503642169738649832238438491848233383019123754112738855071956356318711760135253958104445840705243150420073378670592189502876892657087248094773366563663570190616352015106164825721933948346020403178038735947203466994988980768978520913105233761027594584784164766445943235564139296759305809323579176144315364823096971800704202617438539738785357119928054809484299035341127328579100020495892273392074218458338996151643903839344828126643526544169320473854559376354610706036312770606739965653356672846688680972700867016624044158136718352663510366001622232464615404637505577787657768553027470172502441089052185919427006519593393229585467640543920154671771474818473344934665375585247459883317085882027491766924956478067449284432362699757522326563995638391760776800902723375790699964742992303876715358460533045140960559207470952658675800438809842431736594845907197679550041875029279264586281845012968493674049044038680254426133703423927769871897888719881844411061891417580692776383231990917610349093275748530890324606544978339984064776220000522647960012370852832530603845375719051944853471802104877504159341156623636323038930994406246791566126964605636714378677288659908375418206316866768515698431791800800301939095723317775686366229378022301252800535888846638891162974335091031928569958149425569082966995532874524298645702437921252525402458234994090816554992077012527132611493786081639357803137205024950364781072705891618804968038183324248688417237218891211546717944063338425881190005952160419044561663128983384149119609642206253712897020155574763065231291713189343244489776470689689303619090506549788379561693178960212244795881983998547625506839396640162483547711183538574768870141545966960290139603389715278657573909213684694718609217411947958039924955218521784264629299402601136963549096046057209494996547819757133417002865283697854721458075517641564335867604039967683146856497289118484660848703029068332306126042829498129070471991092224910100312909296507834750789309465391794180730693539383607512028447689631562852574649107023554681674652295775974330750902146923372407181241745311233176844636755661133895920257066071987762063550329653001634368135587993832974875669128709905379660222640464669676103640707654536205873584835650193098149464447520087152004728095627617696160007362646221401546316475282452311223714624178908710449684474854058930040984308985480373481108940034211301255021357171976661160443143148765368039588255573530654685596467648419676675205641303721442233166129275226002456247824388125301764864094387651386782191071328243589793457488284567018858459746679303950108504341743909725344053877832167254273112624028694777334951571185260584515396727571624048291287365476671982938100899256788030859686456625871239851309822110089323953558167552576324216810230805042098237296539249761409037363679827289070191523629576651851236059812536843167626376328772056495576596587928604288524155171036528182450703130542898723470930457106726294288892305744178896825234984364926423408346554821098429343174302969840771627370735027291421860561013159407298517540349867076998154736408133216401981548634205172830396491760253527820358739210868563231207015288641007220729626036837050857400954633401429938112485243641473960080646229112886869416597033754969974135116965899307936127986837774055841389262128301419942244476545248586939086547325250901329191173644750594911530708648614763519896545255745579228350099431485067941186918121742403188136446131571857000280768299064155519520058731887669882703725804418985844197449267070516044718767369986904756990494872729276938374663669769920454267981688450430169862802926957059894816583016626398797101707821082137411639080988227970262479129315266600667725753532262976265374408795598385553063749250569939099201517256970419106942458983583310261058473369018196221428924274610526131631313977385497290611466132629516871636013509934364796394210380500568275376838036248954756279796559364940318638610694330554616842007091375489947203069087547817565450273980338323563433519317012139434441644899598626030226452457776972293128162234530387778231665717489741936300230141799062829647973581603130718656330280398753105936543561315560992221261038262217303826143104132239654711868078629327688218180739254932389431233114439195116714000169685827697718945477175253574406735752454637269340386772049768031545876454898206802634573305395064060384889973526361543144751511407393595044643503750509393879661470706870412782134162583542713130834742991403153447421109915634253731766613427031781776006614227668577020320170958096242635258571412154235372459308236923447477057017653972106084995524266798908632407396193988810561958067172222875238919779155379225545056350337585240820952272948869741285657938102492573456657298956137985484329425953571258098210088496675573450437119624457220088602402537085175398951152146921959072567003823464515293723391437608232924157586209247309287312524845623464857631222995131798885783123459472175114738911894196342236547848985473575750019859520807070768454007665801527312246678399324602014913903159479812749551115242340304607427230618413585970323899965514485775863344924381385250170759861154566605451224261555759566570490389594656407570744437405362680576775764137681596277430245356726363282366679446566679081579991582879281102390113686059060673241005004115489836181979021183230262262387729463817521226718336576875413124003391933640906765348500374617347275180686729292138175904026280500325676850315005181162055731948829647508111020450643080042605313701557155601538483126547645718246890541416861425399020374337607938430370614913426098083598918961693455553408847509305329327644391304751305100154541720853896331553333369454018684837084731290871894325079491568381831887755094615803561321619364462590159864781937803778037438314797876564340597405408033868274791717803825603851665231336897323598688392754732958445341598163480725624117979044261466863044284392222213594972151214984393811741184156534253842224649425155966040478919202878590104247257673554708651867020220282411189459278388555037613141440812867715332514347729987271597311983014524844395700112739683289469578666047872478966216831745578827957096424369813104200565819523248351166091994861853137865789178844292887622178784834004909689076770654590024748359260045447981357022177159656333157789279088934960913511158534895425212404919995146391095794227247647975027917099496881625468335902613730191125643216547583409803839965965779498701857236003617826137284360370379612823211897499549535826023398585794488989591203279277910809049705866477092341688300071846517637913507789396319130438427716440265143169576806092484475355479471332992969810213977871228893369798628772215433630825295741226134551887476653902968579371778547021527507727004521347936611494825055022484272045183732393779691207068006439431064644880259252818757713579141280555074279650458406115101467613265291937289614481426977156214668789945975049320970729979806616220460189587228820923883153444935553322351798337572316425493610461219777199409681395506325472857867374173680151128268795799108909754236925046661045076235192905239138325391846429379540054796767388599391750324512842339143667340282767496780724051661210424073130008902785310791635521313026059022263182638589710956787507156892267386316371740373357748732297355092367891513915619525031753358128401671308351422194408579875660576078883044789318805597045343317185636330734073820353957349687743558679046204420528449382303643264730385749358240022518345680744270402915373411403350204357219036588956905968264960699858436912342566717026147092554762149153602672590414768808672907509215091110680148303296963057700176500994949405843323739877924241416976082737189712784222839227141340696154543083151772185006258797530612834054901736053110053500803016795219865400728395774558245425823760618273398295164175987939008493056005953883549347539826875013301614699317628631712636513176872086917093480730825054892741664095481054742210043997649243666708254260724187795466626482325787676818993251358867950014586901185689565668628325807253299910512298937403093577287621367730924523022756775752867611150558250180593684951090061315766704484023255478902317739826217744109958004075488166965793810541220251272903405544516071860970653868341095296655175819468509101175618008023688096889554650657186082125118764963512278579538013320931505790954589535543889441535781045326831400602301347199053210652047357017737972767775110347548599296965779311574402866639630578249890074882849863943243574427492875731649183051876034669479731633523500501233165151792432878023248892281674105723147414390756193129547328569771884162515902201419298162386246448164258248168877434556971510626036479687356876831168485236314315779990635115139721297556953264852964468402620275580659205672753795061375214129631181240234184824070969401026412358741138347712623890809196439579055311878831007522441115167854754277154108105387487998030463367696314526630124911617066880620848986341148515211627876999151114653251845398137267974894489867591109645423474181129751301973569445418090290583901469272676331249198450349687890930671581026746049020810615369626359993600933377888025996639645323367875894177005361209860472242612893275557664180011222517187899212034859629367202044997496995488290326963096133620749410752720935651368534663074626513807244796968278839307102143980609085427371714089844204443554534212289579376393050896915466567266291602426687400936990437327391799396698323119974205219586199575872839220878861584528471950016577068043687296491156505490575363033960366146923900846248234481658161624228739574049086865927888831295083634363022633249267307786455999771829636736217453435100351042017028127655146380663551110466112710655232747760997358658451812795698637934818134275809753550223100803967573024727268679750671460988214903262571109911871942524400355125714910490207138237478039553657402692554034634334356245139008110233362077194000538565131531989334766601836314909886159017612061569039899029783773968073084791225796032504224657184364114234228829816631380854975055260630414853726453203070557274363361929759951466296450719017211883558355318423102674479773805930878848899242991015836680242607660258025237863369641162320043636203868716368414093495305052618607097482514292298612542653002319632796254233188303751837114314935162561691296942826324792627208110731493432306171012222384815740931494089120472662730464569327232155020520192883279694997354353817238761417140044569463672945656793487844084285035011364102050290487144997640017881989750821826199836187549899042016713856564063510593985678718147083676694754259417575393896031858144963905293076904206769392962401429066541948073728984312964725212960023993209482239519013205899902093452955127692862667625235814432610110053795803450489256575608291743950724041151436536454806115225721224228970036216812733015365566973042772143592000737589518404852150761808090968675420540125098556928020676723229196414425873274669883636376012973000844669491542351489759313719096972598201458972268093230781344005461821090809775180810123691431383678136111273768181190837712630201970450824561941071075130233945840877870914123464556401305170235844347063459660429247998745050603050131898899574897353421661359985695057883403644696809403513252944265507303149422056806800285894195844514283359649840034053901879354762054578928836232754879482961299672909398933679384520939772240252057181148534636440684213802021963086904827187106495571223337377500799036316474233324217912058368107861627887452259011828799820094095503864208643136952811014325347001800910473297950453674043645480012217809975906072545590673838005266659363896758864156757154847258051494662522050886566065656749163308935028706354142511631076972770323910080165093967625398904202561626807374122170578677156995611230700639547680911269483486606652321593298648399407485003086607383351927784555456885980569458978198010811760507177974374625905299763942074354516658732075345142496985757701725099773413862243305416842341898815869951676511174801702738371607654597147288039821047897814426520516751536363545352552572506512570861902499183478074013163109040793268650251227219114578223574851818775627511154995614634881676684099870764556363893175548110967660500788898412868428418876899463192210527522178479382355633347810525377280847971911902637402893992351798821506391557878635727531416980566597678979179810344857339071273274291736258816302427864333962219438578491311935252208085126796156689097207970862195123973170664768192480945520250511957965438717409320011727975055665902056778421259821065780354175324853709713916094690661705232864823932106468310392982237265061417530208374752053987706227278222223397000487989064979125003278971522926201768413265046690673422289696661961930805826756294501978073992258184455600843335444975276239123900534172142509302677738183234763852025616627689898808354363421125219227973186897391863233349151538430950255375897091578676994851074139941378095387197927595704726370185768149827672337539919209452731080165672918557533918625337499278954073740498851470702800482435121897537369105949061091634922023286321602529063488694663256146243735905276862149356442331890071033938224022668718257935555925640326393019041975778090571570040991324719143668516795388137967589091337379056230451361924918819712483490209840226419945633782360888176772760865116290548929625467644932581731017470620980918833608866111368004876147264884024204436508102655952733708245188857813934431122531554611218740371301815062282521429260418689983430662296434053115907876266075066403918575612539966868498930501643647445213278226665797781616288846853912692911650646509387360508591485657043337267105971834866410613376642804734819186488546241650785447676864894814175507306879014968081024206378869483558788129962047227669044300530990534743698979276196210959465095729917114083665573963707337063787035200687047488124107211483277618110927436770014167150297970261234762529648909602688601528057712477744844879127555251491868298784525350003152033445322640434347315167214957049584529689685195355052621693949891851079968243586456480211350770113697284420475478958990059692460904935517150434541137360635569881923538262950276835703055165392193515779629390148692530066578354082715779039051981206057023560653275960965622375490378516204129994864970243829743970570470289361536842361099005643370901821799559618756060004748145836174398066257468766714545963191487389429119865214595295738074052334664906398319364050865767979644056565199802948629897696413002055836474185904651856468511348475458153021845514760564776091570072846011324702974280368849451939533558159605435863676816762208672731113996004318386035230622089534108195212733516153180991742410747308901948447232772784249236774282888443294864990157503239539188725676016113694982387622476309317170587933753736993642861007513292004073275866558108797495618071366783818060865689927202325472607459901913909372317516030068891056304095865737512143237435034135242170864648679714020281527574112519733595657718215776960527427043876943604598400430446072477092842374804184465311928111121858910112913244160270210203554817283987221321499161594553818458313263489715458662561577552099710190081357561612642714052649549034186528468789282721507187579031229114035353402150073851791951656813860280358505514547264424810561099965935762939535745509293349323981267843443124670059087461566457135889483445426756129745947763998509692943642112467413154695344825791719735840683512824325275541498170039416477403840883844405127798859573602942795450646744264030024405486414866460757781297555785346650924523852541598987681488593296878336057625007724245919417310478313378606834292638018411939723407307725149436872511607347991611047598797366423791583470038312591050635654237569114826869235689999890718164018396077230147403281698244455551689286073212714052314435264725173715770975215588000113837580101477199868947777712622082524349535116182655689870062234834018630303847864763491445927441012510689051004154552247559583936140986901504652586101158308197686961330506589303637538525687706530725731742163159728964539626489452144684353169570377838880166246282230640116853635798803350875523827075648795267384207465933607238022628337992824592927183201647628410261966357507947334448718182852860013989022818604162309094371229683174056442777513674427364757862031253920369395044405942803510624056819429743457088713502079265977474785214798431763789130719950746842045335669236084689763684386883669544854917163865462498080376712105447718990143565536214420955897633613958887816059019186088151790004918541343693591264732610289164629372637841436636391035999993669719850190891336208186714599781324334604847547238471405528967588322992580252171947931461838624305551839390680110877576613345525112585946034447224921443619430589726441974959677079596027061764412153175467420482866636084433596668602996360348312371132399543175303030624556354937270369919400676338679941281911529466949087437142853635551093564992744097219939110649230997879418923806970182969379329055119218617676679038471122335115553624164225873887184753939550906195954762552870907997646949377817159733102392585735975478923069081216574968190846748896663127715789411085286553619542005924622312195353251113235345794790094527008280519289291836966823296242228219894827347668181947591033222148226429766494447317776091260890428150414118755162314468813497222276823615668452180211818447772003047205185949612812428374987672701944981900709810442502709149941210997707815039937978736663451282905653143220946708001816776392417219356127671146500043525107545404491889728644882020933618842965012300769046428651013474163271090324621169420197946389355282238974051832098208675289823026378818835769128081420791618216532173398158609230940393858978906300447754381237613383415371283233709198728545752346518393784535649970475305849418660935454153113262963793380083456909559857580483845978554152704272625711966106229324195585632012176889179860429506879472649718431461199403324577523363422102730933388317887454193177170230669085110949701551285438092199640293297655347322591747426591045891455252389662544692106444427084808859189833524549901032482581510730393875366512130145343124979217858684117130236564218744480736880785318673263021297347610317023671783515651586387316744926747638934221714998198286472595507259717051073963708511896886007728586263089597028208605544390886068014055024499174154194883385883333772331051298737008654180363341845017391449297571193455279347846830935531660866166753218933794338947826706882258926928732770429857511253709549930544614189937468406023512025201314410138543861147796262547676194301630070868830564672391246951345944972759757236594590328480988660698978191109880832752174480611088479019789842014924750696747796863489549215068022372271635376740591753942568184549245997464980130401083413617576752475445140039991215872964515743014441787797951088540409552760891400150155095468213046109614610487793962085729260261653228035377209967451566475980701490949277990197381801867178086544279583294089419513188452115984256136379084100747046073656356371262630717654822279637216827491709733079303834113036268357081889838304886600184076255855087954558295424294793610773049883655344048321402604104307025698929436677999116163406034322101160361721773468653070719474341058955062460298175197538620020697162109656516458223451745999852069176749570651477665190585800887799501500104386171793431116276280449071067758325430102507892138824927122214339907797063436643734557525447955905157592139920297012789514280160901717213277636011639021072710184701952258809639929706567211504253656773258592813811037325610587666901253838020509099150851938336508154861439448739170395957175423773705091135996284897475967823729428388341555832142174538761232350128905568387557827139878075182435627729106601456147352784094939105272682771142514337174128160445507237697337909844372007376493283227868404678702036649799409629395106041508367867392500176567223713968856496289629455000167060674390666214868324286898066999905652728756856164235493978524942701119191315023574243768375051408703714853578350394065042507595624571848824066591584620303049761729863369960121887915514939743965169650631768654959140396808210530951230161939938149194210070645916902804441328664943522430350249337620581207713216499268556090743675425772032997032454123678440815344963841899673720274947827321495860377027795693940685295769700745729258312203489515573567284188894771809058629380600576633627714516032680186021667665828994777660067024546688981985756421926469501173317284632877084006070878870673878523043268752274237877574045011595602440252694454451394662500368985412220316690279591412275093649775399150635662737853473823849078061056490269442740763330659724399470637479099978108338985336705200600617258737853736595053264434352897534391008820787983543185354389953649110233788387849926858151543987440943914952838572730589429532147632292166517899626537580670386786868331825855590484122077550990494992175479233535106128055900756858414996086891225197569418465384188326561213486890465640401296817949527446226542558550419185510353310092031920083682885689135082193008017039435796171260898126640257247017818143081947279813963037310241991798833418151357844018377914489712947871146561860985513700016717040640360950809622685842553086978072030782353858951004145598856975113051897662072955476364008206437901320385721475526298802837258956764541047483281841076860296657755120985745217036238345270216361758670259519023488341145003828748809706930191961311449219329828327971173247230573779834859458873919170063790241919626888025161242045785596054010430805415338136666429430124542058563878942806276894285549606192216468052023661253382485499878781198924032205330338488246070155140300962179946223576712544035318919647875478870148284622891798787193881930355053907987216339407954770537719730557755796033898780739888169933672389172259311774972929006580727464278632006322999809026494751960150626699641933407464827952917731179649762712132942244260867494592073492915164880715918150988871197284460487358606243903117445603546121980938565790550628555963235564178196864262435576797303183999430250568710011980048674102058875734080389625039659632532146016288658994795658998099282038866078604502132438449241712218082240580801274017628260313114618615720818708287956613080863866035724608069427474298450448881023822883484037580132242717547835245404094654441117475673132337262483492290060971914772990286038496094796545129404039124410311845563042001593725007946230907494063607356903443907908097557022309382343919479882845502743602185983163256719756578131442475941569051629059809801878498441601994492167414341448479925464988148966900318644111434864953940121473738211070611279836283212052077889791108085850682295308689173166318010298668763044511985966634470339348528025442099502520723464740926583722124059323457845105651590920389245441140064609991400802237881357775358853762804728866681589693651476323564873995009054897681953401504121886313741274353472231471069176641290194930272015626230948734400313205226813821468897536605969023526597673797735687841142213186524420174902520621647121263696559170669747718185600102162485197199379520498705926621305254669253894667469214205090613230950804913787062319655545382685019788915508873343773541332963731886184641111775336946024124692994939879295642180366685498440570613732312388023325313429391596378493234120247890033791549511084401716853497916319647862652962247477864911322994164062401367655423754687744485969270842476961485573098774605362988201995143098413076471138224519921028360813049069588616882098629421040033188265945740547283515201874315778303967661726492367840998925313696928870241866537057600574535482996140337340528845288461307907503743017268566469085140777163620294741233239638039376376314374677479005335903012198522558842654672196639996795827436498663640180877398830531944548450915536277256518308038420736971813824217004155999680722056100758021644851210284620154040940330122616975101573970890848642196058579314076868474544019051173234460555723181907924195313318027894678376750523090563144978452730199662972508282178272042533412553681228839052146424363861827416753573216397902071799152032163680568139851941072613702856126794164958634813135785297568491274190671144507711554782879809186257879752866484690438397691529428434563688912995953562245690919318088101775114429718047175649870569364552672006600160494896784908602964106104729740486377881298782457470336862097762359836557904524440961782404626601453921326549450064208936206948417877397275281644929518730341472842926307953989526933896050217433724947021558618028365255042035240286451861972920271818545953637713895173583019478393003678296903113452009320597899426757065291033133864668909541373219090650074278794037597884733583550966608095551219115502935911373467667001274927534271268261837934643413157941506827542851586344678530397215455993040782309954794500054207839306356442653809957665349790328147595288100348403888835365221507041402662355526807961572370904298992074871222682803715125774921458871352145127814032534948200387586370241211104870786673088248835706970376663002323195746111557516402804087820152009102586297318031310783078301601126256037954266293794855823830482143315030179971176106297869212816029659874258923407604330068120017613193686795550210415387765559145172199818312002273488485933696663023068424854210479637922806125334561899611988594596433320842422355284095406426885498059603772235552927569201106926350318216604336083100241025476998375819369413478969996998342977239723568869403954744309468508176149977224842120768238954199783710353743194696376512332632669219337336963420460708892428671787296463395763503060298988633657007077889762774557806445365368854335204479969661476292361908193043854972754871796023378143969024064233245872712191283414155907046715196207733288576472477087965205058085199972775793705366014729893130660037385995820442357912338727101907539674323789490578103337971084680081187154184862937908931457662321516891926555654459250061051589711514186387245205911424218785709360357196699770823018140269447407446504268536888342570854307373695167131473043297410830276374520240166092243662386148670600582908962867601338886738063114061766321197265805106310931960400566810883985772787932807445448804303131030894172325461028211419492002302736107074172082191206000259413995958523013326856503956787785224891728374786127698603976253991808471522279219819205087768676477943394193476313042336592075612371185277404433831509739579205422711030345313228733552174436595737710461626132103083503023733211869368894811352839823107495927685652704777299433171318533549614971678445153647266234073119335581827746758533325739006987224229253393387745242609157933932925081757160858155007309774759989915192846599346122047499734832103252961247850207434335029924720197009331724150991786396719075301861367381197970053570566942224608268230336486758768236276133264435979062960021081950605331879971678291253272219996277110384901794140171240850718677788308098571921907941832967428002492056731997620826166079161225260529344107876783998151254447486963440024882454703049815065526203331100503530394471135733315181809525253821243374816951113527227119441292008924716750743667868276218417754863574448363334409146016104464569451573215122296964273903827989072872623628634614290544036402210169365460549466964319252557584626540607265050467527701438322357994627151385550697959277176590408178703619022892825763533611653860938772370031710851291766892771509712377065322583275658778747461178748976371198903091676396549207924977593050083895494349056329355364498423941440107524406969634862865264557443084195665766590557009954587743503123691550318926468100262319105438800035641831102390109761204304113138206032400674585675691803665242231929244436662036788067298623610202744075876135738313031654227226183947215397809415952363087387904066211405336552079221913471803412596917764725735382682323196919409547796269123178402255248603604826345953173498076279978728741038303819495169200262273209894832286132947918845986539886684037115415698813078482140490048930964797490447121748472546043396580178752830678625719507859685468327007724652835027283589335583890457672496200253453147397334949265177692264126327604262039460343267486926292089050061239258145009608983194170107130468912134071424924054270374558979146231828080417994103728937621366947268274573838450355152211012783942617078155551183263816034997537371717304070804834416623516530711408053020379454230218219746647571540202846116397200050111566209794288486054882722687627666829723348596484025799873462493853329177451139809661481331339366225224534303601324238773699980949646525372424561888915710249710243832406650337670821311040224646218503005227999257851009193900626413412552738897942862695306302222298236113698244506312952717710276906647947530040589574366121081052733661194570872712080994564370425972917763693027314671839385438004277879847339230290469777694359733967319080925909659640585506401576878058590580672816918274618257273440030289462674613083094872644382546950742098045715580007665254636317556799090396598380600059052897107396861858269127361176719929447394934227261599218851617265543963394043546084600124530229489606627025485434998504895198909427213497472184578490757962918484197445413841567424346577024592585285016623004352357875039551316188507167879459425333490999158751352750583269114904302719469139567617295557542587008089999517217852968797327870248583514434294088830040157507510564511482872909260472303729607076421231735230556841322865854801616187266041737799766016875239953957242431023027635676122300681958599963456705335625514231546751681106021991187365170971704040071462618623148117797421368363437853659218283706255633837793245650865880249284684293433203421078103293244955205370501980124410979916642187475207519144140723009433479824525541599406613096801861467236991372361615097037006164000905926241261748257321262544994473255202860216292931823268760745168009946279699751731851068010376854155994076696817410154934073654544772702233908062759328384398312516461481129149186423685396221192254547353911443206299066000628742624007116811307412143697126030631438996283050030276085633871246183416196481232039009123749444852872434390213340040598478656426137187780167124689893214032035967257996957258806886107322088902173554865915693233496598408141745554318845170163671288800919912482989058166592591148341340336042047571773283233443741813365250937922511267678899622624579293712264020346045154754958975986839350368543988502409723010286719776067890428634096322285917450465900097099264770010321908221743598076686820646536255448415103438622770080464602733557850381249742811008389386533413677486141828239371994372302949284038975097577608785017047777655660290150428754793358064975111660193169406391963931070587296317433097029850051402487753394019160388828492483229371580922538140961405940598980045226883189848828471717951489314230180341112275450153428473334586823068393245242552999587825442126697449121514269531860597917024666467097674833329551064220286915451205871014429998088592554131192677473005601240951586947147566519735720138417961951379289461579136856184208305216716744084718952228358874428191931298562949167241350706384887896713822760700003107395513933476573545564530381025775990225140586966467343866234082291113899016001053549796782466618850791704968353190668373051971888390479889600622795784937038601437922685195890185621587694726414407166326287456418101820363629135294552012760919436370687187999158796892447467651903416084415180597710021936556777879717781781621662474247031553121043538854430981586332391686174574092510084328613625667395133823354259627873820295010368928360387148358157716158646423386954973684795338560330843708907061432488379059124298319538161884693237736569418240566307428121772420309906033833000638742102246658210399840723713516073651614120409125266397552478811508719893833100237684292022071317268656927864534918720400523425114808350237145274002251319692358277387957195087004035649337448219689208635091281813450429556859902642849909690821092334845467979771828823192882345173940449802664849501950655097512273489429603836480009094689112842571884487864504319610989289947589337434102715735811674165265558291151498902490015637480275740358723621210877708742634361212267899144351760564129501760288175518755032286969583509783622166942360267653282704627936689488911389429458780265135060320935665808487487461109868062102150325193045237770163697895955667187674968795956354557117584923639082070032555170474343094815052153140678326066340980627364969515908426794402093686688528769987388263521297144759598499397888628665769770698648040529102068273532832345801990306472927575507847392752324214932274162372872662742316802672017985070733695588062191171670937035335112745598671179086783947083762403422908481545471363039688902032006972578593086874357570866868239853334912280037926526529670996684193468431748348204561020710427417579117181664742597117390339868006470937747309311196527595254195971465300991712177746638800775474270634407273005336543390279763641739100131884138932615081432092813394837927346931787110760027755296377895786636184263645694680727957954108197499699144220398229471723115768911199479522154124525245760786835738230290537693090493809820908504380749069216599144295964053077543089039792434534886091158979152979927566380667969053347563074861800734960928854912828642820693997208511566482146541838273102179478909529307086199555482413512023098818682871076592967552354002607471225930243851825933066916496112541865528824655511963136995355727767165234782711680678728866652243156764360301057880406153546636983250114394539724648954160262745559790226898236416515333454184269502647712014266409127289554405323925825032882722388579885861880341098630966098077644372102613502456412231529674970447471621915318791463020537900035358354775790423103314682265857277306883022216298314399867381610326993169519951356278593239652918770851110607478492235929974846933623612281409392200803713162566301678724793769200343147211671465062454304845129549368501908699336565456696280031872885265646571847768155639345158479940835523129184444507197108182226160109678583652472127761072226128499475233821706396101057680883119264339826782287510799892721596264837645942494436905513420496045788865491003171827345313460877621815017653171849900114246671377780387005514916366492791668729240672051149537403485357439048227301354884041594665094759824050829089755418926807016626000545847594038349962354973658190934119770759041700297689523889017376197516326807150554915513573362617568072281001200757789592661789868243997604349664674951963592135372622299800456620894911087133974589440465426139118669771200973670932258503862453818765604967025067655285584474140926391999242486338750635013865154820177568532556826367774700640791126861907951148540939735092830083410678207879556988055796903861723445584482538900990219503725093135989346713595233908958034012546791079194259220472290317188934848298324256155059953017319527786344124926631345469812771127039489589185381144458889295384678186857196458075210913245939282235677537299073347201981659546102586201863844065111511027350756074830220772114978523918521623374968347116438510186138714766751601764957153053039057355610718871289529202256903056350405449250560177018390555438026958946855250928802063200799999587913658768064583170714242271636766471876110785467491432273314811989083573613414980308448862865123997201768768804999092378755578786197288716681787067574685111640344223367874713750912966286144890786571764724070813105287693252486590325059281591289257959482766925747638104764603630072506224451152149896675632647043190443542769519769454161690807335118812319684983140153912257052192780448928633155268713024889084760647770916245983651048839451014237850470161318316861853362638401749689155805582591280053165915049795424265682500873418709352363931754517694524503081816894799100399821573248179327222476863601491016750528740611540233638420197671383931721078129965894001574769155279530849744896212727389144872333534496162315262854921558504414414130025526884392023060910100417476202049373648745875553253071722151006427392285708614265998329677088686865407634444842520859940163330172972262732027875453679795776737036662918260592249361016998658917107832216604462533814884152225077680113651973316720363921733644930459119663929669212013117615777056105106009166430901553730258758696077695943887741909222462716398837921227990008846007683108107646899499784064358877261128874800643636307304853663185603164524486549728209058549716818724306707239184988029262584797790603665472650441197358138724470959346647800753593266844285519708026320893778416698608702413994529439291066319362600447664987113231880431516167321843741968776662227075743748291712183473152364457345133006272339341023392893734388898630645404116549588463652853959907368261951399290425610132427219393928952043244712743215330483388876915707283883638240954038139024575146511142598383870147880384799896005038637482650298981919880945842459042233745892805825410709640960334672952848409646814920477911335928466501025701018842657850286792076001957703050265369737125526387124002880905430325465533566914866116458819669003874367592829301776863833973255518412617907940857850237824144664878533052038901153612655320422767676620540515079994714188119907048141821804473768527487039137660993468064751597590175765159660246195005301394795848870825193471419558911502651208996118756446527774851429097468160898035855525483555001595309525934788890344549932225212080952134872681460454086036745010307252226604936066909021054326839808655807555705519982868791469544660147452637153969589527025524453767836886615368604239609110194894372677671263094019157223079497130963989239166932941167398432874190124293606331737694206799698025319014812642115025177135024071280055475830517218335105347306931993705236453248417471807150817090181221587022389547445342384651152332666643014553229959199070361776571802377208562954295370373176352713952223344245346396217548470565389826796757593733923013223484212981803014573708660904663175698349816528519627555920466524906174242977776908226491886548148094536109056716734437996786128258932764578688221838590635214749914249617198280141232725406715272755703163217060768768633064703692900250248556913951303998852941089680662193912993357853695977249806245289958988316825357754313697832530759397918891989284602843441149975061822984703140900845648111842681466283562636988424993373650004674317984880674220731453944640166009835718048955509912684573208757896982649058340037684273396510037787962063728074294402498156618546913003982874704521445372099070282180708190480391059885347555142276898390384855289261331882138498857564868465592097609306468361883397474726671646516243452302381759360391597304076002773441318690979632631338839852304837773495270739748463159941563026568654597136410477414227080008051821579162052208179312666268974391037614767267704183692547899851666563680263402083694216153651427541873557751939118056335125038185958040724466665940502528758322163423558917573081858795119933529738798501990827519462028549683292499361654758285448630337391141857111127611462416858858957647940315264758961783350742870119086845610920333436185828387496160897212682724469176014900406717457610848245324404203954616534822329146800307528568313946485159193567342723348613098981942055548064295316664464863862147161900892151646362892496261929718982623570779147804185926725841161274662448692421399238582039720505379074845119971941690361296408194555289972547813576653174309813991819150020135273571744768086151310335189021338154955947207302932641810887320019033119006659494884332019536762319492739786735834829113854528399723696383548088577530904317274363496480451213097865029819093624867909283560943459073569778290335164616406334943111103709680206475103518576903338173086847126028415969039082280481557904865600096537434296445844230121607691655682540324111128363485956854139925295058885372176215848778351591855923900452418182567966198937185233357561756460074516089709904340113762821073520820774070801649217829511799529175301163532405712246615878699778386931166262080525405263602811613195767313693343563814842320609167170632147883922751549174425922889923312696766156918582675232242474077356565711958131425214090648873457375567795044194844972725027216157079142565911499642026060321057491976140732027792325510629796477180143244236115231969131994464701798390284294300006049124079970466711406831190183096816870599687054019441329798896966790143081137024477735892029183941219786399473717184872016937389487880606684515990180267562731636009921757447214959934586236512902506944857677234031256968656296458475352293187082679782231702130157469764183963286377389399788990634480417989706068117706446318929078233794289372791817679681375190621757533785466536738008886086977360877017447228764412514990849151435289556694762441323033870013710775488534723561035704709451922546052698139881904551707459560074359598146958822048712845629933426489600006356793939532441758894109228376074290867880020704909531067875862494312434473040120813980209404385794420172118554173316737163567861295704619334598947751541984969739856787370821542241853570417419935526052535601630081595572466447800425573201003394240450487221970768049027932530807411232967342319513495957710595907302745861055070288020213281759618310086073646850613599544061997696254851031380009222724158730127752808416931889587651063308714806395082344334965472393273803929389961129063639317943072668477423280461331588376870598584093373860153785525727728826329404834803663871315961525933357182580404834075141842014158974974153801164468491826479141073911297922503456230890846672593898446660915487266248581009592601015424696957249887551257477848248151278141506586651159221207915332596587380442567575315995852780270810342008793979447672258105765084245741004625570045797166583870699805868412664895435972286737057672469106236335373696418128646291285765933719103743879955045128334828033414441821641643586693098160860116077205279447175189719525159272702037436937941876507219141058902922619561682949116235013904344820551460563253735118083680555738139006631263364987760020536193252700360437759108247193473650566064488287321807073122654038033895935441651661424679706276397440483915540601280981129016970061343652387367524617796087492139073677631655376152898981539350887054431417148927848739938550892922215783112681570958710673857470004064834455446284734191016322643836353426754993065756811750303964654980590800515067221003008030639843403481061616777443107838592673341603503992167653112566666016147813975503526961959232380408419190354896214672516616287243590898091842266620206258004286079952843272082559508953974293715440752324096390233572095660784515666469331638020463960659574503061823950791666308683158809043362535461436925923590946221473325327371596514445193285476518489434195075982348933551899945186275556364978056948793523044038716466378123341566197660777001266529727605440619665685540931921109247895567298888003166581436956041443287678811356099385120270910533946036934443986271398858589212739688211881321678782316918619287000678021668492957515016428773147296879877054137879151541308812636646534382954898689927315263816448725820327148806634857212564737947186851896086213094573167547366274509176668396972563751963078195361771631150814294916865735582911714205122645746583327710848804913514417132288180058642887897804089105681657360906495447875912348086435326843299653085802189079483377896806822963994258526519832035273419112370778912090903094775889328011058322290191478409329410324354505250992327515409682741767003893660061380176959369904911594686482063410586995241711785938878389806939986760447987591671021733574025318392487289382600990437828523262154566745232098473295347505511739985061993622416874514954457834882472140984315391459507312734176337933727752322715111074895590658880080764898370619052858375215614484104256429093054423584795830074402343141702812137922545811646668925774930939006640154981294801572570205933360214634341257194791983966867529642266683721966667554972194535331919467635343693264862272918215801310435528198753370267004105080797997008348661518908871806808087293510705173113224762477386928468885786926054583139099445196590720823554179411907381562317069335838135484901937567302375185463973590308869380319969800236115313498262562266138280468623294068785046678948045139369415132804054143867022474816890088506951249639639814358471055371759364416361525301618235950902130679995950591293373884255542578472643921415368978483527163795435434032682963782324801062650301753332865702945124162337639869691416422956716975116443769458905900762480968108565861962924343178573068584505588450730422372436241144558959391017766905917682012781424382218997380365843272751686314984163707066368222129462576811520699094976465831958467818371481575212877354903399450569182817551738935035825110643008554618573749004458234917030270188936336738030956415004514530440857389951374335860357651782365326652155010148693328731756108330147727628892235165694960442859934309437050309136000474044507933523891388490644041950919776116795504375316107277471404878454162051700290993789270238899450549589762422137895385941673880036098953798918574558352178074347918961666493816086028784472673617777592329567896688900247466775783190057628498082207864313047621675128801107389579184850406996702404509871506952493503290879446647580770966089972125497353380412409812318799976190026220290465169317051427284999454720169749453003359128668619065979100828850000295334149262468336701394604568050399035191212166688069576718861630214945800758456826973533953005025290569714168387360099487114127518470639413372313190464327957387273027636287517389097150513963407056323373703100890215203331861750279549135115830967348532226916604228365737688212851491694426300822059563979200660803097864368495492885073402600415218748129901630927070879404121152530822593966639660530724323607740289157197106148245357321295477838413953703289634391738355849162550949410641505617122079148816972254016265077447271014427384995754589274437883418023258055013386197463191554591159774255224527270434678826692934106504103632217946078470660389082726545154686521844003521961878608490240341002814551295415675993704374402459934672902081485979080599527398633426510545138383878660534659911921558292024127010326289968530665005545898266352838999103794579810562986114977145933642641043977235984493104501087779585768477803432527731364882388902362482650783767304549255280273316241599366273172206211160396208122853892924210387954951956468403497693411701069210918680673469145753351542314974539957512052524911303428045548741712928252672086471372814107132619470084313418923114240400418775719017093173269972840453651417320168225288434245972043764221937155882027851883452209593788645875629181246573355189721613989531187220773022139177016647679536890860110144943830062364329489313009302093575165555937319119611473094219575303835620295881867111144677561244063686880940720436921137243833255593068262989439316430725187320230983669304009369855258862488297612682702225614979570793462142421504533924167839720817106729753236149290609193448035524632951303919552466753348013212377101004860421284236093891269278620517566566890182209919845344341523420314849267970084687860275391585831086978882225205260983045966195145804452199026794656116620831658030474914210781095564263930225994569587205821795818911305159893713009864498083008267481558880957874385566521037870801984728283976995331223369663714144210206563048048139170171604284056152023892601234010356981452753210951177703845904674303239974116273018325595882243287716037027749263144629116912762729673113821358866963832915661701620186130411639461649891714517505310659093543739477425575343494267051816879224152688986107613389833784414208270494025597319193344208930002306584923521457863086565100891759473741770265006727901361100851400991460430625102176591491420668492088089928773164247758907273736498893332727766785359999673695524199595261574885286860848841220599374290465471789739119626774149856538063694281044227533852987558708251380857956864251028696310598818438412207937222211830618991837783407789653910431956982960811243155787886301096467686970582688088655873470883692838738087055361719901749968785656670493953059692388645477451247816605305910894209977494616918023866465012456432170529801232091084228181180570070584809225398689743179124074165368489507447874682460727900185677061635207813753982205507667523774869982806403422097741994675150965035261672338218038579648822127608693335061389335215502528148572695946251504047880009161239956239177808376241624770068450907835614413146441062093777014472216409624974672890945394737637421337706376363345819371360458123356346150699313891658443994369830946877302671035852630150431865995628507560930193641290103883928871336155402441411324959336500690679015091990198183418554146125108964311292372162319393466187422499576004708717324153935509101868811257589249480615351351235613280630544166987077839332200787212494127766519938866794130665854471901468521593046563033948318412089787662035866006217558698326583444297318629845638480682082715089266632619884796275822832266802787504169791521400331370411936545632829933405727023467783719166859120139303015293797055861926384526163794106769770070991004464378124122568730517511635327689225991042921288544122286002424820274001296976757587575131730864247578556213344445340813179087426333746576299972082310499991534088570286931458676679221771549913899303103893848638103453658997334839759359272174091300984027911164629508243669950668999562527403749138575752551877187322829452922122754880157896247765018087223625176444483853027111997041241268488818829951552004509665208764029539142742299827523540525300477760355203846704018398019521600014054435300347404693745593058414779160691058571930142056451167440796925718388731247643173416876864943315395151863497177417627920251913403834858518834997225472983003300892584748572784774364449906006488174457166719507094466893113177301674585282131242067255323164658961962755275529804833672884608962457350967159301989778433064308831213371473776612634314281969588163313199610890811737832512399541910881615136395956289971459460801498597741202599746952753535751422160197728973760711990901484603123296543967896731848058074754514837003506662148809291586576579971791480681414964382576919285049498179986244609768208771401974503666462453841723319517147089466960609912896301709751849290213945864280451600389239114393235518202770667385344978531492236620777094720471863258198252106627433255137897227261850857576203729754882602597256789494974835060883532956436781794174928233209197001712763682645812681624883287259316910669128247426359005493583429865632148042173938772321882283911000095976277003894739975164530689693631523708788802356225864759380996703565626817213389185218715099866717027437134485755110622895172695054072770225401371535636224191993071801017931774532088622412557047667286731439825587081724137719075360187657033347232009340559587250569390545788788771437896120035888663912321673064148939014591721700371363994064182237473027803826096123455081477579406070890652127851834647481933776171005503563724477662249739372622998794482706403053035878004681012867538522109021566586430546518436795857852380387621277300568787337825043874458341818679506054322472445523619027832661289454616260204183876211069414313863808624170426503837999786224087894780186728742216146091648506776243739922090523103651427451378094785205184303181062669042832929022408986012279322372465893957502799186978970557765431782075640311373680010919140257521117815523452700766487189387157462980548181882253675481033708052131942367071294183907965757872431493451647668783822487572133197143671340301074260469525891906326243919083183784640228100540597339595571936524807630581673742632843715789455709793776479566698464479104412046023955897218053465392637151917739519519755690286427120267998109799894583030719040706452676108831064248999705059046124074294730057194718781983425864106004692931551845486115207470090391331410757437853348637358722488695591952094180347330010985003553789150411589472875510899657185591646470502920853682439273905325912211372135305819739183190554441117825735589081661234464812518328824296315092465147826321412008095955499907185231278254348947983742771215280583246750521154917941048825631846893360408491086229385954624891291814675997150227430837934830847661908812026251270079861014610233709560427040677164744681995987844882144602033657881847426239036429903289163820856108280526503401081611733643666804211709977885428549348018662674223984654902648871078769621641622665954945789626617605911389479248769030692654452606208139648092080654946436860010443729325158658572128624623205762477873510550178477449743680993658997695113152752675888380497304328525512037737472406878345764755163483581749142778910622867269721154702670849527327682707993378946304847863893786896024538460483579627061485193596151003212326934758976550802505206879279536565342887460328846571259371014910547176071422328947070961927455622941544195028235624210485740723787103118123771735879021954945122223141527135102186068691625634083804233430638347604019754115692406325374008013379644879426979952611146149525343377338754736585366094588093714754422892455958897729984505956985333380095279049650179260501852877632893553730238434752757526902596621299642642445585259377651921057737958777567557041132246581862753495136461394536348125127219229785166803063533675173322179862304352312999138220578580432909277116045330902698006746996324343629971554007693921677810913297470550349805604654305874343338611946120471348141538218152962310393792803419140330860135247843005282098635281699830207576719608349917520554787402436330638381677840321580537857572454773744022088921120398808750770514629841335910182057242771167189190371636700764560422374013645111937949973306094698280385187612676948252342430905301621891669478266769061653438336537491066697773586835318453415117600897211102018964498279036706869408594777394604673652731287281464631451305912606063457999199926282817895530590667600066825386887009411176466663982361683537900405482350602180034309031991239388284132553760936372934100933184500607185366658385764890969399222836698896632445667942938227010732046929176645977554175801858224889565522091862260225387230308762100477433772375962800197866339790329486645294620941070040192016271358949382745596211101067447955708562618734151151427226988654812632365180838355498079313599340824423486240743987931936015107920405681287032028880542062942525651813584749351789350631963499239695534579674061726051062552791630946949017422548175226997840012906979075549881823248464317077169061616122064432029281156247164294535825212218853427033184068045076265209634692735308748140077352032453402341912666336192052836006885967391934285288443671725038747548921220044639964023578731557148565353867686538271459876002938656655474176635451456722234294694046314873205704984640621279477521444394841538739193322859279781825610285509917163475833882062201073047448656971804695551283577978340964686768049340920569098501991732998609046480083061031320760392089243067372359248425340035045252886779792537718566224428156184631036681651388694667688835742767659533244775480442140246199409444123008879984784549681760668926308623290902387788398240372451710262419032498999757201421475597414670976814391047115399623927826721849903241417707023102352193385184802180768735831483857093114678114932060834482003436620287341859508910449123921330432970927524829462838350432075783296923746384761870123751197912555901375297176517567710824518155903495434176973707552328704285977665063033713324741208076333676997345764671617089342466332826189223309826574297153879411699329262154225653798075426293489516946870721336008986784563373942634997068482451314974178970585948641519169443995599889770863458165415956544106879235079768748730758730466302602248378192731575542346531482585522093255952073546442589233977766084654562632932063893636328135631750233207705428448396281293260393701530939207404320852594917932322382419016131168641537022771205266577198811329485962181453788557584807683996585059667107144651752800455394543098113778917617750996925102034600551207905086161595376165086001492378199038479083582145990945063021695245294551679501599430959189361666646485271588293580900685708934394794641710950119593942926751283163143981462750975880523953830134463611122376150167110618985358961727496739194006661683837080294573171666507600159303632059500050273123406498274193621324598754567748030417553645692347049673183742068332320194744764530820828973838536227651623268221206098783810380509157232044771274096688131628936608585943940587075671554505938234601333944714474885433976758262209835255143151869623027386840773036795892748866792874974914488279267914722522964442412241000657630109224692528195935860541469772841941712364015307608641023777891837116030258844887539250014790479077216998436775420798920595065700049070451664119357692900618854049030608246513348993400961648683666418296027448416037395593424734306162737212770107322674252758168156696423055462632827898081990911864631845489770937561752557066518271129800583507346883074789414089779764441011528408342947168260034234170021011425017202866816403386590117348249889049430791380506234739943692543077754215646226524968663257109167607428970511509027767853076315595781625194201682467580492715914594007176340324020840836033439355109679197836811796456795148355887773910698901717944137691734182599021772743256868875177774485768485802709921785595311142310551418666563954511914698871182641691154269590280799321603710508667957818030175986532389361103292354660821149477706459979232996944591438298540583257589761755218767147276177998387321234882235863355740333036339102419971596395106612577463851936773300600376772261876304423969661742101251395870223472408745284739366457360651294394997369962582925724704853331352647285960309665232047568609561600910846838728424941518428001896239797176586653058704565981761381611088369202747194414338618809980138007756780320142036748851434573207566309659773583424728409758825236589793241141216023128678343159718136553419273921416565329890268947029029743632090881440708815488985008952159740510144174120582298453018424465791024207851377363541512615024582746239307751153437152690670170052880789312053995168271124538390792985609418227212707458367856916936176187122838912190868750803558072082769796041688754084811103066673844942885979133421196279366422469617692371482119280939601891263817355048174262416956165014999554285623927013968495755808874384627307948033311432091642774561923704332645784434659013283093959452588524980902500428347461216286435132893825823783697172363045122598630752005392585085218149704580449664538491102531800527743174342938115454963274483343907560474173565638481803587192913689773383181772436960798131481511551832012278801341192676060467693982277874190528670802188589639171166958159575270157835297769281951275219402236385976161128188152825590326088632187268716117196386130743990438976086706924542405641938905997187606702392468503327984622482713403194347283101014176224389907558649276770458710024119367983353788911478153687565906295724497453256815150238130606960315784745906035338914485573263563220819551992003468241468923126390374066985960028626745525274463665787265468672781746827299925777670759139159952457441203221706185963247450379497436491173186252465916844251553881940014343900009534921336836151566608988996973010133221162255751174257560354093330922896366152855327518710173887342601837753103046882270389262581672638013249050880814877526339124088651900389823322435889331358569556183515159118698675316237529020189581870328713860455618657496202437380519041510507698301359646617121398785769700108464164891997574801224306859584763635913917403560801085044146072918632648705191456962796221762062621129142701261867765619247913868714757005395122327780739710527028789763897488986687262697312555064253238880741865490275584617232330753731441784407642619684345162666479773573143805437219003654914817873219826343911634052947951796351313714742129861830408022248117029036326248160354773932827017534052106269200715114181557121146302913359317506760720425889116031489605998359081039703582501097102820904943754952287517309930785237713803427511390455849792754137820863438075782373886270027137135640731219165206925822701524773008269870165113018840051815583471045519927390412063322991599552720196695120866342365741066040248194486414240696004523923498684638757560402182078048987882336649925751980466530685173142402819963813472682222707232508634167585110681762188958096606270905955429706767214073455438979572319774372094388269498765960560122119425198596254832258880251184139080436569476738206114277166786433209639978522422346234373805419797037765566324186840665254361859248649772324157609169055015563795302278044392038621301836895230972153991498202087070467015065378177357558616562911738306145560639696280270665350858285149423514366917721571350380146466017560517128965613056306658053341659832547819015996069832660522092299198141368212662182235382600549546822299448094907153942964417507093912516812395620257917983258733466754449489449636292388114300487563183444181114496318701947122858042706063639720165168163797306813847342020386513586911187184863483689756680273590014974339797444614937184602416185580024535905814100536821305015231826990012383143122138940256583631691797750977641436701565976192457963774031629098147518695532325975689480264918352093429305663811160380109184528862250235690586206839497123893438009088108876177383822710405870263586701072045374602751923084568696006291959317857477930635245512818752257983948157886981648968900983392410436314701624842259996928751260848044575239757716004776715698064819105755315773084706541314111823651285965943522622243232365171133279571039048774830248362540921524331258589340531742571994341677553584497304257907708288446882897188935867758149973923254857436594391504413776703232174278774234807581847199611606480506830223580181157207101170197359262726139652048838343044713632379075986727591870517891627327731148616020267108765433542060579076652857331626166920715589501216497282075507396107811877578083310552285173390288958829656030465736515967039729464148891458774558333078223231725707308102601972187508159255599861963672170626531911014926254211703207925108776055051327875649541056163525212959018115661978718999718974145382556605673321003100187229267383022279141559561752920089912884917801852563768566567868523199955057813747020038195475242630863447235551581905719519346263433794438342145310039951848767040250248671335153631671075493111569026525081768238812593374012749968231063128036414764608700475083872393636890415372792995880471925677187138873062021456048710912283117111338102671539011846697953776444613941736303365268466857707942615828552200834533391340711304055040437507945150663888282589928769418903090347877833721616896354428119961461029290539416494114389036991199735366929730460988360456092352127337049414781973656995134686745991795550262293091363229028913967860348100429145465959087150227920319905760611646932109479788898170951671906512276875540617448457886723462753189334683297269651930427682824508935599108617552743844783561496689083396277995756580405722394707095613733016455520546201526149549973149927413004495287267956208804677913543507176122747630524075153687614521520863008830637568274629457497802366346550291834052832650410538249075084987428048206733840903417404920326988598576224166497604690519796129021504456820976914182236318068391934446989419542838193381519642258338190601285256793917527692916257935809654826113311067503388916627241900808859765179650234235274368039461881683059922454791847034428246378598398458602961199042931307035414731035572721503684879907353345185090163312788623624227773504879420748550489560311820085938479190780979875033973393209338614034020065898746463307473536914017286742679578373110200015917421422006135368061859538259864602660774146011777015443256767250597500953630251371310173218126999911652603742568866739812664698728540877543235788490505936198150842558200138450051925209297384868885551001327519406014085318588854284116405565709217417310367282869370354607896896117292814041863032786835048191317305658150518578387580679174701401335244576823146022132447544024586949019880861855739516149634151630762192676568247280385665784150412870588643677378588217570169080550796081588633042180948440772286607118405046452001447980824187237482503663659790986659936639451666958716717261178289083612246565043971021834297257275121372836986879092934679535179307301013613977743504226427199246359768859520277307061687586149153071303063750618299102913724355694305143581552818827627871329979933479482735023377421818467425026831658710934910425527811315566518454999019804687480230853531821705868117231373738947239382785682001248836012956859346839064116526432944239943826942180213728207193618538228895087565740861184777281125083641415389815964614364715993351163902477107613601641895722386728521932824302765970736157298039732392733712199115993471028491407799045253116107870189144338332335391571325034699306319011401331481592973497016289747497121273957343865775409730785518494340202381521583927307926301328502697891023541997845155513704723297275712166965918683269351935032845707551136704657874199769300816482998753344442810037188666251953234281440602613049216226664793756413688719967513829299605745306548336493770758063473435938109078396856073143589988880271354836500644817390198098322784582836328870901937371406795444451150820895150622198879668233305955122966898657088751398363508816264945646568746728558580464850743897397276653569465908694762521279923032869346425618664975434986355985929855931696597096510721782360446964274595230463827436339562755249311483774186468304266997978293378121903484324506264990817220295275327519954970321907070648020499581945393252205647064867233157288430676543076391824573468062981910547323013866058428502707694458612601182576952376942123364127087948649694310163085507233016392764750391584293587101255059435555333324684257099732962482546831791790613232332702991874478065355751096503859005765536892824994111219926283914879267047683973635318716018569429003917678247619287423457841208593205419679564583344681898405848145039745133428519154386650330634079875259021297134107768502658325484466801411998192455275459758301299770033662110740633465554427739146477766287704498267648959680263365726224936560871912899953414117586920492642604958777065216689747195577119084807615774942502872008562326370740906584752673649084493605639599744436832363168973033589858043066953346033140697219644050285083410758292271485474506143959755635393054244192230427680622247717154873827816071154670832276668756593679316940469422529130077532801283344802094510602740658488344911285023570614887482012339860295749614192015437664936438051053781708691748027766227129898373171267189897833619824782127472488750784877741164815441166609646743064162954343441981334772054390509147571292963092110738117922199112637843312694485578547521540690601770502573027731195749266812242973643244471730491602499171859572565200710633562524958681855179433638795652686239419338442357554220067424932484486493094653517673375686136570913663069720782949057928636253307598829901499775386565264493369878825676653770812350770432865493913800447230034987843277560049912402078582776106817088544003883420833055644178225472654677793796611593591959748047811624235535315037557124892023804768900374803480968509664029747416555258752757990066214254235996840718666041901234141998363153750577821855920753822885941918780123542115115969340424608464523073580957881301463855562234050139250644676040200022384447927786503812872966931128294554472679296739578779077892745123184214298780809635678714315985098172211597133548676063573655627967093931817799785735406528844491844278395514416857126295382863978075181662529257537423644377742407750496979090317310041021232667330525789322892052163257337850880036464014566830205769288059961328532634110310338374063995796031429175045711281449380968794613502619593004583592371916184024781300590540712558539555846161077687385042627517744212628012589094777970622707052229102248966502929407078487793017357062647914882779159441573680901897052627801229389573420051028703165943550125337377567191505859969847357085523747247510638334858003469529979310910720628989169483239412642368534143324910185088142586447000995379750954440023397555494334064927879593646030725046348041262986053514610050652906486895604723941065418987545618532216604161267481877132342176456652960345592742890062943034525250558352107742887644655814238397728677665062089974742820178154469249339835815922082082417709565134418462019229969055456130999481439338311924153327908631876090062038775422961349896309662707746200598480474979399440563552550873129474839834096405915243242993922389744576282676802870267758350748447471702333062115485702810344214175684064352167252099286768424636409852364390037099355938686314841849631475166794122040911030621594253240035980688913503369864219345814783013063752626608654243886439707835947560000865873385256474417998185477137327028051551308104462707859382604614201101842665047517247954861278290090363811120175229194246764554969042982383480394583178682344103171664142676938455246746091738544095345076280465794619900837332529718983792668441635557658658547806099638494779918290113253178525981093965876520684387955301071413654538666021736534343695204866153218767605950101823778765879595270488868230078740479547381452705330023265320458907501472864714804208869602346436933187321071124937342481477225768318182327973143322048506196386407693066039406441069978261643240678758628786807602357120198298999258669812916084480788633487150443981793969499968490422224546476646702299437115408331202313827140516440986251989408556833422179156823109305033118805493909140781656280423810960217115697894327799044423907014744234701771784273725193171918010753606581021419255620333219454414434258886465005575711267562469842293574918271089287997552818147039208194396049814180425124284606188524591968508000348111300466553475155400071759465374840621965843018269762061866637793469213438906886213107871098580138505387416813790617423662465838049723513263651992713278492616978947465924697279676645776100170418235705051689306969681708346900953626054222619676842537390226820561813372989659367810349791591601151234212519979348485906765753781585667719856477910415583288747818595084767069901574403174239201603205983803562347753434841744181510333181488316422089614176605188052398774302757138491728560248789544266489531266229400073675258862105726234950813912018163086463219865124310029759154703080037276850378335362190993765088989795414484724258765818499980729914191711155598533173795024774159491666790018345623465981656428646073520375023355895753145738649689279635423780374962230444340846040457930348324936814030924156498287216704306700901105132517276444532860973119405826997202424821474230901268418864119449323231765861118993636620151323524895397504375788596167245614101920646781484399561737228549707080712845040882441458139797317298473416037197950021585592645411864196469509053892498822565653776652636531924675129456714638474319164355818448632280125246386089211184648703274185749149120362700114150819890642180356653397341629496905278013787216962357222269915526944157937938755324458485301392659387399028252196518777267635542664367293028558283940551386678145375368009814834093491441085013238450890783651477526413723021520689506856382329921029427901982479955775401123023968325201991089532307156638886018995138361148571449313791852472201663792658325842478448649535455484370038011843565544022927288828181882047006466096473334766620985654161245259388441980835973933926060848517768614816719465147367415809246874333132137236246899548115528376446428062619738983337492757657775385459349306875338227778803105593275486044647177503911091719987139860566731794170252523982980232280022820371466373010514228660495406434133660066523084172280592651324338279041502476101794602511795994806829570260173718392223454002708013229350901299640463343115407317858566918014312657315785729883587787662836091062498192621577607658688236729596465781755703850709581376945077844026932137316993114722203904039046710665611966445580776959940474335309597180194222729682680594827635475925176744918654311562188820199875087689007647672679142947740438433091954385693327204518693167783108659398087463813145306556041610614817001151875918016225603891528248216056070486725189435842370818959582411320409975955350144247837698856556682925921723002028317149277756301126614918365808759667141834101140133343505624438063778740083333967354718083753584617577007854949774488570553764898051581711534438801700859922648983604728514109954951535978218545011705893478621628013268143431458819553184576702240370178897184845179024564618950233510907182961715464015546035759538834888230855693770823244594906425689099247998978583296208137298132871744643305707382405501153451267403781703860208721325602719659606456233428708659287570782905635280059320851366403721978009064739072828792478960988207511438928506205613313955166813660778436435397119243681179797866289726494839924278901987474876151538492418648365766605456925994186425486265723030240268399719709944604613279829467940104815766568994367354422059670879418918796014441344683004318820691942565960141988197228808742947713157194294641497117213346139997261391161312021936249572387786384265955880586687743994260954383661069103578009581318360632246289441618207847128806726596157991242233939848686893847464820669467975969287298306482024177642004772053869967446399601396045612677176050603867963980325231317628080107386766992046690048967844315101172144344205163013906969540013214830223803611074833250557013602008680691282935878696445974634622398496808066985844092256451196183365884403053026038127868473699413814337792981251398353577578793094092418110666172904664451080648294599870042065059058762440670462157894208717599577823024945925027233285300472511173049041566941912648534226819433384499099741886513078907408686974777531384380496900749164285773772507586820487193972511313847363870401263179237183621421175974372264357667127155426493119177961357708382532942227135165623251683303720307516246632611530761272948127259368507579323019844802854782256917078169684522149510585400804966969150482144243807650318623099672961939892125597312806286001855586712530670752689942869860964818177154219659977921527308507716405658543653625476154230318013327159144495897797669329825651315155122019272379373046516412651360314923615112054845331390549682578516525811080662538272966838181459303739713663515235723864428253207076707042532434180257543644801322821709855934615941024610427305882828139773654301525608925621097050182655404697071851337484892168987543189367429815899771957137090171643474055855686644294341630098137862693141667972123881450120399640803629678351200992408229361097100474564695469359620758872158271585377840783974156318802999532103968578417067026830297410143591279886871942478852788357893422740870937561255544539320981173818833027622216867818768895621599654567391585932100259084122508667428428459439291021523174781478378769797788505432658285025686909534280248860352063427671903629583455266117558050866964497712405896733103980954232183037455357067827367892768822760394944501078696044781491036255750575743267431066835872107160173285703859599271092500422555082769789106074397362780164875969406135127601293797322657134543111245977056531780020844501677657394282303315359016931141528924068087698110922596751329284201277819752465743800508510288144684835014717500777090334375100221500691739192982123723964775133304502140403855104150885093234034091193168594827519859701125366751563785050151482712064236295213239225274130426210836654758697163147655492629949935462500187764394104991531653218430821653922066472693802779403763312436665085965507337855586991768488998192184548303646544394482554753520119124734382571432678101650093866474450402310880048291507072812417838956764776946528100511739725754140293539753023852553604744305425905997520952706011422435546176208672056565483781840530695199858521553548084610837759009293460222007851349016955650637438539095886379080721236465788839754178174776924226405329641404324582470771433362663763418174436329754921916045149177870914073199658778633531709157336724809111666223833829706432757101878775485496863281858109822419862871218354140096948372791417410448580573873070416226355425443581669860642742126306948078910897059320872528708658315241777746027973273863844783526006633285681593812993367905127983903952908853763878600937268059065871157704324490837814584689888770692878216670520562738977237450737531131887284312706061407787330181629378913878278111263355317945569537056058695473736363220368317261281799597963775373126708780957027072321259124847447720463409362846011263155723584423886424482602989392638971146076302711724185024931330649348480050698449311849452578282283737683823294355198504293778430627809698335701094210415225819280280434491867023231986257952855845165213235533886122080031658473183839781590821182023907955075359475317710571944711214090236948781227381675088534898156275308066471148209021784964743930768469236801971669827379897154906118811698438450176078186928784166169827783969241934154189201050871606182071389530022212447546604408540520228445769420463457877764493263873929297063194671899217613491578408418679891859671058124175035939770163062054721847113027440566936405625671489299416618514194508051842042180602773096388859649144592907193019547739740191975680182618213449158088010545103989743425741938457855225990096079479694578932471969335243263149049112247231634830600022968257972776744445594208875121573623562226977989911112070856687132232334550235241473826446511595154585568606528901368556282092659225486369186248420907768714903959734926534415844195454899042500294755946697895096631861690937060955160930485940692305777455506648380428406311990468213330924757326485173495586991251261700984786553376118378937757327013772656927483977873347988665692096380287427006187138112203158029647133762210617776521825091521095379980684834674306672600468902753574209838232407956637251765844951944985280814694897612849137413427657562054586388524053780534870680907693949191496623559216309827442018687468889231004942832756261894128172377874216288830472673108749545845347168738196424265881510934792808867122063858842387068440529845707572904020132771502319219907740488981862882473384710562464593088946649076971962119893603797648852546068738187848686837317220571610055873866712986090834633648609781210934127765342233253798231835565351476629383433987009950318283941968239411038179896033783323978875749642663968009409334275420589961214684726550510138958976307621633313847300612869908952021497350369525340728774477411657081575224413204435632381347363045108343345162944654975654520962086028197016878634375642241003705936235748094591085551524064224419191157067418271854769427571177040936548960227449204900253339180179255044492926713518506262776031108679453007799453383407376581647607079137468129981564457037077072771777092714103363488183827414013885959240999629037435307986608981133171345948785859301754235497208400818305196805989126866529583566655367948497275045994807154843789158022328939229801525295374261481389548762844687551580377312876001702698035088039246090355272088946902919381803053630573569228203419904765899838085758947346982103849040879333786541424503399246657273469862886030225700599596125175804652291994301106207552438602982028634251737732647121533625491986428316570726004852979686104036251716779918198639055518994126934885345802423959149681030563687813198065012667910677323360733500561080257112046318078135549514764436588675443336464881297345134122212559966044725637020052159980737952537017883542071097816588080318887948367023293633198989151448331077426576917657700257048375868005269669691394634462920044122929547749273330068126449634017793421900385375853077032031157586483124499791716062608701498255698255056863950106298476532996946881768149334411565048395463405266455847872511224011239863076725107181331585911587418439511773176851287004333752761508407042484563523785363473432088754448355734624389560255299125560959233523228731551833987319037628204151942232474088605490252402283645121625952034707141424530796052907354230996186997728862778556061314266370041062891259539662845009774068738544556157283185543542966265765404222093024794718640121878806093800960162551522142954247597230086316778794150555187121353067845120487240705325064690720150627320333221314391627025968041348391659808943070136428067547983447561030106641488020763790414859227553550864303747437359932752888975810203416535236845682024765246721107959993435733392277005003189678007937879274681381514934462254972464952530737446697412852267637726949864212224736457622226589355525357346923726165070044683212483856113043903822313182952750885389269325111016183375139539201478295241364774471035857684766568048915793330673387918329151566040224886962958201117211917400442832764624372576053533119452064683847040330590816226427133679192161306734556312458713227051358417076486191995752771494309003502064664218011218767184584726615894964791059194607623958747458246098555687476804678572756551352736988757386015418543968532106733238327245319873648377007721851039099169258061795470206380500384888614744724797418532313681714369480466834836257136840650571175092131698018961459709150176016081081438388730607343542462829384626821866939686081279216974783826005032788382343244929200250713569642397529402117262062112273212077139638382182179583979002521313844190668577882612041177537179013033119911765012646573321547253591125448818440749791019074621501844216599143534854220069178354160984174735549199561679139322245093570506159502930636879623810880631132640814897320495396370028068818297457235384690561280429110658480213298554761860534667965551523974233407309962983932304439823191945521787068655251047116247143550412432864251353525085618040201023669457171113324632075948396332428814780073129441617235342124423934686621352018406600406340396237273312449903546051274119211639482388906397294241169058137182324048798610354828605414850674507442658931559072498590614568562125660368810923237068057855563329121892834784204371094452153897720472571225876501996085771666882125186163090663803506559532390874866737720483849527757589897341104383499062212150678796394346462354006420573716248718919687219113874334247583240866867431998430750928957996289259079003426148644270579442851450117946540662354637664321970585304373578073293818137829011025951544561318350448098308915369585760861551895777804503404646148803660019731397609758760304185065484860490837105745821689751921762898226677136638721446502155808924276395386622913553859345304688357634021975125285084690318829921896175115721228591967568527466487605974830347959025420660111795945320508128065192073959735576087694959817009735688226354900158693374837916897870357052067548209119450409724607806257922475758240797796112997205550174351320000286705505685199836589716588182165341559234035698325115007826830953841760116834036930972449903599687291520420639296309881551136427178381090655861822608210722340854180999556051516542114920172164846669504894302453845326083978781792256170901508881624129405092002545689179577593307361269176476228530264946192911731320195501781829010558188382293933104451280955997904667339096047798605551508851277176479949922785652438136746980384683781400733793094463339265523845329981405949060485347923274881697949044291518484425574617804278004505647773255527971158964333102099408027291299787976757909346714403926322252185499036262122399420216176241522117198639576103477759274063030868133172168488456607467221577583964129673399029279093789037344605341979839971122329816281859062029873388975874843148401647225922398733405582019985319683286171130424077618662370219881916699200092662526664100589848168262559629352713384701433484534124212237930523664816039728019787664578624124359896442715431814774485203522707709848270977448366887168675025342331196532304190611649913786518149837740741215807522171343535762700838334247591580543386817304808314463404569224653121105369246577692135955917517472912689580226973556072571930211877320300526439119921676342052191082868012206391774849748625811453469665430072518040969650478428595196286638598450645660507987679362538555101582073710472731421403331555585524605922426735513354678309370964937059490114683295659734653818250252653317104678696203683879307441623920674759180230713379506640560476536965588105362796708183655048675040575499765702652756183838106875987147221820020793246453161178674372547254448072102583979704670812127776805275874422057021084311890871270787982080112345123999032782993831769311466009217698903951400444450256994099934445035367879856341842707607364203504781231809437567215521118212143116693114171051928367923073629544588375421633325868289885949646835650736783703313627213102473656518135054619351656831527916435295976970544938766651202506436915243374115884586810807008080451871908667516211858424991794513485665596135710723087136385156660390879812682414739213567612874677921787524972171813201634650094462390127412122802758527169298012442872193392395688202542771582932858593882777710629045019654141959135525638162736968937120409130818011193228922500211213832656991367697141993914763094285892011374543917003992469110555450971506349581294580774676466257950620914128833398310040413026476713733558822847828715251854362325642407749413955321525700543787141096618278592842995252721625171232794239276405460776284170813491977528636505294135791118688843389937673737848588543863140381599248695639923142702478330826596456506998105212540986353759969875254444368802896470102912499839682315591984281252837063595937393689127509132261655642157688100763984423394192082373018071791587312738774020631613762022424889299954986744533137713092626343199317642177145663847738557067611405440553456928212825040047446707667413344485444510974490094717656810395482521585548244859929189849840370575227760080095561059019327504181183244471933476018788894521012242949286200299125914831251150398234780488718571031903861026175395423047341793025929283800137388776023219347507343557855727363528584173653850282445544683585220007851083376155583845421096151731211410847756462731056440042348374747482487049514735776657737820110846040630716684129888729446579597228191729709101608109285965693117990557209399990922409073211658785458012116586709709814285972310251810548160652796340192892679739342523396009448052113406682344039053625615145698590057560188814117625782007801778341541799184828716775051635427878548397141716775260362973705702426279287341689399320829410818184772163142702751842721900511538186904702943091321148549087085068788863729624356601969979396439963585138764559159870624275934134848117942157441559860289179108973933060346900718477634414936412089613422319742489202053914413531370655654814398231175519655867046049485514150017002996555647761596047492306536884560679602849352261175275838750215646541709050536174584273913364098128025871532429770885355194423019091844023498696057397513327073248029656589754146064668848799127441801527007295819357681526327872951662997341626040259096356138553743928782591081704589953155058367867496215898849377246948025802344319600413082426884385985222818184357610679196630937866551154798726469479065251527746167184590427456510915093033716029177935793399165692238090196275832512843977394078129415887136219686006658653868731292607908135396440634987138044817626181786372521308280682986654763838164534124653461705342316669575159199762820571419544922395651216107411035055888253879262068984658924699447384922917410508779348200370745241661256698119473236059421132683368634460367339482863943880170324326684603487387686965809517602946327590673310579536279959931760148069392415807866713680992622148306883916282993628417151319167952935168819159586678934384200241339260214648464706325031261511582735869732598413860943720123741951762508361936492239149558836118204370734321393713930639570711401517649008272117868506864815898266394995862346907307918521282204588764551596372701444800994928397148953208077286234772220998404234092429882277432170873340081244758719987518875705198072005514018427178114942498945414210740831293812331015832684077096511224437247475153103523444363763307305359578721068051849282732228961002306918083007290735642429949639998959241639315047176010932454927782944455073891930857454046160735026251686583198497932801955279550289740258630027585875938984679734406144789283115846112134025774793818664372251352167225183275030841757581941538382681506413007357860750915269645341282973590479680509848346609468237443681805168151157633040840614168870813869176340538580635732665201634891946572774325687091289376753656138875505336211025412406504894334407785032825114258422414856409327593985544061795052342950339217795088524437696166631990050085014288193833570109978032710386686926228103686893191607731402110362116053879219511596151166181567356279795344265871581160350296090135036136194262004167826476966168542910132543342661914622070541591396180127149215842467346058307678100905649287633647985692058645382333538024909165358386037998070068002283848171240837074105212801087601941469394637026656720633222083366392341765872562935442949894439673103287157153689314854171508600400772833253616555827613698333153505768659209620965870600971516128723191318506034932597345277995412356351038443930187419919629278502730632077546736633036827181445784450286755206039378492289072693970994042447135484421400460689993919534325017416522511637072195318193916593418386724546888427969197884693134672402557617902705955411771255154242244553536679965405728009779624517384200277802352437746821995333142668844776300964742286607540664420074732348317000961171469959940231985838886702382577528577504626545693283108295842869343046674251650747323582697728941664950650614693603303106300371893635487260955179191657869202313395271575537596693168094651205532186276525221795711282608847275342742327211966929921166874151145125104893690261623843595383088834240879924343788503614284070970211748830638268632915821018886354442282706424682790099822099978170670986137964621037491973703325292832107891152398362104207557976861003291295293480982189757648893985393863399586834550867584553275537488635069696206712524106835483921118938951417686829943023110315223640268099715449996390026268663053846046910977186999658108652569824041647634899995366253128486113244037327884474097889139592005843354456660228056654362426221975240969376528825646904196028336030402353874976357642731428389513989492128797864933936319892816427310768867708049662285973546154180695652941113007269120665126147926037806411688463447264924235029629520444303010000349274738524461025045347837524629267489235020303964402168495677005787861117653267392961708887832286918550940815043343869541961114505109386348824141043003042648395565792233823645803239973380770429342423997435924614484690546488290358061614777156024224938030521168687414538490882740494239735675869320220096738147755708741427456532778411339730713293443992278826728325217891786565116630155141784046922548362210434715958109220231914493048108254720486732812266925577211064346731653782203956182869022100003335254389325743311755342651766832870141388991676551337346300682182115485070858767449346787268084529047511871430315374289324062761918721406365748497626083102135402458678757201554000275571504022044117276301335612382759217187265746509388745189018228424517802035439759470328865059372607453418362420041773708502310307586702693865343247763367951107645696228103489549689499454814097015689814541318350819054246363343889257185375423180049923705087481293953697809425926215334513524599862039411267503540788658686858081001652987147456094815777469951294595546318712842872168864390527610058171682660519994430169740884447665237709487988085380000827955149384412817895678206902506057464301765773493887060844806828250039623529568208468509724853321175425676944594614497305369704373315004365765902268232814320618778958194058782787727249154184999058481353500265005542875257056337758059146931810716077122759680444812573983761288807737752241227826249664920312543002656122711212363552772204335872502871399438564449548966045189456747768291454716947190597032100406548076636879584083833438104855427339376237307123255563277193801436248378635885840314102823579745249830668301455409178815255040088642791735741391157971278319327536720859236220193836144712436798682225206697827781577579887339199643253543802600474606525678516919104986842225237013592397138396475471723521657979307203732903731582232108216880423010917284895761998416335263983528266896489827456589913033574623502238855017084075728954540207118233269735461364063187163707497756131019887164097590975095785888523690910165819894929370377704547529036440305967564560056829584643148439933645474531111523094909194209675152713469037927833559969272230044722389773429430786260454938536715710247184992810437064445749428298181961539563292893432858948876217283595884864533707535651797277975888040447301581093355040551776283877737500327980884853679031972790320937813440309797769595777144703028617465578859467332153891902495190980470315184453131552316863731362315105364409943324130423699799802628138251239377803031429093361268777087585715937084460955310624851714727816438917082105366834572649591703348434538875355381865844762419172746642948940890848775020837645199519289969285020066500245015392965723225577657011000386287393700760144716762375882298394275980052332539826769347856187842287978557045817034891330148800498774318347483763935963553345524376695632763697343468198561203637968516596626699112092054059939458743723230031078758609663157545422356637747438765945161093225112802338022954671219033356113835302732789841373868078198156319502569658509797484752542699399300889575821012259625486660356952026764303974020747549356005415864398091698886594695527340278453055367900798789733276585928531734225040055081172136252387537126080424764929635638918751397714674817491014668849987535602205784357774925438444486423692616832645773194905037626990549085847119284829476631234987181718101050237334165396723031499522098074680727939106126424392172560881216440353582748498524497659308844600303948655585333051587919226566832971284742805635848248152637355431317377465999828173807051276112821197868290594403887418924205756530299149570496599566656528912078848689585799161088093220882197628405511956214414457141384192022534601443669459027623661484154767089131869583176069607394179889859587228212083129118410768059043104590610210864482656135664502474893462639268696996629698592188740210690418571170101996069912004294352471859425881360050723431143094331464386090878643687810035459031914445301945780097884740269226466439247934929115657218460737158199590645342601084818982931960950042604932281802215777509091348285812788279811845212479941913578832880413912872907029492170979148559664425096217839065239035594955226522616870577334582044347712652340578177031929663517380082630229033516641944788974203727285559341332904448740334811845445122553106751237298425206021662711663190575767348189153042725180646142622884589167183502066065906472279092643794742560173473404510402126300791511544548073641125839350411227298511141173686155500350772338372662451237500131440929416403845760785395720785413029067164534640900376292648966533085326815661463927867711122988745904975262166189960922500405194390775450620878478986797650413555682459204525273722174576042219973393387129201542653219835600240993153144681979158619530027874737436633741593635353387785356033479123941811159514936895354594232355490653591637650622841121570651937610203525947544721540063402757940079762334386718512510444664551786557880828437702863952226759437560097182063205220453804819305345544321773491549296062881543663712934639141654816646348638692716826952197331906083330309738828693499157836321111919306879725044751093685941222496551229732139841513737754841514531180900755248038900927176090594655344011849808002525568269015444418964149201945100321317952720745648244130960485480277146509395265396311135562273278589000935386335589985672509006666742885720247285591490893801482993291749677072671836399939783047374687814089170997593799429172646434988332941918130979890515212798505783559333611317055861874680511633740754370532953799016393134268628353312416396070846021336659643065958851437572102107115244163264216195230867001629303877053541699727364283127650500184340185338916440081622705228565635742861849333958636079050616459419647667113987681261192130660423301399908954620909902815084747602622930978124334110920375825946256070721260558423326052444927323595581136591796875034128816521658500986910081448881113133831452977200542928548414790491785335537597334953681065349179377823318995496715740611353932517264660139746402083432202826712720446587344228039243516715378274219888926729494923803225226753375688569575949838134735261349164566697825837001930787785975982726195076533801508032315642324429769380662299936695565855366532156176372492590393854493439910831112727228269222602639847257730259101149176581767822245913176123201066004985463346147879572467293986780688055224585154138087621594932991332382738692438965737136894619091451427076480450627769584577025483152458980904156901687817839230323310859104322007846590959715880055930235143225752495483775275979326494688726788941595113413890730682423812695267117824939629063616177104008838450479574432651633413908709294471236508049205289221429427389654437388956031011948558968487540497291601607414328284306079402281986459111243590298906399851561156601701097713813271553388955065855156345168970439568581241155953298615188633199055554937427003605155264684930345107188326368382398204551979670686756325589252609180778546145166544446442871818001782291350664428206730374990921999349757902336486336211981921584405098011116295334902770331968405231159509482270327295953643932284332847913313000403457708531789417385851759623750360366981714570462505832785010166968954044199000788742431741024241866807463604073706644174594181420066539598162955484648795711032190536911337571555114613331486125747493345892253099015857805720625830540652356407351488361761424759349414873893907975102073729689236032271516825402823650208873424330156002485429197582498239392073475540565909508066625611268478602467030980538529224176393841733302930161619320483123246732473160799939046804961745511719752481810327547385826890185163322367229777427124627375161521744021925972712332350007013684754142343557334246738619410585919245074712964657523767214619924388099083190332111927380543787459164653676019005955009782813886727116786723902824020476069988326943492765786812529581136594003306568603534923485259558388965632624521346700854834076373748533191232007987445874000254082121080642582540885340745807572194361597521565612001053534391946547647622963908298195035801134463894249659417260951914145526000042726751162350306334454631175590680215682091413781319967870906171946249524887869244038566434436958818863747944959395820869479483462477003357723195157112746776843087508041115143157035587211751325829295160309903414962508108233497052678973028670756713136846968991708183265388701701543570381836225008731483533101449339957366341734801997902321013470895947302660733605403585649990511513528169255008444319275795160556767570264677612416096914498352098326511961623453283718046985444554030478344848954635490688322968973456084091318610075559466322875818385302365530474504671153381789463855328070035378375004065883506163037958610854134624232829611171325239881401498843440284772040547291289496138818670308356030502245173128096776948808046503677493400099906990583625903958658158859276371169223053408104365288430262167034784893607819590570757455485344775961703480642266442122484109911879789400959980553941533478212865929281024493408208023532781400604039340556092756585564257276051160954028949802799752415723160658409728611958752259618600873900482313987262373485845552942847274259078194915197091612950382600728161411851364914096312216825001659903581900403316528946940571073868350961159786513718097536661053033174777114845178913230182868225236561973505686902940144598684329005025535674568772131948164074041646377424647129033216596043264311807975779569126356645701808938323521652176707800552462404729401306968124847664010827232879138153467879397838185253879267496650628705373619718254126878337351207050076508102429801934723473760851688917882219881114998222823222799798913133182709237739024265574578647894394533134615021674262479801847899514732601590725586500050693773926807824562547096676256395275389724916904941198139179840395870893503609541169632106924597365413376323095606890266241746558482046696057521148700874878733675866600101018168610851933561106712158111285036655699990423943848953659741315181096789869490151123318529285451825881386840199658663990133522920027943990927402316652475122678253682096854977992303176054130120543488089867231618348270358865705483256030633086975429790856730957571604402099334750483007890957132010140758591985149088537702379550660658318917405980697310994762706238535858032245958408509112745083560288010302300163932791220858154023638456692673940623513053265683368109578254446158679423646094967635533194354462763583761513045439604693366959805017812306098562175944348985227149218422558613803599189841488281101534348956671704986565367453321481432439669807055427522862170800609223560888707226284889751395880010307981637271087639297695245199915887407197623409611450004432068818814242349975228114433468369909030486135565399905701404878087295193182115605220164546461005899297566272441238515978010779787265194493094312839145033662719752726391129323659121870105749914428061818990281608158636971804549679499498564085439003935014338074103565471601031555471936941534996768001475267572138647603916195791332546860076364422085119817239081829378782467530421506534882243707161382797002954955569285379828812308063278828709132890441591075811941222135419880754183080015234511689817276033078523122888054082268027301285451960986801198420936192174382742452246675007424336893651716426848837691853684472602276516829432096677656906611960723052247876826278178031992392866370143587943561930094212192159625080674443169372894618241584765835072225404435186265396369534441741170770631228931961355552517832961798309348586684171952981525223450282124502168669510420741887132583671356752308561949644613602699869640775695765087463702395032728764589332986308255310968428256971440821999052378871990025203959158853539993681589513828747271639701542057525475555252903445690093387875001195224415010591139747519633972037778781370592008121297635416478576080246241506430072890319697501746038467602266613563598159434970613559304780788159687843438976060195768961487765127892643573582505259598669330066047335677758532544446480225908413810634582896516080307885932601574458381711012709870421731710783051043201051614486965076729829116197018368869691933384704680101781864456696736171787167023503850709938122193400707407636848832006209069692256971180888584671141868175375859235932214990823138665534937393295283778225304349711891812633417897496717350852129624840429309942097443222202703276294718101346970153331375004776719685760297139423932851756713615001248489075774424086763929708697460248184604917543946367787738045350315511101744059156638983872249332317003946158337236334325746052693400112476859282669472528777486691911903470731478896037998567239386757213658367069598207139939997052231094083084018707637929824080309748471800315069072326682100852146920136240834185266757639879855542765278435436526946179531798691695531506545621049622273478693985444544138108923488144690974167823627328359016299283626960678056732174719648092388814610656350721155886501294129286925489787036035992054555279622381068093211525826912279590855696582781078969720140322994988456451891837393970061335855000175225193658158569701956935302902718664459359524588709261644367073195711319869867943982490636782250208612661600153996074141967183675629959132597160002139591985141043226533248693941611117478330741329451205478736292718233677064175645802448995289841391450098291510711118805951624566029338813662028193809137478212582186491545692105911612821508408617083463423337425916248293778950062005923587942256078034968971205296713204579135940348500142821440230635258767445673077793221426518068660879134208889167049032835844815643564684988375660793822776134992386323900915062381751649907157150285186393890186776715955693006123491744870241906096483988767508335780207967508368135368372578885678852657430557871933730191029477003896928589403155244148204643955772173749096371594434115960172272974020916992011473224566023671713810817394419528759757553946290622343506580842562062267636822017561977481326025178069254364957216040013478460948705655697177528411398406484320803800363200447209864287421177084154109952202452393288353244274559096153934486800826493486116382732346313137271408779212161671106290402287458179076985091770243993774555231712824454005820350733326652118624157065692392579309414970200695374830431538837717331254806902074033595217152496569111792714216079018661355354374814701807304941106900071567405008326131141993195007077632709309115675871571120648485359979035735413875571521214414581371126405839538142975298487365048466568756614788405431511848774000268819294403384524425372118846743501852753914284519053754281446197740704678180027611168573710279931092106579192760142138119119864634388242533634414389246893637552450851814016306901268423515738359936813529117443273010308949430464455313092561958059599068734505122540263729984815004031217962640162986240263789834617351319464377728252016362943621783117322570466647924245245894720219156398474607550550181832177541430775870949329503883741734643829836686106200505594772298162159294948722874611987481341790386934698894184565054957630732650145196442853479004237911789698209336677285703417362760671830685652181980445599629316802447444299616705391703084689563095420882722453955675041038259190199007475021058636254377892468025298145417389582405187551567555344371689541990227535053155709522572879073765076841518683133280836224077772356566559876953298842070940196709330155448479015027460949873631679126235053407968491171296559159128544161879076342384449017384459378509891381626019647724655654040416706381479488616149637232558811622880039009302832421732165268539614311242161713591552238679647987501531801597301722606220812174300152912717971594454861691366931080046938446987159964785783692900113241323347721659185166843241946800455711859433044244618881946954305126380546517926304531613464381100944530348712447971664705875307803931437769386257616889196565750361283277788761378702635434306310883437144150366815718544475483799179665705887952064783598709925165144910653844345553313843437050544272181986638418542864656716721347748099728851400989873705501963820998370553612925979122384710732001175711180669119134068119254990687112634291167662295406514590537213473752653863405270772629195041109442259028659712010747914177741712600511111680847732395645652287188497327228653966996184740635216687228167112790621925285228729819107057686567800785020419168675079165880942597343874989242625276488474786630185485080412253689310838609912634599441198595826805484496728555585605146060812018164886854409783612578217965849785148793937069823818049111405208643274675553770763210898238759931027400888528436347294464590096286012423456326994532878930784844515729063945914321954998153906529990264684504243369342242489097782220753285433097667536111144388961304391812682803711494250105738207556047722154928544034616509566338446262156530102023952204544980994502497441517047462402494089412481031272498325958613001416558742349847663612235315457917503587242825943303521838318350503094035697505233048617983363443125820395429405369561745693065439945177807395264156967315301796562088574760944407158212567408636325344712131277052863536758178621322589889438304366608154158010632257982356040059634064532810026308955179776141918687894678558298532865249500769355468415775312677999918707553139836204815712272882051717481584016805975423987137188707263095841611526257101276091350897459478492299619072781097962332385263258924814909545603369607295613564712187375981615393752128826382192076611744487755892739350875274688727342164978484677400420278574221917816974473835366214262758759448729073184382298465241534899522877690798755164970319542928292869753738303150967716806799938405236008797630387153698110588916057971619035040788000321469561769703519003005330062510861610640843915150410243807467695404773864743807706602266174544317031024349941800501213306575069702338734550997919060165590786674984905741246614427912965674476468720969155605970183780760297158034389021997652623127932982345675833794341041068688349532694643394718151422611929730272718660548108517615750520534179829800796909726256445609629085464971043476396804073664967654057616575253509071312486033846492043550116993148687332470887488875446701500569492115605352136042672752913551088977320208112683575767425842354158078940709707014214287545251883213264048729255085509785544280255249932211881126711386496761274112281312623559147998993985730149122140459990874746734857023241933123905823600758519413389707426304937508223491995547634071365473122768527217943429095006854764059048126835950529523554536776279002706934276278449296496021480517182350183730299961668732338050838233876115158478706690338943716715778710610859550064456818954231818601519217543763737530002640192949200586108143646886883142559032506085837344465433462669889248458751925649997341462682944809878579916246257479245570983546305539063711239420541061670744034705018267501024339932021199630427333766066385924078530035216003210922407338561553785286566679256644468498338320887318542078260440229399402257188099941339228436354221673978034232444227029317001096205428350986632464077821363146826326113693847475914541104045745334072485907981819264473843554795742301002458868304609489792732118210528063212257256331447781135946227729649691895330747425173906233222313312616414993047425077571801289230553986263123269512968543964891897198220506442163152939475672311707497292825901733867029498942905341095318425181209086353273516637245844891665159565087222177445663752153082545404169603731638014307377020221651030751177640788961540637973427838595261069005142434114642480689801270756475838606607073383568963485780376040581034257998646297775055867647508826747866162460760216460482215537265924921435298692451729231823948297818330649683209235563068415906253042505475930398518648696435372771627925621436602870099627725849658685043520496195622614969700507529597545151063625481287561335601638535233916109983977399223539262479119530645790016409361661038838546390712602560447488639052637648043979541753798161272800205514433071526665712403080414914595733524263998136677670410318619917651932115254781525669849757787027060979926268307358444138624918291965974167487517274286222256773285113367241262925744305626718083205559196156304710307365279687181232960036282169738691296104628049841596992328356482938166977684684210868495104222357502136953969299739209643851168091238662495697477216472914530447461236470985773251421894492019465864410406279617254080159377864635287688744140944081676974240437672398068527456155564488191504005421041905788371766784391975272270879161371399409612383757733561271533485733705476880006640474767188768286397537435721785401987996058291878618168549912264945224757349736903743899756579717319061015730913903620853114646684150819866818178852930900307180659520121858418219534684830153462314349781704035546282673561152620558833716535962726222293930575437120219787791264729997224801473586964243260945864481183932673437927666272279262869713289732617544878324906020085136821608569147916299822137582552578742024707879928548747390233189140105816859913192363041051137054438311219968760422840649740268091344028892766708630145722961513228517514082425357006422806368375460844109276675900116307079538109675510359854586781426962043028290539067599800301193209945246016153432238490493230989923232786783337901843855186554803385611572837658072771542715384839882019941531161271205759508054211075930099937663058812566844789337230000385857457572254785691873968019829705912811119289039508496337478499824945313104910175726893802951951946018864533297829454204723941859070719020099942141950569607870764368616871285250731929283692655882095401862590739601911769538356394500696547920469517486075832518494919193056469206932818367512439452074160390853094021573593202932299096593069803826748895576064055660401747049560614148178104992032570984840712902248728112357904445148636086461058381147201102641922194136223796073235337024533299530679616418400847945090243444550038616256767272667369606209967733985168884644740788742761795540417085668262572870384072933800930881053946338397661382723314278469376035383818580575949780848777346890008058772925592891832906687923919767884399325533071626639898674208118624543054702946186943939192989241094867715725540998041386336145813378360967628999865171700822639320680735416918142664897598377285927106697443376487237985645111650358751850412861760540786562073703694982347671542756156181716028932874220731462765125938139564965576384123410002567357979239588313211647342694454037195498172673342878548541817028576361971587744556499229617999889521495037626106544880066721599282943577473964049820833420602426914248211806075706337297780445629775365148248868631376751668403261606342885315665202994005833783007858163997805413221907829438536158813996182683809692516080354406826209706234663158755333290367313133033346731263220759702445271782566276488322060438764931492521240536461864478894298035489939335112332595584505953869131032474205286479556791570658259930749067547881796594081464614855405540351560226901262353170883283850753405656638317861976438555366948191357055944133966941408051418006890618046845650305268623834884350333463587244857806569264247963308612140202955072782261836302386418893442255487566615736304317489573258620640085466257626125529447418455750522479729319914738194306981085792753052013851410232207057203429778292365819014633008780244962589266807055313946868338267178013928774773807590523837970576297072258713519446138875887143577407604099243082169351072304652551204911301683211237853457240660746937056588246574084665848870574452708484983155484710859653364749355439938402707616043144498903371377548085629498791269750127112889408841356256663673312989019914278424589780800810243336230002446057851333824443943186911325983182373748354171515636129929882018815472070792240489523311683691136576755932225440000294479981167898994381931208709735524671376829225041396776689158258822999942163687174123509779457779335721525133903839925017718533998457847754041038130734991745964397910377541716340017867340179753201595226943596941077407939644069267843734220273498096304068115734708633166775347446854843793132145352103021753574130287577979097778170137278585757137035210195375675636821866549406797128951924713234687865615631928480418055641688448416817347859480907047069447284598233641557680174704720170267216943670127276557581608992474162089511587976943726516987797831866237915840458619600919065186882261382591635055596832160819616531705306054984353450627128766431222405499592219935996282183892640836441978059875520007753255922122191076388869164564810322155926107806394634005274939600629956857539423996019327659258145985046038336494205463363791887749914949735576417614520055545223468449783845450218641590286438013400026671056056579500130149790658662308538830926099930291347205700887496340550834730308195419774110834833181350153804493935688616146618662531116168992462094085618004775048615550847632738143510473127268656494352304493495128940332072919215610053843920365687255948135718781012949665625773583789791886354155302446294192470417884978527590623876094635156440618790487915830557485548347553083285192617563051612424371504193993856011008458191800739307664492642221831377761908615218805382450054774487263556664594610074481528566403242455906162106287672205734118613593567311938554570410432002886670640618533258557248160935847887567507164740146340235189755606184545473281718818789935231268359031981242802158291111357420310427416223624162941378292190846317563438518894604356757580000414804761320503590888610592551897096784686348901041650904537481500722909347308922792889000236876707942668747826477841781135176132601846442525736697314174387204789509969512900211286670177735411051563419416657473853969786920324829481056905579232224750198778921000433720406327218919564929670850443542448309088160799235979276632621614621124610570680462761161436205944115672510365294734571534848876929846824607742037628756725236374933124264488886170194945601904783787844126327599736391938432945732933320460650043254197027376558055263200599148308957090696364822646697762495714489293147000998811457507519498001554729503102150344262653071968259309828515657858531220583878862148232279390117543555137261533333759756911655666693013394977571208272667896068693435776605554009257102762068142528131110473996616084517641314383386777925967333162782703264428415195745948951354053874976690643330854856476575513803717306221816449651517284667606861404639957971474886784833535362723295736755452321677679170113264393035573381648279795483530204839406135915359737376976991227858445789717171863815722248261242295478316890820548937766808289129002707882221641782393473168944440531673776809534240141527046554724699967731656391737358526694730515903770102305585066196996056722494579199276783497018765696131488202918075896902882401299763865032714336666031608932913399233328597180008623596203242054980306944204417213044352943239562021692632731043036145778137742650093256821378211811861604564383210194254863010193424216864171066603293393694711827729303275847030780557585251238910896926421741589345546685696803122663556378249824954291906410110517270887551289529286779959474588772652947711522495649102284622982001610761522480857736887847454297159606923053157173865392627737513115171879930268933077141648858489605996500309885449344227637888643730374850421679865918862726996269696171421233765066393475486529746474215323408138129169000374159009704512561101426458721953751722646891110883776291268626083600762581079791307618675530101031995038921439881960718390245350820071927982930201962646868347234073505918660086513338400146594830609883004299038320205575705975814548650783333664629822621055261503869174979909261988832996434416113767793565799914474498633701894570323732015613613800323552652837715805258694653265727026635319562461087651451445870929111530424215775554106307643596000537266996193580047115951163536653287380571419065881559993467085189371914962496083244389404134964907378907340770625217539458884178545888194209959308448794116875950312623304587509846867817474602091026422259817794406742656383075746114627767874140324416824676894767764565203416495873480540253321818301210145968916799285940757843710221212000785612781950772383640295365739317348347504367625069496199203255007384599139765729899935233121246663409790830620892145144138612894199017907512611381201267737085652287613556670624127919072039640415257244409690563720142940279174627102961849956760822462440949473166148470373813139199416492931335929559535857342624940894842417140319956678766809644344045552646608023035253587430503422778102325239988907645545292855858291118041418216571919567035710560820604013097324527885067517579289128079646206501201380800871947709365887489155875769752978626308793531718057640393619310139119759958067886393391838016100939150770550624080197600681616245557328400786192606884775773915386653090076500731397152989627696562102015761367021546483844300946499300177246461328878040104987383265299003375644789467506394551119362497919283109098793813239971182391353123400574476887219761387773192574815158818316700810571144314380700079128582562461835607894400179717505735469460011455739610195405536890707531264563189699668712973342412531245746917984809077868391884691610221411826164250569046133117671960851593628268329708411683868205721427200480667364736261535552108025311029724811571066762496719505758041398306166633285853677029605663339817017902477507350054882205207236063207730673433337398055431925005369949485599089191395251741790424780377319092770352760660357706967961113828838411944405917739360175485570986135295045602006059662199448934911220364752487894666395075685627957221938197738707181194135446723181582288629202524494786905367605575440111772769201696197963461501078870476257597062579000014602292780901912538520302793530238839855951255225993555887049660466472594458994367683364227830168892758068292186610651575754999835068194493753878916141050331574120536253285028555046311873375955742188599545417472871159030552849294969706865432241377337622429467903003301434710473837268191080968714695201665112799098356275728534411325544533820497956073110206384280499552119024979000219488137326537698275952806900202016769061665891367325056099644232922285258674689651176255492181740940840896823747342635025193509702866089769120869913931336335565470164881137250514444917905837411078916591156669924850323489921976079648942991146054881853444600393499632649921816050269649168481068903465715135226439568273496998333299773127433830087544545509044390287639486696348020334244715742068220607706888436080032737824328411633662481850065644864324583346871259841754959406796182857618432694408498094593024922610871941571723900224544548932491376459804489152415049720493493753328596575424311365317811308467127029972519007489857014888056401051651017620287933994404829263314534284576955137603707093992262317192244207853412743849300765361431361724932853263231302456894790355157326539747373541043901689385667921460613289967030686568807512399013317561706062518091542583847341978921237770618133260553520528924588239941216872051902668841012054715456556698968125936365744726704289067778764913439858760314293912507722490438150225250523621004592946471238669445976803711509824651203875512457487272179381157057005830423732448927797075237575104609842198190868087064755293880616094275781181033960436204916078122845248830956535371511781952913952307983437627795269508771639034724478397137617421730163098529341906343721215309655074229491147483646929573794654272261148895838158668890070647570564174599198689417233784530599195641323253905664618162252222602618874860043152264880016662295718997396638435737608525287192493660910929441612243946944847894985358694156637436820749877070904097524104908770895107067512214508051974289197566829544770774103108102801238576741627481368333602442716887506167505063484116637619128936565564015172657421623572245204462742691568213667557991268212633939486921281974162771408191789545625786316048106558042003989926218450783585716577477873554727719287679876218348796005544162870836712354047444127892671211970224310791254834946249773795930876671883442295957010450056277067790957262658316457219730283152974877527970754300843248757799788739355561537721834443271315431879900742732646226325466983311523447625191687831166920707525480221819704541817885770634331537146135449237587024643126932095650310697122076876222534519399403008483598710119584470362407420313715181713893174681186818226738372917285650194005337493663399666321538465467680265853509245659958380731537602316682110879120084665177444499344036699391136440992009452640375409856817388443014818459623492475677481550885671855936863766486393435397205401312570252199381279800192374137179605692083770497639383890477829369829989766521973792633738652335953408131574723577271945261698932494585681450622940277417381292289366820878548024641478007864361562480459802961306625128658055979991874153451019096063973173216276834909136063188497369719715298284813493755878144178867072797873925418926805010987836588802661501215130647344322399536201138453974970279365391214341924750257572870805129936623452001690313544989210842502666480348368546580656067299228580767330573781265535094158097238851131088798158999432967016726796381440382328658870874199560437090397023045616382190361988424042932401637733821284060766972328212549076142536339386591337864217986037311280095867794045156733466451454631707031426969041129847443635820871911486843547762974876711247961422671753601678714205021249968723310662429674205760763738527197443676390985741303495985510904095362920793333231902534325868474704751060620765252304823940196855022512267841971738246787582565190612664281799084765128379718145458006764280968645124516106554005857130990525301400035583157347252176327706729346822671601433557580736316743760304704063581949900707140091818875856175610776485074777285004138144075153832628008264909623925075552164716093962470813332739339364056519257807325798279697481756217887106674444726607160522042945141971165344645687430716670607667553456054813711240233460031218525604658913712656227326144245889467993140906027209116959959783991695131687759298746289868276905920385244803750265849802497785444211477448576888488927454760382967168438032160894150317909402750546044518352951324594456041339382519904790123648238925222147642490879989112922833375093222131304751665285642397343213604634182114193256539677159247389229018137410640647103282571499000253349351441944148834210152121672915430736723283331725848548905713855148874863481474378549758411317992973006789767623898322141362275143169026443590111892172124910365445017301305877073604035941855129357192898656618759849244079992408353879918340755876978769416379592328578964627267133467395823058768477098131722216285361710215098015833586867895555976485384370710214365726189594606198793523711409612420882033393288924409730454282970800477341228624163038404277109197482893704472076450443323299689886269103998969476862575348832889359894892923565722287296378873146630504969816919279979975008264216980090134545043544778710142417639849902909605055854001241016626611004342183950405554160862590787510014084340249055129269844253126095259569231858520871967530734901619203815855837691486905876876711950966020044969503018289676682037789348424472124355091834397333575889659969680110287786559377714676890859546561854847735100170544241794806444270984145249730738212498532002112175219155420715693227536201832159924398912400923106839122380001734038646252673525977125894612049339775115028469790229041618358461542052323806669332447715166430220754063027098678627578186856132542223351690689941793073010444199360192934927620416907443046292034536669968678378529138667032986019293640184180852798694845549660749667023949666763740980919772775013536608189027785427306488417703023374059804889990969100095567660867961085663511542698595940208124243154603601197081278921433522773082712385323115852168100290475098668074250135924158798492873305611125586402621861235935049846105308634209851860487102656813900088898677176036598805253076396306284045205803526691073591889122264086766591514363944607081228034928514945286831204088506296161654008060385685800032676945800627766853394854565072044863490471589794288265256237570241472152043930968181867461157032615708737766966425607663194724185991712592129752344779775815882875338054668447618377490770169494301484183082462271732128673055500159357606723292983709666719715222843031239678182654637961144137850447019969726064113821102410163594684947214131606797166842273238757434009018934402066879164574794130379940793598933334056502670469677667916171639492271477070001367651360719775559674576005931208512644354936002107663651073777294575993183993656495250893558927358108553782151825262447851874706792159924615490000775657214640446362272679327550434305898363571616753217571073544617256721504978751363228211912006437690990323415276777953237332113478488306772921526882682262215321212041764824026548048256864731545943665675307166296271369871501715249965182577286945956840947514769362549728004803057868477595329055266596529668243734745257558501337785034807204197095109009475752784534071872401738385414650172869870857295338820266167313813619203811635147300105247866870867896099856611766489057714650665338537370073958789734052048649783823911969693659933368890003025575634093532738111496614324985394901387119736352056191103384919389536758097878250601491292080536998036866605342138951615646201754915861701909021012252442949177416169188828311707302727848123339791413972020531612328852150553199168724998005034661120683156417041299119937496896619920573122495558564534085545844649595588672517302011527298722094479039165501772983608289016351452754924038658203683337201642745463276534005178471763064509181267953091663071474341544232314161868975957462965563418157979663912499503012151874336874495674902780113025670995669833026371805240605381678248979434713403771784513705497131795869803725410982534269372466655469351323896901293210104710821403879380055404845443596450453478620006532163170174051062602519104186730622507291187974820848515477347193423584324417837754270126931266107422212760662523765394384018807058331358674759120581155286183569031463578980708047163514335783870553121894075545143110519716779032603698206646345781691814689349492082699340990642954239999737517128534876020331026847771349149319176851279072023980185075549609862360238007661529198865401024977512881228922372483315459917826111946249965419157612294855152558120388740793604808704127394509309591095007227151449634114865718583885388271914116640729308351271703821121521271247952035962476181310620433863430178418362764966330823104346878402732208645662155274501441031871259672710259922168197910903259460698715056988285295341194374464201222583906174594545893315546584138325212150195602281767307680844693817049461497189560970777437320371671811398229235534900280567862062379448604365935593967995997803876544830508604797166676256868059274115910485597567960951954510435999941899378002718590428538282217088522379822710158655263929955562723254380690160627335109413469466486904726992242386741138861426483645345167981374816598731164713761223403440543843285971477165543262318169803691741647842239861475861939161763026262223289158685674320294135768147997082348603857008563441094143922260922571984875288003172459162331012272378763109492122494773315786063961769919396341266533197795615418302652082086201703904176254217861300161723939816701228823649815833453027201672547550239503063600744675335655178641480818732498789844529161923242747821062216345762013172837548957333723173112424928103585460648216129400982280471949603529161586633657965373651376237061398952174605821508026134823339180433229205000556015949482218450519710217308286137588408138839529212540266860707773382339549566081064333896291169975993346271543410346758272696999668359611757779899650803828115662571308859580055080752827730629187749769274707830636767070942137979867416434556118209089747717665286239372795740242118544663845275865212514809210876440022796591100856820839224981981666578420496652882746092228451292173011723212638858190795252034806858430997566806765999655091684887115628325272086598632988840896334853059444160574639278909621949645204965479257670698567491438922120547483935851911395500604238484904178463930657412550719471837939908805607093712011160068452099871858068812489394031381577605847536349510076396421466573086784066340392793243007473569705240924469714971033943177961149936360747472104219502342221820617454902487698960726668562163392147979254930398429883615111490205854233338573674467298524387586089183004371050630842640168803799715975440505413822339408320512299071001903078783066039334415771562079566773144298077386604664258865328235136386435052106613240089246352840004434534689793617701630367937151858968110693553798142563584260175694101797880947672392272868197444041195643432279276038047325690692878687203112370665107587056584212678660738716313986481501015110850741003453994778459032537434938603546943936233349027869267378209420595768009253559341483120538317939945964665900422800570890594464270010382410859214887257928882744630326508384602913002439981250453382906641661049383260059209110813849371652735030913665658048099076589381449036732551741717571988252551767825166022676491660552227545448933186627797416070611496759887417534205684403972636594376899808131179508087657438379639073825506998512337620683904042883849937892090870302556749869483826371105469872170931552580304815451959371513566445136457872619268380629853759484052763326708624192851891240346979966193734507182585274112952892783185080237844026415307808084137148139807312950242607281435628808099234376382830210513418219335634936937330130304946267099647633475546944675369998961272205546852193777310854287519879027057421328218913803543778515810673031427367587221181853853223455533501784079611447537636874172593513753775967177307290714103327986319640466448065290738585891351629594370125010734675081843560406704774125031113193763111277528712471127904102331876959871040241427433921166339577800818005247172249803951521691077562741115956638727047801409963321050516847383312286609823016622505156901064621924081655032858730129765235152991728978317177116340160818636102434647875518088568054483356900983198556913256470530172495177513390711156136093486032128668097579197074440341038592097471364976062370223424632206567342078414003767236331608213521751860385316954083370679234042210304848937769139862476892123322702467315383008704417997757349075077591667259233315936951623380270816190058235213371532086021604511743772396775834731264093864382433668171489817732567264857498656755928628348751024054816360261131602814425756518634965932751261268043645181347645205456928481549040313388201889615538978123323809854972162909444015219239758216336966467478857749529037867668080532408551386907674481856954716519712869884203686667105106471498897972442849321316767224192569828546034618565643616966958191409448175578503014868276416778563297587004634878776893840947166518487305769369182354133458141514999923096081089580186046391182538403712903359443588798328284133626602365038468845303113040198629511761269643104045716298773715332587255982369858025758648365248399519604056549875382099462117186963037057689079800946971912794160110933905702495986549292168770364943193082265526301937057251103064000093489575596116400307127964493417525134335857998783230395419293266973425521727854832688996693200870792979634288821600751762118060195485249072485038622612879960093141750895784703158266589665118152302928744740502352915031359005070205169599089901099740723188465986494458869493428418081491129107684203197048032086697967991180994577047418424504403273829623929090018210847363695484319572481361201860058215006756106481989403539936828785528235656742790490373695453614034453142258327800875795785686030033037392219009387029252489195865429254373079496186506846908773203429770364218271476095918490081324696552936976043308887936337628330362734544163169350738956771796703650980960226740286803262754662213551284441406324318583099222484301942029857174189598994345763938723401447336886794921751318227450517657329268889877333556966526832134478140917643384804446571236992995685022295398063488240753212963610206696878160081471990591830940708020519531903047194955355320076247439463002995389166794724161069545901242856007255048879035431511524556022061517109381350899670013631612896666562077628548560271963266770957148637299969603589801796761806944927584574703099057398428244427243795370374790782403649129600213641498671887055058387377287926222802664911308129326940117103840115214388492607022941137577302956911597710637060632986460433582022180795080229850300351500859013956169014156283594603622617279086863909007147140478984595255638515932733740791913536808479439983785549750734874788300964299159622563460477769827670387622742286806007212752886851314724673212054594431571364472326305132539741233575277015891233747988000368937795480808678650671729893261199504158154148884124752675644296631206303468155809727533773190012990489753199489908470360633654768179104188888152087599338716257819738309882357089599357004930425909070690186450366110748389003031585265462651317815369649872677703389635055026601936220478490225649059913152207803283456379364170385426324440462368393345822894047808271258231875836432959257429353549276629678987460642233034283796211292579507290469844772376803015595724755741160727236253114745784911862716541038854363312351735812366015044725659391303197094463829981324724536490518868220711866726044575061713929137498990566284576589052171568797674451319896915594610526807660875640124797788031349443942166275795283384053614689064479062111128833476370535503028952050293183971481985490888811304613610043357761893673091184510096271511953200235454486924536140938172949856117941316023106743112178545940148860537220882736878017825945668524903153103711254510301272842727114824122208560222381918168481538794217959847490760780819471799313273628607866957942963935912184044238546940532616656405071654552774695762465697639393136438012131385140723669965967330366776986001685317365600350808725789460693490857752896078290103263623627540260772355253289781129636078357955244325870462728344600774929678824911116265800942967118507367999720807432253809930561073480576642685219469073318609739721931095248190141705589213436788745738740903745509083598681249508740938655725858344991019115524841310816942779372832420862460074593830248327672075824729334533369247895447350110232928717385439473531426747342639097557705313964377099226778677708642251765536764330776118077855784476345946864085385842196731861047098046211292700802071260484867159327169889142802835311777468059026877908048798899098465047080334545725846316609954218451440929663818339563759684354813511650903544230470733643801220174519788707385370293047208553928742359944473338709969643266303759952440370284709843419443377591113327288170018098506198970657553493621776851590582012100836507396880772092103686799671891455034508299282390990782791142905858189797354904428280170001861810471004579913582998772561906324366759024910109800956445154157028466775409875833338062907548639543249039404169417595305090521367359025900899453675620651078313356973823928333789191893845254620145376648339219860036831954091306793516184853780398025381948446556899395879378601013136613475995069621889019162595463254123670786116409903423722818702371522092358126962514777076802970228923825127144116812692325446808021924199447891139467346339427463908854905565806518668874575957849487761243785762819285924334515899382162658846248026782686934253029826261350895624877020439707230844156440394663380503308310233873699254176627348516760384575533708983676114665691698857437938983581236138696271591528010447679564094644826006572120233201262583037965737198382442444432380966414928111433767361665927307648793518103480685981268633369494118478580724912291838638402056637780712223462817597277117869308743293363376823370201529176906245475332650491345594252912336450334937662316993215535232207819243663826348333939921764525839408004828375310558226347504085454034632491398750799354862959015021039688108058769410963813261752145738062979970380698225103011560859414104796588790061581009482852406997560832416131259999386110786122728971545882079058397502842357562752147426144023743546522128171515046226005162697318054955433831791074307092607303251665684391700527662388294250335463828477072989919560795738425191605613991659341846983147565760327044980766305947837366752505984686936799587167016588603407976198774331911462783007164700944612138764631181148554663466451595758421965296166046449166969987525773174678849375890614879751521720300960150033417682766747568277039332701822887994956232725557501774102908253616030612856215642242014656680344150530877436811998979460766761339293085472335905990921302894983020036509618181970028856410445826148466484620949178369456540923737677625922884889110757156989230869586041219929256618392682653899675014380775071685044554296338451028267729177371732481242957909517870695326360025741572304275662504048015625851265645248540383665681288984855821870545739986227316039093833274247601485754584088198929445685729289728535958999886051251071828761743522438017167167906752478091298177576349674779149712292172437220893303202113872823007739192522587799139825628626154493596615292012490696816722105337548582401342724599120229866627971915502695934326172970747036045358698345364966779706214007088545023974208482880227516067444074742509392417607527228867125131813480068925920924058423309157400139529470759758538180148570784452202484428327516855148342990946636786004901327314521761398763894008411934638493109175162567627835493778877364713152074430475147952418658442424592170211640803210267430292876631979680259400395047686603916068363712111844838720618466844415161081776555162676089497263388989355498260152686016082377385122488601682930126224162914869965921090124515063229751859215013029013272500356509796138601545940453359074899149724192728430023725645387584606245045919321256435104297917258470772928366541785246904022455609318043333433402251947369774826340591551054798972962960767274740360962227439560340648736209803156364844576947076583755163185565447471706737842653097706552001210890864068386393182943997862469861350067846217783242023449156753726635128145550374800815625884701686970765671914360077106983065900494501849471689133628531108221252480841790407437813142735443036904596730232579421167280641645169066441062736241557002305411971223711116343396840050192655544974953357883253630364766749939426794723787114348300684351035801572086976014714064755730562284661645105799726442824674145122594903844515752089431140720499064542263294190428884917621245407326391180608117385100201605121073784676176483000212006462785182689182034665556017500249691343515645949287294147857027326712332710678520344253560559142895319836670468394751308168907270458928485371875397629919334124120981381022543907942219957827317827973491878718103622500600449740895323969839387410677737148172085845291117053028685061690161175004905481084717332521725477252772205985896494837740044694560324533358069784998562537577621730949015237654271991002509969423708749472677515204697798033735963413090168999160106127030319802369817004437087781864585507526000902507198717435742035065981970884651330441332294364047398289273633173312529015845974034355612975987910813585969196226051140502877890578914027659955181811419627802690330199920011122230298816844125547876700632578954210851494546273100241170035376217326903998742659852150399862749841194413273567903775825463048652456062930833477138427626466853795786078626819018102453369166877330243396830432712407177114511641931082332089147842648134744963958592062063386631603993639809510827786167403832317998760505088286307042177824474804423387650152186767157506468353985479938787902658351998818645180612182287987529441749024195535620186022973015254620864861348535585034355373431156832117727426634293120212258097731388198336842600604583752516283766926831613200540198879032909459634956552590740138026247378697324392894302600721588933735931503671199158291972644009553782404129571646040626100511114503792327575078322697322200789202927004870277971783838012685191560860319013925261451406582083231091604093371141087721843206553745224996212259516981667648200418720400162595052831095881143293092308372371646059534501250749741748124483022045327076777009379874855121417291799554730931814357512747909500051340802357305511744894584020670577526263358259765338560803343279651839300432817010497995989998221261526750702351376646608180478842088726774646803311493723974944574257838660978550593572295266095226062621938218122719834979879347062425692715235970317867629947850882191012757861477755767885933985965881755920489885513580614559665106879866038958497716204160531425336183045361052033117367195292813361930357825515619414747598874693560973231092711721695820968691573217590305642449936910932260056959876022305801393592551454080290210326857625407816773398016235557070003286707071287216899864768588410359367818816995203334242145115951689379525532821287167194720826728142966180011800624794559432024322705705110303899936106134233675350003768959110261966627751415389846165790323327938952101068530484984506467095058201165327560151405077331034935671235870436602489663679447804468754691101177233586174582481259582003370759790245704125227436988002449636463259841780796418178036279790408909167396427512948083368063265242382253920746504314674962897235954745121565575425361256431104740029172353310355481692909335459656226974757101212885206550744737566441983353991685581616942794159232831471986336443154241242682927151327140868350109836403743020835858002296697832792599025770140101220355394061939537848652143065785616822786800917222505461298713696246437025331972883075631044524418140883154727751851570909329630238507047513476892363499273975356745202585252142079659598454232983129577861930877703471912918805014939384177728569912257338898132411650364837911062762537188553238464289879945806281849315919876264524084397634457660225214476483948582576927477036870289111681313948370079900902473617266334275321101614531969199559133062025196768004136043028325323814652692304595660691477848741759722545158239184908871426229817561472460972813827122416475706600500985644676125224423786773495476233557765323853984613427840496111868663749950800500361904486759872620623916715364827127744202464879607914980128315737867936387580791285961676035302057082162118738184874295920095668548878861793610820705930910549951811261920054843020811902633426643963335326915145439860990312951383848623535396710055826091448986339610566781261182437174332783756800410847491093401560133806739304098485605933317628701328661281650945083569509571932275115908481478604352715966229881991297309874110923195271185940412898424000307683004408004281221355911554564188363458362352249790587244235032683378989099173830848880554146941899262111928405885612415335898560571162769576294269123683306279676692136847037352843004879018292126556977556997984142189499852059021977498462403148189271354504250809672212771859239354106168515969220295724235734997306653018224115487404635353511756601261374336483025774483028865105737428634758295549596532684055064209771560727099129278436616877780891701304977468589358645239353855825929204680532359101304044310278547886372605120824645255207070958135002426940842018806160956439668997653089262696005470037788081487863701994850998723974012968153158501623744260482720361705383316342158761607745764207340234683191719338881859482604659079042755829199192714583185620458367556124115345196058376045321798816825407768220370828240846268301239290063635957438441981385125072428307802047922843487570676946123454829582497518312030175024809474932269390160892382292337285365900347291766182459623798204826263760896945767132512914975678497911596176122344575827346213840785256914434276605528841957465949715814969879967707096830234342096807872857208208371280671669093454104769596584852605004035929900727482596314331848367202403528987205367991794696952622592842864870819903720225000431902834099384814736766201483877932153685763965988675676430646614581815806879890654873711921515399546849873009934143502117271451965550788510774199131238731348283803089518925471525681233613193924955891797826746926523304514418121572771949074948019936060111069349586126417938312947675667842195959260234008801675094270779858750539600550971058254914472125693315388077274994741558338878626572573927716767402281612126923094690449834649114994539268263645652896843141622975140104690455647411113321328861424144615683370897767885386579633448200437217846119926084202640422824693597996977940986649391153711865878054424530109909392043545439451734366523068254991195975084449170394586315042103123155459511371217221257383650738121387271109077782968447488168161946704818214570055284319488815050913251045203051930880713926001096575317290988208191237329171703733710698591040609464515952114884635029473127486305218058417103431958235852847988812565628747516692655708271516298029766343063649986356587909468458080961229772316840660713667282840127460302018398560775680768284720582467947909717119192814733727700277593317238236805507280870470584457434302987384940938856044158949546345127214207005292752333427690667573308780189331093995220348548484477151742742199204919196994296687740240855652689609739485771346396819848548625273004932041328573885412864004934038078726016823547773912127380441556500785811493008249947200106226636000602563789346029362601787215116131906287359661964643705308046942883890210450976842331913600884734806783393854120562365323134314184897438862584083474213935418328468891379102621559237800829125023422920064088747254429563105194071003842417422908175332515499152999861182862841707150269971126444420441891006597274751151243716986414101541772046020968999746864479234011828423057153163011225527505841675249048412263286762669066159905972123207703059096153578984625571876633531210173452915168587317517063774287751789990628667247628663353283565554323730078497551075328589425903743682573906767236764869632005235701817004656450240213086740332444308198434287078731345826400447759084260337444167502840855155210985187226171542778830095007002812776906453418440914920180507526611749646471534684925884686916427549552057486993368512248994565887815181318857905895203301639708693161938857034351957418897202804087361255634086753011880116986676099121017531445343929857387959362867197320588540124800602698489600032868976549862551146512516509340349346095275131951671653221175593904289596875000797235788384658966066218291077658039258260133509087974945114398115627220326482120619159262088649368495708087743740136678762272769389213682830812624139701728403989783840395761105793985551463118896119640421087526663775485682605381059335648155223779152961966913568459554082908215845307160017225547049398652300789741180850164936559398662645933661641030724422284115424905619735079320837517490896421571416523043852792240054600194158662843540170556593184843444210732181746134763574461236961247755833260147495629172264795213056776759564667810045140063930626113809317383828210018335496191670065722006602251176750550550968370605692061606243324985164100266117402404824521266372593416662615274654215975467176065622224649577899562535986860891822258611138284225669502363181518551536839574980441494117795709556414259219110599780227172731608628817942153257733114571794698112634718400792592794995920240746326063206598764039106725528937330716065332521799826843197825644308889993593441102883630048778940422971841311853461966842491913635342482380254896399434810057158434513788569209003014875677082780008081260059885019617712658363997789168594912410299848576953092526030197686465578746385642878853611696399164165163483460550033433182113289250194022286263177028032779173893993279762114121681190941565324828963354296774490040630867389399471821992285681613460791635078235278034217800976451671487575403054020135093475434596454233084118415799141529319921766462958814234600471321566565767910321533517210739652967167488004556680698844691934363336216205298392484016218667240865652054075217921432072397316730500438144808144486439481696786423855686401187968685319067305979077630294996413993519804852470316892590803547860865521692490150093648923871148416848856534231753799554161786244790071177777154725332422912101487788315785568204625220507804888668911259470914620846549993313774181577319502124584905426752189331275060739499285001523730985972112552455520397746035292240999015315726564524037370084984937256963751236393281252820939384509957534025212302486027298352690334044189369288215058001602306984971529369406036813844079269347930904219548799534644928552062382562302485694639837709793807963447898823829405174791664775782983857828854372619733856064730781713833730183616735799942331977007292548555375817298025038909567436845698635832512832360385903678424886699791316177087838338707726123609378046337211818582904378785274201903938661812399757631109394948305854846432165699671122614708800692838854626692788361511848217787160512119213795458972388975056946763335249638956425317379164688011559633613486053936945367505896841591655097584929271421165378650546718946443434279320738555411776186802921402040367207146832493509104568098702698247573728351003090026757165086576076732251622699694619427497630933540752018410320564016502103798797920608202977741217574855526001778004562464773192026889378430949252038220922943941987514824967290988622487604842007391224158671630899666382424055423793525770803970219529464973046003069376554323521382622423795768490560559838857268103148967835166673029615967215173301271434077985621426900983949650485281809909732074809859510481978516580291185817742371285431178605303068970752121867767060657910328066292559022238944887658786488633044387607877413847827615408348315513223441796465367884353685597408151832480292680957711851839751526483196108667157507961832562492071446250737905634541493237607424441007225776589603578775381651219906402882546685986310909575542557320629068357635006179936968713202713453974167030262212482616788592709260928480588519446368715497722394309923002970739709272265751648239788986512343485538064433432734240188027735155191364775471422671386217180154685959454646009202095990688556712322775784475040819390343888017595281067889793859072993981899936460174224777074905137770659520801513860917554323148172877148106090044548493613627221113851410557084384590783772444040706619819109833111317867099519136813845512966933086145508295996222900368863559449339834047846488761342969490947437012549319075992789202279776497376227945956499781254075715024794139764476633862050464455305890178594831200071230308929077087029319058439627914909584869814210716605720387953797918522229376373929843277492017530490026162047372973832368908689431505123513630278608460005026168162554137349561991796226579507372123513026990510619260338325123808867796777211550913850136491663105091338262107731707272795653635435300583057245884564926014490867038994603166560868985323374966849111591172521380134330959804212962243138954593239046471534145411080413584141196145087730444370168582546789401925863105231364926508790186273877435874445858362963500302150253305082736120130467923426677856411684029706810032226375916063518271279024347543202100596277951277465172519977292041236512567780294239606351444561225627284686424326567385334724279218150066704332895300549270632323406517828721391500271588728534827263822792490106591348410076237816383686012378656345703404942588235514440889065901781140905425102488088286721674439505462161128884801400468344027101881467538630270799278091761318117687529710789148600701812818034874909610222959125375280780287621839386135839503336325896182718789282669841949379807493005227370931011947082875576907036403392718809143562110026614488441950893250615607851140219539808578906869507765916425738576652668272358275573592728185545373894307687616748151357842925903629433199931609567214335747400352315388584342735699458212083213422763865482834293703517302692186443779297713586258443686119568482625686272715382074193125906862826227844627746887158182315708627447852447589702796339503601504531405840326138184896657117544896353048387456386236378146477334567965851332922390043096452883825648901294131121968214254901282777438757647715767410906107971340660763159646068199730037100993635339768918189937352592307520637384158823463914219072617873170834284971431758746568449355693605042252979004353321453041981380516769066116150596944741472548304528127328077091024063855460665584170484436339263532576146850462483244499528438045247064054883173897420992086184542271537187714498696437409656783676480898016536902854798064293121923056520821538029363961654060427299683152247515019140948599262371716784078889405044884090433680354673861686941204035899177363047128055501043168228530180983497199482835472235987997144354851658483620750158508260333524278076463036809196617197698360892861247624438492121852546444614491777559444063851374734209600795409680979590388128483328530785620634688958879445827838448977228359962169863856384323566674759626475400405975897354595994313861780577780262185278700868397251437770216389491061369615010800630592155887289309702984523918472447843038792432195701683295996006338376733941060052235830126421469743605359269043217296581150197660602272719925024490573217547964648540267413088736076389614274936233490725278643410452462897589927857030777050317834370895560031036700487787753575734241952970829783618319665177705249705304040710277562811094521553176073757960783943398338720321538050152966870186844169733443729151544042570511765935314318047586765535397178295523833680447695749397781897436635495761839135403483654011985968494927266028513234776431034400172555581601852635394047702249456105293696366517899813640333636960691957823884527413183898741260773753178373453106365192674890080352116564862458474087652903962145199617608818935441962465263255845178525398929757742742612304553992399570617656972276966974831843336453719132847045716710557297390011652689608535903265453552939709718142660984279248406904627006423155930494134927155675076679171412892112722361272740188923586088159674466485030010515408634085402252654105640307311571749858724559337624829118682118576032631032121604345719666559843332651895613082565022608463179560840194358369799486513806945200361223096248604141057308570792912911509809320740192896740185983088399439768468819231896889822991651323050017224907833446356673490260496324877767526507148303059442203260387556992417025860246854285961655167918806166674769200254889316021589015745729753879093098169983551146792324404379851513526129747375657994901689649924428629447407362380219928792035936649065692096967880474344793739115507598392777909217980957348191086209434807490235160913935373190163890434968977377113222951339914210265475917409043943851447632314630208667920880366937572690125425715888060966305532054698239889269766999020090125780229022558232436913779630193377739465722553413922959716581430435381293034143473399652177345944159311061094811394055853588006526509818672068161707317789730260842235714550252933881324037806769247891019086289941452923852164233531128883027214356436556395266078915184316067413625455539222941584611220257581966091538731301352261959083923968694940624880086353709077410403705160731131675716243928947364455424192228598155359412487991225288267681349506995807785621648764781011139704197757757706573852059704526655856019164532027531555348755301431304570216076112144411362127921020470654289152736266908741700126564678389612396714412734508139216204563714465220029133281701775202799873638085082755749357652228849572086188915948910579740924164353620009793281314811826008711032723997561569002061056667055049392458987827521318327343068323845683093909082627716119194837949910680498572311826157517071041245586181431431426557145753028591263674858157816088465785751075666873941388326407062165792193640812268903499059775772076576132407016447777309245497591707737016993464923739862112644727047717401194666087427169083494546862474114666704301706243517932776199016335336416092886663154410386584560360953070002255226331728691210822942064403629893853749522462028875334888959192698599720169393143503828965664032378714254286195850625754935449212845081922814800641495216976349793113586489344797553857824204190843146905063052044062064673633140225461229292221967570769490471006819437708067177222477225214923828501087911955316671568175614484605059361657975706954435620152690983436399806340436788307368887780975802951822232382057308027190691257245778711020836415877634594057405777940792819040501969970061337195187468091499971483648124807369506865935434787260795053196349536093090414180634796129325180742901724606820495551330513116560306892239743641949616552843590214418637744879903591382061647045193296560249727392968905149363865108670949024174980768270971322119706828682718403824897382414516859180528125186856311658509077538849627575119566283405313775104594286996127904320111920518306069242210883561508110793630801354698169957763823100559856010600432383545522563251951755460983347419505509278779144205459620688121781757561663390615608595491278506415484828881131853463978343672162515311716676228970169418478626602643656955364112707461206920881490341544634986811555314125140306651223245749287949779707725508669900866603908193385193966735762173145501146890092452968360173431340274008605245428454944172814736815684316217164874691430765694337231414263404031528217829421716686933599119146569611789179886493108170586954216857952111971105472208544672324589843557657001487999652982984627414962169758150316188321879763483250440737743559537748467105202325033345286377791812786571170992689954443710618720061414158618439837320621126550557845461466159724857217506811366694825656560720571073664150056347776438942703745158102396677196732637024362801173307074569043463323081535334548638214298770821604541084200779271703899500276621391022477710323866054814520405946582077168553934615630033599689633731561922685883229040927449801489640156567177136231750180071957350709986904400580469656363034662692258539501112626779747648712143390437249314505497979931064124458467101916961686522148087486324689847522703916795902216147191099481269783675759319417862187089468015902090238218388338508445160194892540162823753751918481927136151364087933857090917148784468545101648690375272847717624129724090586187393683483493930916830973337351302944295275165646788238279459478923615169166037283263185659313854085982096972806955368607955650175642068017255716749122839089971507149749320095128974427096648383807550391481828734952475561255917066169194155408635428368165324938305911974239389700621434971664515524381140704865616376649261842487493841627691079424577391750503283488471761412192822857237453419527223674834309351678551688061098579246731683219283354631996563498994338521209237345169005288426690127773703243775269013155037160815927860749188485287331178351050158680026554897317323741771268107074684039648599118720901771715579710181866293080439417849093004346253491078516488010530564760116174904235412023825907445144950228000341791157635388365008826538741097029976094493524400523223627129045527653711114191405216693202551204883634840820704896518153821377198197828991591577040513228959505833824063766782267295240158460445730103210558039469641731290980766836997439992799466558961547787220372076323844015007447647267718999157452190391480937510456249681587746715080523246468252469907602076530463361143135090681157836242136628810220231894216794705809090318920431857385133553175054015319635802495417840730091388319848289192460298026541474554320457543080997718598442554592988399206468647781640222007137963604632374584971252908902234514961243690082864960553428711534519585229090678826667251132373897495908116683414107360323230763438754503316799574335748159806987037325409107295806437174331069191756595536436481508813074672085635422089319725904291179051325391204130240735396299128664435813767891664502069853296572086718154408971604373432702024480133296441502695371189538622083844412748525762896980197233393459554716169473204527235726435023031210278344299091603553324800809502290081384292910366428875988487825473841810978209272672329514157480172584266030053969983564411835796819499122122473099085460540702321577147265876987441636894161798678548095947018823630768826239603870815921363711403117987888590937400667043968463274510618079572415277378161581148513179563182524891082391407939337203548597201495631858125460104584812640268165791952055361185925620981599794852525078669062566070653975056666735298491576796136795315834548835867450545378551098246823461579257303246388301378982631167329255579130017852627152385254097949334775226827157218363386373147489483590258792166412638645799630968882412158872961603561624159802055734656449871206619356055566870221192542050590909888699690039998694753830837026825420701185423334741702764696769809749924158291442913785737894597586255221404311717104070706857419025586647383616364205567101040889887353466441211758326242092213063811947928288716892026882999186008405927179220857798957266257458932803446964132028117632179045169607514770492930861847000935769850100257296294246535155312975794515216013259318135008540310093985180451562102001274579434889900281073720501986888825192160182516652201638660496147632730228808489298342374072803513859701511360902726170535990150305435526942624652829383919389995097696690972665805158533854500298658345855860773778374240364874392546433544574978905941435209687221605970605569409102434675940435424785702944378233463957483346641862236901010231956508050761640051536741382811071872209302492346516941281640108434802780265072487648966078406141548345506531205328419951681467632017502550411407831481856915981341604518745214540990916057613723704845562775888420571141628419125770310977196532849804252150099883663639855247272032044074817344796687837328263527765507257089321971691887934100351680871037709389558885314788036178992007876721632041612083252927859270301348315645505045764597037511092783682387716736690328714500110272457658236506319265094229021072900511673841131640017014974085483051708527744653329830718037118746246968346371499441359911957905998091944474981696652480864287384336391633967021857433552333854062316738604132108535163989587505763377167151923400818791558924743997447409768317178277343209552785330384569704395848539777834745701122131077745599975601907162785213509726833330521130425067983783419812478860754791255639465580309961301345405449811118874562991140977969103332388372474450585512360869927558250095699821041336052737864776175905704681742559539760938951993912677422907816823341936932468854506569820659107236141790326484254388619179354621474182438101950344295652970461952811923752716278331176762617716818795310283894100231992323590387101006066343203647380521143612396048012603846482536218254533510156585979241797692562826861552151450901288378379131205524934162659707500906037973517943774682730958870510770921754928431465372231900131071210804945598849776709228364674467611996968490667148555927055297311588152343429612470374419815806137364642983291552663280085664042938492566325501404923437125025877483242354619364935688342079097362107373908449052909668462928389750448545455347644081586184706095822010173877672317144203776069777071205906156133498361647605096551111185008737137646893337925565339488708518589226457891895459439045746033596525839811292984227440597294460974319513371417824829749753860038889243525236803383811805249338073478679250713845121396970946629571520578592681785691800742346291840956674874383803250718866693944406474965368728716150800099750298753256441544309931426476500983150448655277507322482093096049160896052799340007211038277975346419234534055574982709809419181128747498601972299912742046183137698706316849931952822015044890005632091353891204287808634417466951574976624444759701097177278948386492267909920626052754856783677497307781082101595415674893015508674943426250531588602956161291032662654204646651997511028577830321221184205233831967289027719683123619418102419785343737468084128385069332905279160517007173092230138800340480272938076206395792019103076184962239993867832733205524972423413183350589719704628144580335563029732004569965437445712251221108810893002944963678308098158342794147110617004172523189597167089793625935587574938612660972638708599214383635567274198759051128506048420951908335743646471320397704466186173678655075492461971938955368382911613894346489428729174569649079013675921570705634047343754907638062561833788309356855330335265332123040789523391510262358556678112930059255357239395233774331204653066307939227331344005354128511118250603104011159459305501647502596371792038035115219827234390111944232283166466527241688244026495838023450591253200181024044818047358422963534353367586964321754300966161437097740681995999518105060745158576911901181731059780495782290827552199300918712265773990399894384958702774774480386240089337807481628033208595374121972270936914342255535625325640908077396921974357604246402154318372708948180691536617873098936691387450737096913444301573168075294526505142356679058060012470004472412649118280926147405694224416671355737960066615301634982795392455958425140166529675502725658652381075985730465709005470205378478811212695591713749903691621508370362871913879052626537540910510988140539586172651617018361416325003850505586549652213451323457719271089635235236320851869873502211691600109694951996949648350067255117789925940023126930114324886247279984410765243501481628921962085747946738382323997567764603619294426296085862258204131427042140487021143257875505744827545669244979473569959472978534194917002722059223915618249537402054375969506425826103224270168918500953592777385822579079715400915912613478706475651481790919197856646739447464728845082935420185398749858713617782905147497699588615078384449007588393541500383010674186524668118125217003461394858563369094618471964387133372773534011123948183612401986839532800411775275662709094337418674309783984685447976383514735852196359812652426260145663401247563069202505978753885660353599874061598591210025953838593177599120172319552415596525820207071213413322433808447526532893144391560244848189387828972394204319239719152477925853154644119289396202222324565162480196187755635870771142072446423826837691983043202374217186382654021153497870878938855190980373198449692006649274259852324476392303031192077100710060252881670659670585423998503995944505536162945893002068355981230717574893670659019969050432691622242076550535333683408698777424669587671279673142285824524342916461902816674585313777394442922142848530483197739577861325093824929295547068010215742011474763709382817990211558855133670677715943221564017548235637486419190661902436676745838274806604830836477445451753541815284895844861619737478896425946503384518613305947241957453564221837320298022174744668201154700168389163673907034614820966793981570560947047229215640864275808001228542804182944329472677517795985988392157672025626985220306192864310691895370626601875748785187856008497780590182031472122853968041486408051088711993209907530105531790290353234954984084975083036217330399129676756343905715379776002648035410105938147778249612452640286474500245906042062647172773321571855755068473207041131763614820295953811184868255312452986691747323726298190202154118057621782329523205964873162327371694776508578439970785141631167126229645117490388563058210778359733301862253689308944409308215881958394583743410057611411489586179475221076401471515505276047033329102697513490764439065958196813088691114781819024339282443504620288087803682020549682249067430987697472879569503000210725569051398676172591017383454720247649627804380611564575277238085884979430441159293083287829665220728944529389860398107153734433645602948271549915629642470247307087963558729422589577488925707501530426493269834390702614271488141509766918778146347835133091430755935542515553629446536072066116890593573787147515331675051621513120506880884710346141807874922994021187767253521047813623835949594937656173471364170296054431879336234061411138499051676721844557862419995379453354809833899763423675338606348163162171596528356606436029257329382119830715636547634408532068304274394726897358867244424142818925475034869748028642788917194298231154046136628991468637242079603334888482654668311363483934943023999221499681573204342931505812316065247656822961159257157750571034451815222198980883403260648152000133572674526979910429652883011901535902471111169812172529003741663096108173713452227204631641530779460269688830425776815690409691636229532661185890526235063766861236927289569034722925749474614378610211926437974917620003937122479980984635762749685177994105580343162370368532323797470854786771489045739656197839075608522837337828009627426188412765932889414846100089905657217168684334641054122394763326277542358227243147235993573985356801064488819045896356031302815888064488189557214244264468407288460964247225770022773164627198027469831756067518372751187289955116736942255353522849405623556926317721924982161232476214193037192530593597782915197440754068595062588271841921173949664258931801339440165782649067651870026190488903984831710263069978864971972675491544550514045350334349894872186145321794188084396256897389307248949332595592603996968841815567126837848468637708851876936508927119403123460621578059446013676474206496454665838336153050592268576804526299496613062393518465750417045741077454470098087605086262697502309703882476335177404299648855499560530543097891255994644026959430222949144351080226615010325880558331953875203830617416182208544058541205938421529243971315814186009809946034302427708270034558548788005790726934811630063596801710049470531268986670433639871927649102502627533610212188777895278812957416622240219314822708653124460484688499387935024718273999241712616695566894242489026912718405719779903282469897136877780522101575785612685574965324266049562773420561438442335778061327889410706405584393861098235357984719996946142431356765357327226476783894296466823636332117893797188944694463026838224730794147043024055190466259985043726619062074569696516341747628961334900776842474528520844451561426339521237320537597585936881365991858409691362979973209928872973476740685631993134881645725294870892782402392450667710529024246543033225140595367702439637433017275168695646726984186777127842689816997412798132784218743038103625331530384186805944384357183584143751308497019556799049439110198522120057584142418733416468246397090472854948876278534321931276727857087564154004309948330348028789088225721748024864688204612625652535659413514445972695179769005705203951399350978116727234967403516441581843039127201255308483097567080555823378373767475949852007272655713654639341782134175381053007650309371292987070196971570700481895359857805008461280133739227357216791455667667986348080254018587203571755620382378101524551321657330986354484455320944612875951294943512225540342014306230655166275352255584419679292014192271751156401012960713301495291238832379577945870924322067405084367869734474855442728925260267948424978173756652836751445869119064131617626583050065345480716244279200353461435879092134747453449161339218389554516431997872648522425382444723192897047043439801897209238737555528130656015042263884622779887722898638827762161846324208523477297824934688536502034465344607695671133763921430227123340969778780238298116807881855607279457536920040806963160779508085588695775703479452644551147776545465268415427543305515653655990234177260026588539280806684463228859812225453856372837436577865090825954047084512296756341067924540100378268088644710733966148010199711835269371495226386377863464838840469562933508461703132254044773150077629648567840685346326540352338612556189823209515988998892365159802736105583978436915069918626334954701610960587768483011900208914160177740711215772587894409914550580135264835624292854305804530358676881423535640565651382932813047062064545271881077075434630459315830847025168048298056486096497522084469766250214605416209177721712086482144731523345880337421969770600240840494549920351868873389582653555804007746363639319931571506089742423621210484027612231357344417200346012512679249432137145575671472953268844770095349334941379874158787763777899498183464537793779299988231039843387134993917582014006772750411294740945864552009858886100414753945026326380033096717836890443184568852305709300302123707768678981885164691476403685740442473556029978691961535613243942377242988390901930696668369652076878803720578094871445376290076257672043552180572682564410661778482075689740029613342854691160182495612643484339248003361968994545427574086106711487924275651053579764738463567715522962647102560228988223225617851329537498949603784247115666830092539023052377957089306769880775053433505485599923061336386980917168969744410707057406791368089203026042089927996920033774682217904519640981328919706746874424349427766164533506069381804519792319103388248060598210686467042582436850196491729482215064785235412567712860733870848450167695849184273785645503461039448918380309880937758293939319198410050642840688556582281296470070104549909354904367929898195891786694924677965125021530171158445266058325953679274154202468803072965021255967288670232060049209266722330387982026583584258339785970480250542256054268524249772296066537072727839704367939755294962493080376269710743464272322860929551277152879340711774383597937499017848162977458043587443722443143694394550497842085306651123849292447730053646787152197583322698789610905288202805412847324003758561559491804610860756996082728621083176413326610481171429765728448488567117441233065527425316564812416259539779108751378087545723493192174487688626479942917094470782826760512143841286649111918956338310173635798474826233689436024778119493364997363009740630519252848635892601220937947114196065706055536591491496852195867276128957579955099550325986585080389294584010694867380551946553411202011538986382920482328344908075856176024393225016352976736044321479056690761156586638897816534508023721037205403214569083018954502959818538196731257814843474899614769300822767321640326553848752970686947943588410138972117455092115063205078788865367283882124161260003958817090463710386943913450297785031498679742368260668718239569110787332276770116632167741598405522824011719125909038201476006433712149783263308038202779833967138050716716037946188689744392081261481282839259160679631433794999852752259958677520777899997672516725908681743675961179504863022619947092988064776695057500442473609118475904357222510513170595408191162291658753293536267750472554353536123543667568743845102103746216094347580808523124215384746009343958401524005534701771925420689426557755822991102204918119833075451742395828515176568320942253921146364070592823550306065306149985398369613238659500594494716657567270532821820587472685157942924714917330127964009109744573729794087699172863168372438567872112629001071280005480682552731498131631020909013174765392685192036529810298606093343216380091329028414479592650572102484498229724996007103929337234566176351896463919093494880297148714806454328206539091817339719132787613837337909933404346753400413119086904573958923313680519029239385455539489193495587863438979978947843856880924628505674607251126097228563788448177683393892421366927650695314540536081958288866805080502516435008729820675015861131693095800389657084816816667784153237181358341898467053346826240759842862852057583261711628941211497702058009574861324109058999367177610981505876262219078665426824033298033878548955962141292635512426293035963643777209841546437717885438526718928913582710721013821149326774258162134545534846011208985201286097337997532369225529095599284064607397570008140817918568800598646300423259010573230584550887961023955865280229032673869223621854361448538220053045911704746613177785839885772595854985505014929372806321365313823436907986685508236252941599508763090699955872064572383954734302371125382747984149399905486879401259162617180835257646075299498408832420794069189359866951258700984386221854632080027350074557622448421596792066979111431969738206947470512910599669462766399810778535534267427048214325714883946300351463898732615929182784973478209431676764931731354737718292891910112796173517075062052154077233951728350030694870893129783050624828471141320795528254128452512141155370183063582707376849486120362432839417025697679441438193006361347526649096352221574799857152849584599036188246345545007001073178342656913653469480323102208778852095681694286088635805288603688035457001630760232487738727003983035553373245554128023293389300715375566509982599723409626594621362204745053852127167822758664099341558759646719237669800785290626363540122785910748295814731389721040898008817283906814717383458392420994863319648922771503821797292630107118097685736030035557661369036051512992567951944451137630062723019518995748596944545292337585757607937852471972398405923415632056620381496319539596239775151380834093173165534928024016359278665699149462243623645244534191962589806135793515115825889371844250332091956471157567727357929365701243289731456845179878920485864511410914069349448417523326184126851271966165935782953150774653513663364795934280706708385801424644113619953738421124988809621002894684523886483297622292215736623747355711332344061874280744829265652410283415192512857680280538776496249606410963238415705794086999254489766322773763277052526695376753501208447026080423927289189256460025926323451510118955105927305415920563480509576572063650361468558406610685562674795966335289679934311318654570286270469329655396667226430857003025871972985022003017319542937881048423082487776504219924278273112151334143457667435569426147797196957585664395159364943720051617072627230674044981076321643218741612314727574120932357749560458738405366790797040357119820285145734803099168891949858629516870373976949115727613452436197447098756945288045047120211498587769483948029392116354232839375591683440814417559679642450864698172087746514278873091432948307159184598397331018972179196913668403054741612374915582854265922914450919403905457187855987942348188414476807942622691755302950075358762122516190325907798572163784758591948104628948589503428244586718770269616771130233851801948701503854598152138464199357608812057528157709167705180098226851722924183687281684917684269953729999124236678560362941132408254595482498714066652432580248830007954371692011181395958292991214261362905026218251810358751296594318729120954608434273514622567695432536798322143552262715990869696082220651953990942032721375957661574710347934834785730315944723586672101282318030633597614724664990162422468899752095796464544674271114527795915346825833278180797917180050948411506055658374795051218747288055622693027024450264958934790853421500846287515294345098808556985909430355671526868258107220393170124815497932638642245318874832340513521137432275890705646315247538020066294989795807885609443949858438365959719678199372302172653301898048054249934119855713283358705328871788845245021802699274355917385181161855614695616779235438167073163434020717128151560191650944860289003267780763616471968138513803307817772849490839703520298405801360268902596244371256555558139094714020972652005201890833672639706284365421113308817898919207718646081545821147713892211338652883007596065032889788825504458920415323779903235054163398634030172229396870653315268055170237774556843442109923905233654244458774966411099191276669256171544437437250084786900656445295949541885233783172993457189046129208908077561840076334920406453789967656475555269851268167347596399596877025524986763364235979705780645192959544700278167587074131344626445888315520390135005788242237827399502171278752173624521099644515245186458888735802486334960961421277262837098631339814476428262778713486526578303042825238895355246999193377075715219518021848868217393911967719292523163356986869197832588136357760815138255682640817191953516673171615908543535769857810243716110126088419393302055132277035283570815768821907429157007572234592856316272525843479029941028943114615728306338284914446931431204052714172325015080267023686774155134711721303352309656451864359927683414343071111286880617734022029280144966059228112798607193063395257102658450763342744617557941256392880827871134027816486596124099562916514368521982593167094732332889154146184696771753391787933420917961098428746410202801406857647449192468539274994797106593574617726907755004843383326395099550321011465318328893796702149832274815855350408655563768360045330040242599393106647008616237801132643562129189315728193637758961747708117926902500452868704098373173727735692481218440282136650492619592678801622595434525686792550260357030474472785574561665818329243295532162570094541795936393612840532373956891961662048158129661686805465121089615315789933574886741608683243481629368726178865873958657606737601901413856743155817809061166808709710612711283763009947239861075186043193040303584563134361502271737477658628668290371249574134850544420693052723951509938315679393485948099110089264598592176475742605321844726988187500416375883995149730094829402649128138836050141433343663486721832024759326276981043970187527865817735686281802401790040123587432296491994421002846074761888855639569069597895733140893084997781466276045613740068054790044974432946215497780425872222950655889002439930194268550957766339291635237152602638348014006954770388532235505610325964444680849875333183731810067087252343426130726839003869464364140400142971789189974900966437812302942808585258424565867830820465020991730837567300467860643583177910193009459562287330263046310632849205913348404838872562696638148419200073867351604506403454053759966346234797574615567182194925081203607075114962901951497304120092298594642070474383118218646152891753762525460959833279321020563736575755887519659894399307202567946999905815988929075303562128019142285901962265129618803838857897921621655399334670789572612747393519708163934404521080325174895926212246477105862497467129312355749464770958677041357098639305027756722045687986752973925180864294446900042289318894633178013769803611384336151476529376033419489735923323899499066391435628137288892522546104545090263413283459941758375195667604933791650074154790057785581516827122090087351888172840032683493041635084058705169300732109561624765489322973589461457661198805402712520713830980246005475844665849276299119564143363632562414799564398096187916974091896809281409670365905096164561449596400456077239991851573884858165332577851489931914935180533310061877412010692015475115436999858606297911238629702287692388854982988279149283994110478871721043873686256883709278431432488179411494536395285084687339002684154889461242038561075445345642452233987761012504369457138854110178793603168172804748871003391982742899999393156843679196398905866330502727137778944520966861560289243473767999714709393961991504876416781971534878196983664888034577837448186237836486663812212676800927529034633445482073753748899281718042101404777972510389733718960223211717493118919322011003339819205969073829672709923181977606552474927143245652223171702613904890593044195018884052413923928660498361526218619303427619038513202356990077843790537489738480514532362992540856302916627619463410774207345165649910943951988912422415069768150642295283025922489748102029066430041264800557782064975384831157243004569181542857676963440874007750254387751931274800881575783573255367661496880134104147073330952544113778342330424160521898428917844048173142203566748011040045359210056542665609363553591669656343291424907764387665895078620943276286336656437479440108882197812140977646961646286423298602634951156793652692020000156321814148574730721198130079498959606024543374152639234549501131881042202873736198473670238271069773809685354522575948723191673334339920987250565154212105913613173370598670675443668215897186966712087084884252342739357562237925860296087059734959879799750067895062480076972796208910287716534473730280225732047485610137309947085376766083066317491929897978600433746829322150553190292042775823274532791571020962308119176721491731131221983513865248210080018431401753680092959011725877333051917140169824426613196145674029517248849085696266684996242807876578680139894253122027350147100237483357300264892579066678545086833175784317798994239086631711669558296776810741583734302637555676656818372097990862930971434778526890941568874183887472873538631858587483535989610718645892088928005900934231656745545812393711550605827308771076561833053230379017279008427181230069116743709797250284617740120922006062213861380045897335174589867261213657733042954814521620497120849255287311016591743250859373766387685017573547257749125997223066521243040718164810510022814732781898347236689392739273356662962585757637489421568052302145661444903064687409427015008126100744237173200763212781152121015799140745293061571430350459943451154923088044968430337565383420233918999974086748900605780069231409613375009153691213351324469699407801928753037658931596064194424673727617553209252551627515632746569736604658247843265807729275254855534010786812197412600079702158639041316689991694615810831723104595765689298964046295511849858362082490626496541142972125668733016295071774653789965996709929857105387049983158246801878114331200172225746858139742769051624520473080341016866884066317794183740892800013179158763133643955850589400349097676441201612978641934172602864534832794027261408938771320596832727415917365437939752785264839411146615459438327904652884707913972011169487975865778615799872274421872107402351245604736344864753652562403888482388501600304533499786171056631133501480661519888558597585986008439418513682410813350460355553136352625810377064821769176508205616432020190269899236305051755546865869064717687386788712556120405254734129364042054816650199920992694463293189645436291810578269688953629446422746032473643282388509304780572605579854152176747570000897965055721108254462591684696034104669564102563177014074068198628457903869851463566356435490037885546848528790342227706470017171620666638906805287499544733336011117071751070283986911984861320357785014710926648137354116858067996433603587000634112801033868398544684979390770400486138771646248014624878443309786187256456163003148037221220754298817225880694628996401304219931002803243128119377551923777621796252975970687083516844882261120676833872920683178646119071525281025170550636157522004414804265951178735291986477672420703027368908242654410351564418586858474910333272386244357063044605772347461501383878472781072850640778840787563823005165511969375690841684470688046150525854884776373929480138884374944937301571494152224477282323600281345792376266105227014767084929720335125306024759780766583352825579513399137733639060627623518620401010269787205499307900156774756590653067764323850378413498537507700253425319081183828628345653584483715329588290331599509679312723688968935260864783365968797220219390906941506939633340279854740129947471926831776394610148032222131779258689104474392221756056963318732730790929905912397110107827542288820136280562232851631750682566842370962755616277264244789640488793546220169099454729506166373346408676293539789367207121337905191102068051720495243508044799198372043174973211762037919489469633755930502648108316347709067294894236885217651566473257503211010751786722290110570509390243943966430478057874623244826456634589500351031612634315039392336154919104012296613853254474365451975159019465772612502738176272532768246379588276196018682640113128408017315370137927856452160959158064545085052049846663098254778072425045319332321512603662487149267273162534785772177668001158566887085876964743507547620950385484480064985391243862763123784722553980532080151937961081099417836583128449704172785852616307022542382713477072539885832190775444215802615269505055783050621301924878936347134018535859887075429808289848948422724261136117702027405660899187379147024858817950740495215082748747583626946233625495152867098450659236937656458998496531780934233229185103958268164162952911142020676845480385375036407134094428933091265169610654857855213682519029186036274612426010987286933723262535964229354755651632545193710359826762454597561668893085144997189928761529156425952976134175664931964640607938648092890643900471700893484804773041377113340334092699955797456886493281499567145313285037185109694930730166128298751843204690464388451378620039998424132638536307146267022703207720437854306893967286948483054340077001131963622518588491593915230589612778349013439746499313460744897487347898923697736396969603626026307710074862238019196278453030435072371100464899599207008132409602150178043314025933002899104487509383139883570074910976564304187679801348200889001011290222843142447285800251459080684442752551379985924080593360459203995236520841855163353190611557018601283893638219564513802288163123795041721284340686227987117352860528930762893527110449144680267354623075841761882053834033697304764917163632104741352462778863895964392718844610023963498990132692156199368582633734474019784632289071152455483768125928810460693698849450996575996018485702024087318599564090056824069946418056383593206045713173203233025418807470084114864175696317064760891854478536428392028987327518690866476113595047120034529566048797488474562737516616293813955112931337489278930521563212752753141013762230563222122691007588083608723855113902017465327348300451265042805830714200046307556422030220628528063739942563443712764104548046677283679181488835933578758202455539837639799565197394382668929180377136204501811872965013925013746699973971977020521702184718216331195696275628126474911316027021866980947957230094726568533885538259325884599589060613265400608169291394108532780417528155282995642448988355018372845480597870064581596193852882049215645787886230088414149593738691638443279803747730476374233817021560236121976800689704709749392960701980802943024494274266113477323698317903822214667143903870220269187797798571521344476546216666291739013064094158441529601700472651343571619294852257701743126965412514075907277704853346437303155526741125285726606650074773259621384642118667702056771647237578240989373393806960408821498637133515069763012286137734013126976345021667477824695215889017757011987831359238519326571480022594758975445725398917779719731351121134157249676787525105969294538991277924092734362227031865202594457667359890475927264328814370805317993353431922659677802178576210197620345662435104065888232264467007428466309833925053931784636284858255994188816354721929923142489405212958554857094173135138569505384943226973667881910572012500781787008824171677080185373768355057032444164792264146158316235312612513760054961550559093728917760018197842498147698548014790578632321327058380235739831577011222327157385989400617925551494656983003455398703823327529074765419180955443372882476277078374542968720315004401738625390463267957312206895680859094965930335699191723566485125066314485722745391604580999297024084974132511173316882345182115081528349205638652161492396354521250376293152434418658786514550764322575767611220488233712723170395337263117984244791589892030887333351785338436282252113862393582683704006887358562917720506514191246291581604097923848596741923128442760587827523783840165273615755415265809804454049260011338208267356409202304252419476798184757487204190991603390210215795185877005842952446355766327713498744094345866466096756950455860442024187632345045875295411263582925749054734757439601231823907603047652517855447747703019889646991585418407762304416828722179582345518044208930978971888866202738694017320390640473496272585452555723454875444325519724654362560580385269304591593453810463505758320555020306315781089584517666216523671758819801636951985351861282119259767537363798169773657927222978898575745612539932893475264244039989280420835372748830035698396753201444329684259565814218699736100312103057815826133963135016334058557810991549927070254552873739644022717448899766138242958191899963264710650569131193000321174191165172545228242744394646428556811464525245394869541414189034402752342738565733990299478695116371666784539616481122924493787888187039451656497911832661672354735657376396217967552195753982446963884998397630615748200745642249756125805856327231388760699842597712903833020784967742578067213671600335266471933964913990701575422992274655953305679635290512948409198906652238182820144110182975690859672542929804083119966197385195136134590035119804462063630327787099042106142939668068917335268451540538525287991884715861747573897414148727783665808270614234981591419008450258864479310914275789288380826561181198663737541798095744469881600624980660971636490799790725568341944426292072843124820082786815884539229596977830742081149755243607336170008224075484491301245359423338813931762445960675997407815940110003096230467145741628953157728951170191607907593941797984392288363044375795801707750912137978768629498721535655412381200378310679530313724251960214490045461520732698894385819079695403068933950851871512415226961096963652794791330442798397077869796917984246214899537239932776280188700536922647440284222494191938950894245787167001355345857066504451829789722742209925479583930275944082410507453642683356751429038555847552868763033296887334895683108987231770778501992529133502674490730109363453331267250449192158505091658253316977902560810485187375862298106172693099408565470413150200193092350683705211967304578486060868963253756314106699161434132685856844813498830126180053372995489413816149409120721550944364785282920865771752682639801599736077724075419117344934329090357305985023620261738830676943284301266426502400194117127488618018817801466884812523005024459335969277363436817157173585989088188693272794771556916545369165667399686581588961155676211413995822472654575200053119720529085737599954604367262016799411371766546122078439544758873688689743479160255802000895355118763348978477095546074231768541237964544182302640578376586740540639646996943325819027878560505752687176407415094653107641588668372991260746141692942777075792514278383388728853190110399058302666353189238315539680836048036391234300866015870699383102913845743991600965913295863322292831974061898499303751641024271346327730843643760246488442037049723116533394087294696902730215580581716547676917339927031195054412019083528872145268418717104586765504434777774723805329522250868125289706743644973271389241536870361594289625925140475707244156761651349452132017518605360852519448863775915228388752598176852282832339672861351283067051020935760799436481719611657058032751229111155629889812708823523439598729211458420657502319018172791342451960640791098993611955429702693152132441628647140922946159809166932185655399671108396237468605017076959014513138495345739997167740008489667047219381381029367567572361884792842862113689961224358525404675042211469479163849027072023208416990025084569811837194828576997966382872172818429998611753107610449269041523565926903852556208010469325688738094139029671100888790284654972456776263882941173080855249816624273441921882939463282598677874903581650613037255230019715566514354960664547782171986036733231105604396835149877711540820669668083519191242272726848646270269766340170344729879363959071507565147834459920013205772913783274471161350908773672336920313834166585630890687542830747900092206563320729385026780143149817240109686246798300796448923141391952858915566080115404028665372539058095277742814955208875055634577874953982258206568881754685651061017356075438089004571576066966243521324453368664862143178171739164682611309387577238447763398632863448558108378135346937087511781630257249409575617948633557910850860455996740101093661665610811312147829606973813501823749950609922167121764650939915167235161214903968960044387107319266873899270700064278526344465277886844886983827695981500403563173378097781007519599654725064418757679892486969180271193717072228530991143886336930617647256529205924621072119798433901030696372932970715881329928274829676361117207175031529799704884816243484314862896081542816311785645598753720455651214005662543800006873012468245031401345172819450418140299431160331119765566395050288588478683526740090340584981930515366338872743905421879054670527422693227172971751820280534917101795782650748274152823157524365528982381868330623170150532837946505814340539536575831099446556559588336523344963541190303110262273374466283666904605024686494245291039047875169262121329300514383166048725035821270533692535922515756788999160028301061076197040398666868887829172395073502566649788113609082116450443638716760731910479629952787310714864678626274922147244540474982908023562512373813569301842996441018158165226279830679659901917181622774267106360011069498352990540502476970859936409360853338322262686536638830828682125842141742981855946851050677983431098373599709544517385058772251491813683311616070022463679788757138622073824241092992126848790685919250091063423894641913562820736429094826395720352472067384882255891246925294427900158403734823948879308505176918306586560904484619800977478431448787837696853620599794233093868602618575417916654766149377362072965396732030295061563257078782818034851877282498081041928066662396802432217904586009124478801030411986457375622861810973865493757456227877410437726902470305734033843442603426259058600357350436155187159784283220363127916047733057737301296394168690754983912014125067039776215270995461411041236248725352102717804923510804702411340437988981712534174823345893601435667840112019197210289062933723266520338977767985428385423571959846719710024737168685475869108790547672676499327299920322602354774868472326355800134672148014303238291309697319434963318895239187847759044984599159908099974461792710490835278419916544737189882941331130043857296973040525960681498025056921708624071366877241409638366348663944208338952814821693133084937314876039570509446717427159056862078621716432409852213934236000597939507522265064439113970653503849061619352732822046225638891760278518725323106115140163708277478466179135145069057294761691645345095999619434908846206012556732839949614201948220511141163792873965343416273304077031515057978936682563727413920874205853188288178746507504094830769667096209748550981396955660990676290068602024265663079083295289498367276204029416377723436357253504885246213232415688240532844664785626656693294616385773306751043426050181275920200581164411312644863762906737426458337763391875697003411374583175838747760669019839741862777370067754370073657323620922706161683922205496024914236798234480403416355444777107139237742868127536609684223828751951271573570685526462691759740429694046441415894305601460746318813573436416590759206695793577997304618598704241420534437047939681474348726807198695663119888821119761148157931496001541549631495861917723419270350701179301355754964696873168200109348514949354654772097995383505761108385646661873427481477270655260744025208922379467744079074356274425369371213686368285423116509898564981991287252373715227656196132096987653930038423103729653080184832859940351824081096823218881652108253114636586485834155670462312886766822924562301752024824887609179879742313357882165915494384834291144276491077582732319839143268769348092293238458020912714841501272518825842064066580861006141520048673244276444758530516084045432426421190928162949232168061423663410685639895432512184944890508373559221953970830914333070826282424033028424579625657452357650919482979792150155352130743397352302698826687598204961066962815150062588057414130005490269956327181017476147461480963924431674949339424157783093723497728379551498105367414829682725518135573322653598640311504852162377820670150454799974264776737890924163631469727149660896903123258381691114668958793481316709404132171073425750880011189649948134409283404832975731340465760197372288135331403189958884396240916493626409497455861131283595536612538195160823361274584108926284044681762583262696573602418548186389076394346480813839341933888353496782079779996368726519400542672438570751649528207087341459531490501264063912254145521957868412825139914492762412080843292697089266591441815818192152148494100661353476803757115426754021906518836284999748671373380711347290899876835676195915087121555171708694098131520245706768278982559287644882215701679387445528685592844204016432868595296596468367137252736258812773907515336714294946654143640691558745924900258813827217027481638079427252592294665568270224488210735004748065346334109199969140959063466211705699944021678051317774784118931288774630834029295375399048004863021908030810396189727186020191720452598961508066806995791777476420181534300294919976803949211155268545746792825365997958022555735205519071712454656781762064153497674624942920697647569668446916008053661714243836863141975725360156101989295188062590391421161991402977664334790063082417680176023527374684758897548067104394022488212739734943573857911645405500078459593520288417378698851027623923748085313186698774317972994837789165280975965613746594280545153018447464142117198259437281972117292474296201093848281812688536349382851253197404087686526154483410493655326671767345926047969268658969504205512913564897383614295601786684940006798882641337742814624873559507631805214829099514779432070640329035570694234160000740526643081655564614947544047981388535914225563845648485222870908230275461055043062589072281787743980858833916733435351097148846882924764140423560770395277160049103510740044584991908091127392313612438111834821323458217480363415540465539692039648682627357512833611117499613060206584300819549603878660720016929087525906496024740541648497273924913517816051729066955005966940755901531780813228499886641559698390772880336516535346089950858264251342760127279953744648300856795819230944315595669829931236661048985049097680742941272459585979809467060509044649580795500050333466319672391239208885917499309137715412084488646872948001679287378144021621590465047875262547671648039936524664886793732595003641795456850752618937619738395133079408127531904997387961052422533601757873733394107688655798575847461849349179667279027283207319506163686999325081025766379581723743720983265428275959984159163094703440123056919885410827456329129662231218297430072594435257877501556580690571822221344890669671227000017262191000178120460933353004121645527438768714984889059678151038386462721667699118634240129026314676882035973200143254232374839894289385556236787638499115583190499818058304170858174921281586057076816512243690522856165469176470886790192039318677416570751289565303406462581289484434755808745465981055302761555202334203177464454992183244083828444602626915828055090767226833615261731355040102020565585527219182587156367564523635254052454788423908895097927362295552932423525034785061309220175805714014681995153227654149205952247751658938885149298810325155474653080183692011393455838252663641442940964837862561904460124500854890312483728092136020199684491536045457480752714196774063120511332005571979899666908054172515179023987231758179645589282115580623573990668904383097884154602856337428006225866372025342827487225370710682510249462414255090192264184016162247579263918747839465815963258433250771359666682833290036304705801499326994150997525195926005271876014465003245180398838968726913882842159459560128542314668674475892527336708789378470390457740738553749069170344733916711717004157804488048624715681529989405204377686359058771082659585734394071350806259054664220936582311122632058731507698201332813529039933739273194309219033853982733937700953058467825163320967411184274807502782018751630580413924063809877298068373500182615876030368148064955045168961318046105236287786157662446567220424927536434132217057562124072644789760173537285579274661944638028503981076505042206063600357270640586711385101206049319553116659934312395981253800855107943206686622309596722719679601389636111388839156126129501807269336234253775375474341866423950794504118205977376435566328234177840580278018681020432906634469892582358287606564865643986634245251036113306055124012224798643206046046657620026125904900026814698511662367062384074100077234681659869199983751201109947811316738894559546752706043870921516340908716345859241925646703253207494446292983767376805487206031078552861579407625516467681511679484677166691234054983375819373664027519587950202361277638828093807057552554845735568571292129059721741990755114202613688482625801930897330737765355072181870640500959560155416378187832419464093396951559624831210389738087162485563472530237250253016186197312861296820592376797099135239868681523342465385966708349600172556235003707585796294000273779026327819898071816235727338152589864249154920938967259098192555451512557466920765491597049918147243838418600649923172870708561712793868147164770942913584178007368705723618633156102288853276878518377177159624616823388987745323781996817951677248748460468262746228846941402835638159191798350622336418953022262922981078755422199680601601711287189161393170339595565961236967748291605406497937335051624981920543391164166040189043318562488469407382302596858158345346558900595203550733435999862542254406776235544574981990936902841932987985763918069675661534321291130591659188427101377123194210455944814151966372707207559815536886744559556196472455402380802037113944673167247914960189616335987811573854876393319334813237367812162205514928709759898697024827854568080757426254644849678454560746281395132507915514977956445939384955943892499112424358859082038604862300402831792127689304416102098535171619330698474298356159613992555000670763131793978448167482406185762340814246055981445541911005189179152201209485392145330921734147190055313950069157926137524029975261241173780530970302960282076401095607325016423995001233916749969788670465223280500095518642054743248100565584245698271439696525984949876715704724509887452871652311381847441672221186050782117291400346783225547809561766811982550830856835573670180696180834090265729644250932792338412998039657259768582700762576178420507358510760284174543107558098297055841221626218291992788124447300955763454210997193680032787841600285856724799877749846431992192935578464647198991888166219522097840575416591022778955632141632453848504711060900809520252260668892269632288681399534210707467243260012933414229369888775973166587137291433450211042676013319181571007293855071199802454360439036958299661724527997004463229314489757283289713032420262276893674691636634975373161449897645434936055483302489571635577369400026535909312606036530791314595689940880988683028660008179058978658401125573476020361124996767500882399782529011826513004819568607605971440830906368067163919972320014568691633866700279054863405850225931569266736623342331976033812732153475035875749814742248711572332412374320271839627371024920564670851587854727501997325522310516656614457170927887136053824914899849401033697431683935397441841402979246037484082533025432120741982523316685836603620419268380693732985614846310626947138235465867219082776029852365751375920128973262352630016606815139523312689436205482358284502335224163619620803317353591997225047266927012604047030873609868911308070605226029846243323742907135379912357555932186686713418874172493477051834112865108452897627622355466611693068780285377635717080418115872629422496874333742715867171600951363476259901715700151532223626215507010705595968109978648394326192744860159911074296773708919097776089644893557676970913822490358537460738578355880561846178009791711805850812180408984883531264695392321255351674299778081570891931826769578677284490519773149372827962535566208474844381657864400525824598329866339399802518354048487415546824165236199402474137631868384288935586169097461760162892878310790427065318445261919273010256292509180242318878452756773253877630394390838085097505088338782877460663661393045280070941950395777925789756124887833780606602778420977515508064698063411536084261108684594757816510409690640371528807405247785572314119399421528230440527963838884068227134693129927350862796893694947121650993618217656622531609464137778066718878250926776452334035993485277091733468937134868137945237882838471041646260093119913696621579248535553158124754626006363938521996948201663191588658890849395390426323241592069337685575517539185701677308906491548740221328227098899933295172549869519634708454498289854412872909682544478062156333258787101782575624805828134743141902352918839179944172650529802286588943530704167081433424458751893046119297443118280272022255935487142853823391198320159166417488443253461921362276466271290368457810220834841778160585017271922151155553564334651635957696599554050135652190077513458639701924064651296655799684947715354288019741235764319813396832665274634018045612009854690504943968774208579252358084590709791091688072778839072436389597714491634713512715742255224791567504198316803664067053262097180194352729137885091827626794853631886103594581620986280448182118477782477230145318404097641068720791804965171545646039178565212805936788432978483427739565489450091626473245909296199994365026363709324507434198272877155724707387830458658700948632328657305263555125396204115572135968169502238495021564049940371468166344059428011846599276529116368396738345983675889050518113055023531771617029053866176577687257288851629740509794270271489583617680287499902922223181951590238256051948067323915985079891946554736074498793070974798279821424068964402914344764102500111931440546863161090472487392332470475302873032750432579336311764343822677580039262469393127931107987644056622645311979288165976897539928879446139077304566365626128202285091890863450641834393551599828046995478307044867874894063543308677325171457643099831856940463237154699665382065297050189615064869356937310996145358310470007304042445230759422198813490439840054977864310120665203625216248868642995032284159947112321970930197916385411887030652690225830080461578725287686176218930729999983629574812481465043407932927119485435661711513734805316103585703884835496313746055868602190026489217325981812609518510380868729421438029074400210687176287889297875708132415144850951945763982515970648628244808453577675272287540853111562764860464868754266391474310694262052479499539756629593388160323577761094991577825965361036226617934038626572827790675347302061300419957526639333013370863523154508539114658616863122480552539927050087744564724450024903762192835456584497359509299148742873086177647270151853675290982019543164242022049678212439889189781236534289215307525813838216520063814372344959001292039324360248031991740952154605980722282050434213207667229717208970187433224261556950245610868636929476336930789992740106080955514686634388864376241412284665010400270373423758248928973971743713763477923354122382185325781221605747878377509092557347979106909188198699018265408173093739115101957878620692098501740106347040146654831200858287523231020210921355846281000861609236878708091070395643466303508854109161759606062622495887886103956210122164291350417492843184543552567824314675501637217123667285694925146730383146576892014952881792566485704568999405799201810073286357726987303034056167046522518496410250380303767957557988493495412357360379262065659726393584170446623774508800771036577444186893664122578915438089535638335621868526127324490292627365930144513340652685247119837041213363242415942493579813589709212361435999931234050808116205068031710865979528403056512559844967153576441326691643335124679062550213124532916337393972175107661013071218086003503713089932956413612947636369078827169349509384354467514994215948859918109989438976628835811169892368514888320916859221733722373073848010907390449641426246114258488557092896619159745025953236588275274887211663638727906033374664069594131269579261537234127829625709767207108497784751281278534425916394018536806870252989987073252507108616549516602025804317149841977890571117572651212265008627141433115023563962602750386284104870805819181469263311618131685469698038687522376863133133125046193824291396790669100464555543354969358025181100124578912322809912490679116433772131303181936224059376620110415523790059933130818957332540380222968086829215427789607249099684042660046609793693297469110377225665996275999384487977734690557304499933818390520342711087525327545934791083448605989318477944925536392026123682163424651190771156512960848405638602938116755759653975200803049777236966888090599815566831618810075430460025221245003539006131358977892178567527613429823893244267719950118816950386455116644924036202100685256692342894412348602408844218285061642197621757623699022083752757005066050377211195771041439662652830615552709938343865032492829595088452401411960642262502329106051478098830732718313163842802471015731526259924782680767001722941698084869849757090176222499230371145170599867423782623568185868770550165915619390950029729758702535055917997743289015454976161837960994287895526342534375270494178793288305724982155552360982102565959169403093606840980992275109410030009652732175940079965071341520635611626965302483109981364423827130177206678039168370182063001582673013462272549229708655954369951757983468540259331421676346631298438396542720361907016846109975962456195845672262076627669483241265353337094374447924793745227886376879916045063465640080644839590493109019191355564053937829271105106608149261808425136219668828035086428758509427483822765833997927585711211840416895098334811136236516859494235395555433633983855295544104938984161197461344605208405486614844479740635188909972389632775679189113472441204941609379202338618518888853183329759598793306482570896080290166334584039429703723870302224636605949470643283386409652930369516302171013617331664188141508210203076160850098971959467348060830077770498971897045990084256796820220057570659106511245453745996776086176069413499429973814975120139765994732803557796856989878901803874951590761799125772307129576282386109074733896992906275457017575796065969326155594166074556871518931733251127400847277050955065083538402704693452947542930991501183123285042337002341660132951340027386453320663490552018975422559198898054740292705974497018620482700086261811203509944618581221869090584113591183692110792979102757545347299877404928853251487152261089712232040346550203975322237302800679063862892585417408385069919587357100940439772761118441647584918251953646527971094535358398928098376379757123760300709212673496748523962469184644324971490074190594514201332569938789328840315781461547192077383267490302691044941237640332034543386342360349697188513604029110589198902396359388222119166481911123663027847903192775062799448712399035054549119039813001486153062660957593846375061050451562137681686469396623849519636300330812523400431025117971063388309944023161317545191495338805559045807976490920126924478821187980773891429766345389921237869120780531367051542058995789433458137920695638225297363892950767558123486139589491832358315423823653653698443345747330195941186975176617607818275913859285292785084151869814743699455882131751374516663880172227629415201640224497433783491144046438830458072897596890927073878335189012918116959090342532422855885931608980304682442109883717842261876751098719655240849331373802267277452221268030652303735670036728912546882855835828085624316615371122596022755749876802792835165695567493384965873147113688130688778240086289076220420416460668238957386173723567529448623448343204523381520343316635537170528363109330388943556895037055311833946261473389904976256604370693122865959308143592657558862161137089401583322041603004389431538586447859384491132443530602517632500654161334401806167806624285937606218037094284655123014988878815224722694989565431317488433526210280000678276165167366703753224535240668786118087062009605945622997330022326489259694554771240199791668914907730276363010088328344802123087789601562252689838753744524569659971017518884792479849087814438597194461521931542748178324023596096823454984856930186911825681737061585357305390887361999581149146774072228824960860307898627550374704059340511946149209885790442906351546907055020682383390612540951589516373864473238796984118945510902729186609539636148032708175346280485385091117153752295666091532350907276115824080327533514700808632550307457620702844287492191081799595445609594826958407438135307564184148675174127924758170453736313709528320531561961669055494788027610034629269291567278190450534963952490504706464383805346863077330520441440332559320751549326454479783841061503235001059539164195885234626169304023371215403424746209859135156978473041802211251977041502222301577618148487063375862141782209869789554017999537023024156270306804739227983904741667724119156810237892790589855948261443133560828013467501226152777116844238178183221076742861831840191785127814755877609308481000783695010789281340836058486130373907864292716299144437193961071552015341326760788721831719071504916639426901886522712209761190025779510880940016928369312752881548406038898363032200703752650004103520270594460608694026573573166621268659993187454280229642105528268438631547420725254290626438989922703109398448946433029584120383785908529954881029101895630258742995164303567082805644649016679182581720746876297230743189715546422963521746056044704981278315348488045669358557237574029761575137192434510022379454502388656933889157038713286555744448775223605178958252009772779777413247283782877655458667905509080410732267012635057241448742267159353007576103478590360897623405451756133263365502831039065298735452115768185619945348744237463147272902718262703405678973521149260738785972880053029703380878288901744642766693929545477111849135056899652906694702003380589639213800600811375108878646788849698438836360170181376058731105783592471788850968563892092146817064504633300799339220718289131618737709987879606829199206483197270837696217765254570284900082395968649769734086315258179241872705846441451205045132938338782843425354794895504045367096205413806027493535807598560651150115126033871946868025839037431977817459206622452663887080440899243860832642276613501763574661519533289327697817912137194063048883304601390233216450846164492007219430832819443936427435789329209044255980012751346358746920478509808048268070695471724782538849125865145716419482206392911724908988207567225574761723928450553445968160896336984496061028221817190165085167169198232128923171077719552065755665840303430983231717069487714338317206193048933029046128447005074630194477912903171096115530236634188525019333277843331538143595715048906262549883391679993301826279594799894049964890743294831721113179331844997358957618801739532645949425736960606022476076931137941410274458152270935691352539712272982634030902696758793684584596675028759148677010320808111916695118786965747958443338413150060568580062917036631352833760234548710569309374721821472899692820149721139385062323147983871733231836851001981800946663947268907525963968873136212955477806016412043485025065462237053568161811849683706142253115333107538461100917630320163264217215486105599479303567721705442738332359247036167656771892908168279339516518155917470493894340991416182600089008654026970749840129813803887464282984279610176398744327228428417913649465983888053993841693871796369456501550613178126839604820768547686903119886878719779492167760523739316559336348600660512128173102348389200337229112789497480260991213502171879797807932272306471232633783832965052602620583273502803842569995448835687741657578263791013671783410809492803459822499230927212538979628876645772720937909292605064321042837257306012372876136280483163845106938663611009120362033570097273068892432340581134973970874845705614885175656593409156299359814157575141926913095503274822420619352025288158045039060866164322800499904687862387574572123897082752495138932807219310434975118853849442556773066772476460271689048882582447892706806757597961707657630658764367194693009498028396326120162253972542842077041268647907666996907077439932256477662878389120895899719569029140408007618896122847845918061296221002500765473759125932887980157979539365922041258131687434578911770564702739424618212359046663002944954184017063307846107598116965102424495624669488137728460882896551097330925378485151262116318388106742650174156744181027205984932272980967513956548661278271847639954026217421359266876054557012097841625744317067636486314285189325216119771350045299816955695105308855478493149599385216627872581816443378834249086509391145411355540171421392366565296764407877318926054550054931777437975841710981496122525350475831689122851826596883056470183627910518287861976433804689392606796644655849855739022276303032692253569410442755104653095533704302554906715877703232001805912447255546837688748879005552111019103980988931038193558492606922365375969864114328275041181954186592018739999438130818439345680165318844678320434618495064378476000530917721154139457678935413759334735270111986752703184530444154474578239393177517892601973228701423902627620405849063888040968627848657759059766645712207491723395302921071629316564734094385804148651893883086534195677154651966344763002272336567106916713253134348457906560968062044209757490438091472551364278500542321214486500525525883798548816766381596430099254662215282914028490474212759807656317275367843039395117591994124566171978735134576777713964009763982774873181663143083638713762068013968119602243383760736010572836964741548985048868150738059644088577904100515749101438560273707956382426637724197523856545889947245368645033207920973113115544960374388345745597785157017867701148773351278528747519963472440539472931485997490477968182039483765180589015193087145302283837454052967833379220422425222889273329326070107412343719279336296238074719586101692012366283319095931960250923884472964104372535831938618707889658170418360010261286234150780721176054830567269458090973175818071107037335031546881133757200398550974127607615265854674558437948610019521834732279391140010933094633502469207983032159966576576986419987094508900526236269285088860727682311462917068561846489366515710503994062852401310234800986359586748682546519334358715328087965166176354304878948315184266976142614384269765945662212208634379621878857713023657746769076678866585055682280087750486385355305817825324576362645037543715204221977299813209196645664850672335923048415312347801449244992187621138498357532370237980737033815917548990656742542429116575337875644077596334234532325983691512234077594990514663584754618767128611106941758579214230799054634258520893655712798987434537124910288432091251922848289388892168184343113517832670404708462792225925252703030087745503299806283077831951521266409720193281383514078118939983903417364375756682466938975560291038965027196971535689972743343103882936997608843614887043165242438220909879812170604295871257549042549275901999824990543181763008740974440450178043627163393565137239067767053187117366710801590130864120371723424787825642256108307117937376348461979521854386343620110445757426549084734336531134177435868445437398638794701443010607090962471561257308778666006202192035301355888774646519050427815663660075664750828848322299227067175711656969508049647067824079200757339849636721121800285856114785163331700796931494079869712879664119196245879328124176940262597027406143747416111034967646690327402221550948002196922228557243316549749288666056640622832297481379101871097730227353837155639820560436449063341373137515328730253820775165484349437516205780001267982925497502889494529565322931705601871013271364723821456863569884735618546568842420919942333637535326588219374099089582018640686189946246533558243806805816493682055799452588696869535901339293182557909175323620120343321461943050215273944874072518436022281698448751892276167080124674553441695696817154896668750459898381805887558761829572724014130914584726344410346421453068996125947463202989625505415786085142742776930473118649133532917020897996165714799699108000740771580334134063258960816618736791268295763297561594600120900317672977111595218728990043836345931074302999765710465604180040101247041423721846664113235299239247616958181271420471676608778922302067625785750359680639141188938280191810282075574099920602686810258633294194342990332565131690370676645439689323751027536543347672237608749466868728895600552661173573289486654413489060706039592721064988820260911622482437840772546978456876991471883325307371736217863424925851021798670258692768457024194123284608839949864498109208444830734918495085266999169584170695641860379733479073016254662972969151597937774177315640229836830969848246225129631032294445974971198551968261517654176543076515379769453472019576601675331716224526813255525617195295633808691401437720672403682526609650822682516083292412660027069566037124881055711408957012408810233358335496536095928029269870454083674632323350563957767662996038492481597860962278266054807492960842071903373093559197325292903855071781531989242222028752649903280656507919156225067936708795058082819262433950555900362860239007244098103847853546879344671734547426198622517977138603549621074237071864421601886188016609108553614901123305010964097340734559048748222061815203454194710046047855139506348085063711357534667214225723255849312263407589960076423800373901914326582770684355236135605329447014126632279178037783857065838535557934024753843904063627719957053359595202546928613508914959931154592917803765846763016843089046024556729418414120004075111916295374996693824346421576183892185939258335430126621407502969861383284706804002680873614316945388954436660057021599254698640210320884720225584753045936181636695884143123030852125146010418886294210193515273000887705986838654650287777807168002841841792524409423362782194589736593074091311570498550001164402936343679615891154239901211095295815046088296442482080395583589887240975731920552244312447117660014641398272573908625533464831204183593640720267042031469922396215653697781816476313886172435740654024895083230729783734390797249490794738289182881547834007037213072859790650029081264225800508856402834668085025934154071855168870205710131196899496756422875643251725783527359328718450757423263243771408964431342315813284763492638018756507061292081531159916983291413187850972697914424397208209518589163345353679582948991416156748781139945360385620741476375706993830047399052673878614666778152367689616027159847615682582305540381553888887952133039983049717670755327539695365234812334542549103152693308528075460825942181803955327869325797140773189725356510286333101634684625610619909678892673876939911385360134412766727787821850518230092774169303819992257208562034020631394156454762943891630566883184701453232384467170687475832893327153795502121262632473727975743596079732435385050529987798113310452032097557554528053132545914083946223046267074935296241822122305961334922605017922048571401964679129413814570503976932652963840344299710674708112266879408929109448316645923513630923644051719513445164881827082127189597662183994526355526671397504961093090924055133960604415845575072232132317005840774868000165558049008652747712068244821156745119419816321983878745980197793092804780679791572640716849499824004625413533440276037486504748360569111017095183538956742564913919564462746627700014966697734482852605816901918597781249625736249124814692124533852738778297366938673836280667787942676198816478950379127670516214598856752236329378182215956518208444208129289098129144439093645113565125823106356666294220642288868293123390649267907605211282313099569551157168477794058365213537806011561136239609357669596632202717964467025576754740170391396486718762428588864686993102116568612278750093585086911414019873051651741832038469333897867351574968089205057513606137757721590253617299135267141445213887968045093152607504233022373240092661502544484633053294149177459832754743466032079911545468561564506228789149298503811540274499135672743830840159618453083085412741268866883942752082189806537704992826993564669846151325007442345783704018759206002959604876571710357334784005030553474331660703356318073613701694545878520041480571636274731098007889657572977981706230080987105486452640597352366254444632430532067757116603108866626987801796172114809540533926074223222768745274891547693946039549592160456841610080520805201260146613583648016647567148395788304747045751613172659802060290629827845593665989446073778452952038128474667640217585798279128419194001414680938466318881144551340205075142244995234344901588008632331870638251271723540403911511019113702676643917263589516234923457202501352551484905702407219250460574107226021762485082005178641593795113492780917400823165522376689450047099682726642111637182097755357516208659119620445707272723352620617073415810284828452039709689285832844633808423487893244750543136173264858751466810739969005728385155765712883591281184017783749605902515863720094975885588860405059785839770582974336019472011482680095653822018235424609354560742595234881353732343244380542293742758685099288469826752125771213255902639333619059267596033359359215120624794768058614783557297921133189698453321204357288461273322417829152628463054387595830783969864705975125180640890581547414718967006719604901856849378683388067750705022859530423552328285083884551623242529870021475545392086604842791131777417767436162195946439769031015333060474154758527390323022495201260464796131466315571568774145516084393985378855842885705643092302344348940647288863182244759478201624888687762164273665576879066441246251332469230421045276873776380351376583195638991938267844529484439972129534562403034117887098968944884543951238619530456267610242536739496249723382723907299338684833182676897738115668000044650846092853069961201686869402456242181150301547121787276516276177151950755067823463566150967863529013152652364253341974735283976393644204128553355110766490003662521061281427972307704232824021930567229152895537200860774669971412893010412626883846569227583033944900485790960885911823536462259079039115543657666822150128021669170517504290893828718991155990435513193332181023585474903150396484065008318132601274835193151473294890002804874315622920242056505272208357173382390008878394756413439918804917949720173950872875001137994239545620457992149342779093404774018951962103753203176098728965402640020650076157294329802656958120186067877879686559168573464056828114864492955135528932419235507039368726416498184791437430072030380061150428844732553808830830200969128972283860371199243467824784662686880649148428808551373254405786558912761470418897032362526910441282289781363328849164061032884743072647200471954573094850323156122392982219591871838224559806856477800054481272796494188858053224633300587191912240861130937265700071849067326055206186052389255774683517629552585034510460191520473617619529336619093570774428557979254451038362661163114274414511703928791125483277813969810345921443414441837343279682558874081416007357534743517624205267459183758847366616466891830300549868328121360487824962742273898898196957683564297151304284199893427743247828572046022022203547288069613625616322847513363192290342144914167686756067140805430698320574034568632430374696527596117178977513193626654480461295668541500595394422662166247857455383702291549444154644867335039492344540270804232592212282480905405132123794164465560603629722861882914953679964263347215870797568622724322128023676913694042013361132288433886258322566231878445835431616972238918989373880154654462510916879337028278816411060049959406199319855735658382664470635988550493923362818140400927465022733985715353450515273386023411912770043929969731191638564432808719947034819900196494957145546904897797498955003374417774411314656696955032265018331115976843981968415067441822073468782745575702494290610304453886690994858432095848942891132008862556887182057957971396553965952967342232331121967265315876134729734134822868122791863928263023516736255139469743101949627086619829980174765363780006210114265732485113713875612774271653328412209802585324018581711633828080149295414163298428708674394509516440008574570509247936442096229475464446247164330857905613348037640083590059884562282099427455002360565371108969735269027332588532822208289104006477792512385260112681619430123537952519638608347682501627499032372235199780933669220810475884528953235788644360755311332712892309981999379201061113749403046807540219086991373550989361012452169390815491342428919547057650607957789540370556675481068587645113604763940076154056417687228489007260227100179416854614766337746403638372684790312828091298563923012731372221444927922673843793608143706980736394687572227887357310787993817401831251597609739041627601005601906685546177704451288652579766515247753670661253738104809309168396791347550388660258654268662719751609803353240747222807935747198509687062342795713981451797486248598965932258157035212667946641886406965326617008296268170556786293726215479131035887663155777373375053498623989062424721572625591805415548808848226689232952189781722569999533750610141458296471833900297855923442201817642460195230095673036865271367607019147842704711209221830822001098260395420876306663674676490143867937243044780462140453279542362146783560108261270446844205112100805542197264439091519162436585064862789419318111095636898890734092459211004071616488019031958455469049582014239293946959059674129256656972478489654678075739693309046254094196264367515165150398037558617625690352525242642373946572170679827737399057010064470737746404679451864000624373792793674558401393721938571314761778646661376971127110422854810674018247899974841730030480689589561364255587747750519270646351188453378533497586054848515709981447925198921367550261738822968451980474688992734062704663878824446817325289769642670810046958224644866336036007165807741138573435758590725202191204781909090879625029286103719199251959811800696971659603733460970683416787777620678514502580086853159336734720195703836134113552274609035380269401480139924108957934106953803358714955777625006674256806137808678250884656481516608306566583182912563488492951609435765162780502689103515848691393390029130455632631636375857927534613582755540812695712388946376213043092626444433793188715579615612826654683005636878893811088299006573784965282422348442027152695322632254016529562766591738608922824306272986353922187278724607210527203071641979599357023954846937556792118123840986824749408605816024616926286995689299569925300241297505306639006751945642104565133080834484572685912609787348720440546364278521152819129571114499217737462166594394445479862206417828525119461439368177783957361078247584429263621781562537815913015689127457690813508734525835988288305630476769065760962657102188686310955668037090958155405254097137428232537059471573339783882386924155595374030071799223700321801340067924013470465101506937628882100039797076806507681987288579971616840672118464884511749095485451293993220409036467655808050787594533775342350077406647896814871638986211174292414828688904620925047632622777529308299996024476737678944579007404622512997131141719356958836638757909430312129702399282611875871616409804675138280990017795180319505995500533938491544275362238484474767789898454545066493858825508644983633507709183065298355151541638901531958804829472308792152313346602509940157758266304663752898635452586057833459726999842685660067888819544305236113863233421295479778323427512357720734835082752730669438218014442292694324147400292339717723676809481656092209411796564099720534788346432002661812932471861487060142183134024395514979396846736244606988836709403043163557465850785922663310264195774698701887791085369011424095571259973622521341815210298061115585745057520544073510240546097756631710832707374751415654837935903232549780939525995009364689248310427800155382584763816137213018781852453735727168720638002061416201237436923960281958711607714190016544688341349960138678593854823458894384013761689898387586887810053084509868038017867987178689661976888926311136602247632732695466062978317942153781561578242949133082768309109869474575187265706263088932576282961328163357217047138613188374509174144074794068406183675766688084530081645025770051213379584632714898917065601328920553470642357502474734634126280997080243956779905959927869126084201797086152951575805520826103156213130558164095789283506330635783377685169460812249421378212191301822636349377263154693250744177574455974670397595779780385850072689071031543178409752038426048880731755154201371490969588128692826814776608582808902123883864768553267706429261489774837359691729271853100978183689401800002351461272652381663512142918986938367528860063753566261978682245772190013798306437978890485332979766350539728421270505292936422023909831936482943450849267710730794928296844287097629485842555510586244554231481736345474033354705945240634956213943951108831860056925897751390933224243469042796640467094841182890581332286157678371680156603085532005717537916190256370647859443645459413873915057425219411235640562108384981183704625268776975552689383744319472517949125429765420700349438883756108414677448787945118029879943977609308344437822536279357391968605652738563005084756720412601940689232969487469956587868380767810755196273797997802404856014468456249499341792701761869607963481977450262315518175920244612918718648703794872693079662525521555800635189908377062732895422899013905163768495048755589394527509644115205146590035443210627635345190114959295050472017295890426236054581350765277520267415410040060907562619868249723163193745599878408870282880978801297691022745018972690918681804686068533634992297878814083270654448309007504583389802303772669687792881807078486173559709015012916999684051560107047051936982472213549705162053648126266093430947973818204688014935878734429927498972907947625621154880847695424746232438428409837579330042717945384446707119742752137568920148983623409902919711420462340977323623355454756786032968552194466602295696530104514724993949598352760645886929193320929158694353322813378101534459981199141866887356892625398504644181642998102667472400677484701361025428043579881149368798009981321758065252135759963832760345944640868766935217403102127983092981562108218296629459795114687956452598212503303429028316846561198259773297400922234873117748900039924413802893852591237705327709337406997922544919953935112515603986529869048530702492315333644015426815489326716226914582591994251769068910917008217412027189974923845672760224017107052514282533079703457593362782829026758550107171906694593124575465626163958064088224284278134861899396839929718611523160879655616987806093946514490505822221462566855469337672715775677378770575920965831915318691275656661761506588341405391138072496903620597944682150708578505045103909291234565300541997150084745420353223637050179134701023914027792887931358297911537589578814315068984463904792350573291622061668020066570531056989201806694087892149721996669899392353186748914010890412310820887193097552334346683948389848104577464669615283632890359664450207226187772731372834338499034402450352749701744241574016379511655398979050968363075587919080923944729422328069647711426309441697887260089408134024500310084596360680004340773928045581869238285995378120932751809965037167364600104252246324242005291259300139319149527916361872939232843845346978956148094233266553156909210719539986392763903834974129533612235338052361798814331748045813665996892857163052578851014303643253958404096247060019918246415992484457923315268383352424712408305522823281012233620112595842077599477172975726001444036042106025133499675624901308787659642479627688248819218210587493469803164229445637802297390196822511497853840846494885976164617100442121384734300838773260379501008007502071738901250621487212565552872289043052406721315313372679440559406055885240692080084051046357399900919404300960569845453287371642120814112570235949528076761626065712462797590867554803395873830705011905502461313858451692685177816195844160713910552646120414075172166151506647940594109790586097628009999159161488987294059935604241478848682786827537789893716961705157770388724588942767545528404162684400286207005933351081609977577800170639076579569399760013094194232906764930211466842653992132183190164708625886223202179005485474522119460171428550127069013274287554198841819721893674598567711739773418870306195877482805263375130719703730058214655741870344424839915516357010206701078463736601469175216037947797761068570813427878909511159164594607750336306444980537605129861374171196517141082971810278844623837541939698588453765515465260766752120073001345109062098555635861880403822227615827297982084364022005443212712291268871836612448867226348476887312102402451354394064829186546375144257018577861890888886668726446437951528910529297745619441593634402487873015627012138608630827454988008447188220968635972735163367958788910130982414872664831288307185397811406491990911378152646592931648475756286875798201270541987623963554287478702375140875943970405068040973466951094856268318195207763135587656295486784631847467776362548547539073293215794451930465577270930578318258987355166156779827504370621259015579267076510904068560780951440554095323766885822708718185494652641733732006741575027962076412815677925645450525065230675987536204638827469399172818167563717062628792930455381125616283348909076117939986886755801985414249872316802946140956653685529738757576740776689262665187579851710981068347556475458983482338868365024270259855707759874635797120740800832877113116611033848301869562816895734506308025010678038208635719879615528703395044536159187317737240599270357219917183669943537372426502196290496205596244491627649236875624729161023708677007790575528467107718423351111865883398577656306582852641498923177135943907481866323152318339120047167311937193376145234781183663334578840427545954060523946413373250657354592434552123478267914294487718875078166090018146431756432634889098542220745633275882002708410421002762845541612921370482398006292836670516149945447331212004197363136424137903075985137498620058375965976472843579172288419227102282372360671006963574992011238587424708247180265530847074488911392349577274147342264586879674345917552494000658417559597470508029353486730323757237935636749040932509906818778788423431346510555839425098948501737105958069776208674966284249122599273027495921762494554118772168669728565113731739214676622801121980503509173741249278812615806058101622249048078827294351530613677771022203346605962764463943623554515565385926634599177491921903425803558710718522698891697042154084532736496880023081785777057693265616924139375310966201833620207916879985171533384952123211850837965789610242489560095141653982072591467556270255391883842858402565378904341592546454488275192626721166359072754252683308316623099904442220073707295422174927708418193146209810492988043788229081231748164207894105662122905362484557066821406261924240941687141292203797524692009571737185547327711090325388951144058142094538231141319102520626794059977304494387513339730351861788821454048988372815563032696486275457528732862829492905408098692317090136491827821349613740986037170158301465474636234152869787495721557663814184542138836759447733152928723956389059122110243487493026437022833412084431823850221538308671162066769117104845015021288601498437843027651563204431654493195305723764469756540473517483998235890897580218999672229901729107422655877693571907041956757227114303021556433578762644429220440117138351879358510511078799633958564131416700843016435040044708165767286249321758698931986114825955735357625319055689318802587708050392895834750741282900132364525809571576702211722367595500595363702050972339884228799184902168423766108885304926103132275793894478728400680534308722900264551940517148055229426456186277008631193595458323186142642270786895558055790960568432050372319033501400423892808513381504990015807162208640603242348747605969837150565429051175910473825749737749714084277575103678300192749701749668469352421852801210350564708707110158093562601772571220261212181441601668961604702547602332397729014018797044896940656808771491430865395194170211686715439341501831537851360809103120318169772054239034809389019633952523435630746925564885623568529018851662651010921213037870666923579072036231665651312027835420674863980739096607991805668853750209878035152171397594276405327047489392114101927079410739474466322048137992705465808293905175806399455558883551324244473309958156060765500588200449098438481665603441990412541413819329337328159390264037101456695223742518809721507260467175450268186962658894844118316747114336358049616325877831055903201814680711795906560790955979801112509113631224213000731078431419933047217170773264294577848001983747074387182045439135326097893458761051345057500372066403415987953310738332740405566106076844325361364715767416670925676766395083013063265592252260842556910822230157300523488966434174386939414565137655298777527446904316165647532769249628145850778378669886422738470064875003950451382200607176221742633025510095434370611368926011725459891633069909195272319589100771732538899354236566236335668742173617011024735356576035751310020680972408194394969870558822100820001410930198417256114796360980944082789861769743308292666023698442508925194263589146018348237854975564145676796205882296021481336963775147855594143003269537211570373855487308687918125180672664099267438342812423628684273883153045439707188753409743489826312255766091174873317753449907918701952505437479428837805634216287396446493464213525919731782309731476587799614822547068285422594061511111224591041176011071575796087364558090322593632822093647363888361266818766127863503994048332729961540518449329013500288683010117832792489688871646606627374868445844998616013317522822231902698491317827750002877886214346942760397714846142467952208936319789550614972839448840448139416320482097190921699746483123757407824902128466643663807464107431091385918184201993906299650542781602828736414702463974924207040831764468718406820938387689655071340755667563906531232323903547761791481216418026383097422255269220125102723853057646648599198233456075162463412931997914596234051827790407954235547265832671012246360587437145368693160318946370175099037209739951698283823254585663008647532093109971778102780814920514502105579662949181299805420848455626235278404751515469635220363519341902166863547156185151003623281482383725209354226713113492440390169213704794370809485505516890466535229939673438070249100422886125978390535072937670071934956486111197393169486701737024073151552216701456867402086071384831399954396137212883304545967413021596335016518454398859469195753748031890236935307207143915709045841904723548793370862448798155517851965874368051519838505966578109980122855983601325151757980147977852033580696300634060094517196813422046883468982182590792115924134758995106350749117319039368190281022184722986520296300379963702899959881684775581933833293987267274583747774722872914499893372319837629597969978131387095190989016559209541498592724218726705697134796149596252388251742765281519982401972620139251731823268422739197593608040552746793196891592020681433687782138371649631716746630904445125199969691225326396881783346794815743639537802990772679014699924254638272731677707188089366748826351420131448747289237716657107326180690227485962497820943644189029795024475599165555796036987395658826234544649286948753118860717960756633997603104204844659549178558878352491655423484378080815512410275276720244597183070358121631934301822959804382990920598615765674483539315986161442492950949410019538268322078411733563567950244554087641058296032599790182492065690698856921128627211301084807010091123561068479238322446575315957715041688619722169786444743390882828212493904866549140126537488097196040872602832101393929256339038668435386089973054307565700463182477298919465665739891552278453098571794010521762206756534029096864870023074817124857924270900176075373442096951816641802911828752732504082531718220564915397642477416042002841093313248117158539525861591049588484540398591661030986770678875971120900074883984645967541746055690439655130542729871103021624740461485238169567333640494425973729793239037883412578156996368440140636881620753072741892729132141626373072938287580049736638423448493943259745245509193158610231531846638782877354188541134096112974266777373978077919361236289621126542095840155541188274130256088058904396500230526094847178048564319925148162690422861702254794500247521110731623097166786867725976602688172913000578322412259652595128220137689416744539410602269935680737611487329391921059947867025863461176702999525886588971780201750149306428298706066333787545222146317317175739018539954677573347601603303234249216238037182162502618001458280073087707111143171748592658643439602011524668546588120822873986077942827610987126526094095582455165328978692728272178041945949588445066213557605665164111034649608528497368720108571737841725022493951200135435127220845645085929637419103603684634127022716483904888298144166010582129754858475121208361122379789643183727875296657087673762041460326124246782241193128218332335521931221127237712301604817687826832913904282412684357248077672878349167955007902398813941948604684588079436564752175093303734234089134006810136867611041385842902475650007293713890248049856127434955562940880879009856195952298918944339890890877349923855704102868112577473876315436568125534438853383908955166257497193337590847606911646948581094389959011822002872127742671420560444548728897654739330220143663020804945920201283861805263518292157351602304739344313512569967794690550625548692875121499911089213449532287098051474507726955372835720439780521918211799043618758705476053274640484020869428362551468748973045337300287144177981593645013815622944806240958479885490963779056648795412402622458068028104083092128998527418054643050913420227906167239602510194529519720190733901426879704697663411149434086770195649385060596774614035413737375315943699257855876279777694763427095291557795410018702036353457251302321109445236947768336767145445373590649128265878514914640111152159549670384342113625761640618875672867648747468673291209568526634047839622313187202278215511457488335402723426869899711041650162403533900868324750003264986133150833591414145589624608465266606845037234750730022605958998626369346969774409534574970860590771486031497797302462480947392340955279669765373338641609949195183161876012127416648269511056671894483119118590576381895038386413401278087400674324771891041185962781111325075659069232818219130598366961728683107899186285035860389823825129768530069885915597085864431008224709403164515530965978774099699628776794920345225687364704815994593076155966486984831615764818205911102920350324351852126480724077449883935852029157653622060818886642990154502562594757961066820451651231641031379732302769146299555539156945969212244876791949635302196468103342034865198005116394388687507286434065159510756971297251726310048891761177065658754007690763235502683236534926385674149683379974780087032116671579196511981898288277569812682891916493244962076289149652373609675703657188409407680501384761905991578018106812802673507948823309214885151972444616904544254110342705037816628216156085205900424919875369481710632656820931526806518607705297019452236916757617220099857999601445888954962101144466246058915436007928764015296364687344574222791858788337489802509459421694578579424116730661871727515192605112394530696251909161015846524728890936441748148510013323529201638214583231052506699409744388308062587726461647623068682938028003859054457418578258236090888101312658334551072122467105453107508738752626480662392744311267848604522683614155618421895470919426540334365192654048829601471359166579639042742465539524707663742638884671513614506978343049863480198636431649186572110737931709534792781992286068868453246200779437693275557809201206207630191628029741955791348781261330395252973972766319338837326548934047694583440439512657760540729892495882692128508612602898659201294966834953609991103612402798704050963000996671080021909064819410765792738817289984084306877000953855264288683166621813543604239105150833753753915932125572164005163589578479494880967568268251428248488891764582812495543867556726094849440186418041128074643004594262490545622170021330828189713015224945200364546222573710841594044364226238892636028141096145513408118999599590589663199124670742853098910239347521871204943166755822612853477943775798825885498420296918174597785734670956576204414582925153531888496662146166904935314854425261080514857092029568675008079649320319843875737626432656579699243526202418179733130374316389069909618338061387568948464592692742402766398212561811180776989070291245368422730367895421716730658363774416028563784404802607700840435927643115594931720725177507872973051183330121170804744051342250758352144841600234674069213775107765304237075866353675988457843154113823661175633901866612061999651972186571791908070585775025760569546284460393361397021917185439712507948777271840015626484207119333536378682000175332058206813758052653305071414376744907549863767965883460159943499354511281049981881514741346385492315907618256843171732501175433261188949212869209781646453644853493272939388076057815911182628235316111031378701924204536070676293826806079553925969719538381640053232445748624655977798248753932387146537641543052811220441708266179505090317610857832465915468221107205237895165946767728143161397488098291536970509769997232907541461276717527602940267471501528595734668139816594085958536130611343739814705475724734459443901842515556312620346128009816979107924098467183765782232751124661145332758717192866403515539261139874350819050302022866555577363746714453935578945827203143189800559599086195494989879522862850108129181954085056489789225890571228829640922480067906907324031102488686841120108568907808394896366396161196941399240526249045631287152762812139108468143422447023294584720149905066463549033820333928011957064029110968513865850962094592746140960035731868361834607251743387270428869008703662750019951254164290882755815699712367228914301784692988174245990605094853504756296658563585025551529705225084224849573204772217799422976783230381682541097476004446272316560400060315282673769707866838047047055341477819093583091336281471208856941461120926369877723486062335817078680594672017587010796665653311802378874041533515987750029956392849318398384767521126661353130309525097248733285527787212226658539281252382887389584737933115329016176393756396131830726263634436236253132414240710269390521985582336796483506783240629911930849317721079385211486580338067848219191981080530704581969877839579238176565552632562098949273797224272249951132399431659557915108961838067101776090003608696800786480668122685490710743812071276229115960554817416512358970011072191499336241209365800127330196205298490803351891463519483847142225219141982937504070710263185079077375165247414623537109069687041710641065340307461719349914365111356898467035855550561037607220811177985513806926546340792011191427478266209741024023103298010819002958618693133472670386403272683497119323517452383782378617528329202800751655547025863672079338751165195756076242074785296040750497241412950842318536968572469171268825163980736804443499822334150214073689169465816852620643728932659839487368260159218486440266706141790386627287046633864330464603297701591297012114308618249252168747012026984607539565744931229041301010572542000858201939231774464144550302936856662239202178867413254614835952938123307591317360221485236932212809399712134375818120891950654238200869509769655694043247602517739786614461423204980668311826338176291816228112996107851720424409824497973340394747915177927247943248237836036401063660111921884879291740884485914219006507825859521094327433203289507345533730467145150825603745655558631534972717127247320792917890517753830410660691893796923833378808884780850407199551915689644268999976211330733133153679317386192413410429327279069238675425065242985459958694725342353428013227355255113961902210065224819097397775490401371080280329248555193353899110237805630156323565361907280856803835290695136952231532610763574493242725995679182397677284143549811328339636980438573995203888349994334037454388658244040900449258083210821734463587994649158439081002283436938182893427081245664789696622422977159294160884814784654331347082238497227206020116915738984406824104598626922307454923160877249627323241913617934188612863435011898813143848338618450848022378052738658853062508285957674708367866644133972628932230960047102129636088122125459483256376635123615519873155747839334952743382314495961312584094930934951447150955165222575837105743428843400636207411679241775131743620299328156861751750125900509620590867983638998330701807681508541846637446059874439193556385039523471910357023650270941129487423951526175793541314173423011978848619266009432557528435301471217872046971062740952592370749447568120285859256067828707273301761114950501817492802771281807857097796986144665729925264935420880037509655547714591352579716382876084147843700665056542434666213130500723048692641992374338655284215775439328361045703926858917652723028784306869832350748071860948056510458319351553615651815168556126631040366254370490087916108755170337522049702642723887639547452561953258968345591977775685525042568308540694283194839164205123148398831160555965469760689701389765739953326888200798071072779956619874398797570464641237571849023908657615982641807852356294216328113340549658366832893576034475230878994206697596879037466343747621995237609082942379553552988542658532186192887634430401932431420349061055539523621701711743035875789497896970006087238265879210220852741943063398804067381048340082932976728272855943068645111155282724433297799114758304208188093555170226754245982675887704528839945116024356754390324752275935130615459132944574798871547505269200882062240474246030640186138500244778920769031268675170987587370923072120560750469186099462773386010916994895736130323215397474851943262203106333710257218965349363819887283970036855502838423211039287871167357488193016448656740104222144862566117859938389736456799491141562444116942533156102697151587732574480481635595740536522385710748409676044677269162951648298569211129353228152721236703903281601896443201573344481018587810124425403867666195754657774018588250233052771622797953826074312294740962011371761056394100401740529565908263530236140226486635056554244907922323671888479417059023319703047865701666394819145067371177709146509443498433267911394104318637739922918683680978923223022760797297317859777383120270402646550183686212342591519144142720703032014452927735886434787623254939353921561866901137944349466555066440896894266469949812183188745964060858196888865192715450269973234606211229973706892604547112731108905076674927330324131383922240060255900193723608425497100362947647039940142842495521682194107389205155426840091690396115039976969621484227438903098150938550110926370771184581699631252093936986867414445058536671901577541615792292965684424995467934339644286706647238481478276443126309462703857249754596098765188144864652437770774919433704411546049008905310497792077417041526131387673409455241624080850155871238040945494086125057561530842634155666042495948512863611264610756972118329864777637837548899797496569088573390460598813153807545656869286885621731446234405028613710042542449982684452113038656276036179541955153265166711062289923245362262607922723916673402159404863199469204385328009599633627103991105987402798091528645952455919359224877803095943617734448816716142454492832357240153847475181586702157126216151768034756032717377384428612486342289285376118338324348971312876753109174939485444837122565664711770593490672080053974305172105680734337925932218558777600802283124154250101141090737790319362016960167801939347408841077863666991037974422034277145299631050392391301655868945363910755096877699913374332486060982334347237771215998580728342165421355714842051198595556152138541272680334040348784609572943683682356550835095579575651205777471387317599878319436307597848908986049632682149379390490742129517772125853620445763277570246986473259117878387739462673925285699880916769926951824984765237708784948446776770939081574483752432930835291052209750235602573779411983377452281475764059133764132748486142357701442372134214901891760137561147520479327446148176474778108573050584271800139316273745881618333231091080710690569543284792751306458271221961424710142636414051037887996350867345530738194161752734377483377762746832301643242588915150090152569973969198731818590827849729006627526800963681726917136085699802771366720159942792666620598254779471453134759520687232186654993928760372968487878474244945127536131397922732625604192157152950710019789654877105171651837462876844524186732164519481954331740461112814156831213171015967720230006396131479749546292524591121508824119324741886562481891311830405140317669537749037239416130577804136446768462698185725686456970556590502417872567086294699255617301291944562534103919107679715498451505898847034219659353457268864758508736489717608538679417897764980880335535244914991029936531162713980034333273986588805152997027611463361762024508018045376434181518352669533247434804832494875502223469536720767152485526984287023274457453348538929734538117886020936258529069823838472042878185244319878344319068225197177582036668290626537100159716367475123046382511087254073435734168855956297568588575713704107138701516311322782248244215850881085113729224822077632516727340953913044044697658000553138467014253387258466902194122598425825892125025124258629875492616894478155119737302911940174721335544905737749158987592855412926803685842003621276689459272775114239470472685884304776606653720589813955860290842813027988619537431166235250793600180148326724799732573367170741489108448307451691955089893112050670650269142427063118868788897632462693028218387810009571604513877812426020980671210861012090685907099294171963691078131526273087447519643233693627348516304390382555093666192341975031452618348981371491736236859329144519746587809152669984197774081778595673181767390195491969210115559278615133570474516507027172075563747342313981070630435256915549395782524968302111540828621814169231021463425738531815066702255181273777651995621676009508574004144635424230782921339111718269768670096131679677173123195543567293240169508249995492529166480986571664414354373401194298828864543980069856361142196986426691655485043301306219037161714934000676454998213509970858780427382285173537754849684967138149386968781508656945443889158823530611541442484010894963787840457586877752664594931110278616528250671319757540499457234174466251252116892357105699312207157837632764762226992160754282326839602811194776423553385378690761001759868105015864887424725486841191386760274413355626132485093342223345771462873785047987451165124359182677280800711853981096414536739910513124455707130719685556016956577502816424410543067906987986335153560205336419876583313656277118524715759313519489035823002421346812105338848329355150406422023931948028162780934760148994667509922604992845236781215618701343470408304572163871729056341681660805231395110053530122861866392324522350875298366922781770802976788948274561156818345664489870434514722158632205559191340258580760240761446971415820570963381926376679677207642144680142217183127669395334646215128700912223561363559230500882801760788018228799310044620178443973470783917984664505641225460490468042759865479966373553558719432430411097677768993688310346199977876166256821909034418387843034465435201766847204723921229207557196328332735639589836246186902192864794141388580519819039225461742044660793022797063608546193575813044565553875144603078047133426454491197585460597173787178155709530206909631218347488291912550339515932758931317525807782440543274478299118533027448478138528380809965744780106880911061325339413189081114313627183663138460895575782239662727284640416812058524198033636657159809188567454568738985758821906814342951946098442973635299738807162341768440864502766337832497464253851973909230649464752220825931015916116854745431871509759846529460076270135338842784732777840868715822003104542999774075130519965177555733750155551411173186812396361830404036519301734577598417444952429641687340222496509074796909037373865979605792539904149255730904333471300216314553078921780046159987508909080172411519571620116688508715885024266929742757560329919692229842914376687261371663798196676224302318842367593834845304410214626084675738330499478460385960954501985794719397858597957981995720228287804905445342837492218752526202152247046933537033212682249854109448183281254511704968533776909549731029124679817164689714701419641076078993700674882437020075517640654417732978896884750323736807561238784979144810169835014662393938933946852377578701858015527281454729348153501212746438352125938149292150862830351947547505347518587950769338664737432679596445400812722655637353525476521165280252262162115557333847647260790653116256644105192616020660317922305197684473504064937106015467775556477497029500373636093553946124780673158930277766032080765524596604435989394538785403013209096468969660113598067296459874841024869864445998511122790694113171379111154549868661068289737756886227363524105224033163599841713558605815552162194877579818710197770361790415732391079876565373226325652994225040981283905939556381400913093791002853806981544883733256248847291563751259103960542449557668696705259340518666286579762819963461234217294718318318737165204017179375341816033016524683334751184688783416563427660897878353768881858644570337560443920686102011220193459862495043490044444944020254600024452798347629605032421030364755519541332582033441058214985348957646490808049568821284112417006854747898563410964375362545043438612862039847327022056795218365267522705595777412924253795043141057065339466178089061286255750200679254470287466503077787137397568475493414155849433518049311504055383549765348038158591723394650046423690070730444350582188888982925012455117561140720684816368901524921496929794669013140000797998752566175388086654101877256161068371859940694313664387942102694655117876662704224648221692976375927603608361574408917600892272002634373079309105056328167742185512992719503802185284666770585016689881885513174630439541423794510049489546704851180109734485145151712130247326890974190925067345593257739904757972107349013515862700387812674084514206447805197329601351988992899344861337117225548837046864820300510578219959924310133429913524715373057510072497010601974003986063185162791591873234874226013593251845176393726072757504621505760979265843234165784780269172243154185079627812042563819612058205383257768887172079394276343673987314750024176703708257963855599498963251740482247102758196725081724743067903643645599565669882856206613641284642804276170865938921804501871394741271230579643933357376328612907241965600274383815624651133522937977151197232041054121354838670931921748191404071606122216328362470441287950878062409115137975569766766633931584642397811284079440920777414516788446797330393466486267378700440898719512489154172707033741866529472295215682596332047051044773070679398299626303914284562237181252678536588797574617343951642349680654405767203106039586013497653888139387747713297515972898131532810514367211790509174568022554902428495653640755491077026792584285722991889635992835345705027537808239772832648105247730286415996884214141658163521331153337110960012424966208493950820604638072026911314437462517406288140669809947882853814707193674776309830102731000924303942084596612943710248809874388904314700934753190259556291127785422022788380323207078994427337525796702701400693726796671013868979532793445646810684934375668693874400657814177123080152746106367216533424702487777572623507809500886077884890902802482685729844428823230816429606025595268772599317386692223801011963179035417398365891467308128741555268126247463311764829783960359429826109819571461532212779838489457299914560648269871313843139744162392067121216053821652934491622648660093938476540229510886348581993844919330104012171227180531072631402010667895478430952957106428637979207407061188090911047370713629893243314899551946490603795590681422548999077198142734977126756462205734657685556434787113961278105741847003891848588225993341718274204091558254482293919286991103469858580425139125606602105063603604329163225316236890150164192318794171199442189246862209776151158299967832577679458507210241355358479260367919963966776078124744573310012401401259597070861369878445601364294386334360173951511824219787814279606954975813166894440485611921378722597450269756619483271523653940404284814722191885432389958797509416489923323071697563777290372824999796835777716851283057401024719619236432568314418244328611115397417054042488173184901145248699048969062596572437869793963313668127889094745635530887569261270694799688103272599435424857581011131561939308904768806897335141485077456200544163411086276620710511519196476515867016679355189232895367697449042854340299877528099935431368606953250218697463672151304286730731279609494081082823643275207958298795021491285630525071479779655838428576170295266711518646947755948915531509200803761104966676646108497779367972821915118959437380033276759208218158326585315466627564500441533667529781307316825277165993710378160607427280868510908610305349572332235004417982838904295930359218460137856197164376142161105665349845900009540418190640429137839927615981004178548186176258523561793432070420713661643897392391287683193764310177855745995912773886109140262844319776868018982882108568154599239957627909238662553663593019848535837577132273841378704406968464479429419836617596412244990140398548508097050692354582423618124817175202398241256063438842419464291509483491413209083883424588335145094876808125011937851301137034081580961435251708944740844181440762442284515159764109588482511529995379564515378233115277970126052619623890548994185594077560265151038493116915761122499018774177112663886628239705703621240269095655514484076770991307224441513188992640277632993389441520804911472513858899432288296702543192807794406246881067318884220998563495079842741650293045966707500619095845368916045779155359625746514636862217335172659303775519191432893445975449996527443695749780475794415617956561655888089271110091903559893665126955586128026613764097241397329773961593544322167976456558413676081485589947266511916902788898038592615465616162979146966667580646852164506499180749729336449806073259272002478729366610396346499086847462137706498587411023654431853362790465052730980310495426194295479244105166277167973104125065257078012890366423063060208910247383189229427998680914912526014852838112162865230794319300775557916995641084263112653620497366213526523179327536994549180547536881027220376874611327070008034579139658054543341259796387873492869919753808951843450516836228254192465809565401681901492951803192372133206500678596094370965435500663464021762443807151668568654912650390639790580942792406717039591711966006158293807679313944101479018284066709583056565281817728108868479893604542577984254726478567956139863234966871634231789900649947133756630320023755717479991460342936720531117010418011397812754547073618155416327371508112209967441397798866495469763838597143021007641068799567741099493813657757207455222467100911440294765929659998641765803550678810631093479834270500674564989689054509173136937406628930507721059804040741734488800212742162950469646445717370824088526591724535612777036219987506334279803890170015804155799354219944665600508747221471267971730923776386560603241759313982931603150970946758353418884738881620248351774525519656914004250521729816011502779241252880881476679499557452053504592975752956343238135895190281150851879740667521781843981230785972386853308930143482989919027749709361400834480819521585169235990158171976509743560365659600212982743596818091417968314632136858402854480064321131307368667369854892818962006455334546096474274895765355483534401663285174881483921791645517026776917918757077802024354507471675549328566690495249636906930271355410772805222948287231397728912594698233219047517297633254015758618511413162905736597472801348629794724600441983893917341251611972529312199043063434705441688099650468933003011391484745055348068887184604577251378391988643774901077198948970431667252018656271940399705158971272600331887119999328011884235287672002338149199630928589060028899220871650133632280692998007975670578338526581929533673953278597636387154711540618376578587968121543125834908005376913947723640534868067352389722381330628428099509546477794802171014158002742188523153174519498744452645159979003040477331320403237387455335208615592168484886147770623448884820174566646528903776910905746029564591212182665059055964964841974676523607804635804014061659327940315391346615521512274667265281169724019321907837358473758288188652663079515022952231515771106437752957347733961584323876737142268330416335629520355037556356266589048291975085761888479556933733315136847328635006582497333425012937003246795441664018972819896585915853346632802749852648633674938294467596757322241032787964796554445030510286677547408096784891542296778709702924754563761316563024235902983526274716047739839538721711852773214380258421081962772450578984904381657334780246637819030584733185749435981622938217392650469773514481750253852560934992337531044821121014128879006928105727291232171054584056860226433463370718353538213068659760151479755769980531822751998385180729798093397123825742077153392084691786668904495034673440206739651197895721361200864273376202689151971571130733435256960863325067885990016893045257977620838863061799383360178333392785408016304706859797537179094815650010001185240617952897569260437773217279169691481251511780939368294781225926405949432730268728514889920116007332515768497122465715808910071322254034372296666557999828364059123754824710490062904867341114224483191955157838806414730439191342747918523773788992871936889963646422840267742922731084852087401736338288664999569243560169129612123316944302211584550473963274817200154371472121290482946604345645345733779889220587923471447537484527822286036071303921290644932910950609842829318939419614079296951909208691670589008862366911618980781889448419927341720091552891247877736788181114518332942224073093440553722252193173973546947581082570557636173073391974599890927986513232452310135033782644852040048462396123381369675321600545656400911321482873225565194150269786340183926539983288836876280884075222766280324038721172343406307678234417383946996013144481877443202647378896830025435299142476704436242024425443764337763856812205383502147203442514898430965986361403736837399739039777958594862561734308965412672770285956069079072908613291420433171485671103756501786363441595311814838807097518149280877738828867830885431611480516340812739380630520007103586753674949783021872594213125241120816672016145285714086861042869088502852604932892747361811813362370187396306162528004451478394602960682269335068798881364486735156183401074844166641478961863808072697979354788685617361829016045097572120644586474871030426815194995487283401125586705196294092761922307960366539833389828093366721685699735096630835584590302267761321205431004827111127944883059033875310299422860465639941045769133974270359097808395019754350972532778828930818079352670644699419481929508708490894228003507186639016056487900407716174469025156015495256530724484880227382449644914136039698223260778158855190222555960855358182117063687997796832277182480089738531735333434347065390038320294603916805255605652957400187147496062211941409662964023871811698326627155212589848329605538381567594589922511334199234870266984985018438811546510313045989761998495554578781184848125995672452818505674516164546859465184566310284129993639720239994716950739484027956702342598964610508214191153251713063426218188158677200432918502228860084141757857912625169879722593438882474874375911145178031106695388592599999556211508739332015514798785764616336868687234619284221590211082994601613244308370409434584522346487952676491444168704894783391083899682735005602431784358728945392584798610518660879268626860668097353460786248091604597817532144734037643377183237022804478153711913808561540555249559615071817342556000814820925557684731864833903216041349811294587528015787200557653032407746010553304355473341108136580805190006323765282943180082777191926859353451057460009537511188497232288174570397351176585516540747672644361444979472067822110819172331872979704959929640139548257594596645245593933228765263943482102350975739450996916098159801238990328193811602556235892061608753477506320612409496477947415133022380852100845795153149012007009077944818620709188121788617321424009301351635555393912404761381358874280842991642604388064808043576376867795713719724998329807396393459265924886274901164415154873211292420146916655843025690502106552144416396077117048120562788301679227505356827947856630701541677956709630478029369064259378110928134155244830466973004010324323765176058628734275081924453737522188236652220571175789228200629987169008982828094304108771312849152740498321355289338874181368208282055348088166013360542866069912934382058415244979051128473181140012958985959693952047535888121650809777420023327582523944931454643362423451027461519679502555443130255108336344132276278004593503740221232556589299660466829888820201677528409362894628802340808739363540011709861629218571298874772796758424302068223310761820470673081864453769971305999644324512996083451557139167701091722784116936749909775434047166145692024652031703444248690174811924690008914281489028633911083427657012550620526119440677886009543546230351477940457622377216822333762640374811542015052846537333626846624368224417415330836022998583943472859550170343435575797325946077404941621127245303545487470422184775039009973969496971178800546763629744207347799669643440231688705669368615526052919046804554135227582130522241053604145614061132594348156184640026871324357591026708853744983869406985349465946375424681790470662293610074646321645536054064808914071063649379841813152728523602827021676663601328861021698062507162243464670785979130812633180104085940326703382367273602763416215072848623478611886444334045454251918117915062984481833395385296556384702975691851006487602538212246906043206649621054889247765434843366858356883119012493904903172265920390389693774469029697926016315014225213644787523518060372452863485490538682535969975415755711438515105751666645853791413484078069040507391738899086900423717001847860380472764968297883000598344001239015654926708149152536470005187424814301512931228302860533811046341250412058732703548049470055259898587191586350270002531366545290175087190995827917434861779061117916366442001636291844462216442520535715580990640486546705941283809662531587910551695421853979220967734905251455925414056710967571702275828306754508979621442834367149002847927216053652976677988185548703075324072661151310753293908132587641500969044407532029593159750689415679696008280901339047750866081828400118179102086382157867499791172119617640167562650020834501918262459543323081319244522515202303743396899841025862656635916530329221244091469393601166334356420126617193579568150966233119128859245255031094161260830656123481777152281870208360653621135412531948083708174316434259189452498768450941740033742729640645222634300013925612295839702281036466727545614586241592477338759366372428827776444326593395842992255894682315865501408018626687847272307606344759501209989785171498587527438664551533543831258258172497558882354096219875723109520745246793283939906561744868220238237955111955201569158048793574648598982987047328717681907789042441026319926202322935327022862861636531800294969489286515804799240915806581982675030513990400998221396615798322589897950351718471054212908173727075061968404612099241294934668066940551871377515524491793934675378555446525029987912043499723347772939280637327422246145722177575815323336966094113836521975210060543842767510117354010622289725845217331206459405179355307590007690411190599547349515068575566463294254252116232812471811310260472112475403185519222243964796692546490133777935747786398327501660775426820749550735207705754930373757354624279168770075387920565938068289510203343841550278122160036457765887857383692376436105915294426707970189859339162719920650782838703454233487185652922044432331351426389102253079924441575266195866127827986561290990207679773291485503664560653182694570650538421401866072087793039679272382946383917026332770486222830349538269808484631010632663448297057930797398772356887975631908870016287929814700676294720793538177404663713774242826123083247456325420224479692963375877292236702908285170846167410863495241257289384868472541707666251008361942641904494450092411897719010007411331141650732646423490950300714130263274632918136442010922486986598700386397160813221236497011813408637953566755818097920461439453116644250972127299589582197399617426498987191602096996421660936025131529179974183168535545802898331084264200806348152455749738674756104213320495047353572391346917751679032100085687107375682164342917281901915739809750516670804449701805446923515299411260271614582500034067441270223102874204388677389458968565361774052951044889832466868933818592443543033564640176369272285364646875451042325729808977885423899513404506564732975700495654551647137744095336424324755377378818273079857573954489399772120806847020454996859076599015380786356085992236928935877561898221662583856560780096988579161567102254054406354270861444987007745662798198826521215843594319409487610352958160263412077139037924373571566550024981511077770920249194316750203968554243479812574567926375703895244773684118495236496576411315467859637890472329781387372905927201449037546531639599223896991106863319391128507456269628924903719499906285951903000088379856986806712497853076201977926194561565385534114417832932068023789002076488733532307297314401173371598303559745719559837024218164213630639544517355718709998811356143405376010536326548308553832828269976376250478590309305539757186527905313638530254122271810960171204695139151215002619772047662310526324466632883837401022944436674719335875333741008291259095817769033502524944994108201566473140908279211312224003071662627562913917676507585351778376148455677911015398248619623003186864473572918706574944165903636943962347290596067057218455581146239196093665586306126079268652254041782660011953482160468683013945855700520026002318222830372619072318181278454257971560991947955186705357637522859185319648728058606278923007077124164519863047418858823034238330411494470197966326104837496249117194683378845947942055882253498307177679917127049281963223833157633062291746924308875440260178356866530388429320196262372803666491405034547365570682252605190078641868776773598426522247243412801178615065416021824911016012065138232832165246369638425356390588942584018945498521918658883502792428385300761400815268921661082752272400692496033698432820440883260300505870073441794078001794162779654766446927660685921571365665318986961753205524614943195518908324770430155175868975763700637312051992745564672093678226420131696330226208943930745357302626316262899296037224967344305716652742233892372912274682674800130075895384960201840917434654003540153104013110533210560136412982307610512377209166712483578608455028089044901604164408654106337519640960615847211148459483859274350627567228622260287951799308044387315081987089561886737227195496106751476174465464888699553172878929563969475567347360721407907448400587960628124517196021372384722592929515205350216225820806184994007605329413967177680762336430376410147167956685723834679323648152530937062566502883810199881850177119083703549842696081743076136821894106101877600735071843870473811430731540701526995357639884782861251496495107001453973934470452987126008950668851614925553353262071977179411498135095785080011567307770851301328687201487693171099950753415168527100184952525545523365969750721078120483353722941806708621342037619067943074629239316693558499199779172471818611353900793447416336072278422668968721047603022818161077587964571956444419683673790296956750394528638659157568311060052293787547537726138448125021077546664040996069405203270919609841986371432475992945010022950473754709153697906176507546944028685270123361948702440030109380784777006014727205964480272199722252152257051633972420792374984616381897362628666495373267590938135208300278018442328614848784667475196877522624725533925543585650974830400305773805717887696977593791264982859897751903491210477985356425838349029870916012576272767522754139296780115815040527517243497436538918966659844349408395925588341762233338945770847051982177379596981551047155188077572497590749083130757459333687734270349720242883733761401997163204590489192325610811467042507876949074429488272430130572310998723448640641286989313992178568247743690735169101014719788975892168357175517885236303308414111973768632761359019464156608627664714494505116929027066652545102351168949294015119509587788592406605992471860280820867216864863866401594847110109255945563334661218138797699507512005903109696548749533784692392876895002811692736779098050824342467768358908791686664177981867851295683104994125726300857921094287877180030150581374260458772395017973661516856206239733774787552296445276881572655742837385473386016076532595223794279380527643713578183091568780797799291606571437829980018403824078469205834168590265437728139947249736914221822469005776949274584999551834699193066994768308597139480417875103027527378787388424708271917978273229485787325517706953653538029761535145931758058384786953476038716660543634995041808618922141289303020888227177439078775388389388062447083871660347240072125618169900580506008396388853570597661657803155459810381838729353803202135948179721136572649442891628813497632851053010153442017911203880493040520514629049542285590198510385541205793462393778762803087532397355519080390556930725404649559086682736776811682309289068744642634526065697740673735600342330643191057229571848386593140160731896200768276489919748112260588096837278998104381870652883098694022123474091938565458200605419574817742179511122998233673463461609645362473957902716796079141818495146874145735207582294571732993210403030418155775200423228784207050639187760089385874185249191062943565653649317980934685206507313664634221294158777029390031396589431716290143352340742544821405436392128928850189409379240223213440998535855244283612697924516326443808562602821006488020814826185876173500700644306522105630209374915371555823386005498920885579828752519025750101736625629405744155865114386320618715333737185520970119765855559529936592743246344591961265536444675849698132537590744984157917207884274772071511167070912646538579252106488003079059716341010118368307203809350269537533198428948967161203864450252009633466020379955379769381485757974228864914528063398934769322590587398881290575896783134169742396951416129808503810364537399879169534984039580910865059533464972622210559462732877390734174353101255743984850231154328814672697384255897745302840801135074331170847116061395186581719382017305893869864556527998132672191412328658485797476343515381890830575843612017794899441634108544633504545635157834291862071305647882082845163168735728532057285725844389791802599972893794093401569855252363044812690672286063441136427842687977180951743454596089062044327380357358659097584474667322967998955293593794066059872566112274733528956271333691093746285322371903907289718271214028973420648717835283123107883079975357299603665161782787806965672137235212079779930805428670154092332653308870159427851539451808342214611106551636575364959208153595639038276824982584941396831058144904529883466848273091081076767468366817105529178671641125037799918620095172097359058104216767578190050169124307251453259297042874946797008607914536746782709489721411848311195111984765125682777725092777353206655681995407705243598062531329070648223106150699429421995889623946778794254906985888596772456776857047198464974037051953282394647631584954388842039220227890258913643980083739207505139535414633433506910145183155982967598105359546832414409023656960064639126905514538893844203286129243286466589557726268340602556945938061938386432368613453166052362378541004172980690821398628007933273829782854573179333235900964202178882700304834404205767310271768763160468013647559968767717075237983324949985250979969856412948605037048070698449872385185868075463463681215123218311612500411413333077921103113721408453027183127153384084060202753915232081111511017991704931119947189666682137093851171328572634799583109746255695801165532258176555027100455951795735892774712156880884069346927984049494728506455567766366821669057903869879967929318188843094484918283616131758818897254050684648589097059992883979098134450064781723166673461831249383271924446067355984761022160716318131758831136057858585020893757664039117181339660047536625611018077923512553062068634031726975231418555102116653036260844303391798262761107465639759483417576341876050942412184547345549704120146370671540992762203996766712081191648540475163226550277020435123886972723057323394190386937406391998819434727100472482472218345313529387597582925313671250463106355579118239613775380886190830557895718400750807273569958009198377483743378262309530399512397953263173627042413955690120459946171761874883197286467370804516336492212194660214579263443186439401946602461726018401132294551040901584874662263253124472619124683416929970151315696733350721465961705274782598289787209910512805042336307231674729200918608707919121893706134594943322233855371576161580721554430226439677283809134841105600503171121445149174692619545642634811671718492727168180725311741958222713790768090414597210323725548868834203083103846578549409392140716681441760085298833010328910869787834433853945498218284138795068620304222551624401395242423574613795226876034995186798189522131818333013379077644249168118703818237897230302264740656554525404364808650038954479077877804609998994544371743047690137540372927379595163604283480297074907498141697605060547685849217371399410976554047219485626903714578075736579390429036915450427083861071221108688125318731237092208266273454998295656330799952938965303104730474597194721102621272776428343174718734149143032621342987024578432836608521919861069203365671092482322982012845225931786558220562418191697030705363723844884958425486468014900195129588768305731487432161274302128838603199091066986859906065235236581920045340730521661442141527350925248347663808166061217821505781898095749108179289811964916291787307972583967070384828297271171540868283123343604645707728289383309571102845501437248992886718722078207122298486054988526447948940079157041644544843352486202675746581957633037451676495064143154812108709536437757324011960543072391093010525868763581779186942670514683702623925588162668864833875654736720509138693692340387899590962196820469470193020303124492578563363865628586564599628686937372909224957749343627816975047728804595460314959766864284032403602529571044539101990996282534530712187366541237685690742971518845892575493569693450862556110669650024918852634145129951454785225566847634910934674234066925787426465275853918819060716659194675235430112929571821829727156347119944849002142799829178466293536396544725688759220743653598482140021815528596603641158191755468128247188419344244339208709285306880313001794125117137165122190415027814130007977125505635592488946186486665368711294245549582751098953922233819468527491734006372488872234454940059451041948150797273809096992049847197257915390986397603988112831224521113038579096874041243233635339888960608509825253790956314583546708693052241718290599081170161255438194910219178609190967953399440404679409317864059235811628060090514227437426904300257433867432870764123475155259047373060370217862007945437203102277883492087429100019734715796140494863100777377678954315508894223257565595209648486040285154958356102871134727785738807770997280556284177068264943423977797500691016666418212356865310765699569472578615418707539219496093499517269235047558096278703220356964773128888933425524809502468758942930780839030673405577645503571450643665237865005010849457411429338418550465408080511114772331706919980195387995934605361009832370823743936663301774613855771464815617160163801437470559511849753783588512641068000422551973275779695056539736881508984130005189591573774448309806250711510020654095851871489373883458642458939362663643808984558709758569449251452090286766563555402954095824469055534206713774201788630024004630567541809043788819105765619507772141603105765536183004083012417956543096562316811632712094208006767000340682644988340851879013530490714790030677971429582698604009440588560085390786765844538192522999049485379747088188133399880857418547994118218484610954792588733513110453994685244153480222620514007119268486926825605037323531792825289238379648526292764417473503334105795828462871298700374864669114760691879108490776767041327614237541634810982401114675096754091971837043109229621788423868367849040345613112849635818283881045577063238604593333769399527736776292090088934747036704265248611718056482714799073655098605176227532322160363813239810371401968210978855640432331126440937570439567893875223936643501689722556952112208493822305816261455096067015939997599081741025896938437830696343388394521781876359283073427041822495070484922030905641137506379356085776746243275368921782386015884628280807974495774430494644199754753805723553073368074995706396308096966843460531380569380985861751658942807568999215871645813568903763971085573357290798334712993925590601971433988086878784484798447687981975692764514171304221328951227811284748403154988637453600585412263584674335211981840183755558243054712103790715515495804874720022424456027206063438922892592734895890934145206152943145358280720745191976839730027712187955348779472680166126600740298577436128938644956677861259909934568436847715280673909627428738216440980021929839562120059136834039917300405475075139032319678299758643054909369573519629055758764715074896449586814362763027821593223092099244462875316367017511960483180278620803096620242678745590189398240800603864669469265640487415369772784871805095861792032389415800337906446918753848415215946972551638124705675241507001950773866697570676989875962554626685788055768919648618964156822130697405458388679489547613980492085418330306770016119416550043282184105001980625455635769551418910036888594366502293671822138762530004159177403289308349674163811777013016846717544764887345055615509517300677160085403345407656844166260609836263281340771461860873342531895727599689742080819471550938282222273577974610482071672352446497849916088531936403776423882651250196628048402818788873326674443650456370788807871891371472458797833640914457543926803298774152659804357769819384202784514380413395631989042027527528999727858354370330115041016417587331140065476517320469549533014754076554013830789781545221518567333617432315740889695907964187458672945033724503711833210913096770185102963917935463402972904395555544944256594220362052241480713122803723531021482361088627455857328175389316591987428268787796432378393631234211463422480965135906791404390817659869039101941998413387547599310457039879927916653625424873691219899079646654479191936099168921444652396975894044316394373497941758337230437515025812166004356347907686361069026969721657289810479962102167714423929175908699210222733970350750025879672013036496198686829654391532336166115382199366955094225825827436244034322230619784257356674023943853912196236584578676005443675672770412255558587279324433707123903713840756108448025923969327709750491853056031281183590893614419267753655544555844622926476956568251428413368622965957091257404011284645224539718086804954185186232646287949659587772124262356973151935396727699038107134302393199011608497166425488205757808737045716400282425766003669254052717593210605633036448198154830403895071513743269883185144812373416882697999554962803017939854668715419674652388026181288533466517111309614300621105595412174916504291126499699180134463029272748524648745633228732877251660257745629106966932155989590410935859373171105783336551387642774898513866203070113504551237133153273999410405790940732107621555367107096557014727337035217212285596330466013614684575881567791120344584173287013626855194744607778284981470251081262636354267263223044130690388607939203788490239029257961356578293453997739119975907590699955089590432306317859593018779009125970094721033810089451571490814059092003581801800117018748172115692607349636506825741488728908243219909513703056583283452461987164839650491205349379320358945892836863028118618972691298361541000678368535644644328452260455650556964079289713626101001919099542318638659162127055471975542311311675921765604249742277258810939825413786162082035229779348132912895760606166498053578542466855526552137677765030542070407698995586476309554139195981927699970892655808982377190511280002273125518042934340238202749087704614993712430895978726708965707990531904862558999177625557202596548531339740419969400979245523826674358082866820932830883531983129481487170740639561436977065919909806012727498802034529878843998173384043277392318370431186109508250424114573069372305266910633941672907509446311456332939542026481402498278425968187752867620151251287593158707497510247355040484696391893187312303937925594574610748301044318182311494572801782746322987340350597725137529225788479052660475727694949316055857676976030952110316931484178238968409448555813554126954771622405360634991436376933048255266333757970426021861532492778010629890571434759816537017660318698876345741136480350383038023138719361042481881141154446094752816663174882462880626768792049463704844268201866038420927004651466817750282468987398357843957668047561488869933888424592751128603468175485431120531543554724932259856000707351014390848451075455777920903656634168967526128610865781433406074759956280474841676119569510050895902202874149914335374188257026761996882362848071801485060504290036196248189772565017906286518814936589761066046551887254704105024292312008181655794812056286275567620678627919701611522065405021721739453226976443830228211691873921425035294840793251046495520196944564895975912951907253602194368275344169246206190349079788887775741450806045342734074687216565848837319020818548872390787248329850252646823489069162648415210808190587939423941833972696892108774943562396683950467401654628778320040142078947575861182379866864702468022476358104276135319478649582806103427523398581950842057934713884363346829542961747698143323216837014895161454110681150479054327297884998157191590595337785286869436065172903710210788567151639703967443384367584826921347334049585788968890913986166238486185902124292393424480093662207928779771562370106791345451371322916352243220310288735440500595787941706202056771440840863383567232824228565617477651864786535513273036326280739637575955206429167137988158049753844635805247837853837008926529041375648638159038531799632903522107774422175131456315543028233493491812147760222892330548760732211459126071199437280962479545059607771480358098231044602223138278366735183809214012218830104154309702912017423649875478481237388272386067301097194666343078322362033838865107673995859111410919293493192894764759622571772036481782240995262746394591233441654808580693555131355521151663168254968892438079768954298742270273603789250251968198512890874532148107506319565266552860889755260666972604660897956153154557396421630836733043491014058164584535171240905818619365889751445612779396296491318032365485259848327141002981108389599351313603657292901724311215954075624816869669882130176447890940046370822435150083291832746076940433131329213241584612783147938248218734404418169736004124315016170623429048922906161319123415021457592950315511309070524307286741432321516348124029697635684190944385493001106235821412371605286389790142323152540118554819113838902936959880379432344702646136338518067230189227648123747847727675389333512579849862070603074943228364973699638705941759936488978881313765710806314754415829800025294502877747193413672820219028465620515300094819011015931951267456075092714260656537003966657641525388568089736529000974675801454036424098261929436539401792169894753286984830803404946703382906170486448901293628799441055651955709989852327655932094538919681166755208954822936313955843390622609620408372031899902031230872756367200343869321272592153380670054869221596200416796921315428544273017962762659717202820830323944048053723356895746804795202101632523763957240546097329285370690982911024696929416287599047807363771273013089559234872258759398659423677507812289447036948564603342766545230593798751663816472886045480705537461592571532397210122244517165160957354128272310588979540949801333805912106297242063049036506375511275177724946086374139407362471619083425134257237862590874937061967241294103594275680520698805700994162249623353042900425793600936431539839618314424372728076581443756792491392065175976217737235616952044826342209085447170973484547358455424305816677284219083774324827670908296436675525747025456712442789726710436239655843361805668189352070971398851790808665483834445601559544289308362360217913631540291163302550520056236009230373266364399966330903914045113065595865372887538234827752216492433464316303943362001115470615658775649228986970028459756691095449530515192511382985143944900209312605262214053468825573214531198372876330056725745592865363242522944540934700715049043864697612789649995969814173535531328329347973865241074220942214893443991664252190861141767128268302679028377972289006498946507901648942420636216258957131839327609559409044912665338416446794715381196636591732661415264973745605438294900772370585552654862336758700670838437654274710525446912689061194574668705051465755691245975007083082558692124505979797836520273044138917557111230444879195052990410070174846907124037669267531548748334388564146612164803095895993193286571277976356530389758572824738519824528036681664095010883330123889870716914378916820873400105605050145682219623387334510356950286519735804760882058150327370425940660912930716897917605154272797649560096107919970423785478583407028820761540849256564473371559760298259367069613504360969528456197272013099427109712161014155008747113024782896116259435101542377570502169765323021337007946269393803725552671215478799262743140367970623647836753715971073639238080878214001179981039210861734964515376629046858916469947652534494822322770767138749118468319506737940881722450813644066764111334168772630779441308541781767345707706568611751806658946408670933179162064841661307508667476065300211867487494589390789282027878137216229159125600870287587363328347134247604827254364919407590529945871648562743859445373794607672821625786455093400024643592866443130629005496836304357145731189358797838452568889772465908393019747283959145976298338404407071783059023573195265144248232631550488795867753917150429559568825023455049742919521967382994424431338805611114765534686962790348039240741970965336827827787107113394417888815810134123574951461233119071339243202147391615758249231235239077507788153115974867892083019350559059537825664032066970744262577495915310010601126508350730835147773168069769632483029915870298738528510710213988901838991050435829914976289919993631036071337373754706342854405757186844574306750939995117465016303161977186402619315108359937190426331482727321388534968249822473903906748501460173866553568261520865168299142083275964822726487358541463925115925909700025832720483349087432793532421454214107564386285148285280763008796051314845571467223951212662891218639518915525155337118411421120930804999831715887251692587645177923483061086307951958235334035472756734109557642128805529731084620669924810637620251455689230994761591340350016531860136685181599203407169345345116700326379269544832061578258792293045594398184626449301846867920127782857204135287677687172772125946701467952583507825194928252149149420325296031803234338099581233810742958073569985335232709618049905374928015292380400334613658574426673738423721596942961985589199268572309302765303482916649270083419034765691867767244374610037104682907750046173906814342945376003199352128226109432929869240390790031848398608864590198623574097691811330761848255898557194722032238798540777268343816144234156881675584884366385125410807449467858369109832707817492940524882406979632443905370244677908270691829928872886545956863772825786615903345985281358626687146987229744370927743215699575398675319444632754263277378533331024023360686168708232415401980767380631735995376553219012214548650637944872225485097760966555655114337222152858235946049810931811615438141247482172841342895990543766885522022557633480799133818340338598853457329627260740230299866717752504843787471655296159114818060774763287520156643873485282199179452632599274498791342000400144815316744804923060957366228917119797898333637759507566813578658307204506682836322447982230639718367809871020916891623413927120178043333377268435074048166797980905426343127295927643724450110284042787230192454742715361099868751478638238411985852058310315833104871870502308037773326832553242794526194843311642797715051461898914431922492646210705452380287463859686962100801328484489105167063490055861855417846902920123510407263737463521718100190419617898063533311149897625080270181123553032013092498170285800374758054306394762055724584264231915371972000535403344693906565574589116173502042748204214904444649492275404264245894846200115076617729291550270359264103734728914475952389820479649190779347572692420384316294379464104086105361199369296227116365736436339531202601378297338886529005400384823215890993045956156325699658953533810884323904730186230965642650160872767585209894507737347173086199484553404913335969462255142189845546437828095975110230243764893895505350315824718727162100769474270582556941438662335652299986131966584704121527766607284852214247668784273836214803728597182397637368246396967588519598712262212208157346951941530346581057945770861268076605911134837352712586064301391166822982713046753149485518745992923300138523526388459745382291797280966367802410771050181150156208205313184490690120515225917141475549022683418372115685242410318353508412088625866175198177701464391858021611418008528174900943862444969106031527471547751853266717797441115645395268398923316593417443808954471261745439637204647355990355128850980307775234749995762173985866435293912968188618331734615228766685855782652377019645898731485055558535520883289340510808251849785851381483255867568380555315153573808939049855817058781956475408917192753579820270160741911265911235850591876256646890177886329420405946176577546663615552638458638245420168572029293542181952634814777373810783970188968027444775232639753462904640210551188367501002748636206125557214156514709298900322730095244163498924377633594799205983593541788025512512492451592433159505148021281345959782009532581735248460041332627218350714492905849220875514753425646822265274847967465970692226665619795015242162218872753904675932231195841540385518106504842363302007814569113717702426256983185342725494917543088358393073401627870708029522913729784616890373166984211347751703211362977210050922997530120730910806193133587217582022782971588093882493282245536955515127229547400373145759109948975584269887578284792046289755407436256645743530037431325737050943888146928450657265916684511550783801178915192083074851301164743525317219433128393172005721466348775508610051938678181808449757530508443343108481282518253618707530867113584711522436255569719242921766973511455248824973443346412169812046144528084354311832793815327711347663247703792614062861494689324042627840777772597192969869028771115318260159797563026040100679318562143148280314097058229895154747264712994687117565285270340566831408625950762039463006657575911585670854792062654508167593053828507581992913221553878772698393454878446673837895490392014111470347567178007599279509444704415531722104324878062399433242550744735214047331645657199807737791596907854837029092433141804722316604260947255057704997584181775007992491961248659449462908935882950712254899689591165173292570569213851313284667652242652638411222467667839589541305279851502256060771828133588050045263585182836792257822676242005860281665507520324466222759723574657199799175454647755870697811940375205390787214188237954065694390029002556571728019894458155914178104881894044514890274266055725432712865422612061092364127985166068575411648855841757945877437570788421235380607766464549498849684369166155520181334221615667497616555829339996537672117519409497319733179586215647887807231051363980133827105232320566882608949265948153597801809107545428083935070816844364474985740657821720977862073165212708164845596848403717421414276866674166956003861337300977416659066403042601975766579920419634621532012150700866745838498143916371681739625685472191780650318962076158038049786205323492789890424593168713776450830711895706346296610179439747514459087047485888123235177325426644676071232011483500125423334010946813221801005702045255765249161067441789873147480183094897774205849974894187759179535194717950962513098418057256034794533267777719887936716803773664276917171757752151393571609548077445312551640729882985109130686835590954061916113940298875855238478140688385912899300860312955060098686270902363070348344102250132073414030188535025500048838485192065534184660995933291112118438410842348971261817559398274543502669926579448604462274662981378530542915476248498478762839838028353058457484804836561028584558862158799238344572817507924710852102269839072822096675779169273037966139672247961908166872188190520357337501686053607491467355745685595752008125189183717581352317960749485484032311188529303492949898903164309164530885200329803229656813286560904973117582919821338755946458639992276820643377534544286783155472728187850273525919856456078267245597359917687296907757814491017931987308745262168790010950866111368987115284124461094986717223170489492222891208040702401498440492318872307239932762161749319853158693665081499815050734402499644939805492167863383533667699592357411266026746519986566772460567068157099431673101524785700520815615669436403610617816250304730820887680939204279513523070736853349144803685561396074388606128191928687289974760637796642373321161194508116428161731847916589425272969124545617924323153099503019295515860823556312053432330659722277104033354793552970335416912842993699329449773511313331094953256834024071151691056198728024988265935859205617796820518596451971068719488504809386829536129858818338297754544286022302382163974711488819982218829322266360573784437233403065218458191845025918580413700987180620842208458192296606237068398945005993652497547985770661638599531777172559111034961836470899340027578200335155364588153969626848102642333943106181460120044383837965286233510262705808537323811322018412149935339784899985320678369017538705487746756394110787913564250606902991112604705187766553710140180314282226574088918103144554644471242171596283594342496035158583320324212887063098482248668639687818778581863631559431806586036530160406705325727294310664836697543593923983251877504803453162898740660064651548163795806926699279489542793847723455077738937750279699944130551509241042568079274341287076466270137150600272531012473287536349902238460740176337822454714957469894284736223169964362864920562210928317869127214370680282004293190760734126981195183562451184714431456374163896962068236215596361034153840178869361169760405900812584127534320380345249005290143205149359278156201563429835577632701325814769445782492034659049362485724885591818920793177920056619440064322518080855807248830154695819631070863146152182982397461342329435166466955325297241306911935081056199092344068943988350275706381724049621299267589541668616744881789382020466453310240876494160510302613810375166560034279573191689729385196026332665707910584226870665198028681823312039854042848341531502985035388113848377171644497526354533546110391874398911728837559270573448191759895864262326391937792313320454225160829339760720468023424344520776826875256834776109832291006458425258076010243307310729731500471208398534323085238936015428021718965540673894972900581960699641192104526346780497317622539587862434526247529381319845965490476351211349451967031446877374033559988601494800661406937331935218564983357735210725145209673948947750538803105250274713642202721604775544093679095738642157622476838536278214614335979038344364371731325478033973899707227920224254918228354094384244575301517439072323150267445940581841815307413578291766515757046579932019386722671636629197830254233829089553810570908122432887476409979748504438334439192371753907832177257226652797447224985290692393675066374441859933249639856589688288771875479532816184151069013920367226378208326575434382629762114858785375961922715642364722706375075128007689313483908257967611059456430797192595556024665465370640279074421358251409218580373785407732439204615416741628814430947094576260780405452374452518736764720528719960689289536624242247987185252336462893860734463491049154686018207053315168910337474235222138055858498838920086291738871882345114159397112084770421123634216394380733299913455045364755125024795269648201353469952557633227304201611726268780574569093116338786080894020225903398545408070830423203340994618160891660660358778141447617451430354684508364909183217182893053781800838509241501390082989259074490453098875118357733956924825652151807364347418294806703157369991133884948827822030866038145512814215994105595857135096592414925485872168641122025240040579669826545377719037443860974697767555030859479039591988806165065839572236198750328224357533880209869466413000503916356513360274621851230037870375342887390020888675587980265337226063648567734496429297360640410126911126494363025660812700276537558113026780023669151786563003282187522532241457611041372225455657842276983707132656550649985827295613648970798645007704472492790371098109681041215181340973655999238084758167231693324870280247022933706579141233895548379949978887840620417458691734691512330705470037166453811693324032424922163462076114784169104964159977085148403610411920210595048495556948249922132413990406417549001185716468453443131886226300721920499095092381670644173160363190930659313062678828916448701070894048117834964466369468783191500204581356369506025157041998772599886114695468507789690549637533534466250576057249024521417405382283473329863477783262975666201078446370009274637619709820303736797419266097335657993637583217122328448104379129728101590762946414925361601048360394693057390817688383073644107703231371817653550614088737575828986189908839872090271195249636505559515018832573954462774537821695542858221735996232357740104014918465095478000398018376378723620063087400044381777783642098729356454781189560996436498661310169490784042773511086970488309944064906615299213198632519882204422527288324434674245296373057095367989323625640203619345269175713898380196276851140446145195520833652598064179265721284740266411608157128056578217911557830232477631309449908689509468727327173389394511396213434618331580860194581871908150518217693863623007446058966026698162100380690789072026112394362056907444473191584217237621044883072876371350383023012586604604728460656480160971459296696695566875898554630673065594750470406010604833154613214825170376729339246785651650207162381554933045814774361872654462605660552239603733716055003590504787131266687446314751633153929758681241587040319599705530337429426178077850168934938678917203635163770185145264709287919580445314200597709633465849739091617778321218354191127904992764553966937108732962671303080396114501614459486206401641976380066948515148305757950771248992460093008055990625944099676002164698148278827568483155103551694848437917626630640337142457064023042600348708981305286497395247012271509859226172994637310698486571946861624837836666221512139034720571445452846989779015350815319127889752297796066710906607052015987710943446058611393758319016080117743400205935679178106171739511325434582791948858506827590149396165117625115902710762956259576097705974937560954906837069514083855636547273411179358256251820305055145374360009291730402993802412479003484256580694345705590605139354562825405237863368808718709861611657213525338749216435601334967925749532813994232166920224234134183100289376799440995732399225651349349900926281452719116405267111451726672320988759132835411923825417193911529543295402560052150051300339761175492573747499458012825485624877518813239012377497501565827237891990570779152184162948425381658762694362134034075001479152503674157239295815091845395012739456241187021525448715124256959236028165363481075073609660914989969777605932882828093985273424179264701962559322166766393440328013013078933581558126628242163220965255715075754959467445869489090874417480605811631365920616176066960570302601739560336000537639475093176165711673296734653304643507705623157309254730790191743803813279151758006038248389112881491093463185319058690872082376346485840281037974380028405048893981284376511510806820764986081513491133995720400153224136321147659225789418182114015354086764499983362437172118506183438732750295236013950669007123425682311611815791656877481832789535453602524631647558750709770564834137360350360872489074337188804206260564244828893788489895914933865414128870587744342243379650670727922566672578842918270615309660001166157162426960094923225603282744607907194151227780724215985906146588982986627657340656294523232865989104203585359590671140810016349540765077575753318646727217306199706821276970149417664397301115465221144031439853923416319108488961166903361498409356161551363224575914454794971685196674781266769237352190806014435334082672652084756425319580770895529213803911245943323705216640442752424048814880708152788497228635089869348787410436899205669826845077835147591196793311629418099995372012189535527983562563805435813321490424371536284820447255319584292344259617455076324928010875845683287377691107111307378597976086528331883548092113088774840784583889195130698944610579773273461998150003065295195312608431763966106919870231007489570852367526022148667735899551289603828819888703913238611695802261150897466215225976827186085637260057806762413192821069930171386100064817188143671448021228871545517993934407018720158635064866163356485596855877844279095948401394911094281720067898577623308669386270947636259049018240337154602877061861339208140974426415312556407340387230631367361888234770653830789636425985116602365982000611949711228212855630797738852822190614945649164072662805370449550436388432701289184874024571158176004627456865673907628623815088021273323076886508024500079209440485573576265938958726440954171813640262828120403920017080275928505289890805434768846399020339694581119041536148556044663765583106613477009985474045132506491024263365115457187699845877433950960719941341987547776464601806528198081694632275414292355883520950025200413137473290585864511250846918953637907478544183527882498906230520919619569037487796065897272646696032069639175156072343501376420897292096314274081134893133983979178584843282656034947048280354425956468833843352025160417602494146952345780537074731162109735503868642308743682345509049378435488953742543634634420349129843448533005302023940382065871134320404388705246755337915081707181489671148978121189372259344542391261373208502373747011058251273761169209189136223303403752546313735038979056344856114870554304253674953455352790599060896782400317086676738064290869398958638670668960590313554714227287670484134122538119878396265464817306153012697997268429934879904233216007643819171042605775476148490769872033064883704918766892565467502984605335637869293024704326285870326167406900959040674289543881125944370370659289817637205223365183602027673217874710458128362585899915068868083528733508937487504183011286328860531127611156838045707409500105807081376034421155636143925469583943092682743142354866494486916316599145138276950869031355788780000871536056250267895502463468080028820985154320365167908550275131586753244732046767303841303837953665857350153418327895456874420473910549065568720076333022498372991811495786461557443700454625446323889502673724158824681970364279182453536033178293864608926399117218231009776470944741838737051090436606985086050530671774867443852379921155033546566316061492588616366077066187719052460351026321623709336862702311478804068962613096358897515649181143061667190209421385837189118247146751611778451667605223845216259106517227177513962990115922022662942027713242723358316821540484531419069972529905288226721172592617910328958901800783042768858586157580937930424677318481126047091566991549110966449276331939305417396498488960873775383046193592791852083706449416611934608020136592934503285168724255352458174664147821485205821708032050099023114008517863865728333259784238465159121754024854703889137732794565931784138903834511588769408669037865788215729976143157814297396226336946697183331575209491969768015542384721953103365028984891981243344585669064607700379627382170574023508844836344772600488546414033746628995525752265353352554186476017613104762199159826422283682071626576327519539843694416499081688078610074604741254992551228005664946660656469682617629137549761938083378518682750817832786315324654703794106928012990978561752189995666032300473697065341394795185996769319246047439554282500661595178091620159776721586994341707283072550080017896479268867156018467607531578766509888205461278203071905491707892719329817690105943027331680345591182012036707860328661323700179034786502108678541633067792180654389840705421547034002005239087610102595911483523806757727237331117517847759633412919179730343061062187878374582802614994886297459912052608208125671579318978941821717426556129387608026679921323969922635990714822792286355810916131536990489869562221702504048029141020765098382637342746255325451379869881475948966285607327409516761369404119809772239610421675107415286147078918515144406119783057714403190580503667554517503265953182619235210401714816583885145631666765012810719646892094192374902304393445678527091555944973191432212620428390708824389473335070199017429390223116224721401906807569253968709734123819922398951843700705584338009748280349545944750217237167632324576627724660219422234908253670920711377618956379583221815884146944252541781907127865802844894915848176484269022696476645716361155689249236236388365002581172112103592769639495798814494029460832802045500341896791580181972995283673380859888907928245515573949898018389085430931797057292262152657882115517894894851420402058546456029332874169959109610628841121919217605299626239238186607829986129005632175032431330391235408380707347935248949718529924187920771169744801029180946439328701038153479187785455795118520786876595855227273599591602146141096040758169628750732953115616165382088777492974444311742466804906648421823640175123094369498324139796845920003772993482462326386026322751537942962036258846715305475660220749894850186659429185472735988097408694809119332364854324240096566758155701394015184558176425985678441799135262805528854482838014457473792853096274519538208151894862389277820092816264392261073154533397527194608468747125478128633145962367487908083330034503434821110343790283176273576149058756638755027321357052760561591525357855026311229734569640745097791309897999483768686230229891280194731584537866981749062772376094737804761044395781610749291483996154268613815374904398086369597196092100264550591414351844026618072364212859088374775201539050992727637611807304568433049436191538701579307404891079777954009035129462387405030330603820757088846730989490110803611558648281659635469275866167775884285923402007758058131334081070007508792993506294862500159588889270115532903329585097408844575608153019414313262633305867902417908307389662143987535680129359187905890156374284153875374399872408201098286679168123799306981947289572668310085937924640783029230313104927893684345017860331135609302811386319000281243875833773410351968382624485542208268754812040048033218665361431457231063802692412245227831663536376846729776543018475659416240206915506817665930132346642694448489194951804321069306243399879417520004118947516547123830852084349270784803736081682279462911945615321542890252353465822219998053306181838846922309535822259009461871634044354361039548756535886911182758444754667367556285789477092102651184062899402189078259705452630062596420381157942245753331015603087381759199276497250815679966077976627757865522421460399768066804642693377442907977992446085722508817044448075738133901737239348132298358747807392904663323499318341673903689967027985020091483095709375244897303204173624895562864053039159462762915987098563283818664804230331572761829034243321474204534174412899436592591224179376495303691113837273727761650193695914482517877959844419754977478006858200562449796552408525801799856465701676924754280073105226827728456763107242463090681406471225507038321952882728874651840493755662274528841452736449368472237438463224978924660515829605837198787573746388091976904516425917754365817198407960889798897028295352759250812422620270069509305714720977199793947209776999847777699229153228897429483219283965887062734512279945887466745142587448827919247021190996560201431378009468659107312183256437893926636227516328680274289914711669123551218969748408542690342279545521752634233719152714311766466057442737748896038154831884648343107318674215861277955976874750005511277847922898702248273229966139201552977930963787199295076407503088709783852643765411336327743657836483227913623851040217560074642829939091353262537898880085324200383447706236383966600704450296730801544585917430506722527054882038796580506596148097524525806129517289031603122760511618481449260342800900057926593565839510962136535891633627292985268712652944460897817435249717210246315864649643162992108905315451111851881989678757065972904556789702889528366724332692048220678715816831705577022251010772733918128158222364285604284497718475769131123892965641280224277242388189606971312792630491115696532942931359904961069142070018833433890341688886898579472309234479363366294396486466649665687069487251817642579680717483835666896811487267544905670852293725022455568921291729473069375476806385852562094349018776371560727819671017361802805600986649511466226976136844071876805289457563933929848860980674862087383748448609794648388894817949856538392078754070443708359937583867505483403528235695810451071985643683698143514133128965115593043497259084717188582989919516921804532735134631570706455844543512774624688220859676538333848918630793472030956516474781341071402185590249820417568757773762447566420925362237319681710189319910367473865181816140941085007322985795833932771588205477922089898970457526334441516106238946695588174542602250347399511520063649036926277519190939426202736640724169092988153926134895927720017807629802253433111517693653728117231080734686760028570989184714262616041325456950245371715463572618572899865714828516214095481225974063066222725537089105240589308459439811005057196411274348465317351673086181148490123496408387826320304837461433671211016228646845635323909370213586979374814729718986016991261009858545088163832675499070413318657825283155927192221110187297192045741644715844805709420618030943733020830585104489293026445138260046529731494814613072206401050501374795522562460673384843928892596731013849487292531365465152100972657414642272586890112856598461727421921860526252927454950571910152214935724230335814197914132582443211073149682518347494342357125499590421969676274907183712765920699753762192672952519993105064080583620697001461526324326759214085510275223427984490941662390201613484121779152817458759193427793651335144928702423181851465696893507243998988873769764190460476107228954419231926221119712414997697391888443791603645876734560007366344993784956005697496729075961230075543217767344205129204146990716200324831841053310251275306423184332908029112451769899625298049237510853582588269411524729947683473205329701507398819876609455827478867577226389693890485693989878012996294340981269197949893695880924012288726999700693836708030033292365967599657790096803810938555402479972830601076329168099417554575726293824103927302037178068749021978900997257951303328781661721883153754484858294300823086294420028956975570466796235650898619219065318885522024105556289462947376726688906650171610212142134420690354876262669751090928164900515690531828935483743588488821862319604499269606487858574914936713848208629500496887266082201590203957265034256540418802017619137850112153698465321545567944615200927955013833461544184056651388784539806493962030686797918306473099043648117899081520275908989300126616536872310245946791690733403400589529219420961999444520883864744027882564976672614879129772047214525577626705340077344611845336720852030162838315691382147654488055175805322401715203859258978536926713925750573530642744859435642087875924153653452238619768241039214834442770270887052423554998133326944078222968370691214439976981172749989940950684952120421267786921009642545292564373543162166690386857626330875461383354752123623367880197307784024071282175754362206720197708184977440601673500932853366034189602182578498525330233542928294096844433607936903319448069066991944309578425606346612109164264076654607827656681927213811325609618796237138298674090230391563712889246045553485720715455076730121464142218067422164080302959478747348280654975956690070183917199862896502309019634704477530161084066459432664628763532469077536912411300395037871947473749993219077462171243860901037832041559717013777167821163085965841843127479374291793616409892469961762376117790209507602161123134743203158800677543371983127080374134010207082835112091381490196997663419948236657732855498304419296916983658341106761948837774188027783080305410198089268065799131142017026912150148721348287649690591852202155829471817339075312373498633375538051599669956905968609153333138294227978746992937313802038902420333153039787186866535369358793550987404000228631898890090628447998891574579778313830220080612181302960806699689289283743022048003652226625824091094971842852714391284939954664283417039444758868603818294739362606912960157560267871600204956637147947392300431324749801446088457877986685069036212749157753874745129794692894910834012505286091294196779382366782829263730922816374709065698359594643942985988613147053026326440920837371145753497270643705675157033668155299735090307517599831184204990796150894092708570913861815270518392328755012182993074133504068559436480582120655734674412728630429405780349237936717668708583832199423275524853157331473953060485787770986952780406818628003092644622226223474407212756127354562227420678509878296695377553719546089234063676188441297132716548692826625223411790856070295648610739500560194488846054596602593948896103823648535764153350133955293498873555513278769872582507165862032708511053320239494204139824734029876353370387940247373359506282067393290592749181213975771108236693840373121028283519829675510621567326551303413121688561083108867377142844437283962277006107298105003458158455716000605193204775245903594124493076881032280854326943204454963130185022486021572291962090621729554719926156650866240924043782819733027633010354498469004616687393397880029962381949700783353196693299141383761386617012883150353240546310451747800873924112956425016493956091664298256026416478902116139927868918396193883655166451583595909288209275405674214461870434386843876705405993860599997200982977409186336715608712288248053422842385978952230383361681909521496630641889961144024987502591444742602945522791331793836507008114141931956664559901462001376838930160739271506300219353174803067042846586119628431271006248505296711905813003637108473985262583475783233603022907208594605137113197169600112375014432645468543171741205752632573788588362323642802300103012871148250652291692692321708966309653668562498831883521753645841867083594016051316435531903739571672588436465406290329710103910906926491014369250571347861746546889749208076165482034651605305838692448895376421845862012546929317731822248964006829790169974698361438855652233517497180168906973803841629827566687454826250118283169519204540520757997028559625993571503590480535682059741225500660429935306465383405506151618629058320333347056656255828383972480127030263712542091154497875494911713026751256340460205754058192717190325332290509956193243530702112485685951111294141515882441377190512477866273192495721096374166062484506626561810180843261626210072374918427139904885692405356742973746981600652458070191862185400462154924660494564950816200203067528167497067366005081918312606112781905577612072176484515555442386505959974630373548319440777448710113328529381684603872472129676142752180905185985670352110333116555186467177650751499521974433873217228552507927126203613924408914326505218185955170466526657462437115411287688230176421191705561969101862516435941660092349335797807596868610283564679498431845276997546720506726297976353623281238509185762007815114074495353913241337438343948556351060848364944551283224483746202862921038328022148685534476934791080871587135580901032344852501039898663468330949229136938741593273468916889901585947362954451281335804362609156913920510722147018677281203486836379899459289498167982615317683685779194259295986590598128825610198553714293693791446231937708501424683054017594695991910707027397888414553435137662607492500982194586436963682204016593275779005679182629479522274011317440987551795708531878260281400770412180589591613922319758943680685375025560395596929434510039127474766932333708143530636462903983571658196817318343932472720930424987865129331098596986046793143410598882088403064687952394682441690529219722647843845694002332121794997025614490497441537304891544861659992022173414272764464241447506100358309030425785340027838905638415329866953224366334640849239824249674925927085154813109271199176394638462901172112166142814839817425184952854576120406504665382810899877432621563953490703255507066215517359868214275382543948047121498851215627883666424739047892610442666100724837695488068197739667158454978080103695211925835053720510711585443581713332017086948838981126713751725478567090056422859002980257436690715503546861035241669209661697932267248107012922873123269099450979434240325003584058596630676910479296844747426157813479333337038405548419601148959316852107860333400299749104540351799255243239967509214154519860400067055655467978938266691686263459514275838538805063341574934961448338291369701808361379753333793672186350493180076271224937571497937337488177767356752488128861540265463750142939893531495535700139722258043707096395556964690985430985747202042813241212792189475749096748005938126052473702515875671772309320754535148927701925774868304751752200648217934611380230351329744580464976226873431488641853496655593904780221792300981240680661758543669295903019655394797128327997019161288210316085879685919139069507056274283129636167705113753473253700898992379621796076337295978214749299426549075067713026651219069099063049602131341601759695752059928607584435264006988035854202495632064346071495187714294936804171809039656030209200714300939660351488081945565208613701626883725659297236920735622897990702604353743947108732114482744179322498790313574895925895943139550195048954827663349575467445444574487984602535049139089320243434243226947006489736802156469084237293845615060104845769022376838032814265475033583351891681574198204310771120366179306785296588733692665344613291548048483795193394965220983757114991290164968261450811372107282419483989228788366374078065066298323388737542825290561479673243880044932603135172489511692494250744039460798647669343946937016531580785379300404636982513372989746995600529638383900000813194188803987059144612699428959629038346379876843725557738765007988027402460345889433756653498839139163504603494244126958080028501439672318411179305346409571228100529429555783811387678988323298329969077427770945097069512238518276591400402343025762344825876634267336054911640709792247370790152510186662702206455355579199499131572222284259441684430490349803020926612701952174017977682644394203018938143361314495040258944903407502800724545327216119483020256902963177121119339050474043173525364627972479063000859151973994939241152805767995756349684479114329371931436128124563066613810364100902573868686138274103157009837412232799021311484425028685625413105390957425142950843294919453342543983748850571083590948046516157806846745684826331694818642935743341804729818097479240236460419703208262617188995146529445980214636997701875118067164703432418910884058045647510067260702482142218046066641529735622232764950608332011320741733030057323597445107719979113581049702030156666498829112436566790235547392209972636455239115628624127901360653708209941180092602412229554683397151297759466846290823482372995611427883487424401719270820764160470173097551556436101150101617573880475205357506267433149901526693042605289655572373414597690808584156834874952247031781681074090634249140449666290299994158636465664176186339126466578982435722103512766833047048601657269942151256265171458733882155425326497523292023500507412791126220601260675622578315708828804497350174117404773020812511365820396160940066740647473848964647328108724596207103501781780297283254985150923597104753177410932770364283608752155475078471398318250713144103295501548211387137618922917400368526776761495232947784728640526489057488164478105191594381558038056429682624881614672903532119729278935020478627917060700396101285071974373981312710126091483316671670885739420168995634605862796356161329707017721965483338261576672567696053830413299616572293624304744642337489826426440952388565727346555651672821471723464358373674214690286454689808598067916228087625211909448627059658399436214529335282334846591295209686877819943871878427809828334335723029809927543193729610067265621892804540938994282946921979357776225175254392923156251273639595059248206007529667309529663537680186279311757483698634937624134698030794030929597889195927588245932457150336579927091101381845398953024525943307695087585896170645188689005272679071438563158766615259466754901390578196284473730102035758126009710692812523626043431451035288009239973304426246285280057368728522238942934475728001913581907800170008065443820991557734129715712633205780143355027631140580220419643590058437735044716360889452265179504980999049555100591008704756040302789610128183737666765015670640662956744418730758050534908932211739431292071489831630487458451554232315891228471659335853134448249950610344207426703295618998230413064305073664687299983289503395196979413758083454821650169865637468370000805136843074940226110484402148462160920886924341657168602181085140053438460213429947495887716111161533917074298833960947296470017113752975792354481218990624208912090337779703647558304473444587340944715956365525732117465100209850640389539802638318838124501840614467647932007270407162120204071586085950825748473651605536837369085748429252589868458518503391595864754260126440243382102018876059897745558723823582886983479694317055456690220976607125212659773444962476674084558673488493278399100792045301790578647551584777806664355970135470482389482164724902142059738651599224766454018149945191585509994708054894033312130682462327380960548162572468577289947333640053963296236637670955996951474966316140860930736490495973978691248274869245503636770591470397368189089775271405405110018464162896571504072047728002832428176331237744751550875701798365448885362311068986838188583634838005379518575011915209974765889876389963513993918096119148159120306548827619653142117088600935824548108428764783632643581797635729786977865596854204242724697376142089840901432812393517541889112296760445679518691514638513978689190907683621438979586553817898185345403842439210547571792527931004858503652879126243124209590934063463864339627255237786011324765210621336676964414694641798959435960990983932256303373607036841646840302533655742019024411239400743371530868669738139217196166848816286656508603446342304049629443095812203146798729922408070352115864563993073726084282313528542419261724300770175521700874710710346771534529491287412602731686940095340303614319711470276880460373464537988416498797742170823666061786855947761455325124337248465891850783497236265691466636157286825875595167463673656514626282992817251096787578363980528327291049345494098176066020924820363376737376720807471355377468348336257608689621279119248833936626756833614976864416048514294885386919145878162805527583665254928737833594743103165103923679268281747624803968465503055734625227589279900139843608956241226611016562281265662217409514127775232406500492523176683718861733889628355493137622574529013603976312386591240132492385292098908837962245184201073330343887817862988145514708026776385290544530341535366367150973214329356083814585896902460411615620748584063581362548362910424004144566925648758691082242763009653714023433269014586736873214771779019545857614829487146063027574615984629766444185963132397472266220801926229165019064491225695648365271825614562444400323273793098541049278628669207164617672728480894668339526283042393120063403287861324044114839244413234713888444293204759092764978284518184162357689296316451821341124525161991326890707869689870140798093867654633264180369529689973170003256999443584057044667974973898865165256767425204825773149171763634116160305483846273358140663541413991148904997871073554574725614700985978449123194790028539280033353857330836478100086502122163422179203627419996142829911192917112649095403736827865736888560634328845557546871450592772177499275325209341149194604702219624441108922414053920929226227163361305835971838193018126899901582419111108464241408635950476450286071002448583861774137220817170387515056872115493819876211550738497130915131532467606084286721090083724225933901934399036297065622280064494767979385924375920385300415727259990921987880002825243298379910822280878396394445642806585818094592194568090224131138213150867425218708121621420067527297539047976238009016061354562833701453805838470391018389551289650371255084392462194614312502909678343919756648924903259084970213873021018675774933140151667614305337450077498918939823248342043076300798658891146597268907613477422244083700252447142205667737430101538614874009292498865566934183175073699906295662287340148208662933862069966238656875719068052474074379682597819938774072527412263844247473827260833214224013696582094213164553880949043949132226098677249703465724643309230904936981825260283884457391899573343372610476607256253551483475337332678480921528700186304510801017223392012347554297317467629828794320842933039301640821540956310970038674979709774203581912905799441145397042169252030016193664087943477287354105194750812981731480526107089401084459255687059524347513611467126320636941122842077961989045726047699580293737070682603528404728828674589423130645182621024877734160587430064234970774641191928206601884279761036664357810869769235323366302122708843947938294004610093050167245882441625049425720603344243025462152768084835033123257285994678257089642502272690194141801359815840162635531794564796480532366432018257345975329528332202152288303522469812399780919043740730837844208151202915044505182478528834805041621215606060835158451953706351054914886084658731171968918730088277720889381508305161510105747187915613404632491736101359976049819957488452137189637342784439557158938076613117083326773585590094471693150826070170335047522663578227874218343407253615850294480324342589242206932881374802454082564915265172245005123025601042825327985192930411771063706298329893988213800188878465211972678078498982072951561627821618322165520087194459172504776266341807040119576235531333826144837395552141954014972918944273141537157814711372331262005815303129235963963169323647658213712861123903251997839303859968346901401824352404546617005759448178168011813409656823668672975276248505277460434043605674329318252291125020373474280603637073436231549062853848841780968319440969887687899871908274149918001710189450747123263250867254061276208535726369903623161837274282491762827279831016222445342970145080027806490374609247099921136620695876936943227711076183761687661654931070078422181165895083785702629494915371137549662696080484932416953097580703536077281776552600732994063174435020800297384756654695732526939535137944810828923189668981526853725441431411926731455429178557554343273467446923014000088915200111772761550976063340287015943437576244717638494936311395138506667144845738224783765109878427342480846332841275197001124983570904191083385336143398322346980809889155224736324712213930434508740221552967445511053823896793898499030777835291584482081332138767495761208570029277504814689813930284890254505191228335188441093661036142679115510390274306801882373019748691412396188208666874253896545633535681490927427269839992681414253537845588089348285819246133549915744448594847577240603625743726263694791795495975383538014775142405630847321746059331429220298465879785064135556241179137349289513462428829633342770482145939938567960214958683617450171435746707124883664943578589145930303012069887847818643210062847671861670282892297377859296413498268530424546976085658228655464866353365231022654403285139959070443084420544239492114451114413563067981293592914463129190232746886584202983974676149218537672480383021992121704299566679512479552896340266840419424597246195595426499946579753780044654575107155787023173612842129336534597326396319879509571235053862426006795813423264676596972657027819505508918220120513861734872773760883058549399334200317439361480416092476320518717368615972577967016594977195305772341015504425922937312544022857664690643766556460907764510386100526435094461772982215869946905341455331296999567171194663846520902060288172007066530885885121295702256320596382088075725038142186549455226471610626607089375980925325102533962855744681067829546174747947590690992145707421068955915188211167575507777776534700556471113059366988929071827727362617985567666541728637275427829484253844312279840316138861935017716306601471120446770576329317758027017835102823045729667561297815807231066420800422554070170104635572095122504744547227785853265057944033748653704877311971378414627038517091457686462036006297039740008604880645515158644655183691744040845829855499438919367264349176860186472895017540238861470341916883006407308660151580112412820806344345305804378345498796847673629841853721488232640323967961454889487941857848550440369251551665438946283801276087995453159662477460782113249349621406868842063272453894469188267131748635210812557679111452171873795758016746393606598737729583221384710365477876068140363590486700844321878021031073393917702152898864139320959901529353772685833763420253846261466038060687064974764839855428791929569831957796068249503650852693286833554132436943867623457504572831063858459947618905524168917170523159399017849755280346484452696144174956777984121955317767297771173235696481956009782078138870939781024892483711433892589728013237790205889993797901617865928905799793941147048486791912438851179151403851854045035838534267263577498128390317698529042004143756467233197843606126813193173044852563513044706484735700054775811681428394908214164415759452721917588724979531383354102004640678803746383454539522472091422259287650157985988268693534176663016721595349975682342704927477209133022650206628980790644257663263604930430515122531111660663532081137348971200347956630789853248865512155760095998209779057310888659098214787950590261772192679293368080267344935414419024391738321555702209430924372933532939631693304914636466002244628126376876697368746617239870947418685027433623464067487906505469180275914522930348219607944862897147337665016790320183369013236738469030473533347472427380587325435257919296201283282492337457069795502500705495121582307149055770264965971017403404382768234927866432506261100332904558822469564062876861133237344015382406700754022271862078319738375870393583694238592550393838209092812593219577919932430902434953044175858878872726862791069326074729011608675966645741614119697092566634640713399433273879047975586924919519631004328289014476620857152424635810388100367780141371575884388501999884505458820288239290975215613776206316948489839067934406617875180011646425828155132230871400668978820431385254917427040663443788152023035227988093585626969223074130255160606318362993760674190246525621559605829870197001856367644981222176043721783872288314972636461170739666372653083684605343617955463396349957803285255088077537959263071917826317893271293216827319024658934476226104899919313421572344929621232567402297591565602435735813392312707693126567534565754724787012569679238090712429897360614011808529000093940005039567534106016407895507006102955433257945104502736770085763137790001517009848750660953154483500367507274689223984156317506435380546504663673023183711634504305362699099878555723803201818379381125869514886522322824293172775377779591143841705612971855931858378627865948353314035233619617020276471109209763855661437598023299914806048840207653397015515877835482089937816002869597728921469552877873958692601767297941392176627487251264273160253460804801431253797100365695037864557221090704588528505223253905215148665489875730466657011164344402178682743997533117869529522621439780129598093571487688509572340618592371467684789499790674593975175984226524588567347690500057891096236315000210603506500556501678437467872841407406327636307675957151001471602413754417879705251380962222006972567384705391350949031567363423237245764547869326943434250767372328608872565921097264337277640817496399540136042853311247436664101486032352382194569403084462372958790329684678296116871228817664067527214261188460409406852151932936321376136782132963245729855838550911003085907051109388764278944530962171143038446092225946319684351594339539567448767840552088413252505026203579645341692689028264227507259373466353641168261714709467595487471841218396206385571401423719444166753960390905725136548751213504219973490607593247579667899373594948058860416180081948943468088216507177122587970590526256472907723353073237773807323409790352014159324466952524467852947751843345855167319662260241808074521420729242440149987631437456317888375500619004877374128072650947442071098677301210733020216716023717380956726589755299279546764418992387541045827425158230532391554826707508643707036003509701464506346395696640773003132937224155398754358497944959871985751883582766965535033028128424085558101082241327390295434497984161313632142784457461226895744713847142739768821298206736061358432896919251838949548457720866295855726284988015981234161152615099218278575294022557204908812434176146873593170949569932564096534215223113481382294916917471566724693923919925344885906972960111404185216559114511486805246643171619594726478930017889618127382987888114102571274248386232984393401769335045294718981265696111145458596110829108685724554874506582751382843742090955706965126607316775878385570164304955685840911426083328265763990052574969618998566951131997289314232474259962971928198473191126410946534717060597559465992042858424819390542514277471468234391624758016129516420205599739358224702174278794540243065084227379658693811710093744169099118152494207748158657816800213271887347364793910521886753423914847247610640051790279490949679821938213628404756816213195143384204157104241581715204694612054586259174917397760462982894505406125760448448129335768916487341071453717600510503929084784088259908143503227019889458271395051718771916354532501902560887894639113558926868765032069588567378322603764778766483770541710883711887655712519566622269823391370996618132466992543851704910789207910411747789496777542967746913180434251737780200732306385034806283628152107832524854291095530356293984514106230627720942856412453995543332970794030319735677202712794447746638748587409756216503334394441876715785578646392113423866228530202443155813944949213884105437526976850021965621199007063641492886605830295811320388153955486030836407192254889211565228207067254786041119828413228865267721230784989956979340181106319197440122529671264436732599206539474480438757345818970096799438678655301207342628079220331999935161921809729566803459222153646121409267892128387202454488538087588634044292381811762939550666448062089076186138734802815544163801608506207861610924464473959842760108772477618504764531344784432203972194367183818526969331560128166735588706748866073213176835109331383027657054518232952078390935955336987166260164266768003143756827833058975366952047808141387939706419442055777999081957157037457012167041221949934479560229355522106737311171413558723290859463656737490091659813459942200334879254558994419812824253447129731135306129677373950071197497247144857808760429925966859269937505748369252709135537444468505099044947239150264200979577287809837720702265600729569471884686025459677604270837335792605399760607955340485649761054042906332244786823607851953193121643578668502692121669822759380609520236256358127366023263912229784084018023849381440853811191122329143010189607498273542004416577498874142349953131598898422317841944211751081230752359525754655968259501520193948627541910202369029883019985138852709608080130512084195122242888099253232603608500810173031418947753758014395964635622786847728129108672693956822933552719691205651194508356064917683591328464379811596697422152136901254891659843878583128314384867682935381780728655983275842458921842701477294261245910598741768295865861232994124269455061454398683815715141911020321901735116767443609327443144710674687976170044935809505813172887829958027704123758366500094546834666717603221102646594739621994410052832413769280413028539320285502322893350435405065364072380505574767202278941266052642244365471852395202788799541486433202520106889159142074056873035430505323689122576158299640231749278358342991881774286500158657390975690690536094498019878303545771830424786422020765956675887714271170750359575210551909355749463006044137971059240090588658903976538044464047349254053761878634718823016170379000394677317075797027704828277251474556183419276654160932189412337351473735021514531294172854283952202975023694696799619160380301006234953576096858687268595538647945764154655775158638881383123194242618407440212105909810287429811434571410230129018710350373398591745628602654396097817911000003967180715435994069703309764820834555037471958798713758281042315256528775812446861658976360260588482630987051276725513268123818874476610456862465533556341824240251841453681010328150933020272233234220785958136434211696709463400347881166239723348585037361184561272244984820888176793210756601105118380578321644426793108651068198316532162361848367260108054087260547893545164126152955999256835563750895576259371487330927090050726125567306984087098289434495487198616575969681118940483821056142966516988633772834780955423092235754543989533550391289511354472858180089966451194941122531205978966890379053142178385764771384822435702333847866248399437953138310586076844067883777453828122191732474188995535799270709922707878424228929974383877665729289346970014106105531766189995906182478265004307246939344223535970527056005922761817281193819100702103803398876906644713711090190539647979722647262375965555067708423189191072112559819501890621062434136884097169713082318269245625082557786154533494166484265365568450132750958672658468801179366652085093433073803842303202364798702643089327790879253203933318222546701309638290528916910313586680210809652379031315167853220514307162186566074774460242009493757672593252446806673631993213942388749913215259423767180503308820586393012233965383654175549492108102347388423140218663606124998111843736730708220864996908014925785373292047667315306114065623630338725877234615769826552716707891888048713535877415625571556804111070901790115354916434284432220870284351852534209219362014626256049539417642971852214531049623511014094061131626998497339770131727809921706927796333550656618276959741957523620159389462774857734049071701218240700445021310914307827939842326975038434337331528862570958194743515406494765709656179974780749312277057634321694922123813908610746350872219668959357756929758425319739380231736464141849521620404568848130836817313113565967639740653152588621223470387515644621114268067267562877311819531100883621812593168467778933218944129391193209304813989353191302202030934281055781462627913517263563866306114237540917091327430967136083662423925985404265780623510598734313289726435243912951479890217260892748070969327413407520012760273530846042749243134263539881723328679029856418285860080846463886782655690933819483898222730373609656880702125279878683867641596662022280895614247578454351908429123581295449493865311448222073496311981271104439234452463140558891569403475196091471166042016842252192515779309383355783354123379040626921652120069029095922676528377748488544313011697212733782391302188517453474888529684393465161258657873515421411317718735739087294690233704476094521715908992785200527502441639029695225644347140653014387545848863373307594271803172735236061101067363568302289480855638240148188175340862344774985356376154552764368653648308569802310153187355932126750626960174232345168156748374048247353897429784877266898240852478486191649732174985342026062413389101715569938453284180351119835591736272685804376540188585924675948424832529191948297452987517328781996883777013753080037277274880353344745582592961147582760766942650306510982047972181205629789311182730267611953133282674132120652229675929821263852805146832629278807301535052315968059788148851386701081456639076309641324316226916419100585798429882159272060759564309338379547604135295906197429630363541752278562378248757313282631571007973110427761292351809413994656422993820383169928803509606955997952063873999907057968117866662060510550003843176455283240438277780478400255178002699103227311467349399191728117140201791074238351705186319008238445781649749314039743164694942456543808634601040294684271120411316655166229765607381509506402851059122204581781882124808458579195792741019942736722237508680629704928448088155812271990054154729067813088597201616641839582047319007179125450336978855018193567804710819826852406597241776576559616554083829327795971537395553384792289524079667817747400182335000179845485461243423374296827569973492787927131313244267614915507163494225851820491032062862646750812014077283328653313068972948929987243009038223231193565317889893701607940343976906406756954618920867929375607926039092266220049451729776723350266989298749344620269875425175560877135924966106314458069783011007580878975886743996627137578568012034790540264873695277980085613638003339984912522856794897726576896507476346830856583757533967270484950711155431896494381390810024734856018706633814260037074873553760869094390578318693086994801334471801668402130516550546099691761071460059919936041216171780067896778925444422829998460291977828287206356055870843115147044469373973061476938988310103454356796743664418808258440646255067993564044418557689831183786969194628370337379772852042614091894387094337912963130669430222035048692404226056818991918815007416630174774606537728975815524831256432251286088349565397179275051040779007380905918223184087507503974404449329616140329687791400687917864482527826724574793667520095037532490998155253545919060341661042707632668705761862821912126742087056929699254218419569537554986692052290643524472060896552853659659621942597457823076901453059587097533913121584459952886191586182312536102099131350726436482159477446156903661051373006395044457974156720059086922601655077895521444078092718076804400315159982406743735428418264217769891621380671143462828926795729898313725156777809676609465488632010690999735315213634005228452561450858556623463669789051733827122169920619548439333687275814656883314871214968496732462233419582932551504237855246423502281203892085045457630003942762640403546064604244639373659566737043480457854167424183507210802506529580751249404347300961155948378274200423827186149660990175489630669308543260166764875535620827591507036548829036567648005022742431039715937853830802999375828411250955978872442698275577712312984585635066366044210739293970979338079512211589309563211418324895577337636625504715370808576021696819997786596345871536821974071778727519999923425862124026100101842124065888834400291269513511384971670107316153981887769878240142344731092119497932943862572948118818694446479687738130274196293519334214401055211761926661691675399314229999375595853072963912586626715499331805030793441639860016219010562526385697905473117051069545171229476945959361263473484401897459235961924839594724320792761718222385128010738380822713692834984241367864535170627064416603166635532121591436659764214458404225237825765140600762722220376203919778999539375427888136087798926006795752524048324145281428824001151511758791954268175778076697622594751407901937705341211783901396399472449950532672771482282993610483261215144457323841533016379512709811752235723834110068594140403530542958853870498780225533771871844501228194413674703990858747261818085925876890195054787137156435355255150809254876927763206532946684178164788433463149364529193678739733799590341434347998049986192863369817368660359746080819945980263823291491009827242169566129513968390766335198802084574465586593078666630954720780348824362489345996133615460867857434770282359957799695019178381671503668769934484791249069617672680038936187880763420209667348317226248206949019798245013721938942607623096374505771701961704108629100537440675952054610138754445738047440160647461944729903336675404192281018845050245284957026990996386889868785760602249696445378825233871479028045012399973808428237370244854441543154926322219779030607773618209455117449170093910437160749876525469441294106229403914669915147561825207808481095927627554970353225988575992254128169534748531323883756035227895633652939262263670309362099381141729603917644110389448168619427913616429563274070900073056737927275292571630771225739293454710299711247768996776497358670964098247149798692517998557743322208845012719215884520425087434091402962095671565865378033637574772659544174726374522174858507399704858655069737644843441203055420668827832476180952645809339557862041888654582269295250760488300643912585750039584272356673232656994025791109160645488170479515781130695320634869520443437801872067581681333065531289770108925924834556501417148489681900248947070270340257305911194052027831084529120257964227615563766265445616278173653709791994224256229553339342746488869738905520839376551700834515584620329418727576778518191437140961309109298257855574605693360261482388055073856283798530311227577887188471548676589820938132292748668973904742705378295218792351209085867207948072335819344118361082915064909883014451968209345767521520101688377941674609302543628830726192169915555647820947503015062706640404845349442821973272666372454620932890379020291141973893507013921366926162294390656926793227060450317734780885109702523819758857899941381643935066837084230213097708138294827026110576722767374478979896655123348323161683027624369195977224677104818004072054770594006870631489579638778704609399527091306781657441959553668836223936989670202156731642422916625542135132103790815246230768103160185181768967540596309957306154103714919688037600626772816677591369383477658753021374572242617461470536553517856407662776148142231334113013590795483970550585855683705170386806246387371317932854759299872829926155471534404288513259837649453763453071111387819423336002978101262153335213342135392376177647256161902526974754244883694067362334652614235856869632124561007897056186631386896892086990699120948329099070283027843545106971308288958183849495698269570495448324553821284535549140665432825348360749072410201406312970770513343063854274491310359128050528766361290428465258616414845875929764797727430079563604179265961697999637475222590578718044332566571171050061567536537559273683360012739405827973929572529567373576721212142032595309448450438101338861319190340216000537398058325391073519945133389268104508946808807233744241581603882920971912087553753240131534324185026316812410663302545620580169998613190836795000586240362346677338811621514027021249792159562696564543050283744844859561957425840335597367924881515724273010034884537036357011722970398793852481874185008690427221747300378145040387489188777989795261099517270846407730379430313820178632187046812604868760236116868863072470172515202994502476469076799680645586084850105653026372657876509789642967716125580230955099301061130646755207535955137946247355671246093194336160811367228166217860914604241222606816153573088436542081724088407504405550386724496263321542030316614039975836332950104189720641828226553440598315333097939886199707647505598377753517814456350358651434865057482640662480120863120780288992669445806313620686046193834782877193749577205021908283722825229008637442662799502043064626264313920517535798991854901725741901858746893244296935241117898993092480326745662416929056590263514571431596339755767563029810046842428985302217470645503808875233443599216545205603565031544084881951597697101262843292554209932382881965672863023225716793739200105057714968031072679419773639151714259947090674997500406872910190826823602456681399654744211511838245087721300497496898462811291823518652166650889115701223630109132128277660958410301118986252701557219387106415856136872447251111271493836067364051534936554065945028713813698045958474930818889547791009202392450479667911450034445898997014008751977592264697377621778222624666137981507745627596688387786408862153985160067801517047932600862374011508284525052421499173591590089679366641882209292931925449852767109542756457333899415314760587047465369805670131692369551338815447567860117026108010266028217302210969629434644872473607358739720351496592518390202331350464626349166146501921872031443157664423576135784166898501493453563151188541061954422740742149621011192728103517583648187904055544692549461975127614353174432283970571389197896916562307032915701459192476575261260528468305161317934926353561861705692055778913169889279357148118464600761375687771541944918930697818271453957909297451793353817787285866876529200121029557331480184329824126363530865424756636756568553121172479156379326265735372557085791940957615891238493202924539084013788264007295232812593900307308953662089982673412320610830629714720392020530951432011667506975938295263343827865776656743419396263572807077095108835763157055384842642278328486075185647470351833316458669510673473701129886051291633104831104370236935788965451083492188297864067403370368410739231285127093457642547750981990313722473171394214112602489119497238555270145835644072908611847108025639541049079929030023204697477702379324042930710268378406562577797906383961810053793068032147449091575125917382860217365536942705292384665536124231424155931693236107570176358713922124124010740498062483896827330206016926140499122443498188546352628598907079622713986532572728984733136450738232670146655426950255338431858499825429477628513513255018923700179240555495911354903372965040180426624488344371831560619912222302928733776807957982592531859425888305680306980326589318202306590092107844284450059014945259613089876581852864072691669161448754680434825938961650008728430369230337498860700951418935757569982889151848697145750417180412372873570482975151135435453029182567947764244622072475311987242663202990434695905356406157578374007995678023242234859596108190341395343041323236800960204644557122553474064767656590068295717870767375815657853999706919369034310466954459580833674994087083200066379196862285130204055070814725001995064509144770693568387153354082094882843807785670303111700715735746106779042907323693872047577267274862774567124860139902990504136037628767928080935087193831118231089217358181549525098549475084226389302398970417689318980070560323023793147314446725620979252796513893824587244638830018329993590035740941380421585448247875543342544589371409839089840570198532150836898919294986947456629449822019290982624030999940282779429568975450530827248728156916454658932710784998079747333905788790107300821642480425098093851923189176676611879176322664501888602993231478624695383675380164438681272515282456364074065219208410730318066062119184131765010367796329639483898914010853096981814900115482828126942631540270346856747400168245184642539985535769789119757454387083733414226226826874362874468113668051607269291066260240276087180823945762004353800898184288502326087410240220009015325768451105972356585227442137480960171320065317346004668013413448435152939813042378054728950378536413771473463009937845964001625590343702711313106858939861121701680621904361888273289454952668000852862023517385821008718928240390328477689885081885962319717569087619783383599467644384180095458839405410765250016236225722339137065740165115521900329199508602923284325813658105160175723821510014199180747504692504435347638285706007301721429036234521537864391695636903831487156812035770429548867769113371189949167036600240193325801191387388337512305566694973936015622962520554690733297366340179525463305222143023685841403947476246998215963912332842747757017717731173168952389390209285069187289326201719858426075583589418300498530135847137475053946949772876801719897488517430950633503248224635663560922688347585412437878400047451782086595449439149858181870495718448427412060876048402012748761356177619100818852183528000122460850027123519372080071690011073496090405855378891192447541463707606557592467928644560306892905357072707224560757525175654323647015639677223541650266391419171431154289465391431258278812354881601250659983387804556621440415631657486587391171487019245753543989216346030916074311902990474301331447367258426794712881782778243012538468183844028376432969480559455046082718937041226412499730117409327755825836039242634955274851356195528967839747496760658149517332263687578622300030486044265000777117950429672504575951593689798790643652593626309152528257942799327681182384734156004134494665330935862908128637640701117550579114452503243800298593815464249412119284682204976615167605383365379610161875867390718726911827117045269561777849985068754512484257309363198023403594332260730587832780200187956117266088968827911075897941587286550297805543631384608322724991176120043257538171057270795520665152224348779824143558956748188004952918624735566232829258996234460137910060014482499716449312424248731896627901422297685012048709944065724352135789403298830450129920399761326242715390760812750083797155314563317648900780615705146452950172729760071105388718104551375646236102674260731146459745886974381228378653298159338873730238096002894361173687485515570394611423737097437872520783964909967241099081770849026576531328693450864379573517494092175526537079851298022118233931699400457269492312578542211822519203618892021630313454906411753771914449851422361588811452629241404941275715634752047761781459082220958244787065525284441689736045931814591957301778260794434929933455995083759006888926183976482993547513412241731310910404216952796777769018286047276356708943309277654041435523619655209682252573200783146933039392288800265364666804310625618978605272806152766427007823834633428176654460812477562181494019310360170153111288107194273328899045225349907054465100788805382656138137175794137230076615385645497321993353894177443557550009400471212506919745895806288750071518552121462365386949497259259567976645421884485073709964357610423560375208219346186178136564900452728426151479763345866419242987428823494122812247524383977924552305158741311540000780638568405321829040673459345723377928942983055306894820916645764618378146503633901830510692393922937248074936198118068542579447476848600972656037293787146288065132861178525898447167715159616000208341453316305768849452810692881973120869835497134830645767980019965481493789227048948161175740547666781143083796067414652880684138604110672992484701154749768201365568731483674340314044230765933689858347042329052735439572679520271302003959961287186674084743040987052626128405410852691688704613999795255456993455525192854876256399926720491176173662023240282484177897495078536514773154019485951617972336088504232672377493086754492128171045486995715623752631888108553777525349108809644132537087547437045145033520613847261990901090765043756048865416432867891196947018426029015072330638507090465268549190713397150026885276990736080079630973346269120887956453631473408719621581156358006081480796695596595409733013309527848131077637348886870911660749912314924732337330623256135528694151213017409552877748734067274104561347049475167846132704701025803616245708919873922333696146937248330083745702646302804858328196380145334053138530353045053162328756764033214689770616617784315552234931193636424816416813341334058103475707761888882034537005633123442082149970229771294414286502975739683825653375998302797612133873440122397348933480408599857168884071199086841290272194193512863190789938027017849180953335924340690672190070147878311228835617916720876820363778685479975493828019098122604071011267129604247059555545708215411690554059137236685540041675691785930991253010406209670859320949608164370186593365519493786275077118135870237151843632206684186099705661674667004751784543878961437432229467065250039662051392813420700064397777964473808801459109619436431200049167046515744378557532877413584146274011319847110533765779962212038599463905148462299739290485230756682077094519982214678285350560976418159054209313375211482705048115150309553959577675372484584611728904858281613465586008965939362440967694393019276807523186348708605962116213952043619439490934335985507125209295569340908714918839025890890957780421147203892516934833929517360283528002266128286194694992069800624547327043369933529018495913432415888904643059228253439002446053459386336086189651777104245418577339657037917088662232828965829256544950017279139316952464797482124052116895761443465302827030821220775949599546165135403365833279932373378613110038777207614770551527037905135863430392427262403831951981669406576006418724592369391681141836979685705137654068942697147311054992433415763973289074835565339872371625956093372670757090985019392275239560238949813345021192269363187071323515279142543181325703098099456106255740842235710538051661469271196004479341503627562218286575233406718174184591232580198558875447335987065920144748423065371188438194228560172240285106053083328335671201117914261737182015549760266230792729734472909633132343148086277543286361517802679683894757449620358203255007645614321729601692315246074858011684308811930531926817183637939229019095279068630777225400479260828175210397183672074112695810471871158464617833452928647385413496194837450066936799220507953025426066627042829668564358508165331268904784060846274347759799908322886071983838656989034729244182125287530083204459040018805654550761025265587998422276235863307338074440264266496043136117323029283670768868071193829736372930536878513945637834081168533748744309800272041919193278199378136980717656868644295245861214170013510469965166040301108737053411163268248611052570596729883197650349761557901667765308530772886862445632573976512911326247775899405945094169946793457947760334351447316280724716539637776882613885148457963663876170320516879774085210757642453930452003958064165942969117401232095715798030710707055270132538814828028179116950407171688043895626051509813612038675045325672675590415354445267422426206206668163117561631529178273435204402980301400333139944695325045616750399023696924634292724279157100645626091952955200026999901284630704963344191103728239668428184783324820189499719133629717139551978072096821928292529280707458043306445588891195437046954638278502466606461645439326805342241809934305018950854344584059517290395700988365443665977564894822313062053879399688030581161978091104855643214767392887696734728340652727179976481751207266011003021763288395921795264710420154252967274350762793549798651854229454794737475033751088864149729137172028853102875266026571528669732814064688833538011393870737395704043573397605545468431295554141310997853518875376556548449853855957822083591729057468454241864013176902170874677825463659806777198747786496036313514035932364049066613457567889127650039877347224031487042763261082343353346233151772562891039150381232065288500061023282666771190983044349231953864147833013510469379792237042591264862727179104897693898395344801305017769145123900726149609905792880377096722684393878408601429285007127961859175288884779590907470806557529899408320591394841025774511904396614377264504122573877031819558931935087653468848178704531302853816411790308776090373646520393779951054097326893296056574134176935060833953870911561793646455367618311027539811899697052346481593967195114162659807001198278102988375471168747618084769188993952342876142542680067339594615936350692277428692102081139459970802863176815419750938407052458238878212414006919752270279907210814144766288495404463770838008825294655711344350912667971302579854874227049631379028848888906027837854043973823353269036057390512859108222435055105162606167483666754245607982631718667899526027739965647605517257622980978805045342818683881537630678198989762581910057490266612090903904734828375554904541783872045009291235583688812810827758517955228022643937072510483020312444418060268870527295333299216765896723861296127620249840989819720933047789845880768893197691563405638579379976671641648749867333971391450680666875668978924465372952016613662779794322119025223836188776680895881966358495615407288446803017801949145169145949394240038257297115296241190465800281473642296793998716013774133509768193159176846947438304189495062730200586510636904307524476268693268633057181184341158249877086501849461532018726955107414989451473940204124914839668273883843959179838072680397263942327410135107206807116626810970556262255612551921510122964292450409620900124341858716001522312956619968528694054933950955271159316888800286788888626312737473352805387846213756506865753299577563809669650556812974062056768595819293329298409140431996480305163104482326518468867101730190216602139033397109103191222793420988388900448716739926699637779401493983491825582696127558496992909959957936841494085743363611274021627580646536979810330868783935911233000720181444145931661558646786124497870138628222121295574234068363728058712254407428623714318684107710143681345215161925328485597209678388489285887082189064509265827967053293922373368658117750692297118319947897390473584235311361021224037790124188916119628182082320261392583993998983833361040524169174333559850904045792172630084349542250056187032132389339298356455522981795827937614546372081299869550320028615900434961005689790751318792287145881133435905503648334872965283714122587411877391982681547332329248430825090991190994531786014916958555241638810962433449119468473461591204482712351862047414120167151285245142607557703483176490750385581980280965032684860919127343209143916221008138172046063609042644651691338749808375434426304722653580503556313436316882869243720932162107425628733134973521881671921510152969767530745703134559372553551033029047254961672846597683912708547094444269571382804899057121098696910726868526453545593195318168412496987092993687914132326703779106748360738383412630060734102560908277688308226659387790995620348546057792865762249059422122373082298843752574240391094847097542059053891994632412667828847155275479662783676061627862290791705936742181873478476454722239503120469321000761216255710912916442439848902760313958039788109602325167126469462265669727695283882247250596830577190130796573609937332134791567355580707577388701678855309698675096298222710863821822339787211292507000063403845857941683338049130730266938417599466000753333048895173169703311502529172716744558570027359358879174485801832513385049231448852091732964969903595947326306650873932743330400910260137301267734505893653535547385767160325973663186197254745050593928971344147858553641836778566267219688015172904691013226708121538824427350285983398799082874011218876768734770254812780070584088138831765828414323722177502689234950915467806899468788782298746543093509134345391465944500124831667228977541974709002039238886657915533723443959235282964015252330208449612476033833113582159907807734722173304023624630313777267369581685472766331527709190800317961903227299014253377886936600275957514368708258897640312973252732640690700005271480459499651632525225412994139218804582907488387306216538123752861033934511065625441667691736829660845605228904799414851030768760245158552350140743585968426157296928230238524049419365810216967424792527791204464248290803393623514896841888941903709666183512440651896387064394420962716784434603742299750819850002364450545332346365710185344602686186241946644204331136239913027952238032553631944570222943993834048892994570958704836082746863288638820613530160921062098777022044968098576700504716560000547581523865467809497511478206704303870923733682544399672844051791902528708412474463597380515881639325172828670965527595455786257012580571574311499404129262010214111280869285028218998993920993951906246874354735944938166312712624771666941524744587709068393298768936026124793455424547183651075549027723196778246646245856313316897730191473656680237735419683731854135557570719663261862087363061256245410449715029487465527163538281131804102103436158694573636372758716828522118014201128719749588147294114188982051696426865012568299370733712379529463221263997617736292827818426630929064575705295212542968757475074588188466777308671802040231684705905533353036707577669493694841053731549902082506182103640688565412472235043569372194547372758159119370938741281810868051417011237921347321788914959107706160043464816010228845010341855579842834039499952912403310659002104108389266174191280831861345203425314730849518735012525794777921881827235275545892161645990943997371769109687824244343844808177836195763201161257110908343954780989955955902668843609822367598727163854719313078081309965113023142388070469202303397962453494286699536785079936513921128799648345621058616449861737160752271309916002542592177518928624916353446934401687781528166206072102797303700889428787252736574520598011074840988050776235700004485478283680649965434532827757945065163312995364157405676150121938687744946946304796035801186808919207637952754474249102222433786719040784769294699721157412304519977663751489096823923052243227037154609046950557945100411250026147946117839501719224028548026102498523174659620662046164981584100908669598817160913741924266038715526201889726467521775975641309813239273152608969111813247615287634505855236432467619825615945637085039086145804696996911580104741075130482474754111081597369191901376657863645988378958360761357976909849651532985108777531660494112574909706603158490195606182714925283692439257255899783684071084139274739477488362012356515102278993511709026068617544028583317955236983432437380838487618607333486056682763253910494391965683120804663381795438958583559813939988260724416851091974552665472071004085840920735817808907767587421691584281941636283234118764331585372575689457560084767380857847330778554047840727799541602024951627685528538891095603323899978280813347989696831628269932982377535590748849174563122620168498068706038853515169804220610450517175034172885897881659824765733812966151010549507188473573029415446408380043879875471784941596776301668332043060299459795492645517795045929550993532922076130866887059090215799911486071558037076351780111953309643687125120145025501092356829479601696372952577642451384765104098383312998248708320601856041270680379663888129160936538350429581759590810469057699241316982891265591690981477215254589193169742834711474612927273586961267396606837246109259406759844123585810451911089200963232873299091229049036050396365470931017224464582797677075364934896957105125764422778672901711983475301361181008076777079620533422025259383690283608893304351278208839267626566597421512834604441120413499117165655018850798477598348194207368193322659974363863032563097094202473729498037040750622460896872883173929446044014969520698753304837553341168593504301147244753309007584164563185879948605978793373951272199439527736363164177544989812020602959803840785469428407013746685736496165790861355048974449912559181905361721668286186804356472077775450742575113323951084278161441645647131294153467478127177068953981825404875653061676239576157151047550036594395304330504521994479312637734373285888105416978723613962321194663024993397603097860328005432950069295174677744618956739907211654741107775633769940711230515609029449151620398607648808287161034636957981819933648834073699333414520814888339925981459642462715537758042620422171421286387772172759735498306511489697000200794473982385386162855279064095926658897258217899890549866585682269993072862144971749949494186348005716898005813683808247519894974098886015270605629302529859211408632813366816782713346687989527440984163653747902844705981671719584185853723032627562161821546910153496832847071985322465109991134126962933367060593826475983463028726996135186117259865563395584417860121666990317626725749393459801770309763896818366939556092230763735351796832014823825776294532029869599167113029991480666206019294228562248908682521841077619590988005044616631800018110137735922886455993595726215017079663561236425399981098533261263136638842804779228938728862395455978643627518673849303592843786102977808810297596818466097369330488922552658040289556894295550195362032294340829844891489902409585362104497772686212957151403896400763547487414773662525862480081392998608524037322978741416841013022989499556863258341311490292763462837754333871284699274962576719235487742470117629950616276487609630208029350698017425517854056367449967610738863897496087067598735424636242530202101835441201988729425998030522545217938545612520009913681270613209027813465162576337466175052630782737149330647503207017922864308746835171195436984972709892493118424894090961998397196199306932744889738137415759636558611555926437666415360848440371488979552716117699593527429895082809592736504628961888287966837814310155301215918435453697451931389950473712896029520884983553045556195210617659437701004284873557379509224405538240914582627629150442999677364341160352756063486970661292353043822858834782494088649442964122795121357065504611762123284808107687678691087690217008067243035855640703030905266352267243169396506937655213353663923028904805118181904793502697603861599139755708992739498399641243894251000829734139808525550091825251360867374605610898996997466912462494337182568373291581145744141522951313387674597997952432732709266403907468251731996004987163866956211320299669882565405690421517493183809625477495172891557749517217843961149384635549853308422806725230788760081533926751259409487559072372162964086896267843141177669539730575855418942516558392858158681754833481436305784784741293932823984084650038975948443888110073192861240069252373978932351672166809702794962073973177441424810420577177923041835581202915132461321045491845794160620713487292537841516621704964231542364147175604774515800561681926218900565677795251327246406033646715984811911443569978553711185920394352363373292632932094745215837348615867036786299004790239457203171214830888913459599047684596042095290746276984896002862098446997118209663802078987275862528222644465345693531428393283730208241338620321151539828375826335618937082490731329072732294074048851358068062647957612010993927086401832236121134349253943267319725481130605941595317555485123310579360813590651352638371166469058656168846610216327748639273472673834698730893011294405796952314195043851167651871255762157869262123575475259566018410484061580731106868042397345235191077989529712830815779672091446000730937014819334719120804471851068708243186742363848176836131500813807789586076750341321473317964302831389964435206980180468192726443006851725690432997690878817756571464222998324645734581425799075048337772616120266596521908191137575278927808361721029082994603833780516751809166409287489982724212209609599006658400061534339471591949352835040135974080225365248063988732234677637018065523299505214136869899152191855614531915031349331943697918232071398328408990187045792568099714077642744425939024412894300636270103598818409220890956419094521135794239022520483070564946117446806462237887659338314388798613038329794218062048561377809186193771756917849460261317778716722639794686026731534084701626696038792454404378075110142955650747768272709544670553513317069400660183491795532816027618764171117487688243182884165032499002375025881485508410394512314949347841938511901769970841923165849087537165043136942164283681440391237138100233320514047253433799727695948795957295132567910096189204691490553857075712288080074061140888840312979073844919067862557280015762372099078060074129077392335969071810402256723829844467834647418810051942374961611332207580311976977067905597004468653319165079829952253644508515785503224650261580896181402163296298586554061518896431770328761518868275632632581886344121431164307287341564577420521228798381930035150089196559183135825830756141799833699884442949563013675048994355718035278938289430736401492780774266463378675856256473553126296045211385696905699296970482224898208165464083786254903851569895885724327790950170878429748340853377132252038701543362086067333675921318708046923576059900781582316955068438043704929764487165839722995435823681674873011673217937888235407740869726961829773950321794209371148453023815257425321538609226279551057409841612770494574324623013129673933749638715298545329681709736490958590979080848737821506433269198021100858971869303965670324704640265843983183978358450270731136267512106512051815260650422502330417391324674782765762498096555019507823636437281711650926198714680192537836324096002135069732958959044866873577406836996202737938278106341661506867771878509538408257455573984249218089595512780660919576707874185522132840262314796223996145329199801747632825473829440148815528463391036726594379685666841983903094415632097186215773946378594347312699454664463427743702530775966358329317845332174983648209765023179110333564400133535602655850723834879656545285222300593531691550037787240663430269192633638370662510270376861539057531841283666213904330015889887762113957495333270787132769855567869787214434635360191435040686729301506962774633065614183854883130070378990670933003019557947300197274070833974942933814248856557855278027939545836434687696889943934717615239205140254475927685087662716025249630320640756235317697295882134143487867814890416137163151760033221241856116242925779693260872375505961785969493387377946790249372861216786073448046278883639861355401179426649309619681192646141268685403727296592293631429177794609269943258450165765277827683202226863571771274511149635805585253502891590787982556146865017871195724716594850552260996060067999372958521331637478516574337741129575103118750608864693473414114523958773960299579933951684558838142086505261684748697048097187864499602904448500673956178048608063846158011986707450127676801951961421379258188101402042455468959226578237024989462596999576026227829618315073127275599447311037937050869534143029295113108581483023283473378888067689916809249732898561666747965073492879421478856985273208476871627446819406865037817801175048907324296245820315760186911147837157657071287020713898988676243703799218333628009132898371688304251425442894928202002930970563788581320870506968520103783590275754807527315904465817721341655506376423172430481601266941731521434612093981211279536846953849343328999401530296978620890123684233140096328435871246241895567313268816520870765738762615829403749044509417707400209040512306751052646091019376017917209863964959510358033328436487557002879632156259652279275492812244400302187403752654711503449463850701511800264292629793960440816268034635970403003033080266474949393820451205132774388255339237392355412228242801747437941931744392079202223106382012516256556031741351070682665707823903115279087463290289995486538060928472023337120680056059806397996581754786956695041155993997749755885957262510068892924981679770923176018904138675835753833116631767114630128552772557036592541742471400512020554540880628800709302472856677013651718996564870642494708739071704534730382742234128796784997630251960478287955734852745844322522549711817953312641869565514843932199370184643956031086917033669995213589695988683344168601450021212935490425204774370069823729365487480025284855747305669260052431108567965773034985111935804108957638748321042377260431107977592814784210492205875439850294692828029054293838374047380719910567191805768862284329886186628540355488845038742785277102442857975198437999091874658181458925105302492477348275029693388457416503446319708892822247710603731644998732564914291991105659386241061313388661833175412043632600509244247364135413725914668319408573696004493417345075688744721103978581647709908381781877626034814975963942300027523536235491549263599850517274898566291506013973684346848218514411828003664808421531775680655904840016077353632333542384220630179985484318781384377552400304058360563237738097778733708932488343045245476855812272355353430549010311036600871815428500005931094215247987260828601690546314497044579254143115422599264293643842965158907437537291124414699335024577404646780926106451648262671585174649132001473765329406659680246139064980260342380975376526867128409110585888055236540709362237465434239627631438001884907835275265146848334362478056104846351670952615827401789410766343181170082522663669219637813331294969457235546086895407329578892126469834084703521511774877755835231871693621095077920048351334968102402330245930906121273594278193296035088821885363707697707621848218641651014396289442757131733709994596122319091034381757060547804035328645709001637445707525013316322524164762999380958349141814051868839845712028721508437750589207487677771301457305518154339886138400766068725016498656565481805327631432159701957714930759111452237497785671946291076578379047120799876049385771889427928657023328506318211375053359782990225198190912028810746253421849795871274016359702033406641655850557478509592479527002351971492472338933192449452833155507405852255230096394469392174964542296551923360800209648464186459696161506230441604578603199937805968471670617759829083531987199202120156480412398921378587230007884446750968804000139185435945491947079522494778958985155637994198656181421166438090924646534604079950990858521449960575279318579179268765273520363080813157522115138512637407835209202393423470861977725768957536200418253949019839931666870058141394824835629606151718227244842839741686907229175271291578459982257883262510899433474149070458472537891021272586103955663502580916570558914546841756279601372385599285757600019000873314744091989508605505527660353616909616867157115409622484533914213909481532943427213513809186298620433547271226783786183863294475873728348614325860274815813970614418037310609139710492858870922577043149248232127344921088103975354950954860830854059997287424599894010254683760219568452985850466748102149590040183175272863111482931910682880702212808293885177248130728308073668053159973474943695621034372044731557080692261608718169793780419007996885060014721720275558868614013671292375854673640514837169679113928785166650194128800573743341077633125435880945946639815969845086725650840877770317031825979804865928558975047864456965359277647009494616284545328866948693941600401890531269758704708940334878533085368683204063339374512225094087640195428194829833004606309332877997883253170811758943950828229249270653274798079544923392538020625008716602239205531817324369276998530892187498468029140761829447606919348882552949910068874499294432196436100013310206037572472802196233875626196275351708335337094021047977881455266642623076414038894842864268701675100914870782718351320661742679426327854806199180196237516971597141010769237364802167261368401476458646360420411852906352557409556976938101834122331958939919372802208844554772321084208789794837087655519170558372862824321805789740726600413905216188033417198238987197311937569283877226048213128265552507923651661002536106981160792626707596348244563444010470580943955578228327394942645577411364024356415909714340576863321947808255752930088791259680081186430764595417163082752086116332564148876131879574208877141760382062412887601613080223807113134160404530305575003917603180029601606498609303899883977082492973779779971776798045709378255532740522222073012736622550886340898977342467153582563057254761384252711488949585440990785541287443181828508273827788272238930833494563812148950270359192958989602294675457396322832781041290200659567260487551894051528748787490117682218019508529555320839648377110850932122611727379724629566201539016935229762931009976659039031262009103274384039080121685602791572801314145223511479459757658066797093627673056226431511998184119734158302484480139767658086675132189419877300976611325764445121586434178013091839793726638947316667950023260350222260201759336674816365203980263334717172440353291079741911411824065512572129703356101556972305079970083700753064335945324509655036514450837578533257566383361299879595352215321311283603028945979050798977588381486382153669495900896387555390297202945739021371030929704769853887678455804651695089669403533979294559456951513921455110982580380061416743273639727857649535611548923427266845727238146178652331423712811863522485863478791067828960891046706489720338161488393552311457104646563035367721634775756747979991532431635895173171589231361519810926242766784960220329193672830566922305304488409870105777661626892284096732458074960835200284869642841926133789041855792412886120944558352445375483821735985824976032175607483793214816358004609508329812293655816344828853951324003174999803230973563107735642773860334033383070012499001785711411663381305968064093007162370679949647250316940478138007649849735445643052877832879207964327174411358584956808341810217221739736918048513617122505984205994135001793554006417049604378998189089647502819900164811796870888083067026673271605230223699487526932036343944267024511790494982597619171772389438302422111474043304849875640100230690160968747696783909109496784843126594275437824224077609961479732733578307353831519778640573908080091122302692740636775780708052782271405240997839429297919879033410382450570263459360572260139529125177767762273687593920603818327314796128684182884161936070831613963910841391021725797407749808490329500785357753406351900466072400639241609421832129018450600153134620025841984374700450129644467314750478368011314610117419561422427869460074037128583214845711927001347922985569947709707541659763393729112020178891978725636398923376354505778033487115531179722534252490099069385488855407985766738124474991984322114073028991118762912634696344197317261376407594476973256107338321808411508906783120072093955512098076981353641816893360154352992794071248077515359100515332510082162647919480753300563347786044579845149963712433525785081770804181270152631076645762581327913848566327903852036335732522356814787412222794152440791927781378262629582014398363021525340804013998575577159119659709802955090193943308635521353792074382562592724696633376329404512602849355221005217830565123848256912972777454889952847604335935683801518612203385579937120365804650975382371894936251177338784265238968875351314039457704903457130159087728287625240907812173260686068726475519282801995281282177778020008121308757024766525443390929533519408135773585018551641823664727523829833790021640038241376861636774833050829631413971115635217745178057891618124994953402792576548867426208829422391413251132974073071738227105973518497383130920730556096732761357208695976347839516720593614911582429580434877103278064152664406855892546436032098637401697750845966764782421483441563517513986211422822235557627187892877316093056994379513745083470943123913328977248760381079815219708818863133683228902086329648255519829364226718099538204358324510336269608104497841007833738094963174514013391597686348806399722075092290888647278006868964930329127431703577564610738063247554146626381608967747596421115173924589157716248051658239157310677170137403386398285118643675368874450871537905846874124695017741946333280465581810250294813941797425266875816234984967920375347346715361028731396716134455692892897717987570825388438286564762052137608816040599608054456516047746141932078216935237637687921645123189711676160713205946765126829585514387732973837962313238004016069480955839286127334140281211752152939777085182863255042738296243572472817982045423710782188169131125361643972287779668248913217649268264069003226770546725621946324879508858909553273652105170691954772460019778852786176035336487242980951146980319324381674071333716931645246398798342168025861450251702226477861477332828979742160534467167754586909136211729442954659350355786058262533472023381466458593031252370203530438606171043128980956018629320052181767962014291507167496227149588566245802933447458961361559179095153473442295587593153305509271049713002658699713101180766391584961366964201256690681538683042606382636089215889990532259695246818990007495100199368149368347544129378830913466872537644230563197815871245803267722835453139215811305559756877985652908762853070643948811651918723397034730791126074438325387049900326556253326839926794426880688179611808597209926778389581344509474526773468723319072293653523613973195983452812747606686761704260174233942146553650702505735059605440176083065735741709699156009039710852483584856043566677456160182073719191492971200891478100334242873913960499791736641437894850639662890731945547595207290357388677133639840495696455641083089668004480743117638873891439153312669336667252174044769622391965265955600326541624931095136121572775420295354961911375181504426202893216658882494535041555959072128443912447711674687141646957182175476520892852536884631387385252460230107461163029859915623051706997055084889025169526031519476532058550948999848185674137100094414066823366244520312240502506706187239770591517745514466372424623838134568858873042629048533748876115665562159452018529821319393628290144656719552580271785573319357707727996931211887901048364265446501159852883172462650646693799949756374642459623309495188400242311712070310195934103373271879480450372402739470261398951489087385527852197805622235497727994280199106824160424652050752326130765443958987350890625430908409441841348080744450423422362761815018676823826921839606290159390846765120033578150370707576050571808330546436605104662165054498197747705136491685269509973903360867104614090657761148515836942532225768699368373662536289661189526962935802032393877296258469323271062594961143336235290444352574205001867156935477494213367365532985321277107046237287676290121957904377217915644614078272030001111051120232417980586533173939173718218786205967336970137307305449277012432154033372104544995066579740093216949427148736524981746999068647580540096235154974467800271750647370523815010327443966612955014198468365202040456555647506588769915581100795002665618047317159674401736914839832758214363781549508229750753722672053892733188814781849185460814273984674570121920195823135045544012322121737145814436489237323409653606259176758982889578982415798748764646400008241508351038673891131396904282684991847716194297261638938041779565924978051921335904979282000355517068086992458637522612284226211665599411879207877165741769003161469844980965283913324250542732258784236337630267661371534199506992876747036984899092376746819810152018645349858296266007166827770645452211373586963956151886328920148555743278420645597094462444239883987840223571343115700151637058223897178487782010012769172616468882940274195046589543879905513654625481064714005106334997469758894403980761286280539129315841930510126646321513987279593833648475557879985607084533895247557680261321708376647052674426656828630037694351531473513677365690634661765126298908270472731653920444175186079306815307244410017371037772703465398320114351184173665728237568610712889318811574184165021442326028170602580640197360237595695826720738900208948177165619652323481938554627520147737661941820805423183475006481432868679283718954587154662514554737285267856404913332753727127139900512606949101973894618162333653950438633109292801580020015385693064736139221284929357755342020067775355120041630132952913436951347731062834695304558172179239735098866886276893682424837182123082210934795372854598585567312698504510866495897715285355987324720139311054250167287301018677697450391817204461271860025281316179133557834132762436094613422470365161755353815963075423990332762234634528617204772665026917836341101406400326053796243144261382320618562594910047844097402177852557630335920506484636746824859694656569917066214126378611608215604183102460599173151264963323907677231027095358235145353143804740995585272150649243610300288268863971506348578617336775804483586467926069807677323526244770160729298651608174662250283387384211925998899805025254415445907430315359708314507992875399221000598456719280859945819164895238594270299243508972102673748225690572880172988319301663508747254810235799012894794673118749423934057185202629649756400144501122614535094828822239977111650049613882425550668131372420181963530111613647459988447068797552020032655611426129245021427238460335254775191313020987806921435694583052367795812072192099003196600048229746518054415206121686955547182852022585092465521249063287389147638045816472800437352686034967040960611112389704025693803989405101136215618095942311050812925015939294971216566010580259582232955319649347287921523875955290006895545828402073036858630837296687797313490159288102392560366160648101665590450042527164810907903456926250155372171769002998686601716817139434204502932564739321281628022450976135516200268020444840751949128340918684300964651117499461537079623743849609564679972439985596978651123078597119669532176646193581604058420511913247560199305476794583146496797448244536564481889098422985584860096577424863883089515170616014593700197912617723642562525639432015606388731247779236520995732413851604439735312829738201483043981871347524587184592908858329528263985292222235360456854702931971903705532885281689634199469912772028499282771630027885756716639631952732253106160189331421985592034157859958732421430000583339125452679273803850474508120929861914434664505871148975178791045104421133955649699122096590393554744695924904892808544244951468417984885893161160327139093773352975289546588162386622978353335149238114110614937372593819282083107610163928619864154739332510422595044203842712461113970528297510165604243587223219956445210609566668927362615998965543757234164766779831941905201914762484396196357471084750326246733242031880147806544639481509911006053369493170496821507572679776670980557199687265403142978861159574212543935982639131191771385304490223216932144724740988093985972034615758741297069365883112279032470529752428794285490632886994843932165099248983095291483837549795501617720704338312244017445862640241439818506437257259054911810928867725333803166649646752509188919077555997552215851169308898219065862237736069396922028669682537093372125338754386881732420566425812404010894412233574926008404743062386273340597196718172194221923593914576619710465090588120700206367500647108438139847276649972021740063209119664339235106145961454582630823672153955418592610090611891033895477304582150746765713913799240391950148709148005824900949471427925380469068032786745371198825642541255184066016699033714711945970757568984481582484535143164950396811393634031050273814488500368268126369866441810873108079759117072558295719217075887844432549789312243632338811136214408471241716138608419216074563866017742137671334935254526431952855991865824718634368285566425655579086470803271226771360290204128677398407402325366656898601747026915321392905109479678752345795101295350546045179150539590708112143353693302262704907623194196924073594524715881472306096530040182042929878218971392940185551716569681473743703874469622074580950686293425403161899769259822171394564257893044022155999637246955693044384173555398833149549904868857487659333741206036589221558398235877412791059919200604425596079291535914510004009963808320017694111147391442348108005696137325019181227563843899072357727437026637610402398487008672201432068176548031696395980058423713091186534062427701451777057819879057880789021643119287699003596705667198190959378867193231999871196976890886705280705996630429182129428697216266224252855830678113837819566394252426186528780554673026546146511694331033150475828717569755205723542841109465531969088483916499588315655132708133058958809715044922691761404643036692272486238816608962824913826796767250084268163517081520772372394860288282221107022561957449028912478647289298903135372589381639350953058289616469205146433158114381486928754727297674494481833086024286593918649118303552428320071169171512092064165333013143517072183167671353166862501039436646739742732598054566788226105325309236676311764003609073070615028124499924587089139089519957387685013879153743931376619835543699171856441250245417749327881800765617088239422907938656849781072471702745570768460869843936810238728577188463677560511850121172412564943376425835043326979671643826915130644699849155566723166811491192138441391904705918426537552262993212715518695909077957920117403926479979063567861937451782033074781887469471898915288066336329055442233053537497372696418937324510735813583881311224610435502136300449127183994340966304364489781538745686562821746922595381013144379060076869490960886781446378476549106645449243933510629241888706402087532950220456309943188380399076191593908578201288433727732443796165648472734801125138816768614091429586767497217798663994722487216455044756219535439213481601247673301766191440498810224433705752704163471535305523340787311478092023104051645708367063654326056036483829576590495862780922495694162482576243198353310671277305242484134879220290792640472472935577494281847537947498272264808244732071992174102458152318752185219281911883791624853341894736794102786618028005256536439455397187603604016088075454505285711421958435186159901704966988363784792779431283378368756971265072161729216361107744870966453872527935313284291472448963444551652665754991232988465912663511008664239891095502175250084401127413489482157253954622758343678664404564488224997271428353786245367764185406635769169085450600075201869282260951707887782954370157230837238150546126088020381324473145203100833134277591269900882647565774506106225811801095998898708999374744189122341986176530689181834280454305205535798449563245725553261488831741536224101257612086738615111944976634530007053020518593465225490956719684421887670601265160567427308892554471198394040361608789763915023909459510930001598116128157241595128748895566273881867997109309523212285122210073592187792403486780869806989397682490779280287559115657416278642558409245615979105464737546393361931682718558281444857175949347431605121393295939866144654533418165106900352197909789819007979790386592873252867089913626904794184200633185470914422169581455811407873379467116047552370159952505504923728327206823679618967424821771869685481986392543855336179748474823249043604254791486208078464460472730435478991007505509690646221696493642719378259714377791351455749420236371063791955748650324584888182870168397137533954521852169719425927897984786012978998164931197699836200815953055906157530450697261933386491308410281554510096017243417469717350356730311671647114166753893609441426491194936374166262312665351938430991641371211763803434649290460908859509298681502689674389141996237630968168852593467709054084172513449358928657024690147496028225873406080342857098562255391017088951188362134310440292659310270442054851352088904058217936869326425537479275616715882717531262851690365345556909828387111463836337468623887321994577665302271975393488602693661506276769591294106210651591464080617812827484649926699283933408978529661606002333177653878466540400084290577405708689165493279695466123633456679970391429741578710205042262918808152928013687262826402026055616774269203054203203910590018349548863754130499460038878859332782019708056007326941274405684307393494040675670065837953591144708788580441656947920800198735110017436570786616607205009459831443250286589864429982822474540982233023165095710594558794623577624897227520826892785340663975192251862451070989731779459259116689049091973879598907946183179150978007819119665707161127475658541413121241278235751871441453267354063045085246412891724688942175323436649377057557586338206015851204227602036576373914643864679722042082278281698364876949158366097022291801333425425713120100358706562215149147736221261685147361303071027734933386806086758273195227956498080351565924198061675091463974911117722188101969864687147973401660916221288311820849750071927670437514608711578311136992079320298049137187108142972821233639752314001470332118920899469798586423535394299771327429058562011049683692288544557895505722117398164611752801092496197235809010988907085863533897763328582373509806663408833955896556826222467434326418628620400166391584421341173281980875257931222216785920504214044457394332620414327564373251750752795128701382249885451911193199143847501036238974717349835833216748035713020993822720846014661985178894595226001592252627272464592487155026802842505610489035890319782990313356571560450562145158015844990580867549003607467333389395100956289981828393198292911127467923696914958663983307610490580721627673434077445732614579459186113510074084915908584766039801605895708823356240964130271346165282426499562088193937518571636497900108843873981824449381214930748012218029418561427416783280510205087694354625078559517089853053687549500800404473257528304675917974871476268720555003837755580326557072729598888511303327678567789001445076540391730424051548533895313939884046036504183430257509737994386580804768239470478874230777600684392298124669944140503801814471845415176557021214797649147053611701567484679575794066698596797219338430213076480387174730395274493213363275002018731703277833440072178455186681873686271491733735223823751346782962422849841868992263320153729470671702638536988540062670405288630557617123399609424136384736194498693890342613495474336228179367801045888977423182758497020145884106811287415290080961723662688860412292887334303599719420135502416919422648894818620873739451897216631624769118650431838023746202316800183254477463551414093934995934016650812951885090545782701091715520724991568869464302323696709106046158882866298185909184706676597139882253640983002554908365510999856573584170389633870551203729040876510924789595536201145029958593986183434338455827827523972863503289740133806230389875619260373721365109506142179029142617236786022445655091633179296429077812656504730391298040529363332636308809505193433940614401485637561115672265634276265585956428275937061623907626915014837781033076744059168485363961927683114421074763031838476064486032873490835974324059085243032385536270708058659185538627782463024261694932924040175961051565179691642114629479678926036335442941031639127006012908816416269179073808545194649669882190248941780009937069260365246491081422246310967966545157467244129841963200765114451066245305127901868447254655182551815384138788266062317858158439038692861676011441943979148191803100303137176416865310577503391041192116425063156709719846978848373812395370524228020709025096078138329157082113211496381042709081066423754613831025378960398413394429296816536169656625309717039152151667085008424993200226540835002008413733165086262168617113816807245402467855489774859265265012334073867931556762209982471792973475002577791358217146357872244830442147492084503973589664995644938968778358256208501779051891375376734699775139322035006939414661218818900557423173769246217700965444941752479011115540693727496343655793797910531073300477732431685813645018090680364462727666493840829148490799280527650055549125981280397656497210210809540063363144523811598217122936062712210517702993789255785259978660684000228967514488014781204768089211996147954721966515731678930187484917993054142558881896132998017268965950484224253781198025057053129915264104501851115878830242296706460793331151946531543004290197390047906399704387470036808033665858344693025183836812198480165577850917542000911230147988396553494424750565453467532401554755744072092451832237796527675284211872766567943092454460052720340151235154225392035099997519523662949588797992824063614088558173155373687136243202443873487401342954642089972582770700248291226109816240107454981543383524545098892660373019251273143074053424042773654374777734636248532275281107310448395621700868205523120180522246919771597051116006786820307238179285353016215150665813720164128305154780632437785978270878423790208203675166635903658969568002763118544941213618287695267946596875775567898518107081140800654639096002476318778196383136578008935317482184658360768470599471593906597220752740522934747751817527924717974820839432003966695385870620146085432992366008431735735831854529117008747572730078111186176040952810113190980718363130996360897438668193806438139266903360867384456273352942283588803650539342848286631305762083466083756120073038940602275762128235260440567579437578256245926681308650551862424922058995855887564092039570328293517717494351383239952594987467772596944011735547158809782023497262532753633272226490261284378582732045953170493259937538330713942300353260723520371625854515100982591763802922545577009880258580165180369535882008682825506480013639836825622267484718845064102024185657855783269149355819514946841520791836551735563398978358886072728942750498063480525597295639196603442253305117146510350994532133028122716822681443790299714478425374701025023204960120085047623014675437478851487016924686846953066701691835932429305081916409445198346145190720681589023478227759358777275928029143655010757004515164514202106592654202737821847327062488423332363237251585680452621944665588860777261334995057442496857106013951722154849821499550776468022589890607922783195497022106671889928132841693080432703358799909237436454563516359561132089205971876324047693280677368189344481357534344734765094706411261376287120335249129676980114484090871355777653378952720860514266903778941141533451662057959129294751701855473553524776704087005478238326433887905809428957123334249650026510460138649543858577349545531135502177667344286683234479407875925310897781572879655993732122179768378233236979611633414457429649031862753079564298220139108977001545349165022413544748021827721593476707505456985204151043326581732407871565545315838032830413981961818013785691790861619142531757382496433324703920395491806799614923296364262176651838971109683263783942306419447311399456225945497689121409719863988562351292906553048794471160074897726985232965807360655277927565048123360586780458296893305675561513998865968851653850637604506063339414234107513173846686192736083440304324717737390834406485648063644301734209335505465135002170920270166634983347536346112592386980347561237108423692409334355508083978046421063149820643323892351333191498993797607029393918188502118771699898199666861818560253644508311502532909716765794234826522273180049229930068462738800689076721188760176533087694028596296170432589718775047247718393863888118613125875864594647980852947570275506141596301088199620720458032924102652562899599894255693586632819601565893107838736989810577774580019220013869244293589841498558917484025452233029762913629934323804268413228499683832644553440911313523912474010762409248782455245179845383602918300402235539795276812628822694496553494666972090310596741828860266722922380078366267988591744362655370557453619687658355766499244132183029659932375697745376860578056516572047856148987123261672181437562109858374990068141977407558871840350990294013782169318606037327276605813927868423136877795920212634346420700835305511963218470456487898933678292181828144959193913482565995835626485222258169135089406171500546297688029659642109466648708025598872513022147972211143886054339488371022931005270453148289935724835907453605386621013676592990736805396524873451583211328163846763451264445592405545175628704832372473233326179736833186744630026386946513349212429838113243962326521578231971983375313623194043133744069775600644971491217133281901022988223963213030667311544263646140920153144176189076085899829341058049290927766604530625719386333912953375344620241982012251625346501723608589287099085714099137388507564233447613891792847141221437863923628943983288780225162702059245668079104738859082557364060719945825650643850194062482125185997092228903676599891750688201161159873977249152845133608378521469549511552353082272823999325165267006989066766528807671428481379046549634998319109963430135751036481823900968710253202995436072876710752002111316677622227038592702960748760572652497713964287364700111143891573503405155854086688474356598052547427390926793111132878582523716860721503913420437631485097362882358810259080332302386286209419769872283367188503250407005616973154986485243569551544611690319729545927139963837754129945017998848878097095255040431569201992266283830348152305695143719524742500411201830185607745218493045884569844414261219302615316532181915260728077961744567044584198845719466366108054928648899104285228076058942306303128483467831521567475564933326772787641686197453340215748843414699137697573642481828744693833162532705631571256546884320487042384098426127357644848661493027315257056649008691903668453565112085924158931566588791296270713766540973434340774286258397408221304411469488813293687662727015648647740058340833059418734109668731616525505259699814856895522180099863214441152477337396060015664493960851446907896789523597491304412009654476176067317264117140342133423051849720983458178041357003308465341581491227767371796461326894529291514657405021596887376819328663695764300130715765493149669374250597048492867639480046123136336192080275367862458737694890734820605357283895343566315143608239425433028878015289788877214336585302118359107424697313369322731567962367738257282534545552898138548651617953618074170116290670898886388087664044786339033192536811919813282323682854741565319190038007892721444662720789284532631349591011856262728426248824292966559677890339865071656982853477857642724802030888259118246130476527235390722583160772870173083018544986434363575373451954368528069139482220426527750117857121461987407994412647204364142018717627373736454230732232379299894932446168218515482038664748633510642483685170939228117760375557012885068620046174257381646712902449431372631920923957148919896970955153847447038494813880091329592990174456805679876061023242930614413972409980987720247087316095395367904415211663893719457718255796136718221546771698626344913256176080355803103110645186194975277478111641306844366188408437203348995865261708143508649124767742532471921004376804572572706707812194727622812769201993752555470824326791698462393491882127082602567917041932827285494617034353848134188781959572647682208047413771171652928629999846616798769108574358611138526783850548954640383574645889308390530052469565092441196050399398226928496161382544000342421492684322345159474940689344665688604445914178373747251707690793586727629438636656420113723444461889267958774862496657394589011563991765470175202922214271945190884995337589169878824152912662822185836286103610774031644459389027296493398648936952633242324369796624319960503716004620723126061785028170732516788761033181013209493736053994982795982605384045098161704453627452886859894658474912033747012549041947441614569451881776128931510632966886031605075889470010271227763916223270939756403986985934903110250152106051161193080168574879634455166437409033290356368827602294334277603474929561776941023491449156986763878530841701533543024191571998059857667026219610059629662182599551546431923561796722511022191658690700639606089289128016220030472417672796941239425422906215664820371696629032118137654550655470887347016918149407594055359712261247133852360815570717992855707771859896620379379430870802468157231377186688051968659765086464867831209809337755713299400504011266271908807295108094277874758981729855339730774710850680495748214653137478642781197767147936581171863130194506333549733632596519910575198167964098320551377298232716318343889719211272300256718703125444650386784507235489547295534682589913784928822271932489402216818759525505957050177888328081476623444978230282033134697301500750415603750038638681008196015443268237933819451929400389470191088116903247054212475021080228030499115298327137424453085441331942274510736042261939300943057379274128865337425579806850213854665027626196889743428838679833448343441505112031850958141236049345396080417967212099075738232817641441578726888556593934602455892048784382715626633517943697439960230450269891520367046210641776730746918691041144690087518856622963828899671944853517328954219314786453960882986244639055339595501858742375902213274178159611014476474642350273354365693075462400802451925897515651226540853500236240897697469559527900960870875396206550003404062264783650732313204402092126620526154832155222096670040733945706615273765760842820800098989402810230126534356813803175248949806458151377922483612565044915823318660953896984024930815226249896150443954486086637279975150296038262879254381491921935542661023513202796973995556546498317739481781935336570702753041229131058553411108481410321710574116454020252624496830088246890775099373012101849378898275882416581753446075845256004636128841312682604977084849292933104590747285233403486961250089507378214924298994364793968339811480528115727635143631142583477574960478192584663527848435422386377302360725493524222761577258669803537868219045377231675734922837628881095218009052056407325005705989974236612837815816625759820992772292256879996289753799139955250645985435997099190489500249271001517206600941665632095588853857850631179975715143355005953853614826080519459922245505277127093817924851738621869711871680658916906699721841755529254932371522591647640586701536632977152026603608455003368907667780825016366963549734566524208168070976050977340563990815746100156774890761999509751463883292445479513056471100443292469565817212285301247135854690446764705097375857638967737830799564733508625041766550656496881838137009207673777304320483935565645361241553752201531302937735631654805454017075871384258340104289509209611818058741531309582329749026588512458538493943712061800931673402538613887516951192970885417090059847840081608291787251225559394582313546711407478597407429274899337945867849415993930003472099700904840063863589194814533301141322659150155232895302873138937228873914891724751777424102560367489685712317639152228982560339024522276151042017503103937884017064463172354106491523875782205469892871815334928787491160743640325879725535602207801975143648232561505988222096834601650515307703846091279950350766055896572101251644888966579432931908988567339801355293662690144338743178319879970498249197153503824871198836959310521025673810556108578254061848952844209791604314145726532181584806882832935578308752001873398683410494675850336510574283791126769886733005323499880953441828257143621033692060097153211951992971357392021070266849450922090029653954474101741500084787206644017363619673262573902836032532902074426511799564872429424698861961977756564908171531490673819368893042485564239606839019831249780782444805199610097264216206998264613198003349495300889948467531241086460102806594214761266433815367190272203519724110547778282017452630921800063008199308248981577421097565330932157147717678708419640829697161662629594066590571141374016882065902126662505671957988491447982469378786058976895479114015569370871035749987312901988337990418822425009035353882624812118397934845722042586806809041888265557705669342107592385209905034255757852760807899573826674077224950169130360301233503306255463805488344988392133783664010124558408012714439338185153563064155758634609018503803718895078432929498284610356419174091358325886689286207932256876363196601590907771902816669148359054767229506046221239602495172187137743640298135722974030508752452629588961260142406208872162203561233619468299227898356285558994891839736623060691987771268896170151380815753443796267697832507168856581662816450884484096852429895857769957374583471749118492371897910128059824395425659716414250016321393903853800651149306312017491295355781906760602396402818137745371712136653893605049386251474109993836886859909055841539993349854260827546131784913791639960987300100490409012049210056800504302031884015545197203736371744739219665909168299846392355381873913132505777828679265495456006241208994667801618595986131347185836002486809334246952848005128858584200671646989951986470536012472711797995008619546642560770568414540186021398018261320298937590380359909350933237792450588125896196851402526663014079488486974244260414619860444061028507057561366098156356027351191990206637644206702125584860327710591808540454110000984094106601661157414676437143704285647129752200635872934161630990896769206052371191189984096881375274286459312257887212073102332996868545177453655968168470363815611688584562471832951116003076303456636245102081403256817886902965948345593140447158047735845479037937337893952032650867093269907665887849777343896934190734915202432107517865827868166168144884393983239322600593080428160506499006288302646160102842593315135414817349378833829854734737642206667244282827530002395872168292551727934010507158766729420884300477801618684770262547924591928069441066049287780549810488692460118387481647890886869829461537726560040481509283202284714905951315435900214330106292255990389437302480155266731405017835282418713103642665533627864847174925296799131811474508510968091872503571133923514848805283018935742816088143151060975238284556155827526324868763766521837494438384517718281100807887027207709477341803540838880031877787051763559086113419022371882811600364869515942017921189311743552747315257353260120258740682212080039746775614634947499883412590252555934472740000900801325490933286585365046856904369851398526951778799939229926353949746578071879022151218758503048297273767562931957938885120277394703397964726442285047890461463857909801535691485597704302014762751370338777555269224328018169485011166732256209050453664633963204802069954690183536814832723674530555574002590179670340119815654992095918737776495011361450037736180003191613436573474161492355248749718644770452941066818350000541394315688552791544054420715713863934778665656808989539700648242400010088902856063643358213147361819778816436555788618605005414432206423220527640771836069792801204149739263167581165620244571971005212691842918779817145033286900997552848586041078674187275415530659385815980324053231323703815781505384737444018468385851233609731325102185374355932075438049516445260240586757781511699504814015357151478198611147634705936367352245065786839396476860567258310639639026896823171496332217370653898562927483923885050989666864469379037754951602498242991826159612750208811699008228499221473607633879352338346617791270151698617355749841986169953617610264143631898609195553440876307359035836214525373247697917376146801542928995224412576792782612870055944792111834099380185106365928042774513374018467444788445201219340265058985141722679072990191137434513410039569989633897781085625363254031323742187711994931142192932381556333732255631780573693462442655618783995948523983222814536344283325354492376891665047471148328812365665367588801953033423968334741988342220930345406436472404365051163179608714066442332146421483978375850799473608081234001746965776270282718250449817805084981299590342387925434441319337582339384990079608932871969869158705072672731097883998228737369821835217272103650388160794358657316388552093867069881875768597973015432692749490252608844844160122342352175216807619065683620289546869020815582062643775711323467388771754379567698196885059621227520793248539539094288320434328884896370054623351082858290706223159983978015652411266868758968217283720373400668367883066673634500339381836722698807320363054555563328410108275895395751131992360681955643554733621712353604681572478526626575624435977278880848535512551214850985690663447867686498522581561436533163782462309217873603014693374639408912579596180418356335861512885808141962310080111010207891190543679025836161329867635961433610776043733646431171679797426209250466287759327520525520647992614069393526120431833466555364415616521450727377429704947928045921981056552997133742877312761176199777676564769076440513894933712188947997421736517282303947634945296639212299955351007108394765074685481953659277711626423881801197137421803491132329624470068723785607906010648732452013125560444193698944101773498097612164457481385250727870228419701743333074800565851942582705782634549497956109538142973359823129204897050993979130747261897773846133653318717444297030422487652841689215958317901419463798300367359420820834438898642398730154021395459444728265953115943594113765415701760403060227265201395467584662767486036017538537053869144492682730845918509781508122759524481094542733994530297121857411177932713447257028019830419401841096472682942106540864976153447316181863023898110346300049548483331024525577024663290183729471333029918971295392400910891904613294626482689054022490188892408826344932833651471390574009025256461348653619443086278311517047249963913613057631241864399501373041525126148257518877538933642938555137869924759963401170231461763449529090309931628288183306046371813820502789013532525674709788089790105059199513144734751756033934891392896805309283092987838792288698500725612479766525550811140491690969453199594414316074095983241913902700962128889512720422625771797234257569597841345562927389246446434831405446518936534429490481515746709755936871732796680810140286708574352492607098812864569971507559097410989401322753801853555303858737840099529943463440165281876990093441742015603239419158488406589039169004869253997953439482155253152626778750493266821588981421622124930447031184360521642577413999467687260100887093196790375852515586528532440453593578597092680527303194526805289471817194043966093279386996983408517995442624803006511781944574273084095686111985502986210232659630344403094593374799264935000007491420451411015724362994498170502233752879949241659737527743768627747485484642608787576446926030704008387098889940100274280099900988493850152855787281567687829497980882047043892656816095130014985460087315194443643167414841784131765256530614535094911635751423205121950924957641729260864841422298136552809323589347996508151459108297121017424517315995826062482307106602023754144239227352797995030031697561056223515444039087650387676213184460607299666529220736955335006735210843267185540526039202078623255122112130218574773315284219031067053756848708845785876244536460523578223179740290106695234182920589891946795223481915546042236816176044586283213072155036803934497340452507699893720427068425304909071262061618911360924131988151634637666655751502436780666542225453654840072494973356297562234315884144574915557842391143440324249522310124680284515371263284763796359137692300738154105430941636977617365775451354208516981105045364156339013199179533236174507007229459183591571158635776029114922650996746688221844623001533298557775174949983781206578973352246357203275926548158394989099187719472416151898548361925851745215061111323519708543963881562851188350774452508366209634691494001006698334112427263025618191174446296869104957938880059193629697517191889450670779867312956215221148042667437062996128506141201630487285634348019735395478156937381852179740748820895588225742845476091920090983401266759812372309128349537379233274764687260518730810605712391603621478950577920156431520978776007294250390411699689659467243151434113460495023638779614416867175341174237435022101973631752266938914067102440192534083039543072759362984151876657527563899882766578730909819300872758715804162623620738657204764081951258902087583051691521018416073542800694530335054312286956060578431020302537717226836081569072084983842650303520805627469833803032137497540989491386999397086170038032135855828684355216295392598357124867746299514286351173360658436722525559747335599861687301812972974967184662183454440272335704890260612869967536693370702930039718232487233838126368216130174879872167722618305001229121616093931608874533435989372510997075985668128494019068462082905787156490822202070196773760066457738125547662426514585321611562006425513811120599138330191358542733471100115766209613131166467580893506922676221678984244577269611099848753579351181924273560695441550861068249110429907289101880262352746519121540323552616298721171449371434190881770375211962674324965144278085397818193624464592523458495836211097631753524952913523284198488224003466484517226296934818996521223765159170743043379859737174527574401529530664196720247898807055953812312207922027133730465294994404509696680885985702422151022814304050297996991636111141168822623076574650797348924070716316101860161590192878056694278900057929857726938317137985628954334803685560798500633739753045113099532170272741354333701389175837054106817393389220227302703376289422216278717277225379334019378953780935152725284989691019420930833114116635278510371517770955179874225220096020016989371372640135900231111877506297926958699935998693636409887726660625614618605245231365098060929891311248206721196703991196645429835537595603596888534712663836645816849958317747396634673143298445004746187465025144519615240474882880303634357645861815926252258792941846097704357973251650465225423244630447203011109902757703094833873065128468916965639368409627018788821294426829853374943321404804843264153633062232203277844581548377586790557882737960263154005861487734557017809417806252819219445191236435500596999060269818202493739180681368132370289983083498016378666397449715950476967867427970028070590165687598254666888586019707394128972074598806516086354216705817470795313139918686557787692828128585818674625138668118594803707402472211779593521715906739841927697182479539849763952229702922878868951711259980746322940056383574554581274504559153287176798192436336241310865114977208656108023264162066867354509458580664387623739687019254703886894086618418594461800406085149166424290655258016059672397587289811873937117751521683597368202332140826978525025628385043394230567099836465002510237859738237779749658030145326672700094331005103644236770350818517393872757572320835029411000841999217750780368474723198669877375577585746971758946314252503117947156198790075343865600598749659184363280666597157024926579548267139815074987015612639423138346110369112630311589607605924299275327615226386561046382435751956340568511375920126658279817365915898024593617829207951999031673025037678013309152679595652400924114320036433811241670323973775430684148938042182372002967245959381104532050389972174108399035373214594887532878818921947964008000943877470140653613461984907535432391920971124885178182407949411418483749761302134942987654952378179787179346744127217743359648783784086646676572322208014165261928483998446895221456856773452910724973974125188160133106209564320557772132913404462139746762681739116797367356907527782668527324877102420936108271119123106826200937416719087565832713472300073171005585666429071576999887830135938893153230896119447672023961509170210246685166898743999352524435139322039385193183934788506103381393925978615943160756032953538213432642451759646077372772810600585910295800540706355371792312664980163947897435976838466146660734197911978744221201068155579881460647749924566581301324936822813661618410421608127966024679992226690653080183168144024250050654678605074065084748418584914281727012836705660781671336047624923447626610516768643020383098920323673161401183617547051632850154559056951039196546392060020227982786805196618298409537896329815729577546210426192065330671250340661810045232114128599429152838390980047726245376494513078878078796777210108974584306308278822299090811319989419241907060964724705793681709443269297732564209704030484984514380107822910441672005734537325124572730399283739399243602911775061416239369460830670434548741486122644091461936182907497860712025021482171460844195564462816586184494796560996917600805710971511346426961054372082335186451151121152991575482222166622709117364666284722488128372747247471310947715547275828791217205510026104071585938403297037236340535087828591244652123504397228008349464934599325624155121164804967102377014918427666259370290283754035038290867263639320402971411367749899069834013481676077302690231942504433176045226111738759364496135793835475804342468415392156868919131615001162678092649174193824538149093908134047647416825887917416931445426196709912411773528447066413847067946069827621570185360335162468230012262355250917770666587564874074212423950055977280596439599569063064981467568248869551552800728938771493995458788229999422189843635406717075488237714359796678616032546389466258070220471443023897343451672275049998754222872755085599923031049777875445930149666220996264126796725354120514021322974390434802173147871882458616166505267133155110761869195403415177558695721517879262399897411861375502519472943503786328824261301721287169563520677382460121174000309856561391361122431513904758129858155662018213134324792907049477520427147870184833032018529377494846109692351217271403521531289909175411652663843760285396398035692472412827408659754440711973476481198566082037580099426510952211864056025618957916254264776026139609843014575128548503428477138977683857163797788902450985888090899310070556271286270916676310025258992320280064232690265558783632534237618327454184405789670239030069923659786761493769857079687759227205600715185469004626684414766636992804892134244630444506863853864955318067371568235674986271566644494605200758911713604177340674843437743657116446051782061924139302939670092725256199898289734718048461350784711736515509951046082983980790741277127985923330424974172692942402722204479308342087296471011483686268805662288628821440004006487678695972001230841077020153232809669171160189926014686417599298177853559033605441529144366216584052033378501746720630474682557009781172249274028773376736788654433769555485058508375328308101868979077184202882962962514060493275367874692106100568556670219571481760449508390079878412196960314581915723401269351853879329171379370007707114944358555067798395170680594603257411991385742445717185935450860560433622940164258377670408513432330873584871011974323915396830544599339663755978785642992347643078671585915350158042027529310226657457220267189503410069636299181169104821190178596144869235124269478351212418206611787420647641116728043200568920650348116000605768313533148824396196684428925182897218906699680556506842252473159457546617499416443299696424697768076515250409604440338376184739267268717492022569613915061271136740945687455020722119474428934465020822523467570363592712920503998429882984872754443592510161665153295107247173594832560346205231426105727368129046744643478177335760887612785761658730300852291405015187989285653584897471686354195951270635267096538109267567635423484898563531964420532782674518330317272363657787904654486194442850499548249511199037496903625833239728811687209847905864352631519638550625828548821308389669016974137339541709675949318462267273373250554168866062089193815255161041704775989762201939059299030194552319674458276729753318174396105856085551230651465785396109222918961705101391506597936302179220407606488038218901138153103546066183236653672883697741279493665781586659315490181336620970398588658310895186474266064321789689393956846380275086636375744547312698847984657073870938382817980412012275115836749010582018929113546712003974538284626305992205964323225569458786172245881878177156580183876598456893229730213410194263497750739798788360369826120586164318751303405004491417962741638448330933912828202308426256039450143218176891973734394573151524488609448936183010302614566606607947507139005841164143050888233959051927072716742034760400579137245341630764091481005947746248845682333852416887503438617461278595562420447119047803116914564848359654778838845279567459537708046214477576527874281950782791226746442268222339114760152401176666786410828030607265587872050388007424147162791564171480220692551943857092539440401123561474607446143421504686103248420294677851263179673904635927799810137175054800456197395819936477312289030214157676450140758695827941161492047589375438237361812684125797362518304714317335212364093758942867660218971958450613299590159494087378864199432018489836165863088027762457250406584051610146603772465256401054408662700997295196900884488834859628407766701287193819441098731424111627852363260991566143542371784357387806646245242353904896016232663252077084172952140659856963164795388410842392541263367977380185152151650362294582071065608123508948763396450832239000643197554651868867429794983445751887847596351618686499405216195279787352024337142427767415529549629956877904702982595653769987285304054819486257528039149692757923328418124183073113526781785500064227540797590950966921659665381716217840499658174472388290639019429880079174264228723337468503193939944571221297896658937911382167131698736962781564491444265694223381027944083061078499586748231257673690763265597759479158636677578956821722734815270070028960761151421390523701660731774674437320334603037406350687573986592646749804519431173855374798430938108193144030363946122595646767291371884014964976105745748389674057565987174805544150638328168563458193665085611547068762198439106280362555733396464438411955883032460450144585629347079108293849225028359320176145159590377287358033283168095851835019228686414105399287448473145658742495697793325332490631984591189955564154966117926106047233483830837751305827614583185589921208036915649751046533443901728355001096769220505890311520159032108916668644240893600127582167197506727788707495709180903376606253291731641396847126685213668679707988121872018528294607825375956212275848765553123893619501156968032306112311682756745599798340050395322708443841912184170561326353936697199658148545486712319878603395706392128341064927640542647159860713573341100146716214084736357526664357975069546971996014215899817926382391524619593025097910242193531474389794761268365436963085329549786409357239590689982854941944303786160235079751337024848337190853515528966349236302268858468811317572123805569458536676631495568685327724498475914645507206818800884795755464703392891767940008208078678515824632502567687229536715663851202864438370378774356566116607324361082702651628554249144190448260093447895167138581793898090688307814544408502264144716565127327243502697341189400366067917924270422836620859235388393935446627955032085921378324270777169574263985029881355736015119308731265256363617335659661453399184401414083367525118773098360967765880308601643734949612981100908049156140330242408397572910590355322320973831790263406278169224293969651639862344772126430080822706987944872236559174206833835444310617700119413371106082372538991409114165493791845976120752857802030224647491192577672993407916307423343905073403293263355530127503242729439081240091768834685568305030761476844372478177486450109240205378977136106264152991915077736420397367421427085309073116607616713423345793894950431902012734368677748754332662143314992155700017949818135847782039030906407410058436984932245993834836091913301902654841210100183423242107387489710977721872171036350625981711007025618612187401901525904305600954850974779782272177739881347063724578184926226691861563447662094653924321574783041924566324464977185252029842037641854897978200400457224572296502018733196591849330138824821648806082441744746224310114197895192996944414417697687191225189199022157976210872609051754314512064139044443453951677199409354795358048743557606880699230184783492875256454163027751381821648636928097703319588815907333969769723363642432481699402927344686567661056630260014618071755171271009658272648791954459079362439533267130646049513986373217903390162191667699601053220265568533400383628738504626094872173695970464491010764838880214201002987106810643092764962086269308870698410069691089570088331172074536054847821851188997348318170340451955083418495787735878273583103556986963242069446688313162283900988619943579669444936129878228221376896257424840003373655941186124021576347644282483953497910197449813790149097336947736736368571611089788298226135369670029786484039802036537805140854996047779002818764672556614688634335681024399919328784135388058670527515044747852063198113168468348400653475487086891094048371186437865767247334882089027651128844986267911533666003574684803536816214823991145283826139707945356702425920834085359215289006102779385280224197288304668949275523154400040386032803973591833434270596342769345079357364033392209934734188958632698879036145005337916508584623754927429363116133611508493704482082193740245604370520207403535423767230973961363706476698353461612962912173600753748949719007602857811955984988347259392398017078799744080187503138818316621843391513240949274669283593164721763106622190331884744862994345934155764142750252465376310681238986817422067287672595677835244629045122462731001886651555536726062672858455061945677813932154533164927906736480650535367052433761197736011644075038992040937909566120352541376195207759860083717182554679746366426956517438361599010766676563701431005642880016147967893457675660286472689013684115041266558210192985321274591929999698627308451017412073934421795181655493445116049501625086150154587634874412996224956595587023582104528527920352521975162267443451451965887989520914307698449435212683530988286016161442643259335599097440003020133810492331004619718961252683994810086304934957056746119720605407732666622492399330913470916746749191633812799660985793943720451157240855672202692770955573104534655935975053795699126737199105423396164119341937245534747748782976228420474632047610736879356330672149852052447554280523548205928710982771818722506139886988230238210157329011397795358195105975394390626279479629088099687337923054482341132335222476096404653442383338463646975191172134945204951293926871483171670916227434754034142896369234562185539327727859033305998387218541197269254379970127942426588037056046809291140562478477733692970006936218763572408904154037615696746883966810466959524858002586802260657371781520833173237601346865212677145462137669772786249618638466659720465482925560484902463407254380739601034556880977845998958585342981822417688537199380829765892634721455476711670416171699012345870852753648884108856365023328930409677001723688184539127237121885690583126213408411709316276620598921438302461783989062239070929580343450154529050125701413720837511386288181672464420617292461802619083787536858728264425961870834802383834163312371891189194439114411434773847011387643831699970325352329914000344906784382906065310762010848874067312280381829385822507861155331481567333551121671416712163121295472636577921715645294386439065666712494698599546237419489323279001639037094490723436098668491328727004217584762354098650573638831011162054088996306791207966924996247717001176048830993066986209554642321724110074080966575343658467483909014005691172940258923850256406540896775204781255798716022523733026634332491540672407536125237045839963029404545654363158590675072226318546294665330420724501021153721680328634978960801467584186819296777948028982708951232465026002807271843254488808068177643902679493376157867262344980277024587389204593024269279772413541169346345254379927041944240916371856206658033577771385943477611403690582710774407182864918556630238397588038510206629593885227978938556513872035710213312245524623856900353853679001336675056683712104349662727823061678371384669614299496917113150078997901568160624891994572380265909798795849286865556074981414658845162415113624914471368429472497296892399515573181540033378214763793168604482690527272818453889255791154702916862456408889681549128470458574575036803798175537506756486278008651620332680142874709109888640550179348080399190189229088899009917761259766134647916626722093349006115512806636372401218581548376956095318377374232105823618699725939450790726396810334872518243910609946885992190421219714402441868271910378189453974941503946660265426600594706942598885719540387227151646326648957523337040590014795344648213018535061120892297828272405580469291673006178391869223958365097613765262071837749428613594375649282839319400120680686011319414669082310478114076424669141419828183809022915957035722179807527690004591970555431614215970886919883761438859309447086320721130362663163104275578119514489500252340361098170338686671957244328898811836074522063967038632540948577983711137146530968287565298427323917657769413911917314940016773107490796266805864371115660265218526443405182073279594358653374795406035916902946567274898119397209652560732402190375519737227550034447481670657214665238764926926257603878201144973923068295829419067527507280995034485905674886576257281251528578703414219579028095324656810620191385422096314632630596462467662360683795439684173210225383974332550440346825236870177824277228903383929685993517319376392395145019183715993713204419055320855025092086762322161511115627783987032275568714540528984268462457482952184166489549365659389668095837301051723031122981324893536614891236302635634268131000482180154995093282515933862740378075571710229698691297926452408928287403845480666622035352935763374612012390691582745156160037270859571942089364020444687848975708373100489797784134894461477176881077672830690760331298910410549316120088683132981461589235851577884692129041734609915287225406428929870358380789463202989044932041351053820570194462739684002391292480517135541928893210531036925998660346090578071378933100101047474258662552955871268185773379032500683300743042715562166622575995064760812707108238228355426041568354565059537930276779479368077919443721960493406957519342788220747703818281011770584012801722331609496165623920272396784782480600095317491430228244753010704798921284621608817640350855578566829523233583040997799078545618378144936759193554240202076151633076580784381732518384974777203974364883226675122023502347644865083754283849538855707431508463222858530358597377125906904558244140930546091393379844703588906107008212989211565409919494081574463074769654603442441304878545470940569124619063270221249738826328806508178928046486221342933282919360913082127908950001486620826858759908814603599949257479243498768219990634261534321107673313598239260196044673162130515411606483036920638909183328724184708380941087958820150016986290492880163084530076378603289434624767534367726569053469201551809112443771731798771750121134908512836839756127224374930858643225245727552902520604440296614657605823169366435079690859284953704486793147798404707045561614706774279748132558053480844096512918852418420714746450367732542417877577543798062222981498455497029832832774414342593691768041978458647225662155998966113816788400027069202552987515271273883891633310959867629565623346331591132323732752087902346589123220580153277239188961382708499065744799259853560871491675539548569918806063208427548138579209706794065142663555416930950779595675926597986337372544703739007758135273292167873140321403169713510373811048661396136153766313783861568887023727341852166214156133385967149853243608751724333946568237130061428680700253055338027144236549013606150577264232909761628958272823565195344237761490204851596796412579979352454059708691435851959995441468525324590754699442238633335519037595357105283042556125047068745357265683300144571313408130028513129435420470004760117294014065523219502389633253210793796446207715536499793077024572092946794659746970803456288697005034141130304908428704270958555978976238438549758039559160898811056230984507526751073848929646738546514079198429539817305730077528960110645065926781029862397439385474146274680289324496498714631540658826053091717693915761249932628427637774751287899278655083268569070423887614603451406426435007547310619079159518953424660046159602829933814954454486589512003713500535244508952575882746689844426553000662827654619783228642105963919672998669604620150599936078980801745869024788728501735798526462067406695576038629342078051247771240143894762416033920551216474539026171305864555838593893738244847449656570381272236033569957303472385822257377598680814106041380804112823629051512473457793388651996249550250217285345324233932614081361909498712318066854640892173622490224484006570228935339745088775413915705957644998113433238834618022665094770348450503645461191554072168196538059654060597767076533683506608246690569958938941632204491337649097130479221308090088763507044776370772020059038450128945080403510717413223557553285781094927013286143591337494944847380304705131157952883444114624460972106747112033949567054674215657058583133792662273284139193566467523060051895430439428639737386210941800840690479346667251507094775779758049562811310919004412047928610369495789877524377010971694513384469010532932083722150264329376656493876684363820849589471467962189223603647155836735075923200768171929627044730036258771561498579806043926787039338123739577937072092352040693205132934220723656294967813299850180833299800493829522688739232872865253245799828874713727771667969772704674196448569596172532199859475793092559380623088966324273874725446317869356170314395716428963932871316101059293743136593161479738158859570052661001343583342145037669750197379276992904162675804959854840037585476447814240946136197566024372897023183214024919726518525038880514052256781396099639887559693341510562846902953825307718370586507945621275037201387721918601629631106390456549939893706107367636918066382923113479064548796403463759205724931577756118401014143147692845419571591321069066741198904914392544496621142269567391106836060508819388923811336950654706847434086911507812863440766666716050469372019463554855701073752711941135190240519995705860282185713907790879197832990499095601260752550461807024197428000414427966075027013631160722505749433232584565395824983869498306115509188285836799312440288825920452952520989522224615956056625823707469418435271046873854128712890583272063465858762892384782606724431586568719946487597530784733126610717955866357785864105646088051993073806590133404823970203699124491307764457124544697606538086012234290898306069314028178889707294193638813654780397520412438023004040341344588352924226866809948860393520532365473375486278897476964671624136374946955841926481201381033678753425495144175639296483649434851902657230100205466037647174409900914432782259463011830940947374734614677825641119323911343411790330828891471938075773996511072431523275462947552674689111829002270281328656456952704964931359350463319669317846800918266778238765085060791906295536910477240317606274825548094376215701369112506311278671953507930477146212904126553896630363515813769291615483160644598167699788582082603658309097339877922100093536876384193673151719749916695194740786753192084557758695079107433949126732381328440200621175136604537936985750193003107346025076706652665662384026743888753150361446295951446468725817521224079250314947571659763880648892597655973742707448122279061970648553523870066959384278976132908817361487082629499432339939469819078487658051470924966482213417362001212939052455845191548545561160081868206100292566530511813266609722477085027487524073508348508523304502822743981291651919744774470767005159996318157540897992344458343674389778866993255727459174038433585738867001179679464401996142259784632246083096538734874435555880633456372841170172585985578781415162634839029493564192995275336818659039976573408172135786962322258055443725124935305263187428217261720785751772186001162297320861583223981666836241380844695163335605133925002973046972883886363640509369357141737314633607675309673356767011962605691481898828353571981572311957102078494994619747901260858662193923835382855884775702943484805371846607548551061135198901044146035879706855394780478707267416763787916302679297570448161973792763679328181849296165177483253889460885121166847146362413460167197356483825769210191194650090181574785951461460940956607108895193484277703155399284313314733693684382462188417941302500910083346211845732127074099444594095770610922570361472418432509928531540261651779780134261061722144123453779532944169758223136403355508019846585510998851814319566805514821390466857830565633433422196195766928951313312667552402335576663839062974390362760554858841365082822598294577033462228162476975769084950123253327799139209845252122589895441444256578992898500457071194336966598195968786486071158348037741631876937763605400049018829732155539329166171397133426485862176818503496650771716229996957456231842066441586504174294321839430060598678756156898831072695217923302756784067864175203306277601835234381428729664862537111502771848800409971725031555683616714778272403227789289689352637533684508802936084871061413399197653203915445625249399847576252406168020932263872045557853436659668122491100682031112361717475166495943906853587893571425048540456595162566322500509100718064278810841260991705629912052932105914331446766220259554040533153689925543966838292408439126540841393089711058788889754870589243301577676923558432691516159230579322009101518864908677545143602868826520336062495779845377038668327672893132651884129778806496638065883740193079922231409583076983252971853387367820702966038512988155774265331127306134047337013141542337333871510409580120884719051246937562024756704795590461568650421045924568343666760256629640115173090231675780358601580236477370129240873028466525096021110539591947210873924507512166118770111362854717524402668517983483513942496205793855610131144314514114859526719181547817317743710988674208799010317223920540887891880034781997119215243501540322639127256425074706180677838605708524848738977934859954957849877653796619554010273625324112603810587501864008807135516219381162514957958179895433017356244752788305423969344504677776294795329704900272620572289470108287158243818341163583228665610199146705759321059293108356775649929490450776452833492190379522460850682906436238649195445741623348348239001892139615866185253372769211206361939475156896986648240570155416254398483301410188501195497269829597469936025402440682453883127047570248268285647573343389058632221200643782598868327156475321780123871263211965565701907405723329919049122648593856636070692394972521042230444389169085080892936813089231888204104833332076749901913703095599387610700490794333490295469428457969175672937784548046002584846253245637902724554870873144120239577395102680618453394933063711091448100224397278828430209607576959357668221744887215619651571738731914776682687792504907371406007637059047152557218646935599112982074293581260544811122883591411551794856507007926451320102915040798746668901977725890227723943099613434731107240147163493085921471019290880418378563691158822686346196478503637461616907949553039310314558912275326861858993460272780836820782018271915651280522378205828041506241410514390893701759409548642949720541573641213796356264377579262194437453029192698747768161522082671370161333154556974558598219824073072652657459117606522436782957258964683056303289949053737486606785341657466192933380146416636225817557385108334225863659999655034308321309056782765146299419049588956430359027851854508370557098215563843860681359768403852744331472305396375378289784729561863815006220888372976302663090149017366503981097243935359540021562489256466635731704234668066929952623509668668815917087854484094306463125854069772069862863149154638412790164265444899116709219080388198648302238168050989770380759866826979755390376491384722899298673777308633860561989900609079623273064237258207971554802505366878272775225480410447232505144538498948464277006468538419948660273158781153271101424323250982834119951551592325104856832189295274242196856883826469504391484756812873688212206820490590090526421929742781029714990959538388098759169271503863567978514041328742793782190164697418395652548715450015486058032120873584024640767812971873331732730465369233238597466077899085300957944355335723807589535629330369363799249592493605016762488604512861001422348163411241251868466385630760171042063369329908430755360571778029371984952564270560319854661540755971236025366921701740394231563339151917199157789721830328933485255764866058887302432488130133815811030977440409526417868997741145248181760170188365803832182177392926159321064062109510265288607837073612672230934702503154276636534654692405010560904377903166809268523767786271585999277526423550128331654199653665965776974333834552001753158938414784846388672749984733421719619255824774441565768268184193492051982758822860572140117238509192024467836791877166259075544432369220827689081128134371083962801702107681847997598683524517428106553904205558895265921723069274887067334280838444967365429769048907485520407701407884225931130493128838216264608906267658349915728673881991721027735866180793148752630232789900494294064004881471218574486866403921504559383371048391322154743545453080732499764524902255792386364541604945671434164589089185671129104288897995675985490216188310276052508205404022435907226022659855716489089079867792059329779985467848981335880108928680755900328103387976614156444069954298132600629069827180310011985244453236792720583657123369083910776791684778080056584944118783126844177249549311753230282383959592482997470526475045973190782906913009561859329433923488962324665439939823479776336180056976511459735913022882711919128687570706948150923349225593840302193445604973862117099676118074359596518693090324977401536921019902890938616712713716277988306876250306100294730874711468804284671988888796746654355879588424042163985763505881175782249890735386351358557359039685485225568176176356853164589658212820433172182314462946707848720805318379306244204681667616666115222673981443744906917074657912488881290228667821343885559344051024320312699930242033866733981026264546450053539773642372355835125475753881677150060286984300813838743280123775919492847815565747460515662200331882072606816159585587728474941456441053455944573697685764435815708768973350376340614890309548894159920848768060275832323140769613291678271611924965243770271340372435166201596789123911042098197998818749200740017906342731168057279191087039862524741586039826988900554561394544253656987001028077651944991132268758469823145100097178392312532676779684507950458205160774438630101802513554779981756463252504356120200541916656890589710600982650986058644661173673018921246522715298093902402618911283493617794637809186350400249041454481284586150884408197345150821234555301038761790212159315185526738114231307025419444310219477654215853183620494218722572107748077768771842158491282596352025739412171405695685641688597306627631635608334906758687046185664866046954779559360777288535383034231688748494124699873765719422099519375863167209677037291306189812421164000076186890707050583742651719760776365463735473827430478673264188386372117771906913991885087006221687256675734131288311629976540627620486979912461740627520800401465893443193891482339287102676815636669234447111593516530737045865118590654949635174238890263464345960269526595570688683998795406159354024687791788038425099711428138277865426425213120132214971557790399579749721529326503909002405499974404218509361032258720098394536421381532166520895791838964993211417226806638768520672807258213679135101012371729326600054610182441480003964494912042839867645230665552968678310269871325965399062163864665910689291970862062305854062398991150249921771690605357164836873551700828761204189180480982295408869116566949606258414312212260526221713512304965210768932997276169898508043745446219152708075281343930535540037798598878488222223313171923728795460704558903622868330550012225051162641770745547449191930451634873187315055345592120486817290594875538584201519219994047508422267535831165932693616242666618790626665576367618998719174246021983725136365979733530136182408498025573956282520409982449884631831736145949729885686385510867231321369425677047827944425156643582873142227623997293725592965879215465437253105029247295206725614216373593343555924764999256719411363144448217347883942640963176914986086791326082376232849952767808467596407768462689650906132540666474778870215727678237987498523074553820158674520935022593645862164431913916163482836157919209954881967731873616305643154005379917987934034313933637521337537195203817150379229384821650942882615100100774769315948777537417209014061842373837688597966714666289503703121576630233545664207155308961034420697113954568905851578579046684162467481484231643765888477263470035266225679966811014205362536025892034347803420574325465773366320794508778083582209391800728384871971009601121864383751491829551260587074360739265207382357056665399929036080928575567231340378741813550079073786650591001620385036418176671982151229978152428925234082150807930571179428652323548376590083131384196104443206565079485636098304236398864957923243213794397945611718804390998510344948073231741513912293069174950059553513865869226794422751598265218512500657877654984839372263604116913849068073923433571912542348696916079243155423261774404520511625252202039111709730441603728671850406788990575398313451220086048845436964929908197759540794996648209439668635908327424140083592029356024679905277594023421994118795081363817405472781961343488438724930730609229114770525337918439654586396956792316806823688605105519362848178534728332911076618517258850698172865059745411500710184251372134629356446280523741129262697196803496104387233206932772538237420621458290838388959510692289294298247045867095097691870156798217824177765864987251122481178379654297685167674537112683647111788750557565556700210240448761448004580443988439079429933448722709145679443051321160398105681925459173467802728558635622847609897937737000039483299388912276281075443670690840260443745838550514176727500678744037965096768918448861240498015375622760466979753688205426599227271596761446858340009894156549204719681890263981191286999594616477230429482109022745693057754514735478426891243550615615175374386944168378005325771890472270573381205954000107517236920331793537640251572392229986247001338001711086537186990127824229765111161961482818591719196347706668696665391390400815658836378939118981147232878146631193633782285987004236020323706614629181243082638654406823294327099625850765330914094333647617498294041464359518633903529146634346965830323242398088563021601892349184042469776427774329008679793824197392816231951134140366176770949606939227623960041995743065149233888237297790396594298081042032462588718139830259021519317889394606571699130458227541288014739596913165231640836233229568169631289888762384320676877867625595319810772470428164412035674912495701076182615893237773042508036268353405301145032797360754879292322185101184092408931769519393981777377419114942930439149676196725328037728677417847444111500260022917880851316455036699828722321513995936779001948545900438496155534388342370877042011720460203520190216076208135918290471446305147509261244276911821454052424694147112301403198626365083955091474862077885253697727788442936708560860409294138036336732050158472097038883099195925749548842437684743929438024441342853136285478391248398304395861467818128286046430135021538007799974387030402523885371058392061940535022678603708487987721708744523850929994149175025216113580375404812715234171886933902310848039597330436174555076213526549129641676120451313235218974234736516695576640784593311199501697275898598991238320226711975601016050878525961858699133177752547074668141182556392058483451913942182341898228810524764296555451634071784962778456997248793534684551567450959829314939885401275506311702793331646324552080907074483560049138702818944884540506091336234699408735728871562661396714363278783718830533534107773999585685831546715188572428954517978587047386927807480089019508090815960540689961896751052053676154054578613275812070311011483872533743318853731751477641895843808542741066212190696049636100292936369110857996097615973693092350704196540768488293616768038993911009374416298380295865875306778285232460497287360550273514689511814889136731487188913306004113574886746474412751630959765749057756286567631035782767652844285971617972081825786306710748212447508234065129932178669036100954399645594466321270771065761135485839004271100849625751129901639050708867512372138414516862545275264692745895220559328705596798025378574894089416554270380574991248887247710550549467643314039837221005522759944743802188794091053268578110067566187211063704757607269677522099774846328348244407051846882065986685723450016105559030981956155225559237636874644424401016145788930295088708843925532229874396116774740571153378589797091857569476171308250677695916029900652066334727185155630615907380356640469155520263030104024442254965530099269136671925840957755287800012814718230482542835576424644059528096904074985966918965478229131015178784687890710277403305375865441986394068061042413282948633312293638284379323734528385334821826879433365402770623506324173492571346492294939967605304212423582983745217264019260612385580888080105327845335428329911234666246015354444664152551390121297739721649623853540778705531346741751718141620196130485349962415934931202469327004767601495729514441578219288101962330745601046171313515313545471184394631648360605147439622816730586956474658555978357164710393047934064167312657725063769419686368998354878949939246376082518870365892624665031105133279055154532771846481405471589708734526182540901158957661519662827790343092708104678548572315653201790933383847924747943960882514873323505875160698874867446197085561926662677236290703559018669122613533974784058810215509716842496772163338631245960198362498997203184079634155572272081209400254676377549197378191461394226960277220456526227824283680676486203239218625131550235171427649718985854813449873784696617192180741891484849993605185462453609731400719374774513407811798270318765217986641681089650621178134317219964553785093680921754742346226499738885481970863113223818443797850383173348774633451631187439851738869872731653336088332534889727661475346279898273425908963525273290005463125031749309581038228540299217358082193912259133666370241034356174090303141690443589996189085936316362161561802072542412217955464087737146638851338374541893170256183927541636320169255722654170234355823849819990730695091368747582441268829683820450931469484387647253984567509835289322763578608186922209965334462091136168039478972562213652185198145687062159143142933917236115551332353214510780010667265985927719444757885195305538144315687745074987038941099457585449698026170981567168506725232969974420576689034181016436917879686912502311359031941974477209004944059918701162574637018108218151977891753710953800007152794917539031160212806904988052002316316498443681221704759405579179687565895175816679923953755308951923896019530787929196107734491278572657312439430591648697390256484516905556345901974385745640556661335491875962587154878868587315182113469318869155209172277044075695012512703876984678493549069345433974054103858201472658590258756428974483219709816135160700998771333623821839258505928446399245666636305548930293808173995096147351754412299623001083824941479510234072739890125558735806243059059991280576493117100686108267185666512763788541450065462864297497452846325665021975604260695112341973522171888788300698729788300196422470697942969476648323540472525751549074257964132001854906606307839433781471213348739012154386045625266768655954641430901536679462228620271564329017769759292975549796745717031984218240784495721815202839836910126071477962092607347862861627075253778523631071561187717553952311994555571380621351048893463148404207334872224829901814541472156468898313476482759798414759815492857466197939165212422870938835935704102300425178807155784692993476137127478874603296950458607826306762005964998415110114953487055612812156431354645402893414183449464453658520438900816203837812514006475917502491840608494762074534211132107041981468791388056799566842885738233764234603021878481379531684559663578167150187615240048053595945932902392642411230113015343981388450547279798581215112126367038601275824761221111742961123267880485779590881210926655565522859687852045269241890071463050633173926873436072467697533414225271992130049162618822385493592539021310933863059950125027063222135264965808469330593152150302919894275842093218886148572427806635182436827743213190493613619506297761651094690170275391170779791782747624064839871772145198476604718095404849509189901487114234433578408239506315166906909978301556156673575972254801448678568074542447140008977055191524152116214000905664850573775789078135787845232165789750922171883661091965621136216503886714809266341648604476091729055812978347420563899137096382016235624747240856834083371421711789243620936806553432516616480226549067640271885952688982961093255608761626543642976308960126138145528259546795847033938179425505771261378001735727574423558306669354671995925568244956604029910178076299815663113950098487743629368536881556990112868609889683125732613346690430897526649109945495504257528278069416887137617642976266571731320207877369940600758035915548155864206694126364823047199151447740928615820324769278188372753775704191207207569310295709389828615266413972397098710346149627109392157856528831434494092264884564893929654985743661914901150475091455568627953906667524508041132450015031845029989914404429200498891724730026143827167504019107708686805966654605670684037552217446507948596859254596514335694286127539265281072969929594713358436215488550035056016602682851881929838374763337630024615542664588197087133745553497037485868977425039368968409112071234588538336025685120078809616387526740193962211774955245385214894440052218831080641586675732436842332051864892837243349470763268166763914785097441964591003868455142948769393392713755954415868988152297668838202766811047678790877414854352345241668970176061262442437741147860485407414667899877064604652760397865289656064511811467905766188857957083425958021805057600598282368595571613683166726252654558349774796117721694467201912240970018082776207137874675967270107850024726027797242285394233406881639356705417448132068967386834519654830268337676340821450469995668752665420929506749621117531057071272738828162297854727728026726932380936188403630138789645017258582260542223136714797947780738064260718317621585269703021606674189702502436009831174969162029328693851427425514774830903187034604702489118700313071288006242064325242935644120195149004763291010618980107138525566705444814582011897373041230966510887509161729586375527959412166660959902669382187293539732856306503128682635615871912050585901921342259636352567225606843949134213259144952206412173133636027119366271689736730009446482026833301825241546916517727123995280809022826678942212956317289204209666908443461799592102334663636985654431706519770010157493146797011823153428756919341134301373266553439813113813971342937607874363634287989252137696896197233588291533092658205144667323309123034732537250141180389093187021558330269584861629361478176329466755927473721513776162284935157252489722081123565973639726678311951792575129282432156687859854585319106420830649279034979817497284245391258997796132854349136056157877324409768445771306744768912169671624895365516792279013707599025956008585030529218148035669977311860127365596649212363888208860420671994699846531431604689365981987375229970104863150365053635312726987307358157326196357219704514715228925812724719392772948879903339137957324265160471923258683279578659146102582486798071940565588285131136953755025087346003513571676628186988523113954260273449138501353861174120302551268831487211520691687379940015470859151924086425736343123748617579398055514232472038232754718961590814756063167120406953559191052427584354681245116315896909703515680269512309519141276822954394312670950982358511105102092567043090815649691216680577445554496474742417680702237139396654371529958195116395254833066358735887629250192560833223630961020203849760676807032797125592832206847029504728031765590900036353259351366333498311439923075368263750010872014280735667296171439989812621945365768619272726840975508965064541692908116687679145691063731703017863272312210270361320002926529466365396006652354898400834849639807833131318660037379250940196403765124429220317857893045125166855612700429274906098770808522148604438059062356995184738058593998628415081702018753419933038849401504496456691631493997402890400366359969320553942401202824875521089573183913096500720936199853724307989169301574010774532255134394539567774460644159770135395772874396309580802103959553960905234092692816184351124646176786364627162848921793611531117521345476609532550058153058866639472209351684605888660973335375773779088879630352326861916195664735842441910148132904837083220468574336682703351615561069614209405522535236851230481242477450123833243391199803992984189511908287985110003661665751894186089908068338637627224278786728120698433492083848924618761018636278286894401807217914299182872157669317987302493525490367414811761499684156079166270390492528322831874029536362765714730197631678761365563538877723177412156577126505332833459587897144104820701647459652314815116241536801979775692313213654018968006759605731653943878405655723257971409073180800535322583334416704934397593694843677925468333119722001951832497397031662516485221585394768445294474053350396720939816951515179280101850287799460420624699296956726141351818960413745774530286310861488201408701796903506315678193544149546366739994533025467563272471384712227230963446769378408494021974275011192937728567339665765747339219484116214359091002147813822076595912524515520175737757043511887293338617149513044947122147382167352496520173646839314865822260093346709902592925335063630159320301973077865150407730769117036018344937280193027710638736497913172473892101934743282935404043973603490132080053804165663304603137856644969145006471883246440342542544407721865486090942353019271840014143252006241089299910713126378159121746551964347373915950875978220906170709294263133142346028343622739961880371165978903526183034768468411504085878701984932679962915952833987289201906866273170203924495962321842054848902437678955378113615824026884769175120186393854595333940014210466043995050155399467936509714846829291763384520397441265214766147932858472927673722346333072330898954992274264829786763709736139037600713854962866105073497517905329445009498711881221864673647679098203340860735792992974885299297683140122482568520254044018016479734804340809966415859156156260413943529211806636918358924694883597836895647232792092531441833402373747404692865659210088172078429637970060811016196557039254700516174001593178540940142150227384667062603619773160881694274367941266694450155012273577361591224094016015907878474716928493391115790005313965492983934774906715765913838086805909188805188208686574300621948917806762646119589783506554706926670515127622609396276373427163657600784448629235600113632627634483935217246251587703723378969585118140758738195118215749468795082401383799324391050736530378829817545102645183443998382948504695699107140297411479709257026325800015761733610324274401429958840487983886100286222163646624847980433002086403567894039458965582213130424899823060877893594977149291828948394690545761501925847589831110573545819659923141201154787385193420550048440649850055620665518156089057617084447528482646932108385298364839478497425043285180632396198525619502174557686881772779633647833487651588985336523546091401141962984724302634359431502708644158580053564551489430903084927256383523745023235608050543894177093236279833701936814864643560441323499936420628683175020706998812137443448730912696872985063944623314665335487016878330355581834386927761028866398431203628178273047482668343769458492481759382422774088037187321430700566302281324015964512101383912962015035942090075045965301716470428301559609653726968719808879825549848122041265252466086858668525667987532908083893859752367256406103404358388907004038495366351271780381273311653460772865442825645731685886126190028943308456275518861550900278855753146328509479521765421073652952002575536293416483356603564506539552328812675238064436693212345741513682777375448681587624692626214280783789364433870897325060065659227234422169956059747696322135937216037130527671840806152879601905653216046117109639315671459109120639910680604622175813238089437916570900706599320903263268876897896059555002449630278038255412129541381946934091672266680440102614488810167672364639789094486445126793939549497283201288282200337136586156017526965135819792947537296577320433489015518915783921278632524605137139106446170936584790585494751817431290368795712658700171697435490375561647091561939746193433064877322604811653565066372475237488063448312831842089978656344249072311512503840551813656112083574896465457395795806144738782509684826476160158157622703370277209316513263670728544073820669448667841501571101978700430001213971115594499834832947758041143231988628377648010930007110484224845570426203563359079396809150588386914303675720020211642547635734864910682392576109732357323032858800072446147180376891515348508020393674247386415304898869210404324359596925025595194247635463830535817646019028226296061394831137363859814351856431091798075335349432747642258524886671611305435334974945357242916306097548120853423311135033775768544896182599840085043838094174218568770016938325591176663396473054703590860355108074081179064162727685154904549029012758932646875626481625548385880693249044106030287477089726344010065933098508130414435150613510020559932856112250722881917430461838581437447879939748890146549803629595897233156009861712813422630654561397969597364211715551541690612246241231086924999741812948042167528214120269816290651508528919896489496383165585167142218126801444011499066197054736368274010467549384546170019149752972543503249217283115938098887041340583072428881981191424940995240408084386407345037887825926410679021944636721058560677213700483801268347508838130654683802227132214316123253339628781123558339942936505330569114480245052372454255635522023083511151896269681806346354544073942725010453296478146079812119046561800070875588044221846741029604275502661161895710912896961393040645826588283154137733100062814234690543349092090661943670832392916743306206812090912750508029725098717814226006772407904954484396016859390979031143362118618342164674448128194315952155967567348674554295662758511811194328286571275703278527653737881108503400355011225348952904936534022216530550270041374428349153175370158758211493415856330877080351132794152020784012343842924818286195187831635554688135598301727875221195732797782413262092789606642669167294842119531022424792867965646353949889010525246839721989870720817608421979866114882892271536977450214369539998145596729770483162215449008290553764505076851859878374391753977495911037633369958333647219667583611154723939878853485630904864619771231613844822270070838459827144092185347534487799079489753707890901554072398550380655051774704793639864719365893012760806474804743053592019942457259564281854350698798138419727184189087768743836998812725622268185561109856222604580911247791758476801739086473068154731493281861374238787881896745759841273874037810224579871919389863901778413497795827628122025136089056965334178443696620237465679251651734609003796409012231848101573425539097615087108130106891019772613455312692607537701796277669698008937763628362008147711040239268918073637670510658191221879797727107792806253034304887749948160009049336469617622351136829987562558644526958543212272990556045269675985793574807586084477183012876263738451117530201165415943512995700776854336641202773124601447444442276501919678469736035202293528539792694376576701490506807860856451603530319663975002396320738258247228146964361666626157806801744823384619791485001927557320108999273655879976732489561942777606806169535667664137304357678291129004416391545485152017077590366470619832588844798262195411921855702260081643902907693220430963353548265604465504474796362247281507753404723879631641681813246451837517714233535971467137451559481379506672139569353632949119146010302327556604249254478190785989708529006282702232304836505460927728236553396535110142148749413230793834189526165975066481443263283419203090693746336260885878293891918798998422064764666808311386213585608851389307268097070133381005355839147623539706039449228169520904077399004437646371979621409190167525060945212279451048945856951906037108245913494655442181730417701395508750891154764195207825315197987205320712558397245244512174701691386415895391773971344460034793003505103672833159084351137673618813708936151564430671533952761865910488964877507267849084643614863372242659979681058139518529820152789604262200129890042812372433754078128901305121788051168554791282205831951812466837897128845767638975982892180952874043480085560614498036198082060333288559399706351243131788593294248139450064842214643020727369402740875714768028212003515998353322206178862829751157707209082868950756205058792377168309994647844119342294748500284972644559605056587572897769270930246143088278201940801522831223622456242567809015057176168797058354355813457304695787274484170142020019598895653664281179664249375251102466519652815761244198663890648219185884302468310079821816471368663394423834095006382092927705711466766394868381803638444346800526907571867036716318847572915122304147797662863604897156984830969239750498584614001877675557635943457202869334752245318776994531217796911903855931312503449809846995101779018027842340003935846306319633421916688580533525303217466837007678794217245172242536781755698394899952911493513852446335648293965550891550318143225809190317259101650229663472786282021534606248404248791578239247493978059333044650379545860470369788450021330307775774106149491641711917835535651250371416200120244081985338900524675511945827075923096727587731920555866647434197088850547560857019052793676494126993783293225427521751279207998565940071525499902539428880854318963970850939149543467748735743319655664973708859760050527056593251364234567869695764956889425858886005332547392047641633546133284770865233035111347839126867530941530758513767826362357169087159560197590154085297050209929310357303055045654112621795493223655143089361699565088184741716126453079880603676525909823179503102671756014168894885583218422274708730608703246031961401701085066494036959932288810914743355741152953845926081726099517259544267984702080319631251066771749741412655069940861116323553935845020994398010200278692246162946415047625614565477062235588206701821178514529831727709789784652766494150830825664289242248912092864446076690684901034320573715406122668894176132449208483015237299041701036217562416913750031292647062423041507325340210708439350225609520205176336856961087194529864690646111014055794895989335156300779322405576693278784274343084681668861971539980422951354763959356089067613094077585497694886155715819528811315582130521539872926690473375304704607238341373018013073807276869676271614074814459117263826678815626666813795245565439120999814581225035431794078005664282748801210831035502932422950605818222131477549319141919783394902460814083954480418591453757182752466408198392341166431603946487155133147807723468778050656276599794079224654352028344794316193125599394195209314333322459913754017517919464484910596787107264026302438829455427264423736210646757604728940429671209637110192207370130759315111475752975363919011743579639979932078712759774667939884319070157650808538776791039552407526727960480203112787592024706535271369489497699819326559130048702805629758710182559167147697836217754422076696469890022976746669301177532783036825515554214712223138609692145079914456214225346316049545047858670502021125444500789549843777207836925630654337240211103693099499186535771430731804646110294440211096230779559295464456703105851377057577261320492436983609130450569877171458347048593291928445142975290727729240991972280194874378047978709414920975899430819269554328873832293307316201503101634267705908702914184812245795735559304978356357632465427714308497880911915335491651648183327374136775933574062180935253102242178842441564605476951068475534626792391353370853270763149377886737286173299025974161876965225118815590450630858743624959695176129562587264355589860508889280548438011139130498014938238127949379513321347710678668407778459691278459893423221096920415799756669414881403709826349393706023770564068252412034541823410126531383090285447968242609934559953811659432189532988480572596070870071460950163452673433883041726685250914735724725521599088438814979656607083987427937442507169187588272119453942284405423158689730907058028735979213691761867156263161791669000051202802766489771903946918148627816045744422257598653239685386143481837608256374187194642279257705129935208065149123067560214102427298980492816699683353567867474447317503932727735364681273993415378579568039417233119542055700213768771710650556991463841479037421808380581737831110681914025440448957722836909545771527161113675517541604848122880796507288450757489296222048238725749804567717001191299923036185612896291473103216684119932314276335595252258976834220948442799480220079206430597071418746057771511540301148186479797333866409140209014314139539604670540955927810169301355961876337786975869708723089952412459177970777301114495328746380008119415713713646343961576782078633086217425159806784525258147862706284245352964497046384827478323916423532643252064443100858406864913909754408571409172257284768532882135240981965042282325447186082856970518813608437035913742608735798220430751962217993507036533428767571393886820678675294787478679900746765789555782420634120628306220636761994926167966014102046311863504009695301205173708194180386658248269680257782665351563741099430417854624739176925102895872049678947012504967792224579199074302674230088371285822966545571633855340644545494087950021262522207008028469516552772418929789553631434885640644507305863456963899871620476587394437245576814437772391252934051898023559781831338518765721756772257659921079920996469923447295925266552491590480538493486827556461658687421175667167877292987719920393276790932008511920885703891129514157641348125155445481195237816155188870802543832931302981014877469206192019310545063486082449031725546031050749637170177209447330221801370647403981519137533754804426993426468637102786661291941550969265406721816751101340800360595448144170546713821698099155016585286960085521889427075531180308644880160257642584335974165199400569172762871379463618458811841568378581947886593980532012884625324081569936496802896693088372903220036481923521868369290430129912791299417609719358223311198939859663207846845696243207575211268670785487563275688365959280991005633542732380375353094928826511635412204175503999525553608273001227794002673399465204138592140463966610565283973001630210238722674784712772083558675021467697188254350790816185243475103763136866457255261023655533541593773482430734507053152261841242061100702528706999077590988835022339625700375947352702360927873242357610440747941291668464366878768726775462287708680674777797647776834527964249151645226937289523342135448757321726204166495437588337185516779094898231140521608535234358009916941934495509317638620506856945304506386790378339407005485736688642071922526960387333510385105315779353317135194257550264080668135565050479545220428789401952648143218307648152371479867625735065415130395860210816836947403661544171451659677008628745971318086558250693899211852068846165871606989135892878749300412235933855833657300344367157563883631410463532256824455509561988414851064597515078802546163156286936655012882063196871824649535065234995634534196318559823886910984838480234214393401228384877177182222399558700407705990691077777092206223289157395917935394931772702657918613436043787345907413612069220486377425313311712981344919225984880776095792238828378048678537999326433905343312617187476307517768714821285691803808972843604525095133489983813482386721401972592727950925336814854335321645787647348972339271829682815370564458722405650772841697637615695743516696919217791312439258983372810507551871753710336538494704945201831383842321664613047435213087622107573926787576036682104780806646511474559254974988830779891690820088349701527787877839436193150949260403565618525222648256757496503961973649801802392008068128041921483926380888927524886297071148337477917841762071354527590311122083076505945508623278348765447845345511634022716595043120086056764854175703120969225976238247403046358439121045517176720833305856985949486687660949156180401318578067069279727589063178482683683178310043141077840901594165046626333257871739197008691592995047586291007349068202226808890039714465799567689216333401107647906136909683054362947926628268588837584796644764217214166278167023701165046052085686174947064455514389458441589768190449464639220647831690243792797064471617929988619936602009991159576624882152370275774957223182108216270812791407661068362212943551014425704056055960698007956871533357742250641543402534467254709124180669751215735761758412079652044942737058341812129855516863560833673064902656259508684217989694535865021356073179586630662211030018867625015651415185163385153143781384293948351020612303442671314188594226862470817963184184280243585241419293588435129727573700328865768895807763474201556875971097370580420236162761755387651273482722741310328786651108428084829125377831469631021477486511170985746772865587948974449044517273891710125456839419376144373923931613338107119826808322322351986681926196920510837355768425466620327975948846700887414021962352164480599264537586580067733516324202778926011719049987495312151157100177064214776789543061452662070604727200371384144184593284989836737189953581480883427414769140345720176766234012599229018954739655017047972713511796536609642282845271147408987365448321163207927364678944169549052299960156176251925584747579795108345103258407775212350668566446570037965976850597351441487156819674345861279902256597246319626702556783275793416687943550309963877521282926325608244716876667125815343431643170713058338317344279923144075674827704473163202667710369185305969328149430162047160699162409581639481690176034945407380690552402223707232653986814697073575630530092466753596062594223806831249747319756861013726129292982496338031834626736985025093790550857373848834173954838774761873330879714552161704237310655908295849192841914177320112791101879901584328908628637602510477391816270828426878672952769768862531756570337139632707786170368422763322091433818775067896976160470223064668698268812495068914183961778384711565829918949647234869202297200418750392118973216726347549794864055395910384718839679282482516827388660359784855964901565081264331474817231724061231473139958072242557397759575984092799279650407180292103339586858128126192822178512242686328693505469707267495417233858818881233548595137290234696507604192069571880075993015714129434038541447158544597029907885167177150489967018321735536255159971197778550243165982244105980942799079609728027482705094637127667113002896105509757439870661914500017001531743936207595889455241861793648389625593330109182859300529612089404666517357004986421325445661591990582027459512379149888597304631246750307419120185493333384904071974459374800309197907569731815370914168500173145438263529388446298433798983869455185101826647670316875533059733698923400339669563967111078328862246160684054007229499555686780233781391486045420407827270329847332741921936593110991448115384878389425105378791873919183701987375522608331665190976040377557913771788401012495331316328196665736780442105232665551884390826849330597148950930172944201121577182533817789592702580697021632752222444221416846406076180620399010029254961746670868833941951716660852418396808450507094321527815513893913183794794200084880220933843518439985313787036621563918312857136622312745771825300906178294242636041079673901327678562052095758414673687668093674154097870763836759139713627854320271549031163154657798491462002605892195574824020229166024382676204235518602305405992361463842252751128890735829082208138870793873097671477692699866443320852512647835995680881822096476528350062439005175163967158684722813788819437057769674030421061780715340010075377368539223863309083317538666846250529484980913043677236956915826227763763418847041229091977155670661938571380211345349072119366956869218134500580178846308733801110164975091993744418603933785682320347679349430744491429102299108565418241740875360612451620905278170629286615071079922877243484639275823290668979881032345239628112514846106217916103431282446565450633641164837070342964274110598454975218579572400034528782090568850800503490207909722881144116392335342054654394887435141845167473120265142859818925109920948976029255710721737147173140035053872912923540328582316595011870670816119620739401293117056569474778910490500303366770993727616854250274456454576475579182596406517802788747888821898498123018121007644059605908205135330430186169083156838533689884358714175038626926290114951990892778053314566727441354559777220973111092813862128409917592256574908257042769133302046729658988301979611668368628982006806947805372105871376663502806749774357749605380845498144236370550824694986478212953742795805145680858362557714113207472099176593291624287733742935396090355381682192535510693765709305454577201977545779267390560526831184998494350858736737932071657440111427687318967578800534622969267112368486994727776430461246441667944827438607726170041539119359789508555985267271881788605239542964523709986652268519280354095398671670584041969626286270707451663619743400843595886834934483940158311927957992100434007590520083620153890316344543380058998984319883790357815246403991446617688264629951627064166313075771220959561547228893095007374123702005325231222839991675474932792658145680958556698883053187324319360522801892321960471077667247938008749276485461106296574964245395983709826637074896707629082810647774604423083444210247792407448311121326699337648387404258988126969735699718215194908773565086261246828966259091249206907962987851064831794779988292204354150580831466332483874528131344918107406873782828156815681089157083079507638812431071118793455057246944392105580882367126134842611009371292313988926650796769254684042067981650954578661513522420358846749763439742628499406402292191103343430827130223468676112470175739483810288378776338508967066996914855841198722460145877375778815037539457200101870682067253281708576360924142768781250447741790775409348249796936610212362384468233876411368847284748566634412224292946874020500418778781637569969217693542324917503491094291366351325512460775520495052270250978985454153242829607445415682121827407534818505206561633148446477037585842799994555264462841988312751155528691007622532396420764825312648354899390442046063184369722954176441798419423907944959502856207579555275881951911339324624234976538143731903989387855640016820801951470837341827136411184816391988234748657492709724919798577325844268300250120667430962046486021291644509746436925893124947728573377972626863528585766099871472026326321027700129132432057694862874667383191481139179552954498835856102723497809911055584052372704400607241563676820296573154881436743353463117741777749583719836795122468252880841461756321120421756203471564607797445738074803802610241988918316463306016640585963161859053301536211277329080086629747569700324282400959022880335463851977814540873620209839925626065384874405831025923166603063065111728729146223024112608616841174105501041121513413772810354680423787109509224275144353389068926772408998380516275443490936091232520453655269166007417053465281346071978462037974513269595974462642684636617929658175961270432525411617331350453919209194420740718959860583172340493780255009494668446253319504373370916496758945849183552413869598644684759013924089267022167578239923706935523708839789397130342132725805740154987448753521753227897521785297210283643933809398235542019883415161332656321822167085757305582080059665131280436906088864286139117999794979240615167918895077580123621683625564164914338114004873277505781755813213030215963766068619980719757966732302517925263996108750536438284866867449217455843118697216132681909853588406842204811945015951131125309747684016937863162449753902617519434426924899102443165721992381420068607825559740779164373187647045403352035884699242286448155341624061422959101988327458971440192583844478665269120100132115859528933638780132793861897235778015309514131674144699362470184117578686631572632466005733558201245294212560280621867443949062358607392902772164285878317415287779094149090141056523300042989614946234100611693450881084845771338023281384090384346356592834626959623305414135380737982034094926028338923256921297961760386219235804653769000617788604815967904771326199356320997831244856947290922320195184709868190582724254162281792120052863395117023296409320766613780494151710290839888422304467643992011910002860541605135312031489091415015920728260587373497308960409586364796817207077415788887895586506435861210954067839298602678597702841907788379038541626567439226282005403198270281388017797052449304035177022280255850618959493573363628300267574459433707196061861399038121765860274093872714927600465986338139600603342663168903192499140254412485454083613101206849392501933642597717746193516057718329090469171571818506527544567079174496441223006843281574493702582560947704512501109929468182363362777656365202378448219801680530330579801753752417751384814803929838393295422811948949843666687182979926424989008587825090957435364885478333864558997376222855120473922588181133964666330772926961039681548410841327246872221907918135529795184335168738732864706368964886923510208817210217880520622849744626746714934509141405377580945590822649076966207891405816384212408131624378752017291136009991482754691173187380303725459312751522044595118358636015631170883468428521389407422601484679842429511263796272661847198812424596120846940759226497764069700716233806300222861964032785378079208377680044705484426604604544975647500072099212331646147900925717559419598406696826945333866556540301722705269625732354698420181815985973703408656713805690569491494694525121514601355509388914785656052806959936961796940070060107690627204792541601520732483898612951658251063939548757682206749715844625357423240334010579393831727729757499475539774959509757148125835057974123634631715932408865690035844211080342280137368102834240568695829097314877667959459248780320665584054792603318610889155801137693344075123518735407779004391505535445211133721307906690317365231852474004420088475037390954876854571527670061505485073315683730085505082690818761993510060220217530628807976592096230000096310635590047462790639097845239288435123187724111912806211094097788606559064789988724367219809192346215842390525292015606530571040364594788558634512948327105677424013555001605182979506831379099929208689968200907553220542681388081791255015135291558736720956986819963660410129328627922157732473426121038919300988319554728946482433832124612750871762352529481654357809390009496462773617049916592561034772044477848144130576743704380549864978826761656963959604440590836091137839837378904909835919925358613846832538449359535895599242218669970722093429343802734477851133352431286571408988981438736680187379531064712790450632436166664960921507635711624423549192634226538081795814830430664204814663928750765801627554140158659442677697657011709806643169850075072574580683164691611993444435085179071401811913605370577060789379227246980327313924392830239527846238493934556154577537373103598171431509946480087953751579782996801457613520229517222438238487097488657625504896391066905112765824970036164991926897638455327946569682444588088938530107533652739996672606881057245637110597485179393487489874655582876866358747763382662488183081530437500153659050928069113455040861481248511897810740124963212190470747449794069549967298900360635799463225243484480913862358972937522833679551796709906444557109662575525198224333222913626544317276720106105820027445495807460027921816051563520852546696091172510498601934705586045916393464829898274079260766276770248672621597045037099312907139185651612561314179948354397379612835761629737528356428961255695028867181226675858821808583453495471724300554677469445207201632515552176344371493163151634270463338561322826028539685524965670431554770101538097184874897087821559559763115168218814156471305323027204725326324485419105547103655637624930101278410187295380426640927488603387333366626057891981977055315978247608855611595324729491404230878109124346203634595725932662779459332870060139998305590312444192945077290120083846582204881577112928327215815380113075391563448159948343974344332337316718582607478145421425564035574925392251108401081110220006579347233108311924018546982236179615103295392017026172392522924821800942270969083713731638965340626343804033473855374738064977405743168181928605492156223138191731311732172453449314354132251204540135530105186184754186255479904945258539957003600247363573190020448888544928741749790480516982148660917695692133865161717380415778474898648015465089845004007124925945716425308649772428095768680783648626115577338384984210819656492608022998429188524685741726164330669433091157996972671403215098741816007736597789788990172283422657039179746372585505164208394028717874643355869350436060234547809686532150404508293656346190663576216489338464866521977468791251864044214287971960877275792827792134274565592116163946841835407381574726795936384443348447102113132561998639079169127034139071361763554598829000039018952780139185755800773729087777699646250888433434415764580680586191495895184701283370712646140488049444756390515313199193024423655419417296939122752058529822325179774116723502550156609411390850557366221352029295062846433037393174606773672942575451569053824398863378533989747391076767353272632144511116695581963706670612401285380041100693078056227955871240796405324426875341648646668796635833625415159878105780284479268059747540260791173197233351319131833925962366133009274971134816980372037618706619092961595571312630892462678544612295225426225276190836684722144400006724471667246518135568117594614412621010725688936510195887771039981525875964887292258272077122406787769015841778465031768035015628828386150137956210357614765479185584217469272147720810123128901766148303115776063754800395912170789395948500052367211539800651185797667079560487394014859931953395353170694286285570272445968348079601129133764456161741539540543212499624498113074350125914130200671325838261209771470050055935518387314908772234949444073203681447950052045050324402899285990471850941868971700234467616027086631056854979417216290774871039804387156499099414734368595711246863483090909885651668891460197591668760638023702893243649630203720300966780400307239992483179086089840618992429339639826699532121368511384237106928007222996898911449512023371440239192135799655215135174670133860279464746545295475271891397810010745897171584228372731224069956878468057576176072534976936367564110188273290268088457093311321263027272335482552970752579600044276134881148202027493096812617705012733967026696445685688211364688432082858557460033405426202443625593767615727970093931875212426418842856005583653756157348340991977401612082970441191035728040141972540954608366035560310300876629713756576711403747643617108931421938646950709341869276156831050394660252327398506831025085532387793889680406586769318229607243746269947930275419078022667441855088383781005469203754572212230390229618045506495733583368358678105573651343903757057342439993302446453733217759768787298490142025600247074026089812374516260843707874160977413014753669119774184619167654745185554755164909922392297984433392696034547397648901697051094881877390679405303955012578834439830447055736181592787871361386959892877631151463740583965423028703290749372503839980148950927965688540581401960722377791491780647633144135969027463037650790956065577444780286633730933773480989543291511818411379177752102175332989398363744890759875782878406972794314456413942493322530169612545756901538549738300085079545429878762672696133479316153492189819444546939030173896842162640899475061277046064356152779799400424459662499156052964299262704773291163686440656305434243896797059627895699739602021744618970896368356055298475957540861645359826451573340181809633736355559588052016698772365277754079227148363774543198880180756250711708706791918868338984497142280393796420519731094001051908293269826591685288018906359674991053292299320552876261500742757273205362290000307534535780328763787732248075067122575143130348580113524873102988571375201669226325053481526494738232727659234223438261812886625560440682506515118602882101878605330728564318694893666915696212512345939144708597421518515531513162965819832054106149304393571608832595468157592544741960307765491768242286520486441409555197227506395659052709019011495418386510041251920111570738202332074932201896329152770626562170360679718343204733409897049600294871677960651813587319025847587235326085271166324988040383346841092361324362919336838603839425290932051692654592036105374393342440592823259227267050394460912374010118771860023955174866227291183418665488562544525500353960683378046629764427596786357316076633981497525524322422167887425218174782032960966712386965482289296051067322831414186136320723639938320519678573187255064771005106329404114207397942341568262428200097931228780734620419809516787553759701749699438431582216865214038327652856892590421867725724364783307254684111935742520067641950574732041660981252532858779286856801660058848887520321204568207348920755088262054799579943334815941606147118682754352066432396836858101952492269793377318026019794351316818284259643900485146978196289099956771110451830568715251411059684995196268599064086164499660356305942368820133752605660128804756250522361637654666519851342439903762621210681006000905071172223587186502521172109976244424665884414904823296173230994218334765084688338606149697961339626871990973058877982758816787738930468205420905662946344293575087778073197754105193080388365439906731882251537643256857333545001210937846661334723572373812119152724601907873954515378429474791638250526047566720512798228749723092735413231601255802997512752075754184988128051012131768303453856862873909946703078652783628346400902788576105937284520637521767251435215580968580572176091679878165741469606816473674330596735423807692460031010423102515730094772183236638801895949506601442732374314858964217742363261534485652012886571548945132371417296481116550164140960906459938362997294147254572048256753531833966377813244011821779263112278291109419113344479360456642427194558710573831911495925390554905755142059857034200917803408476840985521400703008212019711769295059737135079210467448141142836906620050295265107887006490935686692188184750216272221727157111851717598695980662633156132070430923731466824760644108675428399613883561922171165600631698429277412868031815284707677818211699861778173890673607485375497553950044792695189271617954853576942576019958684979558924890080000438003588337910402490730645014393944626139993962021304930585693884851648377179565106183078758655257002559100833311632751957243105404428166065601722978863713974039153563888493290855715849423326992332795100998689919426435385326545019927637556322194350032231477631238848833158899508085180301645623110974137789695666345893292959166828184584506264549176916128740195410328383519099635627181900596041756727611246064335764347428179967117247526967343473180528913782454211367935373994109689629415288283528507346659577654204151195846915957663362385100604105292647878848538594287991329391008316588143510767059381939923470958382945325103415309306516742929609430532695918689965635153755011230372022014877755668377881531300211322466617637338896624488009910405761651703479139073379123859071637137041297042812242746571084035664809050569817771554960593691253273431004257716552520792062747507006040105258016148007626238847689560991459925086278458181178607644542411762065098919843631422658948279857377721494798296989936206126403887257376364204359235748521609214962155883901968990842522379520673492164377634927127725436102831002318170471926873934997993916668255236198785612383913016499620486494215329087373236246248571587722185135073843280575488099141287015083786901857040558357799910040769055427757340001121742020322010997077632208128857879759832636927896498731495895867954328536165414863525325059531394049196044737102825239684574924969024948082401727604968228579974363638413339732477107232473805705897031673439211367625157945981136551101263968608103480778053699969506452378735841491787668692434732709831435266279137678923162268209189890311742889626571402535801362851220005623402121932245484376506118617634915644226693064752090876232237738686385443433787706787337919464462591782103177258247909852984421436139941533247804419338956806850412808232050992252832912931867773510639184936142606109451555848923891231218590508126974577997949776484498923517590640107954221527754506828916850161075524408184812489763519589202480523639302915493922503052654958775157143653094029234820879744390373734953823914089988201388712829963623613764998389910743312470501915442665828017040234494244191579652904787840722505914821617348068797159021221348363511486473825449411673083452955574508282694534845993220444112576877104023136634469673072987379011409347282373697760051209977481521066049641589152820144778837732544761068152714399986921524480404914840202514697205498164685161836685702316070826198032522695509529968054126123198922773459530385647029199232099666203568348614711551512511821599144837899458652964394701266791326332662452620357752192647336934020688209350115228700331117390678396246803048633079233185971850653138073225375007356456950011761471146565604263498946582464866345166779723892180719511026388026975433320806821246852597012300025366048017903892075315256179325450568045085370424079666248710719869967968093954252898796126557419635311252181991199472868638403391654219687090945375708737400641694057171492139584902829221464287468877601821587423803470229550066968811450466004292794406825897536756200688585030582425529375432968991164837066273815233351607926221733454673940296644228176681671803592995440761773630116057415186830787955294499342651816717370500633134584985990644429272293495119394510291324224299892242184993643885851626778679259333164806813841356823624298879119623314952759892966337499805566504019128283468034082700384061490346530951446434399330740756916821799606022977160607225095413046875867932678491108652867677822618998068196448828158725740449391409476488352418253211063994578461091024198085914719142781966484159129388911420513015329790233315554992629161702079443357100012964891585432317664033903189058805982846394807978016602438778884877276111307401676673560239883701031680431448516077373270492857237568887822549594413901949304514106210666871117011215477327026928096537676755168362963692407370899645062760567115110626186599662692456202656170128841024567777952112062780011540742315256073640073891167586164701930830848672632811772988014369475347004442382425945690487370590430346516801328916657713446373731330832193810094427075367461281344147775571789296123511930058679492853859499057908205708977922531090182024705015547886304915078340300605228799861594636922677132287093311740825515023820214886057253906793316404800967602293771012436496300771984035376573253480101721346842727638021208309202861765406432279648397436857880157789302499625515008963070323305044258715215135713753620912361578102143314662131058724711229851697555552615855622862238982280960243336066282597416001629475680216416112934198752228337573281192835249017890260773249020194137520018667502247070519022981512573266526428826986853062812662382251890148082174799292022930986392533981724448021924293913041695662174932227047215067502370024302221783010727214183721069200468621218918733921050344829082708437970672610010033929461817060718457200647415713876944079497310061360270866655181189279792290315438641005716216870963454701576724680081138239110463206292641539856054947222713899653699132087420742746227951642466127743669188396488002377607967239812653017561462168432948141624170887062475674321737248321233836992055068225873265404368530777881649224979912642949776866408694324435541904224613477309078364004539844423363312557028458347344704411013823499541813824402998201409575393619937661224207051939406404125486360985601026493802041793621323079811255407375486358245045750054901514067142670244399396492038569534044340507900254742209753857620697589973890415440544773966975418675212623348134856301264547925467752646899843588242502288410016055725166157368743667952487285992329172973373806608823276477092317207241975180794335870801274122099332082173666975386981667762901723629466631555200832470361391488393393932691264193113968976385898075868306582762628968157110686942751210887448123200734184855193548739463557125611418099647805201251116301391878378774030376721004654089488728584249757988893871111364688300129497445839074299570920257678859042376720106425329987129788081194937174128609080641183016870100925136397763923840595670857284935557812438123678495603994201044556275164944314868564660388506428717621644020916956102745036187986300747317993820812014338719078245581057367638792531745233241969924977268580409124138980719473778641948621730304223409729878559943293553236292068488292207737100318015827792401127402229991910291465121948773702993271421673154479981043155232954121315691505826558648976966150675857750719551917814920547264174550339669405659289477562597989911146417524515225701299050377398513824693397348622075525062190681319931128651704739499117092964363900478410293800870577462025765144038928804254934036265295939065852276543411208775494492406833821808822654220069325127638494333988198593401015676985522677725769685861097408508539728649925034078826874814691861296752656429491432230132822565828381534176534721926930049558376424541773202761098646922821984591901695752265219412328770821928135472941376479204765497293079078277576065905289390286267300007045077624529966433946093385815203420332482701060256897033072454096973620599217409599894684386890310628218309276885689797449633276042911832985286957459549152174585077068883210411184323349580933742483155753966469395838681967784398944816511474377691166347070831141733244216330290659505027316151184188251942022253902127785266315477942645553150349652933725840607495534968553738043315398706263517055761269512525928189031393148699588877739540715403488444717390577435112434225006010257820186866175214573034058338503794905225303759281085088096540484961684800212199149243467985504505751609412691369132938228475685585787191168795348359720714569175819015280727769754280971115802754013335947874883852322848935597337720258650127741874568537933701971985237738536549722047833584720589725021083936818567017349921722452861676053424873064382243645317693063185879869432909321826139695587856078313125953587998109683031217371191903173879914963840206185189290287066805867738585004124319333754299778689418696161311839298354511871287001024107032688611493128897854829845251701630086706523350916521122807321220067735909940578749432449418418620803607699875953017217811233407447375314580619062687364279367489751014030170484715884001892679530950524866801009648881893800956340986868289418057485123552139004650217283520625525898968902954930697620571054111501229671356401548087228022052118242798011005529204249095462083541194585951389573014095990251793639202465530120705571443504228340618987720516045567838666758253373639275462390375983984284802952022547162502075016674205745537846795596275805494307841034013045569583456394513142477460222533171417732632627941276342591428507018194308557433260155751139169050578567485841903585652988790805697537479264237452456930271909028998715236287094072106406402743558347853319107709218428836587177828609504447493664043149226902883831950014608622095282897276865713068164862738314065660677263677878185647019130290682719567850191194640414119289753912534690544291092586394974759789586778436344189304681880386225109570176368730642420632861775602764326637521329615368919629683658689286139679413506713963464345299561078793006569769632194217234851739032171247817277266871718685837059901706951166112389913103158772053323611381994941512106124420511030378556409482998035726070729424788497940852999070238390155277150995797913015149292208639496535426197617031088110011624407302544513838406169218578340248854617900335914069133249408179437556627172874826627795991597396073119336991874183810848785542561189785939098574076782662638422586185170513782631584666327317217663906630211051428705445410942690690936234930285173814100747625139976509123661996769301204019800282127570759757179798512180837432179072006336422533027493791523518228758147490448393138456270921011410799857022691672694100710205172151773546671169363499421288660692639717571534847228322465710238099026988194308262526851994567768716277595795818072734281582927849530632407174387997945204756449758622642064104164210374026557898929141324059902194639505959080813369291784907656676177931066627810734690125990060429503550220716578971334077006626840311275638695897822555986177124338536412937447008765987943554871275187820952185159007185419585848796408872250457288046631290618430240007800036220929329139416650590277699916375763004910231674490378654631094622210783432550903460871366540115720197956364140205763865343150224114539485965866582430402645480625306215367742584308617679655326287066699206589723274461541446478295426941401560520078827414597429695898241070888552465644771864780211678464770821985932032655401106994947045135506446911303603463328683168745966049765921481175735560223952897121879648574268150352581107812665814892551880463533455404125025388121426605501507049732729194130740710337099414490258355090109080023479759066953903742492836359855979049892985792935855839741526535905486308771984696361908495267109067383063068438064506600116485610343782017723554457531861390343480073800453821890896260962972136598294593904687870804345259533897332857409127220530143625670436811555896039759598924895440198077873160285431000885367572153003735305084493545267781294858763119057280566912445724897927381435127258352901928382187025105123355979218804374557951345758473312689335445511920452620721813174084827081931073975560622511559999956017832772851519395697057438760272779096059721560515544326406327406312924798078091230300584244887914968991841113779534487574296371849132414777151412141304594407728862611878623409028631057698345179926077498259515274072308653525079338098110555891178059476679393227598719575757082181658127412282105509353102005374227257600966863310173673716462622719631648467642110609529049380417744418842041177138289367738936329605834651887165992612104959046669926877494035076468197446997726835058552608742890416230842772610110748878590126939860425690190905869051128110764365343639286735335056316578665663642544721804431272527833168962044329659196328691723774296990983774355688379393034629924251864707643302316979156947612550118804348006943592891429214979729115500810054968647668746453714151927241359230344923301896791770982373149250273961667675367366148585389148543082546383530754504323434144860401500486951844544302237929193204333555185987063590919852109060152552611070134519477942058403305229199161885602100786515724737484793013313695981178095139959494757210959485577880224334974523665051419968902615352495693868591723122040022326648951614730093503612326004430803179002514771880890638564509285354039714747305523029955489390646380166231322951827849406175742904275281556025501372831180535342781921595089051332349598967245565042889720035752466341650971687684203168759985362654306655581800542129656203502187586965366266293329819170387646151013997376645507867065437299308009129050981289617958111877594653654328142939229890541357598466648683425878732242819860284130025739684170479659496565588356684869751085244801990781050819109687225398700660190634247873048592934215643006273525566523835959652486322729603517986664131976983234250696423434469935324556643376751091261920481118026616494997100495297500186571508270449506951368200049233149500534966828010043772572087279607047476695706444192563451723533810739811091966716757927083306874813144712316627252580696234698133782493410271916806228354614005247389988899885790600744742864639951187541085225249094688729904569369059763867174885810908285301648733488332651828855747955260227335681814532847431625138362738797339840669973248703171861945341769456015363038579900782416350107176487162389126371408807672565976907475151507682589510731515491998832634155028497907160844139119427035908701222751531411727349808540264962669400349438914432298964189283220574246931586150088588401162190147974937035595925993497662561677033746507324921010020225529168085449159607340559309626144611813618742339241786245692010200110939360372547769654799005919593842764011253940044232033633012445897590224295570684935345918001539166650102930617317705545292561284494971746357574633971569686717542176721661067163026258960465797811429731157202627593957822718989710557853824743934789589773475455698414080293649048788332363235652077127360973948095185027734041798798174855546606391911329284251662511527998815337911806710420886719383235274263745783121959385877025033287870345151674715109563671685972964951600063330829906475734235392673004586373641519089424469880609019657750635039355942144646185704709530402957581996658987460858532311824599225723721464445163138385490207583073199352340665285734974296179026049350766921114825530669062999407857069802920674234717612747082414021301696482447168948646977272181686188465544189648215027909740509164156478750288972937243084287570909749620273452391398715572909588818822053942943161974479710860993610417645129426509686711976798780214771721937312261010272790277377437500561420719571066407974553569208645496486603640657006916237258328932374156292149566325855137702207437548174944582162548813581276865351757322520624117140038004365284615672448322797453815611507430646843514099628897239812998182516655406842966344557474299815771555558808290834527559742136839470714485725781976185308737250048262389337604512457718164672540167348351359386807975215709039690872207158161967188977819799507083243295771965071313101665371215575469769965360121623601156782569129037385371267930170483735732395447212706441346423817652269473039520940052669460054670816917961679909974944016833172377753817100820356832773871903645231608767996099136176057375947623428450436550228458388348366141935754011058190062458429853467022245483659004342573883408927531895783084418807971847059288928151609225078170187495973869683180098065025181389645240283404375954430665241402221023489078785853901200468330436989565769935111880242807694520894346507275794236239937665087819779025559641233566844210924950221763257459552865785603550135379178902380947225417079802045663033545461893815721444920264933862107393549567196557926588588002472044005450306470249295511808615131478307360539214818373052949309404960738114920088455501685294598378663963428460003193068752705568186904101451472009909827686360271209566309095217720749693846001845914950608808095421560436029025009352188811258979469588230046157766298584325168187363857094785486579940830185018966748967500999785371092849924944574774985187351620537084201565537587469217620729132620911228484132067005251304998715626705580384743879727692262494239239250841000398049242280624839923237217219816255658272766437308532487335015294915084237251263504488420573984509500836644417277296136835643469446646605170461342968926782128069798841687981715148274948542725875739384858065409219765430793566836268788253297937570705517762887726735497726046978203913436682468390730471885178864732170987835785422515146623605987285105077242951994457253161162370931951337752682320552456091042499323550501212688036642699453418415729981502465476292908309205238250079884424448038685936977602925648563565410409019015750495642133441581059770327678095899301836354850287179321557360362697417031046982353970939662291132098490348718811803848130473395638591779941185805004095767703977879292177877324950010333224537837423197027899915808554714716978226332914860761200798908278886760196337673883128791194176915563844374884142468337968055691401119168270098919408038081664820776174508840238387301429250086610323144246763400886650005091100221253191327436212915228650874956494280854281712589526966530794949631429290454375986550127740227783079749549700229716644396739773029326460211477521316727979879155523246736245041833902653743513595307419683502849630743746122562387518042089450673498867306024439655529674169518930849467992531765667827790511018698570558879985261403706904635832114989867912059764916527135841499435036153661811458502216657745102669071759498114433580228395529717935518363829985201626481233477561579017156955485331453902328963699381180424914303627461390127427004068435306433994515375120244598997221553568413297848317510590668405868784860300140676106283085065523259667938218220556300736451439714895665932955843816065139967215455541864559789763095585985709353943930840683321021368663639373833654542499180661222059589368543434547751423957697844041476542485302497798342564413177359061853425970287574733027555561311938404875737289848961797048646427539399845043717214739926809015638702878922812914197673961287378105775493643637388761771638648628323077068177516440961012667094189683640732073945400992188815214766659047990781905791737534226939056169112017927277297136142042728305566882350441723516075650222343408674668001642488615618461137577011039271541886960287387798565964347159586608008589058497294615340019710959387649532794320623415050634601349834385144419160807481421721626067515766842850909244208208701061242949222329599127055393229260099040003207023217952184011819514521160981328620239515943883544549300958809433467728900959586677603688292159365334627926064996506452005907757405870219734372891402319607063110828376014494657405326356407972950812042348067559308610280504392888884863491752946887312064076988631069131410653621208215384557475086661859760068275640232051036328618574531107247077929178541032901013173085695062606991480019330817895148428876649530954650765963697447365420465784143232056777299888513334144378286862176952946916029911867587461202605719442555369070152754269341203116060421176424297272193036165514881882022894877331654372657976893465101450057343276500438301616619485025745046421694289955565217800118511341599676268526395565834627410928860141000580155071071603779114633910494200888702630512153956608534092394895087378016638058180441139892762201213293739615244161335683853655305214056009552462019654925129343783411495192028479053760557201295621693040029100697579596003391861940929919024096369230503737049471402745563269836266515091524895298286460014139623075626551057975606830515677871415933586928602358110526582255604504924705279477840041829689354456376137698196003562590527221190044389195764557785826950516877499728232545021279634399060411835212460991640485636799870678512118213395999820430672168315889594535748879970296103222439561096021232793123045585351340012309009461296684735121454670223326093845669587556603498483676241409870800174765530515528775670135306912239167454434570600328094380476841269249304766886572679892710697810711146956271566122447659597897091238025681933089756740534647106480643819929565407078882902367605757382427752463568307859664172833498669566543868026924796242509478092911435885624322235611713520815961408787436704698432869756872429495416883186499660183130649881113317331893553453506411711351182398926306069695382662358877159564931232937986835063751933424169540889400389444549103411979681771746902353229462265801586019782146562500887826496243697109827176305747931487772192684704989467585162529263453775461168735443250633025692650667879380146113000270234984965005151549539292264903057377384129435005558721347994699184082249411889614333219999244537497709779667829230354454996590770519168824881509790906509452901245656982093540870055888007280895413774106249899043682734086863247071177654740309700992838757050216911722156758055287092730782034851995545837420396678946100147471073187979886447892065636394841316117315365827575867536636578143008779914052118835976040310039173052483041543770685837717148757456688427985911845190496924354177433596636323023114197647590763637425523626404631501271849021751044770904126121773762230261815956475866017423219183089910661903460549726662119684265101118513994718014828886712437022788617449754499026631183705838206518252820391429306239188081133713465859733088943796959124048113314385987400051180436057137082742927361328414836284659195031738116451109290407094926186585074181135651075661604443868905092162311648403225398384052916167267353703124167254101370915638932536272861179786536576746032702036923666256131512079286468752613614927859260215866349276069939033925552554042994323911130860825891475213109014198216677677875572459870678439233359494636872019995534441405948004605961496919072701673441760748857447020128910921947529144747989945206215359478427364165591844231400531972429134673188012826828945119769739920137922477788956399629302095638491425382708801124449846389357459814551302442401618033212978834722143582718512339951957688718043893284009661250547812631319211966826197902773361486407945098558948532738163004329838245040364795070240268400872635524944397705857353042688179824861127582919937586562033842049563495089375627048172972415720166690146905513492467909909054760775213718698388002591557282709283531997252284104698673996219697220952241762683083850855430861420504785635193244544974190733136633774903232711142020024983398950646115340080461992172570366415465038367004598803901660752393846107104396110881456648365572258751159888544486869080058886827056381730129187239653072408941392620477973420229072469374159531830364605685096131730043906036210051740037783554679559780920357059675372169013007676187643140491742543749879077838500685654813679633970535146380772742629627799300849485578344155925618693242450796204589423741995344363706713023441220180423300940279292074524535740161343140423028642359848812394485571811557316334096654971867227794035003306556430220970695830237405879162128788634685505450903343803786712423407274936584829085827626944029753591403832922992452220630013905803185061240637491736292505916474618687076114592520223107728725940489247037475536974068110161385380993715046351124803584085711656309035360565332540554981123068543574589499681628560367046097269939723398838519583530091223391692463574890477447903737169378348090656504046244828338582113095283756911721595461377372968439636601796325677680893157060197757557715243326618334948124801960223613024691460392351865604736158514832967827469434634777086782345503825362647235520005402314949325150064204693915972641174071637930118130188364298196604738671958609063084225362033157124507161538381020154242118062935797997075731485313208254566168168209430624089651542895916202762017246968343431303887198198961176721834119773105024491231463186276958326919672133011956290057621383906204611893812565912400461772576793229844194715363401237696300648094406963805657362571888172189281289121953487995223098364254915424176657405163764955769744212426821233595908321877642743306014090541847702021925086989269218531254153345771072413123714711738501396216465206027287045002647147450536226894634661854808903174584125024535139946280469997525601450513614049132546010424423345491610317387324310303995941492257821278607895193763214653228463441308092328841056181151440513249574702180168155832650051556763572194342424216690839939637676904689362173092083439168528598649924994537507918804124995162867520211410301076165077679985387155115804711143180897705297104776692989789359367262839638417128234454673916729008307390046502206713549389298558690984394160204532443843024104891092854600230034265815152502727636483418761489446740053755307863543567511058600192814000059633956995541310301492143992354445208810903566149277319267183101938944758716939858085079306563878443086367321486338282031304004909907664520238368741775990749195608246400049343045842744771422673802730143371011135559742931355177365779135782189910587416654715456122040244447991291601818709849992373309902683118048334282665538914867151432479862164054489149283394721403962962318754745266513733945792224858261662239844543005005119284411963696365376974863551546494703452938425392445810038986763398971419756810452750576094587775638533029973126665945073114422009740476795599757642128229204082785505096472265536803735125983778908772866674484179616332201089671984111738033316187981753809552569871726569309531466085265917544084988502647496237424334780063716122779477205553954095523382758155517595864893396742324097052128976228896707888872776227001950827408574936089781858650980482492435616147376599387904834186475613162973324437282964988134917673269704975637116734323223879578054084295807648463624099541407887707207531785577707242423180874399633125484626396339482309568549426167522406566239472736187098784564233647327679851677306549242252125282762265598258147839828503773281361656942592050219160514287240682392820552799447589256488122776632552323502388056964239690077379361408621672466629427488329301953263186199161676365860317842738481713695583321349631724113494143864668637587779766688321690393321714671468644511138120060500672840871274260463303464466171584763251236580931831521153242360766804196681598175744136728777187557868821561564042380543550067950845882826259625866275879592549879300394212993874889235597802899214447508270247481806956161643636395063305902678956357009190451045323788476060186743540421357670752860971859826671466802608001232253228214304979364394518877854823696765432593126529535795137497715003211492357551584060166644417352072914511601195132539843594300294869861526327019685996573386482594228766650202547527340667425996608496918531750708035589556654269563100975824799955593227473975682294851108516712683553370148797437604628721347210743542881199666001147822667166090106881139258818896270694626585482033455657126431709119216793944143649017866319300741107431912513298554235871968027447194405180515577101697519057402534700385177040022607762522857761374574895004653964108592419166368966224993544875782315248370994507546284260047399125282645374724883877889257526128099998909664579392474720479631209654759293535010839157606874069302766679837951884153792239573444699762519056492444125293656117237467212194038309078031467625680129375936699338462060288123996326772717962242254963357173826226160802790107535300136590139032166707458223638868504719768626641788950984142204158156804541888793180811304106774131044659254944031830295612694740137119865266289766769005984756739477076514838293022066067708970331426863902879101034125314963454862726120299644244801286245522680377589810483137702084518546285267707589090891309383769041281532530106598300671000273228956380864209818522176282079119958750836908908000856837730097899275282053701179977770777869502367476638355753283380622409420544073405645542849598359980561726934789310555867360077037895150081764182250045577401895272740658389814864618037155095574342046013853104710473309567862013763341734294416215632499398537894065640872359794980133305854440496208613947035473969438307546369261679843580711658245979106507519617626510350092130113886548809149842674275794722588990283056705584806249158461141612780385274226981417932678997055759104475280979298716126591135535280042303263405935009017449794070114970966937246738248609555943844093412783976511901378216758179882100631013770954746400637726634914090181344429581681598553362850039085271543548290339907393673518236070690307361917513847863193975246713781611164057071245776585292220106365980867032654880361464744645700814225418969392278119655501476382255610227186896452273467607943235925111651165467710869475926844710732682583091233033933090608882269390163338314442295641983723756579988234818515130617545534133953325994483161725931943605277511499261981240602688070795784909003719908150188895302780220646958097547159083358833753447531413208836497547897407151994310936616733886161242572353467992440194836120146928788102750643684436274404758764073407733460016696804939164697671540033341310054807220698072307272017137512423324526225391681673656679779455837448165694811023161774593658391448598210433533933135679089335970151949566858579814748288019883492591085142336187983966012724822871858860750356375996975620772649592318260628831108944898687902297472790523621646959144949876912692673865528621754663123886359513648099248779053883838658589645338828517654706293080423235337429000371803759788994310691706454909276141737764644899391893135607134308452849995643654998164479021323518609386736658727626393128478864160545072335806665052075157823860232917248097706853836508613979872895228457799537531388043212043998509026980839008440452288238836646338355601375050584674967918278077591523210668146855362590596831725818581536577123945846627388037910627358467205404737135884071061746966087555937697663214067101294741018041291362558559225227653034642199679500709398786506619868043364276661864373330131585763673907980923398295997553215527221033324803372281072359034928782994801789009857092965571225499408949323560056897554500227702260984567819517383150263900971417055409541657791159526784212561071892438359988000608549837331414315380104816115908082161613020598616053263920041794326487191422680274594595416868473360547360924331490586928545221247858098869089592568701059607823681545554371894954108521660642507118561107156868362694603880751342757170050596682786959913640153275376040205887085134525482863512139193035054569122574514650530288737670798153104714566169716506645226223380617988038252145533661260693300093837811674266770214210109589610392678767308126535209034721962732579412633459146308316568544149554408476591873708835552661864704133127674259245462138820918438218624649997059816003956300760134314231138318005792238673792377355255727488077611276793129449693635304218575160262059504519922148005949461035194096132400215669955665662645419111984428018946239563251476210659439205919099848882008073168673231424770050148350006735260003244573393538380985534110621028680707465237439036171407084377730252472135126591767191059201527071236728654346027066717411055547761477980743614737536493128429612905297085479689102719268038107257234356544080725255455066597527769695104615432670847212961150374330552489170963343777299561751913378550943416697402647688735389868615205705404770832271515910617035115925970782944461815728503726224252979812599471426097047238467121463225384348919106989808884071303882810210352103747310871255681685776832021194748762827535212472352087353823375449273710503601027494650317177454178747864661978219853427160804968355845905435383483706869151356326193642859741764261312346621813084311236015340323611946657465416697634944044307293202185098571810416119589636925133511426018876644371610699066515235513825898563888309293697242729214554914636478798454503431602852413893906820465642593976374835297043765261682264112454809160723770301519910462956289237836375921035218994153802470972096598342288199174570502791039921944017272305814265523106979811764593764520603954447952834300083500690120756143546154090201045293962809592900856613828743559002856843102214861390808022975429261539501371263152426998587164115919732199699332190458820075950855248321230084322561873954622066722293562272572329687525423751571672216283015416698202114204216603044788566726701349909529735454960306837596360585111150114416228955874562879953586970804441870467347407519068931580890206858528297683080214281235263158004451750008067744370593691209932393120068877635862265922129000245599077491893349488966538126884115123736707799838048676781950775781894231558510666043490661380327678411845186016768753160293361536651523282309821237198305531639558683710758179134659014184829091325470943923419725688580625675936149809705961898513749853742652551573871113727380385808010385404247065995560497157840663056487564179318601507703663857291419711484464368401858279005986918630541779030129153049531869118872600089049157976585017339132510190411846814847556889281063384516731992587599033959053758960188302508916965770195077125391986569942994345821412824922852810578997934966304248631392160850333862676186331435273223614073205977557394124408547285335463700344276154474115230104385453935939296272733066509150204077830761650052041025290550215963655854649546963277009236979516072339310070920982276613746558133691657328051552956343363246563738472300807769086141174579064627711397134423956441650056271346865980335966398335232969817857824111438766612331001276556465002483467573633972170882698263016654255423919954296239406106767442031755533200287806516677502896969943005295911158217178167478597036666446035094975513876622149615591650082801215957844634468476420641943887549670783422245767844910657929358683489943468238367257182231851905663619944687214481827976725440712846388076453409835077575211782228656545670125930300860830748723154740819452556497233324363092631358822071513576325878895872558482804187046276327166681253179217944087079700283791581766553485459532096890693464083720329399140414257656111847001507071534703943357023427446222686937054728649898906446525218519865283631566645433546030353218175144915329904590739848184408888329756083562761429995609247431645842839089911868020746487088937131238528225164672867395275204944651099694292751632892382204691339809749148650598279148804684684374653588927831636753333940399607739748982548662371296125769788775460065780143689208373388285192882120407490050650600073331272433013612112226209504519261537262247688761499494016951162251113395165871035481431846026086971126004184866259442773202851616435869336872296020727717343028722510494804331899157002516430645094586459689818420282808666815226684170352707537152316064186031274374111934940659811931294827930314479084308796281529417072607532667701584531697027256607111422835010688573665796670986799445452457344073215047056858719482747183805474087972266321702584627857578052916680978404820789308969251116181087755130570947001799938996051436268245238693120277894503944836212801792025433495386209919167841734315252926796701924163666258307415808969396126617835913782636705334179567165822509736504041784318254798503639287825844388913714469668120600949900571043446159877457176147557931330607414297418915229188792115784301066513454989265016874698157785936949146933866713037311152494729651388145577042947607957714220130971636919807045193137903791149089076113214013827132480048062926226044910971923129978868100048067880200997724898006541019411315125872075521218309573237954057970012595312773619781837118720702876060460081305968072014484729199771986533079368487173732083834229913550781063655355544057234157566500465275789189405134281131377321437644109716461959959530090775379500120924366195213881057862219806850550890822759083925705372121980046648912117918280878265911659077341657973842122798372017852760605468926306835402774630396453189149645292851099340203965528591704315466633343562366867442361179896756367541384467964660843678320056541664703177102256397466647776514152090557613374824675404234430823891838814287822766334802019531435918367772368879361330627527830915118676622314659809155776999028980485645528323057179287352709677126610139691814145202824226772451348513449424524628832102665463566774506649581257415422903007193227654071739450734066994244921945461003188073116301305719581882617025742631354228902681208835134715320903654931491119235361542173643863509845733238024755386555962758330145582857346773613326490198976534718684170043510187779879210775731409533102374830333752380794257890325862859120187936897665798474578048146059068109903124670176506494748389100537980926738094722262432700894531721484487077052921501178006321744893353682642651736158915712270822620736088003491018295554675319130901166756790253150178669744346175499258218432779756352137849351392091784261252212015132852419243861152048698409977320222249271454879427287114047065327268312905448767886852145964838844102693190942524848077128953741132732803580854845064354815954733455435104754850137298334688450666755058529689134662991422862131942596633837641495793789933157352471564199380938596677654093396123303272643033841816718342357295561067702062030154580848387163228723093283003906959934876629223383821781851499702963134026509186171365140966926139841687003269290346749224751430670816948025766354038081292960844913752852248243404957742031286401804010640647963882588492929829669776125730692790390175873767455849210717818188119083867048604846103064551942794022795799670568436507933524065006057571024995921222457698841883731063344333404255244821275316466752347761286919892851122841635077672539096976579925033822362096765258735293699260093382753449151383554954125789050258679334764256856296896940685466934175674354488250587927449225946028376913045543032103795558015423648461917533869704563199916305657797059462396927499156020053943600493856021103334943760805611386281375082594196932758079378733729820491531364573109120316846248069266997485865394323480726000588039101688661390104155872365787600409726709814186898143462495449144044387727754716886633433616298530306940963499385576029493383797475571767712842101486712795670068993458110471825829005884890018620745106461881971747146490144342568609900898526412068216567041548772240213244163105035382654982501558498491152534377940469412504110795729344882680450360799893533662774610027985232871803251563767347939481261057438557535766452349423609765884398823497590733159467308125227769410160293105492278992678059831821397731270118254596804834489436232671369029940273137921912112822804037665037390395832883014457632523908883102862765897100939092641086966902627418475364296434808714328622011900610981356089835388956204626950996198258284239285168495063733427511937980184400702568072462867460933700957998413469958007539000454438924452202833040252206495454521074286989348118339753514359118981593688733196618247978261235618018548383023024900301387805853249981878683251519778620968375201347593923564593861553825151482985514713730559807029321962938293915345301270770975601767430523855617686195846368684660496067546768927891937947246284971232079116458654201406424645251383394963600212913943983012272000317663433432965629992296023987392858366122185327672924221397645729726788563162080888417973477008582463004986869644945748089089298731419502728449904095711971534119583126680024736244806034121835581521959928142609198264126874708260572467807423084807602344710246415727771074750770821352134609262871382361821778976408595687349668651130346344605155971505386534500427154058063105290446872620713485327637353116505167899208760072923722778256575056419791196299332448998898750510973597655008061536720388079677382001229671248294566840980661248703894689544459835097901486412009215832598345549465902541462397552169074261583414744988395308714059675687835393308307609478927730549682400150306395450068611435486656465248950048023200931306313789256831994472531255454977559920004059117778963764460249789678727200758363887428825725696857514306530677766788528120202744378947715466013101152432478006660553208053013646422957269096047655997444654184972484152253488465931005985176490058855345609202136543767294465220842073552168830003610244709853142618973156043779753000040368187382803119586799796935227909036876819777869374304578573147662032210588313719616028499314551177710857595570685421378398080081742541961288668923635298546247980002209296566591439579862243406955010651649499335701269752646321716995901460968308235041678468668372745059950624939237313153934483970744955555691692754438653652760242207116714045521110385006630510024115341349653300642222711897223410749566759531790884557627174772521783199125054408896224250298980591464359772845955058904242978606856285230045408995512248882374672936646076760816060870357015483264797609087524688752016224116811939813686369647520685950483642917728983609251852218885892632453584039410160211017403116674170348061448979956018445733062862957615468830681729906215662508361738641475043068376664045933610195245392934715994411777717778990765562839655170874500433597220107747669810540541914255943732804409592939617271908357777046413821831739394869790134583388466829060677839332963467648131825166231336112734400835874517294931714123604984878812546364373852248856248277919562126577486612327011311233265872695326492226541658262398523919815406237689957856967287313775142346773495839635315682208181382299155507637610245095998912699922984420121596761740437189322401016981659883859439472264448101920627916421462352316923816144010815488957258950194216592266920513494755389219954991995637700757655478577714294526866630472353333335648974792090819814502970257569550198811180984279466760018840548269526328396663673361030609568882448638448155342224486250617914739104568522021904994526845496342965486259265827302574647721352085365638680579569379924838164653679850991991783627279698765079449058244789916343877990518315501698789956296237171905403261440840753816473387129716380004967018152980200317318132036506542318960534304182118839790451585045223438742795045478154905478718979021593785366736632999409674569892890931217974872696801547476264017620220063012557314845587611942443663620466882509496730131839974019651067890250116624737819205943024713614737366936647084398888219866396945380333580881435009317024123548259073539725614365809077850614942511311242960239831666063240598107098784888320451703903443905462568545562967534305194247349426190624564987120617625106113399766808153078226401465808155554796541680374885606555790670105065204876006112286951380566611599363671649649546743722476716132530763366966436888624417082447491512974464203851734191748849686654385875736883076754854851423435865359886958660297720831468976265522356641945297966868084649694634376305316808137972906326430631102103289415821599624604084803923038916725073107380596800812662551120899162525518770774563914813938128316794260124424760457619511804081342385549521905801319280632759987789808478974516439881503045013285478392773174009879295897979321007275967187109652495249527222772495902051887628855267460802042858949360415514097292954385798444212792179932418793194781180320446411274498430848557240664062801133379315664267674420741358655778336003858193383270548333760080785206223398302802077798134004044547503092707213417573906656353668739955649894489829371412919750681278269506577934313966947690162437551895359975866109790449752776532968922436675069786335156744922106401418778045113264887466228325065690563592531169629776895710188370799636484940501937327573011191178938539518183538725959770858740968824660104955570428605916385857229043312690710458165427120637054999326204998276757966708840954607633908964876099075539887330844246342417781664011998784505654017347123875073421574102162389957883444557808345697522375945036104000337625141542172545119916415479055663337944505953301243624757472881951813074386866371577686006127615454664716293099404877733601119480067509984990425008492758607668830942376882319521875684904656435658407583343413725028050887426223295838315471332573514813021876750629290614821131843865506537348443461101667126789835463223299236875239629291718993468692362384191963116046455812246688470584564329189758358741629907753893194551856442568850190807314322983192843724808154509408076169207103201293994769729241879162416739391975111709080571150723977681275075216025156936410231600761850098130150720575864860046990050609418193810063863298618398479298422703014516476466551615842042036991647517811958954652660248859896020337384998921376246436861172873340985333370614499626205685104737143776438156923460749171685469129728426153498852088422614330068344800098664992670378986636781540399743214296881689912564125106286469671650953116268096016209003633928646066337265501633766265620188624232762021036135191085529641020899941526184850163902675007298359548111250292723344646358867509338661869428068207845802525330082765258948216220123541284108650111352489248124575264521451153928771211316433014526555757151004123418958377488050922342353632736976404708854761007575886315650197848423011800568581882895421157355731813000850428108452213520149085616129271710295272106266647049390966934319192761680623407425820018461224217799417716149758029384591870094171121346980757629999565374302646902247202953915456184878004089084287768478834776090526242022429150051259576956918129976701369087253060865042958495294299332110251424147501921449774153543121011855551142256548424088052393670489960187487304728827305117877847947082778137905250370432964987091102979377182287873723308551630082379652959791297371025488903475439043992339977941847000828433179834969743795436818771539887239975572478065399033996089603586134601384404424195261393945911421893260315600320058213428070258283745745731418414942639879342043409640947735832723860198240040848738812712149375401264596711111419673223700087418369579713560119877180676921630675455382352969421302209624340782509986245481641586783369682537956236228178966396356793167581949139003792240199413491315805180707249833702997886546118367704919749654924861428844707675562529561477739428929111051495044619822739569074890681119212926664119620461445297717511332601779050689518688058890902681453895494114357656261441061165215681423885979420353227912556992660214938796642021875501752745882436017449159012037832028344544710031834496140865731524938995297254306225965748235984463172885628551547663573860526207756447637488454774812689410866960736032688688977301012785762631088192800197700364331893693513506956020413129407137202299339950355049296345384256179900574555900095413977586863223976107488214433718165299642951934499385211274697271559152955353366775908679553946978130724769105987523013313387449239911020480125266709034554910247307172147887081010032686932958357689847575716904974560586544485747043809537612005694453821933811396488380643009125972184297369511966289776327736243959129949569015086762696840338523585167092444826035557762851797812801079730006974395029485239667169830927238281960969283352158954572396268003867400837095336150516951086441728365713967728025085285455422969747888323742806682786235127805905363703867492905517296812266352475711617722931980923256821642929929872507490700790328130808478853918174748395894769266680525515562762566112168350681468916159044974215096339144069191530271084509971607441122109280386408067470143985204804214406531330845203611833245920634839122331433512090671894612874271691835126083297868898720963674112127273062042004622456358640919366997555788612601755773224291163762487964343654204713232912954580401398164619123600869389587737910686252525879362721491013143306480580809512422700700695922291748346243378121403961833558887184541723502044917616015490817098767089933708636683366299903618439641018781896008701927237878386545426410796407388683718298673658243932260100982347783323389625351663407330070608696450008101917672111010684963457113854834563459719239022107145122010581647246105549548421135731785389456938063873712156255416839107168403771645048672644866979911563442058303583807110645816193176240045790570590965732967344150545411604853296556011735988731984284789435026013531979331545072682564077197299900727084249488142862193545502355005893704148211588551281789372175960696457906714704227884896164501869483015157165383735375901558501382556091873174340069260509645018187307313138559578551055564565975109519671854852436661684017851157297640885362818196796032249870433931080281948357506566441724341657815487560442977556537580791083537047135064546555734884449762002993179126767566771797369735257019206293433532739431000164654698279765557366666517517852495625332143344247522542092838714048803683584706002590501952246815989979399239141219148078151117104099106015430794562369107078294819869509715318874456372602640052684957957703412005004045879605841232556326624937330770819942160511246894538431545104455750983234961795406922157998027426218203476551630224257659999723903546826828438857653961828189580568174950820328358295305491438843654098933039544889374940482148220200605585289802210810737471917416653912444492805556596080755183550243011265846637659062302081609307729815198145116012745791763552119396250398610316301592550746773450004660525953734815983729566005705751811345565413111793573907368773004897174762578931035167760457584488237095802768420123881916846142980258577513192115227221536593570154687387236386708245903422413702210531133799775953828851565590680666478803545216021849218795278967770016185870979381138800449751679878703726359541038037342743800897853636778639641505554549182881247018590174888190947664300360222030928834712407483035296435137175698047848845153750100974815214470498287757655659607577921056120833496244496063432292616560031416087532813991045091398422533056842277880570934541382027511479487960213545461530687222371704126644923839261932972140013977353248169987913222993046770534839221228821851570950407673863659466023568558783474917364880084166375064302790380364450485447022006554185914388124949417344976802181764417096022228725430564739775327877896403167997141881162286152942166210477095821899680675275859327235008134872460119065132050484199385173317358579265692952025715418633177333292080307271127750688397692675077741247018157005343952425622039666609008343330436406382319170456581522303069998295803017830766897651967742530143437823830939723032357822547782201374187820038006392579641955640879282881160733312642992597163938364478554669116877475446682533769481046817032362026268293045432951874498162390501234269434650110613737622637091329129702080317130037361502755598063588947288517646477185460674826455729368402981049933310064940244030277089212988422731371983354112687590917454553956131413106860436207843544829050674660448321712517739029931058684504906855575115508227139359802357094854552432230146874042332572995194574419889763579830689087008300011371378092739481193168398721861796422679715588437564798122574363034773121669887956777273818488494804447571122320992868894688237758139830976601271935682789584773020520569303533707644536482866231121039262485220064903582334213738244314908912634897562148673462327949902650807035533024058526242146169257777541070401701883778112267307643528834033297235586191497104154095663017981723024991525785716808705745422365033914364746585211521058356274384089571713020519250363944234823081552965891841362293000035481698480589848145218278285571927400721332975511079168811789460098410514654807777742974402338723450259504857016870307543379640636052549623619500652117154370377308619214703524421594902757478383033707084685908645795824443365346827252297279383065488961366791288962258530841200162763598290992966478155196051029937479665200928415392737285862930402430999676072533975462800956897295115836865915786553473881446749131261872620733066365136192508235884524152522505474730149913018795603166729455600252270639923496398926281307538702051012391374811803975945870345299597728699978531180028360505453249605911516694487273442925739202829891400941456155705018250358146644946504842414469884485371971367508503894156112477347823805110839227038630465795422571474531967567986041402830216208267461307196211716016204433444009534008902086161818847851048494464209451248420795401525386267123777559314189954506229896126990968715057367904032756803942449567947500268940058444876518127735978938840139039997808542504393972104427598828679958776292050193952044369824580226349996985316356475847494111177763687612555786185787786130201404374190866482268944402974121334386515709843126481513668463933359901866753607735363131408128361468069104283983671746980218986728134520843389377108297601136530048034924255558715777607057860079737241356581319553655336415286381349271071076727088233753729351078243365153136971255039267441330261233861497847722833034620191025191410058881071572633587618586160573477005554168757782345456432376252042126817649119960800699042206716422055723060265026139088203190894777649827777462591904140633241822200526824058012511570250529476811142083767182415547123641482313194176232111193557147020271648734791688540472686893625898724005413317551575362353353930704228298759407724250745955097624284197916996178739454461389048501593557743096753580945347616285906135510852075346442386003008019116596787924144019223646393553649454777762549640076636865888387009250557531849898792870409407085480514713493266614069499472877530330276988987303696302426087985701202560807422518178554595710640616550872852168012155577908802552834843477459557948899847989598292533004420524449214958346026224766906642973017952548258749185733508365218676188808540944291226373524255951973848508501145310487605652432791770313893140243759007458108327544384398528135115088388927398390591370316087366991421909529239714558175930146806536942203769839659236630420094432603428564658969356090109211345805231669718582756037646368675662117083560037548211212943101587660172582368320812831189756725092224387224997044465230916932590999182928081337019283096406202549852732284588162984433535361474537711210733846496847013214561992758050955947512249352776214303736169322121953056941037513443508330097001721912529661960777808088056585138306664027980550975990593224345945689016656067602359606613192528895186662732484641264717613669794173838039857031156592423351533331733976322436403263876562071130443703128336743415205457176599239229706856054324233618038094591366150336829784425502699263163795877095506559483347905899668215654189547170306909664423668477842354496716740331012549660372770440055130210635506593025337745419898705573459851325996761361350423319493159349110325983235646823855041418141319046242439931139741711268407699401595351158846385337655600944314598150125030959730159958666189756995084136301088407153007944627425957265065514508423461423265998446902526999556713921017330280742719405106862137535285501609686337993165381280994266668715018097238974059286169923939721677219669978172772862160270755530565653181526067289158801534715334247074649933280199698362664253890628169521075551883241767355853332497260350477864080573306255773567411049595791824578943313147816725027392270513076993444538658583601208250325027014428842266971289898867815484127142964511630684857764560194396182678612430118754465452168039765528924035058487442494903262640782665166794977317378176589696541343950602739116894747561624392970599059780557045604622094486423933279904130678267502093502169504212433451389590335723498992362522779519776092415216665926840511451972435879365465038850001523953044746677058260212995219865747738608969291855974949489856651796871614900727085664109334300380440889571634813832588137844082979515069439446960639692575562146764073909224917575224387770118533497118366199329260053436980903207145698704040301410461599794289402945586013537219798411037454426409676614720482908600031665564459239695439739914194129194519780042565580291942425115269689570963925466134602501765914668881907059804063981290537893340027918987561746112242507303571487662577678584357193351697363528039290857271902124710701017433348483565229265627082950034208415801772759376280184251438605160163166927889041594483054142598263393970576177628768894923115897126396934019410372248952206861067035317077941129629764641928155324153587220028896229852261230870905749659126374367846500165233836432783687404563412788302040379214334106332889157631788225938664528579935221602728560066887608457752126404281925061583713854689698490465183878345615460789107633495283623604861447291379288064152277512761715987198683706355485697347732808457881713100801782975756629668352153681609299051418238396289435188471339476031870222167605726288623646950132666860722388848159745816386073995813180112759999166415276670464777069484207359357866994497365866093831908570330510976232831426030265662744353047969545601104255212433997285615847941799799387431637475214218523997021292452628381618712325469982240298060889065654221676318180452349927266938689736350401100775992669664897163052089404047877930095713985207285292175226970189835329815500728347083849362618032301216793764574531781204668876152831169697988091186828629318163956541450491896685327069338582885494483594674493677400013143584249343135056645350973178282047450684391761026527754712091250903103213428694295358686427610727749254374824048492178492858377463019008485219748324505083262904822471664713426952557810258438099451672639988895122385817520770736810487449213238014700699923234112969429387966276294036117346444904786656365638042197574477517270511567373438825643361818881062903052987605577367783500104714832565439223781235408923457200934914634912027602929302631810925737336776238315102940668065925106493451629639059629431058913573761117312833179956901426291704532337632716954142434095916543471001420383496938642832481191994234906756775791931473702403221994864637397716972383675671842089610699502975657659308535110153740252767063910095434603182675154259747513770032471996391913145862352052753964583212534041403282468145159376105783578884292567602811757236076764683670119804023805736858688991696722889446165650736404272970130229298793289653041625744049514986707483513794071902057060955441918843408172730998746633867799001466822848965296237389613226904026163312904747812708347296096874644272011316678447304053944584386815987167782031862907320505219332151717098240047299987818528818769451830802126208001661584101297578919003788251687776888361493685270183979212631721199171527463430461301939460546326186967796421816083014695611994492675229218381742134964507010488364954716377412433683210474046232883107979943835391167555667554764906616843675242043989808926380001323735769181113393605127287906196269855522985006528304235932539689804667870553603039587762473304370011475589361528402981141581506551447470291085396337324772688526158620640670288960399009753008959113764102362073733763141490911229253949232963455202129663649527780554904736578468360317956344849537293600165310587358861255257439708344020605957436179411246678581686339882836333766726531041349614851547756938813622891231939143806676638691655856417525548528926699828802127730714367011280779082566578089290913877715956709568507218378961959732992991064915152590353206698427544251749921183388844840124049082633900047040708644421773691969654084955961033718812047166136959412397745980599536592845073946204228139187846102290047044645296340665518297364869256934004324818266470713949888939147642152880873201861206386699641271839345002155038409000238490273855877350379614350851872943032982570243673258555465760087891494143050717732025116156649002171864162968485441554876802485391160161023398670445728386753645729581934614514201315801836359301879356396058650330645579016229097381858732023043177454731918411512933036261201909969117198030486101482809385015536772051144030594979542304783678184534980277869342630034918982951159645570338334524090906849737084713851677772707347614884645669612371077859935622914510346784095323320064140386107593045202923217334548772859220096471654701644884769569936434024180580171210704149906875433243537020247808763766267086524320166170583931134009658325571076849967059095461643467431459068277084065784017162420982291644097039432582477760237282136284735995222769459295405472152775048167485747351376439091043700846192116497008806033230229029320606407431891132366092680103048506007326356724146430605435720578343274158819272243153819324391722246642617370535035539701698232870087368911972655183165524820400284390965245897554205856830524577760396640341809875785293231094863707257427227127446702370714121852820209715964036307397186252232352624109610253497165200847079548691321830198377750439366273113908088331802465246501221604927723068632987549649465658997071640646783540641006234334001380470720297923426556621520706434181845893819604507804625274315588915835928115396587110482186676530739047160614357203846348718701429068544840660458327005331733886081382066488665798851633867732745515345402708250850817981496167478276450041384252421747674661907091620951824577792115169469708531182795769813510383824132534407908600496221184580749369746724088220677247889005143255254810951622059736499354867206065189297467032755365955715169056757946272093358945481475854194807696758881747252317657394970983800907039622679132696888339094591319650335536930242710102588169354290128119407527237968101915491085745008219265213892429048229287192488082626301607908117656953402141339887189164622595989892049841491803821536643866549135634078716517263747250006236240649894559599035416238777073053770875936277539969419140952992921663358830843956987607923303858422488887470738910403677908699603579947651955129189789694997044473509754194020924270552948319655282300673353687794801340252039582232329791756164309205090587711764723206678456756028128155712335090016709291438497131320121479518252868441505199987723205469204030418944769997226040784031077210386632976327263634512296439530184834141578694906926967845466300064634143287124466640154361103745051787245829918273694472452440294327210876169570242205685560713739119900543249163499772446703487019941635443633530449057439604920640609434956686070173433902224887924324320052141773369978736538809120895465345713296674937762165042934239879600754561216921364517645777353563171132951394007039305093762090833158228982028853194059320002063513429875044282227756595141450953201918916097941960650403660859552574729030531970173767841314854474549861587675807972920076982457314544717864075204560698483307906920653479072695012454246666648475738043425620394093783087735521089068911173024523279818602312658901386766694813891809854641927111157668504318106218173746056450388840658944256771405117994846660223933244802455968199934202117833694662002130385061795617702320455855234791342047911438784388885788666290375404641816255631999890375775090220127170728948801549470734978033136066175679540226003980927481859283840904548773071013211689796506387378394444127139778445244052037121659086085700984259360703305947298266775793886926255262617416373124021686811089378092006692877298800688771636027422897549424537811876869242210867292847251306818466844211900151380730446935408123403757032021519911930984166585977239931585526653002549002768640837566040258106149500980147124244020089483681521474926073555282350225650568810314354813834362183891276334744961650492752043032254521315547547532982242849958643032054227408625117592824145071928403691754063646545616370508924183705078603190431302823113723799417374161746816691856144364356419722296111360248239590310626004940542192650702021067213577724554750786052582650992562589280694707727662235701641955248171517857010071631413051577505050268859187123852383996192420307840382980645186593966776444929902266511969669225047354125647432346540324910635449459348630912487063623186250997932567844701251797212350226022423715300189342394355528122969385182818378421003188857788254417108440923027183380060002919864122127365854526593224143972374777295386246189922411161926966156286979500650640946375564526875549456237240659092825649795786930892129424668131729913202525824045576405752380205698085724370972730149922009369714510906783417084517636018676451814937291083372567506787862741024337402116776787733860402836701122754553820149685602976421122954278276096150619936614420922085315047540177207838891934510379492324194510520516487665557493608006140743547452474966192889352889891732181031162795298618053788267209420467381304069104595577014047758375989012155203866884929599105985063592706567197019994949139429054894201666458815886528409476577261364890604668146394064104457280526242963957634800494927445078139303334561237356015278036512179926394225584987543070281342747679125590521649416094087839794464761939374891899779381142800567595164154168012356307862395103048530576509720390897223192645717768330147197455065384657372870000132408542967947656059757133293488265828845866481378536363428196921525348062826419173521293448444872356580204975135547261770076052387128438950408292170904203284568293819320159913800115843439133255931486609735460267812981081818266882753905715390614678953114787664289445033158671695083064858571499595640259687842035690223606694766750694724178930964231398626368528059462477372995659362373839840245669514034173314685218941700827545284669492372014417914273101741975310312449839302318641041700383375693471584060247149624102997922987147972399024483047656340314588475738852710059765165202385851149665716098739474023844792189306566912697759555021516633935967728606379709900805665416528259749988415599658751938729230480870970928269352571752901324284018180287180030034056105453386341861110662342781356314756443331086544755674688455743241939105908156653789777490588873646249582845194661735745363441578151379235961320958219359549972026657447824397543580273428079481095861088525072532660652899432241486594759964717190666677517291785503646669339453659132829315785057623156173459235730859439230882883673682258433054072109188334473259814040407524673451096403849354899028342542063774282685008638735316909643295725086720017838107461665120524197546084649811329329406779722922262534386968448102262121502264768005300045504414329211266909769965381823919377194017401739179891607915143784023536008181035976096218150726684434675874380478460011015993933083760430410655972697838678300551837368958613738979447547692091043881873621188661487239759933665278008195163589962942763205729061701430939784463545917634211244362940920780021956904679708872973514926989785008516694450838821247452140168144808735958910613574524748745472733500997445948278870166323615840485635952495594905381521817824991724326132800234949113165361490359854676961215811472460474244246571784353930079096850203901534096646338032513729255138818178989726053828105386259124668282453518044163023942671873543005887795427556561016588170986794910064887335489466478294464632578971216879998497260358488183327237824527706876509374692890933524829326611211087346633089984292502967068964214371951831190895742108086746831120535602208351104127060793987000514814136451168136918625691210011141795058250088472746541356751834538382489313754293462193198088756241763464099678425199874744600954890044679320037576929423109807012035015674172907663770844264328250658597885902503770417978911328453018133544374884165620783252589601743333481725426268021685499411880695603464673561944329819899255642982396647862703136304443181291350250751628616889687926965305922112244850943844727950111005474199943873054986578810652862480001699166239352000775762474473666742415384306916727114511267252269400934004632509542215882632096275161026196386364261295356580538651580676270494659042598263106376914009868775914167935024222622559337267857877981707814904789913388497799082779507740978782652652434849162262854561853775564180863197083053944479243266918283387168859351642828599368641544772745008228307681815184869348143300953733259848619037632334539865062950506980940793458391637875079644151207466774574694252336658613280419343227567768190776948376272386094891065939203114624751094337596977124860690416201702026308606976201505386493086165184834430751338989709482264882601849538112460234883200330340486998338377036027786123900355802188148354979318693410823674141898650947769835766045605731140919835150023909398578010038465451537016778272711103443204863955867416216278500941350397676860491569669458655444918832253919251150134277868272440878965505918913106243843467755726656214868424837999424020166268045112689224203998538046422774810248602468223438699752759735088779943936833549922079021312775213600270635844448875441089749362926887958359827092758127232397744691438562464707898278643078609195022238286497583598609512326446554433729295063605688769506298406185459062322640025337641211075677352793564374383968217996699364107854582836008917708765930309036511921213469395773524910544535736674451469082104188864468791887318933058986568930450192675098327149613546950787599080696011969935561565592329939315288810671376151046308040238700132277107798869711074434853829853225321057045989144196367863593819849612657215598134993359679118801509300829864643511642440220215031524338429635610166924041470917651902701369352014578499754953065453410066556867575787294975958519482856603335233200788297536881340659134023458943631426922452750621468438129976500739433674204396785302535897745580923294457321982746441987705719914591147486713470705767982758853676175730765913219327807316424749617495099591390509433354279705683111491646423496419953721147064393656092188917793663395611550586917479079469103189196378244858704886022885717362629671920948046857969415805738794466417454432743355751946297677519895301139990293255406800509484208579615269479160917847199704499431331814592945667045338209764147026609442404322149700525475900193179114173668516669912162955603795480206024703989611525568758779463688014794222739053421323686550690202714562504363113622648856299739233611320549574313558738884527639108848751514352138282145468849831809144008423018436592382878724527510834351993361069198388301933129866427875263317902830221658958597932603999667379861927727272382461332455076259940288222128438280237706570242971642491451735500588780515475762515520535349222180391969908038923778149194262879573483747691093686857402025153314664785323647731152334399760973706366738309513255022790252700337720441528464962546186607108002285444568204821769272650060370035444596544941345028078783130475183141476924320945796099753681635965650368062945978103460146525920149396493324375904787420302027370473859375758217702161212107970882528739473934775771580863897746528707795229470245210628379456835145850305882668128864123216848064010611692318161938264301538529604407781076664341900225057423279183708215280633914634183292647979069031711782563151428902351850071868393240835396731008293219695491115918798583170881105139252467576184109930848158126101391643148056545856692147542223623380504502774323479449214344012544967544760778489410153125474587354401696804098554497381982829794420897517636131842864689770682426703485832640426191474832377117690325650136944328120797795966523520296557816708871352986369984689363250287294802471646948226541906918107621237787039816259149537422896947013114771476513701705811125117350990039547253345954041868209408834754029565021681706446094901500674302582347945673654866822806880082393222051817876691039580025966519122142268136358655690476008401574028284665540278143868072465491282442466527981628950439027517539251388661250923221077188076616232930476693202343694462922010428039379548864449104565197678981564884437526051834238859380185131424236377457139323864417466883697926129274599487972886371746215488969795370992683373182208642099792848317959754891003726257400651707692600458687680348974235028876779636644597870353509712060421092208027211856098732873753676550101642552377345733868986572901326567943025447389879492695591592993428644297976181580943180402725518991869790965756265406100348885464761958827154518757382562762562913614601563589478143416044762449211918959536238904260559326207069300123790510376241180117308177372854023177847567300071380238141069284058608375585274859837050680904511067577021890299144212969238680922102115703932046161890633993680951579262206765398718723320711013811249206794353627691224201178071602604727772626159828957002961547102896876198092744297146985818938636823180882448167337132568415367635577913403583674150123618763292812156752260976034937279696819371603877574322937400168772077048922798454168889056922547614790064292654399298486114672703834262477401195072677362997146064714708074716749860529387731457850809747382033133305770984889844613579689665619745440385331718385640040313824790354916647801185168966695858877692094184067168954522196619433591332262121213396913972698138784553725315093914189089350993979206307023345670301615579580209991517185782841052044629383548942166273012380577267790321555499265031839296146166571712854673062375571694935291884636528424456459528047078690969709788078520931273687113117941101688264486569221628121735093465802631384400836576540348197979443982812996205639962081620386949660978044928723850715085980118504853128362327318612767588278669010659581615315464823758396757364626384638507902168692287110799859831875593614074926806299386020826739814349870756250210036831370062701135463220612187571478739777985864151419494400423026582837019104919210097743945311877005850309669999784407857534985617802084397970046789386953720718845225226969430183876697915649834386583855552148551933607885509064320830904567398748493335848243966249017779598869669160534527657161795824505712720138140991765475549484234521162358926603049272542909861902172156926476762490402010193637585039678856127321562489067044435720350560322271324555335804583963159644731376775020621122137869368697124022593533965148259301158011308457342484101899320169220387106464291757264332694481616574950506669865558769819403250726550270642854772555510670223684724561467504713639547880546337999350117732170225005935752106604341988972139307481345225891090762837664532231841738943342504220245728964374778757617590000938405362796462095004138377077405361511880839231410818027255616402477825368875128474182083396608048057108846912361774089807542788724913896752737200919017660668456354409499217535308641111210137257277312944689129059654163873120623619714517074783281911903973258046061347025394278396910441882371529050731717295062575073519641500647766765636060134291059473032051914589293410190707401802638728766425891812116009553025568125664687678981550973893277693255523143197688402306834474967013060478800913387847179085170356411667792088768301729219219791313201649481444617914118736396913514553314525628249066379726115307585233564274312042273403785339121295536144133226196263510260616810985664156754714014510621405418843169626202976018690857929181434121634193069113064435970958831404428683223841865965649130390667099133313036667443320260068474252353852428386110990593056277407053330485867761392954612218892472324876561470051342406101046804231316427058785501194845573722446950598310148161932333138317925958941205832742552191009668638081578174064292946822384045464283671345153975274690822296102885842566097742667481455338897537107505820611419654472506038266836576039823957924541716508446527721948525201560749808821108832010245853281520788766466402877507932075604219201378720391644650325733250178869259237684996165632076380488226676687221631265230664758651700627311167958327403611426467287554375515667740951401822960054144798982092239616214490421547066316180025234020296980806838447796664408743888733728377027860984802980826999938237024317503362971323348468291686247705672243995378223485590095552230989088689753887202962812293229445688320555958590499143560590191867130491184324808784748864722328927877479728202908153159726575705991349637959550073514819567402721310383134468764928984717423465596996532100452637689002380952380368672897586501072187416265922235877051662358212307978340070814894211192482801461915469069492231940393404694809759800174346585181142383012114570701087272395596705184444930560031641556628433211719275575716761765130115930780616393825608889138315026049696310518295101297324853823213952380859036275903358704545848499611166454068004825390542031376786235425286011425610884785491053102747619746846401325171496848862241366802639629312510379076204391415537363800096175938329031867690380533129756136709735670222921785250309319838371126439243380661893552541852724853279667174339605249683942632664776252964794688863012433462793584504183846749327964743762418383487834295748324627919798778991115741313954523558813024250185152278292059238762089121940269332401451418436952388080015417775933003436574272342910247228926768994388713846206081620421549071949877971306770111481040555615543529563308969862244833105242205637708302223459788903710179102899083794442536131336606692146165392716712745492718866944693994929581491203066951238869024534812202088123207752606502956439988322296356614979495882613421539844104443575333868376006457740504106949078821338627205064528231459092033813133779087899210833128852536857093811340805915059434245491010406416275861269086827777698291390685314044522453240116926245991426742483265496313745639076507516278340023831167453690714908509528442435339289572627038876740951424511271987598178762072296981539871295569749325893230617557435619297123990891677414350010906369443122833938602406358676507148534751302480223774998816839437240552779393375326233009973716542452997242573181010342943048820073372776569936390527788515696425870758662234948394460825746457159098892323490492954376604207986318238345235826423005982073109115750798052639118004190998533719422553937884971317763958900031809241382864919794958414141856715231991796919056137522415511214524578753627366409987974339801037577838975355043338271002265720422130473975881087839400112314853176462832225720550197795922912948615394998532845830172927876130309060451784160436858293778631792937691090869424261112313621363489786997168682944975139208789518156343968885490007285207810117651856043888089435344836415930534651659027827268697577250277708594681198245662178381762885592954335652895586127299365979190400531789872080377607157859256976264745747301915438818167901227782109873911627524991354697449046919741495718095758859616785065873404267974814274271545536642973065991505251181144429195710031983188919192022929808187949904383063270987554500854453655686718485799360124737577536200974396425473525165504279113911324838983824771025476528241364013308286964616646660366885209597533466084635582037962422807799231195782520186888107085368384172759202165316624217540846078147431927239471842629428105442834648249688288361393103632183210843779409114400038158976812829561240920237268088245941564311564739636054566753553857466645087684975357074489406754314353117348592016950408953494162126191914448984245586536900453304846981359920111011742460944042431850373820145080366367929914463391818080702227031260397096448379412716104481794011176393006512550358320267994739364840132496174926880051726102635998348243081359045681706688137746239564711438085416897155856796727566716348555246675999860379206517441523833992542274779505126616710299280691910716157339171761645606110949173497617769001886319396408287197640512557654782260908974103813486789410518418578336572568265064506948734349330359235186663852108931127571907627557675121156882390845139986867428504639396689299334483377043944806938054919538922569836855598804309931551574299232374909883361343294729141928076647846581215893654894024921518386680716158358452888928301344328929531608619725781938618353871638677245559300206448954158638695274012922901011210241446289461452784032811584397338405518585303374248895111716923014802330179414824546890019650579917718977694105598250644504457027969494763954386555944829864966141844376011026067012740478280764030908079477105925098282468756801791741125874794049584296292199617431823360478390354857227448796515790644638373029260044722357233805744096309619624266968235502561403827417766474581472145244051856785847521941615069267475468499150771547185012651174540262484754203960154455713559695178554931734397722143555598330038381338338465225386897663645573669762840205182117322174324504434598590983654325799404883960293643171046938351856462362480795024982864078375032846188075784889889744394231612236430313093683619546490007126231564313548512644955972287440647733320640906161922193403935571935714486830581532514088500382325284001476652717296438433714547922079907709170751176387842339164276498470096442571346474394461812910459810290170297626236104847881292551288264860388125254532950960876081185136510366915046725184070439111412708436828041874585988460623466859997823567791320356670442342804035459836556468513782541860687484322202919081352850971619767157905139067252515211566181054968648004295780621627250731239948280054272538650401099386566361789108955472372109566179157820740939917157130597839073381326272568830058137933321177119990909657487899932730042849983569049662660790217839462566436143288960671705009097417891488117156396960558589202239182773204472202560734012654687291496908432662371875751808746768922229958701035928332800495169296030532763261228665314809987188890321525123703142837765328415732874066584306468327634506075575488738263735921824744957801342471459886969950029470022953776022021407952429672375553359167337445094579108552414601154738330256057672436570938995025379065016301123314679575702921705521810924891496031650238202292988511167692667253211348833656744052756965669666690759924777825909422272237762149005926853985097358674450023468978945184998505418535885741894897754804387867079791070794080561510758007572815157628339766593029832600703459807512724290591968051205919668442884876589082292355321562594579622442694813172279529342836829325582925959763056051337034076752050474672890536855162452948889796336759292195076519967554650613708827150442915795783270499449080408960804973028300583082932587171524968310164726613469841697299522181350486867408963629300747488154893963176894608895805520150343004207785634400511686321200814494114378541800062859170054160397351800718820855159576388753644882463630515602920527296143463673895105148325094059088438768352346593828971416557168831627824051548831738909372211220478973426111237790600806757143908915864935170404180468003181332579792567847352745244306409332086201625616292380213722155079963708839596772878720071332716649383973567748672433312765849235985069426427769762112364083604702202445817762363656008138803756009987867247231106800872473928828252762111818905492034411919031365408371275395210846423482091090808877422745992152723147505775898712861803402218423528319215924798646593082002823175276822657682695705414956329061370107660325813151718132959475218799795827884464784707775134117308545075523091944257600025617370119237620785830560207470850558233095206406877423701153139202094751679899720752889437825251681070216947555313468104899467561600359541557144333967529070284374678028615324109127247893816119369151112873831848190160005562163845498311792609318785602921145578603469490888026675291246298491060768224461543745727437328541557169216179077563283985824979991360823733613216335728642020558039652265724025833067518183307187217244529146407588102302872441060608000029245931288336824546034300522686726335465197832215144133573277172427334427173766187305919284782473632377628256003657780993986848714210888002677074083066787572121666319105932953954351776644645488927356335675058937157997535891409983126988547629411466972941621995532369278835835578703025790046505523687269139378178260276247588759824021210080800722187909278013513170329529620364192560677168475748087242426064015006888748981035455600628428268292430613938596849831997021416432659650521760209961913044300481263740569935779982522842941676628786685649129241937497949747821457510416408672959484429218397296286769839348807960911052116716805620571988961796421971342139968273165035786098066570279578585131606342870286991612143433429216906257161260674245916482471458422209811674957662448475993209804919880602150263418216796654633833378198544936736670518955312842049190288102659522473980052575525245809674690005931829228325226056708324709485982165440490365254725853131609658424982575661861971807898504935605717608349868560402045545433679213079732815570047524882820705959328324780403941053637183110450224203993131091571406970037387186409755233725825761682191709813184029154002300671756736696779612905817616641189335335233902047752140245533212908960278580388760441502701863830508820575004577487268667379219323765358258755271076221301241922771522909618638396659761756858424847171601753227630444708376451812196868305651419803973744694980710186553103130216315745312640669497248776032340217662543500884349690010361799178680200168500984155907336189127074731707119714061279969704958684793763772026136215940168343224816229088739057423635618408002784081579653017858169861644817649981589472492310479860924332789278714475328341890632212738517949085704040178785787809945582405854240743156185426433843677936927425605377318517259297284529981635195960034301248947207144438884873999173508681969833846331112568273689867381600989682653142281964281358083994889968416003924245773276562682112463331011652760205017981492462199310070113482325012675920497515408497340048646425657324800686468066370727259365067083947059555384242446291988644456551687812508716057087643452220533091633135822916426192909473703610158807503033273445761299792373299602646615492087505478346120235715181756886491751058224522413751726312522856811806401614891033102920486106736731632229192466036716754360042074801478291407627903601510831124450556555289583341568404298327533255999239675862892051514624577497660707921105808038505739589794667237770739107774530337698817323006148392098814805078461362565510925530422456439138315282334392790750262060548779929300933551418358085902202486858584430288128100132550985348413985940340322574404108252210892770070815794988710172771548570559747232513547024852526059523199403399587745446563073682485231537703700426718800814906844365861703818545882703126502418106565439076458087497145738192952093507597263737339649263556318130439647078035501502656815757253153002095688965548751597156080996170062701506755190762626154320620708346242380275242676654351973995077706780448070547309254077332744373518608425210970993168190633401815218863995401659696459421665243198439746489927810551036728883122056550919893382934237546518911355193491347683884181788456083109407787143827865257835332595671749174705614185839133809033927096076230134546985236380375314494322850776136471967822147594405429497047152666481619884876690680709970867867095117800639639263818925818363021036498313364938145860359536326940188797747023969591103090932558587179569266594498885760797778491192135566889179274914348186410316788871512882292532860222019875691342626046484669948202461754534564365178126356160001840472523880405622146472401533816942817291785907581545751350065524490864556467635417414038655634524597248170181770089928130203698908005361994633925729626114466914277894088449043371593131946415482310940758568059917332198805174966656893603239038729691568335550104196703773985964007693810196505887798795627029073400220403945273825456679246231825395229179479939742598362226789848117544273645002869262666700069195699204470336620906311629319766463868316577359177254631820322013762836025808297517777977847534666338338848384895168646470816258327622455664675343590320821137978111352776743958979009711427048692368458664169251208979966705755810310737736490519327817930259272543542204174068013811057453438641865137459644790594017753898813556428637895917942131765854275822375554451120748463178787846714316192912430263839218132258792169120113010589794419812955897173416673546124770855173811017779396547191744312450011570003768337247657718865499600498998109030391482866829953328570679105199488908090992556842183764160110028207976076685449132007494584828853074660680321382371149842988934285318855568700500115105971236460276818625323467094706379238922534969891133870984303133307248269048074160831634449324398203274181434316907565146013462552899367276019522510799161541166337061470557093687529602847072043629331065337302234653591356017580886611944034774102055529039321353402480390504266029162143098973568834977111818405648658688920167878374626445768257285679029579593990527406028074641851421221624132142826776784549238979883923375257448453961174532696330068132560766152038765721680738170520852493056142141177962963014566312457270871136715466742936728773628534535554338350675205817076305708958771844472190690951881538913134648499924674931878935981025243284438432561753423474966986247202945636252596001259483222859960462385104737405922348574579913738001143162673287950239551062821105973757726967161566302044721732251469820530351792591210386908972723795102058433805142146259304127961148133704378697813816912762032489240663434084902506912119667046814509276068297135050915691609069800479862721301636115631036182799449372006062096446828034848529906443300018307906281010213691011871944791127280774630561114193638890257159033023639894798684695498312902087976884925539545578962887064150228210977401280121871878472294976948735870344357432217884244720521985919131122869284168570504434072778298685252545655952433372252148124168196050331649132476686824014617786054603474672023573672825424139479206870346593480189812533664286200783898913258074728894097858273163579351121042678825098417158819277148173271870422139403516072567666777763626192063246277359171855024639644610490365707211375670465030665658930676557712983331025531631913037693981837963132557463714805569429788045517920470185432981796391293179491178691488037213040812320513770892211650507070842284514000801896635997841478778065459641205235533769840816569430813944620287658404197378878716120074697199896021958517940069925979951667019972777636767255209761404113881103416776163819784827950469485145199953684013124482027680434974854101057558741481276030389306663458172286222213290225780873737595135436682945490905692580586058407857145126546658240569192970133832130336931965949917557289254762123561009353222251430698038479438787756755438071953001723948227875886880973806453682661963256271645085466513900669915195624422255531826526490790781172800355127948139826192311172761206483711518150757266781512923711438858423720282691560813015236194774289326542699887651634495519983082518264394316861393166927746014226388935045257118253050052697455736178082726585974339688969773795368867768849216331584719416762979648286087607651913436512794477070519951036097724783684252713462535766327664693036277901944792389611904907036080356874313478313684131533600269003420538564293822612287551186812396939676848169168970888309899781516086004722999277090651616346047754817258519594009718080439205522646974073561184798148719578502770338701593241708428683006963023573761960763099501198496867954499571994475271618639305990209541269623882401266967119643219675033081533358338306631428846677034873266438204059599194583362388320425662511947687577678660376993952856872535360600935213795263891294061325928552638567534692312622829154871020213622193108001149095668288324635254348981363921584608944254484724593355571192414893741138476178056088286122765810298698719628346614167865454199174181358837463765892474790776070343315809875988972468651795273938094493729642220051486965605747622841841247439887678783290322903986393465364152005586679233221509844999620068498186913643285486993453288135403189481924998329903193181468720662926866174162560628103613837146434396062720193413765198158635871890192125534620779048913803693061346466078831308750222644447739314317277953318620830095730412788830949855314788662144371072057455606448660414519455807951809423392589676004975214884019066874055098968397473582898952551233599331268139065724915479517553584481078687722246035035042751584063457708425659467201471211720963401339547597184983096356639814294582704617343093934411676408314432829753264981959131897952962229395838553258450081570810211194458710347527716132262535861346427647427907811830641747532261758042972233980664690578885096619651869935010267903962809319833890684514352837740484365271739060846742219344280268594821810957481679582700783401747784855294125731706551991368038574223926606063637799536004685774759838009223357027742070059441786332552440956389108025710855548687978627059396184250092306357582409544162517123669705809568022596278199961645432698235779910232717621942459754079766389342407124890287784970228292534060047191195007531156368909404845320462530896706747877552951705065678735114661007501653900053348184556440656926245625324618118172116090989374334363187433586067066723719961988019766587236619963617551947029554095490048438360849314231695669648474329643135391097736570216057650635695333192792514382073644001190567565239631355054269737655051838390365451989244457876202003683194869033842924917194766779814781696516390752434658590116072936677338086299854174126892121553038413747457941102680612929401718945974163434435925265007953420723362815079574873756043672165366917805405277405403141774764398693621021784737221822485096483939697215467233056741353081767321353064259882955660504259884152727324648354399583776968142729190469455485725905657225576060029138952092200557157264803557321050892791334275560787821689483312964681401655064349963474935139109824768382414839125515047618531027519723545391790124700202235240996798524472590788340531802888218755039992490609956912905055668215377321525258608052350388440481236112989996536470093787289016216559671284929656776529980510583830339090611853197646771236329935639407240658973837354578041240962592742783092654232481689500233223746145286373751645884687237467440096822557556816277817861352726603251020571441324335456269626187090245676857878987289742462644752471989462780934279525325757058424463068096538699329424436356238318117401945551494171305020606671780450136005312098915866620887733622299098910628750489064226180560683160377282743787353043801937076674460701800583091818670558139981762140133182705454818738663334680483852180390042649886103122343438055611428681405240965909398898188765684467480263005646155604941076361360176585714111905488244226219652662847934058478758935523367539370801481389653556983805072028162999207202554901010313953180196827780226648331115750161369489656454069126861275124177523365834249079723451250988425470308151101334018495125218420839453966375411961289239188305758144880928291101708316598932316700843748305359521346112434498920417166819024867470774880393851046344405401122881618769986841987157350891988174942200400581211298304132584720035968717337856874080592374179072674773816404449723390152212527973851840747810380853407865863259395785546250208266165916554559213889214402136646358026425433417932215333820485565473155218658232919550122339090911761663907343993622603246226361396048191339418150117136290266306867297620434980492325170043651708791624896957544544791307649414780732766512362112956693825625602962087271093661300566919901819271242841032088235410113751874771034849146661392091939031937503681768344084492984385325471426347489907141329229529067001881311197769073934630629371218863116669205063730589847775192319726978639201492855490433505191251641534101901917747088224969725347715268706582285497466321112852525016338797043090243284463606082732599241407432026574622578474916797749211865004549560364043754317135998966003453515548827792736680633647201299381096146101377710835065568401801319305998219501449478364759089403228722705525642829000236842873095699630325442937112214674324378898317079896068026006726897282193145772873287972688276931053516012483710309452116735452608813978684878901014378654385743528642988708875822149062560702708179223222535074298014391659996353905948300587556613942578921238017471266121236516066398916752864396275035945370402241706274526889592693516166745495453560687748064760041042678814327788738522620342128839991547947610679936732793463875776999754580832417035501020920483497084521360794940866563117704878378228322443278713308504543500165707475292317471032150955171449747351836112167544971219727852382013982490881552516984664849367076929596933961979417194624181199840058969228332144528277476906007154916679184075190914558090625145046623510112866049231084392526989091029667777411234544930032774104924327946542716385748434685475554376527859209991341527183325313130235507979809205520008222729313271339637732824385159626038618476897210680867255515104116244654050996912894568752372638170176983662369015390995372110526919828286241232045625821749283514394341778211816383935722984484362920524999024443120299038463825502528634569958847322704623083916795602671007083165380595422402374877623422264437843310511252905164580343865863788531438592372227176014769200551850010556281272826147765931151881522616647225886418823920599975903764480571761018900489823638089985116359180670026241292520513712192730958180944198104564117622620005865562377189820549247800441822586080219798969788339817729081466152762360153721781692191966700180226018291042781994359527444605866035356844919263464525516456105003243454328346390851442153154316752250671153613800554931315164535294635599370497950264798415237796067585732590530585923338536296485255134174116869390838000111244113315050465802631248553011251261524685668639841402393281419876232602440231978519099028152534602006312825705218722054680966365586258694221521226846536371707319602962576107580847846877051395958574931299603974089283897238835237496612068946410197642603594033520816690006076299860508403203785460634099740575164565511507633788129094304789467204581306936651020492827405356153829594847415051993465821190034499074115725735853018908046722650937927641275300349021937033611577350674194750327856148084604942015954082413626004086076963567206539014270192072358180692492992772743523896267670744138000952829164157917040351771833368193282123585429378231537674610880518599951705290175011019632537198516010367769276643800144978683956940951510674395302353138460051539164817611213128761051735037073769547570865338980218488612254834211258902296476767570943265453392538738287746199466349880587651154285551877068362993356177890032421358688101648199596808272685635902451045099607974240092676074080928084816155950050448239863082406273499332466512760379485032691053226789861276614985958271195318306345348283930282182416062367185271743694706440690296113086075895366976535148130971397859700698610656368071506041948090414737724801576215601216604027914422550171230861502159949276995140976148137804129279846554575672149241851437917301770799119348058815150725728632612306055155063067391931661707235868446950488379230899672032468441701381150470661878736769379538458377926817592322999633150813476756622513388424540150963624056107170927311571608547193167055408320222282205861920553404330044160820251404180063272348869773332995519026430468582814042092891409570344027103732767029461621730415431077498293925370941523529116299819144759405966418436210975143649387369809795126517996046285967146214615309376770506215315272060159339678562707960664166393608555290438925446203220837307298234474943062853907462282800008605022903818208204591549207947519679740083748414493591923221335159093714342834614120891827500570469536911211138268785295623972722943228106773574108296366767996428420123120896215104617535198329979845762969892181247325220851012516224098025834190685313824118037668378535736433445800324335513567382815114234841607843490099230862576695963450618802908269746268231897467951314941269273608634621873337902160055699689046030005927036350804591519814694010946808437372850221310829567139976345116354216544138369968454930303386987038363162434909843611071575585923520884439957498664974250403044376978931203975202112483963883156962958403750496460873925553411596188862704368849015177757009055223441414201130164006704981888349357841470376353485286149535196772849571045929477073777681836069961807465145541356562263750895110381795343626944827232001550814993893362351174198648496905390248727423531705078426049411779399022369513355500666514287316849256842725980772109765752004405967583333962188210095312110797762388522006458857584288584530205744503668727043854384164280908962591867287103202988916516066716971320930059375533514789617949984880073289119348933367376759639777646217869146296812863709807648574174943651848919124859629611258441503654515099931272729706942398061653944201930617617153772066535281907111324466654552411958044362357197321977790941747051965733491990647372507091234738304769869104350723986240841545586999001637009710975119833865043466079441609849129214029220346909059462127945737644109638249766583635417143632968157099930624471238997353483509418490259555797352957123877339912060279320111366092908455711070785237161777587032510232008644463103013769114328746112452811513677626942064429950194531230077537415943603073485197115952735925746526426478518944217456762884417539349928208958447913467156862935390250179948501996472448628761496971808538723327497793794954176626122789722057590024245415631204771431956121167638334539159809475842849106606641131092351374397006300997661575427230241415326058787446426570896293927128882696021918365242909727334530964406493687703783448885607510027665071342196637003169184134313822818457836278028949897063188929380832868083759402396293302437812473389575303101899466876070737132313829437955114610466256235779569092884751316483726303750012377678389015864735142969029094432850233703365399289184088729332165727853683289835173164070173495343715656311831253170203829679881709970797740444399370469691954568822939322768276003520069512431182168487933604115907814274835224171421200890356666543836441627875633259063864528644733899412605438025908930083187392349026466814201079879595762075958897253223419633293000484045398485516541966937506137114698431271736212551395968912365052237425806187109088610545122562315424314293729449641897460781146187787575451164444701914036874602652870305354056963805720466899914928234226183070919601183444513614632259766687715493332379331779098198701045433034460566452396274128809003520474370712878869685547223488487128721053066821924121394799185791567341407271770698416389245233715119878924604261250388564054723396220484589673908161796850715639569012926160953047803009228910311975676488262432439973350338578632685723688327697544366971309141018268269124610186019579573610299462104259724064731927518476926163103461158397788320004669074965503840542471072340179756765310957079290908492624219222444523442189834571722760057150059866873513656543116279692301593375798299784140085540325618052269394270343110140640223150044621787156363202885240727052593712924173136555206571403286205776644873957775724720256746475615309420042446648412508001345192914175762354205650795040463515706978754248009314572207214722998481457683465208956259318662646724268253372280116822950554334048924817968471365000332201266331841582894004156885002745711587491912087429999227913517897984703904841860142160714603239686344373815877082831813448334420798942984613834662534193693542146809369811440228784565838498743744534686341947721708973078294164164107845810054172466580388126218732206124174615367056089970105458990613295243054650655874308614431930168106822820039331005788562082034552229610564723675084537030300092920276077407972774748967486393234786166805027793507632829175369486276551218845338321696590381628301499922758400280011689572575996734180197054315896436191844362570384548952017115987789039375988649884647284516346299104213121968898490339301120258385173911580121012571737409815213783697832772068344061332621464712175101897758517397567874365536410641031161504569042501397114858217296715115561458487725108337384990551427782588769693091544400343031272910004554841522992043694937533875638965856716101358056857474467730689855129609211877470130967638157575538017565230911231140737021142614059497653847968442401787146237030110104686917787408304219370727185123479504700220604026021755744541918941172537976712543846016508015873379787631009555856286675437347979735455061786971797347616511066549697276553894277240346567171673741598128957514406941373209157644014259952488729283918020672570249385940932143002350223487689582011457041836814013677760489793759714849464221525833665250548452002592432912725030496835310273312980216093232317524998453495355219168808237023634758818543091372930453276453430667752435635783378769629771098900275470479448433806886278035608443801953609399519269880346200471654172160828084013400120397820104650564367030792608024695033444596001698243203510588263954809640115189973918363933433304627427346260205002705735102621171540001221291038300503506301944845607270567180960097059700290541302809249806922846777176975491084485670515680323466626431423834348768723990624995199849631513455625941336041968823513147201289358027280167583812526770431504014788139129991034005421094762638530916365242694841021680016933847509653602883821744271425315544882625026252360727302712517553664027853215553206051710810200875389730427052795500710261898169379594337966503410812865788654804611123841557900815641800599586060096151219468377442553756035406399824804703506043183700072400091241402578958404636924247001733273805502332507927386955961732197593826267161611888624844784209683052406218617298473644988304451733436902827857780579242520056406035764141209687751593049333687167418087371006352074482972912175193876484847420527209863349424189768590996983947430816387433034391711117045345799884958236193661808620412636796540801909955756184809724417117993252403064648931339084256483961239447066810541703870287622721631109649544801824281599913128753831813468331377418385650673111089526736845369781391193665907886786864624221101514203542514511394338105132660783018055461708850329123957595419327411450133323628988591313200139402923340947888599999969644252165990613882951022705623002355397688660404928062255490455790595258428415357218366531020617951387555412389268876785136431887667477132549226321713918188686534700037558919485808528124553963140094028636645000051784407255013094179328563062729000288201832459656262231041600196248646740487304619410668295933655024813822222028559635040672810528909549061190418389947273684436814580221958698591013882211720790212250915277058426219632083367065820143136819731212181703142130762738467481395383528207545801230143682154336267739736996668648407223526537352026085303228051657296057409172199322990060942369799502691039912729669352372398566969847876376171851961499219273394865679951539354044687526059454037615161303224581820680645035583709990758954931708423914380086320224008800486495190151224358472492654254032249285212568909450919703244735291954663026442515748077777544280067885249312685106229256966912931387711480061439085944619838476157134215292007005016479640301386578262206660971581517017221490123735443012590190487565913918132555437164020949437605541795597526512507476089667679012923793506625727329279018038341467086792821460935862827250390596060025399346748004853887929412405213815574758907222508760519754408126623886610555445635081087286880563923768538905350266296126478919723361208737253791365719189245352646121075243953112891116386502099387674251239556146115674066054023643605021532859734236092303905562374356423621593738944401292546090403698900475444718438791603462979980305026714948407970272733833709658263587576284948569688944938747236646926926232940145582647610371682720092306536237525196913810830887698378001375511601729606352661970924514827205222043797341455811559349095479420016560287813992142328477734541500906579604622944114722996834627873669572845770982834351990458771772989232453027919275239058406344635162925722338552319823358326819277949831585528608874834630419489857853944967763643546132659784001554960796425662692404033116887326700980716736518831705891090529239663835887660843416229309627915843189399222990327914521399971547791211263571933946063187335925242920602961872560864781229925350105518823139800992428715593952288486520916536620514088128740273005130590079576710406140754260708875214094599782160072334503984012559979026447708832327011339677165967296613217652350476537340304664305597544991719408735271875467791287999275756508545006103275466421141396903274095035372753668122509522759356975141816015390578053980393831464209179371012127462270185426933229349010019069646907156386986338467788483055068905737720857508278243130143695300196451821790980529023597744212112117872250774881484618306652530458768780618686721752299499569681592471535633575769661311732593693884488826627514599057194050203703270092886313122124182347239145112156928626505789906255348335916945828520039721406780775399014280187954906958580119577662013954699069322962458051204885161433653217999494270803479713678112785428311548848558954657661090774212334849817754955622553604293685083527585696745427564577469063686749675397275395209412953026726851908692937349081980281449875894427027379390720362722948939204963863646698354359146536939588362699725554149273343825347693664515886133976893486255051729442866919904070522715205594078731738906030108238938310745779507130434607117678030303812997707000587522435720659215793757280447947531504828699683277581156297471904831458353642579300400347749411948206158234839130107437483649011110681795755731728573037254487489648844522318042139003080826738260491011621605498740454668094222722958668787745645020483110661275564822866088101083074781474271246162629578290939000004672760062542850584919200401143869766789464551993446603311990350142257417689725350238254154153068784565302960343014648793353709862614208561256940278529072347506084252969580949690895807189829776990584256536856348153730757374581927662248476685014500273589207682312108176611926894883537404044722880899754630683895946976910301680026874633773772641201150071023118498241076743013156259064082271404587858447575369920192820264748624180167366718178287594774215417508129068992030324963558848287610831846437683511857639469087171495578791306271885713957605911962641830498657301067753492701921345469036189138373163605477663470913229153039748151286922050847660426555919058639161601005247968407524527855142543669572904025488976262162373148209260346383751329276340295096146480073400738857490646948998157585566206145180030770639585373780158998388716490517532933011923306096985419726605431884935744590623658165412217390948916134548940729266635031872873461273819561394811182113331775435983581037485429854686583393230161561425412962682560718740595637492251737655252545950832045347313965305422859742899637533115291309343361646959301269299887096058685680034690928091269068519014573272292741343591815303796352800705124881271204614420765730506478822732542182665359245840042231686919573723323812250568885733311724338287192733821827054848619564393766757523423323685714952703495885043670908601548170760334059924412208248751740061542500156646632051958949906066119459202114373605092325679945390868409587713591993216224261834211313323475041779571809306819630611012626007464728721353780850564496520132221236597511196969182303486482047945213317978387612016408105291727073895368984915442056071248307596091614374502388220815182134391349016821433232408363496951312426727068973935826902384200663603843094363493414761281402352298558095757941713679662930117847766545532882709337989779349087932965234832114030721785019304536269587660931376030446811325004472568478361649067251519508788752928079510141506534723697978104374588886067663834408227172549756750047024724152890221920374692926705371368071322116582293884969222924817830261496067641760820979634369591014471933244814909107912294204602108876674265222956916232899525258231627352562539099066774817804244689397324142998187647779278347624095329308556589124690125490573659770216971034112322536703592955405682237964347969735716714953978694286686652505830895156543600414238921681916582864788426469727724664524315239841483943147819606467615960985189410267946854118036454760449916659789203848469038862784496114693077661318882333103107541079461753735322395628283349048076122086765753326556758213551093204761694455875289702676818559014107797258765932102178583291872463115373648549886992682438147731686646313999221234800474822963806031009922865501622016488709669956556870283871521220818284153930947657095337175276527961767673642961956534269216032540067696336040088760119543992854348720600836538223967323116181510689478225610996378555281510723756422675642955322462463990855631370498190473250825564429603039744473423888051998781918584097648204839824340850065962702777878005578997978312405290198213358686078108372942721317174895264059779654093722263103713285745211507494554999513124258622736823321794670815873728329737788494444089211817748923618707976584101400884715266190739029319324401880265868324438714698450795970379151075225825292600236229545302882508516421663650911715386706634536841774496525746364777536965734659600363132948453825728795665445326043935571740192069186349648111008275868587935136808948122478518243934470888652143565776695182130392687607383122036396173005794145983040090178662246098353650049999469280227629798422500450700475601445367099055746769177782054312708352168255026034825626928544967517199112390595135952264974784433961116405787656197226556893546954067357079976073111842495721103591127217114674369404919826973864770222154837454237379815710370874459173358514689368282567117526626217596389915216717424429877626267192331973063773969621225667382106333427249024958467400104397747635591982384360653966339574532120570490863276725265987945594151947994056221310890363891691531992427083935062094281410917096109656441143700745882560540545602221664234424363272335723571790000313307455183452084072176152630819758654857080839018940305599336314215988520282646831712410333283360250306924620543215169136522368841091258194759359000291571777776018010489970730486427979875302045087268381156832088202277360174705950082793640682841176996247830300478858743759561248896594479294454990456189100928159615543013308265192749125121743689135721053215212675633250957336632687410902230842095139590477072541965772157689642844985274788795278619008188982873915952132958186320453684757382530789131589717851868238293111544363425573735037077599109257638327739157203289988864836977432652280983014403796763444798037098172250076661438729513814532774941995580012304429448582571411003308925250219130401629091782025095015453170950329405906141547761473081952360498996684930728759900212350329476791351668074064079313243719578140282217948286925912966235913410106871748114910926578121077129878319250189110856766217415382970817107924377194824376173014506881673341629750883574819142974931019460940344046446529095909430683843893693009429031596423601499967427367842238282696957067373638163879078107100099293855870260612543061440121551637501411508795229282602200348502426390493476794062944959969615390640731776173373684528993505425088473726746682217530724433364401949337682874814079688302338737412225034771026511402386840587779048427123533011584619972700637516326166112927644368774241237778269313347113873440842056089491414219122259859262069138458510710546254870930105178687129310990727011046906929907059643481365452170191666243392992101272302728953870126752171241326141143585904494140840421779060334062652580351276858108118841659673284193059164638635398551185563736779898350774022603195236576492967563539447322032385693853892385916478151637057082104942379583005710703140137095479086349970795489533713294237746627799205485904689672581777611365083976543630100996956867157012154672673029242789118705573851725052856299183182513876391896156648003577660912545568930017080745597769216118321324019704262870734187241580092926830268759197391636494033756179546751621809837090582671580094158079096960334461514250254087090863610275642439052713268333350056152566989705395767729541760851203358104018196086737614488127724966567791031537141747194688176275413700869899714419018494720915707199871422534450408749103173827801660324367936749305191314471410000245396202697464370478985737974549208958581997817122608771195916186933068725564074083178787044035827266097310338064604249374725924200983801348817495286056462620318142538027934088323666202354813566578177790389126823895420726066555488184769968111719693534830886104958617870125376321448752368657737509288428988299768098103679757917587851475553262378948585153707498915531568189850386991336548243043590979457914883019993000602869969303809527736996905938337337841687179062801021249076308500242316737815465898365590192992548312046875044279755587537124491555647443477652620366216243906365906247826736685598671734191927345105601938429707708626703604563722773162295897475405046270236162869394419581520877313531875763812928745264046756976750050190390008392402246838551258501831803108344457944987824066264457217199863547295103314286756003937847811270946074114462999225132918810612286402195473616065593356017232918043168883010197052696717057052614892070661090464134966857185180774145020944816574575830867189100379627072022718869788198980774432431049788886552818523857992184514671420974798641345591510553879866936977177688879026252550590665687499786142548174044029021900730517900620054608853618592146863676587175945034059762842283773990385248271155845910259071329342066707362158188447254275111313857093849682653810650640931470307344629206201184029061195119384536434062739416915383851416862308970189137667029954389331241265496657437640086142408030280288305951758355990663079063200552134179214307195214465996720435861550893607492983833244719832269670360840444222319401120287562542432716121781120798423765246191642082527313783175224346623748960932095323498428465788266909246296401509362695018965103146154109456228377683866732225980461488129537321714909525611643969326082699639402790664262660544172288141241909831329700976802036277678651369986947749494780488346644885628667778841578354383397885211810624146894855458220431253892390714670867162439291361251495459584586647380802103416291945669463392267176093274108627413780293125461818959905766807112615932917982587941750948989106030712686038224607137168699583641791451852459557818399615631517228234511605063541089747671213465413374369612947632786795253433640270969183544774381927183074204944177777352552717155512751593671010486273378655932548473354991173857248306014772130411727094451278141840260398577908983003720363375747296418240137329590084166254053216025786230006632607838985090239440766453905656475686484485330916691715639583819846720084695593503534394835690732247272158761809388045140013529241381946814998555718639491196396570517055489874184040155922123841457447082632734974677225321020229834507285175652533611854373638240071555614614602638629871591294176267009353706509010013994292110159688143351578456766776466652817825650141469321495914400748808848778564737003463988012408229603242481984772320991077160137153114248032140959801593674211751212906525541997473496458205378633978679625659572068260103109271198782963077051151459955930443167893728166916579899102107750318436263157655246304339213698453816923521374426085422275360592548960797111210136155348106774255392158642778505115780486633353554201930055344639637220709492352078297990215194540950992773594437033233911837611111886654678610043253709908233449997302942474797630575411391066855950852122650299659518630293225027183809555717345069740681261695122943913225741887717219350045094307047301112264422087377825857934476195120381613666842798031835415679089164025405428015037993556198059591620107240095412136021158656755305027453820130489371803393019012659080768399164567852196298677528817807943426245055257329065666350115897151579485890026920443104808399208084770316328676420537083659217000205097364271817162716242567739864896770072706592383281645863555613896381047623589339733667476295143906958753265051891160683513954301407435666319585976265537712954498168394647840425735023831986066606847094497942132015680745313929145934878055165442086279497559343389678103146891477048659639657870538934834077259690085316964798504981793499836590620741559908430853766571067452878586828622684892449122479549565965621811939844488314632564214720872864531096953979757060810775108230499137244931067098655139661120976798694368207013834901594378386324763737425332448320226845894667206759008472425059610517757361317328345697492407350923941082076964964158439316952601805410587388292009834580716947775999792257776009109019637173393446217275168472616365863248545715283169234592538199043767006196683253234241284515523555747994920615367598644102006149389667470863551901930754546429989381247623095227655744936911224709622111240994734214932954792748083603350948675092378350072688447183147391020328486890163972548561428136243962826502013549852225950952572472794155730273469077627370653672047453697857218787386770236409796198192077204408332253045379624350268076071874222680608698274509242976932094398478352946066831782864162507807510758053017944601410427492075703099267974965710711900117024959961139767228096077223419681017321209244774331896232224681208839778946990279091446563291145139070341277952779787425765766582089739508434990581399271765397292161029805461867399592328440127289475304434233876344012096107847249625638435608966070805443459241664800353259592547256414611748788314233809387333119603003917616956775163855754292809999312365118196468995396386628219550917725759375177725199256652530702397632045779542359090148229325008569345258913752022475575357254386178430095295246015042853085728092648623230705214040359520426028695511032622456025431863071325619956360466891226134175043102176138657347916553757719229742917494505373488638265606769357495312146271641222415334726709521545707205727767124275121593926442270325171925240010880507281197338908855025695124623907675414266545771417417687365128338375776983414690007131444760843913767834723623983609025321398291968016965855203324915918815699395211450016468712818912622044496498153440876748784799778744760139450349865775130667712815454754023061965909444343301598565596340208461337022929224711874083672064139538148116575557431103243283364552073161440291072463360652943370715835506401589823921358188342875067804592815489591612169588645931973614479320037816729222711922338951080793690596751457136227601512242509962088218510351880006035173552661037610853934812833839650347770531545518451526465190937236408785797306135626449665244538603124452856604710174945604699517420150487336427932810359323674262305752184482247136952704367541531642319121578764033008848365146928275836457967641900602821501432701077345322675831623025104556898078843092965701769377103340597997944509820720543569440104805980334968769862778892267536345961411246528376823035334621426179826657130635448241846830881695519734881478421560021139117506909862025733109223187001840573198215132302927447609031672125017244693907202886017143936908567620617954073295686335514811375807555436293175604292332525896541578704389281814729790931984763267532957032273737655961385147535309386065222721590140506802141690777782471415022506660573746911059820497625004665086565351803183023087640803315726993892032593772278190158872323457759480000188306154496973345526240013690325619391978723878057946162902624189640327941416623551651816962511885692875691993829231500190414093763150427825857590901945792361778859551497907500062098049088100257981324033879762425455743628022044360943902950359404438247608274399524517079076423737991608599748289556877753550685928901155340538902499623737400080201315733862877651357106938005708454014223625446960543789205253836197400345175386444944000546587888583749383168060202518866488966410870901434602886865195225917321826936588906177913054472572469101127471226166722518046575720630973656464160646935186054306310213437500131115677899284964471762564027728032128361510311410614235299305085712446799000376300492600334340304594212532630098529386760901587950166811798300716594254626173617204142073838126168581155787768526450172162051260247133955202841175049841206096686681305299001621209968788494088441990072445207725817046270259104376244430996592180672650815420472803659857506452536009452061852245226859023171497118555130661908010379371180886199533928607777247791218680555967302469084060685659016744181351167702898881253036346560418660219325642921410820122307061742785295875033138355138097849786877967294264071530487724729229269792693195298279198614868354604079289079259043569403694146524727143689194109209979952132338226291255592765712156360986918652411191847748092301395769308249647218283456490960386246279175499420044188050151689959900358364196422089651359708342740456975470893666358538309352574005631667653346505814375203504530354949751775021785286554567351463270080369905870184699145226667907529993139813710552434847965541866735316162986520147394329142002583301451440711818673071788949896255867566936506546947593009457770795763414915405224064441418682379872427655235718854635329110023671699239697735651031981892227582506052921631520840730001288876158096305496647880955252734217225637566114750699700817271693029909215709914478869103185309281678932695685416775719714074169740830523521252245551095465449955953810975540602521841753685338594721102657451541447993516505596095008497588135258843196696175743038593705170860942241891974664707988865052624631389291412366623094938385113343161484932515442867096746986468813507764311552901803915810735017432661536450495041185157278503613567329562045845638924138728402901800825465536133814239263804335931943056436481236995561019554696935433962174291255609470392449009395470276536093121295082924858770788996609569316472474410876240494680294469902629613747450046639951782644266166044856843383218203763853099896480158563916232452339327242468936516554539958194479668351519111183800239892080443498207425552630123285344216368589011626179533435399813318138497730799511190805265658775076643764504342378358561836066781818584348278400366346087597483065154456701160222578051068149490064175820139553260378563209275315884918889689302684659937542669861710869401075299274253134332834758559453522696609526193418992600134709346916258950257312963671159289283254356603464525331757424514600719706124654629129903916849726038959893439612333145944644151001764582001359437402347861811623507113440184270944847696030899965574185384411650323493513669293170354411931485332953996747234340192512571764641211498316767538458699753815961746691379763412220961320764627719959924685426740368699655690921559983306582080307619350219248202545760997667022600080224897452441228752607009147554007919310568402461240714761411213003153931226192981848533382079263034717102980715831314797733738919627681500234763867044042632269411189203265135972813538308598705784566663849577597409065721113918612785472279124748758374198449088752231392050226028421871967315767463072758126776680341243212161870543161042907435661392978342907897805521464229652116515264190241689368744171155759525415725631023473504402977285322214837167633746664225405347273310771912794203825758448973688086381865019474041176087108926661640819517529668792275216786618046989021672893352817326193539112034528825070387210124589710714234929391242139530511636071172720512266670836754001826385318098440319417487121539172133286163420754873385694938586467329450465419632162721735001294331826207321805016042935310372052700879178264089833859350009658864680400075775128534904805203815351776449215563808098563094593316585436740822602791623248339072946454509874989137378940164181538403341112948317246632779106595453249666354261996995800326239648240864989122416511409390062838763126890704924064406212467956272330392166165950506956381783905738879731804050994535105310638042475482633593808833246524050152050039527766873590355981859374396543826728887050372314236482619568906134109795094823175855096667975182775041197482107715252022306123556961245825163852496831470368284330436850068287322829777944527145943591742969172730376919902718426766103763449996675444636660219463279065572297155307113091218136528862535588264576763017585644563317016477661208651207551356111911230258173484523219387379268542916607655230114199884914450807794585328869645586744516303866000036635496637362915144754780791568231998942513090458904867586382085142403353240241450753259642118080122001816651697633723316476836193734498263997556542876699190378386703938470886074607093758504391811359649884356375336262941042308503116553453223017633680756527329459014067298605029045716376809089515645089794163860835860641040437948306632370036686511630169166764841969309760002538259645076555525361624764448195861914353502746664240503515187361220406847376654652287712688161028986928784773860588832844813246319867356011063488268516369090699305733395585738498177809580385376921853470368081868041365046173353994857703987868190993289103624506265426182213838031349339748693097322875896222229600285550478022227059200374042859389000509280464023124139578192868212635284165181691471937583053421284051540868808874526194121995524347230348656091694780107935627027544165558066790830060489433927269991595410056747171711876954833695996665181739101783503345875650791589742961017678707930554267956745692348572459680720948367579115944074840189953529230347203923656117862093563615276917780803417484915505164006165450330094894691496182685639235773192062528091263070943777397599961561374770594014828648787024765574938680374752229204687301460110061890834719305223503110632505757645703059225827634357749326861166567753470803937310792831372449361593286683594475126500171176551617448542465089959959364175098738062211660443807085629090452895416107787036680282174266653495841921418016117620056265313891470710690106422383815345567524291309744355421990891563785662655362136290281085448791192010955117689484403117357211762304254421742970937562777840972068142776640314672369004286844687218461438222484498273313822536257337973788849950708038551417803320456904833122709405931179918367709455579933661424552498133887429015958160588747440257215215386767182687835753599540154544951810624406711590912594185394110919419499841399327532051438083846509917495372127730093724356944141868453064658453640038021692059890540145455713907483759850064782806347289524683126863107142062491377670781115417155168499082672025914811113766701725845144861051213762757587608528757914349795091761351924481925615914091599331824948068701479780520385153219856798821743049833450496615570606138434543767459997202899768202249427012306374248788048701813559517381670517513881957666968807856700738492677131286838061427256014091155839225480888929536717098906871983403913090692749457630228687138570837194429152907147526073309265718723274439639718131680101204373092743993406827904664638143689490462540209885573938096310666749207334132548920972982118533535574681851385664733632105611427423662064460131412109777684332364527271953143378456856974391642468528728776807844248233037632913179760312458335979874471428059394185182023854052133552920159407305640301584379255940588783150597654224764768020566834602853340283603273811520665146056357440216111767349098114430335674248220349870331079728179895090462380841683828100701440734040790518452198208676638442601630877964550031961810715578554334555677814666152416876057144713956302701232125056128197367745130381404389032688654295714936693271248266068056015275798786193579122313311559300821372721076651983225819795938612846639959712184033714803559989412638693403315674749069518577809747815695751976349810525072508038794614002899501192777166252123862422339628742185279699613661771906782597363503641730414549927934034894433064277704009474212139290958421647804597277133840663577919951448058144496081166189150615375527391924196166206216877027332366614178845903151654953776220571983652458481189735298448457626450133090882279828543522708042853788263045987066016861983993177216295159188878903493535438810070964974137301556044889492595403163005183883823725185628119386935932737257799027340763434679403138703478040825691648138977125739407252698322417531445100402041415926246546729918836903355876351594881551240045171808297048635467322113106281392427956262041677249258881372171416805090162390455467072119586061552071598721860792049770708365444040040602176986457728625502306488021588003572402725901051455401704382777246822143208705694234179509936146728670591378028933793610332712802502102408230293959746968770485764434077525168957677560816994172985390044406298708830974628458934801792433390095762529396877877238550821599746502165600847854956141540688333726407653078180296869106823294449897727016089227428958994954362080764167581955353184252200967978274297344786562347405764547585854346883124101636402804539565832176894887939870305874216114435191531479745225293015229895290486672110470405782239457582310871899413064271785233820122456074012816594219306383460924866386471274259375382781801849182667174787691606169036843250597664587109908231274426560297171333504446002694418125846120559035964836872650356994627172049043876786393096145841357599667065432205149342587233381652884824657872074296724755296542312049789463865074940012156516731962906709036610794103204745410315451788168093606422926858933786123703008502776519709659755667120691454236298266984717924895990886176579403273594802046468962346119548727012432945269749625152730198647981340910011297022687986460123697745531058772242827188914377911016227348696487199436377514745418420373209236895923639245788124405401599245457073521904920755611942581490468672742667627396707775320630817272978488638249318675067172446413347638517809274897593188318507781413256645539330974599941638094255803338118466358710427120056030761510015119231573698382908891835007012925124386579319553802315195641402614591480011813297477125386648888083290345375063573236322740771947515691190616549950317923952962002871545550700791051800391962838616937079224542638307365744050919390657541334791012551738915432899845988873226282699881520321950039810146124251913359075703827831739050557951608905238764608950866416395206661570914865330904538418799246990989785821819817620495277521602842526030609417207210201129370099426988821189690423737576556883144416895236637851462049046442617514563406457081596285675533592419225236757783071182524976489179245564976628309945579108173039987999051410049089862232602600971097890219104171474213746087272081189558009830768232303252655255562056228392436687481696845377775301094174951016140878131611833325018068408828107273011513522631751126032362315512945340722059617655052811593146293599653910193201707738183336917436794123901866858815076430829609627576479089574265282822168713169083019894335315186711943082425548945049455897388126727157814400393824129417658126676594380654863774404394455224422587377006755391461703211247569134185100037983715908055292755885466568634373681353710272399807340134852019826656109209331839151429490480954814788156515460760467247804663837329951309666851606614991172730466492312405991538030982978639297035966716877104081998791366739626634983991455774832475705830341975579849135579344106083738975419295620846260126103862106912177996261949141354385100935541923059383507608195875526968801363700432532421884399416475843185178962447143696219777455669397109825566250008355822656566889817975975204245404429515340555916202541181492638575933418310545131211791334625645903082046052448843380853072827918668926757385636783903927329378529349812519394770188204787613275020469091995859498163676102508179675843387322259977754764471255721750159081574337833040075573789336610967228385194724057686112870183273348883368982593258544070112924289807933046778484198844919593293560550636595144720193491574852373293408962867685379460210188440457358822830289271007638694890075718081009361669568182536225717334799635156112518395217980946648503439180331535846695470509240919976293748307968571417171068739515337108762498624702494482220892820880628090593964903544722182463219356352364675228371084107924807227885668315378200848458596915624266704684484182351181894434529567463290084449903646102901606522675817491688501574236894706607373156330809451848873428230339237095794595442685086206852811406546205709018349374870667644427666875063739041722710523011992871459831064947687470371660744930324287769182334218239123396030274851356788643707372305990735864160998632898867506599679359794714883275930690434902797841587572556923286671278813122763331038854851187145060164295948680205209947863226343664708817895582074766174848038889137707750392170802228421319995902430907212542105810635844341161132259184628803657486855481563110231186822711222696228907689448067549190101207197215712762091652611396998701827687057458236428763795753538891654905294954680328364572019513279820861226647024617243710840792137989013708082855796412012072522540656439005807328278068483145255126641758807777740196365545581325657899137491737921848592832035665714710360943397656176785344173683589137082936801220657732666382508296294100608218203139175262111180089430666877597753671671957412581594533061268379383255333907963121078918754942256275607323640933727304227936750254202867718309573825695928921179646404903587501746272792087903829770167908185056095801017111476953537068806504647329887387450227486609383791657326623523088207225242819752864586494416429198893586256013156032832167035720748631558159992521129636463407887841052018007462248473768503345863015412784624933899582893156587403568422725672362591877883108574104536022183897285967380231469559591758428412170457622812121241616910431137860897544020765738291386990220285969933866293183450435531644212799391350981511545551640590684736722974260596374906532228160283213411331599757458355653117892908908815955395395761798299477210545853226845905173829586581762837312783673409827972803151707235199004665762144433362621541382303986556645884269167578105672376612570026638197327675103649159556531541686793749063196897612822463966787428052346116841005641752305780421708656348364112204402794256001904017850380438219339619315593603474949901493896289652726502881010189007983467309607775583508513819196700248295458126072824148470825287684058591000005081188267243044205198430774960911277369051990341286367495561054402315174637358016733667944032277072166115742616542313944277098211458907975641607596771895639189762968046418670848423598303425709766946520238679370870130403975847627725202200552969723117616874450651519443033002734462798474966744999676600943515970855384463952171237942893737147353244002159694328941435582569395887465951588731588079830657768089999001599030223313533671925043686225748875572596069330660654572539518747479570262559660618068613611143339045434188459025759033358167592162283728673340718496157292689233817055279242022673212885272320663504142684648838627602345923022895566925295950951981046784581743440909737498677604309876135370514742189603012145532104789766622587823925652895446801618867471531365954620905935258352593402573890487643677652616577596154378741307659035319854184078927829976837781879945666370464726218665027415904633914478524207648449310578059892734008394951312546823709183728178375443228022059815505729143309331611169480466236428291254363053355319330623647540394438536929471001094198078973810902555947366142520354971763182777623867200088789157857975062317425430115083638450815779420020685030759216091441308122481334356297951453095476522211618254469490944788534367908321591577138298459178629367649746880668729167076180678499572096519113781558995215562091110443002541885539514259300871401636539897523024562216091886864427470916795014860428082168823846958594740275307499585267816091750838167939232281120862820357812432942361607825620650601346710133279786204423120731032387034330821066232314808898629996196562860443469984555533489587183559603584103074988672663440066483991534170817240491119672817691774092080394132987523696059724831030690727402830949901694436719102469160842870227979739306666908720066143339207088335721437779498347371350760413521840910143150303576665326800536327964629809268800185610464370896403280200111489267196003714237448611999524274901213456541503950463559970778793761740750107298038445450270975887943835583854850040193072941955824470470898308535969800255302397304038644353216105253816854297637646984661411653552379610481782057170424627530053359100713766635644214546172321828179827760706462170516038173453461953934700968708187604089668591580367921483812388292837457509991329101451914728979504779378221700768554191566875592947442376575365837409620412505062150607753519178899721964033654796492569999051831648709735595268981892900782741658978032553175015350467224907436562130622234329869084137464808124983846290718481425163148451293935367531413043929982089230342299732878006340784570649283757419516313387930989203122831984014796592066380900110663038655642446048946660928548729956750162999660446085694112869984105704845683013080797708080833678009284824311298190361395795377726390295604973308422007771002597132165830235863925134946416954446318477428537094135927351701488910966958511704887352445932783436940950108198540728079936200693710130616645058975629233389730323170868421583587458759805558952048377927257724635353553325662553103432029973802293467820043511120647962992563571920351087416896285440453204872862549080009214582537410726219755839361867258271230495267459590702599048250502412347857203503179852817882422548942502765084367100420547402883553314166098417531065373960523968016882177330568718162525252131662148433205412755925254485718191436705937846055998888901593123195045638506715742746947032860019884100791433815325259383467426594282642362957513742460396096712566315830209377154690411838876000967942074630054678525392845095659699709004014048297080852593064557361154070612333820832426114318473414751482097891460953046913453584624704573810252058690802087333663425354334368997895637029720685334858672851782646447798672905348547465498335565067154207122699335343054796995669507228838740654234669825550816652698413323440897418771805463121435097338122812689044364054137519092378663953867820661107097846825984526016282676676293124930427995593602412123578781727273941021853630253537236169960380863007424161114803651305416344957846206941002512241610507965523284783318639274941025374063176529531632329600429592437595495303442418740892721448366519461247662594009627158327892484445489930711689543412157310417033097219953233537094886110975634490331369555572770420787705862735030191314916142041462595563747605258422172635542653706415007491772464087855932017058832044314785193668356184225962069783660217194078138562156405643581634236602201717350873356376158446583531884502892573035857108523536268319536950273794925612706162077716985541497344676126056791453572063968477743037836438470640937016470061472907847001129945907660147998274747133836195902948728824668256080577942921371459612642884785641357454895860866726485679843423940765570035169859796667997293791678617552314789736844313926033196621415170522708244454852972055649285091850154471393732125043907058303356359760169508510560701254409305350998663503486060404305848263617317239843727814743547358242346172591872193597720414990263033029718243105876125668062151418422456521882806426019616743251333953191556359072297429212030651667004423825797600027807107718381047692825346019407617922784044034114250256853615252360552677508134343973482193495467015961874756032667257134268767982589232359448069780836930815614012964705313466511611421853126699090675186435301396583839648868346988111380481005563315723645239212211474304222413615072882720372989455993084620726659090353726530887342775076027974157369762275554374133381165731745325462153925799311689334853387718485964379610334846106311071720499817785437266726375209231565201445879251376679612121678057699085957439985657943390294581880275540016604265582194340774393882099188549995035782946519478308915740174894759714331050844120320550135213693540845034811772881558961851283983952172879486061507298540725781113827092170039723976202730561442011281370500907304913882768812972417255504462975798651353273817783158184299394836722610985535563397042438349633891495126236209347570119576087459708472699937629956646549629480933585449183346686653172588820229316471393535800154529030018163122367992548866191397353527270552358490961750089184863768634048625795636997329683746712474571501537275139887991763213157522776500013022687142811490751353306730876390351418631637088386547119063437158727547032655014354680225665111690402877012335163529009055886630876149462351009161345541395208408398935416863797141264086773136668900654156908219748819444379533580628684294340380859380734419462325539404570298611570168487537223898647645521270659196902397066259175714810125799923030994376175038007583777573426271790154058988749121590708330837435085953657245307290114982337152176739555003416621404533506305083575135351919229192115156647572304471995364813646530069703380414562104741099305689658120915494057051204959423878128038010801699471254294705217016503689079211373794264449361422017256411952687333740916196371679751063745816331626215954161055604032090735810636222667603083512280614507237152677014159500510892389862588885880237512667230580458459571975432468951885212040133766764551876041386390583637906926336053868628160103891175216280240935714842397977903258723517151797812788647404405717017534830337107148422853833032232262007549497645680295250184505759335797190663018199786359361499811324292809846663582650487676001523177967919195090712342460064388630606931143411881686084812574706196586997316576721661373310776030462372132287789177145994674172075985930289367470899033614321117322898999141227326772655956067693359770416103911535470385637498672851818558323595386562835173246811696882169868263530265637600344907412426068427966472083006949998431866926408187198358837674706597476000451692329579637399002562043568514963175165211309166429845233567451841654255118618135536310507735085060593193567987906133963254312259425252695073387058333578906962527396831996439383390234429568875134542354032316207791015330024302993449796076908161884414465453444182861160340402563265227168527469328974523325170969438992354823576999739898696324107942314099291443937720604698345520327211109090320107847689814352202499493420380911565605591625725139484081333774615562621247403441157041445971811986852787285800390780975612561370947217694646788931315494499923547641875227942141321000939769987003832959327407935720466567260962098908863465866843119575129287646884611505163080354365813293402756989919172058479303980899811542412018487293387449339208262113271437773458129248998385696484437616012384898201114332748510475472033856386613514371901866134282582620885879952457251593288789615387707268839731372669700604842117803065499549475130761284496972371653673169852515715107613040138509457699575697454999056367378302430046117503674573235476057556225565271088752696175045406532238740781726871905101144411834491335404097297417135740138068056562837660875293087540481505017837634983332324186838903842028130155291015915844366458369310981916127694803943929324379403289472793120648164851654038569577125488006910985076042575195687601287159636858511800911867841491247177978017058411336165713657203707944601881369008200075214296667013994186792045580678677741460625938929280086310437756398577809754518193207978980991937980682145335428873981823326263425887366227494303112936758354087831839293940457878732931933943413004872175311610594984709120038278640694518705982195585588858076406208358825454884915419611011400318277174112877372545264828665297511457442213191106120545072588396483440695844365470189219260360997456282153347171265536084280712271385189872927502276815185246608012677139480996891394778071542739951048137419673988631505403846910202689291010352408765036602747639927705057213030089022212585278219377919662249962125340539812570042003138335613141474237092170721283539431226029245572332158073622143028080254432927839191589578414101941190856107719842907199774427093064074988960384475741738110444418181535883086673435222527253730487732880930020205120185158419687600351644024478466566032147956034328755153202547508547101307154538904506702180334063965018293619843969447315617732098168211232149270922583058863323800136836325826214599227177833025608691120470969080421991532744865551559495489504992907385100548063323949857908970580332620921360472078643169622089046279080005941425096559814284305123384529646246354061090880363668814216118961588606487550647517385235371099085107313490200773780130756877225557937572254830467670483147694982877476017383074036853986008556683557192243726632850286141576855201201631781510827909166391394362358939418089217660946383947977189302171165465955079734061799921069576142125824909210112217500161709197997954775979899866644934369741653808938628200900121907829067364313081650600065232053056577367758288868197536349209832315192433894355696498368208080013422430057858764613673992164230680778316470717608927612909832487599619788758626519637832824909178251643475215735555283235386306764120598579680627610604996062661697119125676856511648816253959253318761522201846442839233784964046275850745569544322162944612731897776742822647215805815415913284300114315918840458876760967672144278631264104989561615675657291486061588014681046431023031021115659916622998856164231814959897974615846795272399541311735757510794468631188503185561576042614762973357216413373861227164928827497980731349082245210001069822758515115899205596519025550630163237937073455606129238364078607926281785763628277110905536067130353343468211549330542761725962586449523079630034949756488604705790333119408929919522059422641192544573490550556523694589009497568982870598163462073546239711761998327890144059539418308942622324867683977947632087167433735754562430335498090759144673921659997999016892628974517742035463750127540578022050609739140069633236532991259555336288064902995251630824484037718541530037049704668403384941670092845409163593584327910494927436350386787424685820508954439131433216179565673407068280765944271733846889325305620095929360274210973671829650061679988141699916683046598708967342479955768180147079461795915879213152204328835789454574978167385684493134305856461427150008191948256110042702215757811894273846271702054431320121575172472096126684306608126149590604570608405494328623149799919795226085274276698974263196731680358376813888504941664884152743857775351754969619619225856811622753272364922781987527120855048879040594628112279493845200772892325231386263012586535534319417334688921077609277048383452677295390435173517615356095454106460338759791493988377077277694620665026413252720540571873110944666851078226255708163350989508482612191750724065301267789098202452467743061165604587815207261609769807123882723969130046248514753579053779458099923884447945220840448114844646829334982837390169479125201850622653623480169195239614939761852690157326840844763663785476905398278535349571186150354934627206226683159092045347773500233314336322592434642865869553290224964747083293316233826509304644274255934976889965006398379216307825939010671783144468988607237176785245108147397682563396320029701451635738690319274567563049715841310652120379314010233289836238534563420196326454440103164812796389206542860934848283264746966685032107974353652878970610482484871254712130012732769859918247668889737744550910987684217987633308118396770365299838777672801644367808299478011414921445915400423078639914451542275166221095360906192914231365882326980860438547209388071898005300353482786584859599337609487355146476705410504137821769246588200014752039137975139398460850264356049948896471270014157817335637926776957814857213971495310094979986087036747233375222069605077159866701241787660880283220188523112519272313766658428590322026948523801509505513155223995616016294264775366380447056360663049595444398046207589242752888180211607315361161894352578872577920894706372496761467243297618725151842634080545833002895272839702517484103604896316105495604266561882478058413322707003516143189547416142857655660106067147158590417933992735623412213605216935606708160111502666867512635951880146989454428446216499395421771610404191945061742963428342260968128688344050470640277755329526004041999354881904439655036841135612122918258830437822977184086856431645248946620768039373468031960312615095123762611717555747628702814581886961359466981285451008632128705907011102270375304154687330614067865205457403899841903482761486623023562298319430047038593945098972694198097053517924695273503667521745283928946297627887439988237174901351469877458780150679723509186696285087013553690934749443569241572489398394585831298177199744251104249800898707493811832264739153729845927639468470880675855848165911554277196274013578296105609144988377864683007468637008211668987806719202723741950707081920890655605105512173173611013874941592979292176779314370430780952580835322771488892604010331497713879257518238434992515837985551664020150066146004704549169287553865704321836771049547727022974387094667914609298758405602993924708916516480649958600294030794906385855352490561427726964516057193036865977362086639160105508389842899037000260631381658917562805131932027716585937945648279180386433552100873192925810699016844566898026704730822848808211714928334385098061016972704601830843580830335771237172461027333925538626820886392686025801490596450937242773314560903240018164681621084516363222161656417354964213745267472645707764967463837414659951215331316308324723484583291197497590114236331698824794712248890407795397418417359898310890060211846245761006912401441935180798005784232475320632039569931601872998824587086773348224340795666288414841082925323314849502149103138158494295361145893893645101266507117845515002277320204025385689525298553741124444183331369818923374470043917501359291043933987777556284337240569443836050046209665026195830599230227393311100367342080539639552975827259279475057541124153459559910028449637388282530208916250782314917315737326189535790202855628212864359843391530225042793525982155961790579984642144366384949315257068379214859715686968385270113549291785645456173323405773079087720348212415781932580457198693743146376433039561222050089059456259173413930013885490981459888532436328528484219700290941105561514424984652054300344677851281277267820331903468537421276116526306740905345751230021397304600602543738753016380963944593250108653697113634234247709870127621736832715220081107038013176034145063054326498592818005616788655639004982546758245447069246723726019586198860769131604222824953945200533537956868199870437967047856860489805930251839089342751324284580412604238401172945103053130243038211457636027454123090212346294810037285396200954125355426513947156184151198973421735371853204711708022108667371579489920064259020389662735242400430613327670621302681660837832714308855051886022473573433463317782469715933179059821890968171812013103469446980862988794985809048070712589312345668229209047789385442397037625008579607430706257776215120131001150227525632061855854361371063946955344864161182807271241512604672485180557125920354717921752634843649307275850395852286462993211419012117835925353996881691870863581939998646867685173334329861777988274885039958103801956554662480643787737589224674233004389124134386685175074543398683557582743526485967942074716064853509158694290671720828833267117516951354035619335415599035175558855771090140566307844840180133707775323640842829038595067717455874551815560483211156001930760580297158939866853281000334363018940801648343203911573070546641515109003814285671962627032005687722574559587459250860086341485821520545369990473819698752569591634144598920690532560698562752254840704792513881824974958762194505100315454525931272678649636982556239638855909543543400337374134907459407030816277636423544680234978427737540542343485586019921969701649969968521681901373998322576189889883462668521417497740247793700452525028057453087776235994463968041658519238245252056602494472927368520388448344218196815955460216088910397377695980786852415441777675525178529038607696538966851914911216265576206716851090328638764911185982430244681844258043489772489180986625245075594653829521380721731458614807024565020827216959717694762375855615440818712649408055767963642489040681890684096079755051028831096004609231313321342484837997277978324444957142149500366261524118115893306521787972419737983786088327777376384914300446011635290106274723763877464772869647554274327717368271594377202025154107655851283031742913027259531535917182437565918785340627954979178152457009175205074267586212953993894127578467729362537163620499123660593445923525127002384962193590572927679540940273910195380911201181237548234074864112820869136956075276746163479909064949102537123830356094695255592632531592255082806183399778406179381714512193585622259792721718076066152045268353356080805088937340322655597493655499286284925905209829903402313582616876628105220862452035485840271868982216491270839462319465633762567265416745806975988294019668678633406000941678058988171870771913795890100708912872911084464259731517526432851333107672535214531362911230593145407373607427198960751684902103351630755765937377944953070153585451595997500149834579810411021782504208330306174252486860956992491430964543710383440814619068350432320705305300644668450588413789480587098736602075285337162829972640417945066442770651686211935478901172240652869206863028118349249787905948070907182623783082121069190415360436775192057818494766607494318147379869563433060495976770041424546181577222715466432383059381861437257544131533457611944197734911824075922911931408573271680542956470696980726413470230738744425504214370489426365051374804595134226142971393468898873356437059221745869895730665010704062209704022140343208242113516158893031552653859809744737795390007860598725953877495529315298446622315715517273026343486601177797783139226550279349620504804726809402203831594859170797459536339387021356234575639771027643422686091299231418192915308521938995033732380807299398648164317252568350417539785552799913232232269235926798970987294389744348038069045040376115499489046715186368693076469805996950109261098039840383560057471375523044256524232538813229849608846664450005669837602986573212688439739452785359216840796503034544003911916838051447212203476078263643223557442666064606972245673874116782534047214737871633286743924844859691299451990881644896937145401584965091062450903869827000950165125756946651904181834002814696545343531319628702353422107762901889727569135274798885247936912055430627185895685744574510410049231658032028882967849561259049679693641935125961555851294530105869500415671328203139776093496330554222797623468992955570591053557638198605999402752327696731696991789489107646659344484566459074010392276866655741481701497516659861633128236989230766984236767941735360382091669711309697651796902596220222886351476031269389950207916508927491928206065184073959620666245792596051643874476464116320222872887734285009720368439669646483965868070583586600488404274305485558916237229829835849075664667573996774607973470890304923616621824771690071821928189987624217669828203143646377336769609857954210246360498452994028267530191286615413316394893636619260854605876016114831891078101829874213534639116534840398982533956114185342875326183622764960269850206366427155985013568216141261632870112817140998244054723029373184528892210767570323565701020485928078769800820738613186217880307009913534279900026848649242801151284555704498857471622656291406103916961227401116682884540186634974904273275827365972384051706954109665071980010244630265632809079734466868578077087111049211348805789812721387152673105845747945936080098922402408086327019271915903314968271156381443427946266161637743280011018214942990115271539165130612898275069031510997198677874478527561514560916706320659961560823105520554404974723838746844492318598739969329036231387030888843264956395369951471845615068201847352872169616682380344466461762359253927560715218489132157972308645806454418779708580939138759810853187838809644423331097321348933036380931781654464660280046412122648083402246162134691458501017972718926581871391177588408435356263913254811356208000902791796195967554123869938451512116396586182451431783919465254945006909004066331669079060386653525490734973415414572980890461754077187207222209377916129828068458745709340088012429475106944349144776395442982794281882756499335302385972073922298453930996357190273000813960319062460515101702398112389754660517210778599047751620880188337553195426775457561767391134926474716094554656811673565308786925627913889422944305190260567021321504930094836803887012734182856362938686567706817657384540556807228724703231148470274123662677989010768597207380571529288940171119447817431949260664909285994294874286839620589957890619137577925618462527322500473047270867368323565276333432148767807978295336775149380449156091990621885315618487697457347375123659551819811279767443918740827324845112027337378687594987449112124164774024080678455997000651677135203719630323521341838849897990569561230363592847301430136826948135890900694197129554724736926252557296978424815160018753720415033853824028145770404137484793960240935795759387138858973646739471942145019602505278071521431951482313132608689992694646759454684240126989928759957053983735083627185386028201889277100304944581093569009802676261830910099609547173524850435814203448973016298725670493861910220258193689850716763161201996103145819514642610268979825677981888465484619447215932518318214674068747668254182778389317205306977492055379757492141404437932291081293078872486322246813882475097231480535912325773462018778831358065078736620934427423814972823325427109652832400319554942137570998048232445194630508010780786504955758489645375329632209057863072480383253423910400434204314057082355802173313716119210219844395673654233915625681662327690542720454686343369226884716646059250098591969260439396356315534972453361826211203956270783771538185935296668534443004839981967148816221775463596173854528779969711183799508380146624174475297870231120382137331796325978546779050402496348544157405015162162848715904395794485660780287133291553550095685259445849898968707434596059313158043790173988546682524904289904715879157956207914329278531009644113133668182506915675274522405006932467035955871405142963926370230673148401915903252306640025189847544535372296851081417477887602421954021976889850371056260399160303238406129194210861672620587215565826855355120390851361528465337299906371991648458909804633445113626272321901240719453802547357272319803018183345761261924680526015364751095107615788319015108772189983561866198020311200141939923171102690403018332831364889376812211573995295316372229581131493981015144183967832499713453546427463280065495880347323129908155627962457166398220683801984251386068089531873930757220123524419289299992159107951139886539996640440561216825792542900314215748514526351756794497309723594801227958808226901309292938038733307940557606653166425991794564935295619003361659650581798520909597130284551427533943472844992918314027159481500959158672249200248284191034827367435256459430907223377533343954345384362871283659700451856545156129297809618866812542684224173834299741157633457834992514642531498428949417489924832623753463663121476759256976329524138876371074666743453381230925369330763058612835012709760922064444695142080163534872010091810781812673873682993122936970665886423046808662536972047779329528661778432767597012041616690605732732836109487468028698583918115915391976794385986123777462860531260270488015048432609936144752734398722128633570885978452095458564362904086808120516461075336661968470271596884698097231335806073538277122154507059338130110799372561953651486188226453791597038529967076251647346668589197283609212653834614256656728214731578366861854680666752528166985297279657771066839069941474290131785673341358180594200427400502568476546341191997942356176003947014669663634411465943590848577514204746321197470876380096446332037352943985819046716131192266016851021168073967537646128207242910482807111352048200867028627957624601412463993366150531063232707465120159825704703816246072435775292170275752853398918842011934560646662708200158966063307018710329983009788708915229196258333234987163434386581120937947544418483089348615687329117763924852302198804480205281280968885734956684991634633376160733340415505650697116169014752788780137358578453931416602446720124961936262605209792102685233939730492729925137851003377753334927616976452883181339583905891398938434032712974574340598613627634348179427975409439880444847145994730392565059687324282050847715067810980327159195021235574988786080096813222985278452045687950076323705557494222898743609764408601295319248063833386555625448998225392572969997974971179969203074666886248418672384976255105325285617039285260159839154956554277389331502018539461236331482189841456478769591936752489097123581600189451976017192649230951338222099092091823156078397998429930791973052314600124479168824407477569683443182346886192635195337406997830093853306105275983578964074485538834197475946859990129506564686438339117991796470687806316394236254887718192031039096740009102864032456696884368187510927245812358939492862788321297242751339119993717131474342507367703447112222730376695425424286421574454758639212482776077583279466929331116722869553990252529694635164255337957377048190407746766759099522770577643505497155282059663090294033432257286259178425001498397119102130645639973811155911965518438086568218106824646710793370419121208344932735887970100191997880105162601085292879205552208904261871774592122597606495366681530830997054072906495921405383480585050689501625583133757316968632058458191918213859134832779848227975450295558594892923759035613488979135962467298937466885623528478003001703392520656669241970295667204973920015531115248462372787043524911800572203909971562832646427613377438443218392133935578617263569530296928728284911351526565031678687329149592521855199419463013319654152693744956645206415458069615641887306410627993170777499329024090893326646352157230655061048093503343315702529235979221017675883249856420889868771352800918185416160428686562748306834138130593059859035592067044637876639736474524251658904980480484267583853926811533011078790634247764949514443653966947133596234692313979743926576956344513758939084125080938812734916524591093778931879217805107040253767423276573238312571563457317724864529018311576899427664127884039559506789071941633321656648057870508139790279332108790483328546582146717024619556386022628287327188985156746592795027649566108933090630560882380588659821725528068875954290845941108228745883748587520792226717166573477076518897436523602347913914669920547049848476062660535101677833037726879040465274065078861708214716420506511764197805132624390881350013463827519249534809201844016320406481554357274290927703753850364618550821895828613493585642312696792213258834262890437412545589825865237586753810409009610034824217240948090020669728686538999958425547001390420215843347395440875928824512408675648005901753487682868830808270762547998573104336537332854653293215744883640761767018076715446342394431973190223745061658550244219320672191968910539320062946619281945169163150910153338822129828292038152816496507580876715047012122484073402824293495582232716461793158953309586538473675944280053818867381646985679479664590528976768992404223877334841234714409143319722311776531992381751867920535398552057113369811281835033840570375943222613403704583719272457793449153832983344740479579561616426996640855507467594013271500145294743173912223933199274278446739247626908174032155888782286839631057065973177163248001100791301783154247628708649725291992298172717323661873331970671522533420292553979362454611428755867505039547956927906380298116242664615863488632669572569559392470081228898073158852538453990767779335780926188556447871678939131438973729589887559326652874211219485450601215930669722680274904480830145890527643576813734124093419444190005146919654780100068196489767745336473349628144708244608480379681018644210982827894511863538538875424941056576298938758041603335019759735327246925926542109655900946068439124457266163365846909032945253161548687259169470705427541245665467976974713211301807269058170759948827396739002017325638914250503294875005724647424116373677894087187741651670525573628660262004785349870257453535504374144235083241649152274696697693141426919578722729612931069404985378453339988357761292929359401195266207009636569928969000911882716352480481514777866519131794520825480012034366119134388971808729205320523594498009246065746282502902522722229262263514447513419765522842844128339048320120470312612775433309034559290936530407671315480166492270143359694504890921538129298173945694962423678509542193673001158619621073058634524131882097662130933629320577473223682905357056093776926298571644373975073863101761325702465995237622271717845319827557750628602784475459177856460040268452482942759142912864419353314058120777076969018317132382577969280085724277167226820270438815066435712889026583835016255508373395576288430334830227082155923154434752612209179529146458659857791993372143269836808780540544724007352508818413868397837568579114494316100863166480158173080323797642572192456396879927108262585885743313202477808381926209522828647444143652190572930919923458281651505664511901996286297267320444356473614425360612455368874630527745586681776837808623086196471826765253313986390035594346885223209401511815317968387218016093874647001170646783256756086783669115896216860172776597129095082867456108036596804834110310211161360549379559833967698284608541450091723888282754517758535296071080033272277129895149121394715767906710563481090446527974478251648744150909172950336049608166549620345209565634847658590233853344178169221449959347652847433178482334217419420311867232251034171801218979981887850242015154467697192794049479887295023741822760812765558607444551239299044007380935446629628909869421230778202792687766355379540493020940806568583413196143340558198826132907027406468287174886878446342648468792684536668271931127730407126956902417366114023563069735950760132700687627305879954490405983092814706172748873626749113955373641363817214779064952274327236688812026128006316400766151933781162314134832900787183261732094747852866242079196753268329247723729018882216089391514817368981157529362480931082605922243750858136511606304120201155721301274156806814282061485690097107521101734698966782612396892888130488546633013337472928317922579697817577156206266379894063176597911203972298109340371054708455432343849672033966520736274736748936480836708342467510417669821708284978319994703688894545582049293284121630868889827581741090528442734691209390278683341843832426081853983723691485922686536879095082055703590472496901655579946968061734289938588814451695045068483604725490470403742068382850357911636087591144923425485768215223421159635833700309939854146256669656657515507474778909013480483142708256009335931914384624069280230169258610168757873108172877345063157122302839768126993166187937924189099114546099701079197061358287695472970645896519965665707092058421755697193636035174010921618997240668628072596604340844155077077741045262613709562932637371198729174519662427450478460398256291549151112257103441294250775795653524314370483583495314916452738952908614402254180621318947657192397949989348853815049638598810992461820794303885609906299599675793454562853851721930289422237015571625720693663550082316020663660352972491005781998788022807615347674029343857276809646628511556999269313261750893086357414121570082447341705656217366237568135054156600997581872389115999372112945009198459674446360427896658393754571968479158072359135707263796489472747710329852563974841500191472356557040692360104456124872823221752339339549555950514005347862769502087075950568798320538720802584749775655968371434234851409940237230867874639404722454462233014693582750630683556926333552255450202865857348993838128983168839088368306285373625252475861908301511149193397096032248504523410448594905768909644274556402523008877914861677664539571909086072996653264981767987366164793256849557126523101637923902638149680747143169320112812019515631081360099899706578080378995666539591669836583777717897102576673881465829940973825573627198103323174053906008431943573079905157091548727187575575278558364167251759774189354905914517133433138497856862437585663426641274477642043016153138131381098471677627093919006450403786753925728338909952136405168344143159602264772271693080906875403271854266403486919500828827052000477100766992126030839954907821698041207953365039621944056660889108876176888135991989397888515705771013112056374814871537578091095761262601775219264890155435491395257773003628461893032997229235424790140430878036474968473660130111409120830565575985190694794182952951421402417896433395399905903392241195102244426269689825600054250613996925175060595307370986870187497709818223594756120610053969162802837387482166236668571874346397536601000114123419712394416071715602464770735867324832184093311563681288901910446506079330509914278556606910366855182127591831203202371355427489295120735678456415889448629635835619315428841419677274095741537165925342408366428090445204153281838746712408608602118180288494640541587000510131174999178673012010202416226432602696383345137970017754780964867076607885710798270422570487055503386859418900413197556209180131995418354282829777896947881326376337867462362546122352417902517806629449307710737259756228747545320310958728641355204924992542440211878346508803290905422729644568460031718671319416737994513562820221099087011895855803702762659086812640334224938646329530766869797332352215125654791933549365710300298556198200809163343241046526570560346003878320316576034917758697893161942011873909705997295817644934103207273860313154709251295618526002755297472046166511651604629168027203683187606666079567059243332195990411771638506461145525200593447341369059652739263287339862246476214619316636374575409811730037210393441992830859946221198156059261258728488390495164235079152877720951363287876623706945566693089793514920698015598919096407936410792956529636723186081911820087142693263888223932316216041187297159282291719394772239841380467638824483875580029096347552902621740815836511623727795176215479772913438575553207746738429559942087653868791918244987819671219586096506645139654187479577311143304148333184665409030559589398948962025862358671825250788755828115792049067523809577294097610374114970408120620247479436101018175812860173782624376763415240015126966759972874582023520214449946632595503275287834047075044479567182448828230008233422810992033094482425491274599040793389428600244222808007900544753226587451976959138573821750786303833471516019973046742722795181403611846121202945585654933005417464213628952372075483777236462707884971072416575418814647465147639683601404543218642819780344777838689070061144747371328443437494129743138747688057679660470482758013669334342071167484479448033807770775092904069616309635217636933265233885311467355527288895761522443982178776184954854516885946586658591693659111846830897161329252897603504991212280707389533771960937722075876307749562015704369815566704047186760916177721908421408425378832155462814201974200329176604417928206236093469900352745019004917863714332647479762667070077420715330827794457543113417541599358725102518424891362931210546917622883633093968876442508895930345419707367778211820719158669595318062726696805426746997068663105046155877202163421415283471616712199105442235448640539589191321748885939761986321070452450762089272609158728696017384292429635319127123613946119006085930060406877299569298972357116836001270934565475176015038582958545894663686499425668124249969366644413579981247491191293953543572992866671556729126796184586058992885036395715844480793636483723240911253940313573265599689070306931729001566075899925093817892636260652525312573787270667737836511653132072490990761195525459849092807548907573651676737332544878837657261916064471685465459167571814016684773333365386641645917846822590147799486389152155316985791563581834092005779711393089240908703716672361462518004844837816402053545812578237950469234141412886306389541769047320702122450455734327840424507434708403430288388163693712334293759466252813510013948689306083217642410905208033988324548641988630750123366827235618812507459995294880853646791397499396782154103701553994377872503492742525124713243949945566466555701303534675488507722326101586732112631115738040398349406411328326083792093050752027537969911884401646574061753826753140630583858010184153361467714295656417338911692120706824886135480027913206523071648010740897698599678696127228412858150079481149462890126469517193358225929743154942057977584282168640652889446831128312908930403537757460156241002557190545113572347492165388030189620335928567908751390903245180964133808148964148152207833403331344218962013685468300233461844286868243402067033912566310281465146086307074709185079668908206251286524065644102561122592940841600242940297601560646630304844905705870930545778355373025338428106101973450597468146208218528208356727901971112354330121514969216267325692810281898846992292425676971746203108174144186424460039314384403756213578386957729887651527813152459936832387115187924980963270585880328016424246206243367828424855811829842929732183345903796704621429264106849556104969342772399361350255004556408002628779782739778319323768958332968518128318788215477352216564908030767073440635414103883507384351141726493321114901669954187147389650851359133708812910398212192431331626652941341141386239041317842524647909079157327124256070022686007852696771006070786555881481470387484002061897541620686229168503269251889818050690013981334671454510853065614381279515365372364313537577436533082766176536165882754375300224021021613884608587598083598847748567146731864755051274237634978324977809179820869872491138277065862410551551757518928010769435230703438004815463604645289181507255054656667974829738523311064252535506019137779218371419221514052821854024037432966018787342177315645118759177197629649851903346815685471542649880553183051711747284499865773290816392696139018591717541412503850225309612373222392701488993218833295676978479877075123060322110215839003514528655180791091552501160186081286375841745651768955342906528377602002286104262070759053066446296794519913562958876157880002469853029377817508529467770152096675888850720869130436478163088054468081535889655668114713067773314888246766254965426912883707487164275000448159093977708542833117844306698008846372756743629180701653953472616424814278470783176659999369425672146775410802742403263274681321234642148254638749791020527532548626568738222397186083143850295224095889227909248093277900176551320979284635897044091425120052634350889140683179496766442480839731415137718493582838960382736049942190285189492363961211186954120135630907091504350090533970957301861405923068344250647957044843401675682533233865083290112495004307312011174391817934455543509769516575710620537172555524310957623906188699619547193310538202637029497728477730644630196446731800002843516275561650354255044814605114847697950869787144250626451394909365667654815340332020678428448361767159204899676639017698560569671882029015529533216565588283334871437112167228271424849251679120193372049021982580573773565284704841725459821981048790526081261018673179042872242731447206697396757632380739239012979089467446001249319526410355182609551949792605116893291342290374470313832606590018273498959842715814052655176620427442649222655289291120361513613161140144975535487728790259238820369054009833389359879587066691768991793458642059239171154576307498405264518953905544807102772051864808273279379932861639518163383038140368853857221091135414918843983005009818489417688544341230125931051899168994260240096837895454385386788769072085026551346038220811568218320238466289812834279813305444160758944896038959623090482994946445850261869768765207994589680407647470735367167369194518050139285885383602117756569757025875477416745919035113345354693376753805263683079155286666936524825509244914315112434340131794481748149268329919334960696127747162713709216967515784041441004633819247801194970026596750918674246748068415550009951796264356523699495087391861587651564033765154688653028521427284908177273683900257346237241843339346029346484322198995131759402617453142393468072005537680212873514491819367963178282723291817950312266779119493973501633839364493771155802760843749096924396339919595992352791085001490511942998894973454863870656648806801095581378629308802594582590908424800026946422069838085993246018009694606473939421908512314856581715737337395125654118126455374530471920197185972368170144274238081976460258989298614957266645792007417114822564052902138661818266940997574560435206917823221547128099341932166891365968515306814651456032964386476633804832187793062498042846700306467099406839072640290799881027992129616596032673339936634455077445554902547818836337424271173336403245440940727905634610807271219030701836693756084123413350151751313068886739761203701259616563352723923402697790422103918303024685259044863190160465992176020667829245529388658070396226445792258888067683716421396164938019370748234466077485967156889868743936084597428428967380270603282414173306257658960160811749203330601260373941124792877104490026070292867340887639563439553183825677448714039524482294702124615372873016729196470511815012891641444810925548594532632795632407974979409205104525935829397413481833610175433906855741238458798137842295935536574845375509673522138238577164570210645332035258950927223976626475366254014889300208290943575831436433665039851837606756576856673070196210716769529359804824151874200701513657485015655124328009368443135486220935769493809157602589236526683879506308839501281784328126802102189606635898300269210674300020053306723011274810310802783555422167399928250490661406608789325758850652177757922342762841426208753528172368460160643645882767629104681864035564386368201336978725863681561080943857102397065491097931143232123243775854532356490363069353723237344283590008148198667949484922102237164104148732524112151174462038563382944763322225667077896162232220377527781247195493109203323202128988551810514966918727587630917586648899577736343478075090550949292205854229630051750437605098278977694553608519647295975679750177679475908034418998901402631654666095834946299439918991006547814670946697572760120098186752940515755603329605937040127200558826405563565156281814472602565055104643994602151397279330654791277366614057506825163921674165589595053462299921833247901607370349038856085895201763321730319978847251381912722192922198071043424529488128689659025521600656200265599701078013611011640087744732411731896800213068044903261573615069001374973704493200028791468894964276369544748576948477280145652467894231826487920758514852851606458029944910715542839607963134240203558740720352440452690926288281611616244887122817826369850351645782691655939742661562571585533915988211799344622910372896661415147700515198687595428501613217112133492767059049115697061987022569963364235947271192306220714269659402442303327605088038117468411661170265833848558757830964194814529868355237247195378096242312134607483307433494785364990651346114109122551442303921667033515058520624851566231313670302337671781907720633399368280422459191752273351594385202335437074550418899594994105792955837297189513574546507830116338918026117974295879177519109570861668322439051581094121873303690837935734692604949956345976150238560009055431166849641526867327177471329304066852665706862525196343034893871589632436779288913186562746685770266141788697052469766112053120823064035454245402275918272425558824109170627003218812479893803964296304164278920152957167551007134696206913178246942542327593613402668462019028833992107224521779397824405403014673022819188244175364064254023219781307941241905756551000060752042215758589889156910769761164488078605704839165041847462904161630167479605573069818774646764579633574442787562948085911744705498385684939376362996504862607884221006653163594825580817060740716164376109317461807463022260156942874914841868168963842214780910302818206257222108388874659156754871497347142721981836119097048164638061649479147617833707697014643174140151828709430933219904677449778566916165492377073392175485170201678849662895303377308662119769470089166700950600881563014446729241376746060646703483263180879217870229993642585268926168186373777219721594315379049328987434091355844896672402071483763646607766493076340374688991691495321516357961928950061364963250801201854616589834372893566848995997877071079294403766133025417891814975042895373143942379189229436974613167373961042839682410455832954164928491050599586346090459150854072062053105045052116039431707311035732768559416185446615129469114024161669651650100509182389523903395163241410680659710055822232971176397587508236209627747181498010107235247636669334793045301772886453664860467802666405442868399991965648151968231175281518075052097229057353890793786794278536831887214283675942881346403942644297084433926911944139772325316739749305638778126625689148868129447488446382742530358757125018684935963922330290496993607788149522359411658815875355696209054610241002147489961560179095733798338148305879597835307641134198069544547674205727369374740794824369978489622702757944071711546626921598812258587974905218033918721781423247642755605468951449549899026121236426170579583040231241213520667036503650483831508006415912746205689605102205706346707289473181688649097249247247678968684095577902473205986919313662142191011925879419643050292929165970146610370987302394611485441295508215225212123745947061998400228204563030120865625356158227240572475371806993656280871518141326609442489551528818025230435660794701277780678122764712725639544809619021702693039415733762976375817530888461707259817721099441808702848925866725208840899905077747544344545492642096362726905769085522123289825649732164858252467365465007296879016067377227529455712959968385990983419514764922442288611202832526523677174716179547037712319553684379430453878744510837025668724788161992346224364757237638753352632701335516783455166534431825482760993312123089744014718847107104291912905433429241275705984486127390437674141690312270435664567081952869944766193180857730975270652479505497007449015601715961784924922907386972937765626754866329167891362749152261862116434830482520420624155399686885390675748029646543570349536941629758371305814697137388133989706249557350527274644367286107878333511817515758954389106953732941296592715001201446977745329991936684795996042897623971631340627024145559448578876388483446883976004036921932242492245042742380435097063849294174721880258777952497929752014470352803025892266023020835825627549324478373888081530841609086419214929590710506556042013603742753023339321983730754935682265843262958913239631643315995642675909679705266809255634907935862049352501695183052567172382643812418726683640548447875177366749808752963420593749635353265086599756288883563439483453281916925173965256581001109530439252335178790862563883805070402510824507025143204245741680157992644219349904705584677518134189363575490259487051429385388921459720212968987383836177363516451282886844132227647387762518179583191527917266254845244200560320881069199517886428008454330564596479845545199527316482680532970136887047252162954567274176731284395704771050635104118279504801947467802929518719247734831247744357000019966527627733788459529047509677025084770101530148223362847459996855266119003599698420137391935456410899910947205363710566726589932294084032331203841067418424228573709713597786930043581492581195244196690229406945412556499713872493143396572952240343367549540126233464549803059346092053980825141341118556908325362191423874661155372573515403706337937335720059606708557712427598506044440914107364184131532374466957863193360880347549986072023739256198639467066060407254472595109620478433746780495537081404551605070572588783307708195357663816499403831860405258762690160708598163768465144442276832507126375087363078486263130542087650606044208673808632183379816398121716764719611731734249637902128766879004066481129095167301123540992752923758119935046709278340898782559905446069202578391052307694860048157643050500825231675090469572489038181220735894199044037783046566906711478232776084186494186633245675099181809579543313172333379774006945901449050821073991757358122184548198110956568898501964003806919637779266628192049860022467527070062576626492426184943996169846811693082381381779554577872365195871267610108029711648063966339932257249061688106250651982657256681958903813147112397272938019102678575290498570103891553246992125807819395496778875529429216874189878007545633829922045352252241820828813108997018536248664923318380154215303965736864037748553316838237184958174680508960384475361446343983156448331171937746043562054707215353891693904271200289463133704072164301960184596658171756385403356887545395121451988577763170969659771740401002991497249664915290487872907982103355940614120830007142997043390318522411762868342688525384480441485356195009492734349034890306862222970041690131139094837655348928314883687807799010077405705260655976157026747389942433056693187067557432508079353372639251046184813112871631195268543530903343237941036871556962995408132141102156320055650260255991766295726565988720361774603840198866144247352544781762277267374530181539498494585639360585672566230991731062249606405954656458499931543042954674952169238862053944893703399121880470214287780763217314943856078670530667878166439365741610852134242492955682203367298448844018047792164654194594116643622041363614555367972645699195018558977053749892027362181377424320967903459544509738000487877176689925711254674159143593622243574183323449426869085864307929647556616351936693188913620017082711482117257081600108755378041875360734892382992458786289074900897468977438661723963824341174440840056026388375938719810960210155351214557422706042714098160953783222494810228235034259638088767639243565510469603049368003745561298391625223816629442676379160075015138188860585201801683371856343297355059260302638999231049071347750906227789003467163771008173735980360361544705743467008959794564899938810887870391280877552921942786347257769098128164288476307163114002772710401768283196403501560408917462899231488970814852219437680269222062475007270143965864206924374317016268312460876210628145722795939231450215549657517727489612316056721244992386435274788228400182721401428412790718661674681898732527900270307282166044915229688084210741326122400595896222701656379871414192539007965165277800749238509708852165212839661563850500530876074613746001180179503582932211248807745356473228801107759691930898490982740975813831634268681287603195651591435557258301702688604551226732725012149102397023859653530683805959803700044508609813454457705361484399490508796911119966207958006470168109172431434208806218607291788087363170074118032038387923084892156968752811388681846921269673595747956925898811323703089404124690731039161409673040294618053073667062085626934226978833342107128244388070614723354479408327248467299759844314757340673293830141342474343158872500048332779803905044558771122460696465901965644138186702668948624085248757720191912556192041988446468651161879088102682084355113638549672708878639313102541066705261161522518827657439958791306757903802412823779448673841343037112204945104791338024938099857949622772210560768512351756988240783427625238608266843971830703982056181412327479900615229164735096764097423544411034450482666207780404001764864848038697063797181284974445044484695215930723261965187937257595883908766481741463364810100928424497175363262286775445125545824896878629114781127929899755876341271486081711606777179465902858779101173394046825182927532246643415453048734654034189957426188501507239008698898925815629289547358709717199331544520677579994337016266380044588958951804434928471591686153641219756177374014188582279883318647574312812595761108257110570696646285123823213952585153130294533370072640120842458266405259472597424918918630188110395848519605551376162221969758119917781344153615650386882061783798017830326262947131169792791576642048530447302517043421829491707195723389309883754514725204309900747407532113859966873902963505929845516717995046741379721140394188733684305035499145288284756827461589990443668188766907416833168346773375440170648955326108080695964796596038551639023724453000402691703634822239698302993482125322055815460345521312090730114210407472809427982614674708365984020975211469291591044965356803201771627371668220517744461764697733038395711954956392820944233970337448517371631613544053934002475115924610318299152337697164662771200244014978865734752483248095178326020750604904690427698368976466484843985062480208920868109715625890853770734896071106509013259017264136879031499282909770260260344727563511352526079617946310114861302668831844763490204774322821693915831131890191326746340493627978450149570349657679033681402607470361427517876572580573675027447458136419251414408882911773034081605618747264236172314942619554275813866178668846472031272881573741969318446059059317718719667779698578422572265577259464464746799109242684513217102296967427802204072724760691850416080409334174715388407332248467354181455724987641341625178077468366723087247706924837117426367535535771951229680317876807724335585621711988308813307083933668167292740889200583155255295322853057179094288728726836434999360008699459400093852223700220721296935787730978732128546077887058008028866406769373513548465562716967957462870128921915926723358513201504460485486109575027968664281615813393994634057136530059992793151771518600614769950707413800691763087832643301279005954114981662490531042033675357164751948319893075113513890679940620899483528822911255817172982966141947850139608584081695480709220490808423995856265260794971328525211692930444511416020329785102921482798088204223549711809442350837367980096680949182219799955670047182530087444438025747131296605759657691235362114647263989556770561566290248148488590471387040339995208217532813637101608972585289298183764836883231112734339886164665278874363674466178298650473057632250434260746249982379462150946755299583933482267732163665753261034299352951066519732598810817245917670802138427369297508172672637167759073227013381798198878504485250726711057576099282627052318831441344600613498105989588281311699125016258993025403995817236953563881756868609974280580906716560464563635294345239624920011041636319126218222203533056083274963720488506491188593650140500979600523679250285303751065365855422727500457116043942610746465334142303002656156112951690539187762120242554650133741482473498865059235144836207205159090909005422917465765975128476592985612712439046673650568409912206557606642106559094221860372156887968132206083781834296044990270572770785495252587525010847947091930217637354512675196872622779832617315717835400666604108976451886642352901067273010101503429950056793849929069924015072047905265750797359254618347525722654100564581325887133654898824441240948601061643937132560377470451376502169794235020984412005381367570125651472657436426772107227112352359238516731495659191522638234603819691075680953594255436177372994382754917382473806768151658436645770314286714197894933177661842240112280129575016308987076146315217354360904342345648659179409590546060805202918480308115535130517684951778627410634232224164505874861600915495303375245430858959270944010443377970053455287199185793252219164851954223595139373681646930674193202331610035769654287676184327727762984755694165812138195414902465429549098143627686821016124237956431446898359257116429327573350070359081731195750474086512222968104260500746561007542756650084857432151752006201080868332805385675268633927916120818433888069101272486363254310063462761970927685270661769398532474281412149151133494638110485467698999379628406053413960429238268579982424159338518177051424477480327784909567319968733693871006286794537044627793017849721131617788255232855887437448427407582075819530863799245866743856852006064222887245108974056850646248627908366897123651741899647659470380106990143109726890370007687664612117182717554135280075471246543149427739344904802010181891168603487044678838280923950457707546934661233393315175814164110070487528871690005375784083335332148149210391860781771769414062331875686240098191311294097325022306670901904258509000661478401941696549017393899005073962905117716417935023924776877148937716610059537929413303610005068286305154053821372889888884735812468863783419729991923256204742331184496178253065980028914816179423906236809802302418744067863463683191286553590981207426384684362654615079497262203371659886021618636764169788636886034379157769604487030028848846493236419257654190595677637943642819243986832275953864680410015315898697809467504936450946778414340663096813875421625254057722377992392895540360635335291962247675463989403932513002238087080315418865038347941675692299939786544366031016161910075082106694140685939662494220559864047559080169874524084559266117562152701649012681325373376583546814090146591809524739695950196559825353949029806946458266744498566423913774902050860346150085900806221796413742691416670829342410821921334561867749747723313667718343433639035994816780360437639402664614461899415185986640535479376427420971545613790551556762709073461481472819777730967029638142459588260728111812534304137254275017108763438728748362148340054050615783715103347696745434682475365162774246183877562062442149119510237769078022910661694838729624660238642774724549151626118782835596764768628287697226228874868620214926212120946642499210308573275237299076764290502117332432951225121955081825088085566827528889796165993715405315447628359179381140893379758501226379269841616721588951039993305569937496133927556374389570852748065206939493939781291718859574918725015244433656642540338844024677580751686015965436203830687440824827450573411188191773788462474134301825187065434462381923093015388546408893988572768675297898894800998324217496326808007936641955337418992622886164862609651444965604255169362760855662379892528513530215945118614785939547587463764350576185906902634145091719430524811768341167463044183754601183198326825462073767042658766771383045209375046272445979949943153915031313553394210533945230124467637444861811735788482915288311877733446100836933906966987162351398052971958832589427723683816670173910552356784810249411430173436454753257953691258495714036762001018981027999341815290746384587464847171304471107577820588407522734589445558524482429058902033977031087059015450850877638311941314259702836152309307373949750347198184331687403572732364343943288152318805197134763052029785098322075272244716956253238703876217415176827534462866483273972134165783750633528555424798574609954414306903732994158522382224695269185703153351362406940729323022557352661851255798679538006711460596248551666073125087097613836382503891332214585387658925988084257751004909260030440903469214264296255938068147083336107823922642013336129746530105142874170831420483737390844183887861176649498541777177690251115322651770959485169962323693124103766955018034144246069927838814402854872492548293777163681906291136492574672481386570503265650328115242044950248746766128782199644335956857148669613757298640901125593867476604451010790517320258545931313574960696102832639161613472505309158279645468470632208531477555600282659867275393890876095042272791285962958464450173125344503101383521576715191914718718613601962394010881406214202623869801993576926302420677744618782720652634897691767867997785081498615915213059319036681899817191267634641731968068955645353710295505940259096235942534780086627089437410031855523232319815809142684120400793383702564584509631825835941192870416586428378696896522128756301973683003430758399712270418029366231134773317920190343974765133563527912213932756068381505554943986002790141955988342400192576866686092166493613742787276125516014847436160801824310227696405300963416260686720620066602120714074500719398460913283243220917734988143594305641148474601958440854921406830654709054866977185773146276798871396581561982456636694638913264307982540614571094982476709437931011891576190764051385341261477626659074509440906651477217516039523519076516718868555407778212468693663042713478926460121558763431664704441238102950131219931997898834355093405068918425045098070172010265380137396737655023874614698631046683454435796217348652197131075886604971067452360479230785919246577718152749533630328938426146484500690517255166882276086569240346436829747249421434506698284202823116599338069468340757977714947314831879504445436792207696190624159847060523636409462188970545419998897788994208717700175747061652137358909997588210312693331799769252832716212903936878130833011470586412862413810179354187680420976174815310682285543795279568399058796684882096517079483054696981993453852814347075550184821688713440435537831429666944294374196568478760567758204729290052630030000762215337276421868873195975141631028126691606196526097114409048106661077299733260144299256788910170664083905562068649760568108994888081736168281047892244914150931670233952799835770344168329848086259794012718562119265837778686681178137340390834702921901040886236225019872392193039495730966536675532639708060633849938215445814751348402056212345748912552045070854929119543566404129745194485505297185172175221495528096655509576163574728234205115689045341217492169140547839564061876332525957299387457215165360524001272177037210730601698912033303433802455220228511105993005306390247876968160029281154958378485723920183569649679832924134209272180723634811102324015699010079187512871377398329790210593749980016443078457093823423144326520521708263585299830872079987730659721859838367565225865212078415520609393284154019472258432050043676565367578934571387229913379779922486079749283168648301718742851034947708690041480422072264664182574162923425095124544380376312927142549963023867856036573726955336254276056478874419718265911225892406024838689158201721818576739757836276392613045811806808387596907339453423114900794643701538607973091411870839260292150602652807913840263341465202282863434876439826571731629736863991899025762947303948689918338513016309990589269876622904769309938725375312422822795416770229696087218201601671564681809867402653857538244079899918914392311130161382008026241210687528612899377760071296051053653343205694537808121692105096414510697510062348143466447621774219027679578487871846777043740515586397583481956593507880548666673753731519579402418255671183369125078524520369692202661109367639538099698060023787672355114838082956585332412455478690798057651343152105667398746418598084480091135385976074496208173082196171840246831492743354127521970865737366896949568363432251056291555927815758729438032468774509440072989989981562046562094346915117111157658955076743711438440510741237993017680230941034147943847537124335332720656621086032756196899298916367280050969184888370410080698426690512316972280357371700329008797947780506870337580343877241694561877913367885681405833012371079361093365326765988068826651294538563679284957482564757388628180465665044113364100677743639582476451409879658979932818111196137671668913343272867762974164390274403731119096639227192132467668628078777099621557516254954328200307739380481456011289442900319068463629159897802146466438038185923584441705113603123376012772828472251129014277779480684976801168736706660854573290064170358708717667243484214448092999887198055417509088713204239199748073300233905691603714877518079810856350439929046832931244030177919645110773996775285754953377149858674114708314258697419041619379290995695462357678860615968215797871982486844868496890741652761136210003091154160101026605868141583128163732515960025250082687354983198378540303675655950695393920348463061305334148060084167275631035633545526005020129781567154304412073563480776912884379961093476296019045495451799438340166045770181630462012262283645926777775003895556885521838908633292297459063523358353476382192131509881407377030864937926469480692295294100779757621778640617794028359234191824823307310586854592172461993941942924709278634018184120205481222471629274489497865197596160266430460119310658624682601018297578613942168807046618076363724964480246863430550703436566312382565714982662691075304396329412886722175376531860970442801652083151441563139922508836678310801136208331215381589038714815537310348009342134819644749365015752421218450774774183939187534572589838578562343707020677671797365053531273119131223297747909498564930000571662377493501297507588518330386690441226426932140999311484092824091959273970777021776265439323845583922748947419565222004614520738370124504431244592430606890538080113166251273255806061529570098452464254580550542246011874549625057133421545408967854814400147047747713166290649492572891100478061032096725275880311556135713832382299690623618444316777228549997228383878923632281603790261375537478872367478520942954227940072580264505879979345801911561478024577750684399282572223662995511793962316007384003651119217793318598068394807059066130643976100109572778549365214116038472900199552545647610503940229581411307003503487733488658034628109909989080048948744719409983870823288034354705748419755452648677245576299681491764998353545444193785454822861398396154893032361919455895241214782844391348303868461724773222376712954071667819075950187772734131723832266481137212265189439578612054734835054393007580928512978119168724915055694438637598723176070292503548175669673595138402049757737103602373437663031246710170695278184020224512173040366801862482331567853025366518477542224088819003204782030187521611482700521398429176520156812347035822061430897210736272544976609276220912547833697070299089999973342182949935428072398670787467252459476185799854833507660813082973133039146621513855603311317520897978479085275783324627763459152825619438214536570388097179965553682805487852338878251604405956066158872732088012911583712197685878632139330950853486450803835493186214633869239853324289971509254115896160911157677211738299174561969120157709185082460067242768780726234356188902399087115761594701515142459546506632729439770724146223223709897436539822330763394496411672536106818525176337341335068587017286452221730980426379976732007195905957997249330141933232921966162549038471829585638960184765512522894154644874324921127597187471121036600170020289186719892469882925983147779371805292231876036257344966872679947714477397641475185766273105463587883037958967854617922631859825459375346984271764641970175878009530246070042053420438925055941825810120360490869578953007353412101377226386020493748853298943340957773466407697181983477611188558018588789079523388385636087651235789001722440919134225308514923960264430799516877087098819871174265668228813738017140866889400713520059060553638161690272863756832473439151218332027575601611269183984733371718362668719386211452648071054120875475311036798646036576218678095713285666080580016843249720259933670937377397430733851646072104304930357494383840291856738715794940939401071890197293855408669737278977219396775652370887220770985157140017856043025753297933155568188230848821635220118026658917828766647277529743613786760429934711705131895495504930397216695124730806897365807922419137378568345262329931566784124981896015498713248259204170642825405605868308571703404508426687730553745919153035216703632082824332638206644233044303586862361169782885395162771625570750161663193049525266004329759279429737296613176660467763106366457077987088848644492824665161814873540139860238130701466997647484036610554908525418333063513483548237019976721291617213126958936579075172286225550891338959193088768619748551660776295107372259896574500773730462149216631446082645828864359972293362062401554379726015055707909450956614301520720220980118697024671082424896390420181564840069365218004322097544294636737870001598650940593684211003686389567219527060931782170276779529226482201896673565409076707435590874156006673794984212140534765885212971476714548395707032563341897192114435440817474172815612175065311931672023867902313060272566218545569011455694476397389687485080109797248213654537358767375327695147505865050808897441027087445008566636360079485299183511103603155851331843274743206339580123711416280484438833423204983909838562173513474346171309514384368738230255426679000450651877774229021169078809311319645716154467699918602457663838808148667161764859664019894503153508950503243958944070517127755774981715759298894459900157955348784229735848285368523390342789351347312425424576898636720937094728639039315748320895499529506846651344664912773136474575841602585208552329641620292762886410124928233439004746463976791951737103982314448028900665990172605857423187908125303858856440213942856761017709863988523780308183640188683193647460465492751333725776828582274272509145707515245208658227809626403861914966117498456960498728133231016900967906777909554915903296388302316226138586467061838494734874573105196893219566471009318358581886110443404102869066180566225185514933638537981490376834867849605883500927411842425463902644257196680809661731484911861539155579607596162451219703887794227974527828038636989687046535933352780042491428060563433336234028025064579513815430575905116166453423193048517189657335728487817673243590609320239593299620428347260968423393556954471889497612894987397387835284815365224446867791310309542050185774226269885650222505339565294671533982353361773546806760402195631483430097113476894604614255032757289212292873816204011142720787890366273001680861528962482147564651398917142446082648946857203680926989533087285696930784327573786644957221400911862439852245882105961602122871716145694090769248732527668639829317098863377376927023232855458331074600634445560775786793936706521342232780544686508990110471491814710746938704240092069817911751850415300094651587836635851979372074940845057703129823438904274839947556976417257234795532770050577606832532427854250367348556039651199152642359492178053076253562848653396041190602850485068870953647215274246342865570375396775287709179616708219923649427868755520185914349542173290355132159923160904005831537715169964873891001186643873974163820878697625658602108818750824024110648876857543351546034058383038797959050537036054923397185458903578837694242690602923600260469207724825329678377081648773833009302418057283695703719785525316867471624306898828292762869911674576390523101152662594072596744379636293595414952860020246408521786662438513859288103019385968681955782345028503525357937686886059872890719055766303149382818280620331986892016538473229952988072141577985928598673238012301889689641430042959722192802108598993640081764147005773165759394072333787383043346328317416693891787346450473658628307908724981183430774089202358951463359088446568441048845874929361972596081335401847367787818101203895410830018461659573845790473684191536333384231889973895145066896976384340966010368865730793298789819949066134018699875227759605365587796414288938463711715150853701457938280917107081484497916427174048606108755832588679149190012973391364830589587407941657643997046442841896877152678539707949612258265356058146283776141399994057133841426691941431606355568213122865896751151396247203152990797032652719197479723176388720674425548856714767857223638769074876646532048045986651314215349443586410120717469937997191079685306951757495992664252266224582928458662097821612602906805760370446589689890907776019788273831172221059982966255288919680793095993025809676571961756403475845308173508729368436688051044540953368069665887435241761235702053182515917074854517152837402314965754608809059243794390410228766756477851481012917642465428016323702796000891382899072565020950885089295930237059222713640099329423871902990356129688789297380363133907435242610643365589259482402140470317710410509104233329908313148354777379819677635371401094219097356878858454834752138514430716249933247690057988488849536498404703874045911612796468170587772833438528148646746664775843161059271415459579283227614857660497169547157817453809467070285360686701112536081081005016669579562392993078331940758599383912754801134465057321983286436655451806332758391692673557303955547075592148296765903171319832198606415318727288030879221600633304650932149898082517499603105933144107016543772649869403452421450029617607895584921057269916450083817604820850281856443335162174953487296958673156999665337605991394299488294734401419026656604453354730596630699209187962674867609945964003837076410370198735204213285130061317353412828265174859479362155118006863526995909469551226435489323323860233861156231910663383912073511244168212974801082039184584629137381390656374780368623973430343845522741792618059244595418222729884113940386536708429671935296143839351367119491581953715019572163986872982697141924990523958918554217619728712043364883971885956950914804911329546504153800908394772784186012510607573058645584109786957047344893138262153675446818024477285115279969840330563859705582605057763719270570290691961349774340427388361451695222900945356246668194823474935051919270862049926983858219506926745331729673539213813369154011149169977968735535589290184343710891152187561365360671909833237204594307104741957615646229012467431989942727219270413158043222457571135799824899301840688715362222081449648421863619830299608120827046724004983312853408792698935627898668925045178837874022262073075330192079872103973148288589087757441596699329283847905959875737203155191773091741824838979376532637850843491290905135339795537796322855432379255457881580024027827549013115197118971802680502274908620733065576381617735639457596946386281437780028951674833826052784963874226593321695665151421286369582816163810830132654098125809477018916198064329594785309326059691516866520526403010827223902265725838111889192201959885025020496590715904385207925129290414333121662041558184808792243094253093779443227114588046134258149058035022618300427536917896281138698438610615620957800110916463012549487172819843086722821865238154359316870075350947801543557355989870742243835718381775421811278173249572616509373797690114160141305517047520429440624268579829619370914989055403388536200470686650370517888962365797865124356052437193342627449528407246879599002856338932327335621687147092780597689865403447158009590737770134541454600027776454803169726321044606235839363499946093737226676441433466018948868814451467147913977162045111589635613715067836290612923052362901151801162925600044645355557641460252966561549053779507650819366030859333150760057100168106303988294020664796956682231498072149045104661971286794274101989572617101592971362360650090391796071671213810956559728263585539873559954901429864766966887105885000995918753298128468536900249319889124430868103982956097185461803139807385195584394628481924327045654428798957786263126930291247202016907306882873173333669589714456059227731446887020617692003427090596808605340584343826456802510864584724704401702441119998378426580915151539623834668986410255349411208761887020286996993707015387359825657703997166220924477108899012372259386936267377787858785516155107145844828686366519570804221060617964329911037990887605660131595678673152211919361290742349163871703829473673133641575982966402202044505980606505059269529621074293797333019579233810242728389087698699716592856701491367503402605818456493032513358050656193732719070588397557732914389372072811526475161345588833935874894839157614969976144958962347360164853986328196751721453331246907704662721014264943402848036744901473359028426417320822031700104209913824486063602421201775292738820374490472344987718757445123310166476704358718450343096711354437001052525584472730402006491492374873317460943579835548672321799233936381293500599547546021600998050652280203110945119207471701755518937352457911728884102154588217961845064967574050363380943662267283200224870784946830207500039869293688120128013306679688180943918961426753239377522479771864408648275658688048074661289051755303851735737930894680599541396120592492214406826289327962567293567584088640773462674338283690117126216594856266586777811588487444295440138078296612963117400498921849317636317415064499704513115961388130027630193540754402181882884222810802143792814555105846309527375224403102769960052267216002903017593405858688384964399803616122117004395647460186886902653280867939324193364435957778895217130190811603049156147739114807810761115857300820767393731614311766351906214466426056124799062515897698945278457307904667707980405865629382408154611343443484487601672840565074119935617317757431933858566561174345773037361840828960009816710962557716939734371688587630276498701881257047606208870805325310061170543907923012603812112377379834843274524260615566613122469564421200485653203622813962301227203522571095155894069815195297382261504643373187079258038766275743542135319999823185913650240837460986201192512558220348517630670151698996009825225425741130394725456192885522097692419490076265214092761925604686785440260557792206359571472353266060762178827810394194769174315528278662102659676729565036144962382736657608968397366509136742703797704325669927671123317723707807753404614358360686925043106446639616041146383271156671681415382396537037988169284631031328590072198156219865962001852933691085554718848724532586601917311987810389193784409160521233881636328568765632933198206007455481526703925430938807180303641850894303294391896395547466744999372619471931742685294520533429189375692261437659642250989123998086726023251458757980234584428876693899027184437815845373130006437289099183616968545590951632058059343192899163618679668913587345169195253926354481094687327559860123188121948549436526710003671463493603704720455000132576230524675695510019984300751766962469327873643984416087202053824229618114633560219218711025268697755957350637768891778247627175733935089964213527439241142528043375483799565871482754473920413892093935037327667456962930399801046843911332403259783860413767691326178239604032343618131207665432551980775766721160824583435398156406728787738344450893761437767058014440918666692602784076136486186273796715508550656115546524416784518925054211178879879157933258800467475293010209567475797357827842201991589637882933668284657078624919245382367225021593678404240528686605443719253295471143667258313227501122153905912290488154775143766541618873044926727846519045088435925452097739193169754932025205338169000501700129400088840415901617121913190854016096636018026142145940519963473073386579327067027998869923350319552731141128207064439998412299548399600151665550582991084739186023191299392939956563549452225842001055831390020234387992876420514499201028210680448775096767518069821527420764604273267956593883728508357307038099744211051255975605485660562200067357591387851360767074675505370892264988760402726661907034260072063142191178737281373122458177333501645030955034087613292578426750291272137386388229328882108407258654446715223960231909602261539096316283894816042841002863089273161337436992457081503420467743463999134675067768323238511752979992234730453673635177583737039980679449368426178739653759957130678471129802629828456700031800705098127679491380546465584308678920939879662116658021833465987842796357319088097051125502354213329700175205737403051694216368249922502790129059436232039580412537238285973721446524092603228536717750015307853487646686829457610620491714478564106661495661092444482540298120057175331735317018916828111368671473897516581570256793770253550618809538707528838542670120838438496707900758340649299562350434070347349762813373603204553181671235360726804832892298069026254877613545549380682795472831075659632976380650833739001129315251155532247029882775960828291001558765720171181527741756251821882596035807721532408662348030559615070351241748143748371037126170703073502654890484634573290991264954233395372830645419035734423102577790834945304551014506773536803143917762851504634923614171951859197425341923134100315439376737987675449749166308597337228026116101056458706200026216868140627061405851254789061957869451609277489908291752933163965787445918014938141379657184436769710009976381498071302441589824526432068879230116407633494715534966085375096349743848669479618029781566439617213556728971272702931835313522011500287027535410883410629129287698063128348330977520626896581879172147731577443759541240741709906468578946159085382852035354165218299356456314147876822384103893409900001812401415917497771918817018481436812069678450027454973250855032054373299133394854890687773453416834037255019508926336534003844293471127144256366065979888902709979493416750633358088216536166838578740424162231139604041014511046102151296099568520489290636055272591958730573927221143897714373641899458252427350403836617108471546927135426147243377015857684065918524870910224400357636799957366631428036506781971827575458661779068605447212811665830116965704814094230264737697453402443523901445177692529719805991524563655337657445922944735080387587813573589607616224974679015268282250374947043281454737251847958507314800090281440921330258194222816467388363785018870672180231253023456724581709506626407373073758891968036952146897006833214010903730639403502022733422125694001909383890896221623439120404915150833896159923383094366113922477798098243116400489575313103402535840802498195254556089114063837162644293375527597321571325394666049228978090572861914675595645390162219736110713408950413935344077154715206032434522907221475472795986979367948100810341817424108917124005934386813959531872048384659277106641339735970901317826998552424306872863915143380192226568888509180351654544845154260600316749338040117315722176182051347173322221334381455150272820357919590771934363454372607084813331738349154047950210276092236137104827997595859633003612849075630147861665875781318980753335368700930079115541764193825419986385827118411510922657914371772834741270366991993845239614611165004817281976219211603167943576683325139846988769568581482491387255725004739801546896090847892686313348626830281671529742252141003455699469529063826711083795352681265084535867040796348670577197134190589027354071233767351979343082787466046519227423934436106980270772182934738118632807050350740764554207286809864704347442099205314475340078964772583524155253271353893256433068793333983618082616188200194932308903820443749331045100373830214785760822446278890502402510010111650235463425389435202858103482981129074073241505890288068366835027443727210419713796518528191824532326662971507065695544543960133166618634787647182380802465970005470037739635250021224312383586807653840123272649920489457025346319917477417695849351528302584322271376444903511323877339389528602323139982802531814969373252183687966835246180990869051692294007139647582639603578450533198826057107862056815208196553008206351032067714434464045828518194884163617227802907605345525292054686702441066582091192975174705336757671063453538750018123160167243791029295813782534448886841187794553913767851761718295550708642567364852743278670013785707635449494239474581768198342722551724656226063615542243739757318471059103886821974721965375491119178380049609234371567475386003670805553278979076116573350704379855029696664781134054874973805957753164887077626136227335571772633121324518549253313749365928400175267486144774197689844182931790021255508557371064360874903617540536598726734624396869849779316040525221182781603884207132481344863419037097022650782215522934137252510722628243382433107101058291330033868434544848942826341029338020638685169521318554269704885543192292309033737247790727083357637085107721382348825513992479212635025582775274253119033555131375657777279391067865768836308966825443358789536423468798845470911150131217998125827825487429388784171379232570727784348779816242163538646416462939372138880017350829323261832280318963738272444619411803950762708223975012391977959524995681563480163154611632522725936860536115637604874871431103395685552892093242793320583358072489572220507790729537272965884894115079052122501494599215886122123726012285527740358561798527039606774505347383952779361112315730093205924802479837516926821076350916718720995171170477595083054401484681350120916411858787374011596584729026274188495557873362777484299990453398117008012125498498764767043588345472772174636830955944921748026519756683938758453834586562231601022353470346155684317574524604091015264275870524782936688779320880937918464625741750595367132293369865390899594925265956075267097739959214059424838358025671999929208936062601279920681194172445027392280480169803394234396778160010504583945453632782135957378385735575462976916731065913225252480635339454707441044873227804337949356665686459731589394495170509487207638664571029041860789926506449241729615024699749245912008441107377187148551841823619133742826062006735215764584248460777593708527870534693678363631205107780502271923389116898430888910836886136220331503262889194228884620259810374045896838863412070509287848666287285088785133829598642467864265156847719713563114021131377844771836974345651809689283172937616433077219524989197293727309442742046992564344885623796643220743204047524959101663215670917913414481282808649848593958299154648139536191526400260240177009626704548395557418568380893510013782556622644793094780884004156003778025993810817706697135562596997642423853345318747397293877823422238460921756902125492495891807704980856409369785113515462148190992412511818203585131390218333441574259803977156360044725414761285889319190795769750605407230217113563567705160520830771470079518924927089883494208453263371409987699683814263893968488968381282142221614035147221618375309132427749139103706507035417782431156280005027969523792363434373738434534911715497158606958494987253585070739277306913874280683231057683605115633605989194442804245730208618221307856258506824978811286179938679237517563307054339493569546310415237178390644591701045765511866113118548437863054574815221763858127948394103247556359163708174042079210204009236538755328634095307650925199488049111507105880179679800702039381188007416712217599717790176445615125262778446600659522522761242128764655830569107627199992260490202464056482978732065825861600562902713484553257930779558188347729264961131113242426773027045035394481730401321432026656624786278216589155302985150121083389596213576472190612105745756712577822952471929129466670177387254263180466152182635339662302617504101944624842895760113235694800948679014600288833481222284778344027824056222723300722779412402982972110902084562147551262702361443494339200650927618939770750666012120350486620842901289150569013534599714476329934810417874938741873137071244490876663982154763764692895275565924631648778405972789456473761172601925327310768937359795032166845121544539097970385362758091784755030608104100204587741760182103637893685982699486703065568078843765823659416218037015432529687034213167383451462243841493144135147349914476348356498598219329874231841866495133342377795794941533747883271756352753570701821191338629670877358093877317409812489220400629247145340821225681866772610785134802524228444801851823151863979530214646787503816281190693184376427650305531451698086930826492469600401061296611762107009412575408880414796812891052671686079747424211019840698688744396283782692752913369346135765712863670936723847769088906218745795584273811944990508644706294298919669162623749059438518233437274987978855814397775048633457851540218603293818222583404013915043637706607144812694424060265786403167277743340495100369088590406994782418847784420706701563622318410665224234110234564871579923228916541427326130473168899557702915490226662876238997639933960170345542249740605805979914419720221530129436295315001404944578102323559213812244632693454692131634688005803555263501474893484268502379861410703274286248165120587479442891909069435204954892307588941994403610153788730834591973197228803502217920057773740090872060122560718736734650392474622979295716191660419245780331147945512251070613886804803017782305099863391241574455782271018539505050122492440831896581860506502235249433327069193607646925137462017889866853132974884433151621500318207136888848979120109443489212960884978390514490005393686019640711912319638278729389911153581170098454399277691630343426888443261230786073594721147106460350548477333864729410873604210069136862755349135231279280123457724641829743915089217998367549577709867433811371685067400371723547451040341493492804885356024189450185225478865713493216576297024081303687956083054033852235102294469458805762457045606353071308310661204502157611422962388774156066278124049792437590194037882105967756496109305861084657067215024818412468630868346967349873886830547157563550029623286821583357795573708404661652490859937403979417719950817912833768251594143736062649642640505441073231695946317398399816092971052676490160674563054131340305968343486170039396328668622507106691946496770134833600757865365502444663531593209199985653040241574130613785541699436741147089403609811700764348890015113913609625798459226398269057757066371849557050654776832458101212667714573918616140910642652604883556499537943468170989944996734503757860922591643568288748791034300841260780788849454214725781623824430306454187767885569547079259324614622513669865161314988057516741365011694502887803854204646995453689762926582952678962038693965283319377267378678609682299512265976267846727264504519591057257907991350716730610362155581815739313808486138431123277364994833205852627852534303515037261967541551902607087760098257630294362775250194604789136126318651051844543873901868281460475502259396812389850742149487804700744908226757830898869601277324704234612412474172501489239642495620972007266160375900861729185544543057346182579894431073807049168120623899549321236391927541026435997588844496872296628775970462566443966801984724078230198032953056860768715193881575843590022271150960095119768909555563721248847975040379682345385022062363411550193206771932056802955466848638364559279547377310653812891859336427717244252843516123171812026482211784558184982823734490402955292304679806008082835038739878500876338078958041663930952486773855383613374219513379834342216034856018463270126869636607849163936544296638084511394831801007458270826303062262646307897274059477168562482655250683655901604231339308935963551660684677718009297502467016202020367199078306194777796411835513110815123784703484529672641420789183685508245501208012524932176145343905403894507519429609106149663644209968338308308764838426993689193994772169651511670443391620759222291916054022343975966136626601206653253596914444169087202576172993367900749685095307288414288720980965749190588152048561405448564467004298544881446908341163760490036985766558130040922784658583238511500181912192657970575209650954429191762383669523636797791483034438853078808118033146500030708528562846878262048511958740067221306988481794537849148444136420654478328078716344847798915797563366373056662742225082571329300830138995996866744094976618886311419351554944902241803565376358552444368870049589566574708430284380772071800087074450096723369003546424637819593523787117277147989044373077396457408579673625422689618784474928761388755426633544556094994955126455831541414702989949493612198860792859033926701157133534273792171774671997878292909301749972876262467652518260785461363645521525206810342923778382304894530116244694599318672667323221304262432343896990459721025131721697497804853900083438256342711283363282284825584270763643419288777092338609300403014522000143128922637256844784566461611351876248058582008024237582314250917591914854449143061501623624544653196093338672764432275628397783546008460595147884909267782901750457352966891848314722809161577148665103632672083127205239576296380178228768264622322103743552051079210630098646642178599520921272244437091057876533124207097755922732693711506814120419972799441021903482094559413349136932445518119682692435216777504551600207113977102363050826356050504500316276262995190685140800720701176762429342917632770723924563359858844188674645096592381370565599344184994396684174789673469789862904480734792305034132243743145854628365527470036260863602240484065228383410460658370555284258442413694111815650003355799718627405124964749370552421233548763512211417706776822613552538018820465741275423791569816626518116793654137161948896770239235936130599065080314840102817314629941794996864372288611949742246979685055839273574194199686241668849474860531492305930668059143784234352863663950023891334155196177949891157140429677831794449337054394869171505420832600176342910011534050366963756665162893519530470951072085492320209074396185989196499411786824275836993656520692463092184896770412248506729642459161993529719140154825593785916478755098881197290689050853345762738948292106272751988454472888440212651433980313369161267094871490934130752864898962106353839846707645687486836300404568602621590736370991395516633727305294235467618864249556555708626229544412173714498515921941460142965807374637101987636253296933473849603434511611031977294738313217744945335261640496895461432298676949442696379724317542542639908025396575372901879218637010123332948274316795563176975284627760840160574910640106229295102830092974168620041834678220548293751079639704713356430604160602510979868087683738704243065191178453918270269218295397933745254506158617585992764473730234958715632707657809766872136839304095808047696294512079504858201251941435896471017435342350694052439017090764661348025154944849665298615492761993025692702975609194828217792357274136576067723522568922644152458764319693062982313406281606200404835060370150287707231963740613032559391342412253750811117534316660134897227884332419137260423903617213175271627412122392796349798213372272752100841719604582685013281891884607265970644765246749916950864831018566368619019824993156240301278812524382691178093025600830536922292596442512857081062227203647953062469014294844596733843907262240741355439082365024468766438831132499886673938674387286694656210060810607038972442554149832001695472759679272420958913567565274384684467647003169126648457181512192715006348765838979868334631881921235511635809531856711967343097652200688919908662761283552398186164744304944714667202530641045023545681007021577898896842846074984262235424844867190329064879511650811068756055762481588173333695390181924488343434056029909701090597042788196555879199511645924463342557925785766955683876628600762390360445303506385129427291600517103887212230763363908792455901600165131020650272589842778525556243401059963678363318757063325987145692147702509552108537976392488388026926377253085667593229311998992658524996043052542495496052923463256173125677868798991845728293737540224446476724063117457410249199011738133165345054537756380307523253608930862861347333282004893736772815860748740072063728459436459418755382029396363363793906963563265144685817461536909412005684695042411979676796892290349285455617232276792128243437316820541113071439996932862133207075064225882404016774652332484339739853506511246080846978751620249788419173474003938286905142694784231458390320794017123598067966406326269460516791643887518841809328177303946574010031197486350894435268945554539740242591976280128985051013221862281320014698623179439282494448812008028078218528291543800132005423125543405025584662415795217133550198927281984741047401598630839379942496317088003571011397244136663566180259461627583038861604876503643995510436400125135540060854119457727369008272127943135641084419937876860077109381212676441698747150315772610690223898931741560320341040854074441522855953591487531792732123397483426517558062038847155438554064002278445807620714751391624714119882877596443618606838158910192083939460894802081783936831984307622316288033657156539188012264916989444549052476543546941141061084893303401277377953719140711858880669936643460098011490242027651416750194198344573160466315015139118299374693662066035114481913523123580124237220650095972469935641028329294801458056669163702986419270431810653452465407578426782520860737294804863377189207881395508351137849277988297495180703419409758901561591506554870407269421661504246636727217065149171644365808609156436412490876468847059936523273452726798826469858944591867283728341862565512309328879141841139991421130772953071368293355876424997696180276026992245110794415470759859197713993941833106311676871357346167414163033309563943854807846536240632277632471508503499643056579682719184699707057246719891605752095606325202039577565196141594289551112865781394832807891622724534951440414229577246139364195479188577178940335246564556415426852561097999741898355282862599688971999583516342143388749119296595641506132924598756367098008198249904570892936147156706893374239484722763390781473918479842626885682659837965359996561091622693470956545395607717917393097264284607107073017646567186718472313902029704585066441989400547780411102919079520444858506664176063133008715172277991870828511662594180719126815067039125503093715599880301524043820820858051078082615567063360927549020292677573290228509391162003797878950595032299539779930699997289799877885801456906183679088274344531789697743735519983357978576033880308100012413169789272558913322210594414108958613641229166027687313164975701356767965144738475859493667236949706542341718283322375736899604073915619635751224772233813215520297970315715792329459513898728637714516275583982302836749221705972552170750186022279807122335918229169990387157571476935181202982330721568539068501324967796271395613285722983655335967468962019656867050223473701946873253511623185645749787742353353528951455568853446450477924057342885702595088889287863849737660478386655610239970679268472361238048770763307239372325712168947687443870133484338428392728569497341624566232919696924560601508220752918702108725274880164795784018607815175379016324184673566596518297981939947529455174961882808924405435466021032676564802171591224455997541756111723211644532348581392075551527662364721706655267309602094731026110924698430540946157547554489605913707957798433659995665009228127134265580861006281814203399558466055391659544174275143115471496331571910795082433538942025547264300224479707251823735213110391988818682688884890809671947038780075593518781402018329271437660868502726987436227585488265342732242015883823233692276600635547070142894851752660087713258631938472337914426648258253536772715181482377632969315709937540960606492322329214667258455531639734854931412537683247952916230760267559372884492600199493748518486940700790460062303243165295456696302051375071293387225155364079951213107107192689099273443664032254725056060639607883372385098922859397810180683669544160456148630405780521014832375675141073709105772529910479839326602652101619290574687326166786537930260451161967115565581272853669914723014406309937246231938327822244632028836854170367351105466150847435446864921583156032240903312303458437809874027413223145916322752108293634589308217333049225205826211633206463887682819198000350727340140458903315538485908587250713549330705363230927144408408644517720532925978890986190504119495341466220494261181448727853264622085397807581148994063543450712358931873208317296856275917631809674758966906219716906108992111520736223720192618955426709763418981026159728862890260600964222108850256053244282852998535439109088887948623762332684039713364092171582826284051722050815770579962322103465762375940608937891713122701201996124597107260418247569485807978299617562182205196939701737965743273124586835616679700338416801178437364148000886622116122815236419484513139819528926068253706334842174935671908865171925483969370610849732135826384762592743052346043432622115406517134392866251037540188721139100025893497587775026069239601184369613681906582091203048577238838223124736843471463868523825338684030430919757965818713903279498118220117648181349940360367085595647931937652796782341097908133869086374246334555085833978146128661191580979017897298490561634468155352643996842976292189601921500409138614823066250278288609675218299998243041963848464782756156965352323560580626354918902892996618543116575840429915360792939842697559124031654707341502846403125869167976961948947338027237516353224652658913981344472132394578947796716805280982146378208099495307801029758123045195697417712506380765572164993770111042647341887882001153865820234267870938902753834424748995197794262714247886884983900771953154581898952062139382102710705276397012022094982060352920037107684392389113348241512075325923484986108400167014445013952006662310555593084598606663442455809634573583017424893790479635861860202358578093638043282682068410195717002854381395387471968276602377049880664681235924564901464414031459755439152005105659762659748641178467577643535875543247371970624788333418313819544500396667195412443960753325075205530948365366583374191374079144334879561732092469648231920055826826438510880416017573660541058308967405650932127063158954283142220055079013631777107165215715208662731765455911564807541861248856304527225389638144281792033660491179116858214758612447975192567041499991401669036411451598224536881350958151007379864390622054467942338089053324788684684348646758724719955637439946684954114971046575496923464660355469815915840983143061421099641390119752283029513705528913356877643123318708106481291932511456729145040726368754232958541367292738724586568200117370787583965148766449517008079973599850573088568256270865315055664438949062076397964512916419208770263800647474584530388311697862854013496300156595970148422995948133301655981380245597715587869958874421965521648200494858991483135940522630063061778802015780350540463644982399584628080683435695280717500413820327508738144014450440144222182053804686150309868482529501142431158779050710520947801030514487350443299727497925668912628316315545835295880274619993448179026326789280209798487872154618477246038937541430515272817953277313752370546057968165303195566728952874200150644529822924077428763325046284523166351081580667014951160480754575976568679515129049073612936755587860055981143833199150933930576439063769480970683580498280664193042570608982711028461133916431869041776990235054978815576909120980347059034264790474856101692253998476589429673046917234272205937066664119344047190093565932798594158012292454931438511108981248049541150741727605541464865816182147239238185362595152181338433102842003750825948238310500561373485386413991597645733551766920397858334254305787472808065328393709491720784264998893350598918195208881086566783898154115641391936494553599512808904426337168853004951251303307301386710541357608634459532660814841569170920997447429766175455971668155728355828965414654288329921099205990905509938136533230566092334378082549063919417631087699831383414536674316678931990273442619770313540899849293503219283281104834319126160147146618448658650460219899775027469922247927199362997962746520891762445810819437888527369668348692755764863216494626296232953327393462914722474993390885321129383367010845797577650255901851650876824842872317104478621162763655195827162669619378302888672702514530959096749405932660003173923988265656794953668722661679848019883834525860451868044625080585024392944393761865130652296350272138377568420642136914509481603812525407714242027288108667995451191614029217245676598613278456526570639582611281453626478812692991746450327093848938818039133711992660827674484955301106467925844990407676997083212529174230578754900901782759720852814617162900160118471933595579123149301107930493341306048847140348323461126152689423641744145985671971592714100544922565255547339019433202708795263060978882678157469940539690678284883450188897420782553946420579474451304935748005632748423050661518973079798237144685384698550488528330322106062032301622990870519145587015875226866630417426771725333207420392843580612794635322986166137906880605028122947087419181721302567737082116164076150601851421913293919534061195012554911103432058891484325333572757061442151110349554427995681379690051261971203275943342101885523726848933514785497487182691449993132531629444686955931825772018469550642008986965276834771350179400039839597445382228240795707154803635281368198706369572413311638740946208158234070086514950969054100139478122661616606511833238259988717755384701660058561242287748298086869274934312949687229567470035932116864148030023916878249827415259228774501707702012753482678727522502883171311534927151410974228557772606493231349201799247028422924455637489553444632114142757159541485015317224552852872493412836720141580755538779127393498283414317780724440027190281938179959793149247599430813403034890706694854508666566468347387320268446912756918525304602973728724304967712060822170122123372795690798149912132431636064156223887890581692707384426592404154464778898471717561813347530829994000222532177520174935951997541467394892769348487010304465649088811094438978140080535629509884286731494023893411540082367829814654873731426887996078800403630675539273662891935641678840462080308968271659479845657452844767335866947625830575625207128768659528471683483734000976762298112450346909044174251400992326619140895614343436818751959002445595246308511866523690137078495898595099227712814161616792463847317355904119402283723170025318828155554332122707777311430333521770226682081789493703702871792499578076783891731845200911559426729749044392630667124469089939355980110964769015536589197463984892559004643582293624523614096385143904995694488966567617637242059749962162638187730164097950235576110939494556875141867094172780981074683769422229904137887377890562180106438823137740739986583037237470082600069389026612610791858992035090351581077965609095357608650805985618704729441972620168763559145341787508148148806728484609692943187526502600794668823697950720256990157149728717056625815393139412643507166946173034941318010416683912569394401231726666507743941810346237238868700418066993341209122674100658044000740634330097998507845236964860245330821988356097993024336054748539707747983988604335556562070226191215553286928592639035947258027477535375077672755807274875924418315525046421011472987575638195975608356703965443812600792401573855313468013708035199879601892740640527588194879212356081874197210237064446936608583765278273782347193043670808884686583175824493736781326364972471628182567097642967628315119907654072044329391397743989300930967032557523196506623545441181756981487065478530353037472746499838691754026079631455156056106989716384230903745619008191387140940427479778587473633639401031457187050205081896157214568465009686385604791344715249432109263855764309685874273900447755678558242403627124138081950460159465398719594774458060035671146722502326755287771242952754819109361398311414950477164317392521658625474932586605183343264220465607439391578745474874370216948428883027423611427193683583618623042071906746646386617020950696620834558647432117828814951778356688738241881907459468446710149664011523595574737258043144546677108036220258301694959974228904006081218663339035128859244671940961505844713074929947790521096294265314730309080584752964934701126239986779008837726723486086170387661704530137963342813620554201098433013421261203358432145787201473388758992295402127285959080197469513471757142375050942873263039355753592565196990091995759927293350440206809519842208537049978673402213724763713194815003184797326596938252785803956292241445516788902634160779111909762742438880082925589205467226349903094535846029044552532509255010292678996477724125002657930078313710536839822817729497481392024438466605652986479408135477855931447281894046256996088428940339920694326654737715949722079727722664104028718506777282126411025173947534332938343564997780049409161464482234223146605094868567896370871986331625640287862488552217722287193796441370140231948137053223605670451118353119812213388148741315666816770187820671282237638330970864897822801535352120709881834922539692794540060115112611925562848995421000420867800819450554185836448389568945146900132670430584342603033107747279096968900658175573853580338028909627979553846654485551097546581714165796143150276008964680749658081429260499130481798790596749057581071495177842374409309856792829492491142094183867348403712391537788217808526841261679902217673628159874980922838416533467360838830327275682915619648580019818986149371227595943238731370115279372484654529566458497468400456905487399992327121727642536278442234522101403101198297854515915852553973937889993685899881948787286788211531515918343794888378430295618903387633389094446591232289561240131736923530576539368883025111354824422383652312735048440236591250821685634538846062700238604625977196958003947956975023721832611675567181476165569346826414081607682215510875683129685975638687462816833869568170011641525623812839409110717841424943789195429939602638816850954581082853428215966836235770952324903350057310755304388749734615812069613083501393036251697098991481559636050460564097926422503227811040731147191761732089616000564956313594118799457908272919767018090430055279675701527499575626922537471623856872347254043088107586961572832404971653918588187258005143679587759745263746856801893906931856938802038468248672405056090754621928588021224696978620721915135751060655874637329075218689018598133782113776677252969407908295973755441020544632626792999994663894802496285294748337319369570316252481648033998504320238830615646187461333387329072026334338211607874491620870254291263325987570833398192954023954579939060493149175127773700707199790712309058409354048297725137562354331613508452514543677378234380497858109146923251799083997716414546981352014586988668020117266693129874301662508441614047746583236078800146970627228279073135022728736486314757327769566457539745975875036135756718946016996669970156962765683590299948617488913586784451937591595312804995618941677016654337010337547041005512251566258655016525533750068110840650677432082730504527191190451207688948502460361402530442098169400278847615159637666840182144706625134794644998944423586552721262765086261099321749282431485706960142654226921309744733751161416314091334704960600233967073294061540110865514036559462835823113398232037818731399113227421822958290289682121757507463295600474710939368581039492734789687802587206191552970767574544466917437669385030012472170842416866797152467028556334580502191543949187385192569657536262310825514007818311537836276023641024598227644173846379931236789564099191547178115854832972831335419510210080590761651966331217699700053201579387619396874202467465569997685064959736304448152295186254754988787203748522070409908478295043990232302926601057426453494400500495828963289972578597345586252757522650715429357309529088595199757064801984257438525655969771332306840728220663640454828757638253227508872834694312126571139807492228917941210407593701007364968878693069910054228342999692263070219838441030662273056871987071802738026324474695784913677141325223199223919595419334526761721283937235582792571526985730268477755410418639870339209317552975283693814404495454608014002081583409697558864053984650443198003453232048532628477685133348454488500060058263614373179648358671805384964984903967350659898744049473565316032205767188418659994182239629383409158611828000205521766712387693226992683144401116380169403368888640051663039408447009220650880778037193141950960703793301333920514624464812045145864277650274703340754535295978087998575970644377441034652994514255387360972116291323736161857605019380244279652778754697527799441670875716550487062416362117243235992580046208766066875850183226060028742158347675439250237524298595598256727567599160425802235748647936110860728942556328674344381998090935978114833287830268538397898264238748569186335437369387847428815958027627224404737958490100827387309330584745063571566135001571274558506286880413231393480352216160661215727967051619117405756991174018065699194524929398473008645283102637620713544869808429334995814113025789830467845674433177194956321775021642108256863486106326617176690811077176500321443263922696290388471125726743557673789376256012204387287436260971044793887686245554032628023377730686926434425847273251285856142490458830568055403128593799903245929022014750847907229012203449882741766644597635956349383254317994385147565058241916186620665129444673553000623922532192059498527846316609324039803861265182545637537764949782016579803915433561595415178722572103341746323542598010483624301242529562974738871411426353679241380741480523890684414583408715067330189691783193026307142196369927632342195696862816781731779681882021722847697100351713597994460743396715211616501752846635607062892805246782879531332323393553389221166841523472622146626930818890165921178550588516946476054278124398759697988358851411543738843235742410142237293193787767415097827584611535592351426673895506890807886714590426973810667977189304565486263769574952591790908001614794490735878136528547307031138368999028899217607018491979670267608658090963779177163105984307958301319824179656902059454009671408605673933654326300986368524422283508109250502997082324112424852476786812615826596694377773913236405962776207345464112042513481169033081398645101052228593190853353991987556630392459620925967544538205941535383401645691353513393541246323519893410574708459104194756508189607588223538950570238272338494725866225101541356318753708703117060991857673571224764418655081346628166088106716385354399509875600932959539883200101662518717806299022243013491663856380655543583049865923146517417793947555304641119585609501235361139189663157603879207133594763447907636471741163085963697134841068060924537462940266306351823898038097536441803417722406887253186714812739613151389333563315968830853826312092747391648553123864927039749727171873192732501954721445164213782513535485857430025168955634979435791777665292125772657186096770331809506459890439770014809464134047850965744870823178119941492043265131428234175621961098094961349409107116065506939533083334479361067848703739675534972072160804569772651507885567100946981330774413450652649791469998291959522586430593899817324526134908445975758969233728450781870449123121928875608643736979267924945008970719117785981129966265881540722007266215777598947864467525153941261532639817384843032696109688891675519315842740571139758163164095651916761847965179142750361980006165935190914976574574977980502035986222132169895807602029138650274494712933662372993152629056038075524645948205077765908058439403433985458326284288268434308664607703181478332768065870537927755163862573581963441923642175759739912549611201623472631520749692286711911627133272307169410962510080770232598618177760878163160071583461870604364341779668837931875058968382939504532408619797834744647172008472686342962732150875065083173266069540506425651437661824466340470721104967873263613208774083384705699652890737549261483634464330397596694308600633684807592625986062684947929641037540426066476450397597298447173483170913714917750106740383690946570104073585104325802910333846645058848727404861972808537359117699982761017336884021044020041632269709957355707550231140634594573285874234336194893259569686170920428235922844941319327064971960079086685658710040132424446702628177042885918298934199957252698746505007898526770899989538496982675972097221012505823616022372479652225855533702286419732230527948245287674399755540992447449639927908052650433394594879133027289486043542673530495796731380822313089296075461811912780877647266279267955305246542303437315908589391765090895511381252344835019402289007598586155419022635302206513024090837173443285538746689535701777020795730068518099996504463107184430023378009831418135454277142871122425238850536400211884776024378906867257281685926243945860251071872869623113011929897984859301572644019378119037668756809835870118399069609008327078135197757046045801526971512661184516037871723630844100241323587439960424573116067615088805465166978647419715453702013824259911333327239645175292401806969270817340527502740195339544560079936354927189131452165872859868807356847263295399353805539519290143110896060331707362070236908177430610588786933862320495222762745642021209893951144078604272014779449213800724046840081800672855447604489721008207831164885565776031511434320802078853107679843528082329445983517955489768345365433779054585383611048195010049168132912163500631744534918680342276458767564979564863800695363574641439825446930864118383789000398058487921927605780251833234975178230334338774109534851182747647191988847417023929413703941403553700115215485545084985099163822404624961807297717213837183685861547136668426841571075309619117713465687125175420492683330413001586654237388367985537573437018386161847518851892357798037077696780014650718883411705189914234415145997060203534575879872870309803936026812118960167506422132848456080293175286766467920540567636899395448245240135985531723227624661926820042695329217159491842982353039195226163137862317418363705546607180621814421344594898780374838255847390263756409017882676697417592829301951039670531426101848129094963855787219278456954927702113502585895697832329146698479213592712684272900580448145344934069355412375223872054404937971370857049418857756094730167317696676155174117354134812979002323227408240227835753007490150655035454526499177339598579213157140702678565777091638983730191427289020284498537070840766483031565956595073601099006350327356304527180223772796508180384055788894583141601234945316082308200310814183836474981374948340548925614063899363890443700222238889361419591509277050215623592691364536483526960381591478223186100029216358455929904888245113124243114636561703553688398472967468240664638612580512960295381870306529121986186211524925266236618571793075664204949393418306923341032366030513849313520138894231717579698674357943780545414476139833691634764001858772274539040689455979332334035525994161742008151592970348571136901603129903336791883142512416156313233980953464873978642449104432286731441349616759565147521517451902572002811239660900967858709771105352277297761248998503893772739230533593776652745898373537112008449110942792295413974149626489681060417461696935961435302493062340830282908882642394790226010949984025023244964628891649389781730463270323819510059881766358539025453762030436239376458572312346194142106293182426995605104163857626819632301753428197810951387115543829349176787036856318345264857515976794401995282675016359636464828967945592008886347910183960339919390801112782676255138625491172043856989384593672061599346002031925587704984402841596573445906598342639311838771674374075454771677567657158471692605756946606724540691593854579008655128331384324502403004355524888065729206483037576616998088152472882738655705102312038591477266049440819380023062002754700048426209400089542208947265626074272544612664424637945817320320333705435095263176422616062575386949390086471539403903583463604444510756766051699722557714092080478571629584137824762146973235995610681406909320874868389981207102167631705418664578746728796231307993531473600502605024300940726443787747617436787979306393808967211509442682837474331144686477985138338537358828242735091831388094067971819973911767952585594789369452812880167160903951993763563086019090308767178754148780406192902628400170404071375031498292225975754102040571902535370787648661255856088258963422218336110242974677796775106072702399367018018271590473678525831425426917937093340778725975731081797948746069725163672306531900657068185557040642256016214509291313133779166678099487017064218814507412580921709095762210938090493395544379945454032618413061746034161566207957535063034036106152778169154604478755788771675977923797068375540253580811326706610243557444798795075584443280069655558485893310403118408058753085983249101777450592200565056658278779868171523955429541674610121285038082097750528733588481282310336866781409870058932487294327392327246071247570618175401873048855106150261722103194000665782855339553566450437997253495533243596511230961309911596581317088986969507193938443544017877712553956078061063260843992475564065166435418235544099815869290001839630978805705650357994751819940353176080153758525316510389543327847650598715637949355988729327420658678179668756385461659002870232550029912662901235652729432850284864394339696402400507764450077853181360905013427517403711346521812676161015174346091660496444651483897132065910097961487661510411097470620946366662616230660083899333704502331542006777134145094730322676750542356518095527198868481842949801451044637558039027185019160342712287997742496116533880363693625333764885793701034209832194676478723411213110709708467613303908883623174819233240942755324034432221952283894920691399046625170253326814334017229518272910984936043436910448269636272423707152719823322764985093241807496431179609101479517300191898406454083116391565395383257491061998783979195150603304972121776166879877074993589036667530048635749209955224107654811261417447470070468887778369384286343460905190219738272480214123858574232559908219132967388004969342734754376345725412871350484284446897429326718167417344067655887505529629505319348207940797293696670638754933477005728201367916478921188113512621823033529231394530190080339220665000542972852323116240406398639238121589338195172809716893733929111788633194984285333591772962590538438696574096758604315923168948520591890859271684312065241873012531974805074138196215011830637285722404221083081784186729521599934888884088823217700880712288106222866479921935491299894817345633818872315848441759889697782412296951524147965974096493800066629279055469767036976537066469345246649531463148286126448935530848358741507822095958889701800450357404323480976494385112642075152036455763916031482696716015537337812720768712199641589391563655099061890962492665725886498980664106445807809908474428631356460785135962259223097521630221506701476488950050259405131635671764345794019259278977207672360697580494924204382960625250229925984151414691025810422034919670167393482590428778949710649550139377949047415298719869477539883616108527453470482731718351647496521475840833827765959888869773016892070179799368272600603693501585438759584622470801580461585353054212585291724121396458200072852002313805515656540836426888432855990133763227641671045972724271495706693228897965824221807865910599194069186661952680688171250917199052626489091020102511685564489083775249796500311677561837827543925461045538732399852177717345329341539561305766069834452568012257295244741488702912244947711790807476092343152243310345742621480712317166134134779497136348796641363966981214222363237432497258327722692593555512942059357272878716088031428479205748805409529776499499381412457292285600706531374760456856768352842899234533574413583750903879233106839679628720498394837755653437962446763144009871873259430300793257222683901491198966068133894300007753793370785697001756304337411505199945080450885683328318320805868714669164773966593316699621569037776915774474190949314767637155766123108339818581960738641571420092615519505183203324175504215340470467561249696527743343949802200980353497788172711733604718605791213697276950405068604351260910704070831890479544084374253423411471937874713364773377941970000811820459385716459594850706334995959181494457106360338054073003614624672772035206152693268169248881049105545404554994982652169163521854209738678214463945271695299647438390807498825998038438182592435501499682412898080333846523990946229612942991007441721711894738836378513858240138951840562267666043310264002091271290651610936514215522617894187641649208435675947598765637062880725704330275382020052500815989797707316802026786333951582208141962698482190337151032521282092536957735797272898811102575438038262848589898131064062176935971180480244923943259137177685476962473572304353388236208831161003231775583845800250323379109955837189000632952260153245556994093069721418280789314230184477232233163763037031501613073035880213339014988084014817087531378233810224557400097562850519921566551380088870943164328128468792142213262401408001474658766220570859101748325551998572755923259500203364149601275593010848955242313482450931755992561831238201919111722028621077241675139835385764892312385528293609585299418389315382268646660153740443650857996806213266962273006575501904274212606293952714487260797543414705047939121939036836989478543167163414563529195723233281935977235688096326078085132666450054472422221242716685543830176229239155122474894656169396362152323417931269274772155739198004470964650435356125363637772895987162696305254124881599679851118010245152653063082427435935304016162206266358099816352276085001221968585185931542773783894111842617905481374507600561453482028901588128441932716955242349584203693095066542326138105232948314971542156338491912099766778704190404623638536312991561079977676595423245931633347157316819921103892733815753375769035060936375952990449809823930433282987379759086656259047933494735369596691523694975340516613370749128589153523453830615247824254532638543757541356446668931961117586065750550654729106003317384661168952351176324870706163665321017336900065594437838573708756232078950664460364429654553549098295095992971084102290254675082923316796026826168667750299392655987243605934105667347473813553867026618502240016341729314977787306340641504755730580638278070306148637937430868063758841743958566131526117415796010141574180090397309899552018251404514988787421417185565356331403535311775807949789384979008608088674902955597926934283090046118079320058653214743601161197630843567205883255124739209206996527328733031905111508565133338751475623347683516495611125227803929570866629947270952623036670698577148621599130454464924133898810229827441991981451166915810101764035442415147701537799678335410956735711703570805195263457355761239923856637188788343699430706450645894105506433941396888575863601389846897864416564331860151349553917629524218555761255085361386693169892599091166005926500616386440595194229848299845208849177533396770078410633603089520283281924816917049735683121491543085730530349629096311196743645404257921134198571588078234894400292261382002031159578929144170395018937530475746812303616353513837597668248622692893272505970309872358044553357774806182700736522101409213727330020156564984676002258953544155063487181902208847714482189084167613340228103578140357291158324530904647243639487583355800262262637588809241327794177740270152694592687552961440313879304987922029415393840748945775785234264339759565848106757614225278426862623956222492131216897926708035923591616115180386526510430011695421835483913692238635399343650785503648458160239891161230301871421826300707932754179529875831073642159121759860919156539449871732310219473011562741896499837817429029676017785042518767601064390222857489379254612108184887175325216152745331603033892355970684779752212796131694390898318202014485198567454250499034854854710468572429006353169403071333276530586303241556507139759558878363627642199935319215196617359743455649369385321172142985331730070984960080076233322049729061179075532102137036103185279382623388620268703616799052197381991340574093095554291372994219323961720298683111050915789282628247176540315440476435962197620284242524437312142260293187084301541055775112706657228374170331627816230847900518631499299105152847303372975417528425301954069771054785209538411451423813682321080757462701766063556337568787592989064281486653197168692487435436032703630389245977181550760724884577925726073324275228650667895856397012691133115738137469805652192778390118537095354276496932440745998610219887731977811371437378531164871288936286782906576765231190513278299825668529430095641688059611312872623385187931071157004046365039975379511199988917607915353684057195378245669077942173351188685690797297066764572701027536990550447721959355905617599625370091217268263287956986352004587986327790040472748445756719446626978157477859690849600485489528944479365647208961222101882288200331923983057567041963665924933685243007280447127987646089325337454623535718036486000886019294620371564275917340984394336492432309536948973742996736051810145922736001117477259470014704371510512681169255184574239758577912771281673611976212403348862902103229269574628252945515642635811238182272083825554465243155564889781606123661299617648137665352743690571203420048178981963127144029650123243879950595588265807007563262343859436174228288032413175036318235577010682681762604972821912093883010281257063766023099948743849773363115540819859391136950627655720004714623934637978753047900623831109932279061293310676922749448165314505298641642708185090450670123013968020076452814345492012048973117870739054226631116909791448085170826104650711045385904788197039450198047995423767829337197473818431706957022745421878349025246951379850813306367378323597899874209422684816633586475801853606360882524360562274331199325995652828711380669407527914772274653142977107431405153749685159534646441041064892357034352234256570005058073719626918282494449984161538676798542769090488241171606850115550300887490173430359692236615076567751611189604614255340461522406111665143372380391713278440428068495475374166984297093516431839804919328147520892754046438955283383939054357996341001503916752103684062062775994518506023035445013073150937258525076853646915759007367083655347088895670089509972436014971334213589595685143206275295302207984448363966061768343332162180230918311576771726780538408765356744314906953420634160170007475154147843688713102845051763965681387124974591623235420635073428056067995076502982070275847981304889117910868546144543537631920032364266392569704268073226010439523395322450167960279477577536516468405694225281209547562108250428150811429640784497577082940707990573797851473953961281022697370736257403979838716232669923825374516626073606117234894333088507588684149350458751469418405951159207640095103643968494583139946875107161743028288407999339968127680447094093650367880440715771840095337135137120703337399807530384398104026822877224662285412426527540450236013060831069163841395708643200899635382619743183197606457077679632777075885078648935901147783240511091840385675196004080328976945701165174269988981557982246334977282453691060714586268538740907125794669034972990867127439934736048255177229839719062281402211133608352041837332833579176971691258061098138335248417141694448717793030702440151438329740875414184746855053057835024978979741853565866520986566719082643930570319949800028831093757767562198215543381508337578558518397906406032513443557437403945480184669657747620647647529030268063652231233511744319012649506824927712882306996557573385955257532556890321095587394200545712636976592920030453004648907397451670437367657538135664231026001226962106372453253558402067984844068083891664006102614551353178130249130427370915251586390263317845118489648129959702633883868922292686621631501669111139452331807709870671044521106327751551810594606151281550902700690594414105664396834729016237440657734196840686971188332273259072159873458034234419601174520077214033425605909524647524135185802955759047917986939803832587927063430560672788727221919332908123990623117130481484489368405347685328929797993210731497443040645620434998824028142749093741913808910198563605465322979545390137670677418055906928785761026866717728379901523371046239857581327657321247231511062195191056146125685881914679808054988514040505291043307728263728725833023389292530520685031588491214947269918447171485738582672780810624977716872199027743547182955055416789675714783668486512900616687457807807131741837285188313832134886487219086690033497699476735985605111885657378182736403133686084007604859481029395339686110206417463369374197472563956740085999925470823607376360737873645963022231568801137003760581536158108084598095232512523117557086872255259625808031744785618947886346767509680399477866557397251982052269928420271923916449713489501385305876618627597385652419699022699970107250434776890608789036412289989887104499036973538813461659076483828044172137545917495102333865094085450969257226736592807886740666955149709879198780160695500632943904939984819445538925399426349808119199063450665636393567967093230502941537411533736663805693330847025508520189361880757702255239327414250524636362039038842308022985894565612140103584768396412085587651369118864420975593561845631825555169770181263630353209113046858550405075306534000402899546326115975069478763328592823105549989671850816848609155931583610671557873554838055826558180804165122359235311599910986590998923144632522100990794490567069308349658630110110195702928903675667392509870315702879741157962387085037848463090748682336077991247493709868337584298287034776796757345007398205316032520440825002006413570769223725290816706831702951669542698342014253786664806384639046411964630559237832827503914346592894337725532617587719346715077226721137512287047736644331299380540053172285343316290230143500523369313360623014012488749962821978454743484438557743935303222013087341422092426818656739326753083387599214801650929230351656643518864663319154555473674486619937102245796842630802154911816227146627574816222433697620479265721528443983716463225788382938833950473170051447796551286528781607348712772833364922938420456967465197621971809928951037095641524698303698414369142442790553720428877456664770245071921118113138695681343985538539580030084817635385900054700448228982816067550820354385408667577673499364232553923301560150716227068320000620900767748909345059295295831170695332091821207584212136001135767024970264339367698557521961199474927440375171559705496414668014363211448395755217233492018186172324109102423325740423872560707503889224903221156699931484516318583452927333269019791014710702152754226785957618204098776430676730534704647212102318510806615523185009263216901819670886370774787628720492817144366961543258105702666413723178303579147345263997358933690306710272226695645298814885972529459905582138134697033450478460901567538336050473819450667127907136451758044960300518866276790760104297990885224161617390725016380525884187489317375958730598279667681779512816683356920963639936864389369220673128792426947895581055202687901793373744799419435087914463694839617233495842125113685585511789781780089126698998502151359165838970087833328613893516214647477369900701487913523137887952137766498338851034078165995991572352547845788072369314791566427889363844439307746027198567511095027847039920927153460971819373859627118824367034007524597637665310811703848935385753443717214419513108415947558034950721028622880261116769924488614708349633763825770811604871380077061915795403440018304684347844369721011597126332348124190469322589079948972905883105003971448334045162071111697548514303460776384641416266765812015784439118379665185779661328502779218766544897072501489795528049508689393629220448000234074739660149812832197080042082758695737044715601883450441419418902893529234840260536445703354767326671955040660589460024948859445357669896316848372947109181675925157591374416833091329600914714201507757098237981068834343665377460235445132393430007626069757895061400771644712983043814403529131880863082096334667730749264205633948441450814623294605248217281610305620462076051003920252591381295422623039856923475417277420042018353062278161396133561706071297776598892432111791366670184681482071999417853184612485480757378749674296845971761045526290103728226874410202773232852812941337103205140256020773663572194139049225489912646393664978647400181165432194648346009409996094863975263792697382454215896054586637451352151860802418901342572865063006337843594499339069157642562134886983617458919456833688571712633493368635370014349548967803252305038390632018436045809542680652365231068126693305587746311873709772081785058501833573569679304099030661571342291654389833087863930271537940647267124355846650640842511268546738629314041469636059631791979017661632226903088278567180655686015305401378726525357999894517226262081657743186188550297959002528897221298551126894154447532791264096682644653019516776452661798000192098583297679073816437289528931974649695915300088463954344139064070501688744104514426102131485210046929633142977323456549966414269689427204918578510958365574474388682802961087172326343395289169392836302139914005138736262081677865753366012523605151892607474078455047444263293778779882956738887791305575575662668731569367782777049527077260733553550077471059422892991649675099573899738828677035999929080240403581600354775495479999127624654373097711811194107377463029694801681677305034909646422516826939139200641896781009002082866590909790079443323673768141204634508697327277537548464536883300183925900402141085086523000561229158626258894027812472863918720079100717207491058787561309732787759049238161276869557105983177796251027132470285907142294324807233519743158120369568386485467059536473501370806402041521874502513866073925466275895382635075931292705143776080589814098740999685353124289701127603127070896966591191640738327275431556143175776384330755524818884237179832527813271845533624473344351227658384894587849831001956989467822191177124522430574013695664563304596289105303781701312463455895952299662255065140268779356706722580394302943869372770777526673457570384817006736341831640305920177802505444876660293998702870210835835473791992734715101946830810929768314383506787035670741916743763831591313269061885161448086304184254740768965962637774068448807819195008206375878177437098448980465706956219636338480937395326995517006801199168072709982497618456021950817562231108705214067077233208297738088413443187360548431575318880761998803601486574403872167258643069549864799508926352379667110993650481228304250032941046730074804614585520132729939909494173482962995835303496577407050462503680350843053358503676984684459579384965754119323721742653455297861358697020341337747897864711836844785748875694978049808839879053273144628002988001664578431469410739970640783902724038416275447893121254695748886518020867135024152497508751237867058199544994453182403760009752541083274142059789926048219640517362956149551245768995743965049093352307161614361650305066813688917184062486042239245204810706464649179646635101858893708225498187011703522279261539576705280332061957433934597570958855266887977117511756426303123424454741836160222275402163267734823885486424685823447261834003039967426818997553556886900456623327381359910826176164814687591064396510242143624590671022400732602198017586576390096223574258116224795298486880547017046191993680206624054684153399826964375958949650809971443997019907946632490255529267798419202726497681939056472445127900480238954794668510957703807885318684783292242131534855694560619742073045257755602885620966802281261216759970947936314747994471358976387647029810502233722274948504554168452630252217800123379973993828592880245817680101689631787011184086122709920230821483158114925880523312755917873527734814386678351407353140510416500302190892021375328425414085578568400238821374335871546553813034624877230854725671980726340881216032116417640318608543220228964185922130845271669069907345429327253241379835912628088316383833926646798139312081007473243230546229550735995534533087478021282915173824525378007372054219679939153745980325677148674947250124896631783612917515186758351217405282885848441015406933601321636150010761293109408865414820502708462373254890873934343970281066240964557516522413462866514542286664763911419907767347909443614885258664290319562649743572064209013832775685454980122705178947897564665033577887498304679373294998536423724491216203619413444544197786511689102322254920598445765572749758026748331608585040822575137490635313644235098158713684557067106731722318857708374024611264402029015017344751674115685526126529545296864179601917825847226102669265469390954226373007946768932462148041646967402817641468933303554920003909834741705732728153489709323446387326720491069033606181231525335521017109147125453786168620903327233419169704674367476072610171475379436810108232327959145218939871413604638830743248700418022624834093029032575577237157754703452752166348931816526891359286843912566759051219749605133938946491292699231717938951169903745734280165347239130934573632894417847148150139799375466036332852347622234294403067433395732724487928851840229693003775964953025591309337919563672963841615761951856150548966370759528069221911997952164970414707847669841532301382254311785226718994433462650457795511035971375567171141872417074603508335748826990061824540971731550456301750656769788667866340318085379705657116020261812910619434848381099713471778198417420814271855156173110584884094604056616893335310664473648368629107995709025345947357414062094989691642987491354052603222255263713127159119188947325900489497894225238687560342443668834851488527038620560767073390623955582547042789615826555299334464819378200788824133037019485044867178215620714739317585629943405082878483413135211477437968559756992057070133067242290228606958599997967711020819163699647906703848178085705084978233069513977167100783346686665989799537273813644285631829192845269442358863921917978322384065751883740373194901953237447421364004523848593328080548727065213578344139293753020892311195668276341424878651416732704834274458417933295018687018765533689319128871055876898834446144113428447078355374759541544632887317289566968661059331558235096074703460538120382027541809827261402687858615901595151335556909344475626883504718030812532778444449991367095506689712346867326800612321201256186946845530648852808173613682418152612125486686061255071860770134469542718119059703259405665664326838027905634165316019476042967392109804456170075620024125440313479576775891320400139777996712461492019150269370937032073428599878597001292880711377721873773397322571040763325283302153957537374000196882045251768166086661456009947526270034633776978120914928302711579815912160492459157492616373082487285273653844104404303067168023866215683640759961441705593883842662690556192440917476029509095339241850231330014872186565227687058199416913188637404489100690651784765226776726397651276807781198606099218711896230758126999111265491462665847725320139865787244969459688823575218785317309177470183269390456908548566454538464210157069686134056261921498450932576860194995941036760048019336925842467943320637786512243190065129889827248168028645891250475238588134775636712753656637428914355240911967140620577994355611826716306616695474571675869120511228762454119760925763924326590810258347474647951154507657343547160424010009394646664428093104915958303829062936019438983276504152459701784265832543891460101243048930154292549502448177240199956555264151027532510413404747435105042730558231324284484516679742884666555913864727477449393815962407189687972465669575635475247673581901466427928727373051267146008629184363242498387059434350873317408485735576949872150263859531164476605129552311022036598305869722005301788725717164464553185647654365877513742979318083030155411238641094296788656008143026098754332418421816232841658867167240643639124471954764385495404945781262725295214795484053593229650842765119027274287055290365494110797757366224620876897846991333235774496618778474052562768346863700521930476428187457396997593885916278292247157793140726182303859264961775430536282818309195276102658157580862392899574001644369873757939975783799446042465205816619699700868387212528040576768212929899090360831144562332326312766491602208120820582973722781071905728830281773192437487221592434280249438745491500176209311861335256852872984649486764396263962243051726863751234561947005901130524742183778276281615850505521762279170363577689055633730549910504165850865935867568945204616347642425775266753113250848731916658077023983585815947320271104762582620746088029915672157098530825981562514641350444917660299355050897929478602215871538231830051791173081175965317245051923041736670987848468856558148620614354507976125832220837006583977143768615059788568174710188350262671358305730584674717152736140502286591868949329524185195987607257947167031464004608205497770609501632386528771220645989103976208034639300586535447668499526175336330330584659218135285901151121337337084945642141096155413616053872911401979976151956706473272382618929771360867567159751673695706056551561553177351238144118545280878605780510451299538022248834363837226538042291979611199479587506601560288570640414275081671875130150686609494001690572555659779734033244096514198160820471066844455075672675198828295922609317167836773465417958660274895030307955247888152571877509605321992065869549129828317193572415937563102830051845728191295271886312231877605760409288337330939093706817250608468246857606054012741483380814592676923344571386962609347123516005399606032979378782703570757524827709352373553395427092384606204129359115699224920474008834804761203551423255713448540335831142933999683197406249267535395595459882774964510531152058490136949829233409824862652749505118241137297616111046896241527576933198293073688647774574277144507097058651828962460605911723144699619949291555697684325791864970315696056634371608139740278803570457915862605493266627608364402583709706894807507513868399889782991055429574236594495585656705016719809479439873222266495438907162247026350457140090707368290773505037982720027615732198749258891446865084620997619289446907859338349396061587234484976109166669587603338225222412332853395141347326005598491398027107375447509314629374937488994621165014475365678021747527429791700104875634191409081042895108182862552751281064748856562996398404498216221987181664107775333848618781501058007111966965395078937296883638533532110386342115375046679005552195713451646848313827834379071737260055006742025738399913123968353631687495944530842180237754969793894262681620627078672278054731777798864957042182562337811856414790892528572389477495716423678618996505291244562169836545029351224638502866858430449140843506063532544884698922533522059102191908583068258730126035622431899113132235066007542484388384338398206909116853526902206596646981833935645711987557053411671603261528482392703231036513686541625440882940799613432530289727854743906164876523002646589300435180886957004969965985239658423986683867164074883942161552034606213967493196985177506816081388880146006706171411421302375949443465619983179632601429172187672985932428377882911790602399548745613953881253037746623752190067968786455497145064628149803601707099581070862926575244436185304755271469186290698336008286978973427426845218497027120689670532275398130559739660447719205624347119971527037831657011101199071216297035456300480803429496521469058703715214483233802385874132594629992579593075237167367846347762869020606169884371927814142591973288717033719242706421497365233850160566976564787571043699655450893066548587894386854314747200386073962001236276787621782166328824943075390329357833499775526391110413945075206124619163881977617179255772943203695759548571926876420191298306460406970232340822387097357789186828764660316949920662878522591323775154138799541114208278798344785272848113446885066632267505356873257661037371620436657505086925971245768699439427041119964769183335629220050419515504441901928724949781120896396415632771476448093037818146167776585700796707216481784548044591985372644705012537973572120542637342236174007094749244844236365211634915951784367202847218910767835669502011606832519876678343814560768349493653492010712400881351375519694402423675921471208067534940992509634665506387037508229636633191397706079444973909643227895309175037224698857464433686718910921078139366068479173856471423207611232900584715879098620177409817785563047549347503772608404903269037690461039490008955865721083428919041809679117407946663071143601478594440163920309663168925077539504057126465961139258932908804598501252347243315502567434445283768977907772257596260933137532161137492394829146078587568772203556154260434621768641492240760190422235073818121604723818656054710935201784976905177726997082894739700420329898899269587880855169470182453137586733740285451069986377176460789951317582489124613322456141716812584783687661998548329978985527991851689773527239792891423176287076519504473595527282620077455436753071681318244114403826171695904108593171456374337751558451109850300094415319259579770229428254132316423072460512563652672340399830392043569381945373191971362980983741089726345980253487466141842842782134240116764075800579287665852259642965812049615466742388160807990306668378685587747453648311457547822190220023207541911845006431376723335866626714847207082205855425975070798008111709357361929335423159915691166243179559320050719044554565128939229153789799210385688804340578346725505076389332740693348587099143566140375349097516799532048089519371989736460342292764239018268850330468013215720520560644780119082298919642363901110488409419494646716103251756694357498806945937499345678689136141077108001361289904025613100169579441909074856629444816659977116061075505296112174356729380415445973629744597450862408992170453104143358519320084086159807419662129024312402539332121904355605720639821468961520773537308511600583496706860282499854522700031111225796239108519181546870288624732774436578548644044702383764109456618015488685225301711941422721671191797616007053602511841094093167760912585213935308615450762543383757375808802497225023507009069637220725939470491371635954418389383606852523590397516777484928418120831461230837336981942543566576038781553864550235556830352464482622319750971013530013174593132633211246368956604005364987647524453705982369069001225204705844203137649170912293657962628329771764042573951666461931090033377991496127588422452562861972879255044849067864791663185149126768954220854798364454529151354365232944203119991764076819681800423638315753234875797183617543572791010983541202064032918432158213910268011268709181974546490823410637641865201717541189475454177052596088775213397560824354980586914648359039297933784692354951199865888238605009008293024370983927459910438825086043396976353584367973728371018290263197621140787582232887161264399404938013864831437869433969932046373991350622099060028076743065295724901630706147620019627973664459956536241975310375031992793420599322550274366466244704356281519474453413325871293830294634876793806053166223150281025192998098099854168462108589192039651694971192183138805724741906481675649527866561697818357402306263026831933071613683364575585619468116571327693063672336994599339581548667310092951884901310404913107260404726345809089333016142227885780649887759659776296162286146070749316796205122812099664978974429909898524709702113990330623347401952868688974242019498546247535568860498284960130828263695425407813455304343303058692312190386448718754628647356381277127400446362196963464147256169050954742237879754808880481157514355453714569292636991147119889413179525030370349020556295265139764396436221611396150501529527038919034842239677092669806944640333309028675524750318960342679531552522526490954597708605906357455613994705507270129375962946835073707507937747524236273904804615769473544006996256541380425520010359942828536505500393793931814677840567310615283604869521471341564708244461388390664823690410998109698005878499895810121159152228291540304548489085033329352885547060796063118418110078705978169192108443571089711799169869654319139995588749608047949638334685336285141056337794382512538215089062437314671486125132861366128343149039290084768848203609584775298577971415612067320310392140579716754444397757323613836016965941381067358675053521843829884443161713020932738266310707253251442951253203799969480889142169915946968587180743232552507320985812213515094633190014706181803975588480894091660221021249797586968637295915110859277767498399915191358937104631907221440110595335119042535823108517884714412663578670200795259315797474009384211168482015187367652636982034037182827807084916350473321552911006889457374208800892250055230375347245930787211563814859365847047172151030510216465054529390282226293472720179944668207488071768773695080659471525087219679123317491333674981133487048454221824025715690996641253707755122606172548287206402788124944941079573033753609007870029240497366639413623414444544146652308850620722763280962348260057173789210195063141665459348500897755498096594260144668587578545870188014523379424153590848443045735365072734073518032038539963116334820410286921629712655537933952488502250749735503514778282710520637754260626038385631315771709120030671231835983199169902524532168887705494886580049795256990565909030436356377724104191067646921178327417608144907167193350455001472379185810681558319990534321824467009867405933180939803310431003037799787409538907403737176674053492999906533026358663333716223837804546200501613572277600491477418554172602933177767679480825818811628276580779650902056141988472058887440922110810973988228802646254724890205687786874464533622964009287321326313464348254315774052758653394791070693013721392912482066341833953296155987441209665065148524628370679283333175490145258140489514800493168295332935236854224700519983868570891208880149958934247981122734800771479823535386595743106570428754083204658338488495424507352598051337238942575131713221999881116975070235411426734418685175917139684301576124151473013497720712430209885654649360117994639890824154208065037599706464048561542619247308824887998606314534982675440946829810266737613790125629274160349568328667476742799995460311300898479088528591950277098363644658451223635782671765834645955338715933414699018999047446155888315277875703082807903648636490832472143202945720655089432490167253752167274935822749739695304525472961149416508843264281395228492346537065541210361415325900959019840509316101326272118751619938298685091418383232099928596927738989105786061315772007010269685206810862615455692271120264659620738799267651367572263030900704831476300367750718356587349672688257350312045199218867237468481162809212902921062538174856770371150254542550610440293805503120306355672003136328108365389009804787022537219941241412838576052775374388433868328602187432953881434796071608635392815508193543720866606805099842144580886879989217935967892563427120049732212831798746268376259662962963697502172756393794284136133465064999716659886613729267829437808163406336161890154464843405884646073050710025092363931263328053407020575339858533637358911247417069504195138173895455526337536153249494046172767298711537143556325875486822929864526331014320895994793939118693379054933941555484649120808644365196467071443942485488335486758863902357081140975420483121755375066681737570198645012204413025322885691367351405177019547324425999729375624101859833698309222022771855546045751279614837201995706846739782947106008255745911359971620009591634879823052574527965683723520729944984550040217664766650623620529936183122796711925115131606886647838471483000533841056638321692144366689560557326352812841912584106946160088608496754234323548613867337703952547088273847293979614591552799669183210646216595630837983678208455407645242630774946662399192045621831409431459920857963393372677358380326800629279295586695196245630131965309026976778746823655750280154682594757628896548705668121077981115911608911880336964107323072428666457603538341714946427554057551395259241756710242876211835147905937398542027489798007545208568282684656923870902921263474930718365051097336636669127721974420013932033336092225424902450314869217831729617207771058333124143153710595303316438432638007494747269977758332219655306911797735159406749380747110459300173248211573357453310314214396011173484506668509418124390023013460613892519516110495767530044637953405709565157491739131063857112804093205478142530834827618818283410199597854907426985100498982635593434930504688489249146444923621944133601075446649574569390629196278599018112311499351006966330710607174005450304810951306861776624917584566979778700517161638005314372361879504828944643411244595990127274772639003441573547442477250404997707384023839333562786336603688529185801989112375928943061241287061262322910555624218325219249123911135788211352251308219002441396836485720871160072327369275962756765891859716893076806104091985827269035619624515417040136061594679939902608386888836163136070753544870025766295004440983206886003025268677511075223385381360433038583888987525800376507875605901033538387120068423278306618812428103644647168089967880591082271881932584794606755839024708789614848248297620757372939411655910995372016199490726815009016672144776381217681648924586287413409899588256866369884235243929975749025385245841231072689258607469713175138575473045095639965724830450816900487681940223114646091320775421603954460126721687375649012322887477932530130863566317460277260779034848998787818875212587036601863363248310960325683487842994235824832875343690663501864489512687620039902895017427272901978853396497769314528230897238699708222882996006432636824231003476494536181171366280207676649551217134063067484994938258794918562408365524403517241868177323134399733639872996538088210529187512691194788697484757999145381441213238389281409765473839862923813966460811401685660533280201063788051099005740360964063928286433494152772033632787099871083698123709160604422036283483483208187113141581412340566205772522913132481844079071601322081084953864947970082120134416361738313605524356145474041240298727539913451350225554370816776731778820700808650631217105083152760110324377985347381473183955688440172501805583581509769064786135982143384613409606041718431384393472588389909311108527415432208413984737110530827181383364725249869868801974866079549787875737518246454552609319608207478940062880403215382570823773066699727336038443196503471153841798144939310918303191273568668626782053510029715034865629467284758363425583110299105595725522168233974802959156909246531513247407901245734021904565746560468412389998277528416038728724729601321148815484960692411105811568104172959855108576979201016528532290443222960965908746983443915495905907381958600693217680462620847945355042171335084452671472935044438950579396365822476409795889019784529908009405293454600187674669886181520047711609393847763726481811476871309085772379966854303361796791827204824349510403800141177475759792243829046314609275487258046913539773146214126758644156190924021634505782581597052259387360447821293881253013522005772553624933993374472287036126508041506700171433567177568199369296465823863633476585439282272613415720673859084215926718893065723325451613479622256793453265238921317383047923261304107178036207742416777377953583607994934544976985618546656709800923034322216783860456608569187537292044244357370281894824186654489130719536085772727953465200709524479112290698298454213513841145814093769854015448901556857229785212959654728851417326023488445931864953797375336659811611700480809834932106123361385003853901226154257960372845374648785067371022909017982837930003257610778351404766437936477430977241442081708799061987173930431197141532919210065586470558786483246220130396532088823143992002562689841284824679406697079549752184611252637006921554656627023712134148931516015189815949633850179803391875231735249097731941275668567979108802398839866138582593834576966307077116248982649266527462567023623628525590700798535078260297300181861619822015525645597536137328568924937001360184672603390840034135066899173957566654378864368241433511056962520452166434799580988605973142876530159526517981840161008420663985460318435997018300881398813506842236029690288098082482817152270786473136686484643938535886089026745880796477585504924141650476271514996812639223329556576101228746670763434441500554241430049702645693686085747494130647428115207899488075600011143073260012477525538337751631637271064126177954893130203901114014266732819863802781901688732388071307326857424192868478579805765388599434367492187080635837696141017822341481703958652107165618074335182090996597549641934205640581284823564964327655276572450428266437935598291700424019058997392034218517352149512968685634070298162386550018746775770481704820936886331352733675378486919177581951785187274919297050094982927835168764773095557287589900998903753671188693255105507645752862012459531190158965774459874730260320104100300187863661494996584181763346923717948767461092191628944803317839749567267436895082535269619195062899571051999425304278061245396157482121268507520029939629352349445103451200338128241082710434508462517870853595388849333401665778673374586114763183318653618684945451325643698458089250561162884217760299975053327340646436711893691553164633626229227035503101598977561096209556822050349106518784039445011907682692423720268637047324367573644338409267727371435828572651108354657889205703459236924339581230767789471992598053846149832437327066484658287771304835212804923489886481244523132856096177849875971363367912636067543661586979019655666274826892594866638749461038460348708379537431028820246382418541092359806305402842728954871247513470823323264896575192157796328161225346942061926220343899278229276823803165054519670330128043076214680952864465792299777985951599901963371209263668391608211045282189129981889258782960382000627658693312972834226103547355132544428274914202311820265480986353142774550685044965716913207222545067525903742671464414086266794644036968824447487849351097681542250043355827131676154148916191936487254861031233713812378557218424694243636100817691776428941079009034081115316971729660332695938728455895286143689830363086749906789493939114721574816507331482977834395660092810219285683984378170135889438230429856971335811160971875043399102557945967115571804972876017149430386421207593647465186368627834447408431783185099357842378147874830903816021319430070832533812526511964252727305989640463556934051595959114457160837901991895653419341949029978644607941478589524926672924028980215122036117202090689257544594489188303741658667307782511124116942598836949210818640780327930142061448792767943543073440335682755985183038714852028036165480419505192462351945968083428615117472193717781532184933969664250819292697916814070281590123760387305364674309062183206264554720577932052541049072708962791021091098279104470164625853330715263422677726030715325093775602649558637303790441486385672137642009222094144334202143542350371308837318417790333481329694525877552988348116852592580964309556814832457033317161304678073691481659223057594454923075959640886776375107563563546036416704210769903492814261212310068538180481844060715705369964520386264451524489263925044879679046435632116911202078520640426773230634387358771524838522035802444390327328526229992540624399750150923944879017349242175097196342928625942174307742830595337722227199179757415767215679684208475633367237175736231065336050460629109442695507377539858530963989624751366745657830092177772390694303661125128131308572135225113719612742073584027866680727987876355901029581310028646609865846127059884735257504507302411615978792261781684803682744865312044636840497229745434831692103571283681180488956329695453038333339008334437493356635967453912751088481043296327903573222497001649693103844550411898024104120461700125448866629428135698429749335422327481801107043970073885463811338010700224565084530232634165960443647699076054472360292589716894237422419871603577151214280802440380113800088711278855800226567448383693249149633829739303655782306737381809175251348867005584683653204600526577464478340925223180948929432037913227562070446344180327764631209547910497613287024701239634880632535968049446718862489910990716232738461152089942499614878210003879511983829043946109651508606619159270608125882495357076728525054012790814599540597350234163708720273263312800164215292638520430255056475487262655089799066824545761519861962219334032709868016041589356923022693182732748938697749694550904032428325720114144643938743357380352559996157619936379571184204040661641296444363856220197645678531670618622226979647485072931633787935012236933992486124506833206873263957542968984774721367387654054081998749445562267942211348664708803498936269741591067887284625685267433762720525083941023915813800645874210264725222966154019035524083803707941180956612734573614093195877689629926045789676789756600230625543813595743424403825375439166907008928766379371342138588246276433145613171499210763173137998080498087539644245417900569045775168358866518560426481187810828387785357662150904795500424683522035405794977790820850728324366664039017498334870334153004237804604617948578654309043903608853059925100505309567089325304911551518606269986040113509614411630320037143309973572936296139971392241853144095668153498036121894582096477382835530932189979898534081864159743595185150872487042888109165426933756868112321627320769360365483181636442093009645749031854757554432027238818493085296578459999430129534925888476433423205768760784525378871950135670959268352453542509011820923090839509322028622213431494959432283900047111325052439310587980432865792150927340465617298863649202386367479624567676535024963629137835981936112978698912228115016428165436990283367353267482350198602520059959015221223945614478911912111806585562464953121462833270027368173198590416191940678908558098184042569582960907582078317288947032206746614110028615477526159692888952693257831492972489750530385106095447170511678818173600721644673010274896134555172531051747374297660879920487493492554644051651054221096881398466990590933632177564304179403136305981124178813785419263498250548757082830853428147015499195734879959349278572393512741787731135430593436594820631837251822254338688193866442052419730955176342665112251039376822726052418725204691599312658690358221120784403519315860076566480693739169301460286531965553032688253120183914976847588018432475032697596040814414553342919202826260170318856892279999600922203837196424380817027539048420506256652221266803256907910205194857669052171816627406594840980845228056291700994190112023668807446931447216146041454372905844681550081281207450474728000944904210468437044574814891470691053484193879600947243039619155611760961215791759859897875823259094642384423296510855152179525094644069607031515954796359101421410202449733916973295198798195335884873085994043766785579882459833876351779938897145139377636852443585415363975319870867299590712954415952203502026597951174459186293677103430031930469250872005261829728054986218501578044606168449357675244738661983435799903539429009460221358290416843285059210580028037737437050517551614636699239754131749291139782662104940536545066905916232083715750366636940187926217777675070324266028562893720741031362285341610699314956097992672542316786565351789965367955124970259294938410606322709608039454071220594755472971048300669357703271174796021147984480320795586822405610110805448860256926887448463877608251597445562439322049372478275513725108964202525749947594221032265372897130819062771309512330058110342954621823128274254333754834767344890740679896025513981592919250744640105766572003574587084259295158800725635744350031769058874110736397109160434361048326130692963256898644657902257274986478973992117069260872439081807799155803912161681495025666490761085967263489016513581930200033890705138123936989235623780284807533609757823385312369383886042961072564310233395498984621683925016298654342258319879387243242745446411225360829977807553396859979340946931521947356656971362879028535473300356486634453739989415195304508163356201499138950479654125899914038946145941563701277614881185384836444185987116703353737435628580336333239890547877866580070377292385263010723417049061609476091334103929501564491820290782403187219960903742749368598827569255888607572974709600449515177782144864823978741755540592161878726499346828857277610863243541224595031414727324636030949583998390024192549078384924682129830288433019519229396091466989774552294366692255605315232887013141859621691623070492853713369413307284706172917306790795898134699975594373775019644926016355567408736930974388165577404437719267472172424801420543485216556811271209943844074584739634413459581391164374034876305988946512749927145536605334010039306849263783738116359926961043065847974461187589904226293298648268898367554723177944498889207309185734777167759152946195378140956121280884694312723578236174923029792200627662518180777457187194641323435832233170403143487271455134650981129741935151136990476540798673599663577774278593812533757593803090774695214007778244476972851268401900691954912230063860660205713252700704036846813061539285147826250830384667819985462360132128551098751516245584650075363679860540201021279260397063483960564101353155867220502362869547347608597002959266609939493336886953213035827017060681263973583063404473167101920944887149754029094727256851866892584839416082750352340265957944746107767997876083453809389076639658551567107254554828300030093306268218689842301644730993316380651669465831515072587411131091419280378959607866858573326051738997251209322326240462318306176952786200198232741854662012329951115287397639295037894809654757314937755825987515386380823001603297730510005766611414939901456073392035907253663017777174561909924410916618856547395827246727722916303603184268987250076232880137801872667891137200818124511929550790234552475267312122736670230176539753981476865352970032041542393950851581118546467527614084978283212952153532321608136457120949916502694503919603648957394712954910070647056404169726822831388537737367746111492358741894825154187386047445734601187628071059663124267259427337284339221739771922269934832182477998391831528600418891466987189294365633171665100528184963904000831929044141021057220974483780303014809516968956238463968666958821026151321104046551051502180135143128389125369834375937120649110139671994525682020042327980876080336039580322730900612832960813315232979436783265554755772400505498408946296830160794687743299021365793677553693233948238781209066683000683570108195902304135817921903026161688477053812918361649288014062128356551213902830135535050385116790298259857135801879801009777304556605810071387739292512752150964706570060034177142634781217087269004579889289357779813395582466287685506216441149859209659183342452956364818690059580896297528926992013641269942943022805919570163572262469331387286597090540499109728989903096247288649570892145303981446290307636234547403635158163316068591096772127168723071007804536030161192085592099093740320457413631380807217226801893162821306588293206260991686002887579113678251094360990835968568549107580247645598118707160270077152179735440049934395287924671573880476671428330067353186840984602517383650453022918810045643021552491577245233916221461889078872926079840438663011537278661933077166074822610315674082751776753800691339762898376170402457126925024922901323462366139343872730330503621028142704091837202219086565067179287718784865577868936986374524893417161664813209967700647671015302474305594308559115517547321192889425826484428775427152255725874503683318398469647520101692949465279246198444513783148570587572500121259924556141759547503425774625682288891939484826410645428316195743167538826773311439600767721322202399205876155858922333016590531982833801063579114251579076255324502113667454595470979729458408118533467346220399035609287646189455688089560311794032728135479994380133398631911540809581727942545574036545052001350210678683735518759505582952161440078767293490642415740433171837381834832445708800103745247688928905049465556429214969016392301923838253177716414136778092215441205777249760074469573444574589629792749092421590998346196697149299026297168167962575138598106531538103878674046965441387933248657017562381933169798778716243235644535485342743996854860139832490326971816558195537025929791563265878117290750086252182275279795151414571324883996019389375429130655996693595173316176322378132912188947837063446354965213776675500794066447291652710230093793759668179197911579518710209965101365413248646537394314230203044611676990504075533391368907807584256148476529877657269675389593902118743758847730758433589769301488571068262179185510588554380565424035599994387946958177003262715468394748238660706774239761286767618034118935065666073894027788604653457334825263962486468767520962293891228475009342125258703239064897115722594900038464403250358480299658053310915388165278602341415768117189948888453863966124682246715710809416772062750428296103789861866328859004987447863180433070332211892568043775396844751133589812839930885603039428193691622235717810237338808055427571729145794459784199997640842578630905667209714966012710607162932300872895771777230695967283748267469709852990961678276903811758726890954162032665697130118198645941807198600621026631541224665163699886559683411681646750369620260106904368103572250964380030691462152431072897743126547346523152208021602793176267903429286975366792284892155137982929500103059821712227945165946299043345862801498685847060835177440288445690775063731294392907798959938384882360598988903721352884383285975102180472732496395282744131043973409452515895793196430513914275849862535677395302277071352033559308164966346297629828443465661250560728938822550961758742343401633535622659778317845000004340686007513686681994608802737884852132430975965868155145532345881014298093864374829590693740376411545926816833632909532344286373439193082054218269928983745408376122402112278396502455299366355841521291414953653493302826305778764703955941207275030808820283300098241541446115262876765070440008833542157194473919964464624717836658117253607796517791161078955539041266354255661597684502386559660751692817791204931461064120488522562656283506024630804269248957403354324842032743607382102757496263845601396217662761001198422827664514887965539065649550354276685891228724310298266194248114817228480508642283654746854380036668426170529940553716367786844238319961882424196817807147855783463040844668638044653176505445429910972595629272754412110840491801754463520214125565956155161293203225351329922151739820535335153005167510198331358965568688764722789871495576520811804903133416755955585342053686013468371684048797841853266028409063138498025277495865626039932624550869078895370257718600456304181374954933808062219074494164477197919692496013806937729209912731486331938448120834552689304747856500450486366558088495444160757368300396900303266700420232286396612039312771007629202847741355225145056848977116058995550527698635420346386319946401352761262595119492697470195106880907922685487655118326358641040147719454885404837197297722086108405878989239633586555619169487148116026101195282068996482108397911933993084025108166078062512459862037341798090323633794836828531656008172930261560858817410320216148680233997890432992040991245652306457284756429240290188073998909550376658607152279269057436046578814596412701354943858739148333031064636028925261294161075263655351930675275932390616604809353416311165780507091208321447202297212135653501705763026950950655147069905126563735525493634848545857234139312347290990450247372182900284789602613953129401556819724032209857244955973816616409291290372848895504125796525021877034749524111144979241998114075316357535017177836991603363812509486182589794679344069307365646524626806043961476784849724799886074056447642340729565755105709074062843005235093753286437102230685242783151323501068251556464687597698165141185958453399623708554943530479893464548262265754352663191896203720584054136098330091818103772642310086045188764922630529877406810956520034126538326731496167605965629416659017872473206114371901890697421527419239431630559333874916756931514486738195556789163737202484959089816179177696447535950645100726043975401812095427082990622793082367251676646822886306144730268898352783309556636295119622848088704517447927847995426766883944688231083126523785786868106189356689789319319358107284621154216767874175006891621060855023516135948608344682408935411376291560185344076406585810767815858201992580794324966410502265490183064020381063694192499728505695479214287292309775234345409841208510628572698688980693525384080228274832159888971532174343624595025109378434620237808906646276659235392971977062598105911253714786942970402353259879289440179174108491151538366995254104576428730572526887927985762775706238497347466241815711811534208488306717993302068608720888389395288253113624836252495499360368318069853686205004895266959541061107333249225936181637008986946825891836428492402791213876599599860274295327794238554307970824836326988846203209222555501009067631552437539026957881319899146596257707495963859335711566673571179111533762168340065260540216139415810868614417128944409636612851919888833637168440814414150118658900838697838687935106042112923134573045137540282297223047701965343383216521918130003508920726603308712874234831174420648387526964771341077183250286238090266809019493974508433191565618294242647578310032330280963197064724206147668287741772770729262569100828980255555985259982525136138007788319740906428254944351750564946215340641647854921290572021497799004762599035207660072622123485089686728856136701212921511471403884315683259576543703065386539058670765229199671464457464795717153459079695738883537283815450787651424182076842774986455249661540864045280401075137246582851540067899835551402430943131974279442208496509493423467096819751872616584210507201960560553244235828752696545589915364702118295284658453520027487788285482966060038212812992827497531687864003910144672884289732446668100746102319432729839525102090198300612481930485707208918517176321064266474747215071873680466299054668401495167922785381852919384580560876563402790598747144656398405489488243670317244892427884908549907674598849979139353494269649648121260425830516111404064561058543192633850352242642973458265187938304108530655514068009850712427930357560169980521493009024954137787725282676940299848944321460729731371538694867117342390524433416570256641075107535514439853146175354840883195232559741689911648249308281609929199105497539435034929393600046268188639739216676933177299502416794185032459752145668469713678974888453671743290393788436502251218893445437234289102263099046621739923118827628312475716713594866824768458693192285647661235513650734228843652642278289987435660230442701616549107052070752617546159526689870241263260970799301350117743367680511172044866183808378440082591926023665728739743655314762139695111470094523025279274348935941799074207648299365463013393318422206559821917655711196152083256992108541807348712147503423952924697860390064062069732609985894685755986488938046848772495063841164101399037113882147817846250564302636948735378542839361308637141456283754169819042600784498649626819302044810148146897430909302620106341172433744129271452412631822857290268210874918326815503533423363915744268567299641591475139154320008721723944919130614684215545663866271651183481365030683515742625636238406837686232408502890601900573566745478422110061424352803861619880884790842218415094011370861118707049021265259889481810543044933838412626638114106954817086158566206171359233928666837883861522855454917094036360068702294889088424563022220936123522603714171464609938110382307724542819373583796817377002993710380752918974908851536595416976644228104819754237534891588322531620759174897074584266130124634481151381535088770882568507704226694647203022124914610671622964924524130870387638015542372132937752456700892584592595419848882166643466970391068120618786210405247276840769919317923738729597844459272790214785450286573798714872553662556745555705270549415186207492438923246581636116332201836406529783693908398039169617808904140587519510175293988224412942607279857917857178084048084995736414957647327104837313547665356837790790600473129048519950209557696707981390833297043198036071568240377314609255948700408537142742054726813542751983593229899383415558612315419518625368931935860355054882063471070979533535791811342533310207604538552849263972556868276241390410447593018765645889720945318841056226933083109233413484288482470854536876415660896466829439130927436782076048630481176814065582059242470277421719677354934404366944551739109193472031282049123091319416823654908113631954209561282500630717793442008214533752918542594079701905684637394105729259638483466847242016433285477641755390561359118667048009107011191865811639548108071937812282365621609868444207990177487318310229346854000733585632094457079380737051499705732819997909481090155417041929146430731964524378985142783436306140735749730817921858342284261737312253776774919693209177946059093154123432945921241487473447624082234460480331806728019887853645334442051963823319328637718532760238550992254845205739074648799540741075347716931694204248136152918969771193089383676251853163458495297526576909054554517628817094286900926073752939032976362301642047439313718832660415002203619241547686408531978124296774772929185151055154926002987532012109621848501102464478109926179644109387534387343692369213647952744470376432674160543216827960030954394833196695211406047895310070138168130460278755457243218105994201012088144111400582183343188869644793173271591708178651694227650415527744853331795435627948544902650611566571300443248249600216231475450007554952093088469988400121280638019005527799517028576216457638043665071828605864337632146328773209964777326659988575163054622598023065766350228244037315524345755245964966819267221928837036181325639833342819566266474779715598479160758606975197727875271175111333573825761240401062189504634063420352929557035168045549049109968924844875035570770311199722052721372579565563991421102550306182830921025332477826062520521155807865775683390110874667801128315202624403346325623417307485757014056088488477471386730051773130741487116514805131782831244113456149259162219426706733007032631791145810956957447256037870454781767588887269435468707180846954144061858121001182794216233404397133336298915445030935425974429986081670782452174301084312155346703798843873297769093626847574843091273559603809892106114144115097769630927232116204309102481873030666406060410795372121763923937338125330231063530998563052714078137079869935915909886980030318187780672493361898497652428865661868437717141941141992185285273297658935679558822361150295128473881796686725077995896698357628694035634174197438672049699627794216995054111792444157428117512209909716838658993885013932883906211665229917155250576043519868346076619958638055413159539259165365999232638394006763079143113353384614000532285588290198628412182510077121495782938049673129135444656697985842217154599647030336240611349090167267936388680357760819403819056874919497470241856264257835660384125420661949369077292176800723086012854836625031245087983207167277737740059029711052211626814810910290078698972819662659710725944042519766237978677198118903078954619653867799942613946803561364940723480064229805996155789906096488841551050751794772260031719945816984657836474120164854347009498080865682225347588108016335474626069300260001810128824960114301659482081563260746335177768141568224444796780750365580595042474919381294723990957142444524805681211888779212030984530655046160251653631216265168935539454338877093465392916710903412786070247521871435499548068131666537791890293798733885126979278971598939112807982868663783425894198248508699978303327679128395004512900067002116255173992371823874744933545666742423946637225785075660280989771360710903984452626314512753653462773230719887104019975010998218050759566454193975226102844745288383987194115454805667328615131888482218640050202039764171804051601844030632060805414613198871116603936575801092817101386272275639242154864094487441768614027196237764933447998918719705948077902798287187658768348256797680245582411240914507779803947978229987304990137720046329187507772386806714525072119710059130888299323531826679942550238085522204502213308703173895772286055232117571591480133993919003441210627112044707177790323465108750660532047777496044119294012832442879932655722749447213984615989238978228280871129944189169468913142957060792573957331638598182235545098622392396723733349162764083321981417825698489990594817511872932234860766719828349631966983359359271414446416323691242276588116803682034019537010611493099159732155206804672885191088288506792358372100987119918334803522922485099282806997702923672744952404681445609744899913621023752476101495421685215553378433921252371779143994817459743470876251113841077526345970869008680560311707036571076169299717266412274665407561010284335590721065499702396790952106631336329159815165279982374924259976947529952803549353146179953145377138469503985434814108673893639993651385219798087693273830735697268737733250669629233795519636091248123002351411973428221719700103433051547149836955395840311363267278988532304238771998153613966861978726020346735764198827368530321699572992063425264241049843388587319582433150741778750885053483866007213806314252109162848755483743707443641766323595569786942505960425443368065947264565637122430629973462311316375000720976003080012582379180479289249829098448255240128412404165006895798734681150488488839196087377371924691327833144639748857621726775771458195210077532995040393181232136722957751036861673551737042459035472845589256040917091910769253270555032074586990525984152606110136015982438610313118450328794271539491320392591827856809626689697136251169167501434412492502368690298938596730962642676358359530399589698046816428738656342514315616566694160709210371513680510028575697438492207637488986995551905023050649124575081443610505890702672840152499210749980363514282977008463196145935533102930533200603453352102867454609002964959052209377545443591946295216307467462434336107929123787293017751003126123287210126543784764951725761153975028220136373990016775635698506081945156009538102755317780273183223558559661663662059471478853342675384079539433856837362458361031984146110042369915913143682173646539254851723277430577453064279076624396253688041582750022072856111189923331930461896522276206289730421828402683947236560202145217520181592809542007168693231905765754901107075927174777833420582190028577620801405972768603371786703666550090583309308374681272419360579942146721954963498626998779008431018465916108840408393760711008721480541784914591035289216338286981876500047657667191565265430352883642684715674314207188534276491764186751296811981840459599560418504129241897005304073536406979033394640707481711094961983741334817098224952724374053705657728811371907474018956099607991344491422074488962795791640762036452173373100615707920968788426696352215038720423113067618029612986258348816807254738613829061445961680539596920344181058933636066221928969318010167311571045339459382825470837557324864545372613188970809850681322617696929356511461449770240896552341895701724300848949798081987242197316112062543101804778478433091424510736611670112005015142284961322741242440728895278251968898054302995603272256545225928231027040648336572904519479025096376367584322835247495732308983182569132796100001506009132492402748084660584974284760751986251218354095719446735751898252874214259465298219296319961970482550239427696083941770283765512828954240326340750237809889169378343125866575777362080794146993755808917946677974758164534261420792293302204798018997936634024462279502339052295509430435430214651979188291636382482392350175716019382926791471622557534960994113128592692105949319246748689866121503410787921239479231572047475929384291916539024407678937177479072281907410086784576885783507411496673797855267373617991897335433666384380611858731138571131209261339718215992496247400018316111086622868760371008566703765230733520864085581402853460844684345422876710749169323531563296124047607381612543242173768328987090530544659819774302973133666985703371432566700412343983311309908760159456979419495497865961551662713262592206293160647823371080191599519367888352717218286652911643849734338402226901981651761271411304418414256914578338782997151310263437710336493818866941007443040499917237637991042130405965478262022575154555222103473701376697391518932521617145669980448561824501242143240589612024814878671716232304202148921103293915459311262399000816588155695681610083280165469846330062086097188855703063418168992740650264673949076318309049524058862487665210972208292928753457040453623516651586385393684786900428191952078901320671843603208059625036446058859960842756304363178867719995512287452167431875408686830171693922111139993772450053485419072874422265859288845089672720443809866257991931534140462665713786469919315303544819447467221424339674265045155298861124058564290370171349241380666111389401038010900579595449795744968324247863935311757430379094511974582563030431831944462447786038965084235461781567042697431436376694398271061501062596563484831967861933576556788921652361570019024938696936499012364652637574525150135545497770434669663788617923367172980094394776299112153850358862077960160536886944972573039780219420536678648304608845976135347590171916803150003326329151164660436839662819883164168994039795163549308949453145973367267684433030412934998809744744014813550076339719463779884878937653219237331316088736677110728530207381216275698694361440796726745534236780687344268874042859462264242818365067653940307542877804026616438288428833783328898980945290774917521464148272907388727113607408434836768929390779834904999328889176425819514833497739566019541130315644815002954807399919400020699449756913710089314358813067449089898446021539104827867051164170549165136703683789122206208161776220337606906496937320101815625887565446708753651912587767290593929376560137576288961403146154524585933413020844072607098061313945910753898168716406414086273767690580048655600187622943342849805184346495642569945270372513360296163183946697015749792297962857762471010944390765246487646637176895676035959428181219065240005904008629501466453573624734434822880284841447383490082357660005852977359072406265732412997374340906883075499001789707168734487210689721769785338685095105250453817091522804547914805755583322630203696945887583947148757793534236625270968432346611520544933910929623134240335967139952860014079875197572790640358023743721254068085234266719264670615957879761853376391486980165527484780587271798566144052180815772858647447072960863018125612859424977832770224850056405439398810334952960115445762008674501723335517038303710729655392147367494025428059728612718384145675406413403552271554788606471766516290979626193930588397431695111355692762935363683416543238016942967727452996836150375818383390587231305631510041351381504212430323758237562504628651283578448286746397144469748302998012663717801778122450116737515522618596574254800778988755698876352765457989234028697791752016199825720084010021655754040730549114876003046265218365437926153732620943649480727780046558721463838035387743409991396537806243573053857499761515283152580240201438909088158528455075562769458771384010359280393605573773775770823842850706875143736090969325371707193928435517280275403269911130762259214942192149628186473098911757014840001372585774211023581957964282375901311304856063957442825839059212844654359112368964936262461441335493678335256074189778341820840757964537465773625919949504566447999056014999440469121225304212478314939898945758627739626784757462406260590832057496624059360084367082452141050614483522135125350026928171544809737106914462456993876823167762938989794109198876268826489570508479638228352659698025911051740050155087892643135613747604723832580065259385227471809632226934116064315853816263037977506215632776118199081084758314325164544317056526351102951832501318447315609709353485907128892241181301732117367894676631092723313443448593250323965247352215023139838972901475115265031647718803375908889739519132270269421665904512716455039365963222468590096616679607757182133437025600206759035110225077819155347464545783480961123508939144050830790021194383122446782535165852125464187758147905070587801991598540256587876916021415548925402549099594073079929045532410755431965760489461544137340494896031134201398893764767252430322341542629439530407103818876131364825239600941624798692608366338677869477412805873807623793620580839374111534041448164697853617421811560317140495028739266291681598605968638095448289501710953671668671914271701997579312334486612087676724017358713689364868385617386877805646491032027029063125851434217378524702596711549762332056757266812117315495871175710303247084431162269860297092328073911840865805317062844310706881503759038508790793944957012988717577074833085050136066794376532293240055347136436195258792104177858851964401229172880233128092260366240524535241738819671966682307186442546421478138024177118438776847771502705521703313491593110891313187869276433944273809229768858942248022577359613399944721899655260788492515405735127479035337569763929840139383941461796560461631893899921003928036757258171426609783385067934612229677759857985840051967647616431243826834821263195697169602336723896308386062712544144475463521056838270430808213163558470357915373023195563766594303438259982678047023030682100781726856292213120270926348837663923660826144443077987031927696282353550633464747857104382489565967331555657297708724695938060979890657557986096536795173330078123679203738138252736659651348093593767457638519526708142415709156533113700266932391641536687588116803403293913397486413310511851173346609121830030287959006001397190512177409137308758731867927723965678882879534601930994192293974869914560792734648760717233756841377781026887704511319217364295228268571929314970423556444757361578296337092327365276486916482420024532488747814971768763853966066266678737498320021429280853284117742765163492374530295375410977865018321327614822709698110553716773293277664758676798137222357326652692241762286247648423739696265471115736974363584666952273823858458226413803610882592210269438831212582190378467819498462756108685733758589707371787017844800554762619774261836061835261562387167352513644100009756241141239734254552013619631747467675731681268479202313998316431734749142349343448406338255531800660351763096172533039938910263456049983795758556760484770395494006549645385693521878390747201183453901870412057977295578679536215169028874996850433449384446039053729444483760748670573805122001418046437611512960835555731321730370122828605503937356462291109725142014439055929769276706930521020704820472675837507001167210222115242499964037146137555115880071479423951931304161898489886814925073313285245289238930195398529453913655500444094988111351749632141818233410822434606602727418764383977207028057615274469081797724685506867558152280163589679171233249108114388710404096941116693759245514347595771810031765114576687695935425119762326652339324454738357611584882152598162332195383024249519914578126415844127959122590356605746294984032977598097231556486948408203084335558375939709777344954668368604002876087520209477557305576540990680433762511264240021268511275684436405680513160835456842645068135896462221357512624341276516102907948584147768245711939166704854669824124360146746625207880906347837960030172931961757054964076250709001943356357188001496678532283142515849446411343889466370105968109172609523338955642039175498469732161480068970658347234631889339604681403177315995649304328959920611651737814674541628721360096689336905366811025263612921978473739786849182463978890735386008542734137966251350335712321391270289379390506882507771781509753683563500671231429691292672177071696336220644166459026256917957353886207741137995945559354416261909900223621567647276960870124879785650377878258096398365919070426388036847332855190971441573935642831375754543078045467647875182008968556824242250003809951134343078141208849143751560330513397052065625758610071120288715844052161101477246506045472550614214705219015685157513499808043637334716377267285594211657378421646200103208021625409594538762629336860016163017420819155130177060813371867687637882698000783206765572390918987978788167103888875162786708101540138825689379339078239217387782069906607485607092001920953605812962522931176667456630983922362713114544598237780711136498215761086451896799284881000913634072650361050369752457874335131433341379874803037124801698433918767464248655682578971497832990351630048794549790129402587815258910361897740995559024921909279162806608856248771435263671947553272810891022878874536343381839146124604490859703986401912820584311679905939794385314041319600358050667672943136638442083285771087326848961900723480050148914696671137837396782175942841626748490735221568429987108747507694183425812294438310075604824874221515196476404508463609738314681247497383083944365280133691999128148374004368232569081370749184233507976921196894098313514314428228679100030466515891917697664653446295021609598129640513630174723709598292751488410716988303709062935161795036278609908526477885324038042326852654774339713796383963140752157439208802169663959573133156416710562307937253027232698400336839301635408869529965572797602775129658326614174182399631193231983261714008409582427060281496609392227843881585154836561186118913317925127807038802793223433010849641291773683500990127625904511815709022318298829989162205903721333519095362916776601730880333647981924084866609559841130418979557922784785982792295796925342337043806905203019655754591580533483065241839260144919515841994665374606317725915299862404204719210603423578396508795479293990804133562776169269535500268757699096315584122198067097993367732703595180317932628841022395983537905285859813233439773257273896779643888268954753457464079349010681620054718407077010761569745372134312845006650157867925180216739939032850010946678535287215362766667350884863978680149569605618580024713166043881553844064235652452787189970950986931483724387557976098339691841551442416934408827126282244811002931695510768642601746989944894397628995888271029511824321600000744054728827304938336375428278594344036753842954676085774566339718911430684140010987745521986968945309197818440135008670993098064196521678722378815128187086796659910184257441197413675107093918714287860097431535185343073520693777072825908455295649623255403745817243249820065280961468535857931953461758054414263412417776076726819688135822689209232098270571305724315839954491059066425480431851499353939424362643790225447787152657509344705954182708074850816910027393426199317009501626384941258373102008789236844678334552232894476211326113498171915974172592904271008382908044710262647196673663620900910122911394621263761437817664374411227000528455911912189680999094511526651422209692487779866220571497872093306165696338972069486446856755996022740850984377213718199251623326968105507579922741314196680386498483630862178684701277397780926915170829445266565307884979809753157013878699492082393400600707171371739503421286259036119162600882630714526124506448805633442906339584447385597625316133270401757571934747893377496062131579669297947065721958202431790891789055648828822742671834964084460997553184478230342902374117435809375171459540415149044060330169225456734520038071540341764980360161116084510710556905832937427132758344551068677920481932951498506634704234298177334222406652544094799627388357757990120272033795622366755951942550797193963486547476313455781254203998428887514204501225770931472921062640687165083678342027496479321354009105656077047283951038287520581990003892804031384613539371899925731689793595908745627761516365579423799319651202303380196328153301080522963869115582887491397912389515029518260430472797249585033112122970137329101691361881536843147632846947199412347211210599551061192405133593258511783155070806394964992645909563323847460620089972481172254316089659454484473954933798326885499836318800662265233853903441302709138223877144445333406395620699699396230658541401959858314537395274672272828643006609733961394183272096384035456825831251814103864826770360510885522027788055533618659835951670056786210249902915510165792763521484317866187650410551955855013425347232863857800792811053690973571556512243115685312435631729848408709357651919541873820488745437232397655321853630372166260343767139711558035292807371298978665436912127621893547243601770785916552888363823009402784801916259022359209669293756061989370374666225978395850924999190943162925308127425553156317379716553897886175851453143367513139976710197951695938317782227133038884319867488432677865622666979763312618837705651781395290038203746920953656560222830890683634247791223217591523369871168904532054446884200197552506529419683092693409177958689795181658622317176340041069745655589984773244526459994759782894694351712977199498073637812556925090338127575845044006391411253006108068767361719215782692123787848465806238880012413060059622725593809103844016075401405982500210735234678703088554647270960949157999936514106102830679975185439590871478045261390726338040587851777216017739011110088885869994371333952088461964149404872856339808855491784739516100999678979342494030392151336045158007067216121936267876765687083697162283681230422144014946353297723986343091958008351366459293914595009573908844158774857772119601883405931567374675433460829528119536557811346011666702007602933538896946832008499352193870185768542035380833840539855731783323418051206126383037782828003782846408619325340532899119627411247767972445624809228190502884359338200411890671780427336279886470109187648935767633753161024443987610760805929925192265502813561283358811589958545539257652627369916852646238434983475145003124537374115981386109807923256317562847633095935368170382324592577292497079901920775493169360715019515281187490671457678247641936124181027255151139206679248259642951906893736262291560050100104270989777788935572847369669147127101920949879336201707059969225673041705472175970146491144615008897833997581628832376062777240153423135462312925913805829340333977891540028475318254100057320502811361839043946187240240092707416413271948827455925539223033992224305415522450636277889137494998898387283439788857100213347755780670730755383822709468581778632279357202161482766878136904186121228775491728789383733419034558093341476202505981366307666040787499332363251426731940110030924841269007235829901967171905544721403740211611366068176570014881485955125042483687708308008778160000000506469654047643234786290404228066444125175777715630700067372458266299046911771145432402188891946533226448518994064889949758696369263703296731923988905035387946423707438183732966826162981693094505695891861944522642499472325659317537099492463585475279698275120019213471891658898105865451637055578390053576843887861759961153929689669987078175070617393437023228850067225784312731779239627372076844276159124665152428029834406238889859031636511188242429775414260706646738667161050302158012750122595300426359415800849771835149919082816689169775621424592022589662347320423190807941194904674702886988084330323085163813894569396570716721615663346343214940373106518328486931926956025310398912547750399501959171720804016060711582326864138621164271274980124707252868597898692353286489067898412833524664653795366842187690122078487914812141442953671377086067341923542437740908390145220094548267991644826967032988026494965408967678977582881584888987042919061050446449183157739960485463527997222087501560108264166868676207516594698659696082954913488448150590513972269975026065679109530817687128626769503047651870276383704536496756123140111025668736667173360994281281760318517074113937926896548921095929304351008370223875632859286747242266904180775091466843623207580787252859046233402230210677103900352918117849598569607027915731278669026652979865361893752453222806421762693463328236157510079386899771739723545138343213499699252219698402234621495671231774078777489315549150575298226167942582758113073210226168569184138124271216210387053569208725375164246256793655182320252563044718943072544808419746064016665314514983860509197827086415690890193039452961338457539909062549147579972935841234776905538481046455635511415644989963924618846756142672857013321562171606069950096471219366893549378537057562842244043250367002118496515299846957449881025997784990293307159714538903692788969574174029871482227633110504213402225631705851515853331117068629084863555567602627081514679285133222473187177495122851255433964330766719573728959986889653868341525096767895964094190208630621250779187379281091207401653998952282230271154819146115047668479627741044949721376986200145769322088082609903785443419240937201663815345853833329133449771240087059660918402789829057670873689116744156177640968695193956531875816811860078634660888241378169078990581624608118720565954379817686393770027623376280655557517390341697696842291102304492211350037328065349614784405620285404667869836637000626825598937041138286495111214020254638143351967411038945725666067136311749687865330232333448381126189933607523797958788698322520084621968642927147248945704353151432288792803128683193619790074234036052072904083832686979794824173743951825665787612082311141102489750423257638487341506644482958497979052244920382840804381338371038492393918581549946534834221382532158776754100874792805228972544274559037062266583710518130643669427639554636523667102917935874963692559304528568651543739135987083482263203112659457975220235720211843642361930602618496928938756263630780998428366339422792174248564562980122822206246221497324814057500283135079020604395090002717951887193176618210910997316478514150492528192425452102022414470509926171346019761048727665431592278837719496658415442897118608085009299506053517445901228032809757488122085780672772475657155965364176460791049328403837098984386933063628068283522737924921313742754343742874378511127723598321111693867316595034647917382944425743505146262048890254255360539679093521882396953250208593397352004442554647058109570469363812414280138353748578177304605553528295156494054409493218503824427724360060594371946527725915427790325807756091743216555358142017570542637456768136195694249286762065683503655203929359277357766282351192099333681797833161305604174935061643783585754962923315905297212862407822903246369181794711196768937962936234852780551817380928114337286125160945216973209412592627918474563134188792310089701717865153750570344574732783530412872093907760349020830682841280252489049511562408861495423765901818748413498442851361423768035160791992984977583296344097373176046353996711412549592337966590014386212434890289190783379889142298984790841728158856732123803000352344562441769223105488728723958559700796357045026427456727357702229766501516208853694235098410374823729228384603232348522093302368921206107087296148561542460900410574416018080482568938118155316258139576193103641396509119216588065434811194941059620604295535758121197308361659476957067700561282661166780154721320848718962426013716911527449298826075172339482855613765649213483688205011682063827706927202304816553226700607796792504043247755210039553140678615124605674944181760396438563688077133112284725847236761918861234407567129187865144747197759206223769190464573186840877550990873709992993132211440894538070590689404996304865340888020925281092839516249732988712331282896203749973417550668716772142719039182321966933590616387409302058548994908209391059623205816239558917321682824986310169505605126588285891481560382247762890002347504572846056079045351193078069796662527314416251328291725440566405687222597916951951631304482303734987141578445247837103925598875694838874442701972358936477816305404427984061446425505366346772547977226090270944805770860095360090360762731227135433023355022722172126467722758544581567701568256445847519627873183619826837762674830758776219850088382404051961955203289404204962912063497870585217442938241380392250760869100056880441964988267936632084041588420050271429341389403015077948060272074214179554216498451056527556513272915407420183381502161186898720435393681445297966262965207577905380918052896291332944253805242500113276573274475112757378616433643040108549430915466162365080499137471391816878089027063488187490080005692272921106060603306640538361293607793982731034588906620250234221657924798191166073653551272990327387050283180193647463071370522830824854759625548825971399678373567805872461275901284239190633856851565285352417343255412078418076899548315513734739913762445910089419357379636408655217651713708544182239084120778405380285380001720935594756512536997732119592784271766107854704745291942563640451470967008531204406086791555825832022130434755317340330221432619393910887461810098667719289540185855446258379061994931909293587598222473052898154156934118510836569646154213060786700753840079333635167029936226236168394965035668070961347233628559631061118905829008189825550381393111747317205998941076604190186718323020418389473605895024920382987571739059414081228611929416003801547526675896910760406925732281349756016138680136913653925519821752576755047523576932234076291017654408298917119330778849221593555038259192510562169605841111589109085071584225301129922038089242319424352015212470758865157246640355371903202555080389873112952508708361498012826644676995196247888518967972654014589476517876270372863155586118004709940526476857145033093719234762847911352763289904617968536203360340540570054179458435386818272065095885879555128501483002355833837059428644396175163832857567218706790462449236347985309153442786266886561230613036013362388512666952039983740731377951329595988913316416238903365182633149135353630118490942131467273220171199252123151383576375583573490709962391437299145188112481612329090346618313597029110716308701250108813467801745717230769708879107832728397611884847552405585821685492572284576781139868618439817392535177650947616774825157792471022760832051632444082208972628477205685019199816977890541760294728675850257248982555626161102392517564686878703196175820363417193765335386419229447819313547858655791626876103344324670687372616275843516429105720996632374832460699180378027147917090634409611682636753256976508586813301008270261548520911943668686914396267374900884666252828179556275863940681244286716958601798047764165145479560164595389959500433808775676000665620833888346765056961299076209306123939704468210634234612896163361200334007158755334652785623283720752600760313909650282211849510757832795897463357597712493006189962670132763712849155493295486983580590428344134591016821403108197864771316363039317439122713370929543678564121226776580538077273136903412198649600462901117811333368542372041222778297324529755997250236421933398282053065908264508650265478232810515973883393485468709888842427599741065367954524123684801310454497191275691563087321803810169857496477278047728607214835441553727940163372535699067486096648289879921740269793214498929326157301722339098138641627076347710322902164317057705629823963891381319947289644776810034013595863430733425906541109949129526899158894589713427724500424004714166100445048868878825275450429837559761583116792660124869801740561690098622693535682121885039417763781657364183687485963078446989307942265725104085477199275499778085638624022770552386955674808249026564667129494073958420506785346043886123192667559556755857554691300118897984412080184236726912380935430837148933614653334215250330646805922046306089528371947017010899333298815205534214725704544865978691275038720292739615928302327762782667497695237714399414099576050373676350336364593147898747465712752684495057079709477096756572285724251035562177829660714743074453142565407945558232168360695040932787544067411999187250444596297322937181136291551643731817171647043487293404401796230991631569410501244026726799732443925822337471710228625098448163067829846131575075375651768229804169519419035230910322030067082445507841025840286394469713429149417732055266804366779461832284226975915053584112376969641404903029569129712043093048655132914673236353116512954989822059031905268478744152973710546029013086107403293900758715174985635334157052667954342771952186541505381387894153680811105112092742806829294894608319293878852542905786065607045129668066906649833020278992382606391597189087844867429306675380925352031829744750260838159296830764880032536672467078776413080740474597615638651767331498655441702868772119823351736147173341358737525910013171060005211837734643615542439910106691032679748797530233757899140892029625257709745192438024018492523009879320617049615438629708413710986569960540359134730611708181140512003630419115722440708385096879603190808872347255227781828391667636924790770115006787224085106213144542570007482059371586808635135563156834650942510007065586135436157625383279095649331521640516288752443864188294962231004705778436659952619491028111855925114850936493675879597682533981267150775384570551113632731805556892609414701311211213115320436840961867359774116969631481570760012384322882652237503308576895390334050168656908505086715476432446752733583379657303866138159659726365561318126231134589475106828459462135598033139007204811045022152388679450246924117108801320987866717270916987651349795424975830786729592336417507185389188691511332614755522294509757183039763185368294769716057962835545727963961485777516152731271838556564574688348687348948602342799097044629766172407590519861900304365925391609891182337876257474814382138474591929751175649361495474749104453907142387442521541182935018258863789779998932346541050720664750416340820243450956788643440779236873243909710012142699106982590337288173443845343718408631367149259507636938960875807400405511842764057967096180478825047160149558033700109235191181930008873667045613807604384502531804085458055439978884075479392968207777906385427062017559831444663921653194421900129564988635809314420506996752485852710974344334800626530211323036897856446526414991375891246673095224309361544654524392431891132973369656014299416877638769213885695146412104176365575101059733609511001782929011882298740534562652631995573429682445487946339627875257092749578859731438905934321275023999816973318801525808517671466817186444874446335420184876418998955793303597595013045973057626387937624418058150757305262461885142144703760272895346265609905764172810712071800400370194457306534305791057395854041269613716960995488079282669349824387893430010367015353030257229201226483875772419105343653621457052286666906128693434416506618901641911529052185396849372309494525450489574151753644072097508889796223593310787633723886200150152661975610794393330224576773889873113221752689770336122057113431267985030312544548101286975915111433259827719718523381620363493279514927793383719049759199557532459255345221869178429265309139420502188087157166024592076833889139754484519968236458146851216903466276507250083087039431115100505498346091896079902525098516779283536294277971905040524024658989489674537059251707316280561893691852975866773108422138246183875756533279010838115687192211320249450733276153369981439121963644082106792598746427186104348442997846210682074139771745800803972984774329749005732209341292379860124403899116678296040741765693423292641729722427391944240375197523627974050982403440561805765590072803563853374782364665129308649607466245307585208548882539717432516472881906931564657938184269887190137026576766575896073706222322601999482305794438152738009533854916639925721599536598738319636465378366538909425202475814159682985962287670806524964895493207149321495998723294041213334421064891900006479596699062716368972654071919794969647256497619820879187845792517088567518042292520497933821496968530457594713859135919046767792076667171952645890248231620241214957184032220914761516213680686882800083228991720509568307964925941805993480012856911422896077261390953022811104401927259484639842581501848162666326275793268633405087128172038528749780382686733865928345592523269757538818888029630217801733315409083065493351744778863522517051362599482836249779434497041882451707257289166972673181131270739406744070412788445762151003148723807115600659960550045892932390452740654181248185076528641187847883940312805799711571276064734281486129891190080360126572125557320866128622354774209185041097256975672829725482629163691106005982257657550311882672770562869067738145763703458189765456633785868849531758920005262906895119180863851033414554146966139624862355660324358584827774114780505126402567448563142660711145306765676354492601165760852939901529112345358070464572120153091926470965124470340037405453317115957449432089264898344220081047687124222239982741302478445768661727006306118585155161169534653769338406514277369396964792114423441001671484150793512347170728183714806093976319495177101420629700459464863914869964575283275242017820526110815406086110886892293794783667420604394477906480487362842561647961836245011592121124716468481561238609658748263457528975067839560167807349759236110908794655034977946377301748319851117801980044963360778198750691264902703142501567368413023721506228211599926278198624575376383366895063158155246553683212739998740369850710690064967601898135393105772946328879011724092496271998580638889211943630100259314424696290663679674786177119275760211741234729771671869203544360452033610672343320470752334799053826600837809748510323334847029433238243187614284018267383312578960676187011892023197146838476419988381965712539184229419432533040782973693897586597979756074770446370334081737069181230873722266350954288629841493884744578198375126727865140258527216691528571300652928721057150748471564210794159897342430099702762357069225972100704163998006908094929639693495379108398100223017746980770479745457330348733593597191941154243135182562977908443619774209648884129553254657353627235950140972102609817466189968406661651064769855161980130238326377657978878211143742472139345304083015958809125745659496541138260043085525807369425710186897659558063420822617807158141772926377567371885498849863820905957123726755014416579806863784505692893541873543035030437472225297297246639804342934881558231615722624409931964744971103635432186202258048548868487766689086006240992719119955047989860169004603213669562402608371146931249530805873471738378749121994094689623371329216756109289989119722117688772231060822300505098326084809611161017097683681392447877846014848109627908827449801912254379184637544400713050693723886236327195326756741392770187585768916745890655362322044434700245290396488630032412797421916963726321606997815867344530841230824369067386289982698092967079869235742402255166069885384781452643448904500973243119360222234388933089170313953926981205230068464570208122455812718752264246851365819633860614427908777585272316066884921644990711148646194703057719256348219713971133532027966887947481458014629331381876936559458457734904002460186590370389927049936136529826531139860751863405896054190710025922760036802201410362855939146597177195775583850600650494053509797169132047745097222984038162855704925695350840062578305455298332922728625569658475426580835751512775211577508507510936298499514928060404644767850115533235887480588425788982912066063649300109961681090370472907428127542060974486663618834016557667916360767948380045304864970215322586256341265510324177994293941225521419868503183399502290540453903298128564599464064322515963360151144299177337240329187527423852478438819669029245222225148416617856150930962912466568096758329240662683439556423022737249866971627378284876814803461898925016217878579360817419288679562039054979315362954118890058454977162483740395202361611125490771260040359326505673081845030833009656414292491025121799055967831425873861670197338509522800747085202179360770034203887208791773538483321877516229361802153274444517154338326722047657551380149885214546652380191212193566023292182696426301286005551045611438799095324458944206635558865580986157844105964319033859537298022116279949778303121977511390734555179927371563178758180345353040465914366055424952364036411109327135192346828371279089432583525091004441255141443906974386776931509701167423401883439354561424260108089793395540513179053255722853884234772295298608581602854014792358360079369747874320017106023334993346110224392531876719492344251493607269687361010587842073015174114623014293579181898583239292686074960217318307141869066505270920516278512247742556962786470362492914610006056231995554791159987556892731456880902390684242778456867276368430484997971235879602257114148499184993661939063386053724699194735106694540512497670018610509512236983054030260575073574060202551403346220510372883712618558487192860188361635890051011296612210146052728139640965063479661559866165184535353724321184707902689734245936312174242942560871556872730129243003764509530727369919477357342559928566199382745533663073004974949831642859362392551297435638793721740415855837467549140672278477576995179354853547278847127093376925528400457690556227497365694475085342786519014026470544855223590649764203797669681938687896808159764269533238491490531110329728896266520286595079338330615117074786863671178051512130777221983846117865739868941625856751727765565881676362695439426013275826544418849473822796727205355476747695429292639819056570463427497128199640226646145060918077051970141436250429259788126323428731914657334058642272576414374360318783147124476939309495089485955064921271116531126354477185189277622368867715527289273503194634282816801756029857997895819079538464634975084719236699558351124868488835760888576485967548884747689199968276091570915801508476369411704088245026824413426992351033203591811122432020036665024225034589799217797090763911947831640543931030459308464230467749471818475754502394961767670103047916510109559276162967732688106898484110943149092418289524043414578671678034136847648541618946396119493216567125421099047697986823000680761346114538971370436296463058878364983495606191760009331653184756173497897916968845005761063709276563994572437254080201904937687908310731253069017626934768224147012460344166437127537674908035302932612037364556160761455356525991909640244024090351720598985984635364343122908591205926696369591019080919490007804611742516826337790508625621165087021351271053306187741536885774757255939100104248234892026247162543801312894145491535565763212380123817344115100659689640235773960999053078209915574049973259182913556212858748039038191021912896887528089448991618907248954729883928462853374025045810491223052436827094688614252644888025204152488490642903272343349956561917150418413629974502697628314919244266720998733345671320446454895307007167452669173610365430623916360848942411364113324420469747378562416158538207947420325915050573808411080878560153696534104932581038936052445362579945175966930979432714951145145794094838755062683887162589471887424908244021209675300005390294045627492964565760251441631680025649788238648795032880499286121965250375732448122498529995336137541969511454096302987756956296567532350327086914776185332896831790420543035219716833018232023509058819781299725021760021867543445720383719950157754461260599071266739089656360184966518343499732771962530227412189572204320655656517684858412931679676698261117736191600084342711069259038336535407277076775831294396380116140538546229684860717879343919305831330406533026057926054217998290951055794042529773124566674267189685260172622541816769800965043234371823100057480088268797836334365986968421877274819586785892724934450540312854976155769803478264151575860873553843508424668547074285945097883447982566958174928888383817972005515053053602223871177972810765414439863494753308752626820532470285210403400273750656992662096029875623559924615554018879952174682684585957703494113048034297849382271900963784645692340551666015234539957569251363815105740992538732506965364948379147792154754528204294881507431854843314847463135220444017848603599135546727633710452107845101658078786769920273249149204437898477048070658122321545133682970273395562348200307158589375065614108209982340780725790312083295091966151454696671069148874972518827180295512792970731116837219048131044749575813514161742253208922670129760305992245104750109537035178168442170756997471588080403491223460596308497744504784381921525300994735319755021371370489458465749033903679389230768053964681046658895260670347624566771929842391960948119701915021054989564781448205598387233565006748073101317613305104182520301489126667009580598450642457833601190465689236773370368613251915181235136650185887230428983162282619497233026521854899396531981846449680009871769700415224826851140776111844383523156951591151626413254484978169252469261089993309227918884851489612898075640291413231498753151400875423331320362156775496554979085139119733292525554360671308990984258327941354149382497909368901105614272828655372152931585217970523720882832174291308684220443450245586254582141987053133751184408950326043340672321919568389992505708734154662220836061551857378692649648612320988902541724417410987168251925140192411003569867758962398869626228548057016817363491796620553259150943030891457074762322816725622775704477570147901114637601386496706046989557046401014152000875221905986720822885681732584398289259625922489436352265897330646317996749103068662380122710427616786554774044319260544395906881980814035301215622511805938625543442634290608322332525425911449233195371185487955981213694022221892488419321334445614985224075880146178837781289357731103593053245071526964008132909214672305989037892169424998597498967690337168927300792279051717293376551153408699275142239958378719994085209005610990570582210214024996143725668251280239277693042108688016584491144410727034182357794698144630851955246745384246177488960108982530946265937761419081998070706323484798410678956263026628386991024390597266971597936990613283207999514386740015085858572120812214911083866755481557279364584082610694804815684207790657201030389915236404216300568027286046933932561966337988550677621465089077101460238632297762691921491556079196597833448793104143198706998648336658598175639259542221748819411472172879358417639440487346785481121119993373248130568440210013949354170427083447159515154002723914096585399580041309183361262227479911908144899208320459898099833943918335043911451379025327632782929637336451230084865347763008504243690993715728459471311368386824508311108829631243005564285957343922098664576170014852368648868660261408933266516455566687792806751222369247326766154057788714622468852933107301078693506058002003158385939646578905237680365755032667978075465291534095154410748455396215360050286985632217729261601745455420189738258075346961736299150363490735760779098131497289930147355242607600758627877478263845023338630415377225679573903944485374367574305851519218487962245796293287962343519449289567534158582579013457936023796182073053865992148759926962619689977259119498983659838541445529328402927318202350314235893624076243605834343871202433427988011037693275413651972802109507849396053611105080250951268932060203046147121271696161012034536926846183923597994438417371254188313632595947418907055643235872643634065568813999199622228066723190844351422466871915558411084519047180278708096092042018615627329043720612166918347238174461564406495644734907004610525711898282361634352643449878860173408422419158196876325346878722271959568169038272840335875263651455235673760982645119671291800665970157942222151277531770042655620992139591785084543149582723195498854959916254384559233005367333103870046206772507101149906980793983755860068854198229428905531165577078164306325515794484780677168951445305751384540572838985245594981067336542746357708927213998930739668506350549257470365300944187693520734675624037295698036327828361386538805699652310011090333616920497441074234684922573794985046486187364610404585664548103363317648229668256224306521071967391971500786468692004239599400975319701399333440968664657725501943254803347300339126649074518443454031858547463322598895395767769057684460954573952961185093043915101004783472761537091931013994166762536882776121240185783531572613995658316000074721140888790275667342452279469512250616104678165593184794986511373548604649617544979247143643133742832715824333621410601897413096923112988056209853293160171303656897049388195908875480486036234201553043837041786397632192406364049677978537415033757945004348366672817651885506599202836783208357780891419513990369880555072360252541771911045489043760363350314739782726621358895098506069516750005556624744953069294540290016571456477610234401614883551499531775380714240849514410337029273467806005923462210182562157058542558005116071437387029523713457098289983427675398203380106605664176502748022974427786035520252829363680740251695892350361678462538428306733824939196564237218406046189884275047916700080731594894682931738397892496202308817833274410702359035408617137611992495559521626149500537205036279332051241584652904888871472053413932640078435972398461134879964889562179520334964683303312590285514372801764593962345357642255270489345407586206442541221220004154474228294287316512950665041903705447739858213638970159548453294636916303424910337810031552136767078388293048924849329305459887036336251953658447538779177890599265449434043261196265317098715976345810767962168193424233983958043703054667497129088105594493774993360200231677511011231836682001927011758846363370549343666245887938454230015558658722218981436455919543682414742020203293327502356322023509465256984557339729935093937742746889389658131946861240661148622811316692458000170639673438963434767724789797471558842836041496662574100612546546872110651771074577466048786819210234344510780579965997684024177133651115543888298625707076254617477248581591022896792622313386744813271599813712618351105616512126400011310616507467368613670691510078422948608647381328197545997863441310255514020566738767691857707758087237695342286903384785197306016257783611181695784519951679416809138003296527518133321035988548472613539311332160061618203185450177949282025083138597121523379191996329345592215648380898207977985230428599786259124406109659970738424807038758287611644575971265144448145149905760090963909890524681829800286788412434004263140763342262501880284942281445014689951878529198031999427576229236553500167728119708825045125117114595589753481651314892048502187205331984644193783574332310295559780243457533574913448888625886424895070862947585426995602312649448337875466003450810457366892783446431552460253969995588398761035179241682377035018770675306204046933897534801334769448415809397945325883161788587262745274745329642878392315858831976394743907362810562973241568243720663231746883128802467623487782860211397954262285819858905422128933138055114622510073050865569699999919163963862055071921696423841571073980619580002827171915240486569503908051660073928320221742798168294363868583936598218165965168427764507965590421250188389043995553070673903310878299486316604007852480633093836565290822983529098299960064016959785656499142271870407208112167119083700924283386855668932590006771735524562817301773596153278179316189482700009736111943879120397302736650848979581552572949245313964370207002785747055540478219826539422310363648218084409763168954070559180780825351851487014417551742622361227487861067220888901625456980916689809146302518976573053280399487014486320993824124434588242841826618229099102020141200979526201948283432730176920184593717735599737418792696826662809371349794719307216903502160295975805770151931110583624516071016106583311653548758396694606011212325142072719340938095334946870758113400881553785563845863002806872946242550442513690868885520346537845865589784697683229330380190969714752920859693787412287066373480073796021616773677384827555209065357625036099571169402135542039174689252737796286940498689491792859902426046356179111754487463306760932818197162619499630539595119196286129300969515286772812306641722514878456473601189450513929369300859845555017699645924583691488696400146581985492101638609148065375195086354073598358761279285244501202988465064755970339307819950129536925681586529118221712973190863843406448776186202173877792005686816193900109787554210830808412283523815537338776055906964635127800340318514837819814499475280166153798998361490813995446544559631176035932771856327466124606786015121788619697696494407616213049428607525423529544861383739251974569494189936324950603569196687882125035657172995602924157476610703945399121101030119349985902774099339982022155444842799296320040187473386390122001121545376191215078462847675255136300218059160292817220008453178833990512853215892676844849152821019324400005933699436392943453859136065854321608110317344116873668217326068148046123453959313531951002464510247828560319162840007813966211079385274673328061507105094213532354020839047682349791434639609805977803443239979278388117714377326313368249094854151112493899796745038260897104492823158914067558975013562040044424149211707666766355651531805592934273414518514203137939892816946600338805533497534044212516969557681354779205626054642223617257786252588394723081917732297482608988793152174492543535258656479858936206767907540877705595968661667738206112503247282615765865359008656646066206784030243677271373194636633810381322974332555890594101550749340448101257884745036057850620929408323965432879746204422222586221256461216528912341835790649704247854405114571153576110180875203128621291086759049581073951009365572544635628211011645050976891303654844253160084133320237912379034319855858387729799411250759317274578623900190164899999868162028415101780371621502450961899440993115607863646365420401074758521053501111146826979968135308583743066318652082711034755961887374214561294847403659898174051262064273302409302183687525432686423829531961464728078918934161368162126236376958314108713288463480136168914173694278053537564575520744924869461611723145159087561036183880300800472377393766520539137813953158899994070746718647040125183441461676912418686061057765147728933100979942688423507344050653878532095733610355524652009862585860408848566582596779292420600948445098623626251698107642969062469849491233517940077557885069945101497629675750591668036110029291000495136101093131858495788247396295590081642050160561163533948344101332245625209221111044460796718712994728114628802861057288824379886057065656349100980820724605987378967732887241340136647495528151910084135882727417812739012908084720735397749445277972719547621418397884923604683898467222549466690155571799977872223336787395360642100123040404158231305692034704619754193750573812520719389370554199661477444680294693798300871932387622894199991447788908784983597410627243031688636296996068319322574296360196633284023399528291844816663626062826665747754536012940454849490243180978845219558254231275017765676384467676569606161428328871765376455215848576642621718063590119432766082578900002689161177596203201419356407372154801989549677554529193438196066840861146995784725748183649257923953708568935599887613562976256426260328921195553754154977857564171372046704611172670314294718366296119788888285578780162116554674157670077784325069214357149292777042162618486427237701590379247608278765378273165546986822925684586715101928950522688119937868674978344502715369867965362362581515031046061138501771641927279637386736515269522814283734722464439150705913931921673339006175399970587300986692977669692498356947980660606393924413325351395494886839289078175755221596601517051661590718637912818728553188364917831774238542990502892354606137640426148425606798650257868600496241302883066440354673402598983283331595361008826218238982349149655782358378525302010757866744669880045266394105812789022304126176419818647401820389455176424553606885089948324308212148870555416605118127063821334003803834004374865970317300274023148123569567239604970385358088613605006499516206619733888161701903506347132534876294134598579939182005777661851908878709132987506562455042437203234027654095332189350564816916301345765797212452638165896727141337186449818984600490704789678783570636287099254369102215232839455895011589478896628986230065468665242472806643750270908145089586375715214162156633963032389250179596144505457085296161768238076317258357511252889022904241752186006526610263583299244965802160383345947033659906551657183505262466025245105234097499983485807786671318306970884947552178160030753129889772711173946123895873445341564806463941251731079039790986337751577641914827380443627222665526861779790510740505538804277455809976427763954518073421314196080616271449735614811060094444024694100555373904563308831879481538485113791358605339389741747787088977580368208974678254003640976650935356786233190641272040482802421970653956256911148834595467207998029346832661744883052060577247637830669528617288661518474315980296423241591603340955358941267126881769735602185716060529664178340711172443940637549818893649269676162283596747631121781827426285772095563652525309706142780709800866138267657179168589328774652730968198151058771592749805564547853397069423148680580359136900562468161802587108762839957660441157632298803272208605151052742628053146517816121308105423294995578847561539583898545523250852828650579410977694539030999312844815047302035294911695891023635001847389414925648121824812305462970794697251925657820138575068658504417566152124288740027526088934288409249219146513906108281174450190178579501787938912875405288147271254333257363601320233382643255813317100168671751038221277351333365709994340262960418640249946998017947686731475932052753091613430308741017440626340469066445712933125741556720687076489484273430064080811679897024856276533654732846967159055986832002588184123387814756960250310098891273334884484486875062800949229395076962547028415366294529925661729937589973803201148009930893876512012390512978228591262051711713977451794576850212900031461284876870105107164694703473273083089666939888077342259774336148458613455468976709199127864247626816699706098307284542687766368537514419910188093711035590766865191297796235094630908147887125115593297323984604490399443250597937199346290060525391164597636237961867671167813290475159046963549304304180957880624587681393327352774393059354612387022064320488325250255422472554159101658733911385344875717970713329997479859994376338421984817380255688855207587791722457899226147379752068128158458991239439493176589370555581418997169439197119222081584806817439737304644343859797592838685938646086727716796131968763217928531313106392646333369834249664300926808383013183206828112809706048864799349868289083819634479705983903187796399462402252786172604975129120612374280748572221346481248184276772770204280699881675146135023658971773103108721965306644587773227850401007785303260153661650813387792695794517799543777184274149925644501253496689868252300694932801463978769141714610707714099789238150453653786254528805146847084217710239028135870446460835203531991075352683621011726381273436125706441480622976453989595230316665244161529749309516591005653714652838569354400148520535482004055050873499779960964423454374542140260655149141975195600833149550113891115621724552691748775045855880260525619059634278404021218819550889870591789142746034868835451368887548547107358468141823649867870841087260502780780839248039037193214202564059720919435786669375744673353170638765690507084207633519540228536589606337853951047988959922942302609369123950711946630328793099850681533838015070314248211911800132482048494183442147350100843568655924982535528186956296137768379844057614694098302603910700005001081762274174284722516818009878331574735717663093639664018349889119597298718803789468217252221436166978044601060691109873204836096575148836895414161948002433591104016403093035941780418137442963701377290949975638936505677698748611941196229849852274943576875491151987052357647780927247323102104378428209252799374432112251495407592023883828853029928710635685484000634880068128127917021407282119423597672008789136701552888537729991286183121041323169301976163251378427915408843204327618621345953612191627357508875916385090302796428666334834975050224665030334411703023889168686252251406497627160670582611709300383791143013290675598213613315852091986653604120058289769470750414068390952130292096889700200030271446414764447920641062182694921836506734509156347172425950531625344496689067250050642894118028118635969907945556782902981000931726324873408120842212693017433150402233676839317548047816869949241337788803030044089534115690863004690864132851802220291925212041955874954392887090346667558703242330672419819295379342688737910047190186911276616868308909039793725252021920686881983802233611001535302879437513799437971379495273678853414034345671404789896541223355546909186970993821860818347756943369386046684320277752540162332852000709578760849091990642705785720169262007751948036503277173620288273890484563618452536616401513222431732235383717998703254171538171864221464043049235215024785106032421076982869569093561975540132454417942749479028066511792806020156085439303040331207984849813478890515390362500030434755003596083405945291852293512086183943791149389670175490859526205061014917738716288791639810911664307937667650498569195084973909391377921028419096717966018518147797187620094898109436512012343707945822979005042304802748707551267610417860802527669384755204826123298007994242032899561574180440492051886799975221387556035191228901273702336531705233963273200359431620730308384562855786682172684881801413505899597284456034758567430279802519229098999509221751198967512637846315379706882135207643038542472130450385904269275304443016154181209608995187847330884169495908630931315108796090962402819350441152428851792529728900887838002565156040620374751992366192968195674897482691337455545303867754284903901336830933911172476371018195847961847078981878249511324062368582340202858167183163457980726207206823551743569690724896351479790577692235304930447056996081490021821314979404572678650165937177591436769515248659162765961372178430820152248673338330596584499307424613511965901830602522123513846018653454318345326669424902013303516390571534475982557479230674865819637166545413097530617249732540734203713197610138043016726809426131331003525421547208079797502659195918183794403905502849691624852421982453597312688758813177305814360274829543966172741696542912347302265735947142596513011227620646395776128577437196961346715507955440370298307966954837595542767617081343893902522802341485988809633945501909305363551219361362975663036276622434178838305217741760658019793447719857011435153964684625487605879090795854810315426602625032817878094325642417426076477858724367842817681882150470253671237250185729521007543607855965281458412244345427336747551857720983452246428544507662147641174351321402973614008470571211299942831395822432345766309366689959570143633295840257257530654152735844061332689390835503875200262671487191094352853655126654724913470798663814175086604811550420267263004800551246141607052923294499510375504871504731409833214749160222724615917819787645407010678247824433043589839323464007697982534375954861064171593797902225922912067451250547723055673745110524823368420666908965177723309641947623309297730762651009834100430244901960211668257488291614787821115133460248713257769901525513636809821843403075155283899910755239435400650224565367233297720022335411611431590260322919054308309408388525159610383913751964883132637462100338093803679606029540126927530036919427508103806763011953427538771981093693886706980288976856661454129347610376780002473351774425430911362804130784511553743982862782632517026792120378241912123441672375589119540459948223840873636474322630216619099988080755333510456088902013966041047190448643547621732615928856900158962882434054603082917575452496115858355041985026594726389803507393318239257893031102371348988533346175151725395277864974259912822981987201421502830387229325817578992679962491693993777149020326350873377177775686674181669632052853410683595478560241222159028455942152026060592039679389583142801945971577665367594066586527710919706009619281310149327834224576189135048916318874416879724152382426200674699378607598688888561529243882262740700529120498784762150849228385340169103475720603725280308198370141776501335659063392296922145456154863875584211735375575444242694160645633223915460940245274554738959186303984962371823291123137949041767817113286615104474750401396188929785284642997447291836384966285698292864828290383724486784547676603522630251732876176089463406729232434653354596180854111292665990126080763006673606034358320643769348490657187749006474807953338352460056947350520297527421060722834197578687391724201873804779487708454334529952284169392467512787224762892354296612574840386328016981168948924295438058618916565346638935015577452101017848319959283769485873683038979107422654436775759855731252811932294500217238621361058485736103076409082375475124055995362868604907175991559875934200559239180171824055079912952280559199946558549266513394242596931659901539251913234288372036181023895374936290880050565364731266248969640590448519511220161674401938606162627477355302556529521790460736761748172966573720442416876087847353652022545695363235396411660697479788895602095173716758462405711782317902664448552758293302967936154885490104250248021018614518227817087815467426367986080061439851375049769005044095857148778276861990925694552109287343464974315474563027066499589038829396863682715711377521911575613615448352385129612956670501774345360319478517463788009349776469191954812426825670884251007578331208176004997509995261966692605490676753071868375398720390110079418066209097746219146076109088064661760132601740050779398998521197090534881106953635563764644960841561779391013658771376457472861616382870958613580446906322401090910092697894810843270362857304518861067925410388410494993230497374630972158044601286250904689353345096868552567368687502220196611117730321300672322759935763018932730816182369623168489485632931295306150744357296151312726505046873899061668318584225762109047459896233432989523030722548030554084322900556890634034673182502258931552895140695132583579080131066295716889231803264977961702621973182514903384544472762245986955393192943671212869231981710018719819337057856737796532739572631127791023889670854674960524101037374070480431194962560427401847750185773727739265935605655013855992791292532606321006761864286597444678137580145401253855168624507213126007550455814447322652908763673979812302787153714027804852615861035830903737091832944089470196065048511607657923287999798654782315053000056073586959973826596655506831706441436865354284049286319669005584179047660805719411727549453756884310692120353184578931413308444037245032758950107617587388501021079648745044325571090677618119958382290366898670688479573647928393655183644106721225358731807023050124193807819364846496606129626710529428219570958079889475157348939410127229050274940421918774154423083560474560275905062803108498212497574142600091409862654293979432923056283702645746621081405139226035983234763415049984988025324763423457199986489137278041506544108093793537267831680383958088528728480674911858908065089434043321231051435509874341630481111170600190180246865495628833598898554423705619473649127097674388887587181631715078071905442793440103273837729730721585216990573065586684602743741722299900802680707437346533409393670710032397383269019761741090823930452162727560176550814575527979257563385914603567876322834113580222070661244787573433092234728133789049857909126698436401022521731453229220285840218089872876805430687113546270676214734836098406779106872206609533828564837386354947383276346220500624596754139257818685770159612036459127914918548644095215854389313861464684307873115572567261562534037493359490160900596659143955487945886677985155446368240030925635688220685683710036910472023875211100507687743773036811318719588861620370846814154375435474924677089871350686702875083855781680212067487100710072631194917877155569756092328832401974571467130407722661047742887915462694795468425112906044826409788970386231821012246520801682600417006666159520323120656746298554992412585370110997774613040477529842548091723682720590546392018816863173553700161719456776479077716666443426401782150393097219047853115405235171726187233064522621784839836223011454104835907851120332507947624900895162545835817051080948355652600694150689284849315385697306715849821309267141146513018837792074409683432086753784125823901230072100696238527484918566502734087108564559386048342538525928201705263711561205209422904293428154952750635836449475938686521777784066984132853329019160653313593258450901137909000292750418198890587004450187409595105645826393053190881015242314961859828003257328076570267285382637314901615893053730586081995739027973935808121373088427841510561954136503124513233847791156064727696444099699888078908148598016941102097669295352011005331110563922931211589103096699660378970913768741479734742517561195696511523717468010290006311014876776630306238734751816044678144359719556147313277291064396556042793217135325973758003412338779641758483194444227124838260932695907209255958903323010683306822488603695080744887055314998701713967284629514372167854807781066975665147834445652754354547096968221072603012426587895766814743946088670498263657995028229417008452320769988583107654304656251397125834259860299832803197355767563627209522844282214936031429842661081496140588765660095997298775579410311934794419397653505223654067343859925581320428169077345946869205595940793518670552248206685317895175384503248022812410580224755071759136860786937641706586989836323904591747722377431776668720718212241276337756946754920071054728100389267587420307720658067190337694347162993776490539028822902807925935542699045568766242746351341346984406229823494921429866632320471050388292458969535465170748073666941754407358993250122328123370926631402748379996160567481723715110200674881023022464990852314092163713843341412250722324688839503144137725387188383440984636661694836156829505280353219069922577449550864972462284596310675223851355955430056732289040445103596805421268046664361031865731662681372711636812076092683713891911052512870430033287307084735739510807138400154031642598903880896436813591638040264583850560567029566527477935660044755490628922404315805025925934858503518914369002568803899388922288900226421954078999407751488958544852131357452292602416124154550550007433388063160447990852079871649519989873630854547561647919644806889430286435919803651464611338169591715144123326051707481459863378964672440683950393466392386763618522695352200719605848315862153181211481465939290236939056765070540406990772160023079389595659167446150317272911867082798309513771229162381342018419264898356620952783067853536092656929840972350840162312094098619939616659362356360909162236075741156255414520926844758818342433335857813823345484303370145221031520903491784974478164621932717289120756314331727205954840652417341759831998889383325744854907469201993614389812437591061651442179053967811554785073524644009528270464859825311965732157238389929332596821636969235472480320487408090290518031429200076576013992893267282141656125932402958518630977776057177197410022843907694054118001968053301926165401136701072276147743030035557458583327294413971599297410974083764470245959646126443099750947704302623416969873644086716665595858688759557759105812885291981646603251080053111946569064364463362481724852569805656489014627748652299820492079929032339979694696216153784523549582388293026201393399578044326395354578129075654554698113650827675777634366187637309493021632888854416482016510050624358652610931711477371438318570918858508299084600593615590857449884473825877862844160227284919854429138323974406729166281719453589994518485055121961384396768904840661886829204421171359462925821354632655384232659196158379177564688109375314289076873951465325013141837775088369276795665648725815131332242566653871789379289506159588026944767845880134685298569426511342540276648522427197111156204889568033544717606494688522857798834890264092501070275412668398673062560947594646955805738579840160574798852283559999762794468590861321214193647079298017843091213098347508222421869274841186999864079395632458378533972115942262139718824722742402695881936644525822209934449923645967046397239357627450718236549023113720960888182119369304782959367944255257446064219229656157287271616933693645713262040000601823042642040697384179713149624457026208754362682364075470833379160590316210966871619001409276419489623973392485427838672058488380481782688620449795088683174879892695545284634440162020650746577854806180011501299662801703887633349618606307848743188336917018742845671497118425142167112484868683187291278437993873050676638339060887166979643649258492165876414747528743935807952791361174741743303432203348129270709681966454363469172421554601399626981810594070981428342512475142118811869717947176817703976598256257128527101739335002555423961454915637937842518771915742111853268740191892150289189444727046166025999225485977360802066255166532980493151311155747824681095570326691479938829856683448297378648911172942773144907347388662382902992249650785575357231967309136655081721385689923976638864080683976684064729625210604543435551242377073034291155408249995116810411937841786825679990824718850613336419780784451577801107812665363582025372332920053800885419992014685024443744070834879823695134652148286463856074257166015897287328845919546588276725363434228893539526803752762476572899192860306125220190314754381096202424741920575739995385115848046776514715002161092735545104639301928764074005440575837590305795701466172655115499780705094405515169430658956164742889935535752630484196794317106004963912909436965360517710209451455761093353733948528461532452944636916148890346696845219221030983719340300379926520823094358370366487929118664911817714867411629882059763656283307533288311072663695369277804797756124191664900028606514495693533419759089649166772333066054742110972408075412682737789277010006177852664081406739215630223589252593393359796144544340150227976154237265919299102839611700226783951027622122448011109558131464819595590125246747654451098315729699537904962657454356355024531015160573881590023140403628267366663946052157125246186984908154245735315611175947476568627831905606020388665194052145079768237530899501197179928060122764789818975773993716966584610084527006507785344712965191193740297418280179457088045255920941988173536431371005981124786947065372770545028629495528558763175874489695000498931032941326985983663228256177919436119138960000830605124113943457144437392410991151786607823458575985704983626157906706956329557753036929112223365720969929226340038836530093020599469803437102086874811227600614158133834210758511062634013678068429897134687159466686732654346421815193220762684569496489750747454307245190906188301633245998411261176098341800221586778014726608006696319566832455460788638577019550426868221896884437286144699932243084793919350193090740356975657278090828384195754082059464477873731181405568808388677676233706972431119777410056693303797066203514928064178365381027853523832939667614697573036003260301379477721869671330673445651401990106999275884870164697433269077995228537975031654882303382011146526868808929772810811391592043848265254817911599587327737347338059036185969016380554417177383101526814890367768108191646252830110636293784934734632890877764186738588340951651005877130177278852783023583416202970917247332129410720547279503745443269030434288109002661902158030894674008227803789490160127730540870861234903674984920620438676557009666706853021356844895742361489710810078330180506334924142689281508588935773785412544565275378003661407964865224293160298097811407411766829301990388024064591054250550951768855658208626071541095445713720328471713587031291454000598777961622986147756797775089945768702532891286433450945623454958890430174026303370348608144099461961011578118461534224916391006839256537850567172950756868784827912084240474933963831793813500489374123528798742130957354002205685545854796372764049709955505011496056756430966488851594991762801857022408438668277118451065189049008632638988053046947541463732529403261585492048298995017369711552113415978202338510927181317840397371801821625890664987694370223895037567011274656222036664265944548828299397205238149122087719228972928709716517106135728506889732852733427811659619648507877822600166937350079947179158494771185021077356357024212469327795126628574583475553876270709287271414474551795863309308944785123865988489812920636247329202979369673966032145818556397673922534664331486383095207921853677093636339273455455983114283738889463999096990765046964755516502385385222482953254725443619414394036276362300378080154362267325224804185490470053197537387943572798213779264829438507913028481658189982391899268834996172238905489610139009025524638099748777448668974292863000349180798214048660347107711206164209445911699763131773774202148970918473692853036116296842053794379752544026288641828308589094860389967065877434893129843240443811846724815855285427091782631998477198503258631649362966900260249187075591338519651515596408097080134279925657890049888253448023052423650212829719143193672547078825433447941895060996956178405549626988496598387034246402284415073408556217595539739169984366047383442335372481901624809821604731769148131787748716393005269147871376419809001574465200566041201151831395242973054214542132951966699191866335878048799233523574921040784391868162255867280969745388678696881584293927707463126248188433738325466636692703075394307593064837898878726411573249873839142400096051144927116683510887237146446750223230104067369556984732915029277049057282728641404498045369944272394504164033988677156198304755625981400211454887376035901223693418617572716698916740429189701371275087502017465424813564172730346204552212628323147750390059640799821915094564736417965279108886933836627081513530761469278610697002664159275965847837614552953889587089172161378225331049389010697475877623978801731509358354908132145157081706324097272421966466663984753458226943145286615184241720302056013606304362158507306775618242787999611428957622460232564646399764995246859195650222677188971602145883124035472926684103344469166617678202563341964256217967738615005466230214013237202225817711515430826618274089862033399401453859446307389257970925906534391957894796389476473056749083443723030093862874545964195927251943372594838233357441176528494444144390270820623079568206696150947954971494730148029283595906646890352875857408438625027275401863049387244729577166416696544474790458458271673946279402877209386166552821364058136061301276264603428664021413958075382542876097157150180431691915931752176375870885724628686246648692158960612939820087040814026396559249119055672755758237961929701875523768950885980948626510608891071813253551936777507662186594024591312129788316620433898481167316155574035374994072246992319016060224599660382140416599129266757521354753825820376944497303436198581675926975018273195644927638973610116309868249006157859309126861143173095590429327280259077347757465387708885455668715336407865100178127783241389981449166386304211914273697500464009097490409215690308415846008656071693935743417941169941025610027238453334688905340688587928978149754986011489202722086238624289881888410380170730179491328539127394074871821958745691342298271673213295185758788775705989905778016286605517479074007024489348863784272203765044354235074573723817132432072297809515447017949860410556798646191080825695327672642453802655580516095288789932816932089660769778214634290241932307725810833805155917416976112724397653778754723672466278595506843255771081415668707728076897461977909446789051693539691955215419495135004748253193937402183387426078399345101368282823607069469075604349325098419934391033974312296995555103968667349226541777272867862205266669348090106821047298538532193261528328951692424014310652570417405555683695969536732787833014958329977176268588846212569527570447651771389551186573628073235086176274984842628126309841246768454601193761246718434310359055098164056760824685057797347487691465424637986198149250161971667514634829865141957012535373435493970559188086601504146704685189088685838955786491044995344274375418434389980723074106796177640796942298915136851178643926595019722728401748750033158312571271031181475221852133698520185569369822523936679113039057971809867073243854451526459575272422817348819000272727251104161864749948491912082804858593390325880904892449368131755047868877754641288840407558328138620993886653205620976799372912839062060666260113849118083443943798319367956524761081396428276583524058065875492048073989460778112717170280822829016579308235855516161446160035935332523553439796075941679568859087264509058291780483559357893736912541586373918702453478352084407270576323185388249037517933905938237192937387650890781980201949718539072914815300275309998165647644850500925021784038830606630002298379635711552580238413031178559299724381520817481048380366459036060545580411777138758848086259634673198128036455143932248929584049710366663069779017285344059317890231399738190549137813835216565229757509685784960474517123827380270013097503841282231376582672280126066572196991882428595831456087043513585921566203039909268070116631382760644777076360987566860742704177516049997012177531848447271056011017462280063407010896150721623064143494748836967607517342236861994454501157562093710103066748902863616452271452167505943744629593520412888242542106507362304339488443289440987123081145055689218622522591343013060151640383152601397404081714124370448900753520774387414400165185660525859052161733809360495623230529293627611597562168177566935337038068305568220270656267259468265817713962650772638917745918344449572519440376588194582751951017611462181234176061264492434809004460858940532384015274205184959605310420109378715990608576748499028923378544769802075220323048134136033531456557142433333417246202570931116173978366883530178543341106709575651303287459399591694773489779575354307995594857024391024310617208781962368230673019769935429732762904273245359973611041081122386200300007103075270757693298416110191906785356982920235592162070958780556361502393281915637166634042352981834054926873601262801235078896072571849626113625100187228085047391428284422256241237384910958458368770126165412579760620767873488592392988793444518208681639878207688651807114521930328636342960529065146686802425624906149041048742603229793292962712975817713984184405817875329867812927144208846579976395816976061547297522512474948094191267526940598319739869770390798638729153200789099657870727585320667032057045065785154909528740166938763145872567164404793488861367903706254802587732490448994865130232617780406369626495504228802245613005498811540247399017169931911055079922820587477838028365620208259906266244034815381701911706337171183360737796864022697055783012914844560319729020304352912346146575140051360828079011766119081517932286244297188693510801614531511072563640066383792246139317586425799299130373607135266552655552023614440717105254780605717645226152523733598321376151651748301584446281703899696333983936313182578852820146022051903278390848118302688669689261787687921134615511549554490540230686330968728961137670501700498429370781854936569020497828529075590076017495271119000416248470567065214352249318627764315917199837939367318500062351063934424803866549962469266985890183930326082994021896216345065135576333636970836604058879601851012194203391050194442658720503757999257755788871487796028240726616417339481953382851631069743507270908903829913698487705239567980263333570840759300315470275512978977931565133390759510839985959007183585176185473169726810972431211438785600465512122817156618329068497220543192332285507989135559508269691738918562096219982941252352981563188583876173767995206914788376297586123360758429892524649509667950890068621638859383405127981667187652440868974590442854405433385021195159158078650973316652538781242129231628955384501842726163563427571399660314634868771202929347428388440495899505712401919483839132146501909114726304858983500659068608892666800580631855227840375536760700463921744072243128614191972503425151441078905234336050868347603843938430319489814681771293630572988570735994848777001722016144440403505164649243666523631412884146305252170034927954275171923154594703776804650582742675789930332308108253130951603177134561727115123814734590029201396613863424591609818835767493552745915491184628987797958781964246146453578856730149014682015421315226493496625859190979480080520637585296361123327082142702721261965054261129880875981714362224885860797178002480670546691201607123541259811938485733408148864141152533301937293661752224643535223879826383108231157735206310260710828807481427094482656950298096193772646139730857717925597535241403441804009213086706476327474174948000087068481531452808733307381802265504185115859259414754386053238752420237632953136598493832875729898106624876260914956442149998742961071465301111630979709577438560060165932059942499751497336392429014801982377776101621507397054231458869031456554638069445464898900526963015312729182990048210484580224535494422707681652205218598027915423780842564999325031482292059732057171220452681294849444137678283506238011845251846407509156100167460721237741873092405170849749121556520608953724026145317412547470400827139199714877718826008365018920290022470475201745564403377601472524639358656619540495403248290403219004308856551519905925788808301743309790639508541250101329346170741962302508358973087092372504724358344420015722698404915762017308440582436978990863199302197300847576020932125305182680826308687068605201372626285514583264215005114428711070975742174306290464948991093520450696718783424782681689617274864304392388867892560724501694773265923643196445634221432693674209802426091155229686216469698625013474618621273868138486002250777807919981077687180531135652951441062680211425364198092622509666940999420349861690598197027064184223454509700766227933931683954705497940640985118799010573185564443182466175812090855397277645482208917260476492704657498876342832957184497822839689564460737521751051127774498190851277326909877542957539401223089429163100760103313207388781978024324425893459307195542049278922564311041991055498155548524150905828521333980711196503375033629402396655077365831444322719628659604276912161108457888268876143813603214632649951644908372994668579469378031960593326151851566792485156952661014688991185515385233146491692388259614625865151408574985058897668204287185987077000654641560985742415721872264068418546761050393389608003139105518244407727904238220568624178697192843406717518242581897412328067022043177958879148249643982528121186169001075097361606347496203765697801420414896457781468734095819998793463081839473807748834963350778752989725880358916652189430266918675867078896426811740849087682187436250284584437587501161731412022217270981287677107653001960747201806601726718026052174147732478411356390463656866502997949997772307129931689554377217533707072036393024182757891957791487592883992383774291923053737637465660636468556507247974920928288819147390053548906432008245975896483151709447913351625344783921668712462087240898024635862910809684295779884923235414928487277317104412103135733094972159363355469728486426248356092609323624907517993883530975493424327170991194881127250389725662280932926168051021446890109329063471335212247198787847925193106349485282824681402995881720894613249622495687807658915825719507285183783527668634050574970590612331210796202903667119135587794700816522158772799717838144519840713118965734615802828583697176774127933362220543048324906136914732018678814455583031923759840063206705545103327102755271841671956875484997411176212002425318508501454948563709577045260985059611915612537295753099290768323231238603303027817607809584246597640412341404282310421629528682175521238687204847715335186159567681569497290007177824606915044035433201802798961176826803308837014191307872553924301889843549058206373739272730506786830168797056985872367149141583214516372898426326303000207789705963772851509957087198017774781823170714866874913969360372735820720041447739646753067372529206341460471010398633987686582599650079122545486532719236073998474313218686483375777755531453869211019444152695150003740207707563708756479743168845987508967973759154996462568049804670954779904856281749346010292307085462314567585853099467104655650312279294982975629272514315842740443865510632430736470351821103463314560277427855438774281017274862276503796245797349692008396184514800077085677112626512648609269571988720754972972469558352566809905431615683351554038245944084662462376451361696422852879536005385076142687260095231066636936328971754750165535952188255279085315973270037521325309339684356916573092633680259811075161780373781655296186351599818546165816307204330271584393981001894034378682482788510185131498295926976515648240772605034654129154091205899198651235539473508962974936110728585612654286669457415427380528532378432562825472185934336427520492566837675135026615652247617994478638618286090225972971460352604171721751691082756697549760628731505380380108054260687874565856352560916925639565467588678128470730751993526637782041390217843549120491626194437188800374027834697511646942386216095708154592561016962010109685484063252958223005421025688142900090415287122152385082558090664845472452164874438659077502336230984375122893352105560122748007439308835737414798381599849638626890792920393865726737264832994854400924046969095780270665597459903582090039466282943235089180287465111861843929054817794109467278256228951423735423697080253119924168176461528962238966402240951652780410366131956394224881890610652521846696809888603505661828924872944760582726006333619227857509920414248461790755361961485476882247202821532726232959535532396919723585665765741801716306587809768644774647790704069670913347269525876914713122240738464184437406159926019855204787594857836198824217209819907477101543628344931243861832406104267604012983795461869872158622192304181204747752023465722794063369037128104321171607804647117518603011285287005555160893989756869226356004094237434901099124329020667317196142275419619286826436941226110646037627502057968458494169676451231904236323896405089194987804924227556795030107201922310609085872958651985905354655121682419092778856819590922334742600442741687803319116156649753092592270963342938579293516513582265883585671478371979254021162344446462299663673219155629570156168065662376118402405585866300953638546973713831724906127556677780112462289531189736834279193553009473000010532806456668272926886813980447531725263254197206717038563779328397303751570545197429700770369742072226689305282745905221999530919761508429811027267161730662282429050919544454670487291392764617152232526644099985881562565048705378790736702784712419030397029176941334770884174256604196976185756473474291516169429769663139774251108092339827185801958870111716256183611177772480931455038746287087190479187652144103443284402008785756164549818931882978437496475287098542136936973545227645515374542134487547249343910380751966016213326352041529477137414785958722545173324941704635823886163240143210095187306128035657852891918737519722853448625222934154707601496458442004891835269881835661402920092908126222270931674795381094260364606743319921628643801190479356823009612496384994324798690425229660206359394750566729409257339694133158365817823773493134804321748043716582445304478484776003425374829772892282195924054198425531873366698063193554647809323336530685149686475747142210691559473285402094514120203634753372940982832965756945482861261277558828546804629375806840096880969800601864355406921610864146392908324893182457295759122106874812486449522885257919128183700059633398587411522050851223924130305737434235075475302298314419812802831287533513432445847588028140910380755152284201247872941847876803438060255876079852892718740568742729156980177271458782677529752096778417276580339265890474101129162282270865029649847061977267184297527323819127382199994512263286553890852025550174116280133171033834524761123763462423967519779817072095029823036167337300656792584869027291798338557733176025359504773998831356554956258151403203466070446385984729188739818847049545661060529774392086482021568951313811577963589059886116601885619679959631185705105693438339740494015269801656160294514282277393443831208037637434403955832813772874829233824783085727262006714624560746610587759177832159029403563130202573283278085099998896137580856993050050672738977870380119883991410199201778460962318368986205159471978247461230068828102558797684358946643660140933853653818760174636765517683058263881923479683971669029707561210471055537330726799089427689425760605864347963244234302378271106221911623201441476752921570740466632932943975327471550226904938865346068760105135489400507982985675848450033606582345842455775774882198502418327695146403528369215054994362212556283199260662695039272772214760323519291011669622627497210744136827095722341024243962820677943191096400068508628481446249676630157797404845380686473637941671295619172778667063380668924745011822680152823839954865233305509540129568405353251930821176380300787808756704407140866794434471013244723400864241087987241945016517191844902751850940351493537394260237679387219240550639109744204188069364488548671479171901762749816567839009117159504731625858679750809159281163134325241805105223393674375078341548037860693885054210042008959349129761088383232797712276016487232082786305745981053401214555414145046278845559353286014666614111025119914042533998317124900417237178818591091784027152451165857545590146569901734046858225003173608001015502237826302983687044463773840090234730252380663837586824642172993977300763493529770357275075124009444786823337648088704781942495348555940021121138816295314137063091109642905207761163870989565128642438511509774228098613214988183841877957350025341116957369922134218946605224447107536008289319540682353004496651756890750136751138909949458880143261920076797322266044513659916255579711750327289164022796223418449422137228929785524853800975054111254248712950289872141333325253062098513888155596570998121476206476880832905553273542053359049825933285995480257210438956725339113020095237714383416546237490989281015791264450615448594874836270467081284754372949464827423035585491961123833917169196907239818593774498511411177274889575884590083235795321073556498710751646432077657739236808409120398152692466340573019928705638610363830030454178130940561068617431776472727657884606068083330919965266251329973903699609953153365574230864344869137061574120520480272449691636859323529520788413311451508929194010809177042267524534190598848368048998005460602914623693023047589363615760718395557155551412111243785478247368191667067839960367919679425108775515431607473450855491096346118553578904081706300505715842165709186126427213261055820340768447176886562626617482713436835843475003794335996355932796582503047952140152997061346015482373504779511343751772600269905189455619305610574013076470081409406102609057171841339927554232144878768123559546021141893458886798648837192503762630723927888564280202065357916696559687141724306409796114093910503295804174057675942621694072275632924193945428059391745301125767403934865109820548077791874473119771057026621044306273515229555442733011424463482029918739738196280421267433709668039888523825983943193294679174300143089929158856207197672082061214287956881467831819908358009846589049446878797872553213814215606031499220723294430001239383929211057081953801315602373522272215684729218812579745606981791380940595600798916464408607464897708810725248908449335028930662186926977098725989868112869533174349720713602642302579760616702557615610532655074209383323202679783300984170467616051693553602730601459305463473429546138292809806924303279063135769454572095949589893082134803381660372620554984643492010376518433387126131911205049603044318976968303694051362539045047229616189085256305470903388098890982055668218618312798528623406380049290293076466587938163744798158248260826271223080977608044274700289113122583445516877579065935091817455103390503946847117264063551005056591941021171908495992116418835607326009216375000746823216852480768590292746554515057693231929544595537655651172325599940053434344345845362564192412718575474856054733899546842459007408527432338838248670754641763548010880800587663363665049957651571326997305955316875617684866174625973382657803156548465203341289206840290822387356951319485581733148395811823819989139263827370730611558104413147327653675943447365891857376753819920682520580710481595474532049256996961533754349197678220547212225436855185112372365662992769021185044615090081053852358701541550240777625391179201198170418078341285044981650189407861879724089666504617720650623844545282633396679197968541460409989093334604236950977452740917449506515790859812846282582072526305926095839419167281148477603384913538610085146590827038378702193528726528233306714813685728571414490495995804861350138351202488090275005964809303458973444046448101706116861180933600906183338107896049826108557187162397505972884413993362092126820868437584157552010094285350674672362397490961997652948877928602290222886152737973266784302424329921551166119903691225834358375555988884751104984541654337401037579511340667236986855749579686093900005999616418762272371836423575539383997194682977925953743455902530024876195664290415115324000643460678034167868482555950985721127529795811478874368426061739782654420960467623475975947801595064345640626654605440280100104052184845079177951100963224772725639181188562237834772092954405394264935702898002641258497682903141712713618261633537981979819955740989455531531896193051003063588171919964380970624247519282193022725047778290501768897000080102268760080877666674888835094889151131631142642483582107988918431161844451548579477590722395328043837587372321545811703546378286781642066722921534374559609967622391392941617424250088906436908632871191949483222620726938923806861008610086556071655532621877798218424825598094764993005603510723926081805533926683402820826637781366240979056678864881154938433231332772684484767763151516969828864866882614410077583759663754563638986628565660813304277866498623287710487805209267627251153324442243033261045012393715167976572947180249755902721810598981402900722885673900832733867229826294803970472031077412468717386161261004828746700157659049435044319772409592382056635556588215486192472401748809449574574782822940394076684087423122064958479795824039073136706840825985245521589127038552603779341901086058048737180027281109521022884067066494433537583983975449418267910243493559509265535838528730531718668583223306969911594751923864134696601039034838468537230540656269981487323458544670783765041111900910567225156114658049446880741411812858697268386965936308596349883962749067810858988946764027227768608113630134918717006809109518600697537272174286647078288402473307112584817346633501658321003732562803710328695613439120461539308835091105604711415797316701086843355062512899371815145248121988098102677760632302884502783095742715364240839105171886871269189213091961429246713444133059318864422137247588066085258881458929564130691196973061806665713297218793286267468440462963984296114630318366436998947751981815202856614465016833813091322823434614454551822389587182619329176398080071308733024504387927164173913038127830669705380968555413032461649650037548247426959535878401313998891310632400715613858081805224094370351069767845837552554869860632099829133770186658008840382377505555427743022421244011547526327225435780096929331570744418693612139791728252213305219500887108299775254202496325843413247305601878863843453259864829035378862101201560896609339484361452200043977326274999459352684405843993221550137382990152360974990880288056030101013037776658347660141781141693283941016340882615777934661983676246291894166174905181526841001336598890619465088136185626768814525191898186074711813855544188815359061069373627406213438562756842242697732691336935245947407291317012860678082536119740233401700510078121815881700668622166824169731569925244044919989680461894247471742114633027895713557715921768088818001253910306494606950892538950035123338138020303822590771039250541623056167703361886449041800834396000145226639287463983587501428092902294541924623532086395704882345091774272427480349763644770094703054794802333140582581449438936377763536189042418335486161811914645765782926757996956610809615599423233065260622259908161407156911791266009012135314975527690875943405368446899168638089443777750448702379766677773753809720994458213421004770076275618680543518269612054355071129032501719262250449230856795031182656367261672496155945812546973155066970805039787242191678935773484061368622981697008534354704311495311858051017730479998507620487369783066605149454302033114541196370443708173888518918108809917914520012042005882266118765784259203488477291366340121707419421282816618325334070071306525079713922357842843253780393889906395721544732937978937076081996490226443103749913050961824860153790340137983558487420313010052807760591332779617411208213471256430113314795799800529293824526600257995413583054456599328558750035930151207904449991062766526825746622040359371250837857908127515546877556321774396180253842677528206455019478259877791462704525656166632100173710338799532517529940937044677518008331128355580919284314940781920522251111917478389582537666135164787199675378574596811817654082429525369489988151732311542365747018289000336710975444204513095916275886460705434275156116097711541961662469472907000679921299677416761472533713000129053680493383569903300313174818728727274357032110657045557614931496606421159713879937974018050995943552850588134520849474194323727451888059630896334634369592480712445468487635360557358695932264307119621275210509543358265058940305578332493004533388713519415480495978578986375252215756951421271826379649861288287092786215528521890435783512067418209876185946322277939997494091901677806112351858144179396181089021978948873155457569303120180926221596954004497637883148936764509269012872138585794247312229224687221467982029179266487805907550279518651420537918527657619495410444619794380864510819782485482042355148613759423123224482143200695347972540066840864522145929185653367786924511710935498571436738019197280807569765655329981059345887105795245952569192752863187493465155653257653990591749957490525845303968653300721754798058260817795339164669647232606035129901117179012360555346501968815796941352671454587861908317626356757531359297782855306747912090874870936725808363103756006692402019160085251482005920777151609607279425348421985950238480957606271504084951459106746151818019759202527940428345584736724125877241488630750918319160761044320957028933594422571658502860051917558353944533814159642400939139607054620645426999615107568677781540340452823236966197502923950983954676320311857231437865887021444824675397668382821682000217978967594743990827262888453493403822542183397439796616382390116665248412384803784570117000825073396373113438540043997745120666212256246592821060203379729554769662678316342342634822868513519565226937706175960952371711341988024747858966408202578190309341621916780433824710155784416329680138329502994901619688808080526354919805344836737477955251238146491616368636945406702888491916429795895579334969942149039112713530885826724417134281922037257134427493197153206890484563166543348395638921235417838660986872618352154973809651831017555535518751970328340490238497601173470866392601110758188122087211643679750110039686278274881093574256949118920357024129787986011215624731002099560180013721260827198004541608814261737641952277037803575024411431333912831367573997403621128222522712079772175756051071335777887158331670709579358790373068949284131030761530208661687250850209388723244635586597019651711038797458459996287120314785844177878820981620091546687940747310874967368734965903632764170775400482615301870069054797614977110759931705342396552066901106427632471371674710771314310946430596488699956010059378393831350594164186542067545994582655633273229510222213032337440816627499475199634520357693407485807813740105587198336342195651294705103467487494279212741245986595804429974228050537945395719248768301497074446725299957550122110912947957532544069289477231750910182236718830588917009525838018691441004647276218805809368769881967215657713007349440523187007931000564278592146900942830725322539279271800193064570003132761269465635491263849125918091655977902575932012482049370921169460852557465047158236799334766170888645413200109378422880930993249722497043064123969916445983900296053850026496254486680752546806721599365211994606161998913761869479507691444183288178466428098311793223338667136402444715388690581628359432902986015748727917995968800958415020172372487134533231249683289648968372088679020912818323467177614131873930294697636174526619935661736205649772265480651464087130126958313433823322148586273412462473548934066205990673568819096223212038542519008801915637588391769226749634011466413451439574729781422011790792006268959679606218190038092929050703559876604674071795401705039437657797409518163756795800879736749287914178200713200066229095007671017487586131524338736747182927296510055347959889445365974986162296872618193928674546005827751775781871155898022860659929893285770137907035614744544189793565387504363936202544200741337718255198708832382889325488360188936365993338544449123808432003893614177961136988507140390061407923895641914908167144839927434048290109985276548519506693572485833048857476156293084446966615086244555153619708521122926808012370571821839954059965218382621407471496583387214018687989912454411408437482284701711879831494666235665689856986802064691874383802618399858123769771420081763663914462662843242361143238369709879928209304970710332042899531965164997466806345205021866537210689074100246804339594557816326448444458798734446147888740494252873469369377993496067298211472366580649638243361426353028548582970985974837405661964760454595413181328816670854317643360918862123831899899788483870579956858395894038818907307013987076418951678305428607919039529707938056906112128178483358430020586050917578485161237872680396611828260966429698167213900796502475179235676203793199966162749187411149598544184067351318250598242613398697979874573573782484076280161325818920426720462422047969571961984066962308131455733694068371822092614024902338777595522677711308336727571428046473786682247002530080326527984380154156273884192022312050837826102718651458002887642670304078848958093274445522725511407116014999743233906191679422548300082883567033490752598203742110299531221210662788535504570331329855598851945203017418677628819498496853732477485023129330272069228207166481604471446398469762231085471471300467218606940891379282354080245351992179921888710129069882559860460644825313019018450533808771125320960976372648233155526625077272502863099046501322229725708588214019160333955907832665755880118234256756624573029714618954640933390401688111843637684532906517074351176654989892840812204540302037340935948740568139415981752018667180065696091577807756872941330633735437223664560478209611840194613515851482362961369520697456382117837837155329879863797426781777841403400004787712764639446415386761313573743066215073846919749222115759652380895795096075489105182556286780824420054092353225729502217220267659305338979700936987746031113118143084582658328936842460016886254515361444451579421708876540966665492613292257223174613616920231160308400775516219878657418600533506643669183582463413868394403431132626652261603653719142404754016565718149735361974605164853309905713644537158632647144795658137318246399725298932796850234953554025617666978190870515648782434896248405367947979315679810978041368092706653529160495335004370785571976408731216787045813717642638310336842372013159842722267527999214499461177807564811172206629185815206058000969832099445111289813501187421440761361156653208776438587313059390090317041769274241049966695686720214116696591864544960230243223926247623052821651102541710490620028208247037256079417209047190231333432821513715749853109069445659875451105022298436740651035175307569293363852840296054457245985534195018701957384326180009585424157296504612706549782904325212895126828449364717653193228480186709169246409063462315191842676976012730623016968036613195315812032680630963230199255480610978096794121223668214768246780889169381827956493918753061845845725455143963046997635640364495846075923247317205997455855494352170336423358955565879690863217036293266054545342714350232818309096915797622068193541350139171203688153321680869196224549350651039406145591028171531796922493924179167891231319764030890750188170830357244993534358006690885996093822307673386896739599338947260233563438590506489988990004894115735975821833734176447502932021552947222095128505273876093827022175344774384316682421259398029038354656522106625108410566620568430534993938340403241376074894792992070337270112363405001490421615937708204972916095915203316636053119588504989853924517956970609259587585337602914771807558580703008361777499758268056662955078668531350177464694050540365828015148793388390852728827116033740574921959072310497731768661658267839812816041046728050790787069417526057711731775289400955296335375817123533448773922659674031931519946639094328283568391979656984379622005341072348869752841486278537572762654504706136032297958283191716774063828288322819371142630834568898510516454253026908607234920965652671601366119902713645106960127978029423477497724370654264546927737547146697493799701165280059383359091870954006396313165327287248263994912794104513650883352107051845683448147547676850371765663489330403768465492082407231296258185163838152184816200712251624722787694407166896667060506651936641127338644124162218538580695186353969234451874051811167002260183682044258248554660732167022121521556715464433612430071774254919880326735495045964115399796808761260079273084628057697401889449525675247196474304734744059919398894043662226960143012102837176631858986021998313445641656779968147474102195317512608946010888330874669525302719000097853448835712558153278397327125715556426225655548017171604927748696432457560338019540579495430893639981667788888109413740311981483496021352271256717447903622340760063328825037004171939376425771692537500209250098353297271183469210669745529844381820033260010426143368265899766315049708320956866211698025540881849352300079824886383299474521961376542479344903781172102916984797798634243831278488449618876299634083427755952483183772362278276740949068445509813283830159660307502359298369545287370889979097201313704047432739339500104339482232269683018588385963876433105588529855121310122988154649442709244333629875584034955849684436261714564426448492167956840703324333394467046577159549524014692885533533429596800067269071969860628948689370495219151427971254040630983164599843587175589606768811165421854989419867792070748337005591185477948734804084688892138517674480301925056474294477362539138957813749956095325588889024561755679186817991179508405472413476609977772919102476504755077662105801087036977523251033165785610012279788882546447923795199260726230487144096992094789828550394277706534228349629713961526091636848736041342455641809298189800329691666982934027324668238298340130187710873014914768176566471108065984286335014350712914582944984624290610200547723413609009616791921872384575922907332438253318837534157634987544381166476756027321384972141739553250976838305372671075192649205932870231949738171395337323403689414645265958427784204695547333963213253911455658248874945233483915411468742982489196907979366590500143353178433424230342085720656723932976184386623033203989613282387785761080273528302734235853999111904366508930769233330507811369408126223853917822018233530173037861132578066429021787755759463846437626893389833159802268795795853182596619408524490892251951218548301145768379137192169816458776226438235325914808003206633958030367616058036191055500253920568728722856492412407025485247595656580737105138524438076254713438404687404399300245985190453740021598458583704663181250918860997351445126081411008837106570179839530511431547459680886143419040063337655714073612086586152210360620323870430553461138300162144790971980804226397427154445549080244789487575850854093661709406413267392393528503997497753638068600894175305839638583374042196093189628751772768090404948897566881038361294376241046282636469613795122310152319098271544989350219728626324565170430612645406330507865878978919183231643137582333836493903696030992814772588644162337448479501893575571313322521788461849202985321452838162364725125176999450486235921423718490851203322006063480912334567696736298949682955796324131787411282445345018527199938676918670090968184916133397808503518508939524913177221946778799151088528485786893870837527818830006640114007218578266765842468826278498419347335105954151258456522426290904311392136427072757446260944770297954880424021052013872729629834026084575955234784527486793703466890139108175602054719302089952639967058378379830955329044462201966724986163706955394449419868152864427769296904472560961362747318556194731007989473580975872502688502526675250940714120762147223560313062950565531334335939772503813593093506723035094377335208342581318687307365736581674826740213124580336189063687555486979141213714313548875623901743722731711618833806614678971192532790260928231672534465469912990799618985325373290391064603098322478805321618590911032744531085223498110313045914578054061517931624684995737389087815690342792125425617800711443402229725122883151126514297560618033240794191427123086664046224986930202276587160877508126695739990452455537680388739837933266729408567663177893509209725792443828461867461501870690365248913094189520817104908251438805950008878007739661942205758136745894988434598858490372462004788295122374434878325815796225050216338449136938595400188747482026325288140005790368125910642980698620615677256515265363889234697386791918774596877886356039043032428601319879661042991050647858012808743980437701037980601595071157144116593517614635366731547381214567151205418811911394268574641075480425584044500886391482770665053978342700108476046268533146971381435915562821539033421871643948665152456460931367577601146534454198856252040655326288491982156531674028757560510624292544091104011094102933394205167888045472822107963447972386661195148996441171325114636211956485956658145331034443931259310494449340785343575440136356672036862534614642350450415178101188926539611322817035516196574434870191133539316955263990014460350376247466192483999573202998193491989956171312461033398253941959179025333776572440934133605232710959018204567288801119972149786708504513170433443324801053235770365308243521608348980637605805033610954006987437552691164882613390390030046389627665849126027291955052650803088888469582947891975116990590118428007513015211141244507613131466321262261575904677534938489280950890679184327577618674287223476523237057953937727818797601834493456805822530087191893209729258718320671559627851847252438887281861975088899343366846389891890467176695906080791857947550298091400157920902728512694213138415140183258580686638735618451129404969873308756842884961325143520958651330232065038485239497174106151960283445148504539265910305770374895679990983238719632407640696973156049546838565740969615318954676957203037909770453209284270272976255724729239669517712202002678641635207336218564861964269235904258757734637154742490390666746029866264074764948495706610166472343915345356791791696018895063893476708732756460125986047165818140428332904652313170295571755393965051832142351558854539174754942711119998833128069892220649569022093225222239036082780217839203230809731600023798223977839523775014727053793268801196670191685444200111118218862861821975608454892330094359167146934921986764648188616453469577026396471016424564991886660993122855748445982197703974528116517860088201691420565456985442116663140126960038586642638180639733721067873483540304587899647983096878925798258943111941935172657991484722053220888789394981247961411063677839391479451735922439468042202209219272046975430755267619595493415792885889107889400933779697433376922297632970889842811702491835651523813242841198657793076802688231760492846846031232948123227555414661893574369184481128323515202517039613709318124409779570472070000211165776731901791818309136883542436005581646032117262259037220674639193260147763424462173910961799997125541606971038903444708643309022786745201307399376806594994326226696439311332686512158832648364245678706236527368074489628761971805965927680447701543785028809080047432357706225673058057852579665524788700717618389899019901317074643380037286069189853897269697287677708239117873383403411195401898277004396571644169744276202275839668095532306945120873059718146264584180026031158073624535058122587002798710581344148970684104510234965410417668539725890443585346111762794513771323213671376313941686529093067468626365341278521691536914348532824342052605937440792773489473666265194930930050892474802616871122784812873222421057138698461002114711014396450918951095941384412982013334089860232953446192471146045762669105437556452196245946722763778931588995139936327357946495971639706019555078308155669987665617014673292363344521574866130569857086351067030924470379255327854030419946203750914687926816222660155406088323773834798652010898504824393157505497764424488088994078446305032848879802270670264845069450073260744245424173191753629307788119030816972200876138803516229498255645072187652229336012460881314738755699841751259577136620932571725314504033403296767451958096978198053267467842677656131798108503308964948004788623506194373026327255364388708954138022213404813911583833348641251815647382112032492358346769061728062842463554113506282718058632549361788884800949684946533483760940384591634685366645754594120722305884487264895427269393559487016983238596900985102777895817193518769222915276259302773250228688095744954114432260521153349574143453534144828647265842503243216859755363309655675044685207245389955626016848315699501042945167005261154131958841969865002438239469434439406150655913117719682305143013547862790603117726369906958244361370413057275500078550706819153650673825796178456832930103854048841370468447731665263189912256330716620649296913217525006442279278896107182197699684257764477743992445053605305086836255358440676963069690102631145144158612246058002488571298282674488696075720007387631645734819885684096315077686312825311229065128670600361841896153596519882629415871893138254282778126432201329177525531108005883171620092357803439165957664158189524876138592099094265921874753433268382218248763477253269031737274845500649567884347482062425460827424259961448690821457635023526874928757321117377024578654446292607170585671025545439130847860838272166272540498667919251576029486529997798583147370428310333219062695651690252324180100617932345945028778602326603691250025575435396595345431703277923707094551591672194606937113983644834283280739926889600693446364882234678934614470520282855465985158883520869122900604335444116666630194943518949563211486356370523313716919911305642396080639837512354476766230952634521061446111942278120732839305835864304045990287461085940283036967347824870147912518280448282238209000583404919750673640176138605024810996215028150325803689646097561189752294227387126426755849431663613073550629041666147772705095804364476862269859509515340372300209198782214410799234203493786045466459952956338965269518418485287851211566622597213266400783496189320213493623060705732791050091117747642052155395811855082833334523322396774798894638564020978199718437793445936362920232843181859815003475779588424436954629875288162985066456508343291863336832214730852015643175796697622401401309281493847925583160611471528593273296441120319266047758305235141043184125812139330212642545965125659175988196492741424955817789747054588390874934120198028214351808574100609056832049054429963893081982445593308921744135388183861758809265300542199960523264711424802068523861465502703904452245836119442924919851267055479233675736168683892502098179576127288828092576948467398848315038384195041657454764743033845665887072100774297887047012723137463456809063184736038779344536526032521870392784202478429514037064731302734921269938895904967370270582057626960625553661665730567484188590041017340904918572673884846521442216314320301930094766795986168370861871727021845938981126147872871698416915815809703429029025591190651489195140354243208981459674233473523684191770336014250313075274787786253309521180247044463444991812895008339423052725510395748098811483857674741251076508169597504910569884629276700485692172116466884011446521745087883505203143155434577656411097023715339524469834233693387125446520962776923352509994737668710681847724716213745574327429621534175431377925930474442179730854757258084277756576162684877274825661101810023158513642331221142279358019935951557798387262394844501343382650187784969642573353597564106079927440632538010237847285486970629598917501778180086093185292147018511071705955007865894403233473524698446667093263535797559119310572474922549267122561782894209267353883978526028085318852334532917454285212405836240757863143802166478122211393422481197576384826555293647289497238101070501685213515120881287686066250391008045253550056155890468701636852879294290158699252426310659163572054187363894360418844269273359031353829939891477154342983968078333787174368834760358922481788866207681924901963535070784325572298750772485597300484856142233010451233635662542130307834218420284138392956812528614525256099070036671508365716760271979749104917518308234493416083066233839978117107086425363126839398009968831379637647045249946027477669512594215628216701549330750538786179878401036109360602661235994809475327227532961973132540628704030587210830344943540357274579476950198198832220931402038573653968873564491076852326797474251933149453517709715604046579628939550270820687499903610489323520206980748473355990297115109200183448226935114309615953164750046826176139969036667102523341761892582542177733144240265101330646585724577902813954768017412450548186257339999124865840599626390031100821172726192225351376891977092039388869959675141513644191835862357467462172547694780819066799039196772704753290275766091513663512653952166982998566428196472314769981638262283509319108914491010692443083522120648861381234931104336081228759184283743086456816587725750575302325825851695329783326598094930135766019646182574750978707485891822108716109992806796353091532443738275753035365398997941674346830916982874800085013630605848753830002007309512826934374426918378391088270376027480485441373682904584953484906068808283433317080839921406743184525268360936322059464509175016324850442712983381917627328373132443247939211147480609523866344298700520883265384315284056983864326074460126639002031499862337130937412735366031009740297782039726609974350281165135313792367027750532420370120968090815265070137754677467706961627657277496150586152136220142086918779777800852234611678800727404640957003029183596177116251226081985758487581937642428526333692868053648239858115375412678879855479231261174054927143675290686324411779026840838686745965920318414886097656825683482819355239957533904325848095804328681870558812208682357852362821808859449381438613993912589087350231564272560002476416392399112000838695574416857885315920665581854150629234973783726257404236943980160159363996085093784059242709756793151087575491847398854163844500270976161543412318011544354031081324948789538232451567829776762588867639028892423588032896198011327492648147347919297627962864467927166227974155287907368545878696826996972431941768568067437164984356696214413938870690537245575614406896409499324955944304477796169842824552657031658421754630135572607238445401703709421216353169760138493463422327793242442323536841574450504658404782079519620431483351710935058446577517923727582999758983865647692464028946115397375627414510653371845713578340331795509448724229587741941541494387461128898623141176713659347148340839842785272344861446492175699894468131931615601552572463183440694287092381869391346973035076368389851327131528736442979802803279830526543508427428895767862241581113009417983444116280042021103208508110959864114394711495040977422664907218189622120295094803521005780800541397728830001739006372975381896091516447440581166417473526040284746500268923293846364472577699313116378646936870538164544043814002785333294643221095444338049375472124284082501306141335830928476098695716746514104199217110431523931065332498796968466929384335192706380358361087806014637276922175131759781983870076573143573997172003265279760489474226748208706238701478059414129961172722689163161510590450811021023735936802651913159725817095814672954397369500963767875111004608251747470122839495137797645257998150209456381897694541678392336717994009981281991659118024771311588061511780788306097471184878085366676104763442526629901211584521336273939568230865623490156945533898473327755058570965069921753747203726617845851946195049532679363232460443746757863940454028366506486858959134143496846489477324131696688031867238420990971066398123575870621651974731791094546719670375430184148485640165582150359470994321865437240020006424291855110334581655821348053179722741200474540797225201444969667798346315834786168575024880513035423399705400480904108522808249604096687560582270093189008100872610838886758811143824517014307924874448700268010240102005970437109767749668504647921007856268323958735522807231404366907860927999020318368790766857599125795982184389296636467557378184250321939087017604301861491474271113697354235601338404778847739689724614851140903592956839465596424648113688596344294783968066983151090565913817577308901909339423631555681370844182336253868174726344288577770560981147215712695538229040029992516139956439611398334913495556615885133417259810595404271024845221108182972339910341841942199361658484881932887297099589170157421550306825734827419194564601656788824085122781622507518025437742308104281950546612837684033407604693986987884791008622218518749929750032331965372392899822504517037670775362808459016264245077157548292002579162640023624856864606648124310250646150965639125706690671610326948951475701779280047584679418444691736034257315119263684609317595748501887617448479385945806054002000960868443338249181973897573585440096786359447747590941427042481838527451022143870696868894818755632680018184204769230863163146622438188245241996793884631834906071879921715797102647641376319997486030246098943712794330959576120726382510936291264513243900410069039591628268296768220423015981813988905027097201508281787696495095275802222873352239150299926279173304522893339752515524234265001170501526887829885579493990454868976337866861173902332331907429909030628221842393291122330382721099209568347894488676856511010361755574029393005421218791343200432035255033926583451905722778543479220725037098776407428666959840269616301563204170935624363048711109386741499813460054576951413625431537882856872896078079932256748270751658938691733453760873243465591540260301740081713978402315252305007777244771562347359538242971831297081619003216650468818994807739502970940156276607031201074688921849673248773481310521005049667763803809734298241130443499749134660627371582321900768452655513053782566956119576840868579494455381147626943869282066987353445396705393285805291523160863498291653178329851885583348573619316545834176808532821126850294011270686473783575881519566844027808751121536878649199536733374172303227678359346182540738400911104562170739860590502576402915734766585525069642550604093657342369365544870574809185259293347771423201183990200124314147691760999109950858638428049127168447645680107233501959855799050900039288264073088563941325919557596255034418050706530844278984922338153969121758624502027512643832117063093243432332146950118867380561032835303783818336976074414752917901332991398952023567599010525303423602008186654436143741275394147502099833803340567661606833996772828720927607861898130218403814940305699656246944806223348037806966738290310241424790616025205181977693446021782766317927479949098615356026348889808016416602218296075091961541278058090215288933834071365798142465593750416251491035014536768364802388291786513080855287637076714172831908179488216413123155599730956999244511652892113506033006545502465281355811472859912456126865649497005888254805867432520191706839102390133926900730990019455319581541856185974510076980375804570096857131332074576075011529810324369200446194860079827230149066654694830458420532322901884872878898991577007912900419778180211091582892505344942831688290372423231752939376629968548988305822724034127360382997959962375286618033549093477043247290032627270443328884483980597331856311224328834007915505666630042713909491877286529249230716296441050717848941103910512614630665353523730498371397885225533848376077265451256178129659257611234293258485074355676295641871757581759327564674374542368891796936907863660939552749995233664205317340819517735471672862240913967057170358424972147619585713725186727845455893602060143585817326775876613558641560421450728337738291932770791650407970913697322825612771832758003898791473588926693319527169290949597012435886948619210229081121779580645243096915120089858342608045442406996114996876231324602639215161845175274210419955724567500108369700394974317467080793617528062600114696604399096238523446157043739265646985887107516613030334483640759784735015072728250201652730570844585019781861472830299793348167360410163324240110042631478973929000767894484542887618463063724792755942944552041487406314385033669718906127031538272106870354234168517596299737284030153538285908956746979599177059365776306452059962396526790965936377712846799588780575854174166718650584242034237764391384374313806979336014252183817489361827019866041155307832813380410260948576637411146286678618287000937962543802801499254411389042120435001258244667082878761363718827903396483011459739547484576311744777660176495651148137992416240510668638068475928516061726050411636883621375555466243674447742982756197420612223167594234668853493056037182816633919232336646406148551466883388601103431643910657733286495825910685678520228949513780770285648263974492932012442641599557001682691713970352823465442267242537673290940138819055454416588185095020318708549272045294026325074204980316589049797656579466450009221933071323826024776451205587470764197396677197342654341705930037114753858927924826042482430089635780596663433573988031809179403458389055766087255460139415280460039292674782800507608745880637789750284136960619660728489956274073538522500308594341850392455532202847272810258045651702824097492158029716216705635445353083810409674915646662938050045790659519947763336988910372524893193335805306397238772747793585599474716176488212099454838970397321431442791267854255011807554294974589015334478676258084493196249885779667303141136278270768748813092768186334994612882569057775991993121934467526853923300934971953269222380515104383269633599652676740595166815327121692248763946666957335727480264618310203781631802446260687026850564323246902564598900133941182515261106215305599725491274978945378353823541498408091763092598338393735856874899481295173591877919468493709064919428219972105178322117700956989536956986291707135302349222256489342121910898800484586708012077982004483529480407952394491549326586428997661014087571146398031748768969681672208997883128930785211584226203450402968662590119443499313537674681132213853652938474402806159737937294281311798845052445966630234976000191605248249136642421315624743393223303360468915229577423070182319710840723953146047570263796147993157187252329147214203117086190955471293176401974388572449782405824320237158834993255805268928249521429379432913234958556656106967394345334098255770496374094804767735977784899790698553338793766244285708305859634627701325368549790584595138621808760839481848980077272382101586683448823890741020790647983177275406262698427403616745010669914648218111228596372766602840979199971019685465973519346539278182701982901462116977981447045918346876234061838477102776926347726596719842592274804229317500745316295764388936722004647777966978149800304912441888308767042120807981615739331230751347928841911814095483927219684599327910413138244214350244532926065564357893369058104124625176348855645195505320351652190082660842910613621266711827624636174292395858053073247645582825299551206550287391467600738452940455260527509378055516181401672341296526569006363533700817527539506008307316848326862839554123106593799084918319000640096706359290175470625791881892619183973694253337039930081422082013877885134749691619668712737070772819554392366514522538929745714758474287303329774882218005563200492151729755383824857309737210985269023223618087482672963927711488896475884464597763947156604530395326107745770647510315865687845274045602236334265234316920976209886809295103792352937430178169627009713666430774168484166115495597810492950411176577914283370237516060893204445861276166398348343775305697754240150417539399542953150273661605454012001139333138448439700315983214946668675712255912865274193309538714493943009038950047021388517390387991398150560688744620302029699107032547734151493594312575130129015958141531810396579938938622414834300571218626112047517381314818193121384650613686982159430911033329689383062454668206085342900106218520472138730856576890407627896867530147919184305214223894078137719974217155618118404067830614790843207065631456386851100266806242631756356879488475692504055281006486640563712292994718578452333861720522983564756917189097377783312053829998347077082863555609543907083179425802626982985202358062253477345225340725922858820425368668747544466605980100323983506896593589841210605108201199531272071325955501345692301229204411539505172381287868847225099385906121022749574134939076487974384700359466538842849416964548280132578098918953461475383901506434461110340067523043918246256824096914143354422324107236896004953953976745936575232422930158261264999211716966840486094945282550696422364013009556218580999412943090702311900162398093396261822478614721359666764611386404055968204921425204858125139412874444951048454271081760593007395210943648696433821739977852675335269333542270480860852426011407779132533971344396813339248921597579099842891469089252597773686460703825490519085732930893935517155639500382227843649804683172163035463769942924302198271610266465302499572694798960727246803772042454510210342815391885237704499774770726643092611492770789641136671004430111375429611325887451286603561646274569226289163719511817258010238187680834595884453059347580442219943820429258797502744852440431622042686808574912384616672697619409949323637726167163538721850587602463263639282542074643109305854307705016209077268801843808691465744448043233289737705790234273970624504374848884777584854678249755064397264561861180864318167701970367624781188209113765893852799348276456163085763647064552984684875643857382908341126952375650679568849745671973773235352781066673318506624514922992951059461707939895023480950006750260403253430130345017468430824684507752417311610415951651522525895418996980198064293960868374471540886153986345061963870630586340209810354623772568605029029819256750868098792582827089341602764571476195594459572284611068209978803693541375163501144508526918122961744529724979008079346451938398346297918554327227487514912039749092300834108896199688840852172248662673651404519787805445412445379946644408827805208421390448898826141029200082915011656690250138249161445587120136483592263737475424570052434678411618915719178289536683462661069524870838472438317282170140279872373952154721439245355424553312174013363052365406562806592293722014564335566064789874838590015967113327744931196790422772627707955512097348657231004848926754832540918686022459960173941410739883227807536729849939658641439162930357522931523063871179141481310131628426308351270629944258434692526290276914389214307740304225848845170972260661817203373580704813956261032325612900873294937518800946160084204127104052262284850693703880480155238387617197003701182202177650424441870024452691717719486433355042649319160879485280979050524017262758431315821463140086153518771461023589975880132508832628443867301485826728635505143050298267334026896884861491918236953375161951350268396812643320664877813989646380749624278697855785079215482169096635246192939709462740886227938544940166809174487299577861810048621904873608257086973811704952397810867478330530723311109136491411912007229795196459584952877452025932723180464891410320872752279167172147887957018710222353793406137686442293776904731057569054797071175710036726792315902951268042236480607562406524905960805008524132654505283543000204771957361004262763090541549259975932372097432937481354853454179845116434968518956842034980870025922186242661455886367308960126875033531330950493766794064447704918906866803656208257816800298884348615099342794919743863978472970374000616078783064200688421968961154630529934912375097587631828157605947856220985961608112933732894574945988815997759421990993285532769156146969516930159018036962876529833336779598140549233454140102003890432333003905845383252098785817431518129177061716056465310527870984410711814165358275543447499583036197330974862361546277243369193194898980602743600820743995496009366273490143841270319299739991690163969238708917920187395659019301061612363206383305802940236048998657624445097644966736145052194223272762349197951936151964363281853478001364233707398945332351944105334219040672600074483253332971554923126424944129315153873968091835455548386697807906058996593850086211333976438609819443573239540776545636327714301904513015241153973952417572237273869946891164126899777447213212821643145495200471042075279025807736119781304866825468652262725848068841426783783183984540471347123780359451186330805469264407344308799316261428777773414441844072503387340327887698455769496980396814349264845798784392930563130673779863848410692911609079849506052829273476280749913032744786843237251739578467632296654717298711081656419523840641492979799400114223861015293276023188734022110422099697341372267356929636914412882461005359899301111877472732545562775344639486243655396279933766676364416079016771608942399701695153398482256169021857164616978319928876040439506499329810801973451618256440350255010717270322089380567693376955711951644187473502955151986897417768415668732201766060124104080214590626564092747831382245443893345238260661630914848112702569067935583349809176596306054710222670139326606078173113161317152248810145850562987200081244129917352216127922769856390354057350901817346096034610527505240696013859900138704732672891056038505339101317000705476028143420675725210150350174419990880122663135515279473094081690900379591831409050304300849654206123952020148197448470351568740931843852060383829580476392689738194478718783917992877421057666037879841069028401266199231593125518518350060535180811937945502347948298274593281395235076139336413110870647952626538906973181717154568803377036862866752136686694701962185692937253108614305027058354712936296856012520244903273279870866712636262955530518149762190009642467691677416522821900219691877105899489949652175298246367847106687917927146951866354056226917390871848706057239706599658925155073431946819633623563754140844272144354561164165743038668552437522710274127465411873068429870064176822211714371248757095326932700064587649610575980447268113956454298063378867298063492925344918303577565141557006522632416675153086480635030411006126868153651136399157919088207356299622901079263133647755648536393631307321235471965376900134187713351269246408860949408023513927117594723180097787022067413259541291415226434549820992693505661681986014917442152339165805940090577193898832779416909369129262836462856304327238540374237757939694786592504875167598589761688619545136835638564960767748144324468203468233657374877499848458373199096759634283177346228708105304124167719419617214769821199573588677743897693561759360392836333083093364587678068590479463047501543248350337686010125312378955851727698506351576997051534474160244478423704456914232562399988862946610625276230141347291306517631455309834640490763128540732844893632082574742853897960261742769798972136478992825624556859857388986366525232878095301167140742813407394325045802462342746896196122131782645204566424379340571584488263057268851417571417513722360560808824237197808942587230429718115574020919176235733891496133585733057529972422912752812474182813364344095998484874115967189822888135198691076408816237216920957760407233863427318880417321456348699439376592589742840535503128675457129526749296994894172284455736773377610450692220661503358374527761135553663999045322506875375664431964442317008019792204726336291535411167720462557663301211185619740111057828133135321430970071648902508207625410607069690376096689189393888361675239361013632868815108678417055587887120043105296778637938583063638933589922356441716277650600397099016289072919072434287752750908201119027962518928987640222397906914933437185984880786632956149464721954219964863258744142792135614089521850823943907120624124136332703367583769240724719359237986173185736279643772288292629534208982382026282943113390697089763939135994763289339124691575817573320587861442275638699323612405177363650437462272326192206971065522611430465267236686511063642048394249544709692923783684812778462266796105516055470023490002706487168653665090478022167065419941754631212352881499839791340796946603257534280854342161759806458282228288713509544660810463200592477518910305214137379282209586050468267176037298295019391873301891431157002592804509130349598882550630340483464551358067726722816194535384424659524346245484521409920583774205603601116322147018994521467339203237434435938612955789338122132848869351359196986007175351761841162364641500520420592044099152461047079695131945821472303845025961780285093197285739280573300476149182387464046870223207204745834695357572204590894037993218413423837756478140678467514989496662662912070102676022975898136286552302264366555446408330898840576028168845576955635819647949769115731927730840176884438630473438678775828895969042165759522430324935242331113876608350908540341553114713238110378188758648158500302054858935910747119262401655935708939942743686920772141164162376027331477120562079429248841488328977422382814604695167164506333264912709266567945787645558892802815579050181177096731446870746292327258968976102179016997103518439312758263813535642229434988069419890450519986761471016887620898461035268575225672502529749128628398284440256297563889986911408095031315713024161936523861080559001425361317588847712156719617283417215076491513524651504795160567444684259779507450094112277728138888799557486366647023068701769625092470467787301743569380209236171107309998732748167621593977549814416877925473394414763066993308320697709812457684609328572560432834841024942374359849986092552505491788280665230477966442359486675986536430414499287508365006052981298205039476723320402073937238793891161404290678216280205902363368958428601853793703979438461022775828011326472013330888760578682677314666253718435437880613542176717395311433051082481015394400907313670743051167662727280712492878693559454877499257454992441806312720542482709695536230598218158755915874533255505799524821520938410518266567217922035974051321978083274425880723334551791763243217628971256704703451704440447861171687694985678341579581590626963184357827129141476622384697228543175151099368828488220192345376768803454502479335872568201959578463766515765689866358661760947643218944026079859669142595736922570132929516261714921594804861873327786658319660891793135779048443661178824379592554728460810724926649438939893919161374493881391088064422750755973281083414671193214115721102895653917522756542743459979593056995503469845835277373197082512207135470313074241969817748745823809721389461131263395932063805398982732384014692865056751891262554600204524794093895498282259736467884451121443471854452552934197328026645924651341892064301596163560228717164463593524908056999370157866628176679625800531143082946320965628437822139542220722875362528884165717512415297784052039004859330816398763082410281010092539680402538996782240590468751849468173484163321857140204755670250759477810526082902042582519965467787390030317905181252829956078462140095081610287358503158788295196054784449647990066943154463925993132656238423417830800887896093535016996847448799913312365557832883027952138332979498648098702359783011178048721689786621704723147346639578098207386124422996316016056508981349521417140957329699129218300259320692370751555247827565548162551321295919357004284034109744727516614581493254738949943279578285668074715311264196954069808431041625343686954627615995519475387064260298062250125323341261412514515087229671998078629982959809698628366290300748777715068043786000823223555053455618962883439505899552810524884883670311277982380579385972121193163303708543052776752965011627050251828040075629566192523394593394703084241853894669388097135343320993265934171996071286781015303628978926788072218418484201251749958298981848143051636706351153138779127282583872418443783153528089708809895374043868045257127075637015697446228155341901283083071301128235201208682187341256310336657749519396841013299597115184068822640751369806612429536573385240026503088093550315225261261611656271986972939624164543262588150619645982426274023318728013789178715615768184493374858606958735801452742867350142935482801275453261407215804351340305277983851376463680168720764114328764243712563250103476625482457889647150485715313097634800888220072956190787077999602316598044644609042916792330404855325704110803997750478548551973897871070796385845827931235142212902730624962412409394945107919051511199840270034766508318788100938729472197979336641315620713171330794828997184579228169882745574043572799834997546785098595440300451744213668195058840545622700899662194851224396767079747673347031558560545838650388288824704743947750196491648747905095224448148801697030408436788043572594997177190719763380641050289323128697401042781346040967027304343110169942006531146791289391015120351393496302309794363407853326813489006513355788263229330813343663821032163616421606973574261254668659933420524278080367253074997121073943623190495230916104119232143344374332682232285724875171777738239395361248173461599883212027017277786643286418998111758969426559027840679134968205408825765232895569412387428982015779320503762833074893684914985061691733655880603101536661262636636667383425839418827181382049753035071407441176868354576785894112067475027444499949374092394313004410104387011380120879303401477060902818737086797167677158162494452051865971381852632491993750463638992295116242178001861633823526640668072216377182136153573873112131009656928629828145258970302310517983885597189258225131577723045319283915117013735243378248157631936130216289007279164981023051569452525585200222673559103139554029282360437833902558907195638079123890153193317594107408488711955876911580212113289155950738254320222636115152035647171876522424053784213972997720011623204592606133873543295820020623359525560274001418494948362714158293994487130555594725528255552159411954782248250451999271267868700390581842137464883893612160205128398800847260846353550673587044736418017870691638098084134012751509878097707544268224822346313586327789381872583824814794817944906392875950195566599090785428338916057194188966569691156766416939977370452734574514837992026860987051587537916490866808845563079986526858936138445378220864655218741193470177746789077259986132854302449621532270498590344165380791630874799711277663013744470933563745161744196399932674494628039892238308085040923941290044646541049572266065044429040634636632137416026462097650455089560478075478497261473450174485373950508510732758739947935692179707476063358764451623285679652462165537852671673944300015384973390008324272274874105984331402724262235146015511124539769321988635531767331101831087928772910508259895743500698823906333213940665750305827326279461741906623609092792559910957776553171843801655920024741255262655142079080926107707259939243834069858526157807498129347683318588746974969800346448513042228423497604982732687534047248604167722957544481280287034284565574658200470332869332625828345485638635469291297625770076913279454771926990822597384985530857302894179560295371374762570670260657950588959873024328483539815563587719524741543023176780860864033265179488866225504231860126738918067334269944362930238926476740066585294013109303307959982789672005173808572504261425410157571517898202260637211760376610643480929548610367570371800186053166352888785265074320338601773641943093814085206754505099615867109412038582256939905302524511018473249318853957311154231419949327949261584252254031204019051897795126803622382089318279504617909866530863984459289608208715088023714665412766477026517414561100436658620925831798440750658903113973957103549440713594779934272117115918668666984103714645703303549200508672101642257952557175077692234166222172462392761273949082723401003935549477981631776775199807602378781531121928837814693771851183850790641326759056015687336107289561949437742584300690941439141716544252156566765376043914207635653431343440339606069806346385946097301427170789042717700042740016624792115160299065298399433996195820395866081080778158045661291413710737753034543993524881582105822160089226173017934351423916914373283793858360843961214162005271242756128908858998721485556840128223759143696831778563471254235493320974164425648556673819648068280643843681317972204219766814552568304811743029224280042767875649350006562114691210329435183480610919849628838881931652223151015641858106105851478295346830937279844654111625449909546094784437228877719867498578075715784622351890256032623753040225231397684911884773879777170491691840041537433594527266574458600752047553918175081586937334909380040198724895189880147631379910322403353973042779986551333213205973296926580659139182675538572702042966694680544509776338262217023447503418545575718473126598703183169253792413115200157128345593194087307389475977440220236787782056097540214567836797495725597375582600742999756940356318955938945301660190111656269921711600401590466018281058489896807805270829116367531592792852638293656007994263384833373504058340064818438667974077215294683657495640567183937380891459741241673243012567414017859579636817958711005092357249484204982180388433432345055539715850690149005780980708721186285302394052566522167795823179581834317557825229428457201838934644469851131585110667337237955840880091883497789041766886720599276587824506818977766982025179766531656445009563973704918243105377704977802033652308460415738913487136457732654929531656271681454391089039016332267365525042756714514017532852030072809031614723298233790648056996889308986450304179624707168359675912026247080964413046490560937297285289277021463076859845357400310971796579799142615931842815979014677713569752844303895339560892631777261368763850038486529573004282266593945902938047624225799664756856087274837968461669158858325628059283224277384932633110999268785792702703696882689154581592874367543531265117312824633748577655047342451542035185272303888419200845372976139374043470230602554101358617188570051724317605984494571167887846145030499369927303810444699522424584760124438157725291467843284133729814933333229412650443078070020547216444895693352203614147724479175361411191165379838598682843863100229455660349409331920363616787907927608532527588668981998950424233172486789725155256458487428686517212439135504303491924354624853074430094897162228877175388548764891530986851011241590375101748809684877517114257362152035458534130477082135820545058076852533031810228966801649689973883473741442206532265440328364265536876806638586177978046566731032977593048666081602846552078729838193444729121017337743791931635559384535824695326759538797944476696162308770109304544253354340285903839174930022186818929111806336428463092282576064739029549817275902575576699381758986487378356395352056030059920309454532130993276665937702363817297009763461292929388000518271674253098329089369652922834549842948480675787965612896195019929385975851566794611222184363476805139894096427584781959511174295648684106395584816646782580581896448131350779455364190105933394855113948057906876219687338349373119516825947956191971006982927988456370147026699207358882996710148304026245200796039164566698776091752252472788878899816552086877159119892835280715941543398548774025516674377497025138685231842559900514854143709107854070419673266680477266640179643795941712213395823565399770079820774874458688162604470980942326193071090695707405644642808399707510883554935676723711062031969623051817562783213762186450363346432820525845542890628000958820935879866795028708753625490344148597064160327986780541466395410763130641909194443804912874553583076805735081384891278173451162070347052546773659585765274776806107386906512887342314732066620110417965590820115373673361356952260283287934178082131704779221685665878382465507357526947713666703879446085956860508281470739436734535093058486105357954910523976431653333949498129447742225654805380227591658839374518774519155560389847009381080873189510449724403057745819789685808598117122436526890810349715754134564095244383719976992514798247072543311763374984729910516063928373027072159002246300483477567672432453197431287298067888383315397797103802154333734931704275299217475612783847411691812944746296860174575092346150144072544485709840251575323348684307066060795992270256789747062502308205650129321012816102601419974549461035194486441576983113952250418473255853548021019082088179676964027238228626515173856485103691868518301311967648450881229593181828268738946551236423077980024694999587518863680798629018569349020472010139658297446126177918323402181167775046651431402607808757718046763197127238101158337988722164815830166306256992308740344101834804197702696514904154091769666765808676576874889513667544949677869277123191635032230148197937046310522366550843212627470527920302082580932886699842710112619942458154698827059965348159694139630117442109446410999515292845856620005139240595010824528874589673300760524044642806292283457388873496484236290942049760102173349727713773026089165636655910545560694024946297423562589361713196272548958985259500572662827726729427300403572078355726377065755699275373606988917592158574375975784624134095081138390018675742237186217025028117812034053995001329299607751706369914942403720018442050790323986935019237629516874067273551072333919134621337228217484625225556090272909129054046535844782971581061265196600045526579876130316260152247522890485424957331748302681113519781326424888670509328055784054424483902099179456635690592273398742622286899298207492461314014011654303307862024438190285322556873576353617642422704831767660215869082409914500981258937481917115337109337858319372015035372327484213519852469815203019966163697851455647822257084959110807809492412177954725996385287689114403562064458570646463967951298425371097172657114926144540728386379990249296316347682673671793849927396317734105909896909661442386778323378225888271301393103934119995997300429433570591051297568945779789730976828749658425298954734912642831059895268496727139832349115606425466078069025580246371376776587249622273278940110546860681539321177406977319730247939493726424542214020897341979732764015271352969110735610049603026286901774435738359232084630309261252500706468145991585949069577660585016296208914691478299155841380774635749608497658511395795463230985159932915884686385743411053826440586472627957350237425430571769703785648107926838851844967106099385962985169225511996986224507718121397923224436212230776551132566878518300413521417394470778617544548816115496373897665154222047422872757213649348761574625779650451083150355134833737658890050081792036373211775636676275953758302298143434347238341464987796385566374452165113743304993565710496430802203241391223652988430081169053392080671532439580859371961193551824614926797881412312344572942080211719496502078557061868382120749962204417642185262607230128263558925096756594734757770169039634724380717900935404713942006727726598529627185838361126702048780017474839458579862421093293370451584435674134924730019658691353090511288731639239498167833242768031646459103614432596512670857174259782773394274244904413902431216870750074447357985367225184365233317525178781227998482385338043548944353957337888958798348250051416388905539767328685797911129523146628685092804514756737802372409295113534516621516673835053787816270065169768880013241257193259723894599238620919644048918378991602528012523428204069446772193027529501110041831928181426724696377993252414670692749853956635417333569474682826136224502943400082904271157385235901657020135319980811305949616051187556699876759531207657490271742450979506701359154141119508384282170770231581041929847127454170130038187703312586381850593326356312899898059819236921019269307225010080748660850677036131034134917709849960800686708073818429590409515765574921147636654265815390497361210872743062028136792219007118954591507129521620359018234684302615289459316115300123474411051736385136305058178262628517263941074440479333520377655855209092467711820834357141587289358148413015823977708136999335753474738824183853929278685822847892401880207707262782906301555147531896644040685828803155780817632607598620602175845279423697384649186888315898603504114627471528762098713269546343015352626923143373651659305858509392350575596644113141685160837043299756295255304862816554946858058876707777887466306964741172798044392936118122555442837793674287633821547527980285627519248873877228162594348209255923156819071150516433934770554123643592006850526990541348497062097316395829065110806713675728564036978472704788771388300793953306824446102522392174461685178072429240700531151853852227053158277807812262338965014623063663986706229861216710962503824616616081370428178787802330561896718025530348286644905290573622299574611317411946699444718488370801163446917902279333167705057434531197910905439191543030163131536196345589715342428672775081697767295150627375548451573190983453567053918017761700708452900630986867567110467247600658624278036856524816805949896340406735807780524260651833934468377131242520064492392329934931898357986333714306825202759136954279736897436834498829855237918988049232761385948641602808336350819083991739587115023816734021169838905847151995111201338496503218531378903084687184841439688549008750078481649558359659447848404730978759770666643163423075120301606026881699665325537502104116128488338870552076540624012328725773536681931131039428097816675855574136740336089294362576548761610691298681236288157242718641883942834101092718868129920270182304237806413754303593276123789712164825630258211053437669433487163809963474367461056159156629645849172452590023570213071437398927664520166835322876645846829566407111934340965534453491300878562403748029089221303255153653447184427399410034207466275133940529237763154202008270947821418624926604252132632621627395954403246998467738941194288702763340864334112456095335673788574280982656092772951982806907576153893635016994853367469441672776534666973003490318580558893534138534942254566231963159916583585780546028338732162057110178531611063188067376616391850201446973939485992035706495355517243857568458760767714318590202660506700561215164939896646814117785461051425231020995078966793979599556818826323207314612045546916286902520611839026348012548970594008824214623791958179521233046651314211826943760018550102879406293059416562350618074151452314345461117650891958830052092392541772437687881954143429941202812465397773516535497161169802916249522348059956672000526278463184583610951274700615597517710898672146081539921940039800719342592902219848245665850994084021387121439824775313705290713582463905262744391456849150563490663594337656143338226207661064921292957986514527159119062287884300605260422443406072348276164386963029666839524901224854670089054814407831206588595208471930321534622540030607314379929909146974934771983104079478513468442014054678262652380507364941044282042328101229024651113952028376193170911998660807086081518009151546794784735970882507894696451353799827679802492230655996260850399397984258368896608541958238598339064430845897507943146857164739883023685280844140946621802294052051157234471972894439193198188295434790120534820219852002559727482261450410795662022426876682309199313497866665960573855825327346857670519561359556347108441756211612010516871141504682892573963213232061738858194718934723968702494840750731427772297504867052147868925166236903935753722678328336143582362894081422535075511152612271291857690995623032670898667278287238459682913384715850810857148548138486536753061264625085839957292005345063150643515202803175629406187985245796922219976207344698893918560053928936249092776559199673549889702191511914449036206751052554367859923292916839779695007041271414908120189335848184124581640926261887790748877358000088582523676646661422933761944360253642809217274178220009508865349269836275823126905238297856970505369130671467477200943108396575615980554132797739742557024524419203762096306810815408047166263297105196269243862503906789311165836268791119548468577845038016075855188997449490353869340716155023320858264511671738846892151713716246531665120884476984799144791661745116353286552662212227944921234012538608627132421722330504674630114570704331600977208026311599303366298546711801000775609488642481972701410434026040681465715085659363887356923388522799536100345526391034504254447270262499348242334200383713875891181210391893130759356606173012182816532644620253149796827289201268414953810452531440966312984467521068110214463011103351133019610808379248724049938803047496341036103728786582141809563424665753900868450393970238191705384878066192429034208637802255133144974950255800080582929893672046613925356118627247006867182598603719600037767866294996647229570478727799382406683746256502657662581381824024781971216704304437721444455466251132172095789980847789602532166816548239808242937187306278257256494433529825191834686832273038556736605385114618563718862011493028915251890894094378110142279524166738080669456999901723530247466635325918352152178191423544466201430725074631757452189809880255037474588319784944961925748164272992119307028849873210121631933961767147461358491137850165904030197140318316385329052483147433399312980898522830292421658137535399574404222061333490826819101535526208794814143992747660525671083493881290257243226929628095968635118497255898775008214318024267283637067736505172614354688326619985097260812360249234157454667643179211753260605976856218218319616092567808310199562975608520727346322392494221092044354894009378373806666212557700361817429735859422461187437829258977980358481762014010586075708532710907783840366438792481308689762366554121603561199517817087995010243500993025459531322955391625434250866535042346935292006145389514818956054322870706492478099187345862164937347196770078336317457212182794684754088884790286265646524657210018416940359575382839864123584182323283197566189274470878396295055107228237306750866396006807782661275845461169900914067719540803813476835399488150608646280601015431143276502325376278925526807828790246247365366761045162602355966544722478258925399694906533681898888082474001801930288407610090149631402949347739867095165606854070102030414215071408048403955050282625935227950183657523130314114472550460649235745327752379752808284945228563156453707062931315255772478450637020506582475573150899640407050766196966890264440436958056137577149433925422654261292842496488469227097948994674389837060286591665305436654252585354502130209190292116806254315900068528310582208586777429452070830389256929636081902143253231138744458791737989952072003798439601742097194138522964345975919051756867308492637333824300907021286137223662073796329901378371468545546706853876758686964124082997717116080580249642977898528191290895972467206294631165758957631957325110953227835386873710666139920162050423629548350110864655606319092273215715828800695328224179738618946016013819203233469845508758463664613978142715104274785120475129907106523938053359912707635076396884911945504652900442623958070087514491946293673393884762216999910494250261469875857846354197286515373278861427676759382418634932576400713579708812500075536011372808533650763298291942354207041530554237951200855128863208329995556456462031250407055740573293564729608269964927872472988744866813287148055418002183783264485738898737507890429891218334633333923515192440235921591874056855961120411757053641926753063010227982984463394373944624593288413192487049096950127497752192391792303938611543547408556991929850503610011177018008979270988960390774516540915074403004461514997222105698882496850336625648176071077007124582403513118823815027094172667860801218925530076104446694017827689826338573947111280542273152721147047818053893389592493636551550626395570242672592323337400097383299186118286589466634734909435574692825881740976787099353603934350635087472322487657136007701839715099198956263431576149115114601907494000009117734934081187048305771965376827560138900191562917410770369845412657607941542666311939080921634813134612775668138361520305594300070561999216126220405357125001938311218868600492034385065992696862649012178470812716828930038678264560675575911506476046532929767660435716942932517723172788403238366404144558462940904177492592366828350198883931490444198735361900723889857446262595711315069101530474084444332553257722952809496496898349737952659519316324823701436346997899033058861754558340689985191521614192335254837259239971905093895252321635491991221109925239541873802226161972156625574016988742990422201764425879213038682538521649449276760970577423179859734324685226685312073463117289752798391242666093104419952696383773217188448638624691430628562522648642935446641107051313920344017151778980653704784976340103911018341350302160682417296492734877387437085850303489656593308730209878760427447125224427374023449502489934262556858007762577287002429503760460438175345677974992722884871990979467171178056186022738065880503364404246262234744284810411844148579436757848255058926750970311599381743966458178982009685983237186249219263096592480710611412493440545506775864901301212674802228676880880917133823524558140208916656943676906287880217654174263041271312558741340500111628454963755573600480461782547712423921848220471046340614155582232264558016782335977182578857831446029512563618111601407216309723644136492762033187882129949849948650651427289609723892323700797480807138248913217840156113832009047947184048494060160086483912612301681551706220846123525855134828614837956912874849093327334613292396835611855809311366620376796629734382243116286681773130460245418769541436930207959755634527748638986482181805171198463751105011322855096199134949731998727956014601832844189651928383544908817539178704520735538908578346475342348618282735924489531662235643727732379180262017436633600435591901785075401078305534222864736240385461847813407849895031584789299318527240382469829089898056818972220081486666962968055169878005910194356625089948151194882602742212213671475966684688912299883066766180773945011128776635482037779955801571402560777341883258519412761770351492872877991432738730374296568114864283460369411843188864391627609371390485777924590068334641909532171191645873064933482177961037967886501926683384660402558139960238126886744612539810125005762205336626802908934100605478322634357054750535272909240981106692338744872889917662418402810220067576072276479450076477850657229221165692667524664830782002281426106813003909875560959815523131721847863022736279447384161430673123335856100538321528356233732560148879705473106239368717027897799113944160889908696211287919071264080290611937272634385931437356201657222502301354370394065174908395081112883723496370233267193463712005429257836601842069861860435913545368606768653696170768988514789897016880219503420016219410928341933337548868499074729286262618685703040182685004434841100485371452601719974519543947917184662422012390858751662897359229975204847344009286744313060373908385459271182634132138911624920501719212486620779052014574884940360985783192292074696605567462975395206404145099833623096583180639935788075014476637989239293296045975419620382727583988584554245675796700566227321969451674977750664992977792692130697385307614676232156130483571339581672072771729533801122526589152618915383173876217563223556308408008340662463156535471239279997947411520111523793156713290041255905839487374409216105889704108655256554079755428214872462775343154345251045971166264694759118927532227474954279882578939205190362262080476557420771074144669589316652034291263472129659851680850679297904625188064521745094172815180032567706785394681970320528082285307333102452523933438012169375502199358190035280770001252001266419887874632477108470812848940572844265695407948484801447556851777778414040661278789477076351533837727868771294780368043010707255791447358843051391253114937352453569562132660815282629233220935268791655161552243053580636637008428938553130382717619723490970695648240286934448696898784063722785078331218403174208981643636956993104652621146322285283906275636884786556660736666371381536053634669452573975774685664982260167758716842968891372339933243937278473610915842171404920724735937628786755400858238175317937912480367163347594795296222848191316089817541842630700260183958294713269836283948215619804895026874036507211262920246037737808313586895142697495701739660483144517102405599104921920416321882227768488305047651203149440577080700696576882493902498123519931024229727110583168719445717218780359118876594001842393475624415157158617111641697083543851526810664106317651531650636708832111726904532737509246347561127486172744322662064224929973514133213781259038407573038878477804041610900074038192943507531478160741019418284368917919477627751184965652976761767082499209527142739679991536107162676785679579372224718984066274879735902700998009375101586644727899302356033306302859846051996074737580982546047308315714069338501330275507391749474756564984428005922207006117729299415753748705671089707016941668456756098669225171351228207587946654209152792710275008157774695005540188704406461396258834278601018523335313213937058833050776299092498085890285467656263107515654550428391621898405363653327074825419843070242983899189227046625127351116186018152094987580376215202607693503047639814043742939977965950142879904446031874672944689446971811694883562496351711738631808985877392404017018373240915265324314990173280047086789716626649829641571509451459459543300829600359709452820551489499804156139835027137563088790649654294560379760071248835466395293309102202235863355137964449203130827902811111961039589519853315684673295260367721520593374254602026483901274007919167059233484377009286750181899665317113748884433739436949041607466408567966867941056354698943416545864513431655942613220101359896591333762571103713070561620937857410750014899214776466028068600139356559665829762236026735920562973115786934912179940457913884164119674091212316701625913984263451703810102408573531526124296222828261838588991709455040489606374030121660427707305899394390536431335700125055252010365293711307509208022882750621266361780850447046518047218267796864672525745053587403103324647204150046436072442360316479849022169836866703624337477072169564059303840700730621137519339301234925091466595790750069985470922858987225917025853474593804604343676671754221853112042755896819113243923029726451453093392242300682309412797043036438233052605196919507442943572687817693574811279599555796159557530551791193031635480485431574537302352468411194400772107793938595878767643578199438518785322456562221803857030940906903122795178688125907603136337772156609748597319280038671620744391827683116723912666157973543262199969577036880632047372508450679870182441949074436877825338155987067061825440320065276007092755637798743752137283880617201554476235105332370494274102358016586485319810721430828383658109621361553976389217447912363728294511356676703610819794971363807465492369691460385336606928136053742466847799711993139073965237277637672339045665103738343370720390586480543259653684717853077475918175426008693297149522234308095857617386562647268239571820650200916855858994760782371722267511754894226719302697378946654006459890656412393676761538494587539771669880218885370254991115130160460286261881128968503556542946977714051028169810244031635303826540356560402929828608148161982279236618627749027347102248002465651701870419530624778558961335095259295710833019252708293976426469995928556743059012819567701097773072966540278202592838706639343626163963561287229315740172988081463102798736848074884738559913908812895566513387229560788045043341459687098308032751877592236397638409724083838594793468400459386486761845702087329274444254839560154031880626209539204348590700719367953894033739036431099170801245211668145508355002782101217279028947240486618735127440653280124668077685685002382774029364287545478974151844425023404498240969182136478648713376841266838455156514618944075224193333624955467844403427226029462008511181486736152363748773204676364363629748926379492838792784154560593892174911329275191831597699422979419230908603598247055085555503537335942881312389882740715297332922122513912290004882605169746399596342841687848417844156094511429073253270610281066087427168485161565924062818343101119517965624227198398407330405608384375449256523409320644288704122583669986328569846179115822490375455901271079321561427079420988358970402641019857060155702545285476226487329039779678502792297740752973021900626494040850717582816585697896917498659896762765377741171538279914731842836122766695061524156081790078782347153998436179916319296820259689376511045048125832748573729267343651447984234815644108366376339484889536848520723665107284362941055510030697499873400992964491365627724362540184919238426956067558602494780723193306329679075975681086540125755513417877327043433809374454536914377041647431034281980101512313173331422835688485279743699602217379993118712274896280970410867261603290553899633378032591657567395763130621825187388362945508661457124481611605880482185155669090996091174774926035518361539921760577489589856645876842872115410308260287136720647083098341524591547103110480748252657403147108108801728406475751685392713362112682181332507913237625733689342990252342341187658241696843444834754014666075336035572227102892543660623440122717347951534748888967542490402100091554621593122860713295278456258362436238538988707055003259058123726338539118817330346399283984802720212243061732446246169657545064730439574273137100433142568001652690628984150308862750642307705503031731298431369233417503357486307559354290557179769242654252701899518209044984384710966800113163821923408860970713571344064579191914217206855963708797918563779996549118941139413771723624799167211914622789923593338034190987787574099307412633342487959069168125041459099416592025687076352737754173996089465922370068249208145256582784155694390844493374068879082692893458884325129197469650765263217221458274463676500228196851398620749134613854201260626868335202324821021177630731364256118252278771909477745470632919628762840486720565426035020507350168046569769971034866691746384317958146604166411207628118520416339110638896805631229171664071264158143423386329950851588147483889773188725869842098529317014430215747626970137483391302209732414984764640604696378017790441530693156458676410292997430758774521090567902482194303034641664266407965355973154636691059450232648056557229538453801789409447067089694408739816578949865238503306592512346927896203274772216843879730151870552344438606671237014658145902642071670974308913035650400759442287356644575208615248151278481284540879916252020457474877983889155495194936312080793407021270027349849015159030846934975681158575487976474231809337866686935416802267982776812793619981349253402765292945127644770837488792274271900949789479706439398943238619892678447018289751521928428654299992519874925735244871381260802574402899252309168750770257427977656364540500468913420760048581878644963888909803082395713611483857740468486767300006368645044040749829203996136415292599966360821257863730964987391098658816742545821198831887827625242508735994761388473579814971569271186198625303484023425228315400575768963897878307041465056641429182649398264648803638263688314682873848298354752326060868030440185876333201016339304169108098786647609644211181391223681035589175694276738351791843222640220533740596014772559183535962695774658600834336590661798674068804444081323475400228629259320635429894740662529409679764336153999236999408015617783808088422731264919703337865603120284612613674053194598512819695502555757938045050129593476261273324867601509949044222332156598135918128147033108567662536063065227766068911026400027951899253555326218906584733520951063017012746389917761329089698369029563154658375815293906605729106927733367173989891660877420525714867933500422389478238062762673132020595161543128816714827973473012846391927103436763716159201950463048097053204112237751652950451160896112262822281307984184299553650247471018848845019747868495524118062585378387574996992771522068536939870957197616087827006783797197930045130816969785591648332954323328510024266747383693396566190974623485978236234885050052009959927631854720168511783299105916482724526198662086992926182050310713697476578540679943273486563451901517861737537521867804976058077153416765972011796372919327844050591508128134133540448172129307927328964821124299698833632031172376109335987116303210684733558675906867727773372191960970291211023021958576758727166887578970600939266158650257603496845632070653962739239668485023008838622267329280394719423632550969003345189827625021317562420544643379523949062091221265387176317433744492139253624161337942448915138345536938409797440743001794189323977699560720486418986371036195090888557228676712702499712538677030896312913825296296886906628798915876260150810576165011958323007631376383790977318181409839695571222457026648338001696053158563941757777751263238122152281001457593509370339200040869971484859202683592912413118394449664444483261876762608496984981006102386507153643072902463369493086916603948891028872399137916822161752885516332633982641785420491757144110289181369958861602716339425817719309938694380208077808760645177481227875533716800580177009621463053167774790984112590921071192420697997484402464291001146974237727600025607476251175944485455095036206179359991397941497162550230047309050576181191093064886251322117964616152057684176008083958852388418004303178736734270310127586315383177216863047604120047854423002264992002188545147869294777577290045584934348461205640548731319935564571888418603131007252073035558518967491372583355138133083182053758444273131816707319327536388582709063635450968009955705308178481447204494928292678489787973409978783783665158824698853321990026301823954744996301994640628514082063019324372930608742445770406963268867145101570882448427560986547121455293212253608813831720789900507134561278590411915732845371395551636490551530092200943234941694218303271471499889064188614222880718309578110062865906893575357908323859596045312978234940843917865289203126701704749311929420335168983532031046466013029583770010153206910855435439066793340457348840573225623602251921612470751332816762253304503001989991875485516567902976220252524429931258349011381424074768835759677682237779476132959998787867450916104240612501946015522440765414534471607695775319214708137750945036931842326156868708319099076346562478766010418473859466061778258188970338304041778832862658638391501211196305572932572977853669510055771401155159735565674939741424012826763159357472622653495540133582494994902244176919364361042096388523392996838980338346905041497340155350531411831603289361497057459878554671891762080834762697471887727915122659561544827681121130992872482954276741823616166061650429162636090245522824180637945777322205392564218281281290124664598294514510114734856950583249445217134452929213045984292793223671961419814307247709202631285530930642231150456285516944808915530953903896153145393404146422533612052251104812263361127968651189908373991138044139555042515407636882076171051581327658535193121991634397664971506322580811480192154691832248452262489416758000007850182212437674756711310881667901306852868054586495919517457185248216417896679343715175689397264184467013899527870853483055152278813299287252097292575008526783323699135491398720960654203540257174329849441757011071583338990689964904177022075838901778587508933018039349421360956802827208878872186586654801477292845482104635822685043856835661586939046106437730916781387686286835853703814343260641881783074876878608444355100173512043597032423578916634888842328197620546013423966174132327618512982678103912852375066444472519365609586771708553916793281921926417638527055729908945212567046772819245948435515275364026342498883095435490868016220074323523919007410400262606696658506774166079881877664548157000744962151218050433388180347278984337813043995327200584583448625298152000713569060230802862127541595814217120914279372064714371479194611155735161838609925986338690934798379283093020709108611225862963086882796835426748639505241193168933279660662696664772939718281323975473137628458317327061421162677260015479903311816663653712936509444098177333826197496154281829825206569309636252865840554932991884409009791617778987209539619144533148198771457739166476169010665940551347831487481060739557046765824149863557978583682137464539902376707168402298560382741065531196684248052057250089564551775191074098385095433634839973731650033707632838044688870823906921955028884900175929357388184163049308409092181404126787158522118738182559772674259984691737399880347237964118038020612682768519544072326689763330035952223000003264825911500898303986683554608013967231653467927295306012529282761139261429985663254862784295927190138592668762767307345250524434694311145218132276823798472208004494359733511733194050066536090585329320653090031151272818519517011301845873224218614323200665407665969777427651203847941383601688107937408917894045861333592086680075691071310587751950506757490262004837079530442529893006259657037195039102723852794143875275505876458262828785710979494161108098948521237554866443358793320767683922584054391425027329711379142369135903753273210812739837093786142200364381930305445449626069086600314697382386597639809610535280965432395056891387732470499887299374093608825371154549925145474730329192348207218423172836252041960022402599894392793094238323269501390129368214474975685042660737900676933295971396210399426840213481850645515032492987262206302350186173867313132540738960825495029155100506348949790226779782653541290432507524362639588098117173316334962061729515841903200788720867756276847393055181556032739650482237926638441594470243389563428126609178924087389525071437664885856604619073195473574945068108506021326253738439927582415918988867958596552735840339467648244504854898159374732018441033611642050895448643786892764111469286500267522279017570844725897113290227804191237910107396783517133611015230994444531191618412457450190243910066232729946089635340390272140278781552850732034157760360050017754234231982057656127545093755032076746155540284500844231082268394361751085060928010902562228338103947867076941902008273614702111358625042309888624054675930348213597263931175979117112517220089635426124116197540382460397587752694676042666509408625937621772887186453069637441183281581149166986524739954174488330910399921092996531350272738044668653840688613434409176804519210711098865261166092354715712179669163104286096252993175945152884237211542130688480007908332751985160188613558862716878123627237218675805316250506928129999400708183508248861385446157569004485143344896594040860480861884450938415390632618673896129594374621426682822579772689710960971569591601452199001564290629816472696278438991717215520703427801863014288565464875666053346631533691813243410690375738571754056018897092148125655360950312771534399477445802729996689409171984536116924307456115973547318469897938538505737587257946896462275815807616480074364282213716531407070556498357588614596913329663637851083320457656577206589864517912694632278611393782836712114860346502203813907747437056054196298886834754609704377381832872415417101459390789904421249038558256093344706564888785972571496005900635605545690027865233644862065982726271000297586074307900274368526756270146208632582082101187173573533732983595676168064090462327269790747758474650557042032635521554838950962614797760750743937582260001885920546375927013460755820276655153802215635338117064650517473631737199245093197155080197660306687706607159717881486785154961902295522891492975798926287094816489785662975107387831934193590894857154022006151396884765548439023527189736450871253415367092429701787344902049083513055902049036852707426464200574920272847283953792855806988478834119574277378081306840209152215270060684100331010246498872485914914497324271102750510429364005551353419233735382908562620049931243061920445496325329917441460663422037777460647181265139856320413368634011834559723093828559042147047622746405125056085794451726879883164388679458730082678329087895803789014105211862554287185639794992159014172861651342244450354524769772648301261476588750087944329001401094467725414875738666844866445668025023611301915209748900988154280943442755962460352567000432624498614635468389562108103697086669560049969229026993916469720193726862294435396448324295319160533738656806591251066945161084944529349482435600104460127724191315449160988408219130463653878396858330177662806327991299192595435588382392958284570989898456043270552121143660483076966076205305499801011338697060139220830977448485723085943171713948176881013041609623532249606868144035752321360877260661125083562967162938744280954337486290982046325415324625214033157702364295110459906146578253689474178183291731431643206729954676000614478129814941930993926610017544225727081371567916143905012660734527489880690526571249392189561019604671257718981396061560298377141494440943482040520781417431471129081822518595249771862030927157544240974399081735162713353155779139107414340996614686590623110425285549122205668153938394982591558362604461135073555708335166234527309517260268977378067256677485060162054523479182600761448303398864871237321518968802820372317495665167006884376514644610216366490136352566036567140204706177402703262685157287153735610067384328290122490410194939097411913629129153258356067093568242441192124392528302927623761311119908914277829881016016689444506141201493180586447827416826236124283397868679034398641138142442627717492573258948893541201246869158612826274333285050059682724502974447694493867662337320927350202640311373162974619331136323075528636020544438294010492278530960261280945927524156031423680551007086643332323197603549028992382558188349436724346054962161484663343787843110349551626359918231811063777458643500768415343187486376789310849124059997364612435864240655051732497500559973309227873430274715669205825204322261771163656159491653551048723545811030608992758175381425351741413504220559241349236483026908375967902404523946194660563528570680359935819686611909282844163036780783910875172627966858082379942180299891126430429320744148580888358218426500545744082643069446703433991750118193762405864477478616479606315325851936839993635118950698310206639169149512478945253392301601876567838657847644359718982453905118237740485674052590097077785284785369708124539378754272917946891326554096822384219535849023803779241455324629587124646948795221501548309104850347707934463816156165308588809807472416644509177037927854343947204323589509253802927882800686437565465437556031847012985812073315147613575335375527072446856396421639858495443265141660720237851957663039469099090482657540053526117834162465023107336117449374112211512523334325167447434108332360556790950985226729421027370888906081389689808286080450290867386766085642957207570335009616980305333662974265461680851304387746906474388349654518477391267021173989435881923620193724544901704524720467234475228917569315427195500775458786237161609832266108371799034048793939067336660074218275758394508250607581950935340808925537071522551060142189702842316577186597230445816071551205185817706974394142243925574627062053974152789472386406334371328245916686249700104459248590130329090403424888848175803704291627133497805641079969749591635431813410850798844523604996951904905218054478398725007947928338520085218945621690828999891133124089783198799508042668810202305611295096121898200741419108594731454338696919815107988499852649657614145737501187017034492315656539268289738456538098343777385620769617519584308289444418348710262840017832454438120925984539882606190686439121288372802247570048963270359177503977265322954048391754961208299471838078957214773769539579637456215979516792091604935817826347065844157078916387688131989586186926574000090277750577490755539535969353291164338003491237085034615768437929362570250390824852965520367537091604116965920571603132787922121593605201903825126166705343222159478493463091020606299087875732091325608615415042987547185761445416529337925686660731348521826116884698871239571714969502054271268854202908783679618761723177875508559338454075073874540296001538764059048144190684729766453853752893470015090286946509651993488669091608132612420230704069305032827635093829403834009002402112590827501482576541524134975224395749919063207053402559914141924306609194756738782501247321773403946278801428956804070040907879418631302632094077590225581856791744111972965881375001278539444848523538506345400107877380350065597823003342083823604363345152731478695098028087135677219080047551422766024712845600136395720156177258882293699248436816740309067884488066535266948220541848370727225061388102806562038665412965778431495966507664216973681441342481560142756412785267269065382966929344169433205071566275530086714611480021296055851223869512638122476021833823534203071608129696211183632088232423450393046978305011275192844136492112878169108151300100817567607491445071630728198463891859270705943041236276870554764724733650411431910156401763809516917424524835027247100743375983138703142107704551756410936177653975917099793176115372422811946104446957759545728504142765370902789451139251702591987380715610515533704863432742331822279724811543240442259610225633513407686823719548937066216408777796267119204220575243309222492709798181917444186535135572105376202852095089011080490500037470400350171452141534866543988517499634750204181347287369193078357670442401215136530994292702324324178364303129180819916339278577321034091937286902781388681848997483783383387289762035399590173931353072021278524216752275210495605452254787599906339435214576332075477935962771136327633354951671688690063768830867537653076344519876781755318412837978345732039087090547891925630309983940640491358222242594199102500016371734461901922546477185569181866708550556336092664871898441260655312382238841334513637346640756448899930733139953568951514126318061935767036390567545842398343320424291641542112555891777525476784777648996072943555841214342605766737789952459711150139904084634548749597594497001359862861726416967471446305414460360179742126126382696221072039239148498889631475198451750790732857514424948906764488548762115487328619134523506226257117544783254148278469125332801864776067742806122700778973317864290259380429051315747477406661075591594424817624323137000575216091092826632818540618315067526427188619261792872539077276877919882191200797388980364656234927621629786641203021138772174498773304594413477684425233696402101673526049936334661107347933806708871117768713940995299708865255947276350986307699800600037795834476656467570931101344807759964283018100277904366896579765566636797891915183958640053725500753689424036674932990551931557128226159237797466544579246111954429324839799504937057299025273477604892604483668870585626102723331681715273729703169735715798798267677737312814571928816423667485338668631060112181564269309217200856353249472783028140338280822000243633404436700540336094461878184635811805036094639327294695673076646289239896889536879384596557175563765326688575461371864427433182628610109215105400850222059100406357079273450506686170572899663372937789741193907884423250902481896927065092768057216472834873167796044908010796105188938489768562820488611522298379484841076922327692372950325458046661989060216061197712410207915665327265636264134320157502921642871867870659567239066263920680144531585986189353733436893575435209460294882309460923018037529980963190349935926260009830388891772388881834399441209824748957821273868245247660682709733007715094970581522068016247702505441576031702869987520667768696887263105416862535649586171740168925519314291728350358944995098761726275502522698877093183458974447833886468058576277940349606884803180277265204468907491471886228135408755632773461200805748358004829347381021853405620305834567499318554121390311918852204837557702668096394726821111028759687733827290922367112626457084203140305391402232959084537559652227790461499430656326896414931025465155606519961297730254351712543340378119073650244242464410026076743880772679625621199546048131320244076919135285602536687959424021282099222486086126532719291527642356879623894990568415304939036557252587626632514236370885881589979227876219051969567854925864185323357906096536532024395992117321796715742270109050819682086553360717714963233011159851155490190938355170444481046703986323956345734389972079932185882403288116961373169430013416379294995596567692000358466822738929704823564985808953164699337131811525463710844286299503514979402513848554614475825630523041672406994995491724925648136321295938468176312469658773737907163836352350972340102906096684740836505840990496512663603692961298839138684459072366469222371806868618146035187215764771373852817292043560867233522275132971752791742229028777729872440033042478100024670214543169499905027835997963807733063473218280382938700130688948851169040349964466118314648254550179658322762879148192583428700815568828867335607301042340218381087441242743558430318568821486820036096761602637343486863536976090540042987261462293402032033601165473587898743342580583376317322498948449494118873278302041504609482576081471348932680748000017465500202899421858431409935655693973391760172398923969173741475723523350736594057041887849995642352394159842334658437223764965774730500613110362586701223703562865180529109279411528761114156573038372273852475672440819328815839267472199084898673647085252910157308026674768139202690239495332830854990084639630796072475749455122194065496484743919846700248187972149677133801472061895603159415786137958467380623973832324977728858396611221000477862866292093336398764315492223790623506801946764655747789340171221075973425842322102576390729794087085225815791759893797709292970315652695084336456486937182671476201358072965741772081364339657608418822275814664560918575507281313954580772069393891753511539779476008092718727578238789634659637609411416798193354311721528176919664716967811335465394124706714334189899319367941439001358806887474560088717345252016014254169445383922097721141199447125452254654388499356976515241966590394298606790922276980921758482857230329562527644955150538476879997732858985835164384105588838306246756857274221220189373741328626042262517691206566431569562550687838590191969794831547473522004575331268584699289489125895444175496391044582780299711788454511240796672069974717530248271667734898423700878104042757332069481608317097465731073947691175414419370394714411655359053396408026263935842774340322913723039938587357024189033442085664528592956931004096035290243288386537841176304478371913045191613466463538013909913713896198987109493645860767566565387670646713849018849223357564121795190862416258350073843241266345858150024951955703749004166338338691545752344683692207882588487553788931202722379901434891435202980866186332914398995127084078009830694693602333449221802088170769465315412874926127715968163072673308077113034638285142065759247672438512570247068438951823840345777801566677224736859402570848762562194015982295534104050751105776155316423713998052545808737732666417955443342338066293219757732879899115456938842849324347785417965877796203212305360180502884784832551837243079916722952394860865922628797757151732002067157716294000592011545486085309520267887880764514666212420610759525040229061206732147342092819693049521148156806834485542859197309639709108565824938604336868257511800910563865180742396630356525152554650008051346666790936129679599348780967689755776244787660756163500082011476616524863660059052084686339570378496138954109506881501352155725555191356008025418183582057478867016641558872851835977628784172929792596598059285656119066613992824388013498603977814111751565417127961943236530551213366386739386478608726947987136099059484787908115185825268567808102972049338846323535221338519687839085515553542018056294031115128953112009707440294319071126377160778425440065997509794208605355652062626846813197466652783784048709793341099172346472761215519977723929020673529492342005049201442163787006836807943990849543454232449757551202000338873723506866656653592223245643798467263211912785475089861360640815103621622345266582099514320203653358706250624904568485530444179641597683179469773614478126377543444771052499194406201806450031404045925901429954683318482372646311896436873403376532645427082077934241985011124205411901473167377205827199020947408486530631500442068284829192301751180845705493821106118048550400549912054899880483058095573851618406333136122596446997960168103478119555171022032644289255380478299848970495604034159370558916637040530220218686136142680054516675962488354892449114118601986062960281220432410175347736757352408994900718678959298563191558840325046370581685154329228397465366945160729275861724474828448655773525840472311028437730447356351275589010275266292501068129603171982447315936510902176933075916456688553104038458548246304487673804799038278303993711487913280195171182983245451848878016705433154112668959816456995125698503203429250356866025980168891097970946943119906046584757109414302787604095686341867765738911509427236356148257480268352799071487651896218486236688750765059949248532074915748258885113303393637383535113907765574456720604886103227236694607603243595953320912794498759249925281683425627258364957337571668922122554626391892054858577836734846760702688173973140572998399055373210892216896903872350845083128619805208640476368527489363610681984551742869635418084501463694654034432363154350855653773186694213959036529842214481121562723611851569048218908200299110588614525715982436246594062443883648869496305689146113589047485621017958051836135141053116297710373442374976249586380204505272317774636296769703729454493820655643452950285148152833708864142986874900181128385455647193336384156757164363060821515737576411379709904617161843133905264751247594823916483200207467324158059037073450548423456657875790669694350576330337484013390725615883597151877470464367192634840023328354712258752401563407049446103709024036909133850550216297080831412360692980070529201248259098178790600168863403314945182265783938852537750008772151067903369588093743918692929402179152995697354370962653607358348988777457343262809213012038041153875401036339694256642487819701176981087684520816600381485838413023356250427463518409131363332922708350835163167230751052703519309948776522575663471877725318006195856174920146719861313672670576993108428770480360963316787100665699740121492881858175202488254582580336991179458978106023288715606285127670692521965049179002872282814708137723304165835737876273223976635249139331241417870350289319580564176667215813695503927683749738828748066281834056362743271090930975494447099684709635907925701093484228927351592138957693487107086328338816116179539564529834109250693878917170353420996335305600150309294213308777260416234077198979568929461260121827969106878010926864475962497981235905366222159777548909333766174844838146386469728612397606693091830137320965505117400404186788727076962139599197363573156293075221687808093306134939729388906293770713864717766043667073731411042516067858786680939240625312242671622145413974363062406634153739959278418186323159313820131976189705412924429960986301197678451355521750372089824902628214408644309569001383411625168513523866046309737889657530659608492913297342695754309958903764496900549120352691733921631491877297019393841412963986992556974504801918422848424340951922024915781889469735536282334924892936129240515938636791592246955420840807752367897629611910215580136953351385161258666879135648500242492696352783220440830123887853472514877931622606593722975099632956001634568720376663087435100272599934523826408490598003347340771903960662111928969222303848082140975075622114028010483683115352137626815975773878899827072100974203313212145309405010035846103272112764801346855627240662563859028547271745779503395106732676240487757569766790354779130939829037675453457605814140048693835827141072199152148905631839477988158604243363581247931354012418226978797850519887285251678612390694495074230088229272904622671356224096532739475123891557536965939456208907420328874674745067709588307919566040850317512115138454132235024547045755310620275367159825775591750204509696581011627106198998729888450334375316092567137811552832268117182149705139002666393188741294142876071832382960327491943510495638852998013253804218619024426401526490380279054374249508416691405693055767880567992691052943345883316974080735086901732725437252693329148806489827858780832528454220263846917207128772505258567973535256298928997747556211315137044166391651101540920285362165356483858463963362049752338369478095363294361618581348242674718121994403983587863958569579539926843757273883772655537174564500674809190267416074246488383388205649042715192349752142212709036834716999473867238254185901798961789702344244395667307349058358502844814603774841282938465763185134923305593321929610247121157930495482413060318075683798431806264076633567285436475165235157765179871320362064112420134646050422543682551552444039014794329280425824531271745621638015911096696245097258374113340595319343851847668543678248663677704341223498871080828848992193154859643964126407080835612227217193277038422173883915541454812622631259733439003026895145026541906502672810896475233814321298074179106271551892428848678509956179166205120492669738280433422983360587468953790470977159703038404097553737301262395316699460360759537564658449553045943435169195385800713716523164581663526729222146582519778764285364003498273403190170223182985839043757805317491964980593526521023158307853020387096426416891413744290914773532575604157509871295496604149923832907819081692076902151563977564400130558922329171464561356100009086782373236356560740728368521151431392156478151639500483057026791805955818860795414539459333370863156301574404152589358725412602660425308430958516873387269072737918327018163595839971405552527417733769752989750456987239228814378320444208037229727091515492718666126711519738131600227035612081379596504048383444713907002640412981800999861728153262528356720147557468548946988012522602824253788862549365299236590216648769038300372268883611947165123280699254337191250831192322257630215060289724561318706557880613701690337665112232806414395087675456002754242927428274167519178104211368872983688514461436977888134477808530837933519876468123470347297107991644826583257133782430228151810645166633966190088318210014327532093582228300585091070393354223866043031954240318642250291176653028236863161299411409632020636500235986079196674705209635044557024779813413383329600792563509407749514595821999693264673731732146543155935297472373114499465573670681360280419126205200407585937980315647282577118067787748922187661607780085525959628127276832207982696412205920106848172387759107854553780881367527807744149541060610421124387194750705855733857179818090614022240100607389999650290638296146901592523750575366922531544382904527972725088998372646173111944017526711895706078286241079856322551839052548067347768538256360830386412481464570122046126687140411983064933281354437898120648765446366177398832478058380683134339857601482806824369675952679163189347217749957704432147644822874481105084839200356557160024477386408644256248981311567960568154333142410874898684383251128811745248785250462053596463532615296437179767750720310320026729706341196122935694881358445922146290279846502554683157081571587712850962330501245697211770487582481690319031256435950497547627519193460538606043003863274053499196089481186828984697196163942736934293944968660793658227151899396158042833966187031678800044265521369169476788296455227907157460857879832183298145452007360644792564549283202232097993069200082872921834267011679035128701113053340682121415996005588267973742322014874126867185036465033989926464354045298689392016372064080694112076921957811225789610510110512017812590284366114203287946201029872277043817920699282179344266359775508334073647982722463199208579537065069524136879247313242135595968046686314000411620835837911098704793417340127025012831406800930844743505456038025164163744757192831812395993270182099137951875419543426610892075494041748034599883982072593065078563049510866755774876852433570471774051712656606294331707710661849827183831406402309108536171413191768410986576181434666609218599063485322791875117736191290759137050119016844539077987391280847312683382681358881622726156208490280895591739982910231095764920652583482403157825835169317984141065531474265482637453932526541165188236754430014117781871562389390710319188402433151290276627625304071034626307621935008592002743920082523174855926848700270456549520974440434430177515955218570729986407253627453651727522288406085281439001177207655855567048246970962660355187852105995981882194446205224930365361295539462304778185411636958679631280420881557234157347644045216648508859838772794941749542079190667153591419896168409832007959881273098685693057445966524742113646169470959263886626484697624661097448969492015681544430728871520762171229564699319044300327074062679246774598360317028068793556706871926522416977772858057234770376417948243861203633423987725908866770887905118739134070397249026859084404488299780370029598422059831373615980592013839401406192853666821848102665497809920646789463827476801581469311307306846458296286981534450265375097790924291417839365331011800315869501410689167215773182488474023748385787709406418316126001714575437384594079755262715755161571258889002246869407184198453399400826063982655782199598585747147425933004082008573612218655130423063446595525999051535001922164331853111309008391162759293884665188557879691342226809498190385003362887941158092597673679860037307744626639961201293938667632608351335878355942257316780827479704198791030713636030168842423085500534955791421950453520541871748355570942217105006715022543865394002902927297472504224319909604265952938271450704977567793741965689359516799153187490075889400176033850385527445690565311001927876381275153586258358842866834317489644309529706857450807344056858659239824330878885621872575191638121588765077565292541354942703173571996066862209402240514511029132394717705496689137145102486860193359360210174703459868270827228904675273929616646218012328672834565230667093520438514036920248639969839330573101064765671351021061733867785190448974265132945922092121771228522018606131225430181883040407450335735628731867723683462484402676597276851842096237598898913580227347954145238422685112699859021569882637581149281485646926925828058538291967137779148190676962528549645202556139228282223307497011192658364669516015490749727208397043256873051728202194944447091984718372671442940691525410309895601749688187545845962503708519758295900228319416102812187505311006877860455542697755485192723583047282841839780611908377795906002555107845362031670029137909235544216207754068352676452852979937618297668509058152782646496464288386286604514961692463098616827365619507948136917833358165411564422962009892153684019988113587907732417239077486080919293976496049204262773446021054885229475857923925735084287149035351673679115469517813900567447896801100806021762428583546870561072974933324902392196154315901732848190847956737615865481228775669946965543698242402833684055298660337244042033078174412238318851914433657595774369257599606864163046838973512527019090070813910632705009962233044880086693677498181995805120937560839427066475521832226139303063886166375176185244920955542026781783903743451281675406091708955849696086024448981116023735320238211728750885839915546319179331047044163385162714117086463864400516400487978192411242693876512425297210502936378390681823315601513002004983455429016238426291660543970695023753586990353801810359891828033457860724504687031766594964938379416670722742424768100888792347001019664662805114338140217827686464500583164120252155033401542807866673260023900081760923224164330147994314187929532004907395788286681858177944714235744400481868260771450307947149424225854564812813392567458510458835123316139667327503795067258204206597926819415274167641433914111247005248246497863141466861302113831590793673847206069480331914389268087233391952004498460804580649105221158475222298586519477846016926525703872806969954761115980539637995136403270671647992227906983610938921554786800538750680545675239776227430776247592792163975933096628857880092540403663879395088127214593038705912615093577842429957610824439306632653856874101613021246782925991189858364505998295302025671846022821177906086171824792160161221467447964342661730236847253294532206635272516643937749760476044696284596631013081526021197066376894030352170138905392791892383250606779927439328546151491716614093429179677132651733003552072207774688258643572898462029230048807561569393238921533215997321530800705158193363489010331345834241450347413182235174168182705106039520058413707744370365952520663439665177125065260116943011002964348273754811288300430455123718877584195664037435717270842161195394389933638074837927911427607697688568300105017570460006029928186379189177558049644507962674256156359297680504232132431532241691892083809079324880928437267383308953553471657364893227996802766811502619657360510637367012750156182927964647593665240860304485076676432099957524740945284637255999017448099586590220664573365209099090900656954782300549913806152161591833064366174875974748375797467568822585235586410283911295231340117697569325172243115855858499401888426277061604878830277211352349831255156627185890412587221041721964071993425268891678498078961617704294211901436735981701265806582536156722241840640873047358879191131351582439610002960773017799924228768143977738725336587043319903279308337543586400218275994351373618567828051543972769595281817403324551580061710485751498230307646276548958614787967006036599554719510119728009808559660335090951933243079010513641478825620542803797956913411899220167469225072840425675098112930288312376199928911025091947152375127368711100087303488520476677173784727628048917019484514539674624569288041075576349234712925636079219473712255173359293078163765273589056419344004791963215232551880368695360437820281006336409179379756028457439440779665824138367053985656036336391567709897409225861868072759128588682310554872725669004411025654546484217091336295113737451934034508724178390550414967479850104207369843945877977070832687494429061855082672721396576207957055768519464013918542855425539576842418039482663202695102975401639004107803432570684950180933550131918296437539568484447700948398705755725838859868849594904510590331196598550689837795185870431975757132351699261235358606641192043086780546136288575008770237176515784034643477999730303400226249646778190858615112606687149959992151506593132809860727647021117711593687289795854000469757581800916507864766807846032940384275424536060918095071043890247960088160318879929466454636449595676242739145684590177630368468900713922059068060255276363136333032962553083161044164320339387614118296241137009114959058491086576990226000114754347063230469993767418687955194296930056608363077595262762476702961333513781947142455964748981356726035084066490921395889094734646107710658811531315433742709684254162503175151196615171650978672143474744242047716374976874975182051633112914900660092267463953670258333914465082507258909411923996231589128309115876401541370901556954670320353471176077443016312088241751952644874832370446792964741526166555437156815210672419462150895939938099615799817152687848767564868068812786545716822472960090348932407985024548935098239447387569129223653006108466990313632688736487108502028368068984594109680533237243698778723037510055040991656980988741720523609443441391454317088498013653971939568752111113137156083032236262517832238894065900409183510030422371550425049695216007857571707768637476443973965123926089181288121507988303318172438196662497605567789002159934698581875799381049098519597558746445772975979665328597857774443403995115801774722407757822793334972860290932662206240432460822303515279681155341340450931478476688990640287563539964779348043310494626632321798839418674166919900686940184265894907634758056952596180115732771297161997603562914400416711943150620051018808018718872160246980016423822849182388533730141389916366094239483976100979990998412974379540802373151838770965257617744287584172372157200915238642157684276314984745128830418515683611630550807296829074971829773269710279086309212108246590397996954297858418558743213870180792905584142793069143057502790940091530836977343760885893663562990552455108867321377437319493263924303784304152217668156021830287255333410844653422589915082756216602040440573463544203218634591026764210505144610784867786646955886668178077029346790143983179989838757502176395357035207692200591888735326147405622046922271611056170701184889509710677051233479889496758132742854102894136507523507989654164019966109195790118231512618942695196514329168689327868053561407328326533039248658634833875708011461075792131207519254361812118040007596088259701473133702256503218383629662485106614604362656258080114315307357623445982093955386611427952721310747645247563951525979441895581212685377526612524891052211796908067712788958876282079571150691233225978675780570757936325553690635205013750981280738718335184975026129124331474310625762381359247592424340170400498525823503533091936594195358044771454899843002779629760345940811769295470523891199807219648630289879064168510725382445601051959656174148040961538334393172881683150765142212227597663809894287287479925853070193711134574476888466138371291609007872392672768791328745501498840419708036622413837283973875887809857198352960047289616368686989050423162268236696221022109620459904785340376378636362103936041219111624325193694961842300769558686994810026510898275968885523247645003887437232651486085852532590789278886228339229004459939510407397299792808145634783056455939266794766406389748936455536248406571417966023005371675462720089296328011398021083651374916762474966495965926358003781094242737005288785319262264096336862166067385430472037258403428617657938494041309469157535779616851363359022905121412956454629791082858668321135080667224300547601036732364300718308967390040440107424621751395639235154482517934424220542222827574041479582536557126735527853400324838567110962312063462599695457532664933736711913160512783032557342117458195975450488648613631345818051061966159253375210689585446136476624412254916517103435793513060902012470493825616458034633295996595117612073203348899717150189544909429883928243365745958059370663945087166095142221439891378932098047848743710122494603174842016093536189294758476071607700936717560741756585827375669477872657772823397677805161270891314942933983180312465183414388851053225011349869832350578417244963296183900914171042812476093107386673575880174328701031262300638768511020666088757502448397419230964129442042202461153185117843478532011827637035974127012894249434310851395937145450167951136076629597099635405102224228907775301852096850941691599093635741997623250144032693949469688171184657114730964553903493739119026144631069528724234235519591339551954437550607620469893913915228742456850091296658747035874902477052467869228053302020568095637033625125595359013410204775582774952855803778786461926071672995956132413352532890124058786421274778253004565688406312226578213232043996978652661161696670167361246957636606503331729869614091259191696853797048700384979613597791403520017200969765391591532521407150168078891521694588865329459716559611349441103744183333100308342095594756516045719913785642981932274225675729479381658320111236634817913851182128138226602137680246302826319090625187024748016026144499278991675753592544223495865627654475326243049765581517160257675035744607465070173015728780106058978560980434751624703387491347049552355018632479278767419256554125494534891464162406709483274672244790950206159194861290220436515103655478478875244074284900550146615959293372687767709241611803930072352868142141614850974594289605822729112433116535022908361450142881697285489159257287453607317270241533114906398773225921640494083577237844903929475032406300089091692828494612826177934661875239574557038439827843456029605289959805548308064499749389212472356114370483827285590743376091679806362276581668433562313474720715983711647557079424560778770945223117387478829467193576446653549447478631952128518092069075136671223190215476337727749267234002536916304252775799300092782203957379203795746040031961454859364539146226055667956686158711111376032987928595670073000167917481280442693178086944777521072784035245285816759788310974900134231807837509528177485655990543388502579889632195108839798616861751721376327024262030843859337412432813857088682314118930210919968857654182698765929413868770403834972258716972639569612428482421452997837017414477334788495420994358966935257136120120831727372889761934662051522076756130245888349713888044521694640347826152204617063968571562921310464042674706264839541458534414448643488343718082522109759700399661103994978636428904382118069082969024992044722152118568399418424838807341413098702236914723680903594569929527699054050320245786346197092324671709894515483794243239172300618276135095578828622455155150750582464870850989429656061118682745388036871953882115247464423272447647527128432494344293582361128601116812436046083964268311481289233169567055013988416929942074431001427594345652937134926783447143714424089125557443348953955370031467607487637436832758749074957617245210344087842430165974961017610519250515487291849872658512754034113335748712295178755034548730954325552559770370600205380696538988443853698804736275652242897537511293642434915308723747291182753852068575630705534601707278139390019234823045253056390097605238075190518682270881746084534079280686921953350501261583509692386577948932172168253058938833331194426823604368380987286262015901549123944722187522103339847282389138450938562760582379725193695481072774771279777399856120247267280809473365147242618570058495055592343047123747011025542465541611044541141856573052334319406754029606762841313290686111975063042641121224187406673743495304029449684405587720653061108911244825740733979980091589094473069709684232282889968702881371938022650694960271725740866397564680880286810620980421639997181791042135395257138006327504475608974739097744790443799243944114460135873620184367341728655301982160344787992877641905873368933883309698091668384576695915150291745918369113245488814528834561467556852753900854434741608365188865551110170668840743308048144488912871673347735439133015474395240457705668097951229498745713219326559428628928016986623054677406674998141704876341132449171578453485168622522099067519957526249096142869917928644397350461859345025947096227859487068704302428373264317747457090766772089340890907131181880286429462787369664409879425031548218334420988228440410519560699114033828945506743721412254974640329206164223041802626670212853648003999261166046098426372070532418185596441663506191253172113440685209773975877862148594323845108302971281843855979764286409446280874174881611175803604834457993452421356804729100627677588678306070850515739685154862703769433685610708005570947905056122748992629848866086579724773578372876287979967514060702532210406526775068996551239872632193256273122755504731375051667353073695463123507096930959118103253354261937127438279765819267678124077767866571437667786383939272243725916980990393874244324163496054985526476455140037368058223447255615065862564235021239767081761326003917232517863578146358389237764985974824992161734129281397676774783990858189517460448156916368425950095168035001077447722319738995192273854829680542296877893372771205685726414314471248405548574298348317005285405843335739948354611860977231949731606623399140766646925468571490325115823257071805568123775167088938503933471550114012251382846545931303806864070506329958277404426060984908175318706700219587531085947691018050201927587166856065199857507439452583868518414283544406490532460048974917674025339539933634859367349013627735865651437296337419204324785220763252297559119865505101992137133142513228048736463315745900638673102253531844636998524605205116626411513768770317632124928902897674972991747599105556613538973483000298951403656680773551673335964651775167046484245753788584144330383564916375099516812581022031944376333148909623173411083686953932170763435143187312047552028177641385597683652894158044309773021381076096168474972596572601403356618917193865248311449099587842395382184124969689511662497390737500181070255405073869159787950637329654460014961189172886506554921257564793421125154085200924646556934922533228481138571773549294326778434811637984426421732340488756079652103902566673554141221279228139410279447208572334730845999606381104614508118037637076469751545347980222686213433877591628045937692468197008597397476920560308040659000560160996219532244762056404843204747953915941323239794455480784542006713662302397899979950370076663223361590909215982707206703323756634793188580140174804761828463929442969026103367424816775434704888698797797769170183066314690048877961022806527212848453823558023787883619626340192106939978570313853943475392902850464842265215699405355125201392246169919254805804236143442597965856821109868976715668445389513476238002287079736593270020104027660664249863531999316535794994731319507509852471987166580103271820425066928979195033296433725744584122304331741758998260905280285128000359700557080577499857763413600219413116268371403817479612569023641088137272582869114462378123364043263442893923715949910077470995690459519203818884316006212665550148495588951019101261580572055922834273990866717189908662794246002512077526764529865122753436427712675610719401436390155027802454042678298590029497433373916753349664209484935576430157680134881615418210641606043125626909766152031793795840554054403414077894389494314004348091241447136947693255186377582527305869665343416370929333944087176785234050287175843076539703198358420015561401033605678005968939251052522776312163002886155249476710762490788031266399801897452565534276461020710820964821949632606317197074193989067246897088475571667513926971128534297395629124448598586658372089437522598605670551862702487700676115820771979558008510706884076362062798828848815726755167819621506675987219024677101746850886331365192431941553324634233726587678861531992351925746094005188832409734033568659350954514234918985604581847024189694458190786478746440373036607673863497508998955270509233747184032222198967356320787283686426429314379885253381847960221820514615721031344003484674329890862212443517017038680301456031017942008591562536023280530533192723326999537179063046531521698854545370037943917158552582083290916471741928853019330446013611951378676992156830323291709582645587128546773206631954156011256985275426208978608762789310935866726342247994917813413085493528640235409141547553493491585483921697007639535377378538466667903456756557550114346193137387101073493018769823182259469831610345959790687971497287225063666143921463144656995203693390023349449494459673535027575044026053057992991554382975511938205276740646291628207603066051349134117744310102221364619912874517643066853054153682925990066410196922615379586371451191985298572756979774515268371410692828086647720745098715540856809880143176233796933373187234353918552329189909052545560704867913175553184971133261182185888824585263304082164259846639619296092585717374271465084532810498327355134362970867285342035319443852293512515195396660370788478948610679500798969405154440122907936090288365561641347985111474928554660244392410476773596038219449635306872290502783654076572062914397014449166297330025865135828113516374400498782036916911075847971367189970936440868365635963768511308242716802919320236811051784528783116344518865391280129871980610907090426023233440049854762973111619605628059215996370881672000319468218437602159499202911188845151735319575240417121389239032245623201116894550928104910839505490541611481599679087502188893663134760859586181669473858952484927250264803632843296247200151772527200744835822115511575323491986942291094843064772680690011616123682747098315392229843494163605793596614589872689519969595535586859734918612496143135396331040049855721519160811125593254140974540995916021061740692138925260440591292125685123415666973529746444929141867409648214582002497942529480600536875336767602828829678622790861829074962538162281698042552167019472135719142247999064064960175357803132103999152293049821789779679400952967878021622133580046867428271953249227630713055331726236797155819553696659060369881659350070913666720398603374292333161269684241123385727237220659452332098346196404130732803277360300540663900885690937079660452752728816785076417260807974680102774054560900488887677117612119236344216679640143710356028460186238739251462953207694254258868453253425612670555922697762139035276950763034197645301049926595378419448134135337731800938180001839197373829242851406294757877877088064305013957559318483214897864244679155317170320222129256232058061672784732615257675053205064362947844199266857503006405717727027142786488854982926349165192441021712669241555946998410715787865562692849325425121937381929188491487929579841306860353976750389474775036287970023518374891812079811648537909703042183662290911870270933602096381330228328594027730262582772995652878700195314968214122964864932488407533415532080717682106197621032812479475207119676245498696910479351840419825348421008867388824682974656598011739881824953407158680966637910190788563867601794858031818694705776178219591076634822030407531299257371496466912962061061384111695751535570771415282161413624386430614917675502580717659551475107826919516728996894449983946012599343888182475098406535877407567305658415248439773732686045697783658264342197499391220904694152058112720742194899587413706391922091921609450052261835493355287023033980110134661224237578044756576440116253058848588133934368053764485484723892558401977238304096470324127501585963802427459411007956242877508644052251527052571112550094744535350765317032594758089681517336633033371169086321995356225004320101146479330769953579919898687019002017170065830716617356147514414348474423034643921143062253491468536455224580759036924903574626916636037037928213735764868370956126731587080726193461186739641694396010184473716956958045633417969870864462218174900904264984737007279959406909657770748387431773207245692095651071164028199108785107882164086698705079783041229840449126042334320439725765981046215550248324151348917891942057153687245856833771495427902027126181072493038705670653206312727647168448781701008086838303720636332679675152265681767205963692577737083353046151422905533370038758869171743824514708262913832434343506751712470595077804764766595001459147503995940653805092983372546702385965274140882789238444663740166828784844837950861715918575201663194820138602469010878409208072606235271343197319926778724530288368378299341314721737152988991847099652127212043713311639644980882237163126789996253921271042003945831049254274571392144765244528353576028797915213561859466282671298457592950501427245989789294310249870696760504529891221104915174862035774137896676895065845523355645911113236526352564032760388877750537486721628594058649579837422863664903473611220816975625771962975898846270043575755306979823951778198437867578347304403386403412595167092754404398153847614921795183245745564506653244236730850489425193703334515100376954953548023497350687281813716021894348936139378121237651378671149375876873113324673843963008957935981020324129991795296448477236634018699437019446616306253662803526815581545545607061939389821312246689679413416949334696187855999817180301487690983429063577291756135212567300220334439921133148659675252879421656619194605582927201578923922866137896176118323796353107815434343392509546280509070671527094063422889472710193290022608849036058890138422755379125791971876578581365153271210606723950014558054683021631010645050337597721688180523921305175948418359239508944394808989427753720895956414236551393805030523466129790631784620174597398294714569668913999999080822197153499300325678061149126514128841020549232430912091687454252820486969958888048058645628406202399333843256629364787925231215883910311855122941862393538267865164588184264394222129516109461466818201358820548486632374134646934878768851809202259415353734303202128717733271224296021711009361305802485638623850134479806796960853073439796547308296144415220670308740759062464554939623158178784787333820552273145326510661190030024032581503098172292558753461148199205542633580459158233804101754569834719371077394180314160226684082026710644269965907106125034784766903988748042453354257724578440916931175401611827366224926140623190723880534263845270682728571426353607681889077464434808989549939477174746308963803871311870480920666570013872695311573128975878446583935408650008076055480090721528848193844754792693837642783702802586994059588022598702859360475872473922139256075189556010264804253702454356014518271205351749189089658281233675988163043167074433958346311394979417475991244490860249076305511160311637571928080165666487284522380140805291210927724856486416479680801310649859911078560291512947320983286773725787215235399725323393466013458675566497452787607685644353912855352721406837100027607867255058956698879495451423302610419880109587879542208601935617891719881922112180244438225428178372821853484952730544412995803585490219579346812414271662444894321132628277784653930512360736055537346457364746101497002237352385367766063870366651013081242389194449361312267151400908287419219164982606499348017637844345973177998324905906024010371240834167787853431466388307412330539134230753996531883716678266856942928698777883281331885125871502524776969320651777684939771523082971907799426487042654192778888247692301752063384450073169846615959750056536007106090260890431415842769371897399374105011300637853785376071616248139439100976537200364590186856125702129988745290192622659877899886984849780949959183083825564709007487276838311455587001244116042071712433842393843564171091815420211876511178460248702357299516762256801360289319803557913960129615682767443370337158412232429235403572069193846452195146036955024024671957940684481699443398208269637272578142306893842152377699346567051269621300895663554839381108394628887182993359069388847123889278197125579748637396961732650609415595854632509146247506739368549655753208615649321084925828207795519581864239797111059625359672538448014309705482721189908561705531969509161443264357060994462222990135003203793386750602089278599829558680752021030193992980575597727822582337781120480377862273293730799481847824804748840154100727567150195409411252032668270513983068963293825291180581867780950278678894685022690439528113295348259818348772302553762241378252756090988049058249703891128177110836768139873968861252345680624484063767210258005279755348962166174684498622421222523252622297137367040749316644537112103178079514253784677927063063154895572167307398214763015250733904510409776823759649810831768274841382617048580886945761828758508357058417559113804837360652364451398865118122237322937146321870460047735777646041230043926838646882454466635399118432981285405098064521285364747491737407508067349777009692421291639090041723746101259583357962936108333477501127329290318650746514134315419152906269884483579589785000784609770849751023604186343676164176050232546889800609736527380849076219789171219256083481007127680796929680657448124620327487266569865083896810184666837622152461121940780005538228120261277248598439343704212071598187531749799166805589583677944895608842336044789847600002303071120421530413154288605080465329927215891253240396760715029820782179761857085927324145276736217641137782998532467551167970070706756215679318572896424771050019153614633741870980618287902636123273841983248019685610606734271908790060957351187222642042938189324013387246723661219573690663194122497683703252285468642110020820820057846217780531676711729768218515233120381000878814113129879880562588172653032664666303670939819298676977597222032498238633002730419755876491237469111506610406368590839926693450517311501604443494437174738893412051110797004329350143383676349289084831316162703721447010451301535630249634075126016412623138886976467005774182546190727467335298335394928734686443731965399833171794313132296764101685199538916432345856701749158204488872292063732591422877477991229446978818615833532963751657099374473504679178678540548574350061403928171149678647551628670677974368596288967295388443902313063220389967161961322274373934687977958021615729802318231519552138330955174767003786172608678965753391307417070771566434479395375708828043922863855168451565514603728951784464277861377872307471087966645770149328025978081702231716117878713859772355928253349372597754972047500470129632336735507986665880721212669710359949649624470318517356552601016308657100098875297875231580983119101065474687122177078881503385570255866035706469436120329092351510140154725169699031879444900400378491096670443593555026534510401934014803684530377715013829603471520647869764563751888335405249593275365810289059517078687114791686926371501633640067472717039530979727725880152171407554753632609209191026592427905609499595976944194663707782399031862942993083286439808905080566945217332479422404277876497905775124343040765168217287410860979307912187072046196660394556901089238359946793305310546753262257994176915761187101167478392386873177831467330290708751898196892708914497873250977142135728969690068649549620705913709677520243666120420599775409109410162844381628211128417294030125222936937169987530180385778227441871683453572765784894738355791897449613582236307359175341379809293693834275320084520685561355931498622454061224945963244567822435119642857263270317258435418934633751040145286158606931942154442892507265918764891835489144956451083154892001410678500701359915715980337247206929441144118874722177799710403743621971848277561691718016686185894823015680957369268644877809446385666029185594063418298485566544007658879341632926557874579288244054944674589167251640232543656443410342073614835021066526576741871421969069073558277234814689715776074698193668386322385115444129108928815767660561502683854131941298225536380464160806580279663548094344398135055589417916661434854281559416855092702752340273054710444440687609378664170350415546927419460744558525024808823171020475117944297395996289375880961491786149879080376050253421662600735417187165198437521868500646187215296093065454574121435859554087197049019767887956755831738669831381228237500450986242664666096228428915119312064178722096387089353405380746892251037717372433723475585061752505213425858800464419902034627870595892969703605146360736736761470968719683057226657654863616231239715978907178806326832753652684729790890336822972032729408867260362896158478660792761384347171389110626546121760487096050387614409299968783031193452092024662309379708450051823309094028375683816074687434350366269543045297943258130181651661691584860395528513955009360849951498421187634796957627829231102463982494379658807666285894043830630127154504043735105995257377939806253181911949907982780582708127311063728335516553430951987794400030528490182785315953493247198212194878876420415656024527143191780868210658939207041257757108340084912207353972892478589640943700168973582610804870360014203844512746498137489292659107522630481874030227739404829729752916504006686721778704183678408963490833471526923563829713891877210150502384959362909679527635663957703843786063988841579767345504311066235253046238317506720718277526909742532361433048707506055258416946786562362246563822056438692278569385717565665367970807696939905649691272566833305521105934931338226173844822973765162344086812281450166780145717647430300916187726379942714214372802647080772743856230764735311597594086997523449898730116359013761544057970092090190222841726374434093557257688387273015392936524656778358982934618130794361431276467417040259333054961841369173655812476131579396931171645599785355749488788650270061273563896526828305476559985600662537043154371294354971973303229388879692274923713105648341523241893236682822135201075547553238110092913828930834015900690014554491429196158046221954792509272430604143612193376319882845079756728997800590389211522630165763984387783992865419406295885409324628172475346847423480216994027911775769422317295783959876201651702134961564103373101018656141702255224551684711198933415518963787108133729871902962479012847261259685265087844621021167845914388024467175543233347319175739970573099029713788678511205276978744107820372076078514745131875832851084211063726302864916860466099068292095499222554066017224474576229723195923733500697215968223802016210191919062914171906390762979122191832980968053526710449379675460143630183612294704402662110301241743824707306593689971655111927927248518393518104963320384978939122745637665312819047858476080132339614701461050078509421491628508608247925224356616745713866825873371914220579844420788118132438571051096353241024401219381874160858531667444660006393523737754311958058544607741821104604659542654049802747054567753639330127147471625874391195757271995537564940701781915986719019480063958555977101647770913237564856078532499146538064400637388248409451763764610672567579604166960569291008585502967068745318639395158034912030406949603576946258594227560270506281252651071748421037353886463063521474056179986840567192467683789319343808297141057314247349547776131062601690957038595266337376332058101232387900289720183159873196047249992025868830963759848511006839071854585579939442510119457481365056173533438012394588096806745138823968869333051757741227802549323315075755006481516435506794493192457410818912106875648130133700885702670158618897705062867251751047580981268687088021172935133520043418950074052940774231545917261532327925320244844278853471465931352920966461374295489631420151200110553664286758425086288629622667172564798296148972689267429613220704070539522298007823130133475757063697391904155662549358609914213498233013810605132298439573968444899158965829108188737264914816551259122119119848587970846846655300912389381831466240589742124155689200290148594070837297809402022091554279733917013604012706987847429583577365465627002219135182976719248776047843381025039115427181069938595571532838958813537592978674430594323386711987242745445291427285488225646247357699043232345278965076060379407011495051418810713836804409754143865574012422391120172397088010130787445467447763241832042857049969422549990669830297901982129434319683405917811901605034870353730479466881147827188830491988115012563258088884603062067971852251934211663118160346184748476005516209434032183535770564519654996766627831133812718053692478634206259923788726547392697340093705517479200697822064094090720587227958728767408063562880078507223797692527253167388594392937891492907549257033841357520948908584857513944934248878616103624632249158071262070428199191810315611719521327659390819141607250355759816539974974434485219297125505920217492876093837021060029669370447382091277941855696940948236985562326412804754993639666271576977370616775805493633978991267896102195528571316749600060257955533655840774763127863311766199104223712184691899902140302608611712348834459523028384153598306759580394255483977892259449657704688434084847247838493041222276942430157180673114230382307035491851730565367041257766357211705456565907718125978236491046318817105233308762594438617185193811430912353534653738360617340068734849907825348469239618052457189666883902883664996147760979220892557439081778089348954422074092348501679198829406577490507444297303126340977312990314405551116178023784330369485737205327939978258761184464544920091815176952441884612233539378361986475130544947098457021616109717237162835981380889938123260978499249195646439145479139488349490233773079419754791443829749677052219068494441088161674940272920761521708911313261249016890867846913345423938545171940805438857997838652036033896582252039543398295824540666736231808475028112588428874646074150470303450996056782304887552450575054789850839747906185070411127491910900083959059819991803580489729057223256468803486244010296224268097849443541124333794374283295426629616004167000689624598462915809589964045390133130969103427431369787526466621103366124958711884487526293462669155861901859696124969904786864241640015485075718163111393753003828722537046717501024312589151705949226496015344983144834221538367510003302090908981822629029661966092701414448778289173975495637667898196155787679284448169359782903630931148942684532249963441007929146175579855963748511040704359321164437795802886059615470927481500708291992720275993656212123529361892344429822239450327481174205836231404721564037817473509697426683305820434343624603308122339218748528610491136443180178532604461414407145393550773889574862960582045683688242497883083259662985669316294156580027851322583473679956958865415375311078005843490818131935354438791791720999875287375379830447217603038121111719452693539273024284786025713918270807796979037444892799566181141937125249582005173676973198084732140606578892752385844345740630880660236621089179676742542479366887934263072723779826874576174505690327062648429818580863881065761182926727424922337571414891353246902358237653325531093520768244471669802015757986599614659612468859177576100004911149483731856080925520327095834003495472283098153509570130752235438871599964985694914513098376786282462391750440039800002978889118009243801591171450519785932470279976104480345357032662084094293843848463604855188843242065419896691919395769180305814318520038487101549932797881744671454588868718110109216525618080870440450115775607191522488533453435688392259762781671981041719679385104163663083103637265254808908352300688129684586037887587395486442734603679508993055393847280296434916548486051136672706485888535221386747917761075573412059080674637558257875405028430984486443892077262621999436532676885008224547037855454814218565337272001745711522308319734443929758491940271763140226770118784373403000352968892337934317665661812287444351234226875222641394329598516329360576196114587430472682862899071986108398267030807533145885703688510079332300941224535905701194391130672744569963233190243785260095465383936233107555753947354705337353823264794019659951781616731987877909741863004058275103519860520660049465583518598244135509395039549838425625433353324326104955122481974183103969689508108171283815448647236469524545130941756688625631420831120263284170673018832024379467711133270959631030665879013788267504811726012149031988819794045302636692044182571031118824951215321265279402544502994056826113960766089136928775240462586363463061439057481392392509800980449984145567941531215214888301495872047603356580082140411620590056960266416006192838044409811437730243537092929818234960704520874430963901789721963401512924075254090581268751564581199851529211640399114555088378393381278851677696649383192948149000099058308459151391920246183046555095798387868325061281821985953823930180259189954392775312627312890778320094897058049054221128166432108929642275827293961013143416588148307110837104197910092962500117195800089246252319693434821558646437489367786699433038198316375658513770339574791339141767193211295747766575151348029525291244673971378832613706740457436827206803399041229241821780315412725367110241994522367561184894852273289033763094818815770095170439836339048999277407641406758387166647474840325122321639246395843419328063844898597231263933489558279169673612996859414129247270930977175038116667128940960040798704636138683734478973228334699068000498998580111012096215071569727828562093986017156234220153616277335067434572200227542685023227087045376102313367359443297106826480161619666657408374940641360392849310189096379177546325684975811225308744114250185405451309285395108232668104369697564493090795317981440562146161779938637283533763931926334270617684989031163738453015632041380350103476662419562626417131054675980708192354337065480062212749968780831593017427706552119365127042085493075257355773089742366893397452324568838170458878340252858905685971364422927618351052043875227448156753333544884257574741648606559094833597616327266430811069871013916271050428995306489908445919553154464819184424600298172168239422155576317062151924771473652452817548719673037207479988110854872809786289575227054692119661782559483267608498263158332959441921868938999777411207033018561667880302427025545264686966323502637933502803168670810395895234050214236361738052100396461408169432501697024935967886067791497302139498850671237798764347884896471548680148515002147808067890251421122995057160201175390174913832830098535993450371558455084557583580883168801139047365205272163406891401965444847099365380886581118761455344342634377644209741976175094427786611593738155817761794671897728629372510311346810902103661904385571770575549344743846195682825962022104472807442544655943297336073241314639446075435108683311189863629762691498491912180081587269866543996538477171243802148802233937194217768670233876029051612870916854385183894321005286908980905135991098565356967544462811317836956186807609925510436271470429954184714542710107366733063739314389767417485183209640617850419570688507431924167901676891517593958298065596511288392933961739710515743829658203024898389026655840515651022525293811719674801332253476062650193325629171283221471554307940295301597917766606576839471961184947173360540795139180610683013677519924269513272070810680106720747530169133332214100445416925149788626240822042629809997196889541965686834359833945060730665879791551028554331214046776318609638482405632987147653688995801816092228004201232318008534316839945836780574465672920102841117034156683539079132902581254915946175162310292442171254551089656790208858421780060472529585826723842333114864027192396517589880400980990267055917328756596146386308109521051414524647363229488629222445466483563086981929681887603541447916159131587302549642550989030343027123302115569275600263155368240926984938793139888206386921170603155265358326271377204171232663119789930802405019913535566731456736003256358267054671725051548945951814550413738764846496032116198095387955991376987130596580173396124590707755171157533001252247162514216821970767770369652706725185631189323700280165168326592126269550560704556476304653885710970248520886251549410773323649393094548130172031716642599434577840382578219983730960463807723537841318475839086068664097349843825140903126016095415910252885937914316707946889526684424499646404802392306178048853430601458718807361621827922079358294816283744490595458532016711761780167063000247370712146220751907193269321274236133639629506822121786781586510112246096460378664688260108302908187531540440838134689063671838114989597422129560833088522588316972153605041711792920254190132088590277687451219342203545521823666346783989612439424354443531070964097138782246507296124114082164273544251527145093610297918893334546573569282667182489708860959723251766823882204139800562430751428525680750721424012878747391797684859324456371132691148684465530026550481083603048060846350377226342660555119725012769291291052117292393096798563599647734452019512050967083074857955054969484546538218098229897636248219719491061627015352466077623318250973128104457188443774459752939967374605529189713431275341266528664405692656048373057145161134307656418495497857290038863023984271126798978337561615365034677714238731153691997525450203988021341198823158673572461204781277903517251000677588821972504624012653415622812693181156935383656046996253295097418731933278520545961389770462106015711161013689386574422141880789270412872337313666177519899817152658402949514402046685477556100141866981419398227020579137400425474993790430173032255303393889823570767213635102021195613490045957199528125900018727642401117183815941126941892160913530435951450133263696573188235603146288438171593455992676763937736543088665388547189044053926970487800776195378764309826909813237373860057576465586051594388797789015325147961050310174588822685093622978932956733502862843610570767727794719038406654193779811064671724525673171058610796376554741401577162504490375261101374155922224536534753030562720945746908454030100111186248663141805697547593308281135565756166830794782437314386350550776897613426378707310204635351024644329314077607109711148401298624916387974864036256509601863218150072782521992742317078012298385049258666750417943771692280610868698418503659136845597479666045904991171000644861031518009351741594313257914485837158779294952971976643181218508769654322819344764702497115314314303256690697335275643221249346660683619568133293722880552222847767611212336153456292721802532665730210341333324313868497142760986667296442920129406650172009777538146668622369204509262303829598065789174312628240769685346708602192527784559803512314322733455455290238482030795608975729789855435215682625031921682676830710216907976395563731678301603923193139846523510267730911897999104613700004165102366686321166026192334386997887022547376963335605873516392952904149867291369873807213874773220602176799416628412848984309228945774655941484169232400304842225484906760108349105727946141613762841987715886216324632836970118226511821515298760845959286246992787886186854051206816906754413446355545783522195295522089850306971679051981718636912915488687434364790233792666292714319143093096798611405110611856963557242578489022233389385443079823282530562080132328909884839517607080774649930710855131287207582329956891177940488876909901997563163591831271415646251634431856313525203521601681186839562705197128671382481354021493171311389201694674720718317276942592632190668652019290556115260079517108199104751411257171558139648629607546092653608485312431309820686658292469857470397898101181126343720885294271201603876863567669983435266801771914976126104095183169713037792097894884835982495304897854231789924755768993100446899706510288268738197545633048641500307078861386324776862758229867055813522761531389342176197027913984248182136665119589704155685524110782581190326785864546956992750058578870342592447342485119761555602887324057363174567964937972022467666925979835383494824876093655512120922729855651092862230970069669747953403522059510581936702080256918216773363149984655364477270607191368588183296566408823352386811861559963783457737288088998079694483054932679835333887033814415722546274336604351513842645554886839011422327381089465146754228112118174813492525646064748434122489896132222087211968066274100125244526587248078090674827062596176724990488588279806987756425378248383201110946412179452799630569945467677939932683190417504324337763922505102897982344928545615035800667658238686673530609075969752932857614445722044637756246845847793107869149710535757186977780721489911454913492614422300994153192198070642058723365230660722332260893573106762066708325419516575518440625667195422420508803627386755472360099135919460331086435931435197580358017404046024228564493378932965738105742039130646939136562119186791236275592756102215969699164830545441630945593322343931392403835289692064856912673483335474776545644233763530383898827900961439576218129015890869235242269339681239635086568283784799834626027883147010338285175761951495725287043691731905722550129234482044909800230019964830473684813303813282316644038244271550878248548362717072709140266993335660753181088632991662629616613730153771541091437480481191314617653130973106975040564068329753513664215364767385072167755934116025034023882871786503525798279415092745172233136190531537606186856777932885272945678745628971284399407618316571368779091469043092220532634526745798726684883171664415127152992420100011237919421177975156101034427855662982778348885787631760801423902499499467578087912768128054741832825039987859936039135081959026268009001993621408421487756020063546118672136970893568608152380834543305769118482590034899217558112784729947940885756688462912957920365880241625860101172080633229392628558963986518876698074459422662333291308647187576034580759733826877151203812660270850861955793736292718743366179109766263234034998932281801505707349660331278217201300086261052042896572798224810846751036096413210967618709122811379996116109744989967296691557428399857768260203175672419386620353508135077145023696538755303412626143867180810797027525677440730547793993573309283130925302209987840895615841333108520087352244019033300788765394516907076674482555454816583106603475755856023584739433542773893382643348129327572803549270651100929842265195349139243058367584411005177769287414767107618649628175573797118595664296914233852048814834176045546676231544206830983023268210528714717282004052450786229997675754388728619260518339076267633825408707301937814173462928340587036837945808974149419998649090950489449245813935630118870951624150157304635843991480920270935159530173587345683422796463702533604580531601037572325300183851849850066714625233365564450311647875678477842814628213384345254752611203599306177283705517838551961674300700666933196466320390518906142222938987664731403186505289417473491451370767074429878232331114112733905580607590026017379015552438664439156099992171780987099723723250332904378978566877787612523514742344868120321153730648617199904359497996508121718425895416008425343957762895633050320441122764609531247313710461183466715775116054329093823783471655116729934520379025236951928227540810781353628858194260572430898867367482447471310858069898837643644938189849047241533289589295603820864064697063923143309811128082837332839254899835933001549815637079509184139817337057286593743560462487838769520945673606155728602730317223140412139747325675373139186505405455312626744713258535289680190354698869657798506432001252770016698443073588952151432484982429080539287394148313030486392809326866454120678826335930231608686118680833876037657121251032581622589267711248213078114368314336834317170059871030169896824426052578741630319938265131464910947640995635654747951909526871059623606208335305059776327925441935629748501482393917623065472924303349301242431106266523948011103088848281107532959918707588023149148741329346554442354986294646403168774183532661554940271666205907784464366242782358318391964715779967465472014634152011435259390186367885419915027630211984465489216444474199789474756416063952871692483089386453240219979940407475045238502349805712532782695862876474773884029106006028100514891504054933766450395283495166301082717084115606942153336365448130876690689771504268245580173093402044126681133088127805764217748144210439473524056662947579833727153367479609568716630921746216560272041217064731817611460998464335819531302840733231798791721126984287133590014721279526601264140813776741833767304044505587925286939397574852036367305281946707765665996614283675058852569766963284309244848175901174163400373005943219122364255123364650541954353737912155884234885013352802335879266503494228600628389277750338630486037478258940503146043875135734235623972004920157009912538374791688333364206800453743954354491762131613727617963497102387194772142522384992711375308637773358320844626424965363554186368362343938917644985097730293537890591324759712270888056409840335092347672646559451243571121729371554399926833742271429077424692309864649199040950769907672185691861463359038378662439957315416745023765058301642731686823592937368316722707418488281235442593793640712456179537815311226547598220387903987477295692561876899034434986891878590460952626182001809102986549275808412265378285884648032741122896135981943887793343038223603925226821227971114696595285692896925704384284856628719838919959992351121211918374791860232350922750788868181060426880037821483807634685005767045337895044522189695565418306115088435119900451483440701445756883921823673301676912654600431071174598480152554385708672176170859127163937956222035353056641322361711433596513407058920050962705070313301572822127719162572946073388274043426024056676697205982734938468185868422516644966001672733762455720125459550987045706845116287192953484550772086845734646848124493478702428536078574495147757274774758817039620952029470931055574070934353778897737256662404128837508467561785095628342864179445410079407016313357239330014391333011806113591333203359280216335410594973435224999315756973523753566584075141244933482554774613072265468471842676025476972489102935170570650650940356422760904729782256849793673879838305803051374145430675010753246533554440857608241251327509107962158701753383879852396644165529552539025461805516969858446993249791225016580336364629852095076994060975337052544607060721562314069701448305472725553237580765619218053688100906852649189336055032186746207328651785201619703735930967182682063638243623037041342644366317389098471462625940531413392195655509419489588385700595067797983566646278228912154335167349817688061478448640883494196374377936354747175690738253240710365531267514394695750763868962086813472725752098477627612736104481894130155896945519340712502318704910067972191841191276159684373998350413306308416373029337309315549020079748238138007172535403185211399770274084831178079197603571246682873666580387804989529172325140751473625982026415487747520097331919805407210971323741331960314734076348614455434726729880461913672643520455074693934069381648977061957623148971438993405553071787022124493731171469386833022835114967683685784011421025301182683863216446535527489538130571684960910276268982947657379595884963168071342100784736382294681481728243950530264017126107943244580430839544664569599866792305970370653711141158429386691430123242483849385688374763379800836516529453764139992642674829743210290351937699482055631618304493706657738302059155294740012551512883410775186661205197746270246874002043534899289832683331115175341790526611685951229690324556040997704805738707459806331756343876124159442757491989015510720888684165948425559063226312904066439403271871519655404459019588400565872911340873647737952658663153230308064285748439921682389220661658051294201407410518588435571308058001948809002445522410945288789610201570972388750579961845667042805522539226988211462959118351218949266639357619545813357425313627382147307601786442128638519809497757835400737372469816639713413736027509620604460147931353103164021247715848744997758769641761293595722399714536228664907664808337572646901493159370508616325235115115022897730230495638400596642393873622199325141352658583001516460412816501355051665947101631117842508210135872236830651794430987589908661930476416955527076842115727617372035511965620803786997534906319809332492797243787261647779207155966289563224546093710698636825752855593404761891172013800592625523676353519696143440792368430657060607991326595391707889148301057092469508810577497241468608419942344990626756419908091793978927646966603443779250863126787564320641102330641639729993325533042444010085134178314113550371295036216219186807861434385212320629281395983564721774462712742575815967272626908594639167562827243068511208855664022743955486202255549688937205312113431303932267944364010686788192307369197910242277864373491733509211012900028436889986807473757503334792700939452511784621163339983777579471339867650384696062691265918630641973540360539629435261071406478666830505038741949640547682276263997467100801800203489640391801719081748568846426030756944170037255636714073723217707156235021581246922295090463992739773976572553699157551222175187896650965665001850430867882951728848708158992000365443540578301522837956581979635920690723860110962503539365672379653357114825822716094040874084377524900218289910175409225818683894053648102042327415878516546565389714288813005369391588306521398975806785556804421680532406676528956299448482583707149097018817552460510520905472475442152918657525989849751262204974121729093664424753696153977182762553536413901810123633938988194031618242867811911935325703754996024879156293572546988221629281960642473932050710962075377214276394282182324990155951021765498722760215142261896741884962672685415643815214576700020185199429546749788867082388989364517588082868779818084160328254690594621313562109102916971056621268232219108194734711578526376174472298037671418741424185049868427280580013523629374488649314971166963194447172660186159228266272117638727041906024912222691294654827685704016863031048365370158625046791045786116165435976618027563595804055681942720008730055587644543085395130095569703900787433837149866481157372972228245363916108255931707325800562744016942699868285898214743822941787141921255720598731633742586888479897266843797788318699679367893297314347759425987774736364847827148841586300119295753470869631380126796763019459390194796230956079296578673385636369162833786898987054836285731670138483708902648003120693350094252466952708947149715115690798255377048592656346131025415154189455380924611906576088631693077960193454466604847156406576049554569241909009035172629564974679598614715461552092416547195746382202584769763750118948221753562375881162711576217589852818809272311535716308448696858152485243189210549413152489373260978288766010618923064929575944780638174080847401182603606467524400671638597685959233323990199918146594673622870851730335529727378454056253796674528824250288042493110174121825785160771656651421496701658455905096503596898642125128457920359233680560717487502371793980840914916430912238648690255202962308626364766564877050608529082279167391863779249410119283085675011352666257487586336829289118699268548414220886473281711568584907298983119268476494002263864245484386613144991916265451828024163283570847946513925314654761136006211222259459036484507968939061692476211477238542857457188740364068824721499458456118405447399524072463287724409306312636256126660200843360533948120524699445453043542410331754322694060734513047152193705930955928650922637621221854212133594885796992005788919619307872981280213856965974743072433594931484196926111277559375437023195492017272446970249116817420878483545163346359118151710255804456901536870237653220109259848176504734252971523110864065040097419801688964256681399551073615586658749879009015784446482932910426988145782742104441671448322291502518625934329631497981761192754834878049607380776015164714475254069818642625567146324826051823783486966447365361859360117196846254436531888962002086306717088814619663240190499885655876668987908139799624568107685815879648584387676490352768383136116475722089960870142802775613059939544077724659618633541480587312539007949038858156504422526097971879047744236137467796589265068078210433557770578698476984566536782056552597665098340456304760771120098689490496261359191724736050274438588739579738009039586425530267438786591090028523814881876421630812929219092217530756960618061376220855307862566472261470404176059065447767052232920096631510160632990010562726945339889273691202847540287611826949677388021779121672753242771938549128566626996254166617913181058501261973957326816337396990808756849207737891065518223924736833500030864499256710169083071472320435859991485142936643373934712445887906552306264293059606271968852533863028572097033988173962513340195101198344940854254349300826125157066931373093013936963084220372285112238933930669301507912125643716766414186232543503402168330935140103221304747779062162003371588590568890313843576268072082576055471753736758837677052059744297644110463728908229149488122543452932260384452228368196697432343566640614986991599412910045680110836511837418059557639177748147052579405645734637593039873434091550333427639505978692571143979637256884831515543204830186055671892092992672424202595423428741062677504199902006294874382137868068953600286377270658641342879856650271609329548720696027807312258687132145967708061416086322747197736431150270351398356953323933886356004835598444925061660289346082092691994918707535497657576260640886181562123263420447339328129034323193622653565372843504872728565563581203100487826154965765049703773325949074501174002451533619393839844993808602569954588310283898189140013050616771158750146128692186631581699150538178701033047310670922746367992231548120551633563512669631501994374521590855223251782713424239913510077277634931945206893260525704764818581505717510820923037412363026522520661195697491738530232742941406005864123911997536466515167970346834286208884190334766129598088371431155695282706411513888115890732695168354587617140175220480296565245414344913977423742409433117759537176010335499098145109872461303031100679520179112002415463998707585090237224237157479013580186807272239191098666880257245608272239392048194131106801810613519684382983139107299560438922448165825022623185366498060741700503951392101071613257169197733467534335379106537424981644658674481235835590128121479370172445361709179749210218494586568864136008191638868372454695663854260487617530670117336488995108805382615207901808997837021930943891578978098043592613068855473610732651015276265779047967124562711146619296723889196343448483247621877666152915292310176779368351367105960075398171563658370837122072874643464472936828680486609028956610501282574752266642245994900416446031983632542214810985330551200634799113288127258906859295921441003840012250899921699034239856395922033958862551964711997472849534264627039490231299811263241011667024854545267166304914402953339695661474529583756791663323959243681732537064156154960325853401553770334383248002875850413451919201032436078443422942210971295140079963848873965789620928667015466073957564349052774500350087159097097982635183494609797378674017527042363986512975325641941475373755101871984284014442152262497175914178338448493385280878772200986443053189616347647343255627806636933792979786849146005923334165400257860128483492216050354947353813815250280341431153254589281315015588771407193025439575088943336999042974721645101438553268252712498595409636949447807939572295657890655838408355463681935354167293261387491525262636627509129359579725626667569654755143284406435714150688702293777531080900085575982806955136810332606186759684769389763487467077527381454295353078498290277898663376646802224243208706197444856881821187318678143647777135254412933453656437901207428452874701920718311850349842374854203484119276882837294479920617659311596092802901331379785319774833514814180307173698014515937662871113932690400493495399069840741229135835579476592292835223774629379232640937387171368842826474616769881608453696289839824799337172642419464789575521701721843458217663275960701861359320389158439085383382183389597940474348196175195696494254263945003295731223083913877923271722431445016002131305846861180352152228451046859911771200962270593444181913916633868529833268579499814271913109825242732271127289230277017520699508211407914851932487887054824434053048938548936591900880639101308803514740184354750375755119297333921446559591006340760165984051042062459246212369030300106769513321404975938605358323424184991019108354682911281809249781843698559998396796962272550508209236980612073646036634336718093691661576432333554076067810333931052386291825422963821074847513871469937433134023375788713181508092840001431044056737385781341474707175396979173039307638764388819023327725340275105242429056194606809103213238774757091778723301483262299101206197416240644456899813373905080530863256416144118263071010342833356348866501094870749307287721199926195203951865761095941549465655614481596264537847831862354570882004367079329956277370331376911753908564921937518256073427249595752598306569341597789985254781500319456976428622365442242225622991861544315102096224488682289361103257786392210620259397653294581906480360825228643624680930808269895065505228342080137756986660190893263652207546871478619216814626445373611432583230467465922441271952524662385756250328462095271006012382863506014159136806620210665229935986810707830996092869479652670861679989811729062416828297297555956333049372403952673664486449833566352584491057881052775672236104499614724026405349213421569277700316251385485479920385771472282814386182975178117729874902899830043589216527186594787573017049385355520522667021467563901340279977582975250789114855736426976847794665420808966528005068479611221888355277338208005800932830175510757503892664770546696429927021432112486076903135116275573899663400292953307253612911774440161833825249292946063310602122367817600459209821199761116038395417607618392486407818741102560883545647683431291593059303091218126828344907773182724540242637265423236209860167188767080185126111148496988388516208746915402598831589943436901452522080775128588591396547072017675634725852007664221974050169332883070221835837221920920248441064088405096933037388724649050600032638620308674837821329307282737238915823632656913149032233016456820608083431347073746669522469657645239343734565728105755153817665314030968525146461912772159119713957143831178940198702972970013571837286601563980593093065069152497645746508422117903092141509860441533331965873884442089023192626992640174708333038072260690814777159296319843074657536844558153123389853556013454295688631013582750357915057677371046577499809956703081041925052171244998352217173781571609492459285802769794621017686171260374904873123758002028196145981288439000908206667322181771141555931791124070722226910702343800628453806556733736041885829853051172611940079243436523040355312585025029311172299798027433504979515202856111105164514532878440863628930616578811341701122347173683272112591070726195071940211151619904345078365100538587838212494674125749234573579112276053151363513725816288644407837114986038646323112307839104723366947035895060728195927138792924860084980819806249856896049922173273152948139637796916500668308279603233141201351882117843684313026156157668416049896191522611745073316553816200218074420580827203278536142800655684125280874125106472596720603305774529173310904472546010851740588682634773461990583025667692840084207423103958857860249716465292119335034833525787775927693601078834920849236395514757856387867388438399925641991726797607334035782768997676181771089781268229513668310457450926596651946187195802644771335339330486797116329226496368990253040569530349132316746299270855437911399341877555610751717750407558563227759186930188450176284149445734604115420418244516259278025802161065555987449176444450433103469528755412159854567632989799924854346970355615667469036396099893132657170518569851865776513486306930007478418060200012569336112957073404792089311783971201319160094774443112500716617078856489810876703929391091496353507064475245058156378770408048654979345992330720022810785277968618325431718985543076889559548581863491936350660824627187111668924269808442649411990720537787174732047153491636439900409776295005241706652463584326703310316600434339482638933918467145338745873483519515379387246284389332883912833783051433422305646575477816257349961283649499945882775643570876253739485461268556932248788194152268174227992129381588640345302685185616806631227176908216724860459593519307084566990380411289222897651073587587769614564977720283334475886845043564825412592355679362531097146867975085297582267450217114148837807063184360400171997558916886083728561035473020750032622893074950641519587794877472470275970455932192060218809600964960174386822835720006425561036108563968150409578590708940153458501742011295590300898295406898752331453696801886194006451113705106392501112532692013395183504867431079106092881943411084949055741648768805383584820388621531183691374163050800662175516076720757382361146593905122941708941697985435234966182659596941432612559955834596619194167573050803443615831272763954495666516351941425876949639063963706970814366147334776552535679896547298916495014408065278936424603884096480444645634936614788078673337888557872685864248937572236989740633363668268351879076739009560138828260112227097869162961004094064952420448781278714181377951119925338055461762150448612502310883595597441928987623448104632730909412855723649156348276337378582247602887058993652348200539386029266117778868678191231360834400857291049591218279084158017947510089987709056422398708945337266263143173851030606036348133569604387650414254812767298414344352427655779024979388990483306685002881708464144614504649544275348201905425273129231819591611334177312288414346796407593101987334390066431520081183066354836288893342455377212629444032093869311328410710175028796892520101781312472755957765848028078792275555747235391562768651763557811409008001295705306033279623081478466592853523652380866294561883523266822359403336105610287980030516715272530895095430136586323739188365180014644751243097733398945964809375880543435393739085651537951152317084188582868068546285625535690931162298717471794259184002822623151521542376627889728395025749754000314898605888193968811499031339353269489217992855275070318516453839330277081695966805084770889850028246629782480848636968689524718918404218507184593368899453236324424093698611185691075757741668687934122680293933328168393364469945077660875844945048741233294069959748381236945702801406365731656131713317202008539208990583202423410129312392361482824544979862384196491025339040120628024529539631792132697067754290725304151498663897379684005352911500907114455698575226887088220469840752116890820830213473134102588309703986780056836745630644866281919617346152754714834997176187124969921973852151476553022805953268876799857918459447531501272491663552159091931707009131639003504224183336560469920005094326037593832476509029181363015180027058902818003670702798541442619876661200279141829380032933531426200406933840057168752308043979694337494870054597276828676054045045596738679767134094034248007937140775778100046028952051318925085889117403513712876617705314327888443700068279092098088751988018614529631087460422078894302111058084385918538236107273132049947856191411502282801703490861530658418145683740185433909790035470744169517458065750988833418961931735066755634254866204397229970730971859486480802363009919606042232306215870241206539836079833865952532684914100756713011488151569253585014354135831562989267101418255965455861308432557516276071823456158294640565905234808974692223691345520128473259791712051671809884413469992956325129142189225241510285218747944576681635839972676947262178439539110476447771042712624372210032048115849563405748078744229699058374414441710635119925455534936045219282394975493244252184767234845148121980358083026624658966573941563541896616452513391213272768827081222729037928463876509753657716838400963222825055942157213552096276786606631216108652126734125519733450864451562041383111392489296246065791741906331606178178994913924906220297959532974075492877136682066415958050769097494007201273890925265859871486802619503186730707830177289260888815507042822377099357848027804513073209561644842931500705781113379244491018037661939888452398137158822766010121283036763083126420710658414510272801620383502230065734992936964600774964137267500288169891278913537367560186230849685590063952715031507811616746303672037828584754232081038598518804726849364537969561919848797941954171473798507235102805068242110020841609532799721547552055630050404744558660754835333654633140804457624991970850156182265870219757472777381529251451232381393693254200539448507941714343558696384284411105392839313243585324768273475176936344726070078737166201155065456456651282944012746915551444073899846407536998350060511317074400474186122016011894216723778799137653482820711257401368925711220456823756568360828796915074216016173854287302207358448300637829863200411567926287711643435288532507448022116925026520682977732133067700079192982723894342826618497417659776781598876952924106798533296980742399306671038449174053139059839747424217962975157272391425425346073901461995374150709364982245316864428652894211257889852609429729721884324794919948842105191431866657048475297358110682633560533281082844973492505630961598156832207571110066849461021342808985046378992447531904632797657059323640517483496202506953809527401633741682114316650637481266874911597898783480069499554164574295259031331982593247025855500941917592603713974575843173493977476955382996521228903153247829820464213317176451781283764913547802366029693978070389008211060469028436307384233349423157805255752730854832174428031950269489456389382086970967968735364052502465824370372516894649905401676705825697620648785305775956842819498763605960722637421675953187967189570406237668890592074502567742167660014439213094019580163729682030618283016802032826979983570687823309774962570740671400419408642902604283276039210426202482412052981367257651099908568062082951746900984335380508635015738158799316964129056537092395871023504489959337245351939119277745541597783545920760600860971571867645058457699022855698965770142940314567028987770239445708661588787820732330595522772780459538576451137508114453988323999341009877896630468922382602165268182290656829389350765140748877894743253426363151251948620070552892739831341158721411260274834305177518176943636642170860279531879977887902266539575864045391685156112349401648521525510444655884310231357426780633404307389379390364079586607057534420511775147533810433530453982137429668367394529668617762168800595188016488992643379873442007227397104452038649888404815816437438557014632234361148986960633451965408775079972596244089002971108425015304416276104662769599978638087148760752513079691169772065352892724968337018400650017525434403045576201443883213896892900805735744671537265747435633533975708925010311422417252464486813048554732543347996422809207437037560516869880296114485277199543680545584994389899889730574510185767818329443019881968416856606124988574951970005099920847668162509542701411763812856602811638366932768318384056955676592550146895424452359014931047086477766606573874040856007984879928167641241123595994589021685726175681425854194857362587008617859023773320658527505660642605595431755101998433548769010811624844117601766824162962034095145714758968538035938725184459887855348907311050168948949264036193248818030457610233293298806608174539193974931770378546759617644421236014166616618903601107183657177697171255592253980063785303597604416050757132645488052922812345201272553439377867424836511420260647555065844246845815058020599758587316819077832601055158928761254993857908812911070879115125615702439141655932091461547291937822735501112575061154361496000169175897742894888778422097906594751288435153468675645003944957352631724012707049910657996896319651385400526857595220968716063760476604234333570428541105360966661682214343927229626385898330858374857740467859586576206715602322888015614297063396233148122989838686293487442814582145904393977008786905200327186147699726770830206318825481248196642088606716721831404640669158581486613231264056245036969286528231221770994982708528274923979335358414990859830444085404576643601741361288680586294504907841056698928503149866469229584887202393334906740464651414882998731636448571423524228335639832089459378974309524456588200734355386771470027383676176508727477243795157687023355806040148414523565438574898811399022060849163698406000324935225537171144997458030052455866791773070057262586590063363076830505009619753878770233083313279404674976881962945502741481544003793749720705503189150988529905156905632128534409082564340645838696427605043732808284360690612413767421026171012953415789507909252544363865234635758874444118587188310253197512849033168981126782859708783671256228777064724731574006386736021269353599007721037306154387601624893833224889203282511009927608191732034566143104691440975146365146125335415604555473821695923563084883476869565854296999010850909077953181080162861137252484819778733433858176279346420821742948024945476180433016663248741163221937187838343430722265224310127041993994455040465135152396439790655320336842218669228585402369115861880285701576288541022257076925771443826581871276649625171193519679694644124783210597989539001711686779548592130420094902638084685806830908772089865197430711173172104880251904757582493938267307479106651955687033527827913503867432640203999846361131854535524243243032871201075280957737045003607411716250534367899098974629355949928551449174413448852190628753382085408113495349321745987942659244069578395624265264906038308333532732035764512947221605626427436195642803720591983305229199068529920540126704976736434434762905928472371533436917644974549255423727615655619958438051537509986471752778733129494661364979749379586227976107935510202623955395516596101413906322772895444916971920124409279369165455125943338235522751308203242740698181468659203435309532073186762277432429701765280470276428148731671053702389195846913900843512326361508438025328785048346066593829148989945326216890548986186844554621693351599295092457984051676326804526146447368565153688534540632217979719047649683666436081633217799622970905261981949869420840464608439198212615235199979625777571042180815849145182458897132229663814364143975712457187694192619532575943640944644358991969385291644823046604950005345756060594277895816051868030017562695434445948986532754598173916262148129367877390137765199344826929124040687112283105013783860151544927432343340188265907318611605299665993908512306963502199635429460214374144666769719905521431376635906343061159891386730425307781649487407652243894360093055971158779857105698043726685072070835690915679616557349657562685908285988575764888132542119562460068980412187973426579442303878280222936231039378761027826666263713357586513815445286936210531005934428841170631381820506845620779307949836549056455498776831476207118036484291370251926201386200098834744589008579856919316541797966894374660265751098923130156361747810623656744881884336203213113422237127473907357427592524966813393247972121935392055697477755788885307945576589566191686842000286521111218087093792354530726331231151175085082437472692363304931437044090891961216343485860672434800730908747086484421417230085676164777602306232629049522686216932891997475228333196668707633882026962880953839042125366611368182579536892242280632551014511257642627023168016897178913342389064271640790912162089508255003633175890863561475127532263444284353814000850810043891210429731685565421041867627959650354901836108846387791405804427484431488701645946497244959937673513766569514175238681850475315289033713554877756218929617769419193475235016817189660124181007128808670180563346518874225600100469096100977391289466014812871416286889816219764197312902695371752570497980611023650963016704731633521292142051620530528691389597415140970631482774504139883999413441270826992485460407296200997708836665547011370552632556674644102504179336939596804645390277124002525551091707269568475798377553871987100559391813444529856287216032260394034843541314168415377387664081730233629151351439506475642444071752939363622744223524018164755786024404849609523053466835437861067980485925138538302876253519029552966066029153542956065891428904599119275664766598022432217674234970064777270621508757773082125580949790982022001561437443300831865956100572797151058387771638418579388852715014626689004011282586380638745591031234220154463778236966186845082629055127313151735731037481645965115847089259539992645162927710700598625427651442102080698842849429273951591529453738481826234688672802146999651425339356104760673111254648463427199766185972419497960176893803243563578839897925711909069887706207201499485920948411120817159343903916276368541167929810506674411420472237175767891821267988777981402497477043781859581108171314343012220346837673549659971212930223989483940772302036889681694451493564092482639558929498518453744188935419001618710978754944195189379210528865899347055915575677482088344375178259460708062831858322021600198906855666748493049868448911994658074216702690746258093377153201230118671730773446510595504112937269675199955618796708488110875796741970796103905967978184029035432156113034619065634838518619982592238400296349996624680161820412920717910549917017812569197853605116208535439309431084221257736776911335494850949960858882028618651056771833267488684373690787150526686477993165133160826266860634378022893684026566672823044127454077413807898931362891757617149095778606134334945601916761983674998199265096850401236404622388907707704921398526108399255009698937731799473562547217562694349757686389153118995907543999078557767332158068343755947865339852825418419735323478905888026369928649763222198543362909395651102475006262471648039703435394766952282660503048921727953284114141067604154215730345417875774523995803272733105263661682902396332854607258832013494923238167880437021571046728512484671270490840210460097423944477380558533009085656155183733837629628519003287117408541487339404670859577402844227373881035852400033503802839379892138539926361458613347263362941356886623872011233216024416417628792380616066889374744105871889564460526226922374336232088664145333954029886050691944248937920405440872426757708762928968045876963596980389187763441918732160065763006544202901990303399779949618684393579223402690967488628077947604191859910268035666030091158152983352129822113473336075841657736593470477158557900721160457759845827583954675294409501132159017845993557187760950307867504841577106026104743349009680542281412490271278255114012281716109772845087720943780555470185180381423488058402455341148039737622108969087060178939991370497631243928211117119203312745779222035563039805794646094267085991443503005595683500287939764904537795541360347349494331734492683683075580954374007870283724823995929744062484904450522575667874172789650848801723864209797745180060876039523514536559897922947518882373295132938521476580457615081344117071372961163930029875476386702561281782580790176515306507320308804338771230931069117137270824108964572973779229660326073997012185395629122341634696312704707818473403092400466473125854684364388025398147955053941385334673934672366846584536265679270751294516402629445957005626106591216308842064109169803901178189899352400912180965403833569168905056451575037599437401062439715440095750614462455538745873169540714829665013796456067550151505538056708021517964442037139875215515057699415471857436164049805925590410564904237834714965542708318556876786366087573004806333604208460570150455900572632829305891077511955671686215383887943946705404065529160538307744440762917128504375903518399637790903110134452562354730316304408832221049873707896801291305774402413239036345423906653241228647047233634038508245766631042336587830275978107161517226281245490569821284701141223545628973156602285184737480531512419575351423328483225395173055026406068860874115508299791200517457558243796119892520281744112740103733124919523021158407654249298488317174182995119902049490450961045673533591019896446810849800456382509687013312585986522298385537697565026060032387860400578795450295321583971775174373973857079572975480433077240409990300967723751443288758338586259823001028735903328405631703552681203564091306512565513805011546051014004654733437846265331885400694629658366966659669378225192519640297872438596154075357497256684517076332159743652509110541391858170159242383605680908520382099334959212438235104726103791838704185137748093552627752331688860012608490222605106716871171716815879316697313394218194974543572381846138158200360447669662996986506752000235337381754432818466110451140845521102181272260541548450977609159140378193603266865028927055202589510600325787694486101919381954630860803722557883157213427348738734070175996703921450294970245858172565853893817801865473352472832841439814485044627317523314546182261895192716580281959730686960168509929542024463303331630515863227210967328052462555480687506976166529339873973017775247496719952843660565838641933405914247563991100134134710914611531295165280382880714522566626528589027148176133151993029436414691170985190116540360870393922675556551536971565544201882616334464102647973237935411522586455393145486077992882789908428154556643225901098432047599998332540942088633649405122439655581744700557049488871080046299296313208776555676419818432690433853805357524687544219778188111558085615724608069205434977587434338003007653217739982931436854190860796804487990013266273976277888154864117516621123290984241766227213429253080955185843625991932737748576084385418049190132469752425082995294074025711566993521528993195170535829647623434102857183829161522847969360434253558026695391975341977512763754036509506898620042591467824380837859257137554639712477754524533477213631194093047653710713746658959791288390382875309885909999617293745296506249258229438478872274910070315424084808834563285337681496276103705975446061912531607975572356612986763615381311097247875328801584500724017337606625574198346087042671953549994956801368427976308744602440540007611102341814363732813402108700400368208685628975619251876556418718122298311058154810659319921562137037431784901522574563449561981233950965154186181922915721268574800469390041642877924827581038648703242111782089244331394102390134768429355915312477994101228333994401384798242199713998330269789593922306196416923371605634528526308143758647525935865424533929446355795278666829467269181415510189430383339630414421684064226231901512930999375424790955157754932814975405177335549385082915994257130191395485726815272616477188213223278907455846285113535652759460303295981151587650261111375858929531572145901951534420498217699462965988351454618404337974186659651674365119508080098639165276459282980359698486284939150631968756614936658398509436464254289425191164112326719800819400769737802423364909334263254278103209161342778332821543294905736857018593605350257593017710832392399661384630963177447317676520384882006418355065828926204877803087463583499260840306464978493767915848856277058262228961242352476946516792557736998690628552612678034168584563401183093576709314474103754388779169920450404887560810638225273968667455936754055425710730454974658540269709569396487961909601823258190436803635429695835884561439584737725630111859983000598121319499318516779195847244969582229898650334322564729800899723016293791127888318316144954747466883461393009021551676304615886467940312287839935341544028674236107623408962298616011662415671324059775880353221361842482120006478204056350914346026710973007904803952467026308249945976348264862084680664919981693636749542205073067241608120597041410140888804539041927266688632909953664229719427936507579978938067592644765524225938631742306827772138086988473705149356663169639026957125848027078144014159710879935461657547068316144739807990638749035143573849348903747924756337109758783620321395613947786860835866117747478868518316842861018994156914412130420872922103500118181243599870021385106648963294629036813646299513934386075027468408964436465407786682972589404755719389286447895289975482249655545844058992963617033576059306538082371073077180224406980513852758542412320636089848770893672474986544369801410075206247504879785372282260320322206533830848825117100489039400094723812817952382521999236920357779874875688648398007627866518664113859292591342966165269272203702359697740058285082945713209488126456582014480190630846184838653522531954690452760918287711166566681593164276241013939932677260490166785039097525575900521956570397918649975826542067056438097106931728794102034182412312127412031237942840733461016472089664481292147102488060452546201797305015208244480798651181487484286501351474920536954185996076921876724105586278129338779277685548706300527625511720333264690773651637251803164970838314223227967865472030619868927856962231983466771045107204466179030873762526076428571854479383976463543452724361691209254978039141889452031677877824034962865578361297724229654995069848381102460955705873590363497831799403556654990684670039506134266856448177200109386837328621293028328783760253337460217220018534766828038379197318197712018723931723754945818088279503917991836151085456731092598751786117919857181915213432025448903504398166836091303413367237071133051983995350728676370373275103541339811884392115034828238836081323174106743861792633159890681382935096248432987907893894090443723113939366816158186807658011158042176114508510966036360880888211591422880184970789702535339304989650881743913915137229467799924325306152127419455815565562745473168988139619009979203556618348722320771010896168147154545764822440422718605821159693873958182594028156739777601472456289395240895939126799395943648319108114722030953226581812672276367891203034689879351307142391569814259062796939033057583656372012725009202201553561806603233072936522597221168417528754641537438940355523392146550754056601537130243370946955082703326447533240976394354960385249687725049438032950104243805275792328067622812721208573036254731950433648276627204901816050636797016186141534419061606518644534196379718605189520684729144798027349333116138296064011127083736496318812936400680843563826847907904272962317567626320832007142088510016513169493266806132242815334714205399261516831848622789664776964362573024479649565258265281034996506563874382651248077613249469916631552254663306438837377702566144850266382645357691620105425978399393819811555748003150890301244394773908599199599097912464727531516387455077296854382986582741278664154720710117751843874625693629245834696627396448564128338699309070468368350450421433141362627822481827541922798926773033120754677615581908199678786420361110233515733296143696872751865073941346783874398880253245770185902625359568077809180100388682323834773232665490679179769377462428115211786761190085369918883804531672915773896294759787048073228780400415118108879680272891611550155296521081985865201828817568455298135665423256729496535439284851295407170920746993209941228024753003670449135618197255044941115563862099360762617148870652003553391774347885255179414366971845185336165406090850361792864742034064926174566340396349093663438554578645380049480042970926223393166199202597174154742529564773292528721588590121044190038016807088695895317832059110711771032730137806350705960915145837966149440133071037239185300956913010936949321164182199039472755338244685712941718723211849240564544927141983891073482366577732623895726602842461901366553219190532140444724899738243702634014568055587228211134416188774909173385370343361097313215418729252351108716748738562528664254361308845163338432977226990021341649421146664924794414806339596544807573174757715075111732300951587769389764099736733108175258872279411251140855523433446349967485559960891854549111964223330744432614215695427013221482577276399901518551969601172756835955782914074329431932852483610543290531355760614779678314013085075138858357272567820721572588102241218506803085859242376972616279531005426947800783374034059813258336766467798261073344280006769089127606697689322460292155561226213730860253402884825518691371829768589313418429251153525508020021897079034937432668140318953925249608280996961189165989250298689197463255067638421425957460836354408457329602614366460755773748430321995079129951219441190083461664557803723585821725044117242296456405618496711284727980351456999793222198217276560092506653664900851137771885326812521208243394212721890337630845254592765479784593546087182830221990947972575304928914157529587321428503551154418607053693804080710095160327131698916225638540914217319341096284881706635410892101031521650828677524012026516992849054420863013485727468740354013905479707314919519931957927468213292063086663788492387347758405420696999998729888866881286939622006181426691292200373046446707160557902102717128413236380049055224556299163251114616229372848654156361070889772686520345224108803693993633972223987627628916586938870269596112482509042680738468307574034431490092073097352266280436413373508720454970962433635732749799684616090103826443680583400735938331780954562758761479775692258540904768641512086736885343520574687388966095137912276586789363162689140091750807752122313088539896135106219362621061509100433154978149675715519598401270680125528424113152255370074555374183138934436619098006607695973774727566369862684827826311655647166010728064323367532184163583708952627565965306234482829120410499540176967287986115405847630458274541634064979148204344050850741797271285946521924674472804404426417744450168768827430091797298255988531007319552047977114687068171753052093391926268596918957219793604801581794229601944854608214153019392503427503941142378958451778876692429556906185240388391571272836824018222375527691795058369936276275376386232101252149944695989614053354096162848768443691159186231107797984991380023762283868302789022705253528376745895530846110001533747193302205508159867723862043774870951876017742135487432192583784406217237015045444920036857574512867275149998812504437358506754749741406440286835574444377132481978202919234912309175085269908048904859612547343485862631186632926628964939099501170960610995996335218733688453211128457552105760737832296536507521292179695213231252927470693496532395469997595527935247613441895540113385990962572667359156849842579280712705831361743846855517118641185358016500652525344701934446841058197162977243489480552415088897324032058215748206120222083832872009104388400558329809127967542548382023252455523063887162456519620826807018633683871106011138067789641915336037137823950184149725699133672795616324769083789061666904132175035407590961933456827657789131036376447733510366105059412121461871469324427260866835787565522813778103056647623824967585347238877222650594552152579360889034958737076969564598219224613264444385547554108238767209347786970630916841248975198209455315353777035258306867950266177891233728370511816341090414750326365945756685922441866787236546560708875522465979849586737498142956028673021529131849361312975262726596728847707430483836611384691573230168382952416168314598316005711443233475637211599560348997875333030655761493569950584428149762748851252186706295388034012102172785614074305048810938061272398971812039599949266356567468552884484762066660892197514597334141548644928771810760413868933926998500628746573799935990932993236825972761537687608830163347024680048987544820726141282167953946040903526617305956585009204979442004931406841600261837150221606028961576901283976493778051570049310805737114982498331675854052780664964574087625702501784468062034857868270569965708408783887639454617603446648653833182753323582083996198022723202559159455663445810879615680799984537783414367884302537944255450581398452288211397411258219475850085281556103851058376513727776834591098535947883142651815147504980478369626653497659802776178887344639556378700613852965262198626621444438967173390329203787736293000859555788232136317865898865534729268205833033326825217921693212751602939912704186541077713768766900856671299265375627879618302631727785348348198075604820002332231423416967294043195777590619200623903451937562942353434231306369683390446653336249736546483696467735712307543658215093877800212695637895137496218775283512601009746901626917699917395753928610982493862797707699855533478268007632776689284085091963790827242997110025060748008408285293631925382120155985206068282366303889231962377136961092261418491646791668337768579798293265841550605276551669942391010501279640019319559351636546620466885806923195743175907583015037139315413420904813639016530342667532568488593995917520286665710923693349867679300478541413565779178097037192204169282359161016081470650876221975720472539889985367235451941379731205355259104450916916985353438801378091187825165108104713438989084859712245726146559667687416512097809764827490532673511157880812356836961297402669918879899360114513460896842681956036877020999856861456219004242014049755672781198541583339344690397761840023387071057784713505326997010144868114101371340745734654477890565229524338636498869404066006895094794615609155723926976965074280803343322759635004122652570302963011598836129778445193844561507725569207858690143546780496508059129679705076159021730410907734278099081566325549544161288773358558000567785743188344687135252178110918499269764839278403221678035918095483457301414362498248571825364286947761989128733357244963215683238122486216997165749844760061386602700547777449221724998085271557451288444219101376908469310969598510000051494108570652940121899250349724478085775810095452425414425891015408255909263926244064438775135410465177137105307591579481691062410105620364279221700486269142623593862311248299397529534579796826830098313223465148869628560438786107120546510641665379495215156990461701540089329239414809310173222198574109190443368456582604734533446156931394635349075783546965194761950268030857378910109414778085947342022506069677072372596605002714561944633540106054644499308081503974242874049414037932944807608399190695354522257481345803030258227795616810748038128319446570732346747726155289922991820909446298030863048897619031807481764330320993879147424216379853095969931137962292445415580417138448396210912955543092697940908104708407770061581879874154616866191689587959961671720090108699117710263528847166194323585617862826325873231413721210104621251264802667477059896490349720826936439986012302512979475220083894651950693516783006111565332336005637745779463232649152461204097301198350392909727209608763451327607751548955481505385227638879078389401376586542028730329162279015815169707806327275737884521711058177245901787876686719838098190410552646112924930984562388373666928666177323717181149420327784957627626481871760823381643434826838178532421848044888230525641913473337644148559333445043553248817744827665582142363753262450611249295231787852792941061576809698962351087949854031349321788693459459313532842436721144697962231881023408832512514298697886812781635612616262804533888318289981623391088213277345397831991408392253708919549863515155878650497756398894031772223882399239462083432226161143541374853844324936320545897565857430892967685475155323036148822946905235123342518770317271586519543209068614199149827066823729209298901686394893591210954371220318479581000060743157222437505242716186625888176777619197099396473368653566147514377332024014253588477280398157388051518767534606190839241769367488739217686957531200628917388350596392835765899174825693244068661473703191004416839426486342220253595819495833268924417502508009111407780250667413535773717654918790210379928659523014622535522149983748436839964321347885018037623345236015992515835924359943714293628266617299377762128638517465507791927013823715964247377629084835474966599591642951532380346352059366550482022823506299407077245901081347468460986045602200754611388121263316720675269427557756323693702030603701444411691515829385981509597898585410063301305866094405834569725912351488632299609629331061402566367689140356511548946660760951106639127641876559823973448404573795941218076935497194425480548106131871145651395411524109527421949363356310286420413179100392328746483635546666515815466345704755814067794292370237111423248964256333410395503821679043784392572761264328844795963507416523562694235121675665876775516345808742405103587997696387574430515957906941635329780371415470188130004931317890986369550481849572211028687602052087307134057504966882466429759190214541271993582253201684021648325749147906179303164619726181488464696144936939527023748059214422753834414564426912677115456693689947697982029409156225255237350617830906866069609397770687706715954489514539805880950959789072254099022961006115342992167754810563785843160814724660651788754267305839758798941266283387232495673941966884876311491904015551898538276260097896061779879556983251614312626041979145920416753271396429734271431295745252704580418371740438417310661100173637280789640121377410876939463505310777252128130661989667848225810096787397195038429667963225916926256170811025767996137830932465805660920443855075090880401016644439101991143429507481341152458260136909752608143716368555699141600458329889851472126651305150922195978158274347289591404705314756176966348512673670480793251440487528291628114263600739166098981851442174137428278319350440033644121082639091039094381703714421496036113090115947891553559469026886329496331871576184899056559451602792828772256170184989990484953587424399800346202095391876462009969740199600057322752779599831119028844012829399904263506125877216537588392435708270829831966129259291766065784872606558277935168918691052474575057339545968716881968288656276612649985048656341524444224475549465028363126201373390059587790828773908034953898394978127611778404947476158497252010336349946986692984865821647196051298835003679230328676686560832079702381544087197997210978771245814803983227969530969977282850488429223955936998580052320900949212714509558226948598446799115636338450328483095906917920195030057742214235707141469971673458729867660492761662182828049224328890679159491288175259308830387896505838842928505679256367540059508957256996792421411787234333292638863780605758838264044264864485601903184567518724541045662045362568006055766325201755502988807062443772141033984533748246877674935649832510972141086258103767038916468435068166764429048490961906758534865368858630512445953502474649842922794662976427821418933708936255788824084537446701038722161122074708683865079880984245033309128910520096028215299498027605276280328176424813226622315102851882858273846704252774228611292668463217235285824935968070372902878931261427424439998161401717362798464905352067788547459088725538749779150021864272492452468852032239608359113572902359986801494645365812302751151096894205637829169768673429286514766868837819017397495880640448217070523783202154259116304378121544571442115379601306578691666218647741484137586065483058127807975165565391568313959556352080467152029495730131886225079511764081243953596166421270958706424076407894376666129203184370639853499758602329885098179752774710985687971091717820433647840618220435718432929966737676542345760791470544773480076424672391282356012533780598421626640557127420889115473382371096122651173710570490487508872491058488852559222468771123984471888549748560238544855153611504813366316369274379492373765165705246667592072176008355588853918166096856995858387360061201544252678902215156765199163426875259734855502763987827145427581840415728099959437069524987614965366885427660486152034179814546387700114058634147655607933831845610258645794763075025980303429401498827138815276300171562684610132122700769405570107101667413265864668524012827134026374663952388435857380134898279639829044291243187620736457204887023464038996395089583047594024743247628884382951050365714200471600152294409140840935859880670991680429091184559583606313487686261338773097827403028078450884938499614186582157257737130921256374290562025999089441986275113652327925265335276622029683614277839584105190068416833660911907831908013651550054527145016970224494944888070616019218844322839586168860588506390079473255682530699423278692176274814771844026315842129568591524585341498459648926339932500371556215682901952526699689636780725762808398723711009229254458724126303504065689942229006667887301132230805040412711039153299803440565383664422988028670046265302686039290916834558626721840423538401634992183902346893674232431223452680710441614157164240565828747494998135766659164149913899867844885555523464721683982710751321689629520174313051108131968755583274767564347512344013058412560172370767333705420810272504082472792633695833302019911319254674659357293158361630852663509134439973808072607998660598632272348382496281390876101698277080305041167041481641627504687789041316143803582879904045266488897124165795184750330303379087320546004088601379619767223337744580006916408916596860630692059308236145905674931526010898851749268772370838311182012089793119397875451086147913697325394175230588380964752898074335998529306926513767995889316925134431162512288983522564924661011156622125723309859541179843087907449337851460667827238537325598289472329090476073314310248871481389645786535446132961295541676450509364485967718699270753212618292244417302658866815229573454017086392128269112906241420408318767034357500795743642538627251847448646158727712868465938849984534055622586168717910284366611178559675525359868159317655634043988950572763214995836995510373472772078213685408043920322825301842065083817345210398382388883325472256645330865348094989003433573072298230539964537838820878085133125582240157784669107125059323470485897096740724321138632310439051943432429583860575128361461848608607813974001448794298542912113398698394172302627341163059006898422808690184143570974337584233348540912952257808542392603209593136167920912728656500658884057186814013692140291282536146357381427965001382158030751758294729853444658498140828976026203263311785466315924237648233201372709307459528139550348516187991704414493241649051456366011789484915403765176609404868391543138124679882573894437973242789632645873534397067538808683700074279920337812821593736072989684167812386690814494516079537952747413972993738900469695291594123621585053890911646657129960477988587535241354193058419641936000121302908527087803596320646044231044130655588490432880253572770459258655122989141114891413797908127172088695788039548327622590518932980442632936798186420393292829161751628112797872744968141605331728596916155481703134862313095379849861061711778411004354253291209621620861119663351612602407040782163530962889048131442849902091084148056862530745406830369829109308967068361878218536283580010835009356899566867946526693221999529562799413555354110131022397982654999199169413499633644550845941653591860167063771027554317695576824800484384851827605836552185816815395837259415229404780687849696472809830477687182711708209173399898579319162056998608981700929230066174215045366627191158659519159284504913381378571519912615012690791834670729341126096221926937362201054564283094619131220913444782063203305112362962567146729741663340655778485038422240005510591770516866655504622817681906868183574698977424593366133113291296404791302112844132366466893690004479579739821242422042531563537712460629114510977562256786401996237627594789690876543536499087366768868730676996601094958451171397613873778501169274185022516813407359286887368060035255185037628000245908425984644150491662753983137531748749169147496807929889171249432417862171973267561293762792094760233033383970153436524163536791978126217422502129816956167029291942378136269698948237494989101229170831151368521208360885570720022923873185558016491094928365605745384599840247383186111354695840147973984305356677541464053497667447130961530314652132597514386855749841751426795736066406739619964023756275388086636413073961979902547792723803610675560207229604362478280189683871621064110937529196510031965303206674167104450804760527677741304582293028501528237139607240026291046647841809227483401270508569242196814292526081567368918357005489293485268461458329480062509227096492340181421865583292543585165613497779502972933818072567560509931232532140528240520386530087357878723277160243678986681591558998841723841217167053853115433789465734481459042672193733322261121703285661869503137149163397501099193809426793521001906282607739524984479320550433743707505169896536432620694345985062477721006082291375326572224720233356636665693446833901847454920385171777221283808315974513249710976839383295018751521998871227064668441565708664452212211232139106262200779979908084165409171634499577425442312922998022610238627722817733587584098449461588772506489323540680430181012862727849745397953249592762764158710365404648653395475248557258202652391407758591261424187303349738610137844766835570063023892839057421035384262905577140412866217086988696593776871764145090543947738168488251721340629019149867630458552002935309628159463741254511371920269473354276696821951319686746063583791811857858108373178617894203613759652355793654149950810222736780860101124599498162041213699708298654551689795869665981987364655002144165385313577216408959828236733189030787569209997771870374593313792746323468904035417170091630631123630057707530947636323985024270439698612874779136784175934481161797630567266909342833593738387365466379769998223059423565676427177672699673066255283744578628944654897373608812492388682572309348921479359124066025571828827779530854195680734954356410318202270710296289845558944703106229692914936091624144764875594124710314207348689775899006969762758716696766173276602253167138676979479368767516628649726913877563478206746155518653960020457545872970352112388343119766376812571645796730493302699421231832799582378105268717409887731035737540173782920838708057408309438980815374809491121202973956570161119785885505371896692839845330185645195343477403852223560657702202805689051586244381866953881909004207265274068492798463610064500743275335287853122851931747748096522247973907973526949680919043322257054746776988432674628214006396240420906323963896097453930940247120007583700213234556975043641936927591515000134246272205228323619201746659857031973764143894256863524317552774010687807235928352468663434465836300378960985742151790862286748956864250172119546754921976472192112645203291964226798104912619600824448350651036538744151190279296208270583764215444957198680661840169905548425135676624544519796135208489325897321169621046096596033948335110555646541053876463329815003861891641231120184485772040946597993201409690419007341465093884729189927193553304218273726586545640702209263255812926872059069623397696296364278991366051101628832289633938248822155762430369201152017774359515721850101690810906104733530217281638476386677505647994123578984465536791175886731620305167793051386273037829167898067356087603375554892554994297302650319390875928642280784129011498180494245888270563941785283237962874905075520066092113114022341568690681804170338154893263607756742471256106958174795337156387843693643343067612596749442374823312197224125217660308843133879918661894242162102618252672800684586896035152069046074700461623648282554027442259752635188594430147319627862848645088949301612143556305501192114342644497531572265271542567212434817517060054046001158993776804386928984819372327618679111483455950703341853373488719422012240173410825329887766206531765987985494293313988332877051533056082931592458342990116832685288070047787756209135462107129238405309480176780260081040386434614964654329863889421216286689756201465380695626233270758571468359810849715647320838002171067942504229513984867359690997674758346177931280177810520164865561623050912850539615525418445027052768779663155485050586361244586617818445551798975809903799063522859120093136247418681564030565372377520347258603785248548760061139289687510341666188311558977038187819963513783003897664022952250308880782390534214257892088890912545928184191273753679126399003052731191675259822097754734039591085896322364393509077732195842023363513788153723139718030545764255739769343145649029305393611353151572118777460927599518492007825766021017447210205314341322432825255212917504441676840866552509642295622188738030055755128895021218472633331984457146930577539823369466913681053905425354148503477735976967693116810386097258387590894438689197378448081198107230942924089234307923306055437119786694333823921475878406506096860569332176236815817666622828881382671642359395468492033415424139157567419183604981985917418089341995583771043697826170639057157303075332559929669010497651836361809775477587303989011928851645059411808876638768280449069067342717797939310349477363567874265406882264945336361268921562787877794101993429295796180951525987052950651878184181442723054882015346737349216521173952812370792261067485251322370612359758947476966118334940701610135964894490317987167626187148440713758135671789826141798539160924077462159014559125716972567895712208258701261901247231315920931868316123302565234384374163867912427584161747263197831193374793899083549650029366136151935574554692191028011270429412225357642062891695125657344844373231244090362220660552624833467079787984241731395589729974055462506797065589162519897464683022384575661987578294356692365741929903222589328346213004574527804261533741245063626037249704787820186239032450970840918697985476722747088027847340772705928446956863445113608876963306831651671563133727260173617718134726556235856952691218819549211219228062820517875011600007817229362014501108079374927136672013994628476273843560635260426264783468269366297760214182972932838173811361495467378828307239845701607363470473097105091078846501621095757055584842420141356496056165749193173309335142379031225579416086200835491656043690412200879802185103062156472981553152721932705532464567405496915131705225368256680646533376490608579154070231438614355164018323821127007843563976021359817064511495136769161603697980547148493412273141213487482628763660846181622082982773722679583802365533271219886458539963455756138972393401327899480604529177422894015311905281957960019512587573574664730688928410221674738564943316124106233276689181006798123318825736503050716584209127277231410831548305552877755152551616913593273077865656098047657650065413652514300088043176590596145500928635849546409144468598319833942401559090393759722655787190094073824165527449529492636722568260815439528365918970224918478520221099954618761282856631835886121496589132517966415662376551116263112877532327742649808000763739268091171376330890548453310220663895846369755842019040925496097156648717518498281596425479223879637815502497870201233204205175571914655053571677800373499713733497079264105374068045608644178062836422997889876239872853667055636402477777642174218274166081889830961931013881540542059778231828601222489159574710766776506865654702060403167531646351640163553524150424201452035666142867693625218844005561318550239081931636211722294748012029127490447650359305714938086713934567017175341118579476044559171921547386449653476828977333764954475715111146113140541823484863603839090253848145926269367195854735734399440643156167985839964307555255602982921411916811249291912813551601058422327557556298309999565902759201434440347188530020083462047636476873480369419730523486577740627885103998041909663095659801739983869641750114410773319602657481656625006861949066717912646976133648229191780574312231472165446215438021195806450170148029389869776647672876245061641372477660224659784445646084264287724555334914714867659731857606694453420776464715521918603242183324205812674775485770024680256618341422778197268814208481507963634747725525601004885013368823014964499267868031638670552841022992364590499084120135321648250002544844243326267390036399246210988024602112956615349168405100116184164598156923235680701599761231012663940496979776399358490502259169407000576320849256161323559007762539018902362855793675120332117107294443698925384812494161287816821405177857105166514744460382635176489016582158670580349253801870622105366517921755977175028425175963660009085263069902743109105770325836170882574157695658579981632053893205668877804139218764386065589684027683816852141370933899390193989086105703992345391752107257522668867461731445347791946554586662727151428115413918625272454401329879886335290657879649978577878353154798823770717246464383012235708295294283132095441494907136204029282725354342853707286890222267426171560796641918367350964305919583846272694622845531391685057007005956411251674239119022191892563279180125814455091141669814776399665567485158966337855685379106442089284347312439755223203740473357687886256537158786344559215087752920980561003629394881899101683940337902853411493003133807784738910604028857594748006735428514956244141486513797412916071955970698649403821993917384798630067219840108616190429411391239247221463469443124653032214640944625824574455597980282236053138766120520484655060086778966168813696967614557883009323938823214078448221991416367831271488587613661234702932618485784827074339819361869175322902080001489526662353005953815461183345635300555730871320976165082733279575283279112552269388812398762343555450259566709182086315629537009355122626813386579981543716090370063549269070565394767124012579766018264919621025309625817909610213190987874967058863610276143851287744637881395025782518561784573987130785940149563376403603676177484081600539417651391818655415665854984049154743081392351951995014426340398312714115487390607013130818747097116641665807811289426258555694983916119876693532875623166618196377691167482713048511549617069248722378944348355248600333580782478715092677026581548223818715970870247341510548026335416515482560757417988641077474681514621919706807962897664732669999006775419076889734965439274497364766826648966695610227759983674534686672560040018908702101309243862942208610785107266769274667597494783200278731904778774957242439920537792270211474894305190915707400788309045729253506270837145098579377780764893567193486068761281366007176752072995669740453803273367716293827907023877587758184413838380908314079419811534142793165506044765930088029654243758660834350612547768265988047334381222058839547513429922459074721650426578045051596053111253860301817747904562786496780098827662831077666342813272184860176937952053689000244962281009572742159158009816597612758283783719390687370726916392219654689826850254146175856584481178115749948927739843563492954527070288224140223662649564664290131930120942963302462731491513101871821218770968453291783288507464358776622395134011646981836357204016728855751691632443731206636461267454989995242749529776925698160999665706056048131090666134246998077654377611550633922653439326897812212169232781047612747770065271406195086615354982829820096947027330357097427214652135362337133641222535140928597298477168694251646834206814694936484148583758047958674941029496394822314618303687071401808101461768712454073086393327468177208214562744297812826905810203626418924454195265959600769853439313924680186557715546295462899366005852819022144160141594906574613236687974664972719395566486035681229160472921911223481196513528113892196082086978608830359086920927419976358163584796520966405386856098253206322708326027339571376464585816100478681557525831230917171770568176677283348747778782843629072985095183196421348818975722088895689953306116219537628551631412165050123865678988083485065220260936310596102261929661788291379354546166866860920178454342374961630394612901046944761107113493321912863785196729423676001229853575104524109058349959541506140872633630350587269323380261187453702673471898318837097779958417152504898012803905694211861105326814142509231292128086711106743615927163327483366505586410826735906439735977624751683158552530515512125334727871687755856609377774038226729923793350737876298730844888690583963839680388124594358709912817908663944280710091316391821186786243673717955695643357963146158666155146713210677784212793359125747463769371353050155962882787029882511844297452465902122573561230979164924991814369720730949717780283969820621369095288249435045250499648779998324293023622916402881236653433911304327172894433609195383438849719014999285916421011019197338044440656390388103053942307811493975002181508521636610470871481780270449715191516983854152025262308082305938278606706398083430806975177423871525176186384781409371247590211067343947743212605597038275730591941401150025854427464722209271385203493567464590003635715860392285773564439601820115561491929332105105983840972387530565672052052516984043418956820746533311315445854740649669800165031642959651539210243408745607411432631595626300928431862936309806785068132327802871278144138398721306273354919449684029057853814658543334671643922997877095747032740953538245885605368160124829252227795965234124430076023881324300100052528455427866429893636919531410026914712525926816069740067264016659526284672315623881387926890617822432478885364821957424332844050624554467833467175115631125019819171071211685992804965309399988170054103087019588741564608464784142778497642317992951205586426459767883027884431441924993371070526669659929317293275359353988243497946443816383067256317804464999836559973801763881972394709541959530687495014760083011919691526461293049785878105099108022299106745159554101960386102767502570677072516989482781172513033389924536505038941737826081697630442602471622070323844967303468183021054856554881574512999827297783102877922003253997984491518395902726098355415877792322946986427368586744474454431627233727674032247833640077013874190575565614438575187531613370741488134715168439982497346372341258657564512967733722251809942408702749522055116243808724165329162077944130434777868694903031206964466658434736730439172536425492590084613297254887387546207789583899537344957582371306681224439213249533716282116842663762071045826650011806258039468272053074193056066899041878782617500654008122757010779425326686104129296200096258828548998954559215668977997379238552426951945985164571184467228869887639448846156639990050081749217788509153948986914567047394796850749821518454619643172367123741178829001427934239280473013708806596650268903740878838929994401357681052830067249103958549016874747334693196121670336894055830352114493946702984570403509196679752308751699596522659438412743856681746953489000675195164176148826212749818598180732915310010496865373211528945077858456790243860938502772617058046502220914422632913110265901636146383474267863688604406320255215695011236835818356431357344917595519239056070905448097367018505174917473013570940777558985199932574113215841276038706488282310442071673460108209177735393106986689381989222649457513514160600588103999572390601999723154742689511995542205725057581033984128780461901993168239625744735656171320456742361842852300149117685927940926824117246838720582220472549932794788622195963504711923177374990871435221590268507897759638451495437786366505068905405197009809489282633374301763879006366094603618716438422909556603288233767818235362475112423606186759090583619117041719632476427332784631981391168245698795591961230175807607295528746339749123649415748137954740707293563235387667998304419051497311191115345252318365052453055263265023895828114059911259340265085746398528726212805340574797505817994247416345405571740213240858740967620135857386303526744562971133807893294772453613913990975347408058735536007171897781445817150203437894867927173317939132824427169819824508790351455054806205518832544995156471703149785074897785293974443205918848342082103763633337106567829541983388076870785408515591623420107368610210883674170120716854586370718415482380867685920122645735574005377334992774269525670861205874049857652121074830993498974541822924820212352940727773887280443770741669939024255719002794102563483901640993213813626328333080710747965128367812055468694112690041387216156285888388693732523013482678533753956817028165318753415472804893173900587043830967077361873153902073878621327896012568265598387708836303620477084532429087220224079758968571988295247503543580803990562367989821728993890783089604783320297281469577202081859350826455702920295941239753492889366094755482871053818156216748421235680322707788502852095205376099274252648776464643007844189705633823616683801298773807067235751591988818486464445683693798120365313060515467023344839067162421934975698041820305269939909866983853736076567650153993910012981589080474714502842480550228109287945608546615376259503647240268073181958281750741519082627527695859407047110377188994303330661494690391205037226099850417997794993754943803044169148556741864323214107933412691935190676632691423759695467962250517064708042400036698667248398126022203110441442719070535400868246265330826796876918626031163962634975187899315903257777341531788548066509426093860799827527575886044313345956952149707579654379168290009205233741509953376875370790449517859609214521839634735250868791834330186917816109206307403845508347401188236917612588146761098073615358947424116918247481712068160885768047654067675003751500596133658348557553691692546097591518933109294706344960224917421608000789495975843680947669303029742048977030009965528320156091953141460843031631898440377406484550484456150780977961403757348755079058558820073905467597398426074213763130850975368050781598341759897301303111907168203844852779403026647654354372647506494607101891982077299310286676457394369029182108109847908952249762656883273418136955726067260678558196100303165129809853093626853588087167587524477512832502863305449728602114208410637346596166337339392517355902312469171921184007223689165788871888181853061598204199420772080314714774495940167061399127869890748331715417173415971090614277912907948359039517367528652733684439487514316099245202246632210866639584476048406718121720470915136256453615337319700561151918712588997641982802390473088179179362759496881630434232484138401677000101700602681416380346890389775165341232336964135848129351900536532150107529202160943897910347021965760478285911011328403987294563939760813408530464760323593391139798729713680557418877370093795499564394987009552894794696346312233665622045152362884248203669746109617616703490732486919444560963026393886539725717625157481303758841107995365845885829152388897607624027167546040811763176581653212721253376706744111492027539321094629107664214781307491554154834093621620239844876051271801455649129843150400721604475991393432842743425047762764038983533912245513337361540913199966380873844587228684906859030261106139981148997713379973838134242465653852914271421633258543126580209568104315981287826003249306192835089497347311769248953225913314194749367541691828160002326927919233100648837710822762798544250092407779057947505323043151402746719944738746930102669031102424159371774781553515291600843257199999215395606028247291844446526171535454586449949339614856422179495768502299338032172472297082715953603926719103350134634867563958055927409820156782746551323578143725061646282136379482777461494999935112218229041194942917015264767248629418289610616034747714443699412611740098232986418710382971144812372977147623509999005502807386546435191919339707004047314392832308093773415012697334111767519529136458081330024221238299299365382432161098291540779239111911602356555374886116443735531326668261985841521346264268415993472031465021998215256167856541024520052507095238633987765959720763264540437786093765996947513634229361268323635891447816151523074223555928500113053678307175729634458543413512961920628634324313930425428816100753772517014584018487580768861502595236384865793919913533243872062047438604342534808152468632236992541761560798479935133416851475026739249861154976266803517093461435099214242617980378395714884041197880740989707396703483120929023731871450279926908946838533709207644144468657194398675569878324681694634040966692277554581540724661024897134765041771175016356926439992166646727017878656058759257711713499360365602263312817467694928618998803414694228858159803722098431233640033667773148877335282471696449135596507125566747030913787982337868747836823320511220500878936641723258079414126309145065799014241201739454177576008047985229497027356403394356901478470874981902848557370621467156510314278396833549535869931992416891679676702428357058196516456723209632620580914989481513276795223141144209337131100347011022390563564560541196624915033688477438714766451763517871534719917226348550076332527846456735688246624017593197588553410342307544817579450556820305899751375548540681395004829188059480123435067168729741524561006880099990592551330103293023801342706470772251422283983881826582894323658384244726081289221956348130651289186942892379334634607244200858649222630549540955619816130940453200887990576406916164275466533696123390901434177572206562977004799353352620750990524644020952908906062075006695695642969507578246978308170699441363864294228846249840138860736260888520858595761578185657973184828314904699370082429232255240099769860063499190796912613158238199421181194986952579930143257497422478911659129150808832581950988899825080471657847312407726529801104758809318759492088458514431616245633494980008971920467200550046335069776249103103851468772102543874529990795947781400049425206776815957577019819747542033689322226964513783074571973617908390516306602342505615417873386006716682845817802235604017670746016285143188426172905864957130691528450557138925253315929256605683885316150941468427592600932100209619961342701664556114245710323135854231998999539084126060083130135243050686721264950190125758695371055167129488198240207093202673268748559678185401090134575324277491354774272388702417751381265981355878535739562752235009192444028340490582238931017247844701598214479153597345320381752909875566251984119730487129942847738220000287208254673863517319627810580808496697936106771653900296722204759460384183403945221359386564838732953688654242185613228100562364428143192139784828280018505714816397653883316008554812439386919296560988921733748626535597186380594792392014845974277405272565334926008076988307617369571019008581177370699169460749916014685934800721927313639201918764388785654126599470213409207724181695586323402317334924372064806396878870491454753311948732596046085601448164458920203538720331013025787930115319334322185662317197375661449969400943442065140546727804187831772330249876228142838374157922494850364248411850217841461488485337550915393489282665813051173366148744137019108152632109609924781324494360383526684174097297863249077171735901556824308733746640136138145641318469004441365180355537906670540308241831784966718072340670392742048087143001241902822494893206299927052852304046815658402663955502252189131745598966971887738097509004027445536314874872688872485493700855514560122183058685309201451978527911947998025048638842473974640597303621972761347136611167797223620340558039385726485554222935633002963368400799036370067948490371600075409489396340129631558610987597519549460974691105467092575435324416256426842565475138053074733791666863675730097733036007775368241819514695187476586228993613275313014448382186923771383020004223696517314405986222001969409803827398109447256031486794555653304624358017255769453032686659827664236905686602968541881220078181858580839228562581422913967475304817720990661973256109512371846762996029307372799055420769286446301570427304083058403898476006171360048611781560127236437753216038825781159780121202457555474300069533603028933696526415535799951508106668283118210989163742495769758046098918852815044893576136659888269105963995947020073316101640906566213332928568088307580079345047370565130940055745157624792860108131582121764814898150885296150273021564775758705878329390053079524893259261916311223085309909609216053551144733961242485309107538702611556175151998108936137388028748341047866169516791242324857451787774478614284558948664315796929722384862484295615004338112136155957421721930509759354715799425706789951691748200037066889786374288631157502171443542535769289744253133095149316734683669700190513653869088584339946115791114995403243454063187775943371749067445322042248260433399144768803317571153482827033094014887392071120604823211558855290672292241538101669503087245768394141863243302827890541158043196849835202785736870420203488607952892802175420567420642076334363882712178359654103365540399896107511757454844790269382255204494961199130739817128196830202603880301564719052338590396059000523964155241439917251969992686706419506643088655723652350581069820654935640581446153813392536119705151558211372763304147917997189734337534979188222925770031964447719919849096959358189764504372309660036806274164176660884515218194288546722846417221786814805968208607695987970178841138096299676891344291219308436672583147481897385719138786940107670043488732530963192423187066503998580617849278496553294320705181954863511324920165153059022539637228876550564238099801463078914549678725663590980120001201312283996164545310146609866938322649466973522119259300192242717678905242002107913676838436004388202354761183346753314407512401106122329719359530620615627718957766627347391303432070237556855898282642010403685010702675008992252719244964039604772274555677096600992060984040202687632068707049099485039237587606228397229006212601946438806474721832723216072821315644659213929597861774620984306982075129175508993037567272957451070459306551977486979492059362773875111530857232009172772081571803484221307909311146923839787763532406824851856779055661855359787820207811580284917420437045686560914113849628751453656486405469136955592632660569898965622955954868323969892504415296574452384580240180821812921580058285701170747086852107921446617274850405260250749739896879251565004814058594813354679632158758994332175916311706432011249304252686128771178664920336659590452955470364793164018894907285778207214304843928146814884689769236269743176390553863966740780576849604245369448645415952533961412285333192370873271050470469325951732408051801928978397808827625229048118690375855734980897282477347318782427458385098636637890592842065854163980061935176085717141119515378243258578663363193709638350332050298110172131694930699780668959782664431793149899991918879413167504803408671030293628765263403904860215175084754777397662628449639731409153971269568355866599223795476377915706108455117496325835992240005126616946548713186214812513504134926367518738543194623584616231085170897497859810973643941415970810655330882052097114989553021120118303567617156640960634859459314489509205321729159172171110437383893319993163561597044367129939320460167318864200061972459137364948471718699306523421910495786851964288652899245524680313622103526245125615846961061790159145945852935995524015595335535148395764324418564180837163910124860620609948897291851912528776201331289304698941179816306126671352415301293775936190746812680342441751160684110973650024753582566354551756709701876495702206575989464390332897370010507636323995189459937398448561535314101856039805071804935931676867499984648852121838856289774734689023325956807295869372884642474973507557743911486280706455781498521170079822085737881131624380632520799363102047860810306675371286944446685113986632713085871439139125932247456966435210387673422203093312921072908886466266625264226029500780896682121803441456478039281342963370225998458544400406351667567740872453834626378961461218649571870362277481964656314902079386064670070152219373408572557665568149532660937701255222858111529880693438384393678201794182877868805962571880488426095655890121143882580526878091468819799153618149112396744088046392732421483631197627252451214844533633475901913794557012608354470342923924533588340125008406048874048358519287365569114982015042376700125033714603430565685930593206615095150013528258453471374554803595675188549112926857236873451794501587332980732125689696513010638719076364912145170398012675123541984817758403041311456390491501110030539330654504414504753369157238653567718220640117372753369732295313283119122357669585081147417653602731413654139402727901130684944808572975916657298213656163102286287191852504062250991985086677548573555987122271631541363843324337967888937243676178751616188546112343271979596016214319872016216166275517177586527600628892465340220608374359793159156936482863660337779598417094775904861693774448905765116063108603654298344615776716559199188727833754807168569014522900452169669138857577281594918325156035820899115748737091360104436601885563436427410782010429523048248966355595502436028045022006584537173062309057655391384264873821760172067361927805508674341713864990127764790105661731232887771534585728378032056144540038221627497404886806415394758294407679653164221005460055743950684421195352407251265069238776837747863445252463592508004555084712960554520334669884307075488110624512173287905075751834854082314400768762854784349282864189213220520782540897437531063248326663315225239539775458298355781958716768333269538462923501490056885218882005142086893497317121881374803098359657302334550660938594458563282966032565045563205103602199015465907964447243085120953496314167625522256976481588857664736243558924438537007819748363766674025359691485197103709849154571277614342188060860855338381504296861728981810423122435431281795617155595442125239207506036734316318814211116200128237852361295893914932831807310560929267648523589481613475869084304369829127057172710275638453942497944737194471011451095581281990359343131064179685690058054337658665125743622631481119423401297628933757537868602518237730579613580853469863731993590968421537983461794597639138310295051705753416666686223254747866041567812707520149581347019984194075741024808029875949818136840171574430075929690783962187259174355069990958788045586365857284532104116462723075122589909047991091787727826065682761704055710664641056394964959783288689534363884052072063715153591588082067258274564839125443938441974201419891245986146174666706098614411991933031907155626563743267069605042533359910470463383605215346415148512212697414048355080042318442833007840826854212583773874076607811120444307996377200086988384167824981170932283596354016606605918478466166949464163871204748763450960148519386549501683288239834613032623397124825861959878325576416988265903049811022463945249930057046305046765507172586170178359022966652078496250655059218725480821920438645214068611371531840401548451758917936046464832548639993228844008889142599552930225963652807073181913399090330049251753297500168748888496619607250306303883706951689294646721435895695682265045623179734864056681621082494522963629194008552956492186310189327948794299062029255244502549849376368406683365048641179231213824412835447574633245815586468022424588807855008094935147694778588745988236530913848469701218802445425040630401284533833806101952421995496001036311219708683970681054965542175204957505710546350122088061605205629297634002647192392845160022654576960481924004173302709919376184683057264342502408173841476868693637222622968855172138950563292042972977201841079717415967112180209670406825476489853756723052009889148785445103667766929062940400547435548658583020685526147869712952662885376561282450162944150303000759507587952918249249439927057610069861626585302835869527141771716048557320980064631948366465796509220676916335118904366277818456424175402714071774242162322516791058493026796870299176902559421271351561345681362978235136092257870080264625775110533278601333761048770369298172091476230858707851854285901899434036912424660558068988243536070871037556729250576653086413218285039523197353205410298387812552208816265167291903796944832267030921919369451156460353372839501987705533405608855582728680747296914450244343289097415373209999712437526175240748473581198844347744722933713276798776425225736679277588144777715914360881420471542942912171575387261349262156943342748171390045751185342233686714015237475428784526411017710588903330305083033488254907843712243632079262189520712900363791416785959810066736730896583837342898683927945261207120484879387481843415602574594503981992496456910726079533575729018580081236150638948562807905729223378064291845462101591394524430428750441447414698587571455612590127939081249010354994382555686216719955181295908317565057828144374467067477703668781909416070341518588155679270085977994697796990544498779558040064631142751260741833163371242202798553832375887154236404373388134814922546025779485584846726740000622136834242453907397231548839771536640054730270251745123250925008019610271890845794206329397285726805593682832013697054746361691876045332416016802733371458938030983945717547792471763101595596758421386199097174424291386574838807798331430751903245800256193956166103430238935344479479846220986548316788363006376845789889972490680801141053125356164658829480248701990907426277457673843184308552570988192734499832500499910966419578020257751889855186179009082846750803864431423018998505821805683374874159827524944909615036111693732435344012859261690614318254820752476841202436476063582584732248086953165124338327322624506158896340702883558787312214518410456960564633574706069785812417934654940575564944160030481886373336784812549833425159531698848799400886766518063289824627380935751430479982023463360737015995004417318488899125524531406972353321666934022193094479348208216871165048586903597240959045456457993644320393251259462987497226016540855907429170657754632063488564329564403489475564247187095800910792456107328856834081091023916721095491638355926657423780468766133138355261013182459010221052982812138789123605876524782317715824778686045581584573274850081870375900221901926423513936555477020032580934916211303636095914517321848824281631330477566160063235084524219467894865823871855793217352489401705786755041996789221587216000408242721140237080119088949979953327199450765638389496078804997811315736022137193922885487542383025189678265330506090208580581965028120674263180205151422197051707820284576952989739777673402032592882497697233957105575702153747134279167628952769747987552088362546167106146402551049655294573557107057252317765870249177134155387474347821139066018034131606131768150623089278951104533588347134154478544402254750979063790386698070510130509679213649427357079768044205380366808351320016120083502820055565648635013293836710947352711698393021746932585414442882760823773212946391933208511017746652291232691608086719198007394615960958290275622949044260671376056494763494223297722951754527588328452532114853488676406156508868343578862590378244976119648140694899993732119701678778641960326625217277631615390004833990497824507453695694182424357775416641311958273473578397281565213089799703402981174155381046369597602722910226613577968506663924142001103703774316053307694989453584553207221913683051400969615685423829095411140106910627419581860553321774383092059203941982139101430899924899657014580383059057495931303691813663333624005848886628983488745189185379692674415838110072252195987774371458866742310194593936543959580760903665113820269022173771312300823587684934455025247434785529929418486434114951981095156070005956861928604079305520978905105608238992716850720468662201266802579577843320441386026595275264841310902854623360362093026315315191202772401035766446550772691192326165997888547643160472829498953450025340311870681853593170506846711229882802410823321491230328938599460728860965321030014299417783203194197034275068817922143373909960861639892434065893539519422092792339856215559491247743250572939387567034832791815295180115069524080895574545842285288126980718895968996722439504859828035147384385025493153424405787974072666280244048496579674561469643703908569489767810871115871280211304035875861981720285220724485477612187482536521862355457094497225359687649429014354529020042149153020160656320835091832875196859859498606328138350429690311319118839994098428104756283833964325901399151495770409650692412172812172932128068210150609899980328168860492412781910035314374707464908935509577065965888728135552184157083639297582014754838712735856916848434760249977510302989287225532538206428358359190968564564182280745013707480882986230333882182365165974129709480084151390274252254465180203011134625702756164900054507106112075548663618394011762426638132649660388974470250966732150043572814397984780512693372357215765462173811480258779143241846175227838749329879026266506593845249444489687083004699820611180297672153822712504770174387559255691130934458030185397912462017095789244120855677392123481481001133420520561801700567610867695667314633725782768398366324560200571400386179960401162168449991745306797503138213086871493288806480643139613796545684146976665213089351295827156767031352820585384737833042603451935793064127733885757448679746745802549688984254961739357673812325231518752365737705739732020902063162174936471581335399913599203301459653799342774490449212273338488238739962266270247873207369317257538241851098853684726382592638973135923770491011489714430288506315233055009519649942429480374846459851964178690534571894388295492759755935028410496149327692573341674157939612966647956949422190696023928475943214833059989897750806421084481679950964015166481939509992125625089183757644064593075275316874236549020810188295052068892202216431145417831868685835095006655968645481440850565210957552068052259981379200184952499322520748094822985706680249260220410718000398913394614877708306497311602853613118773811946947345075126988909203153304340631657633433972301514902012843242722348123428251520682221144117033181676778064615150168162796646004503952911942685531471638571147776722616583349440127294682149591062428091613146656516324855242953022540386751956071433508358543394970777492676193257339465215096663268785794031041384361065164949309627375458585677158003501153026569867654741600572208222795610494015340129617399412709129634022466794580235756933439410429729061131082010904725690369215103869642586640536981161294403274196682245533209902941837268321317186148090770711249848476468664373440976251146519468010514097476217470114647154805118545789359541226629246090430587567646889935382713722810431348048196985225503940239509118536798301099788383860910828445050375078986627717083128367346878828201770230883636785416434488651961198563452098815972250657358716770976873072429969772066917564590368001200652840391961947032604145689308891543790439470970533389821139529052838198616581029115587414533644799634851455732460378220547717609532644358339512606087343454204659278489125985375353443040936601011808764464949403118119842791277258652999124512759354519535124673550009759071187870656294853804835884153974238007101339070803359837360927178374045874140226728226109045419362348892051067465469754907118776158445986973531095421468447122110276215552796653567430753481431942567317646233862952763905775371386031299339762039897470542551891581283621973202636975459973200853224997615633624150846903048032448544334214198701729459132502932464025922321466157153056132118624823049858508946840529524139747323018843684947342327568223333987873840201821018636777037246274626180367821779137118026281419463248673164847546026702432362418835770819705856591620370146085282625248013232533952308255538405888935782746191983199268201419471003425375684094639681103620833849534545394668547238444797394430454763357844159582269170674060485472121545333302822568830343988919602401268539739747099204793593271191669614547733830763156250670304794804409523492686577125134789432383265035055031271403765046151197888380200222777541758804212145069415202064751198596815452458654277464663759011897441930957485739122695659219821757200747732150923289067199473573602470995031436695929241000474237758585870651698750847756200944075984538704369477464928379255654689389907616216923110136775295165898709868595920594838008765462571020143684021212621720782120419192492830690134353057054687520909900732744030748782242095260120564446578658605419757853398927636327075008602813484884964540381472404934747663081511038416999142997677358935498113209456338727457817241328274529223947794134939966013585556815757321587563019627784969682278334853238036259336019521017356740893070709165767356359375315387124779059173372735634438535290199978473463774139916902788299609710829068032389357213856939145788039863012216528679281477960977979931435800171072888644418185632297955298360678895524392559892671042607958980599014254749156358388831992265245618913011548581558289000633312979736089774920648537180210055181935815472173822376880570043713473516106418665675144515356805837054904151253010415583859714602181059970960020710273601709853777684052118559707027661010793689491621553645267809687046674256284158977066879699669176934099386289413764736154978667897706038081847981106489706236102505523881257497145656181426273715235179777337285376754079570039744248915106941213841469146228727953461056732939371129332867858825975951431199838651631320788231862838914741243264836821492775297487359868275342021743834450695794417307458153197622093189828024642536402250864808475667859302998514577845154194066881807836647472917545607533678682864023928973587260479150593112135853292206632144400455429955623600940472902186369704813563257173432307806557750021307547473332741984114889116645173673721134857115295253100378138922952493250952171975179405429158140505948253663481999520995886474916912159246861059786275594398930999513727699521154417560233740147025094368029821052477718525037893067413498678419849194596877516599288268193418601899059362008941406325036264233146222908301230455504005105757023099601239085630173810930011316820974444461254710910187873853741858886430598712652381342837545890088025214914344007395065542075331945329452014624485170067630126703519806410379548197604689393829739160610074382241884833338876211022694485235523769831004964922704201777117162808685669760976642575178287732643339984903477391225243423013774152609386889548256519387813445115290782485115131564080282032637094572716149611107411898918345636067254405671957765649680781376452066918853678247017590505019774053167281394605030787927692450606584862680673356722313688357837763199026508366665207833521450844892921427237801138098839452848292119106146220270494766505527386537035896944065335506942334556779981533004379595017377839915164172707084080991760587786157145187031824125041872807246210434739623236677205420550625378282977815408058460866076503213295617202718643017425431302977334208388331227542576321262672356868503180042971426089753176198463705958064243209602879415761859906040286260075689579365085850756185420278215509110549789972390499634564360230388156387879936511546240002910283171833404180745970773896994641765088247364895784659501358441583242380918860947386816610726120013752230465784431518957200092949837919083231411630278366103258360795494366995982654157344519771320013564732142253819110629258842530793787462939562150217466725117464656753906154336134257238820986452546898026935246024368774305955478783950114735188548918894096923723220717431125484063105411808588073179674308605270856091226775491447492002512341478956701954922211919491717397725379905889983225270653466015054632561438971110901846582932976016581228204633684266711479649484345216463284996833036183060316073890546631946237478807946796220562759751484824512951794840372210348616944024902958180559771714604801964174106896300744465791789460438510742023703089124788988774935359464547491038736400465743683077678851087728778436634071738103163970276195551843232800257970767463480120426040213528438005952961286446002281690917495459787290157743602353685541030693758069004652645218158701269716587830495285963961017774751269249960143715559582828325945450882016249888022234693223140853363271055459220349304920416193518668788605517573943454392116895046732264827363963380127511163161733120783964280510765968152380961386802522938391200995089877765069684754139660143047100652246844497338367655457715548273908030996515238086454669225234904434623823910752125774248960010046666009334547477467100872256272887642604732507836202749760078340977544287753724568390428879276123789865475637757394804667142126547508984090069059768815062182605422832056361661816436501901770215684523970068647952857633891724048521102621526266432543043122961059803113651795921230214982644873442472649038951894100762773879104390650157736251108860692556248831499616347141261232620493400419868008731598615094931574529947187076448413623758430491479807402094179241115103095138529303550104384866751783547481829436504037269942788628163308757386406439739734514523902904251802242197898711680104002130750510945300468462517761376524969533176739792095352214965066897912600896587801405097975253410251950252014168740427217009540171189979098813240012295774336526081244727714625884282592252921688036389602672857125241893823915997586702528420521693971661668983521530676806120932305428097601272834330810918028033888986343585414781628386068992064211014972227536984894296985346458426909365252195323135997834326462444335682463008934259520391462014727053412918610355278683705494077057223221212633911537176610213637817057123193006802913781360401320849033196924358860305864877471477927841486234213117189737991563089769272616651979931827683964240640465883940532234788950342264856488214482676855847955850194028243725477249463500508173161195946770173434007956718017670750377537592778029490223391163123417978483523544911171857189127272088532423968871002956197531486583229356013478258303722254808174688542754199214294263019046999157283202785990155491692058757615875694289439159808337346798017989174197622563965286941419726516449516343487065740655434595327761270942351217149155353345460350614313033336660020830258691735326842722652247490764247640761566789712700625061046478123945902334391910287729273336037464120543797623884278801687139513186164872443589374361987916378850609214080350820440202951179500874492765850511532548469442553823354497586518285670982728032801492544568845653153295288149841248921614017174701148597868975769802774380352108448482142251570863912441544253378248417648185798028916746678156451173210992132995898007432522083146267691206401911369962269525402691537139587392119502082346264019219241434588622792807309276163305100842822949809228311643313879249679737155745167908085593865546709993051201668694825801385004058759806400696083475998533893746886573694208167553423077785202016577758372150159905486855826133236246387553465766439749434088946409663913672400524322279019027252023335484614969874380784448741017360695428142775036530066662550319558865614235669467153688785287523914148532221014480121692790032006252770330885456985805080283036876924664094957585990706584382915264716551755256074209737722646781028675032465148674875190796467091077354042092173905138026151726795194862882813088731681800051166381920559576357397590767303874552112751644331084312081915127624141121518159437665156081556903089935908917062378051727576745419046429974235249651909715799635656547668553893441387354028387449886896502767769331441400450190733062324484032765563468789741231616629853102187411156486968743277682759960292500670254071331149209918088115961926884014269208497034952714807976547874580364893503774330860897589491101162715748593954365662523498857441177025421762995888895523783257834667891710878368259322460769180296301293877639592811267566594972643915796491747071745562575060043908449470227695339557035946675196246130584279337556999097533664622893094476268956304106289754945068586442265939248473162794569141777470370258475921643780739528484282508254058105236174274727600520837496257837148405950317134751767225377341295032869300187211085443175231312407495132126196769196261149104266008061782064706895251444703312807298257349816840700530476607043375897774439173527960739807343586619380312047531517385950689698042083334235386033995690360104526338439426805792913886688203320063019449898460289696074195503768578540867317789761837890372954899245217299279365292578099845690712314478742651087679221129846820806103310170368140545636425549666665519309311140607992262862300075826354551695566240625961434700449471884977254658371352982317325312173937379380167230615134850101942472208536874771396093414633630842941011090847894741188218178254328684922032629451315114742884287993554924200676295242821084088275887912297296437665903139235889012195948653125993478362223236816486723653994888415594005981776447886356793545193262017294584033730466614643989667148112267494056490042144550426447997891330690415330269431806733889784816005933863652639744297193415786169398268139174421918642235677791114600396689009737621659343532014771405482214409701268926322311926233400813725135256901937917241765374535022694489595679408284037011731672159270544982898919690761975531241132260164916495588747008896362615049311298355959416376270605233470719843707651129351799851057598688698357440196704251442125282623191641168483643245936613733385653653392858825234494165760061615064634703106232030325044607470333479165009555682592323115498270622228508858793955749032628764768566565455231580673568453950533893317684972372164352728879463036315353570955820019615425554915137129552916498464049869138909596961050297065547414386794550494321263579801044124593806831919095884807977555777508008752383587727458165724844811540084250120544585168763000349804823157693309167843671608138870387045036265812732647232575970064086382203759350910034835706800380087974123520136526945452247038303142330991086708883511487119096596741409658970075089400109939817329519841675566261629592311735288779636135842478747347933945686253765410898312058251535539836270696120940290543082081465435191381197701130804902657002179255965592413919184225451209380308731344200247522638199731083537180650996249937204242030616813154085945341046922169915819992310919903375997924003279505304821459739850220207823040591695855452671869190343012169882480421986230566889213935317354009075108862601690669804613749552995658458498437022584226294529689681373043491997190156124988190440059954398444739103265784053040334815990261141121906805728288787905818451716519019770362956737332258209367850505041237256615192075510335359668365393920042830923532896311372012741459562058359878233438732284559828984058402434882714241649844727777272107580422619769064425491027372965355730668643562887215543190404311504914503922548708039654339249873569003507938300160086519621804017092103867643171229851459901627804538799727279698621534193192021918510113993148726128664124619707212839442947090355176872726517574710725122692383652625452129296650043028869931246404010074645045229728895720104059462734435226607062019918437961497619015131538776734878146192721681665878378213044649063876218564613560393993422536270615263270471951066332319996774104767929613258484092516555428247011864571935902880593042930929790922172784261772636058555335928584199448001150334291278797009129774742422624463451774829042846445349786085572393392376946845904266442225887167361284032746608743491198872372244680180062427218030790139294623632470113906669179246726757889142859554729742198605035288740280047080368892783578150764230090673245372270016450885084047044182222070021109639027357548590571028011867724227860535443627059438153776004099406045642918018799696930381893960577541876970405045244056895934300750956590091555589840349859766242901376321836427627805287823152134077107383547676430887790356014594850118004698952858492132147544582068559625896497034981580789314844571388683506436679062097836369913605307996587080394262753870475363523634514603614728908600938116676817399877312986652187523653869704874066311876466685836413000184860661270186520715802031387626743464829570989561348987154732156007499487787418423935020293166499659490597279797723832207867822937822777099515414790219393142456615836827919060173531385060679570900552452336639123662670123547577568536758769639796335383980851582454073900022796141940682268749548064536716999119534052885783826412694910298609623201646636956820278934503879232706196814058986918662750689885779767170370688545594261416107313428512586596235698646196965346545469242278864828667470895342075626818123711684600009858923829367165870951316130466569999532492769742585792047223302960079343943858415124840149582053062122773949418369248996047800970042759172484992461924274575572481845234178302901480953904742006662531023404333849476724281880895545363069321597852127291219300535534074754425703450437070407510532057589737102974343893734078186732346842699210956751488354822155701276141043948763593842962952579571669051555303776702043970423001046581417936340453700021782706468638515814547571095566289368869389822411813948138007494783103260008295586366636297253926435933535531241424026795374695046008078693236537513081727136906246846828658096032625506085241668370923874722723148031088670534442641530426214368743753946078570861282947202723854056036979182643268528006373740263919012665337640252101798174964496349432425606227599621917479477170306677318146624580925553503265413856806746647675657145406293264696890862421845796556781222620866020015782030847034211364113757518915457132030700680577624646488616773862851303201139695420645672465756136042232544409259532419523327785150376081407112316284686746815205955433882538892838469282748377054722828155800383009969736128698441980680281852705449052160818078525067467241131267737870742557128270036729419936264591727424363673703358194534864703079835658344065276541014026115850727198039917485659965594077942839669964937961382780572742362802672017229545124659446415807778256063333469781710844363677918917517249221552556914849386694481280950927063298245081561218592589302778356985331473636633123321178097654839932145888985006191030123480632546813849851844092938958574784043157876811351063740946248115399779769832825754876946879271544125143526793395292787964032912029813411878472714172354325005913392339550019891976778575933841002383834491528707829509104534316236120752295487994402143013782040553997272686409895804244655890145033841118418884567230722578822476834277877774718790945144234566344765336108772858544043862309440991709852206511642813037941626593770883016362777431475742504490692423444976719601456838815989875489276444864963110956723883162740484929322601971445018742567306177320865910344718953980186438070902970093250569194607263887381743614853772978849990553775741248655907282795572590772183176052110400050046762602038791332018933270381579949854936133960233351193556716304683757581146627729123766446501506576038955624532402062830573818192865831126785785194499155325673244837833230233151147235593994122629190810081546508276739501073097522448953317574863057855046778402554770377229838979758993033186776896811634096073468520164779858722270035932466712762425049462417742489408051425737280141267325918875080643709881602703996539177162838810470713349543531841876262521733261350366962660859626108202853687117647632378479483797609423867649818487367499079471767882287714614103260103137416411512164261382780769723646546137145625444106216749179321881774154615248014706291883183734410712113265811437513015083785323193335376694983181753653816346599104928674965286578195630191929637466610261183124385478477520624329498899042354941831937021834863848350568775165147116221482780662702301544929296176683918207835023965250708159190249340287562791185411086921247486207176517409245642752878165772766043744176884181506303894864456907020317652183015676455298669169403542561287942292894503584868770803745293852926961345072163409020381996714821224303063794839582088483353296521057028532039082719740500151585137643586026467689211861574874118190363261079837773566710812906441159964871154107929129585935383931230498613084102766532646549625747479450507091750909751320897733707869087387050918475337372920238569352546718766870743609002577045133408588065256346239378973703804143395130514270668390000179531147298732131137769230533756899881832767174014744252605447303969194593720593246064202650023299577747411804769906499365528162005051192127138121629399721185261124234859075370889153628425360659915996440875898856932374035815667614452050003974417375576703879159599932199886349063401273063992654782677240500172150771205084682907012819444473533758149789674264206307894550920523320265881432789694957626660140274471856000169675448038480364852790436831467121311878958973776620064152239047451415089472392264448356680413508894336670970896074083700134901473571337823551309178971247790695336530919434707779494276745593574539035173176566594644961415770264465802512184643407788434769204877572701778583853126394882026943665407338505951801943005362106944249681013253158447120250291001627934086093328527153796508736585623736313462238472597539825381165602828856457718865364369093048684407106291662009170540401558125596439352816357798968784341658885772468966377302416194283184489928572003585491915228017434837662704690444346243345515388260793229223744655883377343925511008016638731942078615140132323368203831633669247758922070081223888156176547041507963024122981758158215246202289772846504916571375257212369330057206715825001570517569257958108821001304096155401748343434128955760462235701122316933450028055685495019714061133234117439103884201408866381024545459858543417934951403880957477735419548824612826861818164696729066906194249079456857325812573296227529549421160016564928721262482538214450785132896112111501895979658033277053420905950645167438931518622029782056781050498771893264232295333215596048272913589401535267287720057799639365157965738400217122886622362448759137798820114128552583849325467194198644718487455506461053343282438492793075272918682997600786520350415559733539734483038108963655076688405692446388368036715842064635311790333586916921182044242843896046960243398500196160931084444719921880365004647564835900169475885752316386520370448933272094589164167038523236813764143936070093747543222821741646836378745653233701529299709590733857514380947239981777519286423958607615410433362033485403152207529657810421627014211314887738727708596896236824366199482930395440777813057208799883420735306810049703886214397353332901136666622225340097613715089773105412373996500883996151999064280989140912077156672296756940634090046302181168596821452953469747210198662893301950210888729131567880174249592645926786432123138639870354082306368696190666227786512552762840371702051568536122361498798318104423950888823176601496467505004791165425299040349271616202208287706735267465025529745712870294281349500987879026414787426593194705921539428799708776409006402502018669532604925566890133337997196451381820063346551542719393178771259907657281411895955800491421875904066185936682803366053185179877456881125639660951885803561416365587232485306698680104147913021517849360861076904054155916298996321941277410863125427990420346693852111406707324042366426953823415212535939145974175622248781129114444746959183904891555295133069279188627252154090930650716782642898699824443333766410342010333464639731503804940541684589830149814920746715873747697170422135631141399034478419445988032819850894798423284609565561037046550852760292837924244456031441565135928122333868579502169841051958519609640046772074515975001535893544629617292864778057170884740368072461949763177714423235942283875173619554082733482331566529400758827884105727437872836536741212136452489523199428904143926497428052386159288655245312330902665955612543295974712188407964398045858379479984866640370434258407463059332123734833011032498338151870197654579027380245013917107756643859371703374756878451685107659824339052432602673000667603749043812711921880925305856422481948949277383363936620679241533244741303649133328275694350509897073516170581466873182749510541348762482475017608314127606167285617344623363414469969281968230131860475787124304960834256867969953310219976673775835499662854658841847325261173384760142568680832823076885362972624479828739483125460465426085607825274062499979933599192852412399989030278010837411572450962647661070048368604679655357617549644269205691175112077551319116718518724860960262934827091879783393511728260944017343811360894816910806221476992738856652985705563628964380421531497263845018144852733883863023860181060447793108058125773138016396989877399514468830963586818049949269186922836401996269604792331182690578068189420236206236519125699310172762708817301681529262697633963047633240408325119065600521018389152353442803201426816694572627334643126273429227521844988174367663844867590773870529273225244530405524920179376753436505524125816166800896653633784115225957401178547222534585684698182932450992974588667753964973909877660955350307183562030450999016316531812810475832460276779458343176054864412789378532545560445249633013878935737015502721370299416331251608981576076461855264671308146379254187962318307015874890544171826862463663109722965188274483896434696383171010229405260081545760105456224448174995324282069455453141825824270043316132358974341747184898732920647344259896977733546682960879496734584476643072875264041925241582480093367814784347007481626360308370693646120597519429897082378748520264140273723309440270069926727138594800141826429272558985450105694714119210475689996046925582415572320242398935602909620023748043720444343414329806176742856078954731994547465168602869412796437807912722115165378699121705224554153062046711006411281737851760876510149121854351509974883733622458190550357041147151583635710538937719087157692153027408680025220465047252856643243605138350494159816066887385866192579535191502029373352770257530162223298127153003430148573464941459768761524043873058205555435406261786882057800565283710289150001257932653816991656754363122303422448537352741254252790324847459997857732690134755677147664133545976618890928402542482061454277451307507623008910024400232695565108732028483171493754704521621176808594768879224369833661206669570227310106759128905640048062008256567431543886655293481134674460583710576281733396530236452578114314395493106329210243388182130238376096078672592223705505760547594994550105356532141436658675564816961393427232466253374375244371652512829727483262007849195854074278982870235695337276542128160228865569811601575090807621373455267213446306280069348330639402581941028034354298322847198977280559249883486393766076388191628378355728838960230997629129931039948135379390909726059177105697930939308716180928298923437243052558784098528018966711189587285084478521276890710778841345785054731725677471034915362057983795214441142447758442120969749089458497117729885399384672965467230567915126552164826732955329354186808293076879701850735645857097667437832204316317386656753794895077860192179784446983323893006009553336581172536301891463291903338239027469366486682320610716372732187547586538582011720374484758958348027855228977931888163246736910406985788204729849904500449420144632599656565446229124693548084683056437196101026950081560459142024676892570963763110061767871353984088294132703316962313066819613922096958489165822246050642528567388811927917355317682672887837515078304634082242425561769886027993138248605195685614772418572880893006392688136437578343071924883256495928676290617108538358295027105034842181534380217239648291895052403729145306671100046490938159506229373304884417631611332249931118834261214155301826175791673376396979253102959646224126673488849926104579360639207947836858574787891843072765473143105438457316569438150822403017869306239364277614659247718716939515161084983358711189843988817705818376110084272895587474993266297800412320813838564968171165639794951741738859952598898239783714695603728835613870495106609057290349571912109696028018170796963817158328595685700175012958645389259811041106121396867857653975791409153564216529473450074159170546559598417100300528429877199996470543540038439686423176239204259570193742246239824304800563595244869408965785756168048746802487793189748119051202173407014323709900085475408089665597314832457873290335976003015189429500100921258377680586540016938973895427240108595589409652139989115967769139456298335881536515015968802191189429396964386417603349820427287254886497890101066692625630395024334345649743395256695043164799959396607001135551641255545261613784278937987718131963035543399937809556207075180542447148364689081463963839137964217641314987428400960622376549027780524051037951147730636879092211685549859795679925153869725364403088625335256506527854487551409753795828543532641614741582170363550492978021385790804925253194373854051457789628224957858194735209699306872420256786299188475204170436875731189725996715424508691376328710979343463865886038161681774104785824272917366621336394058604129133576582647217483596371041121548944647265492583762935406742438261917647253601046792896691922812378142443072846026848636244693879690405331251109705005357076694502553665537961379365534678447030087963144941256729977366517383475465935226220753453207336131004212397947135943077063810131965552724751484795543787379047824387513108654995175726354504544293919330871099287155765976256951749224857563670820653625760090977305005152816209130193663318986655965264538241691037208770398380377036532426893476230074096254419074635046413316164388858180496536784091265995157746931253307238349827358342391792633652739637946516098482199512551140860387034407496501329472663046480218560760240339599534405256941646267489304618198121425244417174449735037096257031516220173179737401273281137734406736271765812427945881156472956952453208302645242016061111879640838140382096198477188988147265062410083468477044696095154615939013412546633584871430042262241531575507516425346003739821223107613278067727244998448711120171980347516168845427129817875176271246803710380939276946264063976256982796652118969286731249726320095376871374660398008548390880417715562563421663319304469089200314983333921866424482872690587238591039977510582887273813992577922048860991686763034844060012661722910657989159168701933201055168900383185267263398333393870547109412448555560742318565279807024460889715371270762681800905400995449946263109085563530105134174769428592741297956333244672259907833102232584119361925870763443400442975324608411052034510683143548218828870578210998688691056331027628107940646605986591012938314112624651793863355170222044722621025865303958094617872357218313034332371221414788074247380641424087392340269374106385793557482259914997028242176345724251648428066377892613239389507587981374409763431446830986740824271527497667519716847860179105656257899324427434019034798592710928554055537419487352426059611070363454797146970229891559039655326257651990687740363572834332722981493256302517770862680889551443852076623272195613294803850708534574132366098440441386823404931809436324857645042348790699127142676946663854698323446907180717966786922589167274615512432297025292476409112160767201302708137209254635694622042671270502457813267222686154433355144617839139444603903120746253886970706723492067510531819385062041706003977306258479239712743292389781516884342216209795037104592573764882996007863838153849289510604976186001862504445243285358860828716475625160001895024548433654731448740347944228611686450619271696766514452697158821686632479731115629466502266714420570132128797182179031041041883653995031174420183139714832268589995667107698480257561101083507290743151482335088806991497053555465848103950084883288940640045093287016744958922494157234507037422471348862719589395644704351826092647791643187637431220832802879792229841610621006922947061019475871997074414024299655566323690753846867078667406077723372588212407144555999254996978870040059008434923381735124947872540614060803051774655136491236782723807573115428022742556418995972281992651057067801904447535830070469768919607904325458211925748627695047392261277662564005216927781684641216554943166093942846252947121289341422233949431608905664193145792419639999005445367532791852956575331291026416762937565569032447311545376998922126306860307545103518865382578376648535725350886090349360033702341201722429593419492674659757432997196556745938767393985009975099999393178998878597382860712050805687407311287810373298825568467194750123919970456327116362546690068139476156888721557206910557362544845413778546475722452285706437376105381910263380416395584530651252402143349372210384294110083682924635724787064013216600194259958619168382238536758234382565748550917011727947947446894593627107890220037250031776130962936349772331957177896284349270755804768077464290968018225284022805897537984384046714187451853397026883194909529858868114937831242077622678512654158954477622739282149786653340125833158276216311786628302540985568080550312539119562152920333157358892656380949454158534393026777215463188974805783395555525483342593116356626652941987713920897515713510280218289258369999113494719204519072581711386315633202629158786395541788016612674684810759524945215998592241510414066322801558249924984741850503923568892458806661745495474012152460986836261149491875562105470553286160373701547254343445346973698478559300161066572664193259298592641473025169615139973994914651034217796623448305325369293817721116068149785117258715960465870528744064661557222742779116888387964683198426409839889946279073604103305818498513575489221405412848838567129235217199038388424312360573880972687318945468281481706704013420547450605110629520150515637588875314679848458626344607813086623971465198259317432116470095834736656279515735354753039795264036709559450624295622752867849753294760228023742179839067971239030027148212579746483153447044884232609557190033863855591660315859161398343854157643692361791066376407910689777062275575350629182223171257553301623912580160665102161635747399780373201274106602306026743573170139512152838881640747126971201408196861427160455569551577008748953699172028587574962871656542263526379757690263335409559162838181033613124303287210874013295455064583110813227572366328931690040475540872964058371171072437656018069871691503155198510451647561857035409404661465399088635288184335403526073950666450268307846835260169622271823453473760405554945148808708772356916487430875944541280446969748016672036245086343524167537398931052721439992282809709621364948920161608117682517115967363071840410908608682820657715958100319644440013783254620916267107739339296994543001590555196012995032400830761347340446412701136025476650807058041733226665219234214386448169571289629708334978003986014487935438687155619999250661147367845522565082638202472106775239413731621289858784279703931289753943517539032893428388353088330598957973497860112791218829411978001066067473053710051845338346710915474627893870722869349230546525197711626720619183927001999525430500036672407243708457645389533226390479845247572669525090731671229252604644284588982702407767561584268901332456282294561986481313093725607951075793595951334741323460205208142846340145737238682031677266003081181435921272848869790085346270041277479030253232045117039729605900587384667369222933309695621934422022092956440287959084455334279679296713625274843690193986986255600820787862924193088173603622508691328532679389898631529419178942395233061599410925437459978731231492503472519009620411510857046129341967525804487486188619619502280717337551999461161449521337315612397853836785205346277683216064338691724582587699258431022749253249262493686073146012987081019936839052869572316773589332216865867811717577863892012485887778573492277369111509468157220246133218116272781930297159494288260747806130679128602439045788241892735228329715450482581963892372639029169024515412614897214156068534979880336867238467702417759806899952045932781938505140781391825131709135658765579073663126365161172876482727298682500578395204401018263585850208372249886750879445244142471747235737196618476668525893708684811770728684149636531741513186304829146909645504357879431521717364363174474895555247552465068914699927706394565613598690083266586290497659537773554305345038044124275367023772801354121073942588949397507697087118180496633154080716304541918749016286387464364637435567560720545773996988900781964872591401056753650415822495000929456401907788618712014708562663954513842624667705002925296240347386419182192032441323501201869697741312258210228412370129357077692366386254986023817329434719609244077576626035961517285316653787237888006618171795855855230406124378213485465431000904610579923841790204352558981661903184110626939098430998992032556246267593390707328548364253036703817408903084106017120779856029581329677203357464414824099559393180847009987806139526508416459881306638220459378329291220382087116613184139484584599049548715104222760195741217646473062702480366967450960662047105225845554172798176730975869820355334137800411402521305912515358525343221600282960222669941124388049182439656335254569074539715904246963285005844064191578609546314118823742868747276597204461042066132258810183906889659405254401255884040245779451779860568558079346212381095679155754183636851499816167306584025359832849309587533449577372633864506370748199869452501010506750630553126592152737488239090256491837295225925571982262491130204142743325947665141868994037931245265347201147096595189077952075405787710739674741541165230433885576127853419711199573494892098818084358284658069370050155489174404345371810242880403019940158521672865663744968922220365217450399043808054072562363369518525857228632005670767687188328196990299003914408611469865522043112778308386467676592208468881519068885679474677327970750761092464605224233913154275102974308619299088451757363276579813595691440412326320029981460633828102082299956803852637501878391753926723663865028020671179366055897670546554504740435823265723936714113537042442990352393219113750308567452200837158613393783542855452898219125827191409773750902148980633251295821509424103337809161446069112771910901177816701903426228630372801264097515497964136382794687809773215078927566952043649411579700446576957216122190821214343176872887199712052240412239436362995765427657463724627828600781161571151033613439349302283302134989401736102061034975839355034290252938170980702135077696336594979330299841208314529461749050326836825311307133646332631866985750559460670622301161168460923545951521972317596644609153108106780189083996421573159767937924270871822820046650169466688279980939739732898558212978926322434603363632474189743029845246854132395109695525717579575397446611393321960821397295968615368385752861074684966843524071056548792736343556567904123978154629493061641713638513784310177818301508526798970568796740992393879520291581563745846057564715713968626429951166431610595234972184706847176851170621857097595456445891071438349989768194814871856425510444515622752733661496816930932270235954287429837853589599161165746994607491347038851693054198522800087151803973671164300639539418077535432506221939216398753410065299921123895434426550104472601812188801911130585968504028854839561087585107513807970666164874219131775119457117507928044121058362203477728023959312118597576762067764241196656033500956241929196841478115385431262304558701528507428151988351593240271453948200900578696154439256653629270783878287682364142146628722392177892694494495999601718252184742993714536142760876461452821254098753602896485547190463734921742648318112229476078463252737348564505701722481816931228622250350250736564571887112953702789415461294133802040477479647519696029425531101020560191365485874454643423866943777326573303260621170962446686733776710617557222537072458821016162753307402583815634113526047353259630417143373792373986140345466394671622022320340609981095647697092763696548408571988528570911350227712939029074373302596338046437622949209049433032948251637621729990318593203660890981825080826336435093374077217086106367484216970415103102881420573279189942988208258739277853697306099476937082980548888914381283727924989548338403950391075877499146121080214433833748143567394241473181251046595952142705349648427455275735056882770261672710933990125590080970275096285823159911316197052751171147568261891926947658722483579288490485660401637744496329099163623394727856181521565356253984186195202577643159734253834176668339820820431437692664116791017666448795080159051112213946839450040161332073458631738852944650772852143698601832774441644162136758690305853825335009091597708478968571243746283307267271271398655352313974931152045792257329115259610157169094688549074837392167724041122255552630378743104864955664403886267630548392603019360236151099540994457001043676520184327011263153853539831207616142236807133176697559654145098870529139280294708564386032751409937097491095945216305868520530769937694911482660960775950188002714857428124007599530735639909771451264816572881529561477874287439675052282147559494003660162113027925013841250927125299652142635550151503283059728117942882565802881159627225772415260932708075997810891166269022069144980090300717812936788412136629392973098487143857147744450808972955329821817073210394712581246231610906873293625493006889018797412821154039665671143358722433689277202597294045874457161555700041574889189508723258537476224434087718619435219523882730553357838858190586512751813110897091420776295679554137065299177990190215823208681153761561711337876906970962331474503571806203750826784366711856511921448865120621583421249242665629713379138463972842580116641094449851360702885496534040424808758571899609664073715972136968139214907548682579240065891624549609545553096305088278524983943029420848137426688565424126750350418682454602504977759878329406067304693100554988164449806790432346934284507399710475001064094898364629812260983111603038447112038725041638375381199012121360310799789428496758660522563243108009295391128568768519982787923362770870433607283740765897072557105052875848421452844414047589343547558478551411350959960736756897770038620211781277442254880462768481881933762483599702311371408396119954909885313856047606393361202493627559527657514513429261752241131623443109814007748293020431983191935877496251523352511592686301121746023766038159570280404163231622794098293697983155877051777418593244939511642749527160827067542336979246028831624969399555378059594007534015916702177566685685407678608513324897724421688518268484587422175341281778267540319719837926739856178722247567602657427445514700780098552301838290211290439769810048458434523766698079904016871895165788588010117465691395543256200997799114177113434992460216363103755060895059565761843214981215360292901201671500400931700330081165833046378143377188568662776828643353184780351790166547204377598986459318397330650284620848255466651632488796414992872982106641174862802275987570287305070491392026440113601067963564965341178120355224636256211515694295752228538253326270895710918083224494556291360344670649112620923838379373624384530011976768079721748950413576729461038133192579398685030207919325563786325076380649307349394042143954679706519532012602485173979871190090371903175885370780299824390307478591375913595258822349686746835663971130627163456626010437382880838336417986664001924560814480881166471661392696786178708440115989128825356830172477161521606051436988789903511051353406447679408461824411139269550443162923781306206105249219209997203989309690904713239155757207387498434679529727506143518056295010214616661419800235930879275206474669979123731632177793064013035136987099503735223112353639866862820962755537469840886148818974256848277418071441564332437892513867240449425405434617584677215828769437415065166537907740942739286826885285610917529541275482534368774071228203052174076545084442906811795514384379540863480196363623246333388351762043377959695711042990378737019256138093106059163755142876082940733821596308778032113480171666809740294663299175015887499263819236177316562689751137571984074742567831555116365112077032543124531355975685682317802222886139446125644395797132490880351741295644618151247265804074226056475375958320001861686258089713711505212475053354215771629008106409602267476519725760682613837811891052542851094848462140354308601922269307245237911657408256423412813880976203773455526686039194060856696561932536445849344353943827333664224007229917572169097399640517986596660460144008769238625526812972511265845398567342211936323242660639396412499602459250348358956912945752136951548542723635706036590292513082765364403434219014668138971284798681451719657359024650937753736758514355910467477594055243134287132360010079137847630135704438417693401911578754213952942304238866296413774756681897478861845085651903580703690713881628809454029049403870645802306466087234031536884353071532345489522046795893992541701325875839373719822857623067531532672789755739974895683460396936834071483541707559500284615953292396078374910991240207957506008165676487586131591826920771105328243586576085882854536341160134030678437674696021842443674222019134456004255991041739227119953775329169258901371162288157941102808631915334801707718942894130891536112575431488190121407459966326025772536995764977121362147626612378272470490641574809526793174821025843309646686515189816304201644155356043761999330249627193664065539771654476943708208315535506039313062221687332190125208749798624343940465898810007862588501448646260334191223004941836831177302448438083737524575916924843948777153306518385855316361678799864842113838720394144331414764651853049085514289520391430985081531993430352158503967417263065391885442773004355244918843080235589910671795436853796546399616818001705011851214415111876960226241603948100665524707638270151533809117902704387750908990386938953221502128502050565879758697729875057973223577558062219225461508114070307840609289165600161478056851990143416059469151506290939287227548137474808294473501171042931696109819304000897716285337161148857950530758253227157020108885002063807175829321163943502587442299531363306890141661163070084586285733176541954635467793693935790176988094569650952893164417162160530897490737359500218222991704346085526075741449539215756106076298832266924947482529321333016707895034102299042517977750453790024229379295004418611766538967660461991823494633771624331251411173522187086597695610444288378069098218874733901390412634965261065507887500407840748401590334250621981444416943768992636644950571667736998179520737971258891431260716318835057676604456919006069283148835875683027116322830944577276390124992949185335302358847630218046404657935746098374307955155116457788152003736169200469243301561828779145077130490186575713560764395733098722123146314156052752974394520095384501467815684856837585193368560949594112520252501820773987695959019923988588734425532981591224890590539885931914248008416108043996859030066905293046297535214027207829608161696805492168796062222448646542874876797579389977089035650173143004000874581214661287374986343852275376983762805281294259192590714693572488244545963899539594517686605306287496629301672065627015383230368009193907882018626213888259298653743265761434215526004137320688489471157906312271992622495400952933975487900622634262938014199262786643583126508573373500060651101500177034824179678308149527861616466836469155989317368208350588874372240191188727105688079751153012795406354438661830710662192084010594442390536060578557195084842035686781113225676897938821604154596833717107707745589737710948964441558588296255145490673322228022562801943009464448322979504632804158860677719894457966331979392477397329845830654883368762074194739954373561227452204375626158769162205195866707690865443059445091554378921051324622414037584646725514731084374206585625422621457260864259786508638917227327367554513504187815940802295115422535245077517491533926353846956109782851033868305406587763243435989516110229144139679072341189824936625006981543431742223540949942968489403053498085909994840678625419058031965673727172441237698053182353769629183681990772769042774079539057087348056776242277478794898686910384344476080278367576601649742582313538387311356355762229892484823162545060562416339581954042867243468253374790121667398167550534144690334710913279988679985811475448858796597711807784478504463026528236395834756998704401036637144493016874039056115359920505570399158505870487099297451008145033202350312570446663084015596928177231259196425819462246483048135933836091495321852906334977183997400117387694934315283631520567517699249115300231609555306620003520325867644439301496260578833763507322142831096216792586102976051232352164619693514610699244900949088471839601454801119275764706288574644713863363750225893368454111511127636562775523394823350386135004657942511608777514343666859309473283534892797111347660680618521035947958636733783249605642873737930952037794447542199728077953051972978295838607603929587958167745027105219551560821513017474373137406620763580111003081130404774109603349593429286869902784916869573299728811821571308476043730082702582241661666554590509273414630677519939893636850512808669743675243689894451942720234580432821492146472180756211903568290689186675187498135035208183012181728571825508283587594638479883766451633696280269505657111936940024236358217071671002697870621085975724763133242483934942843740428510350026057278732919898170942140953177474621945340540951761572302232624408941599796892317607958785630916288047049272696285819065265938453577496733174706552106255495072202981105482070025644740995188932038855195772066290007614722129689207212338725006479108203138239494048194098304955733983166901596944418415770252767451235523906976296154827218596641370369066289392749774462733020687488147463006754695039795412732885342184583933457757819546196990825674962538590389252515272516454734813788635556806431151105399779041867014200143951800004944878275030323245657215370271266899404689762550689430016182897243535159053779715889502693667055003544996326760345928665333859308857450022122358384519787770309140573589757721019136454195087569414605022965669706538960720826898569785898863341172138279730323049305052524020619412325176552579176381938734430586615530658235319022615365117824197293394988252658836905371943323231789392868663587632407204924945076897131594389147474552066998720349361272278594440004232566723035607263612991444387352099260589726155818197713349413032659922274240431014179667736832350189507505285772583357424585106801329751126137177104129029091285709631826794220729936146875103263421436909388785519114095090271234568615888979601075282929109721995132564412763350152882223518209706548747857431657245132748860459952747892268387392988980948390189596905647232561782374337615482404147223511957093597694134810116203931331457383469859089817877427124611448094045023877120745996481967101154244672924280876263368023101673568152041726555616228955406808188355997815188043783276570453627712657706153993971998746769700927821171294171034123766762964040337088844633854656292350863555463171043313003654867748807757307544085619017297089929124581887031258775689027637984387558942890069518450381943431181270522254289819411382882927170897238198605594954988889731977827395185063816543571221105120654141336157380774002883315634929336142429439239745640568907855847548659053309123900885326883752946912260772155770820987649762681571253433103951776829447551877518245699874937724750965536987685508753937893220902100834994784511551256243085083004152355175798009828125187134748525542137759532349039316522494977964502057399844971646471611926853806966978079284802607653558951312670901184306295754808856269473542683327305787881330162254130847287789760788181696639863300270961658254787999068480509875890104001897287016368496793915550450439295272265145447663945364055396242714159729953897732758050297480040048344958329754282765965720229506039243452340129002005351482225462925642810305603471189548339517736718074945488426656945315166609975776273015009978972286213420865456734868544425971128925578842405314069175098974300688123115775408348104366931608491379864233700335420888449220071297335383773502806827105626132811951028257955331343106947957774911198241549474811047177810183825023002322718041670858925209036104671191815768827208629191446902170001363505590822527812021129999872421834014970498556157402721809335408790430054546639645303165337683386064965396273957877029063466650468889939336369928500389252572360289191937652278412098635596697553010758600620206815783194820850924507813388983894212202272194820850587611971488753380386808929105576067494795276335246564691541183317893568789578412844943571737761912268541431915204202459927560766909008850964437743827674623186848739125555932483313204228905282925853551782039425436163385302127915355226168829542992920646165413266602955784019401716341179177062764841358002985732954376188071786055755972829293541477675037451769391604811486058576714860502347513839832961472022773453083977830161501594526488301001693766160060849780209021015972669442993645690483495014861249669464454801959154446633068227669285135539637541417768738854298163130976055537637614193331395488802404640677125126142811593694769292570358645687019147004119654958408050684524237771798907841422307749942848650539813193350743399909647851037270525835800701216829800422088516217388014103586278428090561469164321100536347737517922170605377713264472466515994320273947147462803109894556623283317092521852181939992098339101021255322604753945578138387637210340962141214513911431548171854679127426407277595403009166881023627643575263597344347497479352045023097206009803644096306863963878474852092128385007831933005534602536669738199100846209586820607434398903522059224206488698060780589011155425201029889516238258566446228424767257785719378880908385368934721602365225564904115930568885247305438881926065677387895440505483740904067643047049681353643611814479037885499247427908718311383210067089321608192760744464703262334128662401380714115641911521917472531192071869160434040579800192307373580704371841443882314011686916608916878710682508151055231177407811826941000828477899933819760307334215296831441522915450261173870126425993890231673649858553765918480091548361356111168630733909184788649796492974932480678036085279479861987518804157751833696403348690706754762527280189190385608957467255474761106672214008793557080306784119553655036633733033619081031073850007025218672897647211318615079405116216798851258153959934116352747567162062836633786584247898207839409034991895483378764442106089946012088602666082406057055169090069638385987430674755757066614089488448425676926587568031799462701353577041772427265537014657280108122643116631291167275647333457653282587748357990195680418813215797474559456414998565871654077205573087237650089065735505017151511349427339676113389456383419010327942540102962038689354312307575045348235434424178123219165895119776652286748846532522355808344091763352896535776180032015046821373721213395315793208108275569530836317032116502548443483241966545627438518062664803250674589156434153257341024836630690919269932286823653862908004362069982752482275594810001245345552924537412812704075920494920051768354356529412919958695972161242884282797624246203746810769862670566830224315620865693114432809404651736602029391942015367473320233877944025572348509269736030558060849217076509075673319321261001620182881375754656712149544512995504451779369990937354169296394837485845248053676141238603971995605638899801713656848863477115641889760410404176647296543606571398482730253397807376317033269296423529700857140537539383148761279555716538748495190242188764579322586104407406727463757152080862583619297538269342889292808284162612011834583773091345316914943540414751465983833554455049348480850505244165327289847895958396278319077691026525565365039553319544240225968018361533039189755527631669878580166449620842753897050301992229029616404397564783470016650920285494843331322099292086688261882261272015935554729161342377949691692375555907800192163540266360386629529889377543967726043434214701486342188464828442204707432696847651697194996344635972308583636390776394907539466616860565999263917868483816274009907057748909302048846441981029231333787544427280253088671517999354016072935377393965815100223241453852836826469922711886155655260779687056384725987388630020423782213839954039482667297026736599962130638938521711606277137265218514484158282193302564092813937209655870641595958527306787094661337423292331200184799743925224886930707782087379001400656699273863228649616847694280844528340655492680106985592724083943536558050296729445650412668590499706001688842508230500477052647551713250699621028807311012216556461134920759782944816743502042375741662054682445360938162595612458595439873064670279573688383164434607697438119195863695939673443414304737506261983544979665481585624228016877371991941154277445564131544500139402216320092280983686143045740960054921520218731259977511276461567319750749498845203788524374305751343280064711595428782345746560950558941257334416131494852783896146845232152560978901372369553726429272824746865550839787294054770162354821731459406916700099994318268579079597158042376342068615327848016014506287310895317252317908337232122877132660939128366348323905467217844678907696786997761481300565655713341754630690560887580022256030077468915969164001808536858711391724318171235426996025675420123641837661417129706182508451610448140780630706875905244028969565755562885532728096757498418398586800315011403948283631626623796877715253709567409307105560861122893163987680623802029496872558285781322384919032581663076165906736434292668305794565831812925120017222139324953024596725217509119854780286205637962784018348713984935352284867125879877248947827445736560518256799447198613409382885469677999863316610577366367569319241581342785152571492895175274340010742343727643683677920075139861355005929069627752401263703037591850701651919590349945587486381889556466516247068674575465370776247048807106247354139110275702632022949841241999202552093336497509432426217391179781809573070845605173944998160686681821419289776069588928441077544341329313371525852996889269432634974533726920014914316712831552114207082786252900583693695009084342431706500138292721652699074111494383245913363871521349982166055854522862606520829902835209083417562754782625879961543855563816618057115973530107560045740976157050627873289068529263585968363448306942149741921027761984985200368225129914712862762022673297908137759080672898725595540137582850294095350864283274485481347407860080933026240136864105900913273411894039065015352954420288616831057156265267851362463487225442518360786813205369361960292656648706641515056544486121549786396948611781399851090161086933532328404512824766292856759491573694591970937731958664233835076191333702147663683201354361221600290065657218715484417072674425052728938916950600489261186092374943135098121213915525425034850935591397716580052120259080597708484441374533660158269153032179214945755392114227536901976762511414837616209914205443394137287168065844688918326452636895487868123473056386501268902481578997543098887936906795133378925339402613707744744923704620507439279275569442699838686804944502057775309237284996928297089984455775711354792829990206445368704301320767290891474140514548003450638353563991291588713247806291604794757561343329849829075557288841717438421804669699006349719849917232363129002845810238890586976702933341636596804583228973669339127137942053392222849069905872408806273308085625502909956365020927773466633344522483596195302709102611384005928226548258143424683228099016268988355702046411681163126225665949763587514709070139398080406158275197213026043010815561289787102563628368204784186155837969996140058656987068876516707577564323334833998507876931379547476020694375209420920420581966969067064615057275615540147738438008153104766598096540955622826235293237794798821383428013337107126907260935441495875121194971333263444167435878970420481553909765457047150773127789053017432287641809055939356601673491769695134699064179589455707242318916737790898008073394882401086600171300016996017540426272731653845886123580889751156382257850671363519486897896552840520841312812334899007634077760841556362939953062709992757002814556073881204208729031977613682964590613270624642732316214804482423188945066243962096274749327346857686859136770809370207438193632939817960012394680494647682005707116311843242556677775944118931566976587097794552881164431880473080874831421621937978577192766312767192794478488078133448684155884755435116390635456702647697736947164376508055036956014792128916198735425358250364475391762038090502843157140691327154939713641299420953644689646653681795693868801372211212521870924258765736350212645038435085501595348572382851241764292463790147065153719379339301510448489146180645284948180768852041183740438924673819828120865811800328615876470473633761907156272854136658389841613661565452547444657323312867767702011390011800577052594456198523985166937697383849377366574998912501603406368746163828095672960015712281245340371809077104652695001385284893652528939270511514518041527413322841878682877956928549157140624373710176568059300256667291527532000138075612032778858631232819782416762263017544006957879218166970063340682417180062401587185462165193929167905523245893771722259559768810104668815847221435507910188157259352041643375174429975828939239494359546467623408324273380910511357799552288384569699717485671685888804288228090705462210913430347853442878309207537112985883827288882061004149833667399267918576433204175452159617368542605074684218016306032009133105595401420142442029837071417242107834167686461663371818670346967391026699529711425271872766134872702648811775027595648341341426207073310990453305051113046790068941113510325682085070407592463494172079596052358918923088622146100751843464742950088633348777716518320583408397429889062684154620344138954650515518099955241742357830583611258625880381397645452343202122959164352584377601658508082884945978370543915368312087810222274175000789166052151408389087318642964121676398953064340283842042300024630872107488737917350328824235218346466057251050588633441391216952755203242250360210623010384938387268730260200393773631905311186258277635213631612553703874367023368919884361177250961467536248845780616175476839987769191135114518784118669433890810686006926268337375832489931808866012038420593841786518481170673700048954793224875660053134861262205365004274749025710716055452363373362698517558551820258169637624199598472483010502184322851817324341104135144776478098679379585377082641168388742701196963016428265546021859368300833071078391183164979416379835728705403546187653841730586702731181905199968601584000897408482638558470896745422908660256210196738827074261093217979036258716781554398594560474844428434158290873802378919374990625795547000179809193064271124373002205965492038035433358885652405647078398251465616083116573562238499129401992140619559072304698603221089445872633849794957779530456589196610794761619703648520433376704908205234369657819158499218734216901071056229803614745364946424552802038741350330562697500787847370977030201946337953014421924368616749579504682168122557721768608619421990300492407037027880617812144831805137357175148324245321496734740509264611682082605190566985840946176423118295663560051543099600451592666479856575776586775258941463489318333398197569700672738086828126021130071987656383033535061364197869496495589149146113017469342422429346740899428124810172528781016494669565519359420313592061670602836715502658776419242245304150123124567458586836842635702691063585459717526024224107168193040599877926803262263729952501310991051412001655491986636173108026910806928448034808590708825945296201308180086648057966818267850125811432076068387848420164843389519522796244567699302250132827431649062804098345596823117541072789492209222772527298686966120713599685237093127321457145710256420034279737530761527519136178561067987854479372566314942443028372253650793426879546736832333215441493413212957537621423863953407940295869587658285174653424662319010818705399829683209213188664059789196274582657108532906224006079925871256589036530164300359856008797062735878046433966731632882686282960673587467901930935765932288705290866423778690505767282369621566952752171983137206689907422011441024782117506767704276745703010338887892904534190430376765281838821105672441671348361489301296384085210990729897614319687356162048969816306366228835438469492042506686809990288720754376099204159047569794722216240081775795568874225344418563987730271312687007787419034875952698827080041768306229969472101290970543891172600183117906560051651712117159065253594616206155195737138097801097663537253390919452253416302281829040340501448174736187930870323025218249574952700154219923279664038640890623762265205351269301072473906167808889276192933462815956885917579593573182358410170971293165766737221648942190495832011984029068371060163472270545477871159416004516077404951356752972575782381007585250346074778058453355063422460502783702789114021118823784234560002788479826141949889337417941311157402103980641930882444801852586577401169793552532818980076611804128524149337437967346823068457946801899063907496470655232882727436275484618719306973530862716670700570770688966157463887312889457221152424734001443175280749863006308404415248367479245258484802388187621493313036648086492406626696005449696365996649246759514113691395076907083134814838109697268093796794201407153719647109809907250866806929416469410208289428154958342336638775005446030759978056075703002111761836006526492047091850150368631293080217518637495994602736447097778950160827985356820509703310446901419095954559749031872218838379245659681706969957994667136834524164831766742261598364073427212227204891255843982619439869170765255108043514445011902926756745346099040135854219754808690988363210612137569988200568408562276084559755575696347904735184200916120064710404902149157861805652029267981362195516771750128595670953755616668150184386164513784766955502750558046344357783554150700203519554652063257027717404449630769384624900037971901826407616870281241102027462876570098398822450246862602222117494966633689526807959256714169707109268944361079147008981267337981723708099649679047831520599277623656627153047070856878664062474164992312292954821510247706098834964419160172239820923559891966802594804455505306690398527851853471152988762624008364994787305921321955610005182936594783236217441753027901576624207801859027578285977644583060224827552650987601453376364091849657947039004325843130157925232374312202338251536426880868643088689010989027993671523396214126131807864212927034048866016195579038723351131367872866862070471334807381595574441513294216609753339273891790871937783444763397652095478920632857933553162028779563069853505459467669187241994128766869723446757510632338887735177168316863318734223751866634403462083388082946402644364848009005066427059654751607590743514130795516254310769370392337724432277751166433297430954897230323117342743172504798908009896908217707657045244417254842313449839468762907049079286509016605456619576677122492492276138800486105773874981288200709701316127872648726245381913032915359014138869867424730657731313591216932889630849582481787957191427035267292209317268661597572974092633234692913362202671142947382338176575784757658569515852369689364433678459194810996551992608507587316341466088638455202364161107749903472194882439968864421857824829172775043412429354345397024811998600539280638963711229528605724464590325785516529071889628782453594138257142642879308622298337474960094414770294077458442829971362589473512337456999532113633494543727686561956186677348043449493251304516442420842500669604532260103160148881542852597667032414241631329298397416050043201923505200485655869941159549724056534270760242611771897346667672373723850250687247338469899189703824587040835160636839360031461116130327131216118899842714835458326399202540180407410541427502764949596411870450029280266778129777717814580071618836460392420367541039943868113547754461706651406885774956399808039954152375292097069651906978408959319937404598761987933520173496017350453079976574220066637818245557661689543558193770523951644052716468640036031868196926319956779084507940013123566235340278876686002833561347896992178039657788936653121857716816979798719515330905462208917515100857919744160887431459146573333670494890178712194442811673232251270448280963549315935520571205763336767019060811328457700575247522613401237243307620626489485051628463086429477824487948511889109713715278364924547794313953121319829604630940131905950762596594775042770004087223565287347687624658610944524565002250472785311087575903032480768148624070097317778621510541915003615145085645499659533460535079075268534310823307720710989615655998341751803509358819023938592295984376564595442170396841466984020528746811774550191574769565784540281001805995178434218928297710352191160205978582059370674434697645316164670933865931842720673953997253668699169207178017195696121134730068266793571243888932764192951338705120623078495590501488167922569271760082134598249181366075416665482256421233198587557901402413621785731540774118994806110893656293852228367426455971643489874312130338092484449851337405324585434792341624889609621465391946438957442971483617043401087401781954321042369273773589343057680290925032344706381182834026589179519975806118196454390461816255687901515117134997434481686421937560111219199652598548838328349588280568479180517426240742361240284046320236660993434610693961751140540951634510480557017372987601651365157147859013262493852748086136168184644428678450832968064607568317478720858752655213952503532202141855269873525304668181448709311461464554790496043521766160382608071537791066630991940944538173046417043226965301595334882143496379156726718413736801473063649302188859338516656263520359706063918738093035766884716331087715354592280990204907526894793296331750414265705196555450194413114205122081057098406765701110575546103798484267170186475350214536001216184759604280531844088367693378331362665451794516833086317469519407229976386619775566979642228150334009417045066324149589488934705757061340002107269856812416536806923855974350463750486623664389402063380697540990422185711417125496441823025068628681655875791272901428289585712144540373416135929794875793294996807625249039808523687264657920935863165756506636265078668378132646096505241064419601625034473609617120309214192031740943547202408889619372539561213365251658855977801804232461465740990008213474433406999036329706750714115417819940196034229261033783335971098315750583507142211734159483800060367510141879318206422091937199373157462765004950863550877915674634546205538805246739086439622576577081922655389419561399525237677852473919891427708288736899947536060438956169095702195730547633615549518976920347602327667176182320755133450676355863233067118031982781084812150908151281658184078600607954456865997736927154762347690405594621269582189669231254963022589501108393726577937948647716903631004289784623757537137040198809445215824845151230106852400554100807103948360976126360035540856976269596597742319997072680500207022041004577638187461251667762519817202008921914031522829346209352966659600736568044366627348541880484693630999464782092729082870278250917444668040185536350220946419433732736319320599750407265754727676470375091664858751805440936087062533498847057923558098536613412637901405451819631745901721745720552605159790274000891212253707386950421288991244505444056660050262445736662524789654502565881009824167726313817744279430104159690907077143088559097999787660677864668325700283815658938733454468506762328832808483781475770372805567591892777881206048941256402538108711895930139471205010729275897689122019756266197855989381305570616822191045739105571462527860583497659920541062835578869460898259800931365735805544175475723816569434719352178349312574035465331335909746333142807764252283197101360137758005133959679240970175489738447963908590133308615366736129876143277120480842780233909256785511225166661483536798040896074608887561022089833210193698002425412007112477860893500902761966578252551583739915661845249279192695304389987165519659185595986091073984077023869029459690660372070874521734366130596935899948431162096455466806396818672530235024884570807871850321193431453986420034950150972068341963207791916413690437125879537072969681510600425327872127054803779102427734621195041863829188745947954354049285945411262201373417454631301359212209440738946865248646300935781349609689222001991964702505438669198021106223672415781632386175327451207192012823051358887602905243674571740494511371778498574085140773884344886945627036243550534244010739809631897171358692357899207562240515479024819490841062964371394961991406695602465362582264704239263245725323033106921948885823368640308385231512488152546127169395382095088527700222751098042488746953368348896716339798322618555056746015416927904880976884761448726384469622057220273492024333340746761806445435988177252910717188351907143544632053904509460630572330023708744748325232088799482485884565854564185712011085053786779228085395370003306089394984799472038099068243947860657847959467990690049946601144727493488847061094321639136691338049925175710503701942992284415393439798248386280622683504392005779140260570592597595013170581034041315497512468019386723225018832526520821447753694973014578847516356326594681921764535086881569864332797535542572107577638988824215587834197234481855417525851026230518516136422388405424847290169979718079711677247782443143887554466191408793173398954429904915293346943091733154464290505370416815038555455083370267949058874510672906391700461290008907870687516478035433620591557807162710368796435697460260433369784189166650678700235555879948462329465091577697561544646760702217810770252941211540889273968749472144164536348408128815299430022415105327356174520215637799184089180335529937967725287670440055540898348308349606080556931721008239622689292881475010606379851322271264366544182702040775419662808064525766100983384801838598842368727728879018009443707446040169080045153081425414626501293254847666576086678746571119108499195783649082989373764164785883731175617039315160153359870473103162968004419707545474582508408388506020361888168522348063307426552225729692925941293055086498367683615376932210421347857907724510608022841927862915222277219673251913326430900262319855119649983332869374530581262560261212093736986797165137627754792073384491224597600414823705593975975392657524980211485820949653809493892413892098966663552507027425593442603790542845963735982877833668745760165554351303153500717507271458843035672309673952490212724598882346143448654270490361200623326088113193745416863654708676755352226484939635267396213497796877634656071952082612157615346493973063172311420492525837497551418254687533066499824619834051282505254668616273318545278119192127603605657952632467363266226633608347797728247026983076519164533107648219670229973077279842208239412664708969003471874184182257043074731972924051434123165341418090414214277081997882127683894752592416880712823301351893618833319602219133294845696849957053069238667417813872421002739222378953369056033998784070683555831348863171787433251186193037034717078661377733797269087184252121502234192307710157525122805143388696454844449595261645946424680395043977638605917394602758222381395691592047853500920579843806721609842713656318414862446887560888388703509531214314932682309285744998124604050638922350484591867987040192249479859665381942483305230034190932136817827895995768063956624506940638289690185493972459013023582251613751361504912422627722814307598483679835152704561614433086672904354691338798070416123233517481510202682544461447225667976165207554413691989186704255688181368512976218258503602284825240147447437650050975410062834196182426363202776447363687507346543248974647875846811314475500447864657061682976266781510031131078485216614645955320787615531383629528130868120625260998657683712538251573884430029454001460813850576924615401065652970042386829710663901091224945359174776998317639838665960700438989899158468962838855543348086379764587486787843649801592241204461189762288224754832226477750734144162660481827030886314574014502062429961674524274901300519448091874781036290585784218734182767033310672975045873829252173482339265052546201665776291066566387344801145672112340209593913017709376886926233933494995535422236107977290262837972426546840424390568419415014461883548911821127748450733668479300628378518234033155274278111193619850175353239964516599171952012753517654736968512462459848694651198582865827316664867860429421409234943054271343896876914334776253107160332868398794579074369758665563809489759640701062121120380329244229813162861775666822273312028131656130218623160513826801671466847861609056040027698661504714291078052541911540718956689203028525113252910822508275625800812231076552817657424457864729245424718856677262125665691470111368244523064567466138426756834278552703299014092636675334265124867061096053391432499368839408279131662484416886942961441707624514635646491242329183746569846459580006257507150505741456386444361511890033764748806015871688554898240234692657769814539966828069039847232027167933162013191718256733734412570394354392970604256301542225858605583793534277235570653751254458329702801154014238827871095157210212403244124629229310107259741991622694620894032343560577720579396476187022900575702540398944512195729429651137759440109876178823911531777236257905638593321764484890778177532917904781881126932342756128017471499059101479962631687157557310737076159381059028560444686816031521517955757354046607900344778698949484891473309454285085692722851089439808997307006617205123098051783023897469759736191703471674838189093909103436314936455145623222870151656905386134159278818352805611526880920347638704890930473529754092151348660265982299727624592537143276102766158821051638741201002135684124396234772139809814650435990743984222418443633607758192016940790981883403299527333292988229309381770029050960083144645939537187884569248796808680843154388136756670084560923819516727635459205451935226274869049105335195994340650294741691492461598484388080528783234915736633421799151922961617318193090508834893449276984156613022348711372314837295307622790090340671834989547036331569439074200656533773851824703598352700815060457839774200322262728798456206563230508321475889702785704199824656487069706799334674942200620508504688877063120469954464627713024672933312100478272914372404739052926346411105183333638690122445142073871462297912821206167561988624902219453986605867165133723301298449538026212576018760720254215978381028560160612255263048001994779441025916140930585132082277313663800641714113070780666147547154399036724206727809916367133556149059526308708820822820183210170743285531905543196727570630767989111024962696331889836353664879916484268304604318669898553540238637185232465044773389749636838922377285060470116258942554266857447044416999626420108233363729252763781726108801621487706046132490723440976081493677442909388486172326443796935862048391292646893073913389502418466263128585942550967042649064721704531449378242896517997497959297967953748182202971287427583033128997908675106223012845913359140701061889390137895686351078347824912765670939193239877228612023974492475091950485505856544879688293854920465256238109265533062306743889598050117045967384378288058597135527229218651204297344046551625161044095249218305675631094724458867266007295377327473131349452374040875228509972493813337955729733940843201641834993551688140143740601686248745493463348592438399790162527882409794022984132725579295593242479067577853875495381434109546262225446506966241231099732498235751997893151205927721064057487541250398802368771160024522036365294387927819925524855224245317566831395909172245363092461137711873057851144254624557354696593124643144808510167344162762148636523870069675517822830838392459816987704679894073476922940369099991080916562486777057285402199112147160733650385930024842210567099536124381515609157940167841184562102198242798589020928716753859470715377425302331994501870776535445854621367531002112550740869526835546353814328711487048748952296977720493161471718733079577532874263584011170879806645123140259214037052244795538113985760817893973968770556363091804931590214995978670635035068683959663603179264760024565622006581188553941499411612614036187181575884567490194088781801448987970783454650047889140820210282060646908736962197478110728865291381392709042350245511574311188035670013228515192927760825457979288098976194854188940210803076030473183619512269524006535004739948340902131797616980253119976605577621070693926701372028573594540864160138723700849751434026591989277047178835810151278668721810268801698877467929570478595293590413628422938926752815461846929449096896337237408002875626480648496469769476147609509520327619941355058658163850079874664618657773813480677592634112444977041863881613644093759241992183801683654058007590763505098217528632431865239723290929571135618760917418322417460364782470284429115612664749693275859275569129321251088253958874479720779163537170737476504449917890597969593537122584480663787571083727030164824315872262012005527147090911066822691462861302230256730849323205843355994365473346171045518973150789469201196687420054287417213862472953708109189861721782846260303092019735501420884964251023774634706576841047654550000908583837319747272083528278038388328414591999487654899204429319874934426654967721650317451587010388179196687650204872788625204464787338532431753948635692723323246795529367473905389133689856503718295294510350623132344492610111712033609248141571157914398678923384949975379568909974261979474281500422835903347710622715359542210687676630498118262542781217340189033988109216006303814760497822725715254316254492677413195302706939786828189448901096108825131976709422285089777654956556646083214071033718059802878181476627742731684995764455604197853007895046641315159747690338733723763492933149191147608048796413281946272569980637616502210938321359389228789278045348446117932301491956642641194192515307696361032247694994318982232221266748606342765850462165705059738904999908133340157052770368108228529406323505768051054697128579289505181817612811732086714728988765234244808451014027243661430781022128720381352032670523996509256072770906112067956924711155231869386430826831576569432368418056000295139819250467937570187175633181273921363915638048561366289525170733213920332105158702534153875865702079602771829395103293556244176776104550257508480440250772846569003864492715505705493288117535347860789657241738023612418359245223004764355636431074131261296819819953877505180924905742639745090132494123480707985184742896781425717638273939865649292227552220530195079830763235044538648810916222009379860284007377570429621076052364354079028117230676097451216411522073373349227071566537340028837997430010304032260059113650516610648812483924470878249664414001694588782262853033818583404448190226691812788043178298649906010355567723447885417774177958258564304673555410452652665699658323944435384725061476363556456800060829049108952216154198956026455859792240145127149515444917743991009586601157916171576049475055813802374762732630830153520246524584527136574446699740336117093287708491647499891209448184094057526421286737389555451485991036909374486421191828810625641674390018683380331799145047806700754701426023185772545367267246252489645726120392426802152734378064233481666302449844393336564470962055785357158261470285009652557320492114148416179996876278454764033635411237325930490606857458254322873495764368016756254736279763130587535263487525236413457255245525150209961546842785356018442979732957448105311653217519836142702496856324470016142975502644728741815862255488325782716328145787678177518700460349403934248624758669722053218526049780457717205556464087754416131122564529752282299315578226247571940031388305124078374617096665285552229622722446648178942830077096895497345970274921005429115871209865480053482047656565529298801941040550940176093756980662147611323321864142595823868018613433668206920066726119864603083763073061327355258409398769636233649262051733507777856207535394554839104023195466419922793070508003388571393502699769114145159369182780817181357580205298086623417369340578510971655050712894514387669129974848968576070178789293514323215470070377546918263145110671615027958861065623866434893554625759263547868065613424953767561204614402712576442191439040450719757508120836803996298638296605875748567883629505658272534868420586602321131883488588423623659803946226245122192760551659142572093245858642407676767444294065735146954524948843469358455468668462002621761133824888188483668644798624627357655570228935626511993395033589222690057958860124840130571886950658373764749495022089497538843875877926966127488661108464074949576375797904811327138124853547379969895785357813929918751797164614853357963351578075016720469686123113161642338862123574637227420418842071238563753859239235054594068146884442729397623352360124850974170512829877981245112224337004270889221784374977097083971260591636332675012017249157915845297591107876224587003805383791752007222891563568685911997002358710661115849506478663561956173186397559489034831546976166785224759985767964094299582203922804547329098042536806676049145476118709966643581682038909641035895122965914438498253628846462383470859874352443987610562654584980241467125491254067504713268472672344604617163929604965281934414807978084773447625873235483094189134959264067981708548728394716876438641656928918155917187486113016124045735835042987170506045505741805728401441138419889600547170207767187866080101703548277898241239264919358746033977896516455277086631983793880834096283471785647599650116029283101492530763362303270507537846782152868734825619055584883237930171552853875856833555064031581217819614350511159663850616137504462774234741590258944220600639347565389738390016359347188113579837106061440740381578533566479057550995062096729356550146662177840281693271450263759264089510237301685997479097442687277952208700899604782536477303296951370191038790393936664827685619285474642250283195862826794512535480772591693261146427591781094449192877763683859727669623917166877986777322506022023475731128619808034985221341329743783310907298124429520866971656372867298115929410017384579118847519709102270482962173925479573264887391659128598151000298404336868755207978298072576527398953302969869204517424309671529818393112426955367961360401132978179566270005674431964860454066504099413094292601799024784944111766945310850987881514472196363082749744530712657766569140917944643782182790958831599506211412284721313944113445134307079528315311835910820899816524718062943342317006705482539990752773629411128667580242065627224033975525116078379365354998205690309596145535688257632601320972381137642336024125324119918160424527416182807088743093199608060475696616773545403452564836272435375644426444640592813539248781940094009962969892889190195437983059407523923153780680495432165956530461656378227068793449583553532616959496783407105451928772725862784580683795789946867571646902570560986761582413192668119581750347239515378079062935689230866970449067471897031856869492162103219399273307811490242704520757910738763004604580185393166113411247303296226172945974582663436076732519569859775986657621155658622529470540475238249992515411237849678622268813113726520504668316740858304633676947207550554909801627974380831210453053440423501409950986320028326643344465025730552895977582416712499077641474996974218463350516736800560459702602064704087666657922382505280045904208917674793523120164147263119387927874268190944948812574162359332078662115519271107158680870689610059970633975505984824120669021066017463829537765904454322424911735994520902563504147468470749101744849953371127730405525027899097859112913904021056175925203769144994671050648131393175135305778462584805369305037306966782504935717037235058829128671816355616756196720193438002466452077775881165643506453633339425600765605280067679778737413617853411530638990261632002876039508788264799824440927387915085008638274332092691573035997090814327889923510297533647188608480484688829813480392721473946346095822948102668344423093035217232580666832625755301202382001377947829615776009073547827721486873964223350794624180999519438894421600053656570524872877183905018538939340757386818776705709327377489916528528672238171414278636849312908713354906892360647318340392357374970038932547209907855107987474842022720465426274611249560540889751920818249967924229592209684824527133539439515422449130081352614607322711077802160981177255122508742229807628660742579547124162657264182984833534332830730894943692136269462497847592220157198656321605177700061402806779822111880806292948226015668323878190432740996316785648661554217452918356250901222390973179374045179920315622428556131406391456467960867738538202759723530711492285836925477161793916495791946765054057534087770402516611846945886883215135612960940161179002507085392223841338888626630845696297748609227868078456826684485453464810995831763106018033520151472389722452143794843332313636034627633242539733283640405492709111389843801811720915278913623348337973269901810222282817190251140918296989370543868904854119633313673913334825687144058586794163699306212606008038159858997709370299902312557248994482383677671006000442701735248527336694647720458024387362847991116778197577016206318085271625322891039453353109049261372775038004686413826188479979986426102864672621081314273428817706561294220856375640296740004376426784137974782765906281335983511904040794359626512756274609291764287332461732162470202203095389684577308079093469622735340176501344997094002363476555404403699539515877756949094763179311950905412286888992344306940053819080946653259091711106254064966716240745243547828305811068929663789991513202600672718563162381902773066468358502366217638004660447974510140110873114607127453664033936282878865603528253772240424189416376085700942276864587875936500499026570311720355128787779256691742707245449129779554180407105318138147314977443195603628183197089341429182963480081968826400988510468767711994932937619573665555032630968060186894104937649645896010379407336551639811500173010860223614316287962155291080801946669791319382544065675878592892807758692105061284103152894841493544990235623494885982808531076774066905656249958771716325913816056406764477508184195349839318600884103535413660295760724439608985712141876555944167674135898682322787718179242127891277598764827736416687725514933569011328144809776722744251885343573312586899604528197367819796330402366001044705258483742514751115154717070817751066797897922346281997942460082815927342842504453923868620183164320586079088553492748415426530753175013043952085759342456999423504795716371004918591308028766203448566789340207757278737082358335276755452283574034881179305268267206514487929167902008837687073979169132187438542993366268741568162934185392241003210323371019738938984959258882211746555361533722221169330089223957922851651763536804929502672417445836248371709676904277765059477092789116423902758615086976096480194824672337195726853427591970557446337729006815010042835490982431306176353048120455330498881031401643073056264182816571672187608142321101725401603582208917554063030761791296520564461792395748614152245303295793396541688395922667039717699051989970845917491430988685114974174844968979010914994949212576576274440967892152370947663657937372235516858265703517028604813975368820203633625923325837603569918926386066215891503897669313541743334635500228942546348168148227906958312601722088969955177857456452215155547960196241259301074429772082977668199240104909410915635500439443637311405742790998098309828564890679610166142728483688484833946173330573210261744219465896559452268724539871199770236651734752157971382481085766643027456074947926110485338562597385936662772929131242714129974461487204111778513916918730576069407561531955260577908351744774493423248209775781417927328513428583183093979137548657883430639796009564377304325092016171919683823535918642077240964297531015248522856601913984429440323164831630974549564706161656978814255069357484446014081935696705364013119931315881186530844996639990308773205452516086409264009341155253192705918109949601771978573694188112416296685774956739945018366364046420315647809287549381275895593360408660731141476252227243861425100025808682789236316823306856249351286487358459664463018988788460186936697104415177115063943622926430579318673824473004228908884720283037001899042039069413946041288341052294508221604300494700402596607681469916948289899793446594240639463304290847620089488521902787703115869619918267995753235183845284927361192217110717098424370990258160086848295642397405999208920583079971669729779600732146877534896032226284999753423643310503887817586970839345626701960272295239549623639955985853734711363179130386639009402352776036330575864919718938714628667169776035553130135843214368966064403534607073102101850231865076710893675079806340420728797355765524608647795820643888395675149702845944833789557848861320260502056835303654923000883854996891390657794555860490717312535567870439161976042818059030102119522735591457472844264192946827520869535434713249961111685823546146603099843641902040100594247107297490678806013328441631318785033733470887342466740012565000436774789167375326589569002259661258315150509588296770380940945417902732170844978196512735419407029920183096630587605514708346596396712063489637655382343546378560901775946493876889383350886831814925008641540054780546970970439187849080013515034094172260938947144250105357471174602856297002239771453372238117536916038567902170835186371528453173996146324229993377983032348569900539901098333830566082628254148070776293454802441647180384702864511417131452570320198131673286061463648980749968455808831478191091627886077615446376817438796268170246192092903430541566094539392218662520124185547677999408778983539681459392173634686551330164164513349991697943963173717392602546780899299876922776641265807857949374508319596794055645700807064028625320614501076164713474186123383871820286141943072642558068140947844141846735658491136468027395602619758311083138469719746146934665027393401084038604265758020913848202040742034226484306296965393577195954174607435051497207953200425276457423177553969209240777682800354000229191981358041017484119111161037183904054367811181844437424101661225468802879345883809716237651668079782682945356830709683904918934085777989520361564777977127356811092806696782968748270280891260422294057566637384141979891397430870398310981461389056341055075483480615757000389829587731790634797465102573830636038599798125927146802281547791848773897374498352781324391070570559652298466476611985615273884752988669729205372189280206937865834175013728052053592016969152638471104283524895876156257794103088244733417590027480129807850511447875103473081824809831574139720228076065200519285748609941400005367312777947200500455631718677054243259684447520939124607419289030154475326183250904221943906813545608652681277758836839819988561099952344754756895768695464064854753160353507614263084270701023355934718324757627523258986065568110416438207701271057062133197924736910933472486606009959240509291805229087607208762620968279604004377200851975800952101578182921412321417408707112558691778333902268659900348549817451501903773847322754278407900953722835531848817015572035189902960664636330479357799189604542829848969497810869031911612067954319349629248730219757216724039214969473958503406023336535830821199362558891368361416038045535995986298945561829002601781389510397214457140005460868906590456950507847618136517433186428036713372160996808671174062702249059797481205708666142202980546418471761332565578024131394097296191354837629096966459872757409887515135182727783440035689558061630433223009855649249039292419598627016151579819448269722271935348188182037140976266106067665223955644030482771291472406985917773111336029440405469832693335350327366664139557691054197462655628188296637379741728950382137050403908870190413076458249345187761674799426673097558213633910372719924561089329454642354410427162609112423718016159102017590818200925431104918978764924185952660653651033990117106792009846861920286902885842265263192209627682363525602801376969932520162674783733926501373816319007431976903650340147063448980913493696858432509112961976151627653113449832634849578742373008417351954121472084845355222066757182204635837844481074485530388409647390243690595113222730140892004030232889087209379070253982737821455948734799232527497553556531257521702902601630007734398395260606751849582849818584134909276040607063220390559740094745337286141723075627145651622525259123983852121399151835011592069163841130300519672417550610441045600998988456672914276391721550037629551331727822566838669897399978872099427146169532411033976006034677623189821619369583338668459933035485244618122343467486106972977440905916642764797424376721494428926404619240192817629976492924420938672058440815592472213371104617770416335587262607927213288201076380123084768295955390389679692643318572366187810456499131336617246774334369198966183527572280141434159233820029173238680034905499282935717796211535909023859391862953121198048385595896065308645955888914043405968766902623265190809967571209832136472458086318235483050093810866533308075554199778045575325642058783480634930323165178643500387365971310364868903159485282258258768847323545163266583647294205059917754279394839510308290324704800702681882639428018583534533670827534443909556432556274591829300079780614726277526958603217767900150838509375146947706871995799895009689051994101683021805181462192865026341925374145067039324134441751907716968152707925699775031042191905299271852064855928123748942944582498610958123287357154326026894892044754989031196013400748448490342739164213672361516660396477786692200632745816864485162056276164599810543706877558189859085980793062893479727992557230383017157449951974128624354349170365858440527028147085982944738920433690873111904568809627871797941888965132494219938027854477486061953658104583370696442477505804238600161344672431255434930039216047745370171830306972368258247749541922109677197499145384374546109574986423004063975727561239371487609744476460708509738375343117577059810443399376057388229772431935514853049378608096207798991687372053493842579967024577827737040581420374586801161700297717633193247793906916313468950599330854362160464693808067974639325366587834178923973482153192696706071731472159646022375373334280775443371004971856344230175165825093886011467362559188073282467246079572261590249805668641922387008903863146375333573871290747148127245262426078639145142979896728886570734935110779102294738257291471124400951775744116991654936652810396087109759764994074749904058449151057518019839450387587670978486642142506631917007471537446390391181407196473434853571456223176017065986197817969494220860423786517110800431249312238675296588448609958613527077342610672645990173849063315934338774440788970031006027752266198377903944773649678408686107143525892738708478142196243592680488662469177677115808718751607112976105833780669825202645201934901385882976589515375191508331665355651802666725381008271943205599432539892453701256875366248155451741246105769251601509847139884400417759799415237085734062082573533338589935053920494540994110149443347887939525861831271241965132909388525941331978713378612967892310842866437993423565347692293659983153142607030719050177497152229008170838871171983228157670727869655997019173485584514517024999759784447544413491761409301301204538591113010294763870383805444437506877503348865954531639037312408218964404776195271862171813575099686287919065983097209695047029886884389528370956977356621250160800844513309625177118315900244164348243002076212243347807473881086357415659139927650376901775776083018779224968836174550558278861999278451547097759134105080639160004669618033485329315505762104256435859345387366018224951014429304440247425317635873521810551286002395608121148472823931950070914379722048626221494360706451566682477127394796151351341549359307420309461523545564783943431492253300060424606329136139420575964390946732372670124596503683048911275421380098925984545735137992261369507342157995182351282077121939963847292459559677639011161908890451111154043363831619619727404305605589452577823919603385557998051769661653966493879159184734425845496731335744021204183620565844916102072782598474333473488690249736976261968359380558885491115728876423415190559809321458613184712262868781736119189987307739406877738026977829909306415143368073749469525395241368032759442671020750148775152167742990453164628705847989753718767244099822259768824332178715056369544343624289077345299777385644128019541692259900385244212869373921034541003273942929388585975168607102256956193448177454835797348010754980921327783718121115697971911011548131055868926952416082956515317010414373946072320298285740600072097675908156516271211485060777955870387834186733221298780424687428924281079941172515252920348575737711742656384637751815540608012816135606578230115185266562070036524308022104215173042835600244952594837952340300415783342043224743374596520702395326222791733874420006219514249446979365581797980767915903713352025435473081928928758001606795216296833291244569822058773290642828703362143894166722990363203661427883206099089896197048727487706478620962076974905661648112448335856506549386254054670110205744601159967041336339051148532511337629323536350806437891181906970014601685673948121644587881875847288471342208438979216696732836696770267980812599370150623431285502259325489363626844451718917044256769182115932278014889104402820551044735980925222860473217358115830409647462471763867134243502186522958055760373938694266170561050772740017720738154004760252815269242571722140067509588094443433629799345384473630439326081117674843980336083936347886813318957705375599900516334571456162169359241451226959863719516790826317233892827079898884295193022530668926996615588400627726314589080588310875011520821752078983170466430743150261361985947093366358477055751301077035432221957430845344281435745666616312970387717583252836182906233101695586637906777822244577181634554698474444811082327505641695817775030792736650566144186919854784241420741921239636528229716624737273778986883873781524531914393347144758263344792566924324543098264919408206624800817497136725737455506096585547713850319044366499075781060907335266214086302888616885283402868113165135876261400201053128011234498446330237299712922617598313298475170410397844802185740081985196882281058747639620060629789730115596907870140401982534665659914489242941096352715442907620172640389696452076033818612668866584091506943307812917504250632446078075424882560056967729209552454330268996796458439539528741828888515745050157098844648949261473220774282565659244434677382749634025327800806633903279782220192816966468808669733991224412880940444623280577716280417146680108108396284096772410916613051761442648132076571973657035184267169267384472653670306690202874066877029101652169951194718607307344661503535759281377905915697275942442934166092115538416601565535913943152308303212271383203417179360499550593148850508800507852886943909827613220675724919716497013524910308164805916691566204417854297552595094198569762381954314010111388552367255011554862368313346152187915325996579830445274928195291750066679303425324023897326708962128780834167221132876002003181082753179201743459114755334261067876530682659483748016498765331069117474547810862278840697036551481315875308952442252372124432482237173653971103751295843282273378752648374144197442678478661490592800802847504815098261207930350503502050416229624643143464660781182478192907093098058587551987279316516802458901991085175092390409901006240893600030129836475379614739029488174225509408345481958362609999710024874758301449011346078048992416144067045660284866272267275235963023908713833573347376624625901395307287976403602534051160205970790187704638843354740446975860585357098596674346706385841618939636194840938152992145985257880145203092062955932159018533103022708248369897445686751825134979359702078344159072918684948172879386348566651052227541158413997236026135400844613880642185877705430127599084708274828660547626686461271233742313771379947403907748289440879361329682257821383907809932933510670026386162550808842378478707094233560095743520891801547601237700684057940229413703451087902803656593646558006422698185656322506698086195069676200155909327751908768856355105505870609375843122519666070221019227560139317669565350282136772486626185413755840155329091621971810543896627366044227623967603045714244284590457488661436900775254005833027135216425146612052405822690225202966467226545260471372533523965402546995233346445077016372172967792770312478930772440881643323946945761836805612499197957256930314962739930590326610007875051864292799472908878837296954363488431534934098703479401244400385858127792213957502311520944916343394912005305985525498421365571840399179705631712211910434199119185128001794789040835620535602160357035641678320641736681131177352690421192990421323302049644817220405202360068292573244223804446627316690652078740770218783089754451450215109165158568230125522776587773925716660180998622396447015525870204155703476422358824160236992210888083164227583513965557445761267333152322206908435255969808292044211597836095568766587545622646760477670783171703466102246706125031779845266995155245407018536178667563262974441095687542059575391930909648387804820809555759370435119967927976848640045948882536844632007626319665644603773617704386506128842950596076571151060041629325316560391056869734519656945941701323662773099923928104944565434176094584266474813273323842156771434898761675087494903875624522833967189467832871634511066789740590509349271418739417790046394746791923392534177631366311896535069946185901200300911036849703813502118418436936374949814742403109579083794551717389055481947833144496618308172878703049264217291382192996234631763365465304418106708148946880078463829422633696806758112674312546964161768044771934202009937399017866732126870857996852829090386933815423101529231342351858941755690342638558264167778924012125543917437853819576517721890151688814223851274495045747470814727477241755341328273170325252840559941545299987944450627058903648782200338132701753204897651631255559636216368569517654303802451610692404925612317727027088452875196323826839996725287998925653380660251825418731292335474938759994525058442577885566535292245659685344307406885279847748987065848526519258644431671107458443418046747743027147420043104124469058951765531502363735807184528336415696114107646697350699529378750171221520258902857255477698802095255916907333705135709862644453683989106280482711212585647475803650488754920730234959977658918464929792558518787100000594273872192424747367213825312646861272396728557311827290899696420799952642008674063586499357299332888195367360578139623803100216867266536131729219528876549531263928940427296805096442010241747264883371680470419429930328227908084779428781455076332049157861460368190273410786935782227633836774655822472127655875469565613299922743591850140089488649606293798531937328580228023223732465838695680967676889539815190829072247799544408042334747271373567010718569540883814226005061373159019256150983185205718519342818444108676657824826019121472009462341343455744171716893965811376173739762565715149492620872465400813333955630497655309442656863216240821202174411270449637791389484523248807117386402241419410944528616431222694092527560283827035675782870463060260021882997813820013441415086810624308541931487006844522560507360755472846445248765246190227508712559339911539715918540194914124033061664392210856201049872243764902800364118480460947239633050417724304974782281712708467678099188697743728277087902545424153427252320561620469469792116531656478897009718290128311842949018463103223739443866655646692630848147771464072683022324552101316260339811627186011771337430296966045773155039085355410888852831726671563663849790571179545534061683734572347690652390509639288770746683229872359705353479895833512059627114199007131798180340745628820491849208105558577324197307316898384799274263392060179949148349341894915270882643671158847860172703383584851086720136173664384338309083727611303725603004555473958375462267368790050778102964489055867546807004377736244426566158281493242173862749913661497328942426714112967677351355354991651638050161364548389297521204862823379824884130116844771558101762468627226569104358891821013045619386791894960585410650266604025298755243601480188359057169884096251929976212471190778263966085873447254409207630121807542917398526699621498857628848731929660137622201419297540373586634811656743359174784516802050553297569084467782055272911080491549871186770346453421610834877258311999720613796578282725077865284209748173398225869260541291385656833233110165710124646725183090999091448568826079425777124881794635067126662006167080974354944426157580666963907786486718697439314329684723194375762632112261344212288413867840430228052427616136491160538115240743090432031578545462862170643709183062256292083060573905022278159698228717140252122421121208581665138638358775295037019847547908938963339409160282136795553652664031833566231630082443305643684919200554020588890494467972984164841832064195546500196443914932929954139245072543535163779512535989133241509658031231558345685917765441298624260594282509384207642278285791845882253485808058276974074166989491808774488712934784541602821940240633935945775123889565269826850240857233848293207524664383194554123013434052607107497151655778561881530739649764385007493694009793667765695433982987051256116069299983571536126690381428378486999572697631354867965611299269076757515520726732727109960081055516142349273323215780625749729861551909070360177261240497450638031795808582222183265798443094768239554163279643330606397342319315349253289711853724193532442830646836037884114278621108444900997263060783298659484240511171193000232877904847660955245623931425406432876886616805893236443295355564671313253398455214037497010342259853928241366475560208071916363402727562534399630538458879698587050898649581158755469426928548469767149451561223315416143031971777597105421780746847104564443105367865232534066032351019208445665935865856681475447389242520674810410726765353321916169410300852884495363445563251791326357581758536892870492672892212596680919396075110686054674967967445215798194863892839246085687725617589415349374956055512995172591112493921400807136727714116363183382831274110368732588073150383120093324438170592148516238040143499788696849637934846219627760583192951399971580054357817491827328960287894043848439439266828750402155276844563929900600299086932926307000462288627805748517235565775515327340231532831408265079483620949430540255874650856474828680449404896901292274926916542788174048107043493492023356151630940973418813003812052131728142878344251834584586071066547106275867635182676000169876054922912904457454274278559207913688427199341622099742638021441623165080717806165630040294279866997545040891743843455628775110484745879883652920194831000477375374568283053911765564455596461200568103851282334020634802971358448981975724668950802997897092855559330390419814232178341107381807296755562531583434927125994700676416179609732681761711290281185895260051590774806621237579033329315397955200393679814990180934120744105949076389617050286974137299275532033150914025901027230478691132957222711667254279327410048387455464978697669458647696171163208185788955871310456813379975672403032114875646179262099764065111539026445584293429468605258893227761669050313944302169833158598684369608374062296105428038083905572369460081991454285523218460678893769637351868257715151462121906578522832895687989455621778237749572081108125169025587393826025129973559392363388432155849362515575869571637973875570884549614684340613635853405280219820831260175589537297257520604451428340857209535037441095479119867841433990133822673035106597999775322081430622796221066872315342595364495707478127001773642487119408913193786976364414178555952717907858253262064839811000199857470436783848817324247804721988416970623398104556739156637011111098341352670484181193331522479580503693100753564353817374769280677568826641283466745725838215822225002722940661544016854879412376462781261475642197209777088889014072135380948642416615240454799899607012671250862926316148734555754774869972866022943035982624733132310676158592121254902663576052707886526303104632926856812621951943749209405741930245913840968331669474307697401931608957843924498324275997875582973215891452929696171165311380868176783308401183528478725320040557998236302578653688546568471839950389032370832829192874671726612454499263256695636564526087249246588069379907214406172734178096258479371050044917207304832369961910957544364992459446180041303934254721411057716050052559045813742124527525447654208848092782662315518017611714003756656717392999584898336119417224236124741221889445889249106095550612359577738849843110199453773297354628576641119052963353333177198981939565387675535507743790111805106005124882871656896250347621849573826522619292924168018685592273686736111162331688473716804202065560107365030523866645460863806463399188164523558736718016657312228487717878539009992858909395986780975348198631428185711800927552688819067425688186098229718778393488134334336644020415816612227154068709669039371580863035159661235525384099456895886127609619596222332614323882300544422670344156072107797406686352679318973282151723884057147044491731784104930709548366601524900276806248055678737203939725649616597931400928621046978630170040385199354068045283023270522408734773691682673932013457198399115052764112152000449524750894910150650655424342788838989347184208626782234794967879010635081532797764364880592170942563283563787048244663035887422593759766776332313937879073596037411144625796371108890272570851615915324821283453276585060222481568548925147156369129813045856964815585090506477119756623828047196350023125386577094376467620491429946124410045515611951821681597040915783838705838883679479942015035469247355940541111047958531123313399117140109199807667171294307742127688813725450371436625529851740856418648430658086563660996951088831205425136316760782113955258975430542155806654340403197614012796914531144096285736035568470398352759706662320411342337015205448387640929303814522997586608487347995186124405055608570547153056730848281406315766873474369698930984546831352319140786938533551423334199954073260708551245451901389523192464392863499485043673161071497240398390789863896197256222414552848757896976652091137267439237085881353577231841661048642017662178277285421881573510423374406411619458676598114579675929179496177869570072735139379551754989322305235165687959232433895090754230535939170104904492594258796066545105596196143338745039596104545465352522112088430915636271785735321038317450565070958837680260730192210011974757950600000881912726059822262508831934658019412838242758255253759271874732917538607435112554573875688441729722730172966231160315185499856340864220398896368024306005871930930439324402582451047620199540832687248715467751939853924648082731369112917084012649384343475256205585824315849321746140266416162770716861158219076041445262139417464737269703610353712591849785544090489144429675450227253399443480367925772157973818409648622927259890047677321025443847105110421469635931610606646075399610720368146826044069277190723344597928711817223482198505324018400794374025863324264521019361276936327932735841814748121489071654409560643729407691459882757870526053034575920468255604225605137075903175366856796669359767156336679467423265508450058477663693603316247531456634677549797253712746294770262422941323528095130033500797193589729360942905487328297967511803611978238481255075944982954888163943668158058719620781151157936059499778798246220690073375606494816598299987791806360390610850324599573689971498319407917539777812178824392931926009923480104770698345479044063819356795193050751666454713456994410143387644508419179379262784958801382224716936605713101608244734772569017704093427587866326824540377987143741690097705739054764794979585669771464334337947793325543565699402003347748014692686734023094309360190542168931574323987335748245046482165333081811071562386807994921077701919430132057225014932734443347145577724957959404028717981033018807277792676901036833225242028394806295336671242478727857293893033739996413284998061385532065669989287121331589957302237052366609351814876822943374162151528246728330729138031442387682780383334390254984620931645175034560478915561885618673644085081199992271831344424811591050590050232162229299877594966885185054932318293991263727448849683692958134513294105645429904417163957847985126127893037318719539954148980358841335845996515472580646734629896731051608285790805112419254769267076128838980162376377160710223155736774477435085071155254172499357054775436905230042267244195486940622333148728051601379076413229365642066196208916632674289533832402799835721985948625689508346742359814052616603834882943056707173842755161199600097059532630764880952790774536817090356550392922510967089394491115249561896736316196576035276551653227547241710456493579512924760673849971525956525571733278509666629816182679994386142026704780655076134088164306780901965291653149659214776194944705381093241463933463409689542475313815295448206045248569137188004341099870847660071198829942427268181074652172893187178388672487732410064536642762903237492329068270364707207538904661259957844806067211637714261807827233967069314844359176137295920637276597564997024246929893701299344258537090836576477202219229211859456073524516728949335284186004900071557554860951537159338677574704922779265048496418479349036916815139721931309348530532382241919279522462874907678982885791719852640642002668001498404651239534602638969898961928415025475718515902159834341865384352785140776641564660078992330407559334365326374005754502822679793063960766443788523479198117009786925190158863562078827419441942308358556589123338691727342460436019540631001388181411222321060444301753870696619369639675175573139530540489907252935596028928492534335293063671862344633464558259057395633912806040836685451037596173744524866060376884529358594494467208716391394204630500791276130362884787879289757492967737767054917556694032895322329131950964213385346160841799069594318905601325353009382196916669569613414734138233637079456784150290487015388250878606012780342283697936207687728343652254576283229704889083657923561770628777251306900889497203457695877867959176866533068384756303555678276743138575453691759619298515535150722773643625818604433206071015439179403390637117756564649163403228473580668554731860366802434629642536776716215697148204066101202671853258830250184277168644730585431024197829734379483267551615330030675641646595067894839069951385037742769060827064021050624380852068847139022712657263478581202961527347107692386586294440833814765012498910271687253896599644023940264666834170045962121246709493380649662335996613298883960492550538501331309247429160874895112946871012641161558665555610820606342584735608093776415448765257128139710674568752462627725611901565002390750525517864072052550738204043778464584269439761619448285525874787551870648515381818125355960999729119356034737224069866870732601914387910309407051231663695681214993365381119087175083894135667173068864309287132818976832365251389267302166147619525251525166673341624259904544102030670645868297093156312643771988792906564434186457397321445566906583754770630586481336335721153621206763550841742323234661030713740905476630023625866867409638219485562814795836549054154666800237616997449812745501294675346215539999590031403933264081976407828538074997843634624502463529973405579532168033389206356027312744083523073011644125020092135551016322895064813836355133616505737894638047979735218589078207910468992005904970351511723911528685050981769587406505446918849969601319491124235271156164498030832414067193034214449137132167065336802349340629826700091342586173927324162030486117713349505910759644356378371738705252491244258116272877540632479765272165875174759854731993951591700038417163746735886708068745072978884259249893234607762702170392905790886384815815644577577576866773798441262026457292385422540974441921233651164374260873565766808010328001026463238330829682912901645447533813459138949484696528532568023399444282976656553370606126972681647895053654198806796819929719893843988417548050573855699812537399829408514010703253834244442116331886058527434515490869452447691188773302470262590342240115989687131067886939714763024000122801933318581237047081827428167385443564644966183787731884567615917205300314206709501551801636620121016372013954353883076326916844824985705334026937143972883432105992497096477970418179850940601577513280748478721306738950386036824092926804855366241611316116802098664396981043961073348320218674819804404188628593206678475027245359457260212784372242279663301365890918122711491703342307012863690776122684971525001317141729859924878010637338279651573885352810687985627934081204372406399078721099910240489361928736161092226896067017535771714919340205864093255911662309696551576056439969116996398728332212518142079626388250352024211914074379916262809514619090658325320349914705099428100359065544450012647057724734591652637355080322727450573514592116575509487630285169347770470140820172575417399358156452646620213781250134296969873079560096560261288254470036357340801329033461399396475618906193964492330573832760398286844552182645693856086028610663130260928212527591025468957664363757896069892632313575104900012698729681053015232100082522966687680183889586633121161583019577875508751826486904259709745867213907756690638734162996126599687929655533107084814911837462191187853859095656579566095849407602015982727512257489525645923540161853497265125387029518693298625932613865933272260429410709322737550752242396021040448389824664164783474037079110744612631549389616048931562766725879350098616605090404849430756060898086321568774436054646972602109037273761080695772732493057159440431409964273251892251456803951726998384899969352171139228814268001521227992686351505561211733498478263790007969564894974784042844207816849712726524218974328424142542116115775588054094831979243515902560374191058197136375215648899177080980658744030261356408322261924856025483276089058151937094341923988279632764190505123849781481533622866410873783620088825815086316863179405957344429344747648594777104210091489317980854003247413549532899784384382641420170355746319660114417319104064663675348697350396111781850473783250595307568651632516616006289167133683787995792244071231896029914633631053119897829489247654823304563071442291700294249840739561415415925364656670416526220186288868988051583202124333894548892760171304182168118644864338675753321941532604837446885432272949307987422876382752672393802153771254336939359851553506688935196666349383759652778802176112586867693247289762721910092305459227270528312167984137651365121209843173988589012442582801722495669223516730467487706746117364217003680960459872385167640377290489184501749129194244734529824564567300988678629036036738588288711872374111162865183636580029544603074699678228359457930767583625545519958509737871884130448440821039846557400213273415661624228325724481859973385379313477821412151939233510204914118409701053649081999818807340983652812041855007922741197572594145348297823683320961888981543709294779436877940171522636364511073987000643499439233679859395698720378172804506868639339035905241101379479995716286557525650913235520579458144467223428703206500102517488945831892096180555051786404963878979710573931275260450144294866373924536729715060842911157337561866390126613791583685702442992125633989042753052656269384378362909973287294941286843757646527564190891106047576004063802678340190969484865051828800747350028892776184209537254135647205355439229707662635803620569818762800609684662011370993264182943896071614065234620644978586115014926026765560859880229915633271899278095643674956918531964406720532048875983405322063783592005365556567944975140845447011767569415841898830085332749922221860224761872200563238583713678604430776849329331490045355751960163627163671679406436094291613583639117552905074871332115147752502235566684744941994152188657990586171379529016154742261463787295365302054518989325662986526273737563892377516982758460520981379706208969111719284550458696635418575873884365420333909888368655220323702773609054377785444960345304169574275804815652913048576700631201230173312683931388727551357153877504580729210358987827048408944358887187171101679693342106225967226908910609658103728020167497585299817286508976658025022956322077741429449844899919244402703502235928277719775195304184627748034786325467044189762810248992402224745153675042889621354019583604043601099640780938136726181046244064860163508417282303107656750692306436338550164543266481724009225715209217107214214816176716715187891504713337406403947475144140649239988922048059704257823992331758897044926335856676920195461458661825776295573635860525458486371994805271070951365481739574498637245801712553642725842602274811976327613009442208215364151714427813253534814996821144819014060867250684159006767857036884383099274806580788089396565505148656624103281828041101313337670599578373269915876612194137210483622598717777023243932030636933582889444359243528866043428564754010780800580415983256860849314121391340710844426474053591575801445411996259160644370787755634022398924705652378855116117928647017339515267896160454321368608682357517650248472207049922518275948290143147062713025162518583823264264450429574650194117364509145926327120304862043310554194804852015077812413847739795180303533357477099875434367147373905956196427646789376226541300678367838783095187805137128164954905574211455297643894480687168708904308431911186528321939841984353694996758782833114379215797250065071094796207796910770182989189721723381851002954223564681849397468121803536921655352028582804183384254839871842679592501871079255140355044146328431865981266764829469332392068903406730972959044793506439989590797760468804761343516266041298413257017221711267644589987064517924527973906765067260661142605195337779080111773843961502450742871824352541048900140506871679624618809237974583649954471983033717620202277869228225856960670903187786118207624097913766917074740135755390845280990929767461183444717581560508903926199789116501946062257427572694964697982979994062499891782903206773964900094676470270524844852146371999463738510895110331618430032587162399956634977145809318261601288105035945412576793216350280833599624570573165649386317060606667591873878744654840711781774650103362487783933369311339325837079551365929131955797433399446973114781593325592107098136598323298757558668736561404074331745527345799086700259603514488692147078305355536446920569732752687794322244098336628183580280156667358937872143724296776603539552817825688161736559049822333593037337815667663334033143231602755266311587447956114887359595606767455556257136161616239730710524552850805635301206413612017108286843813213900079127219248273322217585863315412383415065299262542663075460219058892244176287582676936519153339080092555898887818398757965624933851588294343371199653629041533127291613283573684032923954487219170871854142080193445128714358035421028866676681038100395632984773858007599150529373715372747825325258029040200736909059231298534907905359468707518442931621453518951784204646993690852555649237562004254134294795117030010292371081766785841870432687635332282388957489410871025030792532413453974477451920913501643980944648650849614769229343666243618479913422321320597251433962336486514051278834442546454822457898472060134259015930106855735096382372305499026948373435132529135886453629243304088562947347652028175352680912120052474965095849908419710183699046524342754831189926148704671432709120800397182536535139937749128346449434439241815704228193663194634938742075957229222708097669344081655650320762159620551202615833557889136113896034553889890954527759217229666697418658014655269908454056745672957390446530709163271002632707859789679869327757648289584961895606946929248790270497399924517608056248576837266136961948832473366597721076653371549647288879456432872837545028341056023432150178096821993967882923045802000044500025048625877418632641370924217769729043494218845448311021125233038941332786893059492291893821490816479475404825601935440002933850651109638232965164364151864776358981961705272896349574108057542728148832089121035815825050300949161002981571229016904198133864063464291854956059711227526031761184378474777086693050139661974411006327025824281347765932199673697218995805353447528007660645226115916917658452768532663006130633317120898992437023459811935288032587589161316123185521849870631492423341974581427229206217713851897371558390878834645690583279972847676708484425902284698615900612749498923109164680706737852343139610111221558345542929015881423399930527970798087949103336486428572211454126031495181114934902701889731277552208862828383206401530360869404760186377783072954299499362723268058999903082062727746816736563819919396953552438577722981570097373510861151735955066380677541662517320291146937939801130361478405887146512120392645859957584016099115541645082284734624902147142763979956537417234481087753783265506768369273089773589544795075520867931425869140150186555146325188925430132415148114937275483638805716939466709685165425035142363566146126486798058134478455739249804358725237316328466559776564214361474384790340399321702570421627081787993761895499510216044838046725234451156170803977467398945495066391702955984093449273610188726718624461898648538821695920951946432989624530515208657840525886779105371003346522246887267452549260971132079120892617599598410156024527892211563807723032604389709307640199029724746077273300058408726084473774880927111464544267352064148070865591288484935271455332632507926347600974799831224710363719670832366010510206945894015192961401383728394794152322970925171034640086861593751359853663618974307267569372525882006005433313991378503390694804805238310502793989993778148782131537557339976753392121710287158731221502462715648152614576242222238007250777169371555148854887751140224397251822878908678889990405912101544961232095843701778957809396721960364860077009957327822151549629712500032736016442101409386814243304884686160539053482452304385244290175639044783296514696572586497836436114617346420103813238828261201070892021283239879390987399332435805900229725133036469398885724518710735016173330405589707782277100678330705013923627183490995597285076789587451241418544968785925365189860816157174788763769964513471862237591028126194713170659461990701161516919354477532649824380934692060872598321058912593764609055117902500217491487222796697644928407209534477285287924268904608656341490348734343371824842353439632159402638600340623020534981117296894888952567682222476647795438251909522559342167116880266301418977601224175916327649943646376838420590239338205150489396281757729350035810557337705758119958893716513048254026560204931053900080736772075627211847724349672264788934894862462578320607144534242657336753836606173276438857935774785751358890987838735396112729375260937969746187738019395855337820586192832474713048989127646923757830007717971352134245179390188024813633476067885082064426716608768904614502857196353995665191776203650495483299347743165052206617847523341710205735927634832059581110941824938112983523676225248195144584889791528382619894239080962613312441050121956470739214123878805624491327237885609175723490524269553823479453931960973161064572453174522045640738527763498401615764861736375151517615458147485215719566014879818247814130090651251459663197574934023303238460850453857636641645957718123578760773287813536687074286256985331435392743461274785391080403082738048836978119615558526884659084019331758106494275822949688610807074362150322299002046667519178333021172076331701223851302251505216083598660396579001195947932698476110735997596108762639593028579171089943945393349659525746154690912148477921076905101006598355294361997959495068100267695671464110560523105426267333538432277034982000009348489315532016290443338263490191596065493864842963930664104381627515824458830499115800313692964634380964726281695825289680576227156498654177277494411727016496128319596528690408319945993076782690449198588792464303930413562803242420492238031078069302543722610142932200787172477907623694679006090859255806139527824969521262788195085714521103430785381565385603764767270818375392216615930767936284704161613177943756212479529954730817954876912235557894410176327517090686377902817828348302807480488906967724745387840287553301275917150535715219942760979124516708032169387922313968664855516662911808195761952295227125551109353200272386275181116067428599899982647130828788763951345467370805951016755518166019618425842559274781404696776368150586568840495159324669798843932021112952413271872454757773459265217632592385412505864944275653276467619036384505376145057329157726955293999200282353634443196107647567236791585732724118613924422938032947955190705745725384219180358670872700349118782841621732884461874533073541809759820061738415386614381807465677824033819489998817459664906899844399865180750217141574667032815040014972251262251195083300189318577830671915711078988017976589757914566680575711062349517403702015222566870742792476127120095231292276370856803434971308613240254121996670783401128830076845416181194463956180448893464259453458884885820863616500828772506305093523179282928238016305838285298354125654316374424880530577700785506041909027038694628166922220180197417335151204929524313447506298680914622312784002009729834253744724570038778067531856234709151891033627702822378153217166144198284219515859018868352256274466462493964168994100013997144301214874217164159794759274978104284079679660474120156171548802395602840600651074897917190849177866204982984283698615672188230233889270556109002127691037980520109212344523273330374482973909925554269346689464465967897387540004099184552545122587921764508238916404809556411912912097503082127036231206352227010145344764852410270052851407060748759611587212721253143167675902044990140241061049911929946105457384696443947532396617214215785085389592126799870631279717810979411926445466743113248700021333084580571787548729301585429070618064227278577203202263688853512099968525458654606014043835395986389921553214287654714371933343069982729573277679440352850872618552829951938002545867467931405204614054986187481388926522778517886977429664225897942378977618531691346277915815710655233914964823099490754902944608373624325695613564454588558025295330044545546370077410508417234761889064778019325289517049852434443784660347477877183035616671824182677453617234921972759676043809789307791088169277860158070973469114913027920714650601148897272305176989176740838019618884563048489700808675975948459377153760027279580752324719291551791108395714792223093613928051710559544323500628313827380060408222486267776621595067602846504906766224880030890036281276032266014545437629964430555267493340184865329988600197633762004421127557000762575047470697400968945311380525081226140296173790508009231130336539722192375911498141875200846868219763379723585787528148793601022848272919095997707019724827524824910712785504071023659136289198191661579098331753668566511385380900812533825710854721383895177677031421471460565961442339910048755430429016701210932505575936181224350553196817508623757455604439470103321432444537337589382172700426282843603028608595991012392978942343699077064336914795782302363767032479218105226662845000964163330013352872653717969735046709171994068335110769204886531818367427935339848095281609587291756768248917372590921356209461214577343183824361964963944130511089149856583987127485821869688309607652960352532398826576085688497802836639706941224053808494129323507577712165078354991707966500958255309819040312251305783571245851900494354261848514176635794264765806039850221250967121534068765968827010559380747363942789623013197727139687502598425849086029485733261462849640265667783907463643452442360053370654036898860237572666651892428880810038193596869147095365175449072789669405022623604042598370056694543084519540213747987705816405029476442873352372022780791256273976059938327795212886111609905453557297357125484011623813049356149641125602130081032898196480075942329700761636836981328430996901122678557356017932084307292068011339934017237343311664770681093259712268199723502527796700017023407272694713499417542280421059205488457618845825171423820621345434099684656621085864437166370485228278600318929069900672006090749565511083023243149947909152975040824365224676367495504254473485869699218748565945903602717838891566928446203316479965515607215055585158116509630450268380784819821083426177569043786416246543240439533695487104546896734436361354795698501522173058715388647175587218165567701265997826867474587531190485913363261433978304046666356589531558014820245693825880036788350470186782692373258101292109252387784423875783122860930111681177580095434786926151090137224228293901749299163070225666455131596666863338528129244066354196755216044759146422991681689987266391183376391899106867445845341219817399794089578205869887767917504180043005740429705615146170668466659718155772659652195717365838894141933441902664587692654163363217298088094164114962498858640780642312681399513500287113256612120032943754212637597980268470982715266960373086953344906164411441597221680147564438268066779145703561618542402477606036000675471146118267945067284517968283373420358235464661367614520673491043565510712241832275899322115461671417304927008031667549568708249161432702947530764732326599778881386284058663984447269708644407412724071894959144036130025107456949460393285730256197192860360533132515828499546913588801453229226124616382590805925619456462710131018191100320833707271388418568018726207414940868795235849347026564619672337933002533894149011322936796839336774617960793155032031656424139341165712674242358037759363007092015379588356044592289552977103345537971872124167515163381184303258110282614812250762955686829828193446135408884302763530138566583192275355434202324912159893210535327312948384678169780451826440561185292836120386985586431412410949569071889924702785380359020467234980550945278620767924947593514724768690462397426287625735891773892635015272357860874745333641426112949302834080493471052778339299147416560669570771676793457292883522626573764707519609358756458545086289943081661166014009795788772569028939631748753301264465573652049675745001553052210702705186170395507526005687663947135135269782736812960810360734360054580827905712631063158155535806456091127024513916454712654755620665548853405331834378146776170543786630505085230910997973289373552785988058403365272125004389681162408463555912216383122563017888527346569965907779224946933702483198400623041480131674685766651663098816964110533689372887371630830143579646779953582242359135163100072540324869474888239431513173257453119748091089749695550556311844891196724938871116349298011910105111046008137895130735427979070756992592774055916496023278549423120116185552118369923305072144137047500337432150658489410355640593776404439440026605989135849003551727471877460022475032669922839924655778085649307451592799511163419587658136079020952623955267469992296987385579839746537105970534996595031677472056702282895667533034046845664609369735005285934337663094298439994176641784730035451407627101579910408343465094225664958497727400105275144787780964691604105392607226164739678730259046888855172443991393444757402015294025107374493453773837251084927657930194504238278482472623485955965026338409325738997554193306445084278114004138194450538922953692246451383364118314160552963682789836053263500949484103604198424584856510452992521281034797039450671838325692897101359131834113260772286430873151987197749131752400153109009086257105119729098960890301290761820222514038602163514650128046951109168708966132062900129955051742602972900471058346200078805568533759648150681869076871131043241225844169428088914063182294583349256175868534277869204548048996189007484487655250635232876234305107956766630848122214930795207188234556953442858765570422380567779347410508137805592348179446812301683061996093929137706494154797684401999484281920169650937380381164649939641259402986140613668650901452611317994715438753791693942569242812732000317950095061834173269888678214080493314408026627950744781211435435724693266258353314625461173791598184324008213138191984892410506528338517472472214854921711520770845077733845397029793375421479440755667243652675809401581965072639027807256775380817213931932580401667747756544005545573006950027203669433844297725950131459440153022577524306137669616480332735055346096788076281420795155763556007547674727263775069209671504395492165745466350517395456378558763789902021043520421301760002367680244847766979078800768291284525313189681758040196026910112617395933490807241766765208192922586482633999871374545705701589396275772760968496218038664389961552266681240372942755261931115241265143253602723029472786125700416458090662838408227700699321946137786707423337838965173263698942544491250961893275969810013489248947132454123670810859801586205849109974374751326821915877312001150255291678088119580365076341264124379716506208699938462874098585385132315577874080165362620520588475595926406447473829333069389776711347738940563801613430583827395639452029807873051864938591848824890576345287564546804854318683178265609400882927416418417992103367799491496835694974062091316991439942791093055731775011067625671255600997059454950309553262942162006227819462896456814547481438835552924155577457188268177192481477569688845704726239379682411427965537443415644002237174127792002895770399727819758169632383043240657822954905318736543078412243734878453983922266061274064179638994942453393610603549350464158480087204800674742041753011642112011273157795991748024764155280238630362202802382528426705744935768829274059712524990445002600590091985504324225057126975379679544282641814909879155161385653972202821594904570421043917398595073553365350184738397134282140242017269586951311907398268871835208179623336357133337707001231393123900693130123034026189374919429923415086750755468927949726934743445168249251944334228120531909912287563211855764170013299114375071413860939260627964435021459037678221232532568735770833723093813324515877147352084736170983852282083941951789036280067897500621827007740052771868300704249422508559922794042583337890312916658070246885948629773802116731957493612283513384268309650578419520735786590134654138184755479166353555810197382768120130644965418254438922794924097786774592737242076632212600307216577795910009987374394493669163882158814492321403319682031368373362007932224943057091966189076351096029158711528601487492553882364920032219450991667605495359008699749287935148549143191484525359894350559641467254958175593875799483815547350806820787670825273668918958545343975445776179500507920516963046933487763260562601262275645092645284336702052081522951321467571671053646958462164249198113205261649438489541550704819254525723024480497710537250500816560033974097520470146981864911274412281307038949835259795251538071626789686827576757171813526434767454592885987800068518244882182871311775337941992881921802791425399515599886407873364886427157378201180424687255749125322298699728294926872743418499451387643820673474198827269173020775808563756410466354493382419884464455529164379781564032755916579562786124449048627969776987505795621284642312550521571364295828690654518105189080207718422451096875106375831148601073863321515326405480761184432274658684920913624548307147333563164971082315233274546712675295540833301928568842338994477462360351366980020236403139729458711664557049277998232508811913765582975813090548953948992246513968852242298950421775581384181216225635220779396351547109123153856153557706393099195991511666716006424777366161949742700302232357308883339912388883830387485242904180601643899456874838236247863706901934684647910198075397750480535479338488775282056257776368438418321051723321668049755679812851661911317128899225884901903752059738710593932704475825299264219332126529862417599132263859285584471527794972731274797073227643210542257745803609106026619569402119211028243606698023655068718609029906783863279237839298728650652688134209146960219731620145900894512452947422886264830767256076404819293118627225160540877007214742230064473171892400710634649269490959136013301371555705564087615396299250312717454961939837508446560981207256572107969610537358035060257489186377969394437822659449292706831428185786148935712494992808260591911066129748909585015630361311398634331111784719005651789396005315317483590811538041867269534946756135221304491851573193903219120164245065646976348244982509279457824693311688224445599788383494432635809500553842819024337744642783327626588042079347851757769209627775856758622311449633565140381284113223971322928557155709019903044164267482236605951414052285530713398065117965998906736781921507560903911103141424037752507972988618535844170403183775140890050864451258227821360519227955866164433844847700786991363221123419793610570367008520369591302969404474030322290874694193389981702547876613004514870219126748627726648096046876338746971684356645952804842402775730702745430548118497966777622169049391488416023364196123497534773996556202772664267349420874836151475613707021025095790323052968926638742164824213914562459236133014218222380403203205525811496606759290558104064844276415919513413444526641647255599873454805235653915252394445156354049168704207909489484608668152909028317918964104474867878213396707931700414753521377120698872712761574108435689192047018271586039201298888858857357632761656007057914136172168143742838239980168328618194357259863017785693551463124432168114487970917208551456400065664764422645392582868841913881439003626515189523116518616566277654872439345042345875966178305264677633156008738301558611380479801456571451034862615176801489188598575082757763192327385508370190283085932241754832374734078772560137281240420970146574409925694030877755021479059036781571567883947704892763823153368050926504665894284664252251266848731216150142063580315574451570444506191231902154522466758707265883211570943753897528764195583921125595295208074305858434950569367786943164853317357119976017562723344027401523516233476048148465951990164805353950899889252565530118402488397161904594422209275804239485407762304455070820991771747993397064949508873671817024434453613579006310112598482313404506272434632771449517652606090001270147198415136165390811262138482871073495718188306182416139393359209390189187527177688461411648547680269441029289627031691330598648970093183844850268678097096669883882575214090013578559685652637364470462085277166848608570884041947190578520882771951170400084589024833485856899503758724439144118868481863604387224094083081838318324196771645078479684194682490873437045835157164647487336993492067748639807326856884638915874745305576525679734338831958451046344628321253321765257756276852683884325782939684231860545177811464927854238828050760461691359674596169201023762380493673906726517873814832966266666130031040993907721862841810351194926165370677126930037924736711067630643452823287255802771738248928000068286240665447778370030005740145937150624971815271154663761093025359734823122201748681793403659026718033964536067526918678077187847150918209724292965600982070309220423089365075330039914703757611684080162493758546711429954527673651395221369449535394676425366174493164038430640439799158854376543387998482614824255188698041096691589803761397311662154566313089715223029577850523807342880180234889079874894380323751299713762812741438943737071661615850444212866079363007936260537541440712035378204785464832744678703121817496598339702557264707706939340861953852177894622872790658638488429194282808055039360090095133709713499866619929540742813113442029985699919437656396779133730044740226040000901752814254852253122712495770501463607387932492150894298091233790195280612920974520348378682204864552382960257846410799704075221385335656772069593596881531487803426129147967928561631034264258740119093566189619353949627328730599214790028360286811840485134761857918736172023527370614759083112721259436541962948929373894698891685831351840773179962154954611883587079745040683484687121118617295066306287183094682595800592254592221800233099072401966780713797784947761214784418949070825588596720795804824293621980809200914895312344488989632205554231867867066576204596117755091963900530770417054001231188410499085301565440228249129161406687561150588597875307682337547059398212478761501790811080267446690197677835485905813873923107533303673430163447628487653733001581657416335999507776527096894448535282545073576551027919861898128879999770268104370725065309769589789593561787402799054472885310457072250596120013727506342033488033051657227540237477210523037152223497876637914798039829858754697749703588245445131140882835544749168382010248902159291353092390701921298191013640810816088416088914140523174412465991273094361366085331529427395534656048255378198956796218846591541062064017085081339105942791819716165642002721440971354902938035778956843284228979669812110790758645991292030085642871110685620679243213796039917085166108403015794442158970945179407454092692523407865144813706503648030940083722380246009962846774028356184399076116077800363802099435001722456702456073244467477650804937012821969346654461170336388999104621642929937171788986946142254045712900762191146459516014834651556486031086334814827681308174923222167517476336351853034823098703672054881735322238783882044020795054824971649833796572658838457714672274670876449509273487375986281067609113594760132895210255355884287338804362565160876329142322679190249984724021660971433912990735348328165201683941827276368328568071374243246347924884586416777757518340212119365433283718951829226194183518214630691828043438235686934801243177049927127491224490319069978013107231753797271989599316348769433517638317071618310001190185109437301948698140334870234832419970826702038289818488860655901538965089300010948993344937383025206127669776254648195760000839778602250272493500156554381608516494868890694791168928064038657067139432041968644490473919029767020022097946629242115935137490316830118105904457641936629794069069133479187574565076768925971373605733428257275297025338826604543316008847081703303375893329870688386332401487985448030406061266427017121661838170437171079960411022551131074558736045015153240406847968404049028101348399340126908066224585832912954474029026665746710398628397408520915443170478963669819842752061088017604008894893574712611418514819808682841184815735779039577336535766849800978987546131655422964911281227426098594456065828823822243017474761204685280198120091997630790149511134864481603671961804135551126779539397931980604303771158479089325821245457649047259997734880725755375886501048398088431444477181191052942779864029624103718488753985300824553691130065056429767381014010356537149064691202697178367404488700503942577386945428255076043680247986187730504419519080351543984694904139680747732210351009906705838015041862650063991031851158752314274981016933582386374435674398293207127706530512996523593701295403323860487910435476250428779951606428627379579529859356291059445203262168840126106416420521125692436888734033304928105518256325434386342702781943855039920754029995129479423166463260210853778135046893847705691324314454028431445932705845977390465043292645347842159488451142939762038318757261522882418895104705816503563368020567893371592307352995385449088754379872949934901765322483458574844943557649112143499893547910496580371259034183504500004536711119586984072400875015535001253432185849427598656058972172548103943251423197100963795537809536633846282728042838867349825265051600960665146146540311326959820550125554633777571368241910072038314987563030367450528462718855863310731999666288416454606691919994743795253473358150791475776312696055563751263439993179873530318295826432536549304408853582935423850984414937715905625846766682611220924242697971375659747190483873216294958216614297937856840994900020678854108724355158835933649472813137085700469923644832125643707897900509709913305784569254622047619774437466507876497037482128272259160289446137403538829569916488026788343817581885034579481442542320743568201373361084882849438528205751055764360442157441403528930212506814001497820112760192466880938406100407637697549777449774594234701357776190324981690305500181789244482628561714048287909656735841166102826118011961265597078407491703123129713340660266224758362586986397023696122840900400585089523033554559412452365134148432409209522228155750440622402125302206412386256318813676285988400955911845739281637562353548174620292751722295040264650051257080915007735297593080116351508134695988424781317607972471331759343386138716921029692343698452060528591582653089011922987202234347112803418015921849472813819712243441840712584320787873127443659606226668832373142770847307325334127439452042201649897975967649783593099982610412581346996734036401687128070394283798035050730804797132436890082433560144344151596973011086449857370596345419655783873520610931821815931847714350508281204571494297083930190468511292260408826189759005916805983387804088442555713403930748659171406622079284038325021242549926236863677120861423553587344469431251818897162769500427960364949162642255414583148654505863035289498077649466103430861969807263347243403782716689015829022582407196402365231159778519697944957360211336893647677277585067430811152436197136064026294915525365546745190762108812101708674429641747328838910135696985223507547969182008535379057504740377632927286831777454776668394578859294187046590341260470389819396416260014063169713108067941449538621943579993309974791609796680189751937670744881233449460475781314765784476394513628030502788659867281183519728541529896858301945714338526473234491983647930835364712930274561430919153636293882132332936867371112770523150111726254450459755592845404427820247886147503733754056940387471572004978694428389327536042171864252500691030814147077389428663918463939621405618816851102421254689900359524627558914604135761447396271182568806137630501694437071691199655308867845698302621153221905376951149744179553588172154418072427670811843008158220442307939259468349069383476832275810331993612146557850086407659220494153447319850242314533439794266595708631052127584885272397810006341701450743703532104785032254503894062252035908737335432705376591241312251567892304331779606158335204237482130124325358954614596196334579559282906463615046695598532361700567633253042598095613407833402626674588339610544869525225922899234527238394062194743929809992507716574609462946397491926136213000504241764451319663507555473738485668233912239202545355300312628153730629760708004410752327837898208049163397433854264659319756362172744740306755925530127184943377504815825762336601887766533180855624936732678791396551706096151528873559320008689123594701421015100467416157983293745798171831906605754205325165510886807617313817727228399201883565372621395375778799344840314652416347148904858028075446582676310416021038245164456941057115769789534336886881463246329084227702943086199384228310225776481777590381401346974660967358907533984931857865593712526710411464637904696444697612756623040772632894262905921600998331313342307218909954330021668739584136194851787427420970526215646147871789787224152739159485709921225437962593607174298908088836528390175683327393378531583595595058083331945295841381294384385368601576706652599607458973445955297629586399839280543280984110780461385286540364150904331180758633925896501105710479466995424135955917400092303344937566427253068671139632802338557820339617288809225065960373885873519788889298653677655296437723774340253420473013250765635246773152812197853320878223452271302907001714983616939437538072751703677054196464941066518097982891144657265355707955439238953355410711436802070071889046699726404442289786786322970020598156169553347731284558383142804553845685261427931149340297983243581313254112162963370138478107922123959853568220693345124231393593234653307698039253804643387951357487626316976159897868392799578688767704090171936517486461191851975823323091984216869833597129290615436152407757629186125430068935400046484938670897093977641967716807618737667504907712617978985646181011488187834395927569631040691238336022661995033598029220673354190666414679832856109374241262186361259363178025850836020363922434053638144318481745062538403716537332277067706606944176017013540489852239588684510420853486111520016598696687092170509318616747224344679952703235937407219763188570107154069704782917393783566564035433426550554541822426788221652873845857474708642112858834104873350895621602851252323285314086563367456358955693200184871830830184023711149510218690442133868277421076518429347105760931035396880773539100480796748576224374800346448702543870487785797155917750455241411132611873691451621200099943053846130645744634051696743716961532948468309899469851374124678237520272759493668508743246349876700836571569236389760802300435528488669448838975100269689345618886373691178940972033997116919802598174364696216145655497609679227142036668922945021620103617363702912335911258136849828955337159618652994956921257453844204080456281609452897426026042715884844987188334600134910962704222877793071550904217093573123152906401537368006351044238289441476247819876924516788080564883318152230066365161262184140855680638850543706211367562214650962978883271445607790360077062038626181948430871782476968388177552708137492472486717840286203790515015738543605299186141920448588288290598635992364517486693282474091453558298529063210832088716917646775546543904501764252869749905346640678880162095923341777944786055879946388101869482191748318657303448686777079861352843586489752726679566556153938312993268167878861504982248191444361190309092470291535449733233378776158612674842377264901759979990920492113519612074338791452555640482619970671597585960526511390161759723251437076496624024126032126883090935980107747460081945656561287734195010668198888610600970254918882626200573802618359666559487180168287039701570976932550669161248412559625016922457805049544396711597674456377896704095632121365295689316273518118906604150052843189747523965692368820854378687985123601299567010167438825828154633143262338608663415192011251568330794787764905494007296277941859420686058226800881907456634040315217662645323807961592279906941855981110697056332815366277915325595071282215628891307575921644204050416721326659440838276405469917464306385745750363611811657611209790496884914494538144564981952276763919312883432765232476641133509533079099719681329974608345420099419606462810564875990673460318827396503424169896658055265760632212912358822593381962350404036981486226624615709941540161560820698039861719140699062549021426698123252684780761331763286837747216494380806510146947404978726810148911497810015018527213430363104205194413338152585540319838761430605827132431977983838217659645022290967317185466084118445865573292287399540816639766253223617922111817989080198776806088948604321499577136456248283113208111969277953966220980820819645803974340599119827856488027497080659351821780207853454539915217737106243869227253918403926441463283749845071623680730002170886934864348601663305918860434225705705722798275128404873235500335064241235485601280852665220867079152095582197999464174986910068663630803923727564351419631223207227817717979668619442425179517372584945091938655803998634763517941097650983797672302605382993484969624722856456732493543867261780329729041484644139086249117798209230071654521160651475363579112986656113799645342767991698053535752029723435515158027513330175806804424891969902188420096865986881071785726506346175314181816150123122051765615228406896691748999334898234054951849274720324029364334394585854078760682914951215332538424957792728351360724137826788708785758522411053736782652376033039334689569106366576361030974858709989110105008594890627934563723996873231088033969465375145326470209942987497855651942186459755194324372852470979974489851237070847760529974775274869836726601240268835621270579200708297914956500322136004980721480970017339275492744779450246563090948906276912537118356600379196492238941058866627244385760455639190744699336941588716545755958135202071470024588904881406991433336766032423695491253112632848392357072512534481500945754921586879083776469317003379445090788519175004896092298986460533128578079320380938987389703725794501598080213808976313879354013566639152537315324164297689392920009287989358447774540361979099765250202681994187576355411525018200376783325621456904746105906615310213882003388104300929312203838079482235374958577105839877834963750320874119169765191208447654072104445301962688986486305870476225831520336428346750619450118430227991647833755785315325613227019487309633204483708826759370741902759708038643886502283151121665794823982181615463846892065499830839455723752454729252950703850283737244536950475546830028333860903242851127922876559562150850722758469121588548831832526689510421999862883374873140023422562172503137654550785107696230639865098536046362317479273530461216214761782054100124031133885126262074803990216940605203764045129248797983079851741517074277438487483777023080250191827694001945477796212986966803442244856326272942833026708993140093382316078462333443775997497794187933487482881366644825752852026731057026024203328821127239375572196368129272071743596628525543184662244989716907303255444673618759668852449821274634328226946089496433115252157704781677307751252893616175105414412925264919890864817196194621900132076974906524225491613072470185597022781114331402638027251165155412898474903183804682121246271877173207360111308034332931518720981940654679373314692215921462860527320555943073168767051094901034412953007731908763841743735076464151414177205163378642311934046697453804540389575342644899223386188088658723646469795066155986938205780121953163058814955345721722194883568998416632813940267072040430910743815832166734426773247255009274941739524431506979600553064336331755943104399420425715663171794884093068076788669739022952518346871143262690995672495342900142661812794688001223669755450716328699080886612176501537762606474971196433032789315462616576965710446531460867509200818155581406796152101377079364630769222097398692776134388418249534568505911921273872829157031748475691954123084441561559615552255949581455278291186027665655663981264712674237223760397849045751951499916761899119441404080315515432716017217118082230452643677015800704714883115050864449698589457299528673164136958474060031473345648036383223499525824345256715859975555379775053002372074015818445923488745332544610388663500505383079675232463890563475323383953289097339961935981095472525506014386536091333971795352999679143405695561791040818741135720362892943471050408518018895154834635538058269854745926859655829030978125820021156962148282245897183192211590818675657765520205388256223874303119230098582562094431474117846516536750667131357149078039226781564459525221650711126729014502405795052517849473326702110597283671206132188290081175135936393724946136709041777168982438778593003940037400211070538026740122671182812433441701807807195156477564306847747949814038847585145526419994090470839535738949285163784606774197890842280789594179446104992291041753911776686287644024356466609069857722341346986508309531413327428075460522493183914851900884142204414235324580585875389910209856507050931668800131880330383820846976238676188585083635252555740899598016100886254702584696083231058349687555830946601732911478242617034613693949573747283546733041279464499916361227815411741746933983289778944258309727683008071383831269191300750889969531662422567960045297806927537520853467319308514468618785141466178713882144085382772400242410838619059762486154755422458679833342850545505011503203707486303185445153849331546657742399722204921363250189990427246140924078386472947961946107620182275670465817294537076639427995056039304079937301126657966284463875496237116927619721228728638841584433809452031375495225924077053558690918897838549552978619732291155313476806739993273964998329796014811080614519036613988825187670605726335327311289480869780205183667929966221946880961486366960859186963922245909353422477448620824743606535205258371502309396439912110712241546854182096715751127258147966619467778130066011359904141261327540632159163875186635275751697795082095552485593659241012594044425456992662894539368230911646335473959969002645922672505744512735036610831957722992788505562678473397526819573538526874760614985187380945506010757849622366626230314776276035126367105050489982131515151142269433237452072421187069859768918726355545022650024054096113175283348380986683675788192511271524879175987320710734819657904571930460355974079541616643403878233602709621622510493014260027535522701562251426714276608860972725948197431961325561501232371809834528215895031893530263444928685752433773931347537554777482351785532483867648763828776780635222891942093327601670576566578676884659888295304678295981766531967635937864458432539957236965193062192425962370315825098712731477642996508186065147470865943010827091717439788051721869794156030095965931513540016864700702239021703919392476654192424636626161273962098672440121764877504188106120425765430395665732778855379977606184738095369727452393274517954118153411932213104574177258439316210802601931377053647030155167787768456565162447759535874976717329466183171593027702905348579473923443271151658822717357575947683656479153167568931057963354592092535307537431798777746701033046097293209765744489423392124929763893883071509310532097066478139259128231722079903687305445112062499750352911005815488675366354852366334818841414631048435099352066394179778569342095251979023076331978460843093998983094995469092063877392414702600919444492606838822991211142297904866527345388516298118259759502956327516634808206996140842062578797910775908375403414356781178882597077654438676956519915111998886284344610735420743939964555820978902127747718599227339340383037374888402492712254080885507350442263029241839655121678419345159855076707593582663398339820939317955728600344216099001495666876507546170695329957602345934073676938882918951054130803800213740786663898076054286894313799359511916188010434441569123450704130257770862736241677566037951150268476132593987735882268546649141796833617379373246474896441634112561372057971100720925143844246954770165135480858142675500401002902476730557218465274677492534802250806559536948173900112592385594801659128996118727776155284812436629605050377508452481813005691659548078962100993153436652260688827235378729135760867343619381219982039113118200542494401161255238071402440595799561295075209580019681590700315587171683895744326277532181573523277533853213669688805500277676270910354134410176565541171656876327262606960342197091963644647380232409526473538689032595242858570500418086401691235611332847754441404123208978860381572752884769725990865314410470906059503392591959626947314408073919083620049949063136873958920553051208188642993726993132358425567327985039170408222255669808922482875673726724682335924355069126778021366871988976728823136789134737087686449178974688248664949555918230679771012906741615439531444313944766876112209296408064718391345534149332098965557409290005342306766870765466369991065356745250432146795608682619784665544617405045338802497659034609620135153646126816580101780155293383162404385205382765895010945583725316331850722403688685279723746445539913738256532641685412197019892981377818145240106126984015935089372127224716696825527791829879270588301095924326035171805705643690258407108295848616150328810889927442806372171700109502797787186119590194293878500367208912282913816336013322105467249059105827112512055661874370447131926920701157601359540099004963477231062359999298467370371599157120120615670210395704458972143103104877118769548386856976236599397582914122362984670687733350936628571863393253935041084023727698676876790386184780120375774426351706824138229514669099823239074983365562383917409406998356101193181168455030269092283980725382230561033773856464604551022000816133044142292501216114912200879500803280692428971350580320321120549236735083847357631441334114563101764930801566552546849223684111137801493342459539019527919657426817673277917285400546141560405949674883944138844710380353868016762186390314580147943371961725957071825362617657440527292766507248809756571318680262908607722620349969496709582259945161695218231430778350856560506548930441392629810154428812374114826247257684387352358983530162357375316044926492472826317021411155336419984107453191793030364559799576110600199003540020152833002346107381121484347774855317429932570993104465471420762639573089513661401980280344386596310513894758694023617989870976472571791141359306154388660814728738152811214540328012304309693331320696777509892023002153224353930595185452251846238005159500999406944234881101739328975487201901527118495302893269422458785191244971957965016617437202298576876773186465368087627433415175729513464183938747035223099281367812960202654266754866160599876801355052860195422518865925280059825953130487291185778090652701774591759419151039547784958346083401965412178341875389832710897184320183798220737583780860147234659746401417270793428709525550867557117656092686009721377240814129400713583613003861530691550531774937556496282260572617926678422018592272983713137172631233721110467521319127463845352064257049895156012066314089778404830284486925472317886173080921952271566643961799290217383630390470071687443759116022511624172782313325546400635833945600572150963741318245716988346009849260702625773663619889469565058942476307681344953096773446590464777557850753765963023887775374530145458911355000676765112809881976005762299968030396209011753054428490745975664061418463162266856424867521677676597221590284088428936222795031462672457205188944839181684552769723720074646329019996091169191973806206693990783053988127132010709821283491700952568980836528532339685113427030625008371413219339204538363023096257950394651984512451102092767386001204969048003553637950346866133892346726096694707528937397236547594261310225680227443253901217214573934522854853474912352831659778897775490895903324616639367927547786197385789953874471713061869320339365108743503054960134027277957277671684066200737031857081853738624192189563317175000204160169583217229925735213027292756017029845618834052284235461487295185584128084061158343445893519125406000033695248336727192074085513205437432946045625448686051852977068129636818177856998562529179661761174195288787155705267830894125469108898794093496881881089965936891274590567468131843819215687286378910991309040285798830865911647418312413069756746834363969925208903969878046433534545068568101663102570695348705172120650730601071267214098950634492041850846326592818460188587371499838737455343355555148022240516780363249388493882300649106368102365523952769040654754410312773086791133328778904994928733490493386996204795146263734438120551646458755361394450301838821021429546933036436569139642757912798358329325518745192919076138555853157288773644375628541588648802704761905629213662023704544744854373621134702285290936619461577748599833908219720704691954922503877148297910839229559451361466697317452526235583254156163302822082180327316390230603145233130806542734517297679494338669764979790367354777309743167152473324402411675115434958157424419125018439712721789941996169931597356443612402239278585349926414170034195381298675513225799414675242236870339795214280365369080411288985886149377311236224012327368172308666332102150336757642778641690346588005581273456283366949996802160339604229968740064496819294914077865892390089640652119751095566104228773169898585180743790595597211445816810153636665232858538952758863376388599068403446941728821621402153693962413616339047601742410923368533793075356580504322535679737732367052202587191232593600240490054049506960512071151720281224456838244901930626942317096563968337498215059354760578879489967798602095118270692126939196288421269457877808273860725119939296543673143693806563511657304102984266284659253160688387548372916027060064457821353780822569623723972522983401397916159569207505431936414788706942452148456051273735355820331053717922854281684704734361869209753362506915924099062342940648520179377035598342981812249001727360631126555308886933677369444608624609401489290511341368249710469474927964240164003945518823525090158652695826145082223050175208793762885370262148401851653867088577909419046663330060503024176199895489974657312023806857990866691580426656726497517140982457004272759753974408851374036419403086212118444925928898623834399107976801135076336610085113958728484760682951612413656429560635339837221050437591879231554672555022911339393707842857171720274172998339634153358638118878269119577980375192041543456184170809620809201554435942604377897175354385983647834980170560461153925571926908666086170955635713969340810084827909038116061117506538772979934617658724120153521772289655530291216794315575583389140632068628238402265468047110971366997008101095764521488885899569892200875684207659877220950109770193441637433122584432021132192123454467874097411304466602936347524557985794249762746632191050667189502419850621330710759689410046372711271146584125205827350548312060663165580494067589572291103797756155235596750648648455933782763912533577608942399523518235894249024804497316428789375310607724729824837654877626245028442218532967634651266938243447231744303193368038672508122531543014796145363227673532083916149865925425812916526865591611615227342691913779477164387408324656642803726712548743488620622765785662846264360237872155801773393448571288969827963050035808139663341464737576835213241015863545644655156170356268015541558586417781483859753956910038302990592923118181437126176071119052744020063051605073156943291291929723974288098604508066837046661934581397503747161220109479924430608357167046145107946029650580832963622778628802289917958281931294403110582067085614097668762427904739903779216021258033209551009400460037549120264251262267245717116631865070169996769853210279271872061904651505450380514438117958728957482427391792074186793191133227740487767238079610661141413163616839401606290655991061383452252008701924688126043278375792382102567021124864344698609393912279965760988683792556891454691380654517464274561153907860027113664795180290914428707140879940194245123488460546527301537679481441248017418360624585038348435832519943736711166632044065451139477397860927832188029041710189628197074882978249967631641309340035826227475444541117932079172566253093322635819986732919459403232601482277212665351336319643317248628249143282919465945942266887949901009719020323831162421437511981309949701036554906118882480055398498904272103408479226890996548854950177042258000920780973377733716720610107485075282272983932453356275917015114896487084168584111618393187756345371865908801592929663739451710528316456387616257356905834066114133804402633210578360024027320934055165768200157906347136184761570024180443249443592903340189189692436142373782804161668946274117627678543269701999711002312959923865477202713694844410973654743132623201296117516182925417852325682663814277542078476372448243448989263535118462730920405854741961053764357630124379987943509941458545995265193636344805588275260620027627509454313948265208070734348182994700119633756890079006335397184411840887760044722062566046114183818387319323838134196181103989126969783767902417071494990945114774429609002866591818259978748068335776292874666532296974678641558615064379120066000976885797133632047453635372737846976199927796284646859709824847048092113986302786566053982600677738320125464249644327725945432538840999899281642177648579223220211392637076105763775786522301569796361433444696343238612713955487588888554488577525772437036230431991882411088976338092615232180457404791970537329931118509729316672779082812397853416637711843137578550850657236070297894966557483704410578281804718935628991065484266160560396959999806831654893022786912599910307297549969475837002753199967693426660904565239686472133382926474410080016748792844350742772396511320650350772308184998131616483319188150067438888349380348992722739605815458617570381334791282386263388156119652447652009711740773816725543909054999388794800181213374007108073201083135772102946323708390710468130295451202084686537732083081245204199703759867862942132949827814163218592236176052265529646130679992529787215837999722299684205270668129405958160336629282131252790574577765865151506324636974975843264744275628461252734411778262356141981698825157609076373814390073285169275805649831763584103855026725698599304767303267914127542482910045909166726980836274920572433450341920716378681223694108223709238756210588115228320447190683381087325616455307590608745705140228461310636250967836805766866484479735229538290146096855938233416125673017807922841055238792101967969657139623921101465138267130593173915114119946338904005414557320312078395608028603269922883017823243831304206547311398014938003441333546527029307571003673312618086818920900310144944023813038244336760698379926372251597132406865739755845638458689591354691300440039904345775626877410669539946751606883070940235847701461491937420232240749059917495217309273668155815312160192006516721447349233795060354335321889920116139698020771059708038454753334209636446138359860789246155457201574465875602379189028709556123504901323897723060184808115746740522361269225923851093218591090305238925605622353968264375680008040472558551742281294648541928803961891805977351715796234780536520001511381876337074183945798349565877418907619010057999932236873901127217199666892870887671329223529881912506767135077202982565350328100210885785470851644143775970358450416503503496503413430282965055278857604884569500625992934410566058956543151112393531285491875943298490846101172846381821801638144631249791553219153991967553329662128762669629164637425630053240824047690717487932919314411649285640289394239157515167252621796754630937074788503599224188137682921588390985713430366548486982874282757065029826146250953482741962474601257693190409003943937487612089464443610648318284157829893357434727325618741734336564998180326558512883110003248069199021783456138988712142105532528692529979617297896233975247315553141955052842257887336521587140248686493932961118845875311230398313855572601993877701213100063756877422117215956297798043491970629299644130429878040254213840587673513455611709688873988217419301238206726010361547788924363392446374038127031266209434477125323977165117768439508003188963289905658538069428790357601064615017630050088829101033696368096997661718122734838491026095514318000451722660971855800332465339033261309510056910598697565373386727992289831067567749335262052561374404362856812193882217467830199282873512583514648008952378955679382242044914242431579966155381086541931464845238903590473724130215848587514143556583341891539581530204937234285595499795197284716448440182466904617371449805349064283334653332703769112266562677399396032364844144931664679977172909887325487523883993635839733563849585364047642018589178002572623181029926451213521946601113881900038525309896351302098716878407748936024738088158762754840807207927013102037734714615152317500416822185201605637523819256900866110190556975422565435642359158795618693906750765367919148867176724529324919659910718876118742866217268526194959338739401652687662537831347675807530649537306763543121964063114059608658584905718074344283286260646994824252037297624621465325382098535741291288569505776096048717078979750615916849792849626523390008399185881153388437021512512230625065627322263616862906112563068616671438259570657006196569804452919590460838925976334201214908147158661382573366967547690433862868668919263536412557463002486239338706326908839357327758003525639554158069664554227725862916805224965459105374228209648003486203675559941685267550753223721551288588312209702900172125294063071132980876954001025858947307220360262693534098739558299762058982241414521482182986591675940949641938509154988736717292130873778676465096544367806731674929710731708010482232104240715130182786234218251935522696455852030593174733407708644060025653743682727022925843191677281273146895603383292274005354744155037070031016510248766947203198572664809872146603443980289243916476098643964710253693880368816273513019383814777328038288172520487706016177338007802676758350315247699170148278356000977355892776031125226921055469019074803752636833586501769011323597956634741702213512621184083270486185057390832340195787564702339058101274173779057259487588015332198856320605122579205942882082491096864054227201111650247130915744368931281042797686380148332161249168983566026442671810058293524923256058875972428882586863366703609905684652382815641854394307686942598697335116025033846603918399981275318183567219212506409723075857945015900471849917466583500205441262137779755022985013521778529374379918000459432566119945207821736778975335252234807767855640130570198591217200498326139270936320280358178480606502803101129874296479914522268791197795042548146604339524110365525806409662558970950831024416122377941520691268849532139863775381281671124222121268353036793244871354029884919955697136658300611170875247835682220397828120453254774145325790284132790943652728454245234605670137255821376523735453364147983045763354339919644881742070178724111371622786342226587774767511655455605674533501763706581332862645976725135650065399930783093587092615970165773027497529187272842564041070233198967361391384645045250256208301832272706416464674414005616838046343126308880315668289346792662835059288126181781571976219583777552403291152762871397568642331271318094679987317031673599822412856194016695704462620002083122126767705691535872093017958202342334158573265553614858852523723636629795637312853850625540983309483017962659358028973140025526202935929583136124640550295010327591614270823833310394216652884183702489863279942343881310853379301949356649391597449631456571719024319159083464348898171578224126919488867402855236890053036892474754946725472317413009651101868463540072764854742937412906029201436783658296988769830712026684922387400651749395069605789465183468170991403515975795635296238716637631551818396950943966142071113490038683799267470345100929783011866885318646743033526434478574399504318661753988284935683155037497203522152934866496435451162422001892286015597958606853680778289232764565424807592135160146116023565947416100637334100103856811848648362757203260369024763832734865686249924358212582238581293976093122866953724150272206793988290059635312665076988846705135589996566616580380813078643405930403653502072024767293142502622014609356368819218100343834285367117478497400981806829077071752074845711754679152530711226257547420843107606664794268130521944457306476173273625283737025741140243071750096452448482966017874052392035906831126163213709925015499568312662147425222106509106880171434590405327344803173269769596576658372233777081637527441517365199890085661530198528750697786339637191341891636028873133791848596346948106670589531032989738056447797008641077598390416383109838870599914815012975007854658067066418932120895979272237417360542279923684015861756082427448686289530466020533051667303180311103888211596392847161601157317749741301495845859723170564246963842123542264669453293503158390319613735197396068393113638203554692508157864585843951284919219656813004485260421940086596749570767956314923366125647407637116669599897227838580340858213011796153421918633795006117648556750156777705878355422347333819241333467400565346871964510225814061330945777475593912504346171486152010220321618536872449490372826507469014502128927764727209835711563686651334924170067499647917608439366001633808906941908899905296750388771995201179520141272756012104443772373026370889810048783456133835169092526392524964383226895363876120174726466080887497134484529136177813251823390586613553967637027908410863791956555795507300203842171351574934114086974317543228898350899919892938404431659238002009390197037309488572695984467166036371446487846208452085728339381216278277754782440021247566661482778308578765524146393386276996805570389124203642991675069513373905785505639031851703431073946747323583976873188701419193082257737924357651082446590724776219903161347505921525597103249399956819157551713020159398556624491863280346838404828289278921609567099837309049461802062667243745608787553667304658440248816411597923680864919343364167219584069119627696076002693784818526662914139288481263045869229945738509611275300185444067271491507191386490805741001361855153337620477435374633996460004437414466825050748351477162481638451299867545000463006470717766319943524327841949943419846774319114380350737024238963013425449964459637903487513430272200577955805170412195544223471008937492281810653455399971051767005166696014803564655013048155066969969629855663739588770351063661933032145531096858750725540042031139519188713959513449429118196016143202424552714075604010471050434602927117849021869075324814385270257327137068995044109191667205932955483964562054867459596340362719101749356889769986401849849322303022257832822658038114583566708311869038248227994432059834689749318013520222158260463054496806728353970498429916976812141838760501301281942030050292749775578301369657238329842725659536408910104859154652077079126339696991074852780349658528954277711792272538687900997604281397151618138388966828684521617277001639006187139737273192798647534403769743660321640917975229284218970253512235666923035071169995853320360249402867343337079972959843993156215040767173701861931688394460087708057480358959041162053746955266536039474430495540635769694190455544036578768712325284650939564641401189050066600752906813635510804554636189013464181678376957095270099217633137718924199022313497730753807251639513542789745126792920669723268944421410911292192383257362887659211515523519792063513391230567161866334498458313700051711036475577286577229711550076460596971968414233579799723383169424659126323532109394076083747925574745208105606587107704986313805500665918359983290666369812637905549078093875567557953012369776479798131174353409005057457092749754511467909466806431525707226332516260161762465719450638503706532225568773753806102854894244308838374442078636591607684677490771883824488997797639322274471072639423067365618314142046845933235013665842984780433281427220430663894457041364682194937515998842428887116883578241396142638136668970242727133774014067113972622419653953677752375813426428354153667439602924332566778150712760821827527353865938261315599769613027670665667410413856228841258403726920529466138134039532133793218309396131945421544208817560068220711085514032209304087337659921426649100057339046443994878930254076372045371696951563626538638296783666143029314114972796726511145460655577388850830712259608234362866490461483867599302609855749786205538911720598458818567443634513347437325115328504119402800402045107082167650779233116440012726710308358793659531764173322337340822673582081049715528196843654685679506219629901303356214042777495371346911849065003983948130288627149971572850761888839897824516306055507619939625173644613713330599135236129046555078523310155753022401235012320562848352742589231146634121759240224859533865465719126834579737801408745535760212397975916414074071199517588831021005797015109881626319043331948160154271585308112700019686727239738914041715625154395690164017337981598027954703270698624038789048312435433042292263695241977123634610863678284027452034924901548168323515585403523806831486477154477937756389162816044915517882918693348289571688943205495018412917062156795937573769062479996262646745445489559243642572049746350119768869848758459600206707176190142968230947158811500262813317244856345801768205747821118721290123420113824751257284809407174176531175591166288673697222746488652121316418176229268831959341387846373177863948432983879717956456363894226137506133088978227025322101943115959356188376933023959764099198510179837706372896032824892377161785437058021681132744831641980768465259144471229829076207716293930583873850727847212820766600764306949940711909983982313763353175727897574925663824995235355296551724221383363109468137861272618357526508284804897673262009222787950058207384569532138692372514691943224401177667920527530701467634917385258129590887552200376834393068327505419998642446604380111607973972595500543066700435310460169815727576876159726929784674200521827865692486908938060770875449073485388288176977453456868628718583956202645260575168947647507286110681409291678105977775922495091469874695233158097014410755397087838387791122595919641143557341697272261694981084204354490018729311530886134800946388057206913815291587319515944722390484321073887820705220699907342404339854175308222480083079515935824945955867601344930971607134676999308625832919357451130789836313458674666158090875952083923241906660281261054329556180253987301333245298488870943757557148761380734202805251422473031858506725478181140343056316973174440701903421634901767674895040383956077316449466591256939775026619965124831333958630960590380324307645790907962584280827997351022820948481767614318979880573209113250123473931096212047889122221274110247322144258076441887478097878190482795093968311714389452543478986401279844379368880450096069792780732067698909770541441549828875958518640257948044212679421749853497224210838025333128744516875898166080805859604372100223146071202912787550764299679642257327221049027085640780640423980086866979473212774228337640590186762022208509057649042305170167383062484446467188583974866491722755306675410385947290498990295121211636620519640000876229466431991666106122948001541008428126149103236150668953756955186807982471352557067279883715568739306501983630080238053876446407515805681319455180707283927091773490481251063917387568551251398572866916856548698638269403435169254808996374733767639111005788344888458538134943633055995594252058823887459666416683221971565267725020830851442341380143061556197479462181065073597864464093547373174061417013394588874538093277969297976785053582033825382783008767930172815540691769913336899562816078020336751782358311653852243256486870922995833529464929218954312243848464134616184202154728095756696463095760446340185422887436498841512368665990390353735955263244878326240011703506448722252708753092143385660244414585903532805897832840962057091883988078475983033617863779007066171688259784203787866560097035763045546134702351125529623812967929417704167170063558407745336579662781765155590662084740985035289328908387853991660485270938733033611461256545012371257299844020391917060317738564649007564322956342222282755603819787224840966004630038380843256871659294492869795711302141869765056151157851952257601754470918644861742944142450908849647135413676654191463287198329167049939867550528861072622511168738104708480695099898751489422877916168434284589209671362882058032403482715649667269607351839777099217172720007684403708637101094268900965174313073933654862333754342489299571255601515812054490486498040226481083968815475954496235600017389005660536187189578099809663236237580066675280465428880788536325659612256721935420181272107071690645636831173697021729318958962335475400125762912395760218155411554930620492903487780051285369163720004786015214757432357686823820301686249383607185441449939954667428059994380226549208067093378148845595989880010172393240078580017847279988899909377717727978755908930872200895668011446549402828213270609757144461904024290893155308782953071400124241215376941629868057247837085802259519441478627579978446198285984243669522704102637979151594680840272712133775699966515809255141061964511227605594568266695226085506345371680746234973994919369170735985932526009566624545318390315623037844407618508156498560297893708021775964184523205701189123460231388228291347195975179510688114614713548720909639118331833848741090116059809574594887826541161596948585909136184661160523624884951239487358025811059103681850063577206562807018612333764478292323037642017730905998110501595646059832235946906508786176042740597098258600725761949914694481937938129770351286774727490817674587257196536181641903000276416129499292857839375197837996083245940649706460180750414497697195014686216507423594470022656709139591149563270082363521035999842613353265607248435391709899996267210897081781000774693331245368542328137477510239632473269345744550952744481152610780274316899091254930179791357423291739133383311937911798001063313499931405815432178738302586447899892273315573659027703649512349364514721260467382925257235486401397835821630289089331973956572443947169820555241220164981321662774208825688631714827045092789627209457908978789991826261926629795384897087811292912542404440033842596755434490617234905026570222646279977051226410426320309771505237875910944837386861731251712745851029927553227485689347500488117242739400372460339773355193745776844700663111730233284320986959948224586442436340337383360359266141008493117488558710307708956710833387706992959222280017615955267627506134656461959607222485002674655527900078590414991055735954453330746825720950902845339561784600739041126227160155741363402674566806237186946465091864069968649452522051200233915910266724008621669869522596728513655434735078169655336789028520691944165258913296993106685070069094138604845484152645654785340776054358871073924983069876814073396831272172467959903110872048372966651938717009122957929268426065640571029670953082190867204012257490957616161494695263822042611646925452545814526527696986676920521815789398377216133438585483326286599452039069227187476834332421710340645929000764151672753977955952491114158021046395969408402098151002522953508725976129386278690717491273267855150800993787094456340506431733817965877996779985614733352933255985449721223719877944882891334316221778758186133681022863838626621896294306413172224179770294243880041205830794868149447909814636390354695177654715428217171176591843644478761795834440294067716266847859533362845766214811613534600431369421407304086040364593564694132795784235837262922154085097219852607248080826948789890875256924053629921033891622144011193503970404005472905887045137276803881342490594460331523751410930636852884226405828387155541148435129863582511731950863627086352863018920559831906956044253142248269880426247941993771480888865050529884061861775167293031474560263890606610050212003498984910818512874022468904376508216144027931690139888118058876156320438620761779384128501455427954108658734937279474131703260458366756658973981172528202938574214301818155792974124739079257033469363109034254366137833702193009998691153059040378690270587279683525654419349101418301540479605243501837964274798827313502337901288577008065274049892371236490315902948716526075966147243848923529380016184423085983161175182131114239649466581952512816958381916977311603699977561650716761575572625431324129812009422855635170504376423583131843524641645569665640636677965289168197717733445521761855387418822420179339326531100945708364403624600775470413678044468100226102272467345580510408247206632731344910253298907274302544061182732797383531129078864569335197337330919530159134442894938673308017834205942047490458256631093255525425065156422886732598506005846650961231164290319399387658102108689793899963906324071096478495300267200780973391908352627028670916468190472198997827976958200989120164758059265928970435935795709862925259032595896633202343110403264328583398694968538527195611533732191963360323844062347334918637765522028340318128884101934823016027041742431661997492801618723727460574718302315059399879671269889090282622072376705825534868189645963444677815312764096345184619690823916437651934265630570178488880122253043526241000344091380056657957891433450858732269707566608114611610045366654627756254185082529917286447050312382694878982923230443420586622915240057335657282488500389932255487551134213071782446451828301212371998862021528785767618246897297811516818665053677596166098646079040665803137522116970599046791839376491989793353068894761016431153620382273148408383154277966428872406832634941837872780974094525936704370422637865709049993701874214491037950556424119573810571785311334406421860033116998192759475434322433065414483418765337647951736726835120411917831751318079290067598945944431401845044409330431305350361868108593373313163714655882108787066387773087432612259444170438087673489132372571819949330297646194543200893266858053356476038174870077106281704750324952118296102788783049726805414593151850492658744480131796815282365827454535118925909014175755777790198633107692904423285413443273596363542204618376022716509263980316282630195757678710397298043485630401872066775359176503903865244150083180039292251953552446990801995753872011802141874988350107780617731145044636357032855932217153384868001389867465179502970047552284735838712783566041892281880129401675080116584264734838004422345153736284678910531769869096995156132930682276653464509864316677340049211487849045814050189547758417458419265503595325120158616644169373006483336849967245141750042308956861296840041969930624462645261417119859574261428826567988122238164620943557327740996798775716892865372082686843056831442003452660276517388995240522838248406125979971273631187621487814925087816037718914239741354250718964061083387214918993703586288908824641726099291168575865239261570613148444998162719508373262869190618562998733209265682793343612457359399495015043954746412624753348855822655287332860827933717045208707552702363389032985251019688515841781391987579888428326293920290052812020813962784306991719981190976347131630466453546717563176699491153068326863196973880741982468872911882818442335493059764522645974084756560024200058447205405967910668626662338170716773352770577009047131632270048118484195348023438196528188616304946500046856801830059793572887164456793366783007264177351828746042782998198895612258830089205778135340171652776724886727524930086430954733559164659228711450191677537197830265897291433236964578736706401633674586053628154408476074977623353966504756756041556451755035204920746170332502260069150822342053467024587764825191791775713234577818431419124261935260463590036482507652210687652758061158316040190242507328099474527740285400659231035780079126647608264578075907814635976906364373517127791764605904848769876765596697974319983246686801309921753030139486711777392595089537031918652185103915131151753262693929698202187695478897514931034840193555868774063186110572399286078495517678389104958577302812421679795134630700980795016237389654151205241437725179906891783359402639113626615280639614930964547444071101945859455457119579919515545934577191129965741115116000886729926943203751538765301702869870679758318496658583108354596656436239700979225584369566212726230042799683591253243386089853497652709684256658242702595666553155331719250245389598844836041564361030601952041299307547026336694600833560490707354966648639087030306377933422844397355597719143008012178607765398539619603593539300471358861862560642169657638741232617450154114031737143238502236052237419086981850941764185778552890942744455010838581915087470224533845309277592107134304438415047382544792244148555329106856200704961522395395791884601885086362654983974188356825391127984846818946268499056118102214633717051873354216957674653820964892152429262751596490547953519703143225811753649782610929297984939601943897207043678264221149330362815525984981933804442484640377441295277436878946764719754790204677708545677154339438552836761649466066937498964738059424324156337751061281830879896805128956898577308559790940894834519257404010130005960694736608311236140261923379397902464595153864983252845057251004554074055795755051537844696015341522682570867592923813525877387271515332930878324391040464958313982600704822807186692558462079922845942736475463284973741732546587907071982137369926271482523760532980411444084429523181029430201973284412047589595884647045917302260439313986151600081758352090552702310986806301342391414387801319778586925591127318148611013515145834861926098099554390965900515400783381227285799424757882409976505415685514481475884516585148436428374188931629865888305417833875657247546255208048058388555761602494319928645720691644401010937353691578725950165219898742782345562139403180740190891548884457408404130192779804125101573918056849161107894189219922573471070827152934919577554313789033394510366120286574353422731261135937930075052239808150449003680972366556641090895939314873894753427818944154058936243149070642176977136684415777944900088426036053660307459830421457777028476571944922894991852132593203094049857130521922997107650304924194376652848657338450042268431818196098916368453805877820089800318570168988084801599357498241209971554776332477948983903981813418410643864238550953639585125289839720807808986229324711170171611870230981866118673881113227485386841189624073088236255752244514754309571935165233323209724493990999927286092405863074276864253724911862498136447857839898436599045179770200492753305438713909335431584324865885815870832990616793615191611754104531767352248997330779999512957686952186842255536896860746585298068677836160473736309850814005036575734427442341497010249201355668479887277198940638323329985916494244418607160932439740768883036110339098342536592568751485170628036711111644197113139398380542858715592181983826346554989696444809291650255576834340171002136996754382697408177959389495800839518667666648574064730270116809877189336927665385104076199318154740772426918054007730528345182440301716894133254645287982617291177351857907064333361814696234882491318130123210425076190342390511171174014115024512884135081719534272545701542309477548140505944863419363533838601157097055692371736121454816261427625918158092255227860902413248591391353256893540109626613743850627790444823263773541912898217657344064292647299179247552261729370599993141700301959571283800258117051391931551180855255786674069183013365022205535943734244867686970806626639972902943664805157806065345425025292322517411896974578272216167406900091952757633151717145238659490152666817249800802558556657173570295608707958431365787704253523355496847846170094427627254859395794350036761241575276570413971897780543312900862829739739110612702714458327150721549180506377387699012967952804796265052409520011826446480386046905498966103418005653261166560228022299485466719753472903414192472241478552107620766155562103839653788647498767693302006700530014109288772305930421822914938570087572896167829802935463803564149088502950473053654604443209013410522596806248458621647026508819451050290382588259407618522673463916559878803939290674802356331177706287292222446025700492834311836210314595219259615056757177666758087836147229587664741929651997557439098224231908583651743788511859717257148153092053091912047219920895102995061129273590956120648458220176929030645681732947586998712349434036816997155610196312729541524189893884325403661604022030992736210418652496117377795732122346624606695984285439044559124721818466369091195358913240620204771288223009363671126064791262639138838004681421526882202282793844696155997912174126844844481267809603642787322340810134053112423980199215580072580331251030376627780400179228320732745437084090631109713910612813643323885320420129550564739424818739335440060524397286311709458086530662561820537350523664897008974518098433299039427294958388818062779987496610543898883210425454674711780454863376965762339811213647507182714009011906112790425961828429840088760413197159224180810405244636739592982398554172932462354598006831821783508467248203769707320702609149342154020265373195588707448523597274634549039244753570777962323368946073474835570042779603309411320575493063070478403080308174158809830055153715556861484598692910964756554493244732983231653068825350162723676540847221602317193827445108386269821504301164287992553465026474928522860249848905300011186207917000096797380581567079468158098311187249662979677561922690393457409338699044448958800587652691347917916225014299779239838530034974424840831454746149917319452538258185963705416378788790267536270806785136907064246615771010740818575970306182407631340523718063395549920678921552664200968229750529777717716932337006507400321582224355223582704327843775673968159876736173403428661192864969040832376888462470545732085115316006622217590010887817088151154172102979629631246345097954524823730792981735428564872340956058211224328756461380628972005489348432186161602005598998826199345024587230248814831132676008527117635183209184090979908302103765769056997936563219234743625847787373860218346924825175315246649182626896633356742305763206850720219713847081827204187606547193736421166411100363193307462147039625170063098366709703700616733198631390468860848452094425537242568640364635585908462061043710161952550203132923012256490321864155966745203453717863213221733435869156092809539076100968893630789149040850963594696879688683872260190634133929290020505793438954182141427178996858470846270917728584585847862654892884550002931225637545858041500528747295598811457682610966830073449536502619277791004831071695365185307712339903540522796288875438191831291662646435331290746174080638051605875270953906672245704843930117232114967065569083644912577443550637222554241410842954336288079289966149703546483106794541797896099751505153915118738324074076059492284793221131476158889305167576104810032395408424731355208298212289715192472238036422429579283527558772556037536176780350821147457248407689234727067219133372812963815613206954338483434370368253016693913459722820029987930028661133458756957890560730759588578379933370668200285159240639128820708209642181288860992610033557327602244798774265921019869312255646960824865693031775328468742346211538314741186337873701665984877199685801854912063103504112054347161880457473716712768360702834367354751907163958414879842350753831282243722912218347808774118049446053911221874259016456706085770077851046291969580300078318334098351417785948484902979226259975721807405919775542316016460651888378574208555747864834949824272820096933915048549650077009845522793587368011170832455072533304712536995727226764884083753212355015654867866522897354698198799934039422604654199939397899808763662139758412475371827123955208005674245978348429172786172212289328424970546900274948965742527960985421478372754404711666277500984386042892211519126124164623459578561400201946615023976081422246758875752117557384479370587032813781118868802063706567612388652230870404783717976633845806279548845343244739888272130045839343894966736398480649213105365706190538943080772223231221001257414046127988644093237009737155050234167017980167368443039332853462855181216927733223252889994585099245971101556143048066307318090666418819881766395788442011435233028969588929902906390540090610681754944980570251515581689671189535085544938877525391580342690408453656654847043487013085032255170942748136512935362448301243046428988484220070850160244897545561799735560956312370789702145153739989148337215830196656414823992434494771365085541059614921207235644255559108007390932999044056436847547296468059281978294323740622572500171596988725360107670094765065240962729590351858772671136311089177391707311344645684235007335355402333702169158752994354797418837067750122994315622312874310311592546430462014230903138203089416108950863768312447308920936550533390689486888318332042669512770037748491010836024705617071693172491092748833497888864045160982297198758580618596939962006037193739941581012411965669208836847907986776453917295186635805813663839943468596482357951887750687555369398839126902132910856236188062933830120170880725829369815379357754148402527126137310409792101600183183709077211677393848077164536765778457065864519955072295923052567463143153367619771882521329120952084692692009489057475894732894195153873076858477241419730374651364246565694931401851961452853074339461612569456600211905265437717485053080920205628841054634420442031834544007005197738038368857322353400637971252000436563962601558165952509426326914111394308661403933299388144836964783680860006465344119707399042594001083497242175732742465497261328566045333506244841227367473786876567552207830957593982914702033508300091706810011244320140081718141426683631363280119326494919300061922030407794852906075658780614463038504535364092864725046714143305975764327675595313556806282900265070095647284406961622859006740267710885205494874519388507365451992120272797697289708109015416542802073700464989809358561424049632498999830620944782800880993081723775581621565052002697987891597726760579153006565097666876173215618354580880882840936479665998360079050730966021477937659335477066877070558869438084845468144452825703995834482158883340756044799986499574395373052652926703437128071210767913597911017161442618060810417832219272151734714626137496856870553102750776934691382273945263223761338888537069119350676158828960039884337662789633276829426901151849640196097237709733616619433524765629399712671659447294301997999460393016147672575494841389503070323385117248624176731551995289134849122672795635364965542370042908290893854864421677456449031145913548573906829996400428956634208874392546473857068653151793964303644200224700046438135712814203051780391942099644789627864867359635875729044438810630987336685092843638162451981526673252915712383389886747291328870128975440158854044086196253308916935537548155219588301615109090066902684511393062163765956423401817304628214885801650576490499202532877189090177754462944568484296665704418644343866381364297212165276819758574191758499263892634449546663468557866722792753765627645901057387030976624442698414635613616502905622979289868893991221456859924756359196234758060695006866461921149335416445546168749810275250173328451254818514881895383066696709283420772444267715145261615840868843016598626104057355470077418905096824872988282932691290056739097469781900353432276951215883007989522780096391321207365639532646744366402744910210803100371023151970405582511326219997177786317801278024359576312174280688388778999325221983568823802993210680461300921197132255405087511190560391037698735629680832575893528482472637386032167960411503692430015151563070339008321403958137329295510978046931515082958079051059202184738716501399713755209932974809776671578379526974512672249122176874868375020932253624473799600823808714323968282679191206558187090651272302574626445953759833973021058591100531142460894673327632618264226054782491852183745060369314896331886818465129394660779197289811705598228619371855828124640501697483573446510734523150611218620459525982792930150109119406749257061701652480105424272372008132070610757239579242243445845861316907702018378944922495173412397652678789220094111146405428848930755856096637621880555254476740024111596991208026977960714711410918519844842098322071863401130496375551971128085046743139709912935515666939998200389189733576722214445554129097911487803878704260238037492017037957636290105233132413772885573438279079811087557985594378933031626893624290629622790669872879219067671581383826127843241123142819950293378177112242957141642068858752591520790544992793150692920845093032437011193148252221641636680375380424691023850124652822178575527920612399252956974031826045587692147254559667336653656228844357961247597076355595443780086628156962273634621409422330521470000571258900355423376804943385839206423335561086677141723892087102265811762822569203643505817145242073692295692160642699108698935749211921558473739716533248331785420684698701263492666543484176294060890701321420004374129400706735501032448375219822136300898449473895132167334100771658510108728343788459414540463692757994770677009662480826113885372033440581849017744393557091650843411598355259645628738536867170971369141698196148248569844555312474429858735707530354527212593845349739122302517176120804449003782716861071430636321149912559988915265696372296415177758206592241255610919247755414273912983506867226202724817482525242223050519323579669195750503012304219130224281191273432607483541211225541702228063907910069956494541610553616237866783668680858836117130732040767063220710046344889304233568533569574825871762492180267820936116187194326951914742365961891234318065228583881914566028356123535531073169108201940348182382674300949036908403700398542782902420311661189263395406702427041174160328217596191041046894239337871825929851287704741155261933218194980540912454937767494072564414675309665399799862482100184057707375016408913613551016204173655120906359620956379004605481168042067588307008798889676468071309381196149320445751420155858352648224489346230478169475296814467838473053538026204985807003254337396241062975254951120700190583527138002727399015751141912727974093239895271754054176036023075818562407210007306566887174720546914852348381129438965594248897527386308786746196908915742588181011630283795826300433494465788256931312745414373168722619605076446622425330413204032837137963406640676329483394475247458251604517166800091855729719385736239257159617025273809589695214071359466315919579157537218471234712004795897600395092941371303300569952300654309027568860556324495860849797748944354634298124018800373026615511372946450470310253861976101647307417663890756442042318639805229697128258356524472617363624154804832041620954720263403262109773591761329620199074563809725616168276822886076829292692490419798881222045625024185965961661181215200613144682238329951462895534212360447629705440896748555115709299726097453919267186744322755535640016347226119939116118366625286477111803357013157204784093063976406507920290055478361068410704667587774364293875931039089314699410686983405999221733183970264139079877926366352290481272948846962942695284898193523929616029066580762294749697364230079785527842108262111752816246744955174668081122488558688606799123563765779825013306100940640674530020300715629613422385850482383584364852777185344195610523433769830195996363197475646138024810910700177724208189851513730353701674334786495281934494492551894067820725398426335573610663950533307192736087833040374745077392210508939156121333830305641591402463869936100979535108083213622280961590206658364747202252314663388310450588133519211446204763234953297271849879069226908297388710910432474114359860440274578760516414938832376129519750031498223830911105494056198393719622340737638879589858741508337231332251560922292841741672145996732048108727280293956001162341437567358486391293746667413542597534833537820408356580529540941330563394117052231667735919110774151358017570256561005671434554210303297147894023321014586434870018807246360623935597160273594430243043495123683449668452773160467543608202841919245117228586332538260917635550453840343280558650037212801069244937202793053214864040463999233827714575099373182681842918838677288162246533102827138493583165682150401787375137339863090156739353973629855348161772815327490748619525866964639033627702038143769523811490163249150311416665810866923634509587852591145865033655184912555339327510892614234160772407249048210609866322464381864105126556576610753828657710804877305181893631199833422691679203530189782669444514092028756976461224899609861820056671370840222234099932639442660728881686707874726138725024309848580035826571273605017017271384645215132382628847110276684622536594627762455856493093650588742041316566292262839799832206994711622972105879134440803475628619826818538172146037298076865482632339186972999701154620310425065758770547830277870576944451584654925084615924601412222057183839498843905998903943482493382886995376621212326531734639082888724580655283439321733153416984692243483117738925212166085169703233523220520009257578277333325123518729976868123048773091619944860138228854385198823056113619342699421380704102864565396464066512419122516718132112589941152119890654054044784662145550363443816816423983252675178607288781001128812272135082181596048442634503154280805796664323939413700910022522262235665494182842311420802462149971107828340601395106772311272452673365098581467887936810340652862027024761860868344478122369062110613194906125921686409687125482452588307832857416110291840350626717124488644811083647314154822254080282680166261462389388158928469687255621655120618698402888882899209883703733851084030333538288239606829554974665881820622728560400643411100094592726251832518791859329761230335640852741485091006977589473744087640382113789168112914235367598512547190531908777069437381210257802758828342505383742839229193238355634008496352247271655025889138074831314645646676332944695226460447829907085196068378163833614569164118142732489686960216122066499028159036346476420837189395249714910827452049159324662946628587731374976113568194272836369138814829827931371560277841627649148743277905161366285340737257397759320669594063944946589921048701578242818406585071508670886015553278439997294948063620797334306099722809477433447014385358722244523282040213150547146144137954647849328943787565794878327102693133069304582971704294835996107061247263934930746394674589694838662993953971839417048895946429623856643056050710445806406458046256228976563080337462707494846048354661184915611975116225019255217961574150304590319061163739785595489160255676848729599897589162458067553722624606960076957383725954692154203965362945644573968518775512232541249805375452331391135779507614183433820118177601156788119016250787391884108394817879298344464804685467447029694499107323807294549279456609431415541938934117713814473458080489118892338150328709730368578032058669529924518511458050335512983465253362136295203147792998143740966655275478912705734203167820859363717769447446667755526640920556237926122671342408481211965326834152442608127508125697492359744293492806918641122482336822733446897062126370725786476661914537121042929561659889859884619473195056373455558336320540640438739896763491184171340193657915421816342814625548352289595697389919410088467499247882908147563855620927402068120417517899530065503127709807311373253801623687911176569126098933006520129227936064949940641499299550188196507297040161893217694463462202180710299107058499540934532536509404130256086374556932293399903606810233406459672770476501399374640688284933565522507961167927004223586989270522575896944790802839616269422448652341020500909318572833446268159855757231878384329863148004147670657127217428622047691284605170996876119328495818808007806811429961855705090719777495054261941267052769934073291533282396143369640057909522364646732993812337403236560144826476361324835473450881886484823154457697673970406354473443106139893685295617897555092240111057766210451387702026443475253089492862231902817134329272514796064071761805780722060899182456250950510979047760178094442545367162218779348884087471913729517158032767055982569204912610031386584747349959140879310454623040977638286691144069333661141709920352987741917254503337114781695022455297777442465212397482958609528826564640269441599726822407592598927786257492629839207686585454794180108861362613920739578534321626677016430119780525447648715769683725490246528312669019192031821171445736983968323710329587711176050497731943219122721896766637032485507777891922207705716022045104019767495012261236755672927539985654820702315958242630095897888979876564303844675189215194574095133025599475154380962155071130577546515567688171054148084516984177226001171085095824916194865634717274498635583251866173176529349689032903864796430812071772772997977899195882367453699547913369648109321787469031998499988057416780004733502907456280123354015656575839293868466894865147473881826260573716556961556371132634101056464278604220900462040190334515134298677590639433192367463035885238160552129271931642952756440016433949607510866634627128205254208379497199791951650770227789776190438229502415997499737114903039672284995615808905448045774327842175722821724829310373517739151373659571238868307363134736321988625389017355522234769669458285184944324784748309486010377434552527234593555897451593378787222567458909851423852080270445628900815175054752932652122277048182836189707663627345083976650334191258135107286882605663267466670762642737366185675294026841399490634286808478981604235568481098705173302700909923634380340756568598281709000975385001936467433019626404313831286631673759420348807207604588946917305195927069117649859740768435006225276554138390702287830670108527831133400243330640614138517169665573259644674689024648617221838101129075311595816350229024592727722845405348944286802680658867750058070851356663270181426445262724644696206911462456139667537113145043964390106165517826798485679987363820667055735584958056679454888268998016803340544807383251906707249836449286110011890315773224032743576766809655671807757615777535529684386565350488358553999625693568806403889799570778069110577082271040656647720571418980314759737755453303908480061599947291255443854354863409677403306769154818370999786764211279857324614857567856086309927502464037239408853435191497410750202366161923735519615954119904884390823112605509735889699429904642592556661589530421182204904540609512414907991677026948742121541734321943106770185692310204783314582048306877023598226857257236992264175021435827945025026935897192919771187687611416258363283833487657806683764509793469294018012209955040641266869163433183304853895139452883254201350226174367489087167624403501003924536530864968439292547723560885415812901985468469697995984393663815383433395204176166209562725702778054988546568770891877855980352208718093225245194308762352773494415645745788124119581570999657356076137610526540969466724701863118959358822500975754202552286225703616740822672611894305242027433014720674041979435363239377953955130818987768216160750186384116344749950786024539972965352454041092939539250297924396749224447828683478594577142836666310827495205627852198549104176827551493536885247486521891593476753566185089353637905419586626542848057100612645703602870721565709561732166527610967692574189440421879744299391934528379994563639238101895566087395922956272146666923990851188501773089488155095362629898411712780847429883280779123534093495140431269736812370353444544027512695287829922037540266500441881357722589275692451870415522064732383419710242827088282149204681040429152822343954624600236669889993291606163826040247566764751259292575360491991790663185898956759809586683494466541265275512358341814166058142554048036161667284154361835766048634133364506786692214223549202849088210209285504175156824097203707927362877715281319976294009070288865319436945591002080824513645081181798122054244632360661614284509083831594941860666994193955066872613594845429813184615267724305993138156696129669465388274315741224777357057670599931173315257547986053080111421119061202913859174745784542152066533192205224468233044885216934262761533114982367543299940134788176567846256691578390835242004927423361009551247025054920896962247202729304317003892000612169999778857680946247534656537811529009536072161843206159371501405973303364979141463770759991561954959044340042097972637613389269502805940686347405501657613741888903547777786075006767084655684657989487512710357093201172287534222789926323248801435626338713953266084540232621302447533771789108953156329380648932097820539198641823940046984913501192826113007640390505332248976382206062535672916249668376408680420002986797581784194576984626249148175146050518173876719380150142195305758904106253938543113626416402419958053294179606955042558252963810565473548020659664480178281649842704918013906398827171173376924023569794510852331234647124588324579067902549915135541710324196472017771604955852318436998149767975144867240612320522229593517951489170432943364270637540843441105405527312426828412229411519910835189461727882643406653889267478832869093000076343981652255187834323306931826001332367962634283621108010410307875844319358771885550168250026950688252033861014827610489530545303858369784576349028051497170155970403137291682626552547492923017979147750976325811179900403829482463097300233526644083973360351945625071773208686861007774608539738508995801803368910136820273540478010684749485829173672293019403963761160088417730989067185114865533796348208164540192124936275120730786732750820661349957716537968863480605714034635816222833334743346837624650369755836518822458680181677382881459688230632872106964305243732391091602371315808195803916649304739789340377169046397845882193464321385981270906063406014965111352474237058162753492766600873325614761642253277539966473178033044906237326455643692174748808852645306746770330077155629343789542221489720240038265547600103311619315768072182979408996339345699707517177019568913390631087099047585611842885351890029293667698982631780515165145757470560869127179974061233432268802229197933070294775086466098974424524837787603749253944510282339880919370072636484485189635460023148512165336211898941294077518990428031293272858035371355501811041099973998819018762658261347380995838379173876590049498708592954299535227194864977630232415607724236386914276410105038546068503467604292571779149618352477356591153385100671790481255966213746659949299387357902878726109666507212324435574890082697852039017306246124537566183132461094451128008757128071173054977914435724156470036092296684443158376875537271083926609743389256445116909523831596554489594095290846380653956604428861359220201050316053758626990705320875310877600899929991261117398316326470644268935988346388550822580660355981963406037354134075283785979032550806538336303955342015073561902494064440348194073098348707610042104555362551876649814302800908231379287977562690576716806409550203800987559369923549076001971949632435370096088536745581952365002279941570342743125622772014999990481379195189343956864650379690685127597258947320535671772386976729525690057601391154476712498868294605840591849012478968212335578500619223989602868505589845705904611146543993992379983502684129110237931351400298414404725475851783166863919995416642507596118903724870850472342615156814078555644659261709952571933666370298958742224354917027927658749243250484844977356394181868808891604373694178877845922879096164804073815190686849845834555254618317208178161054868454634951485786887739492606731165425312499096730077409513716091021480795945145338322362326462551427660108555559768368028960873783944755168551658200699659245368442972069556180034493393793455514590922101433406736351734157783714157153315466938665660766350898444305260918336240800436497684258993186441178308539231531964891806550463616398509159103590812676083854061122867548226963823907310971189465946175488764856807433144131603619861074342936035619730964746428975105380158621687468154875650149528513980065595118678788223602619132352574236909162936368880490550361619212123780840130843438140017361297100103582075617967597830465953692190672033484215395641915272805841705689182871250719491933633731455742219558602495546952995729208140379401182317445050047544175371710088124898852016181139600627671660671514470265329966759322096837136725468545701490070333132152990890155095902224153647621352521869137077833029832604178872008003072637600394419203916419049699414621182893545894690946105084121053078065257194036537516418893349050786136382530295189510469642334270895297465547940696762087809398935849199951924345271211792701879059259945506814812536480600406484778816662584657497907847016608191048016889129237738557670347215494837673508181723368675839835636088225046207627497598471753389527915869178237046599560636959933439948919077725083963536084012956567909338381546560313748449044795452007385469895723062635594383203075077065803516585743497280711924435566314006058155957107771576201996522810030243733255133202581506233862356863729109433691127078510338649297867908970002493415181455692239881344612023326419354374028289245568522464197823484676195475685530468070293304563123566062907896609104258593259167260365217144661078336362219095964131451048759601306335286573133337302078963646626772135242779241881219136759058596459366602418913797555397043297772669489272910356648316650021255059611405980783357441184059185288450020379813795204688341717721965338903807216129226878511241372336984298190573526048694374002755844764807281061249072063336135531983316968013773646176302812335565168418827887296166280472473055397781924962704013060609296791506067163129643643740636667230487183307374805122500605239103422353078101839216751797980439293072002496949032423131107256068646612232466212715281943566419045428022522457488793790090977804320194687684827175106421762802608794388859053963535232612023427207926065858881437361480082483282923050138018552385030458027397762261628063585173456076317445533166179337455071830038213300001394936648720021929628214726800734215894290368095389518691309267581391514302500506491789120494426341323249459969521061292039306150918482239467544232511214033813611314366981890041223515074806673943138676358029267767461201117090621029447318801290461847373117911389498362981540242597186145000966902505640431228673161223389817241916464653280317865845106848529220042626443438923569008646317354410232571143439986603689825812771639587069991084066646847289199875543411660654209987650995872568888935259825002244246854067320987999581219700340771241713158486854828435713306308105677752409343960498431584852793168910772451173453174771968845026651586992659344929666507381236795112451877481107214195589060386549867968463978815917133906544736256196551803610511093162148089481857091272961506362795698265916816499790758517943278059016801214193126908272179558889140375081318620457879608962328746348554144450199106222464722718624094757133773348089321359551852191390768701077595361859400621249367534159255434693743128391024213342028369982458090162538038473425091185668208254471104537360175777147388257589419339793122439598657763061487690152659705629315027801232670558532967306852525582254416217686318452576603794549134464661039850666530689512627417495658924189651385071277558181185288149659131928938620764794089017518168349078775022804923561695436165851681411959495123052010605508265626848793715503741469334627394607647373643138305130746866821186780379495187315919149757145780310579611488826595562204412271188145429031578288800138067693850597188273860787366422111057396672458473849263159474085816918792445253389136143050021799444834335817133902814849013602742569715846299445842916007032907191390104659255643675131249331021173278234859388640409195831619760298824479417880212940227635629709517087561256569348645061068065210052346127256885044886829829754269352742634545917475977438433528723662416380661069196817606764408651040660825121539873011660909969592805909576773582262728321532534698335133594060378279619589160898891862296759077179398458723023392117639380109639124397869515862248379039946125355722332362798358928865765362561716175406448308126793631953581200584933307998283690657207593252544291781069291274469230669196922899615651801498236068209304896957208440369417348417388247031359064364146702734528344313489505935385343264142595766756959632583548489077062281612155059326654070310395952075290014924482533803210780234094639774059758893389882231015403159009118166497223927108472968809661078711021806891795262616680495895449803759155612880746507580954857882380778008517628735731595888927197749931080723990047251044109180586180181915553967657472328138300980295493848576070068362444153342426967994627914882369883070434287735421934599270690724449341083719645304524294456561981563398783781533132597808126268055095936739123631096701852714534472620964849474566780338651228203914739253265306416423798367782520283241896351148943871014625908861351133601046286438012761032876185741375585248509244538009583794112359524414595498259070566474109943662781121001901678476521106417577497006959754984475025384676946402165863700461702784962324589573535863298507617382908789845924513747054260755820427835487263221079120123516034269237027114029544471741297090875129089187922002705153195638011073333616636046546088547232487688419111393550618165739380666873363712403979984258929693322920417570166667766850062902248412190609121336804763946513917628099268954206640216777971824502257437976832730168691898543731047693667839420977412992709686098106323676629168407708417315667162652130790324282263185474585515752293078453789226393434385027172130122495888920528200051867776118822698986827026574122164187600860016999173394987000703113190608117363045960897371486507885046850816121875117276433551834944858223116389779283665372877906028262864956413006249288523230009038952722428014526796979951214391832988466233733569407288383728778961828181109271154134746559696897623025954958550298792774190882820928925113136093619485658807731407422393781210655322833517917383896686992845577094155513613784299661696749846305406691810495524804114372122160846711374035636741759297979104504729185290102719170077243641704524223254102306954899220692778753563235495639953407070499578056153450994628264807889397906081558252436664507512154606577041812164130639082129874939426316240365326569236578448471796299255382153378566433976055042343613399060425660827926413089833187355977707639152101301965092624232531661326127255832812316843919635738644937051630958798019372579877200050633025848791668625459765865412534680385695440665337077723558222692784696932437066963356981839216876210281820773832538997054459036486471955635846258197207391307696856986450840934320815286326372823715222933803988178044563707149295008102416513967898273720993259529168946446091158640831252012002594409180698978913101523269995955208847653457705015183923289021204532907719750326305720548270120870725448263502355366860722725745274831798534458336333777045506070617448284932949866234372673554356654294030171797193802873556452352009599786783713698196990981280281671337079769294127854727550985475006186864098698589687603261393362621292235251952028075578706110949503609186037715291039936305041020953406525267783691264227127669974507215592007013935962076248367203449515094300013602730663729019265418883799934443836314627922619679344841822655311106751764772231239311788551220839473744608061800992351878300006375922214841316107091140847618726519862234245131227574174494083390562805816212635740524437936033770234864988844387268273368381249872190221873939629809371945250955209789717783651961156992178088098255310682615153267945987117174104673504422493152327381935134332647930488410781712458656551275349291167660486089473706850180901904519205836691333678611262183349020077913108851948171323975146647156521154508338624284430677710456207160448940426051796869185466169910538743558293666562139606968164871688470097530544943774153028066189962056383418713093814042495188790240678050830344898942045353639215884123632240682474347122034220804272939163835582439366720469776910938201422377387025374682635932166736924664270551051763571441465118926687551865476234419981014810681793565002949968364297286303058900444776604461093489645640862814484267544514535683002703214016987525704141676805614431876733910181579108494556165270994095378892697699273787397177051271134496991257720990235489575008061993067207498503194658256219561174940230762862733557921427316442427642194384271894239976904063898447426746867136812326607534528125406863296989673886555432728134947207073614730452049408786402281726649767404691432139997512002175251804288936122753132489970152015316876596846947157577672880702231041150815667229186066813982547802673731684266814651451010818264343389218247075535857112870219423131674405155479621540443587564470620828344235132379190962596342803537790122936378158862381737819660148384600462765251870511040824549658243393273997630236049504775386328027050703707042087527639330271971331321208248767311730877458939370543151995966207756892585225375170735582118113411915516381293519451675146140986087517591439978314945728188533926811436283709016353585601799772550192187276574515853638399421289176716445121084305096085836398895314522586329165525934469199372716278428554999344310986482874731924173913942963483209385324264607619583260936599325490527794402812478678430458990336822032405040946976789529661727770587156467738804032991907653137033665905300835244512914311539860872265412083384420667552755022226635974456045161989275733084862809601088673769494398973237406798868959979119984021224187691420557714107352282804372122396924810811049771379258297017716748546492299062141385812306319830240658405082552412768951041677671400349439598242627456604833677987058511980011192027137402355948845112152379524239021131069239534692376777332098579177419228728361218454429576078748358748689540083816706568100583409390916606118803784157842560069309303319968854420446489073258387100636591211968822907425725427863448944012840261719351540703301851837772665892734808729101140836629067595515282842203796284120028573598049512534762370612954521508086161409510765199540376765756551984469259993761161986142550179530928199260119625159691631334298393360167222131607896506246463603665209513162321790391944265576441615659924250101381274834402668116860067132803888953029784013316782556039340337693647216780884330494552901989074406306506272136197013189023935432512469632937652448985683048087208749404970230895193073513018636133553529668337876489178252114966834070575276394484374812473651051881856174373705278283403912030764666808539704676112767397478279005240611241494252225530546852042647304978325741818945194583270697800512574011597114962566129238684634642185721137766328271922537067660744340354738522956017098025124215830939489587286192815085080020550193750037716315119102164553388999250128291043833702350220626067570812964242566271863883346140120406792174804210342982949862638195292906745112859610385476750575634039257415190792376567820148156399048537072704918231714119097649249096613316302670097288926287328198962848529429620301848325621108604069613074341404707528497689529982309274509103613145136830960202254971607188222200234044099244623546765573366135389143656844250808330560445571073232952742366196006309226761647850867655106752401965297445994975100318981269015243808114739949755210837721176908504338996998976266518213366624782905851811834296205533762105971919469707219273782685363918876707617775342940764271275150031411414402534621299548228639295770320181030670166714564642923146277110336335701002315176296829371431791122544649610966988910766708629784343550596587937291940806966016738580017085171982982459418749170038890969258044755964556255022237563847932635463505445309534579785537584934488634809602812882988274619978944908083606182650365422366990833433374215909791933378268408909636300684608740247648118355009786814474499966989705598368824570352521340455139479304556502166521524046893902314946988119957136206138473930608468844933979729364065597631927578067478304043683922482883857098417964541128663284067168259278936546157058345277621695388435730871368425030407243281855796110708404202903756267400755972727879985189204109353606437362716308045943667139005988136176901234173224220331537326405170234410510498465483401760565845988999416173531318873194274813959550423459137915645683753190590645193809804740184683380997512128312520824859361185854078142701002347729279608772521593761814072069999597772366898484360014619330285308432678988050559007292707564229659070040025223401863893798826442451474306153070564804768711204797543319592894051196839142677358367958205856564447821357653829965186403072767962877118861422282163527286006728696897531668811676615755737445507999188993602476552811102874788956216193295125919545843341944672576787325642751719871717135486291488917056250228928036687650009804838126057950776572743053014480918737681595757082205484803202554499187115253990450935255210694593317166742698040657580184868721194523049663366434194960097444006934604329605992208973220240932472011287359852621121120230211621368658063534150827477958542074482286812239823465990532182572231349841887104916960602027056079910738083857429734217538115230969979954651865712900322152710082242531189110921649110058509746478548414657310879446242872150454926406685176682750506789095680512351273942814127493999625439937672504031716556966004879764028474598142058871368678844718012880850780219162796752892347677840977613754908137129533766200413123870453301270291379753686639717408811615565495491310719852106067834360917858614266505014551412193179480261858703676163554614089164468999467416896932648268734163860482055785510087266120824950572939235703830489178652489997496820075675414693118650211857404890101128450272116620766733265590733057181342233501479063572244934040934987363680821580159098620412139870383825306516235600873867041101059570311786800146184220138378883096888507030804520996032786708656936004773481661001354731798995322981231553875506780488392900457283394977723921667606816606480084332824990774994232755456617697792543574682509817356492124895549945537408124994532904656534784388930233336703147005509250732713615516794834132176257563911008006133298169451968914501821825677084288837413263171804373384592008628206494264124724916591933719031654119865133222126788615761955511106334748100606179238901002280198789419857897698340230206331812075094502326551136535717515352319900213445342927881728876456947005400875615040519470598487394260004956711925614137745039824087977367011348765197690384964349098548021037908740407937164024773529690958836291373832248591492687271499513184851865831639667506619551071170672665593325108540607358377515208423474996072680691910156641518609055432631029256516431466988133384797923999252550451363119183860749059688176843256617757952712447924345881933279484529518815306993323385990663028983384595156485020037557891450797530876683577351461456389130837707389451985956721501906588666367649570025730782735245153846415536547715249728135322472075262454917461233652699145457742127770200268658316772005392012970196201803850674569833021388034109994015952104132991528804594033086512688932846442169811984752080525349942673357671325833149653016713864149379096582977040845717097236347456612133067265607458179164927485218150050560797552151486866116662788336361657026689064069156058850538123042961903399155424814736055474078369962287125216111846263103269855642030035168901123504486603960890282458084852806406376576700764162388839710111297576610930787747133793639035158791599438382564139190069697394511653532183249466231678997707850967184073073432121312204081098430076894105767296216039386775385105181175343636355958022187907381346086272332645134166901250277002053988483146457061585995996127257414395745718526205831235791794771482663725674243351475230255497495297525671454669984881905588164452631674849913546962911325593183041755173140899175885190742603352716600564206911753708664749542735231918143523038525966967268312149165896971813923427877460325447658055682310259421272990202291716636425292457147677417946030256312928911872952690730128582440204524048615306552280102379105176122784013498830283979955661242210573673798697107472146119432742472367463885578627819809487482855207670815453825448788572715854258975692476777173958746025885186836900424802838357575982491380626472084853271858438417272568670167766869981635273047673378808091977668128490592844451022566299711875173784390491810843355856688221217683410629063317325474864371515181434781013517372722671400533818735268680443001015532316201140260868908436618199798931032888752086665474886340581928544192349639896123485564152988939221503128758594705463601445409351891850586901943173332404553555062917324318062282042416063161788923689018872731290580255438076371942077213524431338494472578429642005406871052835945690279836854697692732220214603901936653200378058216822067858448070975941865811538303640468249074556546144129577964297162455909710026479052255930316515010811009670135158220078193900612041180004753764107476099795717098505565435410298633838231292097895689795825348919301702766436775391342419081537760852510148204727830750146332657998328582025008871750383407855601655235254320319609668763087336020800590621342961410062806057261715674214241426551891063135059907491514881823499906104592406511487796155675478909039699368302294669911255412829673902580023310877415716864945757463152582470977065527719674426431615128244050364660616270754469472984296148477120965935860509945361030037984882339020172994911127228497213161170948327641955763493033162591703725896252710974259150794103309174048730482156035496200893832930606875850419178739669518155397036507235492695017123631055931278854888927990725889326350033115131850166244630125392211918583486285785083668703948179090345560335184578830505094119108291776458129985830566115400065092278557494381871096205532649571808428614734236561105504696957607998340687485578827239575810026543772301168711650981855900602611390442370533114303504804203953041879048184390576602825513917254362201389497529593054505041209238481443791671087446401760648083439986276762635139897693708889564321422190971044396495577489471253683725753403018692133025174501166787774175178234298984230184118260021988120121946088370851110866890582834859343984708871675825879108077656009160358201328791084059532943207354947472910651692796616584392771562353270402851380711372746846858145121553637770044004038030477604047122015083525836895309599931581283425544268560392935367680872671973473864337354586956948133974509505607786279141684545406076385453175281124108440869012645149102108314462081949354523669047436917111693457253452262130070626162727416279122297075305460759840609728875244982463622434836105346701828909825699551076418656766020023433405669478835254662083601211346692696847145033023164559019177441881015387532009112162803915153178481872939110016801501313588780568029311365218951946229984710158822429886806268102723380989735027789865245942636891664753096187884980497133057124871011663491737473561354270682175345057802413331396692047323118227407008695860319230595209389667334820424688557022821189651702807018289831056202678829556189517791704559561326122071488885482180706664987803984711224223575452554768371775061620786059289306593751943221282452788187295935279411823399600730423241504790537126114726237238036600184914272515874083462775001804503174220229138934468179498307507043290236741436195941859684499972506889419492054384688500368325408587787563489313049828625001866446472827128891949033065980350790901472969771183478497265108377764226907972429091909627724871826205988578136310160354836088464570217975448173527857690394211493382298773848652062005981790685658999210070862234151727387320512141249096699195280762379775510192894897449550400940517715853543125488864357151642341916431649208240122855640574665431560342253826229286463018916724088093227816398652901104953263866847714260314933265019755900719158000718470765198774466026930598138824531605929460930454140379355408165700032685866488073412922412237712558155067197134096038064201642659804027936232589584854413740269533526961924930892576227486831239855850619295290326403305544866738850304186290968802257418396945089084133311369394089410532084347944493213044519148246080316993261236918432596252507382769865302522283462803290731368667025307672415677236292286328014986373799415453319357220104040206107127235050697041211736941691256401487260217549736097711891174527089722459565938272571823053654617543147388829220519932012485023869395565117151528739446277733640360657294421210663743717047740191109180646977729770081266150383537436070663233854665944666754640306917103319360785046716697166517619015372434717712928245352768534726042720587483549495513435858952438713043851547115964183183175239453575422782963171943537563481845622131999592420444623319450046398170622548641873504638011951414919375508593598543199602984615248483993625122487747316837537984136354810196113170176881058222325290447863739979775964932063166694953212588058611458082441745105110665796949922805943519985129409702127610026235990622450110866047345647249334176142101297685477519589569599189750359915499120671819126052621449181661931844169310293152113949389449588662548962243095708010874895693831086125641441464544901828150737454475178413916905906469294519552071526315777273645896072722538449312699160903953111686327685631011878920746304738338662396557204082672051592170909658770944611027354810187605078305231678951566971658282561970822617203078745901037509693193123751858157471744262404024588400477149569969049812566176324117972231597983450442930998246165049665403752633329394550523957964617349064087008805090472481837195324146573622785050443959244655298701119603071905252029518257560453769535541811473882054387587679147572121122608772220583570091832883594681617530645330579959172228995913464111325441568765837797652953805444342285894494693536702885107739346227689608597882742708406163745133614871743201176267239983162567937200435922160667593095130803553827614973226925890084033339726386149002578038684264379141547272818810488924199045219789084653277715131038891001837038642682110156123835798154909137090761536204496782247417633308020847183044095115639135556240144581967842567070989938503935886170714379511262483260003978059639708608232169077194967931388878012208683562336678346535320522492648423810588597645136126083513356975981515589116594215959395244979113574593954581488754128881031018715702826522348362717218711232844639696996388769231177364885639555682939504091944030957343840274352016099362492963939126888611893650882784516993735757167772512676346637821455980816446707190696273614582398264674321733347621825654674063867538936725779587590700726623451888661225710667635093832223898599919245578593027425949191285588142835586739914710346189616090421836042692499681549023846350052673705838016362734393872149469143224587931546950198953866414528927980680526525253923955083925643519677589644281468331572928007381673727065638469237598958624380783795650354479944213753111109733855369431644814175481467061200824728963553395162199139862902909738023959648926497592405158761614921972598692302327051537182803745283981363534896562004020235819248211104111407049436767666609726328046707663189425335044070845185200168258102104127997674177648281966305229324056273231538118962915296835756251426200925589075260264546711648853464031306152862681589852811815028954928405286934593631741805576522414539135209294410722117389139651370362665388434153684211101584979209030771379139815492295178010805995355789903667914297514656081410286969011239220391953458009596000486219027401241651680867459111695889695608181986073142179450380438182063803302933089288568450863597354555577122349294127352440334554559110928215736283131488087231800109494091007736381914821834716550077586402195871563440050905998573262803611517332268246514203303621128126692458801011066676088572981078316974112432300776365718832802575885048231262103314064052616742433703057488066774978681389345296217113465158681963430335970580486547891187117627976609378539767061933071577754587370494430302187892173919900048588113901520031895913052877541203545537865909790602617393985256721390919042645164644255579411353366784167020383931954821081107458068477060398858971339793707729719812468612011672408745350619630936696059026805432087290604201439247604534616236164470010377119336876199931182626653848402556074556440398421971794066507650765604717831215907093888322534712377223678102719429493372848067424614558255639949166613324741064702776067651977518625723065427614259813855497842923356344183748661291198027691396970730201577898645355679086379411501206205396337938497785137386726406995365381332063990554962078984534058593684267871112596770182742551955249745754256907466585122468034164774195698771493988288085702392716645823059543530807975944220481251390408456968866303444647842475590376528901925811710844452165263458896229269433266575771460759849841768639668045180373974388902832148530762971086048435565607489543667980237996326015542172868153070364042568071579870146634366285702205340284478544568143879787243586330591376089868812298724982835723080902760502306611799434733540992213228953526475922628438562242643222694645871948214721815490340529584215539424600836811371473552580894177412632948846613132556970113005998645358388235836386235263257751020702394399832893372767135645497782549706222376879214063607321263644781123857743919565736856205300231778446697991059024843819093089725030952538496166718771537006379064768658800289957390293324768169775140009215743300491595182917168015215797518576578396037597687556051059847826806545864449149733968262366699265095841658314752430848915245424718999022014623337830180936524970902733140967000100925550305716145870867642814262962211210104931517085286253527694601932488808506480420385633767783371682581465721302535649486477131590925454335535252310701383163267130565052655778736000537889342825955113392985887111748730073073913472368578042481020891611592713250523123641492363315289723313242551000198653221687641203639643045532902701731956011673722650144189598604294689656164197707297639343077358503608252248314331588395117670197690312160002101957555008359065598312775138139216207722048272964379842978494028363331914312491792100514712642272344677962384969205877392491571810270175250566244413725562219058057761267816878603573592102995707092596109673739437741622280271051092895262572970378448825247899311410243008878411773155781167683526297430741894798792435300509508663903690682909829342895348147759221460677051407304276712921026395803797907357484218939148648734231436930577987832452282926358770491911301162515516876300031117001188825512856101324388347595486138199322225054909258591682191578859297055185365730743813205686646246444752305665316208688656694436198886447301772496689469968504723866210204695841425147704408434124616721191228484815600161871003418713676010657348914057933380548964418949135580137808435761400378879861703511549490001510462010207977311229902027434261917887342428135321989774300179945178324435438357065918245595702214214545095277008444568422814637315308878217893226198287633771217888975703924628924514558022620769113478319395960887956092783006104267101659824701244425831294539952713241120346439909201526941902335926607838365988950207826887925742996419451026212783457639278269529788574098770543467524977380862366022851223698563443784094398586449279215273946356667596871758453306789125144374494885321884936648938748041873625385986554877987354760928816276631937344137391012853410845201105569195843682685354701673499786907387941074922171710770073652168490645762805597093620645057051569914844835253117639924932671449014139539245695687577169763797294157704064978950085367907444376637540665618187370600412227666585164297628212250103153444502196924842792638077590081729656736626682273316452437918888793481786795216626085509313914535682867431917955149249105018758377563404781010471830282593266963822621058646206811998492900966708182402370770650112839481218235930630739430739975630184733706711723880131444525421816365479237360017326020096958862026431785203553369005015951919714614049430159268101976139798548692825819254721513498138739164925932561978565063686103364211011872960602878755440300322777843745520485986573765220466117224783641914664829884142317473104323966377874143754600190442577034917219155553083191331016711289409564022184861982719799460269928688992479347022279462690503421288851408443954168669885435738330083650090448700201075871675489309674902606345536246069883715499703974464338914728495530551143499797428696903864935668465921201631101059805895371936718132279263292273133251744672890788111907639944469111603980363239322596722636457011949962906510740330363629403638900995173112123066221214414692407937238864379280508271651301389177865557188732749431588117041007684255855338006445860832536354212184305638668355359305756477262538670983960837398607430658424130060521020105006603625889545662314246713992076254137613039178199112040262416822056301025530590081113816280101168530657748887277113151576553333605170367071777114932418333870342296598431212152515258122227487877958004482129765353943056429229865153499411399836649648357798465927658647129835037585384080226872830707138985893238038413961736299046479435840970466921729240175033661671525749307854911448060623530401105856851897465925093657324783575314677380887043904172138403870088112917235285046804435898950546564567497907894690951048756662203915289098548136351662599425922157649200771314410886214939408393410323632928467708872333337284259926120244730931072987021819964997419289805490762280757825357744421472051220168534545829093967031727415384427987639493083312156606409243031622190603125954687773035416160452201672731379109900258416973031358733091160710894226802637146068935905609240315212601772072622691073650160182782101616699137303412116259264597937404870273772422023541450076216812860825360557152851643516066941863963274073367947516800795547231569164796801075415905551238118681876705043444247405941142266770093757559532881134396712266673871538804128180608652283171788524634360452528976080189855756374728968502278509678694923577640848501696585446757223470980004315950905332616836820527942977561303110680634574649611375190184411942888650497044226831087999009808343936593283710193795037670489415545602031166576094555310738590525164801540727191080189431209503781869030427532780249647022048072023560070242905737280170881389203705415092295556808867152026277594881810783281263172465633347543524843002610308484630326170108816949132195132576276078650085850005447901197256612967118368005817097681060186457612002983907331823354006915501938684228088314224955564165598465287861537658651989360522167612503309493520151598866241880547838742238542485859684886789778954390763801705775983905431628621391749705029875805435888037145592176677364760469738378321579385350898992561279023762761776797452959768529736325898472017835598956456705723093773236617017741883861605985614512398413987036593401226408381319522977758058740449902815698538020729169620381207983338008648025588323568844696566105611111516425354247792513322680390253803220464663357844642517964080389758181950048470403717679453749778682390202643392433645887874221205594172316231323843160678400265686451703579432646789590662331608730245118151510229914181063227476879438243205181906186088158326242932535506431940104159098237997362039097847223090360437339039664462222604156523613462485135991705208731882578086956402265020513693129828449498067037567806986868886988314746312195808279244003455652616510185224752774724406586850727859090553021265833006056990502661008820465704592990763778777010409542722676193647863397435191203867811592417794750489420533152966755249107992305457412998285779759507613378561265159400865579336056243492180944173374885417191740277975595027827100006436733124347842689807054672097653516282413816964293554315083158859845514138588414100636045487085098655354493240983092855964430053012872184250473944307237597326802442488843182066552658373212000982372641286411707950721654492341781038174592152291246379194159519327481571474197962318152323598025953383030431842922792225210033107425205709450460225438903755178663158292199792730230610830199624427856820705768213366947828563099592521848435133497253729318395107084422444318304238516899962687979441047978856535911546954715988595401494518137008350134248379949521980325254693374238260693030723054149644019371093788871297608868809132863263897206497366588358358553630979880120340440051662881800365323146788452546454744390486152172250223946996880573679092264723821959741560048333081617923514620102862859024574383304757162747572457507518898701696667958811433956110013195913913684519805924416732083077386301758600655712823706730999461257388000705397040378979949570724729479683741707559099883597405927285778728439201664419628725828728048400595798442983580391369721036527054146374442843796385842968324255976185233300275654141619106367820879156803496893564785437573104604316686787211612904478077944838750405034006768552108201193818861272807754545117107532992235833427096611745923048441465742985502666865501347515813897547441819786178402264839592290971832639349054681927449038152675376694678903373405243026765721046783118592282836871109417968392072778406246552345073446567902723618009983518857869699113983744096209036416988258820944667765974757097070100179450619158172839701464483125600442000759510810238203424554528058974683905777081159332738144346453962600469762311599880345720971744118149277565854253818855417779559441447926978331467311920100033016528532001353967161432714327052705794219992267136209840617054698813884623595894345746930679463632192341913983440308964583304780453862639814552077891777214481252502346873449726614527669461926691943871025549466477388869901750165941747814601671001644275656648557506347691001497645319728494991401433529231184042015226015630473783429949322105342875778529029091618359337471341657477689732783675861345844746440315402217233634010038544526663527423312622554502172938952374210427994027207402053328547651998195021504839597767380653413388094697552278662122963649359127360186964450329601397439312092709997056507318296006102270804492662158033929346782495570389429439408944600532615331430905118900241963435738836954879012541329867254052187445294130705164428129816051429064925998752743937460637709335278217012625794514709768761265753078922820462343575439797550283686603676989663882765079777400667391288738379495979269227486067469594107797629304191627323754578187946817398181350478961711810351413885161258385720534092982983671093148099597887827384577987578773878533870822938185220682958413171155683035713783646772658767314599683077192992503016796821044103256604373886933775661662222009124360809122402385844021929936102941173723294370267731202040517939938406765324020777082468791151379929978672285008721291785305758450109082416327456238057881838373628143442719546858924338414640559733662354623311357373322507254690385969797174170122141063058293247326082220282285966720241792281908666355966988805029120645204315826249443368174596989268257424337231096455772801641584499063589380513124084046912221163803731991837274924960943685665773365504461317622176610088147299381108372518646559061999429377519809220914511011694094668217892038196124404563481649559927958442628732746147308445434238541333254601884664673823542524894552781538168467826664657569108603655833718310516739236035194289446849909574525310543153822360473192182165480348021692746589277168190907657877900623547190518698569960334723862129486137467969706063056132018507217067019200032162743085840335545756081915698572534192701531447229038919134337450069280995092466547316874126739421911117780645170802404313222898439186472990601889054454116531393323474218340240531308953905410578339189458059732318169065729910354895337341671957810874412464304994122077621943730944696976289199337737568783136094676978507325907311242766568715615171218912787085467840544492826694337125168823822143756268674795298421538176195750355122896595721926000363140118766082527881445730267745366606793709372884158870689523342390315194997298491622161812663953632399666330285740558978309676316231915613773878735393143543487903400784707998244424349138680489832701455908298361961322283710081125205744423029776855918764254921282834120055159640237608400048457825698124497986850830256320758790500360949174585692957894394021853743650477500746637500615392088245652885045903629110849765205869112455801761769905284996587859002310772545201116365348004642949649512185604974837274654310786180166431727703573072012481393601788411794489227915573046497336833289709286839080515694501600800444151789111708862372689566979308185866441907857472870069237854986719245356041741659943318459612010031954550616807283379190583544591302638858154985712772323689300090682050698390336567932486149242394809528820072616859805682216606933409022378135608976458872834234443617600265700241057390335008056960552427128740788419064043572193577596744143742800691221454974104473383103451583801925128284838683982000859611840965286505403093166327372226127689447479614817267155484640407910387154830099570870023716375505653774681176599185059122745069091964009574696967887531404864303625244611867452555992821562002764956919757965445870434562653709437030534036855598521254114369472493822421737720694716941235880336250361037058305522806914767066258545787780752073699409911155502782121174076314370083393807597050472263538698359507463170848811714369255396937639237004632722253352761609969168204779157609512442954880197047635665951885774589863681034156517797714619004675378188209315513592206743111166572192356732812446581582355770882742946208349966931806800537729457054584044987302138361991709108584436530458692293629822005411412558708684766213705449718060482740749415960495911654137240479337874591720932946687451074170372892260412972677230035497090203719743382027644710771785935413854533420369286892691235028447465745804735347180031377810987565808470013861027878752580680136269799572352858035843631938899203412253134565366425592078925764967359034654364282863894050111301433420405012579123128937535861941909400292117312323869180779068526353822790355064581552409374717450089076415794448680561789974861370595642509512859099655235287637399900391679443895253025341862744097366825915675366730368591820757476525457508368536226690791548461991500975333205103311261890864161224263996198587255108475579097160964266107708071458943257796439362003820217637145911745118373958979793488253934194647755291162645795478328317725581391096933636467951589656210508285648171852736674009572698706883893334104545147368752514658644396274094716210176797293920318330029543966959808149211930977480419263907227634378047817254981533788991090966902961281375672982431842390939390896369861383124330949937865501400883434029162189983132704024530614994789254005804888320455850193095134717776620710383823081576982513679931382812927082755695559513108983871509169194977743977434216911295834326869318181091037915013630715432560741390538526875585158017385811545655925582891898095141161882927522848162209660663661088171881724750503116738194148983396223295052202798057447005097191847992306759911645617542028722287209409838133667780287896810233247151852127330720808323199885977500408416650457214684818772725899223554123862847002233010740336631250617927777945666888430149442040619105691305002084557612650861234222656066086180899436883786498321576642577576972039938699006491655172312720257441171451495929374108006248882248670454865016192722334633691473100860022608028882203569538428630391615380347278341065692274158087478975898633160664076034016980137502656893180896784358479750678897515863476972957411326103695153338835343509982979726868498985629216523438590338537766812432361282698159551167703770202559375649837845982480935342231032660336251745939922956862143213869851841796095891888089607526315864736042606164322850496813238110800439527020231241530233381954642165963495243677891316800662301373154379626457628519869904247719351551937196310527790858190509238679337125215505013884167249409716459677453417075378983102927768620742607590180512408459839885298267187154324764194924591700681615442627954914804572105717783655707703221006285430138528190371073507605642047343101659301879038398903416907300827118892489300584617921885644630588825045731110312767651996869311089667512408563192755787417806172641011429678597368525711154921837158998102142685836090231099277424657425204860239432318311410707120852727686680115717625151871427160584410593878739884398217137119000502208809217932602249810606936380840132667845462880157394265642478075689384284669995617423918398418508856827261456307836552048134820568359204278672247964927648749856628868056101041365188251272880707219754417753766073526407524230669833398021705997058786708678606542914198555849141895500402063338895182924038077589015687803946267037945188609298100968723056625932113221005936574360633355408620494444109368681142654982011112936492233593545603115000621290839711953772188113941261178449882037750889293717568433866073023722981072203976548654211186586278701647808529493997583049448850972505321878394568517568568316330251042329327720883971273203674042500370820673156419170035433709349841232607968284301116830194507608294955562670208736078234417599410001011557975979086478229447820999452042093286531232700548525845317156625432278267552984437404440432414406658453755442895564625716943262105775150452638140736695022857425567708509395587840814454765644171148595741634076238273099290772345030628759093550505654280754248556389209383087011355958979555686874359969485274709513096078483836568995043666498083419601682106243405400496796573948977151294575710657362947603912934948968508009573802959884543480301175642387974902608246968613686062462661120184799137317373137682203232115483223588769500328137891999138788374376884007714603861524591133877135363975610755791912080578486007454682799840910037907075840305365704361155811616060603537358034621033955066717136313927644500901940742358216588751098740265213691521379567723306714938427932867308459235421744572356682979880409757466843081092905774491079539288984765901307854768773353260355904850624971274755971580771970902361167255512569625724035225769544000341192495607841953595510313238274293473740909132519480556227212506080073759456699416960882951620232817472149856780963010338281976899940957296834337214947136868777171384677165150251576402533301099619418170823591130712824120389459859079380429170758601109137647853822056409361276652249255027998352890135671320681661109050738922748532461725396002826815604418628310193694646880171356360370883954721260285052513878943103929117683616660708155248614232069990533103708731677748088813947865544949183844674041479543995052903070902664545561445252978711349957486326975637901057706292374690422448730346314378974327706877597661727565196035595541080492563603260992638183073227007236738661371580101318290494751625816934505557413485909388978718345050549008974918493565123193395161738816270214436742552836045026559709260902781427416167070688520023403315352835820999028821782619616125299132627110779280598715992521584364779692116555826636224181543173497494837190949074134427568799384429040903158047706947315200764576505645109736492989662283270339412353270842375548449224156100841542209016344983905161700683330984874970927602668518538729168756220771312851715277379861469793312755052995200440312463925119739840356139162783160724295175498613927621548383138924288823994885570577670850294806221603825413704627497375062684728712770033515808003520543359776320562124709270072667185282225541903805844840004080341778866789146674447273044899683168935799208653610612773419290491414738233813743360063151304154692443670975083197709327446191263417403029001526015069016430489585643199587615474303554708644046287578728991362724150143362990878761555305167560358844419772814090158549416628844193871413633810489918798188537321073927871799240794907707884741991454878079986372499061919526695451655186623545141049407342184684717540303327428782431253256385777945267104322568421520363671568839856555961209799012761941528484481663444219840139650816586677200551304058418554252870346676117934841252820264143918814690134392118057193125420697198891573119938537938532520091613666813469002693197431204842430900648965359723891981509546560445387340377130509866276142392060839613580646146235293894385205315032875128924036007252870618555240861391534197114378394246729132224615530636768841201546207235283175410642259225988931073644947582342195348873845703604762118844671910937046416875105759585314018580475929607982366859565672757464449364288599591983800576793973432229084814779095506253830235755668322046168033061646093250896257533242706547295341363350044237511014669448688945830417775044954368916531829507298521451946902955455100895027834208089907721921831375247707512929802411315241804538385419332817122633980606864526032566411156154794712744585971103505989519675908638809215076712641218201285518923273733492783761772359400749906468803242930107598875469267123995230393186299805258907701152361424352928444051616300099934997121572526065373901755099477417772316588975772686075631438120986009121642863018644873582459378457091381298210538857738491502801354974083474327804146248618307132273373617586073293260619269213558760533893088543350957908824501341843918041660273222614270596216902219009396285358925504763179830581336595359714033712831850257415008144379961905306724253442380286604804494355903197918963306606352662120640913595182447702226239517890877875548038315542824322622735572660539984458654235785783742063308419196853888353403295989013416676821734985957135700953792349211060135491967223709135399494402062081519225296656887385122063797193094302576524007408819258009377695166912127898307457106355271590894549762630020319834733425939536481834110907538567846152485116222677326287101876844392626539997858554100960881863092911895719856967246852318075926960851420925625409492952740920055822269547552826272426576144744107196188266290717079155115905676879371898480103604369846939658078237323862878263267010358887380281558391955683545804730378755959029683413057612843466484735667211216214172086480568560426473280255320363650438284905384765249629757159553905191308379386914294983214972332723443675290117507390785677135793692721619065735369219166936737433921909001880297335293087488816085598602202030227565104352184072178567457982616513110107502696290833705509768936839681068775816875319200304654146933092959798161037445981831952304025997318389893626024171106885893065544528715347649588673755924456022770379715783982072878873773071032349480590249477641154199100227314916974276209139696206064998393128172158097075227540947462855569318767454988123158330812352613040979591075974383357597781873058448713935435862341577055162525177457238620915740228287318028017444061254203340905797559942223050562864489178829396561262945726649789508127507263998761399645531539058839986642011694013739288130730360263795462907295307773297753177443304134159154002347686754329208020521553886704608921178420827444275101110783824056526375938015012182159973401255698342102919531426723787300281862585334759806758576115280062647564460906652513336132042327277786901609091498436373447142569625460515102368527430941543109320265051509925468710130398849806545560695919447456281688605843473553663196870088867037001276621800976298348937605603314431947278699133050034973951346337319085080114644654279246854421503842788635869168987485825947274924728801167356812236120444810040076260483444839764304065379912954535553404285642730913987412306778192062891613766648161658059018772356048757522588706432873685598218328702190435170332600994412984420684799567812339240027671548317864396033280161441946936739087089201514063920499116133079717625941335820054289199929300850433531107226510880665323016906270647102120109408753047852689173530612057704346009211672416031108373053984063757969033159966466993587620602898249715257755735570643859981649578345708281244499338381567420303012189339946987800370430086547416254872851502362817389028442565352467900650132965007987355761612593349967464109432347509909071575711083371796677639359942338163935154103701306490461191341697869726444462663634643477882261460412588447477648406908783936281127542338135978720274072725659961086687747448773828327747749890933113205273914784376689647111174646880962904600175612139390619298301344038428339482544358555077148422718864461148448124117799687188728075916407475202169310531647949485725939748984986469584172701025902079076635856965936739040439381224847870100029402937525317961270399845783060624139405658111936789701245531921217356603074220476967571179788629723217054385109192087758191229752013007046625172054842139271292525726537198616488933062670433859814433158005717502283335753911308658881620201148022512697377282487671661298066574871255330815391092412898040563935536204034698785249986839227733977339121424242634178476909147071355711347315103415549058768284680356069891197465321544903714268482693827229719986349451801757642716499630126233912257072370878142597423662450615736825878614891647232277909915652492203243675861440622867024529710039095922393938301893113104056691169459959265621816951402434047199477470192575367192792050126327663617761927476287046972359523153737753581426431025792369348037645680616371674604985814159696848675281233445823984525548126379398333640971392055591276738393772562333481457575508776179756545732501628976112365032957567094911035610308139171778521013590925589545488931884111873681618285230785918093397847215151930479496070442418263188729620058023505662770789298535738932431253934413776094840054765283928550955500611725084104364818653610423586486133689976488753215901286612813874543133435641253550128273769258019700082817582336260851538696661686225308693408475977948022722289942572747755906293577597356579200646837207909454367760220466016317501368867585233411255267733742362704675085862672874164793586487419390228874573996329020533967823655842645126819592886352947171779196956787061564555275784654419750425868118813291348251260199260414672489658947812286316099491093450463215100633731919834865426802226219237335153312965216930737151967036994605099003199199474998993828944812021598147659181021113778742775013573981748241106436605070725488203786261835529388726643263707540342559925688604195170945791387156700552331111447564186600947102058649353241785464511681119969709708885798358439418093078204713172045489564126557346479760549168426295753395871626141697062340028052203420662797971368398231443614379934167538212942691358927638660830051280264637455958748251695498523987394833421276764650945158126854468903955173472099028266037403090127250758948498705347575593187710072622924710022476652495974297812954555680952618383619740730157203761248828271188329465710970199584779062005667975850067885408272442497742959499622149650417530652755462501127683077879508861645900464202961821351737351815513368421732759368195230276161211580683283691779895510256504065676978251745459520128649802319556668710385634294791661920148735868754826120244287356838708620604409091347528893815454083392900321962957686984590797151414394094820063457641961741056603790086299532789459277138820536928771703671177457736290518387293753576700645443284628800561145069740356881511432658336171652109702125097463397022670133767059405117336755309328779446954247223444201921437884142037983981731165141293254390738962833149422298120811862808804052036779282128793122728403332286454655576043883509474521098362346086756069843632906277667133080676123807793128216449157210117423908459182225518393208192798054349741048305035069654011234696613380841528309042875993574081550199875080459296404712059908956359518760030652620549636354588530924891043648292095403307248148621838903055416813682479357523782640715559153273499610677408603653594496534841351242269706944173116578610808710524361102259359765428098700925150462069797231060618970829029409981387310968985524867811768253775824959006268680627480780861685917884273047873642585345343862809991818354663269628367430017260393186908322499348064928350921725208661925986548179864458563283636766446873415297745314288492373346350452821662726507708872184569145600772873873388353604790792048599371130068918624647421601182840644421549167104538547076841883813744661050932872219757104748618888834959951729784819239450343621559627836530322671087869031050577135141659598246137987880374182538988722431801697493200347552910785010229523110676705104338704163243100921640454661304330344609183282086309650652386699983670520785895842767824369952734403257599707645794197533801445736860464056614182836558299815420726484664481283712841853710397569962422300103788513877920472023165632658910939985387108233105733353977732310771001105979540797820110143673397949244278605958253960846655404757119204407733892595088855140644638472781648786351885397729444276310480104318115053352485124239764024744653262164269135192227613227740019746747110226672690135557907509910641651182283159093278849413784103158896355095954503247049778479535877273914310575112446678159550448566040241476210918936528170907329694364916374388928984499979549172239525671662026386046872039305320831173844801790377013131885228624799958954169273665636914307855676615805157303939645274452172386431053597434252429266294374661467595092234695672196175298639922218862631298879739460120345607295954988862167290601377204426736768335194790173048964694945126339115835200669577684110873193811961137387470501932710043155912832940197693443461295247823797782584709107573479632494131145200030064746824898172711280978103234011553948153329284265606331417355004842024697494518552536585284750823643130405506768852475828114368832712445430312235825980022958081051439218136530782645751128651313567694340566563097223760572924179298882106389581395958995909878687557876063068959111456797860144046972385997308410387674318855336874699413194854012687979856835793282908217441606502716965608592027568203584492427379999833690853526895120239453314098687618031018407593639272090339080184617589466869133502874722957403379958907872400605359137530172602101479642490982254867452575507352456048758043462534302021993832261078313824364705073460350687884670766645483331410390459797344173292498623051083342293228238872435299897130611853770352859998004799393194166262859681643530484508301083441694027757113755583914266461413952043598928649260607945331428550182812035424901179381931493921479267474170630061697732867833702264941033661101287446572110350052704327076754338810009496046475864570134991469448303625747449157234460647140798337260134479924194840766658684816019798887263788114780928466302398372539972378203556682285608915123216594144439426945904914518512847757262400948415127117000193387141493250477421982874049102551891193209147403160997516305120024543426419906209989531193836150851431028810565717487320434788414105049229721536540408739962397329505022995205581400298588692311665080605147638881835683082087307545339400853429775703452884707988289137305177420982649174086461220199748472132081871289150130102755416504768063283773717483714822979891630804161852291713286964487969538620574173704059256831589962524473418884359613297101375346643117985036762184662565131311713923288917048757739560914748866753202527141504335302766732989884633276479923984338960229865246088361688553849487095582861805838561618535896591895851259504311819080045110546250888819459307524058049852789202241721263549793185407889722840204533088111696877064797198099902911391039546562658947831655241255101233828024043989897265262978448044344676834396484884945076158510275579501357772360347248730630158920074010109619897772505614550247886241635654800313442752875932438891555468928179711364933168904213657671531204800984353753704466356879293207479354350399473017066269533213159016991404912249349794100556920325895761363723266214608051747100545766383829889266263233503860966909865948752472149214510240646489602334201020381118720790981429029911142974491955499983182435968910215383102232893341565772505194399329459555772232777330669098702006318326271357298247504474268719572323269209740024293300765189089515606952304209446836880383912202200988154198109987468048141013167239558998270024102017966095825802184365528870234810940110450678744393112467220279177642633319559961932753800572222819600126274070296666457243768142346154295184192809939203323319598744909595462095872069500000382361173752952654125848553760921119702685327464718512649487251987408934378646540145310800985981293998915790923426561601393045959828076076590414103309667078953761038150858780881787095868177468869502023988813187033692020189367804812549369119313981823667950492216080350076176280086396863475168155492358718092386985216313168719873418009299014963326585087264061622735226014831853537953123255493616172915732806046800247367919898197451660952986615288370174183941896065152224525254385540324263374563254820195867670756052465697348209548100299675555563176608506113399997015008764697077709593696660679578182698085933448005672675627240376462587109090972844609951043241196913708507844013529989714364538628188385212675552658839661871551603580874874942588989424859980937813897926376687434359154593138916109382923226557191355031956934468019166431356129702834007017572653758526316278221514488733328895133613844158514853610000061877640334236716492412238654384449921911572931768056401041627368314417768469212772837762517598934007946743249018215972767547363183632339280694154456921652676013284207998660338071226621926328860438745858801254683953018025224619506357426189065664307335658322833299194419019239893936700511365772040242586557768077073780230395359949630368640977292329562367968590210135571772109739847461994606707555870570571906184653688836580956785490486822477783406651323723298060631908119883578022254374754878993398163327357967038996519047589178685035532620273896739885646593245238596694449723812366109199806132879465032976765925580744088209283380350238569010005403021355096016411831778455285135490736643760331886468446249738654273792864545228720351256491440917104556976619778798122738188451622185507962323487266504367041828645332429618644652873048822987097695263276374825518631002874940193505335693247592089664467000942527226731603812956630023746599223168496576840521993715786876490003401721194958297227651566711349530983319500981404534814218831824979862205003063937554059671965733019731357184772830219458094873046202598499018926296914600640095504980887393825590111551124578437967424560310797342442802731906023701749156043588639557331824691258682313069163295731397454291597026469420347015398861032261026454106786913918032717556759007194064807225718827289184841461841403833204412658907793441747626533323769451776806174058666680713268694597671816417987722819150772088181853916255650834741326382121548446774227096790389486388571021901222610879761380823041850162037330044350052374860084561774834164420495167782347328492775475504697792201603172595981750685482611862997499930185776136160526114660705626943139181720888919558153780666606249233610486959864433787463782008856179147010840860602649578876695935890396755488713173061716745925711006590098408113757681828329659445795208374436759966133082500634149758342063388841402112690700770180864521242863123096593074162490899329375355349174760944316857954926838672012352833153172119393853113225723037425069944683500592923061992363126857708043168306850456224221632234629963472225981802045373159019037566413656775689393958684756048094394284069297441069337859087025010983306708740331099546819436099792652844717247743268869655241406956759828712614028269174846098298072014358200590725917288091459900194996575736589578338275631662756862912898739619258693880555361618264012322006268476060174653952120446245648905644482928574387527992469235525455138490952029621158289789034911729725904274282793151493654028232224704390757153830321568118139435036396159141640885644148137868002964044480174145785466452917603787061687178959591447469607122799387806293389172570357898570686306772438916780567898624204227527244296359730398410926771560778695542705403048520968414850325145750253983409105538945274981244926168320380876689760293027632254878836363850167078638376056371608441842410637361976859572313652768406478111301406268060481573255855283792224349931163840394547963577969556832213626163958052558650681851441264456936537351443989772466973791925528945632194363844617992214891229446363882597150323309684691077263660907060340740295910273012548123704472206822128191568985865891048203114789466081497848456459082345267675529973935845854123184176967653285674262931072937616553205380583519307061488099077098283127287904840647749399511028584100241546218502427798531375760103637907329564978708444859672531815094864674573374706481628686476391662829393761750144935382381677100408207829063381578490269486993919495681303711432263913103691372399502309561071793591546447316290185750800309613878337894988955705298666375634021038910901007570249966796167034787591471875869021280471442599604503902868402675493583749827064060857054065877659765379058979774401542987374382782874500111069995407949178753408068238101788747724665072271836680134572651383278363012317255279336500670774621527484545860856007173346348049675353406956883435983935412474457981589757498982516342340022767689799287493774509466359753615689167365097627449088549173470020388717797381594217493961040237403423687049712832684612664820193927023798249176462076917631311564427129401533047196533001667917105101923082663166286973128332729806663989959201216857372479408947132562857263959999467693595945590057633811119870152712944281375766446536367963214615382155968405347873645255935409268075860217211346712652909713716277137065370302676361004393740597358890996087517104903071403034193625374188893436208459191194231039406297293248848670670603531458862640475842520673187381185361218262451514511980460673241826340001235052004029866636373001899424147052974415339466395507215977251697974533444612126501709954107012908478166058931736289051160973889008423249231390762607371239641119602330602172494433089223327170607049575192469037087585446844672503354817842265269711130972995146173264814710942198667731036402364301626676809149646345911131362722531143505570945272513802703666414425371187283602128870313077038070755702516828897059790310267717345536509326253820750883224729934239223557781691521698334030969645294667492157363069400595001190533109225265987343109164554802367424276100657583019502430052086387501705932158205905272471274579375521921139611113698978176032632086265200273283155843060368445320551357973753163524498338462002209067416555694730793268914751307351712941813945691596898723562112288598157528215689473820789884959183209467603132686089554215953976399745964071817089383734558272034307445446036124964817303919323866327587939570724244181924835184452437723450772144405065387995344618247069374859559262588881827756014778556196582345794928800856493342544880380590833214258133773826700960752588681613230493677659574578840311337561285966657495250660632879449039960340923257939481849657941337883131052706397280103445511677665683437854072130433101574664794255485422178895036456235166941505562281273379411117921523923764803681001619577358481204694444877653898385680779598359082945768226470240738774227582605881947656124097627402776466279828285854596072949353687291904124002760854796525710702268316540458553982094064571341765557090111707130412892723674760609569435663326233974487070284020619865186976896457087401168130648814835089739772919612636183417541375012962040032576250404443279536222920865617731165901400337750859139622029057537391133092693274905193208997639260414438507839944463470816499506045439535468186902390160867730900799448697708296613563149687386693320867884547579880067777806278838158682482304044098540574290158373317087883916564368941852688581587768174959874197410363451223999454069342616316035097075307526113028645070235155014671711781000694699549076720596001626286597367270232049940690192740093140015577675881770644511463694575586414074490681879858456659043450442635808346192480935164063855392464786445295391303716137291020266554740671524404531234438792504065516821538768219120698964681999870376788616233081479987796160226097990362587341027243794424431553220481098428769289050247612717859240251678164618419695381043072753128309124891588716965012571608615873532750207271370016438435577207910421009425389049407343140058027365500017127486875315187594650633885514188858505373182862183954083605870759545794465311218660489041043739251130879014482400178460834563734231214031406281552956503670210339839583364011292909214142038741507622677104793450095034846236867696010614962688503206561477315207547793113767666799276014569602835521663189335686351950629647077876820182629051415727837875780070844165609922130795567611735245715463291356561522144492565237296548572117428160460243761518460817908436503101899565703864049866321901905443180843035432860133477690864977142874035922842390766036457785598162616099881563004895012754586652300985758672705446567713809937045258957349443471789247423737997615339159526373895298274639324435620229401098096532817118296527261025254917758703185605095691529061802078312033797486612062222778695837474840268781271509151328202033612684138075687740101663982107872895703234738003887382734171853590446087322211463253842485552405342144413761759519365729714055975469104653664394544705843118604472715033063230256019872447121947187843909375205820706769287243200633116807106429767061356262710263365702652562556671376474820098273353013996261964682462367371819473970187885442961782917276365498791040752500128731862852026753971491801450470163060984993872539878194347154970845551413659942078889493521347682616323641682433205312477377848430996924697096541607479531482041497139378452209155412654652162611852737145567862747417790810569557599798978338926799050104185124312392596398231579177455795175018950409446565259502578210093178838412630645160816794598145062107996490378935144633146862094126588081621076304129008148708799672568664737240843369135237921670497521221564825837074406502280259571815758438773218492239815854102737930504607756887722451414883821206742576005567400843611692953545277443850512055961736165810437550830477732764059421496826952409313345292950084596461958665500681139413182859179752740937529203134145892609894295069823922814676606919221677353837584550384901894445018265091593489908847859579586255831375005793552319519820911961824531341363989469174490210571109120984160330645409436443571133043863440569345756367129118346985158603621351261744384424950319271961748026425892065419831630444335488361616555268721277887635724041360996086727201600378208660371658669042631086442912178769641726982424451106978935738620794996897584188366001612606936435967033987051647675547505207410799408156085466622079149157331423561559775231715410408239819174283363751617998538067688538763241431552667779744573177162490979649973606467046376003104680791442726035656513791731295438788228843487494599352726578195424822510318970891320889002587218575212028874563481097547583578361773480019405433130266279843118444496742459192461060602887035107121034378779255582089691285637464840723966346486954020497119722177614612425524266518383627192376456824279225791099929909754336469768172228696434420967917540855752023939042376652545251686311582406988202878479206458739098373891462979783365069036078398661839463805659850139207932957803300957794535957995550782478228631658142331519869889634602234542686961646429463006472526479721742085189717200137221926439552274498143704363071483085269820251479610331030258591227126887341676274639624043252684205702349614062657765815668833665699093884427948592995140218081665463871919304418440869789799779444324280000786350326822386432682766906028883110474987738216901454930813024081460983917588592229788180260009556343873509767382793535392381034500362166513017524359080677015785001961820796899641958021397119210408175786535188054466018198296378469477459582465036518127878030269791268680848215053587669008746087261425310487147631297327950651132967451980343578279470291175250849633931881569450243734032205368359500272126087346821033665092205177911415646823756195764913173256460637955562016451029790467504707801170165130821549489592676643211363621552945767917223200892533240082753030872359566466471879207151558376332544208029515580898717115841192155379954260243853344897619982606027925598465221527496696699026269130744058129795238172475124047588961792132990464861964848191571193631797940657334302247291512131896689593257410750781191863276026262684828070335814177307175285947592059064934270887979970539285740294686278991255619308287135341040054898194593879084400920796030378242180147338084853406548473884442046647108582525565774950416536042272419725399983743760298926759246510739174705352361722411882071899684558045064376989110921820257751551975031301785461009199706558777193377527788804276186940580442047171371109710193215453880948583879573339447827708068640492588474744272283183513755240979193814438441098713454545583505520902275551752632928388298879413739203559646301893856282205248119552050413242062348316422412714023590826920900927198208500058340871965804825589155618647581829036350512219181347257612871866953327639584256917197806935272107244931993447415923242423404584350887395353877935113345461123811893174905530374227775324532849510747648447680413971967392643130052810050557183663747075101987260522040708820857340637119791212594515111092938251175258506318196076140743700509627460988860767965810641395579017507161648226147510584771883146029842805918822568010011664560614511903649391323291296948804538710555318023849646813017788010597798181151176499023315129292105873382027332625398951655410719923909241292252033653894534480378195379336239858925421436130372363999202418423204668520949355231616275438543866291880464265772832144281470431956996240862662816105810925619712262684105018527377671583284569505747560121786626382605715787816908297553094296259668147135657742324269517293989763792619004177753674654433517044127671978035877506617943761554447568226170710596401639187080158058431746179721113820296046308188357819816541501472429626443924296873496273819403979440858689072149047643842008309908998329323712030323315328555797651239039578646937677926870292437203422110334942491141755400916140567239750262298259020859908330230056036781470368956775439139236613708919133509854249342740741805861597184781301153109173308155259177732007789090282838662123559825496090401483210710641262377867789767355680284720466305328471212564212571864167287895234325693084045782528248193619977700129938438003055009089863894674874526206948779531956195175943213247365538502560920684498359639444968975308325656052356708302901635750850443104228020883687833250597826902353844091160076860796302852853961186481844664078252309507801838963317828971800723380010456752130064349104944842516194100409587374564976269702481871086001190659357064139433800735410977298175677293189725696867313331442923568081466337685329739281839368817490774675742038957531603889292303975063456854932616876211161661997255781751794787926512108760749990783156519145370098044648127106539047497954247594885988017084012449709614480955442269822933464567227903401813413382449924886386977440173140123867688996514191620230080931499045510654474543433006446718762360256746008120494362801068741694037503816521862679756390319937340788611939343677112979652351861750297195201464558259680518167055839071967571806824765041276972653875610712020240547292085332108808869228333148224740466639962199752213914768794770014662140241458746770023779958566684477352959751972600581733029405446242823723808870699344330249016157487353194378383685863202883736094546814347734905304005724749055396135170840566151972485382061093720599255754957429701034133578150707607652900817972016741532955065331733263459647617478270871214398073628320570146580394185141365692503609869222941119732761195749959673623580638195293803141101614120145623158296314417989577825159563016898706620298790982132883795318659868689358650651667564294244596496942486273859214649673015622803985702825264882818774457653883304307100566574293715058300851682683655762498946890629656587174551517379494689670680916930238774613773941018720607523838352527033572195792879492401701121485302956710240216729075284211468612903583497319844561313620121738284215315559435284592768003447956245426866721073715524656581110630913322209941473237498813213056754680635660942439085272214712655715871088371970203476087114744052308768854241615962073907055542383767169205735037624740147283090763232143088590476224532226264971070022354956136105942582582104509832068932519841407861775019471699223169554645619806124899524379787039498710915352128216307698910105952258158511551768760704838478489339346720100273252165712140179869465472972037363447694617086841259825835176659245668943485827451220415860402184408644811214547007357550945431447525834156250954353365971425779185872716241563694148873183562622648450851917133937661537836354382174750541246476020617887766915612659641574433395430851273842459278214220349529252830743486145155356341532723683423411325322787474917673766249597171063395417977591465694574393499227672288271090575430315946769550759664706692569521471939678177962037927369920392922603542694769808765138457665750894669633103078089031148627037151143796534934479314718030314304429582762205804703163691968552958218310391036952132731159153261293992689959431362116442392928976002154642671639548137005953404886735287390681421373166280265530797048631043988609968348860387768980997464648009208628348483609220963644235234426291483104117142692185273030648710447814439112792629074261329238403126043961146247226094459206061988524516121257913317007835054851980949611783653040343076426483361497657623623229023691534572994342484337368631452654838059592156909961591081355013742488833060310594666836240095637019005661146408564819942468543660062223370633673084678116262668297562798928555284329419123198310189678186684195184825200143024517251226978488241178166041186553603048797455196349924062101985583145410708536477120440908881880773042440696342506813440794278450722502008076727014494810884625315061518541891428844921557737917321953722819672662825941098609899359159281661514835545758900897074483312481657478800470509628704175749978520232344598966100472514871221864353664769199660579641343687353795277524756288929385584347465462470485072960081351799381973372412377795123085324815742158626737117931320783198543786416866936234623279401330961589938468934409150511715233944060954960198802029681006839417123382498399673045010975431817551110473698593687594383220803325426731105899321944027217138615779215003140346258633981828023176896462694384264439739238667367909479676073733136086194021372178813135377667770929466757918365749145902672184242424795810815646906859066070239181082174905646383348737229182453441496447240754880228969875877822928618376009375085103393420302273147534875543550287557753477468968736379220467057548432511564187231478807860505919984227840929129580962640740296721471540050794606918219141370282851003408075871499113409064067491574574043346491453899729865592541096882449463573204080948666063389771233283445341285374748012558296198406269845430530270232031702446834319634190708219206280839297788681721003800385546993917508424673607679861078315144730111029506082158607872456075732779227145872762576239503455462728595378900340397031515055490205847637750141028623052867522871787460142820316104712392203095464645093705460602344070575330112437037543268225726313063653098652086588279256164129269198624526323179919656868613629899864267559408015524527941510813296436711556148109770096751762847842693921109055049532636175076736223502805011740197347137013800062928781902908062526626534435485910873126162746950614800200576237718940151775225027332427532308780705048286745157207625621095446828263970673947798430184859568292980502337765688664762053030567754152440688942122711049953417340814367155922390566187539858596584892430593461864980301289455847349817435382465108735367912442218554844784040058978496104027659187608955696717255263449635500321780429871682038758482348017923247289462735483905277106760937677887954623959573671430730009246756914681027553853869295110493616297428955780751356809422967070066108324806572567337043077781897479679381357282083623856700515270730269981048870506502648563207292512089119343002482218696818221740714708613672264581347356586446020603798942969601518374547670364111006422102536816292255675516555224608407615914276917640133100514377519425515698998738197010571116095360729915835645944763988524490980107230940921657868375904516783135364164154843771424385543470411234368755508866230895435533782455264376497426033811093814907500032267740935770623769750565975439199466357177298756729761952220350866514333019437469735286520505297371640188610368203597659990590278714092325023466402787831297764911057432027255032788419207105854768286618060171806267650715864988566978500141309028398237044432475072938098478319839954747165096832991349661963750788182837252442933062486778460502842924441619204694325918101893644685534847216291561909242015952349216429449274419663193035685105286432410234783377702954126348919893530992382828175658038618236455235111586927202887405900842036953526067529175655715475782496406830990564617020496218892137167165592950749611875555422430700556028151016326322733428327515557379985878398134356851199302412118067301824010464678495338544304077401993994021483300014075997794932899148490312045015569324084246430257650040334980599765773376532824857832512334028439408054478016834554159790514027575668140516251536837619517369662006599426395128821355489037394872114227913028535447568144257133206553186401275030073082544689202436136183263717804320821745116228017160611162604974209725703298149769489705055378374591412805554500119448480344509386793393746703340516941001753377716373215717323958983825450228474482461820292356940937732043568709130781727401564883679551445866857111654508111318523554080986641586976774310093822863629076158332150997398420586376993232722540034892678357541173594851512821334945499336967076830842197556108481823083003139928914292010963235565984777744722149971038821579064019751248365352672380036848373468095605582359480010593367475104079259405357133291769285918282812371825022155756146917639255451806650001452160167751048347630271257191687966953876228700733969712527496168037600397077834554894205264692927136655251584083493652016082956994228783785742143585207760593171326605642471255407703164041452851436442161044200410477638503635796511098694405830011993082117506395592698390215506252348854118274965852719116313187279691321316813007327698954887711804404445879985547798718188459226480525938626171041632339019639200730804087459099576796129402293940056808781456011964755429229679731007542021216166327525765786456042948990609090757188031951754930117120243068190108593923940415121194734408380343561390314530737345778703737127214796402776303596804323668824366824878783204393780353817008753075675592267045091242155444447681786291127019982572989098032686107861174267685065910576150755841956327434262065503356428052870107534694382307138077346590060481716715477046410945061322648568284823767109795626622641183788216555927877181933961360792973629850204637319594627297758918426586571172431116695389280406193082276265391417759031629515746342480987525768856945110724119315761687968023245281728951506930597767747074244286528212718008454380336055834718479767945708367074420428637461824574169101142202776428087257220202808483883052168175749771301329345190437155765598540493485100683698506679298013369268530542076803491842580886872615638186106644241147690258346972514338582223543927320453368972567414217071755062417014537597660821355371553289311567831650481411933543609896953668341422018997959112125158781751556977012555219738666962585694007593412134720798950252990125278304540959578203009909498886529490051149260133614164523053494513144390455724343525587086444744750074598029577312312055529823412889720642454929909901670884327532280040471069450002332212356512679870253738814264496232837344446237116644778549819113766740805612943672336758461704432323716352621155517074279745005865228382744815484271665109286498117986925152796893214739760256446025668978981735417248857715166215126599231081240239898057799030675526101365264110976206991664565237935978809321693777052426888066003357113246024406329428604835951796589827471942485095913521091034609643070062127146185475678939886479252196621086506095264830968879214207708370943644864768060237936724506698476351825387052059005367641258131427712512147059558744287612355293845174977793934522155229753768210154797017984747724137856089167147981464406979127124959411574418841041202006705922931457755050238856724499942823654740285633567042374343426099860547629362745962264060080618214986596574521353829887987239995770396356624466754730774596593345578151964830714553342397508800439619015814795829092843539120035075141762252209248871680285339929263844319686770290945892691347202467818249428887031785835306320063240736333412764563901995029052103312335293906351872577025805233908424640873316520016454583611480018863532420611171401341933520295991333856797156875016283536854254269638510365825102721004897723472884150555879523253051048072686482316407351549449761850061053565183149004369057214480567828049323629193628480919636694472920627103469676453867947259274794265517587100625279188294718357605086843674018573158213125977364570184801557856341957896883301757631731118510257210126561461547234169928674631072527400945521667529313914088741100026303902254272406427460531736687053342236822127638957666764349929668321360434533991920451782918682306105973045245706389109263682453812852799980746782785463772119059085982141527445491419999315081973366830264190275019641632339244312635139380068552313675899683335629031440908492707524895454896564272491199986347436411284450462024099754398318762802501129620949370134211460821230313007288108223398264088761984658446151712223203774566387025917547761754232872345239285406013657107509193872624383562700565831771027637444936692727159816692472561936693020955251721622747392838195629986649716780045673454575872226619048704283749710159346894153636049779297493307055472534968828049497550851912649557004437391561942091778947993686348633212350105776880349137992344661424392396416926795580538412873245442187763985524020078525618791342119443467226881306178018304350655534378383583075822544307403599095076733986679362561070741928831297696156633442371324314547968859749381371186668184648770618325956980445710769278555553215529536374278740293280629890649519075377384757204796805235225418624153345528390569180095604248822689057737617104143509732300980109344845601214137564312999129590811086994978710437596763239435897442275334243552617500776849221466204512752708761859897146265200964969680117290872880662292689639013717908155982874578035793771492096447962840989569237191896865410003999229817878925935831247908798948028596873821129783032249777661938092116626262887748288527102897173033706223880601496233478792152331896779431784317186429574878280231287919288540499593518976124011125919833989568145499708165071011204390331622191731625498787817891506115214195351823879781214259466225138255064267338965710603320416934615352295583008651814466242620081158103373086659955558223195209381955143236348569727085823666576846252323760611885296960889127548490298128577824536325632823545014979418447889599435818172693810448228647782835545876312703803913944510580890275747620950978454099839357042996741965213927393350967247665501335741343038681136499521392170972050095256329956748120488416606456022565235681706888011005463174917269675543275852858754322809494452061020379099065363690621065044510861298474018544041434509161229997913306420831866649972841234851000280818624863989146708632078828322959017178558961724477735443367430112858254939962234243999969385074745194591046929466983828417649614113986216554840065755446078360058864239957660476300723361221951355820744446089229953208408816885913358383900506631675983306197163487126463479875166373880859653164880909335313973382002238574438835460382013975512767461765687954053125528915069614720518189207134373404623389871609424431031240238908633454167026922815725637041057578971907551750780281000818129681271028340325967385787453135360090517735472255923267662287132671277879338462337662426252741511204177556684188264485198481339198503787140024216390757979723929297705707436928865120169555956227820540746085789818184351016865198183717596647094163543295814479882273116225237535178419414889349194732621678400964581270934518818396887203503661649199353245979529414603592479735104859845646809379140283411686648580495227075743295419760038312618905190002977642773216244170527146441295274725070363735394899699256889424658927370837064889118334969380045617903495226331904593085031850845017432017042726955590058105685730256788134643344301574484660929872490314741713110130685345221494176847228822807208553200061598369312319907361529462260244260972856599969519368773516908033603639158777878349283139572617529788716198112733335764850862277939707348310899915107393175257821383812828816222626104192548007395716380884104594476017174811144286511966512832975076006263315704902865129724551894916131119306165297805999349720990851018421550239751058333271557750923059402130330923906883758970962722853429552399194836887669192547510792741591697394982656602131201581271809405217804132785616926789605468777948202412809889438975904530952288983598870498185288265483807964499993112199997799332506539288400682432497529001493895478077494695770486539673358231369512510175845901603026442305311360172937654062580277781621088273878306164015051053332959642017372437325716276696546900853607227947988142982433852941014202757266510781928602194144464027864203583245382018887476684927441874932982920008192846463250171484698716116856596660636660453686583647255183451178492170695974323519943344246303687963508434972647928853999672219982559493455360511205884148515846129676182080614703569700469766156869799972856197970118502688888710147537066349585308349119103147662568557727626870575375806503062790528184210525644419038928970250574817760413291227436787496254985589316845534350493626237446569970319579089417663833571666501938930424605836822362020402932537905110079453809193049422571065989515475975988155283360513280050564872308521249920398007683971161797830370670956661800155105524059301378343773206360814878026059634937551567789565690033483466099866844749544566504499205348581681127708052093130003404918927689180281391580501335803958556700805704330341441115328356853862940409819031280451986772097171263358438392125956995171644363994218438924998747512425279589536360160717390908229096403920145662951608811983895667725346938587984532659071721061823079126024205804061843197436964540418352124456296723750003548772689731785119180061704551059320235188235580518488922112581104320336834973646605293642346359889840967983834343126206221472345257980413799947800861535823113574020741795687429816611351039326095107219836954248533849118865188479899876972766861112952499806665225573649102046767521519113069897047931891296747947613487261355911647401942497577428577962479970944299521189358196344517432543523532965722963262387872757023773204559090634225860308769746370919349807782595480151541466302900461471527290178900323811535108242207064080840692846924062677728518772362638381311102582894417413055432983726132081357317142314869542227221806112740970779144727025255838583404228270614770816900857832649864772576226669471799978186049298118041420517281213773046300870763555004521968118878609419047940905335892234101706103473554467822575812407966442076135724506652049386024098321984418736433463560931649944607523295415836049863807629375319602385540796307433092102128199084978185935579460563175405548162264154497331165047063065718177567174699477665461070974293339489467762385172359293657367029670226970670130048472000902696208121411481088658556664602136635958559557357260710081304810205181210820522588840800330424570370768285775849545559901337201200078714244157526885458553039063125104598430401850066436130575713785900930572988914082967604309017800001496606011374697695950664699179398839537751568020942929594694084794025355360171428129113029507544876257016336533480451766474632252737013658692275431275432483818624006832232725566575276668478525965056853586828400154813480959970327834667235106878608179766633136914111973394794716349356324238182442306888829166330223578836819296610088856358961668379557404696671289949456220246768675712138822465182973574721117455802297558842487404553268047538121211412088184903459339224846683462402316245217481130145140415444105099847253662514357617149548164441430106968158584798943544954274869875165534282839610969777179153388900799875066211965729978858044221581693484793188574419263885026786636975573305772976168567411630659505024890270654693663839953205050484023211095808324641651394616889778549501995103611818069802841801197035749272743527671322078847418672045328041878358108288267281462075674960408151572594275494349187416053940814727695867441102707338482433988884886603866898855416899536352999567759465195662804222215123818478598239827191965647209424561547500311519391352452261668367235474426630237179912547499196350511386953937840736309233927290266845068295907143645904277607207940975626512524221769331391725025910528055585489884616327930910672624811884722868099566963008705039789283563065154697142884029196048154619088411592146936650026702607013880350681959691736276129920132106180544629197624178499123814585675861447572260288102949088952849006474428240292879054634839754345972938356946480531160372887953539085065004487497301731898147376477943826243316210417277638672581232769049942675002883529435006178226113935518141657151465732807012208052659628767391377381926079886395445194046238538203583700516731969120452349119176980237808528115235926878705980455486548772512510489495220966605600910752002105965458571299648583426832407865869275062585766633846207794185791826210638223914527502062030445163598018125994323140200238257242592616181289596450210503823230852398419217567713102064370039398230375930018058462467974223460444889268653239454510685550576110499880249489001285532539900867961420817115366722910191574705749295333814520974710147300417213306239989323330317698863344697630326051704758101249480457660121547883687945166183447978201593485858603894983591420341236018845349644194084586472221332950601991746390658574905015969490304757705065436192313424471605591972927036930514143958279258600360730907643680416542863830111911037163897425989126470049508099019694200770175470663432950808838946897951750450232335232143489311666063998111276915418457468029554319562690720226183255506496030267719271377856726332765892618178751052382931293193159371158013980655767097052115647328390783550986273026122957221009431373620111093281233255870026508053988069072403886394915961745226725712183051569759146025168430080841601333915549386641506665925125441002915519093487118786977612576755390166784755086881530915496194045841799717572329470167074834939255398676713778544173344273873695857519961148730155242480463693957462294994683357690183382162138737983921229090665622605186878088348127999618788581150846847665309561104509077753476166415201380979239660371289942272096624634002394601376689573771977685614229911927748880342608444243839649073053964361781831990283921786144473956707444071430807974210709133763665099548932265964688188376379135521322227459569431107595760949295025522261082686524816048540594112944430220762674610325407478868490236000171052234815657120303901979979265773720630897771733462274570371215105303704662791119189925696526631601877446900732822470189531875974801097630077335418618314193480881511085959821972816225559410998694443662357926417887553973801310017636198470252792386856020879631483796045619185015053219454800542723703384455549285415823949066857085310784656915600743804137368866645302140795222590042153194968831111511765876942342204717714003839587158475332058575665908706396997474973902290643106709272455103318333420640562286404990134078911544214680365257305693965624968215319630204168143747042404957434206479259978707745341186980945563715835350719918259392148067480847541998915787827371031403679941864992085218294270753440770621544316022714158298099561771205916503627598575874876139427388028658456378392214424716602471391385310188231941206714290220857222257325356929689256873119824869551507122290394746025615855018719758090206521838561484532463083143775798372626590731207722069602739659069986282359545418217693148217746371355302689654404052393452619781460023399860014758196684793965915061152306042563887828044103016195026370232391866682701944716916734699601505823455748200001121312865266989272331555032961990731997587143767045110727045226184208307090601729326709072877471358571407598233358599957319982003911302594472999186433045482408046401489187289933722431625387145088090869374876607146324369058025598298290087163567171983968468907649650823213226280417289951775966302875189511030172281643740164602522328494188851389830946123567598910970168497325068361452913580657008073825491714677686594120537696384737390445750906567753071147022569250842068748320475136191265070994695123779284093901194110884176070915878206071030297521639099770323551533809476353342864088913078386918639372296154552455858253815920693153737411097012054276778447805550585771555494006616981784829551660407328573561080187224294969994111669565182342991339108212909674844295626971419201643514587931616783174982618932373500790493598915884994810660092003535335368139804229335230741246656008154902627914613456755798010699631252203586354620532916317287074313265786358691419893879792040233665986373729373045868356748699530512914636148368428844691755047115810616753828679484747744170861230387747668272859844688957167230038283105969716307592781461872501495609401902306387555045161643797844913504869190221748903008571969753636606635312085539460553942089614153434091066433012090502923743186816693865720672734593062446352170880323806526991016806925937058993021283828377899182323163123897620193567009242147314207294464559667847573593336332016155172563450387370283769770796181899679388962890077052236706913402190324304972720345633225069132047596466393508016462995555184907733941750729578024013161266047334830148519553205534815161536267737982685585000462864739542948151803193608335495780646313000409604951751075589149897914741071094339091452650983360895390108229087278964754052713562857903625854916803743579234174645166394412253481667354097249710036379123258059235538331378905334710171337064036986825445538934628225456568992086491414344019133158161784162486647716589181034773370993122405260909062505623910647517633779071923487491561401936336152989791748699155590102972191094201981205614408629572740172287826838402247833660979300384965799758144506031564810315194567869747093294212502055477381193993001724747540573006655276241745138776864560031289975987453755665954523922221419771683183396948348279232238096431129187992881486425517866689471542729408395274321049715066620118515681939040999245660087810456981029339453659054998800012856567284840119118942900345850739565898574709975218458757374602202095305090097365577121151474689222034821790398654634038402005258701985116089452121977107821114009981137847981987081899377808853823838805015390204803406599322259765170402889427791719893621421282770488451283938865142004805599322321025490039163463794538732358322270003525162158464422911941143563118451295926295644384643883687809246838545144484093194357622567627424422266270421332685074603876375175425015115697276102239527000657066343469646116707631698678590031201494827727833989232077055015315830526397448826292504866190824061383736701033011022815298310266584852881526289320492517619330372601240139863992464397503646077121698246139643022249773489337937877758575039622972632998584282182760778183036714030321309049593250602450943996969427716908192841589087957509058172189680116139352637304648195457628791766042472178137620163486108719681066759025146254531883842766955016095453276955780547454236677165260764598828546898211416841200456371331621677904186728606334111937867710998870307759173296199959333240490612907868384963341484749409414536978317687674252540157074453238120032078744819311286472441484558521856797379033681581677239174882951215555589136287393164051110911959410600281789729630909457730290608758507413531496331526425836563448657004434180563566006295606050691273264959110548619449783884600299826121885739351320833488572681996994019660533603427564934759029340132866223264174561518219834836822192244036135777233685476859357419197391035706376420787198547479232678434002076629296743205730685392467487988613803008101238497484969753041012145140882940703088247711536137375694153886195669067895936818527690933505958475855744897202948014847403014895225212937284877089204322011498177362998922470443790185625354316958127695640086711720393701469899438024881260116576462113676318777416289860301306152273524805636912733264453219946398109778300357389126218570372788473209461391967427717575156202574218420411618905134465408718537330594522233852846053981674294924330317157597689227639173966909415757329047623087150344619578814131616844077550118155535153317059704697386245179154756908780476462617120555986423875942428502503436255195074621349593480453971235520103984491427176643286682195064741445565276118464631450290779144571656332394389413697276431330440297850464960290571419356220694426974967615477923449803055939930467792083783225363039898475441661748613432807617512711182448981269740975874166077293987512546648499856509844829155339656085691397878898412885291496391563893172581249399977274550947821888113421022134787671681920887203451900491297915288920353243137989514501060014471931294735705725300990866948209003638670390698709874536179412159534295689912368304128159241053884989986647898971305140290520779089303078836037337405907323089897438438240741444819745246364784495296053053716187193456504095222490526726687867442081502634178784766610712595804060644505385752502529088782164621490051981877490863128011785369347290619662201743062264098452255504776993868198063698131823481839165589378801842525109267828350368127323960734444399936967343340381561003211599846829020038112551752813592664516617814109770498920302207370998358370091632405447181667312487589325869032558479776447424616437759404450442610583580763487206657060129581015728838870746541067454036162335923701164868281899664259922271444739658077010611729359859677117389315194514274044058141015084329691129415030256523251838009349033917375862497547382075279895549358239907158870922958730332842732709351193336336828210312392386194117119092565542588147068829525435769499179820764092803577986002506846322211552408857143234786242083651052691558383682549471371336829688856903478901302284978480365562936963980103620111193933607421021152943058575952644318533178204448510579637019899310893969594158090481846765056440150997594904523073593151564306999297271496322407611693723585717769807073382813982152847661409565383092395656800352762110703414500997141580640258384678158166842025877702069985057739666156880992245888602311856074822320278395081226900593037140979584769549380570821932144429088269289913902959703734833817076175950651517159098976790699818398368909983568482682098695393881423635136863582119424766535452915592879827015803962769761001647997272858914277181780783713827704619130360475786215896968714209718116044719021353632922595606456019107255849926062204427450296450128590958970063647023131399290290253681171450925843275711206145523710873879629298278949807092094303246907186716717405204162116060525357884421473128864147154808646444756003224888969224180774972293723779786580877875798130705299261848339960935825247374794939803470105583706428848509245623033749567036384461921163046876987553162316467113662149725349677271990784400971204178389513730312499502436768511579774362118618639074524927234269408503943392912012280654858483190723276964888631765501201952494968587195800133161453787184916950053799848875976853903095559094651654136666872812474864160526484520653573178125247447780080602760428228483151015693940774435605031392777420989767066901819610460885702798179399705317311347880166716053735999194139339034022488878510741179481929904071352719840151068639685456703606563960751519081093183036893904935352831410109558761642328256965641733480608193265455119016970882316119953980544728427778427582673036664533951031129505198128669340696543507247200643442403211980941658055105349071194381737611978108414960881542794928085271549200950847720277024754323573709165335018721646559359610407704872051558931734343665705988502403815888500009560469304338811106882281841309107112717437018732096658956706928891735390548699079194865150172255824162163218801708863919762602292412643048399198029875303663129745711909154761353940929396946394317601257487782360038902771526289458506370403163361859360200476782144279134132430567821929784081563558162481085570403728197620522575557111941111905544333009897581449346819491296232452697784147143020593469505678918019245343225405419323229059959275178503332677293976963143502588955988342835105900659595887505034475985775979509390785574522443504925534777524968972096876430011431518758628529043924095863297923935339033685434785535120174000219726404538857357687087875969698881262777791859781655730303543066248738178854021405692810910077785680699067574644434328617182358355112535650656814139602111158128349260571784884295837388068381155355872856207410788299914170135414420791132743621013061659057535146177022495164576971514447532146841209052924762031632602928816068348384340611495090260595713853074146175405615334590221158000498470910177128830437840249105344645469017358450718477295281865242738732012796649224350850593907589721404225994564610376222547934895244170616996042122472910558044259055748559646042687743449747506998537010447938169285363830987307730384789449413938787276188209718741263773476827268304616411249627412503724254415058311078362553468729705443012899750938135846689719597943811925249598667353824949121598403753996888832522042806627897339182288297255736397920802517375087764395126972223767939719499290033023447832768345962193365867590224056730067085621841131887304754360296869386704406557171602967870366971053088612721711072666917197701411300071437927507994116580390243119655345268383756371877231236755180189503237985095296675418047491914972228435893538311929344409240443167554226162153843629338919274043698478187771836692660135672722378460286333708653979209725035165601243336353555986401684688789001268180104377495338283124448344574732123882257537124976852301804625594490121922844900868958556822430932828201466217380702292003155405704717171069226306534530941817337088032358660258527195947213560628624180734439261468599999241511581023396274132634571020995061368371125280286648609559462108146526388224863747358245840211247663417284533211017396423338839582934383088395634934146743150288738947443821108501722697267279743313218607253984844389382177043527578795785984654226466251826260088503063850738785082190144450958359009674102170101545171501462105781030761807684219314024906169151917392435535795954766111480851420160717389533521956430896782643204526872203879126256734688009665089005449871139227240370905860454223033534610583751876386676733217248482002063147603910987931348301216868477517691494384082318772141494916815759317990995990651522261167382950823552075393759441455816688403283932741931738598605898205641573775393242455132938905846067457276612521463472995645778929211312163331802175654833430001641942052455818184282745259186092949364557302083521194434704783337342674102131992752340069975785414214969208514873293040135999206708942661367775541701861047806587708066206649382532709823488914394905193463033224945341240187831347735115212679761241476704933209225369106089623418142254365259338850906423602927342754889871652501899578812362528745691746033597622041604294115500080244007524889883331460714053304014385786142538654416260959950885979725397400476051855401174744895086265931616618233204436882702344435923506951877722273181411267174808705606518394264219728130589496695389530049737798563827693472901191924563733206669543656246989529057627236227226007496603843111452866795188718359251058668987154069521128889045436282767836253652209893095348269661045902703197467088264473645808388924854457216152000996467725505870029792972194128797208475337586345450577311838103808485488551463064018378584686046633246918308138028319326299741620163446331357737548708963483303995620012635242653373947342876642542610052494848484489846231734552492404369612503523473860530445623602168277825441007885245642300860256899529036044980155960007094458953092776304750090044813050049275205460314183989809832773216694741093598339327282978607873928738693562227811040947643532103893433021063132049163784344812070374320976839585722850155272701235949942565796902361117962627317203797052732861796979069075379237091934056858759154665235983474174952058726304902587477051339297322628267719468361575412046719995386663512721790014339278472798466268518176835567013280554547146179486619422102041567697502772592486794011527326646336769978327624129647784171180481973748659177765086029528117067388222439584552925276346572048653504816453979686772095624207705546945761941627923960081947564805730575300463474661979797741807939196473451673264222265067080115054101760681617081187616635569226230844606941655240045977764322976385938987397132685342556209417651213432026957978369280887221958036760273333962103453595420217314428285073629345197459635382237772865428667064107211540074512660641483689140075600004461835405756930561075003709406715701882749676978081699454664570474249943086493520520041821976043789352577049551325947856123141698963278830493926696194104552083282645391250753478396590388477609643955043611850609626383893132441225200418740731680366948461365346643868647289000360018944712329174900084479960146328480997693292990547547236790719882906426940965756627251576585793541617248341034498798490830640110111269775349795318673846765794193048957431818762923052760150403168251515930941397396590031896074087907629536996793599667902146068150615136706099043994639248408553270553112857980071062208048597345163165165375589372834919406797979959162756906730189308244717425852093582751155964994342198909571265224210624888604108159872808349076831001392729087601330926355478600225243842020961960975538917915408539058646821312262547689214192942798397702985611799638427253074442362013576931141590338770122338824603111926043211890488914229878601899785817221254138749574881312904131681161446085367677322770755122462233788855523756127505131010376624994963125316510164756485544582584025023737485606382570173837029572468785068166882041786162700292164740149711745592856612547916105587084488996274429529816264172601504426133342332591174428049274628662383475864429362675228466994464025242652842987549204069656854321933587837435916981156443827183516003469741164214048441566841610639903396820533291037048134448850014061174124104185917795762661160501266408038670544385683520568914352879434590072772274567782894812196171933752664435805185790609354108086317745036491954832353596926861569380068549282329039039329985444279322883445568308741614124582091536594810725770222493704876285222781165091201962998461498086599747971543788887349985835476697151888814293518647505920975200752098170300457220907749341976594941989687085176423729881404275722634991072951264855445646099396588700092946837412142781189613838350047093427259631126191008288240344975431701303239205277357831358815106601379368194562611924101678886336275318903008529378492181380289783171187011585007272820845016123089429804166645866322133001844141926453508650625700026356565050131058656979395705516663327151642363100661115569290118238605994485900497930948367393603567494800421563658825646171461335945047589466428917262243105906883912638033345887184219566242308055335163204323763130840837383934326985768435125531851425441812149369897528467055577930887613681049631957900060917950745609726340453862889553298442573214419615009963209025163507089459433381210081704672384108911708528684367886282266303114618966228937883959487792921989414231947258369044371388398721475387708404407524661540529088974099882230065003966374305952532205442007834620208164308266713216981169605722573933099623281889849525167564398287040289831593894924419915122215896767891482282318907374019432062653174251095506004105303292636770868139144527889774142465619023502799013423409724944544435903906017983972374425509157661386964142409271048739671470642369254464457199668337914484402862130569906445715150211660253094870283413610850055235427905090595573439507761703423254612410715414545011926315965400332354819453450474563624878512624987277814355652423543421530997895565592666036889162709117085204380237431810747398373242881181716317974752438937483730915421252867222526989077173795225990338314339410469505921983622145266576219452103213157978761688296623793152851625823465899634536056904447709575067719201854066032601023493326457506195047051568529768956194639635691088552676201170388608255816616123180133603556571438748543663812054295658815641632007949393870913916104280655564877554538206736618971050852949558463197761304176842173246030835340742833383627804027754003630370071763639019641417930551070417729965783747412672589486462340231703097850511522605785374926553174951073311772149196631118555447703390969747648267444585910236123885204952647071348985885757729289007127002983389322084326169758566807784420997339836992886712172994807206666392688657406895518180213866091698794487641574843075721726389640995378288047481300110731456081835048660411565772600046200887223222506290147487373507562429579523837498479655105234327436595950317168571998886017273286094664905950716873602389213360379448696837298385234789300913037203804627419516455133753534630040257465740753307777734956554270806647136554981115785470777625394549888076903086600583999097657999592982428597549631993997296874897992252824840443180634833762882279576742536251116922357652862485126563317875410522099501233541752272414210111375418068939633348013598605430686657412454886902103536679426191201534376264173392209603987852808233489706540934078998075844365043621377914532759851337009791406224155500338177132771711578071687201620765515819586290069279016072525022047911760433931737010682268556324928984163521357894556490956932448373435194142640427273064833683572234856468759402769610020933425297072377043328809187953331522371784110981014032724642030383467814856111023864471614257563306194634285772172277887168706128977532345792801760581997425713214066706948734389863700212787948578186989404279889746986962836582876482748092142147428515366170612445708688564498404255489158633550948516745089985843098844900929865619919850850880579075946616289232429747447476398520505045435000413523321925241609949385486340744816826630501146963315827458290635347664064490597415051224829483677145613358228132623635220829756175141172609821014542037820017862486446111612718910743013813161950705055285301500692190799052927054945280866949814551459419379253468817353052449053753177310155850566369215840340881891847530117380163805927224454677733482009048902222129298469451116153432740179186967385149875991620533093528803161541015751363433686944095894641635674389461184150477134665883531626584221015855119900430701851235963941295218254071596555412124333323967291428982404006364149042017683170567648082272566787961791706620074382125774789600489100417652686620194542407550578378540962849834903833285931140491449503879259473547347332699752592059470085469767238154066415300314838863211937754969598687454493276282411110717598245917036219999645498526236159812856701075310883673311438058752386881973705279286012547979197714017371290848644068543944409311085039350156535709919461397817304227050139827776793238676037532896812943262763489348754396307348216558747275957034673765171976764769190492384818499886258773895580539136465917007393525323786154070585327627380442853101200221364816278782891417716119972646874097689277802282171077773948373199578678329663607001553247980736153291915183307294120496442312304482003749016301893790997624611378291156700335481969320854437143582320750676468496842862262632291616101800602352179653762701645500382406386926994989098334370989991224763672416650519010190031221894716908377448076994067235648686248599125326304231416359616581661478441874839999658182559040048344693196593949800894974607451530822028021199032162565295359336308436276515075791463840002743685370754427401876770770218576703113761561186884260760438012017828712359401991186604189381069782805955541883862738151938122051111172044581258925079008913164005710984860935348440864052011163609106042862441537883482318995060329815653053117750516805414090333906834736783110788048725674266704022426444883341546631256345992296563751974343742787729777493821800792861130619976188710340064623459052003573891047346958084225521161606184257913380827748867877534371989982812104294841193208072618005802337930863113917075291816447783983337357825166772387944323657598753612055693554075265790056806167393989607925998737707168292430547003179135038334276871170625921473997714467408370771279502473374527008681479474553400248895717993315977539095610254537028741245198641307662735662543781162948411231173191154249309879941772818095855902775599333106538332863629810469737133660936957733953057637900620576950093387394467797669346060859545434879290597620490674748299115028396803722884528523540529509500788850917231963525499351608899908845177274241798061732684453154493011228396841589205690115437108135733646978753864630123202916569091016140897102106111279121818524934341155863855347357115235728586286126826090060284023786984713367537497961862688047016495244860612322907327443286747342196006019780620468467288529481376396070441357418784313531392150413325318553439491825067965225549267364190182835020935861514652473661628613037658096041844402541038040633020029510051463955675518066435121711620703199741493033612554147917593756091821897021420429748893762646125350475888669941258852554888030616334887629440283533320297075148847957159319813546482178337698602993500421332380579358443923046673855008921386019816432933736408968824646719020587738521814029763633551355979976607196465079363107709260197531581049467045877121088599368521800948077587480645814793294373281485975758814001455113633488360695627403831401808010367616505036349379944149449073292091878847467890203626081435767213624395378923522441499725328300852980516677867522398490733244872927489093752239829394428428557221970157060712657753452617457802133060456969124846064871823716747837286108262886322648313586662393994267361245792712554786858913880834532296820581070291192297674208696168948287986621996958590995323584570675214690749712758515679940476841987301028304539799151079746918494958612984636625889540124752881542262339617202619406350422981105593284768925554097086420635761835311166609897237192165616588324774815816681145505875302794588995021400821706930386066613785704443597115836430513319467847079074767825743621302294112191910390191879688730420372038633925165532851111863599596907103202568997818549999963225722074973821933876332211833151308187056727391255436504021818359432736211325992805916180383224235187344442639471009106962025995648535492460046859827481310227565194713764306792354551493005316083375650025090771361432996196247146119481427834182538189225190508197075693284755420061374155921491358196435367054371258297855152972720938278812633542433353924127310564557907525348455349130952082068184078772300798787816931200154863501462530653471867870443313803403633185521700695193111016867785865357229013050706680452745048280684754294757728194225410002696124176523874254028348800211975385153082824076616585815986751044218166593043043806944617206782796307263706385220285474119944004499720120125633614709909968068056506813509257330602393271742840865991523298101485676656558670707778766704772633392998543208656927012158413840960477205648979370509228357209407766724449490892091009038874214134048634792715369245077517775852428433911488945734613059325807354621370299101642742893425028102538798300852831919866286420450949979125910678619867668817654399083174966156356126953133543833332485227802883222309754709116807287225363627811846690067818687719546813589576636888811671919070454360672204228631028042323301617336861575500798357424271305813228515675126360718823608449816267387767077140335049319660611189660415031291797050432053676139931619678241877521225325791630874244906123224504060693626792934759303844619082920878964847307122103874064082705449444909967748329280892794014672355832686516221141909389839120540945235782260669068792474944329814401913687499227353451068239500265157506329315664471868937589202233780574326820712473761411442825376683324453279090070485724791471954188893459664568479938040432273863404080670943863104932253985152948702413788898615972323766995935924977232143650733196750188823514602625747790365515096879654969072197240787350817417149910657132660438510006531413684764808706234278600352584936372157083793899364259169216477505196601403150042413224712676713911067778313884908066677450650788141468227797789691732801974865344238770787631745202661165262854219167131971907470693791251406974081686111919895596276843843574580444069581073570962002723249079721383872695549508159229976261088351022452781771903525041412986030853079266041834499469148329764647879185534988825129110943128975084874286156063119192656014834826489111886418089678570419191450152718766927239319236367508020654754027295561346816219492527591338049926201631813379044018416693499270808337320511126793601230800285526178837049747480010313677393191387842957018249184384090559341969860518231852214430522400797456979663407425191099819553613749254645172450309975327579175695680845385643291782223381088354339593132982181436145528749942506643633427757366827064006082593991153249900359710778454990636827139828673937990725381607037901578482746078702321036511888270435755895985933092752787521132768049814898300708500786636849824864498503815982796295746853799405288406422697564996069043822210458025032464243308215534176078922225729246117097976297752033845402322167544948546398429744865674562462683192791326279910762195382739761794680977458458444687192841262973433644961987820728572953600574420163391054243030844664635851885815142829130832047878764338093929569414368253256934683246479734291699557457637719599181304113923320336650511604802677638460120544754263651202639822117434757651881594330423430433223837599506293098573708950484743457387484425844855644923533994355697085384105293513434272004799970497331064991063124194113268333065687798215243932105730117158594044458685655648637708494970375761072036528577403487457745547413995068144330101436129671149877822891536369199240956325407413979887748326619831315482639484341318605389641631123882222515501599948791733037119261015401276911352892515896962795648429024304074327877840446445450735062675842986672616648392434912944080977602725966016142407616238149090247780596406915280048101516934182265322267473299741014605299066479168660848314395311890050880027298480862484571260703917907637947526516655725639152453454919566673347026656099242079234772195417967582812013583754946645554210781421865733024940748028883110459303031667041305082386997650023291954089699306687244624270055131970214429445162200575772620551590339791691369414160553285128579905019201749436166116940713092723343050236011726347353057177109162008094225433213094042464459344180962751332574889475164949427530394831679778169068727997745526059995484323132907944033077760565397458488411394043553778929692176673489337222923521472881949357308678567007099563875416240450809458750423747161487199920913006969455426609857422520904033710285310933876799056126495226394944264792590597553675417180602030732365880906693292959476954072732353017802067289329679252642643215469342575205470640876071512185110946989384808478970067837395614512785418458590011346080050295174989016901573524793261636178848381522627646871530223800002808517223623586116363972452097587714934935248338229453806137138212170551840846760185295582458976925430783424165807268309126001657480667434848572821838232763648997811577302944887855676138229237701673449502069240904297745945872067930037246085177064827937897974963612217229379585851827070372835502217742479529744225857591307380175696226492180695874145456544380070703109486002198682852861227371702176571403425164209350252041349061025018037152806734211837177163049887128573699134772996550323118040919073511445612487104935970334285938275677477208860879399887142591303063827460490924367597322887461227074941473718453435524636510649053538292202420320805499989678305745741468097149217471243576179260140745231881918821028075664628543125358029302020336352676282273833776566686731333266344467907361500219693626239933850116477922901500596905525713042579603967497157290670217934559990405653512698470690549774082635991420639003839456357737582644237903538407456310225938162565803812207966741498112623444664173239000054405362845804166662646498540051977707053848528009303306436083096199200719352060567410800077617305157518121633563747242856727709393005576823818202666538392019486015269586856878996766019739039719463600378136169954069087213859400187052785186590845698621921836752672512615676352893492250873782509451704882171411709699297153825417701325449669794412585296750850971658493955171667266442581800359133787484163296700645887198050035282122917780459434045168122271693527366360607988592570494898988696291768050581719797078908936805566135103174612906363973802911841085543712713395098813502812278311931502876061213948036208515318933293078409927232462262702246992521710493644124284610265504798372205765437663679950674666570988126026371368816555130035353053599807729299501993230371609468469483351900658317312237117217593003158270542664357974649807143824278979194735944457087459273685606495830728674590460248377797059153410248292657837655188719569464509393591227270073365029615881325006653727369112816224132907107257338690777821953825286561165346131271078317420674403143354421278508147418235622156254813801331459985374275054431490271842273892524187802013719931224528180273030117418426223100750638743689462446839856457888065173667543133328588699749280416169129125983540567799815377477473204386323964817594504627736727946853536051636754032254236172470517000857067850640029013499209785021870432932924070526415879866812520892368139145214624885348729763485234594906071706991724190958068050369178747782305435488780327091701952659579173093995353827459419703489953754912725581970465362638047086832600362047139858091155046118370689645567046751704309647528553214428504359041134936977151243942071293461112230226348905706090597796779916428026443314469591429736882446246709797587476824825785612314997820455267888834996550268243754209033605661994168395257895965907005476074496149891537471666491471785578032196277557136394861532757065086955612199691062397188941216626857488204258806549814742680786666234413789465367145384369353270380536330488953753471092546350336676994863117633728572069646532251213818972727449132125383377818674007770367437127910856084108586485929230740652629766780439305931821342683617621842265293048871311026594021311737242999862139739933045453949094678906019750889345095680152123208157119279875909588076605541305420410830523581020269996819214367411507555276989951761096158682083305954181987788200340786545682660957704296838364824346893249542060674762495325460950363846625558775845997880204912576101776285207320818197309330302146131903832527085100550741077460580541696424507253317785477056527753839169941518624101033551166331856773074320340753346268246113648284524435839467753188886675704255085560586217604555531758969235567049091926475548216074251232656222257414309043062354353768035760601974823065804500610962102282632147503594183812466611164689613797598085205130349178630687837723657476071534886820968770227989481722640282806949073942551995146704653425502571748146698918252891964823099892168582449700848724700444487115126585050005438798264901473226553786456080847034435253631157035745392156330826280297502548026320150812407328280353769136567668178111813134477504448383331357279415174386674526523505233850678091191433809073935937159810302179990487790820819667076441197850759499798730509600074723888402763915439543246159507493060917369236646016784568845314977474329277819110417910872123692534472201866519615987201643094933371198596858561670370391277915252217365894547608687201774496724726936972526887906780230637066813929592868989669757268469499139839248692910674128439376576872242189400376108580561705201360577390322910199132462909802235308507447638689617375379225981735911933384014233739434603506347198063032115562259924748170824165906744492067616738119003748435881475413072510128456426418152425059544950574542754681940969194738233096217639133563671358122983407518934412148362654218946152924239942835784230651783840597644614028867132932829407425857571992384450429129563747666089849968156974895787258269316633232915431422384849854355866179491899314981810360579351887287073716250974840518414434283129068915623344735910885560614668219891468353207651434022674411680603972791195596961623262131450146195237342380344931396079749949239952831347251703710677621258896728107352533537149022848934746119082323907392138468876676310834268479188862082895654673577214499163644177455581422675257203324437117229723020140040758632312585208979808351865379576861739148032946893743165578011902712235620464771519785847421787588181564502853632813981291904088836872598753366992705274642203551650070124337701929476233856681174166290933762381516648242827914960773739769026383607639432337595490572038431213170313484798149395651768463825063426907832783723261518062569294350792167148390594938242895318677641334161858799797542671049379380380054157784884868462684563705965401235178436755248487769034031413032497198067775289939732515046856418129949432310690781701372846127428712746502397243735170800254551605793621617596731394610702914403664231573110699839994499320616420149986954908803157927469239693142076721152772402251051922118687847531859480061512186863981153428844727717687848663121462452616697600946897308313686394466770448015501390021011859653775536664610479800761413205105040186114536670895407978636828130410741615737880966436058829719140460249094146216338158329070637410021225052771792189673009091380062005004664058238509968958988123021164712415662172585755803986868516759142666199612391834933862005826338337199639700010724141155801843421835363749905009401826209483259567137163025876494630604751212975010055999330173833513490459140585360092328710535730835135454952727512864586354415522060002475255882641297189007534536755687738686745493625314042456353330588568545960222582147523039198567711661743029621176419519510218423390840053723046130167590132074840242403037006462105422214165631126625394702961657751014544586636948783614322076387833591207970017007006870980275929687401379917478559823524970645815991463331420591558368414470833786975996755023704187693728271487129125558035764655163607380068874265485865785097029585857718319949009655765055827645471736622515311283290834721174194670543502317638408896536026731759098622064295705889824739369664666110852125179089062137592535246625580494663698155025232161677362560429398202424966222016573969753309944910627028051705970070209774761359460911975590949372056107865309516170265059814314674577221715431365282050945025326017358620422828876300432568276719238799460357010154136278797793740467172272676478452559948555855819762325832501317957785912122406888406567715488937896980205845775308520083224797982692652736915144427912179113584930271875743573043292487398086240082735780225161037657846008297072985041883496230455672015241214850588836031938029390841584171906058949336476651684473262866866536070310205051046868950376588609888739946412978157397020983741083292882788157532686792047353781755442728827815471769537279785700661710503013084341416614793906486552671829686811564508008910881110086503051497467373576853888577393340440377471266042003596195725927874433123774315092849804688296814562679344371148878377091038022118376507562623419298963326950727247179790846512375575766358380822304146101937126895622181017851560116596417298157670438328842044295283276056956470334625785009536622925133361957552909070194535927798003953210832484803366755984303925992054392986557469821222683538912103100918620609443126870117369879697770349456374589599275863636603858323546982796264383784256110845929705820785377833791730154536712469076021593373568631920992465238267518649863924207808523196249567362643634239070736100477442975426710062482841512610714189941658877222786947410805362831135330033078467565231691630813507812985941627226118866625001087642123014919226347189499186305908165170676371680068508723985735660430348550874280667753924955764835043391148125101006481461393826134983426069896021077131191682789320573783231981350700114231979460075768703195849558671143278855851891299085119928603473683054534298050529447336522520488736721063634373866849877582128123720409144225712516113268378809015031623452529714937129731903072378684678580912052757907248193473188511926279730505079487496021092530824142468097586610608113515918028460269451162646745774143434937382523641838712200316115042825207559340860155088029655168911603442600900957748753749436878705088399480710815209589637283048250904464071489710862184861333639280033146354807505240549288310246996264311314918018527253223458371203289743823409182591732876263125882502355612506609623071120037135474118477270323597519901927377080016077598620911938911407227754341366399656498644084317354308565815657904172874616528322078719768401169242495839850405254118808309278001067128764235191338459391302017535682891746770335194763400190539777654147782152051564353711893666722977168654614877061076458332506526176454531665584830823725416952283565984825345176699114747354331972140598079367615067112722446453727807786277748013657285984994626399530670618598898679191986231570588244806077541665328248667614281663870752190443433714670968196212523396256419455462010258869233432484202871764668147846062393800063171128307894743863544936018441589245733266942080078598491051002706278593677339029415570520063961294900494053574694019944480924900728057084170984979988084510772049021262753359347595623885778830021270502094389647851383005165328082960307267283000325569170313679792488681820199496375104960290371517841829765016333595531144801620218069640960986897669501437757401031462691936247843829380298330105850971434495314015076894115283149722493775182541996268299602726957965957797739092297490250018739842123979721661665412561527795093651251999695253777331936867672030621874599284537489885395545771189799355797880823163259407546063170181981185167372036128576615386356416222137624655749036640301967917791874246650674074288181588755779665121218771820686029833558576216401189120190125142357428977186844964921417548182714753093117045454285826969216101696364930671789844088008195078054873786516863704039479579664554531946917153218708881541105902702150915254266288731307397387163235332445543253596568403872664101914928998643988298192874226899819113924239077063534379438933736001745457636597244801729134426685579563352390200014826713775253088578295625707051216771691594837993931575864574624019920635424602785922845038595378761258935621091332873601893254601655086880483562141554865972260739756703760025005270038703871097647555563825288648491520089488381397423396425308923732616663328098463722274681329730816113106931919218912380154898169214184293982299996755188939156098997580234027775828157702700816249209742494145280611449257808370492946303665929733014988362558762515850889293729211133568963515422835410431226705148296067481064176043976365624535118057719322313214628511599315638978763952516142015670483039551441230129378368290692898798379736707555827544563071382314759481377859593132327645091087572242859303203920184093792452009779385833160245713994401598398898399937741335517182751274795495380023827720102900465025769996723410874776222880911005571032469791741818370048141102096117841531563128456487245318710805346311152592901402556145428468716849898385770341981055229655425187446062487516461095728369823987801429215783978509701377900304582440987376585464615588997088058218442903128444961345723936316090404737217735854872992949947642308140875444611203493768211241746547779262210006020534405637545218004193283233110807671553632754998122565665649900072186093126026300202064035281572877889114890373047325102865429114345697267215770220010285357014610471845290569598599989011843726496223749000926118350120435872142714282216515354180983072294392763749688916095820869409378577871789015057521104775310501477761922215189364759791747490864089029182931218421823809151347421723757046056102843166230241876040873385663582075981611539583850033064715324482793873022165726693581598178873210330408214545769196049935904961242020254740491838111203949162497838691796310740605600427895153713262596581631260181313749294495821190881181359927160314363606326249878269641378699391005259663882566566595668111161913132575633961874848220068184044429200197551907595439792837048009692797209743891770546353980703643016674859074977250970270081990640228011036465696311790081767274903887209774563840639962557348550965849774085331687034039785446186639842579509833851699762869171917840545665566537862907086453233667644430712616703845348924231547571677937450864844607333020000624728210267322644922450370420075683679237320501898884579809525268017145951615850508538565410458307846847295152970896230270397336608988591428725745742512954848187605257685316145518618157442237492242067219532797681156601862017159301333393820903305915816010644386410045518114142462751776974603522268524306092683524165616659444272215787218142689637670387908011926713057277974006780679982107275704063738429986255935810011167453757584771123560108606774334047421853564035284124898967294786387704985544096213273213223051514910649394273869307889521065559619219191752900050830421918137529876629713783464537904829372723044907915802492709740811048830391319007773446606392847234016968669857664404993176481932648643165083304580181104336431883710344716028817784222109227721737496378564906571765260571476603719623071812609363626666560959197392005122520486287537369470126754036509511000048892725231409639555597509553888118660683826590775833831240547940047983036155643550393806885967301731642044114575581600057556049353114833255347842597031562428828853022370782104911871792725993172060382720342684374105057819786671560252658057129008368472686050395265647763363970522472933096173295311849872107816704446786038706811096394613472463031025931950230461923147998557811190811100872016468926434908757979046034620247329095923708581432490486070987584708374093983390626485692250039549138549176336833792069940606738433025179763226709422790566619682676727785958236210985167993011120445424284152555713689875367890200805460915407027442993412382488987905332587623765393084056584531122790937412581968058016940559419285979741590308440925627276422854934706648061014347622196492901370769336773571527416408953272974226144225907377645907625557900284535209993462158850739709056245844350784914708101961688019515031766766898622999582677387032096375022379192064071641020153924678634782470222159490699518270146545184539826257952966774431864795305536227616017144186694336481292819538787476432404884767264122184617263360083197894498335399402355627424575845728115909026240164015956879049930116532973515785989215188861045207169120251573213939732152921697106028723062692561552651253993360250535190640193087041537452058797636021578452553870195512361527240860504421821091329805186713981229697131769004085317032042274611246260239188633691188574971278078088121143664141186038300320993498578418572463124611455420184860323447299261646244330519219811217049633483804695855046005007365073704503978876599205207432341588233128090805154635447649831828741179228241792598576252734497938551865104774130077052690782341223158134552788295682958217513279084346023353467635933943731921130197542815421469440235172938672635621349395635532799720295215443888601505892122955945644685973290311516228826439988173857389750915386532968556473376989083639337973351085837868896006602455558067228594712259648854536958855856764890293374724446912667767464116367854395102595891537297943241244869805315524949451471001529043284101534893085490475269672341622395271814424170464342342811260470083674276654886665272780940978155585500771746813014664275845058240033102096630792542218987050878965018289881057212072339864092755738338897642309200403978347687001990658154132572661192985059857444139492752152498620378885473968412309478730317501788183122041500089365755322611294493866730068342792641715352061786778307882156512987996067045386355304129938744321931382529178352575972340381753828109872940188410666814723764967894221918554221988016531357972077562642069762717809316999188173686068451068504657070346837822400755606849140717737991607398046035884505041225448584908807944672088398346690931142000175193321529497411174012945494534057114466674331131563692048487009671796976138874518140267424800461810521663069889018367765843997903965764187043377695361637411143859085364451441474881524431832030497045703151772797829482446355276195576984530275767341657926057363824934372947355007559476823980063478664391765728599559240212768119288619914756034714401752752555328079253073851147160066856316061434220437051928389703729340613030890262964314108743681184251279998359039296575893782574932952206575986722110775849188088666487893249920090615795392938198972572613054513153897595651789551650469951310299049413438390671603291513037104783000448450123054273785491129843640369240495893283740053875335674323839517630400030427747680172286595727049382041566211992131218659293930320581925917663061415588824056865721316449658379813171589015087760787451343819302073563965151675570900351348347052315906786737669183111740194492118147331927940726186074163162852520531197479963446021070445528281556886799306725209622577621551924593684486282091898680128639057692789227375732725139484637426705299243065390279881904240953259535265592036393781735380115040726711607615319081101914822457300044611823197369534835758406114636420136429839152488185287390913100677253050675298695025521208754589384213033045725107750047551825437898190837790087532411744528108121854428482989201728779785231439877136852817215463539135036108767207251559074217110128196883011856695848364546822197248076555442954490909628139612970761219446221475518407132992320863631420713667414085181505948941907104481942861099927763243274226540897218179899696639310249909718215726469328638994126247099364448531099223328504406866652550666291585649053292462435629319325437956074711261834794306978620395974431888534788297385892026914864173235196832271894922607375199218973484641458209227264513928817806041894257874896008310686625847421839299272961551605152653362586155672092503884979693893171931360934684219852340947344095758355727254391066980375227133974534394497654130453124947336825573301585038355675735232349942596848264008314700290293310288508710104047908867395845363412517208138484976227063855946259934651434584613318727959638036012094285433322606073405789246913346049009626120136308683698811534893155355855490524287875412347576460749922220878338394948094162548894819920971351053495168951132118842912139167982288610765884598749692673669271223937812758447528121738621998631277779831475347733658948799340818030715622266980297287193953577604441231559457489844182299513655591942016923338415227641202776450340022206218636170391786955561685039412969409091636844152336928829530812684662768079292994935767881301610180848566819098796023621709423697131740311209324614495895591848185959778932685246336632494850525095913106281977073472531344985913711494765388107547527723995093978718517377399337441158082645070207482358453273700947922223144702638268228658536157234457337286695510753611677311455577194133744444439956969238357253693439196091541605221142180734507931539209002470228790355663285296654048705414533979534356434478843408330732202187901077638996286548210460348864627753774626037005050602611628703059789702513485294420073637281599081234814176934568786069285382551496687295432730214425514168347229798198557271626318095351090824919936723804864759376044295088585782250105506586938237931891862609198028520325674934658857367064915486848678845680028950742703894984583834562778808453582557047941295512757957426655886608029855246681730282236135852382899115636648513476108690310872618741556917756498874792384657065582928483173608439244625764222028234245098491970424918062367067327485991458485119230426029122777027087694244918663262001486959872053646634335127151802077478145384533403396849796934040852697165619216638837933225733766270159042379515463718013216988133201093039238090483043087446767938834731469771146988158256069861714705739173684044722075968930723823880827005675596077146250280936868465560205450300712373877549183743153271675755528558676991387692234259366394340641998194458909345500910994615778690790642612596885533812584410709446187561891803835259034637271223071732777265420999441074878829763282809933018725129170774424198837491638960865170841137729069992512846598526751474004710456946400281154600903937140139732599756066597587099857955048885224258340221905042045937926241914147710127391793617157447191118276461403520607770107250824974458213072760718989137442175798285153654462591584191506473301582705166419251598220981949272774602215668721153920692695320928344585968490605315674554404695612677120926102103306551623210613566880985807512003595931757983508008701607019214734171036711856179613683440038925922494019007743870202487881231791771423262262307761929723295714907361321789805893875593087374443760531297982609302852006182281125457941711676657824065188295697827629438977345133921285213163241339885396654702975700688236357636695148804392983888174768839052327583867377271431789456640410707661925930465842129370083577705940746367088155542031256115615045532360136318483004172228579270189734770857843385735140557575027962435610336784709177478508049413001040185930110965395344697453413893851293557982800751318681447744050068890896670260932902422294199022035688149556943268468098026138753680393723579826361903100302919169196627410717845655405393479871045335092255255249714474841274040273628011548557228642281781831293050743220711005405854166711785340612918050968439415996454044383030573886247584646168510176256047868072487601877838859582014080408783926198481398937322950854018151636444161677807114260402477025731234464711038058903919458019762154261563202196174646283506412094505021728216847179882683082055332133269726108063447684596041724606487999777163854191605220773327576696403187570183987637378773202647743166612435415132413191319168651468021638099913226774404630965593646618214501690906193164494926509824319753094145387826043653047660055476701477537541143227545592803131811779762500928222813050729966129199563629562646191774738304527268007967869446812612651622480741205186895433694504301163245101513558722166841669739623042781908225942756783066444584109710008206356736536601899215808870951201174961463591465949092912556607066107901749985754270130936008177669774897585998960920722363224419429706877096400557898588836416270051142292351363512302862291806894286270392251842142674084296033574725095662624705227538644044100550850168429578750669182871225890937370269714042271538680210305550571294820897973135727161897206812452485887253030473122432534890436878417278693459471235600039325031001300296789187515765804763833703950142940622317349759455612467439282594689511472140678741865287123276786034084266168329758281436186438916852752890843203853185072617967387574688611497726261095691773927722226250899229893052342165496045723625913045371094246442197766875636580901925325423692845280615363193815393231174354507618741774831735236262015652685188696533761684993294319390844361763711920420411342194941249429671195416051773420650167542081182040383207349452930839624649369382837750684140486637223918292475251371750028914835380962481788573737787299019037274062568275500785917234321878607541019285907131841221394003889523318063810476608499590220979361306353140238242921051761553128157350121453638852505707441622128879658210844081042255040109509268537090237524613387721846987578717219336430631202571061195494199796984658428768495414384997809267815233594442986639207751601915387733952834302550459042195570982205938003705451529980495011216382057170465583584801476734011641286579018142523877706764660140774084975559522626863784846874117233205075405359034083357066488375091334961741423504636566313350034874837119510630249260593413683794201202750179591502030980866174307132081994428068403557082852738801372193227012040862084187336027184589874835166425387896518342152900530851762296229190470461797916239697231331759776328064133091557697667600358826940730433262550587594526933976387753189223115021695667202807811121234301266324780839472922665693678247235230574057592685087177429936086631101227607232463271149225954139358298643067281105482505600495183522037929506109844498720833269862403599831261600628535770721847875622255127007139955285142988897548388744002958496101351600976731539967329774134422582874247299481712849328770254502524869983741870722443876504847848618435723398504060144622274555236643502392446820002139021256722017339966884523483335675097905907604409221738887039938186103202859167370686911456775382152792334092988946033494842242093795119045730765408153074168138016310729237282529008837078809827110805739661403644277374115856231252501274114399205497621555526338914209337104447016400336662856159955488462016348046491263277420656896776556514561331356686934982793227910567851128465069743595884409430287941903486491674602913995454934280241179742331841234768724215567384015824872115126790859187856263144282123878589156878586476134748290419838810397125180179892139297376145513765697294524190912807388826677365328922460882035664339213841975201295993462804408590823303558632216805275607666111283244499561120161082934499292554343353090466393754512979267121820113187726131500781555462322226842837468913916187808335873062565452897052344100491494209852983639613302301489179995548072893984528595742319581695241130909597224219428895931307887607136390854703902326694575381245969055007299893407575522714210450447091825681143029335678060975883603986315547281741246763743756936944537650117857530971899000883745498909338641292751516057156310985028678690237345086267216621203844563106578898044752817912898596140697837884198066957911702283131620318136543974778011031006885036100630008429956136423785184997980676209207550637146555718447736615569017971919730454292486028944597878338804091593844304195609675896499630582380020426358852330203536245157127308804476672275766603467098830335739690455249623626887280723441244042484397473174532529570124749393976993064874507420702873234651306766422699502481327750827464064666191805739579717108409700172531996118197735634654349407373410417879719610215472097020427912721274191969950189427778827007718525661712756736981512566062186089245266600570556634363579107167602906728145562042029442494386163136452999123107648159380548455467583442122611212929620469750515130670911368119153923337595408289430039888428668566059612176794400032048175283035333019607150256068375326342808189934639265813850332342813469810307953412252523558176308663455860015973323795218806528426960818896240136912734302031031539310121388163311189806787345189124441548704726193435207958654846274363052858691125874776809169724230810596531105982964739400215412425534708860074367444658745217646119519146192779270746005409321936785443355545256622415148910505649526839956425453745985863355969096977161681746450641210087368053579736058682612795423309486043411340246943661409362760670223630663335784042206223821101049228923178913409448196856764337833406521072715839314946616388686913620240388635756107379342793154375794885096939102768478699630229917250928739541612034660541651869422907604592589424422662321107319873164700560691360996768044232337820175324314881042426316918373715582533705122877704310235294010670671402752425447519735669047578920058504895041726599025131133552237232243452388993017542213566636088094985760542237193502419399865057280841356794521997968264377920901490949972280229363471527908727047946677167178071211223684581780822531803268644260606680926533971013516680674245888281702586424503259935580356188039375433270496608945325393636824115797524319133335807303169136779687162489852915693410733408090312720833299444146652377433533514569914165321022825613738244075993257853419202653829911792533446718187133691314722242305749834105992971908703981124111119539833039572972492541654177149696826286629659877587032228498361922013551366601310072524160546704078013387910281518178569726229076582222326770128217892963834381298034114969426684887261610143486583147554301793241865818926732902934252005506273988212409591194634301179380384005993302307037807559474189747306308377501882407495361412203513863034800619020064338100339175517560706178373793755746358107486544920281494104185150660597139929766884380746755575248130624017881178846082680597377308424112538886557903032532272020929145225033470301177817926859756354893106257479458550235104807112572702203211309045142462799711108601008880518993407213571401417231682844935869370527135947603499834089813700358340826222366910324885053424498097336099327758325364347797130921260924736035250349899214074142525827817377776479159293912266993475228153848451257310571515065080234363315232746723196532179253469465940955936952793862667518881864374581618614754563682682299658278627500889125137663961369835313766112095974680016171441299800176097899095286499668337173763348890076727077683465353875868876518309049467858743423787737466339031913132154578431143359763568163781752563498682676716672426006224432044151039536658289049401680307170825073089211374684036900831477008486532239786295946474159193315489381853603548247352790870612346886768527393758947160378136824333693186142225645907143292310386977586278772392608614846534067481907986018209472760281669815029447121531520230245109396238619716915403456479260234795027116270136266721045154781831264390383896951557988404757821128709116767377741088468408527825964635459725145502476926674013064088664881048435537756674015816308224565316532019236122240849829817769830452594093136208547905391808886392845845188883578514912943588332922139442796269948147362617907762424487658220981121938900917958336289769920021465343345327425126711733861364168153319536608461965234722744463293689135342723893375220075510500591923050350715976627783384584642159233415258842092518719383707511216978535525280278601040435525468901027944996673556264294216667311573031411482079855340992606033684304957248228658679082323878039379052953868552845069550521057963451506475292011983914183733964888899216275904934302167359217021851687634612734646494839371916472692149746300240807982179894884927204044804399759236074351520425416197440835853801067842115501675383305432763347473506767950778801403970752460746951101850799134175215898819192800852513003121195653163935724240483889880544727871609723251969284464154912178822918366817443479773790298669846868785016478891539057210903916607814179208143828670846811923876022612162701853967403922110919393094752389860091897360558370790180227670374742380985838385655858586919126053683659002287984299839773421166439623488529293853568422387722325015470696720282975014479344924428908850630584227143971547074523227829070659675239602600535318372105497025842339388999743609999084762934791106829063786633032752039248764770634196227070311090554326622767182556907469525328355018344943885834517842099680497101784791011815253343737118390347714192676668212371667040615637224565603299664068694184823107025341028019666443856640803178879898946743973736542085341642064358429242912023826311884093626543043550953495467979275167786912582708477161446076571549234098463576999832935183229700309139576750736946845961638734278170596556718775901513158929273017552988922120378932024377026555399001852738014045379381215503783937733660324833723493314848021801791678697271050302402715948295284584019901283528479906970043526843423535435202157540538139708724492398181401088327464967104607355932171409703825585104471673331519850568518842647947884077296911999725803520850839177053481250718232893977504278175064382101921494095294051859256737625713997475407034876720086505704796022321667953123388078393414493608667114926097960733278095996606520615764824714037548660822918134068184619044751961515650396165972218228130205122264903057956579263302530101434037371007881832458382628665778708151791006063112230749741268053390330212929739176120439930922454898519204044982592324612446428867876374085213033105439469420873377761500889068133492529429977849247374937253502159386685050678376584781105349221327800019087129871322273547572642708807685342658367923483101306504540944644459865075292314604815862176884818600579064181969403630395332154444779063306778297042384020180266368971639257069175156655665447059951066181933478135663815221297507309136002041629023745594116941398259931912302831860791244479641592173967785777451468276408479276554816245736187507205842242812367182988043769882636058248091421159096270957572097785960056903354248929265717031744182083618381900744614666738238037024995573050551937286985000562248219848025906619216895443666070283856636668714041444055974739635001652279055994661636330465179883105921700733684527252790140019859725019430825616958732731640631265190370753514043952121357354322214575291648573030451241119745450251364623305236663636478907540289081210160236860538672354969242874795123194836171451747675251563534523034154401432819463035723444309331729796616344193682008183692301959002885280108249297221714382239147118541723703111206315583074863223320164992937945543651210556864308239053439339754470692299355961315952014016605609059927029153230943673635854878044346461856572763502494325081774485101743183294646967821631688733056201603366023489626941227874887120371562043635070202070246000292650498371306943435670723964949071402818581329284988509201342357042577745674484511639569276472355743371996572834853195218789715616532285900064557447880436381639684916072482906909008859740701355389396125625013639505256216426745934749551603606840328525858448661353442451327596712336089357913599996064954503267578867056205364885693205153703027068618291278205684932318400978493595298299229228526509286617706338866782876362542781276429606025889500357163838644084979938109534830413697078801291869536844351297465633471927023379282418385499200396616982543455117499247235832078630398142473796720465845286506006151833508288838158690295781988702723745488150151039032406772300381155836242991142994401877532343139315456446967990340435352049745182373236737095056600119726426091990817561453536749825700196736417969401503710073203233162798346669897245928816148005817467927469738828518447141719238266321541410210428266581820580111409194586380494413964820253538784110476653580319704022979039314614685961505005505101355222579342685011031252435332189050671783720663745790422092533282256422769296579232919437484106496254349559698985681318550139509132810091800044426057160750575516187670068143118745717617436207086896275012821829187065062062421060479658765736797176370247843001505926213434309327239751681654941467542769470175985791799229153396841294972516264672164911494099949010131252793883981072513900210317552887650752464502994483142244414583180513473283066909397895843882417574422916538793271951643012855488093458361859040333026085099634111947431109255351423754302769628142138293192131420986002727799330413039066117436253769204895024589430519073344919689914621135533803332451960353880418015064938440380566544581662505959266379325106788907559327909139813424482638659908985046508947473041858595192141031521299281719045993255780466975748694566840979971362596728964224262665751344570539720605484046862656815163361357545572456669364726657795538543977669586127231286653220075945600049819374097556817272838095851952052946170698832786670095732387781913392122852091472908427373145508354165421565850222136345645942735703394711864187156876133535536005848294140440953046121946623620751812421245105412271034874440985292206788391714091077258521352479644099709567275686528488043464572109374087611211746165720621069418757610701384131574332197172823016771111273262096947643399218098419820240112666997567768596771564902693606267572338583859187491774359729681794139561428507057803501534826616638524993050397893929316456581918235795380676497064803449154456072143694649191081832673456118422186873257402473267322481945049100901578442133143534910595733630898977088612776754921132946603970880298385548640632003481862378020770690885722328269097051141699540363448307776934744451688558083994277643102751065490953641992321448152585931358675772211262840140575288734689645119479772647810600028472869774850961032091131466184917726669368182778899114206367301404313370727374387738349240280047352007635702573168652821543025295836947060630676131655116959820141831669867358742411906291988825416030878730047667756632479301027818927798664659818880453404563943462899694365304408624610334897724306382827065368877756747609003559648245336002266268641364020159459528899419775821723989591439266181680395937210934237946069407616385089383894668854923010829811792166512138155372815594888062853227867392040753827928146815437794483389094024426520669693009117227626206018322793231133642311739580405128268154395740718782267755819843708311379121023946400120702842717906050297597283327875461407796485140567292875852856005945567033543419247650632802496209984097989840845573376745141170461049819821657280651041119181433284601413142647322652771242615362894522816225564179772589248409261869291347012998366538472848947979884408725604118450137129489374737880499757192865718453696264075188050907367841386091977335870397908475863399652703960271444889311705588443407337263436493258775362319105719307924797654961329062442156781524054102778382000359302413088293853318922000375033214931316629221680055762947836735873351743811079106867797007474526438316589205481748431601095918280397912197237772229725594751692430838790492712006139741847736541008816677447047428623570846063787097715350258404540449060540767923279614422072275678093916993638009019208885196775206751408737249187197737761142659439752179477331250487089756053619105832315965063298806431228734995225026012189010725320876248928685306344772625752986465475915161178987597534724385934646507451848020161930816306756195815028802736699283695262469634647526301634572166261944632149736751449299736965779108039190939466009636739994706667858691289048526172989739152498728720965706054448464731078756970843220505063570478593558929901836618269453653583749365935203210556188581373012630790972267037222786322973063091367906078808111370283149283767428538421386106553867617731837865868803201940138667936716276344544380365139390213234849140845256756872658311560680538141090990500241178890231477461062255446413796636053118691036751133821934152015216265747421476389764376740196837319011143317602789777247799485640693232478120816740517014830333716241128582986366566741047304606710106406782933406323743820220840131813592254306555987000318947844038552899899901802395562203235716773087760793848125046406815189825561616827470635118037061087813351687480541053634112928179624252790086159070581893783587541654207260946548358158651822033054859222249475055826798226520395052357704792726651127198214056167697457880694007320787510063453813201494930361930252144986950764623765641512392067218497288749277825006957964348384162252067878288782639986332230921170140347660218992207663894906990823211516261099920999639438683450847696644171896079291283447217397497851984410633893622844450354104783245685499611457673678041866263172190564650150380463426358048306377254489573696057600292465042020066995999398850374367661824181147352056724101446074418073650663456818374539235452746524188744898124343280487372789597533862144920192114065803954345769632673805193671443339021296152888270787456260124731879829954436998724566352586419896906475023632873638739252988077526357413088350383659349347010139219291595486933497414795132906747644726268989063934644935267813885042563788354623468156864250932408416881540087421937602488792141343170864467479299266797903336391053812507431269406541869499960434399291982623024863477587793543615280444989256118159299247420355672315799499839198611582539998033752366781204154026270563183522014374110050880264423219175924261553298211270690104536088816479965515628706113341268802072096021307046413696030158278889339747404434077482193540085108184895831770778288036360959503906148443142813610534761277167833991887553015001726834974760519810529634012350136156057696015098977398514058717187714352200220204746037413873029954994484788124210271199825817395791876411469494368763553844608720535032014019591119269791904592936478245655621586280333393846897164036356007057835093298461649504786972575375280161179088410491683666438921916640428749902410391227221242709554825064978841980169319383049812521288079335221167734260346432964613857986658940078601374290730728005896907072069695688401814798592472977607895070384817003447563437338627478666014780441670821831722722688822772947702414190867335355465099116226677704336609343857137331123699267988889180295533869261245948953148312591951339751694640013120349288053695974011315617752586809220979697924322287646416594656678080828793819505926554626519948467264636861809354902842272584493145443896447359624152239668170366379488803642445013593545627974084327823248042521355084139212908803991844251425212492933230380010364156384321674520459732068226738875210919637657402669465812203514836834886345544206567993867939639633287104838537428577571157001647827248793839549878316669524204091355194932400756004605219079637171223934910533402203455096851173951652781266541464646853775850934863962682590786890689564928739377854513298157050199612460235059850471560921535909054322077784916962526548801058578768575516784642476696151033662670233188845827753243250472404537270173820185072977913282223860111658741379929988639992684494583166145409478865080629201067646678642928605140485469770767192502242811894477568984033549402087666305384553937883704806010374534112628253345810833167830387807867905510905820720848040082600631256802588077478904203647120435749898276626504033107001344126501844253795377846426614424634673137304384202017833379691392477959585944693196052875848948393957132031083150475934277480661380528602517000455080482297708425365393963756582985849049201083110201689800197333736179476572519779430383029271840177666833704295595497705786177171408562153553790906244549834641343529550069835702302428534794813117605675897359433634229014842044176881149018817185616417524226273050838753134748078042362939326482318480999612484685779213196999808329901191414199432645731272594856953896396163734613016795388978697979821551200775073348964012508375409890198081049945451207526530767557710748944212136900061940785538755401750279961566373086577518595387021773719836348756306396625966145409109232431060903347927572029597162702785299581716087997889537065002336578917412543735070844050168568964518588678844153710859374572584407551994529197391730752841855774899654749255441593071341697425510208634956463321323388777566559435691008120316063228603013129174894495860473268425585373885575019830679159098697151242865729470363732161703240828145391512028110610711691348066886417083696701815307521590369363486728113349053011050295362750408464341160631219821012697067200126673078708746202650445647207289978766745193968599641107974055907400149908085551660483154658994449371741568014984074111793089987808615932245411302339657763898302058374207764702632367792278444377967568981466986905628930093735569899636336460187610698598517050245489473222201926819742949609571212189787099971214765979702460081043546650192777999791221086141648005785197373453500067929563018370393090309113411147746919741535845687748378495635262642824088540264342093559841678169280796662200427803439396865158217035406919476504001894607273078556004390935445435694055749193300344408777009195266681092832901168483758731551586272781991719858376936052920424945904419217747008890926501119481728838502804787133830332418526384609760299276164377256730565598107093046118732921806549885604869572934808948182852277954184023456067574725261614922777980324892275104346980227270875517323739369434558552593825606113115321435689425939416459051440694571510709111163218445319550755022006026069982331372211321950797895298238549300485625107432875837038186843331031633156359782240574359100445775073417287714891150166921642652002781328945464503388993669755230079605233186305362436444879678696681034228242384468718287921414503190299878746626120832475599027447761448357722973404857499334156468023152758303583058478859180681116921484222600875539915532212182366571422621094464998162798422534223228643906959386280732801808887915286350854776816621204427396456587484865979855740975237739514574215732402674451592002854401806372894434822459182650593188965668145951495806441407054751177122165781014991381851593030423553647281369190921170972311969453864212963228866475661074341491619626319951244482557959143040403312531348296606805777283374697795494064959930112057796395109496250393463353066561700846375766298439501854953125922917788036459864723314955799758845531399274626465803461820695376584297789074875727639807051123211504695241985839027144883109026556177047310482237700398509063531033705010129430378742227802201063942902056635478595879572838466396046417474618381362231189171809278868750095737188341344827154952135069821406130889745702683248650618237367373845363309444923834502073470465111750616888145656842216297843526073136425251718540326959913090628641483750570236882046351913420555424210544041965418047886559907230993565924868911076502480422232634549133952248599270856569768550571291480537277967201000137942117800367678464655808722036948724921024301910883778600139574655971944553034659353544537354066260016590562283319145100872309420365419510709822451982623607514709184558773237730195362668081465866148698751729285618384526422490262437929219075979021192397681018208137811932839344171526282470887377116606756577216896011360176856982053381473439317053498322760573716901451305400286629617358871669057238290750393387464730323927863497968197713053040782385107949341019221578271402897177155442005030855991410324644019471695100607829238510489304757799023318145762465688245067816203316227284323964577112975105626141078550004569692866789267734174426721471399386952342566864272388732853561811873487608586237007953642935325100773073947599900802597798951554190987672711305893727926936515157883072364068722012752570901379868424398202000245685815860804476929189814037018605712476843609734227874365412861924617164171776805420220810191946234784416276514705834376752852767320514406585457743800133698805922752788027482692961891321726389702246344828985940927816990354484280240531579127049062349765495406552702309167240104237537707474431869517914269412908774977305204860158766383271177303135322019489966848160179316919449713616731368671346776962564882067015606970953986973705832543621623653236568815747035401559385623107787609102714621170012901561826147837325932556377904694027466612488225653254379689106447983044838406809355690661242324597823541586067694462321228452894901953878387748059394471755910982956233210095473854441271577229626798871896649463553361337380371137026652710138144754536359944854125833653789735381089625183607742581756974855711601439234834594231029692826250861676741444216733905514853217779672905593234430786551078013574629399378537038024605346356726065613852177053463093849426606519119078340950681670491740965912432516267833570803922314024819020024936589843537069537112460459714843195055695953724777045193893524109324424384392344186559294708901649760892731161239093792987096375490671051007828150191668936557947776530829212500566203140127865841758818269406047182115810961218012299006861691863044907325693647756628760192049583646348923281701629442886170323671136018788125757954148279593698720687243610247323727264032755773700584359544955191180303554717099864097574492415849605772797732034497161153497097320911948782060555184250853462970127074785057273520239225053263729157004455410585835587173630371194497653247537811523838663292600398780204533847069142796999994934044756143755018374728559226754382079284010459793313822045143188937940710422077888365450716199641329723541475935031746436611203082055141578335112698121966014990949610460288637716512814075373338747275188584083127680660358314165364164798551204614774957431051183274871526678838895410594967912459256428624509786109546948416474303720044049586329876947485762661723094152521172262634863320008814574751687245299409718861301565770952147001737857982330119972667598613379807494235399258457191126962348332134817854069613063196532601775367447633809456297795952082975290608927811740531347496784924446677341869456897153265759038908739083665452229132562626588215265844233150426016216770410600747585480389898139004314178505060357883128786381044473164555676069407052527005692293098953635431551347277908857539335617545295700782008983658093888860901607292720078944009133533281973688578705541192102283082502279121204637541450441743687459223653061214046349422013079694475462030896036459339161898415746715372489951559781831912689257688648817866704767728890893070090680539575921457749336458450360684128893731299545026934076855258498484685247969477974239273507760705644503169408002322918695328008274380949485915449119903511194609472589465873650409644636512048805956323370166328450830578052429370020714083195221691522054067734517876294605270803735824389852528002928191413140239586098321828696879323309641950692414647401085363088422443234907249351744316645331963138863710144380371735098052844356097452306312685863015773944408060974016637703753124502614341101439436706035898242172966967551560800425591026326996917529295365266631389810368519123793360229724677774677913257217441438237326247990554433151882957751428150383073116311072426203512447236127640682712754908383741646276875775615736942860765264506982139367847176146516535846325434545291886461206841462999856425783546285300898997155601980154234695636769606071529388561336220620194102851284641680794357968783965390208733597249958532788538900723083430977747116488847193838855423280880559548954278398240705481214331464828493555860665550747075010795667015999504021777207498740883507203211367502865265442434223637923522550437950170088626502850988227100467926608656312180267343804998701502017645164587018972135910375900167589618184491592178489297185968852328456450546396273887850242237913165783949488831069113602412896079758249572693530758632972770311545007569096993826461718186718951044815397120961564405650630604116813139055851046936323931630994485090772596238962952019051964295878690698688151776247113270354886785382650325733600695152003971397788096807893515787666935102135375047537995291417032759754404129319954658505517604291199647712149347279421017253945262498761619101681078984333293361402942705121174778774585024978443321428573844402105303680815869908022073589150934415419899655213240042361491188753107915527575222753776608472677436190958013752586206211467250352770146061641209826343145461939311471534935176096868348185747735690536914238109361295265277435697425640571595122270652843311610598633560353894863467227669656077001357219735001216754915216282349171817502360724547250908487787743218360758163490422437943594120921085782662398707954258961557338470576477357616902148878204147534864232693470489004333291891832373200819594856303607424996843011234115071887045845160273108749984365764089417924993841776108290602263852157643254624976298116139770792437395385067765398210257610174378454959969281972196528748747698407034741300737680156472263543055974738669948071438365857532121610225121136706690823434583372992915823831699165534553578458665215262054663093876635509839977484522191184863996153491596290214001270880501036562985925241920506031274251471861025173867819917967091063426036222741159667139821854457064962631793659454226210516816163119768018471390316700132300647449882636672676175112389375042189772594655940463010398633658605210380811038736763273198285972435157072931137528856120842335622342979244267826430603448920648685161254200431605514842062721630152163893742104641912478354077125241151678391100453654459043825412763650893883346146166809387780326454769869014584922428992344391907688002477240748413007051202496434869796750743554576504050748887405804367621562510366277464028273549472056538378422612163063753657525596657495659563387293316185109484101306696913002175026158700421848291255328449871690916351552723474857411287912449048477017508147193510108145537751629702275824875254837326133373337321732887191857347810504434915988033946222205766210783466454274560705918461507680896661747456954552240067990425961305570353132559472009372669570232388224841811369058903224205966920332895159144279830070206749443017854143642818005132424208622189009527650868418778232630942985197744396158492038028143510387345695014025363093570173898500042201914394356027688007793725793557297170204281326907152551942160709116252481249703282114074518049309854755763532072741041109601560176049657666671262540832485984149344693584115132711948304326997063305729597404890522768635022029255349430153422161360964380119843081316335291128331171895262798769394118171101658142815170729561218231607034270536047951726837645721411636849123253765026341511350385337477994473741421125062389519830046938113602758269786501755014314380678178992393658093231020870437142246193696631737559854722402019306281187593438177522559913885531265456013267713906852765734475329284954833477761105649347774852433527892407427618571872459313777783382444131554191909695778586995023721564051885846760471108706754528583218874924913548401731883179914823626146441347741469160324593245642246642116777890881067041993577604143830872750079655930861587961418099031562086874332966644853850737368259402176136815297843380180662356596678913446054968938392066801341520781589875145620243169984084219872874111529655300004154247363056033823298885275220292002348725011177170364804122135516280673209518606716142460891984777536057293505579597168458340037238288845132824403549745642471639587051294619103267416210514831656174508272589960847010532048643305807215226546734960244335398043171763120472690471038040678239042862206795328317185894981630339614852193087954038471143098620494671425262075687681119859298003697242015318312324190799576958460887094845663013918953636758188587287531188876906904523560393131507265192446201808157594045476295329258929940455891665416971652717992308414791434861122100633523191660689498232406765861239160093092511725964852084587293444407898848002293139464251824013674813140850296578599401959992587072943870869631512623180302159487208033256722966622186931205463354950954566363815425700431191071083909940133865428022405177570982324137750695431139373983271314537806830463684822735537115576448033121551705270496735383985011741654636332187975343782530514939595634687043574946625758389910722494258001418664758274488754652302127886264844543194920334176777797918388453707853941731265475088760078851408093706321364294840284172413197553118187306388158032809300670129023068647675269260124542145993225765743475541394486325898398500303421416981084746980381350946016113063376288113258617848371327298458196369372797131359828673584167186153032952636954803307651184043910347843671097571736881596077412070917598906073017995389582171061793164968197118557449854903519699336792830416932133590232272685190436494822450902486708684757582426434319452254358829680760209546583975459595937101080559801555922699988451164862576214314965296160721079669711482750337217107048963737678974132580005930583186892686036741953684656821160645250243909796970960280054847230349269109770972313017081044541885875976896923356763697012208534586669355945499265895437924299655262567827724241083004809726750323323924853155447311924685161241323677096186947728026022209215817073502616452309133695168581137143458024413968433528392839847686096340949740570953014436310642195548344341860113209431215603469731940124345343042862627998153853237241597832690138724642664441961664980017437242267241787124724945902009769848699952291019930994139113588092674803241586951011916175015280278162465832294513489825502378775918587136000210442448593486891359636189870106873256333297657326163418519101249394667273141203551475820188522649176678399844323345249069786818461231753437162078189592411336881648033142622877122677640199481840398062760859650495985729379785521633176405288077743622701799535097787876316860634066555728433958257939783555530050794107846975383599425683324153839030496211942728708349159185609330042222718227598959915682086341191501573202856707560725250161376638783398551440697108637069980008341805997648018068984215587541383067127304717728744589869905390916947028715867779887249619798363576863744535741932321755665137242776271269946167196030221370515539028439033116784442251770668213759000877184839260247230099266313114845493534233351783321552234730705756041739182783959787112590757159482288663479871088364055410840143179459393084127791719120137643093298537313263043172513585515733171469235571249587168743765604810191854523860944472116643280595085199121261086671522782517401616581764128815742570690506902374740684551321479434759948696196636906791639884754745567657047450748893081725373845835309925757166409655332444916510613596452920806668708039291936067657297393915060425014306887019238236399608590314621509094392652256714250625261690122947214245656709412186905174062795003334933331716538464011846775465952726272157928430841577861233424240022590380153695064178428218561195257758208677222712846908587410857278958290287157852359286134567457191258612484049651442853097542442305247131298621400671509659563957795482128346228755765118849640264874435158283120188360477570564562209659511356969605949129617767336495340725865642361622813331560545022800684596591648762389185699296737102312607873332929515687006016095140282810050345294638280436568643867941235152207086858748767389578068582913044434086182125717867232380107840089066107901844866331645972671631666109497149129880050940559474374488555671121659395100816455548196336039406455578667636947621914369429140819298254352858374558382714642397384400041364689981276923611686300910456972880323424160649676175107461326326515805862274967760437981468629922345565482114846067755958471582568444203330074818268181160185398506902163970528062622351797993639209105276515337698296480265243731831165781054850774572956048028514923063741341864233839007563495599124756174793406290736840057923272714131846792561580856461202653371814319516081556844790549331010460229348201073108608182327362095511408755599248473896690264555667019391105776402835592570336981933622189087631468135198477669415007098547537867081040295926960702331363923857338863946137596391460341663481723624263689608433811614131982968791988827018457806173485064372138046603724930010920700054298276882970440929159952503526792250524449808146390653135650783940361460677975035191260950249917758948647853154642953092004904337049996075795527318814138300531374834356460338344276947535968933292038596550089534868054792845394108293006938072703775534528359183125960099253357667979893393518538339664239107275185803973831562040276880021556643539712230106965309190881500314249813045674749405534952793405321503340044558663722483821034204676441595628405725993645670563167377018458775330207309459064567672332051177512806975837579225132962757343965324513370324883323399315593692540913268969531614301683293288004573209269363050042205433657671252637073306839913324003508630997584634850978700229431502365873343151573376043255091910123447812906204057211172132199491755564248216363415380816269182855331109164548342100905689865557708868237471088360166684499727685140228281311419579957418376251802930465431696136380007647565731222647216112024513672721593048519511577724685147621252924488344468972077201538575858604441234200792285096593587311214561554456600196558217477856146034399839652800312457345804319835777603364767490966807325884604909779160739569845053808679002828124708341185930179028192552835498026365517899573609829129269254474620147870543449807382056925704229607812812914618532284654966876706496984716103422361615710994062596704487507077908579820290984373137889437160447649392698425557315733767141388477514720274076993459965334905026799851423565168780225437638490902099037571355223125530252211281293863664886813561268801835873572791001271123354749508122972580079825426303301932701929948800129892644356022076125794243162113606194698352232502949997520816583016568965507936532903389696630989970928568230076013350782209329349906610828733624278560343773314157292536539870241676972641172213720009834221072389561973384980548020418574299298658861495746739330214268078991962528971879488254638347641483166711611320770053122741261803623981281347114060509606843647382752219396112247914134511344735606574439615468100143716241509177109330656717913686338921673862280269178605150412688112709910701491169405826728044621266789198317075687513934421494250661193722124197591491963550329444433547976341043386447243440335795414700705104589681823217349225539509130240993164215767470641841676367060405027252765614861803683702505220091273097302697156374466019598941881299953859261643008226616783820397171723327258296198997901077638807005620753362183405467180072304526186096764526442127572209356678313023817013564665743058035673419563063711541223417062219279366669573074762100930193952896400725764146987313432098506510236909813667570955087207665324174784899618276456901724680994769514414074266584054704464396233597796749900908855598880507982021125763651064897115088602101106952634539346897608030412319597040816195217636427157380337407572258908949167974767687768903111878595940439945320226083363447744335860592370576390062024070915561207317787270976258825393687702618866032956528465540040337154504470555775177723150605169130986606170741858053442019389124189869597651858314592262604989124131020863623759165786692805174395572226318470343535048831213807715399440912748266427648524121259604014688696186798270159997484580789354024037217427712319874451555970424050141771981421838360390957234766892637621965557389367101451957646121396285106023510294114284728189120459015346442244673673662565580295668716314822015581902554854610447925594760902583097337191874529340008392096981724626845285579275537122568146172245082677166471664424625934971454567805146532317797336184054878017451388534428974350833407591987574545751810343351189254290197998940388464195751922516396012375127674992313086884973068833827808558538563659256038890726311502745258271921179936154731567888753243888451235515567600642102956773944907431929828569921055987612430866161677393873401795071026003161908986167293820839951785256896515335694897800663388972036472874815394745088692771820979691164767141265241854059455322757339363924283619754312343829366530531244858669983605764601036492508861158685832486853294940364106986984793536520152145065374147226559052890316034813586748095299583700781340757939270195800477810157434781899922267936973904260500604969495439272085709794416555067389144064885355743893786896998150348472680112282519428269339141724971881973007109263647458450384547508569479777914851345641582686589807322003824442211156777080682853446118582274262718841326459262019992915314251086943477291325061492063790965774665743618977765998964996132548225097488638902325689422397845186964506860013796007358560325728605291387866968079115447757670821198391430723574282774311864425777400066311568731472553976282985671220248512615056372723344010827340667426264723810000829488347116480455547091604444174913441192406131584453165936303390767848184396303354118032721624993804666330103967127405396286728990960407172087318625452425122131375890893337218892603404779152699054403093039600492186928689111944382086754768325059838678187891603272522624955598145218150675792994606882491083256895215918245052420085673013168612463296504482889766252182263900156600873900985001448527680931725026460326558796677494507660126301923246507257133600187485108708910195020304572030974719244395545586020482231550940877170180868890301486557758712156335208662579411780530380216684680300752815852688831436868150776693045528123705997616703441679442838017185227466539958835607606138001848521467190638150171573513571669423033772705559520810929013494794893092178070896938503877406405481535194545251293037233061047381911269100713626802656157054480532544339634515345541114655887888728345163632620995303394055489889627220410844892534141541575629976765577709493072861620950653859498766876148337721280129376352924208376846799246910466243521795603669078522493831583940754696090921594975497065067772740108719251510159049407461169581841392587350147217914424442285757024771963258954847164085939474091580009215796568466583701111386717121173898529704972987073538758658398527276632347613099410724010592103244153894011017743988477795397398245242769714336499220902385509441346836742813087137477196336895815257314739537174850229729450319288979294546571542598857798507722558649391322857144978702214553629943932796484485948791027505888342754344506647831694593584766634198432678555055583192321876905800356324158152657975066976139710796724992946388685666157385900908017160510586333824835923048902955640395106634319831734612196876129774668705400889271357050812529578661376899486702635911867554056952632515953367668654663238704957046401477309197939693161533256790279038443820864600469201220448194294487402799624392759604201828792603391172187353336667850465581977848284020636005480281019938077188151005661170588492904559755075876587956557056634758856445041385566265561577936394929560467549653554649891375182091992604442563913898549353490826328274413208621696095827482605574404719692913135473646783106629552072448478406961015465014130525424402058871951471702119008207650977667441398569893878654340495682284512107131708031842741353401152615476711758579004559645119565629439921761223452461823232660872724510274494949002983802354985836786584636998914858537431436907071595849811936928685678666452989919351059610541996753858407692211869859315286143472739727256780852310050468904016455531476386336441612287288746954272330691916706901809369072674191775563694366783805650456682596953668460720177018078884399957249772121903147257167042423509451289768293316529740465471809863751293478671786678715105321611507381334592737092391049399713660569290154387895585769139742624566519377771662533190783055626679028032682069864671233247527139093112580557355040935199983197514363254954516922505384163980863442013851061354947240137458482090804754172992810676693563532321589302598885084881212339262616852685972658548675536007021531953444609174893030307455831910448998321927832406257005227450150003807446797023312222568973697815557309424398837142276658270765371904694061772651376924729415048024025637946847512489226874906772058555863591664318571322596287404088930698546152749658972184950617958302956897048574951578052153153552766942808871972298510254930370928753715037140666375733358832945100173552454838854198858132234330360588298118196281048563084111453743663555774952400567594196022723265556538059057266813868377978513463191301242351205527217214971983036221949555242241116406539596732531198802589416673958044641419906893037468289651979810048796816344251186439278977244033286118105737375769851604595603682941440097765413037169013430579318644396031420439280705931742384646134833591325704582347757680743314776596743298409694234781907530722781518573397069050059988643146376827007059551951708400061284011436872806764756026340027710501125465863134337444038236880450057113556669432150785254158174664114243475254002275798160047926980983752455256979590107708012458389843995636810304671909244125080349003377811345532982417305353501343501140559264751712650516454908197787828897558153807432857361858354867106795421953766925195112893949520230704015564138733116965177008327969354111248768961672418340711656489177128982046479313678315485501369651862075586292565007780225203570674241149270705733750528486229118672068490835181433476748108520262829651285800153836502860867704386280624589388227620439569394558689286449143784488615006757416508354766228792467144224132455655494796406749748753935201836226180491877166769592424724382213338622821727975001930703227842621273507422227221227950993864820588825287494073123313577274637788595304386665975927424277157756834856494630431309980343403276191912167175320978203837853828677564924145161946025399020895572617523353240354147874041280806849767447431356994226790462937865000655158420399316809172865432024040488345266486283718610718347665776091023937024072597794483054532482037131705366668382689709007884057427297046233176677045635569734876873307807293152237762081169196195091083591133474775533930304813903279664827921563454824383325216609686767123002469263180452369022023068904018442761149845929204540666028802724496818456346331784299298936565068027320597743529315084770169630491703574246452118065022557927881407531367197803159109061004658588475836021933123429170926402898051208810857595589796771200310937101191122867596523451122918733597872350707440926169925612520839965583118957050381624970798901697787585516909960595352973084704659438977642839791632486438521565078061916533299728686024697737851147155606792941814069675125405665049232218639905702842457490343112841993458883810254385334696177643729369159720682323734077417578833399291240739069380973206223191539199152400326702349242301234284871799378101413929800348265218888216727575630031810453656760462165513625101896741846733888646971369879922104039327269186493846241038702298498217157669200818218442174923060030915024676735926914633625696195356342381992311658541236497517842106439078594832565149394163229500504986260271904162922895644830825626476318928224018481599443245254734403792989260660736326954250088677047244034046367945992659417792198445033663015466743232088752658615020407513725427824419051365676742197686394137149801531777666527763329176604996910031112703189981940778966747574681467695633507844998708685192165544629716131418122896978486965635941006677165234979701530145549675802348530386690931367078036625753380511059172573157512171320861382758556834487741951645522096140895131567172476028946021421713101354247047209484267195231402020841399389308200079459123676312410869663060248311970091657802725323873254854043823101985275218729223970285031451558712402465623557764642406877593988993538824039838030580741805726747411018808811056970379856260287152583313761258718950053401033958478679841876997613846378260932156938079586544461271147067168198630099729268450848043998346773321562867541212257564231874773153326433835650496300426327789538236697731194903185804248833318101300952768157119558853214331515556161840593965454708993490088854810014561023951625602034844662607716646585261100492994149816629754602158470293510542277557683216966671130606152157156643674224673536476779447716202692461007407475498243812627696188427415673005933646580688868908261254474719851825259169131260240714289481268633801259428347207903816206346184464630717598218165316468123723429433043308571584436978569267512441227115451586256511326270348042223770216658309870092428579158918597400852317880017207080924464464021067838125498903594609815807939547127517154650338289974981535729145984898545035226117508014918756635283643673903094151090316846807557449145169143423133574230835152675120404629634339359840800928581053972269574877147611337408521501697141550345764233802427690508220205793162973050099878668605269884795037499414461883491414183690280713388319906935379951236698151548091538946055349859149018442866315989392139746928877992208367874435901848700128891614089241437940882055078331399938533452968113384716065759967579711076978084681839140676517568021743801833374382510396861830398805042689769184020097483360794153182432304318347677808994325258413305015984101733359541623893139119944094979241314577924505204560785583495685574859390487943292927981217593785979052036613693981360254222509955925613748347556907008544025365074470907581476211791309699907760248867816665304593685036018245512714579264129866976901493238368422435655345575817545259354881324032866163993398924532355413266046775392820703295776254399644383628934042256970042041949245761716459059389908022803889014721976825303243711862209068025824783026043246851901643592448801058306546332259712563654819877973578793755965958749911939366859760232960739657922118773088348000431007811630508546727074142302352385262615224877499430563181158744547050515477290738757611134382566313816102837715750526054382085622857863103947735724418801277944412232759836380299968343271933115481231001058639089619022979520015321239296778943250578050739483495285690212514050302960522218677480849985171340851935058646251462210511187977386574534470065487771733215637053217927717502653031885411783116040651895835991364883442958874028202126164976111941568001996508587138807315123858345733305184692780026637270297475757935875736726378396164096381692122217995743336314822863458375458424714006444714164150265956800621164589938867656369165737042437148874088834945078456774179661999374117175064774624343522282741949905694245258061996703155984952001146032607644868194530552261120248573245743249411399809729446741343746184215372700943174110402257746908919175758006394452918011302606494116123364814124379374001694168931125908413095871276576021377824724436512325964176441484209585774688989773378958679946173015360620597830247253858316606500588254466230958478907673736722743472349449801049551811863620683834986007700436407562446642249098335012059329293690572473465442379787839811225631594596004271834929378646820262924052300863909856895276949710405317451001027164988838778592558740110863434592340360126369270169806931991178380628566957442535942066234828516356998226296729653228289850254426628036084753349418383087026654509255397422357846913889228975186539489551776498616549475887395691787981084632282918291545680606095460169637427812720857023438999650119717638582813758867426907497288437981505564531067302265183193673585886216256947299597586947695715330990848963807161858180508526933610595981715141159969547232092417942767231949754460963771832505865521010493784834173234145516763258958586031846692940234251678370495179298896813059906416126570411965084888664899622727187100335428379383862716668970895693588962899782105966762734871316023420606523228497446468725998488410860016636616094054917584526653894674383732014503543154232217803443707665457631817188652418559121831152752987854891901519093348870122808250084193746019697076926790854134635805156656997368417275102690785597538880457227058123640185345945983909725441794674951923943301200362505378052183693577077924101584451930908876612929920702357090510534178875970006269489323601047147990348978191473422373712752665353821735827529990599902025111935496805014569634759014277703794182437035333636281823814960578565993142839015228978743116843709226517711085523702970064861459167308097005639325893886170579861675196069902320207426300366589132497426319860923226923964099502818286516040000061080191819066141355784352431182371345066178481954307187237183311360185669841552305481502876978073290973379179261502435205304606268082657908566211114350119900962793661753187005611400837045187202599526539057843860796706164140167857109484396865659471523966015803540428381055737014277555241344509211291141910746822607443748273244195506690172692014428868352638330253676387510766712543025428695764355227323416804529198870190872758918508102010690126688598539469589530289313655335665108750135305529148540107980884129767600629158324816700036320866487546168683120911866315890388818349715188145953333497634773749668905570286857596149550947756826051991388641847314963299969839367425688981433485915194106722197973948142539745662208047306559773860029173522127759488856509109963348237005704369141002816445084603457317401569533675863329317884077429878498734760614916607430700936181429242723346880146875484155067888670075387590907815042583625552967741709551770267286125213704233363398540745299894279791512435821818897340588997402207759839225666060622037753055925950012193088692020732204119835669395164734929756623170817064210754273718086909389433432663845138177487824310926044466802215545356461872975892156239111020191160832682568219250333339287119373832450521080434001140507131315878844602087825536031308277861304437671704774405481063673626699513795476799987966828081965046268712540794816413552044491698730332172005276625110169718980580019612197174118181343418930534685083253089016765025262650155669328050711550936296894044867239859631530795354645802281258010258198730452330111450338503946253096614636556854416031583252270647928589914606512203403461492058409175542447804209384150504569235065144862417957837967613965605645970829589007229754780862948250797704242384657268851217903486860750274417486707098307799079386881084883586643830219944545560127566941178449416311118960947781471336394462255628375582135501168273587337972679740433874671591084715967637269364297389221338188516142020822840102575009520180270933289099919490381834396967851353779695385559845029714739228758087619579484187917435090490147119275081168080534478411741182341156907645786848610347318961649686385405258635872142278149063704011247597668289379119489571945807746808726294581508987526755506583069503981596390328812190229650601328294640911711594674778495673169995424596443027774600709299089725094204375626921110383147842171010077503912003626599572290287654567359319120210388035990067399737170619681945097003320784771847943353841374024176972439116070118129081681020787756431088214888545039649277498489446736246854162914671496343953244927281912392070915243502388517272090500242433726473755683470284229348475547575014589447410848877462303940293121608374904535799887500687436302468803847486221500865342459975858381082994387477388391095046105085466413432298508093670696081425789246692922656589089171582173590997969635567674950100460013746708573005421899540593703538650664630461175003270937351953182987441970155482096194999131466575360732437809938080771114606476514268345492573059517743924417737999473785689028792506058560735726139607640404055317703594880875401950421814183190889395137521113375572464172615485512076835959781329098475445136972126534004444264518743189194812883108399753128910463927913379173966200005028988444328763830870505744896661756226880979125842834399156180378953500599675866522321375875504318412098173291578167727627325789881262260239928333543121975859594239106751591168763713877658936319100264382463104126942297904095788530915726030097645427197165689895513206817512559236223491620107534263627794989880219814877501395541416280739316469125985225720028938561255257887122995247454910722261307409539574577424773281070392061939402974337815875836795324957292102932843616934200640753306332513744979104998510261342379625491638958916119196184652293822845821498060757531402592146429553642102905172168511963345546951225180515264488991687611003574212630011690974806195426306491319195010405421542971054567115335687076853300251869813058351573115851131518058530191825304455259647793188962946194587885511007292587569862772971284747690629593145559868697911934819625853190255842143152209003940624565880709969876890821589832411233773719967285444623441457589018532640249036710974774215628960484420025587549446311474701972655159654509828459082959208352573964893427439924553139984492654407584286694033496979633990688658956044845894536587016339712211009697432737407445890318752437856811032284991662042373802526349614473938689439508358356590055808048891956987122275257941036771154726146841401020005414362797741853638789147767778925263104393074208998424830255007708023947507316244007260047437371206543328403668912297680168226652944027948530602099320022172775167179073055492924293926355905799303942534792480918964537090590509663940524189791076427084938140464603527809941275316439080195686424948395514345916904976340160420753193519454743773856278064261528571218727555814066160380355585140926625445218776013227538013060692932992655059694813875568394089768265892471139819729530109910798281741280031685990309916703174187711405312016635188343040913354614292730407332106138952086359386192358751952191470633019402944516009089541831288005116702542631275730778757186655491973866641719110877968843649233042407451571103741902124699158462111498206441945976201980250004183112440252280447301401548510738745529989957693734460798947168793165021855936707361293387889835356514712645019964817318859614297238138360862144624308646375571074281254379804226507012500126706249435175957881915006107328620524024836311201912990938930820402741122940103497597508616375929434918620427588526515194145781662984844771282689363621096516574519221046750986150311889144307405240646044720351349630979558586360299223601375077356162927569208158577218703691124392332489557398591578349395947133364030881934301816355965500783243429152054521300561081357492869156183459919359175677721200477060525046947788962571949003282941424559949026585918629229664752594477926064900638768856382975140777479311450178837477134537707629818092524972221519825184205589620470019136278844765131728776599973430258936371420201614861181235043171316446102551199877640132513456566271770435361890928307545918315388750135371771502974987220650060059334717460005335487186310802452254024306172812688084296930969676771976237664014441760447478291699641526722175749621041060806942966494691473042872488600846833030637362919321105038242309562149599640134562603984948477377130836880205825666929801531825869268671166486834705914937130319876431367962785135084215861883745093164481083786777878013860343159619388818238076279430980601122235231255979526310662058159793794453116416765968851621405934509059007368071436486250445193894612052713944761689722785985539573056883442010527014276331062430522433799430215577583196686007413055189081748650123134020016681075046112107721225699303043465110973938457000968042056589397694041496720744271233859743960033526512047243539755804226890819833571960786309560021166750878184828405881556745874028703365399314912730472282973027234463801195837081058872913245719338875619332021799279931830532634646039112787358323670318696044459457738830420906260340804140664597221929713210672826114750428736468148275599677364342240108918776623933099281633172171035141198562291866438370315783653963653477012601540549243304759807035206474639566210300796791038931060646115511717976705829858231581030761768594319369816811907507354935845867226872670814410765591753405336253899914430509930024160973365284590659383131638489535424260151195580217943574402647131924051605120698126674625579816998085644132123555039098361474570929517787708340188784982602789852137766901076343476268380979698968318792548547294859362048694701200304649429696986872202204086646828696568921048322392911720944508957971594345010571749674978969870616169226342436069990932617531288273884746336450258333457895644540568847454471727264471524104846877371981679460394130886454770690228677662186180296959644702899202274908150006458130004786492158350341179418412006588108580952086301374606357063652584220409693924115422187189803505745985251686841988490758949079154320229050298665888277383781324854272599103437942578472965733001176335438416905451456976546042270250702552880658073053157009662258230204414735608119501205189885689515986813132749232150606104710986754132386704847658983774427515507700281458175241024289764831193927977342437919484768365623242994162352080794791470469573014346446860298415936685003889861991860640206592386452884815556240402886032997451399851393980452178508367476446061929088539404544643150898650504198519657998650820782711788506653303372741082031095641727084642520328377729205045616584779662596117557175092070941369342349615173761325777488131066084478841676505149077430734800311101568340182634969794946335518851438658880236684367337562119697417641596347037001341800915750475255141239604450390379092043356339428926876049449458398742313589024200635297717474950463124902206486466479996880438073218572234407919737427642501925102808834931150142501401235261938046172484896376403016061106652316489134135283053927688282096549627641731959216415991489068968409268061243276868631536224170378122529617777902841440769502764222684207326109980801351563715114785026957469119512945352492882364095903898255066407559638672402196716237218352346528388644863845622609642516127037357104415011634243762327048677062296791327059641047352987736964507328957108037592028564597092701943279539107831405683028946587831262265341418311704579668040453412272822469710001158846447067378790901262498989908592861959504157244223937718290524806711452161627966412459620077615319011410503216423389705463464708118424032685102262852883824469542887549574004693240825439290230533522359807320640467204701157258150482700790062585382583691558072377111816534743660347612865871730068813320624104072717478945033728829123455785119577745717884420423934967852753021114297328353788370703371920361142385832949148558471737448015289362570584591668070575136816357668004553873219455834192823178984778021668591722862122328655421751286195389584770390702782809800181578933028497172512899568457239091599255586476947723437785925040892840295448187837768523197963377337412943804516344136277167460334667517824177289210585270548150168471126566812228858265530869521812628218684264632136065776187419332272673262657511267597324352048616773031174483598103105488516316304969853293956503466883428447493535133116976903088937580888456763856331671451097220239060401075332638741869796029493690625772635682631387545335989691795639706549823450217515675213040649667816211505403269103236720700589375234098562664772903747506960155271523959053571342913679417622673405803047518106724712019499201943880548903681642322936111332147971637358227405795446376588133373691414823308870147871350693496387640471309865283235565161215596134384077645459608433007422317061844560281091103488249141106199010462999366017849758788826990190497976519582033859744972620436992197395635768469263999923197228676481353023564154283570067204411920969713029363231909316279470928269628182277131394950272764283853484138510731733692259550266508495495703329345869348614150093092742009814785783032779546563796842141028144216958907891189751564664943685867765173708406999539212866436465725063433070371389699220291019309586689587405050377479019780532013769777373043417099036802993102637392513330461221627602682439334727858527623127248087748433864956144797454030579152612440321003582453966858022875320630264723458098176908360332340464624108913995717743948243573546155750823314509122196253351294291600956276887304306093481078348273339922688183385723219883663351590945588775546787188882751751172816603848157678499902051103288282779896721815640384241051080751716346119268896637058468255848793616216903802237489503850988264710346063334732773448680111436987393911384965473626007626732111823919343593485431925331613397292480382117757973088314347219246348196436604516190386974788766327554916954778102705997430198881234438035446990938653139282989848708086841379228765895182763528543303362095492728137339241038208861143864029636140143640141169397891452206451178873325822143578564153517262504513918327190856861165301969004900787110612054232341579403173285503980572375673667509341030066093315550782824122600171150096264860111351692219667652232789718336518231078161931061052755310243386611535122628106194249967951068717249631039250225470090895157944811824759726859770535687347108087544413747220897410549719988940248453092004272628191879087530113656331347321290088220360228809163477073502750946583628368554736337148160343442098990779128749041490220606034246766194960135278966505820973579768858435804392137595058398687844494106717156736022695766236724488113972444474363897203764855128508634282165458163137346490227347797340350413616409544253187689936287335359767719456179401259491528863530274534974077461285866787988737941317149533581569402076243433174445836577452706118203107008474319492899999406833352369005350479582810787292163827161433697290945664986945274148113439750259355020657125902194395033242200350473248883133263975193087855984800262782671489928472509529376105555497271152417972782282423564777061079337559740607920734510949173578413065420250999283421355106898928343166603103893545696444881133427357221689006188831607756948027418656295144583716124157423216576676133302359134144850691188409525587368132608041470313551059161410064700487247838812228716310538469922617613728774614354031915782625108940434117833016460502370946960258071428085781951100360013177212882258483611361994667474742107280224142523202781415503042263155904768347703168756126248105070558736235301003290030773039371312085115947262753991725387179556102597836352421744359135223888940987264648479111311400272592816747534008122257567362579635227990758476468286944089624811273547708025177216908182736920938188993939692108089788945250105580515454302118560694408849853353115946526680713236938673312639725839563068268123441227086630874544243898771783525542708300489226941172519086135565864136582942058560056083312087044640144885478706652613498676164393857862651686834126787365788513540044843079538551791013443489170115950793959348825678576410341152788305794112048341705428816841457418144977725508697180567754135026824152357947745115688746637779687172582425703266759842254364354682804595202999733940331364125622492091076228202713930383652685598973061889339798466112437278282354946576478862637905740439520994508704150934002053491040848772073607641376276045114373240994604446854184760003715603144915823885364248762338523904114362151556291991492411566484594718238856387669406671696891608092177880619406864491111792004376838956836385556886338862385576572373000378010201678297645808594268383144374650707122072367456013034988864845159448518251169176879758204594938595018558358520366928732324745221672514759037870155903398069899062292581264383668254033408844933608734022283484044083492614322845642677888670453370228354735728316966879299290881843319469258725749868525128025263141948068100145715418718727042245953504364686893122217397036002416079783560651727758148592196718727081121641676032357328645009367427697787152130154198790080305093103832933856006339575542818888157105603476921965416929137418366372110610710308226821552222394919126190618371177706551453707833999483999565269769229795051692988053953227025932565392198193841256994585626539719654944383872107373278004491509467014086311400732384376485354841512714996980998615313326339107552942602480434096407029593515143443670512875539894738483120711864376240715486927155929686021520234520728378918325140604484288306714178707892101658073527421299070847520079825756408279265967935470320731185724837345670232191983058628432791595087475240533103757133506718939640932499616261110893538564819604253883853796470530773372988321987542381940161941405652306706468345346921078392256236474103469132116425924703398381823812943764295630731968630102107213805262246475890606474942741514090539314097794375428800642970758265577005800065461742926574191992171070737912104207075350156800102960312434721323278770451981112321301158158094303553694239274483664326717421571724407725120430688468106972067480664795480104975434640662579723363440522612991295208535821211836140042389716594387961459916456413178017849268122010437186958750241192189662070084334775245787819475187256107160254612747908118418091664364863614356628683312711864464016542140198695873028065643548753540418665665363956966642989075048298227569617008422780459783098677611018991670664808171477162235604449102897617940929552579480785978854855479162498411692875639700152042759773202873306839496686926850083971353035403122974526773049956078041980667006336439880057169526327557563297275943475452950013117781278663085943357051620009527846788574489521308193347757800175446106100083024333652161829828124807189304453505279196617334944112295222764337135211033054636626839923202497184007770546124920216184964130290123602863908253780328573155320511882612702450147560859036838682457736572078317113383954500541788859926081919490634409171933518164675338237108992165581029293528434813418217820388666445732745933818403352491629821591569168011664177712004459376729571166213644378338704509751958528938584246213473539377928896055250273593011988603255300259352660723198616290964206015385110898080314537477363779170227054005188316892155951601038051459578121134354324547183262235375861654327140860068920730855805887126562940942692438110975783503132119415591439845874281647449596437846307292496754739368849640926354757165764803716803520489729706724544644667015851137863115450621048563304389714658846386111107120431008973150862633309913064067511448516298676164424498190692051223326247218101843784222945698590517976869044701558309579592111510722218607369776393266768769380179675491712692705970871508557360143548890535131940920950258900780448741101957767823807015748769185827827889516208512494715070578625005913973191373619969674342964434767416021509029533706712564446127714335971812095005057748139891846362753067945564878753308139703829266762175411227526264443482945093550733629588181837675971825006387952273733090706261414594577648101721345984785419334954164262135482878052061380378803780982446898788104062086118145236418181521296167073106730288866429731137864684808853124950609948261808102635047426085973476869152458876013257533495316102535922745700759112025256688542461347519200081099371344153578698186471307110406670963470462462976873276755450421829483034573618550746755289217511712391255609979044946752505644039514852476197553439588291329889727459736301634751890609448987869683278349706920695475618338816064078130701913471086634066700796205576574600738127243494419463212922535667874768138771120360195581103878620521887671459971342375256718095814904323811329274666235216577492817843062318147874352445329003051078279158413476502065481710466374758217653892342435655060978087312802682064765126920482012833667001604520081845749581564686185699030150751644282336086743270198698571442643659968294795609679323539654258552386433232049794282855076657373939316541561895769884312658104476561306695790707146536305254688006917759149741343273018912498952899427781840538550591832473252619723867985757912519223372293721519900007371132412952799594662608629875920909025525616361079773883445993392413275241720459436579919001091494701509438505578854604212879249604204376113047421459454339042243510356078024039400291748125448619383699800915533576045252455194477997386098541212080478754259269691857908367325780874534660712795978386825587043448287261983314333890972641207130477828663894969430697446694865676700855727344041821314357312660691134102756489979449697043282560432468188358301216992000454148383003055310299010010317638117216590558996641390053224183784916364478055394186914215968175517025030386500442059012275314640352286483089088899379028378512896022406048040950135685423576174121597088756222934774126079497414855736445004399761864700286400355443922183584497680231255373784415926902143029083192493585635203177272008761431049914183380089367808650140947617393928034601081421443790662044111984592577693254149876491175462412294925667398352450297781332067480620209168711738771597822578657199701773946321422227672500974602166997785172911146276132454669893006540469607211825544139737363268304517751772699948084718521992681561834202352954491647856575358830221551064286902720982126916719174054792610540982142922001109957089521375032486603172778377776615022734417330581581938122463419383315326745396688862963934220424969682339499747414644069184482030275955158034362070517263318105765805079763326190051310503888712659708559678720502088516396942083801477450983483139684911917022973058779472741524642600712426384638621242107465294767308234906274470217492390218163808605576827606140596792147153455620759341460314672914273833816215828327823276764000484908807841565139920165159653410763430792221211367268765272797299099896379710730852698025382082646967526710926133298491249008226811239825962574908226199278702467677265830149436563419925452755904210069728332567631794354016481905833110927289423692470028843273358808737592246748416410598776498807843098904118030019760806561640206985994125192528378543136546692910368272473743206664120948521818586640127710836229725491648029682236088915779105065379661629720734891343823742237450461975070385487384495197304636539596180458495432838217128416019666397279978108752514098396951870040351011518866879644223570319026542821368200529135057636442554482019198843603581996133685584548054888307259496480881691089869744046842356375567177860646372395082037218050265347103777585887098899384829304612189585098332417540088251724229316666721867891491227639518917595969387919707318284540183454404527230010831063448381152054693040874382475909611935922877174588421651360352997691046008788768771234368942773720466006120348496384223971063589650086403303170350295194955075979071868921446581946341320875575755134901127643462112273437298152834492660056342141786120787766958221222681705412582434023994540072222304800956500660986306545505167643704457556244524382435465510828426341529253837923312984409483659361031555145550443125531739573136808969167839844254163589949763563009679889587939244147420284201392751583768292172386059372470934191563514906623127379934382775875223362595494108918918840847582831390157987931637892961174965480425676589617696257075105399601276245262420775065785928468703643480966469951887606251051495010068535763618594651018468537166464986673144097815240524928485894165630373349447076381161582940256188802031335291346049118417844066229804493697236425798201167876751100908484076567420488221132429268272813740043481449657862240274318424757961301824445270259818854064726164670739693752281802716015998562123572446521654843969047627632005899589215783995584719421872887237388825744314683277459753662648854526410338697694907888741571830799594156684870774188546687420699829335072129010610634262724508199583911169705755833039731412164346825844959196077971417061439780041943452131690738947671576231101531267763519683724705474029201649528094799809359660717099095366582809170925330137284145194520835031098589402751073328229242438986756500553951027280525085872840281064454184875129215329331659848558760868758428633321632681064357176727663467611039438553907149883228027329902177809859938262195327645651075136410853362042262802779152847928113890390211414543578203248293506918301094942210662884357953946197503506278942693640561983506335312691489052715972297186639023192694790862135233248256960442763122180145671893556542128711181632510408537890138279480506824239974644495167030930188431245956211124993210969027162034407135678731079113359212846630769654735446170288616008454281253448139956441917060859087222159460263339987570160433199001112141183146036401164111689875407116190558735237345545211179393939000857337162651899575146577532935134200333904914583800796377806961198646153911595314645300927702777777616486185470359930928180461858915628149988973056434330158700569927121472564665318566067243329461574433993940865646890128424796967293380806249035349551059971143000346088595067167556595594610960986692277111667461015105681818217216438473218986285485198969286755387613101745125118413947849760428089479745014211919705127841137733848013021822167746306452646017932633446461176447104122353072860717269614567329621209480008731587152200152235872697392395434931006295597650951132865438568304105793456536004763186514127004801242362012440235880332992254099090706997640595239163516194564880067314285086011739315691534941254004095580608352097030899439645161256927679009415141621944562788393885803322892459995415147730314078268533524390110207273700868274219439794073983750074727728111935676638213065903920135903192397421102061701680561598468739616492879418466693837769905596397109916967343575934233219002940427415548234944217435193056982720649659228343193178872546626567774611553300842975200981457927901905557114845037190126673566080929833693733484000924079509302200127006053529349282620225969306718443736251706885678887211641089207040749499476562224180617408827556247307579445085642210918363637180151393056554862052087278713431270914202237490694377647858338594387550609375107918254143708095846831212558242995980087415994634389598059770396860516368735003969933582089792238534048919001951791445699426468958132843567059434422444357048193616324613069409389945642238513573178161027365872564503745577253188596659713224211868970799403562230282178063558731588288114507360498071512453888655997693069711395108661719307301315784446211807509153659047484507904858229310646143522150711652336964646308284077178376256849822259221504529243099782949509867627318586648289131851623042159047922279929680226623410776739017302966598155526108550463067300791764110064684144700171112898217498466366361600244963409984364376839062205210262942922783161261016417039285642865245744176426814232519334108939052874564200750239281669258038672727227766873159014740933360580654088617079848205737562364490007271194172918672022564446964295872654449761161841484046179736496807413245159174491765475593789363936365945814510600704627995415968860203704564595858918828254532874731031517724898683576291516654725336068582302458722244272552852510705449490894815127101649188370497491941882713338730149728517383941142269911313372062913779636352236136331577819781729163636149100637173722531198318134488911283750989511179431258859924399851819487307897497688225056773531323164612095731888582574783663741833437597351333449922676554736042092640810460166696482002920048884886261018872922547516232694670759647783532657884327978544058711373594712099638462910862220711496349115652816042803823771862312066274574856643465403175630326877610444628076475113496758724443078812427044180083980185646390636514093845280663771373108346941540390005768287170232526419116352257695161607710582405172265213344832602639742132330314484017836637912336905825980317311145761387484767915195008884790121212082863471873654238448346667673892172450111359473563049573236473298126025976634357783534420881601668888267611812882857113752192731076889589136248989881219763052043179300761970316428269602238729984390951171612889054633466623193711578630868778800501596390876947184078971461305647996490673822180298444829972024378316212629374150629389340181905921159669119545706945284288846307809245366610225929807222142289008579122275918516221978162227916668679525490245687966422686189689178552420158021721224164126962304592038504203602592565099466016668785061497440478152611049009520735334845415796079266723847149689980900533178066858044082496261523737277330015161851218466541358122215865563571731039813128084386349292329994056587158732786481778703912037408655792230439544476313867146611160680396551719475703506744118465137881723540632098489344360629670880182518026225152379812746729756539937715858201977715394021214919936758998022226753112538442614877643642419689913484846701533580534781725291966265328659932147214726251918357930351975312064854354303772865266713692793776378885558620282011882061653496716983019596120973666893453710265067064800943409056077377451819768275198936324791681198453198034217990694457459692679914969677994994847429885739527447242981792494192701149654562862487597313245837224994450437719178095006382364799012393648200675766987073468419017326945422617189822653969901853395827304383544986279971252763418287684695237205744638450767075652104842591705393966637528774282311181755421595523080039965763077476834647252120767418890395657511057505017741784035105972574735149940929038822771528749624634724201552332409187251376328529444258844728032889612998899234770533115337606783007117685381993789032604987426242798950142803005007165753579248033661992452783793504433259698330310442765967144643482308623394977943413624991965560170753260433231303032901510625817614899513579922360702619941195894541345536873219436331308937955994427578155291772623070481031531138644606104398239106358720527284769050577156973085826048794562329476213375937637915279632617795749677614078592715606006074474981221247677347525746842603150316048178648851333327211730655315445377501683666469892662681179748053266285956594389966749180259953257646694417121364414863503293418334861337421609176653521107834131029376191831660749392388718599882190399597566839926451903551756320818788110499448578051618596994608364001362166653302461824771220680629860094608137083803530321533371330745400101255936955592153186860671618312417785915874463015737855500622938476280387304478236699433588590343132102681345812063544765192890930759679125831600315752736904803242912794322672468214220319760206362547280202492083046997206680067746484991600778612800113722616774839557320344590684946080724847932239847433925520484714548450586945957476104039844423627527554133522020653348679390308513902555756244984019464124431385394639377074510898482611803386931634601672618040223611882536736447724198918495275588993950570114579181774489096612849759252927578315334782951356725046270322494118679146944945516312371240274943641971700051613586756365183500737615263669866534181563395944629774275074604723864246602817121157295182010056349628772973667005585586756453545053008969082528432330554348684833878909972477143879131001763480883149649600568581926883852888314458828430547494849801135126030737551256454761207496331777078087608240765072959745292392730615061426490725732621029343209596386572812453546009486241368752070062601871826461365257149235804458356506452066418995226315765087269250026440784836085953109178947354388707866237179108442728452787283175399135626681188764244472148059837884771009394704901417125849688704480994552501734383056253676983734707601718874425463820613797201070305235976957855687274710851007858786131065345550652602471020929489264019105196078387299344509778589701807212093435667203397844085902066908998751396379776472342928406572946339616015630335768173843102687516566715596305551474873319111719923630867366687921224990139694885304440222366763977636663422256889378299673485153830868532444104437961139737782063777223196118301005639027968059322275336332318254169727543202559657907503592056296899213004038178883719570638509484209092101780019449238597415850625587020202178134154891350007906464782148321059297650960933984667078015356029570235272950472657650277460111642162438959751180499319080816625267345598301161116215072073233884209521635820615403472655439365039330915442997856599504214442520924978773697177876193700007608384501955920538003999877151691441745118493475666812323665596939152780132207541961949271305193774534192344274577312993740739362769372369005680876001596531946458393024841838423465062874618341683963504959559151163353323971580043132681622929230269323620161682474095680619604727742050164002281666535443449650098129267834679329095609976682909765390992782889488770552543699222515843829810651871446514372796123209279997425345034574060715075554444007452352625227397130941256898412758157224794572122175316880916849728025777691679649241409201738844404292841613712956892374055451366315866684638481753158298856493542534238619865785962504984899148754001642262805477068233069164161264732621985982335146729341940393174456651335966642030674854785705332081667301546231793546987566225445495775329651710020688908529120638553710488083122283067800169167545937621583506851127342308577965589405313861342260694054629719108269406872564651681845158682236300317712847292508050036766726476986920861676830515309386460755147361062841337408207283110130576265254503443147550607664371688397320444168453857091841569630198229765467203256137283620741886297958654531291933480221429365363530677817208538886807738834919129925255609331189192728225757755640507286937754741517901863499542604508728776711060472184592554251120787675792473706502686237261976107610905142152843390923223382194862815660386702093333189362036190891756784988999891748968121907874314462718981732988493808292955280984844963869284686934850989460527490851811371575995655645197185403822113593417888191355076046925347586583123113531040058045568584550099262226391103785149043735330325429485115518859957463047528149315696612077877896119411782312756644801230956575604258627199132941376313309646765583614230077627558529617539805249661067478764950761952219291320318088164650668765196122645431238094325860318309044516424346901176965849517697556770103280520975202051067869744357284006446775449459558714294312493319197080679748491966729887198235429752020926483170948800312783756485930400825803857299128951881096310156628626263370001243960978900498532242429712584949848378681498288566037138309692867258923787012548370307873117012694503423028460294822048806609786086524835305201748153976872180457046289372851930527659220680648190274408571668907957039610168591957129972918886605821372663354975160343156839953891473817693455913688711097638210291987751521697539842220229119551941091867336425182937327746340924020434613549969989965769057735067788103131496780710694805586458124266505856685246689124764437358922269417137189260852083851693531257095417343152797507864977220619311895583497235930905283854307301073553509072893459457741994138906570922164531827627292121895181417317160664799614302994277321646537977292569315446016959543882092605592143571876203221060486045635965708988126770739962534305257714638188370191214133419048321863330675472588812172180473089725991799307214928465868107946759953408300466702185351288111504006007808562008802260604803497468403968577787010369188978365515185685006144909966995207822108182968718810157512302519236270645297165979460014542313201866061292198534418729776608447176684989022298894432835652929477102921459393109632690701679176820169289265905436128621679245111325902900579842021679045703502938546858976978902721663533203230636019054195514269956834812515757057955172669711558845521969945621950320307330741825162695107790426567277092897941571806339508723596564187743317065608205772981845714508220513767257488029276503580042173171476358980967080614994855731723461790751894101305712338485215136037693778156960940885222072104137314647788507198813891736317892867664779697915702156120751352864633793769193261613365120396554840463365650015285497242558049518314374812951198906192369825850507817629955603437431124692758215210156798725725877757171552523615874691859626866582800401369391633911977482337424305391942504272130599936874070869261473120472551137488192162080865607574098534583469264158143261249673338879968719911421179752847938713538469223800294716514049216226666241045077386163973547770851289300739633201993052459932666956662680299110046233507432075690716531348951163267248539520035538433165242621874461393316780334433851240559652647757523839399898762631903207383574683723329157281162870300225245537227802793986331829192431232925162156040244770611221547634186624101982198084334596016992014937595344094095249220438673998814218546911104008671836419151992655339417834274919906872270897695564296645280871070601274073912371595137303259616829016164069349312571350389266212249457437738529170847414496974427605789536848315780354247394523652909878465171746943488223552206645777934647390436883563412638255243351328706619989785411073535941295060022510058667526083901610185041195374043879181405892291632862670708560394658757751217500771249303629930999818917067403397733598293167109701691445822219977554680836189489417223090030323906196834399417115643837135275185390571623634621989690721263983147125472505630248186771079755084445795225887683388207975758465125848191177579204747131834918344464668243489176747332592104040820694966420033645188012972063958448154738886718773753351962244527472677895125119391452310549845305943300195424248524576227775543898230494257789800328993422916717210939774816729218125802756634795562865684870047279592568120390232865927163698668079091364984978004938461008633204176397607832728720472821119965205419376115650788571987760766145007027961153132153891718679766483643440434012973215529677362467496423658252834714061094224165289722854296599535484188823825856322636862824184759278404129072981755679988890727308714381461505000658975332141559115378685367503130140741131800483235797410893572598218166526292520753966220571214507927560889030412351753416580476711714898037469094703672053905682421521322397495898157197348278176991143740280227774938886867519754393524062148200092983294209998796065489527859996798850287939726403269709349124982379102253853004507096566711750787868821447745434664099161943894733129908739040728657604082483960835952125594557045144707099098331955051763498609727151864343218338078908931630508284780455072774484197494857221403240907674195867950756482796299051545648654043832270862457304314104482424713689951154243518705633051424514711429868641633788525473035334984636484090885837402198583696936593728141659963270346124495942409955199618028525688733936987931979955335520785571060761048413907215625503218811222882889441857162908730938122508029547980276230744664429261863885934033462960043613800563011707004499311236400419753199740516462953438358701988258253104407974487295240733237085708501498798384726406966196165835178551949020652237806548442997678465668247719546792981928503945043272660291766251395604492932972941713028908551765806343299132141079671082224858066920766594334536307542628444334952594628816648438718880333653377373856009324111506715054084659515756835468594805759494087194136683620473646576352926818958833502883974254599039276907685742149006467910447182936754760617721200810559756368635179941682962772189545195795208421661172628321566038366665339582597098708001030675599458462856284224823210711585839085207012021221056227615343305209446594079995753690297801532489387722024570185924558232433667361972230063903546929222747935303063849703115820356113951325428164325718761329370722692195836294618293143911059527215845682873781145263548960059067212335817578857633338570092865975710324258730925871090392444811196132771383067196050755404560194518559240883615620085632349892960353943824660167911982339217418720903123111610584682808203597177449314988038664168264224482565090538382712168341461522510468226374434933137509058997871140870562639312923999014939442024746296988852218233511550569353665135355981555437073557551663765318117409277998816822133802965378150456875011122101777689171254913187551170535579519576423885833247219588548880894884221072085364440356657808834524298612366571099229167573347177105546467489985017087308085235193071664801674874237996633451312915234639868975077629112106078770424921022353275461685474743472673361752377645072018350475089891049798295199460796652325605525803188256451471401083517413613707836403962355397151249331627770032298283520444266287237274512245746963226388753079278003620866414564184187084290602188678360983853414524112965548699799666431497978545318946503348827375090105880180487815520295714326901629641935118355021716370377180523858686011688216579954368176769727215642296160819714163847799287176545770443141124807863313214151446202148137240099626764683866169243724736325231802625794827833525597172656410825017315249107020388187640671911942595635221153243225150751654994735653957300795859106141034477092047442868197117824639132373898833720420753395987838266001658263829580965361771223769962391561964186493405164842581506198093887513111231428403121526001790003518649977681678234606556074154590483315891955095877077090847430222840443272768317422371502635203621631991380893079037188737134546757172737920406711707292525752999695590029375592060193165305003112158494470078029791768878727241885329329283516042612890985704990795225102364154153521246457188559974178361713068182578651384695349818614202520935972696101191551768440309177519118446809565631381572123134707608681217878050155016846239487529749816113367002449255199891119967485623948781468805751691745148190970277089176455046830788434685116149762171594939570743421249617484091833995671322479764106592206553232311306743095020192935289695985183170512453886014644362261649938611696395463036345354671592669413414456772557701121334486244990527022177351334778208812449035224205297294966518515657463435921030295190508856127844628220209355687716178854936669106182362463683156448768004871137325589548026210784819481852042768754540120821879432560088898822209707575100467015563498767186740902245382852777165668039541726524624118695672490294927990291588093621700179839969504091699650106553371036859744375265729741376375809650566396191786616003872726168763270403576834579489191664104510276127739874844284233128214507998131205541305692567772955451208123686210893579865806378499651946749845804141881959345202086084670523047032400278190819244678334976564323337682532437788110821428325453425939958639157263783655882710744091985558096341143726587734973481791899720287754067604641570776763181697716651026454728261159649802480852040919786088453303891754173595842972549901985537747549790100151446958721723614719766262271646590327269113384470296918184937679886300095295377365741561201853295742198666877316988823307026170367163331108919134385176057169730823708722247955889526715209565525653809994996214042764195180966334106370601567182489933384776574033200166049432213541075225590756720053104348501192614563136356110446800996181840464222083652504982196410184199832968207282777963493075725061022165898729833742128852650209626854880708143812229377751589538380335538932741505886667234340293398178128484535802955341257196451902169931824127550327601171974724309262196949977306375962129994715143831069628171726589158167394233687357878877834294838275505514470987564829283762959748835677872855122152181526304405194204778783508362670419811107744693415958371793902847383394529897916799171160080259194093098569713439593984442410182287395784841140322465749939389480366274689323375117346630510858151036707348147721644925333864157123777996488392096268047178913659950027018623477657733346612576774615387918748632616240679590491380305298602805478194484127177381098956332152493821614946810044807351367287958896748690313270886576184181072738170694856081463016551534470526936915550862498375354429737608240979343764217009905971246911595236469025389065097815443928413739848244114280434502509074597272430093004293761423249431650314436463531007516398105590105352228639270552851692314206834348580376071191291565105614046670906010385224432174559057230650442462392697742196296254982367019148533426105478906556772074366648244526115271978962303214516741541350708557400406193534974902281677847766436990767655485185983867441563443103691876079080441558517189005940557988743930972986473773383843205979028108543833302680117875757254979899946185334175478584190372418108193225485400895491772127173762144230821919318972948647264548254270000021141129691970633295735527481811794287208796824761470163947072241601425349884497234383777956525416897410108609543153601649136593909460948771079284280786222902226550723163991920520588067770465251453339740879227651039205606720380479978225408143082774322702477056228794017512226225705679616155437017451353398726636979651310244410608203256463715008484794271575443855481202311573265145135016036688912070895537169992971370317869952802529008568912349423480000769611002388426762994138883472576860260054209713001081315888643698228822761893517800942128060774877331585989773462464807112721880334233337017698328156770970885456899687692432345120304103858067500897619002025037703813947757414936504625528075938265339406659570779809582798047900594139358967267778735078867561420870077833172535222689707406013211498606986825453920589320905723059355878218495876424267442586797767074714461622445163783886425822949557657316309024279125785537367466030511231825882344817623100406307298725750329914033711291443280192160239671459603161121531686337144712802699406699063463549915826165900287734275885870321325043568208697773151409060918628785804659766873324395245289407387098506722404787457420898433348505670133207467477679536546300715166200637697092505677000731419126699376551674352743966798758611961711029072761850141830908397187080865701058105760885437392584833843916025440837546724784495193430691910491882957964365488293656996544864395141639141959318032853267907653899906386090961072597287168482360662137562490308281737812666642151708975204501895823144910583011844824355104286365867832978937001167091372255440540941746997290261316720678497131450411297491461676204631437943705349830418604977550243014400885286946757292287291098075677719136234924114716472763306806217863409853019202356773283067640026496341465308489853059635456063114914984425298136137366831231866755588460536650043993514058930565834631538891730678359412825569273884973097487744762269193951941937921561193019678517144204183129954882794959094283583794888401766746604666666995651944358597495823580708808812006158727508048617602285373634457114173976953015971288001880117681622249993249998294977730655401595140238707778678210561425328837515387319189171250813080703325474959925310296717106934651027810405908204972272640046783226910210299936352037328723201396898789365073460867095926882317713826339027394622170176302394265153489155630135715295200672348519205745830977360395048755411191788902227081907201805545415853051735374553138941631248746176001668729868250223039410164168678588766345550538565156340113910553311596059300201944583258585722459681654113038275900235907359867130940653245638985947714353608152127053148467975820980818970463343335472034452994135348091325421967193768146842629099737616845372698486073067925406269717981762414093316519108150111854959344050200640205837371302904879291162920548121415039554417557052387075691762967541202911184886853140585601536021698919228674218701359300911981098810281475678001489320620696924892293771693462158554900454400289008541553634253495591650319824479789192734927218144254929674463884839447728296289929968346256348698090315051295033791657724055253841408843288436588084911805213235314305855480485522605438725143417100163993762694907495266025229295669237637618977573421052392613376830774556496841280126592993379794051372157783696150047178721151091889421077179176127796366986313605201346427896456924245676929731966287453004494593856905593853954227500329033571650116666875005098649973734334568022955804751060479612717369948946428057083405608120577769611639322559088888104028636919455191816675536911703397314154082222807855842404132953900561854761414801976713230851034454071822610016765965123769003068381492848582132315233316133240827935001209611505316706660392475952972246810125386103226873644311784759322850805514721520981685875383246409006875937835379420479527443836224384172050484414711683813152656159018148242240871687031933711255596871400662274946189296944390188174573196627179063349620946155490663720793896235943665711239250099683057331904071285029271567999090554963928400757477342650877800362857143552474133236357088657117801213800594378430912271383638147041792331679558291334607839224300129464223085335898120836725147515962000350012067859780703253513180301596410692963099208806319410695530754294357046692844945562141470101869178898566048371943171610654460240635852901687414491677475364233262346058544984722006406998371131140223839043401284488184606895321858119457338605978338838669559355132384420112252200467784939146416965034419050337359861493452570427156429303107481048540173081268396656628194603775839318887281622043037930586946954331404085720033469941133207151836822967562260786418663536113360275213542858328449960572554106951692969850879027336794261819339574643220419354990282597053942424430056068370589542031721644170140364210222489753185698472644535421130628741137879200877843299924336909423013064994377405143213918049136298219843761584892885698961377751031261880652325559791428208776445859195224857950792030882697472926047127704382809711301525098895310980676629498914629594792345903075037781091405854235674110997550401244329722862227331875951365307285112346107859914105381079862247427182728908934101041689496831035798310586322754019603417231423740664488269769573712758164109682606243009482341720711178055849635618646018734688746243503965469156396657287805426657074414239886181976779405007179413010049669033628753265656031021228786036632717919982013084974099201283926191485574953526224726965866011456855139356582452449194120887081689127604432808950256064636063131682207564746417912526837059474585769673377954764292192966323339228414977875726859202950053737159937725282862282839430223970066107972149456297471603880537011014626428253436339032336676162577516008290592374711243000488204410502476375521137486724026509198592929008637426140654883482322833498525202787218965311728475343940250953340549834472860910209535434604818149109152751430645086768156464420243891770378502048248976796676494398726747853454637446592224910219256942264994148068936184607983590453030655933636666675775632427767542783647627324693654640980121804537576496460294436062339440872764213790266640948911008320680409513044494913143747064210801478313636672759744433370187648004070557495235623097912855192076719464270593000777932315686018007223289260256988584375209157320456915841581566268155881419401462653861487804371810350271213169288503149242156238201816281366014118067840796786944631819495246514281720705164059672331198402746231598282009054144284237395769538421353887316016766919750897025951877434469354352414250602136524643087848613470127355622984690152434143742259740865997987025290289647217283284335424748789993319337934922766907225854277665455133664662812007749634125963549573947767872665613747308446389077226378876067516065485091069897852950710659868291119485687311988516716519735241616737432540783938909085364457662658619452153805193845067587929087821945406669794214113297710639046956247738310306174893149425726251221271111686262291042224587173204842619662462447055677220032707868662901154650685330406322680314888000121851950851668905730671166355907723676027013228591695481955514412424778814996380663641107639717166486416989387699303216211498101460587051120815015449744011496507772919583779458551554593618523937991516407107266980822780709622885408097380983982988475611886741369330482842161997486078000676223730420424256870981026036581816687206535968537465610870369159034389095519171175497639680295984448838020710040241736711427711934570995665021782840389504209315105476670273969470526797049461051808354249228522274283408466575432612235940053255073595022916632742284066473442280479339204537185145419293751098277841480782654250903254811487830993141568941419043193140732563862180069027759791679717760397553367083977727229704568146797976147097803319949841682651856368929014456272256453053700852693623352655475174606513774885739234218094986559906576794706574579556665130884360919402749175758944725118252245113882547408635026912498732632854330723814327553448187575376437447256470654430115845906322828379911070432180871169996457504582909843404820531755630729063968194746882694045286196038707267273753601054248860704307442582200572145835354129799155730534246744841710216017472834783162988910256737506772006386743394017978821623530437594922736960450080293885211994263491294611563008055144802020959766497737907902579094492223864253015004687317568053821479749812776130840227635177212492578536151876818080573016484844708574021864092001020980581661018509350507320786783034305247318784580999236677536577881056414667171689601799889299547474634213036430741370401842329185635420093725287889182071840488639643687279929317746918062208559405092689496490798482459922155234455790196630862945842214667471869921631138654650287511292666156306308570371460283555199701731534114879564414854697800240699260765480935155501492435819534635692171511134138044802268109409822815776794953723293896261416620041590096264885882243402054392341960885814177675807144632035019530091882634464855658772725876570767542360473656253839633885129082946605539550263093686102207691700367012730749311348220720979122520604200931270854983935192137170816335699638067778585211818451764998925198054491508897945752252391434740711115838640883340796460934729429891295545864639831792664845762919757151274218182624927970696503315032417770530498384474613526481021147650604483946672368949604300864480813217618560799666988305056388586468687914504928554189462656265112332995253152279268103517739729655745455326032889989487313248025831278514712644808716854578056598479514244843520780894622845461611061150364787699022467187245912623446163968403866303770900644567059861821949114292410119645065279279365297650020984079384822525193528206477481592317925656187494589660918832115127638685660676918095412195857726801272822687343897834504904248754987150943231387313206240553015661860906437004529510124225338276771797314709345518931857520392772860145228952316204131159979668530714238021914116321898928406923074860145398588341619077649860319101862249191975873955341466826875519759422176057026439476900534200653602711272682235654003779776347822296526041605316990052095826588829491135251709446661219009357742684469726529543005771891014343957667195548582294285600853062028846220437604646397209600316626166832896353354578654422037641492545540636832750457461807409998619271817117754250052068800404803883078894927441739010912330459744393057799513167121511556682587230325367466630012579015623400350187516036604198694039408014121460864479811334766404045516798959143435404063536129776037548679756324231415447031098021279965610617660725443491627690028910507895388487900965320013568043117790953457570551641881071657614469717466873426883123297058686407044856774344051579377393829675105391547421043996425714351310896255540066256805311061504014868367292386153687003960539995786844231507585287202548506757857050148755809362019287127621971212846746391013154088332364366195160820824738123270628377467941683725697942198738386693115541129913572250150394623866538790282022630425988734131026119219505176611110955916801808508317720826804268101940172938457907426888913754321678981787069030929820701389731544074567218362365490444259256773793965011646423418832417687302390661701805346963756779821620715393973207706570937312005860553137590642518546966214680258138987798103318113414808276977858906869219361415685257618378463754910373918729014805695580406636262203014039318333757612855874340675899007580148715585523531657375367487652742862866836238604135957152368369593672440012109609696995256468657870788996502101995345085762931177504191205173946058362925157147549044967361873483997919844697733499052112174277826386895910923909228533315455904555718565289553750071559371198396274380802128008221236839524559087680954131529158263886290767762413945890061401572841912858274907288120324433042401712840307147389196998776844677155769251373125108705932395418618948871003857897164269634592830450554427294548033264087397362176747500977505335907684017490324930443580193735962493146512943423236774466232818902800936964362916700305125487148152473267752383070807016507539498452130691811710225520815411431637486723056160235880846015871457458749266816740983763599487613322342093551325503080007310127770780642890154842559408149179543102559841258840172129521652239532870529105097110546731841985815783061840310478313863275355083849462684407027292355395457765595848299057884959125647476093259505507149731239031132703084603631201663352568527010477500448420561279327588219608564669917629035118769648685940628627726151056589185096767084088251164346881494347881663044719591638172422042141344833996975993802349971420556424036503554854190772663366085056332654952518729043769343714066472243116679178262171778361318002434009546795645182476848537293342419098654532531903319116173577782310632965016992084634487622481036550934803473404494600633086713414476619004669967519201947088347251055365048849204821580500971156127423976338237990286074474066299817786340036833851458988793030471482399936954865476002967004339030007924363117275997263955266748343651496828397952587458789003758311587410406613070736767567647483114915470195740536914689000989629248308116921365054909406140426575267385092522678615963379155834464848691010964751512735255692223947067363091269609364504952170304558703966797495695842488709380514962732794975342202251414023274086526466955512881181383625879591990103557899671086458828367258112346386295607148947041566185138771179933315882469806482846131159171748450928186443575449620070348600286077199567256306768573640531694511524256964578796778290512793646705549500821346133741824906710616987294897560461316998659762363074916194855787951032854256651696661527408216987282237189409207678677227408338880464904991885047773211049355461439026961023049598643145073426886178021400939265143017510917871920928980613465620023981350048435922770140059578521040288263700409357713048540934132714693861382735658158270077334843703177052348181603556645219708788227526800124127480709005383956092767592756906977436588152849228426212561186517442019312813769936448635361395490216756515156692986383669818864862082516840285804271323994229642249239027276011582084818451081389387358520909715896462420761641458521966004189728367837929844992241858499635678509006736860279491681888565724282421670490216578876042536873655047964086755561546610773512350688175353625345538262191413884894301207825806649435495970475701516470635334043440016080294460912325423261110424270026200023264836098119920816113063991301502617154344259871516157781817748190107709505875369870380968857532867922756250618289498041903823068367575833643324290366426574353454541795986702415680148630103921640574900962048052167216104647771815629051827262752047168406402386304494958049581290608232709671753809446432410857735310022675641815474065698728549797665226062270569000879884434066414151763429129529560210069671928880880230813088144602171355970003681410213639505420186765332355146104318086069404298269369838185091081120696100905253172590533785123691068217000470066113300321048694888757786124850476676938558579489784039429851657066938620094031424278490247278449212612132314665846276617012551705612873348727634586873045946343571945376182272163388755156945588347303929075772403328022930026264132639404454595279407952605292231391346490865847815727074267162326535967868540583619517077996672874779586675430416522827440395928120836883511544502757022013761764496747432277544226628782323623650287345549137201484827905208735506761242639298556317868440396220836079450748106785152035036922564487932485684938321531672122738629476631450463436221507848559032301971667117786900340790118490681365209655215384484675688295435359598592615951866377332384803381855796328529852157787351392832655262792923179882122756306469081051043369865805081985341707841071190061177808900047641942989320565430000833853272661944200558251439537010989245785953256726254002156213533535013921014028893010482618801891115415369689713319112453533221073150222240153271188432753563530076139484276048295846573657768891129906700819840735827969230733282042247726615365486586349747336969361552542835067822750153742019348186096971646582701927992871863631408559537955382394979437085351566974026374449613372675027270493113944298908130016264092696590014798168388632326673390751469989683895449888446457743950082607341786444535253222016409160113754513554958814821961216864241561616823533410706148389955442797071765366096675621510113159825399152374398865370689043726751238181907364702015331854428895166806666761046456331352310794762815135462298032201551164467069648337843279668644201550128427156380358859996195595031645974027154724566018806282108195848374930700331670063860713486113987854484376677665249819591110991687048323755782171820426013431671971048321216679757734887497956855367557023007871361629736450181435915562930991281190879826400817024794547796619375223611716104969520656039362201096558736382066892724435054395825682801408604495345407943006862832444265861825526251606245168172043605213964903845613651471843819040998179912015406454862167327992266928045963099129557532433548660285992679787320256703172030953449944677611222776927401104809389886181637613321246463532485862161170352014714560788479452116135706911782144296324888961414237966009949924819815293489137435017390766808991967909322316151101347499362975153786661426723617781333740231802493075376828540067157526059614538867888853317448024614940760189661581418571322883090507018999419591595209348360045581272922417850625438582479407129205534652387319860927609385263436642026276232235368569488064507267311707967863132491262177960948034546118533519089736908792618398365979366915888516637731344491964809406110274833908285631920701725904789761891748513618847974522850236447579203774346924998691459145216049190643345499256098413685499236658168011885481807909045148753407937173032605948341546135786218402814994138212259263937033266740164766129626332221696087515427387542615878934386228804676429523754652815009562967030205083613869325883709438573562161872551309979956305475034866613903257268086838984650297675830792171294108644262705183145767045362342038139803024716552788122739154626936784546921430230913970910322472068522259218036030162655021092514438695385847728071872928028328757242375675205223428615557474950838061632136880109223239606875079651355095239163451114142515983493387065518263661945425282782856711284690103672524661662487453563075992459456906158070142216354422786495732662973445572758215976259364719438708407713689070767769497024692590561358398387726328368651968017014682812884682780423493517911564188033978692887610311807492245261850582648150692412606951196710285553486362642273187657536485335104440573166799015230195510658880999768991023232993747779852253987739480538198507219167279105211658750362543631320659186614422655178909605247450456819709725679586624639827143533954011611335824318705458536721158744874442036688026981344212567228629228250004278382572764824887634389531171571543206359454781490166123690652099744269748647403703046204366038431837007854474842881636385765135910222698827822545953027528297563691823326456006718782981982313523298324977597579631601192925928873569531485926246671008520692675582715191284027842557863955244376196541696871322217751170507507807381310951416608522372137742728526427252441609779189141279102878369556974872587312258732937625967720086752723148835588160393698295716206361155780747888987695685931662196265686716072453476005904515512364699899337874315344660418001511499816852024024848179080124424777985817654017165575117740230166796451063401655469335384865684009869952334111495083975622780676724502254430614863887770115216503121137153508974123959480359060392121784905985920388225062713871171482835292614567624583363766727842524797719569237676847036649382183195048505060767532368354730940586242360007207707062328815864722686913820729107484194162991167852087062435298799435730094407910075646369617492034688308022473239396454442971492746392752297361875977237455964089169977762987377237532723561885711830763676934944875864045242537098932754395846415463890343596572654999785233443962277489010107603204081580436213018394837210652595632518685688097660296418640376727836971796063248646606748027076816309010457082431497107502030407375278426576688606723489708429566981104608027433175118378233959323007565206118175847950805020801625068024728197978198971489182212959025846061392720980646913499646446085743760428295023634195772182778950652189634831761903918938928379306977447600536141013479792767304403308512765512089728851835024042212889521128196006512013138091491132854696976411683404183412618731400527707014651411798646653808965392631298176517623365490763453184752968464720110245857111393965291008786529102753796022539245034956341017810434347706876575274347949380938010544413398557250916869016132192715837251574255317747256451427888919677126889422909397657809426400344539587023403880756178700820132620107457776417399255731533212010937274002842209664662605016486158930661132350557201875700951031676766471896433341381181556365485647062150815496679453977745976970177448189304059559811074012521959444223590711604918060590554952542427904576494610142387996496479568696180240789241073718833149010923837476034748423651058610436622985681129313781991609854579599556743731556356383934312133995691019852596523187466333045909488261889463246308565316932066842418207504102030989600334906582520337512458424002407693397845933162405203050960626467531381705295650367013863882409517672379820052711092985716733662339517890145154980608154233689460752112362975612935594863235879061262165084040090091573147094244695788407623070686826744948267110865978237461496874083382153523112084373022533835540620844747203027128007359912659550313845773860072377014872633520080131138864815162771108851446646574963376165613076278065815720880605005410606357685601292237508058353868560647757359138211224172279286615469411715689105536270108020356006185755850278461877518932274643852669432357012344999748352696673914976010598464844055168758439613295634057448676421006534341811566296560420466642382226959793373676897088641175990654019219596714136290092551026406475778288809904524183382835692877099493622115434499115411461545921741649833486750346709431849854852598580493994646182195834488553069259346794083451066099040211698962371411094399740248586001616905998543742672546626075079282945574787144235352671023483809933904750760562962034149368257432854108298402022819876000979341178285044865430261689947208765761392754710240145427569823735998182211797857796045487687707770616785988952722465965679365318254665018762370610327358896556304169811725701221535432026068458034620955033055404984965455016659833937853650433518456489545482933933525870971849559680505645964562035412746007037830395977074594068285790597832354191917677604143193060149061108770757140277169211601133236496115021007353207693580591562802525021151558041295825237241430894053610416294238555131856347223427890674815305856180010678564368277109581323411722463273255521930051811628544836207473765759032822816895282129663021257477000616912343985668589512607298554444150457889944346533055424203435185148928870779130382519829257026509633682033947700087034938822428909340375083692971242346407311501560433969617744993188880786391117019269261765331188482715376009573476180641132552278869929990032317674458009570397751717171962492191402037434968828348666679772175533595005181020186597837270852324476162800638958528684698019866725607239932234600473100380032774745328605712616673680576715243561447244195470836015773663464481708879764969796476757744164189784292779206154825205657942324536159313217786426066885250367765132077608952795487799909905594612784737643460720148674229233974948366936361473231399633668107592616244867302056669942860227734199957853004400379372589222175140598229880042367265793241965659989077758818013755936716482239729888458317180458013590682188907660822247232833459467594590346704637672084708056331441681817710298410628755229175555307664685139803467342411768334894920983492658815641108776294242300527244713851322001353100321434114212232662398887957849397776639285106719759419092064161656539941952359642346703939713687330865176020745454306859232275964906412695779059124491510668682540483602315044629463966688387875073470527048495601653174791341229774005427283725351136382190471912312340042952736176673334045678409451040339896699609741666771458701143317423610544244866000939873433443322411071849612116710118306931301585612598435444918193170783441390573780931283977321164925466220750802025616396860954151730914049934698259609486770233637427318723209050719157062310382150648280776541398082321141993040237399951363327457474207638760442508131906601413242717655220088147911662555626896172831788893456447338673088656081650303906783256339258080065952314139032591865034205488589708115358938832776298458762098217415258426581848100032350789539021316348901558118967551040027619200269790272919532424394975695736147120974717191454840982353427198259141851680579061952064538013847953132994894714278370490091437000404802336857555918304924549500887813563590935701800515295698848762352002779499906160338440978915121949066468695365667149750654907684946039303883321045551760509445153716305889631536919251437824173788568777828042792948676911944914862712772466226653226243731522773064128085515398313405603157187353728982372605776129282051669397987459148597697024953901793619454754816541936732305954627049804693356981454359775082333125715927457603408691716467049967323490835494438961137772179188135983989710934531271245773445227232584100675851543765481542213200475070336207590512046118057154153661671797925116051639814042748847048222366021646755778319482049612912934014224904326539555440141248462712564223678795699509734222262072502826794510171260630130874808125900349626938714224898966774151382864073388043342317253301427315716909694171700156220090799172733828421215864669945860595893659974420221001290739595409823801466436918993246290573815663512595556706385411507068734214703729612855207173945355130186637756057343768242027687604095381938098394144228342041344488347929374004857997485504768686157305636113378938120191758527843439463472440713109600406136680232955551450889066474311748302980299160117957297448709214371753219730330779746475160518761121747737737562694683826985165030239257171469489177807697877307324465781799765763043515687932609078167978288049033949980938752879443929426922469557359476378434611789683394332423606672919430159340239950610803375571681050887520957116242261376308318339405548923792117839496983959987129140518040789958677119039561273875099308870767610012306396342411388348337924318202784382732623962586685865848555102721085386350152002611039220988401668154174885133941522528886504322003576134567997357776250354599225535738113110034213252634112376863541294552909155037014888617472678604221012979745031775696784856563476302947810461530755178948307348831445238576982427695237627621051142712945865847597267195956352867434021690830472675185503707446986499037022536206021248538077555846971166423923203510912702644370409331868907683799630541581942577150939840581972380630150835105586388462498196679520724861882083050683178663290743533539389936235802841582325294008988608493731510846286785185652907695243298506521303476801076173827165509645368626895786056406947728003630388696696969835067538901883655616385088677368247583962553080615929473200387039829657551417446147707231309367665017230323187341360269713850434955573507717663373702177802535593009833518573214556899285769269326767868978257007636415965638227870176440289472783718525146641248198801090735511202332199975082187295174509712914003172168482384157545195459485070656081360733049050875021583825117614397507380463023031015963432982316608413498368125590116292928530712392399327026195633667787928445674369594412290805292108673991309736821323988360718432867503683968830845572464948498129240604690019049016393601120669270832407378242429892237350081160406798824809146852970977133390812858187312567391221128744591474696110452969103221232928367283139862087785809282479858243901576185008798035314601658890038742631365745274273030506888690757095765749553311389842421223800790462995356128717720061658202802829709911853138180784461201338805564203881081219479512546396203594889366729021610277775364240749007437925468869498830553316683217917221927058544487720726164162036364889386145857333574726337383883773948999587776102730696214928638137983836178325542384492275658368335232093080803202464993201906824625014771727440786629912235847074190325224086794517438820152534758879939867534798854301523754784949642868354935468684883934736343255554298379564014296184960692018075816278263160560703711105073572872176309482052408239738676918080370866264517754792785226677543070925216477931157280729637385430110554801034282660144706880613832745051068933086510745566512891408939388933578577253574976803307392285421219879269690088474869359156153633389348430727423221145358466265651017357952068987314027944493611292824122403222700974938891157669178898650749200311189732582232801297525338653368431137360709093978438347302384877147536403763817577422927675450597937255798329860232875469163423398907287841498969007564417334293535772128930740467264052269045976792981845565057738953715905862118440037744379953533000930696896328504777348642216619588477997377931600447735642600562636508325560923659322529881883440441602547051093057224499294787044304154058532827661708099990663632562338164335405805106722412208566850799515294371864765462297035920844209465381205414418381642836161002209870946275193404190585948315197464526193372531939109624518714436120357815580263968859975937195135660904606818449500432381094727248522204872230005400413773431440808491047392156122389468482511278602144142525272307053484236972252888746788766439954418311730588098888829940503414071933372714742519948168178456097917851471771631103617495194160966177824021994717761199829203515970220829423570501734823827002291328038753653543465058787288772521723021310164514128080671889992637807208711726759760631864400096070594483376012403644197887721123921089534876748452471248296646071278996738096645022884159570201545772191285503109241136809948517390497082436197122958819214014443437847697222352401090788127599504986312740761310498478728241496410428122134126936890461619717044589836943953731075997333783099777035709587541960674797633134900057386784339554782309196377474265671866125773305222807715728392178713507003400050684385599419337873398049975039678195505583175375721498311384524003530254731289776324641746594387063507202671363733948396397876531606355485739665041273802066973549820536380322836705706585964077387443254847329722478743149582896820946021423800539643553836252140852883014942722313753608821987818840563242568051745779958038151473231798152624597508754838128634370187189133919213221144776244865487920412579596213923904679847786455323140097675896050745448874706715973965917620513331247770396956769070079473289380026651815530084000300412601842425777215246596017992519911580556928287163310123078900277937512795250275711454742175462009515838853268740779559685092473996030446128861658790962873903495813713314021334334059537870939985800060969250527100471733441775741454018909948760481510399209841176344754876500328713899008000677691954031987506107265029409852309051578263324629021620806287727873247787987831199860687189562031183983565445297863953768473769013997966323135401807142369857839467090887066636450711209665831151610500687734433766113630222928758119860663080741208471834106786101537304742297835190321674691326174618978750761892412356580706115309618574754918752447664966510755807775718788920578309424904564108015168252449718452159530058314977363110593679118536837150688603004813608979714480925002320004398140262494472701721038835830307579631016940758112292262546736273584445274898843907219493443329413904373351353800281196916358075167264789568379446291744625495905889929995415977035548535724163566752582583523895401425063218381919883693349239136482612065667730092825311517822581888830951636535213229698304454745827358089580536827304607072614258412026622207725691557303215991834910797042630615375720778280444396030849176169727093531050271390759984671362873725099589378819794217490758301293279032979298038996605468137494667383155068527944779138715425926789036143632454611896323090096118060689742509759542848896212738281376638729447142169068928168678953905746938046976094086379342720276793655561864864388483734898366934377498334464661272590105214827049682262307142186350021221906805417265960552524550098757101999590259015768830465307934481653280773479892036915591141443963652783956838745797141351881982283875778823042963069692264460754683353528371379245249471083850940465670175848449702962345215558576809525047165985732305719222960661264267499170870173052058978979911185884444791924664072341268792786620342597259946367885554519647924504084361304733282383779364472530219555589380829274966028816484647378910901681553892968919324250006768505655641284852868228033150196539035467898746856629254238145569473880890858414687533947589411830464172181931342959066780453641993933219272480938185569870606720388748949051372833648952108521357571866493324604275000624284966359771689034385669231716331218920746074983428624393927904501199233817764625492783355917519399676235493335748856700075692414403406964837443552533019470233852130876394963404019171450577341943110211917205640348490769067814704115402806408835958444301721210574337400822158023282200555095002027412944376418386486161701184654345247055248150919588922968466073833594081217275488233007035203836536882183511133196743356552271681712760300460507603289820998557523101084268366338634227603038209552076042299751455780206468174893137742951197199223090167683656138672252246740210483122517998134867213715718259904258335642661477921210665617771548345416825890150866024924958391725889977163451581670165837358217785816316209507378050841701516385992466709685015731370472444104018735957565812659015535623973858472362618242953222640865960148966072390504089299976100929068768197693502821553436061300798008556026782915071391576757284912479835285443399767051284512032180562494631402916493761112769627591746829162839129762035923341052200517430434364909870507814457820613263824399092655242622046724183033349304179018318912877171237302371979554446265908450865405250612111770801262961109237875744895559417956006301747981753227955702193218395742885733241516847582883362583597914533849696690362535178735060421576251908966391793366738030040927018144799951477284957669486136006277277423551103979295492829093856160151094173134516952243670840092711013770632802783862698492180429483534095279449728970132269157870214510781140253773445387343817886992981105207776225385744465706115588659828465550197686220909391751804152935908126142174844226417603247722443393294647356452160583772435950968918997971899924672250295072654135239347125235607141391885416846478652609243857488151117995120765421814124187980687701451810467639155556316244436362748901987906264528692143073269135045116626163431604038269550090545810680193965979484460637062044782926304281277157925082396624206892168034042801773043326262001002806598805546542344411463534931029542757853606449220906879231554131292746326325387525304681929880665929366143397923680852793559333342269032704559658353015572639586648114247322145466032741568207555121645858969100143582522821172460517043346288564450749571920255900860505465535717515902077142967609311867442209388170022491450823325017443363909960001398284949622123270560596754903838388286286324397544189832691720069093136235097159768191497980843616537106838045620104827678407777910138620711233336868440725560664940252455970996863112834143611682179299707669767144993533296766500883560340942275111639185665032364539243315878765236814078475012322931896261615241722782796911865697200660652304885543073057536859369521576337334603001223981163619311552543315468629451500855609726365070439943495331948488679494261484259970381630370442847511283281720099543542251288143458143340291799616172478840129898066250688319514175134203902379005788040591358524737969620627250875194316876868617754774312407664058467084603964741280051147050506289124766075370195634394346261083579490036338982995417691659177172349578335730149321168394194653969143809550415682719891593951500096804800640701120980957599264035359671941274980328370301989869204183546476879239113069130383465406046121517562334637603244142720834140550789973176131035838501633320017870346094232551603633855585099107365431165878217751146540273789982707801817942831901176524729857720501693303576018356428963793452977261684687322255171286463192647419763309121340838137388056932997462645950176070367221584716042545590831487234935078084958169921790758224844654528405876196208648362817203386087196982081139202257011405353866159899683436181784948731527509638323230575458489848487905564471187216724823626018338526630886598784707178594451172174055497046644593728703195143982099172164392441163323660352914696144834974909340836761959510260589724075472244160943131437516810990635596879773674379420701984843527184260378198838212323546704038762316021312308354976297690824920544450421469047684445208615399062851081853870982686047224403523123553939209424390091524572345029604251877934591680309505411743785492924751153408296530281822633959098181696147424879658351289550372964531476891589601265296177567767158249839021255982178671549827487736293977819780807361872207316419670630112794330086604246620993103272754831949338940902405353395869016132007274272478984268110224705814381738313539401121587041128332934354545967224910019964231963376994201815227062287055789274204676973825636311891288912548422622196643997292617074121659773456226920281779735003207298125487992240589764509447108503473887367054936541325058096428645880111423173082574859193998679184033448263420137378545082482508435979969104696239736491571602977180938675878109750025334903708364785627149575293385123511397198953215572069135103644095529065883056152757566452722200424880582300982568171338819117806736452475021465883509078699591983174555683646865237345662156450623135098963140984942329957595223316679060232252416935953726546781525312303409015274237190396077440324608321445546040190218256967912407493814301498729993210420938909948340710709484724290329220428225977939431445035956257956780407819219491800440197126345175303670136814145726523754543199063449676707679507250561161924911734078374116743270296032722157936753074669295166374560011979115402964033435967855786900478361795284269936692586938844234313296655948023828933663440619531647431359415749265784709637468471739753163230340574957749999721537928847581174787455198106508853033377539623250422743200143972966220660690266661024261871492745954472303975070536832213438144508983983032801693260623441868064059924367670294045695899757627107591709729480556868099762232866692012517447926944792769727894891694192702911119987293447654834873600121356627777285165553185249597864049816832919823984399145066067409665898502252379671081248426318086983201593931388353918318591421823067279712088745555704433879011947296643221465715004807638061718106520040024914391231921377241924562255051648766076017915974588555371511873920261250150704474609000170366577495095380294086287826653892931141808332761612689042969594776455987270990559957437731402874729926558803636120243569574923288212368429386918096656057436887544593109716978955121033428877632206063172055715041431439066151924431679378972407870796443910186938926308973979521405716651953241668854084603337961461655719498496917896215517422771097224101798170422025928810141465288637375718303099131007879681741388548112297331012215178540241281466771475734394313334796553299043855785801822308210065801828770027811532908362987415519771777738549196321299031539319444332593219447356832539389841004012917178692478563787739740384977435452414338309377130232854429372328602936174204871201184640391066302844203359095773203993934064717377440369898889073698660060013729224650948679634981738901638791210499975627436576694888541185653510509497068715354000786749911115979022102108093447489003934142247630076962096899768171961161754017634576427738137051774577011754743815913463670945522123218152996269158468681405695248348499097311819345602866546458869221476348906881345428020693769918337538171557695050027479752773848775840952006729034926277246274334165172870061593681127736177411993361294143884598202199656137234478507793004445225881251357729061748363400844964376764800544429414167327647380075331317482039509496304586072838668191995273011808644242411030574372928865478825105866976626425166354984297456211888597233681354744151484566454410445545084748143617366455293050039947271627366639891116996363101200717845259629042268047646013008978484482932838758632488747269166920303786132810268012797218121894847193505874971586012386777201138528090608757797395028652715804353508162692576015869264257593759105228193775163357705056948961207280546132943168257811907806313863751271095586938017988521964281408883705045524401702577761677843817600460108209991209638652411704472498376176825711754036261366271999868237716219809841862912573936947023479817659081036345515887589866981615551707952244354429320984665889389980351675956459258116436543887107156784829090519567993963525828320872586658951907739684287865315793415523518226920979725518103857608839989505325578756899086379978145604612671233558764477549353397414768314977240715012375487798710979226595270948459667056965284809663931773630078719182356687362435270035487337726301978929945768278253143583996434292252794205137786207150396672974600252889105883432462921991112255456546864879999273462930512358029413194875293824522260556893281409497480289207605464013711577245306021424881335324592103202594910388399720400175319463659921577823926506100386638491316761209993070023832815512326014836708563440355709076699921430303922664505661584494164516433677787591020710012511889886412829007365088254295916847095260816419301887561298936422159250015763752345571939267986153581879554744821359120042595481150193210092488594339939041540065065668089573878934998720279703322063552578623044992879653876257335642580902229279947832810339104550098065257755632730958178806660658295933509245790911606856995988815587214878922580820107378193216250497186550395451244576832299074146606138637916591139304250317527183605004856481407979241832103421689446538534264804058848359827406976163218288236507996260702741863773993726178778387482307615129961615771790932410378430714019101003069871807976332619304782934843962656156308505159523218568020350092937238590834993124248552374430282605172962545866569931544329763246590604148789310161590110659983440449066807644369910085467816634186848869885717424625596595946479534162330314948333796322512853049455498832437659120155299004278841358305465319380922551015560268442866065444625963925521252186190015239071420597958525472955393373102019314848803464023202362402281215927351784235874545510126819939169581249942414085943430416181103402226844550385473951822771233330093272098437078660676503224378387006225006266092375931110928915282735381443922865489505594807332109372558245742404056270575747380311355383269891879849073071053211150250763841429290896901833263229422646627184880009257029403265365678588318702815259660090906481044258474758987269860337676290109048623303314014670038250733459470400027875920155748467316306782744286363909653095992846849432902576363229590999858379803443400511066527783348798104746753139982735004786155193203280321367277796370064073462167597026096229476671202157447114901998026476258485281598391098644623716204497893402771442349923614130275937105097194648571831153158822831780653523231517088611188947814075099094448040250378438869078990833850643997046022064807066579590710890155850540927601747017649331829285162704685983347809945150458673078138362271725630234300776143414061274982228850657288632898480647913706481324308801193186595901085550883591297621466589414017555647500181403340082091985146225648751834192678412246146724778796908511621738458766206067973757592595278883798720506074423776349333650892129230359912118757308467404522524051656415348886786795434058824802020907571008386168169844551242938026725461556792671423980121968951449914563458990308535752114665598381607460148051481935508537635398607472835867856542007300777639595004239527640909275561430114129581224093976041030251818450590981790393888839368454057245137874869785431108579919012621655718825584420159003672737160312487997853543322284756250339772320470497132843845148041214566697627030740447798795306143920035439354366834926616148535341135012770161514821965823085981084031536706914884887712890296895926662080230583424350333769972931995172430759336977810896718575476624564781311176799740967979214935761161582383947153421241118911483947505029694296380762124034447252955133241501950651398723607588043648634978021955870747102473100672276962484888874023057311089888706066048754741428508490038467059953093768408566757401413057521087892587607208592738416062461437027157014987441861819848709192177865334294968769962103088249956744970037092697946200698049473126556045476553955234912573846489537891903737819507440975489033790654515368069641174087218185411670001753873277424104933441244762696064386354723730007708189937203145888152365022653733219056763208387065346214125934058571439189708560045865186900213742188831950326263520847170510577310467294945892190880692195883699503417972424094175886816751851127037516305018271275768469931708961134346185907681384321151055004676292302888060639162140428132252450554388648597291393680166781417251811938274983348596654130675278069312711458127950085556531533425737602362884531441432017877556073361350624301978703381414136349266946637032161145534913609300821300636377338693532737837236991652650842059521223823234596761093067970366874324985033028588764542492380154116309624683457051960365180485777466114481179683017541951005369374613169004419491871395799918570280623039420266764038908303479148148050239046446038406879531102513377588703944566131250345655552703577654948331108672444186494930292316289121311168285569210342234857695976691302513721661594585905673284420216885259391284220050444158359047884756705141457915606728170860656919672760851163527762662268072836341849978444395646070781633159668864602022044349079945330107003840417537554690148096849936436746318711504865538212065548071479234306243447453356105776470557957981374351486649947005675512736316674457095229885561879465534365996683681660428534372826570788606846766177241456328186083495723423449968264872337543334860531626055956227915521660010173924834054946832581411558600905192335604369088079416962364413672387749844539170613168301786605757793620483720329084698213835490896366549823475709918257442946704458085419331256351058860972948706459791481931119699233371244375156561714152283724461473917313522548106827588230617849888147916703867470930420243860882134318201444576765574925697939644372997810884578764159841719410063210058518218409260251065690506604999713291911349083626161583591001187175184740468728947457904107226234954557015382204445400747604389579130333466726228934624040387285715061445707391345949155984858115669625413831404980741191262552872247931942208968681725152368014737368364499301930547419883159226984948131806784198692362715026597607358938891276056655560712909054061934940838723031828082604259827216173184634191270835249842673025339763225772817191097115577898899376401818606177493469582096314237557524275584994717313265732909719504855840080120274166691821638004876768128458733176553803052281457774076056145854901765462150426193688026591290246513130599133005748988604005371253898646468666393070926151492256941090818958171823783889212815294353557907986506705967941681910259110355155706562746708512676579081164170158539076537652262911374267322203492396546694514650134448559280804296843116391859749331163362846616349469325278423703875967703401745351439355861532836164028106740959696298742524185367963464464057117888252882678388916530875390499369889541175918078453393384315013204346458987376394965687920630672292956420917923618883945795288309597354353749605052123160434744909343076441333065465948471536167036817525792040551887382108801783714592167722374937065372175474539841643293181908615052053623995904574458580933683317598975276265735614927463591389631064643046953576591435193992046092146677756228047708713928870180200304884297983002332244559686131237726240269241897573357481843625315743942382952589230161573679640285555256217893903923424913877807685787141878705508439207622058806886455045493064214866603016171667788547184100661125778494525558909998313191685988536796462191273232078094188845424432163161865625701327915870490169832381983117507965901145592381503749558921416165788343581763419457087624255444870102361514681153607687284648162445433227678369714088542677655110301241947382463280942945193463768264269114770581387420558074850276549399657695460000382809413598666749405934770371002138392590597474550701001644006993250588110429494378228757645533482878208159235320436452127265483587620221205107139285804506565764051827599324483742074106128760697400942093342351735687134954096446654516203385490661496012521942089204015626115545629727327874390795413096572811827931506285343556950137145945766013943109401415895420008323963390569849504577607854440753844185049504114818536400568154064789148326558779025500240371449462373181774424284671301383515656063824542731224521749440570259141006408279262018076604213634658447269330457924056156886212078929532282091509923667543807919705050581934161468916345421998921935455396104020666025555462882592833660851438744059279615354274536799343221496565423541998039415522374269910528674192182474640528450059745846181179515588171118528255312028894442179730233614559560163210951964589128196282196682677310905194144338906676948757953454578002919487128148929850058552755033220257214430266125665300111159021174146348851949385505756924500233042537977713359519115951965706298584708882910549670266257842869837339147505617741735458776516067573760755338416298311758843884905314102537039475149864361330406273281985816031763496839019487462828027121473357915929721411098034928847206226684655446111753446435465362582179480612613299913291175906485281975503712004558648203690604580310566426435657157539282260855548628986154867359758063128559464654061866942210970049710968503566584626212612811547901725068666778147878326991111225410217519728346751843976681787070249935642455680129721124112904046428885408327820864365116424714302035265837682871366236619807909214617068148544359455553655467889755275209580275931679425781897997922929899329881860884992244303894468364043970843204575262128706918420728502964862028753199301662481904280288540288852341236546991335589764431222363326960689006258351859482034394066354930315660325660146324197889390607598658208789419883083335220767447992482979304747177294750268813765311328118161156980817240675106981538857195211770502792337766603903832947300184589203033568818716894691031984458258727121094773097229981421160502115046967989905923075162749013053501274921939067049109865263618161470387146654650221047780444580802432406227279083786231925886906453494302200624538405148556962178949445025698188787479411457180495773827833363592630749394324635366974993013784025230776085079847612111735883573635446300860224291242884769298907150547450181874705227246257312799933087059084595210775124982151897227307402532389533236597094942895635940316067368868924575051210691613655403443026005987845473841165749012234381034825887836764951288987039962534729646036097925835621404750832631757055506895825584080964919469466255053432649605622916470993629843678179363454094817627117564589530825552164750315494455676612407352230425753410337808452453531955666128515505967204353572639491785961784720008825005578259746223019243183889885935489747259130812947428590314364371781985972561450988206762774698695463554763069329384312545384790206165955235916646023945431834351268916816547467013421267868967621919836345792369254378098478249979001359538536134866263576547057574740960535435369478379624517878691672432380561555451824770396183189240666031019344388272315727722473021107361847867640333067501175440153074992219210009672662021987837944968066571271310371196541730020075118463417630886233796086444193655585785226749207787514195792565526840348860601925817569846005420289434136513471406498940004434441712110598477890713592474256283781474243491526167251738062705916046375827134245580629096294822649515424842043489902813131773831600331346250694069096313979740053231994401953256566396085087065343434114957501891052685342731282980763826650180450727093647883319784536438961810025819997030548881945631651644910608979348800910253555962965935304617842258840395023933390049115233749049771922591020607219019329767636806551376487210356348875906229739603814535438304832684416044494362199590884862848789248930837354772954177997172799690583623525126740856194328024328497965400332394899511468240853424042844501141295322425715401086334536489739864791821043742299435228743339695533876945992137876629302094708886740229242856007088489961313652193419463193572464874493292960148703940599202967584616734125851106617867711205713790938289775038713289970627230419275704830793131272148789553440307290845485116064543192674933856388793404256753597476407824078321299885826662205122051806062758584650385568065223216247045347024939244404061508128204717876119079779326235575402548317810435652610236021959606050808147432825989236371724148242664094779657080744092942799602515837970606020257893918210251044528671320573751400645982850431056057664047309848175251608950794726861913152415862002187637984819600259999161621099815444034175702334095768376629081401798089508312752122599866380505515855159601536909180392026312833801571975818701673633727335617245537895618059211252292260365567902038727485526381500250808087947577582377948043076354430425417708221128963056303545286369229977672420453435561008339685038369867071969482697637328335492889703707833475699850129169724551689239944099955929032810061120118948010142680392073137117731527822875525738940773655496808801051910924108151052292151009617127046147877636631014072564224525232771383796712844738388542709528603144620465958594460018449121586390083028238641515008519053393609809073541081579178477329374255918105435594818965499727108778495607316267848922535589295835018250011425389900196688662683239800719016443532428621147795740101633231203356117338564098994075950764605694801446796599426455194444851076145676971603725203308181646610318248291395969210579733399372426305239849698087663958569438790843555689588857518916898835334043040604906147427382289506529935601310928457815924921732629805918822522394341397944874590762324096249911173667555972850733056119524727310260295527723500457540102100501624378846611967077282629167503926249906417609880343558592128927089611093644830153889766146322657754740196572653707772275148870577575094605343716403998944966370830898233537083988745533385440424854310112143436838120525971938358180460851738526540848658645985907379710213826047079641078595981965760281021769052619825593102903640500447337049641494867261360928013223610037593033009157535433555460048143125504658466419289892223240887690714332337796472825896358539117525285576196082778479353930750097308008465108314761395929458982671298747207268328613478122051124213900537831373688979300841567904871842562098122841094453674208331819048273207772861828603870635030529960622995396312657874587060785113682520851841913284863966918587265345382466934479199497471208926050411762330338577873899116615744912440696078749984548493988601269171540676661055161257140968336382206219063742397536121568090985758572298696148407182676973764750924080795059225947550987273073151802278645263389116087894116958532392325062683501854943631805244607038502713510530105832154681578859907847866983934559931154372202143490678564014686228973042336091404509543898612877586537427597678963937611792147599250140447870849021403775848256211768774763723959646318222239217277989657673101340720251997801573809786497136112177746562911288016162221322639896368909475944244330172490166628759938810656586213293787944255871383797685409136742995267351804994304299060938354335066682531460951351603220922340469668230896057865118880957543116130859447383379348005886988310260035484505442895788084496159541088630528159268510835576453785383560780497159078141724957528084095238006424997496035111747078391710335826359155681104395889989298112812759026572340454731597500610322154289691610699543401214857040469309189897479849413216739886394664915578523475251800951900531128482833118436648345495416152075222836680544332530356824562208891949959320720200963938256031142597495748515021151206564911672600638844399083807324560260363009172076861024675481676762451613118565319143450810163144111814702549371354444937094143432780767635556441034345438748749764926539148387668744367250052159055675524401728589010750559879007848640151363108265146339293580706119801870451450877015735515409301211619583732601744407941048133326691382146952060634840238896746341492983150787144420237938742900199163384203842545514814411643775130069892696033500559462597511275072862111912800227656561385681489870213412815265062009928712859835904044196779170226024041750077792600463507756008657779661294501506632262256944667245795197868197722357795889093031548154002583119914559017326901315717916547597010418410554707017047887031688684488184735284717381350865279937509042737974890393436966263337861703590524612706605317293347256538393029992378467531036390206300896243530926139144286286139135542563375053425690793621832324051856345235880041272466703083599049737934840274718468943217029076582980087233825533100950224336616866902650481090023414575306819240101407030749163715272310899627231005576130441417307729777471979881239116517947430957092303211346045829690686556514609016440437323506376816710083256539492193522157573367132969419831559092597344689076510229672694004229976318389064413201208426299010304592948925782632192523392202959702336207491589364680831518934230661718194170202417857788754401312727149712128172986543319430882550706263862009451199897630049249153976002532482580306664689717895275884261917953428911253036052541008359205157457278541259616331560808559426324781282492874096456825049741896951814309550638816015857815267417551534390506853878762973377914483965489690060003124112392332388023272811587586184835989725643674817428231676043795711265674080240516931138435682362386063842934860057642174397998614537192833604910727560952309940748007559079893606702454687659283882968856532960412323244376982090263575069750092718904783847979520187878679235212236377810140389514844648640150369896804240602195345376381626601123133185922362613810909483845663304043748768356739717374935312045935507092659081658552019496717518262495526462362573579984209143731003918555017724409888950718721263142690707779134929958108403908480690535832067297208072216776246719222508676910500776775874031158374040923706294579824367624964239055635003069485892375614523173392988525097064331785724410309379058039117625131580626657736184045957860918196744946903903606537790683229994916702296280197835251480830206458151973972609689786196488299182029684731723225483181064301377344047901084152368337994317655326600759215660807929798210446923548297372922140998528258776010825598510555886592822963948612269291881464858932295771738077976971411461226376674441247533980548298769201422886353834344312377202755049042090420831847907303804661929503790285246438093134997330838622263636173471094113774433107778429070538013590883196383386663513588577814673028731183689504118490565786481813514392567897616117572122836841293499901584580659304192552059485899218008095577207147829805159343431734962074811147889063020673216293157397822871047744893534397022841806233793644061111719146003562561952863156542839510344361889537809274660848416718021714242013205197452029606495542098009719163576542096080717710036734468940768075527543950799625958572353422407125047600856895379327610994800008684667280352179888436934770748472293250085047482903581281614749284009920485556041749891008297112277614896645484082076334337055935072047254427059346024196743051688299830914282037199684368227861146112042817661636993353901582578004055077982354637729889873245055926768649967454079777441029102916449815762024603051050586595451023848646710724692595725785146027509092788479066830783423571321440420938613682231422558180006229819300892670689465488858439959409689659098806266154151276662994711534074752061510259433795860728497812354450865837462652118545953652579833640617732575213569755780884198298330209858844722617412875515389800217997367529260452311099838711544924531479531386947964621372049822292815228698958860905039277512502720228008711147905234230023355021486034839020706338801550225555069564891529633152048571024857022031672899238614134137528184506601283768059870485556832034481955460657201118493578912735501970351386459025755588333773061777675304544552116421221452467750466739184721439024279237010944901528150952239828509535959667008193844784390409248976369195261898413899853611685618628210632447270595633299471567768552212085290242805399091032921639116936167315143832049722909610762312064387002070780131900517809464661665085361007084169738956249890655173310676593537350133990651455172943740097750837845435283871257591219620492385122309441666855926659464131202741467171782204284832689998514287445124214663700872385102565843656684277766451760190114354613801257451972443777838208661705006491169322316631451794355560524378388139229598093681361262684253468019118423186135851784835369153229349954284791153592788189710324954241311054183695572713567049358144272509135506074539588371454997567878525585605815738447325744693368801227561653467398300198906336050441521769952271020214001010878365158756007251629646176087117346448434058710448886091455308717303410738122176565132319247701076718172351028654013987075151030833242589103941215924093961640710378784184553398563777684826434929329602236711368682796843605765536172780277679202281745573269380588072162333532588092231707061124705361067242215002444045981570111903985364948524460778657445999997510934214765310994444387566282144263066217441438578860843884035473575186167482256624834927185626093784894703234512514447626576984106218569464308327762456050723636799033061283495010462374274802700064919769677548075360069587218159900765508759162753818327289560723736563085955953107479971651926391246557401165089456706311462372831641070651201393787760340490234660954471201778736073216964711309208115292288306441324311814580498372055096281995728355795638951594053894572671424566927300011755202703722536185495105935827444827115996112124848634574619823249144301084310422317057571983283248941541930391391016621828815931822357445674806558097002649073906252629832516665591913619760934936863729218340686198815629237552582805167160702817038198470114388526712145236762950543182492087203605073215106879383004911135267022337625248782682180384527580457502832447776030966061691162391613967435466135347340050283338495553082078054993096144058133753679478191298688194915675978479202777210422126836255412692392231706160144986306959919960255728537269749292171212516946394371503123368336057068324722727464564857360010900626997606816536892587077493283257631357205754406419222803120490572776496710598447109051872071106716708185143535879094628043409170899392595263180469543604015988258984819378897678182462128828223759482863866932829096019989139882105979914360186914791144223171225815616855289307273185602021228273760117978928156253872042915643179583558617770407183728825633583092690412861765247513483456811135985275127600188300843368722099463135941461091527640735234832927848196422343103582652159925163875661732666639917180523092993595916566649185356991322550024259162921811289770524714226877824965824514219873713721281817601429966182968450958746783707303794330889227008646888995647358996608707843317943480785218901183207089721699393304508825161512467005095780123930233633508767806150369729380889473320290659203712314535540652330635644143287403834521698757530582998426451801677715857274732428048176171116130624278090419538831836969111597479673842856425507154809190922986214184814563912106676814681352038563545787589660646673152194777064567136247242219466521845124218273584237338754536449653930548454433187323442942519161043312778291242492090856741447280467981320969484576444432118611278508416499898994346216001509887413866949136318100544034861520627947571929622799821603552050841174564020143148650330245166032320770329891621973004825505827849885021185850345341699059427112924699472192161510300432473533669759800732954022593526830320084247607264719795360435251185524006592408017678139550934859103481592629317567127880522583074652994012118266487059934769087558816643945993860061176441868104074929069303970110650735785961580143275974292986572050410896650619453026802219807337292754717068701171338300256062599993985545670763214001453209411072803343161762466645016900283601537420309537645424709417673395867169184392628414877416580171536199412309461946467823229084933172228930687368864161587857723726377590624754569358583557254035053167449689921754481389710532610116484934753167351816872980217411249956402740198569438248271764318542349872885607874888205884013858346131206290768973750192883438542208602619929818730133451233566879516326858390186132724147173466833132003836156369904476313874617863310531202605774200969101113100232144091042116108265929300272648929130679463837024970580510778393566275354771843406397119679371584574783538646133803849479892608160294243608721212657106327496495590941645641430858699715330681530248785213216831000224266995607097412420104291704185774351999981452581488924787740917863172318089184986567332486477325857979758385885361879549330342869030272686544688758107508255257515616375186799003602978813693280453731512850920504128066744711776815583665753977679492875694814546298643032276103076149211543256498075661810478098472721140424539708008584156664603603952877875797171255040534751312253684731425135449863376777055306789460556226680360352351879815079697934352659979261421016866734734607872008589340733199741935052114935045053963057121220633635619207951555815203423569693136923711124217186850689918473981773022461566886544406853676761770372817895961200205234524291632713747835185065202654614159618897570683922380008423956620814908129250198889806156158518052958279175986068769190501420847436984965197441330272605189379414810573745490992169887283745200245503836899233741615547533710399509893104095113858665426840873497096348277900307098662733285253449537982826895696373709269632794945918361304499814955638831502509138866029652664485450984390293637778651092883801351211421439626939336470406759389246078806681268360967307875202717505943421315676168421847587757790956430071994433758211647418561384200492081914953501400658201462776212007711065126088789075975181063081855295048836715003570997939190716157913044419479567986928575819205250650454836806333297858425456014590698829815702940675149622482786693584153293014942727348523680415110818580542933719341354112646090526228380836055242855657717009889519116144099998927633524957029577647677560036917314839692725123480933299592178151790015336234436614801742136101431575304822054596979226337304972121656851628648350132868878397750935921505014862734275085363821043086442963862278614390516470000042478590830127897779725380775536934260125882882865023499497917426947336729439984622104873960018018449973236757468211890329352285441871694947637413274740160043962121617856484809325757504425897761833905520820323311644632475326994227646348882633892514519751340379412162592704627252965862337009607703502647191915546154608364662447935058160831708568384686904272708417817495028641216791185093709276579685273085234042837787366018583301478678418540318831964961045155071056488465308452507246923569831078683585009927888968804617863602675217807415552279651043685685359770630016197777240172129708640457633587888863460273034825275827405707185126610928877990373189132200017560378877221727488538960983641365791327035457990289255898231734895579148039049026808243667638036731418106936780450309116793046549964786682375090593180943138129827473352617874700546749385698584397581148227718667773224926617919647119726972429334986117775150131560676987142866848990279926245827876552525278637026885505990181064473331039099395136880232376204757643161368297170163542659487496299593791313851398812965006472104668251940524662014543602351877457723252788896272759166862815262922351549518031983582229292720842573301904113298516169299657634444211317742936189180721078944860230089573802294420738353503085796212039002386155119661641009647876969950140599826618712436588199607000540520290595156716676189692675310426335774938398737468068340945323548210523086947541781057354642106467958074177594240325300527493697119466374803210865627468429607400038781738160446736464761307401012723658160768144578870902542435165688763003280098924129764134807215267941862162934985899256246070470283615432159887530696410075140694525797637659952782306077248993464765321328500997469861837172594524749699221112358501780564315657964134348051677372250001233773001538937064890040306282230343676502150144241569748912996359710264587924336656129982658887680426710179089039445760729864296540137444849999705183254313316901247444865538910130404154903737936051096642978069553797790256064863226751777145839969349515629758014555379894338130224961082816316296469115649597480171838240620453297851884684076993173772536573394943285139445182961800697509875158445304265264355957480268886179903671604401334220084474284856018335049492121178786424055147781299917581510563621369563529848583815989086551943851900652065343146826272574045119018720507693440537507042777253797530047766490764770610457123751122726183017773576217805985863292911215268516633144733279570223852194140866466714526857307887101650817305945424597245355329548230955469985027198090221279545607965298821261825901558607142719185398804221078475567396620895176676003685223087260757221381632719788508045914643821797006905083188387241297366429200029357919450769715586454119077767372068222452624968834204365105425804581802305716804420476478397468529185038361863674500716572744518677120848244250027435981928560658000552146225789175897765980049534021403375239762308649103914205395563786387367226017191314339233616454784334161736901004052872787752337000010976572807555885557997125406156013474897019733435986714477680937436842438682845929423647880681819497065132306378216846391018429308080628588014696471412383769744850681982117900391028729870645323130286198524512302684091617150428046693994001445055398737153284397914982609676934986472536494199337156751024864269434854109329886940305533903603832335942705955601172121994009850177746836564326874234897238986987089660301748557454560021306326716390559258337790745071602160822941289822814598366447575945855719078150483409363534563721878674210919154848306715529073065645533596214014901061218543532128384105923184336044792579126968059586049577380621470701841217976792909399911501290019710263103116208826966621058851895316311434599966939764153077239796218301025915082830990813589887794788282013938374170159529204372258124609572230068667146962912330726609923484453047802714546289653149619620822789175540624317832433273374646953175418749569512466532917962607580490509552938533191582381884258959956554808710686618987273839174012966301207731245909191817034254603202567976281662207234929349358642581827014881524201543986225831395997578153628214242973009852558389801657804991843325904954791746387820360271661081619446792361052355031218088095056899353550975459819239529917408254316782177431884428236777986387432621169694920239522282433001418467027635897789638951194046069813045528422089068614776783752532398799926808411741656151893511274698627677527962675186974787529735003968086658201606810383162849609038488484409915684716782737192275445048843444310490926678124921671559893643066807389162153973854803862416212701087733082604196333603460984998920247094468482773781064447182850869404220233387025228498740567400585814000489112325934076923423545346736472988829553156587046334666892003839833501662825495026103457332086976751677645384045249077064028650386535814140583853692400570189769237967816484392590378514132763435979436564069826565933370288815726452116690529410670802567362686172988021315138941954926554432956949461921896130212072360751843549245931595786344798211058227587513077644767260279391103801151160008514392332092643378947471434112312519463866645419193903382438607911156888674410199301690498059292294540066460573184251698431996819082308690516062110798057046479350004866291971808672307996683136870094918014319881046353096328517586448639050677097224757401956909280190806875606975177208120488564178988718945603684465161959307995384394779049389193270415318455687460572906438948448068987527228747137963245822543365023333616984980877351259644425712014164144389283746596428416019634011657097780521065573153687708417604485441061522970262365473117143302413996265433765875753247503916251944810403029490541268177053169376441028664498144930632955075431317328553108055756389800491130234452308402919661822334918728767546699973386082915531715455422278751556586908151257767733990219430986093766978504659269069120656199974415531950414825240935745283441346396677933715800377984408886297046993922126570591310873875353868809200416138818757941977930471498975621467248358470925482607528986680626025958638418508720941221351547639585591636902376605184728250077902282117123019784410279443469228451887733248439221532150074604838871598195414967320808778240900225412911712550219006884204992734398404153389986952223252563188284645183245181002472414616542213908520996587896581100575288241141859678399066848814614073120649343403609051486499694324798447639322067158539921142799713711803989349250644390894823268159268899823565348306751751383902670862710480888013724596454087636443595596462154965305769517189810880386703537018698402087825686837305783593842409637495278538523387164592053185973919967119164075510626290067912014656346533938318353686876490005948538126233397451766963815348804768678330379806615978689249491923718038042019174247704112041874160492208287659743156481858456592988294728747122907566492452014899157344303246934822500381234992401134288592903972955573448681445340118858697638585119856423125361653496927687708603273441111776330792613955691730566115558801140148127234782830255138726899982659094112054713745682242823595613720502039978429241912769866511688667085583157072287058893092698373312519513740059015225048986287460807405710971915107439685084568114023729444793862942994746283454427230751791908975528739475415152225348864132399519315334285988552482840051783654138765899790451829240748171622986948633350058766792345817002530125366109117192934058934353058541972396064563440149511619285840427495141706109071930333098877077490558922723272950058506216913179388084510899531440685645204425852263472295429889181219728125583679205406503427445301672700588113129136350637747838533075674361202094015291678250722529678043439115780599998362562419034164687873438609979492420546697394883198474325868344160205494060495908101435702290436092662770878649504019564852611842934836799059289971722203438598889851247822464678999325725506196639956194690991082319696760852140205626855113951325344579897360047446049487994816324974070866205823552600649616552668428108441625964439813280392982597090871938344140096258448513298315459362768456857094203045081773403472921357085904361725883352961615023475684806863361367039617632304075823410847056129216487179705185246629949722988498827058912068989797897098914899336930157329006489246199937861214334746548437791323873706601139804369068167589577499945644612639492801771205718230983792083895977470014763313790047101180304189190669750454447731103223001053893231536736100667538165335056526061374713450446061641633174735770450242007803778122448473847946490114905821417836029456870171586129456287851367043111611036062167808655755900253030998910279309076497243825321292975515985211965045678508152763038519368013778141070047068504276458575965145141863234633475585009623090071997951808302259639667004019102144084193574186344452897043522733002446367522595320719714955356172015004505574129833238840701941750989281140798210827625672693716273096896473264047281474667063135288244472840581281248664445927537589931162089378212391554533219633872408410348941552415530158308082489634471478248998036219025902134714543398754627362750015728087239988578298551147970419958053144360735305606134347878395926175185743087276943014730312233369175121929045626016073325269373143738889387128274238923715317569251596322836835119906977142565526594001857106078330103380837455082092305800340451667748881663961753845102079627824242593018354541755566783265982206510085479016968119506579025822140705851611676752289558743082522413815523134797893188662633196297631485303117683806949925560499376766587411021997865897690742114566558734590101344901041498339205655264130363338498978180140938654688614753994225523045257280825518439232635139138927270477849973073132711319917355536287929928772833348954072778099553765573826456267898067625987781306450201995380398417368618799523553770902843341259070681318477386195979449681368109568777293130969605103085657084398717835513948687331901735388768471112093083039423736747974098188197126729750203476307535179433356312062931562876280429692737844348060351571754857184030221916904939433937003218870686296026292066073893419411407796338633542668963825510923026195749356196057457231236062453066191115862416252654853852610906281334303351389478680129109837944806398603794996379726367060206477930012355424541638946942842074865091703972943707669132785260859159423904341765451032023229802454023722769204527566697727965901949896397410761849469839245906072078909706066881359860079139852885117173876576594813133868066235527144286855040709805906269747303646071100848761469423700116680858124228797294216116874762033795226138975223386615919003224468786529978161452054513143598383360505373839548604825678733943768307364168280918962212661655097995664441933140752394001156274635584077681772758342140627845204111051531149031207086104907333155098562054909925363601239913476402998374174775793925322768036575506347986066851975057342127791633110422729886368345567712886065964469188614923599135010614704749910332228915814946904276338054001206936006345019608717363765607655562505670508558431076521933952009414339900875517555928908801505689115261740228742259616873559202218124058921793360431799525201281587259189293593935277026781363515571089445878811007271538296448315369335559373049833427380744139630892125854973862384112916530301127893866888359227881158716852741337594729382667565507069048045560574967536382645306983928776131797649875790162904072565185493645528133693441229338537451069282120923149717765686550620846006730032670078817294699793094551246052889719858885106957926962018835398189620239269711751378831581823585813184048578117988784856632119027551132583994794785217558242877649275221242973597420563666047553903715268795548655894130412606775277969491657848495902078473989803313518634299445538038673034416361433231658993684747185166262496357674477529179768219239121011274205162578957396243033553017912345058988684027349233310413568085596860160514974292405292775422737284033614191276445038513323361576183055241504535740408332927653470250566077760483893477486992566355347067662521920710541016093818358698335527016685507051115798691610403986494727569477818368514939349805236439143300181384248716656420281264182064040415010169391260937332695040558040522861213569313104663818465109072630798922057048449814557744653148115473273865473103314734510486570778528973606413261725875544712967651820080048088105085933561540758350156391692437241148253313830400758636462424830176623022152178291430117510989103821461990400681825677695654997830025488782327728063999034168358109013781251651469580944414121226863089289936703953174462988217387195960334935569313590999119960234660994876046321973632311185359287192777537429538592170277550750469468140717592457771716340595324068699108062370074658189308371006931896190661428635878127829957409073209919811695546912841272547821738206203043933740427911772120120111180667277041323868623033256874268287460031806020139775109467142052860271244785786818435433164541780309184855589482200520639166601719689069558355703466343751078771212503628254005769861628488764135298103575328599188769793239868498243479514276819659078054001064238839482557539584426537817005558329766571044947686841837240062438436899223177965673712004447125755364019171114695419490161549553885498211685207742240913590321551616311672119721729192958151931733880376241840379327248280678780627029878743133161673279892940923157081523888811647862022375720572186824747998725552503605539673930481000969594232011777546949426406429163445635699850830871571141476750773887435652172909597530272556187847241788681722141838967274190830360090314694735824360503914866404331959312512970977681203148393850452151619334637914552566688623720359508347183939105183593400300851855665606488208449375577313023212193852248435557014475733479347523932833892256312705608595014889770752462914958696912558202702325379217482593571865500290192971934386281207209500001542498461761266575167171004822119880343006281255742225937975357968724315214849372351199804925351663510421902631759274122917388976346120388524771146595718293490808341728750814387911482039167195198895205289006819154298364954920737145334607938500873665822218885618646517291061495797706354787385306042562158440481856722085612262577581071603383930695204376634849147541562611735656294676957461550970270226691901974786698901377863289001370463667628993478110297550055428323208503246377093543910079406601662029831240120231017223249649664663140915774095159917637698231509880054884227420309628019489994194824125430499251803968622939392423030821951860694850412530245014904887363754417780446762696652560481290508762216413112483627323146940243012281040963473812491053697744642998817202886946278592007641991761301568984997748339326215992157612159209777481080308953562883959852662310859565577961645959087109860460512164037318278796061614100524588781030606992838614090964544626180657841686921669003076960974301115051902573675263780406455419613248497943800325359138761469855850659938633138367694358859220982039820921273501134474967816371145935423613293521058494266881592212252749941155667785093486085890774053372770647601716882538059302253149763839279323670228254889743159829775247541253888670483128978075849870048058968615930596778978646334730616588022186415222002850620944937293785476524147729607233734759615870617755550003492438191372735525610261268717595843842962895635194045528487751247063399381642233018871665192601123151949125661409644688801760138672374302072098776495111811358277256754980989468292519671174261726960515198004695462206766596595924186639052274644543132805308856627989199260057362945010549540095753202461623767771817542101273702677996986181003567464939322362171092286688274624220045254517840258244091797571215139133680212436441549941689948188611932049725562622810160135735215566345268309547036158226503145457335284717659469916917557694403192464911556751533128033537107116151309949924556789408364833591651498196909129360668899784947363220473917332036353125903232142725873360903015603862378966120213236403570990968229038035144246911490039057181694055938691988110123763699854049321479230176612983968258057408333202864380950415077970991890854900262009942200170902249235023412443096775361039005805477065286046026266616177799577203737527504300887298734238388857407619414976449621413137954693242166901921279973036906682970146731964606720357289956723494728336799689177956967546726237695388556807223953340754281044563562045035006472804488272195498360841587882005728068800674614779981335636722673702636851183618101371467501809902982314191560795960629547241815227309543479572247907708596744408226137548065010886863053445558165702599158833490691435242817084837706449308319524126628143636058195375186066493463084610615877398202488301542091889920308200656371089615067316131468884598131793175342827829365500788620630873793245356868466999304467793921983566272601454489691458575040090080582678711519577532999166558222548771467539017825404335521776348005317368233508708203324433461806295057269737220925360078625838374334987573771464091055590434269779599549198911741712779355021090050877422818551542440855273526121381405165940522288928161389570520825053501613496078917531214922511830881895760553726282399529746153638844512164991141663848508954897627897869406169694584439427454259976382925661988701471882297779229623974330374031888037877426519754999961747165562692790878512145352590607014052054909382489267473502375253171539567291377772964655049321780972737325758733490916959757835211107367411789323584311915439012377039907087422204528516143623183728523984698019490460056748014076409793564769497615097466482364903767721213078791764850286250377950626637516149407819962004418166755154502977809702209974239726368926112184667026841439437996566912096050622599212246858987176814287293614882955967395255473785869335417629596874070295416242135880815325245834225306035284004132993497005718383789473991919889433876441284232788298827956168937983806009222122191221662955463987827301425195362208552772403957568104073540193678166938384592363760052242549671774716794612555629936054772542434422512449463018189324217519924899700517101081424342561937227618836350548422277852508721617113440075171357603669718637357702847854114849968915381735456810914415603458671008044167891496592514567059397601312691423724130827352405123017233377595842132548390250307501792715412460661260844213786206635757490192047164323950622115408947513421286274405852470208097674393062462172323661298233817664912975752010924845615492817320190679304553108990286855077625123795513354707700114774819140100288427706761847045957894374616462153619819880919738216674416732770185054307984166182407886936112742435872669241796668489353775194183958687611038842214720204841518703114611934537534670885873601200369014753005379154141876697615937361579609758503697631512738814072540522355031816299936576395164652294012562903153725033968892790433159973084637565781316294481476284311192742090692980161921238173121944583363381168697207084095237814373855237591036909657528941462627390131857860620178487512746475324942315157430857758071118681256959451771347070356434425755907353206417200251359852315641163127083187075534189868550922237599940583020714104403979263632210940019419862692712145910871894287005417978472701804356334938844693717693476687200983913127293018048446657390351680372098448666181970665026074794047816058462784224579638508368748235191024547796192335556457448839725307546580176008277921807095911406656497909086009866255679585288806031811891005720208123502684119824197732648185715777335365200494562055329738250837051172815846023892737622038498534259990542855227692118899628866442440561597097355793754547825990973188026680687573991322373520768488882182268385936910805405294574427990102463227074710592811235955400898364113069507123115013133698061777859878123020785342670807684973388499349583051114844921350399674807734056859626664856372496244729566450463375835380262806986408243069333857871188573891858181936339627635396923472616692620666439633697994152198825398001585480448435600250934612155105377984365218082379694939105060729811478174809107391397876176044178255172829745129651307240487897631316982101586890878315122813134056625702484724234700121901849486252123523955471150158288087734401371186982200412510386038216133430186623081221419991374236429067483970803349908634053231052730812887916119688194830894362816906851315673548395831773890463705424415629546649021273018914980934929149211516478246688535328421108570795659605254001036560504023050866709515075301727789879271673373523873310937559300352590708646029416092870489858759400463246061358464194264781851923885151239430738840852032524410544496931034399929348674560211500058200814196111092719012052371282857232327550343706876614975730311319098525485078370134910680581625427012625795488816820940574253811400744445662989924486699282096980258361456612729873915737499766498381370631287527336083097356658399303832138301380919182799806480012227285932637780157771491414529791967973484794449170915155248448598495457096874126701293925343778986034761344098360093373800755811129031571101687282106034047102034073092075038982943924799663925925760176203855875790758742786823551994399194747626493816764952478318394926678243699023444208769910043416820070226257142312472956982723160719124842306413456686083392584575428070937219081052090006897877886806984467247556857952897267723046626260229955556962080592648311628730688748663483656337016169859073781678026930288831562289370600597925704833408308222048763460696788718488949395898559083735107625513176270396294377212586439676386958102383629786574777992718049875226275317375433130219589834779026048580125573560113138897344705404878046260086321316225381200040889162559286911997081825775642987556644090967452951964667696455569366039533758221025198233153618172620899455810829287721311420465699642347563276801980699350530225001274185386580864844492720606578927816820799102125803918206266632321863019328478061361971080934449821170422851488895086346449821979863579709885710281324287166289003082702133834979696718144533470850293947263132845840796011723271426617312835242305358750976642036843291682372894827646000293241816525858235869968025334058476216802146973121791396776751118027705805668800210858824421579913726172212223350558832503005714964524187619285168466421849720193055586087261715218289569855518043937342290776223036408581606440510770035167234787999401596155353237492615168488831886529637387181437378430634908676072919563377544901159669724617238058229853898207757489509988534396700569895846801757217925979570384168346382117189440751478240614473467791882121339179888431123695706044358011095729427648227842163967246239244251923152922893482655254130043256520313800925859993963593927087022088436572295896096326842509990395514016131547074082723613654544628029496110965342172631855837128829892247935250724479563085709360867445371138143102837672089041457246791484182726543149981806459112980258015940627017044210087267087669577694392975636472643588543087172395715677491877441952331020399668890292809779221765821610955979274052601971243373081789530439171612898388437959940885737710119597116244870294562993407643809858014706561073388797124749303522887417050358140823464545011126999117776554577632186535519130362327042981403547767623919258385969341511855580760178835856961902587531767253010860565340426108495654274467006055515462123921236215042066025391068149035302731609980947840186479267779490648394697863688863604788569318277159415874917230608915583145148018737156286107556403942682366549819941629081856947066497460683223447462317526594873127631341904461914504904338127422781348967593720665854692453966483159842587000834824611105412525520425379327641146414155657015677071096991645324113226713981792467411146223640077373135919130911070355460458541144977930113564399674480544661098666560919692280007911100151810032098705320331756790837955744287955529181496121356994337509575660207772664105447713265359437548906131158754042840472943825987224770462094240639897723241503163258529218698237090850457853675247790163624015951024452438033281226993066391232927284836408600511356456935683392856364078702269108725257507107676428107295598732908891157234315845777239357390058598926725303210960991463721251956674003548884961402691494173812570195052728420836900747620322288989300202661111918261989609014190645608339467936735093047090936856080887629737317458692037183867414757921841020444321012256974636173997323761974401167999693664068405177694290344776982122077766222220643243606472643665598015237378658458150700752943323307795385254540565309600670504520302945927148721991462401266809468588274263835837020322210830566319903900750215428333482786188713143361288742227228507613695921768690982584999034148824829481563100390457942553371120869753476464553548933430067422245911325362295368033962172507319162245417791177803642967670716439376374434942334689738371971411330636783802439633669649626353767986160688417014209321750973527635738468727701714688568038974496586839285650215276465843151232165858269041341183476826923721030189184786410656678159472420740889446707712892198568324785588488735710174548278243072005117217739937413681702964386170953380203012043962290717184422466009162610169275369064277493723082208505267274919097599039455449893030765028843405781968355912092108132308461266267430481387424951617949593926792708932014590795204751719599364754463004192272767108671071566260276225698007454164739520230849205261359563542577278189889117050148962238095053979180959707122792846227390037519325531253710419789181123351225774751403669643182657768441724930561746598723925309924647616431873231642138342817479591760539308290878698064735421516919875960742284552585288073306673873024889752679470773942144540450266452734652714496734069937399788997313328243158404247082088575313796094723295518889467695307249456390289666127867285016662300962511885310657937982678214257852220912482859257371378827410011263403141387043292596130204224214399055877007248733380438069233594660924359013601510377629936337563496039381452830670889141916523822085255529763182855760633584536851258425136117770049758578128835801282688592167107577693660609440780464247044063528488835373208609345489103576643622368142122024114979801626905573946593857293124434269598854996180242535549292195448222897371852698450624741371525041668164172874531263380991271151187426096292138648441283608482732563878701698797923140474038003887917911382851468247215193916617589370962839416540412897557153320422913984049468748498368860858923095960996910967951140644322254992856093461915408834775306949518598077877489991108078436960509115287884049359428579376945607445765819343125735796125753523118343998289806486678995455121494032075355868414015702221930197374693061683902855126993443790816067518425712441964133588153083795385192851861636621099960851437240799693960332561554362066681357234734189244050605704776120360316932556215747770502225274707651734171442902427120834631067948855912259030698556097740801721267861613773100302501801651252622320543267122567285239579085533781134156754637898775431141111135650767659944396086910458704807918690714985593016740524912775112398872822051674673963092492597115951416027171498598007272545406342945626194038833336916701137137542569074261769885525225482017724312200611452692547322671788551404819856242689943497441011599464119361364048892528780578614270611479187940152697132572753931076750519820984838224765951370249544500839559823020539079856143265635729871633910204759447576326989097590157915628379986039489812647311257335243275400822218870674277505756147046055751901779333647462002840775732074989797660315105260743028458247215257051398031090762021710120898157598905788274822318395235497689485816655003499286585887389421954883773563758657258719813948840644569089175774075905285056802637311367989503872250725143019674747707791891237248804407547445969644842978685825236856280961417381719597700442075728766857717613733333988945331045259133692148495939932263127959928007961715347129164782529994952606336488407395358532801283425786996543004246057202784476226812741337678718000233598969433929675624451444207593200883291930844140555416246442264332587477669582101497962451003949146873131394180704397636378629204012551923746690166618842312364774273288731209946233838337501549087790855669179060460809430963303990121230338855982658179073826666666430082901322600971339837376273117657715322824069772526271650667976791846579450352707328389797488492183589038311073831127847400036767658836922631369765451167360483566822577941778178489854141543093814797356016219086691519520435691446378181457680580027020229192149100019113452952751886833180909614581275260311428479406181212049321166901598942527597618390646322331910041726951079455353013032902612800509146550320429065591249618007371126928875441233535619039182056408757516871098673923979466511500230656488523376872400250855749190295942379517534175125435430453083694750605746325821700682090539376859611432563278627857565074113503228976020752399777450769585483183024461106100225027481234442516601520270549725240356663665741184987069122343410329119866835342936181739068324986943024993352841696806832894059182677735553030402623219065289879790741373705399989356772715903646220182286621051408357916866291827708918862316903503346937892071681184096725830309788487244151873784312580077284340673138816416146960842113617491352144789287545894145651207505388875958305931821687135263185263629360219142762613262664944193291934235838719639376654163830690389612344593417655904127990834054127522909540006295431997878990898189916831582789589601875197686616161147090534703723028819903122022857889628399901215733630558961230462194038458118596405776357771634780441541565757961399162606489622737072035038345355578738420340036633949349736612318479382274841030886623872034109442289533921187483334770622775565564463815517044407810212804314120761980659116583511857552456045226255038519546693381098542887478367657743123922951210004300353568026552132527611100980840419728494136179302484657295351992117743614435065182615396494083879410416966108866786369429977736616670095335904398763868229163157510402283259804129333127013785059874847995707021368899099954706959744463186846398810747232532847621386100746099800280384600352826650861793944668834099471515740872863866921751151723833692391137010477589397006271288254681545019925697585412998960934928521267037708592195749798542557723166077770580452545140201878857163212242770997109427195839185369678828250582986965370397927090421810173492452920816061020979978371659474146980282390082768133115164299251969182827847134276372629247794135472408115936921026717866459318371608515699469947187778493542811068024159077803301922377466998950780736679528509448907528160675281032693460435820905076383485804543103543891538005473085828896844205377874922715791062661343727715818797803423751335215613927516171752342343935332294616463222542322236802392814210057971712499148864064855702980466934189020481872004442453720191905492020482768928969352619735010711283678117993150962368555725102005400572219199160010901613948498540418986348233394396192519216949788183923744962107167612442604576154212665783172815664431918210187336707460869324049222106650837812574255398727546520927942329243509150362876604321579631431944751838955924411522386135778339043538612915603897470876780356607534926603095167445879519003781976358680015820688699630437802870743073183947474416885570127848870977255232184341811182379528024108681861241582497045189532372321003002696418096911086290618900227969464487017852887782471655026440421274299380011555833361412675650945833300910572506944324046433390960788045272951042241647063271306320246804860060755594511979997605887154169668154597678013483443238878329259753375233005737324961593409583830844012022569345068324624587698597032782095196128053631373854112304455574021118816657183290001300011126267176157283029063351348343540273973068199371016839566126142505104718339628922476581595033791708963279742043650815940965888494195960232211525307763674868946099551529120507525139406153500748642135858710973764383158966345630891082622653612808848606083630465285275645989874542305006852435275673474361653460046292797047065329883403421446407361241010230531860147710886791882489890745592391998668084995213758906460357185981872528061264033940305414681881613406403059033009329595918468443214385737623124023935458908288309596929250567164838229967830978808824418035472495844778784011423353478417909488666836963866407133156526755531713859483315272060679376046086641082388101341209577186181606947160836877113619027598638441767118419665025721925944413810661960626847454213590044847151472890021852281625248615858028706666715349698162079728659169330025771821074517690522040560645211498883587730605661515730862987810697019618300521535404755017441805099307351657734036999063501976952066044477357537465506869230757292353462972866955922504847459817258141801549176927690517807085976165753156400938714382763525642535885056782039833807654105711899372731591953864156145516105435219122269929587203106905306317954207260232161263201477178748519108409516041954134815773245027456964104071247370371694152154523165628858907946864140661457774369573787104775872039820987905747119631457915742102068447632216245879006092469006303195448574424447757204243496702500052981039967211461941087768906197221250834640722096240535219847042679793426710213005168854352112891383695176247586710364256547136472915059299119079549422709181913106113374977442785230369679123816677550115566336941223893182480743853867412514485212848560101151963838169634658546613706155902906704055014073904703876497037073929683355002078265622033405475242995312025420829229139586978855358927151407171386969725186940598671295820392787699647794458039271442990869287390472377831826196028826305383032655966084839421707394366203303150166851042571734909488724672151633264185088603099508734159810193733155085641884190087287731117104775023231139398243324176767187211537391631116255899588537685236400963819272378263823569410561175442482678998604793788603772754034114842359252124001271686676216177680631590490113789305253454186852404137092762667061290328432427470092934523780320262095140703063154022045753085699734749188384637638636273126441457837940331251275033537986996123359090991348991471636784366276735636807020698998119589611619274760851766296815823879206194879720392396615566620339148531355698418235453554633192327889182869757562024563482609074485858941538072005078693469529588923445558132576501012408789557387945301742599353273591427291519527716877628872785111220855867278583742198270694297902883650295558649944540676455125322872309180333642688035841076352883824361711184545991189106470698140489614275148749955698605043033846930265013559815892707017128801494462704446115352826644458732433660407447831718766194487156446372211922350619152938630729402437401374310238961160171229363916093718096115883694289743441372278265403093382844749104805388181236549080321460459323854139154919538675829674976513474769130714199807730001501388647263359135816995653804285765848047488933599943229059681953811634641980073357142778332855962650558003142835014554750665055868669979522980455708367155509085013038173660709889293369408283092359823021515432713018120066742430303923337888412879721433847886468375107935142599066238927034478717017791879397825985060052834481529377368277052578395611710686491314654594709909356100346350419359233488840165324743927996840213784966383699305316120409609194114564259686635319882880759289790330270741144938671791584355340549788860485756958956301159266794126640696269513723428395375931203293122024153143959440000120193099323247721197594237997865778971772397365833691161249304687801206571999370379070687252434802058399734253231898098832343629510094136329267044722165496788935839711722203472195315078907212490963830895080501927464671292164034174350462817072810075900313287221856203188375711152165897540446421340518629617477795044906561793221890213682439790308911879154773077167751061490808320713277386886122912314094216337582907371246890377763127182351562102968536958951648233722538905594220504503944056026193801830850861880828094264555862947675047916363448552245753767688599026686400380735856502505423587000691205736336110956760274402819832646492828153512016457020080196809682956599202197503653477019690392883486954211190869212697324149817829962914903909250123564587782930250633781155916144341049086322890317214826036027887561037563674588486456018205278997779400151180715893171641421380606727029361066763161820503409069242234697155189557178114321349921386823443417286095286622780978733938670040835213456053543303915041097692829685216368154226887498208089817439244014378730963935817548090881159761513211806622543741923121803399345000078558850184842645472009323254860706496159793164526680554723789304879882148937073979232991104277347053812694769940533553765463664505634131230932157548880912488329496806706049013625094167330925815067024450538630018007574114438974001912455140934243650654660663417318147510350368142490803429476613196802757076206650634821153285799609475263194413411680327099387647255494265961763820745872329966619566580625174458309416411954518038684976333408409619161577825847356105261190609458369242184036950357354118324338226674265699846099974111083628879834979061536394388327774430770986013768115586555954279710951713912091296807154929567075744031301338215040491700373839576064025376387880919935415305061569278006965364832255974662508474755483973433113650725772089147068144564189369895919635670466649907793884837917709936373993464338241809059873206791682296455895842945536012630536545697429770680861972212417867670322879614348516017451291345151331417654035476179919371830994421203305849647875886318224265522950261114633169810455936326234090330502571030845188889995566787884314322800261004558959281515798230218491933679831330590631261010083628416181728515003454977156729713713974134553306487747248353429201942534948227533771934109783495348376183119284716399286918795732686187274686968977528128676977527129595740810536295929003317590906784136767206347575226705955991982812843408076713282084691355151050775283154186001931378170176290880205824131164870876185083437641095324852871144416125412625814409444311767001924154267199990985875046282057939393285215106193676755269267951352691706350627856000219977511650748795036506409104051968820821454418777367584905528045938753862266469696818874832538594082949168653609136224665436572971774196189288313116937360109702022239117132583243645571951779618669252486419068720519461162018858535335362997601950276349198838449461860783433060219882383576001462995661214938816789708320765268984068754801929544583697384501490882460599152729669439395287777934583322499544190369834500656783412965086547762391548761009607448364336204339925463677798706351503270938537923771435200506231437177338600973824885662488577410969406482297306131471383229167472083984780872376738292498269602552264307456591125720358878191170732317477587170253667912871425420062179272863099871389610137956165907718350862168252594403166262364818119824377582339638723901629183474493383384018405297118207369298285667072577182117696115880755075138445394487539359806587369927375590010385629937649290870666311350349188164593953101031729682196209364783259648482151017467203297873161957891743094169368916924430099567077901957339773337857594061066191018959093753654482338592703186869719237179789787977163183381523731526261241636791587763437477583836036677520389453037387417065889489600630210445301446257635175962940662339745476728846366508289754391200507536962285153413474997997694491970071007163721989652021120016673810107233419392931277585469734339968036581421402112845941858396427253753398710073403287673644920833881557520887692260191564333887820445405602482831189078305894265098608574368142583657987308459677086057942174297700245646833288767177459771778327850597629208209543179095067888529883189396954074464345790231562227049933644655136486613109446789728195864318505723680551303936121287115077383851994456520419781738634065478296919716834025997803822788380319567123763488801279169258493280488527789375299451352098633025120006124677375574416489902549105779719981248344529141429267218739700959490305140928095587818103291028629314430928170095662660879586219399486174570809973151175567612402817601259341593131489002761368727647395081739489403831372550625002187228863765771986797130655951006581515603948098534910562812680015991753903730048563343601553341144029138415392016676516724375912227877132709417613779798371715804598680788489376542781573654663026039775341232445135072347741845385498318665396238479112631780274207258234761231837096055961687677080816685134925992371490200744044024313731785784606723959844987026031368431590364920724555509441728237805207089316737287094426130920805110336728454549838608957084623385804777315824387390678704164922566957958059979716472899634511886907568765426052715812833321304414929042616395102429261815896094443914308800506518966789568270012270290025082904061991635413755696376658234491713080492080799287538161199031806314645831172914585611610367212397795416487830324938249164340733525528603954690884231483844052278669606971436678408349040030866761002273451135688909292636054333042759080367400552421710138904610790622346140008365221594412111830100537164713688650352283058791834450775188513375456152662706060898951952092187867337572756703893310242653998439552014773267418161449999574975789847505385522345913162971478108863092425263157614842140630118994975090312175381424025856563834122906223572580111662470488757484293241389368798356486188530352347973419562512206634913994059936885994097406257855078234401054141566653461036757988945723015705819186128655330173756592925330692741963244037469791172695072941246299676291137223211953526252424452938664774914100098709669024276979196213665886504458371365079246165401025546481554978324332006327846344726711012623430062118227247695712783042653035233101967053739899309104062393948703105784893142357956372323696054343119981698736795432991405046356745920332015633856933393418784321785843462034217865518188832275845019580343474924908218776625442695360330388642058435126142100491004132080031114013282267658639570732903044088431509701229205962964844115501434159174577558643517059140436075064134290943550398598440778600161782491804614786106219441263087048942818694932094004868771259170028389264264574166198810360466073250950845704043793051301315422250522575545618266838346710356620937494001594186178719147422793923804805699817755312792630575607489490098426082041807905745653499123553161273464559309112030836756314380110478008163497863939591825557975499638692302340697547648256510624116671702502410587599014648940944667500094554966667303487866758671720948972921587498201755586211003464450818672355608307048078224844354565328129360800284284811077691876623111735378620888825611705104904875853434784068562804252041840693911590221280605272649233811176049513166966716299168078783702543392750246845427152984939675903345850241102817308402905156433520902558929131526315642370650461126034311663266615530204004536508439823163067073703081184628996698604871817707491645851606804689366628348201141934506591217140897155260773235788061527899979612603452827396476230578451647604700861858486977076724204243875937964129370722927261451001474477160298540197271884322032734935404085126887111154403311048286813615212412788578097265597472013630575695297823551838357032095525805844030484787304648817533923115339846209475013115987713396797425662400876874421584669881787271083202578212228856055618768828891968659732770734804834985104846100041823474988067515781385421605310448258467273057551657460288012404969419024268382690037227009585050823310001879477460247109534743414664279874690213260272202443609080324910531571820345534456328890827290893916774504817022243564360021587151880712706763514586228889062582780174301088239496220196766745336882880069871828405643084442170807468827335390216875663892317510473437890356737353049431002106396555587036348622215644269545825136213740076034145785199943986743386719610487326005755391760746666083101208899540214232513213944236699421643335678026962151393972797041094621020212671700000856035811893104564014612903498601148260807079521150911436305114771047632418497388124874261388880376961589533747170714366691407422382944003127454348444762525621580961080950530763080840390488022150688084510910045508663928520658468933259737609042587236450895736280427139778417639508138402671915593626772452208827991498646034930254463486789836539728854721168487424833072135917236726267393238847305347573825267870160486569759094046991254498435813876960183548144464684857611685320092266792237591848406504968580319137170971238810113489146979204422869470792906715164445579052063376470888381942913216945137479760244522344746801515248021438081932410565827801090312246055902894071865448078561885422062520457461743010402064851123031463504379159213007920550285567036068210913894677948975821749376711147833548277894356671193395017325938823541159396558506629391733009701252361935198441443131520017055347024384827373536555582702056524073729006734117629643787374930455926010484588892439666651164973460186444469900843112449367857911695608316900398742224418943100045386593938702567542475753778933822797782049872747842245129434713692147731139220429591204501983681296539483989463970922487093308772215743378628302637428997811070220993474556665413032098004451209600789336375362526081227043563161401988094376946852088836798019559707549922882221954850221477524739496273258729505340347785679706062557431290607628069693223747814757109319823628501045979891515239966001842730795050083660524966312726632971495137512154873927131975616827076431003503490525789025496548310257694184872252273179752963124211895791053959324268630647034732756759924388783185296659892752002888725931737266095002176398856530644363702127054598645025075520632628038516535990702179248177187417829240843115071088488030607631934231205094124005837687888690812994400680281895970022523466900975728195408887728879003396920139669466195507594742244734683522238482595321159367143213505598678446086759719750109440103240561408273971431059324865268047310838655770176525885660031082112733264658053549434505576045815704191057970024444089903327778549463081508899517029919450352028432263327611053596856065073992538967688305462705386296236449016507372946872627904486950532155552913608140194566474202678678338559919481270413827690526915944982632150592837188730616209089085759733806954531351550005029808719665086810917564814928998561260637453526068629629746963803694954791312270681879288473569710633969765976920227562093431535383176522386365075431461478530171785695387705159863184143093034487307090273601755726992223263498248035674354321244635865553006226088005416987173466046026346670252226222255285747152134800092572656554670858126921847615292738006785247632885413954769858333889913751221659042702627236392266593761818831313837841505817394254308029748255184831095303350765430483554370517301625552799001109932612403711107660246904391628792044137642313338459210390913253008251308684137224978207691265636508597159965964488971443561244356432011438952567464137314808045088324106600013311710821284852874683019504646270782579833789823385180363170666758835573036032620954033935203515195828692180699467523528553078452814200131894130462315398118154979313198308919391800449114407116072063126401475934045166603291525401357099969970371285879435806950740818594078938951387240354077780891746837933995000878928510960480495396210401398025731149488652120490013720240885006042540705884800181375843156888131628655101236192748877638938567016501420025396753414161931790824873941597143710758078080461343310266514337215318368973932284944196606588399906773178257720207513029890898404847567115429773709052247480270270108519421387395452532474983761440436258204070463608231524565112117624688423198025852089354285113149160219600188319151290363711770571561979728124973334129100275192684973765745368162537935302894879095092703012336876069592396723791524619958288815148847446578214701324301146627534041498969110827216707362509809758293985589496663246144139401452466927577553301086333922212257498845804060593189048774113052733015797374683692121885818850598383672579360769079335813481103161845987430484027211472194121985553441804528907861470818952260230688933486304509319564745667167151884886894284138391716550333777836393737978260570524386626121112662272520483564174688811418444347892225300781596534199314868047682909429182237020397676689845068331279937498054980223226706479802180960826420010820946039781472555937296103933256598114161093373724472517357360098590447452662861429046956687736947740726882864113028968605697115739470536933388601738489221042980524268024343780303120070715914185066571955378884869381499762813374556139262424183206899681096504567479378438604201323197287189488230216839119028796641468379712304482103363065217882059516359951148729411969451915167257244325802765210539547569792884241539403679540892666044334412476043224567649398786097489951148357592956363410705553392704513762032277380992691231705244532203179268364481608787058075700592891880437997014667166053375867757628369581324814422456255882466006645107894992863643250495352934535790288169054925769127746888523842798222524431547283404650833012434769384334946981357258965061607991507765916731444466625674964218113006729176224648931548359386082394552996690992846534331735600309432582715995084752337891056753079478810925797232665354912341367362205348110429263462549675623173005508201962339639241448403104219430765936555443679212623725946635818502534706823596346995137891597448478944994248149944597258736248235169216568947589904310809628920303073126027043524291422354170242901258263621046876447639953817283449171240309640497408939803425996032791776682180594774757147716589416379829435183394996940010005607112075613969610745332780599809429850707305211702593010792536968527540026254497926115432568600079743099568350972574571330703431753082873424583120774657075241667714969761415752958579840214668561816057494493973061678514061213088149574360342563758459824774754728417380685531228320802879344705024399029383763299303979155574205097783722232267012269501282931474050531238078619778328462964041040948659586075290319537347474408658290041915560674572166679321145754106790508327112525190930086199686275421564042574591851313596991192798812768606700731523541498930912248604769026615247855417867457246704239184042299589584549125559061107174969594470665005233713876144403968703373570858026211080585658996062311585796606692918959227118143700770075703387888062924281004593637303463877644947170702400444039753901494804335189372276803466636207268937373227154235196392780339238643641725880143096204196227033947423501587099434259240202074273807858852233736207245633044718387191586170862472557007597270053251238618061354863275449442401330678125423007876892216819082064267034573051008826586629996791754210478835424364823683128444908303100403798859147292050533962493885020269105239126454256825878632735719092780349890783806184301857713878684027797281375801156153332320924673320577466156362646217872965642436103497541908044513141657613332178055836626380892841519001409459171518506546149508272470718911143255837083911696839414139487566293861505483125640389671741704792322430762925798850948471785182077251245485440898210851533151812803787221280361912595952140619885924226356687723664931709238359394723407963818835114935114013180969429589958354255947187143127102959960368273867666064234089726410651903479595492573544326177386387481783456556880298851016805620340776015983041713464188872146261689190944851627986075307209931956254833890221142811456491949242896477322429928098353204375512518624803317479580322143677328905293786471278659163058781166477181297439510671212030757441652582489650173498015110661105390646243768998211876838644079938874564255375736522287416831142043398668822138391167329770425849865954286337858328653798294441689741509880370685277508765669833953979234718563908011174423859332953180929808474192818668782214941345013742648840645201574814502180110437078546729244130136327020575642282924280662137285085371088190799829398223230022543110512920584815888151168999029625046198734800802093390371032455293453628754060392035408363000201716218585151302307428745485491668032338569137771402258341551197269641553949394449097777173857242737290563031395040614698957077098488816024607857050689211581998898036585313019557736072877585631190970802425873117183158134972005347986148176366582013901661717367484524118690822953727995869280846774745748772833197979684715197109214337191697680588834387891984617544245184159512949524448446167554143948730477524196808578537283526507925017693549505619918941824656460012630503114127621430835239380602003359960029924382067496223106450527860798143896560287642666832374302877993137722632052632914978773363477153321180220179912164732089404509734556135408749925717146420390599950358222151642531757384970972057225271243593955669478763413313349291206131669903291234742004091094663112800034620805101703794852704202961288075627884454285700467220885904338773636405670695764791075884431470827939223365722339721867484896239176274546235271312669502212059618763504852373706080100742696310218760407815592409241623622438293234552117979543119710066154681934572423415288233260581934323157405106958591039546788354337917889923789196515496265081172026872876168273598218179009564050810310212972834363401822204269494785092131518965891209572881892384515133541331793266381144220655120597899807245636491210308384084999728868573803001007131538077507342608487864676039851979597812133143276327206073313618186121885971327561710688011909727102854804086452630241477296243358179636182161864355113517106167839083780266809450095480020413395282601379410423566011218116209327699945597433025353316134895266226517049952141524799171533287429575025168101705600073179834806222833356630310143424432578102050327826472845791276805897465181040149823420200562039040863608827661271652793288279013245561646634425163989819424085539709542910357732131622562884294375376840645080041887521838351324589438362860082895227206252718491766500001963642715902289466695912123837516970252245259265166034523611575512345030807498707745809014829780945130717607880355232961203994993096366419673695274374789492642472704354784875584768439261044441668037755261299155181320870030776492458378280763116499051536168100183118832699206809110072713760226360537773255956753510571207491788879400410482791961824805557999098069816612429690598034920742589804019895330212133446592961668966749766157778215843197498092196243491187773444659592010468895164006909802714088621279074129205358726754249177018641275187846437798190588125159521410595624400655286438072297947184223506276350137077671179775706699396303909379334709363139357037431351699319643226504009371181091111721349454102071694281872191627624766766505993187956350930460054183255471459707299534873991194942050135267818709738793844219166003088932649970025955374268257505984084690621222251926633064078186942534296448304286641066142305989333266528093705291471828576546682081630738204392828251587792271211502694742342566525822676660376984473513105233742282137805542832379386073711587028489951272849818362127499114415128696647959937373852443291542380320479753736663696908059777753094264955898046916285787257030916545432701733882566431976113473689288062136648259773367669832967950785506630218542061538771035432449662323622326854015771985136779407077917185338467697790690901672715460559901290908322450487315592598737328293479250012062522621231823402741961108459022927450587220319575214141017125003850709472025066168924145422404934628880514629116976638143460712924327903547323337870276491749854833154019133452615803217598481787254297692768368259036901693491449060604606311576623702468725818446267783495109119673040219100921630443018406190866360169785008647379850808092887568851627988565125400688255476272869524752043600473716969019250047026482939796828811302726017969199143962748609127730520048420012789675094608282939406735108270696199018369743358140476381995340793218127504265846151685910777687132392529303119848334213524855413263124813258619545632316089393853534707679879339572828278110855795074182033735899247417931390094749635302767195555608443035228839319127285607485933181050103668674181959723052736627920371466549680306961783237401904075301633402863681796814090479296086072934212258095665083795278687266464779998184108566769783137285223226770355767500215723980242477684188376773126231289690387608296981998414438311908783796177603128022624234255921112914844072403173970847992412739394000805731629189510240295478030746561638194210924367362727385669945630807667758968365546399200321755085160614015400531843458109218658831225989090955532699399559795597084489968205804102063640564409052932396079712723005078072363195368348611727386361184023324518088417850379729783722921744519297538168534634890955949349376924130756928628126896005894849583283986381346595145409967848020504906270720929029090360863663573514373355266904599605162627997010062616721078968712484399606131149626797154312180595464943511514898636757465485626189369908232267289296546328567388318341226971930749657526162743535692416350886580814498681331774245054718983375792691552894937605699180163563002880141463731005973744326098518939616999182862943040673486922469064403693971992744291891899183326434253653865675070883679543311430218938552646276500339425704841830536402180628392677302253039958575539234509108124192855808523067441893297595391164618381782583590682145737831628398103640528596891223769334358276323020326211535230594550880793425591098007412430006518772803784360007237345487694379091441721534465837273080975666161290682211215881201553982692887070601107494776876152465760542825625351918323526066460327179562294324018140703317269637579377694134109331149932855323225567138926981154847143377827076147257394982936736300992859324472745754169996137529887990109685102070692846017322828833275602378969571097571115382914619956556842901118385761683055927164996715078362514429088950984480866240909060275222780800797888661033557185334044235365344023588202191347891057610961612512404322965025490962280776262080708458517906891744011423171161719426264750244339630300083987714496584061476940554427056071829189009317845862841598022655835511656459645872748567585605740704576672918178912886470290486165425742651144189740182836927902847282040985614603272898983979241588355135070220532382669379662121022408050113275713579360843891899282032317828039735020461905151963487713467682083819712026290449380290619244312937730866505017007028538188933348402580809432710568297491824894248757720484882834331455666390692374781102542504231728695103485088568689073803266619237320961430073537725593574784751585226678887180979976489472302574264099455925670435296900950686145502617498233648434241546660786754972973951857888948921035119133682198951449604020481632939414635710307221675950752037411296841624500106812044723438488727719730566848532743264422149449709445494252959994056527154451083750229572471783802544097651578514256150549509394119667027276524116983662677195424164910341668549259068261697153562760360541654521161776991469319691706237919886456476199875198718398226884379960451326084233814847781678889757931137727202264448581330961929519311552598437051640303009422344877400147862990753827048511951207295810118188067095381886241496027327531972476102569502182885427642514603492746466652151580707941122491401991795892659207969284512098752047990899027639048566841960056596862958486855666672091906150654805668289658119659989562932782826736320749764681884057296233720051051438758382129978577810216138817172068596311259874515469464857435805123556118131208610972507327219308913339254420309589893897616661691981464793469252703926543461727980747333081400625207252244602548865971470702944809916070495474809472624536858657583136552363184846502337333676470822018098787495175479501952444174151547978607481707285660936896652272986867511226042384327546850088481488202956454393982064986011821628454977975368051749549329258989363010454684834559269608921310704385430228062763880688408783256316487322931434183816311408476104947772149362039432725619535629094050319825489448803383594395057545094657769194232585854448070149830648302781137172783780555965828939208147374075986511621342958700464750588680930187749119291758874403309560372229346561583945354121984065654573045464611705820947117866556140025109187829540586669884337050296241808553934202043597977424376285292604178241697028396997108212569699340304450993685831364957309279033408181129037706574333155687196914587859710381831234749948891575552796897460803484209542579420492960400265195002893195663042172220185385288096028046528436874785378427317535507582263984062656230502945148693287035503324406502773062522485898762341472172297371240918865904282339728790029916193401085157252294862946505049887215102584568228033551710279557874629116166492058149558651000057409529345049510545462156474906814313565807029113868538936627372002353877090294357995468505786530311693378509695627722899569014510256037285742281904460741338553454815787082874919571450907894337661247984450367574667119224750147679965891515801118276111341822658703403907378541049268028909507202703000127540045362399265936154972556318636956601592337581829709122848432298750458364985939538263368997661804792851772609873290058611951266067330225202261146079194145078782243629659174809218029616361132373081587743481796702557161554151156631366771766355544526905467227224010294106601492834518109480713278942789526563144801469316869245222549964921740637177205196064718257527184269678317413019056085267473259282738864282407509382117012940169477478844948204337354771353758591871857555548297650717559934878595001361239251888104531851154097338889258393532844901005476772893797125236752870773257099367965824635574601218639903868018106943243443583955094606101071575030476490324568416874456690913804510869433728106961049298577343527896629567472041738647125300525503449962856088287613556317411880713557245248575548861670020085018774187438963513201872471389307419164266659577980221575765960747613500244947829306559500473111370126663037997896463629500500505708673294873975096388566816344801938552907273495472381686189690104350216398313121525664039925688969759114757050951480636022515641600021089463201576436538754383982343418811582463831303044692347124626240267028363367649268503224442490714131388511428127532700266769728579875376738134649381343600864525378133793250469473997798815290671646195573256147563653934103683920860324968919943062629693670286403646246832740920892598115736973913129221364717681923157064860272186007578208124436544092258663031556553333137604885150551868258222843165121912194816109272558693422158137572423047504764855644439897072886974807572507968712301385054077282749832706241576238677303885292964938546732131915332413033007506965793421457782362373091555906322889220866470616710820406601320132500893376471877105552015692535792501088359945399813388229253843861337118009770126677224815239550365738861108342448761162586777909750454560684261209465682844253202463505566398884418263638965151724365222921045790679433187593570652385715248630381231265198092646109130508226240183990863015437350862598543508733083584983358712369571503616188011957375138993645703768334331309866994059152524269667676633537297559614647934465649994876040689331898770553166558536391799570236942465300829187486783656247034847919785632346036495890320529845474824541042848918868866105120708430943880586012755087280740011778022860197823258925453228980230876554105220102080632502321235392703119688495577426395951807173376562396479474380977673904658085002078359671112111483441749115320165138166779211462851224370994332666476626054342415897030088371246331693926422910036643212906413893880706349200066152581495985384389278759880014814916805723655456820632851101277804010063658993727616749580790418988937566966781856125868846526926951971812811708445934282965216946357103503602525111419279606698206655796667729309031783030308854507690040079614827045675063789443478404687914063884031333392028613015741627806785863451702881287442079085543669083681417838020028158077488203531264783674389545352056529305387607197832652582938222807372080286024213646247018727675445480115955435760995118955952532878146598947029817479312349735223764775962457153964233688443170244048302580196310972709675869101920592911326153706496745813967057889803364482522905022838279796180401301357612405642958284348667618947936865059352451224785049698812443260099712420754567100972517554009087341827318994408330505479422048312302308520032757712743758549437164998403747413992096829943810740154000486995153725450729089105589528212477567301343119699969126206461650660200465603638659623174315211507149568633330655764460528111755326592296828145019407369667165251590736477336644111502289613239854542420449734760983798633100803269996662944015145982038360049033538099276657848128346478569121300683622861970907135461832010856336845508050534767068107108173223893119727334295088820068094974549019927726754198985497059798279838733945225189479656585789306875112178279372543389710275001702378430354554997615342433672676951375683397104105473433417214158138322243291705240141349296393292424650034672240076946651358217216017286804238615203010535755346350662541809632453817433889249517538840942178027932291570558797463902354590151056899897448420570690153255176065080864803801450707754496060578753195045551606804234841648866301732163509506169244148952770543243355264831670179919955374148645778510666972972569761497657571619939566043848849592187624148187114915812935845126575861330018320356746347893880698130219381910340938006817553363414145644593686502626471110328493804488281521121707317105283351436286251213671683713258001161787591532000866933677300927046171809727076401959222409142935423344012037843839217102903049179503994609889624103831584743037307234887085938052488486604046826388063029884331164401682267865524334016171343480690151582051850118986548967284444575049830691504267243559831565152283800741843833855748582164821134083473239439375983369458313666581968144443037514777124418490389365131439185639448255359257463897319945053751531622758733615219719148344613856250042005799692421308284214577629445918322885761171855256100662121634976943022383380815971622638927789981888031686265679217998985866292682351558056012459633067215458007186254820573276305251534197413384953308107391055841125162078340296525903637542560590165794168698505757416068154014574494175538803572117500486610757169719637061877038107158389740970987041086414564859510171036511647367152937230377788647533603345516694500042820910252826391952680024333672771900089594419487180562795857756747528085528577734512464676071223730417374584870432226195813456691319044472768418592942266098833977417617348155975385927500650599089599068660238028015560145817930473941626334572507908690126046052558729134655332434508961302862091080861288864310331355929820621268144346901518540502248965364414260146595054334031702778456998665457627862520256375158609440039640575635017337465405185960956022454129631376512872830421118102639390894862302017940417701631582026639801751968270286739270606317844721557832426280136189819050208634419780530829597483781954319048229484744314012426811984654943160410276115552678989004295600599177103535331807951043064433222558912616379975083515092180475691135405703593726409951709606535828841283000829717748933019616644527998267434103963500039298956123631772947736018169544291404944483304730100310815984034256783111449943965519482439308160987009974775070963858231524871299743290762328586162483934818199322782247254774890167742395268570263880911815650964424219895183334379953035082272303654838638156642153701464889852256724302917821407347366690158557975047746573001677674177556531793865243438750470275652240525909536537254685781893376411106275468128638342765990826956981655567882594119812998002182786947901422705701260896434355626717612199866288219472205078434731629694674287656673336509875566245306117337710722564947004000812677953358972660602529119534481593822577024091709738670104768241290839394242124301468592670890795675288037934764734422847239337705889046564753091412912077941869738427695383749975581825207295001353161451594265304905945057509000504066152785839088457254701733807496169586299890664290204985724134046498173063927765420342722491778695164667377171041877923407356141222893451799663793804521740798826441660636018191502492510722408704685750665639584540917335712042189616414929673130682069057135020389346946329549001822957265666186068898568710467782253868535451367403128943039903092212108728132822903829852891205517297450718889628422049658361730452684230900473786977433823156814160814572824036159173469015372931964081433409292750311795288569559236306846188280923066360690968874208624637374502815299343309872362860046632979818405417961342742182795289884315940466710852695335773531852908200337565431664578274682114011093929397402063829124420347022671157088746327535953663180659883876518236488843761230619125268943353697865926380866515745778713117788588988491723136719824118799847097950401143839888632025322397749700335346045216122059135522373090349631533903256471012960728129701815988101242245441672098306153318091166310130377445957077202763436614093722108815022526824701789014344898050090348386178000785019635590108273161960110013597071117317976736271541957629185543963634286333076965181814416133655697705506937517777689487883293215110934864192590840536362830515737681441338695201319085409835590724322110324210385643623224713717912670633260056566679048197666598942010461828256452684857980677179481519568557656908745380539337066658022050624923477698107991493051480207822458808524147396274542773624802593777292338468130226744486367655168796820330396957778963472203947588771611816450123292378108060707581130150807207521302770599205901476158729049128470018593291073171970775460879366628415940299398871683228548736595605433283030894301389019279065736677177017513544374132913610291384930221046924650071763534793025930138875632547074583996247963262946920414658124029304415731005780600382314555461859663022358624215791561942461098319403397964253748382379918129707965387435378833036039836992688963176788134153023418162228843192033615567423272695763895880124106675896025744135514552419061988611427704299025625009173095330828527264198057377403921653201557970532129761698888536804974592585821783738339833414405151186751093149886840738965909705900649843623007734443622400284867069489452898557557214282331146708167309038784408078101086059866266882061460397782676558568582061591388032733628785295552723480235925033750910410645069947307872139908468874535907493215904059925511760457433869280901669102395478265894993217006490713076425818052208948329284732483095330964579045215141170240026120777989536538880815599684736677374606252040921785161601466233818118867529682386096228050373596182370712429218273250313782698024603067108867353999251668819901941510928208429430717529269377983724406360060055348665555018380045411876810700373560060480896155654287706705730295202283386706433709307748875394603776416023688335557401222134575201984392036425213576178377905631096493226517982789954095967849120998492922316506402061981750998128255412102607906290455332040957877438614008214288640962536706192942166683931948355097276276546012588905740876968946347506180400612805249309840724255517557732343161800806031937510918683422151435867643274502090755786509922948511818658257309692290628673266233207258289982394955966957682317604761633623275848354360992067537885347707642598834263736572513766565852803731875235435053787630926595283975206673622410291322731711374811752197078793241659847046278602509405638192614343698243274799608469270327443777518650184639196548399673256565695838809877097419642543272302612525227974709905218156287231753149757089402595256011877352157025064487352578498183058020025329767406141073836213597179109691025266274462632856647263168791483139688459202062896152133349288166001115085576400448057602442246239369457961288735718109474870629561354506549729429635892219273321964325490266205288131060610376644101608263185546357911372808016361000829315652988089313429680133983813656978969673646624265324030178272529624809792160443205751224123586348690876097074756821295987105238791643232236880205167824910144112911113208335842158434023226534180700630182126406157758457309270436266148535275265163967396395795774251622686327555464252675949585631224002812428705521911854403326182688066555849555414899352400906689858646876788059068668231297894602247241941284539014948237887489222559418883336775392046312144250064408321835350786306883860473989176032279234817873890990998800953330998689286832310134773757873267996059995742815056607544786132985271739465458246532749107249038344959512792232973925428764996067253536371267073559472042099215558252811249629849079224548138950671764573938431453397098454864663755861168327269395757818670276370520444538532456487451064821910798656817667500978147367442720226986207573577952491721442267089721570385319152302297709603366739674456404624889649276548016096174953700099102248861956880493564609653992531910200352081379365826348467788917666790965447281544011552212298622903756073094777732544868323493952697709558512945516346723869070351173714616648004583211076459468651075836996568839634483336114353454877364719917190272964542091260028618212016607678175860460765750677788364973678589923106783137443240142451792435201119409275906317184070055863271985182479847613828752532468607506930595003570882733059828214119089338093302472559267343852039339998973596310222209684313937160282054979264983312311394498943383447499288581492877260214572328762280827891129564444902942312075249437747124968268213089639529965637842775710307402264176007633884548333973438684816693894534498040449346184405449672900809009903105728061571181731549969329058021251866599036750918092930684508375938113869672576259805652257510478986867074162319474954973909294709787868958774496326413260015063062136061739025423156035574158532958424113832099322789954694899175693373541069943903491860957485588270531068609586283389485335256444618967891428274586118826563161931845325106465897338945931569514955764884278670902952523113422992741979701124321682384509569142971049277683099925583225513463312010685869640037508317812788913156178316046473370111297826885612725638163307308565913737546740738828201423068572321000165744714965304319524770886394920246401958746465365657095775943108104802103064679441169451329525539857349080971844806482570058137995693340073350856942184824112383327069513497046961698825706954123282042878826415854795721652133431017570360779877805250623596044569689489343030373235364630950767601046960916378291400073053912158348796745571948556476907279741519088568067144232936222851709845639092324342376411093638882537893130761769484959505352067275407398004615066490564181340824863737593928216073727315217953265136151760997557930745174949366069640634274518873397680054385826323950321949133404107002776655086784046023833002077196804336080548247468207971817008907165905172773141943369529721313914103110094099667203078495202411244197489392246902750747843522462033377802921250204347662000331032526228276871573737442644744057054878023100498285947013058423974733801636257726200901848920968153573754219397907110448435184637697529072451545548921329848427922367583890909307019950517367542109242386065399273124962042523335148480395856322883578164365889790002848171730918575735972154665602819309359505089926904546737492268791594307058956962653270492173856701566779498595203096446183442563300550861793501525207554943575729180460246622826355135320534440375780652115210803449881285498146105883189201242348449514401359759138921035075806791826917769198610329120071079165053900684078874440940539521482987823645091444983962172260387335024593255252156597748968146077621045331710001394252083689561756610862806278475376530776120740318100949653726225893407397671267601105026348018854238692394551685121807373519871117382943620228229755751817285214824091784001877793918341409963007239385561447134186820612808765619645836330129073178758129048780191925423888066579763079614753431784540050914748822766706264522620572863703411030274350445638367571887538427501754940482946234689475326181500972869252184121807660878982272404398497105216426523027661387693620179636669273156782592438734025317242337563733401028308807803673201603083907126040157196557741448201000310742977035260461812960263217075197204038095150137432550319752119962969113671381479721100390197527090324258003042403490146179559616401174654262828039654870349475841638717639526751830691091831596327567699862455595621623089623585999767759856275575513874241780228716113481311440787346524083591820213007554101969928448531704669219651779591497549006284546817167743152037585945648643282717226326374272378542554664779444137843522736079042854118853996532330969432686844560083332994802691122923933840455429244579001104191560630007056822709196805707655447187472266856955444390561251167091995418404152280442113733017609004666294736349753787240268917510143411674998174949838553362352626127295327602361195429163258373189128786872060962691082132353284975242484711492048295920957010235558655633177815702253040664460037332963952521666969380736666710705980548247002341273428681674867171792537793415362324180625179407236427856784040507710931745217995041548400922865189680912646554924693183925092703338409348117537973648386447952283178200796455966632997955534171628658959061935969921231862479775122254858389163471822616907569203671788763997888396126452924289974895439790035167647629844994773184021323726117781437079472830584048006953951476991932942995066809607511632474897501808355180425268188151932954181516768910141755936666698512101011591704002452639401296930052662984386954822965898775870176788697244208283958020632288538884529074189180966843284124302185299826587261434367814012587618189406860748411939383534325807605267502389261022666937512284169345434456358775320383412580757301233906531820673778323720095345906095134536336235620721689310271773854871029059844745885548713749263238576276461477041106194430448287015728074608607929691678975356628139796246311707442370218087312238193021135584001185970536130750542827525843137605921783772518373888933392300185884933038293215684015022258679342326683508959883199520491178043526345347283041957044560885944872022975835091990074406825654559630328499408411476189863211661604220772460366426240092968743734937895445296753786215583428360781037942164123536178490586424614348346673333525265696823538118679431707375681222876102733031173537539744944887008478421690957586531511471666394372997046246308302564142493556166552418980050330654242568521494864447328193397128696609008521409763011039180819418152839837605022788054914228821491924255171037255894976953085908791022399269033402037561222765389914745101934794196462300280192668674401779701354480647388097911846253454347201618399684869858690455342711325723917268936752702334081328743616365268894881050898780648449306770826190823927088305189602224402664599012112165166891765488562945411057559215730834336923632822604394697613951581987200270791733658989618710407763791965123550447498346896357520475549332989961105678178440997171166413230112369633745335869255644325205288284603411762469504124885386240319179808900377397960798587163170176162564862032699006412183131767269690901268241423954296446193712519322326684437027036291360163449481385387214080753110308533574483977929294583538125235053434428883305214485016565122044866149216648453033728117116551266117507118538467416714612649655536502797288066651289944947985468941532771994825282226400046843595728205425506912896577883131789099321823852003495007610139890664400280039664641189945505971908633311621258669825419237130398566345718049445444999106663463907204978629620684664583861172115673653276904590887375857075926496806696412958710323963327635900607426610770088462008254556710822226052000680987741570335098102596957731234441258367012273715947956596129483358353808861077681352646787648546231481237793687094913440139840147219451148361638875527622500925507237631818217232274672503611638822505706355686239993422499886408614134049586665037497536447022591438233042067357718274640666197452373951947097180386508005963968104890767150866101115153702932706190374223331127634997984804266054333248554712737240655550893974341672733162570946954061956733733354480847931998564032159820005521985877052684035183296537998968092045542985116594035961004039946261848753675451265324496492462492761856377673231832496432770331770465623806690834934513701475743019115785582567773189706177468376564520581759665656553260515549979160288665611849618571532595407417292616010235654483078176894621968881141703710598584543371747449714359279562636203701679702743020003059196312697870276115139097742865931196825804077203074439450930074895788406074349846691089214443581967574319125344325787789700439140282869986546994548145876344567718225622560527124504405904988135356865374962514744014362409740052285965555699422202900106358917818588721914399842732274795609594512255106633770379297520345756048737183245813902211255014116546986300184969906677663327165909509559917253285579631259661731050293071722994526995657065413743679670828906026902158456422959365916488128452811980845910254429811605515824712173715041448029966660211403766143997322929734957540930020287095024566031517271001165193648994110308705782601331797422271820245921493334388429027626771855749665241873268824775241802867750003300550207940700365668075265642397415365532080335273097787378291520785929128722330676141483671127543722626639477524913494686790566333095451544312477261094047533961706534437155628471737605807720907649852325199405672427787493380477700491042329644046188372627894078645694789187823712325546798864175209708801566578127521722303722520555246829880089425666343183031922959433010279849919991526132946996103514989564898806246881775311201545841559825221038268502708979236886546944490682069098020854591666275853003838601067371363474601243530048956954834758741246855343264167499570143905699261067006386239472376094031745715667958906602431169027949035223987235362533834629589622319706360812200842294955698533493351226003400034423414959607374628353320816732240865479778084519738425991454865300067300644527777281004579864607548599930274928830826384401834117472460533095297736355495809374602938449961894548803686242468288542672746184359403604268076502485479696022950434881665092068663570962592674928883841258374032834611570293832630740284862132595714480241446450470186930032254808419398598815011786952713495216728602081873402186117055101808586381406446154468494446636810692428620237852849592169204005722171977436673829764215349256153667809565707833905538389257944998675828398902664439151246325516603394463499677943495963099902930616593275355618782556567928097784217140048053244157083781832562247050013468464602370109243430329493966461241059194704715486382757501359135913712795561857335650431822321904697831445964842992390909997021082384232620493096670927461497824987781163239754051582083733467392154354477519577364987585093323810531942459228556370137602655383978446445404310495364074641817103179354480276004268138159114559578539293241985475389004785167285972406565539507003713168521280263307705105668587792984405613127272865845627153690413395785778258527689651361509011703647586208105461955835996177211105220408875491614772304664256913861801713790579000366053682601281179363782042780351211121656017252144033584807187005063137534968326808083862778009121469551482029282333101455943032543223035912835100558391300518568804416965995052674592940337751698262346064050807224603667519534636683920419345012738487743535858483647498404099241884636113724173611890342794065765116703304413241760679031071931736573328088228823198419546403318306419540542477487914795621875292019608308046433472453621650434605235544958327944629831617666356339349551004232804417389332834035758142476448395601777153452701135849339518593494441434592672254383212507856969047144403584625876014117556992857357305912395797337686881440124643076106092000963636825906455553742109157777812199090282021206209014576229113184820533676534429148221177403397077292934194884103538455431246472735401652436497839603466746637703571901632379802940481969801390683620859111621823158084788696700212657694302407768521240329608373442138397320601582031389462503003629132288837849788392045129759253770316648612212679599502939295378791459485114618690705131637733620765194302008758391795956028469284284009855488351264239399340625745667591472903966692385838432664503301946633236600183466574804568506003329861570784295359122807485274123931039521947484558208044745974874936368044214534824359928271316550272714749903456799436171529594808482988939557514066323124284566298952053493527109530175554291126498580191600794096592575016577048746296726034330736991325179336550273792983354221165262855438795179974358134995454648420938080368262342398540355100243883448818743212091490346019015631712187917239210971486535719167471886936995637267663784941604023470786701434954569884538698859990191715225094167378514972538487363448452652683936304805180294905308260999401565972371365170155862955026128723118003702171424328955253646471687393704999104387648527985359570836600995235484297211565074276432770232660304331524456298029493414920892444106502344470213549395532968898166348556496246280527191411907279682025945342495158207814248164711151894170092052688094952465097005770338622689393114544771754124510294840609036324460133892338431600116943131582276643030320711509471330544242460414234925357751719173053952812668688411194315105062458358634101245561693517118970594537848182269884114788099793175529212250045164893460518727693128902557309446257018872379228974704966620382977641419099524203234712093063700433124065053184939811603735587117206878300390238617017664331642825778581248676139217456994365506722843151710184853581257560759196381017213830965085834093272895883675073787145788602664532027770922255629978481279242927838095871975046723039769447368092784727400857852003040268792662242066021878222409411813388833020367360967887370049047086836591350133016365982273911227455652059955020360990998053747158204567125867290802166007436212095023052484071065338326955320591205534528809793593177064550098648646656267660935306959733577658861308439867632123181951259977863312645437711124225015913137171933917104204383463445196753500554357590469574365492250414304467152171327503337343181363271434208367291169929117584286238141853690886959614297231495145520163048333329282600870337149955920306970986737397837114889209022709245986671656808161609550378055810206000695468351461444887136154913147378454145441855350196605395613508829909246636906184512198840754494365186925354019820263540825979470215308754951995873147504236230339419857700617953298399354342585663455221880699254001194559817136932674371148772666707325349581314212329002676044442519061697336831564789251573423346313132168664729071530470089098097848265496265777735249917225738929240265493187317801078202730454249011472130512618233227238765610737152382574745538842993052268429506956300939729363461378199725233841144300887537376127271201760643145882542045234157085188620318925316584216632393409695304259010297579846619171799093897520286942848423352139166799464267533777337755009800864121279835843579646717707265199871708433610915696589154821356818796558798388298119236453374427064435493663395979250593543810761488967080562691345379304058957164671886898750878270242177885719233018802767068367904549624812909383713524601054230476023075612807955827564031155852184553588994103025456376482934528781875377838342583663293649710653437668438624834540418745720582517266470053941793873650208768827597540986414867498343130291633934775186152582314292333062698692733353250149831380181834337269850565553379593320339113736560119317556331527932237400991161137370105822422177274708831235391854249362497531375258510459896088587570046077839442423034427370358880274259656491367825981989437313034140014213902176106549711080339697153572878725295557179834026288778878185475242806990685959657650251918384324479030703736844319340574737324320456265670112225375564679095556862768947942695220339249468382424657583950656857603909488065159254424955045379146486405874343756242237342767991636204783134222740733057470848341892203236545017600176893019182949653379697639336764650015338324663167220434145348262743136020015160867777847818446070253203293475225640531921649429090948034414443145174373249109643247840741513643469093392873918854463277360585639685923194304601411440175297027024176560313465662603215091505551511849059946536211039278359945265366351728390562025126214632076205270492441748722336830187357711165001363498994655527423015751755569633688203279643410164121884566365005399606480385198570844838157310307142714554294483524799962654692285045654325588157543804263927109961206642816531232661282473293291860651676758116536605693122069099002455332737879841632253158064680491729063808742323155121250749142298776242731686721940265338812551834948140479903938695205295368834564604739473859038383330133778834577955405679660833531568593343111870665419692463333641089090007346751330514786210908677859589696137502508191363041675467478707962776297778174241103912955070095320547396943817393948202153370175369265902733530296186715163232023719538791133296714814483167201329035829257113375691327703405507728365379978008549345520721107814759904937004341515069951765193290495485115534426867667790238661101554293357982869987292934146776804423055900859090593550884346433065253232419674447253904042954786638576790872797033406042235441230905006120475967158115356569741041562040901727157568077131797718816465538221295973670335561918117984261566978184018462172957575190007367671105611848900244714229538401501470403031764968984440473397090630172476641368452207411355020141136620387255570880340415542263682386564263858894267950046518588709095254168728134348556986909616813181715062384457942918929952194759534706216905603303932744101208256685421252861127154186675228136105085762139641307493528545108111789903553212631749835611827705691613737389975209713767489489385881380694807414820517695135686437340633499071088378404215335886956924575145926328825257471757190176995627559375323854821837606959444230219616527200278652143530583609591229652591540290410261543369462900618484714259405152918214108845907647414462260358300594973008312481987690588223261752912649442266083328459911097343517820631804477453030425361860625833036742576067029599775447059934116437818030825783616327015965459864983582187156081996278503057173821511959498351343286222864767034623971318047669858337883596257552053240413678861707846699019061139924867489412289340617627511782865896893512357429384541216873949977870367982834709441045719258475761714971257814801309446796819462569414563264178969835118116889686951642948255532291854881500037050227661008641536636534543515589796390783279093114362336269651225606772970618654497589744053822182454894028062583923847806921141151829677516217133717919490886421102661202913876765386630691559664317670078139113265281163948026866228157531708818862250531031198819011331115707308481098495999809812423278095528100507938160106070898056512051470735972548908081068497770952925790406879137653486616055120410707960919640552230128575574071669696383148636752989175856183718814261547547984670290895730210498716460371697715824013162048070421784634298383792655945648507292667171435062305879104677558751995817349730407781379598127201852894975697808567630092650988480930929021803216144632987377111154916607959329870791593498208006509965577399523810171914366963362771329961425861487318121742687417596533674886677736384278571487011105252018807597397719182376494830999075982263976280988295045813801192780373960257669117480585135016541516979657438097287434458722138573089365035899945670351929336163020975761121883726925110081503169444899674493003263594579051125031365657881277069074955364410163106410944355105759853277902720140457394294493851235475681079730634165250697776298231261452191306293226759470404923358227051734145855777160952231169591097780854214559309693974985453722772278302631867679184161563231950066370659305827347301940976944724451013388789090737658854852057837957585718892349351904593698613410991937606835152147521241415892833175146631458692340312143105940734764979494152233888313547667403661998345534733924243341896333918620705203086850565677436313953655948410578877392478903036751946361975072808213293561678561773638461406843641563585884185256693082233916286571163827019945267779458843777901330752168967287233078145652779493578303011907242361807377432037656543039469264766004491931299009294351463633435817621117944939687675093016659971713847254072795274987139113698959222742930349902651658189925008125345736189249333931351374962524941548547909505507240154098743668667443905321032029542906286360743491902712011704767771273785512976837602284401929094476356715551253001407586491314051718523514561487532504111029464702173154145924942229826896220441948463999383377604354715400180964846748987241647898284897315359994719581433102694642291590947680306548707499571628086463269022654629643472745716591532411910675460060127265151150780632935822489264534530977095050690642945700227642402362339675077907219480423162676320411800356508902226534867696995705224103960704847929713486178189045462961419394004338655668845974505016409464603995580902221911359874298677955340692862621150436377692249630808685055829407329207992184673718611232533367396474492040789052798370435641652675918227202836408510398879694972938033799496554063468995643476897543774554012179453842861442196607105221675139731417094581335226973287125594434166375428902388612942961784229714311992841633381183979864404830828955301741647740590286047361208258166935408799568965937954386681649888128619762515821185096105930862277233122777418331496789074329888424534650201288747164240738015593109178488373682978320908334605236497698988528024110407216664193581514665736437610692432180605410759318451641893076847587471088771449982402256055650876172701324839365699460107589848485840077502853568170112456976539871569890501922157409623841542317539110079861868008546154296497974383522210477272695750271840168053513508230635985899318418633755982943465617725644667794335133790449425977484540705659493648682670445573225680734871678236480883223342756294118518274992032795449125551968839710994510583299339204498988964921620985782104630166341825242136988304381626200499745978146306373443454815658034743002671999923278914656416606817276021483938890849137726458858112597654088850747372952742095873420599853875658253364195728430243353045689268300925298124966266188502854884078332948049197225849599549763368552463361330045738456402827458343435285054305733536451080589367379473867340016963951810827906804392626496371378894803399854330360623485276371467619321894902809036572728412776932757478643165070981917240907272168270012864284828571156846185224583013913574737186780061816654380166810069202148025364142518132710074012344425922494854933422946664075167680432896909881903255524658489156097310499675943528038864972661771405313798550610500495914944894036763965848454304653990643005965467030389833173498167980786883723969202127529864879847234174800038544273634723569933924908968654735346030221383880372754494960820507702587237594149846398816226547244511545095255785089369891165640155912034081217629055154544635629000082037878097709301494222463634525313640396535734286139956626979246928606434212581523195602488816871801918458656754969979555182109076552261869135360487767692059865704386909944747732137269606308180721727222000027551906455330228705002173393938478072397669172544157568571262465664140967101578753045996034839165230525555896164867318058904853021720467133885812279712939592102684092994282486938830026550402772908780105202532467518234839568127370357446673905260646533662217013796155576453890542814818438361533052696505098366591891031738955717801602874293239706418197689414107618394663973554181821827070384557007817965063215904194032898900192137042401150317583872636154573424424317590957739000938140517157268205524726978017755507862302163186024261708042938883450317280181208836085852901398454372775486636208172354509773323091382903761899711671162272916713775693134934184875896754100499172889315191259258668003612282003734564895064835181782461411950237758812980607045599633513809808717158966770421224982858303817458531281639552279037410277572324101605761020973446689432788768168078206836617191692193147167761114271965251189243347673577589760203207520475402063310437738905899921646733386988162881879631896118145852574618362108166307161006652654281172219989251621859735844409451205522704521326797435334451172939751583093959862534067008942605967460801851660769654551894657755811290691964435666422671584751308974038257223672589951318706203457460121529575379353877174458131210189055087589450883974405143313863110728812177868237552177361651990989091293403659352994187422411516590161091281259494786906451083961688590522051095042562937748640640486745223054009050325447972991134745876328646545871963473106677290185549048398279965273274984130213952029735253416777847100958236945579212248820586663795584792240830652863655981742385990067704300544962101906332547917986606785549966901482926413935914474998540262605512290867216769820279216750058519697495024127059281511102935325803947354320731835415234280729969422619358466956041518134620949742898093933696696205828097165038951607332080681299392915516623593625631289202342788302909699691038538138138775614971433760205330332925617438355215613895300442145575100953889838928753653254782417910638457497844466539683347584866800578662579049515298422506665249486882451135334353868364391963084671833515132727233590500622566447331563433925711813849172591508850805110686122892333073522970014717714418270334896393980576808016829248796657377878910999909416927117012914369245826267254913703829718028588340764873267527029108911806841362113445371452415877256595446575478614459933444084876769220588802195022198244268075044281324164876319981202073051565881626220816865928124247236808046230385457780593356679235880916516387449327153895202888224662069537497137790221389235008296386841047302947155020372940964231092164981163800893269136388612256023363124659584931502191281162685270144970529825005768885027825292037546230805057038715147092113053317309047309890872050217555749651251881121348454834207704227566240911049102204471405295557255531485162659368217017574133466412457677826116644368309479103773463536313562206060392228325392333199378733307762698924764798994220678192753748177394142334233763508078356948560587629994683573937670603668709992097709695679505308284566955951391278035060735988520574076103896799789627038194770645388016469716745346270281594424359837837855880292089257513648012686655324908448560365011496775254684871681273905927050704970094294336544114502632224174963968092810096730607320420187016128741028784033672269762204689638692678665230691224139510639101807864299642634916785839480310423281623201085452979525807081838090974618144518223126559772294621654086614253817390279597405026717833315660941334411695323850447237608894443385197500888069483942298801350685742147671212094791213249236357303281859861998270531784217800216059484370501267104848496171106590522770177089843471730936755561018927140558646701855052212150083396337535585200610441757887727654745704010908809966428709849699793726449391306501265161444372242340354098300871853284775959964461859097027086002064756553542327047771733977551620565500019907280556874066203513721368056383957117967490670148775800537047263586288026130791103027659635442744135322567724667977711216990937179152953310430170666063272703748426787870692725760303114121322727545516038145884703492147730078998017816693203313682962922731376818680405458538780094691058431069523550695512284183840198841512469611470215611770048788819524850938171589267758337049103141794021361118348667223500361597588481600905408590440040863914423015133368983668579152543212685595141192743308152224084121610581332080022664062285590340170150317420770346387312086157449096720235283743936566973857351547557586223679454179985471389558014707047147558548212020546080976854255404487790150151091849224261497047628006059156566874157121429348885222580651801474772742647853558165261415111288152659342419881252793958069126665379829205041701739780104946930598778006112378289521815694031214507535182434065705881524105952081088300618499330996604090714626412214874543348303572762077690342327707725567938302731470482457845957343288085733215964147190875972982483699055417348944958507702029177864255085609444694365247754594946053811752045800459334921436262628047308930362790010750946635373358282458665856220674826961240913224437519639385006284628754117806523720336838678595985376660679979534372931275365930261735741696834714486546796748465933222629634792249688924958429088025418552047758673952312655959070934649507430754071975851617084229442300359311514926443153052423608699572886320966265351558008101631370775918346214074612853808854394287483904905884724819500272354537057654543715066885340682217233231411400641855150516622206625473522255460558635315091804528513387521778835086688793806666295376898731119065282153491670377320394624474595144763237878128166032567601129647255318837577422467236011875334134993839298198838513957738639673775851785430277613421039894351670042901274792973162561691639845677708536053733150340171329557468247401281777876903817045078416407497235686580791731614868192624214927591152903057389166498547778314170589187724010883075821185396211155500634412569371892215681940026196931169135360326564842097820596406234284407592692840634015848447538836549314215766120187862746299066549383347311749894148672246538278697436397344507275339416330272426549741619603267838308321161297669960740176180007709636032448485248119823688278101381992793003531496008590993266761412362642244183857788491435286368913206272362049481231281050135972282534680503594267590025209125620681228404541386961127572006927532265952139090021221069512139470018469647551111148452770367862872657748388107231860241669393905128819177674010455767320201510081275099287389898315133741040145290425302255172023642615725284900441197249028367071086880334856457913159820017592635134796237171521161081144383101925200360661482561138347582260402623457964071674826206921522752675456328241843403378798279655538861152426078567202887303205207666153049651743563684187309850870308302634075565753154471473428877032041143669514685102670101580144963138352400761149337825658665453480887370674433177762242939116645891529258685284421501412800715181880333402396032290731575247069050404260660650834876976906619146058829391429439669219866035754273275617997103462126389245341186993794719394123410505668397215524972015779710171774909376151533896679587030211478073598893628347371939003791623979482039942186758432103109932658391724156658527378512733347707350387515886995500639730595358428346076324270758345011857659799457634874187731563795135589046052522156448442551269577192203907279943750042003747177869241051223855771660165704897315826441107883518903443235368324248576355906488867549745195466355115811336871539783082743551789534491119560271516455718864812294565188027794951514180749368014587278641506904647886705697186362324941597134543295874377829078518925475577089880749111268057888669722919525741490948120155783178302017649422054750908046987884233498279078271815477712019685560257587731805839566284482580567998482548982721999030106468213168881991633685908269627034492252596257903729388658934506816664111968128585203037317364644147288255147588833042964232604178783430465471537981247247721863633783172530251045690052866562154125742000232333879244603576158897681330129114260851520029857440747437849691355445675798785787701096618439638590310412582070926142021648822515212588745500777686462644885533598010252925527958379371587915650597797452661358395544283169907543034476691622870997708505524142045026265915701600129706130539195129129658150376034652445219603327475799172196224849457098542418214948920496162542080466519353345374842075266117969771392871870689644382827124279099532901777796069893040740247765000635689664603921008593345319305466627649263158607850187704935733136989703146019221973617244099781883079785005701994149823436847296626670008630738638681851973520415462690910052343689656047804673632050156889595726692914279376158890816377883149930243702118698408061349108068479967182874973542707389883586309637929235978969628881820971878473805255289395865083149964138272975750659043167625788994733672618977837720244378375929496539155559593620792842272191846936174299142796837985365759500644047180930975009379917617118874171964030759356306419868452870390134460968907266182705182207235462776854239819309963488575962573028148478055188833496941834278393995195026217200255215624067058005085596361175226214706207871795222734783760229068815594208274378045324148763170317977932536313707557556449724962006966681718054510498310904182990205182460401920567652731949387567097267237726798486514869134221571280928817481217188318984383866971390720502830827522114547366818907868858506221491854200143366543517279621154438952204868077518427159619238271233995479106645324707947410368602997409101928672731926227764927196881128356530568881753054978694904927500395404715336768840785428897549966188107068210761845384016445064218505027005600369063311907117674792415730403351820052463166127393005763039295280285074673725687618778996733016001042892893114934875715301430484482806258883430848986267104073433906847323578597356658001049796684299155190967775848110701019817930406962109845916334227960527011104296436698292707674481997760285834240603458811359534392109893076982242598473002623948439986849686518281232497421985387331325067299436249305749919765788522680405907135111614623025860984823897556191139906094006623288297055120272130178597601265611825223912760106341209920271019220480853122219304510672056368318938930154579841524805580145861029646322256669401085034436856893910640820196620204409193056314237309912377885930783868790808897130164325221627260278056341132791027548219371079538143597973822451206374727311031817949158995372723586489166546421716492043248468804724032073027510179168411103704796575227814171746152156043327861030456543892037600952888874545644198500687002940862340299563157942900277039747001173073178805252071799716367017546062188751078135795253638054362900193716823018356978428075043995987612088798190589688202457915415771685682230132798130850011431920028403771302781775949607387611603842831014619581155104713135037851067432717598418840434176737789043473702580151387339030318376131776144405409316299745465077511480236642489595577191716338976340393937788859246869358780996952470716997692525347271327951670760333585312471698658340253400039255904117477068088082862035262368969539424576473240160979423861377808604727144768283513475361453144346791476677445991775078756612862935937592954925166580773380516840545864619980759936045361157198779039713056757686790198444638847864610748526863367883568163243326817871685374447706311436937859057790829839316799987494673378495110209494211478976123078180079269701354724981167537112073255738659705404402816502762160623453121347349780585105356197604865127434508370965461487936645528888736677490488668651387077304044445246879543256015792982348860741939329683991508500822018666669383716785632734779232805642676416288076324385247073755121086511826456129931856334918210565280794379846733686518408909322268820728810316402816525464804304909571908369855143917664094322372213864324733625718433129009973015016026558535299939308353071512395957556358499550333897567200277113526497875991981624599168814151633901988062852467341493154470775649965735108881056059308081357304173070820234436547784482883734880785021942878101859968867624423832483057764923900564423158210729256735048628217986943775437101359522803813690620527367948280038053213443315140959804987921909685139721718611191380352703247054704471219473761955761970511273438819329719828024947538612954290465477961660360251240858549930629660730177650662408843866701807895808737370555250898042164663709380492845291631369823208395797344571077976772248570404836383947353761824115379139806151797134986435431332898406783103075091942757055497114542233336885527537651167494678946781503194466671394202830518582250848324954392845351146299572186914895772727362356903362940141844308197618636926715642843684332302871169129004224722809683502242472510478327210586113874219830818579580066090614130224086071474538030846238345088759712055887514416717534350778305393601423370765346166177439753089661917636952157705093057205762774941271067418141420328133068157698576543323705611915467854553065641409012295474818527538600377047549906288759512701471620719998733352479401567765043305645989318333262521164012613861724787329905286861320060310839847509448654832098785112729825035026267079130620095365840902530118243379186785573884627237239242584480149526415145134187231797030603511499549748090801845916554097274947652457232602086476022670175955447335321247214014857599938814705525630189672668884440030885061648988898051808820827479320329693203076764612356327492098548180332202560341680492364817016288984744695576776131042565644178929068749103632634026140375121540551281315387944013218322194079546702614703279569546165617611569397406329881367959732458552105487414370855780988201310593241581907737453795578068380582262295694768925364602555252320299946172018913294276783966053478906346247905074806338418577210726693587460512499183579907235275598867853690549672224352122125130613502538504886930773370707549621740030151802117465253350795939808053906857869163921459651930061878051876896956869256322667006419082109428558456946191598044967823762276422573455951503070371546913680673667766245624447997736949678104452658220392780097672072758513242231465751605483906418280610866041610001322395794052151320294930022791804454842939542146078587253578885421174594952934655175598277735809968483650319684365731869134365732271690977925908372002359655392953609224582126290811773950946304395405088983406582401418488809049615268489085254717470446737268305822402795140530681083403585611020079786578497612076752777538086022441299269463962161170973110144404078274317088472342845555831383168935420866744851618254005293809635850651849617686486424242763369372259678607582425453516803269421553672405191213558658561893873537456777731476065731502240499197861959829096321787478074506271509576459523573493793429194643106455594689951874903849261888765715919348313549586417969167701312319056213066291748386287630330197288141818287126774855194601936436033450842493520923506813431334674112614984140266532908186067178304872796341786016253786903232928922110221446102703908470075613977106372306411140640179463980747013063821708015840638242664039803444486163772331939970724363544973572008078173793969014056911839505133411789861655112050720324938929216757539781080514593804929573329482621235720826492732190973688646175109116114348756219393281707579062599106072207600770429562799197732258840651839671421997478108612959539152929937876917868823080246480386979246997114820385190182022434522768251607392909756318689238950222323134481687485727698023025897973769084056294385637557105308890397461177815445510212091921273175301905931095431104023061317370895138621694776264353718369883470662848918729220976900789660515500398191571228071663126124416755632477892770636731973556290674561323447101696534140325666835410429806782212616966148402667400092537590769020218127343005431430220380011843623847025256852456495686521107049419359499282620765096995219784479137264122433771198588067028749334607776151343629346070352466096491004956248825277302294032361131654587946407383948370938447579932146545432202669223478843099507237094878090412919205440100531942206469628543506730562572721390537232709589509256903080572291325563906578410562062928681750392583097073871996726154971804070859009700012688981713400284232759671651686644988286013815379540093584391152707786337897429795266977963564831670518670660218360312198101191661149403397117134730500615609189188265216473251170186284775508739570070741461874398633449968829777378988650055598406014655993309308096530810821393868861030281362329646109104768151820652950753353468248430575148771159471279166048486980397462311355255928945060423179261667420955521603095566101170404915872011251304752612800693237836545264781006783256705269975386622159810910091959475383706330385269909993766859660610593434230684587018503110295657405813674164170775807139650222121214329528305893517420061304162975903607709681201556829522850433521378841639718347562822542796954421931126754080557534993435392230272676292963685654426286468168317311238680283187320151463990474045502612098479111892098079145284294896178357840935726552302583854865348204499503987972695340149129027657927134578393947716545054804966825587175189666768562833084486136008570155706631987595254452715114921714967357637649133055410185266391146247212059350688815365123843994158718511737778584221164468002239768304131008269649981533629416057713733464709373117939623467042626568337032476615216005886655921898623300300288301843299934124268862531679399999045602817826582689129612825362884209180904186906344597307382951074459919406052567251448041121614694405353981764881026806782686610252922382666152848145612524253878748655476302218884862364461296099636143362481863011860786737308896978730404344205441229106002701016581283721398768879442440304400575512201207415054326704401443878885812814353405967940393317632051815237961877124350389909052493700597372241170783716237365384637937456812738112494591275816511147490955904371756887106874972777303611299283633332904206367133289525882614747843383105806075618907868760910481695067600424061803158712320725325636143559546776428020591532241217973501146492730934059892072828869036608317023135400345261599170172242528888198483653515772665230561777465130880015098853960818599293619900438881793338173854133544454654287941666671164219372966627447698222038959963197052789512582582758413760131105627083660567940218858728988435231397943458854028550756672326505303790487715714441226564419930348678623590352773205515753671372979253265902309250222536940508175227088106535244486513690322698775488119826590420181473944881791640980380860974697274667151767327682532093184019507065176300235429815148414738137182394469151739219877224302922376075862772842585567539748185620025812881558970231741278087964911301396574244666164273287223777635255692493854194012310630928234746521635135821350849720408217773726238626150182078569011046644207294027083897095239020530382588359721395663922398425570186667417449160984265868582326482147070363601729508832519160050963509102257543393367224753513593284277193557183004904392444247601568854103004659497477113977891908717266484062712833006795713797459029500036975749496238911698736829134566202364976273723705019868070267166626567171921779772619644581960994294978191609385490593917431337988817329951090725184845012203866092379410610250626258358501282106404978326060836614093503024287032993959088692202934737823432084172742290000902665151502660305810556108859193756523958441525635993291212791093065688438898547210931699608118157717379519949612281905382355308450772358662170230794393926091445746693494415599132599328163419900575869841107829647038121621938795892007382862446600423658827186936877179489670903685926534019460148242229488646969551040778366331360062844668058530853521386226230935809449138331534560815208442193031600156352409604060229352284557959536962418327343616322900864172009644261550545506453246037122513026012748306521953207753575684727138739627376495529576493457859412263217678056863981279566072117258045702128540572376229366672073016537223729993904455090129607942663706921523851058243976904690065762907914574230767867858094713020795792590493468772919793989175009166762550224643169485682863727343181684731251800217779875281824376508491813208898499885336006828483438961925669538451783021267035301899195106029211932730670146363525280901214072087388194674699225432687794364336760276169976904916340343138361404768754490651067616614786792025165082246806821106271383148754231445422500625396947791342948198534331297651876350265287136841528795865372366583612340530357642045257830675548600971777244922366410353843791455370842525660038203984157477262202467686761736135675444843374661100897001452271573097277522430248102037431326126957305817627520337051557499166021581150087255164399313744252207304893862227590182526704844183262275243251679746421587992745547257711681126990121125215043636680095259510574590408355078426221139378878356881047541093045473398502649541364047190598954994680408331352249248304716024809991085653982681027221013276423520589813966300354284232284663869745112647073741050472344673919770162981675831957021626297656576132969015183414827846481791098686439174131302236830812979251082690247708726744719563349343310839257669244038376230818188559373645382259869987967504575052954412078254283901938325934784939958027453576006218620403122818508788812031612000441958588765368051536069508844575397148126887123139497176616190760099883777033548765431031810449051280768079502234067489703926885302018518564930252901667575048465651846110211185189290883728824221490618719527078895937677071954925876946869503301883692046841791127114991165806778917724792176720622185842130588376534138217329623834025082326216412154703203932225189250388785409033043550082003453168828061739097001161929595691160078319382609468650694632341197478430084722374530369400477010077968662525655631531694411205842389665265783111427315519003010974594284862038823568255794610944660197856473713458020060353496575122695538484660731410461776047359922540276798205588878588611244328266604038479155580591939198015946160299215774788938854825673363051299109426861295962200975786273507347633636974312392720553306051936745880828452837152889055388349579502939111970881422422548797838296843942300626234158624744715715572395672840134099994543643052335998802335169712745150814467510013656799610610623642923521133735716550137091661192778560032259688541904663300746452772969909416202885091831289771789455806979175147123856654917162129105301547086554057677819550703555909633058224369518626344086927327245615634971819961842550819063242088813917208209894453295300599364613882932848374487035464348169169014373798545196003877815539823374010721147180750021199878087891009709396130152550290216151702556881657249121358717513206538412438465913566348219532883986411642821795419733373919535611660118110297704978804552703328960416094765303207912744330058731743790600197035707290175123128394113461538099325462394405460232386979024971006410030688454521798038917071004826582141412172619034522044358721266965012290703077158710514215220538429503555549096097039592951050579638151783544552881485565190303918118481050797097975202842261603439974391796225808063775491181173490258755446568195671694345741526435852872861425028661210056504533875597081263608739749060514444420298374556515338686934666035121431996429895287064635188815858640475179917226262384557701655344762083437518362682204453202456322974134797273717949215109937518366316090324770109302938246216883522689854875604291243453355618844271851941771452619063336287180853408409209506793225521296834650593269447811680590895160587897288555639013546376998700498675598994777756918878002541612583378108273142792827689078757223565222533708055751602687934850033122410272858797728861667640809354211800815451250538869588243222001013832397620966300019511267884622135137493992303010662433576536340622422170499450191511538747738964605175430890296741463363492962458970655145633560699659868389272043937216942807700069472075837284825999907359505913124549895211562548882731008515992340395682562706058920191664903866787749400779338865903663420756778378778000248638241397189371053699090001695911847873747377593293958285989750466215440581836070007438513737970441029323444670870551918561211201448466353332183979616174689104715350799869080619448962497335701022292712002127710918722874986313764988993734078613881390063541107254723650604551850224331387961388233520790189006630574106624905829871508280135795331783055140884520935065607861715681192398426564127953854087534010037059012672871938630105815126575533258647995051343052500295592086670334161855722594038179515810717727581526700497297631890041110528846630274795280551577038518779416733677329990496992265996388517217872057925536917537520562281174884402997481505858428369308983586412107136290385545362826747037962911953004809417693834452959712111634620933316401824989192512468594830689291250321837498864978882621462117076615663469648993897791269983603902031312371854298029076430710555932864451524770774076949449678052673235485022924926217507886547543787378195637276931501468946815684605341013167490186983815000239988036137109125146341098547563861580650690490675615467200398974099257444571834227642523616789629604195859180208837626221350579103631733847150157930250459277754762898340159597732422352968336597333258382764808003005924423343567350262137162230895753709788358878475400745495728980177681948910210072014167680231457356278630848609433439780808703774905092796362015575023855563088799830270026586111851164690163049984042858705767582576233770086050446719831463632825315427165762855555055056622496163487886106714639895908500679563708981502450284948551022077667861420460151567418123793681611090834688811727482417539063719752317026217783580011071318930013006855600338849871370711039587675664802802677827945629485535617870809799130451851240981954640310716914021453226675993151514428402696500947171983211761476060280506694836908187528974648715050626595788884954595290982020896209407271067891886019941184969546761753811465744771806153987701995054655009591847490445757736716074377461918060704156086817868857581709348426776841162910913267896064798647178618440184886570327365770483124653827922113352702061787632998720957695641536979522982757627949646408951352172835630158534575972505036659976978163536719841170413024968744570125186963913677652111656359053420020854247349137337243164787392574207047457223186861433466843579055739902468601301656772585778764908870282026977058876756941870745472818340066645123691801052171651348104360503892075440421269321746995766746991928143156608011177638000758796635362639667211211085552480070575657415713163026274716290231244301513456272738379982671867039554448440239213217012479227904914524780359503034264151732390226450728175323278186919363698702958573262870132244471747456818288817539801965298344431082829170375449319621797356795363628413306543091488320602849397202246024625358047508354572485526966682340922198368953571574021140093957811140078618076194636882016990554119516035220120592080043762915624462813097061117213574431330658392374333346384465472333481465643724912007266047374151440611266071770166890015124154148676919349385961895185100912523547468809659478924072004692687328696076051838268043236315557612265337460909262583686262492468204449298006649122769684028613890731646263589815874404271656909543109201851174988527853583546536106992238291360615315145496800103886399862849546755470057564160555089045666278746497725885527140235630024339810192369130798391214962114029953654260872441693488093418964364063409869474514532786475440306075834831643587644407614670448866638842700194845600479558796768698033460373400878325679930752116530069896613104911606058707856102878217388151506477674087534922668886801893608822744602682217636848528970641860423478605066757790300370456412102406044500957610879899890108065652394657911050708111725570272020267624092644872555542357435039661651290799533077022460755378456676840930588861644158896824522926950586378520662105898820819327177223769509401682398952086386691706264122201941188842721333455940380269967849054456361356620840696753920230273374365450803596220146809255748406331488505625407783716010628887335825534930427396287401200795357659137334253091541284663186958517831489368166295179760983296435574946165521918998190736222250801867014104739112570313718447319641646499764798591459616537107213055248022717744206815492653628469385167208886336046787834719477920017442061883836204922654481289028664158550491836350074876773725187956969639095321926705615601251949615670712307571089467846284705893625598325597474797895428619449339695764435850994888496481756426043303642253510503286856175504140299944166639592897075646935424419678429338609646559646765161134719018150649178663514669716033868590301499059996316835490362963847426509014203811588604649828263386933125688771049859257353452259983839913142689293858561034388779036281390562556494502192658851493821592503667446931330626990083251235692493842633923012447109051723348637176750215300530542053187318040340447679447051380172005997106005319323686718792199983601356651073173096992189492024680461640162440259273317928495349701208200583622947727809935031417607728882380798241519036030717079126592096401956581410433279234623009593031732719645071392352059674842728952562223189758315955885019912145883006693236164794244795003794885694595115950293314731629820252037503766672449394511874270065518495885997673887726261223287542153505461722918510211576016226665307239100030662197187279216699716551150091733486854988981728065922232538511281861614741898715800160363575109754367022398326448679069924647360988656346243156455872816758366605015162320956355140416552805956678161709256899871693480808384858611923464713235059973518993035267423061201894462507102654181926138517747281578518204202876613472458849353351412131621686362294018328072315751408185752190886704302230454509079237511038984773308781285233751331049907670845000395352723390834877096439069569049363384461368802374286517697484769713162607769419954587546304213555615984768471843231518281366867274770756199730601854450043847323053655016474577798823616235748717160383172290037675604287953124175176556340367645263778811627300469910949191633401431927119251048157714791920696320310582364310498663844947130771594037646286593474288307005475694798177110008872946359344181840873684759399832696302987434109039179287327553904518316055691829548874790419578306842677397828522917305987711105486424239378986070359035868295425491089852393594822599989616169403900530516817296594804278392894519527796765791031334996030443600054745559791516437443623353775319629782407404217839874459824849151621000586297112192872264411288402265060014713488524112787368954098865446233327930400461637988696794926240044702682957782608220449580140257596655361143002317382352767022167913239972970749350110872458866352648154197775956065658707056206223791682010243758048973522673779811799002564874206524106600951288872137669419154030721019142844672753886311257776609762013030804528394623503751879948795846300919453946611445155563640462400003218638081455590848521359487225291405411254196352494537388694276119330562595584003918375186920261986105618038850089317435290618353297539429370318247341935963539876442130876368956164096204036517571410984426448880866187882269249741819947038696494961714774773645537406426657214951222132977174505805871307945999671480069094552689104938623780830148965438820461687599849250303875160308805306455408350400387746843983473686108140638356817007447505231394435074989882707370673623004390568872310021573306226942088039150939233510206946897343795606797927678426675787470134930561825983152624033821789240675514627236262214330356797349433767055417896620341454606529423120321540513685090545713491641859825321664656172380745903446414518997834032474496949213630244655439499821482515956846977125160338363826142390639613568393378001531941016338199113416983806519245179558970496389255982741407757576760527930787453131360221309134996673950295618441866011485405946023303866595753029517385648051214710157325412891687064005164000122069910827610444297467406745604813048327578366035262597044112696483023337820160521120658171059572603867164744835802376611059997207318341588736696969697035078017620639841905764056605305966710265789057228441894994416157119477161058139752114369503999889290665484486722081563386060393328912096058577574605296831077452084363709091490327769955142730590998305466947636329048795729411993405910930482492865948271785397544147205648919043376998258385581086850528392875213423674912447787141272726264923999626814322165323681168252280781954914611302120073536756452894738871958865529085721741948058824092830536646606837880561617816754408257952969643328594374995941241824558309205931837179696615906597430692029375968162768132723585288547864714282270502953537014664311721819188964205271542249691678913777454617326145808523265976589451242221917050273563343636774803640678363660222883982316703443516885678736635479003966140253058941320216445708486107150065412379452345965266010930759559992516051634818517948466374839769796782064216226043259133136458646990156676393807387909227281399301280256188894972849510459535238122581611017355223322136186140920944504770635907288199047215111099843639537369540378449378317305260920134960291545174638868245771188173995711259793798193552364519780375433515634479141457363446145693992020357609907188996789940221379898969636290232224799262824977993023478999896208889898604133768426483195503801118962837826391993729584475139973217604116792957874905503586299111370526053181464884661773275180539225554976320872821486531551901785076440982334637901673416288106443008591760444972092776829834691918962112255464793060289038145401138364593629533207594534506192015140314200289313841985610255358558926860044398407539242122590024004073235077519334710713728855041011547168679185973255410080371862965706994277859079726810679655638421274285386000218405578176216468330901088537102587330700009141853167827158023315398436202783940707504975670045966460819783972681030291599041297692760759269184264170519745291239954329795728148015947650562963042563161460679422799748759526811286924991871421414069362816504682834197701395704413527612383220608887015513177370423007247193262033432125702698497263497279559941910942793728839904079280010348155408081053122364537626213497404969085296596953631542470584687307359750949065910013983862917134944333428347411200908628260972325246307041360487480174504168845967682204984258368455180650278098913333108003630868709309920977230831205206975912210728642042323892963634890695951904871656237514824229237381171647583500244858898230067643207977772080608411759915340883293648448871274482845481135805430313800531581344655455491385586728961263743340953524739977353607478130496073017185949005341067164840215492136890914053034819340319351698819834699493014922454288798924842406538827785634650107312595194585141692009654318932747167489470884710400865807348127104427093668624564056161139254920812835281468838500108316166368363598517089463617214860013954195371091886824990914982539810469240535183203867788343012667466388473310964069006191542804141919961787503586366218202149929202263359719199541313527317775569987068672259575421394707247947368922013076113427531460263374000445366317543919506050151821160462888592686950919150547286583440320643995073817354573885561206191286389566553624752354398858965145877876396388189007795771393343329668790239788183196994801289340571354742787155804183375499134708402422845034921925630337550467526876632479552380921457947930753294427395586240188044559369073704271255595558777735635759809271086704901018557037571773914930608507661052980229816207861288814559097253847511149709744966940311716807028003276749822614252424536231543054902924715303008489238275747431173386591112320470505294399021748644978086070074241047980891094555301239934158043087268527912051518148012226012692164455188319620305931023173114946370553259340372335196790528370010505336483698722341893949025443035816853583316890062094268230798610379574928195081144346506254843045661751006177355157979743603711335258781333544078119063885419057117305674359117439973136910028545656108898944584469296299673481173926188578504600342404683438463679580391308982582441949803123468596028524569602915154284898968660943743004506505388376788671770676180385251972837356605601711498094754432981387585065307447490531793952384517863669812236891830359994870197284132328766612136677341686416193732319250501822716360883149754132108018338003478254345717895966216787902296314440219943392976581527118592871711551468490722190861971721931873104305897767302545629680764145333389170128121434506857180577392419369669413331342571359237191493545967334197154027145983423006780152862434254359106554568184553757045859119838456591660879424602608197391385353926856170193207635377369205154430858254809753655972550516163962541536991894854587118229524300599688402091209483878200443849003774565408095892921474306684760367923947418252925255490640363623969755088816764457042663425613202087358098898249852632538746277604418136854293293168801971988553026577339769216923327783158575944190639511054410541739428670544564379680699346842003815717706177381240960085085431420664863319469647826121341046181361185093154117765167312976046807866799759328205374377432324472707701360510675594357362031840626226423052700809392743288014064799277958145623211625874585780487172254079494713751548342564665384803502082515292739275097657223326630664920300149371413213845919069802880735659499586036955739962449511772067947227684050081245298324854279646420381684639257732629305085999454765734171079094199979253466790223704590323132939865055570447759625065248995209959690631144986136780943564901209650793117921992892174074455022204907205300668306593262043211489460653338623155735779842590290437419090283778642189637702595573291814381391215502687514429562032979203211548216947979811529396661600986906334386089780248004806010305208437858719545256164285915295704004884394582162979881828860086847631153582230596525495245389511768376431515513390544268374099393377766778767418747309073900254802985753526805715285342464865282862740114272464720457697515281487292355518711731447157770825807619284190198185561223962038062509041591110125644989978251251522839287267526876960769612401936453842844892949717036855173229209768984929857204935372226375529831393830856931352844285810244875206342323004405624339959621667176051027498841411099901648985301210473587281528630068675518014094768295399355927768919400284790891587767758440486704773461157130603121612272723040311279461500827148776102525266859514057328623704684716825833993968817799942692106084819315889130275322561595199214602660635010342646518513113962543083592503703437621031600804575229510991399984102403657591144494300757974655261245359484836667178097590830845243626532818333785843584870636035915444669603349743038910628984774441640556072750573773203486258772757597096641834274538346078953112077942112018503643121759897144843951321517048249727556404639189456474085657217046525504153388610804251098847604343214635599931820619784912534153224931775068618316688809621182083730695767003032183045477481065400683709085872321978704901669949313402236769925379900563756042976260182588078011256720104507284617542476016472206071932342397219963989798187778019102982268932240913230853840325793841395512554719786997312517054250127889228840550710511966684816374974751940501070621026963539315627059598069280593283695300511185633280946555701659893385473814506282201138240587158817415405574939322741392032833410960813331942800464559742126569573274435389830725173463342695023775636563103605367540250792328805444560716024410888439138465982922921568185428989406769636825105341873099558257100227297292022073279492296858222613983939223651191299205174185942167649108710234808277354637349049031580729088830468482374324447430960626841315521771090874603109634381053066521015235975324377872651697288627740410523271408909306788402044264468505284140495218546228728632983104577378535061380788750332871609747282652501894761391656738380376086250130951754790876189490440578491889904033063085525205521476328283369348634439314287199804370161434530711769056464736195055929564551131407963447244883402774537651658471615717156313609112433608173992798135951244566909525620414909155041964094353721212688223130653110609674082218025863162836122956916191856578750469364581094769999957095373010401547607393462161807374467826043888174712014443901463662789182282032413173820103592131309310703975165641263270048365612584796310824247597685493728025542470716945936146143083271045492320903706720179563784454647434381057762696376037095158090926269735435390783375885565962300593716231944379290916411158203984903955676642647284183437653556164843354800951638328684917403414159415814682655253744954681315672966241492974641901474389000627492665106795391577139633695506488990159829826795934916463358982472297029792521201672292229392864669124807523389735587996171719534484294117422775985382931473351512771403621224617107956590636382439407087870104746659032722116949486795656687276998236386181538174778746746239613127900716292008754326459660250998688888361415843329907710654984980602927680830114130742280435612291542251735623088205670017482957841850378564528596446615953557662837501937690636972948269347913657777587974970743971001733008005224511058186700262568259493293456098916033244353778039977198395079743672360570658670762089607413998719458122511990309350269909795501962633156133472795564389342863406850161988413341462109675988604595589260325972927269850910812062256814535655055760335384082397021341338226534774572268009791171532008600498864251863092530842889900012367804642137262629723977734404938451868920703413269808055674414824327493729656906489813914954025166435103186759683427598947263328026569416296735227209670738967461983839673797298676656324160104514045785130669018756006596380917472298421557302893176208611261534539382430037955094120753533541342763988946979910770719348401189491642308968813826574500274631701894694638332846348570969157716248829408492340459095445376047366402130348592644707723422224236053919460966571282851139594135514063224656416284805142778177578573007560710804635598610746732396220274740034491460995757190588274702208956659802974537214297297455210461005535655808424943759473240126126482892297669468610267403161504397686414852077012517807451308012737221841480243965562055121282224110079371960609832896327914328464466170319528540855035258360553738744649492618023478400631293329979353824643925655245140287589476559436531076829261654176951128593597927459570430006051755895335184767841919748876997111766630067264731802632112845130757992666662744156772472748759497262235927703530333302951853849283261889983168926267843962606689184637001433108260117931412449024233712196633684913970514376032405712121667047963442127569230637063152516483093910760170313846158871640428647207738014644725925423842107859347386806318599884765428433730479212641468284432435451533572298078597871435672995112125425123149550379319374757951334855401284823354201633394872053518481438064189218543575329292315341508221140025485570028246957385772737688555662498560323008131745515549318721624220561616220515716121121196592419638844341134013896096717063095584910245275344366594717364973167077810555709887156563334564641740195860391621361484496625994952461027529659315590741618016493924322342922588248581082071731857291212837745483027702195792141834885651672591346034323368212077691288392247315451133754342742051351779374989821401572047292614912077853868647332413674236482786779363179478737033993093142097949049456702887845970659501123334731704683876597504051593852728421324949753368633520072596685132069546796841646016597301724971964865634612171540080123541976315152601321908973300386311998125849435513277403880499461964430702783594349673091520641840888024486442993054853824659531197187731707440438099362785958716032762389822180221988339456717264403979275641540303795094529316210968986789229326482969320413359485010226451659879805671680739959324294042078911356275436131315328549212989991589545666751732270983118520303582346588720270248869039422999247994471340436764136369410653651393551401676566868235308843115330654907858843110039096868651985748515991578301833481518170763069151903045152968821673076024747152849088016445974597856845675794547372957675742747625910470365160011738830179689675790743101571550580595463873776063079482321054917107742888688773977304400599650866536636473734035705777564150596826970982499008215391243318953826186826788846021458136095360393138086301543581474793744550567743396720938324502720455297681477224202377662498320615164623289392000097990223279530559646837684956356920167840595849835846511397353536173930447260132462825685999188463896461533124363804858550821995783954361009690588495282406095095188161365928202357923488900962024815192257273403678661667517107738470703344575417519549870153987533110333914776895338246976871593917605047195919315559769557604581669245834210718595148041348230247033326239814403742341093090032133689544282843087140890124460688278379375084828941675827568063354435445546973339244535917795951909539780646605818829530352025982985671813183911207275374271112503835568844484633752826123487944466315871266042588460253727112503903365330602109656369730342079509479827299152226509495731097274822708169185825041504601743205335458084291968884707400738146621631409508134464142959976474783352935973930391994301016221246285878502068550397342625015921351268275909840341792769926477356450049835441834440916530035759485492474109409015394028056465668380850827320978359808184624465207654360044282103018582497947967888885791881293250645791520524818762346952174375647400842078644842500430715291685912088946222438484646533759724110472913075239528142293459959536794333930432622461200261624084363586235224233398930179013223146736627399168812283532999013553682990382439315639313713234746136342736811396603327509712253310014084062705210938263376849982945948819050519353756548923775271821683457934779594056224875853489533969648384097416821522432178961178807128479033142478253744020454520957410054910612660443082533380902982965571942295663021808675757906124848635350315073329871613275776037242920454465857558751744395576574496613516152955012352154621648672287354588279834070424393752107588864415001183953025899058924018298296477004333373005123880912945577788506596851723382592272268506992106832598100498093626602744435051435994512838843087156524400745871055679033278626339989267517841080035593378032105650069706768749348022791817001258292988361530307762623126100250151976322150427435658656827181891802005033505526360642887409544355308709228759281440105548640015895859281866275287831571584600662458457257481430468593305732522631917592845231959962131713481345112975057614590317717250361396716658971334997959288230670501732463464956282566754951634625289895414203989989854017051840542377340414975966167179479825522820300220802210727011732770134468017682340987062831856263894326076758897733185177313999179930648736436453455933056426683758405909254139632471525843573007454195648997190017611979439119317857869269039802109009235142289136147228352126240878147013303874751786184525723671062797941158270982902291782978176560105171618275643241263923006909057255637464081875517915045265258558641320000271429769493176219300864937952917391656052162060078629742621081528397756982446421368306087741759643791406703531810973114513400917425421767492108143383521784308330501822142141981469903667189729640390508880252372440172698642153011590468173189414818683950061838847224099111746269589075312234112963234307989891383952360647382509351395561835751067912512415528262447858009104080473754325050601127478777355002720436545033766598310205043958209052600693963521555098708275538255798911002599970393959362463644098087009243575149792526388208967386107148912739399454578812057265884354790872047966239526896592636777886407750421770122256077735569021002416316635195113133019340411670829216446073633916827627767984524289180509493956884720743798553839956172482205104973092665487397598866743898699514086796199781306880936833535515744944361229940905083744842642703028567990645980596736388322836551915730013127571880192709997640175912564266054358170414759114813045004005358553045941031420835067170362247357045238839868410082060581509907295711425537479270090249325763484286259739417656751997216677425572827804008294535785902175764780282470968734489090405674066116956299578333999492865423104369545787864662626384511362937015127584511118295497135126116536538524258904746260166712662398607259499739005660004768392377365353651271771357984372483985816922306301706223497079041540301203997237451307545723463673804160660881812302187373704524569916853717958205363619243758336082815503292301833193508584933368456490784763927360263228095058603307555932049246862142471202498958541476320027813124541502445741567760155529684984643253121979179299201148119088405180120625429149143557293086565543896147588577967445653206573017527247341612019996848669735533953538856223283371215761520493403751067041099716430971547742371025818956424829515583689378691359370866329328158824741233668286321296852267293848043118508308304619084819725251329421879837869009958663847461594724983383713917594849138715478351827835376998527162242528089162418200264975159265675182444472546563553197283813831901293019308436305830149299232416639575879834533690625653411279115412652152947119837077798336489056598047653624548839148552029187464438021222548621333302528263028377279408073452654777786895044067814848203417103322303127160952635140135923455102451784592517244349363339595740745607329695175248339089504312400564678012065207861447950633262276103529038122336533558199668192007912188729822681396325182142186813800166731833588746921706261853663277268621020062960167880491419267848479249300512867705779574345733936609209972713751363343746928113364591461831990457341419324698812897412966105704319898767875046419066515491593961986910754577141444557137149594464899587075311729043466137712396273887354813124219977940960928958055028960921734114071525410756502368509583237838169092871058255614660923830755233896978987329819182886578721745422111864485283939545415866242013566768631306519579830380391056621391608362423024125544703580862079337829074434968359518780383715996809272146844650900210482623380292721716362721848384564552123984436141897854310262008520571862540912577590405591532280273408555161526051874306191542607159805967491332119816016983743630896154981967247453965854067334484897915115193974407293608068960976634014041971862516897528246045455373080361255813524939583446336851208837332700531472703580935942914927248537807205626014670534718829521686947497587004200276365069498242008903162483735791263068976943402658531613492767856132446608941091004736273989424712589142396750322432756881096579704463683207331509128998575066626114604221933841721618504236173046343140494684249003649527766875265066524043900757273013741028617082378499391128817221755996411182993504877349735554285508277539889877642970445275719755818922402650921930063516479227547254085777802371115206230371192735492322230205248305251287110870381068059601790814783519073737671759415321580331588718236458392141368306350596013799913188079612411106665452691897577335303957093867291669931269807929905535642435707348896677367529863188167353275354529386665186010537047407585835787737812463544846820658414732099695644326103414314427615385024613616835799814861790381330169365449823616840846551223672833395610389553970161363331782981113342982675574471807037275361835040155897832141537183099846640110216003849884288489059964358168154469351252113747002860989773983172917694969434397958990290045811337856038876842393728086046344770150587084068246757151087540348199624721212109272659951971990311183653930808431330416781718666679025946171425488956312180039835247140813422508835084078749649523049531944889660505873083943285364456924277951486466651842984517323091412363068057715564852294343911661530487738385739331727778853226117106294809037449033539208202737227144628593147860127105089801788330090424275636028855482375838454428100617935221539251200380442979751496313875439985924299336539506253728162178399305049610969825999885006008886329030240661215045558062851920938403241844203956329769030101480972914890700659609831918967292423907601616382595913436673523330531977843979622845519453961915433808200282140731676315997727168158590841665949379181872740903392620661484440107565688740910615504578017685309219750248997097405397004522795082220448100624538754430498316873400697160985757239783704295704556495237381533485872974321197741356915065011961441635622252400988300805555274343944198215322828450984531158324900215321299174270421350341415520522050988087448146204168886909149304947035965526933260565958464181962316182737044457685939514208698576868672991236072049396540212877085557885180703708280020578655140251517745809003646397741388855463272309562891149683251950510294015511853500288084109568451849471909074255899129361298255265844884326088689794350908641616859215310416469161181402545072795975586706870081562564643836938006808758745315066211176195656025736145911182168789286885324396270304650142220636116210759355844238653982002919831964332306670625911281556783286224371623653054622528203790105019165012708586235116710180881296825313042025021815190740734098978123324913800989425130012382360087164864867278690586321099241014912751599462969469783474967284160229865423044969517456976406311687275973419586609064724682873832028064809839922759844954380395072680469296290231268355020394546770467102260358481586442550536985998409298533963613390114064710436910880052056256103903609611760926504192470207748475941248191667246750488025241226260064256819568357999978266853417231138636763196906777230001630311233736439055015606381609167818524503856088021617615312349033469529975341718544515824036677082420993526118715568655701191592112903824224103311499681379556244451088178793396917118546788525988952010164107348838484088789512333189924648631915884555371739175463106077853376784425891544355806184382958769480606964399150395631147960663859641307721323708231154565230428316988725504831751417044627704758999029533474650356421847738795493627239620457216360354615510330651190948324374276163724291498439542725255454667385153486322904894369877295346365309728130308572201090733277784445138532192116060167553636407528069787406205275700361472675145965569807138869845783589660035156459883360340608719394605270319238488412800683502630625206014537259929006208469665437534437410664663352048640961249979472589450935093646141175417724982787609201944548206947481496801170433365165828502853453956627799379454498199440195489801451659011356144040664989823230913930972744431333153773962583521823943811125363141343930358063320694265713325551126657952525578108922611389431925402183905063889530883695241245502866880033714809710208799783893023662146568055050323349599030948305868189594171905578408174559079494929683192602988457914536392496604777576849637889135709628715940692973032850816235710037500721372628419043329724075474362201956325087184725254708182534655215128936506206990944711064093388428054111187314543084217492546426516511615061834168100014204710415689945592552854407325848204348639595145158797371813416374209850193908093041962657092303637023546410997062987973602244589505528935255337632552619407295140829949043236647289068963889849807423812260337511171350030925133030555410455887883917355016013789636503641059616397745922697603075103916050865709669082419984654910275732599975620636619400397961558310817602746911066780648616274013534909468196527205121573771952966453356800105932640518635873438667003474780487305109487335127661545465464886678167465908964685899473624163467678490124886874182562703345280043241777692425744311449258483757702009375938582641310235384802484831854578280182959268942668270155806154426430604797131904938840020948281420629360655051028998425965898843910045876198174777436122210728621369872523100659877235652292683397905332988922301923184474391547498456729874660335367474872241859732850368398629864262535240674611451720890689887937203694167510438074016203942745090518129469794879376972826031449661082980301821187241620053433452770915444321397769157689085404168140093560070219639045284758099631939309827666190552209759954688497394922697215979846313683277458813502652991783798898290912634562288643915846459176609658383489916563738519439076891849846685248492469010567090324152712193419474346813175705916258879963806020024196781416484701880930770755873740254142560658446326429203844797208046588447528161061699170226866382255610058359115612114167837422198721643710579461280778903565152202549403112835705368180725079776815058184071231135187458376069895493727516325893150810199939256129146487029897548301427875890619140616909489193181184431411477160401830310300731117543108565080017802746482369071348721428777753484700182242620882834045825776793646647083901597364299399949853204038267469619246586659876051884039277668984600482062302366096042094384459658573589976390120914503343599763798340621868850417634423330244119716081944235285689236651599289095743886170225316718625213940319482757210018950914198688246240449301547734212262591793990966616238655483432408334894438673468604019538005764561471798183760401788555708520386885833963823101670691567790606110103506650086842797801323693847496641256957427670207101885628261679281549127212198690260783722916399512376870746884469670129672629095580443893148401323256230377090106848961911515569608639396700061325797074908787840075059095945065821592128849007365042743704359079953027443352224688642749840649898948552499669373994784823446398796058362615388249156267603774803494847835265325039058196003219680781434622841499250037992124760508327216303002153116964175338022414499682697020928613639574344296354412087208652348002692973957720160559874120261127513937079517670141631537949529058072072196892952487906592235399449168760857674288162555615114333310170595020585984209122246359307030365648379693983343608929795912506963822151279989928127298798975849806236104431035429109704721559835037499683351710445609333419216287217615576415145031781621662641208907965077290568000108973653829252990251711484644824792863264667541150200600610656710819945307122635874367958189592719741738557574166530164534259289528677074609848039298130860648044062635886212793215558514256310895901024055381488553223625138049188897285381804635872297045966787469668034025049331651019149348373362329227755547706060888248517567277379889406649957526657651361037729335184568298933667407878772080929220183544533044118372188898861765008104455526887809671512453502173673455283584191931525125815266792262292591291447285190493387916073045354826667449109077034865015392107283533481610490978837484403141870013832549254464977640854066934215392545608241871422275995718756413908015731919364567247247204462562193749317987310213164393901153194226297790211985318348703947631524088011869608294764829046495957809366619467282886777579199546759466999513359722587301073861639095887677562090839482619203484507746631060756388537742923689799922070774076339944587685465050733718679736473771942353423499253991030985393591102409206827329579571681905655848537277716544300309410311064241508378690055844170107638750356948826147357195326988343393118923443244004192373156531178852646667637231578903738786309335543842325889630648212577842966254833730532452618741653460703796473061684286522680720628793119888529096595458466934694846396793896142093036852034367015542781150567671893533926969872478890386056653770926346246112186043524311764244158589813957850930494284077693701706994560700547138015214141469398534849104294362687058125393428029678766340515915000738576400478014861806470918770988137778485476713352770223649182986119697095478971632737473352404588036087486558531386778676711964485048895521662059351484440197764207922963134306820161657224008984836509607274995192978449624203344775006983380629382483806636821548719000622401118482971904715783392371306366550696272965628930628327235917498765565347645745673826486547781702501734115007956946548833260782953673320870095942763939331810159896588924478136094405690826528394728840413100579406203384039033096370156601751907206167932861292675509543138443989822379158700323117076912968347760390137972997269395820217707872204655818407664482349386397488810990452613023206914687898082832503834243919124467156469703800174776580932826457050240490686437711235707343417544844804765526061307330407336685378134593850160147413146852442009294290682672971995908302771735396741111458473072044457951234739645554745163682614789108725971188013537343942270239699945327035307779697738824721709638818138173882070532034412793716567450177141494527372677729859972204464828884959050673399128339322068545620481048889509085703925655396555228475138004770644215978882138649636411336213494107572482206837987074472708536883401561394546904519432677954333396976077107130031668340680509430225857265591818896186511879453633618533125646226658646713121871206198565274540937297018343057385923146984672399615271935509136707860475114098533783757007510790852382615176894314083357081960956260299312021860923760531512860558014640030341238682302402356159194923476363453589470652575793482741001526425784049161078309532687240566515367044422953058210796717837234670780011519669571995511094424573647454375926995082185323437923338425674429761802658138707910048498142069007440872163241318217034329097087676714225164176235430966670894284285067149370325719884248154611830265119361739643933965576906400637005709651386552620735761707815953879115435987275084514443306302005832081183399722553873555721511525961788006178641600116527187007910577442375348651957264088875498033589085955558068891145399636379489048606110541965998744455819142186164768453990923966537489385849186623630898398994052094185672512418674817577182646053798287577414790597092599912228601685961919560824462315337238647166098831310346370269332874289949586956695986572023007310862743978990793045070183392772492177083416268233025568148777432784818818689411045377896193195442642200337110359736979162439945597018316070674160102243249871879455387503686102432146284520573486546386746712266947339928113847915539045469264580486217722848676829372236994699546444584817559321272272090762626923817564318835475730750513553027100737859546915099216083349590978131897067683757382312838414489408067063202781828373837499584499765187761677444818044026483488252728283107992099313887455901939183741846110056715245236913634731675965208873339451017734507998901257071666983335263622723171781517669373161321618604101301101101297151844739662542672950736630266352182691897944305368635558309164748969926350279589981976328258281026151210524045996569736109132167442482018468747511438821847494949883978806313358269263833843587769877592252570639862698004537916721084768249919944011830945484400420840884251999652455051884637672528584502758321522679784686631533139250671515177601127179557227103988191556913939010547029456219158100588660294430048626200143996343097172647023215158578494223064534167566438457693549870207399720917352609572612656519826361314710695997804650307319033338712232421021651326735464559916663050286580987428437740142627823631446174226030467323319135517432447393890628186930758362586680904922559582173996091732784738212829197657893681984357480504234627003240249589701033237330333595538285000842705256521382763630239914689819182620043425968385006380978588175148710261386029584184813218837679244890017424005870258216290126535205490007958886271800932284487670650261268912479938206862264536094448331018623085654203179088489933314508696514424897122780567136110133743458678467988729603777678179024015641103838862045014561067420972405696884892284092074828320185554151675495797937857985301903267405363658198741409398903077996743992360019626683892348045104489532293494109253103331683761676362427971829665550515789911033379071508013850174454995114544510575512848623480164414434504238571881289399216102616887446539258160710163198770928415816749306434669241794697162461819903060985309683205720834818911266630815549202184742211521076226328233998419771184650142443762024057050351393802078527495020520448855317255445299334283019426430715896020297348166233389319897342750040555940172125623555269825573982806729384613223812430665451910028547020229964334070246586560424620063991663732666861097203081408153941410828575814971493393119545786863547904182006283323456293571624194978483240772555059918777800787239906534650767327226552780427187005854534447250169172598454142198711961173043929503538718803621793776804087075324556892218430719652647848520139351935043324199036148925231281811155666365574044031509064697572602123212127719827512065605926488662516999296480909511541839674223986909184304753067213615264749811060650045142505158150767238487708567965230215230141364317446079108874040886204163859093147157056783901707804139752219083774988421707313137638684588730478575903427884848121515609565921606983457110310342683662832001773966179304586911599779499498956057703712010245822186902653142458662162792351006266154457372133474744050855056013222054583681625030125498666579010654220551187535639471228242805252010477992160483509256495671939661262806871997694535660986262298313745595612070409275378347834885693027761961383329042864327331236838161400543868430103466513908012576035932130254695226250176796853300019258914622736282671913631287810672467666545391672714616039912687807047041006625908001496995890606292416952122418717320433674355405482166103060389345741598204564403099519357279620497367972717643563783014039963986901587354337097767514851684786695905065806339962544465792269723266690840417286453264568506786137090051540072190037731124130839905671960591671482327825398200564801440724831187836704206004287881370780453236939298277711556458695219044409642778490818810730470815775011913810633472663983973832566906025647402276463726754797784373186317781919369081100491365900447742481255603859293311941059975597503510265740415950433139615313413574897954707345691601897550487026768510134520210123669532262622824011630455282755734063416237307694197504579992614572800562324354171090206793585911781481179359348494871464338498774605939736417662085807168857313362181164964600487394632377941726007473913259032988342369037335900896916108935883281642746583348590193545318974611251911285816385895725435472938645113880728010936680905072021777080612795451780452339886352235963992765495716880865287168926277585363886474023530235035789857253365834692416297149650142816447555254206426936848065807838249525132540450093273460497193652770861407880334256183313046847167139963185646025323291622498539129396857492671919153778448495978434544483839840568577667048326989525947876719748253090587936365078693602110830976225106879225187203234064160920106534177011964145853939397550436786001158524207092118985023164751581876483957577861635296158122314553359062058092275118448975800981453867810529183492089749710213094342422609265991502181445986336558815707583061959872097235974767817036400963838696142463376628622083270365420940362269816500923293293140633105392547982374681888939673247174364327045078428570188544861280244524283371813584521288437488604771148364163103611744025323517069498092519788123941045387869657895829991664092459307868224279184402289933430710023932188114315370750566283330646830626811384164483488656411534316099830036551077488814208121727999292244621175071778066930454525805309278495957620297083882481329944522235456081373935241059762979920260031421130564550023678912987384632080429749914464181509539280617255860770133952693454819355495571441903162567935702186899062045924518621405644414364042901669691508011747819834682723001656464433275321286819967379158196715249163883966382264425620832273278087643725089381484164522213326901589276993128497452258741122396180778113601989701142553066957234396815539640391657313500875642140402698703283415155892641909497009610208093372216655590425435007420564770976332867438872824703824225854987607582845802952622108544159305959111602557183164038475539150709326450365009568900285534640948053111757019163994931858052203151477259549500358536320717781497052150684007965855154934410734602014153119199092196956965031051163926679007993850203554559125051725731687157392378936587675366519819300065705517069224701015403264587843017219056737022448103626157448460423357098045121412096935007869528304759847782453698865778416085542877905506643891617752472793219685154376130159833918993381977232460757552090129516710899560248515243899252857922972062028734405717261758684130703264534661506035731993926339352785226368131479321170260608530045289522135286394531537450395900485504233502659862027080075163836361371215055958042075071740676054523460496588065935975062027348812978783464293303113042531548020093500504745081095307334995592614731463448105808730063950248977376835650929417902177309468188155284590824263422168136919003502737820532062791389499322576278015447877295608035538021310417475880213129334537261097973398335335692690440507692071792082679718772917342196324328328997281744443169983124475428866751032051942857671273701075568931466888992008843895226629676045865443475183304837548565453307318098441423182095430416046818577334492856043872302888835996887269838038647104452451156679891194055048089379975541235235698606963707105866312256877186626981714084252938023395872643758021393855613384020205811838285926927390929164974413361837596315529473939845612801425516161112307524614879243776821088990953940527399792969406416813526342110394177360122506878503102213176927109617370982975207480802035030538169510487889763435544382921954599245196356712109696861199973851045927152029094110284372066682110517111711605067727130329941687954267264396211162420435827859046172122537499165600740903212771833778809779940839791304321901105766279937554559626279222435734002929506437122546682554030435814932929792660824108183974563394085277356375963785726867440768344881418820843627610013499155254938766547802778741337672851463863417547376117574793779222438893718626709215574411074888934944491202579711370754165057684123932063442620180614859910312241958968877784084465730728083453527842760981600811413257845097339798163869743753061830069127840240378385253440517586824558850978440017580954431905174734305199465225337660733088692595944689295201343708601120615852454358577250485694050829861978548875354228887300134749310805199777334396558567074375682000539470489186232407109269104843552834442394720861707266162702397501932487767771075099680884798800968921659223949351120984761351015405573986154407787872855854224007614898673622898999406023641993172893666018929138747268304633839581114754624766801806765822880243792420486508650262059564478897124005548559790058209832912502276348994045578354387889214273612679788959922676625839523778186117555643118811375745694461355943792718945135761005108578487119674255934321607873363210204358514831524833122781388476138187921564241726757053179876125612906718565214880608203251212900949117727605175381976861615299694628478723913459390583558861001583339701541170336602858794753545266365343016430236087334093099959457484595072510936795940359585168492714702010182947119877444147426740061429533835394051245894631024886443647779807125466687977462796601088004985523278026930569090211900301701650274411172072572082397462257687645705101385628128596540944664143700571451640312942479234079162839103882395456516047016779307946403571042109120629199117876730082386415735235029773981819654716743874829959245688774202631899692360194417124553244202281535185543358654717661845004638641532290872929984904581797887959287510923325286812904364386238381697170222000488344057666898868077215914682499295993855266651294672145438165145680994134017175213250071220354255216905577638866571100198955684778360555053193358250450423648947192356586392444476873082354292750143067000370537049264035680459612508347710907737883515860754590699209466037037328178415371846808970551931479467594701588409200648590154188446087092300392645473713586635116505079216377876230292899765778158891013801432828433772808886767205526300869551767686385815385568212580484028985331395209470252935668760466320852261265855339509169851426746770006470141818530807836795334696688306370574566085443041989203276453073809426860501120680500971354659211423706109604443361417637616555219918794083182894335989463230003369810745342772866188205214631358865119913180096765264735133352761024963153361121620640714761455001056339041141342686147305211785819590894124746061513014298589999753282728810943382404289512221068911672030516136968233050656493649397069446137107878110283751924446278327717423390867562522189656493095083380775978275823476180443411553453844241291837573967633261030377531635032916912914598777111988314772304061639541728566737677462815694955743136227302353471093386933981916493169817063741200143139758792009790000521243970485435084885277597429682077468513292241580561218375398226514980458985543720078905783263746174763825117171285649576531946852540228906196871469903815369847540741415613715912145244834665006217268688135460922336695741724234867603754149452201592264162007798969470634459338809643230739165172418930555089978942021872640442477954295957839011917438740619753686611124813215311266409095869136756712278083496562812875768638761521151684743184068500525700768534581657838484842677397210606944089621566712254883298989730984659319323162415847836175870795932982434302999786442522383409489442071060122622360602083477251111810913559668605241710404194448358509465623039920133914940609878705896928579379852486099888269514269323732136411570159966111639879573396071601824644778036744344321242914284843603488423107728064345272625711897006785027868033726123848295931233604087194957314752460121454442413736214010786104457678592844640427857365811309877139243519804515434483016168245866919798323361068654551086585425390024764146300253200778136367779091054126992970943377762326801900567356243509036367097904743957992192807171329477404780024197373414934221720261290225515171528907719313391033910306932574078248905865116592860619219510067776872870855252115924762455281179449490813661757786495179735337662536545502530939067753079338016993174425711788819883595111991584111086742797332135266639162735348406451066440800477986005904076776510686792680832611165379683019254312056935638764143758328628938462134168762696420948308624370280094319170998533457736713512482982253348501665250177012037518945575803532939038080025451557562525279423940692064695504485150807951752022380291100464326284710354174368264817640536143828352805859898339051334407252059074527077095058414846123354582194469652009382196926306342731715092526209155235439518852535749953301360665676090766079129594917340301198885423153330661327247532847914921442314208912351363922936454591557671735047308497195811872964466064128078298002346812602894973861299759523620580274283440053901231562634561587623201905026042308413978950254619772242824970867471596460517306245306944090544386486837259949385892868085589370562016495192137231911550308426420571713248493667041846369286405799153091143337771744496708540604960129014174587866964165528144894553566736899100038548592772350286951506711879373364655207312317177197439806486953979909586806830449860540047549100619069334121215593284394876745128073955548823039008518140440721155253919103718256705395496891499164434011623178682605368082376452903604590649464687388504920179597810180908069638198992535697988543900323168815896136956032146648504856573470802120226182038840316639014006395429457208427779363659324713956612225039748592515088414569894668815243620977022353994871334714548101508674893898899452510073131494529605709682424947097138118002319403474095538999328269026372218806693750651901263126962072180162480378346641446632324316530562086579684499895164931115967786250518301200439361003472982888091362185477079746391426543498186562893915294350389841154160427282454016340203975023792852421368894423195118292415496632230397534841941669312640888210149643852039640829626467492750342296638225994715201873380754310905839303661719051983583985778237739613132418179778999510127538829843841635112176745797772544550753516686692758336553964523440784695422134299124073770688504934412748310376813717355779973990844665722950332039552772052689777834278481493542278596580494024396235397590330759544372466886892674354377188992423349731633304848746832048023117689655296707717351294538884885132170295258214297755433279910583993778240174295176854090848611902420247886305031449084155555213541822469506383476184070411875697228139382569466202656712526967092151927901541591755888499542590232682940804051416696542171012731157322566658264129643420492211428813351402582728284541339964950135407061413728907332109550349374653813681080991252174142563504180173096136811762933724463908079218776526819923875474354918699890188602609644083019987833660551724659179318877288705043239162546515883269147353905627237629395964208323137428631471493432950966718203544514415996569735886081617221861915116989185860120023690556070124355588180234025955890128195844003605380053726253089263390159738002420693603277960394874153099464246648661126410595312500112510544798605826370025736529365684870243977100975348757637466507764358174791323633298252274974014410554836666953361448549437416682067656544702110481251007521591136030201168647819677754330159875779984090898439966941171618519813586466743887498381785881721452602917958765851673447239759983014519565820099816345820179233888556734067635654170597751692935583288201809796337980973757320888098085816640941013650328851704739279998257446332693785947624705662137900815085399337347274308248977553061684971428739880063196862143354149499559914528438294439386254889418145594319537977025208695445134688222584721522691514681207050392752899276622379929636106500624027913874539173201553160321564989485819062399222513168157761316256099283101854636075972635419326677622126496941139248647858016633019274726214178580843508220009517971591242417698933547079658074802313650853110051278947736088885267286604949425446268146322848553192523083270278593556263925072120589375523851742802216873303483529119160386768242153081659844235429176512279347319756828859215386404699169446521537128269294522720969974026069733145405182553370617824652785367489419952462605513135578088975533715707077242006035077074596884315507413509691235737657763110402726718365908440303410430129879614559353785085477763631666115500594793250463877587275704617740523646934733009267902459723946148548566595659955333768587981848703165114871662311825023918324416285053186526856514934338648389497622930770813618563293832141911251700444169439640008426478897894620370248482319687473338905953535357779168537133389183483750527478745043078645477289453734948119560559670932586447283294312953548517842249809631921176835881973938501754102337757225588798063598055812227688415288033087192156622899628046695660915877242527601318112956698162154720674394150592755027485490562970139212328855581039106467119346840706116683185074066976112515615553910249041559757473783710978062119077189892427230142197510830180601615213680843845979109713963397145515229741254356024928545817315381551916643591927763498699395592279115731710970060611628946474899278092852432600286865630784455025209444275937352675163098443522415791971513773622456059192634200406264296483051375226140129146905978334752202602095582510036529648869513495162226317738055413174861648701459750690959628912956265655270492102750192731062698187817173662096859289718551992169967616902392775435957187886184682949111470552971648329712694452445426695013643361624534128267841030129613391102195959113019531116174161948635423196400251503798662555521378027039918825397934725101367116572213528305599555070369988345736278520559828898186171818075178770689440987293400841374993310508081174307534310503640519393800534798337857863241002672981886386051176315766767126442272642387142447407153709409463607435404036175632727202483124044279116853844965894264285027552246003950267973365283827713369659687329593392755897491668505793621648985317042640777759384925402277402385093118054502099634108146176869123955568940844812449011004970053121963783356541744250838680441984535271016330579452347395125260896051742068346484931369243601555374739728487122350142118347513194498633563131014485080604975775701417140090782413502750968418030178146578028247931523039297689007908107972698971880627291710043965408948672947160278018416468032065980386705913543855644465379222833908602186230003805416336725468999077920990107887357735549159275987155317758594458526149126783166041167940101557107041407112450968122429282334446932794526335783562083148160214163391503619998716069835116462940212132435898125359245875984582468595891366781779735858464208480108877877327264288190497135080423287348731396172599110003065112357954785337088323571590147700256581124278067076011771091264075430100822530440871649831600915458683239520777634223919640312313994147696124504963446394473560652797993912250556791581138711832595036762496014115052004786510725483772360752994884390113925087519095611605552458725405569133675690283922949556656305172307129486987827044582806180447919867003023512966412435447769885049350029740556777522054525433869145066021300748934732726953623482012778626392472710776495006479969216739517545735984904453212690130405825993372499271679030187071844155224739050148140798316382970696707447268982677096241118757415174000429066598722373207631563322164334200583493602671453230058636217260111573378877509716298563092617626945717304698937416779989240027491360445345055527014240061731949223904205836660677279350838958120260392761074491246383869348084877599922473832717051442706234784840258566098613962586579539943221728779353638159894966250502984534095193315629935331299696550323399714862890622034730255766424931702647167304314198213635014944364530553080380882055578223678792429103891982184152769528436314981700542112028412023309718351097603926604643783921448395064087357428746049309510813151758656639274093880120910933582784713334937851950357543741814071649852365709362989511220215616224961089114193232572206469416911571401714611920856490878502369182596055714101919987815500436086219740359355606703448917410297465939626411185377242939555923328854785267019810826970004899240252529804490811159457799343981185352099240274197677551486716135769379785589504497006989311592895855117118150500126235230423968915105704484499891558626543532691867565339967965620312633156396552671685490754380999321892925825883266579535848595036429721488746307958857698369426593901648715002922605250461115237631814465258760588175853396912577355404313422217319058007301195454274623477123202384555485479099244506541541616600646480990946099407931594138033242566562537182664732197535079699006613498831811055649319207789823170368540641581095599763658751143181799834816645428649300730111504947898443577510999504961321498627282668549930519837900923647039882390116797760044956083794972872000291974366622243167493055439138005278421487518513715956457479941690835480809992093789613482259574240737522257645950848882811521738419261015857005954574572231891039678469059219992359222428819224750167841580486428137170421499715747803900431110839001155631209334454025181108752195640584359914236666030723871292715906560386373762285453176715303908566189341400002701742562340367458699056334829110018148932905929699544884191907066961420149109986344702974247226285577882857840544498920213481470434493799136237159803260808795350783964050795318645798647558296314265690885524276773810854740586153049618197222820818677237387865766010122674268813654755314489261398184756639533212435126611969388860937309953974095367481563457843009003021060429501292073489987120232448872600089378662630769857586370958271266649082409246794184340272963669518482999911573327591956982551344914931707407642837969911551526053318720951565439780292330470229179535858955930892311007961253753120469404227686237587736307379918354328655048168675537882021308905606327421373926380106754242075515344374308786950250744455892889894429081477165370427543504887951266667636724126194872876281966704289267558374936591217242649001714828911106521295672489027873383091697006613438570756833033154028225153908806083109327177710211273866596342997820929788215495749635363345360555593469478894758413988930098063692097844493408172820270407886191618777567440968918482388435933029351514951926599120875287211057157614381417499145573047191175982344191045203096297779425574058421740256048468182113784758975622967841172136985729646233214092988344040720670160353604258510642538497858194824899967621797473939748169739870871200705982857003723821309661838716904428442949387461210811715953157896899089255280676875310805582034814642289411320301388516488786251488105958652023710437548976364818590563630268714883994407653729845739881532056042177942333678277787337179853008070866181275766551474952708317595250374541116137527503349984440577487796795173309453543741833849703893271549480116757232180379100157884955861674492183567350444827007806909151171662178256285262156412662239577637223493288002434835796758670694381461463531273996177427379059958009261804427553235511815612956708799157816466651022526810680564700460900124609686135046997726484295225915743730037838131948363513471705764606550617646842558661580698070767379227593640035877161866825099230435915140643931741310323552446989476779318052445363676484988001536066353748454147706326378307736937209758808836549933978655585793789226131121010308120176540284610716933314457607894516397841583550387785805501289309078171626496167307707257657909590893562944446154775025363557553911901642875230502778828477991737412298070384147482826356326337408772304199413742928889825778291975598839323137275882705264865892372691585168867085546465880206872399674189602159714190125030220432395092907379982228344655664395351966188270297299205193475079401411306362136328400204090537100121811725877870937809639995968849361654773545761529261102810762641306859456007128148998230447110392201753373683656131036918687903108211850235358380559487136957940035767100365441476386486969332673563607741445059947751488082681876249361414146729273404480568052886676526460072968466207960034144102541445379552724822010897499604755541947206977566090411006706023658025875927700244189477107153846185678194497996463865973401721601062270739060670728745944048109401402846796015213763356416927678069776276422885142992718695692362116521697280216911809701568250182237919458405984010887761086262866095062067461756138179218170382609294211360400220780547377650580564874498668344097160921387828248758342250232409894966845276457320896475190363058183374386660884304379168263995999755744258184428284862327419000887152864697864744988314493272884349482217827783775804772106750357157262916292018360668736204781808647165513447740675426227936108282461107788739230930417179263070278396596673527714284619882467857826204614702269060917577746130394383421725760553612881279059591268358033270289707082391677936003940602803563989954176786680496338901512309144353717397169828015470636258767792905172941740237819404809470750811130538899065791088254973862304321134174674963111147204294191978732453131488649420626119867277325531499020401674219016957049554746175191640047629777425433976247253648883576184817479491529267291030768467710761119536127260451439376745174441636002061738970542359932126981545153508393603318609038250948155843796184712210131769615910601624097310019874910586417590027515205381096824043815889875958737591231601472728512876358846801240414795084348341383693113362508373152900310274516131716242293765463343504613763874436612751727587713689397871420207064490207875710581971704791747385666681480497202558946941819176447741785505367598231861158202580674656925824629758303627834276247988525261294957679648309250507588909095077198731717828139795940141021458600384738169245116677809989966947150712517364509273581581536313924643919521812404421382865199424660396155527490276480662517933293282000622133905988891009996149720235020223259996927090771537123560809550543615055109599554689145046399042048768619751838835856735600429823808556183967792225494533561567612435189992140404289703168976296097678009152422299208390887225333358418882472890785683122325444711645425438617413905497627357944582049079074947059484139555023385051792691112387306378418682512325347647594074054024559467544759222789941932043862831817881152510377716299468504454701108890202132813529135320676998632419563102146623483965510042408748815343429563057244146206313068830417040582257476118428099183947578115912581201798759732643909522895573596897435416550816073070864377437301579766894383810977475940414641812064409689698592476689719632383819229367771824924002964278404789052230225737144092237943719917353387387202467969161702290473613239565304114266177544705597237127900161103845506979809354399681491161261010684656785902315623064181396674866405247809139835274611719503212760707042530319087642012288617993345820320372692200035197569898297381104618063168774189158830072764557581714301354453975723978378513966783827818850819852125368036191039512157198848337372258048290857808727967003367304700222346601333023499862262997155244424400851390715216181030094980070014816549557408679163218458535898174419991269335937015187726398005352707267450421576949301131337129090691814744074091397657936418295320675437430118856418521955558834961661750408881441612672373352614232193054311937918436908312105373040142665203952972476668207239006440447754750020761330783626279940237097146519928452808718475208681851167494245898553005847319496194255289420973084885976104992706305454053345763052776153014047910134039306185127230322042009549649294226364674256458679715590450031996855392974820327130342908772926020224631615648759652571797251707781022099113241449062490700383561181479780653427207222045072175381624586602906838959760743228400144362708895168178241603694462433454467165529347971181407796503850531154350940242322125231169583714930986739476489283443881264503527658434944680997315175313544689642449102705919310462819403480783465287838880657880205027579388555079116382565955853668557527677543481612061304691560133225812129841046843018638624748079573262368066187787233900533080663518659715666077506779917129945372223265860205163205047480442421894438640922583890142818654824440159703395936375302015101297667044469253909006232819737401307512025315061632776948225303693751505800103502790654624007775276997023069557274594702958063830650762126100960413460838735627891340713078036925551016737726013420517683075499909132337178802875195445051536847656083403967494902745613729892989382235324985488664336077695424336286213438951482219878782634188282078820181713051011540090091067557490813323810565194946049141924424155887080944712370054739027257495095559929317763764185453271254599084841777972469880643215157189576976495256811904652034471507300180833367700313495378142348036556498306282437946658837304950252980308757987343009114584787713605751535811179248283356635819536031084887303373152266575645633266062135624541479792275099677365231088860948960563802291298594673485544316924886071417080799476642259443229986772397044204480013616892631199254641279276305816995295953798799358473988101050128900256017280686654627342674350527401967160233805221243461907911797663909680755573907696304153916908116349524701453765519170308559910564115632653897408964213131624753543933319177171621003719566955601632980427712036895466207517529899999596433802492211569644398406023370334573165582349927482690045286912365782859660998839356180874693833034972466881380947917108872545243936208683161414107738953768719431679678232493485838242469352903180113541542160148212609346117762171053006216489963015681404970871595645945435029337525876866196709181799794896853070332900548724086840535301926144255707648587648083925403260676561667483147801900732586890178872028841913330047860606235412266265786806951481858161326165109162023857601145794109872047282599336989924267812873635111473360303222162935232518718649668286664936212546017017253603864489586328232055044380232360106121038465643598958263910506193736089648764312383481522810771626767594129868190198614803789376169060089735116581145205601023740948063033209238557374471337951635876145944119047700292803349654951836814067062872436620524553837138716014100474327728662830597238409159368457747890332246112450376046942362925100366350588275575299449812537182876192382772293473434443264181627754348714183979903439304099679599204691327178390366717052899162927963959159729901956047953447102189108105882621817845703344355052467005697472294018606632427801312655492474124369665302347462078849469574378742505238340512172416111046015687798436961181126342057851072403009987613445939659731922284973622036240570279088338863242014424257577312819645230590774094695583434509451785118022094715119100299827066668699144727352659682739348693585933311732157142393729346264025933251037580807869246056781061413610095518055881276354351940016336873224690494613727549109838213417541432808045377416256814261595197177784010985952221876871861239609930282961698403001747610940826421544404237283089776126120695808626678839474862365225763690213746044184343514384364517920927688576317868776023138087369631981733287238134475518018801728358972602665859392648083496500257985193541048750447658552848821387336964660599551895334421379432272171950120771403916888962713101718894403136752894025813015633585094310309685785515817808718074018799862739853665606757711081497091168570262554370585721410797767688770243077892462645058976155705370920014906787353534358282171954085338729893243856464664582824022407423841316377734283571165553480537024177745819155514481102647754886404508334372442227010739898108976813881039569880818230457955555652420060482752797744959133611435303890816000021646115233810759172287054436451030172115481577993109853452732205910840507578208716297191574963796296900668681109280344593168004473925569246093886197429667504636403877910592204549614852203116624233778360085915793030312311792049753972425760537722464682542230694828771684242518084105402972206071380589844356027934750717931513042381682437141007173036413135665244360894942792375711277088898980033929555659576679912931895766284746849970967787577467821567640281879907328412798628577464467180689713718611390806020486242215223318212259662169288773960918348694795390266090370727652118906548517658106847716490934011430036114900336562006277438490258965782041111524415965802745042638453406202271788228695856068348220346794184017537427284108100872439848975937542088900098592516629968037637047257528646962101879394717704404883846512901418827361215708247371117366198386091754046782520941238214989372708845591863042836152700185862939213421232731286302019790270804982137372098387818519010947916341111735383865333836894446567924626881261537650135354219544979273990265623545700134974605340524584710197841084925959045207591401139597683136017436228277197919909188832505441487260589204000103549335985871501468773040644123727560789050458027519333854785518267830474805324501069241926826453428219184675421176692363793830760094212844263296102565011351960314658444345536676618838164970409565161800495891864129110469770582774880029415821273643928022745994168518980199406325976641605831439506260359754138774442134226293081880782183741472457390825766755595624205653511151064109346003854241671921146941331475271805938759489337285902233240989917446004161061995363904156491428283825786720036244050416621828060172404376122163010132838682863366339475258654321357686812445343067739230504644159440520260883853589191389889567157594752427378952271142432766642145763632810296114444204139006621074698097248870863341235998321012272901644448360730351840198630049164230474438928832309954353890463004640368211601668016551497268109533479359727093717837422733257400586627320797892964335781460374127863224048985700587214026457564925435066712817267021850581674164240318520746842737904720453618477076202746865339683226273572301029783891533207337324926493609264368079250082004394243851971874239475093850788017740970592839067171088920778254038751880691940851873793254498131744395852825742898704635996742487999750526379313754792083918965050726969733890816757044114392818771081798293117170897170343278341975398778481016865858326660985594892614651211637885264959577262029318102446429404992021117959406635534110387126472890795368912827607929517544923316767338777658719654196425057095343865659129386592182215545670720304968539208988602176625535488173465959175703590641091918169638788473621690003875798416972917456299955929271502284686677154086001972100547250295513441697865688261268352645083339125073029408553307104827658274415072163712567407802621168799520781336433858957676288893637608202720942621468831494018377502989343322875015274029997727492008341051041450472813015277889496561554472595800515935414534186792768480811242778473186584508350281936951214027576190277675077684535308834858921879644594071488830717438437183276067438607541016535340005743127322568019363467469881293968849979038665670174670731060881999264094867231769973810226459035162535292208933979104911688299445448828507229980789418771665975437835473570496456644673250662740157439651794892133918208493490653262979251002335374288449684999464431736739566282990353476314625161255100220040608487143545170322180523524151154434541809692001866720545451868500144650765702737069473450368286140155816608279633956557445454082706623236902646425399128468849254054203644565968287028327754031760720750002788617666996215187547387574578426349123377437984045401084727510334381038127803076659271498263164955151858670147664299989363790120675236785334576420901594124379732270595871282432141324469534876632321498734318055141653029173531574780690131317327428114976443424865992263190239351642809084723233295861908585513901160499405992159202715684329177873190877450618842023034177028804227844636539126817640523020957873954419095735721696844677505123131915663546288273318302250558346403021924885347379212393555641694950001146309832099472128264226435341522044988863609938454849887908882038803466296954853614401558556529773546746624150800009872573544436978843683139185397254690784633688714127257425213377543892197498941225549447844564355004276004230315860586106922991362107137858604546470032550856830385192484934188260373391893536840665982063888535457541302765208579782380054394134319231093968365588087543302034711724899602598924665751307628969773917986505530797562248472429230065826174703811479747158168151388199393194952630569679290662333714195563407047201223822834753396190946478658741748316604588473157122422007329507883972454158520367095772288727576231557549171325510554816880883604475757465532974592727753105668892271398595736110198398099492612423113695998585634435424582868111969181402688432934089082282312569224523575122004681928953586567114031037866887652168422864691784540928241278184819278323490328006664477897226655471546999889108303105865994568212896782782314724896518805938590873948415789422450183240384483942996474289139705195901151943835709416993530436016329915719962763179586186055623839172222956362616930194710200209693139626332364774222196266029055146328300637372320223326639006590150162416272051517793223251193807707335748851183516702205067441978222544240249296533066369859710957202374057149966200573997552397492374653957420664098393960967192462234475682845790644574772172373708775599245261956638095556588282219702955036272414004113201865637636112658182896768657474228969812435215871798831733170824211374463353017010780897307017911118426552120540318781540123029154398167615435909278905413707294752628040081453660338685087792890825487041230062559852940409425059334233690005619869538087224949057564075208147394462407253765558537662694039049876820983483140888678327363735161831345680046334994192243551516840909746975466328195780619695631931377678753713123431942315144523699865120087945571246500821213196351004410004931258053470019430717520701668457219504276281436107480286507769379314741895177751573002540562529024335339631338334491557415764869275504861035956504084116894728626550114676817868398627785366465954861389414810226665804884574833490807299794813781879477279558841923093331716711608293546851364488691812943483594357537329279855396979372477586347581506398093743385842310052834238246532684605415948424928663412928826076566521098813568823806427923627392205767320908227877241562777274996399517087368280695243984778501481469413657239508217534478282874421332807060004072547491308381787710686548063379901341066267759895946794268847968778930043867406405878921129977353482998861248173873716824891980738360628439232971120705007407032170787934667571766756561103151256489842619654871786192577419200043703890067590962764325038070281664226732968181804701077884569147937751665369487377361394804320046763326190056763493151420903082336810859643891708468975337506810110161673537843266637047272082966627442641817342562625942250192061522183412965751086709683668315628737406639464052280600865774103929398395436695516082664508438702136022885203802859183311586694069775100337440768169020747038443623642722356295273948109596648245167034789497555581572038622962732914891694719415004622371977731753650282860841309592355158725003311893438043593955647478696907709170532104861701519562489578576749646292758960578132883490493199058903034780432207010262493842617950312645979968866999887200764133928277323106932656389933248306272559694317838729263751217695365507677574451060337076312790595604537502368008183515235960446137651388252824264227900951597140284835842535220856009722207994483262412723319900875757774912848016500298264750761274750547687473288410275743138935955878240998319106532163136088676643159341650780887013472691424059184148180984603645020674485688562074088637737595585845524445942679341374955877612119134247969495812777444273252855434642363799615625330593060226028156102988078399378368707734834442422814493540343329740262828124738778017545672640250637896668824313621019105555090443139107378527468772439757074733376904544709876533280041138334993189249507274919086521683819856172943586972793878594983680163211908961261544187852482082377170751411202406975019892291538106676651005145982137224229494179748310634460407789636425035402506085273919008107457920169637433042201495565057577812929524397926077954467908941893516617805345802046259761761847426278556144437074443471718249847945510655636845084481950138363527452642381907170645100243386997255772016633232695271613465169725649540074210986263186907589782765633158613421651094874390678211882025157254614969530755722769619615658097362610270717489045243260010375848894385337460977858980927042246196265267681651434427958043551377023091729870414937853587136216499123348622507269594291200295845793192336260132821741619742021561516810892352541924484686481642413177720969755144732856567279321920320967195187156555321760254178777218235297589555333670273307077691037448498416551754853024345929412313197912799111453139720692606010628369053673989908412416080255720535011026142180143594536978708088369569021709787182659286634492465396799683944717696339459922112699003346542936391829154587820384236343552267356326687266136004988286643856134858150798051339297826084106768794899677767226881579825343289193413351403447153586833245801476055610911150522414866422890770706390965921473441485802354792546530795948582993110104784779222804652118817835182732983220052782467327618213731932381973551814522623911883889026651359884306325402495222488574756738929410967248148594591550763688499640327532507518494969523143520329970685863483781477993733567706027898616935546160995914100071502475549673111922706696406014529299982443885895640461979750303212928399192063729955433678227402904598772325114185567085552693167004176168989097046665448439381322594477976335104088117866007476372360216909669331240738765013173204965319229413821815444214267814554362883771102135823689669176425164802760716581378671929988837891580959904492482480867971270986522808327436613844856321781111859122672073763565512137740882840139420138898559981549142491182400854287668973082303288503913199818890404313373945966167478656824658188734080507228344858801967920627323372796038103462086390309505250071343898841080846498898083963122972331166793516781599449057583910090344461087115355285444509719134582009733516792501529349540803518484236541931256654085730939893308828963477876160857884864016005016979498459627533759318347196563644617383425357802124213255646862158517935086383588083595799585452476126413050666381122577099765778315182409568220495467160395471327301937096119517820233213286350365743539043598544585283860509961149753699677028985827339369173936542691829710409186044482976886647636771027950607938875656457840815352062569772774036255213855902513240309964006720576423636366276015005032049954533257256543595424984802134007601536401613162547779371862600103780630040470177429568050635700711627340624493759713730218780032378553302217103006833102519415468018287019624017622728130235360433635660687960230738174838396273567710474634638902331735528016557509035612076934699046371278903106336232171280650509431951286677625129051727262235486915362844679131813819635610732272688917410080181303598590523453141823318870108482012678109024615677380831471945349847950279086130094288600259291030808705439820089257783551376024548840843985773409405000934561792969460773863767194203940684331340804592344972449520361001407469703939988476665528857033517074214686397268378738203361651041102749194518090912659609464635924817995262599812988120423700248901993395498704027677854432537507093617473042001580065475940462469818518563577811359541517294209890605252959200409868021860761455971517880820911763659575072465784824441217169406181202341632656099495600907396650365013492423028105868521296050036742986579138968232399085025189867935576507808471597242943295888978981727242084623978334665253476383004082907547086392743655879948488794236470369977852070312163974808034959983840134451714883100143238454637417847436725759856806156142930753555257179554960228262818194883717134839852208072047151325213065589149792252584804066585732892170422922191279143810946789051743914810119935532774886389289760168916847592547452862642104185080427805569156756364539212750790692580823257872431833843841702906771145399322287974809623574775787703287360572867903317632025248334512670156543047643823811344989765888673839731225784218048076348073623098960892971540002545587398699339324716215019925416469022810125015594379277575944434260052767454356213286560101065983772441813733144226678949007148583481166957771713261230444949282078435629311539023187467124297134824632334481196874264810368096924013719717551216053924497070335114725354401971508381561213373650726982528290852627385142046958614093352514897142386855631463253756992548877697602557200686709623584968462682571038111128397797763180181159916804841055488231764125169645669792303557127465870122939764628349723648744711644694907515014973880036322718601877461359203795438655648614035119205017853503676602182456894456710343638587838402402729492201472074407959483666134873082689249514342773100690132760286721595572805930139858720529133169812928009803765303046483255891022757111598113719604538965014290893870310046872419887525880728607849970037144095749764692795526193269895330132760838521448545503351888533621869698319437073439936157009998736679884037235119370140788990392913608305979434358549791887590222561583212551407599227652587784596457983518213962205863321599444874133844433813718128477353355856520581668711745151126728419331182562656389094543383367919930546468246999591820662663897962610127013120443277480625449424352053935139481285925170525742780942660177698939212434506550859282001234847394975112783126296378037497743973763525091458389682772032705435493735585482274755631587592079824881983868161413034270738561806087622225293107860934110115654296089436971518884517422891764022252837293960117606663947625604415311580494411689139232587498014738580215689178534069491674435797300194837935455080637536131734433773802660686180727829694995020482497451606967573748348348607270716700454973330439787820568153372671208856122916482134329189715433013151348692999951986127705680864285732970764622908775960236816908833498996301324778739491065439028669553863584784734898466101409724839073433064406029923318233050756079146681910143669371157481921796304485044275856962604018313858368485809294832507291397542999963938920808725231795853025360889647667276473561681158027315148376647951075860087244173071848571366948626858806128488955731587564982761159602162949512069526976049036353301113708116443120304734166777430559705072473477585002314755890227677078667654570375083796646015245720039142335732290818275090099208687528332055093194635145818840554684643230818123483113186965302829804338828936938177750316041826781950182798852058131518670208648274689024363738965943114409991304984695669483063487624740574958272047895605498287876487312628276946390185296300478570532736183420325261333804564681688443776485913246132631583529636013227221747420836024903324673904430016447165299714488865654220615651440223047009688356567716439130179897565257423718619567837837842503608349325967768968752528016375915468865387117999199311127421477335579024379706374310950233937096541822326807347648092524620907301565893015846538806943651098974858581888056991737035036523195251692328131880004130594881647049352297757396545307405041276407462292142698514788058052671198874423937449961204841951150030124525920544769967677753300758795875638701799286732519322700682772823001448761535362065942234163025025738961238487450772243251042625972398077481047249423753918487938624337461479031360673290348739256150788235142851865592015453443924180132050951471851833335722732700059620627398189069536248733160177040205907777353850362085928400419487947790674284790182365005574903413339684140027257590188926927469267286320959411261591410841739418092304486333979014583313522854773222147074152451043919331691356166836131890426234521434266250340213660830280463147870017748621237843123774061966485440515349987841118442320132036441854221094041792032602071031512990069819546507456017469967216603084873409938458764067076514558197446069165575299944969772797425891032025462517500171400115164838833366068212767945212178131419336664654647985483981201264900297217078662768123556706065925623113126764371871238941687293261208205030468555071856057758947594100897312580193068336811191793494605631689316954412840781248845041491070613151651937115909110128685180926522285108320414594202579639647642026626864949007779772147100462398534342494998418396176198019570872295800506556461713070458427329555873408327072667436697523715316728797465775751123546583921870648706945953499040264010456180728753183363469728734436867873449350639504961805310648461670226278869349639874390585042898538132076534509791001797081420993042708739195200259524642005615515930652493867964430172565670977884759963528351465841448071428388392929945396002465621828033341930575520648714682597543389428956191404093319488863527830275815619471303644726821963932834589948559215099392711664720733320104719278576168153459633092200369502847483155509378443149609961813500381956871551880734039577843766791304529793878495259828485686056771488701416414163300429305098454545610552823677391429056460722345633404148636971162386642045951616231943789237286583652746211037762732174743547760952029678318728133773426712644371624942182035407281936865715147184787113265718619881240533419140999452955820402778200247037359990056963673940959552850654315227377797917099847407431625796164568735972722028470243709235832195466016957415299387087582032734696548974398118631539885454854575320276940090611836170695302808568114585376418722888546737517768335625862433921117361672962868559507641682024536503374558809826755827682754009842195872080123428719293121882905735537651073050953657084642404845171048197153952358482052606359722820581641738151624492217650232002353856389733127475932309549586490148309290962039837221824622973855331291774830928526592656308617529853503644636401268550620917878333443722770151372915403728284054753144697256574591229037456897817164563104179432168252263840353046938429343146193494266927348111299448423099678195487434334681219669176993831225813553574019691660501881248350793064928654786880149211485540553384631543975080808672244825693426059899386842854735103027901004214543302247471673294959719186327181897533909905002220648261090454074042453280906652312341254014464405156365294283459876005890298033426271619416070814662642156432306922609753538155083532207752997830964481342466680973442403460885162617973950981098184034539660014352837838361934936136264353442497097103770178355795678967050470313498476272739435897786181008512588011812993941681061431237864216348247094671564553584622730581002132316426836760152007076752634822404625202498211264486969561881102057725034564448899273183621630725542182026942648734208179747599601369602029439316138410388281734779733294633108327656718002772225649717684689244104721257988724692518314017625935101530141999844667036066165473046401562647856539528509851394876477797901259741443500620854116400362989100845194124161786389728504508920152277793658360673831205452655509466722419139215211608262346820334063907042414458597496224550991279366449827503019145547418939503827706737860436237787786989717241928246598191245357167479847511074174549125314698971336828890108890729646381937677032723930123842835211518454875963017903687915163604050075641345971503379479807824136615826711094529220269950962181794085844408594433801844821739662150212621989851854913781679293248174816382165550358924842251104029868379762680354925639692111534267520804971985985706748857990596686364055613914086969079023933170088385912622427360650047044280419140980207172017096426279699188700123633608760652633739990227537057314508066072260603949357511949746242602121079737381152837389586546930734134297674848252702854016901186575811495412964588131334875239940642086708093385010281816512040273273913165961674640321336750487199930701539455953814138469006539319317471459148858683308851734557468326985525261378836460565851622824257774909069881433650437199841135201768700322596713324288359336507220996456781848088993976535812503599653415955125359957579318744932335366955779485619396861688707620337803155004423770517510702831521070810265460631959129353591501404476785498638227893282041531213459179823061400631428627021627927849242784065491808450573963133265408455536512247031849254006939771690805996738892902159467584152761030360362777766373628231629862656508970279736351528948865429871906326452352255561182546977934150601360267030147464100760162239801932278155132505399564976870209475168451455721675351318398903832465946097893848292646993010951123004034153402273087828234500176755245748764531813262184148540195883717268961046392681010660149351766607201977452853204535045478747121735360493705618163320400972846443635408956678562408420032181327747430170515640347845472099871258947545915423497942270962834737060223102097050726144824350097284355305547295282438414901317591940524761328669377872517467838238440157532845683802023849878930008531955904012007757760721779462840647887068301339249517592455642137540435823532398223823060477210628194266855132104821067434990585615315838543542281204432784039353332846406554869327916667837993955660140776211687698831158603030389595886403765655220190669295630813880051130793148615271435229856724443689991118406253117355768027273188132003144652160574588182541696267410239656867166982447542364592078623009733024579701945469729964674309076798843310001910027348577829630443771851605213252483892597573389081118607852262927640724835986976709383074371517286159053492721808540564441619210829632829747595429437266710402913543708135981968396899279817894854710877652027021766020192181809854645770252294010394777904084118450444783446230095612157240923505897640834559809183797198779453799208707199699979221817949990521008887329743823156663190259700080784070570324635724144793808870192568317887621979751491241401477234850526244947058108574931706335832683170657284889133568667203741038483249679572458826159834957721761301897253900601777847299252010290407179177849619021287532328439495658198968313376996254683824557402231616917924909005752059005418320302478547834329407569592621758201326971329007704350392608911055111658052493375999874725975876472030723272156229645179364583156644034426903737584696848229160704769633712616753745112688202083629605122670567023441314732585368825649802947689160888074211378488424215099524410364168477297419361691621895006477226603006484917043502093486628001861455602860718418726442827304685632650792429477712321309860506417519199476845049178765964980462463684694453181274959264159269758434189309172018646372073557988798520266821108328101316533363244992652992672487101682156233876533021502451577468119491215953872253879361488587311186703134288231999351240634003561036655354688132922650423831412307174027360463387406774697921120920682681460675937258170870352445583192282163416036096170138955926512579329503240606663380593370360697863643019862450231877247045062101011521762752205387380451855211011764269920706047814419384685390824187613067023167652053517155301820991185533308329544396217217680196366054875899362061228953305856644139232334363230427637770788928826842790074242565993803042939666248065734000473368202838211504828008417398106911715901427301750696312752922574010647760618761595413638722815545425481374836044366943902700485175194643216853183477937370454622348004652398697701085262873619028340970980976022458929281855477091481180565536174760534459864559318276666334941093140187864780813819217241794590436797611404686258458005945749221042219690866971594782953268329871368303669467159548672200646249888103897582892751796153490021471283624370369049290955011937686286654316359604662074166680149746565607265485498998403462614463065492939159605329850697109194850380336175741116178106380649161359062416007229925124029760849389118493199483086583348072657965444533669789776853737945226934010660186980807854393014959760983542027176413617976524245370363296016650755764910521129852448820748928798144709778487787578875183367937332421071238809089518632141512481367649558659549544126182711318095445342885858397147370872440273190356340314566047359406362640019953245920270722072787057947330159722237075176041877072820169832287965226797665658235955358248850897574453804486023806421935332987638387115534845264426745113110435672837969886732671351959352009170319526307385503023297320404623993671994948287489714833729190144971852133612943541018693691040530032544231798656481111045838343612019212096747127145061100542434786366155810583817385082435879360270644845004333580919635938867360162917798948520559910801434430503146668660495096462136756683062859785664330676172657684215705971113501118179888111543493368711416580954316468854163451143463555898340674391003748719842662076369047378311965289617510367688076757403114482893606729417167030989112227531682350212341205265481453930390844803927406612790478200672389188853822994563003281289250597698346596121171136309259539051343288458299247691379666314014496837911608952107966736102022139886622990788332246830358407804083469948525937946824483697193242336314342336918036258626681679525623153668073830098781090618124344619342950834329153078244639014301200100591883732478590906099093634576930724295515186949933652753328839394355241674824203422425451952065908903298481861133506861954862026809094283439696963330266068640603576521635967117739943321921590764870343708874782251950372435565969184661915342730766914912556915198710210453336243627449275387308805890152705913383771783494060789382531741792747913960714972840302081462055787482680001218933975808394079202962699835423992720580145553229064800777323840704380276668473014798603775452161896245426568723370148582944087483640991575976215789071510252841637016809128713144948637400108414266320675364461283784705920721363753132518426010978314453651622459082818404535611587133501659607089141006849187908584984952966460883119954682022480773196007433881896236542464352229735898580359849420785691211998247385759071408076295197112740977271058208022599476155742186717675745507498314374194168427152916249879253415260545951378000184572647422037596926649634393564706740565473841297627135943259193321728113243375623840920645627036882881718738324959317906825104233351290436254558395219581108153789779212185371843659910061272564662409262606426263110679918365205965936769617604084290298611342124435267128812542384699523810052509425246238535946091631007286238931570239116036272702723184641489579300623383655053436314788060100122613167657854472669941872686389405195079496456394113329725365885197964959764427756405555780140854072549488650756121336761811206947200528298632537285149672100968999941319982375690218124507339772808883547235159033120201394212889105290150746661736644611042275124950405769840578547756768779314837503130967421808410206365670668508682062092840517457758150844369502608027829136984419984439789543653700845858918889139880488327270671395901887744497826376901775102084550121576583465772894560369806007653169746117364374364545774567574077860498506653238831684097969778131225899548257504331169894773244374496726319052590448338321757656561764468469958551153505041385714715513606569768371624645687909180877249031686156975196463802899425906824027561731765434110160103957438937141847788029687138099173449024640126879347182389489559388556824228191431092715003711306191436383798214567670510852378863727604989750605090316101120565188646579026194074218980740078092991582176278801772855330876420615417825522854827756055681889628109704554922165623540009802438142334208262560483532676958986356680123307388605194728630928234745372780315696117881166207403848169123474700768862177132169379648089331908518066303889966420179156754776445175008244452718950332125614203661821268691570625812468975267594491834603959085415189713112952310790911281461367900269464892680313374896184800243375153978536865720000890468766666524378771713013479048313067689448178075597211282457825995698913931116402451483507977271099590483437662312836009480405204929311305222958392434285201215955583188620726984451764681538143825253034783343353584793362971104237194187269632130268823014343172471156569332586065875210959450393719166769216004451778987797892956424198984267081509059403748615713749857178762334657736770790810414390902459525960173401291479151816693334960339005641258787943127210350402903125308039961073284295011927629143728267436718273429274827503780014977229346243747750368250505905885313783128179737799474875657345721050890405504213682119398532201965216083983799187370487488276337165888419457347495495872266399174846277275659964159110264940094072174576614355373116889156027715743280323664596563816008283452822324045130955043633109424041133863749727472305673588028113589804896909485266358693315697919813740736477221396813153114942400611456719407228488335471853728879479887584852016728187189782204115445151067982324460164396054312187403062476397736254259423631360345117237113135924913976543190636160588381306971700014009894192580029751574584227207757635977554652055849386202764024007137895223559233745944652872425656894077877210816046612587568118080891555230394892431140077323890481471634589770974187464705959587524553791024225105830545005754319263809487901500618009718980137946476523105187795986781308157582320773832851500059903026373929070626692353310018632777315439628885178011916601678517954857044591075823451484418701903000551033822111068099177372851076782025803193887157433115500913158089921729129365373583291692616090143841505112453038843147288298758400331811298990696373009139035229563392202343741803837879378506876854501020428896037211216698409361260685084608350597676727651755334425689861389380653340271637120163527287540850116111705568523647343369569492586928799526476698401499019152110932970881988785263367465633516866029138408201613960165492214705778202233411999691763850729427312992319371727446572742888443854880438056670007108442359726953579110668049940775062478382866525518641141543800796564568296395232565789445742866523481707794753347358858335975514975859091171150749458569389531540536509820002611749527776606745754134523822193412571589038079167023123118500718997464847602797962251295091003918890467722294736575598190046170655268528786709268278006722378299940983049297847830787561101199788267093293053662464108128608717871948002845679527334925320603183261637019969599408251586200868905406856109291076160952202449223907605520929051611149328825419950205762923772312090978162655088429423589742296709019870654525612806019776746391298683873524850741892891648582846799822046524053750980783391857734199436911875749405821495663341290541671547320757476989796868583654520118610101473217758912853288211736271716957181048357230904410670730093224711353194549582224240617332533265502512039185392527792753770373928959352660133107441910215447357933430392274340909021143824410227873986411687443141626095602466298027176806967158377039991715978451553921124319804374830618370935893113882726159768097479530075896009425597942237138937356839650655228160023501829460614701886192154580031111205280937453032333528811568725986285961932278886209714632716787764443523272551302949316260321691179192040999627553516167636858703918408121065116846468975146736776972630354948432475518310852312432978004833839325415997077331543718459162893285065106518735253845035685032842100112993675043561592128630137798762417603712409541835403954179478958427604058190850264992195217504362533871604969711204679633997488093942266654767812715515439592976148387885124295671844887169640725293107538990983463106285606599661227516729184561830027737986066807622539599407280826656828610499675685803201548916125320968833272921054842559793839616502001447907616583748564578338084030596868311939940719564722002413847714934870314560871626538334591557771983129512511538244269528488391104253045094086397330780088014936823496140386183545564563235975910482580891933756841865172723491018040217454024378448070219184403132963345028035486916854242786204113178867981284475686283091309887419695480286902506430884302424633025279130799665996241935073699927823400243506856296134196694392340263242281531802657537972110867754521958668255910035355513464189938089854714078736900446991976523812557648581628389874463454663401679213544690001657471093823462913433616641095349062436593104906724883673508245575484137861034833541644060712955274568862456276026838098989471712604858474875867060991126660974665135494347307040910062497247755873587971839936357288118780497569348060421180664911026126692031075918379552281763345636009817041804076012691249032909153973841529406321768966640970304602135291274551451918398475780718851236388035140613369990335997115201734720325214124862436621781102229461574222875414485709463924322956402705328457976970163865446785206026642610479190124285853681068806329503510891863692384905683633381348284845208545982347105945416712096170283448746136114553499946316260417511426569775083835018090288390604823657989389161622637805670978413733086640656453946496787355086247629383801520664969417945080413597333806351703639687698082524647655651336426866300145418896334402248855391766747238384906972821056562964605515707410748671677938888590351653484094324527700558809825671790841412633013041163049544050107148148273235023077276032545146464552081304488583121027303037877052121227641425883413887531726383615081716381078093734699800136614931653864123180991507473133927111560574054207320492572622844898303258956808411439405271176268817915757839969205087175789907888180813179992890033797189876190438392464225753059081757796886545241442045254375408806724991999095479714429060505250852133186070515759287296238583312772903353510062949296239827038960977822383762103332557435739813768205244458654999197468234507884847232400327595030660586427588648575334860389500180177015740890756879557119219626127407089642402629044621606540362905012725934661949772148319671748932145182057975005908033659954340027239638421305331472101883549565089041139560883237016036481537270674708116727927743291636365299404279506903603060896069522052360091450302205641791602727745091200817515109285031732854271538503749526738461787888062020845756598020512723575558303472170642751359577052425332671660956976985067246228861812156586631759557331397490879104608606691352455376367905836003838298301921019846528955738283789821811233203729828488767221061179035920299354958160675249564507174237463899512781341612253135818986328860348899196361575940208078066925866595060205017454425510340105432191682574772723095122255125142915177772754137852879914377905274471871612169800368365876934891864195873499127056729580354422932411011331167155363074575005237356639946998607552956414527998604419177721348792396059101742482740763979872432179274895885754915068531355149356374075221409902251428050748601091223875786493569617022676278484052151816680993370586425216646465091723969191806012327531095112815093645897221419060616083333469436828658501988192774499152772257777649037447265012219100782562089397740078585189582782728830925581595291277697164359764685581957514424235377189540928757781290178360496475966470137187903014946196461806039687945836534791697838650180231022571448354587969969448826985106055779971411772053457245003576383096196264684159455190379815656406007717504980094347516702214931350481045785102292019355472843827970721082285472224958018499253326981122696960006462272389866269661800242644230060803720029680929859949635220168606880033391986748175299694480807972338910583313554328727996638001678149242984447109671610033954767693388986800242889321834685283186943215949891928117179225241298056833992415038609925141890468590260009985580759154932301501539872204615965827540310430966389105864587280121170730225580319588429554048911992532846413396156059337257865748857808707470067666942578174553719368790470950355822061021063235340789526589341711843521240852465493516720143770670115091016405725260489322250103528365176304895652314940574829591188999038418594756488315416907713751288193156523402783529179612657870589105815656398356030215760509136982246539658354681217821699005623210170753803852371450974858922952295390044156782916429567956958751338520286659990809693080121568489156173820136887029799284820780109093185305336408223987082709848367825079519634084001783871353344020072135308502636388794397954092691858622939182567349165870540986838412838672464491178023892689797976855519014022958195585292410247402192246119358684311118746497974411790764885285844858065871024034638413342071310968051284609222270598264388245696360123839211083438796580240804156036113430991546427345782843981736290361703505200323379444148869171286513878397826375053432944561674893240522641996997844910483652733124705558996874060150595804671529567128060876643371249594314803459076741522969547262869623311865480402488556105787255662879181973052925667923899729618705962141014103264783889424936623598987149290381752845574506671651624776435427634893212865668700457500794433768925187909914861727504434747192992077811169153744675518558383937562122047009630259902270313797934847311848774365412656050322105344202200056073570176241456395132490650611813420117503276440675221149738721267616372744340211769245977154298695992709229252955323028695552383279255284631650203708051390447594502443245400137239702569707079174543226118402252597785371796526814170482028204055009460016546482857935847578636475187138682741241067919497337473163127624510569915056937984317541421351850259576334391206817010297556578794115670503396591961350966352876519009029601146273094166782251139482864668795349369993043744061260048080461495485434932692409068316260114575590649110490424865360948507934793789482161999843489625351646114781440526509501608405517640743625374310298816620321915044890425887176124111815972262068533586166378858532615156217340351003917594106594808055640378531764527121046936892190959957942527260542300767329823183686467098141639119770530574527405940237990023974059466910603719611393304301384594849601940169266212371403727210171394110628523956783919712033894861438680420930788327185146689988955781785215167342907840498915067862893198206640788460841433413640575802333650781167871516053012761259698654843970309097193996493366844935086324987551896826876628678437800200350894777478249626818675259218800793599971503951622032993336332775904072156920291694583809668620056653975826340198498279187164526390403195908847950880834571350785235645935032181975889552203222330049823049486259766118305111775619489782046819526160119728434192457873168474120854868509555232244219100201148232356113262596487224894636197549610149489044601337664999517204398573904721514059760968595102124233419471525521604940484351001148298991814801007044062463521934654377856957531806252312013325836794769905880088839685112300839673235634847476062628051341224716969084829993615732442227320323399230905806422433726478653187133308551746268993680251148187916027609982407973326228641571943985244886140967941643379642914269429506961771488118108377613539007419414698546563558692747013975935667845101753591742605094326856466337319518994724544329459390785085122178010661811214305288468056573523210718046872077139420253166581068037727210271597213507683135677781250847884371499220218133073303885005431689406945967328397451583074669708317439579587087723745688088214820947142827901889994412651706142792004307503055743927665984485495935668013345951028158913965570400349292232658450239158870407240087990852775307311502628867474570145601754275145082434116430946095713985221672043148960596144768839778253936426095645725406962986671735495822969568059780452898395686101877054056937279579095834583581038942911660694353424580872879963325628274222792254613215336668216335638944153886934509439206498915089565722948168916309454963716736930489873501222694173789522626185133810450991647917536475609909335381952783709786963996984392179628332545435706354763256766912841994840534508923742347513496748909112094510290659573250147916019068010703081319855908180645224639873035262406168706530152307195361110018425135633663753522720782107685089232707682083257472917347449743414441562523061941505523606918539535323907279741701892067635550509189440096385515364846749105160283253348155505386818741033974467250610248330590730753028456903043666286347067888352419023608668231454578794358767325662834148306650092250057475350431686716663989849019397019638731580693092356334713506217339203339563048288569382919283934216644222302883035548446673940568793221239084654704130266951049945623751863185728989356751356362924814425948279831193609802508007274273584845036667072892175900899030124341082665054156558825995033991500061021358553059350737174650025924538416107715996679520590142106021599741937773046670910353787847066565852130769216946322002317872313743634067729817626184399726560154183991756876696733074821800130327839320194060485339196901229146232189956927687733718083968478796562937325909962844671963161419994528634400374469542358633635318818487873831615127872458285645537076973741503142833974366894455661974538764631470663885301858527340240644227831667705748195790927292456983560315756516111996022403222965387805465471447427574045819416628944154427052519550213304564621936283519658010775913355972168916914961012076579201356979592763320500034618270135730398268663038035435633743084581231320216038351097805604675532937434426810484153333861917061685905858615311942462683970104084910759811273398163292851882492207063973494983218052597375871503042154445300194509154091857081973946845045574924880304048523830617735943426121481431667522551306778180869856153355325273415615125688744316813411686580168211103252155731117292225112209155138514966697529712737631094370886619556303841568994891905922516581877807993066941394408398375194434163588344402684037959217762069338227468978747497330872159487262910949898110929826482915438462393326197240411188804657905100552638485968884341037170195608879033392853723200903995589700706312091785056199546884119196209674984616024240863067229419919580101473414804901651215935788639336462353921583295314507759623135766876897374737613774474855281779293346413908549153947219568807786736920596670793645639674284444676392916584394656343573981222530353255340580732002899248300307597461671040001903955197359319876553048311017514983840868885120453152397628214890533469030954878703387451423082922086943849741198564826243605225064904597303462424850793337657438459465170479036353202395009080681494889143649576681718200777761978111050146722407182906428105636764026950128143254188218689076521748125355658695594645881576306952618329287408489180486456859273034278934780526713293852948422563091748905820090808880492346553602322487781833037480224306078397423272636162295969735977224049789801206436996367453642091201293768366222043950031536799944229759619780894778634060499743003166721419097464227641332254139226123345747696974258217452123929950694492539171804864318947776408745703559169571312996491491683053444991718447403030956456323753688407377838802092852065607893656392918407835979424858735205701581816740208384078539346493668315483642092306898531972365102291652002554855581478094183874152551176705883021636553541423415746073853832328561516123661210911657381979491184787785995161794473455604691497105872830130859030868753614481579103241616393297737988967529765337629005296118151256489141027219029160296568748199014225304753639743548739705400894714598729015501225608913530853735130075220419704944977810012046599791606040773576853823660370070217967191930014900678458498040504337170111844146072045973547101912314857569456803224248458099031880034999922126105531091030851804060475642170592217096504839392129820272815471368690045456369843243272630407122389077230337271166218512855936166100309371926901009366749593479727716146168792179180392159615785967659030679567064354999691413819813374195750379725844724124857524334245658900164795583937692796316022405171269482033261849486092920015407901950523483019700210069619876762845278648049206854900658772016930924577798458847496300554984819887477823582368203508647704745597286851640568854238100835551799923637449108714147136950029823050534603744172176498831238006714500836381607023565574225881735671178501556055340263270187886037885361336907231688101015705305623758416819533521019815552090219268316229795401713739619251580166370316485272918372838736894873802993973392413510200719499785776211232210829328657053204367289646289293278975656572970207518991226581742219055931524954932738118243876438219284621532248884696052506296623862129857027688037661598783817635446442053857465518451421019175480793195630666136476370784298793900283082880057143503687436179877323931724242498603956831736819933960325330048529641627113969098786120668440732799966072182060710695328544135820136313447578546456711243406185800320955423850248051440250939199766885834978978769401970826177695957747187129359343794306565511747336695024163785760636238980069397257454762020228610705137613609223874707569749782281378685751955038466533841524460573017072885270486784943585145752984358498039252418162808330771477521760535767684787063614528279387802911413425812130438049371249555934067661103562306326981955719394366310509920899439085887870547310110433656758719324389941559190020395302662303405152326102718413065242861059254914084768448238444819810937534909053013277883114571205805439933792552557545194994710689466298275757504603200585638882699283947405528947867737055311766358874195976991798903528306596595757980648252401772028007810416520887429312513323000150424217056670996774245413062315509108717630392358074984014480254636686315363615033728507433454585972849069028610929413973234856831742056657869192815864483020342664616652024551628023348225622724996908146146729922519601809244371366564890218614379811894463822026973184510563584202235168758585223524415920412855979865741772943476713946677860008969382126221799179955740452432591667860175637482066751127775882366852337872053143946754862914772710212553396075631786180854802659389626612040393994443684584288634463097221437228393852229357218519903988554374914076650483954717360182420790324152513576985067153547211638679026546070775537268746501046027706873089553744521015567187504168423531838308492140471513959410314227954365042153653771447504367380773889091249936323625384684116603081898989799443035983056502631930638851561551442567487509817825795541595401390715136651936095618202083013960592939041366756340353924098268770336932203923806683986505962954341298942599269857508277318550085039452796310170217713610468359359515162746523344569869551069302859055207141859738660779653734250939563425668163106475150904945144019158194217293028742625597930866550431006817833429764353926664461926007187900317504389426328189532056276593745394299484976218975996133728463276690372879110858521784089988286200109240328874120946319625451708879090919514385796593961149218343151346706822645252971542685732248164771683717367100760750594897693982629549733859812591756471546558665530045356018662390525981373033916144814519114517364936280950450704636406579557111148774086430451171715621696124930541294922261811822622058893459209116767790750798109592181621142544841341964047314078304075393480687838577968352347460164937890869837776376834064930644490059598792411200312493964226561728480984524704352005234543852199798202072596685145637841268218898201047876852187874637727015347175194374501839782042579757791806005569372505453745421235505708436675196160007918749236617870769009201394323646827099607070469031182317638246899213679939347688401975694582237180510049510447575330177747734570559245076123491769829535184991039186180375652573436214073293084682470027658980001320739642085571951379069547553135683819855861072320933830424733748737658131514676042259339567692164754159506070854483278532887247869933583609843804668213749496173846863171683972437802536786972472397806307735650478613662621127787436851556173506330132617662282610559038610265867603384324227223575871635208101941321609871557837956561523818647355288411855734645226430633513683010261566401341683158032249797845721435327584699439498645518006120555055734825891210242261151584760147385570944566241279898741355129078507089761341266358366949834327548135960400184507174972127060898201321570854471537382761033672129837705963021232482120402693530254295376980727911601476173520448873172418843482867044841201466443424780855251267529182408969769265074280236102412026155920871655026691434940369388194066301265097404426062926437121815660131589369592874030911591902716897654106847545634131679861069871614309861724598265921083251638053562174626847967084615412784915201179601661549496209071812269121693549431517572956752626475305231621538985556750766123720093469411427574832313473303236825828249762559473411774038774926767403392801518167406741337164655545561460231417843065759734472989642525520124138641225546546689224296393854707333497251376557189437390108409206067268818757973003547304819020722699487033337607606705857776522022178900226482095775128062836481475602688619116374160694778194596109123748933943723640679993995171651986140234352861131336340916861793421565770681192497290479407839484423889484295636383201597942848072893522960287883517128672053859152708687839342023107743605256164821900020784202072677341873834318029448001936125421998547203998499987669340329851235166288301739378838572905544292155071217944991725896724945617276137483814212660651137832831141052366083979370588378633874049542223178786818665966109130476241044496781503540318272711849428506484689421138938164021062459223397570130208840879094165634032660127214774523743975065424207354274105270965953854731615477030890664748901945072079869931432510573882246638192467062316511096164446768827109445696819894770978711232437307296295179513598657294983795155724069006742553443943340850106024229278028207505394290042184651624379232637450599677424850714405823886619137337964060858744595268861417433573969413694339264846939677062971331759465757755646064993778321088487755880812935076568739944317647358110640612992804348991014327830124989817545537114485313106320315221956199816338181471502702536117839637945530185372081531401830139846437232192222068682441179206103533044800090158751005517888142720900223185604750619650915400392432612739646721360619986282676260790198455300398766672428227477138021761532437817563037990440920437316437075851041439348882783645076985778830958062917574993222384736852264766355867860937159637819325457778052024025740101083462480701090494778140282538936886203785200261150240442135836596813031298974836690410493777364972691501397459936553780449153956974255000559676761685286689125953719400406204417600977675450728205055687623982219220825129472975470109874137666028845352341020815256176059963120816911032359809707890777766157848839731013529470017805002753128216648710777348215872302782939291499450783626772800641239255773158846486253067817758332369782000077839690692078867381572872264633716291979706537474183580508222667210850835298903737840897232804264701995711001731926667082107063113853572996928486749175053868969565847362397371178294903530095052248442850053860292513687294270805348818214860245245868287350940047975109587187094374789186211585019803131525446290493448895690724197235479419147904661096207495870685106647668395998273224460511919703891908834808322816275994430036823886817849447497240372817889256220937415299853587372097206427133362282438679537597306469434525196196546414193647509573222973321525721416961611930103576323442859182570549923505738760126982569614235503420133064783686332534167840084622785867866377990240876174392810142913272386684777497201724945587520712501294284291733026391842097577790295547800809005360179188195892900625298731805010252352840399227038276242941087046018530405544454324081466878446853710549648541066317738792801524540449399385663266998120410327574576449376220309235990676056938762680917689243743762080950431055401659593671343752101498344033795620156126408023924219520555029207975228022654567918252361104435700917423770549893521406812502499582107856985515427538552861994327266614545422639918233421142091946607363474579462327247934748750819309950223884948345257530067100959003475620028332803224495203311744681077823737115922670045181904941821802796127707307930985304539946872711140796581353419903085174247413603549084653915307556201137568119674952154514518635558303170134188130515084022545120842484370319831987203861432938911200800010230430043454991584678005229031735254882777386090383301366311433265832273498148124946173309033931376372133533859100439802611658704741604992337095061684494329720875971541644791472018055101602575378636416323604275525804205400579914849859244444518898364434613412967358273797100560297445582173745384261346739129927731130376276734888814527428917994910957065315979866193103720649085171359018832500029015532302198386063497691979306570270223582291909658424991988736232064554565044394428653081577437508707306677116316185620783801619534199449455211350471224652553164380919179588005032946660256890122483125257492817559345205999676659877800852622681862678186476210287953226963540346716711652305977452169558744428861044751964559410445608922879697753989402034575928753721695050459110349102950754090091591885356682569071313894488764455322387614092033375297272762307090366462554735018134565399841076394974169195538670913803198648843343968560703106909704341273014995637525533058952177279781914322117026654205545796612809239657955471643760584845568654824214623510920797079611933028832247260852465501315543229406699686006704507023686165460242958013389364394653708497965698383707376394573651429428681030246874237501784192231589112235681410090023420845655600900834733630131249722065692322471611482910730043765539220798942996804608605386560675999970589349229560229523520455538976662441331505300652346815311699571568241089661693056733784222064802812661844557828765435005191010759530602937909372194806416654774447483751556236082797267454302195427467211813065775199300854028357027530018597023664002211203165249890213274875741389508314955353612575338460771504308892929377719638484629481370436573155538533082948043643423312758159895579293534700429900181970623249239475234552211401358852573279223834731777551894321934089201284880726838089142304285563747406595620574754705325523114269897976581917851449801585234679055045837160607954018692664823013017553151700268264738014126708283609502194007903538148425865120074527121351025483743257114003839413371478484402031208776878228539168705765960460481690640837845643760986015409821902482998736123447877712309135247254098215429308705329127993071405475643658850839578846371093402839750835860063428487674787654503826184968502014032625282265585843176758089738585424116352780940923038278908129439933825364630149437156862767520044151975343826941065276566003986453755902529397591820088167924360795009501361266191784763002264401336386518275310279106062744098938013082993572116306262218822871682642077661930163339628936418077838275858380654854720868493468500860334078475195316790267061121459559307212480379292705186721617458232627174671980495129191971288536088224670758204838491926107785381182027440075751762300298767397211115025319003159701635157078806051349916689642376187646608614807903249457026845746890580433288280312447875650556307806561042867515156526812196297524245282485321383876680453368087977268166093115479060039321082913584983637428571525131391277433707299658721205623646152004023820750183615885769732140928800887766472293872753001471240816290800167154626559665552172821218647214028123721865976903583096837760175599647213280742136410607243826689882834240345882225696344779059041767935039541896709229271119033450467520206890123319337397026831225338921094827725684986669324742211992989789974356071585594185446646302008536488535000367042463091038388009128113059616479745043280237898356044641818750792121983503526893810150147152098594713658157927313879875166524143614157757375321603239033359599059675557178181126153307388059754179774745947737295413566224849973566933640621062885493634563888032625026294981701423882208976620206375181348707754192724386583638246690373155883413814364809808089030498325146672839944183583855380622858980662653563153474361239303971172042915648853920841102721379266330237051760280631183476670005911711407314459494071218201567719918554283208430949894703676444145774773333502791305692237543376577283654895594505705911133243013753825245646481610707741483755603958633228174392228998945979941871725968703201268866976110205987455349419543633630457784720464768182859870038305132367777741814457471325614015031521078075666740289413360140787755144245538760683013176719666155036348556528535750681675780110696506391262733581597146017878297419340770263398963358345993224811339600275785682021086252189950243481126130663076798052070770510575635188039317843298239510749215664656156035698651287215957301906761590304768097020792822541561452579598503586404399817558625528219788951492925812167299428415098268306127487447982443411724115094470944981131121208706831052389911824409192520702952400824483441232049757446066711851242527214879675252954286965527844938184903272806642857528332314831950011580509907344182172299202966931646774340375615335154715241079091068747239677552848062143826747231166540484301923342825853632603870213583713224753962392529860627019764261467708359757465122363623121957733114886095006909367152532252253917171097536212251523110782814600947293558856919603141056637818535943122156242798479968139763187315363536907146543655970109968304548435164095108652853208085449745151146576838665109406319392857073982637826694431139014211119427744863312626344300325401541484245624987788848221084084094380105884437570367699393949203001704434692858473529371146854559709754080048145874984022107689469468375897738806288335639936138344235986117969156303540747147364772083562206483504594104316420976601742731734218927401438975362306629434557208452059232795950971283759297514509832431868384385136672309144671126674924452699176230979438752254398040719928706202822677703476598635454189619622937617683325514774423697385399640074640716827288807018637582638634134717227688382499468381290902450039489674400340997868703267464082017487457943809297931816287664359509155106137360714133267580174550864822873337377639393853066743787898473790418022223195431866308978180713327983119844072682136922801642760567652335463007924336108023138822810640489884567051335900470697690777972435658127886364075143716461754513281854321971481647449573779264080253618749646783663647664927032755276815232618510513185512416946829022400081065905087772887353912834406012096495329306822498534880191950110131446054802598393109357739658713540195486020124772743419248629425161180346338994693960025895092921954990453464994867624606009406465595745989774892487792984880750505364178759294891719154096850588598324678231835762369385002393247031158593373148707823029565293102901049231848935499345465137593784886723041786848670062817602206832283155686877000307768352689447190116313025737386845063043716991344911670172711227038886125940709782507003212514188864010508592063320844731023578159065395337753269703667571569450577725370737776010233038077918541244109846255063265020053531899378879923629802946440143628445087837452999781114238358228114605027796677617686466631737633153214033390133713241167685554504765010362954115824430225050736918986805808712488147495420975805555997629505964322997234047897516719260918140644722600390770022104511197497835653191795863337366315190563238824541893757573746995172972609598793387578049289333485826999761739432991464902437832096732405913930799173190550423000677875059835875335198029381847030707467863428096249014179423861048408657817393463564636695840674482744244119245679757899670189616276263001362416719570905303332170402872907859951193598297235320475560600454812700547743718249094962013479973192692992318296586277632579352792067445057775677579178954598034902321703650598919794872701901784763163809135788548426955612321443439355494508873434012066623286068431876685166136253522309754096870944623857536472451771673605304873139074529904552362328691993131152385424671508259880619425867048028258672007843379940821715325811409903354537677038356510476657838281581970799093504173618371962323217045758752205345116677163498275354643107748760973222084623575941105186291893413707460313516239554163353523593031420184452601973908341058785876597508352141307673725115627102526863141800239874261848711698035915127127486808427989944600968016356919483929073981373413153706206479139021133938768920006432070825040227514225735515611007094291132481451806789910642827741490479043731322636746414279448654281593344231452231271504184024727773406666861926843267201946166188677856009577333057061691297794864004243611393352927117243945277540219443253287325249132905414609894263646178782954316062822455280446507571915454800958889992110907687907179964509062816970199347026399420305417279201455599370177219728472380003013297981682736049414466954979210373329348136349523028308279168003564648070138901492263636186288513027351040511938445555230727482892047733581616897549080531611880117807581171024828912063020106543246463069685630149627314755072231494291319535271545847372839279197251089793928031026808798719486992762651710070555838893704195304604917558613445879634151557552870190248948217566890119437358168247340577171005068458540845746193051669635525548348339348925154981621063192162586866717678637711016518264044517389600491632768611504431625762988920449127458130265454248614038436604141954910942346259667581159618515756443360314966497445208156032214067927488613146193428566357153854753097503803552511682633841678431196037720793811927103350507825530666856516005454220329444359761550645402450262643673682406656590989833250511827366169760733465792467233362442764616889584795076317989776911232377002304393229951362041284538992533580902626146386659665957513059704852512353272560360017805589172119191689918468587482732684342092946372878389115452822469593820760035302494210114015715268741241219152959754513870598386554796153307769313740201796364016072327974617608088280049712101787577250490727788154468306860754616576671600839152173022868386361375889866437180549419169105097840097344348107077734902517251009790961510210315693848816144092510608099592822539164925512727232829309822515541020014880350498525889746099421736845032877000432546847406253749004960037927855579441677419089965093372568887389344855417242664217102808839375415646395691168385455662349479233752448224032511281738060502058522912541060568946405877197300182229610435196566174153538430737607201446905872367730183351975266655390204126339625307697808260337001377122294398273517023054124954411966948413912840108583371847991156419431594823957790439192109186505749674099969138501275220056779331485222453448939256745239187682484323657478465072995992355808941772817891407243203181997333099144526428547302944635888370862453899278765951380835910267473424280958297522916285255625215942165955253961410442523457340689954187071911295511351452525485965412187771262797165067059749774942365486588656379616073050645816652148032546733982107986369153846097572143154430721118842151355515704296554663568299131710325232700571027141770442020800248105075467483819518521551362538196573650521013563550891004402051577014615273625656028738527650564244953976529574131480754845489528078043447439727766307538048200542871856367865645222916042832917284118669162836276385616238811760742918379222262808736785895676549879759967732604690203579020190139603178207368091987667694036197651645620362415812745480559364564506314284123689504827682327495294802900252139390274824935357279238859255629125445117586524390229883787940560518384914075113235789460887612387212755435148742827138529219145579481195576805215112446508378127295113504284565346789984800548919950600713840086631381975785878206275530359806608937118640085363285500938927804342812369591467747327056868203795117061133454838617247670916358052819164283566074418949529794536090229074615676052904746176259690487669384356433853911964551937271560283219186271882240532562105055980960187747659273441169036374958455370914255256530576011143525159999132921574888732926020327861073400171568522188000754230817957520910726698289662743718869968125347862590785064776756086643781880263858564708882629964306818556496554166227209578172396731978759085174969144088362346240640074983694284591317104287811080681694178649976981984106086546792456605750447628890623619164910653678882189780956740902587354735072580651779469245214419918123484480513282946772488450052419780651280155967468725355505253574623673975045196459773338523853017817176911108557906169839708189098810490956937599099640084825585284813638205152765460418014390978724422824573093397622157197054961076944886789215242978025287759472823040388751475301846972115177230545728191653357886390836739523947029717880808064266928909427595911959105626448907250381816739179655409765116416153723856946315756251909522236166594391025865183942610493351361457032013622367650861337723143102073362512427945140039256230300684409891454148021904418633500902997081999819210173628660055910325135033013681846727110807777958625847340708583929221819750259046958213443871796686559668370527822188543681430921609383108212684600807717443707435524978555431119943677594684528830308434515426892382807362681961255424290444880142846431039399604262638943247091300079686313260667443044230975877433709104988298686027397568636434351471944470200301446865782449859179335549780393617441943169515242678955977472446606805782707035413615855868848922058939636406269574036304589673827222155516895535809600179045708348110331212150425506440160340383382164537910066456917255238416032858459524550952866586155205123331323610014376291372993519302848284844475865144515838769904458493997188916805175779678508605604783145585589026518100614372705814817240336381170399465840627188316085238204736466676929841999979284579079237251575876896150907399076740978370106760141380710464141214239728875680001899867122443111828623723611692048313566680251955652853456313507769687266541888921997810962468033191339637473715992061006790644362551777218208116986222614494191520561712963268526111672332136885807757420023793205955572503252658498791666596357591710255981417966786207394025541428271806610299037502528848340799492693010575518725768926022416705115441112144608372160904299528681865544093172774913255482016140983926260097197187579264485553331531737228343679028657676719054139968576388560635381899983656098762842126366106314211694090706532184292115483467287838288284553080867796833127816665198174600133595770213603400724245851706606286564180459302224291720670642569508938552618346074941900244754041066516113374410260839668514942829834464555591573100081905050429209090532798581943282306580408970640023384438290904025892835616187331598804168415813253828649382702624551019132153048880332823961478358282584441860047172163400184470536223404403673445381980894076337504256151348206209143274232516809524294752878548278851287207377652961406300288886793020456642359847802485997871704315917688229731190345545358626236912532434145467994859894038606920031763088661386743222731282141819184865191896070260316111663625788454844200117082115703215036985283034038072932510717294368821165865431896469188431590772182395320257973184006411726888385313313520520324425892901553297023867157024408565050497920362537445852420528646578461990540643256697903431441565871298269258830082296450830663020641852628309593399861128750976259862892274648359402289091788841254866645126571697527885686464212043508249218271907477675822676249064313619341564739105215499243988011888708843038691526156830929845544368828972645821198579219612661562491827404331496420845232562335503838930059370887631827378142223293970442413228885324046363667917060107000364011970893644066152060487269736319346459464242048318143349262897179804879888319259731283523818506149533589311842908137871363297248496852230856035716917357336631517680058159252967147226289125034277356773956789010871349424264530998786407453376347866939392839374402997954276659423603155465088051801485090874968008467708833510188579164806983819917413379026825852602171070105158017945950022065563924420860306980381612661716072457933613396712492218196890789204195814862997935828528908016526642209320539278287834321737992346458125996535601260156421328785633049744760156677757169680756708146689802665136239103645931699867653694009876119678221825354598232023675190171852276234724449102641684026145666438337644484621547739096013554182496208509286696059896077999861899766326456095945022550540421279364460021259161818391669160173100511068074351404500824869796051926495798128784361181724774822579661499644256356161643540408861296678023356747805770986150046055204324992086920052405407990843305764068516117146916999886801022134864234349867522452938606036390240028646640871671081210495274761276782938618254317016633209227287386714353609478712365608139386467039493951392764315771918757745789606536565065925611713630278958349360014163029150281198641687472743246785360029992851711013702162385549222605467830833437190360879614928438572774375959269580843338213533612436756890781560688338636369177948593660010544449539038495930911192060638929271937493179316080289896622399960213024570594323119811083870415063144589279790265673949871978148108030382773886505986774170625092402768778876204726277530527195748779619710310901720988758352474265063930759176122543056322276514831926063232623671988876117493422366921744903896680156034691671967285036332452284901091746429907311193205008034296756972331520538769616464111474813598568783718780797174545257963509583103400679474619222926873787251911921729486733841875437600911902991403371340156472481060974112667058576336368168352915893154700976806991830262251891264340702244843261085128629905385659206827627151736984317287396649847556087638252092285368514234965100594368789615464684148539198979946862365644737179311788098042495983168078592049623726649308619676444962135609484793517251038539608244546054103443732945105834584339921622834775321077251057828100632961838988933006156963816394849610860270437695415398332860514490535038100294134153229177386104101273886872533509803098015462386354407440888559820096375438561091135389079945774043360426632934469370441423889754918918138021975390903532226421023066422578338262271032779404103773675531320606908990863372395159012002606198226786622792317436822750728109829496876844870492239172967579458521591154012052569535283160692955440419269589865979418303011669284428987605021418101691685560610552305801998892119925188494292569785101274870877200193628233102256749429379898589738608860725765403679487805762166266326058215771159498463942251706614761902613477296196276359287349009822673809702639926164852769577142867338698463088749467872592256827354390123163434729280586220544849141141163229694651426536196040112447897945437060870609657995667939316055438783551055697795428912334796555634617188752706981928481015483262527621803727636001539385040139928354625016877940016077218723828537201413587825537962933933955716358221198900630725526164336105966390128294998442043195387933591667033462224582160938280515204286325427124227250331852022720415378267752126896191720634283991704894649735365388108003188058919924115662657507847499475810396737750260375729277212969760139339597569565186018946945383060916983676875894546558068238329634420077430878639466495581277970316380312214375711299820450624388583825803103976748750067020876175310452986631353307047426219474337742928172490869426933053374068280775508585660440503292006102902453535568316083641651283275104036146935490073603231866640994251530479867376722978373013632042698029997879515643411167135646982849427209128187746135961268481354914303958738247344197447489457795413186201043684411195019735292146560037276599668858657824188297416828400769091310609664996944314802757442062639163233956158367291977048744381603215732327855771898978046780016580393793539163245431656974728976299072419568110664954634986895635872591875242901970803115617297703563493029802540923131603666831325415923010480499124959120219226689320363178961258412664102852555468526389252736649889701749800188199429522900106861125781944049414534763150429532211579110254909717148973670894088065697394390659946827692917148474274143789231352761764948343039650494396320410182087045557721789008331570716285758731159958754561597921769841313154107852678393040531183417479243929337193845068819988707817152090753407943401269038939951830732008009708323033894921935492789707279463383870281520161813188153116596624433078083693921730060299712610834089637280634155979218517048022821367196711995991769313801117127531779889138894455021654192586989908102735555309909968945548691718783454687356420835495756124480152429093195668028875466047263653296843235809309175913267183335673486129239840261711879290588679669086563257365245748078118327099105809213761922160960869574683284727343465278849460711394511221964350385842928363552975711450763989843586064599963368835756837887329203350016890228303441285280655922471884253361950332379965128392799896087298515670152215128783923264209009464175638035213037762425328238555482185552487859368806264624016678354733722889106600305773931694629769737776298220654947398016427603537074186216568662909447789403439475657608329311529984599012072729240488924681555982558146885320648505755026851016997124736547569531623365743163933834121178072044581801254802967863236129422446053822508247620152561605758360885845458375602946868778122883237033186349775054989660539687686060313585061314618193016246267834398799034955692802201157824396118444941224075601251843259969234322628054602518346137533333840872370311081739059700265527349464439986407252091100718402719097688879625146640354822794602355491050054844817391003441874506857990604416133565764184694291740754992244616170507371741464741728076344605657796911341925611976446734301869495467687429564132234702117683029007656575627483854824917941058581821312092443704931267349800387148273791342215858847270713219825835292298699395019040346613798709353066467920387528104914837705845582701599023466161794284686321633007696257178821095999987725766671092854716837968254894678056051917120305784599812382331358283970958624312787408363966021430249816038142522618452525032447523005138699844663404807150592221824472033118893577804094187611971676129742565093527908625341909840711204243190578723268302628497442796890629413058673462465161201242156689034115820358706427072532015669067191022421017635026040605001478484942898136546109388594972301909960593684391294617180538719337641013071724090579294394638344805740373776863247308554213292029648411353251811521931848878321171642654170449761667784569006398460534135605549843158756375166390180461967187672914012297898871953754648820946901883478075056273203303278859022204753571754824228179450902122317617777533629892673716459085280589398663941144108674796355921284588064802796654036318019069289849011112154763503249218256481020905693627965427431832262292539590985626024228490292256662303612607959650909474609773152372817616014338685696930818061661711183304023602862822799412323506556265314470737562312488688576270571589275737875383480868706511210209896743885405962705373315037855661078287904358019621304914454140965316020576854252487303762096116487896844626532872033947506872965602220861987676826079798803692929202736700912178934161182098603954371189874400025046319391944987558860700952163665024898032156364337815122274827591310216314698790654584810082420134992615230345373260031215358514683388515493695050443634084404387613940170331059706937418627638485864783451436209921683322099598409321280954953623777215628769657260068064492112450696125774955652475105951025736693257859552366156953354268844703893003231521491215797491758894291447130126857999698476159245035274319904065549395921547051999176872926354087504132067372398956890184181821487170021314730986368661826977061373224151072956411141990072326272151939957060917486483532421945463017257703555153649516134983777315585974306578314102347259234524918392058793919920901360118612287779902991591604128784086462938132171088413940449539887945446334215912666429948823735603588435191700623187827428268844343251177268972029853916215381189080237017846663748529871696778487614932623578061220129052990779407074837806861224568241824268415388978402532060298356245921648645890896476701613782431216345137624910702515591253684791531334839995633801492880181237419271691021826503979218332796517110632828697778948910161473603019753894876132557509863069180606349857421674569659676476146636047931507992378961971382415072413095916275573864413320993224397361234324764971208225291249921105778344570997625502543803972754547437678533438521396872710611164970770767433084591275005174361699211604283925648282121967809252664625470300467440042065276692534471694104578069310286671231714360709836515551705828942213414016907224771923701350660224914413941841910337344164282709106952653506114271988302807420663694264049092715591863056210187446005018855659102843531052662612188932430122233845910467614321670472711387038367505588624553341293266163006608985275554744381470319182564265439660452454932011015349056715005137062703726478959177411376219634336985985662917931200144323563848532589739164219004037042835840451486233245323861398339242905651487312205970488660619640478890531834217633443995678576578995220659481313952967738422296564567445608526656300406787797522857450344558010732619489941180025779424505342596604980007133393761640131716959465743311447002897736164783358122526770253941513938317263768613746310148315235710971634653939779743821640327669195648871702150626871199401134400823953921371863773609978341658828698567044835176168658659539877810017906066531788419272820517730534027851790143458134318558419950243234296901539082536758784485352482633264535508507054430168336985348049046376142106065065527850038709423123674274035006463457141766416334879603373450263241709232285243709714271861605281947676068705181057307138914066309779588795379599785801979130165269484333730812548011439163155971015206067458724137846760596214643966081016058467932090635605569376805513394280061247454651143467782213425079987595016381827060513924584532570596009259696198103790466825095317287651762120702983361884041371678400683809747094934069925406570064065750712344520776523965205510200713575760436586124671048393375104658317203876731789674160358379398905961981118255546172672977553001508668336031080729240287488942361990432408155797348529779646095913087822423283382803202593668845596881568332197064917327816610738688882166681754444235600444132079729806398366446519074560177194542851726707251794353162325222048053573279395327192424627663596187642591356771424949608837759499220114161870928846476384579856686138437075599172612839863687122442793279429639804645132759843835960108260405802465507369331980266301069708523422803003555490561449474811833496394707815089071916911989779098439836139672593721855776004001074950837704880275405429340160438610803193800963006505166970597687580015215489399671919387016324988622783138363931842024111212253995375414054383739882385114732228833763834604307841510350257149214923610317156689120459427759519604570005166100133270762424401511804936544248685076240648204976360730517434120799612753853785251950121200471311259725165414435346563246463322418217023008518360500511364163943288024865825965191925239976841648417814372550412245671577390350362810744515791981662331195973595043612998059266730621628240781275755257075195562407948584018431085784536993363213255185477961905852508960738923208699565835297263645019650748278497947079860020201029125283111340772827480086204638129696415364850123336030907741670376486475889841949185992709361589713949093890497855879668205724929324696795460261016439119702816024089603802122243738167939640863056736133095095807258660829442372247928183722879901225047702367285457827866632273867387332749451885767832406930738780615070594897705222913611707813183851983364733591595692582270122723698732726186840697011610055950357380683202282818489047157923372741460516186422206917868910308351217908346268463179751624384362613956802563834428507396086758270254789880458001475031707242519482984206763153803141851877567080044687094755766485601986518929173594134164312332061992593841107615611399079101263722993743024699344651082713044910662706961555964559918908030560538905991663863226768903321649041367371853430878790070514086785353573921957076884079450349140783206726850019885204757061420360345435961924277053067414086163080355299672261490937371055414945127313279736004407478101605163464820693475750855317444539524824418015675040388890844956027381584770334616837591223599228081977183839980622932581027053362890303249307126658230555090635411208251631253049709768035733819448099857350435060184498147010683086911767874240097281851086974735743877507496468968499625357748142365593189574072096163304109767125696274495157554265224099133013107384379688898653575934913512891008745197265040916646801728690476527519631447983445410829872481069993873256075443716574867159717640315566954015310957684695789140012354330514192153144951579327988873526828962106218195480474387533268457219234608301137195540347438059401738394944117907629076901210031879579162284100746378513294123591683386727143320984903220186000044238443699107507756300397862860265044749380011458758804767373528949891781487993638268848426451201389195908569643707513910623964948858763271936889656148987147573400153147791726400044180359472675461926691216898114081551819332806001923770505632098053818717167460288721249110038869625991437068516341568728474539578861352194353021576050045614659488832535502354965715987560608400971866785267872989110110874282353850808999892449881583612861997459067336509767466704344874257484548127098819711675593868485838400270514671566090629072042654453013817369007125460797737035758917755938596383452074795684833823708633326262361223351062849494290902145564114723770403516849045231783279839656176061739470067552059811315021487473899814288598524019865342979641038242130814835066182833423190599456363516278439577995697892474383445990793473255827440791172874996175363413178810836107156420401286303028504910014035176713478890862096760039000867398961173892422941166902136862067619350963888992844697371176610729351294431143339182660232263017818650561364962291868817069392991520726699563896426487166647854333847275482537064150451582379398248803022640070718849277101697799719162551440005749321224810827395906118734787404825746749943090088853112733028572172796822224977863813494762289988141387103573509157754609268643800301294105017741593004994468619496855445802205062580545420694340071691463364642543696546612964103485869599293451097636447027168257859645919843387609574180674993445601159286621996762548912002455192413900742041557701387947886995948058095093226192197404009503354120602083402186934622969316001464734913904785257163026123710052055146756098646246714776081467226959672870825418831348997995225283957113498073037274070169810915285836742028785497683356388746784196018964186671158976210697770465067256120403906328751072434511853944406880246899562825892542912540051337652066409731672160120051841961132704691036335536453643874176826209343863115835738131546525945293956578886874125733769966357316843462345238999203159769836290710128541980496344900449552959520566684783546807332067190232067772127471820665377201122801413226513286812947866375719413545369039107409105153468875992074672947252438504676014217036377467266628628875333452579685721080556360582681148222444394087610473812474439816377710554229819376322110424067584979982337871769974962046688681868171227285809234667189149277902536697481629305497742497840021210693851196949912218460150888947040992414017921448484633729897174869941969996784108209312914623867155755486163365028826056245876277169155878744213083913801430114748847333304051110465313631526498309956306210397779551548269826012466112324416053135146963057978954092930227980557557366984116304324931339390769235849550261881718197998693614595531640757610780377783966414153859320855246890521498250988262101507613281599085899330374433952135948245339923699510875456447804563338425618247118449992274541204540421242301414258425227141740415910174587147275954389912545839668300843686981169065441273048045875675594940134394769116560664618264108071907351598147972558861487549104809051542038576552920131965289291988695928135335330020129477727266815186639267234572402812507483372118207212154151494658830040517180530436702760156951351083679078184901131278475403918751314482830660404819603258073558487370433129758872480011986119523810627245874090454799608790579575494051969499029356676262582013047125428312755669160082794595903486395506383300923517243552430848854583617424380548552451685694562637293654191902887684932690854551061952357154061569362225034009285394338284863543594278860303321931720343418157631944554238893879739788612984623580237164474207984114898977561023629441501218732925532417267308050974874105108592029154331397935292862160677697696805745163608192545003962631524086498076066774089147155673553943242570658107715680980613320295938323418494127689297236340860240531994060303511403622163726967116633699997640051527425253844857782007262112866969043778564811879270079074399911392758879524177587188355580175110739650994403078811819931651159671470558043702880926808950541177385814407847270439940755513960605713541605128869564438957016528385760661909275075046180815685023089472533246515261428220434258892662995908096628135672089581999919740473598597056235300714613413400311923546645439499810897627486366761821409700839944918860546061093135591375980471594435796312717680784702170005494047721742703506300978935368408147786465297754022033098909636126636051075475487991587505644488793795546510422266526783246621333538036317778939416685543077181676612610242576819508882275619127945143820897301554037062876287457012192135839237605440769588031497364669895379039858397945842052353510476333556393398172660101438944700027465877810881423101528319988917381023332732286093863513215638969927204034148722356796815401351460311153606749447512126575632738566101814345902005093918465495807506970069750850834142339923543160938855582821416610576437707168689101830048074067473718744826043618316300954857128512563008075675561025414979741446222187507098305940034032216475071520708459562433621246302187540712527519743107170129777030238503931871990518139321056378434216817445932988562905840735359560987988232261642033338178225017868956386336601489649417403160918430335309954025022121096586119736136257381252620167934606319239266892477547885350812539406677651313064586927605803688064648932083982912271894544096294512466436125180465205722507239760703685641981040319969144497640961932244414050221698198047414743536362366600455824531255907415513227715924121695539506623410364095444599242805322954672315800497981520459856346839879362715198209734656520948600024550423385073491401713969386302412050218561000373787790203139366660267124899448804402341157193532785093926264209936123203412305340532418474214625546144119741318041367722363208094831250848983064183280398200817292540053333073443246210364338529784212401099282147532825111558530057927103187507628344128264953844745526168179044994907030337114709733021227049458613404562736561168158531984645928409558352930989873692068036602251648049561227791835487913403840689767938116697988754372848570060303749161948070479981611833947044941847882778378023881772405418629817966198366734036228625370193371078583172922968743964376711027755381475364317702889576502114002185659874424169384632475847288873552752915638405345450078629561420253345789183977788545217252088824410970436921718801261939952545639609967053465449166848729793149985073239191327993669256593531188912207000812362850195331166761440841218786909000253614524061392217768489677201347335365688927024739974464969445801087272738573045238356627650749227760014243904086900824251194251694728849946596294804817533430137548596584937068706575845663758017247886544468588728275150583586323677141524986152733535144716550465645259525268580335240033999729534002049983530632821840355545328245763674515230414980308453414619666084635541552705821141979067079670039429221330099245745029202054316961735584215038447423861106158666324174920223075973757341393916555240560110778515535640888417896458077358921171283970386069244346768951221788466262650599390836637011549587558599523049804222389797771946806506609564216427727715954425584479067561553828338565956275790811143315015756545690122550460350446152555684344488583760157812056321560104008784585795565935923101864597653424683292181405420778185080320187810603465633091694426184065749746837727545528048171334484045062947457749087630782192950410373301338681044811312278320811155052953724296454316445878904169850152226845450769156877310706881495356633572460691655363915387348621345130486433908368385914855923090044381501680950506126755879393283401212387234581590352254750068699160964867818564189352602459703619672802052484277683243158045967688726503326532745488477180121552714789783727305511381847989017491517659944686773219243257185383839576707839388961864172735457577251635115632532490906564335727524340381963609419122181567043543370840826529990047655748145965370670254424098600271171065261374566890602783861083775293153532072964275323857873941063699517312548314382985891731457647028457312406945645503201226553005105996941284354181020176674080269205288093486192790080996965492376183072113447965536969176886456852047248191126384573683237954135498676906293004326273304539593590922961558236582720658961026887439782359114622300241545941470491534632172870425974016910862263014931466361793507694377830441485249477570599498043461350916793963869202435725355149091486598131400496908979050988787714190069124395000727044481883044857533508765203451513356174367192424721151894997913303621058083102492848924004263438170271335150234250085462459056759324003250513603595772841374296081742431931901870204561814448990460721679547159257714707046194016060803395040892860095996000733791956385801907656464109268863175313000249556496972231384266539351911635367882100931573155315538116416136185399472738566819125586293330613096375804962424728138044868813879862382632367156137110944187560310515038785505620292628844036422987772165909995234424464674094024174603917469734602279763081116073309284903681171855972402367380797556000000460712271681192522132951115797513802595924992574233277911960880437144501426703993954831464062021886169082387690690601801087159540327695818954688555953205096983256071946911179567220950912866072200309588289956975915184376679234984330424393389064102768383141206713535523224522541268089316514727560196693854998933689856364520240032811133809095384027253987273490485002266683296145696400497023286475290243172171652693469436429571689064235116309108952356635430301246299670482518956848299665213596887448683147603804078283879361321472700525281122546648111553982153695429623290622032425671031803213170056561330112184320004240089084716009541793592179634258955492346210437155791805826659409082373763039386910444314272442631799017813941127470866408083097491211955141379001282457052611428441144619022910689246723721907322385208231714399076158390772297066738259940960255188848651403825774530952353492907736237667829622696604768670901578923051153488392840998588282342821836714338063821639441658466431371880938824714259333510262817969207327735931585560009611610325929075263433412326717065022428116495795664929365914406734234489782575856837165540592059382338488791021545123414284823550342627936829793976694234682623076761709574507667656260513681622277994929029120736768667466978717850437767748487049226757596344806334838644729948518852464801407252510154609127173443613428076825066446254242290532532694837660126724230141240828683600371990772207920733260117968512740460226508744581855527579593278502920090861757574904903656195365780164079788625575826109590055740052048117326657070909735962229682217793157913812270750674250103895086907047266711837646013514587096783312703592870782336485536964750460081232798040469409716022915416320742617162421389824925913644358023709088053367868575527738594133394254611469337641410004218535307765726081875047590533532272623466914963325053079836246985935603407524310049048040721892504448477706201247222436808885995113019965389404703446103008836238193396611442750796273234939819187066951970735194130988893516983027376496630881401583188802635830940662042392770100838974358451824855901514922364638694609734036131061043536003043953694827488627181233637173150138160768046876940276048213363482032171545219915825830618412623819391663265499683365323638770677030701627213904148796427963832695062588457762158110919382417608470237748869254828256947869507887942759355309056751180520457925593474320087227438817600710848433472376611087435743171177592531707161201551979024850532598439862222187601330775171796962028992258824106669596646320576393954959964150166183561788767661783405991410840283074511753985596914361753739273457167876077657324829786588338790588880719147500175838228330343005689485733470461459568439876944359009731586739830326969983881653375446227089319594768801290981445886363454781626263007613332474486418993393796431659418739633243902793116255313825097348739612074934136085098647262848515789749407629215499430844575891886782212278359804239502333853055047881093244479256594514846834915733030080105331166183799535814878315003968402252468556454507464452603771154256938664408577013096350378983535529432541622516996289151834451616072659361502111529144697027589151733346274526248754331103230589376277238093536245928111305882999595539307366922176244536164781526839715815314520076010497589945987897354731481519756655631748696541268328010576524871995355511610245504142819676563470896258087652143053952830021563626752588989293899636791499232858871889563472079741393578953739129349049961926889405622267704142575720618057705167103514850965367821166676197077301269802028041694892165908041254252752455832338407202390433211469490561302103247601431216007034559554475386204470448887028972221122105943992588332841759418610046639014258873400752588531525108004300470237386231713089552968559294865195647598448373798320955800809118351412610227200927171642720270962566046086686328579288109836317697612021182654632576901382999330244352301118738360896351358796348336031200509859763466001944226635035099516511608174424459798249246561815025142970014673578023993826989450823393336209050264375749612777306746757057904171509403993451151803051192829312282114085408307786702200846720318227052045838521900467058969490697937540856105042465882400819397825006833099391652722341121328140453598270932635201393633795601933623823454010223284006576074811461836317719694960066139504016476857731222983074984714313734584825868012892232733771861005725015742459826275261399588920705966599793650560775809848364291061667762706995905657009060333406748271398036847497563725727134447328100207175167085444256863392174822398155862331267772516173928294008729330186382008197063063251930095957888243114882868961749781507817744236943693905144420532505647772845078091172028380592005448207197072224994792644764014637224325226262819943734003797805290142160072316266012085102793434568667552738976685078963673479339205751901703965818321751675177506546832250125746850023330450863016454466107902793025236933683272582652139161340080188991719779274401697721180778669821065165901393987604129613064083688286890979043657960946897594498340279855551862882714192916096322704832211485692380521131889059605132031836959454931212727798044344650873968777624637680998017769669347654472695793378194407483776076440838470380489093026131314649213713013171781762475694471086804155330687190147279650776104203955482681036171426619622856928940725982235819779714932399791102094968701981863906164186955605447722099523856716783227631568811627764691653282443930009079163678536764304245720200239924042747048227246753080939722370238680766977130555580388497366597724615764505231928903896356385447665389339719904419437900319350518397357636312825105328901117502900340838953440204928889908124310222450426528607801491149240405704240565598049384002850768872570550972844703843197881406007621645488525646785830705081635103822138457433229751839130420481886692896189945852440714297988780038027965239422962303295688730461199726270671354711595724808667656481257886188743804180042104222794668873264006448700104137820432614276102514474916039502808229314426510583195663844566002175081954193639027394889009693244385014991486758078405496770592591970462514248301014459684661919738445385687719642568202307603195900359361098169910865046227360635926147061541157539711785616878855923358279245256856608038685298847017718981485653308069706072075116129193593420030765063762959294743145719633328064079463569075202361993429959905969478293258421803717569230043998686329948977548223987973422467692057366264134014030043402786267235578879874484024729870982977380834519839592153108865720518285866534234266286823035826725565026793197706265367010760852514646727121323910034996521899854121963661929191192757795375436432903094781852355791549929264391135984991270290730073380351113370065803352029702980343238871924471372286324624308823468405464219396301702273541964238571292425769054155429811629663817374096902892080230581730644117763073858191787634540732853526206068684787565798815640302011725592527041463529895261432659662711950150632751115227544775637005807736569940155996327968772356996768537659189224221307233109668319975884683766979325462210748693231891713263618262295697487788417837450700163298469047772836116612316060278651842032906461988763066441266538244886623176525652780983321616981723101998046176095272318073532813040392371677077930124380110407470321859532811872696205897274713138691608695272370138918475429554511525796219401565286774258454478322832136263108216231743536632270691701270543329877021452151904707549031217066386167280281190950045454426384979786833046487028192458002674692956980697891803339983515035768966146481298593138378375084371322409429781066451431974091550679057868215320679081738603629640091100569591775031645036706143703127462103275292151841340964303120617825390053210310799423290398424671784381190634370125962638526363690517318038904132904145724569530156826032533780167806426912744946233871696650858562436303824662097665095877300462519781506759376449470916509168918606590322786976404976780261557881731944248887439692566702690547657960260202121215942203026472726416827400585471441177749706848982680098837997481493073298742608659442656848302131570671453943239272650514955006143130694168986979707547560886860576048521775554750770892233006568322874417558389909958918716805405190256260655656518546793016704416683999879883553489312605455141980053419767769603658288459617886357805650249574105878056382673808342398154863557436464513620829304505869474537031348984097693203915602250421507122238591571004309548414476877515615341302385322021213431214664926664229914447477488487556944691102406689369387946114290038139003626910601293923197723712311348941743369738334948261393153376308236219822074002524593936378650426841979651490060753298686432843151319088008925591255824256848169607254199037435941529675708415553009223139757392232274307736209893990365670882968582416362867574116042899142172998507389848983843363199735742956766913610029587511686774156761002320013838575703839924659785368857043392659078136937366627625988727512628057093139315768419281288584681092684019121384930183654687097016890257317652242951907525592396332067705549227570554794114489943024565152628493182053012538247955293000579680361356639431505389610898068781040446555838692105075589400977585733163596642510567466594880768149479439413114401274023178410151819628803464760925568102481801722372151703851260428677301843141751032896590933187371418683950981377673751700411711383655898076666231481257598835218921643486426416246361845063033755577192327919698612759017698779936405067249311334097444495897577114007008890539463810956248082685655309273975794258638202653626076006192503545908529824679193530695686204024641601542522336602792470103125390184318873907478207511512604918618119945464503029712910551786587018819859784327558616737405748947167929992382033576947168901267309966330708622612288532757665995380415654601762864759643647001109058423572913812474618668308211558104068092674345486978644790886911326129443134260567219690371655168017777831485065856654019963961839055730074502877976152737089146782512898709866276463974437712770664225988647765284385567179801730495271946642809634022882811969879815825993524124136234435946974484103633339436062292802835355977012555126329918546569606625441174902835093167903566686534855913873741490285403606294403462045331646809271327015362686331125177905364482278923334227683647320311648209543626888535365611238587928802085033509365166066813928790015564558452385255733582145804470086363141949162415593041626077559517030419079261796101032585443205775044264790606282230339897013601904025730098177340563111679491361758011684145478723274974072674596233506764382894186285360174944517487472460906382276417903325295052475198834363868001851903016856980805717779297715691580695881849789374019679592932341269719818832087522936313730940867391317023986755631795127367385681687176459439791573493714114371665745294234412359457118701039420809560706449111949407995599243316965606645370732265073835268913155860465253856065758635220774572905156796873186560586645267173653575746150309015585981652138564740273501993223217434063123822189373361762699826134281391518020321742867184473115267418414688868318638034830720370926515335469455491406460033085735559345683383270659136622096235987566349351411764914487361057169398899813465288860311705973851632947285368564577301607806824416257948463833983045514340684386257894740064768323783152745549336687334011606118916043755241572206404463347564485639871463456195376344474323549675295033028149097853166773914025466071213486518776529752630211726553055625147937387915496606075439022262471097934358120201950918455379937922240089183574138916840470745977484917981018693222375049389462106105862228449738537767248048658378723771414105354794839347746890449305886868566314788191401455763172445358898020556258349925949817667453578559293761893883041197564400489459586465217626611868768992397028771207881964430045957294406722295457377279127332451311635951105228962238948539799932928561537414599973698307214034328150780964067762790800220498725662756499575177878593302137788115562117577921173147422049466654950635228584265390502756570152815135131374389971885229565637451786046244142460952265486200050466964979953575861615490172066241023537890788962587853267657447236915248341143097887857539297027260147254724410981171052800684515092256493331204237522088202605430875006161176557580791484092647881331306949545244123287818325704345478745924253645571286552429284106556313396486683194989481038326920710015225085657748581602105590191056466082946586220447156547453231623947026485564318055931240819564345797805386339928092504438874950253674469081052069390538926536637813862558001197790864091531056349054796390024431511640374201699219392723437251199795662614146968673858792629230165329565913712623437581724118340279962635362982958803127495388217083909639739547658840999162991235489459583481405091349711394584902639171663849949224436150516681508109268097355463747488175722333314756971915985623550510378642580201586742217749655221408278597377427719775439274394263393384477539069875439442891478197926298342007604208430522432305360756595825364382479785281376238581107097201415339943579128657009278085825287611972386152472439904903441211858197805534843616415647484399864491314721003406230347283744161489849724138811175775909098170206526943551193854287303069993577949954521699584070208772822823022907350136148295454953884640109553106655605438295949136235918697699273568093087476347372895633025918166481056247698223662786642169024218336692698763010486056649147164912079295585803280996714928773873962331343285333429305121029080844667467224317627762172780433574651671469768095081601730135556067354095482139189396818626262704535020927016181324079694867722452283021128352027070429833562290580123087142482592361805767102517252533881409569599615444649450650859923069761859708425769938531053566033808719561870165380565818885505751682089280800325137289641658097621353706768011155453353966483146038677692599404358309402232722247873685859517736135185710494548736615230226162705194037854673401020661203610953154835961624864842346939925131425062644076917555425994630944181121878409774207508944258388706670277963420005000803499486277341592503454550578187346503582232951119755145467629713329524113307317318392544585130978462870810940022172724750505884062016993249429074222713341759667527742146190016631805186759177295404549228050252643138332339628799817433211875553516243515169755338080516082085082071135992742955791516813965058252775591327785695978933984106200908239606341537460524401563479723420597748323920985361713510916829705161617862629838545216659705449322490484900522163502604314183064142738642182440678243325529367107902001021512065887196788731908666101214578008808154027281186958229042168960370571719096438447041640830256167867278687728465275581368491521153381870357598560821615584700568928301078978735622087927598787007325281868563706763770859627685262629156584846123710487614630948782506320382701312702091211280196078595996755597324399906066314575204401780563730870434335430109045150574308291715418000720829995786892158878429637825008170018199362636390489695362228327891487945666342433122120530252849252182858962974149010190956604393196969131056429947468365499611219095584549509881339980395567816573198360786655351473392096814593640824262964569474926598111905489837038446863818179959246816681455250408224368235921784559676006897267850858366838946595361930333103714219452647411594512360520995102668619023901883146567775718445282215975683485186840765463363953412371811618559602190518584252924640907241226663341439499619652402565472918223730473731899402236316537157748596863777542908270694952724411651343964805991385314197197992063180397543513035818139854366461585359199326553496357393447560245073491450655373262477336065374932146013400406476007740446126352996456785528040494886549314223329839880469641798583903472673244464309319899404405182215986587592219272319922452469458621602230113825229829857073650694729804957402659738647623929773767514318705923120293209832234251307535754563037226032271653847129916770145980161918317540059427958086860250399636572335569949463636601628409872860181349288279865586666215238910807300657749955008907046508252580016279730338243636858044903880353367650780196076132900481834071572283699536081013707504547871022636468934758541972259497615112408954373842483713535115279518799350285245510280865958059527061455102709098670724346560212834228708426899081618792113747213646809889488855273270315008160657738290702225804326408674717852022107667699683856543692409271450914342540508386546136829342036988092692408994024639550955454136157290532180463310509762195021386199294146704717710778481618546973180155952483770846418759462959699740031397222308894888343745526813549415559011547896115886189830664352744693991489317419868621314175354223559200656508381524106321483662560341983215523307366221600101738194705660705736700659050274330390545923006955877306528187804875687299126928244610720694536589418591790462590745568615355639937908756323383430313149413058181075765848768365548216576814889701830403089994894615125952737709780002198691443013264707431220424390732102148685050763298312240567535312335810443484810771436312773065687665913295846323110841760924988862855060358548876498498225179370550014522700314952524230080627371982692038655977862165182088975995183987499752219625142835942024644293728161142217895555747443201215989476198277656338927611239058584323816402067160432815514048994454487243140078436978986034882391264393007288168783225837591195896928868025812433734026876329256724527442868146243453209849834010127242396531541682445227064784045930482819548438677307707214791841069823276129676725228918452495814686374666641958944894173690362015048831200886358265838425633642468051344995275953272510863735838227015035725681604035745846233138246657281194575056434185727865904867177146751320772890250018958554193581111315456268221905356608428601946405927111853433917760511840285477471884882382205638696080331012708017844670686103201727439216149807814934672846480267205321296415600459743734504119195021577383556955341789241885332675137573226824471217773383115440551900656482556961033311750419019425262845209110217727500386887575007791470960713769589618695665545236218536422017013380326751836001314803098091394201160683389699807465906158331253472740159502410140044233499400551474838369486761587511169975192088020473267040862153095034386705290038966821258410448477936183991822578824500535966354207878412244526321422010285756721830150099742164273190682112187483154880948504810182024294506456981156447298943874954097448419028577529087311329325629111007796878662325885255478093230445569039854414834931742295483548506316193285094949718899185870754773296002633126912188304985036766372593469545906789306304271198340112204218225335413969301174083335381906244307791843651463292772690031051466500410065534707976560726952152094423268857151247757412973722845263107722518690222150164883683557446579035583600362109202174467002992602722778066742658084417811708284565779920284594878417981675009790015704026382635562799264377549827432084042854991402063724906459963993291696275464650670943801156616355535456006638482516803642233533757565774354346590072034206132822280602141749246351087428607927028769061326950759420384738099650816489494958742935174735343125873703682363329212181598910037349158217571564142583360541661919878158454135694954851213104959359761131357286461275333637818935014626917704997615198452352408470925937422248392321072224075169839775300507305723132144464349287033836581424016365475867013723151311823303491266472235319429742417441654693805649666799036456691097752698077768234936153928749291917797978348214359603277752436100282481966613272614487970567322716442008147309145453242553658875693974210393317216901217608415464362095029846149711629638478166453576114875357019843175866016124243795673265534524545293560588488180610093237931233062891524640915573413982633041180695186898872646502780211635180411159132459690330342489787795723796183259850376056997225628270285915648156184204059445064001927367508419962942162091173784053482685699211308337459943510388828410497203636699624528317225813001333578515994189460199335522023815130438085981181851896838588660320821282041098767346532615763482630986058409977639108609278264292361115361158993927397559932237060886410238024218613564927748840326566755691419159603143712240078345301968514846658941789681560211499770302717922479255824939867459369486716939210005355010227182791790891358800175933730285466961972901488811465863089955437821384442409638751480670351219356053573090115034682846950917177601704511590820305745089666778209439754582075763692519034387442902600770317233446683303499084622369599214431553162173825568521642774676119438775258598355672604497700022688766376444972559963420863287161108061243534667838035415193075820339852910614474311961690314795550223720056996440626447559130573474778884807403670878301978731493658518377846051298198278201940963443568454896709879380213874830188363919285558369092451267781887061713815209265763002924361891995088458988996507560973184318589193371823034829604525033815270133058850293098273217576786057040575588956125026332066875971413113231880190670923011425540290960377984456017350852872652021284712199674246674577143005280800653714694754865119283008237794266151818747428299691412943125913807642697111992737751322410301901853975099124555790223193137208624466829459797708631362278264998372489361754100287310049262622629039566847770391312214595243427844730915440683717769459067872786941647662083317726095701696260323285786689484159092089597257899091932311809426951798763014810861287939909204314802716128020425109185835751202168855202134816748147834251243038364454485527625054589688272994031023674216079507210849849144893436913499917871594485175959433016277209988223842908305808490238473389307933600315355680578347807386649798349314652877101381754770367285232926774665773236050019372003258237819541206617597620342386910998986260064292969941700571065324093138297979257931691345682254269164306064975769369127625014045663035875171158892928794210062507019588920070801156491359758154761780978985358553230957618055450744827082284134080525883351855617984497418118497487187902304595870883790822391150998716051617374926494510159014599469685953052434519385777098083277200414953239976953606840563990815880401693778209625585174179816216143768453459336159548241327860707162552430713159625281096759564799093093723107558943507738119632128460634790608857134108882647499708576805848447099897964689168779078762631918919490292570834034394600127212292104660678232354974951446468939100987669330261380383535480588687132900809945209219034565200192069746218191117973085627500489525672510148770478404360656112443827232163591656122575049662187767761692824659485125883128897367312697643568233627854128973642860630686335634865315947115055857627614653176916959081274571920861245719715857091611665779230827384746118296588388545769758743498195247029189740570310834357892618875039597615675092961554524956815221858199046257017818462926232019799589463714126061188761369930070409537101486672745469536720724008728143548397519860029753546376282473532447040904770567895167448694303892711067752154443762631020302367094178698495052766745823946296111381255333476304101987935401348138656011157172190549296792537895550803114497237674035101719159895709616358863798380079257046207324890450344874991296024588657176053976747192146081569447914213920978109213174719112218695806256596073963502977103940377877575000236901486185510005793116839032118243263608697058335530185158417528792506584516844090003148889411380278165345905526806424497700390733937932889352394563457562910268986468773943767461691740394640993773158591354888723834979482349993271684779429979651749131590204604914538672026149528003618483560379711275804779914020343730602398300947272373136549915215276159551915989778730998481777847593710868034385283483765759333193367911978129400544930052188897156818028547684696708760919454716468505848939229049136524530794738504302405785327473830764703073594814365394542007013436133272007135689791204389881441392871725830375859948521064074099231415071112172611268041896487990586107063932322043681441816625973531290063438952542544059753990438395662346357698111093650880850035165006942172924185545994466451568309155735996498233999420571276612481781795902357496217944160350633698212858575001159980711401333378287170993309612059387386143348174864875286305660249725997520696326412318950446909049175708071763501145199726775854680822374706702030982906330015261198362639398726349522417949474708491972329652852299000896145398930049264725919072070494719683996442221005651569001695926771686967575851443706291142568386819526189353592951742146824943867364490556528453920772174321399744456830796022595766853611319963538933639543867592594568519406377155524487456201540137460552375464483938521242700095865353386123259573442743612515691471794706569951449559403720204593784069056606231127959679869669721646180417102943177818101912152749699286273626761066834516873695674719885116712713277817186419788960119139662603778960516151210687644561078419628426419199786913324112585874686441033999318456439616409653076427300015355337535638829401987814473280557417998029961720344660575034888766034233047622164771960685376455927284717073623687109402472534698848436827906553492897687954527948348799860622552429426386460463609895675258220787477886421726001386859367249470294719057856052979105558236258134354343095517829200339839331618513486865028690618359517352556618879349662438836533993994058499536083753983766277294792417479458536482843905252146105700801056317650146454321313653157688469250273703501692114380024404108752849945364431437906423564115462911106529561379880428072657087688181977603621886618931397563036055648127606140245214974994539347117364415101767996329909925978250307915632135800089209937995020732490354063589618498894239417540904785545077437211674883530880834655619856859473195778783780217354758922349134953307125219993321618756614033798496247852792271872309194399934635431455333535646820193544197430551085393623638225968006691614444833073264969693910796346512541022341575652861691423597244855145887971346849497716639234957186466308829482061472369083882351528985987884051073681690859669343310648310661408243118957213137135277716348993493209571539890720231127353708200823968811401594980251423450366733749323471413555758241620223082557000123920784393890900930769113445516782570186004897842785801680914559028740792947962557915784460640268026272621318007744267801906620715440467040660139537656943331705590836114918897508758670819494942590022197077129222761197459786416229740588475077607330156035857761775497516232830743624105269448712588872231954689710970267794762812466683121495969402439044388699205508686093242710297551304964899567574729246689701178525510366737223496426165414508188629788392605266961864804106246277070698475400526552177031336870537250599587803388363629082518485811327536421404938899257695119355664184812102066896439024705568334574671557596813209934462159466677058848677109576048270443936402373643296244915474029510553138644024856623576409129328001537197633146520555250459303605716263808064673782943961828281084960976989516630194883307666048902837270001129670310754664791304249426782539210916493056251254867681454343991700850681890961542484918718307205930188675480668555856124895221410344596865387615083544673933893547952198480372835064583305704523297242348987578393158910526064012475643658033173314579343608812173164081616491673637671471749310136881426506399041987765425623867648158481527490284163896344389110817366334433713714532016809675137219918505052895061408503137853564876234284250750961734580552342191557929004123629573948472385835535959499330326016532792808444164908354245497787371310919924389024165402936319698640216140531698990041972713128246619214067059467076785661763473818909428176432391359773246285756541975729643910358921895099751249451752706441860554034565743081193531539901542089842414205035001339846509860072027561477540280597997388526128696311674446508533621684597523264236602762741992099386138482772792146011330548485009821033477360516493082616674193330963213296439638218684097276178888059164339255316794631334349149870743560204616070319889862863831708264183583437010767939564218141664000616943684260191056782289034455837494164678766104560419387526082151936371867463733992507808685385509936876489878679119346543989959691466499020597101426329328210868427536291391219638692394370674489020995404892997210383846448230534884682356631839899280371943010937689268243416018407459151704210786521656617911437715054018614527740518158492259564052862806451601937361697573511525054503953161303447866082547236039231757928733920798566724585893788481320315731854134744974891215621044578052770287611973561166980884835129916741959141910259390651950182023117489847515554913235186920178500651943496841647913472472643778274648192269539789429309994179884838785461304750253268657731776688286647315962767561186020692781570670989464139615301162866342514822251519841420869007876269219613384601849669314403970867190210569795551816026615830209638665226554952626393028735292957642862081650513433986828185247313739259618034296505659111805160174606901019212504126576078552105426911052219929973902327599787202364906765492967888573995760498464839971496725996008747954994269500675967423810409207475517533250008270487236862680572230521474728447293496758662712014903534505647656719081379076416762095100350629700210023783617703750539575153129533329894835509066017736905407780931517666403762212068945361414285161333950150346262488360647937779986629579584677667000056089482121055741007368891696001084960672811879549250976070651352878891093193488458566510946404863385854216247021804875132511418233886902412425850690050836508983684505917389007069387486210366229369425572837343762399654391940875812891916283089768272389508225484262260301175672444074285550814730489344626317232744358666240661199365857168742055905242396905354565563794103423412654505823976994757705184680028118994125265818262193782648267920546012244525788049833157274094474834892966442891882513061580196145441076612342082343724399333870197677859541471793020131066395412514230942520762653128448013093200462181591923093088733358163919628615097236910530426708207183608306782141740075598525246733464306796157938964268711233989905471204494932564336299872528030496912826747675076368579079689519993557376024916913926580729703323440302041890240607599259621073833970527406058694633884230245214252327345539815367653380860664416369343069357678661380687997550476505632607735815730041307598695839681365314205434118771349711418270954474119682001655736568688747007250803409127511270040488224023184014646133458161555781016893511864267625657820962849149901234199375400583831856983090968090762747290404589255179528436051918387944542524776047888713164941863102778160066488011286134831453264711913816224656481003650091351315542085617421019105020129378424617165234202780080100481744484791405696985513283732200499452638364230899199335395293282154661404342595256810999758724092567875738290459722469304384133064989919473125944612692437718804563268046849288177888957761996848254664894629240567297696378402226220321127390029872687972635080338807023087966297513556565512329069823609011008460876026383690766680152280315464874236379102430647959433878275336632692459860914453246290863376392088954570569923607079074957435359660630302561063252545485208903557565493260190881872867482219470493804780491481502369412536776612895064846313036343922246982998052687096714851439796447219650436156671835832800117815559922640042447522797297880231787976714979379661546594157910786507120567535180676207619985024663991485094175496651832217886959651623486197172166125813395093724628111707660024464547935802279581816868496405198737143637876995184365068092917258662164377744045184187862729452287157587791069147173108836941988073152397918813595322932088871807802251230579700871133050502017947831920265556173245689428508228736330912453308139542654177567040544014951896043515838258210526123088970318018832132356240215457011280354158593716742626610721269095694206539965240960657787031398764827622308860463339964926803806395463348634899469882580998844471005520541310429163345092114571573154341365601701684598123590108633123912721376811299750270503309346951243631616828626436506619717047961805641247628172526290157856797217895244190981751520435481858533001437632209524285479102739689930237599301632971015656385009538673184026267634308055916075039748394165686312707069147144934281246001438154419996936716827835112730901015053823400160994477445320227617342201792708530193781555935056709080483328937320406311692325658674069841512578460657722925202999043119551291343866882398973910448916892482848882221640503816149239102478829368485963903766353940412172840769871486298222827723498554811293426917371092991366820399508057952201104520763648168130640577650845925874498272608881354925923376515881042295557847912540922047944236401834736301099340213320680882173629749719758224690044130017171605638633281794766676991664086532789519893772996382086738519546566331063092384541112089204825480952298286339986721343488755767182949392735623730579899215621375150753972423351522830943058798502139802462934750177909747043422640993351435312445326911027674831319446618065408492929386125729443903498465240326487831249110405614234934071146364967081141760987443089821105169053247527167833577692273265896158714252055524789368930602794048859443199732501464680582695184681771858049964994428543319480865170188132861387363290818997834788629439116234459946148362618802082609657302048986950350908907316328766252328392681453236148351947765732140093775630013568162995730456820469591991096991377394804321442153370659777842694379461973286703391787382829740463535800983172792804611135198922092144332579935299104047293282680197382548765111739227603303689029585135592434927284298212978576887710889159718910151626858225166594017105449814847370877427367550079478398424435863498845132182981988972721130395402037034861612602338398317199118321046882046376761567593961632645442307620157108978470747480313587940716155371653900552993404319749366412552168199702379941425860952553166035255787001417907368695551207722213455483238552488577989651885113688089729375676660993063161039092707775087610745228455395333557799458583619384696398048867732669551273997604497218143442194352247006964152143846361791142265669029676635341893121035659496844059679592147195624569061767111719541950658618760411856791971056011492600576507633507219605101335624621479445338637169079239554063616025910713812110994976400725172677342852899150412761342730659758120286130641266313517511651015364912743422324090686930628824456876753604313051936155699315846918105565684674874410706178307097512555241452606872419140604427129362111373211786554636272792470762972689783622477057083674732976376333172796369319732408042359232461073394788524275884868416113797319563641993136767712488577553657220970373917226415860482339459046538967728731561939469652950539532341401959936913222966864455089698656398551782145184047735139955342374845477002161925550791264534664506296572695749242696370913090435473913712850212828916018937420180831632046373551225056810570039421501444890917213610336694524184009760743976245013081281120145214106314278924378413674287100892611866655034618439215042404031269215661698307118137377740129649418331225157776306718572667770246941976092607797846652234744906618057039642113679874744773389927938809569630561277520498941580684155402628055323341204176797895596001152090157447429846108818437499107169742784916529192683921135721596219048815365630092576465317714665498786995708776440371925359312028357881306949328611303558150255867520743160939086152239665888313488625690698174256732883350937275966724979465338612718498405339238700030619248709421485788354532830916800646585850969707482167833765224374243021407376206293701065253032841731515560959478768996719736737197732945706037446660989548096770515679779628109391408211852638279410579739843221939459592848834677389545561490958057717960413092156612442526304458916921953069776699293647016372591935777872490047938603756620159617399152910310604612435466808607350282791811119117902848190420546214663978815435245186819389208779324146405102127670277911809705460231479739491121892901513458290387714126053224206537602072467098477537885868425067843824828178044208008712736856712191898574936997789153598182788498002594487903535927885536417894647167669656548927839738834342630221985181440524748936707358258730362599683029127385853867182365191667302481330509158641128844170794718985154925686689120216852452840840600407283910152538579207853166927687374299044779905483175756451627428766238064335788343128137210030590272422357576799260558041537064299005383860413499510104935457376483476610891570325260596476020553910089055402003279829769865305134506911746509178913631982376978882760344764576295531726058310618154006632717184689050074654257173481910884011298067706542387677968705357623919841828179432719041135656208201679472017841157646096743337625840874336163192734512542179346015564500484911059538545702170241652439065855119671609316132833337429676747365319974014629747995132192321885169331017785322608555269616467025013848642774535595255491880955070980808749616042276059134856697937471145700948792365827734609197651341079345741590896539751708395781667646376944387106951927678879639616525283611335750439384895494540395537625852670079859659352314655305122049552725397183750073340600534857001213062486890884544893295467017039898466191117844094996962158430265734241397581086187070888874541905711941064957272359518516610126939615587566790188054875854648568794512125896382925117271554034901872905760049435806651379709287837196768148814471104728630309166281139573884767814430567986853980103091497372612108317426480471258813572198038332574346581878813922069636355310369861665817623296080760550615697660479659354199258340783475629614318109562647462760964022265519788670937260032898277079556577570905006619833234455454485723607040987876526602843988503552165866613019837114741267919065697164826006209032189690029312145788754190575341673999977885185611852290600097830449643806768872999041193762717592827964932659172156457652474340624811587697699171269528963943562474974962763299932432080428296139247950691779273086593125412596998220269208973552467287269493432470731737314022183712892132693655752308520282933775778026010459456879452525586992218132050984506821322264929651671201211584117779607186970420283750721761614819266720186607426342495312170228235687460597668066923203954378760689824033363011417289836644131025702737294262580369263589030997528853938772286163794847412099123278920531793646660592162878209043568930076633449911121353549695968968079045145343870630616969254485933780408429174552534561925218225687822359418120976213917922567255088079221680399626532645152725461702737351658857086492040009741019902577261409197666562131895783624695884544797906961269503531412141296915220035271834347031016823547417810573475304162992685365428210187742408297566594950106035783499686038528643397193369247458711028390574103427794982876933229850976945325107887038882463074056681956176466757282484958827716947955102769690021560483896203366567681896765857195625733982152258353931076191080138954895985027084204401551034750172279738315049137717261137263863457600871800291390481920544117343094897852733217257097047967899391566930348068935928651770662630692953035935245886773964110274449224123239860482355670432594194244796856111119719602760685544434506343270716770911168813900679527392312137803061481388364768264193905051828003903259469695437561663056836018348114845060498228838440236387611220490645008396660652353726317330889470335623583876353046188973920806746232857858059723084641994743152102246151262392899000881852912501358942803154116825383892726596092979581442772675685341917659398773793508396353590037285377096186120965411309035592997125717857148262387233741595622793005401816837357796635776220126936781518193360760518288194948104958044469055685294135510773521342521494370248270068701250266223621702629575595476443725612641015234741166935968027160278898117226399966486152500574323798750513861777118531612315561802749086711324360603086198288215243573162988324888597043854546298043059851189992649692550426127421171342445491076902269210134309997092082608200896712938306345258580938772306493117806207367907025065930151908888338831002106173528741968426071158269039544918461866515076180859114153013739583421706350887746274211568919370612540440507635416303635494836018697471142824405783464940192541236234969394322807945216477620340872399001469755595198636976639235209117518833242934472575306839578130873029712127451995720091580125612647704996265073183015190027163741553258919520058949962000520816067453934379357807108287103761650500891049105495077748592734479184993925259389185161396302887773908924927790964720118189596046098601193370590097076479459223397834826032470930151048421134471903958989919335733368864999929257343973437399954425195245363360057383414642781314539257400882661840336430289094918075575933666843504149689155680430089158125587337252591692862383966273688629482551047761294496559649111464842693816780925827039512688445789944207669375246692190680206548150735709471338614778916219161551000841796656089009454306552426729564250421485187857862579846439877419811364485915588036572306564978919108409747373912670059861204767885127746413411033287447053128205076645145381640304714547473522461285317363038141593608403739331538321467754100122656507463014757956567046912169560088787028566977927535588759303511858455815069188641660412049687973044890173141178275240040612749996843904734507933333857093720706613554687183261405523484331477808481078741499502404621328489026812848468650612720810414632706275645875775551254054528074659583808125219946198229285729072615891475973208337236484731547696585439655311134872851532951676160395783306905096817802625925434717268078042637083186331066585553652353908970486562413206023354444327369623530287270379431727662938428060834408431197029264296907681072148636554018429427139393047741682526104937736124793356989079391565189885352822274619749735743437774949929729864542671543153547277086577302104680503757724211102409654515311908260774550971620329607279450458213067677519813327171196120666185678643352049403722645491634936189110550708250180912009377638368023915821004203497004546691750684641313268001808141193957948521394707188996939912332605672383285442232512787378997191357659104317201200847603114719034108609030773876184976318027235582205380503592155257721677815835350208110941377443954640043594456258622223244002704074617871387263587654979393202653167643313782584043165682172620920947348796112329757727956414362620902444529637799654584847112825011357556451231772590845616703040027109612346124479136235947603149657879735688806485012211781640148829192477955927696687200316127250490753939366728270038163782381865633148032650431858763210981028016139186713716910258176431098838440251228402040489502735676421104143024776409172499378737013992805610898522054316370897722509990747719192241931472171871833370791837171794805125701841569924256126453609061516717046341907374613463732199137306107844391197940886708456340785809837024677425181420317835641919567992947091373029465813797936051049930251289940702419640848380758545435213627006115509715861867024450666796491855178577762853682165448661243820455659221889758863292254363953226048930904595975199264304744112081238224937317378959335590284254079429940731711553889905737794651594659784759579768425326732051304587206395949038873053557403689030151188144223719337609630863326806670336075299650687853233828740683172921811743486194202851799872398211603602601685875160113325566205632718616050950715955615741971881775367151571574090040197116007921364651828307151577724540228757528509877951621903776762323325138663577957705733644665974602435973783602227299246659325835883438738095053481731006312292122873214824108112456196513053365591381397831023271324427260431361412260876874319342819497874797188246058773153901159791151648332120894572837596369906966853874087117317055935406805224372489122182828387419227006556382980476904202687899441208812423169812813268233712083706389750931415903344307475698560538511500383180837099551970994102532518918909210048360062722101603790517434774810028538670352278186480727062617589567155582090845750671755548476738738861676685507455249874693074858584934494173033734994946054330329732864566108689379670077080130065394810164505953967377900412243210956347037795300695665294180875976021466562156870713130931466255456188392238674859630524846644484561341742482201474163540930201444073144317800715143028385916266321985906034311085329105349706540050430364162087615099465128446471317882575197061244713612067314228659872258155623568234015955980985167185070787246881904137586201960941046397621675186774014960790444683835215878618144541618324938699804339428052501271289405338126573939338927271234715604291698468440814843067561380676145218311681067450373632557862751442233037644074149400726418489981101283208587059823470449681489564088787968591774574056446419692310693881998672358246915034471392080624760152642822193458358736944824605044566683765203640291741998243351500765205203450630487441269417342004519298586093821017315108458537140274069834443241108787066183940361893869869038273566929854611122289265809471493249720659652703470514763576838927032411406685151875965741570089042446507255781947400125596081994998734331419265341213549415754347513347919804411855203904844639437748387774368097291308634798605247338539064337641395727913411649991152546672572225614460267668473746266404166356179414889321612296168390438255649761739883020838376008229911347286909370048375575464693747292864914409369368500567148214972587860492341727041991373500925702622789254528991316138354128407626918881107453969791533915835534516866371298417638445685899250564574389036439450158900336089310659890744375564819653327887278094990334023878184555773029256661680731454701219910133558482422643476852390304609469869084662416372503628304516141830783183809797620311516805160747739020181332311796505892718604411990900777134031808994513503789207037254165909410726866375428409171853285549037170389542538121888256482722587604339795066308437320068303904057992996351540808700223110446736013049307822737709259027232105237851497007780427919387368782844693290034407679886805301577849423611557441873744606302767420796938485446767833109701359496828484296571115848478409165523415549191460893847874512209335181744566826347916842359222645336320428663493466684102371763222090588823723832123630604591405823104229222836500095936322831884724071247145690024515248052566117557523569111467601727047241511261091563658075315008452457207224990014586245692259244906920500860385252224232658613275294631187617482756329681778398187592304200059211252042903171444857677146837522941967953303720520854938628412394594609572748757836422970171432904615722268817694666425694865925300755131589015966010694229420157996023961338746387471338752667828635443447486057337209882880401802608211556022174386243423293602182498953717635762236990528209012872567416956263187377879287814525272295024245669577080867003549615233550887241060131426541347149683175990587037284382822050793829231441437104566943145418226672370030238695222231117724585674296089042620475050148477076834765406389335291023731835036921412147515193059880220331126197049623269031778473455810075945513685722733281700455280613862339422607643912924565642275036682464600233997244466777509967554857132479260673978689167113714971835734653405394855894164252270895245169276892935596186875654810251349107883478631286367307460416417632877760727927979554062612985072270678300589656932488432290362279404324554986346383280521620448704445114243630376760219465767688787110986560103235756714977656087135787573341982161542099796955716084675354422947157631090140200034355629574110704857270214632535485444916748755245291559760763058715688390519272760711083566904834157838539195690346845498713317118258184017840534174847105833553054537457597190521458752707129940796294350831181629846282125572714009079033008810398659147756598007651472787072350447393047514994388482758778795980796382059454342927016529022835301908561874028492687214467166366426954543926969902643323275041842942847809431090855662377380607841786987334467321513384965951540412491547576416178863949155930856332321565914285582616960594444559731534891431345618059740140812641204452717786031311215061093641941853675662600956421031792841159993029393628726345058124677285711648203124345629889121044202696260152104952268332305693797086325864503331205282438636317622575493157753088540319422854970840864174207399215395693140767158059824584472074333764037383214344206454057408403926967541210144410598681746005123697967755060322492392302100664423093519485870358053437725761104481899979804182100557923872896789453902849625755480193287919546317964573823387222793155800550400091794843565688421445163038078570990233108337797231625415938199480878603768070888360810797473503866260608659570000406622605819973919184158701068086215668579623666081164182779635558032685154992749162000850057468147460240737119620258589235817376086838345784136499321842909184675883134168851245681553264952703300672679331948550273440933451397914705280654763247167857871842381357691551554768810140259897907547798104204856104469268928680908926948548885163254951947703738172264383415169250791727374156954017392985078225746369636154367615212089269602518798539244300461596089140076215047892079986579830555840302736995788189975329021013011762412506877225955587830671043160862896049406950560948133169571148771478629829538377543037467303898302714380306203471511030340157707004270484769251056630687970365776417478326656202522129608891572802887887265523707444087900390573781110430787543878891949561622966434202049323071812572370471509604304726680166714209000865969829652111264201706406999249491483256350858486542710294279351341874892593696197646272746294221247955903460160628382044526417504991443891704541508328273373040028923610577841505705586365494272104564503295053125705678881467705936388201056480851638215353166533242131887772291784131737760070142088840275294013599095630678295039938190072730088875131823332645770281629362914718174839328746279250404234220954660960670349077618448270027764976822560717215047545115936824303290236428126467569526641771763472439920819969738218886062073846211684681941063379612522615083447349264404548651062786242836259221625207484016396146791397193408747907451000862510737721832178898715313451455664582183893902746154819298008664341618521235400606171110722301537664108144058524095374992655205774876644662043012857723532447304031313850270753581073185247762933246596308597126462939882464198627698979274660373759888490888857187876598001130177348867638910391820455940552738819388851167504099593956334493259288815140859227747371913574991168537238455962768784843808072312638376610654853992280268166395896160633908987400426694523623286655620849320807174882799760967116588194234143465759558049847497948781351870464918417546498528609831008053873197514352645520678562552581614279710452622414652597260186775415622542039018627585894565427848657702215918537345593438985103431725972760468810788676540467540448176106106126806073308852229792149371234294194564141012706085986780842605696913364030814044511893964383650200957751624594394276932040306969225192790029817076722763490596785391301144965778004766309758312246460595732206712062112774101430459515372802401313976665364281237380869720348273022457334259853580641084349529265736005741956257067543971571787918747337588502601344009078724986636380081248353027985595469105078313601234076266430302344846143088646172870428695519475903833516241053713545600974881141107527980154924262726984295641335577452508538434252170957036932196306800830869723716655988124440144505816575404149016174968222031925161939399088878949776861988546449917941688587691221727107564325764293572165298405078647958622898953557936253376433465756215157034277079064083429616651095661259490690352155759797213426605283757634274558605672692614047685468979204740439010672457676205005730373932294294824591840804331425573143418758078663169782173207426106384853418176349586489530730095651494656428747515198262888128220016930328403661618226496512284877545038757811659348898264348246568171059170694235283533792418355465404350646590794196485831428123833944952083023134580176660623123588594589800896292846705972904768928608110160993958473515128035332997808773088421425300034406608202007301954594225355086280948123568942653948557546971340441211219088441259494136221880275298165846308087732722857899463397775016030806651931371464419032053202869976071041822552117350278575090581998357629541084583615567044740935324148582851756931597275406683443285394336023098867900830746352982718911096115129674643330059045467148455223652565061712963178562774768613385489206893951506327785278384201917340005040441073483361460080998853331482154693837584963220897557634816092533014863805462002775786864944016988844880356418238290832161989983937327671670203205658128528820406353459013126702964632168401636123921944895742068804207511201435641867781770709279633621107559008728691004271709706681047177531556883831760008862756308661222590631959630569788810792165255388955600212324121003965262408131494906207607765527193285738914105072245105041526620497188606379026721800027968354877854341830788351644219399682155518349542800255608876474760313007491977414587029005460824985767163011295321705570835340037714672493907873867217677399810890246021435761368765329151210651266971518870234736589553628413727457331641284656926955438908103012128919882597578959249322144127451307117210313852948463988028149637245056798881633312980943522337825776749525999889319575392688321075541945339829397916141192107005044026561025644669509336103804833224052901510957374237726550997600769764211238279413932203869187520080562890028893352484418981969432440056342244203850637132913016741446976547087968828137579910626761408134880476198510920193860876494382507531641258121020746656150761714739476567049704501866627740958542640668833407252766474193869411296773747112026636421018236959881380558733799708153017414640061860311987392918807821176978423308955990069856847769660693705430478406031427028833750366159320947666530027533954983557132023398684893484324369915899633058286816886268443062168151157294789955854379642896919055641458976872064571793553853862388890259634628807260578842778745227064484211258597127483358885899071597160303200903395594836312234985977019062506946941987067391049036723758052309793673445335036270527816625274376099411810535036843498464590581115922569712628731117139508557439092462095006257624619977028311789448010746031438652676850998516691233096971735780867801533032168675663929330858473895079584598297296372642863015184552747481518227903500039767455951972460671400722514692223211329103822965178434434811765699568202503152793678630329600728538248450717165841473525565756941099140941850485711921008981282070080023180420858288298945331512238396878957380231185019437529537512021996783744410069352834494111826905360297638514435839858153425986480890051273794207997769504150953439127856202001599215158862142294347785342306389769202656695917054674323929456829514752019711347811670401583398651706656512355446905671933975724133635603343144210689930151151666770091985988066877670581031589787860273382235795666214949660189824182036857137421260203268725799968140489556723900058699928762033272887817756007205143996481180998170189815808127425905256572534674757830812979968297721209286833217866152724856916232281017172458853004170554817039465873292356935748601702016924862091687172402903821692699595617957646253087589868805550158896090478419449118570808733329437967573326131998613872532219374847732109221092501626188173418895335919617977631078551085059895466853682591550992890858158226944847289714668202185308231259648751292824330239085573216208831933727739081540793481698581475223348655443265352762377711927035579988784729387462517331860653176249564404141555180036214771028048767427644026116019555525464669843927386862604200169956845507780357945073785200547883444034091403803291136479245966671052343262095509227525178379145134021274645992284103827888684982801862156380679183485290881520662053726740441555115860640906822071562718274395093279076434448031858132255038891305731497226898881825256154548134189291864631372067343703504792930297745573911168409752634800599082290174048639075582485480585700282645439442834510628006600314491413845117496447411809549876621248218469044184242804580924968886489624852474316298103338060322807519331865991549659079534818152655469750834034496866047388981328531496872406578635680011476842882566803875667634906186537991234582763094565823610460631416781441553557870309776730018537019024174102480658752931992338793675236939407406607458070004216574931645338220011611746853574761569034487715725691934372368226204779335289637616825274580065913455499170354831513403796819848210707802419828595020507205744193946471060652697528594331089451993047066594795193986100685900722610685412805366333401760718547188424378582611426730724675737424642370702361278215201074465587965352999668252695250241098093852597032323619923982820543407692256554253266552401159719491649127723853499110812903840622911591232765281172776962945362237674747580737369120954407013167667086648418240748109201891271724755535026690310480385506017728846322756108216490487332695964522554945110439238633810763935028340939226145818736494379036744664360326224410023465868442224613328856801324553109451402392754359518569940858038656336868904043773240796453949147957008895137122188634891976519109357085481688275338641474104731014741615055095792363735772661896597107711395061969952365649169022205152754896832883220420428207039089891349007926842605585598000134155138725382451090413842697446616078639823796364053751513421749076071595934677030345881700535860913884351548193859535469905257640665732953901485338491180869085563526014608022988322844935385148297593138386026420448332099953914876993647393892760740752762858354289873051067951878404278808521110417830275142140059057948821248152549889575118816988863570542113793614835888569001384013906396317088876834046103482629056574767667801918060725447684212426226601163755202766669271075767029829152212266214561289150053909501165007450218022045517232047403336882126506381266497772912485718017363502062781894808339785191381135960758845305954880788971951046957446849293951043680192053142411460889719631121763301833846408818832892290818449175457161165482354234481948094058743903260868161713315923094432673147104845233669308974760212546785904941870045166068193794566298423542161743587372832567027767397037790804008838319529535537826637111586689843358195511759816735102669878520213060621857288240519524178419608171769049846039979926657734097203762714878913044663321459955928802242271527660249315336476673734487154702789584347090908861392317000611695498479745776481796512089147729370888933372314104560051317385273627332418844945625918662475466987129961896679043187462150321309636642272860355940650493314080521010264993341340162868052265133700454019442095744942920470361367464552188500308610425005269442959123632982093612260261401506078947897780660221535162801964301293185162267132922773008209684489100099695657435374977137270516700441036975783948453710025167004125219483131337810611447704448198091960489048898696815142603152822702704564924353401974892025388031511063708219559514349313662792804273731172590786871807746096585208690003438176685916007652654983101276490160205990132939791249189890699328679328490621853802470406210016331245533223784044869375968643033164248373855670436257140067324520036079240499740840683487319447659039148709592382927868686785083482650767797473436152883397101891825046091042350932203489305675527378772420083638299174562631183476156715122635744070111805233341302309502235012764697580755957064732258152385060848053704536508773739166427163606789527302106186584332613685957622575179926959250206110050143714688603358541723215210443073265140377899423201856068970253963816723029660977859895770991038446614130658694442808773309164730429031552582920422217833704398159515907490648204268347557495601709486530700806431959912229677946516203492355954701805701014063142922400203655600154132802110436276193830105802888886563477791181521059659732302466130802308100906965236437053133742515248630626464297754427794376668679138425362078254319397494927209092734997770060982056723505198544695319067015524408490346493299531389712053999845338830151046885433558412458578662063889925716906307419567077828469013276584827435003233069683512438985672484505512818167401048121800313379571811862803407866083669210516743694325215458497655908338563861150790754433114427310516962283977428512957709464113783941571135447697465868793494628194515778474490428176415752689259744744446041829614197543510045009738472166768659276541304309073688151072059870873850803058626565624360166415512775670355817372089292312104807519239143960418611934659045955823187802545796958345080387230620136880779940065448859989711693634795475409760672379966084515639070316656077343103030293452654944267749907372095287759933530938309784740984278819464745550447089652244670438486288938670782304339461316061766052374667940151758126891128225648183759344263020611404477268171549171778186085839494598588201655047083680428620060618784756284936137937920112492445126155083645764395713160845902399420524590502157718713484590323438894459471375466044614115646481423361939698616534396318195003075560645904590848752931703779359945180831171403738096711540524989017844453321851780618671649312300422495062803497753125206504585165825489106927665079128182744045661540858948831328592568720304370832012656303423558575592222579368297702708584659060698490016064480073909070192288436475525347797466641345036503724014650114614777010443724683876992468324226460698589688047118216359529975615459013316859612221197674080733351708614842919142306300535695604351411998955160841883299680454515534505472733811157468993132874819247853389162714997861349535849742621962411269858550715829953932947639198422102067954660856097703536991541912156213090355864377881026198230107648078651779559273513002187575431130959789573014884139713613449041842263451446015296645499427752851040120056638391664779784543797040142564693046545968093226615586361312808390968751076489832471211734451628508368858625512766433903376774537736611558024871253992212702812029079711896750078936005137040410890770376645362421051453574397958923958709122325653729901665989529530282250147554486587032576219489796796733096317970260496025351932682774142457379244891380580729734241640045366095827841522750837591864086851317680339008051191227313285273665778129943628766735971591187433364213846977035354524568635001684197162403605848484933321337815554052626163697457120248047640063649387578682090406073774326590439334647369613277208742646173474535951808715021780608053126993620834111871476044656343696505931104161957732750288184637666096217766864479998500361526707012275890336844863511078953489649219572512663530428640323862640996278718749739471639371484437339621433331273398232278406202103597388580593402862315301049355546108281838223392504673555052149460821819464091133016687944194882721228638166407923555800331799083130281848586257480001873510095054389649487723048556913029998206667219398794431733781741849586926722570696286374668716144980420698943482935609649395988925328136862049010982301937757734818180009588695374256108108072633577922501319953602400071424598926040646634465540173862187709004905784431751144025591803821990755241706780920583153229455779523253456463379306755862220401463371250745695040938165182104671591539870782683722559326560512344104028060614549800572957263169377139345984855582489365310981929761591761466718922224005371818303015020186731069118899932356683970106349112580000696252437567139827984265914585615962501183449023536921331339502968036305742440787512214463078255238483180532291204538942588067844596857794591134297681482016727714616765128634759258981557563534652417280487413631080908344313646255346492613532955855939642645692134714038068761833292113152328032624686453660195520440267936170728691742957519753317416273800822020370366469630181309817122618927361016034477862795815618704643088781159371693214193837478073487275012484259898800148577561845622280208102881911484711745871539320275803653703155649173196942370397944904248142552025672798173066371488536963644538743063000422816581138162503170912572640987661926836339578249142497735862924355041912134792773101242432292575929133024953482943873393760100472493905939565489464263339515395045004831544399652546223584266907281742424465517905394573616776292559775725719677500022569641365456906301479718224925697525195096700706894180578979169457364035312560965647608808297212219807536815506629379703091531712134381944269234234653918348797307493306874706337139920750213861602974130879403224717826807058895245963406025839292090625881384344761866038700330180948386380530886299763810140208689062877219700461125023670060790012559436356080246239464423169688158505509374874925785079895261527542051532448285348902879581132029811958759673471019921704363353789929059656380828877740652778901383560948648081570169280904194140768732322517680985938007134000606626986589368114958757644983379059941487363139901887206484682002676303173732082224862710735338349021984793772528288801433491572537774700190861479801103309785925764442708564599000863286879075591477415456523055997169233917785879828925475443687248553243568119730719833702515583363732889250156450872809215625966062987371229066377544944428151359834970500892640547681709066384691759118071941014299866153377660647705336030777708707055232456773466861157416105977831353431910376481109590486226557869962496451747533388848163485471355236082465778347436924342721959379347202804799901262852589893804226143096180745208439459532927159977252194324316630282694109023847382186284669695103649721476041941883017022245160632572606314961844772157005972689211517004282316021484209868951812089609013270094550859338805527973216369282492821207766743679809896313311239938554720712759122576316390913444980330161103010606448739258953539227951608869338781146681574041752444729159658234178239712404290970114323692985242316693172390901457925998293336803529889090029614584701564583946315552251864006913910851812636211341645219226615590740321061306263746536119797846211987406875564761596031904468784739223078683276659335114780737123350053532143072547839548431907418536430967022849380032563403719754397094770459831396252438292425714705255573169155811845485816277156554334603145473138112794704902360923141940401932378396303120055793491505920209964536745919989314642669774482934387020045870346803251196776001347659835064728967321808357838206565238990430396028743238378123966497814163672528856932390860587149526043503425652353246801528394172122935701122986380796791078716257380765731381912226752443511118669316233024349672779781826119116730824114067395954203672416643801958562064000814235883021269972727862705922276863457142971358041051854048241665703931201130194621490508744540373085658521511278127113728084072469105965971483068009773150846568783109646735848737389561622755729200552132463563262886059433159684399540964171062388133995520250926000238605428213518930774396278684457984453359912446525328535064322091028182090036045816479181543098914175331029059522710402714128873068383802628129491299276000026391596218590447275534966328836384514805561507086117577015115186196705618209989060359935870395147109639660272461114469209418539963764553523355340720357098072133366450860237232609414708679717553943216768714559356555344721078737233485952904833891091485346434440580879073020382508541803091151543644899430094946428541132544122838907306248868088539116648469649605352431449200065944843835609425440397022862430672109137542854757198313932783364231305377356476078808526516812402483439094035669850531218353766574619804452027936640760712529646863753641770805219082567825991227805861923349504119500644494709101986526944428585343309341187378302687738068214839611752468613405804000465325521483947494390219006517281774902659559178114148390170357477915042814930755172547384148863536996774047035198739225218042774442213069776130084194514922008846326336263792456148146322460181306290217098799575599094528405084719908906596725448398249877909892735444904138011015346324473059922781007919719334982945589315699821118659835510590040877770300457684903165494592484323119608159979570851463653124069451641379774527421863886548250220884747723764886668189360245006371779058241458185153508296263061044868051122311633931372155040447448881023890981939053403423700025498043196179174677290456826703767394407389718871365258225201694710276004203467733495361840043846495527838302417540703305784473524782364075531997489645893805110201627848579397696753528388871744152707350284222906185869253499419972123990913248459845169412001771726468393841373152331287859784616041286860544374276523328343751251104497101840073599571403656011209332575588881997270786223715767286916267457851675253559649787401308745956420894816350470384097779295931623195985878014602548921668319813294577966895854177797612424992657761795538966737640316590579528231473082018281225919169256344889067233369675770273215828996436667875184209917048638208735189958734523432318903434265734372762036547038670279502468297929446385960574793216277536333187893782478885332383153239002475290528821920679561346261896714739642681497121433983182451458849689686375384438800338307498784221691646838927075343063732498322029501576119527118816004482321980755797058382069299853140966743937848852709945739187051535318152750936156206556821496137795540649759117252634823690903322600086783003382161419407271981914595356017169442930241987610647881631688998841427557495680912970431081451543970430875431564859298271958135272152183626893693592411077480833408223703318273238593753685279310797749921202376291282013159579812139622296705309524739475276764681071580263017406922763629509003069244747847649173633482518109684076922925363189174930374975690551665422844983551205541427141514861149451498719725024588062635297021584998235220350228136037902632480327347835690167451212998331817426421004975508508356027973655457298275117457637365320115752310674509023983015084392660532791876493174133627935269476828234890620758119270497621537290953031177939502754400806555219004835351713422948532834787517794978896199549841910775520240136307183874909132369771160359779235907004339848299547945229354253292099168662201700193948731412056287385734775325021832709066848574582226448393303697524601084816972636074480109781750341014545591453692358137063567974828300609097837637386175691344533412959940646040712561773977739768157772988041923221208199889162094732087225264401273832005781173021543527859394598867535008108777082022419867679631550764792527439052268431721152011147094568140118652683475908892621533499479914957829348200513855476169658273440640724190932631685043096787483487451703405875170218240992990130667925002755049815007204376553842317672067248169698627686622130222796150450768606316743871867092888156311420648693820728166202648703800586271195638848066704533115393025025779146633408084005734402417968096507209121996127672327157942938446980361922704805967034461023908272278854969509313214458275580636796423660469675412232574992850221659936809785753880160586452599999185204093237109036391299047018958837525419198027659154419060607076082289086904948192990401254785712867551178321539989173296081447753625049407752465953022056833738335983259240115134240540257381125241255560651879375207223946567221208388490774423873250201438311153801597482347701180398681530001346026503477166551171292402252829030241636004360721775867594088955909912857743461286251149536246692513337770236135339370396113570866769805817797599532418412383477947613915536679227146662999453690788548390812344163301468380593184181748012940710312325297839903363989036824696471455657237436094515563840179908983844943846537230749543373330179374531222714083657329457371771694658205476324312472422513048377425932441928165136499624374919780799804432284092452699534271978526309289450091650429313319056417490296498331381732065739477964575779514855668417725288802319146128636187720947928139863442946836363704971497375650234922767427051512163876628993829490605140171514395552986793790807226890121983652018369479735375081715313474276695445153100930503261527415088537906071993835749941009872675138864108562596670068896699427545693234704100836865101610912748006238913573343825755906622779863615041770825488691299585850455315078203792456246300264525982932602629971994115415651277058121522986291569926418234185720513979766778501991561129839836428828946719286438884661498415518341694755860863361900429180280063510118000688694308055426447830270499267060331736535108147015182672328316398892218922732533022324630513207154802357318693076764775143632621623578355800601138822818589664941262232708202504517403225397800255099975042318648790172664883052874781912052540936690705823334080549385728598640542649421344137837956864224801479423762226872702587767170004974319513555115431546729482482719809844790917269959201333497188136744588936896921444327097945983536002704480011431079280532892905032041641737551018499297981623668307918401167553362704711988607376212770987451661048926965285190925798683549954116640009861687935496122634548174073239204183577008805395034475726093057209660078496658144269017095299190530355806021370632465366129011572654454356210069649818383414504583848353888896464414870413637921429583752527936591303854692700149301193676815240427732286310848663121079606159861140745102275533759927781216310841808115209376162039676960008315934613428329830517571055672195149155752326661996168043156884606677188973854481506464765489869617941074825109186589723479557511305226143943005509325526467291626341074079924938847477624491106330433286254324234243978316573137087978877059431487276840492435451395284187935646693071264511270634974743223775702582169652213301745065500315123117071364484145862149252307555723843031712359416832792451843911589388890219478157931619238704980744432570808015406803098701653069056824656415305422891570493678765918569749097787376727055512582653364786235339398861528954725170044931418680796801331506764106132794242538946700421641047681863903220457003217994391336831810168490880876683067918468087608271159186698316877159986769289061237910898910021213546956668473570168586613241911021269741677468617095541611323096342273062054715693678678678922351390259351337496122234492712189920662970668277146427425405445727327178453014323188274236725808228789083377640481196082015942203180628005023257952520510988715462816761553440494129087098842935364865942947841359156086135526897646581809283639010023487332879882480309434967682905427400256867190000884761139566173477954281697962918050823763782541502990686064786511838741851960517635357122301968952763807179424578183270136316430190065922079476138307836168571229589003548831479909382379863045256987034976079511453335829079845733982391585873712278115358613996646255837703950044336774427767753581701425603792093845557078465817463934818201856552682693717934597966569713616508787217443998768133999598114437552902870089691322419013338615482683620664693586403195111947665435949781549801004209249240347768556909207167615871084351114025549997552752891317426054943223681830144333980405018673482814111986264489361920438805655918661603695995706634651603439215856608416225495557139260600327283586824149965275777743477211804835387514853663666254252449500844353062881801721336837960264256064012982835027533143697658171002546111421206644146659882575348493967580093648806173651178621969947968185046491269625687570556152071677424742774259400913625097372592005893877022829200611846203647181935329749582663965990665988793557830534349682341918061730560535933596807140493150738105141927393090944915302346757305371402535524338712500896752315896619652660338006421840181969454825664252139152392101214441143419420681849355293065184654661980184127685730608885123762031750611985739349944910905177026421461649994183466000984956461728892713874070561018984776862225373912582605629534205837599403264017323865422965204132213835107633006864317923032866210009801665813777465613063201838940905953120750419572019834740893424226621306904218388017564805464667336381513069503059582348452340416682814650293751619191681977193180574904653866665186187583710614067877834344342340782006109827425438306419088329150995242252177893360551351766542682923591805223790087549150147178526327718601841058738267080006935527119067185484971517880873677891109069144107640005061523962257624761846646328342628295460304896570677590461096192051575958751382936232016728149895286778438864944879808903859490380823049376532741994808453560197720146915161797137363501084655926855776141982606071846245890038944686432379576015331809319921451303733296033696575469703115021689949321599138413277520215000517597759418769567567372781097701059505159242360942646973656426011604521439716007361027341606449420664794088443209700080011065561166768091176162345164645532036196746127135854305465612636344733831098361171192699817724863164428200134470379728345854655066237409960104755683918578929797801355279499296895288060656931471539803408734697375014431689614922673498822524538359010392747077085281987801221856269986983162466125243589471272127915688679962925678641170017027006833098491933942840395917931386297334928172454217339008579365577766862285652838879241197859040689362214280955014856134809460372779186539981290148370048342974226231347627441177349252980786180351558825343001014657586695553354581935184572799488072162448250379945208480416483547254705089375016604516087195289537157762031486999614615276154860901404022845752129692437488163455632636378761669435095907125317473988773845838001462289033691036657314638294970735319972560378127136654660880508861232747827507295934085402671623908724480933616408161514464972696510730662063221292233629180099357673165851283607191075755526154297257961015293297275234308633674031252437061143902039550871347893397459246715420950993903540444749584739180778256101812473703529049555130400691162135832138727559782080150468089347886826865035229626981094681591765716500132884470125333523449299336019924459394938591091180716685895441142457789032150821079432193607523489022060241843579270486608511648856358172433993325387669471382746227745932770487689688157604759896405286568361419565054212034794609934227730435869595193311230303564385840454223096499333526399671883291853438578265070170433771454661077391456004667143140492966218801648234424723642932652153209432090437621151759056577602339867289833263141917827624224781427621316616871232177858571537763707419402454381358074583174714546746229297953424070081318041784129858724631055115204638910726848745081978924919403891918144755992790680034010535676955731415434346989071339282599078278386516903630872174193633954676053762514392816297730528479163567148199553246914723191295577630866690064574048834793190834220165652192446476860313783070976013393675284466058871985832311785334668482571891587052329446222963927704479731276508593404598881067511037032009063950406897005522434601286575789432338500072251976550026456090346352822808345109531922837565458626860304648842807439570029015998647024118795911039766235875091921115070176999751443219164889438580333213145331284347056295506986705518335808902615321683071638704551273389336299468329311476353922292661399724909819872396137021148751637121932011703666010133213935595198939224860108876740630172492472599319103318275266700264239286971962389621989621831116089544356039438823055951682222323237562606120479531678285882488542285978688922768893070814028028176240819611207930414448753087807582157807388630565935188497269433469046341084133101581087281390239657287908295667525793882638612485435384591180765912613372169371286584174243793252660884390952802746110916552501333990541301369055632917993350643983806053550414686101798876264015287185938835285653695687605369878058368743719598814351850751079282774610068170000162530370662775984256957155402357671482002008345996726610775793630377674908886899974169825368176063108833347925194300064206987410848778400694262465041538110481121480854258446044576369655610196735549871653606767796987844030141405195994868561567207032232135787432872481492735730554993566429681938568876235039794178999931151229066708016759883999295700174022828022316110964253222439539282794495949933545729734499371084623136633159904788328558111759693158004312712192705276576764082778981886747020915555458218379761625465005402230683160792699813305973245759266841957091550339223848299243539243016056098170941152824909102417897292796236145992311031962033600434961765327090044021131771930496366957028479359712955512181670855027126472534773926972200314878573637630203266125890396249093431288766367950653935299859189578870082798488855824070244604026043154828407254494175114729870313469116085022993749654066545627570867822582459227299382273471294856791092610080984764605958301859665600672732038263574677284847930437595708099133390190304839845752893214573526168418151911947251803901182708255534717691071920355853073814803719145811754250283622131566351801950767906368689152697172636592623325124874170497934740970279142213766914390251752736004672012963122584732013311432687357423220874530817635666581966617599562562065562278633800773102610911258272932001558155339453151122068384649041925254237189373462710468608526009201756646477423897617686253511579542710593600000083818499168954590237098124019367077205261137105270804408199367851422392859029507794987592572960546262720864376232225221236914500992926891542795518239823482344484931049993581170231343335368678843346634579663714947013534372658558894504636723271705729577051381284618044403034199900526358542670462920282820789480458000348457614560135962092939533588875880947801978634656987282717040623876900043502140733967177691454916203079098493235567681866389029422926515777959716117849114515100919940149712592892274432562074838781809849143023701750637258378620829998371308474923316467961224473154475424996999381837025484404822842640011821369758070637152412776032879107319716752543536174482082605318031274069101013325762001906522126384917458821008703528742688660815365314364576769605987942792315471755235262910938387501573491226306676050006234044945885190784960976519322068838078081532248899391804427698018500465225579248454068256149160726752040352715650547716854018292110396580099660729839328730372305089977090181162739890402194126681021022290318849135139451077782161195258585945465139121432034108802503902422339122589190092833982577341123577637806761763969051705439637511181015351261112642506389754015672283442656760005079850471516140052516348925254740151703944893082051519555389620487609605664581731051274328800075415201341506261789832150838526856230367836982187515672505757170825975890961092562958060157567515116982413433322909831879725097863856119691077611129841245130766433831586078814726275242563643610885437452740567362916069684193231929514992941974447332516921710873382317120079097273109876509835877380381465757591173677949393120707234376217623226893382195708602675566381354827520553046252146422718054170269686993413024461776679643560490044776560557370441207961290276908529403274797379632369799013261895726960005816339363307384193960803346996057777243827980776551684844312670008061069221211379040982757255443442004720945711678986884951672974372697141518304518868755546400219623890879767273051357519047634751821643331220862593223301650967920560209901614993810689637103273750648102937499536470524101911870844787120095454865968502875847766812399808706750748783281417488371836135907158464044809578717694256465077574914553165687003708180040481945269204737025446539892216864944273379702200250156349875564705781335686796053925520593681478373842226834723324705070651964967573241460696216714844933552414193659485531920061761316082103782491687293857190121705652183632340955394245511401156642089315990960207079135223890587885342574400711137513229580253499467210452546841100097877006350974217000623685031395755131624373460205033864673588324571634580228450746364751582498846876282419019836122312497900647542120969108372511770260183295791086204222500755584100035962114255328589407162227022098509228965048957495590322558731775487376308414256335626527547929064991552211442778143766652299232258554029339108712175934564542485707563159273201587196557754547884743616456302309413528077202862831529270133812578255656768051146781229659825501148056752721012186978074028747956991833584943594514478298786256955162977387704199832755121893862285519936328408277752801099505494790465220531250609692741764309326325177219957898166864976699152550237031536817657811063003063144178404560689553263428048749771059857122651557702064198723494271052204146463889472165216745627281507808937509303861563874180078489785491805694436447709643755105290850423509771734599722826196469468567777660295043149258418569365867138026294669640318946558121913525174662252320773427465636357282371615275769013893853501409456544706760622826085812974215541789962399620963308862599860639816223711354239638264473254011025935233714527677025738906880089274305940889022162933022786796444500313697177303296120334812851676213424407721392444836137111668244582875104998854052161541924362609530046511971547608954053775893210511004075647969138847638104922670283518409168872076953565165891969898514131558602295469675952300269729913614469244382583524676837682527010147642759065271710807539493192565571889748017920779373447287046268532243951211574783377802059482174318977326952179592291900112898212806103071810538009705974583668407278343323074283403099398780327257537207655334718320437400583924386613926962647418942585830762899440826268353611729566832929914747169628882243829954133887038804733689266588320330100374980674507031174054947557328635148645248175397134125416731660656180729189906261799547128140106681393989612645515515609591380369420461642309565202347888230889436290519658821009309434136184485712634936914573675540758863913662976270387523714913069230118000101925999008280702898890374373622958796122552188046279834716819117526727139389772536581354903140968873857691737285754722335925927810196947162940328133716021369192688497707847002739266440114528874157657194557171010453192620779840165941506176441711675945628420218368773363781346004710834454410611119938007002079140635864949105999051989518890233845313864706934737895916511381619530988400409837909872285658612573494062076319722551296462384655276859545391942377905848057820478784694694869251707244189603569000717035312131746975594279365889204148166848685619787892612954199510128152915785423635895267709592653006944720952572213028502521020769766084929191132391803140746371555644218946075341494483348153153350442422532195594254465547078642812943590675032330304977701952274742178949614637045741721424671459012344405872526466900326836394738217524462883979867766587570670194230033907676687273395335977621415062677881824772639911233005074083520173965429626763680055591695384737890564876245130923031697275684901149718719656134837976291824539425382884543088901621172256824254070115933779162034318998783604408532021799805820434395449276610851094108362264781419629558565422921840023494253114255197307929524097997555391445148637938557356371829799487402505523403936989017859312924035941826143522590543780958665072662154966493770847378774939659926905503074948821956414412776666111390018892303247127142270969329514068235438770455274026712550415323265713871415447909522808088174352042147620209588177101939309565075506079078808395374447497645568524334171571542046081452052008551491754783368754046448879664134873834574821184584438547428995412028082591362426702357500628461234159641601514924436693149839777462744953455365734478055929776962335041043342638622849506510274140832682483594599019676534929866177705509076486807642826657451388878178555928449026698735638923922806301570330154084273420470227902139925972074807405577440202728046856757563003663321886093007973287926526246757984378677965358442072889680720689448906201008856902927891975764024198118363587754186853592474807216378024261140858825497064526669953534035763915456400942543568896850683040433406893994592350204487689014617684363960231302551317186131535386258049333356819551457994424362783659749945133551400989166140613942317307990528165049630825228000471090174507015674277460572222665473645995334791888902592521978738655060925283332894148752878641532104931176895211880442620667928753635905281697878925405575442794905539343182147494409389432607115782235312866035085522158908228269819133437760929411097932654840387099195775600228967058252223470307559003231673747067970517357084418609372126291088522874065611739017272935153155906522278338271457135690000645837788738287177403511474806998454496735009764095828186264085936685238389378883342732600776151539245509852527420996106306581794317723815560303801192839062813118973960581246668884575313958436229728423019851878235396424808931710519200256474934781439940353321332651262421041841580642588076051767800139806026715647459646013824079618179234483346577050780520194484017982242667663364626169387589258277701593377991235773365450471546219226287045367538400917835316353188519351748286434915872427591445727346348477011345119435119588170389083401179324302682831012552102119269938642333250185462110567535038796583076504136476585595787592524703612370593732916014705011040642522994826394210930341773949320237756376257148719291479041970099175983707329452609111775055165956644367980554902093261636696428090032764257376339444623166849263921202038564615649106401402957364343092370427752948842948750936231156565587874572616193393700109941974187458967276556165340124363360714089827235431455816535491811896698456969350705834351240495618514749993033287592172289718073499406878559252546740029973778512073157768897020460840164211415280686534182261683276871797827441628472514203268832079193210966839452467667412360960501528293480268298312743621504809179064405163474351737977520164062765333377180409564427042656131789386127697987588995462874553671387978400211083728878028958140330197449220610917912170905278882979555480531820660406050385703729937925636208265332373038895408807685277729178790776429560340519905006740321389686631597793005283768445525258801149374057393012203997541780165112694917853600756266448349112030299031030387005804356573979693526340851688322503567398698077947440234417080930760887387090517064793575727520565727700462234216136486719074549461635097588331663072483283065470521104152652523049575035466774914977188668484898012256312295213335935420103171448306261280073367633136575334279332534641359727257915086252763309161494590653178528586248748153837138848981099063027039608193615734455117648019269211793342463765908478748127665390524470817485411615936403677476352719760440411178859580712772922463930752635125949490228938475668503344515674941625479587234289012855498901335263571177729505100253867405742839352908673777934540117213268369306511986480319268743616553770113560916257247900160072607227243109958866543251753809264235668930859271357293732382501433779356932123466524692684312306425309770413606297665844663781623065852124110116329118626565153631122747693150921596031993822810234145927577127873230309422373027049625260865262750799698380786333631165979861148121028562572702146213015610013514375507304492157382995285190973861294384864597107556004622793166283863505606127783253415485395893078833394452594916843053880494919481115449303347079667694356756161104090517841435716425380412434070140416103597665341808876033513415161017538631459075588563137042710676565495276485632690160772505856729731972978330236152162856174958002422287538569790478405461347035953224866557300599313889139063646430384581119035330369677940509406511757423083420266671384740432075643449999830115063861324071910957489598601431361801535111295035178298604019194343963846487967705831126070172637161910099512653850417976902355440887682401650623815748163664855279689712210183596102442632949107923874486629035319132179790104002352731752150411234795175518987017689412026117232592808430129333961801098232876131449631503144675770027243788792602068293373138296586657262953471187695249045569690394730564372638379911910165142049457519510496083281887800180958738512119629395056173373957966478318131981599804756383498628002393992080664639375686584586547998942592564677755661178307269364915975756897031302367248371316795000059619022567230520581185174357676770522626415314470012923617327606821731319725254084637690142194577484445827949115456403773202133250235254119151414211757364415312703964432623458358496335565489163045762095069207254025055262409975099091922925250159730375987325607105440745158442265891970639912304893925825784131932883975461956143239120134458241806496780895464006683879107634425233149303921824248629695690263549675127775628440938132042584268465900932840568866881225364056617656483731095890345465157895597628361526330197464336871448836087895072975944033368679379856142630736812880752919790870429606267829387120009454935486811772417627654877966382880448206111636669315316066581157755742056524923104951917074398622845055464870067424426494613453827831011691455396196787824840517149725726735313285266616394245345454489780595319219549142885382644999013404329844390386811562624698729377894645113048770736855964366732401772133901465809450794982702588470607483437548126006634640854823357081730072056771036077118478545832273772401425538273183784715820703786104074033401243453669420083353576614239870093575153930992746443803104310218515118957685827908963323457569604368244740018091802649361372479807295973746470030056244394142625552594665758204200763151279543550221862909354185968189400603360303715088388947306233987165683606247962587166107707501683484872151186121655372217026716200247818342299870281026444724654802034732729005066283556222621182065345230835848419951996003676309828225585137049879205993933551623981688768100107867326203846638573964405975445589717312509008051051487356347085646436054013953851738310940460659704630320599879659950669863769821843772239784322721598616002019859059792810872683507534598978613267870309449566818077104906009092015550025037818507971307898023417767770689394155090314114332366707855927985713612376646613841170831022323991645171992841444501462587282922788430278538665669606455887245905295358913093190863758232711055544036261194106918730445450401963835021232320111520535118304807550794962886987258286533375891152306786605515257340258130761983286001188307218271568422159430910149528306813676990726027466625251928039573749427682807586677771579245003660765371643086224838699528517203000075452362559311022311905618322839030563336681009372334967857277577762631700716026756134792610780533754254077419257358807489368578563327683066606984322131130333288624362308386283887948686766591177304293078989165759089937938039745012786774629860037698185136604690832216501067737565063012757535455024271480261433733709446651996113266094442907706350256614793937374490799529695005716839454696715929003706428512094663381293388926978716480966608726813360405602835531565254780369668060997052016676604046288289108744268895373333652380005587554311991428482547384641554324830534362631591964140708637211273320962384503294179999256046415411519403581786183128888378551692941531925834734277960310044216426678361576139709840667996849565408594030871907680589530202491104906630553534827566816203518396097342943969661456603526647508199591708196824638016249329624965251775701261163495292366027246159822730411360197963086358039842213965579835823888383403289304444001885588182591607898188051794907914215467578916699239288474166865191296988838642868739162829463511371862122722559438273698882375545040703731760720238465752578803002999478732871217683496799108564606567419041431136700769105197371223521249991906906603238341116747044829880649777828875207574695264867648764953089050788936372539593375663301342703943406781474106168816855547694968430096792223886326752253590541278032937971314109178344965198783973472063252666052524011004797708830827697703524220965768529859891925920857366121746376882421141991320872790059915085603107027390388628076313938308671445036800674901454524633710209095625038231725259672033795034062077686617391919955189304523919196400830465367259728173656790607692166654372150442202855607645847246933363265568378490630058764206376190246639590235735936868606945404164470416095376655083765132934084583711565916350291352613426293230717843478531346416756196667957305025244156602614076465219328084714851116492510483643589292639589623940947638005245853319383465632522431614463787227955278981824573736078730714969183259907274249722457307185427898670093529399562417711279031452364596457882919900010236751313737203521313949640343656762091660930399617962927128164709151483148754852490284375174756052628432594013421594274456942882957336294698961019455250252144071789710140509824491713837366067464024302338065319776743883837286542823111184289406827145794595245002011406559455099912272546782569284715077485940447763766699281686501765958199724839395113876439757697017268537176722272300450085425729269914378758772619472561222252735679505870911967803298715842768643039045454149596158885691893486667520863273512171702562623502648193517431477873729954141777970711461098055870174702747542887769395323162849806690729700825917897298954875454605643900042226993398965561906331316249281755264628120720010160413866423234453237995617171424336842935417950635642184458873572723209222817345878313728011968486320890435793491694911714871476439291809836165518322007262812638614045585852332103587012321025915503382700593276267132605349920437868853733854272697065937150096237948701832757324555792935758225471137741548002431154128144436500984521128985303213585139127778320778534121356733120417878020907723704859834110348395750673940428354358473289561815268514929133031418367984031957030791847752330380996274381956519823854132320747716212491051106777578148875251165162224270483790431548857221641784445000449517117957621426898898069267353835675571042884699126499493324922789787071274802420299969537948440078656189180474647380850713723493460433725474769915933218255902277385119114464588076631223659133980973711278387421788017870220014033387997397228396111407781211353888075698411568561193510353165158006412600308129302339658932905915212881349673922643228509794224332364301139343829839117713235801571842369132951695512442336740350723152118741014285400573326802477269305503440829633696244396345162380197842052386453066142518700271652480584751040910424900320157928906720153182172653205951233663903267271998981979172036236006907649391190627117270574665492787459505936357796604132234352863884629599216852554278703886449447250783166829713640111197363942181673788091237981095707759421504588753487897957987879967396377070828984363132797652040447330813363914605614837896835853598028196205374370359924992137663999520224359109361285409987989661735671400604179180745739747509825081756326731432067746167052957290431156079893647297662482174435804651578608079131226961067734276711684985610295655965906470040563198518695215996646772768373511882845615733215112055350273557734576041276586375112300769566043837333188360360145645935371739380508133830575756924893284043596859950333149308644752353233427156462140979983959795088554906030460473984516626822425431176948025453235913757743110831964874300631214901077069720371324236833369246018993135863572122651843359214161179824274632353750330966986055084682037703253255012051342809520996630003501065962751367917178443608669675298489228789235942934811950426714540819727728094624243615386164838825831163803974751311463293205123048043028000766031035614248918900816521150858369445702249673708062660324781492595832684573636347564084669265170696514698185750560052662650542638944745102288608800635197885259204214460410610571502930101703102992519725218185756268433800641311154038681982765314055348054023981838963869172846979146285074268873531235923413837772330302174783003665611868549622598761131986009363549949674016186735395638860582577891007061236854979419221770124857719174958890090095882074579113164460367612336917764962740393490630105167948157113772175919369395729143920114007917065212919573699651540808358519818322105120091266745859099565970139770318708850172210377901109385156779225939801882433227807548769276783165451074143125446617859096238247230511261381943770805334717338906434121467412188268542414573315485401125795644902634738874952720839230577393192894467953772939719802160272965816897179313862732234545131572586432233212881852751377767864863375262164932092783788967627737166851562618970607710009311104823182528790752993731206608193697538621134042790439704340008926371065352270451767562633806424915747506958043487117409929537319637721304871970130856796613643223943112040921042395646101174122493153067747751428006838503856463960077457292027603095262921715164005321285504911845648376987753667841445672214422808154756069104026096234900328435325206397027531231417293985270653025383414445258187601509697839957551319820787629098872832529135685645840960426875631429506389504816982740866178058149737245569676252998863382894145868308438154196077685457817330150196521987512654254435523891257575884167227611441344902731013852641634135341132627004949323431687443556836108735170864031396940573067494502801601603164669150747149383157636375559336382292800929802201272604271374499981017211351709439655128531240233214855721814485845867169859028190196264640373820100987226126236091423240271220393272918083738821871364002255565117488771517496799579269153854072639259946188463500746614090370396828415015414456792772410829621628322017176425863690302483288268165515698970602768317958624700356269708499391324532152823876083469532286939005813419290209929736582392401984199406781973317161500955315123781178646760072638166280992025248474457621398797837977420451725868228802657351660950565715416411297402691557083596574457470251181020902776852056718592202865444018536571152168473535869650628588025054854786176124010091120393233371071921704035134886978939879285380374391497481990673456711408420825191714604710359076961205974459972666172156880053887149525066455763352726911513464251471198079232165458091245558984367887563169799684298456200815891172365354994233407858566692836398824583716302183433169121291373740122313200201455863246904075094124074119858921490697505810083546868785674831542794839278534613528292690558464912764380609892501033067012849890719825119670837235799102707123915649670369868368123977539751249854397509299170175295038590739884125605886235087232191588981416465849858213267744589955291020600340474401188486554216185005227960679704959465254099653301184385937618651743008656441234355854485989713038263730837563583166204277913381326828463110397705752849114017866063041994454233880085808085768596017835502269579796337317446726503315043571549365922507773524613764839323881800894141284979443733543146789472202449223545133343064162864961294689672277470682936210271250704057017373371441417664038479501706100130504997966583457465543370656334887297711781887457269949447098718336177531504477384559205899184939236445781070461584524798356756181518204480551387747554894292120837571779805713384237483853607079309488362872547048754977970467038586258816867729246580004850328181348888465760898963222474373128753334157718440585711626368216514071734214316918792635145868431402461830213285171881250053906798786605476901451668802766285584769180420193819664064083986949450320923798250618731467255360151072754820964272412908094696873449083754591822944699981146311864768368139967383077647690384827990844830428726920535945190574906735754101969452321132833466958308588936628586836628271884744438974683427201715475876707787946629308337064427500132097736495938168031790120197243544502234448596469137336160258807995487656888243335977903493271941643611330548366374527652309976802308939503259355457721911126781735187227794423472006700588144643420241860742901955955471704748940145029953407105042574768703905347352338270736684443800100090241820200041174467825209961469475166756852879533514960804367674020143417633916908897754089625357904578632180273418226365194714476607329533430784584559628606617462214844286021835532368465899523749492717193562225201136837819653679760611032721240809753673651270111746724264766248921375169293078086376456524730533630061482045791470065583336307427855848649876942497495671652073656525210763692633043684121330953738451805723868428729661771095952980201944972979425741635099802397539056384129789298345858738916073021663946285348543027567038498576473832864920716459067740836104299935288443315409768277558338068214038929110670638445117665130477970588737010225189241213538278540099096331527117508065491131499472310820151458170292481085488299738119970909075732169664686980819431592557193129273306883242500393784259123739377770680701464387913635961365868993794832684696910229003919626613410146876721894193986670089872468942808482032259814857404271451161039907742395655465922069914778741572810870448893134066572000687873434441284708603575717941192431723320650948764732561150856220930018262957529659066466359113495631392762020246588805048564017654480513198470543287146694733590213320979054593115943650555139719708738696257599512653201326687184235418581856651352092779531774874689215380715617631276368554097069556674583112071744458145044064306516414028938698862869024931782651193820283618783947667890424071436581746331019285686801652831958891571734082100977479493083042335347676003940114326310350857937928743404376263693203808810681811077414245242380324735332435207017041033211313661211841295625271661770294726103647450706940500637751187845741155709964450299999554293753366099382881496179186742583450034095576393554085100725260924215547778419230155211586258847704262980544443415943436710315510468385746246342206461754704782914063932499552393712035505845605785840312543662503006130262381575224549452375477757681284631053910344951823788296558352102091494396841565741620398795780451233123114459434870189016548671598741042389265040431577939207591842604328151054828435191270193616207584156648000082164486071076340422859182902991754575970243311066312904206767660657776675041576789720753526398761304318317896456829720951596364514416767291316288618861098053700995752118286826851242794512640891232334958429627443787354837991046984581383845466235883436653131375204923446562784880758522652209493298617696265559246759377615127186207031504981366376491752359614611998470441392863624756351854194855892195036378194919973605680568380436224484631215184652207557114989427422003484055322577125358982354752502374747295840044423189921765401921040324542022949756829556839248133105457884489907213577778096246127475345956833217177707071507300698559022181005787104869150551711543518947496974687570298487583625358083198148161497039460861747244703892613812286777065538491568813664711706942408236876610944908475974995492843946652340279295430918827581739662992679983327484866222960146707745519033412490446650604366901931090444653941171774141326953510704638970039426556155631143809945992425784864335197455344445450207065523428673171544982011798837240311672111048595804367877086023813025597963467429458053839671333377673331757574894986427426443515167101725083007241804361015832110320688519863556175396155205641254933426177942757243678802647942106261869874223994556705884801652804293174413335910317430687979988613616163306866497689358277935064001957673583365381859497945307174382699698864571167614576160028167411051476830619448329524474408530273948990467358934151285631934540243330399190443823024097479028447960162032442140050132613037259992888564504077874480619020750232730481078928188672999819697742445655401807248696336764225599630548096718415849208937363730720595881237893516980535771544682573554853745580776326172163317387866882079742872639858487766383520479711459044459374712155048113619358936486417019898660822178466020482202401154617251019734949855986150674076155085760496751738440509949900596392730670373806592934267750310416122261750442806138063882736589071597099947354092106806357289728997836387137700933368157360376710311892549588945582664246768284219153520934164890932698921243385320242314438693880658531271453782286112215279705161889642826404694385482298855999274792343967644411423713041823160029399778291138930000714805586000716234909024558696763560109401248536314142637918902726489542512801089126689710598931093123891866179150095304115629072826008271711463950764819968299213940931527065310862426563274840095020510493572965988884674080438228455409713122885795179443479916178315309975543462139302350838133682207450669986807470884442301532169852075364858239869299251673629421281678147844113981141624764464158738693606460051217517872185328697778019847824815542433859342318714948352289123889186318725037538689268246925970280366824444306488257721707888052721077106359243473425091879515545357816530431775362709763588460443728440024769541895556838429938840431493411068587337195917002543700240408036121776850550226202437822583862363524067575482825512310155962159544596175481522150093971902390310280576760364877991509113870786842088170478557221196043807194351088550657120917701058273671452165475688063748455146915173700105205190373978649061989032717826849805712840544872837319922217194701933986381258995410696427070690670245177655302582169562705943903728108465588795631547626524252389656717102159206685243681463414212874442213829680787778734818638154600294920088274305307367376589750180438214502959055804173458209639099205389904685066796049298026589305424722051772136925884578087895550679057225634298174529753774845826443524157661151520351655547412805328657101581027660074134713909956200220047569649918620770404028374049682158731284431027245041044960622412468181403698365918983506655268614361011812527984075292023154607372374911931266084834867045088415493555341969417335863529027316179148977601393341195718029101906288140363647625663960431329469827815682023533937135241173161294661706146759925956190274077215871431744199966228391151128860506127756485242226803427956767394935264351617177866531638220826954141453514669464856031335200622074325774468450716965920274461514970325703929889681344059615547347227974559688092541593922283007576855110384884247585437348903624836976546325316963716448611568334369558686201060364585081480070234202876068995567401523715772880113688358065581318250279754230120273528301144127481091855729644393673449106892101931318068301349226685891834328055947322560630371310121123986648130229028924427078763796392359830916429752519260462075420743043052100990656236174222728168070027739525933096500185042648692669744788762878154728999234887624343561966401121793337312633054615848824797471997545501739446014969933530168144351451642999216303160405761297534317951267864348006275017347388473795751760587127221899453651241318386378339492886854778487604491016770741276479318291054123175054532389365317257643170243104267105308471320759926685232612651532104678834062001789086220218519776508200965171742744210127234945834467930113581196570974285925488799574949539919062744622903919827027917859866338723962064945719414494645931779815852848551077686070726282163419038575892951772533116641184813056801890592746181853767589990182848615592224309119238365865444879448894689747487928915218808337026179354013246185232701611158559634964078812489319756160730723064568086664385086385773744515994884910048141263570840109113424295429078011125303208707208492412037922974856099358789982474753956997089259318088630626986101098122809600634138334220009233838554313840183619343123973141691067441551638453764220169518740987737531179627218991116585823706571358987139710765505191815309861800516933546449831970847101335729634761070689029635958122685101959627255848841604111770660686792254222095507211645416642175385391973564973403173037994000186833181063905831291599596368415247674822626743652809097929237142323471988033401650457112168794261334566329591799760527756716949356298458105753502561192360405185147069309062878566941253475049074630932752218875104134292139464856328030282480919814832276200812384741392806083984516400316804318870688701558198190393595696677739226376508026652986537222054838064229990531624209186744941354275106469225051251542350650386001355039313675739436630750294077314608138163147630115585235901503492882656073400229048190951833968916165065742293413766046905012811958144971155814421226107868284336631103714402759249117846813348781432436248106240923619279717819708005150427110744147332077836031293372667780622030002389858350569978204251141005382229607952713786432358579852718323694203910804927521076813407945123594928622110536752158147595905454550304369518885883155968356959759013233687102584939335534607576564780826968206201734855248249876251284015429705642248138195219590865126988459944950943884935987154059908493831303266315614407950296620411067438262193512548378208626986337656909705550046839302219535493302461036290993143742841992347694214576260494378756817763908242417367038274896953502505175637752158402108963427515831088246328360862137217317242388711244161584517248030766847146198858239103632798584894995833434949340445690606032826216219770821205754135472884310970450028556515863866860297634688509711553301131349780082656872430011316189001167133766626197501374828022959829332974725748862701224625359570916530602458637838664739771625009758520037214129761830421782183232929355314123919820487430529769451599891409117445642602408298048493422445035207034570289339871722118572656194185650260503372962301438330512613869519322425806499432287957270042421984859081319849367549591115500369167749138838891234570618589610889178703826745338642837399826962472016784589268495536135419111330061238182934191390371445254027392384650481795480699056695551595107562062426516444732190872231681378312495593643691865068005164751764693719195048107563814300843063094268009028834894010155585371058613184912375428125823956253758802318423997393515671760849529339680371893268049975548725715249744169554702767506777567875508389373994952822146148065110213403053189108863030353563853055113129776282172073866046180058491172249457181974407199006450599211932255746786959103106150501913983841654802128415694536510481489056535990046421294850443006344567424776494493309010184773553604261355295604693815869299617429315184466139450429811845206570894752621504910531230613087977129247380985003202853068309782271102766797549622409538826778949008389737353507560136048493684027216133045467053691277505314515226954193833186321047770515457486506541390384925008898226480333859089402985378655409174311749735900972160426493652248899255349760340212968179807376353458398504444531508363934495060056277901161138170595049825431020684425647857105398903532524704341190551203047691538540321390835479920424717950790458826032875082392108798024282851612920523082641747234786679308979448439096246199917075022309062581954226032144477111838343839136599509511608292483769501983946481538041794840294273903304046940301394680061984742752374716921656478501562146198571807581213573352418025961104824316854293935565850183104339022136608037092896273678382832004367879128325249694207074411902561624426682048661134862827997065666851816845867085839564526353353714761906421477539478670374532962130987460786842424566612557654154312983965528506201937903036328552295374730981997089472676807581804749642761590419007440487657437546204818598561464756165542458127741175408331443526869958681720002618460041877211103558529036683521524485182911770690303111350438324613506421790230251874087325994488989506483771446395306360069782832057692548675314317148700237474790689726455785910953848738333704340926509493321556459603335446719720447646968510739641690382803021938191228181043533772439935356104153254030140247327420783891727127341128395522728013103270588867462173036418372992560284875375293391977439469331828235745317081342630030979677109618437188370485158291341373980339724812919978192916567726426604887099946522008972391699458448754128296715111287101915780024664074190558184499773150016814366056989082186694534950617215122962439886217476247325017931268613400557315404033589400799924504456255484319664456930442695319781545294009093872730620917819343472949079740426710139389061267669474460155906645185765366190722619516860708836795309915520481116815000195826852957198352923600245635910223011841770691660366705548026642844660267374618348591683098792403191714083362040296949313382117278281785093545464095683127598311449055029610351827131549834319305727535380012583392890266442917536299253224196922442091758302768973774301246453797012368973044381196555686439145788352964428967768598062367640570776279103258883769611042837055039871083003109288369488581886813297918646128972436178647355156522814336501656790912635625038741843384737697626732080978384030131188306343716976177631891476070019984259425033256521185104873293739246350768489959246670853213796954056298302702910479821658547713440738990373641737860788948185387704126242842892990259854487626770688438424096514608776282432112566205221394767229697926952422645962227352461755515714612657814068916335269723775043256758183137846609130388388640887674452435331931284560267338587084294784351691457744537763837939946194573997878829910827577843378575012563727239837031338701621233653150468651590353519821222837185808642970699699461657435763100554797262616432570440628694193484212724781586179148721708675841713019466715919482533692122053344086064646547448070188182304620362136525438202935525295180816492086393414993121141507561357637392370412207974791951074261673222862326899577806313191103126916646212608378079948631668576814104775414935460751884026278253712999242780297093569347848745042114825883737900278221086564458060081085006901803792892463664014637992334748491918223208905616151148975809721962976907178989954478387084353350134581815014307295858362395474176250252543141687314492558827544720236911115457406774977563306783833701619001829969813511537395527072233418290793203139578787861245379869261712387611794743963724067383855570039641316676519001715492726721148477244124047708121480522883076403948099772621382177835652179040498276946995254802396911411955730943828965377401706211689039892395285094485551166057629102075051457819447559187684301544812810462904175004256130893157035275280015478229907363102815309101366656835643697008759213629600647364383701427259958999278233309235578789759001138961523152928601272589915537524326413950939187078340393184370080048228783571521059455224804966746341276051532707026485441912277286833075110101655642241150103178908180640332297123028467683387450653896804806135094383291765424153575609918064121642928590129353402130266639709865119419926582971326642637588175477969899217081129237012468749875012780553663485584880754469106567263735920788104482039205406615931089948731103314847224499557487449868503650231804075877169195104089785018894973943481559830630324896488558301134465564819594436175108308833460711816968513014297133511135498854191386311466908359329721707624689912638946420182051540226617221301981225484015105743477069293166547263562710504690063241369579238890975085404745770582326276690778206413764377703267692838364959949683534871518549820057330464175815667016766662986408249293149832043279103669481726394970348884805893154002992641950628725558241406896377457663167619314308034255863961817675824532847672427423303150781054154372050163933728517984549939465289708241583947108535348210926379858690703406236726653676028125361165141160296765694436306262643092747717438025669059585150302734453337826733421591740562945154153161128839623192910727766043719800123801362317592068243369325770830897178031346030591495445447278823331499555925657848495996127302971180694485469958435573881165909640219636863182035477615802119468159095968941801872850019387851325952608925930821292468037270248526478402574115568405440087511165712047807260654969861948370562071797535683334524021196682622775053499593964231312607465569480307305380834321153505706104532849713828122520988359831789581464308962800976011825936459476664658359150823892733955377910983901940765748767237606338798950965825578086695463422274547461287429148047448214899824568932539288067787519303176397884147494651918497951779291494422455012926748167852698942407809117854549034964295349785170672845547268420470974593324670558520033402014541017537567989979393248964603706335574754567766112163057885349874362144039952180694820136153821097671812181075489710956484247140789673147860773114366396588580341577255722470261216810957951005742002184947088518344795166091571488996822065368406263409780398355734665079819185790620262544644890727351274684715733715871312144843306872538039871588824405889817813449345057420055599192443358511758063072183330093671779590508208778487446616535199004595070146447039105198534020404391756078259345028710424074450533826327485141007349525485354444291372711839988816593750103430942989373652256500696753751671224661256807358524254344620332974580314880818526984822265838524113997554413192088670485344044994366512032984952535562637290853591534956420119448803046364007351061978709361178183983572433850512302110832339430982634871514550341076481185118414461892938757790904837716401988594943089230889875545609542207847922787943571053217544145730866016752990597220300705594181307612856785262256950990278650795695364217407518027370781307358753280444379952391869855553887476983897300171881243073512072071389310788354911086211742221884225932975799901034759881569455360705243666497727991065013120883439368981764142212057446731443889625018893001646027155586625578661078960795567460141153009828844329590671109661072201647577048743984397775418725878979314210599488544711193333931121581698177303708278660495179262780555692430681827112297764341502446320840329755502824122693802512229346286849687931956246201458024393320847317286366271692222139692643624092815367762116817151187184407424152967865666083082871342843831218613212386392553202374266670034688033669149339915034883867548186265246540332084321443959250950084287385468896674002561924049339477862944457866504202623236076131002652597681272545818363890577073954054264821559630710518118970223338861626437568372084992033498936438188983189040086180086540921259989460139580863848009814170318575598417531981978834561902852661585266906653461478799731438469662503187378359572747913976958328982047284479803704929201177771381609705956241792283649045901347001980488767764618151272212150568956846931467294793453360027328345008048255447239641250569434216512847500094932929039650059018214780402221085546723881783176685578418374818712461033321804162865374280813391590039810825066655751629595969188433073880971004723452396357015447493277693311232862606915323712482929898824807844531871258734061331257712499116082948388806089670124210005438327418888752290320013221297560175555099437341671026257464424462071387024605046280978830443477826293811166164689270446381495258465243062939581250821466066700453354019486426747331518275096706330649591508902438668792860766186264004438868815682567217214623642364003704370472397406170329729099974812334716057255592551509956597261776870673383597321895546527314428433851658073334271756156154751257017360861688601487634034068425560634247745585142811836290904828543707609787597265855731346700499481070286593289143709584033700280761834672391094223027109762292759451994321609939546580540705783847105936317801534597831211082073235583921266105673616660475589448333459786021670412364793189116402992884060435512544876188565809645785107143495820154875640170977885260834481266116657344538821115438572498229626855319426013278535671461171895267648345212270455833562004085785670108426709601093604939189659271459858735660758482478213190958413652740981709835571873439229911073634889349996279493836318297081690085073337701505578220523006635674362481193195704925098580738774043968233222213104964994599323629498272855231273516260878373868324934130138028785535487523424375502177298186504332536381524505350047436838698618273567699887145684353879343982165818842556549457905025273564313171192081326789297283571528528723623828220505868030092781606474268926882662547523995545153003584550931836480837584813133740064541220492647036486400481134052402234710596274796950181882669140492695144838426491181884133482425556716278420961656545988075694812601414797528625099730519270067788538451957892121466439044236363297588836005559061350374482700899524101480930052710841750287318280834974525971643601533610070014680319694282713852663027204955087466215767229003676774228690110683108524621411721580412304428796785286304975585179782428993383719178237549619122984391213194087645494361598085836867335467414299001292200590994290875547816892932130948094681746798300194761155847936668619820174836960626343648326879009708303111298215025342484198432964513356266799763349143882672440284789420220644486859656437575361202655823379861866127046878153035490444823787030722446902353939003102873925406364781185784264505941344088826366124959155096361803743200777388810907911543586654210815583066302060429365720325996140527232280575083548230915593316344461866324680910704169178745442693131273985269107172098712789308796791686775605427091051488590651349422852679034234620496422465353311324965804026566440247891011729926762635338034017895195280496027854035002219042225576877472614324962878005487593328717122267322757455779976927560583969318219102729186372410594867873030084483783931253350207300468919582107376084349647439237048923347174434670364067421997732715827825994455007628895511457541754317998446899007188959200940201603505019170846002544526227819701089889124076820041896004948633359563369249375029692035868409869900195973655951473800539756365508181201966622665212255212822322019945352931609733791724039365205506950991561449827020669779836507733595901365480016789418440028470826020322593022713222777429447197193010108597547277671938294677703326543865875516926415791605443035774529855016531504101841649213388468550484425948982626609105246747223477274434591203894498336226153356442322248867391293947518078453279512247335360547107887764332905146570204319123825630194634349986554578402885799967653103481488034916817110061035605553376452760493371228128209647790660638151961199986415176366941974728248513357771212082596594184054602982579448017160874035213693447355195194646056772599811762824942004115136129849515479424596139492972958585192049988720413466816325597880230253457712513353086361934005189942242984270418413934085057011187479017797470587606128091333002620718355900727621604825882987959180262582314737660989273576632223820398070173271716051350553652529707044609525863138461655699183089428109971681308984556574720209287424414214786532525392283407901979562715386457796595493552844518979752615841372859195815999625313596533958176946139741162392774338985443642282759747160457180266085558748016292813019123740356467770134845510067335145348233893686542115027438300979918141051237279919345316807563137170277825859806034483618397644366460742312593590837658604485782090420264803027140711838516879823990587504033618471401937328545031540605657873725098129955008809195042918879778871064119336306089183849548551949613238219549010808625089609757643061074593448540745661053275350638609400798185634624151798621994708005336388364914198256556945993594000443521245769944839368879083526754979771824025201096450236118837880287150372650211126688613389561852678142829586848345610165334216428711499926071528427924785479194969598900189080518612830456683541417597808009332281716640745884346095076907951805517046743761822811310942553239199739409111777548397689928499791674402646044419334178782508037827693232086794228689878282409778372323117252983987527186958716871886985566894711151724814329958024022129045150793829692679066456000648393151068508572157943319786164000928594209480161311194761296702790219165471569828182906468516148177348481192199853359153353720219585410534400901790390377792742255033842628640873700903502269267201131271459683965510387783225068440606122087200118282877258745787900340418008575093190019809567535374658998572625050343862892555546800513755711389272160162065455082221170328034302353852957649484460299286340640750877410385189463402487141911934980458638398895869009386518507474563157134660742037238409270610441753894566420021796294014399986782627884199861432491935417735130370991834981121203164602490140180127675577758583275512873410144389110519284422056932243692647873613950451543729853310341714020797092206800585236464227916633956750459673625204772970761168959972057547036244291302921949843943135384746985829057727539324765114495469343100011827402719712069004229200016440384396123517031742881753278249387054932224865893918470250937880993487215309860873774760740112776111253518565039552890353080266025160015339689360988176829342257503140700166986361048605848428221443532816941040810940488913335133826844560598279841411488218372396680562134172008420167387685392801406228650075886406190310512819667586670543683595007262764723151448896161365202458136896819127406549430900030245086534438686641862926498490939013339660535413740343256268399375850141832837817096918545548217911062930514655483481047547062599829124825129771300280305023709642404443382055090606991690536117018805228288768418670133126462081789622753744753462559265480625910183674073859790871615375350054367801769311249477487237329934788737158687093202636398671310396486074991915391644388645480955520151872810563849381253454595194477887573487718648371551181370349402686964860747060282666826329498063343867865094046405476178746074353795709798853716518304514031829461040877896895409578864065971903065098681890429084048393246680572616475190186625577132955344732871808684807786830395689058547780544386136703220715677099808122943332292242088306734091346374418725212907853046736730745910246101386819773310440106004046588943067258199394938499080941533938804544519462651341954504582147829278812791362903196459798720216770390164266999627531485587111742456661753169633196735609640667614924510852108088897930113141977823958404728556617432454136505045247856329554253860718082972215725202928970807774549026221278756559386386475814936362302042291256437264441766671902826179828786601240315031032118524312201132660558402280201636625895916774766030869108331014687687769266127348964031457272707941865079134907188104446815061879045041685024584505324565789468441021523636353333429472765507679972224692509892476824578736446533677997998119340551116226984612845383262504058458806418512542815625222180231981347248639380122251091930541229122777593539747697522184343315958761896391275431898946232088541399920770643594081072472897793041728751129537670768746726752435872746376013753628928465335645085895896283867694588013876511730193094910283605685052565433070517967241197272340977772617706684788603710575282035600912552253927404947370716486216919198974588289076546534178973612649553324126077958454027801652338734098206159457169090616298395981793208355355257453821247174423990640775426285577604996419562218785031034594589561712328629976068207672099764503225090134757837177623939024971999274033425052581967716422137392679055819448601288113580278202705821821545939815951151149197715710607711151558378207095093044905850762461238890208932574371348617855584462626610266274099598479166911128886397096913571033991111628429636114340113678830034807453300498505944188337771917327441787224203613765720755774573157625696499333658782129850309236562343529131046231561055612024029974908631706934943752900675108009298574964270887147743383638066784460088533296945799807515927719966154264635763778938170876937156851610247376389314602647737238879732571413906116945593306514407075045981192155363999815855043229286564381651782765630337498833213227452631591348989542439606145353724268685211619298408878228222865786633277033278134078114406998190099666060806210925183963691879135930613611767465584208119024031829910451394229448618311702472354543711571530315841106944749604051326940610310378865128122583012220868475583817139412338800062369381164345030530407492398482851888208596008788115807095494335278143795254605067972787728700600277611100630293070804242426108620413515447584718241180490173257259581285924833176485989908206715846533931426457305678366959951021657879255423792544965193733595539926825869945055439775967113550069169935155656876796524780166230747885267803731831808537602057817792201631788823650634246033723180937838250677958056361263839055612578764608002655912191010329750163162955590416540246242132195125524024514014860509225524589005888258116457124625473640948057369908866980751364254371682309468626652586975184790581491681077698445715148200199150334191446298584976906410384909212044157775508900444276893062791021313363616768218918134194042666416415358486646142040734305117314101020256672519594668323815009635608405872070735646104498471191204761196979086222191037528120306572736175669892946532090246459717480127475195320756239973055573475196694518907168184912189967138852616256758677264547693060595201505823193968653609290292316558296612608355285406132303850847521199408701511718790639096959627718120341842183072234276894199050874968619269169354507288129147107113801583411910813853438394510466849781432123740387679914313916647492283837602717091634189223601991902666488623714158057463537747658535444505095981268613144826782534007733735667357823253394068922361195683209373651365392469675214849654229900015941360327265610777314496138712142071267358029856684842090479508626838475253060305908218928660278297321441283120835690001517736070299472332090647394439890668674451153589256160670431653200732614946638890173334578084200477832406318434737402881348671239010782004252660621630685316204543158291329772991752331340784921655805968979302729863630932231655143161900484018557549280852235290686207183772131358197014040193719504138958965270884106178503495457629705711138870313196562549494357166068455290405013511636825350073043564840911918501462900007543436306733890234649134158232546050561469862232773942296241763665693855602115750271520403061585249549158434319012776237376092239470339889255094571724183429366964549470230476577437976262603908056211632524304866017599191355396510562036291523590173247693110872583715782502260089232290738537626397039778533849934502346829165622370024994527457626926965814161602084449464343690583191330547566326542099020981685245671661185211792836867172762531924153053748297045951282842730337478187927763132094782901528491439940545756086503914574508195199017195850277410673742210260536065579755396872931163486350514830480260489645788873763410928843742263508021112627699276728218089638767492693714356613157652907048088093403774572191516017719822556983782858313575229381059043232074147033442004059131964376651119171222252467886839525543004919664343561927057398873194375922961809327098764408349977192918433152385682773828854801955252019799524388097049344352973473723861720584898603552096061661610659835867353003676299834520045402350543173044252868797130639875875655303726752775936518091727952206834817200272448763677911470921286771677311799885217743492049727502517236429505410579850073423992517013478612852899922356104241264871027480915592501076374461205081542026264775937197835290500754772723753588724191222802806413966550861018871423711978278398766828680693118604062519567020615158257065905551063327624971905775572031579199488304782648085233653497257661810348079659628826551950678616362133245413318376730452954117441397876664591153781749326442633160913176711876078812515703084739111844564300801390013674197555113804976767202419916692264109093158853518729615038915371545699550011489439628465887196493447747583397930913198814832976409105373110266323563316063884020009100096156590132802186290475165128833916592228556973001633464350488308502600882948446679139722806528461264391808020354564824770786345585654984370246447505345499890474442315873848882629575433924230906401604611713049566443516776072359405874627063788065920248579293229159776392658774179308102896796555470394561738667938677753034308139794305883123739084668907965880739516866468138423720921126462942408790303354746474708252168125214907594383092927880870555355011997338618560697729492533965286225447757560998482139955554425159037061514673077802498811417957856171437009653538321814916071639671351498555692959319283474020172636149009334090182762417186859899253387466749286465231377303252886128280871170444546915760124016083172607386663664287199130180674764451339761899506432167226234851090441646668027262984218842828066861041370177106289128616071248618852834877694936309811515887193568368239285210252953796992310757550625655234175647503464239228957761568681288313888757897432218744439148496998937498733401559919209750425708948502336711931974354538032819280608800956174870689765208702345501453544669046104100828986610651000964213592582023738398348067256525861172350077861098379486685434085394981558098132264307100837859801863827762925626577822936226801850533927383815035586352862748856116380325277023225787350603406217527581585144163210247851982654594141022591870715543765229373874708524759954851951204285286415927742435728725000213882570534474950807723147726643172119736046665700254868028616184166382223606472086706921881262728554891641543880301684158216846269566077661687350208192536185002503723857605150105314036018368942262118033416840182674456717968286990097431802578417039714223232158943904088136954615135484085461976126078562285720745438197654539654385684001497863537941872145125403512210851825733439610874468659737676412154213558956966395932719574733768014897204327993281906261670200804526046644502123140674363297403004863560295145329676740617023822303724869705264344968498786520556610570840419083708241936268544374729632161567277775266056941584900045227296782838301099928097323417623716164617364928256809072003153346736619982117835066015466035224109892816788862981679822370019834056041114824562393645849258584746570978202898698715029101537573595759116582703619267877753408233069515038275271423382188947779286496716828607419715283525272588901103425281384304537406653947234998122051679730265795970967516225998037880510263651963762079851640466136511861143276943776817155526513341295422078202245940020627734203740572283762793523747511770116158945803201215056728295080965296003305562473286347816533185889721578389618429394280945441923880810640629556290194250443272914894936913578826991401427216434453077131709020375993878399246140862618664950376222665801067590870788453607708476659760847686512298458017298282239674543483595506718870038925518855060686111965820645933044545803894102339031869419493111691629679156558059286849575592743397569361957262881465989106035072798504124661949395830483625920437621062055850724275885642986054247958610699988353726087616137369160647111493388656910460725610129981561113300015509214100430295479481536793204085421999310725036221427660985011765519458794986605430973802882218495902564021664785335058561248247955203437420794240184877894554458824253771550671482342450075861069322081398233897383583195855722169971789473367613323703720063719102523918389218164804156029995213194383766619464648290620882991637432699194319054055019136080484813476619131460909897833686467921650297211801645137537818748006798864029636292168191944311115620463084541927036575388518938472195030413240378501000588814399952612990601056740833174383716569867579697010659498910107383457786567918369069707529637047972465909630414832910419949783513687377269144985485675272422975146331536745789823012796612729891350970555682136559473462248871992235155667810678811372543589393440320602181944138366737861716457931687450329792371014530328255978828935401395914268975503428735846037610533822790367379649062576516826689452503007530756128816337392712245448206018942591685328787363489930623378995914886222986856423601755445716411052713613787446225849576484165431606128790807551276668150080764367415593968636314745857521501422323189899121369115871900321646015377113895991421867908511130295169067265217655233523914382190825597669478185846717249259312240283435517894200219351997470878224946554583238178176110754104493979895218953892384495703598258014613877066083368731143294262524663655932784287493381764043804778649375019052719546421184846134468396186402702740247474545133961600834970131932005044688662152898573940975048314859436292191597456933629887134685913057029924540257940210966385631784618082545350206674318914572501875741274421731038970475652917091403218654200812414976146942985950798447614203296294696752764494565239941532299795947248137906680887247163373409467389264159812942973894466162068918898569712060829638422025011324442623211722338745229279185314336896115939447996922397554333369380005736477629885546664080246537342613574125518591314559501070786460429229305375827314958038408290199984627688798502012714466906423678663924268815413716578881529493361000865541755632511678899223386204538385675505121868497287762616496679608028204009403983731796921045561541410336052751583130437241592185229326891890448221079948703485128485368229236407857544875933518554337884024275022105756624782189443342798656472014771331251110862758422480431810119050638757879401409643670185534567683780812780804766988535358966163543157210883551303814784327145046664316782216907606922082932840088873182387793863432201396328244555455672525043857882344352942507810611581278857331092685761858901890052805353428704082768992706193535381017009117829527180322483267893989657966808321088089814562904396112474164684234819933091232614557413405245933097770130848995580198323374620137592627641860871525062459650353075809420933659788334088487885862578417281305699639810782514324622866980947628372170046202176996527874760170184128149165776626989894407160516707687986744505755814030543465028899946112731095405783961403847623176556435747803970505003887370527237527733733854998692926432286013647229226262103051674273786267306829135654941801896839735156605579368517981498436128553543494582943474188319513606960908550217373124263651834517186995455016473083833654272930291932454715433739892082872160055568995768578846960477790094767417213154649834629575923823911865575986717621575676318365552104696609478041748774515363408871006068333500098533950552017277446297481898790460025982099375719431938384026565731225747495329857657648035403829862907329862148518557230478709045548821466015842938320163466414007307664196733840288107884878156100862067137162563386012388038624326177729804323900078099026401351472964633042008469503695316871381725210275856558366968169884277284922220379393832371242486740256334866943304646032350908945776652620605402635846865904698390767195565879203920663467494696584246116574457369758977842397617332983678829503240292778454379978177535156282096740655177311001215800784163563164810739974278610365573368064400616637472104563694945232613803034312981405799476347467281080007548651695877671825095828485798063062513855784074072540642964767297435965543167770043936358221275995790154690349708855012854119882170566966908315548569714326106080486360478653044653272449113720576596430399534088017344447388932250265272427895134368356358582227297919752990030656603698784147943137457057198887436189605037860033208736696538338433800727050955488071390373801137632208687774698709657275202916918510478143424034809995822616645383653317848025198143434395692410988335314809017025524771862151630120610147453125439100316463238189462776099250879292511848412796511351444328019899991119105319819236908014083810745925743752788684697426865902036538866695176805914744975876041434839819781318443990220705858075456492653636932993335799170101070201323822553717730297972235825683335060898373020863348353740738127486350316982968854240249615142182537836726719765744392865599591426687038080496946753908514753399009726874470811106264478954347388401249829008944489688243886215273731730422100903039301350955121134463209526221746149289890592694715707787623138661487188148778903955567149479868182154793098933366822141384149953145248904952152567381902638731181868490590882760809026204799296858796405652914138783968245593868131849299276184112231481836096350172200347505284922105791460307910181581375469185580255933154561468793108068385969256798096141026291615847029160267170451069107321140804489675313155093047496987647528052642944560876473905191054552302003179699402269296714458953729544734718536983660024542593387641518047058569204622878401244533291779333717481387049417837115698761427872162653328901296192162602453337909752536364226700450832868839181060211880398759950043701512954330200530379402621686309147675319345958357377454280842273062818046244183211260116682369880048101012694073732540194214314931470459912158571974476571703885338515661516077082854234148015788359762267178285056173669182159579370150991526277800519310172157434445671129293345216040550555354600429734278186517187950905958339880585196977990549112226385691588194186034271338131793929282102661640140404382576453197420533788975814852569902664725050888656771267075230723917198101234326846217814145837134531442543472278429842836400745586867454596675529325760480776116402581122062829556218500893456197153163595452176150818630728198952815497035312319123382188181515495614257191152005152943528339872239817994374806627045399302013828358874324537387115440335511960189737905709409832909514267586415162736599517497841783324910216279026744656819314366138673924892813669882030790660806400338825562870106402055034742167485711029318131718206382966692565564236579386311453331484605405362118634855525421483893853164801381826086038224198719828623390014790427902522506002772849307304990680076926601956639197527910812944641057905247249973248018396175048939741564018896747638758571193287060733397387073689523691928929585404818587691654956982278015925718511423776710185650365583271133018023237252256307463266330839698425224457195144398442649490516940240175439798231562240716402139387438448913402750388167476477836363493130113674572083029858857117302427768291938366809194657721995359358708985388706157034943338063880422171806144878648183376575225986969759545964420217183717028753033020640159969364785608252469198720595960027477589487908145301234607127158706206585536060660292223983418934213580303609056417058935838937896742119369093103970206027288001132600088486677643528045956303643830505674235274826655524152793167041429070404479550657183408918914437629140209767877588573587527445474251028648478330201054001191827775164483181086363637847142537953093445085050301074631409068444810759580087471190951224734201376777330058258414795456718902785634486104447288844645134024788039378367311469992731330813959365072819088940854658033892388840146726107070424588321918332265296987769722956732956899223441476209667831647739079400440543442816346655232889259497463872274532259202749718959944102937573036418048414050773850074775963732524180848041723464968311532294292588219613359275033692912761448851705124746028030694084067913900747238146063620667506287364671809208551196052669373746125036954522064983781431711225476404342859158231489242577348805470663694742451996151500563779733757860506814042154918282286550722920351369586775142330059767056693879730122224087570214490708747419280739897627278666203974892513899663466521941599095499992971143935447247288442416078147088771166842676574058571058071970735087781558448451149213822655554736001332331359651320775179340806500329253454075142864620457503474701649227640452602044169435966145228877689420343039072961820497144644327912361592669954605368265294210364998340924772923294893297095564041946783701218117074427127082516120923687519313604186890718339533747809595442635163901383219919799733041147711568005634747179245318941734422457968771902717860830017950039357339836614487352705117308588291561477828011056372912812923733257570297599665373497937354968538310440964927658882725555257021890994713302347360412193142581267058336999279387027215481527390185410257853737241230220511898275617287140551120270216385750845580829082820230854347661969467621962880774342195599357864577128319706105492143930013207799991426058265789021688548548527651019409254704242464787381158482596964040681215960172163850990226783560932580388362259917292594956273930883034247871054542525156924070709293930318515522856200745449492416521766618156471015650817431996385487287961690678588244573749630140226214289542565017012383479469406432085907626726009849407885200507648789403030083163055131002057110835585224871815786633787891628502291550200712819965742600662589974242612046236611745960228688465253229229351985319057371069498853701308269888542931513970302665752388302975062822385573898940250338853223292862844215957162819971835485553684824013286165357060093519569417505658677906382002426824204690678441009716576007751980860731579151814388012645969569787971932213218053187547220543048726633166898716945638487074445574172848516851079797791407414747221055533196253102726521196073278680794250913606263298548630891443539082244653544500544430127560723432970809731559131173664972222113088433180188913858982262178246713547720192297654469337590549480476921665756780213516161767379826886075557126543498550950275622057759483160364392942480677800110119237447835482803887115586899554654380870513814896746170557075215722846456709859285834298242688510450447203331626613815927012030193928267158216268687336743459875375885007626381541551395071264857673998494982460818766069164950141812279662556863541427227401610715041644153425897590106546525338067959580296161106279208390144606409021976669064491988034337585955621600898506363837004878160761591084726299536468971639067989383337758509646393103416389663032403870283636351615282310786423382765640988268225583646823607479479494498856320565011671744726198725566418573733213198855118316763479321805659017613317336085892360463885980034213730558015383617037490415114957237084519625767792407470026549504315304035971675698126509109835115647698818959474171190180786341015828408310007302131610399012134312254789550465116950230434476942733351725079580760090882267738054316817735264925545091487552449825860998933088987712167016689813878386482271135399342381959880913184651849243961418645268421040587131826926907808413879922650908721708472738650494399205596566531974717934499832705990189974691181389105305974854056995700252808854684008465034063311405826513453614238926724985849480559308478850130879575266703509600855369027909597337341680384913324466478480821953586262328169234812052005858793545728381003223500994509185607261403783744463312891297480636931415520494333948635557833807795371925768008371964645751160583010752400022237461981166211980691997766532456338153625548287604899208452392661112003142378434930836127049458886486107928783177571881859345717986233254957568861536193559988213644444760451882049717735288637490200490017101129771059674681775037531927252194396359783547490800673409655155204734202806140455321794240715294647163448824424416625632959520534055295913609932865007189915178299368460502389905930692702684477668125017504259900881810246941097009125126774792907478688225585183034054881643902958594831765149540189774196955863550531296661900406687004955612394835754424318053193569560207351248148539320821660771209705744615440335479651795879738169348478772484129966720352304035757198561775657425962311578230757893545256320237054261534738013847920539088264736231822826959445272736450444887694432345319575339488849807733242441820101524339582372117709184726033411048013431984269847767605225419746078484052799083041822317880758265436368638962289124341353477065441827779673315910661631508525933756164898287276370194154301890241564065970467261942863664866012808196974622004488790015611502959817668415861023706360033946436881660393571074250446001629935051957845532405696847443655646811846919160110451791206552455768283901127564991319043549723930225013721089314808656808262522618025353204858692583780676878559967817650489787353660691693019652475551953398284465470095417426057653873590634073715021312780112584619829510286516935802508914633635517949833646963143940020339507809971423070398276509202174613136895521876065467702933737597887868053627803944422790036811920676217560341945454045756108171558492255936355996012590754161292797252989729108566147269008262436934877627936219158881491347508860765444317724043959200187973168293475328914976008548034194498926977709657285039477900997911981818024060416953324390547541973836450362429987441347664153458774770351679608239507802901924166512573494429170618589409476547187735887865360750916578988715687975171150065196203892165586992021170804312962791384530298079127689825342597987247564908020978129746736672201140185665593038647261758793737721682772349548944271947888211634200881234762299703850722018339738394990296598392102868817906299327702635399715913534513222575004241079135270949100990461101169019448148171518682109183562634206749421516712368587409824898847276450633742643638519849121128576376169288167037604286289463563875636875253292145075073693373512675493229499783047046708168721526560908855085464888567680574697077806360771078350520676423211496454475862309127526103639715010257996059189562741163638758362211092847082243314247052703928422913845377872557372500568484414845122567006034843623126791185641393845984366562551289313078448976875810267339955933356255158352611368127466644984050697224143842833987848184983126636295957940719920281321328475300132283870123353829343521445731728758334810204082247689420235628395033193020119149948899606490826648355368409945527801482336085498064015013822866502747252838854710666742634329761221470724231879130494986597395876048824889841007857780700932976199004947997195350745277479373040782685220029949532705195185583998692190100262181562496823651388321463850431641133723432095593577709262834649018132373346799956044105157449908929471962717679701266144121624453124609727643685308720012682436769820067471493736108208079730254419558172355074593861268190824430819068417054050560918771444203292362312082716638643362331008651475113640423363436730403363507601006983522844140185963500524819132128690494080222805508679770004982348977842638858037642852308826295367018210605681950200428066909207931058574999062159597113710036735188336999424122488307530879012029247438818190356826918056752980911046245776827191505765242095810939063911324088781527262077541605031919581114769405126240619249799676058880114126732898725953148570782850986144158785707820655721765092717345697242497834365750024413027365929540926867109161243925442613121335538182681325764680858444519838809379635540155744688588522845638149359626446089281276059332413629083497604014206194416121767464069898173220180043445325226866605579382884910494774892434999331002432687960031131037147146492286879532350643088394205251659366429216767832385667695974570946961190174815304726544952476051260202536799079622371345797934017301935707476090573282911587851274996771556614878892466048444034293481827670597707826175962513291197803255743594099385572838489806856830658216146340802174612949683529247877710957053441731570923552086426357740836991102042510031336124598703001366063369062764798429000701829060030350022953182423637576830952989543767177287442337718105292143180720727420735891818144842233897713918915364830543799636524000242906416900252974799558697197458260991580602387992054612853760263346587131635161249530177758076362928928229242841188063290530020061394095211278374540577691839570022523770027292241388149057214312192147587583253913606987730442849936350340942955741966056962338987498204535799144935798011067253994325808818352265018778271409331043008721744712011531929179310901613214471373970830091226620373272971066180712041978101731954282103478126670805798265955745445885269784746227289757242040265674561406889639409812764170862616499656954436130756960345626760790520987653985719259602895040064427858344288858790271891017839101535616890416841633200433154998322754680090795210849215493838100412036633369607588225996288908733215613486860682014682978890193626223913042553603756689791599705650746946313408177330461444669736300867552617345928328462233380429516641216824030856036854995473848587870437719714745898985423306817863426832720267799788433194640268685359125820706684501643662688019381172237697941105268730352635719694627057872580213160352187608972225119346453739058356906779116130175969323210069093673881464191271018273596196264078147230962242325403398999461743251263871941281071567198674771627970114831535495318180274728518485556380678444448521946906728538234938031193021226076943394193577391785697888708088338973887165116500261088463242015864948641222534653903337196866902128507781153329330073217581048173688757618047398106108234885419350143519140953484345895095737669343314871779192129145861328661980896165198255067764287898337117301921339712923786050246027909024082979123564086996629292715356493457856032327448795205298794355073836164339568191786736150173722726685055986447249498314217870155020423674028388409217307044791362807734379409845951944421961311303990593414197141603957338957683975470770589337393155257849298346009016676145340710825652183487930663792100428873215772081031767818150501671912453642904008120850767282238337954116320740085633654236394247986960991399230676199339835579006345951139280210832406244581844769874387492634914241042641701455061118121910852521203501328311051319524718348606635439006318795056458381309910997154290501774844184241529200686899945335301336950106159014361727568154055205845169930817402533632676133415642628206297066564683693563590057944813998586895604347745854163155262125668526260534229967785945894021819237456154855370408875615911909903710844068522374476765993574618851663885382493175001862970174703732742498563312858896341789369865641130276222563007464798586124827567344641799902983186515826237897252246415098828750604998771162991466860999813570819677457148710941056189829052409903221514387780601728946738470626504839275019505193105237596204537617051447671277330431937717194236812141312233422966211114374382177363026930161515858651220207317758350752841618455011477631437562767706891267768275343057196303822825780039919740637774036586123152320251600124146298761282318476015654871643490881602988605396326576793374669001923695943063163225878217876637095874598638762114033810572663384333724171014866418089915004525286704291248027646660919723750554224521140337476852741216894048347619935243523138081980998262035194023819250624885713294755713733192855079455430588253437121672830014632401334520332954223118932777816627293959078546287160990488520417111992210677318437283466864642222645224698590031749216836742323546695822183170488525151273822195780507526229218034051649233932281709897233695074835432254560625163985678854413713408022642840488453230637585986022153381877387220421538773243798868723772474220075322495022978411102827530633307717517747453497793655636455875779321835248301243214668566014246315557116001475684051718700916174422542430727900717271040474638838260165239399213618990202536192848369123803070047403617865153954670227086935181616415189189005360467521527379613804266824153812524455368718522080388921762046602050464514457541257635117768293117993681338456392117080466709340806106534153966573814991179626866182546926180371766449859325158728387535433262502221136050804592110365803087322840132575082369342946746825071061891406792712366114743048850879736299298139907205356213586132922147488772551606775740323907228411312581151801254325150355181908336225453142644532298100642404941248245211222662366398255611079183282866769679071930491493076072940535259375467418316333695114895509473176681510113476098949831025104031127155672060012323806319195643890707150878539137930293777823732399925534637916416951409367325708606231887742036464888691848582501962844436917293545392285222713138635812899418460366889480330429040484481748483019219428973320491710222320901485558798273361703582523783723397793576426359838754369942080903226903642910312607100106251710891689084635128662252832554974467747426565812982320100624786515014567505585334633724723387888649035478820390432455332719749976703636587776196727627685298655565807925641059282200260408272074958623340051875307096154688364898245151005921523169857593388274689349494321427523892433265121589060810623381421701551302027806658383266576345245159391428822975847219689775218063116572356064020866904307376273054236555408431926401501233685350435937204259258613305004597923702050374498531945760598663561319943749503888275587675144333474975099625916374946545341467560235792875959292644243902941011389936073183266572506687309892206438223999164718509339449383759534896980647873637793147562382407315465959272093396379116497635747465093716348885710824260109536775907336933173027505594955694955714474584334902077595939105715386005919778715666637749183341061049126966792259203558147853387826264391895332313680854521671718216961069455159325529434162209164922153588540619920902298787847221954469749110131854002842279396707809047561970616930521381078967691503422002845330907507704998411846568286804396383305273177785632298535745142214597643820847983560237503520802697114433360281863677728360161125030404205261762902682597500186265206134888186976251371090399256077882598285829710113652273013808050445373420318953011369539886836764571017888960635054365095936624903709363814508362511500184288514514362192223176620591707719932553358974546655963665091841354651551606172762423079735965492108794861810904512625187203238802537685295369550868387559897307616879594431477045085394167136686299489476093697694683743629054072186866390957392318701190392350049582894749608661509437371494800371063166754357654351714061771929658633936066894176529298617565699405512451891940146608778452567827268044326854784880435834853788071227905064690837855689326522741422608350033745802833086049689708153211980435283975748181303333543314990632867550110345871164876839422407846923060554211751351500508318343946796414668178715202539800143023997346026737300556883772381745399981245270111951162511115196195200451712939784570641671285541059135702782408843417422441850750910593741047695203424569869455741743138925465923260091481457154807886950001138569714275837120147519437606199900069186638954019188977519104075075534545771800470950084650083032598071671123954577712482682030965222962854434604442285021209451216287327930149306659687915969195232047740295648477871435872785525860260182452323170545623226473738495104624326201618566601677470549148039228660143229247117950279607058281988275307029011540963083117485757591693390900255297545789471514177783463972564511091518016012518878858743182935713491042547704421657451389080518610048228412424086201972181765080797960955455807023601161803735111675387068343380677560955882541162712159218302486732370344887206643128255507675380629653127454500993874190321893461128899869382018966252022404467437090728986274669488223756147025448429979644320528673153612634977197788875185239369130493756479237465078217434978402377082810503153517106740469185136978747272024743015941803554284720048700778806796904166199729048767420489499061421284257239684643910038765375833273750277023896314881232584689264139525310748906228986825375762188237474018546142967677126323985530636636285191664313554744609783031808573017867946885354288063184564224513482633407615326668230867166948691471606193646930699414711830477993450427519643530220414621175339686971208080932443318275371664529437310205644629677366914550075777528889424142194225727639898991863984348827788243695790408966156385913949517267716871693727278964623144820865652669540182932608017424064633161599144978660672153006868814182744793032789812764703387972617123149365974631346191812054597207592410121011857415844886490084927562994918481030437147510746600087809207404469187177337439050709406472665973860500241374934995746609685236384030730944975317044545724279207005700921846631415900837438528344473041009961076385375780654832304265317136749412013187484830489495638470863623829606785980486345075406075298367512530805212261321343656146041223860106977449656734032527273667866018644355975260997261542752073674304265968975978701555903103434232788587848405004046777938179216998722564558664696909563680123210418718319956059269289847234960113878269527726169344867919896875507858612064942113614498693914728374255989673383130002974057758664015781994581925504485625084317189328709374590642875185638421748535879700886210506099461235158246465328301361981610025371872903989952737052616003871333176454146252206991794977564586094158596074929913386982417532303934140430839060371904508339430779185263885169951010927921404725844220502141816729865942335609671973994767629655577677550120872779053557600333680789126424994547437426794851186874323844311446163307721991561526665178359937378399524885087316451950330225554479735411618587007684342632026511195369966541851707239584759633511664505464291938709708171410536309984749879848339114652347322410726885801111469685090112948963497687048836665711318423086537404871376281929708436539496575227796278896097400567960366878600511715598876548764517969831814406501543385136232324467628039968518757785909849942945045866628071053755995590991630104696485036760824249898742339834857922957676301733173315734362616246044747669452694210526126803658102176986698538861354229088070475279091523387094996299948569981739162638584605573595646504927947929554643468103795402441609813897381790147199485078432117235543506350620826278151190329472671243234868870525460884332484461673866684179743005446608531926943927652809950188055070173101307145639803696213174585939505771207725765350496343284434832671114133327160875064319748516864784940246985413320951401599682966829463919580130137580789418793907751259491859080368531104326563152087670969411814436726887272314276098013582196952432915570433187475375053171867919161349475319515691559871090830366387133003903127666412832894229924612941047118794377677837233989969296394763567305851790878163905389995044068608815937650759233042494840510095151791148844036759706588278686614243174708762375326158548111125184209416384279172455633670193667303288854049068145545007118419184362879832184860051505813934904558339901625301602864655921368433356313795653070325220561040733275887740968739596009034694198564317650314528565729998195735450977624271891783701900513095949639911514700832652909525339968464054799254590856589335071993550871759480057816090430255450474450459263143518442485729121359570870285561946800256453156194428002100455258537925836274608154213082656400788179025358954285286501138711414856084146732343036039062234350617000328601028981471710199742435956219494714397341213262344516075142346073654901935332447512783364795944177253421275895858334490615196016456375750002796298161450296719852342843160205894435773872220392481491172640846080210971781461347032162139096213398810157308183938338032226783493137322542385107481007157815366670062517627970380186460076731008562608700881609061959232621474092435623606336542305993671278084598274025986706874255671255187096144921059755769387348074309832695881729873141462757580737743618538737641117705713928984697142180329666031842303828914655772274508258032400763683973329453992378052093569569550167983131444235222341382010720059743278345854807749077074427764683943696998019588564935161901911535015132841408016733959388061815900859166910796433657165294785195810184426948207247797964176393499962511844639381317202199719757688891390257128010863752102632241506750767336376032706724012359145601586956500169945528535658159757674298167326951530070644980325990077050331991249242067909379910492593319666088113167901022109404106879954634584928058419045711068747948074670635761574768347569223129523163059880702886953517178762101117583945615034605379531835404929384331207021481596082287932966353274484607404526387638790214375167636501615243904251071682057387397256236737474877007533645345114245628093319672831706789871194898759370274513028526347496478756730716211857480405619654161810056942533220869693120789799075729122611630950054075637323198205248805634182603713674083875854526435318735033282037261127363776547426636913193740308054074407358861502927553480986451444526283750704246272518294166903385844540646099999101378813880954503369712679176611683212015700773857912657453628341326172690857873234762609720135735360843362573883732529229361076944636996037051859280780222015219766319715062134450267695127126194751743974218096543405695099364526797814012603098126180082544634191433049029814199647186188446851674423397415451041032314944149798595675760323601130541036756094463520082282252240569183451899714488507100522392143082801923460994607064638010246892326895510691761534769008290157861846688955188302179295944931168294548566960187689432902814986223095577573893531151518359448916256407387342277291958429293737096160310238981840836087955058851909206150547720367228497599588139240191208167953838951082844354549175352429113917897182522865249202615677773652281338701125938939514938983823694417179564122494464646782674850151621741283734325516225224120508827194578530209547333720043100732969128632291869928674334279766248833328650509981873991815451170795984497401741779833954532753184882863346498104156317050680775074915833055908269010366895119702467986888232810250065876553348927382301487154568472809124504133435782870924379004905707957079893690539633749373635750950213697139028373233903368986927919703962169655354084201546737445451315226036833665462267601623940625873911370447711666057720876650604459556134403444791127583665150913277882594429479115983858467667853452457477724598190934701500643506160542377672061041100162300547334604122666438167772897326639229024048246507830372003077790504136043275046846713778982465674409805545840507848115148428013141860002390095916154250453145730934314142518649778649848997023155135024155996370150856294327759587008716323759419048277061071247675254092792221199537014930445361593095747224560590733622494861921181722230957934421565666655137874526111863269738338444241095093441591209427180509412021215694257689332166461498626951465797183004097577562418817197269116124731406479970798257343196369783128568735971151518394966272128739901205781087695250948974864569431319419819797933324271755035989131682378920878774286851926036935857253962168584020236329201308828737792057385783180221030273726211941912129018172025063592096393398172373648360238428686176681353316901942118275743159610007439856321046965609823529028987510418364808975298004809729369235952851272474783472137029560907959367250705190137152656071267087463219378059634748526242358433841299073393184167534077284733835521035403050228913788554136049700296820437892466473731260138266512783168072653102158226619437796758979225701015772085263962211408972950620881639566679866537383940982546613359194419444337895111357945071761161958949467561224979328461705116717853012053644667046933680870459613928574424410729572637466961526768516680730926074314188814977699102655004439676961606560153823006738346064511194582090379678370555278724765738380192799522086092967948298100255910604509951169817246128584471553028813351798380194677659373974566394255552454943879801985149580735434308342926504359636112679825459658952748573727380639643435704538386637175552351782760375166117764873709089715283902386437490429239115936479217624080893602094802052482431947371427422906664608540030090892154063558604732727261161091707451531414414840177969720926642319754325744966898254524664151336348134277564455599692424072081096848201375198749362518106941617227638927678841189493526641864603212392304406264338231310919672806035636260296558071932305854182493029008198760757850720189346781394502064191917390185184581271604998501223152956841375272731981615193353045965669148224205152165182981931188823815014980948420832835781465326725113435369809561782866652110643180853826541103681097350599068332519390994573135632357246375833471461722437296630579315326813899092848021906622823872194253271810693916493338839260058192619144883472421888976595175560257839614219544851268718711472802577900418284502751557765632242608354041617069944080598427546394380942527379563124722853969591384412784708572183801444105853378047560746083081138416484112581593490183150653949103269340664575637721833969885334110016131800075209786270036927156127337580152336772856479510910918421762612699971193064688233827129175565800298522239960449102635094798077462010591413022182923389636656857281359516580103511096306410102683381183483653285021668906228104926615423289802430794872385695380037502049232124917339817251097707652374712117945026324078264495536930313604602386554902744097829283233729494107499887998022672349544006995645791368515358943329931795335113999295159356170517179762323142959367923135734865930028008803509911648455962695122271783488843096244585256203083324778069955701507878836920251273811699736943065767945173179487441039681448083278659792181621514239245036493694429035732521888292369511264266228804197412528340783227103198121115751016257616843352116047548424703621862191734060231920595800530821715643490957125079877324065183496259297205241152104890466254458642345992537020620620613847676193189705572547266834325907883255069503447348887769440400893198600219806387263942896989747734458060265726408437201513115466762817787907085405332406079366422861028052296976244408046289969655241998016935223348864303647540098087269202440623176340394313263321272673033240388321552466372066591976434696555668863637479494141392256336386902932728617283962332110283447421004871501718700338144592415320488229591570725471536297296213483916443473832466827096955452803696551381136323701662117052209713986286588857824177436364636368842446819021191470900852226475716928608410149030170716815816086998613691757134886958068015309115703325693540481864319955362544639225878920172547414704281670994214551581429728492810846057405908741951410932741948446892286983655695690198323879110912844630294240744630534235352382033444742134727782934600420833750525426124108528721137821669717375266877370810559004651991700042657915313242856128308547267435964803460355087119049491183243937512057995438055374681512729432278597715363075323960842682008544965320219627474967779030883843008947927856312660722742239979178749079240612921190500579245365182558629284627076959853524174999128209235007438030238779353636858432287545072246640294417762418721231446818816942341699603436125424050278000412709146839350010328458894311389721290999458333103778043867120397858684303768417211506134932220945494721525179352664919328714656860174141487904457859150828759479690151341720626327022484574902184128269554813771821893545918090780629959093968043144516451904357978980206964324186320259524139582710044958850489891139258789101770867714122658184945444054674716247744665174659016727299623917849679688450416015590054577448014881929765217540971619900612388827473151402107317282923266747609511707270873478409788501974239615255100553988726507599201869208366939800230888263450688404610064831996115072952242675660867569369182206999348400918920069572604232172305000202350732292472985776257088415418147283586332760337449107063134607912303404779423984111770984687758286035954760518710814741449255405408310057962119938250676452396108106818016756005238908326305621786059129903838102587083050536522150820698845038892869144412008149167806280066128787912553398648232765463755819295840901913350604904029436917937178632969956924692175580188201087059628896544087361978314117406955187841172354705217023579011063730558766085096776881749253759776895499527952972552394761573448250622747739813761273869117432320263757554391249372384859691353317710065137030713797612877857703517965715076120606346225863592227559569372278443484138747497370463007183011227050196883090650200358915696977999668164786018268207720603651677130790553462780350705350689491633852308094498770304077411518491940201047861482462001715277185263782624151711189419498216692570246866160745981484210190249139266417168364243114436876483376203614836075740314376739741855435240840929086996798570182197965727030646001504782169063813238951503482938903637592089189286346669445460402234306678758427268508296805898517716720403532102105791766193497668768071650953307849569225767182268387032141002505789037280476899298438305482970819693441988323945770246111676355997572924930046852978652765735294922356128659792636909370108236044311416953843877515558538639368569864797136904944228288372442591559300841075219209238477696603528843079862770409907486910825786463125055267351728034007119386204045943708802013108419048035584457942463799791693632002886567334532648566702823137635043141280875282192344098667290203726770493045996641240594114986357810468281192727457986856654150419262098496598320525037354468099879521878920748235128646068127716510341380917780446995302294914827724466737035495225731355873466766320293915118641733367120303986213035877723449863477923949170762555072640534510048342030711124725783549534341539782071973233514678250693161477390162826980643559914738067797286442391332859508881107957378396164354859867780088648790642249828691346195460715826778433554809471471453128022639922166857959569532272656714387271636034761357966386058471562657335884912047170736883893637920748159422790301094150211485318165242830134487373227318352802451474449589867310029419794821135963161305065902875801542999672997944793437939235077833241716022311363802778533058909376940102888130474770950325352260245022701848478726555387218980191542886879884677479143701285683168616526714515707952018772796534441649700647467367230003861578194897063555620355018178639174978527226167431997825850541698942676515172073428345353837560279650953791416388086277332248048824367330988075707936230266638691656011283462877636104886471230523298795266083230019210125022981814642587778378185527170060673517280795825076647067594845740587502445308852705048306466445862457893858056702290212589404575989800543324596745351145198922090648661531352674865509567309434130984389185851991051860217855376866507256800805920860754973472176711480496966384550867827861013404640398336885780753980000462251255118305223542836299177356587818916156311481355849068941172332470423263959350667583240028005039694284871548409205845324612777259126810200665541666870029975146809725087975916046676275350789351362065169757202924275474259276731055730766557008038304235062497074413078127046888851622764835236460364744354842590664938140509439365635114527824130943392395357989596223212746173453868332123851500825179523573511616575580065912815301933129623511543584803806158477472495506171167155910872749625336100296639578107641773143650755967060290187818474874628669814315368609606886237449248780351735849866037561937897881284794227576400579224093057164700120750490939610099353041818381931460462293104678046303338536196946150617260761031981464702826912868327771485624950605043778969010141866423712068151740675555581894541904372796279433664004398295298749078660215689057418703905132809759890040750530958984786340615632571612204208372642783946978800512807156532450615044724349684742657665927907279682254071265155880666083383211542639628208908184348900710833318553591290531297187490891937430312660253990458576072054285750152241565974773492231757630721344967244619782464073974658169724732817031583519922753110208849857931213662480068564032801231289096563186584020585425016871487349236241880159678790881130234076340983519178626135216438216394882509748860225833506484806514103752758997820640366314898363522650291143799060910894815044325339778903396842496958018679475467126509939584592854168447588565680390485316261328422175972313287461153484953424044087636454462260854432014734109758822050675373552983991150527627647093904717541147615252411722974395254517917668461829411185791315897159799050648113804481141526427607578260982197180275442902294806965597583573581478601354454176426167295517052159624973257895607873022797686550284589301163045651709338617340517174980336652582210917198297347196593907742380357533767871757075869594637879358540617613458202600637025311656811255234092624867768209302538689677408607109799066612901205973059376321326534154340926464349658704895604505789244067487779627750398400138329284556640397149212877282994720493808020827167924982795213190877122518203770248782740866852216231181871617878636570230780683663710967356389420391949871055547759866163123618037131145278085044371363855134016459217594812487371319548105942004482571373421135979207935989539085767553987282935533700698950938599578861261378488872590170985557881981875654342341500785833256401405301601942415945609900747232268017053370764845367886293137757508246549949035555644683184853746905834645009078490201985347242712360471933948947976412522765576360712457512593459349607350100696925341052003463978529257264895969789238710987991508767012961515225637567943087217843190609353685972649496792445812663163312852681053360146232210669914568703543722392824973094188413841619070727277451060367317901266003820806015657132921778056678221408016734239818061425388407085046456072650504057429735722490532164730358534922324233648583586729083865780442989607708076774407943669754906662086344658821732475899199014097083040509163737123024936192053417628924689666159026586132718038920814017393077430787573182802425009030010598881377970985069575072984064639351134420270405286663502921790030429461908332513029001380193799474813773992638010711383350731469230784259148067824118452087832805545796384593255750054229404918007000606166633009667396450623222061563003219260694347148663631911398927368202016148478702788269516920195609777179763661146909586741943093618013535670394856264604839913213831895984945259992173345232983443122972190446422734664613523752308297659350613717353382425483299365490396068640558160728795127711947233622119572933082880817825112665691518487965737262459491068735596500901105518029519197525370584554370674454690546982062827957034718148279763411543192497383389019766448176083095293154642577941061817308676101253395605595446499158262505884319275306427159730116870818504247360970431881949646505944567370445279028413928225095488593688305498217034468057423634235774977512705120758595121759644895238137940181552206078388749333629273508723936218211497241073693432443030576172325388938307331437609752998554930160658469137716937974619749073354233177131174503631417171982741638700822762842980692902981828254195911404088257179258629986743723824018342514971928146116606633343217906163831680060891705215502036899019416982906647174615047614063288137874355902529650513047703443247483775385709496769416699736120409063150665876138793296178863567484638394562762771734457932768401070502856725227570391068528010262653597019451327771132352986618756077555587158563994205239244073907341259863582276672248451811042781149791929756312936805324204795900978107509895034409894127326970172854965890408092888193131827863345144049133442904037118906633744233506756834320508827484093685807130541534005780873083556870582513542305348871523940327601178000339619262123188328293439549159567567523808727352774570432969483038770475609008760801298893307833839318396875123198150367983753105447753366878143644211532417968447174149902778905110602038562862690456556548234473993348778303294546061700226673091013800223458288734843486801111539439984023227989627377576791435268698881957235457433138453180625701610831429063569227620586979530662033461316051801542982232522590681239266657475598053206040395295039041980407336772085765334865182342979632197825459830411777665325631428143870151412984060347282205997310262732715672845239323135276801786971285733755561688390247748464365689859739323341935074243762139105876192749358904988897773563505722352049541592737323028596016703941878813059435841423371497248258639523406636373041033610354880883590584524816783401830925872018859332795593490204871893335005142839545502591065248133470508602565146655146465954812936938452364662404932941007874051092013312311076300206778649647171139034415760270773469193297443785026635109045034739342046445192663333636815978234465961944072265491088109791819344359762479283826565278758112636452931505486475145233851400407125794781111063727045615596725087165727778215998320974787798877460919711639923304240580380035759652538082573432153864335700288160880842424737189715467527748188484068808669338872401926569780500690747180995850468013587814607920612012129065708850044771694411461673187026709439610314897674100768043060062978294696635372731107501967614029037602556563934455105063400427182961298932922174295067697522993153516000453647162293082201783595247441356211079059336255938220080804464478684730527510914325313360675944480500584147241235091529304453710380785025241565484485726094770567627880843725084937229228334810711391888153032536075285681890730100823626710475812345312741300315458846576249924844010274188755184823435518102747311846101614123845413553127374402588365409359694906529494647221167471380478268218092800999359343932132296517277077921322540483797910686749994258015465589171859911921245688079810882229094655889948016670786451948623964703123503717606461026614933053655229757965423482725729212492829587708804211917235934803196673055782006079748242695860654797685823670863765243110582856541677571171440565401973665357332347370849032492166296162272718970539390260273720386914896860677127886609616980985526877181199430253421449584126623067057007384854649208035401490694547940354487635218523940726134933946836794356175324230818357997081779936965508390339926190807154960732296691050346735216219113111719849704576085754370235304131317947066319221030751924731862119513943414946464201421953805275261419351898496420329243559802875318754115094555684906543786154165442559816413015340911780720237126281105365269146968771918310777338754438618723541620692181838868525499177179105642412383824055749858362615296449055512029538250317632048325171848184287959882637788230670877333295137112283887419037517968628105110677718923410971643317601624489961161084791019024578807564092537492137482671345314904441752164696663171196640673631510676749704606656153188173702575785512115604682228501551777531046863327873028392252836156499763415385516247277384973056866829098570276447248615898688773521635021790743326235141409116952415139792073927519982895881173427037988153648048716658486465412540595603054556428623521155634511179226495884341371520149383163841833966306915969046284754807645553222954269966567076776884271786725626215858411419227338546162102234124018363651095895149863466812442741958525504432975607277212761878467349044880271324017662820665327875266735601415019394293507675707743614243962100602134598190896255265574364590957568139909588249237614313832576133434335245315387158713672118573276115622102567089836385135063868239199962618553508962148987649955217849071457828903962829778969240896826099201114297310917574024918694342110838824097465951681710987742169518937512882162340495540356065290618618702911515701137921107048120880101535806309963584073724212326812290272194532449536582137261547934003775242903273309191483456530450002340517708895103801274791968735312321081068536667037404058369675956223817789893148253779552238196365689773962640404709856975780134335315110809002364417445116818985805249268674861883655972524193478045638291566506002642799742135836692597370087186014691081334347054162174287041050349172876452335012382431945292184475215600292634395202056700232512177638992612409561324267421315855203292728315308811755518644582677007798846204506841799723359877825370881971725278187266076880637036370961428274321247052239708668487255620781192928372088469049377507070587783369029103777666399334642764162050020336600612946669280839068081866281587998637561283214527995926612899389748139643498020818683038476837581701657667401076090565999263988659649598922204036481187488778044694208553616137475387545636207861149052809607342301300092940153646969808124847113243417123492178381337296004866236089830151378153509231892062904019253905742956910964731140255668832180079868437333294690978101845186665637764495981899420644947880318067254533287468067099717546243815369369013963295758293014140720886369469837869918722800824833866006001222867907597440316320125686159278323220540006425699721056496936075858270118484453254775444151566351497109286616972733777899738976515770451069844197702801520200940898773745983776317131345704406060108174056722593565256224469048251583935712740254866731016737054030334153748065579508365673256811392569986716294786710118561845954481912627616428557144006718192977121905763226554729143387418984117916708082699952723379720837528357551972253192052336693152483563176337737766647968429793087514657584254381277275537297201221168872421363807476756964918102623383020037122515797589717585429452552460771353525865790369464483754404545203988677354366596685013493192635711758700775909758209600003232718595679431909325839042429692282059704332336141623206257695933955906388095393454486334138774714449346637398026396644465476442324267288435386025449761254938172716969123784171549858588302695423284794991693563143768616113074422793783796291182837788715365483117623260493440133891023635463778149366671204173617918809114831720641022954172775649047503975567736923703372942333398754791706799360695804723585066099518689690916095511014914603522085978733824157480177374045893379840671404429088016284707068941474554333751474333452584109342033318206049239011227770771360805753763162823623520035149169828897834216521288809005458551897769720857876501500009907513169902576893416045208900359907486559850830850309338076907990185709073739983604265026584871465190408810359193894086734134472874563029048020069210584891813817963609309252057613023966561672767267970977274297158419513835569442889661260221927467255203109240236806059395461685476592825477751444755930213642072540708751641416982932515099676901144809351605967260588220920426517198861028023076999422653760709690915696040529887974539781455138275266473476673968408185092625819306950769590823962939349779016496454536479163786983920866636987727688701704790241200672526735883478520455722361693459871793878667272964822650249559126175902942636247952897424519116646020934390619359797345994712170955173139897336209311483987534377092025310601819006118674345375928505469037090678842163555213923268487132104043851446621602129243654328374699431016010698172597015371414170336695401262070522564960954801831492405662224183385729983630999257347532286984859468906120260521425241736657851545662922534627191224389546854489355119125258247251428154235274285177420907927909450972275267591603350265392793415316063083515683406617199005365354075206279464270699118376497124698080600742313149971547636400320370585366077092023040956166811769074031511042232127756341548262293197372981383638832551801107578484993335863241707528939125482822882531357806619854533769973744635012128897045382674094058172072331370146902759229668994696126777365635850210061141514732154480081598532915275755565377469786223928826719365578738796184783724227767044771986952280250530247302435587905442228253646855939662224242853769331422110466464266594298425592734425318687279172219237955524939206726597736359824398892563857395291610338106869560044458491122453996156128970103922351065432376146544073686553208951042552623717973421410853504227632675593578145695689745815450572747179759345559491007964593436565196762265218829857193644873838668605485395096615131244982644208344582578965961849997709085365201191099018065876229401238911370519291293685242924398541181509943112281093668431941409586056773929987348692670137731729179285278798428932796948314152329175121787931137814064947359911629393253832619529901825750511750267120594944726967689815268979792984810151292416832380065874796068831911593699600328166193295703008530290148884260388253935327557537765529969426333819702251061369201209623037674042576774598559445731124264839261963080252722477148037813426271070558287202626666503466210812101573584546086553773779251028280017092041910627721710795069983502254944463090100539559792685156599168431602623136727019516339726637673329438759585415828356285334611996813419791116155112947426811007944177005999477913986954461509911081423547253813994203531035376971113811810028347284293957641381162701277481038198471459523698265014939432353845101017639702082468829664273924996127370098054775213211516155167646092270883825125589715716129339220715743077674929552030658333769943531216770159935987113078117706027105338127289785205368004996716086755644899490815067039251219859984259482218367790592632909270182795512343703699466456393620960884041345505046554620228736282618676839010850890492228534853323309168159936104624980521388745123826911429143190448627371670366665403397343518989699951525055243473106779897329360289799449806591850911207164179406332108854494644641515465074068962323221799863242511865582514730182200502703273613046933036925151199249052153306669236406398705290616691716023867492907592401306197454102061921878960103960112941328712826363201044112581636896993983963931005185248214888615812390291863673609691252197403752089029321160351821935719872799116354002377401398197051956132110021946422059617056070390451492567396210009530613912967651439409783095298634597376713577775391838598197919246046200538035421299161152743366687835827452878205873339103693997458411871396075728569848362498215074084448379158628605596181434401552549434659728907953470899786160120816467002847116624681820398705073949671236478653380759201370255152978421081403758712986759502523799580347173746070519712961374811691430326799691579139788541049342683321706384316071098763919411700039726057300060107603095663723538627128477349426432571623444779899872198538091235288138523053524861894282618084952036812369949696745207267717960713196317615975434375779412592064099127622393183341582448518240328081363943726232421594183790309072023081350378662879256519716470092525536154392792064060690183900062451772353483420477663437429695964670475412681334702073497151218461938750972157123232202266577853936037001633678972846575801022582613432703191446224395126087827276295749899536691670987776286030240299339137618796590057590683205171961203622329547810970671687411855971911968597578653888386363897287085833693732353612945985851085960537012317176020168955544040273336733763406355813196084345076704069829931472034240168926587780882486349466146023171132744253433587907296249967653658144983001666687681258630440232040786090554881750723834385667274000203788969931483031852315488950651812814754902455110804468359760336335236617351735056260029979707415697548533709701526276984102864086180048325362366413127961209351336933410862670853084553735129183805958807928046696334423575640341568577375016465932253588806457894751713030992226990010757483916963871456535193578261684417332290391133082489523928188217269941594513072549583114161027592878970242927218313298069501160199053320156962968857645460983985593849585305006269110394431326360317390828571803157044292808728773319365011312088154389802021719300549087945951890762333112476746633992288809514722177442847379171364229529220033218389648224541837754500647447407737729419309088631308102036329892468677173105905332901250631234011011868218443218240458754236032873062803679211320695579644251702839137716484953220452827345073643176939510937665588621130045487022769945820829181660551305515972057356024849065384730317689147661439082484738624554106329287587942530066257149220261027743462954484589818567073497812795538409566090643830562031159998549926254380666151942086385911153182829029296211318845481830319773329516430207927210871375357054280038007391284804594402552291817813918788184520770144735702181023484643948716636109002797292569713296723832472020025415628049148504376136692781694412198158848376831290692964760066350040139835284081113269412881136072291797308690339491891394978464715320252912510329403222306640531732161029750964051737384894035603789871951760054260252739326195464348579188678510863142239275250307750932825588956049044571345929908322696873767230862688113156980374881940709182781010206707519150375927817752214298772304947708537884038214145097490140328391923128130747771646628334960191976454352937920092846813465444020892884575605727237046508418477299841270339726281605657247717827594438490927546360517485862380509173213319262631698072428159675654687923378626666417622748906252079401112725488497730024613168483422375549139542688973100003520279247377958541960620375846089982084515680503031666216102659938936689833722133249805946039536641294934270466475450822026020534413086851755726674901417302407325672609938707378776826081475729582208510306089365064330561763825853837859478174227805275996958696965625416776171293278009063629361288929945612791234840761974847251250218007040902173406067346993138472489368755278635256646162879199081753476256968324818420178277445696166462247752864214061506461791415189600060831069462781671355204389324990448761849192296748477240328935924893989569503639852405235346231465099587228196742506031348556063293925867424171382007145252126345208724011523446010306287095735863152694155250739047395019375993686711067275109881336782323411576012761638353491151826397880180383053732227351427600534374949128441911595959765791675401026156889475453906360707195941088719048399419908217270075685482879402853915582334663006835279566327671852379886027990108785910384151759044311467380150056432350150741869312786334577088707093867544458124853285776828999642570391185215977973627647793008295401063275110953146025198052365120712653315634285409047538246383273771510026095242997394563896527002186940797923116280118170734495316974206805604695820868843777941555391565087387641129449781131173504451959584494991152941222975066372009650764081878744612722541634118267185921406162000090968364484711569369641516811219068787804318844488770949492874482209083507240643865380932331403230957366275120439176204196714648963979445096874319076971497527930835456811223255585637128696786997124773882005371533630902629000185039981587024957462241045972935587937139944555173990505371636531396805719100739546046398153483237794655839417031789145050064238379658728168137514890188035236452305538338118366103483006625969490511848318479484770066352701766541532034268982614554880029640062990816073542713048395889120667909158310451830781314987017664051528183554255891745860762677567438353624753627657467286694185773970691393349509594330261809089056203350964458519851422659117782073259651706875197125077071975851291987785529968313903821215910202651100107878284954392261993680107490542120910091872581243952897639240758824732787723332913404976938499990426419594117994293163617777716123621049362244789720091457755311286409515008986033777150710331721763983422851988699185615458753165511282139715263660013201799457569072545549057921963458462502430994667618520451240474807232574561682292752855456674089922918423199892833214708236878884479371350135690815406401512653346127195113326631399326625769762851455977548640234630258388006687839590714119307178944667825790021695100578776697683207607967396677967864064502832912360336432443930875306016297689259872386107944938638153414940848668749482843306854744011165579340329136392487744623724507916934476199068815119359509803045591771524103354929253389648305885309087950595766794643040580360005622070812030543295980798716999209436951090380623248806135316961217497422449523082911138520751792718385759237019582162693757084319373829649209536646783312082381257856273223257391378355233087963569175485677902914449744325429926935229346609082863241974041810406275194418955928203096162320008541488747152525668804721827967052392135611110769857701553982655174820500988207782754403340507169702853201969667196098226709276557692275814858119555967872852330487853711045032664772047541259293762897905015674280638266819778406196723017283786209717238048251001162856501081078005559541664086830982621745302324487855197458304331338481690331618683120931119269232423287228783686649475457174272887432040143630975054424350464117827692494337310848324573432572275940666710942934061363851589207728338720577775159514620098442425712156034847145568564730132862970477375858742376594818052751117871050451461151004243572575283739895975339906386345811941203615126998562491119492948883315454821123908869375508985029343332765854965742396285872859422540080577212565575165946283160455935689374815719089030229441444271339869260536271491926269772836090736031715030775648018703921781702525917576376915996059704932934728230136858063489840324939455519204688516552246082077992223704474620498447753911572334506608450264122449312752477621295190790633390002627507362078895348263087387185287434908282255288535761495522954427652185146048466101218177437971119807938478081311735587674145002015824290714605728492688462068648102365114063166360850609364438587236616188165526586183291557616063477340326847817054719530389397446020577439337768774108477854330960926300730465630226905071408373344584365014079617684505360983630181058578467040484398814608751161538728095897139300885831629586263179496189651369605911101656062551359204543038896935087415894220072872902422639965109289021692376368897421698156124665133719935894822699946473656399321003020052351116978585155544055802529958834405805453900315991957039721051170565238493725719784096122368815455288805079122254181025618987959292251261035701228239118157764587112908266494715420800166713080691739740787259154538592106917067621522029667457316258830839664356134217977860970488384549243406573171693544833541896452404271307966693811369096236534997659187999350706850758091203865226056061213605540561516018845202048004937193041774209004857695341523175332813603300511867875299871836717320564333340173213741483001761820233918295708037863477920888574856478922182325506445267064118693417017954805681108738937776993533313844377596189820303466253759182659168756889568863921248437635862633887403755398404011015372381100515580432921283119977071833608352664834366863586057450631243214273543286013596863651808047014314247528639957432137316646220261688876403919510021701976062924069205525692063472983814033694258673309694180423770652995080784051400066603289682219733368671038331351181106076647706423023872139316021571709444750626861202190426564069580427489051201311162255302782437205500020454748188058848208637031524782172161306022017239640786493774700435440437920907082229624615597742490373966819339862624900827757374858738088081755553955814983233358387254834655768276596982261767346601484347016860359881122739934365588249694802335354703350929878228586897698909707221134713083498429475980431913896446151658066008238883406638892675222134312780898407170689040139432543569661530430578758442120656804175345112858315517945784158767137525157701158973593503533751808516204557906197699085481227390883767039834718032978763699070984956210860591491229932917995840576362012529679848506690025415504964198069934155932591551050800220664722767363036610882220665893246559043666837328502788675989655967272797680619221073635050272457997373025753670443025063444025243947808991785947921026036188208535082495970121727148560659193116182982464020131364916228044097714129706151790058166051130921056965469118340178570489518490741804993245093106935495569046158217903301709063218006811666192323452839902812250161608323081494158585123088304128877255339391440961935167518373753625121271976165057439399888706122078369137164517619755032429517770861465869466794174342881564687332201315370838432962412610505691622688216128919664138174663385452513735038792190610584835532693255477606787449409714340519133447307298854454971392400672073604815912573245513797062728082346578593983760783500156606108088385561755936026065988633792666621087163826887221777444721263899045084891822369975851533875477322286210003614310049577396580142141160871030500487738016051590400210141290896526240457783560490892094495093916849388963477815670103798415882867320052404677415221670943095575917975786992590875002245056058261507105514714334843873700465211357605079254824776949311877424710363493088175945767136719033538265138419327056447742320165298664746805062196493797864990520200334953617993822082763402667164207260461295908406666919442788380948488759690669140082083391072825559782068871192852708514940176143627644095636864118430490863886920659048740841366731700925441423187131793905028562413028494255401211484835495902206185500870998356888896776922484278309778566756658447975746848670156789409996115137984744162812109124007363501379576251408496060209514979038971023750013586705960981980786111147567766197503035968879314322000766288535988634202475011522937126229729005561929327515145949725211190594051490528435248258963858625952839278300749269581125206507202070675423797805274110569852931731089012953674482639173949154348092865624812584078734284258052012681149368410136288488904341822595861350977619567230032500560811381277234854240688091640691907756494037150064624220904834379967198931730515949305102683448303419451483132700446760447754939816310962666678738631876544796538927226291042493439893390192425332228174025902680802135254103533140055486106751045755359854453009896410797127409816626428901508149432903096825454194090580560098855233209121739920887925118210607206832571733841664470187644323484320176234125714622127477851002548937221241598325801404471941840312076971207139949948392881636464462164479355704960739799842793284519609248274984124336847133795748174470565843249234814224617979770366976881533152600755648451868966038690838223036101072054006266066907758972575363666735156714502233059585665857784967375190420422388162892263740662647737977928585146167088940436926621571450190164376076719145169437709584298128135398524363775638330247818334241520807719794572385728098873094047740587261424093777284435488485738963799589317474326736368776285532663601910180565034281376200079293057275048447885610905554431539347301240429938360651278020377765905378622556107072073073314869254716213681601747433670860087875478732419133819839732863929010288818082775532979864844996856763933112506816900275700808692901223822237935791646099734498090454218429398458468858882473917673709011053995894476600545198986909191520045059508979339880247419935048434217631330862073731577538482089714958170836074385383285393744440671330870302626471085861767038030336784930375469897476301062606374577234162685019853163096316296452764629339721717527823810349671462671913931435593946822849476101598264718220410351869216977722106885794419295535568136585244984983224449732587080407646091505391396264210877958021923280504303724055536673627219363082309069549580358096966434077600820723813495269651403162441412516359990713487606456478747579294397297334419552367263778064979646432899914878398526471633655995291454102067045552921138688961824609625765456710644130406139026567803489122000149026887431317649086868858679943027534008468071071018448019976863263734791061759078928652814361302744361158390073877623084680565325336923416632683839117161585625800284840606171078987273533239912243825144733231687699917949786140671413773025252960993013974749118473829947532104822982667357043488672810177151111047940271326928463264599257379669167513766050422393360541606946337368493271950368110460905466578854997169576840043544503111577942242715918256580487656230266941948258602941703690627185708940762251538897071301600355875181748773228722671492731509138135160909670425751324348871673072386156082436665534110779553897482487019606685786142459483087124940090184956610288001531220533814164976859537971862355375045066853392425662765486827111307478358029093610921694433974333950230011777786856003228605669667051529643599703596028741435778011663354919204384149535409068768463081105673852841839305298544576766186456871553884598150573131071518106810211066949013132720105879310240979054556797510805189619015760207786917016156145414855337725193717631740765160233738642397950707480633853155894996059901208992270550095802046152097508308361027310896376827845650582312017252158587162039772527566325283282623148914059529963434757545771988716434265521587638445411804093007099299657090434713183531878917470113616960389477964432680344687247439524974306140026583483988579415909049829574081026961379637942481213834561921016600898154815160410372471453955563747976414744234144380383780904352442051877444229841215188124830455399350586829515392541097696557242696755975152646239458385616490521472535404761188357382109400108546178322508061878767387945092368195615036455879536053047685835032072997625396711323294619510614297430820875983646320641325634865275306142370194290112865395438576458668776079402859123782614595933225850062603545549824274017584447655731621638313355092483432291497086350576227297642054526432111541495613501763657940631550442772305321201037004772243588066957769522464160088604588475227551183917530374198756565015150332834173730245689233176791097527540783868069696916552322762829870710401270821037862859883243307836077387398045645816927257163195108645168278230756063292833989146326895273622006738841161944263879056563337592812930388244635329057236746040814204496747035192783952446769455820735988425574243055999811920930362544970905036728327113963345306720048890211905370600446075309953494580860439244085149649184379952072021480637870625630434716222275252033955341232035361682968784969131843872780858649732599373117837260248315615051408507721261123344124327460695511070994860518618449284636727320428129297149307766137576828145965466037055187586859664179024933317502477788415923634157991508576429023810088160291169622689632299682085251998898199085832845854103350624885085478471060440106359490746190674223913317587147658508577937291789221037150655050363992926811674738365668082921797702141203741074102972359365663762246673239111950269110213392725218891173697939764521172504976764171032870241575119936246192132202476233604976486766046702783432078034022653083251198625444984717282183611046069616285957376265611719971512480631643512517648356968087927182305917552763399545474703984695248051956115977857338182637381080200393439373232106139839186146273584976594240485743360440973875723700171817501490792310868981244237103965874636623583927825687732657663297188378171670372587088478113276679151987447993263617446404210997814632419127930586091173530677170903136058092426853760497090958571282987439162688956907065165134485622730880147160080263549731518103747479805316730639425858522338664779931839941034155349354584980178102799964599815006568791096212135274327991036905279134159126177565885117662663910990644056144966164432850582920090141331451584882975588526480687180362090495165997154479977192944919786242819303001385542536809522516199290607294977762328146615174292043421869260273409776533840799315363764755270488770889017226055835543017206999121635768274074555126934886026748957115893723781478158325543344123810180872697295845680850258668763501418698846159367797728903155589926155631831707712620232313737105053095185063173009350097640263833375047473662443884600062587818620671294288878441452942951844007684565618356587339980488481781033882383106233839610953497628098915755259488471930812759761346023982656911059027062513460317089151962154714342113359747959740363327770299880019010760714531167819299862128009016127894813880938955215979588903859280673647790460421226161313092393617993511006224484444112175315603174328749021652706204005664544838502835171168444917791047129547161905531409846740609834971127602313518009549310439144273625185587026040728732408933684688032698750894857660013576108357005251480405338465778187005408368488136906799070993358193147481993922908032062705595139921284474440633381269511342034998729586347607001408991581446730150623042080207772476781602916615794436356765174209635215401066336784226434247863538067273425641620214136475215710860297740339618711464975797294317360926748520151472716273926932068433713006625710650775351446931021775942017294664496132450572348083801446698577972361844052271428459333738581847351703961974633675842640357331569831557718782768555363335343830417243679651494006935110516864528355308343341338726834829786333055888211035480667438362487824564782050563990077207068734661049598805183702332158438224993692456603697443834862598168847425980839650149228012469848111703273489126908870139163070109712781025077384845029057366941963622586299895294875965534726663581786771132950305045424826579143634642233753548473462220085517274349093297174463163513950537492956206465189482025241222554340806464968843138697393504801250798129140279928421069380391676862969863895673377216707662631642580708820910562371772051841149468930157813744486548269151627472766120815130834286490832471837557901668188193129120808968340076492852497556845043422295970052961460549759481468525778405248999878545342914853395569896993352313121565986136384210297843884050227398896559028716643307547688538032386944266957744460061279160464283945472749502557251113796101906476524407900672178185907692204580642204258024841333575125848561493047959576134993372425276189415381493167300843154061640600887248642659058471219748523946415947693016432271252700008849426248319986536365592937353963391942570598830029110099630609996787507316848081046814565886997346650047114642000356193605746614030782311831659607772939648506665646361474234410852398049922915109237509797791446267957588624829613403339154465552975045880054016929433169313258799730785363393021212530536111461242126160870200472789282458357972985226884955543499117316308908605520825594909758924528601232221389703827611339013495962744786626754906045802087403731293013425954623263593964433230558347672920308612993350135961335179467751748974559900474172783621516872700992228325744069640932475692107841498627153931509562912593886305889075669072943047324953824026763149743322396039544034946395608943814482149028194432605312221633594732562884741701629836494238610443045755597849550957873546381595977292057540566205261409790989424491838815055175073337610442329880002054302990765665853183187055585634182203004564211061550090973099078647745272556956473719030821803395938722240210955905475742526726721166206810087330807623593239373872163219299789951120466750549331321800676463530781983033726704308260600946681888589448042783493970543958358036138603866818642725984207557434728904923692618404484051542397712342251410708675826422946595788890420836497476305888831435942622188516578655957797008875467442310795123568983600807022514342158021695588840172034075770118330869358615118697386819288310216932627400352122921101030196170857229083295562415490593700417411718592753092615207014523136979726843923422537214899553454830322503203163048988056942094897069736373903535712807443665718552900755711188855848266538027363853471291616728025141514550386675061224795837399418323672695010226711686758930572530236243960698879646797106433758413310499557719083584476492578388671204788318842869874187354086936604022500880812054034605750027902286185938770262658831034122706630192050121472916935175161859727628909033050672308399691235740115437064798430496210599880894547052482336270220251149355579876076392120682146552122067843626719342269738433879841805975254829684591873126106437953743897863018880910579627459444350559962779091121591251828233934520828459728838725163950871556025279287709193873788562547219567742390302923511856865036979186141080044225281438346145106022877339844993987199618140492585143649667934585737845499208028368671414313543206959570883812238267473221070675523449964820831812232116177665473791845099217451146296600265323731556791780122691537482622479335842390530397172216757337791421386882003015884320870725932038580484545485991230198730229639632428992593319365948611945892728693476278845589087900427118497898990488013314164887311245044474184790520006590213287991502409707100581811332235150073022679423320150490724778662495565476717030286297982536744477503903404779195010348227627003143665168985317915498963631439057980855364987140794044482263735224410748843507805559123084902295291078161388543325680303631041297073310858994891919107909665650042419242300099435355535855927873609393104134850618530875739732693565642621852290257794951533301974452334442285699207564799133202514411478620475679403544536424333124444571800464016956734970523037720794577619565353144667125516343246246966948298731004988045690532105939439525656081788073172213814176951238182074986010688369447439391267521845070075514787983753713177813141683395080154635998258393155591797781598522707995477605159695300319658049835550574163132639524834964199234839034392167701119466252136548863941872979624143848591455482340015009059887497036454673299722190134563957572865176430402675652672938560966845035207966432164585879107506994007325315863013532854031301630427436474229848634552815412974541067498044845319813740117958847670566533086625526369176088088070388324862175813989328754724633721344304421120732366594861147341425241470338881395043676422037055963159013700564422234853181819766750126445347643210914257140896652808904635352388544590187654667137345741609046100616991239311024078853786831310196248322685095985184837699834953329222129179185226433145792045312578159257332866426535025616302118619631875391727748228228877341870850195515138760291490227525531367051567623159386488789790493405259685478162008946700848332425574601053190590022366793419609121914261945057160266417965465205541379747040373347125532009927804514866599980179477738128473585047771280855925398099316506649778816544894773720025477649149092049976883098406359952198637342898347245358357418044147916987296615211329465870220072937872927512825298583126523100367360926001708024886821972758217056469732357375208946104014341773446272856497715002059076630458253370854138037840961506342626023601910929220453677924250731885887842565589933571940425006050699239227175178596147172092752597859134312813595544620425004164748124620486955410109037557250691896782896800530058624937863126812096521452323097703219343178234405014552297489393035913156924225455954108302647869694139071338450022749004920492053940605446430809138514799370528573419328313013795272695383922680443566193693109251259099252021746305487415353485199274496765366136158041324006114801537172326563127781087303253552106899381980702757006181548795506040378801858580056777576348582261517055952094794170982376642610379417619699620823930754346070287558409812724332365400936234093940129761157800402918022793971756981329247708968185867983799903399204428127351060584469005376267912581308446675775088754398789887719152335889401636102976468830021685770181510832811624240133592643095617282531457080909601268658214256200199313223377268812257876053057127535955557710981366026562098087477268310717705797005992462577586352626757864297288831860869465150627081290725294903766178840577875732741761271275175403250952196904219870034489505942708245723154783035829647718609058374621782518572666290621442738690840999667095940971623943007799173788517067801623121264552611617605472878389881315068240200821547507350250941751534792502249956384768760487427124872536147571365645143783352515026521460165722292749489562437303527171420063331496857620283205881328391556375612604820864865334385755324037444633568680836607505271564029763215053869468618135482264903354308511657431121275816360140912445178874992278430559989984087502044026398409982483204096511935241289310172429144200212798037364335186237660937954785688944752009966693876512929214558615006190263904225883856870524157360104563902213121228588578147251843256554480276788859097026467211326447347176071689344867283536712661385795803349988394794406256012911881693921881308510457554446553832741648588651874250787269391668972664446031774983627283763139737068798459097326457257907553206713896074837691874962978534557632636317205083005807193215614768986861956045162853996043826674145641051570463420101693877981857226367227845356692500460945111939685548508826049034683049416511131251192219644202671305389275947686322755585468330244482926043795627352052891354763491848060410487664397013884168070189809173966048093855275319982334566944282341893666919181664672064840832120709086322480975962989814651985737731372929341837831297560622086661758856895190832903440016570221554898153216163656070040143701454439769629296972069809202090866379946941579370848042500065553655972519919473269470319608915010190221408541259824302314972802153659991426352760647204108401423279672606146653308934806661338037684368431429515992127469258358117492820214333898972160995375588920455250278534684333713109671166716268666258314305745007572582042359554704884488808245908190746427091233629182410971017070234669909004129563314879077510661421748709035804849076426979392939195610549103381340034605594406087772141954807840031196140120505321598079404981720838952339952747441276000860164357525082020795463243464607451797433243447250935085142410020448786312594804321459116032139228561024955585841219498066421126644629784777539036364613892759962920087683475396857975972496252365769520574891574279682043612118452205902612200581046622505832292953685279400886518493124854526734546343619995758407457131972451638675892304847265772170408977026990868750627248170365496637568720575098302487362503851157983960592327929894158750458295216532236818432021562205758316363855166260444180015452437645265065533560152458186659168844523465729411086617263708172355376793918076506030874900727364516936013689897882172312495162933378308577813561315196480072103454921581966763387547197906274300180725188792709548090455371397393579365299422777031959979368254378346405772915812196289212394499807726534844812741013946289651400433152992195900653683599972697769950126921750448221872985370961825135340380524644280583345778847074801560436359346407983126968833858277195929254589906332789246791541767026420055645199528581678992104493027488981830277657186531342732493030968809112549459002498729181442364233970272904588296126693917354621328918560576013422629863713627549717772215234651744006694727124541743893883193020027595545519828316244761312231147229387882530213434159604305994158881536111280383329870769202839479876542519419737698155145887661564753124459418264883037972543807912997182594903885296944134545753266454015564801031287666252880825411089898618545644532252601292489719636578497139662077729066027426963437618709942546464974165557168944882555872960706159778894886644536493080207188824605171609387250578200634993982438423593019024086180714514557965793147775465230647498956956766246476513144774145737398808514825228417674524354138603174550436474399665521656188507729288218541573786207624558580872860932416614084752488066191665813542284927055227467436590636684747589983733895395481715930822327084558058199197282541557746429240533045526733090676406760796834287316770446398322249968270612913569655284593823073973254702138459715609754164357205273726394990930297504942724521543864683341768828929331619902018317835906023228207435542615558641664230806287096731291889853491989990850822516660281450384408352077425077581162377545153883832189532573862956414775066357378287748240393766344703039882514125150621917405788784867638237464177891323414149381365945755242605096072110976623907651791467255781791884982942375079971581205749031269566678486288706224741611229323271869253438633615226295903803598026761471244723375084483603192121718101051024564750436806392674945799679215726723264581529527079585398820906208817113748073328313835168916233869379809637433049944202337564988431761562365840600762530656451036867839179911208395620527092446413358965388988272600103108390264962042772340188742616037234927955834840685699352359109808677078707030456963385443863918296429322730569763023155606115192983681773732204776576509705086268889437733096258352687936152183372260477380306693967117620004293394775240719289325992784451674323451588499171449955078853234665320662286456741173110293794353493556357517553719027003887489071509319718168450362402546340582334936988399956972754726015134794916270626969933069349904757483642839025837283931308902672203683710275001165947699387777243548742825977499986957459098674517910378273658029459767962221593105470900189208749873558962954278368336448797381953723597741390999348737935150103189087271570810043875677366917959212799822246526416740515459730824644062876997572640255217867670973374557602866926680449763296125458099844393672214505615764488749300539789919935098487409915339811475306336122192672599934155171176033513617083592059423017262331842545371701241577317226517689334535899231372689193274028912691131916628555118871899525311505127501306942479515695648476505082075393891937463493423681871674952538411630270133944225584158362072128646381712805024885108525175726189452284524345112934275215326312625068991699674356744193707057578804376195423400465466407572648018220427759713394354090582845225489566404187481481659218524319874491755037633390137966313888516399414343230567731333177760234632799016373837446534406131920780540547289752151986112458427062322726115165746284012333770718412892728589570327184920290997399784918399692420092049360909994636609043652385668577870929842244467544163969496988185854566493866806237219584300084361037666099624700313096853123919202346010719163412163058747697077752422198090020595305368890652100005224879665792762618345710363976287637114216735871278505778124359936110834279284096893573012245021304524559822237645620658981708138211290231637721467920990842728102075816041273081265127371593509565997956060851639363641418577307973130677505069237962289215020799630885522181736953191949688315324724153004028442882592569489409171572309469417382606707311543963329303935738470917199278105325688052652704420678405249211287666999538416842957757442593941633504680622574862125712012322973382302991259108001843275979504328524862909159428031221619646158880780660147694790480755790414388489129820633010047700436603247815587860087896564390377770035714887323732547695960507949737230176574008666656487531371719276574805023130763460956076184557031557521394917322320800357208306426263582792400029069333918795278719704094062520146877058141835132155849410642228638746415458365499868254145297967939403573339903984695286558854254171067348185071297034376804844925985815510297115473790124703559211673057764897871099492804744053506214456867373400351229683098218732320748666694593110256821233545349197373743421876450061774504123658376141921934154042248500831904802059366061893291559338237545162902140564142659161136573913123470876942301939315448515843042031645549087938572284042570464262054050009571264629131831093926723445805603412615033680497417035361583933566756559247317017117777406612689384955897533678672018037306762809731478267581858186844989085761139489572196026423573983172924102776815217479174498675424080871401706675873960613969885811166757279317034869866682759775013027768911925924027163241061406081540975273498900335696280456850010405678177363115102536228627462802084706231273504153219182204616699542115836997858748425513342306530383850250635353466794051159939477044375017276632104465477993410342575983986351679586444764494181400781503866946019428418951315612745532979871878008902184953731421389636048802804935830921192427022228689007636182631151857580216623383983052239217245838658192085240718403226733587373193355310798175021658392868335323198643329115000408098435086488392787412095986667366162381273389960280560390058487994200985993005538805895050002200954282010559626608640594971711197963397870246264513566389618125043403135622351795539588625880952339078894863029415437791871861767030184398449312505227217778666755432771782924757588268786928443476168592795988481225276513964468835507005870840936669246128562929201000216883513643867744267682090354452581044024047641570023657987618492530198502437275572604365119425187575318974064293569128194903061909938421354416055293998087951114965200839292031558997120212232533164343352440267916615734697554159746378277309061624449643072986130980818718645946036842371934063809216959861046425126616963344521845666657064974149925168145762959487453458755273687233354532337542333942858374419983844879506294888054404330998374944638076023213147447405332832032289107534749198194890537396172181228360289757069130079103837377510679138921403661341029187084210204624555994942081200322520302397883372837862938904542674358618180415091040307776064309465272412845037669364681406947804333294620523896110729774274731872902500937177627653987218951219898030599473871857798504366119325550951180577520639610947331931471399107052200209761383560090477693640635816374965512467593205313433842870250397176072717107431912620398005969119800068543650112039336115992776530935047594585619238155341833852808352248842223207630786097482643281344344278679207575652769756270548506016295858241129829705569614438493710647990454382252106860806735556663272614401101328206343380041345887858871571145182430121724281158984815739181504863285199080966271809531573794604953301794181597231270700898243176739744801948154534608202055982908963644466616366176532079012840577778970771494696782755598534743747017299626040350731936856255363882384794143183974062532659643306712529155254139507998092478231359048763599271355034246157282379108588788182756771539786652996056647057154679213135422385870797039185150710109878457930512849244834192609320782747179122125505320503231978570186427860082324671737606374458720601927467243431699279064757823089297717025392649079464637137531701709844452460419471705240204521155301341596102986529858685983530957973386345369009557301914784187575520463207778847458559636774894339351636276516676059644768380771050113171598863864361947970154966860550821298401436589565474296452006919925618227057117248586959820087441209256754272733871500476631424569333434748658347780918303346422329680383557688408250017982586636870032781685664975493053378644269589975719642610499948919699421668321243224034642477332737296101413750466475892621417109018103251858769567992828736793087730194349819805801602492871640740281143687569664783310678206451086021158774829804239094044828523943364800356409530929677186210322470705926210911807803647632664367753453843619068482454766885448123825500622390165734982436534287156979209532198249630215325472510045973375841399636473290085192821768715556153109980718911931162119651688008350561101307255866810950218752444552726358964113359538093346928177402181696566739049248271804477816884961003506081379928495170660377619887022368609483260480042651618198681841075427862903454036961686256059222098875244161141511992336997325309270959644108202113438726039513525406541973421370126441876506067472131338382388933671721835957078312376836287769245603648244422146989938968361333530812339256416380797793880228146329313956407412665311112038179419599410541125322956644606994660120145667238823252341731344132625126020640849411799400524624973718139175310602162474753056363368400866016602969841607578692985951460652427347501065304060502743365934535848373761426311264452003685842955894130109322131689153382967096841277177193630955846988322657517777483531019387244471872810038392847317085092205098335186603581943085429514571985623507223342419905700342899469548137805651511385460893854306662298501254836785059606449588499422981808826433726917909802393304304923614874864155363828547092267652881536065588146230061657331603319776999314511538032133218835503683256861620960646420662253889063074644919352028543997360828405030842483720061493993450974042395962402769796103574954704300448685300650035855808701827673053739217719296289162756611118163072829400064079418617109041719052999069516755872616223121859495885046056569537008479857525035582316164790816796788956181586473277530116088922346135173565945181118833453725931359968494430913311993270566408428180653939074809446024620019994175940756755479162791323112846451549292302391363743091855698143833973770271818692924087012959876795608456697641167983385673857979330738263030596043790608967513573107678569763798806963885826568883629252497616867965558424570218491121396615385756203607389814711087152946820187700345889881629686752772737053817328499826417252228252597362731097082914136174362934141565574663396577185575170526758244353232729082473498422956479057216438301312622581170955866617535433291915942578139288384405740238257755687298768356859478405612376962050849248918063462004346241334885363427636299060784573776498473344093867377605565378606026453791768175090972809740165755704457914421897173516071572092060944872896252526709144114673637218054071812937518157591242018382329004143660655862596957147355409167921795315788798563322274512165243228547829546246056347809216831519278028349744977444978055594036257613323608552484811901909579995909407785857116853768017103908760536602904170103192948191587348917641168390366694365662788513175248143371966123788488654664699204340521367499436332035027659863895609698671284227585302844557429619584877845086934639018680190384652563717015996340396405460646373156969239173525693703264416748666552508193997538433144930670796199140721131862496557743960571730133683860984717814276202098818432782025244977221677393465185387837704462297075814816813575176737305539493807972861354466001021653357734680856465120803686983047781611038747149998874216013153344703744817832317662161336943333335856849904955656099336356133312091856318338606904747244341411931518924018952838471042286619373430808678644369188584469436581732694474292867572974483343802138710209270977641034365756004881492718258273253231476373851994231839416393009059182074558935630232671866661888414912316192907928405960347274313999655262084483075043094103171573042123405453661776746857352596407722617729982754518707607957285769965514248171953486022718896002041901981200541742680697669564752812608375505713039771607260262976672938684644998776198002641446434653762531369078926010833936428390199823980296061367643260002147099562876852381891584218795351446321179671444194036196542056934231936134210167079243107021314586166550908017371978480847261470295407636214080314518847727504587252999510201987486142554369493796591687808314092539840782125065215055482312411581139952111494087323282505072693774010211606361855029474176645056983381602705958883105438938412995009933470924653029337539038796150827244304714281572086081677878178243205070768886950443223462595767148643477948485404130878795764795693138337821489091393618220784597542981831391546335063798672364771393619411251230459994737886902912803789599847455846458038407050012166124723225288675974311064625586147530146180673573719561172035047105155876182029929156335934285032757208908606712260191926996598981317067552976372288327109669131829244738485730061047183479274466661434661199739361314920698576702967657605940790721300282101263092039209253119255677870257032510663725708743296640424812679801486066875297684078615362364660154258324013297366459800562693964850124636054394673900899932253039152978611883194781018467437044800190937144765559519336901553015138878398825483625359706429359680622373678638645116255796542075313545901609064461548694626774869161962138182559905840419180948209868810880875960191129885327202923589205127863363146871612022820778265150755990930299686336059904479698275676764434823775724726913183664800981359202286352772056933397763440946267261940224912693024505561942302703175583037270132895127376678814593562055166287901581242648593527925890691984166860946279490060726479626233460071732619259967941461421445155219122472244673266258067112854699616537669540243766588534064487105840757664112229564063842425288911995330889050630006174979379501758582927828313575952976795212134334126269343393866545686757755414308335192476710042079270937955899944408868083317424397334123465543896450478531432469744584096917240286559365129164337170236662471046057746275257315122453517103381271156662699658727779335944167334077281241554053618794495622821613647736611475355978868286374663739295802958860159656828281786850267734314920710811718645603984922957717975329741497364674045911528400910268114884165001118723243295474463150872349197966216433612724988428906020305849912572310171016523921587182019338400597438532912891098705466875192048666598906758888492611087566519974375876345858891666055462621191989753555308445524010277786449537266964437625424939771155791801396178734904174044170596078840811624067041434075338474461369718583681223213555895237337242303305641259472137910120242931499013875095363696353916938951890603443750489519660182793527908129778077797648439534723261902504416266612417802570667663866258553208687131259594827713235041930831445554573654424658034610720568128055565803445568463566939770219881775150957813419834351328526415573416596176532700640689027788765289711566515993771503409602129276918600848448140701104073940718133797778553479197503335107690477378713912820785170838381690561383260047922479809087432324375505958904254451610105719067232628786393305228008759310139841019459425053116994708816342790058715579552555184954455202311810824163085212171906512003356883725201389518360932832212082278739579911390499308037012466819131459896551440257220326220007369396486797124613518790887513614778674804882696740310749173408153377908792448753046213743105528427789992951215029261913943165868874441858505409375250258697148325610461021818307721545253215901730438137571403279429177085183991710142867615097402723180908512016112160435314590531967991529807489466220654453041777985505510046964609029940112660060860809904626363212473819055059591286172015177609703006465824796061797588746746102432215484993984610583111279619536684805473140643829506440293206655021231498432495105276319568279024496523463662146687450080063378283495515183361873805376655687686999426674418561656603819107428472245124084882787304176029420574799890000683594307324265163661068291891734472423917693201119224444280847125885299462425310509003113373428170854822507059002706073574338990281279260422716593517256205731945490550248582033577910960358704546473673583450350341650569776134921419981703255233263343485526711342658788732234588416667251012862943655363207626436394510838953881980385836905592667057398606334848873670864276881921850008361524790983274520836344166309448336405840004635272396513980404188853104574759758411438618675976156636023269594068377628040927717053527012420106300615418471104080996795122416833339803802088071615779110455745026069262560351249096003823729520437317518293289853356785762538653791573069689551337872188717378142240745735343069870798128376323816719427314117883020400389012363121287440989952022623340686947891738720956059952321223486900409325213009250813055628790181668222759484622701199030857498339590962987211609583652549653767714462136352266624111439776032949080097812662800854802531914797178337109791470475148124391799548371453425649527454004646770249140947340718015100865277353268448163436282282928849885851517973062754731333165056097485429418140356783720982940813140778680099139046943256431605206075107302400650877509833629627444115897041055824642614749579368671081570463185228600697472585085133006539420901007696491215754649813251085835778321516406690122939460702426623699983044538870323832025300402999473381887533498125413789082793438763065399952866819941538092854972733731481567645073159194270617482684246468222882555254458779195159823792613901104923220890170723668528589222028669068169580251984500106505544976330461089052333115756359586464864026588405900390456031095890940761147794243617303365140920272618139609166197376590189488188905499800535772477600923948251685116897752500331600444011512953282430259502589444388872507120254628294712228636296118067715841588695107154881572345660942874168615694713851048051136558893793558429953821027635639249585902354441678406272257347971066541969951736366973298310604003850518799952784129027003526208678754459957878860554388972089295367019910442611247786743228843254874242644729959205437391235006075661016337132912949611592699060337530260710340889378837883734641107695756434869177565970202697812757796865346691435412946254988891570438250010941807073621624735223813301961363245851904474909630363596509408809132640282057165866823405339643320867394936212515439842065252359959486901261777482556735781031774450243280752410890592980431157699466669739246665646919686935063129553726621508739953633397251208491859754874471797187962035993750941170218182727032284979059422694240619261462069604611797092231936948075012149124134599053667286456315495068060063740775889345509047931827075456186223933714479065963268727182269863637699761655172617270893866296529410539016912819784526146930295817827454432931069065326016640432698411573381425433239978356096499949271512338157770617314237853331699404384187248017017546588714542682794765930544412757640204905988699193018803409246861057065438088056487671795262798744529837780883086902277774900266029577947797516284525079613636729158838923184004962568012866955292678750385941812248313520003159990297460967887428558826746872856915722413818470885324530865346737148990158519154373421943351742116700537847162106066390371788058697700317163366203668767639790115067017154440989806100879286518891861793234132135189330975430189609402879620807784767890050654583898103437354345485206879529661337703933508288666749971926688132908728948555149890194463986028284045617951009390221888657443879478550513845582229352250512500637785837373509489830686072070683319699508970707489847964158756790071324384548555133612292149521847020478441257304841009147231972601288812785892081900345393633206086172593442561009345987841762067677902600238212066783894966579655917022037634070863532203058552062556179365354906111700628313603509199258781820814812841064166004466514037251098622985770380472150936007399000035404584792704674520479514529834274023383776595664772736510162724121215171651032787209325155923425874034477300566386215147464178210282389624559682280630359605522924797432894759705949025935182543070466686478899889012028945358115401163044504160611409775966273184310914535887077212103687096581734985722530113232875384275498475189214474333853902761498622451399422958391052492380425486064847134990512393219468365255537471682597234822711309528028587893125548417860066406914247701285001042567576909042547234164012119194635296589143876239635837452350347721299745031159688685082407469507330914763024883740712263203040052103330481829235786868594596442443660710034163411795337160997362484974670837948112965585742424897201684915382486672160122761707961153829715816456488652096825314086770750315459920492773279373699719704842962681242134965911631445573999197134925717237382915709683368859551564331951433223901803902637956517474082507051988412597842154545759369608740593184034772492672333421456049918298122519999859629498261682359002376177751874960749222575332066294277680468680708718314400698711806765122892474473187734746359797496643735339912427683893958862500375388644125284158964786897848530321116318625412697837272788596010383970623762255556953627038353452787627898464824967891019708725509371743822457497960982273458760622272074033028819716624355298796920380227394922091538311699314562855975554108026425707053979110189092020664517189076642751729543598797493257743189634696698007686243454520472337789890394954775615847212466505660929944807737311177641694461481188942798177537600237335176550225763374691815107371006781282110260370950304316413118930185051925284020203472119619808327336286549454560720109175155475176606279927921290198492809653912661368451397503954586357877839238453171913455533905133787455633239780623692738680345783913312350286288499410060509587842729118834221101608328860903186464259042773550393251767789447506987882005209154148490567434376178564153924045784536584409909006753554428219462634855076193928313969727514694759616723925452395459173023777196224704241456708555850388463497630676985387643720401519560521864523317608628497251528853632479783520020545972354953158009506550765055364191896435317549038382816347068514480018508101221124671484924618974656667657057485931596702065858321786449018248645207681040519194982455746173212434336705546429010029411277487131195274974835198044563621268426548301214484588052262791104076439547511912268572332670810777518922950849024578948349647760568640757560423917813730258145267650472209483242469181429777113753932887009717516101483140414232808730886660083598636389977651454314844343617740674210489196316961257026354283890228627358914428563615849853313126459456445723059633017532931015884220030391046786751258459575482852417988650781759658865589354437395316106879389241278195969104925685680026165278223818173525380324842065988461534420867324305244128904863195161871642257056246597112969256465399839919775144400635430228187113995140650247948095658656010860884643859595918700343393335902225950686933108340561991541720818810040408335692909375389078481672515420010245634484293998338061983117094100527981138445247356826773430931316265197282469737964680373275094322142987121171942425849436761019219276027575187714206061756959997512342551994728456447025727922715243709118737733555851895616658929453874740041337038792548364878114811059052689684112530630051121111557934432865804497949266789844880930135890279160226555389711669435155679787566683060363069930663939919681935400061898487168610520059447963343120235867829226030519271983360117916016767412401507264480541440096010366887960110354001866310605730231363634495453662126348030066768008072653824923171053732745605507585619959990888327242048718118821713354099701541087204182135273082982782378264197985236583913722530135066964690963817713892870208159989542884739905074222599275816214805206913556105955171209742952565772551842419060710792540063305389725412429104608052001468782475783642584844176261365474457984387315149536361074451697654875649767798687282370696459059519892696270969839304126952688641415150569643871283136282276095065546450000567032315618598187136500380286292924074545782596378900765483634352592054368569669449414522307311497156218106196132104171210662144308851505733670582779734680623713042596748200806108573062422215967804492046338830369813255271618429600502799572065525645692555857036595880104056843502352420744722753088561865129311239257510318772447504358175648087144251615485212283174050009011409408394406156777600866073310749758792537556578012085158251853882894866617123650848165311202276757965962348145187812727032313798831468076600578645933842784192863526067975377284003801083950272693956525139324173052679129748038556160044199256650936900757806947243118335624946939789825810911775001391852760918174588625413866422800468626049270147018857764555657363535490104252907945605455291409658178423542831067624058398335822830605535521187789496720137495579647304228105269347404044766196224258193745138100060444002594229036313664114091462162880543339491641236970962961380945626755518731226586182869842801688646847717155629591919912038417807280760075325392292140314336696482162685244217128785002622492394891795518948735586223531716145137006323995645635483627696456864500851675823338897677257167569993476788131200153324858765415356094930872228084025088080334846169443565382095857000897597191036828345632443627311272055693541130774228794726679047062078659371351211934724939693898082364819001560661333035469994827057417426591732833293950542208548902997553358909347253381465873984814560044815291907359534209321064074934033470162467681199713312639408504384043980579568999067743819274091154629036996468704010776682082061457464878185912712558383377439764784130918279424420580931601168721543428880275967557934994027441890355944364734155613429670605041326042855453084346877223969315240117619193168877278219427361580462761485848577885348554282603072275415830063177997365099085105556184017933994532800418147284718219077144334524551579868876076896396114258089679951738696685704185700748930279532910142578177097936886580865723024529176510290381372984647182148299047613348391762708949482237703289737632253706682057334354941351981390107599607789314227393125807543682321726695188904082829276369211892376027295186229823839477895696900522231089738427112177107793477447026146707473730976973737440585549355205407477279438264600367568479794232413615288539470010179158589199639025983175505961871727408033019991650129352025904711286559242503012860038283446112680154944610137511364781356415390460581055218191947093709204762907343680314249372633883939681972197152211862501730431613432654985692167543689059878276791619903813928582343431727885181615753011426846564097005029702290744528221824531386940247798949918220888022235525302933916310004920269258616607490213033510778029424060722857570255802550154677014365510348582023894371912498135329836963911725319851925723744744909236346442516756457035082145835158998540838183192251897391716396043600114530352720980969157526607720273469989187202276894083527108798285824975174552975975021735632211728681755823507400000589976795404185822964815155814742466801505317312198811804078098479144448225006887646782356530644667359754997222475026085530681900581179317665698514163493828749899192323364982232384137562914562501106073998113831243844353244660908570024626792867075607910493025225792099752863200137782783644000335459504612858004113630817426690899046200368197728560359384195597253534312163034347100775765940184983007721501412518677561993924388465947698792616968604120302535250712645844464592080052533001060741520637680240358831364134991167780867592617579356293964057418755196376246776623325214747779848551726747803204135589095139219768506070548770825356879390471349117208000997648976426038959083518813075854114785006925081297993922782167031315179412000517942455258945925387552463058363584723430403298590212878493709874968125027661604524079652221505747574946288398580849082308552638244143737014963773213904974612084194293092459342545518515468856425564548755314986604404472038243256624692546500240875808127741286863137479045605697503635768973725535016551025912934016236813106680164436005283013538245628374038020799259051709856706045833416472622655287822139052843886892072738680069787697261811320680059341308917850556248876060943952482691562376553942663421759385092298583810641590078891643641105154275575304887849763398993861799922232804625759637194958115855229172150753696173981918437597629028029524871152878735789381510608489640527943135308979330133908835083263412038210107340689796823437133160025113416242172353434095563378036941202860909070239171967843383158572277587234960082960568924432957415139945744070279590619141569737305891968177181708860921678234892133084386924991805679990735624374261944651348307418388375754859146013289973886821697813649819076765254903049654315693274764315612955977585905183767221955757936737913177653848934600287727445620678276340417633495511950649227141198608065961522140790955699745830896938052191733225172511544126037322829460866191011352620911329268467433537287065773862271958854592193836502742983030589008006003841546497626475761719581771186224823005717278456772489195241233378960947256060798348292291017823541683305154075646392655959664977705726239699183238957219806467026269184180776900164372016891166629577307621050473941219392435947561919773701620252292668419061082865144948482015205641806617062048244622261939441785827939011203797099954923999979024269954408334195792233511812277710159309748222641815348980009399883624545909761094153976029241661220359723304495867148204165088900670894513408819001797511859648875788280406000394032835727313668951611702994029048321554314972571223720701678490271151305099306704523097450660476374551044632952458968163538501804235624251015320079433390361797855477486898392509074635531835952351740952363036625059760087219306773089047648814684763020865002767498325500669481571620949734479958457827499276202668387050330415385989690964716746898471219363485704286817190663386421188031273028629026700267290252857031083405924312021184489008634793125111988160038879954575888789665328494831430848822167761034212981244457266311699016329434957021611950340724489434541607179614722015050209740615098127091218228232706358305278513851907664955774954042583118145570670197016823304011844866576614199580896232186825519557347969259795619720492451956920032533308019418626422753190398687858840247210558351778677586966707890429438351995019700228718306867232293336623971687118056520987799395352251357711679305265854578402087351169044734774771090082574918310464627189090668254580057118239096495900186806111239933571404615833611217255708457394457663829921140153885098383279334819755357619627596369518934974997755487080036935567607764779556418186736940549457394313315577601463834581091473593682285927509498465419605781434741590804117140821557204800852031171989063855774717437872339173275121204628290990231052497032308338457606208757466326693890849745094799626706357518603177218538895603668211456350616881271909725248676254653160194600876809518391568451311647999248452349012016692690005462036332761062292919761669744508219905177560027279486186750481940135795651861464546924311846535726915596545973270302355304996583182545596425644843033452192589363484456423787385994277391903312414281737301644042229180324381530922162408409266325494386764791484366182233798531175378351530586751444763511302537038963947393210206579312801087027120496564617473507041895028003398062231981558560741980680044889728605566017710201167831001945457524143227966571785815270094506014546689836703891034458209717060479797978803217955635812023707040126043439155233963566527866404158117431925477739139569388591414041743810115374245947516946235768038695199835970173261873231095653484219996076333770728547124523351712538190887272271918232388027418119121185673317409906353584988726306777591459252713683316536796247838212745275786039069270208869603326644259149404662418748044382111548223793989089934496594757462452205621887831269133726919649573117290449328619342438202148683200361114177471298549208027160456088462171658314731288778305676855763575210510841859406182898343136321160843450027069474955022635822736224688853255188187628870137441377064446633516097365663807329406071864652073276600373700696145518562394709072358556785904395638011955944814891222106044439969627719820908833693118351512884721362680102610896180200999590588155356683926617587479676731387678405756520380451915023195824866590047742794393630312877358108814032864516740959506266009784489071271091524499695668347317105697047254129487341681869303474586219358649350721244850306495201630000930447322927074279264148277210834598823198539619723806989128821782646568344102208779628672093618067021471322835122291541337545216718601372903785148931957633777666198956133940362142045930447864959991673641680909244706854627308332325221398507221896037835794656650978121589858407337228788036580533537474659480374164019311794840454861790885618650271433313940599787813562881502544704180313712772408143191532303382597615033380601683949485455194522548920631880361975887786051701058390173712621587075893898730070177153235557790557736896565261890751941029501792863603392539198129226254102225835423806841621008947743108566233233012597851868153113606225483968062359429868645547162076947442516020974467022896625209990561764549230062424456133040722314961702792046405416550345603100034212411601293121762357372878092245249023396210323792424782597029593586360936739586070484030366336171753237953072698054209096548704386957443992946450835533839225160084936321181496684166451872411422500169815413485827672224389102908409008999496596385428990558896220284288365443674206892504531471778425276112558106693600920798450076709539856466489385425805340623443859435760108950571972630973878140633818327881259705944016436033544181740042059915065638562758071511226197768345144808983868664769055827732080136198740000032047064886199664966499931170132112974441353604580845645926877561229854534601186661036563972913752404127953498559938507479137505223245334122199900050766735348893489275988273666332124095354696772653071810773496955909669980933210545717920935706648818511134635898777668122577844462229109807396018221576360798989411708329469193698348407274251554830761621534281292214467723319550270416021957658120256639318900214497863682644416147043009664288955952064684815603907131252414117415072093540885199847119449682120220784491972520501487204956910450331765336398953136813151926133301808415832497963278118717642825739233726831725962424813740238303014346693519061783589082126974919105476518472146708984471070582859378966516560589751013508759729076972913594216278188209894529932528211055963269798259198821900662673991157994219746348435675175926639285158544329542273102213239693783485365399824413220290070130278788878075994109457263776341599167176537434303294172111500884593299685857227239822416798935924502700564631092230934248548056784024278636064759762653889026807598088321407154667049234995575029754513922506896541308853504239828114619321073440013528418132430587529022224079464221005526706431720950432556677986986446757593619181868236015581382654656365569613734861583212054895377810210164921371046229315602089630177018322999595546942669562216051292266373520454823660688240897185559619084525516180622625368086114012543065020144086144328259525288567281373535565416108012553713225674574796133557107289890089847737016139505578706069074467540160593920066646333716471751643584477568828293828716887702775176423489919092861236831652633946578658805529004969784618614043944963663447457306308235757084683768500526498341281332578703842777116610341593582512545852843891770444441262519095448904409810503177777153607962700217167048344397699633026710696797818946881358696445632364151289556534607887536728080327310048503777301114006298754318213206231713736377629084157871668109772993482522489537758774268073537857021536246550409854352684366913450824996570662084663459931261592318952532193283573181255269057821130325595961597293525203170189813066169359011334775700775908051166034920486894367226199259735564837910744241365387386444068094489349151103457403839338766281868117128722842844262738174494716637205191064454618871284062878240841226499694848513590643741503102569341563882217457037230018799095918014792572986256090052674654574416579137244663009553206601636346781514925013327210346077681239207802621767568439075266497526210527563598934832703320447996222104515219971710108654809859769476764894077882814290353622669440068381649210503478561639447419655067775546429919372281769794333603538010268262668949054689861737733267953137863625108730728719769475100777970193759366956232282672372408648191113141012873475279499631922084043267181658719884993349394507159423421799347614188568367812284735509617055237071705013851261759366353263011966589967628852576529083778476387498072981519176384170638225712533672982763407289550057023367866334066445247701931869503273310790657631105587080800978024500514302723301860766809961086466234813168299886242824019391890919378302156860538227521738819833713037040725706726431657017327203351004933870798966116512492340270296562386941937032070148355590739972663661134571295826892643318440054741931487445769012302929446497634780901072215020785324163116037930094321985154105317050614857856390624958708425303730125111148672962256370102526628745781885758065458948875186301794193909023998213750335362191971753039848335366646731226032374249814384939222719442513827291920121999701663669951127267435804846740933938318104223247334878975448682744153349906501759676763594204190608059036184055679284525081356248671331112633328360245405959104902452308408007161376923954685519702348658387631323895917213937891979360509135513060210047533137463454004248614735703043008982260246355219019012797654255099714519769239091975272691505407868733902355685934726779014733044174459316298706268538120912770915397736623452785922246354433965664126797836616679738837221036453400204867722040587379540029847202426636834582538871005249307848486910286283884891841338947376814639864317099512251070480240855285030766582290970857061197437681268847861061623351665002345432890337352296013761258543807827086406866909875251783979972963644654183393924893136768179276468115313057622754656734506909830568964392994316152086688561693077687293328615023971188755235023206166323452176412225587287756058417075678870354284978808975305910170285200825587654864191808275866070476463780988319547289293926575660419140384225327308313428297487677973868265168010099230026788838377884185926830337546851903123586502110238126601091752033710784864508200435785443885966971670039893672778669470281336552304874452970595598594751345331321447310902152663854758436842004370376853680696482276783631396582455671075844446162490352165610470133659635586247832675847571929790520187810571048080878484795267446219822053262187718079934902649154537357377618100575554825166165414199179994117362798010173688621281012465713222799696459040201100949564443970542016528604424030577090538691583851012345044870134753386145895902983641189448808443736668343929416963696107608405306829666158848602488250133550412443740582109941219607885568942045101788602844501875056466630788909185268954526859202603612636077097282678999296536566481104380151228973372583515057434481970492937025271333914352093055485656577512873682751581459118366141126103186412463803486472153355723294110231764489603881545099381532786787181611745466522979106304983397538682836099715304053562123253988617030202632068811462613914288439948762430117936137017211153462510078116506168586994892335986869376644143881554303332984252395766617220992258534946150486985373089326378356269481964625542539666387669099289573406660599774874548497881675581794136715213503439672979553624375758902372303015108225650986669249549938974316996793623871943586902854685920872337853192811876365810192002404438808989452000274112115183077385418379158001908592584885285996191323488072762162532255771109933490070078192749235290783056032515763026789695172758124241548103375163381467098318683101305362585945975939287381040265651117099782514744134541565025835956260739645346670174522223985783168143112505018195790253203515194826603502513066651410533860311613967049548210868379119830050094946396884157939188108804758312645950818606363025814253361637348277698012414090876158733301654261864251450410320271282373371570408358556574647976935730047498054296642795635928920567941326870369223958481554317962680871418486693912935084651267144852796350046187768345516254930683820075458700796413156161778741440392314596739874861899526182751154508687849111046892204730038904032272158304326884997465352110415547415869946346663024239969141224139481219845453920037810050212392582692672574856454094492570444622150931106517758065703513987828532183894769895939144523243097936693489131783361452867997199071507867569036883507537783201397184468473888156524571674796311334059328567740363877822655916027200697226448252095828196737117069211146910937023474465708689102500160297180630976264960826653652941961928666105429151717280272372291131896809524190089948352142669208893752718463000955023974941068934519287633936416338432132032047272707930750849046459458068090847566771708561236760253723647382202630820412011142295524730417581514963435914812948689180084027582855674343618432698840461737357227489041965563228309532254481209593120846718732083336050232157540394931236935138281984705610500375946189093688173702038868984119634317369364384045784967191943340696887359180443778143978454210382040868319323917690307679732702253113463573602365811746716481813191656389959947490868287995038089561104657188280545488922156057897459362985143377753163089073491800630167539114883808355347955951549015651400532591806271342631205790020551107902950337871130271091097531517592174587421483217546873405035960329076351744366161246375748321436713184721178448858500113370660060613569911608082429035520802355445885076217202753722611096078888768961955472398361038865113672527571440640755567596017875529719720538463210667411332270976594635668180443246958945109219431835996415079583905966479359272192450938419199372597578080255030520303936070034985508262390586591820864099922868268751161498633356692198751593525673408327330183853805848940035525628802566224465432620994141833671088687534438017635583954019789019493841330041853035366677398440556225587383058477427926303021925806692124869003635071262535008782451519008934621277680165239734043908953659004459488062192162981494044913411691430154057462286605455423330250590620942947776018054150557456510635813928421262088685780403186202210214787954444397763159022530359126151204861079321518916706202880301105524779262466289995184696903692613853192211425035597877547253485305883492650472565376828622747110998222053575378584328311436290189552355163135379819931959116591835821872204573719142111092433746578898015426524869198845562526810188134517292912311729429192777514953643932060013146259432757663446782077783441746934295651132612283073752401568949452294306325275957467696073468620793833932698100143480912107249216040046465586778779791957012183152949650077999298657007543973722160667818485985146796216515296436039721477497979767750069982310875827846122335904774084891830579353238272557208887650512207969222996177687713088486414233860042806371924936203451641013749083939113677923183438509876249153473342213063087647657674490911478265251417079621396957357607593383222129163914213737625633370230310885717944750298327484541269587966121080792883337052304524664318425523635338135960209071381161127287469283494814888435048033416233287607485864481513371918653993595054272225846758657016971543468313515710838585772890926566741338191545836059931467592645473227294156077718421127982818991346172355757954544889789649866603906329173979988232694686506297350994962134790501895083835174620125653351896869097847276592871873904931615286996502390490695766345859174517253278288406431069968200556622847690240657626973547706603489095037845390750044966483814324100674287167241577792899734223775915217364066814325409222786851955184447148318881298063758123899098035106150264392357010890192868285867925435057006398957868151618601748680663278079280459596591660026731386847603050676100776463091448931075668327129004980453731254921002613311746298189312064299551718135946312585198990617526456370646901915006041733181074213620909314497077245397159743961652840142223643331407352701030545478853285307382861620611438289390470582959176528661597778211370836512678691091480624383105656056764816507178519002310385122695256488513914966054245300543198404741196436917314327617057437321639199393397784207734687015428457561308485869660424793442432171795716809303136922552328340879264215041930281630775273067699760324878869293199314833957116476022950600022944418279950121053321540680410165100667489417319639983685231873248019540626676610112658124497845021552154926252533501765347422556507113225741440806942114965878775020886846597116537440938595226487971165236979576420096760288394984996599840169710939848442242866773930574285474264108820800485898802532212929610107102724356639942072301376277710585082288718135749452489532738760729246228492958607729197177746062807633040802502138156422654481567193652871534654800421630056882267905086343751422056902260226485152304630355980403087620223098141180943256102025014588975621844601195923996799487361837285767021113815075785955795315961782803112973588988192066084281413825387444074693314218229001836444913843117520382673472714124990491486522282971533273577242641379924786397678780403711801781318552636261143329659473388247770925089267273184813885938833775768967270399478493848156200822256877730738725296332495161148144478403280745203951065008478882557339770777590248974823006420239493085025124145857841455803354991966420669175843451913098251273097271673420051281813293227721662217598061437179845906835400574872147668227306518002842459454252523965139643573637794565475997311262457277867868960213158413756313854084560862993192546120490940248025266522754627366012778414339816087922415827516285027892195633135165701411306084661880684359280104918172054371420149693426509124036286287988626798562426927494534735026343039670475639319297957226843482066736556536616586827484965826695374658660301435350259173270855619961858373838655445024668500518266840147521255226545332164773214175617806707371912995996857226878843888646687013988584048060146400444685595633980609023608831541942842120875771160819425559059567100718957089054171850913816252851530818501118451400287808446974070283010669909433668598222792965992857003739498337388589852586532764309661219257681631736013942949001597140840218993278611783416495753814491111955686417890084397622481710818126231304772367062168190642893270977533335109377512972376143948385620021847814498662973828151434377640041317608722045003514300763886841000180945696650411000382185158732947302945676805670901969077719765839661608145405310135675394318518243646897766272849588765263509700374294942990458263491001281655766162148932378298823451305517016166877022409029148258958876467050553788723446266641321181446402608771138305177987854793781208395162579159580885726537638545560263096860042831089648626081503079493432732745255039640304843797094433098864920954194338840600716277666985133307122225067887866100253825406517999752285796625408588476406585380537876636311768003367596834373813191710132787748921304348684967426769192258627890292204403247797392745893564451746064014491154005984598065048549997923158951981404699380799202348982908595096527917494730156377976011700597965115561526590850632723692602579532832528179754317021788218468669876820417970037697811865373495438291310512023527830629483367793654356389076688260878267180656155764400920324639236788410596097638841286834468919420826863347759852394851120249383191064345952321244044622144487285513161697944851230375977901618894222883628932547605256315385148527797306862368216643613464558791156951960367556392499456043775361794781073944616151866013142399845603878812944015113621602388270188739301537526994337568944098949066325458016826784038308443051587234967251627792258058462333597282015511385770859331259906966796701606367594524457906896943508880675251635121256850778447769668665885787531826916423397668204050776436791766360509882273894904355275735261678816353722723658026183599276655331158534890183315401955545441416763286614008525902168981765797607251899064835512534615821461885223812190350237767473790923073242220118354713513115135285255418719106790940364997720399139745997051569173136103210929658121121841702476507531997916822183813243851774345920769922272154997868919408365872201161378459387141389416571716226681691265093634451598898507592526173211348665833572301665752877944488412793912604118740396742972477138614268196958586784066525306159608205596141896301389756972835160655377439653161774183232973417183219063472623760825195565139173625754955662586463975251634234368190407623987309638806526925048222837245088514668417746056315679713365903000863352767906805550364439609916740749800914117432862632280230805663365715138573010353561783288898805765852635823858468411773732522913871528685079897579398591315248954905705171484583387502332113093088692680654704643832109210256678034552556742561268179804723078080717657151239375094888874510831036291940607769619157589905458842644469860555086038614479187811028257178450821856210546269303813269411213427922109634928501595096432190192159630636401222550099745297260465847101849811286100650238571771262403138963748453813288892949615456817352895019576676117235294627931071765939780973312093132647810216533300293463168823542399536078469395362481327640658851801112994633388330842571082965388190708340935222375346266756530189346280510577476577120432685617808754844359747303701597871769591251357645493734760678885425902230822559035088709822170614028707369723546340459873675001525474391971164788753601271251172939561777974499795966871227041595867127541539949536815156734029684035851131410887123328085977785056202650088059578245458848718044199100710219657153471171182683649385156330385797938668847017135888654639209872506858763197415239296576321029563795799339649361820973244287845716179334165252778347115960277104847273098385380622055937489364866879713572256091055683331432620326715723536903365687627927943836726606449243822824082870945623945091543780015563031498959323019566476154087094746235944899369746115339851544651253784099372471774604464819075342238328336466799174462662259229672531245038808656898289691843858957244456778541262409356066623550565010058202277301623537283334543754964425488516955616000777729681460577706356156195603377414949025049026523885199695282352034183426026283409473708252914401370547397555203730372422323385268480784163813564028715962622628155805005500584168172807753046842461624185519473826036233275053422038050524425258163143660383064312654359992019658317065655325128667766839477841829820838328751404603927051109826270421717725415879378389924099291303435028552687190758798310707463982970793305079880559986911861212601089830790254981334770741366883444243712806480826414937135873716279764724664295321634592143213122342269454738661811368839960125415556062178710372625380712148303971296682537438715854009249952359256528304251313566080119174061373222144120901969549022519885296168823723893010890131325178543123897707090445632394515012351444157847211153607996070258842520570388209114312311014089134406180984224087722810828599449499952660368773569656775369846808955377651015078567303237630751505648522800332993452464288835006619611049669512000795137923764956849754651842371727352892950874800880175764995216725113072096498411654750722530997128295975653568942710893802790548499348424759475874615953384410596785581438259805462402218933203569816650258995792305101823386706423987792364147942117140015982217437945710610767626913593316097505409651834957294962510210047193988620487874019884566568209745181138591380421330325684727345993114298427646174706581302817230360707294091423190058434125630971020104624842118873893743497013080019978324584827314974322961354702766893302647070093097944602324942151676247714856265732322885565889203186754388664878300323923301147408519631394102407900999006547120797314685216183559024413262750410954543182710921324350662396143149701617364094550999405313970534067154345247752220312579339050392038786779811604911179932048658537882889112944410801704726993226033037678307302357287190840833104434923833488665690848486406907586428407805078957592651873884274322651347986643705837536409148452153453254755062706076747368161974605049626431963128625528758313556400491529771291503877545422557612039833430975684255730239106886504682071995474165989284753975746374886224894800732869769301083827731141396159677871808851937583721558874521134325335309094559653907127544434477924607991023638610114518245560046346417716119700592490627623652730995481702265141761093722240361255858922920053813136875764575722986286597932528966040493110081855208078621186426723882191269247647444122797639102086974857546450792605488277206046379676257600648645646617743517642204818832968728927017734885112874148329553007014762123227931099880998712838944703971421206258395617888326303898355234074860304018813727023250867468421253056161764899420696576951688535565034222931111202668715508513460036213825867881074242109332720488019269194218051509785334634475083320740518939717863900624483268067577851563806174985192252849462691685435657938944971781475952187837724268960337402830464157254487677241080067075022028538028702066022198037504442143282536123857068271950726431480613106172924965613385104570259036520293397055990032348875136090923240191267842206472484289594035098367246144106790716808579024583101233936732229508598773175889659550853334775802153148020907831192265224581455810640970044233624098110196823576167908662546067510750724920388502667202830262178945202218472968848962236852908284879772403949340614355941769930672689075530559920270309892555441030446437546621858091578467431223911745206282996653431906612313780591318121693039655952076252794066279090458084914958448042915517936501640293647850729900695149655513721628266892618568600883319606965402481187183854926723311296775601150873414287453057348024437063499760734023796385650282266402013238545900934649500370646614096558177402215338327294534976168677466925098871976432565732060331465403185366463384596440025873786591058047601579549168612019743384766198583271246533592621472428137975344848224660141514890755857057543870111518325888584224194798718862891107214648456195500059871862067671696345375370588841567650717454206819321519089738969676622625104541608865026504611805738414783868040241058357519296176073034836749554036589587294737921024484563288893348283261298436807475014357246634529691048852467208929591599632004252868340325914728745848961825912425859363853944252579110660707903946183848468366367596888596954351349247843856437781007288961239856663497534073402011958598080392082857032158491995361896882635424945200552484095511277211869370123226153254039463820203488190098716657597973578261706031140607775972210842302571463116001870929147115920708380657402442664560061501022627299584462231220966925069645075124161845916552246389145775498895434924780152188053939278389512771354054355324166392841446301680092022501834058199457580824306757294485048370022121527610044839928769946451636438012936382461831432807642341844531472799228288785161785275100533879507566309720811731416161764795393151142861698382944795033859189282547941125808771094193788610750953408012545674218170287808696880652887931302754184285457268729512444632146612504345922895068966742873077346200700618306247930679328698282348301286241437607051482283754911125310473118527373612628169237344920291121319800134077952773994101530016034328236190557912509783938700615914129158547918155515214932433809773170437155149308368548184892526634024666630197717026344708558882723498146770077691131509512976986611275417324678891847640257603789963147914490444421415076455238097682200812110227900450254837043459591396043738322350051688147043607991965948565885206673062399545910782087765357032450559157485907770879863001461931946896214427061923564478372981017214480800469535462908966321216579736379364190829736134949453941700954259689939244373073368118660592391282205199676804188713929714500788794374794395180566676428409293754135980279786385965169124414677848884382181711704002601692604786205781766813505248797058678301191186615610451188862858999903982674239191294436725910734955408910705454297441411204586296609400849757055838741291955802630104004497049217149555082953911630438098494582783711617116528293687011299588068209042426757587028262697217295599977835218936504882504970560585095408570455528364497688314993335460213949986779820993014960358396820004906766386418040456171643576845865693861914283428155326387661936080861690427797857799811418035190975266710758229308339786264950942490167158102139387924883011680682994246172517331146626073480671840073057258045565470788132842637469348022956024278666204539635158836432400779789979081220440108129853637768296862070261308630409075120085062353414505696219534337749551347835306254270605165349824186122914038878430204871517739027663825751884574502887136401366666103565354071557469691485722313937592918030226313891577169210065814397445823404261700136924212710961402552768847308267240895911715274619685279310982606566155849033793571672384437935815178796676518013648380119459076753796883088575261330628348222829027900064678426789871533133632822087711570504349823331332491902537458917379221497358265262912689274451837824604665774971654147884762423586402549982793433907995088291528673962490109917211009159487251053310194739282665092815719425855554475434908999420746060902457151464191372859492011825723439894141364910888612985606859512243890175752880123357885322609348650888505476947022948582146365707984093502072785379253164896379014646152785320977618457180480528451706219516574789263020604419822946711232918177263121181852729417106401584123016674264511099337078467973388390120944853831106301480221634475837233803030310100410109557072983874636564209456073831836221095124645219719641557578967141582232093144682124600187403262283787501422657365641877678820394341281892854736626360836521308184670724419499920189990580759424270323455415788792141550707644628984829805190992135325599762151990552047752947131780929999899619200212262209404487325026312923623541816697724738399868699304917049542629475106718800386967758969892284163529955806445235386141223053395911050085844395852821106706825377296984456494532948337642121354119598089203463673139334518754225606299199041806374023101089906568758993243502903787582880358512470513247833565924340084794712010355545201360145245400779984554616505957991487146843899019221345953557593105761879953531700724374172464887126341123203932385245636118065483278546162569486587755463149650442955434410608102753203865490217813263711126079364190135584758092985386631517068904339573038792700052151514923683802590140928602311492476025157173594179291430980973016118433228035040758365185320119986344639082982346488769953490553542936383482255195352788254552937156696253143576538058385091122888425006850780886707551459195347439480648953205586797215223534967970075993993817332892412956712574059050693198327813177310235721732159492486423881200545388660448947242297936943462839443605031680812500631297135044903403652907214822881079578892501602178838448105334774518463058644356400706264460406332212214145400140351669473129656889824688862711367012918615513766440889008902882562900495955688827802556508361290045564321968493375549457872802271873060716511122512504631622334718302886166060432447711339408093290903867345866315130671814595639718361038297797959530065866461189193407520801332877516086281338352920881014903104005745842520992730066485727315464492677046916729954644963540288603648795805642268245960909374090258102124032244185860731345907046316667885562252928221636778129631819964935961745473905051138781477926755201066005344726721187227257496700130758311662441222657475118967185713471846722465156738574507151768104302504114116430112924165238670720595476227207263966678492989378671812308478885397766522977686898368608018539937176955266903971267726613541802602548529670458287097654365333502313225524465194094417169583843819113205771795233536488918068590246017583214254413294530466552806806140133990832122596583802407160187251087104408605135007016465682528159846733378347453255371305152173070092027168036576120755881060904496082993205997413090787506010768289836777944159397781817463823999329925649745006411985249182625472707946131539167843870073375239182139840378688335207646624678516080658282369531518669397324699918226570706412906013546876737428239248499747684260400754025537275294870391113679114255435412704320627646084694838804206555498728780885849603023575907495467908023105087403347242660408534182369261684040498252539956941220307934037543484052860517632041462686233928825003203222462148189603207982913510426130820566010320788205050493058263226133946732818892228670854624077413344301402602324084464028184741818090389877354081088431038749842667886523173634935355557616102530380927047082890947867485991852610301815315870476969776208701835298726871259124444256794752246180892403486728233219987512653573114582055878824602970606052689292800295835590357284463758027117101142451507275902938606098119008322017896412016364480889499134664811308990281767108283723839969681938667968673756856180790134481385846904049771754688049807577599587811547865866789915975923687361111425489964031526851275120710071212967094630878639330987918001863021369222049611324169634016213119527456739799082064949338076561384228036879286511299991361833442100936733497628564212881465195587607105897754054681465348442126570567582257737893871611533247977591054436027299601663061579622341261861557442963319036284637524906707245418613216874039629066427665792041436919751218103221330396160293949925239033692170329077878833883381512319663792790617855276747177184496166921705535263033430566907399222589055220485254492955839579692890394773935479975957850164601809797144622231819579886777661141318788217250103556429787951320938478128855236357337432237220631835343795866472690191866964759450922468306773728007016499745891208458185602042582602488493207795045628327635885634699698092260491588052237694870432103848823643812681489586628202483121724242078362032797661375143961173393719500080196427827553679061525616959967970379162074558967432862745431133917676999032186052709181183301422021744839839095925496886564131889599331230287078461888114863963905151564886741437499089338849809417287696041982801926266156607093426048178776660615627525289962312904876916894954253665113717679623114166110392282991608992317502685164000378589680582542393907463452294722435311474339809869320307270785544240405101597292473311265390125764294001265288638606693887932153404696540670082691272565618002591795646488371565053192487198373898422976338591410473695057219197718958510548823057286106325154541719574242924283827557118749533254115185851661980290253480349319313111555587210998447723669489122498770058159493860390667475331177829835401245921885469091256248460071118745315597053688184591882647865276043036907696737054955445976718813046023201336312776928546813884659561734115473460968769923585752002863746692746645929103627201509769447359422782564739249872025610001335546648074158198535406669400365579400875136297830436617686934484760478678564596580498125735360908717477780464959518928412849833193743818907538251950763978023824954652184980052496626551789886909446259436438316236935023102146779754907483045730893129281340850358574495008268755592112564450132248210887140851919374600101832504293826185855425754979782881566339280907016598546541355232576376966731837807674579557875836097595343695307443568538930569462654110533977629432301974319915360532525827972041997046168619161843805084141445845437394969291396346779523292220769161016682361331870885685621091763403163633025874599326514152251474180535806213912521893833080313784377154138514768086144595680294291763959473365338615822844130945867668603846705734937805287736050403892335977417908893130966838511883066907091642199500660037277838227947754784885108592214279550331779458379980122581547221482513527184568841266316097110570358122873661371703321425988596969695474960662439820600106519780724062744703929601463455755356488640355619824882479458427526246153708283210660922178230204137936535635106805449121984869479066001274302368619352681372548245420620439255063219390093706974054459218837088941720971059059181511688642451472338661427230507108876149939696637490185161426675922659712635577214571509366424159420103637860842828102842892993204387114767763885752654514006113201092655945076937792459628047464217512604022441151548210618597341928623465534840854170914572311522004093693160871961650081549547380978242306585099939700351708075382255594052417461065614712993926558966364872557620249511234464233607844995846631544732172241045180240470132225261129303585869193739379988144498512953378702487471531845513191750974873704459793353832326457658615005141341261077545602828441011845561147925433562614803277138913412210691644825993702293193670122487452068026769246628360383664104431081976974474933801368419082955190663731628900374309755498290309640339132455839137641942537236208973135630311905015627860380324711732358290076096161761388532283356240785080415180039597619612752027405538749857361081926035259136261645448182366274977864330534436217983437509022427327967414412939968522683722011274100465620347951623164301598648682081562686853248723279157906836361023846937093430417446332518560460363533458186807772359498939849166458455559359904137915289251764623435448702292917685303745783471201112454757011200811314028506592306134573291881432147324540760012127142242504194550701024670952464938086250058895397037315353284240022863561781127695178180329394339695498303332752291840319045219359784302549279147115502128267411514331699227203092322613657602245498103918819249924752024800649248305994192722682827757575577241778681166551618850088142985671440284860684962292921213964675588012845577743507862946974772850176695482066245959199017912774606123199317738216380831166898402783695132570750211113961238708835110962276159138446313124913178201899378641136833360803127257139924845793536138064501821425571918030442737195215164371197340472699049157874851862592284413669782496819989326089272101596512628731823355404078830721394117659530338712789389216662157040869091440195176414967335322584038817393343858772941131625903739988000359272178451965136655294179220609601538923846782032710995994406915856601980611723046548929326839996390278044595554812398492707714276625368176872996446288703192131481385858983922466134557896528124784070259895505319684515819615470310657797570524659765721754336459942670835895152708463344183727865360383028624188732345682404832621125581438923661017231135672492902276015921210311129482364914632364136360906231664017728006137901870401279377218549011923558651022942737180779766252799074504273044710184471121463522539430718308588894289994380642801227279606445587461007159135145627734446295965883401807141505557528869385660047755156890112734710216617371350634443228885670195187240576220521740369876255001770904984121502376178801467016591276057260676780904099163431496728847188597953477078154190708172061765544931683209662812845368550231827037171921509781150677949115128880991886592011433861705039638307469368982910760640355958447421740402025687100424206550843828943165401234901577519591691161895491627700336422224878377465083330601464066017270548154914855720874994620431025372166216043397103049015215099716066137741821917467471284131447581919483638979878015758953479628682942360612862576810366701603100127183281729455180411152648851200913763661345095460188993054789037057497305660161452873819695492002694934400823282182625356463989025184511693826171955124994112786522766969005223867084969393891952138925306118507160204443106640810446367971411789880593980716497444384713471197586681405001041853556191235181762082595775849766131247991535755040896850728497702366636796516965613320536525330800891739307626444288686855447860513071085313713454473890557770053980677932892482132132798592462109509584244015012853316467025529938346218214829061362437056006686880925072663034425526066290924543616758421140013273231299879325889099357500764241661267770996153412072982067413416972963841829851407959216864484682877572009360862811714459440555147973231961349913192359453750962032338944267334506621710905248569546094896473461132219374615015776216687332750587894888387304724468666908754619330733464175660484388225643319114930569821782521957162609190442263085025441255707813041703490625496088342050197750201895815937708047294784288508230828900780694331246205720706966669467214328181935255365027364936743098293873012556236213647441923368363200552406026708672077767785986384803721446126918593851014228338752660940651358298419577631720805033690879688938472769369983820709247846011026044495698028776975137266394061291480293406495310631778596194300905720901370509264238120639691914942931434936076329120410259863753601604201104022138461237678109193210285980175105105082142124035989774478550940435135497504616010397538968526412763147773724648750352966934337864315974671537505420647814905765587528130106540096196995335689883709664336964479329518909268095081807186511824963414542187082805133543533325785731013398780579002894785152359600094302386461554709654104554336132844816990845337095851681063861942033255311129495637128491542083951984337487699431806211158392189518044247184082013140889079013327243480741329167101114759615299305532314299882036974079340419038628258515107050944293101529490142045009759242883346878357899380586216133728067800376678617574797736984757458130618600595247685570498975609696653917552662403430831311300585294725202234259666440088388267765400895387500215963078801545815051280251077090102152739721410596097292320911831843566449609716194081208458413084648799573940136324421061000371118582798164201994398125731038763046207064667707145229266304661192597802366725353665314339271220026614513561838725377926887560933081517095576754755585041011583926125243670169437714765372590323062088176510441387174933184173345361295064426950224556504351244539496557780867376549979368805223181844150421815447447587881037314639375580730987407903589119172716469435589691793044764503904883814304608062090916016388492084499185465184807120383921277732799795195439723957916031002124844170252642968855856854009481398393408469154475442391277729097988298117978982236186139592797053809169242947867858859607118719436002758716451271706583553595812811484328615186194536769188997640073809799476065750939579977096183191409028800980693077034022065817258555612527570038975370287420655298514059713278470386475649482720154993648546504933180842206386736526542138207244676638187061884229966676294118710376227407547864607403526441224454079565092069193628522566348592056459770047446186186583641880649859227401608732461718900203555849149117249005045514511445818180900354707495566468492495669806284859527491569411965793085582837138643104843386396718078660689196027086497838149968103126798839498184316768816142036253692816214718725452499214473255284888237871759201228334848026456715761118518241607717860732483558395640690826990946283316381533944804953801966709752202476384243548446350122693282786763039455248947282634619734289454098406265619177654588306751759242541439731258000234595166870346208984105240167197571617258591441399012307984600548967919865799891663864142839628850881593118748019735614825886772408633559134540450148451551815954725206793698201199303126776663613424612203208983665370774790514026759868620562731594434721963659876234214588340908295763635691909672911677347470575211879758616732275703897806085249062544575283495479453226442289996334527523581882953083686965971403889275811902160932582000298365268784661271447972428747805724699102240238069313341191771115266982316040965831409705008283934630891657177124387828292482037974381999606399102622334307597895347535525823652321323226508671544800824472128855653064258960985606752467796193791661225038236559754979535269024754143951472772366676886047178242611406906514968849653096282707994287211491206972250314093175927211876723724879265913705053519209019272502493533072246386595655235961966457632479604839034202518606513387708130248199657797346608472025080947375463836271037819089228237337776234245806853327285600177390959652993192023021711514132831378138624341359116729501940741339816643697070026522373387797081944486743105131351942567867382830317810170837043797766104512727211477512380307786956197034710410140083678662315354673043282099715166405075311565087410866541943113084100185536159934108268089626690058343073956525583253165410957011940820598137830610869502814039243563486366108858940760412319380989418908380994444914474837273086229966539226243864065638493901474837331487736565303935424832883964807595534167268499078415066871232958842025627133504141689202727757753856364924510527256940147975202731442103945653268411381086872514982940909832812300469167495783296365082238827232562197871977421859916777258100493787942311092852416666590429851646219018652725286437378363219523906125733154410959199802835828735974824520340020334897341575071761118537116303641331080885011667787951933147558792763979231134504379095727159837992961165398375627098948412022593817816815418679008072931750225048181620703588116223067634742684462941289553827641243448721332202143869370294016288094342598167937124121840629427429984311609008691309108985062910359017003731473835636973512858110611352201370270973788967947942355524429737077085853449502732569725491747251261659129164183022319651762092748530468894519827034734936112191640377372534153420741743211581027092396959030923143042762326025463614667786637977891028141937239584711158153759195335467353716066790065301522596907684233461905925063803437316674208540863606222252289332054338296583352147527329242285096177511631486542527302805873630027346523518596768974409700774792373760227803205897570837502494440586742716158350128710556928132434667187894924806009846087078422638336721412971858206141810163761172854777593218198044182673005587847958647014428022340720867515761648900336673294519580664017487000287740760536065223870260011074432818568425330015309615695937874802555144942310745967406752243232623947243231851249774929324042790577122447402201081936475547610641948398096063641205651982818816792401121299091668253501026243760564348401594110297617605016189503770057342575014434419059544244831467325453626731094244393900932131076350546193488540984506264046148440637993474090908477312154539329824776785578021169363964544220712237088347612477016513756290221221450637601472390470891302293906911391318249289719225831002143416467110478113125754540766630469799658282931235363783465541009695951223408917972617705681816850981309094659824227479867183101316604220985961193444453600833436613991112032143973991844975000819241448015830631808941231559974193606662927480326262426364484241650171746604640866002944043813436953095419613682434615173910412346669611588173179029938720160046271253778671638446647323877616423376111977271216981765760574602439183302878147056469019334793772365549025859335296039488492989179170219872062499801995324566655000118043668503977329790914854990181554502486979271577776464592060858838186259506873865405678624273659256251730846096442754304724121521709882890513640125314571304279566313862929678605415300932527254791421823167676470247036110280317079491042929604522283123875527215373004407322789878779435582835753416014101253250517799516989726233486678397441589560300203098226966673181943483866687837128237176349771748718926906345531517230820212377561246614042774850592839613271587776304015303870143072118535920275012703235842140437004930649732044864090044434786796243019246978862803754130550685965644009136523268232735347011487684925602015068170702445605806572988049700946778988042391500053161570536031044535004997376219296950641662008110100078281155930071565684788406334655675200315364006989410614033004870137203750612986729750719331310516128402071806313338049858717897257517270405860447044651064988406537473245337704148552126688150620933641739635729896596519689132100760337943194163764515333357405125516549747832216394898635081583422093059051219502173487471697189327232476849795807309420531938159360072079670355442706321529648851294873843056874657403573843243518669608342787477957313487495687737568820677907199269589163568872821952346703598993354763267885719734715720387494980906609930850451397642518207150370603120759896528979520081701890128923038797392562702098418578205857519816954895714959846258841004572581553152766795812057497369681708694390501131220506453357090030862974346372040549193973281688972463477060392672601743523294336659193979441527456893900423520884119568954429547574171242778916171854303619026311678898555898044405357290037724421041095511991665698504629575721217551041373911069357450402868667384502682334126366059392615413950504617157427643758596542469449218850062145743327440295570383841261572615594032206295505990789819149686012161837428786130021753775278647226681947576224035921585906739700797103920016691933027431052326132928240358851056376746095441990876373277739478874652498078556294824223989209265232948676606185045147398282435855974155428687484788215785845531163109115168065424861291250751461557567159481685014653767396032127266780750520318348508781171586179428602566123166133465398016833777426575978875271689147933529385885489412282827295591238739987511391100018308957406825457738656754109633969387922595222346784999521263816629703985826857653742967197283441914017995853719888472938202726280411795824694349797373876199048173579584176040214636433132437758379204288599427528222390926054305091595348864548944806662449377812749137798433252661679476302212243482373133612524540197916867859303162717962469057919118384806722844033676885802959187729587197036743987303260283038775734795577529317989590891139915582829707444315964922467237522115103867499322828231770534045177903825718877943860422659890359777431710326412834970283659614087305407702906112394827873385474449844636730887272168394200649680121538274006870431929539950904471322998239008289684875811391453894955521561288491745370566087400065732740499826810555383237693009130762757393277255272765417954762805552120235000878268613068935422592821026791662789101664955541959964477842722927178737668492752515232295845764304955678362356873492243951773995769282781208729359019663965278487714001787751346567516991427113538720134871992576277507515098904596758104620772341063190255969207558253400497886440423399139307151026824949154755702820659857412058175446586700783093405529141791866950346858309430850807671821528562049137480305653689758332916576516509613334161638535055869478167455249679509045521306726805086990629463610763521707666318332323434407268734843812494179132410019658454149536544465257273848702541757206252729272041476495963329030982321004321226421221095369147089617569876037287154523497212436161211909104478578293341049682017536413418876289098097852413530463714250856301917292341782747209500866095396859526750591661537611064967970156855554865647458653112611021402806355696316300798441966264257736417827301695609633057597270117026141508276322169342421292493767472607290574710778010544347824875724134337304951410756454273039511305043716343257537288396335909454545056121934986510178696973549379036032863778172502845018031068601534970185123485883717790393615344762451003741501171386527329798889383421681752963626526053406174686609200797890931432254967902305705458723152184442901696226817186387537635959677659238134154313694515145344145296635122825984809511679660785906318039949018488016328198569544108576183151584007551086629882941190862239378136687897877473212366489374261399878019286357838510167842733817057384014799702295973366428822649769152328835103104878158508163572254930760022523819913497115331303838102406057331614187935707335567005838358562750536516219000908838236214161670348962906836882979603195101397412951237665912650254590159903835432251769117809545392674140385303900539756091844257118304685441928527997766588457613665397312857432033031895064584197660629473857255796963051440847993819244072113573135562877998321049388709448928435876552863983315949954185384870713506448991126929341046179034214418909832144804487620486042421262296270603854165863599021722415944118701670023511570344046759158774768714547654726927925319170753370634853353186810260342589600650212825374869171607166338751558593856619877031337426778766447596465683656331619506483308330174382828440592528518174475956203332365764568743201083501452483189266598871645512739829402014416833733805345972097407091653283202599365501065831067727462648312568245897640261862870820236280858368297259820955662898303946428349824001528475073812653598446572508056507799647755438448316765727738853465095022535495069552532231360280241996607226491062868944656457349810289074596369728166724785189845169062691817871195568326197197792105983914449313219051133861440142462867966668957588740161483924883226816566338156485870154677208553012405673772688737466241281264328495236353684454698505799588634926981398346552359432302651738273342568006431694923779393811304725988142572388147730042267738558888071199231844810381806497743205069793805932376150123522550537578974884212982702264284126658484670290049578443125939065462471062619003930283711618310730350531436214211361658809490060027011266960183583998585526934668632259036119604738625393475069046506818031571373732889499837554960049215553956209989702158415942253793583648120971318748533864462756700875322605040577004708234433915679450739783627787769701365768458994740376396032560877201805193487942669698615414856217880420717739732488988566005948121517111467160701107491834008620351060727837716780080350642716260758160909157324918067122710689299531227346834365881352008824311135392998744484492894242852328921677512242851674445809918551713547044908082365177553885915313280533330518897632936120523788023687288147541527482177815913712779914284840129423097533365560650950116095068446478599958828438496272394811145994255588839660831050445953298451496590221658111439755471631012921487401859935964544111174763294260066734336747822532396849714893642606879920019126693019690675832938617272335703347015552382877804240002647601696565819713696727788979794075303709388963408497562771338260052926013828651052242916000041485613524162037435400098864973775569446805552541861606751512514307251717490456645298549924927755113541196264005056434204884441135406221320222212932213171540160799618416853446169367709803692017409918848865259371406714758502185069730102458356616330914837233935412017590808708905696175529901659410776153745796693875695409829430445824541028815368486160147277321693928600762549763296013581193471356507535909464293659982487112384576226339474822918135864917191443093970650934841442063352318307485753397928649222836823469794380703207395612501755164671230989937304944468732943716047480367631731888838641298247959760934828677729849972475260283232308104479735269363472700658686266660862868398925820369304803532179036405231400952589770674704928652056009648531561252624252505493239461347124710534110009725811506143072676665402780207274668225332821922991814361445502833071840187622503289785690901479101817219567788436325284568443311107779768498213334970940053052748440905202598349850828404511842177939649153603256997370111648585393594001026996948691420250656010870772158149793368689073199971356379325403808566603757240563159412338397896649792864307346385249601827971092258114409615391650365830798376185786657471854329821111446148214411437825484520952195513079506196716212939138778231761984420760721955340993127506323258568714838886090416145490826118606165189454433416146634264476952397011613811094983218838551689741472991027435945564961026897051864810049712679579173627504781304708620694442939405713527838451991432450683897812329664482163237197546545526762042213679582464155454709490186176049358140473176686487822373172576934341252926481859198442841197560156517345290886713354197818947747904863685548627905962525280419108212645957951696383883566347850187213029575398662658367363814757249358290637704910027567576041951217481563926842154928637183252631034467808477566502303131740478054910695949725716593931484830395583990923532302822495864226452729718495794766531477817089388475458861846307345033807376160736602057513330776485277240757337045621142224860538400259743360532491129022359127333510017835337457920885527766736696593913820265522095946770400560540619693766991433344058129402330987982451719954278642194321364645851981665910280440951338433627174197843892650759648482218080294243967311299860774641061817867390204819393594240530214066530959790519063323066128793068353405095768441902500184371759752902857645377611047639006684857631684942378119175641083726366356690076896696310465786954720798752313494778460208305118609718674134220928453680551208505337696002632567493963642686562118444525485405916145576278640666689858886468636224558629031706221434516536601763636914124927134221302968948325488943975486666341083179834010585838087414101322426157071573540268968883944515942585512842050910528466051845482660435232462315563078053173333426687902772907097946977966501937186342837386780976174876718057800219605870070386935868597950276741982063997992465805245821280410866901058839502534694418068136678278732490093384868449520179632742046037972675189109411323805646764749795040616180566460856528981718787050531220563696974750214596823089871701261879162567751804987161593699224778137319748152924400712610097849337647179715244059006190068222807799967947986901713341732077544601277144890594750694124031238240325012940178604867813004029386903179759161288989545467173256544857466472013034630789960734333229376118351888598666724208459020128333088925031402411599733284580002921505112484501924281761875900429196411943654567786061645085086983770005964162716795737731298886704793122733849800121134996956651034023568842595266749897590993544491733690428696962584713113782363806634274694253761532528646696043834976103134302607205164909308240208611145371853006652589595217463318940803487099168467302789086229721825047817112743637969905081363557607852547130207338044797281418557920208019050304114179568722338951006705742507938468735249786333293530485643044221956181694453282113583569044285799023280700407458324468004498465711816256591375266407812146590448583979641940138456174101090708344207253631518748939313974583910234843216470272638368004192206810041013143194485656860338240964000687800728879053875581091961877641165950983132386075088636299464734495611995123361018739224919032358954514788403214802092566516184812747269021724188145268665686562935800639092098618146456478176702505051851252693226310291563245989135859199592761469533038915890204878736147315713817149316899959858105057703078831223791273751917741154230073593364579178523615321918561659824374189050571355439632248589213253190048605618703750899881352861856013374018589615862511957342574760683290249691873904324878124458853452611468664567605820738658612961150296712701742760387499282817835677555854240206096805249138060727276334867231258328624761777018662148556197915846367529091908451405263748810950136364979580045594950443815543130091794030352923327512882757542355679812693229921628234612695620845861996467990390900140890304370971692132979239035985846615566484755280784878074790051230087725141879258685422447457926290818651950417652969596929047684474983266381942821407888108252182001214269574266048763392036431941350323255458036892756650477833840071614410932921043856904718933181669044687914894055576644882743059473356191108899720111439376516005873052347099758637466612527303779796071880093360403026365064464215249188639422189529069119449344833420526741458039629350836177244494588516853012649304016930623835161481986372909296618671080588041348553750471227808049290200209219467307128592031825322239220908032019553956796521866099779034729581856877405993437379414872924064658507364153869772801554810413378090055134679473029307230908863033383109559485772288384307774143517858792618656022867418864831745915469082212363291536676837068632543472258177190605964010508094865560692603366145312799268825628400120151821858918126855339800790081689749291905506636643211119834856844228682417966026003192790259524918400087918898966002971246884940727857855695068850546237019952963102419569600298545237928607992489693171988152782745874840453000977216758950939924233399653841337452524853324669512913114243632743287034497351770135667217288401552388479464731078292109307632080416593657489961387635354704593839651448857748146532998102064232014223786118068254521833502319731504522553929064766240316075058363551463948780134830147125126522477475690678783309796372233863913169588672854122501835643999388660115199476564816743296797190216216733604551734827671167228885250302122215221312382797752447449851645373395797734036185475312592933181591557545119101825121962274239139183560241973222295821478841267298206691212353179064718363732111483846492045138223644658415566740139580736176063238137158284060204675543430373806114226227786227064766246762617686499349634157944786471083872084238813109967083580277785134492892476841786528027231620903449491036312937689844770573108608484449018131288785863366012053668440746635207882283261525653905910102610266968541647527402033141342488681642921316687116863604365924394450486108807165017003056264987242433482767457529171078796833566077612470206661714743134838075962803937065488609841780602395271088624596308177329754879230991882831296292659272036411734574432475947565483746593223382101273686570636273162286974906114388514153729569879457197019760055468172345449129602884739940106578174111570231514420699074201203306640722175322343003168311083564871002899210442025135970974641150954215734700660058551896655593876707236176541519372509598880434897903639992937109379716341755964054900336768783137748274572545695860195136853591499789775357007147963240338856508305415314287962645389851001892677176141122916291718370116643061730605261050927390195363085738310414483230258760491686798331700491101235485510251482656898839951302729490275074226695651002722290207708638055606805963165491260464588242930507094700400262044484225697587766882467678770735254709730311768204955209725105464091122758764106317824970844967433186101215081719874076157661844704453061236640305506784738562915836812528126385230885537338365376997217284265512926125460298062139165151221572351255510028109290276822134256887541007427954971274585086980275299811715346028570482943594538372468736795269517984333976103414188244364917382535283461935903562281835722589353163351011613273555365855876825729192489511201467218838160256474093014864368629964865285461938721284060611384526187650862414731173597153800277513655993606500855459966745542914375282391973800523147404552451785341807528279897669510054470815901104541247576758522185047445237165368958231191859406568221082681184012489678113342251980146077885553023298419195078271583656761117449737525016100600135726455369183321277421451913368874349075956257391366041041735997665014334462453867236432149875339423561179302831788679818920701109110876201098562071776126115394149736563000871108559238253664995999588559485112513527263934943095362584465235836554611909361908246054340929998069791324713111904900502084518992968648584742952950703898845069006707458939739990406115048657609793787204773447723247655102204118939414613077503701239068698302865295663488024788950008854074308922774561951139302710878290255389271036613835286639030912707264785756232874400684113888399470765644656402134221235415120529418128870140836342476887836019940979812837144975774273687606231507519899570746435542891593547480089715258729091400968318637572605537174942434757979047170787274992853900193022278945648219858795530368537249704436270216015983274139690943707958047562826114705679005868138376891837980460355217577964751929944723610443270794757803356505251312322632148604463743024421388067579890544323893216340727994310600578240614739274854042124547808995554828392977752035875651953504887903996740764928589929912862604474939463958219885727675123046090113320551475622531325368517663481483484736241220159394565971435020824651551795200800384350303039574036718350598142331151482086755418505596244181061655267782837545005928282583001843027975567780841601350575931795593514686846834726163852794821916002829952720476452249986721686913760747587776867016681126265011963391541089650618324603497610441717690553333636890458823561744956356347574819252444501516385743565986866989286427024690469655550684938171424436547269342941356109842664638472750414343404566601750893455594086476645781695291333800939054567966673730874714418008118931841455284305592344527173206758473714654395968191974169636840594482194855914269841831941260515331174521129561986678235887533355090024130188272029213009484622567411975840347974329643108516894070414989045817256671641674716860828177451716583708556635207376334891999781665079260664119450508065879367434859056546657801245923410253786958570117364849075847909627705841139880814947460089171654978791325305145851282214385239182225978720691656562167379749388988649338389725739228799301716784515409391740905488815000949830522038223090898580567502058483692665194605979850682645771103928577996383064939623055896792565958105222598149494151914123238716638001852580481589143427305503281117784418929669735410170514300763611596222679052498667772591949045859693226881064741201523569691573292388498630405288760717989811937845682839475512490054373451045023924920932944331808577600535580486997167506269614547420596381883412143883507522116437435989332307719975582380480708936363455646999078820749608149045611918005350291545467978457863503141186260404924516743103522816483053021935376110683967685798412790750468432574249680726055825857977162811110655436619614092633690799573233973579786364032848779542509880833120720327123943737274270236285720717617454346206367269256306353876165554053194177641103699370819317887617608371875001778129616160095719541386936032791575543872229905065718280165910625158359302216220932123216257399739602730621547186498450848986373682582379555287497478188464951418391537258602122491137441943297292592196086852840695803699609646767708702484677878116799701194750226084713154255350773835026203552369795534557583425411762588062210610908428368898973612186645725009865797008227088434995893976327619292418496159105721038666016010812373030150122180052876374165715989704399313776128830250935942020353802008003085527756001334336942771188966945535688419564116562155889734340495957975834376562708529746905044349263550601505478266377998830285032685512623870199332078097542680637894185759086056722061755815968802916031842755031302503642052335720099226319261878869596175680567130402772467218804479077611619287550862338833331163685515053194590421135339296874531717367831866862579270458449734589203984840328344977131815594305408578619100803784129426610255692055055347560374492245957579098774515666632937113027823618882465602394652739372738667737168629808195755734086927225895436902186502143990231949664878276704149597895792992119009288007153247276257770953513316110145331923613870670591282249512119495026855042775491039304372127784020077821322610991485345487346630073929971058951292961621669111480468703631398723698138916676866598387378288568869424664980193876804033089097152841538012746895909613357299710610893719025745159243078916387013766831217058827182334846900808947361062622615719774646996782606139126841474034717434743328651925450354686786353693978308049801161057752229676187671030117479419146958525740718136150077084199988159766897548992199289427973440102420367987343877393454403390745250265480549188503108237752186246257707839147009901388505164353052275000602657046329084267650657716561571916346369752800990284205564884614902694501349630033685431259466167073718797353152049987803509708353217195106052191621516782765027626573973406042498279438380026000714319105310243445253331843564639196241393074031745298210112073670574455032778556083337422059527832523708488634255037748976641373297290887130692389762606121737938411088278153041609038599024059317930204466090010189421347885728053565289928607762787813960240831166529532874015703721173607837738465534635931150990493562688807078166677288268729392358507517764964433853996549982991803168304843703328947671845187753200615070874035477678977025183550389560290332088537320146353881523490711272362686984028769497499401216040331701530896356314352930250577011588298886066994869107270984810354320648433811436860997103691158195360733188849888850273837476126306146078222573752339677770079557233942403072153601746571294186896635759460006813825114352514829828394294564454332719708273605912916395954156558427120406742431578540984464312578175173720765206462521343338954648856089608034774600605730067818846692284748524983548166206236580175825169054718495050439182977630768612779811196429844145781546075387287232526961818376606199565570536815488145784620482316233135867206074031684004708963644230983744087526717434231538776892066223459947467274543600122687547960203974057862892676790129304803131995047292703779455080364219122041136246711227254468717444917092223646721488925851594856774190099120763536133068453294085930375365942153793562545659657867464228617826490259314503430161619905407726117539586713086435465371541819348855136666091452128987236076541264533530511958200758819215298519787937103966800008589281417485687388998140633285447155260625257956731553583736575387890098850541633671009081150508960056473170638265041850125476781729894978913486406540035545225536578529487666601624970226007115813272795338826630158704517052366144451153783192370227658891483629971591954260802909199460120968173330627917199518892776506283067625096630585350773794540506342535463949359568710145004850676615231478732140278741274688385338926687003824617920222710235031200745840688776461421214259527855836484223709516824209917118380297516862633548596444309626904866265449568620767244244734271617622250210502592406903185088950317727049371925166808194397337423062536522444974267654766152998809231611103212550272481946585827047253530401598361815181927144480977815495314891970460690539908238137465821155564181740827728336422435431663940559663624052590492611011769661243550315328589766317353417289157693781195524887111100210019267868662355250653078324442250517819656502133348662724395987661699409819407159729753242024094946129621489225143184981075104995360324986555882772793765177191422455498705466495996885816172849794948446629511861598012180467129019279758062957876586806838331285586788430193248637629333165293437489927438526555562060031523679654719641556100139101579300210589882589057789334594924020635942122988968291616572602010999609667862693952868607740142164511389489955641095158657104474069307516063808958116028036655187303747225120599564806151184344867860119914235968296200554287089219041246511092454510823872932205131807062394915409117404894613080363144621325689130589804867958596348833205953013246770664077440444106318228249610848451783267901096861490252671914262737768237353230468832966992990513770450945576822460064854349898040506742623111289462211552611287617910456203806541242437647727297108518752850002523923157292636079059676170368361619021804632257671167171312236412977827270925773283521154577293437664797395329819584974414154083269114301331928082693218162816998045608038731642859546940696988522561099234657702043695752772418657685656504295542262884150356658588755492134019584440820330919766194027394254347490702477855675011339446959854183881124820436179058829924621277097469979785610067595289167305979666623960781101766077887925286445551587217692957406011036352085415822433960664260017629529481765299820576729470106424023959584882502493110634401710056957677928066369670933278302934569761329872539202400792857450555156633090382863837594142172583184694965680885716606040049096579631391310075508188916666842052920369937779878262265121166533110075510114200682692679895601911563750867296694441000959573853246919223351694021997360014556142646224939541523511178655727535679361432166546133931988022434692151289923336941719140069678804316883399040042043650702250518490132120223746801378159972175092534440660706529357259720814087171599026122015338792514171512144586259395485334718843869174697907713586220105257488643619017195335292566523190132659322418828510162416426167253182743931333663298971703407797171049353026102293663092174076956884861211757219592508257013425711401697146016284191490567400048464015436476591065287069915877766987044872591025431925356616063930871301433668126480741761218997374421695323354138398624476814524870106478620071585262050673168205544632293693237831723978898493560847538535750314866947272423327493219729917648717976391932822853057096449984765639579392433682459094326300338509181990066976016931655272548511571201391038284465359214336979356810875623062828053764976751005717211306809398282647511470571954130721563909075233885937629861497882002884131290263014764747611534660957663615871306315252619114424852763108025222445370121258274668477508443615589295874736133303975268552291706765323526412352242655744611114748092765208278635376813805616690712634450013657418823028997098271294270442609811531435290314827226911602251060320276813081195760393267215002306961583436768550308201696039316965886592293937026556179705951371077249550078691542290350491106192606120904513975291986264048163008748529223484998173348159300805485121976753131989217874110274362343279008497100961027172340998498891878242613029595030440370001165828465665937161294463938807453747456967171316219197342745049971663379503872624288974814436327267035679945984889956549480631682675884199382133147983532498333024185950984753804672831542727032929438232752554348633344739275390268200516276551381515218586236607568409878775701458744655751448360218586227499245895032735433140504919693912939258553090860899829136730984459383438283098063560156114673288548301700765831996181259281043670646223166185277390839052140440419960380374176556463511663333124466951413531653658806375657088148907534683307944773435589647177298970351405497624139175146609926059813406196986100688759213174209921252923677728068351241844899797129730447747669493377739515041690097213258422925784003647835224104877846535174045049461369451056895157303654664905132795973744572765672767739603815810929787121876220353047027843052793345572300912353477280428779735913412047887020919061667231580344431492844930428003788214135543733000632582710890167025433095798409702339497647187832010694237518535443036859743270584340922754098321297320977896999707581955879096430719883537383515731136969394020086683068601760074061609187046419001146714523530027846935358096506752398545228549662039822386868872596629136888152674575895740694868985823767504616583528263947318557019018405335349061293713793505463736196189746273255557723608833219301923751123355132368550129621723202655652455614562958437082565184547190637554303496464152661833623030118673252872611219433202918156868668281180410877252266464698859139962509365864767055140115990415758107094724735294531946764708047928289050516373617855029631591863106945235987469629265326485800294545581642766021302131250358338259636625624701873357199905972862695687020284947425050016315035102575293818744477308698639987217326752762661215292486626145028315934248688613486902826343911587810040366106623493273584419076998921724568994882056750178607743289271255130214534862756067803451907155896377849643705313659120866000960695776573457698935761665055115239888012347382306240490342320778736752166760605048427653409584302039612461402104930766453121773984021838699788627852477176545830163403724474700004487230137493357015711413412079228664597050575963453720090912757319536665726573043241688401436425463320515742949818274710167860801279881122307527535509823250533377197203545670526901246188480157844595320681594813093975794136728897097149079395315016655498054788821046794546113626257649990719183016906354492092006662340780896829805303664565096341601522973991099606632831511364866909114046506791645567915898960088228031650468700372775040599432026509911081488350622526703502729866552166037934138658395684639117998575674757556369254080615825651635524829319847453780229001371902184003943962487863073692416030214801974729496296228138943533069704926806756114013535418252014368589509910176857153212421092219821811608120130269867203215444456513487789364413110512088085772275626243836900281448044208874761070471743957803510273313201551273746715963125196952214501079760747109761651509865092471816937951026896676072299410925546382480871774363481917311419903688756910419367983369203545845467453266940052799846069977349436302767394283023386877272794751056042865765589220976404811261487060372764629258736813574303279375144191882768275944782205744879552936297650848431632745701421964008767169179235508504623487862075870907401906487266459940266526309010805014969614306385686293864508444891709228780561348445158839787346390647894176818672087327875794824477562860382438570113700751035823733189070031480446670619838143500055356078451306896850686775094208281885156749443961150074385482625688568259239801403816555361499715092636648118425206465537223963945216025273102096726017915488773196836500986018830831604148639565372297009012930271339160027786427694461138330625658430140245241702352347997477890306295873949077583605311197228442993383827740713729608253808063865000050836464091128442917743676794458068657545525203226137077301076623621120872479932862214498240111079131556266023424994479903296746260069032345146214193621012363427749714458088856618305657820214231694341254970424035399430571169751991426165834440827451205271371621695437125630227633585606683033460952200260097429927904374573299808013229509778389519203623349537656866565003447474595179148959189363820478982835478157893326665512649389754536933639069004443445253906704464941091136434958500450329511721854508785793501280391878754532808643720662545857000221092113340305393433905135427152328639910017058680344479598438097559867418216560372557829200517558586246703827402171117254992926083115022452082859073578845748039513347474461126290029659752455929631025617183392647559903898603667876766532647417659007630651698363993220141278097754408908612160826068133681281073686664918210459588977470910428954262888037120569582602153277963062575213898177153008913779299868668121981030313794292116602268153041929725173350758332914584718156736313510210130868588679857515968709672837702391759542363713280377679846693204129602533879103961227260905189502770264282633746473755927350563183766719250362798843917691388473002495084359879443405443363060109707165910107090613508467600229758818664535948628002183667489301649153145978459774336956780608861158327848575521290493883225294871155924111775154444454839308277991183841784098569088719504159937385331109351330272990730673659981626023110158749280197215687311604504055235823652851142498296414652038281989677824187519870441014125032188248510092837759961966007167645423342014539281528280614638815744074281366674785746335558380102736449512538034429107632971566278991575979109454111664572682049404713997943005239110732271593783934022067051401185551013739522759108629871287289462431098405240216347283611235507260202489588000291941190322706438491602130649261106618239015297268372470912494261136598002001777523517372746156554867528357907104961844191207350021065392898101497999507761880152435762625579797624594620742748816640917424272681068617703750453444067032896102161971102161835072740235560325893861155751154555588320900280957105020546471281534414149418180173013032925562173389418030177694950498562619001769397055220215948567705662288533814731997634438902028770053496017443860504257480667471374409421099181873529794087417790439993493472167338207293432933492371964554972164410380381959004505804428158011594942002371826224748878730467638236606185831316170264676660943146599989727336142224587876944169772260971005348872779229872257403900270953800372292724973060251601341091091192069364704107904164836380483436824100294264998678357645016029294617770411917308255102845698332980020929842764994940287983983907017293478421472777163668552131975881002283647311433691905399244223584024344589466662122650331525464723482808193322987706962540062302718089939283308738601659451541223559745687644155232831988993219424206054572140993435223016185914681101521111222218108039439148547119738002900366128695935127498373605530033986617623394855500302094895860858749074629282800426015769344758873592281691142824224640373662798742863670001530544343421413575778771442949911088556585161358086320405448396746564073950771162197266285204880907922611556175162556088620542216095181916155403748207220543208238874878183639457505056308492444878803744420964681448618292050816831198771634240110189799575947397174459725519945231504392157315464402547110261579438191796883305564620466044072149721292980626374048283344534818375199324167631052354710196533790964022154043644589949091568450017266600323329978682664813522573164548280057652652115573587541649592111018702513201307804455339962524629362827168057047136900386701979828863691666891731760111817396054536373250224771255317622591216027818882803521915119535314451018762771056968068933242821103846950207576528775323741703124318179221858852295080637548326944721875620612175484781965644001122047440108337455271424845625742868468948879774350446153567188966097157147837248162664439616713073005956581484264155350429443567366361217876800613762937404456870572312896568319270104873120350973887533093685646790417525164978326487118731466085490278893709425386736792892019174366165341024630685938450645093943079184897966066589160345250077513872308494256644206538258686951653408154752562153427123712768593873432442344413706428332193180839195192470702653645192030652879800282914387646802509324432167612465260898317236155310976195209362074810874536242221645683640774053334251794625166971030387722437977759136507312295247217934228114860800286222486889896031550344201866010946295915998973041799294092749945729805361769298279130559252436445770600292391043470646381621526592001444248763785186757420976714335089911212716968002679822247698332016118115941185487835467086645067658758390254671222148952791691773299248377814137630581186025608216538093118366067144966867904181886681068521053380452135504770339921206767175161506564741150135793497575345452959661211229627140152998331250239230962758503943819783448527040599106075549744771368276221355404409481558356907292039173819923233702186332716248950362299678554716144234670649705106247893013916248526410907646646828369685388683968352433170550113231606554912242212452358275303645166078304146837423885414758404592392678200450084298842851670429778230567529111999397425018798523553693282945372087007051885670724594742299918270677855893689552281830898278269736010987013850105958317734887291525830433152221462823631420392838295724602816877305971397975200829864644901573145849510365789124825411050842807707281601259699866025479535701098939699884403083072153076719930245739632543327222330258183840469679747843656148351967220670584102240381290182128118713277853826569424675070613842446431712444668406533604610035405161584846797018438363467221241042161018921577947967185854527191233300951248443935052843714523105181041468338895418823349801190636567287992787200865506071969581232315578061439210545012247066213388138733890203862269308555284339997431089551756250930163948612993459379454101916093075848887762651622403770047269849794921647223187728503902967013004350444115302307286369505687921162750722046249263307815215089176910250735173296254509057009417966060262741710569995400145568319336806318979462389387363947472364517260992532193553442474275822590747154643305064096513972068228183350248710466454898483421038140453515080610105839811574225963497845684350036167956897951154101155097313575207348719436322941646055381113222297848806725834797947963331674617257031302019974446629530533911314060049582820485086031174508352688000426866587326647592299739312403735281625725485323019727046565703262942876555828946571794125477962354489786434560043524098110763987251723558463660518600416703044893556433869270973578565311284328127562315448623857502856164847307296930654615401880048961874797297875889005661942080633492007422287439450624304565775704031440856708918017792913869405096023898795450673930577788481205431153829042050772808910482946909110409882430368789171850189756784032760989765121105186722284486591045728108626236831748234735429842394018365019402056976230586152174797157233231382723242858600984880778646956481621037608519977058765978327715096353712334148076188410736483679109112334811727626897564801963694878777486608382950593751019300664589877161690662427499789355895352836608776842947636787171644218504445142852849580012346379536419470376418723938694264537343462740882179843686328374621564345805646834388050043580662314253152348498491770837149972890241812659180427827109148368620761770124937910365962216132388157164697062105412354749722685520440101906889132644412108370125460879071212918621956528605969810265454751882318604168687098173899783685331181954016048576923355014190462592585042300042852826011244713035058026754339689575031531522811349691660892202901950081334475943948566808151085771999297838796541484625234189347044613395269050952640933466139594538988323305605815399071362493620709542652989179882047431018651264858633324853401725206840890856333907395479213012232691138279446742368598684457784500145337060119734819017674897103528242611959944696431857791607759061370426042329743008498600952560956006765506264569257932893881752901676745414359270133243057360888620954551451609564036308219349749535569613867564874444034133284680606111958600747721616389010704267648020305727515532651116829528882674715560976305327142792706929281081656168872285403802839932258669022438695978361566553044400913109939284402676557644476086965362331885437409560605191405872272334904168870520057564607564211647511065020463554711748253649076971701994665440521946031039670871738154178166748379463314610692850295288856099855462267311469733386191625409806944845785541903784922486944568897775489074043071912572058914670946364721279524490995880754982067184523986210836066535942618610712470002788585678233112633521184714611729452481110446854539987308540088237993441595983500133512347422307491452737886926048743670664205919789615070381763472282321077222617436111975688799391027516281831491241545573861631566478469177703177414127824956953584308691895701555056316580482660932422406966846800183354698050030135080717275950629983944927658338129703295366381220089736063875388086532993040124383865804618064265760281516578539264207645240753607140117613898515101568213148481720339715750154326082968888913447710316327911099633511945910069377889203033632271388717500918943291686847870840342123523460344146420421860138743765890517898590870398489820158154160548746140528426108682599815347099696075791979685128366210898871840416724583512000926962137259069401939563064805361943407457900346790831771108411290373568779681500750389954009281535727262328996793990307020026993332973599420232047317045003392404057275131335290491332910989572561831861955699107687535875199438923532693714120736248295813605888587192238561974130920009468671711384790148228659299784700319542575088198146388672201296980581231606499986568249691678210837028038510909689038072987101724073712169286560227811875614119416565810832167739493854145517616028032925121297040324432586265111867833444092404002160928911334001781651243831195400426461102508803244406641177622089018991100163427425396164051534324214061909417520336811306701608940997974061443973997099862183565957003854679459094772273435825912512498926560296310198627171987949553061250029209266477091762989633528773695679001446299760180232602272846730299296547148502210994212151488546234138037667178681687713391115231529498551096342427646179066049779766016281463537455253138234643356077540904315676476812283594814910849550283079427602001346303006945459198068892805568686011728694426232755783807163379184943355697304404893096642405701203249471982873407684623483223260780499286580495315712059123751124880610008478616840248139942851849231213615213149995906831933740906608191248893314652887697960624625569193766921072745930498558696337902792838799876050585536644211538317891726719352045636746219240146780969449883592509320065147984208230928506936708916773275675290373345103215299644465168951094906993376797008120978093989322767039146974565566873278964521283042529500906257112124972060058254355077159702475992486784723919174908625634644755380533487597754578222419467816265936960422962083144873375367944916542940944403589278540153286475989219941980971659090783028420839178450051313587951423566365054326971023864360510943619730674719544417528598017884433571106297031703029652316913673268569842034193755940151851359519875161511121618978062791680861726337576052908437070575133612680239978656381165845120940707815650545547336292951702765588404228309103455820661240435677433086117690461088093463135493353154831413119080263112834481816016030219939798984236072149415103083071067708250917274649736513021134803288745597184265544039697773274305793270392539522282993302267451209809986725032847759168294875903670540725556111515374152255444375113766703787206734453511018596833606279766265699496380766582428002010997657178431581070042616688812927547735456803399452973864118279218676863422995898344254560774462496749166660057474700089748093007184071747657224371982128852755882038999396271689192793088227097675840004972923694783485305848086762482521080195400729343627988582561207320392759091912238309882238989161293351491512759936684435330698842630436287983466545281893543960305855804421836607444972151797977663589487886038071638694163846259450742689140732913547737758265478243576101729041914967577869538655312521182348879200870039339799768389269961197459250159213989944654452663311826823729535992538323578970579522947372432828067836706193776972276972449130984463519404165911997286909763913607930826626016389113325542871395359810319532984920573199569195601332586918855359387066757766728767089442040593684971250975408273388512071798358590878281811934536988201225791178082160412645348993753878416463302153881556682769340371226428960392338061560287472424949959128836127219271640072613049221456572004891691452276213898992676850414619199976181330429401015339831234261885141292085796831116645538691248177021637504538182096883005144045858873358174069125522218958935298618991838344326793749862183015780275859889048682706522249238952724093591499873038366061241177342066778480216164015816406400312471860421199037215624147106878466028385596820645077140650176739919339371332664794069718499306523296147277936949777795493177780882510623152528205680450675048556806284216399801466129773945830870975993260124521759520716225625821210688797305309036765832576081843065959455699601302363776412558205497726674539449499148347778152993972447942363030440897540283886628475758160713215565160359875927145123914166460476383924785620969279798431271359625151242939867725510861866941157254509384227821381872764115252939694640376201671178823422906349927511135910133372639835618827733462955441644784713666601364916699549750222892340954779310511283020448753106571004356890259879426976753125470961870952010501775100844840903077123115337730729159772955142649308627281118700713728143288043021231098916785757000252836404160223513252945687356827408050225095959193737390615156495492282675570878047236148188901967027754876524202182625049715767053058541999478674915851815930772012621532408994818037399113806863852919276264979814522875712317318643617848005577155308279043412388518040763983020795149813204183749600143872404297302410031915641138270543809249626019511336383283329407919038109376104777718225796930447475670572462173506555207796110556041924386094456928812170753715267110210658839254866741996123966604289679686278072812139219755305261960652316716237297886897406930041392123845458963304936314906019989266110242806449297178437765196556885390485087746844150696481486504406349590765186725768387118401239025029608291989920800191499545056417100229256158550992181897131308593299272023677254717279481992668107546900332200948778592717883651170115002023687762732103792390543228255927932591840005975552677795568634849529613025413267223480802096501340211991501868442448017070543821174987294914769560455249634949090210232567620950825434195876013675342689202555729549727921159549012002893796955738139116739213007853675026204510633515551978672926079108365932348615513005611045656711787118813033791834976787560851745639378678466578898964168084222591549576361300522127150760574143022509917615074609565018643702445058670408180896865729022346554261414645788918228969924371676056508095846634078916230857003287328513542531121114115272566608188093074645254536590155961746268922167424889551217054146055979010880246206554862132459732103367045779755018077498360803091521225800452877931465799488119511231019754500982202957088257652356578913075721055591082276442892300288236768723844728751612992887056236823130596138123604206513944628946240746201403005216587375392319982397538474794286175605869322295256618118854177163856004748915642909665683996580369614313566203587900793510550720903887690504041996915709321501938340060467731153285187451146600002259852943416154552263409737872769499190146496018981855379236350007956438709098631385393674423398356043722572979828459615741422235184466820748848983680156483354383918881462724733840273084279094656171267079431400559973448343825349825594161431957415365743973750163010131642235482865723399423633366308332473537384437994233383424352595968490183735494413931397479907403794862800128269151326630647384498972192162664323155979533918514713547256091156853562356485704104150505178032303636648067049917554553613230250891727580022087550577248645548232899618110281034885450228605362838514897785741600391273823422117841129823034746203429227298517360501866881368846640020689572736026816149658748103206975948988160017955093700560448662914992103440911109683899505618119858171959184866089259632800494735674490262937922570428860301722832944673480748769701908490422492383809757139011817610036853798413354161081414698818929950986277041309256395799911290605206630331017498120144139163094321523006257442094767376785404042299080940283073157496692328652808252399774505540787053793619228020622405312036570413887169232388986674485632208615111787952689198868532429259918624019105442722007188922145056780155134263538550396997512157389378032910822436050826584740800234351839791644887110554134647092831237312657670725206490640669577967242335247927576671793503419502863419144638189114417874162931067847045097310899108204838032450421237314167019951217654925849469021114889060091102705356222937155040915691183672938638766400719092219979710183769239129292672786787036328893943620589356956418512896157014787892165187557812227562172498037367955703777255290707707479540483107947595695024908188072378727836962031071238695996924687804891587414558799108139938696194283480053648286809068040585864142286457709706961050087136173925882515584762589091659406043688265873162104554120452858791002664398100207880643796920918067530197546788542624587623444581549092377545670152347287278692143332425665324546213930223117520618273285289511374721472532602677150159924638928071581475192707653116946098187824138015156756041718055932113851609810138337416812045739292128353238335415813313427747286692814179964014460995487826086946472152328101438355386113149381739821203162385531055860708167920642650298041177072379974765759468545358939007689238135681545961138786467388295077886895546269303977361735589663294088382136308585468213414438905260083328852145538655022402553755101662141956281027557738698025896179752173726053933904400759762641062381968503027671641528949124069200327006678047085933258649209214875230775803540012038243355550112734247675790623892366672497195574196336433358885055321879424263744752541804242805545460544818168118931929294642471302986590868272194105781031587598264421169147790029753636672702353129356410213502391551670897095720942283108490535239032094047351576904244608757977765522762496478413679219985011222844334016894142880578326109858443122909111345203522820466169507987686750517713038150833390590916342565936227306626046174426104884060825625664552360158203212302666663101833341050759046374508340735180474079229147884646687209674826750501052216713419062203937393023934253950154484922448453278946654218078481329424382518421044656062596873743575074348991198426396802724071063124088041296909401201434068081809594630407219140294206887586138115094672901074991363251028391602810398882182096232654343624503745024501633531699913966348730938232969221387505636235701641881172007860511650245178393593677560683787611677685805606269875288482795328009004759614445233266965136870408185573257201750476862747639296952683809403082402720127217409205241476079321278878344171326020595180885709960856039804559968367239792124531158962314195565270794327289137400949990196981768265858770370608643617512890980503951438658055818122786898560000142398607896737567010447851991893978901272716527333434830424621730775885917893292456799463205917429080223160668812322899316019527788693448916899029230280805994253931658237474182388331107349587605684264090504108907573092166975259465715153268457734100884471147476031037084856818145222821255719518853277005665643008289066162938406269383706690779213778917451709695049749230903346867956260213001148472120894959453313423074528425011054568112287495069923288478351042754686404681654938022942521390934439213833444978568016987876653879230666269474457146454888673479744475536510675350786449332476490136457793561544276649123135034719893935594427994079894104419004041794337085981280326264376232096681724773948829605880235583362861384623137805341595691408993422538352415592948228409056978076062854145925234662550092655045007274537999793940262440602885806961895466664819380142094639308587361111618225579509432007047082043159148877711718685358590659816540336800979559082639852492091126910179042862052929828488438086672623675075886578815414284792795332783827757579438903896595806477553671399801483351712767853939510968611445850412193340353990504091991794930179509563908919486965761386013136402656364957482327337597951887160414851489165532714112627744654693478726059354868311785207705803061485163320269648280870308603849166176748498532881195689636730750254995032278341288252650563607677115043730082008602765495498678485521406118842811241244374898474315770663853388459438086573710225166139736197214315948459479848637628853280940123903243852690624063137887996587686254905918475948203480560897878488410027197887868172070381226973668417156033384020714484887341260233890003365998735957474758973556560644543759835793568569650682046990675100761988218294204244322652616204639624455030858150930386863052476679348047762182364387196973696621312295744162391777544803473095001183175997424801874829376921587508134125862336368566374337468379952525889468461109560476167318665564144069374896876491957592918273755813063656936415056676439974208619322164212282459474943696555409071519059945506696354499443745787859160949678988300226827457222238837596922988009798016111604553126925547934085175996084175341725338498120152043038223687947162652752484017271657902895191750540800241481450749484020445666112495926619666956392310868080092619973959918676270865313674299666716734102061240203455213190068017322368354246541850725681813773603295586076642577697237438137595191057090867134804938325162290194074287087081306292472195423429986343655772085124230056558895345358924492212069782569330563762698013968778685308490448312444388738688063909797701005065970107849308781511734385377528803480546340278981691364201800871395060854583106097591897747991440753362157658922470356621491579835102057877234348915029678913975102487180466623103439333045590442524592793999679805269114696658291475670806184948568095369855810287615108556659417850175977213026324326810493061800898096215350726696051866561056907319265079137772216694484445256237071912809996686788175987520699754362378161740291505435423099644495523045699021901479169534113708780259365192065575442024112152072609998174919078681586385958218447889633935471985344857771052699204665377510465317968099678173835283139764454461756544256755914254967930257227643361583556191080862620518236348476579220110872021643211357744422571172366108222305758086183012469150999321371190611398813399903327429865601413167124209654224099883251777958074326502702682529597935919286711274156546408145454062844282662194661552315188035139282757955052376162393575734114259894449595522448110140029925832875692046313882567907149185504066167202419518104581969583196628353061058789744313716651582131816101609414740720058414185872619477620852115648654748334612946333184252114632022280165710719498894275570280617333044142752967986586809476092991670509191378775800225705678434917621740621158005843643577574764261882170582714344724607486254629089464791412950321085254459032243815886992307214601835274156794074646590837497273448335824115808990472783250865447736225641457949590748706760649620115007125835273910578544814498821078484176620731809039747487906382647574718490339079966588136164074739834090477316916268663083112418328065156414693478183913418429238771391648619873286987693317084810411291406199993163523869756974987910520097740614898786275621431288716617779058982797078995788104282836502972454614056142948488214014655327640604350978507918525624372279015181164786980574409904074532983074681583475079084446594419965093290645440850019079453258189397527223517135774930283972096214197384063953335336981248442133040323793398378464626382399592824961732063116647719470126028503226019282669142223015517497541722860093588831340050967311028826174145851993895342421776288588160185239516359417666221749935708360898212821301603704924291680003183398277658928275544642868576465106804044450315732213041165364695682510677424277416742558511649427533776331831392760796044021496063864575022481869279493304569029523040416497024133961362253750020366160839514978013697053216068477031701681893971859787783873957622238870097715018594783442405431489968602843760797672270945463246527992842711830817852844082182350159470496272846409408503231861229423018577562021600674841425436052877807505575791074840273268550351184291079293785593702438886823683588579510351736038315888866368722443576222786638670260740724059942159008091066572329952676350896457452734478807602406413958646920818239818979122082223633733093510080832698346926831006341673867808547017440399072331442695406303094868958180990633733184583473579012261686510619402513696528126349303786376160083551325513405443568382101323219302829449073468716230662038609864660604660784639429666866843264114784651154940921747849281808094293123669855391685669609369167372544609288805675077481823440481111699557702417173235093914734838864096713269077027836290216308511172998235028320485968955303013575590611106416121719431984967705948060194712886440746726308088200612022058657802863951549267675859378603668528934354188602113442885427799520106663902515709988864854269553765464628042869113300509244273329435528249710134948085424019374169769901673984566966252625730403872500793018561478314890805556793340468003844622860468291430196246122106876063645548013678218432111118795038620930548619330617488653315003604466413979151963849417339290612497187644128006164067538083681180606589511004676202960095574540300893152889854695651340643989383367377020699814002088134312177562697988440996400302786673110645800446246902209471060562891695885445544136116343347196159462100085204802410886484842173480231858176804815448248294604283172011668164066567180058522201298092600063046003185787103555150450165659519809287199648056604335170075748173689096294325476387096444254407601219711981913332520475419201192317696769671349145712823424568218402780259044514329912626830138257095232825627615920229490117788931041837692958063621137657186684590330901592402547623331809600314728290900496849686546350496316068189943093988078449452551369588476268683290002078436797180025006355443905635680412766563135117594970477115792627045224312871823092730011872994873027928442407806167132392914998314199871467831842571046091588151280402254889435815955875270571518385676696496746762644142065173010211736531423047998146952542805052217393448836377517818813801058235949610542299437414376403348591435337041512246516388393592681493607614709634456477653323289964438640293933464617611031907782442526644975355412893277249128839091311625598242418038334557224574902855771502140237712267525220128043675882028613302844876501686905694458634921803800123779941404997944643750910227045969385035845330050126748041011436183266310214987723979060999709558937121476089035797434685622648837977174253232119749432181477242630688579101077928207558568983593398867418910819615218741384721774759996570869258035434184812097503345120581459593544081224498116144586755089571253718167210981688927048620326350545721554297127294582136672461933176307864424109568309306098421050756009398692594039351961953088424398936624115869544844709937021939904545640549373536099550884435798658557716391531857119801611718187841111601001759418483325745080114226155442441312999014260885893033113756206104087734585793394218890589669313712008347957671683872437643857994613171039039094172609797371827067452759835527848640560896761452482989672343962275324760801660651525082682982421790044432324851267175319199542956682227381858151296692956787438286900745113942649407279684741300695283326590484606231370685432921794506124402779500072906214820635192969186373432124837424680636918193161793834846854739465820505134135041049179537693415423340825779257206266929432781683028374028186436276931344623294639143747809637750682841107365385092878332063875343989247325066830330334532936990166118002130571047395079076920277995471805613631233304412689205566825160604686899709361478597693434461210130842876361156034596103821289809698758724833729177379978952328453335796274548068659746655632670512118031205989092387022730375958588250432478356897401611143643059820084162827976219688230967548236209877942587603825071177135690979770863154470292602244903951716558775277238056545817398514664877887039757647081998625056756512043296693001768371448107367903431158710992656285395504009847920058454086758041557115256125498758282424427443835999560017271614611091754804871676581232423221017700912844343212035798188011459651266596544040660108382460505178769863230215840957397862668312454334963356780938753577969951892247248654420711772320948325169387186551483224108600426844309842508623329307916537736893859735942438681499603404693591683187304599099981290797208848334356663925204644605739154073354255672602363355478042986207726667035190308279179569214865592405926690855742775270049661477528634635929411828025775891472714006246480833355975785775979088344529565114440023850323155954819737102867257351370205897027919981906646137715428025791299294907917998143992691751156194218552493732999846972627431597919987876421622362154129590550401028469712841053618940482504867610693757619224597981278937254240043069830537047667286479321703833994747853570906918957419119893794974276596554568199656568419315574527258050467966623599181896492951502145929705656243281213929036656329659157592637588308550778645763122199871907985214156534694821171202504964549400291157974098769818518302302431467868632968659942590728521918770700205001161410220330964784294063970761140853178331276442881791654248460806241337864081005197714805878458269122856458080471162599758248747696082072433286425229626811668204151082849027532245339829338433802273610860124811806210920973401246836003560788216525320284289719415927196260399908274471699198838737672131326571738640003874747386962786283736835195274223844243700600957968291569885857875791049679693994779702079621479078713658625714548467972285434182469834659016233049063808136905323456851984538650289939426782943220144008437833932997194188343652616448024421995081035182573446494577175023726851207431200557781405117038689935311738184238080309009184661881211900403967797632133413435361550490020780832897751160149751991955875545268576768596982348825096430028905118061812000125318301155221623461992120993632628000773062096753846828353787617609077865569315691773616433503850141419522413673109279973890559367842963380266609563175893120577460894466748599850559752402365098194557558630327303578250340486314005604462677975505146743661985228829912647124771775586812333837336348586296885861389845665340336974356233499965820775177895304792480355475207177218773834366513996260411385308515729740814141036755830967147278078795457129398517482190612548003103892881924972915773230107869721497981186959324526781069200037204847534700279548486461997657412830672429370936497174095842287078431142860255580636740051219629761349981532026751791927081504760579534765172770502808318530847623251423781839995777973857707376634937420259391584360344762316759554699845324040614617323672371606026321350972460089911084361673085418128968807006671717956954818658575939650739977213982000957564015274173591802961922877454029136867722656155404695105333165137886473329326725150612277407728380592120631291592601206442523617721033110457437519846978960587575662424939948342903054009815036320038037846962769181152712136737770129998368280762146403518875621804248003277920329339411890204017077872509769209791122821405501446903025233730244658060375971446744488809152697228358824330425018852510778151707395572619235928388661689498947749300170736917903431252921058612063834002842962288091350411834989743563210333752487476029001830516744448302754792355867154835244389830048131617091037996953014578000361127422305271779298194530530283165818004411743846377552268135054936055679709128559130189154547409146876444982652602901374295406465951019375913066895937959349075889597104831583807734104550287641390034689462304332626462662701258600173590125799412426997758092386186517652844261097901947740666946946145522595016670189960901601665049749453366914613595109906604345330597686740963118406811745327412404238840899648782171812009866847683724027679551482313065593005363362704680497947522011255187185153379451928388304734428029487349876142522640453268274283444473240975003527091532915650387265265436409447335322898240637751920828518368950645909292792826336053735654952049213672515191637151848678641930019678708112028714482628074069994143303185534197724637316142855586394540020512662556507934398015103288497353046445254283412813654010166784424774192601374740865080639473365268440442057068382272835603814529037504750992417482733289867264611112584822725200187678039756655979418226896100687139858648991506208255271836604206400384662496773328782907898807200211690485435201115051463612281355273752409314013226090029789525546089233855355371349397306161285030782187097221274466898725977924851859646526368188172185643367300650229820593149942540995647556935490458935328028261147212860239130720510649632856334214379348813119992358792007587327645964279805426326526769617498678321863096535732971421527569799390738688110713473443906845139445567175724298027255042205156328463411430440420957987532165001056128090460838245316431189422647979936030184663367064704833239370254014792055790921631796420095652388779212623251525808769070456585899911481774669464566636749170508240965693549101229379720307508556101823714766625593801437572504309003679698202780189974899247231051164943758731823777211989907246801406600458346340548143775441613478199525376626114125956675094166624274081371104056988165920173143516491107392455939274254684437790525201614550240008924622600944357738873126846270160854327954456804578696449214767762422161133871850793148511750913542616244288590015113390510481367881258054126368794604928735580236080772408174568615439553917544947179214339377880409120588037811917652521707276371948969140256504185427732138656242332913619284853169229381945054361204617041910877015049987552749540473658848065787713783446459721654543826762814278898331700727808693828370680490542118620978314432288816311850872165184847111386556126975100507524869920550809199247674594439336277334558613059184426582351633222305409137425437129906539636781998423919657626285620440916378587717333591759100183458190026473005032461227756511560967798341988679419364411614261311075438708182315596433363936508646034157329550643096616456015726417533933775727677639604480603123230611766880042931643155141801798354494064800691733776822238120473693781915154032772779021450085042029741659379195387054551885198556842043012799206195841569843526238234052320988216816938977621502905139508130896388276691640095640919746299706238925124514137782752815445527961652281639374721537033146074532426780220459528733839719842087802311615406450524931861234202656728948751060884179895404467931795482934457751872580076012170169946387325771063211611620614186612328472879066772856441324552462496366297328746888322263947033370903633797914321882937058999037777178551633973485843770532060178739714600679236936155156983434273359282618518531159369065624043488693580490417451568090193331465903367656586573545262533961561871934879529051722545552771463049788672756318781238042607713786387780263046474847447617770575161724638587140266787798983150276858925445269053745080056198894747166230173214329282002163301741203407107548639144413507406685903000584887023971053364985103125764625734926008356081779163507452113426947097027958749843325735153480776912422337012938624409925105602525275629018422867748345839200715780346836469814518367911033080040813924307282557910254920101722412516002821467644567470298450506027702786671706761604572565203149715818389022102490829381876260233342933676761370906638928028012836696593345374380272204810261213047023187049662819551187590887581509135898147634033714165387230578752177600347236258836647615884023994911935686403821777061097556547408104724102718243805321645322343923619383071956442328003467124910148727798271162948427503393525416525472031107390889139898379368765084325562524437365675386262594494365097300232887655083297385246132163820719639543223715805700246173135479534471138449216618121582765295867964321369717856609035595194847995211245006056715838550573937514415881752166946005922680731794528902216450655855810409810281196782587161847864414577081162226277300628767044256715691010795026961863384210440415436780191791970596165454752723928144681496602983281734461906248757886736877961407249735661296652177633836819738406080328239187885757309249965978934451343491804604739537324196885074655598737760753445484346204746393051702821379642939808682046121938432933996483997112335404874160751478559597004031404535379625282622878580716309242071857221651033323775993854718997531382183823458714651914196672790923536493974309958074211989193524042283160970523568878313887292471449936909984000376220536772230308137040159502029674818600549451995451454876790648589755977541838293055127394529699575746416290718999041975018207848296270092913822214722480994414350672299413333919578809313733919925259262551636741858353970856783381908616428906114250427514277423556284809357041148618782911623771765509903974129294260714404103338797450375213605358562829389171969217065289754937315137437648873175636611659602507630536604328286307010067193797963370751896564039354228544733218730018635584523219089990408170090263104332919645466483735338048854871719919842388644364353773596940845575740736628977288620184519114107423904010280692783447351713539776787887034596310181217288868191958893970257518980543724770816930627609966250497255446658303212114366903105107614931091814451767418165508676191780694257156317553368277396581603320440915236804399310327353240085555541543370479179096466937972292883713913197998746962037846034780032414293535208913778198664405967284543653306846372857200655997500857486012988539502915992138112584371551765990157794882383303555683219807182997037140839254540372569905707273019395978623162506385064053561613187881779444238933783922447469048770513250921296612114674446983331572174307672872103728148794053998080182888878900604616329381427232233638537453764882461778062797538743260023893785396455473323770532337883283347689389750925493693861838194412730774826182033342755608859478200053136311577186598405753713182119043525489748968713367829995836629388451689945813416874039858406889858911184244580909215072307360371629016017556540070477933852663781698057283753520698086208388531953911219154142604323224568742160158635943788588173544058665711394769396785256067990898782202184894888163711405577403436576179250821129362883143057700842916259348292874243686703632392327372000154541842452735200755468744902465931553045099114850326051297258547179446281619544684647653249687874164202583415901359271460176559384147813635193508153741574749489775285605940232947614730897626543399735041336042597936603059355368785254335050962851865740706902889140509475942862668604754682009229362863690697465952073219213143607358859357252088730798043361210162325206770516960756120352923451567920857182245423104233915587651174264711918078332218439490497898606987386554200162210095179724349255829047896217145542242406536645590839203138658960718783077497527514887658729648124353861475948097302269761715085233034199321513081547125163821895036237253639577228705019714230993419306965531343964875222663958589102322918221063257178348317177874050436227575588314217482690629448001815365691870576515106987075029925049369977221228949719629021135479873893267283619900974149957978560247685063624977333297537781542895676904389515377180116527525899908740703204329867914360074399330044442561591161175190080366307904913915911361470211696455672624814258537044540002381634835691645229865865645071568469578175378248145080235028676234135585736824862635431392162314023048781658587131007146798093082549329567507317341026648527791155001137657509369394743760491659402782974996063852972674976669129707701965126061792326427191733643809613183827811895295996608671650838429397115076437432949975985631829932897875058772520074363839972587027573639452169221052733817822535897676383742514448980920540567601042259583609384571573046098461614234000786667994086068482761264754881446765300277989542033937675465912717056488518081204787946333882318414732604243040163703091215027983425857189598924428725465358960613655834718087757749516452410953270206361492666642210474454994884838115704478619781881009913053256835401643281832642825232525476839974340614151642188407462805541667914906389060800097556755326215365430389039874852488852440740668553601556082111789899702008160622451522327057931708982285813579891743976982576623965511505189200872147458649178088363067069933620104172584958647749643309882513234182303000935006039692223049052904791161878826133059772346017380239433919573681431963836192667398891715179898996545742066118736431265132572755663521221512695330324504500712680454021332836764672497690622738119833975354498498614702091247679993027256972269229538824676309646182514364881104573767951862667072931952677572047807124878753950223051173276919172779888761701671515656147782945400043816546624864186948126339175289928072066861533860543534642016695013755169249899810059585840804376968707659323631201999029697902969744823779039277368870368145456539676932159204394622671289824952521679096130130698816478066001888725659361146545022898594614762934497389079280956771428349373863422129365811080892687535400194269586749898693308791106888268309117927875091307243938106079844735991962793387659943719594685893150816110155694829386470545070563591530001709130178450921921625526754264050282341059512949675443410097146009743460541109783809338478522083521276759642396939620275089684277071842102591075777878663354528351601837422974370058148870888042390695364496921799511979230650415951066235765062131389704918124551857160855269837459053383657549478154537355772587459748588462049472496176296429012640215202726843810373198725952661994284516384964676332547744364307534122950712452583347240382975047592841413931570360603258965637446874191099615040160886129993596539830017678575010850827952824725154548319511832625854857054894067265367559366135885315009287819893195426235484497508870158707956248512076983717642550004299703015223381843359626567581845520624179613322155496439442510718225496404107752767779489523543997372727576869419295347067030666601187347765228564336848287346334765609027610279478225396248400288547894859467342827682770674101866371438201455434930221462885369339582747301728574166205283125669225588613807440850863962377795627350156092596159734479443435215426761116061599094081448228688042974047590503171141776111958873636372084116451412216224180846738112682412388957881754346335506729585175398860458502648770772729536756393877088055040302188504850076677305047922337179568886065564298013600246979726918826613486566618912698745965924428429905967349224464470543593548185326701064972175329908136894306656922750589754186837414059517362700177705024095676037012842906421614268436817920167495767129780234393186519092207616751376406536433288932318463714566344755059117275166477699212165925470854780277817439111123160075220222858450480454475117294745830060501843702026079541310950836299810029613863921415824696314929110583455557951989733427245700485390368610908441092519544664014435631749936028606114375090382877751785101864045967572591124504864234981525938553755581397665080667307089986627836650925226161934353096508991971831450009681150256270532259330820232494397935819340991523132281270410287131996272554833497520195765176965442118587388792852299514533255446964428124338283507934839944199008031166306741798415606658352537861385740393923361663864674458277453934268025965877844366983515022051017424968712472010292299823271941142772872041018047437271412778627893434444640075200670538307631658206877230449319029507555959113430501739191314971309401558166249101616789813157976784381574744479163382818764763025790349561301754975059951089766319128184253144999126584833345330053699259509399856898763736260024268501736909431799717385593387171969871355720440992758516282558775802604958660523213117553166256918509441806522839335385501668100202896525596718446433669349386397530080978341132519355468063785062685946351181579758525842976697660549966083940413076562994865781626270718868718580236987549053502541855280936035019674228781531154484160532368364537368591773106646973461085673111313093768384162110891682087565035310141616445847189427334953020354872716674547989011393680052607430047595770699617078446797859274920984143388834747862189474192251626858189659267088461879257907453615288967778165514844121155064997872562637410497903660239081269267702917895492796126036320211004908606007046896977789038868511451763468938494583072329747757083580571415638611168263046484609399956751146517445713479133739014608282647690227150893045483376807944855844392487194496378548589222875752871849152354461996341905371994256177614988911333237637765576045170276991462875056377615415806301515601029717750457610892158699005330106949624289896793832719315784040576660111903513410316500399633363861412219167267976441320990785388364234704450882331740498137108100737259135204434289034278721161819937044252607516176283309288585390897358292550072881990791981423849305637604512189533328383695781777201555431159796032356220900125615198762782371940052841371630990013991253566417308657452002689343520975390876378387104489351354813123514063772539660395792044231488792084323768018192077899699490138780409324639920474845404318252852032696769842575635399470022549474486044107512572551788497368687209716865323372331527478729292006150932876691743501471190196275324048679885372931111157099930942417938100762103710740656675094159867316195562897928060648399978071755716860262288257317382687283171776546208387111047620339238828701451299395994496707995734994339766484521125862254346064700037323710756206286176664748938498767160575095570719869311974062164456033245002404277522348762562083970495275366343684098445672883921248974744552278665463085208401032063114880505972645458642472331724857112245904247046934586833075359710227182312281526014467836470785446723372010991744505707026252786344057819392470502581925015572753439805371358514619145243431855999009805758931328417384256402557716645052070526055109656961823609273594449290419148785031771894690011964334960391172743154336943085959762637476536572422677058427020251431416819360121689692732680830375024875845676450822805979157275534889297121672388523390972689466115536627509388846856016414274309478826887490616848896270838679289884837878358868795835599815585965756736052737071792314343515959149908865499917828033767349333984386703217436733748910839110260371343898057765054553968581067615336730766462603237685186049858110109103364078966180228044706462716627441329931508176006699605688228033071955300546678228939211601109307319624398198654306694840233389035660425129040180222725911131606400295151009208197826877387422940425220788997168674684978534961977403481323540447097038011332402124956859048152666481672696175517106191344688147865298524162235391492951623043363249359805715240161432490803448542826881445041608544123058779984574538507599224740452851508854835130323184882104418241776935949451521481274980932857232420744820898527814722231487174135671855610485489930847753192789698750328420168744633391585623958474545875876671591411169280852688306206481603281049923404840801410305425645373635223193532672999287466236378813579161360345669981683282011147023262631736078154094170726614933596807771515492282130559969407718666866761668345572429927431396270448412640682236711741241562079906677977072029285380752709750324792576157279284529809924798447811002961158475440738568487259724649278325025270760833774733093128612374734193552762525104483554334035786917818323828065883787929872471281041955890452251488009984285792395177361114577665069418985857802365146622900105235496022655712633256092134917079394114299335867747383444873936574922261350793882114042212125405669177740140513335546583926522630463998753921284341607094311726091408917068410576731243802666030233013452960748742918975121471569046448434033523485141707574751683770601796236853327038562708034867739996149922812470137173216491100498475017224691282490815223578118489877969877427414749370754637038473034509741272941971069436140618070009290136077317163619161627615170847132583494958872821332785111807515041597318689357698399634219477305522594311259196404796721933100954219877207321809920333308125798086172979466481653017578921033187423151037508586875417827479190293725047574026898921220789688858642598281785857244718465679449751317962878781830284727027819037894028031946589910648149605334298984720074212309022683497966014155525931429696904537822187035686833453146132675123952978127297460486184831367397932035508870347649866134050171891934738411148019391187462900310769738945463978670068286794150202298545600741636865618833809569104143308845157471521757849768246741079409208930789013353308768145985119491121691078211325107154914177486747137318214410734958094054532340836009145856664174577622082230526811553497374639781691738106479857770478178378911857883280343974326391642656051945344331169191095689485302084857120570302111171256923431098128757631817739480516971876225667211008387753625455848602088789825129052899671992513088417393867138407552952450237826574838800647807630726185590665993395899057866578757261997539013736381757130136888103560092399443900016438662641636491789610413107234699364694095206551645970253213343569418191214947956295263770523519001891705520836810582778924483052202434373594327811195793734556355845112509154817935147957229275254108928909943638201043511599451479714807913407321921787002476450266920972099100869778462421450321811403196189697424242369564368605128189985238995461461399665821369839231093370787199942676568874118812328102453639169749254680311950930554339292784868478910400771487945055971138268222424291392652923124062594692327514612511057873960879100549535865490007635631314750018256517639947979417235307342308457753092017754279867237381649314520140989001297370993792850619097593630655846141008666509058732435695913360944703120125939294521361416020638189307674519170511102431879627695040764491182908210136374833776699982947713377283615041675245043032303075021210561146383184255288011776579220324895430451883669338784949069183242964129833985491590331354402126943418664730328702527509918673212238176185552416024130027259700612149555727584728746326160780386559922791004833774529816994437734186256273963707614100982515112379729756097714928730153213782825651385119436424518763538916880011952702825157602172024118120334655341062851128946541791957557738404999241350135571260895163247317398509513946429972025795730167917327314192813392540016373884109359574444606275735447018349944041542426086344780510522767998870095996808029751921191182873489599648013523717943735270944908596672477327400821650055096607156033817084684102011752800101118134038875715276453971583379080817251389625384325525694299859531831216572027122409514119631008602340804155655560277184617300312851581021393109691550170796025663510090010420624375573781431323786145901878101516892059116416088758818528515007626817108463264906307553785631569108746281751232440271460768934444124656566260257607840260739895758699519044953237143679923812985115498458495992600035603751412674433161946671139301947471055253838448664556242142370613317908407251451416180787543010981153149601210482401255560409636692977751541822071344706010340182145098904985016038116828395167825201747614376784050406645803074079185524011522947500425565387789907737860720690830939671847022461916174584163804804324402841981146637799900108917903873159605940123172878645577836609304470248913563309979823188432558083932343401025654249709616588009531626096207340211582003484835928805275990799040258060654271511929779087833352416071900573983602437322898066354354308190851171863675119381059310518805115321846848557324973061255128340075778461875541959124154219148689167665423274447764755875280000888522564767257550438495857350187351810971631323911836879664133170554614831459098047005083395177309134633143839976546513023445131111920968843640249169342671779261054032268185186772112564041074967629555390315513387306666266673662989211407347588778186963311535975207324525728623040683391251385843332025978436944181599359819582553340513677268128403916351864449119852624941520743460074737488841364365442392882881365861339514659065917531669435232519213523190150745691681814209049521285020962960628103094248731794334715863805479370436003424715654916694937533373085238595842190303054772005825559513381160888518766854272549939913892671257015889466928813535527155700353929107837709066916552348498823014667151439515503928269299440808095189543322085162210680757861543196869613995253078708611903345519789306240644294456207549572741393674016670158801512698184674134504807347892774743665794399484265432229303563650737273958788729927022122488991359816180272975837222823700433087031520909204562434532470963437201018890585579683304268645605939987744838944443927594861404106520860413640055511911171112665826516462230252998201222215708197835354673734802050883277809590215860366485304943444795049738933183790550050091356186912245657757121041881890163504677149729139433255980041309968030660663311619945717080160908847096785319550637788870952796940995287406525931822933323825042998157246923332359009841951239077023419974220911948373514422097068596340383598523134379016904078520778300611154563499302735231315540490114676301477514268109430775346984530287881152812832621891743503954854340744985770143863364981992724447264592548564003038737200366050696861289785004107836148947043584415474824081239129995930493626586670765423946662328675850053833092599359528880455962077098631212816297454361346457463898319174327381759623988090617324762567142321736132174253551613900335042015669339445033229250602122202482910914227206477550154422805431101616907929231761414053738302651122663599947100866053123652167264140360565159140510697806497198244123103426006079824944469782213697862404806119739173471944713203209665687296631960807884139571456148098253666005365043426424667918086323925077166092401734954344295898968272989044581718870367784748379159677479276661117511244827562126911556668349980169617195823119180719943263179625411170783433422501868708597761943015921078577636178921955812652129082767168896285412949405758755624081685507408229098474995841717067631042537697458720544473133511190790051269467362045469246074320440510714602193742197977031232704403878410728456034935478175038014783395541057450740164459224695280837773501849464319234567583693239569087699965111787884872984414837574971547154464168173294265394675482270022775693858545038403358578355785580275265848760346269817790864512965719685182205232485358118615823166715185442538665270107159716309426934952268655043491605635370427307347331917969954815285828549869079377502667412878211019316927909422784369191346057616441269078637621447201317166428039275125913533567059900798403539412145936457558789030175734471276993454375840356521052472857833636705727584292607738575865023527786547262034997598316906308002919876115053001561965059167057674425855528274116082480551975774934375769231095190551248728996706511000391700770957819410322006853339841286840877086984389768470776504504907258438702337828996909231362678378312294461735581604795527649922576131232049098219146678520614190862847098287916949817419143539974739244780186607755458413829038692332679541193253578985854456325548506494874087009574306625016942579889015752524412641583404319593273200890414822075922247847459983226545621016433558225544002950346010677310928970344315585583767251102043435394998438336826560062921688107752062025311791293243301284485652607419708910319542783527244080805952419163922121454675452582420686371939340532591041583672103237055490600989223996760799879684796498563209359641541933686052519808545191786482115219418868141369363496551611131619256839011590579210234068440025081441343553954078037089747602554384137415942292164882783742173584853738798179033530292631832739382993317248149994993938516437434432910794390075203193130583364266469523329472559963145367874278507195433246539429485286739247375373532842754567142217851592251588068693016748964941462572440916117529809071945818166705288648574994118249295669914136054520040591763920130909319397971039329947773530848740283335283244213465777998442895881145183426694380093251239027815807330636600223362746827528313882703902430948263011204654026868142240366652305052659218558348064629546331480983331637550378632588319158125018183944720568860493403962217408392759679539310808099934055027258068707045357596645133044256919496784787559993333773099147834719086192371842154333072803415724242388801565513650352808248764380203503522321654459628876953133913290860220745764358009046130399112962435847675929955121587625925146981567872377738878299290681633132462450804745296855022313065213547592580036583506498879845044920794169415092676042386034718660460488524503958418560699416833938133326838897327319624930450717600006925907146939952432771461600186949184053679980147589800797822369193644133445715876007310434045151167761358094529591470942627809166622606071873546528554329202122112412778281768594573103976397232978771307926495466642983771229726491780256134937915544781459053816541255557467380677682713706878152135142541345420764101189164956255966806469039521547276872930066962507007750920323177443239833958447702655907935565437092138355861467356901239129817473041591818509978411782029236981494662709126395601517476913392740637346631463644325270392244651976648263453429274501728291929458280678785385344704464053778967419975764628262558435209665287261284791209712257429831126898155671143321724875913265245430258700051684414593648626146493294556816438055579754484178718643640917348262773271931996676547830519546597752501039982630812757253534033839528264834654608229063563703400953389188100320268896778764098624715114930751067308823969163979357355806965756486085181012918180982958066536955111289917770710681482933948062214227519121583973286273291643189802932475940130110778635655181806901144374371169707455026208499491928689841653349617335212157039059362598222637626990105064119452302405631154185879380413595535925774415028463312114942411119521971682583115146021240456345800597308619770277337013306792809644244759843929053543576853123274552771161796107587891882167901133374064370499188835064385341929916302880875078701491190211199525541287697120964408165560517462489806786064765997875680447558987974058944520434686968680173302913383537225204151511522534055885739112265254843849688330501849429980706220513692272720358706472468360369714238120689822363310487423181568501843435726260313344351154315612547134070440171997187770257212613386200371280011386342453205934242555653917668783353941504364748157230095818148170686016677051712838094689733543563939577082902597433821703179548003389256202013717769169223317767653306508241195756014724268052509085006978706983356266285024897971103246870189930791779081897387924571317099723780232781281706469681241376782028847853576989197711372560160044015426673002835612301673430810439104908102380860214691309447141834441677204753284620985588569407928430691778869451129882651110077220619797876631274087448159696198408754448004869076025842711581709712427256162978573921625905621861536958993690654466917060035636154331702098078669124367948444996851504931379970173233348479973255080276080377174770365661592203759470349284038116839614606952507061218925655907771411356088884261972429788139755418615872130959130819409073088249196804749286687749384491371754919012038478269598363896227932502386447211527081468179514910186292198719076796534801968418924444152968785193492911132449266095393547497653852612424037886737783126563050796168953239917745805223438935434338936075888992965414551718305279600070853055334355359762101490038528337401454911905237918368919107162219109133508876074297226738534534103447548628656102048400428825918270998491824170496226566768649187732904292812465275714596533852852231613264104305128512501897287882739883432564393265206984957996317444773059195417922412427426082464316722261222267870401689768551499784243823493306629124196336821855103089070094478045938702669454486624356018350115370876366608170425496384995141574556445835484769256632823973861623502040764529508869587093470253218919475738367311655128940423453537507145908793003011795282700899651200688843997943797906556459050788079336319483005324453572184897656811508847818688839577104490019580940874691787158167060186726788491292942873267612904782084006537190436359025668397083127585307633092228628475939235462584334847354101764137406389602226299096917692594354569481081273492827926002803104546490764489198515931474582803679579418424630822555855617951450844215945803511617467191028895662283135652874989711399299094420835153124010516411125294803150230161750125611182153119922318656777110419589696529661897060652776646140231555628442601198523563141438937381130015134579949277224119425384591276784773238096576926067170041287796064588854453560231520675237687155471621185390179109881406075666588409253342896550587057223247383211328302795164077486578475613483057914638375431077823182780692541284527731458519946698886135101151775967256441103835067898654304408041775924073837885774518693920590064727841557822160781431988437382646196659273812319808886831407489513333635635586100496081414348517376059248341604680125505079044592700376118181248908674430322189705597534400349233367561495695360195744486021093976618326472462101844378033768859697264931913422090399909262266521903359401254022021627250469767223513758272347077994099660515332867719317201701589065531336097048468245344902308185588876749472326867606425490046472897710928865911347284429209808046985731243286203064167370699054226541239224380061042797854799665871143100895047031869445518244191528723237962573136340914885234234292043742432195222864214995210070622520000203246947043893219599554175779547110020240995558425988636454997520573561800474009780447661562819715616410034769151581320843710454872105908819847147192775168064213005980463285627050566016784619191427745299866638285234044146992213051315379108705231405896868628532343978096179316270203208156574484940509483033765604588640214886416026492710115006894678775315137286833602124798662135240235629339556876738173571814779061962398938707820736781680350067455360356391118331225280179457137366347418693167032871303095925131051494312324833337479708321080297831599621294475797562946565409096132524051377041095274801428440097602561729040599989594650327942370502629668265308027924493222535300887194701777663893915509073726467462468618626212355348863725913956496526061255437982745704282899900304058429203409679447308259146737166017207203266177265397577706367256562283518318030321735079550755307391150003515087832120923404208152609693272855517752346736512386717402951822215316645714840967382389801612372170248315429976327341558983623571928627355769603552517193032096270515346748944176824298193516963226505142793950561449299682080047940279410181674447206202270721862668284405116509597544843233345129481441066192563314935161611180017986980230044116417410662898649176429997886271385284450057441560120879719351751913634971227741946685107286616297301196800767906331543172652613281257825124622858110274480248530729501713290693237354470119793129800277523250047652053980368701506614505678710637914686302745124002123183877550641709975382054221683588417142915431879784961165033455805072153179906741587256513390706157229340453108286742241241675349720924584467553989967173446543509414183580738480998027037603798661087756049640852208454235751340032234113698152040632953418931752526085320855387996807426685210672518420555410679102508932269057614029509273047369668776089689842104914762998426085882563753044736409363185388156065275087861389715633221416438022209105889562441498577006831429460043848343221566519647941576378339538681683183168990704088733823937262019920765665719847317285322750775990759121048795810014093303749453704847763370455879285914418395552385959801480732097126794790012435218944655902231179039820865420142543851389653049442116778190657088370314298432007569585032618208918978524706001859444794283356213305826203973742470046344343683246643857232703992982779833037825043558521795275339616792415525653871727649254428938764153668329303711192035337587577094280967868037579429048618951832261514768189686569348818612466571576196463172313403660165273324407475556505425294709234849451540529464687648805585393232339179889432083771886685173177681211150449206464625840646746925255467885349577359631607061319597429214561214817234134744205205426772639516103240005354301823554519517187259250845620483532816761614209862982957212470282133909200241373397243689397860098737469705832825051593298465511408429259875758901108079336010231743924129827004207671609415895563524669323343046769750236975480533113221952933976315331424901386340260794876838878416897087292566153052290005308363630982637260498856973239753529845429988436013369694507072277418638263739363643206213341931832409691350781364431853214658393762050343904526021617367966291952674037029082495467446523486777818136345647771884648841631936313371764792774682170722390246282810540471696133588027348401230480547898355133735901714229052469303269857224712652949587733585510365897542596944772247687855427023374162108523829984815992656792687048681263976072139476760234422550609378905809408826268557906402177369988437512718014938757927619520148651179335825493721613227199322581665105005134528379598479269080711522340333510287516494284038183423598071953097307147770891117128353773947090431652912965399843303183636556208285435847890304510261520011703102136764073600324974377871154212498014705589666959719333191796444576970675912690809986836670494276227281639984470859327356811762901160645558775123572239847725777544979831460943538588855416067337933128164008179427923627125742100264627541910389047619628061343416829286000831787651017355931246019651119919285060051348331954642096363766240468993483230677518497459845205007019226209723267983042288208731871350564233007742441443178466823180227677669974498595250195588165197581040647041057237056997520794653892114027924651227512999069193970687286018417615028116155384506333323955676346300105260596383936694849299443835104631093586768841514028017289531705000891500617710538852611522749569907879343274923686819242256241108005525414962757564565842637536686817450129563883219111826412455557082218360997947035998076579403985798118639636783290755481614316566530665964316107604600579638884290020266206814586917645145533093278872963042941477298202602815153424546464115166679719036014423033337673676819813458517570114981624619349570181998478111053077012779339247340174152831520438031065158215166005403984059054332289926798208904587345608058638148723194372667561218451237752548612660346451935186630867134514006037692666483862402185939023340264825527675433628454482774584094068625418851895500467183955000217731295429176683059643077414194492024939639551601090790753880260480750161071797334902076199616049131029423090996764774944455236231081775728644858252276601063596106678822497009577764213963230293292107356540976195002736639647990434330428349716000797125328068696164010680749657553556850851747211039304733380998387319290579092652912934886311169813127400188133372331690286006360722625837164854501228510569707058694158159366683186272037780230041712020172794900807214428874470993166976216190845237160048063910034218766585851697738304280662833490870534777009777773637562369612867369065396330057066130140856098474657442864490371165701944628755975780943253945249806050302005186638364493799210321455906628514852590313010002288836372870994400591947061155687868691132623837511507507352698581838368662472883989593599950121821884660098971045993762293862874963688067909958438567067121768096537181585248869325722541980764328897480605474256507111093284681112836335046223254935217584939285694207557874739202783052756396124993011815595421546110740481750507675546676190865853619164061628704349932130512897613829968019015566120274780250648971358931059377981454100933526071175406549089502937051950733066823018621763015258344728016777299835362846638274613077199795116766955586664385114080952383516473879090045773157871828312642296736199091600529794195021676536766770836646172610310730706728322715026073145170271650203841978245333482096160985340765512147350129752628943090972222315465579951041101369483054686138277078380067131306332670425127493676600888417911718993956338495931984213935796060397147498128726295334198755721511145653168515004411430163033764636785722942458378057983952429508165240088182918497057347371539150982215099979895038286518856184236436657864777761471325274359562484028916150327427756190970626001269484591673594171041648327325482302186740432658610578920559469007278220294910307758899238539481679666433686050312935770547830066949700251715450461501742720570541722808891804785613788470429812696959321352202761890207589682020055460709620501276620670681617263798572200682854087234825745254896257555451272008250445755996836503752864104671910543942482348476448312602831160965055239774749731266344686230517378927570658736290841888465460245922447967323761076337759217984094732553567730944329045213237796936631073252742769512368888639989291626434503506900103597437015460942905496947893251286622839307433529249418303784754970719383865935542975454889251683999431158060014092985675183384748079825000476968688938537218346594199237386510432627273447329791203146259524156358162246732579539455613616500421536634242983811486768166151317225005565433395658697310181241802720604036169441395324384585046540431643148480348210810556297957898929741590554954596823174603308197208003519452328342412046271808295485822739569907015043096632105514341694137594987045527528076997691944719423509447049755588792822708629142844925537420771632650842220340660597082997854161812255191350766816484510967191352673589743213974226754001060449514342253812275142761898801551474199275192580903692074455542136170969775927793924886841295620677741149662436172761104968187196442149613306713024304846854209810609552304640871388896898339379524559987695068288607178047006704834421067948665358705364906314481236563152239397431085208859940024366021656859395017583270610263971208552634031214698469086259843899854621340367488190922233318032319772798447845853003685720561690834682526087542571306047674721280479660245321454390798429183976725487583487316496642702666661991023315338858503941668344015707685856771206224250833266865347610190688195209575008220378065317786225644382309852255662433800912739847152504587455719280831682322842577022646807997830061788904975735479334533598444938842181790272704806231343346678726320260083519635689012672029299683121158650975211817877035226986141057849844421120528738942779719989082759322977578597804205532764779200524117719095729997491415208522076337527020933186216817006694921603876742714469943682783310410247326140358687607947685856152831425901530217156511129953293983851355428924485638663998828996389563961133376433619119899217189529783829305738726885044620701853657669292944529111791549574011293779900587022098201758819235607232614042364726254886166702813038210665620591607049546013187539005713848690094509327451672090739861369389652170693229768870440094955663514026648933282184117498982080352656752046892607508065502142731811070391501613514213504922964993714496745958893583916819163570084174706865903476098012792978278312757514982469035045564363216541498364067468601647420001376544981935418410562545463423937678349816938354322501026863224166495168177884091246012777131953418171825082880323982884710647534060515461444739207642545036810625920917734116801815879956860623887837359966854133983092118911127540107966745568874679322748000988677331596980262792556717722745896327922053634223114240676398288477776527970036976671473207188310483479866047685246090026923392485165323961383416305605828274247524723125031719781197713718959795147252155443287824891011244047918246690210637813195712564053883140894367338671293001887489834673538130653760247454053385019923503251690771102793075753648954275381648110940526690016752707502265250208969601455414205142093284077882839948189600068525699237367018264293588559597930260820416434613750536224995116919078154888852344956345034553834599920435470884935236075633257423284115919961844259380364311844283749984620384250524610869135755001177436434569618721856992039092126330951988238481609758083662563722234979375758126195865153825148607068192956657487600166432449456600456153390174078889224237377158316158948512169738421601750113525616364951518956399409357289207874870979925726155314586544845362366018003162182784288992490341799348317254580582969163172663589421674068010012364692297219901117736279131686430748796008200133771996265798191745388336165077034358741126757664731616992575812418978110047486596075882919369443552509503983250571176740029808207165115644658971947406831829747807560491644519195947100472270804273729397510435303409604101434509346949230319363676412309675695509011387467534087228707479412519084344905608325581384990520504201070240668839479095530260474253188184308793428710260152044973459695213696924104452143716230122981829362108199477675497874041503443705799698313194713719543864969199918312220898944475575293194169860787180638232121091453291354421918487917487727557160687836438857118120261375232931003645127081564252212246925326736158326462250596925790067617230897202761545721631845126508032047509640338850373398446435163540060402018874802550034511016968300331248532062406322756993048573798875851608397514502126909761622544578181057769853264779733795152506786334858868256068721111053783583294901582416642677127881616863430445525303996391403747586969682509873547799820415699347702333992153804659017830485739285628137865946451137993088443654356171328352062588427382660327195173266827339386003493801607949344675376103703684383183315941247635930162995712971444974469219647822024515887583960921262828038174937665970553020423783002338028147689132563364609000405322460640270742632944299022598647162241437036444082257172077594834823873284886730778370446073467851574949398718632232116173744429500345124392243084657260059835361365140502881646991621174845569092902035787587329553385844931208265177066393918932361906005639681154003825247456059462057578321158985535412245953678556534612959267192940501012366171941364013462899336221552476979988000939847116250195775385676386340556785878212951124164488683527485551746511451378268157577197263399317769494497793210240271753463333641936826327454443085465872884361609097347121819122946776555108797075108684550296378170716123414520188345257062205175445042740068373269964785093670562693638815072504586983010533357309056403480928362647666617271967665668410861515405430192877735556941482535467598922446220035003810148924316130900456076889429024229316520479670868245110893383165312046471025668567252099645862302325552937261346599712706406995599994287029402345446220763138308465195992762752715716816328144864300472920613695560833750823981922136462602792559085618147599979772119352484198683831713459880197180974045472914047023345149785403544294766498146498768183175815017048296153685377358405290321167103921869724316232188267309500466796388163756645640685203523515342283316326932444366968045438848634899826519515171986009365902311807241688038247766054321038839808275971136203721227486551514919182367473382432153678895188111895933825631085553439117635350702467804449964735665067950101083523000178060542842310892803770447316476477626124339359175000626440117109344618363077859019675454721398314384329217681742902531023447425532444040506394332549582627815921962528253920955942516734895590308317512376703412196065518948712349113301776246088685080849193759366942557773600347873628603259815444329827857372110744537163378012240868562754818301783004327010707931194559810320292211740707963390262680820369175318681188302608872968360530173725624904943310394543290115415476111572997522576543881427643867274728735585142424552863657999588231273459554550525274490486283991373877398030550255191781074760092041466148411954088028461968981104321150535012444754607118434304911911798030757638618133783544732303497531983034543876925821559591037095115478362996630442543275556716202596057272558522484207732560739113474669185106211361132065059846098312769744909655856224115747976137780175097544526904981289811855896044350946041710239836226626340629103916658094229901190637542453423348759200331934804425453023532318517105177543984280183819749949029003137847444037036966380745179646551437302094637331668845621728336149884406293503949742358267522487671903574714034884787470216815591957710354648234933452647020566702237221337100886826275409037782782284833861095775323669355131781258672623546420524657586354084207790896953542506940060754184216107627166496469097682737893861144791036197085133278257835546907499168166293336398547475532125834084011779904379737186099725789586966490314360806434828019658451936359182002734411154359012227047462961702793537908598811846365935496814714026934563933511893210832098445796190274824191107670980482788672064408593124333537283097925427976350936225111600987847935292596876554038090230509659078177894049610599192130906541772541764151892178503561110993614517703507595600915463784288417245258228447202759783271416146906229728148778650420205240482966214568241277618649078121147666487939254846073433512720015663629620736914213484867052750838100820972257000078350816146706330802390982836651829737821537246928763344786857849464874257701283546660388718985399242541370386293998223494126379985536432141170940622379191017840320793125154611765641644639987910906705695153065296898980257009339220067854157513869103230930904029379093885464134293721534582441517139465494092942386327917675652802652283322539779092438920960038536470541874271076475064537245165179400834926190847336389525548783660666809284496395500564318215749821700194325732989458230036817903759494401679878306863320914219070708403939567458568386598563199090618112125609421979306813619657162231792013775172526491573825166576533845925738587615211445211426731547818252314014623743760371929887961184245308241408750731143398600548218506490408653298896177858278824941148500380994226541252587304332898353510621319547039361828026076866797842288160174247402504137903158533339494874744955343452870407959223633165264055493354379573633878085669080985898522355870041259273938014425934097625345603058705102876062432134302235412748177299776071205506265811278397453838023573037856602678423224011700935751322086693020755817516741025908208417657054115154679547163756423360118735187254464311641697738886935312656607366205271615312232802970744432715808518529101601376149551263628003688458010879187892228663805402976682867595947785505898518748973213645299541343015002010715879791473108094529838232029734273450788933467309905637316580939551294892410884848824963727988440857086461505371191758586617493091692953218831962404920985910514501736796079212179823761328635914681167780421370242084538206092558119790298314274542275144204454444861180316683288528744448113345055545954080662827856205375734598559947229157963413080635129916871499258660861554256488813259265091092762789869090136963759559794933555764850500140975549231870200414607882604282549174094571304492811031409090880879251551112589243750297037528964833635390704027481090639420356353787370757568842444696576781992455624126528991603487152977667678864845300282281862443597864191954685679040763718839753397163155476215678587843477948182910834449151076021403100546545730041721774527706514266338396265806754608912853923431649609743178500328945018224107808374254322877960774249759084680249586692604441137097840906939239056435915002080947603910000056019101631511414773210646114118968951537054473029385047281082206428123314978391110303771260133492511764891341030937602717061683216658076951737376346134108597215388929687082416747691507801253201817709977714833151487387117351275678680495382997995291822652855068510106616487745408886379777914066264687055728160469596511487076065853946063189209215780549179509909633815955848464475530913075171977267750890799511813324886202269201501294826700653240558792798925391126879886529898067786943261747754633709726308980917336719631682306151405241446902334887405298823076763750907707370081821300762874620597378839694437699159680704099245089444839331417215585811607522064503357061023789459883447943067494288472503782889786332619879223295082056622901002154796079224732562857395214101346833413724296740946482969048486664481831453672980776453595526498164724945997526729523324425048796503746850085990203404013531679114300970256343116472146539037639509720014958852551581080849820237722146107300117861563893598582682579778552185396688585116581955400909733138709696223800641783486454274998723765545373412083124909226584176503357389006094650830749982047146231732330244717211266010451175592911000460888973732539900841275375451529292310620624762636224126418731738504122690072784752440299053015254082680865387074760386527308927943427892702242315673703108483087152983752229792136483665009292203818266941069514305343017986841346950049556030555106927022051562921043989470384112080369980488740492531120093232395650680637938891339975482739565233831793228074922772338757518514219102886625445113342311751544968525674716605856892666296630997643143477455846912384858996427625855277516795770635690060816820185375645678283747181838593570474348829398264226140835568521881864961058898588871360837453442833051319580487669453387338228301715858708523135463706874336836881016811338788736604246133113740916325345915592151699135709777081907142859066121709067091214757107678601133166451718357157480947886951645002345470062742174809699455744101789195254763384324437921086346864756727251415412293636573216610812361253228266134163734068418335119864758877076214592393004018986934772022827931664714311740740076294656236334371278482702960721301292187675548004971361645029319080061134926210035284810295764502808542762686269232640159021450253248705701181566846082409346287653232925983766607598480918192154168660172634503099518993243864463107099244395368639715145813012310063072769127309238788943622022614759439053298053412804868204052761775487866984126611820760897016229952632562210223550975454150617689032654077029882406932694544783130153911673914308063189973713834539044962392199309319893517919158992557737579809474908930962878853078529951225379322320651305039094942867680426917289608566304699633766344141960984521171187950671033154655897062439614514425324592807303258357809279967856372331289582086366798250001449384081904686321622159433549263418335335364843103814384083691857220013442874209625725609420659224928858198457560712917183521456885753783814568372361879738266316565215890714113548577148641111622601072841575338979643659934285479444775494799013388103163162189591026428864921312905529931178636522059257487686402009491604726786062703469427503905054211592661302814273718530557258420595088053315319313844373334276601489931261613370166081550658677970446370997769006827562707612353153990851889719930999180363289407427428682182145036352743612545443243077819548466033445657640166691672271562321895860874613335354058136898121103323250211533163859156353708361752318132082157291478808995101522686709894755932842238794203851315694665141064202195306443086080705792625731333459912761204540728261520526678568020223824714651406817064676877083814209752509069764259446775830872391733057519446937891994851360513769933519236035445373632552574042854566742031515208927960642038687710338325742488113616370334735287309090162498289904109597805977822768854552082114919395640896519926336953543417504357460729406431058196861850256281396147101176095757819898411899430098134775739853735762236205937444359883406571451417436935149892151707202296923840659855155404285529172978296337808215617286599472119127976421790477812224722730762731900034227855070757317794460031843608556960950370789785504461435633223594928548821259154378714141918090650930076050535854935964265293988351642844588971588578451022060306085921384394063140427646401399605355750499670730883379278552498983430624691152989848444017160567417376004397646254361163745349345317371273065669919105517966771245647164624650763887479766737486923514858525702100342882184534473278610778929136195224127397591804759483481476183106151816303927971063572916677689218312081698624157540601981887860468342701783903827991863437590730035855430315765371001449374506044607770621755985129152610311954885130149673275265559876745340272798501060976969650943503113592146193098021657207181942453837743868402322108082682867768035502152789084451021594128823024206138039111978202058000689483214799724627770160746124004002891213587097165584812554079920693624184263203825943426897049383571585700065983225379557575877275559851393264691812191965811760657184880873901899317938476532877632655272301375987054452840403199152754880690312989418587433363470118097724490443929582008212303319858728821465030014121471186070741657685540861228442677456914213590431814249000714189061688171731180027592740210209089540857935909410542432466502120196954489651377176197494841852946193665031780923459696862775510431801460917553421118934713911481601509418665903027642824829381136374847154253954299296669488175678360428295592650268062505774565018466336124407995014532344215867498205502678298186878567002065999779004704384486938901959727201399885629391215882018861973511569592462834662728521001075808681411099044968766315839734400413820371749806596525292430677383193010851415790664034624144513524086307351643218064605372367386989119514438360898448604209131959551091612731358479341866608228510580973330834978151484953823744015224242920299314398621722254666548059499846925037991222797969926597473903506121594439832946044474849625577882202534181263660568961190324021770104511099958982982596400262672233822402814605340211648278936805509183036044231142432280886639470897200000315175230077047034911244524515083555507264711885055936387650858109312066426946114784920972901365196046479278109850400648709534690758595410253758225216252432224052400660763653142383163019847456281586619171917645489259470724333559495101606404920506540216744086608084678627318929554637976181959090035494896473887436521106019468996611993520829806245589909395020947839860319173028988817831190474971689050744618510721764041681581806804457459431780307822511064311632107123979472219461179523241973079887763801297442913716746830267540804903614748227774192799088243944694040587476474476334689625559995281482234647949540654867807804309022555293004262584723060037026803271297629721655952617532895133437588237527627534681619404381590841107843596741395679240789374958846559357186442396518167291231929991851950970169581945351624577354779301712980638320434729089959097268177777867261186349055952155732792732878598181129984048044172269684898263590796732800882351296667524914666131084211191389113765680057407800352503386185068615259317755351814432644630964772028347050657160411766869922394427309314764482326556454575208807152667189154983462311509416714313461187442000306591766120266858839045833510948706458670145064397790402590138759948963126741137481471160807322125606707344021465826366201696764929276528173942860256032579012698294646447118853886953324199236105913901754789805737921648726606027263339681317275035618193402130188927184381301915347408036851260736635384489801470653458846663159954479438971002131570671860854392510811624098991247351262458845533273618236912293536557580619839645536732142114167751534873926985629307736806075403468547246439586992606274063445249464910090439924439428212478372593589474494064960347224925110867853611016011152882979600756649984394833843199271156851760191499928298418637684096654692886359522633933050386127452137446173141761967477514032719626568672976852084528387145825055698523024313636100649125572429642018916494719811742706257564372808412815557349911485757881570941256567514436548102154990919012003181070929821229223314988939663568212212640105454959943681991391818259684738028731879553739333302668248171246198135771939864070117572082594186291724209501524673964719957940691202845958943678527142668926030541347504956365521485882424281558690844978085029135171235344970642008689329088356529726016214948281701820669809224948792958318113497876734358418099944333116223867592300527510914709037714342477146050820865047171677494048689256962392897674647708478304805233564180505274375191101659500942708702645288588329958363237277279542254527631806403206859959891737386887959956382199539266809186907796385918419885965587649105468713511946954747127333523574333591067836021124936687089785864325306500527040952547695492718437649785261953119376532672822746841161697842187951506064008860120880756310545042743494643176454930540775075498354550539006060588079559119356598511212391337354449442287174876070155139087724076100204482591247770020937727452617937026816180293744000124552017747198174453592326371186234906942877651120800475601128576979075406592861654242730716183525731445866299529267515918772787439805662589648080187520332903294407717239162889801692311629329813647120890623937300993397293094573557072884534147948340036520569153398920055785767268979291126805695519635451924639497830814893124291721860703321244910216424193054724630782468092259642818614355337194380058278777751213047169681541583085370500896888089170320624715332520695480564624609259774028883133410679759331967177193709981373559554443178965144747038196675008285389269264739437100307901531198970187288399954538400665697909999123189503919865693261793114018732808133475388156913992413891217218481741027270465412386336938084016790450829395996973981816642782861113009741409239162616564757306917813067962879594132211112752800050168498057014890078391155100009187480053002544263762131258305232445477677414842779608338312521563631042938536297172096611810914895475663999423370033259608857959750100791093865962623016222935729719743078214479656849389846925561469255828831051252253890922769860433901833163664564400870450155264224664525273835757666034086262317130140013531065677013472455723574253748023431138088168464802105002497873701263077808925336747017383082605128870978995991546321286648948479697834873112945684876494313749910667099422607125270420817160036784194799828493038520626428027257339018445916537519852411067647686574281986750833150103727186011856860303545217569349445626236034360071194219761101311149972864906387787586665451744357373736004744037178811842214460385128404499385224330239325889753434297232264423674137775365292004676463720253454722503106754433023895989231481094686857795908400282381014334666697559415068174822704399157036149778488666329585344890663406538592676258100361684433261772667591023678640705606525911771997811541404745520506887751137286840446188563517453629051123634889656891600251513603749944399169052181595285905867564022902229336688206429134314883789627937934193188084421044131518074627916547456538644101394355053901071546516002072422082474325679940770273986238642821863369757510203766514449749771196200272309399362998447252610041465022483898082688454238920978296817425290118566340047440349024437264300437302139462637335828164185087378442818349813194256829558921192821694383448646807877063682032857485310213382518151284902493447705724220902514972452473082799008396968871726573331839354148759391891342488858890032158225173449327456445042979889368438288247404941816260851361508155811917126010791875586482058002795286900531667022301410609676453694233470068068600672397695519227396930536816628384024662310177605445749002955414217098749986844915744945592366785625413817476964208757143530457801018670871343595237554694507335830573505794480589220261990168079234504020939364673920821977536681438344286121074864224840191976009942975904049910117657653381707969790821953213407871107203577060311423790182920954565508313956599202029530172954469502837809582362034452044679973751369003639298148170535510099916463456572840246148024388441081937622657247610344291107279654682389885826771292483596994350965646202733882946704357955877459463186581459929615577780243837575041887215795196781335242766503729886313369912633972161691583300328435288726249870783646345643134645874401958868287854145067098218530453426170692882021836089363298566732081379621365228657902954119415890042631366601082435010100001194726050980664075623589823872621955679337207161582766435963973079699894914392617808085362528721516197305310214947014952483056236643629407814215900031454630754639952589283870842682438703502125964234916779710062136540311999160781232108170792836422762669649339321353858280563928075290411215611030701199776101085968055557936042466018725840292526565392007478343360024621059783820704658619584666579803571621825135864670282167734471341885194634834691322533061245288964073380352703773191854905185483522158202472332109233199956418946950026636122288978736041019882878050693441190901108623713969945937815801316035101087932727359531529439782308979677674663607606450200525272446102421852311693650295611548624845300313256952456155689436503597383848154930898017607272640768519785342345202187919429506372241273115845229637556070645324174830402122110070515874025116111210524441390778679369941746378447706022915036855697522420744989644413994193127597738869604954994902980245948393379463515934607913484187544051025177537369374984977075099263677417672887294847685722588421388968389425578057979424839881965393845010039693215939014606635918056020092823728226929135811312498550430014585073088448820092729492482830314192613349278725076021098418469050140801696373813149587391166525283522011617788635362875438561644486669186739304357133300757873225655448335600462986236609661798650366210325711364686118681920943187878744352986255543486159446640444941828761464206003380893452204268818020867425172452038787538633937523576205619355533034989455286373792192627949927565846839807116906371212531333448022072244925117587435259321919101120850529139602331140164569979494107343585403215170607902008502801287893450595302303287986902422609270381979794600808100326622570138212682614254468402160136883589519221937658878476705835110321764663419094250007047405291333827225019003654964116792935120712865836956129612661143870855151119823591324070266752748527144823045839630498581715073790632710427855864184618757126000286892865427992985282339851712189404101066048513260461790831116750399743475186983349780371445845830357576265639183858020894701485833381276114163067884870040558338833512030618801456982658263188626986386017885862799690146292628797431973868823742082781477492680747597952383459072579959757275212695577221853279136848183478927099067553799796340828848018391711598875443126233720447694387790608264041529321673922439166304562133519660998080418574463038263273723246739010524874979229034647949438024995866654074805593132793784092215354989992397190954880755879464883809988471434252281589628090700694473315759339995487724676455182792771218170956190386494936735470618562121880164255233464221005543233893022428542150148460784332430916764490080598129122980368040029308282209937143770723274097504075174655616272332539744951860390323338570518986655639290718724629814549048841770603811676268992362977177048023991078903130493926197269242250099179649934855160205803470795950461617483771020961915463550681636971083190938452774413277901059368003281239844953590276400686357490319240934248000947310834181630872644658681155863764138792965187774325346920477363955422009436781989095331586851107381572850294130876606577843661663911681619693174495165607215207396419187393675755836334105970741482945913568207322574291920837259056666566000419249370097098257158296882864610056912423417218822392124496240730788643433118076102319948067768387011532341395810097499847591649377233851806583855299623576542598050588207304621786375965499438835839177202296563319834668350056600538781307137350460785850255434153413109512695929590147194793089771081302220477627866134675508953658699943563117466852957246340329260048284430350364833411639235113821536653276953268116035101026314193924384859004187370007980828105366001212183827464023880738250258267471725938993662760194603118868444982878528113729263156382414565870564497995744010945979174810929023795718632586692537763438149346188615323788054687539251618994696123453424635857754674607303833250734277638371464926434846645838895703026522492708854973286544231686467806605912069840222837319347342683313096472286453963793284823210821819688450888571231746942324779724966649239246817576214245926465383808112994393706044061767604765363163906423840000146501343958481205968947666608400668969757493681780419024820716562016817549795425763182995709244770818606959731404324478127843634883270963191812224251789148251995507026645230112968242382016734935523255324874066106461960636605131572995592920722774256026253511827284974639216343669478826077310940027513392954264254724544664346834149218691108968290681078687581983011342768649547655672242965707550788845076025284149881571451456740621694125669134600511976262932599538541962688100433885352212495638459191437864143465070527886429814123641082234330372570039955442607484098554754362955616406228201148157160226865162839083228236486355246725139607717546002243461106618761338710780535599410254793595701053957403693166220216307931747017683564993195570853632089820016585184343937639190591037528057658813155977530124837624232071285988641006142730374377079244945741873700524863917401818810489633913700021714021023738722625990912783931543582529614898988817808119222896343404519524012216134355479607421045494591544279347708989941198164368996426433205034972295604274977977230318294263101026839028736776315780675823969852204610410145461081909066423228326931006504631518336411433873039973660508217273960297230716101154297906541002056037335356028949373246884008526188738739310273447067193994131963725468983042946344977510380363372638881587426285477487967750545479595818241136639633553034456107510189183548749423769081328975679527250604761725579105674663861416207451579331963575702019117654831528487299581684415860124022136064132086601103729093718880409719177407584241771199480932503713551481081830507182428211452162397652216838336192608099748461995442750832848517442197344126554746896906695367104572911661241844645384965439689031714964683737093730928265689915960247046790347914072205324001179440780185615154702698419403279412844707220047161204911474917732216599153749338413206196538959083651108128821435398693481822017110339864134106137003551533958200475215761587379071861508223601102537360633713934375305136573534875674901995824887549454648327468354565898057574952521983055264996390405919961724102293545470774971917376057150220605349901950405402340380842606494125098957292449776928277453429676004237610942879836783386333975354586672762955104031289507013654494773304531609061822661681403923239209866616018683673699232802449050437823403938897845083309700435128458433900739022667213624098142516370516260832159257511560228290853375945733995761211383576393478002047764641631302263144115310344490581745234428022288604629245885912218768889433295092949852555811410830823409259837916224737503564954277936797286308469975409731978900052647343852575259922000037211185145330385903727743680148769879984321165568871351838608264543998648136317163606342146834708098411842254757885296548866688733449585189951654402781862256443686820571151778781120419163006218621907728548227737402474694588691214292155307614437682266978055143899887857907500022985021769050515362613623364570766466755756562458814517256778116982532605353541764024174029465297091129538924560428993824710236742311627928968561402021059814170236830757550890142943514021182035994687792900837215666244141209318504240929604037312382218448445358150124000521538187867638322783426658386822115522064902545526998801861644531889148228634160602153507800608812905149163978415482194271893687787283328805409404992734954173200994816146582872164051912881130791204457802855793858277490558145893826507471891108357669216956355090114719404722395823708883210330439351418395627221049594011799186096862948591842950689826677774544890790193098590024002991594505823497446754191090903702770473081483243073271187193255276717340961120158296733661945404045831844255475019449236433153084513709096270449884327507100987777348039443965636408210799249241758184453819392373190579685518482179452192691678993737026923511627216830096105033032915751833486603449863808783965391717965998272966630606716109517356017171083996754244880794296808555079876327462038988300686589468501045194012057960056845367803778852689431009603708715830641264856831488331646496860374798712285285769961206224265624159554657314236513747116224046986943404908093077922696902430336565949788142721315072932830554607764547693636279254516872404528221710033257997398473757356014180154337340114768170120070605714864687450553415340370715855209473901149543037382285567863501431472041663457955643462551972752792948102172408922204223346071675052012991772835956849508546110056850829006846405997280796858958824886025943402457913421755499914309756025979151341343878176212219044139685902141204664727222213535944150267794550429951553532724840027627295950988433685936821835643486425312905846166960125105093873501082484286589590605798592625474733661664359746170154928561300823090008466234981827650437825843792665748416921993092611625482165739052652339682606025730480094029511472003193521219550343159693516895689409083183037002284290628273286618463935510882547185787633918392374051700361961452788219481292260212660625705700008364270801080056749700216704801424574012079891131624450515611795744764106579012742435717529411197037193231007699409127748515967129628046336212986483879204559668775778458287867253841152210438975964204323724339547679417128968948141582932550218750502438225787361089952618299540648812882104801347905215834608131165935776572758650744438167698627239817289556536980968987834293861633049539290952648392156796323385317379114812755619869867946126084859051879609585406186098909394255191577694597770652547681835839345650526115934095195172716545264016028240001479073282563130138744622343618297996063443438509865699581793227188195419729728460023500916950919607493421157607448195914663897954712003788350225138097466727177537916626159166176298735178762145566125629717820123167319267412838484748401061148237066377676330079096004798965685098113548721803715557895974728965070816761475237585455369212644789666137100523043494381300375336163723930755818495639399913515371917213350800828580718440311101825770541271247598082512367408911613294676762800176406385344787606943667231868015557831648970271715005624234491754160791416023113008084451893398316081118110852801060992835286621079560689919589143368462945913258940964418022811846108571825028405375850728299308441869961575874249723215984295613043140423145266279533022577017958628612757946471418047924084049015303461079492989900171165956089166177675737377789557633405956741993715377969769938145566888720621808402230055594011871195913282705869807340143344487180436471284296840543213757986436642768450015079014827369565784357138824661987706753777910011881138063054864882049236492993588084871503230094629579126728144507408423891274924885133065595836627026834141019227067731350714143551660175502981573424943231867909492737614509268900323517659955961357531517983467403997133195006878732055524813184730991865194297947257809305119794513402745674385947634459747526081125452226659751710749475301299111192759652717274811882297124883990193267157835221837954782980198312771970558254282032777732463888376213650259879359033165559457388802591793982614580283676277798094393936085732244871773392447585979400996482558660659175470944821427867380393857498426534265234426091113694808248574978823219456911621554960740913576546278871975971459239432430669542618581611374257028713679164857912301409620400337242517299824489058173107919305888434165775653694587705581908064693262470504052186684398218172167991745441569621943445545114856375156163751840411372885294326537322431429443957173396950964758689759985292186294601942705363913679966961865847036928056590066765243095631460612809174456909145299272637847103395410471610606645637383474284104362904471892167187755237422504017504025192889327335372298868481414231634814359568664614756958333146952153322489894081167567838745288193034400424002282746048020255928414637162714872357879280390628719114408109680739409655778287544926276756356955345020149344992313160769067073744595678513221132359256830621052900965050719950950198107393616613436950030298222348446801568859131016546231652888317923997501350652532665647682586895574058124621410058798123764773876990765348154600787921535109747884334970097818695549410053240784686049498520802981682863463437619648786831482284299794363361393993262974114873745918116673117977216355792064410320768922355888683962117429133666314905420328835191405288102429206113117274874906524197202290634222378013700478621920599220396038582464194236201163245535715753579363397982945302618942223055153820140512402147387766860224778378279805875245410140058644779385521703320167936867788514305694030712581635586144695371463298925431880385967869316439855747894807088558269349901146705590031773768279132353104372058214460255765607851607179973045425153671099398647136329757772623812182423613158492627112610051065773943776884452510818569477750072693984331534835497013545350149349087936635643904693788500546066416499802701480672861769031928790144347778850634829374506723917039119610740215952421490179112798611081769875175883347466240244110516192227199280964381860147958460921661716284792986979388794726471801024881187264968290361884582218733768952242978432098922886627495652068902075299483152715066250776534639508666970417995969665673079386701072962737905856753391625440601441896859973532024859895137727019297216603679635853693693788209243075379722284142519510485679168347031155514872502513676292246634653654489407725744237526425698675181312980672024346820658069686630197461245887930636138654024772946811857594549536621127992516365810282619524615594207308992926030325053420034886913000260193590759214739367205529858333908243288949714886600236211607977020185432934220515577683691460442882415459164249752106359913894428345173625577377181684023717759339867508909613635847488978147714803319556312015286171591051518063580124496405307764398296971804232921524805236967460512464871076882644500092797040209724161129730569135037812872167244869151678200234035340486244803601883033549654607342797217324629315541156181351955313181156534062814717082238731066048971255694789905885731671401850776523011047969977292277706727100236368499484051773555881621672267790456380311651941748382174905279949650913899102109601871985899545412652131759382627348140601932004276018608328764994136804940103336301043406677056617425543352233802479178473758604658576091238936065669952724273530627892466987170366840509677596558667525091562361072662069002267389143883918006867172481964183822883378158388274161819547741516035489410185713299110463913279238968125970574962042947175780830206772429728691657785478259348260261428862012309073194969214832263560617596158020509764287432512431809102923840775019332455037268921086632130144415498898265514060518660094381091579935183342367890544445227473029787000781574823633935406783370923202084873943042232502447106401542742615298817254655408328168311926471354270187945304195969014268821913002724234774442566074738874548309095152801265132114952897739409224237410935115148353675429100991011173301539840650201478427728322280791085751312552426343494967668022317278409761264849162695957284599296969494662872649413516429412553649282196767408545204907440620147241956399272621609131187627575558015530199962987111390687451282219089753923778766974977829045327543249439593583520703250418546331483928462342999771169410389672289416045389321751370587915221989240617298761466839960828464312493228407369762842132287473115789915599016743505510725646021240346069021939906664958848099117442433648115488341009076614044023444020155059129244494522295425426906522890110223524385786085728097380650068373256545045968276330239445887174868487481108419397640639024253262782528142350410308516057634822263679099265111104103674100236015928734333790785979774745867732128797141168788975181992841216806395261857381146655902640399981478752304522238627519163697614835521116492811885180785206465310495912663449672211626823856361567762086562588797668775194834864916303991600427585907293902383665583649052085407100581132198924244116012490161718485195266491592143252924782397449816262177280777282589478913464231582625568911267611832219026066061741100617846171526173537376704281474634518917433756223899429656890220532074670179733463327587673320358937432712621218483103483742950514263025914888725108060364895350123575935021868062397438046731900282330053174276717301780043363148681768522808544702570139432317482032652490620345700103561907017387649748729695463739402294156221301113301028395465945699691864376787717935653304546669756591806004819463532757006285614592363294478935058582085666788041380306645056059560515524127644917295797110174345287720272083930940523233605959680938992753522865004042473797378182255498827549314330717464921907748730981298607384115655613426339669852323929361346305886895548589283583494255042884324957625412245673892711423536686858402763082971985017294566083293772058910477448247876364380900742341431304132767534432688400203503421375324632638409080319350818180789582573856228491378528456789369833787648225189235111209200247729484949319881651514012430683273082212083985298553096432650187301557533653398159291731008085992592847390262648355054194270760870719898611705943544867240231333432718291031694202220491534267455218568859324649951268851068996094818467560272890065941337788020781560235964384467073011888554713283372523550297677719391884215371479093534986152224093444545129314565272461234671622179439843215713669189618627462266895434827675390121632361404439436670372090085316267471007834134963527668758036842922796325645895758889656363794695205987607341819310067797865636013386824083511098138192769703750638631745008912023644075249106888226464296223715934086746943141321540446109021355944605082016235359277819641686597081028256622623785427826053665865179627502006964117186388435524841053256375449660635780993034624647632035153694189050637904155027622660905269156505062114529504281506156144862718705021816302108656539141520738381838256065848299756495718329893327817665855029414318932457672030764004411029276205105661351962751133783480578594793981388243043029738030479630457373824395519663826666168541766255076567047133274479229118186258788570957541038404701974695382604103177613576691770248691323266919154542684565912115780465118349374960110123906109458207762627986834769792430022219127892587816852110722153306713964807238555283143877663683315471828802797781529993919922184436648661254012663912810713408308393081823521882493249588867364822845317730293735831502534957472446675003896250976039863591991375541311850375982800680883064516058770113471975863276124832907703278232742808686956011105589719551222334433731555063858442850137150693916126405633102483315758848768023918994234045031231862711284488857843010128878389252008399942089578177988389253083350710487811262879601634356451143044028351589045848829771108078030844426600756575921144026860965829204327494254349255799045530311636748623812108575602471946794981928797160307396261201243464767276735798652982708775959506323748963462619371891747714424983258185895178812492889494772767463214984626376844114973729545990572998206170787023235609023522411488496952261974214102499276299714620639557453857454112482756669181690029898608765813467368855152235816351221705127135828154421041763503970916908521546114534808889479035230658087495084815071945414423494073003614163014386103404207685023377962652477918977995922954902922787925733917686944474952442132553762297656061372543522359581221171422242854797116767074810597536001818403185287805128720067374014948204756384417012553413215631337751129018533795695076252638250908341540764483942587005219847932392746024230207955470074920041276299725995241789030362743391097643114722698614121577891464246339989694732205234412077217659376359496633735216485276940151445673327262994596392853106981319191306429058816581212250061029903666723255869849165738502692051236677989755504052480221785695249746653055004050820820518279379990014434751811465971351174848383897941808484888030603328130064551407911062432136228475045417916175844416829846918663376113132551480172415417202897498940601786522678104707837206202103146481916693226097739460003208518458268955114419576933838670139441933726291958936686056490274770388527289952000340811903234953384635134198214901060738451114066847521678780674555981926750199897934373176381727216029984015707565174491054516479931457716395683146944401712573635260472230408882304079597199798597520287615233079450937571324088251332121832156306848097919732361534199402549462152701111643825556787113758881790630739009491679486673823737789739622807759630461700001136503640628257406291498074373723315890287680232843715737688767391817486192726710092026279799295659463804018680345859504517688183925203493030591331057779041272353962607598970886341399703874813422642269615624965992863451336200452884133607577826594280468098830641711689848006723455541727972123942158378266574350341465039144410817255417344523307442452747853123120025748219103702819045608924766469496089488625904480173742107048838863310601949319747847506956462439612807697030649605280986134256697607573104583982896277845221492730559557391111118802585443079732924727799984606618766067543037576290658496133455576835842638883751572480324710655075592115670851765210052477576937259243455971389321977154649295117651673943078980915024168581213292712803009337778693522527472295170951304642821292963556086794270619628902001853975906855563435224995998761623708821382945913766863025006021518770755625262557503072191600096272506043710025315103809699117883096016614952731915831731264183501001236837467465656559430569727928716880044311733889301428140251076475439176049745488785681834799561278576805615449091758292593172623842370221759741883810369688571026744773849719657923220617030546394435893933053556353953897247114316934844872881447624610548684966333437278465304728460760556216431632882148707436535819628504716403843441283465675554736019982277034970797208253564545262707050177148576081036175112146876356776665552613306905226934897205882925762181475652154573180769867568222774609594440897910203420166123926478762339465578255943338682081026091901919405411900526410044932264635657460899907260517958796863089635878047238715764909681361020337973796080799506159029959923173534437471135841129708489124465356178445627507467876169148087559366872140271509269089099596119947649902145073307051293174903189767065609677660614350993452132699918481833796997139640959735001887196857945595954251128584748067135329326251439366894062572051302515325559196947856346730447677830030414899933875943157130560806268396729896511035125907784482327938044665807443075740259773764268410944268839551177356510682242594650910115600815961784420775251318004500946544098445443732203102397292374847156729732402199319163030946754795810057837400578687288789089744526137306685270563656675623089192858046476606871133955347834536267704924558833033289862585908371640399319454146785646726602141709923038619578307162939994232500033242993631733825920552628203546525450805243286638923671111317603966925625561236309599763340602976234528139152256910300046449135437559040866791600215478165263213274314747145319773438143077141170911918363435778169011903150647447777179695651214969022937219854472188186529645271798197879544295901072453318719121241962389755981416632592877414493032548631095526280960345284822855655413297501400871047429115966346364172033929676260146587444861465300657482090217176385899784432246976620587919354076690689277926924470708934959206437148723621590698938989622715729725140605023009512529853558671711509400170856443179313576676960783421725799419944560996906949341243234657896526602859423372882948095848113285349799770131978363382815269291425512054253394815832634737591372379652730499943042360783926518587528337250720122778479632131501038279029412166841108324221986906449688433777308674088806359305121214488584175577816510995518485965291096211511667938444381273924461168695312799171586336921053117837296328798952650318427874437917769615692260816383706287331753046859871021667859143271270187609400129809302329367722748817876413469044791560792195626865777870766208956888337519202823535408000638357699577694069834246841772861432353566215179453674107870795089652995368788677829658808500448927738158425558683400480494251136966790411840589138415321124370514945092570630094399094250645484025884179446971642302343075231778175294940777745351826182833533414546200112173572133876224129468494604602846345175530056563708041513225654312265206770490508643289132010954738902954321517309069439457714186323448202936604454679708252225194262418778722905725827351182781085372252153557562841517894308981021657101277602380635977919112022389214440549178608893006652742521292663136246844930185754007295502062813496141665484034690999341301290083546918369547259970594673868180734126353018461307667368391090320470386605044536015440525939470847119475566797817001197861012394810347990318058416292387890357234493610989752584346028566190695071954985920778648182380303982959272170754563114634957354644798655223003451374119259597319981360507492295559074361831309990914246178171356660439138671474251246364144712163489169898784231538489989329141145260596350106503211162771550840873591945601356839757801790320631719545574008568446605215446228340536809226310548772315969421007045714169934867290418115081672493734924227639092104106231955011078647050447587312844213926107373197508690295608312136872037179129533765522413950219613716284533352725783014017692775868249387880539500781448336245626105989814827059632115455632574992775107328812741704309180322886896339547546527669936149233082774303928943339699644618370632892818554505299158191219066186206241402202989541322224698079568834385657827604900883927987655002319389459475545985424228339692552876740486356261262121061850237800018618343351028607448618004452874675262180589426892999603900027500087145357495351443645327135059550590013187630610744098564495655630464354245050765920565259228677702881104744557690966350249747577779784614920157719922550279057559357847270358213522885527416564319627128537185756884701942439616821897561887032779123838846706757893816775785037187590927144395619775247979218460667008851410679386115014392672232026868260542793857789591957343774237180811505298591173225513019170621370824562841112253982951475981695345212150429226750018615891724620491734382065551691327582647955315764327456627988705300369504936784492681332946289130690394603356965732799583987842477027878866193454138503635636834201505426651946849598418364408144136757940765498521725122759514524417736126754911943870214453832588077230356376734840999492258825544081233352309366300160949123112659705871150249545263275831619780331786636313465508735244099832399222023122540531770136975596403392002089949286178712705316362162290550875115686386156993907037279071645354232297497586510614906924003370943045995950052370420079352632462161809841539757127385603302982011362338498495425037403667509627119339755330414639353789856522901984879910901026963091227261236965705594708964869717388410716935535827129250776329238125308318466728786066685590916183066998620555550615397382250704422898152789295075323694727022944892876047123914684826184324359594789961946710202177542567163690270697272326149757715826619510743255315953537018949312633016988025147137992275541235185755874645473772099212283255965607810248118877439580747639387265732441923343432975613248563953214819774039270895749923628750015023980017206725805686015112046921459570019936311791179897899243045283394133689516860723138000219245328052074521960314295902594107550540583822777506774166185102808929428802961161939944440696834293465490973202208548566078094874256435961708573564416319830818301314875604224768280386585747600114213164598820036911342940107765849964479049759634812479800919895942245045991309319399397004667523049352241747261510821987109018070849953391667407506767710347068340795945264972503876417291479602239382580204657715442756579868788706034324534199930506767190318152362308392193278076389658129518793595672959750965001756227071493292742037865012179153579238457180739297734521874295369864922383520668064965378288511911619130669209959453951812078859847395038226444007614795849144788891182052309312983706552323656113635373201885939755266566133346077740365836382086994613290116873267496838413955236370573737797840967225133896173514756661371609213437020832374727408424260274375795881353226108168804515375980724700134047435547475103714718013302200858388838607027435487210663702816123136009568014076663207730598694842764695714049565913410545986760460049175567836235984676086087809375878927163654228493556810357336093253779026020451296500009721564760407458137836865083481102580608938396533142226018038062297523851409752727289708830527395937013106288053103752147687348835973204825722632004149812573031365266072900949754851496626210964270444984038017102062480862450692346554193528974907039698160634577204889796059559221710207235050809854056737890221778079484425368675556657197607473053695069700129419557607115926926321265314544937011201326255223719331898135419889262925786173691733353318659187222060728557024719284174202579200397748293384352341413245675499549990557267950273021481733943302227977153211333313914919912433888237743215492637881628662694279920808900192107333112532817430350515839947742439802667725041982663722942319068125807328323879212070183649512696665211903945122731805700192046575492145817477761588795890233698318183021166506462648377074599704427119380203860566531860384060054948209012883256587115600350844022460097413418586720974483509296353535488030665925864198483901242273604465547107610772577387419886924741698613868583446762380844388184424075409475279506017501208832891292080517420638836529389720470363829877693398393107935749161761982023266113855848694819564361320202988351234232230969676093870421767729970600452347775127338059365593813123210603455605583144596338110963197057950741257291353763815846113192302159146407028388018849556560352336620224044448998862545405451604340775649175564165661912031769494913009313727257768375964098757318947035004904894428416407259112730430148634007889003871351836048977254261907402837793991547637964975225292690897411574579630716868163712938623522425863144817205289068894327332288098379488749888235351077865627664602127861956960572644220836205995329115955630442909480795663007931160700274010076100778957343099738188740056426777997935578245420560626752065172859532623383496313767876019328104527456723534482112692708851027887848151942870175529772174021631402382515249364498371934244746760635042829980174179799710458910768209435048554978610365133759732903131299178033583617117290822469991486870829309597279188115168677342590967956532903275098960573433937441016351444063541164740378470600022866319228427845023504280663108055186287183017070507997894144748231486974383784176363809329648812399630904402325551523622540153423219149927892745608591001026901435397615174392552042230254197185547565146799493122156778877185101011535730453772669628680774424378659720603548277554575702172330721350179768346759971027033660225142212831835452919259721773903782016450831078818990087317877833818683860744565934253565921150938741179176334428521371971564662062790915201840581026209956643847734121285757196919998428202190766992039242145607406443827326124388504163571527129843706247375734156888617661872232321843405730804838441013784914804096913987872307170724792662002268684571116788359530563299203353234091861225869226115925917083229062973028159481067487400139677425712209357398781860034263367269496291986129963623039753403595851058360783825450355606951916447394639113775408979573905917107886136446848491256486880079556078094601336832941329925550057336821040042525505594934511717657678200319164209057570643177373344597447914751469840644025463309185865337528469710442824252800661198909559527860311782761174009234239844466434336728859420282257998547982835236724550710477078346380331337391012271596143039520656675952771152567845799438112800770677439890255707818497880679105212710763894604531404527462006281844542042325452025838475807844680658006588296788797980020286485207478084456058785351372054170474658400389305765042649594675491192774577426467244344567719922734308799359652189984293290436104559940560825927026913877005248661076907870443141032856896743798178803937131715393723887064472202476294806220811449409756332132056853357831791917560710973467744658366730395560433454758595309002157000732072225186407438407452087712516077698271011033752872759463503748866360298131808575407795401818055114963478066825493412079504283341480838475863775115183684329190036271334311684096569081146316513066005442453014935428832362059809838142359524942771396426972203708677934053846934202186718007018030646616208498775736200011232234299068080053312778087728270465350859688165660514358715132116851466507570455567786250693532571314459903246856742899965588261059207009606332378953231427280946323553881575988899697362642313976690397862926275327069131750357127697904888480115606142430371195726643459947119158555879025134997168289609710016767437688643970127089849297497394697577591608983384769918613470079927806314764821873468804728467288634491342770875781099462358360895614104396790669286087976654284050237152214402365900263161814447976333740435668996985937383535272379083555023780014660554612514960184406193793277373785257173159170370928814124364823769286441420561094724239587584988789604543002827280777361419544868658607550289292973277159354297967013244653475199176994589352485621442039609936367299190391746993672230696312659024003174588204637760111500700574908827360565741416581734558118136358120335060377220463436237132988448117441194838069509405957431607825208814247317767755753896188499995139514253143026218848688884913718422924881681472891005463589847602353182914875857099103179855122331946467818372864143595115406801888341442619349215481228147475871686806177264127706241426390170627525679434208567575214421428203475372012323290438266981112607351281529298345802510856098561277058826395194053648576750460485068880973882906446263314924324242593389193127094038737902028895675754981841181861168637787741510404206871405516823612927503222804055647380911374021768687670179642215389860196087840794960863624129967486903178148243414722804642042200017187984947265628419039018363460828788652894213206738853623908568653201676212004315222306434572911049641824421597977038713673197734543398486960291859666993307912510914307169136626278165653560197812878113306070027070899783590826456662206667457220305153683756207573636269645809812265601865833001312026888888126245391021533407465089544795168410409831708907113830824182578416382093003905983924525643716117577400299269397930227857537056839870568061932911501139373881580778410964706834235486750193186314500166558652721499836937849457821068987423159856132603364102481333770690692820061260908961464859647839066464385188375470017834534598394972489835775428495301447856037741590925914012842827240511784708387630531223425889015733901147076976268495082435385606825943213072069551860818745363883887027852822328720388646349630155344254956432192936957520628603131784276143879886616874711670180913210127888462335477711260298080069942540736707598055092437754973015690089451106632196107555151499126006586759613820788009636010148091842210738403351416482181537782485578566691415527841545281277108202821451394587521702456472028499744258744903062834564437151748119562612482722807886996595804818784365313144168874511935101892092748517618780127842809996359079221097679345458694064693521301045842959805620447769712859401782855963256629337571299447926909258023423657980709991004917899364013543497691639379628949019332574635229065716058752917591807137448260435538987029367677167727944970815321732028884910290366225807012034221932020378447835122804904468075248493092410805680482674200912305209335615562712348872926114211109366690581946289493868736191276611315593700822126288895215601807308535892147360813008509465329906424213261130793811262123985804953918176692352705222425489149601165418817970613518260068878285173224120738307365152592422311903140014316204365523797020226270348315402497338630275319085651131710099610889081217072771759861914180906943246431197606140141265421157046758531820080847504746128304953075113255260870240630790606119738091175710964588647462523312406803956566777042170577930600347239370437451675590936320105680189211588558776695499043378152007593424907479606005575242269209273832812339903141296790981676615930821237044935468933711507913134299779181361782433054416196739955132498894573911565291116745847109483825888109181062956910140556791605208677127576502796440563048340657878511180776934300525996853476008862735192875740812413479221128960243113163302391879596046849151581167340637397701768913057608830712809878240990668343572613101006301790343174346945077501585579619914732867572164540118755485897854730128454385416173582162668759695463719799933231581351092281526587156469892157955751658920424826666048174140991539452666237086988614357322293973542142148360693266700013569750173500836617240829009614529706850225255448939151149218534343350808943135318157526749692250548634400133756540421201386510581221306968178543242622798173993758664996760143112967222543598552066023998929640245971568438183629091212289777496532447930380260089932899082959694848095334691078084484400165216681240244397652972207417299176727766602778224663118757826603602838864184401824189966827474331089725783418760659591589149317187955657410350250236679168848563004087729858863294386408947635600194886768894626330271914714301378899384148954344466331946264235669998853623147540184328818770891366265679431264811624404799582101251367795836589596445055974105642152010582471716104262271503233523106159432280473115279546837885253906261606845873443770479129359631873267036620864163157226970439834567700212699735699178053570040303320974453924079296646192376347173868625021298290371713629442885359552469389908281494512579057269551073965388800607625093935034155977281062467533325955250277989389312231353657889871836830252839665784068360720209508173266102150333492326386916052878636753522353700746180258825733520171658497417807913612759201597629831344379239646390992313587716927732580866250888813833973804105707042886092697067477488451031604365815294347641104111134086988534577135359751748073595837213275630649316069454890823393530162762622427282664845544028507810306236374922142420452086292315379437769743138787081064733181527016686946864078287300481077191911624869865394894684036379048429148820270196630426993151657057965186504457000172724620268474600600442146152563319871670058854430945474952713322814862460022220089307408379083647782358990913875350206471135992903291777295639539888623955024766750090382256735405780425274518335009299301762577361828278193392952288596231202319406626254438983698174070460814190214206140283818409979674865077702002732012954529575570353318933151219869540029198413017671746842114109522339195373651404714982432699729092451046596128179316551449423971016560690124243564017038399147128026330549643363797189074908002975400201232822496243518893624745009522501228636393112939125617249448082808026139247601094768310537525004398424924552159974737156748015904938936896353482110153446113377028260453794776667700811848177587371885841635604113267877082149202631609562184948279949264183136950922663701885702779628505807778876285862158827887884362499432561448367725083754623954348997176575448336506752748470554082803056737449567441832375873957544250839932393688755747295431509121882566503853212196120754645696899439310280110516214847758728888933927564204604323400463970438886440601757527743070405967212886865031252047878995048912261008642464295498669390449173872972602576548496041050312226006992009331001655529081551462556997828547561931873766218638964702502056571694114318125808899106188829472459725313994512820794939650467708607065258099296585747539021285830218260897525536927445489032229279962601025589792356671708327992802696693630383530086755857097746956540612549074104762184331966092675737479680604425449491133268668709206928051339671398723467081035057099404890654831574709921190964063436102462210235120468007457153981820684414086828427544252814244406780377003760483255764977711011668846529589392092795367790797269047615520790732695809182353650363987375671876915071339653895205186326170185646262580557436357993327799425823487654822379027923961694400260637211711346141888073878086349230043521757130084239789729347828508229664572308563125389337738862045615282692022451563933102011455169113519338920563678301928282504698197185662212640112944823342606742929666854744107383218115786439415679317584981264357979280439283632597005087571038780499639310721872092905839418000918152447742067635298388033520639884548447689919262465435368607271388023454330882123933039547568746022560102402958837919350284524618296812588217572314300937019689825632869843755956529535911264199272770603333634905090013255795298177838693668273235258945581568517496715029121389766242890838296271642924623110264061782268530908802765379013819995664292512846487410459325854200633009870365773271614152175926078078917110735511765019534758353106550425052557881306368453097207343468326017855010985357861342213051158887040811681947271907047334004585967992064094841912276522765759684834449385169692202253023358628185289154061005791769315890746130837983800687006152293410658161600751745947317467076407574126089738587033017329937058466510711919102199291650821234341317029415807801821027670366274103496622680807080954568024304832670706367749639659448435869865826660695250288160814975044541589958733325582370963425047770065816263287315482474379460129941777478501077710378998760546400963658118581885593969093182647872436379558953201345144181742523670121666362323546439391764293185647134663321397763512552313206516460837714672026793488637217701382006596935143568994631465936683221678122690534338479103997360259441256333365672531829774043901807463427031767005608086522042089331403692060640937340762034749947964900155505712243235302329900924675188084755584695578616750101289994736972109136167089733654404259933016184769476487482928168240729466945103679376511758529074376788224679222791926566671544011099390833642936168211093996440384783227017525028001531694729030181788891257767114992742789909696789750441130005244902701150491451569643886171802382468052471104538042183052469608320553207140669431684411889391980813461120805906096739354398465108153353367336470337884169803404511851507746753774468024566908957195868389450602076576663388366935860468990620803082246322182195009708902487709485888401593500156433471249406769876996742310237653224874319429711379664909543267092493397869333086453014169236049249338541942589427256500338608060680994383599032837857174589471684685182312412277004897723922412451104836036200901745136749948028083841788871206338931424596167731147191640693567740441670612238034397406992479432649057638271746229401324455936759642486212147961744528086791095925778594290951249353570150407582014224342593152891557913074609048494279557420368562397540238572741347200099363346585454749111190175131051908255310148679687165588169194694867220054400652822177298282813908863843829502783745407913394397037147091218013293225122902331154961140149054997987249949415893055440574365793502281910581270516183934478973177346042521339914187872599061638985498279187880889182243688020996855185869795665919787751201015754678039238284967973677608170418287967986722345139833053656079562323884651906828763649930214865376968711395252651065391888461755579309251369400820207757475472507926814573761544984056119182453334183931742230268699380175812284794011528421677186798603045876841927334737531725725219703747890626715239186449255620194994764863881187618328397839579734400559322082799730240867459131048348378265380192662583090456503918796998406643473297812588984777997588153498028625747287827670844449666622898795175793453921925799446502310925578977478774530131758734761013296588164364260240630059294239378706825607845623347759654237372396521641961909646312722342962136751512019198609645105539058536910236050562175954338591309774197418646751393488305340636827878909739485554109470096472097090969303841481906924728676843375926115182664931011877966714902345469182074920529882171184524717610881432828073463857272135092167741227428079043479537819999224942924435103546319314370204768147151929668666138497361603137990090767775527353898482348646162554573089154019503875196990232553155828706687184377646615649964868129636582663168840656239734741593527279432727824491553323284519735786782636663295185913812898716842667249562441446395861321037131376717574953117389713330990806997959348757605796851647984330753848820588242271777872650191332196480730049821999794501394167949974914627688056206291571003725293450405808926721834250023566968374801495520744899603159546351659816077868836964506098871697888352567083303632492730912485980525141770539778106076074967211894154444181052370849804144705396785233664734115287623641126134677980374663845317062091363148074708531175350699078391841900986303174569751039124485457050664122655182316046077521754878677346244189709753066297427265882686995477982501282585916200441277579364050518089708927893449786120249508614594448591958699849924410387694603388748334136528191973595635815188205866263090557310189788317244624703633803461665406610103651601498855876635047971578895872594790280392024618410582720943340360334380605648216379885845802250993676105230601575789309772987442288671506449474052603625686283309458472516341294709436171735682397138714176696782062268872049378697254509193383726669646942870271309671072109224902156803311191280557654625552750756251718638385314106862439431728596189834857581769008022862873032772202279788600549396309191289512092663609606269392882075058911411946983139787854475549572113690902090366468981943969609295742664238719564080184383526997519926228059118165062005428833325877354725528234784207819405342233702586757906818089103944088586783242838018347661290646099535284909363445429357631280497960843264203968904518935385471304820974784368441189312823392907745402293918184097382376418422607606431032247940160885182781919341109217624463091722330731207812383601688823875197461464804581579893356406047989482004835936473213487967088759255343756815511852557848804164728451880362941276070181845926563810681863557602275952631751926555080059408491357401687177988292376581959671669370755069787506686610052048497627326369249126837859691254065869565279489928252382883109343781634682652393263596571811071392035654448235241806365695247283193137448177859023723215357111406828968422879585522199901630006759993592196719519776836208063218636570104635601801627588635708057359883429265610112981826858284349809769089235190588667467489586214582001121853852253854799127436543984733004109497508499090210071295968761919709909167572436637106476091532971868205222114074606437176483416901138390345304928218325275980714995239710183586167338492106667199076996918322589434582154011089096477194735034611896034253470029756554998702725881121367508166768915054920587469755081539677524732194291449507509860481762762821026246591675488354318539427747644617147469940201264521056128869469179860849201490384623803378585087354407611105046010040656532988097189276459516994362913574949179143442916905834738882454210159861646799291210012501975326004829114654617312482102844535637998339691301736615032721915219242013724136121950740534688084757285763978919581133422626141453315025912705650576529549958563027810764812317547908545987435217870142665378375441019698768162444841447022841906415069284015317938155017290603383312821285621856100444097093719510804644968050271466125886053213901631193255443120198336784972135216198152675853452307480142782054330190988586997606615784175943268025561220387703126589344999718335928076698523515793458043043727827145603934576911782435725615995456228192753463535284066601452272865189474616798991841434981620356864709609394374719922325892613138354176722588985654274580570986620545730284929012030734345530729748213629499782937311382352151521150800033531697193330147354079631926905642625541142665322586395388762164764840396590730075609212650947518623463574772340015615280975372333808342855328757979854849847033557037365975828699728554365352342962198353614893737776383050344274596937198526761334437399759186429694334682926222277687879914952854864548286478732044865892346451693519428811322509602175211413012561054753459363944663030851601732231709909626566054825158739895826394689108482912034134808433228108540031665952234960257053468017705991158417090974386326164861219017460497531240709155763019797704052221500920419486293714498950900043655590690410757196200128201036925108709057108112540308174738202256984578520464074462343946680309504479866633304083725495972382330065064772500712117618807193556571003324645833899563213813625288600045437680414141949306616390753704837401965520188934978780124119287524670493500794182959017728324538461745803607578807741844152019478739954827136101951623939033761984766088486754208209721393553351621048815228305347642898696511679823399362918055243481376821130911989580953822276528330138236423226058420773519301486208424703839004725112051775172005784237612134934594600193945746339065078988420169979601442233201428743224920519383847018474164190015585583800878424447561834553051327913314351562977572399346503285350272727661006292146603875862546531026124758132395072189980786086038280109833415351932909547225997935763295930871438109646333915866000015652272319955258902114700856784062436415445218014361500149148502124023064373926270736849737543549154279973014179972591802679600924242477465262924406639315503423901750500773453662122041143961302669655892900803518231700584904836702128231306803107564278006982696589254500041087022399121581674505052124600281451551958408369284563362694162061551489547216341113142927330866547960292059125701029518877463946632035393943093745672355399059285120508951125622535863142555169812828505445162326722823826289972507613493002502707517259225905894713752529587030429941800429278093981164766102132365873828139987467981046186781723192131540201220892869626325102661743387164302220875236013569172847566348635522295757573155061935502414768394383936132528677300689024922859026704305599579880325050452396436915531718054546010121922944892596253868043910210782882162495260448471179389992969594186454957852514706620554462064110336727018498196634914938399925511024785954396213788859028079279792041619379972644560440783680656088518534017359800960940509051857909185712465794367226843637810333005278907801699301361987853830054487531609980788247817065060134412589906442898430179929072008011816167802435553741629452148761379776783041063777976950195218597200343555147271741130911699007846562591899728800280844648199340713472804524416368341335299263940776786786292797059027816392304433692781915423105430564887462027843884482664739765214913717301617644195223691407783880241446363888716289123653421791508017695566887626191867695675345951511659785346875895197906623442678809048015319290382500349394924487580981552486752256744410376544291676864204793730911717916396460945634329571912924296038203327557842836013810620935104282827863228252889360734124530920761461218985294738886124926349993118454347298829432112978222856294287146594943581738680364204836078553614458968337835512425275900271165710295814361622749846895866976435950958362680587158626786489962771011385138990891784281762854243491702865005587777027304871294514707076415409517925084632738646406350406511427969573964021721463060116131440865603484060890727666281929942605568045288645749540998892622445718406902976239183034702262109563140678701343683853584407618920874265115711687718845674063005536325351817642401768731806767266016694471930046835641352882933179413076957793570618113245823545945342869334367065021257764774214467137068423223305980710924948033558207765912582678920453856497685198243428358037517279328420634535043602698732072416340188510911025803884906529726843322815129001002587677675680728896323309339289200925828536731236875558547241845971492663537858980362784934926495351911839158323378657508747632848180748731987179431206656020388539975601062934091786714309549328031284652202789850348365842877695340407002550067604351533526928858426791790094935607063313159975876145146854412630241528166554110584478535796026328518389163840619682507543799628688893324663594456848302073076776231461996224015914144549428504455669429849507057441383813361511233473933202720260118414595620066198299627002485974886882276053969389601445168809491851496783230343997279380917323108595636003340087012360275247416821302163898851790062846446760429527520762531282426729531629359934560923653000160318874926231840039737673905174336643308666678024411567769862529253970219988202487418199296916138946362016923598338185734521029282654426907360157321192518913241419763107092378398950517490915727346955771446291583284913672583538752548774465149480850185511752806777917120917005420277580518324814271841951954648612886448425901696120033244381359530864922133856378248442357515552202048122616072344647359703013083954431085348606039266974821240733025443895326287757421408386584032046799632800237679870031570919030037261693950913660482495305715605851944654803607134319150354819200848632834716159508620229907610858609657402814560376744399994093734313867539398478931302336788123276510201928089796794688344623996051340402390017643935761967157845527879931685680291640116791053490780808396655069916574705676131936699800725302508897023640222913333176439237715158127266682495451907519990872453782855689755210289224953060707616167804625899712042634857770990174552184990875496039167012425374319607683250407357354871708575665136830731607084517652133466890183493545214111505969071283638333961262684161032115447884422919550887761013980925220245974250557514566446849636188213343947138788354464888084490899283911989108562889507775499123859271858484467976010029732196265800229026740274604557131959048776276399255284314946916996643282966870776955185458300811999140590942073532332597861557272351227380804542510466482666388888456122609065273282346454406360370966320114669005368126229980538450324498550456276125782624395867956907665568110212277133427303409329729583945875149407770769186230279104173425072457456320238482045886561931755307435965732249851313822649577347132902905274610462625573042744026139336487789749958270441916104511834116819056645458978729544049793072406083607765275029547379879773659307572689944083950139661608333821959986838352595993324123414274293001844104600164697117041264741735858593423259853248781847085410097961003326100090890395454223442045147261034092556686958589795235583339891434625368938271143823367982971998671394696031056397465118909014428558701552738226731902376649180570050113235498819008385919991642539584129494466582465441925728403919295135136546510778254692709163819728448394921265850307887285884113785070557864583777011424223756866368261568287100604912476194777237937183932246344859506060285047794992766106208595754041037207453435434386734977539863850262293243892036749183512376005152269842065386354402215555890625405214297629588186668704973641910536756329242384892730977660914083216978303744190694105526762122892143824737343241139900079641483436677880731079676595505438828526594951703308249031671688579617352964413311056771477827708367157752929522859954040367239505694197238018780889382031788606757169918913367022313881225928772495066506725304609017065473848190286161418547634688555350557337907538342653898460330545455271375110293502461850980397081294853289920670771621384696503490815257538834100763537024151650879352023901898298936666675873953943850515428325565105361566220072382548012809448161242649652534819257136328931421151725521387269914301645198315515986116095824981583955187334402434081960168049259922482918561594828163510876579035626501076334191781347784472896089450441487164128518963373376153651753246413245396429099068551707176608600814295541236803598235152276912922859074094823945120860832563726747044158235636158668429029433605091449995426160927273984274886096493229812139055873335891398360216683294508044508706973146590995426218401512341996365112452520296065954351308330910182190229867934702957803730637087324098573866357921026510643270398756507253203424978704432923231342874569864512823415838978768109478150955939315197353392709450902131955065873922158666169783295091440383006417691676997709581698566651932635213144325810177721464600804155650115261227180026052750555821144883839391036671190984188168974868161520955747580151916756696709382037347684196277173183315832386407262986473683949122795443198479616862158871161755773425925573323338380834769270811629291589126408984642456841282342331937389067996635267057678172335399694192283327616327282636392120952643401150345748478099500309607524784741012085186535629289011957188115416506335822273793619945990408017079369886784304685673623959208299639524135680439257848433877948285769170691615813269579719057991597893472483731011660883022065591843778338210298374061733439270740092353477226937493358473049510982179928340884483589150962835746566982917921066518374558994829539989041644171233756607084587360870512225037178508980629388888207790077582992370592022676671091647827855351086998433482636208680479640326632022214305852785409983713101810423103427804451880104779053714034783364342152532511672154901278776516425597119194286594179406833603671537010302517248184868961659878263236256414654115171388046772636127511632593513509860050123202647697806646421040446590388495144329929395269301869178020987134852605126495462582098802655346610179870221471971354740767557978799730777382728178018339090669885137075394614398390027873711048755123065695869403377681216192548644877487898192746737323037441838952660902557799549798901549851722418847128358896521318673542866987978964926017304667984050867238280313552668156848490077052007954975136044726741142087941172984596623425531628573508237888699605789141536413188325402712847539160523606903293634934203241364316763864363645932552933444935412036750324118091522487063735297836981356540711963818078380960259059438837559981766074651919756280991568671745760366141276481100709604586173117056822954668801161147519953279110578107910801004111083127103277431733920605493533235753888072820934801727035090245455044971112308982103410630186923944228280849986304455283666899884936304030579223585982888985641697099480262692364929642158997179860040927181630039044920570914534745853794128250484930848720197984536652389666599341548599917147299025120794018048862583497731484593134824274301051834403266966612860745740920956859763518642774287362604785899830343419533759525808921088165997787933651850259932149166989030616471623510382398853451681320563194683788974351004734607771580184912516561899974425120304179083058080508742449241386322270731690826089202826400355230119333567394297624944201900569485595415733071070418077405453748383560689503755555985269680042413228030919100788253770592229459058625488300065413023977094354349606346975068442491457598692017286999006729924742764683728353181347299311854148920598491019945679301568643671291627872633374703839524527363477036152227782580170563055941868295163259624527381031323465903893452131803158508696628547054273284869045771435933428320685061332864747804986897568069076585377242475037558743033136742685968615195193551482872291080755977349629632728884396404119185639663516121861457603349799122417424772200659783643052151997241216853009360338540349673434691548971700141968759602432000030492044614331670322758543365599796075491292778471182168162704909482080038896186322847874571960894465383894900964930267775958453006541378706745294716271186830577428732828499437196037345048035769796936656142230910915128899983801504473316625984432932128902290945056551162677098594587989366176754611408778213211942392752481456438094346804703957648790591183008121702101055823369635520153704878001058905820980115274758306614953347561170694610091532689382568822314469876237212994476137364686212959570428142156949121129718153545779943097546083283708110764926965723173966670745021477399061141986231022490750772056550577140606450151341485886774768977213306406018341989341575479117993945722295960895401817669606337869978336114521551188190580507057843227966888645777423896211785814903293512216691686035652176387354822548716063030730874198560203916904616782924742731931405393086601123297462055028441199934275885135940985752793179990680870566311841226349483275710762667665287106042995746767855655257216139473156137455734232166318529483926980405575607830330895176135378134104996195189819837970539328858115985148672143681382085356334579316728207855810608670145032431934726489277830551366030831546967451620938996764797265232758159960118396339862972458861409836942842801077703064847392596116615677194042486646096887144439529983790406903779503868918647241560618865798504699672659690741187123544627609407030171379375232846943281646948512696195787513232873580862973169947208190792340298529182680611649878614467862879192739939978216906982017150233035346967989275970590375305533496935526665460164344396850927337859739257157984490971621999622564750617870662820414618565610900451394143400875070152940223062641818925400396797116130952160157210484101829338249681926737428627188607417193297626281729646347316079985851459171889825460060891864309005303149849560858385977096410697777904284606925135938507242068450976973405813257805528437494453553730429881533322339129372437115255809049082915783381895936491361659346815956306427484467659864819699536589708792895741019217996892964835643640337869252862311293130996993685169633650460330833193620245155124485214129097409438782135395374815423414816260829223126051177311428699728360959782433812147119656551021913667388971117107790781312755733167448644243265197271246246438623821363374147323799437683807242430583399651799141214806353014752942410023787065756625846316487343835306184135733711236792212080902459077353902483397686202524040011480536053592031806997955184031608129441028228598101380559252908064798731110744908959570952064980638602584222846599992342920827144482351647307307107969635097802706217546147934880026883464580366316485393581655048064488720168068587029887805600068285197636681792793065782089814096792485061627366058108113410646202970441363026581211724170037286103536686070398653674988519302480371912630591146315673585652752371173643700977142213055266634516505291244645423277952554666271960299812978821412430564800453260932451319939163891461789154502172878165316516579432255285649232294752327982988063886959246957641989467427504773001621175978572123145373796850191611428120047208607087528645940184416351508062085971255580703366085359977884332026545692453086088252711644539285933509783353579667103994152255599626089769103073552185416057241534270993399835249901052329689795243658385659350810571063867732912734594904810125566730363616210908950091671799967210747533546313722713350189182210412926206108022523545519735306647742427544167207638728582653918509402422208365470064972958784539209127461500928294383686654359563928840554143073312297310012341012236618401086299684582090994261109297406839051761395957443155661858969651521621832311650335593888257620675940741527005625115323636611326047571227556690395381279713952789265522374546993026188841356853244534488375628788420202009330078413912396686639539366542501120470432988365075933862565680129393214008305122674419925400330219723462438332650377499398863928388351982497527477491806452225521672837938948566704239742202690932284599152619699361276975676983444700255990263234854078168744062439443035023313120206968413963803569263209182621853192129230690010737852534879692635565931226571282432272409535854684241331626536154644820357570034409140012453180662468198619455725819066748923693199028749871471025903360916815961398007769547451589653264931832218617449199551653524862576553200626715976313256980823470633180023676495612917702369825975683626998443041494042549510287824618075080882759325016419872569126365643396586004689277939509791430616996782169938274924266705140372515708781237200167448259481219911912121713263118935285012299439744706613396763241202325656072310949387122894121974190660858299928722363126723195589823551456427872025758920091342277940590175790493072788364535937775765945959580785015324207276076642999913776279442723593523697277015497962432199119418180965496676677094047827560244985939743907150650895799386231250545217326494600777985519395516898150019807743744852267983683223438310680090980196264796504927916472633799733203291247992284625739833189319920145975108461220364219391308719499687602816539235479212704764748837410896271999659316555133161071041674561591513249659574509840667499861144096333530459335227286528029745734425979350380738158793317897838546547979203395488591728199876357747281830614521470077150376379090907231154132956333255688129328066074308454531112525622478268162291370925505144331310169258256875208587851492581446108502335641660559658869071261284745581564164568983514416668589855527126745485656376913927973331524145975864215282768871611521745835984720847223675058532228022318827828226026262517290743774113352303744706760014629291367169002345708992703353128080590422388428583798371446482575411936601532491957773467469612028018616950546246452685364292486654177160755034831177791026632559633533877223679259422246248974439389007972467593779239766458567317468893202956811710063697376843596603289723594845496647526165381706117739658005636667309035850764132961502173323539670094443272125753610207630117934071418919443582067681543933832959374122494785124157694435520983613882548411033442939323535400109653338318582957197573386987215366944097049319140279205887276337580211797364825212913887976666309578230592884117255650342932118944669055878832847722505205643675558069510948863525483936688408659806525152519837071406330283943441802478997104238938177075659962786399364710541658832945413418946564653179220609844473659132936272490737136008291149632387735908566182530835964462071197581904368702486686437733618615805702592524679009553792165790826250462303169881267735640823924099268776344055487287673552921216271288399602616020545455317110439219207441350550483280430910499587863279242485839571591913605487597199728434105919946664334430137406409916075244724144413928137817914320964494140384628081374413563205239590967911773640389427875871423238706817908490733288472030420649380059431960899090612372328901574296566911660983846432842360137506683959878256267704143186697766921950940191012202243119588327213013384836175096328991279350034367215238176026861711010525667470365602885220322361623996768021111013625200910255240644770386243868404605794639556372626395862804751871937336975810773868458050265168799159816015569180952807636652774803413979510760753496227073934397994978416481622154651978967366967161886362996541201294325543846629025325361754039937572908773691856875966554852387359263553312591446945830699978358900276103164720131120151445251269430565528612237288010668249071958151699028084633682270866173106387299400442330106696160839735035527875229320637092331388625972551863440851616262976149308059740310827434635196861517266006836187401493506209366852666801522476065819821481069428496038048448413183377716933092299923112321358158425379440802038121339665147520413633274466573523637237628451711530705284963193245866218929500020007566556386280640772735655921341533171870806057992744496726237610225057465805956909604373467555852508535790717009685058717499396699671877034212917997378460151533330920828336734612921000095299033860552539258323957591634125102751965764053487027127123964436848373895195834036729345396620602316694021394224818603911047236975375097162778979422084335293619563560817676069899271382401175547923982133147932441357240360005899516390806483604968907404915359782281677879355503429329477119685833709947735500659356429743340498543488240629011315188879642807331922334913251671601058998480382340150170542826107522768071351420649734995109861612168202501879516616202810080126881716084599383078105320120207747116448825324067406686359273005677869014808283506462094345871936411739068884673360083753430131144908174596172434614704922748205137396230465451821901861950254396334521044727250350782774262132112796290023758746298274410945581295631293081760241839352104458960110992042987456379801075635906607390521662199832097004481711787265131716508355060390211742372081292297582553537494858224308957744351227968921806492478772785787730474215128724037831133137746695683500931539321652941480001926958605186073565204461940835717030869511934109727334055135133374212296993726560216795673593771575854897077579948250447187871367385342918472948370410908601103772660511290697653562150925349654979774838792659365801916115718186126735345255766876240793920171285935037044216588528440675810723100331598723640966552999359419048925634010525747861199924975707356539684292561442167102849403229017256729680096442752516713538021142028162836735324564582322371868958736250667013484999279804047230418605925812928280413471912097795539455586257365856906731586092525313868332316289708672902791987898485787230847839968886595591053091714946028391829098208477930381450599435652408287645235461400750626788900175911876184182623444333941333143814385459020656689477112316627142766179175089658355383216586160423049488030913071414367089526729680348453084826993169334154271957466395741876298790177691935384034001397054407962981785724532213749946961415464257282217572648065238558984920774067144416164134541346664602309747310439332796753422323602682891430799932841060990307575250824881215789254758307810771643985086469484367018445823093552517260604770558311943402699804295559873996495018554287338078916322970009304032424508162390188867281396160613636176634722602610966120881349780418432753179638778834867929017170620487431778377736769869133504311798751403372119695201391949886237641755715955378508358549511815796382632510218357232936917486642225461144382801659310252448029127736759400216599072150961048352984171908814404637537023358476746560327806927672113187004534995433489738626683240774130492970592876030938357296634930775046241448128762258013803118722166121022018733946786199296484992748131530055248748138689521963641822607580267789707354891397990486806158129658152796494730655371882214404130420285766393420331506455972464623924502980050965335038234594991710827623833084247961171602007774505350166883674388687377572709209676160917547044401886325248359186098695196010765760384394717785550800774651915521385936102524417560659249609932748638355202409673928242424998816749978648209655780036951035185071783774803538353493695855992273903532231894514217834862766144209796144507220201674338222352461987904229895169282222355916740396526184319906477547403310892158114660754220279194346173424034793479910179372816607523421038409396246953689208482138270845743526135585104920291718306879917290726740776751879731444567465842399428728291516908905120935638468244395032290741729277832900755298899623115512700006859945364142465614354395611110918621580023716733980076598590384172390686235865598497520318585326361994386680362443547147916371309703780964234947084941579427712377901158777886386060862015946221932489321907755194292511864127872529354872840080153151356681508940635149693430947816191617169581652929324184958272451560936743991026375271213295443743175146794139239893714185277863115813640766273624470612695806040076515720399209629256400249538176566684315417435387716670147522494588396774207640465963570619849748469641550876869075362529976506194163404036329180842457894204802227952484087160938602033421205072056520521011978309894159208491041912738304920677614688676164198727334146652949941850942577608949826403818902846759805914260549168710444251488502630244972822117760842361670494140411155697520023740956492674039779575330915830227104184599720471948740996480665773168434838610150101306849575957982645452549733910053096167498584061622246820941526678700112739992264563823746727065155260433252474361372889851529427903444501201503165412825237958770364827225152480042017199055030485020377871567679047315039251983867748537016313447231290652436727460965311317613443163519902644614357486235380691844532287342983129026811709931367169885834860149590832854959589769691105153491213092344721128902203120252831469762251272163462484790444354309177910202299379121537781985170631276000019650404232691220685388625602902324463850918854667210730466297474724924736693727955846746328115856354176394651519264569694669716632941825211709619382609955748083837444926672499493063775987397354467517317825480452916109059836289815148445327707049413021669946099375751842723745876358456730990912740688137579406734709764270076777145357829635540231637045460740024188788359540133520548930976065412538182895665776781892745384242953139411323042310503142048083483329709159227056911818684868394123682441758076145396897622838188640752015049593517755118285548972451455178812951787657468021220136964877706939776815317323780068119868658742392746169848986904034599269013939991254672175803218745500333001204541745809318288129266798386353043814259681571834979073013234450893832814450113376672012120685889229087110342749036117682429784272884205770183622189473332368519836402039292863269843946881298611177604377538322995805174409817488233937764379973497525260504710963222882663438101166096710630336807715974292151280351366337125598090450893087069384711047542271899490194556382966173737773955182896309206374306492848771343061801147712673663674604053946642220553294748946769489161557544294091739108445463187136660968495613320065182816197495402323551157617869079761232672684996396015940862087926756504918923857222183948455865088044321204218798740230846576747084869959439824927723821354662849052419519693964282863028787368970044311114501510251866671577594159935553909293854934999885908345792887501322031061150843243317539488772409019020484012673992534644052167510593799530482025089331625072945978700512715130641020506557630862728621379998903598570528334578443431266939531262020024888117069760579010371713485508166689641192086410158834646881363629665165242369265599719988310075309662534433242320245159365099369723784340827027887475251704907453462432648845004998702633117054723756931144799634039214849598387950397753099998054940618647170375195134847513018201362695890839419233930552761050960601545342295766082947692409202075115813604091728848008605979562056676725028025858820209260531380914010217563740128434943231489344979049322868651483116907103556305619021034899863230611599784921099829036884966758074548909026639799354100903367935951103858327890997287631091682770226390941600872076908114119753774241232273635958291781175037368525583200015751871358723500083261614429354723705752589219050029259988857960675724727828513880960218337775151741569195640239820866259518299030767581180109974872479900939511944228748397670722775377787881450679662065358554534372964905445326456323495410180565974727055789116068604120483961549062864695575676248272596324310607148757603242827462692008698047397718732864399917119575623571731635002229441674791293143741439463206285056785210933001764486365231251010391782645400836750740197684414869625919995475984116081431278574933023131783919579651290985833623594830053942242866397245009347200866495365355582404623452128595119574109389730213983301241785569665760695002168094008999814086644515616483273775989898805763260779354940678419031469054038871898023224973647845650503568183402654627849522487882040192327573122215333386365676612999280755397506802886887451794406423897337171547198078799414907895655365390185636232161777753587855590034259730800521081581745426001932578763211431047992635362729497073725074435147135631537796342502307199176091401919009371060841889971917633609402607200526982526826681469795700671189343266118863789715400694029139255578098770244049848884817670490628624593227377326738110819603142862442777942042607948223727278130397478941870729780215312295747267717526605756285462986234742632709110428336831573691068539152373929188472087583715980488317401969077368387870386807494746964417953834685514597672814699468871116967623239294164129762439895460846910541272070799749778039576258170464962322917760765122768685971241900502042501397691118161653167691110857948875788144600527427458109381060465952784711814506663644502171882256192111041616406251517670819862784767978147924765112172966350500215223726265653864043561558660892015833233986493629609546614306303168208784534902458824538828256061146012143397545695358882271016522320495739231124525811485910226534015967922189617478157981331699491191536859158100224439320154259842239011636526181489147705098875191027775195333804949772826086846657791538005279367757022572928257579735448662619554931145557505295745743932419467188801864337668584557645359147401862384647584509579596389192265029669018126308715661873242012485163259870648368499983680456764352705262203655505934963356919310488695670892004834179331872687627337108609268894015489536587282932057632996211077609192431445588461443851017319803870906443994220608496227364111151724715913901400584985446516111301993053052782760444997004867331883555340266169412225299209132686415004625009633335968526621578720082321614167230431789213465923106627976684828912982242156485438973107334428606098045039757095312089854220594575437695894183113402298205778938722370611081387260790352788362337806449206684231493786445359558120281409769950418344947387121097581843196186504184333340476931442793021783743160769089163166278611127322976270519111869099126352735460252155452992762004642550001267879799888806356220118337302196566478327572198104812870120828703966431722460268856680709546960191919469979964855767546077909055965685148233103913271788146252328750740829710579733102373674826570474735732939338394404117643574775446717924474289595404162632994458866833687477085720264635032638209155726516697925925693443939980362899830822657553514911257623355615500264579637951866936627403585040889885463123548230623242188164537759044855587820752810832996038663486906949033375632848435084248314246873280977833125240944971333628890091966642269983537132329878149659198054204232157482868503457858329454939817047080037108185801848169788161980081296184635886155558358919370492757822568246734757216912459879670008740773033727514454067897403376045669025427001331415653438564402273994915922284748284315654712492943234053426180735692743242782479390930635110603725401856828686371822297403415354328729678825053150713686224649007693321070757990813705616597937309223435980035155854748225117503349178214048681585667757429715977397859249720459557686408420806787073130261555638850756638778433161234713988821629582114473745203644463028193582882530329530120810539864289274298273866003187291632652416772270870645513808412186522937637649574525671982625006541390209233360674595778398264171382472824924446325955593571562540538899119675759955254617889669598374932277864885306811859734006416683180650196726253431026559220583921693426602526393531432188532661018405559442109410539453708910599141137626995728892198619728154516927005050746224121867397009486672896143635615226477520441815166270761658345425606504519412385199976562530312977736251180468895514969352733610952476993546568508149647760687789219808422793945448603792116488140518687794609409027694923690492502395934574494042876239704373280347691642078075808793498262272386010959115730350332004854679054079968475901770453430632026285115399050313702501585667635196506676438329522744868181119549696527810452006779967122998214310755148302646452441060093163688645039936926187530789529503628845505328104025242525305422177067579937772751656302511904749397849070387671369006600938052506726449713878286200981284766193153759219553676177576940465995304073443013785728948276691511160439336749161355313588419472186533239889985559351250342137192873562746180587524638428221433685422303714454319463729051878934653472751254853521195339192198140004848854874807532435714598576483456950717965577731695371967788532870826719184271773812602435969910627950154415764819433236904824320634258724329343176870797817192512813980293854514572934995792973984714388038560229494211744507669790089870693808138176358327038160043557493375280576756108904090318962689099485707236163977010499467666532210332372174275716789247484936091413034511703643927109227613809913164049733594654558873832521662636065244256542242799909856686809052591942428133925636298830395540597852656535098487687666790140132590837751519479938955658146590656256994654105956691736569821022919919919248789792624474974997756593528781090745760317488080946018777527543994761034851862702933375995493110970946861539891025824748190859232346829984358222543504755411618148269561126713031188862376862429150440264622594741834956128342202887403343557104405814487095086949395039859421801822665114597800508776973863247333434448468599045650705431625740957973115152170951594409484732498378904633294488524819701285542264984001734808646134992119814844426740635024943281513240126239833591744331280620694683602468783646845071954608420992674174693889047854161776259623126201983250735519956855584775520724125425866155766498741888188346539687143679204886184749406873580196852158361265973214675335913477592200515316967321036585491094205522539907599283237685376430698118624876182638678061206203114747679193387813361932115616002204103658095736532653616664985820635467429468011490363862547559636882912310487154149278047299981104658180982547252248157921414648926540291801590116071785614462688796973205426496234966161297341501054895747713341980597249245559984969514416619116871535708839452949278171364185804741898335946242122004446978044564113624628346295166900463426497067152505370756093260647479879185398715246372939106218795070574894550289093080682346499263518909471185669933753569732989004262347424931610694081077902674427937760391319922445832468823949869974323193726074837321369080482890080068783859073209239324953544623929374949260262477975174868607840690321652968997634058734986901795323028830725565793465818110155142148123568685358655019084537535307357117610554581497004993361380247809396789352408638499421902282578796210564278309098543639622275000495977948130607734246678095837294986744815763356865911534591520710465748666952105887966320257058090881814397266617421997913140725062947003619453846614664136763791758260157044673863434204988892327717139388203893055385471945726527825291676767835150194172567884441642459658875249943032353193224293101072927072691265091023946411967095435793727848499606140208200045170889895360765795859233034960917204979976084351271151271000309285920229847503634686737657783239289530191637624364928162043891853087171009048413211580255808306898721688051087364724701940993724382851560820495876269438847415268639125462098254277274048342295175537703183694208743285737729858565220783734275888258567316153631381588046568520937977638721207225782717231955428725749104658628576892856393673816129142451309997767803501533017576310231437790564872804509454055389676984365798315284528622167288750578327788024619315146995532650220385728732783315244040839650645690213109111597166138839487859083720311261077710623736543848788734890517349394793521000284917581259030218608679685933538955609887908526206974195676546421306575223328641579739355147264317151539663080395484207878771475321274286154163871917855240616223289904295550995070130391624491149751345141789915245699456777007113560900489544482939760464167249718470693350669489329174434469741402260423334146963891823746120786463910754466344612364659537507307637815277951658626497109968274150829841847632698406309723182414490516816543380597601802975136261989387657557840829441250908722238371322208500267540958716400538336826669150436683807603265662685613285381340011054899901320407238458361094182316095906551236868839020776084630595680817171008902137772313305505832752004333474535369865226236272453954909029005806207898690081758442715743032962775121058793460369670405123670229875986491292485003093693339744374553747462752615216045523588897108044037432700889747339977259524065090282925218019054030705950808157511943539003438594823571769861773516058604093018193999821437619696100755890449122597166664521751785436637038314584780195892391323693073529272162275918902593357287277478301734315412064344915523764997380865823124564726626969145037604631233773465314527678231857163356653064919580261826982790546947572884118850868772779736148818500634848319822472243372906365417418266931641841252371686725424215217960663723850121615879410277779090509821288555305169937707072325165366408383907310230640123262320476597099293013158259689997726717101580200516459753174641795890151282539874153992914911738020752047391782165414466495418817571675084276476806117080361159648185687668094350116056588511192347544544256882178946780272224597273033031383374217681992611619103789984485200878368430643942305624241895964860013729733090677030821308066723559714414605800538847124569525557787606360004074615896384548172768330966334316358578397950774635143006608446320106051929139146479076962899464466503384221586024042737352391595781381826616814902973111888804058761194131278749283497262762505565492922481782969851061186330206810049391889966524482216682001254973984789479357340159443198196772905863781689042548275167479466021458714308446542274077637894852443541407917356348657951533648325763782822140744820015522769172113152274214596943596103216127768370584124433106015561107826724855849586732102499462936309659746298721905652075693135504098607344598936583223665199048764241548009593507023374647361902343517607512749374061484389433993651072018000659413869955680860353356563300458150935171724229621723470414366052232846241668329457355790464045254856733010865030079134694440238015256879751902814081060807431048841365466700730503410429115337882402922553191500827570211375720990589526550671238818216153384034109401673196498495631104815522724728205977764044670254290595314815564307825299793427647722704231477607511387184669475650617583943839445471792152249636722929628677062184592914883775043627964932205625342902879782115067754375039662414759449070655941121891108301747550191741448973045215608904076478608249526764954650080810779424344924964928441744783587338757798254953916438834113159103415529415736096418830996634560898036634535451826916432881720938315714644770111906731238589388740011026497558340019483287827402487467561467091277240759376933261952476438727101439518424550896835374620324117808912502761157043463989343233102035009445699871389173092334850898667802742018143931496179121343480243655126471884813733661152143992575412130799852473035845358368300173343028695104523535681312304368156399949168847148045254730327730944512525361781596353518480826882378298462708757153873640005408099040023030980786141148868645965561541696081623757224672439746164051121374359044558431404630236515351568163764698424607701289384073972361479982333439906553600897228248846820597820650292692310353670630393316349519851222374434425746494693131440654195835385732341079182618454549013652960913800985224872990199667452633266519109846309960463411471827440433692830888671784866794647976155818294742020472365065058117931629132521958635884888078058123106719289513073073687030061083215998073874789594409288227841763382763657746874075670622634528857236843803905910697609096412693519662233252768014211851245434138493019870835812985155589576375132725650920702912430960127760817635139964782705913526882594147841089992848939381317452451657190379414526314705329268987115488226364001348526828086763510398261206107784251949970968432326070450988765139552276909456839828518507930696246674486347384670525285698118418853872168678303123750158152568229090751833799973535531700753319915850297691022373968826226847882064354963867241133356161233514820621233093413167347971155645969197967254243346324017884716906542992303216336548696377240624801197091349698796036604985850768491394121347616839315423417000168438657837311044956018927200638721078840087776275587357218598493716868187618114039599558383509021131985529746852631164181416512243504463035913550493676549404136515062685951383818554860440680580005351523699831013695079744289339365889333634944916760517723585717669879806491118016027115176796101131848164496407898477306361622439723996730637910126570607202837226801543884407559704569084672026310512488167818852420708080135577862648886828460809591662812407753834182050082342667797283125097118901689678534119667695711736910696472873535129512488400504256632294003403294972950604668577797938158411705912214232268017174614859755957593289327352060126671447798417062562157978074121168062346099233175057862759331679531687658253070209207508104251029914244466827047084290564040624164908077653071624951362743005544668960698678556511817032757968082742027322753605561130950599922761467008137654596139319509222297404092872051943222257388871247161811299871691142847356102138683924379805010515366897451401349314555521103956594304835080286527753145190060107128928148919587489149445522268717684867032069003178958731297792560566511957729483108664738105536951664936676398222711574976476588191125015890802717242616645665996006725082842776383165348510345355066262655604496760502391972545373478307785378431228019890830919714821037665546011316411006024988101665485263492204933563916031593724867117572569813590852389791018311385230511280544084937253219995838948954571197137237711148436540040801530495508699428657528306856514870437622514671163870599764359326472778889941183843483766338514426704482121073939841828803094245927198682284629038142494701056762927508013314360023315963338007640258804605255794711243061566768002427658880981245461020284346569173569910481649508739770911645029844878665620941255510886654048556913859687192107911042265942718838288929111957367292231110441126431217513936986792669251038945906093323721981415848704638606625111891748766108301862682202692409325252661767318016920986971041883877820976564078619026603060238722336059098504922805280094687770814624275227542855966396278198708807868645315834568044323772586313575662378864865950064111285383619914167561442993011538515498345027947003333631917126465129641688694352331235786365159021132129541105199767283206256038418770174666791566108985923366720553041272306924315768428958633743186741986358460842450611962491633932834610189812735621860031627560495859012403082353805368518834146068266921679545427654699503563155775779260255675113112692652945467597327324808062282541813377616641045755933905553463520388214011691195798700932552999358514577831688371441725217547795143505546904795779366647322021501718169120123616817384875815782229014029664948433309598647719093536407425489033576466573558803494753147885429277356955327258158523505215384232359805123069679058560968837736666593171535462328985726655705698050337363732361917099906342633934774902265009435038476267035412576099914361100268802100511836006996968184473646380128634240580170475263127756299783416247073603008511271414456579853943082373693788022895021171744198440411222674052300799619134745454666046597692922002041927336729482084017822415022139228030704988613687179369010896922282881409626329474595500601056474577418988629663892347643734086427327197141480807197396342864874621437299190471329563415482024941092208348992217229904939788903106524448809775668083760881408844196083469779180150763509128318068867421809469875782833490620309868407963872429580437989312916381395529702177274716346051324500241684537416954728422637731771403651236953283833769039863807068829227645443342138218331874467220745209198757398129287286957041659565256721187268127538229205821964547269499637297203655891104632229983119203650045822173163917494227118308832761969619637696602177163011948960025015536834229199697990130790171716336140240613272791274404963765348652062208686920254636205887097547495937557156200353104613703115422414168347631455102552512867001643255566948948169330755327032611504039542223073511171487482160781552620653410770706844537831522161641929513000231009159696448796610915576489989315182913261565592296524969034885318353973427868372805234879330428180035982365884161647653050554076596004499794959105376589019356220703852844464005609271941004318568013347145571498747788276532096635735482135552650073051719892632282646018835662443727557465660767281659037243714148524485419578771715814561233041924485222347244925520842758450227797305261400390131229277725081505952811436609514993238245557900810329289883220097996796414812347561696448240863144909668883552083170888554803260953533841229786351540060942182131193677798925211924724529804925226083177656206800418991199010676397684397481882616904540232833538250003709202901651311653146025412265243185925466940217413717189821560012437499184366594504046703683724832773589979769287396635931330711725810382147352904454579381262145830638793904139243954525795211620420076113054590908543036019129351930464340335107072834617086964307326456669691155544912573759490426160453282056819226256175699088445857197248349784164318168692860515425770739152056055937846079793168059573027637343243925713303703072021052369166579009801815175249308127769395079513358887068014376385941926762195262628206528366285568199492638385149676305243396886671019321088428578203219437106779287435819013838096897199902674677266093843616492058581661641109602306243557053622779251468674149156813972280519982599481395108310480657699024606288053678935092034638937010031814742069726880457455253966464362904035883624654141410190409492812681456730669218759971031351610448359052590949226961224518315580099643867418048419612992090035826715779988308395418149135130132305315416600199257552066346340926977632579844665500021353752121616480144395708993858874593205566314534792720938879934962961070105313781823707406147366507420829280701681453218098311921926311702707963252924841730320249309474897323333141733711129102948100681493127340575883917902793174553190023521995423162824948114466881795403946893146068090748598955699267737267913278930734925735238864247422320414452763532491446232162456276520512276118234922959555853046159649630861506657730415255589881436430327825434852857846485446249126447686813186835398829158117709337786777460014279276650072225093619052956283579376565686293760595906966830641298088067901601014588414473188229323007097227583825826111605294926167709505872977868904528737813284956931260697036989544881613594859226976039836678984706274306292986849832518192004350428327135499146790049750147948656795472748482710689713073349154814654154522611712346514039646271206732946272056187838721316947512455444843867084734395976525134370149483887482824226941695459535968510971667485935167202668659587935746684348587783752031821273367771847270607757407627893350888109976258943024448441334735482254124715421368047440967400188801456829604944109923614313061663204596984963449818805426083442145568395400033972905010480075223805370591525586137233692967531702702994159533094321881108534301445365378353733576236525399792824153980400611921133164079639956046989653335337813706592492514004228277128229130154953712051982448502993874689387536226893188490605612361630143584295069853588455624181203012882909349930168549404073697013577025802052919234178647463034413137773804581881588944594197441256992813047578460080474372752526621559064672974004314425823192387643106183894436822381362060401026104409139125015738550096275044216298273877364312218199241288657797803823558931464566886595591482827640726836315114745737983746724561183192416211050733377470540928253815597399169677094450872260947916880576875810935799572966451593203069866793521617180597058857403146735103866153512251740238427143543424620615160336234767663076557951985407257328276753904074007209818279482892102318323283308080603645902598827217531242765738116844004040223777035556362389085368826767160438025771007783835023725300366512051578978083209410571511083349125082860676312199130083440991569915264273357447111537061262495286107155811502735151038736634512052282075136653888789664160530189643588487547319955721155977790136613200238091283155869538136951404420949092042890600092133615281744378460724460697855135743383381993445268259810578980508587443703983437500655548636489191830200468876265341226007482283596361875874935971014477388459907737192395746606738596836933386897485823327716600326509391454460478607430340989143480443492803750901426119824966288735067336538351267899272347442217887960314585906156318464604811672732157700560845820440288796113592396762507411405236372318642249568997436788177277818563805576160634034888351560033211438292439902276704479616434793023620307917386794951452901910674592952193077570025221713650013452090177231348474460513850261922898188417923436137241583167520973004554563154139272953934943470031902530025202815511892266058532280320677589075041825924740081969373127869936690398404327629012666800786248152424450997821301097768498531133601159642361632447389181833255421959984033845031421470544842140373486099895537517200894576606971191182919955397019846121299307330797747096478174270737112540181472215756342121542480792431796247234566989509404686969280852422491764237907285151471042661913096665166056373047427796969658755826486163170420844922333904007658252199453954001362543342887636455225150319739539879152204984016812089187071960302203731112576439465794641113651151087056354094973550030169658158794980789915830100442522819940962775319874678702106145637715773875213766953389484912964925481088980305737519964427203601199152500755887250433791975188130744480051933225829223447505467625647861907458927189152081899532422030013662814970959201384806779269513485563368387890367303377359061491562843952802329108843343324617254204127389619317450929054929425552965293204434403931273177173860847924975121869573274111824500202813700027402140352872804529536685879572269305962562105895030178734554789721023611042416127331911844923816917822442037750532484143036668282438191221486855643244015348414141892211297919309201845150273585714922093615944464516309120202060537467520023455884131582308998279759719797595448634767755964060000062422519066134753091946009033437666161589998246942036439135878585007038797071505649555595626988957097582915016944184921703820110254938978101031212091556392188304286526488084831269432375354536269013238704779259424893307378306685412769005838181246436734682727221083573062581469234385347505258434180665438271101503000443693974607879088510633538533588038567196301875098513132701956872838296103768221797398451519599434607663835069966463941241336457614559173845755589588160644063789167703914935410555959155949225090879950733470406547401396178355888831074133964035940478686948798120676447165335193760502080857280693804547664295800169706803621652004903312718730635898152203391603660766104734862311704162640563463068460223310387630947881874686444678300607799252406312154042434924340938529610244297006610224558113662659814808013406086775631202187603505993833723195589506416804168501774266483155640089109514017667291899975197202715231770513871350000331491524673051605815671215080454866926654560310870784687091447980798138273266545970996512014123211093812964155940524773090718409071150325141001881945026412466418919489456958913892497100122593964357901722418444825563497065672576177789284593501866850064953218884926686738493176383899915165638662821103441649762337858171954209296081861241595762276692778428445190931785874292208173338737915604714302292490700260956217289020536871575243684641078548522406629708064684240844324325192222923414587830125312108503731630554574487622876348396089903033626325564219130595378441451082725952121979273079023607355395703489067228012310450350057157634879212824996232611289910961926683534005745280254428228000063899840619450492410922836513141170646739574012505101976700051818854421189242811703644556209490412449496546124312198500456894478075716653957052788493579933120889562609266133251224309359267888411990996220984977023398994299090010321588463102597800416701216018748285588251889371605839621482270532869875547769051014184597522036225426737064956918674037289231266040942359896481004076312969370448379073239477907680322363931614518499289045112252467567905381162124528343332600781832710949042448393852705936082645106170466186125005008777640187597651601000484852982189976343610505213841527189960159373581978452307959889780565140228527308410633314555883933706012359954553227525963659896116045879561519432081125472163383264353584831767789894243962688244645147643322361325946946345278435949283222404602888635865842403445800888450016761888848317506434380184688558264998257985363700704344089643582723053184240160298067952390669885383372160685200083105101118601383605826338084126294346962490313720768223270281323708142626069635079447271771480134530236372522331067630645630483485293418485760233015754875756917551378017177917709717732272792404472314657971650592784219472321804021571221293098725713050163380451059622362862559555494279626516003439397151729496438117899124600935114286294438117279379369655074632560575913734516282708696914823391354055862264142420414076358717513339409070459218471368563363616936695881799403654634930168019135868593808671080052505088309600544260985050110858332492137031213246763048792560526307065691755786617025964570516111580086621299273313630138643514069578690922020372149045234622761524045647232868832041190691424386985552599557758966407005620351734353546639201576453319966815910812013880343114829205194910810311417924773445148266131848275818064122678629275850947487586060322807446736989516948161511658564933546612737396250843968210024277997612860571910220523389552081520421154885900691495735171835734873034146124896723122565993012034450700880730313061615865081986525389757357322562736970044633617886044854724154764178031645164683586669843965762627997025666448479345299268658912315278517268566969325660769785353326687415355680917728746433126772638152392360854040918304617706892780496717629239770041715970933650303493896277906623865698274585603857718160036176696338421217505683232572801964580763146799130904087679689311670657093293146685551730109712249843596351456109706805100012488725578772110681173171450188393688764260886230625897861094434860682249095182096453987202341456779140823920021127940377014909002409220102237665356367230547557373089542280673191504619104823285003045242268230097761006412925656266007678018332217581827054354338750178639574474865593062634410707081517550960634822066396791309746151765969574323462966121675204857569698099213689187694738994992133394785007719887998108067500348504854568101872688199751990441105283904562751257205380064385715188753377374667980092560376434261295064377689889843669890036041679950418066271253531748343345813291644750696912521826285106471802625261019032115826693910265613215377291296891542853381527254000329100635561104374213272489972424196439395269656540598137442075605811788082034070402571156179529554638892462995340657838834029084166882691295921629572216220853102251952666797624937782425406260716501292241000546516685852488058254769169931813323462964862894007357277361198522402583068433599387217938930346062923646973888788508929211609121355394217733222014596174386955497616400216038885426197302799812121142630480341193603988765940850542197328582266197744630553410616940718372092094499631331926613803688390074824256743022169748498568466216475395213236948508312497781726209636018167606552689862425469701643229007354477917990911993665155686289484740236921488956886231290391797539971442197373127194058240429448987382217514381425472510009504597381445831768256779279425112996349598423489310216957428493886262406787308439882955824729405038255080955852708043096971112276378220608546824924782289284963775323256483304526252772570172208999481093537014423686001981080666159742493784171263775341261190654307517581595270445766782231520373112530767079131580958777867695570240117924726908708530438649420776260641801661794326912559932542369943518097220930368707834432438093913300780380129303915838356406799701814427052359382484494691839418002380539785184317931550905329474150451634395559016170228176992256492108597751274941774826108609173459823782775393767364494769056650714979522262157210153627663492671560120259675837307402700821920152941330310970476624412961173320584602174405502845652688112835564195142568091423019829597176308081113920684970864264900475818319398124870396861972069483505599779136521800367943411440172551695817538328019156127204700530633050439475218587924069000052942965277890926586111124435808842931712929980753914319880092800215465345777353636214720143442378131779841821497328802907060611753897914107466405334149155769407574171602472402801103200172846974948984497171861408183994669342054927978189961443899431992168751132687363734358617788007520843950843061523138782528471390460691349792168394390575087283406003901342640289817263724023834204997101545969543133892687994032386395851083493692416507120073825666430077684691102353908119689529258422329468398012886788909629060817857260709182561899279856018253626288468529699864148222991312267552862830326421333475481852777825955654117537524398417845990631031840127268505328989655975103759693753365026508046128511496715467281814912832526543956538834824221119224916638846082369034039253639903282277800027017072206431678591553362587664145298054572034968487652863637788738865808384215753276149803499784126097019061555469604602498940781745542536561808688624495602422402402356301089535521487727401708737861782138836758051333275304411011079492418379907726428917672148698120769400583812955065514318418178066127891668522248069718607614841928763557485102155638119088848020461977597957572305752915798647984114858994805037744891864614084664723411073504939705858121020139415269399433865030936935294556483750365915292602753753900077116603059218250903562358689503454162359510920352642447784200179672602749318979896377767437442831045611142472136847620765662049602488788503444790248312454476968213952143205815948375493128971212679285212767511286201415802136323874831639451145813748676871011819244310218202740071109047866040381112513839795098598156091074737031694291961659027387863203846657247086846519410819891005129849875555985592973213443875620119315994221230976570096870042072668103544357209910257333412631722922384092587602469194301975648308766318962301812401261048801794852317666347909855708756800000780166659830304565669524769575275430438816647189974157551403200763028360628463271110589422675270050934822698060442140766390405205603683077136072998973916606473695251428334306199792673062015207399073135429381902986530653887600930245678837381496632957708982499318057935183897980134392061003278218265310731446685254510842019773433049871332606779391138687808265880245897264569870037636324706461367944834708020892925843203210291166662399487670767297961436897507275192640119483037058893207285792526310159474637340071581753329242379386264623915459501722922766219722360883811883742302426046499755714610635300368307618858951427089325695738971395759200856111837175827977619968162952229073837161058205308617624831107281426238550693851142030594558888837837416801112661077611970542533171674415334412238041878318365430797345692714830364041402241545413125880013874672312692194087496815105292758445851635515302435237632077809432406611394041178303797811892451753675928540221485586182256519861088967463382225003310423918433989000395751830170353496335626555680397288592914820672361830817068272140248662562854237927540218438803219573929963175534689496431670701097794326793113930020027585489255274539201672339581717974510011296732047753824719658224336303590737269833952125443313146061517031648397963273433260063408987476198851980729980413012188662554582705789821482649995866142855412004626519051812302291022115425117231829972117998025818941146140915753230000290418113051400788862537571884977924022726269469600150706283587898852702792425957039572627807502171025324293701416329716268535325840670955914696786801846547226700906989857588185190089101128372467213636198453473258076494571377531613979037027096203602313259429475911915333969676249281027397724719123667797097412411658084052000363772518876513925344805101394007613904915820175931106273290501010019853356145398952975733229376943548893085158202669534508144760269569303772095816924953037995683912789400847673705411554024946531332596532648342768124886919692074059478720663495219800208460254478968579731971392319643058875871483910573578066126875504302221697818896584754554558532032855010577787752272803718283420820340298275263315388314083558885529925122300211994930819396652639603467816418684977021749918860820722593879965125864151331770450656753694465607954724418506031476277002185619108338357695158633613651588174381286308756681442225879988286913690797951656762552830800773088516693371942971332784428463652568704500328178087002914105783150380325121983729601345655334100984960294786760711604544909883373349803305823113894266676361645545056218653481999126143551965881244473827282367047173681775763711441251238856533198233821594689885338005166241237383247471618811190817167689216561874046022085333584209460168974477653498060557532407313692131392857145050225053834231415845222799393859953731495762651898495190359334584976941706185401305827674665135249758725125121247235880320062607948296577633749530633351689672036566302741068504935804450639069828972960300429553732102233687555936263811149942913067448596138192242148639526389707482246551913832556613003132869849911879085730785371773745637110633656420989825044926060813497819389941831874717027498187502297514998752406614062920693956081006341910686053983841139042035790886256773731776789365111641658702359280536308072832619741925980505584424158848171903998450623011263181687946660447126706660357190155933808224362323456508971994073148952071900026046672950278138023855897283205141157939604424689305483505401772242095509944405607242611349475202509757904116754202316094625624034584180467257798011502505399720043964252487872644571753801197226631211539025434796490089583715911847615417072369449871438665976117050084075101617457803928495004983836526336445023882153921943936947920643489534786683595485571578369808946219078963113804235435057844609117341157526908044668978164539242969896982685320142951700913355510734224857279820264602824423652467431047142494828563955831435342262814260305091441157977881633319700844858377633840515427528424534942111494192658830292594259059680401053361305950176974716580638986887672913234585872318424432879210330423280296376334676643883411356098575065162526627261706847836895144847861773053876826489111852682735214199533246928044870105015280553873638721229448647953159990748021895220366503228765890278111059212483763137817214669910264964222073317283449675787492089032974082215834579266227197864304843178205998539890019225074227569994657429582009216668028600390232454447117168198644599066041690354141649162296660026228118658637538696464603441628278362639437350943548996070917118102030941317008351720916755870156457348347921224961809012340735017888631773678574629326782578540487710154270451213637206303287266114331172964230005010701806778550847683040681906707675222908490363586939338239077810188096810160513882243127137587157085938592740438919070542764884182678078575300340460923496300646544828736875307825408386670138622397804563945365567893514499583102021195173833874648518217557301889581043390493630238092161109945887693716158155528145283808165788901373570686364393931333917030851996549169640771683061162039802873028608478107743871161204535973375711563992706645208003751407756881102788189204252775859606275016930205218380389487115495784942864244527496977612036137662527829734208396829016055404491692962896849069517457838098661791385758818086117339805502331710176625406118065365866873603451938198995026753433025589018708792871621477717362609689204177402563325841951738433394699194835636534245112620702908174466480332911915779343368271622856918112373920617213253535021583142484708057856332920021097143800569151657937889807623310403687164177883747137643355629178842972463865511049009071372716561609777920273367912182726077969587349579984327301891186174872549421559071653222413480379328666228532828061678763721046703705909797409721848416435799738619896346235761641642551950606996712652756253252790889148790895329116618368665135867467497597307564847756559817630398095880577622428014708517092671544109124712607966705171080604919654314648122539848162788748748785737721345551459399954820694293008428905385408249479214068105552337100641917862579606782312526235925018304953531843781441366884065955243112089927730200479340584581238673579781297750626947561356997456954748581797912457539851817327788326306869808147478089689149977200327083652039106245311354233880253754530926734684222812962002491248871337418496380002459648039461323467143497913964538545000501383853157358187118446356573956381404507084875856693769230483687265206320619163036501516838367732695411345421212942815148559605420485806722340483365011764222598915049696859678901622481859994445557656728916111618269560375592527891020682985549282286029057964484826571770743568769827808952507429506150236921157042715689113445592666783784484250073948208467955687510706831672150438568599935266728102101036658258553456769011128819608666967683216407439630787061898225999123234263836373088105142391394207762964075224770234868602532792386380648935401478952353260370512093537406291026354206535882904673048922927112378557889201384484734785146403078822049252395598182107993333686985720148577499557127384097347942093394334924316050806715625588644211890608047878721784369945881517626141053679021757754940246789015858295179449942332841191888442220076353531257427754064894692235200587296816584230316388882365829769890881901450009663422037034220274029043723090659351445390715151761246276634269802862860405103312013105786856558863091190277019794514640744199047476352949857577721920636479014355683292036696164404347822904077052475754829231550544958551784238994667734166190463086947762562515720127521321374103407354928322643291096125976366190455527001531753281037241950232573362646265580656549178958343719048784082157347735552439885478167661195547076773233616446801125860664861212986266904578274404985735599069806255178943634260450334496244587702574536417958422421249675266631275255809924947093075320029111730258169140365505844308731007563845117337835933983479368701635937565609679677980141687606397630577052428425296661456984076075465136223248098969783521699849577063193045808597742531819785755095884565836373494740688653365497940867382779481818049811165505340386582897532905132054525665761985581968631435094102703526907033507343459473608301401635415072867317505874333844254163634066957443788890126214839910086719206124533258876510183045450082469837010975169118776882295220060979171610528266103713986231879457074556907360954945755394735979038154254946878401457908304739920070956491601432644515268446878395383280836346530536120821242412253792117133258394021938552767181069836901330703604138553846248000240311713629481919398813127011793889297403938890374301381797953227833959827845634581857391039370936180511170242494429332306645402965822856216955008420778196351790821797684457687056404040972922054870751366165144457201066423476574862330605092870006667472699360298532657099483699838362459280051504909293001021446927323428781083093991441638544190348315518135135476942631630927330963890615183968404339507024291453537163148869999853296580969379403901396534521859533769288854132512150880772666866951658662869191809192839495780056739102941699756909264737803085105393990259823279836136108844754261693123757353634779216631706770726031321585599534360698380765411334189190464800228584203931373763989540195883240275561985380140075559694715491417384262778560340315047356536293682917632480272815335883802426033647827364912757886812676648282657584888469526728166474773686434102659681117435382138822065358677201545268253955347330584001396137487890571793237555350344725516934555701909269839575397061163566611422504222208309189347582737373153046516013399622528770175013304367994349621820955850501216341234063166588544785365564067795828062933364120877532177945513857101657068550951589571943107591591626501166239897275097150712255567519798343235925257159950747479905739405602653385241194554121217228204370187130647970873158933800835301756007348486965381188034600705762584561463532069720589365001089568470476761289234542481394165919503790252428113852185018392795588542793036118376084178235950939329576769918903306543429328168549989110026559062822395965523170529022782488658527147247762951245701285807807016736851333047353131624120528334016352763839161663718352258260183894367384388848533195756622757074491901108146506083438709880103949801807669342125944804446714369910068208262900895215521398448168948360614257953048848425446991288122027822131532722506273216045840069108800364362752599709052991430024227336493361030830106768015204583006008260471570294142737437227784154360031492562859867922457234985484919998077262633909730393508524482541086442691927809277416534104433590285743183727023506383754341087167523565396264775533467869488605259920795282305255498281621385515902939181334491790412053669413684080740280398405357186308217247425630966954196365297747050588617935887347835511439629305048012604856999008526196551062431905009589449222651777308410922545713486174917036716276358381121900069016801421949139606488195044323690388045150588536069746525508544466219547608393742641465531451067278016518350600238054880739537873123960391414206463597258744531128229698447232011716427095023842331423526382556849830845793427029674187558128070624726121319154344995649172757657295330146344591946899515239187615050958044978494998138470171353523250090846641513968885595224222164906135212505373569157394537346350198399803037008544626136748790568992189426134105288452919896183958716269080213291226791241117114967984436394250260053508151026578754815179532814578456683803540139624273107531007527523375210659072275860463443356925098500933985719621253252573373822671135870659887902720436840935416597160203975950257903039115860768483244628690511106183219209075059897154472190005224477544212487289382519627030378662859620818065391041852500191056183856892893653471206954376584419290006992108912275875340413701552714564939439122246577209006671511022170406840485744101757377715742148692400534099302769065101868799844439900352444147411328157852371088011694017325335698766841984526336079676559557988827130036781937182876199405952419676592046727876669451130522221334103235629155824749114827109700451141379740143199111823682952952001523592297989882088327761387685672614677225861153377400964761475301947445066059000674083418521929039513312965466520041535271841479737303793962155920027756275596512031952127218723412742273066184441822854095894307702539172974051120610017520492462556981776070728248197579751263170041187844168914336846163935367721072622687153020457208508359563510870028781071899420364220975384622646933302611412739967603313724286332346724174724476905076630298364788493810549252119878376819968529389332272003341046573476785656076758819419133750172496065124397667468345677166572092652471975125232301502898284959142800994024937883823918586041788299648919021190795383705192010813669338217925152758459380622354873163118182612222456004600950559816716770889156247264129510406277823189268962680112888907684528277769608180053144848190660825449389406406019478943726756820627640778805065659771152349359685853702693939869748947091807706175402653625832833253444790947117776639739331428410213848469786287403760278046903508754299534698466386455038248291790155783612877391103722287440338738583996977746068735101444320461121484094862037420480856214152371343201148061179610514538123023900804709326521459518055621418208120562194229316546674469920417448409088123705525440861180909385190170056679109356247344476453384414335317604109606861297143385962546507528238998444119387858033173495773453261174907154078919575767336576712404911530542444162587638003972778331949739290613901118343859584595052767228282932786426702166674385004191573220854610041011272428050917191813594160521507421351329759807597491181014760691044750464717689725279465186829737801211773119843057280795376135965360381906216148341739463390514632984341535883807710352102267578582238093539300331923061853722038918580785372371288741680001023613578207619599554285473345302032808122381210693502112980588551030017460681924252348139260953357030067624430242496315938842815136324899569708931714853822877802586638983521007006170145051787898838293628106913944172167860015537430418989514236746066225956484579677533038251696395865761651069295483896859551428406547995762350650068659490010327350260320986915160578339026456292052578703929023201466374634488257972547937126724038284332228765534467168587254058013520113023247588801318654414727788195692378077575498738429181980233326610777317086414394018079385666451227582252814966984301946367345183330809051387538290059949453169343965925577845745986055290490930830952460245168185525290592244719887394444789965660457922472654369004175345432034138387918242524213192433922492924855666584612807980547374199381500065304085382492438630536023042373288120982504229689799317050361982569475747807339212138200828780558599692045374677469920980688283467793896239298473269700108270038628894563818732783395360860907390220040984777788352157971272628852970166192857563752879341352627013867135043054753663455046575566848580396551108375241524010696492356198332279465323764476971152578656034622203152415498405086933954644083334910688092213760542536301343957884983731439625093417316178197084710554454449173312513995508306006111975554645193953314865290501577791661694795725986181828669957824106490756487185711443820312043426781428968033409965330566869775619239528505578344547632851382756323735317746513915104258005701290123433400733110025950924418628898266831161703731946795192137831913594733138414749073920269822361323308646209707080345659317814274503021773022063488356744100847547590175517870810561981734173407756568622703092472912960859455165174923221896625682056065598339025135949973518229819567740262760159644315880423550219002592911337590302415628550338260360135840695681574347230372793669189481991908693250580780273362667572906355258752363377884701014951041205269008273420384569226016610338053397883873313151020417091918131051927595057342815882037291040658287701956332859807249109707921316646276695743572790601376295518163198834744653201114836331079901896131821489139748262097636885257995041893837771696124483945064692882208569403300754347927093698276117532558716014203910908408347164285280634246259935851053051753654733140631360638515019075414280902771837714911563043195478663678916703292831396484599551900690864598844879042525494481028202739939165821224092696761782123449332390360724094762061567173714691935792502409523960043030803396540326494468423661396693856073597791042123636342905582417136751167181302455343003160625546779092667755531232041534687616094915486815106794768730991045188297969008019690986964123152548279897481934647637928194682138338218891174369347082066139559446160438626794614886690286836011936908607836858426274322739398503456352909876687250050309579824337847522595917923075755268879305647653858996060383249877044155656246536529582468293976826446338293035850306311889867722997337707789635776954636141895616147580412394962435957111270083576107252239372254723821834010480478918147113266193277447439122155133954254634938379018967566139195244723830168186324856562286007836490538574960765259369297909731402472415990732151501621807999981899922608734915155748200130079197296038872918486940277895503804997084628513591093669871577857872837094906939671294273083540789098282513574517669459594421126892200579025900946068708633360462707229103451492023273458235679372608354957502069659585756018266946405649610802139428751775934875416342375227438029307967669400799031198529084074056668701350555766347816497553286709043534699896118052793295120059986237721151179059056508738910425535604362160945142723698186290894204312505713777752031468924676398371394479158040315552875595451302788390294899884293975001673587507401810805216025096431300173699506024102374407107672388563957989175458820217916947837975384830303192678425128609553330375592134790336645291239760140634899414462632485862656934328205807445870468775699683022569183296981516131563533581313996834636422813074923498105999572802604918062512680323043980764652718455476562586950881565778035994560175126465460682489992223593105762423715703623758460573638290340623773065247322746004413254075365346811153005514835615477658755967436096648825996004720726504770908277546732575432101528498023001323682036905705266975749788230359025479206306571465572218818434275543223541163643011096199221569045709577911316549646125754811848874789893107031751455273365692474181850509672540458144021701379000430576764579377447967403006749001615959076795712649826866145586257577110982717683146394014272662638805378153300461417824204324085748283587968180947462231538975323337915592100283107938964449891332571576235352457349026580961955586196380609919285539711863240550041927117615843603135231251364800435365858492732554468857542779819458373268516598076979961226008921500720301323692127015794117390760970194760386225914431132147209015841224690800480602545159131095025827192839544098692657150781807959674123379613686953583797893063621591750426763356351777489816603058514970169698011830921070198766838446733745237154180110767731496453151241048699763757772892324189834384956293833735430908048865453863759622328053860107749020899413425220307170817775276636900280142744889590237682528997299095096862245835404369921086251611154815082104085517638979987375215660447672883837487017940949044875605734012502300506185961278347909857559074483497812793448065869441771831469093728655327152163989740743537727417500563740737321646558663798803346851447346059809990047186683554371372251699147498976470984692921173144968966487020871749895984157002228917208663420136678128378546781267192828153428957920006454492075003070015129066256251937827669839791085330475998141823239156034869663353274629721934014580430686780348824714450836434398008298468235177298600864963165906350689104135900005666502602493737759877453932448418046326347218192644148065917960735702519030696542930761351284831453957050848267360858433284746182443771610756961969436343389120626159023923363904663544497437490127002659795462426989613123195192543345811613417147262258201419608564666578497265460392504774471194475296187429499675201418585652520300660476624324640619787375164272780742653892326231532978085839153758259996655078484056160905730589566212270916331161669623510559304555968721331777882714411334364545521334582276669102225196974584528820529132452608526268534111455842438441228575496397145217794068383111878571361904248775649431135427889534562038009944955797633808247556764458952012025027837440794873137898467278436252950847369936377514048364047518823181985222870275390002786673202752519934991426931399890749138607341043242125077449649467381462950694525322913153040316976480845714275843921573155845040191565757971396224017140176623804970955615503533784415709017518954801729191160215959006660226442713312150460400148408277763556214433701300462100150975408049057600401465041548656409641722674282657136210543405512793699237728494771055719109179591477196654396315585823991759428820090872071881905480114220956827148409768666832587863787857603291970647472058977519615841280647018794956491139027093017762814385304777201605443262128329505994028210631525382524492654101204463463734449987464002944182174852848058541161382223973683740854094513854668347146656339282811844233310801862514349758592549543830768900087677866158994380457766698363633747532233599463533618491218025761569937970350996308091385750349423004895154277076962539060419033360058982310116881340047281913810611529703972560695162947875856428953982103850544416446650382294614550031909779188162303583269045253057357634462915657498982484334563172754984835512799428832875754425160338240477254453819232076560855365206333103434001063387119069162887203429782938747402067178172808471189626370433761380224106328285667496544172042064378709736963875629967438413751633641324246925762034495844226928887098272952674704302580537411313088866609766522038492727598358709585165423276712436030022319710682543333422619786292424357698399496895788158580579019362025339486171075334618930138057710455998802874689960440402623064872813980865847576275508318137121122300631857532789033171938896492114239247775376366540981080277121223304400003005761834788784263256418403716967022420320955825455502248874357568251958624267870772439424738219794044696995376984737155319618049076777560154944224479600444926774718594738248095360429656756982692350838881357968633808673078427662337761991170733033949716082219138637230039426331604608003398245021030290924344476208764743774793102974081144922581138407060332871596871607707275181194108415477975113713385108450600478692280755078157480086995143331770791415197979413275252349576989359386006479177902618109560252002940854386219253618635175414715507271480224841817501289893625870600691080507833982280119098120575408980741179852422208666277776956199637576090484214274137056635337966899700582289755360600642064919273414926472671886210994036253998522501706271385319338974828674270571515782303533972551620232800476428821045818009136680918368159834307090335818449703051295842783809776671752861951227627743018568949487318641873814714831574248826123388054297832753749820414778999088085431146476457949391972802372202935873151160545641194564722929701364792534201786036605968128375512649562300164901750367333950030416126778376355183431941183418200088754868685234890625716561588477738311358468917136237260251456322896460275399332963134358695357467533130646302281240114648090933098268029241179165962789391282556724925232968997156416577817445866474424420717103097588192531429265867150674341958482380544390837754957505934522986851965274474558692479579564185460745071875398960890466946293135337729502038703162416618591802540000459538133533021801138388742600902414250635245143204040090281617585271507707289796374597732520976558693325139243678517654187051351676865726475117573405697167317352305517535210481698493929452564410116596832556405591089623459197623899269078946744688686193148852377977831569000941949712216952564709597584721400337023128956225145364037706958088745644089121325628290692937121509014510676144524607410391963449794034143401204981514612313196485183149376894303327163258626431140828513759259067783970259394415926352619486474092194001383328340299867914560251620603989800337587486930051870276233550245382614630240556151963465365460444886333326503972291556315692543212412128853549103098339409743204760316945470313832060006281735605637276661284227723274784792197504931889429325958352947839877865481599806991439627791626050867350621756693060986292169548215254759162217120633057083184790019000591362416886988791033526982134538308450301700581056629706586245321813767963610747682171836774840823140118812765125828029166434626787274476237029157164660259002147576097687677706049757141071650008540710192438506770343530491528154689294725070577037725285817231471118442197336632012418652266112835344100079579633494186945404461075174237990520928416946749172316314108937739607348365846605266324253327173717213457074132513795933385852540216489989196713029161326801629101097504754977169741045195813815452805859256656223987886043204709508341479156259241708984655598561446952018390575113219962988506389398440333789034148068996734544161128767071233123130823739705313318723988388701058662341056664467168602495220479399953473488875761615684143498948065476774754864444965328307848785719721993833097608504703050138495394618422596246425249232321190546320357597576887338423608297391361395841253421400463339775284179521616508115141739098556575919447885674151156063152903508872094405660868065649265109045590520304843204843570006227728039880886341145877334982274852679335030171640346322555556059719775113050325289660177166029160347311479414368397879524319103297386308767008346039617286006985773861817161540188200652950750193669492948204327283046414498096865279000627494526992856348738939844987341064713300787742617291055492231318264674940298607049033283422177946650873813781427058698761630730663126979103295851758000253182680230526213004715516568616732210441118298161144040546902031293954348088200871096770189449349314720807374802441293563069256160806715415415270155971352579500922565280335450044018080217830395803071787916821377587073306868396367402619623670311982295188789862535681214750152183528184513711097414742221488035338864630646288382715359518903287065972373868950922776280951708935364361393673447700051045445484173582352345167414813467539777094137353955093573267476062339032742666999781260598399723501123039118639758314986995947141202497185789980539643041160326588274111452114203051604299177796795742341208785009388318760326479914053825641760977703862624202533982841789461692954759367600251554776507059039400906310550153159036438417602386993290464791594494958876523093941570557163733176870938774853668736251562012804952009388614678268145065939512044573929205173834970828709822015804343225506487443482941158247705263964179908439475486259408986406189275186685932962501277299471555796334280482934446447280363599634694638712826209592291363672719490594089941919987351156898024051727152710061588823641862002354471241905217311152852463514391810575312225180455311713066216796574103580920592946587527341442654049408126010181068381530354321376724477329423327212402126142661352681168358329903959351945658514030273946152345153730170057699381470542252547795238792447571926992851602481390222385565870361805878277935458634944328083363290168555032595282149574792679467601992546479623893179704789333091904477300123845910354573285748634625407830298935328965424751433167751455673236506072615089533206484157590288381709356185118504776968853154569806561031928127908979846950613800470399496534874809666562385394554871481030057954787048562699310579073032077070360885258950528079888270813002770725792457511926853886495147199821849706962413310102321899096621635777132153486366846693629669038112359698377889486660109459647683293396150521955533247585639069150943890669511948096641485023450636484737170400371060520787957967607935571267395134192539008440945620247555359298504378486731051127484805317639929668530539570301281206693315156719714867820468654494651378784612018717719464212524168649661410861529223088755769872677889370018734460679365070868127757201692125788904176454677526195430498751329873605652316803518432481083042478459222099781595250263319051135914561492531275187322076461224536102598234304685116813503627049967876820324890025474389827856265817769203915950976461390403670544731303554249411022440243346266836126956297594581375447497764387237747147693348434021741964825538777901807834654676667812076641909122764251608115423832547761088892057232367076738066492179388032032028351430891956118189012964509614640762168171108911133828109461015081875481867602959486386891445645020066614748351382756859710853338798531653513163956736759319299903005334463101346700048436417863953079567632739881956668566129915825589601879005875885488923248027990427090678043526257333257883237266884882723075472089431409858528143749653372510511061652131217155486653529026866496258147093843729581493209824007654589736939213875854703778761065199074243621423661278878142323786244779309323611156130545921691907587704869948938638049062442849105286934137201611478280021490576125402802110898250751947810655156860675798560589972428748125065212197365243997333850016239802836482215808977461274666922877582060807387183478304865794429506929508124343980091093681351206622473120733204163019090622022320198169284349334603407689896663444347344253589467112785559605487725633121373119286015463425406654761095908289544462637384350117779946513703627275540076926774682524817262896958406075499860836138996263492053572518376224255205944250808439609668693176458956100251936944878969500928033387543074572625695521837498949258506791562795119268128891486183159051843901921866800570779659410966309165716431944095244919351176395064923740883194848257217356842961320357924345076409854496507759776649080275875961636394188067385595418439044658018399148766740508941921183031751218596031233726346842155058132893783778779349396823708935373911617582283006483882348704051077245721427302047039775785272297477624655154703944235987844259913951979651108958038970495036827618396630026732704675414208419368781209254511063816854162770198048299526608323944062763824056513087712046336695264158353253534516217790974930201541737071394607723536970366769216540708805742620773588356549248986788265487472869718955231817837258505990751078785226234971575418485540801418903476658706863321230639717948456372152788775769447158068590674384188490583733314311187365690132076532281592250209898301590415108151866114345799204316959102802203226043746077262262607240861478307019718319571221555444462644896106273071637023896405756467078109179951243060594885834972510161905984343681161548371395149088599778228950911954148392564665993474551110914870563963221208218327436916637470561266367797793143556489501770591443289963883082343867076378552509292278687056238443297212067683554989019877230239738212688430250034464870328285444188243528475354632679620112608522208230386250273538697630666891146307293035112441531890875740180679523245768032308245401865226468673224538819817784473122374342411300128460747106593159635751626211783622846404544801934750171266154273998654814226504545963354959142533086662371799856189303553208688534781999778618625417395194697819473365385520786700263731508552750271392272037322340654243692212885924548015833311939634012170975177337801471062198776123005368059292849984118385952592106703780465211783352903090844235503033309061197171166468493582398225912178376814976758415448433857331814600679487782688815252276474798610221041815769621977618728249733353006424495600377874375528428015662767151492276259435217229858531333217558249214585639372540359773497043934185557194176129186518879154617848237854633896989954090558639551860285383285411213394054535556020296697220719085640114937948939886134812932676856225609129211234198445040478160861671716511521258505001900189137921120183514168518458352903982492477513276728956952515274993745009168869042180849877458890155885830741770540882805311675484658645214415289117365964798906989624965117559873053334163013329334792082018854442234010419649686736594084351602287905648028849797964609909522784562930153897486451960059437255250740607801731382169395411467480745652716564681480789106028239635660737547490621363259948768299650386857446248786957698308971384160984300793809118324547102114400240906241588686684353285180766753782287156828319569950994308905698691979103452813405948041824424004309155563493247085431687349899484835589421208777844137023406495689778049637410104787043151927977332044141167455414322171741533817675903829443437386921969136612713859459301713725888033668496759110622166188168880796339572215060852649387848582128992275380478970759284337597015908390068950134218339110354137634638569493408785631527272606283867252045400161732506485595005220904094277576366859524218743248409263458753418880537772110240426098112889348657248201004789842333127699058533831445519745163150225808596903982588692963252088961331204807921481646212606461781566684607564368319374200351326231243339561499358267697786583510620783533808365784793083003105081601251217268615949784089236792687070856997888093941222528223378993813826086312251544050988457205760997207401115588209701255987932467992303466102002762892607287882564752788785625979049424688697340990468514756144282525053612836489488998258023753088213294456686844182387362553048328303197298364127085595821169119050680294262571392857518977689635681426622449325796808806499434250412167551529160606348985537430888654588970393999196263086883731613691585778971631063459654140592293449581820584596040269467843004711444053847095888434145078134253159984128269243788341033923880243871078086263905879271338094671858193313899272221530609471889705325807202370189018959921837520808502172882105093381452182310813254719051560126542670098200029418846217554548655361393105736222125943253523399038806046527505902723612982482835230832331868661057719283076694847272126530846124746077953165969825747935631679972422800088341066919960223690098582614441647284168209142707496361915360402923415389284019089293538907793618786806738162067639397072705491012243927677936341291032312386968380841128045444150312390613028289519742589066465861863950776839604743730837323641338306161560756863750222402822367241472226938599212450863222307380303501948732503713270962261996504498475379124098356828894884252589092553594461033378401095840206004022403387769862046587133522618046039082402904189847011199728643725917546997335727944730969675790128661603465359230543332972032031171990452984575899403495358964669056074735630290505616642524250067620073547617207278170550588675871267729087000176991275835032053044445850346688846320380089466700011341946716096855952693350890673013216354510502185701614262585933706018390674910780828467777808340522529910651950772740825052394465847300673057125295062395212450018374595302082295157176953815027608798273806734254414700577349389433008850628879869258142503999538557378800239065747394593901858457746511303707122160817042916731238399490419135869941980051025800033960115276237032828039756511961197361259881143861448327261478382136792238509121632433261379677520058634778702496614719020498661563171944604757075260519157735113128514671097376511895210106346941795231971081643471760308690509466532726735346862951974541687798025362807771822796827340173686650138616554083100165392090147401812896446602331205704918096076909040726338845422370858854424837926296534935050886961514149537867522441930655616622350919877436427965161782243676646133997297317221262553956729544406227245372096392844554253284791525728179410095106907466148319462761144419212280634342592770760326007008861972266642645431291939022325332792562503381416991520921212618358728985885018845636069567289038039698796439304980642447439403810193805065421743846297250155401581064320112134657108776448315625483036824852832571244526423630857772424812970523060173896869559150264465151236656670165621539647081809964455827234045778907059254758808804055406557819329258314672788409353534884066878224581426510652917766381026055969646021004295274296357385513493084468039498648803750638453333973982863536823344308147738947580438334879452211455738587171733035822166443346707243295735052464864428827768681490925654381934686331030603244241105902812199789609569957988682477150556143884852830473606711636040399159924872347975799649571925884209932587988292193103918713712137044793999283196767898918469162677640861941292327736710433011463062016626309280175683695673352786265658961382616633749782294276051813759815853222449059110349179159183919514919638043478709314252045757628726362177167763631109195766681004799615638879706091061106074757696774953749316203624715603558644197379543581288834884713403173572641036827623987457496857281808730712034462069184598175367662844301039149365800337425032003378958016908849487461234328605865199506160611099306970341601519432389580370032746121061256650707727926111176630083260160039084154608841969884985101524483370013442461601392485833124282850340781966396472111385494814785691243282198439914225915211107168914675994832740059546088930036880952280239872542219823153977641789751968749547903763484104289717546398168313239694321762272901284997719610336471976635402737395118443954373370852356283925291832838752313351715206878130625177430856396456231552054200336764076187746749550008836114248819611623478553204947323291660207576198360472799419239685472788679253706673715393811073279389231108865474740852829896789579184229689377957858588117355652286838905593865237076138150467791139978998998235442684331939165986666082478913219716847488356332710321765772773659924598651253008833006985084089749165847567169471036384400760324063952988204606138187146877345405763039246267075340265632276895133577407915452524382119390394363771830400197336791095000309258659217598972228507024092630061874716444573834636220672075267807880973984284016377924544143081718772489229903266095223116850485729445338690839903385570937651626896149199999819671365230050856455126832443185977831620480710165722658555331435109618867905382260806273389599908005027745147272377435073453228709060560664825283887367512532304392600124647305952036502573223608189247212369531536387989187435245391347709918993659950743620968546640360227097648789051097370037046974406492673379270981745247290972352729841337755045612487868380413845032451286106488253520493631119508524599405862148169515627961081202110348312658032955011851600565790023555055649446106544903305907517342975884698204875015564544292371811550498729152526485247984360138432317545931471531197276806478654872686573470847105507846533257539948575797921859613387133417399174710596300475724607400865072780802132354163102649210557927275200279691406874736879390081179267887558595141781377163884977896302665969920524495648524828173302470444651900336821923428769980983441299151340334966621522475346199456514893149943487268932738721351664215163934346152413406728369624948457510696625836200500767088516858239895951024036484255730289631725720263305851629547131895945052682807355938862630370969624290566176483493244709152854582234289651365044151149929090144760872599584567963528021293326464731594365601232839504786918494059756563979983388271915585904015436313975515842592877632358700101649547619167074821262158225294821552197032469578196422357851118889780697131430194557229843251138150756690754858335671906968506888028536012930166974851920817575141077863488663966740805710143555302931649333638843986046237868897066014291085958066015774536617255185167173125778900286911435751530866576059724772089274100630181096308718769617373920697329190142330923120279294628906585645487257549383758340260384044213792334263635250785514475713669309621481283313065530918260785605870993719265627396093100270814294658287606047782011618378312981044760484436637515439079701221517853094453613099133237720903264989858904357046201334075608026425488552244970348631366244383214118989342040813412663803922199691240806926261081628731995210360969667992325550164101708079310833901529832042402121474982670265588831955121788331117724349561744530464980213263804003764482469205401846094008936968525582182584954258771956399118164632417588945192507142861778203463095627442506787482641385661412269343490666481714863390142850651545071268759450322523331118493565575853195248449182202408536822780453362445890478990178534555656689416074993130043949928822326324661507807499832445122911142986933006945857778207255865940654510208734545468327856362766813792243884381062734915616765920688265102211938385336124404788759118258714459438964349758540783726870832657573310088300644493977726097728236801476917057030414882763843350251242683553423341933537175978566675018575733974820075115111923381967947435594710535634226792910441500123037064774887499259988548233351296272396871929791173263510080207702283487388651043130093929680193239792956332911746048059191931482263161558486153372799279022475272180786574901198100160721556527222211644420084076066955326058526321603233576801948662965864542279218804169975418039824763133565107015252553603850295564371275293756881452655681590091150157402990560517422301917884686681590931734300268689096013268333296903797513797728152360744286366151232708298771311855938315283061651569986015202333074347303216077567038072479545639523620342731968848319740202925351802081813145967513124429341552764069654477716652081270561527877710028211536271028265933643265636291053971721894718176736956142910587163790739799326442455199459028183027257502535665994407304752852549984817557908430484076246057509178764410718586968131176150363875846802045464976509578105042429484790478139109404764805868289397366277593446558309244296246428363639746703841599236140351417241935037931659817893847137330471484778845752933000029414062503899112762065254269253410626132409159963124680563535010454066657968100039364910434427077780818504896863250001098837260426763402772967056643278508482476566020813094518391714981267395890295310794782944094639541524692635637416772497922067894610675619536865353521375998908820996097122736496219038891058469897688779915491336708769278709309865073655960957756430009717066280539577230150204030139382999789576640520140232432695146845274143148244866685046553699865647817356998568058041210499198065882093137807098097348167879981460299741291614842807259752564904153427661194658079822720803434686627368952870586681155230639406809003358091212924053274831100813289411894673480759348705502071080833837828534219267733701318064230381273333635149889475355141477422133444492364758389283127524574038918917815824225600825144990955815196227617660323628103846955991815581935482738660759931232854181345033493673701745294129467794726963228304203562255946450804083232031528235811241723582419713146064199201697827036713345712254205892345433679078110097365839948969889683452784351410340187224683571605794363517140880870862212574212579551753736892113857458580570911095321032823442781991363440377008114427368171999659202939073719872036701466864242802261404295306563544800323894233709296588694372512803422874029199047515511482039911248860561486565397937070858597737375879472739411845872958232815443927341440719381480095177523566849825528949595305711218630852742636456831009602191887812997265748537573504154455638499284762027306141966190899522661970901873034452433450728858070608491386594947403754176258701192328720310831292708581226843492612757919447397718569078945574741037696730659944277042388066228768652339250511976220252293933598094062957439434687547592563365433180970426327685551502383099589180771593958552086047386868200401861773299856809085622511097095901448300395095464548049694563542714736242413279594215277819025273615006057384687888697378088444143907578153576265801745085898375928631850031822186511810396750928494095599288057292199260301583597052144520417611316084094580142809203639327610154635023631045079753792570804668868984558230706197525554930843334086683001454321655566590842154065156112613846938958430187984495836835678909505070132756546098779594999794866632631844678239305037839464365188082489780112794337182294814701697531228629765687702622031543386458202422188742714386323186740499492851348552250871605325993095624052005128158086329112915994475278389108164250574051290565837045754168069467637987186288786948172671982434063477180781249877369747030157048403222234946997457244243676144425800685482284432918775767204474264625945265719819399874263512527818886397386015794725214671356589044804995472814956021524892800313689393502960923617096253764570452951810065491900400652872199749954201800221091840000127055137119779479810562870959869098707658351507433562788413178982377958400583161662956064814139423198431750345011288610815357489796567505454765530814434224867529975402666710350474677219319008472601180212768209520677451630673603987824109321341255535506820390642969421627804364006874875621886674408096018756873686565258484314283178582865377544863466066281755756261274206453496120707200063162879352419447887543229197094186376813127887477010586286093021142912160435878647036335533783334700297092711038313571352082755160464792427060101714058401517750636321065096412661003560226475856885757236975146135262919225345136652869763502946217526010337368762213736519687968420039320318486221403577187702583860503162490514049120144689797372222258520345503664271666046888395409005326684073772077107345425619054151022905283029271641712751077172640718637397914325578401525771316974212003465923321738452753112834978469949999302130620998971936114413806340449688630735430286712271632103677506929446857084627080017021876227307587264936286470753180982644291634617724610492948915145767722358425026069298057263589349348998357564005408215007805725299746803647638963976756884913216750542610228637045349454288694323153340674394198630941940634827608218028209929253551376685018600311606972980949049767831082827030372382494110766312014455993321038342124022938847262565578541480684088074724969567805200458085611790366641185513478047863469744377409543276022499500519992992312023505741291995054854423970922021521432966861658336330380212418285647487048245025598361891562495313771297283505413252048735227764113063469432416452928812627762434006594812768925731701593227389345462935240347640866174005798934674076055421760880229670535261664664995131830575058964231493478838504819571420231209085860012872362258005197689214776080603978709561098633721063316203412139638296135816880452771399680366433858588401252307869845869702629708465685146446742264213031034365534766239913751262336787370044791845976532283958046296006047988507877657660161632110708375381020728025213710250849991942954334868314428633158358827502713976548912166789338298095417033739815828845638445137698985815622336463308134901508896264913964523032949196543558507820936925211839932027113624333255823016731578845555907544287455974729696197055577959163030902241029905150850580603005261903970593149319721366167981578222665901561754007309272365396450204816731028415788226871354590563935674969804957733664464200648164497698888683409824677230592772766510590394584322715420363219273047892435461033768976230430331329491131567617316702421707540336986510155725039107388010733121379828645068675584006599975818797594299983735449685925400665506107156844121003745619257269165230524595450761231264564420733400912227137066098855334973543127287661469203810359317728859295530099047755521862850986702419510826107985185897258770157755122503192032563358116249615125484814034795080640011833687076510254411193584976210293542882965480855667648808508564153627483979265641025882197268247762429341116260911031109954464581283936139136186875401517738293046088043480937676468963162431543522396741724566865802827129354543300778459713016697566038778445978239182978184273510721214811410606717044954043484880843729399647093421009787682202115251218423794701700655802395313498726319556527827529699554521453197121586098074324458656540728412556411055865178392462139097303560025799342112344029381750221787966217179471328711681862050776417934070739421985691234668946084695772240219589963721289907428350594675674953990935440015466425565878954460948248914063406232355611117709858034720142237776013989618713042904882964643259781071984687844302820151877803414995647232827814045449680850902721905597263339558619908931153728148961762433370458125747004618787476447272738581606529475468247275282026728968568460870129869013879408544819385340696364409844958818013691751297423496505233209735353442903557902926097111685229742578042341963554440303123228021401550438137513243482277419687505828543162100427498994486605712701867721170014718092423649157141946916773265097759640355982071305904603436403831715622970352791638517272711747401973826366416767510854907139050790076478598177395539832932994335941343414594792797734790907213833754531200177102907787276064820609529083600818947445192877078889996093441435737841002146055517478064090061265643691289227647035721003380398234747918680064330152904532451873646106819092768670881458257481887740297331058622419897029324859570874947661332077080715020010667720502082915606850419532148977743496342621621422210235940423331842287020152521139337822852080246817455861321574494248469381774526215458044214305012046650546188793896327484607457045444720006864487605220561545916959616529864791574779457040870368467138761894198462623843044562808772387676476317426064477589200854490546759045207415547307348121871129853143670324377040722901714038647781020220983207782712674586679286855879127858109430140457634066321644514341972001119674810553211097485520368341778105436646823511017143791754846356133673298889092528745316313812072719685399740223316949365053154285577635685180514507051485633975958746598707328840911778835375607427690871400541113255408734097638751781890413766962077182054626719772960695913289089865545542320989213596700860544718693681030115593690487583680065065984706913823855936199246704557818438664788815020941983462618940740339890152491800204477238651551441211384336266246108844074722331626600227265471198853298599385504090985840486956609517537324734544326140974212529564760298016001026233351220640215309910755400472620617404458492650153649998330602496185575682742738678709224111962252645663809841621200142803161849284917545149672772391992030838876489517869205273652663118077575567188993395169131439617486601077244192550251445198020474545088498188851115551755519843210565176888739297233514901627689867914421172033893241030318516007479266936739101910208931562735709055264727264115797642919761281182237770624768734600241935800587116216543257247653048100830952501180141098627914138647252998919257487529422210997671079996073578810735665669508135033693932793244145515926748467131230007268315637541552509698505170191792016549443836327733706579946535431590876259567628404877439795232747409438326523620642031155104519568409035126949244106702762518999153402899726342612258136235127301121844829402561549785634123585321922734407766955851811594648752569311969721942622017845255264556156649455116155931251267021685166833272076337990459647213523064097378137412588678923604228396911102543891573390198004105434360330373622731049784826654695011978105126416190799527055200820317132027948837738073651859946957393335808205691395720598918410640755630970457589650500803568385777369549917351065033864529067449804026887529053898722237981294696687037026029814215125331469278692996349703651539030165432914440834244786859396639475165615248027749449390897174348994182177205501944417109207431276723436164841726521848377668956229972274677644511239145518601093007680745925214338395276974133401615628737305293408098450452114965677825848988984240017138256092536220585723065332469592780941303418147037415971655083883308393284565014178481157989066092982102085248042767553640559456022035500514789570889393340786443217754734164913742013049838349356169765291794697861404395017650394704848024526277153999846077712438991731848661502685002904483009269753633513322569808181453476987895003832463245093016917639118050074390209277406996283105233353923172068389692080353734400651208631142037578256824968648073992555980249685180909724934410832822512114081136358300055245249540198509161518548165427275259951420874391445233627517986795925476976546191897466808595892474197208335683878094238992370522190191939146507554711177467917136286988355644125943049352729524418645106518340022143103481579778070725810728099775937985690599199870167830297698671714404323167257119250539547461851456348425639551813394509199678264697574605509830404405381969068633853592902950749171100986037104035872079503955796065585776022565701176525355435272558268717494674975207067391421238724559326917683354714941889228687261259727269757854378981753125810184888031943487576616180306526000110079441667905970402919363653857793802370790669037185766147234294037895703578365184529163145925512642896339747197593469266307394931097608376306772083477218369637117533258308002050501824981110621075850317401617670208929793250938838074154112993679431715639523699177753682336342475117687934472147809088687674665155707331984329368780180862958857445433748135825712283961158580149218898993236065680101602029963196308672448806958403197025789395028024790051979491273082080195485099708968320501531661511532778274043691994894532816609678045927595612930975140671270035674879615242630802057335767620178165125207153797571253210183727054994423733192197980476238557529263754927215903544017404075995521493356446491020714904723721265077475187407048335720085921914444340173844799103102960393750630043596943484645164133671829798773952459992926375677942209287131282603985478001832826054796832654130313812892795124247573430825484422637849055563596681072133891702602981261337108109115687518541653208326149968243288807273428821269630858166124877482738749702986773199645098229598816224590501690668785392329906770804810740637557687511927657852577292127035330608693180797870655210154767670127581653690969314610908589163683473892116711062205639622985501340870271218212131880464448539971229591154043061131931694155123064675228001740286889152745333037766123415119593333558898410367165542389306394924545949221700027464927420443469317165897742970693834656830453288633936905573043960024414772602707472429779086625240183285051354052053479194476664457898290557767751302377342693880197673862660546119299355150013219446670306016131688708672531014847419711093517480776101720943274272782510983850518713147480843249289550335444066614592494974073230346204100618946445543417989370609625710211622165963574230708366281064356655550977438672765890861801896621018034955077480684303035549067520348114530368431453907354558343921493027733659245497287949624093312573865212280557245321617258683751204457368532080487863793045832232006550974364936155210456742659504750912829437319087247511234403831256869880820029656453516291368166170202375526313848769054669860205274421494266911526301740438516040936424033512738401902986691740183269377130535631995050513065951312860944569030962893798122191981835162745519176240117806651110425669432658636738462606329612933637565775849825817836302960114325083612017998112524109900477578932865893937643840361622569225961354064510700436833001150580024148026847959841614447368491782042854352641000003883207904939266681000171506297121142045005151361899818488215718344464548230768027853093049309950844487320174038676019033167992506340853955061321944034127566359345289995381246436271990733907094866060303587303273095926889776063186795328358993080491648586788201395713164844190303694267194116038890743936675718373988271525092390047900076599841433577996444068169115750331864243913013448332988831219308687850169582108770179415975776496399678984855602662371763856271560810897802292127300275601813740364052068492810602315469605444575282875343274275194605977323767224935615571982098326195590523688607378678078451191790493540460846164280464733861334197316258589057986049529012229365110060977954781643393527465953346362866481793139500062907024706392843679638947544125792644862299970712845085664237260126350976866440561214003531649442538974306544855432830575827580528029201041143328362984589861057184482271115877979718486549297366135264380341646809681363409598439575823818389842815720486455646200171130522463702458466325637621056708761885920766759320765518218784280283048741661716860265388939365566033878238365090963906679507496276920276209601607374003531727552854252063039543791537189412380530578796887384514115589294552816240672405326511408745003817035404611970729872772021333695905497247457796759420111571457834298246653011474408959211577089592422555553213092921653344948436525812280494118385532699804265890363341783262691828548082282396307538492455435908445276149077980639549551227472471941405800590581357865682419603784424381817838867065333115436650522684737617381825695730570627168365097783118638448062987133131617767528777065230420113180319012023978904000841544854155899982117129573996556534890111526334579383565836261693632989955066593120983214963227788640629166765550390777825938908447664779452910116451165622237038487392276694498776311919518942906397775532617271680694070502260163475040357733189858586633591412616947982895242817688886422705262262713392089789891908206538041589530586245481946047667858261184105020730634899607492513245348707101402420433460112214674413097686413176798063601957906203347144582450109615062631781083849741647727481308354745421926429498235351340622843245780722309181215387419590392350476812996624305977364084408398803592861431973458097698720632410811098303117804326177246385816985153607836544437948096896200900842363014336506703836130359828042790501967139389553329395080963798776174560328814282372151941631340311808115762945408911393576953788940664531047829813356753819613177650571092497604400142280608329536674745952389321198025147779619152639060155584076763951595084632903938928328529068262796744806777827775577788262860660325549499950815964162535539372653405440475052404689675432367129614855058929378522815765938743106201924268616291842780722378528381966477781038043547083996033742531497749786355541263269180617220410279789426873183580655128343557240399313917471672218619868619203161574667277645346748706430327529843594205768037370523695132922146317726705559937134558400834063436413557983364202242852194106829150311337014523180777061038501229508022243133592086117904102404842235940981597204010721475611508860738288740049248881003090663217256359438200981519659310050669582611443073599470387311328107870804462821732145889671057905869504362115921669421322791500547570905502894984457436475863243392991858793033517563819743105714414577985793465830831211203256690121257239754568510844989539084636478547582646796557444235554407780332729900476363213210653309201164944910014329664414728225538796697667125143501274990213927353528873423921193279201419206209731915761062151481633089188540300019095733974378932324552258216336284826888478777243792275783315336816274869718035385352295659934462681549567755975334377031886189662303026337977902915264293521089261677395962282278120279292356519562557045011093299269282518096254188847007334111152701140499476456063599206356361594847444003408416446569709197859451974235813897636083982496480785267887151131594475409106500967849772121312939627976340225513244534835848671575508374816261563159804900213934076123052487350825588810054221151782665314319441708488481741596784979796625073960710913499383181851301368119632769942097003718067850772254325467673489452472265518080745679585451019279826915162514329972351743184059427456246503405810820687175467953438598202010380988909525659652303317951073749682479234546477329575023794827302095125162948224460538348383924574215640693180564038037528267921724185578824424521382245161282572368113727330315129770041267653921017666260368211850805259060097611475596998991020770711010126135908238149012540969583156690178733375309859535921343123993612630004917531770333634440734995867367332435241004863324888199032509176048450499228038919510527619655350015236376069165783392230711355632828656342165548161927918185574542845334705221237282191245526228880279828561173132266033938008466057340318343920950063434644074980544274430884362700338864375339446908242547163715491612812153462265386789778838665031833581792132841582709626026240371404756959546786276282461219256277808764917145920652001678134011612021508712100847885215815502039010976785638562962761072373296837088659605155818216414008017803825808018587349347678465362635249534516152757887574975905369984459331610751893413314815961548598004671271485942880989734584077327619578324604998793276144038609708569873814765554998554217934173238340756664508086645058999293985099522941543543190612044173921508984875428274318887169116824787677769779791563991100575907311495502931749457037210975172869766348906905791693352462060260038915113166213593180876940504096735626750517748506645061890808553656095429925735732173312740908270174735783914966722469967363475432377152443313857208799486594994079076770896380337946735242701404953723093905358659809196884922150445841141384756601180409017275421680491934373984441257368156603202981486098764260432808116769082862685121706973263101457378049493372412809534244754464424648966213744839254322641286632404265103365303240986579018716574026222880787554669031897245764782854994884648787710132713114099096577622405696414886407475962538683721414135701920662688945330095054535993077374082041627028571793873116824208717480573296771798130594055846185532023036337369463540111466300432042271222592748759795545999358436060844558151971621419699897079296336574219406766534092968172895903906562410568363388385597479428393016158940207643858979989090830477749277652081992931075314327961002964047562618979012708007273700996373469138708011386191125995631062231468906350983242371986916400968139333259823407744913928719834678693891724146869703939153354998589193431672855016726044378602401184946648479550452655892300256303247687772293160398171536128473971927489766118154837551665134036094487513594091806183702753129338318403484902579623178919775023448965912755512378355657855208190753420326764894354009108260389076581212057557293312432986881007113974874985982677869539976439495895433683198734704914763776832554827330277820511611795853294968906726771676849481597289429935168984940924112871338965501096342049804291009391345933936980815284693930949613833405092642872276559945407880318887896996842889306465893736316454815271477946893163115429445587602284935953765043281857338391731836616562932102226616242694592125188857285210462079115495097646106743809523906877845238403483729589963825617363114831847687804806345659719343188849703883156494872614445614532192271347033025616675947430028838353613798809158111289541733994663818153990560573743175026395524573409821048117801676597352128759830726017919934604581539055145647432510826030621139141360416858093396998025989254351267957392552807988910737481961697544184670758723245215176835293774907945536690125933480230234393458084710933909270870681163986027736115384083962575358263474190563615763164581101804509708463508006634120338384405887575887813427307124571966755703615763491884711653444398763394513044678601497137070625497557515223902383981138563416691016314696806603216125377007556589162023019123825926346558443981329964230391873152683835821801195182142481644858481889532177899251272306454617304260673603752315466455934980641951830709795661461714578120602120771311327719479154623905783977574421965720155130833552750722251137759072623577879223265241653942347063655580464386207496975849924107974885978756150528770621311697318337168830072596810511467258077680342420439400892604964483413054238592859471505916372522218511906175593026988527898936998654209518277438225812619438101595035915220016297117071028082911983397526185203170886484689446332203581192853885033742812725692605977517029446427835997267329381932018855498426104545776988044061666912201031514922221618328851778651967849726924095751293623383461703544333923377373776837456457614216879827449371662908292515288736674584552731501577176396481098722657995628842679369333226265482349915495133922682530394220520025774898383976735325434852525965161389429706650856937209105006865738729421185412144004744367527129967343077147273770015596417628317868079285798561380994454585580010099081981493849960764336370668769965599209657497539457785769152858404213315278527092975690107989620482277934417566530216562978136951651675199590066328752713961664431122869642214998529877583649657167152940952078774578280138996991755161058113453883310191961529920404863890292762262626987190581971337752566437423425789585895456722653764670893540071328452956624076038834155581911382644078940240320466317759522972927040335596935399027195242954002014336582664980560519697567241706298573705306736386720010922025653790042590772681653933281854438725580279476471340184015979555872443877701269632291035005999909560795973589975623384433954175691736957537687780931149434114320359442425525815073469430209826722847041130216462389896574038057288992268724709407319073668986145377306613945174265065601332924279635959965843647600282162265281701794786851315054860288658685791846554249661703220374524157713887518261239713522676451916988917849585757889897198849227256425305337310250973127842872544744052584627696090227554402298768290305276921758043619952977553065381953328754704447834818307726354886172816075034145310021330193047660073612704269138015814965887609985496763904508992160714032163767850591142070441046015288863699643399043866018848372608945147359828669342001691412690037467941303954904298661438267997319598455184384605558369367391930777567096521945429908326651717284803482603269938220703712833477790098850991930404518456370949845856847965189507945639723438523689443673494588431600174086891112198849544513168760790718501849206436394356784961124429775769612032875944897371814752033709409513773672028647091447530871801838751032006606475197155142771456615994930312405084047468644752790621173999591296909853705607873323631094498235525446515400797137991847040323517918733420026467012141807506852680452727182279522203122808724297624313976023901433232957842596548745952897816001200699796277375478775159176986670327911173589682514637620517207742019940479331471639506601315068807690853380849095564947534526841628741054254718426988962677071254933562887911411361424679777745703932635434013620098263140841734868612530995614075553717977138152728929170575920725556387242290891561362896463671287893506654645398158103295415481454237193923127404675848793542501321225179034735009962794436016076338110772871313247761718231905535328332338769875444556252882914849721061785178140389690081392926535474277189868656240960483348886133069204246655414160065444553629670755359948065043621581392679136816012438288517057939351658010657608855310191696671038763586019136323352437666194112960404399052626526723622977864464621491588514792406292070177893938707287007357107018540532133616306903876952049659769205997530692420880143054625700604219845983455845984242554143771453639057122350686812512959830157478862567052003912562717486147162493834197543612639695351611945541615151455399621368263014584293840852440834763460609173232704972890425759471204005525043743038396872597627059089245020049613944342739894836112346788719169113496338003243618792759369456476441000989543836500139504786401896473298845704995954689081938133576849574635420390256285562873857816242552225834155121251975042204012258801445515865141470395851811979737895080500086933994994377153339390860569900775868122948380373257088086434369041163301346548916517227745943637324261152519473349178697409799329017910938454610711895257725533036079221388824296611350970969532105101858376680894816577954548534369135136000267333345426764339719981733328443484582310848699522305305700682532199002385757773486038483106241991272762599695562280971954128732231938867642276031889340615223085848752528922011812156818828829893925996264960066128507373315865082649772412072921448339487670955915560431783316355731094504174597371233106094659340344385031498850622974631540934319267556922694574095840860504452128836685279288052169378678807595164992371619213177392728203242193272111027802758795490425767575153979709378702371541335523678746472528969805297934449478367663641297750068702974353865466519445369820431850019742783029457120904323161279962902812403263047086002587512309214082815766123020731547017642659789304996562789313092130411550625443421836532879233942966712065480211529371440516919100248063962781673747770762882579832492442014764932779536698762949262147273470106617552511860337502390100108796029289908921668368093501526044009258807478930534623771449595701516327612477812276439649236061494716558344656990850521090113010279893534032288866146457128963287713254600037131708850188078967604469315699844816807836947174525158950139333285517209729157578250097014801715292900165910080954636530396065855747367178246304400569985397571673850206179834415815513681245690845720602737737824069349491576589650272834597119711758795135369508643196570072773921358637198341945476733552354350685273183519862076714536583382428599470092442185956842914571797068889358203261410773256438640845969888235829536685322566434109359033656372275282940642763483890945280276008721496580847770445570660875954982662670390650198494391397307094759330484220949365280227580923768270863900861988654635473130172135426694870191004125167281647128761742325598558115552794312603313810399970750951928710376929550449208026723932389809918189058897941363827738484347146613244379118099328887111431297190239531995500342483194740631143278259290586269198372949497799127606362966045211063164912232490376993130743928587328473293652305474229867071067767099983966754440473060168532244494922363243612424685445769290401496565992001995746346141358109823967860844981952690183667630162947977726828256947127401186436988545692439814152030154824906318673330622602497467369272454170942899096306596031414590306919124268313263363105802990837283972209695568334166505682969111871495131871849249799249257677110359153565561783011303548038879527555739296151373457479118884438765171344316935925842586098955886131272002719086716066554022760052163444612480871054427984600825431854683152321301374234318580929200128445264204364452341564499641430004867266304493875148560043959797525635112719896026527321886620343661243365553407987550507560152082285438769850832208494705026579665151299910106913249345660095588727680721517015631563077555071693328459258865596373856966869482856860771270785113241938366883451719182670917791704156072577241643053896569497197878925025074530853349004014194914857821336806309063885868696603894014978470582607973456444841797688423774894475935778354987239336659915515978807061966850267825297614002491453135620877557544136594931296590880963723442008341833266291002624774378512133659012113993137445677294047095511137061808145877676112654627863816964905417035197376687740011619425024921994796754705264996187798356325651704860293041927200002055769823420957596120690579366787320043972347905447334401419208792260243942459242878994173981573156310118820374425781179374598057675873615276273114935113887693507592410830202268222111427063841144874287726079092669012448453343433713635772242510587634142563299450469805205610643680136335606315436998442133295918443016426720297978477710041769565057467874504534373158002328585596911638544448284919842649074273624238113190076435749253203838043161675725263950563425020241607512632445459966171670912689381398567623029125891271012248267338814217435561100246027366621970948956039500884871534306117651494584206322361976474801308438776172844346114838146773616005914988133577989386207676960047526904340139955789669312670340927729324310429800972594472988902321887490602494277557640980992500531368167470438358335085643924125497830886984007704589185417572966201651474716397437456852243007998547402650019496883343722864701195115634811570598349375561805137360424328529219890558791649293117526706916940959685444972749303614346375374002667445963763350768588610498333042129043166089037977203127969132133040282990209369843094561303609960674450986648275530861300728910318252526806855024363806260776487716085408645818148828569698423172199868621897843740825094696352845337993791392422208974464257386092553583664491688991785311465089086008893550482741085519810680552543415966601825844217140433197443389499750564152032456912359936166912679543287548926635381044717715301595080474698031592703340292050202969094407228913433562553424431328527180006553980249508634995672146015225456785443612259707452042956115375957635645354535602883695105204470117179147323682297612804026829014518973652347237590476775549921765618568803349642146905141267711341087257589240828525543924882827056603015527851856872251664005332594312258375282124409413360656297594534279497701353840233790981527449142827187317232662069837550573608880983583025644091171431688836969775597118230479408830004946963085341992080872623767384131322001400078577643963493986381341130249991752697401993091460279479904232121557685632284754758349175217828514940186272109894245470039754254531732140289162755363485825124154692725198841699162113880923940789878992574643554774264190039935011755664041739442090888111920056390349081246472000336730401086691937369596694833062673302887925580159613964631973906184194403577863057787716629893820699500701365033894171969365568927434909230897097063052760895633104865186063762399516135901387393127399322261412385445898055611655834727009555426050175038117164888438663043613170152536536787519465137306986320581353396585268980523200595036557490433674784493032242891807605182468626615275823953838798171745270409658884081855139339231250216495504610515129859247795743220140914961350223193557927562381498105973831420479410821157030138449614810186192329315910972881597227174891965739577758372189405741871756253243465935205322466616726520761938601991480523776676863950044677136811690519392833687715107605820186260842970378031741052016514077515913377678073167491293006616875050403076810318669350364666280234113914349382043388780515996509006401216919360358005273733705820265438792416416977441118905779706928056467734095732593056813628412291967998206733002276031706973843844030396347837360011114007008284221646690095610542190352055584486117265497823468085260988554048585564620918228317246821669387625517684259805472848748117773742235225008318555922985678754351416004054488735668219964414265635819433620487018473878802819305893840493964341717003386092019861846862306207684466694764302277012069808875909448623632514979356850256158755155419386510729095353544561718771439064244618101356161684135603695310214601958196627499308113098032218569309495807530927857860410707057932812333362315620952008180372851794387330381045603051623846784797775157528075439263124265915950763894090769565191815090177696061294536812883623037025692818352377689565560883754784467968456325691326556236677477497030648077387272052520695936245481910143051488931390919764180905081074478810721323321351238295578088369658159907767834090877941894153221599624402747341762345647384145957513564241809768510985462495048545164920829539292081990730578477192274417302759718147950721034190276576955368381872574871818526208081436878666376860965005245006418737593663893419116387776392656335502244222518565646072982698763980329355546288231744649332391775682759549093239670792331987275096595189545110610540299129449250250407777235930481254713327393538529414930151171891509292996946672517933053767608620236341845849199367296157746236831275969347803230561863231894508962178254011475032277566783844999223699214776471514888316996592554440173294296505724059311207629228610820742210587560031024712050028994126055041843210204561560807250691244726591306423744736272127329336722808642275799591193440339118342419186684923373801381639337132057185840557929986896534262527203245380401019664679417272021914523602106427622611790397641853417212011095403310341746573667835534943294048510841466690486512651756249280813130606256561457043779010740220888126564111575638797883592972601513412852081746483638305039460444158768705658771566117021571868900232606451920073503382295808388859559831516834802532292711599479371857872930377766545965516476091353580582144146493822989886376760829275230945470293419118278874517898717694855374578196801048851256456703937647824040045512267106852949846757091742262151358074420136668785345620908036871334766152386400228098735683734501316611050836474771785448410088131481388429980670009747059870102729994438712475119602675587161376275018723690352465478475600525862652624246604743969964183762810595874116329552841261911933495645062828576447465380985540508069149567082308771467264178837383110623819600991488355408106879095189174357529022381015132435770443997678565884665131103710140909268923507191402557884128936895469721666335165662262250089583150635059083909551693051511784427360194680649716736130987932224750701531987539448571230524405794400882048788457781738097178370610395772651097129324946033113553234260427136064306960767292344812954490333297462053887145971598999773529460120958653091960694901422344614002239577657676887373139652134308836711246968745156042993801393184611764138607767069239616279750823894754878859449406957708529086797352111287088748663966059525173857222963276665834784904694125945579600917002809440115711478715620680403510627219540503868732343086819401480513759788939620987195068415727126795805347145641970018596130539832953160975374702185710079182102674084577124381065008002921941486852747390044652084155261924325009993264532443946236395004047977187860167690056680642611709946767719444743111958149863365263162650755418760708691394205284239764944652340536890036932758882221716630665157657856733067624042111318521412086834256775780648110075318500628077353369986210622787793973122687219744575233184743243383906075380917103989418008002986844717306096683167932689327125806840761924377606314607015114553190599729197642576897784322888191434162047632522583161080409615785778793269568479280254976779470212918577633740083359998429977044398455072607950708510603534333946143030218046940515740764008091955681903552639122536600331719966402713774345877555538855083732255630648317012505518897564855833654789820730076195710106325445233191774567326414919195191634175886150320039388037966118138250362673707884330935443458330428998494748093490844575387813046874334245752654093252753008180308223564957516877497564832756594322749889917952661783818764473408082247935921169856741863381590053989726930933064978480534928072946271563810522488467403512077134935575244592744506270103300793619629241345644603674981440765939969015727700835975292634491856742729976117987280780415309568232123304432216426200676445110213391377189758398317440942779190913251375268856598341161522350996093552663527997590958704202782831412913901546933359635589905230033732920514335764488098777032944634447970603613447811622740008546185505826111993845682128164334733773640171475180117402701290771862469494608997218083349450779388880019278047964564674506811440732955337677450248234638592791714788622575630989410720318922678685108249477071276022040620598995807686271363558280422491867490637707645097586327177698261965594061089665514525713875799087830383393972098199217661908589570163493326459798660860097075299317246495315996746069606793354382166633480230662230745607688600756154885301009547349237876029959220839508848252324958168645202590098613929545469804486303276395942652510247980271357953856327724580700454240407953296073959029587543833099447544609141913611736681722675622075994599732652398345914013479790987105665733173255404234696332679373849672890987641233611962707679045626869800853444735399496151753932660381272972465848626315635972734375329859710059088934717760732970593059322058705118377031867245871025672026661513002393043155088790947351499529681350087674724726052600862924409415340357882636587990200357576546109819722222562730724456060036127034099526536095191285994977054178819177011616263400034596804462041316775877800840721940373277959516287603252860693024029631919068169899976159871939710919222965956443011933926985612620304577122882039809985087482497938467893569197191137393841999688694668578615721607931966470319156468567961049145112121121688393458156307056400652732991188922011355777096003852221703960116820402655076493381521422102915488737884996930320847703117298370385159154437923381865717518861698360829469337717492509809264626753750872220373966019065542274175391640638483087513769048502539968154577369455082509206685834790404796481631775837823018469303747733248035545134593642235588063049352457093803284537157281062980277501173682576619145787604761357757496570007427562922896142434378447654248543408381633509069455918904318422254513861159791309886300007442849069496892817803091396459935605203793167473390533685511064169867113751965750495341396369918113937975052466152959049249229054085504874406207300859009572309874236677515331016069809752188477105384140963727103467222018606216637319019259442731401264601682328990485094466716297592648002312917473372604261426635234324078589367534043931750102342516586545427968695582425593351557056571522478086933908603040711564527607819085103311203846907851806191619445571194699536975438740404382487145760598092251441795123457623228095150278773101542332375950339382273075865767919525462655643458993220101648900863518793084005525462333335320501181513016441669077902303295478734295940292614412100181283003411221942617593430671041821210123137064288649264072208257081071147897304257203781183695247323321403362658098901349251481709006981193016911567582870858208877107391477299673840782461099922582574522395468131187201255233675232594861261100820826142760355295994663119397519411163106619632130669615159473320671556970052050792562301425557402437977871112104198833099896760403225249451908745506679659645283125106510268293667569600158754074103627739242667143019526960666827979150750201321779275238899808930166479390295101113437403908267682043924037133877850858568686473972859769745633052525382465791422088052762022529265530215204954369235448334408473027082534105833911138844226961971572583522716576942609556008407420824232312612373497430755784391662408129198319784222182132432186068408264948559920452687915075111848105401732292239674558337817123107342051407861442586064093090831875997935506509306236797542111165110527101759475363192489443272121477341202516291581447935408885795264701264958088180508895155843779828947339412427218021864844050640510413182186706779681727209729474311705204795478324268321337914922207749178978226415528564059433741965188285824029179109495160065375154596717498031604089771765469012058277072780294440510458899709376963278981485541763697273777651586735722393121706276288975820783186173156089664633702850986904160023667105874217585728079909757375613005307235529378667908751765596038895220533720456408659748681578278969120062031794986638047354553503842336439288365137696249279339355760527042747414125944841011398014422632390162093507216571614092850502600204843139471474817508467686924016817362140924825421190411038966584722827671720087330708407334618445685402162552447770312390536132680852837260489161463867948706297259691507497822487282352484089486278453589519796011808896866154996231111980760236134888224376790564304187015150346094435384031805678146137398373962811970381647197956000213269418016096134296233131899970583539496822569584269796716380007888415485855438963517644594836809419598940872810485448841257951196468537117114247524233013804878653287864718696663722240473802782785253920500877568539196412870080129679065635757159720151891061564613061920814587805005997414725684112371964053552125383095326288938091963613478154515183362390027609031284042789513367018799622338948117323422244944837710989699418529553145653732467213065188606258804081998514259990931187499421181532664392781379403550698530497316751684633048640552042215808443560736935894419659709867917068081268179078622694697439884953195171530572345954664612773254744137232257262275187506023818230606573823450398852299794425815265755167627932127887037626153167056616875295770830378385656506284804238400145518791977437018154761391819007737518112911236899717954582330608707226807069027255158813549621725745037875685935030551312272783230151616956086554509217130062427665479475839968486921436973960055119181605324049534188280434351151643651759090948409104012983648611643757312148514860461253178384047334939084931627116971702572324465428766912726797617083023173572680175138319247851167912967206960567578667434805173900772943314451094983582268172240887428560189702909314563932419263797072397896801270501171534174691684698746799562348327973737723098986638927463050307971102225082513358861282996193919306017786927909657087073654854443530022514015495679475025490960186790093306514165306172395879346813772377202439889609946363149305917914551280494375519887320490937940200927562088331079255621971581447286477504128762133696676085003579777141425196245043999797835046807726717042288884175705534726910328302065408109195678053637798472264523057424568202509897367488665750563735440461212521909288591359555248661354642573701578837735878252201921921212849592243305361662823647050911610296797088586692324812988215789391424082324300867684244278977808876474103521623251903119804279890413200748267038031321332555588659688781100293530273165816092780521377228082749882993216217579357464240442787752916391151488707733440069634700343657615035648987790471530547152932632452007975456167593841917445552184213670536546964972407033818484791206246164560624810698345948230813401776830751745471602521499572380430694492323661437303888350306056063448815256224122952515043889727940151232814306316238520538837050575672533430664963383366546832961947806829433515585472004633261737602295595625336810254722009011214954667857798819635616343171760067522713152818167680388847639603383395433787278325373453894227577227073113025386074983110234972043142217411701695797353099679676357484907073332233925726533365344812465501052990151624699347699064633432874819601662780234125904496396353301770179565432309316644386617580034166860276973173586448474764717452879285967461314775252919591782940707917247535715124852170069047561781103581626123298091647116329086736525185037580146635721989697168207931201894635926203184133322563381838406103156007209842371691011409990890926957332941268498876933707726037798824560738649990067856765519308967649043630978872947068826967147627429574841473958431967462760622773831163079626320701743829664904763933445180834272046736052852870103488555738974381223901683369002890902991059827405390578754659775875777194497922349160218580610267146263829537750810786320729628519594215358659822020926417010842113259722439489144660060870741824244206689899951647319319072978289969510649571922444446591658168031165102036421702290492634220283181165078209286032023173489227416024789323975710026713506256650662054514290435665208275642393232524444018266117611473706642559676408703269309947704103362379311421864209229825732490903087978161801091334803009538896930955933822665225694736863859361228850114088984158211230474141892216451810977355233410037428983649287303143208026356207475948702483290724960277962117559497586569270901389454954530963132813659542019031025440253832229539016187619887016134746017233899426060689597659549420680667750999611619937442223757362600562391147799291842794357860626740852081191439293210072699728170980158785704609804860507791227496868088853912801785079511744165902696250235528974068469186736931021518411361117928519897204489942493145424425184538960650840445215998729555977764639068641434348287051274756981344663776138974211401055678493119908426589767188863836613029162181641988025501760273873139093931014841976917100816215048852515591261544745424249522568765219010232684130441122705935880086612362079486498471400090016772486725117166096211136726147689465256595483700296145082764786193603500465917893041319611215051397783073242263100606248621664476151546520126449569250387265602929815070789297432954657743336596157401465639120824296294760813748362892522026913130211993992348952806671941693371934725228426758293293312273029703175840759441363691396906894050671572771177734666693751470235179935603883872141550416692608454326324666584105953366827745462299912549224948333925885254140471928198539562000042667485760153334967474828417031133635993943539368539082388231517701947673171718153478381625916830344499175552304055548282333580295897157240886804660277507124447829638619096509478096707618520983670562167769694014554683146868671538758670061400203671918372529467640019987665510638460259434211669224456764213450457112691245757944247708126321694290390993740891963477486520123123528187712463217942509994440808260228616420909988293792218500807607211259335396815611911488271598074496986531002611344048899273074721814744327196627137264832730154091691074581419437601359224454174530156039664875950289136045079254085324736642856761346224721586805225287657227307273816068501486460124453172571900272235091494389363717725996329770537648849522263630638308518073198895304560865259268593924388089377801992898211961977138756548862945540545612110544301798586819850816567408299643344816881390986672857603322665228578740777743341166979268675593044903897944388461947986836498695410963905658775077363041229302391955230606234400142613399557966606266507503753085437461753884732461032602917127073265342170921360694321828526893959886056404257235375391193425384780977570479613410999363583605656006502004994247372397876745945028829325516448072959089570121682298371717987326982354435031651799336485619217778851112389862183077246868735645538904116090728467859685269519232432172731495858218031774801463435428693801634338724528254522018797261855180094853921765770634044148080404904755216760129536169500017622882439138549624731484108228080156955744452825989581405061497498581965936833273215443578330663036719296501862320279754139891159212038220447781007599602730815404489554821781822649856607569336990980030718252824285551196546108406767604599268573986518829888425778105858308959430330883620646399559201739684554336257351665763492412012212106975097632137024794577596653292488843642002330678126168906352433995257355299452356875826561439453752972274951966482479267612609265277448453082624593312123414245793684425076796500298701394828954164939557585418248183699323448120721872412085024335051685776155219941951189302089510833528917549637972362901970735917787652912770730178588396608141948357392306943635065792745775986474203446106305878553250854528955705825849599505075427959976204285642982780183172945377239560484767805687809312622169060055248354409171963601313055314714188903061205692374264249973263958257238686357137468272798824002898636938678574959168253483157952060350810385134889055993532392156484955504715941663747316919353685475462386684509025481848459286206674336896075519099786021377319029178365890809622999353523948415284861361836767375551380838468991495278081237333785052026162496881394100967549937640556602447604399179680095401436687467817923745385820166518663515285086216477091643608983311661135691907967318853477905386937941642461224469848659032826123265513990244447270510006379541213912553804327841935810603561542177938247197018842300300651722542938895531785013037728432450510710595237496250763528118428306194396041825356102785351843365906099400700240167456184465542848171969929649487033324689475283433880160533078975546781847533434139361015523381487403598640492461988791346741007148892189829014878182648955482242213890279017847597703912158807371173235377677378114834683124762088063862789555974852416888041165313435169676750946846017171948182929344155286673661203630362089573770940841228076707372864063786107929493424408780482478398591760457832798051186361999605052133555511509482417026554907002772328611955747507464611479513655565887021032538799002439664670380638981692174088805422874423379195377567705647706348290160634206787794111565113650076075005728471032080834689081429445572473335929680415746152921864015476400236193455058851480973784277834899596596377720562792951436484320167965856540789422349680256189021356983971526262694134563726579908912004238517557070581682916585177728067545126922689139875238512128611855355914639644530045447826329844706164046097811265526345999870262585350256265625042051528534462674087019616878149095754193418909880679953121271688784275613117714267945812552937916125979346210754280923827934253219912927836409224023519245143481629292376287201552149153399840450291882619917575815325711640554488394380594556867781981552872455492692615948086459252053257516585004797324828293964418116894294140692912773116165869952078676530870519999861191139763971681461388694851160961401069958877587238668887179192364465070769268294254008037940841683177343786614851950325126861939096993526796078821856071302324033741568880886881057993618885481959569541016335497869771373255109379229206148058446539986671825877615209188824164120207221646591731876436391037468189436103680388331533449739901278823501087544500831935123531797419080596429569589740730111074061357045478240666719245962900629754572468566890767331290277641828433145757710540269226930700534026439111335791015129592448818121841821675145212965075489494151069749804203344772042635441661821979604856516820973877038042396379378406220072266792322461072456129648417872365573124751755816432528943353418843891513059513177034181914687666965499891021328312784921958113309413204501415454055365979561879774119482498056394776330304387007328173483967669580162916433839118879495419718400130017520245286886795153949182555697332286819681561213341677629834155379358266341885363513627156552363091692047694799679057811463161453449158041074434015077327941185797237427874149783318307956364551714951308992719671204758132524689957412510291329866174184563733605343895553876430345637183550167928864781290656879633603486010941199862821753806563970017069943231661587041171261672304094796446267834195808753486241941160792268565704956883500866957644169816348385604284253195633485353134739096864411521498983481334773302101288261341537023783874526201072746358825050106276616140233816125322974502286754231818179610911781626103518318882407550102900258712126530821029068264673388565237766716214712683388355327914851577059066696841899824633348326088247769853729865717641116982328354985489959857029028200315087700586334948502526043295406122358580329360177710235118569784535282578663722601027626638629248786153770390512937304489198523839579148061736176360694949536464059903995496432093913601961739979526154116354361387769929359745798894092206993929051589933354254061585909167786165173458090717236347052874045973283693655069021585265059591058120256862427495672152934480375532971945532349322465079279604904562265304093403412243329762461712560536457477482046107313098363868601264291167341854680817933060798469026390145298693182341478755822062272889199395450124407371219652292465686148618574580173129353965439143515977592753275265458021133654914312586031847667450555199469459288556471625046530321550185686522273289423261042203951781990791496520228918502158172272079135945283464610849309024232156200324248872270901044614512425078715533254356147323546572003888555887959144418158928125859622795171981276738093157063580462363363119034559901686590388870410405804956194059873870280068579169396988270107832804177542756744516282559435370017279652681754473730702251776259420710484429059519669686669761544363959407739374956245470087444217280669609034676463916364225055746249220036574118134725706847550012161478934865669266159048333312810210293842310780270716265625574796360757338961212057520151409058713045104483490395162360526516765646837761842000843716885237630774583000109725041205047961636875273436850710947134621553602437749131524062315169791057815086770215594076483186006192973103220532410514735500431844026591774099139758251411004255293773748082506010405644843827363687314531727091279786079848841770205378200086942323268825740267394988715223056828222142573868506415502100692235299571183474133060725713456041290502940004737545220868916882103051460023701865932882481101467937243527954173213649658592775175251640032126394054022102516302624712669851338524395321114103412914125454263100364481669869954622052524072346761590930590451824658580408981659327225218229887425809965777035657988153710969316795797746439261406879198345420092963055162226332678833332265984130585667851156580189039117265211629496544206884310644991119838374019676480737889973982639438648553964678051924487377666046026102204403136728436120007696186401467197758902715501754682891596073265564899429116103085792362023831157586353301142752404937644345939708499399048864386393446043173541826817271496358675922747075481474641927905830221579130083541903897944327135450666694847196401926379055110672106115144442321157236468184078053240907829588771887530996538087399595298372850909658527984657986749940912807111286925648959029413884123160279714451849463540871695452138960053355494343589546967364940799567520409848761798028447987299913192151952220434565198019137065040453730501374581136672109825801022102370945399393862037399574289594070945896684233801003126284035595990383149464508678538481400741278702191694549706331936214943066518834785731960748785259673822842026988892655079313836866130358470457272903676218754272059782660668360847030862749746855707241042143120394404427249678870174826575058143424075925002133536733165903313554359214919206838267896738600405143158073369356674653038970877060912559324344282690297249358156001615705634154409405156975097902917335092955462401511518334657647089086027153458566242106977504303988651092295154135569307061924465645245585679800516326083880495163419724966744482555548011203058593696682624630240850880890295203244926362482094336319562186642866635872801547090250782545068634572592960517337126508769871181930794311892935607419183996050636678576550948051311029122979387117288633357870170729326807887394665893461065418929851547982761822814387031883781899567925886391432336579826273116609048012129548191444117771942374963491559189594943989881345992610536205741147723661898479556902344114381306646128580304749355713968410248459418783988036139805310634018737351638884017425785505740465850527666860854298406817602507223622080721500956735437648683591277935720807965072581265555855825953260023368499804888745157815917402024830924520269273032862019482351287929943362389224172893423273337032490035172949252775877383091556371009467951843554337327291927769845582123263695609985654823696495130885354560593120036572579577821905172858136602559094775923138415809737336785682399865845893700850670282645590765750249360015704894627150532119282005775858701387875820645289830139533561298522412056787410300339352708919510116157765552773047337340261193241873824007963398117387117734576246010103495646159814305146047980284554592115605608974089409315883613785732873571439718479359589082741167192439973976064511352046843256988240307353240500135561046979317190216095690601123060729999028210486921030954436058448436581680457158968680318083000567974579309722500660643512746948390654944918076559070851630136330086028171746972106450037554364731541511721355377947635071454115585944059091337851725364797743453476925663801841948020990168437020635562587457604786084030177008644398110570318169447406519573201437565098185018086901350319399995562774757680912006366802227658960538649054316714442872596923495029902546124002950264644123548870157702298836717234880101812660171241892637340579137304930596390574612825668646616197411425037232969059538643792350053121400004818799505837265468112517468176521106020323709633664603351131938720500489790443839666125246190216847853373039586962244547336805421083234616671220441886940035754600823969513230470514766235612173457907262182360220599733418490020416264002855172456197198797035769721954072635498085998605962119244207385608235449592848574300487379606258221472482249427758270442644177015203954122740097863069550882984165909284385566011327153312485091816775368044669522740709556456612797590986987526721819005589547756555995190496438172305542357270334614681482664884252407726985139655429098742555560855482344148747415364871625011923634029968568768741462134742951980049725470353093282885755151666629982042972832294706400230604350162766820966393240465401109894959000292326546951874555951529057296801646663637897487732539144769362476861537747667318143102146455103396452445066917043065849597491999072153152755253988644143214973382643046591364921426904372334628086361320402161327664304676543686919069897440488838493668613877752530989237790990644464075951092826791555504365955560063449199135151292430773631534258289636673928303571634642466063796585095227288600932695255913557195944204184710090509546824608718805800709191625106789093776033605266162470946506418577666131542687083065655020984504809484975173496765001079152522936640293379670233195179316002968182793623029866874287384166777010063125717417853251228734310648556206913059806976925041308926057128635394616147992168279192669229746341350218893478422268426190226841028105735500720057343592178680368696854886581967215517785193603648333941804562141662999390933781355846910651092732784722007025363795651240607856529544462580713456023188502058506671254498027671048057299290415609419636409474614713485954597726780344151841503519124452508788990204193498353609574006494013449086789043039653950034006549305356364177395760533664031072319297945558347643718056444864884210775783579538275865070098144780492642411217477688052098013243978205473520615360953545587908482938339105321491034797195212175969284477992131581116529309196310222113413193245542545728452137894797223737690551218394387524126560839724010364259708486561023825124241745153009027180866036966162457708007890766813039723863662222336732724159295958105390864184661920986928886498032160238883982336439227420429128607920814941006540551014560259293461979507798576314356021357447361142134057681938447649592659033190540361157182004407736306033622757169526711926638185609679946666102036967719308903897218207025283469223027759832186336238532994966967844279937874540880025328812123405378100641976148358647650568296100772915531116843219363340338065063390761754810510814446178199570591324591274361181290521488014341122612573649467173047275785513819614614511702534983867523321948659746437319990807632851071554195447845204329605901640395221806252002537615810239530171026107516704546160511472423098457201196664894179112547223774116850237752493847786236688554611560896035020542404808382139651674724222672577170622441696702211751444159900495927231725107387830389931376492155682165308120698294786808474224370557488767477227888013297747736926253847707633801668638587380989368803923399546116074430385601323355329039100410707821165678139091851140731373547100361931780197442462903181786833571676521450932563374092159563204366230094894494024379726770384852163434017355476771020176427945955352096871416170717076287158756961683046795452902129207946881215225078785390546663076897950121946383704685857293887013455730394557178592539118022551706568096578328071419228336747196031343305294730552804657534701196629452574506628870237852677938887907945635821323784279168423190712818635872056769392893499284739496702450985355320811413169948023852448525492285261942441628625990481902315869262681201301952468276814781220847781898438999774085319948139129812415853102225771144877472373639176501738435437785371481007493267929396766142070066581190508909892652913917014044668988895014401783754062480459415386356941882189195025284688414327638580349247893551454254251511808495387237799796704168060214058690447772099095921643835188946938549262389917574865845460746442949241961353342611809886901361685217663778908097618760495523772175999924589668433765292561139796761591978288941818180912790031542252658395349049649978398188151743874216278048827916003071173450375532753103950168361728419466154824448120278899473823104465643772148320617723811008062363897900188322676746053423567107075884890860959378984556512050128319163134441406088013878776258016837579360576949625503330469198783348136073510623459375804463699796419698474303073391113393129355108228377609431221617529385943852323992892935475414060487420260325455638924659508250379184713022376035971044640791477401681814870351731300356941334511700872665691301542106041818240815974542303012750356154520359999975929083824496787944500486466278449921550602736206100155402958999146196720318029707036474443340362402728324268338487657151787278542286897015957752195275551663732881685730746127946922697728685570807750098414704331863469656795248798979854596889980958968705152523415410412668346589210923673845694185586964779397044403270772145433380611165890749878838065812733894929176037945173292477943633850830370970674879756950811842431250023623094849618637454392799858052436681547941140317203975751033435416648321126221995859066505577215349116723595090286917182517146482746552349105441352044992068933374117470161136960778618490697941694191002108567629458983857921637718332812867073681858614025006615099553341534158879044876619583287071943104472685604076042071079047647679659859349878335579631079152330016557369766660108268362423533243932429295630899315527532568012079584743544086223073004654473310192169831023985975178093204684394188135020052398107993063670805535115316586834887433263687719857771783338389108636107250502157974126751276725592511433473879053716699292110285258969274368263276644993646517635406103255675678292419055930069704388336309710653058394318072696558527460250241917193179227309090924035745688116732480205741416522853623385993384358865613546542108875487594419968786697188479866097304802641202934032021983451045381778279540156785985357516972356979753935164896889381924596209107226340994347151301330081418454956622265014020101393549032657909482371000372440986099074070345400468615417111579411693230851561692152206308114877063890434147046328589012179991766938169120686618074850376448277605816710818333793017578911269387069930261853760737048631496462302047219594844075374148336816307894511870759106301335456459474053555947461278964714003702842312440312148111815824522009031236556176870839889560816333470679374965297173659830175763233296596003038591685997339493170753355615502248819499680677698357162904691409529965837429713316658904429025638436621179251036608136532379060660201408260512564692956019739809106218102713277945488885798510571014993748227444395466713209001434083197571548257333028912861288538692014850854893571475164050109692647946951013599508694099011850545438064200295511856760095067745993012315881353428802920667025313333578081906891098525280584844147159285917592688559258573275514604224915540502625774803381877953148452145987505242274566577874814248807983291076407655617774970049943186757697213411391405897874156732305603449129634064499974302024936050891577543864961039101042822662802483013326941103040086528922465208980879921191769228083068275883122728377637498616349212848567493247623162913707725881683065402344290663736587742445999351810942226334769664016476439141788746386637081901569224396418447902937371866730473448451394614257259284471816710138947738542896412034182064267810690301398958832621489195016914112914345840945077389546134301214344522450724218637883303691052611233301422086014361115586905526277539792254954173702096415476316796463951779920437968802623463309345690561142062421566354516795108971246038081998269228148753659049666197561394249404304997843021347964526731852664044571676450984776507967617062519397559678778475752191142602323093353092506112699142292619179359573974223815919409263770704172336485587700829928099130699136151530669178054240711784593280273641506371720197571410543174482302544636183851622203847320730651202673123507033963849970372026939435186923938222877028696227598936558061013984121239849918085867488331306564181320757538496275307626945931782120448942634747538507668185169710235352143655412383628194554918559792647571384411002439803910198120863330067138770755962821389848813340106146792217406522718031886116317270423397083056104528717618805783060129176427908039985415887477882215252861707380798579286179123590049762440558333181477047627628940182673350257306145709876673214027145687765794491108672084270075679239144057006141250421875112809234735969067004783601599948832934090192753638940282904216509768092367023498084194602662628912128477570186743104759012179714783686867884308946922653312189142894724425522639329545056931418236684437869454543059379313242215757890406984474395197945792474210257527012818300193205431965068158310127739920909939377700738738288391437522642441713064846751441600916924404605223586447010564280775890516526444662103912085682750441561840700471199789182924038944219187921195457633392485671302886140659129233932235023557339513414757888888176708052229822144199005349718549506233960094892479158552723499757389092922627156189899634129930448566339715390411255926031200883224643743698865678520852339404539148134606741111555088653385455874380014489866565026557848639613512171131952575693129711073018748694723208048714700552294033976137514281092498739600935450601318783163792270819577829728704911162592812414684966114152715164486749000471977864711896902006317685712281900152880364121088140550689422798252000241880517270656043013241005511759998895150656303751917109044928096249413297701948557924806570249304387528671518133545710916869844262917443485041982888233061735630101044348763386701403439072886177205968646294614726029832001586568957442554127140416940731116520477595763025339652922490651300724697695089463900518128422933719570741262135210514112198544386244028035945488024513105300902945453142215125762408681224452333826862371434181096112145095047159804915327336598592457212307314593667109801778213944002843233761167683307060006566371543354523936411360173843644854375650257743004024654937446611372381398564409658286333026353412077380840868685810800483760029097448891073369832328107263485083330713679010576104989217329790850196681298740125714996530492996819844827510936598564386666928422532547654295386178414268910574302489610703394867824585269899833763893117854393455743277817550527728711190358081985605357750320484912412534198168815497893936244236407378075712537013979936261235559022492636098437946324436636804784530337187334582963323967872245837044258637881827006835518348430786229804513485547159170801497910552919296913548943707611156586902681452368088342155138130328122831607547569644174752042546366461864026588747725153281236278438491310456939228959678852848612779574055895201546958270807427350596565477827354777384617247784981537388555002126237314542073340515620898914279066906011513752735719524110972320481289618140579241976885005154831149148507395832187125791555698207419759037126375865275409882014549923867342229037631254727429175599633447562724929332502128453981426113190363733815048603985878827848919901847115467688281942760854193906572886989893868142424509558900226541517195400970762993085246179336730713906986698878469704411644350715364803140410944533422604195113867540372709802372802092411585491998504279428614222999837220420903420374539703818046630383733628636498887305777696978714126621863102165996254921203736698066203541611011194904541632512912905991423768474618011225805025357223128861698023174609941281033808840684369678308405431681368909751797780147651194187417542216418473120643432955051131852407378073808847344107357766576765945900725646970228886176897789811413307923914993832712308600465535177018807868848784096355776775290610996340738612684044904782270089015179027514158942430291231444375873252976829944459785918266380297225393603970371438748031694927528111873431840229021267820553289920770187914955883108935393301430890985516619120579702845123705034900723010833097547130604401763961479245906299766688584381948407486076027312872329634731231913949041826844929853905482170340397425787636161764792817565983961339867627442238385939886683640331768772406216597429424412782375725896243549697589553193556989208560711419664416426121813824281938571454443796921826108322661105381036346941354284221829069634539801871737397246345074405284551249826404206839172061949561405619399072207009337883435159056388548214980731621171081810640622301142702584444102515797200423279271385348058381441385124107775022761753548444845130711213109617413492790588136819053796955836223146167560053842402527003798678950272596936233440711281523091814367939724249421053212579255703055982668083544662991701173334392289024293718121597515585743732596306554306361491380219312398462387876610049656347552469089081315814988212026543216426780031594765051325412666557564731632001855065410875258370028404455907518895262735001047544459249478152027683445276063716662914770020856178939164358874410683464442289899326006962128429961134478313449834698145747161759351627781875264090589758008796382625703577914691919468195800799769950478016205735730713877526685082783898135431035995726777210587862479605315332050594421404741288687289541161116394458569839399424107446775734211342305850220149035541439314354112991103652855379014195542876879031429658341955252784138886154198004113990581802910627395965767407111820778407206987858489724574911075103893633185829650924525138242124200557183066112559512588903289988677831330179982472123158267854886369445986184950155595872362636316519256542318516601586930286559824097335691083460853322017838615213263393476463063473918464305603985442402971009521847381446942559108196241227063272890372739987623197716960278798232341378947833275657770595676577302943362933503066242507168204113430215683512201709190180572612043035324020985316299412819404915511080895064663375514705773674130079431897167059848585442506994446022026963962107877202697821541781470480041887487377080705476179347351873433787882358356470166925725966195363880458392547276221511864467844068248399226727071661131437935091131272278887836061025246174928296979066199728703261888261770979153686952963262414558816882273686546985064817207496276448979606529308339502658580603951013087573764485044004537434653741018848242940354857140749970223505392820179071664941373527970390610379179489141014168534771500757584973425570228745182666687444778950898577787046498484355881845628102426614982316447794388193787447965339019294746179050490378677136014156075766645175508642493489317646735825541572445056756861464311628167294228899786677172829919011536926378687304087649527897603938718571741036663803723507984574737509500638633636674927241729180800783765024827207314829458569754024176775959403554959908501330108448294509163433425073655213488491416617660617076007519986341124312846637491601741090070768229816027386387699092648247479760952150995186827422108957425685374138188349557167224040811634099466519268914475046481017443930368135086261692328696505271024046624847197564016734302326940196252796112300859086459061999513174981861514358327211871036372828839062932919183750122670487630579761546353997031749624173240466017128391145028313036004088997661637444172650834759824963953367994118337316588301004289658926719417430846340447196154567214327090450321785261673096762668150771009717671196508676875909894480385158455682396576205366921231208713963561881205470531786831973813986994688983208717537799088881843782234570911319206166772600834438673080592439563441569100310916837722697602840058219482937227308284468747675823744252188266663921380249502803428958383247340199567687885324674256410305944011823358742749699148262442303935517004867987839803966857542770731529366236324914205070295500196710182146049137744690889659422530040776907607250536707304439244288845894520246266886086398530199146546911933110901830952961284786277182903332271154799252723779550765577040345276864715821457997695140049506572851283539330294857728115252204391309257347608006094243871194934003495492649418434076457784485406072182776901978199884783254035972244498385071277809884543839839195532171952018036328385452144573044052796885489896399412998872676480830997525834986556538041940473849398233842497719431813389148257254431224730480307753948557194663560213877726260129654977864387549101951662663893381392964988180071511090277057982078284457344263001596932132905794551509896738711342949788177901882359890075334094379541477714021684770693380936420597882997672417319825571099959813700863289560424645031194591490023485884989134120109466481035506334016363026984011058767126559007965185832002631066735760344956023219905115333038408022127866106470925686850655634408041788951728152856967122440967208808082289493206300060990104615680269574317945731774688947791351898668942557068902467355733490534098059784558353876396920459295719314033031744336976554536748060998128337864800754301673780790782916215605249297756380273414654685452500896289480233978041164275524343931453522969151850964439786487204959680631527324832277664275080116389936398685156462559584413444875848384674907077495916213801319589205201165912822161024476849564627975194980192287189656444571306118564518342241467713714897159115142860535601992313275441405121957506220323201771180736838636216982283684065072304887599065334647655474411109189587146158201455795671656296162092814613840215402034658496096683217855244077037447997531051472740820115398908999148885722138335827502499859427363806876014174572837589757137529804837696044377604431661386177654081579445177105446076065931903314172410836140385264630652292282911079502669097536240041088716263402015783964837512243787327948400635841021115829052829197672607098654971573745169336662356278926000312263899224209499589535750924363672602460880146776288100219517091963187926062184685856706015245046102605146890192714204778805043641153592642848772005965887225036003467330699566758061214543900808518979429661918631983391141538684835696980232945635770395419927857816962710997915121362395786380211972742663920492379895958317602287170856585716511557700666000369572729742131239939704760611906431243450810880806860455302758782163359336078931025129450509876785218415110399888367221317007230113156287045855005403630462787247539737510987646456370519180317848901260617415732565176579671556833632742264470542281620672238347313329441503753727401853301780733393496199920600113363268684005160068712610780329668496667366118147981014924425814321144870697244789632008248976530326482284876193096752287146501454680982916998788057218585115674998495665758047658230081158303959874838239049953468266085348409650945893144560489705041519526237523163722627327914446930443696842238333741833148862484462086487022264756106536087864914252330739300305037729783197872159515016942819824964093392246046193837508764976684466677236413268148978484548658729251874400473595600822346452491588867072025164691221565260989896860036708088490201983520530162384570754855119660069914390729695515198225541536639869581554692800185507545710322209572876279761227266499019231366170027751304058431103888158713183313401668101090776806488921185911972531930413486720666445905560193291814920636889796774428091884220179744174031216629183540657617729517095122756808482064035825963940167597815008068252544772478782549939165306442304692350627016560552640324587938654760148096200421326673092092190198587415075159674278000706181208331524247406806173821461814154194268625240820615203901063904470554848802214192839979641497556731985539892007972830213476898572869919362697336582470488653167936925180803253170892838467677995306656314776300364865894929437114455905058622880911579506965199801615456396052768852790102628429284639199960407520364116310398380140547034727030322607607465636716755079991483628848381444479058298460084637863873398678007824514377150514302888373954844179902204084011389279886161847712096382951983491722487062139653867043173765685472407741086344276666218999523226123483540795569092468909983001099141574627649939967157898026541803023108679048503386246740121353851150795047017550161404362956554691241955425406283322640309135830854336396057564053509931423959827751265624529477157884025431191232201149538979838678985275788874606801634309610072288568031789961935754925599797752833584785719020920663552922593823854963149703766236753545506279880076510268875223757808786841654382471125824078960200937324176884353987691095382605645055837568203889715774678757352131929112892578714512676385288663953718710194290726396349331252962911815730427742127816625579857408404866137998668896200814534741856753817934534990915789534304444504440410978841977290382460335470715982008822823713828439220303213818184897504920292719915471019019363439532588983334661173346534670514305126872262537899835012970509928596280153392119137635701794524719078910833517349831368347343011388191075939173364680815418819667136536068081863198528098324143135142542862021863558270937941408814683664884500456655306802947482555762632507646856684657081039431315929035267888795676677669631957577362966044276496480435465066280385484174519774706613461511179825014526003544806824845555792982677576185015468279502495100605788066043363498745519479645088658308437834588393132152214222343770576311299081749189765801742602979568953891795387247830407063337737608036698820806982027873135047402483581368280664162951596517743721034492670411961769460797278874429919383282343077360226668656614626918161797107977566414251153175750208469229496245018033346392198923788947683971173168117600838972349196258730328060429777754844931536332346745606271769504449765262090361210418982457431866205958766023621551047335745545152124029486240575700022171736409785232422929208080709358415631407441587417611713844760263027608997168033232995790075078174839260164224807328102060200840714453127464900578465657177911808413152527717241935434746436567205391655534855147575670635181168738657816704535072545421552602335229293322810955896409364735389574588364214052638024310767843366209621232553306010891533496283511697671019817410211813800167080946796487065710063284717226873564699601236102555087098586864268639282055237365055128962042784218380777934429361668994068747965470114100486790343698822297709818040520696319619851715983922555794605533105929287345688520537466970746109477050278779898882069339041992838223244338776218834861070076615744281665004790555145439929996440195995154935201366157450706838701301764916714263987741146616618487499326877355076610749197670896051615642919407297048204846156005057450249587240395787979645114906970710002303374516648929490261289213114388609022383246652592392004654752020464436225294214699411871209138540991954286063835177450647114012929655447237450277931948502654607366757620795426551192091469742327044106140721313656589910828046865616558990456181005724096678782938302073417957162811436544977189621110831730353377521785619913797347658320535620996996569347900289127978472182481568555545559764840859817634524005296203729983425125331249910699874385226911449837202581896969781514589050974360412793391285781656482107704680308287255546390358217835189810452813386724364864030023430803653685387285446244230389696890854222424018766996733653734196460088363673658601170427476524518291630810670842038521186046261082773860135118759444443484099550818117148199941456956630932006843926125311474888759433323995732791547078580169579044340835206631949172300146290101076280503555346978000149041877862757978728477045433262943696079594351722512992815586822250391520856270570200062025651580644721431446897066461937471993020134188084585122811952205011003822656614828760239492912018193496839016439101760878082482412628856842721534952948089052812705965381928276562460204066634216070739465675237681902572984026997406590944345124496295303531747799898210773546585196045054109477615966360620475597894412135676650053809842949179221801619072753240512632711984863628745423564088762601852728768084061396834087705624343993330484328484474256329776287888865814442460747318204432727959196149277681733955903196948802974133998417026647089495606958944462243436813433623757795732399055544808991033299028620209810102804134504991820656278590076189563637098439728804462842488110486684849318495452028281748442510898125439581324823814058721001999578562177994899158389775155305792546145651349933745628632080657359417557643385551623285766013929594908619660631537228621640863467065942583009920620012130200483520992641930061162689898420322971199083676861925857718619664779358929224835481479658325729435778917416183363278218680956862822559590926278167462077513767891796268985674545211384132738832582422764649367046297313416026546740738381471517992789894974999069551721066494411679483916786978732655256707111468631809357611618338085316833895795369059350846227402871686713214001528623359866042361937528554787915909548076074724480952552298910128044724264112245930008216369957570485806832986228445048848963587531666052774824911167786888593681064563398206077613371240308953728467289047621705784758127804199017642565512461142524748308177713563529444005452589668955031971937732531907132852509738444243769374573565111160806912956512400974223893962683181255248154653156742526413737550036533414356323503618778542002016025611339342030264748136042140274404480665605873738589849971126478229425886361472061759027433158898168346924698812812956077060828459675826293731740168850800434558561289858900755474952617775691904273999992406327666212301198018522931186506124746192651613427809031697320810061253717829432740374052041992083100170085831414868080233532642272654423900109390104378492184055766793062795117671652628873691862328644609540791512754502970772752166836762256966731233063408579747180900060204871233185961949478234001386716513943277515000894910393025907430837142638041077740204145500914835031233719451490588029781635970338364992923221656890166179628250808282341733235582324431635598151090579141063522281002383901464828268338988544297311618432278899636130644790984282900379028135658606077523293938650287640430748932084296741303395390548738400330735243560046206450570347702835697998536075653397945938537931607692903320399254616158730809250700688549845604358041400446077192809234187449469072065252655275736613607442757305902300195799578560787853040904406198290390122914704186011976805061516150010287097452949584535456619180412796014585687879837473691417371147415444043397492383469452008293820495417293503235768397039720284400934619479136458407038173955039757665814984152770631197679640864867994605415012326425984895763153100592903196605153613617543278434259443332242102469621834129566856364716622706312470824657043769458791496195324031847367274774786185857992025108366837215264770696362997017405488455934044136287727930579582336001505312211934290969195604489670522526228000530726253248440031742111550973121759967256892596723628605935816914534261746449433578135438556444242140473673292519187999300943453278176531717393945449487775902807919296058296742179705653549158128943108563640121658121271945215192714514305456128580608427145147461746851767043850791876715120426306866753014160843496123460238316907804486383074407412954354908212101115904706513976540338074679479830225646166737303092002988966300088260943369779939010147610547458709286382332007604588734537990184531377609615243703716694444705334401205776941560443097228698755142593328116049067513205078732128170201533489376686067960860410280652320372162297725585876259487334132019807031125909643079230662123834591639178976128986450923087442040865890786105309460680496737126066802087232529137987213254465193283369915403311283161662473461815933836411277287637228071862109706732347047101273102423232468135032343491730998437455751726667356377186614498076605015378807433868478374387526453535312366311449265797709655483966574834667244246884686336637918670781747928446304496769774443185916186094135853666786414531475048234160698514956790462705382934817509894459436069146633228373014725384143844068039293007509243619065490156182019251622926277565421852305066762226581298615407267755052212898118537039933358998307395859326878489033013526860040141453344456494258986997430155889174718323470910973551536252008974288912183735472213609321707774069235636216092522895672846991220531775040490409080708282873839892826225065881078045700225543495236979867202873684968643616826460184907961215509839556489992540647309667849295684795563823676147396925631912146968565583221914345309582640688933092144233677416856465815701866359958532188649568726556872228041765574244280049817201385246493563660507083971583240017941893354839992316972782584636311139307062982419963820196252703549720816380499019815207424627824915017262458803133328920256238999213005057253376834919004593743342214111132864326679191054707772468288021128185033184742097040178521725685014987876685176509994832004095520071375971690819813029835786304870877874444762566184026268623105226843453861249175392768050078536102241012549670640149935808171003832542182174947438752611447887873315894226507291463171621880795925657246393139273361424806370742730415007947899694515977608127308875171721869548675228723151162120128762502384270234314953817512172016884708624957825879516110490856857013213623223735094413354727084980662180720739163872524634751121902335350251513743821125515076488026867534623248324512507641369202017006819292285203777629586840972905182697284378000402833305134532387584176096957177583609019772806114163778291555573700350316983312344006475890542188049932311758754609913501118443597788113910342842434179201934499758626538278214799758328009417697675812280946188964305324969259274354400366395089146479589130099573105189482413843186769870341762903743436627555237142441271034439433934764192507988361760411122022391269891721362296273873072334297075821241434914123516417267029916979297408201189915640788205932496857689456755257423459781808888250579052068327145225310682409245866889008753713166110502732382331787213791913077459235776082787695007195855228311352440677684013484039307920228863201251829167660214586791523102282879054500668493367849838827091170204426661625615686415266209079637212016138083996398589555744150274641423406520540620922984652017667910665413183750026108374604745837183820767977928778371690743928867862561072335944415424528585237036533348225106114676325455497340836686276702731416196355820439905045631718342490896483917490551897620406714509485665255983615758114543250993418902295619096512062166989901638511727016999461421982031183218944637170738141173032627943296905910155163617418000998863650996232566617497732326780651027581688505706028170504313582833233403837545561574611694082711572998771724915049942536633606410050482021021625028437986018939521618602538999891320376604076545911957598588575388173033290849308660209744449310391842995871815650265689055307059733491978004799491572087676643464561719213147889907971385105286611159681890530165651625867636701426923792886804018051868094978807649888348024864658283568593669316260271043253920382170317383558737666027236989311918687623524438133551927478347618592103042810420254123234253551275350527459639435516707667330461396141246279746640741928417231410397103752259461425317698155547211184250887839696149599280145071338523745622004856903357837237328672152601835402724639021646080091683510645762011242370428418109503675870791022494858040319950215621320089105067537366781841377188478961336131851976843486808215878850071644114666868643448901700973265462577699300604284138477478748052452870399420933811313981708315097460779626590148960724922970691077094506020331093746747137220410191820129664049520258257209101071383386833712998676031900649534389568108791529175895611824889309704061146933669465129696774570707749503863371420757441529387576683941719355116325813158571888594042578806640897709130555554298025343267049118392357998566149395945150863820385474367223854664397384546706468072798243138716117224163471434581226684524598123738360819409638048511644996857153327291694516930741813896120657789831503120877450740120826817985884373439915622728014095641199002531806139219478876267548685393714751088185045293219069715930141741720498664656755585118570984047130206933635506818969485011977828705562421405806240774941986273906974079423151216436314892041425297540750932974121567023075095933090106518143057556060599039708871561450911269637563081300116758358053884352267846365163875083960536994183012684585739865180841931927101241532031617061129453444603489841380574724447473823132628586022561122644465904445083067968966553668801552012592954164748107202021092727231463992971704812214348645437415426322880788886654648825310448874849084162492142958249100371249036728368683520233240548682064786373620796935550080423233457348595587700580787686925837268975860887518351038572139929379321133821998998073537203875080861442371489071994915772844273169565558190407382845661936517372553262538273064211592995544712980612326856481815079850178904407808333208722901506857983798047985164342842905443775505859013085908240258889317789992820415338836696772737540757774464537289059396748626120111653997720504426762498964684136697369268417549996706602782567003049561087827300855030497848620632446417038223151515553148537574784498817855452745314447781957309977939976056821408002440794344940030853592172731151497163895618031313556789141857586513412276020943793318210101724335571735933861292453206505779237702390664556223615361728117029195065300225432441539541214386592959273183526793240998249933093091333292664212377380073988642390008872697426505897091925693932812900939305495530026254202335601600175568834225451855601900820495249223900981220827101116379380438948457104957028359906483604607310281018672411392942197205835012659580710834298285111924616789317019808967060127239721760461521628322732396184367744078628917315376183785490019258466809589305470012858430791766069710015400411610820285642440185509579479327456101007764934905956065974863897791913358921767961938763950454396847764589968194890828923809096011326261579380813829650328316688913236016182951972356245209792332539734991002993487869103305205601140181040020381262152727573682026111783538405177758238129059105286968045703026068944434453539656641516050331731508299995557168291379893854086963623403168888885623820030219817481220370013557353872878215900513302543661668776732481756831097718359159490657216982526478623006925095481718318831697200956879126908584750481465879846323255160829689536451971756122731423119554213904445750216520176471761750474102333525202467293796143896850843229532485286782938009153317312807539060107090673489498025643398268155761347267564464859156304221069716377613591458303290571034081086445293781370198203373478552929008795048194457278365307659120716813204761976238706124940710082757969750929774941815176312655120383035594622619495326786326667937341721627045044214026944536422922556228508358346392484444937109336184503273387663080974515450586276149493371653007882072090239327155992301439157699223775207098909193409691995751119073270869932333371838749069687467417038891162166896332024285836799688972823429937881984431244890970244140797949686501539380647125890059904197441482904233135614978254695852731761316775639075353848135193502195807782019399907937783487796978497333000822268948898827109333443954991932441469569184876238218681095888875707446457005714716136932909594994484565542280303795803561861953346304603009752961467186178973441424337893587287227608992637720225828809592081574659659810705382504613794816304058317443648982372963630759190078767340838613845949556262936031301053365001831866999747473140116566576686693779156184650194356736252030322092871392334636043205914451359433163799229831665305447102184446838251350682685662220687770087308774016942921199427704516465686260286283356394926675872855415628903524012908641836786171191762962286629811433382024825359871195234287742896831343393999037707966234669626486472668303313290229681252821227463655905028153317275078849582504546515146990507355579728138041377986394434785865470642376524855654306002563618729928933491062470226684294061165472223567159948329537027212003841830869245194820140878570790299316323975231655752914178550649099410926555146712132194010234708532270433984474908251044276867893067014185843153577461939429227201099496745211945162693742529295663147273080019906786706400403063389357881758438455352124801016357279772440588709532586287340802214304733141704659858581051433110282245652934351404176088784673182656399183982549939018100361775311691561059181561028340212067405479408297250539027946052906718325314076069649656660822272029244947058494754567373967406692218242435746060174182482154770763064456933606631302594055866644644367153047229418047059709587243421085999647326610003485887048547445624460247052893597486887966459512267589120438212168444388429309174137510952479269078440309865095906414467143749900262722261718395527379266559552744985213226085077624037731542850990599266491784628012600315480860392898934317344518455203295464549027003244481154290653690438714164375260045888202038913803215623011958234355976471145493382784979547525397462412022532668672550632421514900583927374640544929629979528158019723030189422992886936763446226193857945261331340263901498434568292471709376200769747483763222960478050553462591783580750186587018514486613276440081600456949276424813871355558084590336841689926321562786681367752723254472137248469080821680588331951189050939867238659374387853445492232014700936695521186854664013222074173411040199711002322795482411345072971930351860158537639361765098317193188656770099400012692242862692548091894774448945020932080981525981682442909958678894267748059302153504026062443382962656719985016319723597310998442781384008957072615958113551975406749762102366155095514332453910777803486156747360648273873708991705875815870975749549686666502930586481578617306389768196084846761027564806185286740313939194811623649230345441355854704803760014461555550534568068260641858778985492290529076145354901446408744545005775598042142836470929376804916421215608017618274938428114436842950408364365473301780104937014484273825720642103020371766130452631919728077440770320375717588901345943757395753534744439263031371545478027247448471182930420474022145556458144325855035906982926284145433722544468240393081269183975025439825607960795086980924182243445739520920537897849497328568763646593951593666649214992099446850818038255775731145683471434251814985434649974739972886290525430416974972829125188533868623855975979486128932569855241259586233046675860804413247140392223818915485265073939700206240155546251306145752506387942003958960093015748903430468636206186097544908311234370895308974092811589959926044679180785685551171485549022507202734652006336570120767344323007622663651859230859105785019256788022665467429642660867742796363891975274822919995012681244878454129694688318334874435033832017808520710073785817381711869530735760296195451137383941248440088752715476293190339567620496770295075827751409538200019638554222807074395660425481879049933302682200055271761103629619241976685607733791598451072272460730997429345845703310089981855031124115711596987754564097043121724385790600842837762890872440713106146451373900196510625422207774090545069384868714249167328020899628245772420460675569058899000456122954945018830991503766105604849297543518508375489964713177773300148039830578423946367442562771849020425025859975113758876889661464974455676445297340879327813527428817500329755367734190221391506810470533091382955167787322676079172942546721164120505511896263918594125327279862024555518902745204820082923513073586520302000903072537829260045069502308896948945954220707921906700950485738387907732905598028453278395488444329965919806366792305651163135374416153240257953053180005810777708485129186075650165825865685134036026654557735093792827060694556004554128337762218290279502580126141343066342327154497331115559881492557068735797040645743359916558235243272085019912354608507437410449234543393304550533772611058263082126306908547663348952407332317921450310482442953678170749273595930030413968961680329344936419236053555461221742342662799252145032460335820666591117002107009516776525326488310880537048317287437483942629129438344642580156584069420148474012462303867495677652449409801201964979257248906037211028888596787450800792449794587448721362682709861672029164333612067749034781520920899907679859108391656245172268223130377241156477477773812148607914933730259762540277549992103949404143486715739481301926470933832769267312705994363324032815387823944646452285257887388841844261930555428858411668516096136232369010527822210897643470819287541711922542484899253980868148652695101700644392251925720331169543647301107868031586872230512741063978243819536305566870852493387572024197226654507933550502004095173165870667090170238327147567353469707045680163445275244648343970018323664020938864927419670199392014429161419562550746820395239022708160458437399852017823233799344071032401981921174859875313137859076156609510833803230225769150395257823678515534640750049126334904670856007018570406638046180527257574825259441114246297302284233529122519743575938318420146464877129159946290483074583209376810038590103178188881397112052577426594972482465638914174549434253165560100015460446885064822041971195989431127159253812806345428272383481659566550705915319534804279935747109325504949972953153298057250037813686662051835649085062286658859773982430374712729044154458571018576724889339617456990897355986262228711871047424202985385268264645467696090923571343323690961167141356832073635347176018490309842600373597821723052251389275046964055350246834902731502449178426191374896419087997646792959436733768627255423029951147816753714003799749601925899905542199022624051964383998298858770232619206519618390929991933940606119507205826508930713054760364174855711262571049708580836824892163362669673146865664355804468618118286418847152689189475341835948014830027494394237854906496640033498359492442002647632004061040439341975683844893455314053302289513907488819091706183338198183779632799289173433215498302817473990858480453375144644073534372169295319538261279907699623817472755423827776852279057891476045512539876420704813282729626891864011015860648511743230544593054296022762469698864990776693166204855655548421286568803519688630361438863861079446912883561096636752664676226054979072921504594111904022515539290438229348384552806350579085471243153921752690478407922178809021837321969780134238351565522620657305568516648583509320592258266931261441729269811341178058086092568454763591126120482541115080369175556171545629213455016561136046364765443130657901824532617391754990027778282707663362570719662344303061389225753820933499323486362258689629097424107766016629656262491097143988831824364923533003458123528860040145166462539400333364044777057025595415037259292737482635896262977929926147260334887534520277289508669020537810029972246026119347210779781417970409812446893194013808823939096735669329290459907493959283153577669701032454763647059582148413278487127835273513095904040168726350920939558225710436367479874730442721555550031503268904209523103016681325539039255270383604349058311232654420862582743666490480756666629770777042292434866780813710639253667196686167984322261776089264046318218863334815269659386636247718306774451220422080143703547484098685547536077765950009389910393563132662898214178124992427012914565472232184932329418639520491377352972579367488351605318450040903301817635293713366690924243136783461350042882680545824797399310299058440774143716351810020366066981198060215168423634011244478457902243596122453104628784960524762659086951283877791230133916587087901053887884487119738110211573150669916331566067360132900744819291908413782348944593300074062614874413170936231240782562374205694229743466171331175029700989343440782430151095330313033640105403435755446595645223040308781063928083150411018952713214218036836379425063799557389307087055256979705679721382099605907935447349164464206255212117981214666614862259491517696602159549034259285550198139055288902567276569240910710128244682991481790153181053949885025973400718440891760702479507116446344495421127190842705548177957479821055664943832702023545433199322231438482300912513092679985474562526956652028323897466333153365841044951622727107029466798335908520554957906411627053532822591540235203306652602586081063264779611435532648995126923439174479062129480850200216272363126563140835963682761231378192255657517955545507926778549093983473060497861302884613619786975391448859820554777415206774074240273710178764567475692231373318689657721534982323064382206680397585465831149003825652990794874098926514579382649223962007959197401621055501572116021511972768771027374893578262545420330802697167044688420098984573717039536782681594571430169675322275819925494956779243212840151139102948420604276368234820410028251924266701180815289635269747659473692162773064084262081210607387654030415448857814785045967668043337115699411582863116133768903111177845632066946609386596663877981935706310132454122216235375625413289426957852111502721624094993755300055188921455707216633204402064226319014688478332471075145937781669175064823523848306897262192800911457209183590663549194810058452820212782549923582002428475911405616386066101979201741370465607637385352016837945907240727821919823420686524560670286396571372462251204047593292578114686994746140552558818344584098749883768914856289240079336788736184574260454833416055212897347006186804617583933753837382034775120782731975129850592551368158474439295494990383003213831722660243323489304800855588432356645994105261190378993138515405560572565342297997907521755262838293263587547414371423596612883812233473401971251345143892344728544732489447965747274721415609006667299062871478078888970220073752224272766055114239034100670027256050482020146883410821566330123588266167014622399787876997152202339815777746513814906031034031262224493646866861441311555452154878549880848097029513620230121569407462174615110236761626106172681871882810358438432382449368464473042088985255995139151621198547689547533695777888083635532642087342965754412072515117684688086280324222273781975490395170748674231591977118393751078342244090252770374042623353792688929584919726258856814953816614383198295127521070900726913597464490104437907139267456081345379775853161057016536739447947202142761130596146824448864875243898293485765892608172648004847945680479356089207252196662798708211556906479735439966554644186841210691019099870673764947467482264928607344929505794967299001716287594760084821500795221395994249726245023019029854071609069988954449999626468779272077384666029246705539629880580286363658924118218912100305796987408080710208097367330999290754507605568625416028593178504882223809505088502741405991026784276795583501571449845300623383195128202924120465996770053285172093352559118514891287474878522891658110997765048993108967994011765561727507897009675490684332087458258652863539984210227501112312051214727806466046843120702330723027702002706041618279951263176085367599727639930507694526428099634237338538663249092454304560437148233343408063226020428432893689949382851757654432510245839052384829678892108665339450202408796986949046935155374939367293275985699205584295373911228185747452232426150364035611913636284426665636967598388842597360782390797435852758548027497303174225647390145668641622890422386381290228410228955794348338220795838819601503193386205222383738409174500695906515836036732381527487442856462397445529631011434441395011655318399057900643784366773215037997193416658674798602123968116468102185219079480751182242202293740452246122080747495869743926124234774474943495031420129337874497315466948772799083613408807618946805554350638972510386210639200782096345503486901773462102769323124596273162902068503473276519773747006894184756985051446564422340965778468354773911594129060872083791007768025920295367492970875815032638753388362506179396862148544591410872602496630507268132751545862380175511591277216117528079935141050946111450799074908847958718842045642273680734653213295927310632016546226589455979779359859919896601026170415212617505826951643099531458075780695994713058564357303387197558016704983789060209709594146747894108001270229247715300810020450075059740815615595001952833455846088572753133528905028129003892086500577015857532500985713395251602162399776765477924509312819229303049666374304850953485535890000265190719372315246638173685054500491981190965182061893660656524456300899962297942283978331682543843818153887236054441528366232947301261559593261931963106923331482556711725496384831756917242809178638188239379077880435173324863539727957063879687769957652787867596132139533010570606091632775405439660882436032020282284974150464661259254218032093701436959191835689287802438025592598237440738001484690448073335824020389406068728825638051926355361954169330282672645901112709152371314953597492545748115513608385811769132366938842100370295237202887202867216817026115748796870449831222465764773618392593339144743093895185474715148680399355735460790317776624698186002784922682290092452583009327254535214132231227754451257328826211981050791316265487100991826692289139849461168199944497911787963206641394393773300813955048866546303484567843301246741654771405044980184898502558929974816914877132658187160580707833759922856854750906297081883453600811089357168786769875973186157408266440130181955427632385125411387478086687942250697252903338439381644998144927627547530270405014396688509251022155545787185438553870512131900896462818601024206917883515148395879123698048817408460100718284413278426481087997956164909786493385918684448860900596535959381835129926246866029586946136830504339672801311155840622022815230555298271318373706518269751585575764495726945459937088437029589569637941327312399834339599563487942714528071578276382514345460047123791752351737152297408388243728384984244843778561391500746627137424094666509163798151252823121084245858949717745195365762508125034610202643228982070095651292962765542936414047452836589770033353183665255215218687307415591946145793429021369535925829472886184838597962070864490643107601087345582224230014448504524777112707288585143770682230472585057641827681608295813224749310510172830413641182084565876287437228431475038161704784385625635283118026815680450346856602723834386109560337590850138171144908186013313141187507196787065541824983112928680604307870007211661078859083312021783470107022994922322039932209653513577927333836931577836072692639128927683101817990692307758448434451761825347198336444971088759362658217781405999763729361255545465876540453877348498354258247318278228295709951061062463193941510978661995585025454450654769282938418227634070059479321594116285751191365712732248975587577401150736222314099452971938088614203170427061678354477251370446378643639451526371957013648325025486995008557366688332165113319088822654272187093336845235407554905501736974680692716195826733136075743373978608897098215004209959447959772966952953848466295640357808211350104732272547357247408936982068175996439765737795216933583753834415451427031862346782016537877497555005863987185974748049606806092711682555686154971174716857467143441954518030983344649124773133536028473769896509789615976334681459032679881812743749707365587838519970893165443539388611334290167009428081898178834586383438199449721835908913844348965326777300424966781861420114989639179110629776518404074852868716925103826066258231732789505237095498723315208809005257188408080398054436627813233943053130232223650782577896960930144749374701251974881324529866129256193320886926728145978955400052504914941479926220576120946803741995959989415547708175326219999587209049879577859629871075443269111652933034647076702024272132306517013931387881187778861903478099205691094796538636824324948300056192199510010721044916157996954732524938080683889706578997935604290370600161922069863501982072205796357841105035600382148342080287176812509061366639741598608043946042739836685513205541736191466236611319936290605472596170111123590811238381882138708537690948012119209591036118736962671465594154362097985414036998225255329885605985166783684174326109053771174748070561515684231528560068099011395377128455551911609043049527879652056462224911333064109961173298678187907064911319175294978051613283346656008140451307444814368157588474028716894126762005290611793742562951528177469942223957796256148681794865436216113053727936955869567884014421560023539047752742965450473491929639195462045992266433516256060742969677483516025084770817690069914125044952739076840407692647717135904502514125710759253968863633192944741404433299422940101375317256712887065990862670175603188291579741376890546265874015374106835595145341464120122709529741005857297050313207192082511856678196977682103041172526137961015191313864136918301797547483679733099863853751884836942792654950228759075764883522471274291309640334455031899999604231508829751917346651254677672846525448641824709442093299553365480422683592279793714406492113750848511557261926646158568815674478194908376923029702321781844045404375351076843449293306209710497046043096130880894767569158653489515239999248178723296184486473221459966810580174789041649790361345375002898444204410680055077511097503190282588468836884638182568219160303071360596513275825431950997089552759620037934461728428679555598674737323325885952304134952098130837990404305626940579570030718879387225690843834071744241244382056504885785009712953573753314622918047597704829609532517551357380962056611851342611643801860961731453615719667603357494392363888908887852952407425242360120415860019648749481655389166522612625650324895544838783302477988595804178685372721183786689453336693119671344140073253071857780793287880365769226236554376624555632765880140834663155670890569041681679609079451456588662336552060867379704581499046989018653531909810106700262122195592644739210584231779878108138843371800629173924255826422854616039656669621333357139881596557468926332893832032992645004872233393553896728278545625094924125192720308154999323358291081098794554682213283967493512196627766965023206893558362397125692027921622992194971190148986300071811499179475442026449283638609127753736702862074418511347906607724341596422480856085340625512782255632051272548419587500218646981643813125180441295881354651974949461891841764726349237669967355382366026434701415598861689707859956461491329210376862387605131136954798055233124441242445391154450046067094358737402814072024165594856867976133167789147127405641039011606785774807157331632409417367784909874301786879622472192978698037303689782383330349643660095399796204412438283948214731653537507988668878718730168247374733675765501621146572724820356406561551728062794789929460420644646563247862678464238386683238097595276932308007935528941423380037953584225097738799235924442125130729051551656944096657031423847850508492788901269116262690080185657565060595867280811919130629744446177549772240005701070483458160678844083328862429521861062395602510965308161625134424023854258166738029513022245425457521573192372158680865492596388519005094816077704162665272872028595480547420485805828933699091915222752487904489146661939704302747537889953198300907009121362818763104586163520518285076102008112646761077557309341891277467901261960928803174505106382559472359936761093419229723491178951561917621592729460704401702094911491716783587284870808461541709534014315104215715615085082274731247993408200033482191366205230555652899161442246848683292275472710548156120327020489988106711028897042722819309425918112259502596479043795553296146521238998129444452317058973732705545846966995142641534740842101220250523691143799564749576660433148369118403554766233023086227449954632933001319909555855927945904338801106288756156226053972095097173524903521293428341388886574829972580804867951714475055997485660630076829465033431084095198902623560304510731764081307565779222518720185286558792608403078682637577574492138827798140313502378930614140697545929132435318580173699058084673633408828654456974075250114529918351320660412203768225592162099455003644584377750026075750942299619507801459690008875495868867444141448688915715942593956176558677909306503215131721226363386940706578128297663204423798216145078398707352445803885213151968968895017126085643149346792300422130757440082293586587291240990593440710709118643838546816130444050822583901660410564922800743886899415021854184442546630811526182511210849258257779225959004418398817240780398534640467430932125917292355782484983358331767543424886803441592734423253234389934867203013172372038130497757301336271317174000853810483676322443693301378654957647811683996341329237320223967387827903219728500679380787308916192142824699310117460860573758407263556321086220038631638388805430168690795083440822672346909301660410494231504925238502760823886334264391059936716736954704597105807942629231015367188891756241518132076243402333091710729041282053378311336344593519115491946844671536101839153568513507985356909613280949462351462153578614914943062999575506453157088178487652046950178605645529307898383886935319991488377458213592503889279041677952292121249338914985391704981066880310303904279187946760276382829773445664496643379707833293023102445062320495347437135364863693813633757472072572791209821359426292125389880815204675037524039867022750892740215259269700664984095109689416806797052650361616600560958875236960274971837025292794908968536620080139648454904207256075102037515860976109481312078908088932934524564307234477026378294581091539200773452962939304690922158276860752203958167933638137662363989317598584563841581049506830058614711909033332893857356301015671858855755045485181983119576820734578602530237486153079887869712041570094584758487509983888175103295076092285621993601347768387020371634993191866574554423967015870417103576930769912198681228444648607893992526709419457082911577465278515252714327759488540959403684068120748064350794762402498277456774706329671525145793225423415612338329167053336536625686023521081741907032601559318764234775343527683604880238171505614572753252655921657934034186898774736232370277203549210034909291106499355096911021081812720030185583715871454729054369014728560665621161735002437372781100781195175881959724778259915164150479884599236085983494404925764770483814008160567460678038231379961797444835685579857034149615242490998438420202334977117978267863141704886227219721188269220207425538336946904200961658426666649168777610113842701828746440213135397496585618217006692575039617995126506922136140618889077644482907506354621160791012075638463760138172777793182143022125420510124030626858640029233563543434027770725091578121611860860765596406203194873265501223974360664730970036489442174542790536759015390096027372369351305682914903185234966671562189609968365340616470493065793120322933534526383845110091591439509422694873123251239593224371785861744143755291937918641023407658118439984766089698155398127468801545137029535351628141827993629143629761042879177985709400752108233158464515600488292395965096759032469692580702314192158371304326393425018166363544921871965686070376072899145399979915555902565671358530544703434597574013209424025440140868962030176601807084192785640968037709383252448009708547374727592480399871216251548097537381424429483934338748793646720295255153506762678792979238566390735485227553409747697550342773715159594683618460969039703870303262294984658941493644462646723270440667355018543054470417182195666670798701105465431251194181921663335192273458472005992911330445614949334972137848051805921360281213242821542356309046464633821789280265354472366485380506618856916634036684470387636263730199396517046246423624417805015253581765977585544387844278935264558202646193794422987363651803279529662841923210276482237635829293787827904926068280779516988373682958881657562390512298662828613682964889820830813907333929742206741183395070219926038502309613002677710792602886689865126580086208494801857474621037928260938407364169903918869623298182903610215749762122127343573284763031075978878719944313628845161820392744089903704706178738383114768550896789459682770506663566567877196722181908546379425943539448427281456019937464274009976549477640973001957764283558427231546346873326567963152035205550410649303987052479614069270689479972558051398157979944960483524788407150766768212358214703992953884504903337962295326230351196815740488272513220488288820814619835088935496684948697581933208049557863047447522025953720130021376116318111714153518531158493243387441016633280792601774992543519623989261110903907251602374124311193516142982162599235039309997092609153236437320245642896700122001184097249185096712735429721647304798951887777660541501685570926574082897969888873553380255580731413210988641014736992726280316614434492469897998498452533793304498438979727751723520904474747396566663683737904029319413637633016002386273339539443993371422664741910456662879710085153995832420460742661730466089693737325218895458327445128587791673145492780647162475364625931011058288414874665232396525245765230386094984467002889774094607526080883682190109478776725976386179796727469450126004782545825784222024484363969227737349407178065619929038158535280067231454182473931524477648755370045870184049368981367140140889292855041379566144978548634386044550484221643451215034444166961361939479280631943273867297195708370711595538785076180201017024382144940383190125541891702854521066079724440851192471087350102187986612186619818657434028883099556299208277421642707783813354418098960593998964005704782653857275904839741907155938655042143403811722652603117712384667870906271277829329170247454449203397439115903066743671030634658830387149316911407944179767790646684682372098974489034281404083987581960988204987885572479772741874071849281716969254785112763614852074983735193077477903281610551686589672676187222110376796585274592521999114935923264394035806051357709325110451946593404538258739706245479774150047975629506804031102204858021599548291867966325255053940985765610018736049266947441286443176469483645795905909720191619577665967376090098302451006333823206759614110553818410322990629764518059015571760894074425561018250850371973605133977808633105010320494034522859266576430875915076015613252839262855623793309334889022856973510609174955880046816997332021869631786005597791783659341304332144589278276464319490364884506064907551019466678049691469296435580788327585980897370893087269648756784728060227597995733373987974985257402629578977300385652215644634381652288369235225600984739249684006941378492239052576444954438545017709027843224578619223144452735747048331713613786827602947937970677048555365039849766395091480469904660199228837602015601291286091789757945802778630800702797851371174799327029128066162387056508957563370826603312877504326374951287774159489667764390672084750534847495301865060636831549194809587627159022424410529953796299945203644637217396975465148186012653572615197883804062243402067284256799204399419382054678640800889965670929038520641903206063803898895100727507747919131654835970192372385457602795058508256729039657355799713326652401166037689003578556358999978610141740743220458446551455632379625338556991521511754414747545016098595812254409065931176729276975587386212144470293101416681616927635234827999305344571570478099689764117598284950232401832582305708322968069214383607819213022412179491940039629689439779140170454546851148148558544536853005372225914752667659313965358045177474759180527353411481719629434406443239178736267635345850956452909591236388803354857330629160159150048024437900324446519137324475162553872959448795382778323313297553050988137720646036328863122594700066861505477789007067873773610742832953029607604982831946113638176139126182353697255382519793216176463065632798370505287259136364849511866731762741487852151252971176020144991461379503122435174308383999668055699298803588358365490803928646331880036118525463300864399172389506861707275064882643000702017298255912213100646990203365297475918143639054093412547273912945316761207078727251009052970755009252483417905344038741491599412746123652616755570227437784825825153691185103095628860293358449619875647013663348679832032710510257065018700318431599387648855931920178975942801048757373085342630129901884526994141810682360407031166549936390896778207729357928116310500623628209608728830772535627490019884194986955914797059140607910686648443146699954737844232193385923236354329799790673017661719196948507831834527339165383839032368123387260790403132968716231423434184326703172645064727240869009876055426401845567102592885123236764967482443325567294283855910092679165575377037729612995679494003451991004837273892447260409861165858887619284843764725658169799689753130077778901037480654321210011949985727445525343325235293086264175446168213021624721998729385266773430539987072461853834480263643842795034775313601416794914589078716592364434214940369748019326198916745167240187380568315358556827247789148756024524277302035538522969991664864183395453714759783582207881124453688742131958525213631035188281366960402330150288934609685379254003497229701215112072506983269790613022973820825402862627466865835133091555920625142411578720499645862591588525240331157206639530822498104318753106591989856393338700249044120224197082499637827504787937475954601425798939189950029117579157809550365631587279558760693574822497648854824102710550682104349746313239652300798804728778004474278672982858509782576917699126281513075186754197487692044328927193969373433887192231566523269432974908826981957720438840939494193956016317099801667734395620553808734669852639199792486457251373282100645158297539563678089210056374201996634467959411230659561395251491476081853301670187940676330136243617006462097129826730260428763667846403770913540963264911399280434986095863319195778673352648578440030327779989351356396806728541550848811381516868820949245169127684457861900343851295576823745997960753019843392731853927566737282792799357283449575721719483519577471267144698860017501977279932652956298454867534941069448325850294113739955882391312710152188974185536813381044402478703593069358802186346135788731930899684246470074213379489219710380069047843006749781205751195563591568173013388675420812486113569477788159259392379203082824296765738213437948057981595450471952721796301584929405255861980990219346812838690939149807376622048137371130000221750301845375278597868266596135683067818600679313287532534155029551686239671050593394544699938906337667146098913829871507877705848494581695070064008915335632456964601871918231972958812131487037745222376826828314676417533586122073306180306888886147828050368375152338533151517548552806024644214210436723094341323085135777075304051479546230460711754083307441285359030879356929444503169360759808105873733761120320170578243271892429302224384137394317278905027159563918045255763652271190903061296189623339545516175392583446269324384908442572198322858082441656900562035591447431852006330054979355666717811276799366366077581366121749264199560655509343971163858609891235971125216611620709660767190143483349872545362769161427279146605649461894519057856308295920969565639627022324181513387047132102373468275192419398107985823263882981358780337949391500141246850791657939137364177043953821290024412951688368910910448573211499202065718313689004907110782519651045708083036413205985851927108864738486569656188492262279880394715242042624305543794511320300885340816763120361135800052147122210238453211786678238115259595758841631683551789466589968579281065641505433227873409245291232857597411323705069405941240509839765802035467557659574491990081914437621627903084721687679280136938376403190905861328501985376068361890730906664321130276598465559360396512220699644173010869705452926095217464078370927227014564147238967012761311449966914400570805505910745594891253351188953006780233436575124232224306921983331669550029772184856241498965577421186119601555843473547822581863551006893725339105624723877877141995489978398589130231914653982184936300712221714980046809824051442493548375983985193306807884034110288304762722775706949839191490858372599531814622807725503420963407839503161242186168508516381284500991868331020578346033066855544155371849731923718614879888533671203105768277524714557804247560169017451153337433667341497587123126173628877717127332686093387343434939240860806158204520327195098441101650775515840480250343074970942046166558124518504304367007833716875830073687342856677888539132292693979102598477039384387227749549572262093750597607038142124436552362262587142888020259707158329947020819460513732640831272393414136000482522049009261518491308865388536730775103024817403826365764722882331029868229480840684399469897255694458358518982584347546166667106569075327006318383048251086076636967126787557851217338018502987695525382826989245897150089193080402963152270723703874699869451464635427562415610269540591733840542056022053520398463871849350571121556803792750698761625866032962060846804896276967366644880921067622751570487877008873189178100618055090983904759732753981703599656293208375467629927613277543323197726530279586200966345506327085701628989287391237428848533728004615123146284807266250649843854697063583650565182410051258039636370324942394824697170726742563662454321386009315332707215467444136647013862360910202268673350067924390854352543018589371639080515302711641043110967433851517303008486147566796024092647684277980552930939332833518765457858478928526380356276598669174639343005312790405995042840272136860293203360477774958864645693895407055684873779994716194147054969892756211651702645195240710784838650125866332530286865878514475932381538273898320735842878435753443283434511750999682939147619079451676578323962374890420790349512272456658549641757422217980822555620257929661562981996402018312814694113157617026635234048370585173499494290463928925610611016530432678910845746194132965505335793561001475552087580833849949970454218365749412626999266276951211123998549597361393707706821467665069894859794402664797543197969860706493761163578137195532126674602449704747301486112647141753333494255129777005459683891555113615652782625047762885831871736419031064986904236194960988609149018079606423037690461195278102398575581247774261039947359245660781724834620380174317957417925582815263707766290174227438929323496711780688452931477016512897615379234545448681893132679054757972595033487551812276510831682153757486866355230316953451602751848816993770795980579772902327327991393830400105674558492556365900703326292263020525046102721180731723426939630720041762144865016198726118827992735211498444204606380681197384729932635394040073262269170057069121078742262874495440569244869483597267950792121930415161678908993171959202487363269980699244330789289592563354464694212228307676083577286982943741554096283685555004354312712775426848906013396692978177161550486817165182736348186583039487344251984369355613143792723621708438435003356367870834316729544023474598221725579786591966054034517113246365106797545359595200736086435680552942495305939502254242335297006959408968117776013811669241725996084928817183245306037901560183378592221898050323753466682582794237941428188743931701150834730311469451271027188540025281394276898889574637591111290380712135263909909000012666782774731746221091155801618955425437679922562364315730236799544078265764325492986993424849883786176535937975767739410523237017144901823364651643704651248431240581854207962529337627707588491233831689993383453668720708741412708917431566599435460104853450729569888629186723957014131165489359657970820647799296475539819284238641715247267522874901444619967188348225798074786510218986021463840916288856861319267466799403764998834026642750161024995703727757316068872810293599909144103267242838290919594984883176481558497344152840452852765155080983080784095463938071230612038440007037911519331037962767794836054664873525111479964062606017672294450487131312779833031430612987518662915352323430675730795900629078605295780195197984811425347691519365359344298263190140180849301869559403660988880498766054119965967082288301899040130936623732877782770739650083310082770116906802451032661727774125933374618003795641891770560280128989999340132410779837370544840812926396680221589794585560037467177880671927044259879184201242249279636960909321741305222803540463908606368534409069747229947933207975240847451903604878682152593297505508973622844497474782163530563530317112470950885730751670559965100606468582944995252285926496753313479782716680411628210638587200230693404755038928075562420937255395669375957040562202617407012551644628162674711680234480843848754587991119025773017991937864336148687388133758219756367484699880900618494142566842871455938981113156173672309439423972289539862265939860336456160141839160234705993889833149427859849980953454402838785262918165111337339569602739496864407813498102749132117903698799108721049349025472254501946641405823374421585861621731457432632035747681817317724050001882923010453463021562864098817825968945143635572263401599328118099886501974942938666717525190060997180367257578397618321819347457970964485773708336458467793216573120021952884627440306615909402878725962916025485026170385487684200393944854931713059373301516806221919482795551681056841669179427259947153541821433471733279366104569296754831186302664243207238558001118880044455440726273052927923170593869213684383433022233112029180858216078988596616920161196074277032906590226038403850125489400870680375852263307780603445165906133648078098263141205395795169327951597743138842218161614848358807863668839627756611206044558695328424095518680500547729879615024933921043891047565999095093593011744946112461700372202530294800607417912999645354759977389299551735279837546988832901360818356977653724360068983779800117287189530121603579586677238653734591655133844636588137940912690451455836296528850417315784795642433457516910315731651417731751430153183126896660838299542570505888401629439143307340308965321243246042842830030345106251574379850545993514917751110550517679726971459098006856008568557121985232352336578656464763115278529093660488715856481079409261772587193520262833734419263670419404809301169607880524484527352525287545471283796019613414540820920580453562275193481618913388006610060075041074139850468179940050392308997229365228849822321638598951067904757835236785146503036680102040323321552394952948536097676795803895491754091778004083293868059275090156069185445458483060151444621629247963235837257047389907556561413599721498720055523981658841654048927363809360116725255733248912325650239214912676732210613674191309751365886356180552648980213745251839839336205626487302834815278927204051807032366683359878388344789227237626223309936251399202159964999790982199530649869514146997254535916917745782158765683098748511813790133263508030085022293981006498264257148462913353630720848489008998601641657102913456375399541857947829681980948280275832683548036010714258274536351038644438604105052062737830228292106715667219559699219914154623608282405432771894859160521237405711815924108151391814515913139384051398770685967110461313099480130596308565626523724781866034908206951873830749243062883270704896596995573772443091070075075300145102244911875242170239110341602427633460580780621900674128063163438377515508415952544333659812922395488611979218996609443537211098902276110324030676430988900502411771173544448567197557252842747062874414323637933924243480556877874570921846482449705068268532397120965781834647050229666320068968211071100981750917933330601169651222516539807982202226501860551039925397196527361910316277921913837596590920043945186092741508113912581220715564782129413002224360069923463788126797190358273729782448546565804425796041705809639724593875929382035474955090704170662954931997732526226499043170761297202915536752127864610515721919566372958220869976816032064511997747435332660355757444313347361739406638036086544545784485329950145693637445750582768596707262618628071709381751624579828546288834385344431382150551352216585184609437857623596700045448288385123946025795333282619755793639077314259686730558101199312820347648982566029898386179978902265002553176695948932684703559123999800374286449438082514948484928688624967638382232438376864275095613125376256524437062549299834119848646717422919605818331936719859000642689009926885971350803515994657027914091341073174590569048810850259712781836888793388299676683912738964923314896559603959357660559511567086211768189387313114973228457562786304566657231349903946063072439171686662325748744336026090934354402627679017144760715215771743070179549705010523565147803688657617297834306809390865929829043069797095675863948048531950836549538461901352246482436122850302389273968524999543311614157629869157869696864800871064868432066962655357757601505788947970661678514189179950476175461060426370593356867202278294900228226151909277777328676631506670289455303115911274500142657581790343068649286215833678537395174411326312603322098689941225254449203236108591547624265906966718872827272452096167395724303146758594613761393383621869739761599163711024001495874425381653249528247839136737430477995031080211303549213658305669507074755651749152337839226105379859798394230036818227324113585944844785811806893664485111662161852981380586674805672037185776107474503038643881217159290221024268881866703101539438313475055577412385384253859158817813366070683399287420566990718342135990704438031600978487357767813985182462004955711019530569262924333265610155493432865059925221103999576932545196663094908229290888740086616447875200745576867378071186175177691728971035805516639092273363079459309619562159265202371211763913570385380614046276943171249906951473045447664556995448264210319772048065079577862269850836351059479390837869719782427079481120158872551687340074651089945980687275672284887894138681987358951572853806877498087406096401344628242163480908588061013615798910069911393451824992236867953037753431362205142698090090354908501480461673867923587034887703796389783676575104583164328505040522069806321685401543674435593982964908753965337571311224451063603907836727584413333948214033702226666410103152878646412034176095023807377783115496470889105450651033687487941886104101893025030647148821391210144051078470502225601069062687251499665645433352335233544276411591724112921188355422248409012373587132037939483619732348131322286977359984265862675438108758130500166134745723486661173745776525051861794092861163580434927187210574535325251870185836546228973534480603799460431190223498752090910985447385413803315465777836879421511928187085739329104116859791142407906913410625503127120467160334878683734661143840908127268189615790720582849206501865248804186417923029120053257565154526001652648345501507752282411270811774074020290217984830321396197013441992219725681345175800078387648477323072489832344430549705024739513020653542631626964845315465679505726951157734235743649995537119018615699616801201903680487917824924309138679689814228575421790279029198578931761908770164804511466586668303205660978274950609391326302387018094504452478928484022210495925078005024232445741782610501691129208464077094064291734020214446541523277845253415238534011557301132541530215961267167376750468142739357862961077661739466701879041819276666372902287461281144155520435545812845548797423068591737878580237734155863477046263835584984138451045937460688984794043895463755984789036514527500650868662382905591211020460484590181021800013467049360355962028313518338399235334064001399735757288877362095196488943895432590518675108024927096278976032726999552404439766891050816794764549372199889445754131511931627029555200766318009252799350012236180609264986682485279660116119577800773523220550934579289499300539718770650313649249652956267145656501552939677776172719488324738868559739844240734684330321268450870093710846629061549437212335770507370857818987457244257892977743335367882752478629904400356314501685131096212182036193918910264557313398957648346523969491618888057069319699235378771413731987352776942997140119035701022640938020176932625694130757909282273458632333512845346656378383389700913232129991466968193883416560193663598638237490494116524290104657976764412001798964129486165455457169370002763833139459814340840818650291467111980333431857668029479144336152965361928382680409762993537284671279077472624563933070694611561093468532320572154343234578993833712262814460111643162830276629082393777757476540504972392157060217785214963466701865763347384262109566891312682321632503130379052584165264205233989673871047904507433755793786257201951122719006586959851501792983420676664772030616311081917312356624684432525247517457076956502859994548413702167482058467851304183326746213212638073849694355117322131373839647500304205126665957145052274088171526952480113905542124529704344349894495996760204576313584452495239134653129920325771385395767990300329003156770500626509151729953524913423695530289651594495709513984384851185137896898728616915394999452602704313285586249862510796216819183906813612864527943323592114197692076562055148185069698804667643469404160426001030585158736264503472888135738252384075610222036357572459736176603775974777824909048401171334627950009268328216024223834022939462934009096477671145024418142093134418954348573906914324381812760200311397826308467393548649458377592793187132748897266924749934224176176268655649014391834231403943374051434486740273736147585294038761036981167418565409812434143703126251627202484485475046673568637109192203400016588265200366826016861124513992019968891217392019718283344675650233615615943990432438818547660649057012409722908403981955671911551800287052262867867669590620627120640082921255159014961845976291401889907716469081104199298693260092979632946610703809068452006754273845727571939461988472870586623902886298158906657210484375455740030885753627050844516109452345310822625140577761228680235653570930484285767057747580385827206496279076851450495720918684301148799085517403780178894053596764495405682668348984106773121570774885805432108836637415390385287939859466108189719610041280225355252425040090280106698858338506187084922635839363148869773720286095262287996867439578562115363014238668803077617080284774245149838471766470802054593208218074455342945600325919284811459952474969923187838930865647930707031806911238769118580448096492837354479143556799226911730966591482484018481416696001109114961355328028843195688755705520556390563087351160028262040374917549688287035763703300240041575354513963959592850319812757635169608019193295998360661282511793584148157918007831492778067004109053145305082048477956007980766846077879432515131777265422324246293746492183671203541123247236673643729143847757229853493396263973757875836686244080453285151131118636199934118974577097618783270984934564760077511630957011002272546132669392638501429317410062424771504377407233280791142352777608905146047894151135516955972908004311059528252367989707189231991024438819092339374136356597381057573869287027729747160349803820830274432220300334599358350916720646539744786242902214071240269194146073499006812877410426163169579027115497428518672427570467471927780642723753041132479862888987255360120036259220950629173278180315331113362161297756810883515663499860306890885899481077938229676680586202819805506305296900815811544560311670340875002328352171918356224356602568668335968271762863624447135846198884842192044945431309651985253170929351184037039849867805099213713022921152935593505250893616783934071489932390915957047300184338674659988336525750945703686863800782711671203294982500884422034576127225085879397886398011632324118407058617318109785000319215495452518333885338059835921761982362706962402230329722833461913400425142507327759123308367540609813286738419145061163474868562746751957623827084194579024129432862048743081274653333986047504569417343190107211303567084050737683890297617220749384749388608090048077666670869800824455483435960290687743341624065377444205159867183563548039884454829842710675733089908463730303145082056609748569271818638955882716207584418586521959132359793496932744856187709650109288633877688161559083546956130840378791005966952311170523651129009233343146957461437536800199273248151529328929905960139619792352813989188434540635747384620369567855915932329812030877067096262124291847035184742174933564182886577680559420606809400044315955722270792471866823410832280644904478735506473967724428446308000374841862497307265293087097048511816413426682814282156791813838705876730787085026842029549088408136080210869092554811171961129155899272856670507230137132481147861107986429674896537210706272828769103811082796062373922433318122556712492376726036169764172290706067436936829935163473208233401072591931852418784340915006649297071812909264112956624184816855716232722655806117244529624979451809031150382228765400490270877363008647830509349256250618271507967259839539900607659305414424230150295602380942858674342662531240941757279669228894028136843092166560529602782263072927991886723673294271344473762312493518859414112606567002814568970440592342940712405050803215794322450101044558871198102629702487827772464809913200213631642741991776230249984783037112786096170812171156173197210753322773130664268969945723528333435472087594114367241781860004632372781849354327965391182663889167725656581666704003936289640897349706269247156965825356417916205834216129917146050608905605908710023424806538082019936191928043037992716367863928058588084705358133714940631964564437774341800485876091713957211488104892484681313273997162865497112041246526057941233374119792673010936201462467433892655072573371257702428865732961987350139860059795220734280974315486173142936594403717903234438355359075746142690399173640439635564744204297143104803291194719853471725770237518599346586437174426422244548834156803387027492378203120337206082219082773499468638903651076775537755367463702341131197721899727896212937335530598994067689509661145108535975560702739796691221047161715238579814143909910215183929657820792968373439506152628819267553448932817774132677906627907072060083224753797970881904058347752694618671541709112978852129945227718390088332026232012000397234132471512697171170349646999167892473875287184851239265441386820431447564324499063260038026332797129882834475363251031532508945367920139328403841195981300378669007909061375198930020174245778493149027766312486391155342743944347844546988745513951103960781647629648165219860235060827177409401382778547194651226974632286320797442173271900961926455349274925662038322524692581954580071245206095386914419851235477800727869248323238206947947857045921609900118168302270119526996082467375562120174954350672581696011387974178100364280075818315009055678093152105092185454348307766060985295520439951735078364773298758129468661712033172734418411208225442417772407036187154044515153253383151962138464252425514761180081969434527409662565294219310244316272870471316809331382016585496017328348425374120024351172264499542472526702847063733434301814670569103890277080115808116359852108174702200420092115181789253599208109970635025268308912174643018832533334997971661145744530850340079943984119104602405761449367979970474588445502277742710618047549090461161869313725762568279142440242784447340231699352094934773468916601024796612798864379776693015225302570622870865937445960574936803223132737881566042205993545382933375400967857026043417877028002839618473493043489612275176084437784089791081360466125729938577061152863357033486050875133603724060789592795302723245316104201206418185052010679189056210359498916852927079600866085279407291125793674268702816886686332652303931649921958474568711655252752566771716576152286688504596031494032610535353514098845848850123132401848126464698785285098082342671026357502424020718971161062632443481925392509183680152717391486481787765990331903207364052564964918551251517993810956437750547815561960644857761056744007564121034714518142199679813790241213848749362590751422300505420577690007487452541762231119341160186744798839995424488599582037002910264229697024567352077875847647053895776249195537575154558419788605819110626877610657258270597467747270343675726343298728631667957607220894884556714302027625337142661155376641450085298003540955268693782289486102972856651816161527020987290638084241594395781561611095835547362754008551254260746765313908745333776002425867530879469514206827426680412533567786316699691681668658547605583920225746800991480133323344884990966826252873122246793537567880880778814129603517179052730656195966387415644938931192060410008150462609747089602852342259427085759669044461609127800312840594741034693395131543579752608473632336707843074440155674682662462148501175452547591377717530608611707539439621787774355334936231730746754640463251374243561373047641334185344192173729118611273347846846776291240077008256954082171482140990149873054077538875734993346086422123263453713653859408165020105113626655716808400962238518115018184585146778417117149105632653126787312054997760842430012331586078951494784142047707900176769462305087653486454380816467067835750921122698167871999968600560193363805610883760194186448999913709847230601760206637401756652412640675222223345591435282509535608609045650431044640966031670777768487378733678738116525662591967014586377945050411668010004853771219697987731105396441405372110072272218115318986815578076153545519566370339843725795051247573058603976918734763663223159522844874143787232981593131627599328677369029905888080878106976514171901514913662002853744253204032197883167577041737912135342383360720214786906109508354802761749869911256923512659664113770220844647014296721992347625431790512762241487873352511814463616943450675289715221334678202442262316281160713803268990834196885111195592831548050735825450026649507290448007187835416190970462827190388523249410897289690604243931136673774479727745248032531464840237814537187304637929161713415981400419529246681468602444024535960705652168641968116638199130245550906900130874489321133749108954899582756713842268519682882687756920645750411909428440128149119530947944610535065904707996785608989288133536904418654689169640797833368013808298737538461865141982756785800970780404044975532132121581504750396083767798823848451468386844282102559593960233716684841975928982286624028437464725421930212217281520135624314513534307289095303832807346551336896401647755282034705997459503108150267513084585965298778989663487261811626075455506982921493914280279595615558267822243807177802972198820829098801791364800628818812119951629996189904686295199828725670395074289768861292808717335008841330586129269424385827312585861822929032763278196597064540013032381688844856127837847966299625744945229213129744636433658401911339526461647704681905962170470034232728506512228280968997643585757918853863157092134554010248682268213929634567209481375637183162367878924584784396335095979213948406208021001449694079446505186128176802517958481169214478479390038439392924423434540708076405488354781885723617416379036415512589426182237574690869373309317667262148039881483730486978130935824473863403815793490381945219336227045227862247887078017090476053394999016592645734096915922179203269419477586334221524866434735435859843474169169478661768397003129745111449835530063070475610692924623896064349914618876075622150874338911778670003592438023002785214265617680749283073700494675188959957597586627118890443112879632479761411689157154372486408072336977416596386267253894918919003044042824752802464187847032475507976340807452404332021457379872036658989773405930807704247320439124227657413268109315445605358486275141388814419835574623196126239103074533882405261785820693866293521068801087470252951145365670404306824591564354917623767962470222561444484688732312697980860414764688340201100971806343572897461900985426667805916066205078314718008864363829429181886539547605707979638548439381200518253618365659476476527028095589430875762244535357254317695390794394214852876106070787334998253270250874933210818936891798917983177506844863837866088337878114691174649702872361432267194708903514547364018758710389496058696203382726691396044625291302974503792048776103032852870831550870469428405345571016342234368924163091982837567550561453675056590367922820440123900469322987689187672169391633835450344185053415687610976137683712908788993448513606412962008183230873306947608034145566871390545397052303724374651475007243163790952034121837782494307584909746725956041095550851266839760456155792080890957249514720044206116595791226879254268612514446379282942562654798838675077967167466412247338249967988425538899401038216090028143740223728547734211577487880336064707247839772124600448651866869544798467228406286525769993181017091324142390451939976565845447989456777986084283076251772689743326612098118764147358299134236578404000415700549161502036205068945832817631758018751208103186636938124935266112750720003614745142319966208735845209097252198286021846879090203204300852252410103726013463910579514825787967465370932354695615047422402908983515700023023603453328620372951526313260192563800159253889354307572123048461848136447507574376387565093795569183682648901616916684288995354863913251823960401033226183508736775188225956885762554171989341320941685382623502640620701850471923743685306700983005622021383922220785950056460058248604841465703189268127675852513508214228377653421596532527944474152803644016393310077989338076414766006353709272520576796430087655023202360024904121725764174482636175929500408148538647584266163362594231207367191191619175221402010881251424498358877459958785435606003306059146452188166346127935274774453614188590372973175309302037746780570907366490652081148394208147910320076664894637769325789613401271469492420974406561492229579023329928565808476196267080826567086964862223243639239432265619040992051939637701676065693367112095484788034278422348487294039530766822906029016696642609299734667359058521943849661282917843057470662386389282840524027412778221375368517297636717312252771420578129915119686652177565825367284923399541156950054982983566647939542395847085800645815908292178564469633985513746283220319446246481335689562175439327084819566337669409591993040855870982138504552193171212465355063842021984961142795524079261297257558411293291549359968867418659373663199610259729365771235108368321441106006705984414856002912489395840487314237927180662494613350090895029422042054053363217895220192892258477843100427608663978460614481102661075453099604465702030609866829294806268189753136851272042277692710985679839171355238033180382626267314904488983830956742332789366942028081748875957930725561486678875896418163847763083414661093608715292550785664204552366281397723573513880825027362911040570879736530044769889826187436970782561965977789542798836093212877275718238756591471169854551931987914885858862588979365390681451557045306047717428949507962488820001759085724754088479333649620001157023401327887210264244264106321783286032094830576396165946597011465812339329508330685571896797133958586396182417925449502966068939799184665751704287667699778607148437229258964906468687675246653741182961627125650125502780407714858107208284923128435819600880415121947505036591034099767059193210335601171361404557423626429014756563444433782170557286864450772096506102031094738311476394051300018373538832019021588562961234915631817941470603750446437606606788891107404528979206827041236464910163281674054110800101144461283742219093878108303512469173129033348051804658550777851678282607566761470918804419045422573453069408505060613013169334545790107399324940278891801185356014846882272809030172910560684662431225058011093169047335571780134192974398167667479916253453609939175035349675989634370185820014987108638302329326292089891996890183285463090095339573905463558759339424304994702921319606635321049230229916158329778500304627812997541886653370396916505082835748985480344152066923327021577267642985544578685216305113954325249716695782279631558726589957798562820906119041164614119681074659922255472248691215115952706915745082617780917145426484134745225093486376202468615377911175221059973397036735545613088255507553486676710147892740430435178368107034760412474568046307409219664981489346053514452303428188411645416091679561272287558182610287782883918664886645916040894877748605833944960221405689164151151541019294386556861325386277169887000960129915979239768952961313026077593084205004448064922219706062900206671097472732824978579361082640945641440123472318859246948534367538842516771227937590140683182465094563847072542145039775333333978423814085312658336363802687998092209329817977739567178198907858100287743663582420007769705719224781564737091839518521582683983636822959878216875756613633506803063619715582052712974799519856638681203512099201408583542394843630750025470753167798965289058693413350982790432520902784730625835892534883962428851137943530170852080148225987835404630524608298956107924068906007553497536612911538674812119737463586937400759085718706353515957546169010389870179273331861526088067887636566413101628003044622526397199735326551994155488345797730342712707850218910638579575891547259002697348703363488876292906003923331666959655574137202853366840637774661860702732178120747674415101476599568802719136890607890419397158283555348290783350922683606972485675305238858193505641578557465463649833850998433264204801025198795982356152626561620643169165796383471551874138712673837424788987683849164512625298548277982137205724311158558677859453771905123973809889794564137918597041711723535762580013749440217921196146958034922884189849349642977269572074123814410526859924451423335516516581812654649160302908458232479118810168268643914168707314298444457105281852408924727772127436183671939401750950096886773188088991396814812691968679528561524833812327942173535783910447131641193180375635447178024085640277279514389919288391930109378017913073813696356951317532640157363727352141889036322539048690485538248540562656102433264994300019236188504477528291578138906246452768270782250148522551246004794349173914731083530905106370635613178285188151231224207729498935354728571801444346388357243558709171645523106791210515087923558597588005523363706655941324477005942155076202891800210695724796907800965672022619299044507967272220171303132081554559753225868791781204692415347350777709032977638256217458550106313829891020874598966146651408333362394302319353541447611715183496893340055779483509279291147901618730979182922313084454910579033337848396364029522116152936499262225769122735127930469036716590517269442448661162177174089042456610735262587686381824682456572164798992904548888330281104975998799384977827255148220144527942869511063119019214397565712596251418515295079565893904897125435257225712223243002273484731957145045304973238421198631847448366223451399099974013890641376145008465309354842605027818604790266129419841733151897418377801642679904350113909488679972427159971913735335666665396917299353456977798634094153606485202842224068824817494337466119035090697986552466330287986964803164743148649827326674932843426402235844675895369058689732362120688974010971160588790691479583402214139956675454682209197090967404237036009362910498586468202466259940784557592307210700400237289677313559538161149175004036749197517293982028680366077188948886916457591835408919290978801035871988413016605813848167381074086110415530181697858041517923182908630130909501884274592013337948965075764796643659883286418699028378790627048156435395198305503969790219570484492897531596585216164041643846549985752978838415245870761979296020379060565675648127844327314587907333484627865420994659142868012911036790819631720607150641361251013374063331296152489488496378088032507791089210379695886855291793538226385738111975460473451023856553710373303882019244314196398688187778128741722126303037987851707047037858231494097290581018884820888943603421356113987978446687159698079565167428221044471262180916656660123241569895861101711164659179441796920422582483905116177053321908373074689396414991091849329082787443585743361011114809636225713345743222379932723341475308936073801359641764920967411019766945210880030056452453232152049780772370583847014687501134531663070282065552326053521325722769785394451791978595738968819595380523143374721029693873837200300151196335678945212824043260858152909266223255552215051971439570314864701312936726484618015432730904593147485929097416823507009051677354211692161810790979638769913898829622532005908987409634720583455204260978257910296966202081914650187104450781362985693450068548385060370472594245771090905828991206618085143815403350674394125227082293603370961467277764527841110370109601652411420684820102168711026104335457356226192586688942717602787823169819661953680360389549918181049707254346235808822658042197697283123303641513264375520024887726503604960620175375277799470700795398525307867372641692630009763829298050497260630571279795822671960384676399610840943610250307773093046202824578016674652788897152688846779944710194112758011972168379086433866551340604092643195113246371603397399861939889639813268725470113484000587944551400074828355110959450487210891472810172602724044831053568519109017695517937327123389307759406777317394095628373106877413676418801746643154448886632471548547585589871871125107705407983606346811176469199789188406363168401628459226128566984549657714367677967533189426608200088725891519629283442251451975781155339180834082470595308032444873978284864610547855140843281262232731533203435532314694067488741512534950125438259187417553222143865806731002261152492654262610217450181802069668797097663852707291500882034432419931041967888622650459613955333513392064578610666001928750286733781170125307370845835945088133959433724348245862023040160582071376840436663703964597839955681645121659023478962031330906256807157664503122596485327560082159925345437053896718204152301662120294612743290341926505076246280461635370945599512336901430527563682228831126800298978904531313221825513093851319836284575440871864211070765670614781339150964815457543502641320464397893151964556359651269788623750860592382447613694589627193274524753912360844032399314627861295773283170440038211902532379750565249478440262791860914288447408718051975563933135421106535576469590029740176089459438385235560147307500143703725826164787144663666668593364238706936100705169695247755696083061710379879811514182160283603177536506318081169613414465671324664397311782133671863362256509845102260780874164061055714622396829557783752696481494670914816372665484524752760993169382466315738911260536595560036013478043039328540169545313176803844965319735064275874913144036260742007721375450332456552227405447753530472604685475562297440989913004184740626783233565179957336415266874704462113879660989141926367698388343968797511185391850832387361479886430591006921702669675058759509428018103294442572300679922163456960919500789312780578100165801940231682312663481891097310116902184038091799656904446332002365200190643240900197211690924567806271036853094743205377674183292345060695983579115575112693773625556708703897046518819341799898229492139995727933296118214996977723459569432111042267784322988354460735263876656845757332260269330539504088812596146382469621551729686260389034730520690549236732955487550982292145708624623171713348117077461645043040253045704129152261953297405338093692823884496036187699278028970337803575120228380396059983861094171851312148783242723788388764829073676674006362992894442918962251103364075252269723220077511325378325906510774849378211379085154135425790199380000980128383180883241487954375927986916230755108590972644987152957871463468169135801456032077384319055250961850124457232370631948715233902036910473944123442654229206790073758132453996698218772143286341503401916836391098188858347674511101125179171803488428597999669570343854108410917286726698785141833997598237989085461233457284385771559474407246089540468079777612647211704863124847682097884642509645928566693535466400949084761352129223367610718386561144819907419033017424698981983155180866627582691854221078805653191446873001122463916889816663526651815284571971058442277931616508697834296066390107523749221420589224675835947304075650290477218435343672597800709582672063249859914045209010029535605745264989951174021723774540174812881356015443661686978991015883630008389700333973963964715293957593081014214240557588961879530313927694504760450969840829315450117577455430717552934295813306086388053835747181153461059167527212697180993807365364208673792979834004493644736598221480898166900276223453592320406595882692998711002858977110636113970803123563104216729480588689109605904083142526313228149043264111959257603422026028304592246878990027154892276916222781329910342573503385203663423099708091916438815362881072918522586469055293138920869517352756296366013204180095406287255288092493284023276761187560877738449550714299373599361125271331069029407965473342488571247291432923999065066670902834765469392321169054530036493547910460125935662262950008363462873601126242783382501645463574115882016152550569057066584316772259350339359085409408912512888369133250537854321649963831216708243621325753603749282368398992820524441526704494979074966099794706851680556088614836776850421704055593618253655023502266911436882147967229917385852815900354167972779713191722342616606549444940796205696663162564537099897436159774028032683424931201653356541688282301277536761168625912768387384321270940754878840153691743181919088409225853222033773296353338320238031614784025150720546416122176312495222375543316344453763683506630331600283519386081973364110027696377849312525866404681474367314675442126104869785042976243735602723510336642560740622751881805058133025835914536173400005764864918191616189142465042281430589194718677307839931796768822150836533693116624496307712170481771416515491135665292067443775594884536245783831354836755013964504175185033143282655852170031792388169337718029142543426837825707284812491588554194332629067653511121354042172810192579298209694511458004442993240591728476552813415826050487568598893553845512485167658398287074703455008704373215668831296489565516684735159715997262979267565225175974132442773498525237525553893901469690805349478536525383097543679983001167124104522291643380351917386589754203262643070025361091327266531657372462842911680320408363559898681802954177159960855048377212933738922333861173776258646132576899422479283426845310021599237184541474387382020879817038865045815104718308880041126945526939763234079399941766575526507952513677078496894024419692283805407467885689017582085185609935393798954359322657958225571421339218397517970474679262098370992180838978263365479644918024919043019083582286319625449152574232367726746964353388850659213323961811367477361281666879078999727738263458464873221012333303567077555745715152029981756428562408939864701928847014676615933318490987641068009966002970258907794015328537220676490104545584806042387209277202401319571119775682781939883621702592083257486260202755342486768053825522730480643684676670174591373630422779576990707412944105197907654138457874368227804000936274989830766908513003282411756328450602841775814062927730249228810630997950253851951829319828576616628813171555738631002881075488105308026372492460442286479146908456438005217678279757162492589568178920146311879849428345004369507330653319878516363656108983401370106674663414716160594678991773013043580140634137940886726623767449518032022795069841552677791785919106788366833317453744715658890954873194175671624711452051751862004807367040946717535875531986658617602983542003499562536872320364612622900126665022433610156089391677574172570494097576960709711414635109792778440512870473531124990348736541764918537145023051274143215215599203223142867183583182825325865829741139715641053509785371044819087684032823113278087722810618149498850620417514944460603654044523549637118424595768447800337977484644221627749384195654582932505610181624059701268459651160340114935825965622344298358843211149637254790625792892398679189758175220191600246023958347264606473699449863819753116657358800106475106109243314761608801770345314591512777503423683659861247135307568950656135039784029691083765247701618160219854250407877774923756601015984835719211619007599279290662119777054408420353685831881206446962170412456443722411312936173616816983709076935195921861675690563312651318123702681679722854675274393993566949080505345546666558276707316884503045268809300583607064155825460642367927343488856050002443643250615900889900804215923784711754882904712636775586762929627963717387239774074417309671894039805461064540549983490906931263070947861871966960415915449153019763117171592939332988935893960495573019220277472564011743151498454830819385333432619708144616481741636531988458143974930602617368330783665449822334709095789838995611223069389276547945140031600340916953471848509947710020501554887895517894168029989248241261761291829916677397324479338868869355760950907915561373244573804491502453096012328560770129472388745962856054863907138557618121463965606153397799801224067171008845137470670525674648456414373183307431059975279969205588462663076203268244185631268650839447567022520288487033863946751558168994420625144457199879077763356267769754518884637111743738149547987993442092764125307602034279200587408170176141785141153868591370222218957960423131820203016851072893466815524811133768127133130799579508559800101808221103948077793939199123523864110161067013007720420900100649755166036382817513282524173904070380695622000624083173048486435594202403535220725240615362919702644671398718995291981641750435258360817642047591068732197546397499625611690753351588003856354249144041762110130668222712658447338157350823542500713727339393044202611064268534651279026701793623233543093773256045516121496085659625558492384194446344788105103354459693976921218748449467630111889180933602389380511185936255815022760865345193672419111807870042215266690341670787067650675628215103807026173283630182549724949490479104963499798156407569190349501251341623739375336032274958028465001104185727647846340631116462476328977141316769635444399207853231756491038201279665151353108918440205886357578358748274687880792653076896725351474141677388303343905561522063228935164707151092182429687642048301949963393998967884989223952726515977919992538485180430898082758249273615328094770821175815424841390069522057360132053604284118954993881512964719251625372900375325776312227807848647224987196848124869700038098538893122962658950070452772225282434745957287058960762619117070015719706117127737629814193508559555994271516545563258650301273564260120860302924887410263652515198506656168128013615248541371561192457587966901992281440159529286294933475414555472610047391384492965527554386286260792207602281955097299347376233758150616842970064745348916733453074143711399038312672617223461693381627392231317325225122608910255395437774403247400419822432102275762409602712195282236610930397645805557248021222546579096231669378266663228111290053874871707067334774784744493504517773308105552256921633015290195414415513587929823429250551692513678886512305913869680780497913235339020208822608375570621368588031760876457568077999542525489553098781541370853349849331002124438233304606108421320611407248377299780599421585991470874457488781734009459160590761281520265390222011409265506542350468608453462990731773460866832466570154127130356261283378741060143844415722196863730444549703563069534884710284826540661282839644529026447422624126383761315038923265808859710524993537056505189781128271144260750826033681848666252129417772581975575248520622837429499260120178858178758694653647483593130030932520852107642739498580698505376300484301443035884739189257460766230409440452830125175047554342431425799909333342146710531912428132450173456035877476216709577790040941938921028437741026123177938700903041986020650569072478825196468300520918835685592895729414883932033146260712236174127215450332666545496720839578837231807079462776622759885532809510197518772617811325199133809741262242251170774271091659756806157397062605156432513890482568477630220126130555332163044991643344279962123765925880214714484309465791796960365882031156283711036292861548800284409581282192372636975476454947257410923591290265353163105467874387746528630122079600849557308966297867108772704844493890117670416131932262985388276526764253761862952690685485018016231523110917157729221841905802838324652236921934580651786839113776471214228468569302694916287004420546797914815614368923113950476213693484601906113745308309529658953251750980292573670054137629545518519988929572308099291988915748075551764868170507853642947845282260659645229159155003142172718935045208478882879852826587498790107392013179943176007791948127467266775654058404604439254387371574126843613235256048737745522969682295943734288863940358977276984741296414567403165935965445802198154105802040880234847911209693754609319711731665961904497012724308984834372545592947048100563708866769022210958570837462184852366765130165912494318408665671300056753614612232221996196360621373080686199390537400246323813824270807378875662960843271764578740759026608485506566352727760764713127255574902278049818072050734249578021255265049973384117317560712432141432793765740385068787156997653497411139338396459826098528824706438117251570366569674769326075097749835790691301242518396240119872880551438079002913680415820990482972294453990703313208943702471386784881548793718465538705668633973725638025185627317611435919623564615123363925649436227275436939114661375251586904279565839246468791190184277326883537420645263961721776749006629261946664619506367722122170403968491796391245271254435305224133033177125036435323796082051910116781575361622401360680821578109486844831954507417635982222679894216170973487480207462878160624787231493649101794772081009019239220374655672524335160517727446481343939127582664944637376631246589341019533898508376598766705237223134860495215679130111200239086892838381614079197002451465272297009944488551344205565094158393627705003102323017935324600910801594974155697811167537689968444997488217555880699684576585029438512936744701811247282176141234737437773468686961657514804891579327918120437386808513002195935536942284878803403851105431809949705093074589494217085704116632444467131068265773208616706896732480128756897578961250395735533997687596412506655942208657263806230031557828675001731447664598222795214088048248719676730075535139854358217878893415809657680946301281595582192728762401687993034792422946313872133292357564499800618278420002713450466342239320606719917180609256888320801242763828436002893332926869001738684577618281293875638683229254777413510914836855771968814107520814097995216447336789459309261431987667472176708295990572025862476390579710237708649044640118628772872654367774734736989596513954752329539137770572834211651351633634596585738464863113400232650324617848354017065870450634281879054125374152849656031516828765569585021894313958625240839146752460116690393155912102723805791897880196740383432601225580279238806152055554543188197594008421173060100539455603455946223923575886867708259282340545194379864151209373138547091331928632453651463088892343462063384539930137893265578739098901460492288550369349648886912646308212734524357825116858287319689010985979418197033101122787739792470679481598907198473236616047253657995741024173402494914373188714292510993258736793414403641880344737999859105836956543202175606551804905033282041030116411296608610113505720250621141546900725170115889632310095014254372110369886173072706489899016154117506417619895449308353665761596474966651766055777937945848604044537443334736361633105479717840984238689108807928501938014673754913280542879162463867614475163892021621649961511481321880971129553075719007794949062703077023919862529806226450764269912385324331895178928220926457890558999455069783084549546122128072829902316359686216151479722746669630524403685915441209931348791820304542139165118762242257769749914156134583842930792858139382805141238929712996953347342308795266478432462941202701216043483207147390548328705909032419858989611694056469227925848653112707980673919335197613747410134200782807442419201108356518893878477770042895039052855467552525540617038559970224191336710406299250662533318593495889947892149946526648894020487510670168667754357709776459718787669986962444121187876827073466112420570281023667698495295043687127252638519209770449136874282135151725837614438822223395502342868636368209343750519246566623483852044426538201344092791585460381492967788094796615661082357455377048250805673136997364049162448960038529641628111431317464743397653742806120342997645571725278956924117909251807649774250208887947641252564172461393491002801835800543711492762784171455945943834360651133897379495442512835141370421988560090661027387181941142264576974180589359233524903484003347185836699576368855202257968866469667816831781968092228384666979158643871940867316436596186384066753289549410864588690705497680226761526417229926316456237914148364118243658371571107024739635362150674543281206093139402590635377532197854655062855431427047576119405632862989270883315149635654441696002799114379060565299115684455193215693625832762648319547536598496332884806864898415564932798317295387319850324314523764004365524001665038605915462318508586250408435044035139245546628741673522526174971820219352828777921672280709529333595196073171561529131452641412728883407253442518859057846347555169534757773322965408106214108486246399074808332394196437257977246553954462969018512268877472004799391906831542617354360156323463310008950661847115183785928274337735506616188837313996935766164703633493872052957086344739577803659514452438722052077259682414157422942629722682833611785138879069620575488404720214326437386429733274073071940279691047767685422152369575505586794017874595196614887432372218441400020151977561993811643938452777864204689832967934168781942103003925957079348376067350288667038087294231095751409484073182064980955402268704457505312437258023456975565352158580257027752745589075975375906259889959016686440489020984465871933353881854486524913264304160632697290856574307578863304586752059406895924654615637618516204335908197388089005868040890025987195805345167616360835470599450119928059449053352966898012186082484088862046804314199793791717710044720957387359720801085348161963482036636219766119265997242312028081658514085276110932689809231328434067963330609066672008947121149694583862242197136770698323585427924247599276547336871549757698817146715273485005816784554660797898194028508494749744449518356369896444410131828185582935187246174377625448652786726168138790666568707514647741279834333153072445392189868395020948646302607608023255094984610888110572632616519332114289015228318793328300889818169767768437671313585237641166743564103771179360680767768721113277852962896511932743532448244883307945943482995508046006388904575814791766976367011377392605568302309827877056698365792516942326273820951359207670873092257082596413913873080383140385968069599953511309065112530163322169491042134457426155161308755385700820972750213239419015256910810688137692448850148419798727029178420272817637089903189553633808355410748254171594313030569802244683246742481388650274236537748457346439359409228930580844455206226472163477028620233166630253650332307922977188853037431826577349685237680931285002354851781497946403196333372301888984894554879788923556277976521936073824606086101692025454679706766079997098461980441986829802242875229737533233531732526065278172436524493457766054992012102537909835108237936071397263424670648247841573326447050177642525406379458007556234945577092192742561587331785877582748949145114630624496443488015303167873911680135059921505428693102554512088306769836664526489841909500347458704047903793542807450671951667932043077104393752971452166119442278683358263244297693824695204885513898756886956193384540410819534356410269846999310785764641890474722405574870255170574599581082525982682500707980720474591568612494584685701429240368184373405184681895449230389560648586722153388355700477440932017135536260628701942114363807605949597435638775171516096955070383794968451698118553135280340948253471891398255018420781878076244723098126088579901810272937487386838485250888098197147150609207075975102659387349909739178579302394506640061740435987523128301068844659391993775260629744119376795441424114106334741861136362894109323412262576385484549481443261786012773326020478633153012374340262371244727766604684668468207711114661767051282271618831900754662481528818666616142759689776942456254807132308902975544014890213663504118624628417117466053039054897630550485686311424335919080914521582804614327210690553157194491899409449248728225448536114697666552982793675096463136687127498185455424817998935946011970550961201744090233922395214833521654059350240866932009821548231759914116546736746896124996652024520453519346852563506430794695924384966141064609352490778550092524967720173789631528402007824534413679876116880798563880772793663464848776043570757092181674020080395513685156656457102103541896305283806710518637790361432872507763607614941776833225960485805288353861210768784701016588508076882824240985706349143997279138975273684941465235602197016976780724842024919804710619417167322199530565224592275824616089648275713820666798439236941757681487295545074282685342075174169835192085576492767847770536085986076258059998768956203875329311783226816116375557091103477370163974150799531492268506978419447188711951622673823288787507950702549583481233265217063109522085888385362180338479543124162898636504334246939599796028514031376151012057299098324903070665651864326877624679790427980662025055602185889771187163613661632532476704081629894302663644230020842195823999080654920791283373809068173331357375111881791247796956963806057185508996544488285046304100841247687929952033422657745291052484541430483361735089423348689894700634528046952329513121910624189502470117048449745619270304426475783778149068728101204614253311473325165996534608942864874893598905790135328140787960179910741926352269201401448809722609993068451624864415925370673756867013471971502765458199169576262539298869742814256050853693100824848387312311547855230288376022317274246490522607916752693140179536873605848504124571085597078599431061151873762273512187104122542579002490258927311325270982576177943681261229759260466320270780342714880339656211464877038829489995934698851785834080064208285919882861014712102836855560262923834548223198198001423143106757380873113583627711353127123535846978909908296390617302753128391774650412161192802713192964046150937937823127265570078906546938565214604589076035292888515719381813761585871773433482278140546447468499264951959334793221593930707908314821804948443594564889118368739458297073703674680329650392304248130761034841775032387646981260690738970067111597771989664302972611149704721803838561220001990186733819638250053367835771235288065794074630117775332813966529843300183251633912546841333213733220205884744804447720895918827519352101998739999245131417707819500565535177086262151260812933171113729741293825778443847973230250518329122898355360649967928716838129051579835706012952084393657500867164308706644576941697433812937193067090141496220567683719789886191835369965955679335293037509803977485014415142419929449720635849545246148030507136814076572108942992846463546085294651109875907348207187916308100289207511356348009694968615252978396612566695735850678546386281744415628564108501852132014180835385956414494293030394744678368414988575027882759279530551250909150772304170725168350667784844255109108029343487909927077542396624192038123924669439225085043671109990259193981387634580906080601309587013002925198971113070281481153255307410731280634957296508731311430971501729725453929820313754515854646205149280566456542671298086878757100512552360995992177610426989013238409642791220515073392443086179613703404492578444417809741471587123402673429631569125914492973515485423319137331974420976278886995725271961950503319285347846778101583602952689980007589635523929101056780732245471313615249519343738499874032532819173656967901485398838927465492026224219005937370991244691896113371908700325193868244855140936543334605153934686062024808816167022685266587754019785522487051336878290639756624430116048663340460691802847318135964933607249606206312700713589304901711406627070918977957163102604018752602827808330581727790774462114881959195981200977114240556247500559945561054708226396838123799733514285279299980910030580838822843809618637439514199484333864123050730385313908766055613727231119449069268076021872280127990023882792406796793639660375211256988775731195133568343322841860207742227027526842292815024137197623590002626832766342455717889533252848154253107872321639652280594160062571556251877537124870914546357935931456581965129614207154033166554130845463062841617947283110648081791356270549437547509895133023677451093240836474188580283446686092943415380255532133296098533463835562849129440335519556976182652416750797068712529906805917618686613268831870461582498970240233720325218430922890955890383593036825875066034641932925229533784600806749429299494069401463309253863538549796365445384289403268339604424076901694154041611368535884852896090527989360559469565422261563061032272421702198770942245947334117596083790950532890138218487136669811363751163987552125976339462172556238719998787205125916385784435585766971299345834508573006799648126088613257549442307205045507477514634870163438915479599553027494294526783392066552427821230742753361138225458187712415469713781716755336285969735150193129974701736961797473449378435779720364509111407770055968319083730988491218926525704404706090866164983733211724097605605417807334587363613696083498483427068028835084799496359428729928902472442378284821473137531108035193008120369291965117212391202650582904613974877387152963764751726924629620196494304632232773413152151121092118613113511684282120575446444274074556927804189406068065189171001653919920794200660791034141574608156187104337468881770174095598714079917134145881305739251938148439782620408012102889476559211889833233640054223250707570757731670437399536990868956893427983426860610246764319965988985046118820681267617014272855705832080699502120929211619107475021933859777066383411246699774187329701648131495983786544444038455130279218595782746667993307005532779127628065493800866948030296919480388715047006414701569326091090287099118297845579633642877929425483420931742259558204682247757716528879009941496719941146852292884219076854320127227761916582946538653824989075974281905689578804204959217998152252142921127017326296497319736469747515380153067499478056755223947451066436483854205944401261914004557992171192229494870605789710454587702769810400609840410669981212558847058895682667985750156711872860383472099153872243313866212474531973219340277240220127032913919640887078038102187615642974960941259017397295984099026507478417973463928369568192727528985365982863137660080072610794070861442858791093000983942055467413281207162501264267529034953397276799941510061543788809187054595939105531297290582131970939917977163547714187577956158206679051712353026770778704796264560922426596960375213295458768140273789243407196702514737585327182306796853796394682983514342680999295255257045146779486633439947856186501255283497992997467321618692795102538210137563594838572269116250287928240783552340347107918631789627129491226696478801731245672935589892602653190900571111509466326333670934422260294702551107159099252105409941522800965370900945933993061481487442424265658955925236885873248605234583089780576334170905680897264152342181925832561650949468414387649002303734718878437256792435338009627010849998043618188475180939724172599979211584544994962020788269000315715339925145023107870231855695577406231101235521107384956499392759781523257264410920972887560806911144933621129865638052113897702980515575349593322402080059815952080398358719962951834367045295838763645073545977154620154202062243124859209549361430229646199919353222415193446801755547354803255936299231316757890391116972396841452529652606350797074679391232592734130659613974099888583563284417529200768212730364166241573494062535276170956111686915797261902045592028269943152515941391295895908031890153765318821298773672536020052507693757218897616800695477343741502719894305982760904342963946635384840404751835811662233060855149879947876006849865851279139940858051999131660187777483363277166379507829689899505542150766479627215387967028169129934428095565674262021001461727383559242428219271722059093020638994537851371612510641205044486522153936396104567656378805363819163893522518594461943720166105086846127352685422918155562264624540719790339499359602938177943691210175082137121789981751728323788978753328068639178207695279641667703878224509172372572759850145203494208336110277294757555251034814176063083952221490637243727201750543235181025197282995179046720332138136624403992070478863368779582666809638617266380883344003112485062642605445130653380387251419801647130033116797073084398242921224628247335489572381570281629816845325492333058567358566769533981799935427425916762250288048185633688469511019989580307579033757974412378901486334413460890283389201553747804466561038607421482323903061276611286883473189044391178803196466221369696791346327926804349666036799764937784229491406246708890607185633985646077325102043372367366179423308826282921290342348624640443695860872486406580586891839210248835462324399240356181957281724510599437304165441801181174449091879846405347124545782103978879054350604696286300215961158397553858093728260012804005990738346275148276892890148802326384409989428507670924092738183848369461580548713665677369344975289279980896223742469242135794246748732225614188543318968139104394848150998338938960636618029712616404818791184433255754611267160663818974830740113222945002194477488910101436419516157142596063395080763075492704022817107609860356720021159373129157418994971459459262073874981315938839782670240311388026423132959272966575955208093336289466999459052225112969139013609041384068999795554445782769169908562651102549324964297940180951335179643439853725026945982157556918427786374136188998985693147331740630469978243589242793986922319363058174515483467060661703066135421857924158309140177228287628838711020142299136190035756406101049362731367622591680854394670920083601721903593891881231370992047146440438398002024028769022144677704182022593012833086877756629744248611862495646316877869291772609481999064614500601179429064326862307525031277612285446214218126968956798147029702286511919295094856322492616507116006204657861745459880913248222441195319579755215057578721654633826732721362797279623976769970709329580294306321190037817157925147845651062985033145584341583929696043245409578854342582161698775522624410790206382856043088606352186989477636085127450078932802066489462239969174020031934320665999096131895589740026277095074859640536154996668268785120653517714686863494585210321031556572201466816321527106250993127011697702972528078003960611899479429946091332432104654152084765778093718204974948396005848669025800999834871750828164090422375636182777992354346533623528868599119557613658433687697597913039587579697908371558291983356289640790564338455425701347625140522938306951550868251181292024637430014636066881346496242295928569111066504054076278118193928067402908987220892510440838867927458949681167693723241070305342331336334553551363753729205088134361494245584105163705966551972422274612103290779396526384882174122480931040604396353390909810655260709103426015124321689462985954050562515525014212111229908439277606293768007281936132334977405406650570612704445961656103361334093907804868524783882654779347731937927156057073538284539222129743195604294751139228644955506803382659332944244392077162837660764427310410353211033911364458737200585246921099813110602497769131670820607528506049120017620156751594561338254663448484359011414772721559522944737774160838647941596714434705179616353546257628525336153843687779004834746763443115976149180792812066222112586883485147115937178280367809765343533693987326782077583302945122150000464739633352122304808669029882976957411499350144161616025311256498747384945062393299386495636795826469943205567518425307784000720135476768038749094585291619528524131384186976736323097962397878217413017872029537628300026521186592445936962053567219144781597221263815950398186156336745574610773883883840921930776703921835350215766871504197022123087183407039652252972164927540028761580353477813093162680633712302638922888428980905633084315750354180143103287302667352986385762837241706943195911236338649204135366051187546834279341559792894465809625795050419210562439169514194737502904092333711566544482521223588672817207485165886440698104750510271823154226031519689718996107131928488990037464508333805649004380700228815774860599187960207277646761708039500402505110997332508841168218694330973813555769118810803108771056510681215261694093275459006541278476745174363460717051855846430146870031906110927973513377401871258114847865884616100560620525482492459644184918618381031108566425892921672681787004307704274285446102133187076880064596527015700209966381062737431479162389347778859002213412895060879109220755335451007915382537424166801574982663312739912263028029900998535625271371244778579305949693572879528002747134974995912217862789033954538980022321235205430673140202782546675613778286310502870310023568077964002761761884808778990326064151215004474550192320199504816668274971177881342208066037771665606682196820515652418386634690216668220613777390074831902010529209292726422392883654872366444676750478084067097720528097800420248121463033961351853451460058092994450827214797312422117743757469018776489375777391722851157838351547212252999580863201238020122222918572599247444919539200248670430573389325114511134921978233971088998573384546287199135071916771477598672545698917726490380992438995847536487823966521043829309542386518548838180825599734029623779462978851185665800729107673643780080223063897580733929928004305315519491172524810896563981089603868209142485702103593188133359081831307758243048757150393729587983943257749204446418933528894669514474620610646406328128306446271895287128719547404242028636806238440657494895990322638256254953781369298978233897723494274627297743578529360035238512617999923336999164237184667228278842395461173328695368105061179831590369650238930594240808094691793940582582170368725977311738397339365573956170505750475886234910615041488606161773771108031122219723933429952096298432668465196459665723771587124547574812503304375515272639583077497731326651731858842591919644704528784196495252430752200403099007127906748162278992127124937867536049913268524097730814576875013389486916817169913383030298897082462569231657158667144225561448786522975044187814629055012105615404822399148058970065331453129257870813918347466037059832698572050657829668055515610127949914244418949624391483754195779966667676909364810285833894231378759554285280035752386850416504618024644975919233740675329658339941689093792791986133186600774965773671107163896571047521861909635132866637149759057722652339272796161838878837918506489551104979415698332762210779547637632920271818982546068336539701727421077348226250724783672457833030540166232894886405622836918271498317317737162489608742389634189674716824348987284965339846936650911307133744680650402283826804454703408199401689690508391337216638823229924481911854075777676217797621334126925734683229958397495460064060319602092110123354034602285773803827547334833658698727718106504234914489767526160833841813918192075556137319340040610673400125094835623478552607553991672086774441146459323496915206493103564030014773007289674968898227724229876591930847562826979577814868407399138614367541183767924042909156254897231694748071665866080601533882469063334276571426230901942534339927867511941248028433797747609862017660842248933611166607635514525439869447900907303595706856896876392690497435703257706294462014137032392630931157556520953869991730220795190487976483827724825148419785395912737119190969963437700866637503119250215102780955653371083990548988509316950247855318127101501413329925660081488876564599039862727181078034700114633461670900463117776216476270338806819722656646606594068476658937098340855625087135318635990268383891742325619954278055592612509552591484257090574765119555405596434158537097545823794452988281482569671394728716973111809555303094990853818049323736689745197215156766368797838704516745963346580232236766913128609039046668893361138514425385676736837350476314974761534904983728931680417162601947770623639876441569744076990369707342685400605172194425208331422388499234130992253604131046835702072734805965759840692615263570530423800651671593102325689438163413042403159031648240288715120685129788642455363247102111251907654888481645824144773251445072477236136916412947799105114057286513482687240798086057697657493538892377799029505026139692701939490852996588968941455048648817976335136926028186088377179072151050207383727197315141976060073475441504037180987082941108826138378285556090023322286724444059726281479137663374798952645424396859941105635659499260779197419807993768357751708927477916341399807817037690538949851488472336668270152009975331271202589778447422774233434640933119621224797603480152860141944520629877593433222999460352160054721019436186908744485414183947836075462420076700490129473748904651935834896713416348256647655071961777524606980519900554119926697227107728722277167655117610370385818308283542643510230136189541747367530187246080402576936034155880807294241090129838576349035167502069418868274381133899598278536263744573549110488629543603198183322414061473651533128884274796240015250585550180831789210058303242806192132054456731451568687592948150744878008734905714702581381996862139414356279732423999850283872314850462376372266639343607202510152085313580301320331570167996742947436453362424544191386730978081764777621825204389424462348032228660709511434995089873854283110269369654023755117707209177371231597887833039960149913166532536252728700771222786609956156999020651839679812117978530542708488711933235669695223747427905550689244500684954517695824199825135575946563517355607957330486329770869531740075821894510362030937886738172644621188102277598275998077001740030977533807157514325131792384850380777848636284709824005191278890447518270195816115134232925142038009985955759422581726525388621612229440329188148966021799436207033939085065263842829423125358552133365241205093932289533692889332939539232357772223442010006457031744772205789232703580054527045374895652060602871535924773899480292281198419197706369661792603537675172340026480774738894784674530228150176242345993586323824498038071437359286471095085437858462067246244750771673223574210204603576504536451778418415713898653002048848921477351146911045311731858977455995783188411544142454355553003901604489972540771017376281818450909339568794763475879911148745699168475170881881875847579492614167832786584273403529476961866158521380388855791150897010231985864054672478476681400540271637110375497947870271941714904580139451875779065417316096281759914013933086424492420385295428132957392961906709285226378104527078326267130290052915646042697181734478183849446070723965791480454951722224596367418191498489919534561551886448626198061724691828617124687582201724103923419363293154036915134402128766569253327667581985616137692423031984695229222680177155191627900855381051961886348258267591029775702114046513669918118938641554294334803935430103235548882633792798739029313853496423134800395263005682240262606497061617187313310934348412870822125606059323790891586899843826293338423209545377849267689467871814247601686700746793962160086563243280866758874871619460994978392138685227391432282721572035094347252596555189025903857588461806074957907014248609390111158433974077997761557400519180089326593308391329898263777851297487022637464981353399464254712828631539929666736436860031767791167538978284679229727744558012379657534536907615557114497067960334185724553534214690905819263588130773364981851798712830753874635057762042553340436467268413681503141283705392396293213541479312711050695920039624385055986103071478329126750233581367931119730985802425262757435216274738023984415431843309337267154946980124105523403194488316411547526715335478260961813953077300046504686614710995302154308253923212170902107161066748155392624478303185420930721737736978601712214337694161818780767610882947040218606173450148991386253484348983953994823186024046481759638511927919609471114827582300765628375337769229860487029381531929262641490548999974232280284307654586220502652978319858608654212159507610509248025787254057254013608751560386022797306397191050901581498744034918230557737223666513946453671636877944864211020311162493667552603255884081711031768300243382348286167885455362738920596518511873261140681813628388997410098779844155852737626269369436392884042449894086188405529330743798047442868059950282648109784088648501878567908474733962259127758559449681987480192588697694290870867092328696792740333662156627578952659767880043821185395190424734448847102840344199803041361966133198173807123061571590041781811328947894136854196607321064359722712605971177207438949075171103585827066913190229904721157886091664143132915600464418491501334971269705170427565082831164117142328663677881299282959892218405004579530087736447222705081632112591294094262838228159655226923208200703416268022163773777897012112771992506966131155008357639224634306965671195632361919400844475535639275652702723222824097207600376064278117926960658096305270876421981854368124631864303819632760258166085449414417844623889738462233012923211107002567578976759975014340787110363471981768751357814670389033906202366276373971961611511051274074606019183873921185936687827241041355536633420779407826094590363037700383818317881611945265669206288208754005546765078053072956130015105126214402687149918501477882710321481949276994965975378551580856750269586776807949635269273527845614111377114483026772923762346807092465305334368537684634067287696282280479504212014560034169173740687828005593458599372336890760667946435830693272591457983405157818077625057959389344129483147707506298732172812484414605592225662670898270099855327422597290841696963148561562948669051551034074252281256389912981858522389183447785084546943910754317857640065883552078385121832918618410520878905442189992708533972077963898108621552655772292495066005509098334042753273975522194606612497136591850212789871942503346581230791752539945335574952535226740445133108534249619743910984241365459231858979387737990801479865933635771885458489056303777445762319301604781528616790205925754265607219495104336760992547181488118822692507726988613538210461559230885030971152182761614236408519248409509841231461584325787660093818189791003127377449159442767431275398333997169545056713698078472924070116102461724902732928899728095238152865120809902018880543382630019758361551695491298429731661664560249376870274431090008167502638495611278961697449839334264921398449839921153619106800980282065406877365540926831284928012500702307800561537989239723040937545704159207042100411052685901639718905161384034499901569559632939964892741500706906780647978126393774290294064449196987383334066115309572263266890607904805660008673299645526589511589586181434515600551345910610278036998374504156807069994818769545411624813337569894548157390676758181244057536670000069436245911687441344640840150262282954547241046051022151068938884236979859408508963669607004472916203079264004778858955049405180378862232245483244930231895944860378746685187880144001526298992806711974650538852075728991038817007925315910355352649339593387168839004197888853335194853473861521209593358876195504091799278051313452020401246482431859679262519873486842216698757154839802467633121158555254371910691981693890661357871779403197715499042376775060590689280510859031018303189574418459470932256601815459417350287112600558431833021324110786271955216708062150236805928882857781443407506088503298351630427191506918122923074207742011355080247657830484971399820699165809457250262965946074690369477125019151979971680845886177563287982514856828006524261240213948694823283597248458021672877681997218249093977297603827093101418487672670638576901684709211654581128829507857379369821579652990017422406704219542315823098390096422648562984009699370327098232353850861963650923730860269798048044720186982296559125624696870058727709171280939099849003061120024188376019836917273680266720144173561829278081691726298504491526889418247558111536450892545640748998088512295777218033580606748841178424171352995633341642151533352980365540843323626769391389307996759260821123946783758532709634227271148447874738705526926960369557238703497991426878473552140283238025448300049563899235451446674554851723169951744898671608723910149482312237302176149018531727977740962376513286377019331249078796766503415480564553624268897098593148216095823480774690325056305396673368179403082470596075715079188623700438131043115766563067431699898188567672886767286057307711803570910840853624407266246331966594753227346316533623171644066339757975336185903470689210403973423297797876479907691580382093265649894367772675783056082914400851117376976423781938352075494700210986133040035768692851191472366116512640413254147873799061140032733907028337387677287637069072880997793900187803295449425093675380457156073503108832019100568590363131020302916364216265149143987699372887455015443184592308755172276742180011171653195836018241541805990230368287320036723867270992508364624855160796548189766341709805707994485169430404633955514646727428722227410629420439198145943102968205398179043458893233439198477083544858913440862711090543496969282333391375201746209362419669763490964777099783645771743619054694275816534359423333228929381103560161137553830351999880032758771475045069494529503374646404522218280508493722906411345801777900522933809163655873596965771780460354511032635607570395193750338047274347224828733533459509786868481248357738268873625072334804731682912231287237356642353686329966102104757351110478833302905040921494215919075965371383225996012120508025126241585195146157691641884432436925954251773095295344321895675374072620868999390476648132582703363445466343341045483300055597890985639910769201334678551660174056500275033023718785590210543974744338967729139903750559762969425206303152106610784110419754488916721834267543575861395938149917991514145561187923318470184296999239337582631946443237544544160146484728058696260359769360400051450658432967541003117685169584270995658010047547907743862866463142177408676071360466925321055988109553209882660797319535096751685647645436081797714188817053277249489859391300403521031083979188598602875531420127862922870358644196595803572391540496494554422927359919835664999774021343439078744058869100520367445862942750667181610890734604067196635005830463921266085709368042732400453981211651687539078063444577600211919861796819788094197686827177639048719706757785572443461873591362206246064875294827385071284920806303899476349120231048305627028060605877933345780596992547415738706994129816585400076967280533978961549857258947641690101119931021980641822324527573222228344020034876102510630739279515001817502431568553999289100839022569440519128633927160762203153414884302890902753235347870827160663245499119289117299594606647470344477454123780874349551144097414683029370947298951746020392930100877960974327713444892197668859690405382230471953331188825709998459868201145797596204034532370937876789170967674898317479203508070454659619840094450959043744271574275225816269187549410849822171616037952753508793773038859138277444211662402789731172806499314459371576657894225686640780405243951466705786256434236573119895577209790759731659772892509283785524087719621846986527916665397778422352071749646651766365197211550965999535291346879425639520137069371972066127005234382845622905891932359669574967285533852671017700967556662481162319031795123450527317308537569578294240291702091383355383065716412177955088084620189820572690847581535184324014821155820148342379296298907212032266772196340067075357268793193984816870899466322939453924350813561035242262744874914056280854713108154976175267173476815746748776325584567583692919634120892324853367517996717834101192293061777607130606518757736964088774510131789548452192173879682640390098750721337853143096442659606440352917503163631667414720343958403102081897134092909962391345671583332930804483982693125557111159283600116376665998360070303948153079099677594593942480170337143093095772619260856597378536029853505448878742899984074004085393719570513101837630183672831214898860630700433741180976041448940695563705947957869694472851850045619984591916288717382200188861173797400455339033953100280548004941380856974829645041619940247600569616327701653739426752938130042868247674535078194041971674671009861157917062537008196387529338669194636481931350549430138437916593768052151736684312084654075494229109976027415620067768001795466399014948945002715710384223193169542170519823038781754702189532301954401184726246899585894466647257942404435807772617702431934188554050628162250942806150541006492881740466565042571943124304786154321531059143363947872347783584293799244163294139012796069577135917348899541851361672312262292085556583870138417857229115476871123960660644236360112528688090238701035855273470744557678607095370439264933559189016130267581444850736570514373692185695638887903260811001027552609322460889168811450198093727026820499969723308124940530381220022747287825986986912919873906766408582327910324920003442131184345409922482843525049076135535165105364654946530011207766134133398198439758975709378984809187686865572155919882705090487625869213142644786314453725315915913278664428526982922880363325395468542674230467200944643820822243511134440770910358751836694106245637164974546218524829337146537437138525352921577832412552876729696176536679408927604533828691226313838917678335937915032108763150624399868084194093065368221595996931029300517870956595343000282724509307416513923516744714897410846373537259062404990676135787027138579754412418732205449956246206628784233226056781867768916114812516934269887124269072361417280603632382088133859518209007784163266834051038905701957014084802386379350649589974427058508240953144816938255740383468516248403180537137500442959309458727583953995657153681352610007022083461554673641045487498001909698529739373961835639866731486872999910133453237903590484605307901450452869983773463886026739891892736663144898476186677895677481880283801120570256664535843569742233788749755225478074544132749960871349137042574245683720465876290102451759984953347416117452306008531669497655394672550085775626591798027330658751500949266920142018150151607087861318645423197499996586283863073510040618740552817731353427989227571057279082922586417592573203733018915716412661660416752430708231192310275183017523919790185742694693529384228926309303210182735802804717493796830316785441457782371216355986512864081905227378879833160744871829369531715266244847738454759053103117588865378869869281780650681996069008633618219829562143028227714653987049504428108353817039869787665981929250050395589463468425570822983747064261316888322713489758036014239789778462614563173074161896158305312606812076520714797851414327086789082102205197846426189820346377594191176977631179675596450074627618978930714841591090549245232191855148908885883506240954437495560721213606920272848557661303707131010169830425953583252816312385061481979908443810784142781860705031945950397413425040245893161349676068775884176376668453687323706893649834581150394472310103638386492028842844008070805615578272599936830858940628647655230929345065237894164545237296779808388810039412459563525158359230029401481284430215819000034137626018233324446677422794221230833179570549311868917315583797575051170049703321076908342383423925697308535975016739927777965266539217160127368770697781815040108240496587602683739746113353411714705326378270620448712617118987974682326422725204485424357779855025634566944435694218395023595688355675633188229499659996447572264360040261016428393369730922986418169023342187952759087492824441262355967464477651646906145979323560652471955095025182626570324122617363990961440360874558565024941886909520323253647122706096240265722972426734852294748563514456517707872740434424273810432841846653834853610579914578963173053790038087707545640225452091689462120006503310642934854385869612356095174292910618033950877249481006707072460396661067631645999069573718064923486058536272049353399518229549449675386549526038944928087468563867138862874993149130913550909648271839012735412186402869747351816792137440083015259669795410451481864992223523497687278216018354545927796982124429869279849621316412131009803723571404103586830267118771154531998180207561362887179234677470747225083067291022357045458615125250870548619498267601403641932589247912641142221674054251451409723145851334625958189777202509709758338135028291137689260580637026705875047190220306421325459252097714315813414138886792625748729389231701622949519599840690492587883984745868835205328067712206232438801466796879639983956310357580992204610670018513097875161753087334909828777441426138197920124981805691525595117035155559772510807585352502082551387023394326667803679387033433533264699755511323363119802960669453621854390044160694734093315877712212323902453292119200097239131132066854800190257105080848751893722785765851159800290146543254294863915722807679783039597008911845865727230543866444649787643238422664734856686275201669361278099108380642294155073062688626211046592016124301603550311800436730095311544010128330035314866094530944547651920462453541600719529424511175410007741215895533218553206706618238720208953861443810687993201743785591111791136977848272614660749606400975772223089967298035771478091926743202443717662080301694141403323536020623237716923183183948245907166690148043237796414247376167349753786939857824704859580218846377585533328319869955693040229014592777323936531239060576636487322662083393482300921805508662294400668559757150528379142022981457180190476134396922179647832046464208590875805566714454713051195758819117657735050441499548510921858387056111015953756581734692710347118700439457690797184423564795397008668439981290162891423011650170999157104839424284386139475767217516938593602117657931514693120849102918602884746423172707288094942480355023923269966385831381507280437923427735577283451999076801341082770514895793030563448031636131017823641073770628128699541473995242739476019793039820722731107863242588426028893577744796277780148430777060370737285643860624514924952917973812735639351216075500714082230615904565236474608344290840817516994569322153769015866021105733957580574314912175118855737300570392529262176513594767075706235288113783083226023994852667743340910221263758073605422823901348991658541781100798408529828058633671529150039805005480784530244174590140892475425496252618893203692434403372617558662533889283307304834955472049021671332170968287479247531654332431862509542864037787209021292729647460372008785168468127521011725165448021687959102632904423561109800653295121572089977165677271845430575420524279640101681210841602411254356156967976157241819017423018213168506502292590622354863586342338245727134879475393514540304229726759099487729490066872883537800931879446193316270085869430581894600776276529527130652877076733767762662667119451338676300503170555740182785253700443697423715488653414330232773630282106732974351616336780249496783401509464905268802281684593163403296061530909745382168925007622593817597862948509316827856376338127587533354016078085242262237367313446493216546092966368491393338476954217149221939560326000665585873098929054105590013809122743572145514484300923985211632653096343980986114701118269142762273100545069924308983228539202496823007505296176430148280311784603263807802224791571007574024128338452561061434561138022829061081698803900487670773037955728001353425769620759558006468777056208198331904012709458474059775697347371810338058864237961482007636934660699379801215651589396206619859524271425213876439166377525908798961479373398084317946104856252703648545664130808661941719064076022505628232261267370764065282509578789491645563298912006205788719375738292034371838806449361690289141129685208283041937412928919434220151735892054058363781666949836751199666073712486119322395504655574980828310608512041464955727984693640065081114129583807939293918593763178618254900084962640071624989261252994861530360027978340186753698861208664569295395240178009768953322481847813253304435163973970436374784678810854064858843898857901704068944136229573123736451098150925298096685263735231449676353873235342988238066100573095959886483809639052545759716635075069275723646175765246259259725034554279074601545150478049554002885005774908204430236639004146038640912013546530580844666362192344078219584402167189782215211633362854459483980742294921245440484159643436427285153699245276714882082665787362976207852869331285954892374261764331436382418993626987288385777616876722267508899634726276496746089671673423383861737731775199761949898553443526886825363297206393266709890363082273853277888866126804172987654630887034170668359328586492631626662570404115647021170511791635602491990694182577092380270604720788204067811685861556563877533856300531020367760886978417047314325782383064201537613039883533388731923718787377180893831804844567790976366951993998517353526882663106089674784165546088169916301522173385932216056445529401142816685633960954877138520283539076116659391029209464622861420085672353511261241348980109357610426836695875833518106449323050027286800111447578117309098230001149461582438296409474509906228665009379623778753306495525109414096704026521412329405924191551307816190309226300219754363035921679651739755309645488459545714969906435665705517223749081993332044034520598709521198979735806800932774274988115883581541832889903018976258570858259374004262176245249227631128893469338912880002444729677303462994155950399387647306978820571173211411391354938533005946590349850205862194881423014209318552142778208138056502865961492800350475197508340563884675175174826597612061617747931666099308071913314275422791089609521281973959379560934653820208894073226363965402832587860314398372162627265643048969547417995306284191840204639934045022174418084435293308652712853320895550779189369704466035681133919762278084532120349555918703059115804707892525124287537696358582495489010894715973276554309041958457031458842923654884290444175050903626156103753276702057995974917869370635124592531153153194531413495916322266398590789377215087233751571457206730910003894544535928307872443747568378773816020520159541344221203575829958037965505281715540024801956239573189506815674256945163942713175536629337108432526569237594345418776752681554105618058979539135676995043536073734736948730854408750412155234366095672685031099763071347494010393045636323506183953227489880492415034956970999772350599916146240279866470484568400959373363037186298254919263449472819274363023523301580298482213588531749241440317190233796721759615037945381925126393362479281088057045821596973163393728347676692011851933966658277090844440614853443037969336888787703141321722803539277591121702569306941898930105416387757014195879777081671074392405870752636483786126877152301888879156944912551728652706817107292497774621737230327129664650813033275440122100040597948352537814422059419892592168647754255201700756413892722280837367121601272153947137275960402193191036764217026318685279287016359010328981658322484736526321363706537949651625963170100280610487116925386775121010348889836614691148170522221063577952698540626009452872138788989251273394393177049186026210636127926449456907615080902747064935586063988919311623826017365997330014791525993553280168906335855326420093075843056417488325753754303123079611263876619646310746233536520810057660964427979640975783773768737953417698041260927335985124873524275194351336785988821189399963164160072252075826884386442272771571650596407248679483442960782153561186578889289242589642235520227493910152024430395287938609948148257035467403001569283327173379949228707443032710594830669254964707029441443985760456365471023508393030566862309893622389348953865012980589272984596488970946003226486776187794277119310311228190476742524135192368580921185889296362273876994513315878682362802764162766932575301899801819990163493943792956269982571627015852001724223010906221400384562444673625272295720212398510228158420785261723889358889416407397711979500776614398781462453050271338905034704612434701864655172388304113306429963747669314657459977349224417192140165125411933959014042631901432082875868304493597094673698466416212243908069286414327722389609386836797210269674634236192848901417001103437413220657093705897830911156280437750075208497398446570443635563383102843897529298507346482481843136659281839163359161632789739568332364265157857990799757815688785313668130977911306941748708456184740165898562268565856953718287507741956512699165095820462633842297659828422826138896112817353619819599601911338159177430393945402637693230604196463614765298235122912194637863401261055135722936074057225946476240490534722845523060316461752370025974684261232047123308779634599403240718717412843703603744541091219800846221172732720758996816945756798399012336815953370215766583513706445788341529553654370763630518686371324355984792129448757520501675574874344607151316114275271904698816373127225897768333611402685583807666967013940090767239217229425565844587393057186629825177146308220176639520161170311689448264385552680838389621609039127494317534142457318809198725824859483301950480393617803701417917329750215357743476719196086521465014417716382480106008176352257743775831779389826210692821754713560917475444502137742829647834889220911330358184791003518591063754067543049580308093275664948812333301770050443213808840248975524944797195186654925071307922377851414531356922251721648065387405396631527735637905075397952470135610428911130298727778735673733480617962155943953460312696890750356694363037636521480897850577375095174540148922787187629452742820847037465677231260896027469927602748465782364535524713541279841092095085201659948419080455971063865120180369054637925278007510531529688120556033872056914510138431418746107203906528108449085651519953164165245318620236101592993573640121937640610758679673089232812922414434235132893441644811803512689190765354887738617007947720137011783577073866828202620478242977112860606988654594868427933541760003174731295497751294478235694250563725757069693221248895617897535561598854067983836552707768676343937974201511976234530198487085143788221897921659234697135138936023471818118527705480497530023462680103279144278148836375183327271776640801049157881722100132264098672279767869668462967521754856374383364193285673584992163522329527100692577319000553548010207177816305729776412135550780827352616014740958802898172762870292503845865279356837440821244054148992348990633289329493568819759287928708856376913547184160957468382772925317474509275986015157841862524605906219835738271532959203743265542047745877677182571224833853993126617005562343187391737225469778166117862962132200855196779628469959233367356649302272223098071435272686127783359877992154828123529435806104997671342957392460220768655429558182839748966927026198654537126439822453270569981974276506773353466076427871364361147247085907730055285861980403043875919595369464762452240748756327303959169556287195458835492815097917568275704877412462822188903498111834909740803525014764697437979310581001123446025684760471870398909134801733881247414984403658558075551306687944771599427411538792617979816862101169652826170715528650656677183039913231635084035148916714673886875532278161296829027034858248548658698033558874276593376181254441335227123723650602945156720670904666316264615815972995114790862646585996791422534639570557116386522663771171527570431690329407642698979416541661583469665646950623267191991157283144198402190706663571275631416609510229737977372544420222533920543046061472410949749117760170888682878731409214553867217964709298597604956388313279889968936383526922445806669343719535619685722256602700739169426587600218280769193104456087562326703724648409192404774097013874493587100173658760246999679598508927156538465892519020354397541566045249250319425195420446703368178704193916323579683391860187075825798364778989578645009445495618736103380741402771943892694285339647569104262274073430271153461570527998678592061892564865728820941753870008194716861873134452307512071587816866637677061162400619622231101024734422755608111963672244107236258807406137921356288503659849321033265537811218337743789007724012451239125745754340077498183529405208077893288162498914831645748516178516210995343863507411873273225037953691022354308160516127452354421938305751188877644244280699128574768694695228646707865486097388687370895658431181734418039585185217488000850899594619905924847351956323697743498748476859444461464381949458100684421317012070975593111740941252084268878538627419564668308956999484681854271852631855709405281887300363389344951540975957552543377311454758242685687015208300629408114703911046846419667019270840892668064202962081414477758768193895540223371994709195840570289832941038362541772095369672005916120493135068879229625715403175004138582573512556457044617201237755755421409881629216591790165114837989792309691629433707289119919299197204979219187911043999370307422370736971354575936253902379446695587988647309386512915975005118418393869382686112023024792695599321521637746069966159021930731552652771743039397138051638415907284449554874839963865990357790815338737678833833107281868684435269792302223114789062226612652561561748252575075188950858310444927901512774698626012103584364567942649943131471388623693166365604531560112137689120564752370128626642013467981844688757810641639534658565378396580577292359972872442546232516450424516809784926033824800365387828617215879182479815536034898449625103106818381376557400621237568298549302330659544627398291394959036636498268950081402998776142407812654269263433646606339023951633851194811183494336667089084315988174859766251822638065454596117515961593372929139667475283346125874136234229857251997140817909278253040136762780275184100457894308151559709272245601299530592070531106907635722302719536138150494334266096197978590920459371971192987945844433040420934164626832019889863224438030633573305546866933674602704677303229479584265336785936319049854647566135074021689278253887317803470330883829954800321698011699137543560965297605171103669714105221106971052282915992832606978374019003976217640913650145980556515262218512383770975433086003927610279893515189386868094539384537950628655828894817977139962167162682451191500436909895408987044264082497721898309707310796471424148086748135667907296814278531347987999792955650473465190332938991985376653333192368360322055845022129814659743774092399451726775488171898191636883765581402013168409071279500140253347729786344811642585705340573559341365792353166922598817179930477622821251863495581417731859007250036603719986219671476701024226926904460595352437338597299274600590655642676102284216965125595525148902506158771266975353431375387334652195369578455796247749710421397747111549131575478178923790381447503717886293851871360216449755792424396318045848918318635442405336941755410924618522938616373579139329683466178692713249823476450280465963542846127379533699289891794147731054175859141355323695127074768736693357637959532053472094791520180018924697306098463576696006899788812395352143082243170700051603283039322875122253624346538637830769705973583346471389271959729136646548826339760243767527233923425366268227258499408985298494353735408072687170192171893985179824503506629739446510091338887491750969057387863166449587015237365751296137303843574773859642392051530603699618070514439332717526052890985142744846543843501951058845014689341835493615637463188994851421020542489613787241994572997891841479034062011560683884372162203863023054651675880121100828027741765165887285371241307562753746253048991951798801023047991811847084017791340769272435550456393292263250722664236098883582676435566454496998799069631977355527745338893556512196367446337401216527864025936001474073762840789491315105593756727036187835082919761784799610726917402485437156076140497926233490905839074493861419260351423955760025770461334137734614295683440238965868666919026768058056100882638379801611860784309380405577863144162861192295979176831958256202594898518941871906782839625614443460745436088840071400559377934266272349684106475348001481064287535573093108110198858743959441066563226026265582784839401297985772091816451216250220939379035011347629060785379890238154363553000607294274664706751865944252433058856096140681886694799528564956818945208418597892929552581217932543925421280721187478852889204670064786203316328074534014024976677458141359323779379745721759534136712324272781405399083619085069390443477002585938466543641674207430494270532004188631788323038366841726992655434457086894176394595544515041465997702668671547882641433345835399638704688492602165197043739556905258788738558011312389337539443259641065510680045794416830676103105007530837890166472991120996945130652036570217754343532337881226582187732883167291495745141704437579300681277048817354723406037728702084279593836867859290689032429722474612315188449804839004503126164013639601542542084802433669647637014830954448063178940484162466537071896964585383845895557626162796724630883359452729877922046550165746341636024957551114144939098149774700142013988282326918366892734477740409216639360298387877349650647917255479128291282547854415774923416463316165148941309749914166759856565687956563679868627462144360227656838855984044958850353199747147597745363780444016343258529660325222527262607028409943623781763853098444278767992101975449232131040362489616241195189094586745699503107632642509125777476219649787477299671653452752377792943936011252329666129417661275811735322947702950297209295890156816270287001951279519542172318923558084501937486219888561271815054830635945832186981347814217764230994823118076624223131758971070987829499328009135903641806065974034194669069611805841572391620596458440103775408253713607251707730424629200261314369087879574653522338351884092083240107550649679972944751280641669203475818481112298538635734442660560619811529688256449102180347742209635346624972010362248093225041702656585866426778534751485034655484545287182580055496892274141056249666044589912258933298247932015851736720906302567256082194526466257853234189025509438744258001424666153836734568688088130871706077919669526500250762490481393856762159028410684663152982310917232192821689877847002279854884327234842924255569303965228602720976977956629768324772332344654591157908078097752241176447536197936822732262700540992249730062110224375944543568522255090953415849190937970962743044243573839907175603424970251804760832489664493603014481052273573651705335570678575486848667080070113100858422800273840776976745030309764434075412099292637391545229437034739962410283902870035878958975985703665130195834171010996470889738045503915729738259090820367424175388906307180642327117560187150728357444105159604229956293217022918759009595441776850263639035798820811927106383913061419701648869599781814962892071600938691084996589699115710720744892290487028642165109321145422512289145277073794403463368443994499491096020746838240224338835700027510119733407079202397790533618286816215184024738710385264783340743190268028692590718344785208094828830833039631345274554621578070618053441208601340251739735505719500744598528160612842106711315302746932180011629642257431035582818717628099283093568129865742503910351908005443282575629385323130629634432425522325777820180007379315644804256315671786648622681817978610289911866262895907923728664009691141432145194189392940766201474315694406252789729911311320113085207426524528804101055596196044448913191383203622333725557820938069156083230745246064212590164514275377641742338495010557457833715164466033292944658255427922135347799777186234607501071176875151919943298347036299185213043045922155966487317310226471678255184475549896859490385682186617517130394366882093706240410868495599572308215528579352290032053599440483168244436189786837692914834345465859274647015754179736515343230449976597035959377798678347853581291096499008321045391699977485631321965485639121534165419700217856722777513260339337643209440364600995396113256127715834490944192508948383470982428727014170707115219335725141751632345503198694243456919548641202295875026270499846230508041009594990299741274532395784767206122739924740547630449042587796015759161978641321068703287423768080795578910320617793605534720819218232544117151070924853150228870711918848230383757822672152866961761396131668025834067680879363737253632926321189100775521998638863515607121490557262590406817959531811423472252403737299884125808007893874247499462078467324324753377328286126696010067840894074283974520170016847181704700678834046258846885853841291536144123588537858001613263010779658789618215763991856887971326173519849206148292609959706954867308858857815294356045608773395932748918785477862949209703299587712775541771705679770963101887216147802293630882296555661952791557773847396307025612669026539625593094245209563230547980388322495663688200467244971151729540659192745897582417477826817493680831881186189091867855859510018578282822499661326782255370148485437605135680510019143707485132618540752661194468707514330682934697884527233584715738793896589122789525459427889701110060010780043357354595722622098156833648228090858586075199190188640807941283808254727886169454265735994971074287863756231069275962414982300818122346712146514550483818299699998701915340911333886301580972656582678975028262873320074609928098307096239108427978160490969943669917462279751578268675787363640948030684730089561913688034062401871702920552633865943583184435637657754663314978827716958490072955593856156502877881367546548604216047114434156953179582511901712119446075549169766526020871718430372246961827205172359816961431769831818077210936028816316335642436533796765012060621730172958551994600629938583210014803412320059513590458613014839856755749342956422067899060113262624401432925463398660929800183366334597348061131291806120954372682242352376534990729845956859852006450178076687413507975185756172167542060084684646374272384264750797198608181247933748310049453680267530826491370808885001767572412002457681545063016077880872696791193399678595982724694756614398610790645096618219203025699765088708122541694784257577138600565522656189456468473567032421556268093142625688483227442610892871700258905875731371755708552562562273166297192911463978325469359868045816173380188935804329487501104452712504579727848656310790652016731746701276962829425933464296527806149618969147533673920554438789412502946031862960271840861274662419953693323857195854708675961271092793587787780282863518824664389054130925817631769751548439610282887869203199045038332801153810072247426387828267626679027102907446864617750453945775811430323846884738431980798030613339873088103065254697288435494542327742008328580321208361985469344124837425789742421446720992648083112782823610536261644973121731485823634638779222764722268263909690981035942398950555525615527525967355366339144581947544565355173746393064222417913892810796417225400785389081205348240616854518311684520957763178447572639930880765179161636644497433560061825004619298533552624971524494861677523500663256989718530233685704149400559468899495936912343515549070199350790242758208579465856926514131037846055017359924836831279164226316303559289353463358374366075397098348707481595157884841302686835937720615537439203406679684005404031106362247423344611838902317014544046401627350337072646149339078772476552316178172367598251495651632911533909018868142406882848333511617808567507556856529554005792243118588357807259527210356925600034879994992888459825036677620638344954549737806444075409973297084600891977620468578942016239035379093605023263066685756776835278347797264345524198856741489197001277873129970690336975441775478876108558535778503063157459160057734112780152626597245788253268376924812915959423436724302830296925022456736647220667995322018803168626427049589462171032953392749849062257543390926094736585030811646888471115965423589721389114766425004307348745501958441847280298968541171333229098082480406212586305424884904944662651741634380030622196434601085857544454420297890076291317973163062028353569306195138766239432364008021832533219466902254706411801201283877598868871000209314045880423595771667445632883710565353287159802687868716635747348569385657708285262643988104704611642799000152996676210912583728419118477300406953324204390816431039985596592943597450619534849506063117392003103626314586317023318527545166672954897745675552644046817084627394534942084407909476800714957423905805071323923395416961597360121968537296414650620134892272232546240934530019599608029513734458974831897926561855642046088664785242280854046066895870377007888180623578995724217604267876184488788847012900170007949406301957646987646127921145280948086623668085793482953215821822005986143203106132989472339751832041478034718533309699988238581056835067067250939252768305071164866284532985750693830886717970932613368113444385612309550511342105375630262592940526359044594454645909999469864981288993655057756769957632261626641372549227577478287133322814586543996968318989697941740806743479725632012972460688518013648839469711315541034781090973483275345905969392280394804298904353980155315868795060065710712556784417993183714989183353002371099739861188477965170186080422202681905975364184171597147706494548588209804140746562179221287489512026552508755730775075880653614819569155792593281030267570350871866707526402185049135896689937123240024887392281523239812007071218280265351301828620053991829973771070914740805237006495188599763919933300322512909733701998144543060024723541460342419532804292124265457028765104016309882559108008058160395886805213437878453756389302943756571091746225879791470475536358585785807583528786089634547172093953802274212051135270921912140547081161191869715021859496454666019991800257520052766867671337208200052492882096382535807536470477850297661259187311269309522819870056183609062019374231456483110788145594874844911854343246857802401722428004710967961021122866829781724483747322601435616032902914664896698050431580591154830363722325863927146635475891876614746941518091157506873281115658249706721340303135833044378639712598235703567216097917433895087189661113084781777042700617054984069077308844726826747456630216593715284185104382786139177625284272220709680054839531923372695707335343381674037934999861623753465695366889542924354634984986579536278555398612170642573741542891065508939917978728978638041510411793136112013237064840439341006176651705037618210852317311332398299368654424206674592967679852578204107105491521715597081009074176190607026497420740839072694342992719091503840422132701205075975237387345085133504767713088933427835259907896686891914588856662035055625290495828386116906005604881159379983416305099802458090060585065451647929108616749150384320853366901126431914163697167498829688701796275261349783891911352164133369416303155925149970895371299146951457570672116594659119531852398458289089763924323982420418735176980162245144653281376060338848018481376352139021334784138666552060843939494770911497001859696533428556223746061107508759074567052073030775782084161217310967381209520827336639815242382548839659473715429603083166042990862101589664369075202003370728805470121127953561111640847400673736564261445119648530612939481433466157877537994535379429952955484471393921182655595340527216530233882214598147625481452429682022671813546840032939918448440541572122634431476861343831465973286033111811396738836212405027517289608710662696653586045870380224221019030207072847037463915108103797658563555956128717345001281884215120267050325337630644236997575232755972717465107921972131238325746163528042271999362101527733286827074579151844804669749654354347503754188098721592294637138660486466545121269970196566036470237923364891027270017746734463481363474528091994249572515610300974215820875346819529295327126260630556756701258550972477390862332925334210332292091959832257930185397277814503789301649234292460538720776093515880688049626090032152101437581513988570020538916876982803103011494328858290135831977409835975068347416574491872805204958745511355378316597187193703589250031894154150786297943021140808978538966795374270258116226463234430220453439113524667404051576640404411830725936058761343643613759753512219039226613808058832036782240788528235185655853396998491113328498921813505135676096320887300407247479304116876674248010697286161477871620430148370225860735611365306646157684406411378313384261533276090332704766520780244209240700991535637545249489554334808294643575148128150320561501295316011427391569466424696364619628251045323190284279591588843699767246684279634761409176281703539146677908269804514455730709637392321480254415285444957322454655780739085127826705483412118010724329046392464233320102048969449342885045876539093130513431156091509447995268497343367413215534631860075431241483595406735823898132157865500977239140674442814454204780829893110262124539679979446015111790573669695497711159819049337985743244715424825069876567627473433713820743615438063965238150162683371991894688605751748059438722053176276156626362815842677069043277109561137321588454841888866195267485873005052759363130851780502764389691181728415301637415802350402189217100186217194930090631005284620460947104625824140062032094449216957596759382480132813647569419691642202943128131098460233402065441226032055963285675591622053328251123942435139580046279585907162298229823211344828342183729148177944737111739903644402812357435095786645029116761759014282396373005124178697134675417025262383560255598674891662029655715405131759304881275229880477492698030692768217432381050930898705742177110706375591467924926993570185910361956175099197139887536364484175134373576968180678589800214162172899314921802228681345860424750108884714665601389693255619393237974014201819616643740875454577756065736919771515441912426728290152531321289370575058080049466230819145573784872895725493280007134230566902135634225837088585534156197834482131573723741392389885038822486145519038629188718724163494797639660061252233009430659419661720146930798305937998512292769119027240050454617649850210860850172983737006224908345922806138972817838819544552835860460246288839440982550794281269069432957670483833322448464214424823367745187869600205565716003585626896862470409906268072357165876016023588973640478754512888711691504851937668661290365334369796024422578478423357807067578690447291837020702483099899230189967310863903718812471244907682626230974597121141069418500588280023115591134192079074544009455883755298095321249016528021206968656657928258343128337125400054425829800826898184123589593201290055116248076020995878614188479653685064798997846832668260262032838152921389997538842539406008705569889777760709826150082804574598761268600298883769772897461484801392796214672629008760098467200418623341138090125410456273594099968763534854349074181775619096252912890338846117652010442217112362764091224103360662673795199017022078551765444684578062839847265939244675531964178117660454450353386708162590276078410219907840222174814631044745088721450389679189006387123954226497182175254397377180676764019159325810942122435733892193581552439580154892082293502842171300333534366633371240253986174614948440386754750134784930126380183969407122114210644187239860738489029213795757854241858017662957885875479626903129207643852002019190826820793560717790509411392070148246005248413673558378153673412864784695373274833573087530307179848596621082492657516085001938128389032368741134244165081604364024972054080314792495628225598013853336284555664232321043018670012914952662067748599419668075603059876144846431458931756600130918361359500520056348183537321327476962049216111650117536449043976600918715501163032749244140525043671252960171105866900345461301185529711219385435793845556794309425935359868750498348569615333589869956639180294173910796504616791936224787366727120706052469205630651299417876354945391324200392089369237266079218030497635283965084793271445806444763691873173532423647714424000324515741340113043161144546035647768742547290937841987553549924755703602814549154806287297538785293123156513852033594587617870984334323857578990065080475069802294392887167820843195364423722938640811436161774010414156842866102784844578476016725485916171620519575722820624275189050359156733102648825287760120919094309793846216986090051320285675724990355086760142483816716758486472642854368450578997759453586886641583963192291041635018156539007801795406725585394466422806532664003069346171983554386078780028158812781641833495756604940470888003578919853794173517999879962365648626880341116867265431221452634806456139619333908348056318330477430898333198776231245319476936868347178381997236051885557650110023175370460013143072915562501145146285040446439728074677547034709071442942151096737932151266886020350213727600015215840644213855214093614952336862892529520524612356406576706970548005343454318764210831734936335855621688393626056191878173049628229141576513119883325973346497308995117955454232131568326740071468738283116983134259912757442661351015043004511325910484214257423134090384403657536054797672263512240029303257052674509835742510212532371696334020834170661673378492285938509910785576695614848314434201683058050645734723611540908262183041490767876995621285931883730649457800083991532821167631694065744741067775721371312048985725688552450681068752217706543003336855395292389735946271267401122901695110877205474643056109890983039548439660192720832190884863426988215097765093823197144508959386512448796639745149466445351320448435058704983582159797841287750788934237906412045025677441686681240646650686692743040185650497421321742715306433505039447691295070969861638410068518790743471001625938224971305134718431619544937037251881968951123954009503883144183469298485893075236544692591013054621005955018490408087826138179790689554891438465546695914582531925464956385666795159723320667818874265709727570526932831128051007267701643902063516891827837604952594552005336366867750634488275062458984506126617629658119119649588106907375326225708570747951867974678571365799975212187901962401179810876571590509632041479298567854581578833991893483071419704399339815713127099087882610916454498007762427140215066549855213537343561675954034970410081093436639628389720138389317463851631562250637757572699243512519003707227815847321671109347371003001148425167362686711833917741510436794900988183747755586714707611924229421995458188308504492568431833723530025910836380786838734625895853159248655735502857676498141372448894540344271601257312431072944368544751879400100066805196025591494535580409562165948250215447067440087610919500990210412591912060990808227577200727781496864093640877050976399834552907494584221377203162954888021835170050358444652435870175131983517524771922515930985231065676255739452498947451155673345625558425611913173776174094334693276818570268886968505124865583069527473609377329033307921924292580374243597572549129037173072328462222158202944655117486541840758705137576535155683740233446304699063459063488377795283190438065622657351036570081091863262697741291207962054838134650832362147741812073818537643056844836061071272087364469973206718070593248619909485033964007751325481369021888826487679729892336177196778228401455854686119844625033557910110268293928681007192915144968076785035063061068674671222506931635660540821668975702406454043292650604426354819002647557405942396398419989715517992297337126730030860964491097287715323608106425629514565451328749697162970518951503465173995156879574228053222481188386149904428162458301217720484372944975926831089120534957437316246338038190738958963786082041985105732270266957004647810648259495415306618980615214933555825290850955431626954080546054274530133768630994925874273053178452233463097120458768585446627241456240867400425105305983840361282062979069937012802158070271705363929548565540265287483381042644332990608953615326565454149943122477164054559969219284171129917764451108023120809014802583145631765105572781740829731492571053781663216041844169573381596894159135467902497085702411570998362665386382563967152522016908605188319642898484920712744670107534481893093985132848680774660711535842113702469969983425460114598322840488464630664649468702537093685501539991942020770757639174420630559045604078254875912714781297366831310984749359537122367598996919663300955314172786405882724308089988695296610749205974942829504184821132661204228069303627926457685949226519191607195170798303215451461881026887416712651384345188629418402197222651658719793161239376084997660195810835480086637033287610274246568006122428836385121488642719212511170522214840137266807198697413868802028369891895732292206971041462168590614338790874272284174105475747763158024016660901903631311943331375066137784729828685017824203134064353557138892008824080998878064107288996568090444575494000651171980400197673968326351296296318695962814443224936084825645538609217410124597051933512765787742515173944745860946752409891725066684099295306611235303778765156892655668951397874415367588299581246051521531051163894552926183366525764509560281166317832227157726786297747268043037870665769477938191109985011345903805620318391563480488277102905746264068593260695273142049262296907815265124012772948298110734770142315488962951181401750757029874671559011066710239790454992516373694187331067198036416754044367129281036027818259302035019985165452509924852302741375406814881189383112185158342035122718784423683041404037522703662312833953774177489053015305550449475839115524126820382097503473371442649230021082521435715018546431320256296216577430488026307341192860956591297914597376565165018347883758626686498916756576772939033750652188209751797511371243509089436575515095713063637807609672926869010679041864963312395135156665471951643845053352637722725091276741113288809779193745390369118502096815536425079441304536708568580237272820621853499952791329233267282890908847561861325409702085866705909545118019361660379898117573306524809330158490451142019272406546597611681847364540922951330197184733672059581779306889815882037032167553990165687944628535525018884154757439541712270901854373346188948478974098615128628212969300829733944299643965038443811950845560289857766181213221526726926334487915904370741564846736589144017129114597054270708372495772950361320148992462645010883948804572962763055794042001516260930841716232843155022765695008823835912565433147350175714963319056657242151174744484428582190937293647594984723638654404802625076109367562674500988802766441284086888835564268206477124067774632477711042916644805634409030112953967377192015570382237210516982153818773485910375603425995914872803733746289529516779980821994526184517274418616177767372359201411491101181925345573978410055371666455166457709458042817327047515013300654011765266956261542289468077411574569572588486718228011057474481475422546312773247278573147831076923838042748628003110249444389938917347552031080922908166900246289610776156701211889850473354986508484405714416259992505174139969292052036365839469511034483752194443108068663026098035835662279025560171683064535092660412455399689052055458781455779510686776650613956320969572003306688924204204263290075555817945330256369402027555748760965432609556858741165285436496175082056026682615619731281940431428725092753655342571568214108752629833031681844643154822483338668060379696872937695116685671026851246227163617379941282261621551808846127189864988893424097945327721631094155700215950743094514329332627111159263438670420282407758154177335126076468762749834668129905123050586729756477687575298544010004180976331679228853455586990803109775411699607619923644103314496431531205134239626089482790533422388455656735460568362319578810354073663964087205975135923731831703130262849064406086221898815877340914521208554806427171196807088491115063589886447914730404635554544879248049661862878909960603156388669592530372907116491381699636934354861905858258609632115307804319153071286878142966200185107990692829595481671589378099188969937314447377095572260138432390015418410896102840228811767776795072053481039822280971647960970657189847871089581599666671067584312726754031670478592513406336426863952008917150877970980655846276479200021801324402060285851942274271976671474756003805799509441554806300343407656062703674228685753268369919153469903261553013586947973315372737186425230512858246328112722412618953335885103896188523926875187728436730168401094789041818957439092426041066423815932489711700713461573125301237390930190716182223353847781543511817917172193532297752466172545486647953901026082341441931447699496150911309910568864970036677032174748654439849665702981179472173976434607021134240931649133070073947661767641181812630783198965497519131386721787168483399124808376333517320168926638144672367053801202482265962661693905081854896265331827016201780161589647870359209653844150475389191758202713285405798267992656041763573185706786651874530778651170019432597243704460258249293837000810391988817427638900275299489204011936012573760612012540315724887344393221181378899074733932413977366423637190215491228934028196766639183497070040064226700532376617930624046514281621021241548837716524278516973098001017622403342341833158271869101289728711698276702816394972223981897021576937670121886965049249442926797524710291485562532740454610828505629356564777811051179464897402280675090295101871204522956192676257565761886895981630735675344002777956584196834042610618857896112673651539507965249211152296847915205650792114497192444662745753504149479952140461991634112790653202304346271737489686525861838658145609621197104653953191219073837593252993865666284221641927891271961548850111176758529401881120189202326397526000971303974018156132453619176714902867096585445871749083976704441744591822346609721778181814004114664968408140933092243318444173071214997820128512280701097001254873586496585074784262345763975825854006734011762352104234178967939789713501009568821676645397702777874622777453455099864497613650417671040721694791687779377958230031379486233363940228557602098437718833440372818330364752747357451952246687489758217322376721524878660625626611944644501447915238843299137267226161297095589313458417785438253414505036365456614170331569641304566159245363736947056375076599432307378237301410858645658907732341964538480639304475817032994531705486893931331864798165605195942436394406274109972014997245598247015685826928435166347895205427795670336319541087816395270446748146247910618834901400487526628914484333045263643696974626092136989825012793890976122426637726579735659579987575444375189028348473785302335866135840796916552914043847995510555842318746343792285107142312419872192436786764921515875375458467931284779931569161955468461796241387998654090571906194658551917319163381050730950590668829573811851919639597127617747173997701477207073810683858814066616990347744023161415553550477498711239120579740382138925805420368092776327684364803600110514324983819324165400411063580865488512419059575293549571320049932690680017456931956204383206831217373140725633864733002644060703885264418793544202915666693251628865347057833077154955664716062288209176292861336441421747660153450123844644800939697931116182471943651473231105127969306379451100024058172531810769943470265403987225395190666466278549879424547346019912649444732286108949491246756790623055663023902059402076781205078518173627943285469975454384286907000312230745576079409871604730385696327294813008625655908100631616997915080293708147897405061839431437718523865804548084623581708746186051473067064726395681005458707153951367896048675613680586589620526662209188653365568025209710274379671519187974446722922411243554130898979916405231767622881797970107694124211935373884247675509106856490415764073305761743693767868555022808655711374872938479398413393337068575344914441773806850808009599670966123551320883262434088377916093540440158263327655590171972590007987411450847576193715639912496744035958770253470628138736657394353896024047099675186315232572523383981417717807381225624141094903909811292267110178141154563154762419026189899258404795302017706003783563154456391830848388678456044532306021985070192014259981891904194929892307897276484625021683147502589780227529934835557562308366138510333591116865411057464377197772658120797077413560985450292151696277878813015556106409131344782810538190576714096457799916409836728424306289113914322552050339229401540054741074917731189617971722482413722493338443414055555614956353268378086959932312915280629800618886413248641646548824609450064543901283860481552856474289457747915613618379768989362997824619085890593662659549072080239069478596325717920839704680048044333780554806807283330613766041324420113259725553930904563536667110101108548973746294885974967551535305818122672823765124405171604935670379459501881616717726580155149664733935279081121081907481456139677070588510458295007127498765771655093426351665509268961143839196135395265147181978786269583748569125415761335149941731520506396553481813279265258884913560787314595380914185144228883880449786011330252008144823560229934568421720806610013203649217473769008579560866859175543618210387932188165802332364236089906327125170172247723170338575635716434663150227072298998091922212679427072504927717959578370263848097544663752894976110435974881354838190615248239387422522381414884257933918993038112849829894932800099295205484197919956478314173948266665806880796985868931078606575898086684395079364256772859466880571782966334061274395188413154214633422520360259771933715755212051781841707985787494241783410879355294852423829788909648159758042426073120680348220698179169833753794959451707282973458373342788973917433215421327743640282098422735187252167021958297220774162341715165970294742702023119367593153020264441772800950006337018066364956775279765947952285944581521896930450276370086347964780350130193058388219774226681027596259479239709963258787415833014735357036143712557257332468192504467411858845789872640417879977620959281088981573087674428723951966767984837096210293173374036560652044600296187702868373994656469349634082330175271674663256144698483960196387716535409913193128420417880213050186990596013486463198426401656525902919051865426132284664615831260989596840127076459245127765133795963301648005680576377327196371421845237977161625388169511449453931624230321382376279462354711139907349930134687939209049519399685577630784414030557529563209369752866658229262170142302168412951393497066150548572120454798383413311477141409644175938990819068176503732372446468536986948446559051504570179710448507034198811864321095667152767849094773931718223233722949886129443447273359882070632995551821490560465323534698795577587344857990858796865326522468263161113131388978574744004525890593050410786351478311138607066732063990554691287416514600504696780193296773984177992822051081948020669222346334080871940150867969149987776358550346545020055689694640169185044743823637426070732911652439685255448269159631761536697662612640119360369258533632966178155688560237085909513887133379804823775987598408437881216438745215974845525924880073890613612885630060763502231524762281672624388402796824803230892143551853064735296796689421416146652021668908869176478831671235944029551533881649159632483613766461085106721919950991634768673444745296940964640528471556825314757890029360180631242470239007280750884717898570830000847066571102465921695174372566896048281615026560340468777400762927186318589812001046623172439519596809523542783484485776620486223884462746634918284421100481420557808843379767735718072841498848671958216719729158276899114975664190639746860604560842927948906013395377873492603726212773410715370262716447645701999315354990429414705036155345261742685119575781003478203961136635097661731642870792593122063099220556403680652760644765872860452885691683862920194098697846941870266632561958660457162050408897385325872963105585457160678131834641776549525049791093808445174624815574563850712301967293308665355739636653190130638402342092325503687653177392593173731756326568138816165602097551130588761984498162442539413404102516879744537921577971678153015412441389136086935335413422370797918551442515013477339328746360204040679474227789947968264953741147002177666866105022420138958538077421249298772440033870401692903027728326736327144176795540032094210801969137864907419029409288086839463722159446302764604885155663644931000579771049293523625904586595997487101128524574266144317897085181240380956098514775839341419864392032817687053840258370996292577194035043091209566566782270427633701609268888603749779174752717882431400790285196042017988424832023011821178242869938140113713014453947284610298651599034935641265315383092026797833403387462078480929108499282265584197640483283964872995213354013067554802772598103350484438481983546869400822110447150394242644430074807953410716575419708890436213733739717529910516515649263027646977307450061317366228473773604938480691654049728964074793968073157553494311028197116152952361011065875254255806396012448899355739432949086492796366810980224824653346691794918762917323020035981214112117867877672915376002866211625828988746872059535619944390362580195905270712086307480565185498896611854073006291474472931016121217923315067748792475314789882252914830405553720526513731881743336834154614476541618067354142298055214312166312904729551034305581191249935311018445391689383519214274971692844709790127794995634038495320504150288772291664742631586560710433506439937488942972203555262059562045613263966180172081097954124700478163190970999955545151379725461130114854979108775620117107091270352127050701424496144538307848185818239600225099035869273329804796120031916064252047721453440996214012810966232201117028143139704747001288716982434033270379906119599239392151167455055609992577422856839018649915541501716557824166784044676667379534245487653273019192512190900914993877261843128019275621151285991960143240253316760446227906318754600393990530264986952247881641585146175157107570697108146097541474840546863729446021087199614806228549784680673610279726418672047482717064789159101932567269122523612184797619853223199628649930726584529011618828956461486629441192569387385757867795988227493396520884205658207700240452262810529482933731563122618862707043187849316984159559260153303740925103793695875343559333338672507089929789568426370445932838908230773751413254771653759463030654021607175549812052467642648103848660533797670827926807460505527129644782472039789656273551904541252627785179640940889017254988841553681139028575001754198517747825961682287845365333869689241356000042751493326483715295133292566728777207749686008862171932941049059499514287331899086928482471746698676910613568250078921811661226725422123735166687748867493594479407915047118634101847975119356048178353243310076205370309681008052449613067560880117353374983960334871196519807099451243220155277165110494048272883738484874200936827276593070452490247287523902496888308254046589354051827809316943365155965738770149990241047039375694917773000532263233101666168082822450097293734216772033236787659760499428009318924828897704395176832709066158879484901166444836341972182806121143418751146573117801796212631511816970524773705080576683964537060440587928618720461339254874549765079860525701881835623509926234485449321812012083744043913819837122846829288150288823674693929449673336829562036707730647954058226256385409505718910671009946034996923051368025042589670877685034919259128202806507522488637216792809897778456237271042926697100844872997982567639106780142466874163749170082206479208144608630299740879028552539763953065147737188717925635415811196725013855081376470545983348278700881510119996302364985712955152165172590028013816950895483771498570327812399949752680027362831903052574735677527082385965234737270532716754707482352591848466918307246567356555164563012950377707324006810606173750973062466857574573346758600768331986282153766664524026169915641289102886021117689328149460611321639729135020063512767801635161796426451442931419342233356204926459232580482970026382707573507869882241861011170118781980002943915996176450806049365021991951291820470957777163694050066940696906248783838347434381947360054308373281392264421362283601101516015418670017637734238840096162962086455230228182647379903510317593476706166050924955330703228129798776728552559143839781573159163267108351345825756608015426862229567375204631602482457391475905732135517620543742832617423449823857182847941976956883592858552372081126984884745783440530782117475428475721086353106320991392090064079732533014008064363173231842278256899307236590449974245456367091079746047038272707262301272209965774129397725358973817273721541016633004912083537945537723020999568049685717023709318979437075501401365235042989778147397377889571273079139223703591356623738255198108133607681015944512709858074780472656368484894587645907724448548833641038198351337512762877902401354756005557118781068764520210820533381189881654851109068214880742350949568767069382750014151130136489212620216985158831777394961874590453354374163847686446759984431650227450239991601948842244616413809232839563118132594113819988018791898960525120257087706676443283215694413428911654431337659111394745545325673292989968759307381718459505525791012722846229831406787276799229206862553331981960837387598957233239686162263636850793977894584332120048476970346614658517783030825329482052138853657000114674834547548137597068285397835565271478647425561141351328999896114266936238538132375605127707956510593858496098870627842141622619433350299563363533278763670749251236796175691219432233609303973606072547407319607249579228246703635926432156271887404768218842667069353709239748157644614879715277877889947573859259389090297408435405138094123947970240552006842988809176376085043568032707139000570494277890054195660123789966773259112235416122641066264368327726504959801815955240391676668336642249884982849095103760782584744591955754885674311579317883246953682066252579361314853777509985902545686449430394040296978115408217350795152658508297765526149234154007057735009198223376950475808860305416346210568320940908201987689579275952276905017105706816335787996947612552254821578377498942261963869532922403596609255858914955622847088594064677026912434239629332531059822067795288525091991564176250673919573148653601273396580575507715160861674059316482721953672540853129296770275887267720828023737750671826719592070796053612271009168994204158661449629255219732235623688435462063387143855646310787655205296043033219084065892608372233951850591263818970157533707924890309699553650571477678794995368370115647091153362594774100993542295650719843718446604936706606730779576268337752005260277456643595719783719667294373566718252593293924260078683142044558097358412710004484577445418066656893035010953738541265704495199077156543998790111128952283317103573234081061917755553531772375437984809015614378733011982477572785140192748917102895597956363381223344425676483849445350064268912539595182095650880568391683881061209943054660258556199032769772448625069317218996728484550788628319982066554221398132129904943531310059003019876648457488820539548056181023711891776129254780179163444332154555932019367259171548189036261288043582954296136316606603880126660288444344212741746712394256713693423281343638717229998784396244420052793430590310286328658195977879978300085670868215148560673962196256638855125790224568969900193020555974995607059102980736733240870811377440018679118305461163809491646124982729740563392548182921172589068670539864561320217163789153697565210319850497577361429346661670784744274233497106635267700047171787941306312699130146269048245146325607816330469190142203814519098174143447604467360891444591122656373750001902779591297427316368243917350506259486792812756418535864227241207666202895966783018918956941337906905463418279860889994053337200623802417942759455144943011845005343290593800202977381414455031939543606495010004441838378287262005016452146081163784449718502968691723251984816970167050011875990639623797039957236370308638162491143911400145554592429949867631298591822943525681215627700637031299908805179512906446082293035998259022613718246925746135500072839677460318221244346521646981092630752606540890350402720090064750459506749103504373300464999929311153211942316043458154416567179351842846389011287838143592770765040806693702362643123056426173899571074636830804795143998781982083648318001580956402991940065524685850395933800482876754119381818817781564167707920818627622011196827806673587579635707253558171298280381290602259547735942956680544999575295269924697023754617741419160383083792605505539569074893108377055849739837442702725305370332914624838713241232758607329237784405558760565980774572543038585077878824240314822391722186634218715587793337404498573307762764299364502881520224586509257015770242534752355049905156356240008466676171704060006300270695616519575424139110861584042224005016393245600737206688563440127687588838179744323154482776868954321524168026184582848844966779030919967508938724334572375917616945560721424455839409526090319065014430048147991022906798251918415959396032289516198247512004216981026535970904371355590647945662830022855094029571669464564239067289125373308026542854027123890945153933194837625733628443378454986130106150762398516071561777591051709248952743516407093310858807701423728278457931964075887065158758546220452177515265574654495358953110974612351342204615845661464135917634411099046515360164065521892053317639939047105084789424420854890424256356740397326156762486284694719567457018662044742164419760376230780329232138031898783796865631149691708923302529522264980416267421451217014456837677799614387678376514825947724655432037634653177477092877414355049719271394105535868855306791458151463882389354015239959625219312228158739728889250366232966634320972737427781724675272225505790353412613020593283863280822543005707079270671096091546950963374445046945500809871585453676759515348332529570331150468349126135006803777404928258872175555616060633772297549767059486849919108585189245211408391102031615351878854551215442785643337821640730431288752319779214356721713015627333322750168245672494701360946220253253276378695462699579313795338122636669436407968429819298983967268325506135590262507284116950110263224347906956194203992799773230359773891305663248428689402085048121231414393603388021824964095288329399444240150973548310131466429404324545930177176522052666414092594006244894990465661212693046133417889420774133270724592636918578832598477828841301291487837802532281183012738590603476523580250220890284465838728816995017272611677944468723592849423401682595838148921634511044406981078151002293643236170913023561462357065470141979107980733496621221567269230650128477788771187034849521815614674483761019677355253755984555875903242738246424695527105432598072303968221264966776821258644337132504436571546127507610847199711684542425222254706028314785961760671579572656484217032760839659965376384657963654200109476021749062304001839425072002571941195593259224782308722760689384276110528974474676203816298832701725031982347563916574586842148577740091438324747586660619080131748655478776571197418417462744871314488365209237885042050036317413198962929511698177708705947516914444398595926991469032961488461262230589741519725160445199789678431054407670524640979393903627317088222685804030472964540348517312482713961586714552643763101248907737460741732699800060538747727826211846060466539841603205256097994867191478633813072557923195279712154788573009683132271913315859912578068436904573000901677109076794493108683514884598741455684392776482080562289547515676932025886648260880358499926248696992915942408253750875533618656121035110553128283486947087752318197098390288096502351476265997674399583222399812689266708285369556848825238511442901417255366444624441688783846759633523620606981538802417659015104944841979976184589081915859688624115586492527393950201824880260405027378169504805470530722578687782738979872950672406921592895824118657898579332126699825879415971861435351116887328584869682308477464748330360641600800970801630276475399682650733811694011375266892972952825091650409880809036837548369136281732642946315829340722298247652392445263759724749637552990348563352755084723928656943454079911923135147518834171060700511032847199795333782559136295992242484981611853279703180298098507113720742583748379043358942594266065895673285717748229837082150926567782081529223185816289800726134289270056076501832031687805010348095641140135812178551921435783966225002667127509324777549071029760248552556589826380992964814885345955307634903744284289947661511803932856210723768235832910603344003934304136755014892748395291868719999719588945824384588552530493577947045105843268501427742737634305714451137215023211605542039033113855174212232603323636117845128873060100428915843733342886713317786250121220325579445977835204940446462147749298251474595212397715133848808322919690284568446078154621476744866475718594402658616901328597682273978589922361065089074102085225166014504666430202668234869118516830633752058849633359652337753449495612908580040370612422466808640464656862246139389243590643776329467809795073052330605562561693996579595499010904297999143834459105217431899190651762141708452687068329601109166835346760730362375332406531454520156955897244835064009336227567720015179191797672506735197992057200461124966823158419683377666995352265382132998442520064261531532089911495842206037950106721169677278025101728486034031743137014064640005169104499888091472160282404856277312751252689819830070347094365924224986006460992562470158266357305523611948213095769800790882213719659144817074277928160856471029520737054285261338176625519196985406633852997520917787996012984927257921087733030939237445202959503770874894907058056194130106836064734545290284930172369284018675907475608927371000342700857606987513051554350673104672712688931639168846107554250684231559084207095380939184265783114001426663996320777016954071455253636710186245650766520116617085727831473582639125262314743508251182356154583085197131604525169494031959288475485999647022193778289832461415807460729018986986483834947256015770227132572223116394438317889749728789237842587564306333524812255852249343595535225721621026076027817472986267069209469644807344741916574190768056751055346583466756547987830472798915609916174245607481710662288926383851355277337925261744344247816691718274708471941999251258899329646748535946534175132376002136092668043267398331581653696656333517097675450273569619498002327265793697229516166143436065967745751182562677322523433820984196495202260403478270133410777728138124024446958808750238606965951925980049540517224551958240315553933636989307667294699164966966671366808532773003489579731298969967417913541513614081558868070662285528505337976006203139274852489316877047253608373653389891976312917171952697307355873488925555809414476479945767471042584466484449107577966404550848633876547749671550000014493344197788903243392065358180914378800488438189998059237382462943327570838810294986697914855987245803810944627059052494933162416904680741451067698293224715001302394155395075435020997701375975318427712538873260084298762324491510305932931585596299140201049152702183520777693766230723651822912030458134744681468797591756214051725957713098024444954096730822801615814382772023170388383969293645293262568744090132019626481135176002110317156162435526578338843348340742853777164447480640339465054144639032466164035595262873223999855717452866479822298511781252633615201228852793071225308088689478882608788519579152131051469107630051797489031043030517750265612754274881448978500849296096795929731647738285139509979860776423178142981137625757547349271343140878289196689062723024503775339861736682056291364022006500717846102884124194666562218308450988560469786419501400621805606601137236861020994802126237460987592067084956736310278788792516094815228384941095465831910967932502544584705207215383042926724603247573262766591845889344273209172345886503158886173979879922118582400184161214451329282248840395670359668463635836715190425127687468942303596378546932675559018077773492565999108962559645325887175403956147544773289734202175837292094275950187638527114508298352938701800293546675237994845402367262440228402706926002401629926694295635733732483952446953654521259623669898646203254319299392458361644972530255154264113371663612663051882909343949182828078856803034430117502417893396601705557003174282595242732906156405274202594032715647576888520130252577759299755796949301472189322033379239193418889178300753655123756028465726847655429125920674675474043302387277345863478060680618985213685355508481259299347808282905933324112899154953160332434917722819737099081390304577836461663980865232428661519607199570385787418613444804399191702244705925730007220709763266132869941077540700444174652163068712035778977904886758697975714715594379418663859133198294267206387279040151300334842694105937015645642098469763324862127136087215794259865104082734961805745210904321842102590433699074418603298642901762799795078470275629006093676225605186500757447450498798181878254481597329977016896112344192262958011655173260264234789505210785516171497633454501574550414005840627695141186659334381501655087896130129525674898785423624176469547045452511727756629161825632965692319599260854935849689640420365182505969024685197156932055031414290443445616718343479052869468144959979423682742808242384027353755097605186694402142745536737292619881537148662152315801073057592958372728326308451327340407371341714811353043423421149993045078050263890700299021912488525845539589133489475313418508473648208054532397469985104319970242890622857299031654236461744375279989636714628167691239934453835624273645940921511540298622422682516976665082837673970167072623746257654288976795860226801769241477290294520522538670122070758810068040174545129459952542649755519217099170700736779186554331575329519974458960866054368990837533603659417320163705841423688527021208516430100625173503583396345825623219264219858022205877249733374763446834984295908898537270847311747510261026811361289360830756425303827946538502233688419299544577781758162160722325405605728529105327462450952838865531993968809569411053817053114438462798099100673678665941951497832955655318691995475659070552293258598042309049220796147593224029511346974669208503472551035595991264948426848023435174894177984224466023390617015836777803874567143894269023840172742436362185309626054537267801710599180810601251777861769655175233272412020904648668617782032064149340348353007665827291956368993544528208926324391544591749478983126232363853879700581563488323381669949581707045384715401470383411228055579078479311727158456663606601796038352908341915556172463044659333190146977290420289925134325409359629219001256079101201757578168356063576785741134114880824961507335682655001496428442278952352511146868344335508099017333807520767201291529790695661926356768764574922879803494086896268950288939036996341582688715250347983858621673680630666061500650762376169290414758244405951534140063976823851571266056225669843106043061075603809379494729109086556395835668107837300316009996781219489809198865511739820011881398484686913010898838207640664948895024898668350343995330507954354273972868517147165472606939417027416967004101388415985819270044739825560970187305701483743037919071219079246672589323746796857848406572407931654145911052982244908869070389999744268786592957418690188167848539631378211242613986389956394167271778289009466515879793455185816539917863777379799251864537089520936812071640222925931168726279085269349843355298647787182546749414515473977779112959126192839562501370584199492555607119382897208720031044886917590759555003776418777465138326916048466033267545784989663968956217636551182869659602532188852882343325528623649711718226305071377600422323510258991070165828494578551095346563142661171730328025906291386089370677611331908981479220939707090013403621679213353128061865891006353347556537832456806347948381549362980724565762959852141670930629256941347058326042919884718532560096580863407310187181376838024960829464850352967451599805687639022192899177779623435107973899514716448287057713787084839728678855622231929893649462401932933760799178432863000124337154358607399287197228780393537268974771317079161766279504978806120292489527024448973877467264721487479399509451473201341464704587289843941424960762608593141934316161059860500191189711450249378983273755033565863706520366445552082128110123997473378450466595686845209548796941419927198212762460133656756880946533442606796637184943044418463225631221691118009213070439801196753160945306976051063662923683642344787063224085392368604632459240019971352866250773486383788079851815961536750592391298496101693012663261704163103269780107301262419743694542265438999153247733480157458382720715495513440083542558077424193489199128369812465877539938040301019298021574073065658447827100011092067767901629264674947109588969971442548556423119900159254832022236643117648546284844811355356335588167199919415040510138295878102226055817815847701842554602301133264099180822567464912272475674641769689341471493053465982960617730630869928077167463030296162816786041714086197236737712550406204472600253736647297472369819583092729325974229993877624891310248637450285446320246304606904977817074898725588774718644499304770242518146971926134459981175768717370557161944943456856610606868820642181781520916638192106236539690655696856943487543641906454136599676109025764174438624203048325354323251155146527417091114209744559762605805934240702339972939752512917547662404448243180473450440396774646752165811724789024733362628219505395957536465312613720523392562860081379409913654159767811717445080783280246946108511833709260007103888871900562849110584952618649698985157364534025503365263985484542011773265759447132106464889203534845156533069265476644145211682682563494867163663926083976757094269153066119870592715942236010239324362575643649754998007187678300747117672889152275806209853061448721438035122763859419500920494344263424912344648155212846566368376708253741107732405563546362812194846771843551592386862180500060215403015529100513907461642485457636463346844545300325470154810166052303147227507798608128214590500103975633089733377229501839100611783293073619737875940379804940772094362373765655599820897962059247456822219351508186037138186708735043719548454067893528499588067645011173620222300951511815551555165290278972734871699892653992805014466771362975030958297199172618316985264336529257638498002140238037199445870933056263180265230832560949941814407701916752422426570537546973209155503236096166005607878660838466153869405470058897080863828561657428420147980332317749809176097086644050002023710058804827290130428658404393601505747348520022693043866606627244195000613628815313309270246733034792713154840608728092498189459118826852009667800541009998485195913542425409298631276821161038536567716007674160209871747775252734374994125290750673808521878275362543122373059851158736091548068022371256839832202068932563888810347038821043650545005424551980865102767099284068874820965345497095866737825902718189710229862823005073613289865966117259383630702406606242679547953093714020191884748559342621695935500780389217886440210852959540981692956348313977369894094326215438226839238754108221354308702750037129111935359549446818876978814248952431307168661574942047481420883493198055715295148435371308587964711182811431002898533583015527572486785429134011020597711833109712709819338937463943050874702134906760550893800772306414888468836903796694642897914858474283146664063572726663375300859821607223366466313541015870760052390702247747332789580436357982998011488120590361050036166330150452147831471043564538879530336889206870900338932740805144018511177466114442759845255552889576532907126079479687362735423657144329252690350548298064000359604546822569749625017707626059843438051773106803559311424808212480517142476344927889767802343313061269053852691841897947673950693199983844152872299493838038973194738983061836139841516013041262769843295138249431296018791714987401835265070609753758932310815024100383150304712629223176627920000545727599302528310999575122051615547730470391168716684521513600655382102173231101109876237159387923378649915719195515125586055089693988034394447580464093847599945051132459485112828194207719783400599996460551827797313268945280236025967120267372559030650778768521929044197514188554208820573156125631239221794025106856638924422002351432044473424492906601133984967905421160334806396390609369078781675280773928872527717251861275603154516686308821206708083469799192964280994072760119164938202239234207003535023332310001592143549506779660056183635582162109898675959365400940638988203613601150090284514467063172069390607263047882318501884405018528921542012288116239854398277751083628631037858742694176743073275392599227190186961666103937704846133903755331193037639940162050870120256076609345419468487533961119599652587076061151406967720240379289517759369458558234822638480326702653276683162463134453635850954890170873783527373621593312698448016323216125140632955356758682146150587505512581525114390041094264240307528890214205344955021218426514502166928405278815286736343675256434773854879985494865653101303586003952015973854768841104876150655496671405375160322677895010103319490780880140620190139821108396585626696026955974270002260406454998337089737622558115925333762289728896170782598282414255176873948337610041854113457500571877280230592172706248500666956975096571304628103344969573495539429809684902421336361882431250589745462166777905072281411726041531081810921907927178255203541517965860473498957192561785207075995021130010336640428849554914919016467153247498257596861869791454021361600862400959190727889179697652661611058642551822460193204883781702730432360567943550340482769799920439682052185320801408245194122717177888990598583112789418007571625049312454784913076809550963712688854466373750645345247368539803929853380148685838011935174454529215995859165792066544577988137003105173521855005686207214747897829331129388773395984342903807021330139569354239724422793516278196702389368654133413058388524307998927567370142944627449321325612817991430950235581974720123826282107390788837222135638104736434147779594979664837560343581936876363931643761215621483627516591924255375989921834786313794981662915713483107242274426232390289638552292066930433514324120301231457886226483110555626115912395455685767971145173365643601125281482043013492693610535500097817331509643411047419589873609613052690276647703137631939887203079279957268394724977224547412483662432438252346697585689068357159808257821388584447437732880565882803116587124376921821625277208456177676485517119344802422545603351255028202164641517593742113986602932503373945157778614541699411418695725913403169772509979702776033129966704119644390148438756186010444990627695400273891699454341764824322044362904748581152159169556250977997741866310984935673847556933046827619188739263952423803440348744305698479221994546150041677882082064561444018545037953394178003522018385503157248459870289422109122573237366725503927787161065306636258871372242159199062888175045385953320779338138501747681692099433546721987812605456570741327964034501927977785421172858199422920899999071808723504966962985742047172747131285808750238581646819215260470678757810277218898581052349843713736501211286170014507993788073323875732302235256354235499838576478736611921159443315505751729738876658392719951803345392818461091619670798966284102936509331367994830256707216954778647782585236849548775150486920720065232413908384004262430092606603675011448320281371667843060824040660484450643990762461903775080857400043378679352570110530784644182929642038248188848554209336618867442829356480024140198473544086695558961621378474882548214204830231715328200311569276044020358317319648496761486977140918050439879102724150036038305119404499131796888433554305669202761551225713795513217762615925977131867053637348303334006702230927891782203852404514598617871517383639239424411818777133462697477157034059174798028483862892194732660594483278988283588976095137019353047208957831663223656959541804572458095793688932902000733421555491510181652173506865601947389603907982715575097066646236708735433809777515042455634905345574523386053680360410971581472783493426527648254505880544392336607530682514925135832475900535238262402962972809601847707106412585969141970951653619085447720802246232963508416022655811982267899021562111009282463801818024834768405832581205682621265198134852807306423248256630282494808607239304139261703107556697319319197505142713221866188628207778817997534674210641323534210237352771705207028245020541428384272390680003548870453292421475256438689505364104230294277386662611583996735152470668646359429169115953321752523102725343571061983968170719140969215450807751154091441483272257708062844631738823312133945993934700222159572550222013273946261709009989122294883606636095400129800786933441864870834467859443557634851524956676338296933490019232237413116380032370411519613933261876140137853826843757040621830891593702904075879900134544778828184850575224954127772748074049657567792502220560968238119658423758033139323118017061458706577163895576815269852538672497257217285545161519539522770177638355366480270548021613266064772648022123075333703710712960821602078588919341565100614965708804912482457625446219803141747899885969137715852275799665809750667302068542443941362228645973598794737580871747241271520028130427217020440281897620652179924650887880236425103683818585859418782105128236365553629590906382821686268740355011064187180350102633922847760809028955550628214066629735433673653241724398919415866226931948227036007262366647520579864968861629421587389945390876803105935636142464921704457541695160624989680567331405137420152362759159123224880580257226181637618884946002788973751820379197858310495287313369387470992515746276896068275701040080565711038033459009672978178575381481580384105624756244192621203441264809326598823673742666930458138095374406316395124566428678098749124197296286913933477425168667581787752376224112472245393456102595615444716782419536060220016164206742951719746730687047972629846393164723829696574130950550589290161864742326776919384511547383082655227808054856393681925060755723078290464912286486272214180988968707445089616382960679386452361885478577274127841852394661431041259735246222962142157574507613373281290622412724834767220444935312082322644222248044221535123955937868279444281751236778479865266722319267727193086205532617692285079003579285435953035287969616650112210970336135145203897569371239199289896852281410990324163931344170332587208067441884531882913642074082438000034760212820538372284886009122323628870767073748688551118127285406038579822516244452893510823130663538463260740402658578779806008906546774274333831938933734358451480555513336581387174825645786631955051985874188879335399797204844887540426831445583967938638179279148003039358163874113809600870518850372951456696140242806688247038115923227750263758679883568297566824917333527136820023658470731333608504999911768896353482609682209207222308469317982248341861099516175052485136278431763780762804741728681872832311572156085022420076578896558948408987273745761406038055804553413146326777613949740887536348970191941252791636820158526821663856474624139987929724765229385285728332400806951093107886416886295697606022840742223529974262974172248267853928093937275162569517720248696242159400467966611002699964743933868537779535582480404878331636189989764603868340792974486990066844024933027716649040257651126462101347046733300116610392693075111296067753262467296527167642587622538473422227366457710897642647516058442571581883663686047888169308037141920378920985995877913794029952209748354117540238516774042760140928385974617741319685420701188143343123977225920001781730056692954520409895424745828669610514507962605148955335566111242622732319713268937519015699176672295299258655952366292373495307494396125716522190742792403021590196427544696671010426085265009814822603460066753748005411734144985218755569499346550340085116146548617864347466430685433706168866706771950700972963701240220026369216285366967253228424300787580549511437794402844881943402470948829533296271100015221410078877363045375453927534479219602936801928170339515060305552332035466123669594233724698326518882362315049193098078581678967770171985853768260043698039785864382105780266545204031366869114633144494721650647931511542523572675051071279517045724494821421326374860921441892382721394250229047210250835133621587311550815853019948592103304871250670455899247252515633998903340946888106080566247242946509624329132610348181629464732018908823115652960178172407926063915245172598029124185551069390411841271218455627062826324894130143262794138310009623079544074699325809543571355996518393175286193662352845097194335559178561941518642211473379991216443230281152011416272018106730655495802810914045321865755670102235014407741958026335780872853661554460489275051674284973204746680005513532913177742004265519364331174372878703207241342021101400956693692525548929270415278817263553120697942391256861811220473211165148940150737007524669116216103358394514425668735946265520836372200906918086301753983614276543107726024784714636271624322291814535918434326321916656617850555552451412830055205090807590856463307157882832743733244650282368680246236653354145411782958958964005876416170088622682914699987696256200836060335574559164536381526287695325476721716606059189992936708889275003306280976796007198339426867919595303132116898626247637682331725369414192011193810687041368311018114706638885847767731025628116750703637854631784456097673375623709556515875401250827669492728831603790485496798339102902157526993401917215926701868846401872494218423684536510746540724836767584697367033077565374325285377029491278294162483528180862182695174765485226877064966572983544407505640548472268242869316391278193385570879405213740534240995710443023747478060196554539021458353422315213214131429682550557807029913904369436158215815422259534741959250670384838415760890137369007345956438832585333691915040675164597706764336351827032791482398694810126471085184843727462970457230786045630558218116287090408849119103074072597834753964764164667911161585593776756712838028932701010366438246336763804283801065929757984395649207233112948541205067302693089914065013033235544095702663599594606407387386229729324999772431613307078828257144301556301875120051118168130122204318700296643394176790961018281853044208712587712889267163536616163472585055119915148505467737256170445810027348156360459382625415919182555266645614136638401550313738910802370717042450978741773272584112408289453571807036549538676402522285196038735204551235655541962075809202556977645125417398219452856041822241832443303385834446788061751939937066404379015047001894874665272838599445428322867295276198706253301942916319448747666876389330561772057709796379479567925428093465721601441273177393312534804214887492781219263168331109340356898454970150133127197320415097215700974171990528304240364655543132274274224118553051791523000036713292307760068945987065452440487567420832487014563438231156550901404895735394327654242479582939691464178006252676242832540186938807627865425466939475722890625249111435455649244632103969183310553188934312128512484046571293687911740196622363195207056273413478693040852644908488746641161345073415410846695186546094768778257926931644449612582996580662484766030909161490374402480871397303798269893871217027647610087941525587913320363676512460612019493561195280476878031306933511728817331133058797596145812291582476959990224604449653079390606317802975585302997443916826775934646018429414397020923210829775616817417206684570486585880250807351301091578600449263851778269152439076601412306749525903217589658287109797019360046222977391716071559557575450200854253165241254282921404833201553407636864041643198552067519593870352012640091973943887996445245617899420310615295754189089755325824765157194067730825701219877617573740075570751726576148133699977242532033320024465247172764985720360711176528689358430482127308236128226313358978432034307088226262621662141879263314250342344472447770552659461850014908433718236272593977617832690144084272864755291773047299098572659128050521406889317924315379372360703850686101676803260234235651970700683225407802038248635246049252512526826766182837940603655190061223053068944247056315174089123335031005764018635537733259928637873620953870669140335493948848920035254698810031446278042273003756784843908577746299148314845063633942364359920214660198795624526119218397060771849779836314955520451996258985331652166625943695504739855525634941276096967994156469361919148352702643852715147725235043018073174628676048188565400987000232644800154999575354585970496370762705230954696048374532435862140991534382321322687043702001877189059456335472183540358838987317099679222811643015350146179418318097620919673760880246775704676680490505569585414060139114227537422960754303917914231628920106810932481091596869288365114111100218015213954358986784270881245836658883814365079205465682019381372164140013192921970912327407950085460396118285824615994783930146336672751459816532915357045944397316864006497108172966631530868914617423589069738500466689201152628865053823232078709769661894958531964306970420899776242731486149330580484920022001309235221219052390337662482335401360975166492026260516578762890836000658100625000760541143502805833763676018562061575346252396434966919000798744430732455246174125187760828804353660127856327120363212647730578215116553733410088765253621635917275922520977679163623500089917649796438762389939349183358280194885342220374537279491969477975182448422511353581872491125192930594199914417544567837471297802571728976931045645322979565570882479304337911376983385841543863728717770260672091588494997241931884565732173371025486994786741486850942672970702147404038766635619254584333966264314280163530242727884830312231993902836564345105755034577730297543679541191384032030903888061151005518281479052939907926672476959660084929117766818610324471905919802565893059943293334146155470738183309018931766424739067046628958698805985323223970188064710580774709312765088616895651829257552537796265022644894464563903557300314396356558966203919741215149312090667346549654318493384441033330683875391716529160019536720961018633948694841763734954952857762256412562471719942958146671652939466107548039768644571107942733335210028966619568000457349563877641063965640813021612171503384618403984865570041538755660360493119112076930988090267373005458961447182812130437528660760343126931165446378251961224884016169180679328303261185049139497596426570050028903328434227874689590649206667883753696957886164846064188556523831367959807993324626549322040402070748880020750874810901457648641365576581172625036314724023585157337801787079773171800102697866265271759952221209607635759193171748017337464336902671279967618643478332610574899546426332888158520994584371460402052871181709230854005472366879680379567919255738392984844115680371570335469369282817621769800063680512337633486841519077408142850332944373750928976301305073300947611932200050464189090026881641364182147314467089911975387662416991711956543295848413871605216227696651503847723353389476633156223103361514709215372241325327628513657082500598898873979240434028157079431394811281899264471512539437369930041806883805176998968312365839762328525762705961454212711772001918538646575443655342737639052386937701659567493491404102823082823301048876709055108700334605425767282224276819516757970866240643387840738512911146136917545324097207849458576687409536566972542402221457599463879614951458972545067696403944444908225664413119880419842769684093382600969258096315950040648592965891926314718425813976750204841785155941902874744414295266059101214292537891902494578413410211683381895941957811672723953877580307009938348719217837533707472693114438535047564930302762191052803736796641373608950723402376865933624685718443390088230092195291360594351236430007386720117027264185105986437609030376255342728728699217241697178130886555252663669013675880630787594692510631999960102789158078202882737154637973916226884716806749838401888248694320702910979924577583575346840080309892003400204641241573551233256954595016766452924661489070305479859392441082043085573985685235878496024979951083733127703474045262018407173708011916284158006733023112437059422267207304891786678467134474639119323470855998659679705838953227674908640159867177869417873741111474005872224610249654096288907499888955769703778806854042973878352776381384672339241400058738117054541044648958794631277279844989486306121483677279532338591375729492527737468407870678239023315517793341081269832579636676981236352289032393910353758819659620572364675032641847983411900239159787187588168565587566882861546366760237617901607385791582609571440683391146721751280705726148098738445476016934384516523528963875988144585918868335749040077995109492543924620234741036359593721114384425470058897028867219004667647748814568512585609422473171752430038681709413433952538265563644482059763007291612649406522491836353486838700539797839014370977460554018625894206663517512091287237401900654790871007044322852398373229202193623220738627039306113964710218823800705833793059228819606672615378532185111100691357432646318468849101822224485485767607303511983563250138758152448359261844605740454004486684983179087605530432962305162502017211992293589373640238509753417170804047508159316809051427788921314945504192905314778648731602055434110506089936172903058282747670839892187877144573023873033829091063042441926413004782704952023428690507115723231325703081048753087044312229696099319790991356781661240282425167341935338418989571246470339922773465586695143224973040972398177168247003049553078112949555628170814472613934705673626305684655302907308664602643098831536575839078164795772255784823978259533941516863355864745016148100034246440247952550122515714792847068475252006341285533932204951273688607054963380379073234309800432634895559662354661659445400788144982161188245561567580367459395800993207824891592221584523879064248367287934469979614056022621416322911883568171808553409301791282484176640628979907120757048856907007625072965792795021854167003093379019002504974608677733744379653674778315585333488575653946249815757203222166992457805456226475511501647166131565346660354770983285314104691307596967836264768753297149419834973018557981480099602547781929049481460167743999317956076644493201587477655775471312810620501141820339331438390561995623185776315429699307273085444926413286086910442742409312352278683513276908439155692630877255099241858312226208135750709483282246952012988473762747191561500312549595122396659515163421130863550815261239638149983847976928034440554191162596895750423377346221315072018529104455891706992741580531096081704175591628492519251060239864348655221361612341928336039031698880715682080466237349453943533357264596170442713442294278140133488797099753572415638234608541283416596087332097211203151642724992440589938962999267923973263915377326578948605526395512490188496727549740951583197301538469625794063808923880589042874965338190343383651734941277828942742469046395421237165041531289755347920429422481136922036381257238160922032768209273331570603340324549395042086355662492337171568287958573389895365375163087267882871674152461439742426575313787896749094998262223326196341862840654575301590899731671139006377753931536958932774015757439544780529932321302070144342832980644296639970105315634096580875268796063770006936783336014202883995615980125772170249723356244998170143280556884921945055207088468927534114861842305541958963469135067461970518989358348115177168217775685863212590065652161480570806092971327850423120149893988833106431018928511188064218477658826719233414283599007643418609706343642357413136561574056345772742441661636327496204719356166040719389316751964175120458939710607208991562671100505424346035002564423867762994388897449703873281297302597797656444728792353748273151392020789059569187350307711642331727840691794651776293227589159351778178948959524190503191262722980307581046798081469826528628742927040080690758327733690711421689754559973724487179589072194688515971196486637840155596705818690948098190510762629438178057017221678698220946581893486586299229065540884623831001957910751823610216551393282576396294374695278497694137084189983094648287700785350417453667627769615617725884669076594784364520869347952282652696875318596452902613007228044031169283671821481390889806006036131120014176881685345762540847345310064864574500162476902880641309446348933941159896437257312493547658178865440447007797006766331792477362462125956375346407132544739778103875779043114546210725167291471490987120908473258034305586051090209650167733487986316930659714872472074943330333069124980682628612561800388565405971209377734667129040160835804627775908068441038910771125370478691728124754376987516533706708915235728460258645202622891626627132428377360223961535313949531874526144862024303237205285753183130065435032740232532359051867399239907180685438896712589822854472226461722609673343628500340699819804377486556927702825116499986494655133356690301249504140959334543364462125669922843685463133189497382577009236776022477511850595492646066691827270587885013365338788376839851862355573217578138391338177504177659661856729310378156437952157915388477441730035319555261143524766816724531037298695159401141739024550653921496380238743957041287089986601307322892105734198463883571237378144293540768352966715646637230188713550440335632414554442021466922272387694529843081465266259705170770980485434662461753671689121611100094093139950598381991106871029412667845125767042231591564379738062023683943332033094533066714182499846499294203682914818690541217570360848504930552391783396559838293191641614144614160572615046703781955548778010926819238095241030595135396978621348768872674578095450164422331335620861399521912720183785298493452106682804483048044252899888509949369487442405354521131212284356771144541613606936132490856315227303879680969410341017347202592539313273308317509489531164834776623956572263638037733245078694879158190672089192889531927685856433695399685759421407401325648700676297902594664505913607938761036388205161906462393393601593121187549817591275742284492433689008266504708490805284000953122138541193706112787660999469564812796691325426424448072205458516925023323477941575435771272116382913533549522336369346504661600103557986865464892200261678429836829121959587539476783651979966327001631544314594793273188440655770454141671924529062173501439971631363975282354517268291904979841319716824821389861770303064114181544516542164407294419824256964113739389337317844010662339701115581680556556601316084244472194901933562863842761700778349047592966772152226796174712929356650308959864412090800236504384907595542696385819943843125959450780785085534891281509799889508302362276776141179742986872781036554724430894455819517104870690258555519464791092241249945413123806181635189925454741136271222961660003254032181110646262540510049624722345216138444053669895736791475376693616370375803280465454473954997039535945965447828156621341414954898564707657619277039863784039468800763703128849061912361109397400254671920453980074518951988544753076944122693180044188484349934648762244086425817691343391116511769009399114369955032371707146542639448174050378252867764757887842172739527432376549646087649012797589903305291537912747239359588434492176915940662498443537254731308358586249358065352366407655950227064833386683876468574163543483080661915191518781006934908809330265749881116094986069516613599970150201785601202602504147560335529705835550076455533752142808140729493998784107932552565068624481093089435995139355833520789411006307292967049554144656118935075258631250587667759315812825902887939873900607526178114638823546532900448047149021056001423678216232712129835822399150548647064968412115930079588739873996395169110306588803608239220146298271673862211221000113310522589210705187897008880257824143955183502050531369186969055612824170439019534785947808267869238753417013692730075094289605642087514094405521955840626354704044144279826449376705930834590700309891347495883613227416578436849465132233343706144470873683371403328049893659419049302722368284600917156116174676516158340890680977451136267248471756070011313714273505684237037785676922192131603491420008633557444283086357423106790426596644374404177170262729020094575261510581811222470111057953389221514615505242712017049131531386727463996177471300744936801558197418780006332512308859930698699681993546748149628076842432143126107006312343878402030912679626390045583344186374098068700011904935845283071991887409491024106946362957603643622469105803728996829347914703094952548001893713230399393186076371914084907792027280501457840894257635995914186101168222957308652400117982771670954422228432950697187402105125892429352795601418453601430913462908816250873449467377470083692711440963590563153585135547138536929488055291528417160705740841800615799474280908428717203783495022046123067190487785866865337416468229754324096237899488476856674229628941048755947076987395801147451289076898715424935579839300058782268029633974263477204193550324935733284260380485914489459231584211481470444442305485587914465946352656978124128575466449933527315015555248490744184113386232989988113657047119168939534204975529309399659409848002117764873896260781589617483928349002989791479293734830884907130964453511195284086674341567324420097014385968516543304379484906659440920816632500762194414685159004398537144728519715726424574123678788029176876648229410261128401189080806210331503029887868340487136264593370217779940920802367021443603846407578118182436912560217526987746599696396782863100651803183520762419278693002160683768707146296301448249679754577870176986438607968076288411284191845020750385605126394282793748269951248884300544515038754946489745189556247827130245889016273974636205026352700468544879374050597848961040114775370897111172744695323257494523004461352367580986260885100992287754436771700040768288277880634139005888128972013504609751338362835659771836396249707895192259088171199027569042361571536049316671846322927977781931196949092299319036660032140485235042891447370799208482197772175095737481854941504677571714763290957025667623196072446227319023284570049593597729131563040185093696825323443089895193796206322099381478505763164196856753424705497804240499929288937019852651515322078259478189042487916624160706976689546722819508600533381903668882863774998251524202841758528674122284166552132798492200787423931008427768062830413679190974773234630580688869289270234632931664120445303017008885328987926051841309603048035514721359061721158578071564344961974216165502147985725660847820958226030667836298205140540563824755745735951048519659695755717435705105807481129687679888293524124551423684609964292619245425530822201454758011733170124950279957231124533321707945816740935173732635107268423182233761596961460699360027218277820159126990091306157297110612406696001856467243175118150221877095280524066471972985785788580648795366752626786669694630730795864175755367546265840541610444877632318002912166021063143028239021933833900444950019885972602165402472306130210671690731197420802066471320663395758370121533948665825013550719047774970719815804186084915215010255635274518919732001340220179968842778433840286760418252867445058722942646734138084379220965259296898781547107767769215178594276744421783908631297573424278794790477593014874636103407447964780525568388633868177645327580789107919563146114013036142962274221200572323140960955067638355031396590083491179439641129174418809026650439827319931066951066191834437560669454193108587422291672045088302774998867782082552695552991600910707212608063450344314856278331326510461559508508570347531057297546791701708474293409841757267020816186760263881208125405573298698195893307081756507545178488389888042150806408723361977864549511223647838571608823941027648928193787698941137818384400878287947023044630936300087189444540186342647893105603682318839319351268731826896337271031813215465010987212456658098787290450284988334297039295758701623190156389221515599771381760850418650081401955100526952068558000733897530361397746624690182787297601999181684197661591237684635253549278777003727832463395790230372286666962921319316362139364887676655375719998206596212032010316787942121897648859419237563757436108203403259250495079216913319715253321318043874012777809745098604252394091294331474967677527387369228130152959633941955976074455986263855516822006342457517619135317289039758519148146839689046060703448995514173689247388732840752224890202290415033704946856869947773487813637601497326517505487351527596693112120695872364144495994753100371115205079150217501161531457225820768152156083622447204515580040202539223613306177410440593413438565697402132975006324051546456005755086647799256160121706738326306829996451380555602225438683598076725463478665756560625617043223647083475869825015339259969143015399789648025343525325129057454162461980813161682446623485253100431907332505419612828827925863334258824444186756258084781665935566730919330473400187883696295766752136751123298951897847932877520637581026258770197232865307695671373472835683433594655523385308251030744592247335260856547701955345902102601269295145066023107351599719726013281003625802908024827600845147157062983803156852326633928418035882571277452294173627860705525638789997302247160759586964348899947245258225092187901796703012624182149985423141640209071236313753555220870585311493123073471734415268488199726834794494296217070375227822031754435212013399556118298793720618002634034546242607722473210065777037876906694248246121206376260275728069156886533640704231250169157123372274355862383661553238353991012101365260789333516201446076152951667339005061243654761236599030290384162461502741592966593289569912232732485896627525927310769562640988757205681221563378183382382084701253907458928291687905929729629448088414856793718757860434000772114580958964709784173629492624013403578317881701916102762829283406473406293209031562203846002711947244081214484716009962313208522698001263051501538350489312861410449675398866948675764657804768151247289042212932265731211542918596258191769206925070995427696580339196921838499270713554888700422846822470191576955854203209864609701115291020362647533760338476861477820745649020369892125995744658978802670924844461043878539225686110525518197789139801256664821377622211817221428680592662977152213337809603413216520264971312726964995644309821637794219680100379846375148258094983509276615845650799245261422399718908125841368595278783253798093640687867537353759453552700642969729085919943043490873027372177202075366250193031744348907803468144614659233088456770083125721236133682567444286808860963221489777378635108595837194713324712803836369385944254283221645449542737240155636002392736473139961904960006943988927930129286739314977751400736299411846993503639573972279860784185622063498307572341143635781949253930050405112158652667537130887936525531445450505298798855426851057551924243663181541351858932198277027144122850708736798373794514391624430014436435894844741175909777054693528360977427486116353134980561199773416672868591678267269656348565412623948747578249500281769525127956496154354629135475546452446014368607553679606281711609525639729276653431926073838422102536266648014659926098012391703018047312167605717053131822994072130618870712555415038465543024748303464918030225920295903384659077124939472404672664354376767628021731366520929834668767147596229617203761877352866127070808502870307264375962005650904615899872474598287039574093781470628972141541285288400710598023865854999747616085425441822872060933979845914214973357502298470263825829806336778961057635792811589695413724321947172901077308992965498620837564660732531480992538333622799336938796905907252518601372056447883775501984822828687531047081581416451571931119166657190514087178587072140332502931600629475424999412675407126212347710369275018224364576394276180263061047313984888615337917684367619265414462199541683736287635491156189706760793640695283632304134128353872356060862451919179789513531158389421339760618510128551833397067321013800009942149546362941217085313251446490199214384045746996163038791148186465539618870772949972592351489299794513628718863772087136417169006013352695628602651895300414245551240078094146916164490591515116070989105864071498549140218710181895866155399514885875374104421912085857566689034449788108571331134459220896663064398001917048646436493463111640247182430731356749699697429463295576726884796346191511482650822368174849702642346115447756139215847861355050214369604084270993138658772164950724389186450531165002190685604688246285894997361570672048789168872217329218158751068014796286652202430622274558119861119757421789386790396608891903275257805053401235882553278250981844449147857059598079217325085436436263006670659845441300980666019872712092755061298931422268963344869955521436540045306999322381261196832004898591098991846763723868518348683604955709722335612030209985290321551217561035321458182281145418631820862342287614846490767925882908547537846767739547495912403345066340614102630212405270477499916444011456093047562394876201291327036313620002600091195334025783033923775569092362161608960911410739862068198730281354226081455043039331492647368987998726210031362101754871361477066280197100478106647517292960465827625365498318935965117894881624206366190602360959442544214782816881653468514117315875521291939076149396175613963279146614430935077047615441261472012079735620913859257587764015738057753820272121068866227884253683663780924632566298890059865246379930708532187145447179329144775622524478577300954090983354179056026339647871795726092947861931493551464266431608421527043279235934183329568036761349186406551304479470356638222913655933141730423735327291010995877890708534515008231057031888301983465454670059949794256689442629874409302963006864270941880345184852734225569207482853956000635528348149565336548159958214560875767624226322639448041690286515711474186599890705654830797582085335274799428728332500642968382179600959506835506767845286822025301138439888711703496519781528034328064408142926474808325366153109922414235466356927385601762993260673029135459514811074809251078086036518122602714280079473480235990617195840953019417801917700953647727609235914566945379702744699751620315029243997746178858789566123613347046776998099123453928157923195071499627219045543357356767311767863843119951119760214479525855776960960385291881088256281085579297426611941055160564358942623087902393750447656039937122199739108252977691745929442360050810184063549297724484254852016670727650055440350288423100634080160971755291784498939507013568354591895277347561393574184118591227663317253037375807049986180366399806619617827670325054534105999456482670117549093916639488749923143310274833784246523918653583315719847629358541147049494500950145558508479696626126555558777872136398312896498122562583410255735863603026609161620085915053681339645008435039261660138434303592785805132518634886303488209398005073525249927450099601430721096185591274000411738926961780286732649527898334209661494929502777223872632921087607766707798456818920324596230627926631835210661396148001642449264157120325680567634131263117806691979367438039503200365555536031301630480136857060468736079429466383734713437489432578294519775963181996200307417241919152727526124588201087907804808204498270496347883094518013988870545487120178310423003971563349495488638735358945485439380093637252362262287643819220201905047388385359050280049912831549570980252565549612325448944599429662436028420882679553857258934224470392140235283393770090044384302090300180444922494891616779406064400634974018569651099939191976001565932489018554579761121432277165206195395525947405396511341892065788507925895853964182153021821318842974476582539781455554071095958189078796516147465676073176853055149677783116847158219671811846774631818788533671627517495501471112014238566699401533120656879401307588959863830541670747321537132345125774334970333038492645228426951440773646687301776464914758722544427148946783188753608239153657653844610239527242052092478771831827928902393344510601530569996002199325273925501245592170653829376836525134083444579282824933258278262687309386611503924380341351974808515743309052004642262748406583097818765636391901822201056297174068412655472331466856049389251942543427046384285858212298460857372096393259242185387934075829117455591333942233631232603101313960063289635529725562272495367927625598632449541498295548958911457604107063420363290730475739232534290190745539188454554871072589222874635318336772426517748229374509019227467124434856577716866612787432474352946973192250093959175517560949435765662720487172881968460205326029179770194647487155025904316974139763659599486799042074700432567696486046986885798897197230786428706130393477468899935349039697307297251237114019770282012929498187767363033929302094274900375049034181899261557788586313145731478904670929653543921424735776336500607859892613531927096813865273502098836573868543388951113567623453475211352607875746185275707868857280408377797203696300812217159362605754984596518409364306288039497162818869394498683126659184493773876957520456819455635156028158504182443411134211404337995673165124460147119769821203579341508818939094543032505075007179796471341054454878936292307717392253703667206539231579267924932353889049883583223373394134176315417991842930975508577547532471019463011246378339317231616333834173522302997513874405167065603198875967011525146478914533942580872932420282269359583589008844917075191192847833387924379219995233778131866267441040078243752475684859099936527880515545468072294090448263735856979141702767461030866970576156196331169458137484625611225791011429329419718507716771517664506637037293733243939527741988032163622209113105569007247357002667413092028181584392883891516522162161322780888555538390307350149888484101519393117041704381371982211864816396011372261476386363287870498161823027424689616580353645459281368805216493248091105417096318770856771407752103817249447047135116853379224791775442424151624566761373569660954601632194738508507777265085061314042560914647790850672544803238918373870799838835168915548212483350280139358954276643504169718676572717518473409250086373552614439125347856962867084140836777664440964989323924358375218221027124761387165947499446124101094134947714447500460131220855131456282421256128025849926134979845809930502128213304371681236836230392518318621047715034584010651129060333804744284988492668139030647503423145934695783790187061027407185432277237336119727970539222139970741480064524348228671924047910802819407854068653112697448281411199842644017547239373106343128246786701319258660090075037760567085024582042592142793096958175980209872224057095899424761977934703557311814285263362607951530622253889078885855566340106686077418231377399416252710011775835751158467811409616011335017239598699452259406356839325195631717790851605118296852446072121061084864605092904025587137893761388779678901795478740858667192835085876622170755363094658825248298245139020444902330148730362822376079285229795512533398163216370503497551862030314916511447333658024586212392087847731492082568397239993761450055776673727505543379211290459540479989987005228415453122177368431704773038949249746848650735460130817783649308273321756745394197700477183545826163240177791938662880292149414007373502621390208327245190460213938568683859444149050844340603874517650066551913742728023803080397399881684764118837446268206152097684748742032755879745277929671685964099001190882570079789198777556085376411716949583858229255380366234882508085850088704873209277651103942820866467733203110920948705885555151164634905873444307354789354483633576641919136396575480202141510984291635142833246914677851212278348055900633057319369724811437468866544109956057799484872319252030409696431771644510559284645218413735077663302998049948775089908524475170574865410741287594657495761781128197045151791193321303261549983848270818265094199084192957742835409247894706337553423963279085341978176297397905437027811518874694944475617132340928974354381133032678948717144758739700151303418565957364736047485938438909356028867067423312192821350733283543322155227290405826569752693072109001254575545443787418853906807318436042489560132838469529327810784350767945367735941215881867242723171233368680110203741323141422334864539718740322552592036357148539812350812614426528458349920264335832543767814928352241416793641818823561600957475693133013333507415119227044967351686155314722769644096861127499272530841756062916005690645468365088603652270412269230383848474344688622966976442023847690155160354055351957908036505025973074437481687788217295988531562005638138350925722780056180729250911834897287715791740920225429380152584375916667209850827241637889059948348425198136855837399447559598866333343014223516923274373764798818816864035928070746874199476597195427778960652868974128025456353974308245987829093092622537193310594339122845540862241700021960899534553921611737440050053201646995791426339201186016105937597090704182643034089385133197918946283990274498401948731179787545063183170660817644883042536300624350859034036511789747797628239991705341760245206806204814087818581245373996636644884200227311187006647253865187819665909711612813491983148428808953009581315258017352279463003896070406508027122043011469635477248059496703982751303125010494143415973200591282862342463693202715676838231683786337264682928405325667775144227453323536796364465873608744493320956920222036894502971013053186663612822128794380096870051837050066487162133778795059668249051254531420422298915296353430089761638279973314958382476559744450537096648514984837514855870128976196965908149084808432853627394687392116753087838217346640753322314606674979775696199125311888095700110711748915636783235941821201969416520297541699006255212333563063103606803784081012199299696870754523660522684266034411861891456239811746388781337703144532910378561411069367139182997547684886266409953946395140696102019212152655064282545049326971780246373976293780922119173601333343146724785964286688795559793581787457494321910106183938273923779175628158614489264584405743366870219330380615366905650170744360897652805712617088636862506054777503734140441590920605438998195979051594612528260005344301815966308119683782768668734586919909795742776838678354721311895022700647838043385031250268580283208082201573085659550990436451955604784011609320984608954922604337136831871368675089648544811816272692163993016057638072447336350591876570108372431079322128404534718594471428512570821637051003558922720002935731693002332619877651400411182371935844293883357271997227285802179470466247712567277715565406317984727083974718475488803795397488030774464271177263671027344136829544489122544525567940432497784746537932978588531608602388998417498154382629180469316757106869289177114639630657744912617117568262268886426625134434562847500452060208461179222158077319093578638304280696268428581815148490713862237520691151075964525807391997160928045360266138307847085791665184084720715762599761391153327477980458214569840630815448412571261110738218804028929981626191682763657938091210053466565884973647833388543620891887621247252596690205409354263136732775323726186593911110477943035254214658415011394030664152050897531080235022645843838878819146374394604455589945062327215695567961921254746323518079512652247898000858250430412543431943872281464879750968839660354850145736886532200076956781819591254647050784247891849483626475572167807704559734672512808852185079129326718246650700303566479504909745455617505871714151846357365808989054478894474045959939351819200531744050650906646823663398381790203181644709824068052621198537862439903416193852474160045223733962246732657654471865799939032564843415089699306947099815955444408570072127955417748673375404021412424063260544034771174874243963910691745302333363108896596373902648315771459917641966943063840069990056268647103680902814525516826444731550477349049728915015655666620095180322865485098064099583650450076227755686701279975441774234538352386298372416062378029480860699824914200478859004558505253189949911547198134554622068419876373016867087755620904624239489402964998252432632973084995805855967105452452203632341654362472871718504747074719507444880828939594259873281473208031113819776723035465144359645644357396641225784645839647381376542229508324966566198826538031717138679094724065215434490810659963365371317674369922660756946546653520040440116167746830794841058842654795169554005567678057240676766526430734527803295971036982065409978520911473901554732438614628378731727814597325556431810989976227091062938888455099274499274139824243574678514275400450448138375783613827917762299313002793691919485495744498101467438920962560818630808142836707622301358620715887060619212191354275115764054797686024951792885537210746022295774861719237358498166274560402305613090593877069139700858000475708166211112313106922244621551624642545418036943169312298044890912362690406147532116923420233816821617928795360816728691502410899250848892732039375459792256215778044465300992126243544105533293246518776681042638742595273547556872811703420822597606827816177888661474444000387822851993547185300921520278758948562310768187244248970668573276360095441447426393450320747692688511307948395478646708657613927815182159364085182630091073723453783633936272689944154775487744848123979515604256812105622663915430304685927535685194515339700158539761564566460696754139296350372030485164417951073520191765455442765731061334857905766354175848804638587951342752274021611125200656273152401991407896662956202597643520041119073764153905423463582103076481983993769750417619302336975497984614106852693165931379746045278067578422080701078772646374905805557022500817011152638109451257281374141529215406843906134168687208649975371517531999138181250347950801316959702557695571730241835810071793308737352218978756610960011046062601722199981431819857936071924726902936299240407551016584543975530709311230536014917050815091246005460920236381180363360010746457360349904938583974285175484867653581125357593422078639835663357389559622011226707018193390484645044153750853754750752177293293059986984756995968349014845220037752594236123390569394886515605974345476943571952250905261856630510353813901189767376942438855520629788698054657238884764327821486024426425331263894777265762223747725447551947858442207511226155324366626478680146968733352887716271859271540501776098422836755384930564379525764373621668404842215613422182620280556763048455327166609104053043694312743707759019713795191783394632612978670987764258922406063436515561736543317639147514740363743043300480384200236983497128801178618958041751017414816857662742650902852124210949658741081867106840247160995428585692560424858439252060003786295042355072984971025405846989129788722162432221356900531491407674966561316914690659733718793676698964022392046323877248921262597145260238770003724492330606564446169705277605539882471544633660476480942843776402596678639084493021562553963745337589782135182588410169952285479488262215668907409720102620214983003229364594448816897352287878659654331964836415495902478513877348417031395191482724029907720466671384733518534025696871301855042314572545369265784861013038373681324348744469058459121731267888612378316316725183287068330463644547262177936673171574310389512861306746954512917522589420074064552165717061232834070321645283729488630414085874967762015077472367822598437356642729005009706180378959454255949316853041016668356833063649166727568680300793705202974953595034755399879532218361956713471753509731208659436258808958571705826894924909486314095734036366663814774217425641571346952816334765628940342952990680449416311330912901901895833626289239585680344255845413492030088962860510151267048088082651816225422927116944603652008614510882798318306624808054888013880007156590627304657662753140200192981707141960195911526109419804983364920816936463090692465890896736821325079310278016923808861814753193079577392487602226162301500656160869944037171655906981000708983177493811445178062668812826634396699046855637066142001188275031180026645005551749371763580905001136023404538754443333184621315896401368081691563640624268539133511255803113197195729242146797027169381286639063362359373821417718394794195244134233716436907818164824479272540408159031957543583571561227831634920174852342804280507060650759385445891843632812602137820023822192996915279288729860733789468207427074245100028070423624431167477992214250235712394232711804222513548201036602310885132530620805658369020893849532887614095333200255934605716055677550242031243306989827192099166056162961772014227148575661180895154685459937600972523602244777969316562439823158401952731395920779416947438203827443501457046021089212597820043640030455311275016042838235970275483597516503712399946574396835658830105243202292073229201669053057378193461344264296815205056471022086244124647208715360798139931692286141918268722423004888557527675679324929025031375468600958269042209619699916620201263958273661977864974910535466080876988637791852467006092871270929777473906743921037901876908855921438946951342019100879237070886049226959189481474329350851560901249880629762277684438792243762165084601480947079935228276810562194687877005619486054205033874909302419312836882146448745674645821807251930358105116425295078023488729524054696791549788849339208917144446717866946090661738266973925864424842367003797224261483948476355847184743081714561722142792703457274843797741332403015277695707509278173394755492306436163921769152960233462735003081819093207887792008429781429203611065438788127308965663115314805474998935523286948371835944473553240557527074775392225711896108980315814762074462635770485360415293429538681047539450692290841426986194903778023510650989930469193146161170615988803856896989652042456017478171078466214589794712132046244799623632703751311464486579801171872203339653370589672507449149721085489858662200787559409714159606337099842550282914720203588681313425653303610661100305679945586572592155790343988506177797658114312531715269009724962447167716381354453276424690388768207414653791928823614893294922288089860156016608946622069209184544531094598072364087517826359402182657463350705526790368584677550923746542021065360496148871184392492444634547338265543237897154493142222459385763998296621367341185440445854951265174899651092618349966831548499028000435101618896054103670072326788571649214226746921070496019928637053515080867346956881790514731945861099907061115289421315926454743833739593853494590009746765628695800323011777541031989000982808539198651298363428208645312515720589843882334996394942375530850868382094205137298072282900226282478748670937528497920703063455886555752220356460855707884053234780948401824610507585617184939671465901153539179259184279076020329096270679888925785559792445975225924894225768260040764141746300227923645675138220559670846516033809988302654969456466394950220521750332192707170591340844565169267014560277082386134015865723435205908474325673506132510897036054654591827630430206589540118413370959422567670067509244131383379151208310058665698800281076579471396292135075695323024542268991493097897891518678396964339389516549888620016300581299573817781040147922008738185916400043483831108529055102964825918836821075442159207202539665969172041529420547916775119854654491981265261623073427670945083640401546127854045255833605327544296111808156893887100595224983586261964921612299999935558713078426967163735098287698011061563148739119554816693463573030279083295753213208894799003474607011103754823667725695541285535404168197733881901746205848194743745569605601917399905718981477844038614196928205957296691801741232066776047586139639275178579301878741631670485193869300970054644888528192738066811892546059131259099651118847603912884531505225712241082360854531043817757855383481663808766526963261238798396405198646142661781788909094130946172536158170330587328755345006532103035953582826346249495962082874155232714590841886795298391193103319056372471011081293192458541492853370788650696516352032404024542853765175632010308016818978492287781033937983479327008314487080341516281727790603304598343329201441505599990668421388215319799004077856308551354063933350652631223658524384975035681968737785216870302605235371254690830694596777524733238441034337465134216095518483209490618209887956300978109278948039346934220730269008138793994387562696163622756192600878389062033399055682448906023754967452135468969885561859867183273754885039566764506483071927215664027633613825791914849593800784947788509342175195607348238270273588840930946839323244835873135782906512744308808593348124596254825520148991429093912263100093811109700497479247743812833059635828572194038309903594246268365288612877297339307467858011979144532383680624059426558097754558958379188387323384343907727624487925658627539146265772456057771198954336430980823992719324473278927130883919390321352755848005750870022045540368728564172410661015881256724161362244288934986797888398133040383660527004472530382048588638262324120022225471745528844011323043936242367567282188769051580804443256117520538424645241861229914439631304131335749291261535399694465995557110638682960149541424867093305967976736851149709152581449392971349420859525629695202843098065450838776508645618356633613990296013881591037194753453577676597929469887918641032213931987433534437969850853328473432413155162318650015022279386772651362137882945204506283526283707741499097718895109227108014591801329516139037552144601305461934408777805890241849165726564326073393722157469295168842708535001438991064703956543604595958760567602978306140512485035662572828079502583967374583094638557907107141981898032746053870044680332140521335861729582868771150555133857951267603576147660624805064547347072257730165709741388918617709116095480043940965474125162103866180114955619763593458638628564501017228456479125670984729250612041044220949033602180033500458810170760352728245952855556543117777571197880219173725110589385329159316226933963830064113831548799483518492857191329947445108815182932078242458351285202832311487866279996683732630735496054613304658822786568913100699884124269996465993221321706804117511899683626045092680265528416949865496202491631819032197101585740085632308583683032972942438033193714184246132681272378820613094798819776954760074112581576502966212861862922154689357602776509506984126606794448324996794062078388012726031637447853886665987434642096296722815755965021188531397287413000951246834120397513013497161126957234711068890855688802769445788641207533727947495688021690838530398093156600868011127609848499581418217207668261499786766920984977055137961461686197139234972459421992800875867682125039800008509439287526010955962283836720631525235571066061261223207882999201574801676244347004097062096612984263020739576374971912484541186189542856030794291008825455995648082319767723790708156140732007497160281354864052633725584409869083726528236999954005354177912193004837182491704399561494666478805215920741421447154305437219503724656765167542621027681895101416968738187095418757781707122589994064108361426120005649104493870740491587677869610553895167058964880017206395874039169474435159892348591740738632604847656985396653563097922752312148416786234749597102527900169710412005810804331577304912512165390523389942673437937438779936129667623029593368055234186002237408737216107944126381305099348712765582903023575866436044494293497348015659607363672692855308859000277988386996012304487543495182322687759505977498770103469366822600725986167987583581469134060499434306315852635764831793308894520367621748189263824468520956376648039623613273798055664918189921705351071014392884055467699740897671350962169395941791131775183770656466803906002037346415476348988159315957534730089536388001713545289879760308127323683321538894692337478354659749677953339423217094152063493871055039226420492685916576188968763899203933406240769357856125628264804605795374841064161681418785163575351664363721330550150422050703873832391097390651874445822348985532171258476731203893247301810720880274230469742883838902447157940031794462488025440759144915524782016901881101417306869730102844747534130726483196809564344302639453476742986948003769761048852084221812238101759824795774064149676603803893182519608567814469680310623070894303379409946901350038966648606339240817990937868243940162718566199539703239787662950468163908412308864545681530856710573617365709456861031898653005349722178528238655176984650489135192358826022923222823059830114658069563921867748196164776864824398464870832126659327362342638364800269657413696922506760722271316994220721421814108362076500013804524814087846374124518686421698096420932752062043616563903887230273266783436172744704101481339821623600587553022007753411643506388005638251816820610681166667092614546736128764891229887738545910547370796810274415075869625993472165623154164603352658566759210373145226974078332891722847389807713653939195638765858308336620711083846792681980814641627039525999213485939142505360284481083692286249683740504101171286243863560503156575016190011489551086958181472225307731594179523648535742838853082560615909323298125913158391684908327258365676452945892054254822438408759269230674626062991009517987101680164888725265125837660186307494265546644225443035220174072922879103497366185070111343799922429747426871983323579871508786005203302298148317935143544524529863500831968643521957944594136376690963210450719796023342483123594362771871027832779104912611895971626943146316358243694110466497069753875136998369901078416628988653619199607687676518945502716635006026150830470764676162497390353219387840231299244091312965725955306968117447253479465388571419324805025730570690442333738801976067049126511769223477759975911705527982714675681383836818660455921151331820113666201421227298662619713672747377832673907470466934667694264405751746890343977371502909027693191741723231685622216562547426390942268477148763269835195215748598671844184440764532472166719810768559077908777873892902953920551539795684261187461301236495152250521546362906990301711723186803559904175768326368636287976203441862108585891749536894819569175326903831516077738247793969121596787474984385487891496793778681624380067004834550826983264705955306755593200442124238596704552253007681254217245193347064664658542605267662041323169285900021642580205534512262414355878637352459885776188470765572901827141299453105710434873886088938916878787688997370233041944545116799883466597063365610439031226294847210808652062286935278360966978796585080517081460505938196977471387080309227014867456317794308994750482878255313064174490295194964943806486748996971730314644901523694767616300675362616109264120169126536367476033008170510039955395372108620618059458007667021229685878521720696675342624248358441969658617432585865269732522327770901166989023427858696298777022971125096135725218142389824432197584776111524572288804274354433090666837273379984804908583354198887163519078917148588281429234802153667328815867319497951180944027601911039790596829726534283780257098369383737037631225254248676510096041656257229738953778094864210145972987981422294634542616089873029087137787883495951595783753744574015596585699077471100390369305032183834051206310221526019310841740145006731600866492730369662280518251271033850332395968784069214411221636686166337907934358396783533151522698158971538142148702293463429615507611531645962445823999796733914796902793023675170655310294234322159060963709503509291877097804917663387541825518087542280920726073993984866332203416653746906383580439131085944114029633468996528831234071046718651201155204152551160767335928669635170299929477374399296608291265272695238919281730283420116811287115757836518930805097264826706416485052134759658388471835146294962540278470276256993156076123721023861812081729418564287761794287141938382541500341360168951818915218484760003551478163546223229499996516510425072241892868948674201160515893604365451209427748124623169879080373843605210902400138508612222636285546908355770722086988437426859721019996319751517043309528505862497611555266701419804686687345202597332112742305114507026605967764432579191735233783262579601148568837361693108873698977343777816274824685858275712669896943199884955291137893208915133309724965721039164482648035393017080592938629188141140917159999455422141537197206736202342017396938171397349402272599041481245654785766015689974778378339782131548718751268309657117046987828534108637552203204168916210504981394816470058090024286930759663874309845043491087963388172472220992189964154885280978222090614345155471888475359325368455063432253569625459516309321550368810594756441549624234139576769921891092420931965768340682107618303351129844953970633096173157922558244002466585087115468412001116349162616692177186966037324463075251904983949946559457735969496078113196152842746678358533896285786132871785464624086860186756427411408811352637506591355865777786348835684074410593402537110570135450952698399560938544454645113134446336751212912090297042175495530610864302289027505526012433882745432898551194188282330934869782680097176809761568376614330361032806895227304944825885891686748597165954725134724832456067833500044085022377703424292220692130929350505677719790665458274623156004693630088640565162735472688396130460028569830132038882281695972132532204078880899106735701541934819948522243042872921123138633983281870809275726953048322212015235573669769486703130414680518202736482629734244929124283657528176194399427063230597155226580018597497391729724630380483720091353900679386983959932039481956411655625329602872307652145994080637401000414477669636502624066907599201898983555244486181960281965397982857428611967326356823752252936912059084842777290844921908878916672567447112201349538263212436522980984651236260867871138402603638336057811254028411354146319848236415205393820250672721891519336224153530349668171321082500506650025534144403046935890761937461533013732327628809887068369773056069279830370207921357420980626967117660678508810318408411775839372575485967399873642477020582007596742548222505434892645292825708688655829618136360009964767283906310792916655547772496854346167678997360729490508903469321764515469070086486714505540643612220149353954020289552764063076190334378252682254032154150803732331709829292474794710162815894405053594466841093592633825127263555764603200426790157403160795074227287093932939782894204326310578021565007515378511383194323707598829580151222728158340318783734691190288868043903064767057829284488332801976250774458372131793000525385593880180907173145071019271694646029822092674073524201040942210149022885219382083373236803317478146534772982474628305122584892147313426832866219862004928548379675434659755341581708416292950932355870636340644968071703294341949124717870563718913158290026159693404325462815701229641545760407741313981910212765538146881765682551889047400564560925853082137989658508237143596607899304988613840084123740664463542657321825602126059597758097131271666715552019330183274827757925144535650418552242117999845058941276111191997790416220156663106853545068622520574670398528921756459801113213144653441753594630742281387741622248764705737733786394118160201340611815341203879172969628619357183089959472932467828654164177336869538138223110765961455341693329814233290190736464861160972586179990979996424820634689787495550308917229641295141839352391295025556595815037254327927524983444143800276018692811678342795740891147453011304875471945866605673959653093730139837890016423866749755987931145153255750521586040323050942277229146306264888984903238196378362986152440443142018531918200304712765008101937028464596780785030338642341452311952800086259751525496814494371739255849404051502011370268766484350020880819602774124955687965934026228175540773913117291381234276682505535481923745688744914401833449385613868115568598249012384324778893577943760986151533865127407487296448083552334225603357605995184220390299224510079042753117573472799393959709678857388586109167067057219911364032069896234633578125520282839904503395580710552227212885420586129295974946269712165679078959324428674305771464398384382665247873726137621737625952170233930328235224670506196797944245240012408443886701322486392749651194510626204939224198789695092462601259857952864143774613873539033248451823854931150851846225402149048589528819503158400777917917533960208138341625143123623289019289161167910302228643240546978658398794079537053143161034647467087508246816753919812599922119250848427991045369083992587217080923806975006927584751688268457644439791534646251168730113856784024606278229578755054938869930994229434652710271766931040090047895703145194917411027865775734724458372892692399404435259790478449709557448624786046566564769390609051112888183697440769950403685597922162827419421086593647229161993457753686682749997317411203655156479401385163597176897758651699295378333449662917183603845009462565250956150950633473739880648964900856942685461445508007504470691380105993748276566818054245871356046377433263346702228387977289420913232150942588578645904410638785730046270955520174160790032824646572046187045006301518347483651163905484972353545536614802135318939927131016502790863947324600754265416211751943624187807593193746017218411445352578677006034554506721954913685602895589155055441133306612927886328073234254823968815885685050801879987755683489754208991510346055921025488632362642314761084923257440823717675719729602894457162892201508463435383962435067666952137836606124054311317977576630011792544778602648004137363268265322213830822393501199637973861920548151993241836563880270113371680690109934794108511605849732127639492279585942504836182343872305797659366797714987758850215815547675527599419227141151770937105952261524648376904694841836977788624889602271537104653107580748030894974200449399072901406138074667831274436205212002578714096931372203741881667291514856988410570034681478801813733120162372264565170818246900256441869271201388040581744877273540619397326965043424549381268545281628665855219698585568859499003303894523398189752682727598987626880263848186045532148754704353354457569962945271451241605622261218161793768358402873343478756068573082463054982051403829710799077688075503731696405539731471382299546841312608960644421118385691360651839422939809268740912134361037546185004948190841225957706434281949769498590174928992877543011356352174642843844609858980065984869582389478622035111425652986795147343050857611654487963574854956313878332038509481258947746993437518279060806360949192517364986569221798548195800154907094367885898981836292056132337562571764836825682938592982983637527377603145545557509923674625280743210643181004259992798714172885919399755032879643941181940206447816472277609642964354542543160230140636231875930532851118841561498445115334163361906058007443476891598785462973825005551726587811624888786938008199296926102299805746703048937712235592212712360531654305729525922857565806588840969327808585709199981130703447584093558937150501747981213428436179456042175344856229306074701035683012143596979022621196692321073001135863366012899069725077732377300695367411683930999597111196877054215600060481269310292043238895042728198713325502599934960978433909918228680581764235738391818147850731808628135476591919529671126064316042907825585487195939202177991198237867784276773161454395031284384623449605115248761629671523632528709314375704462216629428240781656351365214727677609449193058817759927374823122133905735367077995022231340584038082736604100010366697368241178877061823209853373959037137018271750413883051511319753198005903056352172106859453132952627913881470385604282904629695528296382209337009692170295784292607098464806147801187247330958846305966346343023510384866530553495521742314669342860309235834131758302449730054038345649903703977822088206111797785393695189487731907818852077646715002765500093250488505239154816858449898505603214310556267732822447274715947832551697495931853741412360491621367366670316725159052052659121595019155505003396489626529753426978161873315746394164065268772193033754116820455213040466104133133938713317563609263797592255504471600136353167042898938215749953758567477538275887185692747121374434673022497849986336486415351403778130367563900766124985565783376057974138953788331167888902695449813393194141586468310881259328520198162050810339318968300926835530376444669401891561119717555427866881048173910327021792081022827396712884343782800940733259409911614846023981715494688630999894926871075139722689451199168261738086924368482842497842379895257641642198490442179047706715360750242888525680121182874137292900771843179235071768127623124237080383339387370385241107209478963305581273128213631593295168161088116438235486155159415016280753234012385549524543516638251814826973968881430769740016969714445696228017495677053785322701018515669466610747152257180705669606989774115109190255594167436825958706825455091113106862952172066199691454084186167647430405221244610065073386325015721081527999688862518464825906346628816770466306680603617909730930028109784304041249096770167436109421735861419184725425106438809932693941661925144660420001775235175064891054615690843569276731511331120583897949998516789027513365587398323591203450674598400843486126584268219952153063032052628212798239300150515111715555428075677710552954110721660013144293753651739384199574056826918793959300808362605232868751542355745935642972869770681131464354666971312497760761405964684992572507533728317128987602681213823277205547375932972654123450345929341314790673316955258594156541736914087373811137785036602941204594692771247133783410820883905529158111223872797864882004510846344118829254527106640859532537773650191766001549205804599767477849423245902415752177255067846320018550198486860326025570495060005175069014330017330382228848570190405323750203663461903608514859536884558571461777663531291791135531980080053002325677839390612444104478310571101580055224089461078434641837351406792246179674060275848310635038059069739714670406842037867797049805616628819790287233359049053043815427753466320322700701305949932913869192381086413309655917383506377570374878146324209598393244144435302578088470427901419028331452104298472605581768738478987326492266652944091032078823784232280533018761213119187963813892360448351688415041652106946919182846436435369609157051607543136733064919507938559968128830356811022976308119732248663266416359095089452771018714534129215598802306487855793470767633565780807516148447289876565372558107341316126301108398481573746182512879101205361989844572237342147033272904737113548090927343501298778706669354286193183274220989088963948666000109414226617454491926660582678007151917477606144916984279863988962946954715385453810468137572972890984004340161310872667182079912794793750296296462508869665832858891671192608274092602207153160871880743855075123623221752859870314143872191444281055882524290322809811252337652812053574954240510092920307427695313462859823795883150734606662996057090608373948735065565976129058386963104574464733505799268595115433705184209415245216320639922357508862242594811570501595921822272391381857081336692711854370016759441029540436180844869513087101527919552113208970413352186307537290499743396425402373591097553139473271257603379629092682449499812287585313149907002446800933080255781139833054245399967637551287683178409113324782568702268159830669462266282567575872687407685138379718395275933810151774386202863510440072290503622881626649252973050858285422578662493295431342363915134008558281363631197730898347273289874912125159332979293489601373641955641396665609246247320809136970242916699690223512128353848354216604510667614158903777553688786165736233852962958869428224692684503316599181815022196389753610779786491964975179267508649704267575806975311915633286329531538331926143353498352057754056171542316171672799096227988667074246340273483669860115797712326125393792784431353463167052520395061660003011186667850384799996483121160945517185631273663894550283912479618468712136537793188925808996018111837793329038992977017268973376662953558505857875733715221362607628485904815289406985367859218972009820628349198868881227885021690808526691421106777633863427237490298222413816692807553238849853264919268331990718754583461388152358122344430932757177219093235329485897478332800222637725620483419342239582692876783142747773246239343248476234103267261769475946613347556486409605106222332929954588445271892025360742862891468081798882040307036713678945543670119254346577371378663696735126661372453962728734435212173164463847050890084529777234854490892154491021506596436397283765660586724544124421641659788970672725721701919501763297568185969832715138673829757831419793095568659870510317692398588267857015228446852508822745641460679578518435787392032320409666262238364539138901087020668838443405245266528774314962782148388001424340449229459913396810001950357615342106236444100289707202853322484970462183689037286055779901492666247869179577014078841820365849195491518067501300813740089088750984571033970937039089429354794769935848325865451205526722852145348515827185447900194806166895116364658340636544078283059565729683440865548554552845296873729427731837692330716440267294816652466662199091041850406242026672914022258443543859846849612815775130246971062993572888896943184463585265958921597878119936614995331054746739713978484796897157852858556700454526316476443761826527146928315866347350399111538287766166215268455141937596328631792334775982130803126450618496410908493664995964272903443108650247988370294420391729171353342065286787524484845321027390095291561356796174304512771694749688542841155998439833306164628917215714219943117090036779029485797577470911191104849864973196900456739870020549306418466382626112936128761311361443993645879179101067495324008205635728123193209533065772041775654115358448459349552808286461200555824358620671143010247563750811905899538280778971219121003955317847062477051637928496447787914256293475296630808004587088733848041036202887611937345691749875571288615059264874563377780891263669127017472001459071271575075424967942411080965146946073833824582313708166681413687315179319153574415415193442103486255367881264911412587071712138856964749321762406253604060342890094498977500970422216552725982684284933263749509703210559449983856928427040320052355778428672163498718552052407788189209843908263629677580214705801758554916782404976135787365266295422477190037319265487880602672133411977897958948768508597015775299912430267495790683335733140614199721477456602742316670097570948780837289412838059746556140864941424263337382596673712231722390556337834331679946945590566583975782717730387609460009132379607942590530673321526750329610082572007467180459150681420726574371242491229430652090049845360857583161456357806672551239282580759327188830569571902923074193225600906963774612702798659053009357020563129868429245782731567960723385835403234445713554473840611697735818464262516250926411568083040350539561162320661037798590303051944978635311032043304482846088527862856026202597604503136335090897297952537237571965931070842271802941110608114909206656025654989201116147665805629055226215471783814234484001727404725176225779744135388731389835909081306829218926022457450902205785410107758617173048221295834873351172682477564056400675992012853637266043182354012772660721074123349076266628252153488204238631323228801406509318860511377954291961617695113141007285178625957707317543415331143807550340542763748240947448420701880771605164027738617454818438694947190008572476416627221114809906429076515558338799499160059611342139288538141091039123898912805174672185520062176754093699646045546644896128270054123139221280239261990362570997488067622003911907178453679661058817979649440137490756862552925272086903963274885627881266979499868651242459617654819491083532844800698180830762538385567541627398469638453573341352191095221334176462544558444370687676954587029786064725233479967156047032192629863507160140795057394682397269939864706207895747313927781363034035623059043242050248160865316268907884033724263624198743742401997211964471581932012350658393052964601885922398123229524278645859352883727016885330116278320951238765777868840658757393543200602580544354158904311937269667669340789523695135878162119074839287920448640986265315677707257745576330942860942068573146230062097226616283758826597170501450909440242570164407017210729000071764846835748397694247631117746915122602788225724564780814277480767321839194171132010053653326125178161985739775744780478177640670850454745343059218457346564694683331587186877040975125330895525342705370193852533286778770176395158422896555501415101977799687756563083408992618235688323351761640163448074860029979781867912207213186456481144526485534211493018116241672383749090540152753859917808335088742591364067406737673916632163223184446025087551859812570112705486933662252678609090115758138898243410952011816954351792053322522662283782555115537848076826037590281282616822233317154761481698108877532338182945269642426021245586676764432128906083311922706876596479205343081871417858913807559690720828672962607529568330652700489755205602062501294873313723762186207786193717336086715603844631762681787866150147625191462200089249999497695494596899951023350383320570059769767573449405120554786161323585352633731673525428918875198451564729372415546774146102234888083730590539215715578709715725860663891935334378032290259787764020542971133441039698584081449368603532606833120632926419614821556433127499794324053269153348009794535819515147186274690327094008930259887136763620433414605292910856801259077288119218222896056356471135346620823184436651359063970103057985463472089543109672928665877823090379342929049837974090676880821481135412162136902633474297278974441132209254422600874356818798557409374499435786898534925377144899504603230761315709735378508429999234946172359260681904187376434308308960374242581342358491447000001000720316637314432398085941251553170041928440927722720860256795319953562848066488215037999931298680557866580453355721996879410753067979960623561686819272532717497153557959452785533436924345302595369716079757449943117069010791043582743362715492285243339666993666858033848044281913208188781991378984105813073476147694519230205495501589399595881279305625873092400522265868250730366113715311054205971441301813778000139514588762210334089167634545586895051288203805877901233159683434738289182817490908815760809184341121575935036448881708626836709814414421479414508226747144425309385354677971896171076009039688698356887963887332512709692910430861472360679713146032238591800903101828759734278078417683278476310887506747305769791033143106858541482092321926638615499232811793048475741130782725670854720721056557503292446512219086630975459356657706242176416804724955777479485414269287478220752571744418868388775375133864522229403745377973744363297585557119114166632218919962646512137776086339311306151866526584092603439999470268189624494437407960251323973189896738923820597094402474592084285567192686306108528232154867839035271333922731749521839215150915429751402472675439563817309983453417107315427145029198601455501594670343230191821349222228787727857382679075164595509868204626108329317149848099256663809417906138785178789080631282365170038064682014115471629882616692919658131911059601205981375452552994110499171710091406907206324552964619708666898226724616421243368900258203949087866553280318032460094975075005455648640308279351570246268150078603890054429076476848581239034901631025828147067049919996456825258327264413469551311447380988960316562309409035870037945110589007032732056766489360337892214141319471335942674976996364750995521211827942361871541117613618374673523869455613371036136217851246354154906174374380981081406711611724178074035868613330702969135015900834954756522488569370934932606585009075367104122832736407895248886670353212500767656767626922191904305195907586430750211300435589014934047833599267735548022140941592385050868295776470901934262074302588997806154728091903115637525118962342288162431441524655888353700288808665451186836702669103868459970550386520776888652658738803555964690889438770519367314650422016037143395295825199273891577050481668084275828134305091394383406326342185867030922310623746713627108554554146855085685036445635810335101959825594930772818183082321586129947218228406330950197928747156822562446798758021941710589931116603758428830169771782076129277822095003411851142715217882699348591342032686182837256840455202123407430167439270109402410433730010092052748202237866702130335666227801351282583207025153645703415296746418223845193708402866090972813462881087254617472111763367807554387527468178439658708665733246593612292733105006922482617797409488639245087820713173363784317680022206305868945678850849103706239579615601209362663592774145983824816625064437367158598275127373393270974756424611476394958186207354295222170708375753944650462870366901841403378932322696472839668614564353486330270795092808617394825710083233057676544629486519570750488178160641128716603409209245897617908139420831593598515412507245672009707532424697073231104085990617119067691855617736047858420065416423190427464853221679483752650585604273731134374384304176429488021557036680454128987421983317714696295666999872297587153979445858551560378566332800006673624085993999064751868407237290752485611932246832765539647804427712842980098754947113155278192837629250137251857138165913612668487295299727864805045885267847932636979280290398741681831311476285533996897345874276698971627262709358175365751203762032155163463572482923660408845314099954208355782927907337286255367984351691140529667560855627244423257218537237806174879161338074347583476537373191388734095664717861505800419231268630044214995138875670371153168413362985498851781101246165897658618564126749177728047263509121423666958847780360897811401167280267513548161107722122350098457846217301032355826844814761219086880634157597574489554530792401099626019225280543106636166567490803033789421443816920828174715180559308694471431005711062736272169074959263755101562604190721423557171513457710018624556829761944065634601063051856060616719905143340982333137959193514678799045663957520492212570027414312441506936017832437840268358946220405452738223417989017276946240667753774703106644217612478898807261531451135293716815244914952662489017847226066759761230731677343576243220214481465136049817124065891763485543695912867077649317490387134279803305039434808112702567160999307976746978789022260576031256638218664131614508137879962732284437256957634965802240970705916840154932113595519186131237338345370414430433530574875464137057819873576473366675195567954354622565005328293573906606226098567264219757249269594171139181282576347449253456650123854809153599930286883402458319464021918654344805749582889095380470211411321607801017678284912128264202022151349223514791090905083013458687277241655667750261794306773134919947629924436280295956718888846222838670304262135618100189608491004183388363557462549563266906373849904249718913110308728359433931499577832457028676551838816914451829224132761662041213976515042272519439922358368297860524197575990746504544893159071053987055552678489842851189712498031370865386727600751197844638387393253677012407768069944601486637124133669143977298075033601389549521938788495858589230107378114157749168721924523850370151094096381540498965879922679830831940369483220488339587942559032755208106873284617725896116420063373327597702467050507021783626818664888784217586357854604458762188972845555052315900672251089770809943568167054731809098371503172002932234239221000131718984957201220199791081758614542858078391512587950441380892401604651701318356301752566928334937747005013604209990121146712492706288896973426548162816366018949315221032433802071758245285470140750528849481592912364340551017615586467279939175439204972295075405304634146027034457745387850751923021552216695810134501732918740927539164912617097388716898409754258164547720079200727972798480923130373846631365980268751140952423057029539716432932289710126090809059556986278515856816952889731969814830776370325217158408247414696658703200881257428733676036463833473719253312230182408148472451733228214717122672165121965322880823887120816503558769002417014721034744347039126488988932396404037039091781078984839186093698694638121327705564500992308867183520694279926458278169660921912929045488832032900129298627766030012164310486193646398195186890993719281396432613810785691827474898891554964503885787284837772436963252638417404164449673802197762887788039890731555532158560177820038426704337167494029643978193180459703475080686882102015832045878182917485899352153058994117042407879961688541046500339675516824451595208080272201242227034244486685123135913168131648416335071871752070718346533186665857841277097154850917497798001165600384682774587738811604743183018606849770846390528733188438307073207934658549047370990249114464286210426674514951712033520712883603625656614659990808638777427084929931864994053164769361476870067232466889046191581169794483414185226287429985566884975080156522177295320145742457747395823200526443111318560853596506205485182876008170612154209669042524230491622605027092699370009239636905546428499642485983009108312050913520837931672416602346435822255363996806170916800602568166339623934549714096694103196178565607838111652439565421976678038334474021314375383596831537009797554939936283676118401494608981687057573202691271103846360460935446020432463550956423424856833625521685938365386952483233443017650947350242000827592305271600169925544167889813176748964677927548506161653268342111249824029910509568232904860250832915115105179486157370709316389297884370917484946267430932326041987371585340308642634961106506802205056452925279642587338060870746868350550404664812128416339669150882317509276305928730654768264223168765599365877186469802132673202270517987252857675188099267195877210083199107719016140840277091635731919160228241977237577331314375332827926242390237634673303444597922757145468425863572308758260211789717624826098283181620321734976054941503238679138668643087354826044786192538481824461598898318138109887296534319293152426705177713170727275321613285981409769856496711703724273246974775963245337025585206690195100103913467976693978869203698243826771553333818918162383102070608882221022187694353812045720436090381362323022301286217719220464920700140722726129165676689629734431781143882806709388774912731000818235012238975624823612959239154680154054831294124801341835751442759482046802039171735592136182992310607067450791423982432928096964347383602918485327208585727315010543332685536410572629345423271452593803137148546349925884616058742722554980796281372850538103918304147938382903390186850567501472197352964603048880405634458698867080351039190391955088768652184892226866816084468874236150749035455992199256310620754751616191944579561785441968304126208976345260852059334709475221900355322746654819722698140380262920142713872565123559742991992224346123283718626182461863707494025871572279248022271588916755009966430612248992782996693016939886943915599175509766178476815843659074032586418972414692256768630009207500956689609797499342379868953161116645332421250290940123489491292902839299368060388690966517385871810056880618246398675463106808406862786790991361111618604742966714718117000939054895430117539704720852052621311467441335129158657117607196005078236002762779519213200558916654830501475034239401471226067205462982524835290173850310657261478203645604948243880795230755492886265376096741480142295492487481122111330281698617033594188683843094993409296689047277639661721478649696281175077872982811551995850297357379861887547157357863534766921534757767033131292303531307090335365927220315622032897173528910260733192607136446806412048122449519598538210619096157740343513943315214212433782637484491762080822303560002045978225923877039231558166669617303522155098712810341659656670262995223583371421591497641878251919355508209018588012681752217470869705426968420656688748417556499059682802417751254640128710866832936416130612385042371479542229847651492387731338656712612767313844608130821298616078133188017621742698227334982336609506442508661460511099093345584809008726619002322442240339902587846619932418403673036660687606071451898937356581416872252988700619429034060416365188138947029140535636700504403580042098913910335634749919391488687867720977083177301690497227373238145090944770957791233118155075433247157922788988035086652355357428297265507570588028806235842108950974627347378814538635615614060869775674720387507222297536921569905443379636347457868378111271247077798361505201160667460322111348964407015074994533163847889254745706792717176336100369282055042169123869569252593347641343064307423874686351376013595861444929485166354644465085761220894011673620677260747939371809546700569107692794740222130604974004636947933590629109506531023742495628884876553273858660691872847360410688277023618422821454164049189598865649180287453687102052168716882900166638086171227833937446031017068275161914385589975207113383124701542707264459345359457956110348958738134005931538618267353221691563900331524673454403665773380500115891553032185014293246808995875826788056776952525928525146547274930343848002486625570047433985891184013226095298541419169324273559659925114104711827615276370410618627185375749567932909274068571433462252627325105910993139861854312058795413758222743519196134333164513967239116268875414199889515013611882574805220946946233521249526629091984414442232477740733545498887963592607308896077109072884111640734179884318817900149719758257475071465359125170522010682704659618002701841032923351341415215699923584322809499182872322718373120540169214899283341531289369687225865241480506103287608341021815289358795773249156416587619721631945277758930843141316289857653045717030441714811886491163293290871576905427816181362850666279904240088284349940708196306568720585723341155172434019991826667786595920646574225344179955092369469727406331985168252152878124820923840203151646504215573581431420849128895096881199047099375845689505435456727339608871933645817293158003491706466140867530395102352896274865873433509435750408181182670679113949020552374690013970554973260024550609554336557632511857430492395703232562354119615850238073807139147184210874820664752216811832803659848950854441635444039417029955637463982565020797627087500360899021798638000983976929179112569792231445607306730913519541224000408167725122736078342166624778446538313541143650105371397819959367868131115189850189306822134442058798049162045009350677722214840189702234893334415844434440407373360294846911478899844781647411611747021956271144428813289780918253662106841423826884850274713841462116782527750950680576439859926138511517775115424605201933893668682653400234155987696593685232791250362561624507199961245969037847894674196503888932073475076513622851196887363182747727775918272792833190602854615019937746467745059245653117946013898088843710028981811062925002106035557948450408214885806927328204146977631443947974490413399416918004171080853229268742204876033855447373743750787445998055378122645210162558040887346663041880870632234506795236075361570096618299125862927884718823545234838299003233565713500984969934904921279876336688704126141289443001321882823421804480408593577337131663675715702435427344583302285519520796595010083974606978180134476434139259657074546493660992441699238776037407436090896877198445316126050837824360704360729843806729918430427753439038010648742728434716500279474442135497415311460015475935715093139631635264505202109958690220702523617651168775972622485024222668524709227043547784967236806371985191485739389548825179534358256790782122666661662939499194560915353023031062787419051258938205081391056983972568485843116047936780970937679757258428352954421616752751370223150482519692799259816971453367210930380276677449409245689596755480292623815996986642734499120557398140373670018558788341770135446985198687350158972430070342575964721770256762630775097257067094901509504377455473238828546194078158703169947485651060447873019827096789642205850834818114143512787061486561320283872549367046265600166483243078021503890254894903719092383744039739261186611328339809032362069161756617661932354884544978892088409944442922615327154530434157498821258462002963533975876974971568662161319864975837600015038144501434095955936613032540481799892109149449438530079809984021087913041851660023442912564131335248112314721133803882112426090530475277999737285709878946540756393186572441987609973938561283851423405972106561942773830420906809327290713969125303839757069782146381874191509001483346129854451048950385004195062042109477942644967827380637178162542129574460396365829024488686436267478513828903297622558722487641622188908549429957763174772311856964977622111496484836069189617499735600313576471352115305818038547755554330075915419199228190217164979654299550173939598350435110789108828988722438909866457913790606415643381153482492457794044913790171745841369283774650460692675274098485194951143612942942360649629073189082760784608526918827480684366056278399045314017323616371271454899641117126256807419477820334601220609958532522631249999529579801967854077486535917882617595337626239561886585475963613938752250015132228769878290857278992324340069280899542110723857770436218682029171508570084280630535446036789356943787063379424591201340273170998889962902230406868763890623583020653466947699938338814768732025871792290274932265462673377252988497938876519084307027678752628247857719432177818147478402495301049750667841513731026401088806116490538679995998853069302006576122049254650099316721560913887276103203742561052842909248893813097896623285321979561418483420870790793490906196847011807249791123387364189168606288957534969106996617306181059281076205068331120811829567037794296316505682697948390042314851462444350868917114459644398014753145954542399094695310071546128866832726715755273898157121452155930722490626520585220664916354902446000658047031584304057608413575669528938126749120946055210323722815883907992031829318908200083626490318381229925167295617934164918169859376341851695643594045926673036228908852254460398733056139977417907040381256667714671112694380729162083894605966113709737837283491073964177324842044641765047803271349496824038600219076881133634577662322283471582374267034301474064349895168517017960906326785855040086185717161262165232925614075059050474968506451998863610104608522561493954741222127298314368114573321522320799401896962937913050330474285595617352265617640552674429629805368236039388966390286573973487584726238873627898653996785914180050360020765704919225237196920025980622700976113439056332704736533504951871503466367547744826994614871829935844784849668687739877469137666929887361666865475050749986881787195664352033489165876571433965936034568214244162640148285652671814295949763713193173145877624244061527833028213196293859535416097876962704192143849839329690616957411400313894142716553015134273394510975939985587383146871348923703292907846401296250096020259547174085757843044619177515839814863856636903887925431773269784846335173899864700292168823228193191050181083042849695912596514168878331348973995674894592203787123701530094040801351403632591272911711590590197062893046817339739067081568663529031810055936622872192664758654714832288664382447736974960278406478542739446801108100400173620662271569688308315142903209319553004100896681801095852366491635252969384457768780270143272537075067721217619669065771696834627419196216516274623936013023195854093260272716494641457478424393903097529047254320490318988758182958539461631065891105637224064060363866173433090653939201606771526559385067513223045563996103460644772550322886404073159484644818734999025096913285691123264979808794539361566107043630930498799372575143808253592412296299739957881003019391677724019814480332453705539644891559581851254383601367777816550722569942530102201224305582079372977022366174135551869825675163975313932398769958964715999915768259622848161529764260059189524990144911849845857333553512869010019622492895502240078886748366191725845155772941169887613845669535355857515009359540831666557482448239351204122606606379631010562146705142153838781455097314046897288011755995028181136809768508163885468911274050598493833969816222883470953767677084340916988646885033822193617248875373732267576127599304590096349032013334278116200797970491618475394805764004138002267014868302715055618914504376811558744813311460532989904144801020664021320435181725280722021423992290107923843883441660549723539354672679485982341946920882633348522491803698242625158155356879927305702176939859973286626754546332793741025032885099905174802140548925203991878418897620946960435676561491549673549174273563983837809217785575763916720224096862116427286539798815661095921082998709748353481796687127561171448037433876958648907658488843671004328461582721638083551301923340336533271558216261942325291446180687316889776323915904477974718422677473155228786601993376943625383803701591844547893890752060663028154190933178982286837711805636580712075295288789303407013234931207556097046245424306657366942270211342068526195225706162863259463554521574315539810128285638982185510130935790890135875573266372472404146680611984590123487776512406724869297508628605668001801842592625105405691534483311315077988118285741557462227117882038337857394661645761478041870149431342035150739884190834386955230071251351106282304987821500508974638876602511595388062631694917003313909689040051278569448697611873102699407012356301758730810633302930917706431073850019068666760270446032073475997579364062600062828278102588568381886018807229178094399243721865278334296651443647307267562644549844683778347350274128882285767937445632215946873689215475964676112422706826183675139930956107979835879112987458799425272277466594275021271810660148542814006334909809338998072915548861974403544777911721385651643466920562305144506166277822407791865533946880984609877022202852728851100334068218963678357222089594349834677051774092598227682297054378558600327163036941305740021308884766836311865537377979709848314563406905657307795225976746639052680744442888264195112505702648423176956852411989357651055273268559718703125683810817219526057199796437536629032164818358635839602513678806018954707223547506766295573866458425239293218934668172713731327218835615740577233079414240922517342875663867245341515669007848409712258898546346359573312603437287774532152208619184084223674668665894039247773934363099702509435822039580481107905234062808910390736568694632331123084834722099940541850436954646569471592808363528881793224476968099626960428749447773376668275732548561586101287317352938570773605593411702603882049689900516524312138507658853343904132327232751859523378484830769256309022696657962213353805797080734508064325528818531746965226597966881539039707598673565837524542935606607797110692466287461628560622005736284952338773278191717054872494279110930019921503392601261194908225462867503794249941235636090574583398550478491467718171875017594023913690866038005752333489285890223771760230489857015930391096572702241845399927341549568607240099605689151441316361234746439050652887892640066998885570292538675781016609531284023645698628433250056506961330250474189067374575934480237328231957462778727919191481356472602088228570126331774599046444342817877833680347624214026136438098484636458175797975753723077791159758352113601244297230836764046382481445437331030090082968807313727878785789170145798940533370075546512545096183005780886079385966605510517573444520430898012329664551482313750145381030260780255861875085480432862786490613123197666201107277380565962020985864775193690588780437454650446838328436733570786879996883488069884289056935140488278797569271796816882730034405199603870093127820357619340834510346754673933218026853336883349025974289287195712558274055374666615759824483280373406258838845679095025670164918076318797763800209014335375223894892145692984001276667051518391526420650395801179358297509509522292920148918450755773288901325151663964058242201823301668754309079582265902245383458683716350824867923928244101824923991430413115867102804921382480225374428655345390681825893967204594281497769647928244100935970559698807076837203135892205992091641493266408805634521538971924186803510493922733916728969281276375120194972938927545635035102970106568829958207446813450324527119149189315014477373523846374593129127436657486901163223063315583271590655712611722801581791274719279326087725858814791325437661466344051866921937034086153845980631317190030251492366671010289525044239390642260298712740310192177376948159922114584757703355789390778289749315398639155318920353551503033083392266174973755668885547356549752402321154101348864034919894104314838763631629035381979062419694462589524285973385930190046119677726400717537116062802830171515861413529616037126404415798414746100115022329278775478197593645583198510807460778988373808459450883540870126266115926902389231991092238420699074319663448603535783595851443094629980326859054788769234228679548841073434446751242407478981106890630694511051354298983911869142154109755964407721951086826785171726332639849664086263674053079296869863110135073939515098492570297261058160869942533649397605658936877710020657455882188533084075139699440678440462541057736747444428658787935656317549422124991790402510679152897844031779004771001789155951265502651846793222561958623411765254012758309250217919106113033272918748123897404681358131031218862081149044828725666819365113079761046514691476039614460800841132586195889641695912525143455923355782566498489656251837824537166950656273283965714365204286191154625703258689774695246569243987043172855988130432887857441067324742806140962074365544377609344177023369638205132326217182514906411435137065589442607896500746294030758815035863139483275625135781889615710591876511890729138271426171813468686154120600129522265916762273126114520455252759007243191831791136705882512091288552772461544239823320664147367986937036042475018932877878183248275093402810813316553998961529334802878973796708399975192921517481063681011358293090186929200841998131383179004141698036692452665889451815540377635913618576634641978297609163900091974186126181868904500591025023113461202122197731322284425741269080268709455429486398653912464196021015037313367607691324411421553165781004044328296302459075533188558775147391539239470243452520050069704330184468805563374283337932855296507614839477802021048442138812939134687188884085367351975026030808894864225378242278112843324688257527230735359209982846913221040477011334857660349188907094420247607840214093463602251656897192445951749084897616757617037017480729280923158968917410289031048026685820622426118552326971207191559141450953719546404456616968693072824342711352479589785153175570052300037611425383863779085727770015001668609941378246619729349421045659958091474401480552138939259600824043152530123781457526702152595448022724234531900362156875250453411635639928120247281107653811724195412242575556538442984551262409221863812206173674289180288629067841092636741918284431742104499361083335342384120964602792867668761456689429162106895282982488050955210384952083572840677902918904387226335686542216639111078407050594048239319487568026395925036381182807063855463507453420997175089852713601507768070528230068320478619851019137822107326492932362512836730504360370545915034372664011107479507461449970049866042362965747349400061703241648253729139973112052146575096032584808012179302419459938468700115005747466769423051312827815005015681854741768489638164408951814377344731005857384472088381301877103758294157666726315819652274419771384075401349969950984008544900869317489518479179865011769334108094703181009041686609403920735717435512189046608814473969173660966828921342959286417288198266000578327516849599480537635475712561000013161702863602402875436935102115932060783909434456518550934846280092001768113906050370890725596300674533407637558507842485121643204253570125363754159466858815620531813059820171766692478499224058539004204941393097953091179234973031469358243758867797553242446254381384569433971067519870820456942674192631579785846580235451085837244341759832259254218609114249572873047618537242703807493481934525659807827727250273465252469265665377773383574693915224161806633032795580285882116691334407746066321322678429261998787899246835777238969876920020720976377838865068507911599386741808424680499567195061669161722554727844434234113671549226973771305755667705052064998524527358842745235918139551140212628535364883233112027658064739430189500091989509041469613112595293679304228600300023851423135266700664785412475114630558827412551046880228297389905241580527995709537071611178864999352066971200816640829228731793636246245341472031976932304191285389091822926659217704257500842708910936682915558513389111818267875178075060089479424409071448365280404611574249371396279997098578394873220557891822014707201726435686652853281210321695134029959836601887689887061994000983855175973038313853327977552914638135684223489768034885966517006788105125897984912680219458023282480596464859694566998497334214182088865810924488531634843669660173433373925731726786815192028959399801591860463846571044197359039733394798062955655672605994377591442763291930404436510300046774162207959499935263183351264329972256093562543804224956454217642252711250049178517890992272598241576432242290071412449603089217897516502128677528087624653399188160838926537725697808862910075511865825039422535196965332188640857544742172147264174917109216350749815375129213021374491189036528031618818924549113435907168193475220236539159858814732064067120296088289747085930556602458240722534407806514729160330114808752213255016306301129004587718411964552264852172809986559251187146752281512699673123717018406973672271436046629580871957728420056961883962374816399399447456328171487548059217282049305659333240688909201763468147104353493185185393265970113190151681292416978950143642067915663256194801293065388391655969814885395798530378184856426323833429240561554952466313021652608378118952796635373855415527603201522312063628807083621847326778189280725689344263455383291531181679394999237700917427462590295327885785330944470176985184598572074829273500540327231933994676826093309984323109758773249502425525448265367256777619916370799939822660082525980292840848540198365592704812039707388832725742828998623737123378237136291392509154936576719665701290661394801490745755873514929498529075677291387854236339059645960617160420329457383266255459228871662591969471187005101412829956622222707718733194293928364466433654320722816297966530266171807374423600576659636245193930782769237677025161002288949354710602306625443760838463217158229267335511970312906183645218577120137711222940655310538300562551221299267836809343756380423984500599995261701345986620881642096377063806101207070609451766288690615306268245180761929135939479156736678223321595299596981871070996563041722153455289418819843564070805193001322216347264016205346613745313484830107946343452801458429680150851131008635967453286449906972054101996004828834060720811667141346707946203685225394141365784185381767740700047584316314026114525394969330642070441727814165489208823564302477373725698359776040281577635880318518286829852553711748980554160288882482352739327671456969689421772839472346080729380577354262278031786051351307048383749877832639551679595596339136273739138127539560462216731119752060913450212121108138587175914358092937791865814860675225277584241744566919516675240247212713351934857272885820631526600275461628519891591086070812530877328676139555137572413228177424439337853809572517115024697721459389199197239439281159828621376677887152087790807088243320911538620256966491889386209377470935953903836010245693050204523781627333829935505925760343272028143757145866066338090555087761215147853653185825108779391789847240749021275615709985821507747614365072136290215388020273859826599996499111788482006164213261295430766759191021696453600745950344277465945217886373564412150093883596447198604276870655977824734939623911075557603798617363930604556489678418840654308504107097695777810305346165100455289296947567076551320644766693236810151034287128961011232612007699405970048407248240834286610460393670977412163730177262356261323623242527504453403982037793347781404391427092691009941447979343372813638481701568748579055968326464884655802012326572284242635281433382910567642199562975062018831484384788407035466487590922580729457559960529758349559614714927655223993989104463931062802707101709237065642494400811842624102050848551587788398427653362584163685928248443222873871915423073041901304512721680332721254495390216907143238700618391207076105272783932461339190972635525579166697668136690480736262550959935702759215262715735536261226905827926319467503501374930135054538044448813694273991663843177757584575869154772412589560607838490721962874673222707773922093006515492158715940023601167526546839969019233420238180806532720044374403506679179812649774387199781446306265000249245586226438556105158217090184483122688200877698530963775565751123209881414942996462738367451235891762746884473340383391422586449177065364784724286169470758639220341466396778288685550885404864288322687283921552592532060111945122570467455203886058443949847278204388546237742493024706523266852795243747263111207878975536954236059067084382907008260641241101361943041827117946829380665652327056149583591970163631237997374123778110048807114471490018364849239695856944531956274643501253207775225272937655730320627288510337762964196336602292613614232292419198608228821051354541354433608754826939763059149677580549140120474239317432953587887789024171940844917588651186863520430555133573813316258781348789068599759835813450793419365131422206490135372667247514899158405793612219909915119368904288847835035977434671013463264631088903144762440568673744804865882423502850616396421178770351522108737885938296452969209940326885139377315375704314521064236333994165064330598013332798904111090835025229876574781022020789767235693236023406398359657245603510256556524443580692438421502401070821124981492511522363835808632165878097176374824084942952065500015846945992212449555317325057448108258263350688756753863566707740187209754668592060968043220024856594356259297799155305089490226084542324159942143167813881993918108740108486532373026158846142560352936671512219471492318965303611425011301672905143225355801111374005803969908031901543464890414853037524901594379318739104416649465047901059661972657803138681181276857617344106231669444655452958235271221467239163731946025514627335922459311385702494833977867382217010042040965623330026551094931527371016633032618430768514883157673838588133939215317803543032230482145355706066049075116306332027811011680939151555734464992611120738863579230623300267285106095263326035402047675243728554373507679873484404477745262887572957165645283525147169740143669807490340770416658238626646404422125338239607707195880576147367968518312404227920468396022830383724709506721822433693475370465912381138789626748302265725716045140225549798851160134246168683493060362769119051264961393700597740993070097721231689317638377586795215192538298808566821320405307428233301291943554953409294625165926576724136738182155974836440293694516615983340943245883814056616032702019442103989077195323712546265141945499070613579115576934741786989277728116043546060958620747186281430127591983036166274334049828218049728369256672268942959357741173167574771224067736407567216257607427724885322871220652079699036330497608502512893416513976368073164743713948482109879976083552687245820825795361279475549759938570023297217413553288316405380855845797506070516119752990909859572865953541491311381814612302805730203950963877763439643112789793419637758692659271066777508077969509126567519438416765481436096928817322818636370495163963093095467508113929627806217409179889508432845134130458286019865612441783550577481866711511544917489222054583292676292404797740369489191591050621089342545113824436035332966082451349082544869554053020613970782333469916978430746474717455995402652299905885230678302590540805989206856928077117156017818679196216407564504807558061271864685146631722173663228681118127480350818662854064514473189988056425026213939466698268420458080216816258014181433319993366984263881174104130035950688392860197140421702691690568204290127626000248790447685739067436986230736289330212363776554291077336404249448809426911231528583750784030705127565025011327473753842965431238299770252378255249906600184324828934801451928336634870836541068602967067655262493350288076352042112017308428259778209700837182038124962744732100142953956412238062319557987854527109882690543900282706447938788168274603034153380264377241169501135179707410913771865117912844880875095044361337041152190079121796749759558429520027783762385184970220270104723817772360364951210369109991462356853419876000301976070686283155837178236113880628732360844315088078296106291937537925307879511932457282854179602898217321153245518309454376133475153595414693601886802116626136063156070943350976844187740933804117870463858761755481854691512683905386014275722347686020359891342073455908289223155223331067303311708446956147292691071406850184489006147332356835059894353050310473997541494351358256733796512183275328473714613380169168141333770521762265992942479613934082118684502325504952119355032229266341665722115556356796165503526125414243999550237422818352534071468872846878408757790824977418332870627052638697715141911010935174613180514039856963824630981322624391026410966663912957226852580705494432919461564036713119003759462881441694483567047735292733522128279493118897043527719186581255079392244539055064600168412669830210937173902828309750940797760433260467942254901383041234702208003361786218732856757985571843245063599217611206119310673597709929825634586821091514103424232766089437767287861488979545048699600645269061771069273116431881227899826845941605526051117175127026486273709776347641739459947879828074807302202929096148845936610059896710073818771142711353738706701642579761020291182818208037130666103303785472023546506266267750080018587815867068240416580232217312893205479544848214861139081405089269640904086808220311578526824783938818071931332912734448468663528633586273537734306809816182945962954880881658994233118990112212805465643848026756216955436137014890400978520157483027647790545562417725977122676136679289549239400818667573679619831702254221400317144774288686660699846030446295823942729739382859426064427537889687524626158719139857009244735866013009014141270801582588558412632934563736525791694191844662966196250435722515211339983852764644872538918615709268817924725282980378594944202534509142845017857764831432618907443962475531811332376669220475275954290157992860413698098643887012045198318090093092021235857594381206329077055652304200398864517230871093004186276191183486340618098950607586760271918308746795097856861117772713487202271914704957570856412726968234027231585516040589354345808153274193489351469348503770218289674902985175607052923129563622960542406690149868734955887617856055558886989797534963759070689134121515757839344339505051306196835679687913653557436878848208157763978819589884394071174185855215957417273561991526182932287996638539842169418561421909799910879635380226055655477939548887826797217410981451889949119478065000832241411658454268157446824002952272362489582995843846910127237229798591018769478413398937571266668463799895738464667871313380638050304218461159026822194424408536476194851163442727647742863033344137405032715985218741983362887132884449834705997425992862366124637220912523201229005269725162769196032425674331522483164545876899876968909347328365360062765613730219950098208712413508877093943509187535183727885223124377349215677209443902529548442234570862591741734069603371331223961340094986856848675815717672892131736872724130384323819402143088925612316428898788295689038861469324532720818675142632984817079801989326985211336193970340197280111363039260432352296112454194824050588450168913513828965880163394660972415197109570634435848720637545110806166186575774554160249589776891135990360818520557834390896525270356830066346734880238115399285234416706524121883533984316579731052653284836230280096430634828793581720816583317351713815279975308470653559013361961367256947982049646996431668155726537193124452096541178044058281206079447918141187474434774454335527085895801679769089717358234394656600191969169163083241928799742502522436478386834060541804579725950719471770718335952595250489451863613834785307639829197046469161563324625027337276144805554415849327212336148370433027801732077923328753911532771711953444145307163846251060840649925439024986969154212478507720541510166700197722112954909457815372904370839059905161157835223410083771449687255170531675583690778792523320040884532763869751192559250330408648778774605732414052179452891224548012542749448554520876617516919502115774140738684639784271187726517102617047179964762691639335545962682858807741359063949395308707277728835764778740838139564446582511146173164423015531981624778151516711259855040814039870695115001470054786475253622073089729107559920640729705618413423191740732648207519393015471214251227626525087934468941858158199379704809211960450530869676875040693538102275411895594978766253535721387876081095307912601901234998040433100256466754162992549339528780741705804554040291634116051601934098335671894556000359713987614038225062126601812191994403931137944837343740684207133664387239032191271597767490771800678567601017164496702055194398118265957785640259535097876198381573792797583296777860641388642326561918197767528759090561273950059218919157483765056933654058752956604075650080839831043564600080032638752052228403461615431241474065621509770210365353684945012015665518427854287597682054869394063037456334416818531812454623466243909179638604978552170246462459760928931858744536569803057359451519051146508151477890517420468802645203121678144863826862114091548631078773697943619803223016035982632360531592537803541466673591739767029670752701326701937596279275750551370292051908759641567470998997946286750037547846403682016652857543814294791009165205859662243793388032891155580472956686782581548614108909727370331239137828230430924445838151120279025917775536933405061654496735392892621193220802255441282328518466507396438798586751185401556880117157219644139947394024108758547353044403691785423213140394916323729850172332001991557218822674351655788279453290992862459542724288707084133461821353646878108719428936300829097841995287592609369042097437679365084162323344891375352802966851869208469496662988115073296675356657350592469216056639125975485185670386163450973909337429279925704742068976625603316535273004832567048885072299100466295791206147563617502441057404897996943580328879135095001200408148040660807509246919911976932497415182247604539554980439168631763302734235723428189415534205958221821911220055297373605440076961768044610445626685835521449047910703519668532874723969010703655440486755785896643548511653827964468732016433328830041734617892751692902828898448873788101446276033351074124469186202844590115703730568776768673567950725905673075308496168507666800696646213491488695569546154535301320913920182172991766081470680657465879284226176281074575105258460157631745810421527168723858186018710371911339644563843882754077855824569902240173071200106800995524858157393399236389342391707796062871384416059739968015498697168217615499631030980128350559865483823784786956862038146636546296391079911642311734851659663197005215399300193200101198827765630330250388944442804936184459425412965172512219752535261991920074063073825129883615671480435966261182267257527902074532297502413284658949318295362654933742899666465744946050512645111518735227431992849946583539686787264306840941460250988477064804239434037017010253978837272116975545133070837981121928476504026004478844347290462485513636707897342345511593615150398718030966628046207880098499144555765176336985131827278907504963686893877145539120922838251878770792167775018068169500998200073722440091951303622241342090999172364860027915733191129937676674862586490363656923974577415677153952967186176925328127347035072363521322166909931605860284986780013089244233107996138329905178820484086899175005005706772294663428522508999894874292401372444293854178596502510099021145637289855533383309653979746995074915667025018911827367567915075364017449508877851484449211066660675625157792532271246184992744923446404055626745741262542732885005168046352908422751919520887954262061574521104846999373316194604357082869834074694190804209941602289037098696461563968182774888164821370988236622881038639470847716651938412738031099501191754953630383829534296513235159230174769685334732299668288221538877975759010848707479804855908778976169569580383081808032529450625519851701563729836414448148853134179814811028024739960759548684136850697532114543764045185328890076905570580359710862082223491415308591179710805918939679864129830925583345624034783019210003659184807262806730494181361188430648361956479386682767593488349726646967469872780825107974174945866705847220694654109283968016904534260661631143210761219368602337534689959960271295053766048293404701988585453445860870127339503247447165095935094540425012746014708623943244726464768498183207746294935345500720332610396706597495249299301886236424104200215627328551395874699227694518457448264859874661313828269443327829044931021102968084179925347254363570280529876820381967092360112864452241531073245441793647106893136266337465984842971832410736447166441963802783648662696329876182822368025012965598934981234426355683222495961576925315591464907953414644962739546224681376945728993001245797745357688638433903540345342399545008528195244555108017809347268359591256521362744359814321814091803178190984430461919504768419933745956514368717244326643973526215566027720070436134998593250897370198803087932817173578811624687914699090385195567391539568108443939718838668492736976577833321724352201904071377248404023114157907214020190215623660067027490283210643842159303175705443911220197021841782635815001383282312699957365254059085279552400727872381529579882397649354015040885957862567212516989259205073246602520540556467565603179077295620896510772943804858304052428335300530709585943280064920459906015384650395141104757384494878138857813504860614315899127610125955635007216024729726687556761203710675718586909478005417438736208437908492974205252516670132925466553198901723096298667971242782484934740458366379404904674749541447729885565627276910533787760662094169635430546336144770328685442089969429642304554308532496654626112546349672504464033880126285341955316414995975890562666960427767101595985054751382927392071008383809301989857355192658905291340793787349336265611587193501805594704573577894045036006537887447856020183618696306997502003791810738746230738778901768489697409321844185919361914305666401773233628101837473288373015613406849015670075398483943225620497256837734527873643055470849652320734934219753239739344009945191776141448511611826418927350018826228581767694917852289099307569841445782419230008260311287142847196403850160226357872586339913968340591140802567034171040901167806074566619722746754683139125410644820398863053882652086868160580369357843158955135281417309931417605598740455127884541046833827867692311457958352827257258961200019897954726983462488756959562925262607945367245054859953799352675452293771103387493100291678790154321707684624248100403203558155145143579002308864644681518985550843696346839782433291666534706948786171759474068886233948325933193259040361298786041212997491786244630923147365770606815301651672962920294083359660806685271666370118537209461791130940062438883309971027879264412865674654014620489058499616235429113780066330388256653014532403109356979803277936622766239147249928994112312978001651369112719855760776862936104705505782528452645579655415839934226241852238227494701649848182945787715739682958500890733256839541392459292059028084898132152551926128325984441094363615132728508276603640247589632865812852742535284732083139821948990396102126154810282993567730619220442419145318355379103370538003166125392250452264804227131840613173710988108185844937647077868431272724152162784715648204649209016486689542564776508558531557702078615382497588212157159345545784547532011549705989046648574636729311907080993965012250766834276589577773370877499078173259244152057705874624605172536444257074180041405246254775794029440075580630957061871250144648816635597292493288939581582692629114421325063348500000834077067528848840946835490685456037432746040685258716249775208954992637775255961654831915412898942807805738098731734076461228190892474037360561660701055322553846641619294886793882748156507151016707894384524092002088546489010442634207962579525782127283213153117220622085178275301637642313744836970172756191303170675020021336922839165822158250075808666789349798489109005524163151170407140674620362359823863258521839464466163392771611405483346883288386040863016596994795715157752864668114245878559001566910029223895540552678019651640975877392581805248025081703137947995219061910889489734945900005753369224282612853345416149299268634477144335299084423824658903449446304142606268996027527839224928345781631608413409877587292268406379540371385858624951263112555338725140538458735448705038514992081971977031166607682111672266762108290219796211926570402424253285653854438369797465975247945592233111776762641553593783868467016257343412554578675027008282923160881558922477949702995836883082202514059164556173057156661549164207507897814625397966494778835620622979737170877140663141564610159286659124196976632535914623036439050267326370157084922570142980516922025292121944389546596173078410961487592007874878861382150739728664753549180963012614029925484969788716997541143157587444693108107430224056687139566274318504505408695799537882935662183832805697712522896672738224145963556868715245284996746739224782513463668935363751238262615681377186762760879179303253051248871353946457771803987869100741228017625812871251442266223137636013701657893776727158283356587806323491518423819332182376133897524950580978883786397429794941611493978787900543447607270544444458080998520333608314512106934496887634837623006995925162444873043644551447140087485509767843459666101513241714894182972016524093978278192955007516714902944400275078503583180186111787749814859856063262960812036837362694180438751662983858820075447486084810936497634330743062966716447873497935295664070184521492548020114952446619823454989760047753432005890907374434394703489947654365584299719289665551473030760864985455320352839891344498112272855169682209312085086161804907076941961760342067192841006728807478309856695331290725280043894977247626488953520686241527635002794418577712000939635383583889751044315189765130532220728700490928673252456878083237108930242122915587865632683658491028867550642631931953215307414653429601408690705924840504937616808546770886300968093888120216272162849445778355614934940453256010104853683936800611060293005851886392674310683744969563400774786089423270416111621665258847760749657876987770900690844696968976301109361979345724030371433727867254921889849947565075067692092666554488372447575980403560373175087155828767669205614462012147027415647933870057949859529190967308600836014465612937014266693216457728765452195779135800426642200062985824630524960103590691896287451476302154053894098440497175700408158333934062386426689651934375799400373401215869451253793410429229129871185400545168696756204607780479031102133271131787997215608305035377589623182679963369907303100688004228482508990374801488682727500098068574669884327035100167781612594862308856783806039345165304821498081467285251735940575376229957677206043676956496217705123635789337605039089967680136462707274892483287418901779997198754896793708402152032469069865335592356397340142081581154888354203789233670270084898258676677855717159598786788218870434127337137577508252012551738234896493273313962023395876720227575762794525888892391438663088802457023297634240447032405356321099960588393451434466960314860718578606796300903404435505637464336084755951781771117236733268952505504780355917708960310398535473902506042158635481812387636807357575642763484835612783626284067419823047495156785190964547047026528251041009210382096299196446283345857971341841840711136249508751344828064480861089557549315325399904167004867368153231270147978058443172375329299280843590287700481128547343820737842412948419270910374495923175456753461250697996851153722036706467093215150079364520441147926848059714096599796049692526103575144969881785209887281740950253148750917324218600633507574838574260549867814591099394136813198220820756958330505235095335776141073024769016375928442924496770995277036485253703004625542903364121867730234439101479579092721343819711464266679670760791260143252426545352615764630191442642238367256305414955965008290993669417282552894590345836296616364291404217450540582369145976499824078845115116685249767736549739185877338328107007352803574614892577476064648908670028108678414535864866077121717045553870779914424507879133265555680270767650832032770886496172901060327890343494642674616321558494929691311564662480012386480890449990644393155036828102818646659497028607702861613261793173734840470104771914201324230942896755980972363590719040697382742524825852539133104819008704619780981933807241098051113246947771076129479907620396673278598551996458937308990411854388966208159139459399483840723339667202500450242925441072059432922730464769791234008985249197182708783879350031200428290025495235985633170138817082397335501686602545712188731248138942610017874908948810091818591158115678534683332365774678992330548537337106922543128528560613135538928828612079754863215407918027489760850785499740424083977083222128077124739860106292462049827945265015674019525586978566395137817383798241853834343163475734823215580003205019562359688959250661369231687540121220852204643121701311274125948591126340523282718698407743174223312537264998729712181960321815328553248606700427484745516855441207458416036332416489521800912524100697738252038918614909794289917652301909180321941508546813484299758126215218520798773226553091247480371288286179737311749410615223097102131719994132893607185358450578385372889109308742371050306163253695211491284198551476177567402594967678905021508430976270381971885666260510525203136517461852663946553123970871257347792710471778935570183761344016598175646076019006524525237407201826373463349291499657414599404294471981461939603918982812915454062341362493929351460083098591873866551742835920812565945964621836917480813622711316137691022307415445279050192291256299133253525766966076070726606275106479897212131199463684956090682881064789912007277730203030690344488961573646989977236781468533690538481129550795934808126625102920031452409092012766438659447347678868167345203386496031042882865765171417216098855056703880417891261573718001300474528306267626151455270363173385818814769529133186207901831538924804541111197337185799070902321009277421591397327106912435168998701866471283347207871319900316668056681856926380422756294435329324236969467423437419656980060857384886020461913627345028430329725334056881921782831741446389614599765395226423306926210652136461213994311979516831041129372600083084462121783758417434331711683560131605487255839757649668777454901573202517974601840305830912297438778979961286916189069909307118053577302614914633251534267897348563011825414868704652663631867506881818969316779299203197028406728601759178084312149171494016206852424954439696852517712974533384648892838865641735328819854383705812818185705937545997613805432761589933777695160892976653609619842401206767877282603914522002054503699392989025294364181144585169526397625665187896226130914921537280033463212839948956606197092528496209385538096776257951431986359342913629871642529645835044068479823678331368954509546871483095113760477722505131535236034459977436655370080837978653029271615404009174543222876876341239768735277801883716738666167581509890972555434604955558684040200891783974801203081039443749867379167822269297040302596884571746121061194701493993831009411388096701089452249123408220018405673824558921130207117908294164938388657658249710922540225761203568705687682141605073498442557933076915155674565024557551932473807103002339763671168660068630300798921958429362971182730038603936133483535893905766915644377493306442877081345177534533871190485256833939912400455218867787958604715460709745811031887942082318001037640026081557571137517664491656555402551344018559991275364005669505449358021231443706702422515985109917842472195812401286523730408890262754654796714196880589701876917274072336581850014034787555455374983648169664601088538637998433869024980179328213124030891318148511992052803658651542644536067713198553508046764167731821340727748169921531394905667844606512685911184912807569357950092654078651036304235211350065891420581105117466052408294576674637542571389461926554407386861216497973819658517099619592624858511377729099330150361650290137951244702938106565514147822367595786046214971696285380476097655679183611864519302441810144380912938979464477778373720857132003475586589162104197594464906420718183181575377196116355753918384175116907773195571339955050183261770868003306543680085761321335933868908867684997130168399531168590199101702399329465821909648453880504653052289115353237608098160964046500240801060209549312709271749136315649891139510175585312355297074102882386794534552652697875746076240783589435327886709752527540381015069350317365735636225224315397555952620073217419980307312184440072356402131617770366892340209635314368396075589221976682466150275699696395671638145948668397132230242909136534290720166596142080800948048534770389907366145512114751370166037987638405465355642150056996119759832941658018698102440501731843621491884440955861437920200502541942002309998682188759795651979045531759240400325731240617085884429646197688381108394023417736465944808150067534483114433000304696155436474392328499551818599544012446718809151027892946555487497687729208977026470918134682197603124095285221411518655588071939957282346984715126810283575032430539104589164462597633559644186978120872342120052178862549375097328151388589979009963093372609560972680837845074577033594717713415043132240916870242413401701887401179512357662284000855738172799107170413482708188476406338539812726633195564887246253007347823050974418904889004919181523267071286134561018056709311636852245050539708525618002798288705706351281555428575834058150983821472259195815982884066467409522788012912624902932833943950419102662557774462825546966216239002415397211157190767818563529935836784463672534153688284549850167497708411042566586373625118025199161868979627523339794559291874226762243990600355190831461410458340974959306125646417777490945468084120108477137677276350851369881954309443575290039354258587877959449835866908498777403836377060096484562553058549539170346520062146331269733508589768154547631423720781969044427244037010976089676149111437795952703720433159985889574003359966702549007898706694185031085926768200150661592502081968036357348189724665200792835242918857094208290398855595057271405157139186498267701654144576314568115826299313296261020648487100703845792855815078326521346462959246461999614800613090328239583750890411336607275927092254957599322461007795885720955425592783834407787691810891775076192595079933797404207868478603174718141120944767102756016167367446371496315177501905500135180778374967899938752025818445453800353274936830405856217151371653080665449502394660118286707742962292846199179793379933822925309350228940122581683030153204901883221122231891302204401211625532485692049890240943485724480429405471767181963573401516798960474734338206939979614030813786660294336045877397725086227316601487592660323564723403122997130764317098039855944007244745488562661480766979822661386799525103026578346218209128332670299428857712360331763112493419872554536033983327143506452488073062101872831894300369854770133762484807168456579517054101851096253916908406543078929633931911900768238737850717467179673653648673890796628401647752797196782092659318893167765838354108530169442903351630282099298251202064044376768628780144228456791051865727633732007911422603892694937574060724320913173286564279202264450529299014683177254885456122237330270642550769987258125475439259121327660132281564447895798942227005561063280566584313331092240392346543437179381124639313819303858173484095881752073956183067461007736645990805122086946078646119214188294165769725640684601113778035194259373720345610389817275027936207884206546351390315835360978523782381070235439954430989092525357268878451090318399609250661296343428563018786943665138265521767354775532152519719725646150508831114536337058361942278769070425812617611207790371803336863360659254553881037191502475441595051071973546762462197855881688609688039431706560422902935036943015814027828681344858225973450135277125935179800343260691139872506063041695324267550962187925331598684414860943513807026391371831352491643860148156323788844875670274693193858932404863810179476787685180580432771081851318912592690282383593443110588527721885865757736092780595909151893984353207169055139896164823223563842207161206563237716736885435840114676530673694195373581830024732847351652170822238750357641880076231531448895129944513741934432636606885485695359082726175745255371666676682775236267102601320714164005098749849959667733365391423270846312372117224581250600254832347824133047653088346104242069863921893215039416906264028839383195886516408725513596319600237688312636162023518405347050342079781865886604559221433336382960636860300758662229993559309568998703682766776641577718740553190763899366973914889535313637376302042830070234887895099977253818425577837254228311713812407051301242010378293416001670268308306469494297860635109653248388637510835004238092796850057571423165582741767576897124252244482526789658781796817396970168386639114733008831007561341997803445857094721486759925030290404254671475103930896044773262273663305886077876756194484915080548567438778003246966145095220301875858810641150073546927075456321023180796612964372833014221534711511718065241185060670235807171435489511208259195830699292044696625557873081598303000613463137745822378981068899380548555774002257136720419342437951435652857081952644263063436370019303461880474273758964907917189005918296989250178173872694074832875645673680504164463721935986845870890177020487867673071205459580898027092036460208138253122478187331337331404546668361114032094134573196689640854556819252754379185827933551886055242438240830252622693832793074395182827243828819308447931539538567462989187854766608795642311426155853494234225960882019443738281092095950069283532902309217771881658335113713713552628307839357240562537269030733009868746757494332701659636445312021139906533056604328665058839130471409622042585598266116970042340485078005401944747573091931985066882373211893360933153876913147966369199511921497861439459916725226148005177080465209797308486925566180160885885550407774169048549318600992828638831251960241093365959626460075233459014269410341487936451549061374300217388867944800509889825884229126115200262457494199569009623096202204920711147637798345078332782094140937731297850696115622722526831614714844847293286620708851840786087483065970094812265623901941670435898397197760581360778045568255928961149927276457520580446694764804754820021866061003514520751166451107587396112792771176741683684925410687815085198126793042375329320263405181019843006672348923715352859171750321415538268108163616415067315125855799171690255461726801271699261696306133222663436606832667253023842978143481686303738045038011549329559424111384467355374511317505552159052199886152233980647610391185473361427152653252594774592435824824852635761855752007864162269853298074583668312584042393568973180718099445445984659190005141383949986692023620717021725916292960368403990001485366770730057966323335623226214890082818072520204039203353385416549951586493798490660167835409976793817571086747507881080386296702399225469623512412514915694944049201306218312357955864694802863994847254341513951015796405333733535990165874793923249029428111216830850797370691543990929657416763570410782967232796712452390136190930431278470237102227418863969296626408710184306726224451899138902010230148719483798303794093617121334400028780038783475311476359251420707844416163995360337432562725042253501866259879482495352898669109339724192158678513906625779978759710948565752854876108001856875139168985874062211714158350063073556296933880123261670950505170121378103097825155106718832112739346412663597717394434654068023238154909464230988679143135854215883742235881487951234371280698525808239985239594969824710138185009840088172665993444580916336345522538912114245345960960466124332958862314236851608045836890551353154479391905872039496083136090788738874600544366381246955278049447850924401876348971408266969655737112026603533630913123388349308170848611515610458731747469116309281118622429307554678680517820284328582106806396497314738041178224917417817643165625533896824153533556190720457071526854796718261517946346795637653471188877046649690311411153762285578066022911988024999580588039459262208911888155153715448232574081728546638133344830278167526164606773231593793711157721614728898526131637709472521442424444391602382573782573766055861317368566673811720895112357073721200025014057301795139266814069135523685914378840567900896894379921417426547190368939962970208651228767446213969465394947620083910322147780253067082936618745224687093223802929012057209459312683228506718399301628829974681614405339550556163725966611224385572718897262115047965625555408084441106277817717764819795176827785142151212091294104759045480374175843171414882733458359511389442377070256278134710303831322734899537130955366490476019873111962893495560651183464572413778878049036332906316019001333475381550037149761622269231601700121818399722252992345665957809833294470375602285899381254114431160502467944865975198856253324956097489386835489093186206755263484913187542387016079411206306496583912647832719303408807341931530943022236007010687867859218872426156920833763825472795299352620751512980285300277183047196535191538201357417080799336014280072053493020819194205697252367652471049029286897323761355081946106851732560299849972000305238403245735326599491992230104537068521640194979587630879356323302829482041998445489976282255241076121636640627994992441377016001174289645223068530455040237971193919174005374316221493616006289360382884997647908708772748831392268901600371086168930605551256401883778980565622834072421765739718528032309807644955615631717823742772665660384547332766083713971182417610023891546743488188061849697226755893458334659755586907304770243421084843288614513865690710232598149912011285566579223290276468490032871031876250438956508227298709949468365630073112121056232063074439115599633637885929142712711041775501780216180590064553932353823419986240647566353298313248570318389177354330451512152869149382205679624157501113103435819175514137758620740105298149175029260880488297991274520397387753913629335747082084257195906203839418163541474036341004243683470043527566607376027881245814308650992791865931671945160615959445865387646097851871367224317454995522924561862559311526555271875462749173163171929913950164432090785514397960680588650155840914958306685038208088697646501287596970679797246132268208853194971041183939547579385450157233663822748808203117062157213663612536312555053682693307323105492504534587899334846366631023175406091959964279512143945158092859082122813182802101773604696729955553168958508955432217624413281423368329020480472327156342652094159963075237326069238240639086983782148945698834230722374108087506287276139050069953370191594012694590258469805630431814623579727015012578021914660206323964074645065324360062859646998363530672607354358250080361099895930106959284024567996470871410706588936699131126836423960697750387755839619675518874781182499055203069368040711312920545883288759579341298260415639083367874860321312874078136882576177012181472271317442093995604003731835497588443242047046402141068130855204954431227675880120591572294821164720554156550322513929287536393461045955473178793661861064438720071457457079994106192271233426231815343347034424015716342493031010655650559780520366134671940799729965049139899535428758253598078892638570624581713094728988231083862970050800536963018368616403973857120273657577012941608581432471371831411289646048291452695548361907429855471075557840866231616133076826310506560046490547092789650567394540889316188602399193720009830800558063969236132904546711276313393940023935787865390750207400559378651604905275032138400650876868147164216222338241290241440935286683783019765953467291650149384677162546934532730583307289855647990277688411030763286407962323922798075444320285250424677669998872220671819144460217492982436190500289629628657968663004119433536782635512995096087989402598465957490376997187204571438039672216527251097700609463140851331567508061529416019335611694215043948873390660798496169464494098109171460908902053071305344954519384644680805310595411994097298493502174102573577115418856074615065255027170994546827111860962709520617621081303397834673518120937389281837427561734989113530574826632513047776713187717981850726375675940066709429524177420924467925963644983645169209448639316357545838737588392711254060905754799339686436051475193916819536742655265561984549757979282731259106802644575659278928402255711996883101760952454204059505767373769492799087968787505863441908062279091220150978303532474763260271762961495003259622797022957862759092771677414281702024863628664220076457827727066471963518744493410024112050825209555963691410857429039224639504844308864612949393072239688947656962326832249654678913676232771183020826386831012873447252947659030667726762076469530734129735451978622003085104921248672141830216718318462749465552985462777060282756408358832729466634560286647595498426198890137749618853485445175175981347180674505046806359042182576657546644630149406626094869110048535914652955843372253067360234441085268225207888235145899539957087316093380799504152552097467391300829202599645721248544890340182929486125166844550012719242483104923114534420078388017616723986830771162863460921690953878374140760117884081751031587448576272546795184565098628317670313914855343699800554755824371849921988749756996249726886599960052844807132932268495103733376992113462038407951619509486918225895573323063416792053222727962425973591835655655139027810545016587269444132091181162989664458151060700582022932588764797988967409379695952959919234264303316150599989108669664570469260947500341403304165691118138337797552187753926893841053344681117028597768678097490081210375886889901527107925465226504197145084044723291080024550580398868173286820954612602835319533586006896570165644642036672755828069751733280485300745400111443089751934112923365787442854352618954467660500377956426400342854534558469743745059175784923884560761125230834829842966203464894891847308044779531496496197704724930730496617397145375362904024984658130021345413613095091572650526043008414457052963784902892232301902924269909096886800798712579381550990488963847042472151466256789546675471716703954427271942258892703308562119360876657118987223706852257982433399203932103640941641010541349083388434071606031092911168099870269560306333750725913669042045594373318094945417451267204343741196328978611684077570091446526476183068117408644403442635794223829647920883100741470190023184107162611263555472420901687368794954467590245593299529158027947149791828529838337737775173836939047438821509918664927059954722964143719491180598590784141839880814436882670585111575182236956476262383646625685409114456272043834444982745856222802583027269766127135892762497738861917489166657501461099479817518514470809622486189892551156145566807942292267461667948279891558763032151606316599539229919214576156221662001286645600275099566403446150639774653318434610907384824722181578802181138134556105948265530520074639501997924563089534182663677336966004007046284449668537719927057997056427554437408248835763129924542986112156921064023020689498521596327039398007664673090920243658986708319435291819395206950972150154772483082427800923251102594785285259302127179374150344608321393194435220926717246047643847782596223085268104245815349311718580656525422508786781251351255536652595964654297067102649933405434546633237138034737678645850157177248065326396119082913903827013288531555322933617331434180849488895140118350569964657041578529632358740719626128272374554579091462831252119135580336223184980084604783708122247518359102281596335370436664482381160503587181450215135982245723502837432936171072232959930528920301784141142745741051993687695104107827512356972649041787097710226691640976481604172264851956066988105940756701051424082790064779900085430653335232328439524972137710458629694363374079583639840744381198988056038072996366197710864900166657724180103764166172818006479327382356935751871346472441298735932160881924098680400735657021246566376661843414739655597729081094142681639002740979067194197998575198482491666594661435732700511220577048942312273352501827192765028821986322597785506442288157903961604540477643942708418631824409845207082190205049376036285165910639805314405443561028372807578823637002167972486617392695353853819521777995605770964393906912024421550872269483642743161666607887218313139433889397790532200428745882170819662607418672991360002589066474092229411528226209140810884081197298300697371245479379583245701703482521755936776022928175273691122003220344680917680169686853544181691259213025404418175797986258889415048522471679216198778616304898224121742176329620562191352933549137972503337742014429425880758544326906623906283055924475839255147238445898758374394654544780340797086951884133957130211711266838199405529956795471884006384596185336423125317734331422006726367507818304045025322537152768636050780837967999899123438101750212625770442163131747908343403020511993085236902367120799802026612594156747737425862356389734079722481970700085004087259902156182412771366291977203621593469097992651103196592365744313305262319697359059898635809169529651150636214078062098068417308486516789603491782624429803406592431212221811241322772441734107749485694364013494773630267958463216609114482009665561046543151645199183981426115211280569941055527734488108789893986083775164901643614860092574659072332737489415081539224055076153043879826408001722511790314848522603049263270221439229098117816449085571965033111806212876302885883453522315269611809008850269685852954396789143993210689650085143614299180291642469750195687033781667110556550499544229600131707488278479923785121281753910655622975908411739195074449772892636520075867163525383073648786112576600772033067276590117119070895564023632337147026346440872379011700872204761687077188838217301667530714786893119026940165734965859880240098799403928844995086969375144279646373250763088158250793942627106541546996269201884690936876714907660311076950050932480735932258521155781522070448187330505103121441813550130830716726575297267751301857195124741266689844799631392859354410211613662434216569845374608707204687538712327344178538397284378145278645910093486709561444286771572289026495076294438768514700296043406868451875379443560167395625995396237435066337725952669240869355036368270287887648098864874038040684942267184016482045565834001245292379543038938248463354793221743845729156275882289401571993498737491210501837549466846886458320647901211446152835961156991279214467357248237816694586299853521409307509450703196428920909720479003641030195472992088736701317189075746458361839714748605439626640340699497305352954001542866492988771380301259084633272159026292227264195972573601629471430897895160091577115711518913338407558134658574339791722171904112918671084516967088058861435604487555438026613170725286173145021472905013474452896296743480740725749006938888798956404702363631947327432820231270003433701382659282442819809390826832444696075740328966201284964686196714837644952947698846129824229434889942001882983647223614308149788220177987010148889553012940516508938534164032571045563062163941364733298750323624459534855862248229225229026126437494518705571035048842842201844639115977961643232425345282676095219601622921537480351644807734273458672954025262659081120265897715699076867740408131870604942444850007287670369247312304340609888336613530745389232281342400455235690798370597255955595251327194005492640918671545104347874368588098308338140333806032023898254500791583432502976835994795404463885630080141872011419537525061765953318018698212619667565145778284787596233548291354340328432589598839769197596025747240343470462502987818573200506372334340714751671013350515969552224454533842883852971237843374051235816231876496939782615257231266699957294906948277755898929186568698580401367565208573473774876871914998918309588845926779323749208387118249797846581756302286158615162341595045388930250509758611026168243184879394496935841294646410083824277652967151277933905433707126947839149105797949469864020978274317015443765157946392851339056080365178122603272148417205789669432531157250010287540863471966758138746784776694195280945411180581809805797588972500231427452221376462344462530966755934240586105419623480953039573567640444528621009926430050098199234950308018279395280499688326391763930982068568475618071482433780820371802160041451804105059796278906717045146212804258410637824436712926684940590930340252180583282074364206860518137759229033230310886625396183875165729592180713044059648072531175196551393509462788149379290477503262504152688356762696524714394265781771867691106075837818302053927118881968639586281896438317432131173067711655743011238340434791512135756187882024181547217383313455007195493822569479781055496059970990856468986462062144739079359068109385846364837976012783012115856510197715557737772157450607299372980949678333916065857177069897557018404709111392217142408539975115316003359071434687407994389065495090287225386833733249666174483306172367386800506233547878236538368631067273104871835175463198662546450835607119381133438150402225537899060122403328530310631095312368950614281094747268180864134062012884575757944008645773872398854832374285134231101407499754403458727700548276404082142899799855567174616233530109919855880047500519009998553253835489118866121822999636991122298941371927215780017144438062295620262152992241104818318569154368970580621295319189417168926567823865437581623130097445213744501602250849580429994515923712591397843513354493072869658383107163678124116867435387779541325438489064585821522568339189880790542766217813649424682227872781182664603515660124823473930248964711313424979060075995820185754141119691715282711449628525252973213635642544184661835240669053040061178548079266645989855101042925248949246965125275556820296277035354815537921424824610610824330294331156214359170055751823590521018328620974287060343497678734066416082379899687319671045621801363157888520332279775183979666189354503137706388502176622461007425468782691175041585246398427646896159779573242034827560535945657829008871607491259276539163244729653668477003662359625755266265202277434417055326131217491289634194822923600502872244170232378263842014210157826862274702752941163100106853762421685824333520298756745465136747790774026520849844452506016783047279040930865788441173128239035875620981219468193963597078400039094659349537251682929177320737226341371276431990566673743100026016658418612669434445396401509011436086857274131553876893860298339839098241207639968285272812999898658612028446577375318219380355784607274315109823853224644835355861978263766992583059156315403342817670918226679511053461729773115446151463259552729739141338330136483565389342573485969094416561032722549113075021873505518637251075408020677423005036339897673630922431871811678824011450805688631009606997928195996218736836253534439042102456449206316195805504741433627702622722542343632432382941659605740840658441275587493227429048024952420235735399273553941216371077905777446563742745931027557696352204718618810218665767271171247416457236576055565109998229349647477120237961637455669077476126750762292153365558800960613450411779437610307327087653813720807067741670285194417935193262918178434267602162755122824065932006004407551984236656710877926356551526651551664079941579182984300560041718502208042539113828562174301560306015330974407246675933818451831018603085818924465806152933480051185629823823595760978089356206727255817730738499296275358556776255349091755078013096616876513364198332362662274628410530829349699487474151189573702297512343482239161519439820424571459047403403479824972263005970957404480266411310875705456404059759022847029344005178353747115915518704325647857032939154930626233533231913906141575546737964565988387396082494602038455010020741655869829978143390413546164162990021685572213680290533203332082307628761282568483346447087934152949405626629160061155144573993965277343383086038684754333891888444244358336845292095042553510993939539511122525690182450874620907436996384291012069528741211460937985074971633870454492538003118191784955039791482210806389529803118300915981894962736830599034752173910423736722936927065433859917001059575948543232597789238539418984424820153600890256584268422618173172096088372958600310793357766167827897693707224402983274141610032241087558978069938061291786664380344129565683685534415653177318443024289485119964471007684765780324766874202506335718514222073826922188091105982090472934535264565945673784353355446731873969509353692509277408123822122938834880790159128950517052699679715001378263344527252634881591034816312169138045709364415041204297137118493071702704642923609330609329309661403242498279803932394675022112764863020344764977067858797659230737866595131652874840673298738052315264337386223152954735939817052368193698570282070830429176710055537654083676076281851352552224825451743283318413341178627012218657150781015637036370293300885390836253076970173192698220904275173385410171574128524268800938708379111444135498352115223355213009138295964753452018535517724812696706518513913024490485102813072921435699782849652541254702778151730183436542760353061863302841073810859337122045240550216295986965412575820918160843457850071906179245841687153069937980940680209195675585855315954881576284239352920648318230942027853978761254940110847284634605837968088585716284844089555222751339936172362672406020765453128668658543322323320426736605828152858052333808742467351867989279395977394953047981319190465175095388775339592339366627171023787302621690800352620811490460127763524691549207751721450889383882491211384209514355450251565079941810926467005251566859731045403220807065464399514818536099062332066706710358663429334734553271788790875446232606205633109945574959049121505224003792759307915027309466882085681574474612122775511896948558016782945327359827173737744961066920216480998577193374491740520797040231619198180490856493941426840936939166416622666737761218107635420712745528566529163123327537519898353412903182176362638546293348163741519072545890474193261573259763980304369842364683255530800492135191713051890213760365485153019540645399574152404022520478328306659066861778841629680893800038634301634763278260913061638088488832803518741728968943146017280228040988744510101960912931753327572052374642397695157726936783134982587598570738640154641239098217047498384644842373778307862016600021211984617027204473111735470275758145740834322950581052134349773894662180840000300490478546154508659406548285312351954224500186535725130498027402372511931052973580277240893520051322969015796316325868678716737758244883917670284102830544718078856596010709299801408349592191573712235616546096659579754890754422041692900742160136702579239327676261686293973908025632700419253133190347408931071785889344101418411793036926004450009120816325532265745829735950729814300153176887193950289526626038793716465806481913604486925978861208681687755604941433451060018382084690351083039699296325507750076765832062227418619505700972093600459692694616996700855144812170025969316144929247153894675625632184315037520879911740002902096374873182660958465587716056350088096499026970184175095125171424316323477726368627533506259011680880334426092377282282874684282979053823192485498493349230726547051863618239549987262413858491674748066016471683457524122596702306144038882027724747155319867454092543114391278454790380456064923232122903411384673738430911273994471165819897853554827428561565552391655214497108659116872666525298947889320548067845806879149384620281276389412813351657581777920560615362524561304516060883476335405013113344573974921586253707089324314531312055381822343866255641694966907436948979498183277559886703591417856579115058017392166515689199267480837352505585531888536255513501131290448199886713456702134974549018848517873727858354538236909109495430228741936210415411477748093315908884240524955778016027785998831547100072518471699109230466899077674758035540491127226105317283205915279343122544568115488309071784827437047104815186828738379903531254906087982968789806798088500538061248816024965939179466961280253350209404437050061268444760217474974014453959789149325590596466403065045638658658688720499955896837407516576007325341634609840618996075160093278371370011362692874096838755356858959091039519978840974732098547552058021937760342551704345157995365010273207559783258354586400997773511037702319385657137568356235305173223764033344614523987427357480435698825992163900137478077998968621627364906133398725666817521376974172945531195045447737328344919843129624023794516517845400976569669840693966502158371233756701503157189725751265565278827598948403010168778419637820652709120500913941942842136502761766546598314715925898751607044494995737566842498504566682025919685021317239322497258022821305957182232811306274012095572044647656274943288718631985874701862992124177043168961349297792563747967850953058283356112882984363916322368177669389339037997792934047281290713826877303723893014976637063513498070456300297420792626559717910882806553185836236581057559309288896021541512604303108132057150713822143486110589748677685634817676509297072757989535805539009687203129777419573914832112507730005443792416784948370159520177920423862711436173300579104756932746561182859426063026788079830615742812987584659454058702550854595917946243245427334924151429346406151695300383324355705619466765791176965819036588549427898917740669541950441394325174447434737360922429747704594012801607261430828404803934878437873236683934603986412703838822848216971342508080466557015828396693134267911054684889219111190193452034883436509805070874421569576949502443162744886218777124287612061570258428312919295208164964774589199038331021986718371488672545881298198097598996724758862486930934253306936658345123605298544997101500478392887597887071659918606469726885158532920029650550482004201807895411102651902623001408945302989266585662243722318549588501322925455552341785171785934619135788641983514012195757302315329701498042640475454406597873607022651080339960373006583325129529932832875478869907990772655993099039669188815635170843272320327912929823666116993627998112347981395472569828543024052100210159252359004609708901295102392227822981336985159724176783469180184237733502280350110746102352505941927089313900293281960387241650709357726261383247237914479567197113519083419094257561756338540030075770740819519020789213562141612351937284141343329244963773286855490955965780880700417784032808177112163210784942922856539705800715741856760060997074575991399317368286150400859547088612504805570996658968901524319839674685799771775901954768511062763180781412784996936911719414536759237472674099533947261313985653320904836971523346244809465287467779673983344391023987528495753892748004563002228375152305753714954400230191876585130756745456852603739644641268999610757532071788263093222311370746390146680529152146210683571824188523533628218146939284157351471603818747598740594545692655516734904914408583998212657058485610275209640308248005018024436691341385879356166825306759007477053487733846966629223302747370157002508961594136702437458839323938970535982840990501154983886458214350070602444916581144239645519269824511351640540593510611818810256291092342842248811781197963307692166056211420884952567661274949165336102704574104922634587103743916157234404135343576578054736901203332299657043866167155063884029194813576731037738484486746055075213111306199360877700887182219907275691824114932526862888867322319786380691181427233990092688517508437062999303289819748893791566563569937164841764112702343891675998058684304154173434606376917674900198746804880084083841476338994045114994052277540754493541261954233452349419341103221251332462991278932104921227282284759645341126611907267528049613220422064028948899142993945647993020266152847367280302716600501093894638567506426940069076290427504760657666691534501616641925653776896521946886919236690158053044706406003067859873689141932042133926265740899286934627148269016691548458835881800372476924710093178459025128394309002448974873936426395878020184311634027346332378294664605910444875702953442181835583107140245209062135438647085966767037340865965894643546733849877580939800939022805348871012200535350143403548290802964633623999704392577325030985581863500389363282961750527530127536013311046154095896683538706174668853760164785295576884327156271723787886640632292356633640147694110903921796899619826505387366662499327365218454299057126322623809549677534518374636981734042548741326166975818454977231999363301486807751258640617701137427624289239736763436317702790324425072513766282386260554584999596362156461137643384168254620952808427034521910290487288687658337416868271884525052237574597351654130842665710503860451679743834103533536332986715707451226266466883886418733770927461015969632543021623550869705908204122606853627977983925016097191676924886204703862072160818990961221309804903386801576805594137653021237602268601956742341108623626209652200862946783468309607338827154117121786496807309620416663051128064387910696186206031098488726358126052216036099499208343189481364773809720554314452633235570534356362831279991434544657765499848111409351125246366584254939420081067430356536629602058295956117497831497491684686064659256782827100368300849541438120117704100642237821015387142673760728309043637418459882486055762201528940695008773938905376011184955459811625919225931136349590042681891297537892354993641411593280532519098415570826006118685589661418040641896793272916535168738045484959689842062287411246050933970413189016743825901448160049675374098505820972939130549391700158312983248145279478555406287156451338974813739785524855170771790584528987227339210447664107644504972724041756210491566475882062390374801376000217813984583683281954810732884978276178993666801657112012141187308886985861933430968717860944455091249411104034781116286881932906601349565819746338914141291773996088999831098124104055685152642967723859801256566572425979599011388411955577716379074219406840445619947526272495126364666135228360869632157650210807336341806123015053615882255690701941775461435566206746687927569233660443295832075582858293597278095700082286933901611301064836969059277465078160680499739381825135522448949727093638303000856129475026227665071898189244862585595699406594395727618319583649560183999462866306890797239874526673438285988279964811090287779181808072867102411474943497524385398918677401806819597663449698564433054867149688646204751719413974521741300615209884644843745829537035860894516051433836929529522969329634879614489107378344946344196213792712524112667855771401507849865941439996006431239577632140004441344044033909460531027699759725376596922594550348479672099794946581673695671485487363187852443574589490445114000089899610017675983493469225324811021315879526936550981119614207364884801085075731320218163352301718652122334294542349161732292934773700348204083576649859301755707190690314990286568458456572293352499233978682791713919681623490381652310028131606780815532677904247409836076704647879205642317907057957461805556870825728709841291735172800172524113445903535785985294081566208519623558585617237453936625401788818061334344074627598767921425810398017576175214940594899911813894359913031733266386630244941911485308878080591879323375634556737335681273604291877150382697522116863601699789790495969634623027711203012874051208580689251381927057630382674195664424762418700981651160382100516045941826780498957480703067224685287272026234635844819316785671400162690408573657343360613952289870691121841883153401479522629678227237065569494943558006434165382055531872206711807672931063436155998537736856344215249745798867503506394722075738326990985691716425796488053129734930287373245806383873004417279511900733512321197482722162031812793159759534546034472462540530843891713699390870334952671336950992727634777035820835196964635387712571144101896256149527071518070590430006892258059192565567010884074236297420720523832147974834901470351356739577502904671823808771374970352618442852985817661384672573955665776668761736039808220040414646746889642623405490193077411502512132939481859119858763181016111447795394872439202718341079828710869030636040587322007174588352059278038101794693561404853034210510578866365497036180301929146564217778407919781022000385859020769356655333515014472075084989928163012867379948021744566750559932517271225199717870557586349188813047937178503972347830777258218983817911993202390681486550964887133877969223409411840550035471217275138127905213013744348804066812486760888894107854333226926058534135580881492888901800495798724473628038741954922481280413687047929177998011101613164602356918623915738526533845056292601621536019660090122754210008066239018840049292625752708013277736285605928101185733105439595263292147196448605779215917460874880815850058496869056523836778091360137701425893614088991388690002829784703021492544497430920484625319176105748856378727348564279155983021494220083053528352640249301306310431688630137404224054084334064689677070561032752522378312926130292180977445026415840039583925508888642275318553850951296109422243476215966641337519740549730557321272362412077988097515962419813499915675082779263233002582818717431601037550728365658771300642231295442751087867954235575704428061555396402614707386260103202018094971273800045680823633599495349190585789498949302196043019456725221560075665968766160264683703226620859776396692444226453850808881306358022101301987067605024509324140549436973263445027913203851149541206181430156101846004943241862541865765825090203980941318311967978053800431073740883810676442819184676774506061775213679867928463620084880695493806195478984200488214296974183542872277320280381577804851120990147812262403258400330672357266623196338975801510046966761090054442538072813743548958627049638040406707381140048756318529874130962762695955884651130173063233984231629564762149701407165820379757660341033814956149866848903077384041383910932134663280925377056501644137569608855322503592054830090533561658922994041436216427721676000263439752797359882319768192754742485706715995553347352818492447739489549669035583964735111758972632774828446127921478608308885307763443268343301376153885190408704412667545302336635458868334899646590332048516850697426074172332674411886905167850648536996619669420138493200072723768158608074292748082260408710342238835048686765737548286848441203185749034883244197478532355834949782552764456558200121449233669639327661625277249500397454893688031512030305777267248891321720390280044068020181344574277217991302874088587732545361769505028893720953716727708071216270770089664839925556376577506876350830444725898634128139936113463428387392725948217439678110862313019562066114898849544547198733441989385301589922605864836064712009267737130816374192217364413998510234760359103454323148204152458464001268418021647169850990917183161814236455361910696212241406743493767900474635745893935004070607367336288324048505890467644257061928280051045579180687517280661341646459215768251763461934875862256760539612742736036901541536160102363802506784373036663128080652329198329754489796828942911287191065797681996279327768512581219680931864509163736140195828436442772071411754240265161394058538368739974837667865342792849538592454739939926437277340992983807440350346581644065947222771944099440844557732672488222629647540773861693063122060790971061338301237475180537707621370336265945911488068961010031573019734037501003427546124334893611584733914223748845674023339347094132245135224514761712901216044814653117315327117303243064037643015542661502877195904627159973929858928874122532716206816348778654664675908528946661034748559002765291944024118265287746063011849459400422699671063490412626201828535087132228627495848330433510425476539690507875387995056696127706425163594440384850229599018683276410264545373864174254465531480180990148622318072376943052947947575404640100586625847835207158213537027625986401416084719778987866216856213605492027931256376421421858597865629224883414592651670391313093730473719248709570218358016683430375280404897721971279297818367402590056905271550246031994459709767032397547529514710823737276077695955210200562733541934135414002795969646035230719904538894908304080195535137739636549551516460513392095720862107429306427068693870867099942930198421592944350905621497846389815885891172011899837002063113522323769828237863363183330733821396114479407010360165030873785484548230361497826699267023584682097091828532681595031496596017852485451725991202978655441690397457721265969485276092939963752353111485380724936128623488588313473012455665729024107462943597343140500550043278253821693353245072796498160765001569299800709283099875378165387253294401722585095104370522610989222331421307089464038284120393521171811185011225496780936215034145964157713099511541249083095100422360185888385341592849894361256582208220665774002837233184171516954055294604327899853033388696745051276884316944352541342661925611401050743264730163280591802301613425640380982226716549718436828649049098340003389785720693961034767128400114925586074552620396526639984720922582120167549533283169513995090021300511875442104740425052474246850993178706989023487770295890488080639561465086830857019081814368922488512907600774125733906999788300799768550289812187270164256516290435317168387404407019207855776682966747453291542342421867231340611460624479809196069776274285709013561097370432982108223084561387941575644557688892506254932472665048985912331021339128821764464529639783929698616676338405423997820688300213643337166091870367542474802059914136229964689553877677633903609271146174065205335330999162607978210963111615155577485275537270790909517435042741450436691331757185228118183111774908558261808714461507166085262365857407165204427024814796172505572396847347307607675626131478008936158180070692596206012485213420269639481999871081819868377108245964334182004883837866766142355537926695573379945073931142198085101110135790280384204999597678039692251706688914232459231227404777783725900357757760546897533890556106869534951838826222613315736173970253338445857629482486458755934033652707796513150799522243269763515567029106186131762231060385392353577790385474428586412152074609952602511622207287844499045131360054698803348182450730811788399725772485304929661309403015250700156981736333094322741206010878830497866391267319556289408970263113691813187144739061603441476154761200880954878972401972198962167879603274972232751198809737904606382050849337689090896261515722873550589464136992989097725644863739214587818486291478994869724827529908663391594327031265746114317252582662822502468546482450935789201240122679081899544374496488011043682694828727988607913456205849456878128578961525700179808244165236179612919037714395266140880990282142019146426059016085114993564008747522970576964738948449570530092856435431120246646973828933699824524884859205822680180340956133454779993701046924136197924060122011013888164460513348743319912190343573705534877600789594032235978679211181033708054508550933555492052880873872552701380618691730741894227755955584176332680630683247372502375807139287849069607679442042067465333005383545190092280148803398785872442715511825263658337831234568496315179884545540717449997554747164012998178095080591006712133024165403632923288623840219508749187232128472776815842732730759033424331612051149035305167281967905143030266885573874927464525397664889541455537517176179998337654289671552858911658620986065127817055335041969321389818704808216761670481211323812821964415027807712786728285994483570434214596666160718835230825469226916903560205801244752011288266797600309360780244552565798798870211254975709661288502517451834530021383213663046326168658889918506155531838175513500104722835343415048798739124347236785058069830458072567946225918652311902067962003079111309476331892512496996671475234111066250760555856945828066984507565652418924831115497823857434869952190615212098118504695337286028613083628365528997217859902540456908037268686221133466851684189482418474110115482069927935753839905019436806515086545193703591311712822685861327194185608335714249619818800180387885493050292020673969697878567884969973446538826958439196899088717122069311385435519274664598583574951426609315812261161165322460493102964884669724995446787768507279324185060042312325744977995225867818199069960260033385583452683912365240382772167964344883704900201326649848841178477893122539636486413309253275144535960486445821791187237581826411315604141337691793573795364819759740170339344345568851593912587113902424784495774931199227574292173901479306768454815760226778882669330284330319200629453228117820015588222284570860523511815718126875650068616043891955512754499210562241103165183720664858054060161012558328660250565955093799491528096121537490531592877856625551452034987446538065998883771957374820429368079508805839189045830537897787839689847753105044795273763895987554229812119836622964086666840559105287616195726783595770823001235878410671762558272382457906113962564277962453790956786342213322112464156225694861868750685623865465552049082417084427589832543535773306570004253336197093818671065939577652843076857315589124523745947964610477481071069568609301558900794493787298486363443148152098045651653024628248684471668073327900224447509786220955448604637815476911060569821002795839574301437549384469764268571823575354765961431467705589163565886636515448862809347909028262502443139612176001264331823818407071008303079695366998555304657116554317459426287013435175248886111120193193657853211239851064577646448387991081289500957730006645302237041487137633156271474597544888538885812547125051694271893254428721017032254388523759426704465355771562645881661630474871388967392467643932623099362446979424666162403837992801175430962414323285948171721186533856057762585522369041530607151211317611511061437612756860282267172095306712580545481289954633997607420794236506939724575713965954477032746471543070489522397876722803421160186120011425557448852775386276535400603051303247446021602143949480020329350185866198158939223014908243446959554909379656944980228527904348361839614111664282082029408337223523609759940393124521730102104505706526589946191556249028418034991647122594898209703828683597818974201232662584601904663465333921718391658166427366834032909767464835895877354868251232680534436714767634093697666252307869243338134850220824395652052877559079225436241675590331349934404247741640221911557136207135564805257112149151399307030704606564550742616991574621180586403874055998618278062217833424750654412347979670236326611058767738628534609183162774825129732018418717830959954675689206675571396984666154875759532920117990763185514406302036333843362108550333634986361395740500997437919285672094431432721676889546793708503695441918442032347145449182002813204216019151633056441357950576226066105758487125306565053875585799924887658661231042894496621275292241734205013374166877954728696480101828715913275464140346470105863805873668836202344836314614104985021903192020432476122285837718550237880187172052258671539775397219336624651454488045566926362890742383569687694904334943626040174439487642413295975224396219351445632531477754690795768864295649450966523117629590760183943783398681300944637588312293502552834429736200797228343554951416219451788268547000943355682723855152411992466369564790351395589488562314805647710817267710159830111044718752537462277006686835482514033120486507340417522311370741615945098412725789949544559725918971583152675611621793172758954892895641723667038095575699279129503764441760511559586418421155053991445952272610305976962047513640002216820549150517056645846150703591272476669654531193623301461772913378753750782796609307695112951070750717403663810695871552435355034113258502229033098243354382056407299017456689205080810730485677253062776107563740558179557008575374195921559599760865755387826583115961629837140019882402240652185427712780218991970037802546650765037857930944937357452405970680562713050901520728597138900031051383917354928037400631546193846331082067022789212136099930339588278399292651244329635918264400198643170339091934508266549702488208935831669238536016257001008339041095431225582302219685100416251797859789869433722962087568761487174850594644675032023245058563149826004524366102167599180699453263235506699301550448328505167194896014265719514100718379113220225674204806178147914301946623462180436973183206159228950196838728423673916198992085543825201719109756476931283692323239198146127501045811405671686085315069903979088914974314315978236728956381157775900843191882953413530301276911995227799153900764630305412662067650781640782258137974318396282600178435227281594139594492671807963703357462267015336444059926948659570902917392131605130379724098772142587800217156263070843500303365237526603035044452212047510902466222538590587014692364387541951896568073702883933052589264299323712680213043280242901963021864648605790464575134834491427829155094649956403564275745472089951337604252285560496086177544295179235153629303460134785937524041828965491364915123380482917900133039171490359898089690032973168180579148595063870787873704459681272035075299046563440536099860610165799175956593291987710743601087927113151896184605765485216742189618817279166159199078855967230636469569389242429830327143339852364835267461199102371691543900553589631126188909302855927761796437822190013975206498700944747551146858352890378412886135424123841546486401166181340894351781756005152634725791202410007258724455231858100176571192667306742781714074533141996945023541782488020924379028256141941271880560049097463465929438877006495569549025825691545593294758132484623526288579199659156001520501743132202041855021055286711975159012334851107565962435390694694461029547023632297857363023635843506191190241576625526109355597805171599274234846662590485698840615473021303967764877647893316727077009690302038070970523414217858613540904146630086050129793043592946401938659610898481268064757061954034204838960855630913762395508195902264954444772449532256605020132555879874474251234768824762820039108977139955931150262142426724740586705301085697208844152002484049399522075345531225071481100424465175642107828149087468100579477062968345295570422667484023327778063672471661259937062652165621992425509044650609122456730302114963003636806950538992886334172901518231743156338380514218130112974664374910730454640065952919829539374098062898195139714388832996251941280699077938138204329927632822364957018895412110792079370882351260859190649699967078418927026254887907581101130705530641054393048757549475322341143204450715050532410429467201085785703643875189471189152928007144176117968331502994389729018200537968042619398038474023452245641918719823674461978326978845994961595675730000561344266995136084207657329927025081507775346042704490867888858716567817246727674132233974010706728828568788161205314788567347233225432804916357741746859375002096952164715566136320074086896497584207792014931188158470827942484333409365476255767825665329233896153187646774190092030390262055507300139448550669122056528252816675634774054126117419238927873746709828443297228234901959981678269866574424755134774072962792955585036951816705405759763496796200171366350918783473354332455840855353993691502184589701583012803107264332901925967415445658586788059642612892955913301588346379565133502631954971315461569213343296659317896932339111505831437087226593297243078100067267760783659335477858019259645782593483823806882651124905422418504223236040183193517279436695910377133807884935833929619210517996592585736091984855927566083477940651188484427365666308401336560812903886622942531643253514963319124886063053807178768949805764908115497232323085103814637317541057708703086059199642955759344620387807731425422440294775411396225257424356382418281026238019084890711332111016093869408263906830631959037234968398477981297320113127539437059819711949281992652599780018916565224216762957991684428525176113745329257892127873047303940770334724962974399179404676735042045094886912219455916647794891294026582564061037805887318086266215199347529391466022585543339908806977402965247705617636955193379463632804994784139781966614707282141325427984084594107121098401795676909055295958293562010907284464516640304323134104227880359498814768450326527731979770795859183467892749170529411775305885322129966350938752795739804739300012159589818205239548545103224651758939930932145467722992503759597739863847086807756571894232150873562041661545724385704256560310846645978692103585936100099360968233176922270375690358612561918498973014687994284454451117036000007275801186648433855717038254062668084391286027601480616614405777599680719441729309398806910152564987020616720872758241242784176336305615644476488676836348064297733971671976838804454653903495582531994180915760543389168597919731937208983841062618984674112545097540299525816149553778624141509870315472647656696170631428763452601788705124073442578889325902154775766040585415738033238871162052792196585670168676903626163180012651329644590781541591399678302462268464632479629468056021014376820462650016988560322639007711617024342186989502841414884667874313267926543824427798583608693220298768360354782767834011954279109343192029213277627792473398612789654375264285256318486344961913103308463020731624539842446942979841798365199082167271772232270324771165470124141209635441942257616574995412966428854076786556129474676288310017565745327631090595930214519510035278573708795513821437087363192476999447492617010851512862023047835771876913444642926135002323040381939537806670416651191310998021244473945413025685344989824168241636471622649389819929888137702110879304053935853728103395342753913359659542624209733307012617342399588286150723953028955833225157626876095693352835951662125678008774402267893696681270704468829975538189215796150616092479822896501971839772867001347403196755732823008240067650500677581697229367018288637779930302370863314916749220059448199896946724354007245716996740251559980318034091933406599492891019899830108994845815283356534423139963068150883109848898906164191281828500884482899668747860786711239787026136612663501032247810548120354192427416693739604666187865528960075764502436975628204603952717254314492653029313586125303641480146128314242430079451087117755254975230349293210765332706781233147802747186011907741244925520520325296690987065080441002449295643335173812202194685154200543137862690362967422586947087254530106172627149506094975817344567210552415355754517491305471341410327890331127533102127107744811122407294119938776322810377370738769176069853171925504899578312628903457504422723785233516310260533699080846424810388136975405665858042778952554178668685624110631724884111490358121871368396491595259807341922649404907030063153364518249806197392481185741846530854386790377856141681332193673846476553865201559022689442500873010711483395653606702930455406903615044740240165188139017525502403520796319901917213447069323923176200313608690862983177253134564863254010307982685897464002540652153778857131039697886010296097685066797862494762173007736493241725296846299713789244189617014785759935430085524481104970123569469881740612292934866579187609811271149567840466373575797951277472445516276241556503282839066929515318968888105331278649104580785652381216312997878641850253051634859262219700323737722862250298039291560643494385803232701294325007110128479229648555235815006407444779055507471229620802174538468029966048499333505422614285428449779677035766633730712663785574807749835723734349850251761092005208325019046372054160333974506551071611740726657062241681581788156294842653636854396562630139460157724070456820911641716646274550928486613179543556367660007242538175325209509690883260474774486591700742231286241978656011988755683967734342157344330524275082037837848482804281770025819576005140986269173480755770763514596940414601372039333970235971520284834216516550584436768617848213096466440959019393064586744150409352669504569137980451082437954861443943644427685884389418272487807858394772761790103887475781792264816607981465064057840672993221264904171805743781240314389163100900453304436814072668960257425848387709163388060931903871841354229054128744685320071395636403677478465451517831801391490206534960076924248016815713301988507691264470515885533789899178848197459122640651557578713720548773007930582597056444005309501666475520688026592648160192947101327081985569093499407985591155537540582783560970545463341542353438080094150727562552295122453571449705100532097003717104608637853251522180361492327324440747342705612314970148254081393230803130169678879483373606072418973586490118641125027548144057265006085832539529337498093974367525210937766550567893025862733568120045404969766907779986676513863465442964523660141831998034168943681489804719863347898651338807921348151947251382893365823784466517164655989885719046264834920317117925397870737608872405711386887747618246954732054350712375673583981694967908956404164221936787309397848511955212191662021498476304012248532393807898745748031913376704925748378867042342863520867294521346607659630190452755188676168332586113926552947939733171726892966713990584553198265749916166536454354815338644420113802930138278470578935079294943023889375004910655559284048927873657552277498171369805387740730608052439769648624373772312843842521413758519997652345802389191263552326115774567079780405252553486221367340050400283762156528080540766707697065013404642391202920896884232206715714983084337835182647092272970769120475030789023609173900363188967647628052412152708222299075356657665707172134784072159025936301600479741925746858802364200490463084584642041141673074189173878370153478092066040755521372772166739526239153714693408000832363528558909991548730770830137678813020245426098849770927989080941300699618091308331636302420284430746659668797633388388497035704273465386174482618277145063220196853525525582451459424214716940204597890412027000658521678070386370444389991135730464157802057965685935800163184419925655558593588428178846761327205791136792229470385216179319386544688722821592855614213920543723420193646439108712419289383465621181088229180139951029511792776925216384682213792751637864975944562798610101436049572728397337540716275089570836931338551147678871866739615172971498709826975146586942216808807996942568561349453746597855330858912172291163414568758595175223659390584299991526244294291738797626120548932382837892936756738283833644677164023733206275592792908931069501905590609507361466205652538855894096127147628090828303054518273993299270483705639761504667111526515092280804017620519961764548422801425513245887768569451170050590513045862607812186770222720570113994379891865654116671522166783778463364937992446071589185457856500944192823351764737651957261509056805274174759893925124279133151756707488395822137235217149873099680470245337809710235850762924506049350823708509982294337172524026476866911870816115078447570238537650624198035699717388406645345482688120498883189473550468749508174314462522394355391388637484965921767172676460549257369314041955851846674098946227826829720272100115675310436829189402514175054633628531780526011731229721807458663766809394576458275248903558823285665672150394749751600341157787503725894495272945279921853176095360526292047604766374814781201034461313093925442147465452723021158575753012183237004509651818123997514821254196288287328597523093920346236660174358931832836331589890136405558587994646029080504906542651515305570226952200958714811762580161166565137311173476782995749350072754107709703430334625584880241932502717367217787872946584916948754556056988574324731816728958747318286078013238706286808121604283527094293898862395673931773034256117197239841169280167675628411800616907781183525267358921673059690661664114724599555156544724542095083760172730355315424030549950445277976489846682654916796881394029681530947856243689497283347326809243962174049000427270986015530620115286227441715023683350408956785905237882630019199795776771578251920507971353188232012324411723279433227718970410774473698809193694339473589216499690986483894385020074161225564018357974700588038106427482236178506232500516646063138623278337661006983417000823685761162882069570651061490074816252340851082348233156833476138097685959337726306543257023282807921799283996903092724603069458017276353025736582998344677680688056261494132977884013928470045968641937529053867818603807164962394417536699799017427236924176343076002792087122907936260449478968463044993368925487250841640540073992749310068530797857998239955785644111049801550975257253527097485453036651300084696028240988018456209583410299390976109814191075738676241321184296571464009464424578931593391738194531755043450780971481118851866705371121528311814621091923743570383985785351569018125319042216241756218905521056690310090637502902367229965208694538072482063487492885673784416591013094392290727883275314795759839272677863982614525841068497520315545616218459499028868791561068324699791280862287528399307512795169515584222936733937595214627590967624376949857823582725062032939888648995791471329574374314004607857001226408109366569627177376149516963980407900947742549896139348631682334388468720410755969182636053531457518896653367611275521166260366235707817535984442329970225035916559674298046619530212680573495124003852921992389467827333400563970089657775730667073066165292967129239100459376895540149754622189838929877622044589500560901445892019732328091032049553721167660969820649526461373412281857173243669156474794596637992722048474456360608624420467028333377561689173157971714494686773974029070185581244452117747160658840783150863658490875738845687996842327726200675346137315965220113229393053584745039574972848871723710787509270070846820618685804547597985386748422556823686977992015471268736824752899429234924867374159210058295791814080969146345147669435836709225979614251996768631386218862591047149838456784851714062232749572345971388501706476213824888520315208097339470491061595844332645125217358840658847956385819580131100682930220453737880876341901038584549356722970702943903203796491204985413149337238485918226872660925585217031809605124403707514120671111427949271442676083858015466412644979463316981470101302569277832034621491167293838277684028377175254529493338684440847067644654320469281732610265624056854687522160863903748159025093122625767524085417459664903059224600638159391495069478184611305252571620167872806914277008520950418832157968984211049296618457950853774745431598259583939390648129514966156153066889488979955020083660409808424892537216938458586109016382814919333990126110648908354816519335447255651919638351423177702059883035881176757039909398946386742417485703635997643221379661885052003485715801311367300527719427631564390995567819640442638281065103101998497501312044077663720947232539437608319469969267249780238139209381970536096427637089226271842548006805619267177865691805628333703965479443210699669845318769579047443042276628090037391113017982127966533269683565136169848816272125198983482998781910440841913676527887543065689136600188582381192073314730856226241998232556598920722782330641735823328173785354635811905525144096649344511014213027828104457067499522534389872015760340811578273251247814894631066909186577961863246433868651418454365497929172582783542219668712489071961278353149363262331429326929834724178550209226251136208218968462964245739129814139520876726592734747296201499761389917461981657334378060797926002503500570023413791095335050191233878654554468260751523607647552063287266641798595976419294902434925729260218741620838284234658148038827202703152738256502738566727876794369488961385398087818902732683472262493474935006486624694382325323835274893434936261764544889088961159985419140252818658697098347509806936347263551974327815229463376369666302376987977733213119138060267841860151716707947997870910595349923609736313509123623069729684555600038134047573578941334367463684149433126464075451963747910579695355504874199210204496713853029617314574123702029372577171293438538928132335837869328558380711241030978285456344733419769195479905397934009146187110762521281875473911503623887796656076046623273849963030727061113723932168056119553842749107575774978932595759444579355506153927507487497411368206117327757943646329584652999344995042337377340964676456868887583099213307862138274898998730082413816122409201616066032654570375721812205228984199352298559480646119230846604495928374460052207500973357034411375399958634538016123998875558095682853365105647009062471911610858132801094982074740564568476345116776325680067135511567414913719833069201555458487612457863427572432504648435665047245398659320620997610767131889043421787608083962923101136048302834685052940240189967282133704294321843207928773594648294821295675510519443424994551468705776360111728361041768589071332581924190434408280534656212627270479000986644678770188639128133898243511762734448334573933643139845134991762916508719692514871295603624943382632957581718813366171384868904475621953125151428503964241203692697541177267921847201096640480050016917519365230762970439904633097137687150765864621099466482694483546420706232285437144457915570186825456661437664743598854660390477518672448574865443216732759454553968196383114765344844600139745820330456130032610193539717693730614482945240600543314137601416966522233905623209580956334204271856998675214722150226207430189002262817327861030172050975120708563407014751496711458127700424628452365796910146181120505261803217175589618949228338241781961620963798564444117900171034971316540525545263983121796204279082268310451552961632159136047898772642958367023569068768521801937675411718977754824856171082568558795944824866702785637515672800623081141802316665980569116916235354005434533122749741876625825163614271900925997948262953885777033661315318334934187586988999599122178774119386399222340251861358583209358911863008183662681799529006191219863919063194082428766023623340996040747398303215324308033623609968072717011742724007947205216407781302787602986733505827209817034789190270229279132578820106603526890354649833494307114711029986500403091086774699989509365938041819499919050872166283780657631027486114338640529352644107819156770682402960329427037902258704895116762628137667115000417085321042116756132627996850134457198583855763696900490569779380759833550382548491527822963822587981984863050163683551329024907989616760628844563626832677547547383856597756034230198518954115156417575849855998668585530878868282821307122976784597215675099063903079637551363724525384091667194510386692363756492517458045243704523588172207509446179606520173518659576771996486066937657175921997714589578529858082986853404817727110132442188630350238299887407020218556774156133383416364633899656074542042154501308206299077645339375480604822751785044186707702166612800857985988722677253310141112850478822251676538203484532443084341828380616715986982089072606688254822150763882048989890592134581246821720794308188255172009591185805507232426978360720587283274109205785054354489024578077315086833345832797351712991896679546256787542500021678092241854407403960083930856808956513744196715071719266720537094371135036472899417088685700918538785909244238527904643730271076389766950210086548549578960894425938203491566056911034886460350902206479236143365265079379413934673559932169363245621427366659214395526657611029312400213369577450253256548933150284378039278392298780924396424033764295837367099358277208127456229086545848469989768803748274084512256809654857971254896505734822976009227769178509543255937012438158787111745314787639415972431523076520539888825690036923364137066615054850612941492469849669651697225627707678281375483876546403773997748271142134604516899219634707842178924540810420860998597677258326411866349156300994031479968350284691880138026096023190031649211877016249243716434993307219684101292333419235314541377849265718859568650428498924692811387075764884687336515851518004088321593863877490505491973038400370586977966844148025251003011101031914068909531074751761057242464256029736300488688468058788230459781100728724608148176520719981799450413385542644592945787845346138100558923428187016665877087122510744443365266309678576960599211425528909568547523155648088596329422045003409919963614868347799853879624915310869237289319369620752447128926624480751215059085703737887948666646233294801755476710758349340930382506308702734734459041477312216785406027798564463225109451190624638067575087057038606700571166975434819641590839129168212519895066427011548768504527811195205601389158652577297505348363327724562746206362071841257614864306147639402927180789849486584652411213583669155383518994224309866266952088368807652006367938210552147915041186129984846235879547501612620379876474979603707817375666743904053249463777323891517567552246721906040033515774262528887976956615092725688017995383640362946916849095595522245449986916940916951645722080147254805746404270724386126333985626361755063647189858601598182902773090359830262756436144703601339630199734279229173368287846902108181831022634771464233814070415654087058195528936434969622385610714732918212056362388859510970165198170795244987956396339362330164750147601544468441326903920636213977100997356723383834724728787717270184509482752290340897733952560347112213932887856453133888249895442401772359566641201164024761733204185379752094861834772899787109864065928368886405360668661507453795788719505682005930493371473385387229559243786057856908432026315692404835106059261871920799503575965649186477706718197963507445840170228120947203976093179176684157541341938039175332008922465602471458656809363210194936591825803207836011144032652172593446324670842796374431052591252882126697481702246208483470238881541813325394100281723183262240392101528185500544525779858556648874329061172313045715286617000924300113602814019576214414251807309138563681045296078757786898997870884206469576866877895785615753373567591325841287578049922985236913635026767571985760334680982941338229413129400301156817677352888410001413834006096879424964778335062152746857896341714359903513961800962265219345668033235671558922261899978149763026958496454148711230535389607843635752143801201881946491418793377857873322986029986735619535910279085210703758284308880577455782572820546889106321980240414056135615503344913227634957204014133390117450162246751340236910081806742292102089146175185439802363401354602121441000130085641221947551094026510590523328696288364900607533649806531975123832147893787886411744351466291498315925524146223920478318361946651071954504637058624373464509195755523679127396619313490580961861438974248864575620061896940908032244580862882169264553387394364546689469821451056537752260800284983711707981247029787593674765002260459884288278796539937816887195199293174235299170647316751700107713418174153395638532707057548229134294382483892043464117149584749151584598824229645202115251201737675008329962302128470688745507897008053834324918043281483267510728572844130314298679491558617550855431415996311442373753196986687046362913917651375027419284909905504432269643094432628193017250164293105572815165869458761431288238491724641502455170692203109470512212737768094572846806750231528296943819587276705416378148041882947525594119636355982826038164583195953276161025731688003031190761129263192106954762097482515142487465676072424433749505886418865919576481369894570721745871134555257010620995868479632204424582302190155876247427902706509807905482463599729191180131051722307812447609870601777519753983178974956563764058760065824898020392446098424108981638761723762848352773204232581764278460076607423469183734302245802660354604218012845485176084844597428236931078210441853466504355337478035846640261488771388569947828384718581675653496928134451708484000420341194480799702135073524349609039400723651302011893548526501160879598621380997958792148088707246567491248668047820212116194736570842323540272971526253638199434772317155760561158323707808936993118858467687638628867991403864238806186718236986216745377075060334258923949345447652026409328101750389509780415695795284840426974944163192972830050831811682184538882491109272881995678822885463867064742540149136984303820882941943372902185420614960841867770675918183319868234787414498615143685647758795074169520655055250157122014341962303027501834143219190522266748184879447812428066897546904791494730243440957347499887088471414068357504628457107386707715679730026438421431034990353193705765879864640008786203532430911011903090233158900556331372036442481793251382438082003304763887838612315248003430056469413071513906075878013298974180032736120113728462416015669844831827823216002615996000847056749431889549844979753372793181722347213498451306995785103832260894368225076214338628121676861203321307444562884553525506892074226772375745024691526264894863763916928323791703429594489752014366244270786797072045695991960432175200232617260378057945211657187393717685801856419572831124867714419289588122201138856353793209070550096892308817013290260703052111191444087286131629437414399906084284657481231967354344357041949167922169904946871389079847171658942993197747691641724439471267319483245768379532812505927298701153100685622308612501434931640741433283449865463033310864013341770089892385618809835178866579026171979833717687548764498968112560809644503277812367373694442384638991259900607359451308823372244100449337562562295966806268882102183885113058784136650522703661702804969832414971842042803816352557887665784026382717887546486405265198731781194438190026184481946915007768755253971880780940274072788605338754625976403345473506463367206357009000713768060031793111384249100658922308725299725271388964529372367885852633778709373660794014064477445032017860889716348969684938745859655348668756824479024911588573168589183645658970345473796994821133192054288618459959587073498248964756361612935751849515429308855939128042580126203686038345566080952506968442622435326170459553607501672080418660433597903384059896050624029639942273929427202208193105187305717078881885103103093633184800155493820403756775737477948345036667685932508780298296698968943011885317308606281560246757708439909677405865895634058368961437770515416055245752989899833550635887151003175773985221651145104005281362824863580095269265584517597702780154127467766893451405904369082748636976172002821080244897875154761603318609126048836314164539768550920941004668364079152758406667154412537262328481335137684793161660109736018542367184812624141604388740449035664396205005075403065362149126611988921156495174833990902013240325660776227257111446812899267832705519999230486117871213025826947663616757163356996486232303516698255208588830393967583621427698512743340926272066570059678725414360512517283024936298873409696223229842970857478880640217193573670064800266683013111339089887527791062027212789773033548973483923683631340310160585869962313902541076944432954673006539571263494843668941532425374446225534704501179535103278441281358572443428160887124946173822954479705413990746119411714430990376644645602518019455208079196840764472374255857346014927934504372652964917927977223418640172587943750776303823563063903384754605939653835339932352133839824073042150514604198580729748229684234884693450937600708364500096861095622794940932123735988764894993053258874528665424172740261083165980408237679703333559170717671984560564695825471234256757565836334560946845463915210001748436807808944897953211338452300426659269616777768843701065228226761706621746557973769221406767463227228737525173428777592705418444735599030929914208947395321610630957997944864474044393842407054097799887341905557737148530746744037014886406225584502356095092107195819872922564259552321023966215096709590092043768875405536161562289130967418912276067581527076943643391759924028287785980710724794972220463910383909974907010764413423306353587442342878903944325821437029604216877408142536599191593786654003952299653981568603576337889091055910116436467729160528050964328281453621784323215771061004663739651192908850554136780563793922179071662058671188597299067716609790307217459485808388298612457703894381961791835515852639734302914011467764669675784093629792976474938682968936784331009299911161728794980937309156911191937209934074770044815281608583691731340535158207989216194054044362468923568299217544771318532189172886551322363448684973491442439599567440925393383596804544067062007299800351155701223885371164801309744896551088758713507561080905427340508858045693149820566913754159323069061669888347885114302999762971966124309913337060505465449241439647508867641953625133553199564832842856766188541959379950991325619016933880587493137422087555486412625975793483073415670420724078637704464452010117347855088024755498957639442479850088685835308561008507859371928865861263995743002341087667512432866601133556536693072880191108538586106492655506069488587251567631171784929610471008168170602041835932195134037240745147272469706328448233003875557112420155858375843957025275809230345547384755132239701144978635008831319618479046272389894185667086207644704694485604160542634533728015769886162725599591478596356926699555565914776388105393909494503828720566945874932959707864733400324542945353118742285219875485458083841556420264849710026144147769036369270004058620022269491988922037447049298285075070053860597252221877047141941122179412412320296171001177322551049505470928384637188851149964056985931037997017992368990482581544833818582699348568063663775973606125678844883316867913566370728273646396128859096493047121666713302378693840240571583473206083245968513200119626768848733010129245735869423070337233162548895011024557063598847011547401934292447723688906816883019533892095981387757949248125792904037047523443636340862531878577236470604000779444007193210801566550271546439698671740185456846761896594482873383864249372656924744864628791218518526901780027865646218101225348440590052128471855477756675978950774293174992017610239202333218452416249219995580219673384197298416285005709645805790260236436211118849547695164835673692606828854188507177524531152947131278517841817798312664650582667263781561804919553607414171444725806122360233603026436955864808318168925724128972030728634249144836086661538665020075340770677309739678228849943776994450438970094562708600580264923077894398441097254765707548739437613515559757030863708616604034088398865505029848880256297662566782411152632228066791070959750231870249865186381997865554110043835589003400316155843068340386964357083890618107453464175209692078062133600390434046503433872278066937098081961458372651025331103326245878391507703637059235683787941228740174995075868146146751487518092493146101785429468933524407564186712686112794128527582272470898384958784848877607915041218211195584910843054288164395701616829949092281948136053114881812639496626167954214439777206535720752630899187085573511259183375522931461545713648200723860423997148009426633249660917349463186899942614948192711565988305886919080655417527225461050135718164622360234746163962889126933652260716699343383530834886334026423664156547243522068532128062069062660985339596302319892280632028503805398180653469487548034661323110605887280490310603863813237964531326775445758074830357127072857691959749898191773832179321261407649827559288724012138042905490371013770483802542142796623016447539303760429931052184776567389409590739302367531036060944491579970993221173133709336954648993099267526600956061479124272380649040336172317109009909231785362859067524342163831468596475883664386506545381523191613539488021151316058722858519176297225937668931432994229342766249070991503770704077866293859403357557699339855213983800911743804381064076745641753380505018272283675936443999437617986202329008858824324571591298686883629901610624940850441346308637378197708122015241336303264679536115158695012845618566860439508130114704914656703173597241972628664113585237250194022247859023521906743466158245794174677420040741189535779683557039939801076363564160882350087773986913185488867491878518761242325941665516589896284869742609109317537768273697368314564136535377371089724106328823335479649887086638976989293683476968326377712682108451099268067035062062096677636815422342693798671212563003985129340618348138726146203913899397371904738223432773250403157390013918455581855078847551523365051953482936011928103113646719277348381204888429236604253808581270359080760460649947245232108128508447118425533530739463248085289170263459681611095580713044419624303238886202863001976554628800333401116314735289548858763911458361812849278470359910107231854188820414641613533723315663799577843419986921011448153872921440771844778727481062561365634044984159530561709151433478629880493294376837351692584543331074195097877756961687982261925328472581150699637118906019763797175683915578610363829204799593401797960419337518495915021516482891810223327045479267900047504682202724703845746306482618100932857745496235005738588184166899684743942369494067159844694595084541844381195810205384893900528483783944228895235917294075530895890729281306024039511787327095370718148413408402081254989460510962040425126365513829407114871867130252737806610088217732091446284963549922821949854248266944351116259314794748215341771325076510962828301406610814189869594724589298245685292214177829099612960543370941746139976311913197581219523290357051261276804860642773665385238875110369237292621812886914723262557487150089095661591856208692207552600970224706764303626198672690137110686403329157389764020654918853647547153340718145128590793046551357472338692623289410044837022626405968486697045770714734659586319611371548794715673424814798362630840096603536957793216371205325200461296048167295361311720641254389548108228903956730993671013423832900418807726001366491078503025959730824836327613526507679057236824073741766615147229819825002222959384019457233427738201380300550166581601486438687985560722624614232216396402898019613043138703938725865319287756239539352033852851025650763737979282372504044784470811637952920730029092399575652735715281451691204426128484676428473665476770948273954108023757750033274718733778601943739577255569914067089642683797608373870463571646771055956945328191080056196853465695972599008036907408371865753560938609455352688404524278536547612692757356807262039990381913860697083611857567547057122633113621067986239055377981370195776700152170296942131781702520676986978442498501559965221666612511441653683635395557963257308744635889153594820510664854924947955036760042251399022169788473223610508424935363128407853049082625339819256409093407499098956560073125884409479014713938945842666918647505687323739205681162811892325358352692837125678900902005686738703594115263567845134407452741157979766058066317961462696867264736797105489231772675349938389651714631485429370718803194200635256149657319691477752453321510499420146482283309262648752230640667710812833343653249458203479093708734208346851552946663546048005376024438899769590163605236527382760732905202387062844014506416859332495037562624032269324162885943885061123203907602961307713175457160900632394315608669871947881038935405204157572652542904850901928388989490434902029800820036131753765831536353173992583492919735057953912870272456866875460922638762644393941511723320479604649546734676357331742258595946794167551884629822792090299278912764334899183261366805419235755935304791835549784088551064541546106609632652982110010946211490889519047065583240444263494011595903056147682227271888262819803681625800729222636642193175396378399220524865592789542362831319388332333251388169727232816611495385662585943171879086928790147092496087651092306742557540251913700512480397666984569921819123578393610849154291610806454919644070181530565325495995615630610944962478709382772976780761958097550049776882532470531049313456949996937900714625167778226639469844194762217203709456244654412099420114347169746034070935783879471621868386741434347795251841392593082151332584707850869612313329393441970033367149915532732347929852166337292525007506700617493690974290633376482754679594408231950146549445783276281652755549777012645906427392930394969846778376284902123251572176187208616694514113437282828172128719340108185168946130316638732501276732918320198452916945456479054270305581524009122323691545520029318332574355878431633462700448032549865943854252793776072541300953178844753422631942697638107420993204521188763964986015832601616071972883073320272203046909480967863151100312224262408236139788089337899610649404295372225113421541365593379949450384054880520843261111941097460247186293088531727885989785794834745467233172240826558295501718517357424535210501661595916560471104689090301075163626719519851748512922201604874961032687969388937274104098956950507327896542945966822896178140187670657749840245603074697248569725999688587704058775567930231180651028470797125124251160271248813213273203069258397930434709994120452431983162555507770712906017580740486998605886499206297954549520850916714609608566034419847209098776001990517317007489136773933783412678749161650997810412903998317926932244996100338025371629188103317455976863898172447367003341023031441938483702433858701684255131619165258058950834145915575157417859696527088257151463090087003720246273625764368875116002945106854125145502553401589297894917453002960491510747806502360710408827429895515852050367301673023266955226296560594246319658156039599407459274553972726259206012647388400726745100755928869003528016181205947558326476089485548429490296519522985504882118000326512040548937759097257841494798693119076649742776631976114586326146105923927018568980868186554237838001308972349421623553693145604957341171977182816308960170729757730021794590824547354690913706042959786129913283706214587994001184881796219534054353795264875112110977659075388872026495983564969585740571687775205701856169499619254605285765628935523618232420907304493167508856357023736155164554339154322091031513536766796275397778748317206423050638114964051528004876317081054154648056631677875357753795254102814152673518729338134797074230512994406849764283799098229273378539822044352872394400236019714938818690643862409963272677194796925685825818055547616590596702350284455214620520304825669364695092180870606154648689078974773788126696271461952026971595429254621717676879266744518661338167083845354409286372448777141427421904740100548676907739754336289665236298334339917262364339163262910075619861499097937860260080498390224723983792834851231938159898978495172110450081386004533536836582340069624135224973042975285911958380732830029423461800227642477429213905162522044012752362705099812226936311949602068710048350261580681094187967035465976819930445894607580487523754204361268560539305864489789003149618264313072650800510132582281509006481916343890511404766886989014612519668093124960021391822748249497826469120014091847688355183960283842949623276100636072377555609863396562801723384073719492722522512409366992759736055166866605160791615672853840663960282783686524885557225539595621835230613088491713176888262126909249915065828816682717933368647140197329455934292178796904073004333866633445121383470937771478472675234694743576695076385981921301423715342600931216846105451153283116275146586624576061439337245647837600288996092119246083338348672499193552491853435805575946247071909721082623408649951556393524557273389198035411081155074819942548261500621716226382825868593157417611791881612786325819165014415559470930759336747677890284930663306661965832156344616168731059829093526363829419109508799413288141092024157999997045910150341888582052501066972978677801825564007437222126740889810567745868494080377048248323404379913668315386558484141633800268573905426888551662154185771354721566111175175860247820307358999882294066386082933592460541332249542757558661332907357804318154815214718589796622366623298148135978519127760439277158162995634754376200710861187544040452726723792757589891496873997056206068619764504063131944767828543953225965335339971465494390869937642014549229167599545659872113687396938979474575432210376616486166674527846902902616257956942441917662045967714316225592451835785219546398685875636995178136937272868810395220448713848743953797723044921639319694859141102394809458390157320768805293605513390900434092634947648143475490999108945540029447105936727671208000626733285348385403738454447954733690296394796311620402893137869647988625014389697836212901435153544754948263947724173762955795574066964093660857903868857689684437908204037981780148376633821868421484223855535837012226248348260656190775363305144795890887032933273955524741407913681816702403972174588476352333763533381997596173708316562076026189562136236535422679129939299626052682929597743473135135827509010174536266008195444794671883934118181219728822308524676501745825388106463241030744487909469561388744144614587367751860756114666474828641985074495340872981887005397947857740734479469102162395717116287056151542895810765176259459440992931883742640811778477892811310843041666477807965782181871491134366091281810105403338231437255886516093655128708085149244015026423286720473264495444461140873052260155627715922220326884956853710654659343591154562638581197741837512216841147037628798022720314070213734832742907647046353653517467387683553942041173161087348739190151104825122087018697742531736754514277995252920535557535805431090309852984621248608423113144503875692492957623494708416277252946952310729667484883483085094880757743003102047457414801004029489145270380541672302387695841466828055921670897545863733843753132973122179921918136583705216657547022964134880352095123405416351585064912267898392799949233208218587909971542660779862593523734609251146661513286920351849151548786902385748458598959446517583700189290148007714704541976756265199807266852682851400938162223264791202390205109040768283996319830614058432356869685497612746394269018676414572332412713349300023959278560054764626348509540969401337665094720439030708026251807616569474750263589428409704925510564859611013763936046857695172488289543012468450499873881122353796823102748933271261217012340985886125296798625373115878835813531577941842690735351198390316095790965558643104462218149283280919957204057852731245030495841672693759335059125413834167304644113121153213989760328651502986451355249154113397741569582510617296415884367281487005202327424229415516459424509556113932380557674189616750159970417134340059557263297041358461495398839115429986447616720083833258320404671384408529101407393233607859417189061308183506884422645599351727537431434772769434400538790134343271019290327604675339583226267070993552780792265193573444789661293658101660414732254085886688152296551943708700874746072955271237888746789372506731504146882323895212041158489253969274378427358985879713750631215312752030607601356715298059506225040590576034042389095899591407111945774553599323921120890175806561754595937818703830132026619308139873206080758163465944954708807083691655905274355456096553959770441058606116172916303565252756862658210157538284227185068530819264843951916512456256336237090872576951615478906951166316121347561590554712694613608043868658520310418613826869205190550387406614040103841307432389578581752110586695083802602006972168011786046674035266098049298712902892636249563136999336060049541655841861438764406949434138217957577357040199904313858377395050704789736262464611613393720581382205350405502056582205446441136441309137807960442090485769866555266217260996276799967315494587354380085792897989032567102060175925736134824181033084760717839903247349102014082401024448024473794113391180906312323493383171636174305760715230251522610463147933682078692777105415261522892773794224155254469521011016107831318021755184269333504729685953676529514762334879165374007591124615950952516821010007665372588298640490657071190086526488263810034034507377989597524899134016027438511472211978315313536834017625696963278207711474757455136493563575183813240126743893333761725993592881306292069728700966559464828443689882138657228697600600037567303173553004286148128839635341673558536744494069394213737061353365683614263509847265364539007793392200440004257910508341193712057090175740313580890628615992178534265263893810377258947325446819369240744402701327799100680105078558150111263221142717783661314629206009624893431050280698725952309399219523223934905068041494072231787254342906050086681111818700876431520511043306829755642847024161922829316762670613992538368461219545048896444578785564175158579162113239580933492089124148062713448287297993591841621870103546932814108244924683004294163385621655471795672971649534987368717249437819673229522776878757331762261800325221064016318527823415717723011843623209645391076386179513945815381861685363875936741416147507196407867650488322413889807496590445168261459402121426455899462236989288953889774706057598200921850297192410004945520838820281647807759322933354930196955956356468431529024240114562481234531160245642318215076946866017474010909135917850979001296741393254567174816524681735364362578538473614222055151514613661964356806892062594282692282493986659184206927195941288328224019709779127059723741599168713894117810866746453908532753742730313465216903185714894776501877883823254775145062697941900597345775518642741421414897693489414139310342544433362039463090993773508258713014462165129218800019157299183664318352257756904426946226298742859641681986209707730871350556731426111279121337313180755218527485123576947646873179427795722240559125814743861366294330745538712850120526859269564488614510134106031746143143840495876646023318504825196286015556146244076881855678639479043912226585798049370614305930988327144839869658783275141520647024701793028913466467048805953532723330851298955578167545335142862013546490393439394925056018137898204361201589045489683775425710345097898511458046523780120362686773381596937416585288220843618900282002170495615065869883539142438632812369005765370007018451783216899117897084023481814136133138381060873523744807364912062052938788238260727778558309364390464015817133169780660303399505334957024831631888103711182129998676331190074788301834574860360263668334755401352719564393404306657458728451296955385688834061066259228835846440380209561627162862105173763290813295388946311364174125024101262661999991700470848023444399544281016171899982671235807087365018944263745558838849071911975649766563116474249034244337325930080295392845709837768955383001454376124070788217603398674641997458856053512732083762004421573524554435662518505156290993936521944591957183087054529871076258075261738228267772327106569270945311152926539393922249470190101761585251330918537079757693246780142798129976726788004053019516186032418134484512147940243040455533432465175487136980904013617777231611998772988117850087842644664345606799344415885842763508329508504435314020359387045320963794737287710873148928489021208661279331110743474232844064080242239633324678243831714215069327183635112032200260481868120841458687870861595747578572368707148787726081279775415073155215648655407361845453501309572286991112818779633775254025830207853991459051010595287506907321051951735544563912650549858911499283470189865349286278200462930818081333918528984531086630572480402037101601398645882084213115690734613871214631972205792994389559301431175477573069286778325815713404200464864083001971716047979497103245098916467597346276108190321886818891684930580298153335620832522127431548870228577315056799171371876534778935940445939739040676037331469702136819548563667816884027113259275806039647866664125404667784991056541694254793303147689663380305773985249148186381488885210975975872899489783100607551522947804679178803570043279522745514494301336279523286332507753245626562533694726664875754817761261286543816858115579072764902607571459985797637639693648832366183322392171978164408841047167702943439213762548737267644904878788522204054387985864528896378491822118534471400807407681934397989371055766433767688318495116932326525785311943012856549688494439342770488810386916584233511313578439997810966014443839145421054878850134278147251928882868852058681736241605658339870431152333089551079193775875358580403533186969165138851732891616169019716268184022468820892193542341396670806625290725061638651855115108091206985349571715779938302490906791228597718408292363354667443550028984544313792871140284716583899736178463146024944943189768563832546111986787117921076153715007104984704968052790466972588283898713291133807432315436719724140350820299849866737017276249455154867859505099774969397719469866298060484261750907295820517295883552974524382864433420790078623584193631551528875984531856857720302163909825925866317734792985632590739920106134738235980142780727585452643667903038588255554307790451279143452701091768776595820795185035095495980628552127149995217421286066230113318651946982219296360152146632685217705386729518255398693650115557254185186865462270535418626503609814545415208413166407445408587796467723847948790391350847196794157713632860641908479750827736219220904724028953618448884357816186471603800321972360048747899094410007517776753973676932285597123377403714390440957282948018942134305481597785853031149172082342900258448654696612562370281321809776595653919767927313257183178892514062649151302478118367331452791631543743060885050695631459306448610827596695387263329105742158158950358388963076663978345110347136181376021352756789829195110418920116702765605720598599072463483331324181623181876674551951171181272586634262681949307068621391413618119593278866625358895668377238141159173336041264237801082467724314073110522615274801656117040678041396789054838012549061918660601007643207531886297231680020870400676024230040054792070163041061536980463864185316342698373211935918536661785005326895380193622349892930544732879256029105259552261513106217309969292092597927847863226747071759816664310676896282755599910049691029625176452422239716553753739123735855024880495622521125331909433039983641771064507921503302005367963047154558511021723691734830288459357595776458730231094855720239178754749384250916583870527114158110708226814200425965625741169848608234521969778121791784292144010931978520645930725980168178635824607724433514162851200474413788454769690710438179253535630465583612842264798942086955657954122279935541352093001365138849087474202288521962448639210007807199373795601126163674747267782354167330909611714324597797091817948023965379810596035631081873434891060961179370814807901302200204178296797667551259739058941389237959731992319599383582604205547373097207914646408103563005803968033797195908654826444584213723051459205436065593876833606934905364189317512595259629358894016476516807467727864182481420659186679988069584909030968791492039606370415723479136239206471217419514116596128648529726558722947784222619302333449299577898025570679925704473540483669501251138966541041524844964402988070764671807838623572863996294570396548421369288826150497370320248416417595118361756407105028783035980081698029555030517082825045251277504433149209393798608132433360492972533980263029575769036471488670611504746171084615429295518028683921665368737737918839298870104995380975406231530696388944602210431480129335904580582531503812353482089006774680078685669824707460432670144361947268346002196148459500417749628531305081651897868723553856954328054422140490142679047778842050882229747092299305093636627247647264328105359559533105244815438968468781101429294483549422887183046677158164148562176886522779627708362170217205184796504131986318398714165693863557355943009708163373610124929892512040621423502812194349987342851416510428120049990133356977878883328285243258542494929933497375469200197780761373887846684986442969881172376294079322597543066591723963155980999442762723805769876932632825378425473426574464053113311872184421682629357739666793976312377080171765242716523708418235758259820161875488173527523291309233781211677163538368006530238762987559868400411577502759723662390203541342769246180350083453488982298312954360140288234178929805462305118893674304018714282821514897219937081630497792438314896851219461259724852321030802586075913335599677655601614122533608970269957099227373287623397942218879219112275188168967704403000119305608361825793843726273184021278736851562985905458324444176912083663598943009732361178976179538534061429631474682859033695827192835145935778609140337280786512053024338393153208682982121724238216194846936163772901673022038782999211586276289152790529015240012139489828979982865729803737309915638692301504157012669888025456715994441099941185123949816207883600391049484495923104228357010929216282343053165478732378215163143458535863638480882044183672152978634065025736326554743296871443994161594165583497952193442835598175614463208905261650625128999370943254840253328202434742738687290316688014083556067063507075726728939743630641554005191204908956698156914420275543451300271743542023296317560038906894638685226974251228121891188319409134217378675105590869951534262841941561036208662125512120359365552731600311367095511693186856205067832065541047913474947808319746008147432024618692378223461021201870209365059836699629834802152491823159731677915136709821092447799735030913649009836099608848337219163699909550827401501434929686720523634671653005350031864189720825335722172081705988799036267771417968372591094706663121115476833954402600957893288617999066720226432781343340250804982228749043051450368443849674369703691371030402948691003774146262526253699627846549264098852929613599602700128562360919316806696731307676769859707139374919470395374719384271281601178848579325820707241793326722373566894495031725824862216564020561592748879509336728553059044677120255335358248842886565838647843268805870610131617059747015272159619927905708357820906400214149204694057177599866522960580576666391758483174169364599696553309248378282149705244490896593994644254638838807063932374153793337906266183482473306870882933624535358200356658225087301358793489253517688562588845363554280753386372837181735757948629118712459930929669562821223651187243479529224630477330353895448913376175009831775756345490660218267882354448323736131542482162639841180717482352757019088987324196493809359817450642014811908009993857979223864652724376699662075697942568845037954262241052038757729199825857859510473714882785531022982156665871364677194007723999624720932435097173537345279936384533865004742003923552454305545968933863622331390631764456027090296876012545812360463282354340679872260758168462977952246352411351676082379656733784204611754296425454358378717156386951062897140255441333877817366303855597390895509983578116522697110651993292268616667195829880616883521467601068942006701974896911473613519374437716013931591511181236376182612542216349787012704690623103235709081904373138870616037527830511170051881864374522513521687148342918554663883733440476621427439676528965861080671925027720201599819414243719456705447151069170547968581323934188478902718086341250177690572808099329264772923472778483682377250267768593407767302914427944419159765643735903045036952997132176910324437102790957800443686268354708952298452381007402222564600298828134981414095693340945353879208838802625020610570384806386881390422756219641781443686891340940748679744465010703496916797867200215199775485997211494828654768323355314092482802271050740579276594641048594395944556009839044179392045307319461099195502335487306140320095437763827880067752932586725712712978743197972422500529127023752457108138661013063693932328721897375780375566457349519044485160015504161670997872450299687103355184911633062774443758207863175354302782546538423197190784689452151164437032430500072627112903645323409536356841345896710257860418209110737531798293905933140634325727755734459342581915793122040926194215762986523146670574839649463854141413437389440749907396785295783259473088559223606313139731182157033480422860631710745830749624718176959498641978034967519132228895633302413416127403805575538119842477922203795837895327273878288249495680154018435609288617617020687411823252546448658966306124241810193912656411648977395367128560249749131374492368793349291039751375085350786006599049839828403623615983369796773017497262281274400436600301422148014551704404171835097563695939405935889602599585150834835964143658337845927069488661768868914296788224264367038554087705078305469266499522634423399904817100345779195143518893309880534651897663784341658639087664616854004620888565398256076069100495905186762700319858975986735170146437286145071309967429360649714028798930990351450579038720687830221282295912617301031669281379555030294898839759881241465205468084131061075357842266234896349424091159482354610394865462858219251115700016753635787095738637755507958974297617806345411139672293495239952951084980423489967861892184383271233479548868328815991677158562614245714823662482726648871781263771693250706627838203866580661585160193380070869960719886451734102932378852719531207430546913535124917353881948205236714946136867866830985093543694074680669527329180766885173091387286597387158423279784764207598996581876605815698734013730338868693609272751994819733029943719689558524128074017474914469784045155506307540193996105768499896278472659989620749521826741390628614508921285954077885952526680829089696065159653900536795022241699924835653377654091183513004748807302433677213237492416410181745281646654468236299264173364250534395023306957074953725897152124453823461053200981280001411156936275452291067477793847082003977555335320251699687524247400812162255409773790364166547831337938593391356137923877093273987713305408238338111943840283355849068768864423937497047220101752265165094872881290267330119523224621074372411814389172128729686523804064273889192400274412138077741297212786810013621034167184806542366920490660521276549820981629402396473376936494542358244759225250530724183731383932651759047282823242040081931997482101638863004489926311572490026052287097011714856536729064167200532316233908544677757876885233811303655005982645312011249936998016545746640489972054546277213527295829642881378518814140994476080429381455032293685349818576796939075215860286076360120483615448916616566373100561143887744019504324794643780896086076028286690856032606934691089367415608023727315837482993071604623001043767500862484800401291898864656508898860388366631163574611757310250543754437905594936858895777155326283386395420662889279952910516806911262953122722571657324160862402811268064140610853805911273013299859439704760613314868703821936073340013556181136675960412300899957237329512066491281089030289873440758080080310279496251861458174244165089805097455141624864297298911614251275726011378428237564431135025509290698319586894000935630062313027577432303991525683620821523779714358290213794888610902129750921295569109551625966403348555340591853592093102496543617183342382610376085102255867921685945270544972688309745811423357229849913758989856609689079340494214354797338983723750434153391798280066351668847289951369051545770995915670885028145272880541175074543156459800591171096547759370400432561006090349926480453589135141801938820981610044346022602090972215707294470652165172203167999483418092394294623336209058487761012086805028929087748271925261520688160373570295308998699868381444894869623888298436830436644173638773050500783271835770248729921216523946589553865271062151207293917556441988638275668665032307025393694785446030604804061016514490809459857351612311663290402295830315664932170011103887474631677398290548620574453774599176947470669583127190381564266849126724243120525368673080484763142799844724144249722342457432110446128730637301018348273015071032239315896293766662714130271972463437049448355673020828489634216398440683583177660996953474566472859425111122355449980829155689730577172850834397221893842522789469875817407043857438806407014762392001372759825685769897807942891780048414193656815225281367504661090823557251171911990448052099420701442707870886869248835484865048561527029278378995010448574918167732894548054946379142117015358929961318602837949028682417739758866909708113010280390350520883684300698966145463341624084067184409090778962269358426651806256884358561952800656997418054897896863864932909150310380802391131632354898890887359050046464241926108305044082815086075228050009640698016121305250598735860440078309602124556114478012294734177263223543160595401298000374064942015639286506964735898319902457895587935230838365486055262711921570650643067397310259976521309467602419559095041172977660550290852373122616288563314326033888199558401004732388665818356149544099240484310707002943125990966596132053219489274302544366275232969491277027310346339145131054639378873908309576632972293583129557526632281018861933770711058740029322549433671867946213803592893997064805370088045350411785749773466005888759648388095997271128797466027967454608831934534151825446585837854450328371510240987389360476822858856631033695495162442932972666803510729794635826328838733082796606418671233029265585197043897048800458727097165941127223573872732655474045146789833312221017681059686552088900513178015226656900202997434692762885061038884219492590903925436135077191854083012059938971020529035964617237639020791482652898112428763895229811213292027441290828228979585848655626703455063487305627363652678885196259711797988673087038142977929083580028185174353179776457918131078010243025793019483025089022283874663422089438478186477031176167803024842776770454594697710056082377766951727011157524119482751844065003411475104089497045800471491903561361073109297866345635431472086799081691233096707577445345386198611071538251702773853477354649799220831464900546340041303140343878229400742236617788959380957074593961087606479756830663559241242685013495811228556208679474956995152218273385734425336788764190542036608778048086908394565462637320175250865118100676867796056416392922580264700368814332850961174390258250125693614287172361440678872226524295040645383465758371593938924157233158840624629268581264490751043611844297484175815381098326646592263262260824031969814796065856282849112500312408270211721472616546767941413004650733608605323952784136220291392741671411295289957863632226267921948904919535680559799342942361580558466035229779064501997635767606147976808716153501767421180008642940552140584434145993371779582467893845518610453758423287107535553026167019223465350069650563207429468779146417448872302996069466091988109626131340825773178649222477984980686709368905578752740267325725036072991613888434381241937758693655565687605348565519338216564570068788010805400898439245122022766896441138916579022569804372320648818997429832555800426642993490387894492708480254094290125047146978214138218837192053155867029955578954395201524924447533489714378556058973806887704062441094223289154202053680208128331235975867047746942939566167632245978866309012206510637248432658996928869624448734971398855318609127365401857960052475385099586842189701518681194978508674322097985059700147042355887655768514555020368352422803888666978838627458927088178749221142182506169060359745071606187145852438822117896870488913781265525861719686584738277876919797011669504039335792492044611748117344898676059657707345916600284390801663382188196363474529161134305969247258838821422172682771471832957529647791917443734892666576910840710429036420863469335604467900232854238802166026406737722598610050647543854738412040577501046182319829902401527454286730443897804780216865960252673849719242920178989529344261657701815679522440438810421869581264254849662404889209834136299550354775827805314402315397657399282949653011017648507810926536511017878980372811620724485041109485701233711440448070050384102198394916310502796457108652005330411312904587823618048505479196732387807653405165833128908831624512256603364685742932158657250546599866296006960395091181739802675975891801338076387865254098993709126396827843979038861303808693990169238314405718960694743740789999693937509283325670383467735162865177463613999798005090330072797355979460326508786960064659966215178840619371085207013400818318873506147482875188991612720057278136566545196390071681440500537613846278527143952616540297401471994220022134142007285331237825329822608868945618149766322730364307209359797442808029942060009906410228096974868371020818754622393587108592603668083779282638768739289867521067260700512435562279230728738654733543731925040473701002962698885334498243983021359150884458240507727601320510909522692889117856173654435601409651350578091847320855977460684950781952238439776594357150715259248733507933235338941786174037304466949507141728951293331272399313083004775565620286975637480947317539335210311037056018825893073208647429949118022647045032579045750295271538399568964018086262565182312646177127384638234275704271526240628680428700742802583245654514988469997112378584379326592089219639629845551793478574670385900899506820164414230719545044728509507433713813057837489472131311728682885526786333355126729089240241684045792747045774938287053571877653521040114020936646947316019068607635060941289130890383875912210426144470007758149898000641764687313135872025982737017774255907432445165395264587423081331043914929004889904375614161717517502216303316604519786883257055724912920301915626690746805439889599803023866602007940239429904318536117938156221141660199879451451544729643217373814566393088518644342307775527857688740330620268535801892454128554030854537164086375236010844290063358926279530545049252084553352992570506394258247742261414519076403094635314856662931176236906494500851067201064596245734513015302955467988635562149799160621741261496641573544813876454160747104650818226588047626998287766442439406784453250391419268368427683829248355405384767244711276355518146959580471263421216431426260211886847568325679201453916755721539040660842345231378003749325186680598577738899094851005234842982395479689684361655625122920264597162514925839754762399477515625837042094330352813265346188909383593752447575481697530759515595871817223075145501842757372333191137470951088255887313723606366515501091532890262066446693792642451875905377705047758124452510757652246631648828864829592654802305426478419192338292449526698713690150547181095425887262942515112422457030941948425599052313585250978236575105051742913950561949121863859442708264513275699226613746313728971620628243033455094316886562787999799300601919622572853686722132453391382079032922619515811813501249501027775784810859973283399424812774474894510829443394152953755796307431938236832206170448259419291534008338222126057990979325066446065493800691590626646082002889409088623387957398065197945411860385871396393922401937821251275009288651765282726836452784480689409524863053536958109525204286720685426650614214143818603416709408928490894274879453857045250399405201165114568091927266768697097802933150172034925681727274834668125616346468486728799905542110030268860837868920414102173576234834384773644478833679801348508293816961864067724761582821396832155536457611347992487666018126318346377341994675262124242879446633844726145613577691097580198733431853176385592620844205791666983977894610013104898863381143637039284722085051742517206488848363530812598734591230646827155390912904739650828981301754001327087769210066061849386641492286714075712779567887000478809358724859797778277847528681843647530770498243111083731887944216367620515119668867402003295870092567716523727498099446725172503550485730291829615161945748393708788252620624437073977903317767090930155610276701770114039109338189360071913998964034417731553088626493549187698765148799439131896311957944118264482735036201021366671025788797249151661381117738358684983609564731915019383187793613381984999844371849101870527002170731317722732704119414989719541813251967634991594780486160611518905449777352117427743680937944067088864912852749451940640338932610411757142930433450002167626523762927705707802905804700370475474305445666406280201846655342594702106717478407086719057558484816959965190262174063274107626173875201246462316816556917526686643283265376948197254342768777236585226612891443000807487684550909342163900474575152121223665032255518237796642897556730893213757079234961453553664486347445630497565541970358523434447985813785574796687921251186024716313207174761125565619055082711607682962719789270554233910344981035182896733785080303668086888713290773648622878605469616597350729550892066792685933219298392043939038295295700359419489283808801779769919425306966076049691000671184329908387811591494765743521404962757527285750254610983484203557680270221371314267856054188747465325869844681623139426325954406061703090295918337876710071303441423339933042458225556032730949012689404056092107579358712591332688998492122862463515461212206678853493137233819334231598509259214679624329045006492713322035659443257047968880162834713198800061030665884020034485332647997625983061622215321830248645156160693210532339073270396096822962990753537515868354219867284606718822229077848528740827959975693390338888814873815672286643745418871900101370649046381935403727911723415434889043465267278095897982325627051256833419749752549365183027719594759455498133142838763172613779199867259763474019927329744302932878682958113589018147984075855094855793920306692923115600833432138661179560925573552145328361421190202857511923485308969622508148104711372616419982359137582021908425683844971689437016048567756355056017802631232839428706076165534766274228034138698961251980688394004189501861537795512358719685630528344825543331869028244338116698270326248798964108890099391957343912546254555371062923727299195657436689715072784497371509874332345712575510487656682739698659444462272507723262435715904436898095305116586557827941005168218007162365632406271353336609340435404501457860862500184515738727835023385139179134792439461574354215428966847908208085561509921876808447014669211754472776217077435042936802467578292815287711994344273205212933316998731276037330612737710851908816997190078051344435852533873631965183378845747757485342318200032398893553594465277479364108335165683326517789928960409235512871555319173421527441984163691685264393931734394780270559077897526375275782793461379798060030551645742379790225363762012200213342881600733578819392528297523542609875153147336004713257349841471142330072420823538046219947894106644219130840013110952295932739723214485042408937523938865511063020953722899238687725217731408776712579057163137890303026266757483901865090771946816576070753154519410651549751777510300478885613526988150695076780686026347747941566083795193505805050954320598982532141256370717315155019265453394956336401992326597961132337026164133820335499065469218513805204916627314204646665913919147462433937960307049060798146482342231536545936435039516975113466176333915710706174225024469440007381037493708499877000117107572766359983784646515908000572575882889758194274770759902384179596157632852063568575434332650126548233436197359895268833766322337689763820415781432648533401436410881809139405084867499685016608005520949469430668897548120171764336746766786162345605487774467600186411859600978105248831322919604936771341036776996925328925413304268360243057522301843919428010594781387170660781084687392338304952193152133231818126593241087080560762320523599889664874035491423776198321577296461717229995952458717453898126578168293386210558254519715311434055892462651316660779420008328240828301560280664344309480352046197974512403489828068960536976582300376019067663615904861438770449650414925569468832576343908739366148030032059900475882854271896749889129087296928622643945738309867376234975886080309922281109127241214313010693481482363878212532043336793334416237496610436357299591269832435943983521198094984305128645918928984762701126492372786385297073854373048980423504708259067627106193925794182237120772237816701591338372604870422631064150494294463154598134017481002956694787941728189904907839987281700243490179425528004182603456882931149984386144831080080504123494213996802463177981356665682611406535513909454511116373341866571628461198288342713835041030801452659444099748226607262278717414044493760690561488923822640885977789041048094654588172853490778444634991342619599635492324515210739064300435854289644378458757397900016308385483822873573728010327257320229082048549919520941266398186604404227378243420877077301085088897917787503592191680483338743478038474798527304407793649231499525702913627237868432506937610657902407704634088037229357851518632368284109982773751506623823374542855152943172034731362550210065898996461459201712544955647472118111963911785220110421019327705255330804770385944673735680002909786155321050771267123406107831169869563650087607166184158730882461231461443857943073556675398237581251373118433906099894566527235444780117406137919604951590692753784987339365545597524419593793746388899060256767291096078081145027117439744064730204131118666460488659472078784287717583621354667477872738789195369121792909104574341091799389670598986529722639581814655781570345782720547825246488533070388779028450354360784810647438914663349456298134135276731382978239294913373909079285642726231045218811478287380515599424414740919869623193390301762001576047743145708957471569493498401531823822073975587263621172986404806762293432158216372714689945937581526270214201158302359680859381776568243384123541975018461783395571805511938231456439447759169084010836930941859152367182977357840336207831695519883925490321844903312210091668830815076495325325837853388144031775039165213612135272778255345640746298381711436379049474604236765881246540460783787034254698926525815115281607258666347151641730020950253059063889191627578801091478729092089316029023329612603239519842006495707795931320637465865260775550699063973779000411557994133757754454170661703619144804150115032318915299407264746169952874684618262182730612132795184336980794390048541663441915604419774056439918309848450932710169970708394485977198748190998937708709691205449634595230422626825207945395603604783196028438734063512150205491245857053325575790978239102943950996922825383789888019038476857599503339272156756054472652785617764541246263702382948596104062679224072527071633517801880007214858210858373042631462825762206240834408908005058954560841319357633083751487914969478464614022347892014105914654949329832392995484528376264394077137223164754542324284216946169419432652177915144118582772632070363972322086778091979207135457033669809220099762972298757219909482243976045206398438396060373293559238784527132774592870108943334622016326205045336976956974300300609869345009284881692512057282072556637640894461534238890025551090386584330443770926220581091195038678207725390583784546133217974787364035237106764967924883581662503477160989926177450513909549461554540640604425578897466434343236035700360313247912303739213020490129075791781321493501679958663524634644381253385735603780846024987607675068505100880670329028371704581819269592634949800546669714755312242520743700359045389787474986505797179207762019570726077912270644032248308156258166816204651814250991479101896509000963621298551995983090572017202074475814550764460279895900371504970446572377669810908977799839918194385614830569417532796390376369770543902070420600460542757468675654382057528867763584393097895928933426037526620685012157889415233490492237954070718748788533153096379427889040917677216225245263721786267091911664879478054362901315312995064959238091530944464761022166967577581614516674590936032008074463130949098110325477075155517690502764596546144362869164666853713110985002810253088739665465472625677977562087172336226314385844888470801635518143111806443776279648533532649627026979780219742609349026937989375548441059323949222529106441666418783305944342383767016684351435819808841173840737872220542310248243990457666297193470481569210140639414970483924518495976000483009817891382179963118823474555158707403024639203779316202921082020043823865034856285626751140623953511391125809688735397481581084073761969253695964680798450639838186946554266795221445108122447425170614489332656468597017253210432991896071943930809195215195874838302163177660233124916012195037584347274889817386211559207780138647138513056537881453038017435592796388217474956476046385615808103275753397881621312588539927012110952629578962389782567317971028462438225195123810275207752535004689471340010922056508061127167158719420362325763021322222700683343306682204685253226924161934346238521300587660506987555735230132789840608061308473976594146354740528467272347036311521118128508452252858536260625633115963285912810763365095043458079986721066502771841561677911610097598391865144430593805020103463894913900833249932829376672018977947855602012170939309768603306455716202089830561064444833821232522443121704401876664081243297315042430791954765522785094562863111993790748755058313911066375809841558527587002990907556905643285153631659802771164531104515512599555293473347375430982806401476842000652009616732389814662069400870974485060564800547832728104758458688285760675420097075452915405579863801753730605196938743089427937654861497063091566464709864956738056399445449209391397376591624810131703022972472808225224434167103496219745815385790058497695986198816270033718774393859249176272223598517080352608807427411918825697327155049436703946544850316385563351021004854732429272129134240822714931197008550977814081916562290494557701169006582374883424315705646946149012303859625233436174664418222657124073199887403273900253344865334046434046872614337128001013532358240928727073788169173352336531006396694885996772331110697850403562395556463775680714932912886774262289642133995059534992168000700851285982206613062725850208722821139735104821461556612461068639081573650721944992050382876674105355380464305032327279960011935287193135761693381288048400287166565800547214484487947431183015164031623502398515145693043496302930504278292930041290951160400852459109628242350451836270838994496695194104672635752096739637487492152276423029604829319557073234671807522946198933405823367970826041560561795194635588020385201037046927621421438440117653024856806555605365077176393542635564930703508832171114348065997212588996633799726268872157836025543817894976842108047116100120681140884359287684523248251565840572343371660329251155207065949304844966302778900486019199452046259413395532455632699887886151137970668176432771732655070693614691955177069975181700369082702866836012763742038682538003541608066328332882102493923391260214650687513404326786731189838777842587596822947312229852267051867726836994283426650538172266300378761503613592917535345247474328972111716970926744306629583461626304116320484592078602233412650640280578754281675616640702632122883729860733652499500384833433005042888421880000418769457598487102486079332771881091359185637069215502240330466335016523846149761501009922604327853455523625219743888765818302431259803046397206459977509882870807207497984523871741862857278760634605733116187093839869611116542033606930354238025049431764293811530404627910489217371298763072943421223392445330631264998588517629512046570197909038379611836900926124167889701010409160836082672821476274123233389264511004272697925585032241798380814488199743341857045462620152109644178836267062897418353571317342395167842113188204343123804873773673484949839284970684620946203661266576458513644144201521856599654388078905981922955189548231822447232378212446518983613468722061258093611217381614811530923903971291078999751391886468050256770681620206918393668175088756923544986897637442620686518724188154022276767581474115909462163514543575564504366649580107855499212567250295704084565079007055718429448426227280626898849101470116221232546657538992381398056809807507639790836378445740304990791168089423841426977221125297755841416501576146747734728362503482756943255695677546410894517014996828711444182213113564243472573896785899566485673824376846455656397394721414998910089598747734900035652770411384459451753427323801633419491339960947961258021708432591353233113386838095808291299654303576427852998748339480495332261883814970567200205520296675157315922203226810485822486983491318740030708025907978935716976821896395442663136289083511315070574827294811926731607828659535217495929837312764479025898445195747478135075223322461001805833444509117294793856017576894422207959878233033696175842765595961804617013123321482442026058371549749594033280155940585304671514170835186427623183094190138751687856371527321929562947732958322079318708868690841671374323788538438393620327548507483465440495833171330350722956210609801142117299571588781795639742756634687589368035709869998164207278116750585080915037291284860043203191680138358813100045521052120435772784979316019770882155105124103179368402907134332199230921551872731141754646836123424757366443702067416559337544940678291744959267976009218329089756287298413117224500020622319546182266638457478622801320713424216474586044337505702849067710340790538624404461002764449296292583752456912510057320920936718877352856194239006697700422670515638624032161932658590925919744482749157210761619313117743379201533229675216915471856230840645883647271625354226792183771086566131657444645918045986635060489044741724289156882271630975647028187559193239027475587070841851497743889584305505745691167106908954897342981671612721641095798997519491817217091329808848763419190777377015116931595955284143994695807709341590964026888157913154713098184270495444651533982332282633392020018859735761791668012850647288077810328904837641195045746163847460441123346492295309441920804915432665267264753817179466537183815449972667176315953375581973155282777139176566834095587299491817131283418866199521311179940519278537967414318890224767254040799391107577899827169992985674597887716854457164430608283715797760604797061388129324000172616818523360804429219924823007022819734820035045472770508790238013830536549734018641357068760706455484622328945353599531775036193747826506076032720480862185221804729131349295916235816704110883848220285623286001930785408750121962274547903964994422478465687474632155973789194090703811984104711481287311663566879497425774162228656437719882473103336458276421187226585717993185843681226692557317697724548455719991236892590047672726203850945475787429466633777612158345610071789176316414758287256367352504365455726542584713284784110576615813299455131004581384635134119962760581541085727727081901371699290399865801088540049475978601482904383213681803106482797595832610701477641078533541373127050131286338970836573621662487172588590588606301323907172477875523749095736844866530792169520482290510348564419866726658587284315302491823467260171988442416028831680094891245426397067899640086235644243299496403957565467180671184333928388207309579887050869893183805102520123440309644209828277194327523293154750975410998050889294835085222634232693109800602294024151074353546330269567284672757985967916174421099487408497154601351901275228477264211064840909919916659877802970720932847405750874666645525462058876645823319387547224600496040470016818332108103048694888919033436165264229960997000844881660537848157201639728988175066512523315759436695216822751790235528676357851829541602174174082715640145863378661416006148508050337103419613242826272687168603974600202024259524516100413263958332004308413940954858235503264089382689992713945871825001689119955898957541689923377781257933545664645242373075251299013970858167999549482429254390449904968358409836257841678435352171453367374051654083136924892131724715243906419144478539772769010984845008106068099268152207328474017193383342868660155157871844171972398510902429872858219740862362920905525295135797879297756182582420087826587182218754657100011100606397551818298606659630191570432345333726589861541187155020177131841839628935800014604588288090146685340370302485977310450626586200060347131291043284713978532312921776265000889970863824463072685435874469668422645597791244867338366462922450740556341666565318037876800435521521151186726632621891197236687082335303400747418940215347421248420507263481535200574456659834054643615001464974743928724776087036960691913765091335571462349210970731293471962504227031454439106445853068930809894476218428706757165166215839848806904325143672197299256771986161106524368324248241890431306499142134823127006632836182161762229338858515288237516290822932134424633332045510674954599884272865047394322887587439156846694654781432654707518808918937036593155479141397753156500064547890663515415566306821254165478805030506523841860865094634288427240323550662702706630504406138882133513231225444697531038535517185416561442001881885858220495437457459441999160095082961861218941533484786655498433782046982437214588298479928062394432610015799607685247861836406938066366043035247086326735467358965459990799756269579197836415524609073954230761102373758094457446338127329481068814486503013404249021190797902121402806571773364418731242713175427210254212525214383553519570628610234532651580365369847367316007784841795937806460203214109631175129159425991467024712015113753349923283456907359909106831072078770601778218486323071230304761389276831861829121122886541726011216291933007566179236153737568995503018113760716754013551890800918831300754437213861903786908549761150510095361821439412679125826999665744895974072364662915105875317962979866797170208904122540466611864938194914087334198240029646437753535680278290496549135098296150501402517306369592387619351829380421353780207817321926081928466257106355894896552768524671668563483498578873198933532655637454195926426135978729103962652212418220730926676596875876776638049210655740642885194832742075877137037712898080987338406619583787612993895004703477438831660333689558914659368342959848706650888503511007075029392098642296821700007438211806996456744573268439455808864593812801915664655198072502709882730380410556319795884667757554704938478970525163248052483221614646452828680018869475796938374945737965462803528222433764983829642320832998881129025507265720964536772463311319973357963847001310290285532360477209407987089455023187391986309851045752313601773025855636271550031027980471281281807122775115874467167732106487019862167314073872706853448703980644083203792332617911386702534601723888051490096289041570356746515767360985341370264661441040764421226300462863099315579833595314968427393245043433189822776160240643735073965440413775973680737402547958671142367342093802738446512550398863536631671080449286890339809575832646926873443434273233583758993936851391244158608564035407691314235711516927732466481633719279695730612218567992890229610297328488645658536402488102040020552017361246547140605199862484544842188843466355401861426279962993004363069410249559108875855704952740292459871155260307176945503120948654527387111506106104726823801488863043385092974243525792609574491270645546222044002155009317621730654040662862264028218455838604618591575749568801860682238979788774218600258272583755361996206986524404456844370059445134022040719551381486824267882011884274081667041579690382081086571290394281597282012946917853002993477683281924319437426121573839554175344446881977243842760714770888762758379596021085147754730612357447700126643838528327049273865579030690635414848395643667091694522416781981070864070856927335760726267322153009510459424642190081257989871120614388576643221868137450572922039623686629673916683022227772227567191920640286982600122075029257008217388207150659160276683034703040282527637830097903802974675061162158529371231584318446810819596711366346742456705324322705610798949126420075642637030176145982433258846689871376418609243187062914955207336061883790106106323127946035049176384679652877096990253993168596618428391253684551344418605428699941268188601783269627384583415532750631252076698114555762552742659994010513604615067291155372683326427615129128580940628354940820250898481385510838219283540652684831874304602191217479669060626534444819010694318659531559531251772345849273061539331966011502662917637347201545133512141741538078122001711367914612707594441292141271952282474129172095966639162016739493667904583276079177939515985840617963645988444260922549835714671491740904258336370836680674670102739459730088931963109609154286351887203846781746305326645772466271509845107893740819468571773228829675427864868920236418972692110475630658326398864731296344204763476041950032568764288864639449495082716357614952406381583080339734622896156419504082836383422355576174917339450181990089352680467243727685917854461475951142437326145551312886833863106413311322283685492586759492772055673654435041553769068089620649615707095403359840646238759087159792150893175807941931144527387789669248227912235114209679643694195137408831351727005535487083218685657491485985078659789293535485826655632725911672453822560618401135206718995011786518271996420751993562198106674869714023052692938776144105601944932930465533186963115012621247222300129587791699272584557856294742808475733736576883268838112775750423319222957844271390484168739570491355369133967114681720128896782800505634869629077792064574119915688458362893750113784428707761845299133160137150738850290152633055135931429167026295331910713713656607800224969156276668334870261453768528776567748281114311473396791556105445836475109647420267329970446737368840835439741553436487605935082995128388482315246878570803160949005755547479469687959448099458262843815825301394154562815699590673066154716634195333736017659699750907161545584261084564477811827976615700244293059429174281467313838475413154947185639476569016484526143916565162112554928481068395617444699399621758419245185221303593363039999210509511923231733435899077814404630262984229268676301002794438328112818168463439374898198776988757912299381161164268194253027451497380696502778581292391019993448882557572914244594786603772655690860482739511488390111583342013177116749915557806855206535156930302899325269700822126348382828147057334715739341648767236976717207457695495288365729703541281151555895717107180780493684471038892104517590057371545843636759693682837967627862800398115261938072343864816167078033917314317676857970172969174591703402751702637727717363586133650008769352575954296626137373346396630745801958838333455197111329311877973944883435179512013731240345374510478755255137794177597845868965561422247247311327560059196991452013181172568906523509766656443778184005711604625524987925269091824312983404692119553468487679188195004150514875222656524681829410248194560575951310163158774700604335077437238946997717116935227033482861028763328553434686201053777834891584913143946034258052621327388081184271659648622413049906628871960474241198954025009207184363247906283595546742287101217973206552861548378761391759339336476852013957949647673150850955150920546951810323847243691555767802601355466908945614561269542995470089613260264491379174050231234828912553173485326229067674640017034735034235042192714636073423897975596120990290624408045872888670046687423556028717623015190872250756674005849159369152790474422974182358598087964284820350859380061237025371339272772369901075822411330204550972815955064457556252729047404701084768278095752469166762608712987188231367610371859631154142981246256174868444925550814685106556590150983251649003234994570819239259814896208995255492540660888798402944022557109017652399998285283182300000954832287935891544901833063616088252799867171848529251556504383485194831301266856616262486228905987926736448538854600793035099982726469503653759154189661606065635112814600296836961638571173656309513218737309657103590610152076270447588423078367815777205830706654387141978234484530468889957066019997489190408758228270227944280031087783648779660378910835671532140238929014397045691319392192191901005754575318425733505955762606773045761830477299090840884912014126009566795849882749298004090506054082337980772073814096586591577116988893759098749369430537290916908822982968820294024397963893306562427047195519869897720881998367082625553202819185361134498749729794760811434600789425394560377545443246358947654352914851347816985281790256176109402690456278382049906232028915834508719247802677415455520061691403136991784109807574557670989120028865805574212640381226524472159793474742274119129810626140704534370914794095420979952385739792527911236409504877281236837481932285421358390756712729621416145143519124953816490200111409283921757181428501576181961212708541772802516922494856611493668480478103723503529960469684743963411682147112748263614663936938186097004106064015348391449073348471875867068884794010608512323732751495484672573112925431516604127154932437180950376333887560776027319915684369233599942663000817785168406046050025486957195858843966421170684890688623554677822768641490855736627706209177274917353197653102313857537641438866625576815976815439831974321101520414686561894592686493007208012545970319752065432832942113697216292385294400315312023129435181313184333371622828561204246647037132715990284644082598187156177329726716131060415748582048520854394031393264043023452647256768250088408623932319944700300185613406457204879199659153989188126246293905718387511008541366443190085967425385797129891941343313892716125030004669180948554201297731038450591002387993654561771889062877722322257491824388849424370774345784606061643789710346905746463638845544460146747489767044203160970354555189272328398060892785370739779625568941378033684703543984877532286857055806954314568642806691405437406813856780525395795900524440988109918988872830330971489713525122853153468694200648410283057067779465034565340780203085271155783862485185809860629549746176717879368427791363804327466514221821371095656933153293098091934778953637626788884462415269905826205621178121355505886580745589027942282507092934098736015330489270903692233257856169821079033285901261100525382134554947158411376960391580470308649944902793621316070967422876287810970346773923056954352364406710521761041205848986561876605834281283286967846791457643051645194542328586982618669942774891573707460652566778895802863131367581115640867097206179323314419659874084373213818240113023173272695858894615029156410585829783834211878400345631752302040806312236062671186084493626140231584432579511648318167982366990404489639471160316019949531721685460196375816183495579436857946023155326410314802501599632712310227501875028233692396686893173447808629247654998312039728975071459060984185239706470267347036933863182266657780110950451346992744496895095860362281983092618869120120064312597928133500136360149773219082262347007675511316066280037936187106907109894608003270513924304478031100913021330829101780120825184787836561151924537602092325184870404606796100785106606097473097877441207272172133408511805483958945076759377896582021479839775544009670240914244839624782281178809074476912523656342744679489562526404016237834296810576220249139939833208083364322138631613891763293633291306265598420476506243236763021240462447003520040325811737504223764328227300658185756506241048933654977955165449240436381828257606341224890155663138789505350365894020180334849046244142711105956167406143533782711195162300423289418969945713836396196605690360876561431856468301260474861892059029605007981868509981573099361198561100958785098164797372176635743515477546526131904942886969921891056325647851234684519501122041167371309865966275728143443408746418981738222252246004544218205572946887823540062199940544025321142367822019603706269195213792460095614238476663640823029759088702805104486259219454469771438306709376479754127134851096827087043026735538253291186369779200916454933088219151668638167225795888537238429016112909531772847082816245943278582409816596728353393433420611079765264549056232333978650781444277314800292619994103642603961979351188645621117563592576122280987689507663250091656571633400184268372132362352521354405787596157215121611177274738788221251177549937037707389574014614308896621820400989889074010222438896359629944098870708421612172846991239244607311682965318782822242342623693819357596838509400588562309209019517180495573769327420348798424263063483493374419652989691469830546205708587030956567769101093399485362004359688488443589216214186803066616521023384886689300446212107996656267975794335179699631150355264544288988991568581279205622474710833233892920587869016625155113526411894536567078266929922575226902091603340418539145895952727207021403845650169848307428985127810013399633612584634094536459666269487649511211593688252909434936425919479308172159099376347682002997800704552337502575415249339905182141656889603519671976336011851400050651403711931403585750851137707032967089036627953680397704817404053630568022905730760782902686700894457576519049060783843220307359139436711234727336431381623347987481108108793027823996872747866990828399806912076317912076796897984688268365175775140120079677123300295412921851616164333687674679618296133941403493046207625783123027969323405826018558201685077979811847897585063020441184795542542235505342722997974422061392054598829463705495757343627912399084229970774005608973931720166980326836113185639947990194655610021756295104248457476960174403156569461421282449153102398152585505843628422912318790700630659055940961757561731712417459273036855822170355049961785909253285024660621109167401396807660992630620272402720213271567622970253896620840166662120644087601166416178450123248890762833237986984023841719806075272827451287509819337859190863767161479938277766833232896629988395045509770697440275918742967020310734614296982710458279728766019455306631046389111636889685745994038052881460243446769806241193954352308051572109579022286789931046756192973007224072502702837849223993551507534582475664630220973055874192806319360859462359886695045646419132814523804306255199420193586179553099708082553736349003228453110261020095311751501864353650530297331952598134725215397110590384837190817028637653247571176371659376823039064749728595444131924601023216397952687879757490898940775534569509333790261008265939366256939517703384149050205377446039953977290208776810344325787450930974173044100488007532718521487468370814521113732751401673115604355771617868685861567389542375103580173591306748527944402618741938712522688265396715712602625587712150182323279075528515779749808955879611173717824795576559954011324457011379220035259690157750191900321896820612089460754961480912068650846389037716078111749500429715094163515203597641297341309666831163270592566465584387653207669541432251037569242299834431230223000683526015361159318458460381871027401891940691202992298877307816795941183309337052862625312339245996336239360731067673452850234096847578792110835051043808906299025075268773867812469990767942835593026138587691993507052074912517173004312349589364538122097470787763574123370832247127127222110475998374979915711529548705146358385212526976065456222813967851258853596711247945286703085630567810989260194268694774291532666877457230590666463999776559741844668885089433057021115238886044622497516983049576095853110654364759169162553613519059232807821186421734781012777286552909735990484935034515268548804698584148343082064115173890203668117831048367038423653868386803652318263195529178175171838264234904298073282052155329688296060416960963483380858092283408525556141063448682182936954534933812387135945275024139618492038216767506051171402344941381199930378410146184297524317333347636645219928747422822938016531994310779526894337475558482846522077789412826324938442923637121014769996250914980158424778872425566773756977621426348017992818398554408580938092800719265780001595442208349643699546955110038523477750355579804714515796799673151890202236529618794447928874432116964168642721698576611258290945930031064787076503594329763948441814903442439948105024907428360145811101256306457485229395696107135098296138909461148018689415909012552582767586518801158121464197586838092773075559375525973814364806254920842364640037955117569701533431251905443285394743468141889852616317856579169634710161099907640945468119815251818371778069897079148549268415829281310003711441518442077900311535112929106161013927454348710105645721151619343587060479687206497848595085891209051710988849859649309112958238715071243066184158610792813261114211151089253461752251244674894768640959220336598171367856179390425875990864989425438635878137364676005661948803457334740514492536401810114422003186932839298123717441184073974367114452127798589212348191368498390290408082887026664274423712012959942535442148796674163205727015756257271173859899535846032777909632084149891634356354353769140264057998895993067135225306984451263511760479991379562037479471438039732834400432839557216423615583559551180757299000050089888989425221940048442352360131407670556738969592125746076941578060627969765245881204935427898064347228840367442692766416568873179219392689007034532702225561070043013106304196664915269528586593966773896949405081271232937297257329594057590985733865698987020058159653190073852005325303789487753588517562602598224123531289952992549538830647686662461570201285167000544131064783125945058472812539016827241308317821035991488717342810529901697984499463334508543118821767376206833736205750865173886663512975893176778573020394836714189700161646333435909993968798472848847169916692347043186658940878644775289420244894741266995051637910930552236932538759216628179964285409243019420710127776614417162762214755273444306915826547206081330446486157138018058452058795828497664126201979522780000579908829217453481969007336277222265599968224773844077916125790558893086476705523817374091077322031598485087602241761550496956312928254471486331191102949657763540611323994287122455557988372416684962988779238221971565901493860929104119700866583831637742643273434080652606168323380993752935141387291143046848891766828313053231434679679039383000837652023305327856094362211696607046239262366333867496404537999747272503688497413391994304399786235704360635682348809079052559620603600066630139383998919963707370380398521201110630015468471478466031618035655801827431391393206334369668527192116581972346067831268156446709170496151266216694794449999723777905231068363254957478491769359678018569987992809246500009553819455337415586901560358457382282785950395432049270006273366214314676304749108675195158254941376819858035203855766471453613006012084044748770298577889609076831547398365579192127759303882591244972845396200005053437694320872563197242518693470392332301468567890323754223876472945959107361817547712282012267179321612723481352137513199257273311791279370008733974578167419365908874968122135813973985928154389675485625741999749333990324754717516088808878096624290642883721392634490038388612720491718222244992140583532283048729478316969383598195325273497638395278492371323118844011930074465469091878667242155028556738428155949833954755063913907504872375310395878499584320611329778471942527468299703969122802314326628417081634134318395365408274321182114834076353140574153412630512410449493502583035238487785302457842587915718608114765372813198208445986309801471331551661712891343681298929947478747200095848450176241988986929597976222116497409769329018553722685459472611749172294909200597927920574718608170177837295193778503198914678932663623643726723034435973443994334504871037124697470147494498439783528746659204445668047218706880894858438223819574766551101795617188317807089064503324097956426240410529599816298516648876400871534750489030415641982111207591150698601144428601673205978348212767702737531939705191394507546334980804659461080789409338244624911842565873906564007275980789715940965558494380289912895496791507273875061968084109772587618790273681568465410087011635099386873258642848511830269692343116019927138781660024934685285447628478282085222816931263578988325490594169302333538583535719224760050043412666512983878681798789569551534670765661106544474386891463802717700554506085159087461778929252897135513018503468727526239352771278553219521800889091166169243367409227873586821685393791556955117962870535765980390046303144590553684265159378686451688183698824432961309500781064304337857118312863306699508700511081557385431655707057064908664343384966010204742654512272550068991472374975378462082399895434569170008391336999437044294844308226838246974671819134504740113909903154077853383995658019846314935385174038220454289158117040313295160700705905057637183873907754385880881523579741523969040842921079641898791301194776874930992929505658000668936689728910879463050290295997786226905573509762033854691822234328350090671479942106047802261946896636669380070480331561718346172231539481213987194052359313107857465408321625561315777058060862110744907960512032110324646431501165130607122314520720649539266659641796981308589534616104924759954680944981999314092869084573655349340336150324974651743050106321998621513744080991868475832534106416841764107946116688444244656103746549963530651425410431269974921195666607173138226234793082841427490873857617526460000723871800215699173379513545221538546868993206750366082138537241024351517800715745964997775987495767746539708322070637542171620676570796354600884416482032385931140928756640528711359108283808666287119988554891678197246102046218841020467491071432039804360778866889994114098347853751565645508226614927534067063490028270301028473152023302563303469162735950768154782633469938089761240342314560961007452654632403742136669183502779270997621451725810952146064544305397662964599432305573349217393732600053817818699445192827525399306905502225041505507556730042421371551188603292813510680645786139337224368090994961487166970410642055796230831347140499528623274192192591333930491796621248347811564982343906045007081242323869527207400172074436097257041634076172445893433839351433710679024054458493936362436544870128666951356187883443005662355016956479156901819957256360252982980903459909810468502893208101129542934717464150379051838263162560225740319430921010038713123183940443531208030014971949674784338567664234404903265303794679076122581151290016407484833947305635614130870222875536134174361469332980620396920560564862754502533825463880745923085728432945987340207426998642604777359746421593901289913496899231177298570639982661354938416428521849736627780125900743334276044773745703906957255468342124292876334996236244442817138873825788541633789886597902525922335637385642252106817725167772801918420832312447587393537502318914925981480805178338788209354376818728363692838513923252014075884109438334764908859966982071713291903917481404572948666029231840505376529278551949743201481637763436581042354596665567434921166876111260672937289664558886447995213506106221637559818570685144499205255265415610347621774106132273271098975234939871840706719882554686776561594763426075300424898968128685930310467513127623935484622951488259854493303885609568188459415718369789075620056625886260272939357113448250806005601798949211506109406410934248317694136838769621203527303168206994572406287821509416994035891394785140377434008512342135228014755461612221060535982752866806405671777348726651742518041213138017388843735939642832260534383909941323819568761247610236863324867295465710793253279707711503910285134889342536582094329082148818832233694338770621764225459960116000466620027541629136665301474901940243295261864390586053763436563409078700125979749349804642055457300812601962043851647528679730714015218597757742516569212895359351096832612215989793575936307179699618000104786773792845073570843631029127986118269498471913673567485873898366754316434895664186287842250976566699761381625873131548285399197975499227961608590501721694737669374957791078431906739863781269746369592065110077590659625422280170734135919064497940056588301333136538813879656535532802672972685017321878972202385672846741559802556703154943116236581952533338203584928059909675414379486571662803695030206210287596406411925497096160191398137747333397257333459981113276637593869639512937196608659718739078779398007429805512070230693903432463026423432555528339847299105944931976491082570863378071412962689071998421875151731234942170978965175345125240377530672229530904612710351046404902848621101638576650449426342221289632516670789666804499266779724633820883176835120504455249756520568515037460082196479234427221577873175610177546632919628035612912229649681672633713929033060662098571178025630968011334265992529678748562589126761873952681027401752763538573938394187554612196457535076650217587344777700447849409731564720853477936199974026084096711090111271013811045119890804295989081954832870238906695185424508827735283908505684861411182971657192392678662054942866661558164744068420331239255581601819647796189550965712063297989251631863444167596634661753966031304050335516601425216921449707402911544798396546894707483962814384520808282037047381979451751963143060244458089987615667584004313106355736336709604240928594485654978866942003522153366581954049115086613325538601573744904470373146770882420485397754182199310400951450849880340472781197722437932501689320305511680261234228395727845799739824537754633149382933455392160782117701168251822150417638856227338494762574973225568173947435584303880149939846978562568258216364612555923388546413692897382106339085412588630250430359540716782090523780546877039601264099216713426226704890012752923882851437634987582017582421508760524222298906824076257435040036312067142269404180074791463621683952768754471506971044779327128564330080421164932004231442579629089581981480342742817829208931125625596244788740416518479907511170771829654115170737630621291702101984063392996981591474921892598067032058108226008039388535868931608368354727049192854236722813878101160011756416429820454290911658508491971241779959195327086126279813774513613977258933455866142209712634293572981737387605885009740660703635121278309218028075766854436192914843824963733078583859369522880649036030435461555969250768475555743792046105625940613225108459337393901775206434806238612430958637946522115869247643017037543150718354888549308993454498055370276825263169163827865950117943175598590057164503005862006116616795438844387732360512116011559699137855552116910994601974244580443413009231763458568409918479748598305117981721712726441840925950237819957941542514167690397213342426633353290631335245551801424807921238009110917679693151305032891112922982961093129928521775239030026018702671173318066991453894664926398417266525409321564561242672118228953539783250806129664775541218704397893338160076875676890589649069124155244501375529652498991504960586421876067448747755499026264236932027963413774639366130010208107506327462044999765545349329872228555908993764191627776154020755994129874796619032066614607668087709876983336952110366274459926622063364234637235001651689440190592216870174884317142259995883573662764201877402987352714012619217864747150930324299923859888619767131753615886319916708979518288562076086751785458567912048860793230706197060535118437683383681053099765649053374419487459126488719603272116301821737746588582749524672701850605763523164148126137322766672033100091245209189636167043679716877638566413108722990701710711145311028930287252598901399059462029020191746043361073268164332539084465574693811777436546520179245751361204387187317155187517928300040167232574499578712457770727416670072848502546653388466015431393526856249268371241210777652907620622905686804069218554416514762484253794591242258855221541181205493364072558361998874893603303716959559840206677434050173544829417643924702051654981768143221895470169162440038133305760920531071243184011562739632464279708553274472019504400284067150493630241435295695624567234921876906956109393860840468566391504162970514366547532153487428412765794106608672466900477633641339696946894744433498497821701260853806928958991283767284852190770875610131250758544926485317388790868932758933395956409200914968658134958306015470416247669832590919807814287371935527028100547515510388077478143089187948672145373176601554856943640800715273629853997001817503596593384028813418133080788126208535895126932990172000560036746142818334936280543987011421005453357542371955645914822337976121443661192814946531771206158836036125634325808928400534259812734642970541381060990504280214679491721379606024592924224504155551970766968040037100349114768497367997127305545974792409107871150596428178548554816697349804549610149617950735694466282568949556490337705194269067014277092837464092853652984058242118874596659013695198983507086178317355924700388106021423637935621119379400206938280847094079729584458108479225424242946925890143833219039050597800647699811000294300913133687571271744267272808592450057093655183358767266034392256907477496374057303471010788293646500340933797972209118635509500256659199544880640639116271444749184448744172560452413073701227941585552844964971670021969073581296627382195131261595958517086618653731312834156111626889898643987082573442499394590208269943967396011487181744019644000317533973786231492284522461669493806839469748622069835185580238304586371782923561234875804776833202602536428942782739803077739843460452251716712317597278410686243136120760608109513479373710597181678479725658716947973887013590598935456179802045726057759332572544304131331562797186606058592630468983619169324027210108732817140144093116500934720410469915687043783860103335145019063018408201368757389875858244388667223328850585044251918432686403358629606993972492252645699583962766474250781253098969198986666496710929092540369434741560233141934061432333973044108697753335096261691937818657464131166991528694549288459497243817313087509109273742685134402321432011815055094505905096932856591188501789370972996919356052191228881384790483873689781937063173581193722633235002885793606548868211554757568541096895164407661670590725943582613925239217813192561970265581114414194704815614314136924172789321998329896512353826838639214392133093858353279763355009588724374105526431449538963018287564117241639341808018954222423593519523665647912341895548618994216444153439410701133309480059241055251415532173474307049977825804344744541651055209145490347861336152146628791865278661330593234773945687790141590528787331254392729463489824107315500328809944065872830037165570123038165908306094280651741345550589992603005732160667197936913391489184967333423215165569758108975082494524438596103054224967778431299789521957715427234649175225091974423013295516323359873778732325160275270107921737168614219513750559405563317224210237618649893690940334804648260100507775729361928791078467343899260697909977542508691674681651545247445016003461476109774886913702842104196894372601765347531803970871123022382710093954034769741491932313262271177259090379673529955172396142084534441072398074263507016857801444348729543444759071552970722687236598654713343689961139733278090175735742050357505754556606897296208939783593156180740928398659666028801225279311930224823173555238212656548351672291370367489267647982144073302927030437328286391343014151325034775625289524016295020467290713718030825969848065367595148628145783790916927315417736992733851641298996567040690935817695679368662881188686470968494914177031753918830556328023207083351572153102631449366216024921695811507564037600252919610580946582088054258056271284942500965772809425805384673920746302827216744607161457342394499022446137750206773079892796992761801213895438140033069639587615704830083933416760966043005783553189549673130196956726155235314985639148273716642855129480236640254698668149885613691736211345598592972379901400167548260416093261346476704060133916023149056451280036377261612317080738555608675224640902097288511031905569520885171615984567462331615562315967590146638168795346718145116792385737393435844695227076144742025121885511773049611530321157338068821825577577701811328769054275548238233640707653119594717554617676264938213759517174586479911522922496408926773485603481607954534568972727752043324692610204096510473570969164437335967906820078465442068014486633108052498494347702597761547535734549706021729277632112503555385806456071940759226160736005990885063450783913991135070926862239874262167674649134368576323032992417103207390386538727819920601806965851026531053193089988205508814772533196944090967744054559092962571212924198574065308384458101058571481473970893289611263492907412611122387417114216344164185523814222190884571644408749808782133581737592574858587845990305410479087828476998183704312840226948675652578268370330023196706686568040998364639923028333895218269337857465101438616947374598494735258305404654769948780989224940692997630174167800925537402261111200980790718895376620021260906114374362532421508607530848689110722356726740584957830605750869514220970913926553308167821075476557471680388013345621156377347290651188491351541389751839482343311731330477444557461781942363108489940746635972383461859262395987614599176472495383727258741906088994084802307991584133136636007891269350865367301471382163728089714314757132749026109123752278730716549649560587908047847507075643884445470670590369587172785246364256357492468644491179755125899160170651909557805770196342054867471235064397895971498689973558859095347346825981956389430664777447851327730786995995668301252880125995454479571926832975535523379242589633577320730254429043227882390755947583515543769380642126509303067549891402733604293717650066616107143783310685245856218187091962467887664844727372862233957196278534590509730482257332584892464306730234753946710699573492393125273052172363083316529546479403403077611079314232857013180630794976255844551899090800414091218306829384600583890821171822926094294274188902094080296036613889551666074184733099126433371048302949987672510146927328631242110453785185524716606795441705142461369687575074645313611421454685353394014909192698773718079693738120716040852971184124061005899040780050108494675690532958706211734003111271666796410239668075239929981906810609968365028301799893375410772086507758821844211152315503971594685957145648896887311051791361060307652949189846611880257445853428206763229158563481326711598207230282741130647435452242987578715862147233283186825038890272638012225474092710900245872358459336189360734682582824743935102476830661823005081295570951097796901702179268916214337989174578470887337475406335692578681196859160846449781055875180465083542127240733685834579045955208708286051794245588158299717139319343072297662855332178800196421820586632220111404558022966217075869234286445763274040253078893336355413486201566430533911576831595200390273530449752741549564770192798929913799908283734217616072852137893335850960332315556166137994642059069245336527147626220217524676843570356057718126672059044696575116811227288507762909153180304334373393043543337648681326463691711623489481614964934472604983219065049421928367862829572810289553207751160702448357700128649841348331403512966562585271840158334967282415050279409471024328358084040341721637606335062632858339260124476164375283305545722395245494418356803826193585334291907405769600896232776951363540950424252909270880066822480900042017852918988221352709669211117047910732952242115864213578408799734945506157859160711673435992339547209081846184075492211647030957951285278123877603799911835729836277086554821209435643635434155175654170570074609369435613498223741899817848864158803412736458285982082243946245807499205404048703074615705770646971358246109802176932026477835399276388980801556783362974656181309406497891789177578063772293949945920972048526315983649089936835469851780092742907509087067217228544032535261414246028697247052858717827347045607479016362627161674884476887332072588422830752880237942739923770198898979857069543367627746087853612091115027887530803136466225102480200201777487512121600424695510495174966933164455631948313912081973453107262052978477712275097417644602262789090492861120217779760427195161267312063466210596432522904315785137766418258592064515181184915107727749158776378201320846769060405459771158365245695431360400303078644531814938816993198069883300037279296528142400684588434873836180011382520803378145323473711962612501091925239597894256836408566687649219909860748625042001047231575631143958239540402449853464117322636722668978581826889527243387531185076976664430806386964863745077381636809532201191161228672029343140723611328393772070738955622526722278587340822291055278297686706570489837459226736084481605541072696047668430341732986709363349727457134112539886715927573229093968085200183409817277939067441121126421991578794714657188611018271423383166978554793925951065902799027277543719472426373592469040343124989528886481986924806549313714825780277517176156712860215635165479706694096872066057500933568948225959387798832357467080303613933676360453447200210252328584643033414192025963016607507809192711056248683889927472789944096189716379300927500596901035789013182773235429685796341547759300373026540887546399320998394388743481343703246389271595221821470380005041189106592786282229091981076742261703927283191155674336912736626789118597719615246613970209611878595106192886631613401300350813427095286534604479545381651241110336622489448683604952307982582814361301385403936229835006125816490912521793608944032418230003590159173611253002819914397905775510739343507041419138606306261417226558845188700232116487778110869728609024327681533340563503113566741390819375706981562286763856913520475794785559896117946964788074047654053648841699853657078928039394025047572440735423072992654260877306175552775362119446742146522495262944703718326169141131215450324115499853710737275327985861486729223850116502956133959559202435471290084784542779990581372987760189974587784196313701364440512619765608664891662288585129659348576171098432924628372775653399904592457462412080379146321898373795895163443985440829052949707511240379375071385664000989830539954269336019645442066344430768133480508592666802809034128675137769453068996348424027195983202460667626995676840650455671527445376921619283565555569011747051825772944694230161471049013246175112744618979639616524998252262351755498599932025594894831325715960608852324854369663348197223884254000919774989713065278156369253341718545201309630343888634645910972907651577042035992616405288974406644144700163793945357526637424129354751085913711538510289902110844065733175170562229565010385777387408112756765004763012778132479944712319504819869672315572877137983034857473535911163016266166828766971972269089442005625920192396491628893847358942270413855653365579075660108941037510441540336831801272351005958163253233570483284874492822133602125657444149046427422730579088495224291008400015943029990081451266719385135314006184709005801319284489351677137679751788367929986535861624368891154806776518780815492481428131580020878139247247554528430963316620045046404229677003870579121993778493618795040111456384476037222635883064557115799089276670865694499119511107962864232904139717045442631320204037055342388294337179800832483265241667672731718008350347951342028282422471453139594389150410619303739339475668635221575221324582853696135977822403790940552685418136169537726927634938993005565989476825645244732530879361286580142156931622979226026309187050721989862730569802855905985655211271510355826215723102416402668502845640193552043524503523933024811193733628963962439468238145854466173618806023142095204051397983888028257541110976459874755937853163190432304177211176498270753500314376897326619551412384016424792719842642439004197374598775175624058143015717044334795495486142904561481856482738290141713415844558508022697490310764880920502919080123918160518251036632432099639691271618016949519685737953914231105589547894913650174495865827201482331248586093272307057914751745674870668926198572318427074899667522718883953406153899859935901129736339835102836406220268610620350776748983522291951488262804667277999290991012932537819495666208346620663629247432909514170047171025926947852283280418842754793893669019925516181826687407173069005355524438809417690066699641490352743936124607322088880677594037118982748239737664161331015754952352233859911824193623491051360775125928401043808406737762702296594233724440312410358753670385088543486347107845890446393182878774870311626834957072441409126396644112377557326256355925802590623182279067113497236509915110663708350978314590638415861606688451101365391206045863283009246410436323901016490945908802310368553116437161895093115322314423989854476748645753277098754418099010954305635217598280015018040148849118230710240136458811838630957000997587666999009306213736424927242201525402466590627788694977745027063440567694697710769113033618228758023509503271353816405528804229076326983672101864017190966046631540654639966216085362719744127789684748154238610824260244241811054957076055047343515523697460930578478683801057809186184589241057756373126382287556466260061599745571751733627588915212315572537588477377239126655821041151596202519638078411557313075434219582329620854117006273976427545829377774522883260223285546889062931165394697051109932619815656915966931382703855984376459711525237349363886083479581163622593922204533680784565094435107065128563057889407913181774326530659117615999735474368764037046398876465742284791826756215958399564907216708961629534129349358579923024455762718795717490300641323622203532887842904938154637109239526815379115724749420342318796972336530645617471005034824521867701264209087005827996954556477180747769851689790490883727754015123496288249247497089587160256970363152708229772032795643558553013987141081868348563663715758514664225560915938553022776128779941627540513325132468496288703594197780405453069504462911955258804357732347355780382857062181979734464325704556476972795727107852893125895314023564369418833027246907950538136604148953942052106633262966651234756258218269679237703196015644539596445667640303947380031627585105429663963603467094018882182973322043872409746269482717240294099929046610858606283916208006542936897996326227210938454647750561904345601745806301213279014328212191684078781421333398135719831185153951568998608371230879979007353878797733699341066003624293540656766671079911781623394447153463619029246063351616591264817132257216624335815577044763286171890609094976480797298504839180795939979279004673941396586513513110741990144288926050662744533751421928129452164165483066210880051152424038002124231767527285487984616763936687847860295503421352775702875531960346854585652076048212120791068329639974475033658178696079764663131257483868058771387764088818690136708097230265489676986967822709288582551919572057592579251359092616033944281473587141502603439828987953254957486598615014516047426891431535888653454158138383402269897641502317605431920632021227047359289310941137920682403863613488988804299702504191775198038073951675953756866772723647834261087141148262990009320664720044597652051855980367903655136062128436174003934923726909544732447101774608528809207748581220780233462215362895330334105124816441936236352927621974241432358822126578649508504683925611231331018380858410546565920665638616487461647801885759206697120432404932054865350565195413589108465011338267268643046860330064534939953811756677277963048261712572114239787254866950450776535274120335602291300353546481750515352409874415277402043457298279225518152572819970593649243701129989730089278709815904674991694969579416966308676885997973288393835226590558041604262010500323778630663311915405869688067813526860275050862458126406509267414057026245230219073407949252293995046572322034314989258691624896178563552673655562164307953513214776442199543442624394570821740317383495334419023122142786267850455385373057012272588769506632589637442858524911921678670568512292046120734551650252168531980957819779313345737427334620222328227327394639111441720289122029064184238276052227639219359698000307048891673201922827205745397787328774349129016872912947735166087278416999802930612855349300906977979177537025969633094486501916376307952195634656345018674336422794600874128554348566713657894848193416454477326531530618749202527450874355333688626814638786246376356534984742658783440253184729536726388138712111480896263026764301677248436769908434020665648828469098251470048825893841478307947379523836155846131476774895091052585526257504716681483373513388945445190250082324666253943861596358745452542667083357002547156419339897219887761551944821280721956065783129640262666385018949399635501551059139874359489284065545584975700246444898051439277082177386890700418216072350123047354011728556143645490299402905178904584565659615585527275295988713918707059721453298944006155456723711182272696179751348152176706458720794844994800935277764978839833050144973310213681853850332284333053749671108533775583854513772668003820362852009933901052403810532422235831003774312468558194952401384898496257707519341011653449124375702053552021902847071844828587056425951245967595421500857910286253692502200255279237174231719767357543257227216372683360101377628342167000361128108278074615909381915822041107001162966827967554291311857628107151074113056105863170778144768583831566116489842991696766617543103447136619136611070927547731735429241491766614396060089362702457733275362752573063510028706015243540341477155696889515407844688630723537879341801988587922250740051082912468249078081763806171575247541308102892090896065238138610469192206906366300738421700015581729366277487331245463936834836897816208129844218164789464688328596737532172197668496097063848593288340044891141704485494479758567576642659235345166651513967975018811838883070339689391808076174167563452593271067702972208661295094160351363361344999581328311975068043718255604669728245252139610059974123309397874730695396320444795276725622128973950590985298239134434461484379484520223413919615688399119736062866111669068378220875322085516667376492608979052501058981320386872000083068384137927848486469962229602821402950877417918001970650678921707673327984561179336129894576756434973234436344052064133017005075478361306677656243898579906015707410592555084292885954050427518434507775467360150995009954029016922050496183159897674697919866168722868953042940694713343863176554550121379253720509113868131204145467651092237933366090828767606605107055824547195920371670368963394697371369377180392197473724848000279740472554682075782020061428031965822069442504803705214599983335056432692785920486079657527015723037941904482892638899783883188560912161244619973222192788630368468249606094927992811892305305139433605203265502160699551949443225122289744633875202175167966831218740599362170609475615736509535361962911198559518309884440486419213537184879974274301299125352340354392474148305683094214357085279473976363362030314320171521913799675021538192943790122952856350229470793981812726745057413822071866000024201901013653747736780789500102327527149906464257369615646396187190352569382744542918934437616855874332466393479483423860398415261250748422464088130684655164648415240878784123408887781742879263909942110568387883727825644764059543757668098682499996873512845944863922826010137084584070166408735241259454939755007843948037663465973335045020003369511517334100972144415835956842463976220851531649302554095161746529387106301055986477110716592876007031616309805566178232482594081293210101507769420877892469297540945335993974486719665024530523902660549150516674039200322789943805230376569523458252349435553402767574408302258377308893317712468946336799675952616265959700313863908726259134181751931975260938283153012226497796403009610284024556139127475981612602109119902858981364276820323101895858786611414955770592471765519045010493595930056543708757154408397125789447114412728791562349030961468450998779231593415145533312649260889582434181107663813777018084300730230471606178139714976400708970802352131934143591539079015532749432780715884173088201659595432475233583241784124294261343998580058457295973734566596988780635640276550546712730651020961824688114702765276174594897261357394887105150221453534591996707854116262439491183281334014615175299588528858664853609486886214963455590470058977675381960092088620895090451625205460744674861302157316213398637011587057843585398074865547151182998835067960141801442381586271185680203932452689172850371771295958052207435005993982952426004048092689919085336706220611946424187958329551219458782625248100799856428528463960384687420481059381590708280974931068870649356946535391100437806987280188189570153652305166476252562637662238393400224467503691739436137485998162937814418887590048972732583286395209457314091183882241338900176201687386642339082231784883172155971504892980321060989589300361698771648924929104864175478671404786818617780145550707406451827131875422088263567621004937304423953089664027100756503554226474402129134887073953565858588740614931700343503840205693430724894875740650236574502384687970334778734240849498139267921730245151038749151861165739233537203143583271633182488621135333715584870098065018496401119426934630533559291206484748497185419669306848207251049032172903029755544539522324988289060584060627107731045114723819559742255251693820865466159577546250462289942323167930721554535599853528734700199592785136836404332959481493252212572569199903817408372989215746545426250483314497219507921298876781173428653067550902832705297904236783544284942215828427294174078272028408316051274750079837501775043891682684388087396921998415400370429026148396907724227198067333530119970498306590314674259053328845819710733244988864269818322966064313419262266948325262622352317418275368449130473706033587363818477385420221450447120502726339613392942535432635540229031382568551726088079206042023376232308934085579530979913114165208127390755828076867411942897803688815627206937857539818390769521522207651601633967740300175747404109980516689995300734641301976227744047967640078882585271599533744245515875790847146547650243725943900984405518001922791328489515799647161553173240291726719170895056059880699764752988906412380494587731931406835859410975520334506862384197681731783389869488039971066882653661946055485822118329578889001342676804565193752159734363103592717045499026151515730847867149747498787373638143587982069006815520641931029052850118555347424362040843787390439843903469458023043881891726943284582500287167952194564832110714024693063737548691170518908895959842230158508171918555103422974130258572744926068511063712945540549375410352876331094267968197610777984427809056148409989497640264590222216222505420183347570810011267635614417750654646432791573233058991409721132270691895659822203855051949047058069978821946862637690660802753488563271645858384975015868578626238195397966625802477727228983020839511260879298007854119316449964553826176547053487009070740430929819404327419100755053163332374506825698242677506791551374148668479226653874455069056335682504966469165265874163534039311152553747871208874683042058229882531722045636276710588346500390694679433497679973407074349095453603717174352370525904422160719662032639677419049139903754676646978548594244238397801330061281298757686440789261551868955758405447878255643092321763116470396092295747051669240197937207579298014598403336297467311346508458687162641445886469415684389214907555911778035070489750883591417270866140958996568925832968519826060975263688411417905130941960800906492435059121825215158175587120365769433397079609068153573721303369343414108916668029770271301089617912702292290294621957446573646013480616915106909676423764616735321407729019967764710466860824272563584425137567226493347987750924177325196190562837909233016614593353290427306608098444994483435059436204410224328207380552644883422146278062467415840312002934380767747520493346763518903394199150042449343984812930997831058142608127290446382636925888802030227758457569161879034192088663475309174901353917243415832606261550157852757200691018758106965345324408017760113175665890717111384736096501222466505833242897833595042458484646130571915939511412043483439466743182527681340015262857328901028781495709349441880009687310064274227815681647808117899452160723350616113168729931853692462398791135203688811024910304114974440124924766023501267197530397728708986812896061800738562624280442875105952945403544212200727419885777856674786515361849477577737866884625113184403790018373123827957817256686722847749964989162709454508290988903754080541272230984181749575796833081312496724740613012249935412455145288776583670406742061065786159880110918038685512420158602445800785068938684638797392347343525469766983185170982843026270731288414371455778248181450387557899064295612868957018474137511058395302721940152610880332477567507024746485760429519927335048455890893817030372998608471466225002877849278804031866726376294861803888380189920044262139548491981274785248639397715117082604888984807026220689872092079361482793984746856156348650852995261552436357082784242404677294543787034981016563600897495588442981127702675384862621161319284725066978869521050322175871403344155703939816383926425851055075324267529057477180629981768847395229684329713901500055509011103701730855008250861694431002109605322577551025697997765049202799704092452290281465660503926350438021453124752064433246840053774170225002545796499233765200413651206540053869913809745714163740006230439774806884167885036999486153588948581266561821581821828114218657323160386414841500818394443244411403276539834993537750531147444096441162095689169582435201543594298479332963050922830312474274947370445228190259110028671887787201075466992606992320995473479097312515055448992454790835032379511487352548565462889698243330138257210443645744821626194541982766769592904553131308638270834776398907429924010251297249590531666859011632840509100449243288251424811974671335710683579475390942547540478910883115863506778100977674626028789935087005175851285216103384857639451286600237324345550320399544059579483559777080500285339140811974350677802997798251387061896050934511424614219747528831949689716377068396308628418217059112402442151872229660070595398138140952314177016773377043803937407354112905646527565782552600607025056288670675349549980190983780821439601743096784030415045960318592910144139221147813505982806914648392069375395764945582652432042434770101558817879137015790457807739908382044800136243988393737116545024117824564552649337196397049090955391884728675265283154357054543985681005852479057991269295709609675664066293282996602136534667311637679299370532611756482743677044203439959259690975900338107131129992591332626224625634943123810194056163230445766883465700047392438506166277801053279699508468543597530223411112898855749300852294368000564912753237755579374332228928591496327790161856795187762220023975124333470603874867324464165266322950825164074923640759203632406953603613299379710106931749695749657747340167838515308571513037342945838605884646137975912375867941404710229485344264924119154129993165568047825990929481121084982901127971288944961993923093723914976144018373309478635614552383917779693887211480822907094084077739608757452513573635091051873053355468193809415904733781301030148502188947165261863432798015238208815651059937735237402109654888831195090791048726850661669125134351424831500282535049719878886935583593780666714468298155010094526672303660690989763257677435784810680997894291982527915316560363245244921976521136557640226820446573455558046423661439991946948213412761311891425456811135744813791911031046378182752166146500118685170171996301396103684776415930201591745303582301371233675922434381763394600362668344411267737991165766879797739361383411797412238925711510511883259440212703091081747254106426279316159903360638312367906396829678374938662485338251462552688355230599733402788528997809701793404913043337227381320408688367739668883248896749118043856368955572057043350411511279240612009449085487700584093609633815293820597309098349382959264198115370297492112577777859618593368212393389168658311612616205478833237631242632931502197909177200015886202244705339552930981489090895699483116163240013554818753569861413323190081905171065629321633779024479455133172464730206790721565125404906438148773012154168568594524015918127219093077785628523318235516234950505318288654559904165971029004226193402211007435145875666879405098007383404762830866664247903864500230007836032795029663642790652171299712207161342231063165622937736806483286495916804890534148482531615133766111398441116788367780798855895723385216005435308603076162054941886654024998672465551436062157988359649659416717295948013882628691708448827733033481642348806252930326355807897933093414046920588289701946967725219510209692827641843147353069840098997538779730710172477638055050802400579404236993643996641074851748190893557793638577849793840582783016592336353698931831840664046570715863638459811654775360672637509068616771868038528275242425016468148969169442072880722898321184295235247911691978240153052421834778060714659336042732290351185447738449696502053956250170414905910471930302224099227200733014033573022112444812298357200734497635365292802672210558252291876683133814848495446892036477709699348679805290968753673890375305013399977085720741983524488982765979317289968953740009931544129917053407733040409729726561855929021874339051143369131108304390803117608122832749624235442528606862872749397452052817537372527739883576803871050376517771662681489247338453380599320139722401976867681938743599688056228219730295844415499342580206377545040218471198212294230999159201803655421076047824720826145055832008774633395015999569115821386069412090902316855081596423204304743927018865089283088193245320766856575650962101133077102006730065315786239142236777159279378877275218364707209686253396271662578969367147390639375549153529122060472870545465381950524603833981092587987435471817592329861431800207732994580806275005866806098941377163798322940052173996294991486522407861988807590142701046079861828766035097294155910311478392560428328101317565503109090439936595069618182523006558230775049536692953718336621779353270108515294710364192802047362020724578733031100160367498116970259117060624343800314758259719134245747679147880352902477534702632089321475409148360234351249040498255811978628364600763752917483995123218141608440320513603226230704576295219230095927776178000175348002874546372060418637388176061550835584691432413095247794111661525385523245883029332337282074022230721916734316311462101882000209103234323950427820783546607614008875825130868058414613756162993463947505703527379476385633106650064992716373684389600149468325205729913187977530080337979743313997224085917111327539285270278767281707383446816486700278229489963028006602443915285629372601158033523776039590285382845792519119644335145871282674710071514130534138076673180699144439651614290521115420897486700600462959844537537601547642621020318138767185727231283830437267662825477870693721493462746879479799640430132565279933648631609786856249928429384819908169824738759427034368983118232218896726241578724538757030718158399553978179452208064453478720009555617542564182342569502662006440554672707909876094989135172597800419755864647664173801488109615107200079065190239614017103075331015589712023699408311596492058818188365737700380699688306482651456982763783376958066650262698591267841993768674989422137168497107260671815433143895722271649451683912101932486070732485064187200114749306807140538061086791428408725852890493501809388159080318457253735398216700390585443800550042354600996358731867641548244392502596661221507619359083819203734357059249681593453325368218708565984375279107786686855875000550350663389181324748292530085411920625426162390803659341343391997522045537803297237415046678059077822558784928663863729632412327064848861802512401983003780185495683142587733648592020508474938678367855731583495298524404665376139125454056169646582012943671688934771891007171306082638144046458630034352711135674631915230806399645140995802035192599583648364250617512565907565714904547768687555503899290943574735265886568090538347898036323570795240075360731806211924704223459144197731362916684608394864554703505596132327145277160831223439017706611769484929708580549183469822664185661611053171287285414152374152903022201892043301711145303811651977105593444407059367444525729711892775936907724710906963703520731838440959526139203981955468893415628625863447119185224313480799972799487793272579559964659334494649990190069022607657102964606323701802357861733168543558514313172755366300412263918085910369586755284496771106574797472535179008152793670165820360443674264869103101123367223193502210078144186017380887804455974172220329877111990867324416913577310453001140571335982401439058990946103779135533756717723793405318820338362769454687888924116971050624979351362540853771223818037660917821580234144565613214002383191901935748175504614535832286665706780017789441764294826470290300736108416172477707866374238682853766497452255403057187776397791384318180626672850992595538537763366059418398740442210179801243606478649867084644900913653999038814402799029603340712181083680341621504874264968903629831250425573045623602863826280590287496939720732281214009402752533135023511594798094549325771962506435710503197771222807388545982953081024679013419983961404418423413506582043972524394934743812818789755085023673306087467859656297894914660990462625287087483839774085112865054184744209861645990279072977126395230738579693936656149745693563875731426689587145368879895998000681226748632491074710933500996119656768864624106261125908891460383731256905649596433434113969066485685508199636663146962925574530887880831352774133923028227004783005706190409972911815718479324049549064906344731072482264413184955479778164539270414855404769436747270451075010763221964425729376013669586728008645676678459549811525925685258542879206621697918721224669196333154307842446805334131442507699248185619475571732322556088957143908206007690702035783436154937525713901110905867431507197420823730386254320043727288371097466232580830843044956548386307753569115817337170901766278075744637568204616268537009741429285768119742754338567871614891941200399917183371561074357079014191057609816979241164751913872146251592211854890034900772320205792012602457312218899362261815514205979964738896160445389956604329153796401760217072187881992810766362315937842411685392166102077014953727344189011775735684996061673205411978036687712334616858681677629838194360032533169079334662708284086667579134265709296566736896955938659999053201348826918412583841878306868647760050506595794286376775800146063157808788238972009674507962889151434732798793813449000954407522939499009873287460370655967975126026059184177903112540156955561652820169206128525586800833939363226365856267132322401102193662778405366200390223126459363632643920375613735517379820058616857038065194230408051941022472585375460999636334389547750125213335226166692791337178730053799768841026875006695083037986284743599350047519535684390436585716526098494377017427156665901958928146449244397111121001791246486769445531849340698862090911837710389312220560834215042149204481620122153312013926437312098600470106199828322326046180148418043527477366100223679647429414919409610772327084828335021654863860959886442881529089374081122389861544597479418774900398149531807832918240962983596216528105249299515705743138281483478141866417685986016260653081505952731059014731645735840286207068684233306341944352389262483082902827481091082375480825840774706964997553862669108327613550984782198943483121683496117493917753322297489862585393086175475984730103476687048963473766132167409017735676397705304829039192753571837854135692203532874931381022902348364454755548860505528422403078755541837771411926532914150672118654918825474585102908229276435038754025530117118902349115572796508584175111905350889352020219627894333930494377528090665454605076648367672349124007941380921902081758743229276871297958663447425024558902347887136719815777340058368896200842981601722282600068713015246147658792747751802589803181261654340366457076452216769988936199774107472129820503294789488815350120409523153571937361359366076514267749471652806492955254670846124801933014497694145029988704420491372161932138344111485861039022392621444775282572428191072591070226394372759398305204490835605953331632048305148728644464647986151543151821289441172338408567039995605064870577406251629454992216292544213067889338238088905282881043246669830508180411089584846447617048312349498418967173260791210001724447552744317525170789742991463980377415240447756840804363938079359127634890357639129609350692868390994322466903723940958549504096369024924760301839788214098615811647088482540497608553745318431737948098992811519585477567508000615417671430891648230065949127821850386240372886397737974377945368223265768623936536221990666950646071698732244452426745241370264358484619335274231724822692912416137325785914100948261902869078623458010801379168830047390027464371562810803678287062202195014894697186268822427210558771847707806139368468432042221682623907153672294970207556639972912922855943164834266875867251373364817564193967310990333002539527477233036794509605510713695081484378458078072477143039899876157699604793866129217926787982897984891240568278502079343966171171766940208831254305372776443617614663627304331607957669395669874445225570433941661674226855855304743400718988508510634802019344842778248201156177256446929161129015819111465198665555001068195381893793269621755358443793728587746002052031595169420379494685095579604654243210259877627196425884951279381450718635035286207460499458731982965551021398880171528006089907146496550399470406671450591023469288694178371760963316640152581464164145757039535724206011891269089835984861704201942448461196599323670338538325401329363182502590670088725978989949184187620345075973307579368005738672833194188253089524127402698543513860650578580939437263884033680118184907645569312657747602677337787267747595904902498122396088417850514285220197656360989871368789415245887483221687604009216137878802841674487311325065535937778611994267293858780211379898456272392658995918439488672914088159431093735772482993711735099980404956758651780018948658605726810935613428570535705917884539902837275439738889802971484731164576106659008924999635671899259024803595724370948227071144587746570317004576209592495633156234646273640261418531409831306425527742785331908595525804425157811208335764593531928890263817115320104191579372012333830095812654008845588281819932324620321896082820796562129827463531316208486156831686509572305274577591725208209809987183542229536204261247212787713558340278589497144490074381352290358366510623817870919181649457808950927291382563324137646152817741596099103080665206354791575013649013829702658333468995781961907707891378226270328708269803157847412706023540395862689213183341485860922463292400544223573658170451857379126997019103443003469082044552851190190630337115453496876338976076757073670344018182810172820042681269700912401987897558718447654178688123767012595168037763420494106229928811969248025337099866138639993174185802179958045890043448089797726590453241041996622309721450997661503693177009126262682931209862597241904821861604454322966737265579631699063342784052396904262830392466427659079386338301370280697844583009427049795451268947955977034285857969030394704754536468695093632216977094808573613932142196890271682171426247808766290726034141112016328114349474254811575325224811853405839236329111018753241178701535281339892097822776255551637148698504915617603721526065339466482562854467693595812051847303849768566543159802042461371788659280902721144836405398134368175442466602012294317280403509983749225984634702075007903229207684197683873044966783056179095370976956371842777687961300110433869970182365971401987442147853839665435645833268263246235210484151643943369467779420941463483456431258582850582493684618498741138900899004422580220132101234907069066946024296244823035725918940236547799047648771562234139155763409048604017338401140331003069861412421356928322442894190518232777173983249659189288476845683967195799196058647454037074923312828961836323301357833102637420729035220636195275632875438892672042613549030768176916685625658463504689753609056161912696640589415866243103462242348105363256181125487392366873036046163250301074024395742767856876788254677256817374833760040151254080344528542321683576096006595491210259138265714398912092600811138552468337359020915804616787221635973218703696136017483657283455941488863104159087261417041228349931753162085045149436960110360862888477482465744510277734806822239375678400894642326910872620231388780653219196281816315901553689668997336058509192630319625248715134772797954076776851021819830400354426719504729692026332167204146105771031813996957507233843284807755498703256919158244129332536771122888571489573622519819193679520058019107676987524887322313980398451443913110364807404218767507626865885801422060829117105097598004184281317815760914056429662405824903484043370465110572486025988405344659037395764175540411504632401418689932188177022403198500768575763818342492560078257367762342376170591836546864743803362961673544866661662284945084948480532737759748527666838131001636455321052285757658029621999084260326593417036824274887965223693684448235423538620367117178041781726371919598914951035873402325157002703297375159035566685663710406405443008262023595810802228571974161645076022004263559321410327928397651907299641917247382363305608300811491783786768678259413596062509930265657633463449103745287798486341007468236635032447299900633142471015991356506759646741946916442160636306954995198188754557256143466395960999747359796490422511758912756652849938279449691072633215587832116682891875911732816816783439761881983360026672216835903686432536022704929423329890569241495040475450285191127361710848097078888877347503566616941532890633661660133053808586278763147575129419225126024017973516691392369889329904200733337862182793341207837269312455656258667158477845267096870289734513349830732820889027576621328334312788350109284780052613562988302470701651346963811530497276370426307842341995121461472390029540941124051109484945736866470851537663016755174358445921213989782791607527303074738186740590785990347232126956649667181153363584955315159433300510086593175257733253976571077031204333839482404201671727776599016281044530561142510851660034714576254126304994782999397954670644641851518426103251298646082378504209698964345820082531151944025116005910450290280740685732780415163375093976296622242302290734546106479651127658548531289643889589346544446604055267314935067853332142903545041879516055942841530618571349368740039960686869177623290069801364342606213156651615122269795049624974740409650585746207417249212992557682760399997828744785954990297900229910501208937843557648812666679443368115885100551255594933050249634597003786229420180160557914689870374674656851133454229718777599950008743643220063498402461724650486830784752652878275867021208799095795141201355978986095055930941626187860079620803290648084810675970915316084797427815935486698232239334008219034541387541260508290903340495853214002134843441470222508160054212318927752645063314911029966542177816911092982642983906842402466045380009705507694013934051223868101665640422861055259967082162188338742707237550159972076347105776083334547925490803979584976231478869714620585863792176102840555774961262418180815690366481502905165115702763310420980796661960469970499857662416863845109821136760874024878799692212178594212162611437711769362130975628660209702238657085900083513111020329297738097571151822887041701480671896975771088249550648506938444637366713793278690733537714779886480287349183876768703080616915950984336128654196227005389072582610209841088509850006131766962340424273010493980600202936297178606937522250861407292913998036903118880004861542732693740908158298052128405280318034907738961397067496417297484419091942341349492621261979913874627906277375599554704224498048679372236979944985557261176627101338893603039847058309826907150263331200755131916817817563195307905665675801147477045657276059455395598517833379196538534019283564316555092337853029912543282770934754949588081832246502216873758490036216344855814158888793753250676604289832973192299369353435687452929796770975944520611278700356876963697019415538622265338589748783371182096349670308654256295321334271512857008032597724199157219265392857946263782699018666791926794562428059042865252121653782287264254864215670925212584733527896821964737997460482458653397948739043517516041649157712014196526232713896023077871900359094451184781458366629932664709953729850289431943160727695634279212994426801669350904656558695490745490319509772023687726387538883954366940931453871348586625601051905471146373913744976835306419175585673930749680393053717456185959896568846476414856259197296820455974847692667189965893851482069272621159909031292657445749670290136020804560561578722605632310137436298114280475913355036632332855864321062872168972177542210543522047999113018407813413436869248631645110265359421695601225870001129404504656988392981923891715446891933135231936409047897159563984874619927116421439006947101180585852164406584651461679171962935673416376377379931798470630385115604022494017637823730826050434244451534251296933200543044201458700687123302060947443409091458946444356814783637243057706692188834405369057888122379496612815057289607227304106815792855345083563663107430316717666856453508579081582921513438015807495509901002064092612337436883965941528979491759477214562850712034001975693018053782204094879153656549622540544388291103812362627682093340014372761277571147316821525486024731512181527130937964454143938695774128872129425655266817865886489693137524238369393409332917030769625562623822337108370528928195590751142650312682615848438860139680874806898062797014198891286085389668650223064813158201122051029121948436275695417207665436651154421557864826175318317619461723381299252821141886078452076007161266043496682830010766609005794998878776673023049934215375466030269207198815982766130552122193717904939044307304911596910507346950801302815528725860312175570694905623263523106542671054173061843808334641884301886062493371693031014213492284749958600688554525602535661282067688697330121472318385540306140918856195505471661526081275410151854401480640912806701896332757161578750722390833023027498439784570321267168544484305684949144985889280604733877730782072553358836076907010892484704859720421733384856135438859699302074062189030804955421001125808766485618853333529681250884977819092673164075453978307997129626423918305541651774202800807695045046135353771816909251567432733140950456411698187785175457849861303129674634906774871550428986711680157590996896775194631863855746439449259106572806093439723240702173942066212000823744047459925059804112365325212179891696614144604672104673542046164912755098458846768333133026319372526179402312700266658349048696662567715166702767275219086317080423398992384953422669615005237485383784413037020456039481122603295922138595188392342401199964579131837478732229651681764506807618264764832850326907377421827092315009109565646464511930353257834503334444320966004289387322745910961289743597203253904673793138870132429416206987200002715972123397285499749391920270173946465798556750458019908964498174315409885498910564615645038633268643499917544712673880176876441973535239203826558518192752169261614567748164495537772474594895683677618701718705257754929988730358665452106011761660256481668584813923916102724363369551831468394060287973317182430520516201349669418053468098957648567436902196926330262310584169194819271640065381253510012888678225904162017522764225126431018855185398707645594333130148450176117894982269042712258897537776752021128854195426781018234320547109626860390184787161675872654027457431464051446605067513660384502916561313876438427055904564024071339975756030608518480496559157565629594912702901413590436820654773587466133964644451788868383639434929265298581100901538342994630174747785402200662219723109907654371768038753641501820262888488372906493892167883973206621732631463583936458554153683170568943180767267187703131115778971620084205490775705911452086900806173614051505814600243933131095199879855446229176959237220790269509634797836199512047895987521977865378787058617324706481524311284994860452300909224863782421408644351988592648375468333059713532228157615929597157583807228535812679507101765040856264239141993248171100337177256916448522259246744498777597569642202764784819494708970414266593190864598063956732849193699249072346942731529264118142356446049038332229995779121501040219635664880025289864445757758419671673680145155085718661830990159409901732938649883360896148137179044532874046492452510704894317862350430966566790838713736915583523729975596291108671172042157922823607999048790147563654515134995222410366900241626387948741570950577030998013946183452161559990024003308129963660209846565043945710725271084858425742827644625934504429846227254532714017398051675022990778739804441017616247010649442603502620140068766949275697972554297947769382986763540273365116572894438512529097244723439614251655507988624111237178385673096864931700908302048790910359609125369833425719924145903781781890790203564790449168062454919758861980251708248860467997586762806523157190911811474940351052528526237061976502132953810780001741066495003636471373234061625131222842091885414058473707943963953633341724063005934211452277922749739841982212506342773488814249436374906444748477786767107079944596233902437201831004093462028908303194521901320466650566273835743841688317364865148074604112942981546561783151164456226410853443065727107347087803692892922476791902481033727922692708483459049714531744982064097526368560092550614878346037527235842608178358287374636301197804236924182264852816404677714724729705906758445913956780990695134397378832789077089308031137481655689433913019464574106961821103739657730377909824654867004641898861027520568952342721115335993438093525040582999288509010199044871416595720308213417847355847559523185489992429098007498088277699620013040294018127719263745411575381168822006358251414386550436614470826893323807261436790853469407387360060906823380230745324778369832710048567635689826236233879149027906725074630524455514264857600653723724839227897724674673196636851719100627499607349849324212111540356454500329878116963783547181483775872778718845658537301495994202135984042094503607860929324265771858671639902220882012157322288461433381545617711286070079951006428478255527678919920738783020502019611277589057120308303181210999089411385942983793649289643352817706551986674467315984863239732855059683060171238898055733903812263713958358268338497346567397371515773900315976519615201939984592691855670800636829128483689594385954452899084042055176978757066876202533537444748824523052819811021689577579910294969211508045156173433904631500791924785532998114437791372047619621962938455623866419758038302727297039211044987599496160132984169518869129494815232975786144743422071308140973269872005000258586746374857188335795654371576953838946231576592975611689216520275796268778868662722935434678743789425457718545100782691731334874933504568297886830251528442652625907081497413463752780568205356600036918587227826568616080382287377367745823507034633452711261793522344123107832419897960622533325166553308175091034739033271955378297327617636818001135442185728115270290375302387791453961999751491210381277930299638334269167980191471920517621101460196113433773606033430334122247746296102307475053628390356446170968719907769485661126629843304505037036573059516613735963094172376735812573211191946807446812754604899706127820376692899801078846011419770855247249471102831895389379341297978475229310923660033883849030297089982544088625765263331011512811539004722129950823560708318886603172903096861224324629174739803888323711001148974627751513568577701865365317189035105270205927755884013264586701741098200300625223471980379810224542715061941204262552194097991863243463818984556948688070672855332189192597147377563987195128902575662334183899998513416206238997407562423833939994786456729298158054528316085156232205079017766504230054341994210497529870923872351147055266818946686092988042419435525957217548630413321317070920672683550598761535195044810037328725980013288573258360891755684846280085216773774618455006948477995305371138276205018994766724835626031503223136595413164622354389604219703688650377471681163376771689477110829822723008433840248705468025296859724193687540704991061807083710201770968170682285352545320214631668271985636956412733674813663059619070375731112135325371879568028601885580825788076000327182652917485064311453255373369745196198853423315507226171555109135318650849017408308990544813432469173282139216318321814926655310820667048381600124740153239001481753512304337120045574244061409628089333579011705464419859511537157596876957188892969557402290284489264179472799606910351108411705866385792314023665049460197175998203904028451966191216481674307085743928176079373062816878819349494787537005362597629898097923825132731174061910589885496692987429076940331115157970908463660294002634578979547017647521904412334085013293819225483635843430480752830753377039409333657265700068286544743510177704474165628523577103320002774402929962640510022089993347814010694215090667196882202688030719059763327732981387478481416194023410169265931737818305595906567127862879865154880800706040322570147921226912699680857690204041245438416171186501314989574877321210170335482865532117596184380772054352892955803146329152705236381960306304714638968966768697716594038528901974303981765332152334868097558840596163270278974589552668481311631565440267498848980707138545373245728973575134005701509465904026676250293887850871728082461800018616815063897704530068179199907710551492609049407453672521914669022845452436035099666705445995748458274367720233184471872043487233970378200925463898302243576578543424239965227917191827884543321201189551286206614638365719697389907041793582793000716702160585495429641169607725161084348934107220462356892974855947189224049849355263858895528204210693345833098112629903661168371075601606746775983357123397200638305576459009422084503358842643521202662822827213557781866242710108121039226817902245536409673436101225967947131229485164075588416517715511652179369080712655212803925119476867753121714889923710825186700748635449032082509555871363530167126031447238991965126562695393646747428408108020894903405015986691272180132852284791085996749781151198638479794352472420462068040070730098844536889259301650113242095829937406936131818174319071105993160959901268452477890820716666179930017554118739805267276676595095546768126142168007998411084379641386910907478975205845489780239097487321520002797184633590400832792771764158882496622076941086453460454883680465305311480667476687668407459913145570581131887736627396337194914445368046106931651479261407582213650705565136938136597221984793845493169349320119043612397619286298451802462736956286502303652952652543672046880021077938338494779359986018163492884320682430533681815178276454897869389079230273112843446936936306907230172072316779777286527280272733179789498272426325009632978356684081874524791860704848973779187802149556455855254497589193517873789412657190789194383789657759052213721332062635201321915539376467043746517327742925375240306278988491827473609942334584271756328288151724722899334168639148052094344407321733406177990802236709103953552522516994356300244363639691675629648223972403330617028649732029120864060293599977903378719103714344296436390795441879590785955719592793378440647706699508271396040657070141236799908731071197334757380443669083330795143075879051360112220747057176394659687069875283877715098746016830815617037150991193875145866499379297995849817962775879057724097663619317193543474316411501417063783398795654445761471718212254868597405643639395838747336973419638374882751946589417645581464232669988145207613147975020969131395735594459988503905316467277677640361506089276701328270731159063280553852663765303645944057340177451969302950735323507021932643531877420126990203571914861099594662255901245510956386035242252729072327047059022402233031933018825870926541635763882557074640033790482415603072610237787733536393555108161776801890847551164020688552971400739462747969078832367762108742447568931341104678551726767343987614708846171446473524592966726114347476299542653936179109458578184078961055656464338540008857707823048285337853866438357947714973105742443974947873636657593600550111029877846961823816650666562680544625240745113703819588496254409094494418994514177900347023532874124341466415089537459593398934162674696360906445288786869727280118495063758907684514357455018413817338148539655020370200417516852666146098774779823649552226311541948978652397947246695995296779212626497033147659819102389637841446502037236664061579571225740538603483884806647257293032496181076906619940858465501786625910401997648906997475329576710034174861190288345744132513590385533442879302215440856850230354597999174038285105533351023470246622923392317299394840154781371787317087224472451144496358058937626957769308190140630419709495734634025444117135185649289585002000293301235317649822109121469367027022739185271296634605048488191420901699771107196712729042282574323967314447182826950903313713711260783934454722209678489215088325753713836021913898967407888683450859098298195943682282684035223865875453119402394182526149479561237627044500143723808973790775119816349487750470801223746796498431711013972428728519854727679742763506773562317203236226090031508953235563107306583067930996856045764985359737168568179523497103368241451580517814925749180193247759735491082696065156080021835580706057815972637329993740749019980778774047070681596655693736747654823107158251435301207850938257908648483953555484257048206776187937447230551923749746499096279136094549170899204624916283930383054274641648087461608161032841663715499930254776603787986215028136032541988256149174532512703346581794133970076551136905345743341961633569485514674335804771681571701142361045259403093761075796104211588466305757888485410430200630548026412021879610624606654238990372467861409976544136590894540509488511420273501378800422408180760189819166911972930091213966204184030522345165320759424500143528546258244556878199751544242063735504462295586525405650886242844017538197999877034576202934935852664337257346505193403306999588961767020445933340754235709293284976860880978479366286263797461693576782802299515562230874759240500543304618827324085424660603152597461742161047777729427501245613595699629047993740749414261501248420879545981163869157105616099842316542722428568451521222662766056272027273285128358967603748795163162982397574929128948850663990788377035641532830850150057283262920638305765697594854639674854895276436053060912765234879253989146629086393652403114304528125877134089647325487759359170139673031780804993562640396557716774562893110501181196956394135930156783970490317539132423844531227102626407366647557075509267430639986807846453352826023224607227841729733914646207242757277370912997879483169930721917844110510517263619086627773271226035554439364257564783115224072502031657706778896490964727848038120310567209639018474130850340177719980775657265798946900740134537338676054383273988566156875353301382910329446241633535185484220316798700491966495043377177658696181033955782890573914079397990950882485499014806532863058711695393310150360995086724756306205392979885314330122190926950273128885717883479868993070141016978179484616235632070290663136820016625996034545086554556399541573520990973960174940496705054330387740180681736674213305495998358237000980712725159968776244664358864524510913888231505111802216045159093425217919711039553534480640394964150943082951166233689140684801257094813005251842895849894655199613475504564111288042621231853251106180374847700733913401070741925997019532327456401918364312955626700352809463010018100545439216097924476190510877848054647260180647215083964307017631039458536222049192597416562387658020785836137626079199413689957839910209998126288520466745033799069421209840511343752250263704977886615144723231480392072095025426401725848564866708381364750814328266630551940887484619248261134734306457789549601090274093319474185232039146006956660997629272238277191616258040469690096044664486854567912924509980282266360487048918171917270256454898340927076508078518551394088812188968867797430862885218620290490061145300006227238219271437170122005977688185461527266284542796076732094535903283072462235223472481900012000966619302902182799706090502706001936052837974300600293100119691793688526316019721818673575612171322146013259473890268037275478794791642114792212727428104799232525099386234511850683511914010284476244899104037229044997035655759752544734104967945668950840729744671216061535424186720902247485698791658485476723497771972047380806826577790210421674101565690749404148982247594178102011909643682419043285675648282008993659758766291248279904747026265337721711755187672447891927806214170080387045828890742234390831034715836216068997368058771050885928254067859962566924093140404394235268375235576914063623893935832574081628678568400314640285321773650198522325486217980400285717451366015724392227933934090301050485315305488233779358999899984160494396496661485543118311965231767294632315260617114060068465608529568546030036277821697905989058528556064336501097800444900059013384195209980642624373934177948366842718413984306629998107617712838897708935544731356931570415340367828613306032183128503679362811839764527078880684496098284001984426578519743947970579412900675544798861455425572781346712666287714554305390817752093805238581428389171070563493038027224482738353854190118320391009230595731700068410899150492499063932860105172529739864881866871738295942353933869317615484309557764451896905821194830922029663928076890827905227177838968941523769913440701909041820917132897609115559029862844125928548359490019883709826716364165428576232753005850921041520100551363177568573170628258535408913098811655970203000606502751847497146801815536187724096093950765725204708221762824944225625096509175382135242196958004697167776142010645235233676444754490435019918301849220599891659567302376162007987600868597421122327627129195991223130978365093929366148183930052948132667569615270284921249506871693875156032867748826271151469117376509932017795462620632019981328007574798768124048724186829412627028068701368105996723733886133585576528569102976998025618437162375500268860131575406588337246674815236005832586494510735833125577716790118065884763315505905710083774123489072133566298210727388319344603419140496446895817619614056278039599901486830770687353057811307304115621089880686688556517714923688425115828697355980928865261376428180528546495847196960975078076730959878338739243660488675420489947764019257791068490310481613374039123661216441440984624967987739388451754797316469531330872436296707295663292174419937379136103506256195058870134613995564902472399001210352595975368015362119224274904054130770661280750643715513881047969462727114274919380076925067588894701760313749609837266479746477196823495853546325646758508037263420374648321837342850217039777403321467947636433372261727202171569890250739257771198353820455123068407377725192278313277237846329811946568285172084049982752176110075152580774025302444394984355992556477686289777448486996737573954005495832858121577293079340196915639198490767901746874037174449447373667314638536515410518386696851932689131865615472561448774001263602106095722770004992506116062030329434334420020684726871799109450196620361071256042882268828662575252265412283513458438066924652019666931652192567784768132232567166101505229046160394244829202093401533554335053744497897032132619995180069430057839429120996496130293342941442143647762627588537464116512882029779493839658743943949831037512667886601815765014654466989106848835661717291308314146377055959610292896538392779255654222780262974062978289314759750196444702238514979597772557109258747541478588486537058371484986413610097162097039261523190567910407201146348481479601421810067893626711689792776789728907378724008256635768708314116590818630813600267989295958754881339178027452528361710548215367205169313898425496522859574596568731122130062132232735687318023193727374104821362765529001776572302543542473096997431660135338757871159013121298939482051563689930875642948382604452949309442563119048431043972110221326588881400576001659143205650194864537324088261580071669574314190507654429819273585695130017862447900643465145569284784123050499510483151137190183941468204925660428092421033585624877421761967316593141949087519128610394476350927883509178893123286998728152864591550582326854688936618047683398209786405007609276407559368999256754568584773366615591093993991436181301276187373577345936457085332299183543398881586158958748567155287359806028470277931096062289495210148048908571522775452199169114218135478600296447544570770159841306449720327621708588230583680436330974224303547429283142592276638631117139943579864102055451729199752222914557855256084277289549511705333650467878345862764113116127782750503787783000904867760673312339610494372495836327773456548625327974586008948374179300091141878215965403132100669713174455829163627381488395484827210803281169738974212945360917342197146308703033164779154429841585781970994461415643300848614815979292326436161025176450904766240006082702445234685668505501838287580038513680242692407604411228326619022029763512097725058340397200690559949512088526491473481936256317288263079787731441329038177190087588816254425682030212265190697432883679998675680967147353111727008615200909971076108938632161989990684001629661528406502687649004340274828407148462949252477018209586864862039084093929488885497333586521401537064841015790495503440917547459373490353060634936906744223285812334455369487391974898036844013443067906621230564441801777556493656613780046620853892531485810692999516732329689826293723526769116998233460512735732446117664726090314266711141766250897448773441857975012243762482814791723822008433590054996033890532476441213490338482657528561205381343308247185200654247705301973506610410007549098246985309653781518266408929864768649038450285955332455694691837544472684512720843006100565475560601864047931812287508587463805856766347157591609063573510035351025162231551194426168266800501235172931179237962596406548805949842530538156493451868128425378257215325718044501470612069619407482537881347691407829120909524555987843423687978336714296489410643441146824545297722430413847393917292516668335574007373942893319702455780349602388396698820831066088235380590682809104494818275016546381400418760902004614105978622024666794076118512631800445107963728408979995782960916602397588244164665541714620876749066698215993854452076433432488526017495558039187332943025981157863615661480385834154851733311586405049823726520239548442743777618785233794130149164585828795135760072836191355750961985843633066601969832161866219705598622546082726056013494559811913154291080362753876344066847059768996224081479009031796638367284527285554695809514169593862961408071346864359244267618455994347456946059404665277721611596840919197464387522803061521762983985883766917632465226709752322512821976769389243132960488803049008863679593508162308001119015836962724275401666724257989870323647846935586529631766639621667354391033240845783695270169469706747905733745576053715411690980751552926217779643531482935567860632939805773927095745540260470319518857734186945657108359840386477585953107698117901060935625687043476637908316865933139681524844891804780498659812529305406218073827620196468707554070715693488980181483765496242274227781344898698405964381520107166636941679532856185485203252680820685354472809535951021013138720810692792349778259050668425560065067213289617062217992452123076813533618778031936881996704632650115477746985485935024556914565554327980613986084218718530406153876637404425071923819204477897012383020599191063323967297786367950595940903494173249584060364259002267046582170068139390869954278587269047620962534912749679686657476084245096019552068189629937092798329410436753052023111891392547140975346575878344842404903470078097783314834503391869897763748765851638934321281551184149259540862096532569822221085114058359068840193229560265572265554710309583786954461404922988554656471154961852271330405880182904556330890341862118845137014298836154348486605350923070557341418233035133206846701613135405835824600985888438510962266109110563135464931323928013427044412847580105254161218225512973867571581589385635684196032330907231522025229599046730260815320962065315206098100271525730681184301668998936385523295867983563898386192704304528927143212082421033067453259067653157459942959549382693876461557954376138983527222933189251406549960040898513062739004032722133325619212700956414353830711051120158392342030057290909640634234488495145294781912663729926429474725051123837991857299814455386916718357828875006641159672977785072758596042512552352570458694326401664773535908401993961525381093590823760211735891611330213780353515379912990481288391582577019381138438428779851140517956211514061657851129277898315800823176321662337068750718069590990821116626725448648905159154776545209121724379012711932878627987469661538715376705297309072257330194876783224095477148533857479224818244723835231888050476107425158242885391003510957330258968315868590081625732145786501009245257519636217107955421400747072816603450878063780128340538862896566027302474600379691965114576987017033255533784864703602462990909558080140538110290518205837134668336282101430386198269353995195358078846496588599368946941828346045847971636238281023491933216875578975828850479597727859471929446709789402885401066495003722812392097718385756745170837546670552938431681311607362251877745809554970486644594511445482492767143421474213247281086566982865464375191053118082366123052191126755349639039411034236591506003907570330296931888130767684628812041009503337170240974988392192554873320367916848592038246340744940613911351215930730647436108266950761576369291322143386612667148962092135085036967477911692474415841615991682903622792963815253918306791700473267259003247775750843391811035945499251372060374026568810516300842636054050593417258804975973418605417585419521376893408214296544113786345205358238596004095189776000453045394168002238986704064391883352836713669550057915581156518104603232419890380354417114570139447276842357649112883241864717813866930506699286397162774953552342718296500245863898462600549670673062832517917962214996513905953593709758209960411103485258211789099550520629970199422493543704392878813871716777613292274888861475903951871803299407357936571277319155279616452762198407648123679451085307039764725201357126523557463282099316377541217485423734526339625897410889676093227473684842917422050624938390507630104277466307907137965662651451636568603504927827359239198540153994979747582070375714200347685708075307740105310329084032855908890661034166513386029852280939958392069567350849249803291681447455059010979729415525314625899656138872950382657324808892585309943396349910269177909374084882176193871880692510651900788032687515863181842590710185234804488807723987417187946408590342526491331208282355758592270702093445911881881059063796156114170407011269831213954146431479140873698478215920915027767376150595076442993339636376187187872543332194533702238540021459787162245034697929573982618230770350310326698585940502232875081618193799681999997542408226215222356606108452985002901723102965277769557830161532756941260531095933528817064174388692020635960745366269584771176151604258468994325146864760594332842643007046449945073961226801614857506381035532372030242907109399431530716551215736503861460431635470067033688132302651684388182847053392450605041887594317617550292945260520114654430518176330571144652432856914585530037598728396874949519912757520530991503128778580559061040025155240938591946840564262937660233649003495494437539449712626147910811363197122230113831793281348507064299853659842670888405229207407385044268756894950912416286706311859103634066837148331966374181707406436141995606778669574879167846686910470515434458587801835408690196977268409515797059685466645234132052241653393290895979112577216550277662057863042029210391458271481372901558558884895393581371509777026166390329426335767007844084600749871263125709038743544596193399621236783582199583094614858091670009468755139117941670835572832132027452287849871654791993346459715772302062505509940947331511377111034425121479819546204850626183206758672331109701354320584849521150388299727712029730482761590274341585091418334943595874160645922902855512238509233660090582030088581038052012935522025316844488552654694979196356608112561361958061661720629866374719769024622514445790257443414743790336159685941735581214043210811287666378621839734975773424266423494475481163912845300203662768195099587072236628587854333028131522093720416415723314203197281564111928048033968206332872631716556257234988223732008921781832134778406428070494622859333467495167115220346846102040589732331869903109059238411583077661494457813699266834346318518115402883382672456694754478175394028034800751823686802813225074513964339839379630836107454897282963170488112975892328890566542215870254897725000470621488456437680774045043087231234146978781505790847643542855512130770630519131896276336290178021170561214111445370924919962870752898332587202177278742585797850777207461630142950314528051367323517866067687945257541800748579150602373346216562965832421038087622994960099766575626565605386265679069964278761889224365006787353943424485233645610021335362261599785756449522462181046982162111914737680079798471098627532624489892112542493229443945495085215920384925617956814292583090960700118102241725011160704241990804136917371936709537960340347597169435199947953536982420862350822632197890974018032684377897973629629477388360616539219947158396208477814520885723387940625149276997276573444442792571295810853032264693949836292925541571782401364600581840149518022321512888373291057361088730940943177417906767785826834000702872504657586731965960952853693800290089264231782455277927273012732228602419609910532856029996382418238564184027273986351017201246162570664825956118415823771809180209104675529998604439225424155565136271643415100401776340969727698064320180146367280037252960109084617118678098325021031595460364405217688201596530823957619400171135721308342963485377405277135912657790370194265718538493983487927781143542265657287294342621680699522993307879006157623255681714112142214705289260754981524550666861081237123814777432041854982366482701451419496048875261334784886893538966679933731073406568303904303701233433722451552213957665711583858867978179495910820064962804137551320311813368923536304097123209567784313104839830346210224420579594293271905345768259265067992070199540622136898744366140839031793696582569812596400259298647159624521190764284594249791556639133074410746324581865229793286291735827902512255984795775159588655679515322658162424383700283170975717652150044062751362767881825613032674177693764243797399295999526802126392639180484000160253937538403370798148580589529131826128098109435027961196898915863670213906161991067010761433684990874709569842556267582004936264001285435281213699696730210878186199491170814456339665075311477148923728814244185852323842920065002064058703847921384781081278215025863875320529283992443628935085478721488074694109526620718910043323716640048950520510052141305998706735311142789035835223384717867474965527078103165823831019458044253993704227444220133533259752054333390130873268755222722434782164003849612919552641104518954932841956663676836228055242669695230625917911022828306920056071277330239139592745556623486805582422540686205395958367989037485126292616409356806396091576137580330743522298804671966679339219941203727132861547677841970230134410782932369401140795460414660201309898391093769913697332262192704255798275195164307458524259761080500996643320388577803540959883689377391507537397430470033380017387363607135241462582982063860674676058092399146127043609466821801576752241741596680306165651284078491670317517251851307339486488315139189249862271070097076053957773825319988434433862670408034021888765116172625279977725598344218006909841973410312617219250078973562913413782806199141239347892185456157888240751146445944808113786891581086026121765124935876091076470441828548003369189982909892281527010711730940127684797439479105454543360897376736419891727847980614834120077218899369047931794762717192881744513973513114049986208131966364732032082445319860633646381916503033648499707139575096917650124483561746416113016701407163649063821656360620527660240066203161724439276680329819624016195217086221312414995103055450770641207546657333386057080720742821332132543579931839006873908287973732150254162138468164317145397711566367674168802620171419561164520706825587129470746137966313840107045767317148415790383066967212086396635948087181880759369081128963249884580196267821377484974864131594343731497676579954526826153409861716734302921940382870806448748804213847733719281891538863791120496791012209095002291643731287725649823903217945138425891121325033563597553997607670562220460373020773600053239159292241169034955295263680292251240894763466129771041850982062555181619037379167645526236695525569049308694960143457114811109897140281658091219474234144686203587751458390659780179618596884900310686491539577483972327168186213960660532656924582845752472679732171736247349132301053877644103352705690928853133649898823743369636154998816058204778098243350880529264488879603698106736106506932894202369616045232929617715647931823389661058316938083210869413027086703179459140077543584534927179191309960605088257539000621229459158834346667093218346280853026135800217938232668598155612217881788953402935782456155875034777272108631745524375490173897779139534282661816700186530225681770824577793411638421035473603541978654322092800443681664047283303993939188131355421681146806523366899355508663245767825899639249381878057598195416092555624483461575973549306097221789740260045466450033086413326316790950443501568823225338344899433937883327085856674491008786579735333408603642908875917714739502024295719653471219651929613899430196058056490906401610039300684201410743693306711851712239771244031548008670372468203066326813509388776559793115227506201125022998039529034605508614860239237997447149938026660928142167123274662011422499690988136003683822259449827785431254341860733081929421534668423547934608178791051923801951167985877008987741076106404428446801740898682831893106036187781042097646295901390265773233896309943524996310863325804327296709987757808742095537895430665148652785140599513730960495301655218548828172715717281174200182188762111457623616042174436144659049075296503405254004669071552918392640768040342700093199005599524417140703400142264559949096117910001465299650248808071058905946022032697537669913088276070657060258492572763252319017538884784563674296280302659143777296023494782909288562501312256124948791513893053864178796337853754793850169422385213984349304994862400175128409901538594042285221012643136850077980844623658380845404564159040111917416563585145557752437110939576845380375457976241503835421098306809109761788061612583159639190012104251697816400220131179062648857645402814528508909967111251992898592597995718080028033562186900527508680694743464837401026835294797869613598182141924925466916154049788844743460741592329296388387032694359588124849921344336354684225641065404124463825684372470502614931817683405919158820857805996979779837740044194075703862195591916853493780002999965117200023122352550809424005904453393177648137874589546353238007938013389568711265099168390701432004714718917034301496678260631089791915096110233524157342785865320016589883900592834985796016747501130566990339213444187335086586836738187834351182869894683270111216388624757500594540695793167351259778610043605857915159943270649924599312981743467534862989775692681155573500473523019846669379183269305191371869000150618699251423615637478768125367919292635577591692897814138917704611894467433650624650676101728091767270992952417356754620602599853690473196862851423425731410945027142986751400362178268017498610118883147736046168904909266511772964998922042802559881762686539636072048723368545718639887649616097279430745807508564288461134793058776226163424575204898235287469136670464795681910933381799184259554812799379655195776060277061535606679822343379601034793716287036657473676093748845179410676023477068660675841075763805140684931464897640782548795082759664362421169616464722293400849741209328159956408023843127031855036346041614790791176280609259467409184194038400499183683607524623512936886480531446364516067776040032096457893233477933325011209075474734757059298722410890598844436343942516548291781040249087336960610293700574443969563249816559107768268207412504025308298505000412982942882389176376426320418062995783026270985687934321767259399756573364125698574099161478632680014605384101452982506257645349295774063822183823215715546456783474285279168873813790267193085882509751084543682319897356211447306895340981885880601845766807927195746799025296693058158119575134011047536263637370272443383857927733888856010767398228042391889261099697529372288937761738743977602345777701002159961423229868114153649806595284563136006090385101953958216028362941284604684394272055528190645539317061188393129569641895419402624800379726066241161210964823252386779619027767242269028342069291374275645888600923823585952349534882959125928418823058150087269073294097064874018089499180097509467060596042058919731661124119232856346032729273137746187613852104174141072795626088082681988473173718009166361646531290505126976793025786583571421029303437615035038386012583523428063980045858916716855268015980367668202421839705730034183710739712189646734642857810234156361350138500308653907993328071106127442110572797964982459986607395413737880469098506625331451429062380754270633983895954437318949721494724962679321490045962119405860649383337561595640842634738207483322811942995754676902089926978435208810366667798674534971956976489691983372015975085324573250493650765780859922124354731584373971389910878397950550140482108801262064012807281861184446773758739435238916583732536136670656527631774164228750377522297286040431539815741335648892400619314053668260781788972231477876095903447339469398962332013663305058118159113922455303947491984821919556819972788924816846939099510270524122321619671435525721522893712364325040971804163352493655049069202799831860004478128158588741424592028561284231797309434130619167334981986965215342757709272994465093149606950542746086799690050240619196000775715603874592360236365833774453264856008785812814252687172956136046746556885595745585274528362815608731783730282709839004218129464287330839728302471145708232732865002647159782250668417787321881963503265888150225310224969841045043881627306637688953547703231424878254887343149075633774835094190005435293649551820956966374995213506958808512126665553917214599737598088857353787739780073320280820741212502756368586975301318583396228664768206947695803347226200309014824684430538669533686721655908208262163916170390461699504950441781432719132190902660271454588403499952743399662111782969896385341501987855132313953502685770353302351258135266332615167826962898284466818059729028291437547406277928034253198994032222487402127821932519131027953956471517311284945516106982041891512101951631821547117322475930983256850261069162574989339203949960369654672492175825064725180480544239503854100729461452380409547677302223488687131048631412918331173829571658230375941361446313153037278042312065933013473890575161772933467011221528847090885792860232995459198001873220473058437210703292220770800011398448757115802429817609398547317534507535348102407282224571494987896782795824241262838607721718236584042643331076516860466503239199744147240117963573592336580008488703654815810320711027314216493817285505470604071564036487675390325744139268631298447209154340136317789323502184881908192770647137031734000300721523098873640291772684447857409714080431347103358864676467546477996341463543062675066504391500094907791134980699490947607142582162654767982852952163702555154729248876145502099573216320674606448579397374151729690807725086834290665555911361844743831534889197025119024037483458802100027162573515779910484934577915482740805940189222918460442604770277893774414843796492661133715157191992584488467643339551248148141445034272343166133423261443693282660052584118021994956206180740918620299171101896890833386325201513214277484579914925562582841245596319757126520656100215562756762970816458292661118546270738814646775138727226291359636977243861668784669905204891373942354046398361054146913816449782347307056925091294827624404547456974311168405709240530255906871103487560268756082413870739147197059130383724293533976667586490664067518405578331044468896111545221463664773810974277036434336887274702845376760115518085777845863179062681429925644620582494206499137622335006124642041991935870280329244592568849495785891808163031588205727978729465959517045807608665880058007366294929636310297000760226967573108751889698812321218434334297534895329721831427485470405966191408986936820283323198282886645920092240167447730196405597272999494154626539263630031386519300357694062876120840479313794494131962365757046194264019733225652533092854814234690365480445321153225703226474451612951451894288013844276808694932577048069055925079753573399531726877949355708611160818880444341749144982834049524534597003998774896413421698269071171397243706998037454831988394215060010249631796461302742745118212531009995965862014760258073994610955578789638672543752373544836362645784990963523206583228858321322104207908207596371337961365817740336939112012018993549402076206031396614416900753335370481807789856449815402407002727379947279378619917752825909774124067591876029189131558846127337244124305331011319513681381057584963734558316986303191894472778169852364105556380484745329634558022993385978824024739090585451657353284077752584330677660996055058614978647293264846858767168735182979315363253775373522121419668361021324381884521642479996846853381708413217205089597958206857528738241875267778826883065212725706673885817624364931358229375260175288141678843648592467604522249505369028708385642922686131129427723053900140133887032810694391138033738966113545955667808508356413744097890136032465515445654900304953530608659315673817007636137506542897057557625778445051521574955609107343623776457049603298860989601760781800745199745457617779124508073324017798965747494425034664648662231715363222179668887605615506931743160859528895298620886096943483613414021276802512665723608773374895223187957209998905596341497626100261909705784399500474235801798543046769153343489205791421380974949072330791175606386038990524466336577773293430666787709491447459061571092322261401637530490555992337080023740975817116594663798380989446964087919306942743717844086485387310993854430635455081948383583755047163009682211473784336522661124238738029229002799686375291592074899476091888053677255174257094833241781726932839862606444644279583631888040526426347048391955794685291518894443456523816530278161123085922742529549310313736370937442114246746441898331965987091195710386452054084371094427539321932942732781785898653519329407314369316947031258130223435283360812979076525250724760612865397967080140229761226806553791000581557608382797820519408156275707740833812033652221044824235398673383188260567597940346237911466734639335592387577334092806014058798973355726889897050388192490191179323803793836786140453915677734208038470631684041060317333380067521010736529083659195296513883191777600177319906798813375161417571532608573121470446301022073012834130078322253159505698150840611835838170700786286348195081759987752950696274028768442483582743214674935211577050146055178001201779169129831769858804804132027634381008472196741494958185428509764345989839886469334294750813102916686606072874746850212357111212117479967036644637891202253336844268003283942617016867686859378145959206839299742094610955141313179152670702884481582232689724755457393704326542246661552546562758161775200966531588745882371109031091553028822091614168009096129329206051344790495012668311806442566134559408635235366352411431208703869021508683061340461796264653312507848797349165370986241363453765559244263603082860747342452319479455278362852189659585942400704712776461539562254234072034831733149300274884384410498682170004207127702097902766083540561274043799184980196462303673019418930675066346420158285552958787569324998100002374697414388265698649975764259584818942219530691583503083169012176699849076631256539023954684408564793739226573141093167920012657271423806443323778984977116631135439964133338987248218026962308679076865933186413758033562978576095036368933720970054299020116829535544806590782001646335990284284234223069970553573097915220671190863620559603118436805276291879888477183231257856672205231284532064143601585554490593664010522123776038409752793421780267593810351001315896100940943499338151244366244004662718578536895050639005096242488550381600341181636607843265705425603865787731848923921539545803335826951208272864756378025590530938270268139434371735089808370121218622854102628747046457526989910354106062270020401133559557785969072210934117127254798943911342750531129921824591260878027676192424068026499065914043906599035394745145694860936398130731319778586508987776417034594565616566793757208814530077742002841999846373285824963929675788157130051627667247298065233995347310452277222888297126239606801420467230984152165114924590180566721527660043502537409947550231472045557222962743796866899666966559574970794103103014089692165936516402877660186401099286865914556519692876461353906246680136272129868637383262926399368615811390612040356083790903449466947211542491487335740472615958997559372350975846525702986280781793394834507016744947169907487084892959662108821126712576313345217544271360938524128530337017926210156344554059357668308539150496067179071557700307729880286763849992005762682855249280470124841656080075934738065114930921438537318193023600571051871284662504478272828508920366583298132754820891337102104685603743397172769477002177707893782720834405401833857656464345747814927491355694655343288428814739277945830788624902227601761308655209499352883593502326837959296897758811300961313504639961891493641899327033522655269422307655146774710001917087516965510746666235932291889566578943914561865105850946679211901887234766040976077795275604006231755922780076764158853493494240130636904743392528570816197694340951771439023260028020441728721358756102416971640209033051524102678363518530805175023536903929335356642246808893186336167427647771525849301819679597813598266931954930330223393571928366831019631374834316669136190382046079679819722209826102886046729593124724912339704959665651509082545725371646258532483849140855693968997191216296290945532950196223022697448319986661426640524433753091482169981877884612180783576256667744848284691471954214517127591457293940189471698167207687396497911176242889206478000649889619137457141610688571065935255306667965112014067169668218811428915078284452736228769832285780901087822706050559309889855232529767677761729674545405320769318585172064864061407643226938398271903927299892571562651349664376760773214382613550046366450504128620092938061561179442874509062496285572855973506312266140519094984499287185651241659554542266516910525016648863005246322315444992009852269918313265387262504752055392488745559881467791383702294369554454689060488566928309468268246294471224655456438991206602286645483807140566045704691846672329587315604998148100533721412262833379432283058456312873723675008071828207937720867344239899902999990183448304019475946821257715658661545569206064055690162134408954286145672064985372946855137649374386986773670555522252717115049328751718205786182534947558774332811278132717458884505953574101028976949373149031226711132858947114396062450167935080814995712239535138734297424372022449122747508742213195981627818642420185323185071328582310419396892802422615780932010717533541311266095783146309003518290447973070270659032389945715481818266563430010158671060651293712698290201805502142133904738722456517301139564411621139946398490600408096944329236210852646588123635170847366017049758841062972804743755257963228410406677298666897657008845084625814629269546298104097045581532833161262808514084656365354367269199973304297630279864483863180041239573398666254953897527223986089720672097633833706573075240976078300082146830976356172317226809365224102065651521749648699889917168017005798376357711223696844384812557746351241824969077291221769326574000814357258064028976292889184738004357461827571636476315774362865723755734801411162958453444413944029650203378177713734037337397215657140768748381470510502648494055494153518668340602970627753703245956633605642115287982314336868470343104842204114317171276193357721802224439433895660943836022005019017982505834087648749399238014245336978575421926502483213328591052167865172546414419601110445130072527416062283802564021341570479850034036226176019572655753929743033647577271781985960021589539727036962434330633075633307981744955609412035582136573824762780873501342778857514091218332155940417475704180147204328272418174295288082154904287391345977629813524596324838279198411891267835243856124232440869405559098879045602205905745618253541854964513794247586080443010064955024467575605259119352788128424977287844143527268360660925474652312525025644508438306486892932543732122792743327485555969609204606899594244629616480155983941314056707141678870682578747732261808433566001384067123849831749578099666093511560294921747624351408948047043555843007460128388512863456058906646055220344671787444932974493494152471355640471968796757905518202695734620020837149252499688899734349945400839153292319621191472414456358561022961233283757443843773798753916043054233855005883061152919506151880191782646030376927560527875504174661377189320858081748344258917879187272943831784188063037217012640850930293141741385438627633432085218232601680241787932225780135232909107261622006157984518505122096662490430998647866520270051395966306037524570358809150991801378703261957665417182279114267486657386474876368017246468179863416216651814804435724267088263324602264979040653585417089302978868268939545394059694812904681310478915466877099247690303553458289311658437522337765448066567963123101430615009970798939578699656647922577404234908549427450111693920426400774162023936233242432614296249495154472711769382032590082665197499958076139618014289418302172871314529513247999398563770102974638562436523338831885359786340058491459232670549785275647628421042065009299032916938765850322727505571227439421677382450774705182539886519647330652759428560084739360660277038213849367139894351680845210883914484802769082781217009115066934441368383047746544287539128693445356656395576607071199253592584074642265900529992118833708244430639636921078344208569906022424962115722545892112683052779946534561058823102916549440792848560035333687484944242285883258679818346861203971822788594116245743508503365067822374274659889615439241631213659036007975875519881586657725053620264653578900106920503820379470388874185903705768581442326881767665139352802927648825992144211105278735111552677818528852018961117652991867696324717854269307057336347640070873383574845173171058885967514852516804144595075119187069296961328383787736029788007367414957301133968889109058221540281265280949893524595149383130882799051401185430486658098578607607762713744746174391287616472356252057481465951038203609581070520462817382802333479626882265266327580689063999280289381364535690478914128424582411205315796098293101621872163828628234292229472780330421196319406258819186077616255531638286849661486335053370510141123752866555965184513616832668149031010973887201347977521308395447444804320311311696068674425270632292918476462326776825349465037891317626266688725699961414771751334942900952888057102061718157757316428020501384484268567986266899336091469603727735176857530065332171282349074571484603192572702543967186725530353416641964276530092615399735970258630439638155809544464126390279996496431970595487318183157644132175490337950542509249948174219206777643725639307074748835340338968267379916076546977686620833643475652524894239665684386246877468539041920600432538201589374274995317538316607463632249419051923087131945940998783855644195304275061791641934023289084096188975649214984087153095658646320315259683621512167386774331294691895306323038676300317067236394405265071101201876098367804928617294843010328117457034643712491776424297226278988173972696772272704844568694559499343678005621652118772966456510549242138413707164299596531012089230239395401152359190977199684785658220691109401665215405155109850603217356150316888330581099724647738312424112566023727771674691555528044417464843510628869212434990751264208620108362980490074009776365666771975602946262690066745314899619741328156915444053350988625420345239730329875747589742456635355439770046908971042055440157962072971547106604056285478961249119268499562329473440110720346153488790935057178501062536355031173554662345636916773593066183891021326980290374160488361021914621578898599491647341155324006560834100687940089878338357793946181076157804772514576582421763899127931753108528869149662048475857877947366872051335247160829896200253725967314306039620362303914802033125911843384260000921251206543410482963948181392198557982592938011827408587703236620625391338651851535133895999351916142252063333969863830911786670772090540174376592494194116178420821533722694459181529097873895450718999901591391925860403872130649187941861980991231228468504339088209214368460547722939436557601463427985205635756852719042228199342985213596145520847291534648714903122302483636491428757869993155232844688687306335577352578990507782213677580528601511600800650563073424165006699962022530256870360406167461231103100616451593218985262340630570161559238194507008065285677097238188138197007397531359419175176163507685761544918831255695609071355046872534809539325374454810680619947995699376300761495672127408426051249554684227268608376726872126623333565515385633196945873493489298351172802773923318260415966579299092117883058336568329073092782600571109875736816289069750940520499903227115612930210216325286150210484084689108290737695176102932761385844472447176496062141308574827878064247456008089637604154915705661050174624104507380918249547471464751758080434358421986800210646819955877560921686104078916521791709237947278791005930032284363523614182438241323492431785922730525666172934769013172126630684395154594209276164977546993477220810000908048556476132059505829552325168921282643376267339927910374638390663195515128821689336921328994266446633919448114306049177218948239341723962045328936660445978070702051891141523458830225325200143897414712842197179750121049894989771899439206534697954993587697216290863644797817084508378289936597616155562866113031637831979134873921117617297148271793280554552678296311743887297768508837237407169944738831245038107635696942005866505152994566938333187488692053091780636416660063874197163612623643707786007023241315224378993558272442330722254482216548708043352936451630221546809054361904719210704011116382341610586550264134025182477389860071076112455932313277072757530236101212191043384126933561021732151239893475466763892609324479556587785953988557800838353538252719441952954353468383001280664879134137966683196792822176456186497041758220563443747725404246552123877588123738273595440525592913368419364128842891712617889439848813874170557712923322011621725597994907598092144030306789757053212437630224683899357664874528591030222036337359196740180044408969573760923600409957899698104365593302494338782136797368953132050433693467787420814768934543764542345411682077762646056255555488094560156403751095245752363110801066838116845544632761598828818009237211286302469047715236009122534681186505441113241801948898083224057531711061707548957374866838436295182253554935458082564629397665510088317958225888886558567526079806825394581727783226679402324477835380939110946728782791536566863860224572512894367070231096935841087095918270390786351299394116766288401511591033860674055338969788132332282001220313901987377324069894925592929889030262556096125454908460012231968309753477836775783190672363279104574032468999654544499875789386472399525246213897468205321459688631224941051862940922949400726330854937598454351378903078118186471615589335892188470315211163230632365073248879935799823545601389238851461868974374029328059651361299494763525347013813869860007366229563381688576199965594124229133941672306579787662485347904832225138542544148899203899706758055354060764246458308668208187205327592287776407549227901928131299687617315715014533403369679722534720907804698709137047525323169239159597690228696990827292365773716941341364994515078148683941828402556337634816955103134943039789786099668229302256417122139082962510177880534016339875303835320790781017544688806059831755366339281275669459612962898870014673672620569376213684963690969539853389774830999579309420150260918469537105077290953413020221554659035918620777966522132187515844583433904811515063538620423791353212881039737253485819374696369044627417654487101844779267525555422153294786961756149267508758671295567817868419524676446664397658109142964795294777725195332394703847968450532788983403351267661684571385648762828495304372899470842948950366716249799594382908771804285680535074837029971063759065501934938031177693661306745362412300656948776436790087296112518243210818224535037134499728026684600575079503246104900948959851371875706418873508814876869010077692804738480902326149004106139002794206734016809764968411482798021948886971909042413043290229135700885073453319120391155160136944346242373117836498950387103466763252979757650347282193215286544852865968518668086728483723663075880933589765640748992171109156399154317233386205613812762274334688246837075641473281759491689250432867998430927506491717190623762395507007180219684223101530926879589839948842743240462771331076980937021974466372594143901378432314449402157124611193723583959367129487436377705534880515014859137677372590728906373882319891006887431110121260194457405671929658154345890076965436283575724527733010149826736382860708708976617853750248700302922579605877965505093817365961483255877725059247086750877704671248357486560192692432394761603101759391228260865351715197028456771081424145777860696195346893990034926578494968761765864125353740482886705850346030533107660386888256498521152788298841912135565657512275134665321855234341666027578037445406476212632522039566255090841284573056698628734707668347645278895221064673386676277687073438006181810956373055422551976074338924076847772314699771345861394895627177618618513858011912158302463418022864923932285930169348721137176131355598888582048500208557498040832440526823296618948908265158169482572944055954327528882121417901343598024789413850839289484375296200410167905513198642038986657477447817946021457015354663349588654112900693347128136579277763596314358341018487764311737730702362867760610182105895183684896088303691651535578105277130521071028268047969264451403721142048522713124424690781646705414601710712784570227911596662058170891767008340254038174803404027249054161341112428739684277136125349927222100273238728436663973670305963066072267662651452647854439051952977713523042879940598647477984977848847999459836244607651248145714044408602500142413155046934456391269852477144277996097530699869927113943417629859624853971960986368236318336450427062730402516042787622619399954037119404620219754512103697730554170812386240518696126530491987165712884500109537559031727907987284635173877153384014190882281143108778215584235624322253253295799456861647167433287678633468240399333476120785788199449172366734693940636809223592455750481059884719727370857163806366333928363859376695487938373541790977138658934193982774925435868773747317700331644468559078229258439931008651722361045750706555276837847885831900168364537545961077430895084848879561450257198194124462700947992110135150945720001224499350483814786150679118929973438623795794634244468030604465787327941219694216410474300643524552324113295765258039717022158693287685575177485046618091874367793454733907084835779790944516737611818654666934948253128054141057930159904500575209282883123117468890249534081778704760110414231089698178871662907358353720998088702530104464824234422149811238189183171056879765431234399005832231656806849174213486532973370840065191036230105306823441646949227751191912828166419264109895870842181921667846776557441156563150659728811856934062115919857817017840598401599776212065560414456448179548550550856549699597342963679855245123698311648164574486669955744443064985544045072137774790860912375113489041088431717258537731712991786512737174504327825562914625327583367008969408190771548051789747545804198856129433248898395500430979735324273144852235554483186864579005460897033693079022987821729920379448182668839520346817006159636890163671558618587273232331421969450977588033055043961876174781419374171041069414949036011755420291014629574490438571073869855587916824168527547977522681228583391523583999654966411357949183860787612983086415361292787543756118624758938262858647077553472835771153288339888552972726140469960707267626589997678788612168577696410625956444832210538877331834105423465597495357061125278268058463052282387048697642217390995605246402585202769683053072183754548212105483238172942015124040318311548410648129228635900093137723790935397901408393276944232759000293638384462367014587083979372180731062874248993995948656237746934517734774475238527567538846611344581209258675434889946561441992661146520975490779778914501652999486037777016593221532564884527917370500018328424489815004669510050050929409346371714811370643098717856299975932831820976280181088484768005526832756562806637390551820072488799092752119376671992305354098533867391860747342885992637556682997706944490696731659252976853796407835796599702843351854822546845729252426832831460417960428268181083259078527490084715716866165837487763516615520347936226025117598659209394488255718777233657724810972858990316568506576428873963902856479624870240755602084345668442488636204993347264715171995030902290460795026885799499335975617250670809712536833675099498603960344451848475470694660270372349344192290825305362968286617671239610829980803998131088646922774097789590728420958733323365913250823512510562193145273408254150233930921622105759992541557908861392054924844285082034540705275913743349873999888060637398764334095930880448766374456665878990312075256038482419573106024603513754135159620796026765699410612570799668752295935689969357728377004859396626629308630271124097962394722583398408541799173580835989723233288956370525045148151432547268603195302704642404742681544317428923715940696918089443349080422841638814445045496576424981795798542989049041269681476773514182779284148995636339231935763993440621671000333776659719456609273074439356739248231141254451698565007708628951051815437473466009905168684876586878444584121260331321722440023347950076160821710156239222600430908347139471411811810587350585754972895410735547105690888569188827863541469168268501726945576399380136955048403699000174601302544251669279700201443488160446105045209612434938064007069080516056684504747539747091173081895894603603253015193732370432451130498636254253760328975341735255358258264068768784296105273103256134575871207475388095545601596282100970495889666268235176611659827897830463542505404521394282638565881889604099164032040718439790811749952720220434948248646846083282720768817774049048941311653201496971454931997012384872978296354634242463333284928469483101081515709327978748277311046618109055551898784392633085403869236247304237268462528441947717814347095730709199693092438837356593344795386862539064612577785473138208440844598757010862300909127225344292139209850212535664454738794260665093508657112274410563450678008951728349760393314833505930358900644902256714549362397493464121010514668188971554580296773073186780027980597523677613145745348784266742156626416137634487624761667075167696572800110851000771572589593777196495211020890100565757143097932585540106541499147895420154529397612346810674120644221558874395734621085905301365852772860940852236178198172287797960125665425664510372555324714872630131243323476010125519075302826791051273817004887864217101568324442152924821662067616283488821710607619764234428511902161096419724592659858330976538657087349239913933032108893169197463802955009865171275881893468058720554803324360287954657165305636022794869031297049163467878031137525675631560685505787005539534819619587075147856556738851445207617824833062461090545069020870743102365410327912344522887813197660240206721209413142767485378052659094700465390533986308886163854161143070439694050657695451240622831827316881153551625635803908539732930655998704167101326384752035955900940651287539813502585408436654908083702460309254658689073838067714947502113049881404970824228394736965633928679841989222196656040891270520763070017509249496586161576613893558448944618742654584668085669754533036800326812649341847928812263631039374900685921102711503470535740247800084871214030740790933162045393197853831963465832938709129565046584186093209399000032741960540498480918700017860069835643328869815392212105969865943182357765191135554281100380195519706639737055965354131002677174424000857048668861761576594086286402744813551585331622687323744242121864153919001748980827437510650618898956829664678268648380982460384725164849917447920052965734321368068028551671615179201358766853582843251031184769933858875461730382827134739775287995862474609787128502929308765014740366250042681839361595243514293065355193843913677399334713556239520480363992680113829850033632902979755963299970305081559420963222587467886395417241080483215096773243214575829973444209062797137067162031615408662239402626332045911160586275544494426848529148633817533267745488595729896760778383193329609761162135666802144557791873671974269251827270096079386786318541210588463112492788223544218809450758915441501637038178826719228738208303719761935484364088505788224173822378438913255185634325441217117368699448436787012397711854801774769872359587659521839074704212986930741496070548199969794555253814681005206595954121950637652071355996225449671271501630792016914777116376430725787734458154685832974197026575446293975166408173270070343383035584854921550607463352926004465354272988031576045879009618434358101240501364817763189757373250996635171201026563739347820139209646784069927366822203411001508690011421135689158697992595460603212968995618570103469065867616002202534721499165799973347269640918847702928540416886126301462853705608093609997899383866841675078951845158610695534029774113589602216059463669228338127163699916681435814107715052104261384316432458457123663598125939343557159079683843948937880412790042503601589439073524929085976751041463302121713415609425074936462574204540262635273669034571622967616623222550954447611493556887762137543013468733493689704210432310932635325483489047664839404900923005374052043508692473519020577563984029337979197779142350883032820908060787429034536783026579083190339213234969429632903534584380956360629002190638938918380801918345983192679628776001041765002989495867362220447745115830292827812628140082772378757246623845510896415743388539887616255744385207367657234023106840693685411491526533821413583668017118167210232065650261844459713557431906167525563610422332061020514819755629451799016177916413544327869664613548545812973445762056563320365593984820378230940392524393471523059314559063936067053882874772803708421963475446868084792862442978329152571427655256718635021302474856032873498177540399727524399857621725134491079179182192968682068716368240553121765449788018885875059287665056283707264272476162598086182305668412415541312816256417472766805790719202045564221608323489110731818379110291700441007496289688729855372668171665779809195049207730834484120837626993512748740013314586156695075516431936585963490505306327609302694125809535483747660370584381370889668926056882185739772010024705732127778557078239905807194428820836267520243187461680759605598124105286573635906975089772553189522066338634418437626997802996477130497260187183450943304236902290188523872007420361987759070758549868278918538174793146238925811091214779277544493899711785703818494599846258222027258552962282853925670683580610532430169611774865957593726986203662745507139960212211832294902676404894668852092716839156913801350379382803209047885408848306487199662380426724679650081749416383736627681377943904859949755380360650126842275444588647223836679526986860626987822329827149232385915071327469668657437258325952356362052670059145219449484096512347061697752623814141308501436226093540752151896759091195693055102305816473125486769387572178452539393839385742243195660207618355071498166788119714430064965088794559134208382650376558597591465402316302692765269274998501510799032036660823429529914388373038073669849486018438154496783006970668752225382748750552977962972665545886248711537927847605907715016527654555685558765169656656916213235681824128858327564909846320592008094145178871061326682069413130553310927995877600371478458907421740424955669463899616688466923180527720108003569481434371008985253224687793614330974004602744376195020848986951779262464895241185881836001218331392230748930835369594084470136752148906769226092873266323907821166090790206377181463837494899011208994432574984289469143757775878236620751056680674862107984538447977721807816518710406403474162341280661161166048101073278833816437489406416594929597668960629382552628410272521575411546274070061895583269062819996700065431134813575371105829081429907161993112657431370656670187014472708667878919869571332840916844674164139365985309872593384126168549187589479855068099087407365464279303426518518581590813750967629497469853521422334625292385085186713358653661019656250601519882946584112198558807986988863244194178403420725816355040761848569680423020548765805460997953747635956956357809035302740935999191353393549284817141336897582759858854466775341011802284584660321063256206226029107181393974833008977447640109896524075607065095640908152530097163111814785014392352765636263379382318688875010077505360002805604141444182216917436736737935926322868267854937574805928905035390566210670585286923501395325524280075450417093387978145674035658500704332461296626777328255379635923957535922732632236430215179981826840331832390184366910267008113340282635391109081279119962584213956598432587449385105723317222245379168662121338314765881317224940944981590319223763242681737221633227893847469839088160849887059075208000952158010673587361315763388363957785204214521580462083626435311376788850815752106426630786474027743880594698700854170990822930958157962088927670518571717651278771410519001448641842567895600591876988447924049302948068591805863989735191222198354656016337913435751196412933764445516889079847787173761039948198266285269883133105078639167844868021116152178377957684159720609510497963152712717092266062444504551940062480644071502810839056066043833007971660366539348290068951203898238069596483324464236056912160938028006128003395162972367525667225129685599077152047737104783316429837892807215367109651006951609529468042967694601541108576826661429921853790670231203018452972232682470916827436843799441943949487094234228050857844309110892930561186591594833306118814658931236145628019333439864443246809282851487536480396167666382550505159434071905688093542268130503540123138103983684569949264978022280813075990446735988917838636196034270381862193324415827634015511604327803349402492136887337513788010589289535503559531771811774037423696837517940953433836545522351183801421042055941480834863935679746060342238909250313177073299846462819424583528803200153470777250643103178574414801660357204729231279958499247678322081438149890260245136437161423261957911943238750260209066908652710951679788370961666625684876803011747785963477185567478115478703949955396396014617140814339959267400690789666798598452884982957346827511148726667542927824778523751547579646053655436961116163364171175441891487413495484871110376744517629814763072403309591268661331237361739293174197125808866735355473744258815615109098924463643181129902872805690701950652046145157182322033862281333271078202109504653714365351770156059195741296495395139794295324641190375176099630037865267688740879515794775807278594151188401512178664601651437995430805528019738593733507829928202452344829660171616451581313479497723992515747528139881176826896960298214005630596878813753798329888550172954660288010774306400562268712645802846449137527178758795296863725629260027499081271600273064689115934709809496392654091991206951039760601801279870010674355118216341316960795165875109255065308281674249740748451356876813253154692800888532790894064612341778961265870056730389711677142424817135546524128320782538142031459561577218018611547072057756789033619178635023063220480503685905703048471688844506268887062483886419059492457631815106554792570932093298941767373354600870601444946431197734725085623499437847664377314301310338595852102973031786249593933040221467617767208001923883586424099793637958183077664615335122921206124114819992414570322068163268591639490665001217617122072549592343240390002218555976580563648072829281552036326497758844803078076482128702857328657323485804170823486370117635290774809555630361703908989205270480446418489735054769701538674307638984350792541903696457385471769290745810082061879896247232519397707563444980618206663267154109068614558772890862316934872108780752415278706238231641643246134688030606892656122357289866354662905818398487765815999821488617550977334176154914480105973386219297849436124397885257890090952173373116685837714887123348740235295944701162694900960105213723735360044894156220066691724916499917971849968385969096793585541355827674842724780653997031224086862339480617615955477212928241634062076088873911621715565051128470846398647615676252082647994982806978100781953544639110749893470335376224166055448174855252701577070470675115504521364491737195455739604288651015738488496666535205016686086075495243415978094618103184393947117631011729771060151858808113348189790528355609892667020382979909269393178449370831099531936447587413751893400784146268277377483296503705881612640800295374297596681266398587744218489194653988497060076370124730956782189875595901017203988913777022872527392605105836354789613230642403355177653438771511429733019325856553171982384927184802863298370555561309517489412946236508893230239357673197611451637278935523314464540631212979990332753719754785785007165518306798302382465450528283550594685320190234591006096256775114746079469256269074168176748194954018215293512655213673425479019901132194987073002671323519759339500731284799994078439641969027981473973695622471135843525327258661652910486273266542836698990259814354683192644059391390852861696074615995520716480591183845212027515309276093786736468825562892805597165733584188927677359809075909329404630790151105931503845176403657092399102878572952548805458559955142951181639938336663012159206531181737206135679552283259588348938944835220461216702403125072095691156399023956354627331987240999956015489715253058826709536206582563953922153121194883891112049077827505110875638060159908835182122535733130478126465251376139770030064690151262358661989978856042821313284712306712957110015948038376415559970203617181342758743559398399334095790142647850917378425104550932435918668699369152195954932735039607890652341041638593967071249960416655660535303633759272396651635006602077555339242110554570806407672658327032883762748282849463422904083452965735006121680161998589416674565416783247963784183904799902676563440181066153421130674848814051211912713160890955678382345947289047489975873852829225603943660248782857067603472019197174948011613331507907302714994147858378896662154737380612051820500097108431727218696347399211706538231019667885694798627479367824688592367664216871227333392219364933851204772473880964868976556007751769832437313400183987544088064258511833647847948510294473920807195395436067994404251744408875198527175536461648503484268006266341281549286932865170369010605527600667752648706937199084908758133553319693596103918063719757528342521642841386962235909685882027143585750072027821798018003569617965670769513555933627196914465238089195557809677329324108688769061642805525267111947554726542354517057504779923390602212084700095943653123747179370527913790367469133379641056981031388431853948786881057910148272965604723249474654759132903850485280086432473813302340999164758857949003865418371329871036700399863101694355706118698950337545109677770532425225101262373003532073659625645664447595295286818395538832550040178623747602702526995735376970002332352600243039562419177531149801442526481284854280320423155255977918472035846827363937453936843130811235258205049402813498711462534245575804755078396966493186455898623256878114375025757767550846589067663277653146278343836644004996160297768198837401139649017154871005321886200668216173829646799353167359481911061298541247153628544034632440442184474803522103810327868167929371569257326915722710115941382060894075051831270036740385011690351490311683334476076494760880611750431722278472468755668853626960911616717091346875999978444309237131575777688325580773843167067855701244306667820655533367688395888327998202871237320737869000099238350428652635109504494482043269719695884158444292058917014376724995635189728929452370099175151118800530963771677111191753748738580530814859867854080498166902424954305492254167385689477724904335738036677932828594958838083641879995713799690682645882189983463944431069132199422903727683838121339635644483240276606558894229354675941137830218373780518155343822723850354274490839762166733284994525454825461657710823461877835855764612978288917274128540306321106516243697342012620005380815254197113673661606826842044077290626457444213332749703856586029603088382873526385141736278725406346679084900448221736257502790446500751363888554290577061361042867604976571802896594341820161385708707044648075557651999883038632412298369849443174628088992097348983605014808771506334895487657948176210141309183241768154673791781288519890020700026129360728826948069279688934716375079779317679894933463447759131765364579473462332494463314516119132337203704067874376827461803179410780646464332973159944783900145737119779015697493059998040781079482693563122806457923069243482701949330607895708734355344191482223048536995069893545897208455158365325255488378830310400046897618607399515988811558091565051789645041026891995122366875716528539355428068837137038478574961776295346479608751105034685634602852976337519583901244557957208251344304779565225670508128606179431118601941905818716814787477502006152155526907895519823870982013063097212771946512005159205886766520581721407598205882752002276251269147125308651793908618467276147299710817863071338108969321235683899905329083933682872617220591105617186729636147895864168940593778200326005141793476332818838461355510739327421357101588268700467713060803605838696404283352543532045978267316387231288022347616674930259413671949781066051261931718074158535846218046297783933163130504500771297698531548709568488239137935403025306512675135420108725692100774089297144525558519176378955440401271930942150686643393548963195483001258218048550130896858772710552848808965697834820759108490591482872977138797078452375085239662960768821040060594133356823054117075786188354784626055539983739911641985823393815956431114738384945372680014673971235757250257970403874202286360389458649351261788709657724574793355746611113205251050898964714661086850148177367948395394673292396085877741125836395311141206987184700874750050607929380368455459355323985264406733398786836259737979278274176367390329497922589985748658038953422716616503090839112351053074333591952485244169388016363743387442388920116675198343158446644205306628581488509931271933753872231905423182145916532296353289279768054307398716458660796090443129618861167942641567397908238055150254310068097895888447661014530506836173739028257729297236424826904325222271269154980297684536061320702098341506204627092479159429634213141813437348276445408696681292409269371228365197098639037097822350853336078533988470846215019978820437084609749055621951758938077835710792405791567767332629762133362194917941521952552874645935479230710834196503480842946317805461897504060676675620080562875893859838914753920754435896838857746293937699016634740545251506730567388979789660197523080041152644913901765774035719356005457318752133091206136686796123237587813171561227836338503623012086804795849442476249505719288513169178533964254024631431970453647851054891060000819014945655891809611273077604521723099129308991611886323204381174211435962679755811156888873723726978340015289473382501064675555173680813367287678931106050084042087608621221098239991198571027048917387574740941740927612970330492671912624993668209261790500827399383524308741629514651446303793287811646206863307918419666249624640143478216735369951442321621794328750301404394417567997888909996204070279680419393472363662434179689245807374685787625027708259028104232149739326043564359442703093402559861310777045206662055785265371493565962107633658122646508553290473938987239803137434516212305459162220950778194605432000180065409375455576505833722970375749241014369586697101774587897039554443396468906881486443856447231572207085866896691106300190419444576757378870814098179923829440420542986182295592170230342758382794739115298238926595279541156286442330962807970707690041966751359614883029270242241280954580704250690624990456409989840223520154333595569341864971534962811272286536286506613561116685816265975130570442227848605653077326081016489340113096802471256018003427736912371363303545272130025026921623162257041379722647798379560644865620014147606908408805050972935211259433690374685335035782950415785231990931362808699092468312117932806470165762831068815573121170037364078225265801377796312433400536018226834218548177031825128183189484939574602982064592817815972588080871183431022154049313769424994863190579631650136362006828001385475370895423434049230644704559726169252801965791782467290922718159312959909934273684623370368700996006460331914892822469911588497996552206173054585989859557572346928988713797372240994936159994324251460451379921743298245348887091932186085462585993142353389144108233376656429985763723560388227654264307291377797047306439839122915794520551546962109218507779249901395993598998568111872155630465283705738825991687326910435023278674739941275279657597524602521677033759889536445040533872928923739034336788585334867420743137009111149002999691463364470848084004778735220214848868235601019355745723733499294042114416061643786063887098333141156081443113239189428669424784829722463577276663471407131756417968090405098539320965115085241244965418984241576519261808739362637364770867642176627383961592580616065451508597259913169975177116318500326216657824965303309025548512191678590388032582202742803985744754712337212510894741996071342665310142660966250000736130221939336702906970431634577341153231277273643564292316862750192998913447766179096171039725123726351920027771446782104144962521092449945901697782470920567038104666383900912291099730764219663817505999694377361072428597665478763462291780320846954903329533871594359049466092853729525671965842884495275026046789827519065448754815089162968365541510677274477627488902647793780246366949166915086532344009236431848178457381089692303796844095560428452879458532211863440716641069795385970843067100781249661153326684800623745716684086301724701182706374488061565099779742919054866260550385357366836251258445678770574561501016231437446245173675004939204943299172289293084502104712746211410882542278143659165379519503149810176734067495697908284265414815055654911788861496363562223429160805404394098426310511170657210663196346812065851111303680942248899626767638264537484607776327876924904401579016976890524965375642813207055302651733847674991016607960063642892637423743782797241866772790752613454653178699345099300819850224951212358889081627169070950072377523862947070526185597429821240170025208337635597336801812129250491994914614353998913199357039243340192909701236629362859472081817785539052124820234974794587443025463274065531146905142859751491194934396035995614670247676469826157603064841297609866254218035774685812794529120236027925643348892396923703149630451931138382040323055821129803378001036293552212141589024958995490631971151549252454574306850392063716248548711709949460439376435970945997832006840885304712917621636843555292355127551338984222682725954138152982404008754649928545660933209882482746723165260333751684799161793608335395083763175784031316366413116884346954135954048841439956971447875314437675407113889049007157813556835490308337552849628268661622639996725000144182085543872147447126690441286803770228865222245363338273738353387223267143674998780492307904279235211239883719387657693327912862458261058917084813778780733107359763232285835003971352246096526569214450335818246549059038269914554208960988475740154890276728668118877696216666058875553275186049681652384813063943205525678608879806279866997103539739565141140017790953770465994336048197051153614713760759136449440734688101247397974982820085309280563255591970157115568855064681844061790401572039406402507190066910547923493318713644231072075456606918179879421084082959845850902752517497453728769230788910558437336249026816917085150352145183378017662322754803536751667067269661767279385866296133510992713907039276069220448880375860821830693605535714276840700462861211561476728436217117363185216945663685436857056591888008807361497326134692176180576851757125076691556918012676784946843158480358084213991626941268498210875720307430206531499825290963711635813807571423554616121316702541649132272456522293686688925092689194891459968998199579592665640836729939185441916053153743645220719671812784737252653164804993467312771664326695696443821038002123456297719717557051835900232255706551391550301172312647135908251289233298824446610517751503774773595562954728286996049061128537121293576211151016610369483502897045084384988845067451269797625138232944637749115513101277932161166753714543712778280663672472954211842819186554980575754380162655633331534635151224176707283094345137383481955946270849639731350514254823124199088987849458442031983281039237247228320360709588938026055658981985986027718428812829846319631196589852423782032533215804346432088951031582904088538376613446888926353971404203290852709283762530822582479121502376002117206104049006958799029846354854683853139056609981297413255118471058174828415665066599285062388579134369665928296224324305075327932196591958612659943219803586232841005020870630872034154518436270897211053828641640463780547056456549542460747273712359277061559515691733940256480611389699455348503940150118254743859308502201156193245178616412306880129025585144695553280514827768495880968054953977881258373430622850363001295611335278775367836161351858533504678776648476433121764952483814563597219034504691217383588148398852060904055422478382191617026272799495247685821815863512858720232615698478900943600589223835285540750679904156523642884960034220316461872553926926816802829928880461838699492205794485570464720467618982971295033650038855802974810630792882103137750430448203153682173340373808863248445052156883576087308003673045719043624419257553415033451623198529263968703377911842058261918100682311986497646130532666622623633101693344130101575132915140891730054864884784547985694335670554184910955676370832519216524972798140754871446681822308319586489542232488142987602493315725371763174246121340598755159919764193414366172327290059781517523430685976090452075579583748777381727056738456049688958137923041353266434749659403167807495008559436233898037744826333417062712797124784196595801037579783922848102720254529134493767074349604442480168108660272673241411011075748085059273754275728712755320104816580278332071246791716140645765846206462183921537014563174773016072119378279004693988494336762518511869971664439423748135527333969500887261794201634946884720521166973810410952967130857432567284240681249129790180201552987922188407549130330451706605208388686172682682712185665831436367861843759151110412051075942925154502047021858566420560616695122059657042062201124859135094089366235489183670723147492890120481724648809849414837474861399986660122661089161624312668342331567723409500014887116157231513586588985728467813012863448073452403318613613109810281639387456771972025493298558582193590258962036111131167105752956501243981256549983230298591632606179766983780124971398210455966469605634106533722165542138254786089162372036118569404825393227482601222307678223920945480516464750615075595793348064179350298857429051126835462220486343371651625253737004539352561150947657170107796160261882604793832428953369410943255270704790807183194085354734695974424921759538452289397711952009341597382061412222774297155184006080982472143482136206610871930218366415805487674150905695410021974899982179553334834569060877933991065923945847603550119830854095355196789670719851735622534670860595171874056089952972881122143553648438847511124661362728244562806736511642168859605605464261791240725883366149502046751819214924120202827197626859415190360640873482403184756154013384679795194101762946272226898683984511626404985234624510679144912859620564958917178481161044042010677580073552295083510063898005639453295446110241588952068502519139422114152060294612465336120522781504599950263018665480568502653367385101277974400180648845604339081317054415085746293798695947955340862260026790583389376381088914470167183197620257229909728828771303433510736241092387050468045163672023747076699249102143744368188159408181077649909167713014476952056469441924166108104256428027986082454466995362725290895190110249729589681849377102138229142236006566521960290203434553162516818281445284304242490587982017045701443679971801232067682429774174581450404100629265997205108907242959793552608855399519739062821149153001037066332586886393596128830127312604008552519178687528507597566219702971333797773000402950047507656177724107673478758365344419754749604648887353666037630518204303496222066991060257407638058976780583274602579273987953051028416153445090541674985838757447145716821683922854343724363012204638245330668979090350891838081206614472242134327884022496820143422210742052599739263128631994656225125770216995855094955527532943360523028521154456987677760270978246586637361226892663740075809606847259197537158761328775265906658520023967072283742939468370136392861419501906979621931274465764581232029717079979662894089728409607930105904491323551766779202216946434965464835438900887405001172988770576060360678313790997482419004580983090371230010477267276039207439430343583988558836152668569120947432537311060908640070826525212450955828777914716414233528109898543651559917534433612463394868862246566217609333635563559979352573860278998959119206080365876366168678110481617930678717985110771643983123129425020711724435837514036652928706164524307462732758762286502546353816853038336270282238527635047081543123956885172959948467934608229857408190440262934600846855617640093031997842638679055808041870383360140009460345933144763785557700088366732808748680021254483218001283746221134246852874221138044312523164478296590680839125462449865102437941198530349812560261899600754999978112485867446103117236783605730948664629973543150890189284520966138746227072229128557795846806788535096856795790731157169498870395899055399388653408107348117613349145162454923377065466845797924630621888625393699738362961443112288172495221835683633647717382424232397576870309712574130107122123193425786356940875238209902698858684895319970698010071053378524606721378251227771508336321539212547853669792978393333760807229643262521609366252746231759737834282068084341114016277416592482772867753690048130152140250375184610089262987759818788322173414087049501633823782551301146931552957744479314854776964378051962004131500907493883367846306073122815516488988052994172205491467778440180105590994122281311313853034038449632281344233468824881744003435343098558134012746217560469639764533910952481757457411584238956362644481098021392023214119109101682570876231766778609435920461518624640738045021876125930073458156798101685803826659306004341902462414549895545274993559497304134382502419093214992023305587913967964035243325088846201445705605882008043641447425371909698567112698444402595036333313310590689184523385195077479657259457676478049272823790113191986747491499157912315990456297247725092017856701403439729279998305876504288884232455145957997050537384084522422027346417090067647436314394300056422638232424132746323362220160118043480209640673140633276242484853110958612273964941593030263681053809278274357449674776838154229033112262059766573198505536701991322857126226898420452759741410045578750734733385793582324594104875311245293822786760083984424349283299769430176020110529403559574543742311423845572764661234783324015974056143083613711773157959686168789026606398661466969739592583388328754642825323599795741352973488180768344847731883204977613697450013973287895095134459079632755753170394612918921952408109282635224388881056555102665578965563745179626374780691011754006506855249361908564169856626608400113266246159039153250562798861023386350538853025424035370106538148213870255172424728099432568564894402899834439702624692899148777627485842331888611855706917356851764866932721961379105857397816820769619386258445123112889037280853089855429201940864854364935902076913108708068832087284082415436660489564164456151330345982469437224272305562766790694264308493444961391911121110652893808717218357062795608004872144434409723507590445102000334270305170367248248461143324255475321062376753570571485426415513000665420863220725662844821857376979221223035580585081301801257888128743133455473010284774325482199098429472475596513729253541131949155813053715356873144464997312801692463564977842111631491477269739348967528797179938694506156733203108747370111538600638880791951274641653131820529063913321140641051394797648365069383297655900923794832119203035677760042819658474755812215855789358458121309782847964703001416746751177797301158546274557739417395400573368822289092744727370258731137413250709291067362395239265919178513303161357732261050989221202236355828358156023590895989423683356899710602729214585678761779803121967824068602913134188193293683460937420802123655622409009009227865209246072934023620197443264019450490825761148560759150871545421602129984839402377371580796236213532443300570942279907758013310677404590991693802560698462165563939868752906896347449838654820316645184224467070982257266617166538603343436568909949616584412093581427649737003875590601088732840790738243314286970685003688503898074531980305296943727720292516296267876439202897124117956580059407828841457911456614165300525191474049048796038133848113110989254327711128730497407333125705846933823705071866355570975931415387505247318057130653687450070189805567593922410493855157505725667448700101064286068336016018459551929584739458123971064818187131942241419718354607771260411093109054927507893740638071042535156942110198040763774908923412678509376918999733658473748835165521162589104973859083349016219331010171931160927919076034114387315708277914201479880875785039930398925903525790408306924780624456428281101235513040385614668367240025206315132402414371243981979033323688696870425384677302884334674036908377717995434300993367670425735100074340445297280800648618359006536613546569294802233094554635716802846885093232369656381870115009644027915587493669764585997987543407103563453132749937886585872893444544749319501432898566486659496371345275835139763356592268648248859905812493097699114654599215255426535329092968659235406488242161789889994601670065289239570549065663877064732900448557105041840903220900133664079252963240572027667857644155655575221322967871638734789079545049237408791994498421309209883021562702710522878381937452303873849801471416210137616075906343963444748968407174398561740239234373677823381633871779781028571659409715391801515539977745886677292930924583945493099267858536989900624858534375136052445960638890017329214834191825660199946600903934127979510283591249567863697522033576134171464729273599014126296074225915074095873104054651667488281405052588727753276114378247984886070445404432590149038222441026245775296758261083593137238851820971912572272969631770866261410052119208469856992708947506591088610967404559196771431722868131142612809114077349002061463341294076490084224800530727304858384233327905605565966877300196475396692274807669557593875674969038682209479646590383465781006260805969861085416033758865860832377790935833494153943145109939455013750534512845007481604398976692513287873144371245896827220503765204959323485352639382207688018465091904644485764356630155930316729667768208228146837337001946217011633046880579456731817790260963333539051137928153971815571614201117704528100536509777536057699353504753760766302466452950590172661872777727454270198948785382255602469178749519171819311350121367993162655583737480187408293900895717164266427775275145683197784563695305334784580144974587160385746439162094073354725770517809236926160482794038028241873694957543785406021631448468942032523215427578425849691704406765360618674842794304357112906319723995487442280687277105156626666865825802496400404161943263049875758670012666183919327375236507359831406900302252772695845299123751975508571569575248318109037744710355583505220879760776787260644127601783247742191848759324862571577856998620748897776834825450013540985873732383581677107408033869641074106043150563236893901203249260762585941439304944478381195326393232083065037573178999508207764567053730823400936691313702797332553200775793433042460857196984017838662668738825883152836768464890138536713160234583498097739452691890646137798001224742161042246065575049334637324288854876673300304829928334557002891880204066464833280740731286709905117526591680158384677433265468304773437930549744124744693248122677248757598269269664381077036763566680755494212125913099651889116143542195913982581689638077563020957425331614622886464502382341459718292752180504504583764056796975010183895464822430588281988922683006731288047487132637508345043153058114013999738001595422798885449534273193076119308751467963518602596216436041617099942608328275599292911853091479641891608583753596340158640689414613123120955965390850561041993004122057852670818282079786625486363599347782842295055065318542627798551075941211011643842405991687760535386358281448347209215202706183972601752832262736430271255680849859645899551191431783097956833556160155023616252796686509623449834706900989175036489526574479999956157808059707215978947068476660076752362868948642909335151206929357498691537598615002725172139723810511906060400699912818807278125065055172957408677736924723228517457379590846058096375652654275130046880637277227210617833587231588423374069820924533804888373358951694797071901000029741538484524871661768534799310246527177961702994663684105877942324073890150894237192491811370531523042476015796759945655312523953648176238515302365115957578471551203737764136858696372778714757404794201732090811630995947441672672588106646791184563177053975336680845717805187362187784667592167032049998740537012096411172093944817978358766510515311264770597927475423753789644320862521230302220507202351678204192949343009554393313010419295789762917841086541674721184485796153658174737368115932193592478778331272756955241676248399058436748710503276665917425828958310866436267568015493546722895421244323037109756064973792747675193515454696363156775099029166348373239536565030031122680168968334229765890165499915134301886972284576324119564873369443188751497664282852097777104331869529455095372313132710660133498102931766563021625583022785122095129402706785364343496527517763987158002205917382330824486585919003107348426540724294511376364360525768860442829959287950263165359326656806848937538246948069138147562398707193168528637804360932088713644483167544597270109365679435577992349144608594129925212832201768500297859864113540936544360933273978595012560184079777193558530133624091748980319909647621761575928371836893894227663954469777706806716222532354637584064724314208726213914388941008539079525406950570437447099784083150977971278533431534452876708561411784763105007319540238044381347812144930945492715169300029709100311593432135041800855950562447192803684082252895168337291102193057352728169095622904009296970776084387521223461318120467325233348320686861390361219936410682758403315407354506607831358086347508699018288513417821253592538784792059713327073831708905431051293412973246940701881987405109940667186771623358547319971886053818022628552019210888095416918726635603732290345757930442579379937076892373258916505444245184410230948797192456059939887093156363947495579403374528798656806816492985367982092985089814456053232436633616650100225367245420284522624903498946005786301786560826233433095218615054212622239694392748358878067909919299954758984644071961929512890292543567561571483301247866487326659365853695770118369271202231930301911880533681630060967028505290427190356717143241477474281071618468740296185176946437681010797579836167084501132823696101919349516150674576087608439233412051952695303838633868924952751678201103088854065253161960012925932055409683742787893130978057507362141753402813998593100964341399028957417621811908673476980012137203944304715127880426545823249735132222591242675721462874814076139491253328963343450724041058770587965438914992479463388617933727145725539247978416234999204675306664397908233633142899748849504093740430266160501222822234404957122313831993886727738881653357462949181151244668269306281906394695828849676455760932374920583487655944990013778280825797917855029234542907614847838459434072107077319825916436949338193716011686544024289761357335121884030246938086116330330975305670536762184930914447061005158266495312431274050049784339419728210149344536960288401113879834045420502987052967649111053598265893976598533769678459464423297532582713845499865814217443460983560058539173037559927254476168574991084613597371078894201265167856954693477101533370278514979800149466085696548515970677200292847161690008906139149252574134613760311567451983984134576094615728631126339287430894340489193022876341066398139745192917392648942405191861727985761977429192629687314379646733037092151684870766128881534946806153017830431825974844225746589000855947488967249054985825079484492809483615748641918183339580601895140523751124585809364432380722356900365671284636614992324368168409220484786993378511641065121823686737661415277263220096101604022974373720532114610458975736925526707148112456443000596331636617070323639438616964622183500037828235098964393647680385119344177527577946886206940967872774101535599562683355818073861016289780970857411494628141158771759279957507079270724792830319940687213442194928085207067633285718460313597024267549020180358521155538988910993303712325322074314116005548641304697547753860909775610726911911781584057725873099937073609799869389777737509436042531213604890273512200361182092019309061168051607206230868304916574927707583787185421132398928006936120942408786526408703746929158878652658379187771762198010347798781045269477442135810523285193383897502009141442754830942744202974489501639975991004519590267348403238685234559022796062954592138649802268393138405498564629581636627806791103018182687300803437859054193885545839725768458191263266975547619973962739067445916979888890670893859252048019761417319521948854231514073796209537772735626928062345770649629601203409916711850179120563202069446125368819855357326661485029789669024441281351463537203559728308707103229444402433742045438920254546710116668710421121525728994902201230927363062428501933887628161124968116151977978559256787002787749187675687441285983327116921107377951496757164296072633421843801435902730894835009388047837177901841541092251912377217801624556862040323406415470827946903120948781384778986473043975168783758766770253105547267773396157856716457578182777039478804898055984055200055163303333036386421108654011519683984613943397590666208914327113875059652591258300406743780933227350586259081087588165440409285039467848240084514591879176853007224840411124388714413667990861025203714478474829055039342780662311633649088174716044222799065727201683038154599553386701221398530359945854370750292313691442866715204074311062871053709637105361271789221277428169858740342817494247745837371134270737019594510623716252921388475629219067288194015283641696402922373263605618278637991144448108175444356555928353107197897698349025836404701399786666204916245975750216637711353282040271544798566798696172048793365730204906849664945769922639243238148585946211989413169109056284905178934675187374149005285374454362471590117373616607987513833498069165583256252587399198592103933895298169583573841080802782893846106981919124601014068438992355023829930436981579326923784738874321543892837195748114702942030428484518445220431439181822183915084050540490244180247045915523065255355855012367305232685826550425445287451179626065077850157673820307644358030675512170789684778020153321097139371326045089603562589876496970782468255757432053310120552824187338716906872683783280832205669919636528628466294526905434821960763367336161244447527979747785651481231014966775790323896959222288497946451493016781856496973808935069237256939691900102374672829405858664345318896485704147910926181314957442813646348775148548684836773843455941844789450878979325000070829780233471651596786101103181815651576906696671359853654657013139157457951952576224714346540308244615071680621061010899873298144811083475743505177050069969560596399333059714629100706849531031553616113326822791535623973840612130925662849054441454443590266799972984075103660219682725736460252268849580001218930701754629180566924107766267106750125726184106432301116594455840801357384798483742749567303893733575271506443058286163730379246003521680356040885416892698678854339667246195741057451362452562841732984881313484769964191436022161921339681440424777024062631877069148789068013466552661293518161592561481692126169680094335114327962606950536350777862132743065823383797816966291013624397608671082613847564403311466057601246138364625312186440746124618776391061061751599978610526388923384609727065804892219884314516277840528332625505082730348829328010390609009181016571836468162783875018559177561172450448489261001897258019929835261745905248805555269418876066531993481720640115909755014639884289107632160765832584279440094277363334067028501622853058090601027255583627638158589053325757357613194561396648858653169634130944375636298540026376641606647064429235927556436125998858786150740619607290648795290740283469742683968169530006570726005793653069388740529942449640222087760118938949985668877656820234889347701177541620492380242911615513694357822742211228461630750804701511441566180770881209142591128516872811751349958952606985863318263171623270932381035762366423250638111097042513270875236152104432612057919256630284119684212245918087410270518844233529026533161800049699381437995141742358928965436871115661497125998401446488197759515194287070164948089472757816464521608000568131405763423901292619221051158222125570993372018139748271914959341881591686747724922383955572066001658045429481532065029362204635850453473467295975598419286029209999738983456270562303485757508275893068863773192771320176102364792388861479977241969987980268027924908690310090687078522861660955964870037148231920253913726799240835190396704615056651157890184312790568138826440772922472267757324019967822555075946984324868490399021033882922282017216745229879077666110657734799742499038149580917676962290410220130182958174830691486909753346052244658702942495890590549785109466654157081152308245018270460069194056475640047467610675375699171017837334731474784260479397774447880503798107370113084959911304650481484312997203752051567638993061341127534901591581096644152401554226583367079409898119868592378368361363120862188826837416858131119892263522970567905864878609791028743930053278190630346277477555681287562035474814929182455091599162012176116128195395577184503457810606279068990199065280088712310025898440944726869707965540643988222119104337654871771403660030607912828997581647060492909157719852501010998698937400442637964681914885088053200405563736604103004081457700957426832227036210730566359107439268270337603516537127956179291952877581224560214938961480631003933986213735523435066364799202567732188699849031656911789228910646580865350583683664906066721632142950113058518588721154295030833406930375287017806591602549328256004428858446908315862802976398221960533744045535112434363193636923629042240054620345858806049174326015980204619070271669000793542436920690638161311811229586323528945523358664524441864791621752497516025608560453918471609841674530298881096630064204296331706008931503075495432531203064707044700110665461578389553955691958601304230549537911496127662491491435075369480276440426437123839024743438002620377579728516463740302598978200072893940013207844780085036607769189080890506830644508412175237274347594525005229526557720137010781466606821353181446620947501125985633177036770178359748769750405385964479925780752358940426140587467850985592389552016736259617002830924309015518589119246680032540105901694545696248790512273616999515846959536099318364547247225135130315581730435988817193255048068156321196890779166306063576034420671847182239159883993042380645552028108231821092549196837540259700900997431588234451656392471202321498145776482383837427649915732192835199616422456707748431090283286216855969636405850690590720398599676145206318362951333167013102717532924239339892445851646214829871564989099588166314772188362989860429839639030140858176514193572478358870722680368184019002665664292942891687562124163687229049070603594630655322779754042330368937674805937809298867286474505357021963693344426687103769728792087213451247511591839052606598889659515519727694383819239133718529192082913824396086367074931153976549618915234888225404062498126195795322148535611909828548492622011679172627443580624102854743680997695989644275696498836712406024088823748841485455080453040092527596254832811698040775933647787940106522994818796309035403938339218972264101983480441881647014409107327906396803928441304838022420469779808542320865275631531257405292444078211005978820945705735628731559570414510552707909430733380289685727794092639594909455890217156224956938668717608318468907204724939851021513684003938514477742216937253404497461180181087432269609911750012940111005353297744045213475324928739292345964796946095489576190593009418254470606779801851243363480243776227595773279141653664490918589883448975018660238498734300815509348369874268390007437444490589460547584579580669227199664535213492090457787125654462355837951998410337512851118780655204395221549476876442937385157180554698945156752454799615018962602335776156886367658022164618634400043488145795403431373956306116932825831696403651849422401296119288197281661728257223279564160442397863195097619628584793757057474043879774136916906185992272584396641681242133841651333586030490786055009241782185491185434740672609524170755756966803414506897746703124323480638684107196304586609134462128914806289457036476954119167596789355408241995174847758778201551161961260100786139865139810040469979447306672563248728066614061950362583679752106969960000726600114309346153632074419085559742366930686420868061565616204288392738575703860051709068809446729988064923575262899388169776707213045232658328066992777265515327651125533795468062538503728074106094021653866589893678668159187109091711771572237340403748410957724946606760376770358976329204610551739356940768712132474951455385275411908856948715316831246192427529522457375820186468496589245600462996180534114037000419716025127544101333111476904270899229731279942089649633667021095153237870508069523371562383148400277978643229966265367508814231653850642658239943053718968674677477050310390967925470067560553171301891452561680024374526059624309632559250376844632936441706885846303179139607989526773782179375775189630567874303971714342698121372875954245265691727965852313024410690941311668145813721577891204722457972861859766372385873491685066004254476524286958460526001881967046958992923592390964130423689700512720939945395408573452900098916979292423913943551380783748953198695849082988686817378973580299150329690150246670759153147742422822049972884796015936311494899559989030247176615032671106817884306395380997087524404742091158881026782683736221246688581100208692200919481799075982220292424037980252286211370131681608126575830097766825739509398029941361191825481352044819543045838019729056249711326804101350026688396410418699663131422584640024969753589944707476672976426951700856678450172800109691367142335809934827958682522795492935972112923703479871075634733057071444971128759669544117493642110561189771433664803336471345827501726570847315056314928611434261230974519601363686861603370611104554159560130607722364597823351777044879524048948906477266412107570745911327032855457844540940927835528393662339506432193309357453057668660063444999356297817163445305109234815796006234559127395530287814795235410705774018781393744800738319711341816754707531028129462777626696256122186771484438686550416620301660222781546606849906787792622015185085006079132752064804058138781311662791331162686257390323908728272243027167042282624938835759713473514859338327939771079821396179762465552651845474941569464203452418330513655924728985926207325205466104402506497990825863284638400338598306882706316764215749643303599067064340788034459500009331267079818817937897781971604309351133565377669522423073274845640735739759210468040086229300627729433702814510056355303482072054319094102418703892748921324134266147421374729194898697352133064782448954682854745837123164008096394137795786355837373713882810682304682794348955475497565098224988937872586895706347992466032554996988431905500087276515620022280693851533876260517130281127855618540705996646125974340480215743900607523388593954519016713874994154375436303042559227883259413972890305184390585624392552680373900952915047901991403230146046931043056760579137694514587028335743145188544082423987022033852026289661265136194491238971269047016582400992340208925282356948271125163496151020520631911811736798415458040057846926026979505127483948819521470076560209624709792774217111464609033250753620863542103454410332555463606425253454799810425150890696062589304831497777813775497519211696186123400125682765513573718149590150115771527445315210960013076841014971468592860692710753138866082624536945484591213877016193037840752963907585996218376986773993512805146383915146141818244328198428888603209515016536817650182054651493130148868261116430210032704245781762927500460585542500181394849093162591682177393444166679619552991860660908409068606171190733737514385404197145240251055831386680160394594123105490239015012914103339389461746571396033253884702638170569898331123388812264931238109229993159603800850721789766068047256292581278573619961839962507182219064501580585167232552076566769633008027254637499371837352282763972521770000803834901350538103084591383694879073709938486638908915993560551153351356489540300126821677315685338396701136923095184815682791296794853060691754968007636118118360922741950021725134480297301851660868063771100828979583175564841738434371346752097266523375352589156271328029296473440157089854192434109622030526392252416575804335429442846317085575506748639472447016414437579447178329636041014122297356514322086520550732704860248490407053618359941529414995539515014219993057895341346426786016670417168195399451937700444781926594344957041995722311141838582623904729835229748168597579243208121238389734569135873594361999168441155413961195953967845883736025416239035630530931393919804057596942834836847618169606980689494453686335847156377544724864964018600305682301290922096874054630406413197369137979554986090836854724585273978515003159098697521820480803493261333354736419168656885029923093233474247472952616234886250047549815356594765716741545207047656638934629842937843539254501063520335856304871560103998411636165723126105480456593085466000378891972886193539663106908094684664825265909205647991714287739364369157741959143059553483458330663793169128565369897897973585848123085910348950633857946337907690568867266363907803780368654652300133763650032669389643158624894239372345569339719570145281729210631690005631394558572617763623125553145964321990912869317162846206794942975609026223292033876083778805527344598810919983207317378344495015766461271204172134191950224993490941182081472807783670138533346740935341446478617666351056390796449816038928327422252909796915134522243407234239833989467382089347705259155026870701461681164033554471098541473562218150539517355982782810183871950623583565182489107583382727240322393664951938769243757421579724769521527976759042668073420417286794190957346239539025130666914259551279476633795744097894430997546420902946551150228072694025726901840867721702107288894128501652523331877102528516540839935356429966787032474945371076759432332146587661206218868747698041982352732575598842416888700211246782489393496984503309242417351673910098999659613929963177832311793574790695865429167123293223323283556070085705068294633580689584339348272275247856725171148321297310748264457861954685786623796485603299143500430883014049805913877775082627833967243044231424213376273697761004584472292010354849093617045016966291633954678380796397170713520660267427307774565207315286716233987287756252677721264213592046939527746934725937216883628686449637267986521160167286025413331699680985108287380046064023521850288513615808254181181196331957135619816395016336587357018859067244369455394546011187755848094540488376165393868977497954891773789783772199359983595072425162542868538570239832275659858842549063653512304799581126959026379093324892322037993943122685102216528710786512602781415193275446866783255921796531901380362362886437578571995097684065284378686440391714295537796349633440166682451048957591084095918189243770354547238710733804994797260189770283143400299589317921345870999021945744162632350767056691107832524395329957713568082315882570943221457400937057456743273260542419617514834391561422071561639982872468624379131789236297183773041109946061222319303588193844909197112092561635206219256027311723043540393347901759619261173271882294369460007292801165975896633910731084941791962501345791694041328528105996152761956780143517213186416488237671753859329253133629981539147218967780083443066391772034148519894877347570782956230624160067034976115763977002548528529227858652361171716924617467524465103863534349984845894310918258528333809402658998393199962800140894258558215011202904072605299905053347331534059526259380604679486503686289218254398594344736487739725708493629941127317124492622294887498414021224461209648907301564053364903543107042596193106014404425904115091083867657383979322169126964114659420538652870757722625834817714885557533010934789258764891126280626019331413472884096050705326715966851855982758321900758046901243718757392365555820804257214131901420187393795403722417390742901151929112848372554838318883247539264748669584194824963657580811473592491741297376810314470010626765651784866520616424321410987177974076420604934546183333032041850515561563010773902715884672762779535697975224748801977083932561548901826090969278524780451817512212788009449738681833748295664718227636080171134336439654294334002419569784781974823093328838187937421409580858681136340583242534092188450147076311179614117969652594902749619394000719757810703239958898199272564392451349368064335312313251851817093521791708255140383319733452779203438497625871128496628199456674350658385263590820475845513064615753510881643502764368417507785296348239494487594982566110869685093164916071371130362703223231847431725643961499344265077076192065902086281428694939127844943557036988780823265127341763346713045038934428938578153539795809478759995294713654434614016855990409677940011802042475658966764324358265135281179831934927659255656804357280138503316191705989200778613285973889507311061541624115043350160754077165142688159180326129540597246473009342245361111256856825032174821086215950468706770930231735692635705186180814978511008457126911772725290111039515398735960557384318683016418328499626449527335491463845297376838847138860444649044986434699161135773331642725895916710134552018132312551851053676767500205289811223687174948240728014015406270278048765400862027862641968284596406873377483047794454288951957410269951323154592548557040442941966009990865668470670163057527620964762569226926359309684522115813713990186241319643874661656857707279807152284469338848798310105958786995651908499294473999370061402903842838797690622344324551047450961074068416941070829441155830620394019952518372269709075769930550765125984192575562869782890203682072218602731920834289474488294671502967445702375033539068023193831742469350719979675279280640792402204863245477717370655815514171922263717324993846849567416139608189532670112294510468169766192626363694881213203467564372753702994214568300728325811561505067328436742566401776964564989352982343663722531015098125663897773573392082027962496808669331913355679294758676150872221661711125497467862350639471670402685711712155096670708873195365390924932010805623113931138251902833308090477206232217994528441586162024800868967087542135551127152732634323302505906889472002412564789883086739515256993186352442167005153307059042552002665291890931156399160200175391574120285790006426354130116447845738156120874483760562487158771026896739802168002355831093804392089104272887885543660036565963014463819559942798704913611893550436433000737622607562349068414341138876750032033052680799476313313451769883714551163772241939460677218243975680431335224286236482057063326040299180819743668159065795789263961000625340417270243607619854362421367761311053414681821572818004346505629318479620175068288947347281251907081033411104310788172164689195557920773551755325605684365759717258056474945971719973114347782236586264044763022369382286010556212088804508770089861870996645599846853706341558277495358620746402111941257424234734067298980837143741953857049825476723139708020032041426853921831171663546134476559523100160159218349080118592544258128836775060260985209096306039988849119287055074476250586044429513483586811965295211513551912023293061216851668839023560453919576384966081510477885644301060850465443438778177583274897929146865905417500001493756004641953545708876940250416296196585182093834906366095748962427918850343878229354586967977103049766859871790572221965717167076731923088021366551480803015343693887912183225899735787653785324878578335978973189063488942547380145846294632102390938029057819884796557589442550236833603795037500653710140971196784761108942990755844742788931892914974530409403032713635788476159610024588181282245709566853040750968337371100766191134820251204900781540589909210547844798458155749592390292349459132236778776086265570646128035090983568938750523888451083847823254047656952346515806097951018950617844394056427654479739997988158357135775682255660650672696195754572868846241577262998273421509388601085514902019190534582143483524624499270528871186305762221375481250659424236308385457261082188139904954500280929093420902437363362608140479675759661614307367412483821514588883418174872443146898608377590803475997934938368034993984294507973495838615743965887713388523309409614924540571258931980389616891520454855419265847446667311023819326850898219588081555913854836049377462813427945249472734914192021105959439654486047050670541592835733056791600737353003097599584093285754767199067340452601062334210002174168999840302163698426631661628134214900327818780569062823619026373434947741288139869497653389803491750922863278429558766115930924913121746209706086082598763493279187444122014783643423563202593143788837101842060595486136861460349681999459931990047851127121595859262584713216592144208060856135910930179157796605316263295660204969730262137592192739648083908428344224273882275385206170298975564758777623603363264618725802704728271670953111733063724080416541153367175722269881950713599883138929666923634017167275469813548701708199485517772120238713781987003115123574066912414698104270039249217772049727708866284839732979563486704102740478426716391137886355892295913071133399011719400119490413799113547256280628716349082783871642930161020462627848459851933107347230200160134011762159019429140541496929780288309142484466762579861704846470395424590015519077912880291623395667114091640484472279240551548753318585300113196032010903059021671873271502982615372262434314784833880872808255603455129762626553270230343994001165500814222020493962956286547258049581324617875001981226307065870366193703321983779938815521920072482447698539493800273335850893830855241029608161802221872018274906114165288993450798039575715311253834015365983569649957404756589322302551182153597427444792807946517672700697204391221014922750287404435480269875184654397256029398820973589734695953664413120091780947448036661371215122780270468092594090774350436985542439152747013500934787832630144404698483273957443745203740121036887718747723754256747402614655982283493692247813839042429367368062932613905596648249040923416548758257147879210645205069662691352071371099787421052453395682816049710362567940420656439197018856857080108354522965040584406031714595782062201212127983757680889115582313295355189931927446634245687123563498780024981832731843884317941690002408119022013001615497841004004600653738081438463239945558106062369317797830015539017170205177540969328223347928997640331486110355203678905581895710558929850039183097392599488819011699191706396138546057234093855314799567585360697302583004395695756284020444670306209817655219425000985118762195359465314090307102254068654387382902679120112251573384752491580986124964232373716134235705807324136610450291788663505159315949899810086508799398575901307252816653246727791250811656430618617433913876763515517100147874994328500818698239839293622066844196981526156154761401674348803561782002487432409781730542617909722775814772020246448512500840635934296215966546883736842543521882431218550359801460270649609012242606580789014174905621591713058206817684480161058630146446972514764785769878918244446221669004560618183710584672200402702666493368178431863343600530492728841961182564391495275242797359157226049288846768072632920276554126820016576415489446149418061396836599816385484053422686589928507708675125522459630699672370654055581123960067263445523102610010144614476125595491621270202193387624404769883220212257898616867172352064317291981296418160763690520924745707933623907695056356999828606744452184514555309872000398462693900658701682485458888865046176045299656393779058369046535466690052565649693450275532823307845573266092709268380652447725445422269220013383597289268366989197540748156451172311422097586625206876752049578378899295844820336443468367332614947604153589304898632018060577157921208782435420384163570166336600918590378562237152697134140552585606490454263058576701735749965969570173240895930065869501948920901139315964581300065139960255232557428564642122188094289022953290470708337174300146184078704107931526500390603364923481121710447219442378280467832702655467307011624427807170303406039731522233016198022919843257990123146907876349972975833700675848118221574881024082729545434227462968150221058154777882847678942290786661400025064610974566328707238140505528689659096304728127921118959407226931256837706305059870000405079513421972591027137245201791427574146190405768385777791407869298464927753488978145943008094834066500318835539251860860887834857404167668778962718349662813599979883610028752094732248306123412399968798710882889346329333606134069429043068526726968462809816088586863059855621873049844517094725658454126563945512713643290257558068259341259421227222954103134861280409096341849301192067694167321369157073448783536453824568763502723509663947447188929998761160714619351610095383229062258099895501516552698413389700022433280686402643048621954702778523414287189112706909894471280392631423844215573431833131424102103556359640620435247543125535986822266937929801376034510970784472580092132859358806807280953282919325649437493683563768951453443372301987970434175160663410289835414978820613077486880038711709622430676506711860046754278286109970340098950460694697912828176481503114930858165927101226542717979388698093138276204559066179755641148356427872130822811890896451218691544550505965528166126459252361980481078162975511284836597887463685098659058131003532524989399467577820284763352236124449001978918863961990782320530792777082462021315361555849554921887262753640273265071790471799502510416617914198700634922593863960301165276607193600454430184564417715516719158958913509629475035251631858504554992682051558428840504074683804930519185750218969661477310318394935991610720262073778717943693915490727151707169325129011086364175076004387334486105856340354211171814875369999645588502254023782641146052472408225355538341727205747232570254001413318242282228188937960395234553784132211238208148122139238466515907146809420303234692742410221497119093458745429634570810843323744749474780628195579018681648849434662980794353796304631338625442681121394780045225508254878842213428686935606514120059469670113901144467696098260986634273498735185223134934207182043048781660968563319653529106586389104684759797792216979891330960042735819967400899126764595239247596601589152566725480624952781533295095771657155942624159055360501406091875296114159500741297908343435015165398929169653281113712185201092822748239821428595462836722317313662496259531656873699751196631239815655180155979758746036113248998850373982320800082990624982046675934460633433735921999584967878973387868772829391274900817517293922041170591650230909374788830936014388029994673328150738873573745563001773495423323784924875424818808075267031671425958324899941127697031711090601492660644891135224477620726992038027880072621177699334188971311690627402265313447819413032008094480901581488761391857189423314829914392055921207546293141276535705482043431496092546008018792885956683994029437216520287801086924805590225188028952650680919720073337072143113970531132535887375839946996895689155195583793179420600897844408643663326894617697309482292590128399463379408723900016355938376105105599507120519983450458388945445764670409692395719046725177138424497073495959042173658266309628246653921072898410678344937623209802299141736161670160135434027992121927612189695575309266186498820574118552832603013301678776807435218221303448147023469439079684722986906677733609685035449791834605429594825699140722524462840143784901942022813501001870748129827510831596132845206131792560051178393829066744906189194033653727326508456905208009752666085494271008321644756068052835615286965060147080569079692614805791949956357081082040637434940896553023378108224105483754377886801399957664046414892789641172380071420527488770726145170730201818108950981992608630223919356671188182221356542758729443056870131830724835715116365500390595888511265285666002223317348156974500485327096720069373885658158777560374894600287365519093955516729158366281291357316035837156404676465150639897072882398078303408433282948944329120530618220231382413865643455373393908532850477321523468185901105554417539842037322586999146095150732189639895720098508773800527803403741963055458818943585883321751889257320260201733485781988777777855938286950527384866793075354624498514999932839313468713531131066046311604470365593303145525467513068269971253547840115016698728089333580560900451786407595403180286134072477136816188170321845845777333750456775726182160900790276124232193715363259838825601491909139389382485495760306394186131208148483640787711239546092679157620892981434257566748053366539853750495938332094107018934638419369907681794135682981478692907648469639208215837840198219054976663977271841030781042134388157381315260197126150432640067572347174544052955434410912493654915844291446164931503935063186094129688806413277392134576806369300314387799995814604255276608330086165074968147704034208031938868601412961726371143579440920646402502450376482811553478191824633544062762337013388166273277372199578152705032864363335204598413922640135954669526737871456931612178589302681656382488475872052765570180098069429113118405168661004833893116075856690126103365274957287870260174764507528389908214229766587414102331540364920770104105325476719908904944516241781668726490542976754219048464319461133153082643188099378855087555686755994258252003103266690442263180827932129695787368884429718073614922482931563915766725768088883042438663025089486833077399467285372100095238469624828404398414813622259428136707554199693085799615936933364128531699791255528491427823225751417209168088479678197497594797886225182991522456612678601233160823735923222911334241017454758749710135779682017074642525713720263177170449521482296540484330945956460098645297085615347375987860358044689602973029275116769880123624631348747819814307014253867470660877049877076761777045189778752638207476770409193420185749129518755019479615559600167338962335026430066996011083621876878529300412907505447243214711870006366313979847773437894860140731826698197527341553550913858858996886664311665603763410169826085397874400476790167744280305631699284183895264470812554946173010644750444318505317090417826119408396099349432797011294863459839879081335125784489030277502187392947125222328273632634735015232635369759405190307398545865636295685246105246680906142468546679970771743329586660951150368932736885099919185509999441031435622070276798057370304012051279908052681998355218239255539739590304745105582588728424243678472686612530746594267517118058334004516475515161903757361595854367692191125672531236978319730004253379142057845388485707674251323135083565251909823281581427032375237519096320534573385444934881163904871622141889475867312697219053143688414677117843976100495168381693635846184431392323104265403024435047568707548633836568484846136859674990989550977203592003210742781796236583259156078947812868247006075213865407124304531319797329449837708663277913707515742564510590823794828550294626637437490620487960184793145353228152673479706503163130064381235399107204578678203290741112665042681884814027290549816428698754858639118820406308270047296368196048474547195464194268252710442907630417153382330346481068846029782513587617334567573166269374736143651928374641204891806397438308143432086783395178662264466901120286703605982889535440585222266076527626970296888923814186260948198350447504154704606124565074629141799181431038039775620681416404938879305560270639134206596062161521950795508047827738388731556205172113405553220192828860816723382074967679694333138179492954332475031373611966375218219656553413278438735842515126226011206500094706571517225297631295490979993482529685285262966425681045728040680808229700850475124048934128804625253078266606657298225057977697104857345066112418706037777437760946515800346833913138884993958041316060953538171403908168524434388821842281323479040681089723777080906516871830859147009186949451762333852831903303965095481783959059385951637252169058392986198305701892603204973656074098721761082501420522239277662682202454506494512445441794028951705540236994452862853498909519276835634812051217605319520755634288894570642444715626298799795551013808790726490536266830883086095266026358273815537818885154322492016279419885679983931321101448404068014398695114150805406088445157700581169119279040781418910001480215570986173884045336395244054231855496047905288699821082483868955472049583894379239178644584710050859490372938590177913130334964716343825834784852806209395147533692823949874877437366076902646065903927437699711103053134151426013143115120147930643772140839698843854577820919258243606102446595492969495741656671260679807260731524930710899727487638392446851077863068676046093972799577050704758826759885726113302975344108400217879329506509390744435545424086498243320207647595362408797220203279434647456926437487169993205019430466019370408087721279357990239373844752637183872185715448968594872317940305446957708726510940249194872324621144823030092147025370719996223818341751425892649623907636712241365780323060308944011680039747151663175599618251104211110707017667785550256991829730910605489833137919966147789437890545994575944596241377314875844839953063310176905482491071295067397412627670257380581714185557511755862167215069657657331854559560842714138993928914469523114466389770141646190270537870985976439254714278047525900609198031806872115477789491587963507902589740466768249966215297183402812063837891104822244733289848181332445099763438116379692330549737225299071366146723822784901870845913793759051518969895984630589609350823051605956072438681528832952550379989466479966141056836045982919371556937469444061796380980380703283866225537592870000697839669021207263002107957572788941476882862642598547753215262211685509228966666762044516472384660138130584174507790080507145280557307699278650318332877110818829829641581782088159959623905422283136280359177022583964911009836381436369955476644895657947149603324707912506986172873505357116443954025758633672433501039801835458124438151449960553314770882951644235574559753531039914394072497535018404592783343248937802486060227980659617325324670582427602992028705358728397517938250234123269285222285389585525166307748924487644403775353005052663726023842367217066158588834213724453109389864847594412499844927703215320219026522130561690749651204309439627473813646269543222729169644629626353060753157105633611070606010435823500365155077776331444084242615714950637753930131152447685742412337993886323648420455490476450288362946275306681063872437883938856331892090331386616426832700612210252087963826195563775792526567363926228700759127241892827168136500393040120381414784002186184438941545234624495993414831739884117400316108187802538697278369903361005502091018945283692180682482515780866407896526061389527762642178553338623879743553826171709562830602804342032731134119871315838712294327765064493950912749979847359445033803454128879958744466672089105419889411858195882676985224051926919567530515314857636191595723310086126340599109951341429681453418258926561690804334072443975500468225151170790812133132566662475217867488910291950665694124500571777341263340937021529614752550315170040484677263180456077239884935296147411182433102419219243560000075148106737046119182476404597396864643312413161459474528791012564695765074676550096744417980985902824077276848207765983004293761027546497793398093569474851225044850035589887886763506521185491107986176069649144909574531971429415152742876346862114337746067875042890809760387770243015780603922596711554723927955431898876831244720531898631798726516395069074685694965943172176387544721688853377868576242902021378796495595292172630585201142006939135542544399624872339068230677776735239285851152425247491650277959894844878701992722066459065494662650974474137644174357914199509855859680558770133423238030264503179940046763891623642747242130244455778213460628704758683790811609914640244645439989959220777948398356725225044322889557645094481318795033075901128676171242456864733029142434745041820015941695522051075164563570342363558744109811699533128363563739472820217899983549331473304910133659856508163083937230399405715468435593410214100310551062632625863938560916628807327486632389390364012051980534257025599991985105969126602481640851155452762251621712228101303725596167395679935995257076503945332296836903822091938226359816016383476653403764123895639424990547572659401962207965459344453512055755025310945894735551353123810858032961853145483011723950446694725095709364728381739255652639365987786780789409890079665686338144997311105308067521994924676128748640027134060855000236629692799878039223693574033930747340610787170296461256119824885868166212869305044593835068711254358885734094812363032925691104549098193874719781748744662568473365259942667729255930047107725916978990660947647285148732737913530231877806054243497383452022495697732490837002266127454779050020180675468562231962218634944600728543092107730308843812623443219836349356330914698185062382088241619043991764367311552991485200168788242138900549581516578072540309688923787083979142920558584557065363216824678637765637377296783746573465456318429674472209254059690295997433876823497740670637375375297429745735461170571193514569207933892808416001571500292540797572735229961252786580937084706899385813661355848886085207611892480058966006004243879802742884015315587879539969625788064755637897540010004800306268820593909606185268567320110457589810011566475531939916631371104462021515740491434990705479304129888886592672241879795770139385680553292545138652916882376507799084828708181572267650224212174700924617640360373964049725558611639858942241586756766475601215944788225183873708964037260929331604398432999154144639640585996508486120703135304493735048328268938117484357126784627059621652851631027131901441625258726195286157132151018091250185654851423154587306091868194775150364472725926387023057056281710962709673895742583057311128961225988395047197907562445492130749959613661212244227549324109425652455942599742947351235112922101767005638525391862775469073982284101120726349599638158203681902283745195881762731170328134943326352687003126174028737760204479128429430552504136308127495929819328049901310228733562604774333193070855891058080241046294149123430414653329416729674167297858763362563543883108294503216730819293754597431798566079979369590435109697992257081929908365461705315949222266798873281439023081646222206385644205564783263685014090532736992648758334730237113629543772839349267118288132676887270171780653503764037534013891513002025146323705274764843036404125422819363843756287104533026939044615700019281879130914684915381801642292735115542495198765494646234613966372538206021379923157737078972793998951692234702364564450623935121822110201258589561494235263335404649774654031357136062940295740531378602947826344903497329872662007066293962186937257337056704974046962638953637436469830559883012774441452523985634034305556353405545363691341943646388206249929345568024991274573790037935502406529126739912998084228296436740462289746300214314314429627561423373369673651308036071022145617704268574323416004926859309352661076004252961576963906380331239342512820772393315733633222433908113811534219990955067057212420283723229498971418696803741369312248125402016216966245313109430233415846528190352074828829567513005151225255450518320563228817331079297304738986948628067912980679104271967854865993980794993622273552171322305381590703464621894117940665752569450712570890170665917290547599356522420833071876710182271475414607329303022494638636828436833720147550291521888847588806114520723135524132291351626372666636136918946411777138603231671547526792953925287918934981710394697221013846798815665185746518657721883920299740861900627472289850389293686742835397769601918666362382909748822117501601715826829011529104012548408772953016228927612016497681199929704527446775434848759588277890305443898187138196125245726112726824392583255747865324386438454850346845758551884928636191862293791844890288854913518063501115749755352333371078872940028268193625580737714141572735590400601714873176545116977881712202784061043440281064173728642793009342657337382310692423932458679390403086469743035125830034880922920388911546730399475146712969384495672955809134223633544021649329674090491684427351861681831335044135493672515198416105303815118989707157131958727045664035228047986490997404627749261708317467055957148218725300270501299472165419888422796565414190037850287590379800551390462881122885513599691458659579675340508215624212522172495830870024048657077960222039900446870833500417884004573120050848560545124899237712217515839593065214733678430387722985843771368681569440245508139177464302915821175440390584004451123345207017367215345100894973902718928410601239432139041993810537920357876104772665426833136207398820168714292682282635765295808782053014695874272764594763191536404008641472731464869549202783349689473771129651304908355439039723415353256600299902611647938303853011773056938308031361249174966215340952799657951528143048046288708208175708957983275803522283530832578724100531275976389707659519702454603516524790275344905941225020926755241504345629876199113852751366664747367902510779306419020097028113658790459102254758984347347834390254299862155674619343118688008666474677101765873861547805562346479775536008734516732117293352514947418058454705679558930603278442289261259531397628557007153351318587970694399077197833040374601766273234854278070245021957547173962366316337397440164540419467799195180266725771848695388766566687531059398694187163426302909210438513862978543545429073377720027423995482350070724739537697066469463746762417266603042802251235072813490732436262581966515902393484131428554413688010507433734627187908783207649111573209932385931595975182318692568007682957213617940546739073313377219305857815980730218682814933584511570420702041845521132754889041954472691687443346452137614610599334726664051465344556866524534307607856793449575241431506402238496483954994603577812973400862128830968192225977327700988580631736976628858446009129716217227587851041575713406617743970360716366919152155961533698386880152771876614598957929661546429581915629322779781908025268430267096958004091138105298629631434200506814749234402004778549330387781980798791256040126407982927525517965714402363724960191586320518197668242552000356670719841891588225481105194723812740756264790935351950029538280558742116203320465168024678190113359663870220631052476274401385616493162695824088826716507717866898366208719092576225476021550369397967174057813351081458164891235203549745047194654777073082331947264559854743714231137850292441038581113423614880398077052898606072417503267032389948161014856894406966487326164879727300022299584590794548019729271642811879466819482144291237615176930248103822461260458307359779576059622205498069487857814773861075305770321906231101949313125263729590251530109893744078786964055669448583182898944326972799324942247027744291029291519629737200152669867917582571047815950062236412390716316116607528269857924133370938562113071694146792783754183146968058528638390523714004971713321245846366629731938962691634548032970112297025767869745694471513194830125566408598986318053810064216676561426199593530425696821152789207415591181291872104728256288171331637134824063952970972146888349555992556037267924972489402502924321297880829345142062607405222037299661896973067744274690751791882007472952421905032021544864881196166595977060069681194741523913883220114771923263069734131652329828771186831879293356238271808133920650125262665955230083215495593190580638243823846503432693138826984839515317901783808613202357964443427697492820537595908251579272050149172430325934340646440577009320807018183945649712239223368146191585065538109251038950172887400916287798315472116977763564854811050129113573932997400500046779354330086922835964897030284337167828509339115665576441348018822350493105721126943817924803967835974948570689885678085664143549748025153466801092601507727206575513787936451747690040490071424199775521992522395847227270515394899882039808435089523959484196745098566251659069436290285360585061038720085491023062449756333095498594523524567656985124587661508360768651653058547809366385275470907837018707983972867354704799354333972738552642587963028201866806090286295355687609871179620345899512230352899911446791980194819699269386983461865712044555898250261726889356064734362595489816631193913854038276969433330763310783270292135894121498335915623023979629164721827167271188889801822023819616352081071358498051469120495401344687753078545488097489162353516732495179900733622677111791997095581421169421262952907354241472100263187326194003916826420963825333869973314181055816562875051012063998007642673603603406940762760844080923256458089625188649942287172171124165351954675634977782502523236903635434099242249403634493334952579402319651945944018524270658742697026101414436716495709733252323844376396224477615123556263235667275529010737602295967703536420398637882182569980488080439592862318475178833136077936652373447611807075579669404073645707282556721700381896309652813009153691457257711456121597994174892323959824732028391584098125712336309095932770364837019417340877369007413334573540659293523235563329256124340091978409404060815073542920797249300720492410280194235342407182155237430774387157372085802952211230531140943797596573656345317698414231421631353851372955850781401460185120747128514441867641438000746581927427300176478157243104988510934823274811735395609241467056893340487485213935928349548432016004305511941816221906467197384178074030525951348393740574713767213138155627016898720431513047306623683777961249470318517139936815632157806361010883971459344669765420211238897795238396401178416176980986788343485542325594378540353265342826428040185546401073858606391256588145328478167373191344672029676437364941496221881833047123544782672236381715668833567161184352543558193615498492391802916662260644789671703669953495773846214279434898184774159062329507658481542216107367703167364262371242527073614362656369327568926167672950772184730334229684460802150211856510367678191676015883791596565843227304939937828622758616218232799322406615646338843089950037217107301379419494369593724989539063761302922470337201129794964146707213015701424027046397546739992378314328497456168013932745645256961571488096454289971815691527169414629938663460222284206186919382603969068684664172329699996642855013442570329175173612651400423823473077555148895501791854102803503577455788384277762269388042018079511094510807854784854145365328870408202008358533506558335513117543701427892824488774570893628945735894511296759694728474147607790936760315513769445814102265558080970956460709247087782695061356905329182000344514285572500464014155215114586896388966261733332269775536063817798109919503128241185351219508025898423265102058597020705274268880475887662403307938612534221095808226331060709771284766722278060685837925228067718207684685362738127057044373984969592167590256577300788958744336597989281130017118957182233714861443255537996429515639313382076135056580637949200156945392227670180284408473037096491726095566794978260058724685720815612762982084450380439681233817868612977213995463263497066349731539672622529758345319568525594718241694226586279527329592082089303548916522533552792699935815821073247641958410276897685034918382255121934763878527457737931344128387286016111395787491820546964876441091504576447948081440411433661181296631918141263006624748542652925698703764806261302481834465816828645164203239159499370498160622839873843066680273844897280124593772307046033127410492410436147612903150385139923291629142207152538429585380403170061561654437118476880243941250123920217352957378677144894089421431631762066524732271276104849566277715922352995112710007901394131115724247075862229458849140000129339075376814490255120071041935716880541052491468360984466859859749130052799905199506612638604709774185788422429494206639551640396513257189334331944931143113401766452307501198738247402565768765557531735111263205347591424919946212386408628041778196381054272765333823257622975632769245239599676200704442146996680312616782889652856251461185567055320000183015666821068008009989194541176971154497040460928771444986445604596294199694571696568516990338736314150361624397756685081443390502837581258872200893145663106499236777549723207594043758174805963482158175890736933818599711490744802499248894125412813961396622941620174753198152866678621243117012828601607740964036723699004150143940323422235472594829330082186900974724472758210371981442133523915795778401788613888429647430372295798548016004450024813735529358100038340976885425237531926647142897438454155133126148321227535141023858940653558026362878923175026571381479340404735903985202394225019460422681808890751477397179034582436484455803695409265409097047744699985690014616201754940048350592274479646271653475052451174511809972082494593699129033778743593877979813365825299252531895107980552507302366147039030086623083664921339822299322218419656509761720638537341187947106151954001577461349178736035389643895324017088111649634646223359608120808986169146753094026572039530301513493608744429367403634032396662965032097014268956784345585418381689072955116885535211772265370183011137902438298218954258643161477106190884195689129834417210966636179304721014559150001070445578625808460015599817083779345838255104893863395824378108801920056519610018665692522828710764478430325480467836317893688440024494500992934972905507373323729989265546450883636636567371871321060459993457903576561592359195715339400041369843202073792687613019535551643513569145952240256887259504915957255488117471925590763380801198256324360832265936738928696911444318485300136568920212574882793614785547409635628970559904279463623452897799357234506705705094685613194188517763828351617554381600927146260338993295383430834969718489288136140527427833210112946156647612121304062844071140708249231479837205781818002126089068458864013780402355264071693370189912603106564990488036190421279486141776567092666180577320038103709560429623199807663614083287829007807675935821887465293674938434531766377794701150655722032649500960228863613870029091909183972796024477233680672481925155429517041156968472992400669818188248191992762978275810977025558447920804752840581399069015115860128313348984978946766192562926792331052420182717141723395196876716344641476556309808690642013026116163560395597255806564875647896049823875769298243790912419201955893459105110140574303283212676577425620180625361526747666906802296417996818991694397438562434501065749280413919569844377903734238786353268325599504169645725240956951037596400757700672560863828275998968752395202453064828009944793768005612814754896598927668191095089656724818827363957891050005642418299971002339115570183347243152447778187818661142170879803369278339857541271313343629182230500522398603027907535505981498136699291628268865194177971564456159716497039672585467753979314835041853129048530462731687409914387255257835052176648478772764559130081859100602199820905954250924825288152198430580249015079801082421536496397786298322524995155348252735352154478465621859051443591678846680002982132603255566091372742029246780563805224038560090463220385450757559210201621538016192650109149687414256005836668699412746361726100262310236673495052225823816075060260241478892165948298793851920449762217609962000154482981579081041198261091487733516685385568781380408159051981623591772397272151387764029066963790725416072102086987706595024442933742835668899166450833514891041461958750066109122955639911827050999004038543975679493634732311004453279438905371991532319228163566959757411999865039893191119737488055325790118110918311017547451898624406803867631054059825923507777554711690492618442492335169919242884226220500098203559540267458132649050925478669165197508559964378078563783999207183031401785472732317346735853750407178601439103398244503177718372081520141573391213059361935208916864867404187798174925633377663342844339593040253219794655067449550962376934480826673407764355969826269435853956371705655718441100756190045121684033893770314594866059578810421557609666594216596743238500611927236504823978382192618019604325843009104476905851639596837426982505134221518218793308056878126273548902073186087222981492196608553870337803623033778262931764786797928223278890412341602587277741791930005575883852237741171874225608993539464392048517528151618198851596508768385421398113116490744060354709762865353928714505596400480300444428827725574413684966475159245221939120553928483001308974679861354808067740140025783950154015581752546025663457598350206830054247134646597901443815075928018451046718313223105240667496012948354314554909985262110501383582274449222004359646623340436569958043330397264964311424072128994919276504751526674354706410181516142022038771771155346804575169336278473541049488915627365443658853558743451070312433200889206677285151681219984055564233244338578131809347110302659124687827393474067278877735083851781785015994088731006482231490576465358180034350688982959450917221495303268420628588969503670921608097004569533569961902467976339397509671193931407682467468897014282537090947269769452865000000398285173166357290904949570858093932285069679285470054776591853171234805943648294380876888317021721338404162221240263899008185915159032564215640333182531694159623130087655636683137462878177008508589876322326791485602223543523898713442306210736266599499175657217809840346373314116155187643014435590445843718706852465937291082017581839293820532346954088751578400827709601543102467736272190748143080634774913233958286126874686269477250841462174049270654788013265073137316751361635808713228840250312209579513481868430618694837991711073828371042122215211505995152406290745208271523667408768783350045586815387630050097691571794555988170211469727665496658870991494485484519940380391605392803467021954955060208846632679999110808617151653535745132167198913567610929779583598760467947339370055550618348668209373836795908172554784555035750114195137419916642244679080920107314647461542715709323904029820512411201150212909624634109801104731205085054637039550351689947403512488439772694429254112074049625124677234766739590310534599307716051829929232126047783994169579185953994566344813794298355910177758823076369069696811623120309260143660206619932014762320792997361819770631599377106838922744964800480503848544501627295394958581069198329679250299948336818823207067668180933738872442436490953564638902000155021778932346919373817907007250225196961811666044731926045826874305860082299371515299807362582531339783910782675580379085555815032840052419754043381792865831265501290726826147112960492596700480548456382470556435616123355888856211800507931887262865026540499545281045512714119026601408581562960916819787682267282346725996946311334074899362441812188948518604694884062110678116959107137952062468134339498053220759762915524581253611767282143700943805241081188299443158275723645839314839620421779886074406808888896624527422499702036971818021810957541159092969335355248764357836772585874008642398339591317565297478000267789616211008246779389812662554095820302038638897912557104711900048522673927361577238942319594259994964302909992318545387630062157883174766628947401113401429507365097748894293727649185843677649632758121543981981149228403989300022176580128979987503514456754526660615608405279689079811127918805841088188660833306923155853466313598041578401694660991689353706880616304287605300908850178618681134211688388100065351509671189647749933734997834244522153987886370697487467637105143332393744510885955621023585368780357966892285033446669059187251833180142011245821538315698868384036386228336756955076436407155814754303296519713959930029366963526260831515902615318148023648833024885350666370469578334753884758185312289130764690065539358512492865875653785759836290599803119328158692992794936333498715321551697490638242997855942781052037136106982518951844284119404455150581366262832587929208311250051635944371257717040549146320200852665485145800569693529688297299240177590435041691763638855756459271009783909732552527521843781319568042865193213443341926137237865711668305124144030627570919779442029955434260006938618852369634773119135318041848926981420122858964346410770753604964699691295817980287244400523276058824946072605037636674591896635087473403686076605054044698310613629981181434732917395079305126121922612325200820595100800853840757130021631264961167217691828956413041024034741838968672254450326040395875434451113981627475179862249910820513684182864337632277945796995892711088678227326650775373038434943773579820060624799886946005423858562681778715376223010168276889646939821370535788406262294103624315929106670813590121991122789846602199636424018522019126031495707109783477905566252937869160055904225023336091263961878691856756263077547710540923250611155739927009593097671655400148956302433610608881355550750029161273310696549239585955493520928457614266583806946930660102087016438333871990485106759055561207043765165070649722530134617169244489706752214142734315071232390646657838731036857161901570145720320203521994014345800127558565318417391884079918405358775109424696275278203694177637259631042984760403461852130079170222967882161840161650359923202798731820900113009259515657942232579544199087996973252721086223989017809659159034174280599608096810382993058765391150671323564796343420094382180845949808477998067801918224482548910697821659648945339676593137701558832400622436281335922304080134845958863343553935522782559046977203156301592565517526912147185935582282828889291939990974009621704023140975212716098608713695128120164661256185836013272733945984674005170411914102921401924178626934307707142201314658411949970249644659886216999334331107167917562238033851170820456809044234677784731899042807961209793627868591778118222173660380302970592368737644971385523293385920555672662945155938707528978150090649902008634439146197589960125520838684781778166700067593371012013901409836579150817350111691840365591861147702335596723934402150909601209636982247533802053136779979862642291735032377599748667517124188713069029642904106343170168697262079464682960491052980041029743678461737571927036956128976670696067125845576370715136479273966082292574934045534380688664561052527667170688562614134043756431730651672573203279992971344734192617650693368162737938173364917342145546873014679346773053401300578421235361866739469747090003803057718904864151357659763615816445770274576776219894758183748516314089036627061033657325348522423656611192631684578897883304459119688267870018735799235960352766425440928930937619323976377123457297869677889431816879697966686123785380647954329603936643039636583124910045586545056078254205717084063527093334694017443761645060840579341457237952675855321175992284780025064126338306054945992586170621179254283256391323383344121482869098096990181403253769472871246853803564104191138382766127479698311608954282079180065734341456153827694231718141267177893381131808673485024574082771108915178386389943596816972304261863565523502665097637069281554617650917857925168149918388524213510527012110837367180074014298104651122683870184008117078578068210447894992636254019925229624775698953301898332095621511429787173020253884228424971934298798525596554051884285260107107424916613387866635490125844316426777578494531685917893891464052546033474542262108723957935393555531880187120239854152627477818328602010017597074014317598409432312155962411411318385571834119727604022585555012904863876374403109358094498932239895628990821207689322818354670936168000881131315210976787325348085087621268313962526405694114048620988679234273831523711732525802156612936197693001251329297170904450375419125186749491248750641247156233437590709730364199172213091589143270051924687785922796900300235032695919560724196566205806644134581829130913552125723167039877431655318747084852275456433119876477582553115615315366187428103164257801054197777598127311536215062736071014856076645922107569776826628218967176244222697122156134470314127022899295775089661330159706976870494199989071027575346859651090146449028467079873761587480093628342150061131045146414549340896888944435583683357818827731078084745223835926351636037577055848991506805125499209358236485856433065892410843164766531651568427616240889046949307081701633244045587498356561874357841609507166864246687180648619366487202906981841906722261639737516435808664694530184047993289864769994302866610392570836226277172596961761662859400074339331047167622076838388017997795052320154166484346795915037784003903408195848453298686498065591644230375565653319945037723641314657612055961164251075294577507359907808993812312893329391683560990690425860235709560157902778924197046193766262785374151214273005164624040679800737524083981027729081725595158654947946469789666519102322877816062371162420539481544782790210784414275031121932085191493494100910884209300622864663099563157722966066704223157224407122674714445800740049694494434676316112714984170705472035006537186762457083030006617569681590403564179835095440486425247040143947662619286074316132733809825113884751512398073563809492207044136932537144627605894753978725375039480567660259358424171974879123237543539087460100789404760363606091272995236966268626697198338909331649387821550362371872583625940258962410048591094844532247929639523835174523377772553024302310468781137403733281937433484637994791798466589700532979825848521929775779450935575790411101004248851310016687479482325697569061016622787839464282446059794156178987247014060551544066670921251470095782351495814860594013734517955874117890816896768409043101584286011305680028947571017671225135560797905288908118202168011225833680298052033171065089134216406939016004719151297389900274805829930787038973519742271528493558372340599313322950242725965583211959293556701350488983768428786756993207756055783976648479831041535347671539482544037145800945488515644681477629639138742602609878781802290831477544634269845873452396851232647420957999482852060322181926296176609011478075329699098676566088438852875494709442638682367833773772527113675969868016768967071600114888681129949012058333718978748440077201476925518590485787166603546568799459553171741284825058072283799735550125824255601719752799803383511183296139170560499679176453126108274883860652007837265674524184143944440003713546876364012666630950766898470535533281842206616001518921835831325065013734459113312241922862523741846474992715065024530857145882586104624129987218203728900037428702354209566237051585927986489332779359319119360143620159048368404657943971470647187263399921264398093867163495586931032442518699166280969667355972282975231494051487097790757807891690712741969234587210254135960333278500004315014558972911847250953044453991590203063138528462899410269521773892142203342672908818913956804086581612656364181660233875921095120992101124035605781253483975568051807260972747475927982535691408391915773253693800636369344996558332767645472740221716438942914494119596469477291672392719740535323700778079652157723200170281990026548754591166689536636249008754671574815123642820275814137431124772866176195746369853966433615079632435109786649713204491089526238867187835837697131367954300591251486058349660542856356822850048391487727210841100580304055211612913378579704301608994438275221021342592822209388954876210347664825415140675396203946280650999489284091796227460955879744314903689024117291394316213156082942060052326398909613509497493801184092725600138511576602191507244649539764166366731771920670461507116771480947364641010290515658354414651556358565882801923419089414743778895154362170305400947714607078909851568771644359294549912941624492678712409613765602834074968809077251380409729226666597670571850736931065591938649882722828305283008678451243637962371859604367447848825631595288311990725252008811870726605192951976998850850880447291937379584472648634685604845132185282147656182795073434803891597681152384174871153672786375573444836565774128584091261026476651088159216322371158328391593146109318930327473651599903974000564710644348018380730588983050386005405471421958090419516941947390059344410255169023930287233657037959467042512726754888658419552116464893784435194512702703535117125685347158384973219734170626171280513843733148565848652728383392131864308350135752580728857822957618927611720291522267042791984530850167860995737422164883117118248542105077668111326157052612332336345578734480077528784589330769337439806360367948993677367620499998013027554586784727516178272337260798907691296134310745528395581672813805463967942885646376112446644221318340997291930292095859603927439747325051504920165397979253410191501265667575321180465331182803922378196197439220570383795536721411247843662388697027287840210020222791164409633183165672238163961197367448485142657620871232742636714076848803666874025905101795803687422302172801323174265952984715956415217768127728464966207515332296861760097937132400251042623115239751280871476364634588653907801282486110777992833993698264899367423152275666592759994380622100118465371953452547308270089806242882638985630890590648948964749043440168038392804959989690312816089631238042378459192242763469637166849881520175865492556452797662620589968374860962569437973882322583854293130645626943030528566826930555711891841615542866620917466962788735606281462815520357146641529875893603141884488401754211079216619680769031450935675025607933394681540790184939611986121963224900253908686719260948533900446811080824385178984155153079480721803064894354968539446810075585358249546708836582296448126885766476404220291724751777878703125358035529354191088925719072279978586031734749007985245926882211849457752325173017365175751571737827413789349450852132281262623003981926451241731531899697753124206912947228396033719541429360337627084600329128769610811712459833092177256843316924329264133204914128698183161949717390906947201316060501602866338272306434360826866170274283902915469891681860453732950978228711791019946555618607727432269958221019323132263085651257213282129710098777931245714998780430076193723657897549266839642226205748369250153505283043873329904089953749916191958821233704815624817072611597561758875446204080770622918651158042277175905988740159383922400098372609583573711646701898624394000813682485758600487534142585384038380925882868799504960497250732455102744616934800901730014658643479574425743549683413353391606756581340988281798183362025136337109623855686404599493812660011886922636601280647612209907472080563746599023472280424095947526411743981419312018945498284352242186486269505020012288788533964121418602932205699364000315976130682117114223457899365172010701770861263156014487976568889595474971591444410049550536268725234216464843198393531884365989392415291686040090019120028764801704172052703026038180715226298760707093137334015085737041782095462887346514312088880692780357185667480089733917016570839965049367686110302822393306780924763880195039811375182166313938755066579658697320744504080584747650084709298977141766581561042278403552019102049880070202685775890965983556690329214799089742265840621467490050461453435897626207813048989245922742917479887623276530439614943350386362798674994777093061033218881856157958006148701716825982020397291728775219615468135674429794430378704523384514347069241907173615841419654480090099957628123867551010825744104238161485976659563032741169502612523070111184837086537129066328325857246790386271961365597287254757653929632733669135096897362792885873420276328006452055598362009799293291755636233482615455337077210137126380143219679775409952979980114222852804167605796801086021625783058902104374970480850176609349899656579241993114924751558093293893615914011388944021434746159592237679600683970784533275782459859603324732476277441302109925116239992629533926620790200449227865372377193567911700965122831418030230271617699835596185278589301807348746683336895114074425127763658578285170602135448408845345258480943762520373838946637377610265722680927827965596594715166413869833434460640556336424110831608046950213082443928538941059337938670435032303530154853133723497734324016951172620488752285706221809418810962720581082292871075470456961659834194289580821963717604831341011730991715088324583988888489734941979845277574752903677537857467231937916827164279655420600770138538912214508267882906519152972748847496873178274383449363285355565377941755524730686910666288314772893831948660356771116725228486889862854249413875040215336512541235631209698386742535309122734618887700398675300235173713856847101970643463643887495716173202107181405964785466356003802457245298231088989717214475137955179425246072259287987347398156534405464868854120780494317180378587359410424611044807235021376795087688716602233378173715319317170810556363878725417202803311362835999595711376533171619298200775226108814020507276345629377374732146592266061695896875001748606843131906231682244777653152329996492265953496292019782484383703203079304075085921032984919500847184721546668377118346405362980593506173787118271912415823704106017627745592741543412902447187120492483215310688257676344488141967263293085090641882410494901113544670647670162829168175519093618575760713421231277201521514060846870842403535821552462096061226572852629466761155768634205868905499258568948899980016327655652711363724522654389626748116981729092244326090498543486782100405652716551804139859034483733873212171375950196873874319877599340432423502195353992570617685974547670674380292714132254255222206097083880021994684590407647089075123393005292274431256647893168260966334045711319468806873246821101058145748237535301619008391433252914272535086049576548112450428107888611188460928265227029508695017825769035053923196625415797330433968516404811909727105524383489345631537453053758301120195100182199246043190862345388859225664156847781070021840792916046529113476273787317967250382631760529639723752651062193006429691566017135068989074277992863765678799155561921633527847366026119571783058772970079330027539042877389406863689883329570612429517554931116048188866076606745197557085091370920893152749937541788918184289932942385086779802784106275882261986169820682998801392776930784741152768195230301545425867032040837736149747757268050052073436223244209355909009968466855668300850882789556638626038111666018699983721956438487567157112391058222649087370181066400386719730721829267855545364416209139701149825833235241643140417601192657582391642123257178083934453300453594877859191271877853163078258434523666943111757733736076667023175824075194011758347132100645733904982045208869665703408088478678473893720973019925113968409016230492580956055595680081254061129966220391431565126052879816390476640016625016998277122131477623800955461524437923995863753942672781660867190432604345116796129793720948101547334549507134760475484963510676104387415469266530386862687453592886231296764122332094147109064891568042645810977326361587284386438432940220282785866934210320126206516411986814874550059589652911028264555051322351179476362870894520326438873220942047440321063621844110699397624268383459178366897881008033141652805770176964126776987379311180025613130829553205628855207247330189344804188783310274602381214517500572443833180265889142567878736109255883766747675806447401620257578951577740688906301526346697919960277094633063643164582269498953564819220135083229768413420056868598709741074034043550066457501156691219924224156838422648329674484848744498493186093492198414130843113250574100645177156063545064917293090884143321676976264430363205903377849070970394961149512598645399342281254724584865267226683018311373220359592646366953762841550509639756883044154385761696514834676069873685667016761039933564495538542289185918525510166600321621160717211211558842332953749485228416985880367813609474401639861978373461784219046788216902086550484516638644343866037279405390413814917424806594405770707940587612425775986377804400834816118885470469724233988754178473046467861074216195385883832921050720612674256387836036415590122590657443057171518647642999171875512049912326211450786950748844522311332854006559874155865218497002383591908950188498169545094529020361373832905986918283409328630840896451368871910968832070488992285061970359758278117995915516410994651569764053973183640002572402838881590729593278887677805633772984599016839464687674142814784081712500033723307506048811545279254790746829460366594248800308346125565679210261767430199595856031699994126504233826200353377298588819387599333261285204363893439017715874918034091399769509740962828708604535209030985010761070603759938018673061978545833539849913169961130985542819415824086891025271829614424640571461093897522375682874348324244001032719127211096346589080070514730825875380623891285112763951737610783608638101331115052111448366644600696082190708102975806168070484899292125332608965701651524578972789299400523816870281528508933471591794580826095168091797338634507838223303959740937061128927752967961018611609958128684376223883649554341003308160028539597970368147307448128483711483574598663101023376730981519072506294197860923728921392559546642162068721208752313389692718347524655141589108554877546211096194724506823326435769609807070914246792611009579737955336276963377986741220807710009317514014918365778653313048400165470628916084469545479921814931061030850262883730774153949592831081925636988884632862780934763080476915069656143193504930746316817375868571862255165845643480325847653001417494789953134713612936061100330131097640341463085200775220606916714505264754342697806865922832819395505680161258990730951623386904705149317654628498662117550271532762468175619815988130162119420674477121185823810080226247604556802008541436939755697410331211581209101464240961466584229777712700460042157884771316586395774951716755974586422622309863155601524327645559648476287512587928253468671205421820185709442707035640007176694071052738373853394000643273337992401766114614189375386207652781588016706533660747651763305145297504395855448833298586095245619697023442198105105836376500825197347878120799057377784647950201828372643400992197321003110242596773716671366400544105090921097145160066176430934583474036026662258479779614667059766887046169123092158518717444600303231348374738786773829879459491165484989332691338150479502335323066686985497635602636419934736905277478114589181959263821407802010346156917683265560329340502055888698846000351387161187568301485001813861518729666699173888274455514269152819741945373851795297646342748825684352005586237583651508116617916370776257409373457846573773135222171945558398096429856973977139051129869738496634725675753221526806738302631955250012356726531790558852907374873120175786389403959305858206139746331932606745509440625971464589911179629795570809240755169903149838820894449463675245081231617417307062995646515558743797138871471085795288168707845282542233723777703793905365786092562603696897181077711190408056114394916880880314591910364148359288513859695896075125628349380220045017254592170351388438200933130068675293853731373149942542338332114225907414333153750526101975687541254686386283523297474788166627109401200251439004446002177704905742193735069429239620937014585486487987693833344164925917390662075092965248024375771009151320033528462929987401800456557416221003249289492262118433661159408792412280329786553651210749952309624228951862861439394987960819105563704345179438588787728735526474620930235653110892240410710298995623460392799469159215847969253423308523713742754833077059709955882110456097884329126480286488886227362610596167842250156269408180908969434637526559679907061061247784738830278820955209531311606409010848849168822144121111396786120719757692985912423078860461583817737547058130663260965892188933526604219633988760068819518132806258296650775771461269368886252241012828606438542839839673349298178604578525895166018195478841985027648040274110922945767721954887895043175667207686657829538431622368323041055795092121009729966297644067087256465049799231444758575486920264305053475435844929780816296707875519544294199167189470828808872238148337097285218968493022348009771815287881771559884143194638331040886930210946990736669373384145338650251027717927378638276501340219549078284516708633513741032018530952392914051917548862680287151936748300913034068311695884238676136218513993784071142048767359870728889076957513179164507637669853516765440809162681942488665538882694493960759665425484964349445300229061433877786623876072079128893886025462326535046411421156336788256188530761971207919303217445680718320184625026686885616437177620010961403649241359474976104781940009155017695570372057406504598852640647023271153904780652424663313025778603251343609531878692246161991313465706791451135465654272671609346627307613985531398751596046785071136788666841194222200584718886838926316310185825682364739902719486873223535154834766783096677291533843048799390988709523565827772594285825278966797639231753222556233531632339326501266669264493377907868430664499000456042589769658170888876048248412983188102137849516455776263330263291633461572998124684872136931441458553792116489845248944405523521293029554883527981697468991811800283010181443934166044783279988296392153531769458761229009356698098145060305124519868121004844112436058020911503199050596944140656067506214976937833356604629332600317115651935409661159140280660843317489698958938378590774756225581750738309698515322648456323961007695810983642920679184955645689119997338130808361123395609889416924836957223798735064039205148415179797693742542497570822919085875885520532348370713942167559712323405645555312906928436606048823089085153653872905387405781140772953226811132020597568203863620937302962071280344489597552268971820216481808424118310595428842158710089400618308779228952456700317034794801807599335545263380703590672180215162020210936892631903482139704196589168979145990017644390376946408259575643189585752836039856222269005477885604584021132407819326653669233473908711834418974692113720717944204391417055990126747547301602764387668273778712978766780643646395173700315076624509357878743001184201264435712671870352620300317086757279821097751671141387832655389456505067118574294856634380468882770013007056935957598596039961815017032959780375340604310549045669397737172079649296315512834577198950502641571632082945967894730246457060323238423466322859147926133900205251754691728394322694183113399677103849722128334435593217247107479600970423544530371552855371016602663516659090498353042429070539860710256689838997280712306518579334955246738083108965866790493979867812579113869515226510742823535689052820406439512143695123778587740815281432975267097733111731476350566500679032971141149021752373483721093866577890984059098691573116980365924365821149406969461493475431726977985830537172540444553026681189373733457925333744145520900281352012266647330847897207883251301759776924022971210771340099841957600849292793726141822778987342098296128179220818096106681534636927357608408509422555907081105889651059939236651176351902788443484759676433007651547035764352267743339273892682863347786243384880375648986584990774663847473803345800101353794663908829028211209922632648089592661766635721620045095385305352932589110794896258775854752084701541073712966954928393325258596489941164284544651850719328883286249403960909106705678633442909811998309940002651748928433837882656657531505756525756341242633374627880993871408204894089491341664597443233233747181197819356760954647201176482662449768482558372143883196743960099810901469695286897487274761090676664024426414088832992781851740034410068824123875492871129264559221845897640649005958861886962655785158954762646129427054991839304763478333248859355572853405619095204524660126218410014688293795825467082617731734431967653343111128148822813280759314916206271571477418280522163186940205497877314416761368355664124876137140857193466449117274137843836740903990491256899019967558860913895122318272465103915441348729609258042952408722287754213903636663996777519852767933462796602745256560647775433787768940677063394206355557357745877872435260500551028907827728687881979106479611319738967423712773789971562618031694741911476281772777974766316643015379477933261072256165275521336087422625720183517959712384592650414221453199572581942369508024286934647167474098554342276293864956521798371136937124201859341000694463016838130162300027911031073399109633615238359239675847019903377312854653711462190249821223103922246697998041217147036323739342265394311734286000495146858110925374708201932575597556261350052906944792798824291049874963474139379165191052816752972343611491473942151729376476636115797335634793560185348846435693098633308564478570320896173734260746503363707096669481492336155891976968758560053302797942234585318660872956081855761645585798872595100990092416292375811665546961795034022250560048504633367918302289570770757490852683347417524118260951184821583263988303958141550799670792315165562481791051306181579982436604686463968379977265834013378844958158808039337876800788219557899247163098478290534819732062295387945653843662380573839490522040490509040642060095331328214449900481806775193423312999774318402155193319119260700431419913860721091005741677983292001363766764075107757821336862019406239164723025178569757667169824343814542012802239531587414140701997010727467768619047143719058403895210248279902150799328670217818766735861189561846861052901650667596103865795566787939490980814591763989843097774282974399666952566401077847593185205137227621996478707009915131240945744524083634609724592685119532708760177732951000629327819243689325436182753315861696277397346621290181691765863441138893244305987988625983361293029710489628546490758199951533288785082097754169263625108561086662728517296252848136951812500240498090390742511235241311605553173773132205164641320984210559238710611421552464530524155681735718641595106392277894530579703436216813583472987508484333950783422158333100697236808257753220823472226588242414134332145600453023126459587767520574768297454019034391751044779143850075585306002300571911568534646362316873485621437187897896866681626636892584401258250953867991266135053319704626781191885060798401027065508202136410019276441208907850217052891938542018221747193878666505058890022724914287999446172256601026274792651891170300339752341215857752731995389294627105904798431037155643001377280366228099511251619862357532315588374653334895375141263869706394677115450722289516757121697665025082380274451048728041196297508521271080842452559993059693779399656658310174415469845811527783917357384489779819627611686068941723347797182975556829205835365465527738157843404583281292493780420303231004272777289277670455813971056120018492111277386598631847568033651695834988864515555512708795052076242232583078880154921333452310965595545013921799289039762719574995472756296391209953521341825549544353394398887671372685102486812715515531694653231864758890984047302352685575291189550007061092043870049400829704508988421050953667812923948109565017475761985360724617891292189987973058530619142351187428825018436917683452332664211001312737019840323385776886063325831006514277528672770516254549612616529008272176336182926802339030505258940487966659819469719997511048814237442677639143359875561648408329621385399361733507855051073022665144579622786056267618534546290173345490379425382379040405573707079091243197888051031558418848528427603359244361886494610373704230363243228875007736931436074327029321985311235902378457235554979252444082444970011418735772544164176597614361595335923705129218196458678501072187234093580239987355067381672710365277173855422265900729016735530595290163412095884709345325918980206802133896211543197607033977328178166987632167072608950311784402961009206356455937015716532564607110723128659596608605028024310261577760867989665844127236227599781480196104794157789793244463059563969293817536584617226619627936631330218311573926515034055423942800356771223694534903111552454598443961159304041640125742691091369398959810645988801838554827611658462644103579305010285520546280405111066586325277158371171421120814700788350055780042694564580651302653979012411697133159056161921090896750688790882630207642414308850940812364199261875644855475535587148646612337804076878858137933062266034498732164176934024708497559530586594488497261761675406285687238496415684435667349281727606956276977556908332334846827278233700778042610416901644520852787993645809717276386659076166085515794609404855577447226552775466321339890804431103466329517302047110344571416748225410595704032814470325455721890807373631480759570680469826601731800749688721518557369457789038586790911518614320384560459415881904532035709085054399812657252132977838527109052309931551624782878574438863533423700518317893899216491965662940180721964719952797242588900575910712191514539118341599467325164562391186035249822826705801919911542401786529190264278224041879635123424135615186415017776728572709735806021803967146517963575923902661741503866549362621053028442509647972066427198354238178646839769068818798047757180894694862969317655257897976904732856109304316492233480150988385731183658597134599947831211916910678098991418462299149276289593031166464334452876306672745824261129083769130905398026711545348184197455628036168350821793565268605239523441799973436421006396228766973752698413156091361594916792867021518366521841890686025785088195627694137280453402163707804748208942964705216504765587616722703829817096495091058609986491036705426398840355665914442909623097282142286794894351704797768147265691965092263216876909328303745075800871117969199708010055743716605129466572770691765012927768879360159210324517262479153960897525135368610378977303848953195850175845265791660542035212661407949555223296213160453064731067080075182735624354614044397186942210888102717253936783114405590542210049673307369792176490105435913349423184538856009900466253873765966720059390007308323329485420218847534151920092675062850187078924232822720340943734986139610656747733889686329761543594982515839520656874906613064030856568769707852020076609719259471850865178654338758015504162366920685956032973960460780386888341120089783544639236053094846359318305378338451523800579571859144925424223608571188369624368783225556336798060034692768436928236040435400547975881206101609649637338661258543217714878427440559782411939360013893444820168081608079184133562460100286095105654202269663154844840193384730795228659509207728188311250875696335552397604670022798084089544588820475940417361374130456853057409191371393313713454618271605475325518244794158144699983161697666701712224396000171597255747937831364372508691420282993018614490956702947940368252805271614502121787061376786557884197619637737830124144094261818018759111800346385844087186085784625102758504348043429883183836679021877563642950609635630955129286309672821681566828876130501307792714217476451722116251898775898656886137868200723109465750348518690205040065836669983118331570710038920577455169484202179187759996572190780604631185152320772768650954942153525733063789683570253487733844461809568664213987398201898858454630290005478124808852255639516826381182783450117957875050520353362023187344356059612569212851308207971837525012224972021669592311700370983876966043215394454702824715623998809141538744771307630861978237438392469011417963322215547811595192188676793769304029215544657737788295050603754460531958157698092263826625420071302413922562449426201824858529495939389777159025933130565094554302339455547569412166155799001156153934060761536022998560116257794999634467414775335824441519142331485155087332910897464412685634471251084541128752356293196874656641860011884360553413697283396534060167931344642263060241764361120114094002877376898832755091598815168552889935472801356958046952032608073888681004164156721135472249017078723197736622889537954200437148790157101893053148894526806714442258673069315406104657927148745436743275109013037976840649608269510417701108196349607151433261138984985326573578609491460080228848515763703492379964367825081002583030845548024749415814650059520242494176753646502815148451094284430637345021388014311888617881822489874855971353273487820084089468610008391248478780688185242052476806183873714622462497148836494165200715773881728374907375315617565622563202523750407263652650150247219747864505954207090858515763390016474694370217185820691885318305147708815846266963308902469500460231764227204648352743411173707103055902566187727488610813498442817531424004419834058287310101332912137235384302256340408685474005759249459565348802488110864514877341338146268815360380585556607471343329616466809687606916368454924829405613129960675792850115630859807297732762577825938764361047259694303875252368908822066521624160325538317452419166563944493348868808173493399461298751907946206800926993825193405334992517732048664198997885888646103653530517747881603593157628114336112767439716882352905663366971106719273744178646947912718396910080537157969912424501659105804852513910577783117553871804076102073829524290657267970860206110650707124229591000017492706769894356142983496229856335985758047387416814218324738878699248447375421639594220003174167618580177896610265617769582333465596656762550593191989187407718368349375978171169024473023623611123576230754685255925178980549920125909916394504948457513637406795421019502126622857286041357033045323965133116051579803858909969983517585829956164437022015339772997604253364851387771522146176911030053249392998859103723167027998013926687916710765480752406101259744496565531485753273463122561525063948583203985780450116250321189756842585918504372678914621363440756964020144400645531122364986670964442660097110225239942583628621030786967109814922193182055853721358433564060477107401409342136511223655759605452194101166850188963095039088520880188381042624612317495457814145482604207174925749238189380990264971754653077499852716133352216848759035457901841200022740680860614655128955308948140417506021100501439889694872470546125321896404258695810189964783584245842261874984722405778161151649416386782477525819089724616420129967140186923743803412212931404790834479342481200306429659234633955690327888839956436590621383622939926299761073954099064360587994971528413695766794832932657997256655017315786690461260603704861333792993142066709738239915063164247899091743634002921914034986580434493282371506781002529678298569301057421976663527633722080843918062525659309583131071123084885971883399793899455948920608491412124978089264380129279071352962590670110717797386329671301785146465516672041437834145997428266765968886921205285217943576221234332459192162732218264385222947164559487188560897228734487991858046951718056196805524105369654228500407880616875072110297498577035643644766013609243073780844578660631156040999727359183842877795307372834328684427652461649032668812220040659338299319563963462572883679994179304715307963834812606683799175420608344698338684664323065195990631013992212332502668885334607654635175499847361104572948893317943360056116099108630386361414135687912125619461328246201269642325023568726721524040515969441693939792055452474937556921558115485469599035513873779574308283696963888255238929473289732847073176303857197666120753661347936266626102656915323769027806671965940252425027852176743113939091154809946051663106214481698986623798075763176684391788789203611451355868480583810687673457752272026082040623266227191931182443695846625757482443864575434565284305970363814167247997282611670746704685432798302055923837301546580986138491613692178018939376689640702381433193160842217971716791020041532055370327030767403569629965452968822383879675347520845216676861074859807943653653875898790086477312582193693732017460924127106254264072626474238574254102527770574722930423040975361862006080999677058061720402346995849481952148123800918290757134938204886807003399115294669973057515713904343063910567732961879588562559775800992877350965713722430951420819448278948734237573193843342446005071224879735042390736165271389100297140931936925516255026370485273456373912218792080586054298504180900580653944989178095756113361056656339195420401920152889837293234556474011654825715819827021696392750711688355420835416692245199204000131212861687690350857917121097431320718854585431502584588686138360436105382438495746702298920627673255196978793562873109867766628545906664186346815466582053510286235852837836153834729992419885476800486843667618011465776551867450098547449641228364835017571217255087054811638442645185928693476475786121212218675299727416750906789043186401924875902789522706084498757439690410140034666547444104426451213000483918984985141613714830968971872145998594870707801425052455458439569976080572436878682462463099916886879189607357972008485459913981972641764267498537508512194192583998897073758534133010476541436377204411875321673382375116648824164318367700062680813826120531136384294894060024512861465163860582455572926803821276710578500921746512611560710011609734887814540546528736871426078691415382014494433092772814612552431066001613412244792239623629430857664458456727152226905032155025986012830233954736240792927924308860782588049410561941634271969985408703763445842936415581972152073817064686599761185201250373637321422359320653067025041625750388091490062607350439844799201125732631869432334956685271720657319819202281622290298744602191965903956928093904174155376645156400915289925153648419301191821140417908725749776081821925755752852055232478528522252846560847964912394644939149597762442208896318067074051898630713810175827503885389534230226592633593988222453111960439879532656405011560185363527514911249802022101078040057546221032973197647488551912008086099232693813447673966087487907631700964443869912828262638691272754312181239987224704570779430569568782451479284482293753727894208634166265291647205729137393845959033049731748955751241509847656247972162272265473616584306125268996569558011093196967615071600968009120563132480033580665075036056661455864638635863426245987200787542934558463734950587231377708550028501685027973511603269356300631570147638382785462454884541817816906774430994859399297741971338360856184505398540533906010611909077749032669926587808766700146238472454449016278632094672126295501767781016712147123245111325348157295359526654328035419646703843844311593282491517966741980925061485411385883298705062540358826739729042241549076370981693737788178650927624850392197111673634804801079883575418753746343190970766693165965553693088841539432526859544501331332616515954498599534095747600392773250837243667229018805488129245833328153490011064833319217267887674628599083815391874148531039453516206528918990421362324656949815565793785832242418484804203503206418934796117266455468289078681819366109042158782536237791329312347007783319406645372193863265990934538657966907716794479402866354480201231584593922618353666053595631924127841682559123619312986870588387967514621789768175424019463065895524192055799250864075626607230804127267315482441217777007845527813780996687685745789761037044019226561387636888401526936002613666442176933221486792261869581984672909067593293847620790505759814251379230256457881023845628352366803777310603350023694568824111103379283029089439732370271593890953735340461939935839259545915628882581286170776820485895777659845736496285783344026457126005717297470306074949547000027091386500990338366683714944083339040414041613585938828822917549108953644384113272415466145917650509727656765428550303653684209765050846379989738770143015389368447889981858578332457436248311055854425849750774109768656178003770283806618121701393079790258920639459465243200185767987226817341462232395573253365068181843170743940181314147185017849032618466479827638997298792816647316157798510678012511374040809379255866669092805143518906211838296080015240663677588520792104551402639184662971130852525810356518611502952201015306738253368505344056901978124663708746604180921417792714454433532383927877867443386424586560082069092196409102975736777902684997440155038815134376250745792165282360841929980145632669340511323526623270272907564474031825227925002966907683218091081433183429839721889019344927933117341874892171108676569233817265541231278775558765819219767026160208438770262853067437829867567109293397777102779631044273445114172379866140254647891216707691496161638599345245371103126003078649040042234324031038188222510862893979480407009878148956309920944128787684776329927135651057428368489980249500253885063110317270126136052563504088106722664438196312475585955986731794092130961211597430340434143562347152503636442897087880079328202811837468996500738187310353266282348371330171105299047069694219841578043441339656911278292952784811788438079860195465714986892424714193396499143970402413201750705984662726464420506370714405091842741397305156519735876544011010126857408193286074556531311364623950115865503518085590808079158120268879983860786289028922968234917847101739896866333795768816217150774973309159728411345843424117318407166308433649609600652503029653283441517523112974204475298026276583410253085025773455124690379700905144596246219270081127566482953578037431486266007812944534604859788148471366718691732599763177540449366365917647076622946202282191687704484041223571298028344290101358622724175000455662321543856175925674565896177105466229298635108884713216130523769744723469426557978301913798715305461350315207800897313050393727055513751145961305931130042954670305469005539950244783979973917939274956286717691732039448317361356433449915463263661498875653010830497723187366732792416574832597224794253222633270659532340884302622928294777142913563600118225643118624362883046162310660469152540217331011933796806970746957300443794061093308314907129421879017795967670494769498183890771286304209069427333925448740326866235747592947434082922214096315016630890677841959395898110468733600972420876300888115953660558260367148218852838941627007939999841346200822824237659585328268998994139739645765193338368833181986208558154806180569390077459172029836854337537953256631229485012011716336658769946595855191726488063895907091359882993023040224475096506387634848033572426244036161312988391119616804809506436475441980722979188598965252996387058819397620686355659773499936231286745076953341168045634624214797884978618601708227239121292746481684550696658034982947450357816789551482103760336155669886347306603217883019412568798650893387804440579641192131963061911603558726311508969442491128229613094656020924910499168277152539354918890808216857752625757156028513222591961768875993445112523404501638557163943839305085954370572755156808470489211914760544747957654354020186757296818274674307682115822181199766516875853796086326808458015598946748648250638737139414195375660841904810267653665521371921170308034572919629948490271508973243095313927589514046840295872658661732087818366302580200410820840644767830553890132819418899019548067197308372908376391033292104679255114170357582473499234153621257278666767463857964844905950405442611941757357405927912891830854198959518967230589181439772451902356763648028232563663838913674242770617265446466098920687993335442939839052589583406832052803887446613138187131917054641271559964123239925070510287583030265028251591864392832778356214696870386933904521516956742157250120830300739510518174892152135920712851241504705607771707298311582418242748294326984090610930929239530335880795084720630474686100921812802267268992754803915090959760005879758186888378383075323780268236119727489073383077175009508995998695563211850524729977051107552382268715322802381122618996687883716501654143102975171020985634021685304602852166280161504586753431743307339889324985708909093285470684349648650042832924760859498303574200503207916933146205009864613790454489362039097824648594946320817111564864999463727006256100421789278926960283585902881781819915709179291874521108666614860594303126654934687044301274583097044367458940946345913215049821743589546314070575156794458176365306563786627844337173247272111143583398391869565598279279275839145654314710070822500278979915536300357509844379641394270368229720724762596997496005095334783500216168045476540429358075986557179429507274319931627323473301981162080789727126040048923843632239289300801252145316606662351209759134441175836798820428764926766064599163362658634029496290398771177475245286823130803515662099241077936401193103992858689377444985179651505368786760568874088648926442767242329947271330619321108994587393448575607090576848789657020907759075895966824324196581394670311151749119441766680204966513387909525148148873630123064591550241386480303496711725519552903192578360766783627412381188621741398261575586154387009212975661033379711090851934086990950134279723213851580513598410708594058620629151344704523945434124361319944375687688491698254068657379003220914634477484161280190899161969853387391262970474197698079273022545551829210404981405110434532543231674249074171533638003748307322462825475259223362585026846013543694713610068952708615754930422708136891508623843570088706288114859647973460845292321378926845089368645339217855398950513920871716314354748216445014237956351466630715971501577550347470063039381200392141754304760575299721265493900545808545815349448420608347504235919366945203056880831945608079515541831478852129488699495334687765694539801734204149023866248392327377457639989663488605016110197384098751506212436161139228783786067639142229183867648656923691911340160609418416847819951430503022239619943250211216309605666077454019020318771265856434606337841183882245675767947437998659200945591437383891412722260239763455045115035335640961622192040977321221767696380219497506194922203930770811151661042485046893384856234479588910628482967791507818942005948114329469820253216555177123268054509640894175675133880274626258680422679721418289647049056339684509647901137919518062610003409548494393564129719352481521850445548568617923505575890026790960081549327470338873748685323691893287384298226648056274556360999982593467089304021926152145534497674428180111114790706920801579499813306022865258315175236995353836658840927697590139946882255076538626361315220250740770952752523669349874418716053649204045848536956903363394027042194832247515342055604261685369817200472209059920661935552822465273612288718613540028781488753318895294635377320873636148538002675817676917313377595259160952797259371207974807786283622604225419350218272148265363389072338366566364944411475146719835029198837638552229675818646230606185657823912867237984398047188464529935431638992223585864037723994203127923245687807185902140134872599019595979208783174519584030187145314285742918261239927760110012196422454106334333085983041286839268154797659180359122564159883941759168769091868518215923016894952864989798764441073184566520470028136569588174592126551484451509841800907676277214495050840249789729355458421207779149167962084808410198819317311838744458208117559033478353403446324160764308924307591531888221059255935373356472544203584031661410726062913234788071123503113918164310588987175665050005335876800311442417386673281640256296018909989212734121954074623555921267621755693141735659427283604940008404627122752006546998787991401370080560152894328624135684293725697811025251678243588690376320257138927691429527581547845551934290121497683447150197611641357381266369585885716588382707888836138758036492212855376148783124983048408179879718712581289020322398823183078626892030064072553979346779158586219377886679587238090594775417709518167792644553950285123458761340282608053504094283878241327407666234076950548263171765925922675267338421074013240059674872618604409144114505782213256840498350020810688506080544648675051859039331724451145442241157510995543414645720647166632819793998277522505458663470444619755349459223369730870164640953212074668265905010030851507739343916337362487029817350410985910072222247287756458519947436025208399616200535275743350541475608483927596821841352242410813162521660878530773427023592732814084592069000395904269654792449102335616584287551006242916337720907329117712137619440255045271565647908685019672206408333783995888366252192647923248494246576513731149657174175140582937849379903179993674536848568433227852167911661981910942380680524123763036938125143070205020225866530803741383390877542280362506889009754863161419573828682080138743449850930013250942868180028657529094556084705552864489035353840691097518066735973064664067390300129716154734263850292879156799522920582405311404465840980900538646249228444546348982290962509128364549503792840545187605931945407761488120952468231146183031620924347535080071199887660925246855474492259990537580658324638837001104283606828999488990045701217002925913924431965151280511478162694693974317587250436441816029104448992811043931264253453490543620930556133697110495266298644933225100281909448647645842681661280012144891406957860187380475207571878334015628876729581538422045203401134670423120621942388285721182069154564231667024383872757146424004179130446064874542549585358082120567514283551113088698094983683457386598440619125946936148152892249432676171535036263988962131883305617374658058057948732473884488949659837597605291755518063250253633820967083792645827165303017408536229906011444685640282208015750263538438946137842476874609620865915333840399416075732605996122076783858193995920553615188642027483896500310031412427715339563843546292424802242919339296194507678378661292526599708336960777129540953563017265362217986986930454689609006144451325170686976673252236617614082685981604400703855206271582097337407114385550118833999695542595278229281477531883899666667762221205795313375454127606967205176658624129265816408479107701052166432762232736163007780515676518899561280072224557538831619661044659709317786861984726122220911229286226969172050045454148288012168853818443821383385329251657709838634618570980628421255195497647050018565423889013880962023038167289974014420654136537860532001317776784523638904558321878265593410481138256630120751345534222528475601277465570406003238971360125456042786681500209524428279653166302663020269181831905685022365822527947894476047217978891215742173450854889164312560845441716899815254769964758753169665942266152418191236454759900772768313977797712628854688939108048973527463693537407277348038715570136090533781511470163345314230490116336378206077440297661161485399265056485782429802331755112188701397888122347031064308587631466667983632871567108878154277025956725853659354748909105955220998010162206178243599209825450824326066077165802149193841021774966551080664853550206235428289057540402190271734025259078831734887435068064460995417680826447315517225647437554066146190820112168999229027278564870363967855600004250541276222849002417909070531471786998782478222248813183848862199114502235459704951772261990527389299574988016145481121859041623021419955604759237688075022750994397187077867167867352953312724821943435448470390231050470219998625021917557131048260521218989789825648684792566712758234793117066701560148560537571980948355668908640462082844823454743069629234814672987409198101708745852236999125269424722954670233002738356760299271412202284995435296059329147532081454786555616558260552603752338434594000761545799158305270935214858644634157123726727011593686270684502271390678011989817329765032997527080836743415525816750653929680295774615752883569104316391288986160211065136866203426073944186465346386515411722050138401572291583087174804369282372635095846658301264902566154300849339690757567984790284285047745269308484083472963993782753913405287513454921159261570408200671417097177731808422094978180707414993141699665530707815214264351323076036412805131776817039830694820652471660711665168328685050413687756362591898238975759133180848078684194893473724676163186772810851931899653774458177490665522241364571163985812229341807914393072232765784800362817254540710626138591236867542576801936511176570702460548697899812182210745006964405891664915519852391422555499118438415990589981349394781948175534796769356204474925818459426256314141961326336797327617355940934397776450522922619634846030015131215908184655394018538151293831274519157995255983187288514145537008058099252380359154507109397339137533131101241324116838754259329573331525433304593264820257341762287629335384986493687525365274846986967407388838831625900841029260942444901790018692407631907796541336758584182084039307760219767342305273254441499705910230081409778334488428404865413419049436800434489496875887816425860487862043827560425294643761042239038084125632988140204904480345692502934741179617286372457698314195409076901800735364130001516728322429193853862395337399474522949064634783520922863934234753816665354903146832443514242124532741166632925067107612411747848121497591357700688270290982734499100702277366671188158628210015622778873793697623436283982327938476093528037850406802039265329278000516700542867877164534188220408911580414276766843726024434377301691149143918523281607440760785325414469996506963686707574937331323577974451008442613480896483630839820142443962095069479184818567726048752083735658686481849997809652266747545931554806974449572935860178792141353412482341382212133361934448301080505170603182737029713824187966130439267739452656293992342334999504562751728150920110928936733340654080039833007811504210021679364616009334886645117156820189733699081142583129955840110034198536756522803102572456107239915738874451031265529965853671117655519794062086155756351077434880585555592089042445458234695826459289260971695621253516865567661490920229682904841242131895767110558650515199513624602474577401384342565517614009034082183780354198437601910644254311845173895752087948852462986689507352528402547075847230337056780349673210327780027303875901190618698940793373381947549796563125683666672492093655680514325211427988057041088822819080839336436366145009555705355297577677844782675730796466558929218901516956075368599750272814820445841743322547988337850723374647905217683431216398666706784317004922965593691473985685437307448353660714458683186777759000580529174092851811088306028491353715857180928944130075842016079346246469968321712247518820203370244302632059876883557821353882869579413580420395583535931958304919839333707902344430560047275316951869617180618258128094117370727107605633347141460593987002050734295173176176168098581930721906073294246172764605997873696917699960099934189859143462399659535782268904864679457870067388931796685092001047370917783121956898221724185550534772356511419114453143931316181845837446725550027315115026492582097682992658155871710146428981815570007418907887153968688946006065108794503568649160704518953809908651666753960496075033512798034355201707882940501517413929679687734635587213318254808384026900972518914669843056794215965476364458328386733837509801897654330368787250951219061296871180154227948231999302996480123188330819924922269393406620177099957387274165641251216119764453856283282496581053268117940874444857788678344734553511638864798172173609939258922160379207065001286563064928605904432580211608454467253887657957259063863748686650350805371653142344508813946650810104447770323123570940606239345256050415253315770950348442133104623748189077000638034005491587501142043379327013650962559499434347050970693005806550218292737976944440250416881738195986185403505446902683779937538011170696542857997105196071201413402658991574646783435955566133225891961223359856962950709284351577573732982148236999856423593485038738523348586580006575137855282053650363817528636470898289099840187616972730351554936160943850765973869252289479071975859602189197984518515005059851333696418369933914643870513933162507582434910359847533565476610425761416478068155993323525694079097149192353632557607669618298526091446793690274580899410788457719187814733682667251332530873737062555107504923977244686738650049730586166165894343479606786439879425813718145741226176506764028387912168404955147026727431196794940295813392363335302923508409638881327872271566256288466555162709779393597564792337017735375037111695148725994322439324270993224921253373178335863928506626309877554134482699234994566791149186046627860816398213554789978899749482495631858517547175046881598270890816179260341658021267683227736803762287532275181177717030579402274440219710400515060436860899586907423965434092710655140319248661956729227800129727219973778059560012096780030312254270711400685617864215329269101636599854549078797936216158742468470076591387601177377835627567585650542872729380442169179526778132964254027857317097419687511757480561483599489879642747321479675725981467867584961528027018100454638530827979395633809551038930144757614355084569354590649250377042751358898260608835316661537543302415362491092117439368955069483325523359079262445340548145163266825914250955937542256459161650071640940264492981615818371548593948692924368024081039144668168381761469845632455564796083007368837768252683466717168439907907101828882893311635665733829602164468715727881272922542506852283441912818362803879369042480434479623981172606134451547656170002762270921622176885915691387193272127689044699531532828803562146609976134461743169822847005770193862974794796234872563268205059550551142617934607517130783299178422007256551218029509514840952503262106478940248748994680691473477158116602332524442152948409025992720210349927279532127333953646210810606207274057791010717654073442817397642792695693402883125908297808539579803503756418980480355026811088284201424234545473160316204566973222919257731539443757498354016005811501068174802187295407249334522670390522464748861963127749203088539603222160349406909416089697570875362568922558352925851560652204540251556946266788952830544582793735909919053056525036805697622896283937150972618338004714834742181756043809188266015317139877273251674322048834661473263824688599734697252247324370976934667195465681673133726147295720107394960317768054950962133117220166926924467676886583180776635549433292437482571482014808298252545732082123957633189467518042754176173399309100332016897089586754341646424322499580385602536599692549311100741745387222383849494299109649951628469949357622691609465189395666058828225855009806524331883153696525453340369509608572407968305365507541577646236006602962877357631110966065491909573711054494819289243068487935655865238762301550570946336364715080403867431882743617044994539607105549961248591408318672433688273351215833774302180522538640085934093969847796033087910326199641922680554838742965584996265768790268542212008827144563070172174418867254611704067277189534814305433485030668400202272049038286109236994244531055652073708866854546351619651900779373976743817143988868011785074891636787097670685320437574078237859005422070166449355363557156613573856102138480426037190523612175193437736778550581155492045385679332315159312126257786575695368875306166867609458391478719851178173026519249135466818611660194346863928535218832806144498103408524312584554237282069747241726383113690723648533994157796328453089451371504967567645805058377670793208892784370079702856905597398466777325398077451697617232790711455459774368760948262809554834184237089900964414079161073514370055268067744750141481871288414927728799688789816605024079369577065140745813262682947091028824979319206258840204553276022514998221950564160999206580630054698014911387793517475631155269970753288727996378989391281385561547098669264829921150772368516982048062932018326209556387089089311506685362026678505300432821788987473349976517803693031416942197714142765587216182319463816620823449329242775297591309607671895025535682361575305356087690755264413629802650277981545336824179807567702278039399435603584797001285476138631184995545970423776482708959711213679251799860892015186433675425207298268082092503935334555866496608492634926932913929069545093524318505268848211823775989718895737887416864166255348477642208074990307730452244592529041567347381026844058946251050271854835458969725554093629506076362348757437928554365736212107733934956372068973967010472689052113060137955433432364216589553006905444796228396574986065098051465571819362597833099698201100376329811671563056283420494407815638170639469088776151836422175462433873863696780045838927783736091970292711171844543045787796033309347813430863612634520746005299970176681332591281484108788064260842295069561967920565509381604921638675496859134913671245770453758869629929654970435078779066199961172701359509166339567064294860201289121763746250589801041710295899704273157104238720350637844016978178386801941464662802803576174926732952863925874901196926392089126112009119832410433457211785014250363173424408626506776658484665563627105990448126164904298567778320781332017914242654289924752778313400426052967233314824034521527044672439757123070843104670438671793689530849706877368869077119429440795866014046595356432208701005376137796015662492128199799564160226782911483240807649653703827537220887413051153602778734026640838953172963790892852476639629043280033336085928265886891423261115834369380459762302299220586367265644826919558717707304159288521398291715279008538457874137641716961220142750054773113593834397361127042780417712566702402704128176552160127730803871567463156634347911728264556439663820024353488866280630295102024763987469283045332401031319250297177166534354046640197597160153576950617289415495687892434378675927552956213275328328272352128052683480392847787225683281573121321744368013182419911702664007256287958698169746281291893574350540482941924574855575890623799038446898929476070686611820044523753384141449582196720452289669618398703626474123357840425241191906222875114947698165033117679219724272723997345300182992966489019238979270084770238274488562763076619710946932603434652614532206902239911743894825024828325632598367725655429170339751675055320413326439241331980668871039829289417691223202526590385449752832395231267221275387230759062102230166243841057575590168184350656368181051478777254711556376873749223088242505741843213057809499919384448512377564377233972767750722337500146483171305016748571676430194244935903256018897598380538005971145692985494586646037172355519992191180797390946122585675475229500610100896165369050719483135393099143037699933332991623394330787564119083874988333290714989873727830353871701816366048629465120054771594570642610553898092960104534782224143005606269207361866832986303790019484737900274357821262907640738127342689803869712752923909115767767384569328146285882119355251538147237368203298384426032706763912765064694479178382921983072900375648845131015937648884146913650750738059298476106475029845851305216643485831755221722335237790370537868509338752454108824720096188327923656279947287900412501679358684452609163801898656846783591746379391071699806433359295121029997049043921583646885536960125242559747723009581725599771171989413928061955267745775565383327366229758352603109056455896887599048722938456861514022582146850924905953239903815739180281335425763175715617275465486034268818407277711292189534303395559072452798167877334522063337922147925987267370485296795777106138932421702896659174454435034665366242342145589038692569515163418803489638281224715146671112349000009596848199730510957578111166836258679011984087192480269091172766767988870991284115859311237163777667368417952784484111258346806251515027330409179567586315278864146526831223413031045176783673993027609572296252857316036271963876250003336163677855604911612077591640240091077110247027481478598025468159126629520459997141607439504768189481417879520340321186292707397559590095384204360185417467081584314230460252935932073131752729554314182779482607367314802467446249585439987462470968887488895053868861465377633746377747548184530699903964522389657858241037557150777613299315921251589099705608492878091203884619708061006170899344700118467029646442065571403088418549227328400167030835205096820741587876587093273111632427640160536349899568739281139843974927334421880511958884588868062589749756825583911721939721455580284875680774471608271537341339793019037243276837510340156178629528393184833534651303250865707422751844371903399462661364586957168540707047416275190837136106478123493391342800882331219625445248153744737283280786176670206537504178484075028298596804512789069934422263408457675443154088506280651844812350060266395784121902156921486183729570120181814326494475013153660980646074324035675599625422722706507346775409653392164362946244515513988225891532396243361000648391992230065648607877065214579896498243306582051977148548532589331918840464236872955630033737745273388511878776817956666018213747898003919750255579736282949051545816510036087721831207042102865102723861428826436830789080260152709792918013822302451769602097500442700600218939714521717426542115997759062122847679539803587191146307847034106090050651477320286195781006145980835270170799816827856752416947070807429805177168549006305711834173383327008679917834781163964667437882351952737362506627676309621930919857185723060256229327595390830393964030639318321936608761567902340052998959389990825673161743548559654456242131859733338933049757529452502694287923067355843669760550591884104788121388829327307696944666061851976321985142726913164682788289124216999281776012307365255130839923320434490277268231375077514667010633838919564561814693320713814168962687446412577299461985500293316038892376486293596347441782368772986260674284502943883688311423063161973592162571725206946227045345185329196249210272295196978464505855819884557178789788581304348302453896280727767388892818707031354522079363102507700160468819382632269539747837642923775910329249023567687507775155572154851975087118721654143443818989971985375677094601371965673142051505643536135282371858088410259205391513030298320195305949233416091044663070031359241592971944289606368236583552962598274020909259364423520920390954883862167593927704088955641679741065095128120976188735789895876049525574522924454197326671929067821083694446828890693479826765655528448066551649839639408177794172893679562987035515240763576592494955325433824499913643606384283534780374653098686107889674910464125402617390090238375433866979079387385650861333013001827149979756665019981526719172966531603243482754796030221490137968830255548447610754638731876317610390796020507937060437599715219149609847028475997862894220433828577126770040058371015823820055837709948483566337190637732681772126847913528869979320024782070595904489555112265453886669694316736911862871595155663046938578838295801411453756059800866184370226528835726127411694286483009560436395773154630842848481438346203456655287329760412188519686583597664711888356077047369607619012097335296040993973691612642214626792411128864706647573580335689418031851458115019885443727510402894057125589795480528684377340049713084199644282308340306594387156928338530454997042528468295330335798956299038194766114072771900054433028045307556097032248714604228267298117951965064885281630642479745304227018333087687412972213402303613663332536524681840330005909753658550823402660106013475366719601570340683272211415436760021928221181579106748522892285941139479372101902368197131443213543991448825761522581689259612344193851309726430486291319761326426517706641090907045575719021468421594224665691782099693172522188700696429058418687967674383133491692129365607067233395886773722802660210396539334345641073561506267228818768274697501801401873204308955292234507041904065984131151409653711976230103436176973286969969073957177512605723516024850746841693284284152110815397676493557795375156054983594311645858463995786733855872409926193562888574305429322309951212459146825091190801202693544753500022294863348304452389877080309617502547246003314997237803670711521210628927328211395538167919150849634793164623673345285088352317507142588968517734071996282034045849688492250823808079702060383191547205096473373059225808695978619691088412667424541750199569748129632409906637607336729047655662059805820160159376413194098827186005589471007761013162571683747471849373723106821008168418595551738113804252851241977983749621512313070861796091801113252249261076917352754495449451895399434390853287095811051197750815886937220091344524239295536603448383964514137353267476142319534224207281966989020625932335850583958124289928118970920818447937496579392841205025362118039831726317875412186748402003645453411293637403057882032040448999984100611863168617997004778675725762453395762399585993542161584051458914964428776983151245289897235853889384822311367833269385165976550895197380971947397954954074139860078630582035390858849168284669705457930258862108817138305097977278338190964590720803571564053987624157610207748991376590802385524333229027956833568438700698190442680115976872123690908340025512604376219310867242966779408949338050887169631488054212237366468011926834201075442245044805109139553125041189211453588961017966652411531943504662505554758810555127518665231277280509442192024733577364636703143809253247774405251168029763817440587303583916207374096476233538982258418561600472184992679741585047428468788051612658481212164855200060764278588754364474235858122800024308395887699223795340126388821325895306851995460806059149486956038261106884327548358092653221497731802558260726169506135571279264847585471495464571717640888652458472000801288744877383540544241258545316785172758509321480699886417062677343780950010650394984543321547333879883906761905988015106789623297703903574624780607016581450946321632538517207116653380014302492047361548139264695005260038976530141028854609798570710500706963758322135012226449699057461437242685570270190847020227840418395551891141111878907181458788791047199779156779735349156795753402091327918856875749361032784245540611315506007882611338842317711805174032649163922663352393866893508843662673728037564985531012330091946032977545282875480542220667786353589782354045238179472683581205807716046925685851135401968309512884624335842111976400092606023462998412190047889266431065461458980598844212286015291195707415121905232280430730197657746815883614945075505663501519136395566606649574395698177191225937138626675320783413953909594813855426449767092259301186277821334271856613312698802364130084929912206405416589038379030184971859071481111766735861557624969427162044917868152296557055324964377906585002764755185635016733799749210216686033900955384295847145973080300115106007984053531638213576714200435329786158955170799826586531732464361992033555659816489884607219656166887558757948289934643368009388039592360919299833667074299716951144205529965783875506073977509204493845288139350731432711006905716651845659764015639065286285958319496832083153831818318135599839004477146115625344558273550985600101039113125391169115864898468861693919564753081642397283833292026661586032941979811587763137506733720638057150173067141156274784581390763734971284910363574120534704780803474020400053721721945988413835718027555931718733591172665653088390782695659039504303060253224036841006767852702911756143369143518296686883969598373376930629259249946520566999018469924992910776594571201489176894229855475451797651890020395895492808370696613953115559572398247222324777538228337553857674415084849857247213629397997289707617771514355340212957849238509041349699256369653469131127202004052744034084012028890373732605906137782390631486680832030785474131549346348018024231877599461221914271389387765208056090483333783749302219295260702528063267030137969137918073608539303690967764823866418912954559345999733316519664488658808054866511862984342980013794081133036395862792613204049784538352662672871754436290386072732927788132210127753025122831872727299067772953159532078400977664701289622843270053433249556007428471827822661738214458914267627606718969687340160460241402645187416301385522920354604976088444654191742869800774100247777250052931039507017261803761896450738849559378386816829683708064222457888963731019689896009438003541532513088000620184430683716533205129977394651958855131599972440352470757360277396345035565123961692129914734273875012770666958844625230916414972024636143001931320620499734485791164070160584219782341108397084466713578562210120721368998158760773153337319416775099347005072831351815405085936342168457068298787611015905615994281197026028116410353408040569246723898322419642815353761468651976338138417281415506043522457475201543783445661406250955133412926429678538092449665042323097093780751153761328549944258158218055076188309788897958584101055970854798845534111521864062463629564620906078804766894965144113948888429945800522902646997709502234298827542022993838005730463987431241412186386281013285387624754502652829964059964464892676765345197186458583722372995850039850153955048735312961721656180025470706561525529271660421175911257982813891203299071766033261910547018678633196577381224396551765818319106568497885590204730948086963531725538064200605474364637486137830336294112561379880422148272942491810573721477122219518150358571684409279736483076422011101225621689816998152259294334557762905254597706631414248689310106310963708453632607811048064983082605285839089195287767041202874686038668685849653857189697134008234595142467721796890758708937135401470986377051294317187129507212384433786039527521948569336891633163213714858808417797694715466840858141226604333434550059857207571908809512444058989903411384391883564531574299655506559917590663929376237645387457387279224833670063458839739159516039384163687888691587709002127872514175769413326989020667760335204411725489686574695877028112960411117703392363481665507214186722586239357228856355372101589503109408569069022378020748917549071263720090225746884629359428633716683321545775598301634258960638101253504447953244132474237989567702029350266254357158539043277232554510916434360369507760637705647513876796279589908177798515780120203814817858813851780657852515936570971900859085258908376366807336939718455311590216580750744335181529755838832175063443871373700833479289476248658892661928354402927711256879438983423422167437994184448403852205201662104321445514466101096022905221916499016110227603226894778806987386945894309020518220224403292372554299462700105254545388913143999260947408395304856576575872459728174860901059619616470290371527897520333104894720233147012480125052658457264933107690620412101815243503587201692175227873197791011528056464431571312055732031064245796720647939381565966991864257573167464003840693661117173052328470810595650631728230605533449427964817900459840514086441963039768955433249966939864277273377339529316073892957593386446556893627705854279715985753726215436832866180911820271677803205772908753215564387444116020970028894109306052373394616273478673868592629871945382911067974105046747685239495929971562547720284406473374679789576275526099676262369312706526382490912527177877290682678287319624128932634205286373609112307840155588958114813303180732291837246674407740567745532217685540831770270801563543340701451225048421639386237733889390996405058589716408018698787801821255768169837621048823428666614299147176076169345316559071793343245521437668755995803430206065410212273041580635828022374199892241941093687598244825795959306459569150313878935629132366296873116393385642566892610248793482590943957915594064818265282928579629284092250034381853675577425478076384210787460579600782209216726225183682074543035641110250078502120722456193157438183545946936872866347360696573340992152484628595156615247471450181935351125239576733854276699415456713480325370172246340465808791860864905105490967799375025206409635910064116632707436530166903543858814526633363426785119339107245130872997681769044725645766249051691532836772095052740962730614182016158322954648490878542533700100919944545642001832926471043461641006811361895870805610320294009457852461447337571856373158926130320603487510808593003550152510307808693540458372727536378737869065107621161599051358020262300828588878925675138313844412016380592536342950003188645776576745933048827387112911572460565589494251608820345133792421362552744284258807154901701219380036746521158584591875565737886029838763012916669296784829111357930406266327569372490346895814533644417168208109356090227467142861582807123051653423309044079879033434924141145076468931186392918897668239250290873824870181581277551985484771182375206161947896991794035217931722635240755418022430117943204492302115637601333001992739358121190524334086440713343053524857414800293532860614358018583926893404086777369068848547471556183193417322393134790112310528245115073694774112107366828495148128447273579159305512914396109544379946595574596400264193913828479426017146664090590423693965457220918851905119768129595826355488770741880524145330615212069477103467689754574385134782765029192468800298148679418229630688811955821396333152507688230377346255030059101287151612951178253391995735772120482551271004271771962994280215848956653821296854678952991542094400481872918495544002138147562764441683467868484054637724205819073292361106892582666506364919458382643941244473091137391623981487938875338000122533951614454486852118064239185160369342367616423414765370147375004425787262566150649271305769684652910483447108142630176348920907578276809894886658765373774128273967957846885501940858719370543121186428525954555699698900891172507563953175863246923576480123814552164379289361083404581764886666053677849906714008495617506878897063121125105245641870849173324108692321763031393623381668794313739627181601644185817893341788083193623700629760203658211121118523551370735015107660226694439189163844457616890954473519431222553023494556146335520401658244423267405064409630356783646329771909210048679462239534686845816285422971682192477936616981566599416881779206280353680807471664617908702673954443798867305780836216579625724643832436863650823038504087786498419737361060592034657179388725420281847709280736516236401798718924286123291448353166712138420645215137026575312814887813822390354148792587757581327458672341010469564166092294160081733571033883264228502181792585045842790248734007993988272485766419146397491509290095663767935059145416838181764099080717723779100451170417888829481720496707455832913046401909225402443892529140400436213220438097507937018253430538230163866989165079311534988649813205155132252747145353634904903610452168305761024574817509386183465434616148862972479439820475043894673720807134233208903665059283357199241621250948489660637025765518182544567751327655097376542534675802621615414092291560461268822481877058356116974781815063137884070197073172890998670650252935229032547156482701282817428009878292784737004319157055781958380535466953254508563953709254916748566529541642686372281847798390219332383008702993446254181972843723883996623577031020446828292276449660511585425940281387953841108621788698730873959147910879746214524520439660168480845693928495224331651058675646320247240247083799905637231233940248716277172958877482163291950171075827094090325678150461624666908398298840646853212157652074972349804646249097175983667651304781354490931003128418537158201418807425349422953595430425411582221901953865471074770329125810007454301080524408441989888971745804550757750551565293199235729913417728931202834045353961482429794557019629154675638543638575589097358613062331332240586994709966726669416482659206602073712245255046115748463100677349433024187895726928119425939717160961001771668587590402916701722826227051115907793668671335813534090213572925282229400704265061206837990476631804451387919376213908272225890453652148312231367431132856739057558645143738522112016370180330885237490390752138497105377342775399423332736373958975642524939780375141270236271054241116401348976571928235087873437508612762187493181963042797806094650265306538745873426564325347782439873020898236367995790871820083837246527472235482398073863544849045714231637148029415104712871011896396562167813839766307274657039517034967880613977471778413447059867679051079036191386796416100715862662940691217936484088293969777503243666807764630611857398170099820924125217547348225724093425150611350799739983894245534649469709498932215901260287247016669732420587195696135892526522485588013188440562888062211729032944960496535893712734079494830881565691048264778719394234595734107603777455282786174657986562708887725266201034459115308457622709241088564249022915422658064788307664550779573831769669613838406642139213739105694763848967028531673727057332935319327270258408334596921675937594665293278803579210480469886528569588809448756378568468027621615721412292224316271314646991271662190363621038440900458074061501899131785443832236053200217974142286996081601462762765830645348388363051384295998376786356129961130648647705910501405435570121449075542881260136376311308318286961100306977686374516812427119467661130136540996028030615820621707269098332322935940732950472528263704969376762178866743400511240712147683690037630388289391931573683859855078627491250809896033952728386721006892054443473239463103014674280500763556321174710269082074765211329150350323772609239095834715327465538757612161489249538378588789810253678245925898594377848357138748156665981309354935041182981775861030025817267580491170456970315297838760195468026833704430555739728023464189620508866383801212955682792635753464552325120953403934396896892145130990182549487172989264464771015098453171335013747937824689562248687290147036659450594640754311521532777623874364437519772047210293697320893333191230567417458594985427706204437800060234834341494919956463711052251088462517948672658227461924055707648893484184966324149743893711531843741748665782332333878186116557188532267669036602730537413712185889108943820473792183354345989312359361203409643536295848209211099712271629769013981127083052577770481205868596182204993728367076619815544708413365564014512127349601418949110376845584411495949809446770542493934948458472055147469212379422233620489014143199189629688485806943770941400499224004330356589891756981290281126190106565421690299942123006696916751324229297035651770034000522233904765543850944830549084557809426188687142205891701998806651865654348418536814813758092431290003633452919440776315142436554410884290163228816551413488074349416623040303140247026910971505595051579050414271061440282894601151395431621966944530613498842614133980417612379184724873850282176514100846391787068922173186970879852904726702954481647163080534703670586276390442505847411916867310835544143728860712743951831959951034550592013975284423295820048793801213730825522635819061593679930861081510547638206181324363519256735738260797171692474136820240133954131409500671047594094120978433289586346475102085556044860176668347141469763755841051105676156694465972550783925443327802861800133896646416515620401362552320015928125133469845620211481446021807858098233077459788916763004784314878004377677443449811167969087790536883325676796117564375549480244343905247769364785068986778966089395835125483294601939717221407492889214558718136412060375663829918239471661239083613401126819858134590679238539980498013886792163385494235843605202119339479247107819976771810578732569293298560506075234185355077197059388152223019646309580065378559411132087813696607456611592127325409264361613742149747959697891401559918790026944961949591180309097053868844130234591752010345198327902889258258910341118432972861032537814393791674465696623801654789507392018558400266885172099763233747976285728811992580408347238744610650284788612420321701479061353780051661981708584090683105441865850264323177253522166649993767210349937750941943547874280173009355607779376336247493793746609524157917092780263110954569282159592497119377859506157738294029463976796838621317244163039759545817426849894934904879027051088640990174294540624585013190971350890589236575362919814114455553328031656530750696376364077258096015704557422714415954234728170289449206096384593581302292522189543274123023826423778749681731071135195851505353881179229457717954258380067871181894464032363914189565499000575533909046681297629365807665756916949565015601463722836929296389180817341873169606361451677798458590237288426611560116304618020881360641205279364908351409428123212107247684927724447550466098336117466195682753981258297066786170261582208494791439938148928456025064708556387974942480713646601470360345236596900677810359337289754483612519873088453259914572977816505655670233785975955324481602406512050079337164016479137808797176805450006674663144832804563261053718528927032935288850061949401343151666067221914065353304869680137172722267360954733850537045694321195563708537644948709530521859881471523386595436213609698605539011608772700807628999665104978060611744007962607446169114433905017903803641717700490254518881427817157542176680701411759547994720791180005476443256638272224149492501172001173662046031715120274227838846070077552772470437303693548315127333899769705203206132529699925066667848783821363562142130593865703778259287218866149651696086336364206493724670161371674524595021340020777346034620802734160076957500987623205149720054273600940345182786680188231572120879399821467189101302206321867263756369149835439430109666714909931972635046262728315250276706684491726405721001090546854488577846686555310502728571781777972735417167662127891046620029554738324200369672745446184409518713022736406577810516806825814541957538333721872689268171581429032064115717294901873746956216875829475584937068872880200769379842904124301255208165791015045787768011360332823788453573721982493422553558198536296822088241863465253988065288084868425291134952796194268795993619149219663188542755056571747173299175728001836659954141251157015010515677944848657017074537423890823049081037552387293294667799742690843500664165422656171368747188358891454049559138236974884945921251038435861064437440898590921919845159809516419201507310240243994541519463568375269181941667562845250222166711104114756455952257270498823198359744069300426574898315799635562023221754178178835633527058104647303281557712611364837710517895530481464835140872650350109426574900702435219149235907483631536747175705453902585612795821583114378733253669295453396108518383458019633099207708935893019056321779719301105874832835859003789233067245321740047762433302048825243295364562271754737276635749247118602624356453081301092223853508059386695153215148433202050336102969173489280931824609223671421973534989592513403560297618833104775291885273523124340636846919050460560763948138646874690816696626056609637927715026336184880706813824579856732961322584742092500455455875561780680793334273662944537741533162288907136480806440438761312083557798476750238921152036762964148219205862873812975020337436900298937651527701116905461629374193990176188122524451276630282465541097197833318902665905290666948688532468686885516936192776474160034738455398282527064797373638393488456440618777166554452380781499008082433544340499696038583463743611674985312153823303649653978789138543380894059005500653503461617372064095613099874831697362167993292078899908019968614484974159408321840231375420953849447544489885902987820717025299840622560494515814487739089608198125608937712195820719443632473713265731335463391293422014240654053611735224506542851114491285586440085718241462277729654239625267845244701224671016964891193558924845439931502637665958385498802131595287486010595068410757363052635634711886322773405281321999285331142731022294020353362512680296956642186391937646200955324342486409344686043126744752836864100132104777350065164331705900921631886086517500362452253536267600438522825157353424828963448488852212020827533582876663962448337683028267481511331958933734047563018235872504192965957580484302814818187766011458782416515762892556080569045449472484056129048611830727749566568042844378050729289126793314076592082939930382004851462604643515879582835058192921328217054697322371300646975024057297931115298629424638018796875343525053445086884139666719760555816874360080627859844747333433669530211355060293004044317243666814026849909790250652120740313163858605195117482505100966755100196004300846975957007269517171640740848683511069655151774889167200371132518540413088050052388160705541717419887621851427799791963970314230611591994621566884769586399266515183172678980166804457150802484707680130064363564344500642064944301162598367015029779039570832577303693454395645163812353931581562096946505794230851820718535954563132470580163288954544289238733720954831597742447866189980078286041908190217222485607604506485792291513530156424638669102809957261440455535121904654698572657755195093375124211993561705596707923385188114913285063118855028539296601290920030915286714333551406392102625126980179356573016062838682890924976266510774067439750757209573856167737203972316249842426857205704228969430724209361860850782054677465306521100993668452547382642337239881423894963779304641925304688292843917272768445371085868625932667766725213100414137815334729696531466045066618103231349582081568009833875997697200843471464716765220211975005139590310140599728576314755138768370156169478897789550503534152683978613226351408271238187892738858076174250229337662478422124960972946559372140896263214361693601146426502623814139153188742733163072639676252421383757117659312081264796799846262346357311115095316806837560117463767438981877111395164202272016938092545515320062650199483523464358803578904229511281183894723119139324734017871837464094551996950744630807915113530962455561061584518380019187486921553446492556509145479841141989931038620470322995201056729925251189268124294811340398311422510223692912538869947395558037806924029956869804379439460456386178303111802059078413496866805885224383305065276578145863071711852360916587941952557429710508808285175749399745939235414000589169474225558554472065563643481103112606958097571194893309602483186779126185986492962255130528123667173045061037269716443778659971701208478879545978487853179054833077380135699428112878152863001114665213008766193791534666831514626398694890137564638936259105861411580907666242954777599731229635633387329534651420866473003570608914699393181211717958086220997361291528478186084816141175486619396565172425285809703567437489506477431392451140017552796581908169578629394079506683817906664508777115201137008308609125657398448279366192224548381912259295527761234704437601383378331139903098514029207399689995776180558695334999325448202867652238006556952513589991607520610492976036708197466508324795236703029982264291309570603113984169409598064935180587348793788768274402074306203411707115424977032727713751202214612063606714441357537717681979800983718306572413940190084166767644576045306600238357936919894384319696332380221235004841979972031987603604750586669119667142166358202742219321551813517628176024330479542033604013919501010407292417037708779582546455450115123552005378291677240523180701273425652551697363690914879213848204865804668451766378877725300959381088555678672415064327323688807376870852091149688747288716525140049275240487818887344965463325842789161051257335903932914271403508227422829085384183936140582395635652925573180068573493446930314476798301585339932797580080515588857570025545244969221553132045359350374382063277920448208958537666388459799003470290701962971107823960265072448285974183498971179718162173242601909078527541639849079558605347275058453917811162968935561265631474722382695834176524720416298773697816627298094067551912919701422439128083218375467985717214913424746601009771685824781989685046411814447011717668136561597739833920499187980448389988783307999208189111660885659895361935454496243354444278152180490806384907592927225657685776734938726777930763298694984406283682094888404094884485309569788905787168375225853976052027879467333862215683550911759526947042218122088977759914572367739587427070681080308159717607390639114988309291766406718699801644954645140367057998066972672494644370157103210011257475437275776041283296087736293208565018521505617685043216183174117231626072608250162952628309315622948752125474882250138741415783192172079291652220765809159299288454763996920449256239888933703095788493125572155191843560243461086451780873877168837694309674878598000240202447003685491395836137824108158635905980068051244428412838925080242736100259617692863786315666479242162908868724965510982198654301269572779611501452101765266859763545487725600999893458554310765484568998072381838061539039914703288011474654916581074981767028807779631038240187449848914399177612606460191625679046106382810432926830622512603045074674691765291972368202713433033123678382750024397910917536814962653447224493381436650723564127646139397425847440741894536550659434262378502308360078562375643932246457808392124439439836822856487769571629781378018710919411907750192548386538748307362693127144774986026316766399109435478120489578230454074246103878787349343172945164991954881598780512666079415998334807779498901437014458282503005936339223016344110605762920736655989046176876975481215278242251710044428733510952483473454954208407452955440733390862166315241555739912119322726236013064981581967816401117314925901364445261831144379369195396775452767131383852506976313029998004686490409066000889949654481708319494010956469453380900342495113240502199389155152287275287186766059008048965022530751400236580069906512526895936206703818397951798184609932064095516154008898106194494470072009554075093360691679928774919431691774304888621780599821986973868403191400484180874291407680180675982736376387774108259464455780020358717374574782821069824532594756396619253729753387502315473969141490877785445204796855243775655619141439095969811474658862327592306991272824531612007649185647636031418754892353259762088593128820248256929772974676384759566342892683747553739362864257930443780306131898676878630114142000008393468839318435421382196869201221912732621754508763184347140166614048441736358277236406713115706268216989904597147648455170766832742954457935586894691094014592995983197978305737613600668586047717798351230752719123114922587634441069500576134868901397830024288751181449698116044010229325916415455682005714493647450250063361088836662855984084897316410514090469092067496280838376303966942526993292335130836175764589498802632654200144052185483418671136328682927611478691633776780664738866817331941352196211441385372462234265734158780942618164673796991306627345201836395649332914209831315188650276178367883749130100929176033198019672206564409529774619088168485387881335609664271950835136052106650359370673332561996045557782966710907278853977634205679266168668771215271205030333118215707555943826495437200881839307669198540792319247379525454332703449142428199794105413889455261627799129781203935420715053387572905377567736522992972281592740934968621845625084616077366680494198710234028577515443266059382859956041332091883335738237684277104923006513420141088152409265932887817206239649740319666569193863580965971770841663104392373788653122746097138327832936958092826621978581640742805070562844327600372041144888213546931168937917880978439619026416502801068167813034027500645805144772235815905118038554226836680601240075464507831812741174840306418141759455911646124225654047353061142152203760789342873128099400494662164701501437814519449004206843996088570547857898865693772483136427885786474663867385282654407563308820836408043021087968701707265009663812499557203785288006187582650002757477436771140294685745466286199349333308141545159121083523443858237715743094291652773457499565384615093301280397854293425466457277883976818131242890974332196658513640373755220025162753260575013244448697004674150557828461320537819873858802656301534091262546022132976679847238460830503235782817075958320594529128934591828221471839265561007590312370437404326875979791098278996456979310721695042488052213750938839289785760087540034767931539751401544738167790257477032949657455009766580882222460707310264087002462464763444759910044084503436753785233116944435114206946091218024474132866533136679583345216483135647971904732237074344510130951230233846096312710667961713843587944881526258178569191745252606350175375204930192072203910861019133076397023799964356071924294133189620836915326866670260917639659865389378210738695693144572098901870209832739619535687130664055205541283133164142274626351794661392956868641244275331685111223497116255534290242212326403202483612470845263413896664027060502282188017233840647044769440922699154922029106754807632523942049166569805750795713304202402721369169452322978939875663770430011439048046215441773392972549707514789181596597671887294531439095083395337160677657955397973973125658364061005556756390975966123858240714347173359596726343249259138513783594809307263237467759825069482586904537913375600914775899657627477659356845728645055588417839991990587124954422180561352932180784617570207455757566998587379073166501416336486647662932338894673952733460388489074092711131827671097886653200095500553254849474076829826328033795409917590515851756291393377151743866233642187243684388867141984910873922450543604942575879869325971808995165951365588530523647576574965813299288360607974996822522936895190584556143426411620110411587849388828449587254122789253569390425494866251948463604278770143201588381134785280411860681862555131750919026688007421158318014473677799188708067149900400298897652369817778744536742486043869727774567903211116802074373781790302293075681188422631772738738902137644398726989374840262624561312720684680139972700428304271490989053287898497535936110654638441706170047281111399591701348401120640940156276955180230478030194769351119054354533876771530695108165328270101681440924690133155583083076179986532133313024402116244736032635250544420449273174652872600531899190601160260695329817295061430448164919090699765938287306482776004789737266975856136749324404130780921399569327724704220001223105379782477662958547349562171253539211457595666503502220268296511075594685442157137114187067897457609665533484106808614232838567202456754461404984132091404295028777351941440753474825057417404850553864529597252891762068739571240520059165910823917993114826715431544050216706477026696086592610351116993095268927806521231900723672491735002617216535868810328882427236340857564008270612758734973956913712610305169090865325145591743379587581814651319612504052569625607291028254943724716133951211213206263501107033444555011671249087351899309007913588567478904485200636298564922100182682384855883102705004821405706255422431445753692924609015338851521620445776276164585952856982764662321471318541323132855735252099118077538767880007861016765550718674704093992413996813646185402628390844942983081378500405237630292626158458542186360940658198872669498551201394087102221000782631042245976202592535335016756670517332719896206246367817670392037013511383991769385341895603816072500194459985027242090149374408943620685303447777540860903288504197687006713658098484982073176066759948637795802248103261597972187148601706522068098405623055639095271142122270899845933466210965905511596756988621903912793726205221150955105693493773649671372437502345948191481364118404457725623524668812153180047589285528047801108850229253896099103956927806949641562383965119460578845278138018726648253090559994598817412351852285995444233967223016786976410212205012269322994106168794928893089980610514621820353909795985593666093599968656082111021167018894374278451258958342849515709809436068993942274164270017235667435615294780629055641146324169295160519885209431792229544975604803779238783801244782024774896040136947255664689184296589739868542987565239109004306352168779410430209026799618828849150728431850482914525028982684748835711737901635128348441442599676964173496977220138772641835303802748623126334897843266311636488696276679180949673574457523678404399414830351576665681297096466337013579802061968194196525988933434026256941827531311650836438115292781707957829902703230991178098991381751225143490578924157227422808846216735613456160440664072464702761815188121025010785550821187190519719597573826430329989369339018608345902841169958049100642690758744286177547021954103480396042634381225842387640547620004082349267072723310984548603800664935864112388615538620588615461758223652008602543941323323769064184945620620685907475580950354346497858747035713097352594851548342881108230815441377713736242750413064271058130702475737829008074158992532537519878884218152334230776974290231362928993260015727120090834483658380183439567385008862274354833042034323217179074007721518795043407676651563295596193228201866251724909021762211189493232241942489582446812058750806090201187007632307305867468711520058154189602841926221115989835514219741799747572735355718152586277018243502878564512735637649767892873879121445301118035245554348923446130095509563906532327931141518701704060080533039496535675880581380629915168881729607303364772011947425856356443422841676164181764820205627831171481059840446498089140301723406923794581318886179783037918019660958472967802566793459485778701298934668140345363071075851098112155251161738089786173009469089508860464578716860441824375006659994759078947390247105960905798236526002696133855130722186804213809053220772190406266098221293051512044488494443169376869712868540888605477852690600945676049343574815267179524388396467747163221919828121173006710381325536674947269077269989773999676954529882536948552225553331341532897650667278976928113812052861435768666933735498300040825221379264162292724820846049786185601895964653360793713047360408534554063302508772243866764494670324001824795109060550447837765014563508528062889331579833958521467936622267261850390454085212870028560401022827025017647367669203266023340783172617474933793652942706403177907875486414612776512438934260246243554855309102935904505883747885782254707215770796921918850188360923631039648039492115114633875038290168304420247494725079453723613502241400013323579494875518820274464785056400365296271100511736268622341337828697535929392905312863809152908433912955101556821706634076431732260274118612423635277554787046695858592336568924622474594161785109924882377550981308995441309876053113692645976429435603737540182678833357003562268294990035564325544254428670946841601112671599871447890715735705266607185320564900513529032385483985838947983141576852932106459924375498514376567356951896126870623073807412709260788327292391577575069041347648742021411395113245406926516286747435687006157107621304371427269258448811369978273758720373734130185973636254933966266652026763011775191879715887505577902136870351190989354837733642757102238078510287660864444393825332827757480548845368382708654340709768513110768211826150911407193746098554772187608479062708009407980025526245655863089418059635580316273887549681250419128834643680723122068991588603464078459870541748963265092442480056034599982617244222660924337832121849168960291690309819057404707730141742865042847889436663772018194886642765087064945637543944863397847126873473569482541119193908298705514801713274049188695829841554918496888055253121551655330840230410168152500298612768444242772279315069231982368786682654263560337594584720145061126110305072151201089790678868440065792138620612169715541360219768192468860200204534544260695647680184057401127282651749331928780434252656233249056399110916883682042133033855430460371512674985633574990962590702009838409118771844756271685325539690823530307446454125889198816396164944760049553393978766810577019642833452532864057038060860404730912368399906402961914998627859743937030765473906250343001653379347148025056013428743559363223203088203407290331155377531592917906222668232744757866060729179485580521709477136369300830239645127199322322073226224938210164164449906701320195462989596082701192238875407819516061856575754621196719602014743119538888027706327601724423727007440355117795913335053394627514108824642995917161233521264647589164895483243748826624102243600084126558315993242554029033284958650800434756547333125595609153596586152756337591749633925768539329825523987144975782808116844235258086803940866756447863209502543210530434051335146124096225642624933677313561461948062422303082227381691961806043472370012010854093133153140567200718197658380597032993385325850123534610513712467125977502775505470200830911364289343739355131762188070450442970840978726274660692925067648003331452518026774347547952387618744656586285022255243933266714020875582592246306945690644348798059831971516532477014859714147130835898110587739022214197000573501380791219968402255540450198915407212991344803687603479476777244338787153170176877470806935813677179111579923526787320095679291082116960423127933512460935540222957498582409283795774541033068983073688751340935742057222080611427089032456969537049694608608509762090470502649658041012885072976168132110531690106250720560458522905423142006199920857046302576111909890777494512789678720895751600406170545312719887365390749378609309096519798129941460467417855185281598138605233032849144348464060691852396690414601155878103305695059482219816099913000084127067901535329193388951383583292811329047561934728836836939692322190474843847330187403065774437156584832508916473452832525324035672867116151482186454056395223151951680954970937837258394216557663678083227628166422076330119563735006237450376333557999170886292514039695410245435259831338047026201241468960217373542258232142783568858802265798761397602769363351584734636459518829741095713642940579530917170731229165995674453329065667266699447485205019608058339624445408813237387614506371978616452123744857331246744888776572931932734609511731807595531713126186949855039832889072994777451533474202334751136030418483532375026425328073273365170324571972585779932489268746528522232649112878775299906153240179612040132600312905955065106189924240514414183360608105209091769069278619688912578511727731224410742462138582929647413910924456766411833191745269303213851921288794365652858720987144983546650808668440034744914377817131683222636216780804921926703283302968609259546439246718905853598977492303326196558426460192442106606752964381011964434059551710881847776269288291103577501054782243733143081815022886191671769851167941160934120487339781537209541601567515503793277131750766829140297343906052084402939345211091258770046113705990020431174630215643532872596572886817218108580979682380182068299311353885585581660805594261965385731282376807775175410764969713031773108671524201210231215311514806958204945952333647811319217372758082768359657339424219826469310334003952143849977387839938698516140258417633282690056253893000214849774698642412245010920085809166740850795467515362912915885856387298216902924081262085150821894437459360941566039550017905921929287607894768548174034819868716826492791906273046171515220348946547754885546050118839159843714823887811865482037662991199382012008953487516356764176524045754394378552895135508403114733005686203923002157496319816556687625430069758383722657194475734730867783818134278248439754542843065802142156456566116804455022032350873686160351883982249270263257975696043752422745045636283370779723482093316174603173300293493225774491582486796970091096138574082725437536809407871871749294522159378784200422866555737924979701386895766973197909837319628428779110929732961764858315036972831693604328554754889636012775332055331680143141061389206753150166019985091974016148916486949096483588830335764000781120208359519279046560273167077249250487084802415628980450653135347518704929626198260119049160884678768010340031185783103227815998641639943365268591713008662571616491708902153461795946935361144204496983435286862616021186092698382421623753885813522026682200750747845718528751075480269507759867200570786202711758573550556439422946495855996705921249767852663185126206403028936462747346248455392589244021022419488079084819612606870513288208680920678067839284523190391910955542046118413152689199987541651773977998983533605501279341029578841577350565348354382576909359502769757293756925423647723133747337888814001414223006433798317609889131704968230061941256920401775165442513644265385261622537686136720451127461031609598823159046377123963109422567008853592536881238552137610796443665854337243842237506647561784564650034153157996883938040145852196746392569159789773025668203884863207620911109355869513233908854822973354084086089564454413570955534820795095759228432069580032406604555020944826589451587415096671916849709365029693031759499135194697645627140922568778629793432791844877852423606758151431199790822857988559042115735764353759703588682075332320991023591561580961443777333453485150166319574227247896004842145044231687769672004807212971252918946506100950833789663056460094523322695207614094601722104380928433165074399669421092381128673300826796300010035118940177136958076456143956593571446103666940376010058123226583864875735636805831016868672397713082244422020337298422673101361125042750189693440250284034184500230994510701349742608148089294725289632077155514973407389037494004800832601725614935120776509026364454209589049088050742979609096066358569912513341898287631049993764257607943993063183082727460488307218653307669052784255854424806990203261408502064297569585597532356742479493595224383719912267348476280490428759866491288529625324445249409509638260485573473260348910852346708094992975505048599801948532283757598314511571074445054939556382561233355684791175972034818147233050634674698290510707786750594430738088275583862999887717885843790848723654079345314868438689594090220390242721918455788046893141344791371400167605001477140040013074461751461422717011933265641101160158202390282320047920640492206776473081780780694137000069579210257228231891396345133833128823894499973619590399859090743575406788695963629744380810578626094035705930229633287067265009308929382078124566125720413673519994025280696918079341522528035844336833511205767071074859717254483755438301185156254585563820659910312997321240113053558346412948411800214996899397784150738582883988616852739197298374050623686526745562929661563103210190583955169895151233772637720338019857268364145354845840925850743573301431524438943917768549323778840999425533911741137269662056851055890482883867171575053918426925043972342446810814713448170859518814732488443638352252106817301594750341212234027649899591065163050263616804447825423379578252677020251722962265008693987564425359314830666349842286828866336617391477838262132697770733689970405164070951855041749998343103028596389023049851585274042638852024975378832996663050138452593633655420739148292659372590910191685006005065931029715973516639413039402960913865989996158362603541362954246449422375731585787357426665125467744513387031672803684974084007872520496724260261265880145329002765059433549934115669648496305584031524988840244206363468848444688868311563646905575155644693380734572046615978003250574965353978847400105226918538167019690112545676040668634042007590674057984313772687923688960466564970650077675797723238138252003043531976879604549974509389214351418278621838664269054657334698356985758069417146936942762917287105142072905539852171498840762068711796773527004689235687735352317776340861933706218068390258789526666707198493472481721516195748329042734694651322622675658338400131021489182817382804518768452731701173764719433512123455891414284198693255807929860604836763902969520350634907412589430432439415694019136945195202853381952834021824790198118966344177737534135708001628937565960117438106411521440582400159686070801539176445620368292045651161033099678467903821513292653892973908295801387749461446459539048976736641465911972524913573460590624846674418118569264850602735840269983486392240951808270195012905184053042780791116084452825668152085774184086617002262408415167338902789649447042648297984827680859323999106278262374778607066152884710560119408212287214155910537630858510347386895061367899553569451986337977344820224925922551828048497171349332804150640867944115962068027895103222096519965592039881425941222005714585850117945898968613853236433152370561219915104005049114249810799003905778285211497477679134493435213846333363058474741346032953072239456909115976266314607249928649565590267933970324947792492443699915550981615388539096636220645872694883698770924326574791243012183845673475175588386780744301708281271438332609094476276455563370090943106331021188653423104555233859095519303668817683665231738497294831024707714550197195926814212221403050273615764253315423821017366165715291653889446596608254513950485134822935369932522710716172380505054619502136466515294782395156953388142109278469521354495144101227946678301669365978829525607472248965505125963648904124651031343631827898037627199701065273532063379044450244640669281813752962847350458641113008728067065539858113627774633982138991528278675200251559033278540368522580923163539345446073431603443330475069158660855775281463350640618210725994648743990508894572324512160581348016623247495118227166141987143080444914335744367093395203342195787517585108644125378564900473679515260318794363477251248410049460578373049542931167426246153856913546742189893159588510388352838728564515979411296800766986276200376572716417953427516423116386341793240134530238453757180623387120508472104258242532286389597271180702987032917043533621634736568017836044171100297241864636947102167990011604974419004118773765833468011381679952006544906138732701206656187213259677848346678703131553045720016636880650076094365523483621056089523646653665776894864191533731759174696399369406921810390607076749266118888052666227642066743826955570468364443927547012060783617787841139607373467033360147049627329806169642079505238097342916635631413826399193557619594060896429419096533132871932278423294984831033295629798072112003941404784515343044968657798964196442000618654569599561575571855324043005862450556451391318337849266641728388601011677350426480701177762793249594853071229112869319292636014958460598759203136090547353921108250474079459162130578404695493367293441016175932085871948563241966470853628646092208119193783421077583651173576436075537415150012027997106241166069560132019388407694541175486393830539069762952830912172010704347180240398828713397552941885949861655169786716551319041697315649230697350613887917728969733635726623926392994556018126861524878599651392051684824185131631628526966706021035848612813911936869422129548784812184246551572749841793688055929545451160607894817537985894081517781526269664828547931589331108918391222519031458409921664869924388889357690260413617943646249357089758164125589793090326598462888362088472842303376312768630952280786525468764776343265957727356783100260477548119183399136179641276379325383674217492640815315737280672492815090065548943835900388772103601854081333688983161408309937161102129511607841932754759371714550616588292649444695593237100072957655188148021720249321389537182462693022830797079102305548222087246041583017145022270928305997455172897694741510658490616867443695505020425649711099058865534551870535741789279818635545051958582871232306690726188484637101346999239893677217113908816658787598525275275788324359666131405129866578103832329693265558050143706715430264719030373410152307140238692463433993267994683837435185936075795389420314225636707693571579702771794655366622386982498063117263638721678193909713206211352128585841070698386067473455587294908021499555728183385273182532155022675104417895098305177173890554073144354131900273646469531341448507063287225582041886391851554950288407583608578671007632472722521916999298944244539245545156904308858025841508397976349074825341873793285928881007839822529559879418727757993589537981239190292267055383371526912146293395825511893354909689165474143790404032304283375584320433515244098717956057217852804374511032496325743982393977758378913088080686821625515410117248123280559789228670729476396450774815465795187448752896680976178108631364103490811106862129466061666820919530524652687265059548923543637801223353535038875472127586693431189811907949594989025736352836445021738166163183246657037545903319834618118733975395775881268111056320456713477602063688064706099003939727724344203873329427638245280132648428430472399438430735180233126161618503333916835997300270415172446375098193903139955882596879047204096484149022605765661522256658616853318277133252676256043555659781213052923121879374910131855892716675982228347629031651610638032307843633086454300978056681818104600050937648268280684132187947846711890816702272749448411265878896712528956234289229492986437303985433639279625169028208208327747888283699376008673146250977051922395809545254909030678498300694311213201238627501708492894276035563903985805947464931123945203908156912409292118006857051135739684876412886425879936146271096425410210843332332381074284521218097074601925923914484661285291228108379382135671771089033859086732270765286925085991590684610569701516868847656211975912064845793299315942971898106806021548125798610220524719490130195371941744309577664873101882007057391212214870333251832503283979905277613005581460556833046082809959005395015860443398337462454922774288402777386470041777517674821800719734063531063862492858935181430748667516078978514134061001750905900955015749963378861558170469022544268097524512126254970540143102157058024534814825277276855245405398995799995288139684475745535372487343945827938349742701060271258821283409779593683693884100650266548662410645020814494683507270735873899174657957656294187680119660863992851191070751615712543370549753823023213737565450132699211018904711211299670492206793366228789806425781135616269647258510363901512834081932503604895194815039308816359136713792216789584788063213734311279809604958263723438877195994926799713808298768693410859901416980409829471686816562655020494464348502404543254095321976283902885629723588928463249152409971945422008557152092033238778413013413408692034024127579981387285128477532629965304970977990152520408046054889851328842937944156129093562363614022521237247468373667398793906213861605176658590585464673599320973863617728132338429317683283731586049266687080660644016861680063356747842536170422318275993382492711008647157447737468547413206647452228407541448628946970292859851130636837472734033387677642250189770934168639289302414617025347834925988222305969428281682650863922006014037693376665921970985681650289270081648765134059729238978130854644066960301148536496650670592325189113783145402306033087834035215969170528746986027790659413397831919395785169531605293390036690544175248601977328636805164989970111198245690872228596702901306007918985120271249710293750196996094210045863652710898634753214614921348664089582233855625780245361129307307605654201515081952305555157513233766554971082856455746346390278460520782693519171585752647787264765872254459468003097864306734892583855169093845309019145162507505831884187816937024140273913823237086131175596862575186646095229421870791588007417590703663600101261557484813015012241216182120490274769771100138404436931544931765706248934158085735325612534392181951676393842107600541903258317519723713386931787681754736055463452725331959686911557695707257018044445015396709823110734384491034248529590011626241474842898967666402014660559586239757619195360498030582574415341374499143873167272119454781269255306239338690638134045231068086957547897535029134850508119717020001467699414417375248432309375095529503441358239833338046275922697587647476456624274503571465934107124073309361062768766426390849003462658836802585860232634569307271164574172095487837089292792560377212644155492178569474791315101510980897964560544637948855526423370319776848210250126459110600906238536813584310430536661356791325678149290665834762298687714877494896087765231919661722239295779012461109402176128920289253386813717206343556077988285805686126099728088162084300137522660057294658880163709680711674836873283538470938643302662249227646355798473307365312541909851257919069615672694037303824861120427467680896224697654773623180398808952041781291600249010560935877966512124134908743991771095797469119094359577448478709626946294848080224047219406880532792124270906276558960936522812825994307378877774452164655318720779401413654120743766304649775295634461722407001903918208609775941139491186929528043906919453801837750249695852005025032750756964626583756217508087716172041070556461707278631528883908580879136334154040282891993179281008065589608031666234193054602938557609196643949528513651522253405388869913224376242025271888124099102453501442961187819572880295097130412275300720341104495311197999863529529280462964486624702300668398320424651107502371510400659001955756486357216239662475660607480335090844334745690448746308553649512170788148169192966743975786089187185126337601973658608875530260736470226296027693560990557412500785432835507678363505258872644725762918841112489754871477586176268449377851768078331403583076560344314352661930826642329141183993888666195211080068424275679469237816496475160532524688590402072779570477530157100344978380809235599066047132731240266478798677400562725179142737618961874631213308525032377319695455921124615212392256317878717955040196080762128270493904258704791594043975515061306241502451955661158123844264408490377502622525579514955522349787164341138642630796859842988634361425972214491139878953810551142035007127727684110278024923883874650933429047601741426603369556959656511011393770431723624000042521789664564074322651314667379984063263381000560942311093559458213522913690530779451545974315842104631804509887039797383604040263932810972501266290370530831193274407056924891631596608185852139793046791283785478058113677790576014607722448568382353286401655207289852131564749303590216074619150043421291435315403852016810516036560337215984013239752740296738252555786576508391073694213475879025537616425648985221416130697246197561958412113920828147198857266728609586955992267688394948929514075927333813327718851474085912225924826183571432677408444872187187431517928302041616797897721861723869115861156109646354553492889355806574185201036733722892559925242427889682230309670537316875624734271508666753588278495044820584675094425753535988967594572765871827792013725506314824483795349810267600135521681003635731588982836874695021508034537654960476764817376179299295375695238893132353985357322389119449532067697697290877990240039978801668602656713164821596926924537432589927824753521893607419959071798075483491083345154263204356694102522807378634230639248009263889078789375105706570157942038777717612973831552675363554303676872594871151782624490478441483712516478739022526918969890261936771604042245416296979493595346550465811077104841561487754922601720628004306828836807159883258833298933901900873397060413719625435310803078780486038304586924613988115952899265357585457250587170480822082153153076052383557623558785768869276482347215177381469917989889471909213798541848349775373350477715594451389478219189881332187232366834878779371090461316580696032901017117203293347394552265598327138530601308469128339005486106176406747186333680382660266339373340561688125656775510557207292770671035012490078358583553778820079924966764734433720918974699951283531946235248735549600529344931926939861266768627103112636660212827468851934238275693935336864704854220364319240689668801658133175114479132068912543817450473712635234746485183283222787942491826887173507000622388481928512791668883494266929171861820120171094578391999896832967983383884428054010611169012760693576103392091073944405465547509939049571899281184222880920477554196214239439416122860097572317106210296322969873384642800385001866405432726307745633803373483706526904662920278602425820131783166723868133699407971377178718593779483072801017539745294576172103291367531473789546189182599837366252717230400228343264197815941472142067572244570507622945711092769421894312524088169453203638201216826383172638670560747086162845542141646555196027588891291019349207259842607487510461191848119164503062083483375060940514210744591997414962644247718367657388924695128457111367886554249251673193608692499315134837530184059197406810216568934544535060203156459679033809544930412956653778481824023296121083465033117509961488450244150488531187964392104275505552129562348640406306230826337391856229089797578817366857388745391866699985874955018640079628266129497307444141385885775901518036308765392868332070811177457917818188281561752456077441369955523226328160862742042075105265192192168929831375372129884633642489403653406218095614490769697406204049363149146812142852114432155634336150786002926527967216348367180932978676951316760509193094901685738846211522728034561194975138005039080279235782222477770635498146184036966414287149284861406816113860749124076723847536473052842521006858314329640376889455141359855362942504351089278641559559956529447612062735969750349393586458730638414932180858785429995621804972810624436912598677509928772977412116680836601692271074177516483529544781872054304562799184943768070608989737784652592923707849921699568295730985881118869378046661807237285485321127013665089156969442705936839824898091594506234785453194716019163711845265333153128920899983363551523043148383750793723137113812572643890045444599949395737193736883895443671636230005490098082347084165050596891335206712079326660148529149564344905075439124133019286360375641066635820811379879562712775807958443224695455824374395801885322966184425551391552569808745562797729937892837956617076335865985564331596323368212350834835429859215335975469951828167483854710448924115958855311761785467739785646662369839761528630291340491840315290503956995470704248252823723190061244728779976006191528093792478457667556383678837134564007259973569835593859998989715272553597179286647682303072326757315507438005903223394635957898419451411943524292546141106421327307984032973016795830677514347693965917494750310621682058351126345534523731264080368116590887235954050258027948349827163356013092796630450456480889775971209314243226206765960526693656915601758139843217355631424145260797946344800854495421491601399088423872850689467850347388638480127881589968244124892853100613169695122884546717117257453303282723494844170727049196384388662798868988111293688200934689064320130429757699092812349016931168464569350590113939255749716474380085861838177069504331170906557201565127813823629731928032267772315069507410403938506957967671657130691152290943142546730023783356586839214358543868929899598616900044240584734922273841830456620907969931083230308256650161225147400896041997999426603168602170003363636808520046262337017942003159485528997052283630409585764849654677500708295097548603106985405815847305276803252825909950199892574595947030940890791909887835628904566317910731592261809098492797691521200841868969435474516170519137081792639504913159779435383917534624843043886633404564769955893348123221947966582511274364171706966208077466099931903669177112603309126326017367763466165727826223065517717987974403436027849495347954072571673213167267091633026278093591517189922885199687012877605810364471807756471928066606575522762923156958555594317861020712901805874583418474357260746804834493436436749477306385192971716185445797408805140360313150685493833897856520893435636342137517732909704967046465602739445106356548417760015296932623320860983553455085465444801854494288399997053692765397972303349144257035565291788842441812439417867451631444419090701414134067892720403767519252959871151845575822858822564390772595911421441660926482255549953115474506224839400241266408958741746959646298547355567785064996753565446736956445709087280532195881773225463262983783634909396930503026830274553147326339035479001307979616723133170279470132280236002376162527044020456223263539900483958085617101843574326265491735469562099826924060161980188131047540963880975423741548397774941280523922633801719898203835137300859073349051451236927721940157506414414837848039498782242842860336761975290151017657129103039827899157228462144981667560859303417971132309498219309089530317350607939702583371069160116531935381184891938428952221792966140322492262559267154388959424282924136797377812382553142529700988432191748435128117510706603677919840522450908912808435124823653348761589453799476815480694211892784247528059523291386882802981464022714996152489549083821095906293204251806143774571410472011669161593945316020754001321128256108504615467695247262222375363652834806572861669923019262116286856798578279477337688410112454970759807664963842974546953690350647207431025005458134844042389242618803610529135385146444515602019899715500173179257884079446015595506963766562768220090901214215878560965622938039676889668090776742694449798498218143724099227748337749658573315458318190924407393326332899185635042685978801628810992071435531032055086778187744498192133705594615268921870975624142792793853256174056491810456990758927048292649581850827415255972106672636776988085798484489227393664281799906997677669596022756388296924036833895063768107679535403477121600618514554560567836183198486518006816088427907090965194007294814627127409612946875089060036413878185350772785036636855706080054564477794530972101491689720695071536196383116579775525596974902589950094365912512583169755142694400081780002909200608322641000024074167799235617665441351055144095768217113115054981325944717775369420861311176476364510594983037224222314374053502282808348908422285146687105486527544859553801388297549204749858297329744672387326198474050247438204641187507751517665398178557560281174080221160557772091552423825196857000609120739754523589688439419532114695991960882878900454092291858561235919876605939891187809870301991902920644522439737265203409513005173686485538260799586874002160665171971963360710436235632274553884852635427186092028926975987873324369346253346241893507506492505542930251800840843364005242375044129716286278446015418024630910339668442202868366579217688095099924726670640420157204435645965932339377586379372124291812160369844913259084388508057838064704981618861700644435255063179706798086023518366757109181919713115350486416498382322245520584490752563147615652116884458924573528383941303837380345757379261436056216814023999486794975907590293232442087274327220340929839227183836397535231121813158880295776220413263907853883217374714134703548237113647934198753721361239641763096387342155172170512977873191138212557699877285256142295748808716068003912781255034018129859094071557671133265217823297221241093676119020379176242578988568940302486666986159782638832385569559377650917723260475467744533125522515725509034085133805548120013159093747563850134219000855060681586158715896596433345100271779113518741973710701921413309686565521505755325576699207813705823954165333069434051369721569342922629164272080937759056905927543029494413114061430403719755032941959192661588694780618505369960028949604837892639103689361916568770439271528850946433431932497790037735274802495737838518632347529070754693135832311528010666709066130056161895315439961211878329149503473826423992521644224688043426123967138437942536664497476299025407282772488734984887892597387102135165284847059733250025021835348187552222596848332335048591484822019033733098102261676060737786324230778158612623013497409975919259861601134724749579485305226841779760134779121363954487414307805786307693955251182561443416997485498447154998195300690853213765114259094983135229946311617649083501497901413750073852540340921973756308654498355570490925003202586204636971702205567046266866616531308861041466950965515013964951841720983501304784811506551001650532249562791435599397608920895263605455627782853714026985758798676480442131481795247107838846304982812502021415263833208780532118567279480111790225996610503379751348330014548850770723991095882588631994943411517976601140642551104299532910169586304593026155233072320028162068698473682885357118223814174928171436944789536613180369383463326864635880787011759884258020715533157407120001022342349009281303666907308524400928712795076898222073890725247061620315519782580105909384367018562494527252162336208742638700840309318423787439786181502389876784361081656702552563944510404689779343720140270292229209913829347440674549654121763194365827256453541172579301171466485655833400948009401854970936544877906905105667198073720918355184847121231557378468457512182363269158947948886943829220269616372162199579524235553717874344282864232001517918798519417712739155744957074436284445716744225551125645823654188983507179585035835724601756556039341014142425298676114938337397149269607699101265847038261890334065222973468076536879358467868657064722157093724658868694437328705866871627162777169762529432190148096829380063168498015879257675250144442753322000037140809699627015455910483761481163048146146667219375072464472517919275454872661259343534990901026349632675421239242689481481850922021517183159400344587396877229462272418331850499661542690496007933442074844665881581803868683308253695670795352026633852898583660655445056961276076574868540928272174522553251359333998933616387969121959202842059311526428296966380428703849404221783578029926551826654628454751604720627330309734875367404400201383702246424023952994874729386118493046427384417757302119808823039459538075379386672085906653502299267815950746448475697260416136060491043378345521252101495411607408958832192002485948494322985373261537244780956997664750831830234220759752597002925789914575244665878447683095839744266022212042722018337986668881803573214436596631256182172108521842215031281735653459800439902277049043437114964377380362953852914189767995341145269236677897171163889947045461141195386535803618210234039844433109223335368241494525858428117652740306419561767768630357755977929917773796903455738156886535297968707887161124870269498252398413665772704394391048003720768344565507710124801954286678614928905417878586151038371987319664314837246790390878559783161011236688445405829100831976701677004921080067847057907513260520202910583665207686679872621831737337192970460878781793722284642507586242159620267410729695635524211132969043159624639178187585464428537065241761946144400977693327007610852813732743252660815466376926991549765073106781083635779112428644497141517373673355339932587997370846368438950180256293293527953138628316173861808613601490642721760018213352686085957672433569993143263578670199348295535183852550016408673226871680914734909172629140935178913887429450475837731116041870215808030238491296934071163359738848425049779374152999624616005726920077211195277683721864438509676807840329906266329400081731048366290518421772112135104229422504878792321877020284671866774139036160880670089584484596519194998207002594472552818592160232920523223202039717640290661390248646484641569086336659881387127468174868868837103608571021236378966084581511176119446372505140303426685393534199324522074813439600760767880893715640753376534464908484891864987110317152902839610098658036889189285228681312171499163848353582959232589876643926235682105190573171632620601197539952759370241906029334949192446768764441309945252745914088737998462227492090973881606753363644852706600769803641952877863442779207849328635918985029939345659203124729375084466472655708552928066157062310783476982055600760426040828684743649163172869802211829808670876064341665721219285970545653861867521419353984582527297979028922401772890484035593730220816984495259459835736247514063845963217961774358928007207641020969236975495442198017374809633247689282132979252102994420667897488736991812631752532703565656388926572208939093362302679002210845749071457666475919213294614154642264262275625830829131481650318828621877068060677545467834438711200412960590830881887331785377123041745679207523846967432137268210803524116432394519458288477227061387951863224912625299091874902088803628111160970101931841271355475299073303880895939276110775732677668537585571147946943464575838079019875327553392796732791663284590029967290066652591336884787498982034541271644272434231966229894954209622903509208297558314720980241662958843154640646847267970065071961350473154738864280023766580872511794974484705257399127781379556572461146589981964381820850977479166900900294563912522919103885562151261197246088383208075713754459789198015805547295341591401206038497498486179336170564172275384136355956835801689380402817050627905083289175178681152935780030282434438163544117614471138536296417563513203318783004217792238778125974744684224652384712124519853197214027575467149069953596276913847537666052562933728073567033248510570336946927716960583146818213901506404533091287076085450748372714616028155999502246932732813419027529199201597186135384711816418188991383896548931472529251926911534932595314799699269844729575331256563585335867008831860381420387639678117304301845340621480851502665445353538118438419905855468431891819608132719836189243901067810926354814835431573739866544519007948803567261736811411409828712091917274664481081478578659946793584004203465126975374799365692920877096048792576366361045642349778244706132019719233070893431999809593896885781573520389183012572295421542855650987623487376575330000700642258328417892959955208549772611896834430606971223755096320125925254338532952601165817135554553602734177965880789278287530946313237206938191856721401174043733520764189922177850826588623841471815763098441198180764706526133664349877530474678698264080184250383526493318547948788570065991778515086625507520200596136458546843764256176034996544116191569952775475913912788314937298273532936839439719309649412680848651059197210967906870597232958601644296275941464365309973234742820327350269033854150066617305824789758016659634675568303096476596797614066788227429832974223109680204008811846804394035559068503562624479854813284394101899813782559215358995155313302505959601525532193749774376737254181969975269794207267112837284531353449879939641921654902197337790466992525691402718359162033912518318347844404823730313727443655602581266907808263650047546136374667362543615309071614655752298147876420191219986929477525206486422637295599876222240443701641990800270990965642967331334063354615539880909074030517675362278997436406795247025238589674490292849455266673710414892579537028637374990979129664293668787476533718467090110782132644463440886954541954257503676782985529920369837594477566747620730609306555182928746867081012683975132285112523053421976868028843279095793118346314394797547602737915208092113046641900143694222073037670323149374183720079099051854806878227436945695902546283282574257358945869842982976515146607853129833472417227664378874417871219463732601235937960468386967920692398713096102885659318367908149768723650832541267159235513441692136160861692230865711372052324248608075476210731365367260335486046823031112890323121238758409906863483412151957679481500089650350799025937651144594162568279227913865681939837453001922389011870953294590504097904396392282201378816301438442681480855830246612916845450040348578147940792337591106956912667274139450123362254847135286595121378399373825085141157991363847602093915067915148752038620495717481144042513917544617017328659112086149136658714601205714003995987264640194570695323610927528888746774329126296051569824715756637854744129165939441081034890880167616771737341714130341923983109254973459316768542300013274062206338874023504641677031623814507892159324790268830204721306617363215167991646431523751401320562289386933873341320871721966005035814901087210457046877489189837852128739371201117075646981984120183688824778206861860549118159388006944303130482939832428342532621985298112077424388450012301356166603415334034567010730455912357163489658119919609732784201158452658668286633514181097016693175732314482152923544289891317492960813653794183617961210778625324299614974922008685186308585197171723020988386848521677313326294727665443522871773968398575830437234368789966490412656249969664039366761368369783332600055866278065589491796401715542251283123179913582717552666491406404106627512129780940334756117098206220536018702847494295357096877812124972093834770394560889373565073696049842151339060547213722103605694140275320543006596395434903213949028316686755975552276545205663364793673641792620405988878503517186323648465545078279007537170468560807176126633572530655493183566301561216066611230975774631694867286836986147016969587603027439826912456239216579321511921898635899031641461871030051646316402786001173318896722804520990622870960535163685841426518076695146594175829336058064852597762349656627717239807830057834304645640612010946223286541069802398293731227525401836092592870243019890651948283685080607993506181952854420050705953529032467975113856150875102667248443618042225342729036507834321167017995016692937039739156546518763273236854754060607432168428225499741305026966351318975675130435789817448410718365670981297321830230402392254326583258331150911255839455448281344869577673531832913658238624584273189257824573970507860340015706748284497123906087505968805552932553893397483533494351128132814344130569516742975143572630586287895771950723007264881637655231520405715129958693437295999822007966290355515881931252562169172955969725783592221082414202079414258525726323130462723876264573646556016704206076681272122558445739396461439825741960106344630769054566420743511927283682713095245717497722615179941356198101425977536206909962975262654801277301845346199876389836529371475811412696515435430545554617781383616477217712250962810575010619000973472424024021795154759876015203875701203902366487360916827485744605254590867932848504765083006973511690417917997430702511222126207058882688152094104138078106643701178881577757903712547836927291304152726912939905580672300241097298643641989980758640814102381660258477668672536348758737701169045189519920251474382634886571556002733310020065172526519862720915536449258276264118359302761487264522630615801561476582458102172199620839706797112447839252419410305289514202602885547491583690584679043302337933008338730900401424944043766038459877475822296223761861081934529976255107107452462372051975862610745208340102175132418201926593245323910086979279454190491298199784142350170047246935273919525511942102656796859467279574012460058774181677077926815068753518262038401465216192773615981697132802152251944337492408368004266942021071683177751654250438697207154538743652143325358527970224467810766623046198768002693567692308059137009411944908473722853754853901863857824829973435183634358820775758132054320424865682578945587221335064101331747260942080148260661756519486226944342856177265240983149097104300394191738871167907602117411207199082622859769360346445119905519337913657240604474979067964289977277247723192586195399722034159565523559861197944878332015920042011215156094570854641609579451907631562968052733437219063605136244991503809960198923482658040820741067470936492892072919992416284252752492573387399653331887194916189799506529242564375710956918146637428934510779077189181774392570226043325468356766190424607646012647900727612872782073494676559247076056600282222476057243210156870304564990736943128662294486052991993103885754401428593647946613893917335818671286952993261691723663256421351865544781306602604298867443240437530866204009752027142360150220923248683680338336250482267106522897225440672341046959505604999444812331366206094319484545665440103267309623911130224610291292364563997639448364496995834639809545527296008404391021790662628272994236079243337006597736224568651712683485864465553115535313905269433524047103979434363009896933474236337455115480376546000118539846016331261929588882420641956825732359895043033683583427858348360185312096674631876880662028198326637913793309470884652248106605672053259146654261887157733285341461869506335132048780412199828052764630220195235565328082487968448196688293966477062172862912192224935401864511398489140115443316817257783319998423247212020076799660701127690412679047897439324535057894599339441627050572768288833902217655822753003989948433493273360062785145537401042435075456348175487167817106967837785620994974078148566873587370091256780467636850524282374305310874949552079020037290585383036344796466848193241353717528852055053555567207178977949986120219851983509855169332909875255432543358748688374808493301978491347245768585551943476330659336191246213402451362520831397920581280120381308195465760816458114626361811651956253793790651164123249035951506127594521803514711420457511984514419773261723294987157094621769705199068300820854469711733971019863369673792347575829049409602398668619030403907455907758135804759243566838561066022282452526166592435860663154315918965912300331403576753609034265951813973221612121070183543925680552853943379401604546389119589619537213260269800372732463886510227253522424618611765642508231229696103823392400872313436559684132303115701902481866783627191320614071517139974975026648060837986714385724383166791608702581770186122235088456330020183370314950097498616534938479847541216601982070457363783431331292587773466839269290671091304102700109203465479592680733345846015783897699690955614938482190340481583538845840196196685931424391884823845224895332394161925791510803910172037550122929205392502926274370085796365683023808358529490702750268280251838277796843333385434577560215271722930327407509758541491754803415767250736186016368230758246599685040541623033347024963719516554373810821806294917845759958748311834213059520719617773740972018016490655258075852680108079626276092836456122219346022451500250302037873976972107163573597290738060946804785098484522812578067143465344791550914834976878722730859060272106981901819963930798342462291655412334429546975161455110479549638870474928218628532579069697703960121361393227947045791306963927801700842706211819108925198892495669165092868707732500594362937954503421177825211096256959639155873007839625718166043752468352260338438329465970408949308543946220803016610350564901733863052787150641881224004471911774094774654673552089086883632094410382619187698074104597358288938376395414655611803232921191934520398214729085319489216858791922091832755062709111922399690261369121535714298699115081193992391424471216260814589578302089168137860983187145746245376649505061949589091329709197002497861240609026050476276501032646457260369871179273113707155981794957099932894641780773433532130917510673677298140503132238498332880611915055190927137067664216646996683625568198935980384059232654261096764908752576359099074266158776041378118528110516918638178745292758410323845418568365640870822645762479947184424615216157214702155528476010007099055340510595751827500910460218036300489667253328554919646261044545599346397383793160620536806060126777706649059598817929162636996237820292858098778241317907775347311775387155669616236217848874444273176520856673100848680109229416458062240797279983499662406800606560167453117538785459854803882295010157879884258974840037594403442288215144868627878568243720375635967266613800571463117293595361790844731575005708374014408575712303819033781273994848671550092287410387735402674052583050473935850799393057310298179890066563713451610960199078276067718408534897192529400041436993811536789035691500550561596260720715057134278265407742532145268951035028225816056946780281895085162436694656963866941781836437580143635029632925892366595335388456104400531976876066463348614149264945701493966720434901340127163745221785095007405305863114746445484311853441828859068903595412429247724620923110046918091229544389524068899336221751502227084411334309678505022941901632475376225901754239920045254296086022886529977238278191213074806567899300267787266779319194876670366030755201945280705367147156734797213230160763709258383999867502356237076308947334155218422583451503176329844001686387975019964328163417808392903630374874653745005021717833738582054391884601728875220215015098783277145728070169814101630801088791815014562476951963720896616110620442739931720819514927659471228445428805704436944454691687437465456542382497772075921175688111198351969354111270049683077270774635886735770706491940816857401267827914809203538980227162804729046172987171121085153808660556541490713359991970759834033078022033830036862212603139692530759058629911103748423385707814009717837027334960968602540399684278957153052472024875010694445936923724184389277680487382680150518740632184977693006361896483796517692509644625828356766145721826678184408966390842085466880036742952635592548689518482085054589392758658124228070277130306346471494005365890061268680179313009413869377841944337381300693023806574225082068614310261398235608217489702036594812363855876866438311203107702916736487381742931466058120821208944489042152068032470824110734968755727715548184778979553066454199545684459636381978242715985487947042895213968966778571725543400435034130907145478860468484901468613940982442160183014658113097711615498628931805448116268501741213881278949787700301865661479951506236042251283799727766826221069987800501275955213165090380502855639051898193877469955628905338247720614064295499612130360210856991382751582210907418238238072969049044308195681184506071008598051191024495452677669701363367771141804512607958665098922380412960656914273700176054329601061901205193718221061986408667116708227167593284947008226731177860785279771672937177419237564325539925869911018039183495715207189169149719930315932504419702145436448650606201342671392845630310596960180418446826887758038758068097786712386072998132086754959265937930723046928084903217861340752025123533260268255712218447583323127211676389586352127786395033514786052069632967161153297960118164987295788271505498841482838446609420113383087957650633558883354460813587739881226024088572291705078688244316140757749592094315340461431029981452572200010735871362879402919857488828114955088071710220015213303131871509698458302084722919031173718778550877181811226472708547496266465398858156299555348582003646176094225023621287596402917385016349344180487410762511942952026972865772501376828095760904330992062853795722123376475734636118968154642178794924078017250098450617975962597028085259873262664231797317321677798355365669942974904586071798333359489786748096350989723087293807428224416346917935772091352567631645342976181185066336650422175060809259221009321219649184418789721413565154592855436071740926519272984973568864151979357144420162317160116597843992421620359213477154868177580945097148715154409127071691150579372313547539297401319880769162234016007573896594696546869728481379309525010447015825999151204255041537923409757061503375803316012833305654126632586821725938057192853005097959925313860032994518928764787954819901616448756079455200575563392610199221273755674051183258306429548951675540086101799071657470052150225165852462015043597650578761516807617168022418179432198900012415965878429748663733140705505736491444267190461078858924041278268751948423482431439328756447167516967942636433648729088126467217255974110359117736836317754335889571414940263892521940446433414355619536706177471815324086232037509829588351899687658272985978453743507281696967241319781728529632858687296852262065417349861942586919208559591695999658818847631855024886411207133713919411957815841424747003893112286708605837318991064279581999364030083052916440419827228614672488957833495918254529980094889658686121192517668502866367180681638863135825231333124722554117798637931260543680948628781037679679776767731806086460512157047524182041980368369637902487417219603121943190802647282477050757095170636975216953685076242419795948887532741477441317052791785903692084384111711321638487785947502483014201786949312690420753648904241538413238811500432136281024518317218301618165488349719617495452637257315483036322462325553017984349730262036799653994763451015741304867880232846943663324655677021336418203851056920049602053090221708430083223295766642742955145035986647865986127693751534806212019188889964625317475766363507344713716554054237149332177994015199521406929995606649320108631328175673624145408875563059778947991431003272492926459945940466719304323271678270695553084710043686368889286260687396028537112463847898837751308187884218859623797302768931858011655190452002253508933368580798249813154557672045102543164659044808831370237272671603992319672529017815092473810266691589442421057328654360820484115676275257368221970198881406959667437727573087134091814619064497183672631526229154698548255445109125374817188410509490287705950049662644365798699522611633281128751141113132326043238524080330496049122514364150259859281685834065769164765017133282514606328007852213052354428793674895484862504079977839130329644765363441511620746888915195435341250207419221548350466567394884069879240243361952620930973084374071774613474108375824272036162830179672472619927532617874381015648141442235745095556663878227639075878291081802553155352556848447758843727404575003435530517357631893957217131988698192810938154593210499549175438486885515190560434395737479661697286086089869056288918496572314573267408963745381246935426679253539247514779626820492114788841719642484510570588352204833031618783674476791612173959931413395533014469932886375828571806801471552425295624027819088370503359152705902859007604454856682427634861719457973854931932219824783934920277396884805278501159325775427582175563099841597902520459992696237409263235382097181335872818996692483233076207531536246247438367345450287127886858760203386025001059670217134604675494184626832558485113166838100841312146405649846894616634079375269735619677129094475140664239363852497854903163211770718592178628097058667506028926280553025551840326070577093810888388323831278508388564078989412258992319275152126652760181030047263533733393945644630883688895340870864025401270340566002401087387903315017074334821557563650984277671445666992228264400053992263317451026803455435253965152314310279707172569821947393469246996723525107952592086387326926359044020467958755886298348110395443190357154316008477114299872504398280596740207303643380497179259253975151826470039529519982284613064753419623067364977623301261143200753249815832800004062598851872427873998579885289596568181866879940033756222448423439732796660257233399609136028419466545346103623861633082450859162790904249032087495280633678470006280588036977180268639360681228972510485747781601276980141323590601061671100192123371263996267442932032577425876964354123494351521943529884353347115443999475526651300131689966273697881691878481374624618444673909426004476095172011346625933252304082823564467134196432738084414163438490587793523935149888804769500592552768157303571838194814222315561354798367103128984772964558942070395535318251671170552898597434545810242703062531646334646333672603634906167399189050943607774129229578270244747504996157867515405499385520049518186152709563020149698874382591571358341030277332755939332327583229934230458135900674458408430699321168077015475751926442875113458354108681928415880588042816504169396510173325329753965986289118529308040887198607448090863220516755532488717712181623172057885536003336155859375049881616781517288847544588528976619464816178314606238955681448664319621625495953847936289446015241127824830222476483046941980898980835088716524859512604164852849651133852951900640473240652877933568187147213065369347518884621266641927143277836772476990736600588164049507315646671000999337005782345701100744838052758584894525792398359109829981897350279889353446190164936918961274856657542459370330570426064419565715334964751921632817968366389284485598370790224992204027904910235699151084883149660326573414154381483823028365902443019638102396954331413986915195716081115798380755905100516759435144301453991121677014495906203399570928003529441476989246542238873116497684585002378350369462439405464245649608006114801317946972474557826415800902353227335245150963368426217516724061567963476627628712080277722022337496805298751493414494019026754486144647968903205390089353895356422323158879329875210333804307051620537457589280081669766988237308020273780211589770449174207504977227182146366164759094413122733940358314156273899686475287077635884293062549574254404774813055404838503784129824141918539387625603262209740579621599780392373595920662844172036567764760488543528130530448849089033488302371703224578416456261171786713109396502325222851091745731037841626857412728465211800006247089905930034553390495148917190530391896803413887221142801422139146156765100398765973315964961660090760803158166971128173474068424308935250136676333356645771351478887697194820853319778339377636120374735474200813845139817113020397142057183577207893491730452342543604166467695895284881747463578706062407250202244204140482009744077159571347331467429183672526828542047268119642545933085706397159635598739923895945742967494453840887974549291201221199508052080536408064077888440184881803547057877406182144605749532054872135354006026794215828358543105859088003689478469965979809298967496431858112514661877363346923283736234507926501623724362534463512354278262090792276668770108410656285922299107439887846228413348438861565526473884542489564763299661246216523933177079161996441228530207862921265785493128715788598499901675166327042582701573940694800099102122135284384423021202188091809333873094726656969515872415663684961611370909588205919604231260758858163459383012646007327478848882853807565129845638390611021964436097686563589873139181949244507833571642689546936446054232581408855146411340478574045875845229093774111737743011335395127020452992331413415112433258166221039967125736282062151989632200631413325198435126955722624376183787123615052173985515427162680628738123123849283651197568516185557763888429150152120176972886499626778069961919287100796602771161122281319429484835501098140747902208815115655924716956337099557084722829655591478891575881974233231596317052699418100721268046197004255172509704584794375361272335611924365504151791482123456710304433894455997499000381606470091862018235154632956317962273652146000107362235714803881378567757844253247102995462960403839049779798290341594028856093283122017745822839217274629776424232965510190919236196365266717563031984704531405136411479164867355277915249054984730041057651431449195903995673165345835327292639519091475209697657189904743250785037103627935211655701404374774384417293229213316017538800386460938893259593611822368956291507720467146129540849621305823558918895351704926100124503441441849149061186248990160824168958040612535587533245918879664885744971325156900225845021281048425436541847225646339431362797178663149566720588577810656968282243341737306216523276938171076727222064046540374310025146370098366076174704951295909030683327643070636563123341723695608931379858773755285662807209080341941859984560024830331243551737613747053116536948489874565283310744559423900364897751611738836357009493297667841851263771160596129939503389297352351643599867429514802967091066551254355029218974746858786571935942978472872083026794601476084450134058141359839140071854314735761614940929819817430244454480425018265523855126606032472566663690135765093720670215218907149688698198585865165713613291267373064606090355577321367447042628294627132652493226938366941314054926567236077052343590598703743038671006462516615783717230631413750251028566064716237254014212286518214733795466656621192279409389228238453965156177130046129520494227346789033107577559952030714388960934153464757443102415079117961540588932274384288802387656286158884890181380524649650877311071941015129908186470634769640638470317140884513682059772476275887951422835957177458417948822858355115421808029489980239343270673417457350883737172711951500694412483922077184142562253269485531335363073376925627951628789373304916855521820576836797154244022969630565854468363333034841331284740253976866982382109666538109265290306590654480160846927911987187362413462424701854604789818102420029949419904207069923864009592932349171779720235902783883766401868089608405096887448479773321034847025569994456008762315175447649797469041531859134761156000730723877808993013186855355777876892022764083207049033642128717559496827604451657996325852699290860166080628690652005755638944134269605811365629306875065673090368893984548922285915405829233165159953751287373288521853271147422000867868074922992052940182719991087634436411918235547700610421143523686694667158354642286959419624958122350714433061152444509653192273969877423264713279466671618106812459996697244767909984395400243319281824713535046055568542398069822358811640070315609505922294666318776470663635901583020075950038756268126531796496472555215398486495473920628015828883404919708210557181729346011546799226564211848109278800967050839258316517951144735831952714618252257672078035222656726106079954618129476992151650877381426134242639822197406663695923438245274335402795749121875721187083552298709593586188713992635329082793759393916184269827841245027967011791435949513514962980100332366838848786277178033698277628959579120014802048621475480678651149095312917701262223210517845760561261341372063802717494135845846899731136905229250397119379314325759534296129829948110634471844055270187145840577490009357446740637981671207666725411366496942312675833648205852877933433331576068772705875725042380723348895694157268514479381079983348437119387496600071128162329303984197928866773958611367269239574259604254618487118459241984290324482702297655450772938743349892513248519940058493229046307234338901484206865046250531634351193298925495865738452500736994381957988010683881605751745299727454881130653230662275591974471891969087265170522125017342685252310623940422638855769893075787650637968635973226826636481212968181771321249852462542052706893072323290803645454823999109156451740299810930864254715376496800473095488947979719164485603101594788685411391214189736439694523236765639173993490852531008049642078407233085238966282068095364334464457497462892311634237060734345372926828897961723810161720571318247422932069631403836843007469658911767857125317594917002040683685789953735976004850272043336178142503654550286974001057208541698320214959497892773862399384146169531328219779379134449896053264500154952852988079479647178967818341267458443541299892360614228481337330300281636158168861546874612898159329577271406130998820794001748913917816826510935959717783569083402932991459580757501064818200089932182859680054597572398671799693329970629407940733127909903590069168663028431440002882818235749965073708708980652969245611305568962278216734691006384197945586850317860886968510002441791678672817326055594322938860879719330819028892529847686256472381323737036236161501897991811995172598740000039784766215611869898261272304223330117460523522065740632798955647706686065641189940044671752502223688582651362716974135139938007217341217880874142821066797847469275539872249694359919795869969386251185798458327257969807524923349552073453574051304379375778483003818192734942817366484509259520471891872522303587666943059199439901340973288855362758663596971987293670478269473924391784122879023399810707954908977095632788467825014746387168872449123332588850187443848538463918951385688991358733331490945758820056266437892185551396489464746452200437064482527817263832680039090115364628588623015273412673522745621426986086058054999401108980653558495214552220133491321201565466224964568848768486490169734414833564742381804037781662697247325010100100762118116418545130940475878365023281268460711808956956981628459140186764235802928154496942892969072207307947819912729554694875487792726764754159662614637276972712150839556658361158571820414752511048234647811091386606120404542972937483513328459968383820641852818290370635787262680263323101565043117922042550387477530515878042346831625880795337718275513851594126609742532410270013031999695065796950446833645941000107873194216603885762648775130717924359269533075666465402314139489659068936484523499965338014755050313785484993168960110326853065171093790472127469125507458075965216218040473120991972913950695830451301445892563475104082642269487258557787551027532013190270807985571774869807732379851304977986494158992300900296452254031420736800134243451903264026021258121908085519301298766010254805841062171198402508531340186425459188925721709548101382093352923214707627748269941642717777232362652980606947436010257000825767310259715895123660379708615649281550804918040409520300299386979673027929057311927366186784010785214965656804632417701058440502029967543205269646206255219131575680662312199355593248793785190759043842175897781200599784101595551325900480735355629695492756721833663231015663141797549519468711211227445021972739354103595041290642342130003771774695254874197368889688906676435705273826077799305971833172271202811612971090995501873472327875311788602034945023981051765848193679325545969979006392411375990668637328732522112853717065976872300419778121929770086914624014714748319261214117081790215731318734029729897345686684834662043069866429556227928755954589033011104719617996827527927208129408348552130237853377937639892024222753900814593097066637195968805036788555935801751320609762647344747296028460037680345573591115937339380954302219333377095181869489059780216287306866253186592804909139213042851396340435380648790071142831239540504933131430143279984383210431194214591441876310221272990939864213956615224322477272807771923329126368245297161902170840952543000932107198127613262939163124492542220362613877370678014062946224018027708128197206447174069708863871076690946308668323521155849574384185856059453540201294816335110519621634861202128175602111441141210816742502464685859571034956450746731382297276070824166440695729052861699143403526090896267015799352783896428557067430099899939714701324737830416469222189481256428834079105373714509984853130929452903036709810770244741682849457383713031555853050959648757337129721578892029678137007918304987137510272739359431556043291392278928404198862413720193839123632557947264270343509437856035600544826552470812591790819875404718623032516043394045223608617010012321767077019093502260664926108557168734203129653476433597042912965857945001583258437921995892888226932144645784615137430291710973876317714865244021464401063466691126281349640155494676351135025779250769444285404703998600714735650157072557399040011958756810159756347379469985681292303589314623540809897525049843491970293266386405072376382746726294546664140565589394793369305286212612282397310675516074551383246795061211514269333335531840487257871628986505398735372288167083184434183436360483372959413345081737404883146387658753749692428552969811613390995480833552782018277710266701253601309462872126593721480618996704417248930405108649964950459300268303758254519771690177001762349224465433231918733115918058900219281571141102073422453434826900829285306862460377914321115654937090519730237142358349111902916992996463526636506645014449202826956936864005325983122007291676515525083886147832218788491974947836750752667933590408798226056080637188462887043565928860013246786128894708086298731006475189942221934699752647650370647164666180446673605912563897919154784188009208037125326989560005560360009935817478464570686424119892512850244641536970702281499540957496186133097494280989602416673539127698685034569224694568531064932472113478230260093716279180363942617068376096674040764210777069962480837950040886151899638213488461661589101484581410779834653210745579061161573059020086986290428712292164101299445506964996715672887948038763965446230993338486136687694210507884912080121952039418378932544266713322874543528899917053096864631715112701536338280800340363017706662246228620251943359134261333296278576118351371950227949013644278697357407428245899148990903597279868879965710854637042057787002765454640041662763633412269028053049986214560042753204898181111107568169079732851661521405993243623061571417573604833597614831431324866896310848283112798906145895537790207014845711171828626733759477072646673238266935891115816799409522525797427173288100661525378284293821229798723492957844758757920256878559577466067526378455725689996026671659836251114058034202746528618890974971546194608097172758296991213832603552852992549455849735164238900748319826084176266293471625462970099702890678589122700182783458386417806494755726712254283140973117142506530976780680184490553051872880400447804946897165535562995750651144038713901926140567056311451474156547132737093915552965351998657183560538493612622562952792649408057542204157728120884671654609186446664832048761108073518691959401337684612888061718760253752929664582898198401953206090881322586980043966668651524609506488242226520515567312538428372590249171518849430454566044729892787190218983339303933839442417069987094882015119272016000147159997308655518664541082803038864759778047150754338080923519716205332510351174529654277346575694826703042993742899355860305852214152556455197083003825781333894403286676402511537164745390336418932959089125734484988422444756911501106092783813874140289182860761142098803755881768725837930383530431926241846618848718757292139751393902915949443234450220048968681222449065999342001984241436173507327460766626471644829704302689541095873624241954124457523921535089176954936956442131411001536212491751681312295170602018291796099046425970481865273896857370758879663710263552206477455214115024446322182871677948402699439845461788589613406139422409833452114888361939267408279879910235272045219627900099561090370769337598162965060420155635631005208385051776093413441520352593458802946847117851551562762960546066487743470460052668901744059554710162799036878707409509482717561394620456868161016588527590040111607540389944307576450929245334331656099291982555932440198340619935332088727398202176196314925215733153781561526015488994818558880518251404167252717729527218748208051737378962006847433771210221115769725339319528682250710616676177839183708091995033321818920419193963051360395671518135643239985179682739482773567402131483913870398914366440875259572719094241757715078306829004821802581660581105307335360843673664077897003183546924948660371160179114776930246806298070699357149881911359710536125828345275320602016773435115895846724557817073846824465288553629569432262775842341295073750901715669840560102135857584738247592960523936452542865893985027304883680269712398620118223770074097056938198455921504061087972316722454189605057211051519779120520086108483419881831061803169372026669877427322436575089074954058097821125151181868846781286078188674368465900511303032380568940684367944086944356637678725847344454409043741735852437803740189320362757327450098377006964143938302296513742167373848911263627158514967891003290250929564706634953586393482272410091749624001339727754872806919515609532187739690256761423169257552151232248363091203043788663889740838991501618408287355534569132102256860074262456018389133733726502720606416013989218031274928234226277875541038334388353027281397355333698351183069901209422835865453182386783202908879024564109311741796507386938450164769727622323577199293018934748699059280968301224090806716747604778746940366142407048095222627017573920736800617005691648098936219370978822383857667446780282846737623344424288528689037682528602665408330729128353912615971532973811796966863092425070466671626426441545075678090461557465220155983212925274801039923582924746998415351327479064795585616551273283079002442653521661839186722264463509469368365728301119790833347011125694910723291039574181617593730391508053353827457313219356962437984005839044540449811486186395495891849474737699800131463010988637889534063496263759322401237693293613879623976566931666453756830983466258447913327238356296320422439778998023343254540857628818125180271653307485977518124715802915456307502551962259229165462032412328483314537199094755092051668534551703263335570612769008391909059997189314756035630763971826819882796852883443256774087337663006360077021271085276002347180305529659657316215064179182786688454466362174761682835084008058873486644078422560063192273097476065707112352836181464111617113536128998446026858793757170157393780494828147139018320389264588200478039429901697436454634762486113611326929189493154754914777379429574816868900191498814079456261282276623353247952558948577675102155653784748834728777808623533920051052072382268211552042829524074557811485243477593654784708320771190512932727544397444020141428643127412877517510552556159948021832887693687892110031017332341567599656513069687618642797289996667149638528287771096978272147255157262581173988815947184690677407331920094178494432334412615886119115868147540294281536576968936792607897681331767157066596813833002934159021035159634433708894009650561995505299947730474350929755935506754915749458346599838726144848893152196137103722438245635458714628217321111977310932205488728212387612492151278663717443769177549295242709671414339316738107053221096827964422542985279645701117202238846981876725014349602472256661359982047145409840417877508099525273070385294144742088163007940207572857543607941598445404566040487251744369647558290604507057907569597980446541539555575416914658318024312543193859976510411987136102110436792182270927980984794714311303396049106635472895342214339128515184011206194599102796947597959526884298180734072403635921035701350309328425496245046106135062834360529893038913962708200730853121213981233084139497429315162397419832704755526723637800198399248310754664666641773197462377048460672018875533094743284600445145235461358972816861432971988708661462433765913048065550766384751089540944055172281650872839971004555019905203779096629796793597113898224865061584116224722537562735843971290178311020196077107941745991818742146255440724232072654553726164435331343041534088102447284206411016114480283794324780439288922879522228169210991583867443133061031264666957503150240050262406199216950417686199476012363391428561985630608238302366068820943791196143583737437469434475240164505132256075556103258404447536064424421931140895303849827413865649377275592278808299308526308864949979823967560865524566277192446661107042921539624620700658995516598064875912021196684357925387029773160977978075296737414109668509965628626068457471979158671847261411668320865944253674320817453778235204327010779538493861946387854959336912858928702920278202177872365366203110802360015156051912507598424982758754907934563477727496140611214557601744326207683454286501724144327952933316747929113515878265065045442318044155246000225742740519137979416961053363544015767803666373381911799518227914264816510827125755300484622565027529848466068154024964968301639909945909740512747507775642981589285393211239900378310109211284648836413842821442598121743821837100798271141082039051408383026377793202930372319976613659407406394380638560484982682624624634058842343766097483283666364571247568501643184665579949369725320061230776744967489077010573619784876327901324871753826715936846140246908081384110129891560627134290049135570515505447769225933143089871682196420005690388872458927961534620423825166985169854017114457589492571106892319141564214968104179006731020011755588176939139505809607898946146489160013669110398965952583426949235101646377166547220829350640869372820535876442975893807410341138619153483287092628581343499789513410897781774354850256223914039968023302305906174956057439620864038766381413844823899988283324488717175412089578126104413344168182053204880998913422893656744964935066862905824854804161898846874361501961240218476081243906021615098434377048825860230976609337867868593548314040871774230705538299636689952269119728282632945301204674789485020454880683110659378387548647184307243048414497361392929378486134181468612403673074547901344383336236024602640042957660421318870749056305724937841537979152421791650823904815168036146243520482611667798257400575064644601331408230568724754284843323304537066621439667088738089290269925832821430539441748008218122059404996105858589723990367142890493399004821915649750704972131057672234651360615378693107086853597801117585370830723082383640598401768246458608818926565839155405889439661712261121984333214802829163252521641809854780166813935998914981806417956386062566486858753195220710271229316710754215540019165767056600741687673160277458451334930285980447067830260057914441737085879301204700530986855576487836670653521338195832593703297794273711557660264799682732141978085769788037414853375724981216964701110920653768385485257631509675620538778276972052630535093453027878363809755297209305780061793500380944046058018698932267879835405326390589202253758079313552798265796237385931094224526826079784455271242178622734470419250774630786573874339922273779284418164010038706784509534620743879575413223095683053480552943278805547236716551308157886565921544937551367669962755691220600547761831539208550120866408227761138317677128647130486106254045772664493947286870684247301321065411092129132554370264700062387032626050943407939995977134966611745854077174567599635979378500934969322890585890732645611865168757552597127068040321417260518055746488359962653766584386355242121730270554008904049264878181656539860207457074958061094482432474490465349241012854979466536915334134822999136431394706941762348328420859940084421320695128946189884334446729134235249374592494291182735675443615890323522050031016563757183081998048935355477362258973547861829661135547829259817456536354911149726362647470940240591710724934871328053613075363679875034687973146476816944746481394321968164199388837366528213175694521131818003323059613285406634915910749736181089366024349864919541864720302059184116552123704364584888442180276161871762402317583368304350761036422826169137851473798712442116725088358204764367793028785146555454351313801066748658740419896056555952263777029004199158252429142514598031059520628352508049757247493814447247178809592366757621463647268751873347057511252438090612122429248187146576123080906942086343176167099076766950039157232805296243109471890800327451007331919442055360491971473696257976157176363268753959455115151455013317336908675573483499327147967069235740314243609482197686827868242056672836233315641035306132521023866619351983493590519128312304559159847868429457139749259713944186656701089088312218179839146625835215483406094734098942138314650116585193858612178079935173290816120262937414052293053968946481810029093263816500472033043577470607355798636149559001487320639814745523472461605149874081754494102069454502824123865284532347132513488778333402312122409500118109532613592697657195998376963338989526286360660323630019472073540238052088658675570659265716960900502193916617700307973231401675637035723764750557351136961144179550486513504302644681648265149448762226699026927962861888726164582399943883257946859965971984848789162164002317573240139122110761432862885471232828839417914951722992270836809161740321547760609924449503777353100540619866680107466495254460419472168036951483637293636721134011615189474321116721202323973002545439514009628240219590279317684737296122599035042186294728948107657043615837496091734527732177006950928211464642591658726975557292028228590023259489848778726230858660529636832190459022290904713571690355719258500140526846482172200847284942842052366704384517619705656387724291595471260330299329306307974525565710778063965944491620265232688580333518537688597294026376438246671813960244130320685761127941728870768548212135300119844912822410164209167334739076039917251970578013675332890127615642061661649347432335755543489644432978640675912347617424604869505594358952211714694507937048626564893634705741775207602970987526296481578426088068285448721087140319747684617799580203996536344889604088455409082533026920396699080631197244982174331819599458192216632146441332971072556700652322210232255430961508662454634846978702077961711387509903586035315673227693658575497629985077739003604390592836108468684873223038495900784701117153829289403414082885442092442074074615318192823453324494906616754809538787523896467815164357893920765503384616313744758396208878016946928189300627317190543352302948856012065649227808295226364293850233117484892951952283360800432605829908711481025626969950531688677999436014505871588554098757393027501292909872173309892418396572127226042718172698313783571937501802779240734245819045093321699444383341035364794409526426258245166313815073035381822175664626471852198458576691000765577124564071950055707067932669876174096780710341771572883709061895612916383618614431431562280020371646177888076911763833140344045471925803180692670278375324485914387409479455969152291945933837947801245906406473058018776477420105421501132216561435736505130483946724995018053040411204721539007947497975155060833898230075547256591504082801060257567153344566415726789549833831432358994664153453722546784347398105143978580814041416619768155377694767641107402324536607039751444229915626199696452159222117781676061701221504177879440329635771014039891189128480198542811234261908943987137638806306488658217997184508490767649639512907176782889580981351249229639604623780691900465901166064444852931583591942313405694522333636389625572722717620326616341440095975207908289840632555220777744178638491023861746556189721839342254099343389608277423993706850360042710408031764334184047822021444098744369898532382346882250744916716015354797137928049441579371477117090289921113385701966581489950512812912939486804828591645758255930960877815995266666764464732917512649861070419950377516677346955619341562232583025185718088199821327792564666461260856744717655359955519903938255106928014255777778018851647478564409054726882751229719462554583392778383698385070541373613614889935876907741091069314434312932610019893595735727663219478079274569568894239076414480450042737852171976845659668869096825191213773052225584568714180678284583319656085279447180900888984004498796037424490156598384475279031608952380790183633302986182510211097775300416944068465150000241884596688685416338892757278620626013586729886556267665930924617140569100740544790775600987523945527594961921322784265801616579354803803309354298417449626353866858292623131417576142904018260981462671280198705013635266484213279624630552752539296552824484593795829100741704544342486740805856376482174719381697356972803279342326858675150551503007585624551842023481290695929989260086207037279991370734813704916585093306872827236918839009243495672358358443177363754868935402919641032230117877592938192078634119499819786687792097838220034685586240089132112993049398349496475594482805299659783337531768034146136121506549011939783385018110097205820119177304545419153364982231862160135871180017065876413571563806583436021973049032964915443996465409104017034935568550101453724191737426169613159498822629559961290688582266889722108313242655485698684410708758233678957445763095869584894578357887965279818459427543016707550022751740786212504527950936962330951223483388611958594778575366637453684848319094936815594324046032094304949671362745184367014779846607159157203735881741923484280944858106745779624427290394701941063428401105694146850812484548736743813996470268329623640713877432097502094255003635610554272567768932774688335972622843296869394358739529383344791391718736948120349954182518841451780633840262649495975287908032215146761760006913836963206134151589959254294879977385905099744633809939535087358673472315562646456536747963830633894530602190632282155428909198640260378526692267339334690551684976947694425520155916662027483918688501381640005574342122823374944414055566283614116305104263224683278985624936264544372889106238380642752688677086174697787098682514015472671577046271148850462631603427382073783569437827173013491898862701695071227857941963104173726835934665561093860606519837898337153385462979685121912566967415189136941237636790805345492566715188391303794387910001851313714821806342818334561319177139237322366393174887939559811777123993658255051493161156552115278542587627179776548666068306043240060362968845750639146245763802495613789564777429200897370071900172570171404277084632349140906868479775687390825177323578611657139566526322619627359439992600307868262051922319668646025507375735874457653039642272403287083204473304556403337506814291120759820703509049064861508643561678180381716525417317812788811937705515303042032755071328864108045620445173235604603940206231132644505847537642212839728768463586543825298255364227668772178898091108764352046640456866666258384678707077926836192754170606894378314098088194263262942884044082934369665544044211424939518575299874016197205874250181131273826002736865093388409256345189446511618978297089754069471691466808690588318644463807337086585276661029058174697103204518409514390261463785443383586450339692263553709301308604440252678658468685578797461215717377929614302953313803556852190315154852667206911584756999259268733929830015517312186455656714392458296428648511342348681316077521571657035338471969001825351379057348619648526398656501557697731591541001213115604927483810822681868476540177440439234251150106400755741534622031218813705786146453060845789570368994896238123614610497321687443103591872815624116000901015294893582748082279671973983696604055668286451816278896405792529002982892033550754873794948589535223463572088929791253694917844629886195865635560620764249199136106147542656734922074712013352910282797130788990275001825386633492538986805747186833315777340031626578144657998926588248453264275719898406362751981630750622919326907358412537273751278229740650000569579626991953912224730143965852495205780726691581246520883376985830759690091252781366351117544189166304112776738123201438055739571529471099990136010858411888051756206658622520814657984821136760234471913850727622895401844516207382425896324422026239776018788397044438391577000957074552417203494868251150509273029399120507508186201986517108233170176842211557856553664067901039204426530190942941930750992829755766702141779039298413594145370445940700104061521281976075779888778283313993529122962082793657920094533300723588367272054079638462140504773193570755720218631656374743956285464041448379864734593990446319690843389728009584062504669908766753522301397229229792013428938980441578521779736009030027736192693139808758909068726263492573773754713329779072238126355486644589973490757476237113340212274998272730295896932517250352855128499609904326752980851956405387837808076253080406118080491201039483677974079555336859479787503607387747405957966501986512806180431083856643592484986240724023882364161002841353208050900463803161313245676419117783278187052441696446167422688314444900864972451862655424850698149330795997785441505413449812003866419031271186441721336890215226139549697047841644192697704135462517476530140024146588947963016982387279256659177250645237289896004156142069261974633169202411605374037569236217101942436449224905088533304217209242783464238325813019734385792673444683546899686315073362825773402262388879744519665814094175543555341005010661068425899836282121151067996474677990591058843180605354094211344191815258336887397186316596457453666847292962048014094062321475680770205550842021615787699648825331249648898990819853495127497148692396835795282913293566868784264899462824949231972734034183200186544053707563470073044930143976370523491888724024955146862768635688549566285803056743898599650391201602752460004135449412431581308540547094508865522272939511286519935694431914002135455168880289872587421013398559874802945154093229478476644681992536952349551602144413562028217231643433044864063901918914152863673552381305988903494490690809075563408282383425125980386446580729483660195034034979283138538442547870399965688611728309304073975668845829776741360111008582565597854578650231059425415532549184143904280246587394383895506457587803227523631484024132865209860782076330368995203045699895176521795239652660538314101748269058308806996056855128523136671298801445185561131159196786159621510789512270974273567397277233849284423443334441486003050914709419944627035464840091744876240324263415906533101163524314530721256613653864851880441908560893502329205587419573576103615378205362938839679985677333708635608002567178281500479944440149087225543276472179205299188661138246022484382520013035718513328484382997943875985587798507527556315963024774811782720621996905717258204275514118655892615144333797880085270399494485070844639234035670966636023589010679163452881217775752181337296497689845592220380334040554997058625201542377049161755774981363560756919459077985170000055701674381626048867252402935644730293018132048592228219678391663483262047895162280642909143244135498604664883502769248702021906804592851174785664534501036176500170703472313183363363544736860803369274244169281794042902220504839621306626155261989154330883546227617100372948789757910251113085026809091942193384961653019247514710866110437256429968999292693584684008276971212272841377008064362643008128236120335239652768335380231654061435925917392774344981252811673036307128365224063040030539633657705341007540577607895108466612620677265280020952087233650736220605549488982796499364391727046868555004820385171329014141190084491250150915745148748214624730587484172568759526928964008510345269250803995339900682616685258966867404834609969192267489140845737535450408988802275726275900345503991863011490215274122159011147216372919218461496212764578789618102476102024389729889263736712513867572408353070253613604651933786367183295247455815877726142629547218123168011490008486068749204765406283065820246538613520389946128082492636587322717137362894779656925603838672328224551894873050218647186633529819870393394054052346618428251795844902497219410661181190098258934313710584149679900849236184617377613689198010168020958424442147929924152305287772800893256889719699809282000564126458205784501949543460976072934511851837007316576840026415848646633698961575364161461984993974286418817200028902637061020378072165393040842609284552253195521326911349094868801786311939415650532414704008443464766065352466531079575279128332609229448359432816384311724615260856567868918924544544410232045007010352310646363377144457715207588630200857395615631476236019518860373111225519270316181019289360770666046335626631021759768784567324362189352046469806262306148858289186912268556980018060137700172391666015115724357293488051758564139000516745310218878442221391854513484719735751686064566216365673568303891691169092492169348663063530605347254860685461472715944824771729617423080585651553001932694283290159908599191548721750743528356984092096987586608319726653912913310763258188387746135882489989485576556826709821882309307689832520587119838894806207364003636679419328036405813786521805205642862866488318910618373437457995459650236090026820340630411897230722234458326024774490139948115686431995962616110110841898020850196085474948702691211899789362433507679277026800673516958825516229399611144610656662167559067895929415855442130559416526400977022027035734893953123959137029836492371636177263066756996950758840740859935480736496302630647008533232049722885455287106664340722902589461087724383553755677287050446351990627527185016337286469003774455137506048147492666663941479462418931879990605096677519674573240684936707319439215118520405283127525956693433410731310234240915755679094147953040865061907838797059847917969287585724775541020776807317415071824545889673093601622940757634922897441242545979760081905616584259115063238002675440778016527000099632925314353787423115783723054260359747504629199245605789535796979577219340911615204061516492483021325930794832367707278037034300358920202240524147541001476731051655443033561781433235622667230508438572361201521973450469224934307364129396506500955329763655907895196038238611070913503127262710322370270271013534632530276795363005707126174399721589518719350086917954020408648132710947576257851894190865657509485651419881685956188398821363030985697592946784102758706209149066466720513103342542367824903173484601564257233814326428462445928296533324457647583237529365807738995465043784292102605348835553203747648698193918047010601929109199677730182710460813062638749608512829564908256270860542326263539345031216471762957215381045674219977793522312686606639960658229490034782703954180542222419536938747990710823628260595602543407773939539939018774798819423571105494274074997707846500949448578653502397606420871211745421874982395501371725996348048619509150450230608346073399871646445878430630479537198157024925940815004717879657525237615872555011210949083648719053666011523935105795726007375886321622024142356009874676547502559503771289585377013752348922052214171167241319456107037823316583497545396425081994302999937024165424256832489792654461365702958019361640334904789045512259598392004498997308275794479967738000884140512569203836053686168029288004909339136509986762853119803076972462287315366619872520949852386555321751187480393482774468290716192813008612796495697481528957460702313608895587100555515571327964419213605970899844856847470920381731581626919126482760522239779422362574738164476983503001681894015385199211779328403820041386530400765180085256295878184498852469701037635867816030685171802743384698653726213624970167370796041853539384784930982615168382444942026630673042829201933273752884234447878026954334448785593240109687532405355829255947762929553435177073105866888306534202716347677982797385277429639095730066841277459029715183598638376366085781304185520058861368209081211193323599437990904198499506822585376623632188693729912220806230752442989929820770794405613197457148337506667361602427173867612488399092820341619395587345431702285785546285042187054384704812006602041247633522268929068008011572423892882027489410506867559869402254118865701719009419686786574003651080801362285858839875966389464688160742440566366060777005787210713902037137105906870806178266660241637618273160890736405660072068029980916452004366301916270006663054573154408827950573485850891672518849372562610854903810419708343027957501397282767549624135831983199590983191352897993258130000112459696877701687006805492216385426197174188618246350159890849143870688026258767335262442563888198594098730063480086402931151688689869532809732188254648099208275879560111185764613019382143311947718041375797930594799081282851256736994583604637570675930199222157237609089316211861192196331373109244844517211180195389464646297481614806524763744859098387429469640463169116588535775475198011749086773708377002357326080854922481470928822794676658933523231866904708625784887049662771204882215705023320136422387952867274829931068720634301865595818862442036065490699100835429360684196433244377990978245237111217280754814202641399106538231438513723039975661220646805155693623195676727827808128798922357765171448355907623823227254132024143529836041338259919390808910608915750380674542006378130378290374123258845860827040843680369199883313377698285712200576554388580064489112277031672037522037211239765685995395262261538007366216124167503032111117798170284481981643766773329697750074564869848893785494185782430324250441303652331262581192152898175303403034709152457088920155182961319261646453105459535592359840802269627376167920279278046375919317958768971655418968308427367956614016378483913744963142685024236883521509649941360243336310921241743063961670381734194362276684941659380555842805784502771458850605499130104714755861351294914037691902833051633187562076460992442557082988473869135563312893489600949564135169851741342928557231920831090477258349678201670587219953579321469219706041707255111997856957042230996414161158143798606584829135758979222960872828225126546546536817708278773300672806929058135943905184052921004881506903455739018670747090743348812682896385219197117690567590172715292872251556996683269073578748814013282683684500434317455973010106522417490689629133473130720888702067106086659643765152982601209412084836356056620826229468397001716670360771030897951545659848635299992002481480646813984285536397682928706948588099647180449233704806134476962197557376264269640712479887682701110385650358883866846840426361429998897396519629221932683328162777884538299682797590856601191836808467078090965174772257765708450397175188465212936766019090725331825797867937811200070346955190669736927785999194783024151827988166876415952302168127038054214749174379357234711852724853944489100790566478766375063085379003318095944600135961173396143971175564800436104347834539810940468198378439107469770109355330515862818383136524883635208773064503694389688446011356095330006851075005335956297350882180307955839846605996776967641734189367970439393397179294734662465046651340169675541377370877101973378554729533794400219479138632873782497145075491089934760975250331109253901837273749419144166252074324097459823620913888345794149331619696026620896866854749926884402342326265968147880599441223458148192466929036385101575414551088896887827083218921075953453859709996252910178291545593485864021082452358913843562546646357190049524553607321314102938660058912806710534545153496327869130815450584785718433784928649822581103385764332778655171594418760548097801328935843781990840243846163261589364281684342799749870101235597833318256145101885468075085294118961873744380907365263644285509833572310700066200849135620572052056552595152793267887526225970536777991266189594231886614945632535534353758545478580566036359384155576984451028864133304685731309532653957615198767011075161270631080611850007656403126399221755842468628571861746959980192385461211397074003999234538487459658924267429532712353861551551467393576255078065856963353023049153234059356410913195317209111701765376892732258193398726549570877110289822607436684453789507001607192004442597304849821564244075909497248478216986917916316189370502280228966572131605572617843207345115168946898773386376189398749097011982035214965209301964013108369836899114891400523901728348281953820532472833797788051312228569353783254041284793202507794562353629134652925831520545696195694107679841707008468626634000839482291783522806553733573053914573857751586898481189542528642086405349682136354035373623548592437249451737106346763177562913834116446249210603712158790570828281414230797043998609454778744385894372836282046168052229031320977381480713108607392443645687488361388793240989348795874071398964296751848542502589100594766005042220777228189020085017804378616061201841749489927944372691431016074073604840761869043723772205217427506903832619464012990872302454065731484306362969355083871116124829414877070623724466693153838965978469897327846914035427990731892534629668653090664314910968292963108183696032347554709567471480246000282766621632876859071158807707434858930246320197068671703076938142391848846572111715699993311677135869749632671779625718271685872397939579166319321140507677381781212538338120643706128083428623136523551656909525770951613871123038608145877338354122903768159775354776010797203588921963512918484847496652078190127446789110319622880802494318117792979941264360878953038212084948859418682591486978752387241771852933400757370461051008909453193653458524143254185191107030052561274638612235316686581809901429766759335823755693524212367075859569371762393881836710670415499984909577293450246304155127090039722826282004077163266721001500040327430683246468803276575189074072309280815297954255605689458296711923491778844617921388495489898287766212303699912943034341117568699561042353526468342754893833731404462622761561203644790297303489829028064081434502764704366945781161245517217785617449646833963363948531200159297155780759947388150877659657597647768676060033438482983620860601755394687659420903791101636948087423348735926512169492798241526984226885722430777928098195624619369742723585247260398543750778629167281025353867525711814659866988411274406448941902829355146112072752630647541470827582865934412330907558788877723422243166029381621659636335453703028236633036795829010247244569622951305687763264352080228068016344141652482288245148121761315239336294632928325507282955746062315726121544576547802148178488541837092427444021160458047997415697412933822809240191889583218592214783535691514298698840970165978172627262366223802119065133809714775341348098559624962069779487669367006371991550512106290697817191988601042623232333716869634934056627657386348335636551534022195039642818522786731089379285781360910711700541386224446151654297691267052990461117173964989251123957670413262221676124539803206144489443301303093419138286719607139084452630777399187817263492843236683679421382439936854195306855954108917114951394883280323540000677281572984302713166702862373748029614346006585902307081497753747501861860719670730493482228845163432626460668198384293978407512242425975317127132380559418425680533848678828943913032271089234122448175184071481364877888478815286414337419840465031653959454284306601807434286584289054994956774087339462461332706908411884194513795685294797248585447503529552328820048850418675078936232515488580608193116903690456822808519109642107973766270170393322523381589563872502628920555387472619673915313034599086146493402363996806466350373916454172734967413833365168395480541404873912459012519547628962244015379678645497973457418325655611803073092018901741248150556330779761333338381361926989140740065941046197236203119199732018798455116278506815204278692696863784642952178153661890957130710817419650011081922182317210926656127580714211846546451640972368244886872582264982484299717461859191575537297344215620893735718389937369996037268624814978151032630951706266702362488535739913313857510219961879112047863592022125552416885002044266929558686917970407045660917746744063750263716218826459961716402379693463707673019340351422619647289012816683841578653869092542894613957666698805616605849945419300516749001866747911648043352073442393179426933586253727527428800020860686924279481680563919444671334244123015338121870629233705733794777783248667926848653682953786224274467305979865431061702106210026567123025617882781281428559925265736865573175855255649054339863836551566777944701505891966725742512082974198008363759466886777094292704329035219215056677429443378687650840123395641022313699620304060795672556253267040080914802767278769265502011488577231689754188459403746032739406925739142804632946330288094044018014917601659149814951583981102468806897842407230160359492744458881769542655112798494127977924617705302305769769811513879049580935267203232125417129121900084626814069643897154354211610185890223055247966312571728147176395938741421596908800978843539191900520249173581411537316112512167828974834245574968105772673589941393283570140557056053201099341809456021448032797348116282753874484654583509709260244234814752418960486485112918500520342195149404921335575659967633254825176870743462659028234646331037373426636645271539950949535096208014406216092255285014973421500805513385325924692237731855677333015166149435359539233969028292239588453664971503531378534790715727665614335286350049254762896076530233020992221170599251727604986858921159976066094189231554720338362336730104322577611672435912553215862331372580514634280074963263075742405378974374987922799429465387343611152859868500487122330880129265718674709973370841898384234035483602064153146129941160027570725776542661000301767355245229699245886053644068315932939367669231096680369219269358311225861788891356756931700368248643470650384654032097691188357524427047506808618954386755969035410085695216658798310835679617327569583067381925037536482121352967241514173091936683239294016038192245675830836729910471582466412289310332903132842679863064681148646114359040405305971207547199035359745600872104176794845457235986858129199388400100705150275435876001449827507977278812516726492891936631149858839328760968996804846439628283125256745167861636132030743755189397952890030203119317063976932191846373124732434515324012366622410229926588546297224712386137353543545565942095746175158777383896366875281020180327636291934187318037123278598176611808595153813700524200554750247015789012994845871145619787091472457918687555298728555725725347543889672804170679883041873473063028229684264688684864583253395035902998457947740600444871874988456662850538416309058682732505634914515058132326125016650682686024911955501985252418468066116876105355261004260244891374057407820956943290532496623622062224494860513105774148477107845832201343143772853830254721286812648093239834444229106493175709765812406318759049863740333399401464700532687432128773935004121357130586759077201961525477768740833015243543963519089471413020097432129915731938548429809526886870201180248750884097952810006941268601715548609464623958326118588115763776756807494065441756025648839981504132011276040525124782482432455872748719922491773167635738183547872213465623697372662556045862028926283016006165112153848103789393281874521253327591424453455921931064422451837014965983117261363558809779138640981376746594773606417362795617930574656626950914413174906681289273962974841653529338978155107512293673525160547388362878137966817023419005259587349873250370255416594385577580021307660377274491406600241594368444922294664544275805099808116326098446004881672307019742740793893773700148289983693995216086550607882075858919546826600043325806811891853778281212912345572860174452522011838952236773677637803794655952700967558068439705175091449667550161680357123864824012629615478411285391558073612840357114900340963655015374763688244240302101601529567744681066308309750898025800888960226219008003179598897072170458485468125092631573868842607241406884633486139631404541344956427808073124646322623584003079010813255773551652428565741151966618482855155206499450140712837609395036145370800824037639977378992764377753299258609345911676381669065440708915764298589285591391563364374476173641816287347657864525738646047833917012823583247249921867312819801579451533858857188508051486688207255989148093561418982834439359887218108407028952053445366641695069840442933144729112085646126648371643967292043161485647614883027988175615770091882041494826732798904537378431965471309458586103287364831975997040959327827471241183367092699484114629508487099928378258562353530724613338221776626631670045632718203317813632679604133318097314850880528510205686400025049222142616494723343254886660211011438902811490497678948590951795559370989202433302538535733667753286844090954813397856557122677312856811726498792542936564709498084394361296937104707847553744637825894138916873187781845406419195254732769019735303079650098905611703438487112490337310178690499932695106255672682283535742676072619674918655482325302371280876912512247758478844440465053845309897920201840249052394491057692688359467921943465254004299388037094312230580396480878407770295073733937313813168105804872752368582541341509314254597731668662862181710050257697329694633698435715241300550604735842559268118404128489784211828404945954580103381184769783640862066343637294735714612564221551338947544418887728230334732879263019174238034476778462588632774522687837317710220211770550732626197691729846683516185464646965556434806073198650635790912505701961917419962596491339856946324824164253313249277636236566740803273180171531067838268773181561394815704362039441450730737092644461941563080847140680873380221935699939313909021214675211832314404034010339743843481200847018375354340342124897293863156138796148975970610674315778240707066998631594035495249688103457006051727871592840050706549023545778005993504296742510752420887391114086263364335570848092400761967575276530160582507678336523892133335830191125016322895541488497640150768927789111007704267677475987109500930194100841336690095843900644962676836922320382557907283239249011754049437721493243233823386085075744781918146573838000885755764043294904930014006027949573341758171751101071710663766793722849653019920388284712464989233572672712739787914738443638774967894774683578616553635350204270437246671277338073271788755259259637089503874336492326864582373605058044708568531928450892040275713790317378659993445938630782629142355595627091530201239474223106471330133686684414036943193503150575639420596356799704293637544655323948414404199516935853811158011929539617860752736150914703508506780619154371337634208160838036388786944695053759755747354889046046284994878948173706039709206615254174447690258624076391999004553230787608604398543013716949391471135600576603346814519143476454454341284742349175373265891656647359663642487409909406550341989955740745767456446094892784301296976665776553420053722351789542495382745543559448691765279045085931904332719370042972855724309161533680407024887686069491235038084793760962343429913844211117244001568265445912537594499987336009867003317310608194716911018710275339802841904172923524646881275868984333498323025088448958424394736271932810628230687836576418781319439143726900843186927842681804326833802088136309635165491748839408896988947656206331118667424577204645856750634882514941200476277777330095769432694498893511476837985107552971422917556353886459477792532631956411679167230504072352162891287212745470107966844842089970522748460725327883276385953108267022046442820142570514741109895321688762025933214237805707065253809375755339110898487173000887902728808303581918657801109230465440358560902494517441171055524260551044385093815920603154275888938168471916740473617422827768919028268995462537906771202095022924886318312510686095943308032996817303181514044821939354380674147576614980330094421384488753027627604353137418754071755288023044413054421809259458367577099162332997129762574955752999994998884654099551734256537545103199294119501678099215046904765231518571324525207223751670060060547472713039412182320551838925635666061186064795421057495150329242508185765131912855249257415305314918502229143403751070255985111636285368300350355015352902181898408303476792532781392003295015285152218678420574655926516338774368835948211559597078844665666444074535321774419302737323130640629220074830230744033107322600873997059121719481417308914325123322833539667133556434687789354433797441384630608175349134850753018116012798070149974507887227691723425214480014193458118147572533175483274086969938191022847202257811745959445469776517204808648951038104134625851487571202578042563548387817726637862746885718257218996921399029452784748373384930534020120036377094601278526124424538136071674854292138720706909408558809689494623271111279397106793614904971453677118878695195865592689755958426618536409354540673265812302771780763666886464374096118637570040590314880978244281831428405908856389875002960767553881878022959725870989002640448680858842837092089561453587287067090656557036450755225741814536450003901502001513578232146055644914302887684042333267261351428760641294219286723320488698755095332868090979227076967836595996111569426782609823788383703331794284435270889826792392766139507506354181943522355628784350472542823360236880081286572379857836034524495789061160290270160905265741122606446667922176767463754224842092592571737463874169735669002553428926824309573967385693676568785293807684692794291867024850739696801048770735549979293920918355701167349951216031968821984098747857241853018951085489654978398455698494352842199130664931063433680881130420701470322941897904321065615139377536149010035658383454203214037428648939084717197131178174813798486779066603936112880655146595631971943875874573936401814385962780622053989074394982621953890106505681252606946622518405892344233914620042235681808838472424776892676977646108646833130367508924407013585144229488732496913907129915438837844645101702958053639154396998960749775378404325250254018285560556996750389209304957007009128529830006041742593676122645931759488832558860571246651490582116490764339811347520600975916115434381976523384564777584369508823731088373137360579105261638754156798271678565758895283676922935543532602866027247655014586135295737536273019131489629135421523027603417354076810748194930274534644484915048791746441779998611999023135871116949460962545204871831349700504388698746871130177027070310207416530556740893360634058175620965430623009973000787521536796509139839689554118943692906185994389579111461696958764239589581944449399842316366952812040640396859323108289909245000618748609345901593504373948135713922517871870800348532900253841157987460876030909865193897140323112757272813165785926794257745818784222486732585223356301431521727353721537054725373863928920090454510734591122736646639682781571189726100166475887674244062805739556265068910915293693347248180696270276201475180879953659974745827480941025005371747523205262494000785855963457832096923359499129844801563652942767855423696850863627704083062021373352548852742499199470909782559652923237445845381868648571463018011379366673031727235904639224140940757131943224622936381086709608663518623656333165236311452436730123408917384449237882970645862323035359482589676975212692701779520159560484499149283826760140482142353381494615536929318638213973718445542014969095566499778494829864095304293987611376138317400511310407209286760576876017032901794364990658384452550334789702701467502426339179983229394761416131288805786624890618067778517825435171413140965637460512537355929203367809865314323018440466859408300680000477864019214020728553160092898445725808754384790688285468271162339488276665256490496151394649445894406144254706674930742140941660471731882928399527084749480625267469693713727697693242329136774189965921772097544269480703254653799590546084090034255760046198872392753220967941001345474222593103733115146530156457708998833350200815127894355941013457691001009331173986627095472926202696299786649086285373134430595406010845540307199760570312257950829631754960112882663648147807157399041434795981666924869518918357700634817133680981569600885315473751511998814004961068162905707152637055913073766292669833895925301817327535038882334477178231628610790619979503515847743484209522882482352308366984203418977992193208950173433258096137798604998463718572686418114783098817658965667324241874505848783566951815649688997181393201493811687731000075437252141956884094745214163729420335946130050862526326206296147314865696066445203652220601166234194094310836722949508175426829789397563393849264710260932816652056128531740166085888023388899089470681888633741593904085620752178050826930275496674130371107615247826779650824959811199014641999449427778357324692376477269788640788678738948121829530692634594698992196291082064647236318935028654996209198495294132226414349371851406452125847024266308709291331805124222225740162510840012997754066442180338497181548710446061056153448641597844126298585458742536337494904087576584005015028112043639205144682891887285302738908589663302532313806213027918765824440949057236151956721649535493672085060218028810774827289827442445523638034755168304989308420695166620755361119386664700304385655277267396485268330742696331954269969007291141693475044435005510747831468296751828146603174469374865136305348209556439646748207318254249097992721330051945045679429865365283942736483848086903212176107465175074868772629560569395118051657158382026993957358740604141252903967127353132954935128720531959107702405720896504008999358764603788803804226135383571732520452335328954958889406250863302583410222201500937321127554607742774875173864322236951459052173016516247428340319850662470888380121056535736894014193614344853941316762868948410157004725173815170909102391353821999395367171377753068817311064883034724932122554917327102602562398050874663983388367757776745644917178580795199491403957023215048755893346870539557423182944816132039547405062776149880456650943537811632354651148640341185063959337240373644982473124404648407866196107972437350709415187151440434101747865788609197182229355904730125262419984424094147538428918808722609439882339707766568613171319297069357693877521116844221524318812739875303517480696106862604353031156795273302688400651176768433849386910305076446469069290754279084817538693396384768385934788460795934044849313396447622712232941281789125542967200742644019704381036208152603612191013894962960931855208916771552663267664550743443955148197168571121744021832551840899029794211597172891880879218805125693334939564747718635446837073204828014413595773171454591369008051709714731442146321181948077585742382609141228584534480442759409427067932352074112097282697395647197932809765021684797241091846204543990389538044877710983861194294558606722770441611289459620642575363404420014488349609691982608536128883826992127279109231495343033447125994225946803040369306936887444309864917332108158482174689263068500314730767578230525356798290993908481415745018986806889512403145725848376017552937908686971387890000120131071667793371289379650094258954514424877622497764877528924731155222415729631845413009186388102619638027085854435643554257652492955383538054105941558714457249296856199101815669939520790352427606663133530865199667530880214430925413133900765957731859847513356185255356207846698857884632675530729833743283803851767838124378329719896847134708174993492376560751964989142544036015105960873786422945702038075678940857516675807265091509900467158417368260473384110447627139841393692306437639971362328167527965321983715633413700425029836686044437623765707621569184387092261052332879327622341561466676704379404234858681120373138215589928226394113715039713712251260312905126561371625879547973631362307297324936462385022179685350414656108048077496114852269602959685679442994601349612734852182546734728986672409821788454803895447172128140715073938490723029966285826214851928045712862149430058907147415693542017358543065398171332462264992187945966467625872398737420308608330767903834520854434307402021912200019796572954168115404440199491463520589417463451973221632857833003177375483362034829698684359562648653669584886608689494116073194548891341430051794522125278578716716490581774741675065746933205413306452433341761654484518369839943377855733257771248314279171720021048376207545671649449187947395186303966191131833002191876746494409682781372450804614719670995274782502789298144161260898908830442068381858802252554832340843687165583588370346818123917696528754600569311611962053119479399129339477391666475365498202769582861941787752518023070552890055541676161305329076915087527270605647487307123275258792903305133337066723201025991398315842987194805989249697858273363880997724357883396547905527293669736040431671167469251313862906746533781369205134539379127664343894918404761510183414057622822056185270204611843013514877255859421472350994027184006669912039952621358885343791725988543473999733920499301507074861867957950554904455797617726456303623118355686355442225709857363099503291831684837948758198516709099886906855484831974143178056693332491446086284787670747332560728924227506158228121328484205826068997918146818733585647039789911129088714109965816483475072698079270834312118469259397091611173023681026260239876783217911213838211749480897574374105618419336697951352233014513945123215596939201021211311501041645877307563008310117957230212785071954109785562960976841666883627169447000540105004618928887445371545418429803799265240819823905959379155128555136158504429116080287419153505292050400685362806021082094304397877804818316146310816539344993718969072665337742994731762499619643843842911512873856553694931482025593416521671048930297253135503528297404569205815815236541287726419039604093416773181441587896153848962118582450258217821083766597047012402929358659229759562865381451610266953220049867796398710039199138309382276956591241131637095844808306799722006101799525605631850709297789172168632597448784375550648066857846782482281999704166091190625148939109567268003283903437264780934602212146912562623129422410291120584003877485276572233471910060660892867713177252240029530084598683527821420282374157526330483941283939093425404586971652281302265389070653294785275485852118113383728393970346460549873060057448930700741602536165722392129294293656696055016137512665801529319674994987246516208465630993146411915580545394552671736674414682776343048769918050498245549694948340442119005027648214391836564135300233991040100035474179645477034790773384436262344116916599456030396615151408834872545392432201263044817885848278118444186795018364573974013959362650230265122564028780637327445344657194567069445841699065301036366759476979859937904373611426337367757891610390346179338515544781879230675326778393461483903434782241885848416703008213472219121126585906466666300852702526667995020798547446108817219041606470455885135350868621799495104738795122054707237493335725399217694337112645762539467765193237887017295558044427060359514010634640618484480041322093375199070850834058343350223862101393181014560877269280922089687361078746126067099255845505592907169452578608165678947826120454147185439953783161145885912066629560249945194800776803591984315463703418178244796140410227241528861886176749803007207499532845652979911290117489442484037635846801551866961018298887382967358314144468552205990554133824389901982058713681972582017159932846773385986328705338967112409658595036441419811085098802469390634810637089409698389678117415966232858455099364989026240761989545887074698593492338291973826831294990943491083940861547853344544375969427146179927357779734286973196468781882065517382982756067200323114813042991855017729297806191589290765120647680821152980710519478971555370306126230309955590711711593094600623665269621788719776435533818654310405332350540130926004907660227483612940230979730146348308569795353078773250813726061242580287964211775328435590624511619464419867223863871560996582584542212035456977868935782989185209685735767509441573794250141825130969763160047743865797495138412342638569582157423507250005658638528449178805558446264813414589441759460000665722248419449122349637934702535017565749868639494541268596959070718522336124203785339557718418259203556501829402336337872193034342489543975725208662248569340462939632298461959624087686793007116744909223695423583848172106613886634337024774896152633744846006292421837164330356396842670079804298463499464970189852598834051699194256626306039821715049188238315528819467707130192048266926891961158007591849753768632645123090008289530240566151704937873392241482883851577700521811708407990630115916667751223963073887404139646189064734993862699503768565675219892643463356167860360300335261038160157914642935842250642111821181347091347983629585210074915659635666302735228089265160535634998522197912493645239522957535931986535301335621559056946278486949304598317917511119578315308034311006464438004874244011126290131886098665236028255474207980937467579210180881821049924562374013872262748908047192751232742744708817121551561948628727973355374484187702038912594985152757871464200133453287056862559995836300846504908533015433378738953905583545863029176969668556066723045063094028732530670603969225865575429281539496404677814261362341338924217564134241090213466908753482753890506549209807376147718040493991002009888190773991182121240388247199315080579970447714073263968705034394911808345559371200050399689818979832139482395741902267655858208925753322421093547076102219641009812611714177880655567169876974641968104922741948892102455607481200588783853477459795081247155988204452373609474082432582166282413395991630045934905838811072301132105426695908326298128102562525476574783536704786836069695548001922644200170318025666424328209019427941635983446640290824628062138538654371593585715332991696607263097332974417754894738855138824411519912554669773785582525204267880424968996828163728678686407164163989013352969307353938400632072878793787142119833048435003794282474619696043485406920402081150352400277560682075917065324912085593927505107877297952777876528219211691105629631156836403392152900573719901277216322056422435998366116275343650643063628592920838166108322743307773628928520919930664699686315020701467952177615122069076789853864319136680661114055242757625238465353750571267483261427669554170186612671767059650624952969067726271464375196625710542002230423124696713310062489796553351703409069237712934005289370953245036390711437622278277358521316757977514342112377347779637660817563077076246123534212806167467159619908044259366377341022711837966680377112126814230765216109771285870965921548398909147896954876107843208446516523876401142745501645307912582819836791923163091646195274876935846811224093586733344836950273885345425738131945374645309607941715480123550816000029765836788018494935661271442880245480372366945417741973677680159702468027642337356813661483915620316197567730976134392503523214542204659493816730905138422525407338528001653229857152352352950550087675437903965815738792776392555292012169870068686637938703781959282241181806669794734445024589618273465934696163215473337026984038945376971715839238933060258608266059177575965680025855736774450324028335141610157910455350621269707042310695065118513747815122287275465848850608209507129412359785662881476762282207869628399369630547039988425591258104245766971806296152286306146262409925412963403715520068983843213581455289089122651779784952529695084410649442584303510139136667293858556087823704276181781146189068049626986971092545241536441197203000806593310492718078443322384065297279873596865408839954035101741968532908121600403158931157499082884837378287370734533529422982713825373986205098311438104195958368288528355676200750004413954875003421343782334069465511401235808439613624330595778635721215359830999963079037567408619256548284238776192882560840881335957047398104758037274197721204694992082669387634054720356057539724947959662861376314596599056669987453236366734037379703118533079501106851672431456917734290732417023657193526392170940458372111015589056599192538169688134993691785274150815871612450517899763760674333692134644840648443777568816669929620596893213678726974825032211571878438745361210168598364422256235661110109741995461084047201326565718968376979861400540831928308916665027594476114910116945823159015397678531573594839676541969682081550697404812099828089642633538145380358188716327122372687818879388073645804839367075254558356548331617440106113916473809016699424311039211694206491577816658564282479493099405728880029650447765717671468616813959543367064684800036552558940443623381488988219805865931445529876982106827612944963023846933095006776563778388866412757878886727346220790726773569722311784788685598981222634878153328959180224010829947697063558137560701651773872082646227177620761245288647846784460149159610789149022475055615925793116542332758797526335697090550096617257887800704198846129316119858427783008294619403535543307319070244728067087300930374593120430983639920875699999093038902444192928089151178033043077423908289207183739677999405572006519048776730916755806646282237214943018401930857020731165628669791920582383945075725077551421494970498745752431800436546900429607716676890702831598588833381985878446346114820118299250220383209435359028085566431803304879552167665641838842360539630354170417273833383747971718479175833643502815085096928566278248905858214512376255425138347503793672691694798496367292423747066207873519150289372788507263472090450060803633405384467391596310342244843538430610866442534029289782738612967979793314136975047844792079559413330397638345249303279196319209928858135367469496937617280139170332181024627069063246500466228465180134360329884698882082598785365731594300525660433963714359249972255124875685027387281942188696748084473283821273834732850848386539495671852702075618468144403298751089242008528003277102779753361629336534248180626312338409758583230164567701439584993787792253119824263033384794636417903546219136442106078992212316435000970916897370747570949476016514509402312454198948351392992714454826586672101974504279703215887119859582094351957134570042448051824989384641168893056781171455660714207070859628107769329933010217784243972879926918976135573713579112272053410347354245821717491018173216815058613511151003168929140648780869697940161967585408497112812882589869094057573969059036718122620536861716114106704615644957605050344204619574720204684598164251733791348978523270535507496310990647363343893502676355919084119025834600608829503056343214377497189894096460292307001501860684883039810236051441420044424542790234673922552520067114586340034368686403641427030153737549918504182926349411483090322353411926147085276653137044081980972693036945896297212821498208000349697562889313643049948757268269076285163970660429201804943752201947660665582265857759225160373520924961845003956897702752423132645828159919830846365368061174060095661942157159632306701209950819666586852201966812394198458142481374390113051510137478934453093801704750896418427033519836061200368906327133222373997094594825288518356685668878016539835871569575361528290973858089208904211988331259291963096012336513863017979478875352606810151190319653034036015642884355539299315313168461823130675199829082796187636744060252230652095960949217529635780410523716730948161640118563367282155506979043939802062105371148825977414688108226110750162237883733028818372434706908111328130220048615241901311172161006679139089273636585288261396649106719367894552967916868968380763759589840685305967529509394421872243006331185396171001479470374136944314261087101631194493707008509975948430778287938592637359705127716252816161580765770366417301578152604064723525581838967181626937399779370626034327547144737978655874220460497580130577063785389067598402458607848446599055087475189736523846562278260899746434534846114842566527026004832966694724261777178394091652739826814373375036177464521167029393250654779023599646688929038709407559184757966693585370375002491118636460895812544076602032045328873823869442862372250794477889092426046712993443859554611264724130888434304527614518606735140047649303497268926371357996893850696091160655488361916821167578801605976809503700724061604663479295088416096786419590588942898999958725448131392870021448615752472210549683861218033789703310713229590671363700019372907298683817698733475938058060890353762870119654196620284306111713486833799343165491501678424102778383119167759124309936064374478532455633963840268600319276503091288461494323670700028660939739585474588190519252466959971880648975511050444130926676965469901495903005926930880957983663613762818361462843666513102356630085667045458289561248537909169253685692674727710918949953943503933903398709232695015007484303743783484981595129306689570527177542604590939545518928083377261680290750251687260100275677879909869193236697834147530945330276995231302268003757625840692339685837883656899696447092034772870280248721916152394599032058734204704448135279654796894049255466273821041546316241735477632223785884635349053700097098062276559963266902038885835292849146240433595744663165200587057787377400474143324363354354135005240701989624342295412820524215024287998246008704363701348140793721475357194924904597906508137065678252305447688763875479900579163050990025307710263013255117756289568711219004415156669318342491764253365594485896137978143301874044347137223568723294014243191278095742595145968828290839523511390604121979131382271089405196375323414236429179050940820132821154519636100188009514982419026221333711798199588482658683149599211165502391806120067746548711185424101051088638674970956401251922398604746434919895035648309254695228633428145967439308512219587572157504860921990839591624994033936666980592414219394190954023349234189765216276184490858969109018743589242579448064992465522154557862569845048812107413038016488533389218472186397363564596057247302297692396069434957084398456590828238892221548953647208216060689127259092605760769431372781420473290287633992932514710763618927662374646288679220670595110409594957415430579897246126038789672398504433872430971726934627009727246701998849431019867923956295104478710932579749519306652195812049562753771004764940308873603854078730646602615765122773684509239067042967159703153383812440466918856058199209318000253871525456728181525094040218772649955993602588375898763911155988109793182494626533084764738783412994342332949891680766802491538924025588021026812007818881413111988217957630877260214573990140633709542210333226876783934650676452268306156816476585827214139861928881595863296598833029660128522238601051329582068124187673502183199043794546542736120149648146753375219505605468795723938711549427231909147140394117202354015738085912512048682624193517896491578015733918421512517942457109629436734553506309091870220583128019573048929709411821767714767687373889807994247747060002009917073796454197888894316394329422402790891001918530695761353371053101537046469825473876396886089153901489256682475380271796504542896746313125923484009980406623699839624015740474833041376119437121751941435726747842288914787818374807758294441317293133237879168847777083003976886181151798373048795585636667528897281542541285025712888736936651974126221148455892042109800611756784561838813395822117821737834336629747905037544494898145130097841906439376224199243169503530139264579798239514491814060861894219672520090547418781456600137037462486513755866421683149693090308343128358012703993131256668756696277256570624033295528993338566692756669076388475108553519218288062409443654129943496427934909151782567281617598294944616790508370686413716684536713741736547236575797239446078412993664503134102243135359059175807030035456498577950992031294008482113153715625464029399642502227120611515190676254556581907788066068956214272509591952237156794955055770882470567229861618592111859108575737513380986612708487972123886977865175150890356014191920865778243857019182158261591496818564168339993787272089230576969103762644634360424187664981110729482978122656146088572541381753976438861599615331836377698866526497500952900575986348578794473380098953480605162629149444997611632981248780136291746683449120988822366055954801536619347095835277688354588858908330675115674399719817777954436249152616681169231574921587949672038437452590281189652599192955040001890957324267394878104241030075913612663245740606807338426974427078618147221064093798988876478100163729519069790844696644927201452317372003818635220791610199930694394129640214361944691575774275812505786563005143395119387167875227073950692293920433125532855315402654698845786083341737107499347006471619024125477056844488006482164153577694429656447350832515390583131607883981475838547934671251208132317099736905318076814425865338368589123878455096638606036376676867587452462607362833787394244466414019135368227385003903386304250456883005138450936982365337008693453949007527673244312206555378917840988015087457188998975984478025355200274957317286326721550104523305702229786522824044782634029061484240371027923330536305963505800789805991562410036592918681161459707712498948876648618361704418174662594846868765113163626361907264522487307910623233092896968056544064919033758971928595676035581115390287637652111813870269597134620376552532079368407368626787513061014663299558579545243413476651429425577318546263163135800325153985250203318145475272118023002821714884349070235173493761287706663722273306179572756246905217918055343688577113461924429339392897318530402613195694114808079704054334225777969628008213496494541095330908764352810728913288032924204007034956413919896867856299258190169062621339957953701459715011130555944162149932917878451170061301404522112553041411615211114462776208699516199595755368314802709169448811999773166009819017873065084007211971460216861424104419763226080566052640806826470353906034502647572370112085668440327366127762891626814566891482583902464074876720557396254482055315023217387192944064357467802544475150558726410441268060143086869051902274572094158154978322628755246588231558644293528510712055862395954775081677768806409879641649873651682193713236319750951999692018251045755666278308011410882729741099790637426161645374420282306086839313028043832374264462722444805024895353333845023077166522128787613924850723512734148986467691342813230030826554529066305381354791338184581941094693335690539260595726187774702036856287935683869821610069263018917060987757229409549961663448171389271837917491103797843298661605695569641117385465778132512853552791000926835096309292204143328146160774085055248059330889263032118495762114509441737085881346878388286539346495456205686349258711918986584929014108070903486304259019643640121031805202892767195773349023237619500835626830056273930987064130822184883824165391177549876133509350983125241581259798406245708289869913976210010708359752185853046469015262519445426839389634614419228788721023913654764279122168211834801386228215179978057278674637458892023419188231361055511973475717094575564496186069255106016173333383735450433003513972702779751843351603207815914943050803781498419339381682781097248363732012464362361672800720232881865838274305038926089580101589532510679359509626195482336394491212278301876624208833962957843112264488301476392401688661165457099293502353416196071029260978665187596996752712703000365597419090768816884930976750997395261754189540616970911410751060739816751047241525855758431540497957552245161176571470283258015383923200652718601892361327513958213257079463241645189209354785994946592579874790025871555055201285094092018126510058134777045772938458318722973256094190212764686428486360052166543809153877465996395313788703384303623748748353041030946720776338133018626564012777209503134101238232772333607104226040403545289552515649637429242910704363745249620674697496250012444602281215184402763170711459323665904141476350023940571854667134702075055198491919470654729742776774514104540898363910231106118047810358513145276489475185973379180345837454201826559785181349443102412306342301942646775852615446897658107086952861881135310054505768832041193826819191092844766242074602322886414874922671828793590853704955126291391536247814286983595542399503362252807261899111456740512180181113036869163207393695791425255936769257643196834844322532163726285603262521518185883196453950342819784755527235744255228800790357788310824209183018505902320969124239834580575398800151222927239788431943395121743278638841021156842108663457606271849197161505105395804135864814820758178304913990987229122500111903471761243303383928317041203922652917283035063091612813319705742348242018238683970352962826115817765709371595568924125679635553495449390437414567238426716717071856938277581644271785909943196984094832575484610679087834609513612717966893198375403453263381350040541913396267180006159171688605505106017932018685548868219719607925570135248864030857635693690865962355532600010347438703643313813281844215674496336320572201415497452496538688013655128720771336230249537889899802903964537775794526696386003953346530183218322551647911304907994857304176980440376143634135078004968592182317792745422473669416216311302877890898819938504726794948449445436771401355315888364586356301089837586847405674036403809668894798290340434081976259273464371485432503733302302480241367427702818425431588252725556018418293796994370286132629483080489519438349473213580916378052878356145202972924075620747174784795709965222922466968316441730761785049334830237473447232002774971781411024412832569642596312877784718760806023292614752421423832985166759914373849163656361513833391387192174788765515142054338534843496135367872564413659127643295939845522826911818194513165158978013658093285675847462544050503394028844267356191581642382251794050456912224084321192258572089998935847269982188427477530911532366980961796202621671822891781433862336487497150259750351923399401718813595655110458911899365874189487587681501336573593185782526044755148191789990514204195033628514461193423526798341028668450299963385494937723721183776916358518759542059912738095683800064967903417165053211150158293099270827179033085101198892088739969388022725682515755261044219673804692789904527121474391961610361386247236529512708110259423378010156550335610955987992209079588910692484550625314178999448784253934563675868238890671737742589157687021464959975049550106958976806208743043339024539852031113382496168225977217013080986160513011626394247658314091219133619564222451097744592868838086800106904017553097107745344526117238484554620743478723811742044287034583440675132016469724898965850439162598027273821748173905087564858543162539430413540760280867706922733032648890195582947205419820161688485653536971815621863873985762351853762278363559332112524604163521178272048641050380356844206392902180137020044452287720981923151570806475197732869993968189260729665424081410388475873546687931784738875855003969827899539704409328821845310919812064156031401627944529313996627238354170114842262860814489494360700485004214333567115389279471304888655755511374826057410187943337750756387226650112015063144249808231321911349272092959106657952750535607083515386960919212114941566273154349517005219254574565862948751667606059787729524346527558799520191854992670605414060493418735287441115618368162713981017191945941759714164646077846256939772138098651323030190880152306232128496734959370508224356498790032736387026697825506068262482773538563930993237320748799927476834516114872816932191808555043638768625724161510872127343217596606811764846893328871470945962274433163246154398780836546513830599561850931097978228606551878199401409315437887866158385357857316028247316042990263053143755386780220815286850128336987968021545150916582772067012032423867225790279948019546657528686184950668744876117797396482033431258838182916038124016472420441572215406219137662992346133610639479655152747185542785187493845249575155065878095719509836537118005208755048208324397018243779554711372380578106646602228477880848949241914619025954597378934913625124395402923829222533937994573153040364562431755781951691169053959257050438011415754792622135634473213700445426636548447196570885694596970134660835081220611451733048359358765185693035454924725884497509548361490541987258459776611311384032069714561532281083525466907643567827161425436652155023410904370120833565476826578879596127312390360428901521317687625245853597492301876190978059609152917872566049751499971650380978989097521311608028684742881944262721659674849709561596010132983114540351826653820750330098339987412685292044691143578759480897928893610733751186785107146455069825053497120583355546381424193157732734158772143266161986606360791638159141486612122633394001616737195412734915032048744528233218989050672826910262705185428308423664706009922402202521078772159859939816475017989005997489888303337310229446642415629576022575210238412277825119260643952060344517201059795452949118929430332196100632370087930685898076707997330288154051549024181412507161621577265194795021189145394962680249602362450931871706877542730616041977740053382511150621078642649469690911010415061219500871206540947183642440096891910254751834005573886707933023506559649896861246328079012781663887899509434314191837907153879559248660649535343895519817644320405704628771664488249947030829711369338345529838571263001733685870074324752055272143882250325726198953873241338233694062163097435360946986997765619993391213157033895476383196115651417133322672624417282615148301616916052557918368842933348536011378049005800638568395295230641949663049172238951491543539720639261911736562083484187901990529867985146616160606916405885603099142595325820816989130495066133067011730328323258234364199321655030153061907657916233723420415305141127170556161162908964996667519078265911760153299905798273906431908070708307634729459018405928842319213820496836855685465506378198623499307489811290445953400685982920610274280336200931778396758702417869163862104032195986695857893528979878756641698838768998081719310787574778568127873867736089656702640297159297579070224248077807486442839544032122235988894717898962029052783887216947022094543362436952820462198378645372462373658366034516428728088210681721733050903548759152624236423802553277251775583519954849878909782649969537352372671344914752056409333766927378625640224466327027062858125791563927857422086321889724413171433745623008098250420748515781875824193947602984124522561389940614136727296514151924658415586263394556347712974323867924224597748000143609179023670141331285094985393782308143178550402106300417683011740977255461764192073816477320809818878126107299999895650942930201271733163777257511855776877006067311936412168778020039121958706068238535253197861957568032421868013036246286168110719574749849521321191387083852165865511077995683807408572282732219846665265130313156675398425415551679876492271390745407781887829179064943917318611334018297184486109160933806630386490230216191113838568732830416753354460374351361069986824775693538021651439346249690126027527851341088926881760318819355747634945166904146523751438452636274632113962591862190675108654807941098550210009192191739841530859453804241549169503210328060097557682035455551362559198628155208840307086268274320344351182692155056426732000354688124813069818779588930303625705765165366695491377278046488400808346994851347153281016849084212841402296101489328787471438151827175703638338129985094819545229865751208073422787765550781018141588350125841301783653959160630887272266654704271995176558549409135405399744775807568134735466844447501601754157533609972547847877071121742051104979428458008659737809745992534546123921020745639146912067261126421439001885210936048594921078185784118680768359925933983510361398770535870326644860520751285180254332466011487160826624884761456842225580575391995268434019638530949730055215172364949231023184989535854735351190741746133330369090233432915608207089511459341296153363418197347598283551803085994270274937215985001589099933315209666784268818249628934821596703897074289399532443992501564736889139372007524782800165965940609404376758338670054007255411707296500524532900166008161831846605127434235532371263614521102348684277989906316097034816279044308940519807300151326913485994869046873029363456156652810657013913405147289363808040307007366742980101729540347114674298143152878809229311315127534427544360685312323712129785126970192547934732249050571977615221091689083547941365975226701569092866775393342457785952634437388303723359696576467214234001180631311262485586813488446412096288583912877016835598271091313019197653129516656108471064174548933915937604047164007846058221936218346438513342838024088234310210159049154248186318436802084314809147043012654327153198352022309175047479048840622045885147507047738664006485638650906628628922364579424221651409078915552794255269501017167238074597384260023258315363405689362318266236326212185324829765337015320777968469107356062987746985359383301027631009551024859284490678376810258541540730777890234073178517182360614492011006806216518644761233436212504143261802723432320252082072187545966638413447718133515139590864603652557862852176587057542814520173599581773688839963677175124539052251461350247478022735729725108845833720574253679417427715262055735529460106210063257864467547938797335867400370535562747482052857298637348434379571784378874654973682123473282040319543227780891292864587087164370839051676280436759455102756295335616922433707592356578660838400177062700430350985352020484802277677193439268660884126310088501118515021112596248735869935344531835569141992318138275913388753857683224063490514235283464733886819601620497526424965008340222913497192792151197904600937771998785794716924840201279618972336546648934334513251863273330479735487938622771317956504279431615477363856050931302220267213016734891832169338913725702202827974055288656315584320289846351271968028705322765332712509097110758966677465623870154784439821922463681204178389656665988303616125998243483252021833569229434561752968078473116935428808649840495891509127452546367188324823516871158205255620201249539926978170903269250451278847594542994316622972697938368546486982214173237701813542657933881588732055865795282872606607230236710892830041146059886473197398475337516584788260305205282345418768629329276504499959474322461792911952098758345059922138881081443929580122287425064285276126817249211757808843422644776127010494495739282707258999322273654288943133227708776327220483827223750171993760016628923327771147991325253289374052246834195241388307762162554694917221172204616997867555477180887279639275974345040712681287396115877618673444381144947297916734046821689217034507620778848201715477436821609781596050808677584028424475243784628664035790642229888795793686762349684349232379462674719588178994743610394893912349948263251174484294328062291962395421450660983714962261944883947956273973624270091714667113787051253417684833118476316713487967101766612035884670281499542893633518978264273322299753118952928044704728607496247281081237162309138179151986079668655790035971994176955536047213597574410099742326718062411085076139408462143895917426107094023845376555747594426541219098395051636174063996444732915012291872061495078591288700840411472665518467178108042946595455251899144248546673227613389713199283654826973714963200196173043829479981638337231893299294498614797455320843979611233475627203134983981528614953729747639711842646666550185907995612575512763927188102823904624372054097632262772186247847413970194986402500334991494322870429276507413404873615461566153542248981066375595627661641751612857537787723185402059252587216437637591843135808490639431891880923754956734211139230385295180352932174618749462940190689641306534608297058955869837768650659609320735831945873501559343842155507041388890134314330060310096849680950952129374993038050326342298739391855284206648166997402910707919257148318446555356586831185497348544930091371890941517205219305913887340567050579658503280531086445045004077028016841742868349555482784708634066828393862619329827767802531688123224625439165522979462732051046830830202389875600653851272619937076922268011072666107066194378056808076197706232793217001985318001926811304338094562635699772864103310854407840792098665538789953109823689852179607689429667394007986121134225824564508185423509853771046192027347136416925680982131509558307111462177699409749833579875043953460608573607203704200763048488388568363470318208074673943738805491029222649498331790649818604072736143832308850384417044550056218420888410156185351568284820023751710789306957074194167545758759672901551741659060825545514499673384123287863382052922316447948421986693572661253978944382355929414242804445168902869777345698440114778501571696929605386740304232475302045807950469791193814825379214811705590485736310199792741238500946879859553131842286434859391957677317007637924123326191488295995102913850231705699856361007591491463573801817994218193579824797975723204326046754557620773258046481228925053314788952250570201863864833288278038544774133125513542236314420279672077642166927747961527894909419602447499786336779366737200431009879813662733853978733739482446914520226285634033578371631161231509345492931548380907926422300762734458039155069403020958761134376063251516395167116603675960310959996481816347631975621688199707393039142493506006075817815706412077161756921143778969517342922744393118420468248674478654899530368534054823138430070955174490494241235691537392385019613259824778346718021002307276251148757942734481942491633137441640088479533882199320518763648214893032425710581379206840378086411025486128418136720662690244291861001897927323803728108364494381970987857579290061949491268512792529425111855637718461563556803080124774460369213349408738758594471499755486904884030693546350064685434399794712069342252757909343011600366331495260708073263547949905378187972107203037924340619367251807085312359432459423659589977327811972382435612178585652125906768840833921093992695286109962955597229109221722287762052901529328585042537036605972104009432095976212680537924308403074392802339980796375645271328218571231275488493350683514065169317785316391098184324917853933137002925692321308768019389658041456415289876137864232001204961299774028535850088444868470000553465514819196612929419466700347565576402429325272907814847958534154129106583550186328810638234705799975277267217112510786722715615929764905806261602928263764763676088358389747370682211922412424136542919355565814345249030974363994775940965682430891701836433172505291693203630964786595607162739292021571657659217024033642278074952631271399571867554111742397634157622084758891143739407599249578899540662992849371454216631996570970086901215253632758260359685220469840374767550754902015368055907664557165437783976377002729573883599782730782801574895408759328307593801433731012522410821456668943389774420582772800863012291124139948754571908281452665560929126959235297080517397606467244603285827554941312403855550483396567363464708157998603707844393031740302919558979166104431284430445412067533132447849092562289003174562161354896629217260835733189739939821001613041371682257271881546947240728830504768473235326894168938412686139700859903059673845421335968585680230444420479273254206792080909762263754382981558186746814503378751399033423720337328431035721528098079564052097518012170484615746740640654047284449705001625932869870992211750846819840271542637944131361932457679902116132449097903550628427672174886791682450221240447711231651231235752343292012034796784122925863563519055620815266266993476137213994552431276660748482461631255109556122272058884200417317053912817170354041323332995873335499841411469077477895848996764563331672169854227124263195873772167141121233355410359200360385354003634255171730652687643067672001958008935674340333758980183658140101449736753747225165269785451796727007671121146034652205743970727054708336019501191752079601343435145744485238502239927662320690037904454546005624414135597717039259341357109491405205951144057331067184401846625733389238848852925184117996440427263046503263793118494805545614335774420960966228534013770131889618384060283984098709294649406391282303893074105476882227056458468769691699863979354225015855557161681828601385177293136499614273873939929166780828725083686387943302372931880140571994519520340903700625037645283526389663930209697571675348585290679420821969697773323963907254739938215209345539093478062639570739250770421075754712386635411286727640842832307222729551868556721291239335462881372772107991488715561053969989360048021313948767546844051732351906865193079490460964484533469701810930783843437310497712518487363267163792554828829949553984795645129731349499357514824149278949820040615255152744658060056003556596499596163871783351291235361848892552711984458200132239955941329815600827012543825083946451785380846135066084601001817036574912261749694965216673343173237023124500358256096690363270948904478258587571146415312697859432812350192913016133117096917631068658982532368358069519497533772547069809210530870290243398268046639269302116725100189647446517459806432362113536595887521451243754572584155774244587276208399419362580180966855132804208438525691796824121757334606410614188655388579560195896853286372953104000158469001942720412349411262703682633315757373409709645948939878392651666722092177699803715099085005823892840166009857786357494727767114431874371479598443576178978876164451563067011695302321712394309916882750257166445923222274557359643514109757079938061519173588977523917867333612144493845213778293544252297251415705802212054270385990412576029193524662538345707705430592638164511339013462512914336745919944596518315082710438728779192532547257458478510465262941788005343336221467223677369344119770168575610311943314608785805718596761475446682122252100388117538206444362794384650621365076156334222642400051671436770286345172603903629943343387253378007576806896845265075259595424307687443036361487340867736671330379428281686761958807949155564595905243990420498420207364967834409984062443524521669531131396143760596121297491922843235539290414331432072660557903725203514102697632267230321673574541730552821284879021444744215272823134374342507186826857548193312322899036453097824952481321102739029712125556869826153352759714771104123718180049391404477161714988741028039142128052441247314447051891215645669974897903762474235452709903314898159451954675380764137458020407219856839106728203243845317523236191924452181799684578944800322849286184113773417100314561028568325124726922089712539705160793042521809688787259265244681686166967208526100131116461218846657606709156170515332733261274649569059016945680730946938545999299342099375394810755577425550805366497214765342485540314810510761365720048477488968392113890233751816769298496188319947360180675411096392492994139292058039838639866004131574277669027877480818207263376064923882456980937677560042059768098888627187878662528998593872482084811208412062425779087689061406256000388568339239015520163777456955042988681511126159643903436244245839281774291624666997045773188315503817698807083165006613511796034309357012101741020464101635478197404755063035907885150094800520053996733306860196915234948222719794407708080679532802222737627108517576638730416563981005980667996074390024144464604073037813321112864078513612096888689634502253070226206025298737603291187570031259986279828641133704515890077178170931428046505662015884273063541106533920804209341711830429656324594228397658927654324070855511393867936109219876669730340386042490268903689234517502450212238300597468451792172107725175139187228299176993354518048850085353261847138850335310300398956935100931479060631513715024770113939477168757769419729800487178787797145767574672200631910156240292774578397048948841686202055750689663998432379883219100373112435172490482303244187417303769366795103357018281971136766633098055805075908194791434778860694926224912838507197795965292649242642772635584794850199924996245337380594270445593445035487704073515691853920065752199433862334209487434905130832417252227682071818860541917152925431472654626100827412962561503586117359491560333126318930698173346840138154638258859587049214862531182200458690227218316502078748844025483337475505516646075357178518595178539152623403821028392990904726313124165610162464320315231213907725597666960242646202911214587554138597608057935433925660096328275756489844393887842466016864627279394828463430156438299784471670790118192391074228683408711855737482800974598386340710656593235736113566989981203018277457832591334477298594551507513809272494005290701695179617504978824982812134580776201372665333959166320870387256136088450478680668420297590610841491051520006986669836872164596984814242575418963554007496587225341506859043956682250958410636658137380980698937167285996046390622745677344024245329500664200169864140004541098111985749183946486116540870464572304733040687237475168040560149947581679164901369085668650414100412799955069918994303868052851232010789130861409037151695244236656213316801635609534448000701451327288403992647132150840594674856291577710158304409981583934668667626514321633362670964165551403223207765972312902132925213833109614642643544509295707520849732085201672784769941448989916499679957533268746848534620766029559522181386741389939367465027753576022522435098434309348081881294693900134840753702940660193088801551786691182528899466445007105004370810304002430471812855022780702215374090524093751922711361639027773089206229875186511412922637004377733902437798647859819579265702623600459209900250329634573632150828791443370634866692805253807707247220518794728302079830509339591928142194612890010777913751699856795609464597821181561242956005888637756292885242876345329004566932741480306228882165465418699051039044923632437470531392023888344268157600400767185388913640079127681401076152407524696329508293487053356445201764029480581139608181641267350726062165730770571162031492818611957499192329126792966950444116431866209187466011370318963755896476279525283151502924862477128778998741478674302210225735322253141261914063116601305642979330679927630417164779619185359844158871159197399638704573079653383072958957460418247434272111951719810738312772129232112694240388824539204143213543827702515533373164322127878092992169881424676168250707776982133602759073279200319381129083106465838600537147529491864726538202880946940987562850067778804157170367314893534597650188562625448999683903770856573491968415703775196145210342917219447575202677616674340372680282998883193865319164471776960744879219619544124019351530984056182648372241365237825434128544164490297959290230773202711519488823742330502054430235003106897544645959458211518699542687216431379311356958230002241749408227558287291981257138393935858573352575489047009201192630363676515242087943511148622964530030086345226583965559777319336591379355707494983561593371126474808622549831608649042611024365307911791005178606443173796449214287209555270143867247398310888605866391886884167712942953104867175435350195327117205299032568424139091311828318189686641034298794752980475402947114023026740521550893970847435598137191945545591445365128757969088499734302976671090291323645540781257258095715639062933058997276881114335007079465797422215774757119699647012275052480806388722854979475981880833636574439152781359670662000084548046070124940638962075779552425345976823351924087227837362612649338874417653241914105917358162295655517586379919225444091085812388212405797885984463763866240873168270909962734997959930244041424966434299301093301582445832211986462304940579278065237372580844546883458593580828707033624596188416965130559606458206494783009094561529963867062878140113571503647791903231011514274297274593790923565747176490199438731055708587027475576756141455305243866976834006230946746737586740736453479530455470471418849641411807524739993672809816960124717133089847873203685277335907368784272657921358411715253275706381788452945785783422769964742750347026050924708206021548288903702228603614694967836827315937975798133151608035993764885808490764392888769946254819136960866433306932504546458510767592196702373985251011671393917149455256438679440946589258222479017269205663573078495906143154613294967861555705598739711407705787098159290498265542466686612424208527339966807694527568328127031668517279403539230406098675749826937182480747114653366214156076778381531434000473048910255317062032862726527385478480243289782788267925186334612035607635791793310165416928682638210576421402557791178710756427241428299021076529212474017577005797664578752160469213137498595640964742571329686406612794429903023634517805785406907414954427818463304014779540365533504265781449463890064621577517568789928630426257015971146528669588108185327965519821475428793939677901541961798736507165878526691822250087642588659362535149981832430129643986985060919314526276591702785351304302358539656974952038993290459409096058964776834238442229341026728794027454509355249523705494744596011584979240330243304646852331363039084950266815923330931887066660039603898341513735573880601046397890327138009438997185993879387544841582230258611733879516405519769690882614567761337277151312416622203145397475009487309405519157731306771049379396862836330154341250942421590607843672880739006641500203896091964828361426108651634305149219386020072619761179705270365032117679388990739278525425932069038195420053283796309362952281241372629139067638745094966975008946635857485303104964769171306748069818576150139037333986790843070993542960460259405104247190106205666122771771331421176193834622989461976220182732321623598351788577922135733832078949862715100309230938950964347958283947653913454617528193939229854131201664143050354998725906331581642645656224944165096467391952600853189975300554910926844758065878558554162294273103909119113807067331892401137589404722000982579639745201097362901294602405804840394287784416789510582649517225953105557893728659620791790257473528714719114867134353216096081383346211544770863073031052416856840124643200673407399358725002225621962463261512888367787162743801451620305971945977929279639790650627835543820289187244226593296069144568797251740742993669639973848645788904336728267190396891683434878745186025631594045119139103474028632094043575887791373803904139507333787016016711135131642808339094561283671144731562508872125991936080601436642975596374537515206701723305744420062874045850299748069222454358755966881600464696624134649755696502763288933743210780016324760893002221847225985326040869510290704109903784672599491557071355015007785160617075825280704692861672431498416567287646929878869914580914787648572811500938210790880902026399982389453968042970709078704860710052344047719443852468870252831613553757569450100439685672775616934836318233929135696199733214002619753619800152305719930104653313185832193529972967477669464213645356796532892996886092515372011329560912230016302420805786176781729113843626070064393466915025159545777571842558529282459656418026578258012762876130445234336641755318488661795102755375613962032867221415477380142266334878824684192238585836467399913521938775143577578567290643878495307039540932112703061669666368534787494676660957139522575023940178493885874285489539781088960878298544837907906116584679836872942296032557960761879411934574475977506653492923959822766098894868998923311358438936816977572871721301134084320168005735762338011345152875644415488987749071625927911299360789821160692725398948968089533217583165743784603342764838028325767291850821101156519887752541945313698757778373312859411581683122802855501817731696348120002920440276192945417918588961475283005760701434470825874390724114416440562693882263931360466926250683198112112979979508256247684868515214545990359886953556035945041272324505790172280620333000490771056330334050585014314908186537608372866057760218664893404674711563839865975816738295854713297906382338271714748961095940693784317266660122809970222681281964114116100869502006126076143111333447501430374810710369161823799592870476637082687579595873243431517422709370449527058183228756826469857307637445319507284877942492694662439117389317940584595131423800402469309042941859752406904822746525051977194924897032329020927218764248129535320207000120174626738943978748232163388042711671382104829881821578563413201238015010219196702301430723489126364203228156478229795780517018739670383439237693601326503554089867052878143364711156471462401198457745278294958417763757324630410715147696265840877080346560315177572887069008783973579427959108996712904779910939351050719443303572496729687056245453100762637085487047318449295685763875387478136750995241868196820876136717774124765726165085873996094530140511595702043326229317119170840231725439231689831204647557922696916963641190546870735390414931317139208554982177777126596156990754768324349610632326313069571503759934715556937165355946433060075528568075631466547743857759969635822705247087289440132131290378998637145638770473054881683814336314241849562065540405806867562605417374158160866403815607091972418255846727618084047955162661361773100293196515994744964886070615143733947133240135887718183963322583301944626196368262121675343400414668866484774559860755339663450323705818013512149770185677308674233647513995904512596319944213652219741403072779610395160917651852935408985959118573524620480284230551656792826400583496779342666512668520550874316312614487430010159944476921896112754170803096117749320380983186792337577211315267345091313626725406253118341520698823361286465586054538818319108146913445920746248025003181123214018747077642837357932502922316312196432456640096577732693658139645160926122696729460215460160816253155998632306945731129770939361826461263276174747405312899071537519310455818790768470327224864999139218665501377298034798897547924831581191146478329928636107565990331393906156956927979782394788237938665478333443413917769972705065213074552166604704060911902531202481831455556824140175730304159471771298738761919392406403413343469069880095313454691034128000209559534464125508698411820007360599707568943194169071623793426369320338375794365022783778259392815859637885905236184941936986458576056596025938016886244270230730944987756135891569527337679682857161431248272752707154594911047133592479432678345588405698805888357517597514704004086254238190513353182453374027760189459610898536758361979833468744740938151119791383200102475236769643151105834381273679461561192391268832863408706440991545187145301979023537592755541315531408269387005565415161082665969255539626598150290120489972700632466319277290501860268629955719425249325848519589459354059474749821705557967880709702228575484467610655509008867890749814394479348298800743873764321771614653960234026786539231719412750783561624723787504894355833216722535603894353231039364294941820645996027202215969478765353505137000864182958761510276158648403758835192895651752944651435520445654495567862843223870955722930071443552782101790656279260238896511673397447163251209254679936722930858104394631806560728382895506384267569780656054529946460329301108250818185541889247802228387624241192201135017039195873913791189355832221176083466771309470368842992250363927332182670108869608412606890457475606157036379040196029928218286191638506902878662511469103584434901387056828509945483737989673762901696594512668988508471687726418795744383126636697880308144464170224934804966943156115054393615724312161079193868875238576146519998960491359999996729076715390418813604946648523362940901926619778227222901490164217226276371523578981726311345864056341025053280115763210133086862245452634780989126975195945602608170662596294412897664798134118557948294335628873383649549760969412255587647131114282447195086304573066335494634819270494131548588198397503977774327776509849061493434362519469068631547296006850855639235263744804077292168204613647666849756394772887010308280330582897972308753910801952252198405838959275939527635576157047487463888321219620289159156606439071961429041498863319351794853562112495571542001199592146999368260090509608717971050005453921864475086439218969498697624232009474318949317069239960542244370813410438325045232829618029088623493205749200950520055022877396786348638380583407607321745257679704203266713615952613562763018438465971949276866997961242964322963907361934531619699385049419196701390669301603277660605778765149800495912518088229104504484583898269413068263629384171807893456922630389904313025167563427287590576144947820441489156488228599960877353597598278143719388606302624898963620118795976655562922690569643838946536099941434216320653845185873190415374376003575555093283405386702267376738101894483189602675355306609303187721234021531346372663651275618993610950483869896838927329641121713172391336226785139658167189301478700817907490590085868696919539270053495939507246281948208359595492032640449440173434530223727910934063503282705452966658614388285962658397082942858219779334344489735302146159523545211550134942404170073174728194513830942807311106574046657551688538349428066293897448115070035258426625547675964560066167002561597660645664864638668313970613794205247676947815998252117759518315658057763490415965860441778264430964455563313351561125879600041334496450601714342648739592320336584863738908169832558021723339603467687612838522484698318957239005341263621085845327865503626958912522044758267872620724141504799371228765760307006092490371599381841434155664548121205670865103938672186907991814735843461171608846571030598514679304341824277813656522964390235523459276609274115946046752974055904528064611583189673479757491613921187065164747698149499030290582364022243292328681296713961643537485354347722339352466240612663165798506324091511565530343350385836062505842141993546334276310479604924404160049054269496694683942047551020287209486280070210934989124897868670667181808351782265671937009338178421708481799485856978732093702812496466306491528681800893795235315873346661503555253551943026568170286660576842806671825321229859629851182189454984637679947770557131007596342606864242627697005508203969345818978955907888270219933835186766178903839492934436451151178620086268098851318188397251893538594647426082488761754078456126680979558962162182535824008280057733341412543352449806325512090635105950762062088877792928304784834741187687309402445926872260525345855465459769416056679930856418997808462172341347568008042446149152373526903414950887442653151043443385299201167682213983511775851419202079533155095622304159018376793693340362338053526974231911548489990045654849319766346982210719289566980978215336126753110909683420959357163458460894172659367149100276137875355251368462029584498485556445448299686083015034369110856988115082012649665111487380230906516058554304345604648253354151793168672129095731853742978716713279032888675782397742492651438919953152970114035361019794885421456773768609098944740587079570060282693920290755401509421503331910410528911203071474850262648489055219133841889421169030749388306151613114265117199403345675262529390907554550747861233986106658817245385596836633312669237658626044456513414722832620103577027140355658786060038114538785724403797011052658376287719517325364238803878760958307051166223977736929441845907592007440409914546738399590627423104433805223232875265716939104075169322828795419182377395101741108983130320673409295385116330286265976231476493932652342608844998393737001276286617655056931454582012056849131026773960461095504118962728675568244233050423337738783676340647843067276300810399878448557353563140636222655379868275791470922072971153859843261166568843359112792516415830387485188683778205844316793681609791259539812908259099635997075603973827795260091029672448759383516726002486211745523393112785152583218210143736469429089897406098684980468740559601444057137735210375389541490344785388434793766467841982514583039107808989566632827024999819839779044545494884921305223906702493670262633054468439610620307032905614380939344983116553802039367136753580460619733948714081991464423103735005047649082389379244879590410670939139260921138177965016203608791837300328019041118153489943364329733064636307816129988728064400124580971015461275180032454184824750171174727599483981741790171095858351225863660130386670283722903332367338394542480480073360150577311244594388982428563148525707889307416296788804364182454802442970669412515479365267307363262601237864812069136978732097820537122971186913752383718362370717465348309229069250082358595546122832952976455338321084417249170123488955851231087561607649080712608270457807930214214151366816482754976517190983287674300186568758540581363339616352453186650968847166153460650599560822599825107843547865506585424610492158927053772833699625143709958803225853553824220348796400643250395652336147956143999449500117718060305351195177850273320458870898546860010720091369783425634288449644391761662463262176114470655714519247068632316293582224734922243079886586425402932727164870601449408498948136737846922166198110865761209400436812911892125745106380946753148878132465127436865546651597879482221636827396306280961763400011155038847497102490641956668405387249132927178361813697828525805942388165855758439904367574733972974607783850101724332976531811755640069057016072244452160251242236148870094475287341750264261026801993513571820551284174601682582394112744856670687635297899831092010327349607405248328689580331062059071459178071468255029665432264993140755121191669718818252067607299549163773102337494430421876666365855199973719105035241307224166883088467216715224146590411774248728783548193703820931090684152320762530061567897962557949764093962625081352539192372955994004197729857455114745856281117120744370511432052277587687294194849414457921365414509906606691429678099331978433780728135810107301612746182815612491959747828427746079816255198693187448803590486637348705830678854735582215509842360431652746146181370817612597428500438230766939667526353811818009143640715023577658569907125337475084158500236927683092382046651342476666735291503180417267878254209191697147682456799328138050966840465747442836384025850362558889645591641096803252312931085336623746455785485042888261633728190776660309777005772842833675778919390391755436930639047573944188189163158548792950127182878825072280274878640255862644764061120121031932394431750697804244318080947461577608023725130926208945754560145612278618319442380952545673898942325329683655338988024552952181479352557813588678873077574573529629674826088111355400538363865468004882709959389412363598155039371756956668029192124296677024720632069706034987961613111517432510557779552403376712058331403491789435838751422280960074078722419107220321122520455139045323652897156147500280391560775364940319291742028011999884368332818583672771755763293632422978540982800162562937984116085653212816924337619272350773359749490685883832900261558097327298445261481665411053053405458181731323241176889157471616255075591195903772580025669368572993444127709842821043442555952894821857745390927187801690808978020250450945762197306090683153367274483364166439519111520091446446548154300326138335958819123772487485292473834088222445063183568396272488507652180144203707961361022042293148580941130557303915982016804762374677838174570602398254432915546580681699397592237251317720634491483570553155054608863177418560060610114111434731731275234341955918421685712626860774943023325684002173453364903060523535672382341398715865498488825157800332400036558986676088959556475193189665261095386100969872653215845237948866188981550870946107232684363666480484511648045434493460137594405133425755595986530400929247753672636904517857107321642805590497771450806585611763422123967610456696589832762443389896096378012394436730982014723116984820286948081087056460513125330494890666530121410864165471437303342016443448050166628430529705452660292162599868714760967985800386154012084060420833247892273380263840358109398666844337276873241374864527273771278537948961253827779215897807246550782126698725097931648172633744352599698892398622273164337876311221168107936348875885236192043835421521966879342863846093498596025112356120019661119567896233834010984310356822501619180390924312274141545104351028668864071846148685693410380980591054877833293705982755376149416862104251362379446320976471128374176259590306870974792948863402285220553508474454433789596092580533662155823358474521245424048988076417534917146628974344299588758980256278509969021128079945065676032334817641475169657691269268081222266300047369052680876365753816939391704550224591024323673538795925616068193741570991048915404971983035966646196824414178644937345708509376608231143854030508833148857129091023065547559330519816123948093667553017068594329089024620352567607788607874065430600087396607751779220761543386508864274763973605626426222151974016829199530222742828728522512509187559455404834860710260837967238625647084428085334686433637714447748201597335647577443294790525765191325371282996795317226168550205202896636254057634320226565864506209086237865548748777052328292055542619740243976860021796482723020154723009935544423492303159235021769658179594901867131084735219064513003418194539212135658041045626721388596722166121143835586521546594970275755214329688682043569130331519108201593600507387009232870104482049190961745035017782431077464273917849837926443918665489198893199051262786792860132757577826541299927444241070737036112799189730965228548874829599436013450662238351795856224615437145274330799215652138629051829094848924713815236852781819927375751465225417231297880302549164183376869158277201969369151589134600817032338902562911739496025769285809579049011519939521080228182005165935413197486008653307188420116106561312555508518201259745412246106105680153129773416781256459637224324897897496267884545003528100247972450324921447548874392839357727960511288275519261408426853198620411577721009985391924607824226132674186780235015996748145144637239596131355929841581313606091092593865404752535670771972574851059222485513256680309468529562730417879213150846161240493119193962070986003818539061547860051104284331823844350858320247226215163660701549452050206474359536373914016257175878192797963582956885366588543144974739900220660336519717639686642068873255261932539831071416387355925639316411313558830085855219137360588203555675168838444265867798364652931472441598614768954361621768947547380261264431893129511190529488701558424070345243892537922378065775619072258026880066741257499618092758108723223832092246984309918105521146470487597820202762445999737775910651463562575185780997631505940216582632346013158253858465934612263119309735170706058829649303185565592714007520938709592882467836121008701419206421362198996325016663792859636104879776136432862336906806828877939600674514302444133232603520582842158414968008115031894204966144995247149367658875306403632476262861096451964932773791594614827062621555689334824007944351807183553995603262954770752299437509373986335445015611649194214751311760240610310663917195087245739156964669746877165180609883428019690888169842599396939837706446047598277626814606652171893070018581294870542100785478884824741695086839196805687391739248311347090215624066024743183561232101152322139154150233877292635318682919868600284136417905023535236667587099160165509130903356975270051363960902884136793623859013977166588016820264079672711676588740616073193572111941982775425194955117386666192580626235861115534770985760503468884006936382186967330505422433428106024658285380978153294062005046652785029073091851781132418018285058102647939568188245371750296194364876851138337837858228798484308683435186716234395027581163443327868967696820262780510039365228325934856813573473941429089277112876402223668754393975818619331167877930700967903488145833426689407965141380087104842532673196557188823842380928438742007681179387308718141514056738447742947957264206319736986902042006381167546917471186371605864106858698325013561631657902924229780545937972529411732475037699672321614407040874713231687621545307983107404371006746667251829230933658298773785842677486269121079429551129741381901275861202676503505713718701354328293822579428223571424054614592561390097062503045163951625102830284850685603535852400860703733005153881397163962644969378653903117288372920022479143836000460751674764139993710354895377203536496501816921561232550975710265628886761847088745872280193263309850302622369260384379119886221536183416661941160489520635602935094984469063253887152296740459659982575169874627092137159702334285640647348709922731634531452358164974482595867669388637810085106870644084276368137749963090045090380227418683325983322639393543574135918524344860521697253861078741797646069731036378865140843023840298565675814871282492714548604106375879542146870040262654130724659240772323986611911490922697507028295645799843004433277694918290264016773221083081277659497547908443949720505969819119302863248050561019709971562175935307347030123844558253031090810821985543441844633939350418163806186348360623993532535143062593452466266229488608235372734367506492778483937995303092466317113273030186483352734069491758431388692841549249649420191660427183773030588858674607886300470227597312908026537286667290045352465916399040973415689545313699090632728820046888874905299622663191614592472467674374197841844397826028153510164023825935197158385161444781980364570300979410762531846220914377877822263842400675244197251069808027768931725162145340811317322427583957840229690187057477570890880316309504466174745049979830474780166126033041422127601674721065151530995086791459611794043803971325034427817071174136734317906786945844828930603433529877329996440654158866764954161952388130617532015984336309113193280315335233873130336252802678427905475265221177298554409527316482370769172548262393743710252379493913539577613732195083230920156318555079500533487689009158147750585083713937200213384999276620926118286763923402049119988163087813965159163036844813846032721959521356932289712870829662239269413708992882523658115260214730553094153834920854524659417093014018528430199091221364009136605412281928118591227839892496576383991613380254013892144734353305886022629345124769755341502042585294338758278235127604440523792538404388502586529274493803231221847983749075927282736171325190882465542200929639600846208831026016196816675353045814461552825812106288792544428027403103430574747946157287250303921107909378102617821065676719435538872467145448678903953169291818629386582228993489943169407540884304502627800741494173100556495305997234370336992732730195553179496208991191988089763795156627960420823561538138585395920693028524557295930334970224999663513743276978059026583748657471803057791132749556814452875279801851870082241433579489428157718897548991611460850852694391146388633669314705825381591039934324801704982242245162863669479771155029327789169805513045856611947340896660945371562788579130069469128239490363147005607356102470092923056341806640788743978902046588071652117440983389829346258803807729318262740121785988653325448184138313964590762876416344246923689159118115212322745958159403788110401763895412443047309585394276791895174463125778651847713062515427444405782287616128815304606205202073423659043155561591856605046724061873159276464493520129385116897490417593877977719174074654088751249021245980344588086670837553998650123255095904035823891578471762194051421458619717424677767565877663197184943948637551490460326927044039403457963581009702721926411437465939043120967021545746776576741029270480300918602132521127844234840838229030404544576491909033885893032846332069313509320789660892194002643132914701800575409311920457357351846528928759175246013450714348255006586102099945993305392973764978967068987610156603057037279986278869084120057765820997905986273993537815082202298475076797429720017783129450228190842810270919505810135720808494090082237604408067469637531962435088012472361810883185560771207556962267182040323028944296316226255300796530682169895917751106021586259057313922425299068365302941700722584637506860308503263312725097707162918986868817977189976900857836986113950970628651805519716826511527999957852117175977626794469790465715806753060304069023439827407224413683825134515273735756852268663414566669028426574323160262169416053122336956866908800407726701070298886893554219422643225170104542728564684944584911456589408668286567419262535802650990967107452934802558103470123467583549413880704796307849365284359784817927258192539062292779172791733308611906033299739348256454885988510773749822183766288732008053309762758859890376035832793704949663933382350950413931954599858945922709354142074785166608267376447331152231654073632815268426809989660842472766938468792688913852804770633325664946985475435891221867506317518236901166408281885581389011010334967207310796140667809569252268780632681089117436826971694954310852088162072968096867812649391661198960261952916153576312076047194756695599868993948708165493426856624527911167776966296968714239171691994760624596847473625032358720998472073423086491615047876728963781004734748005869012144941170865820143194248054256487230388225324101656400737180106292066770249161599241309185017342369235899323829514929073163697715658832817459498726721183378657621388379194118525052743773218951407848762639863996578121573512480650987585548227068904470766313618523651364545002471987581872788124896181663530752943989594804234428089024842202023649207686193480154558151124707066208648335319670322046356823145148367900154771437200922131580654879013411146821463168838598760570438156937800565368035132086946468658682861956801196945812762266617912645980390876643840286808391009452207261493613553606665843623115354679051124996823672269282093832823524813230461692882345116871126596792178570252822349027477715241870198753113734927088676026093280991945173206543167481503317337065827276781103644440468438070057273121615415758614124975531044896043645537447266852634181858185771711690065501305645151397647275580167786957873040889485958197333893459793658616333916918883449583935505132920423389639994294430734060097312412171305385762898743021541251808334293190210556169293248397910860352018091725106667280631535254817980284050839897120826035074962501473563941306633374056303072152038687846041124978065230856515498625004595765480490225828229148699696031338841985319236300591618905879563282982634116410388008652787501808229332868854238840443027601145699646719656068810199855411166149374405269595582214626991693852523252730779894348487608237348632609746753471682806688071623441421576947959308922573914795830935651588978054769614184115688792922979401851556170058181171615641278399813486413269543785039552184491636732201025994577195923187440071537037665450385599956677451153203647754333453302513666434143509554672962930991841263952260253943273027120854201226068158900267236547721112298763621417785694702755454656117760722599090806260409151622940196943659346353828588926232348077362896505530723275882312294223205655753447452671731577890536935125309071687981763951838267082516066554022221453856594492996064212707245806077094896588595635477418613942157560470289737169068709467166133741195254442177612057659189491919664365248529908047285516161708617043206418464410283495798680710271910464425975424854101364237669686194757700868747561021966734317803098454390620319207753980885283003011549726050499975822116588789965730070605766280177041778277832533971894491806730556011468868730899920428784431885014212879949153349057053101918690778223351903652162067280479801736326763246538500659344649875858210976100378183000824233353862919804409975052256677597403979790263715022021180721374731728059353600844773837774903642766051997398992425974955648013835028291601883837452258838696850487562721266818004814277909347165294761717144479391949637261763176634359331964554208549304260246546539147748208242231122670776756811687691452413835409272550468804169079984299592120162655534236162538432452643748624125745095402991232337068980097277648972515786557223893608870901397105494785150129728304367399786104815859886575459910689642996108281419571333283959059455475036228886947035062146262220264245938400094869096013297210905613648640547995067340430175493385792709187367283937761252353622519628385155487813268572845368773861044898662671844006397516366208147261765582965128442664777744655808586835457462140723994608265936117676108174726648779372234139715723449989474952250023196722939527448247880271881099931196686142221374422269281831729973132393564915299367026353168312586532732119105579959620196796292196226051768660408900435321644332200649963220177444573932401748217296400281584968938125715401482570397560205065324119100737791216603722455934497122773850349492120751818833920360856684978648855241106184635853130903028063472603202699716456822317845612047414826429309923090356004150090350793342243236084862960315247258312049549728219538360091996551332677432430849744315651440297572168809206779484402522886170554408221518608683050601338648348491623284963027935509744008074433320599446888013667205634029970510639000522877331263151193898407588412244888641475253318020599552705312565580891839462754684183442500174196563107320647436217447361726800338561703768031536555981288750738247911215196814745378716114697365791442483733220411465575535007129822585538909101956607320253069247706093073937272953038479492036412324058398240386018748779516651927619397542521447820753344585027455930348727879982908996270924614698288085191687622928719416108971473495027513118956580050067246670952941012761096841535389759870707671048310464426139709582893755166515239116187065516155814232879089596607727091772133515067018788455760143950602268259045906059156659750703912083952744464677016569355173131535080621144744354814553900814307597637699200156858771400045094390941169840951042567696696877094675830109819028427208675959634529669049821101979317641360438816527489305013551335703761314774444929025876207351730260706666402207677092029621937888746932856607683112787746699404766274588684842105500518145380821071820242999210825966225055916982046494425555725588803623463058743838239415772811580630218448860223140842475502184885520444907287387170784821427165722914068220860037071655889433352491671006614298992975676044496074886408705809323158321782579419537779773632037061054598875750406037894806176195569470686331033282502421527124007930970036408414313296682778390832679176155265869862004214505911473351986234705419566647732367362166797070723647610603001972045415002573127391835465754281499448903103606297015385421325433945975696096405835142111215323990442750770540749589295893973091579500664311535994637203578209598389211369223476885844674728184101306068995826238697014438457550172767443213215923202750306806116530028910748959378418355044734992398601106054430641358794702615729659067554835662131943786252884496099579852001997188664041375534060058420993981367398784638011905945648395442920474469988236776245285678847043696284976042975255759014957441836911598704010175218929693711037063020011855992975498738727949495633725580563451964135203281984663216261250766212232376486518781933332207353350148205474722987797021947116504664766212867901144701403935514363751895188239059195781326867830945072543138285183914547098695377674924652277928006905379130461736492264939372015971455747476608990485434931522483880810184203958973148645449418510567061166857971637841763160924404518434700235498085934561170332403666192868233451676506056828431481178546424065730309153977400483367813139554328056919766508645594297064635999016173535930594657155205699421948383371533302721103109759097489321502419657040812466293208498299319988052981978744295325543324973696229697175772190826618061217359836995223889281830377259301893591160622365123225821628210041522457315485698302428813881426769119075507930181231576373774855087809323532037230878425566881185445777118419488871762022939951550566492000038492797132245140422552261623212463507179454285602447687968087268776304714472760325242658073833322283365912580923827856342893075427136581922362322483836974219683405853577938662032239268145865536650504629611271217860014965015035480628504606874826188942789374472323525466261271061880824780802242084781931700706614490956292356944286436667133115331271801521338158198860340762616523589598100956086187316353930795656215942316731190412690384780641141925985484124131630024545768088722626236745165058119968095519220019894432950941628895713398403412138717908442141122320995120930773607295647630340452129732374064525617534806652626644665288823852579610917517844745893374999679703791372497301299231187090461314567507904521374687420192610684711246517787812583734813769903917837325451251096426638943564505911156879560882383915424661422232001181100312300201363718816608815743652016393536308469799444894142146797348723041111697847900017648087274776272610011608529114774871821854604561284276684317348276439047780692873478037956656186135938479866787650333908967574129237375103259018512798468791881974095034623964198243366318619616693064812868626208381024409138844244037088297116316148103463444605524191974519862609170741463555558032444885779116612103297531194326184145008445605230442308162085862756527651057962689080663925512484201237879530559980785985508893271528418456088394912962705279817210555715536740674905065704230624709923783291383237411697252266440421847224319211913796202065916783743924894758868467265961878313210747484778176192964540100193515640683591111972985820226729968052875058878938974356869330010478236015815496326790887045116072663737808306740323451085476820790330551575947060479913955508038235690645986591748392077985508205565264123388674762428214233814324705122633817082174478837625474930485451688112322422142668979073043660052310437710371615693827825775101119787445191752743652276848459234435282267185334144915814574231973551792957766857876390812470446545016032743278601878272708234316778987412166440576461225873082850474053709606068615092775506141479150871149618309967262631048073902001534311016301117426368668005414546831817705655185776421044716998387211542909834958397530900698370740117250987696291035172938338926228658844049223700728573461772754605823845548012675275938626343374386030588041101371837495700741012038900424322362706151847990125018478913208434938847921217832856652470115283776736292559942086394131254222845691441218230319529391068744603174555602973592984160041534465203415956632970364860881795150144093161472085405996497627001314795225153287447126640619557208849628161663418030755140988545228895994118697862485059339060171911539288886606182906797385200721809464424727155831336025649278195546259348335330505944294951704697591743002403655991849984144729311702111577014411603422918756039666347499534155805592229343309095266618362965406604992931086217243528541347097891656581384456162370271517380207974303845741174650892311382541904010716159843311594986600564647642720201626443415305176298464854387964625742484052124735738703230186875499710211471851302445447589140338375082626538580515966369015792777378212064313712056776081540222810560773118214177413278839171217512284303635219926160410583772656484410213745881761759923818259441993410952441237449831350431723558460149051716480578649893109996734050936169871026316299078543500956109629381720764294062696960223194662857667627033105593336690223500660914890852541210050633397055436094656549455900224771949073097693816135767374516086441327765581341340962379930469483959574594387141640695640449484114064069805209990658974008095280048692203353744950237648010893641806023843471090133250399566758496683405434762441427933232145951136585439661666108544087127588974072635633661921107899244323002189419975141909961292240759322782016215173502704492290394683479962107062557830448067233285965283689330118148162220135406912871718680481197763142143758868193972432069813745983639869050826645456328522972303247352074053856371603923298638057635673671115004793141685831922105081207601610476809375618912604644898442234801263365827303556711121321377236993450629934184880676972496500439291416306363039052339112186764543957770235856852812463660355190421863973572814133868467518854508878160808120333514879470928439998095426260685751008025186806636269784938382392865492226698481953188134096862425203458968091847788913822138186022542350432009115496427012330813990375786624921647452085611052288353075353539184377309485759067537144721411503948375223312247310447446044931951949341228113085629395335703071442749628078575452041596485459426914732569607977388102196440602593584807148457722365318388179367751021620169863988135076167028398165024564801365646911522156247373442320449398310564469725859919060167880610620094400412728868764183269844341145742507905888357788032937793426130958414047191839668291919632796892619822335582655998058356133460481848619768172735543369184617459572156485205983543269586905711364359489082344949253321278690163810031440187319000920653088850023807818375648297290588585390140974696568802914849994790664560122214483735593967952744226310755326070454600708292563359222196758876130665373363840591248456102852580555713667865315915249744055061453623920499615120905614806174315078242137870709982499125056973089085610888115590466926100304436972588245593367524976866842818583737256225693372403258875117232108772910867835718675152601558191715873559334407980332974630144175382031533836223679353094010667904199545544734772047658617146494489079051064307902266824619534537611173432366588418997700211208858101725290473802409426100207117642945092506682947928235814965968913262105779393552353582123399041627938101627131267416044297175893653194635047125746341872984617935503860888355876629595268503734928185476540172174299057105772630982440831165435141718937368741016007380458759753672747760269558158348275021751918774725689145760264725695628914084476875138825858298819638689713178873982463069618439830665114962470749235878236270794290200938113020900825381399341630928537723992371904949474531297350380172594649832301191027988829653340028717763517779152048318393190794326798672056448832009021061608041631295384313372209445452699670993321383401169906531356853285575698832357045726168136994132731662730026172315440469090842308181004326953056990108507657982478849696064080645486310629523299751747143798064124713100786262183263217174429490860310434628256559987613549039433485512187969505075190652717705060412843742131676054388767945883267815181575701107898714327972150161105534692788054469476145807714259458873046253396006829979659158927435805780818597023619285351815619961451302534737519557247930591531517874033911156023142389547385660387801889894227046349724146744241510185348599254660385476560117769930594292344352391377839244729316014040116167781399705379520829346157742461739479950218261043429020889532585582615180802085516556048809217424665132909560676136384807667016142505333158970429692301141515539585159356960297594809353262778939082453418136117474070237967914399954727020996158940390735250064860041352584123673603095209483068429896597924193233089152975561910420204820518166767073070604447853013337189927151561914364621371698179049269926320740370241895109782174611610260445833264405515604825728074525395977455601603088967960657880279759442962819176536421977538307108792644741366387719624098444331941051977790197614810817631206924111881623740653395381568531935244337997782760439836019143088216385113331083148457377926325003267082870900253246271143337002459207358934655360639864273787798627263186926163937992062145857803172663486535431231999769151705311968099631205478546507031825412058009361482603031626377187082571704195918623370899226663045898483613128551738968422874249593344038719175351045337638416425494814586273481079063090204168840805477048102047083338509631189633275868079870675098933583058605324842739874609121452897876649468641227166338130461099098891245308712927560016781072373899256659220256217854792641025566603660320315044780746428982579023070963908352674317214525231741921213488784455913088683672554761083326844777004589757970637463004671638466119337696908741012935666119998723506086355942416122050373805123102781957387577326935106512911291713306032021637776940189455486309558437585947702659712380301116601816858130916473320741805894492979008330527946488046540151641761373271839610315529037475906883032536060694508718466472401068356783936280343577701129256576995321446637412280746758059220040472793919916165610678758032693758199707167253695748231863044817871122437663572776159680169634556919847547375429987559043034977332815047588452290345414166714138149610561415443696770557415448553790480560322266782754007187265868858547051535597979409434338000871663899909398059534980224979593543632122745657448452285673065270112969031465480316979054393008752281487083033310282478253372804247436948278558441378411518208400304407330095579711678429565069747475397391138691677123549709366028050148344882698852526333423590704079890035232905016355649222428633563885830954328152604199667335760763291381228704318553574548408339179125394423216639156007778528882800428834522173935589919942554556877886616422212444634677818829289216203897704199579915702556354934839830955099394184270358724804745347502413022969424070540523819603846115214467819989890880731073552075125644276655628861330415064095285080476928942059846523103112520242816956992753587146378508692176919937227921670119878577876125584846044743002484287508288338765648857768061609921084984589305518316137212771731340401122567415839034035255586642869097267879932044185349219514325829948097393129801219542230061220221679165510018557251585664403106221206830827113205455185460741809728936392297768320187480979591964050621291059239645384169423282876933171731309985471811071545887016021257229337670182842584950507321780533302834134594964679499432117980557580850147408999575671548117191209127400278248813053684504284110609562508633428581926893470596019353743721431245937383762433985447780232833052780991151966970268149719252782652935248257848350766816637333977712404073808679833692548378732809532691572813239684527285668804262593327962839749855525046042818383323236871465348188109520956378542023443392318705542074788409959457642868899438141775013389950831720046162942689346575547255358672499854466716382948041224949306495438013365416111053456196442083492978103226337435162293726068605487835216090391317412942134321845278682070730250044837937034123563656147417707524674263433676605636539204405755366022834717307497528721816202976259441461715324124634453352206902850651169871826576759609388175441589523154524274404035174125182330235251696977257552652375396994272197101489433401386440985677652625918104261476584863823790896707838355479913056123532303544425821611683780529162451856142155509383060847684033962361025091062274695232036229936791945620387299163593419662270372871432309421310803153102374479007623714013234440328224736117441172363611269387929465529112860702245874345895514054166736645662580364342418482107373388346563852595330150707736743858335453366180075741541864085552726372394426020749047232389835643897382997158278496325615444184695684463601543986343937316633909591738210319703782828456271464692877900533456458686541415887847834439656768754188450224389148132559540083955183183451440307111720354977529579766612416665357407657299148462375906298251756962183791144889577494965704065985357655721808614635906694698889311530694640930203247967563273682099389387317128144327432265082856079754017417780042104384801450344113553430275464939243423879199334685244230670640237001688767506830511990892967621220784212441979288481781476325140945277391028175516590872627725196190397158242249779793763238652492344529687417655784367879085979854516678460934880307124377486554674520282057864158652296385155829243269121859789319271548371911488398583440240636561106486649750819053888160716365776332593075816116870409472350933979627460975485237576786984864042554193948233060191633248777288684652254885529056470587981405687911320231882144125405563171095448397925504368377902805976110802870451047491897809945405160617331684445212357471189002941237145831391079904819257582154187538908089674362939723865601864298836264918783798097875538868896024851951620664904254982792083802388471949234146700142646614469279613096288828708050209705870694155250383750537042517309329537342111206047260845011659754401219235391490411202753313769786589849524982763544073492419278238527035001736401484904365092960804232358981787333577162084086546836368611147077409918593514709095000575690646834512781317268449197143444768428953573841504168945698585769449801058707729151806045314285988829400486083628770821433950452753013703452598184040407523643809565833616107160616988666478720840302452426519522283505718109744536858772823533868528217913604556789009904198780200697667404876409067571619424094611151752070429907111108240564202063656276372256885983022818631844430819772548282455012689184167040224439699534625897503768685768813682009306999828006520714619523031110320585002694392740316466462507110458929678672128314968354760235224097717042137598253272593046221438565828442960381609864954937784943623632182209094878490827633353410742456202543693474890671507683990773703094587166298048971452576232567246086977511661700415669843577265169857100369879150386734680240347182562414620685767362447942355128405463308556171856252451634416018679134352128888738494940562401125834180624622583529622985263986455107385835572960839108390190118571667580628284174398449921118737856274146713714002303255651184431911353785436464522431089010674959927919851474082038448517110545178842896550850638670325948376349957634636211153769958915403792548222985422751439563987086719061182895432622698962087977426423286646753436809445218111259626788527060195313704849092640934104832887299519004396401950371980822308866354575644806259168238941860829780897741384907451239992350968408887061288542217804557742727123811055659489435762884346228141802629615783588175677251973013874174459155296504381855749754812046467783260351286776963211918049151815811523288467471768799031383924789089274822998173372179747036388960782349652867481750322368614523665781241915484074933561464510530089156253545273028028887950237960647049668481851692988897582971444768627906888418846259663023718668261252285083514089860647328422643963369733406973645833636028442072593149109310273982337251232210814177982992653098889691646531935741639460633197702787569826586827686504310242093486320852403261337817338026816074192971010108072164242651720415960998525544914899325602401904218239819809009135274992857023696057558700035890295856625289562053670792826346830421113791303544707944148465520277339257193188673271545156047229894763257003502846775260989596852251892482744740220883362691146850933582043919101507617287395848067319055755235249621543397364548032227128405948517457052977950975840518573376915655655742564847313607310733143909825735868264212945226602736340947764656361739681712517462437018323605895528094898526258345652093095304357938729102959159710834745187442492717832513806808283712056648129119186597364785909650770429944959717829131166781863498559723114006272965327667060799745859393304108596702022676440886866010774868489058216087099033167010554444551206997157896216919669125288891765302201042889435107645401265976710746703729832461007030216554095444911899135764382172643372090840454473477015762921563285935063441720939941554562333869743337173436530692094070675511118871844990957531944032622012677301755593089848197868011954791647960196628178711389634959531721228108915610206665078579560052577075431769403687002570910076883970444347185912733791279470974025405104094855156382890969974245708139953762727695855236462133920309279726229669858731639390601543915257225036754547872882832486015769518698227201666439163205756847189113155753020200160983217417663097998948892951835426002781165827651797178698316625193839941550828867022284430835513024913910826290184863806829456952229714028355229163453642508404802101519511895215708915333815277106377637930014201060850112787936618943468137130719105865894956554849893366131506123189591528353305310161194192620611287601807725796210712811733994172945061848070464857664442048556350425617442633410615592933076011159549779602650759873061005937333407676708117951123031959238870263994511407334193152656346913917049868599386557930547158560964862327678192693246294643324562288584825917529477468972981603038285634417114522490502136975315191945873683135166525013555974447525455625801493970361681688408572319391538737707121138147586368023540966883164149707876742916514688759390098748073740925084939305513980140239095294062222126585616297344982550588219293697173554494525135287205042794029191293340710051523753603125100379340761892955909048446958613841181981406944974364014785254767010358719794838330900417027711019548745949102690165436710787695434321309329449469305450629925172018436702503769537608150338898985170809384254609151460495156887251728276108515570311268678421820426680347090134428299188724548416824978177158654360885035082603117949448147862064898368449744291967446944198751634655875416630767874381278363312143085246717929021735671833584677474576661668407414051376923366283254129191558840522050411081780245632349283964159251519281522721621669268681557161194484033598300242823774816138248250124936533356757324081401803914921283749477260406984716578168420450716329851658564713840839524840104721976068385900016203501782745850991364642169835778106292343480504979101395663144799751782522718158217894357686411687355908709399826704982799985707185931980558387383568291874852865488601870628381246967929782385129792348837078450573090910339518396545170078294903022197187405893895075732615627760041143146714940582263513173838217322621933050763341508410932835615767685306194202963164250069733275644425434289053552713362252643422387542513367397467610453481940493994161112037023097361405110635351599533344439555228673093526278989505838844059929890149863592120715639141590909250237298953881350169197663958239802622781779851035202228229832797499308192792288833887694639898348223700660810984827007890793709989246646402018956088284318333455376481747886891225863639048361278012690834531772432888439774951707359741660482545592488669971088889389644111424388057134282442503734328443421929915528492292449092189956756234981115992993318523918554032517988149914993714525718371956590120556868316218572839488559844784223626030044753080579288906528408823302773788762673997403644566939002280677067874701092074929000975237630170259389948471222080936665024053871162033161748726701548122322316915483464192799021221800378521097168075001021758044008250798063224509940964864589663300040208803098369358875115838925669597935972175290395703283686313932414192539639372577993690640934930589972940392124885198262108064164023579023492595029250627140177301741457730393266814670278731075357017600231531808159422399583737970587610485250261484349719305073478835357643769820858861024812650299309892417121611141820126829532930667592340678584686958655214304689660270996838730681023336695239394610319753695842671185081728443920568346736388597394623105388776296841194293394085440032777142898051487495222808082430513125197684809161661780340267087743521116236957735502503319070179106196008799789636492250848479471219651312913913172711573859448558155043095705729966796540509225862081712082862806775186291179701953574142431608738777699185794347721200274403601978978243094150439391707856754718618181869266173088555746770717888326826116445164623559330313830498857942191058172597551710101266966781331893056794182051078929978689197047972895911127682155982459415899132411460091948865491086310864627557962471619541086937216628444341461612720283585569875122457687750178903690484563434717744171845352502746951611566764725283815885844968461225997770720864955948774046662634122430123189596810937230993252968575634998812130290016061803287690775900970741880985582927174842832682262907849534867938448648829376854503600517957094493976801380879414940754568105157729086868537916579046827455762946089232931211383755704855436639785803617968627846386615803604089041343355753308435499466529373787196229886494537871992944409821216958352933569506181315832533930435253328086204910775884942970381664453268824157402432748651529789877108256125220176636512075761554277342118435188636861430832731580185869102615249116685027423152955535641456744694669800231143220989633262368713161756383066399206634148139769795543717219189607381414683902884210199242340165684410399755268629101523420845402927884898719601453236410588359853592700058745371078183723754992808035477226967336926134085288025310906104485469372736208025408939747473209637010468402928925115813860758332599107720378058532138667275016697401724842155542593761087530695094104417672445961970773802648078136450002486662326684587243450618284779491785105057718623143862218747689466672317687428335581471675880117610849456144460642404212694939163418371689089264181455685087762169155986936636671904827590808488149978769780262685327264038615351308065091803080195927575044534728666253171218049908973142948965820088321262420365333366924012753333166921182179315464463655873775126499810441614883206560669353422569811619256165671329610765793524216010259624370378420361321636249639663007040542872353716430894546320169309287668115235899979361269028537027978117111833505793864432228519693653330697106417114793655527115785660009473098558166317232583882300550068981440325690106198903588913769030155686890281261448053564451216991585822474530120415118914389319389963078485182135167826628527450687955257033964130885968307124287695788996612793356162683277784429323457961744658069775699206231557443457063090449581040201717780866451227985119242591711735754489990881474420211602742690579426626566958828176692981736536873234121398926121647852378078210942318835964781194014160499235267258861778954917342536329852560284539544613078951432233942007793352035995541007072943167159976650427762576939264622809584074583012483826681628609740760196013039282502076786502546069235836616201789463714567688516962771540581869637343675776206733613799070071644348663451409558337620173028055438974168116754167175244371130325608494548526948538639731448244465630177424376149396714505859452609422470307855680307529480762098557200378182694858961652502424993491811447798041425015904981473217222341333759924740476969032411509946687343955050702818228624645183138526587826554030809086757888526096313589704488348459836580497450432695061494209345878125333498418559596250379820050370330193869000707297705088193287799570581993535612441305436958582977287841141471740837115142501675701809576353097336831878036204865400351205356977522922725945213400691944409526983989081178453824228321201981607771870160486384708568206945820765206187783682405395080454934199346665162591046966140242698561438554117408552484722211039380958093836957521010992902936572598004927858032037355319888351689884841572526299860943471807134590039704973583420051837546025360437425275755498665110380494565905041270025325947738498679033858885739808941359370527718331373291276756199896280773275265410541080785196756447782842296706937085489876394612500938252213799206350509163256039993843898299113053547170244604891451235032099182976060431556357483724670505554940873940810166471556342663917403875604050187571376992307466325081848160846958616929995936057657820747914436094983796766127002854985974152474837206557210502552266899357738476364528869027999123637112515698316257106582153484222239406334233196785003462456223153697400869699917283154608892139860179322054088563051001264762053810196522424659268678163585121785628481579856018665754816335284272303483884977515535969314352333491907581537992435513765939043769955713402830744330850418024649931958726191382315952339058396099421022899995113942636293537174659863634299875394665440374871003271370827647984790160179267170204263826232536689426762619574520110868213937438830006539685225793247128987480568395339512784378366899081904588071023028738848127286004558540976457931840860982783940636674593002357567733315096284366937197354466705007960605420188512486532233024002923919234818581770387415132080077687427772643031195088503998506326152403966089889304379075290236393758652841883834466486461306070805240151207325976403472016099684861162580758189670258547821482433574701452993379362089438367536622028007473143049255166731647584249734102347394762952166292967075922707657467311727349290278506776594820917031540738040053429000044281399829287815122814116551768425214489095854654996718291934844572783889414157889360133730037094396722439642435861846544137623188757895596358895577602571722553903671262395535760147528757034326882773888039249827416852553497656775044379424165162395259914757405729395612692370468357338493396692695653624696495892848909301788655356721956048149051189674557285298857319562238958095341332896377673311646192726550728009235220997979322226297328796640863619343334857548175350577494660899675518612794109880545303354912220961351109121239236737698257628850302535401164757798692605005926702602212711758094012201929332795597949770793219248014861476707868884121364053077182892450178671787298747802572160070324368841087963922887287561188114327922358139001187696176065379281176670555174788360844079021039396479166030808077824957627797743591243333388214593117668684694889185402682156826812991172440755070991913952841868663198927073451141174138990146920679118442664791960877000142934233424057499867252726362806558361328266894773819460768906673033716649629994545937772599778999609024364195933808947110860670706275148864858894541850636114699040217706456963748474937810339583143990439919419261567359539134040674968890468147308148410701863687448098651688754318989421921776360536843175239871370080194838083699111953284374515887648914780404123971046964137542950782102240302839022661738358135263288056193902651304250777749114804134545145379862326504285958971929189034877311841770492635348772645160734575536244261658645702008979582507616787068576231910304069060813110188958825044324469256190364943840490409613367018763460417989674279413908669850719129318962607659738094657617442609738213262281125474730840413511736276360177311312200247199613781462863723267738969191558061954210503906472384081769844571914080626342331804601628788540602205534570062256082357557651139559092741668219217738745153588464162070360678030049720111026584557040042650428854781917690527530812472642798748498506029211005822609151332645201042919898687954697793069428238718023354698483709595170036439948088730392798286996818123929625726374628527523616977184579444517902768120532581089192624902230008164519001721909256077452062266888643574769032635313799926252061398149182935745455870306990703573841912630284261222547634415844777063809375157904281762166929846932838984343573961868843397379787190947599385919796867937213803435588520150179199278112171602945707474282973999228439989636524750553936337691583172948357362575336391049084870386219594092628541404624208754003603282529628534082726976441569611156120576090777025105106374743909997918284730578122226888889653297503801623665841413012444257500013945000267453292925377307966869389979307717327194340797763397141043477922162358656631748862780653027982170871482571305594697900540454898234302375716164353005357783000226191880939750977168717258595581157060547113612702352237927013395694116478827829694635951720591382502338960583674458128059028254312623862630894876124734572029472998548149033721103391889294050812594040693216981982418870832848480776897952760962495479587521090398095911522032875531707553086129176614508867590177045059533761115101037271709988645415902197593926031773141484480209591602551065115528112018483926918021308196655556892922517584745630278012195479729838151885796851340523584022403739512770246237795138825830157235031996735499523647849147321959740382218114139040756857559187707130913379659112391417345797910692758555232112606627502022186855420518824565335485462029609086278986299005222316973281497088650876432578990587076244576823580267656335723106572240929936970122305666918156222090077393217769558725465841620854409014359150530939991085753390382657497176332610455706569059474603761186892886225504357646913384753942157278241877950248455538998811460930779376369388765562099019483109659186721436072815134908811526220366365734709561380568359324814876866684818445879074888262801873012092033042444091215678695191158564699960827071654042373910088301834092251622653822964365421130602814098981122627356718357398016158703802535594750240303551094393448115424256730676183326245117361727395659675479682568598785349052021852223168654508429980719559871573547699318261101423486439157712923798430898480486811778490012722946199766301894231286865519311723273772905366617549395939295577896461057904731231778970230396123694621808162033893067048910091159786357141886910101680501960182474637601384034462040382414897079395330712870032628150853424784477786069443793663015336243098522532558966663619255977363639860512305445414265760684068729937966040593460383461214707988849666752581639282649736219376459557866508058958601691162848481093944272871160583110500359360535657168675018134724425024750554666111857832273316084260914658020375738365494509075325069648922566651727417626232334060458440630577709930994812899961023728726433155881622800901536436095447272671546986078644335252870434158466969202754234300334383162631423005024198040133542863787588504567914133527024766230585347057582964577876555255999146995209557136322360755882453211110565352398136058643990127331782186657231850189510805560420398928793193226986674509392845491110612364237688803842171339943067276205601391470950275409915589594326162380575622939150940462125284795900816614693869130391743075653122694000455270710688531080823597840123565854357215374576976326567523084094093455958164603420468919050047430680302581784548283787282425972315258246293586268812798666703757744719727253217697478083472682001723853055522272979504636287475860971531944165487215207468805279236593145754918980522375032848160668968875348277726616952536390273655058127686343497249900834915218531996661974405139218337540710910147072462423485077357797820356758160632623756557232066927686178844186351954827211899131947374425092590835671553015877022838437442000371601592968075125478257653638866904665691471060203886926765034866521958970853732558917493574161639125567986149255415222243129711670256430652458591092654259379434701555420678082311164258332308767667544579934425006243178560066101098559502468832672261667788092136846689584682534222679361720602567066866225300222537322382475818852951509313308506438023795427451150052813377599738144354636329745782124581361032763461604901910609356219534213419911074550302153549289800267754469190245952138376477283322490935037606105486140025097044640348914982544404130503963349765672447496736928017502240502108635099031942266423543395516411910086598857863214346401703419676160274064448191660649256148089586589545957052485861136604403534784924257517423408745458382894345991402614722525970655967956586058406423176122310800995251891993156132256321336976266109128038548162189345592620414635205188592593083949384354597915595903495760456042781235524444735332558138013847568394758463373486632906367223340681252072913537721292191457929308631800811216789393575838378506436896068016986488303623815309329023262034832342838374561043628969760623756663083569736610490126388702481727675516924921644465459115355386173675117968984980914800915591312411464898120902718389725536575526258579195345995514186891550317475519018425424970526973386391662107677509034214571750743409465642142430164452593432377760556586045830347241739018271113719748140599984784516150405978263245471046451696051855119351111424075752753073827517164496870389620219037943376376926838840363809318150702736083889190559009744553302277698352310332045263683333976628412112634398653959612466938113717268484965043972687714024464322007540093340583980581163785116163726857880322091165650554029529775695410490538896846414487680192294137032171329468619221492938852314869099655833020363614104480695264354996486648949681386308577408402234911958454685990004299429825092385311094383256481632134941747543298705750950505182975372801849189663770300839077610343887024461693841751948948533413317887082808556986552882853516797715745233294854956614865616849496512177949716432887149642872530829234551807572563574249100821782930348598344860573566504531184868094467839024445921144438189140874585036570691850405532730691504152229501373617508590113560771575598681785732573748262910126804028684960598324680387084054414935857802293783484831570893144613607480374521404636150964886048733982438829748132885867012961371275587527406332999302207476330063761165924019588387268773352238285581194057104614291302058642047384634349704719933106926321345090758828585955238517804033524837632629459977467235002955412029187824250533477102866569410718751227988651198516271513466497017569220565797218052681143956943870788121903257595972685994578778866444066290165437469111560404156584997574852665092007084641229873266638166567636809487875934656958348162568948536394977190130719427262739782002769904371202663638287551785346153931904749762598878835756937674119595364210263824706732437600983180817153823589864241541980058956812028301837668247173763801820114306026322970224135849882914860097788686807767946812945960110108522209934917824909866806762591053076049725297938182719583068096338967820992506116481536148959761676493181379521354886341862425444200763492505631569362184540528092455959321980586659446331771153485738602606025524101352210036131519344306744410336848022563457571059865223345852825650545450565864853463092919971830545802980159236988132094678401921043361761486933392677521692498218448914247851533025815227403984284975059945706799048451924495934467106403138885202941923838783692618589922065066660901414624605133648664906582764469558624799294389635456277863558385921634115157357569908239620359348942019370527357664789818554334721894536919069498308905761336591891914062522476167687518028940795239181918694484642994395223253389278877746657467183356921025900503301957491479540114838950269755008578334693158506464391090018763813131561917456890155206303270728090138901712614119828792906914378999338936578604208994541240061995914041108850140578560647816041012828525192034321932720323428987874503467959392146506609940895156952392819468428180989949797529446057428588679778366303787834968370103867780745454228588911122121560667838322997288028110448287318096068477599362341627314677038390059447632532428524988030680742979248244795411476466932747023579637508065857962061826576998195196105186814494672303817410989266386274373397504915485518709140512358892801874810000132191395643335301064287433989533941963848132225639061283485234282412641383354278279811644390913080871012484511236053683160211627659052863173463795505621430823205113007297990392408745926373199076326152194658985647599135850406293527196488505493300773320301401245980561141149532689693833778045146410982513263983774392337879399898057960516193867888467569011852031092898838586196768583485298801631094561052781884992849340420947821528925915909802957461165249593153817110042458347210554072599854651170256229918531333040823469516436984492981433069332311434492109358900924286341047792419490357640948316564326963771798410415105017909571002404508459218644463619809563363986319466396493332875750971725832648983356315388436264374933979884882276662683144485260895106615204947520820218106097630392404882910209050932032109927905608077716965802596589363116297026522114867988187120286900807557612276111792159429412534409841038131113192867849345766010390964430876040297599127081483572028253788186920122276950671997094714542451609411905189472354336655642408081265034074922355522071469135712270066660607497939890089781974977126618708176537981277419314577078054504595170666731688506407981656994471593122847398122210613354519110592218715581484039879226118845554649441821111217502097228873624945148778228968258866448992811310210852317870104511497033549558646932308637859495222679272852906845784279584964341373109032680294581802711568972445340446567912455711034545879555266104445140932143693541694675686271073153402032316582564695071224719245163128442192065279604961335370188588336729460199669872172693873748292061593385672378071328682723886614659730740945776746197504894910631945098936058181273022550541127738384452608743379820338720819898627037431635691316361797129685369475970897830445669327731475366274582331112803395700768862403662367416732440234276937921610352164376218500387570247955648811652502882110905022891647529678133786885581017717536801876466261974200314917410968761707478612789993712581291210721719801402029457706897888590565538149421046553680430952226287187921065753841414652179195943521060546633663839906737840655387181754071360534076180946176957205836617467772309395130571903069000513265099083915041717949815219517792791519770044647674882868678223072823838473024601077145703074219725801116367918708052784707474533082485729701348830564819709933930392533716960511164651673564073793222676187080615816007945861942042581072593519205412566421946164547708902168618590812958868940648934918162079481788689038473676302665002016660578118746004915850643356061306175943094135559036251132698956437269481747799773057768094946120677985088176794535504927882534076340607942418717745222934657271733289564135424279151078592214649950034271448155731289037266778869249533749757681561283290090866545284788478697562068129266978841142467699573479625300820584348913501460354473785825681679001726244202650364690058920514786138822300821718936086328293719665047110738614296596985254151523748646184838581564130330720944446878507703696894565002034921427713195444634379390544162113900436642565115955348337265551646478280956263106049883402740450903734798926974191911116565089081773963980372982948649485417694309766369737499747975567305005034580784070908125187816417290470977042442643535049419111985855199652572185266346230383437675129262063937271045693556248242511869710224429451247830788740748914714124958763550831024409806025960594663690878341676036327129091272589343131114835093380802857783649398004773201818058432020876032940651843231046139489691682902295859696627465523316737654507153269799391475350553638540619948355564796822182058991453837373914885008029079151168283716169624337964762949606427833921063428779321968301637493894305905874874654804455902302208357335866789776010491022608377273145863571368732428539866677795256199410657777985742827241663463255907193701939083238150578976551059845245661506063158320849760687547656185927218678735215992550746075524642320384210699716290759743384815741432838562004931671543457171725582230788089424091244748697787414800584135601428125408755819858598127214133698352941711943153464786880123005126946726304659822820634315725802447744134801658269650367524876959886107261772822575763116976879278855629604817931222647906577424655460050338618405927282772628475104419126530928414930235795143641233150164326648019554532023133272431612238495669378169860590790133010550857530105146338723861970199104073815572629032534285094513204308947830594550710471606229771114095524656355377239909561473485457246704121145624800795793875688905486641643211946679209645400536206176447590384541203948650196923809932567838553636313677228138520304081719896949566838136068103361028040601957440930237519580191258153094960641541490560835876315021579509653013121293903201683375421337865615212437100748062400419301541316509936984590874918927235380560303188741785181576327025313426569095059428769869651430915863629660922903370107267214712810447785501726074592538743872176462884730229084747460830167564308880172638238006423050053042743945661314163244666935704033058658318929649402699781212844614832542101875623625666460007055270322999229796903122829696107387509170567783853702826172111217864039117039803263008364351894303814230742209290499762282052518988413905603010884519843591720382661020186033313492401742712841900753232959323046457619059064565148690224171820720781302820627707021406336558484150273142589923910109458489662140409167672980764909174498215477173575892747574443942328501848091617478559896497418444885391504811842668358580775155026239647664708821922130699545620444637003595155771200362616062990189103900629165206178145070110517468070972725607436728232677317346703754395421154263450112694896745879438086688237332949820448414745438714674172757134744338463699792683194488694887690438630732020881614739197999110398218512146157039258666368666924962649425613298238608489861627413740635665864517751251181405884375908217262953016411357573165769970027735487665919044086668893687799160630224564298688323463401387320550973757326115664425349429906627291663903757768821966628026311106708216800868919628839103302874381215271369579643310569070291104161148384157653782025902178259888679118639710965305265071790031292541015211502072081096042051986555148305049542122077119802526121952820905397981460779163705227480391443050899198620079419835968286490306199631321799662883747394408829231842603733695787066184257335129616727943826864323918062273667356498642269697170256639451073440444449663310744321268118756800274902604277168298125314174493040295834872121193029784314909592499843619728265023097834564986412585199213069856522900281500803166527220753266043286909604912385826301532922222351858276244354005037976322115730709568574901476564363323844694755552958822240542045874120191717225391113702969885914993380119505362507061503933267518152292578428305555927344678919578839822192526097074951989319301952530002065728261702364440632661331830204638454257649363076574924612903827563183419688980449844156879333078358447472634524358991779264805825568024554833651699695221032028985340839538970558189141664573970205942726489895947471699869136274410826848052515221814744031979716585844982331874345465534013303888836306482278756367790777717345298133469591608415809611440246518683358883313754263167748820609425911429401678680873353619938637236397784609762937403227005586562075268469747574664024145223995198224958910877758774244803066911722466279633604136871996957631667683311605261087800111722592290449302692286325891896267259477870838321605962237125897781232258867909738188098351343390672808228175834407534638361176877783778961586805258059782640809769528508342880667031982665691394148978262899367786100260759421606441635291918218126372723711240226264920419155801882479501397967227181233823121675145215967995382709067751856755601691853576038974216738051609023687422459300256806044192598372995229829151527045336266912423417119014599136402022670112675771463423142108092032295525568855618775823809931184872800299527681562326589442277901232220428290852582252929224579480777402744927754911219464774401708009320998240697892857948854251546490123759681474564652743525300839990341141321753492508775406887238530946443601128289850310539722479645725182560193040776188307646790823725359618656830776588944044115668808352972142570270333757643949180759372493733065862925846906302191833904058611990446073607936720107525985956390587084485454999453439621729804751856787006748108624146852478564518915128182936111390151123946780918598750207232361285800614623555462609669645508835944375541298558906800429099272580116172561158021922256283002262132524022454857045903530716239547662743015924598825101768812262605117977684185428852880876738470075431028564768623627778024702135394031761736743902347906618766331449777076380724703159799818523720075694032404979072108895762119941352481272486168796994561457514999279959789110735066376321070333484320909862337306569256726145052451457379737318090017572792332537506412937384639114282235041464322143978795337361840412886779710069105460135664525581056664330844917756404773610294471130022851284120601112753955194443760439367007314871376327810688251486849253854638062870579018775327082075795368022816883017915457415284521311230859378408608387575445358105265071724386947420845436637858426628900533302800570121032013908620797269404011483179949221927276931467404125727661673625400717966368613302177617085084832235121732933306737541435504312379311844021794667392967439991185228045050052379165694387661531887102339881013975176578833970944136572245253768343698848390358933938799119433085852684420591937347616688442217310752654818839532838277632269056703811407841294450085530581627754732478698404273143292742058527626098562752244271994044522348583585237901989670857034263819718355619565101104710757244315337753842935975204301950257057642569351985146426542661296928006089644387869219687192512816607440905326782928199363759598140691689062275496147946705020149014351065515736674550407553170729267239661265115844784772084415306069996442846535164382690663900341958699006301726254162524576019533403235291225964165264359732576451985386535085767817618522751517202061672523242755709145447258332837734776649695095252968771451218321026096924833054530686001570004519549224607847784328525674754803605829782666509839458924891475278424207556069271209841303403098512623350512141790433436676561332904686909433526688003067176014380378899647905847628203182873789115973175089500527699601896815438739937794372115784938523836186520194149474969243749783095675820919063513861990378424384203930367097370230511102847797686237962927932468135858334613082661549940746402649181766061771106283277818597625140169230073506738782702823238009918640376415821804246955582194934886385228638075381093171109393562626470612464621424353909208013621345406547593833852668363754471890899833011884684026106735220332494080484839293009140093829196497709313585824914627570892147385793974397438319334711048061554296306841386232610441699421708441056241915625262423170185604250693319407895832797495519732657941024686742541336001117058461004493036951222280614477772084848106656507775871532320015154508685217661392201117740808266855896726962793078505083455260888009258523251534192301846611319863389982385358699790737570083501991839220078458530403860247194843713349808359886079090131302052252067933310539855326929898665456172025911154650427546881041740476812068850868546910731446467314108003210895641134338377967136818660552299415627744801563080889325869123161477991486873856942035895750480411257182159212953904448868813814753640256792489715727608208691286123746879503954538791888825150017422244814311766744852276520288664481490164735194649706837511017457887077656857311472645481055022664922701152507180872881238734227608964976757700062024305018110378588750206307102672707257410447790508960126254487538912814890788136091347583298956661134457850054419764135145093852599559329007339321302769668142599379556819177161371317639586741589788232126406278459165211003183211623756577011659140113603922428083160472562064239195777786833750280573541218827726139321133250539279130014157059679414368648215549284455593217149589697122517740503827320325634181289843385463531633329450729278043456322439503701258130946198536437228420139116886970604210369296081631362853431128244977860811850610632019936641118242726643501414593707886697567604312743254417702270366932841615208031656877583477587534159006039479537565694659541862460047597694657768573498778860299373147649908103848490644281442967197623571381447608443314458445633488993090945523805207864857293324836096139034952500363219667146193180909858620487783453148858411796169638030986512315779363477224324064345469888245103795631860660818201279431282328489657026755660256071722199331995168788914462542014892982102833853020075614862886536201693219702769829578787561162937560096555432848049750132119231560503758432221160488709249015892238144999531449213573364158024725049713868085039435884331029535354593873070793686974715476545426630189988538773101256924478364379127360017395753253854569620760113195256240627223876341034191935935550469179415127733889876936366364379742187666330154089221236313905283158920805425320195193958294124097265178239651417970256148484643525486314077598346468556479325588268167860772792148459816047159279836001879832970618001555922679120400107111849939650864698843640727558896163694283489926826870190706974207609526069555146178996830470051852430842952023278891533285633989475203034105802019927968404673387988098568154717074145819769296655596399253512850796947871771311509574786093106683909468574609823438173177842800083038662153023404199329188095687476840403605157272379566071754878327878114951943538695746698900710191925623968647928496848617090655281302023087204724028645310374524867409602055714995707836085541478259426621403617025679185078972722030355942189196412816916755045546596217535969732472526259470495107164641239597988749477777180994627159744413316223117535103735443725519524053545501614980954182420601520085815311428196030173270385601937608175066028956212230651237460869209007022104849385077999657945063874369036353840358097017720643284094862901417607140302602992868774995159917629664289348563461854914410853165005557515946985580160943863837823031326343975849078298010816675002107676750394394599266519600912056571183581766924433585543334640596229985491214640316868420400781406655917367063360013082118526162601233391084956773169801969474359426133288483252572196233655265822715105511923102839155067554823390248495912744753087917480773897814373845439805500915106682936584893378534503624623065990736757820317249764999159904668959322561049293770054954795669989216208475410403784226952534695524391478146955051508636049436722380542746231621435316805802267128663726193882234145634323644341736472607995696309037620879566262939165834222699756435750649597154923587521512704468602689436325226762197205890892027043289744217350831825043814225123081246645081794682880475275182306884254640947497735236386946072723949313058609920324042195212691435427473054313428587827908958968897123810650710724957411345320694984386083558256629696142331157069333667095449159692021949877811280536168099696878891103146453697950313699089793851181850163664122703849925843280841020943816245424711362492812306350865626565804553657175467521607202487661135014026166810093974866225804500790854872945228536251653609020180534601793745528324628158337934554999077721128319890396584221708548191048156619265959132072858450556013559415037189010041165356703243202682160333936702663174865633260715283438872563041780446627889562768312420633126850343484599456697072049568321253029664850359299126923978594306571851769754999375322983008777021502382076273011348749845168788187443782753235523976711134080839061922011206268218924773861631610021572905239668815186682312852028807947224811450068812971243757922768577285311396560190051075705648733995482327451779511654889772449299986320355427105726710298892340005921045081798325714403931490828217250883056765971726053443054569900840682036298295772418656607628353401001653102648462726260554978481139354200852987150121172985766479450466780425569023716232641819725133308198720033362202396057208041310201263160834540816250514746010154092966109429230416243429075248650634159074092851087493813230088228169782639941663006956521660527246572938138498391722583256226144069220186411537867039453141109432920518941522456688089413135232539424722126410639481850948954420044580804312476363049414557273666195616190873705473321073731999220855175016418381309876870117260855540084072780619962287153285044375217280816818922399178400912406252124722654092065737045754409843628476821973474745645476226987213198062765426610597207092729926370365256416408532256251741119816762759986584460488982691675330561403552279474009191353574934882167065184065655449504518805680757511217513757406195555967316170414562801563658997531623371656576591060946986914679223085025465092991566336440419217293353024447928764967190957343544636299889740697565915368775956789619535276970733423786401072445037586051021924223022514552178652384228881564083466437241133559187833713903060235954844195372470689684640161076674668911498733791685930820247481917359022029674180602043998899666524252172896697918301994272957152223969060156686842848931460111156457210569076790563862584446213577554523380839853375357240473060180626861637538287843254308276529962921057881926366044638288267987401959295155494147285938156020938395298229847771551498133312172948240087123211533130277018514140951839968014146447901220340057625509183923174400340144637632796180611789694327888482810438854474284711655774749373439842232521700072720588356990273672919706095734740444673969231498468054142117060614444700753134911254392003869454823436870669727030424447231680240947012540393701140425580863568611236268530411502646992664981109194166964916128480352685156637554743978489284339433459264790457852237704604314914819304888828922803214311156516664201677393949751391792989068035692758282200522034759045365022116086614578172313262356236735917348563824223533789848654497048453127236798747299151034341737116982791124152751134742419178538131904852201745065474498482793435909156202209678208864358362373087845751652623565342295658889266936143269633144273989689685748517247916411426564208992817031073624204289262176440681669903000383609290119197392358822470844413362330952428914380143876697634870788696069914142791373930469399856587111589798592440983484095960089258689563974205326187752594221215937398681315839402544492487503355894428455425178801215180206388409263354588393487242460389304264562014229574689241692942765111993827299593439714252583238589706053896261365636276446381981935382123572995810321810515830485775335533944764509549319246793285426397020762271527385808099967924842686906778278260026306336218242296178729030574382698228299635146464595927122012459892185915273233253114374440414487729809627639379916222700935693302830132096215999671693631340224438831146819954485150197150757395656167497804844524663558409513984524251179376712568742026131696200135689122667815752646760877396396395454617428793259939135346323059232097912417363158675566894156411535526260571272682440563209603867310501220633741208318291685842293234944293661170900712019139727350068568990792789051249192494610598208013629180759700541208870536626683148359292948116480598794036202278561601835970774238628398826925115978255004895093074896158601768093439217171472735593201571974646599408565065040834766529550604940924748622497840927023216923633322920949920206889961430268201003358630683688578481315605653546927763427303531041366300508938127662139909764498392340059634859916346167351879682989382194598722141495685062917557226599680444207154941557465036632620692412439485638433081372306604861509933681480369718842497912531190291512804288791808745172501158365702457363763229606460419674995790943684538162521553543772240526774325543696161084973446369235149885192810097178379976128973745771661938344121467487508283275021675770474808740294871940797668340900917884558810041674574195200255620913249128269056607496513512743918668501199055728681686303920437741594963725100167528103437069726519465613546589556507078410304876775067319998629528806507336719583616006160480882523787948233243629230455622951593962435883022284635343259980048636319788207620302532090136803529753142892812131121161162946165706776732111964325798264628152893474837121253563671632628925898887021663155984245524592653919375130371908928251577090998932696660095895390580195875894005999766114024953046650810973359963784645180423501705885751626588388375299466761547626583227332222394350517428978063571431243549312791132611984702081577722734415523360958210189369987973218869216040094685397367294040730003511607217235416025737723332026420147917031618251553163280005090761606259976495788615635140555497966611376271942682756219322592258430787788836013894168573709930933622713738279636128470172518642267053529910447138569936133591158527797263990265022228517126445604506843725658508215954132293870808623154243668099989155799767913160651607118375877659164722074849056132121305915158070939731471633664721361639205456305375964222900043730701125085598231892783683197564807290540907949885797357389149255795247130295469984038257717971732141025226580955249719118711998400450870161541736949845464489404069211073247513195382157491162728661944291612600356964169009222032344540223863327854653977500851112526988424464032886802357229723372584819384145392796868089897279502354787807928948295304003214736652467086970776901533143737703678819562934197073931058344767637873260379239994220005246490812332956623342404166167594047349094417840260340240113196350263735483660344389451049942316425136605501470194702395962086253139386421866610504412315399179417609859487146126580299634294046609220840674220272058172508709868051505404033654384652183369551706346957676913197404969666961693227738307830144020677837623831364677361578047279747841774723372126355275900885795346460884219701522908551751594534525752930184052398713793684610593006018952964952062330719898142229829730968556160836961719705238782831915788835551194382871508452790914495563596464022106527847872083881102898478201557490575016580619344693486039100086935754865795754590564280729437397687873201037006198335625583282054056113710506234489951120124998443045472433152840693823205415473702566462870138421696838859963735671644878238545627524748338365653247196486788244220552156961475374467166416986024084082259215577398138085375674209606062573006337848575985625823035726042146766270373061200804664605119304372936256293445451177432969558198045989744987793045220347772258481817743865849234057572447228433307940982629849308641242779947069115303189745122388887027719492212912544861883549974944895938096279895982747227400292378938398122643548183244094027619139874642164908324090745689666728877551142188936419482485253217738640196427214122179844004501125598790176948615102171606043249818236316377176959495136698955469328108655854862641713407599193464938467866656675056373077353464253116300134511895016809877521243813033844156723091987915290771827193185899497929641765594695874025041185654721209539055605332655963280956000355321880089541887952635376500074725714326043182134157673406704384957832851679921339843958778955259190053653948640520956607135871462206980723825408514565512734662071290761786876495385088783267817777223439927018629913024291834871210467967191941910997412103755703202843239121446563048543779161754785449523591295803756195737457385814878814628040489325931056122108797298581295813605431053876311613558303841427076452156687112877030827174008854105433964663303381428159460467166445855848621528996910753214341577736726149074613800007510592876506902337865060341390642126984305720518148556847241516928425419316337831072097201431614589952279106671674093955890480733324687854231669610973579548212337345410771536031813237766998343786191016287931897002923746241451803458594653300240572921284137597032281498113812546336588314193930739122567683018582460985862510105034317964520176654068004525602080367542724052119579822872340665689251246252348183672336564892673371710069405327226900503589198121107329275994789660317787965253020797395624121062978502982110883827416787121160309169265576740702771389251819509081462097596074514693989264408090128085311324244479837081004930004482411760228322388538927179476127234746668127488328477167485343058200522692382104538331552915739516134422298807404007919521511040171233220866680758329655601928843829813623757081060438670004450638575587448094090643961664186743117372950943028629485567001823916313261203777753894030397945310498735036729729807041079342160599751782873965945371615662162751857701814902328038857679650903408368167651000895605463689162549117086965903771794163132548647166978467848218751438630507240620713390711041971030800655937961128353700350109906861248610552365671756656569768761158719324111324814417077964134944829175103777695570707528278028622862551358597941313235169607500995517130751269721530422909359475585919635732474026505476510547773516547604538017752971314163196139437285048413895266448415280308483700875274787966816959695769987806403895548987193999262254289509330889787900314959751373188890138081895336661431855781584902064426994830426921555030266352727876959157034076310549946846667336503185976012295885563049460187633283437532232560253193352992017604367958193843359151990304255995817967672091222996836650658253693072118965921777701903493305742037290292888483182906427080908732822765060155529834074316763353297531218682222970469284979405348356956061414270955360388388589865205933089348243675147926338880780020259236477812972166206188678600355812595451193231930382023096109605423841885231494987684906730447888425521732562501304956271178192965117531605810248971121241436786096855590670619942808320158056126555263609779291086288955509884426595463268619854281574505484740481981570878913392491955035073791625932168927917799809761518167484065228259394174185730653319733027263300600169069531256905097602583737561380650747908654636819610410838062626686770125107071977642032476169489009269827063890183424818447912607883523682640370747409539425403855503789143533525354905254605947037421414128113262404052008682244945947553150749687452011671659505916853136862208485553434442375891493004186226120467321903778442036760676784936557222833496320324610411954031763183765414469194999221671622050084470892053832941212542041709557349931309849917063017235492788594893062941309853444198702825952447511597756411173003044861389429897597579902222436453579854327765952584099178207892555248506036997568340181063012390823906765504230773435183205055565289341534294546868690984629396263812155433614028461921195394613123027212843692518935341301904232753552874103673293393873475056578759710451482807896323662502985756232197365034325689404561679310942421872101183716493662857357748020502261986363937359933553957358891168322089849081662511834336595583849384442565326806148321497949982749800625113266157814714847992923069965396827024399677363474926548179666513202443425049502932364506775471860178135656836603836998234356615610947687626517866959113227685402708207051220725828461399001979178142789823199896979177482542572479647626460564809466275100217751627079983404310251935505097073027586342273705902271632438933111501846744856015061918600019602855009564016139073377806724476199621719807215372804419536209540291471441853256296489556605837796225844151481005739397071367983302475025961385698474373110419861299270482900693886688562646070214093001318884073521696305490158483546695504500287037972855562921224892449885562000700861279905052773077233787975666507990010283636982377963600739770004481935759396763920489422158900362922528720038240546393591087835812086129712372408795140589350994243999089572533597508820015936294843331321993351824065765584846300665348169228956275693527602210603048818716794194661548960631221499489622203699471139449259506806403572943801605694087072762543155331494268564881559922446857766723096564945000091547813448820749771914558318027813530176084290570995484959949478461394312325380359558024077404781581081364510984122394114978775458888431452096474586518096546597524527389163741513531605672167545068079824456112743916071174010879545855064666728090746035594182958115611894154896138896452231613130217284069258458647957466535053355872878554602974626758344270015899058548413933826983770385943835537933677682949915927126695739880310289879628177363557440167717537303122897899178558160229411525885608929931145799920195964599504813647393192906876355039765536838091751613618138158687533252442742324294248893813977731041648036540630803462018183531523828430988820638504676733052651539461969258261942876877238550554235936735318435256430568397866119810712353255549753350069371406833477553830345234166107889970904601188334288716684396162225068085225854817791704372103708769257163622642326173377972589163859524734986815915060924634906056154936708184496532807466189141082563220235416955785174267500949787797372142217434446338926949991133160626076061471996843518474225133672033638046261471204757004537496361959592920575181984141313589223621311821227015333156065733592735185551495205934569256885869304350832320719217385223881053038982678218955180197796660356319230955638504113219514046785034598005266252868237637932708082988806016808223271467633284963421472982230924422038851000034907998340130606117354263297284718147580833965392344581073200656311215459346480395214158853742173768471190431686912463176581348488164493041277774957891101099382788897620746348627997553513126482742468344001554309163432548094236266442344797947360571940010699926483702258317339014795187690732846240673298911556840326064260189988522750717198703264248200052818623549465695371821838347027688350737596160793855088387416024042966296749130971744749737839154018200557906216536377720834122365428275109041397353182249621565854894890327462830257588154984602877957472759443076113104276303797112881800207827379773199657745403197446536697678951883014374502102620675323853586815412622415722294367434331822927065451176232705768614249811901574695058716083744968402885067159909138358346338912611653132296535928247403324385932200779601738010673105079657155959931915683252709415991659923910836904964440014599859390563784667308758460641784266653325635637880954537817011921097198870010642599067326865616620151786924922074462108042764698076962477466122327137915257851755059506799611585671874241172494377721050717397602531549360700216470806524281250518408991616648277552100676183171075696539081516985986065905787525732738284234483401038745744454017742680427352187056884118136872101756211965045751085949957982452691222028868944868493535465043799547305224465218193446705886483499610417039602361603814204649267983105958671111626677366943011251475470980025526878682912814676141229097810854131574559973391285663840922993001035438925292143768123845926220378812955731088859703735435451030586665423026101936997366528941919518547467397500018046324841076129935137874019756118302130742488324235667025668240107859531064899918306019028032762562909029632077606932642990359416152679488721399185218361309096806185404910450792258804394861599212739128721565028871362399287537401163900068020071749486490908106476086483296462713885600243671134074511911772379545738701489424371056674807627917907371967025510148154688150919421781632244701175266016246357437140418403021948520857222537298302648318083350311782320848000356793605158515668388116638314877069010032166033019632201278282939063997954222955495962887988533430509389368011471422032256429300180249776128790186927800016332650617082649684560826711991673265525313360052026736019320029193104541780066211640352663907181927524207963725683374066900621113474310408178870893399905173578676727195365292593496730296343709403823686105435709499497185544537289199848755429874467636833626147700111222794384330134191410165320646311847259279248390307025314951558656724524743976383783936127249727303659147995164503366250376356983395077768508529001390713049786744400912696425436751480448506333096001252185840800183158700118286629554660340394035147411918107175832268894713135814310167791028755200440543414583977674913187713618887336357265036056038278792297438679632232025521478845729585175474499046726637110889068136695047539382211699261517705109153827390863119593749185838491125542101471395400409182225140337255777387494206878258919845675120315867216971150620238087962484689398386691637022910829158717678967857247865772956064834528674654926491124313612422857059557310415254461963413861561051651506810500249418163124831914029290105476894171793415959188613877630045403709455714949317405487856584489948171721318207007215516844482116375091668210318923431177326619353272634100396023877713107147268632899954904394421218052369952879542419035957934012719506712425766371707457679212042141024676733545565637774976847175067212996135137167649923327711854711610697268274094156649555794980323713776227631581107618616432499812932255413513568902659070039253608889396536400869657225047721456259548534920399297590588445297454632201962221842973788647872549750331510449502950015815986819163714612587538233005193819655244522273527429518167028838550366966933801936862072779981694386616293884675316898615045841390942232763662551705050883154660822273871708211730176588231575248015239842927140436577892653933083006271508243174001568491971091131341581818969898385331561014628031120073518970140408014605422244288104374595104512016253899494376085972646718822445194598094264880501578378363142900726207560306959506903219029051039295231730995676449959497008758256856394766421704377125356717103016531199004594479799277972332051104599530071655881971434652628121196381587566724521081229543343881598008588507227370878917643003640076685943587763130996589412771757456081320990745770906999377538418130766408163686419673917039310610360546321651751797540403693992477466612913166566075686564084699599479022702086928505354477733082345963971400020225066182495100897594859567636003467442528665028408127159821931659353219701595049558197177347919410433563445320700369394817036541103178307773825653329469142646244026530828432686033395210850727645711100966044302332431675168547954977543128439610489394875591638975667440020060582598890738278878782236502010526707969995657090332021924853552300526094587581407030595429886059187459998522947779271527806996093584774794595599595368189734904024527507771467149378607038294915526837826639351833322337857579169709128827462437917060094578483780972243961866898467710927668121453370293717207850071238129640980454067978371682067996561837699226903306479429962635071086903550149193538177928945507600912320235012412488259884896211987115727750814084203386414315213869970703694029903590404341770145487404311152399202814661192864649615887155172627370542058487369169078437366137620911274405248880125681332581572016810208726968250994946845137395278517385847109996699939796225537115955125542454406174553989026392070303285411223335952874400239408604576229308801827843189308770007020551451541190766243288014056572953279638639655645942019816260182040601713842360454822948312880816460892082921928333307381414620880065174761380854435992082903516783825245430409286140606849807523178052056923514930003900403867470704257449491374575644377690144678099858329462356816594677263854808509348226487446506229598606938702860082522666981642542201225778659415817787799618487011648930757375871563097032628244414798938543129435411853084123875236335314537332515977789390533286587816210393336824333296187510651085463904173172631284877999612156769526689283113429571325640145418785960111149452192971506393734592417351567917367738155192603799553599531448184475557948700492075903081281067413899501431744005435863215955886856433916719926713704853668124095330435018742697505738151954493731765957693027952266211025649749977175193518679527692153397219849481903064107942018044745514600478378055811764498233253680664227588794066973197740864355387403513948253261183156312215044775522759226438036292194378856952012560872589589754081159075721862115541955813799662161099626205366103285816907232702574958265665733907354801308403291365795523395896914837551140170186212395380634372301930173872127400575017586771214826646051310690698571346585448799116842423878473999083809924366691712188302813727511054321456196767952035494292210298280296451811312790297407547969772274818609618457793948724176410023905193915252283031577795619862773853478421318500207186566111083111060347486077580780324803407392302425217372343779808214285262802245602393647857561387017268193185418227562993153563939702709463166469525538714836168768548010719905582010947711555064759826747844599343565755738133016531607490733989769699135471880296990731238555892211910463665815520411246922462313086156537525090150324608732700066920081033113106262105582441536022397062268494448342690729425311226411627416066851080821825858593603522547316970754450091323825996489068541854814319296359694707546734272817543006151270487779454982013794272964791730822700690763042664504270290736032910388582677359603279333007956250769719007732758645635182806009183930609616874934881273859537460326066741738290998971711326576642949442209043625310300328999553040592036246031591218590086489698733271818637897238772327877885091308348183199583867105752003913657422791933368809286468488746893589428620074730257720254745767493073891974248933128957080630152878572388815160646442762402472133831976581668319622587524872284437217629686792051593238156887032186097934032646608206458962679020920737968679603087559048607818120637372925302575946051413581709070219698617446780765744851073937018361415417261796052811465879831872296613399957488150562807302024228831546639078875393749375657377393243386586334280524903597448841149305037489568462425754246056390853351556127115131554775710651708099538482164738428562400055270556218661198111849351698368225767780254670533118743601662980281568915526112783822844002933866848788999564980533498724065019269644686200354441340362901632350163180232601135758362308942906979323142506806281959634562833736115786272813857329281535337218421090208539310075351021132479763920366544637847792995611975420304666126951681802373014908628026726065665221401733445358580627420963228229129393528038850830472700113573051408552173489137899794408174247954163171690541133856192427859288924491610478151086503361798618774808209141581417034402069195047113558984494598681849361164955574237395813006447922243766710522931170737341137253599702974321769447608349147976238731824968274876416298161582138264534081258493694280639600610277526711806857285033419857954183191115214851373090312343986101101457373339154728131954050555492156359218001867577586975913744711603814951519589165298177828588404408859693922998634739139423181008177343168986234866428764130889376308086133010437958034340676006758739319489855388260902341241350356892527184007231126256861342843552380475909205769178693729687397991735843176673901586344571588682941043537287045730168590707074993467477123060567930268295949761632603156513626009252403566609897487466501362506439114718287998314203157191377056714586026355516750715489874614321852621630109407470192490679732347063516165442597259737843152062325997471035292872057064148758533641510777660624334968006087180289875903864918603786910472746068171278300792137846893507878312958952179313293279247693261458265432281891956689680296015308615900933792732184715627175196257959288209516785626517567531975992169104958437523049892401145770343387463504246679102751840283343706374188102616363074368330942029056652318171849866472909280756999998645138241042895452194237086009002059463944399625748836372493470559068843009318391950965418299190951508486734253844909009138602641580269589825192726214056697481406310028135666656466715726816552192396418158775158469806961582780888870081902854302060584679700258988875034793538214756668921912015198445991622557561504870436119431087394330892204341199735307929956642318217917292358202611066808071168078797509349920359638437966861872209509077531541330945356305675023121207139869353094182362667577990310674348944662293438284473798440281662498160080746602630568414958677566432756907820954143170102537937993588247041569168960556771811799817433980056087466341546462557654868663389027314994610386976161958017191275122563178496408050128509667459980872573716481413472785228850089783925362714094886286803161087400380114053934940126134126865965027205350738096097401556110667235589497322097997682965117220280452592482319447172145864617039522721130929340090269964127565651081574033105127363912129189949137728806935111196656164096495679260752117002045831033777346677022116863818534999617781308998359309490348664959312854186135383158694204996010904290978468669187879729231837842683849236871225798963730841627985027735837640546192352093854162745303567349043895202331902545947670199953076266789931931344272750597881820341637245067166805030268364717876795781187992845199612953002383015794069974381877863599288681362166141247934214531076195057992843385683923664695909966178747933322859457431538978088679044543516608279252016164967559515853694742089463234778720486389697449300178482072431957911343099633363742777383047453644206205433373342426665259345902816003576314745327782550958198684301689569914269324044383068704023883875407758236798155179877357009868318503096149895173178141899193930596435222623773099853647409126221426265402115650716380661015074620958618817672901027344218477629211734620019869194897369633820105083997994129034012707863405144631450793685853190398050150958208399185613384283222370977098178377934049285339178299738586977503973948534741261179680851232783252737610522050911238514841944204144235317475116754735373776926855487285202973493886157526392977690037911173281313049184597861952742400587626690068607476611636152483073944237180773702240342683924212366883106711052894241278677001052975916901038134125892264208498268674473298948988155772533191678507513584606850666950108229793258259813761823361561614128931939273216989643621849580024743424632525693566239595746303159329724496328847774521932267052607138897390242285185114980501114270210633821176610819783094838300979299852685257941812465057314191060019558874031355002764973791868682985857883059435325221782838530227372354380370818381306887975925294858193312846965527279181045015507631221375589840756030790327171007502097747207555541367366783016795813453914489611810462092384950528299467814822935622030080396611671464300855472410992761514883626767684843337074512745381344175963646597676943143311180332511201797629997208048398988062550380793045442160237365988186064988553097873315808136772694356146158411607686586515926269596783763712921426725376037201988622819502431090884513030489997895484569245375640944172778709856784159166053944434033350307528891901925943492689201093290295283996966292502154316172516269540217368232722335037589174989845416874909859564618340489642306183863349876276379098737404635360999685606604143342075938276162211510601533892419776922266752615645774579222080963860488035009839347454342438107470183680539256164905804841673357228893972167226372611052923303613616748489020703919316831984360102626773041892501409812302645575567336891354229296935403377318715667913917641872443068362553434720256675948937757389967490843063578972066484102731404950053652543851307310034520300699676771153474039360698598431555231014735135910163182278794417755895721550020512177652217174861633959234168293088133738776399895901709110585716470122383843512706135919711798630944672511154062435590501897470527832524643623000467588440283393147277455765497211706566539460019695835483174709945562460859094532925129428264440904976028516280824534407838936350037731576319565793387693267601458792131324793518269306838406522053079878952203157632336419150244451379134848359989916195474974158702501454599702738822911644488738896157823448289398023515740695426421934477485734354755930983496654896676361635305377605973478491168765810428741710666539446962460367253907604713522620677900077636444382492910959924514548800758983300701926356456515238455135313689229917324192107771030138773179943938852897369099429179218756050886123992990493574301835723779122508319602628648968401486798637426227038825062551101154961433910056595118963807641394858162740420564013025339257525042259425602653131226844798362226844024094356618055324380834825242031218560325143210895242502924954459050840719508970126798423690088092013888166846214716568298119492120502694373207788913740320971828934151873930317059387890032217414194699432045398386350946430924457786955144234119660164085134702606126076870684795394118119093055595024681503356757341625855923635342885921953005153332046022852425160909745767637301436936605232046878211631783359099292992074309317819191772270851782425997124212190151614389608547480334241619968061922443508873898191294328326152121383928926275424375924912958173165273836810815989087610033540273170251446234178753789799802075433303503665362947784645857665479689721517261127455877712343005305902604458455850647855821332824693981265936569865228856154088226334757060200571185268430976161123909777296682302041139636364311079044154107124162524760999280440749707020897892094495382881316488692399393317841936599067229548205796661052744805869812991826526721651542102884965623275931502632767758029018811603253720796847919894938388714203198197585599147890314446214964016284468628982892145554090084658096522320946577838337272273369309951868259338300399012448722753912264991180721481389420478351433754990967170004634823202536188286309446398483579002090907899252583516509368695035893809533387996635410641722960653216300181980652810659832796617562375643859383212692972336005241657597130321949719690545394032256591992458822657679797332416026713372899524615022498481612189148695953022730101252731649324297138872999252976233859805544603285159995931892326062347637905651126696643750413309845691210927092267796607946732254137693556460853520016701668474325762323204203303235194474512919034044441056563868009051865049678959071759192863843157569772220063773641031744848103656034057842945345571898106199554852893161090174025197464392560747113163427057103722060177432701679541702263233454417107559646963389054884388290887528640706326173804637065010341600336124842521782508306611058368408841368809177223106599869433410991883372880379025698851281873766863125892105511076575930956709617097339393821550765186001169082946766371960033688937037614031333859495277385051602692668537168944768818201219891035011227931231936352679694935918629298022914292206869718139751629818812225939644987341967192542381138682434812568644026718442874225116702642792820082108343470627624681540051178260787736877641574568685710033520103523969209132701780934195803453487954852363780474989704189258330528001195119034893125584894089940358461188223337392810931037396639801465388607036948754947540993212487875074999902702413777827406735348542325646740820207744011552979899079280022922848717467983495385004285929111947893441135833959281293589636885463399864163304872567041485424719855812843778496291046675217031118115774074913356538980514144795615130991364700834980367650985551692341255227807077184492859065365161366250611530980083765559401091244808240045269590540207688811655085849377771003702211638796910532496401172250386149132497540273377031634121789594956767530503069549711345880855138175626390399356271170483409538633894496153418780207998270172283416718580637201687079888016517245082767478118164558962736741410055075904494986128224370293093767068018872715810396159191931301189102852658032878040678563261992587280205048164129227311791098813804682037209543179262801177888705839425870486600213331508942330698384497293150624975422354510366377275865784074188013259656504989397531870149581374740365368814009010725896790736659225010705878576563006194707698934651589621085456334917699313523599622075955472599033196317706627282107609226489755227516657453634643168615887894516778196803138701851409316290653650706810633890568639192377336717171655621580109542068108009822622954901652313187111009082186808485033012953832576222446585039839374642093018806503911287060433384502951858188492295435853180554776329697420897603336606960863842257973831813529670444215413585643789336071901297222634514043065159447123676596985755270009217557919584361198809329710101763674504678668617550348073484633519146135246715806723148662270036718843662218569184770459748375981949669531750715451361198478194739227667462462003798784504763348391766786984741031332945411618245657421978100251184942069027604839651504668901552104947346371934316075619162732367509110034797092765618105666535828419499373795479584990469861517240642749787811798613421579801536230760157034493790994785547103870188153561721162930755543281146572913923018900393761680352866820514750234569995422744289951420169162259932347120904393420014641953164641223273091750665296337055641325368549793737144718935291717145101887883710883568266601378750919819675672156211858730747039337356758965709366164655698057267892029659684728250531907160628708298454984439184838769083463632326574324186718503558294585403318356445046575706863208121522341411863364260316874683714884763528441831339184208412534257719549604213032896935315824689054358237991297578319434235747087601286880272954123686990973429974710160905140135638373298740607965627953438991493703966568483643996622441493729366827194826000532573371353821614029615455478830462132124857991690284905230453419584381216069003965508321939836804781231311379575011851993908416197603049701577068503652376814327941746231329953921801513674657038929878202799628521086234829028040254324303951553177981872236034789349547503696433404951340507273499088870004072766678183420080916271036363679396755587989255621336000975900975440941618449576818668776544042616142488963849831358086580241545095948786795421657011072805725007113481998834167936532905016169887170116551078766255219527388823340078335021129912689065660621307159737119238695186069167978930580054657831006324269817142330287259214900165227084793429502841185208203930675599916494588163302996617659056893364760303876829291812854585363673994383608353884791846060095240694404235469935892267844727494774746164272987112960023605792250350713297410161231327258886246157567177920397213206738608387067195371687054624635207098443264718446316518760560274152187704295215710459125181275082876948852885853657620960760975987774856046178551391297381804471409150129987864158352968454769313634984240341651773223705010807180094769438153513609550432790904045675856245747497727981841616339468027629128385227318898492819400732227440718918047053344683685449079238089417582836237773413537712140473062337244448337746341426002308229235916400332604207424278290723962412864849449356158173146221136496366146858373333104654776151402664642283938446271396142031590305029176612179105336372486442159644061133875656305265620834986057492695486310551291241814869924481370618678650008290109886972593017651255178493792022208369889860418468986787813525508945975800064642372935975705941556600544126360463473682397520215949234724849217978875332073008122805582909128683024179722150714002268311256661919136671501132550848988045452842921068779356689842625545559116025158284120212309330823626388343903460854170605566422408449651943495671428366224009978298691540910817059978295464669975532663646547575966777926241306528061603293659709681870429919932941818992654950242480494821019582528883539672552333886228663362752613313021525458837863228446754311512297716942769703664891647352905244578941408355206106109595464336220577669062205224544986491265210316819354329629330167810776194711998601962943560554948906789631291636287888507317612491000201935590250473053081131970450261391061102036215502608382852370680495463304371829962557443145845975643166183894912059558443187230984179778813291051530505812382863010499376091471880952789527086752785606495698606930846229428687290995760171832004868503153406061905923613243859183160022427903893335371910055325197205151578011827863955826542077763013285843161360406469791868296587459168498025277727631142055424614364563647602178249016826653175245219231793493063886021364837096603068600123089215922953141515416247409576332490560117078229315751228609011299413751029688900869345217393416840365453440890496445637470018073728626232213680644450256806456063558443676604176531275454135025527328564934215007184799716944551882138853267451844519037853860534152813503362049109884911559986749311335160733263381320648973321624553071579926812624657951549257399676836157146975325382303115372840078343686711632266247810638831499367199076441373353422491843810891667274825242255349120792578898739827606669643872612436321370280191169658590545607915831514082340580310760673685584955656858798881991095022508015065079572037051108183605376804516148019276585438048761129777557158861798740198889257847010379485920061605918401081257697867085310155724296788621358889341678685958374791940178125116790128659121023084206749153283679359811382869658826857056063347603401538480866422284307955908922781570896768148976208417346349696795341820859241147732443913376916973937207422556881769024553234550716482127825297116323515988206917634412565094933641683027261581865741796549700826365954982085222934827212537761965920076253398965316013793488754382193724437443773205487713762652632511284797907963348266933344384274734850918404124695416662859262753222655971071427277886186456490484323019689320121714056132915919688495264841394142904558730090741950096145390933529834141439475576071253532827929877118791944198420857192622192496331159005659934380323612516942142244736620766207461012278807108108528246930952093113986861804540971729800055250286110080823825172214597737558755657097029998019228476043453342143944515581258109091853286898163545291929088565481454701384297491332208157414567154999492924957729862553860223650978375795580314730938675422245423324014522805418658967955251936647682453088541057122051631732569880970778007439336506471265328133556333388461384137190630339111292985937516839608789324838203810094168858525399032305231701226367675744006377718505196492076319450779377398401685822140198165614344996609955363727806971143701873417640380722622342124261778110465094561377135070278369567240100296242776977037704592018171337385295683011109126625084256267855146369481721326674318260380914247415585122572445526360598853176167215052002052721565404008678761203111254366051271092334194181566265882706074944160910636485736643649624472782397798821230121633193840148024145394245006060168797996492674764576005798007698910913348757565541917993733937906381674048426648951936667577705732262485660269879609532349321983370472228686750574664377296340819365244504911406985199345774134448065716271211231642300241608619246465878128904261458247319153227391414711798004104686695707167191749669609885209540121551332585448882350652283992190678652702009073398708979205540627048585038858414334155504790195997399382049752755724731279784022793816739244543289738862653138163482116297645513719855376844585870964458271608683110181762819707977378426807123643384913802448694242671069967006768526651948830261524168632783825139253923485606263913788313258374287989021944600191655943741771168919266270868763812143413832909422976648852911568607046421956526585955639241240214135072424956992676570322735433662938888104713096076627236122086849273177837888451979861325377481335389012478326696441555708844119889978656145823747786526119552896996644488956394010322019060193247304230065417944712817682978919902991303976799654665471027366281568116034772381569462174261716085385932612134418554790806864243006055317835306503200252555794984196341892438356229285857881978663075883170978234058404455962170168546058675576909298247523204595552743266686262800344080532840539584709388936618432574313434625005010941356569497975643577972051302495055778765002214433392910006563138683276269462135236970329281892837031758342846961693788356628043350691900118603574146008499522700886713332911688202532864608603618382727160467546543076666565224994549143854085013211180419262925587473660537313260252155019054406200530013627492922931527038033039676865343467049113743345245472867321634495813943747002267138133808577393045537301467358667238818442298672330784043122536427704995350746347440563861209848670903583659254041070328030446633924381598238119412572440829009055264673373455484240012433216168852035407267120121121355326405045843232614773281838509399750047108049924848031111474758476773678594635808791644770029816444697490085522519591621997281169926000286296559685997325336103049312398847578681997390718426481855631450619692483916000350338231549061126939240690957304202813462441963979804044412865306195617624195366312706652754355970392646827025703701761281922532763561337854054148158455078022546487566656233499266428367144388534633327287863826414223262385114465290277252316787781131625770606244753542967414733178443091009800020640837302660439159065479804092570559659356836407982632087059290080970298913707348729777550135367906349943422512697756820688561337601087215893332428582489281002690243983168139559492749037986192562124087365957236985489585841329515404153494042943382931778218319220140682736600708395084126634726652368509005651784046586808753638814979158777486686324829915483930986738595011304562610549228704446969296485943967433385598203960752634762607726290304010622585643113053061791782275217115942289925892635286345152397437506966549378772024871908236568179872189833137289777240161335080142266794066623539261015703909742744646469165610676327333750653436869004240165503789292937775141419602810319254157683796896849399559494777042149931123962247918686805450854956151964628409429793175908132394727521635908364502707328726873063692772690238316581153173534450330298395844134904632231096874509075260080316239254042748394874484322817170353609207622406109121069181889576459735778992338179455948130606566947658466014783302088342864396351745838209231440615551464860843519226376418859569142677496526672874504627165578634448629015274158526178489275327385357097902736302194268627811746625506108502361438173442893241272187357522826749417391103798583567225609624841137217582306441540001606110078908812976555896248685186745530974871402093071366187456179575379212098069627575089457009055722128751819721172342525162008313289682300335381786793547516679839017112752841347436743319780534753527110611892122889941099801501001584592818590956964633485295127966113636483369882561703984150611066049081648249631491159628307268568111576137393839306312412341780610908436673779569794962148603857918093409718361019524301440415824833711415475745789817632296049792511752329080758824865250053945701006049119315920741074825885895415552607707810969587885105588828254234770278873484567067601568109030911788877799258817225915419498093876488326728731835659355289142059445009514647002221214320618606486975781484316073401572513859780316382296144479838056839100289088895750775631051946234791391074808071879154627975991196873109374067740782667583283357110247128742621468944948461917980739228226814835014166192622315661580384731512859228094372977599442442474724296836033646484564836353934436924158821042871233180544729116230000074878907645411607959699467844392804877464421528456951662482590783914965742969681994927474872153822731629502155878293267267670325131233978091331149707703656359145003975704940746287165939873176804872706553909220073835649455024610533944533190450302318207485161711848920791687499164508046857901214988503842520752666499216048848290166990386969318096976076172233096031489527130511785936175987105111129942428826221778630412197996233948942994122803993858378451129655522857689345175620314799598959067040157125605382106115937396235515557862183478313640592179235521673020556924012418459670983515961301229091212448224663358657574192955678561400032597845152194739272470598636702731432383153647070298579866847281438960289415517147703519995561310860248715424975385708680099858370366036279713420271001207046738599143419540990466127075016169782797113875333883188891812808264077239246758888752011341033970223101192637811534649938302147267754765240719664751057051239534443374549364774773350356554610117571506801005465170509391813554358556368177912053016540565863293758154933937261179684305425669233536820598020591265180882107977619355264228159247790919260960947682932095667313753656273742396095050697836130871994639046527643281167186719392105725177366426416549704068221824404742461137860313763874480726680259710901318580394663736649413097174146607733437028684018804261049026200426403326219899647304690454814859023326713184617753933337485295387324371876647316076367986261744250161495458634176001804329955274305262926854522606696250556533883565596119278443313066692556781058730841575746873362503723465610616041633808004522367858838427093096071324702930121747121761285352410835119910059766256626263897532751189188028724255911945330777946917553455193283504031316351851998886080280709900097928551493900956354418762925452565568747761127750567256224345990037279962515558994351164779380749899832479466463612219074698549882968201906841334882701749095002689552082508418442082971730399852686035471642326132003126282780245507592184149764717664408659704381079188762350786782136681752612861349806755992529833724357203775343109798984216904865275587636870738166799483583172855402326049846198786033254280507212563080645100427425739274666178408372433399602618206304635073624964573442975142482265126532648748215558107533687841563767734063242670309400927693897457618529513047372046246775585432913719102411318248823301131388273034596904758809901093406191349820521308118721896124991255288342167857516277366276909417071544356745914448898246588235899528322711271933197847194047696475077925311074149957468612455860119650032791308026899445835402232341226173205053040005141080906828798520430836998637441872008574269177520462917471805357389441065173883082964539112460784138899830876682473668499227398707481511891103213476470689133125896614165796272922911577085844837551033087617907880004088833265260152985906840354121509813542792373603835848874698554170616364804174305821552803309749798404817744656665576149958828652310974306876344614529623893451341820415803794609634595090936091791795830632534872345032816274474960044282235548017926561342510358834026961444827834532245115118746023848650046945068459691389160852333640007765987797021681346263051063778030929302181302693861748461941484664269262946254427807597854785198953032294015683271912919745214343354269294272864855981777614133272330598786507112220614742511473973347304263964365038707852935119323989694915371570000294982541490668886011401316690721453745473480262662049430250336403035085888226555354972562420120225618716919536100176037562854364408191748660015291516247466869898855154299481842391088280701075465476513080546929622515200623428756096605509353686627682979385305936669659448964464383692193361219546085624969617963336058067404526306970907644627219227569275432285564427980705211383348180335620652205830738860748368063076488207050379999435514808415121599657920526499556238936683940429141676813100415933212718270537734587744073484526492654936384526481781322367925238868014667213864478232021418413432399436648600504951879000856070000868420041076753228649112799539026536728195950038785149142998675105385394820619614418703950287952870786166203225220533295795008514485040990026708825477660897463906190358219253660607605542981106647716082895948753328449695649198220445709769961808068470017936551293427986255508753970261154622041690918037472135161672368277388055290137191429720921812571454863647288244590031987939855108414741060061953495897457881310129342112801718564401056637961264011134638658558821457520525150564200551294541350377576223436535686823215295110932040089903457900524532402430154218407233398140959868483241142069738625528315590516416406703397745975815151475544242175569973594254027741406176419759885003448201375957748080924639862666998931395081140950483754132338275827905721857431643128655666897277557397341907959353482209273129028656860753296042544372762103193347813886283963208352442829248513147306845311609838356283435143087737486328137905268112929792238050065609889825240445729672928752302997300016440929522699821577303099672658049070316417253731891431795767513490805292079333478367640878150607967738893982986396498452148703233016169867397604570424626625479284840560287694595664924328019938684557976727904870509361573250444421196030749240271656836078416717680605632438096190501867246430536847169189393200599096954274727216874665485391176933027133813855309107855094951449624261007463284800548629286643163626022137867667680336344458719161179826666341118545329907363578890675085158161167817334315718240191020809199116839417039075129688020444362071767940781982329018122788838948069244677923141928200822777921522064104555376568937547440949916749464311154470303505495185510112927679283454770574947959234752979474498948222822389622324933211456650996737144883583826608353832802609273948161611281604149641496113094627626296070127413063643758855783087873856204608154157498083262816719538944963725476143561674047594694921075852427322147389434275605766514213820496382645567415216028260698001630808160087980540756889781028899954523154695746167252623358241485580029770503242346759300458410756953423644248476221915105793274336289814863242549978416864511021479435577410183443716178428289299608352055217148399911009198188821348290005796078782631633295568312930911615378214238507443860338881910885451032046980830143224166800060614140388194504558112698879793806781043782627037735872388351192722632393947490249373450129882464764425341834198561549394368606112432654196881910464053340894347369666540793085334391467476080949972888825406043616831537971906581566530855548494729884315394117585901808632735770022682789850407975657152511510610908123231039397546673238745008954108906541158074647154365435139515333720119087569110990467289728721762486755430114523728868192913961387184078501976742058259433154126213491912613818308936067726447164598693170259139181532872680095394381553285529695182153063800430097679147859610435639540716724276308935613807581059780372883294575461966049226371414692096515485937276182597073594393480426410667702715799358168111783975319766679440994390977638798490115076150162398427629404890071852691975377146210695414918976188198254316444613340473347463210802249557377219056331306413657918259328613113786978737343242299505535867986582900064578809547645456229909867673530844611147720763025106803950686422732387641812262347355408453210576324793030005625668678617848278202583180311338059390123677900086112322568665378178018088601762070293146725260257399122869683761981223523004594305819572764978389092193030165673765514177797049166427741776262264426818072758316702598111350223730722335759012388776094665144128669036859441331684291824508787497016431772770378678445029471781701093604312820508342588543054546211931433429002914565383935935755657381933926187583023696081529031188228536333733664345340771744626387765672425552263401656645215065345300859569136091562452309326878663096736233215360267600678472279635911462087246797091875134762707353768210251168942161431908440428478104958613721864243547711340703740959948571425825459924537041597210748200879275938028763685827000538963285847866374218295320535795122047491903886685735747299592160772389046429072673590227341155450299908151800711011335056360986454242485695594976241140792088899219015780983024929490094852202619593441250518405275649718488916680461789389898499609542324717626257359610084529866656982862566766658571469175279770393260355077672706147024161569530758669277251439200445738126213187982440883131974521868548445708268500628679364172286519189590189253595744685384676732592633652505396470921213376296845478922414661282107498303649627319226765196696063209345117334696809962236215667151909990393813042028395568220900890858590294452579674900758603419491955407722559528949406005735124371048924832930340854903165706807649893218523622601015964420786475939561312976142584053163918777650077418532484398179244712780276319664001504884200827128575088880802260654051089527496363766484237342913622447410109088654189469747727778755307046007586623224045501360285167366739367587932996108250238229123252897355810536225959468129969123221508572339653890354444397512981925440488115039484152037942463677270201559288282893729091510986536235396084839043155436025316630999497679502657473241969788389968560553567025810582363266462876714446965366981280904890477916743930101083930582121645340904851336218683406780323240832155453888751397032137828251144094083956006908196420119840102859842996062134247876060109754371232472101240101184069855927351024559640924646316907644949410907631900094848342520477675266320035553063642161853725294817827788157993373552768161583466253491531685537229757875275693614355507371698279556895406093553303528558608859998321364262342236314744442924154557064576241563842228454790583579762372424667456878313630661537650096222689997439680848438110778840474472706840011178388915991167099918892701203532052865737628039831123691857793270966898984011917751195138228131744749966591234634155779444021145544453807902689603555758131969984012095100186992576682663004518223268278086797347895891070698204991916461196666009305510421217993037630990856234707883904267784825952744787179289544322569273275064222570336503739400746967189473905150507817371084155406924497712728766645502918766019613213919880823605638696453572648063346419005984636061978224663542778522615559124663841183438590521882898495584458649909562261805922949855778180530415872121699665563581893342426731985583314806681799226645835958758599424687423671984813696855811221176046030551090657639663023108567211747448758040118629022842766665173051175892286835059071385578140459490238288832203906668769230475915415443624067150108823472633082868377004056679995344971825510646490279043955455241567158139569032817128746189112104385214222489663396798962130159523683825245257630203909867619529211787770783528376732251646702695733239162677358835894002592708287891178752498948257427767811893562755933224285535423526973337208986860407954715443687315415748324714404363928366660085544984000416566564249597627995072549413089006393971172925040463848773534345826082568058172646950302459126885605399157856084299300443623698326454469776107989338884120904061572773826655559995756132200235374785604413989120682951919065010915794088000682358381284212747107740734856406582476408774089776987970504375602259678567394214830718333511040147383067309866744830729863481540389364588344602272567006241691464272121168949696572267967785737053811034699692100792583703106316197002839924811340941915124882723350574329155092953882878451606652013046007749739479654835702478907026629897029778362060688222786647818856309372010388704848109607620360304474954600819108029498808784364504861471354958957642937348967193526288006271753201991041882703031803690582361462550751981697321619619379822687204686014181764774235272799264167801908143965431670428235317228798368134715832431627841862324942001501320439412075879204605983100042803556304153365357654077886454269590852216560429880835861562946226402394548117065321835475386403189601189387889950980981868028513904180164620802189342875931211745538696770257748030143551780924781246854670731383994246546883366200527002785447936816137456256583525187295963941500502488505336529170081592676351150284112621137030428976411973479100207800415230358125515036091565204227469333210191634234085187763012956797252062588144503926748203397338726117662942969635176175213542172675802561454853682454523877178801927280640607954897589365039833082408249236696821573766973357071597328828016033126981384357713196945218648200333420099210360780756092545671377773124586759019151920256610577757748690826069797557993726860561943913388476009660049074069848677850020286238655077535301553820932807739901947597013428682653669304155591936111415121918682313151763354290530057838732192559678457567396954444123287387874406210594636390457701520445407872594422095432635940264423942479706759737163842007876629804486578033110456077728327418893035431902130949012585757321170195079625576230608122073328034869057020578785826899201595251047776193863903836516774083204858241440391534549726788070089260307287672076332999125304603588748117625756999137976081588026670767900235366742099184753707247861601226180023683222296654621320412890711195476991006882264784989700129909774452029213648004652117037548027958091125698345122256508173844105589611266762094198375575350462079233234900288167827659659413486241311835562937077374537623881608751396350164912231861388293087240183199586959083117236311331323565360325518904852018206689715727070406535186471786722312617748721021681454146973534817638612837502513361001544790383025806377890504588387575483831040674443955403636597156332441352089517072778582322859389621316484857952605148478574232765511580885573152848724387070180801919781797314365348412184325503245191315255350771585188541240746766672335978523243058876492886948267338625302951131025015090928383853824303392450323283891502342049158149299592857804024985945443377245302717270363348472434645821701975911289728396655336357300688089903405669445258602816768495291532461688691050817816660636607578391033765462930865957569454267339722027728675042703829265225666466897276480529207175309998600392863628537480491070356211333133595523739191068821096177971558376777367346394539531549969383990364018998089300801245713406405448347961575223534031608439502269569941934146895908438920105637661796432751529047790848276797426934588839543032680728091268343066765813525784588965425009757915116147533373628586326948719297720821162821593928635345795474856818050215066788280699477195859911042571753845572459785563255602299736884344562086069483076111848224932687763019472960542216380221730139334973182341433408014304338949386938289460906917333914145801907397233856455444461343953392626666580841608982667166200810572273377210010056269478113644693478091401755726978249196351995002703502934439176423429884174952998486938340127311572321809978469884819876231539657652930635929688633120179455288980724156434323242120658004086873636799369265559103451177340534309097775847806187509236002099552989407356651277950647011163080148589296810327220364850663977511199548099515294866067860849125181610980941913478551397523134347194969971887535746978243635410832522168802459326216005449215520114771794204034422756128824088776266436407619811259995640853064932850741885138956389679328548888699408192293849987443302578932966484020550618654261396075876016327228060843929812330043760993809907908379532384519896128231918638002497789371232169568336167957396753030528402773074436476388302287119443186218000818915731409721530297169737771921475301647362778381907978337059624337457969875948436708358465889960272588584427698335425468849646594441659820239377041569380462571391570367784199873453684844287924977295701431930574398726893755657335802663706732031607417851575768450319534284834923890066441119597581104990380759198566110324042401270835464621130498121230749946788931064373893598108073754753123016779516869192728006682900741765956662342932755732940802216611011052290622586366895025250905314877823919250812976817734982031845742101450901062574345575054019277544026697988219112978914894279045429774686234965797123392241645587568737803000500475325850900067778693778338334989670787105558640263375286664245316252960327851101456977902011669310336664066150343639542253242917038547673628714448929068068568668674900550632723443364284667872150174963421404647280848293252031061487340964290781454042571843459917875145567458147031745577097929004913638483530637761579190619736291740641375338541277039168463004729885811354162436011111150004402508421872325973184114908341072856992504743476019600058371294649225299281568852200190338852549627189633843277969342872359429454382260009419252677093084825479216416342674459211147935594559477856558545904832381532750966425133842421686882576711201176270006744049465796315879246836712031914906068829551790953205843147850449785609165773861026318216941271562127327629570608553058972877326936988114847902174488954687911520767016776475587053310794252017037804851166671208844029478734573177759896045864835095559752655078223831151086089353470684548414756870917795730082041504139333931277976936536597523205365072390842332843711590908209392045210971856541566756674904448320339473535501235268525618386813881330266529201824769553065060003977615271178472915486606263238664967784898125918831010399761434896206385651895006500538404387002748833071476488651397966121981329885146564139898831115743100469047464742006350584662382352220989759644372783532041882138103428019776020777602576669418289661408676145746395207061728956553362868649111066292378541427886557355457931463619528232171786368830001053328239509310500411656905950447739653181399174992928142222198131949381581941399924502998020948201885203388846097100802302174540858093170295539732234753151458043533434466196388586995664867896131049560390916136010977894061753005612191005579087744395102001583668773061843934590319631988084217216257806482014325355571803330104243638462471109348100635101588716455603588135428931634955114704818500741356755429929064228928701315965300346753410785489363187679168355381916915015063000967675174925292237805724860185036642157690465053477120755558754672097076215774382371357154919517273718409490503522556945168860394551434529891207827217139956377469168441168896060016810188256256619186864996074415551661550722097352788814745163890690407264015153030814071102605729393832516226961513934622734145804773493392027648656853233632564418848358095667125761980046097092742781749121881895458299158749099810809450823825212434426892173731107195993904483960209621622627261691948805452794686721705461687146089819730176435487985513492389642227878138075012994130760921863186073918717165241709566235686338158583952081738307984868359154518695836105591303694105219512437506705599507562434252746242607853849061449755405308020043812903563015972225918944667341582887842079339115955085611987966314060850643998988638365879341221013766850029224636360772646894070686136814814144784750918894998173145117194874797808118301596763800519681767217610394894091262445523482240045556213894638947627218208438360632881557873648793393255358445846845022567179106090433837229283839920166075647311502976655110726743978226736232366887279150829591401028256007524378469605901598655000049627328208341985250068484559494069754946484379663259185542753026247805830642750000755412502872282457533335903759233579170932103427716740367296974263573748188124742789093333654027904497456706669565434042692365885175406266629196179717529803498755461818513981926601134073865023157247372087826904859319790660329881654437723575202137608572579155599981511599245743870439718901106079211138057167079641314186441912885305538452345764009260675658426166459306957830055564716528799497345267885133785299853620727139112292973246801581145150501139291840098753848883079178235147676821578186072702720720202026643559966997305769192185150489193894468471009110616576420878561681833464646997224874582938169848285208264288921541242974412842062483988215203733785542635563172336779658818202774995479883311178352883085055667645399432003021947145787510674087179424440866081588666824868911462900313623148386565211881375183678946843810220166973674729227159583437718190140110023652908828047009777778757450674446885288032937245232004922579065047900119499498967292374117961258229698893004202283397148289643221764296698894945609587464545342225517548519374120681850787228995764080032142028751669101537260335282388808516332330662696043763643834601119836600688375058099905822581891461323057565455117696353849018238965641913947308483857595682776656255148940346751109903036366328521182648286343219114118432913545613639834421692182164189699240776947351141498825349192586291212212732587264815111962332007001849541185435475665688730238628162761553877605226541895905579520506680303264974755407023533420607189496994583055407456696219095468270078978772400574771879884821431654992071711355025572834306493683980468210471390888738960989413487684570880286075167914286910246702898084042562299520785387813987987354174321580148814999047978381114135636329569771113459967120478467632786969453373580680928797181324492152673249105463019141518006087765190576640197325429709613279088444593043352153107319052642115373856191115568071976945418573231713351408275798447783005586744383151892420361244859803832771728546992259449871695615849050608851774132344716983982318414724218447401040742405681925948067614794407692250888938753662376733993219071389022783742168349159151797103928003384902677278039316054541008894085249026742127192038706048718685443353381547149757310702505258815836150968716066888983900509564968395512620774282935027251671020905651211402419886377319244545130466653522150661487946747115597652995186988507461308065517269866028695053104410220710864554969054261122422065840730732985507928421722908155974347775561397583764630621867172275861807987150135153091607936500366289962936745291165651466246430385510278028851736134725161392538635448082456226996449484431201028825666620196723263433677223487200660905396011495227425599023452596057020146892317276829099454818859950250484407142402266495449419702353693068421242794625174782981080255156869374898814808275447991815452622228155330982772518810180321478105892459491998620336264447415441243950636238436795701216173152525652964675803531235514940321536648175644609227770232159566297135658925417141337990911306608115380055242284971407567598248441362769061878087410651624372099518707795597062871023846216498274300351619886991605571463139567218164031426240291773995324480413312305374034303529395634993708816927271194447367334894501998080470371677510561189354634631122304271323684104915047062708326494176023931532204518161422958082490856742740088058605128429083504320819263950341791248646316528724150949279255394361564039653623371257138540047685185812538771607800264400731250411005596193004379359901098383610849922478724905435838447160686364688938986031999625146223627506720818858656175837111457867217866664043676234896450808411313679057953962146022804541986069972245960648656635701198764016611563365320081064776899438897113037529794553047083196359801496074723517377719886694485649869710847014949444250467042709191421162810881562695919621143522516402204488205315236543159463629912718375940792847901559995537322740590344755494447040430532903725567077488935533003374116627141486193433851091414633492838956715245532292109587886642195457797907563835508876876691465435494732839155270872783079021622016227830278427510154861489214763132556431332988235492885076934268324026960415726665000252419647923633440888173705791751403046682093935972657500071661623679731556976989728785394060646823322966651252130726869432700191575781398571707975297900668325748315655514591096050500193395406551932001423072779706912358249261753047436281743512868515861601319301075225599251413985962997473042935824629210415867710222610709305665299508842624592792143686030101847169545518401829834012879320284444950071550700518556563492813018149760336076241875819946754347112386443120702758090395982161920086644404995052255151915329307138505680363026887938878065045843070367745958385428697465803017887712108559747381819094698650336536033505024385116091294315409384204649895274120666297201865232176811008523126610233621142842323668763397842123329548135014769634083357628797081081853132962712130133559961733593996592234189200699745033323980938066502233419763165246283029062681682615014992745155903983216859458840195797081772274571919917144179072572325999980680074213487891795028283992568373308335246052553343976330140686321877484228656732190234112704660005054989539265274324878374575237564790873639242182351063934645730407790338791287233009705524230673790119439333151608873305571709136527357208450688229590185906827840898470718518908729693700621173710318621613586082622963178158661675733064632105256398296918684153692559140331048918384124662183597171687816162734551637740703490566400555846444068391099779423359538937822759044808415999190599375961326121506590865844659125261243908707410691558066389174379382843103470726259717266326393627962658876521833570177392696927272973944272125129784683029661304250879038032193675433393701897046617874833411635444040661692263656607360353465947412125312941576369658043669837121241235203516894406539487458558473498704666375574504277278871004943892417824955453537711913235587646227509520441999145972802359746485660443563231124769695475708810144170653856755703438033318138137479513219622510935559259328521266859348203785823909338688699321959033944008036157063815648557698164283166617895851309628182220707419154879019480135275215822635207100598578340203571416795918510201343308332517311256069415858032160595150167864722413550734246988685417484089284770986170052912270105986865792289790987287634609265057701908270998863121916915418401356794974367718392490617985898401863857715751999212259400319200075959075478099545252119748270286441433924432835743078704345993960968146289907996525802361429998806217296944749903689378577098111289623913776869783867785530086215348992236318890799530102346487444748745375272121625338661804098796813912670300346150601464121338434971534478104824786481651004917192769212554282464783668304763813436763441481481654149360596963157369279485830782246515799524679195928655223117006796917985756621628929653245939706865381249917115543773804045633499888043350277149181546679512760583923473494177981260825144266821345322990930860212424733178430674268328878320590492650376622315887288414382101257981251112155601845681433797603512519974809843878915864427312461223737209873126043899913680272461511290643874923635019932472150045075274270072841229887961410161864807134804909112044578899026196009172930299204877233738390511313539316570592757387586745729794262632145266431238241815905257951230747684452375683437765943157940681153375073560652450344487387565300674948034280645344451219224581433921744309516263688027284421475049440447176657010630955210738905969551913445994825465888142155566861609402388363205784192849350770680542617456169370147143171803662399333952798441872094772598514057653789186342948222368999226127460319138064219059139890285661874830620729472348196353763674492374696873263986806007050946670608493268316224379734482505067816194779984034201335504610280727949170958990238359204627846404850836370804044139749109284662927256734141231633310338367440865079184300352330156285690823621177779242409506474521600594936630454668161771079955900591681659411304352193187134405824523164812303652166159523451250946511120400821754110197832690525567356341273790860623906124522295126363940251345179319181479623420659775087540277209050254819107812809207555465007297252844738965989317789538062986915768289290846634211053035088260121919038639340348335192825630457809277744776453957168593218745853654218224410143976701658129161662420393074444271679987309421738203056723288290413916975877471203911085813064365683383857701356903568544512543704089175487815594896788214072010948777845488568540984327389319234308927795852006479199135615980894186584103457054547739808689102206696012361804315734501243584575512873762426401644509613601358176279057359648684714394351950005834803447517176213948288640181956529110621709615687169513537324689422893656734045231023711016784251167120446811870030630258167024573209034273395059572509044794535617690346590285539996407441010992748372304304880889418955702951501396487185707254811043148818915547069192976318125470626586220918080831567745035417718992373063504682100414046776675070552276013854738770229997408409070843683548287763215750688511260050483598150098329484292336578696388789320646200119145708553486987627046220292181026669699072076947110879853095469533218769457829308592854052127009995553159067469250777480203331132089110116551429662050332103217595410801987797219364115109334691000858371285708008536525592595921219555654585449160061717844095564473573306984688592678124276556862539711287315862986410705735843976050733225195138451465263761195342384361356231931921671001170075290421956547906085196774140931813146545500219574442870982279515619042838978006335975207315253571327854006404628195204909206545739144731422524568367722365840308632339287038390587201885989964569081720640335664076496011838585414746465281775206019990198208559685603044594505413287319232637172908050555975443547469500647037517775605474523336222023756916512511429081954723195567868171209960575600253911302914186805601481238686431793180496585234440494954681650358777357866065278036664388026065909547392749077896983843906913527237163438775179776111790897976196022908493634195608807161702430233163442039863580034895620908415977654428895395786305840509853987262104098042034993444431824854569059381747714659732051803881863754793560639563368586951892930705994525172311477313397454724793232667667402539377519744113860194356961863164198431724855783964632275340985473423785759783544869691010916816029030839442585077066642367140064343457293928572912791383807437268360263202304223456478084477883868496767916722251154591572984815286594308006381676134087582486564431768347173140324341447998547314782180845197837017444973267311851279435933972242243935734236951106745989508636022432988540570009148049957079615175866222320537305244105710150314934797038636787411298664074570525142258235968244414783418254782088603183638482610305292425426772734437391704729380130604287868694438591664591063335742415712687522840089628763214752795191992443454881025281166239275588376501644875154647229965545572563665095271888962244580923933086694740641761860658809498537272347801435668908085591887657651119358443285325267929399973580748562683498586121800832768882499579296038105235800435976153994497498456185219859749891120556087928646144910322007197210363042157405178364187245398295605266033079332889346381232702586560229710093595777882875168607393635120885657463051677048586360188214519188701537172402946686046203209366149250653054731772842548325388609559874899173629527601417852309826339654223850904620408482756453711705842795229450335173561302146806450205036049988789341642361109979674942256839883887980194319282476716743463178980656253184369992202840300291674431191632359009318732382923619716198271658946191163973365897199661452149407079623547310771470135104049513016751414685491127912589785377226426907518875206811839237822678897204657954047323602061389196628945747948760630600856786812560794063028781966900022788697803038028383731832665386040990970774026018218689347687857645444748347839358727134821996669181214795510821464307631315926822859211017781311171287823908084470241937025593044972674587872356621650890742280212204528526744458997023185843238748509218362017178598195461543692334499976973170350350070519530962705586341916338028619798348239101936220992266931546067968571565422230925215439506395660710796975042819753246604184243685481825596987195621519193625583321081914249741434708341326912280958158376391979882050640502428540470812604921355034825048476783476876832708836330575383207141138108277576198058237093995483970024300731475450135933351647070025560151077532659336671547509196071800604463313558883936444088811256897541025347277969299283935569810518307525521587442216631257930311552200789208396957998974597395650530447717645906945209754269202548527008289142767435083077834818368975009604940394431386782548177348758492226347530321595381630259426640314526869351101431886421213371299618099019734999205767082698840970785069841086960929869826034568272182601093697375073434967411758208169852915298206093103038836282345771588731573512003660911039354382975986889745024938903774008100335420894305433337821488111325108399264245007590839020673212611412408475581645244423456488648208229150375872930937285930452843944698133648451074302085293752683710158529751420305648080106372683571290988830633426884535198185221659745031259391858520064993263894306436151958003425267190145164834445644566004835349656612979412339502083525012285284294453798908238290558370996935134304459302855727368981921399116757206309787045221767040871407152927208535217703175178835491048652846488431128261704870693707627487842528402775369220670025393063284726913501139426547458164378826034183155741726336454247399992967574400063146056897408523089610140108500564296402453128411936511616221560669831514705182444870126267679393814744087005669541849699287035776302942375979669080051611307562993512872854389813984436788770912989865262016810975424128918504756400712821505591939677303841282955464143547300173142007316880119948943561700924564346285492503159569047120822200974657867328543762064785062124214498806612747613252512932098370337560555824140664719067124847177076145571645995595074947976596091981739418278201531692689791385330858705658301279159534675785198872329433987264196688630488527381543915114607191745516331795419002226929601094741325568957273452871150254736425854903855420527331270107303057228923141169420423517522857696517586030569073726849113714816639874139021031543570043071962173348738194656250997580144185921101807676384900331599938633744569719997145277444193888778399700477618892894671704220204485160563047888890282614825594480521781039901576086796071163654129865293630564111214339290531089252704386452352451867472086282849702769477208208583494068428749547448511787551476643310434684716122253858842573694030762780725985941810236993780959320129283955380758334179741901396816765555495452962371641591636352532213054395000592131748051384231724837566381158538552736874422989633917647620635574659540705061404518108480098538104342549135577435408654988662959538832794224643700325573574464818033342499341645986853524279098565918056212071747361055167678834280626500494534019828934844498698225054462879483084007026653908510807519801182619803507748192809583408933309394146911831152748951962885957112309154697294357097304046422472863293197861791662627455602367657771200630563996088715190008216395914766987488495833463128698789736047022710267554045745416205437622704343826103996675050037860522390629622534277679622191648020090914010444138723263728743962527342939446739406969826289591844087784920766720359616181494354236881579874287113389760141224655036696009321581156242640364310444651072311287534079279302240250865811787634721176767273718644949644795141993717242939732159231568802135128926726860780545211673106779112555541854273287116660193216505037746980386400572995689493685167550335846690422816397212338148318206594031225084255597745219403449305279837526560612508929962575025067224055381429882135230133585617414500872623060963000447944261629518423637574798617647831881225209272049794173504709985821141777498675566258284677371714092713334307457030276144632940242416317811265681789110283256155220473936284048974419551867452727710261035413321397115729242815413152141540407377416105092838437320557546603075160339122432928213302792388929236939783849609750317209589001607757390853955333461113137104172302907099784291285768490954255173308871065970331350289448421614373774229737049936496882804087238278838609708426763954825294566202993557184041783837924537122608400204240452097004279138101549481751910314111395651571481780480146811848310632274840451694104607558133074382846198102926011341070880509416846819343248981869437295417927831318351240571260143212037523337637161901066941408564172361954509690682490117000850707639259639181938872549694506866704944756845684925404841581971985296716244802268547702448385491257454536504272317277255244259656623661216656483628132357719159083406617525420479019649177762347481274146495946274039828751392163824337033878649265844156989779018142051022562380496038419962067366705882653791591926164112697681412542860535514187243531409936879800714245446654200728974155210953117042506713869430185153014883339805145459442403852399740935268426654537320340527501160968681262280940273286809345875332959321805234979046674103497227744463730102865741517963245232178971547897241512061468353936477905026718635425498965528653613785191716853222312997167459972886507542745619838523551604827393887587954601781647603859184874186865154813435882233806862238362720412725127555072698456260118598189457600294753580418037998864541642949465028712844866236536676104352239183100418276830708891220773966904154547131244183012045054579994821817446804205690309520238798557403839471244449434734090457055012707667477040849732192007837687970675644369605774406260647670277045146679654375606723857188979297435582247590969119285052042396742191009565544977103622397446875406789320271003697662494734993759501489421584321835785041170442387728569905469236354223978803018621348278869381612928813600353829528808517260375486051393395337659414279608960431648303081608127496011062390845094137485656365305487359150423152645496969808210807264920203209872280855261782755643875359130452494829531876718156769162279396353362284695536569211658941220969480763020619984387121551049773491427822602825221299734995305542924669149517280635745737800677992833921077017468082001858653961761807035147570392639123850818823063805471403033624476813801702455308696031256267093856435945042661161438062633258444432470515095200803217885893112591840706534091505167928915621152405618225813564557635837709055483893123675880683827637658870013503746153222199289101290818839209203032637196179482583101447908530288551146743364821484407763873060588468550758487221507148611895790365327169494044326008998578011433644157603827992816402945621962038023637456059139099609031839711430713578626828609475476062470031354606909369237580500780752873740630328796651311637005305916481070103683168952163841015863400263356157869156233789496205440630097974461508420581767014612835781484894179120473760619093809633521194667703515622020170522708884023239315241875634131211166091100923381636519863698163518743471499741064550345281679624595290077103291976674576714405047092161516618375934986655552684562532018411651168238917812071582283492325491308112821221720926211372228706508397691625484970877948870709918072031586630756409306334816891499373926982354860946546380569657527451400680775458739330166205258760879906290468243311817683390495498700456275458828191610112055252523927432140486633850497281425811807555291357073131850721985683699194177602099938693339354848935383806676296315397188427542835524186208234869657395562888832742632238447005207228493628420536854602174480806085864086148128568686102234473218500071970828671371211971263100317685060775491754071063962234171334050810668180757724140965857037653251120689069293770762375252625105177095398477636551637540883594582217093516045931432869817109107553748220269358871043012697639403403716907616538979311282263093892782822589233766242215428267690262267624884185490081766099641139142147272253516915327272129951688029203966104409699960809221686605241991789852453104364691987852889164152026355989870497642671086837279658007532024932059541112083758304976146228007160317172948128791556256159288112415320669584710060212344187030026057459399287941846734807073808637770882125721466373414017059660982406708852036823895577106514174137237429995020757909213445849635578231175030187242440426960576608540538295627912598505626005900352735572024358728569576926206818402400920860597114354915256601297319811793208660593115956179117318263313810256971733256420905296919197853506549608636230081618868416478956571707934757657481171281454896709313246732868512873972072219367594467055955155330481669601461202814718728815484824734609791100677705015672749080912854836162419967833710599650244351775159731764036003498548027236304725234233019934249827325395826473773847061284141552886426366088700466501201101668131876319262569983637156526632360313743766080064536570217495499937385836183352575553381004987152999352714775486956192274864507278094366184224302241720474073555442152869774942505416958824996329801924444067077590653021486561255257566058706505346868949029553376263577067082008542426965853090813648785244948378559307061149436627168040887900916666484185754989442546196111483379895363717906284236983394471060108293296181805963080556958923393831722715920042267773305164512507858557625274444961017170573159425742627981737519220355985263112793006999570901067429885661282380233781657310126875138532846179556679037428172989162735073072294142409351188943337510762458166074486771313410682337332459785172250146387951752496831963041282308386574059620281605034129337564752068853094690696938510817111370890006950765391444565073011836653825438757534054037814645721053456503042570542342153344042927600791714910433941349326584365576836413313951347222530475757750941332024830938656006515826784593523238454691793635234760782160859476704190049899780071139588720173720334978174684851294431550233505008777298916469426571048303580288622745187287720000317596309397323856084075435589704191969352444082279933184057958562077774690226168706134002371510831244706171574234388420082691659834032488649242980356294304859636527245767603340633502762158525502122847838034337572203977362934748463286422578827481425660814894156922446126008481061057753114089058741327281552870570790198681984913986789629249727805929127341552494815616035630737466559414178705802648416997510488455539931533958124802591171463056976664476133704078536051756825669317326083850460285151458780743624076515146284593436285934488663542586021697734076287275559460250036840157368071075695160992447729276041439326348571054209783412174209874195895241269748850106712702985923825775719191143883938183993395740463087031732429389443474640517781594952837365001137996561637064605031904635452932089632943001259320270406711599940328273292956558629755431200775615697644474155961184283253662746860901532108243743680184484847459210357051595302716057870329290807640560212887554181884775308604600909660705490933043443315472543723570761680176399361538612262833416258724579463045927337712608341715646800311264716437844693066701276210576295996678723631398555087473308911177266757456724981944842639882180849374572826736968493902480011574772174984814372873841351669481227534231206200465268847650238803375459725909388701899306579920396573556057992333419724037572186952593236507353555083060347755764643474293143930359550059874412200126560927813986126146843431493269259536209125708252789534905423141212339072752847296292020649988491154393924611412392968264818129080206473466867415156182345853430173526638091502361880342323211475149767554555197969613075601494856999857981468456927921459299412816268554745966841559562215458699742247124286033464746578365943321712329062637492007440154251758996525775344502188183402630885066487291223719523267693423460968492728964553336830341995529742889657819222716750790842108774736328490355783241168429996891088358245369427145378200699389469464948211592914211446800908802510682133817437404463414938355315780516249821004376964135212666873440490221007160243589010027061655931539450989440931113096501520489817049647287268779168842476630827504932466812680411511285939415984918156023640856286523118655466896984673188356148539157853906378125102684175149260988638118164854305975735836576488825238957043242587907352889732373812701171961610641107653645980985326091759586165440304977222335761578266943283497081628380958279109622522898875921838184641598610043322685277104360518197900021322734482260653788512188434249068644967494821555594098525833945388149069212932071247072268547944073845860422571681941023946630826898066318292942291841535333221800194515000180359185736134707761265315068487550966533431207021282051519390183693549566573711796280381890269213875482705571913799123973347259083580733208129802387011653001419084115721324741669198929454019503674428822678385353989317860896690158878576790477644230836553641389076358379360474701621954801447930138828928107816857795973094024083881266626845473520720311394162466147781313947939948834386127147124416095625105655655126637087463841324088037794082406079839760940576904281222237999209513544345073781940723594002739565843901841347400834711850556814002592925262952794039385288612194838142936918742661911404401179453989460071087833265986034146759937735284158223095771362195247706577929372450208983401106107402730298935060427845552867954756264507063631113183114774053528428936748871361710904736624614558492847935774635339259383509963680821407816057129343900235648302585631036727575251367356775790053023748082971414313506671704286461678632547175961613754855791480438320062675702906370644006874733976828442097871937068999508411415586582145757226296583058120935416985400607481890855378479550553998897815381903054168397378657583371022701768515691004557249549324104044619194272313586238004879854258588197514037985524129551700952632446221827592507950325898137564235878876735109478732711823754848178466868159530997217608542735690416511432959109140572970506138572041186093929787202897916264994571560034847347501421646003443846822249693964975175630573921214382248783800335147343062022837158195437971096602553830402100786586722508899487231967207767849296338195419305621817529058376118819813283365334059193607661184731734106439712030943471162668916793201356448158348534470832591855118867782848299789514462542324394827965249139414424488839476652380793658986735633934077877040312748873534616427628544411683964416330695832330427041321392859405255731186272883757786713896886790652134635501864731343966158004073632325500112797806226535701712744850995962219575322746121355164889922926539891761048977297580538385604740951131723668006224216827982057052314504188769819325102762052478332654201905410295596498324161368042703952373381181015169736776618583248625110399958312562167026226426975907836320731978133035490729102188303405204006834377776082824635635176276291465488400150906704242856100549130140044209730308162683934773311104981690498532600409646340342989960735600197785948167777374973403103114140981535471221947142013808446066894601146485897501853099640301847033847307003608468420383582278740645068605686862223370175337371849116046798191255747207819283011878900406533468964684610842121453675100815988163291053572731509484280788767407210628431196270960474871285459232279964053924388852522441065100667920338082843713488033442584412721844866088188664787412200606020408281139400082238499977020335520763333382702850334614143090556898107855036469539836955608025213863670832486721161184148394876808070281525568867053076297860782675464616623700439076965064263859686171302817601343932047863403131759225929982397736257371925971723901055743415632681348647969114812088663589393878639659173944156322807122708227864925479149907416995662771146559668715801870265094517925461200025512848074259534847623666421170005137501471314121907803000678135706889107081345492965736509924886153775640961456571517452486478223819759380660581567603829206348957632262793890951396786017742473630731614397536020259291131642617442435692703540054485816974885632765556346627900111058875376969442986973337027518642366185277594598329323159153995713531121778163509255104942877986590325271001297126053615695636791211796052020606170276848094350274528908531501561756220593673699597448988783927604322933267641976204915610223575921640528466943192410328368105064537797396210456473844107056209707762215488524077941373731811575341310854511539389841698083231219908090108360767932561979443992164696766283693762629890124779381416944534877406107360822485029642031658500780798994003805759599892421979711999537623048881557167419385369786409907724549274992346386233112116091569124424926562411184099971080576785928203610132702431404490133238167722761931860129625572753690045014184625907265129511065186514242470068154057177649586571074629904812370246197245965769414879106522461430503458705530320595179546194358573823083947772344672829008728872490499210152270623466873273110516880245030066277084641170792799828997670864931975643688684801483089913288250543801552043380922412426795788462848061871591625832098515906830852981763829912841598452347758319928131463630906845172429397270406707604084531839149544175679998158555428265478127515194216411171611564929582662029434433026374475168507918075206509429708248883338730667504147037482637230617501537769076326937408912002369195316146221422024213002171887271227055297325120814791587470693800857505377362850580048699855856822559774004754724629582738256562087533327786963719715607506958991396289423335472584032024055991208780340642983144969182110819460319714607087981892377665380133830324945970545506893708911348174896676263612111680714007881551574749050278236401774546294337837707409496647522830976870428557300014448376666238477986410696821937940995656505112674361787559281314643808808625905510144188451264669256392457229435779568596655529965567135653320732779274911819785504536071401505285836199738881416875613556382939375201172454869561112813697982982604295166270196687805068705347086181562841841898866213912366545870005026804425829881131189683923155921377312023711093363950519546545320839700461231060726901418434130949254692809124855711070609530681956723278790634521530871224343408593627053008224472740455271869824111612022965635589211666222021481877791564633869443658531110966808734817236958370853037404033443405581448048064950992821366650141570527772515711931664240128807069300211801864363226894583699903832455751619896893076698541602490734445005459294943784078796372119582006456563873189283507415673466035392375481177309230265950486901410190690498365131540171048939092742420515060551531382786271367163387229374477146347625171358242155668061236454136536100134473302510305825969859784612031308645096532886472746388242133254985222086892628559052462168159302334206329609115091543392795937971443030978742101425563313428081121917049856919766549950362321223266203742852740793676210201424734415169353096566722311778877251712356141875384262985850910323271763680763010193191404794766044759013784608626011303120272731856054551174759224086819482117870066497821750336720568560448634497115518113836266983487171464902028201463268233771088780190938978550176796574865646528482620457076895954376347795755718817377977526650229131737769505271382420711420447714642073840360963795326331385950436242458778808410751787975405350610494115944088971236344336750095449932937812562188247483325903953913338793305429932556796809534015578756740349148505340885723369849588882181861870861463285251272139949442425860793293224523702265773501526184071612085847996259389415608332125709543729384242785198090753700526134925960907285124237047370398123151429962689151824849008477140999930970574458657306617148717498203805637317690280371832827218850697876375896712341191518752173751604401393631974501670905676114922482325079359904208058457044410808810329736537352897725005051215544059572105889187759855341468849547920724019258763742720691690060628381164912326803904124512080245282523556657469783974928034777574043996976680847133947461794339860926822005798829987476572101132168247393887527471451104616921291738172437541669111807991034399807305592125023140323401117966388794064539236975954704625461236308735292734325363627167984766092208472970108591840862907918771861266261389981994810059003870142614237747611439571972256421832674181162322965028149716879096676086577187997899727694203504481776221790686088317441280553940268680904173364558817415621906025822735622939296361474487438486457690128460472608483847100347556499182632600692908528074038661261796958331865647927721308627776097788227112824410637335481778744592310429031850964070382642617487399886739488716088513322412201317391106197420798100737330983367481292294600230641241992571566657190923065804266656771357289947984938783537764367042888683760148736660268119220843388216741978109225088167506932311502407772794465879240715544692316667794940425162401013034736064039913401240900704328023682557270691098556926755768510757601488514249108565895769774561518493831355350972050417596551685412844707495748719222413256288277697063684640374142414770008647281260783793519147019701224704482538605221039196197430942603078275380174269382822564528882328556167433059210711769773482405914981991299906373403847485800583033637514707971084823915429550102378734214863206308259913306457167956206783440518990056502195142610975629802931546377708066240288931218534599189359022681523424391752092587667502378475936305869635684652844001066615649049254847719832829023707899258717736787336113023103066683372566560525323366670423452139063947699728579669848912961222758652152678366671663918609781314698122135479407039434994279733086250796195772794822556567174820748312952472281399030315363435287077566909085642974831919470386856834695886101925903027688604365664018000913336618438634455534376328835071612715270645571335230333196632537139337865878020240981370310599526753532128667079122298059735888137785668446554313079232947715298285442365896058592216730066241215236442813350926423392858515576481919065792044558875806381062750868851443907252617044629872846033603067069985279996540938720407464214215810658153683992801332386138465918368201549357376566004741898863780318902464629598947737796283514931820707227197256696970039479929315824715929762737634330516760272882773542772423874056288999432555246251030872079262162166644201922479629224542654035147687529827643592305602998612636654069350465097447060970363712422403661206760713142489785405335782116258717218111897839356064951480653654052054276760169554636555648474687540886267082955162388772120020464208889892963745922890791144617616934385069424280038163287103363815924017423756850176032386683028664065162130269874736059198545642699975258814231012234002632021892775307862283624695450847528862834838694097743340503786911926616323703480932238981393697115089397883927977586635190416196044958351269847652774572823637172000307774203015291279564185864103502156197981060842761182442852448625006817404538194718906856183951850738128107822004516249715738029113479837993453074201083180506719780495174037197144723435527985775582170166864822077103067711424757049205108153400703782775691887162196441042525000905949772626166402422839506197329759112706203846000931941393008114309289247030865976879629601666877848581313948586289202067151902920232426178567773671931685447014574974718120354124549500034818024525178772900439097643208472148888632507858764594019536215485619672521490912152671237492298763325901296169193108054229607489374705566521660498812607773244374244172409265029902869246157711996354344000615140782918111053636885511637175121162276471572112481881522089766325965594845917249416175151017071712411710790905837277600335548632205807959820897276971540666747017850667051919065411048415911920521560677497417866719053872123040602453939497976781159696707681181716212713031298834644791250129617391162074867203183834460572009465470111220556390589038398449356745623570723753510837723284492880256905629556093422387563054774048741883011606698571864368720979088672050881132234013633930034235542127881330449503304771291730351330084204180379761777357645877132664245043935346290074486908048748994542558926869885599899902614897386199674083763124594252375123378674805655622207229504160615657951851126612872628583717266829538644488525550368681919553461047034270437460019329022176426081726330614933690308307304611153859212827805692054157239999738286515888754592956611967196862300311046372189122682732723821799663288452093530284866158044654103448284283004693708632462523542055902727554445915726380578083702746731328851312996239488177451526252574973028378683823239022358957765732619242851614780029857633547460725114810606967268129290257212387536744980169078018374582793064461411810621754459573427797492957623215651445466294726261930272293163932182279489443345219770397447272220188749717998873206274144048951068138025009795031685337339452728180202644550028089987401301885343407190447454750108026903087999936922373949692674839547177138225092979837334633540832762058470150210807727440325411199357581213287210735438576609660758295188063022296867214377261762885036817196758548766525670095673208856217510503023505123306579015606431357195306084065613037780736577074207146786643072399715706963885210338386345430845394015885429834762507412998412675680680395450222968028896743756925286776249095403323491233271736993668940649191829567098319344753277612501510334550589338081553191164040051887291692449352452881022107365720778170646471294924676371107226168557368973133408396802572034041074970171324357181076422732193715329283809223214571429306213770499740682475780006664860000530457801087945385937116429139860125565648541429030878409581090526332805660743678526504093922432121154299895738059096400965203441514128411919145232602616760570698639875036792003655140937793310653435078883713309277162705074257993575092239191444946837468959116130010005739205041860575931462218867555787359997769372099741777363735989560076450108392881221555311916108960508146606797704722019066848082940751435160116771352798087185518722112791107291514158236877412460632126794397226500912775706110087310544591467242695919722077248198492190128161700241092669500340006878964838768856266663279215427018355164309913960601519036493114161638480381745260849846519139136684457016713756800965907297099017599748899951632586920338523626132028774821366243442159290866812874485543542256246039037620012262532485769647118126725258109167573284164786393850279711567902841026095793490836439375551502354651915035360198399795133506963773774688695461935428795102342019708394831358963193754896578243337957796159811150739959035315075567713054550414133121169711594255264423301698317499943688009227574966815962135736050414107348388024106224487812101148418091385558698631319359938562817364435214436931057119914549574089023452873676040003048160355163533757385353423218674847516851902558422254194415998391731841288929302312092108620585132704067627983245634299947233518065383959080175470943138487141286398852288306087495281222960975988726040005622350224534028038039154145710038017028349746736464244700963082643528523826808668925211562802902679198093488517468973676108605688241367173707292654407965146252641518448817362656608183963372460588148309332622635127514459661552235735495398443644929924893730804897355771100876829413987927528060407849480530234207889131634827239187663065639456232044017246721839368918252653368680186056631388487735463823436299857773905302523331061996098827430949722362182020080395925275651965558353721004547298690798867618263785467625867115433540943205313995947464000276474345041380507612654058169016353379124355149902653012988733018148792920556377326022252525719217310718191747090101654927495927725519921494462675680983046875143800640842227237014546384952512622448299874536074223154553929957378196355891496433514282582341881317922126505363772100525731945035932091393554508057900902334736478946928790000810565484795862173788647348300668517302286008850153747940711124078152343157282202997123199222627249688743687239392537019832163400788740232272789017477543230823278815728103792628185354568961485879824108166896490572468065090037109887558390411583856696827514785427226418495045411090239896828309529081564411283420193255579084646616316573273272138384379666381305644401400378874724944002221830207376190430404788325530243227646799343138187133806453036346816493070402237067956421746526361570907694679259622409189892973319343534834726036676212830814304868001837327813410601704429969605393662401335029534647373012240717927346364557479228930762492857369080497273340377257319545407798015630165924744575558350692053090211572711284078075644992965128663917354067849225041080269323007234648737892170475574107640297142907728204684633280521406404693323356300331022328906493014208285289566938773846752290651700887196146176326844962834441794974513206977660623209866992764458531760533091365170414980820160406676634422306632105965815835972278593072531455502063215087690058086158351199080650479216480181771255853993434364858890984714179433535730205273039562630595855744248212431086264427735228300953475367003436566543757921925847420213239680450103395606428810782280532477800072824915366423875964918367977493168418815609228535265257411640231267046635543114687923217110008231387260804554388553639922252577310276552562684237765568682843739170976740009962025108549434716946776914252341063565481775200018419750210020257736108623427953528966980977562872900205135634132233481912608231698609965330366715733182418156572491952103391972839054529118604746731471834639737868629027631184028114395321754256793871051199860294645978277285661924322217010529002752374336430082660688688960114855237186031273761947107222846616071969399377439352083500018052862545107658550013531510462327865844248251284295613852443250490050665238718431322385937052400363675513790183696977757641065222627080724244367386025239079316758161412775164414055189898705156712918085526086862086114089112915774564164757162925566643002607907624173991635529386906036895456573632186026741634007736362486220540906841012708963686252555424070393133954175186317419612583109165929259440989102556154569532312381968025238943449391533660823585510919164255251058511825301324797835130379888612277217663801183964610235995469793303646516577800552902689774487813407368937981738855706190602889650097033936141598252052360522419475251448141034660274886146247969880699431356391459637573775817845408293436174338915845189645045635781653174369508230384183642354018710607772208627273156083456571206192541826455948593289071404879337188741172678453090466593612050618201074710609990790615944595775159724221295624891254261742843162983784939058480362004153550774778668207575941631344867779839087212348349506783432150797653977937797316488461747748306408455908973554528245828340898554674476833914296130797559916135862888307583118452270811812644873350348671013011506928242788204890151270797588558925213334001465132396568686514611022914511624541221204392061080741501561637823613467610099267684453534744290119753788083104977893138227151826693379001216401590144967095208783024690119134467952117095910050215338854886609823228456963197205366420923371949955404450635786005019821160702474959678437427065158182538646853054833042681652119457073619658713822496156698411961510603781190609328556866698681619222102613773654785596180991501638627837111408541265797188557013174643190809201771681900185731096876905433146054245394355563277093868871221903232565834766648157376313674716975360603472507174415371388458165860756267661530120880243064504557516056304020978005531422876569948615006061194904185804933036532203078368432770201183657878294194836156628390655874647790146360792956410096668720992847266414052715177547994280577099569707730719054216312643306155229522325613379881530852295050689970846806150360604925486234947960445499748565302387568168813530481821802708262018772919447217033955457762549907359846069221555980640278421227645726169469622142331570008687974642433216050361185992754958771315550983460620703841879767127007353971844636653141599273816188603433116658428809605561144029205795081384831057373742808498363888543881149232242074106609526117584216654541514063677949671688196265590548916061213446415735858154860636771715168299963803027118772543383360717411224771950230386570293842588169257710602732308933264126206078994510197004340974642197509029313751581286849869701182734228816794175224656599027422937165846625069116464373192790504940100979561320536798558302173590336634390902333728432791226757237155831619434021945146208068751788721049341904388764835794460803065236366599373654731458137183339491667871092428123794085332333244526128722155304771494824371529493371284944975809753310135925042773105892102823782029122125948701220615735274248474116482913609777848134896766585085829990282509044306799128137850510140604675005573306277775159957747555444476033111448522562264406200007195483520567503055073380471699170023543377932112072013401119457382145266742630840919026958332181438279276086011533840793864965988652133306720170344354224356818843702847544880809607253422965986647132075166598684697866016230728770823171424671515096753460175605676722664706843402833051702858223294570537891556889946568658766021148827232619412426391770885358255392427977488231014186098391689067032212600521116964735820662443610188009161340049336920432834020684455440464714806758909752501487978239958374376257048796265779909687618791259072855621214397854275811106887955730314724162345773908327028976037977619328565197685535843870792634171867410833821658626407293781336514686561749101646757798638743813616102084562459966337920249865321647260441852186992867226803371002013167480946846283682290903748481663606426567836316875318332721212336356461913641410779945288626597467201299557262148120716460862129423980587914886678692336846128449321970358139271595148791510694060764701427495433378588734117616769675211312795042017031923067744989379463671631609365372156954041237387465266431771431862530941152418417871843433103492856591894371287957510153954264139695688410493282022821371261893372781228763803093936140069416376220820778739986401063935419405693254744038309784736244179413477499124459524651893788388128275301064383759541542889877537208355049180504986542629641632988934105749311167532364663170567039011700740042881435757315425421012459010001497450736984784292604404973799878642113098860603254655382738106946295144088203480628942330987871247285255427142361269932296806927200869759903111656667851677104150360676987298326399116829307088718720799567992763308319333965140513046881728013934421309650740557387955115636870961083243179385254197701999812051079042535017799960799118417470538295019847128351452334095360791502626016768769971882244293871504931884074017376147339313345018660600987517457875901541860348614390739334719287004890138200202272506050907210516400084343132909664041342953378179435864770068201308833402340394699128163256956600464041600396977844073697106505891839858958283681226071751563271507084937028365666555471018390475345752443895760465415108203741958081556411413129170171792615461580682807372686570749988716028221670872082664153113179201693455114897331188102194732016860365006775247516496353049003203973909453163278543087287982430384197030564175153127211657610931943548031558991589938163859285185019945405856698675269581604129634665114997324531771157676279313198333896902106409410406293460268599924761132043205815066593335833204667713869094094312897557054170178778457925309838000517705160444371199589438079617572276422059145398410652626428967939105236903889770354121561267140692288822223988904285425293883126234973095606317661972564082801637638504664915057685773750209180290385015129554266165000102083286038982018023000071568649734765011842246590964300250505204299606454178896767416725734181110947007805601203040865022444894377284796080768739264791183859892742346834334309280372801944205881555267097676745259023255102451277077424121887092434787773282815735587778333185687085672207261524214666714144254142669798798873604681090271963227692214029440851068107379212775264345350296774322247841194730397075191538368407890230722288440044540915967001276081302437680970099248877401831770978632355801415053339998117077006924329257261000574783308316676710377420806692252072219013141815998521400473127130674346562351391391887359899823894407603794893766236076544068091947600580207500285426707273861251494253301924554979012432079464951305736892184186360073093507800058751121374964552213979208962883762960706881877185026681780383674108214270240648700528159855513750215784620133522248803452656085644290697678815349492552143723260821361388147969854389027943411773190808316847350206363243510686450259972849269865715651619948683807823510139597910803810907334347605699859634630877737961323410206834339842350690741325271298129750309411879856784844492481928949114148510018191246408301742585411957692575737863698705544792642532445268126509299027597099812990878034737978619006067242476501242545059944688798499996970517144926874119840905974458876362905788727685597346984255479901791593607880231671836673050513452263277385462554487438913199341831379433633904547342771861818067217553428921898395899505568440393294868254681569986160378995194666012320457033265977602622734620186814556572554673325655139101364135676400884960034394450991407596473691218632443215870721504434260588155130982351063185893109975595517445748395205284658440861434353744350265278977551909419246322135784989158038394809463266268094944035043232098572194307369060775356142186227812902422218411900836561821684548532776348382916616476626186111292184884629349231998509743541840971087429229075364976753019989270604650636753223637156241557899373209357031642826807431405150503038476941495166883063359417095794531305059452092619413762832562952800907564840528418601378459832327938757980142160983226857842849399257767651563443289757788080872977883257119235400293022299511726157927480853519847184344085924584166431590178128360769668024260373850629334892882603097176283087479714902555372072591423646983810843365463916523740503239026292426508292867981227430935638997936445708388250069635004488020635247366239269035249662195563808657393518732628521567204031587538446682003555646588871110731619700546283558774004306921085541431118295146182361277874536272149027059190223961091119276945621957388413536052763353258951881685322647101211242870447578878022697112443956533048380677840530374739806838330499980752849487641551671715488963465495972723326845647214198715705603533265148918759694345493646456828650197841448332002610006955490896679393658910452756109320846493096791527221196803516013721715547353268094166165628374602951021904350967037924906720587776889474031513485817020499065097028818244322840418965325936282944634478707547994004426373748030827805001303341421410008962439007541609347373957409823209797438199028706175101701680688631681156874823656001319479409583347975497186070094919079663827899277541493244448491925885455759956160357770688277843904007929304292272048975507088949202705107158404256254556386099927136195123604562788754786252372909004894919454900648920892038080150128982073566282063615809134146275225892694753025883462072128957308068697947538285964558816638234107138634444215190614663799264601109714801369434148958188637486272978771945985011526274879589705283702882953277826035661488516054638961671591259712480991470198643868102706982617974665612470367954842209234427555956331198151212211932135353591822658644538367615029253764134756449388669165077204195442534463434327256400954797194613713380286393747572543354670631338901620174928191511607293378687560465271678060534190677592745308429355738448720541388313054758633995866042298761597575759874274647783096125973073269127721580724875525049953655628704173241474581267668715658751645219352404151057740472514457676743533479851328332497226579839410319413941311813109127887057976917724507808822089486160754321365067561113749509008924777964301576687056582424114634545978485002554386566280750079880957195418911843088676068621211839344383928268456311517233713858311020368718126057422850345804199389811526401158142102041346843076598011456663932866224122661031747080606938690297081422449198648933572462314486281847766662009291575057351960813536787830587746382832913926858964426551479900863356593157096293844021562676097398737040768788651805577547251254622097868355150962603274070821294362471320513125724685518967878941605319393611461982825823547605088941045386517684297246714598649034014709188442409344610659965704369072847892278111032250069669839633061394725762233576380087853028699975546398413975247566407666238790341650503681726684903006921920597482875816561683381464437300695547896424992011054615681489699542388169598405632607718876468496745313847910831458030408438303154472950372764547575477389029418996798040387434866346523247936550643655469687032099845004154436064022755206495781147873311785853935973391889481452696629568915560042400639572450785679427170936510778763059829871161860668247266261158805771986603917895938336978546933796534574940055024191074456753802023759212242867305288210034433714746054563389230137292468643185385461398173777445371438095039858456282747947789766497379682893563399917970095552401828470932326333226390548556661354726467073220885913285599386434273945720529460110208877713162479391207197428487776408945860410622418140594068843271237374227011936711529280678865065936237891991799033417095193600161720020258788650009498063422051706516988934900263259120568505345604916196950507706510203916532662965495116586803385137144017941720809964945387311816012438676720351642548987070142131351096532709327275715681550561741806865963781047227376256249157691505115008870540651978690790829377229220507231904610884304152453592839075078486620416243544838519239190665400960565450179160200243854223469705224368452133600173349640507304122772520474749547799695334173043462258164657528595102161100900821061454926763357496303806227383564686655070603677732186037246282024545140314573878059698939028505659329641453128640314590081039190359121873744440458947801138288520976776455391357196497778643134434542036034022762803379805026259562632966019781900321124716211133957516600385486423184182157945914155222524210226946173700709966846312234526458738157432204396851207635007202633588821731904049096427480409950522667076158482944783787675280530087245766779019510196087622680368544544841874730950649587860010557852840754929919623191049035772093505354778176760205790513962627522513221753365136044654089840086978864817348988396333859652787439826287763315800134810678304345348232527137415607877026624861303043218995962367511671682538599947931347145021031986105850445773160023339086984524618726574555905252518253428694585518837043182549861097781768139559452073623906864435181648735049684700008734510937100080363307716465276286968811876481247787868267107095564710564823586359577117956131822666479016521313773278519771785973793486988556335115646244943820701196236470061443835305795540282440949737494142307735314459152681630621483870141590167070633927557203240334443968965338626656481300917116753611480717853550213321959554298502933085113415894497991419692538780772614819062136472811850531913373341520758170612258901416130978907778174285234011457803954225370912738081331093307468736008458170376268929410828881994641982383995067508452609221216140997509673746947898404867952926967314667022829568479472642101480895167733423364239693104651860633877539288746582733554423430786807397571528276111292181376887439272621118816565528256897708480172445803545350635435793928049283617688872700348716673626204035605488681009309819399688178364792720225691624661053473886852049013557605069206366262334027546037644663555762811144007353448788671671313223648278093777991153990380052604403284611336392601724216671624550973752897498437673887539773901845551181764151678389675684347660415673713036971425062311453782626291542707679444185464718537693384197382576056701041446021596595208103527164588499864276433471337275641281046722033486413124572436100046902043768193859917889077033678507004285218694857516176781855485972352562239823961420928184114176575854537373794026646668911586224933400350649266337205425496377877827762218691543816555847688856766192770570747520221729057657858426916477555289866688224356822782880111304761024808467117888694788188144158653274595203523216283217592957699441038137378193848193600928843129175496848661110269852407952392863172368568209127905211790217489548898271085861498870235170346649233471054823245493852438263064062278785880456487123401288149167659674230157092420401091500352216346997865360262302295493228184012284723020702790209783123367417311098084694647640095245062293523610918067847671442984164176800566977507106887366137931361595953956923071065290216496891380889262902889053514275902769161971616520465665477657835085943615706417607897081882222461427579904630980523016902027360370559144498367939831389626556907347507673699387028501285553483632616557625866198049732641017826770410211353019602735712653891581865007699646846788415487837439758466166403291037482341661334514234756531404809745183348623671328113557308629621526002633315312069115135895043380956946255623224686956428561028467547795311326662082654066420506570616996794406392509939425960425949809898684482345687623843191894774038655838149116931036553112701379463361204855620648886161369971264379800846095905254376016510864391653480922908527981092827612085258186344620420159930292044213547589824086244163211900704541137689678235117100550391750352742074345133036469899553288115942561009658842084454545785849295900540083250785022022789325649660681488704164553679327256251622671938923347318122031786522994397229205606090945441051981092720705158638538730686760301227387880643555499942070159335500379606036836288789903173950576896357270312917742185625531083251861151302392175051164432743388276297289880966471662822752383474287387615399142054006409807438720788635659605554350411196813980390717733897852136004962161763445479261195291914044222824236324531709548376601853945876794823494903446180798942649375707288731251151786102508244080702218727462019664752223056135536280348608955993625963899055455833770408481646745992358142462712611424034465636955434447746621270663285477357331479278300000513617410310244828953217712575533392289300276817651571407128603442304878947532503624937616565686461838923130272075389987412874540437829144988994029113559836815241191635261733388253212166247491843573627003481147127955115464729889186745040690366117468034457616447772268678049369513250619795802248270009574562407111867224373554456733772931046261201171495002749583668538003719508645133952720034372944940605043769126960393519489473532447072338165489799674427270759323193181370529129373826920160947991361782879905067063424072986234711530946268488710346576834075000208044773700115704965481206231174207116266199783146354832279294059300044809337539994059091708646207145304800765774472723886349742022877186673130847411154286463013187850640046974777828438160306107211262475634319734871063804743307831733130784271010205986935541189019755222220846281392671789681380553097373855105574435337238003889247932218244859142399513065548166929514300650093701510092414685673300822208413168878027754093035231417198128813796787107531778396989616170258419288788361400204068461476919266857639282249532275364690937025703598123042050745977487770485183120366406409960887244415712236078621510995992879992384007374050919320267273558517321505461850453161212845052661266677513103479047522571314153353653954923855113738765234563772671548854668508619156384438693325067709835896611259133939519784753681938044079628185904713751030803842100818032927078841471979063153268845914695471888139862547159516597925138234123311890167086520101167650999255485194888394934328606653164557738637886309677251109807321259823689619415435037843787189517127728457550129142649793508706166899535743579465493806365497070628870084697100276956077005296714171129943062409201813281022276275895265092860701819135250723479428421482880481766032973139462989931387443437757467971313576544079845105266738813736412696495029080889312451169060293350565069192400681055159755002354568379992570615651398228587896936922694562107601781050553044436874577505043908865033105055003212145571630643849556480177486317010552205694739728976315443792027269865740781185469325897745900868277367177696667655782789044404191325735147016141655805922994381018518266628769416825247535040363992166769082533269731166530027631548358583482696821510532893633597225083659717406474817975522441900162505851037552080111918862426728665082603249260369349121381723938762407998483489011708993292684618892991718822903213712427320815224658483003918898554918864738291802378308499731615282280113536395752124160087567068857277651705743640498228536749418732694572764256045244955054936685212874365691205004597008720317824610836721872686168719818362358015566387696373719073418998650036428079091053077238838190403981933718926409026308580301467514791380192740497357750019472576615197894734165089519999594664700955403314773592735605885597518989405135699517384856912165450385059045071740179299226768678531179085480645233885348605178393748938569848023947236810867722112637775524432350693894474282031785038256148371597702597787319893796675800858570888332137501255725812909042204700210875766820937530477792704714821707509278281905818188672416128079027946575022158402302516335041688655570013144688894450626552507357140882961847530646583605612538021863380594861811879232256507048333425148713553992444390190311499566748072172885575607650308121401574985829482888565858460886551965117431846497093126770146620556803178263911580136865029362583647542720248993061397779164819409279553108881819590078597885003622957962726618327209813216377289630590273805716062737331913832741919464980005994736960793442979551852001662784973835002069008486081931334056003112360927087685757355508337993304580293219802814465201362589682720489546802209274546928388006918470227084807067506435617930395555442347020985488532449595403240698325316388751833678898989548292511911433041515099849169211841017160601279924556700677178758022157225495638575809785028756752273741213560848263890218105744183858627388104904629615405381490965024667085267662931327048824617351759270241822574212830538266118508279328515048145444094921880182369780003792488577938182459418334273367588413007847486045208428827454529666001304159403256654861793061054352570960643394904745450085848151872819950447869459179440394756414956245034319616500709453739433223111680807440832262035957272564021724918360456824244119770723319810975478273317210205160121212756956448824674478398658507435644088479051714715300749553073284860032114601455480811875956669539616746976479915465596364131938759263326963191912394568133315056354022260324170252778518768338301591487824697649550495516543785810306108380477582036709542934955328475850800418043539782507072418396557986701431625786196051246798383719281682981175211665072565383078675373074484621793789865522567571010389861640482106150420779514049251558223388319138172605107504124923765558534909725873965352249297956890914400915312777677094092393664309452728752072973003360038003347953435836702476904255219422377983903705962539917611019150292554521602918725784981463141058718051954129858258048757460863369746108172487523880858568939508339932550948774865399822609076412031872652865928634667692330697730164993694841810860946175856607640365717878044342707274055249753779053307074919527104889571391695775093641562240356369857727446169124429885443308357200718802766670813145587237213824706738960340967702404037060185681338320347966502823576423253907501727654616345875882890770851360822180492155339674009222306011966192715251868055911001636416437569631147693858051813102842380875947656270308734106697071017708352757105505333319684335166512692340282680754029449512309729599895190126285512675895580672538312140424734392468231621283106193120767662849785294258322583603301714023446117775855810684936419694695451486774429019941088061451071358048373757650665931019749922069234834754307644685672131979746205689335991664598018975781143918814880272451594160936336046823661314053148855150290182528729753653459882444779508572877663836180827765610941003710159534556833441031099336480164939079973776273231695199870710718080182276644989689100569158097880103536208272737368199189895335504031984093133739114255155180813630279212963580184704981570500147574639185647807733867113343324422077984950148715513961325032345463785753319635370893895294066575103918785364020041204457757895251551503079084221601272029640105604907748017453119116481503114760217069548503624961267958452163491533381521159878590942502485295617724940736281927187017898454093191743155878916494100469040829641691613059834637687624001821465134380619550279828651169857052583972621978101274556137276099672053638712640052381463366889470906681116010295691205222431017408193432040319257397962920787265857192958737457577097784836794790580925134698366144838589125109937061524928119159448543768459696517708562147797803550754014295183648153251455799481022344627130436655450830294178474194171601707464854281986171188690350542233377539684953241010532408701841863330862275788135553229446237064848998655584937908357289645063245313387007419009461794731231995062428112286298813469440495978097241986082764065733531743583273423766234892748096040108960165848209862831913369810365164789442550904234397218132207971183343718632926506208278162340009106636916443599141062410523133878630184573648492165200535101867273855795024741149837173880164702848070139901278629853237710096419231138068579852959140362529965949258614816668114940416099261474676544458201481307142291213853257328121906076724886063804313817764134533931724286058307996595651514972723232755309630929332639024053669983553142825320344888282028026817466336725717602940308348311907449466341753729050614383224527922261808656368954762744632707288771257167052574358350324658751308178935387585078383221056259002477654155141373008639193737421906870688901172906023575700611909465626087096658614493054850061955350392418785830356787810460202732734608105332913800490147296613197770578428744827838598075559932572797458139632710918139513504292082797699411002566102489727626817293710161254070298410579597719540290861011811980952134342823747941409393380060906907265217292770941971101024313713709279390818400504121942339421649320708808035558338545666476066580161064369366305071407418256279030857120133138459471881106911839810814945426291623884295234535550388899799359797267321741263456548288739664083338604554950503922007402385850189154066817700772497081684806464437327080432998613206235978745949905806519801252153409596322165528858291867713143838344283438218299639171185227569300115348069881004465016505119444223336723267981555062986505235525007929519519912513494389517599506999084237001232872145252322717341063372211903289706201030815086821983165123946383585918374322676050106591955446180584648091353455894374593400716968858258870274816553296780983832347750261112782055808220012576879692185429010746962911484202615454858836544192119923679232834470898312357681047243258782900647105737404693473302848078322034736383458975526437093979905712026528751473240173041319334474801297823027199630579069142938203633092632050682238501783320731568803366724023019492346681202867090598797324387528291567784199219461815909991855605949720708730614683061222105563273304626741004686531539522999190822090992087582711654945177821194160846750275553203555940013738000842612878015750863748978519393477232915296660289262062332448659271439206672732094754396075835314761093590905620450473845535370340213335799386015945971550182406300626263520773852246084877622184581907341469515838658017835330407845252222644731763130392002229412007665756429619891214962575175253649902330881527001123493875030134162954657536861795154732258747783271928323777191801348293390076704554510048055639317652259452919961982920232793374955093080750623756566531404681937822990473785529161377404481464272308067019553396348429507540814190280223342380218927714511486026169260830925969684970796136967122324644389819644651848334352872395836376013561794559550677242103288304544860406608943345624434647128736470318530179862114782446218536874779599965398902401900564870948946651165489445106215823719283514905969415646598091525758314738997207993251524328886153032826628262429352543869992806562486941853376513701269333960895480041983341949104863576490093441932192472489330319242358398203612160730609553387324670432643312861164548783806048246429281188208459795569119470576326591687461607682895289441880467423177018672937918309633952057853985439346707050158777756608586160539434513506332684791280747984345333340015821779902011429962323490706393594171977777769699984162537268562871853318226653471286236181927346824236518555715783944534823294770297702675131886323156893471350582354709958989468140969250065350747040876117007074623642571478729049884473159488208016110321194510051292268529614485388641101890413090980591177519224849309123488597101513355429175495211940217727118452535373900365928239645800496000244457705880483668573160939462185807967317392625022402019277517059273649309418490285739564635831454550957903614329936228883452079492754380076409920966597531533562708345762942872295755942583048022011241421606992187545677219948059727180182019739742394087449051305571722407117429285892502486577009679099411414398809457464185631459108583914326813943186175720379333606937329801693308178482369718303029177564340998348028988987266133882094998630747333769894666836466865693600034476732541229881338956132649355460830290833958065118938369963755292061311134386276752217891035460818985855628934393488354548051136757678487868568070981611778516684575650872836111860938637389167102988394336342387759142551851017954957729562762265788143270473104803564782487420397606197051237022928632997994263901563574498027811609147416875221437214575986624860699076561564492164115709184990038156513106517143026523825698452397023804271709808364415989423162957535662152284855286139021788019363874579292843740711492433583557079191689766147156614829173115112746818873064069742609085972287066324937060959313378566678753161372860133836305023745909377537597302217846688319098486048212364058515961464838544413254518978515547114667643502053609382688751671114543598485280154421614276395511921264538465068186105039342813478696945254075712192225721711869409209486530489697082369279822398505849060089914596068439023125873167593750764960330411910949621062243193236220992125923087307639814473663871440133379729481474045483431788189421642374452885087299507633400928705399834911194820284530278908577532388500274619051514281695716149278601665756912308982838510705920766846475208600314398291905363350332427528931127768195739577575687389661855407261042686475856039297565233331792870763458531435083161745482156370835344434687866704932543836329303517918362702653205062385286471052637889486646164741587183164119877512770064549539855691193111901604492721342989259756677146021497907582545473253828299782246289039005032429787982428197311969079710801500418452122244347677824393082576257323230036519961571918851251038861925714914881931917281581321103176824046576467731261483120518263640819858255754867402544737908370834575141126694921651937108279923171401891839000738173066858269167446978571126060655360090643890191302373524914880055743843847254694275561097932708237052770766341410430647312562415109528963545598893567550134149508774048636024341678630635024763748783715595628015914315580036625666807619074912098936051775598654320288506970738778577740419761568346170695821247902425751942469382536484452900594496636555712125522087847041745257217184713719174519363276272389898336467098512213234256258715276389637504957130022753694318448847505483018461556421358405851042425388164124704328425755463524529251452492483778280506995692636289898687081066896218069254151108086798291919216142892039273364454037499436864046486867782115615912496752728757277314100430980541542719440470096582249005221114729797059191632878547370756703367604545553938553211939940588594654527320591490608421045824200362959068153199899123265962271548908488251130554291000633225292003708503309660798184043916750119002552972711001874753418051623904317463965026782246328601036951943350064351252474129227066155296747922945848967910853324399589540825878911154926951289924273396168693168799351213643907718438091109203024611405753238084552926527336801963916930363753469718430168359588638060771163486416636435821144017452844697205323969367859981087593687585831316629731184410578639192485022707478945138130848289031392102918061603581764206325916950276953195748669775324011143803350472271057498937705371347283987362213616625434530810018400294148029450837965125803578399362016067838957954202530780066692705150054797492471673454352419511134961986406853736857240686366169159933921654390299057310077679339790900231458849991974306902408623273714012108101976603068096457279192831780574481487697206661437646964298815697001923421054135008811857842601169879825477064065348989030867521106042279639797369804149056158404981093156718647730275239871621858791413570902988632152614279649749212676123504794247171390059375392376734828806520419413798714353768494872017795208256012435807147472970683666040883067745770265471077195022793333238082343354128362038467010325667697042881758999968923688572775895674976838881430365158621935425039677494308979465690817207639403404764615733214163064891140107180140611518153590260821991639640801765561828138417786637366748582520363625649689350448161319391581880331985102920603092623933326281785189538390384626222673347096749397601105655119907050015842097082627802665523139639459443613385520054043030740160775388818421934200936179248285208051497521805714981518364176308946781516881031263613228660684858287199137283327852883064585840476806030305133878034789219839174278005261407216575747703593476777769472486003246667097802758731072672066691121974297789487193115707162090581590290514712921141919885617249306800036252077844408551074812193104728901810301668878209644055343334934916632993991909530334829590516470351198717656313036536565631717183452004908937048070058209011191480247675341008165795007998557907392468429234063192805274604372159065259693405501759059821999234181255150746524912354658921274718686350641473117990146372942328914501786516038021792347131248469417479537905698582327222624797548829479256980348604167275613702946355603966237359717671192251870155666730661906531454179918323184935572920181361127894433995386704736443030997857640787805874224466063092047857972503184417963975776333113707398323543801879103787712824123158203976664661521106717294473624166547753778306897457307163176941783838698681542838211984976742532900090026173856668471505913058151539467723678410700409660437617702027244186293279159749111822701624757377701207770929236087079360449505482333266132213509780665964934252122190021291976799332186399839686432048218754774766391130753466908003477803740907646231141480170792094750669173542452949269333566249733452173044156996791593342508098946943578862988060867031164933676056543958414821983616984477619320093425582581959468140715783747706587576087728114622137790999486883115009269563359767105740927566806950919724628667710592937598106358644519877435738297335360512682618257455258181662072803510207142624795911416287102760950983214966191467049807176950643075441386125624617858164644291599383566023480729168568003988438803832878196247328348441578364378701050911870201106289598586792418859333930835325479953902456121296258785783076048198802905951248035595132756251146370288689025684376125555381998554500324101445991180504513946545912334174137372829463808193006702919116200047464735471829360029188963554892336563635272354241819454043224340035160332806308974390941593341833481146718120066521730418985115695029811833002087305468308565823495660225885728791143923759830788765330141472260258662055990970715323877034208388193476540910027482299309931264586253176791857566496015096697187326440974311779445917153542217561773796654460580936533370655174783024659355989676519001721095401019063728593852089288939419271854441930314893192535431676509126118233612267333551652717318575076923664365218789493955662591134521237567597672442945853868136461465741001915105670280797017360582437600002317541627932926243948017222624303482730362057258429926401244110541591568570195994144186714650578713557850462300126872450756646254090378910543622368793527038968022787077646562220405822795062489329720965582215045725922942065711546144377729746710682424561344351748188899864731193507037139080644396820985143285496039383273343569921804981322212140990997975441797059242424829231975344563191653626632962007043001972603434445727781777215578512408341136878301915818784906505850938027634560172587893428182489679190392623776081233877881765134374423535175068726714340354529571523392897546876807683017374318665657406863226492098166145863612632815980546201661119633079460998876950461633162950751894475376129256019799118939720812354898081550536963043670946122102140626081643802991176733438033198995695071584085544406712935498954695357810561215656378783291535818169664656648657945907962655227100582187769234322771819157236800723040544369654586868499606448879009851660988048112348288939729881685835084618101836352488233552380695357288996858102378295414034705734766009847996405512115707045780982151066058112865812433630903974564637083931844844937277951433834310606277599548459787290177063265141572667613801851658260626886342411611609195755652192937728691322522394717752305732203209517564210814815041990310100361790626828508244182889713797546951483795364711500521230914239361280254254458130737542627430310373569195185116728891640843503674734759793270730724668894812703553604283028246813302512384073394199988512297924089697523582390525308809867718073816273251721543387239823513846910819055345092914408234845985428988536070014855862124387850540216331165446703682351741858227146108966507663553173420202836761024739876359894936331443283550708807133428563886491060401712387251103540283602614231246614619869303720217909971732802049692600307468605235856102197735243292835605658816382712780995188097838376104726514897949982334293633256231200733191580256807543147970107886629201886625955867547860447725127674265852772582187712853700258764427398943597035351130650157482364816177110348756874354871232872486266646565739875066414120921855835497546024708118080339573090296978628699691864000246123815437617172400952009517364032033590761689220767541905095451100914017539254417302664541942527865143757737342544404344458202621348653692420172193879598357551566022349396634475158827034554229434265001916188148556824942228747649048737720729129055341853244493107307066810368713916083212327076781162047895434893019507018584842160711208466239376167651468100038888924861414069101632215318296354399092248938621098768234246576520644225952984573430831167587913067988447444898101673038143865217419245139312217444310332237416890503415112632540558731987527633024679446903880553731132017734280801558990312409220738084803840696777091924545157190083270297432307951277276495607106311840265916692187042626122836131782941557744556059724038723859595545153246546480541337564581381060478249940583232321809965636311712809298786763752168582094688488743229996802417847587004569134328161803536997369450572182467860968523779118724764796963190004097552440217322185472013425245474391816438758129230611340884755309453900894949782198777995333114838624593055268011474016620460107504800680761815999958790878199756584333043509488350355742511283572282799532791726082110308085436969084847318117317968516938493200133004259337387677575826149953498765956392985185122530707147522517242047838272571788466261945500137287608710327149306461872054663865182953274442045432122710764062892228743765157969811686165842826052069344823025642845050424317388891882215768170884075271988698561591713772443498579233051005081625822954898030269175109907601269244323488608709544611962466994627560944659558950404018546080491379010488593162285792168703663283257635459854750902454484353871780740333346495448470471750138620654454045668238471341014382354711323441223057488667332221610572307457639514867663111377631835634064802812192014117464829404140024551945682435533148599850213955563594073363131099626591595127782722464483699400086260978204846375680222342537929494480266618418182531386094819935370445143295625655056735536644070886759627598305123251383682165297560616536007760432104210351456894593304870115329676153920202074338562778696021416030545020183861876706525045574014874153416863247163408913371647688609027519420455995390175351273769553482279452635100327912645316761224132263268319071076824086831622131724425447312460658571493070686463631415290969816850591800712951111802646614885207864572285358541949555446351924464914255903779138473768615338623070844886952785844160573989010711610247571065757071082374903294483162011474635052373207020772407681007522860327893973956595476327839536431013862175225673828175849269391459858122384881816899360400152028439488826506294047648197356363714982419519519424271683852657936077054654916021727318045488736982472737725328178713780636082467711305255318021447729527917527335028462726174436287307520599892870817170278833011107470980366371800335306011346245974200021321814206983193094193869204985890927094094028885489583798066977059805006903479501741385457078252005033771410953961705031640973822153243187172129804582947719074631211633155549851658184047565269001679315958922852262910100798253726875273942418022996574035953071153648880808230762357819324407128374367028738000364284265824056556658062351829482403393260906716651781269821301824792770356073614283725436923906976621195123262920375854486673432503948944615607800597237414284181488500929248935988716852401837894373329280151455764353587033932671648738602123646496362821925291546918549338429666314111966789920608484665617898236981767235402613685478547545006222738011791359201961395511318296592723381215976016802715529173192002600714514088893161676652465575863760338559751153639275394373718259608481998998935919232225712997929683043338225838272171100217989158091940723473444435887310220103578663958057633797932440045130597642683825128552980688755914844834765055126674981043864565982883670727094982345933601109959201106921367497044045897628470370180875243152430506682663323005805212123936923188397447253991221074412624211093687473892733434318790802069250080338692016108934578195457783585925841951837582514724262344452181764375415734175796448434041072963562035532133718608970519877120791184599395862907904621576749761915658507680704179739915381160733795627772892319354402418514863447259561699044737221080171102565609889170191714260504120750132518364714221128377199890125051267450398574626499500096331924059349306661593728956777746121896034880927382195023198242647069726408022663059846394382319199911465293868719119305901809838752865830005076888273042648780195143540210366390552943561144309449300318676362390998267988068872842290608531644637596937389370350441093922233756080050119800410337986727339069456049454760889437379812052428542472902288992127164660940778179746199862053338237973552760927066416341587992111400930795856793016438793725547462571694601549385260138042421507184913888661696254031479257817046611664581912727625887395560934893381847434301598676364297810775644760193194079230838381913474383307824341295868604401846105125534095963890460054871921239832970976635021702359334618387965516802029752823387973576767889948996613052756522164827991941212027405893256594923715231791412114615963975696205829137674834591106653849769734862871972131158851046965304126754078575570156425952630679015039487879517812134972265950434310254276616752320334105477316595042207483575513223654686663933896762909573487585535646094147786089453708937003619744097017744134592585024554373318673792841627611938167851242324975682960897414207803793680320173742545354486636254923582518644249482156999057434568691033648893713840118653247831334367578450461426343903897180521864380816582521759279148942025242375791357617110148878068638567182643637530787420414048481437616248820590141749050133645482382804012941888704291855702303790533016862543201665923167897800173000581213172963898115680748228019155594332157305224268128925232311521862135511639558947593301561867566971405309742534473638856360416088193813125956329422107123286771286714146961862130165717004680623702402100883540851998756394722978115815044248909963825059363272149024897417974831046164793130283762009933646711386198880547929405529677083060250673726069307973796504114758232949711964447142136178216090119482978183260827087138110251489568293531992302928948291756828200257997249123884570398690932814912239773534215464816421317711659473236584806941864823644400450393969782871723277757841318465814251988959900103138160394348847279787883358190330386282746005246517046236814259759450431040190114221179995305010275243371292307266422166736437189823648019058446845482251053785988047810261664130747311909360083731269574346151584135780523882457413775487269737601085381838315973493202388595236512352047975211672668060762663092548996907634688374894024204235773399608831817465652947714399747668816237278623554836270593112185459006362586505676389963845697826388917708091127741403294106591497989294809044724758528776656862126941039418535470180348776503209713830782714880354884853142985258134286369031812018712035092899950648148312674415573704414948038412905788031351892780420745238026773964020951419819545794373263679381124646100201547096972772187198422304160847430413193555215302647876218254064340220939781314591173001808047720596964282695362357634065520836087921086097869616072450505512747813511346463467782078570030304535675697993265956774768392239957733493584516926072050276820061215771155991767512964877694893445556308724534536683666760780413870615566044498989933809314813898962752622256967046348108738688265463449432427762523752960760172184456180180040251106418658212925384840407573881575863187375985631227157638814797630584813089439895823257069849521653055564956453399178107497305923640021578214024433328117858816690740968598545184243121097660515801613349705166133708332139289339222870674833864407645534012490016644546160407393377395385004240493555556311082926266603942480026918008696685887397296639436057183795731250636498362425406204015139100783618551094807802172176523933794069439307598363343658028357225759150123322181775624477803008640048216769638302761096762341436676586476911196511948832418024585778000208012893855188752818378164741755953408853491420478534977356132480208525824165381824827675236859472538467079948174025853174904512602201955952227286153890246853864628100331659012807217074718116269668956601214362538211895289587153815025600730286354172439249532043493615530433559816373007646016637996001582803389634226120963985275709109306499874403287772993247571438906613156344885018171153000117728554718935947563507377538629876236534352356338641375029925469418815762272648447165637384912662300112880527189500304761514234480425154216532344505080263887665010830587246524311818934878020101862658687883700159179178668043921267167379567785364139842905062221707508831351498872617088750029391732649384049345085528814007349660911736906016490515362493596366437710809182950147253459108623229901713574244208654823329475209136836525328032510677053688833195355990833744911446962891832776438195457901962454667596574633289495897452110506250661223000193924979310503947052328467296528994228448188688210958233946242074140222862859734901875575447488605287335111447126111331634392625549035832182387932955064759396443758746231634164617042644093946332027620321872500487492661593750715999114730966614186077531484243058992529595326145311752333105686645060735431501978072926071488909727897644810305434616748854499092802856652541497537875344950112770736480868135410199603975927726105555818241762472649917121406758289451562179536972817444642542854451719024491559504940745328461363843023164614158589928518880652765606835400664166952524502079729758398668322887017966083504112030862287295647303185963463862607353840953008842375573535774838362251457554917559184638892938638491819733059032950738783741537454412799269511193494783054462101031339026777257181082732658729806329181181958835393167646518784073067809199861570082856793060153245780283308259750361139653627290851019556973775920450451135626510078677749039263820766472246776235897834509632575050104394451520945616561526815483450738683728872454196045588547067423666508022478643961063746240668476873989404745772356216185927725515487189094286598110117492780926020639231550056952704481705644233850022236044430904796342342095914799085365767089203135563835854539818057912031138237283333846462178040170958033425564664049348991565858847966003976044431661470079402336174945152494129501839247861445118165396346991925870309565800789311841915222429611003392795579353508669266998688094801593233694464861369627416627825701601617248389088872746731074904960821984125678638034869768022136550285654054122635359446088078043350905544278627045280338414098094541353227916067550932275010995518518433428953907463159550327542506663749447555054556436618797782947524123676429590292171087858467614088846123307500356126616549172348781338322769582289899521141087338725967191471344992663430084462405472632227666003320469882219182217489540608166305884416825274069135830220471144129473588684979068538825962971378277605268975650558586213913960334692732147729225500648289949165061849159900389048119252061413081371706764882433289519807764742486493622973420737363553542125147325399997599870471655813723944021232886921437813082458077780503387141714260647781618686969993489287558821591191366205616006414677401957211030827553299748941949072103257639363153756774175594846207177360195724718832528961469658557032276842454118648523314113177138224990493617094490287996683262502640429046374244007744017405913608735571080860531366505147707775599244300984155762633859027158232580783073649387454591355890522101106507074468686824746674972823121097779222637737919588236729203222932576008846771023548698556951128475663347686358953474573842895436312026390652861136572036199359760524931065833966976041952903375304437378163604094662996344470630927518349039812423048133832185580926370435150631323968318393676095458545450425325113245450633302453088894302937475344103909644382701948648478437292409280597633478939164393126217561167793270118192381152041008587303440265892161034628851924310996536705382242538369689001987987661155762655263319039040204484947283950617446618008644658811110800970598819559291017489849299494461841960903160923485893719276102557642170690637665765196978895059042248037484722041455209658617405042668227399843388502648266364524160779165943324016118244545328045778698439058422104217192948618834035346966837806158221173259069155974968955293072535496424045666477371376704635747211958715684732976302512600338953100197442463121201526811262021132223253886957950468091524094297968788177386167761899390646305797839454247633461738386452744976554263041882146150786147120310679544565093780761735035348881977924780867807613005680884971958620692398602891673660537074470095169288708101779878373140809360050002170179480861778930027395982592886230330581845512132370213327275392144714517230777223874027698177078299079204433464870956144644482968458254968014197646450694018794001797485928371099719212358669372066160938738409170210146381706915545629465352988264824476264364979950892740428111396473253828445851787447584967905398586564429684002945118166046198286580698399901680491013234667968257659021812135100038141352992068338753073365004963600238657879572090724093132715605188370328451083954915664379976586545258654950038531630110394040528226048755206328423475151125439644316695770228944932440501111721624620395453864828013354000562281119585411865848593969127422243063847478447953226839984061059813076523795528576000535559944564635248800902019425280174975498599849059194268514462760273123871337706573194228414749321171745920439652609111226328234143507406691487459699814785502673449331473004709978164029742810046564266062070103830683113367180424571652701015955904613517986972932766554359009951168772267052058433276675891949699886061686604969051647425967760327259338275890051533237022701807183416115241349472448615024859224218660394284606667641505546805887585245339568139990400707980338715939350844396945662197456969205564635775372427339698061530594332064526211057007182401503484595897803994318181439164462309298090380171845039903843739759378812479768690928583198717588746276549612192020638400139313412533817862557773207625395851914861663788493184120868866186668504264975759403472528189580911323120441974061173363631662413241078589026846179673007499256936159666284767301882298830495499592620930952274188142060688310709128732360516337874334952641478340474658164381054914525732215748325851085012235800374554706747038283841748767012545037285297632859330914001616851829730351766252710692547414519600166149002068305045430342217285501786457795829868679420067458144688308032923552832105723743328436279004173096130503738022096878332678733628833442640893972072053729587027237097225139509747659469262832405754275035946497869878473867895987739108981143106265220878415858389304664898956807425954849830507004965293816925486114697846837556320474534385069710716329645781619965420611256456624994297370175663975206190824068648798659321593509150926274620544188862894961879105485141258975531228954138087156766173343773898912169927136405143772791248128314590236382645752842841710862373216820377759401689419480285231745049788167862445757893787408793933892851167844497316173928367861302219076236775753369567145731601979563221074339004999701633555533364354713855444133124298190883375027309916744256201116552023360645648909028509252559122042424887369856399949825448251088935230808715436585030223615898349504823411135337481505574506167353930942030243823116707645846477523005614723110825760496207637663414064095392024540703071907163168784381404991745645579351040248885876440571041039719812982910757224392178311432604542184889939567258208650575847189742505985154303222419685019104595359232252919173398487418200108197662876084303090981107815582637580282647665698080920636550165136599472441245719864058705121933120818173086014442945898992010211684038436193777704823718438170321811057590843595195911463250146623770320989300522376971369144850456158015837695894781386222463956077044895490534888572494838160761659960395842139897746440901371417068397556235514927429458711892061995312598094716623791785132977602120899208796250581733658801263708714881323687261847506083238605307322605884170202496715357535855565330662089336095615450549430913876790165495867334171157676145742183983833948424040798218020124586433274468567728405593166083369442941897075769224996399934195379402820786352786058394303551966360233343234479846478585025741562346427388627025346036240276570859692266862772272898651434112931905977807471732520343580639919731503550139187667616770062661289666640322948957892651177873871991638141854334653188379177110818136906425301447697513297085722215898753651282914618537319426401503519470659664441009282784006819500611668995687442649533256981115853166391876869140913887418653597206616718879821214000186924994812500021332021445632452629890378954479253859584721453921791076561516231872317642981974833549925616515863130500603555340270054360968957487955159352029829385580723746448121211466121681593088482024271057229676562166974963436703262937527877864272506455287081360676525752499346234418073021140864622884756371615365276245124245536161762158701471319042171386733722363754771582580088193758853422739788688353547801189288356265092392181600683571142633683703280043262934233029425198294538737827167569869397857305568727266165498092286482267592998766350181317542498992150028366876178143043505955886524639654149646028073343644312753220291793321084132669265802681036614348065382487480653432403951061224150337289024247631144647394382538205136889909297939587051908507198801655526756600604422229330881735905370394334511227288789097303699166270483890708427538196478192555640768854211985643003482551960363121983814450142629777740511141462414568316054881427578138048916978460210551185279289005653085898972657296203398410630676047919502457882955832940402632755048879481400343125809553191545407030739626322345608442050851456077452784711947573609597543852986036697688632277861677605487736981275586352708373944618746150536478010711600200920091828624121459337441410505048189300137067434318381744977801676173546258306290387710051285744115271720420145121107094564120494931226047017316079191724024809849632952299886785475736968153263450983708266472159362116581117860896542591008001963250687594302492939703139619244916996103170756624282865967499218231329999665446729176218435911741239536010137354653366111635068664840972804272112629281343760669351429388722588844223816802155278759816701994224731591428665713968653553224833290845662533500816377994344687564886893775369635178692691045393799911351031263846694856844603540195331345764960784531108253221138872981631710550116721492778845391018966288867449823100676368953389344993741671457318612542133426226891147862304321648151695927605141545707921360712460244725584603059929956182995581788923618476709948204203074503356149609191704167676378065217067716956722055700950629787847904998361720622990145116563371244432344743389234839849373801787905060334575267494895879992889534989744950276584349885326275047377915990637698512628103263413793141365193572276793769006505199018132323728896475460227618887861274468048753761350285517240206641329422637659585568422861132834289581472612630903150955697819358660391965234320584190141352506135888555426245570942667672096393090918104099269207408523715099698747148662641083804932954089403092666566656251777541221423644098019742147896689699813115190860254814517787744465410074198712627523179869512982375541009576279068595665240584191905393867851636585366766018725454277088313854752647770644869788994151846307960978988736966489114929933781329143327275707420099499475896828303518991872533935728385533737796988235267751933940601448684427978784593607232657367202673755761036523728342829812840781275278315738128681555716008301464074870453079538454652421227056155318708665144947600999022205156084975897265397163428283267823997303520085254544300149742198537521941590835755381499381666078421225128319357918202549139655301258239565050311894299444804840249327895839933880813390143004416331334436851401886253336462371721668327102673610907815253861159913705207477780548590442940993455433570444872497906368672426265401388399488451770121170083051400888510796968929580288995763803969020450548305182799080500237218985987007613558582901066830367544365899259639961437675914008626849595052447451044894634008892654681920389403498852851993328679890371815278499321446714487839136215249429488141934743831450812739555691756652284222385657783249258997748801810291971247359603651770251616850043587711869888579323210040265264030136237390671872883740002339212057495931539513873284001901119377901989644812352758877788697668605176515876052237128890252247885066067504116535441868720431749732922347194452933444787721236873859045135672413134583585725033803570977481988113090371342999208922774315850111763994691364036637074698971337723192833892357350502329878571334780230471624507298098496925468931742493886088423211932619457329713274192952707180794167370663750165198870225687254842355593069797137365095405315243423209982491278967095792084014219836368891651221492169634749879274244654594184780264411487658452666709539644181821191072104021867113575753991870984714658969572170832264469754694168482942774032926541522891606087336410383543781385796425615859563362549471317861513029810522784345594282602033787536801042686038852381012756172565053754845875640897998530498703401074508728224735062920441433012007628754472046545621579215959977691239822464239810429996836644065281409343958347629347973213462542062404902524289653537059035252275117646654229218299883791358332419265973388747167872451645206268466855198782203523994211121123719400184050056909535239735668005481031590951097730392351199084906946579832429187935525356307170113143854409229441471739914894923120396476485360341838548719885649038910026826313340006986622662366002620533550472424467598201673473384453371874210498056588047347052141513257271538180069250197967777805720456395883317396867356164901795885212186670848186102139882901685361984998406496578748069181518973074190520086381521175719822184419997029906490429586391632555880818107897170326457597948109191489068707303204367940094059593255735514630550728982425417528149203812188406776210358526618628297433587818937277234984176896772850930461685881072961821218850995155247081201229691597288169606925834527282871972675402452897231170105322294766935792070958460106158785115038989509596776395121367061999129392371303792260068849667074545093622205410963796669109502561191759073688572430745155462034154515256278232097993067827274896007445274018259035816182248749345601623308676815282233350862728611609339214374095074270271326775249293167887127106565687368266247820373306481956601133418254491316719091183499091031328300296616749757901767409565817906580052450850784785264576783335926654323849651994564793118207284915891715589337509045724738384927375175125576909309136250257373815455050196356003629711303907827548014889147943174619461982495922096125916063104971001992177370277773974869843604705726211318661284501506516307752992022426077096320715607172479143143981535067020677365188014072933600483901941749661909698507511849906822730501214421559329770379624538131605910008163882983965312605978646507751991318731474950395524684156095994194114042523244869682721396380450868620054459359724296799073802700573764206350456454810958898458803524997876636833716448031446394311025590241235091424600273585222870725349523399793573410111132339085335848757920718374260365230927675717808241026088178129660240649505181001050343550247948827352440468652368889015957430898427592045899571037284314768973679472473446226644808731575908085735464335998625509480729491699761756707147289755986264617387393800426647261230534579062293281254218424865604028104323431324742694267030660051159211833156083427823618526739423805159450547242426926659181085970998507805863423302689379399906044224221442671957315157601512128571954444771953727757664766479543196098777956623203191641559823084048500775620133086886102697535325202677681224029707594069654488800493279781500539471586932056079281181270543828604106223677862247370248384800355373621308534197698392584340542969986069385971966849775140272608367656235011803247717535731881849827918580119567895318367069237337072035753088476203880853652312351598307762520136008911118214911170601493613791520792766279745283897066147785637177725543208898327056326518090439812038710119179569367560229372967357345652784756063681533209020572720060655864437055222041977184116176159492361153686904438755699635133342106847065018986643242505508211784484524404176465359620666934733537219191717305630531710609754291855854030676990322971915358904592619276120223945817479956858409895543281217715150890653263368113160626731739385276376532790633840184125822937738844378314441059898515696766027273495601185284087158673434419438768088259295032379617381155211080546240844151960491023165377672741480842629740920328371923594538992016461676139058945386543537243297312470003789464361951130006695171289880643186076056688155531235241077480760877000174598626304899190169777849897247475311035258727192020694968564248608025258964365321108855365267709477799891017812524040270140588638066763755695197444910194542605658741604540569593217481450370314745679727938416298338977845744599882425602954836349181522955748882435222796263855563295867445671938321924559794915429571891965346343636745325777785248325161445056519710570976225404156879545189210617219231462553311848536517670701119327947887280369725070653624466461779208067094870627747843348059235177695905022003352137343404641810912459521671323933373952349586171061699724978346445696195137376859778837707493522465062325928009690370991957347747389135365990088659375552053080025101428807515986361816996851151085950786246705935536684892777197234619087219772101831142733669113300903916623364031771377385281586827670426516124785439170446114756773640484520266896575682510876179750593382463655432927395056843348332407734559107147659956760019807059865604149229652821980806633470941705213416270923478229350078381270663013603458687830379300472876289139331295920874519747205238146098868931354717645151616707676409342401931596088071713487459800269671938119252593010372898583709742964347867714636299865590253737973683700833185826564306178942115310525239143182822564938787412056713140655175196970278740933463757677257063649615407097715034271408398087091708871864477845113969193472109665154671854781776415749617071493911744128787635556727212513243223075996482756436644015400857785842720594741837070872109733184812091984597609754440498792174351066961717573618424761375519562013415818306686689691591660957097818366207855200426803731064142170219104240666545440970865521734061029660669726650077759049357336478061290833822988690299455179490132439090848914260335856704193349794140937671955866948583746691210595279955322990252518021425041635998898224921364143063791233763747811241902870199468346023451673813971096309716140469740166717058781941144780057543151228268392176258808564427385879376206941945856602823935359529277438413744886270588941199030073082531317160056290244638030463695739914332289654375272614336731248690882392054823074161230039582019115455693736746266506039873492993570943609927797553862497626408576567526278412768531604617546176844785116902629890563942623170470979989558192578144660125657382859023818269783369241037306539077529650476899996346712566541797295457423074615182803943945612906665213327922488300521151130997744963238943347670325470021323759037740113969183412985300637855300933559760201794005550562875092765418615529012616935132460332672784438778631883466507118780469116568132135566307977284033185906753513831179757469228909650255323098164436323084697088465151554973518535201312195452791091204676161651647439213749346941755797277351389592024432973793188478926663148664970903455893056680902850539414664873245892064152812701187729050675300879208510670804126942023476855300358450046453747612341477894753479821978231459347495149695410976010585430891011027309594993065064630976004326104886417599232626509828080687368777712946496840746138071737717568253163452697725980579613513956095083816201777398771814956139594566287836835039698589550755784089327913664215757889157918241211038810358529569425624144225007292169528962414249408568967010376205195880758203473593085124465281022475463285011705726544497925900684187427061728404373487594344192285127290227095507716049537276872137512618098856349564556910636356056367760654769477817542039127772407270284649846992762414920265168688171141738581485733965603463024318884801751596106158078529507040147933119983224331907618143324234411282799092598297678723754306856016913698636185650731192946282360535580674184541588591325718457456821827075951908458737580417474090829095385010515806876059192472884963175901261451358861786404766157410954700995289773899345203199906732921703378013535424021574149549506324359496763863827094736380641605182580616475187686677178037975666779620683009393108200226111837995738387144521997351225334126617072566104890539526012740161393102586951107910040658650306450111949124355422862872491019496585701772613671658331351311846437536035420804408581313967203344518370078472988043851029162946583692567784950381227183779395189970072849314534139735215610456487082228014374159422833645355776823742583329700599819206206105963196829957793167202029460795851492291024077609475035711988318343755333013819886581323660221436101993141436371137667925380856843445131170739035050031465838359608536776528329604849621278938476857869133555620603050088952987036127659216040307801245577232249412651921223489151230792152074547530271045111672226748596916935028303674341906303978941027576706946856099410800086412650365661951138199108455036275817706510542362052047032850835820503483844409483175393824784191168087248717319429672899890214434775153525208303454860504155235046348918788835329463407597085829252589355044854372199080376527967963058487864739833078628146385968233756737502768721058753402820060295924784190349357626384102767969869719925512257871060215276274028679509575314007410005970412464820252886815404639416266066160148355446279178806487231130367462454174298653115074883036864314603685705095640738164538551822034298779806242020262645077815205300563309672907994528659854005925541966832060383561426418386191179679920420929618287462984339687842353390670602742927983079280824624388092226317632572733688017808452428704076886136054185752879502432567701950336394755689748596711557329974151953793724802734584401897085251095219285675671123848669423436634893620223699353833519942435660094722062404295547895612741437839799626253918869784776122199421010633877885698531747247635798358407589298433048983708501726489694707676030341828833879925428020056388665849111271030193898191876276059362580593720879020052812907249813068383006547575945405659138259698800686805670241318296852719189351161654266806173282599265364739328740174274313526700984682181324213887207389376259454583871145796735120099035556738522562177738106594352347028255469737723348437848015635771676907163982500463695662898001082351575163136784057716769110587236831661973323190963409182062997364653493077426129257538678978347481726397144713035587730734061632052762256477459678231755209536934044225939504982690027187905378446592081184791320793540556998666465567910245138076693162517735541823983755740630221595906614207733856058984152475780440832777973076825830655034062495567693590876895292377026249571646356346202080828213812443528746097813884490549935300340256509458075064271774831766543600359561567695052377102107703220394707226266730442223545461528311227940293633642435244655621941968613139720132227566640815438442320314097187163294812487108067398082714042104689251840665841755614341555717034055743033422192266894691286278497755216165142129821610716294050675407161176631063009577948411851324830333991691770250924636076014540937143182770280845950641321301558604021287159484393802810717969001602458608136794636291901574910586209678109453305700085186650819183876106327664694544287082497694059443758131746115385574566133826447167961018645261734644693317446748488456881174042324520273284485309709018218649378830602257001546796597051331328578768395455515150505185349965963937085726890490228489656087709587414800449785270520194701264340380206429283074961639142868704213060733850787952402797570990469197171471839941941988924188866062792521814233012458924021648122753812547482413318727634402757051457692607230778703837455641427825099330146121610781460406460958735305318362580819399771431613663390449124313806263991932568891145115378814266555883303345304093382927799255662633252844712966844069984021687142005220660291873542442209015819612139784368575559836741994218554596529303958016249984992973383330816913867718081336545774984057820921176759784199872292318160046472056524716303188901816165267529835791277265972611164967815132490964425354090054281722345226375623295947247491094498124360381660853667021995512322807259894590608798580942206883794990383803661444306307242786378463665151517542733770896695107682307288982815904532194852271424881908434038765089439556973301974815924906359011407406853915834903480922482955737128995746439413536889148712156808618848943226924482222420008329160192625215807891494042917950154385367149779801190405215321474640996419919575885880408279853922273407809415409342706946911820353521471652183563762089128527313831842222913742094782179953671616629667090900692895531081020405003830391585162568283816769287281313339628044103459143025920859486193942475507309864627386309753981777787068922932903763687620298974491166917501930823252489936231978059590689088795661216544361201837847647811599004649725043181220204268806129909174998838755920895515162173029800392033352402206264493113231671754605943220802692956000008805712021949454491174653174222427532963358053351232586895334525011520782392271533420807165518785638323906836242638453609178345620354066341438994195681331169568806861238195969359547257514078122735871748937768604413312805888751935248225880883808429224679275984387115063808820896171643370117645863406439230273910623082352386883471868665893128903379540199159279701015032125642719062636896418740079052404439822480680620247275421470260503675777841211872706472291986454889044192311795449749061210751660440366449473682293437652878220663500886019133836743998122114317261088378968520994536713307152555726919464030410642165597120123213695150367741096713081269855395774300419716209271826444806929576228750723857399020582337792599931830652814531555875264091479840199419883444432931460077353074165773107147875860203060003195453161168452004357121835636244045921799903047513838485313167483679770834677186957369045680629371869624573329135997419180673330712290766448053666537843172396330005408627542754694917772779669291050663787277804651516163249490265289174384597654483319234982639722227452390467988866684082618009302829440788841137977410946048133261102430012298942967316808115138235636623975831813478467529113119733547898073517685518906041168841566568928372447363576371803334214008390008799517190859922022549215164360065397878834566841527447278385585784790317982169045023344268069427972724132966198516378291048976740493722460527734785345560798151070229295265425888336690854461971704839298154147275405636142535647394601511324593364278684035995782225882440380422038074176025145629180637697008786979159628463459803536950206519569294000588185516493098895619447807682922103433874204723429232792219188773624545631028876758736147319045525545808133487853150251771916393269069162985102276914464145095959641353400473890555159961181360828490033559125064956993447633459168428153925905816824097869729017563306204865612886169165841590769598039955032068671849164144106641591882942803556105710259874357192334442154177182433644452426741000835683947900724870378644135894090249381588948859798528425230646803367382652500480157028125913532804124131783370534521026458553446556815625186982370937977782829781833948557964923309066304003741978593229093727503816029007118669001483991689651266557326765345990059768030684755351254381281782258467703799635117995549531466770935455381893608995478498863773258804195384057263437395356416645746326861982694133765769816004201935270149083509847750104322176074885872434119904404221554874079331060350463451883205977083220445061652864502880066620135022603590594231200469338538285486945642148963736113203922404949710809213273928264838970010415327010843973979723697906440676408401980473417701514857106886812926630857580242538835899907073287256773916176109312641909496624802706483925689641278649603569549557524861994529880563032909570893951900508684256213762697696939262911804386140829294983276804188295040836868049125410200077131219673859961167405737658163379803472417079476635027060277529227434711104050749449821269457454100016839173091616314678689391141200636291324922417332243753903071971056693419658223394946135568177028211548797416643465229202419093957213500530405509837435500321510624778430033703289465333398754227165717163503819875818252851534467568438482234567717203112590267420978613496455265390647882522567110718422144101221601861829617995375678944492277733365153288889951158809547707059224723878948853012129502320327787870243085300680927463952513361558224076828069586763192821528625312016968790945013534709333086036934320273485352326022395217756312488556520767510957277798629494792298505443062808484013679551296010992017998376677319682229942566844941407792877351669885612519105899138552141333658492057499409281740761599608423970717787444940330287657398174803356811636665491509043985202271863674608466653451967035096764482739453017793075051501085418081357904606896147399704305727728333220312099064026086097807919736340281171056606491796431778401920813538278342422969584614013271327576926061511159846615022211279095367168520918248903809841570070327078571756709139907194255771211952895403935195655228874993854453930826692101346534037481019056642826713227162593791631934255640826354735534927345108409522668200409148829118285540285180765284579592200700687950954363368724564604386532399263596410904438228076784342282655917004117174017544999592611715526159109623652273341335037678242707372549219562625698790246320346034487390920933618499147260014819449354057154826686812336316088384860128418690297423745365705702490436649937198554302792413325501799957857629723713975782718100782921383318320062353826789055001473432236217979007127450740907008538800851921046474789696954436558716707149505539277380568057143101358452296974886689633539137804251685509450048850021766776944508284778449056533615987718556619855380224866126161884395242078578608174987950582048085438856026667783211809474585577093902850664667850596478800994448218298838273029370152278875077726460056028704803613444921270575024065353761154668805965533436990777472158735879235487957223926014021894150047014526621889971508942922030665764786161793417500268895527264825422750575710141843872521493821586611365550774212804198886858997801362591558765463121605094701884372703910931920469432502134766238559856052540445755742968985834923933835985515882809038926099348376448191439445235508341146900992340941351220867981546590693778017996841556458296085438172748249101211378986408167789272649435366240128550530050829307217617578685525929088049349445846193459281414578240961881273651586889193163165914198492398170039559728246083195580164072363081922498633324644193331063021013546225804291317390870743155464603876722166437158414463246319421501200537569622530084906112407717337035576331735350980295355881986871374593562733606843831460956734907047346342458998794056296798238094171944672191003084933192620261717348656400511117627499832279989843353976180407923032765687698093392745014964891905409684937195926259492220782031587587967229754107103531729239483021227887696796116356170255942405598331889133441270254765864914793567179593137731596394694616218126525811845918422116596406366277010698976261664668883468901661644419228392940985407536310383687150204312021735048657372293456406641548763491403651226438626940749527574273908669586153048029700908262720733381300063349854837438887191621899238621386022781053199399059442363239682233122224971518348948541923687748121053775710570849150665911046278688059378915202865513962399482746915145141485336808681460132136319918054129936157928822652396043278440106986405676942354874356153166381210645196405582494371074280916561331226771515558382146736362462954723939806990053930856734257331376134014895761377291512776056124515877986347921364272438658363648955919513407422464798296196810179437988063736702492185740733319254312682758688852278188941420476214343671959221767768857810695052608703861906254740031829109770777563742663554874491671190039738872821785991661328966057289622553346601189671537409954431812369934771252578291223426023460774874408856049576783891193763856481332678264004413853682121409260967574454962135265091062361665570725568985415871477975588867073492259174071564961754667294564220520129463657775227307773268265484438080616592300962113866348851058415605111922184711685508055707347531758667438921199871185498442731852433418746470024417239031194432556260736800605196550747964220527278421021209427282711788674546380118429409872490427814913258303367053316712268835479913644936264415961014195629384616259752359134975610886618840685670376277345700771281305731917490380652444039874401920989803738261616485212633344310052023125782310382991914352618675345411937920188693177279426466776378924307259642185815500793553717282018368632055299925214413021057640622416357753135075858273652975256045643329156884846032534058485991607940366134527618507862520717109374699932314661012619903831755171966899059678826522526300224323729730425072678295167254253076512575389479079604817918489968252622517534653942596448343708221480820661295625820120312030824246339860378591883450705005791797742065560491980297755945366458196584199083911240369254202787007113400249022230999529864954793241460160184478516616839424301159089799107815512441255556337416600618400124858885848852659131365758226912380570476255778202729262706477170325888202477068629123623815700061422415374546252817977694301522354881888978418408122989280320429296844678644105319334924392476836071038563291269486772072962148320963807300334328062683350739759626011525708447196882704183414067486965995666109726769219094972916775208131681520734652763944783497812596325688978248233700899053557949291968956016610553446428476775716449395531888014595651798105163100096310139311810975787748857477120776761711438270361927269550222283637584359988325583749003654780064005388182704960250228633653876247364386340209873891820738134660188561156424761916596771150169546407227121727451509318038711499782397620783931583179833563988711327694540855048219670940360564146281507462163291698068689882816106916790781450784390059739477591841485175885967524956703597357383214846603023862152465163080846225553002384130482739484053651447204488571040623572140944674517302927610027521466646106415719631156578976682668815022188823792854794249586528668073923458904245363100404686212182762548714829855735131742802616907145801958083509755652455321661901417705210434700005461505393143868914221012518689663912909237737641525736129673772398616717420243096633398229936920854444493918325687876859382683909854681713506288073207600620486475241374448073475496493553681100478924057168040052627951276271824122056407485506266851365347185255615696347444251619011115997531686296189557328619006511252677134485490850929891841041116978252688391166832306268819943876257102032685723145051815607730024858347120605242148458259623119413117126739857056066399050355887477550666061982143812024120986689708730521078283038306468631325617026750318519932513587938947742735499979017838753230641072439542865641693181314112693970798419236264625628912638964017437022245374518691552176289003150157962446793173446965012548015124296020472686648489930053131721206952770498912221499697422399847727807160294663092605337176991044101167514460709368863492110030885199111781950837483007947761988831275207312153152826303861250680252145679227357863654354468212554135946302157256853379375854035605056468490303223424435635913875002987189126484414755981186963983987734525916290193532344467684019941200530709981408201240143115360879571389600461051593503838782947987260525328374165146423111614085185761449792657930235312853614755948883986783108130761314521934336654788459855629736126278504297388811331209697653230521120607436776117689382863058466010134495844394454643408728062148681526127509255171993131864543678167587011059280283085822063042634065685431256138986879941254186117477939902460750172403165748735458085240060899848936619575358587192191418225550731237859536728961976309616374160699189362315412710913524985045549244606829175794542489580552834088172608839484489566582121759982905468069369214876664683891448451909478359990040567345570898060161249640813404821445039004985788958390403361580151532781222018986439628673784913832718851354773697503547660510632647586474652848075558463526268741735325793577681482856114970032404635349898247308893699885669730571869899570955982156964438271339796786898167350426015157066789642013443782906360382779873779146654568649477457241783086600573600551646514402762508362677901188528175946325765758608585974777634096892971535857531769085251758653979814139805077929648927064721594734271422142949411125313665640813664052862721453113508481725081650526611401990600713087651206881489369179841167857449810954533312587302194292239149322661504940343736843519063586096768851925050244636841847244196353898648868490745534754705621981757893698684097744612401924326907901657593834138694233367569611766608090056787409093508150433187911658162780737262542931578037131089852737823209229018323752840285995129154659200433756444744520594123465842464670240299951654121177987985768990671730482073506595097863453440328586104542077244381678768906828638010741781817833265882470955991750524915344581286045092492435206637040660701048451976566304096497145743890051803528092578023012701471294307224560479156260801092111011535154168683219583555798169701352428958245735867077602162191427453883054319426784301598298037686521128498852056856201958449567400575510534653296529069693036509721326223096893238688235724428020281880660345630566548415154862507110667997050217265379603891930294041019448569941850667667968196835684117869787673571351566307461488846415804667519424395017526254027745597519011895566765048589251961536485900131161800575748082365691982636307487275936896579631314355405381739529449927948452238699138330981287887751110272453101458168364511175661153103146032163453547609599579341547505191394546484391953858518751203265193798710757956047947534920952765360667823471762742356651638107655934112373384872714800554227636689523656387803169663966796769582641664010838890215538153435331567307906813797406858138995744410703631749246726763351269974778286265935022605583478122696311797625877993300360698306758611341137598896878260375886675400071106758310749554703198055138857974642270384763874913418217060865987091414093592546661710242678382517298816656344411261696959618084558798114270829778370675660720713474605595179252316350120351015644908934044301954137481266159719783423610862036112436392305948803702497431204947947107533600484294219017387359429128078058179653193401694172657079740361893300557707198381226110871120677833969582967197613703366587553385682904387797894263192414200547593474065459048121979086558320231777826396274832714446694189587410866578823325933853471646647655727026520967642647863140709305121862802117734431925323063112403277242070686235889436518624896325786349104473423377581754330520018139275200964775720149925025165072934335915158699156154135241341710190296630422122136510874666172039869396403577394496751276815283513614955372741488149957612682410389466849476845920578544160103663021514607445742921278944767036629187832665015560269557262205303075971142073371000522518716100379142719695463366058444830263276662714321651272180901941550237676268126217514004518950019910784151581400815660925399999862820556660066662743163165640680471981132513048858428924523616433484054657481675932933093149647924553664222413911993742307265852800386674989151540397499844641696477064845949244569383359277305440273767674618213978025005531302103758841249037271088289903096210138523269072007339319602375555798890060137273413574332606677558559318957831206833469485025640194602558708550657469677078881559924735896835185954787325214219915896108713702294988246658723809368168389241444382854278606273356205632336998515138335700740058812863400799875588024134499454967473734252496536761490850718717183153539656353550307104686883306539554204811701563982745272295162755053720854949466489895531673193600358422417179170754565654037715664188265951818470872585536828483621365608890439447938566038227676712189874832240841338082315838317080240396345853012661001621320401760621580914424309477270591946394610722505680456435593854248418609942304217801218908775900222284109279594208244087103236349989901221860205381219179226121277560370433448122268398823776540859863852745189699752908298350290895923563672836388356511052942911525681968201368592313319032413058804565744007867997995543355630096258591281429691890945898578633331306276580022475851117398506244757136156064698215687199025907926754950327839713607911923119611776371471646845046017508866730498509968403219046503795252324979634298236175625532411416061449480357379727972088893214096709458277578848245460634679997296318396172030999627869772145019378399424733238777665726100235418929395514421646120843460405038034622150629154754639759664401829150424812556486043010335531970234665049289535963710172350450494806222298780263146562117208243950428376243738093398294341263292441021053856344087066019069367295076468045783249939289649873597332979824140438813539242918960997807164893706923170971852994719849125957805988724465921856827917127596884195201225219472204887881217062139442814120208485658825749019846681375941345624408589826391118094652417402192860401325795219539515484940392034750211785513356828912414137490939554822140317757018796481053848713051858611455886130604116371377988579801914875963720124030921911521840980311854388556744257973072384867659952793364776542699800351481570587337905508286899615307211086310142383947984301804623544212386902425649484560926037028582880700999186171623977094840745678272306055685275381271484910528801894701630479742313868154785939227095809845406898899875216724220501472646898690680596821833033346174796925743237930990871729046433688717872722686883044551221243263890128529355117003729683010555532490869424931785054988143672656636545397049129059008252544306438835351119323013603189164951192580969839003956374309639375137079054711711357685563833270068972350396781059891856117876214947680554042185787742864850242179667786157022255599954507664209433449863596516793438646371211696085337384743312552906346186280850396382845671511377477907993054529047975039437040932507752266530018061205452590768443964377216030986947457395081510194930266065219696803040524881842788055704986161674291068886264537243420401409056409695820880287509792085389254479722617109763314186866066514425505927966495135086862594588092913276338114503289154093945574575722795743504434607573222121823101338426238998814392649658865673529396845192849219688175870191736588752895008538905176613022120373527596704910039360757179952833486639592105004736151689471423235556609078831828229945129479305826749799467524507199349699675818787021858127962243287755650839744109515478479558387730939422123337551240171712506332412527120923271551312957445028350259016125909085797918887995976431180427298121558702679274057298729269344284791871438096712564456817581875762797065204218480774836279063443902968521076260666211986873020543973244068852514663113326956465855284234762122765132501957063653844324943536100926265344203996975175930028645442377424330975580537030352023252822181893375089369173838236478262693174229449300509706457883464678482193256592733437370707933414574690058267173033910569214487622169693339110055369770440550997782728673526308967177904965029668422698902103503744250610879821450090443579743122790920790899682646867045808845067605233259537115625626400234359755445488934462925060577900684254793590157452298749384840340010872965419134796790547935542256214490029947894930065074652021596379255773943005811761153776925840921730399121470418864684726572582336777765160709371235579933710290978066670998246528958113135295570978125799809424921069986713888408875052570378887792521494184928756543269129003352219809603994172745244605984100403995494219859430538330783434792502482662205173802720577405094529985261177318224551371712114192420414093075485653686534674021337256165304709456710775311718055732886429590476270452544649366011358033176663167741580061068629167159880572759972803966900516567157618794007494092561002244598795956127012820183494962827826009806856161482887573451545796361002344468870674510824903101295576398043580838664787952287729133037175838497148131923726880801011615764686623072385762717092845291416996879866531203861444012541419042732415905259049232199279247033473490155725032334955346731611468579087093841312318111341909560824303193533926716655846517007811092844629227513903741223925952421579270821442504240027378531234445726720870268338261380366166557914121677747958737634961123385972922099226735878608948279640151419906793157608008377820656761051211394263623106284490736179995251654024669983630470668183037058119979588471480954610104987139787922128030604420340422933674091489266001529519137427010958547093252973111905123971379561843646568826657798295125966433016503241985721900019975931763062429796509163821347355705666578286229920491145034746697574560894238549191695486817809056721731654114893139335762552824682488451019426999800825624174250215918735756896880152323011667412673109843662867113579124957096086669613398598662112759343467884307514532243119911894142364134067666677010280449520213542269681533024917536400554432572319018789039879061900123444146937473118330209451145433750114939515800597021552924655480752701157390246610603701133304908541732899362213694959407730478708404854706411686677520284994972857665083931861850261452423895701165900857073692667601509268577391277836722243784614564134437736741744220752259012166808358602880513571677914537806028323947219271043949768600943342872407195181989115085520164108312761192876630279873721264394169648001982667111004219570805620573901635275599959533360957880304033563397242033926760422545933875504808466012808946431030296521734913004340475583300872464008709812333093538663108976005805528236897926345303679274957157102975028876311607098378594085479610046607702489675155811649751967641069446494271001559278078913930733941014060826985469251994966240679630862165915946674262040221697353080435634750113184544897187705871545258808465493612409654358955009194809051074944836146976395169297363491749465169603833311693879969719824325476641967479845863869208702885946050519824221656743369653913821593592844708602603888496485949367897743759349581671741573737037933798577843416241305980649134364348321178446520555827250719584730952618332342094231136562409687382083894940275303274573564523061362773509041267214156777821447577661832803820303357349220545129950797367218831155565714680378305099141799460706175466722896098489170335809619318408508171778515899336196719166266320998459309834671742162465040359565465392851974735090387515935610087876112352363943268346998324012991571796459479711248706425143587778996903915969819921764923702575821282490609106457821481026444419635817085416725190424630021755093696931297434456719712490539816406222323550540161414695191520820296671777717533670049496971991249408041510514924279045868011217823815177361078751701058819207013693557147592867386040034841200307501456299698745216484948585906274745584202579220479197226231355720350585336240863791631347994811097842966764630647219420418726840272511660971437446267350557883838827423644074141817425781263433974965808739485395091532846995933170585171622384650697709704018656746366510037600043280413562534708091370937247380447091465062016006931989759547841092083105629451455936255641861213542366884459394940195616128592592315382915750699857279316002013612047495506084700950165197546001472890196359566552716301397704585455784712953137240177845482564225154282865423117692216673068318582583880169525051598348453175470657514793972691048645349433168294925914147469382715792343993273894129431213339206270433131273137325473734710491046918801538122191563767693086344133462932285266443566801292691551011926486937994898240405978266981912534900903616666367665763085298466544188786527767348648890341270768972898725720191344852949782629981566897970412457957001292177753056258874269252681443594973820182579880282053463520519208465212861040707650464807358533080846573301365429070459047339967333803359741501775633719452397921128420635703454127179618888035061792987602615300557544649485705172768762235240451894313462407022541495729752704269556507780596788159320998251110855071419536375776027961061653826041715237836708399749220072280891156989817432251110634651024948244951132626547832961240390762462895859072707383712425945390267967664860375823320041807151447869511214411197457259035932702308802192445087276154129324545907194655427841248495789402364486965479115366752310044576121492855522397684513528481657392291940961918221073189826448195725507795055222828940090308186985823048677765047927852300621753954769097380273439070009411327271158737572265478883185999856968447958661797633843534494179817480513135239023767724064039516226048989423747792407809533172455562581017532820188414954610810138173902553574998924810890264832329669374543999165718322325106625408336444500648805293627686471799433969252371614232147923194763553369065586747567770172204074712470170671127328474223845473339540404275826010261401578509780312707312824794857702234211725679050800999445848357524665014362227303353936018416670613730734839916780690196695924812862665381482882784421149166818928100358283642800814138505536651516671028890025466625322821387047529076429321854304290536149779779465872268387736600454389201648869484169023129468495620637608086770460033973454317496009341334219906820049037679601369896022188439258086076696396452386162477433763113147727712538355099175909783707730405719159892868684332499248189332508186058730924994048449671485174876206278539836905902575687413262912032811897039169252212439202714048961932452380392425218549395122735141706334965919400287710338059644031798252280131160557360829865722231762953092458004189340422989242192729964317261632126892632158065276733614972772707098804517887327328047029422804627383766058677099282087527535798752275380417703776576234554348379538412937497891059968154657325156893245546714134945503666259643078056152373123782539502114451868726632211207601814443719965880126513212792092266415157613718948056639203734346200707514166040925047804621878283342522286576112038244579608709360785342926962010184042596077223049475776728652859859019405384015287107979539028359173721872070767550356528295597888916975156401379963660158157980692137188894476741062585119541182041338264639337562091375914726096286537353169683599540355805909292235705712887997951422408033145662869162146085178583670529201274989556651581049624573424135630771235593074215117810584159480977421606527541043151378596788988249491487804837581376539904532560352816010055943710930571028073952272982315449161940473409687928080131739466991846879216135738271246724082615280071614455050149718315448207136041250371176391204064044391879739989416568239122321948189402887923739052317543039803407967945668680620172211848991411465868140879978728444857331376340358006354543223764665514073078491350242143877145907560612685512800326497563755123769090442816815248523437513238489960465544124786248798281860590450497956234553223906689248849592082879497849422565625809886004141714084293999927001421906208129806781312232424397914077965663516785308344575402816980350607510163943077192803117068770482548403412517776314015484889880222586273843107556932861124482267922442971741784150007672530643887385370451057315595201591897647735253385319947315861931099780383425114393049846126015810076206260551967540980906415827709655172695661145799242703142797923000508317523105016887078324156974713313728137614208425894431153761803879355892299709080728657424658424486205686884891602422589188236833634889346535440252478817339386190630573166730032874447714554538893445120698169841343727721813274842827481197977212176602619325710083024209757525150775922128995486632986063899776298256627005830391860977928349424152518408475485371381353670428955093541370944391471352990116156381390863718574850003923441407107702338387155943387482318351390168674756529046580674265108989538577453009204324806684670458859458863577735497164818786437562462825014950891911845361889734620502975175029088205674965907579707544818482082618279133243670819643940824217094287789962306833354655376406999302545601969495441700741400472745905346644125143767094688289559778324380490051325185128531839704493542442280789808642894464813659653557395538932383229170743307974878866583184298264632314684571644767547616482998694199023814390093461690646660019506437924979627499382584002033116770792433601718121530780610537988538920847479096593355025103178714685424595215923325538361695171230364603738274179656015677442766389353990460036646158374062201769224357121282363986770593048612903230873190065800401383645339660159709098468296211885515371130526150675714851240083789866464627595746077902153191083688818141668245418155581653195217542020452807032950106196524087945461000181403517961473617173506040449707604581200196100275434622639345740598948773066907705800030445279112577490813842992435971142195842559892098747106988644270642588009607514176514407730384444268625251805799375911953191125979172417458044278801140143197763025648338347504304920501870741200832188560983118124790708873622782875442634420400761249025741886095658933450131353712547740648238621182449934778069970422408803885974954975768294194761820939143829276065591172159385482528568070292284891486216848885956833792167789496137546718181923757862244407257625716046674589900131306221954085220264066739949566330663079102554467544946686939331961492483231501026241120851370202770923694659799292393527659661584812559453742129083883070982041604713558879090674191328357613011491542827194092606417497812585012422700444892064356722740246559369506824289895074804418329684047348542269983213092782046369830828198121035196122944818436929185744869729425882705995322993091091610831951748094979728243592402043483939753579517070457658782139406388986142096631664424748367502317682853315571104501024178249372744412816437218116565844347008733780840496494367303749152932839584696080116077068148500184971575167024173212641476753158291077006372335728466354720775094279228331856681222086517409121744020452694212564759477362097403635167942509799532876161059947487547865713927053187682305876763659687774363519544210628056928936273686130243909579421316071731982435257066566103587321976631095918093137223017784513819428469968533615254594872796126526059972000850713539165629283950041808943970536645318189327783359145256946144145155725822656871732617437944105730281586830122422986101954546523354297070676862956928744692490228852325421878711225879460379024872552763408583032224960919565328437765959361190751182962652890163539216014572890921491945189153688514945757124785299108470628832792601068081874083056391744023138677353842744073456676123664229687588953321550067689300391484723285013957882805430840497182219775005026697558108626906517237509968225536312041838403943905436971520028520347017472331542600989082232175522978968532387371475589644871355065459280568028938520929868632780343731197493147764243355592357651975294450644425471625014612781022264542271274539277432602874205644289540184564430402179042789861481909842554464941901094029601179600595567091234650979542709776648079647795108265717445409244818757559472377441560618068947296598906838232044443867006137815766981647325867944193865558334218986605613789849180297821296225727872312748775258187814133382309132600773588864447759356777106517933716331941302192748393415893955987619712340422376649894735872477163409145253757766283547750818437138782827239448938485673988317667747452942790075481946880203324652585548971826412663472067899045711012509862557164161791961492495031426053919919977659750237435465291639655869992128143157351240479346650622605716349398369813477348760779890127489949130234520128854421997482622957617765564734609434712175312662124628419867548965045581528058583496503066509704535983715599185594265517238835603388382094626695204183658934200275845799843795792031080889029905526871864420652030381414363630799996471437417920692128152026577649203875775544766654034354504385584914183119036858821148342380268675277816224883541929209758798124513583875285508651310813646050042794328555229405886613602342440808492561176717867119484231286626822511667118516690440250808707195921278953512375652842797959844230142930951702387445159323966280347507793240792495275032515286602782957475522821139039107287670920791073821473887874676319517140951650108727767557313585494956131595397533472592564364973525230790278832390432171926573535586009395859552072232033783274663037749322336285771752234982444563390106862860085961084220066573502467040760388015900327980529381337794960645701884458621044561019781925950647900633017818325665808103323515924958324863016754675602064602917035243396244293743386963925838100580929112270757796148708284796462993040351255086901522347448299380562890536909565037627382274225365417205832992752943484241235431427286513548793556806455899538997273135600622268727868269052498279185141847262121804637026769233453096457417491800130624657253741841284276918330276840034418790087979589080383610231688510361327385600229455991008245889127621405554805450862961221819574482686366417104318934196582507313052580191896944746857986384861890923872026257031672283775641455435840388404551220721106643337141679891591054307364394354359559277791299988571877935581710648562696966575111788371694469661516043818152629140892499208064091330125946514386395757858119433207470321730642452035682828252702596657263947117651820434742873008112961352268034756128927582095271452609480457514902028145243189719761060632630030590200678723419827407610773266506136950356818247360475680035725486006122302118407392631066312941426800922948085487641420408769943026930700594918123925393087000366687705644238795773931148958619665155922211753869163781379340550037955167172243873384673233185029330249170321974626263062686509720195610714275791857266329033039113806196907667201197706636498737311210431424151459251907548042697970003623447447197102091658936830441531046791723926343712947915379194100597583642726747872680209692502270788764482492692395020700331416310722192114390758815870080237626824129338940647927017049870495867538347732284485548622399661391040450338630455932048710564541780428223437365939857017848763268043120650049381283164915809026632247923055808589833469637573451992671348164064253578302183973316251865402211771975281257204821840247637166827506070261872569436310102750295879704854345635700894095901243880332289037622778861602464994352871415782716760730741383699126873481120850572343077621766440763651093784401988952370410279599472868934502849095815977244833632222652112879848992284351384451210310856019944769087671604213423834424246179428723028889218958044346088853606651996875680726075025513320716738679155402581590377641689966565372956675856931299828775639338702484866181291813907704469740960523911850299940970081281327772046995196976303305157188561890744782374167887935188501113576981425383659830353256689416241979517379108776773012367113284370406167716786886479247723881676510559961409437267502033142497460106577972111817824911530310483675676072546861526001860933735589844392511859443199810515269062959126089918931047139454661915853572477934662240876002115542508338079159937360860205478761239983797878790356832039741280411925721685811304941340189066524904620161271350311408362504224781481861884894070878779443213093106200409348431942795527549433186780984431972113801469399568898626955938902629819999817930477617850568345240398461411922462376417369990953356448606335968916727443203525415894143270731551974834731605264541163081189438845820093644023328171653555105211212716731314534054033535960769920872416343400117485748470115900654375332542825149572237091850359987701269012586251610697959496648440159018152482204235269562144452635757343671681820382829945658918729280559692027161464704181747247891387380410853885388466154778362443330208853790330347712473698854832869506949346016084857190160097134223026840915479987914810546522350673617296507223882739349929677545145416945101913721354685511280358979446600066336141632762341228406411526354242868633867813319651737188920755975851649568918227911322285329458581991275373885071630977451683235050070406061721963608711710934280150004859369163787255371807866091516214491764438925962895077573317054475002377307390712449420643023867477386365015829147471480613206732335455906148502355671975402777096770706268324456871835229583375295112936990178582557462292135967277656072959193516307873782412118887435948947891168103682487642106512106245863960934420592156877939408652767054886479619707945702668941794223357985295473345451174386646668236555038413609533454548845668488541844189810441836208405945331035508327122799320999489653744318888647002797144012405790387981322358068676436546171709102680820429882548507754836428778621123938153322335442816370394290698817271609643235361944155274281259196555506701544990059095563939406786816124384923788601834990849775667091141308053204419394257943341191491192063649931774825710639739450291146650563092188070389114379769891421291120162402393565958991108432436978548313126026878290332557503407888057574805941394524054946204671995352710171873477376786490536123352344803879398461676156230717030706265939071991281020862556085912942469431734849193232614727863357187817261030937448400772162099584374083186061695126732102555609830138226577518954443710089146094689185735304973068190414807580704724689329783725332861133228223599086083855524480970771542143141222024592978749511386278303137042887529649410922566979186368885207189088269024047029650039813655645624161726459800336166873282678524793224757791832886563845176540833079262065858365628715013465448118715432812220146396702906842921066603332267658343100251754071878819334442783606248048159256819418864428016336889621418918573671963359235164155284208178592539286999066204377313772097275872644781855845711512169693620918501143010373680567019320527368173264557426901004885047169870372953752931822668834366357799024893226379277874292392665803985615269822653761029884365463817398944197504530212732996255115442698829748322910767860669488837842471320111551784523382554864500517814066914767484614321241351019836545030667389580881836053223598452173123360946836716246219935158146100080600736166895197936388534577420179659280491944226565085923997657999444653165082010997324730723624064498761505407510379625488709073725280442158098922737047466925504883479110521629542617725849314247193622979556241835384593887706515031122315457681781376330063278557241235222614542389145075161402646992568531451787332994959572716765565095707682289186599659099282084559200938577543623736328717051875481849562309647522375272642756436357919725808769478244982507761779030338302803345316049796039468871409618164723770994248940881235949576786883141660487396304135279384389442581748769234866181642389505709887826902146502747260693179027054318944400071327813573511580129091195486273598498597435512755864914700653576762977864288264354308427659309775717389529003138573688329680933626140621955858269191861076369764633063701282705014565354495134760345161535159673415336923051211561110728209469214510952053127905821876655606250634753741543649893704430875049475160566905637036921394098980557788108022230947692362907239711663783436590151843052871271141874863576280293164300330599689933510126910793366853421527800791422227168844286551568535452229021226504626759758267379772549332500842318182160984730100357151935368244620172109968588367394493109600141647003625442255394033663365248813103524444835261402275137645829333118668737767804059659446638794156102926661232422549226260359731180259848462014820613546712844796289737461937867241905254954350665259022268417378190483671666001414210789310681077162330071921023083348013308308775712871372388514442942140274330250009067296792224659265073168102118267883485126757631498658946839456215970265591525654956209063500494550713748480930675159416534184003569110682170144450372595736812528309130611730188553508114630181805362877248064227044536987761199844868511344360890202733357906322446451356459673414262407814686598952713045102720290476826333997238793672219869786576090600554081569443277431949622168292328134402018001748248294070336679741235632074318859180597151298629712013282544858276238171392827484302759389873238454351944513659254858430529184045253804238342220468372965711198827001174564172463543868287257209089371094409735354595250961571660515084679998601146591782419489795128053287202425096290198027296503319761611400036746121606818847037486093945168127448496074828441010077274242548537054268270254079818073212091174198230499132538463208107819734176177489709618601683097960908475565400532981173937877395772063152157779218925396151496105070067285825162679285468085225640337720930051267094477489620980121916755446574661474203634177286507085510239175422570107780017864188966521139257103748374054513406742182014184544636313095672068796202844160116191593281262152074986940749542904232508549498727659544992671585540956743799756468137445360221984337139350730545171534392533413665934419057264218842718811689764755868738953451655714598835677456675145758026969124585513798303032837550172925092814950059456557247717370198231397124767547537426060868562322781369946942972987412535894680778964213914307733558496811745950693214369689768897999984796366234746873012471500441121831465097056420646260743061648593148538926701265136037832660288124163554521765913216425731315860259634947533680777727335618341611722650120228470593587062967199963288939432416828305990756770257190901696845364339714855575399610859833519364038508882674288239496020060862337420263137589021062500445448635702544215630130312218477754074117149161923335686840705967607095488119395317583079709068963287734973755172033615154192793858134377789151340513915357287580179208276518994570303320107422426986950273564108418508265611154791582587162818721804494394137594415626040115991831862195644146300825355362342766086602758849603115740456871474156790805230283260586350589357493426272158922116669618787058380174793147329409831001273512985949792483910688313927092514122786474473648503197573299004362076961201218641634044233778408083832414315516532245496319977832924053728460749227227223905399860315359114887773178225684345462285785857154809690620455490826696340900340828884281233745994256926198848808851728133401834327930463680982006453354685204586831438351770788595111835073989870478309296255613739116540114423769045028163493279177031093945026095843596741637903385340844199731444110988038738302857749425128720749803177719325551215194734159872636450099834702970718767432673340803304641366287463186395445349679117128664493504972099124414389204110394071874248683192351639702775830915465105664537919718734120639894087494608542491018595313264190879587337401477690899287911006575243557644959692440392439425193913297702185319847204858810649704177441882517563537826864772762355655066010532803624402907283613120030718387556729133379892668739313672848678499747496391016356180076530907477702907662936104161015363362448861759383502274553363174852197241382968676702559256357100941832951737020114247308507020232421376987801242195864352682896113534275537150552207936635889223224492018081890962549782987976900602394934070787317072769759947537119397221682238279104053792246471961805031017074791805979942086974276757101196977281455329396742939271783261956541969176517119861661625096889070009762657715562711349346477118415651484109225677843016484923427827949429158267964294042842695757034869245464351157233317092420884854702588446876318677061470987625210555339996027340111489597086974602509520254000578847959670113664333252067180335206207380889583998152767735806114588908411924385352736827769397895724412340854736349824769928233982813657486229568687472315523019189442477604029326340962493450464673126451422069226871542953095846463096177893081707205885848339979001807220112308933290544852369962709119477829403198290423953755313874174543516437522880868004641850251720552955377749525544550972461220502932024807644103184948723356897137716014568057414063289303033971597734298946790150169547291232669229467033004635447271813440818147896737924934668578524526439107381496824946457478012531120348693082727697072962924503342124247996437472283727200898540169020521462830370152572218728018099793441110624747030160867930568990331263984839644282100638233134558244887162549986499220066242389650269560710064070737010496331219692321980218303101278392794361420290586265243173946911702902640402037346356988646900289707840978006499174159717038927413582175566690573443605657636163632753091146014882643741471826386246919152611408261757815142800620973458930419815530976622503522220122998682124729522478681393894903855834915329185158383336194083802015134750654099091463787373295571257687815389463401898378611228298047224231592124708200983452383672404634814228875287536057332060222484365785216749814523753021365973419030086723501112511090785169050908589782541651218199773898299570443711888692720345799187406223381014854246912165796772692903354039300697167637434233360151392105778993517263322048289634474404677160312082413820972146863233486644793801934095486182083323500324216604693193202680616557454149175789666123951998651581328068901024126986228648953328074525197355046360585952278576186169061324242702980070701998962735957908404599925371106074979839491239121228599881912976447574282933570243793334356978554549788724697239661769333685554929470692348799709579872902045031039280797156604752147800438761273977311666777275757506135821640577257497084879838247100949238733873469140674851983932741123294946423689122934069646179725618304543528803532501611854038283750228339461232280343366099012335337451680853482408021307592480356907128257533593817082018565816317425280501271718388723733530984277457454225553992215929382587501065397569959217485022734886448052881948570923550449756095934784992476244109532189523123088899218827386334550873232873511913104842316856131748742257287846760645450720937502798691303758649388619928141576947697989215551132894372131013381562667599726338310122802826195782453366483711322329480160946809456657081256812440477119415101468816611211213510236102842310768371788719832596651049280461441624580036205894961033092251524304961923377801443896058675304863287421447910838999844203049820458927218141824287689588996559335511511706918137374761791744242626608529361944202466449929432679518757960106861009696124997489310209605997830976542929255283707018895743640499382624487712250663677139427161814206926191201993007905975520706926727320840952351663412458130672047330980794586592588037310613564142940543196345324597485883511666570303235210248664908893857133357327948649176349491569285828819046110163604570180712019609000089254623749403699460821406920826840408610847429376157518631383191022781209941308083571851408133207030152488153594189355127193094361852161187388642007735720352815030750831612413338315204885893217858984157211827284728159034785839494644227613402039397750777893793992937363998920258585667075970705570271771184752337530324165947919305634663832857944618311620275083235984341235340501503480858752779639043795932502195594117831124852175601416113765268923148846601013117182698202557291912872642992286569839623073977913563086024672583939637176648667500118505428576654698439221357221181363032798982484270776027076007328765923990272250314339728435135454963995857051671717680196025188567200390373370105100625099740956617782034390781078966332964845406373028249551194346606648695614797593043023107965424135414458341369489741078508010525397886702044037625486439172285080553211783600831473741792030531321520527889149456010226958650236802251466218019012267264704420158786474029458383886397968673103447053638355554840758762501226503748075510852378580041000739095144053730477549251980060220914911991668888284063529244787153746054201581022245834109688744534776641113329480513100783785918965029104661216645166536856103053374216835396663366201328536112275329292399440444266358532879167248467680118202826459700292499075294410135572132740439172641055478071896956695719451230634538748487382279005889098404277787149904774110185201132581484579809643725868780851841488094468876849884853574616415578660437445109751254618065758347142502223237701233223077366353569582724860070686882937616021674259011002350907719454523321357290608903447435517976546466711165335837781700742879805378973207361208727636185863178849903571956620465266430686803905622233377619528262297444899836362098558685798188355678695439126216642104885949264971977160484025751326715229935138334994108465916356974904513789894122149258100209472658609780165797710195487113892759815317042531150466627663262646582717237253295848866199467062077320957100090299756511590774165041584878800481636266030695932057626591206441850149885444947964253659947114546418299787789333616218169651936787438515309136836297481486620401205253563570131703951316205514393506039641934245534866169322380731240093926333365919391623901521307032627809987232709933209803868874753136268738893538319100504940458849205428093060690721092737036023425960701682891458297816095381955182733135629942857473399264255404243422729513818254922255723362288510647349224433819346841228116207988655441319789774100324062772696958107082081671649533343410895101329992605020337898626350297309427897144106207865647736578383845815934453917520081787600933938536757060134343465007016449501469021124078103345338217151034721847660043092363119335393183644414998851804161682100240462213827553529889681654194138774613954811785071888256256067232683976630352313215175548933652380249571239163992720010195658262409313159175922101568445276698159538976888303603605368516353598831376542985856884643472145689638174471833945327658281221273974304633818832405120862601955477442768773042418169537888648211622242664486547901368602353086488204773759926425444883612970873131457136485689004321880270062056159165530156860497185011653130203251370463328850025883570712119335077444088659200770162287655508630701196890145799408638010600024984500833073035893145623578851411400859438691002068060744165939902240687217277722498125076590874986968640844155541413481614125921422791968756015817590875883544252835914362846667131245796291641623275812829000922079536525125338090196002103158776256349664493933479904484555934066944288791227604055788605610422081097103402053422899696918632688926619248061140289703948134152252951732438871941605874324570559638515870903929935753522497326821832384357075094805443895011687281227117004735069587303220767552911868109510447553478631733547937296110908440160276948411492807361459008941738408774245431633433837201740175865196753327660474355584145347150391931267175722641810465445411959263399456133772843660999798774877628951972513110482528241895972451739858319330274291019703496482617353747480975825705735117140585132484568401870938280204369770191368893274376840909755846201798632768488293650039307660590574282480489473832474862858434646375205877765740029056617058577476243940031048790873545962238411710198138491885002658505826655476972550469488879224229878348155280411112776635802454985162410631630590311051897286775248197561029027280107819462425622368632352324808837911112544335508528541502382112901306337604534256772839924360460326339778816599847832089539284435608756122525524396648995356779125153596016480969774840164337177227986004004378052008754459909679234037465995791813814051715327181091354060551986720803413688720021703629281376500971429830407846803262145286608889219278213040497095302395207442859955330897133340517285096813189435582444802161615588784125744284344264933059012780910187582278392554840473027235764758952007494065911710657176520571859958608704358895913387566513315993686544274353068747111227313647987998437152916510262389825896355629223701951734416040734014069189595788172443701111947952172367471271917089492307685066024639743682467759797777720124617858483240141170901972177410342647012986432491701566096331630526136558441280359859968642313248722730955222782633717947022358188967321011028426217473978739953443841451979891711408791142564023235633918966592312186211784023577985998466922124110151497829103153707861966360675978112222345984921238314334507912316478418745454079337840860960972807363463334144334720271145852930265906316925974806378946849391407615816524965890172107283548070274321814154840203175166753487796606119577026961921961417994018852502374242140987376277940501790824019667346088113419168694516912945828209752975463418239116132234689698889201277306408043357501800531260512119458605690567813187364988089303405723208199847690260617966661976784727941335041816599348506938324816078583630704323736895610770508397205415859938265695730532645072596628655863026250325379310596017244557107449058612676909531827776842962078760840792299738205163695192079988899221596090056477751864073278437752542969622085129695687049164460528102398692639843635852872104798936548977112360380975898021866263997366323589473254060562824650637089758659666223859645132218211102804191019631985699202753939685061220947873770038325026117379547802137662427695314925853246089929594380365245475188960088789492290292298938847089883589344372775511123814438734715347970361366024660543186463468233686081629592866289405956113156815538599081053670798745197653242674217592261335614226914220847367511731624308684646002749995006908694529590861675978297876294985025773985683634340232011459547035446659534026258055013734769431484192601169675411410743968569418453734103360149390413829593479158094906162987866729965626180933091547285912007181264150527418426200672466962542801667129260404936456357327824639740135768517397588739547511442640629657038448435404727624112241612683694575288291647006587553780812719822432115365560212013511923616832343380782043664584941628681584144337987816464985901195345239992979694274494357577798923558320943733189454496516613823597222401798129002777925287236322639015842162995038598128379073483728561316264024728283219669555958672738927852383892921161271590412891033020496329471829568321591900077443010551626356175571183287373809342376509586536733228380609689664351509679154030484369934033832092603223419910270104830605256174569401402933919957174332778157689438952874869419481177588932061273114826178720560774609800767902357081982360637932553551682530440846260022971108879296411881051424705932048693432466083772387131221061336070534963530168145144020722788117627240090660316188244734077626321332225850394549524307112435049317716036643789590488555280606466857400569584364885674088510508937971379559647065351230760729564509127367013585637252347925371595953780713969819826384649681428203525508634626575602068410807784376098339968492993651388577190599957242193980572822160721065676881232362205859761719595545331914362688197795658217874822394442349010931008623246852082713993215432093305983080182805560954734303386610222330429103311713594360935038143312917397167819399007653953441800081733503472326050031748229025199575361929246453394218392123448077196311954457021331779289283861304580797916681787531609240905393234686767866712093482503410609997126935106856931334951685358894229261615643167014656413319188420942622305149954251273406601941942386415512923536226698730853424293532919588142605186226019918581210034598550165246317801293861843882509511212573111472687034765268492018661161825924070494630729131393666428209146067065683481008831024311901353983377981977956679741093894448244768127418316603620214164810752698717006376599426617737067200105823070233807848327927928621167567225528120070662441314711602961600668074001752530089928001196301475492716549399328526816890274935754161470800827211521701589659402504907515154295254967374606238794688821192626548262347330686357893748938123189501961623683267396570359336626915335792283954781048444695357449889360165306909204886122254666424184814337177588593395441297785877198445799327978585242673002538880615061450913927491248708717729114535865524517399313882683109621887477488140136491553328232183261148004816394273472762976439745875765489876899179069886222668979674499527448591369246792039989646021671862876382455006766493129503423982755304012844848344432901488549593044458482003578570502220204556819163930461471827808248748964726316979076416135065687469999697021646515216523827130605471404995446643690258452965907389689804496786522516352468523096868484492184277469911657659250892998827525849548347323232837586232045313816799597862692936631422162980621245218423135421359567407137466775220644746391091327069072313928184916588031921333491806992755936716330995280300060556442174904839352186587378956769670888815169624878021878805492774326507842889398154780213696452918012609634052903759898745777429169108872981624593600874569860058748164625768475290032181523761277980540633726414764089474966509699192031906635032430655698702781251794218033288719326555471252898276250459064429492020531928033037435881365747412486853211488106531515288059183587407288788169264354627913856324974636989789688395884922182948987691319630197911158173114469037401250104132103235088315242578921152982907802007402080528759738468710416470403494407393020167510360500338404864894458369995343391026453181539950757419546163845576468497759721648359104668124409442811825862026675899009771215038130247319283975029157500043262548406145484097274681511522249636238236871865895754660595777105481842328312614898565498445160841776137928139098934687388447898116672961053700128546321545068403846666946928718213761532615310519603464855857744612241657773127214108452573262435512574504507102273584765430578788453202659274400387946698052041436343059439187813589702583427603749987008824159164541672278245751590062875799012131905942834248047122466216745700340176675850819831700083381274578777635297552073017873986699438268789832215016599380262968405104109731693405693014958879569649849384043784873070514614748013502545136426578476608616363178936419729857155401938740012070469076695000731003141209297506358301823330074608714486024546172705070704428766643889082866649543857471973363301123488816717638015688780796457022629276193979749390858267444973769108564499292714962524324662413212410581158801123753707734947276401998829865896068861694006839306254845656697235697887141267157433590993643090787701050011459323826362012757816287183286988907205698775356742609120180427144324311632280597305307642016515862871662582973516768752350733221264785936242212018335723450348220441579846247133658053003528549976795702417956399578700941039736912627911569270054422493646438158354850745977355492666023166228810601131245954052376993732249887542139580073981175541039501646489923867691803702549101442488470836774579699987165483342817520491394647698901650530871398553805040227187925239082706204557546588963680429881280852136491198673240135914008245116376944656220099911622760743170170455695182802269982743139245878041291867693187804805285955448930808116350298395474529545397466991052491436716723672532842554357048511194634375669028782151536806374542079227847141275547115956427259154836393726067005369397345088791256266449222995945721706042214014528786124285702088886104556486448299625840289968951399563667316843713064825208467285830813216578846443530575323517726170654429577163817980000157116375050973327181894499671884855470560499901366341417480815770051376304211924637997378076723655741455978606108621263538325717758927966443501208993178915880369849996947010845624753299373025318874896507816663729244009470459377206383880652895298671286439440858919458468946903220755606953574317826241897845574103261667788668432568144304359916990083059031355761875293513861127429734870099120908871298493018501622726227823531013767259844653687265003006727616367852742993045221599085851888683383384943632246291229071062178251682312065024434425853105627967375100832494575991007755951121745390861147951538628428765984516684591761198865886690925285385578243934682660472514653178507846543196449310904904620056609997519494897166446430905143059761849628529837215205967913176067032555568586980704193801781381927847423078340814520467445227704181190972764270078947145739834779588219724744769061526014726934389921316216433140618767857593865631070685522899698596938851299931079461809364807089021084584907516300838120798040911579377433030067270519302831612309183252130525407680609159727417886187064433059360073216549805602601806613939135485296150159907248434781186212095325524831039555328012673080426889934003933075866809120442077896563534922089516189442814259270210322017994094676282439990584158084298241550578657439682709230750851544151461151493100109086410224761959453074057451727258316629101158603651592466021360433010528467813136905233014410775251768714004427370279270372364166630301005981791492877633273438110974532729143093683372085356450809734148179368946797416923642738122926781630657841049449402846441125443952637464600341011921954779045770118773876997387171493413153482977012015322900152258634411728953366535284931763155611494778118192811042021310123261132160910746007455884713009900432380746727526655230807658588069494242397973821491047340480296789076321018148581799060438955571050412439641265127524223589003247365869370324833719778355218151495022441575804582924768399423803167164617563784477386176517413041471283145805967120767616989044676434842258898883569662766521566100905710626411095696833267604059550682644398839812293099089772573154246043397368065722776543336579755876639958595724999666141203883363973382058193294499433624648783363444702581915192483191142446525087766832353411837374684881191777442165283829113226024324095689915575652843141013732534073950734821756780429674586213928340019880398538990565759335089507195328609118645422097832698902512909877935095898133931656259059703615322881621234361406305745628874527324553280323086749595706932672946758707368541686765063857258146651843577478847656632691890020782650143618364183409368149250602980170841441199292146618413798549393498327062306637624616157330971306581218267347085903092947036775546717150638517025112051497309804881175548253102762671350330605969442564767969449466472686139369995270384192288574936475727126941488826057260127730986921068447012840516508210192316597749889603703423846085274934844688671213862335265712599896375664206370056307004113032312625485104164523677332555758607353617005744247621554935835930838412853025520675069998294062461896324514767051332768834080124089297253117767345881398076120093795219561529291956298285454828683843039775292847298117573696101896750850898712220968251783911131127882847865178276253442471818873756586108521524299838800264295972717945752212120030619929457490670621124250814881294281350060916224942730045667625072780353124873681677772446338722914516032219546581536681602812667362365614171163138721881972519602981168688348440577130956936011551427542729885243225139161315184060752662118753088257698328797188442417665487504410716612771406235019862076094940450009232676266446911670261920495449885669625538249349441508019003007573002394414140163963217979748063804831522885427789091225550637842037229549152107448255832285580324615397511699067294374418674077470216541800505351891054386864244487143324728632551719798968267745632522856592361741175173737499669993716060439276940391444502514606707916117111636736364404445853207569617252007637101106438198442717306934350955878137833669052532957992471440786344950369765192741734171592212409747246273938596816836921838439137145464796394000764893843397400984156671160994380888619857969395279666161259627052373274490828260003828727868844274203830681060459019512247202373511614953150710447104699168822388089184981292102538931266245435188099575213692653509159339930193893623095795015130652368291868075547326668824878949237142437361444834459796795515313589833563028518660741527812501907165758948802571460566623596128089642738246997439472451065660519267989114071507365746667882323608685982647571010568636288980471342720643921785309686735959238486719234145993230969468438591703558680080031958034647019314518821165706276925217617923313171759623577981226386162065994442776347755033246724554183679387445108746787495826978144311306154114828278666589611588412721134565556833779054821717522410927160603306938709297905227611736900187616094904265790468956049212570645995240256188797731893919516082229062668467432522000396754510749158341214720150150073269066919723096998220223158432471224410599681030188846488712636881328908923531004113975501918639966583926547489869062449244920883442691848518962735158953161174668744363992422380904298257951528156192199692131793699499248253080008738738306823289775202066358111812547564958611592373936952661592743015857155174979434673767456322529576599342706512117189363455386586518095395523202319125668411856499308385876944311777937347065492833238806390133396998380002119772333615001669723909463153247832734967984560870991312970558772131034973461394611618544072887745659539979349811572488733647953463699532996023838411514422770216884431588298255974877452132997757983404722875081405486885303545105055330537952356142703416390819274814638952460350855925560388797571799414350925875034781778561535592376874029143470456444489155562748242463746640978939432586413195703444938636847374834292731070635905292440659854400579518469843284362038639310733459122345432929685839778355277096093084713137957660726576542507369991453829924466046279845311013009355535661040673651596340620757623280818309813469366072831865355602777619754671554064959633359173544451235965383626906962856927013132195863190983977748392156903579871533256583459788159355572009798657773339982978365526804061156749655792679721088696723465507784202571755338738212730444672886720969552393192176164159342246198312963308120998941737376083574855955260678104954390755563279582155942577154025377102664953612777547706254105925887611908434935519983826638626852090469391523378357921552760993687165049919065525121118847123937897189223922061034807438824580028472259390489976020957336007769380452852383981146766161475718497795678730886202407568487692155637455969302546827345204988246714768121569628041512126860311246502850492240999664419612582530877820299568643716983329118808918847399633647698236617659767341969776871320425919765175377976561339103197807289199690715443991783918827925306622600753333747327242611466206750129826361495718903940082081522709442041971041153356207452612705657925258663718163399171390010468822976440877987062563266071954401637042487193221391586286463849449058934354230792391754029667217733958728542308897996372861343080735306385021306036626134285236672200217713018770617885401252947891035877804597812049649943141584755322727804692721765498385892111020143170719826204005992939660885350799831793850864485267035454063278258549378773164734229290667617294014758125779906962802029092227625254106709504371895472720989954316997164337168691113267969583300173248074800719172951703921566695336645602297984582800507678372883903955616914735521899458398475045346609559202244340300634747466474781490134756631640461921118983519870548285358129805494657427461064609359806187344070458375981181971480228431144778786413691698026510268643318519322258377205321019691570735334576740734894078482718311877277708565087249372750576434039079665644165448859872840810940650444724447312683779433361525235554954559350060997962897376866020266489243025042752085375385682009270788110357293473123509188317391543595509889280320934413243385468480335139176546682480057491240351521451470593240065738068401089070404082585632214328665486265763604717516467963117867768725019466561393782447236872516920492944918035452199988321719056054464799428476761904006908966166008502013751759544531739177196679705861961359175604430204292578242338168980955013360184599917071812379409884736322989475059729705407337591453139297388273967738671333706351140542785715976349449552807266349990156521735220843535722434211511829319970843104391199353627621536043776875305524892680248239784927242663182288906299963188421809351608631838615651535484027064793608724442201545340177813755712368470058031520298923333779025760226286753504728309524432318611908775360522079558637867919660106234855194880298484800048983974882088054760859286269205797393776766430151840843984021821228344305305336099185150065330595906252901683224869499214860672835903004006849741984485694829181374252008334080503265061515805488531641312665498007825714366254866756273442032693030772385734288696852557574052985383380662507646439681867121858928109089602531423359180183384402102340855036921146187999104494519614404948503006930736917553070489707249527200007933656201272773827787575662101051265011903732019153471649154024422334913805812371301973208780126640668375556202928190799842364182331073509521484565294176944255210092447423708174161251271070657312073920991914710168200392885162349358793968856726256363544341407404545306857141000210668051280905726844192507098767721822256371908058639385073503563290458782495420132912350823940705555567014279164640203692542921679552423206839228174629560850577431287973932149425783713812122285562056946605687338689411659464871157426076817755612224676406831188228677922825981154937197010792685676606857382704026810613192302754577624410411999930248621930755009134355962563496801294428816840023435413599769776875743086043653023493171982680840716986265915921603518520102624875705534891435433407277289508804276156721187237291808018435301512517454483212389312500024021719102061943115503503140141123636276917785519138154982898924450966565473356064421688990025303037238321642863837954851858520151812033949454102149825058290180468095331952923536839020446947549694681670615583456676550021645061318015975165369728096524517341765679688205570507805672068353565878674128992792394395288907017070738928883430266390548919948439356715243795135169230631163819880178778152878425793509149532860747584607750447455345202426546021899168007136839846304312643541662319183231459638122593456482395983976319670530937705432288293656375112313621429795109975813801608937697382212460165948467258281976169384581881507795073908943099054307881150072329404656776342800410983591478242194459004819397549424014776673574280209376562943248196044059851541761345912589342236502883993677061513783239672167462858731344181532110462061902092070251828824572151345261328039378576728679651206826559712068789871839587962761303904889751779834349072278198160678230088140434896296192455268565299571684536229151027815175371428033724384627439577134403930472764867551522667533651250123975799043771468538639171500530404402491488723572725530435374847731812585266993504662182442819425928994424528066783374443358024219795708849006859107405642384753896737474665807864343837859619077442519297707806788103500213204368706766941512290053125251204737621675892335868868841462467570415889492995593189544401489382539170612623493273091026716863250812054335159238770861979020955372452763763510234722806912914294798737198740419163841742589949300091384152322311371189197405650927416701587239466077347671438430375798614159915067710982563667803470384107147041682604799820871709187428574186913804770662146188592962455361625582434216955558628681401316886658699375182405153338952201761922495590366105126675068961511780550681139803492029089226308290582752754697116062779375040308852494637742924061495101881689772195493820828551935707704940037397444965935034159766910407964998507743827841869942264145695304059797605487278298749688149347184823043739750863336634909006385655665217744343456915487529974399948397026576067383766788348738468129830075184956438048189276754869575162717961270013646340831847538835351419823525857230640312601106060658201117893002209013880669266092785749522987241564259510223684765168527708489090968249180888439743987759399477702031421773373382259647593997894903962116800873651612541703530116605679581767118068212985372300654125800498853825645945840207055768929673515685463080407487374849140648287046938164277018512309122600104990042566522294523910628956437511177595328827274627292747801359095716800011456741046874786814675734001119099529022650073586190679322560718729679738794498217952092007801489255094554187849748603232653739612851469673491854803045184954725602817151265014415553888933597512189778878823683245943226151673195910376761480549607999893223869016587096448047905937136657707758584535667137253877257197159995690264189956966750422466051020200693982562542719251872286345636821781390829359965121943366695228504599000006403287538216574446978592332562574254898560006343174141011654619520733995763123516458256196868722600425960048137175832719511797904676495094971683087995556527485130176480162200154965463867522268654780888883782652144785662565100475073846728365105865243997288339767310940497831462140297167220924210546917809311481389022447157402260228020677316105524496013908166281366214644574227404400931261617404393199801914798438329793356961843218018227918810525817748632373988674315315283954101629672215011164019138714511864046155371646901889088088500271592642818883539307319360179530946884542002858394651073692175543614731674227918541994091627577592490496879947691997092764497651673337387135067253893405629676010265041519550797624205781787205130051063551841515438784233928361237971399264666005007908428696956787568392346794885812251641244744945436435265259139026628239237460357046798629006335938417238400160878449794537710756070482805640357041367513326130011457354007065809914882182267500461367752564733103676603908574347687360226807088834789045486988409432335125132978129903010978682082807481547294012945990737660547938325433108166638808821270384015606231149145828235889794689258508273701216001467356476197458860553085703925555353578544015109222542729333256913651135194683715405868800715328267433184151739839784909848123028015087701863022319276391962454606818807326059771963735927259641243589587088062666662263244221051584575464813514828049340248668548548989689109872965812931490753846910326182755006565425859370222426137851251862990867104938224869443483173581740967342397073786455950533779560216872308629678353715444799449500336344081081519378383090381961935517051403176566776181663994349338672059788106843417966325373895110154336667431924518322809820765803995071352026288535000961113294928319649202694845044073700659567249903455455744418765368579364606312150518702938394029751519715885895151122645201194088320074001662029248012467726265609752757827961183519686377888606591301896241464228995789583273444438064039642959593728599523910106670259775848082400279065027418308495420667980231787853609081389765291556165949056401258648227357710285824337190682018605016071722535264523241986710692832499841822749641299168557667393967759231260248060765021711473127664373901341062602991001101620804440182040712280143350398293190760097973174546323974588267486347967942054579235891240335107171159203812243614186870854802868932539852036590021619270560888150097859488608178972403935765079449425628085312104362966826758693229851451636624010070774319491994462343357472795511019710125611192330516971091857226660488384757081237112882219657474271063269349237535217413411054083015113664421937113556462250231040329115361802969927662287932844534688365473617263157981653949511627296795706687169046714451548537158637783666028857424040479520123548327612908483134657805235769414683051346481280148565143846769641561505091335637771820426700119350234012293416849783812595355178573620552218223227844156363847348248286317224542715118170284158432304346953165245732086627898153553040883192961399958980642306238698112331164982481311608215996495661598091653334185731723175453158647867014723515701573092473830180211499144851066804562545363347020910109701398981908497463419582492191339130565337421245783998637947031964166929141582155249617855029800925431301545368734491292327822817823228458633107425563567658425566362379694955957975594861867019058830692224247984234763532258816261280677092901327830475920986297581853265968858997642869224408766502741456706640809376662684166067064864142106752011396075194964699514216440779211748029371095008326181080278169620383244841540289873545337754454708360242314335923117989222483207291620644000332550049171105725490941803699641452348274127754878294775706757986921967547477549341879884264929866909499530723355380126332791841207012382706974327050038970096594533813997907891746595909735198509345302970553068902022097540522287557890514620456142196522828485863170878517796976438765548777995458994243814248313571396313343871934728681475238837074205495549540493410412245637025490426505723657768471578036166459475763944079238436790980354571937422216317631025222611786618279111342676807010155727232272437855547308383849260399599323519669518510773655829579629825601578658067594746898343748080391870300560134707848549410125484735140256463052251166728387508652310476009972485943023321458705567201781917283929262338177252748204016077024829973830101151965130792711250574807243179100365399762038122630263540149271531288007049592362019601513068775579441860994073282165349811559084220138737917644147519183021195136955026772431801369484897259215259556397053040731143623047453123993312665675190002138687983742442159444744780872723234200930352661506533715703158785091297591607678159100995155329935305875155737012877936028238574346981724430492463233517979404886578833703827835545007969151653185582500376933972072569339211535546422900371574246972487660678490585834573697142325723377413118938022916686375698498321525410907352339785667013011768339406641442415208561395751345060523701395280590333117779677702374848162412276111596480605048963676438232067326321119854321987821649863934132348992648830954522734720897534573653624025396523325444744082273474096637418758640689778676436312233301665562682021315609647554702915832237757292980567587585576154733502879635386694615872165047008760121460750683907315065527229992529127032161767273055120283828634881716225120966927844759686140247321233246486678783922189403422840825462167180472797063322786137804173250393672883391481803906852713590746225982464186712891595516546822938963833909909160104786547120915711725637941136906654191996226383341337110008845775036143748829676542162604337373426815943469461092584997257149274098669044913179183808819070029491161155306015875689990984265838709125899956080121910984857389477889811345875169468543319852902712259827161885049350904406005813755267294881402841296857614574540601952242459282904007764296837338840976392428581439413202732804053578847948019713195346103453706458240090381999607093366449312102840192964826189244178469314043270234129003785218180777000705253969089807297495616362485494545434285728809249523309188759793641183975998226356239373216100310646254096984215822590763797985398827122348995007814390640754960635126737292736452474855903033670630048262424612994539056438129934809538300914539323922052812203669574481567797133162784673407598294164652366352253342222249678124609088629152866238702689332766246202376951037019600306370864588411922338609174494746644716969154848121973902765006664452081571031019280043369766355753151349987016409732691108151726355089035397858082111001361672306881979708205222878909028040412144333899117940429046542458318214754765101959896145781810418157701864303269528435637303703447519028372148477395594007606211809192067418176816347260843852258729500114722901492778068016519640070236843871176005010435982545150185949273174972041228276124077067603066633522858855240478109779753087293670060473319782428558714381411998838736929904778067828215774671050125984149667254785774886905991857275623549318329906662917921516971250997965948021728325042858614957507240977007191363203057766242101670275217707754859417416961068723584186924171876299012564039920220957711930535269746770088840893512489709233749685704967831498861863799692321237879633173784464801027532121943996260753425947791630598880906756707704420699686500430269500188503556333464393462460007190855886756524467280195339012858567979257783178912283572609254727388301101333061676571339535393365826545406131456909559627031031204356112131843267945691730499633844085576027183415816856497583356209160472740944610206730658619076242250287011810045628765729292437571597126912185161919910309736490426875880819079907377978749678690479229098174033473696349833088394117632693329318450794878086572706993331973016854626585149671386259682685428038888680963108554873907755615641169838176087751378721309168105423525901425084400230181297117615999666543195984983221848125687566623366770889174263534419008004507748417835520278579547411386231972622342660482260548133679045882993112087596994205701414982930062886891935077122095880159251825869637472669252333038836789546614196775545532479433483100627463381999297666804072104190538047516557933297696404840154152984426721566667859739582306437433978503437469042292630041593042579464017003218131765342261156594261661659678038323717604594888356612767702637782142642646867055950009618311219848746187487967149284526730500213434340336785241049736356261017757637487314687285479292656648744978723643051517589853074985669837367551813691267007667869759313719956946087979544545300778209082909667773381333329376910959445788868644719364452567001853004680399606234899620275186383970200429220603555075940682644967316334765420602926018009797480937565926226136026180999934114124358982458813755383175102964670255580677229485557881703922754471525674495768447616425023063827126887994732700164552209574317368831535216378581125625867902492853894243529548087264414878917263314739588159114705626618318176197692426839180010257373890063918618203321415596634345894515787447258208114987288276715283783944543245485523691446343391331026649657770836730999017322720891888784945679118370587925164815717463241318410618007828191863162769844018184264175214412147537580126156141393926436101381305224809972242602708287018480622632659532317020599897968789431506849934007891987027112374204611825305107448644811917267115252107217766863697312703830125784326427630476333765480774669578406790421277464319177967164726758510566727981822665756678498428242020269243080664950307178812269721605994110760965260432466678517520380111550986690146789296335038217631917383225012880533388836446643352076475875187876953148174291596754880372367760931513343670368205733376193605222366538134522272328845215329437183704704436960734394679538749275475478367469196760854471745662120691983653831098667680237399044703534684789354018979841081741655765622223061086671667015717950032251245061115175934962771903118932670259445509733480532486831932398839791759789533356644425266913269466707411037526952120533416858843507984127189233308293124530350346332077762758222167969589447192346527230704433051556470198924826694482673794238115805291131088089797667907888849576932959067766767677105455426316692916545377555570757850676069015347217818094248289941220708146010978623192878190110137631700061558825351273982700356089287399880146629320980384585973494615746812909121395058813846167294174192317585634532016522646844272383837185350789468918115097495486411601647499669198061392510018446546882835572804778392850902456712720912536148598249519296022491091463546325069450664485243622728910146035670227874487764406551728938686321247030977411234654154128501015637750285840673218445990890108528320785632701957537002687039483797929550103944925929899941769653070845764982976748318508454680320017473499446230919124725256024620850598570211229128363317851993746906146161153957191228347665328243681250648931983541622388437492441217988788092213127570895844205898398231442427350812702889728177867225629895466724095295241031079921702964119840178883289719444635698510883056027739014074702157901248850857109167160493334115556751650370299029432320477226451058670575716187265763113584212862353088403603042281548655374487950931630030009895596133065050648081372589980510261665040037530701703795686875085304499621349096125259499344611522483111620164408100312670151491124089136115309340065476300191258801902226791423727452295841223803921035698361272777728987900539897309846053363103306260422936941842204197566763667942805101572705755870714215186753258691316692514064791381195583716536218042540732641654719955049287540412292598788001591653987430515688286304409370644254498771854319096893781663892743781168448286734911996109339782896655260741451862731645201897084936328824916216810363169488739876111676081782366510002968360964404954607817722705180991650910353584003433814559132280614745068586148749199236271420062584885762093437385546974855097993498276766810330327458964938309561072369725306931482674786833364860397543275801310274600675552432102548947267767065306759407416275715924822646663860817614794521268992223736050922695686601447659469308461062645633505095916158749535204737443505851470126116141863531646266602544156784023151281863319783985662174077463442036555637159236299918197634459975711427584010519739917772014357906685051840384343410323719783047510119530660332503555519304320033789616574400280947303128095329824961946965514939718261707670037676078404996382503066978958952589095841801654206282071036252794069592294468328625940050583212986059051934912188848449466672152234275996819185264514040960864866666464758476788508847327426399298675787298743223328570489337489584634738064994763882182382636091951042459142391822083362404744642244152829907189462877946624176693164536473087700055827246092277382664010472806689884490261988419861973841441070557699849339772180510582620057006211445023174315466182717252737600988664161976058874610330940736473640427357625250478385734965272623316968900851412974774391747996111546541909631173329084901842133648694173663542455676267650639681392265478495774571412454027034398918369409686491712989052986289620870852437865331040683860377485826563114932127442471961680842954893243003017393436266906386330399819009569256925357253192498746058732225788247837945730961251600708540040490587024014597973094383291996238560516023866180100292396652841724390009124613988644212376402555990216168119101668776189956859850275465154144325236916965646102540620852095766077539429018544519696469867385450328696400629690961438289393518894446459745813112529688895575072880501785627157517394920768010060546997263085001301899821576568381711940863084575821344590875894703392183678707942769621954038379351983779883304872967299381134339051228531571502049082180068779992270512006295668795162296037601728904188107468254695405626356070680894534055711178049825268329252838720556538165747011051792368717332375990536584624405597070249391410009615165577466825520462478413975589024207665905266214081991728960356205772356044574227949526393979218581228262154386621825926816337866309846647186311453772021842710312862138125822432918047770750817397910521421104100158220362624998350607122846226996257268657275694340561277516897633000479276200445925126617205974358074034200633879596637795784732452475231661855250720029754012288766264682514719195674834504789113383326399334575831197967550519525928397840211584218911502924229030366907875967194764597172087938192442680716434625285335125352073473727897079876283500924079126267672575749391999672095576996425136237064266838284093916017097279953733954408687238742572321708823299169625679850770321858238479620170346486882135624373874842113109532158779653441609678902787468244250605233807519857493252795913395523582606115883447333621238646653687273349748793627620071446827584162731106061993372561211808303828383359303899786134633722073574387286915328361931579214892387647128619755147783295595912409339080201372370595882752333591826608460120143603666339972532332184130857132109760296723351618477168215547085365764922745371213756261647215415356161733914016048506922597092737054875122325259625538758972128676647704508937360976516130128023178327845461460877645291119983301622937076672328102901276536207110980913480115780438463616297396128897174156669048351867452611959477643865930800928083453623944580757381186869969095645576085200583601087231856400608564985331231330996749595063647725726290747917422900391754591857429403138982160061441373005599847499901332870173333428337676744369064832303762970147328047422951906877608606752932024287528372725392129045824642725523448292355387315676404737539477000412144799182493645249567923805113397411364361779212513887239239836124753805957600191132768992200838063131810709894737021231933650579669415504099483195494473169674410865969315247840224332794445883974017683665449048490113171252310411237549540352698575703780142492903425104814029959640569840166327630172964175312160049172526947016946554299208480897119235844823056613652582031697995447578528907626504888663852417473004327101131146075320762756633319357877061817583814779509374390430576568834987751652196646484217319810204917932689157473034666139315704322971693908015084182883639928688409755465123546346246875520254715296035291231489841110134367626460065763581762184536170818530406003349106025655276550989289019332124895763514055748027756245978732790978578685287781693504095871628673680668160502299341946676617917447236770839666340438291903901945368100298999066968863514654674771951984815332661128230580826599944645878670589131353539670397937857733517345158750310638111873358375003370971385246711081254233072861540250354420507147645739329728930032845334700372993520376897584925294612362451042683472927256875261028419787833212736766624314851856356440602099925629226999830778000182122717363708360380500835602053125827524478290429885716209980343204224779107469737653888929808121804264344621759400960576025120324574860888070719568096576899755888757948655436017477093682552986831268557230133926198649970456655189025671026283937713578076212525492794094804035763819383718604489970481777377155544615346355290077146616697145616819071243388102811078532625762681091287980550322226023712361649585442292782628095193438308312320719488300192717295590292435144799888701486895476048944267886010804309690988260526762116765289151816223488022531971077794401749329986222699627279291444148577793546767941688928955622677000870404305981713210846704990905675082068037402919362460419786589232931650685241826952868273044608475431248698450754247878186562409638130228317806372561613640822347352114780026245764960528555366152648670729367924668026420245107226974892026647476122957319400230813118692701864084247394786813057733212054198518879765071034230878077994673353310721296238629448749260935451518698624845835413576175789308360710513271455404653819115708618511965855990089668869182459399541291321416839653572962388898873670307946746306214293441534831392161043212777667286496817436894756424411504956289187931767427236850315902713299991388127133311341622692216810974605468496794761470039881779493513731196839405392474875546414137459523027206129877130233687449450349048316403573211941090043485244304478305687213153130511053552234048196469265888130346572636472626352126044210301815406718949941797844590059292229670672322476974821983098748273610416852989618994642954806836502597345640063492832695448354624845234369424102881002577467237072975390283182393050600421558460008448426613084418123085852414811434362704849149110550315147467468436733615061304946396588234584265598360671821587950233234198938612208179989209533245249516025632798804549151176548339481627447526431349176236565477829908146137257477178843208236517275199693038349643814260438150831665269585576048799475435924753545927837945457654894874140557082051603480033258076600839841067306043854786112772058956013665265323612767810438359918328752489668399963111070663122512799758302093588510140801709012227632084504525587088254383718799553129164168675714843702857323848729075503482614770177082121479641549207643629264146486302939281873572395963527362420877861978188551264072331316153282101017297439302070899430878764890649431767645014498315165005648918248550370178202711156835904764487586333582032264079690701399988148834381311739866186365255265845015823889536246709529429367376234558604098099153945761320304359799589047990173475387213645219379678657361585421937827019442581053376422487045575333506862241916190265623349720700123443525747850232336025733918465634875134953903552101462633336218922206402756768050545157982604692281167664405330243684786098085906122075407097715200526459492505713116794678587017242851002458783876315730725922172204416933622215332179185320785861234035687281260023493593573974274424358162921705926139965123485300639237301523757306376657119452326027587839692476442539376397490976557665512188571294791102116372563944324214583465041684077658404006988341018244343363737648916407769270202293347868945049437364630438462933861761325618524667937092805224834935967009815657507135523335704963019838533128886909147648702391268226004394238880038214012754918540189769703128799520577204671088328705236646302074010451038124031049455638739395571213681929871489154488387501353832122578351658219672707655592388293834118887273312506633798108548779697607238000455947516216196887914520868995459967639408197840974365944442380127087922915287490574546967456174644548095227459369212582853227788612865086295232579939333043667409916214338152457726573030282028332611572955800981498200236882162982971739384207365316581359396496637143682960401336196646665474424541090945847850411968591343840344985266851325901463377849023272920658135805593926416667923721879875711145634032188676547885930693781774496092133059331266650196179531697551480368540462374445640170918408847624484667530980060788502152639404902258873309050296260970061443460148597031722684205154886277113843953949167509784284047845512468462392060061466143064030556092738928689918424101705260331665964949527693550942003664233132943232786004563848120483375922236391579219607613165037129682799712148546543805490684703504877953930905674600782578333809306809266073073686795458389148415003165706453994245610956731184655467977434427648450042605937417494559187725802978013710302303851717436214886179795175129106261381986670234133159721334938509559689144735722918037836694078889349680810548693847808655160548936821303374802343323455884556643352168201164280332667752206974466274862441602477209779105363128248615039979056657872189813524758479760850477286071794754613495906316350251529727306960691134283621504753750870111919974250396444358996036972979610607895608658784963062975436815938823178543382556809320243653464146291765574549427730036460799500586920673131221064674785141214161730369811668434127165494194235986493848324614456191326561358614492751695969139740562049610788617002105593069113066576363764911659675221530401959855112558135166705696499584240410345114650531911918929827253545664434091514439256452619508917624913667686198915522775415563834785779148263485980469322738357012181298679218239503728788659372873452883426167688247635330083473520880516750357975553337793633634460572102918742185373853127904534654109169258258687206430029114399370324688565911920350000946205644118674008784727298481474826127461500846009716810265248669328150871864018799080612120578142717257825609300642198634914439618485255185047315261572576234991679507734310576562768689500738484810811151136030661835154073202529096739707631056678330557795543909286594106495688572225189180803856856720027263487618825870645524327306078136605300022796433689289219732562888735055855116614078629677877328532217126180610936376495966380252217635668995347943619449392514656612016157317798698770489149780085557862710586066099174800587016399245452136672666997039176563930709556814193608152596614816477194166842121187175773909763256994085013814683034855985999966758576504774727641501011122945301256176542001265587553346754816126229925035515589726410447281895233988090607867033050676976636474316409140069671815439056514817252462279335707222730524576870578977080360814498217145888400873635744413637213147891220704735801678192201353606144068433924047687222743591120739573062831320681542515193188802786759827238963920996391339718609465262046914957959358243724084713165959087225441695565993466437525566452030426977973984370516107901565952873928777960733248740840096048323961674637582663877429486343860202239887937012094314559340251590580990892371808169909829584393804395482871170154384336285979982087027542569897779845849254618353841371235648132164999325493620780402859851629239517861421945601153447830059755111659933425262071884963667362839480266113798972349160674272516247973242932635669518932766049267690320239373587305038037954726756643233647938301925460641624000335153267296363690472287901422488173992032687495326189577024242077245365341071997382055756473413407928955363150728914915372678893575305469003285243287124104573107370574617097550873028816195361775931138282258591584688612631310727605371354683422085798587775241133587169346585951828599033672831108571648136360207022664483514621414635350702660869224343656255204339093419612970104013227423529511211126013685944971599179824055050636434999705055338234930991707214244670233370516623314441157071079531062962098726492566310762599384857146993687792593689579839671864523963052069145765752645098898991144996049829840451049925641697701504567320179105314083597921916445559074633905311637510445624513869631258781288339659847282251094356030585625929141531972524132099856549455171462837938600299424071120684908386778428317335379961468419715255008157965487435601119594285159293636523954209539057156139043548246039331709944217128677747753420305686974200157027837859176362681443931753881501305229242390571601064341808660343338799360516865957280144378006743929368193008827050596327571736252378538010910951671892043699924988934553251925087699664883707462853030423246536268446890678961653154017487521459424037837399185019771290924189702471625431659357807391115372635434361997516742748747900212179949601681498587658024809616228900656595879103318612791998566210428002373247574113251583166100115749836488414718674219973643053311177333272275895647353158135730815797751618558766519647932975242176128932780312029841449837826432938406012385979926954089585573788744587027718809128490934782435305689203376879320103686364303066839194493280356859350101289553268786407417001148766164199812400362695715325952891513278677525148937421743797225013129264167397712689774013006504427590060703905691395508392826333840298943295666502844571660684846121659210725655007075585040606225035672905901751158956747275398602759750830642111044152325961740076371597708055886376196000570912306435741276012894227822019304965425641719252734237082615903657880935497385777103629008195788081698569250971176846476924892290508289539014376580726884081770811649636262647248810378668320400166536090573972233693497009762977096620903007288236985890335444203317495412281459980881124026599189272637151578338593288569486015151788066164986054947684206046038611588219531407326010034355132080335475255600657892396290568781978490103785039026882111727288034372090007805692657462447932106188544020998986206969923570893841960950922014730980745708106974854001509596067474392786931980012877316879807055581107505562044848783130221775784038987385927159526624860250393152355945175240377978540390973975628283858437615610372619125202309299520882308220308186108596002284150742314724660322453790469580909638609010792650171043589671348169819376888712557642258157516257294687028600746860501025063691747926334615865529348373427315110500184657336358174961684041670132747064660048792634313744220956160701907032689544567487344141026089738850499931621191255181416215243581392740584894255444557989788205461894226169484007715855239297708354541199185339122913213721895336002046983699186682204171546783350193055659989129768745441834927064707533099951781377865774995917559222895420485517757852784217273975996787366786033317056619575617245013848672081306100454476498542664755196559547817651223962792303126781327235055753496239410561928625333551706644710284960681368925981347933032501423680116061578795229769324881399322745741972713869310407904565051285065993524371165132431842209595895061347347293704397463671995534286056766688324283078685230326291656461394409567931135221218517580914941103710424511183542427932836996931412869230275761170035018612332579545456899059985926036823023447272867292168793656559535993365126684013791129564986578059453785304386223737296875633487287737317879318077306368780291165683462969514794519000543610585267584470215401348686760505617976345592936940560341883662266558268590815699992132103228621035401659374180757608033685585050026875137651012430924038827897889889269004004916542733564683418341591016761025988295896958615392464441823561235260822633548945281824936381853208761668923773426038840616898712963196711402059062939131266936929173277694503058080352868961879473098586485568506574751379348709757177988951044436146757896496221599335739896045626138481746901912078498326337870955670205266924359117256688694053783143258333700696344307001467965770026260145745287566644823998159032262902707448214649323366240114984695132178505441271370860749329776192668102711979003978339430378003964025473914936666952090231334491684427343737761829185962397473328360413593982691987112195134541414397666584418770608933444543943312566736725945556399947233154280275977037786432813116449773917075315734409353867583441563668269283968699328703670593454949783011431068823911957630148709477955146131363321811929236270255151310166624706821899658174107351081316191354517756569165605629652541968911507088955353198527381659561171597727954898307747480407890455232288262794459039942199132768474120309409641147258245343973939578403806935653292799027689747471402707356755935931285615468433354846388162001136800264281072422105393044975067533725037064484050850587243087236914949058493869437995332142353982416206338311637791698103278958259462573635889328996345859298777179462496598698570002886818833683642553183225631448531846089628824687970572617343316406037350181321937212427479158616767400978816678843728420294815684555551271827929535227983053172941734959622226160103792508956502700645126066921478969291519067079918693383924191551211671732181164543359228471514935399207739707160632698659237369886580531281405934807136324603467864118287891329527157044488779138892063858623249417736803316456637837492178062624326518485836097028220639248508431777727889700978723779130789804810382028588201266443698599609387334024196749448641052630870132358990452085356053311119747519013355653044266828128456665350689267222471966647144181457323240197926097814812737010402162679776107835689796846114720290874935323781392457812571760365041433533793060175157038290241128594232348351603293704995535975146851937574032921683157246797968954823715599891652942052582480019070221908021018155051738039280227048873318302871041767230633770722253372864645085876317600714042874087302914164119170669962737928166988238544181105042962381447312463323952010660888671640107394456866168302292220096571812441168909942949386751897042335888236321018363851532743524752366661222896995235337107469305262334842670706937548808656834755979265038138870637117860313238630564736982743388633982759856016433875873039496197242792709271731624686081569037615881189337500976569901680608946957508037741219448381374104627879377121435795603771864397211710109528298219822879257897876237470972913683242363078834761541748691813366308733931452062014377490833197197516894062277185886059421219566648976457811521058295794804575261249592505041123591598119404858744921900138725627216908014687342565102673634484176129501388064668393167629294875625276498887262893803229889710266348493116215472852874967315127613958593083095534360683305712973489993946458659112249766489432740714010471589954746858772552569129843011800734219191702568881064282209435883748985026220424919515722100054077205492900420315883050550030139256644939800855492655994649145343910958225746532633448669350808340339471435741840417171378741767835550551103537189179163922580967673811730703974144924858001767114814724670440917293889842910962754333293120292251446421128282883029530576855874693587187612820766140805149460157542385215944811712072458601029096441644147258457232395844246301008300602620549996847786873685235535437245402959127334467904687860966477226698319547110145696440897089485327239392955259626589774579914505164938690680295069796630686209282129693202062069413275938700695784527682914589908657221633751917917234794839357566162500158141310775317336075610839432610430312237187360645868766330700746312806099817872851303507355641413090842528361232249264670510409532142858619544913818844730160089606666205931254967627789425541086698055066288181123026303744552336286704607972618200970424905120469963469820230973993349727425495020746582039521536373222450626134737954622962623042637237480952797057623401976360855141267774242000841326956232007291070592041515146351614456654897269797472825922660789133157718404956405488718888306538789002937282264502863178001885495450360942061644411466776527747319095975784711867045936477301143439188443747073343775805133890546439800911170653656737533545726114359754930250859388769372347738778538079905067502419258747449111474734194450027397522342157213256271365576954209626040766880058098917375405485197142420244477206379306532085991942431117078748677777990356604082401868788376183699366065536930123733728207126226801653789085987876717409751477383324291828096571637926303031717536562359279804709894599435018264810796221459956359463717458519851301927644284235155675914555339096286458548208161201150542772768907071163361950032402883410907455860632910370803759439316866307825155849571722836907946287820624592984473709935916921319261681181652766120168337535018128902792276914904808324463763651506855241153230641213281326955613589982999503027039675276711333688633818424086721595840605020267941677544370525044176180433712621597296882084204314728470014215998002882408979087628586685767955683356171762003427728276089781666545629718434389103164641751995742507932731182198204435030269780248528021229695806325549771761754426864897767786159890748528381310353074478528495315669929640064048694017341763593927955083378478073669795053900713645215448102887118136877299905062982414547554365606734688979539760219564300713595910306942789644333922644280655590132435982845128654531577580779034639348759047795912825356219545622332298685290635089468538837294237084986509977248710621725992562369114695331577952682272263988732158806748599162753722303345916763718816203173169672147521505263466600453214619042339884159260464918695064546687115748565653465513827540951790072122745459022307673265550266842135998310969371550195474440632742890994738781667686572733068301649085018397226181955514476333690352039450677602208175447857556187072150161844538892843073881389659719417896984519653555132010368143798960955354980182007910299720117588631978256514416146229372722252574635619440861564734324763116844666397944266073408412905309263233284168915293353767929904716305783507374770954976288411305104284454926796506378455080686896741276289311082175453736051071506447524482148943658335767648650904438227118268317319858591956725493133863360936193436514485500425177628521542483655844663650684667774751687548106134819981196334014049697103043682039357648075155870657324975956055145860810595858973919244099784874749434562529947754501696239952760687359668988526213999272230368515562731373668169230915623708956533306714850148055122613107145036260844731623311012691738149150345578726806773309899540866992214729176455839827679944014147714317309143918509255709374934851828250284688964049432447869690322060748531940205683854712701421339781032464866413964491819926139038170423340947938580660836614422994868705968742609389963427111427923549276741908541570719114034697601679407534480698679927774273192960674344974780349510256797416056686411376575922919509521061930341829596206499683219135082573057686851487292694179034804914161125997137845492926994736353935257492434467500745882271194946397445654849086864953604086053897822404513414193540959041040466040299037970567451583438322143494441029179455692528991805730939188608427532073980581404060086525541400618752190852954377106960739236763765621693631037694848287460532158645361292122503979194087674352041594163731257640411165042068792145477387783383220738037274953795185785208010916660339213911738257548139826275611455226650221707627748316536018971998652191247807534886307082299800550411359726594274386949134357463175007405383198920887336045917209332726244646973996351220495319790417426708615176410696218812578352759625078321639184098368737790609385082812082401839512786032959898949047819910890923244291817137754379152097499254222301121341033704957776293592673707491151399600545932743869873930417326056142135591210966053216977710735409724878701439878433954235628505537378222920900183672044578158410247587643569970516204032569957286567179745717231650476707423097498036944654061916040035415251486003965479538452389433434354731282697625486284748681417977668067526122435514075916680942820085776036879462774475423583817117978566444188227359137797555092273178426159432992673708152616945529525892594257150931483267657854362762970221979721240880906132998369877059688957866284798515073560445071632315667229049761376781043972662371201744492821684902681051664277867704609219505346617245101577683047546558850843592319036512921154437506990357579178042352800146666585848342223254806406844321500192995698409009152725189103732981860251185846152949634351117646401246842396780273650258079528687616286156191852766384279019138237841887509565242649110779874304940735214783285238672986438398548695847589900162888134011593436040547674127617893861834752789907313596469313487261571845209247859921129796806816283750630686612520677133934507011371920919232838376666787305767725960030582278022148856355460829206699388786955389267954249886482676985698891794026054619945128729096365578194370806400778684567668525068176454324231526280924364173409053912183411794701258898559052157173753589354607480128230556313252791015123805957470094017701923028741754333249380451054614884042588428619387197714680438281741386433629126009912070148920984737470826104206168758267942116867900383760915170666466825048264978966946414619156751292145758863132715413931032260208504612096200128306633869837790484126106378065364355186902474798687259544885663353435296120859883652218568553599583571448517596577423596829037489807803944922138740503163555551904533480516457823695176730600784014529796710839060388809926474299353236729816658897089779763722657842894493508940695412278256335805910998880114956270629991353448258125460840635202560655553302904454597150926959868943374733187221409019758745546848465535487338097910143123668861069977628750862216515072210835358613573388055891482208833817018406873365796661812802964376586645862792943338342330908618610991687944394867799114081142683435185835534352457800425719581972009552840608987812510342747842402476861141340964543861121741840942777152339536375045064615932736899780449835959979109613949925469476925126932312256267784355049141989209559760511721227909261379399259279347374630822377127785965988523011142644125077105146108314990390498128632426143590990508585156549079715125772831863441202454701796549754791119141694646257901731516756276787472196467674971699411385841437313227978661213789566907198904738804675117690993352543252204913065226451445644217406150464761709867992165386513858826333207791326542315594204116976310931141435449480617221372744590312102813317850350280344544878960877468010728989739554262203020876396330518576923758055015663741423537726757979420561680352536655004233050231943207967068386191334576196521115945100601903597979189154532358555491352293005590233855798077179723533375760351792911492275723190155700201592535583434198248133711517875101159430629443036364329964202199911862557615558118553298991352187149365812924163280976512918131192872351992232787467851883799395561402121668959405008993031575305649034897285981227148240800443087422541849044607212120264258228014901663901578280735275364642474976669467300135403297678626451376827752486047411781717049194443225661936609409684172284993171039391833870994066802270000491416960314528445878464850668546686594228455447871209813703856194517805430258888231002544736926597149618505990851066749198113876583857867994198801174654884220927386704028364483218601478949092040157118806380239076635117812276270238565811408182785719953961381973288016338751150295686007920714983703038735998710562387242559918074585336054152055450922997504631451941688890932304815185673476613685984983567663287323858067970344993776035650578064925738209302268355549251313876927662917600294006054547970235343087340510434774000069181650927253105785495890255380041017352547145140279585615162654616645928420774042574643739217232202629585408924800058966331178090026056980241705250516863314035047919837976151417280864565539027792808152688929079580669533465406979994610539809219763833177543617378560506989224281904962244060982134295794373550723850709034880234462741955181087749319657782466571079834846872270107017363537063073143491356318116963489284330377034570056959664811243768850084310789116129113742611373552885848703020300224739783951460699349253259669853739563121958848138480747951705944885461309575737283120091204170510323764951771254248810494790550757743791101324693580905358204037886870038486674254638480314633720738923092493499781839974170846985066001079462347248164838591057696660186050480001739793860589343365570795229187961453314280592433248257484534334018669716753836069498301510817355171652825776184176501785292383040186216391020816433953738630616031184288060611612991990645180292064144939756340667582092776063393750543581844861680885720618456667036233501049717861791018622136680219518251638092126024756462683924145807120395789983291544054780680600475426482795222177351945881581101252366317462878909461732410244098283358021518993671610716899963948760681018387638208027662326154075259660839665112432084292268766616353912878806048672087575765577231932148119328152243010173670968643281345301337339994672509300257235383392121122575331694440696756313518687780801315468757077076088742787224769732984717780445995788020435859324012101087121824800731225839119050422784686029789384669283113515911222782560513535453192488691824890786473015580756026386408157109643136804452452268963627244910393347950287838081366605185117573097312148535813343450027519071622317101537152556468398421678518047355001649084143404324787854925619326927662905245437357310722155018812941142997435186034827554589678883843555799217514353875632265310033785484100887313371783190865950007715189966134404962372784160094135179327964172995312075841662749088981940845305033286845331957898310372840037453150759088871389751037020733938635194378316817210480902503007254609310748627887459133926178466866072023949955523162168274142265203575810426908019916331186252777275295372581285382420245553226105813164492152259455686666211368546247374666667718444097310452459392889592567324234263341947528700710041329505858263300127037468994429353411300695601378943337146219988490033032777061431052181149788956771263338930637266009408160828976240263866608660758675129127739318284915645025916159177034405688151970243844128036065487539028854076337793913870506192168388999584773647728327327040799504683945130094793453461870098849416335683327721934796807674363426894660336678978177792779310375424161161727640621431863104355605932094429255912880533532050944234444276860087568965716928598152684763619833919768707315129184991031712948850165550273233883667141063453899136775378953984993434972773490241050339855513042954043137303977570148214195685801741083597904010993147637244171285373747795479164456391769340794131326287851996422620189329677894568339957957742698336867708924200743504383547795300742540556515209172708607684415661819977410236837683964070029426261196515440455992320720717672114835551448859608462971186585195695518371039009552490593800896883936401715671379324623741149770464881419194055370156687900205048221209362099071829506945164027788297764075244914412097509264131182436908810562742631096227327106418896911131289867450280422107231834195863260993320597904211744762171386776138772300319408439715232417442060137625212918841634556829019105087037872119777694511643154143805454894249419617487308822071358109025907604929339064709213677552735489772269850792599124486702040951352226151604034846812492279072592760585937428182977180182744757793048269710878941372379109270613299749208901239656629587629249253113746155706420707400536909983784586456171563040698891228172275778302029693366985250167689599513740857244745584940116852044363884900395064598850848701974039072144938649977821047604735405311079514533684078587930399805388800305662245924819420220475028875305649367738587515014641807891003623093854747360920934023773915045983663135518823344080429543536962524561719739925036115029689885366043421850415166542259161350543102964081742079954159866800140627263370629836588733559700452621061862452500998860554440797796579338465770855523525811168187551768870217022234332807424375109017154366472526692548218255908157229303631394731737471745206854049244268289292349533711013318404812540941341217111983678101547612621713609881385451144503558125806145941810551049202361330894514304694921739693824671277591385902028717972782331590539813702606471765247349392296232150339277657251172268314174521121786356249905748205437763279823836933619003170842862410854088503843852897374783390904478666949974461111582999808810024054604554550264993904867819084750870356742572611237418317037750672160218499614709039962459793249715413177595677831805896250777513671005301833543196864216159896628175172662910144795584883587417185068580597901168826877926511115718079769377181759436832233997002303485026265899614541174843953880105504788900881563604719991559498924347851814739554358574894508821084332127812586066805614964249649474276466503365822652696721755942343392113572339813344829412018654924753945033231150115878732250332241821756464191462263006613723946197346529139840588630931344320946738083342436078511379382795098617462442762319553871479072618651875335814313402216538560698407342127717357743496725460030718803009027389853837831535383624824294585499181071810280524508225026693295997408652032644205328311552718865426691957963802566562046511170525628783333953743691189311071157020864710070895118023987246135773936761223244145180077415646232540406793151303443482767035929262076624738231250746424189334912340585655989025761901442004030847159447207714447841227744865411912327878352331221840520051455174497341672652428164579791255665048187595336441574701396060820138512980628107432008972297248160585215278620954462886319005512554524690738361760254829773196084431492615699402467036555155815023579394621129672718065179083935335805590691440269833385433158120404211513745178486036042722849278981724699790897625132571646047374878216276214610309165115574191955663194946574725326120006204863790789585994063234763298197632523905444982176329323906155375309221489641574920357526720932115366832810703233405699813532352368027171523865567444273448124804841496939193639143121215172580234935563124139717225646767168301452576993415410339887622144055309357820206135086450004995069676153116556580990454181824276677765191680300874299446658890065799496763845564405790361312109014734841373905306128099302180140589577100451175457623767809146948945945038268546708321185239334648407832842658797217918028676375798209192753663898961559619613981570231246501119924286669595724211221790420270040909443167004076884368426891774346737140265312684159936583142543176001398591773943512766754835846961735592321698448081308864877482896499477435330091089979374816750951056051559263206821976330744941856601863746527037423762342027910929112265699898249468186001082830863770490467791669168638327332005250555746406179695950243162797373327647208309660927320439992970027871954625651713386611941471537006603547353855130351781489047308049243897268026254622832884169400106625261181905625471180636167392565268509057422124281625682680309101232439967318880699729792295204992724000585948591424645574902764630272464614708539398785080253628814682155403306953983256097115652261324713408306178850088037302010205447849415082577368117881663543606074558458690248690283996434629505056658566300364621611736539648555304576097487087558625643100047222999029467442512694958580823318742603254423638534098927808978827718476806593540905862007065693466676127417808478277190312652253773136074551990480337031627887146904296899821036910519697308539996952916994263203905518201473612315065008581129305892495727516414786249271263460418902559545358866759028595185781949726282121566943896819278867368599988591968170626143228626847944518439881012150158632754212652083330833967776789505766981791611275361265646719911987897591760643927926890704123430035928190829638690327109799560616485444622967775071551115562565215037957350107904552430395113455028505818123097510592362021735900664675458520264637935280377552735659472255690463869001743406801494973475049123664895984583467744547871076672437972751074456043911884519728659189554158028088721867172125979035590597587157348634945450456658690344237420345836438505800227192435555639904788390102041745421899195166985133208092112711674771477874513450427371349450135854329423949855004958652081513558476983024582055920027244280028452805602822629671894246486018232187165638659359337013422050980455040210328405781193176112426320414389950702612223501677800308092302943873749553422049659246617679926921282994899834586130138142422592031060227989552590897773363973210697334656049444813063911112322014976681085122362928780467486351870056247258466022905458777193918700154960170607388227799322240211463749129678045627812855399768228351912896786690589959818554079713172737789498955458162777361346502209265637344366384749696543418126292187479810394098841346420082575391407231265225297362581766518607565081907025202368559711362820762848302142188685329215436443849277210379382994089559836730119042604310552148311844869539175640840922682289688312664754457885527750291015960981542080075660746863660157226130377894822613527221657288908941959207861330561998045761506466771368221897329101637584378568794375088166299041773254376478364848477367146106319339359771181421942058774360238216108972007532331790660106305531369304772318328823445848926299707393663289372847746937804996428690581404084475147699380960532013574586534910301118234612321459438749727005383313047206265928383303203976087836714284948806550522093377565504256016248166516951024381614150288123708021753872903490199653746679669495594102375591454415375466913987856860819380345495190377178766189059041861565869814640909038050299640265090946967921281802920669974487192004802075103970164998834052911489698750668198607182261172444142393742782294129765937704233002825653591714213029261933853485480915873284455625198865794624467480875674726899311205187991201311458912456388580106685919704409166843738274085690403469343184931087460425231515341032768665399989670921903650670341880255496632150817391280212439945603265448263515004383062355035593387524034543642038677139641815958034603405266404609054619467667638089414583357292270597721043534173594167614966475331423769223949970756198723955538323753796573552418273382915118461821951021286235850474553866072998877946577397752487900708916144770482504493132388555404504343758279292848407519144871050048727960785874546428229128494393644532989302579659636771958876005423218605845242292238483883083518769105823036920282142001111306027900941080393765502738834783027952316028608558960415090518844632008450749460350358930756775826427038169307686721786740400352282099313394718978981350107523787002912986004103166945184972779173237412842719351091680775997865882588382832036779258071332769648329643027040059180288494715487928121395238256616761721149358536791423233019024231295863340478464039878841329374287510834493824737684261510034835127890707668939810277007974598294098644697472389726425353199174067365264444220271082128222546860681250087894934521619989089514238174195097543967870523492301721952158247628266170232966991147438426116426675059817446165056008833351771431146745947533434093388829660655982200015880128582236813566986062946768913964891608766975995122211600923470250962015047344666622057532884703217568872414235233679762227132723088797740041732440234943275744956062437574473891485769525573194087184879241097525955105650596107367113710679100135410614693522050848087433316470245813155595933589064534462194953156879982637134126214547717083220690671885930843473700652370434300776701021613900152504991650019592789002021891577958377385859586871787791596584916722217776882394547308230732529242969773400433205730522250428429149326167944239935963862393240194698258387830406056740848725885057639494344199349094573727889896362197795756780047327279154485702660531784901790058620251023705540099232852918300434113266770428324033217858067523980677230849517807972992712215731408257271132887251434386400128532859336505424214947561837051543295749330112214282327837600314424174203284762987475269056147806860809002242931045044117687307123874661200049969017118760896165435457695830179604387119666766388102529474525280168544821532398715323012005710864528266438121241563085554062730307044905705319908321083356442966570404628813329446588942774410390772737815341959100111058779630629246674997203564920040825323067852022488951983450006507512834550273938438536880403108687947177214480414945692761956068787095004913672458840989669428971926151026156121328342438410360544139322910010640619302812385495672533117593426584996972732281360998404714817578347374780658789817973751769329511479201476347482345633019919481245484616866508499517807414855816694214850216638513555008858051863173991477667081076888443434095004123923970613032191742308257445887813431246676898572801858522518578500682282061538688250919519429799136177142220651600813374957321436840592400511303292254372408861643191803970138323543148498115279657074595371069205021002139720593988295559256975397165380362035452732907788250599221643952485397170382694865631891477405002741284535723278525908139215721069329639302525488939015923695680619350306024220537445091198023239454374916736027087586683589209169325116552898491896961956681102028478667607913531537391125861642656042057740644239955842971860869798263313981567376926136327416645082059133106257417262033600900305224405240950591711076723243953852340785394436788355633856836828459929780364158934634092267999303475131841649920181806201868750583538481859908675677207504207155558627717835043400284820587808423953986675135851819618956996143638058254257441269933924244820017991823293985115384855644390424529457932917963413323739954323740945807767988044779546995955493733156746454082357452169904564639637758482721798180128383968105991019933343271796143780668683018519157362080195498608796239664601679230234850082869188034598034070684593687981020672851946929295631082432190668372017202179171660447957881490093079058859017791089720173813067085704495809477140932493542851812127746892022623572993620508294769652423184328296421445362323961338546646877996418089492996178195310501274831667283727103041385246474370432302321417451068844371626652261243790079569796216312129969676146302322186966992630810798522946225051287685936131256195372508865179507216554208375622765282779227643132128738002898105853042158488804407488153248163194891778392938339496572122958894065451090212491054477269053878178146098089800812623451465283473427873667119523752161719336018985195271201984423260427636891707408511853297898214353885716108126109844726503221037441505911507442080767712147754647152918904796458784660871658983215008404529714976240357496839683349669146392227390113335148493491965151724840819088210503784979662071050042650523847829981038885239460199320079762199456619588386362334983561815160513243679739000955820091545852139387096041138662362397608014443136998384450528597093104306916341355637868109909235353831514923641480251382263860794823146725909672532659958242938299787083726219255319349046892196768587150496437360048122931827263825436946823934115308893139956786155377564530894278460728273415975382539570701309110202660464952413112969902932243136303659440060806526179105153452463650014262718139713212153208257780768410196818794349745978845342242221768447877726676826245596432682347769265946140684381833493637424346338252370334660597497702950668595292221976446072388297904815659644873199479057659485690791319051660495395392976668520992481117739902117604371636134061163528048811100118534854110635092220221821849203129780974665547287626449799109243951730743472157579978991352903368271180537847326392441877491967018061584741084765391483515693588673175519996552989300669742077639484728834010334576840280801071716804282726894969784410974420237508966736152761579271816027681328434670782678314608907104760003747717661054978076066194335187621953494098435373909445553876010521093436265770809147034231448141729879295489351646674844688593972799673938623777635052972049460806227845241317738929762587315128708936842816970181408344158093892886007527181139545624694858990316263091367728019612645968376677550131322655803875989271312846743739966749782298970674241315940049338206760680136375673627005186558282494596059025697776848375268031616641020303298865397822085223686647117912915906458685930768485528878749378143066925888196757691567005331065701737493431365105412101516807297344026546577837006579928185464813329105151500236952568707458235638050748713165451674174049362956971661444706124677803553373901245492249595165811043085083791849453783724701714667434663016863553657703693285018179385294889998948841173161382321587917138538826669746408431964107539204588867619989342647290433132806320802038910442145154813060913838416986631400042486257160136029500084522358055403948226655883295590225377537819062441378078354566044514168779435646762955289954621155374864752749492156879178554527445881443250124870002702761609245250851814116353231660565959218890127329248638515810893287709824318946933346852619275770027540021263658243628451601162367221138638525619479589114555007432930123876171290871719171253396382886559506964373137930569924218297440687011332409441661634709235454705014125019698106776446783071693507439215353938691131820225010432155571918081938349481564103764033459617662486040345185167414060242261148990491359648526706059494799552113777209416273999869066633234512265358826927878045752438992486522383417358080684709327744298691926035221056913568837267934424046453717727285754337924355026706202226455423656950833852046753446333627515600984286992765795299688832571167632208478846328339049776762440986846671029759522348606022256100417623891692552019309253310360596889412208105203670693558337349374414793737819292525181890495462056704352719455791538667205969786193340814189197764268399814410750407144831124701587145769014937887941201383738567200786050604573424751676652863359749486099376744510666918257022550375849751006578768625446863373524565794719219764718471419815212370496367833282605075266635105317146867696136516454103463936613172882742753146250900248686497419889203607626899336112103384792774109487083581894146211686267968823675606739121988798390984274822879570308590903236272574041305936093426290022780424538985484498812111560203586713692462083668145018227759705877139114717841535238264356490489437473786792306907937720596803667910868075471951738932146345199852458827998261788199120291220780852226481945307991372331576785592683949257998037046091644783269254514970721744430093566197216394291333588887363896317717572162935056517597502774292656929057073013869097163910056597169897461825772378706698594349911504683040505405637128266911446273165608261166587896876810899477065446608733175969223729688415621665339023123550770683644045636187331107099341153308609275068392368631800347715528521316620119844174017710628660541881072323992312630143712436694679812136480238031435884672526425820618870533064399938877366038415448004286219361226801587381154355875439737429100169276937922221838855645744146424626399863146110859863643015086250185236574821538484125836634083677603031610319247043768820387434605554258752462520415702278556446273772354383349287015739299099650116445309823846035291214347959592098296694590108853564917310218618719930265454465027535973288284418356514242194686749652409614283478668011976758407376783184984915373678370562209909306906028238852652272396994778357084200598641667388852446933418116711146394685104467849875039658020385240070090080124062594455841775050663670572377603614383944981460952291608928502170668400088453137945186555139501608351848883256415946292844070656480619296203762695679650201479093556698749076569293517770583439612633748320024079559257278537053760948330627999089153688144885715121055095701509986546170320728363929165364631806273609863028470423250115816052922725684797491841400539872569558265683272882272384701122411049581606523724148501099063095365531025360550520290494284777394543413966119272233373725220463055667323486921285254223015285268310489841664453479397588676355295367473092567666157187790116179466292667254115519902727771199638459074970655896067173105773819958859028431492345585601202023878867047535469003120961463179588835634093429201332637259659278989629136951061948046695493435334779051657283636575062358352413499290903214565116422296208535324771962985791882468307980811884153551485760691672877227192595995183254770265972561013675222592880129902557900180969141500009085610461459103781657720246325345510189753171233501431280857759080184395378023933877520030838380227411169203158404590361633106149831623452101379382831122279091199988277632140709933689594810015973466526268512419133413885168638108724321076788946094144972711312564767760909853952675189632591053380427104138700592160215659862077828600403815818540585342850782685533883171788217529056191594237523492182818338150595843111803700647925368620375448374106175753111145381510199353494886095998862608152962451882765000253932868845682885326983533936914226765063207828257724588251381574670946739323224650782314636855093197984099017934846633092357352329060312545930980517706521038621589130528191239475315376430863565313983360838820614160426599727262048475431897153643762377435080493803261511707264744243881072550321675887576846267952736712107555737839608623563701665950846474969517184951062298524704233183211999746246242241370690236587939711614876603304099763386038562043018958135803033460584932967479490089318812975006099472186258850578128459860532008131994449970149543160179358741870644529815087179385713790275968599549874122021551780292419645997431097930546567259684733398374833244267634035319500859218542455269180702760709230977608013575374265790945119063290571177402783226190308684887831609449656225624623685668420573796842378009008413981670495821727945623009524558604649715228174440742699043492211673690918448330986320362257012697978075340816580068734190359191550354878107571912870163900289356985696115326164006986407480567088318979295963259025152360908963604405283458494734051198915863737279368232381135251458587228240928885379070633765797902583471597275475809431375616013053046873547192025918233078381650664844799655569229338557556944293565225528191977367111032706037202153364708958765577248808490838048612471766411314871588892710240557611316883912736465043032045708969802884397285791098350336870020469768762975753554208323756435922192884761798301525450401171994947907067232002771686842007436401430728111225323093529913587537212727040864634448985700143164859426057999926015808361034397821128912322913038656568394572087080716202229505514266849943936112600373640400579996597353605479051633662870898596541814055388866219220409959798037197924941450113491017163408951271709483822998475505078129813120082467173297623295366094159959577769921721652574367786179729082476290240250968239591141584362900498867307190664753786773149191059607863969718767392416189568596880903677636702869343248961998988285143138704482108211263194411091346581377266011795290978871275018948374676340593670089598075656869296670233976540210100577730281422393265857950930742637045178973260507636300206583928303509927015905814547160230776385331362099104560824643775598334541062118740731255163014733190887986398596377105714972390566489598303090708959243998502401162526248968801060907368397610927853148422604531716461090796518175408556729818003300490106642702665032417736968465076103216671092680664130054369537721750810191679766257039344575652601118976461285254216633152597349542697880167555116545894946810774211396554169524167869194626738529827536721150591404983820850004797527282812018925144585160848630612356740378383828308428492602699459176987786654411159050385677233702751695761338174207648712559611622593724022531956167101471999619718063350403641839788874765955813236020000752373606114055651448508332320563880631057943862980548769136251540708138237717642655027040167918324759117795172290095491517831517959482722498797304534250551777954757400417133080575355303361573822734169923920241418832181937547767814975217751739997553063602693145644122956825389767818152935742462013546121914978725440055775889362900454417358874437931464537225914778847427047926076083397195200800663206739092040687087296486152868242840587526916675757271190275795972293775447891356677366154237026961672129202718601639403875551026362289430690553229741737098296469889580833570724216187990305121472948281763425810881163406529472712548900208183702633217371699971027431027785380574686371351309275933308793963259859288708426199646061378823661657114449007101615551356453274868242577857270778786651812214443698402847611034213120631625370557746157502491389498477998942623174996127239187456318792500330349248653928847641541641306037976989153281931980803510603344551949071572255808949151682648821006368219900063455114681545248020934730886261703067744705043543322427429975847809868944611328788680856625531964316154714452363161428546123954816160438765338014069591368321440583577657967457819761669625862621640365664066801987512022845793894606344640448689534963691190527572354011571341314016323619554670854374303254734006045326865993608821842840318327981524484907329926366129725042620634142996568813764929321478999941948397790884306496604321639927630266538656670227624148489555755413474327872489254657254759327190850403637919746957061690138320298169345881017551627903954858259955227231323588306033413843656784100980144538324449700072768061491700254805304315601385603171863082355914106393913364642456675709192872682011918804051951099321668209653826545497956655836283516025454651583139895429568668238888856337281097741459972775853851673188806679179908163108173480724076250271112708825279529843809703572844118022724335545166127687245679767128876645045541899573206735284237034894454632660780510852410389296114218438679763284584072491594395897122355711634131654690438922877365698770768496287951240931045405297256704347148397991298597366452299665647074885278068945709617777700546200611236674546891135237460431420817085036437157373211753552029829619231888206548815801815082736099079567654467325158445940451603160752148540742128355176692195712679143621386117285618067484794780600536784037870451028217906641410606045763312623287671635952178684653080071045540605073086871971082851812890726505772319547142621852473155806436099768927246998896155233815771369707925323482610782829940947084989187599823556742845811110881041152158542076695483088258443613817866790789371102089609618151249042760813052063743573551808581436160089370947248625505821325951752734528214161090909525746809547459955312932472070067012703286540315909795633921500845946452253578425555858814139229797916020760164321105986612350313231880681816748674633591751308780619003678664046703890240589108371104821450595772071382159127127664486035258143945467103174572166246878629082767736746335780545816344754154595545071176436165582298563613378701729301335738200508714656988170676473700555732718869891396574273523356897140931236913084726750223792534895429836525183024923729421797647778806664268981021833672513537724186753099500672545848430011104853865978538367507260798128839341834521409087686482023975924062940779656329983415643899812451034776136471634379021226054356085213169507285644101707121824121421408396045657535587793294197358416684154397249546948773055747497356974983582462569116280298476872133559669244570345656141795848719609102725744372687772053319491674096476067040498341515493651233485541492342490753499404516225943707567027605973787481757858314230115437975597497356993777565012184986306332595104582060792102439589734999630554458288391656079430388752961349159169489286719942197876424877156710871251118633389562497750631422699361018873631424103098354640458920032493538878159359740073523216579514534213855086379195687260368653687686391459590441438225297376673917798894283464154513846606056122583867756311401116774461989333464137547950239335518056938697091436460759214782303227680043116096693534716827959864019779511609893184681271198228474721583823019169786481363748962835260497353721034550192129490333427982663119430281498552492836846189572607152778675197882674364555708844919254929746597860774134003702596066613325888329730752546443034074524197426232691378968350781256538508060640527673994348666891594410943071728905870811728648813672891377978097204229535319797188845405080961200706429405295723119540934907116269480478839517272100930612896549685545917813244082905301290345759378086051402842856708786073306736377775488061570790126100149506133245707428045740143729545739208187068613782453101466238446302956538279220382261289737735145588998092241475355389659078457287522921064506054390578041165433626317719950406892297300155091338741234536529178898864874408229132565156363250391552679077223973733191816225783082069309720929637581050200457559617548296198073606899783283502208443599962736549450286761880219736103609451191404580017053581354395904684943357513525400671154820308836587895804888367729948602472263928282863462017184604300670693852278999519215009235975200240706092687580254719328367070126129430151569190409624582603861128183298144743092705984088911624585312740854720118016883680458424614578622119502865530083122449080251412771169889910860228490866150334198085211170807689673637479547239111497350681061244098903773069323111909813418842404108561934194338729609770426613097648338167507665283456672743728627901793463038819364140369227293664720630858787680757959132983545453481583412617877561168369973937678731478996825878290612597813475905617707102700604902394845103688197220084632717337962961794944076853362944706988452317300181839405006240050928753815003300564524917584959140687811685428489309156829522539050541717311538545283033397403114746819751337587641444006743932243890624826654509434517702943823193345406816073791693132906625711713646981614442410285138216930273258579235993002703111306843426816270998052260139334095333362463272427017885909801681116561104411817988341239179726109172852329364693737057660874643298259793765028379917083004304773746872285873152195033965460216979065543513622621144771385404281220615082128370989050212087605304063287203341491591860621757151611426620349012187835512934664178460216539604235859515840191230938677164316921916876872997659836215670726943113444828809056964312447803184572444833400476559238378786394200996015772341417779668589320635574658133345022536285692521362536970542351779864051790797044357007218117898647622867370869619540964819724880619647368053814642001905239663353681896959628173629363145935234390696235511576396932994853872600531353715408253926244497796756145562036731050591695665420564976474876179648588539396586878609072857595805983885112901317563293638999563483363943724723056640097629442930862764005613169202070183753483839429639144211157468834109919836870875515553630844069181767679531984902439635283683130291853180954119574718533391910337612190451104329408255569898289496225230187662350297696243699275569581949835347605587120113577503479032733886322902985407340056891719697201616705089494605866650146173376951535568228260434162090254420540447236374874373009143365296834767627673127144769843533752106755235606581702637452756584547030664327567883098065214876697188226762940517205599611743549018140788882514855052268379350718453462470199415440178095487262885877618195332412881031424005238458228886301660989597306251460821374708738770554013736624044340239824338455346190608073696410079110359790353376298139003455363218465547275411436483609608140053229999812626857227930595569455000158066104516592965062805685374619472561616234801165108765142344627788088486527544329021358869453313838046667105768347958494672806370207139620045280772466785431814150009876424027913072045601600479496288077202099581534286016273910595779557838089100698132506185068953011385325133743788311903905148889489470974125973643916468851117748238959326623523211145626429865463261634588369292408903662957248498585374240754448100224908654742260368503893608319899893471748806682170616938524723002745144544097620274105749136692041264606959139830421997810948286102738112702279087434144120059495066352001020857126200371376000249357059214728825333900842317769818376924341687554649368309490134683274257984248432781904581029846692983914809793053930762587512997778603843958266731655406981268578177456727464395393954274412167055180699397313134424404345749062274629649704235395826564763902225676979161384751911289255746250863371230604308105400508575162969294210503792682427561765573672186897452477087678329240408619017044471135984553686876637236551339616245937113232535358489119552065634420348904353366840991261078092838447617525495717442437156344192123440774063912763415339611970299713961635222848624425302940155262987919138249310260372697565833961620173929762425720675104912387103207881772825666807778262753883323635857403642445706650834112257952310044473557849058698241269517021766653037740224915697056104723830024833844777173567787949548266308734276471678767946100024019202654566607942095203008457891416885383191780230188458302891276040143539977243486918033502872492625274356625947511766047713757392718560438729364670673900882472425463364287433788598915204415403942082435862125510024650174778796027406374205622713157186629287615011607341588232268928617933622761944973025522454987007347930037233535870318748542016603495970071191058278564909835105613612872843246672609765525345716632464404587858613838396867758475754355272832777534495969034173504931342472274991513713112228540336400196939940401161820895337684456588026925076066044936516043197819083171447849500687428720520894538628997545739746053366816767967814413576906799140679110023331841889152832357234257169692855790366221741661670692967316262501385558944431967138947574698022300189133040627803970337677010242826238936784349182540360584371028421765508972118862045645575557159119200072095494983187750054741396247288737675869822224296274122748488009736665141194192411498148065094852537708152464929792045395400400231808757291614240423994265061343557233729152575657956476141372073471975554004355349767949624280229354620793360864636245089698522164456137959027400602735908846120367333470059831852422063353318656818834159138985811097168973868087673328392038470668101493163255961170220592448472932466603963997239360687396300123628835768817034999848066198537195271595669950683830950576206992218803996579445229631020975731434188696893941621043736194487514589937786697831177954915463460737976517168700558984686021655609729282862925214351651944211358705927410018286579217914786812515191853857010556811679210115409362428996331849076905691196652120261202659278707553479619789472095941487210395531236223402330330826044440572459463244782173629555785884214538158790640639110809935257099683787731372205637203586505149238517726319611303619002152171053852035990503862055246795599255349988229182294812182122593592122905023478496056317988221232890899161883446130342978891717218971155690279186945953337104874559090377872135409377842304513297991205224696216569343722930717681635645217395863170911152201242231038818418816075090216102212388306646317334666565063537274292864719125132423972281393964817277183032889154611525101393537020342939426944446981304615790526167462808676356393911573757901738885960129887100764113572901674230396150139644304454656252628096598253763665533673065074209795139811598226426390266037877239572579676141584251204299663339364980088102682487386587731752324504592142002621349299197730677753603352193935259656201258625206230974150943424792372255222543541783159489501519945274982442251112505461990581516714464853786218292535440722801959416445159027557209721565029934654072758960400057402486809228656147218673248744394616563746255054421217483241027120572004657326075963288784943204763564929670330991330368579733600961233097500659792275366285464265798974860788560880281700991341389160087071600477320787299108874630113076920213159858206699001729233615127981322593070602873856141947401095825023129101707090973125815903935321355771754200573773050355960491571322297559016205370759914974587679182565993812585548381756629267462515539285046273104748564084891322061242400954004552722485468524360946605520998207860824588360621781971465116095827345042054316849990189815213025340039375256740867598773860065361132768609128354597304185965247409416572068809879950484659806526689310612245466815073704177522126449160390230624440608602041758457818240551141275579394607104084399200827295376889186977675527014559767325963096157862059982313433354937172110323651807927764763019665787303291244162742230193243792027090087579287202805861958132346424866910548359036401623343929303617659547020233424068146939844649916938254551877846758875698750962429476546674089962908848257185059525085211534385133416727040265147630201011289067239992493147065717048241720314498518703755534122626492673140685909809520200579125538512567310273331169211143303787594145621765867372863602735453401634619447299809515742459152841946005301635495333911124849938878116072722222344727594937767385246204120463416405993086548007555931020736356757638751237601530076140462521086524062899431429999310643389657806866964790574567165206280833068490637542401165231208136352514395532494865820922879558054361561005147816549573250992620201966373502508415297430541093884264696039708633654499002661418940802734027979708485227716221281390471813644414759330126853083048076750667268777732565384119039695843607813494162939604515833139295517174497116095706647626805445512249313061448759490518117741485723164370849832697945223803908896611110726362372933495745124674323793123719499656904394758813057420935792624408763988645779307337608404647723215933808756078829418507772413927936962137386574371374576151590045306046128504104220260913990534817104196596469944519883661449529380025134468441543786892725007635949080741996357177224955296849335439955710857815092332223821876537615772361318058425845779050196418454698124455501847385401893983235736862291442789601680105634699895028801907093577364019637701045333098720719489329738846413227454889247393314729263817818752920547235067392224673607383625591054856096150701182739038687645920490789448270281942338788606973859669615803881786035791615973713170210625162743686297786488437298230277870994631877374359588988609982377151961490318012770462585149090912689853748832915690393270032815738316973455795617129415362123392065725450807162746532611506172325936126875201710755766811875849238517217590081060549857599593732881876777935585432775579737307646223259820381707777189060803263756984344240627709049346865576372379771294222400697355220240472860218049964734148549917196417046823622326698284475848548237613891272918209118431893083802999042446569642035747072009892846072164147712666417777882748369468033499190134886596145748889093816713378828025859808251514935664491361214596484872436384296732950480050221697457072981755831433002711216987623219763005965661456901610305406495637525420469800118359437502219293535414669772950456149356943910651056657639614655211721494019462474428862037661034274897234389266513748991847007994243718489868680959925708080369126447918803306374224048506996319007892667850396473518499951416558090258157895519622013811552244568171880732579690892723549200226764319434498320115193209820426687319918272608724067054233946992989692447078572083963815037081713599263984283996323149677351309377388852177273415939011247200891547035435353646532334638208866288945690940457209184480423672997158393060068817893444474599892950002954765503959363424596425021315898972021539119957485878590462001522530092209500381028158745841524215329709485938194356291225742924888148425111278897320333558523232428821876808638928947570976605677183843250624041674939881245943046471621863447031968418580391089661507537299039364999479571254682683796409437956479447595843429463374063602988494220106050343723573724676008889793691001241279948877274365759000645839284119003295991347282998169545032641151054223245959645840609207962202187678608832688354542333939242616662990293023064555372522508831661943442949312209955620027573470836357984770283228009448006695435211375298068410909401583930454428016204659994516769875563776223757853497521770941084949919343243069893937875622439049733430377085617185159898086469415907326326722794097794319523408368406177853391434138046863177753173211436804955720989626862507284943469454433474385585908195487123884051746305366425663172625847788079461968593608779147084668539274749086705378338097242081488346629988735662436806507498466460562025917010279393644506197858962450201681774077574345934363176380254211785155465302853209474726016949154687240763135882317156003949818195636317016921048816114670392371424424244978458940534654021579020174522247215313786052370636075073012641399061558215451507281740087129355112138138306069384549877062718858133561484971497484725654475497750967886762021344453606685605711213154002774534701212719471949815824994315565328527860170740431910115969325535080705935704482361654760377915534894241615371482597156912403241785180527923891286621223489937153146500156896685040779703964614666816432131722015068682244448011961840092129913705327935701801272022690684381871207331273557308507953708603614738142073897759921728357119222245513221386238358987727273276045135120008274956662711019161542317522785539054635492780497367969505237291919977596364807149811582478741590068109316189770451443489954912511686310157235350238943905539758992467450919726931824346192728642932066543149124360275012354852499702694001624354466116675323321817517032837855312548484485531778533132448609740821776440628357788547281880536514300097685677717834188020180048733668330301155874533306582250911503990850059275472403253638928525634221553769819009449427977988644223674537169347780158690932598318114492191786201498030565581484244866471606658311831890266705228093625698698745977879239842894153279509041398543205478268340955629053229134084065795640184624609661882141138812158707428779358946664381258319119661510949335532832728621881855447898435890044442195581101357525265646193618290494120329305925773209598014615959502698491261188858661562501824160621511676187076861700191688336556951155522748555479211775277976860696644419195838605501503943150437485310726177833378339019275838905933582967974282663328406458413791241430759828882149425396758083546334500758887606317299820299785781575225972148653624483748107745525267693614082553667321356135964778457029521395670932146426635006916436883094930158636227200408176485991991575424077709599178206660598565775284125927360104629176797117184523691780109277222445425070044201828509705486680858350578843485618896873065331170848819782125657138256545489201214676847644206054407960307655023599895072541454641151863058532132195463838189796989223235395241175104388357108879027242533432214263075601909997056249445447917398225001844803968017931103604391957629234770415224849890202884025098697341129777958784925065457118203976793598522429535618140649267019051425575634936966824300468952699315959597055213482925830248350305913994114128446985607108815896106169511346654916480512084032838695717217291470492732589923483210134622574414835027534025216181052085075264041108961544130910844050211755233878992983790799808270578472872550453552981229138928504016509807679390740624475990298520943995747601262485823716352696396261455071780608865414902529175482873481631997508581328447141587597356259557827321308254176972750843964156234140655886803359031059820313104866655229266833203190328155459866555256819838522797756695461466418668040022838467741542463783437602113098315583430667036712685909760226916150977231336137856025012569991439516861005496776899869681460584111021707788328009615560068238382801822693412628588391804706566759449606606418460355767336564150778077944349418760486968701976165597276473584600987364738984810198601645385441770731882508781348438944364912541182446492721351027688404598228513636507481256146173095917997331889870758041829313859504917163516463970378125298159511801279797913822243224363360857646146471907861653787531552298437918690048330508753352622072897821271075149928848236738958614155549471035127706466554625837328148503589073882469734848606690604219880594488905682082836644023751090781482419235941412271990927602202050399673157161566553798736960108826378542074390678964623946658024244187971371288110413956300226057739213871470678201624620283619165204775420980434257990599986248742059502885342790122480545883832871086330617592055069212594593834172421642802154798921802805104919629526086267549562997822202974504947651982962374468410507998067909354444632295683621653884192323218092226722964782098498854182526832614646797164152531911348676529967360253431578859767805763184092481317867156096389787936557812100556000446221199513442343060279078634094642262956102475933941773198676961235463710539189125353084945447040410174767630956794700203416730933079836040471928238503630445455460183811644643424032197975694312579384790497274652757877429846724448176136889921060659046660683531345917539262699814033469127261223587527550531327520505257737232956732915890073907886538507745111555421297267289714655092875112590967035930173482108117016884220947935011222011797875729131323076849643127265845766780750904849981916066393743592235080957261343039821480601564862182666558583496933112018713622437515809029253330336559658136827066880562573055037642960978908694221043718036687829315113540291797118650194648865859576622274434326261951149669023674759908280025237444984497410394748495638185207345607446322018609727011596812498010732086309498915489295061782406658809788255308119190600232542791880541851629162909196943615294616593026187454975116489553720245061501324558553039182279977017946067161155662271414927341536962536810482870486960791630783900837663042415154364406073600937925205269019109489750959195297296132403351983688573604253195710237057969504286601030933246342760676236931902228672015157519501555022861935050879198002875766720967360151217853945373211262951888824564553387331234963748911337275568442113307133417785153936116202513779355473229321783676390076167472523521025596310754764082276727223709526851744655842794765266027669897969824844632106180130023315082932716215635382574089299472694261604128341830496348204622654296120037593216932131410785561141283409243408601372918880751401464578943151503474200607377008843640840413097785204838035192933083536405210149927212351014088783003542992541437878331328083330660463412074981981273069445695669684840398045980438269005273696818029139458048844915462271390385831447901440136486630011446763660395619204924742759725967761235153586278851531880973622889211820949788294907112081703799667325654242184389009354360346981850490910260241556058540467686697484631495670324779524510966377201729873272877240760738870191467583439252515751618560451804920178393924516734593427508683594647011227761742891447159890782211899260302088861051538444661972000014913103866726038974153873622282456684199438163853280845912432717087187241317590966682396893977433307382448689694060340537585866224206518653375804803622418180921827778940610798772551658353537175659659637012254663901222141656850240559410327601496419275311080246922342461378186942481276241885988766874361077686393183478548416938559001882888238739486557830173283006307081342169723866017370583468055736408660403959608924992513192429747150621455896662031616257957260424609479423655045684295293020485221322010836025314693028525140351500081088347365310610144113378980710228215261717605329977563438459670827707141605785855291359587816343709659206191673371380426123408489148500976186468397275890688482011651887523261335135046659139086637639013516805372897869745956981313741866440843015282364110251434912079048316112826204806075211981129182481415150032086541787596935399698090844619460285262262107256301407229557118730351654264026126679646093156872060479515287903255646308189251009334634810480581870880157442324453747236700658998891958752514400008370435495368189193004831904329425077037429760059008899211259017495522672447847874237022152273245608449767895126249480343444655366159156534848572234523454122602719189896523833088685384399771400048818171148244254518353176489152475868463371436265178973958916230964796825564317555591146021441121767203592277955091323065506476919916862798761553934366511352864812914776347777670645536021572844439100005866581544612207154760001349153575370983635908937216271231453004333261875339576649392535620300198512531549812176922986989042377902192518157319632902623543993744846559560572163833566966204209639260381365984510148727531030196183786951809222544538182440147509461321401311540171735993715952571523815650696893332251608856395096978845110657352058277312205180526702453929165258985288505179464248778415430987084412984041570857339164555278854096248336049186882795811483902265432410194872516408433258019563044182839067269098132277827480827641737709804318649247003136703658521084651844216981131776862520454633712008648189443041371318983169722971218931832507376263031969240462541017879326408465890127469010253927156277446254026932565782488191639591007962852456136290191688876458346368465331722675884224698310136518849177206049582942579782577977616795787737740154691121018882925990207182993606024180218668223671474928962458638416152281292538176268621159598770797461125215636658924430616434918445045400290529752915465813921628298785418142509816203060272887351476823001305277046211717521655479664005368149136789514256148285638454495578047473717524713201142498872903846157862827651435135602469795954975556031157580323164547180329302673955389759528421940381487371666821268992863261961998509688625985463952968516349071202248534911629967524169993647079897448478556603210343566991520752362613061129519306339348637462775805473203564509405132643094019369231260051053857757942114289232680418679433553326035891520875565987152508671593697247499740903644999657250776662040986313103189968515599370290820875962989256938571335754968977149028800606394647818265696981266571981470624525316890145567268110087353381199320003735041598526469383747474976686273687049693536530524399286389815314070965001396469409278512442583217875615314493546158736460169750168752500867770609409114751430351601620060230133572216737068688772161747644258373034185441487894905107873328781268425521340761830521654571202735315516494623279153343201863263834942327541652797710587058228815107593237928815933156779731769530528047567381506144268328464135858463137749992903897167355281741702909826797659119869501643613224568111767164379388358349091908390729606927894909049587149831343463598063064380518941416451873973958729810793846273539000556967889701456758376788493259477926582133594577761824239429901442702507172615419003178126526552543611114452097710226862688764678996844919167713191183226721167994997562488546495203762743262910940929265635243805439517607142030490824824030098620105651413716837701696230813816078922131906952521364569836739962437114488443969361396473703750396277781152228496918897475803148259512282609008202190513729552731955617330600748971718310385055007573298324399758623051938607782571867937904174287064441918798743368124235172542799455567481434216453038610983031729445456609648795442808585781948300005100171669991268433685739038714811852354234004694936191978389520180528362825820637746960786952731429488392247187117852205045798757210275481580730154065473536614130982978176128996156635015587891385606130261415192409713143115480822275100955061319079601006011197455795589461723979411046684996321984220175045490967961684851815899893315555219748193755978543469626915980422086060002360983622803558810667249411370315595017279863819887251019234845966467019095127914697979247022128620110604559504122082762373764239613181021765557615629492298796297061359510004466645903971646657888340538061859775730428631380101614190079935596358280726514449677483407652564139830086668704802877290407199358567437555877237393176353813565349912886909780723362836779054703098017016206142559453188496642044907388145489911045584238711311466538395949358338559771945428880147202670148827382513256134042626891601907566546073821760974699960510452692853593329134683467472375778272564038251842253837025902592555256050295836394266095631208646801520078586464060641049364690295838236365025168098246075863632311413679275673415478796102295135639647898362208625751512107641500908462086291580344479664178106674558571586322854949991498462234374496416472473769789279716981783975903768176048041174298958370771381361908339639242380158644640110358992159046298201016135462004153268668570638975883799266454644866643680181278829664135314958471923384657198362440219957662877535163131748226820719042861070062035589442947199878418108391103973928706454458021844754979007857346120203632752762386984858701588145447930025436897479123205215227636364600650636216642965965814899256947508866617301961356760032488194755509089247289776678575172933929971143929003439039385040169549267353280476700568564252376197119642915757345113870721350969346569891300189821376351807153323913231674345774101515111166807556860894539831656767368111886954450118523759345356971168464544073627688635623145459321628632682883195756945614143733900333274411971535093878650188823964934868275683690806360377254778733782746065743229013353275459069903748647242748449076370364102828162142394764478939384081502460308728150260981411993990754130644096321333899516221188756869785196526419182726027979818119936237436714605112875884847899355203907514677036818420117188948868095688319487548273508359612200524687046589060123282721136582927529933225894817543522274433511685788896821349877581684224476841314822651964684901154597054439914487711365245496085131466918462891579573127760617456953977811385262250458841169437219527183774372517979930783094259792616014843047450594870065780477196681315803442069960830387449178480203122598568513824489921547215918442135393928846074749470635578070752963550392784937588843346734247276357344479203050152966822651971616593889165105707754050085177052222940429387660982975318583580070731728115748933681714051459032340834588698676856626468619976283498723086893915968059426150760143391594372952783873765677328189371669753716204784522161977293072081463097817318784563946433496979914995525097074186245667841337044298432220628131505195019380498306915991752757646507392505400647437996899312790017826178624973944470386228304214527054975501541986180451972817082042786685909171375702878456045646030797329486287979042174360928655683801811833764001958941800371718871111525046398800624348403534408409207510214054344779681417017871125550923211041547110989656179615074941730856488340587722078862058804681493941164593204290484333883100129704183535292595256502102402758475609354707793375910718387419028447203350587828788956742845114170431777952139269399658493849233475580021812208508961516860596924799514902055215798839415590677744752808728787012899887648837436359737989609479015441626514327882609345573854565694683743627404231081502320457508319214441873536232899317934477076011349331095837552864553062368307807901898250988481001431269343691904197840310060195814113139376521463601149340956607841326379061524549098764240645734801873812047800320763564302101862117437021564681535559499417306789946079305368383786797423368284136466278281938704971580327833961608606034802374750701371473155813167538958408061155900398159620653081460542675943891809946562892395575797891205200206817375418467578461688863626514865525268983600717469686421784867400462943085496010116484570655090307261102950863959633301330261634939939314777019081996012404314878398918465818512859135612609257630999760622411236299204716796287626539181924618636343618626645994040712016907118629024254994761290281861765390600427456033406106898523674050624716049076699277846137407922159241478749947283952977639589571552440400040190811969776688753537779322795494717647846542927056575765555545474565857526462480555468857729444195113581795355992535442967306500403186632271899753779152054147998645515774106766979294437425095258851763905559118194704235892303759092819511629888351832761573966326435789063678587525994526362753728548349229842787468455348315694287312079529475557690916512292959984762003274327528199991375253330639964747956475718635104918150370622208383975225699121503046226099757828126687788043338167255856285627134772903302464363306148316627799947014010497971635169329888578364314689765570863802044244520620244141019848178478775073087770978216372271670530708789874032204126957047785114686417623896956493782388289651078374488184329916394642849930085813538999772419971616464015207585771234224993883671305000258675188719102784678297981303231771953844278822376777197549044457415062233119282828879030390982754574839352188365918773370269759329985082973162967948022889527792814153388247829001042097447796389563511258659746642580561974365216176463896745989367640521766357064741371586772653062907651606526803988374892270268446427585366528373841405543240143590343551125316431695193821787654274833295230391080287977193754084926119427718915531513529556775791509220963452520633319516254756576660112596121206500957596940808173427966581793100732520310877305598711809425231466511539959511534181104310859556852652980069942627025137213140221238461611441528177783177217943632206862795039631463621468714513019597528946206437117347575276758896831706769357278945936929883566967369646402090450577344417170736744537645752553958820661887468361102902845979235706911158746789247150968203608667702157456086751862577159985827120998213762510759586973441671365543816579645605536816272541788942551860358749847111293188657705504552711932944096749965048628648184275103147035429465200931876384404191249821098737982743820919609843365626284945319347388311288639196138224493698345726426044269862370923151311798496873740918168907870032563428454430354290592236508439731253390376904670123307378877799087388968400828688463065845747060339058454024727514629372056402182684587442489755894056886271701871394209323409379500036452368055671047979062889135499110818676226288742023831738068481527897649885004815339489768330784101297355219629141534199206046006995147331670590172790565064353588962405865400282214991316372832021741626581785292923421370243242091289709614473837353398774146503107067927363393665959178538192168587652458422211100268740475485531529400447586895385628728163787732594684699992455033550011861810946699870500077010950242103226728679591121435490190453178007364168605183942991870722249584850097787974733194435627291196247460159480153959020818852757739336485682085066929992129318047587192259566208116119237896805936513676690993093175763036832141312602737220838396055423368785126528599165738151655023019381120079968352078626337838110953476289586312568667171267352911604240695187705880002643365064315546323255640560703916582016891817169123598010326355842242310673554482520216891897647224533280571161102502898525071182350711463278424545716137102083038358586933379659448089189576647648643108956578548570293296856328197175164588772602527261632503685562270105582657546120459973458908547459351780824734110568702121944654078711599501733125434999394322393025100083552365249776149505552619976709135443647103513269266290603792440631315037146995943934490724411933027981100421761289128775385023205052103231982212129744869050269716915574632270431323620151024084570480813619400543618951858621569488364466607170453116200445994741515888274596835490339728367424764271617262957556733725729092030645914683221470243531189641735700131128939562891050894839207394560472065310375833617669020443909726374540033836719719752110536657631381940760780071829113532735277835948239464200510728289314890093874679825375945082960380313759887137687621656899538768569854579175702429232372217180190638415976877992054562141468992605541787017169725582007754127758824203949468630417394738692861776051324061250979762333321097037584114422535533620847307827304323064144015110874965058584579175542221394021503502226551892022189248377171520471193831534879304715943194039671910129203096747678286970682641491549505933287579205735817499732356631885958173495194453102391941122447359978775423138888497383016855322633048765866364450719389596158805782036399761593905118678302163278796413925944171617811318168023659852024027276533966340961491395438267169385121890694203187771026358691580338128952491134748001622457953715023133043709807901594382525091438781476499458538028800570039289256271819699810458843949849816948004858279399114140324670695710552917794857921213355392446203058279347183311078410291766166474387821420460284485710518389771120036053634936275255561498141200504507088670247095609595496260421873345252239140540609501899271225404194516247801457703348387367052158748476820613789821512835518301496697653577172303444018979319361964946910060277710036363461659280664058108073605169063223479783764740999672786670576223459996101866690003161746422109019631852572880463844098791254727395974097073161207158595079322466536375023199787051832058085221154121236821770132792330445480640150240288262038064534357265748491563757725837647999948343531257198298283994700874683814782364388334732089275202595020782977023424963241387597601802313108213216789162335264683229828618043612441522043670154076594976667825422897115365484982703741452068682848309856556080900550786140635390834456581047121413715809971384985287949736837699737563592119577511614199299857644405725408515544064627017598957563273371870503657534575258684947237068986205880585508742057379260021302176854625510496716676997565395658397222106804577340813029848678094452200358852041244085366468345287979025372686242620426591253985210140280243098376104174892427947980513149458271209807272835192349072884439343302524740452584464718282079964329288996888811086721753261769588004563924981926485061228246671698187397260774834311996739569079957951614590934579459626817710974193012162785249922317908358866778953348184974217742371496113834029452237690467696966210340079977779571922331097985210561700985627402892564664784487734771570556568681096657984165318023987609921265176627116914432391544623942923582295900534870330784369272164514919344147279968494309446699283624923791528790954851778633800201477775129634818813645801172153653353849205654504882075114152226109404795415356905932660609665974313174847713750760887065814654537232402215926904101152411261242965227039999280626643220527504009000290308640301379873589983881349207040547663885516824656968504087122643684699998300155956998312798162239655619379449504743972681681975930366519024389063525904522038025121188509073036519641020008976215007048728047876260850915768276125391976777963748937726517027674194472747477595409610587156182332418775935925813996993441361451164071314154462035350380004578668459074879532699060843178087104557373390071384736496779516103438467630216219116878881738557279309997454200122782205086401964120053360882709798007376944247110631772226698692270906796636016544563641704180015416362977676670548788103189734908866730916100057655590709199028183095442221197894624022029628021740713257517908673822627605047878441805120351630562503786461276147796315744500439816524423689777101977952606078885208857909950459272227435438056260695724306424071695307794037257126259899761522282078107283836807286806262318434574121236586612690233759251713143876653632151044050684947658427527778891075460687508966199460300081011492206284923149136469844717882340041416157591553343523363796644093680753831417893034391859248042308742842905434461295620576647295585368581352283565264314053307198917524757620350919404557959580171503689884836428149558829821298958809941430751034596619864008042589457653226735424614863505022381650945428836608939423206882640816232824624172823443433867770679599199782152595770557555825543338805763151179481352028464353493183157307200331682838925421938662890719717029313865396686968155737145081790852004546543339792069976806204802050940629138185711106293300633196726922147948349693018649169572690329721880039070855125058700271895090916548982195941687287902162638270200240082983803674741750925115729799101414313471186980883554751593851782096041540233881548626946183225512034052241327415724099884833340609255326009738611865579384925951116367543969113408417248167198649142988060853738590160997601234784122956715055617552326524402052424613349106515864270433342719166600414699953933973149753900889193808475208551320371213266856191445078879088639792858140285474311784295780425287603398238692728554600808547342075772094109623376014556975163178911849215653928140443586971799107471339560978375693787065717131689456735075288959603752534800043947879428342314841413809252342280115077539239215001777599974275117920002398650942541237297324998620343695719118266016691485130606917595596632190401755384528876345739734651284508167911044578898565293156583434274403058089041448368141537898422279532892084319566406109457701394871500454404607216182377821867959884927041068466786922542871683731152641312203145128994392652473354690095805566356399148826033360861205999261379846421686778175909487856590429275666340525612776236258812837442501254545804559789616395266894287492654166158971703359001561940842083047114813321573996731072026271538163244557543583783861715975808028792673023490193523720657393254402970414935843628248914234485619910187306684092439824018015795822026935453981396195840746201854955446074931601302806418147764936008941958341404628456169561043532448835638913058949730812349651822727822609647159170732021731901077712655266755515897944442529903266039145391502348688078635323497588339677140263120128650446371898529598058438123794901392131587951197597227590914659053412646865529437836831234539490011784974176208859006767359189130884475064485049607870121048314293998174390852816478479210587110550803012706041528524194404771009601813303581140208413625408935792388823421483388540197700809412685692082163482581325991847097676254648954038872282940201782640987458663922208322541437198252157734959434598427635672741512386867689005509135907155924535566747577884949246428642494113325196886040059327777088520241677713875521190868980310097209964683657804256039033935636462125830239142290162114462754523350683264949451278846690078011631156011146133976006486074088067659087484847262343194347437663106136226321479295293181581759566244713378641965214812564357637742843050639362329039532744418164495591916648460327081122217504360526273778380120320471538233564870950006645259279827589213892385794330542129729774861967127798830472127318856344310363074136114748548778783662870083090675129335285241966556625489441843617906560199407651580287945054021347460503979328448090108507391787223330436571739477309417246265343812352051371912394278278667676726741700975551220864229956874676610690960822355468149166818673201535081189562005864168036001766256073322048669888182063354370311013123445723636536981530895140231145155177950997200484145303924832522186557134809124784068588781515493474807590354131755510499750570883651848002430098178981539468811279639652073360096051739918271735605591194831440139760622566135338469772454891907809945698628096968720963808695130395837968470999064439438171916404917904851866814508057507612332122063771810251128828855630632566332229140393103528104658485636294537045233848631687416568253956778815831461309840942785081899935574519037228315403832828435799873909519042704063150357632739099353985418145710866565400781598590623285759216726472287739798487473734517276710427031101688664013080648650376164809313107945999631309479979171927149419167483071049842010517152820569662145575517683226438589164427525493999004156099148420764955094419187381259921144992427206608438676775106861181338345741417399811841021252997042617885427116603811583026202840458577238296964991322492801650023587541406243807868819787969366868745112071417793980990260451164129898105653512464734042356255783842538314233123316790556754038007159546985935418822574883824332942577343254444763604407043193120707214070604888551345214282753625440708019444589347489930068198647088142969958416530171541933409774529662566856670577826500823482031694934960462684189214302714159024215430461335429590443924121092535731320326533908019881584968959542349786105894752117349695805050916005303409185881282092383976004383037539437590124849603048733219411653957133742059179019118324227418922448263375249447483023003536187085067318693118386021853299787336933663480791392303316506511615401847723937640169192252954570101938062389993793466757430413578364479908380107425255168473953501214896446263252118695806594810545534735514451669416056561884115684663931182088319140090628973065961400864301113842296943555917943470502354719139627189818319225850327109300311133846073233227441873841137783172689291556909563252140790867069839363424611620563053021527231704312074327171828312631427119798852889830884462053468967413940740696343270265383779861085609177186185145403779537113310926209828257771475612051355421878488711763438987982562047879599766691970544814170803588038596377185163764056707932123887992528706256250795319690251797146496456913494400398412112481198970904910212606005085111466491824397194065208116912955855403648394876805754862624514715841878559167721318682562801145807878545563052673227345668550231604628621651271371684724271982570991762263507184646765799363079390696554006245326647728840718604131907486003874419227601634542592395700264963618413997201911816494031172484178864592720585180464966649448340714811316429154105506223592166300418390203259571331994315564528796225268800752000301051449786248517221725398514424229424628711393713902671459822563463560943596671280331002222424441713270833218433182634341145084822920870211416374327780491186534296686716912285161871235166049153774027511526154344797018370437576231165810413853791954564997366965401360479194163666453738258738225403095458716384509925357997027492220704782678304576862207623468279755888455630214874033506376191944646298233177478093306894305181845887465646718957281651067587748368618662752810500741980854209344510098242781331064662224072449605341121663246651438952355959853232755256573047972638666922579706111993855326877952137447933567383859925926342119614810645724516674114647149736961595051410217955326759430329115751672633330347498912560185262518012805070398002446981244119809874191753529026522882917631266276235413723462184201290368330353500792427075216734754320787438292488514500119922064010400668802600594598345829931810184868712215134721231288250144665841461490021407631495074762400863188795565861349317843678932755285521419914080648677409403372556026404131135702341754367726442943755455893453833757252696774583518129907199518959024108816922273257763425375677532123698369788395624213611940661722990085991188683782856541860580211461782178194700543299952405153862842553273218590179606108875026604403492138244969998906171057900065085010874582431504675859557014040595146519922102703480527760664437580676437912251476631861218229976730564558033952892800780261889939088456496012609020915569812422298676106013335972339863626286316162284693596038674403269012996592500789243779139098072121066286499006033192160376812618246311235352488306084517494765091328272223273253267202044070255115499868059589660063490662931068899286990274015822435160061373648100664129433908745126661762525589015859586562936115779348310935881746225058161177157753968366576804645327666587555390585801572280154611099490236459005793230209966759905111704814520151319538583416407177725608837726980643584550942632302969571274805212002185255709306450547147069946075741561696232645112627583704371108844043270745432295624552438750657875505384807571777769137844824608806633778220690073368570839523287059173325554196274154091528698921095292730550171341115637317648996464313505401527748138429865945727358824599483660444199065441915659729151436403755777899620926775942948083359711981545867826366302901919100707047683809547047265754814897706239427833021846051087597267413983789639205022710031888098661447899057004257754847918732979044494547295001179330836335706331478765936863714977225949174776558081930229060270840655773836708878417537263067759232564101503595127842794758605154431169467874328025867294245688300518799062276273265956446428921251081940871306847822663809724994973550203765605336552401705378890628638497311279732986556694793077677071579263902407606305297141016659251363958905720419969234386453734777474145729158339953328138806365118630734752327444314237385001140117276572222106945028648094575927566441164369981216956594281209205668988486738420876520671962240591706028039418193379134734231954103829647135573068990045495445029680486828385973762820459647387866824001454562412586765849536210501888268504152810140408984311982989617794248547618528584770280261504043416097451359656569395680822656400138501717652598982503450336840953489532650221547652126959222026250251119781175545657865227483459176421187806143840724735915834985129332367128148496121404102012738971719830334176502749786330625325858363915343173190880077762142008268844884423039913222533753972830051380670595767067195569662034650999347500354766874585579199934341572103434500538184987742409510884424622589980686513230220225553437289827750893880964701761771598246426203819327474848104972874222975769817648515014918929991194396448265967980132061422071923774177785216344074211834619417648345731487683457987650928711707037666616701174338110677829303336582700509789247035373040101121371925509732393944939178795142870751887851168809790745469262121687687476049859190042143993067576458415937998015549116757971829575969966760152745629995911744621247830082155584364218280947620111244840040013329026871969780368558246988659100809863558901286007466721801360957421634929168990221389624085164309146435830831232698807718189693180158664832724722914487642612198207488243678028577153123303513980198458668873930628221412855343697165381678057725075887233765180356800999070394333639703780733484286533248133273352932189771193745352740053734329850965845680110980490647359463095046761547295803812202193541965370705167575470733380213395654894678090062227874965766083921481017834623712816975542285662050728562194333079912402493927236669490999086623636475941528279179199299227568049099996121692739861101723454268141432287652312629875226995921653569234707979095344407716074738268480453363131571199027456995146005507881715263528473336803478786919584220388535805189069568487362527316575603120647983401695205926696060819487560680907951210606438438506323939736613944304528127114342243000987533216603313042804369511904359751373326816708885964091044773435029818299957592136489310805591284606488204151303676031764615840651822038918096876468303979583177614335068735075294106230110576179061018543373565527640043802367545868302735600754885507593498024583030574664552195061987123736302118737444228683232950070595159112720040390716421264057030618929523740106502227741361975823744351904698149662288763389931726111054845584410444722031526894411205525941157014756898677719159265236884100372875741685628782605413679638679449761494596369190280400490795822680118645407289217098987562697493976726305735298578238476741276837783423486409015046678294729940307417127469918607190383379575470614607944807760468722606619005496638572527310560166842454115681706745391779650743132917727560090736861136732345698889256342937141662526862577418799239470242831004512301839648390469909838820198950918044076401443433120500575145672479892126931949010649753796770036023879034068403400957740105440762402565493109429724791274326101396414203121457012424770537447274600609691080085351503416292037291929741471055005373689928649262735370412846016036465433235802319609289780693130258593068641798794228008409828418371064296669163453651550159778273589645109358089553625570961765208914797298615302404091163070212407996901668483530066259633538064363222484606940300443375980640565374500812840911145311975324770354896966780998745992569775754706892085657750242394446214227926603100346633221003911935991446139536068594793957207964430576696574694974002251507058693878977900989956024066132684705869805133382429335113078530337579790560084004404329163115548619625746085646641245381678915387965324342788426754913034694248683256440010463637081792564886781055000158214750599703806573356231162233017380352521033457157492053076122626527945010478304302061049299358562980091373632843948411155451404780946045716412586217476522343528476560606593638899632889500890338926576507720940539554699647068055724080756556982186406592673462279656087719050580178511962964366985067008195369674334565761626618912772684698112116325530408716126229839330859173393867373746044295461229899788999197835071550066902221936640528981342887411860030432355143265815167993221013019515891152231918622229827821426515447442232479552145102207502056123155185421804249784119714360447995760961166004405785326498915172417211405788180299671832380225706073424188988422373827515765073457890554700516220423902346475939550049541925816897545635088210596479374295935379005515176052857031545798361108872462927105306362678529897180152316855395523347036782340738190158508972754762040263163269447886539733779374664583709501167530294952384531102501523244758405521854363388774365890614347868883741009011076693376213665301378381974386288455904127944826514370190827647075406171946959207298124918501408684047994493770780299788549388832656045567499062957724732367736679658513203587336469508809615260166410954127083253950121268833606620927613377597311996456727239976569500883752086312157876153583721364662768246500464476573953880718596945760603239977864393537350721666507494406912619160400953054032550097902984839608425217281386866845645919372964747951138802952550243366090549259269829109490221327438403443579549147969571262979557028640470639038156511387797318630456889103680213906586159597376697431338324840320365937804293942473391842318557164292933022084563034309133702393146284614561995880277935631202231722730791480030888695547709788138025839465952667927499638870895049998937380191779771997323703420729757575235134717219786771910193793872511449245243328919109677251280544689089000044996845809887410325737517197485388578866878674149587649285868836968500513248087969586389691022637947788455649605618833625548405696281346427723119528173302701128869074020535204864692970649883462596762158494404150708645713851827917455970284344654649436812544165996465028416418381276076897816119340275985583048720144444810110138292932722635726774829104062124454139768688739726087148550101860236405073248145644023472421377421196121774260472733494750081634714385644536301907569154417731441511921100384393534898524319831241364292981118059365487642054564596855027581522305534843381770077016475347471839756345948241204309167776365067187702307942639990971001737334417645370011813256219601299163019111066221371144777441942318626833694388153275322277291842121688206697146573526982855244200936120238324251242850258455624474653902800686433965525604862602330142759089995915987494817177658667407981353935810072743951632078030750313083953606194056860689749441664038508331882030576099661992252473326140911777090750726891702547478392401968920128346932895158530093109879044683633894880562810661275635811144888166087658136367960978496525393869437465817606843694052515476832857020950980070307230733552528280798986919319218062301594471449799730970577907435165767281100004607775789525819173515910044669707870403294043830049221087448806864108727677750153029197785342249538996975641651446124988019507690218489277272845330634229595928955703582657706614690351682174408016148128695188073859045062970992127924531692942372148054478193672814681443904593488392849548575511721469710940811435543482654630881853908637331647696362822520203976613624116652704264381407240816757283715413330632972630147647258907010216628040028724735714158699278286798529806718764748425143335615785176454829018022008137910883248870592261309720131384219160974097468648780635675277906819215539878154296611472411932584924700624917211247477079854690795002274991744983253050011564904956134594601696362141319258971062209894398266536944393650817284264465174655724959859828594151621053271761815758542930204462789862503462791316177626772602696146513483270986247213602756899292756530929071365530806303264420296589969481265287587775796407889131609710549063079813107752072536373073285068073829730083472306582262094240499600873646548166136533664954892479669710491701849761775271577947534529075448634706755219656397327608212659762188084939271156246575044380419736638171392861792987862274253700739498636670179912818484711286958060285658140261217896113244517671931805375061037496362753493588593092681671832847544756160733754756156160347607774273422316741053771265674876848461675065282708190226698466256351220271975823561895917840162337756273180560896414455206407332695984786851752683888304828232170243787411134843659289408583190299756213288139638898351376546478032288791885112937141370433475249888048117197057065914776643088313805753653031066236123950693173797324904484733109106471510373715129195560006559851625165368549047779519274812385492282946320786771557452426628766310596913139978441010361235061402344227801145418953542453962443332783958698234226652983047249264759506167392337130250052869114424067421672113485870999176785765539441312723017908287890360159605159329953236082231665907227141626778444813962620106570024964813289690041263352814725753082302522920102457435689156709379099712761334761055232220969881817685939116629746968319693119728013726794726505569523378146097552884532614340486750215447507337420777880582988426599538289911002080194722567262244914334054403119654758097761074846882543127622312404688000145427250179075150331323279959358200060009857396074613988808503955261863138131999372781071034505646061844441748389488735823434115299973102387912565161576299433535189143049903739674981921995093274092721506361641103097578212323697803259125384880151597929550851388286596920604788673172151268727567538294391799272589113664476043556090127001147277092413361806063271709094291950155111738977412926902452510293566772431191696097877728200353377551736499713760478594870067341045944564108575735831862415105825278321814313810325832250540253100709191624143219050789850403273331577600717338723504648211867148648533286383582717505647306214136763736742056178677148025657887124258483073954475905542241790551492681391135709616804119805766511129320827205419194578915920106629740108238871299117671717377095243876985618004227468525617566153940910596063175665842496782390866050375800531953320206165584062953337291725741634237361707470421045586665328248512219444984222211703181135304223629155314105421918692050767693132072902096513255251684935927355373089863309692612865353550306956877778293336776492037865967956384623149529366943917234641493188505991679375433458714067439470839882561476782026728374604540954849292433273945160223732209424171308729921473732768752525913631239202658764041756054893838494876816938022209125038637648014444984445356999455176206039485521586104390397998668646011956398146910479842233761381327923429142637690627099919556049340081975221972116917709642294357995694517595316388593405266834051661271611395038748667267269051975319421229453448239925141543141986528626233462808788291069566393393956956516904134356660788107485347700281803907682362934380171037606897884091391755577388208080808492007279272317364287462742943995623251893891981689892971769086520383584655382954759630513762385610503822892934686646064323971453791232405664196698488594742790591105626354309608722635883633563297536390510540114487114999385863229552467157836130644215785905625050464571343530692045575504088218735434901710772749739908142578299315160051321854440284855248052928859316478171762311977448669657477005634665405913667691300393454291023196100751346456747960928265730893602337684484711565349953192440929113349163820311766342571764409985094753171532813169509153913464022156676733109252405613838159173414364404381428738606848180107725834151906156636203674696955033308167357624232777071778694703775005539762674583958352775540862991285816336257242291726592670652264324550873487880614657601381935480828908298270760537163422236124000207187241147579053964625314142356174895759081364581801659667861449730548477830172931122253277227777466862511118041692033350073526822110660980482465338383085360809787365844858102853543318069455575751370145453023303269387367977155545746982296134870635633252324152760893291835015412988132704257794072557794440065779522238239358409803398809722152687568737250277542867037620360044587645351739662012360447426060087058149531980187881547196851112501254964880433533194815225095513434256969214879154688163359230863695057916423880784304233712240836092532628558239317882749947591564327055726807640712352384152240054589786651534845519786961575065575041843229500143585936051944959566813045272252710774059255683118312104034447192310031469702440898518088897234206163932083389066878293281901896488567219039150704014014529639575053352704274487475469946620954412877293500138910296275564196654933704863253961090615959495782456686136799041289906852266883456515042464344026344663512121236593962572857263023303237313191666730092117734392577204815848616583683799608733789079430054159295639663257199751835384894274241178206073146664238224692415142213386165423196763312758157031815736197801050010045395691292161064853677378431133101314309765704275735061379909159240659929185577914155205450497689757988616752181435931980669166379853556215942089291944947594620333736848783755024667179573483518876076333549640757113417281198042637370059806557702049712590852335128696034634754916151938490016491834101665212265931779904205202937234576065972287439957627404323504048428366891405494598172321869306184643664154762940298634031858311602601768055146016160369857648095328704202630599836369611285505695533060990869916027456826038561880273338502727243753111305675138415259014546985671880127895629473466316418954084543543235253349408875785988826735472598315835842674893391811585705029921203513079879677038145601709212111517550800556621029226818570618729094333331340996673206338992150387738043400176776308350638933787422750629898612972937388450404478341435684789000120256126247281259668207554242629502417048255297219657273694606249153261505934941173404412912820454134109042639925047116457614500547396116626327814279017620925679435494232422275427668460720943165158623544160347177677218598046256988861730313972286900775190390263051624479328439946280443709522338221019355860965470664018598755536065387947427778308648253121033027970378400235187544438505154913191369327890885676566543460871287409650314285287881278365603646926215744061053230131317614645988897295337911242209284622211881440757589027633310098100281637373734280672711087452626041810743599215866237580293291816001555142432875058882435872871207200980773297804343164643050304978515755693215580183707841932822416352739627433906801147627736164135381055583738339220483278354331589178445787155346104408772168102891347439318713569367562191258718681757732370545081909231537630683919135553152001259582167793035933540644882288799406232437586422838771430614392762933060005603468776102735364155587187944473588963008349981020471907869858463941871230739662390887990034108584077494365290826526492505761762616414549000411253874736911712033374062353754222598538981375847385410419592504870076084521018868158222655368980292707246948215693816650077600304576898861770069416421661581717415051194673243710269081939882081901546881207035264569438049313418632511966371695733048159733935507390088590044378327371365358450626840935753577452089168998129563976534702350746010936313334709015388571092447694422502707833339845453860395884220577141993778178360410260673741570811126369897149279940326193395849998977174007286820680585918508473240688726476842544037105542753751240178257471855837803026351198994257121066372672402326587498598709046628293452254283002093920380557296281682878274134332757429735754023884757109287841680609400870994727388370797324686387737287268346726789782091790817683622809656723075589339058717221601288591217133542799099812825158397251621248554416175812700902331465795612441880795669639924447258553660792304961810549174921553196325685190861273621807849146727024394304679862869793745211516511405788971337254183764993874439069776455668747582889923486346985740688715369901514016745410355669313036288590743664249484652141551627037026423876824604159159515013095793995436805029458191479972119783986407419893964142761621586551171422825951260904727802739124548881212916641346430693596615563376533823334355321893304593896458799335921921719005892096120933579401936202715619311112795275015358735118622210434277450175598701066942542292844931810269101719608902824271121657020478458064182447791125941670816065585612523697349518268435525755148672860557295868419504267784098660816324434061819817170683622012457871950554918285497293969107733563073617386055893617960019980504118860609103812660799770721822394561104676772747621003770187534244638666936484401177636637643741526370759717597381531399146464828822454175300053721020128144020743855942777801020686224396645513580445323315295745710174681386111119642022412110504576838597087516563103477475056635589823901231259497238122848361103049694501854932153808107732718639181890256191209955356072719394184759758247613642993078017386987520361059094539954440390143797064861047208243717338285928367722025172934043585629902764429461435282723118362194676306121777117864699032050455423926340285981000352298192073201663135264157585689194839421917262373017053814113187790580929277327281124647291741596229900843423883655280274906115368536502075723628652445845250040173164175711497521377887058197465415016381329277809177575716053159942974426402189754040375238437502267561504992465995250351809215334564727170909973587157627783528516498903407686240196881558137782858824580489679966412716577657791726338904724951941604048681280773110610307935963826431327255868252244332297993052650823989102423861678013535824689590250808493954662038070885438424002287452382638259944327974626745113488493212456049573556894045444097450828151760342252507328525837238502982548905010685951196973215931624778612838724426461368410796116992219726988172357345644649318331217434512688736149025185393508451274934359489586073464259735902972768308689316792963488289087327805694832581228039242300327606168891541498884870406686231340165226479309153700615517190196669101289023734231626142033758249183156928075565837570744816440157059290869439214694112383646411381348168511783250211419052791899484041568776911933902180682426019206343156416621972909658119311490185326191665009197374304703683776599682244351437484279908256664418571951228884608593598398315286869401671446093498379706603530753880120818705862942120657064632932459391047805656794994863966755930752048259714160693664099275037693969353230805215561714992526828243025234686085245222604281661488516492889846139609206390233742149960078341668595760955665849801967760555575003253659717420062854468212053406060820757038410254455995098927830030265899291490235409875149199275832864449509278205293039659294854038483143162832891711744112958356792241229478627810230319215064735713500959623756079660307945968869846419727174552665395584354524394804241636913141032273298319176179085265587324921598321646115351082507058146233952644100617750426757899316124844481415174807688333244006481726080125117690645336124182393715786452525909438774283178962561850321397090090020558011655738870993939362758390663794040166287472074609453124227454228578950311202900047119925732878456670956484741675519513339424538500603697041836206265811059882700250796956638391187681523015217389864058317801043146035069622236374610636064532736804424018731164115787250229117520863488248713534630941109376406733084595386877492336190262589948837157858000274452159754539186032386749575336218330155240350616828029249426198234136124151334793889047283036280037618977863578486155180232220188288877887666040424816905517050673126903638056897109522502647319830225282671717364751104228136797864215230627223691920408780264779386763649730448319443926958295553245634318678673697710812198511964707511399343638299293540906287888625261112087668726966552375407113273183451477148927737442686372557009720490616501993918093814873438313043155806083683099798231098504956675596968346667161058762157175867068511967668726146738560025123591489898312304090690833357225832399036691960619733118822809999710397537485915047659246081089578247589427948129885089557176150857675632321255410053062453783785008408192684544629460276090516793708160617413842107248384138688659093026235117357283289155809027517524434667318339838606115498368405239452081674241830447469141844063064211566166105350161160886491670961884661139360638120556746562266546051532073369927505921439160996770049379890705091475834259121045246422101134510468828203652635223913321001562773169449736075517042147526160358948099670199068024031497201027012999261568217028621781836374190383260854595631888346438603977472920002982025870627503058065867533236982206870089731691938788440263955018733249263177588382467242625601827602995458403472037129310216695472716714925156221777025842166250090335797157352647637412244985668179849868749630695975392997301067767880074361493693469073159399816359421443138113831247141879640488680964830229146578111877565125246981197473862742164275788499131182293176208001126796467719129101625965792139640523626610868680719080673015636537447056377370703758606613888082101049299278621828007822845157111843518229379030455791120655521459219332811538314794204509588589006598902465161245643777660196718084431544901105715621633658921744006545161240656911600487522822668222243644607115477560533405342552278150686695263313775092724346339578638250641411006206618268583710370894449270984384538258472517404620095493499058228676595040438653407606617164601153393599849455487667660104385823094278356599749242566886682539078583048648761495096814838033380610342638962673575207355199881974460072004667085344634617734555350950574363765866734034634008949411502040836863126719590946840686909246141289376463616681344107776561780158808646938988045078053667780310597267278685716927311069915285498045075923746235532357617613118175600467482145036213172625729462328505986597065108557998009880855116114123366738223247613598680117714718790590521786429697054918864780284740238524073475391655989307290286145054611577493926891561499502036358732445325407411695261616779526127002898890934849159946331779977885266623732877601038976397668920893323576892711760433164687747981234231203184210854014484836805304490285780825564193914199193770846209473284652181223691775410790788982371129583479051761820594571383209312259649111449215378778921031861765778941721400421610253128522190673300819041596580655782364010976267064964890448277370854327990761886086711105225228062717855210005470039661887571684041142404497842359754354383934857811709310033750964550472546792207485991208882894392731102013168704201618375804270361594639566118727910006711949305500458129493602527991921184054683280330998589022350515157311251362012962200861382595012710646034543355254007222880344306049596146935798421190304561368012082203093310582420019421962962768005632899731795750481546389131014621862289285347320887887662901502234051706661377293498664859942698388762218416751076295589280491628445001300825567141388022674230223634953286938241230777461081933574744302583799777911859236065643686864987842481144322195744207719681206582438320411849480561124834857944617724138943786128183112770018348129167621593289813401812095269400512364421923016449956035360083495670884067001907690107623436343572231940559261360913473312828456463876684007068514296935041512323053672814147584194998203038571021551370313986225767238936286875154664940408820005617698937649786202352316826641798997654663965422316450715228407965557066282159401602585586174140687091038850890401501212528255596774342779240689473586915901400317944142629638309671573978413871418879316188865657691152257743653376611637122468382366826684591720632914416381641653368766153453626164444189731026277180720599569729323406050410151583164819409246904373677553615641624164494336438312103354520178137544869382756600250394624924049449100288702186838557013577269811795476772057527566256717225046704953032345914375334142116068909734456894778740851266177453456918480537622574958017317827474767051457016768571222505441142719494978604312413343223284727393183436929697900046915547763759187257645122338833317728207034485759003675838645008662785015786702221612010082203831724154237252911959505389392491792734185345604506713387023289984092800959603590778341103329146930987700178922701261439460932886766216251982873394674847558024365761650168960541471541824235518831677327893818222927580910683535165923786302519093665949056427730446994730216933789630094293208496204327595472610412381390292517530923279042082803327114205967206209117583155538498149273112409654183310190989770448774013945789692356482377008047337502153082926536970879717572975027094524471106674131621744477592854441396663904210209546942843802568435441467205374068624709785388942406819451588557265964932232237645867690501409522697492558595860889040428704947132204330093916536908581000399369126013867190513920185375555143136289832267751540335608931765840620424163294560749177809408392085385108251603310610783081686159270700276304829762424303283052850334543700392442318730397563975344283182262925582972646914943459641681885101721196917491724183257127304325588533680596351997313243125711057423836128568739934747055100253802068254988757082606239138381954820084462392145415827093730505459349685911864586934934862514527866203737681776818685331187882327462995747626869046069631514891687446031988553740256333081265757471852924455395323728015881047247203298075125821168699581091595100792158789300823165593868328929268643414853365376897266765225635877659651537510259350375758184688877784564477714631189089322733056529038115411967821165960207514607727584690557758959106544864446213402037616405364724342359728821484155013252551653653923006322866685941640375827762294700909662868841852673265181050663036409618327596295449611127490364533263857221420388579901518011167842100985182306309218477641719043299932164689319841018092044420729394319531146479428043825794310169501850863971502730723397366514666588436285624511854180383301957879153625718798588449234165466254996724533529230054496246034237062246777839246380907056699690123362404799423942060575594813917695659131329882177328462897481568635815206977064229126784218775054072334955427673917325813407961204947570470294990168026353581762755891078357931951122558675636658319119467251277354665084356681531561968196042107684356080504527560266608212198422656374970510009709852513857027328411079527508979715036053941147761042242328461635195592551519861020704029385453354649177959369903342047581889986821307826732906218415778149786359907861856894346616992151321856750517741774566930249170955626792224435377955763791291869406943091499495469299709584818875193406988123657453384930967371088637735447222487031670478908195111137239348568260058616851010203768362575112107233439493299703366795877318766677875779742499400513609242140540157895421102374024652877446432718379277220173430130502760549266465720927401341129346206071647199201625943362189935805511014737590569148659003854810154655438770758070830872574327802143420292527073439775661760760971186266356084140254857933847302146323268486592930968217007234115102837857010826489700365232897781103645595421703802232009946626110088738659507406853820668263701777570137100787036714448021807696013852801536740273881641999999514169344275374079924326208682477825899188908380015440715218765780211218610366605798076303952299741418319719006690560619764119609359180081366705050983157056188064110591304620162184835373629916745120403207803409297216738788845363966814835878094768952884229609111517346886563205436126268349281024611962119853160452545033765079655085816954957693326522852116614124776318775694423775037182152963996691510840153848665156448160463355398002689711784087358151017087539627405626913096069938844265587422635363103003037478288574093013618129315202415055870925353313591588048508564519592789202137871967679770691588476482052698258461588763929984971668465745548380859986952188230899869381286853738745757865658725822689198795897670175678199449429919822046864315425605332996713827194222706216464070472552167387599066835958550637579677586515204370264362218014816397550604148173858631470287209657562532744861595187589058222649383304776848390305603153246609557555458276741390242958428855435855939279161838274312065468229114544085706918289824563834358906960814247043914100762705714872916815483396591787974847072376407065180256558096335867948171083087722854131849664601855034275530185090157039538736466983815801891469308487876226119376820623839304627216270508522062354453549042445257694894094012796214342840808655633437595605447883021017549040353349469014067854288121837404005636717944733237315908349566934555378899565114048612536437365850728924037533986167438364702943882419127479699324177562422177644197062055048004745529315123574165910469261954899838516362673074417682655937513722750926014386158386462700275205634923473391726876870523098615027655479706255571910879241708941742095717657178331268115433996346304131078661214988185979659034499714525869162529358037474920875717712365756202032180406035186413096605146883062073286834198828129821739550218521110260201953042805372544051361780956092920470341561463544876864309735275201052712577368425045525174676912631606620706989545735913009655688642864601524471410182762684709952386020783846998996473509437620230623590274788532673195001831037400883562974756956614788270984079531241215357618010425420349507505359685005256843745208126718388187899991612991644874044608803132810036598562776143291963887765145946148172673260412826775664646773548628360838649329422327274897497936679913683598389527072212732406585890136293557800692850908539222602756083068497774391048332197871918645103806302201733457618241991124357821722708911129083906499694702169280674867246743826660258118503642337165380628782506831037111525219677792845191228887307141967696739148570303505131382136931296357976050161909417790753575820577891702249320233853725741253714406264890873128981508016179436487276530855248460546142739413838347828480645722417241318585250728675383907106850426171805814596831489327272540916925300579336663606418262101359350101752627972907250194654079032739112676141859044267362373410421419802499112905191826887917674463306449181598064809759038429772446470610071183335336376576358629190389877301343182071064328647269418835933149024233718332257559217393128773548009324873577353138441459212542611916716156211585808226128981496823598786174039304246812513606875073777271311073584496034862814443191007130605400371441030278003997024023710430690162047027843494291317455466248113016097331129315277757136090387952455730906511560697977755558778179180906783230513593477242525932538764841585730229431585843441533084177448931278562545652060785829307342719216343323101468859731849884442418319668728759183352446167858698629136375080157503041805516622226100868750075173988810091668012696695800966022991827806439810246264892847363882702958909992218704908090752698065224276943155821519176973185660803366073098300944404370582945137764666208884632654125819886067227642072828459824755737294955176404243846355289619684579899375886051077806611349225047128982153906400920862869731385463539506536113445280631909879657037808092352881516844724047684866331824391852788679978227691746227320630018667401640494637609306607004755591271808962293400997590077118593633392913059024162362560515552161193552348788126193651911878572548809752389065331186692732117678521929377765768073341979906706188999131557251505002619570667304233247913480998595829442811268784870498710812346299068918268633789761430432083490625782199033073706050209563194352629800392637999893908186456914834599258638139634310611706130306408625184388047527602559071480483239464826513724852670249511658049761074071512295792956079882874054474383476176344520813740126093412021543594476720377623803830004547401996981897659201332538832317357047418921631148869427812031984966540408214137359694625417044270053649061233913331611704332151073482017835688176204845846900758826738966904649611672460810878782455821434624027227228283308644972431413332165936724228975082174172436268814191557540662265215734246130954862577083573798490743390413401465778385576145993992142424447992624297827914778924454736255190609138198746813069597230379999363207447794451183115990688829056136570704198886171855223522225239911009370784627708843673566262401298747174304919463625076046637213645303425677866813766871390208679555056630890744785462567534987480838004803953744663211840282368674978417746258593725250544572521945386431769370809543782494759270501284427205170131620162950028357739181845931816971067119088138914260238337600584943744585446649863044841813057178893906212167467635569457582802704873886570457718422039822336812119618179458422771494739190549542054180822178084313318640326953679901522705754783409956264314308164775084444403623011820190391703906247913210805355470571919457039956785664886246511441927527311075350248144058010121417658768064409912177004173485561105953983436907922940636831085631571545957067097481160677359671970599948127252187839041422541350559857940181713009445406324256179778192250674836011377134196086377485170929095886483665082370248637007473515788497167475586891322985945822742935405629493644191700148149925874857459294174712678437838613891501181700034181106358411267262289223185329513823125461977220039163639589623611320385155090727030985125177915293520614457047970774637085266314431868681609630058229460445272943097118655581389412806011881571633734770918373120798397109506375743272837980577735267886107955586977712308727594187875604344181141767867061437389478395943639713038451188628458493224051467359741393254661453056388096664653238644586542256144228451590863519988830378433661600466832724641516736484222263851087524484730741070676786036088673923037318821167472610953859891649906874423761942857713157701864209175728970244234574225123287923165208905963067567590207777186754040894797057509517698348558788281412184652837848768416094788856990374185333149694178486007582241545562245168476225170023349515363615380763978642058687522788234503504461697403594836483058327085962055463675713466135251710875067701106837772532749002539925508089461975690629039065528152029183685279462899602359508289265916703196029044169241437227982765565862491952430278491479044870077579120586195424825487535492437350412989958227759168783537169316407647141053474845914913455573765112474661573378605831029868405245897381366865768647337383020037672303875151615137897944627470212719957702553225637936618447756084660350641255537317006412819586152803266255771067925861611244190078040832694382102137250835249093261023915265890579248265136501792966396410470668765418150926390405203327322084030777656132494502206855488576203844297256779625542334279905869449677481287812868167339085668869588016400304900267433576231656090787513061404449516544688266470832614845284984325618841899856796766490002768781550203170205718324113521533502635714362391609168994524761868470193319414571162344405054851119684860090465064876661671020258953758102597772753014694876378959416525474749361295946041044181003271835284179378682379233725241460127280645721124594703772612657913310434370282480373313762038313477414515079709979377952699431976831397045343478679194287171052706749425628922103418722712535477779627800421325743332388415700957952741749825011003212136453507155675438851217578085279572764227594804232690946753515300244840526784481492974517963195576158682042111338944885213954343967230333890506746350945427145440026168677238741596215089975222737036040199642428537839541410681967900618010319102662344369024356650625902364737032937413283175128950851607750411768523528758335789582586285748296783593286933327375200976900491898598592562166768046356076737528239762394471774551676193633873955959661963476258807701365884343849006964470500561006713108910413100457545120606493284324190399950746497451094313994369922584833088214703493700868029672499331904349192435108636767787969508619632910416964969103840189531984745586246956125277916612577317790927275759579570747318045301749275480429408178471663576913438230419401556753930195586569948211297524849304148484327087578020824386988506297049568582056889641513654333119572757527487206117198973139217516537493191306083246627906361396664711696500829610487648947152249963715998859913699421932668935569197390590180147460280483938589125932277172465849473799441105862570445167973204937565338646056980538795034999798807842225348353441561948724226959523118112911934901610819723937556219628632537464981846528144622490426397609814402203852479503865858818374514119503867978544755943820958099027832534140732823646496142964635989570287178636413159095556238103408592402007076992744886409496318749576093748590457106663613538470065252438381480842109746223627316483958894193945930603001238702556764284504222726825741293618753364130235745928620569419527067346139729259771241917755412989830579120852099113235946782928172178740119701091546978260719747305918710791672506282771674840190871475258665777912802406707114661976139774772628891929234962077716389274249572693502588086822677572992537430332545065331655914385290587182406509640489424394993533075399388690117875815233993385030827993092427148403141882904675506759918670125569850299807015599207994998165713426613476546244588624217860305367061908808060185736423445120263909982079022766467904447661959175557061059147461927833056704542632698514618107010319477628748408512540445043669035095365630926745258887164089020522649090028352199658374951587765326135727512035728970171454252869288892682780892692988724402282015046594291460750837867871628549245094211803635836832854832306094840461591389339765292342768777979490036585436445759639358504406972783701188435805967240337252006386515135248361840738251323265715995567056428565465941604237770663119946236480998177257856384371384253632441789779189779340350478762657464311877070289829630621605025230108126275086227978038950596059984217334193027218082901571434597192250041850236812992891124724592451413724075391444737062381817231925512982094355538710288188114164464400666020432530154300093858752984316817781520817187904677524326223897242459635290526989540022425110290313081500765447809299282805069927749923671088149674325949407306414363827576494887998609156424221080195978976332627178005046717468893324880717026730249126425288541548062936214087349586369513678868808726483951044555190237206404443150088616106010285318584817865539894006388554671039943431906735376836023503852886362791602911424046384340228690429454295476635975908180615281192030812978951505223813781462395288994259250619245415592064991961070088164392877807243124446572916456183617513952620340873949124455827236963713416353988711547554044558408561395711421425203152575047024900743548627770166184317392302022034550873594852534040012770588876855723771999160438722490626301814806000435940660146450232754256145842021341326789694704122730338595433650981589920369125199519691172493776659727105961864284364004254244410311910725320382380452457353102493827490422785067027892250859443610588979712262200126097450813670612149703140053767048063462196579594497087107237154520288849737906206535815699857515506688328369712767187041754987929714866092410720584038027786922532795652013042945537309542142371331940162383654198422272299166177391834976524571678877496286868268262687353002210096426379876965674532846760437754483571450705636270610974269845284375125487061911669100623696236112807679932506317712592678924351381518590365073799734886710220249236509703192083733861359758158141944827621099268551511462466883127348832330920744347435395921737494581663106797199624918037121367259732759476648925344447707248135167080617565372540879449246542042793319367248180749557494843395628104308226200649905502220502989250648334439084858818733315110874019901689200043418550406251379120779203858372285859015431316427756673706306678291894215298207547700653224361673715352046991256720100688533292114376658715643022617158852577593099557278254155221903444384105206942888554003564562148233458540448635059136981997624804526594222387232401967507200883170920813926370661055070182618769017057485559739139701628263848783725888964182563188138069870199125220410339711218094160754591650944140716143413356409769681138629943120019627921788834869719949248351668920028848166320248154783004805828671598602165767491404905746313856033985984033051383384723735125763040891755982966997376733739870047095828620640872857792779209354025780850349084690461452966979878171017805214605909126973380451174134907465373889171772731796556713338432023640962270291683886612306855345244983630713770854011050793025188844070894967946120942478113010635889687557938335567399356345355978711551885459274966705407319836283634684507667713594203759970677654876693749989683861503390552797493935766240068964082721996388605009210841778733106708124659969344433054628551559578556098182222617493683822036694231095389594988473444295145415190549342594675442971807958403411793731440267163420291968296485109555393323007601796598015772910261559355671403895694790548362266960680321957723516219593575552495805364076845538770284815906778612364132059462366903348041709799212115017189536764039407870414633925353949973158804166092300532470135751392467272967718606600132701952197858992669794468887184993895496322838715292671854518318296801463161128805104827072402570180603430579159167335224446461536411019421046933590195015829590222500028127414236707765517816261867789383829571870550015265568968015544559152214710044490282991775951919817277839867606537579628057050238209602612757408901004868116322971369374152095100836551626963235164677176688902173098471466209527562469456759080439713562021735789530603942328149071865861714069432844684593172811850141908261351205046521561225651007097587513970876698014240040171525260146667738462615046474700719376051819593905264451339849059224795164331961124191018810591631770032684170125533844504866588688897277825629857430803680834776018812712282903907378435749149220794222156280733665246743415365732178045687921962431816322016332145195037251835664238291348248714959924648751205960682567676811041875220656954726507973628838871234727302861639487738423254706061115844217497963993795535165199596302027029160918434514956679013271509764337636114947855323856437783476390764806845695256162541738047877130771386675872746255921542415284807036635123366298691061796827899974206613040887041990935205977124721998607704347587373436841050917014565516100065791830045687843662741988035248698013968095485003475206564572992654855536788175656439901417381611449619777845305106922341837714194542120383200793998705030514408365371616716628900478101046453596970063212944173080988946748020489339370436727169423961427948628815513202175917035558329940422664851170429694816709086690638221458479243153728152280433878661194379702655850990808167161798082466167412312660104700974519719921308598161509340835453065038700321544090386366093921266348851942612644378728455249912982586819805635974752601342059968365869289282156009907828817090748596554622028114358156398948502767076837034965724758104164134890710527017351794994419376480100489453916605441061457462602174767666551895893196455116599104075174666405498320837319195035021587821788321184582503159928804428649334437009535915450186533423183077820616090403675066826785502745487879375466221691229563509057382033785001469470590541304010003925445048593753015678221539870529627192986607976846968196522184815329552543967538837991392620137056026192735415380014813405980463559301797216901258513707077597390365134788138390004414624673359819893542263600920046344149611464502407365897592811374586073401240435291732102306886251870675848734773142946771578611551884706604465291654434100818794478706428261990435211332203941552151285929429569221387692509380431586767563353183455793555167021965818883693014017198633627116181210765476720163900396178239845780358554544799793330941360538843503926649270003352403842804382422754987774148633103328660451375144371942121654686884815829432391547494031255833568414433369771989881986204973402467748444908299401298040078326225805437282247813506703992163820067329292505514062878875777858880344877775783361344544173266577897482885876766928791006003931096174965203712323218910587210970928480004038227631474804603840221905423079400430528511206241571207730017285930857889690716480175424611901453977686031973271801201806868843350872339440451803434606320507470841973945135549961895276033152625311590365522085408218549233902128290136191296424128049682218308075386012562033924345846225951305414928191023011258278238424258707939822385329313767111590479650881568593994102229240968894445316743013097478494130800148358825839703532342795644698129852939538199643545375991705336077106686907744068662101309235841454945224819398986142033203885251401534069191846209757238064447197288048008664916454142360891403996776364837544442849456494753550588649665097362515803611129173474085479356480334614775267681467721388353836012275452377372791433922731498432561100316146041298524551322251484424948128937787379003361393611966267926233785497813623778819566862625117194800450942107934148139212040381713572719224286480636331694221230365626887540352294685881935610090969564382023627120215563986764234632620698324376096931969108302470968607288061586522377417448583627051940142755011425895274811231333564238920713420476929787908743219854517813929233109485581718920935983153356846235682846888622382173997829654129870963706250961772435264635168243966106757468358541248964063334042742302289509853993289333008305225844956373878327266214933545239830773348543723718875122938191781021192020459420307281251302661910793455265954185389924324678424070223545008554786420592489520867823025769241080440916269942514978920584918030575316127158046959690751374833824441216108820406653567526164141472569945423411295286186535854387971446379968634494314477323638883589526677955454351855301895475117055778840984544333861443913202465387864072966966539977734110729909644979986600600051762667444383255610927284908426560739583205486251681371877791996505044680932121493151757669696427501459932551127620646477814090707167007947921010209884264185890219722801084282262434687409458965138071299993806232113216616361794850323515279945516486477085791205702812755106720001288059849936158739907916168809395674527827400086175456906607439926713901393082651575651351327553049176839419114832371940953746557814727858256066962450980169723131688446779389300499272601741967419792208966941967430705510058045156361055019331344494600236184586123851781087344829638170609033763675175357399362891341598373077796789512135524951227079799004280591022277106441816869443212202304337005158209082975530111988137329445440896135206744099443516242698910703200341456235651694489136844955596391755504711184221763057729561470832737392467718596943249692803260289882661577734511977360218807468363382301358233710863334315664632967200829929969035875290539442377310501382370984439163473687080490937804428694932060020227758408279325076695169576347193522646284252612383400499002672283594795726051299218023712393774607063438189692685333894488138812886843626324458095263143234607094782517189418229943139708401894778379862340436773293585583644261631982042290155511505619753335941990485773559421044325214372474197186913657576420553990694404471201945835171825919391665805937402704839403391987693024631225517927248563418744592463096505926547591760686497807658453207909092417313589393035125672649461622390695831599899388627581743852227973512272916146045318233191895612403716635812064190471197757270974929998396246737566224757129387071999668280138866831749650269472880123773811724851025460021911484664873285635410380245755120577195935476826308376810178662390319093903084126462354766073216189740114701370679815078668676771327234630827212297734833696423915560265948761607137698699681888049909455352492216281769045522278495445129651600221476568159792051535792589710701199073828527115390971829142121238321940917315354947426510612539770408755404666093674400658299690131140428165288891555949101546156659640603341539643749867672933123549587185734242761329831911558948239347877269142170861660167394192604085144217041051017850699014098836441273182136477115165884868695712427851435864188637954036767428100857410617365728425566993601169855936985190421830054809130879850415255198515418578221269421804719410230064518267182943719487876373617019319065311344136808947132509081301613401113107006437683298705516530295077261613760410916362380795304250765621074098912064476653996747750565500345346343742857741609384845450539170023651493498851888743733487999073419701321852567417312967433959349366290864269543650884376162709436961851448414766404921636501314210354611927240280750566933770139847830490458499793330135512742929531139403163027823457873167161835136997527178877371608797846997053836227091342798234432218345672936125303572990351765958605065268859244670637677330876230533356484434981088550395045197194421055809887967995982886920511064182776149908302382461025557550636798503203164631418172130279377881358133752879203954025094529186110183108493118834506965271925074563467031366772922943351342136263606185252016410343219947012670512576763442502695964557354020361319989223512649996294964503420163057816872813980952172087606342692123299580918245273306059437748934667365217490650598425086500674651051923199598791381626434000161455793647782287213483894848823932500816312716491432514529538526395584940536988133571606529282611437801218071719965570730725810737228016074645149130416095927377265556759203797679711408419048594394417507474595651820460676190996316903864741326489566222359718064010598590194827705643751757111215220684535044278952834644726705736787200704809762081107788959126326245519437695920434587718799463940678336933341546011043993318347240539137801758985755809096771171668056043309493931669671397330461874551422324840009193554392817009329193022317882995323353378947291413426320433750059002541847996535698546276827522537393127847760540019020169892837946745026830309305865795573171387482535812686489749231328178993857413382848599097760305682382426284722086161245971511215144124155151600425845797928949974619154247607103767128724717893701389765500098660828522487130462188542915745598685180900865133368132621557071588957968926879993264237958973513440030097132938112084146606761152147056279235687214500668471762361327705982107270791331703837100698510218979263955379619155014278332951123650996644712679844168504943444846902024126922321369151176979900434934502875635443609891363378869811011682005983241432873458543478185454402389645818501906646433570953896220922141030893832867977006231377832115687105554802237445010392620697951932948659696941224561873933734701134246625820309586731018955931960532729398014552953222456900740365051072355409057605974875247432346327974789805301372343819889202901277278214544020181420503605135237494846996738598531837619865364768768703535526979723869906935990346927063747115681357188174135809247919524439567292556244310311255236610001862626834494348840640801442447020225099910350176152670354268019304319291566115417226073015677695968517290761260268997825902483895248151427410490996932637206456346172045805059438590453109326078477326680327269810599477570170909413222282735852426279357604812994426087169461651288038364116485919512660092219808576046942622904120997042041054877646437792964132112151590767014131863792070579029617743549976781020249048119428861901317652561353475816382874596854509464816488683047666513890002252639858041738866485105478567892306345514503276494675645732549613877220914852716263239957745344319459990162045999683707906980801084356263708643420603053097320217584364823671433856958644403179898233714401607152582883436300267792609031641995882381270401467687603117302194404117049653284469809011538639562216686113476242421140525301175636956677213893989655299465551641404158058147711323906475520644571022878186115392732063232518745152245691454702244858330412836799128841353655439187480516228543330920710566146761538850481963455589867812509798860574685869587875567858914977599836865593963515872021642018241364903287158636072000778645783970095113479644645189317182126107525900487382599155800173810002780521457071387435577616429234256349990030212550413100291889646322490550802127633176985828726709069752185213331307679323759032348785070080145242651901371335904467414770863068552512761356348035307118808345674941435055602445520936897837950253115380733993197397315230381686103739360735794959038641166052875470938357137270564170792220598784440649621289665360966027337380490696888303776123515109912190687954266713238680776051670053846307592896933355136793182563260143928245433029747066323207709723221026058072688405436735022219563473784189118931875354095643944941541409817915861150329555758448630071510079479466211970001803271112602005545273921726157180908021605879642164494970108300594003595416516564596568978283880460281593539105741541985503017910068288033216345020357892153596288309342319775692913833799541769666538371320393192266506941612088925267209251784540653616147759813424655789771968122513617223636233404198646363191227224804132837874561736359939424951636045309927333036497182366989765669932115704625577585335597153124141948257179457539157684155967581032447884850532925354580772032708303031001032852519635115220724786408593399518107573595335868435729712340147444131939705783153443608100767675706167110997861196246343276577816123486529995023092347858877955047253954989337213859227407662976996323834974390375079064872585120989111207170836758842686933700984474177455759629796698029716419378375189964773072601007553038333058344292458355134002126628307872741395735645289977270264096502111418321420210322983780529715915355434360720155165359501253513935694554710487068967531283962759154623690770483193600410184470022371225830972368959067257198082708211865939958440553787056822048324692346450457430556094312589258022877912477622989680917890313384070264066478208765678051212931176352723143011848361844106507570426143807597989385255441063358912841330802904738980345501148151996811583775605108473941419583851876275224167814218405632937742036824788548932007152775617544719530961759182214436137779485782662469618993789136635347739340539129475472555039909792753871604647417646168339032292287855595152500672385118200666947465254372484770210463079200250267845348059003900590453447498661682947827735052524075399456770908226934262740313002860622893695719215974073313680567822155928443193439392887337105623229099368033689816989903246136647124446595429130215865434232493914159293178731561669851803857869261044279199472744503359446314908318374522887860536571075267898709300333279654246647687786428996620138334348167196109947799561831309952041016750883087034404887077424955064886097931978902730836414021920330990433911920576999696371058696848214825959612519949296012106916616266642807606869346266848029324322271522106144280363277870761171351982405025161469096673463002145362343219277410046977360378413123805090368706556935633415410060821292671132565716380754229902180844392669155325887552658821651837537158326589934866310980230834946692622544915229313222289648320673921831014125094327907805102035296245819490987467519989399895484632703420598264093137258134610364570445115156649841536692742213527047747416197756815104307968823762415063770358319376750141654445374669678882621712917874478899854948511882338290641254161400319446968197723297420649183829195010579795920717209803538225296748595624320335351849959218686854540194888279895428770746464470736705585083910316297930832378154312570974383206768286919504844795300601860117680216974480977298373275689576537942200348154960560064118903517154781199489096629407784578676189614231752173817791577830889440434460864777274099597234249784249029380401234230866640316508928851177194239823559936695256744473597135529872970958549826237529305939146726391767119818812114962895923144179308253773074784164984598114353933734387149136391416383910254794420908926479015957808280653059016389336814323494038364214984793510885602000413376735554887332426228152247964878076530033707122089207400956378796765266036446772795333901291793131768412643573620713120916486571076704877412727868494012744265498181708353839411032556066487525243224914899453212964845950989137652421430381886276192829986714433145404665697381905037977211160321911089568496486951114078504488016796641254469557693236684034305111027019992584386826950269575881193450517515912315811131075465265677090539021389720710610092678718212917932542774922212027728943652562789277583898593993000823884565911511010568494970772158385878602094745394563130842087948952620753438549847728651562028278552774728003208310400746818256912935516894533414874272149687303251774024297617249550044803698338724095617119294920168850458825802247113077829069479275888417673266806178508084885361292742210912149234456716134873255942438194716335599299598572791100153137778817428379775867724314814719471557893882638171252412496350454432730011780810135998790279115933914587500637959363720367665844915340512923365121862295359351546734259008312464549630177979112142000557348084387566582892824308415445209745684095722568671870203537830640745481349219087594193201739305631613952197786288623914551656538237230080604026792172405601499845228568003764298980190571786382260645878016956530492986664461071355033856255615131598405201070726523812344688785077449710750647489492690062133083151729543390874095931851151812884474703775987245179912500789278303752961428927910781640266575285621588603645971329902160768125093469875130206504062786631100435576700670900849394796176913104307748730863399578707307223374221890211349611703071864036603984066712162777273092639164319775695851554964687877827170439775044065349232545510667212640525294798070739550416089016547271207303082978955786750265551166007066659745213098783481218883651531499395689655029411734334288553009085901085316444467013985661598926503218058243864568190604783529906825873513693346915685443111874987231531261625033033525749910650571857510653655630524836686082089696081904058769432476472439803891840558566772649964061041989141806911080497394406099262789137582045061642705139557991887324321845981426550774644198341325743726159319942067030741294964516120341999191034511527358078516034066907132693892021246678344533388625760138157494014025131708711030415733908009421819135294303625300030105322306294094639203694139958687609833952541768622654181997143908045953857399181225688152763721420649471471390197341438489198034470879619154235873460056074784447946061400583772487821683702244795682623079635904891328025802298437768492312742890536732441932914426968996425199977629273076430243600030109836329340939806819311035531735576396208220214736522493050771176190776860286035044843469992254346644291170479190810804803068691474712155046589738768083550549912262048626168379990210211872706332260871797777190539139084714743721474920040581943441074057169418349461269116840199567772230469298280175303121547996988263590241877090882191279446644543173070316089280697207621813940014076681441680371983607700028302833896359907392555075223734630171291276047504794784951292870483477825826698375396665266207630025545256043194801151302472779348008569006783771980237797241574150549884328785979968130669487386972792850531770134339033064775939467734250592549570854277791867463226761356970406373541755778748169059070785290416423400933783543161561265155681838512570280798278830626124273563723088831616135470920469838006485895284424998238250957968033456581460361450511673051880036385492959030573220948174503889158504005574739075961770302556278278789036929862137594679915259258167700686225666945956186215726444115115090556481374884272753110942385833866272090954588947799479171190976992051902025288017423990471258386614572626506361814290424556301447285092637142159741095731490434602002142820030960721712555005487872650641248847375374220425583170729738422257046335616780788938060413489982533352463901830759605144191150631992741852379825154246767235227545576333581575005597866361788080540528954588891546577009550737454471484507400641554570824079476163413477403144594328796528530533524420269563359974734131687384143060253868709838695237762787531916573438827399098761244478661578359799244669860689369904211301813411476921493871085167436609501797362341528590644574017923894102667191338068074136023691708860837168713767378121498297245891109223216802862296231845558129068661636839805237040250059319441734318433536579298518429253066865705229829373208510921879923212610548698329337394587915000612757408756997877070155178109245894890225247119728760788824174665679452756533790475738347500282842711483530272959881047248021207280434932075416820763803356835500982541776436348968333968248814746030114169299295617345654604603977090447959220488301012728856960444290521764081364209254678054464766159861463370282161374097282843440612062617111509268572943988413633832773458337192751815313244703143994995411497889117459841381007589560334171385760755798105986724109853877384717483741623039641153744852414943088833123240988521481672503220995780620426741605175065650713078492465056576938980731446140917517420085536137356083239214287341345489359949964445998250621385497892840068877788394109256937102121181947325008875541274391233855684045027385068125080850522656869988705585481846512840144512639802129225752023912301596192472225559729946387186495392768377467586940579711846934765023032019450170793512139503237874368016321450103108477485844273088569782834239227856231931311087982618734137958948617931883395853893914498026164726920234242943753825648022109015838497666606825681041333455031361903696715754087129045731594641620673955751438518452594899051494540223619624701150333798031251232640611534912282417592510312062152760626539913476120727488652627595720205150161319073725469809748823715250448099922259106806167248396474742140751133175600154197874951390179279788096710503393640377364597239856351908515904134256354701978185721148456347630931844388768569173075505649773713443470214756681895430107671490407720438449998564384381959103200576983105957284576006225236609155775710261824699513917458080754605594962913948663015483514786615391958331132942691548713992408382244684060535694925807995009225345148501046443170321529327586285891523655492146256610203922514802275035928605075272032961097164406532830928973005850887980060595695407535740383800154886767234567497179283842998584670416044765975266638554524351488947662550642073104666695299484899070789978549342895145000269876687848811332796105723358317834599306053927114530248185279685005935689664538358996882371436340567801323315106327372649152231316443359234195086256235817850465080737181144820810793260923810642958546489122766437619623172854544502803048236621800266827242043881506467425612809707498301106580847110423259927807525856003071446441937995011423723988390627735190033895650300789272855584430740839339644117694808211356945486010487075030940735090499286063289180488891423502722766954256505006283782988236081368589570833877881324200068796254989791451764921370748329379042149280450705641991674115049490669725560575146805216403518176798727048210369344487869450859588761140992195593307023472523655842385086122870210342887315311996660242452546965179936149151658364624921641176999274703250684990163192411178156737630158857006797425367610407720692051576814212696373100768803430652400390070382836529102215822978637877937781051476744902101749400047712079204784153927759282884022652162718213021342840722719008743355271150827326528904531635344840711438467026617680243262953271426378689092115499001275226807370332528572104537662178172185631024609879254588484102584079808668029610465281038018924683118818254582587093539803300602779280083459574378457069117289295714824209471022735115798470750176220730858469003120757209924496662534367269912526247534087717230619950593214217782054525514519672915741254784060282821323925590155292753824362915057093284016382049695579989563865552691218401099370490141894031849903346103017903867269573089983042365415952019489296607767908840951049559893788391836979437308406970500558662449389034257715521637811287690818119300989517925280712390846640057326009066078183444997295054164641893015552245992768414365892951525616502835203732550721341176049729829920092469258487394700769441159908431674881787507962824493701049038859545589622298214804469961592574956916796009787921474500011173465561350336456545123186239930482781847588069014734980529377496902364578336600379344261035067004310324652364432919379175782618833722914605905481488039676176691503759995552024873899460769912843282449176830728119726212802400880566099535629551417730472775225220591186528733733713038436062104336475538209415336441377053166648707939675019750529495953413128014668619503111190215285863717196015563514035400436919224697679248544614505916216249364085745624757034585289490728517735641372759014851988646575115166627840863699386391897657467387804854163358837954435352429428497634228731887133578206925794045843432208755735871006796278197998632382175792080776742701251788483897227533893727061513695310976368499542477103720629956641674113926135969703969180332731960131854618190402552914381691484272475519536176591447385802483414673072928976869958672665679160769230378814571019391259919545125615886443838961063859185469516481288059609404744128437862745085187264637303495678114558096295012674367110152763417221660633668420800288078048536453477877577247964841077941770314365730824423708485048755823260607119379912424496860096465805839717247830259082178400789882475649645667718740261468449505832649056473973374371247078687884881840538538402082640353425799277385793845007838854851596006392943617498207989606936378487173965971080746058349642974303966126885954338816640810236381319519047265664716791426410007219335091945527774228855726576166650423379951062819870965800128335507260904960909829943584094900446997497103930206063868926360718444024608268560477269624682336339288519942369478351459053474549524202856350931732120140975935034713219443202782766034139344827966798128118218453131906569203033709520264192980762623709435863668259143050043423589025543721186323623595233334765682742022598315113794790777711199163496835333280697416671713981611434796531985181101527752867606029029571780056573399134547327381767927035226690267192308629795612968369188778892343526688926713189893093922884023063730644796973406459900181792104918072778319003608248601098022944183110029214760219066934916928573590613829057377615335243600871721974176663664518385478163666168146325762651353177091478210960998772789214853937021419797384027168117922879789355049244841729592460045644114487311269251338354846342149360609390757709805243364082478975356136309384541284439197100157440853061525442980181921788307839712831524214871587438540770537541825044915561952114519446048439811464128976006029929782699723405986751058605225810926352037773029791424556676741452908450865632964763965754108363680950541499190967743734276760423436932826797919475476534895267547471108405987110376002733625159086047260330182073180534221198712088380241885467947533865494062418760870527173421372291137555903090428203107046390595349543112121430462827271346629820534266139105274786573451911884113382501722705252131392739694979953081443920137193431942266607180121343763867761096054581350838795803097986869493809961973653939499283325223796800666326688925413412330937896210097831390524821943903420911215190138694735706883297859236237153365962017058145617088608212671656090232202031709162914664080052589204128417257539928078483186913522625018966746699011834367430323505555864113339406446038012292856761889119678404950724546605464799715920838379610342200998691564878280456668220546315578456469288494469954654051830030447283347101003863775275663392916794432922741536222446810355260945749049691091802030228859281559855709511800183233540352321235295469296937142726098540029710151490736671881070175528273534307311614364227810822645622741642210309100312776850364759718461800382141255210431325833837418342783042636723584576564500716419583405032919567766094515937691583020397739510349369645026631777177870418172977784954578669455735143281585896907303842097374504412472673733691237766195219889927316256209506609713564085574024744041968061379322837368438588019699702311509514236702255445187361406286280265269294581236815869014691806388505749620882102940541569990198855701498227322895139107137095798368673704158862646736085627122922305509890785633673171702327809667631759397253348662153777435489625605207106161358554631948625187024738909358990373456014683725173856266495461279628363755747973447065298346353984389517924379315555031709565498803752321814694423466851857384948204193951975127249645009477488072675565833090255902777891824825024799031374425490658623512614266815572743368355401520782216195902378388629428842488205564796455231886334528745672058987504918271183638242882225370682645598555420228466582480236686271473198570939895072405071019643367285634591240209129547797999119967717946418077337124626703658506055435568207002968089269720400022574015326333533131687099838176988907106496003005955348648332747119392825101428526116691998331536367131637797342360526738670862038453271452551813138147967717590053967203484222289369652571848229356670220024826306895451572401677721163285161354374091731670820405484630316942822211581434541854966694583209314346322932109595526956921600436015229016085590870712629463850617388727866208825953051292477550306942811167219593149463783864111621923250269800550426997457660812555144648351139444109267939113214796488358432183549226110443694876780324621275298683567331683228124127498213898298274379671771071609545343884015307925456646473080187017233312702577146004782018231566116073850310988404525181657036554409533749348225544023925261135618113450954505305998380005558363006132435960860821713208692615298012007419118501851538666137531317495587638444714089834121263970051675936962569996948358740752261719567191721835141717495516985553876724097090431917848632160813714890520317347155801742061747705186021598473666499884846583323805931297478084628731423937481167261558151308776377697939329843402378779748067978131732398816059544917782671569569935734893521328043273977907430422998007841343417867020148873283726347518540127677113763218827038844574392568319620927077123007369285408225629803336539402537354532633353845063834237046727091227169020509946025603124161053352757181471615375714249901484644385248562192208143649674587218132018373407408293602700430225175335413860916343307791249767070949955209362085677318631661045605975985342211934589610250013738283683394553120784095570345896375873259045691031093285572394695703606500404306077031797814165835677021062109341793305771627236745313695359762657653267498696127707600377803365500317762171758824399864972636287031531619495621619227590440737118016613642472945836167398052311225431372360755380184987344054015610247359062510413242078848650912202901473888663242635385367797385887922190686469789595019043517766320869557405814097920238096857476640875675567744544273101882527698218562730692404979300053908577785756289227461052902748403199883973406568000007307054347266947511906344831911026919835434291570499492144866421545014920477054587493546052766464669582272516026900856808453726105016493227979805085543355844483433544246059206126870945163020611696527557688349748728099822534325549193639315217605883947755911373478064474573646708867429316605590740161761560473969887100287764930629068688303416623772954311803668119623071244252727890191364268630342371483261856759103472714515506935621341828732867531845414956325586987176905995898750319509576019070924849023669770760042063079945880038854960520561114227977163260102624978594868708663694107095386361138998292997506654568855939414665988947905523131618283842617782250045292464700337430199643885243825182205029894239320209810255599859833311392069402901836873767658574261099989441102593824670463348969685247776193004201801883831301959180281393404674915742631480790159278222572529700342158998760158754910157870554671953555583427554814150682670275072642255595666256899683619448560411335851625591099863667116883730686162635080394296117022079243904229533347862056725048377473880398752582923593363737576249915403848280353978845698626019982706730650732417874967649698198341533433847255770341802607574551837377133312617966686505628843905647569561433460954460347842515271490940968159204748750091610847957776498070075044883601775773821314584547578146307517678075532265923161524411417859951796073953576861590593186659944953537828063692528668891372163557242532381870393731384191518679195102444795663937787874449436961811401267468641261974693959774903551246063846717671075069771140108936003386141545521404960591917607810033038699159125832642316356991765245072684756630828334430128271275742886686206401576335982554432846458467469424245003277627872454467359363394267873433710411985363917235021097749958956318565145579886026953993826180060345800517914856652766613697553238651428156947363704049453343665739988529945686225812861104442966115624725063307609576194759819749335924998780308281490594242989165528997640789928900125860361429358546589367213505869271471428551702037906567246869096249458606855667970458886560124935276686870193391478512266515635042275118040796413581035389874064290146317617328434445591349217550241793713331795603022964565417414959970266867197794872910087270491944169871822844860649249397947888875402161998641249732542424977297327733083874637960795853812989504877439515175472447376062363229400430817034503758490789026064498723185170869562420562726568247353123588849574721200172288013933739569041607557556849052255823087372640060783041758090023187124212711085013546518567322790437306580582967023970365526679881492005874298144487498628684565315352226900089144967217887131855109220936880080176628677798720734569881898425359425336866183764246070430253655781365011078437929832106259285150503796414929139008838655909841597225874554406017574871297493990352386194220944088796369285943684540776461898518412176935822579957622892842684751575086767464987747694585566367685155704108706660192162695646215550511962469393798334825810168251496293376500276099410307312436460062202425091629180298184662780406957477106190199149012832709037120051321770318676811280205324748288819279354389115893892428144076179922771619456856189059056957823008911515747997077988057186939515781379827730002593761151402194266580218296978462287887530745097304937021213137403512358286739240498415123671541803121899566390334800329102395745508887363850689144580691308941048807812537417133718090563862599515821675998174905445852462740394130543601084275672442489561484950353660679833410556339513111774124354194000517236766954858170421807946168413794755365378679035374283926253060542902224127690695958059205457113836063421917390248160532135992893135049064393834779374601629234516529180697004772360862295238299546138109757529222778669060764582196565847562058216932061503012945772530003502213326099948073106916869520867850752102407533510203105732236884075282828121200748827849234804337678738605569728683100248321305551291214980755378492685668921859048377797744736613114278250588479382344031431285907835358814283948259986443757407365786002747665716576696661514623662791387400851975368199315544336620825188226786924950294590345145374119048448233251976334967128536317009373510194489520384243732105633698645314370106116040255064517377363917831305813396417674645751692580556155695889912898714652674554463394976985678500267350011303910718614871185331274616540869927674680108967390073602069395474696574724877720757795326072914036457488735465967493633405838337007036920539536198806877168101865538004736585539336273671870607636304274738285001832253155111564380488713009942269175931684648034868676054001343809553129707357577353189255759728785204516205282896085978707869177825424569203623582768547573921164013725170680883088003148706499054990242109329632118347532701213933631270019484333379936303349545075583128900663630481017504922278896286000820613716224973807441519086510331339318345507183039691528197412082184449025609394595535372858756139629892660103591845001994167731518705905104444753834878817991538291140005329112446549691260644558432617868006479374697833691598398936681230010567987559109384487462643811788506442771267445462073776218732248772795742151240587878338005749762733675303083837628576659525030149146125610799141932539217037401568759826364556029798881371049342049205644873948650901589347054556122173703533953498466492244383487223315588280867139626615792779790865978275367607717124479787072665198381627762123280235385112042966268039967485722249323800079387964125309659354104760821211749004041025002626043935712840951712426185831472876202211845170332502377044426903548158257234991375364161581751416055132008308518684727965259787255433790532774790810928000209406777767729255770551509144549146559549906603990204754776900316143438207343066221845924869339673856009733428766199734969797890623421558073422964128695549111259223617397636881590842235949801915994358025246909325536157757710793939261016367131214130629302880427637692726609369082961595931348450407604441288442003944667482216216260990014671051445668805670180865781160950999586278995254432920685489024721776859197950395390275299115858680245754618392279902234769303980876056785607568691385469082883275936288315014275039364829430391314578796154770676882043164606914101759415772318369145395979281087510878878362079446132537739591693161326063675361982250026578901926607507870531903613447277142696338123709538749420096568502114504221275727349417094894373203817470077871700321045157434516425651427915376502938993046045260522744222658227918398222854616396308001085110075587411821516841689632750554361502798692275890284408615213903326337314302944148463244567608076429790647753169130403085605051932825651041938787996617800890966767449881930319846906753605476261333360240982648226524448418933591565701160904477521597179492802615023848522532510685057109870825655942356814659278497463521944554895223229360872139861795505699423891187078523434328397917956753012264159811202678375977645140718457214015609904211004583464190673637929876694562356658880333547738869516333101456554881521078211422522506494307474553786537412648217850750705458149811069836370698556842673850679602244887784230168066463916185815203537858030568631871403305652480857696669653647710955292819983846176367942331423683531736678209515464384632760368424487607858339896857421593206155622658816723251425914900840761356618021997286661381981910430463428662767700280505719778461990605516026435981789926264718991225230702819329243546257052618363138520914981534147400187674241659124742980165820437269900976318070473174984270050459072117737966972354033869872685877758398860181696110787016119184285399721733635336045399861969510578145150134191519140592621231653489698747899253842663570619560590897132426893709206712561112451560880041601152580306408428344267630736019039767899712842157310035687291750638056382147719747655042827120576559163766404465854556533985542826753097115954165336913666162499471892797858372963429131913885377725490645778264068001418134135305939606418397752432335103087479259631802885882023616248173316370358901926745648027661516309051153552119599411976829093539826638629635926678364635463917061933418465592178428396828143773964890344509339787597616476525752990241444789471801017494685090219039578206713263661150889385693097060867218273701273770199957598728387875698796690129110655832289031529651164792126913901660660730857950045887301013020927772121492895124679780715261696502758414806639336204362579994341115870196121007290276780298966786177720436858469213071056320038936696266262091486561438330584880187891518824118141657442257413086754287718969763972113703029424972400679849194133481304405297436055729920762467405397457442175285119940560346685636778330018636072282188451443831270994000349016605089401048151878336808629540435065701549286424136825783763577728442232654328592687428557518550671327674115821069609744413330974467286641301761751916365311561265516149733566002529430989483269151189386670124297307416738025125932557120283529425860283348587932966421293456464431810209693079181293707542266833546417957856594221221675785444071691827234408788940383719445117326044010854354907917768477597884507089740527425095962629274841002123250464459380624028151765440175796164905685573097466498814562223535931704657969864186126493277655658338451699235783029158953527940474228900845701403497556776784397196359886425155784300108084888372672288306956116187208965034570623157418102781679011814835491689291303784730146070351849514500591867794875021566664809891283053764474049564947303619992344742584292577812790876617423589259238491866976621616580466198375289178569235379777986735338815721397536992807193508136438481884783908284106389689286587553485952707128290114617639942581942401315673754933445201414888524045116537339424995939463092657982169049194203833753074747398649121809624398161517126489434289506912278531909373283047781810324713377770293786811283022825593117709361694232231020673478529935617935572601536937676865443097398764164931042108879471320807210577434404148615389855554864234427680590597957421090245477018959533643742864308623962845539044111630287882496125342984587466500735893255387824447946909017205902918692204312743904989139490079507016980169887352892804218496774609051837442216538908225746778752474659215055280710450144168800851816576570263170234273402755240134557970325418018566450650472227947084278666619684207291421114117406521093313291305465257230959025325603883783851428155994125804326016299508502169015736030728501435417993364652464268127899282643444102876152868280976701808845996795540556021250218692956735078090774655713008701348682232334189376519622284531681153288188177152905552757484962824004691690399171510077292598595335544984842820187472869092023845717022505860501270570597041588811947773329001246264588085689382207832235022134221216508380045187798016576301440518228229771758091433387914835044429765739291508793140310944060302845421571544450592210440169860086297182002157267609370608659836601874467395104116096121559892860821438648414538790230305494228116182066206291381630512251263654635728881432737355055373810338495317809477874035423001689881414086832162857670317024355814548959983092318101401804777851470902040098215671937134439519022079528613499061231647220324296980208932147009861802255653645782152023969813137916219588701546234990414087569969895490812023654659944237351299533313647049040231132566085668745226655584631491231959534431701561889791087264432742882178192967745193030594307925918363195736338591168369105217742867520981785943978611232935609182976258678952833661351483626542759587243994033319380633047600603556132574465083501759931285399546473180550009066346462086803249028146359075483095184295704978228733685927811036069188877100246715283490636241656539717796336390720639912249739089407374444106098742194332926391780137628796601030530686417399900607547397172006181643366508763884690245331716103066741917023871691599866577225390362906251247286518006587483014433955926979713396852730407765998143853331915058277280374971396099590142266244719327000221125259516749740499014121829125226534077715719704734472709414882503196215209341445285818673867074090842008590954209383495494206559889392850899111964994471800394331377914838228330823185684247317800912016691319292068593293141389334999219318219317008292195746957555196997011678052699755086287859779078875387610594576103442271501622636872762358573719002858394446200530524820608739385769009697067247341433618393123171194189737007933302692162007178672875528231687792597083219063626323230178632216744354238199269379876292020961687561074484411063488116075594003757580557685194695087818496412501251740662945642956290099650262591818091831067821353265101435885759974818558759031201464374303455684641081510764790595575922503166027501667992727125140503129325604746849092638309687798638234910172487077101239920892764014119737835195673264838187281953779591311784987744063159424348697013668833381455573287695772075585902685020013701579198638365558304811224075520698302926813876464912406022969520486249228447126966935928767973049529669397384525395376274744914697379767588641418815565939529443268009959218608264057327851474202522779271172948409635495406554592626033391626952978908464055789689906519728082700082743803743556923468302361209533346933860777496853592450817935602096801922624722104970326458339490101852822503824424522457322955544304750409857593825419679540279614191609080112710614499387577857604342369241333009023939914379413664652506829719236829722655643624547851186483065367626980333486320656658254688662486784723544701218818950757504317474117135387643810489606845039538944936194218552535846944650014306478787572229661193361936730775432126819048868799456928789387420171484166327899886308433606034795037190999101417232160945638554142339945947722760245826455029218296414080854927582855679980562430953899690864677120541039439080813137177754026206159183949305524825964274170596367673779775325755950515686947276195285100395306706675739659635935409449498919310985118642028603438652432247003626920750523202450402357374128103699483951870280469550447689667549314826164822308025567363303665032474638523987051935204971467167087731889708776362188450188854841394683675030937695014051922708744947335711345940174162891075837167259722728889078504735025757334987826465656996173187978974998036548109220537605112470928338556387337520516531807844236227513693268153984089288040242138225235368219584800913167172299159931350905090376935932244367596927377829192251414786265059010062332574911133060691620090513911950961707651088325382677300208337700888136291948296000763393081235454578617037245521395189549024691246252143516667750120910174860206131096142687601172160131368862185135507064911472217746736756679271381169080328354503544739933297484399182324713234481820931868720025555694567898229743685025010734304598564943605382850968587859340867234638079028698376259593896723913260560070129688109675435501654451289393129478205919803557952106651961099383530155372096491606397728668566362913758649722149618736342176165086765520163377606696194317901373153695965347407373942493648604277691306882518159742909542585398054208723381033233611838506151490365780478585513832063972524851163144698276417180427065913548546192598061662836826263845713848422211157134526386645641441446358357616773356118315746081474333716568531793327247868499118550271868766142466728477383296383515597613165617505440811950518269333964840568984940857157561201242720898667726416697911439728639232352159886653032656383375244028827943008547627965105283187116424819248639813941609808512422290976846263924554423641727688840236551539964765712865912039298485327366795038225105133272319198779282722884237441214979618408025465224109948210031205783463632669449674676560387474779113514234913828452955339181247402573701968428454425571572543175692811503694563578314369525545281683456100557568283071526367064832617876578976922355873475369251914729730914660178384798306232308825915537040281889111094803875461511169736409912116888994047214844820675958977713032285532048909796284402799745703423352425757968310501342756462880965356911482691305744335658876909988687653486933700640075371635999443218380654249187262290877466410593098328115453187331606649044619606190924334409333449847356888840961483407466817682565695813113033994462448419951445632769285981290820208981972427451385521305172926364001666034889147202209915449605963082733879261381690154643704884487902478357390981151956544891166739814605803444875897173276877389377720556905160528194529398073813500366600105901363959200717768286052994365787978852195961742558783347526177775357205564898447245480548722608670095676817393601748958213507450551464231508488809023398129811161186340604834518931854106437836655266240794148908482126467954314203458898171805214063938349318202115480523315281073274807907362557098365269595854394750533868540980556891870942695066871183506608780025239783928879233940672459077072408644850229444888216706078107317966475695465505256191244450642174832509855010659186512711632240580147463714940756097246665096104688651382625327565154135156630065063425502226852315316730223271761268887387258086205623956812027090999692962596508028726592045930683134179156166545705630193069399768626306460523137305398136410394429275076069136822679584089520654290706156336798119597914215038473549681955230213568801429969396315689562600921257988951461383103094686736284001403125406004617963921036075483408141310010761760041119409147258608015198753876061801991452106015188059384058922643365196357595769837638112508178575372104317877645605810010417072336411645126046287724822742708157155544809464689101150716959451007462933541719329662951606296379796545961757069944236042368896055657444977688184047431078900820934288685463034093518312442760175829142481623294956885496209827099651253460633568202224452443672342776218533344303444617271498071290359182977264987134295289753582299312047548499107296702247928857435047370085198298088887346107206287960717196509385795794751782548649520736538398937646844586735361052152176416118657458779349473116444660238152733874897020596231477161907417687210763347114318755567389679104992025599249495108613005299560999877115749387794186512878731686640514331824941686437067192496720563481189259745926435262898074578094991960925659017994165202565612422489430141963640706061949563709124260859061404521805145012272326722312785064962644950160083902380901343319033537318779217692179812178248035969199841768819715543881407325082164512750737477797722751322440450705914620979693829846188287484467740181054482517563297588483233585284122949734775236433894167964217633851930585403658921813363910089610114771958847767781680230345883167565930601490834705882138562955668896878586099331255058590860153656499632800609746379653169156721293147350221831013919841417696220370331851741234391430238491572528537014279169721544459165966666434177183018123724319676073714680755953399697670745321507476178265897768138055196222177916167489119484784857008905772826639229967572848160382261108651608965564374639681745478015205115002845460705059977207562720408920810017540245809037959156739870195794619806796632827632645091138834712490496698501153805015553686294523696525831900824533572371248471601480946017725007180898378872784442318148417928481257001725343624489364029035417237111419743751161416950297437845840381732652135237456393882013095558765552846786199920073730316302781547034772167874453243065007244429828093264116320195550558917336723025916235186668998320695037249896535698349133709560555127839860756657979942530432497554473694684512755157554935622467419525218110503940322098599444058652637813652755875811992484978180370891282185595148368326617231268528502411187202394184908801606505556549354915570558647758944399584028254741203421406269511157169313399511231536207661007284910898411952329610303953608363600074686911130224646273332136828566151035279142382919371055706681646196684921389044045039742361568291111143749393885542825061546854809558799974316857947946914815828329670618581418652075298700269007024339794973161551609212541144012490365423434208685962287238824732220735137429367531950584144161170337106063948470196561438500310459260779612254165732111716915815156500071817565988080749102294124929370042285188207402777830942277568577448487680585418343660263676004988488013278668773068492565749698631121143455483741581997459699012438883077732833527318380653640859273226618016529341042983065879034878786910590202786877942071703173841069821261969117601850613111361156487883218608861452066037196273926004370522503964379960261907425730210591244911131955674077284262381383171349820337394595236253923232400562643776944597820445967637060158923452731339457656854044682240347912666636608170059159925849012614660019160001838012973515428220764885560178993020807401304320125855946779737150493779438612449161755441167883974314703431384730636017922038223582053983977979607126637970203970480997521355716476211515349774285091901421269365621397257401504839949466746074011586102504964148017769479900385707790137818772983332310747218981137974152062011471450864176767114181872190184587154434826391841198284542215475152202568635353648580623412167328591818711385736747275340846228070902681553158492603511396066418981443388389360724450195290567086913308306799972561670424756673529128423109264063349322479650009522154400482824572415287990510674446535208856767977481938694602242466129965196347641853816957959819392938934038185205685052003343369624686483087461296784136594757048605425502818308451664818945954200378000288223942254042014561267179137895647139888205890909172355846952764200682409132216797157403602706721602520653406865382814388183786814799214457607489499852949311502848944315556164630833869448604455389468608136191360397438451932396256888909302937400602252758788938564717873006978207507307508590409719107430228426232660664584841374519092849880548285561999953337257963916436140976364990976067254497881776579050258668086114270991361655393387136219209918635564944773993820357632618648314894083013095801639425886186126746152309046979905877355787267433809198901359546629655866949039313783776600526966402924179744925485665438129071616197544813939541239392635863421200802544883445400679154466448392718660452320957670028543209417831529580088120925915936462705814283845264926500481448864901871517804941727138439302920341784585689777337473774515261401780918338481881414173341858859206035989758207293386950648382087798864072046163196645402172832398630745187319670450674912355945257963767789610352978886493190768686265813991980654405166778257681892976133032918261421552517835122370863227486890387187212494334552604087842405378062683290392522911561943916381330622138072249394193124143358724815556494975085340268485709098554428063696681154139134318679714246863431727182395549079896135502844954756866750986585985597830963110638649028031296540980481461481117146391084487366184141399349800652875988047412536023902018685213688344573373776845526286955861094284606780799050196877049589280669775644338265763076916102468303346402322268614680631025037225943975212404538931826545964494677985801989887444091512828261137425366412329260181594201791503222537120770981821761451647563986132227424436313165073642995120297723052965747526333182577745224169184973136447014397089208977068200058708017418932419663425287632004996478048198353275459290985129959287703900466964964798218459256422582292150372583024925933263948120005782603394498866887481595973304833702326015870777621949340966810858129632656509073484614358206007030270786627562290913976128764769273799619752972575234130784645170426534425089730464847986302027070229354849431134461613062741881620800843776832923950254246507434930667150766700795759789239705679893013949391729207744024397622443576571114649528337725599885008228305977230857321116254840501043440726694093171976680784270993858142609029972727005841373700054847138009874408032173825698138991907249062381339756277102066187339403090951816652445742089513543352599305422273759037756097573649072808924721468743688967472018426461411237536686062754136863346274874735503534069475669100931189421788692365225838615230599534837419727966950063282414158322338736443656393846878344870666313921622289733083680587993549973320414290906071433643766367605451114267546678761205201917581231353710390812721380723978747609054753434256197090259966988549406859159052615275452660859024813540012192110601692621176768585324270725366402670701659066834769068241962777565705166479760425033915458659174628731403714008165138482178346806344864857333810474906696532098624369595974284770890160178041997436193582914199616282269800245380545066978889876078645693923618387816380302039333071613113745422282642731313510471127989002685071535750815787837710542238706980439749624710142971237054909246133632758247572682516783009385773999242780106130894445762079828130034840495909072114126971318963290129630391255767994580931814572117897675410157636603552082551324514503167379117188089077742130810606764489265236641120909609374516577998981320489535778723202507799449638708215712487780232842433776272282672781900453701507609332953608236504091496818534163271115354318339541875679963605320426375578932338708998979865097798246457548254608620249650890032686630226212748134114423582669518385828335372788698805974831706334753069848887154287866778712169317369209767285996180108314239635156729896172177025678579857519737494323886196271305583527772286408000649766952830019469156821068106383281397428587350057743356286374002497395097899903026977943602490235761609011597904127155799334361931618696254391448788307145422945917139756543942880832804319848143905705938038303125903040676672187127835023961205474523379316672569097409907362657484499436628476374800471606101307987287413127247029542408769143009576325336501985843044688113973251054734591153349718996129901520680514599153409022649464496383124330237732037515520726237677254265410451439574288010814419525703329778540971037945779211573708858784222102397182707002560230539727931060816900427409128502523172909605830102362928249733014470793595654245989881995673199293207138221249721658446293317753993965505674576926432772527729821705102968169570441882315033006060922182718117357347525606975197392443155261648840745653773524926166564626859722129122630977083445990573346844020841887782440488813854107789026044162177081242238980353126038447038228700077289672493032822740201103988640587701640747348391021753950056599012061339582606212870700580332432634154636089427950753428168064839353191590973134252040470600733250319716559006820063234987033904826043690266753719274527125478141061643630827590864126794916090910688750249692568328799109880070101035050023217941951393454549313276674903620438238534872194513517517681859949286476098642195216175594193023454770848462389426492557238338211561880715156399475369480841558151634788879724538254566605490751196184333236691636090881915310285967529609674985852643279229076788939934853966536868938871052154385941044049730400320662077747381765455992197043373289099195391621038537543935167778902193481197232825463931649727519221420071933869082171659019650340500739812977344863262710056672549354569812888736853460138361981851591632162424907667604902592281000171919095694410883179411959455910458154398572977095062724906249178161780765504893995874089525935971697925347910567522526879529486356080766277875837566897930578481693592506264717877960947659580739889697649180261724549543692518599336425367806849164619588754825337919191632331412895283700686597036619867022848073804653448231951468320924740188327836585657666096765725774932394205094012363151301687299960046904755250053069943497612837157593683460824827722107234452909729153937563861138785338702260320756873444886900611947902970981575841018139805885389541129168173667515714980901158243604900899333975107719582146478669604850766888076762543882165450661136064232874271245320472303612643755199887618391901039222737968396204033239680492427691805883819912382379746458715840895563351737516414181542711888663262591804529431145382237240279259976377534299669392188640916992821546911681541064359706789356059072437264949769359815570449996102842417499627972013311972926985205081803559834178405934288263195969255734063391259007143692230375518527705721328385654339492482704656791396070738174917689571977066241088824124944145407079865528055717149869272495719746816447718081671441298604777767621136720988292603135049908233564885709818450719652893422454587152517248828661227396366937083377292641897661958718347300368140432353158799925708288380130289462077393348745309867793316841408493680045026287572820439922536021705985242368479847501224585626858534899384669790452068579271477489631608264308697251247651484309606272496680559461216473551360268819040846996075906481255002466957363027393897010004914677466585022810312066183014493737733826813229979707333764753857641992329331094677128286852180509001921588582947243203261442014361869984905910957100623317825498827287451354093816005220023908898261260398820979753099145725028934346969729705380294327717987241148321966344490159871523646221148085377345584469270825847397595130552146638946554831825571736307888339512359790711241170925045187117592954456605480283659933309419715390691383619543269213931573435133255978454390869635529985653657105349553908202332263536029530550208724326668798231262846128679467081522748092843947701606563395400148595093546129791446137261448111190742982953702379285059555963408912278723638381873823650855633541548510079741761365887478701101567432448224113398695219622829970086085359117139390588329089521944180780415378968703350336463787164216720882465868592897509771975952592018197556087050894425940709454950991006289766662172561856358336727379366974353927519771774602364415780295479043788551213318631259516060546389008807570394845265902121445668509783804588975962299054541960519921817796827024100289538622934540409158267163049357783808868044565309071588472667783858887172725326968849914776934841782745063509976870144125832044209755825411092408368155927322807529996497430248910304140175969135212998644591099736221113901964346842713936220266868158284168003024840359708883917951119598447796981912423371457792979589557828238826880445960719451997997694475914038292682762836066204475369002445931093585903348035905130849670318350213529936048225663143637975831048499216737057663886847346463638786894949259567042805445558208102034517412707131540373075452913517706376005374372416357661057102043577426463017672022801131839795683088189012851412469014186531235551980966728976857861162078236018211309979881143336453787172184552466193528353934098078028342280189585876343990619085231462284322917582894559707999048432522550419872174777589795223805129148738461938396953498639693158501583770052241409786825107177495370179542128646929440719688831267739594825373822832249801258998975607136652004160927116828657377873408260834250828254811380626321008518838506350830442006994780401961363392693545101355682813726413668907237031944098454045590680216121298201415948599353801277359510078475868616906156055110299250603838031456942806568499288504696400643560623883426682089729466465713442523696773873648700600021139110366003656567883428044877796975855702298651842011502084540856437773258984913447235838996375594285995880544182405581207004543501067262526904016653186318085230762085676414482841763133962057570746478940859085190519587173767701635365270888130528791461888197191465957119497807071470030288069849681884887950224442139400002348871332996412289358427697159533833319986646382095840100547939593190339190511296256758194960643153410053696980124772692889987410186639146850909907311348778404325165124297182239240137249748539702070245899456212869264227265646008768654626304303844623920897056069547710349794220093321836165712442466961596010934760278067142963297208517419217571440261376514547559911912668504830015855296578973949571190144943730459976009247906321444379259456343622496861814165335156191741105878032899931540800633650076964101336582763957037294414106468399035721935811110488939645513291209828167903410564183896439842705705583609911375070094823302329201208766646412389540268698281697687184561919144103287178367683938612537171360664563192680700444186787879757108298189893663854109545132376280946096770388003380744565363596793818891813853930792648623694868494951208045066174310102871425270127910087107092853761657043220395094138391255249902193507707688482488231557716198735831096573568383266061681914870698897218301863401600115363380282583794419067411723109844671698131659632923600520374196391644393539883159117361106491885877148570633875584028611282456473419300802927568373153111198351723351672252531662273007147908376011656147973599093391800603196912483164336042221272643114701658117664626585356177637145882028603668119038160593092255872542461878036483090957339495916749226146282104838866063565848726027622032497651092836687178012984581185459165918851078840203849910124295157671806482820919567299736880939729382954804649734823712296776047344704025697727755655577626935606763595883035642982453471666631547551891027776797893096611795341676634445553802799736419063506752168162392419991076338458650095273860598052354038366289728066699247666765248271486497315632425963309341563411932471915898348108302401322317717826016360908862181093815878045106927230993677873875931051888962114622449626661016182914230159931691630561347731754631980755503745147850786407446593177530002164044717536591311773729840182856100060544692981711468384841976843582239569876449870864115711863184256377029400647985696171752092347127908500958089621620368340892770124550052400093300694883102453056862660237758393483208678103148680234417484069137958948918345160799567555314847385738362865407260119176734196766246371318338063160605139723983398328796460554797625358226704171192052088586702860024091782755241842366726933806829961434468505763811623405871592297799035166368160031226199548127966320162946814829310879448603986992743316160048333906492154246068315269378896715807513251440700276795630801763869915451985166312833403750171552044896643613410902823133455442239099746980630173296792588580905124104463442204879091643116789665932437436277615990486252736285986078389171753008986099775035739488318024048615326280609355058104658521200909835617740141271469668062580787357528828365082912487749535858430669518081162341454760747695391675829689747632986858268288138240851066387264102109926655612626098072727814990837457480837142093422952175533700605367268147790679761817223246740588879968090636654142963102282079126534091227127404786072825991828106056385310440907898842051863932965341784318253655026758486017585884568743344861284312423966645927987795737707491120833525071132435939214038308112877574343134544323379498092148369462416411561540219735298418007180494664091616566236798807579756100048327085798568419856753100979526851938378428943209923871713340955808018532560840298220499489369726395743117120876375128368001809783873894302019490408903280259849251378856882788139461931865749108727801860284507118444801563302809903386514581961857415253790797095406093669205082849412264898580417206654409990833200719668469901106750905383752394148181243570859469154314630332516472931920276201007552077760008392239684290938595699808434720664954943101771924311915032167576576531199564196464257275064646625697085994164647736987550560433832428680325009034904362377609089837960255989836316332629232445073876310941535998439311219873129251486788474807432303929652571888141129830013755710925279256776027039294934217895322993341788422629008730425601205018404647446769107906517271542039584890695438032112625439546811626408622635533428077065047448354733296298974798594758031916643974222620610246969546783839114533706317628296001031494702718722291066502103289588430028354269711920259429944389069505460529007979159208045569722780394411807807945494939205979400139714615099240345297230285111314932067267423697327043356192775143487222424197631421443821998703850443988494916489276533296608385713947155894836686744172972339946179539505787192620298042033763986103496170826921854723774252235020908940975858651964984739606920340021177907254627168462647781794997276191975637167966788033546877284834190161847175034593683528139291352784456758376336588782418468431145782795317661318858802709970370253638471891126183178008331229532979968522840983914514142730303394364051177187372143683926198724608083811387932833001013926640995608903106483749026297332450971023387382211869954449527768455388227600677422463020672605612644023983649173149858970950089423920532095859615446682632761155467536877336247670588351181434653847221330621329099994046424773014036693463245868667960529245378836413298369679659816888794682863892907756623951379428795728022569648428454380108195295098683618111109253010043599877034664536915825375021960134258059131765568657416621686296089515935761280946174950798189006500523518164688898398155980909499512080566617973998829822848873158920836310212816357903591098967748248977284162526049335782356705097597421892211874559591993436563299629440900917791369829647405962377787032201842369071901320519745331914575057564701902969410231404381543463969597960147745788666094904566395258492733540736369862565965230342779783378499701286987970910245644885316726226105892401295672022502771271133983566277108366922028503591140572928607876044690404392145629428087126257081386260987729193982913752366058129507568327033276386762000613320057154174182617897962769621107914561078201433969693783626669706193866007552591475916959934962394809726945646819867657516793920908210110415138769122546559941038706487718319367252853478178258900649452372213774165966372126853414517627565663575059908127934065774719074103011194831157117062218168578179590238311022752276891905322936114474135877132849530799298577542663184360772261503142662773928499548913883357325054888374971031892261810072737243612606176592424095569023660655723318569703372635670301422817423713848608201145114535251369526950019014255604356000217090793652976662011533817683604865958626611754805341397658423650096864808402305600271741080558231341087523272815783315146866030479188271740991668116139564832224842475337298457458560703579782695262200833361479492890429401220544780164377123943881125761843597291332749872562705263550044418064040554594706026486375728293966702994323620243311368326210707713861338114513760293159106296268398759460647592560509721875767101239046750509407406955571771285379947162172386020743060325755322200479759801777794687061587098117940564916975581172466921454788508264471432766749329206715111691573550882812268621322199058600929380531699002453976405602284528076273344864126947971548229662543679781818758715411431677995099791756047061493037461490689390736036989922927294725634332456509283667682038838035465215017329025955254701838610273769779506777049149601038696579327262501222619752076204233571171114151508992573232414329365341518060679490354601948552229113437870271118488292818435234563125411993759920075768956320503909914007267889164041019952358412082978428985790996331332037413215954526406434615693371337324890132991083955830492532738221068170246300420276444081048436365598273687409675537587891070979406215321435045584584157813757812141300946349291005398027301100883476644952570400033325522556510191653733035171978298616041630791270270691570258397154887192335891529793142703454374514588621952374373013240193098161981389590862321039535749801799112981021702571362381654294467310872370943710931785111623582740738294540872051327792545853437421401394255355418509184382184979765069246922258375101944356967583975437398572913570219019182115541513468006803164284971137079410584567689965478669556535406879166804716994303301128674983518593128446850129188526142851169974980885785076736615067356694221897511152402352355401744439891697612598942063394607283207432693425870708347664122939200767487255219122369265751831245130047853270320023772467798481786043080441672496800773099934221454622571166842467316533487987936251777601523459064679096062057341793807681503464474638324389364492201298709686925490038775728511674240866386365925766171115156347940312718571196466691914710177527103884358524272450262120510457391168650620361533721788478202558875014047462693298622385328160071074572950661033084200909647396178660332007288002585883787463257532654520160202285240131724601548584223930297426681839969044984506709101990157703607416575687445652955769582543136497781083202828841350898028784832740199701881594128163875153892286437156171341640844707386898914052504539447043137174493428542473870548429660944704789525231787385969444920325722141028345293557188113865769959711030872973827171198880818405213411487915626616030047208728858703183343972508837841670628800258347121397144368412363668129635838813877669032412474311916546902284804353092308758211689605650090276800366577079097827381423724910162354143369539851332701905715973065004004113664282205753971051924139504063055062071523720500171835682166816462795690978698068031347170949082549008534455616924819706563603137374102760730870847477738941907017308974720643397537002211305003898675098338732774345316879758166374630896950053305052277531101914774061407538772890654521372059432695242834733578308501195722326169389833308888840652748201044003974775336358095129392523872929984043237958037471619612820198574273223228461384553321035969008102875583832456039580306429271887008474725789276952737244467477922771250820878825287605290630897409012579527440636367289513431698753842612319492111293046985383250348961374734412008713486185072912746506040620921499361395096741846278636338236352292948200926670632355804210598439703584548099920898332493792052726208104124500096513320181735892159232087512050565623539300497715363372943917820737923453097921424923567648148662252161794363798244824024287525268080515017092864997027681142668397512061361426761826748216358303169049549804437427734877694606778514809247761797262621276834108078079044240827828292849458343340234518594118051920630969121052104568451129564459302803427827468138997647386047840188297062825921052159826540430657712890369135379641297772560536103812346840742760939804373936304017280305765536657898399196855952173323328288511673958077457023058002398795391075005985035431525475167774027033454099428040135867362476711332797864628337044333151162383734331544098663684022410458132983848217755428075574392861016299545680048704056275793960365216798681979823127698761742268801279158920390898159550313285867659531682988254707098381671507585244760781226130352873826083295790153870201171872584950649401219598275778750690043163613060012231441274430469671381985012272157414404038532771231502992930726957125234915217396433502430269205528873321029993645509614253088429539578827158826563089394019997761373199791787343683238564859518467769608276528000754688375819470525318631559726414057661103428316102325851776174778563320122802120693022777040042087227502433063046328796557498010738828156788081755868692433335369078664075972574962072774684567142267742490608358429423670615848685833559098109364668771816243012203839511522609706748930840736560940907569699418377370334508851927306226657410085875059085869449862016128421337256626899355611675295747146136037940421257274328864204345299961352150464509042368339296889607654502165647552835184465971536616630522260564608440424643491301160609963561413063379611902935691921640842263537591795253721256864461336855276576568558622624415856914033218367070783452763095060729952518185459315141604553230903547833148530304111966594706710627288345407187260738776435277110768762772806283703330808543755308848548390936222412854032506974545948101854486300568330836166102608894392671862953802832822543994563677709798593795174792617595683510443231188563783332776555432408755846710627741356311709416930615871491146296803384008346826529863524785612073337706696613642322477260813567214401781705801866345859037995473972788967179394703659741969728839410932577690542991538852072380089784306869484664592701645741331135726789754221445280837898506355202071183693772525404691509133322485089714989929168915677852402595992895435552884601682131576154471864852530653020161926508176617915016539829047937328860088631855254293440385402202424990416279822345884067810256405505963123935321334911456046429041388429231627806143667027321197317347322685126286330651209408513745429368248261835319672753420631973802706330583904186765725837904925330352585327837525419518599490928253285484692232272965750024922300993383346529892683628441178918170225859851568090249164418690444708852851271844436833694070258357139103867329295741838373949896267833683864587012110340373846685072571923517342407752750748534134356400556473647418632992887405593957571329267830067298350478528641323549417158477448707954096455182541644642505437071908426258883275290467913673789717382443595329079691477808913304304568314630554145053147444068452417810651786639587558235738097747000551132922180433455703093371153192517694374045449906132007947737355643223965661213734690902680529152503428939132017184295768644825278937696682545756321975826374612088299294928188087912127138328365498511399111412015911756097390240332888224103911976601114754445648787387639563822000084219265996222341572246199670716690959278672855718774969989121205157588064335538201911103203867459689619132818029056464374826310506813488356194992738831601917730840742411488277406084789420917274470897152110206430614748540039154809065093123570293614039715842826059031977223794591639064691632438971106801212867767686302398201549887900304679462448135315874462521371766075035556391261289061495267441156011857466701921347576397113862687855993291755793852948480710070198334409540161680471035783088124750575792281682965333420889111397284000341230126281305022240109297523666721083984067400500574534352783753293094912084071228408022213039835732627597706016948825569673234145191309819815867761184474417473791976897312792305539702293014352294217173361757082190570760210229911006816166436340154060465541767006574228684967548408282129373129962929846994685023747093984988095618336371631865712377456366309661237772583063084213550631925174333376593374938245470595066448176208351209343911320519291735865620640977157933323341827026294730015186933568532367893814966167333817318114520616154959847070495211272520971089491724779921575765206506779638265403775730914844040453497161233918657665442790585649376412733044696356782372176875498755745156387602115025630899894560480436840591626123645530149127197902845057589122877010586999610788421716191030896981785646638536629406715439724557286338877640366545683369075628389796034531305897412684721050573668490358447061578310389794336173477662884453973931223450392420291582520348662592743849060391885565756688559945144845576029308912730000937759265925204395149306072698964365164172324260101525295187616333871200018220793339078834395819077807367044542430628037008921629254792093813609714184263791691787894603608535902819440800545420918277662534025353734063915531359139746064926451969723782274998514599362508192232182436620952412033028676580782602928974384223806344146443590958948352997117647705244266943775842467541531374984444293232808609286220065045320452004249210606258957726826172383105699564169876278018266232813121029901336895529507045176141322947315919888352600711603590812865349546766788544993265660023741479720529406755438598017301325133077647414321516458373624149996771318790715721014735666809796139046778492699388302638602122965334275748509773871864356458156543699496632704454069166571141224600071076928498633302978498271309416181365175402803987638389774787907053799965994439480139373251303145725363128129698506915121132506379161739506238098364105582974923094187081509212105221173706819368806896369293337860678141904069793386868488674258514885229957746581186974050626103434644287845528645085844849501763659711157130312539086252467851924421613053157866252815937662806063641342798335618595225658660612429796595820070453682738527116153235442484974992879754129240821312302801955269794563694406336242648177678417124157427514282063049706850420509123842953572936485244576853622835006968760960707511729557576450845481204266561665656902416710633788180989729824091381063367385262133274191462509775236538006537139873017611445548870387125762090898898502103276734782669459121873786030658137551766450911683734995307557444632410985740693216286442810895275538710400506229782146277777694813141233007260677311533123009620909067886044758559463701841940034526332279713794222193817702410287127224712711039831524553819611208578373033652285214492668383906832167998756411704038524489058733375490566634693088136462321439414417152997521273092578855344593870755490239432357768059206961111640601833126491120863474095602357725283208808615746819034760067981449923414394333971755407656163858727200207188992906250023277308716595256662763423954830464757534604951447259052994231449221161537580010940344522858382250057002078202692991120754300863492281548317122973440529221383394328866004332511268102067928050967579575181078781783644836779365269154681396854326250818519710085420590022027831270630209426146438085966932607892852108472219750749394534018982259322165577288870342269145765041948439166829372379486175446007678378686775905245581767386668792600128544101575002771899962496460210365096002360686797671691595730174860235790850953656918633268381086256496699600422377135596203770665087905814350828391679103616451289572896326529807258108670260128817524036703611813635985314531349869768873407364389829254187867950046199562389529829085098954942766307440379486368386093935316147470099521755162385538595337492920810118975441972189917695409187117761537373136050946770938422055039034168043993085389660790629206706160301858276028740911528381494386634864101448143091025973396100489990320537238717292494597014738546650826859237686096862177588780068132486349645457624745967499345463868535287104352961944532104173224401350927278170465245650727529728606976277523035253949321750917571517615602607971798164234059308583225641982941835806041123241004218926392525019077071593943965780430211539054708956688109303792217498348135165249281748119200102882633383543681427706786113895078729581121827656748094932988147800257810780515404824074758671978832020294814939854157429730807350548452860688487484777232906154826161721706508341691665622713778559657127274118783064386731304633963012113348199550628450919241297498287873200140666417657576668365265205252226828169661939543594530656260899132988320487662061389115065684827466609574755702804593710867293386823990471002213128452834252738300835411832174269526032330189192312966607725839947193663246221365021110038910251031879585427400878030390236095836993698206012012960360210974651606606082719084314646772633717556500660456497417044401017919930622336361170432821217224766802226595871627537343774082599779720963004545089440086911876980738902741633646773015388662807750741591989505139681408358735912547716953329815750558013960569720045163542099536087443822004661034481646571700335941881918608290471745122538184311995157906952495463298487154753831107667241190296520573842015692798130486160735472442537621781325456787624859306025361246611546215521629314606070639154512304489433614099868623346305012184136058570875650111831128622511010909974244044711112471715177872533101816117826588308874703365854989806296262154306533838527179339934999824925111135920257948840472154459333329238231366766328202532167015634968119146008857445708950733867063493746059134965398362609351537735838006408657812875140841094024556935319146670660801157626685235694560339610273671071067235039346313295334217405580974260104527456546240616961995073685466660959383818209903449320616246179418284564387971029179593930167574642239156347659322581359746713344945256544546190390841713570919608960479787300855552360979829910086567642106764771688574849464439082402221543224947398451235185105806341021833122779053486007534727233728921116110875891467805546525829904914439312612741629877900756034578603305666323220236863237577965492808594834535467964867334726492108729296754249232772367481141208169476558910959521089124047650295656112290503461407824314975210268983789959770610970712468542021198556792872820267430289396026610853146407081560475664777793473691596230377350027871888424176619501640809029457375654696386312523679890024126510657866703326707110230184884917622356004533205479585352403878990724716374598004544672468657666888839418862206557890493256711030603215577523593020979348001630659549442698158814668678331760214044349740660949418827258919710529763281013155478623699450599578991334836414470465958870972808776514461331238893663238846522466061631839857713166063336615163876597295083254778722665937582811605945320473874289965431201474411071386811540823201020225331494690163881909781028013820012875438645551286686209936083621455908704712436528307769923617460252297684430541117157076576734208176070387936689234597436283270797060784193047247549259403163029490594426006212427033461288342669567707891652492192719757979109472490601009642380864709217362950111228164351302906492072689484856070707530045598338552428580571318393157319048112343125114499732838277724138203062375269927076519996040228849167123981253363133287057992333649319620004040876915927179153405452685912177093579780261438039543899821214453023832061698586803510409331019357677731382543456682954168634059783679688686184144715044686586386533016489926651448251314952366535154829556048110254389902783270227797672962485507606725279647084222745369164567268204064923848657459724354125786221399926911234157669454054245314872157068850510882256489354699821240664218481752999721704129800971759281128892197904976760383740069112360492176928977887596032860470061528967416265639510796448706328927189098511111637477115342855732159577421215491406745891136787138918992417881887504005356989612285615421163562796054630629969187066293485551853242447400339166282317592109936666167468561694811704103905132115712725023864414427322581389429737115158143709399282493430836526591187500948805509466266279078552885908586855784652838278347461898631898148950800574416838193679898634313867025315694460159902343423702059181251275587777384108812285085774741567736591097790958261037123341531502061832261688364460663434717625829614616248836062001626704032918653032680172728171978083516989031987064196624313707584654860080898811842714612624243212099548204677017987013082281224299168261785395458116331290622197625452983106274089700941188217611946070932040700246947657059225928665149617921682217697728040210901424715158395302615792929757475049825791471782018475895327249016255824926239282076377680532287638075571504189953544669363039092105690536181882348541353608971059179265798726446356070800205034571581464087422538442859518648194355749630169462784194999965143927040424505789522270554903488560031191356751314747180879179669716423553950322108389152081893246629566079827672080052298796831671481261703201983556495961859968604420993676819048129704628398056018039749607120790208586093446915775967056117887234911623869982469025722451009600023544495712583419645777187191243580130190602625031986586674494162335026097358717590607017668201354982932474872931544221713666132433828080037082068091864514591280690626048193663762357969700725513734488205686322090451336724961668324207717252828141482596734233954799391186616896110344262886789473987973310775854345402752433371205675482591601210000412691596012687577746595215249380399353913593684809036496636668083137281872186652541325409604210135629033807089312789686302202246197303215272012068661821654192505747213349431130543662968336098479700642177919170683936377614785203460422385553353910506183511864105950498326012924605802105489042578155453317155190610914229982766659624003266568914283854792509343160539451444414525942148026401024947305898877647519664438918776277476790362296711581667282888090815632930226063743484094158734198669392438025493754324369029001367895455423568991418310345088785157280455551917430127777871900148451079718214885534277781370276234088164887489166836415506398490387444685598688022121721059539583038432673295858127173652918772594253818883492140017711189567449381623898502444158763683991571175519571484599564140090849624801695487276479670085619175399042744926460524537952754190256591118751704638953969634690205238314746412892536637272923789006236702820880643238788062392857104110837709301557421145959529983770492269228778325266835304599686628614446018971151085064960909135127794077546840900998566023962976614739170016576096155398401003788283743215439292489219232585610626492072960130355817798513718609124417727367285993711748582322965212380901967167320932462984871906752552921790593854072428843089602581788013306432897273333300542202717679582247535267093424184625818538675216414164098351857198867431820290768596233350435602494711087298967110540519183637034106267684729642016833057666698681190549035632359775547544161748675624981789931836420359883190564192802921362214170529086948735603538100894171798776259981175274371297973929967437198100083397660192933451887108566430617545972045750601379582925817676257379720207241034362304625657129488293394616840583842592508700252653416018051283531002125424179044232177608311424925941882398618440352190462381677289506756387839810508511199094502993368052099257004722462459698263579799385940102957360457628625456731951082257355083872636675992743105305391882539462692002561925256760625649045952506760697179748896942615842064997396568423650423608800264133229236627266455960984470922513824701935134432935172106567603595629626463616350843052726174656063340561071080565801312131561329119456591604926864157890960090326889164518411856761692078229846277876416933099143203822640618740633023233591260196215060776719228780471670105835549223613499908501198749313550432851572358872811189186959456561818159724883360362954152361713272834669699719034725066784851393891750137718889807223538682232926347894105291608930597746154164799624589390093416549242583630103187667517632484724030526579421272544644985394028019301818458710944243839929158891594036141953020664433903503445924247110350582648314262569048577585668406402486946430764319155688624912901246750450208212339263789752749980155909931843982849414088892859983656226042252896027410975458154727365956689353185537116933047571542654425857132036379728521215026484244152988558532528875590357456300199514916904461606204688880051629088230138954138355848330117159537768846843424322354387983921367546667798961186320073367159616710020444923650298901341823030478964103594670710014686276293578776800838993511488223092316100342372224558281319327287718424242205740089079836956924771423620555620218031074958195164374545417528842681963464830489506760925879392241411831637350765824643103524562146104650143609871287548258327817308121219310588822161341437533950583124435517530166745188346824768971699923676788882607066931144885120841219324086247848521567635108139902918342944684740485120428485785369485025832316477106316360778662696654035463322715674203409061823072465750332979546176439685568016712153964700535799847227319622527935230181705928805130044344922767970315255490396330694010009358853056617782594765425159919162062898329862114934562235968359169880011031726319352188110725167472348369064239826731493971325552379159668251717538246710012066704484217628016577750531492640116983085956216843105458901946932799740937010932796070152099789841497136972485841087343910109498293827819926577278260727887707471581307658502926839066520439014920027888898977361835042191532023587576601541991884817111310252197768807654149663527027753888122345899947798769679104072273725658014002916560941107938707817570174712868386546728777920556020431811708293427715320158144837666512674592939909516974694741288473927021391014559631622597626014795735354438843494263736018777766747375966448241942891258053384725567510187914810867451346344503679641487915051292982436045694539114957747081677449658909405735614765532004405540709599955667263652914687426192362087812814373903780041011235226717068196072386844846609569111665517335925303677230729827178914259863242860540596491242844716876552625333771543986953112839929066896430062840053802005762559888694980920658087198236845032389485849512885988557562777483013885398570032966945175660332297284195869404659337611875122665671133843372977964886639845040641300400389876621252997614885833484406439153261339743873979541532541977347938073055908978357789434789383142391402864306058335605680292101056663926160008716705988789920338732753501085497737869117884707362251779013536620764036420034844214627824269704262727271343974548863423438373647179343191749749299062399275156053892536886900374637291258374755572810903313860186985260139752023292054160138660497358699013988657596923526400879333975725073942899668812912789671202359154375033457116778383713431663710295749343551570413491368704562481577485890363634210174093805146305579768909351466625204539624382849775182560517165610381096161222237766580777468190868501451054894424002183659673137375961857978242742348569869499721648389792411979872475630683268212541980439988754531998120639054295209730115052397053834558911235325599445766477146110450304121488261662643958006107634219248956818300150826644241356502360276196215246092022838428240481485074072332641284252915396671887293599977037169460420262756663779688222961287689206310967159026152230027357314803940499996537493732931324890305803657470231875839876489211986957706658132480033951421761789475477581393740991260019952027985043145865531580768251073017943315119702615546037084303084126790009128076046967997666084820791890917553088774266187054308592992517869096709200638922237274717647228305260395670834982482330136246138345387539944251997098382111548276241703223602702803659895231158066846434800259163197496057897479915722229227648599348416412841147465569281359068175579392515500204386105768662662266689736199376331640558713201543683776943356575895406489407986783209171927420815289366703610781528224158208146551683187180044750728504242504938109263678945995233824962623220977576498913211374652160565737643561024473370857962701792832699872135388698107436054206330523727523815570903469478632541655100413624656949837095516208669677938827202019950240403351360882561618056620719453895992179138782730084221177701618524088150648281030177224843551048311336814944166814078113623646817251373366416046325940031516885446401505413758783771976795588489182009893646362940898560620582484753610838584014478937217805026687237447181677275944564167757763452690721153170345859001708005571512608489694790320028678183755784619461166023884915494444178239097052165455485961734956640496711513814086134888482873164562394413455865657657170772458319032119677869524491550735279554328334140705205258049471190551693529989907509115479773493303466711682266597413859195539662012119281977904305555652256851261342671893760999766065158751663975416813889760822091990810584339337545600417959598450558241237864013050808396667246126621628753622813046946984171853686058980035828327313859853789867536295379938563457835811764520024710288341990655945014543579687532005238860460873065188042251817619572812283617922429045993032598004119208064569160054499802757116406695446163219090817853414084230556754270522535868817542143932794931175893513043283672401293091597133255441099131368717353180075949602074595314322761282767605942529810612094516834180061439923973135254833411577745776702241513139216368869501621398421058769587054038859372558551808952565539386021086080239147294355150160878842090209581528312458500781839725537463080247149496559149876532007160706296375375554570736538926276642789177470218031096428130014730831483491381396227872583854763877252617304297204140419370129670770803953267428688658425490806509316061395154114172130552017411900261310900347636606109544727355313031839907155409173516456794899027260225973424137027610677252342431279951653638490332066537926776482727747730846745802285221155076390456063415823514503190677873683516398431637332715796509746018048659193497011424914943703474659865030793148850853213459454459606082067000347400072096907927408848904266972868855373397119176234029877626244655536453559285254472165259450616205415754243151607451379852508126799347360165484328331902154070149791056689077957117595161131218614990436461684149030817864590367211619338570633510229028077402963223372904744118348691042857433772768426716626213164688695889957464527773006796968996658708546530628403285784145519605520484809525866418644022415583850105937113704732150073892688286570660687229076143573627587793582784190394141399302190144359555743979576116530748225187616473344360287769209974196649459766435556324150021506619863409155106495860542261723452025838530512510551098853438884346347730011688618921387614946733616965421780271557922518323235317846262140523662811269336580303596929576556020933603631800250509999469253838978450776998798181002162254310914341136123236022331197804146182257523807465412858176327304991514288216155815239735696987261830162069051107473333220574009194556102286028898132999978587649146679244215938601656251991255010429422898983764894485113476400770901312383142195761887237346943744191818962694933508581035857753022856370854116127338892647084335033315798802209425201965651508527374725329905561639174452301831662424831913620879452817066573062582837443742352277643158760251424385436524843842362422971491755705648788685437786146593883619296144132023457452694201957280849721495135850437058397352776767220517174207370808617228146907070709817963436508407132808034354375505727381547381437011309719854288415477235500832519549093072067535254553040236791398283578179443660169982724321214629005727779352020513967020101901644137616985068990816265068264402949463039688013318662335055828812671786845110784591481696695229379481150901820971859636675970354294981334929155102428385667895702604021088228056194075011826558543410648468383264507565288939926085976954704239142532388534301723205104198399143723124026994783101626912706539067964510320325006601101929604567296474662326768638114714395674855179116797910327332794950533508911752463608585923773230530405483575360112707623996029712021603637497040785131962359770852622080729670115911479761657898936822715434925759200146832166582842491253054948875944646508872760127912195540769796947398820715728234650428610321223270011264592963377869373111444124674923907468933970378188277012129358283511870846692784845134050855172247601105220089499207105845793627603619857294126819861025568238171175145050898601356717744316589887488765782704616876489461868358599354401224261253791317236861378291122279920259482016121085835113880617764790381964685515684577983512363334000826870393361692823883990625144459317379792200274234879717432784826262092986592369952636671480385641511047215611872965750761458028573183590216850854570126779279199475492568605912407891444124526964598778532125188087856217007116733382605473140780812201102745341500761815018293615734548110720266179933481853916320405239268393299436611665164772764065756973828747558465129427769868624234178925725476992176610720660358895415969293997220008625014708877794564196809386962978884505473723765819389098979067513970537240230884692674360137483459302596537765716750273140359880845909294766850346337879423871414899273007439481682440539044770752937439421931595608924799344062877069577943487378098853776383480765837577507466196228678137179027211453708047029155133502173383954946647404563145890612991363805430109565322381512009579871021215341516003807472449859268094685893719225263553788651903607968391324105036429253728654445189917023762254550456737331987303586260313989856481657545274412942418664808862771890959063979106093009709229246051162862762678994789940265510198538722282405140531242687893849154433633374943491670208113936089739201484440407108342022693731551302439491885727360687274212756573435458251388808850964314590716207995795024172728023978266026119371424880022050301039321623500726881340299737598278762775820087578803153436706268285722874907679860575623322466451382038467185232959718960463257597500728510240228164045026117027493560015904389119375410599221050734490510230038236823473505642717472541183712479084242722608193859222254649795668306210381231814643389465676716956742613398745111082871981038348894103562506523403310459610047548292491627187414343287817109588880532338220676260745255594667950419583474853127872334349956716520737144048297682950003939442973059210532763019735824848697396696130531832995398910897671328596956642080968344978480628012441090213834562763623725643491163461140400450736344124413314577501696858769298450600064633201287887191163026605666895519326992871154818712593094509014977499409558536771321967373372391526979696812454687289784502517328214511328724337299493017112141815538646179325708486798745868193219347744983412643785156985379001094593046469055934684322269755347768944700313266660591519683178307387680889729757205944425581536233046303384380253403706925221521120682136125120605098776075175818032366633282639251776152158523059570742544623977663100976950615195254611562094741040775044919557190450066149638462004520484743847304870822024402202827741713209500494461400567610031319178817049447884186720727500685584396995619761752794758585812931876549952966926124482146553362754051905139615293757373718071169091581889642334694596639613996413862888774672237848919399132773858915697002538846669371116222103772146593408755228319226348730880752414264828926626603417951547592321285812071550699392416248582715292829244415116805411006887270926839522683677313782310064460655516855354347935244286350698598384319816101607816126544225441230134703000831672502197789539946412923944834766116901169965172052835289363846943927484040519758875516191927730124800623391275737610504269397423911577326729896628061797489754748442933502798988145336895389506713287797831413138640359653568569517076863822363924086823057815430451865731866549199397735737520538465497619612831746568992281663070606186063846611082422770633522137906660763914243206276823254840601954546808392737344302408937671349833214668387299543147917870115482427838030230496218040930728416997950690978071773984932512716594480329394104517412776326234661982940095049124753625172127682185657240824260095651393764126763612083693017028468672838865472061537452223868157517561469832740257007714593025477658725790211277711864644850779515742464960368530998171746558806860565057946020213351476211550609606746459038156757709307994710966295549995730851078178945857047458330097137528187312319125006278032711424378752685724567137534225534028436805646360177201148255687719945434619562611223916206733840809985173099638665822584052977487631592490928400183480903469862820947347823615605433191985895529695355678801542092603586446126328182817861475105529857703408096640461059273247384753438978166035962853578296491298833260433268488175604599192000866998476734238225376625096863558630420473613821415430486960556838815296356201262668714372376517268549983704144916948675036770017894067341327466049709851611702584972416574744436271181548435719623711530259961657386157008381946826744415716968242625841108275284563090425637639557753754404111143121176951412261502279692442405534685293630755675196024687838039341584839704378559459616945245289133987751126766426326449779834203516663850471271646713705208318722666240421184284797272352759654606481916427106769400013952992869066895246434628868299476985490698521529414986710459745238779268825806024496552590127313203676567824479629476639138724113130722013319975389252884139336183768233735158428604175240939174748588735883320427552091903228924830283730744397383208831516515313816336083479447161041362312028172616607742837393636140478428581935473234466285727338379478923287855847879365100044917892207103899095653645591268636326245889045532497962979595776203174699660092067446143944970093806854324528866582082913595910607200924061241341002592870893574160326623093924522789333098420060349103331752869185571840784335919994241382598529169576655100231412599158409599273367289911026187949519278727666167397981771698205246284400920615820603266524504164908129632072154591588898974186895235172231759312712194290678891734746468448044332161088300063690676881329938052784653540682967326995632269367972725380672463143035752472461408217284968695714850495470560265842888667645274371324349598245249635292467884032158065816446387732234699002081401114329847514371165524734268280388126554075344932313643351711366024261901275902999571152273325785797844302909633477818365961787875165524681651586050017385222747439808327725814087662214827388885761776749974908115400285473798592597479311507634819018853108009913905931569297854852718084571568615827136751835779161824947975646267907917370120508126978886967057184243028153588435044423770110490750525575457067048340839923545176630972702359071260814927469089303426102500479588925251351945702876111576563281129166298123548971159529617926134673894304601583608053362070240911878442838728554896826443909930454756297825843648878635943010246283154715554861096205937994657687090054278663813175629397993986314165051184830438800549385277602126644648732231672942842678482345000872430382536338008247174169424094231013728529357108380439835488218958597761229027585964202877216577421417852876266412470538793054552917024014563605468989521631215446027384818050169333767751874122731161692215245460024813860473406849645488091252216916566146035712009417441324225846672281633088164654484129995901217748933539632129093878283657574977456838574663388933344748458064934165527499908701074004833337041316356852590417394701923293485987869374930115408523233547278146348610801067895220606739436959789909504483718799083799322374672537438049185877400977683616963392091256373368104231901749379102174258606198068523181307755492151713637882136773708034184188307131176962098359270516163083746607422707097628616817347012407023731515214188959484843655412660227055065674461593698769086144150873917273113083968057527985467131319630362421031752169194585261720798897418454394266416272838039412457588139041432494418765180958285532493509997181659639238052419242263358391218323171279838214306262271456106387724680830565664788096001734170186255975990412397635514302660306282224604654056631355613805660929586321478145238122240951867131345582831046568017497846458187827837982035740906869244985910018777955765233967714378795917439745354100864605313172760112392530132159793648208809693729881045309765581794784448855943978753402454808546682096350862319950756638227167972014479542190464658656430734353989277697047784580755012841963527055204440177379687372702586265647787607860956961134938619503470989075353738482796744626061851009210158779219058551912782728497815781817889616870753472073197109662919601076297335327890913718644892293697677954879549062786469080297282571229770613999853781060944812492408084383784477726752072460791179855800587099434323215180529244515250638321995579327265952737596251786293308553178564015844850033004068760673821353427020514288475921535307983114542670388560919596641499965657412491971421618659823543766742440041253523971009156547896699678358304174091000162011028658512723230075656070120832470756019213784417643665658933994437517543611965305461624710642526587547004072942336265788118594137130292609512351291573524438839251802573793274868423215300425086968792995467651076519058474138271323798528910699739275586147441998461955326053866878200737009050771078356603572541077542114479876391840752847058914549353997530249637429036354741812711156008499247784421213421203128701598797874108364855725400047580938335969815972765236185357721643610445883475303504051111663606682207788345036557640788025351286841139260741019889992140277929812950547118497105875086657238807442945793982240655577726836005557559851592812386140667542126436942206815591444657035689801607864046217474843496157596428575900197855884109266629238909886261006949684121382694309750536242017725020728074958587292426642990326352272164445831865491227330551230553977016430694691786666769510581269353165653715639224230757205319207466286215914952992387369012716531841251735578905970386303696899731816722359687189352969058015947768636808190170056155149529712666099686396618208307747276181144296778108378932287249509148452932698621224867357081023492982599633345282154135348003864144909511696947963598772611749076606411048386544777701359919455351903389923369850776969880041577332318474998648465607290590784513781549330590474871965159313476688108398292338473348600162116795796975474240089456387703195357245236643301353038550010922891353247734593691481064028977700788799077573218034496852351467722426464317347013316728632501752215164666718438236662490575542089455177596219399122752133985866175399237460453688955277354242423861332302292532295116830419238812045432521506542887034951660171998365198592454042104821461073268293431207548398348215097939663270007745118457684719684634584394225656131705313126764272713370631090003003933768055775546809171170294050400977408282187759784346805602036253191380753304503294457743459634906930679510220522271884319683232065181343564915649064715217825395476950208314041916316595418126764877143120978004066120740666199038057429640064138997438630775892677563388825934506090429665367351792876183213146794272264235220782253247202619353465610534281385466246397243332339007394413693992615182905843896613671878148332186928635578549444071653182797343490265243517138799244368965697566509342446785819108839696125477783714570385718857198651867392690812061793127309427283189453866218161267266175644152262990583145011038370555516544839955319292564669973098892940124726946714146759633374071230716572460052966121980448217982860494242257178608115380116976550077494384115720448511322438978936316593698433176201064742815616575725645625937768896945022987702457175887820711824563635038666490606378147680734854980707278340721426071547681024533975703756697751988681446155237672667742640319364386920355086214596541345615763673094347559671289004805846649458478064047334536413717717955465096167632339223550705174967291912153676222036835666244108306278293778363022248001379832638284772948983031176086639594698727213728288206577663433662651111327245279872910156993359960857231584513422984302140559316756891934955357240067479966902758474901816100520496417134798535779516659618303553140281869911259644357157512239852151566144404731003939667289588661394010315100950266737205626859057587049295081898030351097760689031423731294198291293994281443066439818985340073404062473666999119348599296089975590305603899523168381058690566357168439223043938078968278906845644131691381524559875902065048289644405183400269073880760155422530520811536414724240873834203813687220655061842705354595487750593451857915753595913738147867069402765347694566061658127295156604779458752720683208493953569524459977025970405087400154303630593468659792121823940009769548462112718176434122969613511910868428264934908345602586362979966990380753229339210585337293820631352556055655506547661089232665958454476480058273889088943306157108222041168721914083718151615446720018594307080374939750174461493688024534177611292195120992605223101026024604971071311500519000902581142602368660542253886453283204953060859256585449922036901832264904344324427469040345163043893288884640995148158589809830368829751811355298065793571774176565632094682287786851685609502811436869104023902565220864028766122612741163867941902064346410759546200398264070359370412886312632466255323410038643153338304410155772471292326828473053562901676080517765189765337710472521454748410334858326201823992484411580557957017850855511111154920629109662131292102998579966841529726918845153345613768103085415568034874098345306922623359511864651069993265696470291099883444914418664830630265594359087153963919054849471402996257626726432184713796209551602502463425387447471125570055022690058624037661769845519423918273983704089336835446551979957381136386631088840716721588835688253289494320889596633184836698747065743978527429572613557279187415500204657427528850598855150111803230415311721136526683429699338855131486302210342320228933791037140112197202013070696795612130564136508373216775318702724547377009208186799577564780227234245481605921970616965526633808305761195111657739662023504487936460126967541140576319400741958664143425207739244124608764730469771938260892132825107590815153906131747460604495640536676152106724648198717200924181741638656063018524901995468710067600336989681781595512254316313353876432627321788206973614683344959679851142399624810161803118711236616249384020261183213333388345208055986918068613043102752120819514207353461646179161689407171973882179614913999421560109466779757629122171270168891094666483826010152195879522110566799748705850536865221974966892425842154791074011817539961424510525430411479761310635378482990863024174050114762737347927606255707070709685903321823508300315161959909588425383732387106915680115057971757656384744666593535751100026199942456876739019908571739481785290868426909103076512741307280295499419012816008904067501068133469084292815444080027769977640945411675713317480078284277401170936645323126708102529441295329030983556566618934858201384869581005840620407547674227803936486695949578237736856045318198947492718757320058859782639786393033718745131986186934848555342121802695631320189494400879964641726959670078199653613321505408142309942464724865440621143662941773106499528826345720158200022230568882183461204398396663195685929425231214858222052783285030089774489765185525732097389387992159742480655922261132288394360761891641307068368241014619353405453023121019002248925614952247610307335553143423101227990138073764404531840916164828531746161486803535661033236842121217664431506031802523333702473811251834933069342901607518858001524028214131407342362220021405152335149602304629878259732873333473340964533498505715204316896033013337532105133211592665021095376417425470440609372712998865959317435066295387537492123626458635543587140581547966358114062815825511699078017318368587801606673194844578190038481781328308569603553923343910768285476018536672110720778330261990712439990898121363187857486118067583852187300061805750579816109971339678386122402633645724492282519268195429322697655718920762546645773577613848181226180852842665970981707765911711977521326867825322997610408101909586766083014552583682832690109516019709274553544349371888772097209314793177878533567948794758721150429501636787487477785894426938203609615862025978575461461288873398565917350729523872882184922410071974196064591712021760253600375053891632530100903426871231395895445403633965234095437735594245453003151755110581562660335110364238899476611924302951615204658007845715073616316879162012705573745724341293940466263807117798954396279960172426890832964861996441959864417384381381682806381675108883152593830626203031318756017130510733156518240679121326838726775743919172049906483426126116244348113892074841339069650374207468064116988352109924235516206490143195044757588662531267378047199190595385641346442282794038282230752014566005836284504384591665411646506849586185348244745463638348354985396487383358547405882113894056705605244453673521487599930893762827127932264571857367852647292629888500950175104865373200762366693462556682706834184184325448773167953096006339456755401865217632814543538584234097608882300649519306057961604822326672960256953317686167992384502456408820107927856974813459114083310467138723426048788171093900350218295507353404222780388175969297465333377351672022856983860569636052057567781426928287303873779008193339416881133671273148570813526622728698593332123286417826142227919303204150209719843028839480712424010120290001106826172563676927363740372036816950684086173582809753794493265818679963184917933223305933304352133595676431693282905402902161826990016671094901190263370811491366051221215688198329568465000755532324208570647279526303339442725851452528857177309625520091738817816808927955963243687728656700857148254462163267656825608779279141802983860631789841666956666779742864951303704754787999508116167881968667542525602037319140659971138083591234180304618772853669313916469669516389349891948087491235837287283499598466580274790924747758205963566962802274843947411464103312254794469504245823788656862244080355264348494471188024496389069818249921448405465077445936795465707085893192884975233598464872142325762776373909992704122133225984023260389785624152323915179455816552569498502718327097824122956448672780876602742053555100261272574972124087721774704704499272946982574691005956303682986047799446438921536885942971709790613850072872377263862286450830853540419659316995265436371742979256985607041185834270922192353897718015418691528390667100427240998903250445289620943734304327432092107753137950230373403016107062241360755140484161720118895642429960452126349282093226291594752537646580888452353811361256602916239626703351478798784414074160897677827055601070816660053257109689490654400612393837497422211028495553935792452282891444653779141132440882838668280653391545123838901045980747202444635238098929347475822173912621134370480162926949536089569878877837557636360999840928776232704224189207886358232048880634384930263396166517844479640128831511546129014297210502741961237725777790091121062263966689981860317842264201395942755172089962099002826495841356142999226117199956832711729665882564141272758332955764693741801200550991175158947656530210854638202630429446840894542857669384552019448852231743994309939917495439060726960237126982218451761759091483414987054141752982598206809206827272242753725040464769013018618636619629893738160016236628253706918729403270592481155462119517053186373187379238173313743885620657654561874154977291154122268767684027666388529392242234461755259049583000662392383471061191687704240815360663430223753413044302817072280223653155519367718689149855225013307373611837432945031727739554857335488998897980565020638401732361612940147042756160789112462681079419575187512703076291367386172330226336927022442900904748400865778667270106687949849319790989856194535683793595583651567162455760732429563733237072441017570921072212356537862414504602363980380221897902156082588858660274381210155743203701927645163239309914576724385731732263325029757952156301114335201710046765544153090291561332547407963003848217730446460185621872804913597060988200576866974707463015258708346959025916242763382064792265566993919855156291291299114037706571089528826066742193402046952306270497139672933190635484391604604324037915687032546918343712117115292157680786253475219336769785953145432762223117589456698103169177874477989440848897549629143302116915005748086970212868339634740656368975461379176179620534716488707841027522874962162612672952745606701429471077195774898764762448338342513675660169314670688363765472924447541107036647225731262988104381468303535488750413635806693339445819500143354682592592020074571294863219373030592073585015355137736261540919592874489696815869663966857133358598946893360972906845314160351433066056400580699219326078305092969180889709170038800334190539226972884094291859384069932802123722050525705118788929099986593496863101526585225316833933024916273451403902024155807086094191390415024578203443511460452174322845438176392242640895961846893504569715165393298324063824384980872362130320564955011865187376757214395316801626047117203496742123982134652531656865378256097639409287900337179705536514160751210518379395395404595090449441881129386843522646103328666059846073555839465244998706630908295604413838212300951570741987912506718020105151827255363624402603193808870528417688411546019017143223621992423923574685208525142148963383071225350426764079356820594814106032102080473665116562199826318235940513375028700764586956447627276862838992332581769802381421183378586548574721180321032011633577663179016376091628310616942419461341189801397965223249201320849980747745892941581107658812948499986431824621997777864181828343509361369056414724342595749906243164188933214838841403297245696437883841283959877341666072971943682512217366363611940189990673043239641522719246109756801743199316981493572786072073329946785646933077957286401777250460264990680129303307353120148600754976333029799924654069643684089335709320643268716254078677431799785380996590705760357201598600357832075382729865766770878995326294979486498155052297547947484671860209727473186882178478437500809571123179269603043698440558771538000185904094288258085597471024119639852975515925833478712382308822516676119471883848904767784122837664077944195732948776468333509310612595165706707362305929384365234512110318286702964278028784395443201375882507386884751114837668297509808088915210288178282960142254950378108843445439355322486995661617476714857280293393417566479507733421739934183630610473509530625615254722636482929564004113815048007607306558712267945149880208049390687331573449849093367214826253352571032165627985123326259628217377652649573225782469992917270371950428131469678747035575675297004451151379037769308900870670068212284139510285548690917477770657295258774804755523740016799605400686740809204161601817530181610814635057447876766983026499555125375024839994551702451117768360663364967828789046733035899952250151308382571985368826712640987584671230134291595231573477353403973197946931312053426024707419032491085546613342929420690473424823212998631266602803030693702432365599568698877441226257893757082253239571156280965144929920799404859812700039979240980532628806231857166994615924518566926726857408798436851876785961133420834626275709670254194828981481724667212731690560507198513326038424725604221675811390253830129231860517991899130876555983120657004289158628179132651610665563898890852150260775204457669751672318573664121108312840064516102259085013705227860116242261159382444270041940980011266375939893690714724574457993751585549799909923048315562478147220024764061792131884881191937170627799976242951977090455548833719842263972097023076380531185056626744276223283453802841986448751344243303022783654108538975987715243627852437970670042434818694974563851320411654836912197285656556761832633844046806431484519458306751859185206305010180794946428713318798233196571405581882501459474404606828124573175697655561327605948775795545571329335515899762806904011608232237375836903094046092575951241213403009196546504177612991132916974086823687595198960045430137808873620064085403181072340605484591807906671061573262710287445198333845197863244085519984002270849176337752647374079452680673011346931186413013130622492800113670128323182061698943872463825808308888642990807921513868831607194813222519772917958008075252624039090458904076559121042035000121244222540330721931918079984811927248838020529528707537929438876810286724832905325887234554782525356723308438119005064309533122173895502147533783717011585572582618990825387345710409937391324349181721629126898320591420547408890827429463602681324049930952697042805657451561203284943053234418103492961356845022202614623482004324835541473215517462828060332492223295419688896983032756215584320557984173898608777503239646980488793776409058392674508508202563297654085600914023239785721567508533436148739364027294049918207608768184642657656754752561990957331783664532301520893912550324469359514436437938197015625993577042927288811141060421461052796417901114623667111725005495345530826684923793831714252261087530451967111439697733925443791213854125645346815626624139395840200187104395214068238478534942850007843230455129252151386203440065837169747870061740747042571299504892224740837148657480730935968149647217737441747226616686031910065493266604762806184124043994161946246064456417076795484015643080795584734053692216521926561596823565282248221445873043083493598769279421485314025598088851757024645302561736918631523392053968870189957034120044588628914667566484807140938724887769983389261901853376265047025511139508835253907960470938679988840226067006022140361338770942728421911070099584061484656048000404279304904085442463100027004113471373726427805287702373406914788694900625492820068297598657242961478827333910142187407628786066892373492491042620929745432980160824526140007113248170745335762352322507809695247742733961795997919555919710794051218774216221800177830790562041346263281801792912796392884891023991113895745663204306690755811659168427370089980709104452692330083854855442681626478331692172006171389670839256988468058383932130009559903247139787496824453465744948897145138362514656798072165402108356770509496812908003340980482536293633826524862661178853272850303125007103235011315998433715598956392963658436692486662894324972816983655434008339959240111469839727647813286332333192430398295893222343529891547301105242347888744777973291206554806757594774066879148388873548413340776742431423638120895923479265701472160271546701578561804828904492366294586923153436872108977452576533457131881773645543878664769113083290773885658748441152754075779158132745712801186189347635564240505396608550157085815280836687696906209354646460755656589929197883647139595130157869871638189858322767271414080954479500501435760022654164934117155878117207454451975758021810817300264780955382042231504096191690398497695375574481722364805877629924766523917561112554444492354017693509232880535903757243212409578658403968210288825565875668997985373957874399941546791886695483037076740902831184862628374153100785619599258724310703804035588022822826177818050726510184286190980656576929797176037791867696855781299615396117246345287407643579934971746852869865481939209413114740429496534408877543962897997175253715798206035146210464580926820304908418037086580468316960140047558281401947342018620401832424306161150132228441971820666872695793405090347040110392474110291549154566825405213983537851969294868297777992699718231781764311148872429402305714608399333442385583267172266550753979861656092375729555124286255863790754802506815177753596617455909089298582687055061038222600238636549818848410622122863773202688586111132992609330291327437175968914749191464018402531134235027353315323042099002980436361953887454492112796331176269924004627607208913904794818533217803411762099132607878194107907620813685449345209295112643969131038710545225636970745839970825210390835612381106745287281099742228522481462142876804483201628403244888797559955289185537326252724063001957594033480598774797881846135072681384990834708728412236958456925458153706739220437053840132482893413257183613383451512256196093570437566540206767160797970354649035393503617933493590342077082892548376604233313851861217038172678398704565429101217469945221896929106446052079220174899409161947717288794753068483121223629854826335005198586083954182939088327197243406575000821688118878128697115938042467164123275564432978412048991800521387622648303512093075134255687973315643208274874209690581148309204842706649910144836286890104957204656539373236630316582878317032995851031462928747155560375808104204738587250304988497561336393175607243693528011637245650835004494818761816491080729325602849162501876307388702398895678973156030655691397309052414001971054389788939694704808755176491524209595766963671465968681157481840614988712720411972881625866097615573678599656711198044277427113056113141642590360034463221089835907712606148594508949087075215808757446218838375291505049190481796173574345007971607858802449607992972128581122075447324206780497875338413515042662086971209634971556681533833050082877103813981807265127005461743336940410232624115815309949168368307728512485198980012409293495705966962356506851156434475921411489578598279364339771307289647631198363493514218015698567788396536242244041434902388105650683588032867434126487315922523380946589395845235767879287528761657350965378112698062255579097459567988123976042983175682520813943998572778958882890084084991249158670877546740313318613468267019790814907442080818239611137808422682019409519507075413621655226378765822884931564448131610419140012910466443688217732715065305559795524404442747756329856162275613247368907556526373414934775436158386195921975011240723743926894640165667185528443286320119760733838088715293374652828864104618231872325461831630272769982269257126570961342897762548932986311604093912613034001653814632842668377140506949216370159601117607585126209326304754833451080056332324050000589062364735819533291294048718280898993146235980169320594128387766906944173999888134634245609878203807203412840939691029050168198381381701983502372603211878958327145805140809083720986281876718586501784606377346654384703894652856269185426071900427463391062007745143274279275120397862953713220371278114522524524290073799268786530224663647993059900417734085439268059025836791071096638184703087105500165266736912492563450760370838922666274968292781141759313386495714186616501135062011927225488282973162581732347404595837939684094008928309396305098273574807687401761488845247235208624417878418955695204270517392444298462689237011874120055512979463401660983463063955533118458579446776586323546263253411176228947421725441498587074593204916110124654452012188083156417236155981323345510743087879795778047441029659705167541069074706558963738955589391504663789592930857278701450509728668785559636377730596415346453422618553642557068216095975965845241305519369498375174735026550877764328156035454311419774514543350805251445413179302901709741876375453922405701548672812246838252110555288407552672182277557728925314862297938375021703719835612205071492776768398747047649216581202094482155447257767652139832262318134857638998878878969275123187734316818767931017140766445740011957215476037405455130475181479864528535242781649948538440908803463422906796430695077688345699950688134778587467634665144846459269265168434918838711764695943755001158598986913562212325063175228020158249287421253741390222605248587561044301358489294481527685071839022214641724323482312458172906300557881602068603326688313569550146008839164054743116427700215740751900999129700904868879499527727507876607330809674619092415031192130586461200654623678208591374370916728170856270010720749364510072022807161153780413617808534530343140210029446787509263527914067195066229041220046897642497144345403625175486942437027378593157579940983979308340927952915680713109871617043692569297492208896682758119329051795277116297194429871700991288140444484609928750254409502668647206107404412183940471408559731250311630655706507890469174830223018423854950865016609071289114522150317390570922905104836525682447584866889513543998654984710071486355215920334373536728527654080974397135672600057855941719639600599592823432485628587956855453130821459464498631014606425513284999028367106730711493086627498321724240204349959303394641918490618210070903108830687659629481394775353087793296941087020893645179445621718170728067363718456582621558216977147767590162910986645443322437199394947026859416102310718238707148098552874454195086416066061579356649198280700492781634214073903248082362312629839011318892515527011336228544272017199744716719591222167250693653231352347769262948196919802619094677451807865686888673456269597291334986744971560504020079341648319382517722100574548462695666960034308307790321129485695886712396293642940079038494055890648827560932003526008823615249456331491164643154647349823946571012927944476335355746249182003040260230263806368687417315898037157283731719444918861592949373747519266854808223757748023796728419374655721292331967204294606639102671029303210383594935507514629301688502625849085808507085381820334948608187561612062797010913925775266914308045537592294047220364137229928536052001406832762148790562605671169805275796747255973636418320732534004025232284184653689770343613411901877514917304476142531212302725577063612624305550296021972533014331682651402226867755163340041626577249681475447001937784922679716405257074036090188506688431681530087989834886223064520272826981497401177431483884211286725927217477990735686341701730275944807576707299984486007172649386961901338340019314578431812254801259928553718118743532218615450245012325190193155589003297838842603603022935513976807248844744443602629491833107341135830262018289387206396771749485006953187562305838176979299977098056168835567142013780742340250550335339539986842787161052924607503316842021239041570353767411583325448171187573444130873847809096483936691718379713493165498764442379903748330005850043404704655506595653139901778533325998730341149119268817056543428362469008903829013123312732843102632570089687688302929090745088355465653929268252828747613582844470157761167938632810620462930746351168084389236647852033590148206438358744828998897910702925739558670328869207605744687539737440110108072130172003889002657096677257224652387318245566881080540063852843834406631475998036139381724401393869839449879019214139200737449821489846417716515422299129688446016282896224431689848971390151156827706822719683626648326930395681658069061004533952070924987399309742405510174783031122098440091212605624855452004155265943631390867581179716216863961396530927483110225435448132025277059963232416831508250815376310763168561969238706578768208765125226347668335634516044429908483456944038102593799000380250959458130620782815868187283160444162084198016886186662313578496925252197423207949230191583180776202162968400050269855869237161934299974738790017547672668084291141315062835645668753586010023062615316026103948082604520936964834693761435901231027788383893821438225355814019135682049941623481553100128995561974944384679383850952120670775762071212628315065980291922272541747576011641143858816621929404207461950495807727514915402054921121496013943069270149748247829812934961662721778783027089401868563478886957658328267670497118116775710620520629247750177558423938504620321774836524850472377928659453329446710420499754547813321149955035628116741264692054573051433036338573123596211655715740758966646358537919873918945106742978165100436454589096037711020337202278837954838684248629407676227744602799211234967364366709361877160561309719680079330093516460999286805839552251626141111387450239166466937208261776679887565972832537621482121792403461778094565611389039981800840784614478785385373332140356118503783210964227063658792542719914100394412627254879519769406602864888670701746492833146495098450440529653640806855996607720303621660946364842838026783066891617459555850934057733303488883949551918440726241412970175881274729065622064566471673157108343019125652992389507008858039111750249037797045526942175669220300896486040625523551188791701563142806455586250585769054509359386700566956625555396858502887545805541224190239969985160606925982748099701738313499756610721215706861193460566840012934406637128200926529011896894694415103999547602951081256876771648060638484455598443298512096433852764777684231905257012755651549810257505718812804134404009825800316300009263749053659136817192948928525745344893521589966331588049215576525875211576015402627703511097068838184616292804195967115020399134521930815693248310629774022297566286617786305411095475008326517907263235174581433654126588907806667558685125304181430177957002337294650075788005532736214482749381241338616601633706332809128445823683522028051029463958654275035825458456866969774008739532308058155770505425403488700640407861180448441486723598715205529423717307558777865042692066112760464921740600889044381020802195670631459764888141028877303962109113908494138390070428464401741179046210253125226492399335331129611312951529135374900707150879873135900912086673144587690527455348338766657147931415277027068922870291570973874183486247519181891698657671060291928343814316895143286644716773759189423341286123670825171991117022302403099653155228902865217155308077145502210089100003162894253880013158004549570631792751586997074913989600509290553840769717243042945925680168765798126830334954548800641735494907520368086426216107499973625561509498711228850870991287356809623575158679206190396068898877276346258634298837396000284137913255411982084356826631497801716507921519005890213198982188779890547496017525970477404713133846410956935772497634375726697048390655617117304202167957330345389778058066611575390459981767381572320259811209025628789446428913930343786546437031824256176112490883404994482726864661044288308466305830698896297191886782438810332080451409437385508550790180102634031340514259927416052575761866535727501478510269623423046096513982369192884785363819198884445569870178166137132271321351563391543647058730176077954899147692902018407311480673611358026796359302040071180232219836186830188650545913553741617174416613840973005659757478768300786576368505114960723906508308518286866273518064189946785390196026549530755587146600689353883596615466496284041801625683193659670598261988499766073520016679322480372794791396681680785120693646518198550382751006470885117224668868558867023369199293754006048669265709702378912824756067470582833695382985789197461178139752202442560470127085961916166830568659930502078157680928975400547828650221935533936836450494121816462651939186652852312619114066603413504886540758983996288382749310497099184292100502335047300498179534384684420925163894076972705727369589465005442020654463829283245759032665022788588250719880487205799215496336616366385897420399083633378519225729739831514789455340255321238781885491871437723265263413142760601627845825547633618147094782248710371500991204036544382191887177941869487176116789131243603389831127125941784415348930755754956687649924707537296466090441440203497324429485953793953067185635149642845832367315347471779981855083222822860080559649133596720981115151992246123740743051132777096643796439135652882567254701129597373726760918426817460467044509014428252954657086063407196424453502566197849099709711599495421427805639968410467967944863646504714158194137897199872605848070493744216324146354249285149481984342995926497447483221509092062322938451429085775871672514519043275029112390517356804063749809921407014490376682314935033744135942947182577951203340514172510173734406935576011230384123787749259133758681338399042848429258360581804695514808023240812342232384560794681085220831598353352014291497391144596591699873750501706052864394083704392641165801090100068062866945354902455600543353642985079324080914786029044465618459344209061215861990648712882379092956455259894921436649290851920151802106815049800281925325978408988148114451920551516156195071458023598103414072482295978597078465987368632932198394696151562556764543956419924480059117585097707991951768996892370893469107792206172471493965909585074166252044679424291141281472884159907556930417062761581134773154689263061868574200099284509942820186177999783028091913673932379103274682234703191093065495048668408047360661019003327784304244535380361650317804900335724220233604263100011885587752583845675139806153894128362574468447687227283185803067005482404053076328692021509684790480713237630913546440956890425415133655408145592427136807798509335761108901445097003783442165229469231250376383623379852657792057856360682450564846470482280309648854882198701816948106742020563147348809261684829695694987759837675568978558942070423625173830943243323085698151776170219342134460567956890196703779428712271765896775081217888821402199739376680013660216877690463733365407517783577139180970802733233335053798836120928603285620106577543830480282137341647524496899432984584489557949924710986831592266390357404660874702047889142346218361395979323591752549236037959324188938191627650326141093491432919822449374583861480892022248880001287447382640557950520441018457365598717037040911746879722657033103684637111692866343133753251089653411534724482955328217204858847263174542437107656156460607371048730018935061013799300684754368538195563266120966325423012078973014653336681222465767866007825131913274047274606656034188911959650404637477677271208974005540110457519623273959050058009918644001499647374928607236023927824551519562883651695014774135860580203169028994456474170678164412868766022332643053890938609486021107240191697250145720373150605534307574779188724956279174505803552516197780825296321527744360250681916379059129684977162923076787589131788983738389494787631962304151857418531715474760523952678581501357370459545361619570991399009402438696113022881772355933033233979595817678261096450361311807552715001947202664194799587747037330267168958079280896297925540379177655961155483756265372885849405096938766095195923124192729337160091402801686194672697979565762056696154395917987458248886316882672394922815501184732375078832894766240994286132826725773501102148761830238809419738436974345067608645816413521292726775062641459706512098015600604611532569205141189014047859889584129147307712001058500314837550154489638867576705096545977045557695445419629070998797717636521648541257613913302846107132468006574700387732743103445716405396656844162347493268150508191703732350369751916319531736492093820800928005053821738051957029627964954659593347645546106577716465782185550913463210090357737936201572834554061081424907440126210686167437613624612596658817923355247824655341597788521114899343329893905340234031459534254749365826999946576002961846453025463307946576283043111436275514279961042076054790175046231845684752995075878102687341846668725940939180502894910008192745431180831403332797829377316747161391959511474669188997515050982833700162606531118743743998689975362871517326660762398419810205014267179348994151104369487078794783850922504011006416620560983164889374296680851512498172027363585557239123144706009916255953839923933529671217428901455829561637552862990536259098552735214915318515545338559625282521301225867383420035198453906694203296335342470716209609396022754051032866649343422175931485133078260205904092799395723053930189929134056158972460191536271481797048395138623580664907842481068741156457483294559299494230937290243422331624138970729358752725631109141106803248416705874775047857649671874624647779912979638077279411479414204860565177670087299672442764634838002626175858274131564188138203027607564190583259642885966582927044184862839254235580653823747136365175015178288730976003486081621979474469876929178993401988797696944062116229357655492422616027413339866972411535119934418042692230353251102345659537503111874801596771678946674774743899540260137247682344818949648862032042897010879261895354001443189631598185315962162973788363438809460867076233200846650977678961043551732455988905695124102115443314079702529870489391480118127593658340179981373643506020473916109478152439235073151927224428010460664749052492007032466554283645002371790035826065446642167017661265214496171385322632805429675834659875630190001787570236786814173766459473218978133245172448071463576387177641383947674972992774337456219148563865478260551939284504906915188241094582078611749864253644498350521541558899664426016818177780149881970122590244474235634054076319830202591468868988168880180107331791768392130536279134865561647598240221078973211144426977806360542906058449900353953697926237843033440002264374313795839033008262911156431418876430294690747583903592921470390637433573954944354466432912177025552445342111076718967043071254899744295038798695685837049440403832693039365131976982957572459640877034928618587473375730593248837380661109092217048593382654477609548526452347180861324663557984098190410868095010237050465443588661016079631233403713792675735130581266876852702385531679496275936647398156408337148807781199320268384328753024420345446609791889932281231436916082760475412403807579140422316371099821811128948759857465931621040962046920249013953887471400253384164997655410640761653855148837720680516451135260198055607665059790463959790740463987182942889486963359419577390329675958216730045248673751443949373176895574355996960210870279900756070643051676326021098050689825969169654097237756422334418981282528749091285439474067896771904184335108257806699508669773310211907590042243812130869097257084716882231192457167056442018293385773912929766348541906446656999984143220006923434714416898980498684108762721876389700310640368779474410280283755692154413174552756238477717971674212601212491248981431358907849989323889375227934862677089883012183562532340576017957833411444019509159126779351622833973492991175916186276878779586873789226642612564139285875801019093954498231088678220818554276515572753039249580074024795347357863849215115041841889501156694427223843419731369780410755654828852787445093825135047042676142880069872654846572064462381032076512530503998192050760444435382573608423389623221518772623847307265197930210455761399337605966430666759138476495085089215990287785862589639028362397436562489634367801595467425703706829589840970015934234807135207909660998942937342303312291451926200520767687753350703369590090700430553515621629241491268943664187948018270489963129191783535127712657941784653911337083344623319819209744726643657978835203373845067070439797911145113606006041595604280628153221351087866536433944391452341861836503043000011995777111100745757880305536116991718323776185345831808951056356157100362818154725356457455353062896609548112603621466848048741237092079377911886412212373387115488484163968249186302392731181987291340807298131267670340319938600026441942800833848464502538374576576008560071758164070388539695876916146940984191284587703383952306776108220144532302836596754260096250630787939588999530956063950470922833909365325761169694624398674429979427918500270412298591360368886339802607697840479957098183454229965567996633631941517275987024307425939436813614556068708035466743922283234263651816994171977824248421619983501502174386267579369295295069641716919045671879406534964418439186039209902723074846824356525753990915986756594388731296950982574491364104402202426628353040389616587800319791113165379102240197402697923785099521439220795181699223544728402890511584438038701181465256888263610060660266972183214078314392143347580695066247976020613211985820460706519993731225413784774535825859331139887330614942607845733911959505511131248569489277931377894668558647340034042950376840005312604869557130550742282539375688576591518761181816789463819443701452692810351979871125289406799908018648335915096803158561096584300954216346580588031264845865393080219949727636560295259778114372232172135435990600635512191624827917241478985211448398032229981173228462388692436643703177116198743732861049270491455550296948166106076595802572929365876783516527999265736290483106857320469346545818527714315439873140325236590235467637364320612003311576212740620039973301398693247262909779546768296993341564282974757353618495078101857789392858356005600121921337936293160018770779374454285662840581855675605636631490430637091207325240500402735456676528266114433122638074590882026591448328155374570453985481027120729717303201435082222976563976957841487336979050662327038344038431900028170383571176814537226573746400357760764586239315322532440223386993088699391894434534276858375817948395823897661603949301540308060172508709897729339537641735951171397462356849362798071843704591853064229021682937693600263917315682527467389523079232707020606410226244177386117855733804947775503755442302034810868764068909999302134950089006758335644449160797842369036488917636284531880557902527478811766179773146909730410682908849696993653813612375341164840375365136214296816348707203384750289244509073246963165190996370742743619277018869920238945501918378850074924407322860970167104191456392172171264216175987435529776353728079115605684192486279189131141081059327065235018739032156065790258239838714530583956170590006674333747345355089778892924661163381822375229796513991950943035266544299885523321922779285682491482223346967063985835880479603370232017334082582875061069379844635234163713241542538703806017156943401183367445737033775833067461105709990937619503202628700907107204517439602616146452476826488935267391401684364395175144313935337787388382719906551964340257224064630927476758721478239806866130475597566838936538644411461654122880780657914262756562445062329766413157696993994681278535056742775672116891929650250420389131654280034762614980763034569655909527245268265703149040265602573390896406121860627231239885863249420788507773677916739558187437533331747743867469064059415853546003847595509437393826281622585018905440739219568019360470319728619436975613897044925136030962252202993723684806790434184096091728814907797693541102930105280750830006274713498942167441707005628902092897568462444362107180596185643269534289475357616936870318762801012885585614612100524557682470869961978914180847777434429268760922677775722327781930395487615155397283404098109714474492930613356872698080273240735138857171697198461821740926228533515360727616191595208006349386748055009809965443837074463720779599908285841028792435060463751837481149541127332618660380856045441554253322102915464245379312979842921334044068399230715230869502980740416457970858016565548820676309101220845815625073095846137397416212505772229700031941188984087539912945622584635395919926660159223329842293801486877295114233904383809904959736839614327440974778393846722659081576330994638331518411867281887864722967774257754971933157955025612449549944265319119513939693044172922815634970362692300034674676035253122869015598136588346013681728696940087657798774450780595777176422055865765279396056279382498471455128705511287683559699155000916112005500746505194849369638528458539131722857432407484900920713224479435969277309277838221325216450203094636610278387444654481138687961592004804732322770443785439179778161314595992170476165091291204002411041136630563414387167378257398865608262252897154269613874188769453615416128055152885616864976729757788323892902989032223762949144130166506724570790662090470262141850864750646773910957914792876675036417962199843049925847768025401266552853946127102829876717502729373445940833491958334139921235407108586903247337189124089698322868064427962896391454460160722846384049612005589847631512717317735761592193746980470701323011781152893431212559416179428864893649422672227704159330202401833940912390889409907220553871694097047730668426191794795938432022929044766035414514280295611394802507845937922040842739687561814641497387861067563548312856039565414087572135684359428556436641303558747844366777906706925848415383309143724363112926140049558178263122725110136958599593127331141213413538732556868718799488442487030979582806321541519161148836816693642787952758633340647479363537551920315137386119133162160072994514025498507783164576574180561124516060467244942517935036938044457095163906170595473299294446126923549711682151550618913547081405090993050177769843496924699780577629925979747462732084984148362737776583561537162155123671315108218582653025409922639284048332769203840090223932706956247112315824448419890072765595020529281612109351440375498233663975608174927194825527326011085757621606906762913561117134356312723347960079295540030993889729337556157364382849585072316831051588281837451683097855982197524761881438484491679160610127768134614528796788435149183753962466808616651560656438417763168515464770285027913022272756785965031755891371522111860557535626240430621717241734697994277253213864825511346330365903398425732981300760770126197445728523523563077346054631019368242772484216673573018887773875770082138230445769411068159733855875988369625466048877820212258540902991860300674524178399948169800985082035283327448745062746061007020549931214107878957788099606722224470356750471114630395115500442322363073137898504835833722535086095385067677384554905611773989330902737449721607009941559650294061775751081636240026319108141704908726044528899173741044764388290193310571771240302790240781014071778392170412299758337956832298083468511178786059802948388100857130012336867911339430683667715975078953280509487398843331043709163994211180092070429552418498954622311826663165473716179668466563257771601042109053052416034962353353921702317902334286033102100441509485021827112551748526111785610075424283007666405090866733804557644227550508605631752970309022071028688235017506595534444938133339797481311100517565225841151945713398271675136125438897693520076753215822819652288555178784111351251741249488700090563903654992225380333409688863854971178214120836203885649095907078225415142432720566323490368829445065525408956370523799889196125978225426479862060002549625687838148741962735046291259489305428005005506288874003864172960027003778068831809815502334523620593027045697697233466221451206703438520953792596338950239460363137404806802765142047124580841421668965009565309895829668592693503223131835571628423748231376232327483031064087321869390838718212404005965742094887714419550514817459116382903401465806613749002080228665993415840305245466170101634889592103427735643438228514368186315029826304951816934538266689156869245670906168134924923972923756221423802691795515694814910916066588554922797767593696321175600330563801008196658698469339950355310084810127316864868128946489276990830977344803785402630077764381314777988180460049056543895506662428819315581022326084117580705265757014297007223336696239002532726810956717770859705698253191168890984678892839337418765659376586993950483194195491655791066242058570260282831944725178009977379582710881080804172921396118551055103294621573630677309909704272996872108033699221871039111202945394351023982655938480152783100400562564828672544040526286851952707809679636361073068242738070106961134708322823690267230674917408858480828739698308932822750105298453575754279403509669808564713963871166363736922122638348872705243087401554011578241210253343318107396255886347207911857817094105200888283281084940639085042007935414673537543222900773051450301953873117225852576175935130110081903949816580196852821710787136509167993817099121188333505450938583223147428859868506521976663847495721404932692559020617131241087702271249702842844267185756607108558536475333530197027132636803641196370588870390855571775822656641827318878807025704644280394674527183990287447986458768361754305085438424719828368115660154380507663405381452626637274906221953330421441153670157964074928802640300953572191342024555756415322655286082355234308455587511928129765409728113888570363648345617445119087651995195903620705930203568163963455982999810229079624400811118596744131385600532416180210931998563803918707808738328105276795293663600126799704875933843978090230713918656169586859654436237757729239181577533231312400995504135603136657604330972175234155572306609981402947495793309518717148617054024965661275240560844161209405665672891215268800376743924461820335633679695380482916805565097647157498668581160180853431299130233917514125200684480721966304087565820756265199755331898724266587242634333395106753206076618231370285168197926067807484093805346185520067153968382326943337720782490838724118285108933309145963846691638915865859552630889530636746561425264601575033970821697853010096780910991103217315479900226036492245259432581832782354668116330172313732575688191173676572835742655994815661893864070393756861640278251333785621264998542699133518257663415885628735501103346102675246980380223515293896813660411860840957024725461794749510274570697804162643708589655247398631760340812716899340377445613096530929341357234217820584180126157558987127092346117157481548609075479656093680444168944685310239175566018776911689954739544253228314650479519947327498169467271364363852143507957596700772649954430362363361970240281635865571192095319852606025836822502559622446335145701255374757230649424358445650033193242230167352218507497029116054976077704068232392836281061256788096432378091049036636028402340907630167254780926813152666063586064878576832673557063445463624516534409813727324086259364837825945523953644930376714873558317572402233472665995256050951866137038200951722579269429871094667697551698946326755393108605731962131400319006607706697159923631882964220036715279210794997632001182077415559445097347172347497504252547656798469754887680951261081027848488575063216034312087749384206828728939336625633949480671711768490258570673197055996502216143256585551988406513125777609545441211129000557308341356611071834605319418991097282633895907194124159603237677195550390705562805965749532143681899596096148255604815641595697571172306048832913232112295874458169090603904042984462622404521644288537642239051508787208322879226745408197471317893742503236239427748739715752422753058563924320757488298478077397938452853827366819071271493656169252954595711466938466832709692279266466551581175413604070541235057346563351273465894531228920435503912642564194387213512425301083906969474767520398174741878624326909631284800868781869414158584392421837301513302080388545693308749618578842431880875657644694399333927667512890671137386568925468970990740446281309483138158719903340394598932762822332674461587070226825405644647270782546634105889064716967681019200216598203891139624997404675648799289073635806538697255110716428306226295002574634363527019503083447121346494381167843265831078571144048914715925826326415760260350992519834438820146339116527270353728928334087314825044279453594751738891600639652132249901152451096663716002632513707394230880446471997060415366780485972191458686768264530231982514581547695800426631260209274872721770884757966008134354630526495244146340810420157032843412827200567394207319490293726029539577346144636118817416448347384772159248895860147816183980154370041740406955273723655070989442088136354346424877106302968353722653383920979068950972671843736159373125553918189910911236339603591394862279603397203484516423208704326012729789653844744575413864248865683239761425652929400636506787408577337891809545341720669202884421844066260851420938981437166096159460909379025898422973014261234100880247597373801060680049797863722190040422980290751344530831963785467146450235100069698611730828075912638391710343545399245089670092116607848624393825979244742948462408512111097924228817289706690432721852915942763271861457570599922356766660423863221483526457056650926965188760815462629319033431430526247517818192723058040668803031365192821400775660624058613244772148222722918428807861481233482860709692010467162790146510443062008341734570750497082705644419221004966972316672198414621687317303086757646820375754018760280500744436961088993325327347470892895607651989731094467408842311652524907711505065706648704832035090202688304637122268994692969873418295556696003874575597857584564998230118461183352133127547243860750377687902070246740676727044283359788690567865370062707427879165877814161334208016971213098179284217542353555748040045232677455411532795480171597807279396699663218614193590546303904314578930196984695327006202161278479423464243830480779032345550607219445668384118735087440045051001064118794472715640984802471223178956318165857036728605559158312758354214562744631999636277136480727905874506692289469967525071039305518089777242714600845205432163305325139754601071831463288832880951406313636326549364045451712290644939790625080463769030998443411353766011206960925582461199849589141939417031669496571615591030706249240040170963511962373091120401196229131603093091495260599315862330199191155579756401690726310962870132640330886239210185447200285170803797798751557658687081606201392731173621232022922263020908509510289595164174828879172837263191861369800120800419637406771926999352172921720081801838472731301750711963869968532286788561270283822971993723622502924451259539113164157134247780437950994368424574441630750855161166804625874858915083101273663358129140407686266607670143509596025948746810015307468851130853246925192518810096708045568466928769558958963825718540505844504933769781339758632138711713181276995054814924195724055917117371543449461274012612725355977084421096134082085692012621476161481709561683751751457714823045159187557299730547387063037494738752498196106136221741693711436226681639655838778411795174127941707666815828072533134994199159576827078777332166387858702051360754912509201636056312218397198954880078382983729809343073857392223029080572582897629984865620330415489849714948300366080769073372922064453938593034039034698341845871480565187358055485961270447846946338623944524177058681296144758104972660112216532372211031570698676966278752840893056821587747409828968928627400725752049798146175371457277870982148978509584659380772865226096243139697277216766376688554158490262926620744972115428855345694578487994659389227798162526475918633947155555725501141709431985115016020127534322092857777487701280421899715053335110662091621340248785727470081479512934984761884682409110390268864782931048542904269563751826085008486458211990124789620034751140900876551709479605326199008162760217495522391406534781587683039024685223555122053544763337675362563374200748942530675697426296825660410761177859505913579869943977949935123017307225820769549668901070080870520013872136394001967830800427062634272795823938953778605112668924320344250609341610908095083812560760562376652435243706703876849595876015801309698416435701203521797617530053812355610995887633423917261950140491092504829646870757656768893285397980041832514327798009675788101126081617022239141981038000229226997040288870244558611994073127904754746892620975124037170892459816497097812886042527457313465216067468427396537739566547030925791480059665089567695987842787899613906407630400281443284981875491182241691422113169220632242678206531478680412907584778663988722631848266500758649066758299520909075556122247327579546945987936939152673073129932719158024172473574115615013080113536284199858228017257914286754092182304965391162100351119409191720916349419105344068316954527668096203605383561840572087777768676124601553608950621153545863924189606972995574263361937464106064592430721306928373267396571172178744115729356964974332101887855979025744498402486126985588786804289798664049880025766704411427754623848655951176898293490025302183136099868299316072104790972379704020096074784050535270514159252929474836402323833478464326359909315041631125709645402854987267034815115318512286396568236650736845079222202989538977429367951460022485824572471412918503985320991811823901281085801817239236430913927025260171759184968478068525002418324939428761041159162757589940685962647343418449039828195426084684295997557917614843044385602692872223783402572137524254913784141411786310756123512158453302856504224696949571463755603347918627226884294290974653783838987651187008029727751158765960770423723973347692134544945326133339332432703993427099586308922605307928081732984679778932155375911396488112573863299452728997856054716239739144264421516290259818018966999212044173312602908986680533579158135218788941847795541371531695756555828554862812100115286187364677066579653396322179286636849786666006632049421937939481486373028431383197364832920873573595193039877924050536546067620147751007392456619282319602252202339352396901957039949683442601689747614894881723169578242067191150937116879148107807820089592803496842728536825819982404670824592653833894049291511709015029925015903550648029629101976842361509546370507328370366475738085644996252289231243032433308655889661220258510996900218376168967071297937477873762699095728520684567149945861762655296741923405991300320343105731826360918616341723686988544500554248823124422151466916404654247497751252353400803286025557381545632461217155556452972835487711404853541148752174228218344407311698701301488452126926803997364386595459163685140279720561878057817476083148450174389250989146476264376225486834901409775756569925099057893600647405144522545250943086983292042873515237642802481712030584144742999587807371104384947060472416762354655828540317264274850206706965669106551179260860067091028833090439065333095666319241618552122430763050470846839358272664608441497278815265119284601793044118393636237588764417671487910011855622353541710612594653862946901018703658314266154656697976550303430711866680117947205975713623589008246351790782688267301456950599602805908462575926746809891909847983766709183406067040976484072949528674263909753380355526026123567401385172157511938193522402543095843754607173702016059754062658168269932201238214407697574890334734399688843444246448935979554465731861490424483287877039417819885785178835259452909093064421641458806873755386644451130399139243112926436619075601589307959905177884393239500329378410023198120007318819047137468944476949246764948115819583910773830115604771122292068336681971499504881461186688697697326722247182478717785685622347134090113903694503579662803488653909515918242635198150384873018494133478420737599091063349261920519816319401070125934942759125693951240949748716397928923242631471227206876698187646170373682291052161386530420679943492478850012996680507269878063492155669334996078330288273504349716741124743947718923990104318910114016858087556161097507574844554094995817580265624463409123303789018206567467341324188830555659503795298157608648517153167736124150954004197472921578848147946248847106919012890447619977066909965364742925135822994007818893188319356311183092991083393835943479518436753626881099472985339122729781112660637564059821503221798111760096876244037847234077667397843720128046363829888252516317883441335251842838346974729577495323180973437351944189642883593545449109495303654069666889280732881021925159703779489612656086464262476938035018105974136927022164503961745009595671164948562558256345920839657424915211801541503776165488892249627898312274134511253641242293329314067403338391442956962991862456402438148964730727135558015809871528158515088058416066688755156131840009997001547553660568120268741857507750953582443276745857929994826324155885564555005693705092150959637102773002812746267802940854795359671698835338690043704543331559521136677343172605518946062539265681230941126141134636918864966377483538697246209543226661752548973434777291198940202058023050646276170438250204537153311907944145518690474679009077283008096596074835509820698074084973420441531986924597046916223056486417538389536526232235310338667321149982247726523545529937738090909860257342409840558567522690679917004259706868450383596883280947776642713519278156892021265275509179194251989620037918168656236675435277185076580461270226571405751366076904325647747455382018191308529276574543827387758174321315432286947935607709592279150350863968220790262796131573695238027971782412625060902444788187138300286387246208490767749866835874391069939429263445093388199117271068590798157555453260908956385970368495344095442556321701728912401405073146457700608381845043391304823027267161782163735004956843268960318080689796351197255132814695793809470413600364252306037629553371748533386180461711497239279693133269029060958902245774787352090801681487403804519947163492480476250646757019948913709579100671127158154144521814995583896245997381796971858557252548511332744419109681164453958627627031509855721947292303370893753696241312222963707544888142692502815170528981902495860841323899149276802926264169786431989664125258946941729182332988167169311879646111541455337959991709511374585330641731638508110823036597537403900289649815429109678031844195808460375015833149191382405423505029480277280942820254835829018430162662983582423838146878786142308803017594150697883109782137711919190389838499220876721525053420835298534435972810180341403299176375645903621509751550656596781395472293466668589007714588610257167124194105157374025074823256998437735254512215644348647320296270358896854692161480595506406975250950596021543418100480443071403722806457800806078674877959827190935521827935498525039518151782948219888426371120822696420139693883752512652136399310760637390240684900554708808132475391852916118830730322775425699376669812863478256561762406411094001094686639966828878781456839848758419139033731934031017507960686762063393759260289850407854766217784495178411965933544114024604440417418075141055208185283411557476967666214931743515066298455757628609069809110293315134673516830470223044799661548619905741646434196643722460344394266206768999217009429753838669070593140450975654657189510242461098446089589169443160651999259561452041122831423882970271483973333373043151777092229341357805992279689603303773141150383639351612815107592281573462458855191907377364737354011050213495042235214733424827601959407023536666514388348741685929110018759860538242552940362995662895360335199964160874281085792031348709870454745033966833897620833073497123883103914408110318934127749259218969366026530634857288431066759889960302848562177107387601798735139412165810046646639687442515156972660210847978065914134784027633560086673028175737463666120352552315032600776006132924397306220824313049074932401934311730855956597100858741468480085458395621614654381781969616742257681886050949120251955109224258253879923425398422352129109456363233166852778268951715293299418427205254743556526387547115251978430709722229776468447918679549047156656480492954830610742124478674195774878068267620717194471409114785913544847023278617044431450912194278921501821707856961162605280706642413398466096664524419401068608475565960567148452241271419580929549296084141161512019466138310886405883497709608375334117092427358588257181128980405842512549700705262545539834842892213111517374998525141383213605272768309699654801821779811671436790785305795234297080813165960229671002568526301039988116240007742627334702739450577134408306720849827314412545575753463045110848793737816401655716567902534644301500839470417129502698797695348895636127488910036893426449786215939607062272108107699269706762914121962116722328381981756349723517359259820300328741091838714067460133879879601225678636860796934936385485696702621387203597321487542937786280826885385517587959670339882438260237277611134402292744899309769249999016465479546506080649674478162236923337840444630098574157002960320491384601560064379784230459542043299472221944670951439884762527770568626827019383858624001910876044985734019356113098685203172436707918680982207075340150143020368881376467779497777864922118590870228847209920181761605268859365108296347053073469148029636576979519074507463298041264172707508920845704197745930577700127076704992304547424076347133402260105354595794015343382761709736966399290926824608439452688767196429060072405134119906613269221672613007537905143597636065678326070437824296778471729934955231935064049990509242048717073612457232111250148418108268951735743209229751828643610629186465918289350604188442083121442798879232418865150801905356983458439516162416361113538103823444273914743814773501208922152270327555697040731369381664662476559815089895819431073161857596543936844475082280639461496030424988319493224951201214763128999241356138385699751770758539312476761352480131626662268468486699779517876725827794161544676737746662286441708786338873633644273480666936560602783033734271142178572708463948902991369507736828809425179045967090449542899533069941095632425365200879599786600896248866742499674227016834541118466570926792104674844731063256570227971116799298656747992591725582726259039694564649104591362525735445820648610670180733766265270026641036807163768512486853599907031406667566585383031447690257276071326262531510917990463945342514990692435035372752392061889972050071194538791291753628127896233551558583718265929019495817456244752355781126436179000940263876642660639367769217523909903260865316544271278648691407096648086801488683840814138156851197480173862029530152159746839067571443250009246156720989875359758361199695627450660691122860200123679070898989441292341781850949365598540694122387048772034169818897152895313105718308183795461099399160535652314189194888058955749148129815805065116224457172143820237936036302458681583944433639652997898015573074942292774629864221885854918771456921817619980490620416215364071380452947790429651376302444110670337838722640994235074310219108778319072299255845331771890047260783426321781320032497117618857252371942264985087737687315415245847502797630553815815573987806574837042884561895296879028764790596631805120400439933104532159794166896798666074652635749459637028760413157887736627687102770034797309660615527943923948448909931899610730750684099494123056150399097151440127233842404271510613000057938807821723046333075040854453934133378330607306709853334380941843079414055101080193560102852544695649062295850496860299645973222421164989628659195586835094514953738287219826249578421788406438018725725494032505594197650105679404150823366703565752671289675209250386596657526560301278955215170060962571313527806674085644612250206770776583726456790022864575304478488028181072019107547045538897039415278168099470468899562748896920030922219597940389028810177597689244401845507332073256318867089508168647989349951681214090085148918019306962072349758128053066405504597766901291418754082277933121029296097094846308253662609946186954702163829834565316323268158371686454215236571717049512693888136178026516920790881922386214500133139663978829963300914402531913574608991344078224403230504800015579281844859255322398835681654993253193565973076451061707538037852576123024450030183770463973823735761449465952158605880063463420135785942885766714061377390033769053038575935852951400228207153681846391334804926623734986204746048559887692582344022341381446747795587451911430194445836823846605223612904863800724803478344590375833580790108793713223972706854609677657168792880518615149080579573862853670714128102598672331358626331638620008108124015186496359346601442146252844958799291288670183370073826670389303275885636987985305005293840526505969955796660771929038459139179284496967580592715402422068197513795341702656511398826142895482317336895318505485566043989945888150850257811515658805692097466717391852613486129877853084434066512834310692044844008744165814728322291751251324800206328837269748352964603501401790554646280283336001994509276828886310437839334565738980539076847501482724288515834555852490670654026156309123499655307538723048376404341241473141378948129263586802869750061592305269853755029569209039984389376985242976304139477172690312463630797383343737773757440668815866704897066574137694628075986653632222686616010001923097239574124951821438523881280905585285023187377690660555307594723192442281956711569269150164472143022303837549611029565652488885823102749869730812320291849708614804532708773917950838005553223525592292029948989752830073122348690265190601054502887372683304199508081578268643897999571793554364934600897886198410299499857157497708366726152111428114614941520974750917093368531905611148207450643070158218291309237993848125821173194914167573739081733115445583437901507643244431679990397049159611802207616719742360138841392955081128612083025674299175373870341611773518879938763447404089989666593708850003782821321027059422972294402845493780809738719086867375660896985377649689762431732588314988480705194908343963085046651930041363591436058055935688993421476537472775527891202904562783251424396735085151620528588665006914520986730338775781586157589179451997791066951540648610909417915017018567430483132333372948876912266529240889950157286882342444768401647636564064363160633573371624155216309749066949722472276631396790076604219446856886617498899364086292440312291395346960118043066396862650645029496380724455607840275482576355041725940270545041828426445179956459237077788775557589480097559599901447785085003695338674235233972656851821696096701399326292715919355876807613989138716685779119425751501758352743474482081731381535194334704345367305733746682477491931186213760550651474375160481081912747439742252416454561048884882495591839048663754465874386040059283171080415420248441126291195281006779034686012920642104244541532984455944655577297388049611320783958844040336427599423285572435664585198074789565416056500002886177452226951835062034381119727360228656643313981985328838306323165847596415636514404875714702450183456594820659262588941494745671385346746193199209584937042548558774036644773282869965901395896636454004691459556411085507769353835012560781117912545128892892537172252790164274959321162996256402589410803070020870698162697382132809473670256211128460169809246081924643586170860116863375260035896017299391454804024962375395610062957884920201108829750120379511118185423450185585536627811079551420389256073158134912880193838630784621768146160310739794920882118249248876124707236510652617177843136654275160550014874171949815896236216115297043279962690373338707313819481871181175370213932603094301671816070408015550165128360483722778341350122333049654194210947899704508510737659349381236917951906509396377980094792747964123536852213196037303383365673881094326124829300090890612454288434906869465897626278597511527200788619308078321158361401650312062334993297266225484177008745525804273400970080927547303139342534776057564601626529284687668223651417820851068729685890544522031991172672152463965043841412785763706282781185171973231988707051622391175322806410347336648834475362093456059321382060856194670845208374250573526532073061352760555380063002065198236868960362635606431640029407964580436487865359436823239776531267909677881269762270085839302611107735809798144252258102060540913197826650954713195514671290269978728112820432432687462072545049292483594101614107294813709731241941196139306457850616371107019378524932901089134263036789140186203412372613754324162898955495624083699055468096551098081042938143096106347269709150764020077087767441294187163823017690433792206388692586447650652086030796647944774500018549737894244339661637734258334790963384489606885990767090666971686952010505493239159043989671546545370634457622771196953958439611136992515268289621519210684867823649168646654539158727781808651336152460147643902355965787433269976006177075334369874584349608887736366812918155160735003872987260716785000085036925243458523374387052507075885016767367594266985974479663890685743509243129046323749945983109617419467848738075440630178702513851060724032909882170339859428351426214616929502918838003082790918281838983034233048989299198273074247371496270531843980227683852203606789064833433440123434796002534019424683791794174618096341728587307693628816696197613320358483772586122534141742007828640079357505784516084917657616024000789301653896325503456997159055360685986658929676905093671681558421255287300439442284237527783784239617136783771032969010315414168947582974728446616690687009825222457951978070124889941057708654508760200730965032325121207807096501004171816139002822271763350988414671784221319028377063425582462924411682708432235540298676209114504825231830020487081228839766108984121824664618412312568433346168283487644975348314338080698144554549377247497711611390716504774689286841528586525943606468786263493640532826519312464300041611958191624475608666738925432436592197567901141274158373476939421473715865331675378623583382382450247008060749181954554188485378142725293478137641249378707460577168361152916864946494375137986062046449799655740613597517768455940208932348975655750098431763511242403676468676236080033198201913934054552502922635515250784554765268413824579015918602242278858658854295426975173217435570169601829375287772936340655116068671643464493084665350370520265465289752157626376494334854027538464857098158755183549714237905717524247955739925523676860671612357681754102336019346528665738190046897180097165239402886081763518933315962063744595211768531846241253546393103681812731641193057626265129313155615702338274758934044175420155820243275485782091409325357907788605879405747616453661656364962482438206222973044110728322400337864333760948035794857666883588518129232964976252727449300674060047135392404571481742213982057770551392067210005846636449313938309571103948866938043060896521089723600700099821662666907413616289055401747081929931090387244300591014368564760625999304274977182328621432950206600289731829620946890242153967533946288082422363239453190912957235659690494865034986012892989056638103294191015353635128079654089764313696612534965683113161037810008741521644868821039958334080152577563914602310045204329397029123869407773189570932040195525133811849516786253579782186429084493162272052720113703253153152442256202411978333220450873181231779000924150575787016909441992435361157492539835971206778390971410407361338644511207493277590454056019333361888034570341490252048088741089425064942299036325772931472844783735040724314469957528978717484133418939373044988976710724131835324914905602124141537376688953801119154976944747234718169561671884002484583648710204529359920672892243558708371012212815300412816541671284395628545490602967205478699486925679292442502094425781287479977312559612774540404475017702369640278292873427820805136963730231194799351744587994437432274467830891209622940707403874899483797839839551613955297924291373705827149475100200605827811824002310706363054411213425121061116698556161564991212103147244637253911181050883392430988964918107742610586823684241157184573613854387344797567368543079869800721676303389052950460774289105100409947047787096388796946765008699875431149817871088434205998623166057801773933388786955786144487935949654733035855508245118287544106751134388646608164120913804060151307811411361007138580553597108578921238596201264105436224004196013342534310068371829147431528970592248607777421933133116036586489811937040681167484002969420443667515801689300461070532983460458431111282914488958237664903547938439821158658757129984356062559484503173832367307618953384094819618333441559064221303737380708055067293665025721066882283633822741456398767827028949085909130182215620681135753077568716708856824468161463253302871448178492279420357162352291071660030272197011250864606182111914453651863436333683335069177959006836817710102080465648978796442478664682702729385897059368779742182581415796626484178758395324461177717959425002943019025222130295051569938553572775923254490200175376076384843817551547661044125451961748094426426991105110313824102232390142232117570778959304304941791126731819609779802021473340127738464043947176765423258621736038776953804169317593454877819397207228038193748811650172779654455660980755867704791721586538306351320514397098408839699877270416791273432626570271640934088891244979110318886602935960443306787193851175732700124505828581634149976404364299495245475244364321377269075932744757512281057362835512935984465315302486142358865153221538484178554757839087432918699198500505793454734670160677589563791805628199950866626538334672420242672863120925825091735669506041330017571352977044366213663029747739332305485450081837582146785743862930520816757237372337179222695426171560119897538763874560400272389523625673422823379299211443630690244508745215768696181870889098451704005114914978210549715239933516190915842307300736326745020156362875412527972061873016634572711363966618616879838263276471615648359929057515522990354603105368991415908297621434078097599044551215785522769578994142965311596165216205140543058559409072547960308541348135335287683948567620907212643463277399438278137466289292573721365353161581138480764637406588200091517743760992300638475385055083927686515767464468992870516968460120477131707749303421624777634979289800480397684398911737649314297327114082842244230632203112190709115796531918131667274264908421005059245526594156162673060252194934940813063534367999325419980768706525668766315292486153116817895722431601456319020777335099274105404365309742755974196202709502665577522142005888431098455150791239199089566369753681512376954683876625702889944220666013544387183490751464677041848021055189434851824477382500434996938413207351711374198857449395952138061466108705628145443576409164025785714312572449188590789929572857116993885628593021945877659424850144689125995872142129507973872588727326015702307720001684500315641148388038336396590929649819125625578111065845398396183337532038204242939898239721556460201995770358128125825602727716767940290342132093449905859797679288561966110008390580218961822361064059121689157154803506942140460438105211811734088243862286261507011288162059821620045622411588446466367542886400603075407929154911759977281934137772832419198378559923175037550306949167037955197754859825791812028705262190655373262768153622352429573568643832915892220403131146884429201033309903192251897400111796060364234993305797722471950637566906460608990375985071774029176766787015686326294141391713235995865197911149434083029752689893871715082135420137343600595044815055406159524755909364216196373557720655037453406225484494185422617856956920761152295627928876887431904594809724269653183517098138935829998467639045877916800294784978502231936997530881844530355743780931237615381494395568592044481847281164006106529592764793676083850769526216938620603251568127928458721334779941176509602381770389471922736588753500079073391166488235007813637856128092372062595297929420410476408969670864550799381024538647456245123699061250517685094494554099845271393018322286459110137757638467974850589378388992348258525951513412491858154017856121088158082837028890775914071746436480385896713969674679500235838134052649177286661034336996705549047625046899101671110887407181642563637324863061777492734008787359956905588922410666983919220543739224032720193586527947100942469952816020989737691797736699863537384769901315157258409216000897017689481818147997085899479362106135152979744302315376707832704933202829491691348757946833920708359988879810387573143743163837758826181175306922040835654026563628020494108156350920011735595474312670116036374990422290483267379721391596073299288163168051115312042517449010192321498213409745020703019071569770029552915334267795941802409548721530710291442158786962876058445711748900995730609424076643468437651191055913631515309520356110574727121267270405149727781129335376765559636302287633199952514859693212111018593718353904430176895345714196799615486945797734485812742223717036647827085960846347630799866608520198149887464483830967612226188154666329582437929496392527313267108091104146646509104511637568005497168066003982775131028623541287106207273406538722856869815837357507718265840165704860094944643409267106303910892145001795503920431448427746889541170752821556241076413498769243963835715476922081056740437234525857654243662863917842011923968889824156967310285440974414235226979973139646281711298877040868630455943972211458640785087729252084453435318608618161257779389903391826794020964236415597396521687047969468931559287167423969622515225253620875950014965404347145748328617628656787254050786397438282099323086618263014212627740421509000417631482568843226920570888210069746236202867708624709643883302795510159496255046158097146149104510269161720772804088972837132292850840965729778833422144070535140680550988574034933442780399059027012457527684696894299692541660188739931297235754285901903889307833536587509464623642323948211430702716458982172677598861635617380442833514988102459787538774520363737690840892551933153468345937009536722847916848704470505687237308826487126341254976523686870545288799092794068593514295336031583859371839288311929028285975806849290045278786974635771897783353586914699615926915133311976743739187543655890768284235918052086620781438935135345358539878161014044175139053511998443886307536047557987370959087463577592225414447006808213741190627855337768673282513816125837063738192186963376524194525418167275562266855581726977824096261878376230723269609743506116860138422948515082265538750541969636467894531845157110688835944690102277345916924522061807096543299752935707716153515339266235644294971014897343026121561086762071423017224864249947838141193180666368566057947090565474185432817169944587399082408293014829185137951859880098042229004323662379312932435267902169168826392044651194881871286780596515377734856286393067660011692956117969014969520428101474720700868608620909955412227383880779485750962508119536782422046357021662929881070446433608137284234750887324722206591694039929045876965104914233971938022528729450087449606447459848584084858124701854217072208958679279660797577805825592966762036931605264139825863533068644319538553871197553645665127057199640660127608631227610756000844500529069151650626396190641910361772901895540238324985931128984516518301330047840368199750336210532005855437618262519596517068164714571469202847307265355169267516891495914769796760953742291919764786026972191049897682480792655846072496615252434484554898633451692118134735283553480278857995113782521613740496051862201625845847315613395315171719935604222199031035566941745413648310821636518652420702770518046406470760803874011106314591904452083993420521231188475305910365861808848043020601838492864975604664047516375705822989813153994173325948542538471772625961067401951407673549092720004205021623641470717626507798652939194090803490351234715721834483804290780752736461548599998127235687438668293120893580114679046823198256579791517717803530810219851744257229588395618093414826919945991762850693492581650676700894036856726461207760976728741424949086867355365427869381270732354216661443554544500861824041789452358646607038192064031613913630929424298791882138582634479788955958228635345981538433760300478112963881316535902193105165241182667952888520970521061439217001130344343345418047625389189769525018692857975599075764459168954856393286158001199129285015447025494355591297872793700315648603379416817377567421821400177819545563741337833396353205997328071995060046268517743407416989791729474962820260688556184093790139446085852209062336633975110068425731037391626312761672498849829179637183715891989561155600304208333577422222285482190045300242290978662517062473789470846525854629516121825824563286233632660740293005676038281994761978233477698958737994209917469484325394039559007635410026008320977227288322116357610855398579955376379915204837618293561151972706808054040706428958714872564252384445595447247401495068836506134447781444091583317165740289313183659525361153907411780388079127223424369978906592225331048766719020667708749041958528874155341764492349013422592805883810016219550194884610961867684435539586775900904420688653962606329190187004741428989466301360515520243312865704788515744242030956882569968576473304542304585371295724079239695008036001848016725192977302535847467346364785637438648314775247221223697649782130087402267937267026124358038628491897680781679768355134981376642406348708389367793861636838191813584351158629506940633272509447790971182789537010695886182735528681718746660817908740880206309286748764023198621877569423462204354015947125176002822943469707986895741120091050158341906275047448919174011816788057323982474362562408657851798096861298697763941532112373216021263072445978515747547387345643595243468886918463500139469723665781688334155579780224669948399251998307232267930456237914322171507555344519613142822088923889909647492860272128109070926274860077885527108641102289354388398736779852017781128183195696199237210549047162410825447118908976863366614248595562493676919998390599782449835594014693048433970161430816171715787846467265894207928477025317057888336137667686371562470568485628203167897035574522659671447539875525282938826816924542332954492379087207164199756781616267786692025011478292482802246422010390221645874648816422609437888625561304123147194500441070957193913433590896466646960409873444330838459544502474150708517806528330066910110004255858554493748863603602432456388808286553383409517441874263115249777528459270094221324513686587491559277273597795727218057589123418441109043486824991184645172725044843837582066552611020605192166007481393635511356544660987293291739807684361215177837770492307319505260344625321041455319576784277824897369792696606973465066002747876834456727817174072285181528918479493722515454918851811434602891497506265549981215383278367963162229463492722272277527080953618674285223513126864657133441471803413663286733523415646472284296530331772341649617831925032459825730461394872826640833047045014066970799525943689888717670861364649003307758550150364374440764595105865094763790762937256080937433891935830291729185880088298180178580434379329758953723421453369189115756313772473419745764325815502624764290424948520479931168896371505405836928339987473913015992045547262145324293815466391856416765013119683227803388949937979375759495897726945670733991336075188930807255845264542804314095646037725131678668345131101047633129743913276769887962465693193418502711272298934564129012949916605938118463350348113794966401443273915024230189837887578125513446658935976052955785529602690694991917979903804170832127105298624298603849609623603042332315663923940636746608315340114593955948565432299957999728324101943172883610266529902485828286829222126213045456708657214118945172814921731909478182923430344169798775127613388827147712389911227295848260081228392564027267140912944349646464139054522427410469595416585015616420701630049980375366633935393396920700212588821500076504952599646513219846109863492796239722807767101977016243732077522786811279059656976666663969868627900995397531869000904122063072517034625979529868051789880723246600130281886034853131350082032061724370913555993966734181381716592622355880524126856201341472569022245853256502529992287790811315558876537020659559050746898202048355859093349386508680527835194647102857803246635672777203693383175049523384191280449030194142863062715383042307983637330913450469154046187412676339239727973185743920094862377327773012098975182697712290765970459624175704172544704907820687342134331518043839209212941693732726715973264194907478770819122680615867448164062843217408458915997889077372230417454015979012283960038958861439831260404793896323355513080767972747638237132885663625652072860607068859495139157416044971481825621315777262831682040019570415248625653426618150633899859161957241181888216805763578166303400717935211917580701906107020403059887758974954195240292610126781216210548956688190644124565811530772040244278032554024877665714932440677770856237813473402597267421177932970612800244444325249629176141247425766637304014184190875720428479931909044032287846638550277808797143608183118610507182176745473510580273129998409616006402037234527263398893767961106032799954839040352334066501404481195215526495770204057308375855979905623284471918927936148531793463509346891437815660966184693176108779374145009784431860780322771715472986448554686341107316600211751740851598378371685024613761343788250023286037016034183827604913216136199734845669331642789483988481301531094118357297389469740275512232543038684165163594513862913869531378299704830134865378901967161698460173268318888402552100506501459269593359402380696826541306273662686435809202475799424956381139873243421305203749713354926593842130989176094607776580601833495681227200946031234092424177600436910736034045517103907344817323280208774650174466547736177607087628198010610148329890368257739976882230738970420228177245088755121715396801586909924561409058747949554864880334986450321778176202076325965973239824310976820227844821393367776449353816845070665779101100705478537122512610384310015164434453754045035938478902257473273526167054912039825517624808286862695243227573272900815385143726794505905969312786932120826181940800566888524689977373072577775722193474371528974254178947114598774520378422794483464329935747745460792538842690273905634695134036712131718733398607132537914317390047721044320997548867822243038799351425763312525143098007145240143240456501734499062714114590982562756268886559414445524117138856479948019412446586486978479687280780101149987881045253323943228316371349700388018244516282721225134067551976899303581665355572467150390404984804679858120824752291479819333189572539293963664827955669916174644693243337411331762715721430368933238851219309192950387529716074274589430514688845356311956284483336185582812257655073283203930008691834151629642374981139637167311438192849532429684055084612535534004902782009092585008100327862138531937053027305775153200992312730710724580443568417070392886366661756102806767392331558025385646822202471849907714656941307272122157112549320437595549458976047364746005882460119090608676794611090264673672911732465441047966257294731753043870784859673194659209028475396950419981549423182116946897882562314970173437438236494692410011398933785590023719860309847675036196229449875362768509667653736310433680802444434493039948112256029224836273864977061880607361058859495945060814541895482302130523992017154334089243988421074956656824328730489654737498721951840393351668520757808930174301332409167547927371224007761715075980057162570101388938408975286146994795534983324519230807428109941909294815236379715256126029729176838353197210285846264245130753452539444696590659417319899454777517012133021948386285755630566798960232454849702992289790307891830212009883455404478188603062156390365346190580035008010363803591433357700522737194482213222810091712646313287208475619396581415248193323524155133107164713167893989796600212838982580728671036520194639647257564284302255080516169728961021312268378563141503496493146733690159740597838521595139165564050953471880870190519787358901613603146014808897639696978705174628801823961179398578521497013839653697296553331558719945483258434025505693229386681438754856140072083000055769533688353822760107704365356049764346352342873211251253548440961128574294062431156577289981884340213421717685823747358662077462450666253568673927505055754685348109519195974617244197530404335843722313430050925553829827789835602672626053621243300840199067093186040237354555966096940885048667555511012191869023493714221227761302660939800291830914053349065327301057537273576745033491889361579510739638815017936147003828381690879703916050356986868933065068127613913477523189845252326854101576338551020308277260313345576905219749754322262376857182810208099654302267442615677675577122359964224946812350918640162331931645223794990066111549210634190706356541052397032007657595374380918557013045890469030770752149454728438599422843330689426268423638864611743658283294782290036216479257105382467058482686131363273471927351034857514422774558576488834837323778473008224403699423062207016849448069997383429413454810043778536162258647445772429620578143267987425292665119501206001604604134263506651654056516710270381235679483799059037931175614982548722470098965763573001953833412773017576402993889970263040566487593708577527212780586169690122668071070947756624796797418956428895454966984611498654910958309303843518429012290844713097171668629017270664289572625972056773852570650311675315066412087326479917826415553153267629875994663860154004271561322662495981979366501689038271080268850237210911619796907741652977881781961374239499863806325272708060451670012925985702690860111527515497398392745242275645466435492367791568135645625870041158261040638554977876864749839922714681916762461379998234870379537901591633715185388301860965518926472936574197194050442821361199315251226579263364736421294751686720321541035013394681767969596424938391577445574089697877968949939204303147002517411825329575389058269058330244244310892773462678914378070324721080928540657172311600758314136242177571070398407346017755853969879790444049020900458465801525656816267881390972143509281243570139586946589010368599572730749804991574171185097358906706220854886374569472746447215055215362589385748424287158300917276105216680161702755375763954852815120741495319850660542092156189658308530400222513863214939596315474895245871073011592412740731985576084925346655809391500154215753727223691083894304049424612636119334441354047402088205621206859758675943729849947847289579151987626505929271856914821141423786153832380530049290497549669095130748517869808007789259175770244061861473048816353739357295356876890026788459216464029493063841081976745987616287351377084450904913243545098418736702575606231605533397456228624206815697135111258637678710115332820981818006067744304213516543384367840155416040209101864210104471703762311101821229849147351606878189251956110953822023426835866181095786920784730435240177614212580654886730676816770078350757700581730322537772882567986261295403024487127439617435287451934355631879530679461235856115891765741589894819565638974237547685017062518789416190202667973377669995821956038635991897185476787654937039411898834743578138706520433011330116933839670973107447926463348605760246874600820154230884517208377914554236982785018809700602453830693392788871976021113535060522129226577331009606867092066886483276419791621863966710854878662591179357430582451267624927196230710433040717247491813369261960031765390543306967319943929010841300695865041273081539919207019273205138491945918000503924776854934753839688192018595803188601993215599812104037532449363523498245448047837678535861636667305488036907512826164748173928726980209865974300504171034438080024802706459131741462744705816329751101454076117477728286952438137317707461813131296874562782450120011565708357882978554226981178864756088013122576064184231458961383017761543965610915361301152790279295975098851300761586633734004539067756842326403554223344986442832015825707595809662118698720108855212227870486113513186979005224144433317301529584120328108996888058964174306186986182758043528829020155877827187851212492846283105068370574918086275335560711508882717968338533294555619880070575191080125632528319087390328531882989527797705075545949052763449278738231827600606455116675363998838392291007514294370182391685051925168140076516273909514610592101888337531317013176998358625190234447303356521538205948414353938414622642543687845325102585407779279380891921633026612368363192366294849287797180292863266291434435055064867285263199017885390087340649975322483266126011264817090107864986444272425093945461592917798852087676569495022211390451067320777970248465724685730510389463940310898051984393237786462597947413595185635034186151295936489040593415038746085523760810164190536039081113004806711882395189481143496740400303687699462230039247407217908049096316448679012129651543780422276246929254836424617787593137339519308214845395739766753332809188791427562395706183071410772417936760063612767944897851864111592759548929147013487968449545625241815791371808285287721897184061399248918541559038315874354532037064074665130530909600978652231619538819118037068096694246698389306134639788764228752026483603204365565638160104840008281382053673152162423117882040263728918744235894894935480781892444494429384703939520122210496264905342664231061833834313070229004882942966108566264992364522924680968859080486898981513117686224928693177772315044832479054262751429322485171673088470980548496765239821280008728008633783604039842987344236471981895323381721023320790859988784065577983462088287679374733529636503598362743853172926486412119154981631606610708117483860868664261743935048080571122478163657953889651194451899962212869441012896308507384451674300630717883394382603659652964029348541597177855180254341256314123350884336575347334857392333023637200342401098304147069981263394004204863942351306479950268169648663580427006087210342213929692978158605241466391126838642967916645588690698874450660593273488364816523442420514015746153715025372707216625494530223775415004389596293769676086942946657759576147973605408168604780764357739086979828254502245157690441540511675738666223688112377966030348897228954169434427862229453984287968796172463258813556944282635816611679452160984709972402805993711594038403744903496999769331487810761744632938087475833100884181523929969780167484662080753549489385901851830600363921226575499223562010705425278398974599036347921815069905235671023685280947159098505976586143875848892220284364995432034290737428475808843770087610668038712615555347819695346668488724492888699738161848163641048309503923149260684566091848832289890994691042070143656855515156714376472302284281142197615358593269206555147098406380415950933697648442565949272798402130858220340355514200946109143600751015743209319097415598866456286817898447290002316701816941699163852207271846634151972693739287798725421755088512095510646316066376483879924124962122911827859226824498734814695824878219381663378952666022409439757331691650258125873930443017042141440582394971998587889187384175530562763809982517010252244859924124715051690582511189503406770952500890327509316359759466663361734380822649218207165234748082161520167431082769054498799896862498286774380046420158062863855490238173828456488904117773153287935886386971097689925308360105098021521416350587856462016617292142666723696539538805199951781682041592738021585017161626731840196249212422512741934616719990084361960399804362179221687159146613328289010050554314302152245027539851517117713824938363500546997027748490799941085348768043852553968942216225773196040244151022247135856514968998936606154312221664043155068582104408545024279064257364618254202734766592081326383150316510241429062441458167674897231494226080186218170366391807582037125833248889130140398990169035406169405624371013934720771731129745327260074528689639402602099856567863240790603506013799965970510226633780746698654926931175840672208996176748714147644878993650384976586393435435431484313260117306254887849534942979119943594937930900651057765541800648375496261857108035361460122699201422156140620019424113983460062088224826347533538360924838533123822086207980113386874772656194774397635807661182618589764901494298822375975889792398143994946972302698619065489228273278450482464892325441867808522415055493880023862075117149451518361114366663695499612076079632298649386738847344201499387865767040349983214157484071237441374349488113667443331110275522733321040880394136671746106958705915556160417350670914775049190142794374910777714592132349930034593154545507438198319476128708335586806463123809087511407778630345659920610381219568169021677070745150612139322022388971273673273122207133589670893513647712118449192797438068545968513620639321249325860179033635890029277615792431115081713196270409206235489471175350587152891059476497778622915049160546874385516656926487292394846207224954687606974934877168096078550959119239431432420238942873268165925484539548086649687459584195452151577693296279316070436376893244435937139268308870672849230032548453649316351581624338635381059359245651331486056623281469652760068467215071230589725117760921558135637136122963780852502682817115433475158262683020484119355397950494747601615627486139960238619263964559668329065078529747501609991842406851801322439055759180991242463990512186104502759829983917649884207578649309925490512200108236332330136289772255583068583814506796698777077167826352483618834002578403522777311873111821950690069198095195141893407168951657258536669333884910070849117780967873262231067647225732909946919508476424865873057243469173751014396379670572386386419305188897705054554687947401518433428139609654500744644998572554758722226179228728636929951856065680010337428531150763992420953534701192049740158955728192693787864730804229059162072207478478951401431162040681224146692236169391933675453188407728802870891002137790366139813999449926627989849266694634157540071756382362219269234375694375621855033478512000765269363867255999619253177059750951530216256940164562505934905436325503803411718415942731444071366973861214476440463373372286142698392417617059688811227899294468969716147764239931700135773684384163802183329747178944905190859385279958796992120535830141401187904091066058261504839810014083222197682095728129869097219351049685029140851535915568178977016547007271717647684230647300955449319185367322540099315861135193883338214912301057073374719202344731174497563059096887356768648120952968235726277841610238465747181843948979067239502963263757693788226874724716841280068147735550797951330082841310838215676441426733627294328528936225713294279367159085178879246798546141441203598591355096974828792414426799410331923010476283262084396162384899156074463656477255964639409117450734589557653897778265528894031179082317814854053801290936335298054379206833055356824859530034463244515475020139935922887691077107512885302670417811874394232528445881098768998332120916684287939555327090824982669754960292187263519734124234698103826155085616512343475068153054533393438268400138449505901003217056149446141590172583678631143763325270398482147371786700072834759420663515641443622648103887711301467488425542813198451900739864431528520142085070042103266840169681991294161618002470345702518747278495249693036233730374803077096009019922814124483778627346373327875830184452335004093417974869240028186061197965761727172079443064630952999924467910407384896186479432371530168723929171635603282650108422782402165019937906546808690565288012444562734846961208074997824285144652937287698280942256683805056614326093573513465435107618173149077918629222686131235145601385853865589352253277819286101931600760568468406390577978499677030786310788108118366580570679561016144043908101186504812439362599505273021794362948885014016968814508371324936737778434753975754486444000829769215806542195420518753353260605593242057994711287440455239129307809147184279977560938376673868777500474161969638477072857145474308651882797057776481743259243002453202534641320848843772433428981719710342581767745282228777695909725353132061392650693627062789558900581137591369957184632014300533497190990875207752870177526623088420945007608567249111761922339843880268477028675425963098344186148740710052540583435492718986268612068818464576450537831364541613469077819986218855659600705171692431862173647280346144662490575015944051890598551423567168771202594711139684741127797536375746171443642694594173284537764847418251555284202218356595382667949046594035166912923505627966051523590046951862732740027947749092756555575978781045123536052898736215244482240562665468256629330000696820950486994862402451445996752236853976685143940009619594331768664048072024528023074052282628227999789573249125495728636541032065298762259329536235615497967190508027344371717225930240069932725236179456307262569532533504322713637493999588684393870312847902848229576832866506521278635578095369686664865322699495977677762335152030795746563862600140905243359102110865113177714371461557631625943998801146983341179465204051832347946554886210792934075395314375321657051617189096092863081341635479800026886875466808798081197970501234450003960636352200322237976571201236600456905094509358720316733315661383619226141680544578753122234447317368073477961664579000777173536330862712205305365697576292465472742637283113873183374326248819067962589006514551389858170230368732394639226275133496330084542849914590157366067730251355705669435927695855261848762769259118985985662103825414933121336047989471478842178861519997709097856419478856085540740627497091867422328679752296774956107145772556439218966155460035874794135649609670180081227534575423971276757090865786840029189081472761135927400850258549146058158083766282186122463290366665090243574108367800637685551313588005845720241324293719782002889354182274253672376061758853678056506066766477780761282585805373804423405133665047134647258914576611982277130023700494351687688740981123057121863175255665991343072391305218724151923594249772280955769720393246271146854522458623235666036219447080353963841814539723557303970463913568356048569939839289558398441796306274773728203835716294672202668008893194961021480074467899356844611610030064150112243589875703889799730210164068104386473746207135104298974140296659254044673367592266825621413074560615054681264126361989363925302460187511432606598601918014994498200314721540390421082363485951181868503016571808284045154646298610900067675727297376627178865102081653495429510594276306821537999136065089893408681549392805740731501919585100187111667695581525624957069353590803606922533850024405885399551654836694161142827920772671402871495325195491087982346143444698558361791929021416346387910040061426188767115782842308156770861413325881729860283906559213312633526324533454089594439564266764836631362229847397941318126139433013112793831747481904149742272918212358169056808946140701073338889881264699376843335397512103927785161403470117978989431513014590137378689540738055498337627781391095488161609599474239867387963116260261964646663760703209313920879306833297553544847867857269244388205810781365714458746768575319807956105157576676633556201005758884708074900068626188740698239725105958619683358561818485480632423441599658883178569603250876280363056899952139307363018218575488620878286219332375086857434709236687773773556965554224593938991625898837400120793138733344561008609189561233996023242648900997516443594469602048136571986637849548070607409657231335983311103875190290997565935875180815370525994003107714284080939152717751174253484180530434615867712219475943249885815454123924502034343992606258083386619391694794235728139860883835761219950160320987349107911524152297268023259989906702027121248088632039118037069908743245763878655707078553134324678679787950927830129840206681477884907764234732535311641530009126002492935672673888663939105017320794426794102441696945752340802973819562491262002772426246790916858715372618379374620393936368261988341440944931001354693725701085246856795778061164606932606761541709673126233210666536197723787286667833046620430663085689448559055760600875174005674137548851004124595270799657924204281861720010285043990087535185142511707163078446594413453579570349344651388132455572588542527893762315244216150908025333147965184365223388917607812741220255687094464353562893526219892808472140497414332745034520685843455229920771481308895180809029984995789735531004183137513122475511258974686976405679215057140369920143307183228000837133425460445804162593902323022819341864028292058635647929824690698238324856127572522636494644832191420152457281270177281422618761076161196089605131162354589042317980353123355082302121281229266234695122621886199500246330909281592889057974403071274394321614877795650970472443530243328462902961013545958883590807931563186612623203944103606763236304986914401139667737127631829909572948361792317873405994501763279897498884620650420651167308278936366492962122344577977766709101063614525516118345570996687645318198484891618434568254965341694379519954312532577570180026272610248240093378972054039311315778934169576557864543085386362554372222885544458127747173192342862211819697374663032827667268328445937779797694104268236468658274050617584783984843162825202502988162906565523255957833055036372478442161808819809950105801575251822229907451093985408595266803025460838157065915210750915205881751815246400696911777111211806147660657983077373802174252345327600536637469706003831707337644242476994367300266451735475096174973235653006430044608322134574938408664225804090237119371553391584899265211320927366252095372674441402286405884234081859148626592507353839397565270436895495127695828911342080054481033555446856502923900291989750139075448414292817493590017402892551117079503553153125777761908920062005302700209161983978501533284912997533634082962678972065869834586400974201088279737226803444430832330244604443790154225552867935209725538397013784298193529101426706186653700913377712080565617251062243437653613811590837284051330008582966474814338797450969490760535758103035736193405107425355973618089463216181742364750841509711282275716450302035253512861415872260268380911152708970260930548524577226707716732251311336340868051563997390861509111726000414990146478572739812974272434612355706648864169182808402418771149204391495330187137787964258993952153251647751253145473447307153468090957264155916304698305935895200085764831113122137873128899061185097684153796438201175404007524254456639733329656906453954006162812418927385828411904952111675005328599555767757562236883064672388450589492253454963248959035427005336982523091834732276771595331423060746181435354985971443319455628698697561956502582660567678446928274556572091642036448483138845185652907177005439050742717975828153145633414628326200078847329186646453132208054159548752139807364186818857430541828695572459925809275783180217681616405626631500079753212317247464952713125352918152651564079527954617656336305983746478196293166438470447626605025307648678826475409637853991210523407066104384155400137434494000015011947799481696864364122707938411916163420047570594724707393093206931998042963276321693075145347759230643497566671148389192773574400092822696610619675771445893858774136659228455711173658095906642672263020509515148117504913249249400176890621880470198638832763572009299829003081742238430289472864428881988275775491954037768080833678486334867899693556509402404045234250695755520558083962001958227426904549263164292461561119806145022372839801756059172616394557634399415320643333525297186164138584376380979863930020935866378047370768351841180816872966659635151908042151939609795605049776819649327712790952025293318784308841261743884871564649134268200698648975855880483576702624234695381909452547388091995596198372582474186012241993649869512039469605158543863258056077368804787213885731874222196139003324810795042380383272822486886750478949569862936863673976056244283393332151989847250867294833575076119976920110460010517082916664215496462301719444269561214855849315781978209752644996462158954951512534916807077106639351899024887238668576377130914719393007498883724510776441355940611857908202581368316090163467441456170826623497422638742791741604476625058383520986912111991458152931530627281086246102156938791807407866360639887241950339168955423753561425878566942114355614318267649826839744381216941291422942438840786728383202951015338664511273857028943434158700993960601778125427810348653475537414779989604688708171418965177319703349836971548965093198079151191585230127317507072669539820076434773663800873314367493589429765107901467180503816405846487106083579632004804007266831324095082843256332965619866951298298496641797018349135147112325187582884275040732274217229138423215584037928238118461449995835488177137084629765723832706690952013390523924400807242509350767153551530422729938106969514415508933846129530269321153548389580965697602902765880451013175155671616346098054206722239015390549950989226845059167536877369881967364247118543485923569308349598578133728759348045542398772239760166132385920675910532257881845182403097982917602649136642643311914321824935426573830960399311502267711705202837658666439181524951816989917125966273237313423330489892999353505104544039480129446484901948378749482762507998251914598098853562298494644675350749092702707059431766242299432301483237212274592777854665183249195645830898093116912280875699118086531836166310025182878556901350143821378297647874639256952249118749939343457936644938144369553778386122117183982190952895995033119342515668241659654293913637309883735817345201308173918583783707738784984147634950640591786123556827886217938334103550847436699815158166280654225359360785222817013341811954863014137789826573967171567104363430209338715894334914243208786109521421820495156834722560743920564364574602435839410775665745983329134177503691630072730899453088020025740338209181917470464087146213816223326142646013531332044254962400652765393680340977049113866790211609668012549887686083650303937746925921997071814124816057237657127066200170519308207502634634813917700067431491166485589035900349369277104893936442824361539139257438588837883888769463631362812226541854690300104047890752535143787559950764112990129590209897880285999518702621270447348272726651342921748380611652924202178141831702889036751863229723665121604131411021640853018104210283603457828696263274260639563446748920215195190466423192411157067896037549996372424971681967675734771581555758299530325898483392282257134065048132731675552167768202899144931369008839123791797307284157921130003677695632353385821869869832809408827620766435905915387307406835972857792580920928887872588550092550311738702307534807334309957260400614508961935962065783181266039917805730398281117472546743343611725728757979783950544299532261012632865208172533548666561032816831950137146497615661811861693930008573970328405940348652606016970765333093790270073949600872381849930763256041063749533475659279905787679313455238757814640828250650053655030376389900075271840699241794059932759565914218836623967250231987620043496873282403173247487409639491691748603887402130383357441365929259983677283516244709898829764425286865769788312210894478981992975639332142848167333606638967373083177132773743137070611889498361439275201750888927854841279327826581375557404070303301658667897753413209306444611941436862904676206900080701285267287937756653221181452121895197761195966883057890728210911542164558965467524687742294169273196723132412306159531817957209167613480065869691036961382756419308757123642078549025079545045113834807334071991922679170187489970702028972005714858825696675381851442263773607255540899763924858214921466149116888798027606539283354964152362232143869918121280165234374367313960221396801729031277989550896310821616987101057997008958341444417524485266547782088403522513564201676474441614012928495349583834935939417526536426924040456542786080914491412958422799011035747972758137813399302917921931515766152015343143167685697151017717558023881893292814043346636512415521999343440306771393696340040835426807125790800108487904981037136398099499787850989818039618846400353558333396119945110426264277834537885093310238527109005376552340974351198731599944489637023841992955374216304582364985739361215743686741112065337464825565972701734793634427881275638550770811013513651661723779025400848988957446480480427696691424669248114079253255485981982245509221114735023411981979476738003971039181283250383875546656844675379144838465698895776263924112294407591883612800124836362151251979520462180824148038295863651967717455665293024628310937842919863854834893987220397835128108146637942341280401743927746739156986273203879941272144919578373137201029975798956124634408211207854113034624670108633266997124027896519528212390675362653426783111567028153629999973820592177086858999005711620905446774001727639246029498168990591134441471356038880358290691288102925639664516825175105716804242540874167719910442816819335277780212784860299472995678371657350408039462385831599287677817480841404998116790840770782685578997629418796537401093136272582922768503573231300866559194124119596973327248995205157392681385516518253600075381818033395495527547972073426810219269051795096661349792775672308239973080337454675553193897490192392830789937071650403063031827879804059678999253511515040115963398390497171860873773840039521741235122506249311293286891465680522350328294225243164109495962506316297604393446225823711071841574123149018428210736716297870882540577811964582170992032484289014688177641417565310986191007415774731659508276352644652372336620338741229311990195764683479906434009644747113042304010458874446662014396823337773772575052568908038409551071375963645313050533860945729177472081305762017860346354319878745242796944190401013089731532761030211066118567061715058384956946379143984128020776414930873938506653079466850030284049558266820574391770003318548202584395116138015891556989747881154859957044864585661561586317982752641634219147513521446839497894385767503145228783651850717480038956711041766589235238427146372909132965177476731754680187530858695439588096339907422879691050798115569226195579976138393372784112553661084956888522039876108990424431742716923581426336171261825547938750088305145948835960449992860475621432154377552357642014966926569323637752738003483990657909631427200675140650033734014486848531010006797833456697198145465889720397275874056309148876249043953699389570387843545046201255339644185507206915154006245859905451250475917106325984088295372620623355301169749327402326245043791168919753702511426661293311296468116142613965150090881999466480755963125800420703736248358594155718013920875140150940467251378201077564490748891199382180618059670372517419805653835561425574916417884678879276114091800549131140705159475938819035338572188957422127014514413501461016166067868244314367565653813474138182598198287818575382188323868923975906437172255992099007815414895254754131004042388659041209650647948103327247977019338198029310776722763235836003170997469803329674937792875957155215307382812531734226015821210052949952326872817817555004660259850720652318097336438890430777192476981302472247714306355792195705101716458263514743700701191255270792714148904302226720770522219288246339224026264195361179126340508425768671910464693447888563310820715661181205568311709132903004698326183374756251087756584954737095883201741873263059689472144769738050089147040354451340919002294887321232199700171987455133438090430683544166839846360815881035173958546195076263036099528285653612100510428906627299099568301091902211180307697596959132802603778138926282698631293899497614218784895404988957011639803078991909445940459391484960310562268088933780952325545320404349027023435749335889024283866887915896453919401167342452784719479773587787162707642603895732688630599318007678715796047748040290143953945958306096746012891562756982010269122137065508648569637162642009008967741713717378364814450333013158457560339264523297278036321074208585692714328625912823700614561874568989625001103716916358914689829144223626103218664604259132196411362135016307740223864701939878851137989559132478338371566514172147960636830485223258017589468145477983598530673306817189585480164677658909303372058880255981916037894987984222254316316763703991659437658463258687039125451409087669259510756084879924504939714571580007510780407875429397379645281711866445264959803634617059222367782951129841434601693731741113868111996565697146520359562629697116475827812330542414893102617309748439068783625176214216499716623562687139809029241274034840817602639674979958780060449773998082631921588584219563713627468207749524185723112426421184895817702327502827106782429900827685949961440450669604941576885802810574554361637034250713515958236119076103043397805354562039733358396606159659714425464429433815170958763179152846960749077557647983904862466721242655659450869960368966477467817510418788529235493529373241607391147002760579302096411903852748097523627566837047574786294599776655386701427623912432942958337589103989436192883350370964944522995378221257927888042652257116718544482082833266725680706251587011504607075833695013888286402384475283767643358619927641075311871507909190172046549037869822742739862520360384419675967093314204772128364883550457109116025377541190713672028759512928240840855923297052753433008840379503021704349696710068847062743293081863012074151416237613556143063299432954073212958873230762981039849546431366398916111447821007311650123408027686987795005854217611209764002663507138524979767692363476110961448095880958737610538813540172258584873791293863319088747936284702824335455494468880182834908271999988121845180516260098653019065722529175322809664878198570943124619329657057398731911212501838776059173717271363533974478970695228251804617937945520320224471294741243387766777777395960144098866917688117561090120736921433898044354550710413767823369202358267211566944626137646254679444292095312715144348066640912153860385666314481064455855487638619296116428992769069001374519163642794045705853637089458870230767924730140633033684132502261399445934487199919890077861006268534614353544080818664609972349886589230168663265681896166906436546487603070022879129620307728651457820765627156947140464638599351014246723845866291558456890996413385925413733631198388150905669104280011583232907549423727316528562499122105105742038478171653322021204646577497943370010806278451348382850082229719333195484308235746225695898323985151836985416364403747208736355805946587175143586437083166088134840345607603773446948081954551351449947884291437778522812519185631921300218414171064439789820789883753662051671543625789802201288202171513247659451231254964687692792946298237590313162227757170284995298245502458620160881906520622062358159788784362296404667664166089978567421814395001116455420382222435062736927779552786137031937921619002770216455005500338901272168598942716207469884785488523932713707845844324002112222604276196892890584761799387822982810372729377383008538613742611358530608596608057316109072499871575768191861535255822012598943605565777616634521137433713662121208457470374992834382963380752446377448719991728617654391089167532397051474984450082009638720511153441593587497913862264410206298983431112710885195295673533093464833449579074217588117367506290602033487479692095542136392614037881401242901354665768900028685293044580319590717386065217232911079556610950590872364793585444150784446408112015355653535195726614556057978571966650012350588096301421785376701084602944411135125067432708815302898830623155373152957618134430305275101484119228163271511901102674608024072814435500171451561452446171280333964952454085246259597767546242841607072421163962669755729674610551089684594514205797336082988809580081267551697857004913476332732769712608105625562163980330132936237503696690631938543313243841339454685172067174020914117116293622099966173840910298197898501386270925523875684457086995852504247840110683440686261265185152198963376530659972161733266220399455656008174119478316749218205783687245532804184198559872948399430947093185101681996166172342571207562898890610619739317129395473559170640975534081375443076868403379478331263959436758830014594201275471263443751987414280570287514925687002838340813474893309286327307398818911944875204308873751687337359764443790586229465828622193303327715991367594139688518131482909869510725476811510095545286372220996436147195668550820871916545758478350244616297600650378184461623610418307850066831289047864698620064348670005665655961181553101773370904824089668830568368601469622064572817713057942284734458280105375162599344129232824718648762096374325054199069509071016363274102447271148177967645476376465228069074403646977690554808560794826319807779745467036356280419007639988108225257079563780434676561709744264176234094896196800529824791813460484902803359827758027511758035230019653844253714829860518330946079935665616943573694023157968799641858383945256281533162736477618549353972780839828772251867343791132811690641972227265306209377649594609838973449158737398331073681338984247792547840849015784729806218198764470602080776304732910755222608276422546445747374802988701266129471016463966728887723133521279328941404592124289559404650668089449465021935505780406019134926636151975369910837909090664302344391806134283009846694442232587279949667939074372632997103191296767925375041026152243476494624894447757336625975754767575387739944543870654247156376979008642338915844859361933065468933602671431346689486369567225689166142273321558463197391462637451247455552996103852246095874147640769144788682267527966635509251682654994116183728122771220505053106558117792709380998299201837812002124538261983030954929783703557612779618486404841351248402627601207865489097010218611837268196422868562215387519289513846306058350027620102006816999909762943912430504983726406017985530829225383666361040233338428171611431859154843753734270871581316239083853156214127297845676464115251187584552705120424549887515431288084467060222521837600851216320504401197245991949715301450477509568024345757347441848121909703019528299932257288648746001495785489541911254345127606290601597724047090409481669059756126504316916648161183679175689008982445907824434085717245786059225105872850795058269194347089245555639537823591445820484240642182991276111136549007707605429727172618991764137741372743562600577536053637922752502961926659011576387188396619425036653238149271610551401397963059299900193044502134667080037576049544861710933987671635087017836662544877613381344879824111754959148718203637067471111924633113895515157047931712422915236142434397896896949330911250070670289096948060849190021960070032650895828348061122678848445209842922015187228434276690480843309238187773604217942274984582793262909828667452445808480429473231869877022056173113366894878761308961506160248263283286291556036574494225262770581490874215115891521864594643074296185848369065271001878303008614494038918002561973489623446049971411320303325083050733729340067445955241263615916922766186148029270194619899347989322868170867373066490460702038443636858625951338906365926600082076193180983543806257626133161690057546041488552515547630641619805089427838686486393886595411351011705666836028102825762878558109795461956318244053088073684055634694189134521991606064837080705486077034638522747205369328540925140666065479841600915987954270886138779987423231410258897523611697599364652081673677380173640494285628204460050513110537353549759288098374312774514309583267694081934228240272050612256048975896346961112988804972861250161616035136431530060899446016100437229319467064466388239274702837690449234012847556360659173195233695414171060754148165920005495834899718448694224825167226532403896014893069136422352318742698488058202884842093543694255417861115478165120156129601130564673395029456928360703227740783833684038910576040805983923839231766297914058159059921411254269301158464237812698219954932669058092412560908414864812955877325103510106560867723138223153036184105175307839190002010197911820842008214203033259103891143731288384633831850544057916559549273018083798748177509259709838223682873883438781852941174074612569166929552952516901660548604347798979124386989026124672022816390431549617824688621870919427427990841081068442231427273258500978163506150788778843270039847143285088006995958004388410439373069899738241782490455509622739462161730075802260104031161052788076339301807869462440414562284778249367229332044241819706742810330014030160428652170233510898736269041285314549326716289884831164225760489024355121623660635916891716176142496490634631914114462935264090952723056142143961793358886148710536235499299821187758606884785283782400613551243622255335159821240242310732847282400248792551312911934027900663236760873498126508339532454700597952751656965681346282100822144925133054623408485915257276363098820187069091941437009605678113310015210804490774724963772044771318344985851504116554566922975729789732364981420989930388502630153599239871539071339323294192517484468745471826398993529219120984166832998810646494050939114011212962118872437375285108323995740825193239995573815880689596027550970855899167512360571765703750368235427574153463628115879749165635691904838132331317606839805657117285629764940425907894708004332136195544174748911488712438713982711322037289174524626775462461251870848351208230156414324741781619288931172022317195973772211687103842354581618451810897063373935523237271432147710555269124287981694888984685684446808028836811019478197673083238632202761070415701425916906378959794595443580388838379717982850788590483996614879357483732881232941729606616545325420420072844520650065835810927739169611529421066126310950606968711748461659467260562272769581524406085522704476752569393869055651590360550324352197350018416745676965752759512132370834310687446521155056338069938922582300255092410057865632300654047066403738002749999021940673605387250553897734018846081247478866164090829201849125141491272233307265317889920251060818889894182160858779207131193050500759187986656619239026870037101173909005630244304913650635472499743569357348477305204748694920979016035311869830064039557860979532164894925832853067633029462359076308233425746318049092617599040418097011363873421329863027427395359380256448037433890907346861110748597162740539411921486775253779807384393670761967303582310583506486717922609707648165386616923766827437056693366490007931585145980566757377868918796551780258173506867671807993223274832799176428749909293608117730812288648672839414215297280937624917151511826741557128584122744874498834517612563154619268432733802543550351260087468733551391987505872185700630521121350024808824467592295043580838912550644209937865884551547572635340697287579238155684722177561888286611576393492334079493337580952903558444613402883693532297877351085474356419630613714069033338006499850486346506176253842747330706154157607049237398208714858458067438692645572381740759504200566762353825120068179314364510931834060856584391997936607483464296538528223705675337303451868211196081293004799734813966615918981266436750759656721943902366362854739578195825161629436901217407399512669909504678272095216842890372067610943469603477700573903717227884402739611695773316245466456870996900369943632477689590614517363570382928645524977674940262887798326693989906321854274392483375091464667255320070900931824900099230976589784882815184574515201927710004442934135260391207127913682800568061957296764047241212658870918876884565039368477852672929439463447152467470666297839128260670161469715297527029056174144722419060743199081580159124872649808275609661561279308496200248913270602185203196328193343712017277739822152527974648652879395871369253162935979555801087319170153164434254439280121070758536136939582220472380057541387236864782505692368875735787121805329174284742738583512032204606038915988269168049955333593077030282074942130593805756887640046671624917408452206734431566389262428826491265618024128780718084075654025604688558106713524801441135201742497675969183307711917843098789954774431683226058109825662671381504365173673644522543483011083132357675605916241391217964591182433657918941300580588087001730425619528977409101428238843595360758235063220429613472742859179053939382777134251696958202112910477962316909071353612552052760375601027186274512008589716818663586429668309722715806822758368777210128889351090165451196779646385235150653448566298938390562471775764943836804737820834922329055784144699484707178615821175067125439417410908642819526028845800484738028969229932552387235332793680878332369565002139332511990901247367708228575009983164541948735780989258030748464695237216806706497026976645991822329482232059361062374800948211674643704046981008410715632277678989875919403804286466773754555989959302799825729692177886492938087052713691737318234115125634007539918441202399858209894723873919372994888977822890957297111177309171530960214557781852696005619164412490589990090856576476277181035033803644947623464436332190097687851573694026418873970918721082549089354655759406145204758240460235131016506970808576945159501745741730371531799075752774332759022155342627191604604143511194937412871335470174346507555171690793788621068326991835896525337316633002118755439437695078386383505139757503151186377400811367240492562941882212713801985842053779808553191821865832849781849062722828336015669714650460185519046113095821075255405772940407228936357538057124546295670317914221934301896319901225388321898264372259717046099965343147398389671195834125629583797818592293531430001482655436377380092335327711057403955363841318162064072779269766365890027917755173141660337416022291871079487605004972371369635131943807447943289789427229224154122420333296362433347400922954734137834032703354839219616093419829929716267157288961149184946103359493389808735230574811975357661399063905360919759536412226578508228961079697943991598677308617684629468731421063956561804633497336272439650376862306638146464015751998850881406246179114078412723713803671533853808509824782448085532037160130497756240420339917049860778567242737952425825235581293566009246251367438987623304682184994326830427017737749017349283814781851699247075719006903219492042007518005955562932059898931512558158567547840465399827853825280132304998813354984245362614874935513127764756097603695286459504350648496127775976480198435849113759413350537688386373887358339083187717744273580846686333639533110730158960232560765746071730445341957224187816581460813010644323184071500716270572191101689097504286230595595639740921477656186649566591165901548013999735555321521374366487731008334593806908383047048657664024970173289687607422321176563708444008036175888327294267037438612186532717874601661156403502646080263178164924359291687446060801384854899212007371483446094055599713543153335146634059304253791810630515560451814469553604958205496037336533694367141600165275628803082544162875219231610666671926986539463825932901076184388637674170814158780669557794847524081996485729350071269954296222889075886070730532699349996901222576771833478145929244526544419023704867298689496314551638236725389354837433085597526082569729927337189412184928641661805505876808149535995948756705299687330330262381227057789860225089995397822834650343599131899721960504253276011839769815841779958050637125673133951259582813860555257676775329840043147259790678002750473977955429867979303992530694978600089198174501726756130341600229154758777565340406568141169555914316876881311919087344606941029480722831851188108071834931007066434478898190764381831338752913091410505447921087865793952820455230222980610357745071481294797179221664385835293164302699259256530732145078834588992558553707670476206275039164669924159049703293509033508868383880922430722635037597392523274891382943125645537565598947767714636690729222452460596492884754265126302131293953239750325920509302967715618486020095769464178327660218844208804560021147958666442383722328203470345624904694768195432598730058450448548061925495375588182433507249302138285304766701588310427062270954846030682626060759668894429115124107965803935449602184671963744457294994658278130161776837452067513117570652866686802339764798161125470964369372904996227456990534850402666424045960594727567796644929845323099082560073456331713371603295190764007844670850834323127957898636016169443153111678960954405041971971331706949067305538400466693125980477292552692147154353636311623293414251912636651693364719360983095156789785445357088764561330666939499706055050465055177186385650767187899088556802810126527283741883963305014628318555084219263481369623658917787847179394919462112562467050635262347509146813022539983723927083004974892751953895820022919042229837707617541071533841949340105657253148419962107909206729737615555368908598248062974628510925921744113917586065572553870868181368731390375514777104817171592765669772889070620113425143628049830152110378845388014994544190340956229409608563757088356444160923860163451424532444699374230593938826910918923833414874971606504797426961686351814281744689844411345087382652553217902098415273895597872427287610350432966272699298546397933486760218734743030291569784186378769577058555899198909854283166983950590040223785982952281852068318498109663690778949533826202594477266394546873772769834226336277679921562243918280222952606903873629461566189745282235408481796967237452946918051777556611555416625213835501545552588365032243472849704102274078260071140531896172819218566044791376938349566814393494531162245594792750962300216085478231068755270996863098470433798192993468132310281136178062817640682275443469287035528378017761858946293441827846236933657111823273823315406723554574891535329619276494006824472844400662438582360960896936089377755824378223950477614476284278499783741209844307944607685053413268370456013961399787412679350913585077128564860680196237161968626188814081073823903312427646782747354894103066826704440846695060518935683591846787760198753768303149768912967210964263865976336991317368934652205651637946453637452090810264479375754309605714194976560039377405597975582075058296959270686055420543624053951418684754062249052703849466209389223060515158637570167624642413750908107874375451975256748439063766775845988569757978546486077248445295695126678402203694799334086916983373432225397199890784049664776404672769928445489889945883931367804362909417234210812522285943112999379920315707155551054701694083776625344991634794052771055000272139793609572312688886300780491410064075533565565288801400946781193677972559341321539493101810760694164843560530804982449292668512394528250009591165196432567174461882280711077051079119475523901971683676540478993784113477454037812183861885491885924497767587853027377074605449358361840571336916073875405012202126323955285316011106896899935884469323198007970197715980574751239606671147306378697715911619606691400053899115311207882564498325458172321467515729122867909396586979461782224204612626522057956734576795881279943018998980613853171357607632881112548008007450147423496089723414539241527628924721791330007091156443259901257362814824094227559268471993489477360111250002441214554021781369178036734804728318474395361375957326274495389496324116046212764531506728530576519568860578121766609817185140642578641645415746969139168766758330881679173017260023931502313117981418880729947700214966356710942808784905637614384632923008692518262919899266120862711637092488152605626959528302992150143892439881593984127453207865174843705097926243789398516021037415898461946629805830669581457820236399971448942780898736383022461667379884233914696331297674535729194807244722200166346419777358958540629887991183814000190236466672321459705347115540357034465901605546731482323172222746316367243589601565217317164319491121907381931539284875815088494273190637079375565057985035618964427412851558396653165523797591214059766160792446733365636339938755405923231572679510519222993742135642558379060104692428528081612018408394208544542451487851226428094314325592981929764477938665257180713230461399939983839946099707366804346533981181209904732476322528171428902421615108547565729795945934546155523596943149703292281538437718267194018582713331492632656074201478934679307732172197006583007718183528802781985362941272314073413127241032219685592786793170557687484175226690738493235954419815858909341113109324387863582462109942509963716343124449079677010769948814295990697319616392890651346620530290057987030466882073714003243721069732720120183596228701913782525795917683300708920532652429276051452447153887771967175676211780114945441073540704665025107724837674740445182651344729664031978558998562206558931800692091831944211800722289388468554573686439228691102062443029515422319395983696994025354648724948669086832985557047564655454921614783216387618632094850869451836888801847150913820252186657440665296709477112507496350680949369150137289270445243369197885006662224451871194606563121613333069141693093673895848524536408818693889706197142769930986562968005598955910724203669560084856970636996275911629916517421551937737214978904067251800610875575571260227671222777357190049233901783065886926566068033698910023408451355305478833166686501412439382887395271269941977394056257105220406495243009449271934253290224164956419945649202953095557556964009510179038110730465749906088036378863646656256387619521215212676760270087945368558867608546869360490006924995542169121162579348166847441841475275673174960549468126064898427543297726022958959659187227482042215918764681935251555674208206890501991218560656990240845147096917729843758335188336547641826019966660124870613588227485855256542299289206869948433634383342571834546593979211680433121437239278785353234257177369106753842054322433552451109375079600670494567423207927921818976070646179967808741055990578957557460314804583645088245936203228832591517101304071550291415274712067040982992843466814578167694040413482557273351122180352348113963280140019076285398447853616167080440863755321026390025484405114818726978643669766562239544202624088315036074176169288452951828824425369290521047331211158028169134078020326836450616383552224367283614142021261108875108270679774393420248371300996768014177961960220237406195232220059571309227937361276450630861439022205820286520973958878929322154583868664431720736706089353271297867001954751392941135628686210511620909709757685957498681929827382293800338938133526907117234685202838762478370791494492842409557424354623531799641847481168334247130449038886613109608053181465035602549407896262648009602816919701528070957569935212345128930822813078650881744819263362474109407165051474662622561646956151574579804716096924752606943671336404833347601254988405819440404893306001696425747460460772567137914464464228576491201027807842383599455999819457699825456556449157799804699915036974118297786851805894895167107438171252006541679671202968407847717763759903457745477267692206905395981811380536164538743436247798539996844011540047697877334661192518259335181298005519027525617334015427458204423987911649218385282006033718985904890288332347996370724837674480400790177522161637140911997933958236444888678236610863870194832074027368103020315530927307436927771139819621169499617723139660062040795329270507183080868395285011290518293847904255286969290052916453449238694257905508815819514341697709608185559594982390752294029396154156983310737507503134378508143079394329701649415987815617613485552213200372923074185785032367037158380738719678552236586162340572516531618853032907398196573340601777319179817869950431383981382766068085510018879698947589890798551290347022571266001954480100456248915038775464070786180344813192611298579312202394145746445469158410260021969781728908638560147923185846125964099846190073390849269912969420537387915767401953665794556414127187286036110599692735965378259645853883783922833391478437915670987590612897923886642553169599196172391188286682820904388134935519171445807918679673596354397090671845860985788066891827559680289874285894353820495415618930455068968292440740402108100004026563840919952941867545629154868874473863985384462059186044596187858787261363618316703273581427512985900365824352533952216759369495361685666169261095526093678047732580512725993664920252156116718212830133810111826272246398563329921958155274393212691391160538318674315780020391123144119434646343990891408228847882239065809661944256305150561914843652213686643363741893974911302366145592377423537231712056030273092415539012165238026929805602287537147740821578995460667893246939193415461800163745831284990868962500571639508817121120764108649949570024497238190009423810852349129545670850333697346603760516366280847308460525804251345801806876568027316120315670296570545140433288575849387386371879119716107020704888115223589148085024163525309232578713378819705722703897585982198631743286679978192521362892455460276188589735385201932021624357021855618154176835601084181233104604663720310225731952249379534150518757923337818635235006778400104497785768893273214268375360569565781253550292006962488234351610768771049029319726348010441331805871259165695527994658281828252954776617417075645723319134008470170922013624132855299698342878341108624575264677526665841562627786022238941951113210318045069109130383163943713720604888571541691457040554429194668373809164027057479133778443409563102769665579425253433641543305650126749818838467871760075079628834888942911122202331860921034181544094523307701073225987152586979754813351507322553101415014892839344992161573686357904553502904984630279480800983081196580552882548859050129503551325405246596994539530641416142828269715708807477715750824995415142406194817764393890892647825162939276887143581236921305585242462073504643264863484859246643011203582879521210201654277666914238107388018401183067207473809291575323742398699321471244849036818225160982661318908257174792132801850144011478422532517611907656176663910859825716623837224884726407642800839826419634560923723487212743907061604204545813463108827001500669569450706253144981408099304317082735737783332403143534579154644832341369105405118915806749643430462008974124379273938201076699987627334931689384075895720373200373813171105732704805163907665790649041977688399790191745421199711793420108191504909422232556383818306171048499179643126446051205347086184749580738952756991775826787060306180709363460829747739939708784349621651164017160240820885119118078266685245666148215012839547803036352978375988920687979868903216207142151716137541835646245981321202881839686813989074752373806499595477873564309671607053298328371202985166280899178631134434423435684868089966384708406599129119216993468207052063903971321565336132089920590527215082170712282934676508472461254778397029436782943538585489970270619632502010953723774425294748436116965384337251932050872272456467290270004091420559861294167892418802910586255061963382610878770198565187839511815664309663636715952964967933213645611528842882448060404655720959939646086649372654216021828620909387572531276799480463633159238422565161114037697672049836520963994719839070526700101731900038701309154132670110642210030156302006787574500714994063428973850615926920240203997943209145732577269454452078492260059195169955414240891718040660640651473763396884714210347434756512538457848633461486306789322227274093488525396500286767877917072081408876154258132723268244463668903829993394091164941126646160866648707578063017132193314459818383591540120233758903548628659685461914215664450577160397065690095444771440197834003214946609177047417857824834907801346703616427795825318986871418445710728714605644248633392665039404010081258458115728187231270923787906929810722463253404372604417398867645029500075691650329458461036856400972502709780823786511715879699049554867225331936915711085182687877767586682588281690853710586687572772964473866120349743189497635947828361462380593288198576904869478591547709005033139191609413576858557866599812347039815391640280470146295006504886865845267007300254288663251691959973101231704549192644376723553943736385486260985366640656594943234857405882494861181908585419915570978899693828539142797944593179779452477167183153865910737349497594745838634504703989961858467114556885604905564169202057274681645174087079136620754267043804572695426787054258275555056054821831310828260713406381313200310290106799846600587027973695626842353970952244463284033470643103788548358740772337092913217646987455320757640706446905427115237647189659020804615265387245571647281525357310542156465514705796183321565081897940091592654270239224505601999947774724461262666859162951199729421057379105734414595171549801737417016299265536698257938526870263343562980503978723437805440000446361760277255731752636161515719621608150296128567223696877304850588134704665102767279091431817949400935893599557628157042820765451496644690925563201612825444032597347323451525224797823956537384988204560243944319046135025156648573912502712658740960418916494337814544196818349553507898540572770393148084215315109955887996396635131045855894159219460353469140449384641939441803657860156081833234458652170343144641806544474179063573271474073413171427128106649259561965550069414675304908348580662895663801661981194239652984724912673517223455610815197269309867481054310233978294443856538254149505237889477783192589707514931352446501002136081379914240217910718020456677048545756259616189842043225229982116811730202542955352572012082780846702823023261741007228014352899938602264093329590410158069710804167980322124029431881657938938106953785128814749585424146239568253577978819319683299999915120845473883889756209209346553754803617718821391731816352130250957371333170376716752417166866379255523928303122109848951847168865560113932271112197156450653954196185474071852085291268887945695425554499440530213275805569244595520507792061694005338007589250057495890166019801661288329418314940583972713173019012409130402063623205171021836249875745067247559282072852121436367440492832974574697666308130398291496048779352400888093389927028122853829827183941493959908229026165442032577237565236034484065044477673282562778840078579044824474012411483940968748543181189049728498677066665578050594553198789878999624491252331482845529936334344835086537056386044392169529467989119363957380578813392086712317986628244709927582091136437347177856860947710778940775085361300620494748916774196800883348108979358573159604681068091180329432376268082276810727322548494184298642752292207074677652497291072647575163686215975097299825210991384640785817616326994010173564145736005107623642626285576794218198218036520754780881608809886355636770558077928847619790927484716785617345621997324969915258652469393292323905767240990025277823214890976785968553342639731946754343563430551095128345642680586956721073653490719523822168984570058420961699820614793636812207670724680842341527509783838718735660995171528447343977748273494793706566240305036814669399359584330774892595998652912454330368247919810767230781276541985782376342105322581290204925899332123121042168776133481252026060257040043599040326065964279235286040935853087332678455461071412151054351138353292024248466030577351007443301056821009669212212270356293763614917523391088260055666577504115701297778433466724725706148055176673857741416952149962643432008380484742209932414612574926753324786422943461674815149039892624837158836741508155400299299714183554649997766703139990613081346422449831305772567652540569318190619052401016703300617583136822166108370434648489581457622129009741451757585704558123772358613316545169673777336187338533080355602085950572335427892264271896282828658518295477154769435092105487822109241671614808666916906384226878691169057445094744131136476148262841089284972854144874535093623521415390302414459466653375020720301859673869761253501696053018438609940159871147472713423572954274934933240509341048242562464275325354250899409486260450978994313941496319647379404028725897269485873019987071600872060028419995182068032546227982336204402466990463254282309165192609395178523324263467845623777234502009649814909515669258960472987638502274682552818621434921704711360621159125345662582276071466179155671519854960473146732503116710671612940077269681528189178719969502965881159487671903503041990682877805936061718448734013472919376136591234352597363828099915578732050332551598365898356329585336073165654739347796037450892866446097127696824182046631717170615169597932441984305616106303596513664823944089291495647705815066061652810547485244326875831253648254410056949959283784929855540353787006273290378463313393263868152419924372182715787053221974728154798223896950887366075721747869389037911793355099763745110799190973131764988667505417618467557120907765169819001371458022785555484524277307323623319229455997346409795786941244382943054065271762175041923201831468414871992714853276014802032780170262273287006491691273514218944482178015807705851829895609601763861416260803708310073274153863178159354759611809114766776128746484222713571769234438796111880306249009329788830379839139145657094973038839950257136477286550588664932146588070293829706312065516153088418823454896518398635466197532441117149040675912883682470944922354943381279692918114568792094607984041900986210755423343427731988923843943279625658935321303427239769418867692773186097585986143474895900015670668359740466668365203624563026929889072346151463527558152510179530120748858573593473282545748427031446878496448059491075926954641953203650391532419970331143768879987566677932898464921559177469572218246476213323308533422366400670435406442426538331119259646619971506259722574431402336926806968789978110970410631397685941911150703550421801376346335739662102284727098742997001661530028818514150004825309201336979455775025374834391749701532957457536388084435048329174343443632364108257592247411416291507270330883761851994093476384805547179442788661575302065766779425411589902044447653990353195223273844222382523315020520168352168547668738665347559975764362664286067531988838491358278871164336012306876608868858915012306674155543791873996212074479042448411532870269073146194060256916022385615684268079911878081001454382396524823365112691223261693861749577495141330754426741149242606287566010139981409044417113499708731131050275001712639131724330961155127712457157372488680610647093055251653467467575372486808469788773397945944686271367639451285858836641134773863523229043407672295538567397229758743581103535030236859692962201998814751899439421655744869210596427876275708543336165066242459783603391930095794867577532995598668925403582858517339770611015934657281279413158635279145260481774776298224935469402658060382571449655767552167726858912425691520141809329988079683333175691205919199646909844275122674041580940268561411569404828501525170398669038208307286287739993368492005892352216016805411952783492664091038378091814715794777498127821995761349453752943173486283954263335370977967779611318442899797573144053912584065565173294936834165231213437541179746420996266407685631112777403481272892679345370727240630327329422444078323265167344677666530558385119870945628496433252753992269970793176914467765933220562312016220007254470107571523708131521644924648561061998609903025003330317887963998497396723342073531703765556098029860028624736526231555868154401171739594541358375095242273267086221487242818491422279635321146269021492363191434007169569713475370484323568256395292063809995128592971400418665151883730599402394370168228448778140869616693418831530397863932892528229093134102832434462015833349622481701759716212188491956022074456987600506830951960079750547699363189007485895688067926892047879593635859874400913918036419286624928101774560403354826514629903888051917769937394078560794324115821825879156934083982658935031014734359889391658607994551345544145545778973447735195023558069097181201686667338721558305679585798249695998570511054163604958976514297400647495141320709224227361340417731015565527438663614699659791906682574137417113030890516732935670900529217087450145509560044645281624967928638308413768389553178288104073180806579965276265448139996211018348522128463177253320753604937945482396829771391363722397464691188440281436873311486102560801089081613697853432686349235701839997688948730796912037706702193366231404525063938007567980050359917487763991953660768246053008508696850381390083209301152807210556681225429686581246455719014470617934595058296166864147209721495632495824671192563742286836815158837196103952202106025338872867660858289494802445033727643578904383848722760178474382232587615890282519999715206317058865607885800226163372163979189174771170738485448399331593825155115852060936415384465974296831874762029466552019617150899838381075248920535469982415526984651048091050445929057220574678981537825444261908404513716135702723718592088997949675049950762719935327029566233515634438520682084777742358484497334524295437282552551748106121464052762251303774773241604868280341286283304997693867051849561593748430695960374436266421514689386796237105000865024167450867774445547946743995990938389083472792037170238211801403994747769399499660564792622819018093516608257198138142882257611519120281683315797970589111180407995847864379175337500653021733484276889607577429974059793197708642519219894401205353745040035699263523662969761456140238606259554899934146520345593664314800058394766755638185580780135093392826113557447507220276690939107266486580969689732265151677676227720572816520883799830984729208513331033314139731772536861504062382801151558640767262758329281318922918545787582921231511065909102230364364009915538093408668770710853557116710185676999092186844304837895264294108079334102126384945069712068676706291229084428297298948228184041051055004198497383952912868587877054968892626445742851964263406524403177862973233393622627739702034991217696467648926336804951444528652300738315117735680115074016297680344297589158282514857230160015183970901282127329158055181259642423946722393795286712906925938065446195896528914767080893502678319455119783258181979758567434052611783604520959046541217950656047924649312156086942208238510541544657264448746262258295992243281702168866139485696467577719604887112182478840982365194613365365974538889790451652791106311316182016379756616092869409947695991262037655950566207447605633903113722047061574039437211976532236642020752678253852014067327840716574311370269399051010119619072676680593957382017319640483460074197509447466898677109868745967428544333100858761859131294153723575640041799792026057414824719756523321037805769217858076923269019993812487338739970998693473631200354210345663189011739058258846763127253013914255476058484484180184999610787087447932523326967679435289012996855486776418456314820542360168196094916375803127851284897717820451901327034979010871072763217611249867296237090380361128718244618591287616807266446244757224520223506058864146431643807699524601557738923309536506002275269458686621823258882529026352241711593407896852894303793494050392261067770665187523759260310556633342960832036772557399588553854550394113638244406355169872361637883691444817753527648471705567148570006943035295467650056681674110732306653550235576961136637066738117071097908874855953690723740419619279193027152345309528722117002531231683801044042153965346525955045451800697268418577242626732291206588565110537712467648723020105038453522357612362752829042516095098672795537339354678295819399901338938019351761349487027962124721666780863505590398868008112289848607132866116283452758287582573137817782928412869232511394409381193688544105908016001704853735884548115248739943569158919463434256545376712105243417415871355672988991245216274967050146098721092042052403972825471324626879078719392585790063842525512737198467400013298154662903615271117230719090917675532929450234975653455880465149723657032104681918565619382887428680790013563055642262196250927720662281710102757658045169031356494047279705809599124701259713455873690002629241368548631884926783125905511033561238636870013114832736337277672869946076637662538421304162724281863212208942521769712910599249170609283140224036712564017323841777534093693253682927688834151453375702016595877364209638922448509202497469907229642523823852844508126571108978541226847078639125217869169028824949838561209369839286315061801866306686013458904029679619087754280275134350702640852925029668547079457411697293810368340896464350273101088517779834058762765888091558433227650753738519776931001799344689753537387972188442431391236782502211840354271308778756138177667584490225210806462653728106537143172511944203563315408777728237328553055464307360648069646262509219366982406038062727044821791232960682989123142769488081823451478021310593556567783824074650429463340265394534631434042427798200485910761346069340848198270151899345030262298817771503221044149311662139779708927787616061825815019702736004810369870001825839176450281770056670036142046333406295149714814002708561455687896488965903655191393635861501903698823956954356242087281165193931815809257261311279953381973233472522830561871505543040578852461632184804143903738050561182685113531785829024011558902180161242012293723587635005078226900061625097949790546517018499332265386478497157101722523806572090355036717454578973951964491662036429624478702613308929917967715057479636881049237354428869295109036768643805000501012206580802953841910605491550954745917861797662059714997258428403535947278752640282181002593361753978537406633166381811448868757090046178569427594594360486947027639725716919889098678927036730929758024166543508201777993898198310342969850852595109885695938178956004964233659253336931148092205444479730705219518767842648319272575928768860588378921450556375513655452938663594139436977338141552135821585655504602138288630149064105046286598053885216132973050160854616129447097196704958167206909296767644209577000199604585950993555801102741489833001792895562453766509000184020342004367871492624839796553664688258072971497905974445027182393421417725841872441947179406038124673312687144748854643757079401783653272669655140267519160312783786347056512982767435035290737768833294466760139332829492801493901018500721489264420838503699232763780680403358277291125563127624311102236911116907373404860101281695519870963628453199244221252397385757999939285330666835046655431970529474206227210287012769466763933154466302473454325067839384699050859194072921595552201149988300342720269256268242029263465522634198477240023265268739786032020158845150783863982929183592205657284289717696086905658128297311271607095108291323442608052458547533478233959575622695785100318006527979201122542835143087457967169018134885952176691667349888211326968860330490346213036978823752709075200365626554764557071303874483682070935600291308797856334921294247829121890566643434276040731874209994093207037974924482990633376190620350203330471780768169639579595603048389009200439006455964283052829241859406896008753729759638018381165260311009831596900631420758808027821014025718114081124446398827725963242617571658994410463257970207584403223630873210813959425315820886016631568472786451279174930084877759476713852129573925683158974118581955362840774668635492277118022275609478797385424205545924477923689410774722382299063225736735544781218165642905462260320191602089516221633467730716518257905437492680015416067335497599332552161701762296316950866680590737963993758788861957985524631245999867155930667514660296151410238096917101530549446333271108501639567562634550226338493751610771614233584053717504617960788304371098133835054467264238072912547458237792878485566818708600844967629057926907861190241491356510185403901572385028412166992989477993073557259514417361856888396441973535318795783985974474114402180502754047521503503571862958082926445633291880800919182026003197273765056409862674231462149683642848955605808084104335572674030866334455603697517803934791446841494998777707939137501104617227354016308427026543640155423235016118393325216416520556595169177321633755045800186171361953122402808013005723085568443885348463251209784223214535437518627635252861644663351204300060099424990177283407245348985966362238310348618623695549384759274820622624855509135275194066723328376652924883419426722948874628030131272465320822927211684754963697486365254998282899213037732862884329561487203528697372941117907835062544529472860030905131120402222458569849813387622188725271536871590135668449607202232640521827402127323714832920248017328475220665197901601641990183457990240392675400266309802481910746930647648719233765690591202352857683408475502653438703780380243052762544547872817024606309922215076516673557318661646626703784800330426055171173220055562066448028516123807459224150130028158351859062559159285013716435761003870804162817354267483434469080708909126315321071626097375210927939059823306842409273606530978190721066919117868058279707813087356720033483610553618241822668411716989181601401613831493369468245761172032909231037834062083223577681729436854469361851508655633307849358263106059293583857810979007051961141429306097815306180583857835851970291579817983140172661746355420601648943448989248050500836074293563530197785182339196853366300514065973021490482375662257195307008731271226559370221454129081563290427523137369237207627743293339707275255592250124458747751719463701144574619176007214749285991800033371644728629678985569504547299399079693694393672082672897243147549258297690182782610214059033589743154569977851795634855653365233439686860836075394988422696626588496291836024518443675947056484690730532006690147203240559750300388818972284638273705762952358912610929187994090078787596691303250926669969557089681408488091852057171990514256172822367647025091366115491079863663375624994323473680679429579233225280270678821373740003737046590691728174884373490300809869970090615399148397081714305707086258715540962871431580820751836751361528404479178192435241971122524665133948697824674875146895927789827585323928371158381872582705613153093532500041719888637722984415069232569801739245138030960687192834245808429411840113508709475661318548559636778624531488769756167262366720523485332565381594169314910676264602424666183334711932630269019193750112682172621065535103468606324823545192173756392308387485760315282939467909044582147381301758093129247949334341562220275432799601342212010183483577372484365692959968331059417154248061088697654864011513298445329834899157921443778475556640157165152487998896615813820502863165709076402275710440686487236366866243622310306985819776664625325079390561554510332721669092890154248936130423610724032400340810296762309407938051932560008201003593877276732921213267302569410980295218278290898000815840720913856275687876576898090577234888142068609754247529849755875693300066164933504552237197581815330860799538308368812208916698415312951789253646805387034113472011263544868643184544211291353459772847732754853415277602896012799339940836148291082435588598996677809511866182231712480281296730424012953630211647171985253771610348081400847952844435747862502862141569310020158943416043902116917620628953003441979607814055569297388301281802559038265073899115576400923930647315895303540364101902246541535718393415770438765599953922975380567557256279021113344724462815239685098010525179503080318142326879909484746756910805956920701596958151237239465344031960185672147269921323045272056648547421536540715402332833309834546373662969631918425923736856389992567849162418014074730737154565197811066295085416595644689224167676467428518872799515006566127551045322328908397338140278739877949029583204633150585139389688016908664120355892780971004042246150400240127984574872496970204688909852609774546829224301946608723209324696925800276093601911579886917008210502885152714596434605858035263243605855810644286930455966856231451336576405510451727029309759541185532198881863454897552939901697259590803707052696719909259046795014968666921646848122347080394395738777513262585823511555922109116489527522126960787868760161485135745915608679769294303329744193853191366146000329832479044301405634813513912821337750949520139945163102473023837178902869884285922852075882863218757676275822665696630398608790653198886828759838623931635882959413296277039475113119340552316999712279496537153530973108528514325229933228789155300042779800664953279053823075848715184629372966676057573773301661040147846289680570441789972177203246616470363871130531100872551982769319009506100014153551516872824520130110493428683730739077340249276463357617114232792701966494398239585935009072929005352238258258271021978241615699939970491997359294337927261002898258721707728190723980434826674860978432432277431981748667456368710961089358307023605053896850733644445610092625833738105597071099696063981186612889014794167240761841027303363755431093466330226157672592606724639974945907016421502290698237573046327151631153241727546026341603805673738570546601882291333299653894522779208027531244362209307706750365650826012467806399342231547043745069664915893670208169838730468827742324301404513101525732588980747039367911818897541174304128909947622270356103071274035020272191608756930049839722280246961194994183315562727055962806516969925224362218846488385647398794746091975003594547348264498082568309402743161708182058222629809951511664286369136200390023305887455282740078708488523988155278494505113389397153533433308542786519793538872324196118422439682705303062167640619804988037713771705497987848981595453878520637055299049224648834895379475365809108730067157104211542054763771898855758726202767873741677352389798486658143048867258693909508892001066622812558928012826209725886970695447717918037802508631650606559987644371540240440063070399720669205881150226673425951975047191978782068999148410663207228816108367021602406213595228914729506496919709425653814060872753657580864755800750124082751825095633660975257795325566900349498803398151851781910746449348546049220376668138805494460797398978778600179890321904359209936942285223141785563444193211637471109725436756216668514042680747252084702655993462010973939038559512287331817549116357159516625754386088162101740847647219691860753618319473976840988153086409511134774886797293070008628337912203264279453785372071476019004902245448046403998612826722584167807945970596064787345566351223271934837490066224814306420700874404234819640625930151404675836036483604601022646920595014845306514826157825439527453215541184462384425552888211063772733519396550076319938105035357287952811548337160844449164583468423848920110610353826107261376093548742644816884649501547356627159536553998801518096552225901518452591292614938915590737934989663147824304127060456741823009916696391659150229634116652571776766053751317809362668708301387060771735706936016289855789522668355567040918097726928589672403715022973882108538254010637695069613406923057523480392839754036911199342015271854630468067729879559953051372832075147669639352720531693516831394373920837326571837948173289605857495813806106542078221516277502476396480181045156002180022634074067990513293874806189543256878284112046668227198378721472968517614452796580938999682519904950500934200396962432623744609394026904605274056799117942210406291181593443683415715985709758138936884570278801681769044776155903616265719679591665167385695148711778449964781390853455069689942597603317989633847511415789144553641936525682597820259827342822536539144912973619029703768727642945920864399542082078939114665235336807212548538129279458439734391037544479733848274359267451014273769492492810906016995381757938008771671484328121582010314111381149972152404903391049201140304903566792673503580355958102554013449873567793408446609419574591078059491795142898773002353098381449654127742342844077284159414524197649469923462612137358024694844551153900354895566561129384443317936859423560198072953561849622380950946860043578073727424620013976001282244207314289246572556460730529816746662640363034067209590109732715716943675640344520847920173956060234461507186059426590393281868370666971879483704443401637175116729920302505611965207705422440203761714486319530604021774117664659981342188278678644367352784387255339110917061030460946844681842524644369387169459688351476703459290310073255305072318786284424035537675652649737541574754891929988946321427510396603570784234439001657097130858809760104400461232967470311800984670361792001562169233434812197404823463421454031155004938563903933108830434574293504465592987660905333554462624644379678836766797095880596844094813210878967243246822049066160627294847945500936410615510714377399282468911636741858980259614612498700862549868880005498102669424214136309620973620103754896042658839281773308534832281226105973539063950118480958143652989454408129749573036150095057123781634881174755125221591907814218777356625260651754169894508101043378555297826830749217388179255927197339711531447286057605514532137919561332941511803322323905311147692878605239992162694883284495700711724390983327599505001629692932409792607766252692271302527675125329912995864102284393450034165321129802464585205633240985791950319718239605862951217443882634361680180906993064765682745868077465964613056711605922841470500275433931688133300169442250558963532174941645416721208831551908920970295583259002210437012472766001988744455559043599926988663550102325357192939511930616749098904658578686535436461427497490157140007308914349072573081410417107706692821550548417317202564685700018008760671110447828851662023845261170018746641678803846135764772196432042378373458653578663814865080416864814927604367925058393886566826016694793493410854595139264751633385111178592862428792028378177890252267280406546424717626794601362961969033427226083322756629918788935617803779193263519660474329509275028699675786975129234305608207487738534775824042736465566159452108398922634639632873727590887880307113188134399173951607080206484275871641226966199442465188497035593996261107701049599456213383249413055316672420133888328037703001846835837346089256900236648603294520509444979488945420402838210685521370665093950445630627100195415168770762558587386506178878025719273321726847030439155360559738741633140292793348912715584848931625583157689037451466185096309939407743848755932793005187386940899152602626604041612094140972384527143295597052287328940089345031426460811139897556984174066157587228139530961197700642525618887957134341754105266263868623405145177037252678368920178120366002753771168442437570572227346386869540406782736302937079491495672256225976549497365792918632090912762608987512749598647837665857141304662639133283855939569320095735120382301121890613285638861421614910244737641127527869505744113108353980565857771083239814833774038400359301720836752831929547620064449903593192823179307794111394137333044373360025638934203399187950474389216430169310269033338621547125319627171280484472251034986084560400730439603608017763341578866521205223607583721298268268630554806594205756980219740359775106523062646104000564390747634614085757508412140333252300122885305851636032408763675448121151468961016463166748137063438090985435457297674349341029946874313685820294732588313646633456493978906505531327921548007493118675038484909792669853234188505519558173988388924042279023702456839363248682875501296882998104653770688760659179676240337748521731491070748606443644267750610035610327544602831947625190305858529402988047818464190686714473462939440839646671186413903663355044548411549087557843819485956906696655065337562537429341130535850552638027534712010224728409404467983314280785428600726290965482130716476305155879717664970887073967857701107330717893813520603805667838457064207432891808514377594121504678491046848196580772299653922890239325869760523693771428534353571542413715149612077278444520155152439932358697334597410287348766141730066363847978161820180895796553815459139036376155111139432519177262108507010848853251660960460499971851314837110182740712384842224648125189671307273386427879831211542781366441765939886145632820166126564922838999617491478884258531668083946666566156915125978000724789878918089112293370170886052662511747156234240302619366195821269796747738524984800147483926841905433883615700895596632791217964895250124806270212182751659861327832111198205115413831460771210503804245489665113807628416764097334266322578689982086266970849892596997107422151380987174163831326403737610893669781322615463368164445397379036698424872862425579002768753354230987174185165364006089493014358703066418993837573811595692767423611422259895672581398934563810195225885311456854376594673922082352789467812709529921911762840095320621184945354643240844672585123987200229810932384290331389715522936165955130662048186777786998815961333649388574766434405406627864820464378838181528697296097890233413758868690180622385815196819812956537705600098450691758784881996459387596449998699241893239382133376302786480459389495238737157270157117519182259487328156681813714188874279113982384088623408855735878687191513430738062868453670167152546312522391095659248348956798087412037206644943679073707852788198234177800466439828927325229894512107802074553228957759277551468580756425110078490350834123177489339256673698337659670802670951970694710785349673394753915982225644627073447462827885389386052171689554012072923564948037917934531188339699944767120923860897252376334973184396511555157210750170518727571562208868072622309051927878922001506691818553952219058912572878365212893019792740970406254301161078570395943563136975793073957531187240227101837407983244941007649435554083455306275512060727784428525067498735727215189259266643752646357420489777249116193834134784052445944967544950245338173344928504499140229464334183516017281093533331694638685936420620506924787943351865021677840014458892222614086782974818515339914299211021083879971201548363562690099601693531263258755438047355298632290848092652512076010978928599105415914004546799047552629755436317769138335355624573287696469199217759574353680613553555525658670772343886092022041727620868361920976672039035178135601102701209344141949321676911435374039437270572648902060459242678366517084184037967054210445896076751293494338202396203143620173178748163610560910471323317381940197863172056776021388168294119393942740579058311024799524580316514244761379584025600978303630599408963299138780586225217636339700410113548066098825405592935456588661430351792388890377543692828821746132706604110171253319208903297680135924574222007993682897707381191958407695775767211277517172723179533604850292822652044600421240327268323187581260513209371717674511569054216868365716326067515732642258579531964737879526716039717391524718290917492497659703810653721759525809451542550230091244315169138642947439625933504958756166343210801433170741327777599207341418089769301025138130088016170945431402340719981161669860576002188151005878102977113025666015716456688656559445825798129359148208556286947972271503375160094122003109198385873622727700512171961801595983178214937462624246501604955709578818903435745246774439197436180578200115642255488639937978194374220924235997069302393198190222828572400687434783415746261572825071112009588111566626591257901633845570311401425454036255108345136402197403933570564075612864098509814552101708962839701706984166109200656216133906867763755182422229452324121173038810315037598494720607839418161555397269402631730532688315272020772222086685888018368894805204223773269196019317948608950295237533935418739109113799624502807597143674174478437442806398623121755175482081318234101984963656209133721288860422983100726220353850423618111657080370042972050158604418252101311977900364321474263966877475806822008625253054547173671154375814042287176151234610084296120861524507412011001564510801413999024577282575768238149261619166457859893206832895645981868483703757521980189721414856442668381088322196664828332173222219954086488852040936674594011049014010084350346702039069904325916440786300778159480756608937645626886904895953815794176757581997457080556147908038277806156882970493406360608356316728791895322867685008496139304985930232320889947016661558491686911229621282547820174177047831035705018754719791555471679505238788646618359783989763015084262734106696637333011507164729454125639756045144754995206228542732096205277933570489644771600692641915545101289577711436913079737284827280249356587886869691674122044315413173484319918195682398763517468820879175451653022334300285647467628155353638832219410704206900826289487068057073556329904589798014162692964038931435047149926069441224558404199449163606853965880351004591763888440235433206055746887434348680267426993627030641765568544296828607840048223286589382592612300158475087125119594981339710195848717604607276548140861069701048664971972283370146551588457939254373134560220313209479573791493927103489052251591104370852273873288865189223872058189167160404276717202948050838394838944427777965860090090254622975106900297640802841701757803184437666800135580610218531648739145114810633798424130183561335591743506001711506364932286609785666997336233623123947456742101781076190735645313973690679658437424672240713688831608963383054009439778520192545488438885817539642214371386207217169007203356851117653243365785915079802073855996335374664995588964088767580910908797152198109955584796946049021265949978773233673707695411021034845726062277813120662861364021669237537094435193358732773227977213383788876605198027288033035717601165294992985330042319862908143735927911627380470834522316056778026526762631163314181740257519749586319351612293399010288911206085598096022260111107594870491821874767961639907283836346024735729928910807187015565253629968233400198774726682471698713140425854109124709984097777738880126849376749747901967464461571204596288492284265236871276529625560547275214401570406353820307411534613497901632175541386339733212325213623073738700044786603352559855708424386665576399513443028070551753854653096399603868094210243956079070472802700124604194332124211455183554976190956615636232962445488353588113932118638086538858163654804410932738893531868881374006353833113317449735457462949112791876756571890840666344860860842383610536324169019092500612091054714378228673457641055626163081465683037854204251111931724911462698239117304240118059781016399486500030614591255498938843209906200546875101069604187275014988932811176753097242937295661766019808696586263749191779238083683522340230487764352252098999043090046176915410872792383799673970579501294172927587172618618409142899207613523955489238453669823630596755724144288761597369668589989391590462168543492900487564566277232557237870066017968194173248093326000874689407587398604881695201397448953409698868745246688200505495123232024052502145371765194102549074725330613366963323748952411865177858144516513535112540937870583906679335928952093410887627164767486016266445627461499336843794438546973704605162424732640572685390196590138823404324623047362221072883939541629776525336475979317847077526869408381902980968160307500974333491481974799432357139657081018154988655025415189153821613507647602617871820189077070780062859676155240083162473149716261765634238200874421814405717802324395504017217908944322560777430351411062871479713558646074416147815580019381961026823109449866286174687642456369928764211254943365543527493078828912820044482017578431007807866036808725873602648277253391012457775909848600619417835170664058123392786360804214417766409284759562186620292644703760564089390281316719498566352297224127320911328939631687078361073030703093180275882468202109701740501823452757063502363835698858393045884987239781083952306683124239941214258463054636215478454992385184634761674230948187604784402932102287378079283389608314570070895513784935681345750722572534065316108092977503841173051405482652864139265670969345783645078737175111218573563649005153255942909323861776394105005908215786056630248618170300795153834246963304712373314668445498587983268961767231496883272638114463665440479542587244486568749833071001649178191669710297129753909867337127549969789947954615129888749045024952501768424281353758160035301209260114276488629767182829323868825034308916371689246059144232160393094098153416353376098244515987980565191188868252344679387891552306936589831887590265515601297660942576550093337224429496303755557599165793985745634301588617138978725250263253041493639258843046917966951862082089571121202018550501016318972503412410251352872724596821797713558025597821362947211673706809913663142851722554278070879039214728519112425893334847965531845740651437986535749601921300978345544467187199690472821925175258821826107094117042760271635269671969736093766685684995336410025146923827455159449226924695953653237352972062273440534495582359297057297214929487912541202608692671732372077862869754666202435521099982318012979048176484605207184366277107164768263415928869037187499795556616527640285610547440027078104135431021694691859249159646666171372484750495533282881609180603980167295436332409181665005971182031688857270085564738805392431102001715867557779682200669893557601878558223172348170503901299792071029287602973670274525490468917099093611811765074943899975557456901862352212301128496693241567689808356862656254580523738642432137840131088594491403047848055821713665527874685303872081285659508714306537805760145029403592882193629581381588713556623443525113548932160592208148178177641367934720355642705518951999808041218322265486763410603781956836498338395350299431023173349249635980477373153137517249896549576470614377485173792681200277580313410804852655440869246823271029626372218847978909371477035389579879625040898256417942711833594706932694928310999128994691907744927422092645794840385225321923540607189387095872848085422206723751799363386721255269088396208713647853511045300235723424289771485151529282843728244187362679438152095757803393655150729819422954282331160187881217961468356798483089856992854231104045296746506638159324066047112412848026654417571052762570552060372447712810183899251534645897330253829595483453608055582330903999420927127845479791503687389356449670974743945807547186353956463609428623985188068023733404246573003111370098858755187407630639955030623523941550777467778005597349013397639983371123988676884105462729753391016264351644278047759013659023305460022882234123753367896117990288435138567321967890739682583610837164671590038608000675259057306935955564781448894613399718580820668610742983534863353753273999746564326682199828055272132308958537720045397299289349784250992724693832519784989126499737706994619707697298390293757943444401639233177713743492147817695148035311295662995547042389742395226543013684631334336092893470889434768902373856244937514246770441954276255210347023486702309304277891294797555917767230396803161556942085830559531634754760637651483551473704456835808395953798577421861014788742321597759105555861688985040036602307713480585092455391283346664501971039442780586717981355737156506032837088345190017768967002908416800864605877909857433667634972733423160544864258308965956661475660133479371861649648807823127190320800853940424247580472532275153764194388828155662582344679513894100005041353638262999628456598659367622103344449675787815870997500985020367995099580126456672635337389772374096095307730928769026968584596358644722458083681874690403333094672291263027391591521477753600177205799434437102321439538035459231153977713903811570505502406676051259978475834770632997935013810124359116399406582478944948863745674291105393529464204416120630102224519520077658056174731602446959128552361743816414894693961666784362685314937237733977303897548558324825906630606106577715082278637212214596821957324558411002990213368392192647914513401928037031804296956782523638044858386041089386833566908543454019131071556612129187680901526650249337981397213344292023286626574409507737691336545278417192852307540490354486395986740897378945066242080763741192391994009231269239203661566127219061352484423824132377919199348287645670789618395150514872193347969639119033119214206333348020212101281560419788749392109923077516472000742516575844926598356233640821098881924216881300620735317892766478423103987615985724806171688063376235968049470362317506864274507463290222645571126025696493109663732053042760356773280662378561102140833194531491311736814430457605040829860739104053623895739558197755444441037244688551127426244330585344469309375291683872932846935587944207831524299842311148327861907568841132077366952737970857688564139857804285283157272794080953667734029067948609510927351672538631105440954419215824616924510427139115136393647605128834277629140247985392012392370097921257568528593410311521997519711728852229361673095136016630150006031011583743975522101867636007612480564088765064034159794819433532926887952401013587898797369443187287030918897601863923639255986912558750652342540587475150553387169091621146820585300922364026106460386520609808590951339881370521068163623207314780745258904272104754082989969741833656159672744873429188846355016206875349157018455162213444205456785239094152193277250188091083314728022178046079595920918421043142595993653089300276566288591763866010108679977399860476849896942521238665157695171579309030429618555338207783084920590299225234093990958534570349707298375244878081160328829186216500622622048820861095052411245466864996336578729313821634854563737660807303706425502178485564580075820988380685234638819084173616496535459587321546848990294050149728222092680648819656983836139723140834241680262216064527523467465816835312419488823893608192781977155014881596778915308447198503472606686955647753945875250856207262856376649767341582507705851832777333972627599832473984405873368002907351061433154523124456055096427444030650832881797274679011941389835119468224264819849645256504304148583767412522590322849374945762816176318469263943632461710035308623718140177057943899434083856743497187283145888392388917362321971895823889093452522478492664096557524388691070963885709789234558845010867078486351547122157089505881171007083025411474988083706955798602266650981687665888133455420164658702568371159469064431015680632754583186797207468353320210908277788193776733593718645425885431657930864541746152811464449518384748135847410509178157498334532202048672173787156882395697025365437863210014392648329575156895167985051717407939393273262135440956944121906208924877503611790404464076987020632279722538438176491879431572410328901436431379948687395067337002640020281830751842212839978671504460407098386314555297027686267595915187395451586542727850214751400764612407285013200430974529135267764292248545427932116533264903909726073572943576125490627029695643639021385927394011309444547756655934339968125780582235412870261716262481318783335150533272005467086064427824107961038123266576092025743186060271244188364790494794023260934322846016027205983766817170593598267120267976992895539924076177024743568293714937206697718949338700393902115128614273656651291559990928091327708431696696799487827973013086121103217487700284385359056268040683990614763568334895841602762985753121800432815708535496268250324996378613023638068313476217876112797935274026193974053708565076702920028788138478710995687845071802943622435106361753019517315750485947741475474304528467499721026431490099076924904319540892769543973161090473812805652673147041544665126047370607867793991402572229876927055444921762262280211087016544922850857629556130409412454812682451941122029103617663381724568523955729990483759699428307031088252005985687757763259577529555803277412168047513388916002150063490197343080203078782185659769452204724658915809332094985396429393880785435418727819084852852519877760348810376746085848790183291471407992178451237447768889570749238285464405725048964641062581361740095117907141313073409123776687541794360525713947852944302316691151902220762809481541925817449837653576917250047117380969290872572964441339358381161584575780464823003836461809568251886106799880367572163336672803258207973179345311497356585961228124582658001006664079433596378068513441362772172452973155831809480266565732425379697105454198134063944688690790088557331463535400417531336334598919350800295844756518144886014943897890300218319953681063400688332899674393826541870962391285343739000953275157081970332757908664647667296562048763402763746443721806276803426035758885895829879768124316025857759223938929629420185885279914907231188428511391603518806191856216498197815528255786112428609914321500912004848893035301715248029069533959887532617480207311588396963045351343509977770900142314779046574667232776440673692024822064174116457981460548617648191693301357170865407860529608274130370774164349455017880968056471909387508110450300224311669788756594130640416092671683514023228802516137414636359858582109955844287567314887443025097759825129679690629893585265795524093875654250321664489750956646518536042169678877762644935348711882228929334567668334241271115823336861497088666060718345009025416594574954632697762976355340709979823263322590630250588318795677111997785805669362349301211838191137359335083986917838750344358642401310273971753263369804171276842035114036013179141561888800365604966639770587280037952148267676676190735620675861474735765266435305944885391765803921407958290024611669481909984872754980029357733780333573706379396324515924397469297452756804787371259816117141519221897087204451603534101875127221229704541950508448549628386020971784729241834637976629693358057743291375174656704379030509441679236914622431071424757323761788218908057392856433250501660097838950158750192608470791875399958899098779470127251039443526863650291304986724821646438332588585062148610650140548055456983238306001154998125206546444317351222802478873824542330214602997422757308586331391396264905114650727603809798651053857346260348598179256261822033177636230337138021438521740104791577693229525418125087150532601168387258106866982434318076513299886296419492410180743308659114126199961336502349621470411514469137142280065929009775738809201063310117396763772553750053813188093047979680418696215343041062842515438359006133373638792188417818217359551430400270642222540458470980797435612361151096757127984023650401207870253594696731886253369336036576062287480781176411441829781954881257673975299964146036069571212198760554721163205814088025349768084611557840405172003058832206452312514004643270347233424646117207131872977655376418899049564166659029010659273251238644292557794107463072721426950001469836950583412169237302042095652999280573528766231747184119989104565310946809091338681904021565190014915239959476992460446028920668111908854132091612392016305353743128093614701706355108573607917110854066127509672349242783734039924586562703391958256911846652902926525244549188841584861535713780408218996413722789414676972056343486418978138444990965589593153982828325146814096364437767569507377208793075504387073106602131513403901300220397905985910824852960763549305647666602579293688763451565381719104159792220780859406977782962826275918458462856288729834283530236081893608985006314436173551564921029683074442846579940503895411648264872372286131557513100701629038544500996140857492056279690886426512396710978845204337072224992656505359810499958952817015375226439022207131014716884718488739385129429726655337768655741406756599862912731211757532503542827827788670759182149075152427245250228657750979741880131264953348682960079195656008066539837905475618721210272537767078580331248680702018222613685000157418631187220755649980951359640508069073761660236810123944714073307323671584447308809143479560881525287992471921829926505704969730151182880906169379144532341895655990937435730700372939013914581134878108779257038734055688729261385109203013975938015655563956823266968830479366638528119884330136214689446184470102690244376855530644628416585572435008559776967198026205880556928572779021869616464142468992645826508577228165832136823399881424715160265570321618913454701102848489078895334133293493621468067609762676086216901767344471132838558267944814987952451046389827222447255231430369071641806415668695809858800232496203976223923967086991162389188127332262239367959597041893734550502750500365823089004924292549147681243961391083129633004941976529616484951036713523737411261028091751363137974767392683783012764997774581908553489434031868650768960706465367338175007562853188586100556437992042542760132057125983056841588797103713102212672558109911979776972690774352470350057494818057230674759724198298151365461691279283066663831556317716619971723741900210195930911798248404412553033794196870832408663231856603814818878829360240403231082151386674464776751624305043263301414777688117267603674227983629738320993023879018306190497446917818354753842812869101253276852481087376131751750209307636619586808833333531928139299310300163275838780093182273971930534648991008570528448950115794079314746264909487220322194666199845333810239736907564453908160492181794903013404546091778405466446459416689893116509295322918245918045710779558017690564375995713035429407361935683453922760707747991082925027871221792314352454975312888572935618268085839935848152025450707820657668608839415415978946717509426789269007756285221264135054899572335559002444671665765312448036562142481903496044052329430591297542542392878617367376159386291266219443799769821279210980760061307780306620605231541794143193333542199993231031008667388185338618658440812128988152209537905834441313477880050221677046993352188744736515004802019407591106042553481881043118311681623420864111761795945494405516321984814728653399183722253893612126023222066357162640665264714790367620385112300853182395800859670512124702899015813312033452223490546024195409762703510567898093927197272487168120941483812824047613804722504210770742142466893738644309213599053512638094964286370115449169634931968288884786480624997410533944141740297204522164274526906780259780362737017568312614181312523879814372580762648462311678031458471425290505468841093162325739636961765998884618291800659783106617096298079540937655299780900638929403748449477481494816394803070509256439584475547729656991799278467983751905902644242661362297678509934861173046407606061056807036076318606567359728716006295097974580629047483056588122587858310152560981964205134842084706522241084639123591925931365764064395262616596901908222767815704936428503311018687479278006805915801775202071470467471129918502953441561796780061062668753913893483397741961561955659770864968189732139612303252479198072900972707726196504101240240878108788761377258078257820945234244531380811407202814603118152486846947846912358352380474441427111969415609048100500466327085774928778446232559121748530328021825566053772709419898111798249943185826337681194885045315065547077833802617741872944857192504342168079922619080606184845902966889619980327013577717144370939071443126396406742639894381944743074299312308707721056591366425135898055737362245411729225551298472961045236574234324647431931736392242819669790655606923397590032469190602401503117286478113348670747485698321353203708867746561588762078007721267245013367578067770659022678365540006785148618098796946574188580619078141237011338595534970747153072732573417082539932541688828383805294697684166378309020021333882928793458561287782209752703421666059574375494433433383597612279823816695872540838375831060483123914001630307360639444307815493703100563731254188543043338660646449279677589253586469333822963150332069691378910402636882627102204130113018939234974572219148336885124559523251834821288787364130741391517207223165278532605500597878818980951608054255789408375788302422145815442684977924543091975017899548989419623913948629420602955080168124908900101210014998554960455790972966428972956743699003886276236104285900655128426719889469863730081858234765221837439769819241058856546763644277597811389744894628851263527702901069827974419451440869033311008659917726594770107819602055085773512701578510123747212541716645306858653999194188614108044465970692440870425109776063109120199336598185326835779424505964370096103729404554757013943410229494014972826790409454968998723503443134296628140877917230777696214929671525509507999457356256423208052728205065596730070735665517727543262405549131053670475940350782366694438528018434260002332840561247931834944117408200786326476326808782507350260907000835335758193595692858978823586567806803503583788299847497475598139000054750300560568835072953436318346082564648295773992586623445576598378668201885368441619936269121958468686268271762884370640456367862064462244476497243257761733330024073820464255091710541830057542782130651586300765681627481299762683287570605508919830198640079209445681995914766247531851320569466565229985498332235002986458050114324114169118594907746136981274347758307494956087629063429952522332270824015485463048857551987081619224566291315424792132645959594214211430518009947839142650113346975719599370499162177966290332744516147679373448197439002866209898749829985798280790825493464938149963725910843541723319852357606721790275685927981101312345895638156986885356711114107682623783387042240638390414484921931583302931809637234494248151583997265304382992175888685484453242022927498133481087586119186326780011002955951071118944803433472902849666015755427654989038264349152327677047417587117404891212504958496018386460336770649448946116269258510043525052915542670059626244635416561359016027313345944065885423783305438732641693219173496048612448098021305980743638897799570195766938164620605807196939437691764040289539201304903518666075730950053155017880729145524083547182387558382883099185036537249987355701180233358741274021668055087975928538382353602720491768496765266327338128037291574648977639602257003828446827541731460806405314874459417232237130599442947836180210480616198910152547548985346319905340817152218149462315097996274826643004937539740816511244017951825582987988217353104215693843991912109763107936950928298937250689077161379324195001730926521033270016637508854442628900156202920609559464641997766130732396048018517119975769075639013532310691622160300414356530778499864041094060505293012533024393320196979287819879395565416088103133855875236758946569310329162381891772503769527288504771291178993275188456426546514147938869073928938895746080393581789528609614257265253700266748884037851523756428681158740237791188063263007987254683778020513556428251570989080372205111595175822304313255437455208736331360481289093929777516430624689619657504360503309447495577126068881631920417662038705029611492528925952812224671554670609814996250220983170358067222789001821242849446382655138016857470726740765160934559202950858553585081756229811447901379010511120991786320301911441419089880937524099138139679916125369526278565754655568933381631091609874123226364844298358180741971031206880931439578269625429765193960373390523596030355270736760836041965435302936645010864579570395631483691616429717922934836313896992032637502026531534172285677074644500404685829386464143611422464980144143057326369171289724682934447749885846750893360297953511155228553319804789296547009667881776523586092140662280342022456601785899506465423269752214247697786102701790169783022363640302252172265036883250753231114919918190836188670706046064336513713887216522834791086252066757116413938736240203409430468481779620887437233997405628650052904322210114510120129607441584842813674964557762342149145455856002823553455180693041422802109142772062849985789207403582161691233946918034713039846235037451563448987669142094364064192688282418750620125257274379362958533756170488419298651617208753152345967456651562531286507506309945750366570997304721714866896212871453170710868341362970341851181107294360164742162783801118323874209506041478728884134360838945368801737027211917418424925718464188842015409902304415333825469386638012562265581002852192931289288236678225640748073906739481851718637778319588553722492468927694661884433009328909891864701689520574747518185196009275087799181913760995263563997039868867780205995728780555855634194205118600927840563840480530204780456372014386654309964978889166057426503071158029239696421147912217641234350714845235403714934009492495812349858019779099100240594989690679367990018293612605089681457935001649415773851980343314933662760976567195914643866427895745580004014564347172010423373376447979399429067435114883485899032643442158119675933708814455255279951332091691674656771211471748064692735370904476884237303447869496918613605853430153472954683414983365270597599999976816847381873433528148572897873725273607456063536025014703072668605887236477357378202654554856716379771900496719918495056910626634542444621061904068368138094542610622703924250999728395448157154213224027431619575563178471739658211366212962885806115491427451922089836834919755061921907578993019391283241743264426742909428800340630326757358866755177619904767637589256780625421912469953184971983185908300282632299916680656069435502709169642305879297487146771969370160774309553808803712429019170157922152658614940024795528586417335372496353129789902304568898905270246429486243327741672825281947502554073356326387046954059540521189448884380333257497583920496474474505234115327464877786981168724737080381740561346124974524617249257287961863589981193202241702135721119266517220750359600447546571135613722967768336587344823164881381891637810857811227781687630808722326498014392463246603278001140123542408678401299047482548289770598269017485463953468707718283623998295359851848255956436841293921599969694568310790650726878756449074688838555538521460541973744640612297684539407310481116824693227083072148326629183924998443842130269496514611044551867206745502642166777150472240291265997946441924172454853680467722011498073568322605431316164027857950012161555986929634697152266247052790092051227202488782330418023641846443218315819972199342420161945785704444366538694769563550914324194075432506459880780753397822716237459191549271509910762560587525078165875121656845637792587678499234306129821467679938722902585850079004488572122728719186265506082343270075990893013729726496023780288687343023082508753607501808785449372160913459867626909331776187892706133673357584914248620061956532729525548188270740351941978765070594840861339811598136951075896139717175299757400452589904215488116675417384600174585421435336649350693480784768427514559564029785866063579774853963462523844081856102956923326699669551480978931427318227489145135858660182708931567965076247912782441761278209454174710319157864895671330894396978905929766013026656410800023151617107300210961189862544264036186706771139711330385692862960458530279260155591612852053513362964542176160425064507403802079092174354116518309529304842557629206113450241292058528848301215658983872437827130717423615085339168667696688374120324923569801591839226044186097130702670321360041657764333329687546691599292499094445875695078147853070540182645173079649835091572935332351022107480231826426275504069156813325429320565653620111799375046453643871029341616671392835192423716734693659750206862417600858907677164167133178527712378011510774566696910973203944434785484883550482325325080673144377402041939675755950969054793016993584411464081080299077642263548189308175309398305503995401946549440000382732621013494484648707159634903636060636238980528251528086182257083588593317646961473784643114181729206511882157985058531465995709748787410327921656348233638694009513181225235448082126506956019722240042925268008433582585807488215621170616396806426883982195356964645265058050130635050251551914534702036549844111590380669972225543956874765252397524277112943755253667466811117601278348386089153115289108450609977936295185546326647954735337764587579636032080534986819569556941958125756529283139193934356048737059469026438627998152791865035917831988733644069716215471180410322914003829504801979934756695919622615948751186614627983899513318517647519949133924136103800586332447223006646373245632210008376290308344914815540397191220684102693234742816747474367410132512326077880635964729657734209860842540951719138137111793560687128862766998732107140129045426158617024613993070987724846649085771363258532103681984519805559880428636706015752353005480308901386359782713796957348132781808281604961587038381308809949815926300314873397146218615557961420212383451756594804437332812442450892944288131433436299711859412277195350976089741896346643310746488530907868704390994093713043894911267280961981977556132212692448341561342576028304185305889918154430357415901952091130449904336447206826395742880850312124769301227691259426185802138159438889674897627203829590882700887821342346780515826258045644578527694864180181732937254070862943451170763145571166787536270848939731119696887250528934574943071171220204082544471588232838112861151897489486102814128663878686763952531575517383762281242189057531952043253479903251286054781850586284555939797470394233601744119883170388054363499471601055752793602963612464780102959451718154645272991854260703833941819708431506650451678737809072399683904107458062151597610693001812406910759041678709205947621772863363721928562845735302250387038119102719286993984661587298813727978298659616098185651597484550323645718954163711524157277526715747307491245993539645862337867888162508132164205011997668055681541915689890522981154665794024824625346734533584008760452705581994335759603599114102858135026085532086546178532154568918638388050263577244207462836270751128364548940320725045374504055434336231567942146095568311149160715683455466240604649790414081754274918189074946775368157892961751647269182947703649954883052456100141773386321842624148192596482307315534334666948679927534883646645927606417407152449314532328109832408993151392171241860680275268635550836775672303705366114908436037416059649929337290389161484911014821555146995969622298754461470535318677757088189758881664109820833236293500884203531921833877249418512918348902609199912729564464855038077346573436359464948911732121308717499102154672054052981459566216326170179685142458796980558409306733072536059305338249074468276091183666198055916558350756519641385617276830235796221074481953051038970963951228695187044606243414098963107253715436435355114309415029342912900752699831628629489890876790822717255872813201376820507048978682796708992468664211249935263563221114422535014661919078974765030103156903747280031728960899278207891200694421405021746247373232057312410639240314157262166815268120553290786287779122176354665185545916706590738984919468662307894467762497068704783261104146496037488099532138557575825354929206109775647419331286600925121792671675702648800605413373183288524575031520520773625494388500521560462616184247350174292367890368968213661172922126113301789275270043159555954251499027648790938398081117974148650892502507051724448286050119221181946250471473455121643616230122138009060416598158106492694706506204763804537235488689529368465416401159172509064033421729433639924880085714057864692679973731223205999174451488410987193660209321453786154265509668585854751854782459738621129467589630086722392054253756739917440556167560163411940047965693295592970050163983003130900559798519388588236339613295937837082949506913514822471876100895213267100461110907720627004236676721913062863100502769754108292989459988567446977638711877806063048576500425491513804983565757681235581928721859019958043365498148928271853622428796065096351658756159720399118044145489250715061227151728447614832848021546824678433918180477173691981885825502179000269873190929330611787243033705668750250054730174673452169877035037963209843791774870401589631867070152949314601575701326916424702376498386176080569974324863120142323778839530492819660380651396168807683014276125505259090826411682721630297637433902118430290595285745850584748233342983921027755505294655625272830681724413543250264686585592613631681720187262524607798524593100152316355632874596555219653972479101309258136054804534869249998122712189715317530279172151958846458894947635223804009738449094741308985984656560584695254726339596866605203967025577460768391231746427002577205312827522124685354202608766526415292364689276276252853178069677324252942805134177804718000049320676507632165835044190636034554151779479033204259284173694757821815300947018887408827685499059634156484623261231231808946946130590255840429486141261912281174727943921221339798888341604533385608222228761058404250257926435257448899686497229596623920656415832932959272528057253171535492598317809346272921931420638730470691466588165258741752291819137570417970827834912761194419321547691299042216590256691477126094799497292103004612510289245424334613451930753176107933861901122654375267133773647144440125491064197375694699053689481888543830188837215765957594600489019293877140496520441822196426948075634595859931708808777841177943414458919916990770209573002371054856703725113409103252121281224706642498688886884406332061034064552017377940068496373568770266467778908806950684375125565692637255531426704254056687342050652849256928362285368828065480900062361791400647936412119809432658794267583346790714851833926789662538190366905079878781766512289750644262430216512489953450111847040632485886658848155059547760975600048480567225652069387275544022372671231569729636079585035536417051219461734119253847896500686503240202384731401898194375612101366787844285037742208911531848031821168720403801625895065740646877447527219493650523246846039966194740246799672147997724728413299419469733756558054459054773695574207623830964388814418578547031652626456795899794776916043137951203232337448419137428440223486581716473157818155440630833103106102518299289038680519518643693865709364273559300929438634628736963068299376050131317676090939658987791287821105136942720572296599406932513717408816707169763996151567418648330595106933237346723104002735308050363553450339778108778624936852700111152710322081819809420591910629932471609255638089019442778203530579001095235276425422993437533619881099567940190896415464510149131621568002972564914036134422179892243680967281630797491783643716339952915477834639956151251791298555409799549923250548856155430504042486228090731132315344625699009251510764828678979600939033475477039153773359257921409797742057250810166060006662016554038597432583620179326946638831822756421010898144192231660964743844182572628018510222783689745010709567628267893561219677572345456433069508298408338157230933018174207723735107348734219216740715184503505813970802737950123908037721850722477133773765903933576667034212540789486613780471097756236958650694246428960109072696844524423617666904575032795600071401002995355480804768359961773230808424722238955778956019323610906052827814178357906635324972608642891422353511423908416044440010229499883221721576970506348273118301558833290392000096354896149228092705608969248090170201562055930813372998113265460533179799739676506345160894761190569607269887719831941737197366060917325280671300275702739161944852456084481058344021761153301757085384561332575195370892447963359708192499110890798241664048963515981658654345019710932799189413568408112266564915697338837015741142645653922047497071541896511004258390970488241542018215429980825871137629061546747970105853863930944875545261534467211346438001111518035869160752329302970725963017325770004645065148412519912183465945242590908848792075155999762514560260890893058756842568711835349015450824483707782647183812217221989351498506804381375953712072878613672886503159203193444783868443038081301832718292067276887655615224569053418420244056612700977258863432163481280467539792844490292826506081409294742950402028197670317931210106899515319857437850780096846490528591868974357686000280401601640689646705548885089333329271595474282842191114334761069618102337983520320573002206252354646130462482543305016971578732228920815768509770509082749350583649642741980254776170812055339656385635873472375186437406894998760109994700811049949231703526309379631914938398702718306499101954646069029103739979545849896857098085989370993699290204535916253649755811926500416735522249761567373347202014240914700088192817005629856544872294354776375306857464901573308324507720125422664090353633793152899381733019206848818083748707206231823282089990538463610629770406742744168125774615220071967828284629662683673580356362860560711450636135262813830970883445537912089225581463637794579200561465029836554630210176443110831430905051108333591609910461924098793312966109398847355713794882243304161607664008393626621423913391242097543192470491715128446126885684073593949933153707274551839361812895337840864499927843678199368538679323789760768891695385490890189055703234677665995028736717168629459909181323514230434890295436746775639357412849402208693397382868032910379974496907799063461973170741620772338819893289956970321052436021087856749782343381484486534617626220885305455621448515853904168688836633125010407637193489990774213264515641708507871882756922586786075640349626542953658691138080423878357361520131008010398135632049440763448877837625293863677900263588455248453928767253889678090729284577068286223462854051269236504465013090231504500454659932877152113376375593470974487321257701607733253466900578561232108738114460873491665318609376423756246380758403390656190661021570437800325924574591384173294489922854135949446539153381670811318542107367415879562857390959642205451256739958620425631300801171991409402650291202424659242182079766684111335055947863870600910943921494675422507671233716998785063683833240427706876242610253243897085312558792285048107978556285655154704577419890684916055160043679389164493059619835561549737100191505678594155256825128429902463629177781936899648401674832711524453534142954524558347800917413427126202185668854874347216234993458561533007294700724890851536842038650331421845615170572067306186672288911246219120740242003739743181900956002137367401280064144688188695455899893092254153260427797529149104196601295559558614152587492294514209808570984876360005706825023545991842201372129025604706584737170692594631974246435574192963609433430634172335742117192658502921347388347266438824099289613491665729150029192471739673900269335164106276442545124038967591213532515002106235947430409261102799716273008977121110473021001363331452023529041643707954356389565565043469230383654883610485876411424302499482161370561230242485899183839066910280951992502666804371510950851906321156996203331116253214665689326553080315872185907722874655524458641036387526982257703717777141035987298020145014180367925919178451072428603248663913088748928859839940461237677381063987343687816591287770315221661363412402166479346106154011472573177164487824888968319119327916463864006956423526312360887311221664182561301755321716041818266967214149206494946201245514390100035120460180598714150533911302020378671074846043181071232742990974631078681232324017813852953914713174193249544957390387339510707138477151866605100621013652014513521824402160091236917856260256349149906775154346368046965858016662695041601168734519689802287243968199996001931272566311204613900281656638067930751750610284027171947746662883110695288194437709017158371077922151731266876644307215902746911116584836137208329649254773009563820815472082575286902129898631845190557528104226061421259110498317912303469432540598866326637818921758452944662949493674046741885502724474316775161633011696381427644248425518682719845162465093610087378284254019810625258777829635912885880820712015763152927976409811650933853931615526310872886936756881852343184249490176196817210552121880527335100945065066094043507071278561706532693723258044158945590188085651643755038769392427741861084519139372442421808958509649503043843744110301330414998631746697393243885747664201200439720731426262135661677244757318735508833515675523806327917276161540005991743528402428718494182589093440641481745270904687345707665324294803148702005280464302549455790682538210453274558282523573259302104399536030648039748803558558365160678634826375239124364500974969522766514522673534121925082438931733407914840226147537214530420279066619717454496668280200809896372232043555953290894367566559669809079216780479030204281249384241138757042339774877484772215647559814469964331475281996566021521877668865591014813591125706187543690754269419569759057677538786228944112941334982915103891674077427293612492764512885687390315378932843393430842064591592852080076488976809321193803290846614989940309527058384751164570955522817810753161505639164761789389394379567935590073327862058252526723779915072908060465641019698905650524869380975555206106596851282004976454258954918582798929696123890715083814525589789960391807001625555603931143642674310135764140035477194245984436560785939445172720189989608608221329606524321539349437037338373086965917335800307323124321447265548412432683325885650854438851327822642293937177977132983353306766999300074497670807331391591657862360350376907821176424206513276954404233999888408983744212090456785501317085462025925414375249870664884005582080943498047280628463564532317712903572301323929546962834476236487124760364204650318152829636146337337811106384801672599674498684280820993430349526086470668186054501246643690858038637520347271555290554282665819150989600810739906321438629478848337053157341756349047760994334774103186092405042132552907161190491226153443454393315462059088445883953235809031625100300242832332081519819541974047097501704788728315987315720085127310071079617027007278825824453464941610566738604722499636757865431515777341179946260777579046630838140049174783949727498734061071687561378918024858852019223663433995174663680814829357304127009995757606917294223093212760558009124147188827457809405122614062750369107154067879006279774691651031185382677616316064564620309067048721100665501675883600070776656968734773203930557078298108601609581344300613229793023899540581706408230635522161768557671995090854023812735368490973930006603448817148842053988084239717046624293952511724890166030551415043426822539244131807038103747278636724526811215329706862992024095679524500276028817905059805056843441546521491693155234541555288984117671883527866777267243586975893118610387764268288582886331320657814584723285605299635999392767239166777680095919073305094763508878462321953172204139421208102089198629404197922001423495522507203550289482543717710546006031134505553894584966626399735491322989503463109180070053379903827333617790263819811207955653003160603082596868984627931249089921172882858533087831876106227269614482456212719971707403039557039011557812853681891241535976688287240466457039773124819935455008847907982194748037720231966176152846216242406963190382150546938257667141979562391239058861916422892550008800461700443391211103906369629568933293263641651698534608991588748256781045683491152477091904673714379991790733747428297259806921909598655081248822232183300687023271695801663791733121271268671646177799259895682788329481617456455923346244304075803212431690793733932829362381719029416655350643192971463107198752405283548374562315100287143299725850807567869631211936569083904580932377374059572590116398452788960478224066861051597300135088694250508553852341286114938069814673145514176408176314266109050778683718488938061765180109694996454627011791287929337207632837196386812176521183683340322469182799457377670757928785611759161286995720615534746183345475021395665477143026461065028205504000523055214257178947625482421210330237966754831729788033421380239405281252383790084868290235336502182761518447000582919582704338735062315942683881960455807237296420189459215534445206188245267883044155817550314094985288681666411740366655382658724981718393137108306084762796498503546433923722394841260716760290863183644312674347806135708579208574088591636186261276448567168938114227737682276699005522246413395939060692796347032196604209642910027282463250035947960392237598709476964461375534480161334190864444403161938969384877590914952810061927689068612496136129737157614157366657258076898050213311993440294258479226190032937282262219140851726277435290590360903414326820968156845477700296599681239963067184462060859273455953029464837673772351154000478406789242916821148289020767787984243173634187270147277884825217667733568936254939803850959395973854280832041484037430413957173165497156289877423903700286595839169029233129703571642308740773480034586618809076521383403623510666421219294373868005881943012035461497979829729854448056789305142855540383153731435580484815619731984830164711088058691254000289419239350905685054505277172060541407390819487259051701164259050076861809452979152667286913544710481794200311374529660999679220995547454166967370981144763210278834854285508082600082798884840541831808088398382387786643576110056884588697066238832126948224312500149846158661488817434541915029569265674498652732594954044005944933787652419526662404507890634744504233009183777369216140649051290798939803756373189232075496872946654008829904532942310572258364471537918769516099504315409497724891493999526133734913522632947254806498775350624761238422113535050241568983414778979396343891086715712776452512028576008662555700493824489849972644665583829807964255802904961945607331254002603205179917987227992567334006577288438189999690885725518522192696842092635500480176687893914134576767612883995724574046088903866823523527237913936715514655780043228688604082653549050464003181701618503356500392565553058475010607244405829531283884193182238212559211836661562033063228352331185816865327011918089256150125674283441792619666152673354722243437656880252063794292716623724706402395616799619478795574173013540319107464579267493126430216558364382409531733130746407301491864805455628000218006227730837502648030262248799091582507806435178840465805322860725246570628743234449238323249780301223282214013098062820734901418660986613753429450415841753317161055635687630353055534362168887304338134118296888962378831689828023786645447260964251874690056540813848837936192757621022555059124837711431416118129896117991466711482986270812899829824002202873095333945002170968487056647930506630863508609253287396749905973017333295937844066434499934061026779494686759161828223466377368904384832052396646342810457960378982290158951192983138077739154710199834677835091920078243066641914796320772473823516540352353465758986058725969966822349506667822019756748508743717696159968075234982485675022281349129449847312828494571716071695312510653195811892976342794683201081214928242138884623594194400578114997618899579235429839544979923867027841187551034961513698021021135802678233523873346452988725925756729014381391337676145364237015166467447636104308619364848193873750503099893789910722427044286967543411147664727205841073754188012383355756669344697543495010618606746149456548854732840538935478565059040882909337355779422026409139896880338260288632282751902031460217690886467254663601433048432472004200509343676954280306075199317881349372133306390473403818132663991814693449808584701473737888117253142421003959869974148344724158293417808812244878933355136411971716061004152512148794489765287480039668008264876404764066595055339321353311547303558097978521589555499163736818595159307556434486284081884919664689169494406693268034116585925444643173756133550881657887677660226799725589456119984505483915035811029251290904586143319554604537134532747754393311379421477054381128560307101848412661776452456026884664198097817476561187644755202432463301813305667286005492844666444044960137554833974716478219620763305074697566451602033147081810226119879410362606941806087359417479457812527267483823647130068808146936874247639887368883159133433984003985141294799814687926969827925824902400543828920367964162834653573026904195379016755255827290803653935375979253223447362866047136911662072900305895446641234484873582791276253588705023780681163960482818394846714530615695482190511292762837500358429490404573520697147718967795660178311459129868747757917235588125387844295745841671683495995471607486969543006003073600630358632678913989829367562680584046044245537414245498831206745893625835782247681534781358264854255105031343953434341772697642447459864330845791114719373568371573389025393392852199465239514861993210392772253215560963318914056872935058997876676032607942163549290115254826010179442757341176459997404318222929860394970056003536007577239317086134849487274663778694266323158052671588766250489636124765073280536480695333725627060426699024393258867692395040951744232730359079550692250039003822329356734298273716952509145999614705642056889009572197213399703445614761170507015938725923660106621422834618408401620598314836679790530093718618973682849563333986053652063318243960039872598047915384324301688376344419065375218733286846471427014598045253641562115080739347734587611925892785449087476823288516209399843720990684859869443854134269338053684592753017690399999339177423430699189940509799770027610484345209697677134037401700327694381503607830866426378422387465794570664513134392823039560955521255890775419402995786008579957624052961698803133583596277862360694317586287018890978451110069174893351715229487664271995685591707708673240109702025092144429646271027394321912416590886205653157614200331740499971166752942581994077238315743467465015382806018813923963790002758041878263222682364810736874951136522781557205396045979511666520826811071486348647396791614306971880256641552079025920295155092680664845886937463964764748898603722950020558607619876243519366992694001645670377060807910962243440156288904340656184520787855639711506489506015840834714020416253118363346840227211650346204316748613883817403157366240705258231330691818281219607154261390479958555438924415032478323344163392471122437790928853650930017631403948243259543402144964986716640673762982361330824457368526037643849405744749854702923640017634774642376727240694098990253785434429891909276424165462749411906977498678549927434562515954710709101787193896596136869207552365466986051251183131757315259202307710806485826586240052197939284421950721910331889570784997245773037864475325761290444128773331809380910634148767233406385689942952063089131258702352832474495289962868353914111832039876934895735062835494087790598348434979868967513192922137854032645100319595488044282974708573856901700166443985232594187519688313755783366883233618187288467886266417176948673154663196733294416266313176356716466690448783183740232042325576377801825440495133642261293060867787977886555105483699789901432812891900742543848318802685803101634008873591900576248511947021185760142007637535773483577441180512821046536312146474561442986498450114101954245406219675118702748537213440246740460856043587065855381075522123602194907837145907690734541612942184978733220859223220460523882871953627763713462842598894423787206580210599473857150465666214941232423201886881224612826532968776384832384834020336037135951480698288528135654547165625220226807406725873599778467549274333166139015131374902149419016817578734376361976016378605827147815148381934337723129520411437182552899845451452126248889372572701547374544064045696732875383134192939545320939963719547964086569592156732788800478474467503127790481108258562712526432407923481749542334367078251975111351673204956934235096268752762643523165275686438168557522199208271801619206490181368214029596254674284450935972363067691183826640124082692338331313418832401424628156436300122778555405841642664631522288230739585295717647577946023948592317441103825386436878393251239540897078242478257873910321500097236564342047021315031073948526234503430769924868461271307164798710400261160602492657111477473753762451246679551646878897280034374188401138100602479013326427973177205265345034655106168879662901085541038576698659849362415612101788222196829474662452754299799557714277505814986965922210739760626640110892890811009702047980063458817168860080248643818389995754792164935754813683116613541538107138332826158026112458616977750099883238644603778088340353380876560702680780627179631101005416364422390307043342234751241624558295822738958338565622644640996342083842048402686751574029720976488737822826894379042839217687238665477877049774861268313205440408381250232650108432050394223048077062175047622944820081165812992092765634616335736338970028355592787143242457223542240923997047514136518219585782740532756789532669874219690854551307493378120090273502101506429342288534764720138394103784425658431024779812983547795583452789231077822997192716212047374138794877850135056065425863860585669738439615083825550453411768164415278732144879590686663792786153299586212037509923852807494052064272093015255858202216788741955541921702644854696402788877517705299199996850543047672353016584319506268352811928003108826840615644334176140814905892811020750199429143671311287482643310568105554076676571333473392297914535729634005859385336753599662504335539060649114684223066961682346233066390345014833273131421048219690097826295606800347039138637708973352404234373592757810608738022411845219080894103371789104698979557324223725795986047407411985620862780374820371084145720910125351743115662299840134697307514368851356013992453943070563500720483666740716255804756682244746802930551367278103163786657372686272261289123416733019667950324811978750663412494154156999707476568784796307678554431066011414419355311049001459015346318929424413763739413371937450129826435908805308511492210215298831402652209947060209645252272095954508837995347729364807098470799681120977538473272700445542373063978623084447002083741959735801126389912314073619923397991626656976044674657431028225191685222841172323369579551338087393039980611536644891011944260383771874178952817187664218326720561446905226866180741738044227204456574822115656174753914656290207046551897022433749179623915412992787958569015687671118783782092721693984095992744611634317315624393784678922722400123252437583242551341305267405314418887819210568813910358373023106354533452204385080623515794772835331364256264170160183339760611926923184448699817545282583971853497982116512062040280373271639961290774175546888194721137557077038212454567073366748871675946436120214303410770011339238076167306589834824880332851539163236941682442216518946220954658423847369441067125940685011561153139793464451028800268687174066496116442291510876767464554407938616897150376248599139176209847705738162880910176488701878637368378698010640846507302752351819203326214961690347559372608692553276348729387050514728349947593382006095424284939731107853837031428365692656445660142963768960091352705736910965479763200218019906542221624848802172473644677796384661668839635131074726716975754444148486443295625235455073555712217988688762583681174764409865669987415786852275215055485919879793123170732356997425880817823279531952123871452610441110562332466956676390315646343152778264942525171765639836897051514302568901044421678871611740078353830197985086581421219108150815607916749284871714329379846550090607699543580562533856969054865355636480991080429691764418330769308003828996670104810672650835379024243267116183531783578671955746487145971962076521039367022987762987530851281395166283891464533544873168383212265342316832925752757951821182741716769265842667437906071348449294633880501484783351105998251979174069675374407576312447971757243506433954183959719798650555371921108445833611637320861657449468594959355949199243537000092234133298987900143472696873445189486247987277315713991127173326078892982555035550732978855067301698181299251986036422727652541083718882615891368441637183644680428642723586407301314758957242383764599625365197272792927136135981951168951925257796119235779414015333689675157116323330432864450367423067431061890669696170726195037323092840849619592334377066718439659193027744510992705325086081701197195348393650594301010557836138743832376752467355475393186872239132487493027020557232755822595304540437767775163452350783751586176643443055244864938804674173148312948570531475528739442717068136559223551623942924349753454794712927131078126351473277372659389723244012018821125841449559847777813405544368696664021020949163256855365908383967913415502128054722792429045886651531351284948234821468834173666991948077966896234804119109812104406597321449156916061783733305130676140020057678531897985216966729682444582028726857723679868501329482183754165799292246915778043878867649807031089447842982618607241829936371605997973641864353569782134326808557957087623627456437017849482305654000144611482407342862792836085326329259539969557461854741339664591335604077799375885064224953156781730153206760494837385637719592150945262562464788905920625533673536057598022448165642200600850588208211370286436576908123791058282607386962502493852352314800160483720110143821719559489313580015808384927724251318236613897087995146769734834494736340777646916158388685706156077631602499037591515540704693737582475273024569870656307034253817684100395505918592711797295025402231323858325823672781727991375783732064050454833579001673782042095662916333371216571010528141422697500584295551217594977302826152444950199025363637877493675007010596744220986639434313319018860728893943018253071675260641098507761410894678069066397358905689983898273556649153915291818611841413595837868592057581195441850122381139266151537442857928506537106135775913017463331825454174973457733986173791366337745856213341853350829826232627159509881666515791565862956545964377656392593907525573616311998552323665610616477028125998762723037139029470870788117149259552860790668388360204311960999923088370465440743552954913488722935739767656206087392178452383239852261120200366377659168049250844458708492679681055189046372436354961965231401147215346364363810769093879560915202646211181616798086347862379162759173673071923975424531681297516491585811575497061126942398687544131466860227374078461113860713806587075175541546203097778042689759669770858475592697265032829063849081026775185353573619653233844962119906351823413180648178533306185130609623617651146259425549879940116926670625409266102101871933233283216058014701538588627354513149223077102124100708054764607485592879044944949083330784933903641138041376065992493514768426186908331068793106634456234850779536031081046420253716966676008666547782233595557742349875837942102986969393874036888910998763411659074285956152470052158727300137333505400209424055249504646061025233846899163026094799708089922713157684421571375568184309809990481462076735562624547780413732928157274386191541258378913343197455780694292563372560277031889600079152030960077246139946542545829852556462184615890559043967628075152399041287787727084953929337788110803123029029377823840127057627263131671873840542364347434425978898306911088330741945624956346351734381652440820766365999802864462511962954413684137238552019071247534973521663252598380720438437153264011328047873501754791751905665962239727033363258849506098088809361130696879994564805204173578865303382265213880501904573285401259068386161475342478817742500491162860956677137655059954106388717677009677432955564339544555759172094223605417386652030672057052774432487040846888824274013672582268394449870181665556211207424005746762647988963202831683384010896238470480091082790171267796463422181134178218840186212183268294831408942830929543829231831795688831849540317489474656144393816036833092924526345513131930463986932126571804999117008472099627862784663562579910189095914860763644817017298148447227195448958706952631010135442627728296054215092129969085237692120444760062210947149001358593243721300848829932272894613080540289115507354248684650457414195627524557245069832574015020696954203328849103324445652943418344146497140213341994632585087283423432294088521349320571610110546740547224573570687978638880795254516253753437036630796543042396810952705657648115153995699338495918654672349991885499433242770507494365575170254538122029763343161889068252591974110988982957966958782048335657232429210515241822767381792544646231332475583717559136083963511219405335114618772410162887782216077395550063036296741264003276128972208609193748656580126159194552034314710936213784255313253725292362384782189264536384992611477102432264646953797814906701469052753888350286107257538548501844373970243788473564849827309408866647236161558247772254951338024186745924970138273793849772988394115496483854151796599442373727631173382108172336860354219284147970917625572103960391022377268612291904854921714219952806583757207286413456443346897498741789618917462637957512957517804679604184336966055239209215163602724512486303809312941997937670522750150216757653229752911156315917263521594627584398767000752184354731812852402470420448113918102543553501377104909844389129516160004711420941283209452674095310364870973335466093208508774962225234601026145070175449220365153833281205249061533603035477971484301782485448301355801125208563061632923739674164072674736795393887877504881118922572199193616582111819148209801984179398338096206748271182943172384733727661558438890054497504959675849013253343577732380329900223905431301867968532162438393328613088870129869702961181182593042569942086522442441445274155093243516430557322987945741274525334812794841161814454580061562870760972737021619277725386009497114076149505549889431907412869219171878311278015559901810984656827513793353508277267462748533480844452805069981276927030115783314771533623498631855447162496413482451122635514899059695847514900237948299835386425085629176467529401999702928842691485046051690596025470439898693654875299949269344250350958189993483757225697654432438730134049890565777477025570133398201514461882839510570766950005365874578896289515656446295235759725080038331087776694518315348152777451349527640765548031994485804783765326299473321909749264561192186087770767963800451608364905827278814522110956455084042063538151944335661803802904352340674491191014296723487860383768964991673464363162892838656517884113101477519278633192228553194457738182460430991550810599458835912680903289634346228918790274115185174521467642789614046805651036704904468909261252559328710077965297659876889306517951735115364044583705291812941809189417571066029915552748293657177527771777298011972225469656320575803005082921540870794876245849212078880077926101898668027752196320771396275269684883803484802610748372454780527224191322285347961396015248602225643607087931844205559014061640335585908971472476290931850624513213875625178391900416748299390947040645000375797953188674376604017302599302145100839797996468230989445245268997632360806959115042391559707712895546013073450161082546835007826211563538075157250211326988662802383107130211906348849665277481010316642893759264643558771131564283640471023639521376666054179991393893877382005785229153786218651344718397369197015702476402138320559776228649322146610870614093175889156255850980139297882452792477217127275875523157647338720130931132665407809895216027518799715108325208063101945446991915729285554356145399264047870326881401574733250810104943855042032201306579148165451331554407917091475448761071546348522944410654072993520500602282696475018595742616475311848646268893815288415346809635028568875542354262612326624286121095784419292839946016868035382887379913296974368718286967189692841639507891113638736106842962335949949517141821196184737163372659220214964474027842669569669102184820122845613233315969366606860788191236322828968559284075267965612348966129348010896703317233456778159720775712248180270698191853095564948678990413303079972538902727951479373163186946280395477077791626943604446697237085202550131453069040589990305696936905797985610398293037021035666122125368962124345165886445175500740136410596060298836909561833909994958248056776866171732124994025003796887103521287185481126156556686306770634643645058699499656275292147732303431756676566767714290282532788687391499491981179615423660130775096040730399634454061791387366110704972663416588056150632823522018209265192823732044936122368802108936166924003243314416823777586487145273526740255531147354073388228255928839542605674584689870961882852023955114237340970013336112479048244036631633884526414290900934921273025841382541563191112900514293814947045640809867732053767886958161397611909465265921208851682853154194419930648918342913030775597948555529767280876564711898464082151507737780574797653416195731878535395914209685983255996419329146917718853637166548046006977435438283728704312842529592194711252633788057579334463175888536257490705964054282167476386574255645506511229975664660192954573249153969117600700001268857057061234933535256483103883402342492554972757061628865112851320494675400540945758231621615405706651418262963939652928136167983976058200369859356198589977323178964856837586907989862601632393593279811074851345944824453359556870795352398801219778410200046514555476870157494776138389971898498017334400624004483643244625831313066534111757856954338917200624980142523185969732659437888568630799133641889264972526202650128072505170284569960648850696462934201256520722282227488344846188873069646112291842956651524358116138529866145429561166324949019147747112860589866734490695646329861570991281962821491926342424544733733335054669048229036014337320969761299829605819796994080902378621680177079204755849507414082001046449358369261862311677276154966280798288595555548736626152967989240558896663643024802237184288556333332329914596118485422473938194766957564866438659856064954788255845402040739478636482233545938676712511705072905094131020047284149799651119436014089604430117499841428480274534082565056051137403206998141468789823886324305026759606670889728268011783819613044914300413091774347625603208977280663120827573297504381688898532488202375592918685373099542784326521167595901892176539290110130964730620320672954666493133002864198486040212528805432489415441261054081621545283347369550128167876917643534012091412118071619094608705307892484089599687200512164978783567816889855814031889921444040674494265989006953826234013780935641435222693100373106030996309273250027120296019984440201820450686839008679122180187243122719108804208751169898667380168659182920313452975871299340759624589283793409304740021560948816415251211280402513153669933930978442199997695423629120750591607896531840044890225580176000312427038193328522660691106147917209480460585075664594527990360509680811130748966738936372765551958809553366567770605770702777620120215976623826355881405737751373780812948407589638515797440660616266363549956044193455963853397604332030281766881649109469555568901872627200635385601012069117264513672576839466225732064273062542266460213414478368306633635894915184477479957984234083938823452139310324170602742856818618104319009434489107234208566922376009282265963960843688939541589660094486028166150975317585233893113813187824934397227145333847809809632954084611302177029144894373422670251337919374309559413018828917558262900536342593416303270926881610873015958855817795858792169210936138084701702241719721134085228222604000783532402203584215671098833655721044495910867836747136126552143390970998387342679732667735129060876257801903965046197519842385666464103418060775538798567582473266040790903147383183421759493135211764875052124834475445752427037738161402906290924441327775228981540792381457591140554708422740551738131836307520382585895216146669866988669324422192397527024070144679968122473422805492965507335192996160632742596277508553570572817185866832879071801759685997766601721973954953234308609923234775683846106921705299089342566960628334134967730461294949982628110392897579987472201709426681120368554715833111536832248551153209765825533886782047893744345175347914942256535003170738900669179568176696357341112392390712443179752486433093445795181834168381036568443756888057880677012399636617210500003658468935709750851803353580556714395713304820586795563296173215584336149385672261847999809212916838816322605510654416151594226178531155847991334223394420855624847381383744693788702394975847054418032527917216273844242124679535016158126759772622920235336199107478000720410080193757298810611030414342380155592003444429100862971160125101876139420710111034006559688632637507482441484967045837930636452445629424921496283860304393217040487757782764266927759061896423552687689003165525747771912312648249316367859182936238089112332309363618393852701721830800987437356936429218086429315316643976849194046063313860160210778777371849380058095058692408932392417019440250458475434146197688504693884579769442429296436507208421333677581260328941112979090347486081909679054685460865691169316307733916716558347552739435975873117816877602893628696226281743752459747448054195543060257091292183762644768297466479886914157714053529593025745256556478557471053994647271025869875656922365683059621222686957690194477151056400993692214821929805909296767743815833700870192510092983252885376122049579383495059889263822079286290977323414072130980233445530158066222613530796123487811130460947366742129194254811562891746891709594041197716252032684970673360772170893410280107173114965871942323318390099568496726950428191665639760861039877251380927061601677202101798949756302270451613919182214989789401081934558406853852881750870362818038250797898229893634505648878701532405580039659143404989810230928510804803108195635258128334913658377594770092208476885767174272998249831937156613894355013143778651477973281701805052861348596241989966572061444991272609827423397485756676300728154426836853217343529644183897093603719498894545097114189074390028931394020042901784314210982501923445522956811390770273856114237155530367035957371711885779458189098632749616938907870820774339375600017819321306623329934528598545847049570970531655526862431048907902966112855650745038964973692654715028236171350655095408895265552107310141237954173774934521146809536552651722881983284020747989785108405390320400697025133430639814436281970453489874148516848298690197702855234654440790026119646636414914540373396617678340924169595651561154076728629055535561437117095849470274600201666161255809312142951772359759906946735700263617637706923848562621404065223738782510823325759426412916499589358460235856246752355790128543010722730886757064989991634704391838281833993744697971421065500521385873924311083626561991209245699644614521752537296482672721272106108263720464969003288375175521589917647253983925858954305436818262080463013652121159188301114575098313946759464067168064360374754296450599863807951955101406563550580199914051930815497631313907855502279259003515264785162579994646521253629626771727948406067266603783193046254919933579367961943820311963926204861643754530611263560274944445585665920113930457218770583477476377574969045697023028471841618158032051491578302531433463040282029153714227345968476186632301183719261569935182954077542770631385844309083079143673202601414232872610530621023341983740867308552793069485644146995817871033865959885693632209320812996364839526255166702693150789958701161160014278898173369108704914462069967139121113150939450950951122646083455211723890918542059747992682357796579686981264420540197057157993899871445006626809343488744873235822126037138306279898664773638175071909572741204013912820239634480589705967894107917971661319640952796419024117987677726729085603706989334597432282774119130536587315612136243402645945421642884621275639852698086793118239346015346334935430395063703443028394933301932158903228577120557374014398157398079799981035880799838078627024811046024441434103636077565869473658913001749501967476756892289207358992541433537792770099714053059145513526360362467167128227036134091446053396288793966647759921196041983489300700124634576102246654071509785547821615534876541403855538511184820484772751319973115233359332070315440916051932378074844086423709405434305180184243290525273119721816218238407563228593605851336601665965157092430814275595838472041189256732452247160498015956192899878609637942258107807520098902436669437213136129808450123691957745962639093304502763843451132647791408256086707520750055343526482839959184912339466069810014033543999392450608034899897826116121337400315126736662560245484512690635015672393198309402567575706448748992082340038327682260182814341190621263669897013029778493602172196493827628631903006308033637372080434306304422351287625743779147803473910419443829671110667329542252843359908564153628845868702510040904348153664699070859249720542957447809556104566693405579749728664088670068458094926304157936675867806378532360280840874831117142785545396045901041555452489917503664861316248669607660985834239850525703872956673136260223473623015370763625084828993947693818327179980638131247584195251160118617778675021927561820097812941797127698179126205216920202071393834194362398012980453543010537188056899644040670894355761247465542004073917969248346317699169235045533447530435313592895449180350230730342902647740705695217879387887124604957688897713070841585843483942765996991435419490466148148045641966008718697136205421336776324498314643751602069499174162601131694085571767812412182292842712358867407872050932463590436631318239852881773135590722119324790225333395052646708805249427170188724966002258631541570419404052611063907883508480986901867966235761201146138924875248611056930134889855724968946950079010063989701899389614746151477841336217369799098273927843887371638923574365677237846062174936411435474631968307859659177921608544632275505363807747464197653810820112688536175996286606754323372346722774747589535289966222807355909722774087023093258902031223560918793806463617596048525691486771820731602473106352226617289987242849721712522528889742373701437470831078907877738933659419118661498541271793185725883476521915827149248435344820458204255242522066232769055639847412838335975445998018313268419676419687562778918915590964204619258973404127819454358620145765699763319960487911497292152677774526974740848083706468308724354276041096241702421168605711656574190256639144781295523953441305246367281252642290313667977236305873143144098753425257833778983332324923247881951329865856811150048950627531335971964630560033071772483846449509223751740542051018280893204736147147953845508245184409312051970837032816976870373994401510564382232538102443076550000960670210187366982747118426865400189700246243738824888507581844028360066421984335095341490551583764109940642967480430734395018996161429892699572872257101450081994557649290852424378927120736690706813315152093386506284027791143295754042806274192560162356247023206370674155060842924204149525427553951758078812460948777758633389427383334700474684792978843973765233750247389389132275218701218628301452769954822127683495770822445739175040742534960337911652825298666093620866469378212566346344106448716986454390815890351199209374790162469810889256470829161171412316002576482316086175161874759982521282220098154605525882645897113428456594203516489374887519798495751533326751898612999770714271460097883680164391387839261066085219348083714802809032389161327992021650286910922847696384993897022209213563571349939651628582824964370792841767200527532754726092170883932729738522212806154045043262501472074855712273804926913142448492027814250611222587310283013187039259548824577873102958904839542575011236553354825107636035377812599357592773078891222781322678333429997811726085314374826441530800672110815758745006360608558013467615293492227717770953201585129891161852540471965791022630083101442322669151140165133806679307555362900867113012527072337094697338063334154201223897334483223777395402303111685206865780880136711615902363248795170984469952470990650501018850024090318270188553526770124366285364206636444468631141435942133248392033609007993556290335149381089898274200721673848410312977448648566560670619912202611159544655343992453280921130099876331666245128408707165442804043071899373107847716368380502867710489139162134395473675396440646533442047125526136452788643393976810236056643407335748205354453433281852984658876989628403358628335218064775617241627615880661551440800046566560527187978271785449948766892021986838462350232442086279803311777548278721350586582381153528169714033934735080820729968581194497422784481967914983222325224627402008264975022273000829905174051342359338021126936206366004572109477016706561454360181519755246097239728275185544560482420887783195129486120627959968194350600864885593468342707276379251067159880097747795469988729398640236714640578967550012062434293628932779372237459058535242380718699605087253781687006751964974189297878918985106794358391947450594050793225960991886909340898267787396271926707546188236342105468826194438233783722913622329302301970721441099612967277076366782216538116144020549892194887273923115132331599429220640070051154183104889226914965285992629621085807504184175025535702077758023208087349718188649001777744783275352205803182961081994237707197852689742630819483631864330012437955696801329960588730511131689244973815491928863047382293912375356694134684448791486533446817037360046222245437763598598908857165821344453140276408065418372123795486929645215427939661589493522658278568576309399423139772982765538561503496432910335557190246043628805947073789820972511088980125386757584045288873541446956150986926013610005202739872092396224300563572856455097740053836556654499186187707495898049712441226866334461363029115734977688754734780260275648402908867922804537694070000065668692653960403864965624166592369636859094821121869718856470926104556950778210185699402734731900848929118095817083036927075435122332623280638319928536549673775740611528171068004729238385867647035353829384915322301363124228881908600648288969858694634710498609654116212087325198276168852977708073084401059342942771877075542357246053689926220510306761774509641588975266228194534431486500355598186863644178374732806289673143614605607029851774466440051092267445674009756071224323330853782521626365204004076118510926428200629201271292154393002647269207312007081381303545272583090923117069704457920869452862490231811120865447324978926631494388479166445277593837606861868156501716874183482778230251665409819277538823396170899387679771975751837412108798238974483123312186096439253320965640958610594614518900551060139595487156030731733434579135149699705789249469217194808575619608927311085776929235478713598311898791672814218209272182170955906076630699965331455976386602423706079354009933079750085123632953848537099448246493027968590836571746929394504753906952134234156056754363247180197185484153913178996527924578349148432473258761913876031158937158414190189867686805497912845667190656953317239938982939334655582798741189109918617066871923260880090429339413058751978568112483462424475079956437679120497872925259100835865502585970148054550971614729898788606563472111232664639697042465794469069452309198996281669275786778698007604034660606551544172767438204441122292544443079160481668953243063447455700210490274014007801967183652418019051902937084486924831190488701286879249907624857709456619045792535607459369488997918397482995501866679957076798501800069542797859032798222803365873039813523620312643427368360155097545863735201894573499875722840122430131165940145004756657717260110335670255328505153918113081404815775795269002503682329879411961218112166431337041030994199898541060368355080249533126724792745779091433705811186676092945934786160875299298479639735310845310092655163957576843865839231386084787560752975978612114913455165715605900112804249388449876103989330017414618994183921883451080770187745001863651243061220105948310976876935314427437676081275382737728312246529689585189059091875939455507174605026704385482405439199736454817059662649372792753892990118977629245072710615552127566530406519154301752404332251256118773512393134065079272818085376292797045912028575915523134495002458212595608672858343509667559004543283423161187143173661684555679058107138850312525047499952416765541832130322417608777317594099402921714887646558795825522726379383315185660804074645210338227737722944935715402504862664355038669537452380055986257633798846668082867630525059428831899016984125237919141754407326659362407276561700444521727343462106842929565947934557890904530902576346273769993937020505615848788984222477846342033715836598246523560411390321852461407722946400927215909733685248065573419148395961069486521799940194293517468674384476641257620275120252727342665401518109798365370764839553556116414293201997247588265651727882769798963246281051379493784662790288534296402398090356405462568159311339199966168716662182600083021566505360138235550742308378566932066672902269647654627905831829313202754203291560588961978567255308290633938471483490394339523102665970220362304934791160511265683073908817077922932075829867495922665222674990837559402584743697890658603352656577162709200557698678523573667681877358224022535002975882667439663587167503274174168489138198804839307127509591355678734711840026580667510031658049684217870830809840270211811991961351787112665824662137940818797257919077553886347032864580447329692565390174218784481941748623826353804118579101914242148517810842471490865394169100546224948796397387699380721098196502535284472194467812837498344160206237304054548677424370261053872771871262047906435254110868362561901928974795736866423773000510086621635702595689196114009785124698905116228387961661165339111469615906880230223385654140674537196594551566108323597545643890817609908964540011468200941921623173123794776532151138649870520130782649027759360289942600331347711274519529395820918486323901359279126874066735121189393194250511555114765622337185536039436349150041067927297124178803150666080542799630494002327430613379695169846111650687675659052658341754104269719457296574169898120091940877978930788647079745463526995880149603644574858506308966208538495392089501295649270880173447943025243424547793506201952593512829473393769255212612257181332846735664016373101306690775090038569808856866198407989318216799952825514976410471700585762201325652114854383298630603494561781304903148637409233520406746666097985548530356595413142900596178597082822205141032563341755628564913229862752232663300465846524376392424596834383599946753247480073625143679761460258498441313152056687726652604900642557112416422421848542050867689385207149828410742371025389593959282962601069974332045513590700723767297109080152964253014255551426660386042056380946785920290518934378374282409386592663552197292366029967256073417707340738751946367965342726178064951395054265086267679272011108048083178020618928210680068128841411505700850727853617989702448915789681011823111007801872135029750607817734293907480478327383511154278345750246822124628478244509199948354829854378587839437453906423536609913250439713180407242995470148399498558298199803793946711542097136822071715835725759084941837839760134504272357639354200251815635340858210823796867035448222045286088492257044447019738115079688779913144817620010927652090600679807764182692810535144073830950964996384018901936070860863091858580694291823280898950877373442683103057486332122580708574652871526959208256801295264155325525596852648883098057681880571189484530413048383568829609768185257412613536548894405327433462581311837922667365701294316150791363394724239521424235630033265549212391865320452453404063907018180681332682482747047592974299534638884561591248090309401954612674584606349735301162653728968928735929588284651031514082624674875140641475038203390375816595124717382748834582943957761141215322610483179443835975538692773312651025866119848053410838876222897043954275666209747067765412112269444688843424894381365294030049777296815501133618583245379616187486448101167655979381913794698739118564013475479813668066963878939707636253888464915896221174339627164767341418956940764981731602914849951126047407388018955119423408618470051078160094343194667005687368196802809507195281711515362761329614911284184010038342129242952452454621872801330306410383945853662217065130996216495276989520271794048023961123940545445735595717766582202585346584141830339264994745444621819733270504295416723120673294890606124331435543746387901831511733078033308275999963258396689492991322933216924854540751356462881554039970229331184346565286086279024700760650421686603643799928363417665344493599018574079532297474427458194344130830712884755168147275691484505289834576801492034033686387334703764164167383773460639581802147369697594580549218902074984449495333403080855995364682165732720483803189337122070837949445010197596962466854115661967135525461115395039020001932164187084372462517605619196793007757872508830996180920659474568466609892570325113990986883639053368783722921511888657562126548239361443588142138885729278243860493760688886250839811922914044097131986939365246516389103219178283058494391743752151274194009973129207338188173769297869889787441141870497518019652918514859216352068458075338741484150569842628172364404493536445736694093903677429521991934992774495524563921874013526665663951835113743954847848039321159435554699844130093841623868895876149647683908570297811985953489752950654468567296660505313727010901867239782798722187273115954199892488798134278383706271879382033800009566159861237958133957616347068361478532553729703613467450341679485523147582490913467094398095860653479044666375684290826576455638268034753736939365218110897305169149771750199370199224417069195893405464416683110476309771759905428313570264918398405315258094910138460937807772733057327373109946118076504582992922430448774107790349775970038194190239263849590067721140613156767001417418548613100577944417564044772383148356616194421197534139294291613395737052146072436447977497840539864090360307537537242333155057961800857073935446628209148069582534318630997794685764498206251030725381474175237567238648907720272479712042508817046383374556649343110455357349008983902635330409037794272637548227365594342518027820855098842680558717846425357131600087258302098823032147376820221526960356994759093476708427959225399652842726542021177554365257018664433503011860972767086191110697188679957651060249515518987513993121032337268427691622418020920678466884451450496705316297070229721956243376770750129627877602615096828027645764786482390815213723357705564539292672628518567058432277544976826957850547552776570117872975040889712335145470314884515936026231412771150127313088164726064006864437438175698347230490730066364749468079271613987715539354982289927563590299858436227852348210326022773077491571738492670715760155678686353933995397315382821978980382412790848759279764222501107426775291572508142672441992356016471137714159397608926528969010714415618857250201548153958444792530194584453887558297550004337284569503635838671468653096044216156487346997905296937334238593960711746645924337338052098972810912624734999734406375427654537941115371883672048141362955830574477805632520388940617580723036722441476614030163614372834837168404979590906776481843306642189852475891305506785590663399274277168772893380362296081902450095700515038906848470659958592250478136695424569953934008075329405082030221578319380022150275242034179680071009549886357619112910772519882127401131910120673970019461716007373015623900503388999290627130745375911249208326325212134813811806554705631863117226713826783515383821846604931820527534617749966178350152603327370901769635237951833950251170616336482740842334051280064763031862186757985230783626578137562488827236868383930776240621908608231813783464797267863377111248905576163625395346682838993699484259644209214151637696434819077508094023276745934215118334332302697628209095474848279236488755605179380167029772142783090910932055811926720107011324290651869083650755422554651840604011664155056179944529636199894371077968656467216002787652476880547054301175719188556289398118548865323050900001422185372634985897030916213385242340543676351609932662352008813725170186846496697616020248700761034297676932885372436069136220229256047286251794596581899811222508658725080351960974376243656045637629350748972090964445280200412221337828781191089314316522537949731240041482224856357606957848835417160397775748450655874156643673480503472783796345588635210112514454166076167025933615357705041731859334110638944605716223934285425757924574953216291055451932634143253445964406615773814345359298265883467249902757262139216219956293276067429166094131368925278909716563766465067698390274853752885960243618870251789290243668788502011804358989878082644492222983579976653314354898684202553680953265071504330204009157666709349757307854139650976392515396165608537476042728421122235286528708671268872960444743278001448798503715153853362886840924841811564939321638675918114082252135285746388781637281125174170208759905092742155660305367234339538148240370104537445280116314506974535020004552649711546681186588340561645589735996453510976698834863748510124046387520461892342494687107757610701814609717103657116160690035777611610041970236926304659639720668196913552888867109653835567441847181793722011938059026656074011822581292378325175451621933492913126820345031124067737543124512203304235085499978247450885219808409181783530711625138520039993328461882224828426446151047833872502716077484554387916307636109509848558127327989508703111953840402122222780064005352013209255895940575472226752606547112213908180878403437281085816130050060283740317783896741006726736980732503830834472172314043136161751390496791675566828007842044745142854610998671840882343583821523728602176249522835205209670552705939982948951107592745001607213737693984194614175794679228066263023669139814203716902659233665894929069568973639376941623346421913696426943113105616346817459846643161640506778087075700670999259713032947243234583252813199957422534324772430732163355472128191778783805875817191470212129586444786501139062539607645240619325372836874088865881195227970551770602518349926559355218630726589241966292135389738899017423707931217309038514205402086733564994431745792860866261210036094946826657604598008168731578101661004478410856271568129436538116062733959558970804692404735012114556430114305158691553575864545761138534519591050212100946373065908344708018714422583820722096733496700943324783689043307526809591476244204575307867688516398558636722667232411636072461398484409863723296117605360984257477291994298620376740003492110818302092084608208815172765204595545524052178613045547691968525805917654197473881465929102712637006694824043689573601478384546760449056208958727766501951198392568400152878845921268632695000898315437596544012619478714003283805067930343922755423688298997396674688657969917525602736594508940819020768145942529789029130386892710403501741150736416747269462160502393190029709740707905046176848583680569834968606895504954316110662908043380708593080098306890552130158090664566130986771477180695815568664760171966947105147231202317768500034196626682972344193231259959771218873676949191256891621941040100693516632793941196749859065891803426631849608482148476329753382184948513216242770332565765379250372506689080280200542898146093059136308080808602085036698888224137780744366687575968121609709956867366039686888213257296779751806416480830673148382098054725592319663309798535794049613295844338643524663669079627772596303414274711828881519002531446805011550133931016292256821773492816694129468015966538301012444996721127414631353585665976363027319854016887359037575295530301982214722162022191261107075806622938055905729740482351578192971001013019842923710687000207825119616132599605017956974064787818901511508252457976844768809771700351417008205693667087052973739706423826566162117365533515330917473821451207258773195913180246476881795082822806595012968991064971915705161941237469818794319679689986706908261492150490518398091791912622442231865335669795903931889823634565109490911574542494573162746886322364986839553901747180603546774092284395606556481589267366429271164267122632680192508306083660456019504666431723575731153146575885439009427723213365928311682967148542114008447049019929377233376206463786924742344975348516274211689563450956299626503494247800834979155044087515769833104496415225713749439037761542004387066338787492934042868910452140743381005787855357166742268131918154077208063450126540892669213107403178036068924034022684318942932671707543607863599899328930410319167882628259115840250518421197694038422054723750676049598281902497535310504798679325848951514462845725094686359374518659910599793924795997705658318942179596924340180544575794516724165083849035663102250700008587352331919551989012708254659135119716361415338867273344573381346781266834207251287257259246995634511546510050715058455152646916497019342700582569931114428197532430875830439858019103627009069502509558121510550210146454690590485689043375578155904911141527617732737684526761420521124416823604377188775245167427699305873453183360952133765804808717804855065769581516491168286778984283730198969239531003420808381931218402307534835394218233809665235485895293018509628436595893541930704249799962877465394849707785643531252019537745694105244740903054493166350348938371380529196563618185214071608103756625393474655790530298470775704889260921669412658196797074822668162689936329782290325321253197159876974519106831453669921424894275825539915480251767043046253743112754981783033711682533434437058395315445203043739769710665438508100597037734762645048295147706805469828319718510197269775174977638064165299011648881634085699083991484072379015617657185919213013740643356274732494747156016128609736626163846499989800574908126045591216924297220526225193945825031983856792604575372555459459254244908888174771798943551690296283345623077188707004122822043621786431974248878708682825760413896432312096593492126799641510559293236729915303280033582605697377951857505364623190599290374073374437600552375019785633616106629688321290028958189003598046525146387809659349940615404362668503443548085314060088580948081080860363777573564085349282612045410295760306994690632552975624630555046041377558076373942257379180225212364450204618478303147269680455207253169841017447019752321531842799266703971809804291810895968879363679609761918281630868926658470802867498077784263065484320449709745926560208263304036734863582310194716610599611415707937974408803919058675491396109208791304334963757758763171554419999661462517685330509427766218380496567983537503413411332940459641844693147014556068422377615012846140556669947699151427923378849926434926341944207580420348661249824538426932681845779327685733574037251258889240466374595754959152471006102757018579484688875810729642019484194650621571637971628481279622112747128372120197725957279348149531027146789826804580686134202717153091464390120408230025056399212500692482920274258642279423249002812711514440283639923796550589912950044104329047557180020605068899086685049419017906483970591142025899829542790643703287335915559022139568851898078088453958196176282773591452167494948695622658803747757814269589624055377091640094153861976960519423712570574242114598697570402198628727071976540428443262732236471503518902003565097249382264766443192039480233669107679095342896582377720729221299319102367785852290238930569715287614265452994253340534703820082356052355504199093561466469369433696945792253347982274818746377417400602418137942170819290406374921372286837877678589604933728496643115681207040347274866517663415582218431089690374848387959730956728921628859975825693006629164766434494642253138280782829318280864130185133776918324272942555088388684495614287153564077682331213566599937968146306886658932167523489037505486473085140503632052379708821348033880694932492303686396108322478407130913594147479253364412852008311173714556224351918185680625840826878338131298331774549896054653836106829206275628484800004604295006724441626090958373996355953294568913211793975414887153219065314244653193732732686039067064699813173990214175529871412168138965750777120258476378222603184629559308996169981762650164975337291896996023686972932680789317529819935617312565794603861109877956222158098023984106034454021401291128145513045159540995828441570505155491877837393514932691321116161264647809551657858054232512841772773807216359706791428669645221156399326289467333587681419973901266491397148296599905655413783261211395491719832395916009440741119430955292578851518314316392324834504207956611780644378774122086169293099215981822109068402588559219131395591657962715436607962585347442135054071638568809411811425195558398442952918624211682932408729163929590707492385340017137068474185036645769292695693589159771699590805492713525579457229825328345877985781411296832762806345434215540750269508055147443434957111406055764356278289729458415367352620255595556106854633343969082139810216869598251317418680664343377508512845429068994359779215297293192739241429217805806339233863452984039233753229577130016979153280983851249384457649444126183374979985960511600840632859553204986967481362157452133591998020792097963771676679554436414897314744555160797833560211045970390512008955134109631425485433301712144723393609729180126227104222549260812657666150906361973557131269090861980062088423861652576141642872816998938069711789243327733134073263700377740403545184347622715092232925281986564581663573888591311937784524177773515065652290460074748176067681749875720590353435767102867504819428157418917768516995786232416864026658715179469479787550570186478532848979702121983179740775759537954309063224206067780152422586609231062162204366981744966937993172554114966999907315797290823742824325899621230094506349358722013129900856141262368832363554566507665564004595302505135279204834422528758354977783344426299323981584498893714888537973897243813185517326678978765510116694310479527873918747911429912561495064629938712114586374189559057950271477750618476244951898870922932134946014226719034532495603702561501388261305553559587793580637986984842891448315832611412603295487253245319444573175671507053302595740553465123878139524725070227289537652331244949383660220604624814170200747688917976967006227457330151859996682979906758115615618846179856900559521469893434868842406154021319697390257338847850271692401381130121754056220150630887595039071440490039691947713904991259571472272400556341987749329849251705424970103535103513670406683649682556168796098937417812747884729569469451265463260679133425515063806690979455291430526277918714346474564693319477270811803805458209069582090908156650582572176498449779215443327671683341108169313078005495431432571788848504260928631117005301327177446232939083929588720438068903791753517344773951866632020950858039234847856412840558418631196969799041602697037066829468788721843841403781152144110445134988353228508655669621986405588871370497097459114668492533200321140012323486060493471667977982604080757272518227517259571607579478968024956571689268643598590291013035784394437015275106868344765289294137439636853472386025781101040706935529708820414658316014055314761511738381989926311752102353921822463045006737176497662674443722872405328689871382282520156815245561783789981391010404998649248914253353332688149005425937714751040242808407374300652443516387578607788563006304634411378460466151100516723706806546418851111564061132822201166231155672540295982674337912333771326563934541565381423446072324572415677293281949760834251417256140542946441082285767773894928981050687609945689806627680504114427323327989442216116001026620667462870984204577266968282366514665257018852488980907704548660348882969562767646482109261739938253218195783672043022921156884095390056839544449656410604386907779629929278354589837764219665151040548923598478040360412779109994424175079034192129373611595177967460802138405783053479407953629116157572201069942169574336823855438604325889999993585517633240910599251047070233616819080183056662428389038742513837211897186048641095830207483481688257502220740411044445578578986329961200983159934177167167829464163217876980385619602703551510617512541275497706864315309372993070776478438834415178939329462915547459421498952171992528372200325332326959167073601876136414323225614646045726543516338109225127385823177930099540738860596140606209227963306813298031645171518814568510231321278605173397657389588263922895793722466848714671681665702949511450677314056703346641133217078311974550570665751992265377494956706825357231612505401732593418525757557180215604779973369201846656848141343137708433874933154469799272113512470847121861096355788270892180119073373657251048266451475918860128001487099161508530880799876481363727671236378004940123721019399144149453588858252582354388995755421164109138635150126267504368899556319177240122585096395479888765492507477455666304126219129006714651115345865268000102837884279783873630544450755397077388476410896632119194341517317049997494564897811504643978264807769090150044230343583255637459535931649140395435644800716613872931129903274873360693082387728150476233150051968330077695241555102490658410951181830287208288605000815089923364217182861766899871853841304444590188659047433819925517048466272829036554047498823856070406278064688863738131271197113512336301045044800125082132458227276791462990653788079948009616767352742158910382607692643642530919386416026148779374042774305999110640175385421281040463485877691660677937724680448628490456738014522655827974501084654822065892385742787663917815663188779892965723633787353588138929196738408102666944487641392199519508928475246413753897996459861380003324059034649480030376082071286742974494568171151663953321636414380534891814364432098872565379678140778324402223646197005172962035439595730379354353733413103207797790809838490268112927925108564205613862919523579862905931461688173485018927773783480719392245313264342783980950383199039181700642144082310964857930382509890325094276517076583265165682147365843143180898127223564315072681068099294428033811637620710147044842082013274960622038701703639905978672233489303725860919711677583085626013942755228401017374385628636441472198721485198714673294465804010257601593130868589296999461692658547443455972895354160201173395892212238728643546135511144481798065524313618756465302224650790182226914771096984585166522516904893243647920063991559168497872333347035286279716934850433109367426899063977877444728311394197628995129790654860370775286492184685051586323702312149823354987222783740186977939689852098629437528148482273340148607415170543100251823062179860405046953381648983914018839762718221546701789861512357444976167815794386728014530932804234391576606623351950570935345847136169379529822789615245001371739314643546663187880259045511530285912812559355523551185900198121775764956819922057286384964316205687446344855132667055341339959806386051351255445688827672049090774360346466721448137121481059026659694990905516004453377781644734705042138139987411605735727666268188503210520480437261668355883665904398815649947124115320304417964461165501031696429760882081246041622023976942896804160767098748088257594003480592643807263948735517705864301679433419841081397000220938745481199695908721807535309812699995501016772637607861922104597691873515598350708569592320592778895667933876650586946376597822619585591979977341964977160862217676430875871856387169407059793025039343104316188825697867518548227080663552616031357828117711541613291737488792123989148624357704690009564012449118710616574710416048954813874440151362558406260506080277957701617411947044222463289798886270463824699220911320265265122355363208892843732502887430423420448344895868726553484825916217836326535367603661134862641410061496699563073504346408699710358913740243294402036411519766542629650107433293750410096081785937608574931287058190865736125753716294705552798951572222084052306478714407111059147878696212327173834495405904751647694639691556017097729318140369303361267808793757702132454176015092533119902168469271632318452587304092009921358339352381867259954801694725022624774024330183012230866221044429497922254122842383839530080821626548954784387620179132347611014282759598415383293608548697898729299338203979078513551826025843378430082987664279631152936548686439385934338021535500965444025883636430628781980402630126209237049555027229558555634562975503542315914162622175281501510988084633996240761700860269532807947859682295712848314827184003142937738488013092943129070972938238811231913877072493069225359648045349937811546026073323079193404985822803089054450178911109868945978769454943347833288165061686736519325021614646957309726319837845384119052890082792559056184647941189293828199627138505049109854440476974188635015918082423731762585266032935530483325240982176038188138527990192167999955156581850980490579270399822895259882141295352455891634303358004660429180549177935533541311848945831897941031968854778590244105475558156636156895700885861319743968172893240707217539934519748524330145070600972418417586374288886732434035529693659870063658277932066536010645892201958987295650410820034933126381786307781141840801505040615293490234896013025135811458293849002966936240670573288172504331546641496068001821165845660128823223023273379064055319667624871096499166605577329340500297407227150180242631892181376044474482597868805035437343120394186590193067123781678163962243663880518422276970863632319742773692032683001581524615428814990920763923690068588028350291627278802381536601864693145276972611897360888974329320958360362430421144371200891264784615125306743295647343383264578450061742870267223536658700883893063738050309679484754620521028433194470470398086483536607078772432289503660546283782677539734298801350474481752975828882519826510016809536088192688628339350338367284546365062063276408730928704602063282403218033378946088308303543294764429853988091743659649093855920729144540380511900379477683595090402437267417031478263488580058462434235111283915976110706697482757926384817684052103972762875694709828168782826576500545642332736580182001340145952982412136149478604959701025953938101702641917132859443974115373446428964899265117850238908820756770100100432158995523277862081963032271828476755917852031748708890130039008615762385342837841195401253722431387137564601307758582315587521234701619313819502476385093559989296554643610720314585702417044045221737811625989174281342444067121253584827372430284488464907694552757419064972575959098568319287722313725396753170111038082874134581993554611402705485647316249500569695489086325503595294936008341818170035460028636729072442244952155478525548298716081666727262778987109250951597343223705918011998133111856447458197611541770607022975571625718260165832863151475933041389521850547912736431426411611807293663130511857667651800966320054347591112280347255183166827905190291621154622167173787791609574440976704077975543815404712957328472439084263431319458401303445167884632518590092635224625744307823952489867077380290448027110310726837274559895123317235254325547962322459060751792706700002483926698740814850358609273681274296587850250224692074121621473972674746336094809132086807066240161931375754118422403031484965599079583074816707875931217094372929429695105269867723675993098532495293586378210236181537304035470945192171406537561879420022876786942583951770526082019293804743864074323543053355735007359817019185682437944889659484667210072511332611715844680517080663127304902689431066391971554802005178136871973275249588143090749681455955252386392429320982592423730894410664543487723471268642388769427692107370940814158046040350874166752245147591032009783863357724464229514711898698241035398924906744527159889721279382837241089615139087909527074081250857636863215022429059988908093072510534758482490393910028311844356328812770873408756963425968814909696460190577706595213212736833569644219121943983940677272830239735186084377924814001537189866599849449109011931285633856594511031687574344319972338740451079100922913860081868839784500255692192991219049600462249580455872356107108312135757559780310705510555994916506054404553456435541007819770439230460356354747465831855182746854644207946812700840005974825919993081505111098914571399807209353953186264878704101849021297081610322088425886383006285540860525084540005778245625210132362516287360418882918068536630082508460152108513543397492413394551831866896538572364259507970179501643238306106409774986936935839452436266788650192975858894126916355891519218337788344722218186423167963593327457020001668425392798914380189406122805987763311462138703827958989844323445094305782094603914198983964993862896332951683066474619107439569926840431814753967882489437415345919266080235978051984246148122781502021974597195568062285419914304458307268490352640753355990900900859416621376333155916812512552378632612738907214273577626741800856431213885716058809643688123692948204529847808332849902194371483046707557597834335230098427084659858034807030126571403609645910761561305776284648673204455642133723283992440714910902952743755361648022916391840429077400595549963294268707374666986740378393692685159564825183567508155161852375752888638157072426306689791723858512039789672752782645597097575772680522945180100129673847177738379622792464434596636199622607604821775571647903218226481648176211674289792137899143751256508040668489042289384865480001835462330968476356788934289036866592095916935713436651941746553645273632146946681306441366500090261430533865954682273393145858454859962733020621208790659504502165391088080831745091169057516925661595631669818733584533338674540525274646794586511486558213843959052927637418857780260976837938941933561958341622438079149737541368515189156237208581545971774327294947443105870773317617045725222830607586456537001917468983042789163515994825472345616192867565696247717422667668263422945093292864694469207226194999332364554637602458689921056520035866512455982541021635710274210669335955185367721661782600256638206711828271748732907927694998957166849966452499891836359178023203689739555966812629390396890048083149181170270171605749538677143078942301972462170024650535588625034141922985516339615115577538992003641110532491548546389195055213232542402602000804304709167953385204283493540686640814070880277912035565897482696231926073927107294281190386386124494634834436400823891366761855931829384798848071420012637213334036790947323277999894253397723367008225007490928557500813764596959249599802306731392236112797412278890985286532383932328040091720331531446117442690218508823055213826590961841108174765667972761567498789116784477775696291666217569754444792550395309564357375291339466165014510392447162188528469530249470000879784015649814127268819903667568666662333822435592958955065495282263205320661708153578187205301686918033316757163699332362550858544134825629402024696534862646917856350855825194814120388001353473049466420287284112260167964145170182006482275075703501959742997205186621689222692030032241520727467498163668528309417904632325104267985847018331475106638255340106818106645354646041232572952278644998752134426093864501357673277721147738951432577889502463891032717678018075312999872538354007178637768044545336061283666463879424588195975631802990800550176387185792462695837331624497526085679579503873392539074261878251259037113041423754531932657942244838705405189754100889911119076309311209588196638463180085993696006967278250103189820350110304654730863817170527647041229247298568711947963293116768088090548709201014208267689567968059897360909803446085971433469012874092515119732576975237316195379342486437730207789835572056066941767552589150839775842734007964644333366062644504305939190136466023621150364501510405117015205646610680082540890626791726041218287412639281368673927928720808422072959100092396024397268264936536947296973502081950374752931867634853751971282616941248815040385353586095093985311958078011557077841024343591487363748288851960937487087747839447646190470312732239550139526540625432371155820293720330431647533921385236839957672177003348247597141021512584656220985931748978064584142224197785849374747258671249517879109162974078224443816039618118263516249424759300040825833306280909454706929102964722294631675728333639274270635208032839149502729984780759576905637787719377176116924055978853175991310611919554934488502987889714196444810229374718084517325575976103195850453544932271167180114346224858248916779408786991496224303543639398633213150840030747522722893642191050298676531613648976735134017898223437369892585693654339328999795245436783838570986112656041062990978340006030630258882676369698700818366867714986363814683236891287482783709682352043725827084751040796218282880109395042918737962160409449660319778380422608557549041963722929747404835485840781305334126217246064818977976725930198176528803778055698323153215857944083471271660082808584197395487688846838282474052208616184564068887223242516617270189320966424692317655548426602821528856080805776170298918969265258374239618713788644034859204968330983631307246777822934288244022602639859040608673682541114612010792797982711191292308533280557240292604261591279351390026783523645476134839723918219599084858440366172256307531374431276149642668208816233177990432446370997269467755360483124406075272146186534673103495246442840013063386478726345218373600240262375480808268658370116455614310605652088561905901442938902430887551569314075586594492824548291722944326667483872215505789941259239826423500362704084102907851429912585689581906894768471530681516353568418483839082218009507293392853663955807042201386176200562175302705567839977599067793440282092936060134119060603121926226546680818768672586148688582998774896425095670020294851697864380676791042303544178301516694847681817367277052900835733523155842631897768105934672061036137379694625151893829352720583823859614659650486755614756867376547304661325828734394080826222681694911572067485920436944069193453726847958439902991523340443020362300925123996415031961271951288520238214347235759217700662113872651329060244368050405289770162538006103261977337461460309700941301470805409918658233529522217908457622757286609916262992375419463247049973573509232274667206486079378222779924377722243919799363011469194174976426967279162103927146689248849986956487004098129279344181723102675011056808689771185097339373771482622728648707796889092887507880410900907919344933870534109317892273168682710738205379497080707929510922240681032463823172953341765242417231921775411402428548706368443318040990007208868272384545880664979872574124196430865204864957921372388963821837235048245638363796527573677245599421331205989669976060020323148675018091946509378160329603690408220588024753120516222298441868131205040126002666317735624264706259929439938595219761523739688817569389033677953008262328086488073326559413537384596935745027548214352421885543182759015019468962946669304682187193390502318951378222773410344658281955196436186052362188721991005093065468565835807795377675735903414299842979558100740801126211212936906062308050917201464980894221074794523273074576204471465114460096312985942187469385903231680858994729850957437403548382888685171619462875235098695032353524517043471372738146065539269604709459103423598047041729952308087486419421540469681709400232802800732869157027651861427187636978579131870529625389945542123476567695543305761352464040643502646375691620949353750372099618667725692181787370721707534536703989160153744155520046448483127427748043391028511130070915218805050408220629606386398145874437008716179776696070163849806208577164480828148344664088370924934108186440369251285976224862748845504111545613783847421654556089913153362092852870032884769205200179125741667213838316487586574389566408227364648889539849264053242235468666883220413309247315993663772387774199263551851535486346460620265174539995260115150728909528065171952598253071588899055616743246358818242261932858365014358959843822917517763982607147716078815394218664201514452025271234497353905865510871476837554043121683842795294823949046859162579728957321278523988898220897775929084801176801839979578340872774515082109630119126130436654043618345671213521974637066481870482197635312911277652408388063897274030982488454127260449877812377786463137047044650537180352513323142408790425619844465692663645051102226881822603634851360058874369905185632611359807529484676007807799425997417014404317456746135117209479452120962159853386236626583164450229643626898946322032019808005233378956663428767453496801387733043638710268247187344267578026486451044146671445605259143590076454172682430464844105917183578997938052299498458009223353009577139375282577915473399187798885242078501557849874496453176486405458169412968015626301468342755899629143151920587797875434427489184287202529053688939539045412774023185869127050429490730372136908088609624155215866313870591430035692020014186609688736804482157774561460547780902445475000135162718071071034887056545411536863190248675770823150254537154231931770216721484254073687014782698506782534062307369041541519933723972558644502805190375175437849134769663301003592918937358315454046946785722568336157943517840930796940751289356431458637621829076419438779806317195265389514345984256149677796315484913981236214180150297359837966177465747416704104662226497800430954907279173188320964177478556368778236528358741089063538785658342042457257783687845314542025141945124937506814221188215461441124819176732931592210901812338555584322996630636754161038562684792452899351982525348822638348433511359921304999210690777999731455678917444400419768088785574468396925927636466795588298366451499772864225032143489206240642762323075683587639069594398288633687772010706666062209430209564872255241458367522154743414625733428012832950667145651184295003218124729960944001551079086009511831049985184598650636353200081811351391363407107622377893827879646709243474431551257840714033803396675643042402993147459163087130373163678181594877668377937848877892030253444572947590346962097202149992442625672284585389278525186182068678667046718657954534447137202241793705571829288934774440804899035200958990137949636520978078827461716611215197468425717060688460593055006440037412055494553438547686865125377525346541952222316699827417086924035797563566947423685853312859996197702032441406199134382255417546999766347548645291656111605515916267749579933953897146743427034387069619674006747730287687155903685309702623704092952362731118020935018736027198542690590832489132912114677743697539056639049966585557203594656827082939113783488802584739574619650983306108598075796811366911954834579150866789513048326589111060168129465422755251212345729013566175863089504596558435964361266221197649733168383593609592322103825560465880150850295558566524982393610074053191595989791696085280993136217447077303382606699718066811440085455793524114122361799232988442796959555074673623498385691686273669943197315157251046475096846620943570674519998402220318735516983563707940418141170657178094647465149059342612030528204433027082841598359118638176537810564861385797755196986622725641940070836163470360074382366756866622362125271167718902115732207995598399345311915087836136259311553321880030839517642314876017346958842575099655244036314800528131373112001991396565124636970538657487230892510523914781712213556126085305664580933300106473517185919057238510779216376260018195139344386167638305812737572579629245473787615433360341045930716289292411130998372637524628112813647917846340112300904733229854364436422945744675124178221458479411187517239953747535315800797164518346729833827630576666213295677431479895269957803567986684629739465812716621881361300894637469695683779603055466379581385871891905945742356704701044887014875352063220347818780447692955135068648167307198437334447465433094412943694316773614223425392879985965805519636424807643867242953686835346697710223051194531735463122142643347952995396913031344905884502445377933340142738390055624893311223526819791082401574862294198932527438418729805455964717657677956279020773870434384170051638386920934835298599589893795102420386718364602821427868553286558304745624262118351875785378367089311616332167467099124687594954410740148106263660993678215845569447615931073644380336640048630299902647919960641784785572717202866422527789028419722606129169898313125596930772194175449389192174119850789946431412153966994204536522603445630096183542525872599196621715891045060683338430499663043455196605607253958871120397472265224232116051922281685598544065819194002141732086991363321859660775903128059406511788498486847616931713030259872599875130030135856021105373811502667344582890505931274025222942480060063698679354793642868745963887634403716595735537718904442046368596222955341306496826547519974277630306846460301321549455673933064998378701733353953671776640765208866190366137488168333419918672305196824816015245253684489652139494599928172453259954541159276922221908863796836979677807277830231275247305219561706193511346261076403829764154239989708104022225018178369365905293406310052396922468040176713462720618921584113614515519048026114998045430322805461194166497977874098763212759245060871306669593771540289085173312056482089629593017342421388036753347835666394005246245499910891450468283392792006162409401828902581278345973516108224484944656733058162633148925523641932485039776936156938151138968738126214719991147365666145049310479518444361735515335933294320400737767095384562729234961535641839885177452145685571923921048590275957555185240277604445886214547506440331080291078884179811787958373564538843136963000680896009698623372279129571111854216322496154394262262130647625560012827211917988061155630309856634558648713670676974544793013394801441870187639158515226500259017536756248184212333020264293273856070692641944026369905139368216994223056869848130638030304071943356357547713773585908144520418140344340593364360243051628131304605469783235549631494609607668437942583354983359345296677973648717978097874508437549000992314822453492261443292860192748872828503269935303443579931446003766139752567680927587445272427723599379610667298797377654819255823045269897828217706322567018457440181984677654853140781808166047653513878782420847995841377251686066784487976927597610076951073194788078330490949729156432835822929562100622557194281930621060454034477899956755336999082867871768538379355694240428777862761026859509441357846421212964173862711017042027923382511128938318110280191643503353852169412351621500249615869989253195256529555899853004427444866016345082761981594744545506351219827442763127658931055803063111693118533197687005955487207001516154040617275558317404824839475032412559652984123261815434427168271026850230112588887793932035397679828017992844498386059807518282334689354582147443071676196786657370818963795464367504101186362856290767694767963968922763139839481307433303517732391926415335049071838584104195824373347332424279907762627919557060706813363293650294589131380461743040175125288939146949873802330867007883066513887274338460315515108602223937104925434323782545501870156534779428939893676837442165572743669783815320753536194864113227450843743749793014299873714995950148739702149546808468468355274978853109717020282666846783764324078558374129825747156816520657217634831556092101585401137933090985036180519857855778320772918355362701311127650135069885513733055170313998391056014901774934562495678270283211708742456650767083263759034191102352158354212620170984556712267464209139772002446182585173773365657905449573713022588920259047050129893903519468229243864243994363178398223962916830767265691477519952449027258940516387702017441057620161551606608152316315757887083255907378823823471631019806467702945530859834815428462470450825593341426734483682738864845772791791214266384972688482326166708511212851895455485764941271562744872445648262446323454334385167580762814100831427254599789977048734086979402038810794205851472915846440189321258172606361849573394756449308736340006642049482258620326065253631817887220266215613037042136330647279610320969634113609006825808711461870571528806971833859183744320786704404233992358226283764568705659151700707503636705172892780284999361727891544493881417032233777284440679630613628040438922764275788459976066635062784775582669592707903039339290555164744772557094816589494995212870108005869720051029616530547597430169584904761414217466475565927053215105206485972604683589586868777012005612972008954553957490214377208049128129389595931201461130350213148298735426426044273519543939561867346753516428199399256046077878077730271833533322101165779391386921753030632556335632658736247034196333928273823047959091004439142683620159149667338877738509837789443867510654360621716420106785059049304956199016095319987575561401601173349194858569719600796376213847834137711414068461536029239110678565071933214727335158225536435059007080502137681667734609791921902391360207640441174554646292660809593053986282815632242091174897783321904147883697552540254983761801074158776522919622106058717390321197956248270062282845810428233689877653089371982549534339768699100366920465815068879084946702618058641074130857788546596812978330856211731078763046656484425677988817821621897121814595803386946394940923932575670191490471941458831395126680985859776919617446185374820102638388613157821473836107437617026066429696783420891077706588532849949706850955083626527153155945886361099415039279474588805963774029606966974933206067581538371960598247672177740978946393800683931559206096080097040744657975726563595148220633110467714575560698759398949803922480456479234031412268249860305334834541183345601444118569574192491013502225208854466516192147674490694539094236842119706051113651750325082893826993643282921207260903008758094926560213311584417537218244577782509429338796537402518953964472759617540489519569059531149986014070969340684832469629720757263480964877161303139942196514006627830512505987183001718879383969400854269842416433355186079074637946373991742786180887028099210066204707421654010818768135658791482957669063974262037513017658427882709864130652602096796923791303573085785661685130544733790952227443305342819252678149256521932708304924632456811567108583513323080544678650661056140487050136272661596030156603410927661761199416744579537987954508101860174307383523962369781626791623857686336339018473228915505588220333981423949481509394171373623272270624192784429080684192602953025143534284557568822625342956310676397628539815685095454560408424198613294223262113068000815501975749579850894976478985026980993618570595198786584787586741251292073361237854257130265330069109199983092635120995910834112233137799496495720570271440483907899436646484173444321657599248096474059749446978190087686167495405622280154799472223243799753787949840337830450717816282136599047094847039866875419173844819525724737183005137366391597257941776071148708591864001451193709814590303506465600286958529930585522506280701292379704086157415914284092212198771067782923429414628830832956090221394882387887732639084430942054743487370806423349130539161655074729529345989361269654977071576027493022205714500787676533624188036790055845590488769709570316889354814397660375363684018387917981613765268012118134558148266620672974876994243028136828519832032002126396295968010009305893511089196864465922837587677260887895037824825699424634492299748101122913206719000745782848133140532619757317936858457280584344723219700895788229607346437239838940311312051826265289511524405440674469785536223451466574585417791437649492811131842014292448444363412368165963662409467794721407250945851899636534226634705010226274681875757222258737513945487397163652270761233056850820231762570220030018240458513938393419335856768224886419426251726744822439091887460742647571570483880020656908978380289212592776111987731655644426223778633037176764603835889362815766189441717295299814189543598357364576669055413702301782812554344903909329283104157984779237704098136659945207372501093914245372310628004055905272037353395645669464532214950362238663917204760822138102517214163670746412417233380713993230904163680666990347739296216410999979577691314604280573355083048388161653882092146739867081419129578144013168350732848165057630083725275699805472398690760938260445156741062092679400710650654507927526196655441984773764012899068835927555333948105909136551726488283720809083102914662461867543894471698202207995715948695989434748493402021336970772792114185219683860849347821411295954623287642783229445768911813772794049820011085348274032938712628249602621050786147169418890012730470411088979453750474662050097655049369709132118917395447395571302658744461708597806196649453218862844599557974032106676586062540602907461124191737851223161893574447814437692257206221799013964195334269544546026884877239699935793340910566252887710851808953566187191534760489930978636874468252136379214704691662799508576650205444965153634275754681736441131645281820773432103115384578238644926175510202443032089829320151082769781599325989196247051509397681400089912165363957728792702460240283158525534157464327108486704290602989948347627834035443339993734907424700920776157320462929324525327673740583704265403824868662977762989899444641333087453386167161489921597237747566653243817010834037073924941137860440601846802679584070321452145799389558264258982739005706386087792936434525853604619547191837015889213289667276428404183335348578056971243389409350833512206340882652310711605892589486191412058470445383865631515225984323875183373582207393326025246139774812144931393506807679716019152803074471760988233485210491878870889398243817682825930607164501168067100157483065826200792532758401329874644382235782729973605437828929884396900738781657341971469191644814401095773319408638185431461988037916747411632366141439598215181927607951270168401791067748789750692807602201192524789595586840032489477360246643753659614436247943015005676296227307028626012133330848931811802109487972076204597441202077981142052411929885488735740572070134901202770930170549757242532231121314004370403536464839479249577369925754578319648608802047399596325481525894820853905174806854790958012032749436726870746464704142223769635234503181635691461381425233138642909089955979830861994878684529370078667364449112177100206508796389025223334767869455194840132073242082929866135271365080762044520443326042131941788183530098192946879796416907547901247489133906041914455755697300617910830728840812038940244119224534452786740588009464823080828806324921486245288051688645112582951504492992286595753942724116060336112558640725929057573565160105294756908009239040632081469175312980823303027045047616673455386661958698453277071326032495925073830189197982224408614130428613181571219243918036531093981042692682448827172167081320498069752669462802544592589483620927137526455818682905937540905035681137435009028818663605050713218388770162377285796603580754183136539844147642335928152845370729105847588066781829396866157618148598661603438826353073766645305021651189425790253284399925047678885895766481250287541972128201145520966300805456748235978589005208999397599106568091623666543912477468406519504724609616025319124644037914270662626743833172998046170758422149745770815803049219259792830421455232701476394559310210222408899625473016078560263273082620230254348704057725303987106012255879186528161060096236447878277445793315328563773619143665312309020562852459557933365841340576972998149294520478546368773856737167681872798310042369830042398119395357253500709944527073319087863103150673303140104391956667362167737490346313187227181256543736186373530811885189674496667823128526443301163398637865747465715810282959322471181805871989843090955568470987128232997165161692087508720951500326294031678563145347844876007199036367460299872493224814521838399311149049613456847845056046956541414141028179780874686245800076261784772845532500099719918829254711981441642607952950002838609095597904253946034887311134401917298094511654352749583384632783730728229101502291218967114946075201506478012073450623859055275918735478554584283453592409705994862817821570964651457543704866181995841238169220000765796906056622907484370034061163418916129703979092269922378681388240323918660416739120325201257659213467213248024756699357911394372523554124872415229290271150333380122078920829346378120310974349858002685928892850480025353003951788727862080488999210311226937988248103172046585502490696001743174032540177858535250354032375526676589971793118732424037853979766175923889809526268669834334789942057229462202381611881925327680714791077854062883547747508651182123826385338580400269003762397705959883332943578919965057261966627686396122238964175365846782308797396050667835889628872735993273841244708464522223356817611819380562491835710629631836183634739548841109508657119773540557755697586818940524470836812393561597935693245143584572360912135279669704102016874784694065176283787662413113694570554610128126547137219141017893392854232692919173769581797291856892343081015341946199976789453616105602012844927300895568111090008425403434330371466261601931399920216819913475141616714538815216630097811109499634219717167297204946425578179142099792089052478129792559567370031435437754411774745625059769388031449131493954146335169133035500712868547417191006192623464340250798553292668838965655007150416381973626670624997665834703333629105822424632532489242058037704836478718137509611271915410342809092119030198661909355569739437188260220511654414151365456253174224891546577446060585767504565016368025617929276795247615128362547476351464553471537909156583175232805006200017495784844674418967673806344998767187461421392912078209684404463603770794663887195814904567375391095987271161751881909898022154278693637265352642195019775356559369133921218988644557868814480535605850010844571988325697067084792638216171696054220575038708363867205729548274395691855945852360049627208547055117790884446248416600297667793725582649019230302821537742004246052070655717982698737238512365522555092016771306542264091484323362438115684424038645193126444993407209256576849219438359159956915363118362336619901512210180630715458466725514266563158714583936373620326708051655587981310961893995950134767702806240549002927670593358425841343266666952377668875405142027338420079310311886035931497032934845505125442076563149223821641939361077581906559960085765466811007671070591052953415128486165576318663191997523772241385915561388539767468427167390571165345860238731228892457444366208112197741875678123240344531497092705477929830485223306410741014714964781827188905752843757457841267758817589655545963549672641616792558842276233849717256310907726349101504288176676876029663083457454273320134984018631322049276571116589413156236360419253380069038705472677782001840823152513303727583620834914904092675221534964507948697326841870030410410356368395475129461198070611282516964062463231107913137559770168913596486355707546002620574436841617035588671038455575992347268187363020655080455877186058326387207886347146818939242930937077702926740888502281497946632430676366200672836664663262295151620880829762336427391807018923595956166127664730144194589095994186206416945202660951961024931462396616908125734421386291976082556789653713169868761813287620414539702827103830370618783863786416505440548444350294906954547796613713928433798149944974471787178943459588924064107317164657250698012831824620901726812812397605677348115903513695250859109645311309784662542818564643642597084940863864906320944885888898267765912596902138883142777706418574990351818162720297136899293805419112709219429635239319488402382347874865213301827241996368075350339807579461888874325115564802348513676054841021165913456254419987060703891031497530044807265966292532249509595122838625306804882153561324980480455680236529475586534941348882978081071928931065457280622813033909443027900619747126420261741927965223270835674519684240964115156862927335722317640826535164960168533149492259917593351662385974411011088451082556181360204549580193512025172705227698252705114578331780282329649947486948408252411930742730672935819140842779579864881118063810482100983695753274568146272416003802833082452069471273158846856896141635264425301952887037784472249314861912081166155058000128575976783563742708898044499508021274806811013459297204693880635166586703434789621512450231538282009607543533827057169149093632523572837803190724464821035520364445940391878862749537561179328731736835528237326152252455045384973531766184492253766285796891775056515181475914652992979442322071582155300551718453335867945532624955734241058362344502912262772208077546540720232077267383239962499333754487549505293108503561697428173291082008442439106566257236601001794533795752077322015946287870232302187424747933232958844993161842334595091686734699859597972791447784768658502286326516413268257931205880827515742717694399071199044106420472318975503552280759916457352028659503982925334778970955712109244481867494388037118763197358454722374113081686879935518648607813735735317442247115932738518600712718125446825566032149728985505696351791233683637122966060841238668393045795531270035022939844336105126425439062123482881354288629469672534201442803603785454358436227826891875091043894452832430326708418558158383083379057162613411728191971926856374160718432326979770165006083467426517813983966701885437511393255474091800923706759847249500251921772928711023915570494234741635715384705692157142900465856882911803997604095066688471227312109102262489196546563572686674894394509505542801472310255601464816901351806135429644146809780124852896732748974298023862352445713895595484382451079018722122643801656199407660603200317501323163575712484175156683505633438785700964558645462425437301253037159204531689554177300308107046874023594588747412158064221607486586070433959267266369933677751588286943838135940998700633247915446765093016908869600462192232631382535954384913937194958561071218674543648427069272536463110232355880748474888699343714802578171197985354871151020428009247239402015983798795626605256965084572114987942604958283258621186100154495270236868901031379631546712570084071793451876965549582102663995428678551507362532589282025392789430950675620921201332809228274016263677807943202800531473620697907256004413947737456750119105841421175771002673368858543566717282630077005351171489528974119969947188972495340485218427396607585908663155177871884840138042216315797039431941823118670057202073242819818245170627615473913428171765235590716134908983698799094888890875777411315535421247920424291754060516330791633454095735153753792060452244539233560062495043068340608060185077682129710521326863929049112404883831040781910888707546857488791253843195595631795712395859711719422601562827875795516047525104538450598536517850868779563491537414697290625112729842246759946928501024609253418869971110995764664727013338193767994658171067567477761280595057485253799015658174175153354359947365523251812005914548533915823865322120354493010512774655375018424345313615665396224573723409954860150189027896162705486238756193538744130769142872618640169333967480719193084008861132582119477110319352229459417399863268996350671962408675655920388046077576879422359810555732495274598994997287549808439605519922109051950720167622389483161622921710738375635516429872945479449074146911517779749023832350156582535703417892087513787041004698011146883867852148219407505270052806861405668510150050390455434719716471295939306588207777088282091848026166829763073212690799977373878753601262636604154533648923047550785809270425232600094750220657606841665833604928033269349498073031282009524606065532760497978296895666406260775566574784980347518918155135393791128106028551972276585826028152245279189822549858811533994814912323469871258991609572911222463284559970307304173323169567644023496643946197060509728745997489739243888658074061697242615201737970104951584770901526926415526733910170529240076208601034063918789804543112049075254099682645040695445472263515538530669341233741282565420165729288731050767143697060639956578545080258419492845475957360419922592521417057238861499144626704383076813269887527671306533835384156420443852814357641884101029804431084031550343775207718569630823406869218272284966300089519770792397733894872676184149024490753896939703250479824999810853606494578374893470174269916204601190212506592426555657728181724096084769001351480733896172265118484145495212529634880418279831148026925219889534844407182754251105043789881140411877940105676435100873324941729422559632911741116183660701181416934681006500140615599985264676206206357487698343356005127193234117152502182971978396497357781068770444691897559491531588496252872242586854041168742127083234420168322332418545030608220180618978464944786764347385716151080302769313620660169777887553606447391433065653689606520543996139395708796892400605786360164122878975532719563988085162023449644958250788504374278282495074221548041968429673709737007271059540024734174472867261294462480228949005545854352505408591577261542623030023838618394247023204298954737888930622215489678024057991104140097212326147873072921755864738534583614138779894606135188244420250417734847062825607203203437046078910180227773047262468709711454546519508734570619991351016386352063898536170406633115990362030682450193880906240485786108785402646700091403572383180330538263154680139690409353005887665783338011960530261408202655919644820251852387700691661219972577532024608025785149445258532625199092617521838635650352689689619572309686388015648454760414885679531753834002893195648991921018899306714051423892927406722395157186095540424881602336368853933500441780835174826169873625324318187707855196380252196533380696715717470786460815041041092596087512784922882543523559044753349339811386408585836230476575951054330561144641469678263335835773588163635622906549582877794842810679740248509720461027976399680846675091202332144710908375972469272529802326931199025514287800145854696093073455711587849947525446233949153465697772635537676293288399048679508040833688584198150109970279685842548337513209456681651218542485151813974528325356283911463153944565103063019222760541440951995212898059965104309191147342890920525946736991871617503462966984652770971659093162492036011845990990941820426418534505876156155337644452696432361561796291951873483239459864083843950333243330410018215990274913931835893845338070847055233881228476796795932603808942960994734302572655323739219922097307467344687174885984962978069680440838972388428338734636668513366819909793196928381654669797779491922452957604027181232055113558641178726376542512115078467607091004368088004725635922296521665750125957045079715222434332187648842097172149944533089199919354011492151460736110895692466893820913680504301589379632540444729560709995171486110588769767719621654356152337688497950195193800316472739590967518616746940291642156708287938600437481357725715330485942091093294792543432943565095711962896704996511047823914607667631488920620761231534866503026040767743960371465879044423990692374857645544524686469135959071300185811915234592314901040357812267509063903281294806387774830603595344664286419133122269195694791222015341793011777809039493640261547337610747843645970697198708706537165130234793275374127002978245942984511175840937765093963389839945334796784103832568028819991738825362298537139892179946736412814170435665783604541224264111235361057462058888444407505783152558407735146436038326104870449307592812658292249427241832727566779049013790518760544788319603191226022926928751298575284027687847676352648163650517866957932217283271621654887594513145889883379569615042652189479026807414477861757184715493601670083512693633485603782976419968170621127366676621157070660171259169589912211111445780011481712254698111505191824489677627260089603134858709177506183974234160285540730523991730321883354511122245519889654757706958636995222460734010377563019961615349002759221840432165776006142157406299477171099144380330568128282292243260517601517243530594556574025001988602788065055766427758726411127113410696257544830903099135195484699060727842259032708835034663619465808448265300477710072261864564047683778777795910910213339891939125481895966610092483170730990375630588569925532512452362940256908321640224909590835588665357003395259506812572746769183232023578948666476994581533124634208220651850254616802923941598805643251944068988723039156996421385996688193805312351260874266012341841558900143542580462910483067727727106017396484227546274649071735424095081921308774484009382386454580141179600826659641074191444087793572523144687570060717332664896650758254383862020990259289627927036862706076783192469091916436235378988317744911733557661530510596054636868031458168820645263713692950176046219781500330422019477054067148224147165614266141110029232181035504942728900200958792778359251753889133975464905657267523101453891981509661564012452563682309827868450206514665985857633140444952816877227171620556343483189455835414849983806300312724817535514545190720413997995643793962046229757332705340714869297468629545364084220485436097129374233066349776112536677750561410291248104710309936114000521538619066200947098040066422520676705292722772879702916972853666556433155679044928620328833432975256692763605104036178863230002073094894934406640318014472557188918089245908748811856110078347263927290082916640272245309342127240883410434633567118000867500399877022000132617152064051329690663912851553421583717581499569948889831055907629425064915761161830558398180649562368757339836463501109411943079144272544532215754717054540944145141479777644908031631074063020583377680425387707543758880386472198565097388331826989801360783650440368701289191380430449938343101154641721370877684202186311822045219510136963172836816663064114719746309511551697657788347014687946442541275683541970922285939518811238925063139466596362906374975164688697175352497890044121202555934158304278355632307897160636922967300633728266634566913377219197228730280711289938034960790887446437768010310223461839323333615325678758271015053003204249262128643939303766600465462071294823907578623594663054847626262898776014603276762254869534611302204336763687360567746969022889634397745374565999585013674710280137288735221005814466671160782485071833467044962891061579288981265390121947164568033597157630428309059295179740543074129529429719786317869090475088038817795745646368192210245808724744235875091152902180768920577579449840116005203129089560712996343586236029944938561493416825285957011160858205615400444957448657166536070588957238223328208577959565947911875599166837448976261590178167851928163895060025208145308922735651188092525470778310122410918865892702531912152485193047866835686882265709873919948473070195798176046862291168106967459001674422683021006852073020702645190797536209269948379093814636407986905239535544982928658526284257687428327749140130385744324767090726272350536139519746773891786393408400458632793308578639860217007343851645065538353789478377735118960632930277454193958173431287717661050452295019617397577033385926724802608840498788616502206497409732297407644857671470574865834009338757393103956434287234251027978501554801132968752783382162941380446142096763213656581799458226930667139928959017777999997304643883225540971293509786457963219115166558382438509578542256863969417453563180464704056389287018262612934379913419455589131559886590374269973325853617026922081177610763319220092577863851712103053958396339927478304478049953151847212767355522470263068518034234681668807877372302981589707167535314534900734891372802634472048788191918539437525568535422210155641829054131248820891209223901513504927552306777881872297416417321075653573610401054256309188847546920225159720447482962416057423347688762457903611685124427051410837389855300675697461187028650604896366854845930444241042856400717152268363299354950756356576927257890075460021553026277682747461903139704590138047420580100657205468340784092282469466631542316167234402984257068821698864645929241480352169526647657900382913034810273306658157726289145816040632189624094985995943167464022092390549497907822106303754355083812804978353275837430880340515201438352816455982287656620778104794501042189269408901494813038310244683681353803800575843759877338801584897821133362403955475215926626073161951916998238038006181959169732353336201748165604096354781271034044059960053456879788026438168314420969368853672593277245297298953587007005119017015434361551862437891990393304424286623510917911195230330302657128837379626767183213123321864199472897701367522028256570848565098421906930425783964103345046630108770650584125623615772091822329438985990109047179773754060439289114308957263012993253899066329995992543167857085780903999764725968565098322838085534628645821142482936493269214639374932601519520882405318920104308271494692868877150544960809324559328153444308683400993526634677551399695949137697275209549895006682510794608684268805043948558598341561929090195732592202375640535311105035101200502620268668781103550682842953225881550929180372501389434127590919436630868861669817001993982852309579188837161641500981982618262403699037846569690258790438613307058508423922829828565735548105797194083514765864600770604581401523127548626675973863229595755077283317151656293222756639688854778216653876205744597612603794507171719778451807464008740943794066813492207857366782702278671961816810607269780525776420169128185518875051083278341706798925291033740672091555803205781263861748173083858020637622172326537579297206274419258892122647959292012603891115127335250877865448657271826111662337091858363071877854884110958529264285024533646171936588549293721079029414842485629516925769138249033686092213711690477869759135654854227407760604060421973474902764054344505949514588651455563224146279639010820689341643447599262959361722417211097731394931998396228725819223199567675675636890739928336893216842019598384147655156637992434129929528451904723537814417794200928266054066861219610036768802960283683505561910358143630967491986746526800446117551617312014445290732856531752128965666177541671794295850799690974781107203050789225719575155128897052081762294497596015076947324912862135853652781332476600817798632452303344740731066692102011708263081505335551990470142699094761562962671701711822608578288116126812863783273015736422044371743287379852107374601536625533802331592964242800929036562930224181441637891559876780160340982889654729323520719600836728895816563522352169250815830828889204531225468819683804544819136147661496939037900070667376890348633993476143785848808750073012633889692411214095759913389083486705782669579940095647987340549221646486613683038955604442768781518408963279569328959066545201995819486604195800097713067237237637437865596170161405457160795754021065682106969147999072368273776091897512196076641848530619594883722059030931544811729747625511051332904220561750824082574843854837043431100326089340837646478488026332260486320206507889701709878203215038579701652854977284492555936111426280456793173705021077662107378871050121425258279495957443607466139270382131445110369337015883370468590761366407677293721403434560905057652011924960153820701826190554635747740845326919861175528656075607353315873670946930102662061203997762465561518862090542461520937469027627836297314545306873502789838371651569380227209449942536374592673824647189914910541005594502767953360288343870965389351018121499713703073935092145841098426174260231349546374279035795548333021925706944910062605932320289462462806109857646299593885360127510734524926960539345684143359066741283590311936492905784075900361004134953730636259054703291007805003005045060936099486457237679047154662699102377268075069627000153314389874322012874494776375222596376191515615853791701583651205758909557099849406261495321724271889748480111642064079447990786411849875577215365841308922084769720455593241736024390007407465064745620462679845099222402012907388012942484983912456937273143679616804352057561214773529825680454865754121090185445694713480654540762385802889753075904048262613358680352725525091525540328437793734703344898982206358090292578810516496299722788014769390726106754995921996013797515309787163009688176990935171856797517362120274228524834411244715078613876376916023899624174141227589474714224974512497025540716927211261636750687466134467764667564815608500585904782619702267068143712526966762771320909518041036129854898790403987772546132519741542379131855842436081370593381726161964020488761626848130543110111182984933632867184140892507329137049024396302696396134678402622500852715411677773248143191645516225564269593416683769256147559574755462983117584683689085350193638147295469710196428475821987366962475842481959361787096117586650413837927277116460480774994976827072063188263826788065098835422819551083720559894789734506670902134077922180603069677765355471520586219182488860119655080590255025273210100349429625139818707009976641916099727247344726585953091384656139474681469242907580350600567487654383083502568204292294634576448638075657638590121873963941044313874395134237805064565061544221520099243258669923276057578824361901794985759764083032000687626703941592058492925528890260305081632083861860346263695884717425981594491597351099124422104808347649710785990157562967161510201240136894574067986176731617449607119897102161553616240288580802228784052266826987766774474674834319125848577413954409355115888334305562374038193551180141810894078734711018544402996556366055281898201705304226381322900737813719339499539550540502465658868680117878278341548856749340716615642067717308642729102257896945046249489967860294221351443125292897102052776433897366109504156055955705661070116420192115027157267256875025800871208580686084813684714246959404958573339949469801581343946608415630039267553544674495072649228567659371808887321368125428166492819132734114726969281873735638444500142090163037152607855131130525517731986554910022217512726029208287856602446710927179289481267116399768398072584819248861927573374048531471541893506603380948424833566054432660676325907422817738862572842322019639490880477893853012506103231268490636169069804475732903887073498717580533252796263347826054698385432884152453519905164736498605363746660102292670672629861260510836214700087991017883466790468435364127237807883208144248224893787112730655042898831761658755206415104581153080683728275094963474846140445785821030351170896094486215108897190795971885318942664835989095202719202593862912589038849938529731332266946671244049837400430469400134493369617428816082936361193977437153333135208889472279253164251990107874868932368185115990536852485420309282197146444954080352238212349947747653381228733781032381466167526327128227905969802917599347611584719430997746969789730611011972986574190970086318677023251303031358775643299876976884436709753081726392522672839701085451624102182027982931894857005129787645647564100631595165783184951135963711775599198651605632943668214834592995249388538735954765476111417188990406286302282213559647964584591574444436401607237207087877651261395337322439543888266719081879007162471276694710187742762420556842133963895154545471853402526885268545012637715107923510757988647832496867791581065600696319335428735182866128637756663289333826003800596742382661823356949455489179902085369598128353541115355648134204367403860132148279110521423177856809480874710707081159304036265157853878135097236026816036735107950794218557462111638204403858495553238397826853730512220320614843757469413496118718222332495249710589667770485588351890039765108386109518502191401124389604413461642792321025089624993362260261993790835194292361595354668280888656534397113465648648786818070681478298579672147067209533724291099269769683365407672108477384728910139503037011099543668379591665963953359087557070966218766741590764633293975308655547056437778025371309941962334348173394931286239380557604245848953618959915618892264572267049683957482100749448917882217952917490114013982076019915742327743579743767974980556706754725162263792585098345277335427546039152752303997135562176905208885613234911659774122032755729755541462954701613770793136019817327680041905506890199442790674100253575130895276939255656233350930704143103888402922117407780038923699713195411417737120184385597686387907802079343150720534512967730778938738480193620024989629201740774321907531198779145891084308332193078626844822960690540333383946255141641123162726990540739832540782748775362841994437578479279507466128315982774533588512168684304441565101589209794523855009895911234515307600020654029238706142171051998404333498948416593166229329543752222889542297427033735567999257103977937063968229866122529708276083345557052911322192983128828286325006000870225949607699081257714536311796075583101356776984429638541057124087344958235091842915035114090672527885063566810024917607815998252260193346864792617501810144351464396468130320174576144598037914804989336084292059287325274154152231986984077665147800897182298908825184850265793967546749242857597663657469944970233810695769294767896625587288302298810804785515369751696985780260546459255517194546389360412900652196028415598909905237442497013165278324219611865722983784616993693234412972328644868345022064098194405423587611554667966672335968809096650727419032912308843987924511720975823694923803090893644238413456136782098650916751672649295813000089770807868830275907186311918832482239911983065225720617791803186568791911363014979504546922870555239618845880422869607226410004637022366261139789099181854715305179900142092672875409788672154978854067569568942179049124790805939371315383128248913419390387320254460848764350456048813617871265114024066668393147921768232407776217364486688985980873729310562559307872649264128508902702659133550076999253990603494902027182479676832048334923883686222374740431286751995439386884699258586525844670145633252387552409560884074094051565697447195026525725614378224834073985192795412346027727905211677443410017532880554943383551123804798917294711128931169989016395887529247813127986336212014064545893882903423952423476683546477766425439085678560166765676862587023539866875449993731177178459244551659471639477558011057201072953815016742119904440676203542923706092353389205435254923469623069707247280789634794545186261575884389766053357663397630195796727050258199924585488569024447671095240038753382530931179925496907174656985296021351975202069337627775931100181788318543191543265460565725914452572609519866309526579043153417861231055540783994921025373782187809142424448754371500094150117100920334707369439802102516046081277829291135201595087805104634251282063463758830469850866987659460944223220342240397409456426776833627290454004213284725804560623165900802417168402402019212459461794958916689404568182430852497558886282533850184160205734981027134935580682409374274726535862286477514611627576037923576002024201667811974967319293857193118209050308710423872875043204856609116913645178799817992388109648562647992160822614639778793585953557606023366941887693706247220997038782649259348231433953566837053118937942148474339849422566597877344659727975180389582230278580660465498335022499844955327524314303608516527498744879609488563085051853746658054538828351263507770567507051117560257827486618285618676116044075735831981515765972946801502646192425935885488808997338382797499741881132801500414123876084410681751687395638858057389804459533751684549905173333776392318093629325848065039268028720351682751524300334455090807667619856746162665850219192695422254061736949893369670877372967646868701727610530173474835688454778941984720354830825358340204609961496729915980650685722828459717594089835107517679668010954868168444674169825486189519526374276710222948400857523841440924747562967357782649288112935797438796771105767234613354414638015821659342476019023862847733383515032557029089597275467055038310594440396931958618643423018416911338156178905943670011965314515027086747453412742145444548147611421246288079016782789890058023124111939082333976177706875111949613137988751929807481153895257483894787870095806085703271577731711386036301061588913023054542429735067271145017530600652448106662909026125577094270793009399178134727685900955171502011075765665063740270985969732185033857663484684802326903248611310934755292675605799628623717626033440361397602238754530129028623508356567282581471390655500794123635251110602019833846306605976078400980131189419379108457230827989103823583636887027744160579520195086626405511078745521361174793522240908693564038054331481804937710381583816324335760388800883590076192877269824507509518206907402578273183624696351535313395181156870545936929689800285544904881271637584882047697899324434598812685175536669933328596121293165075298773333710132782116356828871869407940683539523322476329476705760302234511712018486025184542526290057214684239926727068801110287467034655261465053386016159922766472209961675543820750435827115807878440960740361273412923749220411640127211783043471937232334972914985922731242327113291272724215064896622800431775139720937188392603697078149026105783464011934099752578356848280612743073383828202140716557968353146784305800588401368374316890527233724021511454563585148531915353722933821278716290816842745948863962520609041241597013211102546847298510281287267841334205870512555515433559495758662203780281411537440201648294413434850488677286268224803231352930834909891156150017196364124878367836942711635368271802731390668419516204352767682700021046848225625963937365054647212878688936145710005121965636678821236039481028126590281207782955473244219499491854919632436277117829180343108360448307459800422954649991714487324093562280827272183922483172123180222649846184325027729132022352406700543529413033169820381473598141451177408106726040433055775201161937999666135533554590408039347630167407504277587703280769514686247957659219644263107886961839295982440770577491592111088651605096613320066615381570024906769937837318851927266384606056997822212472836943621576373057691085822276428837211380602523070532511711031981896422122454927628794987711642765323935511366040097387058885413131862059760469833994696808094486705750627678712535084786334620957423157515119891158576598800532364061051533254308596885394217691669711545183201000261284009341958310593599982777267303948437681034208519405184973701530869348688268780605273665433941729309832488158720287610256428721392104017686420618591096691945005871832859999930726228684882214699144649698974254096889543143053733619166346654055205095230541129477318640025309698919843986417489385910976421937622359008432537886359119453839781503620044794815731427956998243602760156853263283466212081943424703811354775397509286349860581461915263234705921207593594515355586480798763707644943179885755797407865795649932105147399321108609256273509106724318745540911042905748148406963186123687274419127108206521437601187635880753619563056141939958591739435901920484224747898226721932845402860636890367078035555424209840084478755188794633630036735155175687385939648373031602986500401986130559721149092516103801669217450634364367142232397161792072940932528831274017394834638037727433211433176780183560753408164735495106359687939133488643203709420978760911249296811975566680887396398844558396559787719922182788952445126950393725815422451858379476520786087525207384883383429591977782493325542810391359709662743210394862841314184253278116132865260945686066228359890960474613766012260256530599724340087204640988128662640506605148881106694262607743644837061043758975763801844881757125054418500064547413420203214675963275309150866376834598787365208820014840133714475266203203904312533921682078921653122379122453316929842979996102010946063698098005747609639759101955141466441634666679749699848871403128306532621295160126683199320146357587178707086746409963366472576355949103879199956467944997125534867673885952167141977807489481309825037523592366990483646734273467415535851885445344278340346200919465840971617981617827083337509683943890721618829928726170414840964724927888025353521895427618872379812579465707902883385292279426257433388172367078258057827407556644972598237069488987915287269525257110494496346306976842892454414928527846262901016468850646051279149341300587176465691551939027692495871779352362083864735335441489590396727728325867652717569189872679688830236295613806534649001976161469509908108215782934017370851338883952855227960138438057062016946139799141276204949576960273218903785687890728340171709241017072564106122159232922226940515741991128408776038484544637698154417387127250446591920689665474480416647040366434572089072220833832995133722444503394600499083794529423696976105025658330668722337754092788496392279273460718459733836554490642961247887991295536583963866002163867672386893957380917154827372758416126565810480586305187277905331583033370529577815131024635487778898965882235622745988877371090991601794414115334343033901384467168650189363155274873028620028762357338055518696444559746933696630493301852406968457106709845878154132205749805162393193877804726381486774905795550911895316135829178481636440258831513556314219924285392664243219578222208101628410981223937094486027269523200824840239504074534631383269551760845943705496925837571827232110708239734640927549306374986198267606689980167824540471507406115251068257745845781135130615591034488424276139709468518827941607128237408674892461602746098879798001863858868353170546510571805074173206940947221067478824403133139389128596769394507492388298303722938375251352740154239158684752859724634106248949965038323132601839202078696753191897754341691188318072452905027630715045435511338112954154078245045684808465337053119475827520528936973735206150169134785464193311513220317883972993369311086026069625684408163691862648338140113260009679762678620776206016187999730078736424830817542893396399998463974979088557912684738432859466775236097925296385541596043594141214881113354215260800712801168432684148345932120834298340368710140152066550665434443421015344658695051691737173149298519632251926206143140171831032088421188394861560153169916508848945803132809164739609852648600768879004493651917978382350144898008719964058528466507572922431764037443257636028746195383301233493070745160403438110635642483500463433851826659900783317955669874887146769338830889275425505018850828632147763933848950600403856648594020201239836593796557545869260471701513657031941945195073896473166748544603794373764253477222133050813251273756091062573852478858011843881011760518761028890372138332561389587994759747788633868999954520798105917031372613258130678568964441468677260372336136700416084194675060132699041200431785718805582118352700329228652954250394321201178576381325805644227433118510237613539614419394589796177076565607257915956662787127124755840643202803125862790691548622195787712773599768672463338389423878568252358345232169020330289270279062217672019584208351553832797606437962379054373957790858805286082955421381239724080489313321116033285514613842544116943558783286825733750419130610240826422968618920335425004917948556220235221942554186336186275221593242409887088381215757080553215324868197839075125896269704072735012657347433014688052972072092432367288890980592385790600569003880623650964812060587377224047109561555102536749104030431059981825797433702334871066380392189401521915808837321380699521586359976094361951106934675451490034410686541476261504613194157299839711716706493574542391177734791875923798852850825720645662819146336999686341447561118309025557671745721265553449007701743394702194720123813084753745411896542736126210229896244793226949958898384157966549006998964791917500117744236524476901495993705278835424484146612590847985209554820263819215002067710710821083713839883664006936795734395009175929220435096845049633941814495876273667272972516771960175900416444425716207314421234715756248224278948350269037766785602042460605736968151665067254711068972570184806188795815366955220395531203099186699627073513952298824757159684045356165555591506060389727801386173848441642891161492817762244103801572725914318665739247788484357110248152446637001488974719977349862315224473222160309556066721765120124579513153223554848798975223433237492252177708350836281697558825276671476911061902219992252986866813918873753907706109196658133922560788631664421368307644016420529163676229232021179792286901421187647414750202221973935786234117903343660463075713415156151636514764341554204049954344674543262376606705395467498383676088013498888130542937062095967988445127137721510441611869982470457837441986866382374525229482528768641920135175760252079984837317790849988474549471693430159612122091520330840578098233756620062203010753497652098496014231625563446602086671326492628360341590154812079875980762916533322573756948575334729818692354609370039993010877761230607140117604402098212835739374225683915343436531754890094328977769460804014554695185735269286537116758882357467999076558937947782975457643830914483706234160196164946787690527836199935257980112103874013937393954042744741632013346279340289614131425986712294086541114210995045415568808142523209077561589708862815734449332622618183049797574260204873893158877970178313233911566613555147471554285331412161566557638135855052600413852769812407844548945197365018510582019433174446012143305311870070535908218830816079790131330939168374310963428238620623614053019575119497575064638314696386249954731996583523915913007332831426888199585441884226014141879955459306688255230360374582410015784944618961351594061934190468263865152101864524887462006656550886247862454934087114642872701475436517643534042751692502975729447988877400009495872490271161988250357231448783458047312893357001469288825084227809451696580654224898905363099505709975510932718779083308046251289759535641484942142192288191392788308113804270066721908447846291009926928877138236046481574522201233296890677835973235442930978357700551423198479336054580454118252578413508808489394808444859390064014434344169237324918890648884225047367686736936807090930993150618473241512989631829404795427540776843589663104010488230036287091621773055206429517833536588098647641532749800880459823729102509919649020571966381195149014165454312472015413132502088303893400569360033244856119248705995867843316088742865272810696814508570109608670614392220014257367015422056268539991197758144942394211089772033317077554465831312526173984300962566967604339350201902761719034267460192202864858768892932953769361649074212005981129337909680618416841116114897336526538055213395025791841179575588684450934159884871473620756898045145475450310124148710195175428202807496879808402236120097993618550345245917613303135282283831775460222641052245829610648009274880309937296540286342444276758070153946276373521767340285324699903161681303735412419388584761528560092359296871331439103161121160572180556900812242187462462669945905613804386481192276488776508935844370274172883090652811206922260654984176798695322256226410701401523560901031585259547101918194939810925901088349181229850044653868575529664210478664697391892441359272225615532493316992274018120884762560492672298276250393861154929227033797783367622349013351440575493253974208274467559933612799262431927218091749758374260702468653461507201028359119387024905457820572970997553327524082347394987877451409757159152444737744426546514813211300513502506769416891490828984834503744993352867911087896563573298601075106301473850179730189926257102501085056324084356849113710047377393720585420148996976732888935591834641326245353485729765601331550844493527359181175457504871034375371502932810032612998010114461523894080993304072570653320105090011254256610027485792130707644083958334290477959525842687951456530501455470990982443650172645045086020709737237867637259163092355647014199100977454306587207227605657375793911903245104683323275521233136194149121238952263723268434519623180542018344908760337554782597722569390327349441249067186737722697975000251741164530350971406407801365954384700166635105371374585508353666202788476338727672745182444858903502459230746347317807010521882581737918806963895698878995675707197023714703805635451533457750512140470604232883316921106448010471796266118020989820366749480456044043547106972356951533389826093086469968841603165959781117647154861946385697182122075954051189917315589600554969576871589979541730498749299210936247401932880172409536751181897937250996129444380497333305313716240435882384548334272280149693171343632292762016468755179022413787331753870322600363159149321058732284647042800721029432731539546318252395300996858232388373947217500910489298942913719865472330562218371984693912560275410166824272654161331856990535769190290190375588856787314744078993761838846424752618748394463658645419112715196899624823012419835008736368470163590460514236913303923612871258278106839279605543208689046808527138059560806045919798798915097913206026862780724004661384854662240446240629244243991217053283022139018585845833627266060065305736079301970223746894861268940408758820065009693019674706584228154959496860820644194662036042643642542585538936715686619453934004713737400285701773002632618189596428266689548924427228924158479116784300365886409491559166325247497028006702198641002695584726800481512355521945852418497783173397163232600269148227007309635090345697442081983502275745949064592320109480756401844498008214233031393061689394475323206178122655175659932822427766537165439260898722000409360120690177983668897602114055960496295684129548689945597692757029834121870800014012667641749255237466539125582552258614769819603860530424377851074667889598799104048112394622388166943330090102654045808647442617520856763865760804490756022286191810221179745249964088556238403139910052080642522535449691876959987583534879722313671548383161001932890065461285490059679980188354872634302382656164847559116969054828302981300634510549569392912042335887074646708911432604419080468142173965083666036760424614977477422849986505164797307081062299283509992124247213784321870652884280563708482096445589324629158447914403787158475371489463126718829219688281317374752436326929678346438958194805678565383745454967517533914317805598601418216389877347932135083567960906589125465015799216875962803576243272352838723625045305227868817762605190418210868370301108429866501503993779558413077519026698550124414945749609536369113803561162150036258757403417847332382067677637123674951621942545149228238636732357563141677838845258191650081746532572362804840665182955566060892212634457645006291199984824435030014534152339318034644855462802336126809573965965623729395809585404300864191256366382785494328829626207803749298626861923631012238173334351755114635178355334577725367252001992304515844343444712491158680499513798324396417521180411584293877113736194860298413685309392050098587038575896310778906464922611794698533513610981094502156218597170197533200309503799213327760409879548271639556775318188648466050204133617184462581185679370959542255517212382880211516553216268935971762095193851916565844366190682854160450000078116469562766852822145250945584051109714919345359738544180253890528070621806189168388775422560938928632571125857849606529711009856050437932571306292387355407514714340537887926364608078528381803998156726333381578823940690858094803986281479421357066768216496049193580328783149772669042031024154181733769223144217623621794747595628436534942250777741923755040568014970966326553775037246408413418411955448025899700056716716112467438331081358394414385272041491279648213259547053047504725210505245929519546704147446871851565958302702104586778836914033762507413693831668733708900344465039671401473037592913553119662923771085892306685629934843397466726597758304410308852825437230062936336962180469752089193707603051844836463087733733672839057759923838029005951053366937606264220121565135331576021903815025452633616244656632861060026705423560596299722779271799088238149294346380297130302289955065618016804646840724831012919706910567357128393351629269749228991970625890197953448908037216917806116772369189898391044459937417414587604945513133190588959791161639884324131574125180157627025307931165419470822378019595483921100391215403796620526402973097939757822767797271963275832378108853114067658509146598058817161935090012031126665606759252924000854783445100959199487438604221547431794225720746545591912469316885159652341102489879320054180962067822716484825805155700382332421131117390956541592549625488458006666829657310278541286668838629167750451462337282666905616620496947601507897502921213592184571919645452727998723304177673172149870087392841595895703774614191530767489553677376818419892379323936805252565289073906473380098661301205711147416162682212203398530034468850077650134452712149224788127415097897340363921965946439745500525297811644339857652058251516503695768549826397186843096376075661197437193094176954544910741733439922898671870890922859569295024999822661085806467731773694582452862064517216947364250123849262684933121792330138613106862086278814279997850046674612169570640673239743668673917980219003809279345715650089386687476870522523374440055483110356450485091185464774813467112093911843936573488780034056880805542780345476140290077455780152209947560930181716260464923563071004940860048491517862918513141274909675083994791618077254361012154408233497565458543770899615640877404826575390179387578130402257599399258162214681226814903281512387657750863202182769753294554052827107139057415398452292657807940151703733285733977308531493406999916542244194446661217364768762363508988740011625148971831792380704347819190831294147414900088105808274600545913278038057992978606021062669970483605698995224151906799773045069910538257789330080678771848361562759993150107473517260463434840490268150627648143204322650470126414179725667430123217151610393901174180995390255823120637181916129314581133267395633336632033867324347048435402677405485046396068465128644919157456066236610136022999772860108404945596485537802301257401955813055758835625346448661625694647332268444416324608310514473041731331440808595216275628793791217220349630070899124496765948517482554796451846667785540197886067891072971687248631106436744697677243899739521232383586551635712739097255696518287557775160021085387859375270667434380106429418987258222865040460299138920476615087568929593089375165399313206441905715550256199370429528829865888963449084036133330593096743350165484537503419424542427027084193745451299324474225176665223892283698713381987887067538245333960615969254582364010869732557889930296855781536814827781392454630522137249893633654621168471705382888274891113008664813731390638466508994751826405899011399384750157033482461872879010040400545336978521292837626372844440257088577677300453079029472172282905798116104599198859638846577356965621752386742535269433175353143560556114959890049103755747890953132576281722838491569667310809901654090986376698842545485217786708794750091216770084121612435281722514970583799095822106076191776864093861642446625818853991197781431119202153157351582280929687125262493229914306036062554147520918414739234665100211550432881495678086350959809758983909324705089445832447905781883677142931494590021210736820085933721922189020308824853357769853456603394589035952401413077471712806192323143824223596484121882865944467941293238985321595475094489629150811574758609438383537630689052620736462102211110506840650390443736710278695153843584728327286858043671111155707206977468354162783023392450061282163591346465610805983985624477894525098873999238819002002571139636972508659226253665587147562599760690188989812023755067906431767754139816035183694869626372723772486552749772919975569783060284730725912085104745260123784708446256684398606936451010092239178574234534799135159040353020621210645700370065583180157894602675777787754207067844208662531413449030565773864760003616608936659736553851198846038733305949741342587883557074421530828769220733710791907904735275933782347406575028525423832181208788115213951169062477535785904406187070694033894086724056558543033984720407833902455651327436098720586541084174182855266239541771031449821041098417221371704769228309589488362230636841933035562221561644003793917257225501297146276698360563683939639028785396614845542923004155008120318126077232789132608459975307353928983933206053384501436841132406957393362692148368493225770975017325680055214493793477875990298369888354421041004380584249078454213806318526843650353193139726717424516346224587644459674297691574904310903828774893913084405929450405210910735953275541849997516993026012654726820276502989237568058350537638705837057828906227520670882084366568742381351234789773265591239974751423835859524965236970996348840910467704890915105798153780280126683139829312403872569864552570482756490577590706906275246759091960490452179404718636410424462580095042445849355930300592934030577303865381966517535698942438773362733319720666122602542350706385833320538868511953262881562552331452021945917686652930266738247667709714169978655836233734200754820835057360545978671779659876010736818159223088268595189248537841535089756290135714345312683248583184710326969609182063569148430315892968871489824408866800647130501794159050470780400687544010270604885095294797557115245332494211406838722594748965543531912010156217712204409293691112272892387373936908969326738799091274635332725984672181469193934288536311839211000106812767142227260855672811267877239485770669009493874366973743852064744399666948106409268659881352407771380789856866697282606631546701837365593143684717187832218150353105810217440092134550132678562660589424269817358347774151904927321911064061939019698091022145528255457644061322404202471672505322109899758859498136136382049348282374922921015423890093877771582339815314869690980000418341855258338257974738833330325672297826799296637731258774345245105676036068768151727946523991612867670979738797546589745324614447289692390730645334968809033558168956732067972499909350182747615408401909297075481635322341646580663899324256736312484909801501204153989737319876794472780323663411770384756980284657280531701526769380418662107890753895648840898383562159404734889053668570579295691443489269651371812995974676187499216424508618457305847083060350427173402074893746547455431504978299014444093187943684220423142830751938845171697907842286971691036846313302122863460231930819944192635266267387753760863942788071080574782546828020955802073429261883987802127670935865633268315753618360814077873259803225657587839386405801267242283623483186471752680712381094704125017324267782214660601469436950974049442006149377065876864000918987452695647222857847762227831363415604816574795695757371054526238863610548286933313512766282721813863457623732475761326405485204506406184133006738924946047136966170033985616259396049430132482267813143980277063494103646154063691922297012342885261021775753045780704285507703093175247312410420752696026111895496424773811172512673242957243075724529031848625299569823354848933305532969948058884355264444245506008726730411766307084553212825796128209471033590739720328103775722814075364648788964387239457199552121475020929714825158208386266344734590751819311774535364923763019194538147127120791497611751283809162457017136654450851740246404349761061472143985375564218253975430157408858514437854826880403927442642304065230105425506486886352179595627745147522993220963474832615563551553858956705615423233520156618826697364009404061544489565931838635514717999966101917381911484155529049730403012605327542682122026244974198736610248102426382309319487315219046923347888191844330583665532074018224722755806262294598118047683212397029775768715902587650484923697373110180745842302317054188259714896255338502649207481647346795558600083410698089730045291513881290827050602859312039855357985536665380656398185039434350532321243206763381801856318373504227950235515595338371704251631164581503862024817029677787490780270798949191687148709105455610555861589440560176375893360880751661928104864017137708343990784950621301472855375742535517863253441551285822481105472089125867478594994059619032724612401047533083055262451366101853343127707874730753176633856305093769402895739272464947567318566119136737928602350795490528685731505544488246229814469280470178196150428571951198600628813661598232652142895776359530609564463010145681211895889971772097561830839617697956822853925525713070188924145593093560189101409307678685965507647458152183122333480723699024556662091145839703984372884878990760853359918959602959058389018918652987269813812013230678073396548921269153434980293956458838172104704082134817254290066913487843916692668267518180614776318553445741111788511254694482473143203455296868026743927193929125561829175733006190328003277075551200371258980532325921972263429771695363757724392691195238666735169992775118915350830190967048243166558241593096346755361579202288333371566144096605462273202828846457937387907962466651611198955945432364379757002900377592314621155529443901027161816984693535455957549756750978313425938531308913539963809859390906003827397110031623660628161845098247377340211602785441792521409820153105928317037081772520521554499624107040245231613212822926873576224419201389423142033099637870539937540277625118479729106159216632087535872042564587570490538762056775963773652597654903465421997110343916926834907246521228718565814652329036429182827072127719197065203518743733617510055255436350825059042929938706862368207853354053437270248563310517809638327780144559119926438442552644025761585018507279953168256726171559280296329221674216025833220276100390725348072166546213367411928372082751208210251485823186377605805281456328680897130351608834336544351125623639630366572838972025117690560600451335024420883316713287415651476563206126610569673888197117455309749395597540798493740171597158914874584837244485903569776362160564665393446309576435317330764425247472316995011366435241157060366128804096499264171507438846987479161931487087677947148707745131516760563167782188417297265469951274066494757463603539582400015766033714227819087433722263635076821529106979071994338737084834495069803383221303289171483156952753130379473607554461767041415884929162167204015081873648854329120179768330973778998892707869402476977137090128560911387991673568530318983161902487875402037537556046818811923933470749247320756650520851406355253543027649372250100815162322822860613845017178741866254054432449489562946716555418366696992050956109580041351172131230034030221878133296251338189954273169323652615942400982163871134118879239078093646970572487963802400676563211636212081765863003709894796289248420912370049878397373968845889694766525935442636965021183405426665687877489844254852936973470346765097400121217785377282075560136175765933708824291653650970199980823864098364895151989919269580454872281930923853996990453619945490194855760781100203797729874656699633354873672099632992283168771459429573003349589174158534665187111787481778613496759310978231489332276488422152724366052370826098306565969237070900290046161891986334901426864107268298999149435942884363634997055926874774415271266178073428032919006186977568324366180970812784106181448792429664904177721773710055341542777865507324022227972461805850735627616589688221497873631404426174889476489123585920741587791998501746496482697852201838320734998438379602888732867295252349953264867161400723219456704325447931813217247903435543924744119005511301650283200354460920533833882169295969026830075889195096468517262038532448467772269965023157537109153776910462154451669932924165483963606862445910986977828659791406427932228014810979041498034780154787090129933044694816214647011975951253796519434150481694618549263378726113002737933655039909211547470829287527579434172785863925984405775496410418749609618702181569448543334229671256710507313222300286262212524311874399709848527419957790115561476810188711584184744071759273597384439514231903992021252813003964132349478830074413725513098452450967913820517585283040997491837375761781784670210535263325309202270971757878896348772871753164174250853907363282394945015404717495258714690257296325936045476670746693929103989231552985740739402359188711020902083330707296708858346909543833086670668177350298028833580205503639966811266696773373282723069483673055852753058677773850352862810563998811741772117526853746053985874617069215903159882453635062903990932364238638062532706470208564393913960436421074634264409632596398050710980422951533146772640064529238038900058145163491329222858678600787986315082289813434893224875696263566334994409049662147842751718699473655427086418166567863577217905171521768087113429445531155348832217279711164218944019673635733507291465952932052481296657494346535790247953076361215157466749041550434306997230116030974625924881417891901666642479241664347804400021904935824261859536420126827074998376419343263844783628091636608779503111995067198792289048694793750804177679496740973910523447934835396361613822197571643647976777373037139065969649574549631627434994487625008516840779734214400602947874375165576160645455402779426302606607279658408104698432716807976226025904983402050093523079259254681795181269269058391330458810917126689715760882306335492576317934575444617230306552179357633592942255149488360746793899493522787268794942765556539422191857113439712121544532665901006987558689100518210555425764458517073818760219243198220361727025881445278569567988949549148930932021646721275324461299827017342591052131061391901381325915537389701300725487173946914686300815830676029186599459506580706230461458654089095707282141310175333233971844831882124250615716202222807687773138579450491621032926506627545255922692650832478570127379486407973630129665782360240686256805624530506334903645324971447444232785432896869616909239906991605938292222403815976667648137765634866518906943499341920602918635955606457622088983542876163500864592393402960115699694678616518945987624519130629570515530112905558697052100869329152738480556365144272450428018768364801483251944928260333295250890953182790837414728990804680191404577278842163226848074618360967713536908931460045697436637596989567182568860576595395124917472823152602762623759220238271198636670631049063759915035391110522938871022952359763357754466688451097727151239349337121577122336607553026410243898276104049951287486015069798077032663590293628166874823680867768916440228405272982419688910953980060002163986102118711791941338797170567589308161771871615732741541866546990102422375856756527517712843302236340913993860011200908673856223857380890439451977737773468065254844440105738388909426953180938653683128639647085208452142985812626452027244605942005204052762883060257786429150127009771436549488231140981605052168394475399477089736529791558309098189829425438541479414085803312649441174686627313797808991034921122014320749597316355732952591398597006245504252072037825125424524519863148823709372405040887757390471189082061628310741113057427293561024790510893596022090038877583041375647845776952102526550306183679071127289322410208952148097873245716536486713974033569160936771020817665746390286680481757046997023400138765348680680392619888985153250214364905226205919124695783944618584242049666687056240228675354647135469493191564424357174106926501826464949609029265603477606989436992527912355823558834122807226298831236851100978167822564211209431884059297355662879114106064343854305215724684846014003746165471952049410854413120273596325291569380385442729196529451134009642160214798552118073579718123608560544448467886117902504596211748728528636470321608890993283183568423311406725514009809075556505492154817409184467193570668754791400958958300090936306565742185259502536438405680002422956320978047298110887239935215711620513587384590036062777674345107768243224716763213632304880903312646917620450721918496825163943513350389217007797079824458437840305859949921968393977935464302002573002148853454301585661524699594128185804337000709769045131906645209767342821845089998496513517094145377771773703019481056972641868303302004251759407510446607835621046548984113366210699936912959482205233349624803514366557135657437190750929458713688693253145776626522750749775939285166097544327613748441343734890651817436104957620095726986326144974780270753858990073754181260420892557864727544464722799992981388735088231554297410630609738394061003110581668087878497141056630569208751204703254353027499278485589504469520857013255792317716987202744345415486940140889312807762737866393457044218063259144384150188140445381565287569273888157279282949310587792334328400874045714205120596535756062520480267853038926100770262559527063894586884064816257287501888595420396032730221232946037300643981052857058872633623626315891779868089057573353517876559415301082876193904953111590147796194957263938770845219619658110956991527173934629963172933928258141282064765318766883650737835785387835581259832900292958369682468845536346803414849278661907984134582046198794429501155766067284456496821222387894989915004310833242906200111714251765522355280831453434973423184705613736776637421682719017662665153327956546598169837988228517239245420716823763050649006602959334731263735746853664800861906839336676495988105973144357193806465731217620860635741746019050845142698181287081647459195491339094218213799490706654015452102435281209809082485698162350363592087798620090281899091218340785563346787830324186178168390529540979718675265807728673067726073248746359287215133592160198571651424942780092643214457708658744857861664072150767132388472967169511040629369880162429705828591136826357429702267616947764757461142696802696902686545244603014443634817549255089757869466571513182227831975710546274806957584712401910702079534072851294676311651633915533351995306957805145387696615864702263935996091700751141717579153026895082544216292892186605886665866462793640283873899890178182312759109478963282295885991389561469671617240982467463176639708088761510940766244717158834048269160959471967396343714639991708470374965468155663763999979000028961441625510050857314011891462818319570179224157805737218718425987955556495684817816936563435847796506661376625953791354559130982830173615480028683014405670788881407176938089597264327108936630595609340904447637324260735528201702743697798863380557054809164049034729495147208808890462438297067024512845072644107961771190839614970338832965139291749660924666285011626042044914315601158746847200993987702316338175533712838986748207715425274522344197635152559322587828038123250625976627526192415538979646706963755372524619357770998237676380611482524441487874901790051105871743239125234579216582993351799271273382480672427645893190110843705783188531840633042210172739002442596250867934313950998327260720085854891078568935797357304058283667201882759881529245778757269514036565836222069320509099849056323074534934829995386568945658103485933087891339236430028034252372669111592986085013958284135347348183502084875667524265384793610737473584636361713211590415712312039150288264098266857033831462653156409914790237579243051681130798522940115991584242851914499552497048071718753697331541007456583138982728249554409992329895518083863582374976265221519923859105739877194056183121991282888456275270674819078057414208436816718189145956904569789179817019037119244359345453810147965497453478520676765572155976271892651528881769267609660483828618256188742993370904038921304142638480862455592243874206860756695690784151564818167825392949840617782466661969009879516969243106942674919269290538259698063420635608247835374192419938841297984753488127018272119601576628267855436416253938631504477476652114073553519427034073779729185654646593416064948061905276688680738213661385687164381304662560732831978702829970803049449425914474519595788604500477916027990829886902985861343986826906868606968810909106133873969125963797495519481322313994130120409290455259675751778103523383570729168704403029399340894299176099005895187123680478584756941516109190367640043078148435221778506448274983561432625320631812061430099594058986519108586079293841035604470530884866138761061167884696104852132516721170106244219034253863663099342095352193089535365367076730311002948911699093256290545104598889603429555936797489328261348946219492178212129709925425972201884069163919103139184205950593379176901262224556452145651024144082466099260493141124744834333912179938664014682528226437825396682532801414675070731823975758654535738878236851639433911367133032757141284981814667346124150337952276105197838202671171325610436145888552119624130113447290230307144399055293927486339742789673764539925491194214037555856883483105870236668071234869647277909145738360103494063507377696628855468265226440827106104380740718990429190784367772246243252973235599099022569889806071312708737419050552918488123662452095292698640084462283354646715896494403426388042494241689899888577022547530685413338546964780000603576712502484608364719648270814224657108484627011592916971519655416536844166977980274033575822670788481854589041060262555871544588328733664966994412559022644857339702824951268333537632725490699995899825442060533251544317913127304111116713330424411867850846529638638942963513675577533559484104551882477349980607828337493604847811563853446702922236589573944178663869991499242633823697244381604515939258233276253079448561905112085599082153164019176732346777558340522974545153753023061623533039709194104252982882939836980754867754680057148305082128414721132637021564437251456478913860513401936798644269110170413203350191566508426991795942943671200700949628904143021538528163411613258520851611341140664253294676478939282416923732881021685989370273378653655680618775651964484607902819073976455684935018438874837595245532915337709248578577977492776561942906903933143764630677504796971845286797518992673823348217019274887663625576456197408919839751148174447339476136686125931554116077293605315872962541911090163582537682317350541956191523048338082761966931663712398211746711844758119278446440735117069492963878686127862934494097637410127785945406265986177663557147527922451861727387578995102786940551762995217989866747135524234551289259271237938057224865358392814844896764321767792632533497626259221399962186170152471574096425508768951319743962902173706126960417425204291096841981144559415777929072135247765287214919215407164526395899771890359123970272491126626299477746550774583051910764025447113608753358846075369850944344093253661349901994167792967846116325362023241521573157024788267944072895894348619250726227024501172779847945483450220688715543000725363320161654839706579196556686969857398549635593322338861992407974087429621001031231138251261104261278536279154551716460940396533912185934122421968296261392414012005661323861305333349434633349762602526817490664292010336773025538532836090533735473855602503879654577586232600718049985604612698328039557696014221674289651628377327994279178469472974786288949205846039782773067437431310408524765489640527555139391694701547364470888101836832179970882252161977597792834606575083211702817903189084232624101759026648324669722483137364948921942151772426817814932891950265270830679898538980981578975678163410701609173386071759203888380060084889709466277993917326459059521813614745073098509018656222918871733158974442148686369715371422090462894157156475974792842531003852001576369298433482656678146072762903548921877934221372813820768912153366437867442721164126986414285281614190774836495033214930664058853936170349773364565495270717629512665781921265419844971988091665132471370328750937167097942667400885716936338451167697955980283552524378572598485310529461186536540431016992250655137558274367533479874027164518010021858020705111790309894032029378031681232256184162839386991488684979091915167943396838245183066862748330419248517997262348834202033078284496356705453269214450176841511184212394321247042984632100526830441791977409387982503364504240303244810480365466663617008697000623886956833569956905196461912253641760576914910999701811976945543051070014793489516695980471532783961032585570153915705434648716323733936407118260390272734906349198173588003020541882437169963229314182117666367929492564755948337040906872195233725466101528680497143697797364390290400528693534036951181862846189216714692824187282541624153613881930370898067561845028407106725413196040164602912794998576620046239081248707667062657702422283960384297952472802804598651414451703129816508241998087264947647311112292538469526289901563116100380993214023214271632857614052316120409888542189213946139529152622135713459127283759767636608193833700909815830947310471573154967678419030585133794856684549689998746641329784397846449097978580907486863768103334097311679165071735668688090683614378398050067829897594098112938119562438288588831888384857204677030562370383341714128325912544754787228246897156262084746818806028985025494799286240088389782638158121443831468751452874587909406928000903893504795949960534140276447463602762699137015035753907569324765439210316813358632697853999579673029541385824500472327907140623427732576839131021944437063552989689872291199834840613341788530470649587232515131633617687588633780569227137233193177326405531542508305956996425772717892935977272547291871998126907316804416051099083850490909136196134616771255164945912640559834432160648655726302130662075511508300218305227550548217087388107800556338754123076014021999555034545158618122784333621422229726029517553850198500532967769483971538375567749717672938505517190988686403824247093714141692890310117597813279722445133258614907620529519440145288110762042076974877107346925770927477807301946301286619283834172499293567763482875207916117636145424656614272841479238828595671620791882931232637131594459641427714237683603689906613618310558074416645750525953161243357227482581462369772766848860578619527494851702393779844702692152681329065293455135987066876845750503989893770508837287458288635530997831298556783181691050010024851772228873431010047044859770927991064152024593061937355232727248237638665288856805847552474826506806536239159625345146059857102763374839915141625913886233704752492948188831379855300608413957392535257279713425610829498866473009140028735292930457921624702750841476831466284632473442249698656187357636376237091380053946535206381188526826258290080319565761565000017686644676458132475644289776259535615834321455491976119407316460382694829548951684926956477399736606430215787997125571300498863353427784687303063514539351028443324506642658456008114326546085730245489289810185745681218550342925829045948177782951474792067939025948191188723657696928129405813636047713379781150909935331092368382228190765899265359183152231518047278508751273822916352172754947776445592007985472707568237957414259884638386957308384316713033356454360240680926247661990168522788604932636330178735763096388543281377814914880096547801614590460554625460012656869059868315436357548487736239754332886450291736998946920048898743552334120750359744886196449906720280117617212005020516577574590056261973872766700927418282098418168373453294936184954679688712531607690808028026213931909651205286210922366193622707618150786145718030003231172285954395242846258547505823592333589396429534348443425572665849004479048279572437808884009739856618956509160699673080264216992071785708662457506118071371929827393339636065663079775809421091426713584558965999825704479066821211986451637195761230147274736784197958838465981508807561588147279294569478218560997912584427500807987448525027333701896155648776331062501759903201625031708974860702108123717211203106993510722350892434757562888603791909683142352068480931491116058508005453922693417122345462126602965550448995134677177332773280990426345359200290654179565674170203828233437056277294398967042256053531923352245296208143586112417738079341625735575834361495609647778244600945481390727020620470132223904441271777711381087981289193671152042464393708246248199665068527630495031216168572647793949636956277489468379907567930306037449563446128750256842761234850319051077259847975178100560509365177814801167961590368252505044933691001098094224123589515378493181734696759433306717109449337893918317780332065149117784449374086372258081045871373670987041821124877150018886960243418488969774768734956981306192029955290914903811567599734338927864202205560545016669298274242714859513323356638230112833091636667221144122095767960346711142636827220453583006484916976947148385140885226526498142004546867699136288028740708096165974427167722154616591622980991008763444267748780080277381485109185203755818686781629094434669487462532991981555467027119824623832263291921918500987154459265852785569709658771335646961395649819776411435191279834683860172269823927985121414846715046276140700966309785557796750972304044519287038201779496069779072700140107296281090199395750975712018109913224730275821999097722481312494638446833741691087826740102536206928697846654288785923182119489199917547273632370976811280962075360397860475322261376757832784225131846474670559307572655577566249893600896481786714615013299655973684536767121632794897802424332299402105645458563339287099587035635399388697574913210369502402757604047908941158198839337837259659974713983345782172976018680432687129181685407386346148683819241828237825203123542044288570180489051882880501464876151059592494735358498601853546018520134907556254456733440900967545490855355686282676596155189328135066361950290922608443408144713141464996534024315378047217057523811792509040075488216359713787653928549764247582635992014399731328910537728689974019795915253078187683891884714919341848045878261079812566100450980795439905758129729679869652855563392501740527395199888384471292147543311219465994546986091232066716140773781673936757972569678851711787347947563188044946698562279212413358527275254189952378128345496080110646670943852083813622829790646546662090705984260769780015869506843088920444842545069383644007665085319166532713669392453067726507696863199768578528032118390565661826601912072402153925305049267182399591637562758489829257995194701006675922797596981014942546088728868735289816107590563531769080206399993467686293803705927275154242115888537170633226021857717481267593845582180405583402325582901409169085974625698172767119561361048055935832755509082082074968321814825654590414851077936346674578742874057170830680250260500269125990839707339310606586791690474123679987407973507851506622658263425368563475755357065608408781875004271531353260327662491969658029918292648137762880333597377148184591503781022717287392077043154517328456195320962273903181007272901932256569988968444754079419792241402213408449245967518302710586449327563417766346063216466742740587007293443245785915319465749047325956815050309304953980970464291001659172311660442493475471849721858514901063235864518800420847010662972176078143320468990466762374875017634772741863966184008471278531215366869088402869137394053709832160278958140074494372470767537452523318628103212241977722907296029163427465988557668911519426654110343844806380989078524582979275657766755758135635051445296440203293776624803918630005858655239791600949924559684813835456597927354845704834101979793142199168093370520859474123513012691474521872078525362991397434327055470323110872046467808114994111581019746409104700674610943994682717230223935031809356290012981927736337777086579994822876482115694059332531726811591229410520424476345960871259998258468311359982756473848626707915121961292859707573715175432438215558457365697405402480564416356805906846193575656404621901083680755156979548605769506094605327795257530687177399820397803176848993819684901642469862847120981081650929957242137891531663259730808272522458679531223867846673483585274162669623769266529564984244704164628465776059468441476159275249415563330511589347520690048398686333950704200795549636441663623595011003586864718892041699397509747754193724182522046415205788192601706218331900994901442908871442584170143880666515250680940884700401661022581219658685589538997013273235548896919965040559544528362679704714880842024632835870925963862002384673172180978812214537183413227372950822743795706124878291392599979680589100957555749967120333444808071391127928193033437865909574710692768930034021053814233705469884639981394801672670903198650966790951078230675915059615830008646913287526773060439842968161034794522665603238962983029947872331941156183826920705258419397372582994037329334074919057924861876745173661482788003959195427011040609171641485204940326493802483166309401475006865598380654820292047298549665109150664987207549476945459575372215469357614005399048703544380784334584755807212937939309660885998215642626087113115093615819287450006510452186690956760112622937490199019756621167621620148685098044540524168195773607633604502033839071707718657664045933846080566833972248116648498827432794784657561523168197546958434954667858874285224406094072905052633401791716369061616146994045574980288952884865907268844111399427929130421723182345610668696796053452229041567724429297375385879261659327784806950057041297228749242459980088397561609138805223914533679722248962387104033377921700454360027164519165455416569815385593645217421830259493213179933511671000982756975182328831004682621187153668683189349239987191854433403190804611255287691745407812003171633418105988874004600987208788101576522138396707912838547825245334142304906627460989258499579180527734962114574229489254942005539960027008239117522924125808525875178178526783570549684415784355055334980296796518009166773872023566271551334962196439668099670188149424039733171891277466576771239471572892653280195065840261653253700584749880442234978517276153669885218907333147039664942801527399019366765888400450786960133210898250031551936001241446697738337027820078956465347884862414061487304911044464153956553376826907438652284498687011061813924121162921058373476596386922337502044303870853725546630736037312634918182430167205120083587416349213266079373140093797742611249164526110830312389216525283539430571527883347160120985208360362719433486412832140951635828171991352092249353377017005919266582937753323011708447556795359391115433383815912650697808358606944897404267664971856515801697144955871841132752872405348262290064136622073801951794903886232821416148172621672433075484371662192473776615709921163345237374396295516344570093911631630451825940696422600680036866413868627746348059107351021407411215353003250980767383213516899887198361780076951698407273923182305624208118047214213213423973952087203669662964962793047065997995836158626598802926152726045117038044812261933699145629231756351982052576216569782504682943872781872826600695935621959468839819466019911459396809581954823224448341431476897312527211260811988614067668364167641447156275473730800215668311636923471589815584890119720801235383416845856951996596100457077668510059474753116568772796280036336495233248831571624123958365736718198505388834256362817341151496248868758228690911520756656697410238498439432396305496788348952101137891023980349003202343763911145741684541685924639340892416112293322130464181586119228239811090741824724937588502386887059743893484832892155485148255351966669025069044124837801500851466111942280677878731413697145024676246479646202068389368579422941853823035925186038912575089031673171276496885060784379678938966241199308084330591243938300443599004983214345878350278921979759276206091623939683581583527457616323587152979125428523138138315726583259742987265268404062562420034496160790026839716192619407429556584638713639706475257754374649742751339207152455621004580268622572199222568013317260511824067613064421643507168062859252794363785035412960173836760997691492449586271803315428185883193113792019417814944472549771816711188228520733565139317937941017136161564029772137981515840957342459003034564361521276920935483436422475477421159120153180700100525998992044136281969792063161450065838845388954386767974151190811130269206669154672546221464318001527010260325267137375419173315547566373575777256783495719204348281673881473380501831517406151811011121615335673122489321476064531375089063825144253148811737833223446977266564244750384715168090240517031944106581913311178283518079963640460129042204036391636320040757405499746524333413172978229346042466887336892958062329442292442989965036656968163904373162079871950935135226340168942841867249155938341387463521907230531753140161220049991937049253893023742907226881091500869738387841083120334523807582552190473546213896121172417618624879266547436094758039166542702887120848472196493643423168142747458638255711864241105786895993768781470293494490011496177942733462048688600048353289477638059113640413151487604999606655749928901101455582351217310570332172833495409029641382043717234558901646729477268113789179947132045404501951557957182990466776483621863654354991846854462890885844116432229396814825305625087893759897330729502719388425392747214582457338129330027855681889138541666482463807998710902165029516118320301796320392908255052449896184147648372501250299824286480525722207953826758794376446320987334869172424136959031904257906467105503583023513568935051676824975386027822324180627880625795795427280633583701785192936347067349981401401648905007692865481122666137006429417806502563244682701184009143297171050525960063532393679270930763093425378158837130709120697723401595138087223111970869466037250698991245516317768585555599313188332620758827091546264196191822223220329495655860573417024296430986172555526372588264479632142006915594831303723782553151139222258615167576820635263221391654675400039637264990514471754108957662536713874289850426997354069693717177698414364270109578479191345914953620265704560679760400308793586296740115338544923373333393686048947581812935532467427880357251011944290838634419099577139059537944309641287525507410429957658600488817686047245459627880150648696757602299160673208047903398658990799612223702415778422503971980159331287933222497124431238895974716214883559502639082760394539384568100702708609508973066335931173863372462069153350704223084807230287978375076891991425123561337622262781887185822917794104459033045443548454888089474028210817824243849367238131784618158921686582829752333208520525531897053129515931731885001326549940796435849361833366896468326051102800988029820979720766545621131879405034291424068310734456365202748661469508182739215215645938223173638919104543503543392938821456947073482726919658824760824181344435394786560989901489911029733028003112932878863969416115345072643203561264584965881085130373994555428241970067046106628814781184135390154687891657843930065287388838686670392600710843602598390032654686451681046751693504338186429310044355808200561995865622623215566942269129870397202657092511833575166428429752507849441777411197125968840594113667294733117284471823089600110383661905683931070524839835842462647061309871541578802066825489249911425843509159804503529964948696020100247680299944598534109764478252186775809587566044764213847382153909171251103666238831658992240557615858859155912866179097203693352155961664912058675706706147467297261906944090797428700623423599494402023876501814313766516959163082822194754121662656028049971421497303694472521526189397684224919713883641648995637042120818893683037420287184038897363901846621588146140688270806099023374115069370435976276661394017588275655086830740818385611592685446726729283081601978183735772737141396632919520493100728413544573863675208004847063549092222462763998071119433572185826036340433803546016263994807864062108014668866026000227844224500068585782494560422036990482463978968957689074962335978549782079964281561992140974136739448296675955851821015502703576186803352663900111659973196605851010428155176544006004611677859293681690513479813407700794642300235896716329642911535639598104343298612596213443398857277948876045985609764693596556438788617726893485970053672276970015326691489290122215493349275520205751819276096115099053462288541338326912855546898615887276526989462577086263131196097180225334049837984639666187840450940532398459095218769116666664564851574692026529204803864466458969483352284040300354369277089257432612698039128202372134140958749054067805095232770437020716380614070908360236848609675855372706276789172935860109943137261783718937912386243014754499231960795283775800398904811547779535520286933509508661040391037168506633214620289193908569437080922185878420863174209305589503415911751117779969445900248579624721554759876125604928016688245868823018350091915591246674144536283223107248454107108799543588009825222911312655969148157974382888321289830683143559533653903934310227716264756635246289359249761327190160176020772202231134136767819597207763640132140403589809112281891937490011406561823931587316239225352649982454718846475959878705310544792343271241533054548728631286926401073303222189237582352468830307547184497275069790811590892108758257695870614434449145267038094107652581236431194566261903078844498592806141933783433307623217907319770327788730255927702484071617177212474858180664621062410002150304795290222616384979552321028374562205793803040681808289093300148904952893790414282816661872599521365780442276288045548847988690512976840710694014473894464745550143823117425427144960722781329680355582844970987539485486478024132720079598405035728902730929432202520540228099051898747938960928515368707181135088056627304421114025881502453884021599601864088022966395667956370144157643074548393924495379833396566607991565025424470284049039682169780151521692687624531421159522488275995296518747946045429635901290612142158250395511684862699486062776993816876942023950554560441422729191746320558792134112889417372196127484107074650296783353610721659903557193835168228858144106233734671837480252241852761167390785195485930186772071807993727334097177526392471453025876621759392325784498811111981293474820275393582853565687418820618543880693082030414622514802993137268567257255397552015001503258954735489873204064792900545421863990102837036278761490075872561695463216694444916370409241976600792419299575184033701518517794606355597249680680834574028113179586005822396609470001220753394659805423304311013350304321183796157442462290282941088047407231049885204700943871054321319290199072199983874089238914219377319456491038640614323775412309390040910521014745432459062024543459179398498343369145145771400045782040366504724875967460243417486341189245406632440567868161188754644883831521986965167684174761134876429647687180892851746251095091484441366694908143321551548373762760699543177435752473659652295897477594466495867422623314535342100537616445031908476140536598119726804179597284255648832597341760337975249854229859889437695926654669721291450157116154033123578849215201916112675168872330503149067242856479016923160150942425574256137153929938325016154566505223806041071440037116802198498293982742689036961237428965850902129268573599284527451175949236446667860695467365365157382005813739585719692321348300803610476647287187784222729456587775671738314930653194839984359417150093818227254387778964679260484275595655428052537933137085761377129903424310149209235671914129551107182165405345121952634274969611410552065075625631173432250962819041253238574088858352214343039668970866497224799521058531165287459902584754247517452336222081888076196820384061351643860998323105686219925284603095282063917432338978623289434547596381503673732707112685499341359710661166538671126106608770786076899691270366601914724115076662656076330063565385953988492234659749548336700898783327459237730582183141482207868035398704811259328664815187449265770272417505202935733207656929005255357118096051975605307800899808282731092002961897358665021155694774940852528685293474071488718494690062040599527613249224710734183151664946026326176156727756823894670341239244744881172044332990842717278835388299118939317975722785678718854065229534864571657848945847152479746253583480242091989193793019144879103243509634258287628311363133661138617743872984338896913349703721269313989711615070149008949211475561101098938254520526040204790679987870547241538371535388789604444984782318833256842669574330646911864262977808637291722782981172432704712283931287619078734764052481459175653188776518286356477066068376365183135660570702160589597759957875706990911415728812740798464222925081939163215558648696397454774725193858604602336299791355154303102331295795312966479399650706972720618587228567530944004190264387487871467348085647151291309604562521554267083394394915290482424260005935746399890108958309889272866492996744311209539381515647679560152912843998881749971628104887749438417320354544128660279719721702106734374136301423025702119248990282559474456791469589195794422631594094554866606803308947820183980764188508988750113904076628178753422943380233062140118596988085591188879489369255851312889963713861024587757058236318727013739254315237674741099677374209345946883786795090106475728825238092235706635844400966628666787394215080472487574148655879067073660974093357593879129725036662514924627189253191688970565971501072073618931659636454135293308032077561314204476626021850753702162953802387840670505613468165503783656108719700835846838000805299573870690568310895257675139686847004312082579419354735035575709665135847669180194809023095138971628336553134191908922825520198564102389569775626261297448585691563077498052295858567821072895773979172146713938410476989640760643085734419034747865678817554459288241181632373334396424918017264719201602708668774859058340231783646208057231922081297230130508814364844792932994565364437049897307382657719194553662403642176939881236950794819173177366926020606925445977888592707087373421260444689759884309913132807255864644492072841833885156787151406355796401816352220862308347427255856024686111150826697442478778817795995770352969463957686683273353999611528129437118095449043313110821948712842610034195168351910840960929785805503517492990511180228255582969147007403129922346004234400317840183220299397710354978924759208062327344696966750909359009751005174656355216269305464681551047807014327522052062587152248530824688272351074474286639934535279132627522548109198877088248623978189511890062927602929293559294061197990236325004663426920682591892756349963289593644975886155123482688501176123047922957305167321268670005394245872241925497001860515983718126456691897727101553373789573063132968944008024827118961420491270685181767555789148975670586533231049045536008134183351350470084439493098051334301891464513668593788957875101617201511954306364941595192012329892814471228609408616596759409109412835252410789322866616898961338644182696989634372611002538345699719234677136892602636326382781723999344479818426451756761300656841719289608641934161117365366483502532829725308975832416912860692321863548859141834036607538484873632522204450459301021570785901823732141145578535131524220371445818870194480712097579121557718093518226561921084709562416851329159195444392136800222672073856927800890112904088260666310252393686083310022023125714548693401941642823803888336936039436321931152208849422303727460386696019731023181073217306037787873120685024657663304591979204082730908070932378512282433460114930626864773109809994038470361800785976024809745648174226765275914510837383535059988047678854017651399417894062654738495500064562391778106932481419658308124731829875159167264681507361038631300703668046785197546315582241295195559263497880137468352169575136556716664759767774642655207769631266336465370424199021116838224262843812432686612472113823221119769687930179086706885148829764287575341884959629029531150285438254504784629144136183627285780561361237367377522168499477806281731681110782407999834205906694360326456037497551478133042820177264646929704517073982020538662169353224162349939483027885736597134902820240441319443334857587276418863548704703691161455772706696833637557306049444913537185763427922184929637204937455430539961114338373677465753393566433855441446630239846210314917548267613934626870557335865231645341157092919251092325656735512198856788789059737396295389401033141576587103918842763189825754879402386430495070411446249381692806756314415031474553327592258968366272320741990275041443092774105412936685232184787004497658209849444767138294580480616175049592144308684751755569841057851829028204985089067685582216353040456984410769488613610677136776549015188563231348688527016483432271709118864809643380740139196403836769206909516344264278951592214217531415635548818294357112366179593839930378776355308933498050158351811497671518164124355826728027164962402026306855756364650289252063572386660831817547225367400798312520960458021734538954006819864387635107353597960506654909657683185148556964238864620433301906373842554993354176102663605549473640728205156761074926805030203743437519649665131094755278487051247538816241999216595407774261645784876346637706442895279900773725818184052695775830475830894103448465669121394124505678643409419036207495370581327274154691910575387862524702332320634362159928532962210941680578833915520694570442129605920517730874109028640015051597125354182364884135590838297267183446298145166572231178138653899849134316534260253726492339425880934706831826726442595376749092361289172511784532165959382445303924910916467015105521227827544009701466631694722709383253999315364635230824705592811507781517684804796862761576303875069318239322649309446390190060228025670881566747603132158959274174222157144957710001081645842220502582209659878927785877661422280893069798580882274408566312309316801222760660720605068299700107639022271055840665376948238043604871132141658911652721565823183827326027841245456951353581773851518897012197605637610706865937073266787310979287872494470170018667462776410981956344245592725892624154126334238693881771754439136651195313854161963034494128238859411890676854856161523202335342172599724933032358939597747715149702743303290616171118264404725505011021665635127913719201510404816878778263699298502553404723273093901494328644801420116416484242061002044746751562052433655600998878651969748183321677440080564364931379071438963985497123361423681872319382992851517058044178826957835187186696261905548947571023389784275505193598994972198923814396365928018260284923822447579598416341874550913925416363576338045834170106782760126325038597873695402947654990980269105996736686961178471949279303580517525238631359853407960464069556359509130486320010352418392170225606206949252952194776020030439411424291344010704025739396080562062872750995439919034513841446998124726559491202363204642565345047429978732922024349254773863957636457983363760549448504560273388910100466580274734218499028570644453632105421320800745648220707872677131562718097549325654903100802551203596278749718953379225705426287309426644892235617838584033616455910464631892312239549576551383507546386850256885885262425949444512097428541528224380638291341350452734989993540128894734691648297402240211640495267841639130415088941899558098565260166010777711340610119293931459410609957740953248414756792297675956758289389531427988721782534642694828293678314139531549354835168380838251094414818669265615903141305267551861807549820120716418034661946861349225976722424116963513571566987535880458681464773811857424345594196155822495366800879411531873435933105780642773402865482013304450968948455253991251050473238453668348713936813463135913224289757258836225698720932435660787268424292406274951870820940726154375854531986180851730340437843975529174304855937289352165044245388468882612991286191506638839698318995481618695306997310155808622907937585854670433975832680089065258482962777990942254528316107913356247555153138691467450077855951642201477542941349678491823510912384129870807933391506316148960127503633143164854987822719564250956184140513513544138520447685928528574419395619514844596290664760985038756502455373194402651291882432232849111993017133402076414516015165978011067338275107652671599567662718463836177560755393220286071147293386667768366266451038709644247379927691640035583992281613266963888424203168201962558398817802018421135320468624809448807348689897077893332298730783205000353095315023236823477977036380357429088738365313039131818572954816410705164291331064221543297815236523500831948468966743640570448158806511915717055533664841971719917045626904463714389884509656624722309210506223753121264084980281516258947022181311743795726033933966142765023016803131126502914511058321342239568855737915510613835067382655317025131575262008262017456779871062298080965135282745284016267978695018530750136474688593124102567964652928687347811331492242114480493410960664389633363105149221018953339362824578388794286842403845274062723397395393288815766196398717407234253395928050947607972054154497597389452503035791163598502579302080483849293670485080123194847982712455258344415506209721953674782254415817296942512868156931495272122035197314878690476241471354945843368231033619559162661103877266530029696531798212913503626959006449247992269726960496183394984014095361786371694220573265026504808928095899583334470096171177981416246370782224232646117064514584565877454682260121378381538123203358238732867441331975592136077628194833955350483313792554755788011464110641021074611529660209359174377796145290380357615890386282745263132097080641986530661619354518747772677285893092928531944410728913841101626160723372473878592736923370494664018259025098011723005658148849417673433907117731552523303572591547503796246431870311693445584803314670278097666085063815789447294635227384312427205183301762190191730165092350640722425042755073747374864815116778981419123259584597962664503042736744832799472835177585522036110186732086357587303623736741718408035884489764382225768396251863855765826687984434400175207015041795659584440995458649427436271513746542250721746046815396212018800471246993529172395742994667675624210863573383588320795080637744225465277456806192489311755101431235291837827144729273266269122910897791670622107963713364805935986919371835046855350922943872153595799138986127137456662448707584596271294334794573260160461640364896716089784693262639076932788299051281755817605827971749009802208790415754499302735540544359183416665950021905168421373162831186960008896354001083784118102140682912445051288460090672502482297214741592800367968520817945983495036920524349130443330752697889370696882840230513765331414769601058230726979998696066696586608071889237434476408746725132103209227001836767298449566748108822795365834895219426641261007513051590400610652633863236062931370487589178580264069169488356439705750232952019232193812654257196679826551094418121595898454483465273899540767759784080841112132474624032239610238636139437091358545252779035126096477889951620278834456383570732581246397198298374391473867804387947867709502233463744075749268037976994113769842688994692867240341269046857865502365258783251618170584218770891089216240524268615695769585970098047202940051569334008610275902911226203242583557997856354689838904851029232255342650737489344015379959032979602380666567784892641105940794598592853446697549680688835708108634970824155186435924877476556636441384877399816332033378523192369100507945873126911552350745877481743501514983674092151902048261729748425925156812314454555145884133590954094481420971625754313672756678660760954112294577371974076279218931466936922424730055849106489072548842335353293197386512611892912902448362917241632375802965921148553768501751482576489396656557571776154076168337769997668318444645352378256500252537259840485154517326093519700000032364816161009120310192750860349888914963010697796913992148823914298386025991127543459578380624009477449458505921027961961176762775472913127035030735731945482259642310840848276704734386007234506344638267758931248002889395907245099137657174015711764965069023116675425414372174594703958563387019636733719730054964228846615013959584101606193884240153629156060547266729793273295521427487246443970011327138512903271099750505585191123630863426715066279676038943066092420219937498263755004096904211453684436334411932297576668640256643100231828435462686582946285749005043079087413359003647537535300518074813150536127925660507971555276812813773868439159762916751315150182675249859421538974509815753263806319877471165385533112665688012876718197868414718349144304005776524902707206434280529206189770557201877256604731122477194653557064178248398733719270676937016051004612609485422336387316610602133088838619812418862816193680793276963328269170713392230866385881151950053247115992135211345612431987849810972098998360903704543207710781823532004326264344559063617292069997606355408111335454436271110432298014093791719926316509782883518574630194347895947124856168969042767060240998699378824149446331240883708985489162702936502415814376828096964913257751395677558945617895183884916460024093766713688677567617083186982606864357077053382938911314567874238999286632331089816305304635512690792093493650051922813183123768093885691215802908982517210650742335255028722662156650414969947129072640527980699984313753073873204901051369868890846283850108832845216310305339097852952400777185815576765617923719296228038513889471732382181613496098029042702093472101249856485130111994772302899490839255580887229297117640187260279882988489805759557255941088166708216237714750834409834163229988705535868070428893906297130874730815946595276388852309931735221697409877744181483978144069074855621638462270614648620100490131280704235142298587676166994348440866296001700621120311023308510657255452923713717783170929856808829589278583183565200469554005156113050029879483748215249592051365410639670320636778683668016444914658368231370008785842594616533977843389922594747770693770239175003766456406687176723203406516020646424138734549287660443443262279001331429141573335724397981607005853340528146643362408125485896447923394127790220248449246817625476681736348704892566013982760869469663165714667899845259530069844390233713754534712446840387801355039931326147124591130714156803064401990107556454511787217774742848912018060855315665984184688196562239527995871678388167522850279819822124609359275342764052402359042591090851341277857679724882832508447199237415561236471573191985526993766259317111590459942942337476824828822586034077614223019943253911498667255781276340030677887778929209756881098289797345146650012789309117249609537693739765399322943548826084383235871726219802605367920763958773731405070140517449975589060171171627395860284923912002793904351039294263307866847339906138210681895422251981124987221291865893490913124540038427151734823167054525197985750239850175896071863970029522945876192399637268558417204671283107575138070943185039693971678424925270552061246247431079995487223948159769366151767583299388985875581165987836852468575480651268849013264631412008385701577897656890327920345731660228825713638086168788637561056330685000239167217483825920326604823657481106463813395183517261665432112431692780496662806736224558249070699987454856162018733534494151425798062919926923250566957567828010947105209768598525479303531385856206792010158539819307809448761541955039225549331503993433591069613637733549545204278891190976654039266074540941575848621651603187824484827313006913123974907303781940698332701646700301889237139700982330215706472752448136194798271742855292984927056036327923118439358860163479285978858735997327653137148399307164537267521037436663658548209769110446110858801690594484491090363107721534170027838187124379157844951723589240920554301003379563959737662099974952139428610542959133180831615722332499464200739796930943750955686374110074985518684197789201800223991204742911217747702706546864575265225971104514039928131167732441008928551894494976604097745631998103814409034369531125198787021885765429220117527250673898623000368794901033874334231392540895221923922357050963725108900716983272632451477590875600451907083869084350179698575046916946992402590839809733861391234511882147098116504984428460592745661858901216410987243205207479998619970957465747529821633636976604903210113504730846127525256284332701507444106808166936280265794167892133386037485803651042254440011062303120160742176092894096753114614768502355302912155485921918362806503086713673799846465417825719659873102438192285298727052912371228686466450709270826791339755865864120434064229078605242937848296877082400089381393296173182253979732493812727285530609550577013631101850713654731053546748070680988716006023288126208313124632928263461373717331807942138613306934932426980353706917002544862761610843566191640341278983140118223376718609489764504546090533663944535904051658125814240373318699118864242872518339524421919421118809163733429999215613085394499063183067154282928487839826882452702268071240676694449338922863712012840575795366085118630836550834440852798310835775079259922777798233801695437930232811893189475504561280940487561741864194504786017108719068902401600715133661293098660598881352820218961066214656252091417283934038970572379548538463689161634809543970781278817847772711036574738822580382085488383950331068898902007721850461662859058479114404239173949378481733643393830750987527427559794403994603316269849966613388480236268878314379980068589465489470379053571471491458369449990942445035577431284061915697475849648314916134497443174145367552280127968590336157920662622271488971907420303784941433712838816678128311943259893334235210799720400181639051868021464917520519657272010525062898998644500666220389745812311825790982371791995790078863059360591449668733215808028614707945852627660765927941815213607404854910981850225439055808761620819459329889227195774355331778922274113275886609408739467428485318719609754099430962868525713067510370408671622249745112413979059174319803194399582122582348252934933744208614552866834858449508998795687505408597337970245962146081780223521081376949947226800938379805589141474083821076397234130440340910411631389290778118091192270142769289170542563533105509431323773241252488553854112631271738514285505246031305970443045846477310017320580612981298597791150875874902313250796236091361042598632659109913995435101166459785693731074847654224214166365759344023630568677564550357173472900138544235078323016915195328454942278244356268094403210575807230891658588045219925691904901012938451122225570161291832928042354702322681267854885959394664177676483169220038574168342600085458435027713638767759223535685843410194210388197310873305536846855444963511901196762492796500698822542950199385286116924157746965522172943265752320149983384685045964104286141233737975019776395246190734967996923884716070527884300946166317977503473558407408208100211412775337600076587487358261513756991116177087943803227854501642386677770486133529431508677874941942532594205719700345992898433378064104981720914837145255322642480320756769234085817076686704430292362304702461512733836666717967143796698370266370398395049124703513560195270976371077651697060934721009899052468623617671867312896937286403818572001189315046840631186439766127221336241817657345855190237899346219838840431026755157366786141388330412266379537154821626309748289878116766655302147661450586648336911878623915181219800905076051653560490682482527213641291966825661185825230669266097962261625942986855140176032468420410075933458943063936652355371103281992113987756015473779066415915255830525868205361620662524681342551417387162130782867538930521659629178771422126283378629885160748970179486365976174353786159143127131139186892552269617242092393132960019597594344423557226504411674757739643244656468907698742249322481153537211699913673412225545123162387151807012344599124594281292196578646982879332217742286772707435733488107447028983532026923666182749090110888649449501261843472227154517291830143858195574998675943331456388974384193617146807960941757619682438505353791132808675947526408217033058057658071200491691663170929811814743653191602485345955839425287945818175224172806490239375812211365116716050581934668630389589083680745389168478932168371013935745521414301820155060017108623992451942609418482187370123014584855674356413028908841482008685937060552501694002519628924871355246848562345054488246761828778171146207393703384698981377195560476219548987216245545990659761401570557095064494420622148004696593477086104691369328289357665677691571440165923137645461950393360608105974242450301406113401505981262392635849970435069804949094275337630551410651874368164336713996812986113576559848555869739763764674567018735001865888633870433235096685245564045463109364196844159449691797159382599068197708344499054833576881468247927983571767082352216581216003475739812776268513192941046851207522245110195808462243856261638931500124127134951598296042282563569420495005435448520371091746044995391937181008004535217975430359642459776638712396261657796505400353082119533651936452474185122891214824599746982434075854799695042405896852186886438943820937015367741545075791294940838099775052428279832711909019509883435227537329975786185909606934188402695303714973093718644469965715675743688570048839834151586699328885742432904151935465302376816714573083601907987923239407475556457195625472766957676445207284281738249807731788845920178280805424439832703311265301676697311187436870994935247258689202222806840361154204198355788376848831859141805493729429656391785426607807227861965758206888104133235056129973909409701237475039127846977563661553992899126444195835164438578358506930327938311243164963319038079632819409573699355237949281128840870121068624686427880731634913015534320071106869602071110165388618489698026318243419418632376839929986771830414444711821171035148291835713852215109412296457312980956312276498826986023870763881042264627650533149678549374146093589036196524468980193688828615785214708621980370622015491470096816571164287666378004623351251845456867249010632199859057218140541215829976028106632301159669265905115462815858279732675878959761363973145392372403050608311743265556591156041780222245841475968532254856452025132358841819910841021618262603385966356521724119867725146184351660491619436938630171943195931544382449518433096444045044124580690830049569264939910929195083634951191001519252151402477945414753747495262303673499919496960237634304017473472390930609601339988978496830439223530068070986591031287895842818953943407799889701788851049472627175412555492420714668166643616603255356710719482152875567327615869417153786219387688949702174666148758771329233091627760486628687427059614620471477059927513280860289578248540602270353729385792057483056154685505620495812641938597339533509652409978480537367152371629187186926307393817799092555950119473940134954398068494146981382330702863461417612895088494370127534718492456237496549321377952386854587139719542703376187979616030167622410130532852779992102618076956550154767256067531309059442308186243383832887708766294588137558166261872833758661650605044589835289887654622159530091570964475814363332408301795667052157046410260297089150058600790410366585526189519726312666851842210079918895881504841614467475004806768042573804692520794928254115187488314236191631887548985214491235778146336709306028150533683465648256611155610511684103661328413520883840523559853432160033439375710726772957771718513906576382851660762537864094409838750657448363056082338695186384465799694004583340865449042523327861686305872762270608057891687370232363268990984856004244215466978874845726943642342707524969424093723494065701966206368360840210924673211649432198938802026634082802954589634220146682704666291579655470033724773909162066904342137725958913994837509995752022879525754344609745433952183199226417906399128852234325823935221064344625233402557055967693717208630174219219227408756900926313251413572555076674683804540486475616533158486075971186901744018042919526273082949690635782635425635207664097677538911241288547883759284659967875591497347956434267367359907339027385179779754393013005334370167140278868286531341564573371322101175727713335908684950353037312158603586277341748961135921008444198730646054530883181332566899804669337846596978044679701689135573771430888539829279251424603048831340244711274819911017378481459895530613585192977805861883196678497175014154926507371580969760161596785821420426525684117994177311610867282022394760662202707000174111449211114126251495595193088008523156420772735116858173844074355463940593683030147720651294314989316487781648853590098403451785390804461005031480548299569940869468002343951533469562216213835638469217727288168991095911951426645391516069917572877644134882431719169303051742311499146723922711114130721845439766446611876615721503599230457175528644896986168157606010446644564439497621509265240754326584403682355690213192676838995076250915960657851243608329471576317643719601590665393706701526810632105622219071776896585728933932080293410738884979055378683101919061516565556547474970331176222731749980056174862173002296933368017874708759646918585767450339812167749800290317614808631990711829737473212618021617317581907465998045766639350124499668265888244449950998114199625706732202263266297814272501198576645579500391484518291481709599562099588566934571240605633101749961179224410422856299319945724486203195778612865167749868454843774542045810870491868187770440682601206391727792337595000935802495797940285013828590781956692895298691230269283498039489662606412634624663409389402116856102457677982420121629564544763460803952774386623751024819526181464108879182502328538727834452399297056629485277427323536808654620748172510102127942343325202160955950022830343548544549149788868502447955016462838132688814852789818984061649374378624997711547611331305623723953731415188234367706509490102352477796053659094036084403069383831610139719936842421386937909704372735148195580484271279447489157253739873846737463708518340863352446959934748190713962157884919870002818733244085172955905186313623253818573357187293256408193121197720690198017864174610509292465548753450688597024375992820297919450118864660666344070920354385476069885278105093290745248255479795035034893882538394239593413704542391734906592718395869724741544480499843472800027546723688356479820882861668926315058598054868622648308624417434143001748427525159506683337689628993548006995467368314550368977236619698268470839452889976072694415155807613291226873336043726048156423174932723414216341961633885532054833467464712280650902622796398297771972747796314717521702069122829128658980924777478910264332632551892285539519859611002392726443657117598219929310227121504213696680567558868504298490233198723246122002855813049089511522235060560097551601092304670277828297369020169587126776002936438114532169485910436880037840203741567474826556546896606831410175070961308525124007742934504343592683878638865646529090673574139163575987039499149314994935834106432403991765042394811170329231788188456357192691398532386057758962186853688445859794427806205084379918627091778003509857660919298915624130775639783680707873362974767133727832573609774012249203095503352576655720331652955126246275644446214248317372607083830106512330795670196810840450839168687469069195658402916005467628844503123967480012634794275453213345779516194512800559381799434953539017791576745974824650100658652142042886658917902503039472090453854362117944466962632445121492885045632351857266098914355957792115036034161268256249570157115013696706900262763940239456790128206876273994215422235121879422291516739552053046212708371942129804446783622415342739156595797697692091685383868114505497301068310016899532158569844365973575066710698931081165693104825783131174211309822300818285043563631581214921067754189914715083757282695866456566711011985695665756357792262928115951616780776804881007227084491665125339418259100995367540217514782480834686966289100888911987497051136689748637781971560420587453170743621700802875327364284428188152574714904553954171933486287677472980639189310551906951372851996455319280795357566785309257269589150441507179317883419840732523157082243995317837435772246124972901908363548035943820315445148560727396399781946731698438036722288765235826625500413855669256884243847833118291418029438759503509967491345495787189474454175567462405628409260071721809135870447472671506754110420421872754144413437676536106994846450381370077109894615544283706113397750043353980569730557151069571911196831165448390934169137010681026757139989228776310462052455945387597588234477768820037204801891864167242017844896822003149775006876039333940535050536945345206189614691417386250794744324056054706656232353892851795355781031943860483618673318030871604442825768448196950044097135406949977541544386151107437924350397586959749677992999680728166860135973619038330608767166610112019616899245563582726668017850899165826921703957816097174340415767702029842389500090434433959505804049611609141133303107694357499490567577380527479710652762296943929022564874527218766801167197869421170934229370453222866147059601601536637578533291511840109784410137501801792926824476102718654692455755254550261955519930571234259022282435321609265703633509710548845836450682974000000070961887853689749076314417023311187047926524645187710175046634501774327915355787602874427048713021602925636135213563795411868392077985796866236589400608102994929089135142278726629226826926656622710986178668763429793630264942706291249419072278370268181248577813324969077269970171131249200058091042654377219731136434053904613623439227241951567644891506416736760719607562608461205014666049634685327624875638009008034767311167371445615405728996553848366549347062368943497451205169543411656101855682998619689822943885674995947334891103320057519412676874915605641530661112099090597471690739339841089676931723950140055210615534757104789659914090834465797124254345797760487226403033715952277850477325305786048662688689708600799247073623012565208423982841610876410956958346736400114426764762563743492161393625984779051245027672391826104115829062055460078326203465954041654995577720371530559417144574698746885826658405998839673295224626703195693355344396607784149353467966902302574237867250426034147447598852252361053641827223219046080285892969039646748877358856664818224206225722306800472946259918463830038297603055198287298185036023007139376719543212456824010943545777785820921211527429707401768913741539726416767576619091656484369417086986658109006847477316270841974751892886672836507269002488006400582601880868089793327495545370291862765833011727791175899390185276335230538544345282837450823029427284809551638717565058341516423826288819906393235313816762543405578625948685130066896318103347125995066683978375332079656179563689658094945941431057158767892236096479457373274360078404470764414265221245967348611311771043763162271054443847032215846673357138277397223622026771578819017051134991899589928220834213362565917411485324479445375171681726473052236804435297823388652064747704842816146039618617173382944153839707944318834646670114771876241635970931835276016349211341072272684602557365394955404260748602834999822301132957887628883905597997632249040404372565966160670703704603355877377947595270246400807840760327561893454994919956987996434830592673798308896989621379199961582421868478962466164552390651720403417947258200151574290303792258246494006186480243553452764196708526245897028625644693346353557687893961669961735347039853807417278144597903714157052180812535728665506177603206796474032912099679077076662419195779854560374419946942792125619245907902980475088817486193320973768624265138804809606019629848212848081858642734362684267796562320835661078711689566239453182960942935671696279665449444865376707395546531366826099857562809633958192823264785144347063782663852045206276597300503487094340662186472185157794089299690157156636055088183741187714638475239283204202253821107719157252916518062509815361079074138216504247614901137699945258765061731464397369644255388182578812504743401422178882749693409475258248833719742331783369966744743614178932844599742297112322622794123880609022320207367471175752657838168313239706164654962968699052527842177532526909486830866529947481629320595822707818314940834153118401029115164575966451913818491691608979005535027607977096225577308172811753860489139679416350899990997448831062149514575954493529959504740685694614360554191613354999901928187097327577020646456172700363400996247047778556671797311050488590939521645004565537071323757455541886337821819975789746445287864334431097013199441549800813332299765411117851484578045242354525023803044157058808114440231220623422750821387808713253956651771447452353425028492930985687908722605337582416749565571843580523236254742399923030298009824672029779416769284722694754842324627172172902725488408347744090732219069225157316926377004854559842126074030341625012747067708592805399327184094463225240786751616899547066656897916486724268904551081021186277122250604327254098959650381861814355991954191101425426206574783910219977498796378072615042236051597135948997330405773041585768316587941554564152205026531330056725099611119399788635804183318255458596784002916190425956546138884634806835602504658155485024531402814696403151599672415992919428142869119331190559176076358829950938223086414342344931637106182551558610730237439631253328598235467233837933690397918846777229949869110558267482496635526242981987221550377420181350919222336265649157147882809400302797615327658119135590016975687941218227066817437943886559570141125586882980721054257130776361920831013485344750357240225511061200732432766755658687717441690902927436715379579296060388954797048391219132078089660377841149292370557961766978318046586746183931982930468807549423439384094719538390595793888448535418034818295963398168368313312895838173636706370105020757756945167277728928913057540305004978772364795400766819390992713169143872167611652944198632764087632122993481860518880033908897668269444822668280268550036672260504696456477387991122173238918873213451138144450025305388855624137938590719546174169206237589787393929576402854331439938762202816016721899912563031797712277134390111920696548555135507935843747736249971799751836994680330896800185614021502959568410409344030528879868072940622151711825754623130902034542989241125595429509326549757100260767477199213052980055402843361251793493134856061946533426557294611015691576191778320982745318160413934664920875183207744291297607769870431951823676914513107747191468256621947312055452469016027751196913656114484810803598495174700356813660983089840481600834533583191807078366830280478910907779740889234866434897544095831843805708045232034288166420436302007594403679262082001397035282602527389605244184993371986235258806875326128723256573868620821879763121817250314077202201278830499743364579175857254504684193109890817921592656086479685012240781183367613575789677294730532207477958722075408164785758712250580785543182878638477808000720185324998085427981665195547310950806390449523432688300902612805060261568461829270188429743724093856064372766131214793886848972505832969006462136550057904521415470830693888864793411436191448214419392501407998442493070457527992778123877134954635018489474096367177665147560128835634877308361907283529695578659638129789185737132132948982783077903897087977766298914284803069972812107079670122266512302555467192239033034806391815840130233952043977191631713893522357790230652659154313348749809012469119369700419619742495775905073437616968269881403038320277785798519065396292631666365731645304310111041465357998413575380822744626060280721851345294421165836060338628387589764180994357773186159031861455884891845773745917197978175515480923883254516175496325443471946646656338693709398834404759224398698126303122587972369446775082658695199376620054641341299902909603268559216259541703650100560111270858018632623251904173163413499938605442570326866837063331359045414282794578265860078098441195984144678789664295129599016757119715506406502235379242089580071939512914921443427148145495687287241613820782177767296202428784823941750245078773793177612891218237634121175742954400740623646779009557082295774521598185771453210668929334290380457680979104226554540406252770214449603522117381476561963841018008780665388654682974486164356183010774956510726234701153163124337230282693652009473719506596247222932792755175933060178522305711374936464486709517512750625510384754539513208667090940566038441662511879966572455122394847712874672009008871918895852646847401547236335234646311496883810382600099709551475776130382105966728942658071740819201750654893256004759142855229187594134324955052362861481924474402129960702525249872781896522774342275555790926158395546690647024843801043662052776479532638300993288412928886185123928190121870837773646034354380226405824203967429160292715869452713242144210802448765883379942590698849137855904018386431084251451556550584191784165508116150641681188856135231598545251704145020574883690338239767163078425388329975512693114113530128743422339500640098065822392808403201468621148795010720868826625316163287249027160853478755871052181835277818863597375730111322033839007076571387400637338382646422570480747701709325482661907953731145655958427244571548419355628441929113748033098486273227896188639031717235388809005938636257900449015963008027811963412258969460864094496329963637108812340349512886513544779192828120762274334534632552265785335584534287645758461916194533965007734995691187835803705013652886999785635677850485065813494047341337355308204360425267403929174599519201618380697806018175312767267340401353574306628650122031263144110106183207500761057484744006606622062083790676599553472902417021687036509538902825138514961510652228906895230835542463304533963625062875441769136594234100053008230748471380842678878861633148462638708101331304927644601415707170207243563813409335806382123817998480450877187861898648504253818194073783918327392021213821154372263726281754124217935975663803346505699075286073271027354605601024105250945020809856924348445169270588480397242076046538452130944288739857635874015236012455379856003419550801914109502572988851059437051987369209241302244075730662151270457634140354017874574600298742993482775315391500585363447661899597824392470892686817928507452191208730769966515414172885613499511900853322266422648326272353277703024896590309014575859153843166485444165079846717806182374190896803768658443656663544036852868811170830564449761801883569134067871924679721693547501352555887991868410455173123306823435743081653107341098035506307731337113828159791579261686686611800910253798101798275069069533780029799802135403039134911522424016256706750708018917791525891117400168999520825778191627064002379209143413209971578916647335463946142991798339668368597307411922075017584747101938021438058053736403887145933770707486451216164376240998034726323157114062815349568000955947072872382399527006523120395723566804551249181507400173277827565097389177471135495182395320260879335393607012211144667384293530498000316684964919348515783305834993245294630403298280063228315044772808886615844536416860621911170640185434449421599494281721226166838104613404020801689480400865548649968319435933056031493635551617867407184372172585736837333902340083322797328517193131688692954555960847099117096992195084370906711760500334354250723276209694542877809827598681500784824428504373731245253097405202343215020256202657495578716235069838607578918814477135059288268369273890339762454657747588050696516526822273514041068206683804047010037882169815446852323951158077579035504616901491561834301107004240981876430945685084604782838762039176708911895158025503421917560472686809945661442218867736562969248473751967334033797146406073601454124749498449578567632871108967993444046260243347965190074179537413753779564261294908744832122075560871964644486971356540062395251453611819022981193876574910502192151846793193651367436880575068900047722623179940533836963860036685991790320709258592354580703665244224041959144055635391962678855590069718240517678932412854364595367021568741690804675896306738265283293628050387467527130192069286382756718855380730474488006174908167721195234127937690123218159072033029295469305645024263877295891554740100711800932704973691361732645855516006024013984616196147831908959592792353133715086351707538852272124813338532583250360818868784586568692017118474374777448963017418957350022971295710884075942666491558794233297326766615640300916478808136141546022676891806273955109350050805978080356291895455432575286582023458667155389993346127099423456120036294282321017348689232941611283953758931345758147730877187826997235464079428929320061597975228077370202915560130336121152261757649724283006066471784581396110022031216007112876518574013696604813267357499050398983410604647841322406401385943559788609742550857390772213906429715616638173074638902468314289048463935014540259857386648002635763762242686428923618075137265892924379885523929476434011000867665016696218659183296266250228666535685971791646324454193718703682318109188800247200242187409663984792762630933575132800573773110129620467977541460727317100717039050223829743478316083369148344585897445299575342727328324265750537569245619311692969338127618995838949170708230655485877406706096506371797506675985315342273010327583403854187209115610432612614421905113663449125801660650351703507851679824203810675057111505621254892311992470963266293806674379859720602688824463743896676765679661846520052156677803340940798857464107947211371330533416736602911444189600478700584157337309535440817793530910842401207577446719579965993054308388812553414370506892359357946231868350844246938647379934291649064852254508611356641921791243476228635456462025560413681227694937026877159332741816123910494279937134851327559119305546804055418781367174583369602651646201931301594606231590784195915006562247217669330219848635292441458498873193573162734541647761816591981367966188512790827935215239368235633404759837468162335399639665068328085170606702856957524890855107598241155503032728731591069859066970411339405895147261011778032467956803908670920614987663846809488433622889059933451268129542996453892214389045877796076617711179326204505839826883547854609265191250620400190439176369265872038603438262066532768198182338506572026619474632260488493101258580893749392950098880082368599655517140323537225808887683868382622122842279468493643347735122996512063132108331269680536797431099518847721830065577746864881643124662057356321242631293652123220554911054913812822762234212196971892407388311373989445881551358855172324199345779273841170653606407530686515593797630112304595534053600482768300503249109177207150268367215356216516881485588319299288114193351255549695712856442672540722369906089353465130127465868604856413283860380157682775931670110669554445231158986181297770406329757280108861345584932690159148278738665809222782234622732331410308408356957156886598480034824169717204126633392212565524593453957935989491151489333468684078361589367900405424077274134042873615992717931899502539314999491721198469959640751043191145229187564618785605942999918122516078732686586715253875790803785881211696390975955224575990084242038826615572693918027494361804142927986605765781125129439510958285947888126865238466644942851662969882842100054612686231534804526102389194597547816834031537074749672726767541776942910163157025659791639773472320983354658753994494421986241899666259711838914453484314878438084570288600341213225660340853074386168777629455603941295904934147401201513097947515313542743413883352420911183430132904059818593033095384135613687656971237451291736086904920048038289189252198598078378420704571210480778857614742929551387995630267119899634436010148422593114886062717601843859237409607010626957415908245030724978619946420579363399130491862147317212667416958867771304906095423211017916660795370966878508749813385169034778593711162324554174595898409582496442802740443536670030770498492871909413049506662564339854063384474795558841314461602684338791144545340142315308790409657851872123250537175490440452400959955385196541911621453204704469221108807648106407861012904250630251589998505496277233911064128231719672333285015377185422532711332249070002083672971954037230249760063005003674667765542138953390381051938331076543247536795965369658034307423511369493068012006687951936494329335030016739972716087865585659891458088265155414797271261013458398717988731480969929068414431870831141302853107812794047309834272067470505950988408400389424916816115255180204267898087688538077516595646287398730598668048850147204424789441582500024375070665721855340766956311728481618775624282763521740378884456534513518800604720076250218126622701655501130885680399704311684667247886627613250649379615414091180997360036709008705044268594149579283101007860256753129353114347572204674208704731195551602259738115411272587671699746367824578556716676866043679757425206425743953102880613556116430490015029535900545007975719017927487767937740493437766237053680712601638716590212236608905818130808874314381952856602806592749992302812658384256157739224788106354509496588827261605662537743885762262239729685380289745504056357056021958256522376037414447431574494524029908347407731769505137583757400046637487105592062005771289738169048789676271124830433383574706151317169778882963497940203757236935679108960492506389828634085701799709822092480414759844478912738410045139717225010073072699070110099789977265660569570873870686420367562175693486678001548341876975061151420299841308193098978240880545035856110295852602733247531047068005173770978509506975619037699891446326681626531452219932658095491153500166889962822353176926894031522317903809031049244796707745016627535398746763598718565043216443011231160799699266648990922331919596543143153557888201746646782260265523069239444478120313972855487883976355422599592810220134850077460652769065531707847187914374945879767274390109625642374308675535893470592355553096773654495654377876895998716869413189642199616672304916628740310935954332390769476798632936972163027128894433782037074053917952610356969516880730755017805040444169975437719060277811791274970984168564292195668614958253348113383713586479221929616621292558874378407863687822068177201781672584642898453106920122534918792927663585021902815435262124695414127262562964485035288899902133500309174137642474879473632987353645848886762075483872710193676049304500141747578795376934015326223792071552071657464154084262804567604981560551991083859201650387037121052580269943582477280188425052311132171152831786303804991251935163344001980908068975575833386926050866832584007005180239329931909670809110355225906084276376902786976496843495775097785230776503702935901261253322365545890829456818209436774766293775988133336446585082784998464106939499567401515676568617565017524938341053122527305798373512581972384741212407364455729101356118043484706267720290820996516729528253092347678312001200658823738652929004668090088027340419427205715887120144220779374839917612241256480070550981716065073567014990332554104859913355525804754303053082302287551912077453773124038711430806791312717545431112755479385371108604183310518183394329060136552096793351937585563572571208003056741375648027976972412138233922263478967019065333762220098944768580861834878867570195903768180913062614924787803758779250819120703939624872934718168590195702655261281171954504680485999311210113952496973699738865131222124596958255115697169423179215047673124120160875896849571686590984171906228495981999469355404065102862846603937707014829577687495865227071864960418169620269460428664212118174402781074927047803930397093678910399012044267402352164929981601964568266328566945577709880830508903391998224287449871911718281628674191318809163292106525823529444633465605388567229348128246626847910657149533041798689374579980555070211136396155679109089977849911589374414181176916598401035747558970707133587508786763651126805701692765987268258193216029348459206762265974503516442132984352837970806362301118914290096113739099331437336117770352171183164192560882346184320134552402074139458952530438245503193590194124503966505341609781673700592335273848233072800943607101626089437155679145983895005626001221476757899538672286948555718131581325473528368482475048585501975344937663286967043813169028156371144260842759524487611859796783600371474146171995490912123293714536123769391057444602645150746563229973635250483654493463701050786718360611393061179061611178389348340336180288788547216026989639626732143134404122484491910646932809598891121824420622559162880244982293495672569158570216700198079803131323405691372556888075074972028308563959464643115737825263826154802166075662235570191064852686149572015913649094915709046814135594175247695340097340493481791115215505109556206677664709304550512370740794052577836206470088478921051605515786384854277056565475273162603920273671554032834410041992177498356723767226757209950998067733966760096221457241926740874601063836464615893843742614902719205211468357634206209493651235628592264946888599227006195488857118782693978314887292168863614049194995413995144046224741541014995934838591535311104050735465661024127512578683240291147401453953780489732281162893622295322204589883686099145478755454523489255667439567565351184780743175428861952771529106643427769382324325819620100931243410260272655680628160991713582370076724432869146433334052754471868791974097043658168417752819199686228375684326394340689748386925225972379517367785752350981849116333792858129041476328537469924898189905465287569405445102497465383585241140673605459377994065858872790302055846768364212602712091214085785315612619044218302291872968834235634699382192024900021399411628422872660446057037095652310803996093805085708843435760262419180179560408527496823075194937897515026248482142407129212373529697482242028635900906271823018385931561434774132654528081255174761980236442170026371154675384549186219683507841355165382012677317494906303499605355312904869572350621812510691369731274594993888178236751515950478974989113355347304371712810736378707713164380495595220325792085877162624883674382032942690511572117468575834118774109512605737476128039548063741975982669409496075492058038273711147381471926897898737224662810865273559901697809897894464177218832712009391504219267211319421046633950512319575227601807946768713607891734967640096528976577586010052647936848189878900979839969415576268038268629323677120300205426182714522729254337146089448359152847278189524479924893479440036818689964508256566411484383871410505244361982699199383775940270832018037819514771402362938492737105401232870984234909384788503830134805029348175577029680486107388480541203396188828112358892517466042000652531798240709507220013027371425009053706403892770112898746065211250238771421768272554223894277159132771897623629883254985380784495274850333724297654334184872458192432216786708598331519322024103913087134488915896490725637266537162624830887448699325579978947052212696640171505833065588545939306064402130424009786196792632599559448526133219537217289514372899284732673643533162340947006416659867058739799504053954885566534359758993439828354448645819477754368423895592412244803849899849041890858077716773224132969269121907937920778965768823807200129060586416866364364499671573094252362648813398674825416100736004607104911421037320674756647253674397309473369952505068662261794756348695327794842337258532437105010776090394547729608678204685970589689268490538568194812915355804889570264210980180776378473978464961420366223188101594591762158248598550677268249356515463658374602753522667775229625564168261650583942690767580258718500263088689641213561412253999603548084330676517832847644099779903502312216827211116886433999540296659981174884212255601069586317977703198249707428399754535526173949537172423791394495949267363897636413743033070100994573024122908717867368024354607176283600979901970874138848699000003894156571773175555168015849689333003426432940583998683361124183324344427700214047980279412345447460802893533922742243422992682025076720876744044041065688141280987267465806100774669274251994431135348422598028485464448757949838899497965815380062924249568206454646142975666544643431178977440675614361940107818564316040934369693735065598955122831215880613771071292335538808471202354160228907467812078137223631411681652986887830265754970644239940965921352542283993575225325605135386406384193789026332266240101073476857163575191282673951453862662726715061885717828573617958831637624488886294403849688714613154197367236595073059380667661725126869022178144157175613669181220128765642553379433022306198325828931238483344613883965684616867100359376365500569366013824807068576447475591414869834039590393967967387796348775036148283596793083765192077239663764239729023723654240947347121478927343323990510968608459732261304164207861795403040338388943869987091507479518065899716148004080690589145337835423999365970794871462909739126377911439353984539318496612128496869250859006967063808459239664789975339457920851347087074884172445418911919964063448143311895296612282390300176902397022861184770254890538992415558741431830956305895129396283567953908031271171514084855285890420830780375483148711638971969744276057518408739283790919791386883182331564205221362069308746605198167286861444679241840336083814815781441484904247466475293380730602989675897993978587917761263978113270352466144880008695432080259864922837877697320291625879219883422185240822341378190750967771375050791129040092292223982540158920604390834147803960368532677520582409983306096218014740452870275877510283773625938494444328024276776520694475951411136824216977078814097752770185266471846106053336043160603154360618838826328104539495177317761668890000026074362094682864274050934812471716294150686620791482446383571404836387948695418238855789826040882153676830498166811345581122302862489485502722325595356859239341143908917789177196501250528268071181176468802994038865617114747956296822595232751600242569553296553594273397468243285239787270409139222181816887215826366125515831872935951092523642227177570881233569764071822872224421870268254564303974763611325509107684442820292747540538618984625276674052495633216437417205554334452321712681151052575790921696111184942318630539437393001292703893070117226003245907843808129687958111275725342700649625340758963818014792749022411428192062146317053982745789123967674215327087141611632562931085153810916148107378594025700975995539682924107479690359309145053579418138663908534292342958671269956092066810944786277678828444835987134636346268943056227716155480684354528566094181270169648431629095027765940787088865351841511970091575252134761943676468981573036561500731272407192700120535220938997727657207859022651314199198220195786060204511513304294010946716460654028269120152651529966500890855255550754927738687978021853045934014218892547486463355648326988517502394950399221316473261071765831895816822395176744580671917512348787568989622084119831059244950423451448654350335873970948214278986447165428628575873709599391059144126930482270144400865720697197673265901383828941138693408737768836373605447087829549860737814571181093034222178721158391888762544463179341641676558738013720474325228270825920414694960309683407378942857753843191828714932410227577245762654644041781176617784939764821405540392094754422108489398409392447104593686792875543185623725384497579855418343763200468001266906839752188695353972941985246452943535846558077674200002980695178376186610880350537986675187815588322216036567225707043313317935768072024626785877825682884913611133754978183275094120384669083292183869135823067087938844102039390526523997895062668320772422520126859004970559629659446314160408248645094671525319146367290687634607187839729337071546852357292832510611798311482317407502062558584293111313983278340326713402111372378840033237303278062669924598819546700618500555861880811406486432380277401076470680281604526850840040925481077421286881300048847822900777464250392839801451960087761307496634622978419035241686773781416242279755419651817337615428566024717350946609281248221463856531539279513707744117321119781054323405520494132084114241423122777339270958636035019277477830982751114265809140422639646309523723463651718053067805072872876680782531604043030559034678276280608714962478717978175370061789340303930824491554301207800846270021405952404185223466912315899331304756979685567376034362196718863201490604572606066954933571084249095213044179987949862314699495945069580637094655126279983274147488613602287621502894365188292611401890725451079294802094504342088089168396394147077921631162805958168953078375341654840106075331526173568302331521732476938473033054946348433710890157411603471629980343035573509802678806738293793980603025699296679280224760629918428975129218449213543331546693112653593524384011877176938081490817525275337125275226832385693219217051009424542069792637054575638271578763835219941398715148466599005103118489263907491847986178100395931260116668247233969997197863998941911076797328147721554204330818734202936036865450583671936746871126113438542775196139505623135208797110075846285530011231609253884890538243368089248258131622813890255418592523206392701491706271832205141263322115592550424824604647554034511188951720628285056191196120095335283967904801933876034753107718532171332460850356672683844000040530500861775575653874274479888955505280458903852051716612225173298942768267021298022135182504511624008745984317268373515133159184803272997812504589802396412305035128214752635732100878155213054839467814755717390170048629442910032144575146351692032977772811843361149168553068783378866102904471384281215427846361989201916997621806745219842127281917812301088601714934806219650174689994500983076330762661421893751122922398533098574355523172412022874373523916510703125135858645681997564936673523982965672642219180947382646733369754760829882558181583248148634547891108242480288492084346776083840888404039402001647969201463829148648972030349208472787790048100638992548047440124978784157331877568656860653314465744220693565777784309695204072723111609186943706566543932682410851730241612528300620102592297704964804637449366864597873970963291596529839943219387351249236376992081826852075706801722236135161296643132898703872539253528549089617609650105974956933102189730461202246862333379283798058538591517210803218943397449365346534973285554000598230304851862175471310343033456466027738798354832794666701991548907639208406243677151596842271306566017428704808056950154500957416425547910677535983781364534650807765355130035874667581424812121320029332445824322234997768078771368127966238783262386551263422652446016199046980703806034539607348018435155748772493610673467476608818382696254059692037445391719356315802687351329716342729272038489238603213397531786584848529422706033392790330218771554102799058873311975134643046897356426706080827945026165352101486188079519424902256554592257122901563882822772551947324398144725537814723085816724442838705807772408651343739941352958832460444962169788556974949680763233333935340580786672966689808859510263676589994186178456124446847340223174141110450568158393480700901185200162287699969279071493743455079382732267419575254434417904032997416715606936751297671703416774560929629916962739157451790462198746275068967571294496800223385890133870311907484669638380048809680498823445442436782262988557846586243671642866845437912972709159788905905771839113631780627205511529472500949103756918819950991453514335634146323352118784902904696078779870502983541353251601521838544381862125881325914782052405042326676303856929678130673154558768469434195474772155164420312430901261191929377103471555849576517514137958670590592179113375744455167785855247626989388136257173012569648134593794487994121320467872760491466933943273368084875817628551365144496983165794176624213565686633943393507154557316109255784038449804520120449506364087434496670763256567052135217445049527214255251638474008130726840766373846135972210134557789068526922627107985680829473017203380835774974673099547396049414634625053598024908810816564832842522682477785092210462178121178085572938480091914510497785790670089064700355294937204087512239485645428789866960403217745901850732414453445104625950358752263807391876490249218905797666200929684739759293085290644743656106524412877919637883458004973417195752248792217434056446154946140257282770553555832956556991073234275398064699755220949684211797066840723427863140086667184144407174802170227360808242974425387983428886097161388140544912631454971812965110055396366945471586815918310638161503404618917273062079551061260193066469867361430795404385183268334343532745277943139810983469015106822508970539903318706918987382444534890897861017125348886477451469313222213554170452914514858462059533127573108727923620774972140589433961766314654431410073025701848895058263216580001069583377320966908576562488368085445394175060395679870846537297687730905114651734348842196451172409443572191261350507571599684164667024650186980196451507676946352860788429817830348379974695773158208362097960203839035354102334331284711075102682416563632447046614349153174539422906399609863444680819787624761241367502098500484763594958374347527213421516768625272633438058252204646642160512001453632138571859656618426555149560623410450740013621480048523267867752222499847227673637497728780278123541794480034266712205826671769429509706997494406104722508267965916942724203341420553592020963089142402353884629303768544538460423730295109996496159268645016465095933464395169053926949628945825893479851767117149269768570473098111869649216393775724338361207708317435742162114160104611381738334410597329752931984787046209524660789271606013708165012340620675694315211037830297490495503698545359434958230636107029736319998242835900040479062163228927202475435183778367571159372075403268509080580374432458073304010638381464006888061102537879627899768850017110914001508338296170198986620339641523202087666585599229950628575824850007914815695101508536567193261237237248105683107709885583678958855698485199515639024053498444233147904073360598580677171454889479476351022363902890250553785671391909821443544660395845742705579476411601834648756585089957348537180328460761248607987056875120519623248486375544211611168022919250395969848508653363177048593726513659466436681195976859841402701195421651011263170241627401885676529400552971440963390312130059272758622129980752041553720522127284182817110580751123423882268747668252097591811869228523550137793993020885697967045667530600898100406061805739413001701714924742161739349421225649471135628021548575832295694659373413953901601530105088071497620326497073075549227554479846335254345138032922221136129762585860181606940453296220730821979660954175805065665101502172079718866932213070507421131374994412713344307100923185711450231399866461188515332181691485301381478068321140887764749340987017532977861826491236678450440340862936983205265069652274478496998418036233356468010757029433218011370880382987432468268334227472974776706521062454060255618543710453925866007604410188246341046533286059956756871387658894679380949627277563920324398821406943421030948277099712331699213508246395955285351490029193244158269040517928365420206357510249379411130141425263761810862820680334902540789277851931645865215912278296746055487493099047254572731716577658638081297060616707979222643727462545900329570170791856891016848286342786874941208250954081093982739952306376506220509008699528982429051047390825916188621700934195309026548467827371567237278703432489369360585181006315751617048537000961607162941368767682829696636839512501873784154264130697447648429899122788129481008755818890346312609029100113536978767029099372349877291221515173392532936224283320362278934872411061911943782750433688816040795859374419985981125351690750731312878629049129494086830031921568015311345845250488181900277078375151429043194712916287168517227005127359987045343095046519291593923340187367855942860286031872057828487495080621906296346932001890786810781239852152124745133536037808244066206436973240277030543001644789562582484299512475254437097575764696483822733755096464823605069695296766305859771687564466094679040352466624380707594051874533127339859757741132028105650504335846103879144635358636532926152125901509755852225042784726353462710780051770083561122064983957736457292246117891474855861139309525280714313432797923605788765162082619509561802319275625498935904571010282480701387435627069632433557898379379996382522167857344891762823006400541751053135580565294157995503734768037057078701411485933106193195371467696589959735625001891839927745204361968623281960110628777263388580206292914846076033618736365197185890193956479524226529386816670791109810855175348418562664064352874500315005765683710732610857564525093832695527941075988994904710681421710484999787904817164550402181582413421583084552744087653641647577041070937424866081732578586157018670300350783732523120035313095836536666942724158693455710896655030924425254810072099251961809468802659493570812389455688390763379451781329651158518245914998408997796101934834136884895157373846854859640195644134640993416765649801844033144439100232703996718497559872587976071679086792651250125112997692461419944334539748210119794176029308251445122639522109761377997685626752449674791214403545612042994871750067076097662457363767441649652074013705768825681790927863870898571318510688193867449410288798817206934093686717404450919758246258609977519594216789173578733846502700427420467606001626577769930991975885339947910431029514795401260848590835798473482494818156333268631635227177511349550450881355565209159186175512899169525286553883137412135905745690755070485635746948529207919317457692891424883603407759966013092776711923865952464611584998264233925560994311516115405054453041542059452433863400635669449072101469506199678089540324910823359822175148495616512828092987567189319705565394130432389568857632359592017643843668056384880793165493523805737950721466590580225319454774627458256551270106479884778008043199860012935026100225341321030472223610500463563886346305800995689942631267962820206598189110137062292990694686630781453774520375088813253392273842626944988059086094629893833846056560843127780265948050918953614233176576006156599272582594969284459700225807655483835683224320451015763328252912203592626245056064015135674003190031960759541894195882154115055773070066761576829895022577345327296404922149667168296584481393612912874585194549282879950150452390485149230613050758051091781236062391978069789380240921918302823062763347760545288571035451262857895412182891404729684443514360928139419681550584671318862094971159808416449297305126248134908665761464642942213903408951278410255823713698719011405115549802692074178846277726756143521533699748302566121897531764528482220209167646928148932948427986063064321740294745529020066381088015368097189734614613871419768845309670767420332888046475097338393965488030823171149618103224514915008031856758599416641403651909391838913844013683919723480096822476620609651096653939004855029212010014758105613976540770253712494890500657103033375053633887495981019491061303003133609001241468956784421195452180090386361420140139794904473197561280773963800762887941873731345304058536342563643792903238435345940223446114002890569402762672354081561617765237373485155759290966354606846248836938390678430928943502820045303842436471894453570864476936871562239719233203044920772167556455958477440172550463003952575835741963815088807127410300426118463216238995851558266431262361204030482442455816231290187290751124048778853875259060133092753446899744503902087115562868856991650819621155215625394388244178494825034078914716710248580073464929807829003088386990832924869242257821075616547371538269974465594235157075335980931500656372007870767356453615849581256660104771655742631948686792997859731853107948292593358840596834222142403172057795470952586869622193154333850330724705738485063473615051594204170969909912199673228684707315480420993859003533898531021586056249240672917438230555502360521504602310487346786892053387524621922628059075553582915516462000283699259900505869158897322063646362284110474379001429982688967644505426764560805795496724219128400518240894632122042959946789650234532769155091656325507800379017016592454048864673403610004625860669310835404974252927038219521167668143904768879011651059666180807270202909928199438408496826836046305026969416079800904758230382697392302559616182702611257079812262122439905372937613636162513270142683996078527989400216731704234253542505265712820094731808845349577964302078440941844885265692619669324996887515669061468000364665507575660468420418901200112191887561955741991359212706909530573719977180777737052090598618603380503888130445052883427115270546375939028956231532232671412590588923985598230376109384260362351433718125827441482727955823782376906985672924979549336597165960130461339041335191301358275716948379930353118121863907301683284080387501652266484083879121717984822179676049941352446503650508449553142092022080179313598396327789020331246743721989894857812883535599734157183703281940271633141508295161440914934219278731208744289248520469244429116943460725127107908840629779693231937249261019659825077280500283861480212984680936250452969044453540925295585948258233335636558413738149487034955804964856227337614267388572139471410176484007016759556983561576060113043473222538637816992125638344433797715597918627685064996230629943184070696471994346448501220607053597948214817488941288589390402273674471675949628044560957799144566961427409168859777844120117450223069366189506251200340831315440515264132159295712403278179877677111436800054151390147763645242310961319503324012259174262287713326812462044752725588794134354414362752094677415257617669778451704485356718877815074456785187710344165937601257819472489239674003105501251546461930265485732883970200717206426582177259339548803723534517309176996929613564013809856296318288787638235548260345349386400980632792672494144933000200826815902556649805260937451794886688797153562259795755570161809156623324557751800029740622039073978944281386559812231556782137570266516397654844614614579832818583721120441418914948343265298854106166891880813503815903347649136524361960318984120901093430303538952434393794989673456758314039570547165594674179330045014784382853003904991734003748195486410152583039181259258092278296915116310289680302567293926116927803169629301025403547899729309602074386720771696603345924492059973780608859363634069845555276206267346314161995735624198430031924243194747748292690394941404431326305308188377224082598546081376111172197787257046767942135813412012502655729762534030748707872476554686950852309040852979309793549961269036592494795791641120295706542821504721475680000663542184198371281712775609406849731689953980165193714835743455708984106245102131002691261234201593939557464053851414816274812277366602973872188815999153401641360477612681359471474773808679667966028916712352918312171340709619852795341036072634993263964070736152335520016265198545959711070162846866629181132413376754107688590002388233016096288734755588936582231067764622220243929348995945142888433166837621267066383360737225935057662453850281290846916857666195005173161111572846139714940216047828629824177960209916784380162728842481128992887543920110773370105478857495460944822962001790399257884186465557521837931551014096198736892956726537313564460832814263110166387749008610004336609890335858111174064583579980573934856070192288399040710626293237150692291987424212949691273906256584401893145854494989251092967533193483485627266875778212875040147298271110151760978365346098050700263022309043087852451432620696593552761713608109317861901799631657232281327113775370068761093125508071544227489774192324600613475010157680662863442651145874653045198418079886057202439389807704910436611405992216844577318250786398270894967022464405309059877305067775868430694089250707113774860350805440032946168664763990596943045327011103928207477990248763652436109132269368765841530212724814095109382769966779612754205634901672792140709306184767144811116520856052524419528538005288252838931307895688233507865742214456704906684140524156640855989955910459889627874259790218960764699125819196604927555916387837136372874298360584031453816665637884671320761920571343444653312199549529152618756722302629381113203964715591850766479987650786698513643848395657353864637150288669503700572173496969715522653356402129562555491889952385214553633613272856474142507874641802686213990192476040629410151073746633043185549795284024197945666926895402072975250072949421748545010293499942778372519766431424004635113953790596577222476010596268390728563843541053042389357108522568110951972085816752431346337583335300064761245628653878983372171022813515676877372154635787974307546188214417776623959495413006448334937695954792634684138614652673002203047585634127542203119207522482686445985604908083544200202914885114256078638241616942231439021618774405516949077650130562137183868494534629379371292637480677255316247279510498594841098387955857017878618578802718432584565841686196377247171285089279942525255720236214117322539387336257734231305854927609234993619255059746187153332483117193383324623666704742905160558862746530401382981560169030424564154937720294003071766112477275956239726132461342172729098472858696347682386177699470969895930275438923343409176770525237474319826168684835929163459222643083987322281200313533418819738599635648623268998755582801164950120007592887508984588513788662210640356840091799193184215636495083852536060382712829229167702252698469330370265229640220820142099399003673971566606395845426521558173954581511986547347169477209522281666760444068365854824442630982744605540266829785712492143708653288942695680468801534782823995380100420081500882177138136028443759730325363842844711187743540474380018658728946898677120221674357247497316320819026769224063450892710761448046239790657463416381923442240751670095006796831705423214986782477748758054458141994946116085620857668842106649743830683839599468622705838630916262565899016502303808242515242011653911968350243374101317207028446087466871642424327687305497770599674873832726872460965837160423112294374759386895774045640797786396293383059164822114339574219115061441536468707654878615211102068211971834457191846142099253678939309996409399913717829670773489117162366983759114539931022417361991279790804625815111207002694418362605979355095342814676225108664209799723932288702971847247851627505071818447951809702880149236769860948718663171964528267404871362648776890522683488058124182228364506351117437129692588664940123459713778030998832479559410986094723436552475154662420937825365459489365459825590495674937541749941603212190962814690897362670807159558224278485859153360578913445007899544135896024556286041596923051573252210781571271170372626658451001736609425646051824304163031817376746893023391456051882136555395859160111896787841985550984374961719307540399654008975421081858179985685688080823929577360796730521579802421122149568897299283405541354401409280370495665235711777195144593054705775690449571097552175335446327313024533774339652992213381519362277481191465277687964985579958046987828907091795454858073459212390197433374307227241381808377093627236212133693422430312201333663789779851386596216123707649410718079861417799385116804545962791024036189706004183960693419609188950735617090080813788354945311578006285465646392535723810487391761637696711471938754904900183156620063359157254443519583444679762878746406677311069448977551124143119793369744816799467172499030852060017560960782294362622007605625197617678642290942684194939250905385208318074188355737717410123563389407680714609057994339429789973903745983991563575036618592457135149615573823403538836326400132831102157091660794888227231027492758017959577037270603720299120718579468979279937731168301641660531202737887545335957309281498272604244341891693554131681457118865175539617540893329393194382555924919279591590436557014904137557828200763774647805370438436189989801040415351404777803127525585073715119648597849887607343292701722274289336339718807435361892326738401505804809539615400169160968590827324304952149175530038225028213406011882653270777023205584710083678186454679077305177230030225801459138233864680247602212872762195129772758760120804624931554659877429749510555526230825806985458617468587523759596183709127272920484549370674762014826657175161820505473357025224207487465907234622567799307367179507425286960414964426112948877698827412573612127608306601648895906598238978499110078957365255063021311467442428711027818737685735968029072414275444435969717055989995108349419000616527442396069607017767163389191366874691810358695273467034553912459057260210319620500463610785045303188864083903783945087283422501205370744929637841236861680633750013842746848566611631956771360747293745810928302003664342522250341864287767586154425849976952116065133930587096926036460287418406170533280374553844258150906503738691613556928286245738126871710289822918967554995957629238959981629060316155253024228017608736320698204755378361026464784738529883436934265434321619258020231767893256928118593086449926100658065916000691202787419461164329442955315844371331013219005751280994010786368233948863163165790583461440910778035703831082942271678287839675678384955304365414000819564906164219937851120577389683147669497042078680670294195521184927923136503541996980731173786661833289697181713392916874114060414171538496409215604770239193582313207983781800642504292409335125966004918134332768150124065233239644373960393475384280624190969380020494424490883250209201411605447807991054765587814768663332016006414808712939677175102075331595492421343017019534023659856610641171166192675131598461120696614765453231230427414889777334926453710120240031139463921354161225562276813991227951025048917237331049437136774903455307389796764363935399018196593895125268295232631822164700186218930239815590258098381908984312773157201704676694567290128799513441793986055940937594525395977302952591326644734923132872527640533827540829710196786704568340533123127430216826728196737355590548107931621709468073583796285898855785649638686384778096702396492190028440982386023703639236443672842852424218641190344881560407366720843442993083885444416181004954956312475600453907441032044418768657282940518720031396073114958859307225516445713179017359595675145406525984508703874475938969550553506672690004886284333753049670162802949461465661379397179898943412624189025658546414622524238104783053391460268013540596972934115158277512827101278770181953019269814762131988905142839645416227291176913073120662309601204636005246204882592084818477078557021986805474790751434715613581862812568967329683379629093065869392031242156571341812523625648980043036668324595859952807308644754194258939457307495392361000515205717291121828239320127929424054337500077709992302930489918860279703073282945047074343496254627029988390068005394443152632556792952717640164364248723238740578168127331766001479528481271969118617566611189220968724455475775891101752494083503686080575347839576916100659972732294867499261023011872934956466511671979903499870548510765393387061717094496973071625131425637685235755627657406986890142414160591154651424451654413694408454934587904206550246157854040718572877550703939348790805009507426139432748699981974511343134469324938419544495934588619277555276870495137107436066433952849398613276668463244072674880542228650162692064936652419922783768192515326963015088865359254723367316179776380860038484471636301481357179991727488577037374458963693676956269084381610093769698858541564580209596692788414338753812051223217346741807982733021661911639421859780386259298242946042818335201983600455616525521849138893219299731984621093833511330387764139628112314478005246237355217990022624153630371866137313032261351412521325141476758303957343387403342175364376358526851039857273513392707723273930804980950840443020652908096350618784125245538581240254207949086547422001928313507277159451133453136832535828493453757857754362754293822082041365770344042518760490024843622401283337967430725501416066200941709966970134616552092028271721072857196125560782147795615418372714131803183506761832236938009598710559106767614253793266987185263030443359875754721703573055973331701649862104162983507210141937831255879265603174012418994565590674469520982300408543033268805529765378009392840736297595017734170350574238872282726525339851865259987256795824336339236460424635216902290319111502569532403798264778928185590651293571912422528255285159258736265552843656256741679329113134425903846258764573521971149975848265326880541873996988940555004516240457354239280418710861298804664068058812812095745712226681156114986568407387444786981934058764901718687637840432724736447571371670343489307957995084170268931679771041566083208946720660087455026127491727276517027405594006077288597329662306455888630748257794818739649051413600278194991311222248477808499176326019276848574723086343934445068620678969870260943719009889633361553090415715299178826162348428620611359522733789228812569940582602610479215273471138557240265494986706080516581874368889161016830729455049754412864573448184942813985445481608348716751868449559841382341935736274414656630944152325108163265294424178588164001191258185275404359395160636547655252822522303036543842466775640206041170278924405638367346817764634681814244656942767659463551855127400910033035031834669762101316798722451468574709958225873020858982225580580929807044259185579405028432059741828048719201910536953324522240193666830279301684280526511579032490795225700493998741599543535283122195315763177327044474714143369306266640581908968270503688726081902897005211422122672048719570257913574054407218624923617431664414449683866192290551378361138808813748669425428344753906539682728203568151535803245126526370129663015778353914400532666284504556261954257511801701692231179070602151154789930698480611430314509986871054416323505782272472074766532640317173904459741226039099997235451660198884758684902815842946535268784215770878894167497867191978368657713707680162820793790024586354254607205585545108460729072968476065554439706796047791932282578916255746107453804140360040475127535262424513844984055081785802390372506388542301707545406036582394550339604075480893317044383827373323097897858397407865432997945486015198040312017390648492851209068903738177206568190349675959138765307625893612910035728230368641318821718236201564041137778034874751343351939332043075342743102290586631648127569187251497485242419521544084078382197962377533206701877836436679568787484936732302582302235772689299208119029997731995728218167257839980170914244113370358804543266997476227690595062937353126679353845237787899281491581935690730351829183587616345196642102514272990897208466807708495069346071499405070501774914434572694708364286834123269465134663928585594648883159568382501593314999538908856171334546259028893996740234429669362360939047749350826548493217977947565905993537153754066387105922389985229303153207734649305958051739432579325057726417888587769435241146936209085106819477602693003127525971667384448895258987251297701439214157363194083473587792342280510584170469222011168106717510894646683676729874514441165901104196345993824315824880300315599821850055635673637127274328299769201304017661611854870502071770355383086252251310900272945217363637122332105677158124530757414003130085294442273787709062901804210720571906274554268754320979396785952988908062761352760142349485474756078906444130222177078951259051262088326119684737138659689688018489684824342607931040887025402257042490821291508842038139457944081879851565185938048111369548360502634634934101591765587213826261170735503534866315610290056306950064444624357936378817783608893224271266254878033196517433197652605188345974823824967259120121910691915505175374527861169103820665418578264598580043503539222623895971440109387391422025172116406865128554652086938114037426594054613801956291284520986826671960551537922902069857948245193874592334728116633057848555985411957848011796583838959570783476450717822107869704314759305302482209743240680875886189895722476787377406557848190500046804337557092871384607023248385355707837175806263744181738672543375180407652756714639615159846400410098233011991432937705447980323431445082717217705628688400899968651250638149501402394508850269700550824498276593097702401087889893500767138783389847177473289613789085495256451817190533584300188869194341983975947705481853916070236427427123874401119016488464326412474439679255213932690016992250718536048178612765441588541750784192788176429423731262704791587661104320414070624018337619347596975807099437138484435714773690077775417944613243616660419810327114599668248460469027994276094393545915743786576520006979507333261896512260851766765978772898846552514425541321230905690217242422836835270240805021056543254465554479334688608588938439119173901281866875445980794648478503502696272429628321405717780462856086268945142306269264115890937756328660236732764030009851909057702197954891601754056371950197409717530344004397498774480813275169534582351303142141656354573104307090484045695125420171170050556575699298585060901349212149291230498062850819596154851469513741762593098256049964711959564874292685525123115771021199210473860289916464023695203226108305165896507366267555443149544500429392349227843023835169271161307040558572635030207272545707421180157494065357443548815075466619251912571803754436106509271438546690353661554965641766644154336434723777422798609560287019295551774524578562761081667799496859643285919724159709689924342690354613632618913824250459866132733826676895110117304153953424242697212545165702606836430142430387395931412366411806635631345785962606151097102385969538477200260981196392465768898281654955455488582517667115879310929759571438299106714980221042635570657916863865180607809115631069501137821637281149499370424811806089936591766941905981346606310214691824131554838235374251151208249250968361981420672955708668824855282380429701073905016380887528859420347649200215261458061945464223277716264144221340525647797873256330689967609361301434965419692483978232023557256144741854206500967742175970909755475994431596292048509187750477946712123203858940989289226444385103089591637468596540708798052701435820109414748381920341404309738266642939406609959285796405780753708816770300316718018562140830998332472711875136670830947092337881500884785052002106378659295161315531091878216535710521273541277946498200375941521214967373649438356986961340174460545808598340711898616994699222012400063262179362012530569231412447549784361759929777875612786532906992875474353324874707315346209646937488076295124570016105437711322228684578547428405452341742886545881572839533986543586509953416772689283095766198311143466220930762557960693012760872860102486555523323736416856054734493240810335888775529312328364676034927264498476769656090427092582891132775714104803485678309670852447158869743598569190104816055878583768882826624161939244217508720758375910190443404203360572831392703187634369758284808432994945742664216541032009318534596326796365499010926026635733683737542178173606027048345073766619756050070862525390135768032995599195540029639079297766082659239184195430212223227313261324043229208450676580161894940103634637562883530512262125072333332346142946933438457832903970893089268159739123008966981801605574598651991166921325322204733646949815863989004893148468873560837263945771751304512450001727911409874314702207433346453197512758538192109432434307851703152334812698787790013691180211014753551649222354963185184000427043349136259772913189362985963581664716288893637170892857070354930364322887743676908687960766304060750882149195463896105518437516036985031523779069340609055708896790472252235397365159891080199090404931218722394234257359593921990945996100003234469244941125291173444523947805980493015314586601057640573478804543284226390091137949331700688514516800923599788652243810643927700856057113542101621925600687009067314103389478192266557635766770651773575395848267724681904557947717058423468375943291345905473246910143222369406849185471586367422144846060104626299665395809032431830512412874465207608978240841585055837959227785284225444352167284841185758104773036310057282565532390836370003567382456677959331829851179648941807076493924101358367999123190174874161951623636411465479338933864828319152242613565048505351257945849169961929619333427769351087801380723861183883275157494245727617502215172420947593699604863550373880047711746860730179294109461818644628678812025084445574558564083651442251051013172106359723695243923935543803932847037223040685156700767078764320998126142125965746818176359863968540196300543974145975503462211894691844869879047049357869246416249675768316727952833883392607291959660286628614404269051365155612079495508672254815428537693904549251584086242664937836669711605410320371484426597869226989022119681143564463460227840559781856475884957786146819595190392626950716348753050566705180857779401862653029513915526553231603809076253375289732051824112151520909683542299961177603458083382078852187307353704485354520526691410501213719045179394128088833216603980249031197262871572956804129266386294445404339206994108337780982128548129584889867206974539381914624870804106204699273948109322496027001524079182954931535847073419785401372242052301355785095298283625874096167732743328069844581458773102320176347314602170695155931964713137620000313566231660332853954454256214633370097271589715580817851508106767632927734699575600070969195293816183745873589692980737644839843408957129709495566047160672984267738993308973819551811297876327013740198695684803005019000750368964900793842877122338857051564090788485437895753526903431408006265998800448906399599535286898062035984993922705046416217549345720210500655134728034804888041917975664077731657094134286078753637248229189015385086438037190998712392807015012953094900289890005930437974547587780390680248955517389502628034942270579172220446122744921346819731473745419307592797947622690029588187283034596577000871437967401995728169597575985936630776657487642389857994179312568162854603117524668515709263635525271670910194306319391910805849415215582536512792518551520992688523031926873185157614211986907428205953239251357619362828493008186135077529864047273382716574397098988944715248557436349934856343117103879553804029735826572688969653685851223332116030036675462871651702206556549248350088594110270708026156184937415420647656430447912974081354840321027360843826486890753651672432638750432775732796755143280300461215804962874738790091538474809408131735715324907537486085195905135000452932491770932153174438310496992551070464928102644592207025088014660933496404299591800101091038979873723320667326103104278647336638764126925997219405578153769840926073338599450702600325516980406747125064314656294914266754164247491653938634785313040601413423202723256975229889864769992341995764493903438833791821630910635485709509549820798693428000984280455053235201236059140173463913719547269487055647722912178065543241683159171672433805108511894696824690088221645078706920414552472057722517671742704738211411173707004351470917360073523264623777662868392763234743892196039809252171423455623741328387531806685467935172362434700126072844039742776076581164129996517911192781309603704630440490223573519603561538817331176158029296734584362800813033789510571254534425657770750249264394801312077013485750793460374436883337154731914331989431015028982947649806811766830915750029140493808130586715445753335440940765081766409058505925344749612774858166514995233089265241163093838223544766582374744051652187275919973968591213908262495309602683728427510326579067332515692056610627136116172824554753094235291921619364559341260208966810608716662441269991528946444445645078507904025321909693787075678207589313805706321561579041471786540386166917629327293318937376786206102061699703284836029848857640222113298187022798309222598059665792870691826475777726866146284397730181904749915805224084950092596915985906992911362340575280181760810653880113514965865704275340931183710416662292243472670213369904170301186786634858296198535964021351924575278505615867229670207031680138722255230478189312888779655061802179322179082081642159900524746976566518967495743521713026745662773488085880895950099353187419145260201109176359380546327320178776563920871638657509200450881404585321429282923280316598142757297943953645795311314213079473456019477796343004996604106014462850213635786548841524693942839123569407862727362964113161465971156603982187026856907795936701882339844067120610288663922943020149990662144208146074370677431109825166945476135686238482260515271791153032477324994522795631279937666294639906411620253861075968511401505205653158872100882824934701580886752644355863230783813510588895789401584231572000897502289887333593490832923355338436771968574040511128489600765240823876574616659203779291325426409394548505085907891791307735085208719005949204040840959897660299660995347756687609329527440838061666623158114399407906881655888015148663702361811820744242302963941439367827148745765269815274540707505523103965451308066144028325681612153587290429849452371389585923760850888943980984728889568952880518018160069615717312312717850679130718780607869669737814321960815918239139686623064974375655771331708013074175746642057051827868698320274859234898836279364916632633208385564624701183944042403398346852066639157392722131361459148118937574548545806076557563024229529031901525011099044871813559039832168477564569200638366467791057341984808736264142013182353399815114653430699130880778599435068105395340554095061678916598567767621798381824735377515708546971662314467326608422280559922064097339370799006784787775727517308747771612755915186263608430355555976478062850171815510761181259648464365248611050036904054969055448536464715958748781832165364376816197850285706356666796069496032382503954136679968295501176280770449571535804711214282580918901694521765319548028661199966335557307094594139962603234734758284951520963306077107539033645049920518191268086793746864362383441679916596273631202875700639491653876947195623707178627100730598545248108991924826955957591641533186726994033655455624260533168859693302735582193538453164912485499903119475007292013652852774403016656911629583658318941210628438469629271783312253844446329721671113282131288262256935408542656083812875786380437211349884643382957656970423181466952488125667281510342006191714213629396831970604256412792367586777519298941246048553703957759699137419054257185556725923597752523637744935051460690791230074591976921104569951530157918310293915145914587334485105116222506017864560730417529582190484879225918589806468678747472635284210985430740185053543451116698832251937290122466280956564555070663863728795665257316788899931404051145319695717725736463393208668748085085901219041283040031685763619874881209105100839764142582151242501603629188355190705120064445223871114311827087970232742805689003867311496615799085009512421314427725886735835910433814336466257896501764150392919708688454118299570794892963255245007080049983168299349674787111796254037795071913599026903260125749000039054052512231205729973009258058043534589217532635532295554727165335616314281328666017731234155104640077017875274027601940613417824891971183523120812045435894919420882357858783371264599581415334471288853822355337415821015964098125980883340678526240793270136257976115899221039798300226098562578625410724918876403653433111729846422644922189224617950170892296909279441449452978123380988450507704562604328118340782857572402082992943957929012783492476991289704301271407775137393395382064763879482294952791955541578938730856809994254330917719726817799631515787592874984922284672776205052208021143396234012556392281313612712892436173234066546906916872475174309907634233272972532439671192703560019250233393872045857234635825093075205455979243313059576063572254365971814455396984622217097115692873335339304961277871057316882670046368070833745818412836479668964567345623700622716986865543074861409140508903642552170879622493650895443782434671168738884394589119617624124499333462253931187089287858735356874134582559809974187006549255883965605699848285736724953911531507309193101787442800600482170504911328553053185747142878861249037657606818092220055288592327037811635241957011725072489133778864789416961753712920991780972628242097346313416864167549775346881694996863132657636100058393687237012075236505499906797792357864673248662607618325922745368072683123455508226652424323011059976317084729825783748861733167960402935235559180642146458931108561383227724760119169274635286753057342961694798143046743349504799379149547682846380392339068507438385431325760397507427910006466478921294530292805996763778531669800951094487680561854082229795295583617971463459106901721594665940169354899897353103407561933790408201551709696350894747770100988133955931095022787848477269044100261062743443983251739013863305301779741243530864785295330568903171717453411573207988238708636946708269399012750650113659910461742406410458640502346916727546523346656094524094095344030055192833862169899396767726510039947748943630253894467338094521138395697589495293469209807515719918112240324585595986665090405079392867684745067107985430818797954362797622785088337553828049745026380187500250640730509487049188367554624261951354924683773969536174900528366203518757116528817220660170645467220977891533600563576050201715075943245639777925081131925267148888589017133397303170515932392344564054531143402372640396084996612689224631142818564240227158227363059665565780084438342673538118517440986475919803574326539244812723574012197284332528307050454150757730092857143992075364294615462777293923240349914092566712753960679720388218802875892894646378027553679844208488566454031870044247564040576869116028836389476223415994487989012151066440217046542843340639939552043132294222279780154746339915399492906643597232337517973947520649509471528132958260490624304990871399932228826982216965494262031462883104008794565311460423232145587126180178884907978212419304639836736734439938211797709420422809571338437743132812197392970930726326772669086654999820947099763341701789736040571600612941694248673780021878134415015425933992187802677963744272873487088126110908083475434575506624477907050570837408424689291987445276137415916605226463823650980614037745931974671300480513024549191001488208204533572774500483429711177246691163880112973961186609455632707459000741961960888932282894613312744164634527223612144539574913793057147803896113131333434874754039365665525883606579546225386552193422115925155817677423001421453473606131426599649248319939707486350508755300742743023574087093531760869433744839883950690992449997027990799709433513152878038007336017319317043026327329261744865239296791326398951225282568340758628387654528140610661414532222706025780357684852388173498133718356699372220828326610888755375248673760572655723857957273796905165415804649486640514578204419611834181682673017910468063105122250335129770294197248012257415364525981144376837568214080376888620771751593490945263488649905460250257169939846967542855308213753495193565795068097819757203555329395028970418071080657637297035504990307690202444818200911549588122431699013751426310745121058485638254107238722893442320871060915401625194280660117371982502805252102777286510219350870049571050499812788067615724874408712002907820165085388876381698978034195992710038428803247644726078723345485211416027083169445484785288879477141785665660847481320604795296426002900182097639722436952353548630129241540704854628857060443307385119742886130135658697356005788839226452790536396529347014152861003062271115484479485761225173867836710742576961966762330733925325626140742613262198973714578555413235996023573596968016998105546488481820697303630031157894324117943475958429770012577911688444032129491980132159793259598944977298142032698341468231387428332507290748145576490145582989281730133551404211763042831288325723323100626821509081307202057257310306187227312664601382110802192004127303800982303461245690447049459068442309569930436001821354343965094798507845242419069073901154627609922583687427754024653288956928388478128365801389474642496179172337000281736167781046067118347206643557122689804603862710221309106718674900251332936291250472925115983097647156837278933785926036473178139396021505688657454215202810763549509481355440189909806008678440068270543607609225000832895671775086046409466315906892838078495862882177917913331200593122499109724291299040004684405810785295842546952033125603122688618008209642542883769884155057591506228501238494218249475377363470009952917500467670578708104124612420062033081900799427054842936125307418209582583326310345927546195010725787617483715359984457826612006500932181176867800943135011669989571299893327924505676101608003712489376970661402183228962003631967097676626357018719579456961193292348065375820495942041309266983472645218026703271958197299755588069400336586018025687065421473317428009082271606423771648041557861512005332193569789225983128604552307065047112134909838118821545807031407722390060551432130653334978459737348822961089211892925031429815601006608666971222582430242412600197152349019869357140567564629563573245350771119200126347148140348216891950196314491350235261228050047708763019485290860245963146653772231506250859540122234541853102399593256624017567870955277085171403527005696415794660649675457742854837143854175950233881517031279750424130680236532352684272430210429543998641164110897514816167318330296715727086570195651538165828000594077383511432621241181761542145868241369529033989307515665823137025823372301703664938493754267312051556288195827090724228383373383437468381324475693867060406667924977171827668299778566301755706354902490811717730970535701600473012955876017523924176487592827487055035777326596501659925137824497870121706525601495180767390120356363736294506986817755039861588319910899803522324636019139187835149779001386133539288981526208622681968924519934200329610741448886803342296459592186257580588389715717814103653668857923780866537266648322588904593931136314531503370708494617000689465915258389010083478133402437818598635810395280301823997818183578626265753697427957953896681609568669165489286901121712019955855251710374769975755949388445612111603231176817350098818428794567091777582019511488867759378294647552312141058539541668174816005675593231672078416202489183699573542814666396316419873643903094299704341403618932144811536512358327634214564143465551217911019645171067350324422848074192717025750053913373801649711724450960657514849201650620760080821002367520995438210466736997088002738843018068763629113356442483524022668828933058114216800983273116527040978223825199734402810939122159939071408695499381011960726776448326009001474717719840024176234839636941738896937795027724734749899141025099243194563690834402701279292872605694878147210335949466103163824013387831555471116003562494826171538813023644148201512924925873457346873081243730008563967159906453943229648374040361938928376396367643064869226136204860396932460577245403560079662811554938284089852698222583567532839551023402707524296874392653432118118030491084639501897775381029962793146859552275227496799360310502789691625097885231182819740444200847557770534425960890395287634025188263798464386788746412421288007983926093052299148581989844151449608129725299547411923819732350153149792979544614975754975663227044528934361327526655702713472928036946417921485461310693088881177163711861174194685009524814830304853233868146074120403916105579239662849171135233509376207778200491706031161623270977572879063114404135682342485776625862156554793961973360363244253464411949847751551168290021813304468908995187362556605609116245356734098755278287376114095517108192817162565678811890129876535998813647838161198345198596014336146026708861288861387771643107938820611681617776690536141123107742201820783448478181672116585483834931715603194968577017668376212530676834860329666168929568527929732023254851143811147380381600446245682137549588847932633778954154606464001582106419473217424026298271194917602692546995782309618033144416383983377484997864971864271291579810540325740945368279111190148612850309200098183126460056447941782681300705151201113241181197586979579729396868972223105935544265963404506687619871177290874263609198337563786885339708505902006722456395257987890029834532733140514727441998684863191626276805138372205401812683501171708049703491885367144558116514157131393023821438090669558095292990438925139182268425097412197770475116368191431802678339394544852008329807564864014774556325545321932922987044981686441124653835799295464325536353706000826824581856270088483055500246639553359633152460785759418714582829377669399513914827371432159820007000451190814734566493201186866083123733777641762037757063863530275561164777646406020059970178815558402173896498750848653000496003386971636813183484671246947126830697172752541382451739039875359126438646502798139002475057180612501349655894990693852070085772270577695277870942013725195520368628533527428238838341486333765871261820242475918663712358390638881813217372112938044332749475763416024392689444036831357525616491901410619891367419508117654333240813758758520661359630415734888900070809140267489362975979752386874155204070704947504568954402257122430973457974862598130933485392627988052410589182086730011694533982731214512584744489060139024768298050026497070617695543100551712353152345553212049084662753656845232038182978121878303265699889309122994778972760456270454055506591137904111885959164106815925553589467937371703208136583206582985269419931862174775370220781920094823628909623244180035246275801169507212370720281101187312649221372098797026481238480422923793689636045078565793774105591821491471908510702141370413635890746899219804833104958891107577287196847169061796175441632527614492595778809371934719419619302801985357988751812412362663730044673258615433732770586030163555915658152749102092679874307148344060693204509466142421460956105565324342455697601827154102806280602592734482131361800496329837017654093893731985402738642393394800354792982967742792939618269584977695578531047240749434556216077099882326043002077748831695986519491014184241544473580775086677151181085806353877190826455758909866396751040306602451230911344144326628673234335376583860797413453850554183814841341506501835616086914760027948842367967622949428840435863290289110315283071805446951024828240946863178374494415387259701145734027471730828847582033599890555052062959100152838660464212624913445063518284332103294236251192076420841508284847909987978350992261525127435734494418380135517462907561129771899090947225531619612164864836965528979126992685077062722201387883639840493300782436763279551950799124428546584908585836911700806373032732308714159312704414830926274131940897521581944428994450169812453707904922269465348642166550911817776369494573961530857656475115021942322988081193455785959152834526877861797678050081218620373129572010414936981654279036942425062336558148043191444539178088208735753568945213164704884689715843733134366519815832743973397103407250527545352564575981661680512140985763320798479462915626919935433369486835067119923096735412834813429369215308199612672617190036181713837580204070333204407216157768789875550463252720942052594709643429500013058093511730050449181955561862015598947396850337947623885354248506200851307793905892950162345454357736593255029628861295905892127835505645335363302226113346925427805657972791266435288107927705225821102611977846204797075038053067883157576344614202206692888138412603882130862040194129012779000649474343263363486733837965227475946995407502879168102889426006913335335887831465224163955802735231720092834214994091329169158387606937894720279277139452130995044812881714271316010241494188817587005051051581846459046120383003523061148723782208808119978780263627646356736442120351279289723531401333519219705109258842127786707026521660404583929236366082586361096588577739357504843752704959032000203104348944494291283687515873555582425354112856795772817805375937016024022627212536877776480513526972700494957424202990418107724035011565318234321307845306330536714463754621084267724235944802621616942719126467064296588838845460760237171434904083769640277207504680468964010015279212627338434638420771782275909868072514491725860770187639540074335175436694504297846616160966602175983093409689389916729179357027916833071630534904172787700888237151763580688984805609542152520267095383517003966117078973867228928520987209358952957426155833794552201685226813097045396416763210910372605609745721025178627595948238042270640693038767622513078397732817543959746257099746742044884539853041640276389953742021009297991214029994648837486346762478812782616104803930106103187840760569221571094875599610900634865299100727488133301759011938924100287578480361972552606448969822969189620446550809633458883842511641802198357174926169862128857220599832185923419718718777678307356932531091582014854799833843595458941785056448510068998432971929253993860198619781901626437446145199837697072489683940945320450328021401172431898058338707363197747003764412122543541168290434835109939083275639509365824182914782324133746711695639746128220274830056408723912181704303309179118736960965789598208031487968157794455403030788717290860627386949087010159205289620577977048879463160330179939155483174502843397845662060161171615632615081778973647916375074310977860321006495729966201860957212888822304300158349751966931125305195242509335210110156723381605452750486126616695321571086472314369770936136793021003242240107919301937056611905814186112214072156029841018950417444569229901906841613585662016878989681365381561146571371190446956176392612110930789605715593052947366719341463351518830467495969737226145383031022091049766579678683554544728164081928365077601406339155105779965423487265591713089586797027541187837658157606926774832623447468872399407602510267852973513273695248038060781536470231521636283828647813648244912300435071480222214570909293087773443016578635956825924122550630333801569260952357849421968590276720625896395293732125304607537775726118675854457225313959910480769528567902082442676762828671371786564990713371443790820407084843581611289864741461474977900561606133388007756072755209632292666053426631811748621654609118629615502773879746755683639318767282992262609293446125560529342123360598849463116359394768707581048204405119352728651641568650768734268415951549576846570627164477490662162621079762875867992498512186705963427939405292818116115904872136319496999092796534465700605825829193020412247418214606172912499868867156715569247507779948563325292740317935567515914645938008625463509208281546300811474496413360126663582250047136482790863160593044348035518632039212285131574319809134931458512988752716078414672131891906609270298056958267252830308661705173227604038350434299913831941959729780520511382771626242553170650622888320990055977460144754376156130917140346748331737033867039134637470705627275680714119217073308691897290539897368131026902937292808232209700778329265650787260749835221081736900232451263329489083973368214833502436637183429893715457631636298523621654333401242169672724373089878626839547872315814711510336536812042426399548547529246636791015786584928543940161121953624733114812037164637977588456381943996409254963191062861553185539442576423809807867375953533945996320598676502502878064707814740916538162936604501727391993601978452084976301190089964251336879778398263883034443063411050690562789196694918784436829747172264876921229151737464036152175913317620382550000607255239087582548325268361670170780225818743624330909397065051295826555773186170903587666719932364402245883411801208508879950563761977656876623035715080305784583368872395874284271459447434049905338922945533768131474597526741615052392607504670574671969473692319446415273264574854956426584135014738528261044794758791485889149088719400508389818877554910686452735096604226804860427507131208080467002183403929964003941146295693893349296745906771512417044574194809009345013720393724259685283544982820120520295682245670812438882000639253047343781213538377403252798861737035576367331060498997717257428417584748714026419541105704989945863711958405887293288564674489457078253520751485648262224377190145471211849612476413641622764528335335925749637803827064252553780881563863554810927087219581378053900560861529124154997769336247773913445317334917410516206029187888789193703945447997497540207969859462931415093766332220323466579362596791212596643102691331482387648689763082040670618105120823982669017349850820956120149816524687489898478881955395902736097931137975046955414700212581052127538349897759232197718581287881805775186006016658804288176912424970695689199762666546013272107376504656247596705227832361071077962141284167164201499193248640674014088620286339899849821527303284386505319444564060535233620565108093453649690163685899183346812790227609249490504240241007324258051220784887766074636576519684036298180734340603754696104615364478872840610420875704836903855210984403504045671322928536810184387847553783794815826527319853723822020724998315046583185819002427636205413853118385226122431135995938783785285968183152357019418323631227376302706964436233147829886482246728523037830360058574645360525706879218620251824226774499234758932412571016437909131593166229632536963095963827705805456956637614745423427319910462501395913405022957687298187539946167456883469743110059339506191858778174260359831965981823580272442816838994701349197590756561584667680130731924979489439056743446180883338591922842556681755748921134690495442685966803481937104664827460716488244643102218081998692640514645565099724844018304348733581808785887489071391680748573412920227247050762008685349635341028260770953985825591047309921084860348637130036693526924405552505368803675948682544351619718384857103606077959726081718818567704111843742745144189514866146312424356320874912887561974443123525624573608283702518287152496886677439633196305304682344797334258929559947017058363000011652031318753794328747989612693504936313529748643635441898806356270312238717818597542485168400594257368111487362537928838948735653457567826325926656062626901712966589608562931906803544468453549977834800085410843204204052767160035023726839524848195792160057507346586495546194275695874684953623513304861006182309476528972798800110151502744419650039323492071104438577195430404394947581609291577055853457842808178026406064311142327086362394796193081254645289316350837026687823188558264304374959220362808264659291967064517464154811958077985132821320479457891271807065729089490922791528968160378768549152813164554318688807474024671361029731158929943046116938095429984268640008246844101987456811363447299691178499811636578818923780813069534455586635210989987444425977350634140189672276451846713534824566536108210925463924772833477337498643467780307414447380962943489528589679075454373330270710392738847609294365952539133722884436754615428305686976877356122112528374651475789358359544570295280187801215291013375645016526280993110583605832174315459228967229095033259482749579303954385595860652743333060857792782482271608555183436993749499928002245942333384168574216177932110721943245488406179963065638377830105952306019092730454789707092106161110896371675795153395499224683097553639466492797520784262834181084619985844827944052484419749909454860901206906084922707564387300939615684013166253913157662471794665602581053489658793967890029935088799894431499961510840535520011547332058119910869892734624654908259406763835963043630531334846138667319458740352343356826775587146645008868184350820636476304467937937567926140660165644419700153120325826669055245173275442422949954692215558200137253631579960635400458214470002859183927242570056994035179580379010395459631509059688074686391394837995237673140300994802655242919753650319327233513916296716310666065831391724042708513068834779300333812662266739387801251286359379683301809573522267275513653356047700723510676587691595638463776295801191931608048465305396561460341522637160450312146257205411331549528708776312236047245265330228009801456648101089366806888027428921288629489194906846699993804116238363104626195352623663584319349395778307156843853498530766016793402677999333070150121966049717042176227442858018953678406238616618592870546740914186342141036636143564241922232518361768791289363396373172283045185740332089252846180847693252485213488964982312456747311597868999316660254850329690566427048507589690666199921067020380913618116986330616249096720498990088166159874890829797942877094779256427987813640623806993577404659794597176851252285316693183372446198950884971991380562131612056106304514162390853640237209726754878391840567912874204943129092324733862995477484825313596623955708134390438890689434326664004271507406627810936336933187486728173954581621287520503104801954613404529741761968754063387293120480551589947820963657068190630836526288262257885582012541822476715463143399706492364032554970456802775443394344281031267471802715549018144839311141090959812365470590465138631717391645107193296180893740321085742162921728235440102862774474177000771566312025981315890402990870593504319115617596994365994975344077474375328013422643993404054824134449675934978372818471454847535511016249090529141717709653384442628175390233689407579107713147686538086427088022826870155744283437454186090304085343569054755203461259345841520293834748360229178265595019927487801323135131737447630820296342394248303601862206298246071720040947711570580083362845405896964025207781746071476295561672508243232415965088515103675237319228265092370748507206379244447358663981686549548258591943447239520554687447954622782152286334179206874441157071381249473006849627158811514565803086315330254959445937930001120806943178493828361625498302117005040731561908169500923862260990848280501885640503764736177779872164787003839887141267793010355038407369550640584886564208227098752524864552118665661097119762918961003630450950101085360604443564073466449160339589164240174264841281687733552398463613471738796615218103100205082677737729570750638732541290889012606758681596721099989735365016318645342585702686928984807974997130567878624144961075232593039550590062405780361724942304831268314432113416727898737889313640365720269749634976989015778674728697375264000756841119237841930755596486499702893243187214540460187439245630330274771851125987225804569156247692911524583748852892162119972377294543399936698376852256916506150971976921371984508004419472280762274494305829035028003664249563128819641648497125392132906409647577869976225665226561883469730678014744389431970809627767746634477092998799786255541238615596515430418817799626437165227049753839118839684160898198499109391783011047784449735768057150819284136262444547061036640929821885023929050655138951156956573544532628970146524050890767375298406013343123177976982166968615694315400513266338889821691565398975487606304220054868792921530199717447485522771895974354242226789817434797414506959557271299758487949892052231294654235189687246171807667508179016169030217728312551239226463215930096450009359621081406374963354619669931837998379321244637371442261558791695677537123153047715211346723258612343210841845038608694713031937653640711345908403021174417541410070801507808575703270982846888998639825590684738902809108640507231017217068534019694257677692086007924551768778247555430056359931738239059016204520906211063184904289190064535457855163813035492100493192378403307991339138003384964600060598914357483782174671736952356681848310678927515520855761186556264650834264633484136123452671472903031721430151274139236540509959244439434253375766515176068710322798224842541629897470295212716515560785717662113500396494187497990957036124015701544236917048366536415846616227777086305587180459585659192315047303984471815714695437368721455356422697694212743254112966129193953756629664939911040234922957044512003199423985934766818682969227137662842070802342387297790740861076983852062082453978097316899548646297876536587656685262032172677484269943595402288542433556740749005670072290161951606122952131082145835420305712969854653612981710633010932458277909170928670026583119621005938501083628208647834895922282378627376810100692985129038391661865485527333510597554104052255966983688630075278852806431483830143365406248291387392030140902042584340688821103628674307306516272828363853166426031623888086152960128485346035851644644316103725521365973616666983997515941597660275224380689999916885040717933386296964155959699968470080923208259007204109946572948960668402277117882365467417416162564099272715321265220956564257832102696379283665535563794931854970527451559804911956652043711874208052156552226989212641547631944249370732534327510142311963394156108989794497991278144457078393331742471034861889886961115857159746879568577383295689846380159365142399643741172151734612752105470327980403906688087308957202093294426824862865936942679493590075019119446210824564791602874722056536421433369502514929462715173278154259243881176755579268260365815298738837774712381713475510529939755976246884562243071370122997021421711828623435578595122044193856793933650391630690479076127424709520886122746836971394221098831521465798439124915373572844259260273767202049012273800398622102142286820378798083841929058249775128004144148768859679240748457150018926977000734043056729352550689158003923352718472419780633751997374392517546219947281040137944404135005741423916848953986721480843084720085214745883345024502780811211750911804484654684233403336247852067440991616691884234789437511661767746990816675777232903390123805091837013064861195090178867697833222163969691673458253282763459850890160389230628034349716487946446235474732782531345560062836416975167670707230197929997046439697581375979900106471886736455592128898284166100039114822232816928011949544338299937483818804787187326455325099657360111341146912227947403106103682237749802429852657954031208117600068294752292494988572180567821681473959662733030692662934648019728675124613685657778634922443169876149188286408430458291181150336839022881654878001416145274240519003814944513413129711265588185380389649283751395888711258274165761165671889809828360515336587419144873378109727168341226109383704564881925830929463808128626095306101729146651237772255502763580483696153604013442271858776641826389839811155565747456302981121320443712272007338533227452782833693084565215752912850124520024763506646085969755640640942561308705643166722193113992796048134159147288071979066059831383293576196897056782791271424072290159268264783872707022954728742093696642643139819483824000093542105802859837193909218708562832852827900872030845651487434708954858991581383673705227767550655707499451259667713964007923227003805698425754280238671605748296327066035467723580595626885723641194086822976308895672313019508090792887706472265218725655983753925664665460634423577691377797973277509303611645864011200739278951270772827062773969918422581635537320809252519647442849308949737232242548874632966679990957184709429489887527219100962633656931440009906428871405961297829864466913136124737013377267264186347991899688397975470385222748573112771226574591304526918346152240766350207469783251923593698588137308988043033871157480516632614657885160398460791507638325338796954229929609713153281492637199964696456009265167071560492431727271550809715623827375863710261998012839921999353767533630545011160663811341968692053770229367499955664850238806077992908468461983480023479334283014060230891543031930899671732811386293604716324785653927824070828152000821293036406473635321555067094144168927874891032610929626864321530982306532526842977912218508763983313632874511530766523199711706388848300118265783754110526804978767631133194680807367446771644096679448774570450903765595492234797294664587947021819832636089995187184056420470439564929123746643887880460700048343028667758791172912118663848321181515290483821823160848831098182712745312204787896532936185890822712465723915818866825333713349544231770769448099234788690034605210832007447570749100582857116925791333148565478062248132175514740482080928311527853407517593392738184919516300341540438086541856077195723482061582029897970041812389157600230720203596444957548572373902697391187013711342600758594571121882459794623812017617137407943567541740506751195508619867429626412264574996306672566542982969745088835278818582247173002633401071360182122627827488169256687193374254538921888365494884056548798784310721157942996870461222660910820549631293588246301058843668763121817526056473133869089783387483478746261951310995910961401802816139447183491979367123760792179720876459677177643647634616818707264327769346156828549124103583390292142637081017326441678687005137238118036403154076227444557881139791551893012868452327776087176873974826153664643525999776011252822652955693114014832193982061872145334636004240273415157324975964378795495896198787374123025429544771063165398241938482811592586540885554968098244956736366554288357204329053123687350839300786648641836864249189388182199593091394576497793119462865418362528214996661315012130606322791243813454582997222512561445935166280846532181678497653236319069940148452853626249015676941062046164620020425060339273672291435693826134193206963328232000722353071005587761070257909171477611389172810509320708328695991434002836244533652192096820592210864159625991203213834654083660038138677060781048170952959492352943321331902325865478691946154958357949233285857246058032411642387145096566956851290889776853617927337657445844632142916102875545126520563991876342914942556119724857041839146180146172707110547998307506455523863246027703006330850327302057493285772452975366409021281971140918657341418324879529507007710318958868865146457034509433660707515516165631451644913624998295814136424311168709924399458454107388440700981567477469027911173507274924477721027707001184744747609874646455077203146697203871376187577803018703317542639899971461928622135858104383191749077140894864429303637548936899443602511482672134322307186012137018214871817091053430201442686803560609463472179094401617116252094068442556666122656464387363466493111280053372568810608177376371972898877813486198512910752041659310729928843720070597930205291640903552271713806857359850277330645365755800020690357660402111556830835322959141340673681729731789033609387817534728465692058031604896420947880682946984134765494032744401114038668446556909229560107736089722958675229563473029603971497335199557863200519142890339474703532548040124762900917940324379269282911991208286185959499983603449850084050721392528175841842341907668242811525729118585713536164592432893682905977319062655101039018591066182807988736202622522867394655333270543243057295281167069573095810481528350349734863069773196831361654527280532497274563466717962796109003367491865838955376245293004468351404052354056306809925461393255566797600432749183850190743437369366401425067476174643856480741255021864862723687129673145104174961760981490403403638456332431152816238871425437578595047610762663892200132598287266899456986969082367123878383905411816540969873943820392380345597150221242046427358011799318179827783171844455098317798711554120427032594568683128950077738126473833280242246775761300989714290779328902058041589229851907830410445609589668477757017587046977225785755067128052275143227430932026713034694325246151226154303425992683004426129987415996655392521344769341486195413822005002025034730596205532137633302128150431700687324201174290311816041223420711546493846611092057770290420903125271715620078205809917474866315757000795296656837257482959228458571116851486605707778232685376989605818723542863815805008973544423235887263561760256154291626435331378538488086872825651919811150304601544009956853998789258231380961664509898695713776657020328644260704771971494127875594218927073359571676553370049977390055489985455297364880053696196004716973104321062387312520397638152205345141584231461402839653942222919718272843812636454290889964156824070185747183233800972047051038753467084476273608285108132382210989412319478250617955103665577925778279474651010512648985142863994969536203474376582986041120967758908604447658573448385003967386079635748009289401263215354444516681459266073703334800237225809112641051741795985346282840226892716185077682437008117198472678976508189444322609798534963531684109219390838730430908261675107369855688785421273721040366061905434675538637944476986838162972046282961326131911403967155019782981282386904398279531317091154555761701605359293856775459220827432408348832896883670612135201762426383413201489923095407806299137965107423935457732472277360489933988949696569361865899441042880943475648096961061548926724076652324562466587321849918883824363558847210028142332281956640071130231879033998541286360957223121164686507583131989870014911941710141289909724611865919554335678603445321874077152334433607707932178668318780653137914689132472021552831315764936122438446354404998432742495981801640563402484927271478645417718476902751463502356840052255832404028191054206039796428527597635853112659945237896722858786603040321851747575745634269602707414329791335833027632232712122904053662749305306850962564758037132264279090003372984539526470268544107093007155181429906841239484874587328508579674932944977641300699023107745892606086823953321996810231510980835958335180788180792142222058716552369826689967484227974342129359804050910476244366570653514446339774704163156052029672866228464886030979096722878413005578383087149796518352947128382614219323816671418321289116330977463251913835234239263910525948270518708721860059817540634634571696024098283396233892245994010852001021779412253971861859705635695576157148143142559676677439539716160227225364563062414277963276245592179357812917566118907684615807772065639815217292479183504582990282900878971708077745351588053307880726283211121374297571953036514895673361221005481189696898814578562327366547960894186360096786329414069038029883438954627296601243963035332849804844001713480299450862071449498610139801291528670853349342771800963406437896788896328901476745328673615647687622077358978433673201940212347780726309177392087849951401459872932691695956306135151653935232708735523334698361560455010147850183274119142247666046325231927954585060385456184654237951491565040538812633422259932960067949539436967745406386597367896396415649221609588076974835875850109986761183193949273456562523976209649802838164400286352571322061143041240707809972336222840922639632060440970776128334097430094127618410364962813224235133067837252777606339134452825690835590779646188740934695178730749681790050635435024295762687415038113522382554511412328518243712007475196183307957543486639255257332150686899102590067959743864622530300912380715844533886293491519464311446578214491909864107502734628214022310633264536904051926647605040288902697026736802897082021410535525066176571637408822754211891203173923932147071535775947017412350439090492485112325942098419437285952905854776117317222910051617810751282015103199206613620625554953736576685750125047152191586007872219687920668613710281506023573920892292189152427497860123521355067412836918867151019578269467497627946815187292410789099959385141096363121703380506917458709285623603897832296462205498872360332033790881925889392475425759103184673674193567357180821814305096962503015108293927479310363921402523389367468833588574729977311495488935911537850657131857604733651786423955023682116802988821732605764599285610242209196259388720053830828675428273551528561947005251678301485480303429905782907027878178753546674961843879407505572235308164614124275031936590685492349533047930577334603451729145130802165528513642323180654731244528775186106242479339867434193291696962862344203906065317669908856921048761467996426692437837864501776118288216726503802481935324979476797600822411287786613999720889432629868735340504339966277150888201816635616790155412550382094982492343246937204632978742219647967844375830620711086144908349759581888650281844419442994514851137895644039204622273788796773080960423329020623514415340635751573483823499585301093100267157674260863728820721949008543877143964532026831000840007954821275414470514740416758552878870811087542054095843401059923445030776209108047810925643375725521264976202709173026110488714884892234225438447986364030993722412112516524613741519100014032084918985162266881641629843207098144571843255876204912263351101649339862282741384273561619658555177329077472543133946434004529437381055816306035045139667097653818419644635345171015799503749991950570416192580704530365587839052905593025241408277795560370848475633647128370627665610517796066819236501940639780622311656632773830810248493078793026341825132028183174637077421022588086280274090873379298894561419977213820971043416423411605295156599966519877017741865034049282622757154369337292911350357766787420611473283977820256348073766146751709267284646453018856908529594697319438546942406996903731413274711869433332411582218563112056373038841870329667266602140005254641945094821393981511132453994320271441727886829462741524944605559305370248274751255686453888617648151286202424330605389513388421095870560762936835882357501785079899861158982822912801973530384139677558268299109802316305362036201843105852369824210916466091921108567366848617171762938240011383777506582372829049632522200284468024988339077098508728765813236820327068039936222717673945590864222120098951855673823973119384111029416458380050745697616714041997060170124092713981182893117174634545507279938229525610658432426226013516006086748222613491262966055672411540242581955018118043556727109240452264402720970300498860434654007823347258911937211931202910150751200743217301119156977734494868810730539097731626898176460611109602553243999136645299029744446208646764684802990747317642958296082881783696758876639750311392340255010937795778085257057051216740975575752189370849682970542647807887816764585717943536237819900468814242236886302785981833300419993977818659178000503185826820784099783153981144966658433913424750774573508834716689281374101908047088506153775082922225870784352826800709933134254955457926927902221373700140972099458751333072627795788530819173290580943105917538571166946359011758421986728256363061464344894620247244838382171075231166481015083417947127940351929950414308588582872034701265030204503810437829090158977581283313469002625070373661059003386740897319970194380926597311340504688974967233453897468806859449399645503664330579719855354347768259647224402968114048182817497826242021455323480946700283756916441885929807314702962408555107981000251455965866706998333426760217986378802840895206670072424520602797688095745180390965019861136540893342992231313826195340307852691966304874702470372728804209423541531024732377203303889400442356030937777937576695509640265938734082107096248752016857835634658611012054987235814016527815631504252950714098938929611839607657155960437603890040801855822764694015987799365058567634530926027725486367597880174249511174377075383543935505239813506834181130516182045660782240041014923561913177409890212221078453361851829774172346307928652110942313866026525075655748833780495963991972486849413510018099009457542234486492372526351971626912424583482843882432339146180301523797337906733590835277741074287270326301153842862837024153687332232541064456903753109919596956049369718651066230519634172547740089510665306914122924922602788744533166903572403339901962892505388952966752079057271529411473924369748953981147294317825196581166327632951000194999029145082581331610472747937722329002586078554615802518904198907344917716699586506156447437337409319268358294488635734421184537882398044764334051860082939082895728095236519595028556568884205421957342186051391278741425691114905043304748478217325971856454237130838993164244223718907299998809700317757143114006488901531773925818181541236299948584079481336290664472303621973100515802886688467855679706041986650798069503449249467685666371361527352456622063585566955739773434833049605605686103647573322084041412103190712744141992695041657379543036675429172897664178561320703060762760522258994376193783808623449720585782874746566422148820851167810811617803094120622299710656865078243410169485937764370573469801634902250768489121896753353099085520817197228108073229485101624284668763338873154070772022328162145998426160069737634000788096979785277870084977983092398296129399748321521395596684136192577480574432812991983022045215627845445258806982470660238850932519363466175778630584195367919780462779244730259507841541422772719946098359350348426326398068997986828260729096483703644145747975021679622836335306081928468252719227328723100400781813019143536151262231014208699013730134049025960539729204274013022803966683424015069085672351484778619826849626962848975938704950566872232183295995471330184727452925538194535459034238589517960835782417758078536433940492027976254181575715505983911053737950885227255087532397658245673471942517475240360486154936813273490748097443060314901011436512705289902037799609092833613971321548408094860522039133081653444674591884528290489398700990368027533119309720925659491586444220002324472677337334088817426563195969118062344349074591691480375977703731845116368928767242552755065767918105571655282089907562183362801845628956457513731431267180662739084902398219721732900559291895497566776434040448710577629250018316797639505185426929581428326141731467766497776329220692418371279888658263822565090859804209950761297510305519676065668273201296175615819534489923096293058433578013585429622958084288321206400448560063513259415401710204021222198181085066799918084814295003207358798420708243642839460452441453421391289818083657888025254839506534722722440631215519233121291884590187618710387284713077534515656146567601448558403910625257253974407073072655468648658672280444357892086660991836190486466582154010159194265087553902229402367807479108532068441879452461230728241268028509515756772547856586197406146083388527650958137859721290327454886197524869443149262981186440243093310478601103366743399460872615684556849337389582461654033902056303720373260432547763186613727989152156351505724352447285758035134538620920294885473506135093736559282172849361729385991622493474971392631192051299433644574174404620868770899726301644570863003586614052127832375296575441363411550789648148656732750504601489472754185674984761930626649248674286376817896295709294796796121745575866757829388424311151293891620030659434225042131053933607547747166194219032668583018740708153949474800546740221590414268365130978954485244315117284476876109535904337254528973206450873608296878136849887532699412947596914371433133001960085145431605851371050583381646642848475335110326550776812165103114942417813211523461945865935848700750334448360453639526367917021932049930851180801702190155658085156618854708038404004876330182244502538497597451963242418874686057863570544904665600069215321288788404414552895252264258830129728161129026748068229477941601189023005922537454036461342657931967711329102149100361134535678133884973717636612923269890593803771948621216373028432838681663331486590080567364709391153416394550248334834484856530137688043443576858022685067341895136131373745260289558263095657361445554039512985092002962245678042194201840847664869161097647279900459031726159100642210137215160725028898089397106788604009164150849526082048723471846921232644367706335837169421136434035213806267597209291547831051262608352749365644998580566526241713670917859739496060735127935147978078213337801311402296576829715121002213760309293656066310121440481601881931155164641530508689917254243050079396814495642285299370636200778989698350802996962282330344673220601538051589158028445827520760575767746956824109818651254968325859895686760288052371071959169197371110516413930611171491596027730207225015583730759078066170697655889221025973716518488487727087973987409964771086260149366552444502196422489906947826639760540605640328005132628612213473218216894460119648864398738292693465147464157416632878360020523007163560817923041878496031815365388993546110434086959521873451217551322823111761091306795784050656218484027286094927712062677028915777479040101763887586359679854174830049134593134663093767566982846951742199527803617109699416424518542851169293047353002966683507214810007884601737290978948978805035266330793829159759911246411874657828817687354097865970051355085314596895754531405844318758886932631271787586087473145753316645513975210135328115790738428524996640366674624827543255368558435871453196509335623416747599734103290818527293570699299232336082868702585907561512654484483116281961331853194481493672486674211990274791410375981080877696407097145717166728924240668772941344596183769159976786756492902165400776693600841883142126885847533811646656170752910498470548056447402653605373711522595166225026054406047066331733204047718795991693124708533287355822908284995207428651916517223123742781741431457894440028301380710976820292783273233131881714046940215550661745176406702067453885241473193972676136039371265362771682824449358313082896999806794001181492891692214781931681974074162894552306564157236276679045951444794191244840266116767927504198708817461067268760359332067913260086089362166656287126513626775378881426958650717477940724203629260591487184550690123551093110024714524692205665103650252592447955589510379423056188490273165976568262106122716892508510527865666960221370124418442410379263072793687449369271720200477114110421631348489995303869497544656722623321074216595428829538982109525475779169673812233942683454851637399556434503266421439990219561085963777702352654852003702532110720587101691297052462337125932866366691253787536529397695746104992358421925042175192489988242196057090001051329506085130370019740950394547711552683941515714708438456866948943516143584587488814249709207640505216195821729923778471945995061140914864978233288219730028382609349500070095965566282583807207052248474271021970663781435380293136724588133775402084604221265545712490098339234295839845325726333998848962784798554607378772755015118287373732778792603988367718812464798566568073221603088504169296428276209170689418391754004242414513470930000804490764689898762592625596649047514021317903869895652435397896225796204349313819895833200742393185190548469360577688625629136006854461378207049150146533189485953755670093574737577939438893676108536713101447966796472842553623944671364666801844190658035387931409892795972660509284802281232221129539846837068788246432654739221866537433378368026876583443715070789181136381652559240126797328566875918104153456699800471405582326620431609027695489450228632098855790158496345979873938197138614139850078871442089727733430904954901354755426551725419251663857484898427452020448182187832849113926446218228409857263748881793859876786701675149538654382107544477236764620130910101818086174385891879008342863319376591276095010297774298399569654898492592469079221832788232988894332421518018312861478534784084861628423047289024388310635055364282524975351431573526715006822012167486865508175366603788911914385537461575231305953985804709773017351609991094858885266693197438078769767121178711472375662535867975131917614694803746384275529411490813596910640081696648955968814660445778143214015546934743668772906302427762286818120322520522312215111048933268054785353473246012812796383741962315693170850029985088905417009275107935004465687321270443544903735797098233719281484170288507650291401992552305363013369429835463635449046248458614205949521650967973321288511309290435530381392916794801748360465601149418094579116833156552226052193545344710911791702831780228439813137160174586846923082964467204874904382596189423840282721447029826121897317057852597102958061730552353038176868967325229146318076170974119535961606235456278517555163917356549113926135874792910447555910365981025882789537561966410225395076599106624826921658296493129551127489133864016984279158219767637437258438777323962763768692453962407586833689815821081216477080714031393873724621213204080069245062805745852829106514843100839170499342178232130829274885942647946297265810618093558477311664162073505387602884484131365714461232883265862982355889441610242771716644492744392264978070122930243437198404062266646409805429814327286002218838534288047309804778153319300454464323529759299324939465224294044861747986978807045350035978580143228075599736784253130738672706249052838196406475502818742487687214616216893261309845209205510984976851622441233975802931306953778463170873140611202658055650882600261408921395184924834958008989756023663602032528244737002270154235953276673049766857804517509806513957127276333863455859467768379750478177827496103518967874044913210287545508077538033413758342338874968041284905256297545674900726210697929903510232686526831370817935890858479833787847241556181061116649255346739012510062274699945084540340968442848445338161844289449831081691369276312695768622363620003819221932056736859879318673831516913204987895035877459538687730737504445143499822222385283862067026863323896700065417126806131757697421195873186418454588432140220334285613716022710358549001406615039520131799753776515256023370608343748791324249729452663364690985779725172632751826500134719101348867338351647682869893481567593783308226486012166770371833129548212515809077059287494605077272520813853967117953309984194431905240690254794432835608978301967785135256591369860337418483116672399996276176458272589206604996863686169177464965491294870073252940669615146236029933636497732022739568052971971720588834671604434695016471967872770304694900183024722676137544413379680078888902382354530338229665834055184673046298122730989675038410225949325132388680771349541741902130179983955462660284106291937626563967590894999212928578329183277987022824733657286857212695860613123712371446514609835004372152539666271027769218083824166835074750202298709774696538335264350161649936359191728726231282991331879294857859298472126033326172124375591082803032461759200841421492652803958367413358878709918063663766065118128397655523438832748559261276962011332278973102125469804450584311742665875064849559480685969477492388089260175038506546692137783322959267065155654520228611947407085441107524299533494614802998819581190671998659076758586937829632437630889842950216102106873002106282863711502272261353489274166633764371647857077051297818791584040514828486632432088081846695847833124156906028893474176630603994241082141232354433260873603834886346066221090686783937557168956526631510474523360904065531390213822963518504095807245241428957385881688231409243499277622172581821753832537410737165795271003299475615629007562655861010658500956347332106829503742035977624397594669721659679267407654469170934594176759970627472861846521126968173676277005101314232215321766516526911748852360775032879861972934044437086228352688613929167622664536876235286260335121981561753297510635930958272284383494478029168093329470133764257766839152888078090562769735543059602554413229062197251074802155282805740966513274041601621212408951643968081763661355009300733084900206014074221290834254902749676260302068696093495746430285642165761337223766713109064452721637580863876129831670105788374383394291984587973199449061138043960770660970797200086693567098720345687260088745832910720854880333178510328180252210332916623387055013618352607254112419465800992797557535687951145707631115748308415197747214937433667738830952438192546352662812432026975826917389414379435639146371810775892039269413495466768245689540284923726355738114892470641948132609325876023300612839054881714822222462119302515518529733216882307676050799470639458072458786349458264253039427187779123275244774206505785070798821787318657405210479342069245431188592002034309521160527035347890814819687584431653529139212425005712260499034734124928646339462811413014976914811270987428461784555608009073404019293142315641973585577495289584382544967922144529570422898407928794305854052610351552181629314893344463000816164293778896726072197432345272495961287611955236747793624507298019740218433457415989438129330089122328784346914294540039274654023007617813447670498916748729762437085204583176226277475346569932141352229225714760470961356680924932732045593793607786695433531659864860720225403987558207678387537968596607828185726612904173055007721902554354418241721448005669357298429313965541517466466100550849506823816648728501362352450361070437716244646549020817217658864055302254387267105579802188844349502100765616487254696098564966643835333119559600325594647088197197766995223661387576547475198802588903638458495296673124959222114223948769036454714927504682699757944843766749965344395718888241800340150126517042981264935835836120705047910636444454040178288290423067260695168507422026804199181853966479038735949254368874017316028523048228894227295500719312242581662383780897367980214835934524950685706921917120938508656403694493304203603022589371797091309055840175720899808286415669822715909009748999960975473417719197340630018423163876038608216915436549518400768362245927155226692873893814627234944081117596810062298946192610936114925410145977140874102833791694885067642717625819676763660903797812483365348890214674632687566091627987898883764170353222768008184953576824292278757652081075623915294027663793436068348200867792921767569719171664599379786636195350525774334725621531139225492078255516084809879365490987752200877330863690047366802655304696135602972868204615522587713274124052520030866097051000601283207767692119837901762027783233675285876302962844257807494886659475040025800993165319093476134174722379400763345537152957430350243605071760200761209386996265741448758128290486649750083233846824419741851643828369022095698213229132658978388584002503616022259136514871243192560349444118025327327283527814782184532651898056122892592640892528280158965757658486682510332093252925053577741872729018883334945232404744051559644736772013343766186728470044059918147945656132297321531513191556025025099669191971673138927255236870418312120277896092922331054607018529396558244795928984848902932048741119557363190543624915491446473848551081875817358294801766890752812192561993686214237765062411933916349436619144080083942915302988371027882139402083165802725816468234370238404108522994493381255288685313311532603873443428314507480669706252746624960973583673788254814427897482633545632187623133470376432433432750442643870865178403097445076202744377887597603453999602428215162487354490329876986178004265874376661873734995385122428207062628904664472691066882181743968247644868966641389855902448530124772915423296704910633532149819963127161277718671111512961920553706562038334960221678003863931422808330435902354623197523583205758451820268210030886390252407408090713709002369139247247998540430862865316504790382793575637230170410302183294689639731560216592214906057262206846953999673139588770047283227262699782751081987756826598862879481257047522563150922606264148414985575276378422919486450601118233211698559141033795414771345688278512952673144777601082396482145190270340157544284864164536099748817956322064840114456293389553578061587143806490482152676193469223392520151200834931428927907371360088667962788427002487058390833879009155849018606890198589557690210970725647162496791521379029173823972548773665805312063500099700525721634346971558065359843045070279635996210769497667139780751440367609965857959117783241064777244235164944707563924649427961745888260683891505678683498220718595954005856607951545468295339973390914434425614742340114090667597922761526373512420357879832190994331788878599979753806590567668639978710372264179182371589630961849848750013944853364741957637351563629779250601564645151010365540459404677262329756954230698930275018764863574935522065862660538560846754217335151773979286761207540878271762064542896303065855438383996621068945969101610649740426757602052806178436590277073838266242646314608601126360198885404586748529241394782845306986712488698112580494145959169180621209723205138567618637092904188297940205019494490642252125691685650898941145872427616918249385816419967148052412031160795547824886050070405105289026471887490927160150083009224392402154094018548024663128884439696872029076258927333533233222606550465033058543642637309148512582894706429693861831618979376187676232134402674838934797447136490711115805812943685985151912610865075783980129989099573042194736707719856568012241688978226749213441974355573290285561133486452453961648054564913406796366782330288284446201900457926729433898404271749892034324434029868528181692426345799611829012004914094698986413352455366670224405760594226554259868361516941105630150024821234582764134456192719829225646916865902759802566759065295990464356342293663455674643630201726188714684525689671092759746851438409537436907700823933358468501703959252773023016576585939787594267654454293235349745470146541838540108453525918057356817255776428232202790546687137392827646433605494060675318993540532217784255233736459211810556995637653062775047798139148869112146920778773586174648252652918312855530997104656981140251284722877002272717429887448813903918477638994216619895355423296952996173229411636659849510001185706109920138737738301633492495533315733309060111381455128842941161476360295015528824912095950413824305110090579418238234501466080494199461360375245943373548635271929725871314033846816811658182101809205898900740696891670789032740316160520613787941323585015925221206263235240219632023419831105613873313106033274015577921064596291399656473006830265864562620690400075725211538591263209403014028586003226611595176429943586770704787536746631404358835484270534035351569090165512672997717427251778623950113191387835089818093183506526938744483252050256439536017226934683577797549268914987388884206908516481470772771701926118332934258811020433023739681590714236531410254520103261488413247310700973311378825109719313230149975398359100763660622438400329825603812633805822416144498151949694764345202063087645290301230675958051160270958168823523786680238445918728986066690307889442613167908651964570478689438447551161469363755886333218520057434491213290515384254351465386519410068141907103079795298129344395637753163390490505065685397630921635203283191502707606481204278629837804765993799476566718901600368394816921087381117672147690882809864540792287049316604431797808457850847787320650548972529979811106037141465296607436283100455302872662418020544173826547431747549844601138521574565412137179224866504940306537034065238701853147849237676156919948199056436436606387771696971883235732111896456700154142594694942213879141888832839125746565804824575640320543905084561320710594876615389258106751688716734669374155846625890919299283411379483917490492058681638450243200742466319284394181096622328173073109787049698869447781431481782005303194035394275235712938717623195651772175927357282751112163410599227107508210607725646053235342246503833263780722288051968724083129403796043129265551999809288275094028750723091207450565067410515184581420693776664710748373446148400164125364642667220732382980647140276372783004160311346349154041007455320311784780199783555395936543062535080863943474727650535537559597133655469099033783740742908998894306152283060670248106592437241843523295060461527850122176115646831292930754700822578640721036057609215967249862650275940254058956310939958667543657818453276753469064416020034577978092803693455006188664869473004902633153935119898169088809649488809282407919267871456912143503408148353819854254463850920572710053023870226625944298574972078865288880824867202581648436839083390636642194769190592249275330989299793129158733031476110492852062509862129206532070130825944002699649596330190724561147233456303104187966562314369630106629779663569536911585670893248375427175240817786637603622457563131390688310404676398221340752943831932582512151652805556501166587142456519044685530137953600662480084131099339214465841137422608166093686733450111770847778025078730693304139290290876235669901415386076818746004338074371207804052904216604708103859945722183327286068790042396224526230762720749168210031420226905220023282202213927630811216226373686119386763410476706127882274982042646250932295629375964321280807689386684538773542133119366187741882070810036018625686220284997425068966185991010270749845080055358334694581318379167695289476749944780908533611626726199282552795279679086950743675087596965918739146783160371116286249446544387884048083404666849528892897373265543660020283893583402484213419725039628960258324523197664207214975663197600897986657934970439632339749742105959086814169352930039707018653734064066992301092301819508324337917360519132173073835807849613462180364422653049462030025630389695058533930783623353311572693008330715234676078717833672260390371796751326874377823469261365828585923848153098123136912382604440770903459576470452857102361614705810124424504020991238456589189578234804669193379595059119658134642968405621166222307657733930342127856923727631937651446389834674525874777276782595558506308640241086506125277685092625177509039357450436029698608303314368669860531187283712882643904948616539187469352010698096712085784392464207482271707136828490845057766582150461572185257861173927590154021903751956288829176591568764008753215416475060749724719237430414103580460030660986705510233344693894114232963439694758805774827339516798912178013027162684845496670322405508711867902842705721252989997863157999087744786537405181968850516096516381798043409641985792631799484255570509000180426575276146603394829289717461593237990370121736717191898583707763183279238687385479759870003886295709341261506943817267930012173354600741912725848318083552905496089451526970329450790621320567724299818367622792165833606829215492979479938962530767153274448101102650139878202743431800928604797582301979984129560732522585031931508870106736690116877662373788631648770868761366171161832177595389048372355241425809156933191244357231827557755596467405062912375953387871055922735092817144732880857851074392436890504961177570342433887272717817404680833869899842110140728895803454972668192367683833868333856731826520706930646337481425838146591332861074515184353982237935018540848844519934672933783664462430447015017515959414131093114436973146872672062439893429639307158164601976267718586416081376384028423146520627036440168678535917047279460491172227143205662871403897012835189180864179884041630782933815910330270368062285066979347610697558697834349510118012605279413490179787086324132449904107250913356463944181741190901807249624362275360452801508954229492820032126940863041071210507360173115026183259314967761701919139058940330365333140952063393693823716017084163486908316785405296252023005278787444231577515288681936294248467323456257945749073763470466707287497686307299092930296064867900592784303587802494332206499945054807402534026123546629740895010471686083822315329858116877082319737540446047579510840797064025896507181418300553044121304729040767239807815218657515646567168389704148929762974425615152797575481662696156276586991988311155331630905499179314710261823145836100326363304342239837644893791026174701733266503944951496305696964221041580833393253434775984885104644377159915905358729860045547610929810586696376708752871467036114775422323996513771124970003402296289751786306945826399317937688876017621882726684865290429837875560382109660279390650405130176733542890283726665639733434777078857084000835789184530884495582650798336073689008072239863049848796768109373381090840699778107340199223549381857975574072132931781264028510059856743380583795742041660684308474942546531622437627945607311641903913668922644786263539394936065697687680077106678088503124517693763177328922563795918995582286410072388838496432303064220798888578185197324532495615268436976995836617821759507490097149299699140993846648666006395290283618147042598417507727881841431786494857859217822072563850700724663347450257935222677459019382507923153781304303155676547752060742991114502946319789301246935810287605941362976322196405083374828776882145942160775451641128694798593296974117900754653126537151658616845861703911813472187356859336215742935745316924705217279626318066018668944543033402533004070363311608428549685479427961411765746807873721513142948766989599297107306737727232924560429944167642003456057824460785344885748246327383894173398559023134357368711743738388551036899309790586727787667516407607697275200052330708764297213377053358331537798100294783582744768432887493228727798903745974896631319699268089305097685988224448345925300969729246035456456247535122867616773862019026102874705699746562699781170281789322237280099292602766914513038185276867594091901911152621394060036960028465971338313312123298700510561432386562756483243754125932066651727168503680089859181560515794586037276786027797265475288093966470673769601440714097757588466157501999838719389266259420508925250644827211892772011071962576888793472960976386928308076259738768793487394140246715166463976292928646743652709294547687787104229541300814728556349845440683392277422235529468364205995160103029278388869688758189263664859912969943166183500935912110703529740347961061039018709288071570259758250497218899534427936601025821596201303640069776820870146731119396803068647226024287322635507056267460458466247897572771450484267996076514673330986432773165013216138407310697791971849527106845971480664769175541007515072042966811765774453779307983057856524195299247854517689374432277146732894807056142986700298645555265420690643241661883301770050424973104516545640102040127913501260818958738378267034157090965864543457245930766022168757463700815542149655217499781432166576049314575377029338515928217184551743102638367048473969255200579104433023527674871102104642387894185791526024838609779252058961761894677596815906995062463341150097049291294707972020778773113557831348817461961061838679749930038644732131842504696270305910340240711910405463195678832748245395498104152721722641990387095923491842403585509628386809298119563823241259548885670238668973974991400565801883641047192406412695193656365096652022646119291243675022385418992692146546721824723969295054051209602486176826088930788403789270386455827025002112687524341226731955135393764902297894762191874917416899687093875506864395383795648077975625259623665805097433637120277404802147125656482982782390459901128593173224329868061487434418235346311310084766729594263603691180937171686286173171787576154633585613992669100506583148381499130577199856421859965572841474494732154571446093006890542906348887804337373985690319288557143750674788320271076744364851320853361580085355834215982861499750740416610981530518030354849575767930302234514289983600319021469140395133598832187478501552590968538236693706552019451118918659122392927515112065895332789571015805649251661322773378557558584630881359421991281497435144683554706754515371330243077218422752146051429224692136495084101059742538016889161316406037370718019850708833725000143709608400176681408053848607359911246049041643222598515404574596153046151810879268885772944646428482996924315408763294185277302785932330145393971564708318824038082894864544472208692544765790451284165575629063401681813485604239908152851101778101282086550512018870390015001647563766586636783939978038592229064848680115880382620196673488043740964801287035787162749934841441696010214119810272691570465384524076348021182367067170533143207013894277300509137318844950722195328616064500127727994228602330639238324646211857741275977056970153192242119119405236893465305992058502623108552197900277260541206704831286327757537346004515697931268515350528895115897005726426872096484145096055925821828114195886025818194983704519993801672248732021612136440566945940896958284895430433831869804266304381466820515684245666409756810546033370398308458368259488084876223966281754213396094702499909186048295136172522865537743599558984083796644750554751723981651698025925381722104711665509195544736655480800172520764913177121883091997143454167597004599992952124133252403213716383410038951653173270348054552915089752600264406337745844097876778850675198032672742512910290014760023446468359506944393365162507503332775035263796302513388291050653343444246068537650628838395142341967049798480062001757492607724929381992623215094186208477712967617811961770797027151077361686761939220136796850222366895285471781636048037360367080212946599369600453278020984819345827804902716036665333622187647548244017154283170207448468432123964997918217473266653429325084886268596003080463577747226694244314679670544790589982210241782638198020943086779784095176122790819424682919979920496858325751032896431906783691953932221424252636361781534810700516433897834831377679226958800430338214001476390812005631452302976821675040258290611039910434318707792374658825014097162864108976666731014451763204630643755632356557670138384799199731580893626843998975118764898852646720181733950408271618636939098022712519180112366367474936308971698658275164001724159541606377757524775174104788587012179179354968897994236780395572740627904950331921866189309796143459235818969928532613326984354348800477179526495151725339311606740306871907086314266713044964657357300990030506851891704284027093784593830007466781791395635201600238563746192997726722725780017897760779228149069472637048907691949998341658715333248009854078321149466824950708063896811666217451979741035544554382812338891048354298391157368667683945902513479041395267966183943834736917004124100471223000599753782833436664289843160261027419886535772556801045557563255967971254571819760438880114663465320200862111612176019715909994502762942933151740370802694775897600784524002283029649882368603960787837637651955510713280779725071892953449383108847490489614488031704548372556362707906792530584634085231453387535472735716161612734887925694729907405718881770592885942754290294974014757769017255482878415163817395860259421246232371524285662919245020814291270865013815672282226872051746051097425648836602263586948065209792499206048846728172489995783218575876155324395486301994473548074135896212264189835806171676425923405958881705111051961617941664545680561695517536623659431904471595272737366747461831616368533189045543874165038585144560965011979666083973898489069498249060629168610392959007299475580473586507137075874216954660765198870463199665182986463006709991823463526159256300127415350104985279658930714409434502820366183235710314194799870273356799661455565802149298807038803019186532117404581536044151479690358730137336695214304301558464999870511331440982623144373310614180774863390167550332171563277259818559383554642470173820664633712295876678097632922923460711710419880699921910926466272327984470392134921908053229568751262210081840772122471670218678122703742479145224582077567514229626210268355342659449671174210053695163121423064747569397610343867945801483098800040721612447183872303289021275308836429921858309736091910287744608311131673476018918304233262189846975416797650229148516684021979194050614808625632869142310179454382238908020369776965619263299047259118531202515746983942770783495723777856331536675179558098031806053593502870726629414577655752348270341177022671184885527474911510165972255854835059836657392964969276993545764251241831143011823654548270317183125605987555488255202113674559286876386443234130310979430160016341208871079024255314088285954620171818637078576210075574278357481166942834595154212325219172728902349242558885493724144882685075955153123724709241039005929743541405189215898854775034174352085519046350306421075703802469066507319226633977096238101639702029348963743532971125915622801898484142899615513966794922045744754407987062494821045869309589922062790111524225992467587721220364288796442303401529158252585568462659588941393124453237262021083972683716759543652553460629126462548590680632248239083919985980320593890220099575605168091521008053534658299474036811080332481946513919316845738268817110466826484107134651369453135329168894378330818448490939213587352765000606622290281066537710240995978338477565005530862702853610080114556721909382933920249243182091496610659896569644556962887684245571912851798934223259028452022239520689953049493166380583863635444563432258355250202244865446952539179450693483389735272283942806664373961273135760301896741468728209161879822362441457635878870488320784273766075787258150296899798242194050495237993914475583369362742608996497576891877596698655580497969351008360443315104401646719215500097962359916528152654447125133669157076723794495130132731888803188570853520302806744826013978671783943997579252490487496707046374584702312695361158480699944048003453953551779280863637443117822766287423076356214946572270042161702764126151590102710279451667934584110230825204305764639247822067468350474864886494073367760128078403401826740732678862401745060203576593726672320289923014875511417063894567135580249368603769529750414431487193067711541551484587784136719475351137063045884029251067868037140227107790836237748839691819506841220454687106334138160330297876587108911432234436282502323807189653212494639570824730514975550185713435370919122236791190735038020206252818202986705531570236162697090863655798301680897381900756311512890408164947156824524472694558487771516880564841045825695108014619193752087717850715748633980709224418717000824224457967413278354968064687122335288064153603939416603400567607833122907311319987487245930420911202714284884164030352476976040273386068789695094211786020936358411307882541575673001660122031222327736105225378155850896883488677060888221669154767984062309938250668902351288299292775702907244513652251158060023482995214665066017137993026608458160740450747469667468403158124854959424658100133681012078886933359572144810559186488769677534033964748800436104427098924555134648169445841650823503645912407486753222980336819507926587764798976537537366362745965335906179173380759735100511631990186149394406746135515777814680642705805801414884900872624060757290141465300319261717347282346293621695385241509265406387271590913773472767201540498353244711988549094921460481059174436275975904605636094346023755154979007092136954784193741992753615386553585542362523854791811833325622692878215006610631694956760179964632454430356799895730435245248221653061138796884557105146730422016677690785202406192862884601042880629985514277858392148346320123114532875615403262553427950619171486636486551281264872132513478364807000873865118920717574141058177574446503628756236915632699699182710233779585436150205582042984754519326374273830349456175145383082752878550802513235573063676111313262489327858103789635130293059930406288357839865752914248645963427646459744578962188127917405093007506271824367077484903473860463400058458401349038735047942585263337644845948408674657419541940034858500674082871818994451050520334519245129775169152297993258252536684769473825959003417583923464255253618537689969197674698031055399755088818907734281992274913016769377883715956585066490897012784729637693644354858109811380263818803112924912339679219676296358519413851503441661044173652065929112104359895506561382463049681514650751112628626191741511750736952294462273112808562648610306871367746261894643285535377804316435114535991543432881337678726718971611104644615121650711576159927207521587436107098418121742184326161354847530646937908439157109641719580081015629258801348700970994176679842275546638626720927315767768983557549523310905362932608242776074580708409784281529233551549529756971276443220844414156432116625480363761882088317325732370353982152441488658475402606431918894463681015893231886043790239946630578392052871364800865742912201373514128390939452730511080569964959273491930538048963557155253888311147578278513248675041416617492152471325754906745306840310756490848975574336189044881217776983379266515997724326011039639275086749684901099024295725976577784497924258142419505457314926775973422768615206814083700003173024266887311972578262087944457025792105080347632859987252617305106371663636481369280954528645244440102681786743807096027808868132545651481544787370555794524139583486597022741127820946386944109667489571391311498501419740987570103285903995758935986224532962111086418085825149548966933279978080893269490837166347563114109469114816917944328315852373983347820230748285143584416876612868147788218661835517873332603175484692617106440153191562467007888311660793160869604457019613431529731501864313693209265014814700520045544929819058366257666499591787878487136569524647654696974385837438922547817344501008282341331944380480429153298225742341595591418148208242012665037130753123206109704708752107146018653423272214515791785545581488828138945630318952196333238003699873345367712345407168159431712702229590431911323357495524254302918736778538015285632658200215800995267573363341506468618769037457178601039444137798944385358332236165694634022603123151382704249480288008421023552795752236611128901680531805129098367579815710465697870150343898484039404938916109997465847207325332729821464487572566883460318031526969016648411818104631804932720923984747655589153975092058712393131472728308144038293195176150951715312798760501221083987639168810441778765106501838711773665619314341126521176907203410296487701676035183428898440095866235334889836616871602221822888880072565458064971818204762001404691848109886192127243762875597377740705857512086344161767903723376338770022349059156050768261896263656930510828128871643436272815145493069564529120266435502324017380785707131725696929163110137171581529866871054479190022134690809314252654590275167504831552168146722144665099967896957375766963268976293801489872411694142183279912781415602293936390196930489851071193429572962604493731980280259796709414989214406247677166493203413526468529486534031134601090147588293992040247238504567748349553078592325391534953904042828137737094102103354722463000762815167191694990138895933612808527582043740316807605138837068790511618804033116754462867039084193863700349921547753482844115259933643455622207709326891426593985855043594059736083164246754029118205730688139203933395518020613672867208951735205985652841046217667566599341961547213482112689895305305914075269554954338169693346146550044279292784089598736884166038348386397189079900524009503736888722666606631520228517481052638203368835941259542748008036642313325669273515492306358545502288273043078441128189452042654322454890403305290586973433775342783774420466265284876940571569153112696459472740835655756775205129090817376259371166327320123860639773401939212834790743310777863160259655261090392351189487733963485248298596139769805064299937908290392089873321203229454449560433853225971207120979212161812609544323690368735530016510747967827190500852893691259940434409048117319988424415572573977135091395146584816537389432141879463811589621993265140685508100349643328444009342410516303973894047723104820015396270591905467500722844722026496549496544946185708447012194684996782109531978469335235919639036414041503776498258603655956093757229051038138984325854580159232904584666698322175900136755799792969723646259858115466113395942874618785366681142152600454621151489142671683058922816690479804997245693778393791054966550715569988350252042003002842327567137248871626887362126986804417254107314806763305009479031173641047753324816571499413751166203180450440459983261459863983948395125884452225247935281774419838310879963145672118034586015542013096105026082770070032628637095834595332779050151525503834424039161165253811041923701753134104812479490465347402540421312419823018937607246493161833069268564692799614602840933688322224517337991674402092137397854203228759818391445578106675593099059537674883882220983447243791966637730397683145203109713801833954769442612576184705184779055652732603330509698971197337090877249281747428966039211606300440240339032921571557794372958631768211247289861085426101850571852865710453061974881292865740302290015025278657565686562631337816162390203512628404054170048824198878884060983414251582769225286301259076686120409051680179595150079148823865971150831372670141285165110021561410218563035057836238970515941438351702426363767098593959693724773835246497490144445575100558242434185988141345675808114282212321872933707584195069529105339471137825371808519474966078761321605189736213318149205762464720884805737531587325831457453071807665538997401972394207970549600193946246090722374322081096101004930454023120028170830523510064064502437186563686369291112958646030691283077930843866920603805452258712867920086430189327057090136251243343287656093285093122845660828740044601160879394433051993851119377639423789794826827940349864190251872549746852236852838316258018471733636637499308355451174738780809900784866470352286330442303043592482801330563907995382778135381629823964424170972753714131239647716170222797264111377927266069039586985517592981642423995852167773290880601136875766864782795100516428750216176869989492426791499864116811157322815088151917157198260669301577278445135001478454799353425360188371621497384791838963551489811613719181077776147211382916528508832840978988856731673747486409123194156059532301704418516891653640553801857339807120217062914907759482366826461959857958041326982339627586546102629202173049855459132937614287148742327664758400316430835245426676862568329923247471961131138292112755409756126832567596247287046971648726450358437482008211860098092369129215177844934003898452427851332641461701732586959199013387113929992795058722228536231408967382187651105018186703921395177623638292672720768870091396248018257865107967158158279352087281381913892542703754364840707957850749562001640158471382761015626003825454965818813742425792762406330358588609564618170527735223208791423842644372172117373755827003160106564967544405979620195954330906368841961231202613753761717182120197354847084398352405179191430597003713195362891492701669615686019131814212971677121463334256016385884207701760365542623737836829656126935470777719476966715735315129824728736718904339698463646201169596690645160271369955207085788687479857629140165991559116500595946063958944827912420343857798875707589860370634917272490292446016417123466898250970104352238222269822748003079771953322439679604191659999896519289382391234224442357908257255481872080325453216116335897430759772426134445214478172160245322612087230221650837187696275333863112315787846012874610567942536066906410017567285457817908190729391646165864288482820490257373516908159871360931466159960872107143855666635443677824717581215076313298972731318584369538121584167184923674188683443207936591777693814010733271017536896605016288393307889996036724575659296345037528223538737653446950258575420777906032392581281508331407190694343482854099231165370986762351183654686962598081548939265747725414983046798738234225888410558964650780503202260144555064505954120278661575865748266073727861160231698136547170998242803061233213944944689971370196007414175578181022329657110950468143228221678961086729718908854598277667498534766342141663670039577032748889499349319082435637382513639696258722661980280207129974928537375972642962254452063234595169406981978201180724454110787318328348323092736274443507732366401520253252260370067382544778817039301801054317752600347027502960315604359592707490322939689660432338258678874659392544373062337540004906695311326848062626527579502432338716837581179828819646232907868370540987032791873796104124299465671328780951102075669447382188503473277148113385080187598820383429419787089524492018381479608498900890602037194781264633851604517197753245007848788924178393821718317475087719062494059933342968485135667129081249833224325911476726442680167598685438445456139914855152843873938198999205659053343028045439117712223626715465650457719210181702439943528351433303919458081152514824443108730058942912993661191969451371280631918185740932301526102324943336303517368599483627653582951091736634630658294548228292533246837681707088650059189761919864561820960281372185178804267649754068610873368381137437270259752339316749603037531172455614624619474692839050101523853860600587387057566185229934883333529715223106743067370613998935972263642861617015590411635211375779414881875220738262934837619710303442903994587206865064787815231043451697775616610841946007644969359761610519933657053514892572138619904586102497779589571757031223122611881355450789106509012194478592151896263868378201525061292812901719303029499142731506952345433627202244845091700464127172099400802862130625206572435021821767054158738839610021953866628014180217619223307296446767011177913683330376288198620303102012349546695079697422686763435161548260681377230308013288488789835596390641233283801264374668557102059580190075204436841046943559266359570896102686999866875261081843882172797795796987700826670165808716372151309049600843515219891097312701830931473171464413806058002496109866659774304943084172259108923108358005768698387734745050877029740967815186752654061880501177232421816013028452668979569606627351190528717137243713178120217230872875763001473933762757558659617648432054959288262651326023658072603365234612973602005386670031047564005547351427506181595482346445030011745829119891666828774091191016078289430033169816292187195735784603084493651074426193715662935843765478683422269583856959503996892489201176791701242889382202054027503307545269253227196612399589792461755988358892854038982933596939459329917300339411037788711171419373862420295219593036280335924605107316299449808781148879229948298665765962816686859450476279420808212729562910352751924400151590456281516076722212664375808379036527354813987210886379963173288585297919322263037272330407800111866918627824888833045065452254357066002592946128395576211814627690809491909064939797588244715329321356345482189933642486361453075478626164484457842591629742714926467100136442075774095932771501505101401233064894102860978671102376358518225579766376061216233788483262620042583390991120349057043831951570886143541258293889536822695661042247142648700449130331615412585298842800584194411449695509631494342938415064180423518143087896948224114989879074465574446578409093131530061921206037731224516862265358977253609025092985709791252076420805246017862814749641557383253310939541239373015617731563818413127771152573632954744665892724463493819559120579964911654728019051925277323037397011649238031249603592742318885999634481892389526168537206993393245004578073861920150214519616143399141364520861431422026372670302095910712566780735807799995910849538565831556665584761117117386540320393393645530715702842611556151882831020403655664511653035352297131920526455373143422181207778887850735019073170499229887555593432623542573906011971769881187139461774722933301816322153948792074444311067791733807752508462618990874421732753170419446819512850704230804012525077050678057761624457116649865246536006787253023882029808929366322999083381615576881101745960703285012907127091115225345286599988967871253646024609558963231014853012256851086177832996385526236887684870730692594299978101924334732497029012558587281717048539588513877061403356311704379535426903542684018341510018617439548262879139383851020005007912914432355203724973084949980372696720143887956634692865243483320100270335701516273904325535817369738841543127594222944033285917952954767754285252185701628925179229294108823790110842284312316786425183133403667259208627867264699310654407639143603463432465360241164638118061657871658438523131711998438952833100797137393394346114217251178985475131061171690978375723445703013268751458498671884977300292779094006415387451837431969940870055799772310686747913325807377219830365736179442707632289900753927174098300072354026451442243750628212593333530499943862953728141470182274704567761804695469006280092643987692714826041622353276941657999707451875719683689635124658938379158840815613205983404726800406357854378446650454864492505098070105116440464464997629035729147212631871873488162915498754402403274956204676691632119456911716174207534402003663349923933050087960780785279316103021450200790621641244797973546359791398971333257683809134711055442516514403954983228337118114771691977475708419605560879979303821567884363263900187393986765318071376569846284699782410601689428460413211039593268259884547150546692615882330108489015721608021012473082595641086621164576489338317107692011418301357946897917496436165081276437694325582223176226682979956278675152013873064294761666171442263294475682514387629455857424500429260600472421730025184558630064446660541171820515969232770355187023825184027841063769544249857724106172676248381826978256740620762235637261901218680047018501968024472381587213793434161927108126251848599500404004870598428284631365701064127250104812555029898443647500292229694393549007283119622680717823218567433154605911157148277397068816433862183139829476681818524234775583787370435425561383103032364432578565269470345258021919885934787694412025409518415744388840597301014860433835568695896310367621725850297822618057832988978063323026193301267445084972402996777103236352094174666831224432700683261544173850320990134692405410108884614987131890414115106170875053620835871038454377750005339243935034249803955713772715973352481960920162405382002949488079119527917071076650151471285142605107902266806167992034425653851260497609211142303138110243487183543644908338072474097947163637912866862833632699807295274557397680288549065713950879135586648291748644753424841952476734956789634876526031351628814128861159309076741394742124032381876529804972138741747796975891620369847615966035824600452010617341698670106615043570562761302479938758177831126790189027486648723813306824858734124534943130770642556152460629210898737029932936238605035094192290782693243802186778182183223413413669241040765542031576694047912209731524419704216837873345793630478758861721452724167494465120200571995029210513417748113537238640200346963689302900969170871320630800864865864733724454541202078848656512621682336882950125770628091619511823089823454896696158013613205457638327151478592050629458032852728578113624832348972203567722390950560846884623208609053118656606359007689965954550506713423409893398531154799275515752849261170259466872424013194258214215547823323611435707256034829553764916370171178972494806739519610255899418118208059615685159535870947250810272668236472907020317047969203740730126513506879877291689013621971149911155054946388618486435638358041536195331848912592788013937396496259623465763237719573797912094694590224953582294192863532000979129873140007925935306423585713287043851433299979366883075849055951268800962829483525069072749440897501990571468820400893125437187292574220144011859893625893298709082759492862969797853983512924900482322580124109039785035554013405247247254406597916370447641031370184402676467698427755246318606983448911060854999853043420291516530824642217865429375602127197151866050367829452547525472151293365581529362776450071814600389146023832293214882539926444818885082136536153164369267678968600182945933078129366132380946834254019768165562202088527167463481783074102231293795003445826199131617032392423317589040086055472414519649872690399184664222004921443061932586868667583236190121517900808053069398408552747701543563254907668537626078065608906990973596256446907793569949136728020356844965524896120704963424801288323270923120599273342303089676652668238405543645371841573128626691312765884665424019214836349516739950876378776108548003505600436010466879689485532725169478638391749166084013840288895865118284743219829047622631487212408259324431984317721146456349300582975366631572004920167125701867521548773497217302071330367662814415476317315927476253092719991561057033082749741333435519861699429625341932405855234625038755766355846445294170124550563337341308026369213879217188067220678340373057771542110789016861447169877236140183772165584408891482218560212697534126740988175818997058603708311635855460468489201723665152795063107257383815743826713129594960295084499422000496334599021099630617243201976276422341765138824935195955718089756002052637972892555293998775524282809134907334851446060146245628652705255873794000631885891582006865729788647149461126144442098977093184902353024811539891908299035110678004891657924722266017326244096318128866290188747894314774318506703062953664681882001062974077353301780211971855965854301374174317791688368968273989625375582339191124602909379181609736653027964727133458397804760019956109683664924642838263188361369715575533364502968165529300909666102108120104415629125759318620377717683487397254917153060210309933599675023174276862639353833551061378310643100798241353932800933863631470914274832805713590783647270003169511982817857235032086803084077891693956684043205095846839795270256507622764909543254682725169539377018674722631966109025344574973204562336505158580437849341481995972249465893884573400048657779137121288334988044738276922171709619667751702041194207030420703575136911581693177527535812686275488936413564864275963291834216336297339795473279336017187871091023485265206070691080773304578964671862134302763953731624765357808221665635586874204757747091783109742284375690717798288423045938756433630049262172417055112569484843683532767566244370219506027465007168635997191823735338280382028637302778826127969112526470292777464359888175972768366830813028771775791373310995671140856999570331051059176355148544942799889492539854761941097996547637573045833837481774913566970133513504881346853356057652929933166726429244629169475959787236514614156398668121998636641111983053534233623440069900634271931695945101118189841529070721624727968603087498275378512040799093336724718167660209673445826668646045078037144412882221678868249781398789488859124483695473022091400747894729385279761521598424499046487877217763063336706440408318151788964479026564410225213094111326193477709185562176930384725180843117786212211344578481686703618718172651397815471372109552940339126669933726818847821450497945375325183960369811937211947609750336065128434966437679169111169706864185129063919476735082464629997264646673115051215493926850619275316571256166672023091109930058975756645112953689040647462919312069116099985819996592766216026342255735548752428393080443746227367920004768652512728044327573675897332618308975204687970587831165786664881890594217052062161116560921135573792714232707921720374363160744148333921648353452096659888776320625252675654381076034756939332347596809229785916449261793073397383609173798207967883061597766610939964721393276657743889729927537176471194024216246040393299645377340075568365327873911910167042109029151372914781653434144265605766602412055082007832588320520048104370949861477016835079254829332083829961671087864764084495080665639839967754505150792722989363178324124100862324955637214212158322940230733673953333669363101815012769370364469696852152874330851831661451989768901088534059827824287545132630242326301524613405465127310894660564263854540932980547300872688684067682984818890238219118111274057095058094523466628543917810394840465643598591811963730221056293200781544101501591914671417570415555165591637957533515745288387215614280818676264498621404686959979542048437293091646728377570459959040391298882357260755299203946040571172281061320605273818086008352061487389723568216283077647896956363279738043507846076501888083202364369847368303842490118641097975198260125776249036330973451971491308757432049653822296788278315666911982525116021239537885695748115991792095240089654505274996044993001564696985004804715185441843292976374636974257235624517188498688931886776461461359362578658751614022594161886837638997674313591651887586129057790181583669930784589292650817864602250851329846630132273173329582048552116643527369419017051451404570601472555000416822069980620675459071626124902507698243006056693345123386937279169907554649147407894894522514250023175345927877732025330375267347470028859656940696645076430758093750221665867918772657235715869705819541890541972511763000949238548622238723201469062624143137799651460922918113719821126849238075584900241381245999758114151003665135440252456870588158111222822925206788814667131576560896496109301761379128247311304588366196193283413787081720399294184813505013792220379458396910177529211631058999216442028847788105615382989893594338886814150555590770759945418805186419359245484087991734644042957622505684268801713089115622857512466136263932096286108840653787642900075520814612540996714128968121133255626624811335271492672485918084329377972823580873271201728434338461787882993171310817551221854231287926017559504776776400614491816947086782242249840938960760584041524245332903610415997752169937788116539358665433684085281870141787229526435468419495739516643687606252837703147641972238679566444465121466363739587453952379701926292106766387365478464869627826851097307904259201050124353491458683279343024476803484489822311592642571894359433883429580560785424352786115493607365700821423233028031596885992841786779900123068888630854007644729296282206288538285758598502562789978510696440308670665043804271421119840079248206455990583039233685125355474862498228643663546933724357021566082930585006223132886233538506776041137252496454657637593360822944787789322256401932328576724603790787054586471807059108028693535358942028509462954543751852852951513467122021674736320507931554150647894398562725650283405411811492702310999645376847128642898472858979619560318783505029219819481757268337275117623817803011710277078400917446778958124200632434460576890542725686554573511626740395632393458827573942891895812660756364935143061834706121321809027915449986697371863735140421970615936259640249178675453134786578505544676237219126162403956246662020494786347240018277089970980499302456928177681696129567995020651862674275472846899732716515871376142718271747243333216267301283831392768173854145156213074405044314153727120036397363353504897634359016715801517550823244394594475157093290009667539626251890416171356401304520534610419129967428737994097585161810550856603262429777554217724109044998658714801697275494625934773757446134212208978710987414938510437455495838748143176306713964735267246081053710216018895982481746126345141805638830688781505104122653552759106641065564457953422513689557900967910961428826654259269869113005557747286076010300773228015348579045938526513307618360990580616111614009127334373661866416198713299119298698969924266519593427294905371846982490687534258153607226902714110440440902435535569506776650015463010843587119381187102493855905248070024625621432321954065050233922102357113639088996837508398828538399588736345724216402047791200325859826193715886097660153278439678918554316531333901022957673612552136034042758949005034078627527296261192302609882293790836524396447793788246053199434978648098492737198773495133757817186484396937340473662726381694591531521282727038276560156892352301294616338595435245780426951533257874070088704434794702282067793977820022221667626504283129616841552585657153995928925556256012922909394045668046250991310461301727466265562792605137901314343051703811331974506905759865627060478313378082986263298400689800183874890892622920807912923806765719016737461642776434826532931058488720696156889346657294540049919340275879866722452664300606943855232686750668940463806011145421914465859635927805836440367040002472878209515360087888837063113601798333211623808895874516289858928924143328192403340103302129064753126594829980971925864492464166775233154657773931188289218050366853250165036016108706792392397081524095493194826526070157549350457147631463138345566046560116907865133978854545946151981600094391188652873946217638699069735197820512935214287485955935292881375609812356312060749829449686057538099149610760348595065114974644323017993922267984135393100079125358140724815458939146693299525341575995049356451882839720052032834775484469195137296068513471748471249555032308109622253238746243034825383055546990099770386006298474474078545921538608231136574526057836087810955888284776660978070123310243489074868654166997109787023323815943949472874223468462443732753829955417736721012972313321824940565256514433136957685076159856363267874871181350234958726451593449920234014508906401187197313175211118337724718453364718816601802366975749692862972069255950268405001227301760983886188915613090441235737933664002304327542353978269967580870894224960036216751416022429840020455780062134853438389834282510549458341793922011642521509352273691693305779817495763415629151318293135893456502900912574947233902430910135291860466981534588743299400270441630488665904804942824059443837064889518772942992689229590328226818325533868444124014592823455868573293996928125077766353812739364631673180106512235820220617224484224737291139922784678679800750735985221155600218460320583506042720927704121761850399894598540949266336411747364179435249499615711863640699728012208825334549592843999229297354707489220448672489075497722956666894600465236757630681241785052195716623066153742340906226079213007268814451147407273290028778261436485722037844353069155585469632733287768217123293578003297417254542497223165963845020659404668581631478504976532558768719311217395148938989037199296099342177541739279744891479860097367003020033037874125304440783148853770170700411358606186908585476488443553908520764498433320052217910096002647789467412012878208030032059760088742927028021151623103730554465556931458732373155838529814934366360586939436457831153427932267126990261371573387210163447384200263375751496203586030998444709438964495615886182872036468069698053622404921308451016256459460607513402863098221100461778286495275914482210065031005511964230689354138561753004601976061931350039783138273494249194530236618112756680933654587427377770601600403635260877483242320129008676247486559477981969161498443792327226006203958643400769552054136519184595867561316188058061759217271836799042554800401951919682926839371286641128158791209418642215986793011552043999330171216226267150991331355550470055282130684622480315049014011015094883103467173135588478700840014581613879335112700212019632112170459691658282803591210000715660631486967503466212271378086157166263432707741398126172773848863704353771995978769220327332472652472803906919701135287380687074023817291016896856649391210360088932701594740918799727604884239329415089359444200021515272683548324774777075466882149697188850295622125476952391809834773813727818160648932010971801979701168339697642446999183531960458928278488510877508916751400724137061010026857484458872019285213317182904000490911563460579030235883370010599621046608237305828513271333211446537872539359082584477433065188756829764775589198118868486673404284555346396880263598197856904786246283419325337106473015542974305773342425381709571073351512723943128760040757553775808354147570961943406020364400047367551280137427263261511098230682245555090590931359107503479574268559909472649668510231880532133153304885299277273866199324647643491106146109871898133166310486021149871553053163302621941127268932501067938388017418807889747221604873729564496670403729233081567603591328661362586596390168942043127452150730019724212061887010666325180504165893308678374115851998906324740756487519399022039021684108273244926502539359471164564870389256748988666064245593672376560398985654498843644092831583473882495222302531419462710738648339688333461706637039429575996229131039759705019848776484744094846256318055958331639472125729755163849499534134038234271833847259769980558270570974088923434520359989488382300438549212167363026813678068253063195613609647736183497966845360917663933687227108869363168488504741378210149058486164966945799622404515604083527049797832201290450605498418974619464044178735106454754687576941874953479031164384399799898393808184350875582552384750436493495099977064234743582161458464047660787149005437286271562317734510326566036273407094634244889313785212013906475750921530298811857180139109194539311739682975120840593388782557422569202725543220291262764827706278403169981282914517964703427410186475840358957561038346903357237325550981347920978739349614440193653859952187338715364473630076915685668685229139918294364439419464716748321481896954907778646429410279909640120033956277535945856625526353031556506316537975683492931381794775816586796563768805437437474645238822864763541217206302247797892858005871364118388457570888289705394311984921913648692980775263607152043560356815635953125324419571922593083732966795282616926507991428511782220089852136561019833061982398149813077458034033692943104139454200931265253567547647864435717048821806922423084928855651103330368695450145097962820841507620633266341239259156739887485889687058442224932124515463765883283914714785870385549441555363252854102413300669015718570816067639116232466382849881589314078640282825197157612323067643838303205086894508492910473862763421853128874041945419334090061816771442585621382094834621854178025376459825018677517849238450037609114468342490622971892701635305895915901394870853332347313186714286019294452440553382472116178204404487002185626294569983800535092085083638081975129012843214808009511900262598533232187178409809535786967211449971007094725685394310483960579083988025451268542563587455370702616557901825296404557424529065825458453130943293489769669409553017598318516505008031641625269550763033792155449754221004820901798012658089281171171955673338272284367081891045594837990925073497770607391800598398879274004433598014118205092590191815109434338203264994946555010110440665180287863357897429512351599212458098542278668905505068290148367799562482428158260009412146383225166947196167451565124131639729501605362820736442158626913301119658438782041951400760998383833968595922711612884633257930471934977557976537829655146281983582292591329506217864731306962287512739143816680268645951988870029602452042763096197024732716753786595215501886327256939416365346825991909365533410604232209962690412968190460481453414222088502811080559087468943652351076042998738336857851334956499580093622579555146789906881606450780994261801305871386120194837272750165511513790854989601403040850312164991575043127833635354985805889144577688339441613376651642725155409891273355672207543455188909003291726718322005283354658513845967855127354770547454828043139035635403181617946169693627172681191010858474185320207924488446155184913679910192215986778546933743847463060859172924279052269183928286623934834347096690317579933151607390862688885861782921269913177195059781223660815680678150419609054231180319632287090021554764302624943629928441426997943140796243041231043221576800419115746856651778373385446747335695620187892903746134110925054144378207626468406204857335042795786886953122965122994215364188882975262168771961971738596442164793815932798428107262555997946693983321096611633307745320225416939873138250603434837977445731976473306096905895260465278659806738987861251160415425639726948448871422906326906460998831154010419763349075095345858534837096566290337372665269948930374560025979008421598735335083091945650798687181647062947585097344761856900454527363829513469199749829544053007024006616047097311291446492823114083419808820288203416468473058507408840648084412471544520323233983995516081642010180326351151162348884176097020295121345815191801073451729251169142910542340049154313590103220778170816295398613147169954738282487044592177437241666282831605329857070432739904713366147982913004602281901150705225144454970663750347322964645728868466087562998097685300080271300260032070129140676375837728830403598116974236109713346984241469750868192685735162631472489594720372529795018809555639124785022397819853813640006733708040490703448415427173586105985249654443194196112466530127203499169014797142068137870103105965067857774799335319913553238445300454250987924552095786928148205682367460731661037190431166543492618056533954559925761119597522692483479268747447917275700074405347487424876700854529918265821294376997584826975646441959137071436156436630303782784871111403307245054878105033763148782667906374955215026848924217911915144264153668538540147518516443975125342567400380816342989053819358886786628197471104221390549347462128225060522921190612896406552731133953454955306883905314625685615672504068866544471794113700326557448019081678391070418253296671704567282358245558747915481023500057994101134411942525003717273627531242821142834035532194938054854807516231921460419869006228204033496140707835027149541019002527430280321514893032865957485505370904874493869439624150880271104958700683472372279646422074893789406388338138468699131305411848409976068512890285013404006952725067047709206858483129693774671556609936204273527824001824896528839578798382288294565435411568288081106637174029858483929771953108212854241032447754205110774663943336024063536302040272544476031021448816554896645880674772427052751949373151065467227931840684918303115464773719928407211460762202680946693517621475533693277572080255729842597465528380688411230526510634036360861099383396144581056398820052109207333507707741369256771384270908170090185556327745009556758067952570622002251867405514353940272333682150423974923598668642439782704450747604264268023947657149823645157474064771921826341600900885137626339338523905960709483504525418373118158504730119354079585395112874914483859641743634726262690712554598684308125476699037647146163951750719533648564988654476859128613512460817567582611445246501826082541526673817189826063203978678513911922952576247785782858234962454387248520704465671945145550102066738296631032998312777337441811042335694351493205885445524831075750520267959996482041708740115959941279289510115273735223643058860109935445168312828113605538638993325939605408139000315053266918015909293996977119182427958008406827568386786638277931177795186293117794793379962660683492300932023821618494419036143332057363826785963790130448961505985589273258164648339099902085018568337118372213595887792660490199415199470080195558659014476876231440696098404783453333834774633841865455276407839135120465272475543737371256703026634875802653413463889350923268868248880902832806840574350482953929096193589110511695881684272911554403760570573125404400002399911922821148533871200966143809787293130291751111014786329350280834929193955678682998348698744357821317295431455382970875656499993330624069303338454268288557969101283234255363582655137638886260651601932970047842520523096341265395847988652015781373582082219265791910776406912582118928815181982234918821235000555930060632479672683340010283529164270153535636262141765672844299208977733780289770795791111035204315014246742302237981805712376014496867713092403916405583971967103333327173420060522560953966604007891987562941943914591563668871193251793064916045316897145069439660821322990336916879339224014186973359719117426058780054694220436248558044487083809872091745016867607321892415162932498858924478811180303083357726762600710807037999383057715219912348218250934879675973377380510975026784776309473544138969122577752796162938387744507663122314773478581674429915827350858348368153374605166884973278736929356395590541170582653419893814486388493224320333963701788359786649043595858222739796736975107497703217903469156728112041786029880207419847110279259328011721021581025756451648214281288804374173226861566681636277780788645386451725057344727766612013433759019295299652055055643702192488270336190275878919178819453605894666857337836776669508200286682552448590791311372250471854861241463004428525749834310515064980245143955592434257510886159995908710001916967675001866442591460583183475768780813037441701914800396598227219218779776947733296171553370241740861679598606609036919046489669381802653033843039075743582015074360959448833592827823038046058667552892530268899079429035314422668655742729335855798831232951144059811195021162479637273848656084651314105356050030969039128563983376002651179596911496965091916416568664907965690751214699570479351362400662950647585429987747719579579126316101182558070962979694443722958243185611659144009893600254656068452817132238655394841964953226931595330141893107464909248905160199065025921566987074301291222615963749917469541076224026191605518855435024079629831023498320357309063811657974599762260622611095823476267558878501078893063012725505868438823674870581185429759838998827058036797834012430635888672818104150415326476344114297817462306359116590779646630731767007613530721781199940841698128418217469884263280890072498801353729808017908429301907333565164334065536784320873687119016938893533951429503509882021022721134435475105700843944361667632261972211204735712375356680626827569188427266654096724657282645975508008245337587165767309058599291083679758358968600244469123199261605353878511989599594194896160538691144442602699254948051201082294774316448599466673928488314049109682995716998207141861749314231394127565633037646143651781720266150610336686155224296775980313842346806904385824327377540466779126703777287173724676751038458695719069439341094424851041625964476330469318985044725683326560682621599902556306045017260233222536533460274433074683712127071389212667929149635195324719132869564101619822101783101757626511915492425006332900222805281961815733046112506339725148804916309931717624690104491053720438744520563542571120691464140019553836064688715517714680985800153227672822849934814616196789054092065536281596289218247720099981805608608845180465292748062681818390753095056971038035324047296852413530997922842342682242874448706869837158379355323122950667951208545624328339541078517101131307364031299947025928526449083673392918529634941202799905592967773366320460455255385298613732814036074346418738431570885240191217352114284162220965836592758415394376747255782068385807245116212368108178026461940113140073133711522425949787655700003855821875123575903837481473450972121233574367186963065686172827753048949147166816655184654015490848938558668059202277842597380434067960319357810463645739513017058400168735450763058977835497916458179886362694047316699081975583319719256766215976725238342796062811663942283917580201699847410481159547457303434006651262636941507159404362122075091274353773615419699888568121227777534911278264062032198393545947887544229284751853345088015981046834561462901836419189122053804793283162592972448266951686810069522319108585255166087773940492018606769568933171266688945936216898384274141963673646422422247359603861440031929942637199113768650919374288014838124117690165081338178998534961538324411408678597088432047734591090486146235266205120320051462274640155346976766160884857931248847346265235511206107668177205384447484229950591069356565511831728038694222356789290040237259140484149158135028011111626123949447106955455230524845289590719564896719737399951524209619713532980562786966973459352343967640540643379154274006886930099175503138558159229334711991208139218624474853864770037885329314738391998274747750064780164595936854346323130692736568293314616582041532288436789406686882290958519185342439277164322909874680100069576733448304709592148902141988908079462009766292978706030361226800244898752064967736937735962735522161821467083585740288291560627338814616688387815722272068629816544664001073466261465251017914262819657697664738283651265834276433246460754127692276105812883284299470942093621825426284985826171247606432896338250722699075259572084900357481714039095893294780191148916743828247742612837326019630395105568872602066937316467710872586805150706438439748153709905097176794275956545449047359060419303421312240040220153070180019690971162956466696530652584366502170220289081734341128770288179875103308683264247397322876170644365355672856300560164225437655123191321343489057068228263936644991377463685335493321608122866081082193911464425917315984614108924162120896904554833863900039723297469845717143398439866306832094566407278261799568298381813987412223837666182767949982929139698966318123307364957860695053704141116838931041167721658837582710191388407523677671340547960459176441431569442595252456516776402725616792591151424547988404939846676399802823325872318813603438176046927209096367931738135489586411749864412193868880908533773531868189728147552729720722025292149459263711987239164329699749652789587651009497124203634384042724606190978902003507759548715204484854795734436608976368798088256507160912853234505135660682517147332477737848697459175679654993285340996395208534963091110467260476090042422893681149672774740371865882298539313586693713657858780508344801685739513461758348376493018535132260184576041658694312643848100355842596006948384103369344376915589517756702911179157869022824234755555956464954140357833734498827175961958179125799757988129756696726316371928919357749007557852215444835400103342506655183287291736187898216818313382411938121084959458754410529895223546564015888780941862938860348584361183194620541375154622910759569236767556244026948047898452587330194860799845467820072090135004880425106254671354722575607003951705723411234973814280426354554366651404985143912642357521857281584757792050713970261820269190931335494213838618076426592003043168975495898159817411138395970544825126822052450352688702094317667532311108829101259895257377065546737537842697567384220398873733405409641828180468737698142318256138930223922870804248037084074163761600258786422042960620250073300116721289662595978236815280993871774037781534506308165463893799606410347597750897939754420683955363171336543819947060420038316532287888019353656716549203019818909136929808737784948820635578549964776468404083391392960304557527384339891290432156062057500104015242316334097838220394756573251862454225506436151917630624028773027154460103279131944071844679654664193618132372642725326226659255338427170288324236456459300233905254312635278883446706950786483228411760566991702993021620670421665959197163105100213119938286938236055102106089523614939740557149991254321696267338269744591540774415409561065697169658640435320838995415961885263270518505173429410663971351098874260440522756284865239340981971431967558916916863936732661177601074814040962559352153201321780249237782150545752451666712298919492822337664612035359333365022479682223667422498689857335562237214933318726597697205951601419685520412243970207271200456775371277163494190488292969542792406772096647577711025050441022032544794079124553287871205570753383431449516653782821225974223791570725531761305573729069848168228581569681353481496641709322320075976586784773105978881225013496560305674541645929824593777447843591598698349355722023638624544556738485759548171494005298089296506373285108717420403353961351436131826346002448819171561226358105273235195546782799669337948888699644804223969032930936611384295929499521968640164705863129315206808774618053573843988476450440483164978358171075834772403894719272164316275510718234869681578429540895736185620871957806610030197488861999430454039986864474114241016027249757840909365138179447939729439248758271929829491879864185121721401836110553515216062840974532961917961311012674333938400550817513742686819081502504027398878950871510085327119919232568782043755517765651742030533526774826958863239339736897555868665864843142900662739555850982358963533887420039111556984676708923614427498131879764609586236733571129900071571018746346495032868993805003770819195685261118506687639830466337687820854977619771706329032622600051905682618738591410264290152445417078059335144873158914477773417300445226997935374133942084113309817044322628619304623814751542060021885167131757375900021874923025827601597650277277737828030218612848535316985855456583590738802160207254971494897905277334597979822817820807553584867304442165862138997158844683058247496222560921962964014413300536497629540050099180723762272251080983444055216739361051884028490454362599015890526814884967181802340236113147251320246126914300809551236901070316190030788850004470844390034523925440912188530490406110206716397778165105583269107519713112675402691868841126974048605082336521517948200886443022967418540565165768523286893195377772502419243059123557959052759939740700494028031426414982608491251041480344328205547039224298626781009312152203257270054953113764703038986287978253653929895720970084618177542882682367838430802350385411123977985119245156321313565968177996014316090662464304906983568867320396900432347760809796944875244808829432956237083508528901587043200755405373574874101833880424980303922280037246268020438941280245439050175916024178254086361155931710768758635184328240539734168959257902790113248883317205497655656781158539156779320454276492123308798918416174504970213547881201323659597731818182175259036672621199250431322322255585671495966591053241418433622924468830553823604505789172952065225944714544330043237170844295837137578820859107884708771004106956011634512428050181679393667490542865749748262962023533765259875266532041209586828813433243197006554781787948538421961184631984326113152771885174351343971438259453781100391895897506379323481543999577200037665457482113068176415207962770963852293507221441536145072331040852062332050030400772145398049035592503808371480291211025377604432323704491211258326403970495419068512805186603627817435542645614617924400230900734362599590172733036736816061426070909439978486948296102092501187765052202075077019329038193573477950132223765839544787344003122156660102562774226801875857264818563654657818711762262760498555989353037037729057834778990989453658590373379210256234179746190340881560303399761199988814596339256141365329879653397412690505819166457557148796375455234811410721345006961103884174500663684321537343740073561777113675911578003743410829254225266229463686417261989278639812433523699441377228171740701404629244521724308370903629706658163380447728873105188562817601251403817177942119356300031052860145557475403518657284783821060877201570662081511053871250391697186254963797406260962148082974967876361746874980127052625779388946290499699227128587116618454511050316162526734386139634029503548491591568813044316244602039912287906902431062944090324295565559939612002987427705817871204671430593487835668411844270760284315793088205751912534997941430353882649152012567326530984589357872726310182579384288359057999576661280909320018173631653726504737971570972798703034968853167405930501081991739676323407225389840983459608859371772242462164825248471381550927480231527302983642240020065215956269752896169478115251945295206437747219844002006335250769868528507295460893982429638185832088191319221084162108703450688344694680186243160844903743882250564848124193382300353571577097340862445186763507626316104872616203416961343436623588319356478584591838665137863833822070607860945710236929843545465853701423236762858433244385017367555623171142238843826431492936831308962039455321283908858019650975141375782290192372165417118132431211920826289931917034123602010284634031051212282548057074825475326104919625700690918921442522081408255000327089189687341749505765964790730629824758844080903921989598634917226915758067799466723018853149529631173917512269077797470491239077690587551092623608206014017426688681917330445449146818713919543162562091619692773498519305108663050410080908577629705324293196317573475124001388321220604790482782579159412081685373947772527309657149454441884004731033907177969653380162617438143588782239803077637339440561460513028260029066777276585366934625505113447532663428083298380965112850145892022926248977416543551999795999978679977927904222641268255377404640560414292405447592826842414800760267764978524962851264722791464151268923393237357048410977031123038423521048786500651863734048755281451449612170374586709799611372692129103570116395434836528733690550090209550825828935630805597900276538708454223322393359668308464889039184919247530807037844443624840770322457692913514778017477904753891350995052582863787811031331077167338954282283776751099861644992133417579009898658130438089425144974566631938236453778736695225228988201006337349043054284534375120445083261558314558939678731942703036446590924960443846320946379479341684098913234770010456067942672568424740360444857173459390527717563525861062782503872623446112999910142552688763177708927243012620091191080922877661307275934298695486820960815786038061085835598042819561006613446415189761318029328602717405827165947066954082366157725023113029804659671013781105213906698945920573570859761671195506358179706504380839568330058900085731843832057040880128868800285426377872684911923741354119740461573585720553184139986339066187682416829830930492614657238333229538528201851728966924831048043984643045774768685619937590133088488686745037481816016078692045586162836432247001519928219309240427975468385407596745265806211465674738368632357238296438266565570131303866944882227844165463056738849008149428538915988333669801166613477123574426010873265886442649744938836376916806603759910088269810789369228572031900221474139253349295719402249509927253545666175193971808256530945138092305580056916979337571955479506667799659213930144873455388281914989595945611396546971793190993027635261466431140044006257879757269314749536035884755127107406316318508840759197574827209790711362727447072772148589224121422375049112698634579294015210925334990195996888647611331163940651281102745936962691735120211150747377524732397254820857890793973899349475149497998817623656338605683528266011747880273133020403632519268298365869684173608159340891852515880029390746739123365637518442721741271377586872441885110253409901309586031500165774800934370408215739925612375744570274786116955554575239137793366513007607524599023011142785072784527800820017476041411215176408432649639487147981108349506179215839707164975612191001100334204277054118787315217955217810059872074690519264794820738859860908084052031481526031330344429816612576420495487150790961862255426469051625197620804038130356810704960385187667421371391081103832921409955870302314486941820871571505078883919419861840759906211218255742190876640186919059545495858193377398208068084593086545345091260862849773169898701415435594840862603273462888883169785958845097171717077231577078852906107214760307455408523823908519264226488437242086244432877282716730795373478619565576317460977755935640240559061120702977959426426967403751553776067074270626121489754824373116874066152596792454336439921809835686102818597853616663172879186118181677834676459990933115905875124905445624927667556884666343491626814946642152358745155422870323618910692810225975779885560828249821198691456014176619464741585121148943731586582729818081885162589045969853489215410113823367002567843343171912388301713006287651635427313732706818289457662856584895442495886403017960393858336707065172088686972120842177277020214628750596830825751357097416157071977258978435710599415654124860327241808836114454816543036923798400168029174453076139852567002598903496298048842636343919190403697514897815775615836436297654659569584123686266672628860433063337088515254797252336808074763248936605614129408337423580098851285148343220426716929315601435883203746616729949809548571583218653167052165834646201236512693093914041267439122843244532207696496231512033842255385580257753128264185647767896310156864493698082688885141980480365438503532985371129219552690571123443075197762460511751553573170867108866691960832511460969478857064147962261522018424909374025535591045660431539585959271698340213780448661362496271415027038882607609801126747657696624785015168114094555401955439365008180591698754719249765298730572839799910168502436631589004742646024270130859201739022186570232966311904550586112221367177000400138807098141774933751019881840091536403860160320947891419810312701888024509327207793670691077129661128381883964379220720394618714227803472240693911514134644909222084884733088420406052678055870006494874088259802130607825141407616606264254441255567984033528613374397355116507907714471917915951381044501541118824469088365588035665808989381820423598068711883156269360304009963615070651956223630814368714972404122469783512011155896621683646766306048950297067940942371731116493659032790262584108011509604340426027619804945024108118988896712542213666456538075160790462351780410741018001505065354087118421286922699925053400315482113584149617397166915015676637441196735548783795971666260655063267129455104781721831922553206255848812532593256375588314545927408804193610248252208457469451658576665294637907878033398686604948483100380668364633880333293926733489947704146789704189999489017580769865187613243258804436654711166519056891796996810617976670465038132044830921486131546895839734789330491272525867833140391362176268202197034813761526503597758015230677901254131668050505464235937553508629784944340638219066474127146526333599882319245794488151711565805047468449196287192618952381519877472418055675763781261258983005562657452020122576552948981425325233349187631635513759925745365066232606781158256657889524166069147443749411167379767689265877819530450391683689710196776476927609051140110374485556322754184141625489674896242243519443578060394427256613268369567843772726727526340533908242094139640335921133170185771878771907021228475828607138512026464621156795967599571955568942839198600987709597208169752558455708586528986654927281792185057283044756407636141842651074361614491428625278631469375412045997738096904956320841194513159002091998518994023268497749678291431652170245447635845215899935763831125643805970257564567015138538441212379377850225216876613939809590211316640053505635637540892647802904927518137212676107915871265484205304714503386562768802595967954859980885365561086866273727713461314427710611888658218313195315472220554059218178797412943613752370586061893567642796106155855537807957237080493581834783886960801839481268748461515234934550221935961759952925135449123177378696475174429628533036499069347316420588335731580152928946433024878492685794175877259319771448112409742754598255140971104898108462119716592517768857145846765771952508953986800320831616988785672944205944933551033127440924226587908856390295763861662229865379700478021346669628545195570666475733756881143662362903366067443893681857300615972985386898359729607812650502816539873231779597362293955504150001082241710724320003762445523870093725571872551711937218754334718720623747772936206031937412904958156202266734720793534276174256039155365115020641970615815661462182467788739659688703917929175508598214385596854828120575021788612645513125443952574346128815503344474456542014883884398831911866087202324027608060423919398100533671701677401407242746702852143735936948872255168562832487922308528779693407053137154590941555475837843575347871383715165671004671539357028870036979975096113812677109787446628115519984871380350709712882708916230855448748868044789623816316854647600494596101579082664082174928794051706092947464490466825609637494925498231423017826180266061378785516577293236718804560464231591610962606171189298185668349150821213880783213457426970065002897342158422843516795158454767441399706102794199646904736306132461780853484161549634371122035015223682406684463810167331254804806068664543713344256095194849879952468417967419597554927843264796408532127376843060217230360182239253902890891181670312446870452889744554840863875988486970851506236314096142222037044218042500630796407704110424535220965577336572867729317236619527015521561106527527738496802886604107963249753629901252685723312681450017615808101564335664857029886490492814688013943586940373851481861146068616089271693669046762076603119146892459157220990901100563602938912699572153053105809504733756071360229758174705502592518220152962619276274920579729677310487092362422851444654619301406233876598816459172112578035717714254027820660085445422115780735292447749071438789611683807521297315586720546506405772604205215495984630436327842516631747405471585617693301038083090763718870589981247259585443069650578702054710887104832143539071312407812948938466176558737426172617175020339135734635857997867744756663173536698364198213044273607883501649387105205565789743390402487652031235494735620420923847186742939052820069880131592052820716797440561449768763065586047581515261198763090265109687461981816327169851776835030241515971729685424539731347042543652594450586525033199774088934934493927697816250528651515263319549899325086577106501324005573430782344855641402931711798337224177668922825030545559158935101592908929793265569785016932717822843978899046774502223506533522886998260139873577376285402058926356844936081559221456213852992072431000513963053842602578881032751114179671494956356181959116740931463438440404630398283962368532685502024172646061772184870640348214516321117213815786710170848382725431711080715358817146886816586001242207768631672725787038052664939863005818155189559716401014872606986568819434533907722148005875562051248703270513093526472987492566508430248823944375894473681491408305005610142545732917138410625994522147053015858185581795130593297106223334709194223368962669232893688614187472599678524986888782969763197395339332496461543193633648726525396989356884455850856790243990068339448333550604296300452755773550081400915621475672003639110646580147693337018251219460386294151858658391316893254780154235503815437428865961326259452117066603537272978628524226314523741899334761975693865670213184527458598365108896921742941383750913192261349393717248304915546125037407436230577443725266489219164265832219749063160209447375322943128748756183252081522667493391931149828411246284402735158572628912787216343593367889556219524607289990813536894624082908612522955632759018915176946002276040055146600107040517738165169015858307843624884628550962384693642472199441008931863982477314613632533641926400182726552758456004540783451549810580900053260309874214432107488300680273202430396299909265470592606976122620137175351572973869474483698397822810243198860248531679956262187043737207202555692574299530583277877582146657804830081965853187510008422588336732177162537406719935566926872341685055785156480704084352082498032121503454574685756596418578907753599668184618930565904487509564824642810787002660751962970429514881362425538267542599098463039532401100034844478889930563470558742546466816028025658297884053958981845870270651154242087592548604489669335836889287374979771579093726200101531433420946694672220463189343804605765707415784110896887857818153319481071040685146661699926393457615668904117278931414087024222238571563315369714975494680241875288294857984467708562902054630390391861304957750944134790707227508358571180865644553687215189045697267050887723975668786275263067640192330301880023672479437991491915757172894199741543003659027735522890920970817170243022997734833427165332376027054010094681701103687088255190088013027470709516038994936628681070384125648945579673853772298952381708315058538593351374699622182718574192541046761726541111984750247483790656226431912811474404124133394533435738154721886039543220068071282655216556681966336538604535986468747706564553632574460866875516985450962389502966907900606325816842062304597140103620861699602217500491530496523438558341783270070765327063202277749368418445841614993402653607306986974455925866824130329282785677997395542335005905683964001360324431869546547487482250403973884527467444672916273073725991440026535127774489724861290034336807102128358298337097940921743186475515146929907882066616914363652426639608445720386397325930184245788182511888818686072150074646735038439339892206185202926360098626295640230875846913876085162805749661482615115848552260004616826961611351866544299091362009293777671036752200208421305076194372480109437206028930117136985949576821270136662918523476544230967234933681988155341095574092273360383719596181283127973296169876840594944155843255599619888706290714101438339300375724367820172445016537114912331529501644069259063294726529656309575683974139696182754150260408337106837699608283605655022294190463315579396678152741185416461642559895422943085154487567494171966339947423870381275703904460200875164470415474713682772144343449129512774883953317919650081399931166726336994007828103946041590774237212254589789910801085447951644914489156753083326545700419218686442992493394877184374449050676534481263622862691415418718217348789785903162178397704477626372811194313460730481716979347588096175625244918444612386685951655934977961053620795916724681175453465317335946047168745268245034742688086688949146832261215777033146414027892809906230852871200254103788338643937861871165413764584843925417760946450403392252601112067020808051891485490260097548219943617032744211839840941239986172671961093031997661897568848177082023537377820405122157642475009230489254298667321238313146096039083979682856031584307417294058205947092358882293750555092975110260231946028015370390554444182126308220478106220624599749025014756670246554790642757716000220663254165829928401740926968288149166784161260516471070530205373626533166455117170324424682038511477621648577092125361511725445467682916070207640028440840570610660321531793042531115531499647169969662202908056175558709468555800995928054974111327727063445036145596261797198053841198655157492582931043120821611254983710320745755642926459355916558321282564559109996795300610255350007876807712434839723589567664189363147030052028727023692554339115640189891798805215921269599837285310729304017020910195674242066677357019954517928829094443606561351325832479157316859558761465529995383336025969692790541385427544301145948566690085201092748564854689639950336489561997794428056968831258450768534231837337186420072163506695932504432220912587362134584453795722014747460552430194845776068948959100804192884784877511721553180017881014936979910752702912528564395888494966223533531012145807366242622963071452204930045248929960620653084353246410303493325639882974822476974768870521330622028929629235233478100337413358331198481603276529506529747816409271845902404928704782449106079976258533055490814164282213883915681731979934320223223803409268411034421912474034807031724492552415913060050791652289410256336666059894754827953668209733587606932510869371591868816744565380179848105509956892492323244292832574610616155178415932523867107991085496249508272781125329028319700491553832432878483696323905583410731119709055963748053784529735848084797418587897126250217646961786315823228112469109038564342576498952514746310266958293384562569411269537610015046981029775072974148379127551351993681844799443530650116028226226248715852084786276304837119330593897166448444453462419654144967781945049947442251072294521247557819492187603505997450358156771594014407429491844398027491688436125887145884064726261729515673521555290853367949407583600076189644162521196719622513099989350700739425422444653735446724634629390806901352952331304795231924048659035070464408264536573051144174066233486153581345658937318007985901842434857364775778091250374329749230300678676794019514435962116403426906999977343126231486084409592771347503078694355431105642415413770259664292742456919752924450077099289119286609824509491354299338708754448008355399485393996662870481952488174919356652737101210924234670781672549823249984028499560912273318861289126491584795137083618291385343669914610163033389358764716871794624820478371229133568570917191335224250926136674576552924366403133941790896525499587948550107943603518619018387734081099716298961626014160704534793980468627714717586245103930552010643454980907850625384036852842303500635257088319406572578878749344950194778872890152636829982264987798829861486139705458442561565791245510911696515048069550187949695349658302318612022925715988321362469779873336946346718072834406703147471339025703656229604353127282422243543613586844194319930752400542054898152483913479396791807905914810882680321784295868565613885166771144085308791412053001953523479132143480308334329464452580628969852215776986974527274176588967211710805488152422909498769119683989963646924184623463106007308924848018325971031186687209842782870836197079209853580539639610893184884287774061925343914980855181461096955524542883537202879526488116261751898110865706159497030811162155264290015874078074296327475102866942292490324383428436384316532679578011101048203541124628334367584787262684420261330981544271604768912056597673191229534673175128126218736114016097744866735669070366767674494265858804520621784729855489396203521335308963184386743536027636889084408628571081171308253269929463012382485021470677217417250810720922187631419326487683820524884715529113739137249630103465289426470142623983807403330496879810443171033486770313329816676444965590167433718757464277971378590324861404336057249585643460161123372803122799538162599170227705938121066632180538319490209603792153656846838599435738027355040511327890034602914604620508790830870228615182513271245948930340088650471210922677310340953909354668179265559634143714239931928942204328578518907175464560368818626219002900119794193626648355816175472776437123379305109678340937870961395321949353130568147893519486854656201050230563728880496610117907043300724606509217946091950935828052372743148515567869523531795451828054970121719965334108894626155238982450028970309061730499092393851672232478126718539820484680493422310898818536741330854589703114920305679819411427338697604039473609547784415038321768792825193214852412493857157043229739303971640439296520115711017858283072424324967451498063962668543792347237536894069653649492025320641371354688818610475697392698131177161550101113666867787023427516036722044334062994244730394600365009160965306543279677729513671324723870209350622465997034242777167049119259228570540841405702804265799945135194417205035613784634159389359983319777142400174464145135032510853564530702804924451040918978759588100789662153321332091735487929973527312715133909461959977024530617563618674876787235336233330628799653863187127774992651794188671461465977196387626863766141504905303340476675638676571177391384659601129332706437834742176784963446747271166955171728492235203134484290191661517229445474389413219812426516189897370586397854053576188108247466000364911586131458245626052268298275510515217126308942085604553188680115604625042800675770866943580025091367891633907764122085302306748079488807488126551593584860073098226939949862656613175201265070263242387034177499928749467520957823849403308734180204007705359955090948160382910262419164106196995416709886060301671510241792540857038127601914697985726418084464033826897701893943995462945260767471584808646392813524418702305401578513847125471459581446716044067216985065477235529299281557766298137982686823357118684694056515495777787899841732913195046795533048116198638711408243103548258080987478817385770403136605790678614640993435897559219039274571635782852665194192547587449296931029737002038691270444324957915147684482525040769418076819838277601769701807257149698012593470813631169675383990209477752528581785835144752231720279885880456345313676346350670375831737382513332399119234379230504518299074634156267900967133535960686437540418703759823599696913731512827576766837977502249806638774277397446045995154497014031677983155096147588888806343838692547369462392104674703237161463966222833734327170282305606095805458694497264710092006907693121746614620628667296017240113499677157571281680537334548725766385626874901550720282763124800770489901364165250068674424327312823253554796902979132185136058775100367878082383599938673715928071539514113214576811345534577141674302221689423577582408130191223988612858450141139767795492240328118403528110099430560732274900056407365739238004852919585457345179089583538268302709270687243568314701102174646642955499220226835743838172635164086669412208798263463722393191689151545243100354616776283404806904591810503407700597281663998571411308800425760320171309483658066387050847330649529036020885492130157190116856607145977055571722670576016974761720631752196302213753737566749275392664558589337272557870140334516634505272682181859148674935728382414685144310010402023672290352194170089439691524037097578168624292290970479271122140506659854642255633527366682274551744560557375938338456760468664224945480763845778123687539977803524538824129885523492894458139464726924959000507398437376056516480210046766698287872135757850423715965913657147472153216932954945925759053710481636409992538312403106720754677692163384331131735608716576545212896942521703819526979549924402150155110533008104368704499972038936096979945419076862606308061310974339693152968618336979182405242251387193994516202068399429880249985683622116193335024252755532270042489588892435002346132282763829314326714954770624169950851828543356643335764835385616092330209143655853264708822615377746985411429687235385835327662867477707284125628546921269195788553103396597834714644269955914790202638238328868709684772567822933107334746918729701245626244951829438086324137474351785510580861992808850201227002436979470768159561225820343392327390379835623941629680315522107567328164737959886052394948382243455540302230151624646783473587429017050385661570022788134169941674400222645252490448818153896469370480282534498326052371124093735369449203038092084614551954884170174790825909395851357944721070486381368364542659854470203857156322315019617122714575522523384325810607239162259578616540973655227101636027786226507373052494221167850867561701160527547768385929591744428861290281362701370526189654385798880766101223588512400356367402789077206407093095538416774871947717457359565738010118748572595836519577291670234126818681994652486705402043613879679472924669856837607693496421639496608816591062676609083125665462354494326033084869867308126346719112263101111625200387044447377432647533112909024089839308840381019966459779941599314904767470958689301406198558171662308852817297636485098863895245303555219697387571553242730329017559632589283816713705276187859498104055696432516707632588174647120589946898960268607154913622835407711271924968987638416256945269258848605001465683514120505663861224438948356993665958477638250297327347860695589255693084842687695002831440370225574074234042868819335807593967339358673060740733941067568861173825860682533512772042555149637195808787539372075416864694618582559784342513561980372065318786977008049956377854717767907033790794532453111447883183493758512521466445113459451642245838518487697330179607858869617417888160199190891505967361511060341016732702733086201288444676036797365717162296697343560003472474181455935050043250389209849856304129296716063379724436249317452933323587017341390542417883653204360908493906185334197007670805957714894466443619062281448536751169120212529289382782554308520866795903352832396839860840937039114666680014124125725556513528325977570343575478574088171976630208818144539244409657594398845901914605930339327446341089617571045002835593742989217438940846197623852283908298095040195464766520021644103668434444431904836676428991295977803994617161196908319035715298363367677973200049516424160729111456385730483704554439130076049402248575573077544261639193534823030931015310838013750885924360535797329892928174880249256387450440063667064849499046385194584154244792197959904482199822470894957772942173186517268909955606324594127682064039232660522476320582060835901298623270670619424713461515334882222287449932711997488498979501021184863519856865436092103404294761726130378903059795389869603546603453868172107948089809001152560548520881100396290949289756698253226572408697622610882663885726548615409658486435513387520972238807376039985894875031963451126425357243590506991891836385008231501914847649420930472478859002204222438145172601694325046832472919802129649560241710264106019259242788113252940654329952673841188453076887757705275689469413446401945630189167010191544652869574877264864979872236801980783001847870526680613536766231470817710895553553945887561638959605437319210511911813707912059563729394381532581064175380311201620902968005135528043049705167089053180796807203687396779823144469953606147090089298502706789725396605090997828597011118705734448031168435850360260551669850313366988055870886006370701126827916271953344141229701754781663971456412242451895095215463616377676771903446700942786909807482898948757400052336946373927572217363315518477168473088914443267215688797018435099110238444726276795885540013373330458235253658790550160337304792269350933936074519143795838585136002297587084848620956831745064829418864934779926720601993084644804425160999223789405665120084904596844264794707785592970867957125783948617903395413814440070304317147383571382430239852590071133451112274058955489931697019231962593600360700964689320156961150131585197715416047821245947319004565658646823817199364444679869953073210962990595224472957372602607159101290867436974609090462133535908296944405720966826709095980263442475298650804468670409062474952186754974222505074899810091555993328165623786387520558900250273625899285571911356162474732087384630240583032646104662179693622242297098052480108168477567320686923760093369816624894495267980418974631977673798648011526183201963550250964225744761604022669505067089615101320014253901921999487466951305887688937272787214468372666075626290751455711558518824230881284038866152780167513153502738420694167878632192481651415384716446733988692763089130156379654966705951220365473819518425242810909336401784395530243083383891783209063958474588665833481187119540174773831320965811746775630775399847157616587969451467342222363305150841504034161941554363318373060675818390150571574465307666267398400575376196606878789955684102609802697672405344450936671443000338518378188112770865585752555520640583043881722911461473612398598919534773794769936796238368635066829910519417244475320422761294838007066353268496117498821441979023615214576170199230634959443580952190847824826013114113365172498093800479941514577736844985860058889871358181315272200042778555199910061377725372006919702868348880709653738929605061545180501959618737052835865169574657146388969473446698052409216185414760660916393887304169217384778998128491545147917263650442157226770052831056208065031692626374652648552614189579843318467243082368284625795351436056668798288607043525985287888441776199871159112223055117238003394229059471468472060219248720051975555266790207739102261033301701960447067333829555421572026297393381375665827889466590207748969124859232316810347754306626548372508016911118423617031064886444301288734501957849898241433637934364845837015565045832224443197462322108655430770358410710102439245802637471494392352265498726741568846426424341051817512231176918463226529367439595181049641509507053421447351831182767915749475997197031272804854728087096779693778391506893487471391847532351516702273073270081646319974947172785258246410125172220394883430169459819824622900340984707133856691717874381931813594142185257290474629662597381705283751464281151509660687710730593222187701685142099757209302194215606366338968613441245267660493668488902075137130205245405177867271167846187588660075155267831026463707150454633087637364167278270634905455746774171383493855041953619066227977639406183190079575848014948284649484088227694639058052571398615578093547207787814284533459669006591444065770829008152432604431626664532665061942056281442380604602641524701948313254233578848943277264904901696526890171829196469244080811308292562454360224260835045605240694106307972960295344014604777526435661450703464573273971171647898237677137763703764682007124524498406409445222636311767421423595753731836553036591239714612761790687838982813009589988373082785814962994578759386174986016296351875784357312572668982740508684472958638780775274055587136610754384693717743865069084657919788669431936464353502311942135917336633022601808770423019812912810859640894594465613790549620087217181483571518042265199362263093859152199648608989967367554408612905625545297275573037496254650207864075826514902278210894776879277163081944999605908958121380523037668208156247050853153862066042824487215229506680583832903549803194293820925746291950146412874164831479072937053258659230518377115716479239422044249679158236171680125350273039544576421882197065685183913378944063271340749984161801870847061101848058225167126932888243620759706856675792391365141292790835250163280199797800010146933594655261675832053462435482015690669342515198479634307735076830073213876030797899946023688994012236261826928821581252684569628415749600805306008063252846131299231624810999389810858024469881195293386229623667272852699043461747305379493234939113732290061366352013771754233782479649500514798093665175966419434441419826826654445837199078686694556877850826858127050796525183604318074868461389366590794986583877447482181454505033532096368079697152016204080015597090506862369608036145654385038445672469833887913652981170324364078418666277970111210468911734248318223405964585340512163436355901493748572377849639813338009381263758218777731491014159180776675140640918139616919572682087061040182244163389397481841921094595839673129216854400917018100259275157771529315764902314055251814447515379030696096121082645164452567475271866996827447880786591659479574787537620793755502126277652611185539405658759102790536639428155817927156324929149202314303830327138595533571266328454116512340385592151970306589010132442619310880515171652530239791274803758770929221028639557044143449311451642603621071536070607516024450658569602594156189969160872738410044098181889212856097949232711452217379436313595250771805355350778387202417035031187492269680965903307104154816736730884256549485513816163325153811817890224793144084700691457096400919435302476440548134374449637916687639473229149597519729067587237257829521246755494609568347678201891686435090444770952201112820309881207817256958588898843976959151089909264197187787927200622646817793296434954186249404234165135138064209035742553424339759986099516016802087039315394202905400406457311839116938793216951773561817993233990509247868771744175008718727079297182882194242204144607287845873534761004841935638691451549992187462551076874624171386807273961326043684676712196454343445667572799043128248616999276069578109788336183344894923759284479910466161453390162243183866571449412876414905415401999555306715524297389821742642190396685590777860541861524849932172255134197289523589808994124444757241593396626737816395476897669797632851986708391532647233927556655463236652593867260316502966218251286412890641651018510698209539238044323401714071189866302655483814338465780904804376068549779200629593981152320292451498056845123037783232829052834673013078773473701129397990273223897450801071942308835764682342191652396189444740079108400683618379423246459349589589362717224008909722920518187327227512708866998701140031312294244063068079092960257698163059827262753291847541719935498147772751874125370915650861336589375935260678693925837497192324686217412487826537483808640731399693920164876507411218344553762915313039604620960055161723682479031476794673172355528299944979546926272459713668544100633803937458754512703612317683632299153138259966950146703258709202543309226164041546940254802868464191827011568083767764779037436213421294400624672841571247352951239467667444889235029414379123481349014763805929593626533698302319833990969498458013342735568060933145058875244641236771526933407618172264171835118217376999550437425930282436792611789821365630856116207806469348276920286594697386445456012484382485438204780957461219660534530777940536935265525653511633351343582534134569407249828253151474938589723925479027929908766929788127091996373539287807696069306101075476179100389817547795355804046094860671469901534936687875135001813044950654380145985553377272415632622653074153632581678350487674191072998739877939031365928018922059600885355715042456704888056686762826649081132984837760452786497149979179484853361741914744667407243121263854529596020160261256810354773877196350805801940534252926099748510715833744577449120976964641799061634185434014016953071036725227274893131334993851069842131991694017661000817142210027531203797412730833048648072147016155772205486746400168878414111563821093798700435005229804461452751875164540628380824817704466748670041202567434238470424465064822583953422877821238691962889759546590471154805679332819294787063146574192543073214557821581504606144085525388244530361793646671806704575591350325580753979271513010418155032605610839356038759326118928555216930609495808143775214553196807620521539538416204084596373696586654966607269333807627727881146209922834537740610848753739285280926161564368141404007543666316703483427035222614840101802003692880035788475833840836981519869668879132391070859209890929578764824791673357534849632090670427615110181376551304390950295843475319543754571532295208401468570158292164272831099516361085194891630476977375584076621461510422960453716386322450259256967305555987500576924261900460359060479466036251522909680316411600489520637135277329733867735354891574495101329804637895552005117125210051647693153658359441666435036375740747782342680082708201134454186975034832418596739866841994625635893221074538485449011407575026706626423720766860663588838545125597547660543754030282752999949235232626707073434737442528891954278800733475509027223464905388753699414205765982375854422280282223537595880393371387369194655442538575824337735722315164004390377191236669479509200770213883757418578303725635595764762684987185319850479853198785561641137436919051931458329145646869163719302509154739276520947863156904891632058114502349659353860211771581144739766062287187990847564144673530492067848667701636233363865509700113628150447358530043158794550809225728948783201274006294901402669896832509707514517682716515768757163634568104912803276219616810426279380673270969885917606595380608641421678994149545216768193017109064008873632055140168614752255583777749939647563952545181609297226126819506696014463788951372507997453905353866424803791728716781481507920719831448749281133199297069241835975421902050614348607235006267152494310360450180839453995402066623811164457279819235872053894515349131404909308393956737420394550312855927422452505429602922799010305658051476119820881746632750542244021764365778698291517555467523143234275919955833861960662617493500227511494458335384477624509826767092495904768714977386227605588588024112443961493408465182452226208356370307807387507500962758836530529106078528851203968983533668603012604187367469232846080474507456135402485710180273594656681449054320042278862566514099951790194628732026474307319903742411764118483811043447710273183394193242612346497077017545382372556305657081591989767189232673785536794639974517356782313863952573854820927413736871789680673527410721917750594585444366151836706101172244781620740790423392027208950397966660294537374619599213261683730688699177301170536219355920040074134136653969319501555322521150419626401025585865313382822956291206566553737532235732530969963455825834278020912217427762364203136275520862757107621394933795124309724378243410380843958973508397988059099164976120792218528358783016555191892804626323205756454657866884731147373746845914289361693154593108775291256169563313344933379600146132728803829867432212133652602808825983013460635682168915508811105978268501761650347769082298836559994903621104405955196469211391980041070219025876301954904984002877730564280497763944805586168410891473748850661265232986541674321095802728486721712238931056480643583629558711847383241482876612146256858355619333258631410462832227814220371745945558504280520174359013520427591144452288739370719441183271086607927619952436146197543699317699335651386718131281022427120191963869782460639879698199438574263435985578420315381431101417527225284245119323903112814207333423164838732719095306014025218626349843748002047340984905242686954516124811806420919607969719736804272031629476025283161073094912631937578688359191987712079776024984591247996422988411709527276456426823577254640619724224300042010344687620837853856204946075856450991507464311292571124796609621739683372207381353493933020092746293230835353941469457860221475443967730744916035833852417117779755043038983399082413218013666375451340422807610279701124300077730500575641562001213369440566740078856745236395046286903448924807668773753520097196005167906806515420917062781999677346723045359050899864411340391605137030198079242912793391524468009328114728320342125702637280411232700435878749993559210350220646297704715171507123797831467131853101291229804831394821611480994414815670608574496184071726491496700949575197008505879500015611671722494125771594093837878811473636495180978455094860358279343078935243640736376585761248552958142393793778248949778373526006125251131889136981816478966065843856861682487560805565751773859240512282228347475708996674844807218875955372617395142643331812715248171235325388180144382003985257061396298900401506818409372530152818411079963959586189294879841206957913001042599211168935388175381047454908100662309163719205412170288199105121191726327476570131387786747078310951334432838437306287486959700082360340796200058195747591884572277794779655143656259983831842542960277696968128304961883645341224059332584480005500955051552151839804060419750985156711135490248183444925268179412508518223218121918319974713510179885785746643534941449338031628015897832738280922666013072657624917468303968499822395232267093984619273762069527129241684198610904126565548599006508664058324230543396646836065813921588530206838263324622295446250823868699588456195518518072241947481794527113561797945853421570366469658952092427734634587954051944615329900113279536736440353108103145685181456857829430165654807225188821559388091471717580339345127310960285471073521903558471747932206506943001244827154897491117681706304649301047149432909358686816742037393760443476207265487529754367437153226281780011174641768261119453032470867161502979090779020574455278369154879225498271491644437783007160678151013151371890586768573925954579002777977492359475899375670988786805873041023807973250199138419912443814067244859279304897650938140480986183607066695967574360274809078406251327039678799240915267157636374718236286632565001399999173229101119592948537951046610870063797004366054994539463118692258713588186598147056116389084073277262299894907382841369433073581757414477467691320328537945468399131719432104215660686209012724149227776066616989411318333682350161199886505137585608431439155106676382701757930108636358502379941878610425612203244534942473989319360153877445528051316211256933383706937338684681852873601256589204073765392288888629674206149723825870626447583307914122081240229203670796268165179806587730282387904124125137464257475781409412994434377776565974355599781835181371886421968192659316973752597513279733374824439536597202222413852593348425178899280754392065335476337640450569749487675392940489004881667767759617106729378313252449599545709257301846192997025659950324266567438460167380658530037483646666788217578107769338643519491492077244759019961375022128309972387635348249123138232581332780559932986757135616168064308991797030103906617727951359244051291447068681651760680704902492126397607078546461653234362832101021676682139290141624863878092516747176510972426067586736485633613395683135838911669230123147470807677033824599204862957956929264638501267141668278132882602661963084410467676066396188179225698720667553949947440261981894327144366938520119867942141354772293963450267654642559357143145274377515044934281028777446730274819821610693705610016503389698695234666744865262718011679571244334175602960129590870574887943257904248882398504416253980474942710538808237939839341749532957999453001944306654458258097854501824683525699695647396269702546889735489784393746868772242161898370114260491941155512446092662480921672856794212230644267060108365566152244478925059160467981924473121140375686737425743335122371185345848481596337271213018156084987277979839676336286521230860602066309014524257581958934452145938758695717103382716224432933192675186140179901551612386235678113119947327311801352214769836162319531164607160322555272156536354858338005699621703882900715228102350505870265096946931318136189215399496340948124484735792579780285623571154566730532151743027518707774376826933625105566501130878073990098935216326540989962112125264126700967383657226380811586355987805825919625118408053325370669500854781922064795120251094785592067654212505698087747158972091624388001944870171712544726967005370452853483968971408961936180822111686515737030320539307742621959090825674274313360043790063844337081809641363751509254937534374863302215722451591050771170576890665903656097561500638543731932956538174599763401195440870857243322073899557199631497319927360271963721686728540031059165131944943911644734209790740793181519624351829726523471248582597291375522095982546159086204297053027700847664459496968472114231033701807348737437779360255620700573977615210184256219560012698743887326819480960160847027491912315923063924150656260368714843414125854523921672420264916233446682797744752197447297517608641508062283296267656386181516877838284279729888735227234836542466932333000622108033532278129337691818751061878181587031988023498629307341428204704602462322462862733351154653445597481417247006947511887795459252770160165239431859147805828503116513007089925393268526791983668048146344207262032803885221206338913918979398479238803854368854732972316083313078200811163903012954317372665570774797724014618011119661294280991596183898921942227799962457898394356936525647208989921611937370833798924964548978596990922706352541541482269017644883312378117319636091690165991228415610506582461693527145344575069563220224081728761631819305490187519203752243598275100808960770096676156220790191236611430635839068825173628480342214678561394634875625574254123642037911727449813682694372089661395100814841444720545477191332271899117262404506998409294617955959809708107042225525476925992283570127450761771686305427483533249426846068052482616698237875587240784361399033107972331473141161376641839211465080883529848215012393357677418112050131292190943642596753249631429925396960165665799110276839304354340707913086262710150717760727831303838771406769412861665003237143562695004956759295315689564937423970570624221158123231965970595720186880521711241863056929038938264895328458275402478609967180929753077641679197219505272233357232060314983029774830727129195384578919285229559692377991937948251768262715451783819175252849721516968616616432555755581666496896107356199792561668213952839346293262068512468955734740614241983050000986651293696842749269933990505637186662502093646503669273166959499634829316290001988171261671706066683576508601527688921835427819227895897703768191303195743772994484912644342155124017781622835254003449080517782544300737007966427424433455472161347576996427525889902470739457949285317280955934629166770548262403069160772622155041415497449792387681256637343223539755304646043090442143220687624172073614181310278795629392649737838436373048195546526276014626361813838466119608749701761118687172249993293771901722054493569002330804555283514946404448306206818103065871480636749677558612922651981108598821526227720052125897951769327538464260069461393506418838381695010859757327632022369683280803423470599633697298016728099382135540907920024135228948878762214541118945152839532127773048379970943258239490476648358598862711319202638440305869658429401312473995197773050072929334876835006855482490036431409983989296640380988748480767674526610358536880641619794395860631701799736371481222944170878393286550390539096348630748972149255281613353480687748428133687236143353132976823653292484938022352261958649457482713183283787283281878637496450548595454658857912258716042979113443421461717225613067102167290853250830054968215648906111656526122944971868887668988025259045427338059422217206055021560645304250661368009008259213900851846525849430892519122298450476242465659534139546398453633217779885326948919722778332805045523942714995665612793778961206685738340716280044008136893066238104720145586371672519498348408962379361882336889549376855467289899186959588925429238365040076541393374310520096546937921831423902538437791242669462945168029673980017763267552307238502405378651310162489078533241717342182753606959029140256552955997738314829060341003523707298646876362831642163601660120229948988408940369825489831660061218684240662391469905936937346883438288629136444287382826200300382828993963162373594560374150316502960144681052868961841144863790851301106649513107855217303572459524732184345337985903466009657142697061672164826942957288497482331854053532602754108707099784812252872285160650706243629397534068342558816735216246668768427181127058762310346607653837587689805375135838910301049529347182174830521883055584413864771939391335774083576169016092621730351827240589064341330913977175403336354856017129504895583305384172895287772372706384294684390768838826593370030861901895788122578821180334838578973905263484531489575395977212817201181704087742081071624445957516323315730462134733413837076801436076567522364683232012328976317544044311536770851585262244959680945357137713607356078015587703465580039912313466277274189222367845705443247493007430297544429927196258411919710824652970553942590745642765869923008619371807589207448990563380618316025337835137874026897066205529626945507807695854154589413077907106587063255862180062592550108485584337732666173213214474278198004109113469374289951214050330573686823126749455907487499896531934164970597239570806707265576756445396850269957058022829175234328354913146618932764797542060166236717024287667429416653814412166487619043651066866965057556758425135414358784242249408901909291431254955916328950539215258398614860313607180847734807266747328950738006659513780085447384904465916595554727582798218445899051475765163841786325563268328611180871554736064761839800448803712150013069037472902018028648228176166932427633685302425835561531264459591084074538459663176767636965293522489026937572440370231485214316206346639174375238725393889752297642586676022346094120927521663927133430624312050853790984877473726700265584169121610824272412861660787525444000824387800701226323370639461849434490749601682457205890757129470033441438642271176406024687207122013366241211257329837829984964702736998083643487469544205892759131932181695547692537033917150357260476008842037109994034315460931031730407721070279834889115300578042818459809840921082236666270049639486772222636637906623951369798886698767773544150084552730451733463146231719157689590016985256701444093921812773039656692309335139069294945945717934332740815923273882889786898474723173884430435558446541360755850240121570565963884415809316122547211699995013124028694379471533495170639131187928045299759095545250601357966904860066342134460592309909409191760243297467707492555746433561943301385735383142146962048404407111600869436071005850960258730637255133695691354684571300876719873406447953848654424928581250984011533660486282251206572101964897188164754324701212464965315331210584820796188074550506305288655849538281527947650864961698387899071680647294297614298124699396882006832545746217862287144132449341115543404524379181208369730402110156294288150546810881862245255948735183143707734153328504384630780413395598796922276584703708824726553370493093543865985984461519073748461144986471307712532635178011156116305075734438325670605560100670519315029165239973541425343131228741264709519432364391791081786486126748142154661319702253474486329950736671214736627261975276430005955459162079899140106343403651943736384591245621652277905240779126776181082152231327449401959676354670243023298796895722816202993275760814554650223978087351147478652300085276486159529002663361044011985087334787116694367979050297968720970724904522200034810149341600364079560158966345371535983726330093433505621751390471899878060795390749078333542960023086214490624966216528446643691431161207159033150856152629702512023176519702602319245305875545926783731448990364962966235910590746627184621546104753816596070743596647323659277319525302764701375947942472691977602575079829828637289246233635052957125831883435727836801659699333559653818674065994822992868724550034553970954913523468057789002274349507207785286124090534891288679025608181615476990261596258843204696889064523659280205089941540766150985823809789189432443414348133691780879944163713367347281984672608664583542787599972593697808030902894462165073985689764204309054163383059579192416734034732007429065825665826516100043871599341569608513256161200108480066062739952069889661418941496873229000429090023799177591043992004188179117883647612546526292205157111751604378724915095320103781458272678673091112270265368243605498049137012636007619251220592636887386802341279744176047237834459271001186294841413581877699651776790048213377880995723456109576255310676688971387535635318107345666366322620021767481967272478747518075194112434662708691423145896300650697701225320525935588785728303200108554831242075983580972813966002527495663251301917132671410025495366850370539415958931086411837595900249219201223296397412973482386389334031162081959080923344016523487998332922907261434694835121385325293230147872403228217500632133625197786530810438536610146073793056267083118911372289376145884574101520661059176509260467324659223356671825781043592886664488346790558354836367531691963399892286657351991056193726408442089429113985398885235678815606281734078662098510100327690271025192821708783599052229183537097647014879435699314929986648971025936823208211959207445448203501657414162465963537584227123493359001957048535880107442117175776013371073934141467722803469665906186932510486320409518738867174614524011945544536661954455972754389070814726103585631008625550277688468821658488990839053971907114585103846441494876548754371322672204871328322730744433168295435761869881057444463186224080417377620753128240038353111852605884438656251568360475570335278011042745188291826627322917241460921497865058604613135706926332215306782976603627022853489760496527796807156422714302143662007798614135647743824723742377880432379344652617534384748911409429488301246419759264090414575453272658773728858941162700297082767598941114882529487868826337217945378544692153095334143620231869910635711194156564348549507392912521569873582510422516318126988603084868962287164506527159310205730082012838339761710038207000401486783641691235544913191272686895988186228691884356509178904891160235953491912158526975762012097250894996467351443335671905833521602938276655624154662659864798541000466097282692090434576743643570823733423553655364716415396102721422414233639646532923960761217892597164649931080147016504909601447066056660258666891547377281378890389314534451962735098196909754063235552485198082938294004544030950964734202021058826015028120455552971103238667600563022497945542345660321942436576832914308975449278011818056469891712178631541234030900015943667431868855742868486890432926386007229578538926303409828757959357125407265885003800409896932153178747148702889945475948991135182633059959635382125536160673175270093506813772993445300574037903663028994830142026005977004164272488482454003639524667601826902244315687235615607783695508106325455653772170302145821427303741018072785120666076822808990136603749011122709312705693423677358118436274547072989823075914550821487410705881921149990992036139445408663991382790743141116817982448523743281160477574559599725522171166266981931561697367675169616466793611544155962908885090105292015930919554617409205158685432260449118652409015352300547991218472968671420919269149027478748234189698426296567082948418670629762595336885901710049987264859104356019686014365339010778128102553789553462487003655201512446435043424416900790341743554229891641156998572997393496384855433617955939048121132116157769020573409004589268919496832129364609796767291882580021716293455956106502978291404327619161256003343058419820551060681117104391350559654983032458555330639075212842987997284794371706214103088619039309214372088272180100289061198635825192979825120328863467519163944111149690102938419166241278210423417521414019839162586400838565371941892033519656938745901589089559006390109254563349595531504316516549568803803112152203330139765576845803904920627186668568468414436777629955515636028177392809010070609345429209587244024795940089136893681689710894284291221993693490588047855222018420664994080780925180965126347858570716876002702226754053617781488230971076772671821786964414590939938039910576131004511759964981260331998379877738581771835897259550800685856974821596225320997905102386706570114326164466574433204757034892016058982626134283881270723202138036999888941996450157998033422978808059135394977412548427882369734853883049073634918129296371301489057957982987407389939969063181591620264244544098922397096441621396757231109983196152127366151148276197018370704992468964693347714411927039799452205760947278042291922431014477038139570449247316806438629555117787144634096427379162672038513841618537872090317295051476942816844441484836357707146951316237486790620693788548508069872152378266948688057721771954507298372977706289955466135892652479484636173593468633586307569815857624819308796056052373985359508625569725943063449892937970328922380494349814900664491144482784857138636402821259270795971011689864504471958124294361409804402025940880485633422053810815507446489479873011841659445487049727635478202248484192582716160625485747017493493709796098054983832993988465015261155445615630086108833183926442705014207580180655690895383825184387380697325083310596588044346668404332324877561200298967612527072462560637947918929180121895772213061159111011463796590625217047260027328972119675041665889494530133502059385152466058816237949089265454267107615028115741024936502778061668834650923209862537166338296683173488321892681702952778643588402707892903580891703511377336481192854860004426600633939018546063318142286829144448945126923212156888849439446392110260434927421387663231522853140942394107446700741704459642825523859278106182488098378487794788135291956483230328181075550461699120914906130649135650620551417370106833363078088799031454470329488996082061163981727678028267780472249539376712337240320818236305182029256266275823605032014119976079701944304102529347207897084715869634368734616954362233058076056794262798263244512354126870657287475761716215393858282585507613951747416446698479031684925511812880586754737752883376847108287006017076759338082809654984109755462177231556415515694874396027589899042178003144369844768599548522340031961532042779889809654195117565412943921057794118181954373708351927045419194016249380497454753618172055891734819858969048497841809241050702556062846790737789086453759561907093928786384914807209735875741078538996615513300663177880709602235170348129793445251322462966568753896492446520526733578442051680998988889660543807039894543069114618900675344591946882820876848797006368178472244716331033359451820804361243615631830301632418008860242928364756575003220431094154340504693677205215036287202857179180929612535501170038897572401167597136083762320246087219543778576721319260405205823354179832940790785970236580925659724028242188548226348908952839975451811849779542875306604575098444667406769144694347095685274649848248568609405941292980126661412234738943018450314389001160093488450864523926377614262027435983099521914711226830520857236039955269102408406423837257191204421543138397162448862673019283921978587064530172025807016586939119081622285320592704499990253324145368250091049721570240893704449774493924073418912889733906834447471378905102894252785173018335260900363035272255725760743897714442167965184995312502572813403162605605722441008213757649756370514336943183874533259528328459828285717509207258965842728014582556201741292892701205660178974301397856197116684837858867773592542811681097114313968681017028679953069715023423289289690390273895645874762591519420301072633405486662918894257427511129077423208125611114144807653157338338474301336588495961526691417424229949338779817074182174564990716386100289704647062426559273951728878558374215741184127350319693017944230344331917540709770659659052297478555933192633909117791760655823948416430216764242276688615175472765308990751964513374252434543439907440585723157220304218888915471994570448913892198270140688522762457572214583606203022755447427352538786065079198841282368424694169461254898980018350423150755259762868243218250532310609946929427377459505925084766563178915300147758172245111332270605440053973803389781529384996600558645006424992617801270981434950355728290438096359992714670834942739363908279500863947337903671767590769092401724864396653207678752574905463469927393833684784475963851746688291124102454437838541783046488066184486485409191231615557840702948894163779728881695842016698993662693834302345479510665885499770467657018649833720720784230431958121620295456379664102684543958196295542573869865457443418859528931046178743882791257343980627519493179077422338575449742903294620210624780815922473236239042336060651246076387297312163835502600676588332117388790409788482067647612269680878470931924139351070065541931148999627423036344204690687228006712901594394335930931482753742768371944473756509779527255261002566768923749329024550921888198239142659796413909441512631147290176002755697585069938578481825610647226861834216109327646015415517991946271058323389617217383968986248815823531956698618956244020456597372340016281548981166220527823424563229225369939965903823357561754243839863699894437643512265037608505581248905216305338295418966144349970771525695385693456797060242568090320113310339967578814520225078184148003652525018630660030009660340571531239338802440622876147523412861923663640529706793590686154060090218652070693825817815022295813098270247378475061035984233198232110103313431949731134463186957146251154957597379749247753554348839242988664546174826670757182194931438816971888458637781901205683269672834941190873594770191244152579509388325753602902514845523566560763067457418384555914302353408818789518898013157732618864745973666598746322928039308519993594891066554197587051543316260139494351153855708083900439383113653308999788448341919151776847622229480970512731949622565784535204277975495837320477210425857756879468104872035448201702367644861883996330506293519834906558736311174058037890414851323122118863773835726356189694191645040362060985633099573247965548348636695428922481282929041592993466424136140884486399512982463569994002886841554752289856432046029368301003022795952527984814836783337907508367274637550622484757832129533882360894144827752964917220139681893546223430846290961855674888181603754453261889267730195990918955565149149635304008171085004851601771617284946576573828292580298768538914474414967702048644387349796225493652808599730630323709092984217761006568989772308772740583173323648376359316040174484814713137596401759339411884038482480539176169070521634105242844363714473422474472165142314037248407253915815214842142466627682649056342700306143914059337786739028581360253632344324095975932244843482051898266891313464281369651041459375030064681188176639534315193189954490418573744795661758585258058988477098390497036832188552746813497670946205915922627174354548904435990602986248139819065498780638668720984364116834218242342236837052780295925119151631209075973731486046524356423053820105689493976731742697525638206461883589209662997210630024520826899655240686560492899341536084026465849017170605606427110088423750941946083226139277372931614119279148735672455998572625508861809788924368815647274915325695579813566444007225894773782569996959558401666889736562887635528031374033042013687084985979513877539289301244595282324584036612664626513487706052146672112959334303114958307867704119161399677039071071854552435111677199916726681318853278351827874990039009407082468567464819381672007680481987846856187070359450308239804149465764570029428715576851192969949432460174923877828461983815776183399764615541584180190898749216359319053266368455732072214310862046253469002301856736218336994082423355459126826663844924465747431448604221235468238425982700293348176209073799791778896699739226023183155994086424475850360858835039437513323055674725946289697757013075399584371122872254413714366258946111418560479064651102770043810527762330598694027478538443643242374267231706869131593903163062333497653736511244446294099051875428726776769059721982849675271964741351891786045626995831002342108731032532606525066368730688013987862393034791212351351571674089489202399393129286229749762756464601024285915234580251597493177065417416964655386845791419182722060338922395206807017940912619091119470489100512627115949811563510737100143252955447518531125221806580694376290067202339927719202958273662073374092976787680252680574644794489635337616680280475355264302647699097828282426619947751006412461294563677850768902550911616292586770005490254829339004234646055810454411940123907961476368734282912216475021154790649491581873557651717173451535710228558385975720569724446697300368461274701614475931356137130089624757980234126201291099841577351189702724769472080178991044134850587295050676567242604420833132798042927700705442611048583482382325541945597948354511572240601892260609030977747409932002840540001706061124428767519552426307121067384771982373175342833185095837297385737023428425396703687195681844464256509304926248999681658565605957311991672296663919844584973186272563910588555908817056123727297561961822289729375313630371485796243271242366070353745126241460943452336623261586215155556130953903720793145874007364537702862201122796527972096955854576292514335520911750005685134100331793536543006752070894059733519909746069273866908762229549751225701164138132619581094769051040617275536785892248682694926511036643277575342789893797047532612150691629010543242813935719808562618275961285403526823866620605833016793869560130640253211480010882480543810163074874737212562826902108160268882597366913475963634474570274275244225215860291094533327112083768505825342027091624458662795327914277897690945895633475668075163978108396826127102144578168021812740444912920988611899174323136989972674273060125747238662553508819861388500247881828238530438823445959956197389646152513614401246634780228307539171020085391469225359335533267306348887938988211928424093139920157834311086064619740555127422974427769268069703823505721991068106729689824184173943308269100275713822826112583181817902271915513604387177098496826208272012031641840527247750882738464777059351623027613815522601028397596068439742739607944847760404825953942299400099212635528734405541667342209793522441017992818765826326399602420038638554127018020242150988209571287733928448658122192223917792219939642375423723203152628474515162130478321369427848246050191546621184492078886094083431528643247831348105206335385912870491158732924083401444167383923292212820628538240130613111033493625871803757217706883663258469970419780506390051237888504725886042225763691931576881188898499557626259678436186457846797168949780004441394199012211386583056508987190550740136979336309163187110772627648798391563111398594253259677394720845270329122590278194472471585259869216530922722423146255134243393207507790592802027295909492900809088340739930012166568839585120775861103976861551163944180193165501880360787878472422382585138884566997199324658656127990986632078345802375453117942729878777416478029071145195135956598996473560419052735248802897759980146802438452701430678333352558401537827572513284871858511126918341927467126753412685559525444904668801678601608555543318061998491537268201205818769617626934704568243818842040844652294870268157708708471325788794345915468546799215215791891090242330230662681997424144566570838364910851468257000683318265782164047633472837474068158139139679258535758375687774862825894829941775360968655927977065969672271300845149798055334735332221329231972146436796640770760576916599631768073510308574675729226345638861951964384347801608112311994725184891548199529736615929319842789843424352764500585310813788030256297084598575413959217272322334153227859164981113742798171617515256332401815209702915520018930547451077846695469488119045919800701249799815816034852053155471908223352995330744317897927162890329523954494642481759332637325957893158810057213364776400087115756456491031035703735181548451066473819785194772837159914471275495992733742742339419459069181067951508421349063935047092380200225170733638547566383111667595170235872990797527347186458009287861973601845626042461271121170732715654248651786197068192336980038615776563533997921414502108113699368478326187348093671462111937143050095167428842641656489799956290353863436835960734987342993668117111443875027551829172647783338158099052957999694990517546173074848588014382928162549358412310062980616564057307312210832159130169594262575304272644080415570518672312359239730354700930806213227910985923747793747425195110442259790094825764362537429793470268091618090233268486624466845712651216699849792415760064889428249073117180727164651556885341948547290852476216485019902333827894700095918733463333256256051356569994733412188812207643468141296247638029480438242301166229003275215928826795571819410145765181514463294095882942342422870683791266888021946292471779618346138877642560131491137234220355149762172400847662393329760225872089226445116597878869515266118699943146052074596448556219198752578735673934816611735075526673600012098847577720628882435527960703746989716768228081141329903382175780803925779027157297798308047410679915409520959096515044814751432212322446034428405661636479182509037640560360882033819414271348397850942961516571365740493376269018385193963935724351874759602491431224453978568886246526331794471522080747354078799789118106109004633347033083027260343878944204453331525906831084952824477252498406957070853156199901146489132947310669580523842240693664902942992109833906275767497874965144096806733952185870159886377025998231927833759127219504725754735097159386183496656807839203298068535763678250321121962377943799382491462617665569783893205124545746811325702025306992000101110945095071501593719547458863695558933817691301479162726667804647108575047284499815167160203633525917983928615303783354649158784221448767713960679634128368492285512353292820694999294967928463338676413654466835593668766288945535490757716624327365899409779750262996854592783278314806125680390106058651914437576728083871556088905492864559277234141390995887621194335571580940823391571220601250006706352447038226126399476457053468031067998608601161175408907295271858182353552417717364576470854864281005798894298281940125212188814864185391024908689037918070194169651655129940611692827200218185135703226555177127339732232681487509343316914368776757744481023307959427238620582757434819062247806303814726333701426356560409625676236222910278657511787230186375794221073300393729675659927541196220322241419025429067023874525141035100473588602316520517899347729323245142590853527863157161615565389581847980633678992473379143948664096451404398311618141143646646092354528690713439981116475587205256806312578806413365346684903718292002857656176399080020581626280646216608210087133230727901854210662857334181230987687840637810607863981980289207567096929272773789209652900110407225848378287498562933801274014304349974655611746629875268285573774570907246819764324431459282394313353321429262832942535019236397469739480974144190579052931671033365840049677944592951766426183368480098212435419981531254084172190112190236115493879634420083447576902769809980670393828986750553802700156966046480303762449646597333345952377209810155082220680403298855472546523880454541003955565303038905847546417049394735729060429794912559598937127450562869859674688957414416148682812779357690601409066452897703265345713312171628302369842653588498958305751292385601079861086519035547271706392655587162891195189605602838037580803287674640848454251421473892598816075469193760677025922979358374839789768581601577592000180307208951022899005162627066304902857935509140257346036865772569066941711867030622910210832288925705469232555028738452511567623949491027677906140410936452702223194792531561020584781488316847300515182439090553793219693414693655925975217100034893575353321866410692824488863404061530169305801006908177477073493220801921741581233245321537163113417794771271930283929032551397624393484180194341995684394884592278233876387596555177041275368712485325816142307987699324847740152379934027369456944055071210543884227876154703403196366990409682993380061286384135122159699263652931441024565702706272144793921548326587478232068914118096058215971000641829335610324976329094983694440924209680072684974469265796944140886810198755181322786155382333616884879565488164770909368741335145022681251448067989148990068201949675619584564720630491037485892518246085214895832920339543960223143733971397606055296440425671555111695795366862387996415428695593472177342441059243429111156895135166426828680839426699902318639838701682574383614521266204803743354467184389663984536208990162152237574524241745391177417143660960338985367421141112798918580844477590942862496701985214356159981604109453626123138745051768267929897092028408590980837556657505001873747234323189931056827725512809174973384057919174028449447051706495603014590439563371176780162214886356757784656982213674047839478963777384394255656741653555923997240710719550963417024204259103224264593820055548565910813999644510468434220397956000069407637801995208827222452665168398681096407077713199956958212935367302317915910163032125716558269430251670127720755868397747695738983180901169390988574435628325892746105898217547992120288084938779239760450381316955927521927172745841966825739027368703471412598970472580204477022180213005277055664926826494586438745978413409204412645834287608201070210692499055569206765615837461663144764074366438942743807786217393142450877085824282784876284288195399832972208475835368163203753400290337448979377178103801600998413705743386227777960094216179998903886756404379905953550889050044539643134908913716981609190454671053810937044253035221993608901678263414177710093208373510026476129413035131270992223053196875843207979705296861526559086159650082747355824734258977214325218361322160834433519578977137357331585694303115314686010595034526371542873099613447281830534513369382044268076292143368474416312534225216084046214267453156746077058631296783972371616155901618074355802719993229661251128425957921558105239753937580660321169136683227689294211238572637940247857711220999638885956490648040184202083622497698149064060370216377825683443313036326266391262906754044312565723825077088580153280849846021773564283604107742447697525901748865983669177733859009668716468886308278851443690786201157582390224826036599077186123778507247221852679339612983605801264057219113785336605260195937718636497162311747021620898834680716040759341391806728299458875125013973802567608839214029516411847734674655567651765688546164566800483426090422653942654695944624459760447445541337944840215178649551344095672478160084894544989699993760632302459163455363066386346253615651504152862231202658244084569941871171594030432053953900223456911814571417372391546457275764071236084737791741199633886148458031762256826744868665335135833032949133859243902303526376002272096878469416311203271976053337556246103583185052650087144692746611339832356766405562981433529168614099491902678040471135320477621226969286311933605000050014063669798237448676144589413311851367321539622402128727912876250329099913912166192304253795582038632697348092820859958942238206965863851277184389955921300822064999196566611927420314572705841692744294605993254715194495396579988613456649699103481299094684085178962724705365764129316767594025096762404179579465923814730150589837815505856950743764442338304052879604040629185739445922053710527286642357767189065083227375202293663234740554311154132110709532220613296749478250288530851787383235402198290748771311225919848518378616683934295051213257112806594598554422786835721525030527887380014186268033196265744177824912958470350717606769958737227484022905558025636809205782727362956240192740112344170384383449594461203708367174161926082598223754633506144723518805072026857322820804059106645252783706922981609576449736632019229881691729883094576111846429687721938474107916194825255302894830849475680926647994863350760183364085815527222197040423569834604059552337159014732761310595890038754438451638729238309053422604348040031217067281282054941271325260617440585274952204641144553755200603211461787773135907140758380931042449823886817061993362741298802714711071386033921627155093312183394438122362750504411844968660281264297117159068214122819850769723394230717284683782528052455429911204620574528774575478775013161466316413864286295906998863747921525584472776631171847044657959508607275444522463187895000572263068077223370203925703810696592888637785569259845762235558070167733218725826970015866550544247737039275380572182058376200574073863085969161558426979509473799764549912695917996047795828915185494421872944942449316908481601573234866333697030469874715439873453957496154221947311240447042428252435960573743205734637627039530855266030916366660840874008391907120964540021808123316614776189073919580985073154597064958833453757364618124904272215947976825152431284327348491497336042743132159516590742634493606673217658292698968531220586151393312679757920256592419780298323315560150642250531011509409835868477195194706173476711741849433403902114616591973858842834262882584415554168629483726930077049769052263995208020205024500039446951764685816612318971191522869303612087106321037496269654499140973392885490554534577620426771779199125081373962492385518552918617023090131561115603684767504706273276632727376776772989592582855268479309357995939170205188857208710931288232408167603416220139184385923319414048261691514903582591754956535589686991898729219505004318053265336769589514483516733296236882487765445892009553596564583080410400246607046618440172271490744929945617077530125826120549132459782257255279847952088224988825938131322239707035501732133800535737274008910468955135948609615074254377874755307068086707820906645429249333930466010550027745465178422667280024906218588748448855646567920159317430363398632416834058735465777748062515991707668936502165029762572820912900978573104994317323108711298347061486855703887769993776268982836196038284019580678198174057093972266967000531838352928840297855140923648547220777115232061581117757754770152449468155984454495653999881990885355416602948554408658346027350241740976441218734067123202509818234799024106325030496675527386411957465252076934823969167128156924764643739890825050147574456089118540072576989441684839488918712310157556262423761539257788033295234669740350059845683479882490307513731217337249330837094604974604627078058468839340534993747367502567298437155946964552190988946504927886575521065898919590569200122738373319170737330095118483847311145963251560674503058464044016928268424986688109489730556368140740418912367164125936706629074824174709551941262280271911654823536966840388675759609799230850698256477525573801643398916605248052271538589509772388528663064873597659167352011833613155510136560135327573978165385661886639989082904402531107473196122583940931919173030232647029423487876495266788002379077562147028075972440124700762860479159032927073729206291347259681200179054943973995000806806383659191466431192677104944612146006839661582759114698772146359523826458918681333871276405966763995308287104348914397519406792140542674709655364714530701141749696914660871201621876932123949136884119430192337462777404159336763979355491788086863647321186335479807170432783935922738604688796391496294548256915074726037257036518161713431225488215412877980351871101039711489472097404360883823077483026801378680722201811348862719350445434452499798263367740751437154970956333198923224621424615728774850393337255565023242812960811307965281753990312971247397326275794146326904712570255836667474782433122491081183541754274037965482361956005288350817030893958874887256776474273391689063279192421485259168309593079905799686771943226499841481819550822204912229906005058648282311695730311762010079746684138777686124344796355738756928628161390715499127028408009343735748903833149500771379760438156833313713406256959862961400403252179693740550018993693646806344030656237285472943380684035749853602594904897731424489642871120649003100407802683276518481439671054965597233632207389567994561878019822088713728165419579965681083344169355979960460788890767754523057957550953203539905433324690830575740301600947713586464557821772809028035009454728943882860114297155556630093182097067373964242197749751589942186357560097647713626876739226963601670109227227924867452054465037835449216120585416490979405577700641183457053078224270977080461300735621543937036149934109218160724464707602232222598127489488010219307270639571298624961441269497333469442129089225776627129360833163603190002522566052336270339210180571465739981187362495819971279376270260803056215468267443582622616866162056350734012333971000371082409685301283374515658155866967591386518148822817384137262829002757205037871126777349883561499139242569816908803990820211600123737082158146954141005792302516165109000547027197023105308476410182193523088616993525873069092213245787674601647001236718731158398608669062236873696660054479592618528888376686872682650303393069658796941846020910772304793212115980599994073895589224048482001110801710422547517187225169196424371747022778468707318086146265715711736946128565782292507674749770925086430392326921993515211938767270418035444414299505406565823284947954606545952699039209042896601725781569552173566873153686792589547522660136363245958116041152859860959229742542526989507652127538134559284823322086829894114791517653016695122803727694765079596772065994351950092885055838939735053226592860400921522419072819260168621051602464679863839639665126783802826336842509961426406978903118394779312781169412708187853604720791876874998066451094750794726551576226098095966224665211074017414130114768370784980179322980071212490573485283438490213749113114339523623289212680123952248600088355042542966647760811404671828700134778467705739058896283237478078939348578855988679983789665623944428272192406279006881462080793880259224471811746383926248568595555779327331310080895951141057200175264819902242910069727763843344587332078895094620049273385200692501222623525783711343855586797695196088714639320694156209021572690641625141437227749704845087607370259231121487221522264545275012265997934937830304978572447533431672632318068678891254239629042654257490067437494167884192607814090638915413342005771428155078320169497700920055363264502186491487201516317304749083264395370703150325055784377241582144400690571943692012521329803211316133463429395175722570677117916039224658692453583454920388298036739637316078982857473281968218080825978678365648792906343466529983320999137618053976569331984365080546583182726244354403134812529044460833780076101304000806363989777543628078894212043049417454898844272674142616457771711782550937459972562499503021201477720915998531942493364797984200640451585648361474262643853299085603898074976346672897277881271387258141176949138454491584086082650665217167058607021280447381687970512610099195514519033646695960132917795039712562257132576594458512868420526793993935395851012774280186835564229722997249301797466132973626944912873828192704921408717649400172946374810693887430089907538089466258331181991405074590292283332941379296637928162903752776341856214673675009287907892769075398661119816873803547612515044411139732063571919833538333168609138556581876945498293103965370968767332376851659880191019816412774822862177279613143048777727746494152204051502942090275000983078816093664326949313213434860375805526293521385866313701967657174408808277258770679728223414584041591543433383154194200997383508178540913720264421900472171659297200035363501267011943342482278301489159471408792465850561604678478400437617974737980751651946860589315220168793705239524992858476005506422546203926165802574021256783523557828241227517121273599336204025081009976705908860888662174402809009439871583365536085863888937983793210333049572023096961430297442938415721146737519356044725466736126689677904039960091419255160334107370913901072912093697739099378969055033097536222406787665627661039087463492341683986640936492051350420660076853734658805327061559590101584937459465281804933301398836117222776608256931681879592083434433427284847962487771157546069051530307772027485206940875297262015710966814007399552015893506723313498067112996405804704376267194077835125467789638337209571574472686668611604852618426858994273850476882224091519795715356727773636900099676920028106498826908674091589047746490149058169034963713614770251128506150276661729410964484916481067959879469953031590382595241469565259163627428325367247460879084489946382049599624603628148362780525684717598381001411876150960566051011843139310339969212134947602696454515902676513974861598804991803078365594301800555965970005235332934791680678039618533991919007042374406075935294141608859206930531650212415166468595456802295359594758627778646441146294705473917626341605909395902993013440379938869735305195168830506998486761574592179602478704450489731795391910288851931182605821045190059213969607264886351092805895289921098627886255165011419735740966697576882998463902251049953079447245060821832792578752676395910875110165917182378723560654389075290159883897689896881750382035249977001332626595823202055761235556433881116800090868527962844239095446899855796922602317476233461800165720063578937717775641023012299232883724268751871986694890097552280386059411216313069808171964147364635614307913141470260277733417200057069378840636698623679782529330774746748744179274752041306877398185398368053496075453359586714447064813539514641885752767938630874783582231118712646430564743664979063948594990018644184716934474266707880663266285660587750977041427800684768258389155370294494088635857518031733130909797063351770309565957210644334556388869105496835452470551854476833554805279790183796051928912684977682601140026433520624159152585877169461202002131370984759097846859291411163458408342726902791655872978706019630411437341238979819927723793558996915225758005336557684985769685345993348748200756600499419648764057455766153694014690860664287136255611747478983618781820740719871181747279842235377286262800941785465402697498113404151030462078008257012184583631476390505954878113994306568681081590270583424061287557744707040913660621354071250677610373615792113433419503724558724016179236306766766927717472088075296255072663627817804076980049978812687536070120636367132542744777387245001255419835055930074270164404819423549408698951983600464958129908944008308786143963434065430892454719460565859368079511798860117620425336701931153703769312500951139862229172563009946233630939085835078030483561227925042747887042008326831320002244787499249640091878010593448390500287650413248123280951097750479471839918419434252107151278869133877500704497673684169649904611377879788713288135141078042029939776132977344361539059204207118253910757376431673763961722245971790642562123663279826149876882370018647746132965328866788186284509732953361017910527706222778739550145335078924408392939371629815695203771750809632983395828327248485899901802852173835810436276710327872762777949682254950035790609132667579170952619324557336340327706439941040513534011844260967266133894313681351676218840532096371991600610986981053009654694662447813242751038275342839151897424980341970609088334387279508412457150332194361996176924878605985644362040450996058027622525651672348012032821313871297978205141026158636084241534145661956115783038751640195932873334132051443046852744320437112052656559270295405472707879879099435569131029510502895407345260129627136977778621313095044801972762863129961731559155455813451235769898542539598823936672377370979064195914789918175520812056380589331123176313391389805391613348089059314912114480520352274830319889766091469984431927008579899202219112571572144820664939775135532378025995576068770650948176741823893696225976202411949296464437717069220663110615834430820423158564742561701649408947703166490629424204151371794531673608740994029390708224564167441038419712087611697924158461571363574070730471825988162493739068678175165690156290802774834437065725055051525361053567135773818155954139105480297484788963291357193825180195761562272930519686971845245479526844906423009402780993479164705953337107954145066220229116592224295052293828721411161548835557844557148861444556411180322746759025902214148422262230082964608450748584271296153216467676627227468398565668639142011890042215628515832384128023714112279838596803604408160854176402236124218498213323309621428539359334804999895843666030945665140302344695532197650702355504885343144146663273166365776018750192565497182414848428299886881510338865540159312944217096648552366502767091296963439121064894557280300898130504645294608094117925768206683343598271339989233228714560254933554593539018890240544013701043168546658236703648658236926664425921054155560392538494833568788061573337263305026115315067764423125401769095279456880743496013226702229344062073156238135979312745759370142426772983563911322165644159157130060092485172081702021037272034794841478172369673354549548495482422931701971523494997013743107517478039230731085424526485887674662434245861545332804783002655748694555940272639629206229389158747656298411555993852083798035646610805830411403712449207079278218676933719704718646180326379107779629159056579171382198050515405268066832831748615052310966971846633854928474472940194969744752439523459581995884558223409077329388236041945560458197284660272788050034803731582741666841774841964783729078424372639555003400011812409004138349274606582845030864913744421028473422649617882473641240125798559662258586202958023794305654064375823365542827084254894126081428573669944156647038617091817635865551515995387712564171375301180089168567770914301585654840231268666554589062232198203308959526467714639388075349031884171454696104991079855810921289430177549875806007524821898278974525529161421423617837210235700630448613723940346996605724639094515955359286956284467718376275400370738128605509380307306144960810842934401724695183872806259226132782613057467240261875494327016705911834645307374995945499953175991730371384770289024058861125684723168726567133151014279013518067060562643203218881556427359587451358401996040305845032423500199301422552025046866817575570813046222627824245980923343002566656356662977792129797573744752658322689982520928729848884579646860691362223437051297999392271930721038602581322007783704961888640586311203704153590961933713337940158547326987650947936960725207130017826957477968192716442713869323508858008280524957249404976782858976562156166185838812612299122646016879217727195653544844449634150074934816422957449178453713928150406667707782611476682566099327149102821223669694847218422427706771843784218136905715536349768783607122476869302734934622090371128288681023620620540899191898371435827585050228250613876538035472674197130006255581170369689160750069383673745633520326730575924670513020062538199316609621424072430048015494515488687655307959498055703037169795309467208191115933642013223092975335081235347922139021929646626693113975120927804622632626161483137377190479202907053788547258467815131608775708586163425452204859578049069814737037138210103094902636937505656582344979008658156140360282271533399538719456920505762906837020557579849948066832782429477212659627959564381923120361825171107446797417230993747662456264524310698305515742626641211102879401828538673150700445588971966541265087283417515325318291988162360222162100790081355979338562327648369096902355726798212285881182219469906461086245194107319596694918317560724795788166722003829556073539058804572318287106997477322835412939814910114826983494980990653549246994166915198818230195786340038595018801604646467976549742388344936554297024930835208609541996393086009875620059981312918281958949124946443451696230023850148627931670135052514136167495205370477977763988366107673555319762606719141044609770195560017535522508062068042779020530702653693974311665467663821847591997016338395287531311265243850047152944501603917666568914278489589989598023546141446930013818521552016132875334670235246226974267187503797246608637824751913295472588821144825352535859415132859210596665332219334874436926690252201457750041079589981689192569313543362458324836307625880428489235879761576574933995789501909108234021125148158305617199857550283709985753111070002776048727197481387979904475449207815600369936936418975633294642193991348440201286413697267169660280177656365908047379829212805131056720090448292403841384409931184919854720751804333417840725903527960909457053740048016710692819116894985541114293016723462718554050875493093456184300036015093653467297542939262220729146536644037373959022266375907266922277906313461737915366291818253329788127772853914438793326509664234412494198371458146534772019434131350673386068514785070558580529258268631353253573087444286198263504548817299938590207815820150519254887604588884215108064790698342760088832936163022361270295548889254954044465086668997516339703882636650953818920768982093798984972722210110254610798959208003574506381632187333231636945941164828460191018527594884522448584840586757520210254973614391591427123954880296069970722231242138948597576804535260229728507639343677361615100837748448676417359345282310917983674444605312062847385754975822902972437592971364372590267540996361905355240849245582541169641758671770722043990679603699491834642601852994878417910545897868103853769073788292501431992698371257053455632675057671719142686319102011742917539921019712905537207282361736035958556906936871742247073619679711093489835522143350707945730304956151827556713464842209421726971756004196937881147491036438258913544357201185495529675357037102927892887767871882402714955915335080501762835802424833904166159770905552251061930877290530471959853101890262039363943442283481570734141823189532867225662587677183085213334561087349169633000887082461341449254218978134692197512336805024256967296572786848272173398703249247974703670957962301603299835964970914744414350497577650878703827741960169660189045703770793276296888593469770958472312716613603692000141915956359027871810531333950514418814344654463419975432633861640112775997128170503146957621352202739780879614633545694275320671101385228469981127501448224271548759487024781196634714776178283479690455482059617885527625695459277601544189102487117971489928539395768349339365191958319528008337485893926496673774693371176540252151445947250055572704926365347832802085670781941952799752869197244499504344340820423506531024663300688521689757548440433802106116668335472195308890382501945006421223367461800532113790668160211853716518593417582827649399955113672343605398044290662696048777755525365535723383923127105884032921761019460843169300720661451673459318590906248172867254098764599983328111306360294608182507418435724058800907392588687950873255494384364554729880193752522308240981516471300744356858037188466189964333234786851199886465011961191781475539506712058853907326271914893447165876035094928705633713135069373967328483933492379176690395248172359429089278472748498230117451497281254409563564051180463386564437179869230655326539664387638577339378304722298781910912646047925357902669444513133718176715009439866487680458936902295898342062793274311545191050841208236358326672663748741683710775706109775382440296398438324109576905305907172539201808691346272489180592933363279367574801467543094308887667285235617971481640577317849227824922474029079697842576019906861994922537629792706632275267590017488167913870268491856073018439244096510947024219852559467862191105892313860842886201946709835749510401994464119161055171378491408975593305573467928628497464943063063369165624454286847080404009919873691887276130684226755288935011156273638828923046665446726986448719389153395294243362589996549977179861036934400162511484921769678507361272623511905419448585271472342019259708769378607023190728563762700816071551762554701704428403479266046140173040605428550633834538192474393905146273493730803909260188728707995950280354722798229837512645947079162286152863811436516489177354315530348688308175758774746136237941929585688059763001518321120676586736613633619534779436499694190025220555238999348285872473610756619838554686391205212020803656805148525778163614661751032598448321178330596844904415677075453405543796765043201732866306281758036662821020927414593935032103532719286259104776702929870626399442829233164030651801943714030994996276464149844498017846537060223624400153941618761752760488744925373281931038500378699076484325172030197837078932181014017750841000987131988267730341960651350296513748768473317750988371210420375583706344810516359038695762452831870845215690682358085153912596358510847461935016142775689634829718743765887588221591045439079613665663487862181319201859129098804518734807820762135026525478785322456691107859483260490231959777185047181570993803822842037632676661881449861417437888855386217528597218346677496460327313843609364778018506568650194784563058141510093522763929998055176436316083634710484820115778062456053040483696293587823261262500997835540215994999709924960487439397900996544163755548896241663068194882694434945133163314712047373188400341441569385664148880977750532594179764075827062087268384727080980942621245475817091841122391984929762400900398047953386036661674494440602802738364218988044692037046960433112117865724211263267879402941774694388409539606702391552668687111964428331037201329912402289309879768668435706185692669347287660152492433347123359240553056495452767903498873242555820946452272460206751455608500000239622769606282017874005056273846183583960361301627527442692828039393745173053649367545636876682932546045000049981751500003374547488593297011360963339994387423257779193852194016889322292430672862666452242719894606431390455586329101070512653834780705513245582315742577105865498610583893283609589143541767897316574695336989854216807105525790079824151914739301556447711989948757707172906883297026951050526491755499156036250217852657961057560831575079317479715990579147261113772806664325982649190729543393538213083884370428612777797881829299366807134551379353426661231386906531045118005065724744403373903704928751463312536799129704932884544744361665862687480222819063367749786768406087795729621964133019364902591755125637740916548157204883152116251474710564084357580580322783241895758509063477897224644633139503156375636078438393275457263387787144443006262207328277247552798185588431626645650947964574936700493036764600234787431199101458415846157433774215542904148299273072732593190976495975195158102500158259101298667692173722211012340915527177331536309617204645531717186700976984747671363324298014925321371358911590701003420572011923113095669828198688073703176719867909350693929592795645604819368109303292629915055816601977059580706512242833385817577445639226338113192500588054404886377361407146601502387191528348606623061519779020197681573271918581476576842088488330805978852771091868482996973830606773362268811613996825815820082578727887269835614131757843940142718887883075589713544333909030002175967241361976148527171553255960604110589128908696171566351386781379227745784350195169995093898576446280171907831391122768537404668114060284476521765000689380675727973062382276056801729716280748302227128977584014055857588796517553860156467326654618074046037772950579898728758598947292468281156080629819125809432374747667988462283722714670881071167717797303749438712413417129832782830223967156511565098256386178810622163594827570761998639947343105442811399883261791266734182160280161627156896040563912596332265571479295088358429669160958922020832526185852016857461697766777814709346582226807197837729498225916058056462877092179118122296812517106396093015886404137066359660362871674007826444434797203996426324573085576520183187037633041952254307372868398117758879174191813323065438757817461952941462641400697933395755662793358163684356087525781015693222440053551386033111983064993283641661320440297520668800488416791539107095156473432141832452047717040247452949838522106539269353132700032727962063660872521833875599454576883773647896467482054462046963007163197951124957237133735853376386218652434493327935034468606529283310208058645732901917642839651751230927947270127005977341957492298417144836659273896555282758318826007137788450109204931783775857709691464234177443773468023476072051395110728592899565437791924297794376450133292467657905876509334991759586820536465389488154663975283510810445053372665186815165019536592169028609523742856410239777564195427853655898798359624261460176477831418201133163644368338073786344684815109644787698853463617875293242246370179334928493561920551748265513304681145044962049653879823352629678899181218147833123116855897574335678995650800104613939806667315487356975067031006068221101591734005100816937929715707256096001453225700491786020202203783474265367853094405996170068837535656765163603645794877256013192325971030474393916852449454248879308744841697225973472187973886440489721067423976600964648773933256337703316225609220765729863230337433071493555951291862291846808843260815859953879827778886028262086241990058087262357130382617843461398114256251083666859904673013693555118495769672498960344954720258868122692649701891394529469147964445499132063172563631203543665127245614020910141894946377452622344715557028410811195296617866629662579368800470016121301274325099790643882387594702549468641718873088289419160168670562006553509755524936479873244712525500863429141462966225770146421370193765913371832244747535928166372378668845905811784074339612444167982350194848632301067275072409996471153494885160653985305120503284474279541988312290816897699070003285852698581212577582718308270408421532798828015538960633218781051643504382876639974659872706875726221250384014551937813555269124459018009879799069518729596578540454478376033774536989432690705150829051238428029978388707536941025228330394980857846471064032102856058684277155026014560017904826954029613917144102299275405683110695297985086496719413059855565766428752238053078859978736808877975770377221978067005255841810201028156203260486110110288543368926442148446769452275781874725570442185836534465782433355780982097443699235644102259889999403661870902399221355312348592980840595356169024194086982746075622172594551071498600365521330063056134791866694127544369497414211611703332801486335848985106909883829702579978681356011943629070077534066964125064551937791950185864322031893801697994272434392897896636874654225110951051530874836259823868131007311612058204050166552841299446031699324863619233756596496854209464347984024711815598198226042976018272913275561537946916846783387617143762552062861280430346079468043852536427062765864854061408011189868288957581871272844890998350920977366585009691781548701234291367154767543987478302504565259529972787693380267519656190502489569005759270105501472045926156307182271393257672066834343748177876357392643941857569736893281505464175476581823617585045776540575822569488405345719485876852439950180945593434271586727079038920823231310386229236037705788329228837543229667990056825261413935968360281039380695223826530097440750175722107869072159444523932718981659966721598883273434396720680605356306814692284907765245873661033473370364195045564171400056305587149005276276054543672376636116980164460471928757135407373404092822989323012463724617520807280679060036069737808945885908001994822193906600863581345912699954362979244106602148273147625592060686306709791087024951572258089511726258225546902490419638187197816298165889774422403488706739801408471815800377301932087111550021310872798466537641139264055418484430862105166349976232986088574423703142276258652248915883656702526029222446456839727800275198673569002534740952543134171171084302279866113135444434258755392319804475977226247284719554586065200001030225247486566385072795863424616488912660681923609551839613844252285408616650543688352427837189977511245189068698442348202678422133115754841555211215074834314359043855773656214298349456931243923249859923816551564861704614345475759477960365747294821372121554757728858069320107820141293712035719798626388191234860419200032566698542039632432790091293050360161596867644555360204526145942816904853064528762575642648237469468821217910739803796760091660758016003348732700351029386816851294978223848784272010184971482403277780431480701233317765374222842151621014850874963650534438795408466156769123435497989028341224586128145630679013264910938443684419297183961959058967611761922298262043422354836396779785861501312973304863539868328781290439007867887834773931351717338699781339938415701470577024246559790147372140999470751715364875018208796721314630169335772958910659123527771112044061336784247006993552619977492992290865227888989429954463543662484295869072755184288460315983085749934146213166823818019228265575351910560074729965459135605043038121226803332102074426196801413453070337767673061449490004333105996489920234558340105138809216390581224742403320620344876455802389320420102781913622107200374305815915823713224326689319803992982492726943263878757315441981644839924553484231412867925103973571021945397245081174115689121689362426898460642383342931298073678014436216597220006376289283973855218139081762148574093066425244800086659120214610611189175858797434169128391352442428805307464232006968764856539584733874898074104359261958939125990375905618630169587855669135831620924084869730580936127001732725894372491716050188786228667277663068908661499386421293018209061696405046984290922536207221808726273696331271255825077213563300479081918483123847241701290668733335755293454297291878995539520652351627356884356662532341043178314545374526367737616827484668785259544496315444542605540727371016256052017452347702940838636578246639673295303165138794161874115728936420217750068716963620276448649375497091658482708136545849699017494912392010253596100880940322096996199432389868599082216369477623754543419343925099645423238234282977650975641240154310334557715500487846954931017387477176801249995846875987196113654872241171845590714780875625621556384734153536094759597001572859112894227677837527617967310540049454656738371818247070292246644449166475237181341375565620905082260026623153121834611436716372773363787418481836913140752042551809466156108252013182929460688967240759899784957859954485797608940782053227281775881659687844203054188423283674874930656290059599879320168726809946687697698463782572833149525273228366301152855340341386146317383930068310345536025486928868798458042015042008432672564163626949675256847714788985284785308950242958152729503965202949713167184571863572283515358479165902750968808817320111255317611657482195309470181054719376973334387927991637936104797294137585869412813401090885780709372574995331593363611855656022949227148440574844546051318710573591725014186487122343608146497075027264359084377306133014224107763974770832601532695530963295895189691480693641914764983092304461808704427821603816823218078303474297903849390940103599668620161627082066041457022079888177991195001100567064371550856540343778534386005763918347346803815051937111083790461677472682040772196900823385269922451223777047687344293648547302515812283184673309396697307007084954498946891499388931919510214370460246412233173396297445330116304878498327812603952139757652963990994809490277651958939784206871405540105829746323353427362623919162303775001437002863225766412005477488138394267490886864825689152749265902644736503260076555561493667668146200804695845092981154409976388098966974442984683382526296641704042509271019614856808536777728118519986960362244122439346122648033336949271826799306111802530802316236037594239638859008538756767466611725947552977698335861208558049976249697476938421842320049598352458393045640617491275081510484075505677159452048977998414091467349885035425005217097460746280746875833752232489602202280596353017675285490854637704893615400618366187005388651082549986039312388725201347982149023833597401493744466581551616593794070308034079605299423978777197632160323523497181950269924317970500968463188677077200984097849338499601065317147563435437449973192624063962076673514775964323849387844088776467429543494924727929766116792263431724811173293859419603749423801100553808495188058286040315955671951366106975845670206071465589078618166799165042402525278109472190373542271828054661587426322316328936305979360663535808440643490956849828476735025483196258254860080734836596428369493582506755700731430037279554704193249375717597308539432232048538557857796385604570082015529406420336742623679585027513336017271304413369464416095878066029561929120544313803108523004283868372215318099920906391990213748528996178703078638157024398233170616002583953772049417638395079462475965114459456472473006039383703810625497025552755761303582714713174479560499645700386038455959565448534380033395763098751290484501179469627884794184677107682252611471192459634692257915130771971850853818246233802797125593607893651031028216737048887531574820946900603293038032159746157523556507277256952225401609901775995530344055156605591080354840217329451773843881315580693697333780017232645034336877674737568946609613708361943962552833984380521738718908374484200599674028088001371560417028060510893719467271718590014933943497560458702812656988287621956352353390241279758633127754528059087300187396875102388253334724945713289337910974433459586283801979561993911690105491120937345292073563436851462026343486908705918974387822706872297958019197127100625210053015982675000532900817032946161674224933902142209532415893236108097682426859942113818195139427051260518391383504266319344873072323368765852336577919221445074913125118739770068271060623117852805354459915452175964554084199752592880812959905065214109546949330122802357320007219285534412270949809299451068615954241178914120467140671075033245853016967200577576357085541108018957651597412947968314887840697402792659571377661275040948787895458933780006157920124252055093817947797149137849581135480827382592919745001771580889184157348573861403961390385139155413282929189168011215553279456175391728352154651237318752566486713771126148713616132955711936645178999832754456781453303929747331133276496338788181701653111872010545442642297687066122277479987152346216411268551650781888677655672711608957487730574978108833099951037342050763028424226666714147139395757141144779056017506658024652349125349496834677152882610847224711454250069096497257791665123450229635656193939075448143778499539188448586298676187503883956339018212334335275587727058554207450266437169200057666658519196360776194988897584016032207243222513722502517748440396209319499989189052215253377146224923231478804422148331950873184998046426187139821821323917230628858724485066594801907625919956840803416937361985919143780347351901117982667970428258251755467933399358206807328395551837739299154712330519299366522815941837978082425540854243094895217322648529937013348543081335525299306069787644744751972663158755868668426088785011131404837275287686349231945800918797901549560209821440531222579049760461248018778298248443724103289777466167583767964702980183137304497374128243933228429519433968152176295311023996421143858856529925768473545305553191373158980777497294794205789445147413577592796834280809161701242149150605682301991110171322770115238370399612823972889394273387886174012679536776862941724624734634142850823734631650739553667965081995800099211314881764756719256899783371152844935419253273854162383195072055265184359111356818526643641727659597938857062863681291357218479205941086681301370749838975791413580673126901662168809546006033768176118268149611711976252253611781793944395667893607755016983178836147267482382364426948506791056204587274904612514443220467454514623695503810942499797786023208963811115934625548074788485810980424325033097819101442860725803474267139576260287976580882381464659673551432036013911363188913927974226859347583535078505479291470443008077564283246386429868320309935968084831412566169501159601428929466675121318047035150033990280270322130401028434756877042582227053147633916364387861627667859911078328487679290681203192561815549102220080902556777766290060949219420617578083334649697195845340623965703840860356563029619414407878071004942575768523564571349327377295525002024227204013586608173134934222556031651522590230947954851428934461667733206671194864295195859830393680516417827051822798179371107633309464941113377855266425463489952847474588672427770556406657733194068981395303164258974119963199024342475927855583450571429118076219430924062872967310152805627845977426398174458351228746296481879516092120435095764493642528814788357227443384574912744188013734923989092333501660041666490780832534721333426431919128548985656450976327450083434815589062367628644530184775065279439012916464336915418437525443050890337639572181144590951849582802186223596602823359166125662662666694192490107881392123215104394240078064879700942505812426067097561552235839211008633418687359447839626792768436084032662607971290147933798319077316526424865880429328518992819769375654944184019588932628363822388594632720900816042098618577302073710580883629829707618522530679858589924444756533135218294035973423217852169916637770568454643678487522985896967451927825992053353658354593289247919447218280456506263547333140965626722306912768290282233890058626810328815925709393566747994787152593206439516570573024508894203262032158333566608147418039420188081512564256338493297121217283168554806765044845895728046560718742112053156334366901334720371451720184236854411182413750156260417694342454837408395075466936038263159347603925174087670657077235391046307895995894213398377756281274331467181351095363119151542034736231538260075943805538207017700548769114383677374684628907161745156141461180395453953252352955920254677149522696530952956754285296641562314136568893882780533959091464101585692699296720471992394596769586773033217811275474194555599805083024526085019172432965367501705626411123590240762209551670647351658548437346043404909800746246279625540444742420809437994841792753734121959381942433011508758126098769075802294901813656723453744000481679055917501103184405221591390935872832590503892825634762701810109270539975941305744245107572045305465474199026374069051761359230757079605567044886813526723730033260630775237803564651508754854320030886594862371081660439439933081933324253387272625238233833163325656561732704332774173171396104047618817756460078259119342064358303113710420224435790231449518964273213780171205823810740589239832679101528569187705004606713142127980697044637833535927022189350731990667267511971769950434778929109285470761283480576574474715907671679656935926664589239133134522865681395104852237393588139340944006196087191879877522635193757567351680370502125138981832732109918151057063301604259353545962635081059586172018087833044367159171971309507139589305953457843255078417354279984865299413281331431705779993646629465795449658842060438526245271405150796976209259248162343264574334167355676023246708547366259839077284400806636184006156758149276324299974922998274667359464617333863436339185859141329631267245375130392709307679678615835948512649004626396263118471936750451401792052856030431840577644444209989283027180438342538276249554422301563626674334308891907334268005025817982633257384761781518761227156780319506159948382460884834641020707599094968904221440003158106357637459061206571025262497481893829706159297447256098790789617206356103228152905388955269146942714114008031836538544034447245277155751988357727455837077546474354670049184673292585656053486849335799254703232967615636536961630759778769129844211051657810077519712265138319018321318283180190791637698591606942691283845240765801725974133831641112422699137423829325071248103598352047110692010266826936322291788122232554408379078298707903017093417124301099251242965159892683503592633510125225752230146093857918494811241607353215212757249387086083716793638276742987386083567797474184360200513011230929031328180551696966918065152508815056840718083489729409912679288535873145730009083287864988750582390629773716066955286400798704238166151977107278965143137592705502158093809278201175004278576466458749691048544465364256179462795464256931862159005124174787617368492320003307928517956837365274646158136738719387519098722339052329410011839792118226633052382325630649329157450567085899691490132519914555055429450132691362762675807302602809778359081325493064243815271463821992142266634735402705647203108999940441380397493646146019590412313377949640904518719455141334887052441236177681481170488034874596376060867001291825583269907055231711782837113344515686410411735699275222142146968014288223352159111464262281285053154077304420711315995316559944964583507489692993558759468893757017887920541251234663049110599533562546310600777708646699502957906372453629664327257643256132995032072311904199744502751053142996824465879013350884571803636741782243050496212653466587283007741593435791255563967500408361969867639583525317100747557462089917752808450992601195920969738996723014229438093385147253384207203077895100503196802188309346206331715784617651163094948949605334311865824866363879336535361802221177796348865183883258838005218232460222895899923985521022663088188736884832152018603732754018602655135189024471061914887917335832818646279254021928566105011029572856468633209277837748255112969200807117687579747448804613014558753988860753918300653668192905192717570816150667960550200794764871438492685462190744629609676019435764873408980209435873128142398483774715523807383096112809656659097034409944540151423877424072185330441528765242784045049729056436632242311072655621373918216037626529326736987956948751792695649248893536197896383795687891984144879374155036373389413447344136098416405172268599518639056658218944668632083931396996813945730807778303325301529099180979734985515036067011416915817807954599262128320057813945032753256231818550759713373234626828676566160670689630678351387994742836954226289216362014433912748571462119280595506997097330385164036474676796394369377633337333204031577070265813293157860817539940160922883842483009323500840844652011178142614488127663972186740675218010379655727414907777401904471279688465912187097091239704029819010030746558670053749576509598337598443121296878918273119940247698252047889929004752619213925610540407026412907409832584926441566612416169056644236280298536358388853840696359193529871767978405608279831028787722392492586133237075215670458119893303141716350972674229091401010398458181494073004306050951715600224172421151321191121441311469737337825294726298846607383296631954074373548770391124063970278195910686480327324253591602987416703950949975008150136910840398304801920224623320567142648021340980277938253826256924382354155010156465538490862383419534759633161393417400024638977917405263141496365827742717344871374812010207416808105763789883969846943840191731740334777177309421687138962774329363742657591029273004234458957985694870940123590391326189499052904422252553585044676099414713118936950316734959459805056316378541806242608041413874840284886967053189403751042126546711704805994835160692284397081378524377556163761598728504614976222083317812862553816983739407936044582737043317810063570517205665925217968090894201253315275998831283383193447626559326521067770245652170248084042416589490060318360557732475806087152227076701675736372022392952887063045490627978553536523953760201481396224402794844151512612804757112859450609960928447343767257890340997528014128882101893090409076964910469425714218629318564170321441182058459665871408301530576264745592061763218815004854503463349481736182587059025006796807462224477504128181227057422070869110918710582740262428736531205312746939113031398167614104183360072762606313995355459830114742778503835647337046726437638405608152167980180472675748131508301173273591594686411334251405775619411137101251122156829684134498598948655184688243475538153281120103299702766028550878046863808403323777372549893393553152231034976702981500828649022921120225874450136594519726488025267625152860896250758926657278743493320673460904956743419599205672728297427661281149866601516379215144898082362580633738197567806769238281665371337648536941343026662449835724452756957089120940096982803979933967901080614550320625646945243161405407339255978713721706210205402228123373737230360097336705612312492232221665913005416492325696593936861085214639754616262588032927293195729387591398400136574328192544595142881942607923237443148484883194101455053540347027908275691905028340538207353522119058385256512257985745148027703134669902315920793528329578894598009688406763763927897785414272505777399378411614594015120429987097577537085194960255784334785697510053453476034703477327614796422263446452122674463126442897779768804787155262558616585292692214912425732746837765998425988024025767119594685791339813202267361274207525805586659943358518406898655516704634457033335602031114511018401620914126749136689919317753512422704973110429885022702249106809152148603616042280225219568901606666600700299171801348971391004157478727061493188355827704922902134623534668427791917302477425557445157693705140906477248294264801717248644942980976910453955899190945080423727976093918506720748927717812862533820175341432867291345077901188215656830062085682963264316376675558569122709678147395885827083332529415828007328373292180296933501872554928221580275215218231189370384036691978224020728317537772619129768899022818878505534423908716705404962118870114664645714055323595288452778120427157045808562727628958584634548877517303701758163914904461115704052856970117860597743848230979642964937118169399227433351308205602512308725604324432233035973063561785207412981302702671778066120008215814510824413821168235413099547900364525664754888776888090815909133850447241955513536838499385460125700827432931513613723884218097615199758749753798409288210091633317537137004141302018676164513151073346351361409996803758954349456664235398470853513254482228703595317371459746770945344972269969857373346226226063134375964075007138355753822422102023511785363992481273664640328374164675130222936978138061919159123092845335464863686059275076144708728704550298229197160999608773528862573171802689134751101123508892140151323728852061129211507004091954395652377626407886712732939112692236565074351434520562890613219751313677125099821287869023751480600811594296123101587403657786969829652272749348134995120892167391413590562418216723735476452963126147307781313500384129307568021398581623646557722339178403687444743560776089279583865045956200272288284395890717225513768892704200585792089439744989296535051355558885888365936376071958704510845828016528007669192508703680818980700624882227951062283732398390892226610087218533300688926017812699531897540575796505611437108374632694159493877640285111456940731751856175773505049273133682087698539283990409811328622005136535716837665949381145153471416291861941691473043567771779363124534714211514501536057057507408161279625216675264296280755179682376091760221174948031037319769040762166537421782505567737079401400164055435138359881193650514180248476081623716374806983926049036679414832248926065589646966427987230450508275902477245049623016724189712121875099913905754841565043710470458732594525237284329133254190343971145516534730599322607375306939120511739490563964594161037355071753248356189291908387980557134989294699064178125304745210699864493254092503627308113916861020985994096317363855012510864723713132481526079888213346121962548521490874758258790129457962200735639750934203900674979650684800615292715348524076062299633274694839737100311414482238737177656320973993847415129741811799156229141528162125815287247049067001571341251091956048729092257870415081762813876779640368593124684578406769128319967209639719230100568550177009282546323332765289262170045979658485879283205059616301630094976431096247970203485662614277884169063603816233454901687824511737181213244043833387344773477687904495370608241776708044609674067822436165339300730958874346676795929886125132178897168463080971818258365059908415832745510264789874084043356905505270861664630305166720430584137032106459715146701988929639942230357344054378236217279232766801411299787378534465009967774683498001001004494034700291053398769408760958520456784012104523547984889942625451768338738069022955333538477482898328144036506004415461356854620989914758024586009449464351654507876627360280944315233201494285357171434425981200735540702271660127268932172091808385672623388370525786971663647057220477007966698286038843804500176587584064400453000010389051900314622698843856004620310015969255546874449957990845054155487009058332114682404747891923614332618431987775170243499944793898273770876587143567866625260542879770897975759916038209424721157679069927165512088886156703586809920854504450455804705743913051500481477172921440151576184041427546824785421626565964176263420456659951394586757682593408575429250682098234269403876586365247388333377870127244469738180574028716796986833680903414655429410341238174655919955599053886632629188650616220382975976750044623648312922620281522289683218351701587799150215294887521280346922462709717928793878768890395057770352006926250423799587095609600198613402563411023078303770753293025054680086319942080339478082049262770393028476918680329303499602458972462044353082341198449295695284143378071788583793038312419572055043231227476005063609798186311349721260323682668145075465287610166707281174137375199542911866785422866965300255682827205863750173224597349125064143168577403925675697334796908442708886869899667539822249000603139761350725531921957402233766139786811800300159868631359034466554572426685853085315219864327003090017038793028012953845289942999735278121443223198140615237180434602835253387794430869615472746968638020445603135981439477631407138120348896743835285253484085975244312597451535277733026328973394172539056290583163242322276765112905126611124845749617588615871151901950275972101405192918816521873337109966536376999880492698875681397283293182433824416703715810078184414649212316263561894469181012228497033775114128171927712329359717938814339345166800654553639575076071810863553466680945243301406439847376875176784307636452785761960120304330146845778317656993886161091389436343961240738498759628359604557657811039056953884047750880992251544180153550211897093432340179591248292285157708474748893246407651153669192356111967539450867694482672944793698773075011382853695846654341361734290812352976688826785964203779050392125467142592823646516073806933521873560947155525114779315563074768601112195200778778059517133146158418537522909273021240395676047012427702782244205814914269509028526883479541474546473592117502086785677302318235802111328163252553380171185325055950769002453768861111188684367609133855325303362460278290328625447903371194473267747438015496074897655357868349893652912442928289455713118669725544735308420697535919241392324248002296523576820291561431592820617982934734140582497981247709059014026722509542973837430672584981089147935491385124563073664231266627922293104727238858672439733976142748269935112186097079149665041701206609531998463707966219730376653457028483748175944035887951819692039559036273002758927782581706549678808423996421622171365194324377458608221656498800099994965203257027626950438202864158605561881258098129451082081081875999474243840210858485106008269867436151185182698347384826752749910687176867664164811292168757371705408967695645357107438576589665927016511447157437435009697928797044076767080139129691190504577461064609624797279098907305773092616630775836928308760590881855848650931888647098364769961625660954659212524816876653475718349993889017180356971308287172454957408921566988054369794442836622135669671318838694930044200001645091063911601613543338537525721969347861301990467540745394581556065228690665098544335559432076915360746283021547333321677230951152711032977184344286262047889003579714500644197465711069611073494568423866502749353449571604223408155918783061319214048373842907400064179546612298014659891823472459107824275646708191520012271585742474433800275807097135224994341455394268230623999007709334377227614468092643611586605848106928222727532827499681042781778470486028515540071401162057805439791392201313540552938124654112271112287587794775944453222837010366570947333113743897922472676752649242777047450372328287574683280368024516488382296158152486079790924191239549040738043619120639517173583458826607623024667855885808671273503362370249916294187314674357362132624340584654139450660530710913223522417419505328483381646000174996004005177739773853509130183526914824911841515154282409030691367461592516916614103720528373472820179259682614532003197629001951372348267413378475066902976080950874800694311419769307977085686059664221246237009779400194607143317748644745909376846974529980254399233043883382245242905649079390261112131853720380555579918398428208362450998733226679258323897082048303576550955242342160283225463372545326875471449248377321943263371826893877664696619903163443350599818704538326204158360910415199473781797066315847373834251531514083510663018048335562230561021446237927874853680605550614305135762447190214079578270635293906880547045667722021143258762040146573254104184434744124523315561269278146782340838257156858770157858114771044074139570103456992973663789934073215112259536883189137011237521538882608829691836383803290342753700872455040926181039207367824668583381901072090073860263071644645189194560007791387578073659173393664374065053978876947134272874786725279875776901900130683513252933192110852877696656956447236239117783176102398949084859334662048296725454646664065578718634481402373417664416553073755242869662487066680515102336713819202176527944016004624443116069602315312997868166297736017679153989376930015401728129378016250616152528000925221288556237786803213865807568480960408055240533135808203575216865000164717305596537389641271532419995263849665580155251274972417520416118267251400364716800932757568487280993127551816473371965430193968270852273391787743131312488842168388425201515735482288704625578294435636362141004412209109971302175583754012771856537255939795397132991220172956777936002379785446830376920429578896356694195198699408671599109612684448433596657066340465815511881320353989194342933713414225895779664464593927663725110828332991364802568750174031215012834347718240078411362358874224960173106254052065737675000071491386213784080881225868677711092397767548348729090194862807073962629317592375908804413310992880129038274377465575832274340395946609821745782479535776972648773350452006643892926967305597422091482679787764828402452474666616310937080307918235293705993807215430588895011447852114961464090999004635106053237877571190429352190520348356926142900427501169337412814435979046546078961864954975821236426302669596077708162965104350341172181010143628058088542517894595335710879290362182184578314261951301739455606489333513343550418103609060133549953509748240120913034527139262748161989651003793572522887961504644924787767730794376170931278661466281859674329722784774237209915512965505713638159053674000516241708862409212983727431762935434093231395714986541161967233052934434821868376892395260739645416163446115138416493330925868740189484817007707664468329131170075113766475660353703918813469342606188612971371869728590505886295873555752528129062033018040106120558527494962730838596538398468380381970875935673878005384114324917111881383937252090977815171777427052181022771824232428418952162302608924142044474428196359269966268065701860810776380669849432688074807079478158413259428352496058264029010624358922854933228547016385636052255110250365508958703267996369987115705807025457786559756780697157797487424339947883332894872269765985025986920065300539496332366217868275540060057982232147801909679868346865061583623921072145342771592292764215421281094946299617152285908920004379019706304657234150450160910926586366027294825908795591046039106114281178604479443942714649167552169939380995111511884078094015992322341331216732366199557245944044023478370063327428919424151531397981231743473940207536263260812461026649763214282352885018871539988587297176000678990549064234332136457746371684361641524160495200800538434188772947526294637018153898975811781660469088694773568055143464544387240438937531698756825133780359389233523064417289058075458339843542375087484120271358410769733721077965153295166587524923978025586502135349938350818473491371526821301038673175372228113315928193793866110631383646392343332799932023850306966129975159127361415582177087934713881982450549809318219641231796663968760508699651704977150021090600608513416872127156822569569865087973289039934147638150237634536656844673200916323118811138271700264199844117351147310510455880073768146232296778748193771301477028859046822577961666904070539446474084048816898510325767056484987317368261409858994996734047234532318172051324153786120158813502923504388621914570247266330176206375129429970723752753218855234320235535844566221900089460084626915937766215925280062227355479711350666070234583089921644115520945450291639316870726363630455738547769273361519570336141440840073696306146965475081753071708350891810150236965515502144744639306624469346382922218159971681448971224970249905177643416427502137593586492337377762485272926524553880184156705780892174986252021564004757033346605998700971000323608820101315804723880684042835515132057119882079794577819106666714813911173957541740203353676445828391042556312579963087516214320263847694468646335430076785475923670793616980208304862680551948081136524449132743284632116875121835502112573639799421917703958963094799696017033283011360674770483836837433240483569775661075004773058920528900774937271901186351968337293372016143900214709089635497303106923645427516399963463816739253178942302767956141172162603294966858585598513355783979302349786063241000401482209796918668246323099915580106088126771048314844926449997608440094177603043752189188100484506808389587849412181795995462817605991949385758915059956432706389210800866907834500372046916725425302568833247160091384974890721489157631691133227780001518335131985503365285970935554307825740930518868012233355717070532891754333538618358284150671590189160717999423138877238328441824735581943270875525841066432793640758421560269964028242322189461340686371785490041425938973865286037849700662704948955241463360847597608312317760988433278934265912413795327793700001050025060427395683796614745226605595834125887421863497152197832360725323063025435500142078230681532150325674223963942492881393025016097146074446969136459975598427366658816489425685053352042415272145354870887634788495269524136037952482967175070227910495931115519617579942108206928061245606654898873365355001720785063064058807064792408278209118545154559661841645314836799408390725439123122671336782549059073861132895676650074810051516195883123484450385147973288893846182262602898168236650021790067942516887863169668669348183042667441085279062711336982763621751832768516881108210081518025566056679657297903825899514285947773772838912723774476803639694348447298481695959438925316905391926478884883837102360354785349707276758208982246090556615999394419089617522000483058738927452228448380871638560604998875380051856732709187543230284001688888432187418295380840842849701252086327216611961119806731036801610489050480977013704760584824829405030375666784446075945343819760844749715077526966117111772279292329925301857047579631596158157776349427639191792984362932919275644303318011685878181348691427223443847533484223469663812296909239384146506862837423191928966957702428565394504602824350803793735560259223135553829922697323487524045792225618657848884079321998293153037495150583565486257876564743693431886419326945668060236403893495891625917172969257311073498178973146349865352585332110023566707061746408476133480935659007548952141125165795681378578050106126290957226692943264041004835377143141374105057612109323749990071681892831478690541105167619221919051787145171121328131218560036564671161938507543358785898363287298342001834718887182744971940005255633612766053203790937524349077186303951924909681992981803124525159586344728511546277435413526213313330549365316976577873237950145356309725726581276859060200418775625832038420104713126066690909765079638577027490031455893075140416230430326225458864984872158711233483103078002798201871133337159993887992368342940531034896840312329855809111926639219097240251089701982325135440698526329480647242450509482341536056368253280032127044878234770758732650369570481768523749870177639767270633898298737424844095623291683237352561148112335219872285743766126857172447605372627678129520023695258476312362522020968918462805722058036696591747146181109761160033454905207577491674734795902772068732636924121785303681377639228853994655040809339500683350474786849632735806935330584310029565470752305740737079973826398527123741245417394544352276727517287725575891010574609559624076124427769290604241948707274072363090289763658297329483010908740616044780709043253489062488794650233948737963694153866037153471569433915222412950091586673122072329166048629445895489633655277809039097484498063304568540795350617239002694137609307772336061014708675259298261991647188343077474215110356299573143757152791099120294926258870403231930652632225932949338671540906011285913671667627929472460591335059997263346028662325839381724162476298246632752962060489925277330968878635785073947571928239109491687681750614366620505786560634971034999976277038880592602711453948591761599895661684759237365757758847780734763244621624231978543557919521139335326278442538254284336197218472069578009559021179142810592524681734646711447660779971170233017984571959368220670397403832975414769581109170414194242482978673627448232235312166466977953874244782659177256386665813984573937012503610757432403225619017920157667569959481178527775464804654655621085474786146170704120128380846595992165851586604858597640764028767257169217236556397147764690640718651106594737916442578606781647419928995276315904183338011552225507246112809781616349646975509063651892349951346915415531881403721819876259315072806126132112656767510679510866219754687709882454332525949837487496887913376714506583733512685531151330794821237870604961248326985743021848832840961543434868406011106463087304097014971802771649788597989772473744555609190889813737976191319916552242392225144835349957632414057553305282718647283505869242593124628389846849935596345657984503691013585001340510738275400121837671557628504691849305081089521526354741500445613276360820845943737998913358862867217755351857577801579344196875287987603355010873672309291515729862191664494678479836216334282638637247742520130318733921565561877963598815367040983636259163563498031042393404753634493842891458962681814696153903091463388858623825939970550010001081006646354196156645327258197303853353510278390744867751623082954639647810925579988677765525817340206046495945625875337243373970091098787587092274251613150768127338146186404217107636642625184050555141302600852677058375831656173094032990212898648522762360512112235469784307544406035076793699248167918134880317923660072378245234520329987863446054590988359453132958019683293580417199547332858978627064731623173557054756040948677305706943952323621563704674993699926620311085456595157854780452918097875349445188494283031641479837438945709424412120394003674588797634059021073771126900776628018163210991301199391620417379513371010921521093813708770894583449516562041671728861572074797437675339051639092121946893922561391029587705858820022481267958823990311148845087355877636530361111095003481133116089171449145758615336125426671364688738542341642253005691113838449096648197714740269518839408164822869164759320302641435707379525306275653127017963119051727798792718311342356078892840031230699066456940254967358736347735240158410311963044812008572236274788796203676274527876593603601371459361484476897326667328154373648416516290474227236162684046149528197262436344909534625115474810339766974475631659206117979624497437670988251561327913874149979141703338290548128590894014556439059474525792350059330231882624505655542935016762975203385481913294977711988875117468942475067895981225351647255368397607543610858974425833273685996936717606975596625813592899628856672883984743302674698719865956967254414572276428880998153687058386834283743404173333597899526038179361994579355834584380736110133171737217838848979453777034303334373185442814656600724335665564379023864450079314983313748397455127709683089045132938055548426171215733065120789908563111172659969936076253804945628055803353124453202253483726738283610977400154420035825795629150036200059674497204436323601376608233306632074100641709035652021625581011455984140363296821837262047538231102352376054649174772637342893499640477678285607599064814082040467654862799152449612589114507909079165637888053526690040381833669219937989625366937385156336435398926827012072536034108790390484881768919390549440645691643327186270426473272046856022598858882395945628206909937678825635353416899250439446219803963600388860904230291114999843779934429229519086132177653759604513840192813629473300686173180405251474833845371202466490720176817606029919918379053363807195612570593758793979281576087637929126675463515781848970028318094391058886429822125868465435077866647309147667107687455697003404733542212070784838546330054538437934349319322074895616245171361309028359636355539888290939934811500412026140057885471265008951999947681379615415166930106753849942557413741655630499592498367542620758895473174583152419552832736848007158305863484906681210995765367804247441847749319855067352921077084901520457249981914227471048246121375616796077840984842878440624872118846219689406885336577779910755107546487816922095382111419341940004528781304264081978602143714174991477632417463126288949296965884533571856565031202086733811307852899192292408109705451011540715083870473823317233098360807521249352792830641985431316951392606880363130079257987382194239472991164000818324336472479138598623626087909432668658947690059405652952750716189975511652111686002014151453886229664613821221819621639712508550304454818898880046360858822026786325725320443467211999462510880659762509984436319774515605616575621007526384297569184311688811734028898771868373997227385301455567304787641095611437006671157132895061096403071258689947792465507113232076384918245503468432505934608110089562682564140088448955672315050974300383355653739871802737619296874248243210947571112359941428312349867065705522805284316055894266854186595447309539576409313921593887046111825669245629245307308732530334457291652654717177991565875138537123080351631602034249629909944351149060766637086708877054227371876286974918292580120404543126706333811199329743390115249631489896784503556234261368549021631015757912890988188596127994568069570835920287336448605215942235492834363114054589227142991646960290666776170805898974569171008721387956907724912248716032315709304740424902758754400794818480637597340467963361907036545989733269461650772473214685288097862741143936271541114776435763345835099826147553814171695263918931219619969961132822808339527460389935912542681118692263496197405592935687118262699142049338436923733301916920151973856716381198036054624828120656643622381861135180648951990583195096897924089666114034053173997285023286201582963744262172033325448157251636468388461109217040329554443534756477446865878888530514426446725588601295021510577941035305512874542809971303111552693237319685451420240432662463898815362244923845095644344767036980030863973953400128583869423924572086821627245242064457444536539838547022599397862459099682845393781926346737081948457028481396229486516669285202023018695870774775071028524515163127035433845993044233395205425421759132079624318497446410139547954183797797433045951479643987732882783269714719545545637648465429842446058697240704395211470765794528978604715573138811814147937553213706196352832364245591523674080612811842837169133367636329971108204387986902914812094534248850462800639602717132827037061822401496461123961355740329668207658268433005546272111322091320249776762694765053611600095313971984913927932459587591312437750372215709580251910452879866529478096385915243958081090960173270076663086664985880441052734182923547104476964800094026159733827673672531245796796358536050618785780786725295125724026190755121674747064239607431552343993692913779407572312433751771937787125204418284354787290356708948142864475913471044801977369058882314613970776460365339709955923365736283123627005543939154125991216475558626160898770538371807108736805011466467872582865914667561235294284558321862222289279893682812481541400395706589246590425481537446425709631426124123162963864481720595050704919185531456703878256244894835843880823180367554015270539849975280516368380564519008721306749837979945840427478031106252175297698524720244076442200972495146967694422268904209403627152002007328437846536934418822730358596908666214625195471933600605992609686909517496362556106042874090037109807168024684711332909048982798227720858810678127636744291031726911065498763927674542461964455419755678024704512176345022821239890012675057118755229244524055922970297401086682043623832382696069147006850086493045173942494900979832085984640774277297217785222963791240829662127740027573434645743017342720935886020735090583656772308904176768502871594243936114451629363575044257821403497614817277150905753819163375844251978828787791508115356621040723693129415601335816513900335979136260860774741926884496731210036558430791105529143281856693871417168719128037615817411181692573294066309990241941788795538453232115282803512944542515221196816511536534551785683977052713738990398617660012406652101238308241019648279134814861507073337408373146619930156160576427142167418122086203695145878582981451866604314176282316438710937436908107289768820388609375211741289701661475756826688462919618079969890024226078930241339331814493131044379842896185384073089654694431402218479501893518353750766838950047514523273964089816727869701382004178706044131865811966705402767369647161218001498557004307549888147455951516166608160753959810993571311995111714500413439396718524347676638480484845357632868457751028591736792804953535536506401613857319775434632080306032543189731573563987976851195759199582612312523315285757887461719701342361620733539853969138575040652728505176486721113818392173671459834277539353975545303466679351235546520920029479958333500492379463499136436011070444801543738738881047380739095836063004157541933340588061530282224550225244247260422396459159955327271535305582604303006235323911461370673070309763129472103274356041528656293513886057550702821296097987663042776834442075733889681722720110502088649298061647304812466460805520424795329573625918341388192912665919493849768889013334570111535899768863014389344342744532655489809504953471604609676687737520719702375506104402905229545562609769036023502397929591142380170401352642005939518367545465604007910091321074433569942603842214970964261448029987936170852249244878319177893325123772888940134141903812689591577363806606780802512525408368282962670392506088780168832470009156867911725216212175505022706185275657597357574129546597310298384274387891753646848664810436258362215077636283711959477161678870424668774593344218030033187341151749391324193678712136575487850650568783130253138385024234534046919428575837757982240130574910253807189906709925242237241157307081013361827027933607269875685462337338351177840811853468606572433385768403205299956344770549995881052145437435467642593258332719670070966832869826687456948043241502604995319103069700582180596030865653839056008155427953939921240876309213166079901590091000663708157668971538928902811332372430672924771510460341218801742095032170309326901119525473423602897855622243312413679392648791073652703212269650449522910720619894243793569919119480198924708848253733998170995724905058855413157531360507851354150956817918276973509780700392887584551020994712298329092362850327176760936068021485731843905909625486061434795158592206612298720625156596415930791017089541484972365619469207814611704721948630054488501228652146039673806381885942687407832214688133841145461344110380968277924186115989729615105440052486554118912474989425367121604713324994059335244344949455378250664072789602145047941872438306693535482543392804249523452829479127720027073672355032568594110971096603220747700895629198014991436621108860735971490648379456054780424233519196846598598271639201585243657700417171928914398661977836688960741984657882847344413316554884280023723167500323991058179699519737538166915750622369733652004833242783001197517919972563398961002454790066672058168040540707130695223133004202228330155736201701540691073461130424909788851300224107643971531709227313451483928579919459137205019689252970906293023493865464729125662810084886562514744115587224495041110158079323160336894695934960534126087356125327803333993894927825290606360948452465651067112844472042965389634130889836358799227387278276983754309903610365338454202400908983324475195465300897811193142205992363815620662683861858121025719021515129091915959531542119620271980406577406062313881363858555252829788532855365365989953199274427140464228316259543610852360946334048304750764346889031993486582630780370978007513400002859804040496140584140398499413791354434838070083875351388825447559759712910116141815777296826486800213841664456883946679588518390633521307297269981506734812087599358348861962119034667237864026154498862206303894568804056225768635636250935536862278742629461569865876158246927764302456202512417882286403571421856836238828038201478210308318439031270481937766451428175501225757053419791252362990285461750912047701402942670979446816966603122337966191413656208726387825950022678816020219247495039950133841811016298582166162388215909092555039453130224395029559136976235492164683957208755254113362271956567320175035395933354551390022721579977809719881626564607227168446976817138157615220865532162706920594005311047490445401794422005790043651015176170003017642464072831456750201596279364917694820364593334669424246834473559661526867389216423234624975403800098604057193367459467300440808535158477494557617117348615127295889487784259436032479387682439192123521556281335042757600435687824327258701117039127738935791788594271663925554721822212387874450024039817226203312242526403311722657336678900609360900784851959985433104495668132842459258281851018282574424548686023029678212384353286172054930698089322012448997381015748651990672099040657792279208613314001173414568479578123517640728133239805736634229523655994006322840975110341325141788256395699627362277055764306372371859480615517130061778811737755355532302784075898315101584827370192797848483827173858808472587571768110483445917816624389872508366231366296673731646109483879724744669803972357639133090590494284746631694367323488468189118482689495267357861433626117728965787610359320645995226652322747132462093103429287630278655254873058746502704174231882575958787104613778512260009691216586634076123450778906442419719463427918764161005194937667165900054279894856829226866896334651737138731834192420570943100938364466625515022724554903911680690561798030876222480361417059999224023327747621819467962588954030904038950615791553078767142501513140698057741331084958456499745657555127827370058800171088249408036901764654705293093170145552079406377931182172719984743124506736457850524460806142946504896731150247425180614379283738634601844058678992985805020085138754253942815374520070354647491691298092431936209024624791273221200042785956946190034031933888920453964959625601504950485558742665323667613530880858547022803555434540439386898434542022564829090509223834401182211802046917330633666703933595336197781663927589510263619492435673707121207578377896594446491139297544853180646701324632051305710197137351000679874461072859660504501966355393733193953848534112695150135214853736536947540165589863465678334896332814827663294158627568522222456834816577436262735389243983099006062820574578031685086687747521908245359964902622612327496211273411537696890894524908942982768306581757370019083544579831975131179988161039305795125827119175606397199369270307422863041306698333931334979236799430009693210128916353662192295429114453171514050662751476182568490790675856386272792599832832701173871102864587052192414724175684121283352269778129765868633239178539452158426172204682014340236290731808301034632747741706712293685329300828384263117983377100742136542850736997003312592535454856032761171972654613574433213571945700480871405672203607674864012509818829091333224760396703732107063898518332708597409249873447824683918304215721930826491236448192462229010656041846595138963446518783101628122391029505368080208627402119441081682879797655459464490491020421845806001666335856706774838797152158695659953530049279019382968283808001547953786974220203995656692440894124425470504822121834115918967054717512493063191559977824589435449950438213150927586735649628918774278839869490279838060905359840038012051677373779171905842810572037974251930094089246792873256734296718501166418575512904031167927860588221251386698822660408753579541924864267872376955819691725714761889659530774073290301220659483807950460755891971222121937565846355554006853081192913237640446953762915005600796348180471843457221019847313124371132386387016195611086332622085486254262554954648051716977699939389334250538375747053374439906531369073338101935306562018098261136340618260082293603646478044836026288250398823923930987877981176474858449387340906107140912963416096790203236003849888096808380943612742008235249894670993584675590846057224336264638962790437234333823376186242537504005734804432715918039376104775103550440895261565987493008953384821877127524510255236704277010825740283126793683689759651754421886185811221846709756207985922341468125700857356336033412798705638887145638699803894167345955677388444624243369407666051697769060270954251687168687883516000924183651614425579677264644456547182522563248948260999301110768226770926033601692608349813120014092342589228470246360309031075749589341823329513543488641596473617624171283279693539397832231849432394739713793938918508804799554990716214078837131836422771930673203114057288131590743502904775433745758438713030109645436606984899773743116739475687799067873780971267476133637386619409123306307348432848062198734319521841457324323905112794359335189787664677864328082244388613602632898424128007405334523013055185889205141907953207992645681223269359740918877226489803262125072758346950179159220972668624072671640847002529033070132902245434438110724316318506949639437121476017464708013279123902658858634283510334822138698991086584733662350944843328036291198426912737607150579446352803863048767469197137351004755471507149005061980184169035740415325497458947973792697269008257037409866669255858114680594798746183428903743194147353153376277997643472023448319174455769355613966281342666460477312082707693743268061569091335993333761687506673991400773171394781909422654498046560786008726092950318355690975465542004120010163856799159940310174650883691221292050020947671235746965002015727325525728689788797624972736602049842248529655466242870497092945798057833828377270844761798437970156447181550482233696692978524512841185432830643361422476402919796003931871311497483769571885826629688260673026455288087462094284723523282684499099447424659086235332833926154373789580298029423439000080137051636570810158778568196240740197520916706922682799124928566684861658101290279197822390848212881992363543253539149977589733358861099762956359941806195008112542809685969125054143428970097915530186420440151188518172891883374975186452907104612174211679914847139142848382414424387343888169594364615610308173413249249040408987813422901282186465875908049357164116396075073003628099084285411584048350589308614343252360482122154846372574528068622613725413035942391900404801376014927320257363667908210222946126734849001489887348454920974004795620017356783102614397211338761144713314460344549828530447147146178579510930172248132865172692326184896842103142763455857879675998149712390377826394174562833527998496492374075999515816774724450676416450647642578298998712320154145819917112679302100631278597908394349897632457468180086104172725272833683926044708147696177949100366279927872971371633351583754922418654655902923566972740813539103283883792248388771790661159915188836683502620042852706333651436079777783372983301355495399586800990622279449950487155703725712433311552948700640308432160049675103490217583698207754497191213263077274017493914355256995948385049650581155635755919254328269946793658566646026395968461324920614245276871635234645836852825209756997376223207597146247047082722859187946900326947541729241448821577452841338749485679748496857038241116155728845452095829905019032978955715858659390327105726754030594238213148686111160760275738896263584530177387285181932307548450737495227457486070574011465713879427065895193056419071670179939732753839157241215050343151997919434210923476793467316693440226978563941647195689911392576873535740390642982970615198126749800559766834592452547241874790140531966031133847277006487212909219612238184161162563092658990385332727836472151926395763011234167332346737409890669731150130995445780653078929631389981491366760854844427007834078808466321390972027719745266202560404020107966312628617855918608408979692689904960708139775371151996725482439187392061139670540878812047708474876403008891403396403491406326165496624722470193532286668062075072342624423078253093941450098829784441116839052019511269052125999821961684282146204874491603920700874871290156307703625234120878779451810911975258081830530981565441740615565466494807419137781131519647549816994027573511628038134421979104918229120856242889952824987560367059941308107532654220154045317497348516901587567342087387198831664847822019769337260596665864216737578186877341958871425692373704449191271402933836894069402494697781629933533509113574456612796782381598800949120803775345885469139583356009979232738951415798215457597654359108701873564587607146382235935338749058852813979810972220014613903864022131162024577706895460607562997777451414974785373227560778083616847562867309786418241766247048684766016597677311815986193246897430046800220140463320397208411841491293000416725514316215358886585844870920012418841677835086926711889970242658514349150215976852141090121760081487996273651926273300782890212206840023885496871702339312934208492351455490473876019734192683756178512646876323168618931721416439005410333181004587932463589207158168094736596894658728388513858122702718056841300568059298088360043354002578721906452857990838966700930661647070598067392799024359115912950424112138065572071115706265470731170951461004863520779771762974641739476748631292346752413687413846232180537188220333147143141792332275027189890585204493655208194461946751059010643902719004414780338244091508616321992309801376923132141653934151566949295652390374714644455738041849078876849696730786715428614679992567498871607514680421271182832662068609810846890830931352905051748228071962424382841275986293378396711899357739039715171373756050216129633036706361642089977814450867047998220617409720250618542912927679304096484617344517340974237778344670514354394235521884110943098390535810970078588106178027958722203622398454226115027692496743795582068152961444979502411861743916255513159021972918813705223113336244828121405598516361903642485816542324553066306396154604925146864939524092963382808950679823038291160341327205697910179508159211627796497386456532887000066228040796777161947110192526177195638187342601335455802305586799674597440831960729020438378092349407069894323432314814182109464424539166927626215148163660325275329621257100994191497395678891037032636647656485890800509546033101564202902945959524951754095624934692074694120867219899815626053819451613201067596954443721293262574765427899043324340280172031225554654775798500588479865931834425792845596458035642293387577389578845898079514657892058054791018136171182753436695267705204786899220539491502561932948589074515310520949070254651490652330949229159236285353465712794892451809622849429210389500469409726843474026804698456280310718268249544844227929467030236881854564264393893160598379837107280958315610908354902936416451499266266172529949025577746433691823386564728191493144286146726999820800780310619746936738563648219437894661713273432492894431497293967369196088361367616510812668608610443761301889947993526689678632879294582075621843521719238595374475332034538005416489361107137945493995584775532726343996492841872743755035786147061793872499808513129729679133465700951901219853869103179012356543004701479595128436235036031898348170930354233712611610789589048376731430218318270696205184221528818466037965645392708496968546560801402730488658385089035356533029346891590485309954798689766707538088755615242117531910227857591490294921560013814745879690941895700736318560167620803617191605706061071960027673154502390980376353194473740279311636397889527755192222688956180389924092154655666568322801403250954257571728546542715012706989020740977165291717776907323235291805496505879045973053630356042346826166422602895589143901202294951251280600886590996909542058414779898694606084576822209210656922050175922997722227245734258520160051425129613874836993781559177934289919938835802021549170545894144925252078107553545126372636593646658391856066396600537546707081060132937734307671580442338015621161611777972606778824820450270598592275963194714059994478596614324596387463637046432759569573384151613806639076517823650207163480430071481215378425597180477504077023456026842790031335371452595696430165759161641066032902102419057768981864405508978692006290758233475224082742435701868322532814797327341491186408668226455417957200387569431783301949638416061801464813567381645938568379308454307374090094954745718753066067936452125098779696302808896698150172277357555397124815197791158996466370207763615979065594103529473163453353086886321431067259870474562449385116451376627075788530171551567718285627302936661755927899033268697765858206067151085652762720971269131849674693209362770718318404895576019691295593281994240177423090548796722453782950128232742292614241059898063031997215319803565117673579113349871964753027410046045088280902267744376191755116181752474566802594708612090457235514184278008122439328233309258821810753927644338622589141835580618723838727777501879942380309817252358612613513167482662763264029926687816859560919029984094974969443666787575026547562365518809502453782024694007607873642830180779215666941488231599189939799109987793001143179726136980052789895225115632133339053353010885402090751043175719504981007204769355823426008535930409490183541273924899489108892764546767169976137093788257727686126698925387201402132032807218343517278782105430000373364735720847411847730753744819339552621564876878709457163323324726289006078023929685686578775604123600108582472960261445245808825257497560896507277366117236324848721319911567988999570856212836012441205982383010981663710297153375730538933091884138065381661448287479562240945142491413082872676509793615371859113102621891381206869259687490272859655062181535694030605330445189194256128731062125841608192734477642838244770888060491122512015220804786211995377611688721322508782206761636146126467579843218199572071590162425788998996203100978668762634762972137352358328826343887324385132506874781024649584183893094539387197030604606608782969345674785413129832961245590004492892203906669787737730812800496197097624235332319319237348314537722023747079023779789343469345623068928925367422217650560597992902348581662964272474247404985956722619477409659480433353815496432967345347392863864617780537221925452915919583852733222955586943152476402078899403375736085995834620797413340824698987903688916357233413404221679065767990547577023184592085652011267006730281780229472727242363884326558336477508103805406090583750064271480769179212730368639056125178541948426479163058790704036232809249104768491178932835678115153710677172579954595781789655575636587069506786151021583550012869792041067845834002698453574989402697282916534179120112538668597479857580890942123080121309325348710053085015316141205558562876697760170946698364450738064394558187469971600149376008010076103182763764058284486989678669479085776199473841949564097258982063885498364221920925889410866702068049140843483932898716690523470715837030704552514627718099988183233544948538531277306117449618432089690054784053093054559520824426890084321089423215988457402728114189135231708558141608847567414066297456328292067106444625668488021903234275873588284351933381428738999838758019382671085857954225066463570488687726724140016693094853454105875824379848787960713707019879273611082084266140036820720334185364658108060471706227901247293391286727012675493348785978888176172108587586586782729036901851919968450600541693586444164405924899479590802239384085261982847035823422876773061206346400834139515589773178503907919687693374497328206153802365060948420878571204439373530348009274559377906640332373827350115118346782560242645592788537440425580448374117098885838175991716031032627021492286150018264177369266957545503793886707265776018651543875491893150454404750539245973742448222726526960957424069191038475257374016229428120342963925247896686719018911244906097230887393747528813353625219016336456871795284525383167487155200905502942842663414152911169114685541064190540594136310872210828736993977900286108643813563976744076236379248453301345737607678335085482929749224070731890499658030885440502414623932811928899941342010409115381437918300339011870696550033918689843596833692591091624094816518654335112176277778625583155536124493906866024183630787257923538311083167866334874787606027744814548039569701591305766326592289055500353418881597852583570860533422474882488062695305437688110904156375686101890160118899370734101094836906261914908979279896214076591073590915029862618874920650373168336608214630811818680976999782544704279833639340670629046897321059464945976116523216171208351097873082485589622230563250043290777495025874991883121632835759158330772576195483286257276183092806268772614844642458318826785697718687909646409252802450896618347799912620479946022156639623652769137090944618592371046978283754435578772262244587757555561112740367603110591637429547177491239093918633491055123778739724345817714608499429300278571683329441628885968888017102428423962054948527802813569674701855604152817556365037021589947718605924955998049705758812832542055801212168629840322585535462828547377828221559804537894383733843747865426880966577341947135881131951088907024008017857907524419485928400410894951595443363115026057267313588486389583795380563458818711159365099223758742400827462549228132069944958769329014051602133260061988975397279940558762800786439018887389798847182713496532735291625161796403697621304368112781470357930102952236950717560174468880535198279941701376416432069059079466898833618048346876752141236498940123916531392524953438862631556078226618248465701617377667561403001127317168699101640012349778417241094213183154941806148623560785293444358434765082081182364514157441468025832735574946871972962770211325286236068750818401678157672708974289928017188300475125688383880968569368615435986931022407529360511617493224454558141259844641252318528431800356658289134221359655205782869189106901386786637072165407885561798361630740080495821169518702143608048263340458722863389335496681227699149156160541905348428537841671437908599877862764959081878029183257274027123150250435971755365525859915536480533562548375080991058554814674419639900804151721879177273112216568767943775170571303859018144002377846427085398290999052717343690802218839562715709043918743377370512365246993135213733385166411331996590162162920625256826104937968197217333387827730645313566592372240216893872206281438043557320525652391987743213478505786173986106883428866764112661627642440556642271979967401805898263039171635117360848613625387257269959036035504930894959241198140235322703945859147163349874538488549749440604771654676385751696623677064952707948477719657663750283188601327976730538123348997857397769673951990718796125928879099170914041951239402354458680875129429800155912903691961849981485595273384424371429337470892148999357431835035278000718864366201637765769114351921780267944885571564932153738911656992274260250706074123630216853956736830715737309022124400251344570449701663994651606113083973287085561188991374237842817014614163268597207808891344519557148041500654321540307626045702004795158823326693487090535238948719888438342823843561715167147581729395843242051020853408497340337492220592957485392634555133021422852488272156717530516196447554561468598430739116575221738941623614773003455290741729243884842316829494671978596366713271698612106163844970118337276514347772509585837194515441799090619935094444111046730313953572226053652447037886610849518588286721194033159146386612022845472167479950766485456421942348309467753730077989178179270845238575977554862037602851050560817475093380458377811498956921568538646769086037753670479814865396888097219475169992997312484197841681700867856066815275421182449847902410386418938653878685701770742915651095852465865367224684124747135096365283862242108869155492297159645612364790861609954660233247489696720397130521069084435027931167238584904156879427729937934584259445050459293582774336374109386592378945090636794434598633683444751160830133149091308191366856538325884484108726526432782331987115684777341703071175495324232084390948162348282855120864303504260570209307887704331770352833680565370003436977125590487008288471315321313208038830304681007553166961329621267312150658264211580419310362963992174566214661024814106363742418039911199299584046014585593374603143948153969654485594156278391492116294684181599574936349450924010721249478337371663391824314794996558514906332999450135926270773355379841078142112063308161917870038784885849306733476549426705213673105596839787073394222913247111085913952793386832823025163087245201177889047896650492034606542613328603620155688118479056573008102207801895970776134044430822360227541334163701782226633151869384773047533509790537030492794227896749903027635354296935714139959576576284710406132728462137263209827685619397764507833548198717230201304766389485348656509937955301513369783119344182007635932380395000345091487325371036529375941020746384973791805808520332119577140039992330955725702207854573187936902547873655744966222139199799465680536460171836532115202989010543011485629795062378538843371461064137508369062072249994676570544876717900334171825916394186797188687366870510125255761037427896713936891862164823312507430414842224987761330426927155577355468854858841709034795623148007290788316535209598704762286999003594486001385950751760517414563029580467329993713223668124136138883540788224142854197572864600660928975164979286279371078771138364322735275807137832364659240964890010911504883457186861812482066312762130472110018455642713463120056016122027950055056606429085958437583262931938148863554945457116095585589505896090529945013355735040270115301897109523964779877255931802552952830227127466319645101777709058659514419574675576048654010800331074139907864878516255612180389292931371806031548064499414718910595565667352130954855268480282855156686828666184012336206699924172235344544684379273375147762172043891756381342177428978301789183415938171801777819131108812913061250261403124265093716755573506136424721438570110999516044962328261328439385741400362038774034647328319089819728004586237527205454999137941290124183805096599757808374444149849219589174385807445034038666751061772848084574654403006556697249800680548135108448210521417804615902515005886666091935259677438400753439713663224452691711800897017075112965194513322151037369795624413915607253573071040903581549735677726865709918796938625928898208925611430289725550793946646633976630249419463015947727573122591377877864744511177862383264106021246687091568254071327399695004876457775913131335957629493187457515764567261560365914939592571776220002665564255183802892482899318263870297940991812860877177951362298026032187738214684169976728765087328173732065840635898660645510471675036317740058377466708149969988578708935401406882501167548953484635730850819329626072299432395864333275123308189937204438995559913942264973029236471225786658767621454185612324747621063776515479962565198556536119930301862347442795748959405946525950454970206713924825328559300614260152444003887991143878838313841907162662331045415623777291312422740790591843913561995763906715857106511188766373358164122880920175814767263132801831229767103971875653781166294753879882405344932750347842607722053313792175855978546989038317189757470392453936293783366699355635861241438529776463447405602541093352614859291103131530708309025805409439705518524451800590213495657657530512552123011615650058219116519298508453463617770343265814385744766718736845672630547937769724973008556648348209101459994615991336360248007656986429101496576006791060397668078589971308213543485895401867203787309618505799198924609302029641145370760506515436986365068823589212816867573759949364437840383901501212326127598933510636647899925896273766102753403654157942110859631475843162016107089854236791745521400645815731273295313191087242499560449832839410655888836041070937604796206738185155689863526247506125650220937403470217652909334439816057229256462476698307947486012152340399845784876281034751484674743100339647039302530459050196122862062122458056234688859528162154901356236766933679315255863643309714407856957305355359050386610722089788292815576517864214836869553789231609607022544844821865731116944925838242966826354313609645947307192511053850532843433006880507015527306155482565206571360318915261784695858951116916926291274460202280846368185458767244440006396385160425191418776485155527113976484575375825010930808594193147438750220703053326991336007974274607084212806266265820680139798399090173944118800158141519390956451504430886722165103170733517420039634267229821277790061927090717649268786012622957467188747173790588097658658675544831174318894799329581120204039313064515943950578346823427705286399077766253843716377905182023259963337638981531371311323022169750226964287055375799604251520310725698914836861856650098518739643799883369294801771263451099352720259428566672140974578669746049252122344844112334460977574431650487282376893377234926769244983633772947269061623704355040770374473745552237620379902961052037334091945752372973588129493717353952980525980243777346402326683188817807214016290927481334617769466916874117894372949295656233467552432927977254483858165317051090296227982709079857591900748262636206607015931852774722908546087580059532130433080699219850019302426731775429202372058591446185237023091151935439208713418015638359678892556869458066403963203637917053587371286072842411936473590542566796563879590185536107297454321273971213470484700841471296156573602403504870117660461876447458555917143221963449596397286609916937174407506042063002691072996598348471321154199144401030257497037048623055760312881578602742012365571755465691349317847403783209627843120632345696484904054031496141424570200307838034425308655777612647935735255980187808453942269222122486636009828378958708198206326611647191812576490610294712556797079635154311129860718706462555672573065091263561176926859458950173885637418798455894078180462155366221260272405091841864366068317001063914940639158690008387467688104983871778741364199437518099964142615516632372503671115108384752190941140576831306754425639476810999024895129642796892107762123457818198097601141725523179987124349390623467995845581926560670049549857950655459738042579890062885115306546707368889299928607074778868471652155273641159285588097448320693072253376911764971419862294112333401384230357634407581811598741232371172720235234331122769650852416158113184407343768051550559974174436500619485989369780128805535792820550653556043390434014825138337980796245175191190582222545754003059479361728871282271765885088804356692989666033308782483697041126616119319961735946410320325785186001990744387355776506847968002494458705446352445948685656641696338942967652723076392225895221229752151624453405814127230244841201210752132867189741796867969150344232471522743319980032135310384180857101599249248558673942493637331602243368566569869356978931738647934330582619094501215274483220869282185448157636306281060854802013563050556798107363277716203843961490256035140822606519638945697681901460158115648161331240069546566947285988176903630799690565699019294927579577298552099486550512648564724287249196146019604873898175124245383727771429509973439254115028920205028605213454733553821931320344042157345576549586251528747941053548793208749502807001580839288009980978132029778664376618204036011025061759841893748941514692137131154406048315863196009498663106183404595516944787528899368191729539404703951023811778401112808805565802138982088003980623295498424003667347591637826793891077042747728511947532979252322813348077183066745730961513829088943064441570654828484541007188523231242783461155825458382277695720274466253212140124824140286517950511375938005721320363913731320975099150296508806304407302424752501715547151132501763664822800879159106900137476037351472354874093852663298296577762290165504900515080808994126627763771986812876844983762799424705592410615451947232617321828194007624981424758882008583651449473264411841140860558740747936037527651733396999936628622169782233196679946929021167536637387949063505430445483690206130668888121373254903622268021131024022493358672246854966544858059874208179729972550969983301197370777656871075943898147524607317140928259508242225733570755349678210210046485862645140702672610374194451475472145403886541540418845116927940751856345485569869355831537923354949296625504470562487984307214283255228768223112023274677845731639573018128969003409491178902384660285109931424207939565922907781407169146608037435610421879587927784935846562541195466898991761728239381637184595790581997404092478925945021099781309742237045331890445630081545952004552037642000587167826738245433222422801829282328008715860922346343860282353009799013362005410706558038654166142710998806748664934096609009550021439785860963815630096920372996329356130120748573348906064308157733228337222566685508363249942559857176751413132836483789494723907826295202395177025814226678471091158732420708927574021411516365441524284036913848807476291750226505529009668589526059946062468775309236400374516923696811039506969715625664841507835359446643164071859291023927673920325978803751913501342036673958334841906494858513129094528598406106936596443138456772383497972276933826647228402333935389540809517930671121132355457827683014678804913324105839475039782790999611108324012575671759666155568442797676498653913733070082071270118866664933753033742652171342069803797843817447656876835551979481651415286674553357472813610134030726999138581136148644598043356225361991385922419309202493225361213255793498934138567898823658434406125349254329256524593209827704399314103942942569242577076516058653160667417669713698212783364334604587948433412592924863404301518280420655402458117295150159921872503469950321598009248454432225570036945401706428179765956100901075328173835095194782677003944738213060961290792121473439354260316336226632195751260098024024127751703297568698554231194345790861851279200324792225677162486736575822156346585571636672554382198254462580544881514620245113146133654942119690558083326347917807250237867509474758602817653460617756705341398671769380968688646488059733751283500407606880185149490367612955690577512209044869945266293926339393040793275403870108095169906225115978859228022240287547236460014162804925657518429555426852066557802657995679118469752050610926213781122516781942738425079241834672453543448489555439534737672982448335556664605423188104572808130775703233283991687098118963081448601076785569829570098601666821443709584624530876444797771716046655870097337713369850277954378355329138778870924709794189032663898818581596756936694709923366112475269597020597865723877966492113804132872001784031609083189774691025634677228357259301848227449729210242445267958823439774526433726164145417593553178890891640373097753112042500398441814118809300768961289310354244952694564882229378231961938341454214073747496621975144226902507341221302837435013964809356530426713823940677624784486282412925668041010412904640107569583420443148260386687459116828532600962661635470429018789658669429983791742774877081229281350187446732886958125533924573175307479678193982010975104853908616354373305426420532659811084328863231722374437684015415284961741180744388228554350669806128024044416125993382415040027005875540154604061959053907012584325813613375506486484865679679145221250268785159869572255966701065668053092225355851513942679975084353307385699706590075920265686406363673364457305129067029347476130083141629211827902035941799141057355151183392968621920647666922553134848831715785168277787474703236619482165077557056247210136288756118649164414238756395411759487800096423589713419781528804390509617729280800308949422386104737701152846465076324377869277959454595016121678621090898897643256978833488070599987861167941060503252381726250081035293036472577195366496830785675006417214948835279715501207835553190680229471448262653882539584756664003312464870335916172292520804871882713718217629389123794882847754210666784253496259754751919386155696690501815004853511553087330414488767228926214717933414921540690241232417524440882414944384266440758419728095469450278311876973578552315024452348127745020001607374477073333252631529678105489011230609846193533050993930393188983196304018576913762049756474371079788874659942073235765099329329554586191687012528884648456018195272494899752939803078928121936080546124179234014559983786441641764301282185987070336250577810288362107441250033001891986942507140592763353393713331612590638451426379908373297851910324794447452516199881671519454292766981218438311440052519637091976710083621948836475117989005005736409659348262096500137033847218650882844736867673286870592985604591099860921548618880640518099040530551374450209101472616583863663487408266251110645013219683075379849061309598708990950503640493373089629010067029906869045679664618588083313048373727960606192360930772579139910380620875784798471361154135908713584423709097037046553199865744753856077890930447794026211241494236219822515035191771297781367319220061969112745601268908238910298303688576621266964431363189656069097229780979417576367942084464642757567449487957119700815169054273060715739076790415415968519404731694687518657897597781457047281611347025181528537077761766912084815350435006802543516130981837073742115569873964547054165615916319227867294938765994249538927549670830523668566571160641307901658948173129274264054454899510494106669571439240443711241355929480410518020926586093708479002689438858791482172507700048534725162468539976153989258724270144656832697579706832615707845382222757190779077501742824920741363045518460472036912750090241718956151232328358715315432342778641523745577739918540183012279586593014803786710287479961952132639705252072483190787831335000566563931382044604196853642142816142678004986944419360740692819313303881495049792524825508468690239462229591803416796573123195720674539820324626447580768467506749113688496728241863361785698635661478241259195560640466804184230328082640421334399688300806735972581429668386262958872426295242717883408836748136111932179598848372654460955580749509947134845946636602499607448008805795429414719636785481749800248374734049695075387121001624308021552148487551455768836281372382267732360341267897820036205670197624263104057711069729372539940745714203273032842438209919770562751141979646794368581413047111797356872300972123162119158133246792345603792945056606756229573744109370086523155934530271221070906338634392017069331469392757049980356783654719607042290795616712813635235189585016059811962171448747703546568740224205915727442876865785041248607342302101424393769129444539934834208614794165709595113836653521052865054268672900087639257980561210693300051665270218098065479322246996179519429504250649683577336923750196505639199468815850313896931038043248139343853603432690968304576537168983250382795447285684080783405526011046799681914241324552518269297756638469217127377984287677244907951697900807474954018777572656217049056570595845889944441828585861213347417003827873842818416343756631842868690754254753730257321507688016561359391799670691572136326563606772457871178173460134485779000505590388414379434251639324762943156087391639288960857095033518502797437461662434044099222899257267961932561154754415515464244300087686238264923249998299978524867504077381790235578869899739971992329172821135778886163862026626395392202344425010553076469895880970307395804500858135592678320277781601914500818904758418853437016871554938634436893744637268729589591513103007273603066669193457226903603677583200535704481109425265134600101384301060616625604258811463905554641818304695747020876241272390853244065828094026736010845407342058448517309538823246800854452398106326395126465952950612547688182330776525698732466012232956025134495588492218749970837526503989817791522805922193989129153926457073430130220840876104867839109383791643350928771519674492313782528060793227310068296584236990791141070538133850898807134976611565352311632940486964784354143521459832439270345382987899140248971398319968761715298338404458428256971066734264923540792819580210330877473519311174071297951626312332776716678956135588558086520727967871061891111695721332222284588814837534794773897179048990999009095954238045806892802422715469547099795591749878507421427561296601474805053571288363166100715634546491216506029755571843255054456213264228852731855107428264240285996440419307045719712582843432512397810022534310940880077242282972093099779738781858624256796635172380564353633168893214791231304257254346763495914533708177947652485256090591076249783439383970723119533088512124126810299878206823598704930308504681643540506232722489105627023799260492940186682729666579760758659427390104941303501311201961597123682300396416715956193251140558479424741736720502013084973304994992869190809926222781879599410885086900194845714544642045797958490909977609296363283533200581630441829263466437872283499562037885746930945476064367278589339644754151558380030277042566400378176680075645967828242257413656033443389060884894030551141694774273738584176451048737664495481683988689672487276847239193144176423932798092670119903760123492199035061773957723772458986765345567663096676301604208664346494344050653846104107821683445430405106017047997687710086369211454570247267073954376756583044993064768382080174675688402033841920174342778822603283984691535770835768899386618686370929522116885762368348632329673702312506611524643786121725022414983331248106609456188312012831880984021471691379511707197186973416797516836493475041880497607948255966782465468616759955864489881928363900670153063096711813535171354881407027052709240512385339560795264647987850009605863622385729815835373834965959524881666686475958846928081793947907732202708704796724894145228520495366147583322864176874474989775998191280099867843842703822467672679060517822268374197019928647550041835250312563402060914153813217262078308127377459763194841690978623382507126280194983527205901201431788873734654530665405187937715622028984977524613063971417879977595401780371434708031908007040226541436754747362512232182142327596116692094461127858960973656973171554767161339937693581200832954505467603638606278343844910590927298791177884731158743987127668356034588166714984626881092443037103869862479251746477328846791478976532399357223739464437654681027042346373220128934285821067820343299216978392261934450039030850832009437892156823804742075113254975795498433669496658629673374145617797168663077530044824856937238964244108285100904443339509973496440292013033427633596077150116627182101941391755384656363018080476385876766683553440608843092364213246879010045407464986627397104581937059665512321141499008083697722567491604998113939890654879887913128477430766300613595924869537064611499019170331678697795444425847948280673144321687255384771917481317305193608606392369614358470562952204494097517859711139643759440225828415000292070454423205037281745336094138370876572569818514321936652966963238319993657937892893571949381469563558174081473635578188096248458717743121125937949732897764726315012325428348374418550794799892035602498410077143953640123642505107970870907382143939029825359206415755518365353836139135914948362089438079318282366767063287721867768585585863633956497484823903109946119712454825123224263504102094611602529396551866639655296816208120924288839722887062208018518879807602115219152367610291002653520127007016267250188889578174177357397059986295656589044643989722802305659018566559042293099246390362266126572864197122729453756903165957784187390193943005154928893206622381834744104444893058181326930961457383547377299436969808602296471634631664719246631131744794718800656328584315527518720891534318489997716913491224700850158500281467635737670757709484375893628689138224186291117772600312987707217090474485485208189201869084886571165666975371552164810671491254056843852646386540538067544013694646701961153667252369146637168497309494808942562564512801977416576182411664967064986348767416458541394511558710926297993054156165006669617098123813334765155584186924079900624861429455604501541969088448926920074278931811784670237490839786863670184587859460111806268714447529640739937711818874653271341871342942515458860840049247556457212617727213698254399692157580095414416442158028733974934371624904828075896447193704576826078233929278114428119876877638322064940767311174369917770669270044583802176041558239810777335011978939856762799131054096671538798529510987331232306291461913508816627639366070656624685849238202343686344297941377906731311219088894150155232968052136984740639551339372484056941454660065501836207013053164845704466936606798338937037306217014545213206843724375738694295525441472951693550143328418089470584828783684846821214429394220565073519104061255041386054631952255471635170287320593713063615854191054913251134893315000305472918805151109504849683057502837206119441155415710069231386752490134888321290132773699988541016046954384585333194012375188383816491452191697405465006296803082056749528715067496567479443612118401479416240693385858369117952701841840777646938005774614363439033956972359286318408204609602526363573142449924157660904065132438105663929604578299298318178589669535789263565686001796846978563574894615720896915137953430245981667877386380819786214516186960939102582336199118041592232588718134573172320502367008335841142318777415711966500459397635473699376295385242884416047699941606511878684671113115294787287772221577375729950317645740893735924832140014698024337851563348296722388193692093722181005990883203617410691403490294091850887650690037255986996792489014850298173234067585496511328276014928447161421741193237354823636329954850639722237677162699937379134003736828847054881190872089940746260003600926128068222523765984388157094384701513325101404651822064939854053540197903039886098088630805135335592765670502981916709618304692214557750703055397743898875472174984189595816194265433946295495447736448693226855474566376379464892262994168514344758297486200827530508037332093191107827345182629006930984532285062972304566707028302225841454079100551319641774368190245150801905219196853069846750093754616393288838054627524505734994619374679506255186858059201835082777335858023549088268378072183590473150327479191168779345776026051440469168859278028485237965949657562493539034037876788493035790564739991929835697003945764980888541660123218631181349634197214735207996273863422483046632114448190924120620729292991816918715853151920640139404366321963148889396768370166337600757179029043715996846492330696237882165415139860887286210426977335765946363728891330266072932952608123941165147580374197923312418815511053357336409765340746113470435688208512085285342808230249461383151827880531075767288340005827776849849698381375958843711176446447359500876094132749817776977006511338564639190887830369205458331840678767641693997132405926649840417618784234899222841382446417418394448909745027960465312170471375630272262865187881377946485934001925685363744469775916303889100764130923439896664540933384180170941628513606359662588988544506467841813289559914744785458197949180817989337459110531560945031909785044105725252822790314929283275277635133405703011525356586668318442334323658622580019409139781221357326079230226892974081245852005980412769631847765152874913909558176578657032799017670663651271538729760726780969706640603562963371111066328729130818949853492416168044676537971581999177805579794874460939101992640954898310390333274884370417452143559900272820178645480349253029099553718842719632130576504017621444683820660743622173186288842889608253337074194700713356235052288464732170212634376254059876301384426414449390804574310967027001751064928229260939109763580340848804609755280817894450568802508616898996468456331871867492918939493802467514017683552644817916100602733029623693233695252915908447801339926244137961717902279431243107763328221559287409193931994511053796877433141976501155714710925912030120501530404228825941225328131590439915526859197764300029065639668659976850358513798318658082019965677697147361244578059103458708094191864712351024137716760347057629039217996367032133665197016945435784193875210520364185241401233638390830329259870482000406832829233570927727004114027258855384790377726717854274410047445593084486081676458244676990235984819292089154348475198078390686653603122596869437463593205536027772758873146406260077391632091687593635128384064890557429281735159719229330056523540288043986538985764946858865946366838750763716679171429526382101257945859513296169176288013886122944913609491713427629086520889356119184600944874863538750837034731271000177708423014315037396110509130875169886555730614938563220075744472763333603274954878771238777524052846922560957149978610975537618696409396363436457972836836601896172435758967226044324726446464082954935764066651646788669274266174472297446995026672297705872536859066909601273934686946827685908516578762732067059280911903048952246211398887261108497178511733187702844602559661880746593583536260546227961868231168088300816807050681307252493302743335307769550099444929493085155429599464677289052142927437176598565111904263029082957655524491162330355879708583321477136088181280521064215016054779446396535247679880703442374718776294528212071602142892297946213414095527080575158385633868352946589615906252729503694029246846687488741073370460054138421641770419642806447241478089118660315199733549805717891806448478050900677441272638749888702905980204950712705235292829196215967285674680965922595603431995722148547690876333418944378961617543061605925223072785932480229551372618946522740241004859740061397512677201664630749335538014682512345417281717261586737544169016468109805838101838798604760162316512116015285684704277860132505857171689297070147916948003423638038605142647273107187385672758668071008281039688280700430535673461514421487925826938669709599639674015064371766207237652920990365361350940436355863690122208282386472919876057437824391615728934744789598658309832682460120826089897510554153229658380626831898849438234322741434236207371884773655379620127824587782055194185318459561528326431014447476130362891305650962329340820675473861857653945009569112677365556551837736625730316637987357404186504146175502414750621824851085674734541350746774200272022375233437823866077716283017673453551498017995624837399254080777266240182784490448457641584077290050503918265808584035690534461091773615612366925263245167511717408043749107145288043203623657208581005390767661570163398030448859028077180716884584138888536185589603071801059411133566555187373659457360828237576682360911097347330529979056269452260251921550668286217482405556221289788586127817332402695739474966813821142973747985191074380512064663155620735052217088865377240364385663170212786872012523133742310565758298633863353355628313693677504977658360249044546824458636682678132837301890602969635891033954711651454156641478026296937567503938835069598742394414512218796169185931248410976763683134079062271116502003910904548260906749883556183464439295014748529424078444527372199700475562074222903553826249917870399995491938087601877451895582041360068554008693961640796520685211252827581873616410548573496855468061505979556391265351034584173544888533349618624049913177807612992802057345771261186790520822990634313544879183600979779441860843438784110251111971143137083517837174019779260775288587534521982868481766895317559815025109447432255959938386374412240158018204335871176367398856676769687215496120011700769806451257474567080857902539929252953690128960006061422324259223492693146741676090786011662641849570715157910361709191394636748114494386878155844481830598998436677742618722285311517097035652203332311459712961187441169736321449095247475370602679945882753913713118017185491863476967360972863156802970710350278605538872200057428810945098465445684866392072407033202523345552969997022496401243220700643661332596203062282553824201802410687924492961863104659362931506328306136451226209163837174890215095992795898122733256830559040567735217429796390689981970165755277391142806411027700037690940429279659009482218828842605807164566506682650995686727271585346082967652709889429284384425471534682906509929232060880426801655615258528055208854317237995967137991533883558436036034308958377568402617901234891270709375368394558169643586090190914308716198084298968183997368644848974771671388144816449162174102731401445515004670549228326710423194585905092064373930107171161042955455894845087140605175598439760842123002923786638243799434684065778343248586165503571410164952603658713015315662062812231553512787625592507896231803171542529182230834252041308603477613417052036730261045875216778956330209324335371459922589256382796047252448416600333553521960519689665833056641475975190604691401294309433214783852979939011844099872750643674279358314028831869265907275246102017339469798104193542340738361873257111427158203432500726805527553238993048736573599188015647923470597927935308263367347650489299304458239690982020774877361441975901955786162841643543717088035080974161850644057360415008994633072168200536303160230491890716464747565917359074454539547119264858790428359662104663467996205568251309900165967308115644644394669067075877842571498230522547138862242074213648673846486456275845586951076506423784429215444091616950370422281148317565205584880128148795570043593020726385132544962170064147727500667885266030704043032768897381133794513344272610995864537414663736449163814429207739762030551536674215721843229238852997508960503412887394281795877222615654290183935728083712651088479496029216507953304586432878568091961080813929303765502999698268561628149218865765934425857092141630667220502650210329977876657464758849071005328040382505192502335240154259721594712869030620611927082495266226422418090281318000596271276502204523649194206977298644736114321683967573209943403581296096636864326016573467919817976978163682319968660547730830251642060241822205501343518065052620505415280238401221169435057210171502770598070001645928411792176064594906401024004157739433842087277461259272777372776796819054497145664401072218197725636912678901955537743975363009011335200162695794677053318590719464126344913358088461311462317318420431155185061853796751280553066452154731414542920058006682658385951344586843629780033670872325604503784721450912260401279736186508081232330001388092690777728435669461969400151282306633668433435970935136433212647538938610501309727044462444669350860967359636620385200759814611432605934407990624545305979891340680942366418407615770422501502350243907052063719241652057575056200923499341670521437337437604456209723512830719743783412836588869508490040553443388052520361966273371081873696143614043562983723592827277466501140168819312316619933266243976958983024753751640268489991166654334442089379839167736010740439878764127913202281693549385317665234046081689758198995618681302129624910052990132531624793860875473802610795413374123575393422064375596861247905802721398010859294195384457745711316047347288184262320573846776345273644975759196788133801065015147982276227592582572639871610450028295991947771445102767076911603161987625965892503901930775156134386683329782145321369858112499058869929435155009031951341410261148625535243114436138656687781003749333136205715843199272370858598423702616990178342909492890847122904916788171152816076954361891233056180772019573603155260959514506542358720843129863955390376083235516880651737076310774235006966168581109572841745306930044121165027952750709720252144170640201977123708600852108725383665234739439413590079503986526017743959397636947532883719229309690515182697089916830904355614410682682179908745537038258369014505393827702687014893448001158954507791757609153114791770564580762349225976426448425952055248775772952470994987669271440015977599193151161875923336544214286541500214930392402898812395421063686203401145629066622734111849981687271258670072252662963993964804935817278866719059376884686186198106113314177753853673156577381963742537443792804320651073283104297988855893110156092217757483532087672197856182331934689529613387943901570307151701925549786533279087399029205236629685965687680491048093548468609317570218670097779807238996386365577825080695054629361316004856025445358481628307143358807428990225609392186654918180196529177066476968096446485336484928374837087596545874839775679778636302626564083461403968757982415605640947829484149895139647280369743102638890308951960323444836642723702007774692825138983989305048322292160903408261513794176483492180432529727842777720691604813101036203941272512538305198519820405979088175171134523571726444136575726656606527981255949789319374527289861667339763649404254614996814670365049669849489247383983176927952829295215001369299489658838097522924879351903852859498241372620391323435892686639398190391176022991929915105652201988066188329005814164602900162875250835401537913677657966858434783252015707289292629902119238645733871986121105795381621970335534918682864089046098476341997204781067713438248037133352724632548986008518999274131632654592837844346978493154031135001866437510026822424497690309150309747059788825150735708363428794826150582739912923323967815477420098176209968391332994247341817569329060203707025366166986753131037984012090470773438832293923074251101875570285924613928346915107452645916767609090676693948761276139743229771558037544781695380513522858368359273778697738849245819151825031399562880394759683618561134190430039289561013312232774947005510251211737642732186659251741046896441296165543999872795572648424741255676347599986495113052997527971523893259466232089882657942048608019456834675594152561306702797671067343102975420977198652744153430681427238204268465650127696958344271363822684797277824157051068736786265915028217051670474214863288939307946998140288329568702242057659988713440072659452484128121030197191640110142697758390199407168991144834163068373768925379041875058434991309341859467500341134018159040956206062609387690418229824905024859225969803958317839270288101915830582558158573294695326749313380098582653160641130346732592462962926672097493072765561036722905830378288941183854511206550853458624540072203177543769828462368898532334437014065013966042642771270927163192501125975802576565348911830608094556564906369927252131134244737897490319921181864736229710553897789477226088092024125802578213749573300727771460432964764177583131922365607303828390317849215280161334441041434444058476347298673957549199531295623197513997192415488799690351725050082312465286161737923974497001097823735594949557953821965626004671790892023833137044379438834841686049682599884241583313077465497093137008703266675399150966057368073648437843779679984639813234374245754336159939272581740939390616993438686662208396764364185054386252747791699041822865067901774472340928976170413178981746310084719543607263310309888159855478381435945938342538329466381210628139163835294136446716505968287939602269485600590283734883482060927674705039630919740112214903707218656683406698751990366807979791068648778912432806725718849493068656467337924384809527238737077402410969632709294544136850397655325169190614519256049545763979361605769196460063140064123546474502380974530529985220658409304862367080827214165120379861661184131662781167116503035278339552569800204252177287760706746539522995245612349240381995130266729076003446807956443839388204438945964150644832759289226408658773951937893276702612190171604618505548309508287053748807628876760770228072751551378694391922577522998720373066832379417530825544610968769826768947163825580390282503407134638030688835788241818608396176760274122069638383605435236988242356976596647988054203191346585523881685261168657762650985275767760244264300061862953911430504745801092028800154848758063132082253959542459779716092048279927861583539213760104983982678049103677617656809287558341302777629845492317425026819715162325361693045657892335410488687532530454181520767757227612792151879775829353423164548743181559012139484509029160213743103537699356594571808050440514602104654805586623332581937874461944915428496117197150258675718389260196675460955550191670058827491135344846311928263278894684648890317737995848358345387255283714346656057086712824485396774261962277435367259100546017213763014849869734173531848893766054577755755390928552462963981995760407696241519574242206644291638312625317720770290207276055924489695322662909191396615705501510521928545095609509661501339249443892831559815849451946756610065374021792165852966097048249803006413088184501856676408468433462981943873734029540591814602001985825973543691592509082327143702930396342195642555589951203878382273741200036101313843649431275073995139702022434400106090593575414277019048601058832612228848904152515506705955054043035190005842487754787261035037808200904923799115044981443803642239123384517630931128625176951596434943147391145684233547830826793741644160421176799194462588556760275956658961077319359083167572337783820767249536981424442856465021290862852186260641958307889092749468429935462234439480826275677863642666297038582470144015613939086169599216642038370127439484767813685972119724801560982119923449988880521823000950924697138415327566848406713869466342815448078124793672869661277908792090228265044579235404721098971613897932427875968172143186892296221506173651179772301136160693563231196945143182432386490561190231861115812015693174705953639254491125859433408065395326725460892705163151072111044564260192397283023703302743617030260096499435153523827055312379885995866634075292939679637291659840082934388220122616412899858490883049608111595486913675763439761526085707539476824537340259844343117898107465525363477916958624356785117815902859048354871341703202682124075847544394000143174421733542140031163649871763272555256689282111337472991758473117230844892514266738534038504583330929863412549083265247104534409015152856058091745046997338273378206661139568141960615750123162148877899386583054267300754992304801590531890181006319184362621521091584914073047280369668057787518522873162873741107229258363757814276140630469576158555244814101113375220327497455939522228399439289612234614916021230957936129738541784518090330612359724273100533122144578936555961972252040384621637317083171715460697571402224580528122180120764213807172503449545445378813630462116215357896242244822485466434423427449047717070010111246600575221765875287345869219513773713473064880617872661720561193441224719144981729025337682695731738553121475329168895542283400504295412110746797188494111510781989129843757002640883789625566494128019516600911631991334291358236416072723794943030289119616298691996406200365978085318958571585099987179968609563610795591312588079506748211514500126767065814962172763008775839659709744697954276759536795630490259295764629003634200895457846724100657755212684066546279230003335803731128288605136723286027920671141546701676263627030444530874324483738847136618282130261038103138666466448377262057360832711879777431794611449382385149989775168806520562059205185022754396951701910853587419647025238993893160897596125669973384734345893439613419415539900541674562536348055695840802514784636003265478585988681012050324890010292230930799919684312223593904816639253178620157209053101576997331748289091915075039513225655876113375385389620559411753265160747035345578451362939205175484161463698809216570503346180863894021228103928913535220181153870802901544747508915724627195453465264921846724389579272765110924031138095060026507878621066639524133694984250023863930547389818915384503967689309398365757391035602366516986916783772326555144836976947702839546732406413189212410703744129499897399301290307640865763348133208713061060715691980914098657064437941927339992021849005648232292332505123371963500450210836665570123532940108173608973411139505230690404145143176446826216680532959134130712460401606569825379004027742208348318536132733423895900485045811374656632340032302001105206089378115698050094229503149197865100962249234029926629883897341100465646378756471172262374942064890673221610446613983670138566220818773657798815639562593337687374041486434316405228350293543365235761342536987615562877548248486419971073276473844598387504161600301930213979143721103750360681182147928815079566478777676029150107804167564461331818551769301245212058035927430860250587290545963077321329178116803036355852739639219524000332782015717220425464791588644059413602670267371953910263388944514989087130158387844141293718213366137622820112437730545312998246286487785487144844571450621153573789783694569021849898387171683025383769936833866893907551616590573749456030915256888219628325337761696029601199997509969188354977556785675496820674683382937167904706669180308657406582755887728102923890320892581270934317957095772103189916958402472390856333202798087377133321606509448236242291715167521922980137739123960771858902353383347865907544279169358473116735650567707682488828520408533362876861018523159224831197669520259233130803395530637764292160595235763055075845981007843102577664860830377109392211725751186530538354024227392202789505675349545138675091077922112997589679243268607325459849006143033994726334670789615106172031480950553139927898231688010277820696458504657734624402373463183226429576090697054547908003521712095895410719492215999518646401390395101242296879479905028097873737911361994140945471215815634191314999288067082703775547313184311431318322629412897603504816851977532578597046213457199016657908093461472484425297701550718353947722892548575159056809303208452720759419949844622210647711097124909614826117736431770171741341312628231161161471558555272694837961554524124782153655116015198158957604163677452240313942134631953945694222216482265444770668804104419977900462440832065874642411500522366271864426683023169712372954612199033638970993502602166304517198402672188710755145068513363655575796095342049766035131842819838461444057093381920007946000987978521761663050523709792648441981210642140575598109548618917601940328559247123470468824730458067105343387244495139760280803928787441078085071114150762726520663716094361863954730717166841236548319875550596146111323003565090169117941948975109596820773142244129700054616476110319211895495505458704341286389273889549541825269677623383911176342480869153306235801209640091318555254034981165872333551788196470806682817133362951376535120187411168566461372714529193824147752085262437968253365615029795424258420675539891437238088115617386078286582524822957360405157117297527852955711156173532841282681453936014397143190908044551282316821537446656990394729001017217512634007865341509438574907239946667026022753821064995198907923554370321477788814611080060590947865052021666247922952530727988993995655963874555267615093276552476127704160205652402393067143448858857489032639319126015937858746875548242368154989567113655661915348654968304045959529554590303974001383892911950190554670060712941156548684544765887969725477833488046681078135439037030618693124335586161922762350199885253854716731113827365388348574941687828731744697819450712196520299623329086110175770747311896972927218033013039555188297555764305485436397152464283762950773978929325682366894545802247867369027872934991924782831652032222571343695432453477453403540432921226856773236582336088083372502819863704895783414592367076550144941068212530265640808924971485547970282374951132524582050259311008750214062532640161039914440340691998729294695544557605841917328821502221585360284861214165395134566652435314446350318757149126644170226684452705970712441722196788040569914608848529909490234589512065475010881745691588171779087885857608215938337591894486675988840831417439686465328247788278655228095865346532357651983872719393477741499172411547669619117664856568548601122127020736463461964847586357593427211318712663928493971795682101055713565381350623875523284207707217120917744519597818478595920633650129195991194387069687706223452305992625811674652586964683687360352112585200626639196820954942005784250223880959991222931850583610001435381917776032845757770074116137378991269812874583620913508969750898453142745279005952023487864138527159191928586528906259883874601872413454993170263001558645259114787277396285719119496053423590938449629353868198312008119661056040548160843052024707298085495462827421275919451045737346901656230552847564638166159149883108039971937925329537093101067610168495905525534956815224436337750410198251057061526476609217115309481650643501780902480957610659915322676742790736801971502918319597763448196015060242968740819994026707357145880679088377679564452858723230387844526306494539108536356552784487299225888191605533211461373962864940829129647975227190826601457910920354416204703375158825974816212883161966836986895701499115205334914384056280926757295593260372495373848169549357444179203478786451267883983056350696894089999425424132779172820964976578159087685689878115099914507443899844284476172538546929289993146812716893853897655702634363707541013030987070891599846508075068896280326696899263942883761132934221133173305008403999012867963064698830329581634860755621721876351383299184155469312040041006465781711182007160209204317699532174430599943150593537850744042390935433414573586087172857366628835029872095789162324091094671816276065636615560126327491238997245622775881664307305270332400893098154418156092792298426883151300565494266980853634540289866785176048996982484706363359936790853773124973139207687140781310901775942083607151949321255156000757074763271774583453042941446275930097751162460253910269700554519123671613873509131052599735536420833697511558986964609424765205090898397063241988411506656934895000980620134176511692938947784315730923380645148344473295485614474743062305020130232391066986650678733027275523305985694209277734945503054792875758037814340578634847016129061122717350903406296654609388228234428665584839057765104682464489571150600454906935257599401855108124601720598507724955065534903176802950446108708164178559535085730521215839961604000767641768943001627477279110506555365594192173610007717092475742589756126568325476206489781702322166503576348572285596464865498332785432510359019821152361244456137769081864713214378743339254032092435855959318461813830318175268409576654446423514512314910468824886014143220333068522429790961349633070346158280716450582770004028754977401772555116399031329516861507995401368592176319854598479903710267226062897266635458788443569163959318117721796446630040743327655948532655866920161695491051068313195234320219599495892372246514872427250420503642396066274981973313899904259943979510568276702999199398738316560160948961696949796309443214461712323383236423914120822056784184576003439985756460382654163007998182914868219362167134526635284503678980783724051812472871644869032312995080642213242064868147824865243800467980232971530128568419512984368119346699966976232170890009240905458251295660484180220636627699997997664387123953495877012188307580083748582683104270060948594728841264789595755562911770815562725366540045404379215179142350202168772314983232602591760879991584876209252041782343459075787723372585826027765427900831153670609288753470881588063758086271612349403189390973627727270769701879950448084122769550052173789245984453489453326832510108321699624693334351085009189887744886192945670258061121347401447739678577776291154474772805184120068630330706957060971797776075755687646727880166980913458625670360297943925938826036194646005339502422317853438832809381723482363886119155421229338214737469233295055297265814309673179447492126051059743230493914968063763240042244951948356964789934209725736759073489289205317688634802900690384148161207624178448984206224236584012507775282465398284920227992907165898268301185309501567319806240163115993616675205610576217160462675232162559500099555235301749063828059581188884603346926412313777523540706072821525738370378612306488608497993803914738813049889477579600379941255667896292492776796261110965921886833515541455739376772326743080110147317568082547965195430896939749732695953393938318842116508234310756499452490843759182924472970319938970981579440668320191893805881110720813259029957397170545326095962099138692965151736269135741982405403363546447469307082799613595333637402759259850189897155372665141776069904206766000405058966112855364708409396281184593142058048260195767802284901666754894905931798250037814412342604725464434955841550839043127911049529563429884281177188981122902207110859179189255237088713442240292284016538614333272064297026488832268231752267767807828054623793776886779346896765487948828880363597366106281137016933098979484765998096263226239008782786324538770538283835135309502273423510159223944910612915999419070817184060109930901441090594759533990506837143658928747479116380674679885641261667596424704332243374367369122068421490245543123381123310416438921412068238529765624625022869608234241873621307765695205654456059558060479960186619492023690448180694677561775118369030055705430546338363937049608982192899564484454103079964022129629824225824452234971445035226517326548876942121104307067222615790939647815244280700740604687026887578903918295648847804720883019291925616635522174783641941842336868570531134240530088247790957853313427770230839351151528094937829785666670885603100160060998065386691174089383250646167167935456282447210143651626744147592615034996754776466220460729333553497469103180694907100924698691015631110806069521188293993123031952161529534155777447875816782321155897344665500275187895299439890972083718124786163061365133474444319399893615734378329950069353985358975896170644057635724749582376007499734090420978284074173715782714430607237700388624494468079659773154320495065446817190501219931964010196758953597508423773623097502023797683280723093369252802293707986503105926783380985644463613976259072560900571580844338602237032784953070851486578952986131732507499407850775057642650466230221706461500344025581059076928124469093395115533035107925681997286665707002494681607916441568825358866507982365286967426324503760088939153172029881228529524554658476908920276773689055886725543729025567775693720409826892745467767188073461309475394656694992057542546468544110503700954629558209273925373257194195945337637691338308371225758357505268143943020842315996466133998460675922356957248020238657218476995674948161836886695066632817779598845649192830036421966061014518722300298835196930006489166992261831446102553463712751430462263885501354880913424841814669801150294713120035554459158478462073707370857379486419686983846109816626545503598501286207297003644146101815692618746024766677826216157413106552636394235190945791725185630684785273277851527517698474940848916027567167157760166905989635051102502694148811850738283736649910175029009971627796393527708031324045723109154954811893087670586512651569582484903314100801863437227886505837456253431903747810568635368396819337338437957105431880845548460595834965525078941330490641921217478281961825414726460229764843135625255417894559741282583059865940924841763777607932704275027675301917464587733612536126136913467452351953344837172390653546085371991469092121085015377398293257181473015086752020239127913637223162014500700711709172582898080851195887367087753564541175501671244296107111114793636165921178384257175583924152580850306393784338088718466009959662622188609144950601469505438192839736562214541022268729271122823398219829780324004683034891587851834017994129583965634656976606219391121897472890211062308746912786335988251502599634089319775745050197472344799243569712459740161586783118995125899974799001241038401559489225372603473068517744621194382711582271681240969793393601874642213372680992605824358222782180956694622076648328915211836621222566546932561423813127759652637871875568316626615962338646110094401877035517777545796389301198916216113811049767142816076638329441089553061929075298184817614940547199896799379233817649894464556361538428270467393236822413866900025650034770609725743468405516646896536224820193577398955109080777370534452088753438765170282061493097246197352559164115821895613703774961483787212674849977255944714815534738761159232812555158642176681122594194896795157316753344016824301640459491703506670345414888083655350163417885683311983969708016852234322670889366839123738798164439114977048520170146217133784334939411540977188307670823865808833120022418733293180191640163043030758877890192043070357592947903795591751208699770770681970670249145911654467346923774330744095724449179910090888356570925501162861184272602728654395245097290223409937358399666075522700677781705022783323409744243869279506704863986249529841359365024198761727397378109811406714482886893966435952841104022659675725274116560155504647465691452960771649518642880395792315158557576837332445826538462924527555519258457533536646022638217841737681404348314980797987444199458205556267462738807984440488314605929438510449790048800012803789363618615252845365844908203719247470218515092832855905601032559915427118641930515851810733930121572753459806647018379168771831195886841480218384035620886763005554393977924519051200821409897489832241957976403675011885691395097357245880404094622767088574322928450443841515598757820726944838127176729334585000374705893301927940861807681061537110655362400397414560975681862616918810487037174978686731342519188771196658885288322211080400736107983756755385148721793405634587441630311765565085022320008653719596937938473187035322945187494945260509381372032066029848402090754988049993292652704466660518289500040934132921778705983635334184284219910072757556610666516398954439002313161766480514386121152084075247339481795686324053360734184538294099076508297047141809137199147794826331212005473473444733896208524129813059222244263292741830601180773134952449531544627191806059502975369545740114264661618347258129807281456539015198684830350235512812810721323146869659404147352474048313783498062875521976596758843337992612464893300220392155108117283998107496148618069541485205891189995787635227909336696180943291275723600670471569986148558868607745309376523589944156363505821614331718928343048594325426464462780265261613284655713673920207590001883721008481109047895009157286559158053033296005615193621725570933093096274410921403076910236250684803755568233455432829077893341608436574697810777862585489655608694871029118006949678504668643304611321915790279274957801984732458867572596941231901672029345361765927721303928303986532490949166612171511760354717357290812440644019854527345513370106645545655027144768838318350605303212200349962321470681982292411329529947765418867908878975030438650335804003216995498615491076937954140285289371580844002646203564720152874041574565501139328789590513934814638619234909974508758427450125650198846691844924513623947173810481708257404158178502241235220973618277292256944914302558608359381434768946633189638449283272609909413224817282142023772252385592960551419568391456150368187698366960536070705944396590796422357539894388665110756923553444269869027583739655539287889232130917122638728626206716720528569487288290199171063995248844334634003643025092891809166102603166483771448241365989146956180985060012279681394743777791111459628021210771119389746400813953611330115022828520067123255300143611449031034755794486049326270533389629028392121741743822311936967005161598066393174310910739680003187587945989663588820750973070703345445933120917879520821903433259321652981074916401202558534876133427510554844862119189840074526936370591483453677510321443470246925007420175769017364524077369977680922635880489388310726882242449221272707789020577331859472456500240612869590815954368353179421818854360576725324398568178249630397898055677292728945995099610141701087993319134489782726219839750286721959893188092721424845503027243721829335742195643624475552588233482824068310494051829299011191951404259313631811598209278519056604884798849801078921569654173434900780041057482535530846012527181592381800518369535275956209683064214803318374956601661898553240013658078126209572375790321757353029054565206805699718432165944044511780450556359012237886731331279248278550559630466041560651352370030627050749476552686859855510506115503141832580142144150633157701510469511005258703726076575463869959900554234261093220920358756019128541499246257996420775926970719473955453719469596298704172239634969501489455773577428914614479089727890873305052043361218472456247397016495270223968199778693315146353902267359937194960844885311552282590200767882664570988835025395727868486929937832938737471829196158300702512576378275526102419713723451151757861933149500900910708859029015795065367256561147597118821626477555083162415026211591635050145135677690350896796718659431415495696214542137903771780293380990213670478811918671992605935275303523688546841680428267156336655222512144155385072533221549317665617019304492854170776146953640956982175782800346898382281530498867981457938059113016883098598246237607652551257322067221546263180203580717124576911408105201847710501960357874482247795947080578261502100682048703097545325073890218096977766983669059007542154073365329737573649737832097059124936134585245079137744855599582544440872574671871228962625044038439744388901728261434224030452122047314724968620412479893787764010930535304344473086737732260100886895036787304060206282185776002275645130018938051687000957342858923360874531723673765274846953259511695206795151843226711361680633016231247960643901223952864452774807614367543872142784244515534074682071712191997596972930940968317088657440336908201590762237393534933915733866515234572031267970528579228230918453250612503707081147227498284363877814862057786122837536263977813040232788674911614149839057206255665967188113674726246259007493639826659142073202526471424296736302598872905072866349304871339778569311460938608019692462848691383334459176064830736602125979258848463714412833132600890302745529393599130474011407969316105373179869668954400781911028724846389884450624662861318694871511566403944900237359843179302869799877725185791740691212391594675411937811058322270226297032946646000517306763135129707969421079354401707157771462450670069064253258998825623473011925427067836074776806040619927394077704755047297968082021682279919030758436373489925299605208445726128003400418051751738042917494837971593587283967319224977497416425853710715478138422224182802401780590954839164078022288685686410057257549628130135253734513623953877770995302052855668180243412235683940711949330400317956670586746960196227194671660507583978257056419981308830388200683628915859043412647099831680016789135094645350713164473763142320524059643796997862305247197064490192850873774394804085888499200808452120651067531255705074904483489719472967746647493853658543180573395341945008449693183626244747487713578588279202870029394020181606347415843733875822999058315479512229546065052512859027071143289603602652020863422082773654334559222113583889102322833794943521169337216267039476919507510826190436544639575410618004723387292877598108155452646361697398082974406708225170890538297128390067484831505842225675596048237820851745996925680661905643781879416261735325443063922588860226050527032603294407129413199669713235435500026251588587629543748357469801580109124837367317636343127858554456830540351097361631876430325614934533873050823401401079378931057337956219043540391745671332321966814669947253310240207980473969178562919652846543785862195577299712889632603789299434476393831363757577859680128787721804023129501606646170197893068274239101860740345751665854486272141734682728828566504686124350351088691223601888829526119649209475786550369301791383082599817837804450409516030883067444860430143631589530761249267627649669695290017275100756783261803112250685807780096738239098358021598158813282676433227867090076841879585616941935879072813093325782020775162991293411915650435689305857010937230428209714187549785590480192107816203656585188723875550265923614981297738152602193745896429794821683068490275290052613728304691434369682382062928784760423673082017335873900925627462331557330879992985291060493756126393618411038890315784018774867852154972887867985425131097488358477957832437790759899723077081327086849552768220064332486508400451721856550511668307398958423551159242167947617062370086824980514296836294579996840056497375671172819626437419689798382401702378978835405022108416509559010390334845346465511889910543105493867002319273985128029368462792015843355519932920850012910974833331850882950194242647851926401429519162909888556346942354390479247527995916180300783629487007897736903029757781066879945193181810548827587952993506427217479585838846573729688113695034376061764781513865745079340490861404069708209533372102866511408646218504165262461710960652512104347998094169919845932949128313442597907706918801873914819206787127767001768068789572274298306309835973935097545450801210755572050194078199404579995261008508534590054893310076504215676150927208292744112187090561798218323979092759885308365049722723059234412206731059236503969695285114815923325506366100570012106749568930834482637124617641625206375918392328180433117621316620428462766342850057523905140407603510510968071881696420674002122328610508156550317780955178993100884666505673852438772839199104078846220272655459088967931600542879923903108808234275480315798010440032959018161588278155015721254290682656666756531529572408705457831655843758112029531343664076264659490265139418671004615857554314835239824908705345894001044960181457408754705266431194891771378859806045449303893658957638621079247324034544995067325142410185854321888907404966298620855522666908174525747926949445326131602205096526188626554282420959963502729721640719685827435435027338010987448346843857450893799801703971329811568511100693759621005662499786620272181219695605371704652879777000408383933312206145768378232272498654694868831783335229991749827395442941307679049288957835925377028025064593567098927370688394318834887987078712395685700296308852661754365348518555531114848352859187720085606079791300024088785981010245334441354685978064503824382707526541644267725467304325429083822269974350776019444637483054842880528261119807576855755529008244358196159339632344195520157759819507527717504713073875542784065544619674114591473051382040391028466303446315573044118271100308100458717404526157537120834058779905324465043943401118246474665322721663023315726052428219511219122176493736529466532622867742204524646469206659572068905477228722215527779244354970633991063949756650038965051386857691695683414070951019391275963777533529098264323209783268455386967819780605919759181510602230533888299102564113358574044298167513085282303852701629272972866036022159264297950524101045703601959303185312412109495455212390205139316695388585457784564081765046159731834378007548884718095343556620181624064689133392256703255972281172896946610222508929593151246468690820994173191686729877486200543996909591081657803252754567341544671324689073971295641053029559083815012663031242208309579303405364631205689307732995686904610860913839480400257241210087804233621108612332003155832250875142308716368731926581760262319268402889314391292576990170272948709258871569118451255530743561572372282850294714746681246443295190513051786831628972448281262403316352615761441495464028943521367778395509850607082856157379083527898473346022994006834860470428265223645673192321469078842091599184279864004661866428162459454113522818203684788554408011729068491876888403802949038199884619537387689466094767464044000102365192141571069443780050479355072613788758612224513812822935358142417565064594071535334206374988287788644025298773039580914309645326108313509136986668375515124358561583715313362989407296059922273567857541868017791562868039137877928211382081481590936600801722284636049417543087790990084749807674828357971834770541309246412706005606943263409973984007168947562172811129252013680370240910338582787608406194421529853626215408623672906628706711606372330973077784392777478436071040426149297339734781878148043160422020238203032821933499221714802089669857853656509253533612826745390107524573072958983022431895024875139258816291159631490883034431220335623870391630330581602322138440695646113185526224987638078871059591964772142602720446760641665287787709247686458924851816035455893056028344266838241237980459339531864500935746915503434935213813150367929797856762153543115195141500401014188040332999639697880782033348900132883455845156405483077172974168246620695424566502693712577678977904515391534495597410811268249689561413445520140386741057828224513971117400888742240531161960615682871614881132939321952154466165911908998842536977764690066205599581985007658148355989594915746671004020791341486792750716906310757014714499508848119634512585780178575486848370272296993970701588101089753182982391569740963193225918570933475713140336196604318046647153104023328635366700188059171357019097552736284061747699220534931779832857644272814454194771715947531720507817269888216810432478886991693609851905242098092240807275077040274140073971566246028288797052025527597421709764856555965018852288371836073863901026355911528917405627178611315406364820721668556575687563593701987101161684548339913010035534555750902569654127233150111529848979270166111223592425615082410092669603196222416085861493229159451882986659836280691089970014816453045625501213985305169624765610462888761301883077287498552153240670712216428345327405341139716540536373333242245453941079894249421855712177734037527504650317675451221821722480632394403177129006598814049900184419482250109388625357106998983918405979279989632054292336514427334518340148535722294630091706813793888393352899205869677077833847997990248738385993446287414825066225876263012549186668194395454042401569351340691940107779824634902135204793188844043636477483475119426039598043912599313994398580337886977272901349720231275137263910113961802095670696453055692889625232907956895474731372737082293213615288053842195448712191374893369607578694618264615721700418792749182627200493182583394811784552138742327180445454635802551684666995826238850660874095103418447962142494260919941418071007334341126271307639020197162098343312045523327910088005982759068974682359198184918133523368395767855431706610532096364608166170896966055464819350135855052164366996957830422789389058463124389498732778246593767417040841017400369778137516634277407628365173712151798530876873692531556090777281911939205782407991177772900513132530589263490468267064987147040564677132644705599532680448449260249904615429774631056253270335199019856434467665147858141742214998952982896154178779979312146667793921152958345863436715424601229692266243320829212522331900241396487213066432245927153064398965495175558869872489821383962234587971498317137184308805434946885336212336488235134294353230800819061992317422974095831667618015801553515240812902709373655869327009244288144745723595655060885097530021734216466079637370551485957764011822307898708145356993219881080636917446355693935619530118376063464298984851117202888435508472722648235969430127242686827570227448089929967236242515360238018120058535320242367708870843788287810132281094976400463635174959280331622398868304041416361434948252133917524638822267511419295747669501934869334667991285768563354306360861744492891421607529347924177989546432313112193360124900284912246389148496307217511031333267425212469424808723839570382514895383482867673291597926757800878622916257716321774096314613542901484015188036257428467549948070916982216863936736038385506868137571817530407585642868618469154231720944029583279644061322782242652967645340532276931760905290293869647247328433241322547135181505609912237303064659113506117783551270501469769504613309668348818103752461504857425324204476733878000554804620285464784292617687634158525581512466957882186708205166781506932378701654050048679015520679001360291224227498596315706780128300299942537541676892622052593760163551927969274826579410688896638295560535463386146177443906470290677844916361822851040838220910792197456776775261193231889968740100565925127052339537773946646336175332536053505210112456545628509892546565963644768132309164679589294948013865196539906309425746082558822902546733253244680956861054551163511117861101960789865200294799916673067964545839369895724642158500856498298013596208956843860012078428937337175441257029770192500587634011653274366455070379215645496981186481853307954401110766934509559497037277165762166678661080202242791059849955137494971363013299036811134165505851317811393288693458713643634058991249766014883380565470528051998392501587076789118557509471040197376334905263310565277043397857108454686875025858297672794053122978862356464528741784005315606804916638862926329718168033028958509367356040767890430793727722377976816995696095634087309303299204622268392014724638291426205978591736153365100871716778303603008879062400146381576638230357912908420355184253653491313000410007771837627978007949279173694743338771490384348648837861162798856074271519388896656103298901498853008012116428189819266604084882221507474493020712682812450221790694554592738480153111279010938057671674733128366294295940099701555750846373943643922058573126612572452291608120038814278930017458078725002503602113103726474453542341633183980380567055963558381503713195563212669099723703252281509155050858936270611375681602969161115982918268345033541175657679882423706698686814169363637984758521841436053241088826257919537393305982758203396205194974715631758917447724929339280042071567212394241184566192448784281134661776113502917496765298405335141083502356569884186247458782674328903811632016677370217255548310933357398620166136826336150070542991534308213011091101774166673550884093972397964018994938981929833008553648647895256088586888272239998847192169032559859536876532100283410581460523322806933191299758453937339196281957969932251879349746148839521128693353824999323688984572462269322257255153564071497420468313319174560744890961062125655828122632241037561494498367069475755626596411032756666170369833837967003442669614263834606004230480223581759916378271756725861256490174696889938034612816439551142319733347653286198257671348121453462587255571020712812949430915218064189432317316919459822366692485306039792312758584731239656268095593211444794973383272457211491036889036445055768961236052017600345171083867795296716419614347781376297451033806524536412812563847669683362444112346718844286349719699919792527177743775283812773586329827463913526534870388536100390127126738854813043677443125226645417276540405430508624677978453564139680074663510561501509446327312160813049492942412008071078085260415512508748087422988164673611021257283788380751981962411959464384096976209644987251594020991173065593808347495959583060205816549213932082138944523801577150732794250866797747116127646286258501601309437052454613695738216371439481467304385104405319103573413955321058747349788719661804668828809315466856413337126787149324737095485129760606800269454039462261853648498547120162235861780145021850769631125569265103746071507400754423961980981951433939311038064411812333424681471370490212991706038193333134988308064025511953564928641848984402759713030276732943644221581989327652935647843776436904066918219759834487342462826570418901806400204133141252776452345140398899211969204210619045788294361548172242810077501684403444810185249067989088684730942635800938904828842161622014964193515726804305968257260470922202961715125159945760137466980092149558626315451406389402038686698595956842934178422734946807508821169821096117241776264541725140600055764993721203978856706744276867889695714758564570394777840192433536543159020859395112582781330238878261904946404708374835372139935092510271755463664456899542959205621719235039371763977499151570575157615915204887992886163860769501928965439988091824296912502592332245244833515763372394282843804718526534945270670176231745624572582514188674860422581181356011157394396571707092907155339288146610189044541504819620722793932432280623813369809683689844628913182258942135018761889193284619996771032992070707764039033901354969960227465783162656166085536365915701253913649234326614221758308821582124187189810198473693546924133213747368934421855313045332261702466716363444058231382380563416485566881885329352363798119225176143433605521765534184161838207740892856228181799045390887201440279406784836203060359986234425665590578990813834378677752335422842806756101935518629345981096394127622007648839051805700220119288788309982204728012340246589952049003480144695453340262982784846387569178517349253115533042033753737289680980332012849922821617483854590175152294315639889962968072195062044237148903972068484941818208837552480355165883285187881534576551394822439605574063989235241612391383098455940834146555576439053010041095655724954057929009884103608721658031756998755157126704010308937975200819028505445634680198172138904877448990175796083822031432084334072333849530606501924908162137535133117856130781027756452976231040853201818990615443489031147934705366554708396709469801154098593061094459430469507286367621219761672109477211567328695895677278478584417622791438480561467717990082994551728788689601274829214499935917158505167559994826548398309448418965944198864731157192024167855204726738220587558601985520002499156963992320502225899334343577219061939028536566183556387350811663093592496919881017794553904380668864347783207218268541683184665091986386008812065004609325305907548556734828015590719051688021421649259760600699161656663686748529308827971723035647515821520935645786502801228936854955447750107714003456911649322514176257342233220267265956850683103809241708654572540503826778924705817027281052855338987047469157837078644092090448290303072690019819262006737763640453798910706300342217344384270015844415152778597143131363418829172438420708817873736747053703504294132271159763479970303853761805330484782701779805748261204310291980124276127087654677595081864336514155899773135594860642455841390075513987113493213075955910207593281839255684974740360978290786887617939378771591251618601032583354576624472982212110205099843058403166858332559867676526738481886601590090509970287674821626637428740571828883285006535238071850984093032519810421389240164734452806562267541959901514691029606650977377708825719893778977907108319385307755139256559225774286544930847388361232385380537829540193344496435842820825926826120368422949235422516342303699107761877890457552245481247777695539518523581812155572164957002859560984694960025677407097492076646502550430885628645488236110101726951362119821261526862136242334890304475963799823220277142534475352165464120828725655229966668129158908771940935374319544569827885835830685305723273546630581783637757240292679208206241480052863088587648146536455973648308703462579579939016840327683283145993967201115605135955419171895342797737805751339067449862051615043189845875939590697719012516737486347015569580298692664273758242881289028224662748734327629755289407156153246896834221311166011741318066090773361458751155838459695183022345527323543064987963124888023362675717410105268454478709697261987400650737756093442611655218588688385093570073097537159549999568233630760882473111187350695958630437996398824533255338086788671067348444604204170897670808690581437110187096246316167486610987652945892302845000070690243070371589559719779615448266721124637762694069597249630482503489748862298011711049568624106650585900924731814873172499831020786906115495277364015061349163742454648648555431087576175783332771641699277518878101451925744812292619063107926890821600046121129191678369434014592596606235012567974142408207462496934222014322298488699351253920712943785112596268198075462792040127150125405802859958127563722775700170376872937663456757983224463378253791125939151807278228844238888002541448362974492134312225258586603912221410773859123432054390613685936027848323213798634356613243862731212857600072200225235091993605905902606084068009488636757528298518464131257782105757044617186301380912280752040925356456714534727425869435680362951511476975853947479056564742995596760883784882615616851866821980081733577967559479324615104248656852306301261239147035814605848665287542867540745376667125997200110535180563523272702857654351584675193339913669971434068921129161762267001114516283692144524405069713473497505693008273092486060397009163779694299316859612429934770053257316092153672777750712703336404356904831692843976181574650115092515686141871575944533028510417792937247700709647401144436045668788960644558830153068153039440728159307356313701106030561547665462827903945015683638790707991308865540313151958739928393797405572708213126163543043242293606953024459971159677735795754271407728485286384438265857265960874988938670036491890037900940265626175735863557225481995656140238902079842154370495400145783695731732924843048544863479386401750277497936005767252882340525866181642481430712190583364471204908082877457268218299516072274755989723954535386533938519980638455259822485010008714817224015828403581308416030444432542113180435502955333243194260179620027638704249189862980714333712218452842943290385631862563821917773072577521410902908432512250645637369288484340612632824696936120315852177063661898744738835699423230419410044387895518796404654056447181048778020127547461235655857519470970182015202191349608725046873985906962622033446174885545749762797773048311294317792216312515625340015423639992975980424635512684474104323242706662808161260346321735394937624573086390186114986677420138396091173918112264890410650990836247193780048133314622946750610406348416995437219304275188827555627337784674377045979525634294514152398681137824891276753237648519846059509874250977799142440650666264478293453660941523746947499529082173686041681417596231236460945716573288758219212405829676139538182220572488267381734728595108872239522204533863497657009127925786981039210830380482873139617895918535227182864122537185073835696625834914284976771507026610569107569186402855306823054095293500751016202849256470527656842655322151784479800824244684283289348518282739537697164408172570292690410471759391997254821265750031830558102049086601578570218288874032540742896596941671658223713962154670567376635755826114374523567844523157783556403372308279160780030292463459311814825491241066505599962516205003030664764956323712816789376399713385722735231413285736565984559571369229825386419069413831946893363138466944774337336391183792788646794916790655122233151355574234770305134160202749604665564282317373963342287741949225556685563198213666573859699420419892578598877844847428875399177878848043084242370906655473799802551434382674689344470265839366511113160717590121798168972108109991744385242237510865000919089500990071356905880002839857390273752821629211845299249230167693823396687005589286460681166288731054614592859365266089438580974698370021752898941645468696319215584622070171394894783900330750026960203627496480382405456808424178080034439243086173620174591063694656109685267875872923404089753327468812861511206550406767747959185540599130534955176411582037004380148348000948770036591474398990685554226694921200923341261401893423842149205853007564676388407094118176450736959105029900121023796960857294487873536688612348707213990432418746051570420243200588939146852283448822512803722657172526480269768647981194565596017428813475026899353546641641390894891930263507758759787731332215810588706709252435425977872944352157351040823182757837182979554302096554235142592023962631328189551154222742072784991623343121451900963333009382153480260979780384878477037733289265353992033690824098726629969153239454519943785160863305718334424342871917516711494375377636214430460985373060506473411927837616825689329737442561716566432024617218002072808678118440322838851686588288678343264644754810249912269155622245746948138185942315465855688292282359804930722011258247414980697909810660503371868182654112674637347416907516402453521832057336716627032015593561170554192354748125825612418571627609400933053320407487855049489638599188913923338940694961079587414347015587580457444594822422181227576296580410359602667351843191016862524521717566228148261580919071287704959243399441096046826500068954841166561256375982067707630086718417433849614821734718087558757427708465774381825069678074146227442246418573285955945599005453202149055613127016780018239825839235465754248470800348720658971782924863849504046376930884502430665156101135653162105012806851538584728908077886875533139798669796405422631109430354755774539639145131056532957947339940576247295454039972718366609633829646814421425698830337572666295569478373172823667253159881432327610160634577684465006775633711012219241689601390937649734066425787818009590628752836923214903102743539233116798783223444373286179063426826409773136230022827061884608240068175141824676775944500249149018583240948234844841775664815762848296197394377387627822690727130363504176917175646224958463823048008876627359061644834267816938969981158299617615253971158267237455112124280936759634014189375819122685919548098942789732562491866773544017051038656884069476931336614817370810581544056841166067309281165758845479057748311770037708697515574867545654727496022494908192041007779121004031477690585734245673185832501359918350846740830146026463506120211977602998202560920571506232504912024958883038806076492669934698340987541719071725430642503723996299839906029930437470658220401125314968089608431681211735152219552803458992987200433454181630299021848178333017955017777634560789116695254246763195020621428299002020703685946726725892196094148272995352696038439787708812582162223060513763435818531807501277752152051022395591580017376125415672093050720022970942122901382601620270836046603230687857653540132539536434294239285045495506380066560868601876810128453420079713771807534701793673501693479865810856104842682934434496077549246957670873868200153703419753670636809023076428381513657094225217515250218825311051204752142534535750975823704174498270313400978297315354655209714167598419143706011601326403709236140604302108190837307686262343192404383599703972295924653382437264496104590522223147599120608103337581040108409313193259612244624901796801576723526766396497989103283982043081382100726479296520605544710222949779330632625690154945457409707279988965934802348761630518523056766646798715676409471111217042951522164016765863407698094930517866453623764517764958669839965209210853420494031637643750946648349483018037496137425373768197640951111216700026990609360230386446524638941589654701968289630063306688609692340074030135521327927164561607621379533045516394951174551925794151184719204433940430819421845999119734320907335647648421644725740854971275327351097065486779892330835889798057833124405178091626085911752900765937018834207665800825404313705777739642190234033036063670252254594140530205800301043221481817084657323574024692878420589766387473785871704070030618081738561292936322812280068361402686925757772297770882470835848303914485092825585622486767551688352262654828324869616088084759597769394061284034838831501217689431014149558442009759118977633612521091250396542866537979179805570690511644205309856260769935423342703935180456274658909167096645241724418276141426993544026564573275893309958088048186970125513426357867511498465975194550089201602094765077585866834756899730689409424599573435068080774344720455716928577664565031129130175188401047301359883244278802807762985066785062136729278112860689880102550359944876161408937679213321437884918325860726016112514324476426438181759752013511645143204710568599329437542906778142931901916115861851303963526764349210489879349953893233037947746750640202288245311504616205376586130295650332950474315420618636641825537472243519261229500656762426568944626990508589303304590051453160008629881597738576929243121728228338610856516130918678226910150502910861430412865588886738610931745606957372855351545242606986469692732548260727751787676531459940999787055112084107814121020605668762670711023809539795288065949958123648260904214373528967375349163743599878636144027928381849096924624513215297524872648220894276266268309927603696816175232331072906435221395034148654920375753449887571059397803106558415085933552282446152214828471383933679879302874765070055187484387213580483705210775599701101418337999930602906214620061465318710519690061158759489133178178604066661590235358010456300120092590302701613959931016999767518103192344270066007826952502919912138587184687837971467238798330299190607054891871933103807674977212611169108032658349216446644004118769819481929839279749746012154165037357399539945482496267096088300658202760469449776801947372120262211728262537730846440873559314005887942351395837218436253016894003627998663519579820072003211112322984637544608807651294060135417897622311580278000622514431262805800211572248106401950056657858055861165975814762595463113010717163843231345975568904835697748631569786063339549780657796094735885806578881063209870269425700482898443869801739790675187582628390537426467892744583143885960560518558741212263852498449950387944016169675335257972520968130384606573971310418864221120586472965658207449220604651700919301684972684544587618780880482302942149193239878011061593248912458914554963205957990581271938544485222593116244865993369399033273688350852099252657864809896136403669335381198351489376732562578767968227849547715101139060188882145958924500220786301657398434003897366463104297895433466914977963106540937987594846272660581217219590723001469537780477730608824285986706679051969875662105942449902423475945283281874672231096294671754783999018351175419313811110649708802902992839119668758842451434814706995560924107385920365810052942779518649142687328458016926182925298892120955892932855235707225432223420584297092004312866778088228188415738257292584878845037375193532483056949984366130997277649159264947283868497174918916129703825568322189236213426547212924777092228036604883154535538946764447900636642889614420646938685073699987298155389585713459958759437270504418989155070404468483122368495742514674415503683375653184741976549467541267811137321375499375856554394639090811958512611762275900710941629061966446800378387140842638352032347523761021613691025876174361599901337328568536891876740127753284339177932106826721020616804711929262866909838472124033820442463300325123761574668550094238803165030871522008419676093240486869776055511727910363515234117430226144623413110079544123188139907407593650782377030873412375501676301156154640857479855948431193149820222081784697095752321058202247323005130356174621013505436416166587681406230596922406886502119862998451023219128029022019079125729626902427382550482034214305549473269290852346319679197419252792080430033464863646797120860882480205952063459522352029389215915862420475368087185457083059875509120627347304901924497222961227118056741646559867986246919831746440022564156402269866504878734339726786703012657533615842477423625966295137322452066552098461870934410166531669391367488809129049058926387108241402107793835512596280331299338667241138485945769441165074406851792225463750045422452067078854868359988234803425385394782877601855208234243488916873604880509484809216647653481058894740740986965624920242959581729309262414833382050481226715801181383430032513833458491013713664482111273685885610678229644765366968866133793974475554787476991813579059907369473618482818051558909958488339054181254286679437357619097217553097842664196677932083445029761116946218815690814029150572843732825554886995321721495023060803991660811152392663783465193921374791275942738007587075679004510309914920763914957047315650034812278469350430578151195377298806040423818290009695727082251716003787063461465583555235654310100153679222252235908897556796627693730846871993908416240570242778780240314017516365503371841599483601314123837428054768076679123202679544032268198369758756248327116932502293470440954104641815799354554664814690325571098396478999690544847802117383107904727503079036168678678016540550527703240262316379372208070664001789348372837839615727228630799060666187040911484724031241694161798033377969148240596257049919228720514490142098528602111628390756203329647836089705762416025975277852180877141041973028611776961911522814269616317586533808156338572298939106827970959668672295584220534155728139260357341407497363605522664000417156388646831968652341764184862147192156694070451109868617875311848520620175029915159469238127856641921718964981025168998317108984962782533513242309014952598626427245239609276330045297266696129443465235637096914353331869715519619527985093077932264081337149205654352929840103388917256633601108524111552108247370739401551754650774485416228000545363043279134579056065258051034749263312405955357899060157842432985523841836762162090923763194458479611807622807833422818320532217027127883233666481401705385045212320568346551232541934673391578992138174151065975291876416662031699053371067635023112820514460460579926905279640799686383229770906367533791291018491694337638752207798419697723683511479460726472281755504496558098801394827441065763226707525898144989927795461103285196924757137537102950101906230157186071871662186861703261610052402204537462912051271160529986431239110057283245601624805661374038494007898450289559902303399043975704209010340789960146593776939154589265598096392641221429001788626127728857837363026857301442108569767531760616515899529936130511585660404015759835100478130552580324699640383110864558604185285044623083077318815861385866608876767558802065096875611825690210807062548810035735138887298601079520987179604034503806036716784499444551896320817198992748279099041297366318777570419196859630746925652193072179065307173444696480896238824343931176151839402436582280319758532946015267696916398513432844920322889814401077655102942948858950578608144028924354141109874366608215322139100212020749988441849487351202651032036200381407921344431322220761065946574307385450814607349426905557831626925808733297519026562251128156271444975311968507041633606765797979830350994397100616854355361217494687966519918396954167703638600344037085634094280103515219105245927104643514939182374332621304380055896830582362056034444811813875490731258425883208271688511721742616426103301084085706890616255056329060776248601319346146697049983539089604338358867724667022044729078014575337072957843692352490129235320237683164418442732277420008639215903903946906125299863467599505160640596387298649321761886632212664180276051346523728194611575887798694297581577294859928096279805816902378749734476514428220458707702991047933988618244956946317059122216280172257693152036964521326830846510212242820861811350533762373102140209406076898486335489835106392838678683589767161870721446928445289365383593968523743038804729598653879155932417109296730166745395908162123431897864570987664408555775158320785951738482846052697808470961780685711448877980984498132403688873511516447616825570653056015234079786615906917766162701654609267745642484212998378971108807110298515069124089709437685271721255112821013676548692344570768020790251678083981379017472864023936788525130985076816221875759292273390857647539735613099524584502199958406166479783149953660104691015965899489693764590749507707529954090945138829700864767865233922500902905460142361251820202013338152338071840271788460322401610064984253946401314971499573354566622959695252306130427925856690006455721205448479474074962653269559265334922061868496859852831198248512483813982790654199804502228761920987522650434792744355537587093630960662893070506574032608569042760727927730255269967820590958249115495742926447075327676002916731354456030457090772279424477235199659186672204521482225655519315385995916405873997132334281431910396432720386034203286437583834088668249952896343382153638586449642525220331422949621018400140256278648629424205580730941646861912956619392634893756591495201231734232966613474308083703175489475251927436394441547655157817944544096483708166866090206473763499521035903205137427080714508938811666511194539070947317717036086907647529125632582825717206273805825454510312876680290596912565523143952994168720928466111767966461028005371782888900544660867064243439367956944678458612032140701266997429875731015213356745444461024680977602535214343636359071301106243395330811575599538120267575399859168457925513715354956238484072703329023686036231285216932697931963732084521981529548627311598219887392736543597764553658499896970766144063160031045571187464302645965324484289498247118835457072812900775977538840097707098550167527448547858374662987996722399747489303970226012410558904751399090079351615794154869437294014683445224198430596658647293277844229217513099322695312381422867846279816571772413107711342070416385762647625868313853472218954454043319997559634687622040532960009186382067550519406492856566877805587180620907332091055862859358678367422497351926905192999260871628682475030378880300138984621099356105986945526495014155218250865519408735791936970684584467069890414541914454696821665567873634297734853787720447467017560583131791480405712789987898064704596817366279082567995022902808109505512985351945936955130987284509470311645887034224366798544066992881007238356156047917721884941422721223531802626045993777966447254757757666274797954878851042703418340453939156045743288772100656724530939475131774610336177949959577269773183428521667884289814911838680962794681350433553558918757522069055469248105015742797848157802905998564994097204647245732916913655805155698154382502420827704524828265060538660002982330993945403072998243989048833593326068170153213653665892759350509594650686455733642799923749087134758624023195407781182681423949691475984880288015573191803252135263573593835028182303951579165762192530354256401708500868709460425623826558005600935154723179802005442739849030665416284945841810879078358429191924247382736806434930088255460571830104239454389982034868359895943719389135027601851717272819270990880080000224455661407788442266420736253301983429762826754545682452386549008217837885089731424080592220026849133030759081951306004102694220226781044981478578441335490775643248897257854950540528406870145620727069713957243796756282723667254716247470709893736728414386627218898566457158671253976658421669692349481215742055860999739126860982009342672552136306715097587260497158397157967883805094847109228631652134900371358495166178224547856958999805463478248585325157683203327714819795044930294767300614385920903289721484689402034355768055865915570696966482752569794422348743269595365103544767547961765480055236868126503578967682411337447377987650395287554273706354618011797453572578674440910049916737018192387058244888228305607980317749683039900415561472806000734164084512872426955541263142944960555108874209466839816961391621438995543337193641170900475189035081375861449790295471471159939298254751634166392728638334512392048520610021010130900813626559670981978693128174033738773282753943769186785844597671573772441165587150652041265060695767921634274411240060335341727060823368083386268349010858715528611704210898702889396546735288677754647786395815898252948218565304850353939085941876660773077943472173897824739870814833774964833483267238696993884837707281181740671231238253014299131389117194950955774599991184770672469701598690882903246800917343313929039809927401231051750159373095550357027961498329817848654417275849375108916454930547561857833099717635946848436352480994411618587406161112104335783774984203261246785056156902900873898648606075379779059953424892065381543406149388005732881880842632630810114090655972679592931326488075478643837411284100657275560713006447176344012420996597136711101277753580602019456646896343690024401382230500995978505225879955417274406060703002037999332414085743769211306961799406185834293330149536534306234269461072098699614168596698054035378672805923161135864124446401191921460543754987543296410069815010277625042364988730616387941167261153344530681896297820470159501898725619337060620908541992040239138953821921254077368509669864174174681561542350209455100629232965354617712624738177504141252666809101381925793390229226800109285760094999095496223182503618939098957121561279605615788796263813860018823475121973709336016840180874959296553360616514354454862142791692171647051262676873490203988540799756155868931379402883853153375264374184000574285450574899961160561693294375125186796861010507528326192050764491289051126262744618913760422573083270619224937589014569546372704382279033703755167483639676363772391975260806835904592914581783030113686180333602426880215485618226039337630405994646786647191861998369722034344463561712874605514845272962571655620017851625840079205585234684374515374559849439176795944482216508163888543398059973146287983713851416721296285355754718182161697235451240734236366747146941142496733918033706188767286454554147744173870738821533965902549306091168524747855360651226632999684594738602542007830810635848785237601487566703961841225996408824274461251915792868147691114026112102652019638963207717622611892243264294055342622358246804884294030551333928264948873488194248697114115963727815992845440013826442114446133337415233636995729170256207348370670104496984070692177270288142733532772095929248903291656652882212576844968071379955013283507816803829526252855555221470857582612296092221783465965400420254744504789932230178330373269841661720441649154481279112710702349408606015879393828808567647903604155455859868889191338823854831760564922376780101212861539689474365236704539385706127135007808895946302228699907078095816844211299162814015675504793909405895193075191169231758329175200257828807304711416733678767583630486004007146335464671205094276557221791359473146746808904816909877514816903954139668552640294963078232517291635841656616783924607612517648705921670282528457624650730986226416829283289519569111988051610206055255058301024688143819583310460977305714979164117139656221427091009580044186258811070080803029116772939018437229777114808447294765225230345447106720897811232459497193193097869259683634869262388179502215020165419144840677845118237068988115487038043976016510632098142955154705323607227884242265947028156453200432313956335129350571872358449282056405081579220422451282233239992133409286221398256172835929347461598900581143560015167810938648332754137744551917796406201424706963164793202089128484409318436165041540076675533889120826271435853775991911882985495529645201120249566989433242067691818578343669290216779931971209233689613314906013790950377797738651985810935863153910538399773799734640156480416974273318844739028304514877070179657377893384560347840518428816046137194355638577610693805231258693315117603056563611250589367311291822735658958260626864987723101392046232330093683060411198861866002142435831454696860967714982356033289877203065537443090942023484700906572763844181906463142764101945253324338078738394356220863173157521446402933325665159578620521415144577946651948630881976151927567500805942790941939320013398146316912535860831315419076554170861452851297082727137540414957848547827666432591314414542985838907914211680118599806876628979761885278382844721330696497766726554201941254045013479019508153940876680594666387412297476133234934823678340228675461526645075858486318431800899746499903414944207504694481070825293685515970148216377647147651812186932927167116720310680802928870804237647479180173346439697455146742211623542214442720101598522037311149297500108233738238304207933687631783868813796005493461892515077909145915760377421400122731588164939226198939118782263206915721205034064882555014967947511225146871832742315665705082409435598833116800673098710537628728557160363038712085482204018380974288783767007347205387775126261394973960241387164449667473231441508112748133410053952083937573131220740501838208036888984804403432949593891381707723924129058812395397766168969673142343975657767683590313632436625864718063708236795579838785152819908686797496838820485176019633188338725427307212945937365220756158842790995410648644203744321219135943053601123530470421557681026245051796560242376234690847378578065924062241335280383910507198232702839884474410287733872049150144367005385729740343323286209469348736225242054150280685626317205315500684164112760796017363412981857234594244552622883503373864324602399258479447023988118022605559953263669026047044867980051924384363346694544326779517850716854783515291802552724553415299102923173044971086432651615857648265956102112037834876633402686930402066433079068737282432884897366755852659115101013074223147580251313701589874476910234904708453236518051739529642635610919765570107461424619485567342957812265130272628903087313495932854157561356999438710235338151935096827099548374090858283913251583133460862786187821615716869335656779552724960048562269839237552758926531086272223826860092505019223637779933252254124381244565827125168925987811170158064067673325326460147339768604375514564700538007532041949376241608078898083309191876558854014627479517668513039125713945245316345577971994756243946496982224976760111674961836997511705274231686833314569320103040071769177188975145107891736896367208411792623100536561971141513640596429020909259767282203803300812522080811786474184481158344631076775755313750831296205554980039273568394646908681708186829416220727251395689851011236491416479476285069983286290055078806286294909301342564414564380352340559335567781685886728837013975781012002395501886846023583380318667761027754067715719231075792595835110286720493140503240210769240909515896716778669867903815255482737783869844415024815772071476473748875995915574624393451512344337429665576812634184540740911768489591205979031878156702988444234995261846357329548800345676872569757238149794839097765727772584151845911940568785152084727377077414503483856878576500972111488480578985159606864741746844460220501751170825158610568276199759100012709544578685771596796321759757375982498448675622614356898522527020740769046730547080125802232008327899152059752001481732492895984424583322629388048381320961215819028686361307406848924766384265374186433426078146376116069922707819665462130154295292709877237195412814003745525976376006509205661498142984338478591864163299615211056615440089331361602187507703174730729011656008527610416120580095289581588428993409316642837919912791142952141953486365193988512119350752392716603754265578153060971287944561745162099629325664128397405996079337266498202325075054760747418444161622452716551696853671748475867969346243272481870560526441951178998587566807856318834337035299319509997151270224894405043136296587808250646699411662779627824445981403819351976861349631399072998122274040821367018164150156202855581761838853720396526534036863672091807109317195527921499970237233603957328632200060712753993270381627794547261429123095174810532051865440227387288155499767411884441888140319241169277898594569540741902927449442203972787532175766154520213037490019377496908210637193823906066573028776301609577313683443982025709175611261978884323975123592875762854646255604056980240773835412792944583847223435325708230223451674047993399307053645308461490957921895393369316130566749908136093493290327974772534519324823066647228557376011832806813521075922057577455915657580195967715515177855532557083928179529117412793678603578385427223587541238565503361061170710576769182891571350057890033766491417551885922708563637980160389452048882968161245163562203518193179643508710447381823527387250316779067671979865300221354338892671958896891708860502731566002770764844530116041569060476479098648384774068031545804401544864343552807607860975608529331365305089708483628188561134735937994604206518424715799121906972740484962830647978571537965871783287170593592960771887390583692061318314627327650359258357348888299906077648997804901692520135793411121752458226373415069728469798405338487627882757329876756299206890567820051972002742138365113642943599625054591155829451413554900959043782496248647745557501987630304652529053169016237641166216639107779415457577215515808043377846660176328542866278258724516352162573086014516874555365884343835674720891339375821874547759096777215985927307642682167135868323532945346965178309419527571744598909474248477670837134703028449865216927409099586485443529525938149568197994696761673096806905412559643262725301199354738427413269234099273133422655079934746121754925005053414921273473044375987090585247755748793276470433243671470197433842669333877424104325043742312767497457778770294887590693081413323016771327544228662715096797555501926538852241871237934573074470359434688548303799959563091797975127948186506443597976950649456752384279279597254633580727997528227774669653330603753878723467036782360828116580233846959357795819418542717793776071201662134481741897323080611735020145565599456168299972489608085004546004491285492831536265185641369489942158530685783170217764796257494904196059244700359290992897893414556669362354827651229988723710732413263227824464685802490847406481272789894655140034175805768858773514084440584634197357463505913449747357151131172724814768699933815864655582996550001025585083017665658980844541300700662359466233395437966301702907694275034966515381382967961144852129205511548695714982213998727097433654610998311920177495048426405374312871932204101143955716433461565385578492152267843025023019023183993491463805000854829648097904510080256067476932125039989204921406223666223990924008699839587513831358953729728534460323173842152756714449511973291574028506854197230119584856684741321237974981012447114476222222202667149954735213460323347640703331225208027991112821022426292148769271559574392272119586620212457995114473643442134473109533630833398759753377204651993863772005457941343020129896459464209961141553305570170485584612194187371047798485509194502857159913009123757227541816816197813568692726205045400415307520815250840589027628314973804004947860434932518785567559328220600456624834245703510480036954245662347881630010596063660715157358910277681161022114352040932327180242422894256765200068430505863802317896188847460458030958740423667134229635032649403396120126693650406685731487479826167747558671451390264937584903162954888520486666103612862256180204601353431547208176997578932393111861387297464562113712264202497664992723699419886606110706322747457268072304244828981852380912685925602127159360088789372911819324057312237418821346374321542454948338214442672273664358495463101762097361219715492535433974188779988530858019074234868618312679250119380315550528022115453942290268614306395172824382150598280690238147872967676276662331071257629869539292303786120310509740245736635279413142692647840824127946462512782461254023620917473681543043192286327402081026819905001887322558072998712058777918031490742945158762749351116736559586594982846137646360050537437124118326087193352155713507544926660384660827380475511969046687504918580457186157479989279381623599664906192553956393341502044876699477129270601074073575086234238078121871252731980689001474615613483068002904925632929101890962583441066037644777315217863244502371048927440332571449544598378418866718965595549578823168613078967552937301698963241119886912365704479803149889590215454749434087819193344229944061033065376021142001321417879427500783140697421160645757975618330817612002291632264932821835091181065419313499836351066974693061575756884535419449047839204995629883962252307278106668544232644557938881898306768675213730539262396988394198537367834995844676557244335136413190838499129235191884990213800723195629250497772415247730116177444760805345800667679838075418627240655487166745713587038436630952120900319126290688772028670229050113531338381381783666714744881101485507916636081779281544858741672646342279075242249158792215805750976049097961479342007292654927513243763044165876785708701077264711646061361163387586000956270613150466565190317481684337517945115424592849696961429432205423488126897337745397890757134509167737323371888327838532392011973273601388097777029973246196501793605075125387063167446399989397946690897560438576681773349649338904069276622571589406175515364280981290369939907809253414461656080291369509447072875676380821533807427160806468942232444688594741167464112881311792844367491004409226012565685307695900706513725120111472475151912655455387217443168341535708326445014560050474407198500107719912892191933772418173447473773626425306276005183192451127689539137790831404754405495004771533135517192888509586902878347063555288604920865165065174573525717368159523884903099751211915485972479884013479427676463877534136715298284964096836777267115327512161317522834490775297563364450840754884415693214719355929317273029778267279899504582111370491892738372161792138482385636989767444152664107692490380430323630085842551810889935838449278806783254989560288104376079734638898457548774134280967802340900158145569831912152192969740033684877661764005471603163208207419629485646968388843777182837303545112108450912408964300915392836958762221033260812034127456736183023922099208317930329309518396416066831506216419133048400095390931075194932431380689560322765941584119120870890199312284882253341964219102311052031541386164755138115520851774668044559146588115130362363950681844620550932420808702860043966712308177186255545512806555351196734731314974154402677143709883455897336796627175460971430068187413172105813482993684032197877660562180461729879202262023265172072627750160601483506920002467111043161654882181588775772303456592843336433813431751914725361748920106991643493205747572931708884328192423428447305167821622100761936112001602820958003438706950049425597854513552055915106246181095080226937417892707845252860116408304829422112563538231215974423510531789277063394929655528826264825440823574761530736755400000158518177804701887561729533990597413128986936128520555537638628421041114470584236539337966369268400790948618764086757375276370268580536740748781341127452366611540239432313961160819971040061201702137533109587175271343420781417321943637679944028887695680057656047701214433739982494319721953177955023938746175311757543850752758443415545494235807215834007196337789817564972306421893347931298709674780559340529685636432234216474428323507539614895028752338279839792622577907937009722991547643808937778041782614694680812613436233646273907489712925984821281858916378752699126557805225278004369061784571943311952755939008536332226637800587565377805897173482941584342268811566001142775562998045474988080167467973388363926380769122243299674983682419131401707405664622715931774809226074040567109208399060799958414892734844076141413687319331812779887485246349323629157411123365512294540326763842782904992307924528772206761101760681502589996435740777882768883720671498816852277427711503550775157661378319671372006101165541033937632671597714640307164840498996419334059487632652410318350646008830716942668046074596554090163681960594491528503914786131726809576440603092202104403570741249748124044949317889527237730199039335304537018090331626376904522765911588621826661628226809983623937912329463165526912042267904168315710812778561108831156835058420288509253210223149604143202976665560232873686280943357019714563231515589078193738683668698923940668686831403884693023359267863874307051401205206236337843110486680077218230759968380620598897684237801958218736610023301827262807773286003372366403871238717112936813221306353772207729716235591497600883056307518459547061718495451281350110021768069090442058789500551719374809156227439969172407514977352437843566737823830843136848654705391934074063911754567223981962386748792648760313446814518236374090745509654438296184752790258851986263397104949272456407480604837085820642934681932266182679857737856051416540067633117570742060694291552437896979748779076663852674588007958915103065241610535663539515401876458067633948769024841288387173911273133655737229424470588665772242558588267422778932147817265131735140447624710645445058062211850952264986893468352081087413569402989675399407210292978917837461101899582418897822037203113900240127971266900648461413334722068576071057158064244758664592331650909131401731957381973955468459564454993334970876822870256024337193950781825296453552554009680808836349502580219202781750944421090047742606046164721729229195656102625329794043689844413290834056017922608091302903746316728604645732344681687894765819411081862212046064856368639522575493878510205216321749152084660788919708872946599735050385184690794160272343853464986392220508875329525737043864183599981643723506579207594170115203931769083682490059572070630975101271297582568712022444693951031999073231205856936669749304809656501562096360029479953438124368308464368653696259725931581132981945995352744450943622061985394199394609814482191500203454523132298197830414169024441498706965598394361681783785858200847855252982620820761484513324256094888859409245730698074059059819616723621049449322840998114274157866410380498131511591102262140707285386180414902122547345908755181206713685312958616216809922342163047516775965839014427879603278491324866999954504156331683555763206502648615264567496619297925631251355598556142327138519360233354385382723564137298167829246841643061441973473860928133413625692168978635293318072025770118991337355232232897609355394282555416957255201958081020681836170961648568201772036061873879728071340725368164217012732345136708125831708426349573802763466248519230023304805906856327607543718814726881303727284340117221364043585082392521830782478435732167766259542977171595992919330357401281139198423602337312291046608930129226314162040619239906688666662355763988907194473490239073711410272582388812219913987580487841486243849940423165171995975160830628883693315647902891497191019034960815331869431434135200848020839641086604862483099362733162385188026282360124767860848668610449872497556572029846487598667961547556935103800759968225064483675074964168347859760655201335801394063673103805970704168280464266814856347417924418219315689963980519604179366390168781402166833655087869205571544612254579944554463856521728225076441093965733834272609416357318013028254606610432308016220063135657967704292835471921924088875886585070728507317711422701120790667807540548520296454713478323819201932745863987508926698186829989329351042675504277845072144621266432533131514844568540234867134418764985762993865165272540593703377161426613617023867805031868970984280267493073278150107111623878372768597487483306552326031921662487440442037533364203312550763217607097178865972812570542095418983269832096194667074671742287767128331485666570638961832817471003386466442469092290232022641605390711956834200079717323191040189953905426434428954141954764504049197256278775009575735590474585401280705300237245328922613623376658312157846013649952923158091145799771915472869100825783617399152882431246470364046445448589913446217084846414586237662623943726390639298548805371485535844606410133944402696941079122010189166140998552274240088246493828488946893663936902317870510586585888237604964534794266185168466864772968475144967457527061295844269785611617645013056495529236051168313578533459701705326687271755767149824673899710619960217787616832077223877570163719877049641097557043608670431491255321540065460949425190111123643557782922840095278428915188367416857941046775547509918770151679212213860818663568434237444026833545299452845701370255534292401452715509502422909981977464675265029318080114160980030968779093599829745896574964024080781902310199177315844059396590236871121160596351468919935057309447924481020182822658320619043911165281595987830514318220585602586405369651669681626778936587734882613552969364916394745372477293461408893928516998572410040799638018841868879633889691235969393607066932669835661896726900547109119371461577968311610266729929364408202608736868283737641024554899679984190733206366294655508883721464306622338887210651377934957050005137046320571057830306145364127457748819148175225800219485741594635696068349824962581950034402467848082685898581245712329773958642947812536851610192267162398687062840218069582638166624284473743077737828972533368396343627174877586973664565196573530581134302277950808805114468906210590142373854990890601810730346297182318936938084090876156741002855884418250801692097443706005220874801120223419569009862666225034343720408234799890806521892037254461478618017463518607346053415679058946536391343216487767120903469036638211829199418818157645123011597786219046143522154916258175154431498155488321126032323993402709309639996619395390815159118431640501439666797628888016459436698845778799243407378468539789856789682266470533686420131605166093815671756354212776318141927225803989933210311593840986270372068462286448592087920930040682578540978619666687149825845917725734688413397101168296799257948008744225436830069015393015383850810016798033161142486106756133876338521687761041718322374401890316347349033809463262813775310328903051180531657047554311201414776950481542569253359693134525021619696005103695186164987058841415534934929040780503554669656546185298831891857943053616666167503777291574530082566126997519569723903078231189706731907952213930883751407264868166357288572375209327569413613348100644345438418962486367473022486542078068768019333544829949679750409271523286315977740732469731431005953775517664195334009019182648120691769408519903140977764490315142974636525091310638927897242301423306063276395057658849571637758179849674552015181326354270131555321007643342944971241401542826513329041169978223784738308108972420508765649628924989289408759961473345916771778190284005834856833753339626865960494821276452783278059285633801406058136527574957073899596595501647854878563582653059286677282102314932837351456004863876391110892614512654637519451992945081123996533048022986746534435209363702197010338356709397810139181491505798557972067663001689317381232563613080153789588171728844468346661843519115471446268121047443583238904183040512242655514800192519562784461964165363534619977319332747600425109595335939558056718964153446819043468311939690577886389672551048360904829939300864612670769674550316568799333350931494215825530944895119738861901449746451849218973846498512149267120700669715792042396661630784836831900134648022948844512540613179776912164678753517199087926429262538177342291459851811238839881800845953540581339646621110288113250875317780100392337948400922903051860508287294504199212113343830795452964157431180623121177347591344145700142044142247997280956424779140310716647877732452174793439834720544148519009178624691889319466924233171602638130967304402194721860661936259307615331530143442298834557435505268596470641834488466642739315537710123259839279263317575814456398830837471050247441713438970620822412789284520375477466125628438345759772970406289133215124332598289809446454154022125159717472990809711033710347301877076395244912803608124159656751706970456684575173037661943310698811701580616724528562688042313311681849240269998513385052811123579563964858835827071044302233093417679761618740790964567271569865343749876132783579137908844687379262893759226127732525153260515132275617071774629186601243686573887159163975168750642823978104948280704566890487032662130695357063222967429586737289052258156796888815301419569223917883881017813222372629641596548275892295640313685175058879173357639750749187434504809907506250400280288695570539030330830881040191785642687448064277213639934848311675430748713551867669525165779519529018005420498603679479188298111346710398015396123547973898796069908442390855233258975588724728715167745016229230277309861688425534427194585090079223945374277357845762302622006159541486838750840600661452225572265529741758281268512934661529330554095964875419914534346361726613775843609126546554014609346293604955151194941923455898621350238377246542002743647815682349320644477039544998917309979104608091310486812475055997394425746459273955399284999780529354510953531398666161245665598745790163851860523987967687999959361252947711112224826566372346500463343401697608176404096218134240762676282287045062885109442176016047510910796814437402704985340650468138107153524142497101304358764775248686301892046159941638162380980920263328631269247239120366479379722649148683800529859417234312862109646850119165551657812254149181566845413984411017280366296124382252304312828662574672667761660191184994857957335692034766600256450073732833127619323154042563772333845312291278146517603713282018315318287792613186735139747649886650374599455321986097394674748531960541911579081019753425108078377789748636541176072334709712659718224387785950455878903556088963445563571745951694150644793545169499487032475355815928123195027044266426887669174963223063755547061469538894473998791388426609662400373682461963465040671249113343393631224761984713160950636827655820462696535307786095488639996721676854759543584364432570989563460294076547922641958724589619578894733896192937556442058305971304322882028946984464807553166916173400412006501385439130160989452453698727743490545766883707413442139297136057450004567078208827678960547263584349433189297018705690855505688951274431175691839531173766522647472448112768694433828823825533250489855449554488730566287658376329691395429936890550985978886792524317879487650742957606520333523521653536840934031582970674958971978025868956521796930921198263918392891965941446893861549072759552507773375300671035352919143849158560587805808399902896696628879851521553415546179590089205077035950106070480058490595904880791551139986444718405592821657239625255980292684909042519572210750447030004553011087727987624697643939930443592510760511286643678046248643066978892676117189506410084268595082190035022546619029842968578138122403251244126490450671768545583304752753849403053527799330891774907429893685597406134397267832118514632350946494998425389902640949309278900203532858170410804861670910709971603540759224056828278025998912147413693965648943778206583075275594455704624308607455694487316058384490146155842436612109731393821363166410822351782658346005655221819251565940699059409107356061423426130070693407100906929832687648578371637273972974664503031381865489633691127443643414744919242429063800833820331110288323998993816284637647796833034990375776170434611900590474066630586291460057409511747112553589675797876298738313479580591732630138716654445510594841789414617299448487983938119239266417043300313703374977391932437616451219212187973758431364201176326733244308110633612423451847670734703353528002498655323611914005763013648968702202196615526610376777083815672994396023807481708480553465614447117085557536899945077593834619980031615901440534356144465574858665606578722799584619406744651868086540049580585103221087876663407909034102983082754518918907270403796079016622809670612878628958020644057487163214736223442491915746590271753284852006828226152371520228298538859838082260384772112173641377651086552466071893652842033188527920608376520644778442057868036462961654536557165243955368963600966809587558895625786573716423151556695215229671367723219639948505616570009610537661178627092855448565037740475776572401714896339926816573622549221600048114406311157792182728495532351083960884200708236460801922399907700666997311096765620548522007056488483165435420089761383643649298804846514336625404848652007939796683833145023494271069951483228721008197310004380621117980876748397417354900078072063054802949278761292675702897030559330712826861033742611510412910791514724337348843953472528154938984642157234550428646752728014735299309110048140223880590532464016298398971460480667495504719237850786575530818018412944342806459736468699843487932499833024478557660194154604690875754326436514066351205791528470089185664261564398081880220904141098063107930892534062376329099086600783437545502202671083542607929546294862607596718016962250513072736896211792043891199647840730163546659897408090380547277308938575924013231543752668888783011530599067743897306404122772412965269103865891156705430474676154733474851121424345736200885546890361413415237663866073508049743743962253591031359533772680042989708626200953992865983663504505908326423367672539152290979741225089864755000390372501295329066031515000058199665553577640180486110829937899585158786707944458360319487415736402713294261780749203136570432113676256228422611661254202751678766515380868224768271188106680488907313514312331055944974984752914442209490802581862881927332091796296980703084318764586138800478460861658625135032495574353626195918845866205829425156302621219702224747088836792974479749521772282263794062742580856151784971114280954382152662185960473006835702369832934185337293597938908902923509118757240119727977586392345378911224958381807865368528975800267011092945435328400214692186752171238567187526977439228734361800523205127640793527299379187836248120045625132963886619196132934627462440453821196457011225654865280300111778358176751506582755830489231652102537225645351370154946583211082076413119646773604296938381571043449246255813481335101456245070536318146206530252219965392728522188454652259503379311410659484353606022616645265344975547696706926348246307314584679641616968904984673304156635920612799339023573761611124257565584692912862382334388293512443174628281199801307954971782295015915840519361704497594755453528551723354717951275074524527832930905362143339888228588142231996324810857501850299687786535972574500660253045864620690898364165557639373062853176078774170769462629631835159489117105109398955765625191883452307979424427452718916400550221508845070792130336946539959728584882734709890921370001079124722449079521097430729146973915341596490414849167490017766729600601120324374251535062049130971251198860092896381382068670503092477673635155711244539439277289195038746175056039519856756260389309921726987094478615852319123105971329186843133755077381693474942439796852417441753209334388541500663823251494520569104293541739505415406281085121940584978721039333135091425285018362557936376253084676058071175772177734337375875327033239749981455838210329059586510989693711821504303330400338853854312917726189413058507457350538261858740329761758946458881798604896883059624924806741983282376863285730667553973597086553775744494203263539467374579670785353308511653021334047310238002131055532301338053995712119152542747037786475971416017825789829066002475741349474368806798626024901675908649584453991398294609861074145051470821250182004884836991365605808246461523996060540345031871544827847422218851596062567238253445616656369179567485116743589367566365147895049840983620542795714236710434487956513665888118959230636850807927748791711043093934301232135429273086243218446598960315976831835253927188397640529407783219451220869140011644055339833411257974405991434765616942032226133316912953361114042037384304463863511347190324010178363317871875081896121408347148890854765941672862874954915622407629671291577337501166458963567987313856966838213569037835507755824573281681814299766088763194833208569963847333726305739607907537941648596889769407981916137883766680758603140726935719083985320391319823360856165377229608771757933788372906962945584203919977899782247029252253100822006282469067046344148665939220575666340080242619010611432548865493922269908489639509585481743443488807497963560778278528719367529304138974878517183052899219078047851710541664704892351446849449297339317040684165815961819572148132762038317730487653543653132269519859638423536408455982979773652885161196491504706049192318048358837817103550818281514631984034180991126780907451013875126229373397630155244588132439144693288955518537883475934494971246274846546343527786091289963741156836035118685056327024065394993564631367974553888502030658301856723844593424845891238788352561694217739394789687508102059281000239301296142683272570841577279549377092941490531742445911754897661871332501689219296365013316151845902918388999248551432041185431247632873298097933786856420614049972555070210948860967083607635892645010465341001860745954343592760395617716397083514393481887367331240102482782226950543266520769592293411912750538268274102160078910751984806080330491710672578801748176832099466539461156493534750422230547571283405208481986647916230286884215925809841266528919495372631022360903521727594424692569945176027245372980407502651830866316996687394841396948402991453421833789587557300319172878256694540694391394069328947462552852162098752204338899503140545354591709206831988558663336596906626443028850102332945200044332220701076413300323336407991848891015599407894485974610027605043891601322075829129948235901000186996640654200682336348604198174038717098028594832152881683593805637201446165916783129010071415022017601810176005146912061083375101112044031046630235261388428729039129662017851972610285998794253384068104921927500774456000717488434225823708182619150184316004857004525527012613992097559181770630680924224804340694005788057822975486271809270250867473303323504116177260968435647263571856451160883541587131939050774774293077276676982836022787355205823215466811342801066403888123589862683044330068943934531928578872098510498890658329523092501997045368755049935054300324370628672432855843648256413691048023479066695263941826844340269678128110229954437677189905672102082993463280301013401354107040694828561797561320644571461317136163831259907676408250824751317071260064579320614031103939802203365342802462699301656135907768900448773246469212485428623964311126804349222601856368917995272710140224253046694664430938936936460045250802428475607559342627133633608885692302662538009519845510529454008793506958828631959307943611237822455805442156498327130309889217964414809427936161600009266818112961916439984132932020735950366097879467610654497413062596110011413202529463672596672952826013051019011664297671638320825175104164435856004037537641977417620658034484872645539470986622100540422156840181989724387900877791902586341143751606298015841936445851589149351996437774281481511642431385868164497226185575304136972280481058022892230100358950724273060233104659250658955700149491594254837621505126951826178106562245673394140359132616487063518201710139934747546837244959351293480039215815154127512264342910698761910838478292943518858818190579743156765494149093331683885243553773096346136287720747913422749082235260663788181550367893279486504131352429079517466604728820522093352326797859028458009733006113045462025032115993394743602848312006257437121899063650333007137522751975323991589722725078377800936737788866993197539648766328019433232128601186705716453131496195142523236187763268514377736237755062978108161492561602353083333784267860435146829569467511186212975448567424063668835405139911992187229894119083002932177701798392320849313501242759502623146589106737177099073305404336693075158837926893900960284350118317395916783644737754896270555353943647987268954722654158176431969628824286095582991382735057016521804201358747340430761830322181211705731397332337004123792177642630230525251590302042418130164915600619134161407891325025199824475575277709424468299403639601218053779963003005563993598841706958241166339167621731166042768502071093553359739170639997219236676031783020400985315691692155673062125419140521236857728001231518622961916707347645084469313278407332368080457711555989761693015165554286622247134303578107650086606986754319457307725708518122345053987825239666383500001272743831236316356714985379279189292541696268349854647586833899033766227168930778441367537251083786400768753323450696795592188346771425822863285173639438594714646436809738692074886323941352296686932589869549773421596031387480385313776143010835632491761658810841824248041192002650543526603110398959821558915332126765647666213905376833707787050212470740939982983488081342830345684719321121189181169487035304001283039354836947890948812903015804700506569885803288701560556051496644155416488589100005375693978590730506434807373771122766987257982631930567770376525981515072575965505157976277737055040663565779869841968277497830206031081958226052952611785518831189657659705779573518026924772599839798533097634183854288101884667301754450399629524406660197693917765354829075499981682113629344052479127133990706526145441030277379842096637771479405377062864134437734777232662541776416493488467400189712565020814642313877600136095459621148181984664386109331837956452083230655706251978939560199825818915387481223415935078979573278085872093151145127803072552211956048774163526909844488607775528096927275998098241753552357049662784126526168391543899126674720690391018301151981543506567847893414756087925187243914879145744348562864758167821842662280243339866767068738016301746408309620963703828113737079966873731089504023129797395938272091353139129569074134118071455857759635993922149764149320970060337633052178392894553579042989339746152765268148703874063394329582132517518291533861942154837071269070329100463057632798209794455107112344120879208400892478806625441214756749627870364013473731688607223412813960681513163880323948491866590577095071855813923947371186672979731508423326085524047410636717594294897892350291260061578957069197392830597596492129398716502257168049529373145286091030694609197199028770646630867184681308054578037205682744270806261040324474542347971193657484427450605155427571008631897060467273736904113717832258372241698145833296466887697365851520274232677079480202144774444453469049030413592372862442411738443598102476964819380858512756264034376117120266065977703249150593605456505327729116349608421966960668256013459885024444539640624256072377673664554741056518754949879097231157355268870928682901708570760651066737860276861280355048243506312555919078392659500370831557300631605082707813096507460147966230496435685663987055355982172127903862867501318426999299086951314688293967959498826384340797688751207015852393526731613945266487801960506899944958206854246396737553032378382259856225791932000851204138472742841170052978078690890529600352460552533889793537064963073298442078603551148340796330453183861274381873030068160113133905783883097844838955555182176191797274320943550139369218624343882164406340164908511035314024478071994908035251136770734713378088268522378398946361188272161083906793850332752383213857300929027578947489878756526155984179598603220082333382133844186102257700194220053019349345706376463788660154903008948276483573900090191248430490506417670393741773670113591195313732545482888131708741097176672825677969022279666085515223390931771849511842087263010188667101341277915426496442023824233842648941196154556735814000355535302135775073664511707117279101734408667261715845000903122581415767730252349407675292839877615048369280820441672078397763967909797288223216923844591243145133657495940187957100939637233096308300045484921612743259671685046726733299435115909055435012330800041160464873437278816160766438091454182572642381251715870685768941210761024348524337564415206461950656784998962438008791694471843580890104092201991405253898140336154362501546824662848090494790551463238461509404563780251207359342216922657377101154103317852635727873295517317936809470892059674566166480966315396622299187453638352045021201631520759748895129059845304974154156172048244579963659275130994840599742586359085309556079254077008920782867584747488611774579404017346282611338670156005558755624593110038211899009045571198907124207040947575133540800381126391826703939360589545369893982116515255229596643664829465906968353876096849450034793910633857142646937514487223223753068400310215309231673366155186912490650408897675102496151627101151196798572597076322339189990910728871876102072913666904725672078756290629435174764082364836990453819153199534143637004087698677414098280663129503431083746471013766011050283673039646119270736104914929888605989336330449639554399010324097827246676396719053653704559173472514643369143839861267976364653975503476118323520541538224286091518756466996277194150059565851373720751616509215006076055713737438028374562900054546319017986003350681558394633550066507386758478556038044019516983832716386281366080719169990675458209743843121516652081101271982081154300883301355033132989548792603765245198086234366557542754432848095693183277346607860741368051959473380734769848474974894549968566336726526899693075148872723514690580859983236549966115932164872159874253987525789120435347809596148033576501329067250150697638989119883535189934201861785503359205759098497567792529355222421631331967140380913101446818538255201307818727888587525689117846636855991331326183513014741549295516506024721470819697957279442116945463998928109179921798579567674900555832801935857611215430771650849397727724341374423852026384718476252961328793785365274109795169522916065663936129746453149377897808383993266186627741396910211999179288633113017571435656395764496051571056061043438217752534779742918697551968553286147786237355386944041201720344903264846794924639471618321961688712550140064198251384089559238367646759238709051912328874914797957923432741880824738544852883676185827365480316708540901368585868191578479686799013397365024105797640565920451864819408833487987210621147422489491675520092165714554328054309567315591270997146279263284895732987583412324331713079091516453803157878571513688706679177198169351493224332856509877782385356498443260910928549526933292361123001222151184976617330580863663260335896552045744186026605049457133833245354171249242220780920373811121570659254341135203888361214525572738622481195787930167394697458984032742999300086632594771197380481984996755782734753318076843914260129602163783491198688975628781332276493444552350920640787551402624669548673455227848883448772421804441893166594132148479925630623537064152338972689556853712112619229135853388484429226811659963530428878994531514571137002523660660508776973785191085632968625319133264654352826316220157544127556628147519899168017577010758968971815342580491204518833985517741643387007233331247197415979525579964498798713653073976637600403870585054362589989099452823638806572181120128086979824569585852450822603097663634435936462783291875974389500290298254350949214549858575300912227477543199911670308999693581852967998780898165884910824562449187262271909198199880433504500710906922449875805927021723000573339462832083475620444408627983580813181116583355046086711463378133818924861504342684891630339564274755314252208584003022148709851771208401312807426154981089430510340110897507610730330001341950040536640452218949761342608050188576800514615583449222519836249327044889449243586338000874508658841862248586783952951383758985847670665798551363740879140799704814969369408097012287921507240085945240615629157993495614944233151178685706450268910228285024928753175912658552019203047783806520197768596672361939706675493091441723937154509988245461557009441105719333889425775996498008373988969118672864641082523620996106754553898750695966356724061458424019040227700897083448645639983443012785823858081415399157532092959896446498318228069539625418974877545330340480168425734285260417939821610525787532565671341971416912005707708643196413170671134456880228060194007029530316913001620250118665778921677090034066076515659434484096571059727896207665330783795706073420046644258468776062679780896880193322197788418642621838877243723040362372915781931014661949276046737995578199163185443408634297841257098379301152752248663467148351164589873285881926700188401941946142008929459591391316218098257151729332316511957790943650778793542545832915630491888449285231214145302159148153993293266186153923252892829285180671741723421240651074632589420921518913206295604518440479413847605935443018642309022846506003337103672867577947651772145334698955738338759408440790506538105716061858945520255535611565603968830457027115481958672249599333065587361077306264828595901774306253874430667713991875137208359512729528862875609247294931579048458618993454931974292565738095548295759746876067031030681562252487450112935527637879665186769615026511694625462599766846280153487502305909233188828821264331364615470655276538254523134984057757551386285274478091310409673295235457522947120244348694641387529094560364669971861820371637319708566204090625683383451268234715878611494154302202044636492222488777833722221273255950136692805322577057762561622930223895071181063768993883114965788687870257383582334049030883284783154720854466270094913299408567881555566607640100024057386450503586963644133772545847423297457304290906105281300108310911147538401319745943169464320069821760273530434646314819227572068669288720101317557295841116318388127151740292521510346161980408700349054607650881174684677854005935448482576361871501183690986566739919536792678356031249188667131748323093827611084411859036046470465017631593401650318070030121252386036380374586519189704052274024161106513887575882247946979082269465797817540987038744940237540263667474316940990578468098526904190184094103972652742289974021835303778965147391796058834980519800325775864697179758496893734986947920639028888162396442207494542403496212627832402495305361210279355211559126622199797111660820873662465064888538989868272305512115545075272862980115109666732861131612827438913631758355274119955236289950954272336845158135897702544841961091672628974515061436095418227509479169802025387958892154196201946562706807178873976529809616653206021575388124127465485494453842755097506222818944655161396508217906531908818993249896977142835013854410840672121881224403475142957802284814060020333275460289451445116555510957052360190491086041158834528661432791763061916067085625302021008286796202223929821159816048399828966631445931206637287300326160970025466057555270771937092037218657611050883862604330651491071413282283663637221939064185315177070081920890859592520338000738960757199710846886394430260209213167354539456671601904704313558608746772310613082686721707210036067275681804337254641113311413444415769204745057307131063525903811892326094968288653496920881171470149880600795998337945869286322937261978036662492243441678914318671269279412251182293584844456495398720890105549552102182794846060612159828742841713183512508242557763785790619053061431319988850516414865065720053453772535552891352327252033870397001226462385574943579288292903678073228090646587550417007714429193753060262222524911638808170188100462162623703638379385552527724993786567336945057400882666929305443267989672440256939946771442544243002418039562024429551005827394601057064562631075979165728137811450948334559829969701450326355682083986460530942196523959103140361214028898257184340618583399525990332044843645366279098172745978802180885526108028126488772596142881906793461708059954516593480113770108992995175441168926481646464439408642504615498156774067975842975986954202707429341741278571218048268152006190333239722296441265729444708528760616790922395338745411663872495111061397138580769572698470510577264508833302032489745939594773464593047614305579331442324035733046589505064859559776575927093564098913336863667974538521979078195167994481382755732143415353137774238294969436723350995891939081395631585922777767392240586484232284577169303712484159679139152873543846955022105146299136586721372705537869138869849283847899967627185280912746162652701221300666980646336886473977208743796652499772123210197481177484342967611766090863899051296067604798598201027929450070959108572944906994228776750912019265987311840653640562272253928062173772014806594891231506762975502823566243041263589682421797775560795106794365890100702248223764356568497380504588448953042670926263589449487772715855487348223642721044722444725475269735128905223101046874899220732059061975582921277794175794682382234342503745139387046372437309007226379117540142047007288604990042725804511148132809308840827451004849072703137915730078964975163824091218883297587166668605327848469295958946076941125601378692413146060366866762309501821575753266681602585933081578278690243512476484851431003438851212729068857340479630687967100296448377628596020422859807782549527682686550370910912505068006317359971721464542844755976603182795310871106521181620538000600462241502542082217846139167741907104628085549428964888405039298164967160278655717544142993305302968449815436443140843921463712912176764592932885315745138826160896694607537054796601563188474557070546745823845773779338266793888439374779911523253683062143596325618375918742131110559475128361234670783480271528065563215054841372630501243681931729103437307116358058018183104814765084244245245637686585488398987507164353463989926730409766388482521274075017298181979880854611190362974223417572208090480189284699248702329113768505576739137970363158796641207458308014323903380170054750574673094346654497161882374043910476056679573473207044364357747506190550526173037379012266296626274071600179736672372670075715643671738997489132598543703779186418146827193851064857930719050184000662015838665067723849847519592719823750350143824882502760019559485428468514908287157120148254219826106496815352822944240655861744802448923855763045973231309842348655357876618198888835278697581122990556335919542905591310827415774984637647702801225059782975600998206860288423903522825330443981384907007745637171786110796483960365915486621608161828987897659801101719680334803128853440652515618837319297105995703443193999669218611785212650492278168717850593863362072568119334294621723233534280431990333093801966079301228245937115076827151417169639355441616473117802127688352812505137650063789177278716578653425471539011600582801783603465198815048338294043874859981233746657841323372771815356723451289408676558827876782095810257188884039529541703616138545791794202269108400680397029301114712155431245479353732455928848781464989180140857014226828287046190986291062727871761625068899100307133595759223173908562208636700753822212211551294246919174042984177766109181420659018655253105757033522809193861494932255984013704301606373607643082057514068723087938847203467407926849265376669470070602620124631974795043282253004310585693894451061557530236572931682723370927458135029996713784502166552327658967254499659301680003786398857799454626896623191285843659699434137480204033646389148787748491472089316308136299122068907945140167464933059177504939483580146882030816353817061931727021457902680727575778338450970871480997617025550854483812717450271863288284501196544722871505887146596027212097473313441138969084070028869201749115142884952783385450271441500611634386691320982334450438543803897873898049885772393447433390215293218236639488516706043084580067436937419995297979217398030280755999738390165690316998225631958232874564385715657418637002340962827429917927160722723272775010162104253550585772054831139128373834642951659402443568997789938595998956911225942239353647607499125132075613364584698866246544572964027055892087893663085950542225944634381973341530700470204212294020185372969956052113406034710255644882654530016447028379221462312736754230062180386584572475776269532079238737757384512958589745418974597128342007573964436540370298566239291063709520528679858049399416556002169831330745550639423346319932109267327621723619851284069383940022595192901997072328566600686492395028357756906378817792269671930728613341593020082273418578482009247505012340486906635708129636929591524688593447043085335176141740649850213672205963856726266083975731112086503220043302483684543079992603455781321599096311461134248596839627342264537610694567590729660721136254882834665912826645940739896359654697067915865575913269125844942691497693333731490290519836082967064644431823084115676457330522074924979362546456442247795860696157483882784774766543905176836988685803762263995713879654297540541699201762545581268508502096836638179838698700286906685352018216412147332341430600857361173601592623851096472916025576498357044078634491515401621249826274877965433554226565890337214339397703996928311498818090378659256279966479102903538101216324906368850407225127620816960405355382431861451279422554517573878088266842427215587214662256426425401665061440137485387357078946575922648886887276613408749235081228710322856306802065262014430348669979290559067549783914497174488548780171151420090535328998480816519253808239674246626891875909800850234999955680700269949215428022277714269104345534311545540704536543576903910385945773657837025698482689502215916939595086392168153164634409874292700859470529143220163340867620177957826359390342481275496030718273334569712640210025334577594320459234458133437855659902543156218917501475446769802376604960266733706854718321363982475263647723337938843508980371417617219301515118127129083676009039085672468502864017798358031671981231547235995151611541891256891331892132671370088091733443832518516136698121355951257165410455014026934945106538685523421630416378069461120030538645694328350544585428368454634295598403844631942667260531776632948470602326279615793878069728752586333205708981456868242511729603303667107757987333385109021845055426265768145852997366759171416377685184318700505541467942283209842701672973117521164512240924710663249923748120875597633246040282962402702186493384759271500124363029465079760156330126520081232669170042548178847085075944321971775041573409866076330328990410323353110185366953123815213942697708826779116459922980685308312802625640225679493019553387940425444155066023566787946567993152826972261936714505268618065522803129741082302430367301658911807967827650801743508670416711831208995868943759050986571486521842642228189566984788556308712410860111081737087854920733041221876888390157356606304718763593224164771524791439538781801010702287950723207338476609559963887373370393126994603542472148736682788155598330203201402069928439825718876363929941085532585607302180119244757087688994194233728928572259633214171956387753478356060167176438028294311861985502044399805098089262810378429873921285745986641822390886932650288732465368935154338330319808829143645008022074534855774697578096677550858341292843175556655427983998367514212652446408770449326481841534242315576962982347227322836231354915107391166801320015071748382623467078300272607121116355231306744004925578679236494038026793109130763063015090246964505850368600191554830963673944580044892568690176387692871816148615986564717351374719426412951399489413850428413002439013908900786619534813808788810910708882201485825094560969245387250915727663901261628666296496324649931938160514501942474998379286324061568773867062868706835790156906250518120076678528878806061922461932523316916552927317030685836028129970599497736489284452812350078010918341713825701984399476280688755379838597450869832418928343626701036228736611630858422764865243070833200688619505288930087725705860757808358984134133603112290178818269626128138887701557881944149976738433837323001028867596919497473072449324548856553542295009835181876389886277011589633702671244228659887285959827002930764509576059220862001081748210894917891305835394170551466734152042050741837946539414611439023611899518972408338901224805527365275117112166444363691738943147176087180333249207569269585244614853965697363461342190906139171399816633911021385139681026329723011345085006558714309186003195985133224088658085949840026832528603536269987405737406229293219884197032496825227680026262326068971383250805489195037362173782194398319606196755108296271419156538400006248433082733754546971251142876084882193875610735310881683345704286738218942802002599716549717289785350516086880217987043833379059882160741160751863368760379521824932292722488525362306630882924219124599873349711579378710400371307151327637456541890527823907202891413469817272394265646522508032221451522187656748541000443017509827882884928819175185455440151711808953416991472879761258013618262420915486811026490518353501222370231635878980339384716576709042955779608596238935154060459537738961463843899917076902020396252814153989817580931837236044766270946465842066616831458279117435560885836630613138924011714094939378933440041108437061989970878928422004426005206842933277320313872395373021732350198371708467619967522619741494611591983602246092463123230191007268729809950468074359014500785752939625486317089869177096768625351789392347534255398279046609902269050952734780362553615601471733763959920783103791872394879871443979833516527968946502510231576411251839525582304118246816173575287486840300280608290973041375212820958146693408732595693699615039180707925592235263749735591323236716937443096218646645456036123162235648660199631794455923130800089600346106701465649028751499438901735281281733497511939690497348784067646354829497996275998180824075603688843431993115336540907019569342477171210948375140682164914509999552047726229238718869740424989451439627533634354738664714652643116865118291784637882284368645455245614302988102635849389772363541527319201991510355401671179090113758466159724822421149051238463867135366763278327592167457058086617650033994420161640041138989015060642905568969430869218302853610643286299377304039770652240043846334403258056113790661824454642727303562225491189276444649728344725126383198010206417214792955471834609957785728807509993823557130711170668549887581031818772735189898951580729849557971261492099325337133452175581522657211355822997002144385429990729532250751418474950328412570780816632723437397790995018694995398715590090581427598738795209653984756150222621078962736950983744125382165001902116148956925677174895500757231441213812979388484426816148491785438981501737546606605182696947884869651018263335687739387913509374658911366416380799795006353832267335617538365048291145586899005236740912604559700044001167192699602883243669739812945253269901682536485646156821638280028707868591508490545867718476659089423159084031256348821933145459143357562789035043891996782670964102532912236066947202460136162457622485319901377481742060456225348743651443931361565356645412317279271916511172473681305712866629101829500183994257340980256489320104883802055612670293942338097724572938530750571228186439843343661750211295429199364099509339972084187620094212407496274669164063399527683445110980939647359719638091909943783632758839282955885772356525699399204787226961944108932958898212831391528232135427146856355832639540528289275462003162914560937825095194555439710723623059702467382547134858199355992690732662696213206112786243110674403158251305489296552361547492849179214243482327486035465848733053515918860398391904138139789475525525438780372505678074242246468533534358686086497224879052288399635758058811765642709755645777457508364006751934796491725866708765993478562552736380608848847177879792642697122756163716396871285697857289797331342200765762690112248506823197706874480374862570121933825106383195137088164017966567460959271925855164239932767442753025934899222855198697111659550178954075083328188822320223955134840528481062582917638097901178647862819996582393570670057514281948622664769225571451235145951629440955980297217535039623040444981344985301710067754638496373856054019833577353691748254894955614825947969969707842157043248137967189875397659926901399323989961812047604114520623847435977269867076730834439539471722641305508741374092191080698867062550216686109048241324591699286645791188133504017131128651317896418557245762799348775651835212279617733587843002512098252747632050938311831196250988227099823045430339945008665180528255450095033671904051481081842947029470946061328782286138621926939792596920558718467284193569655432415428963053263382587849337036287609096144165912415314373982853055429872629084229913914552452195863215124827086027917021882296759119887592078736271194999474013125929148445882460126252474453334657727029657063051998269640360698852476428351139943099147311388714946047666743434901305634749619993428818687664594892890533218075740830191541345113593623571999421780147926403374481791905537052909717850920888957785772656660467033462287560437336292705670538811796826978579663513964070754292539700599094608392176322273635232351253109904686432231112168625809737522381956938437028361578816982799095698941086056354966024650003265969139898625497032772750365373889564431799475498678679671855448318301043986231520750665552998583706144001029296429906503135088926670771766999551222575055965509926987911609595434532753817086476189546738570090767159318560533230324321777804458148382896463462122879053008291630010237485417931202247101178532001988245575182228107283761593393679876192135174181574111352238383426061191836601491658772414912287438605920258271495796618728931596394015248831511582988517635969687154723797253865958676234974184411152448482892201257974669394364202591765276404921711712494542218454810519792321733381970472615495063731581387588929363429341851791241025540869364235030247638487802214322234813720232464495822086770539792785481811159252846418365978240630868311183343553739204732370888244724541872728293551785034093962303337617180004935501003844016054015219994122805003237941511260092248343614900761539922407003641372588158363325260878449686502489171847700930585672080479889925338363558706513968849476664940916805695152751993215412586784425043326904255907350010971840317831786361803103162077906768744307763603964614124916905326856696206533728235941405318075322363127134958452619366880287048320054467323186700786309695832365406159051315601170727353213755122005023433726027863650790493716752559250173548711207272592486940231083297670017830671592242379725815931727949164080504576914084455630678489459249547184102143659569103101284179056786711361171046440558700582446165675855154967950442606373792373095992791534780388068444932437834375813817864119937125692380510158110745508424927205718949207557295250371350323178970227425350413549861398928999848633522227660551968296924390008797714753633792443721416716124907286225527816436796183018286759511664498017348193708324207076584670860117846137209051087470080674198196540507990974811021670915542858628528610986197088939228590456625812303966368142826488197396458925355084896411584854612636907769104611888352172483458677904370972407211670715996115779360495217672929662516065030374952008095129433985054091885813006457492734170146953485278134213719195302814720655299722808085559613437745338535212905940783431542421064397320818195995125881681933588553691623664059201908259136926052178810041809756697624906264717537602790551696146775891747460416707836015668562528293678481846959197063417756162948966549301590307378291232654251214365793482644833611104779903019225567687653684955895118624031943650940649146091198496374061779624425248439093856290649978233696160272334918081285568774035615663166728795788755870165542168974042037069433212866102559975504933992939822448003925117791031859518134851934624959400801442779384275654876467747425176520929900029471112147662446698442815199177721258942979402705916171793675606928357061570975310255805402253689228351189159347059796805897419109052779331799954235090641274112420619884390959587437101664729814605287183916969226848820023767803652489944895425224059333898951043357380033759306612140669224346834061176961383790802761926827219013251054928965521122668416993969863462509114703403267557029299576476610507844695861891188328810334578470835581784067985599191376565603942459172602190287495388953521395420980892627838834067194636886955575059150662348385741884553987151728875075528604559239383136555974565100138698507777913188158883085305751568732716043571049483579080218160407984527364802094443883852413552047954836126976491393961085690779887840723335499948216956232768792491919493972750249710906103495373720741180640859560267134605611020177546150254243458338500059615831925712146231971287547546556256331321199318415212939292339638659444625794861375231865166209872882283308139473928127924063266480352254528451572585947890566965699693685755818130555107059654437110596749855811324479142576323525237061425281716798720038522670641803170737231211630136414421405319409556871012448415444425930791710490071452305866279769022906060953642531388414653163750376365774479923930628666157907183453044373142602334096383076661535145999338332804921945306879424200523067403691529034568938525448209242183777900914480734263711048774073347959634900510579586674922689866353900142124191542848657215791818617229382496295673734333011323071844999962972144290950913737793614322771298222672116178771958031980076689415631510961713534948844260250250162867414062484587432648145547435113704691094633262878792451112916433635176490079530270387000498403728395308281530857930155030439352982038595365085403851505556234340568629293562292239144334733163518063852476024691783493026355011079042594098058546626326268152239023750382973619204567141038447864289622758891118064057611107934855370213463588979308855453605800211950239969326283780982254762852369855446067785439219937349903776919919517646488372803612198532841105588916985605974014269295644096167502193323485169507852184242581350703066506827455860687014730667654925521866462431346756629854524457490923973388122609490074070701006586020440133185321921005760159010832493716366019222674968657282433382779266966137556801768031352598074310933814095937735135128543017102365391849396979849348684141961140308200261848350308451959323525248863331812701247591748754469748338400260260382446340614813760452321657533148188826995427527106620186023836649627914384616031808592936324444913599262672712349852629356825021180246280354931708531093747110819324311160115725996508961244258112114191275625178779657673171133418644653506687918095295630371033743524114492603105771952638303697288142333291199487257664021398492289934095759593680855227699726671962828516399060477581370132782202799540386594457752727479985242818409912411057844537493720795356062490323841904598343700511137094242590114674799852799855538313155981039166566129085775086558414144678012164591674030873251553334135054452635665112196770941397639716934210910132165858201260320934627580457388294975475545092227096658338634152250033794609276238817945920093163322159778430165663898252535241441324020577095535623010016821171228370341995178111481564306670068155442325659237796875142016409748607434253969387422878262443962402038697734296730250833122228032707768572823924953085053440554427250994022645045883931327353161073977282042886963387611779716732985737603153739463796789100794417644735626730047012723026263088982532035291398466672061817263971946797674543611220668379972026182356033135072625434124701248321963648475242076572141972395944624208206466684730473705334942341584546614373662328302192985643135777512733182104938534263295437379416365184292470491675076765975985870343341381614718051337186033916070244495497767963506407686079228578177276706344508517956273159012584763214668275692536453184281461897851601969022316250854526552299385461724079927312633123595524943188680965631609347000591443738598391983317170614705802568157570175926254422788714430758184343128668306269294894207311268480307045277202053123209040597417302336790540986864129995386938264130618516085119341216491747264134310472789672797210600499772107582270602996197347768189824747506759332407455792590365270577160656921954463064834095254767000801953960236948849037428579200172373137138529950103280518739702825931115871062542211965468887604226527686569383552572969270213043776464231045726202589984702126622221690370527458679543616914265604930084378387112927054119560877307271379668279783310413700649109306047546159097807876503624596603106715619045653921398286335266378916715702687605167100242243370835643999289118984636503693451240467575798147167713587051669025882227315673862384108000221380668476196518850153101956651082122951660338798048553160052067068128898609235701191838633534730663678464193836031001828373916784274547684164688788274418583291189035863906434234840830551431950813079511641222931649772294876786360837445765965742718221099879666097048541258189536839523939684070150142330683622739249277495318909088992365529950626649246189009943209446891449730685891651890920553518494117944644053605445863573234855022910361587954470476041134465074073660372376936291914757761215801097922110186817618752566851078761594480353844513459137891879832587599626473207369210325604405408093280174078372193553755069064034264930198347594813607805902675666955170418928733288290616946184300111995614402241773854368123571221880494473528760546038578542183277373669896187442327443322780848693119477747942401673653642426878950466040059980556334733381100722856343660222277795871363340026977808513974316195774055620289612419787021439186687650495214616741090494738150528503114245524429753593634614164100192798009638277932007447060490413655272244266860436293080720956175419661318226205942018779843579726229905903224703425478143869982678591009533790478874844495218903980139602262520982122480747855467221200376105430759946386540990663222550466782722242687078719567252439225719574561492738245899076578733248765673125122469630164198035865208081775742218544807189148649141538284131448839613290167221949313645251206528633003343144231170696318050459903504096220669805424927011300633006888030132553458726898782254035276775600797125544965274270984461362416676154091107052684754318665570944312785364771086647226156427878034384265723855531119198525951011627976357489226334336072232207480608820398480547626239928107120174459022185429777543263543482866764077087818850436437140119849773994051117262803452151115377627769817136906261269466290302638158954521427888140242061307515081510414705506412388178198278397928622159799111870083747529576278656314118376426419607504698573355656254657894165907023983315885011264656498724911414507046596370718085980590431340937738369145818006014335826966527342944375291994510609251457778476518849449055544423780156766915396282738853718322065543520331118946054227387521012056333061289275742177966561732845821082751023704317909643940198150917134768122428607477118526049124902728986168183454324140827466819162996142929042966306843772354095199661977336741596148310773123102527731180436729855226478013284625117372923794765561993547323076922406994558893552650089521726960672376918958743898099861578210249995246490433757335057561372436634423355832498442605925229794141566878758286534303179163771227791602816471682125844826200213094482328330611611620795483849433750339103888840537616938016040694331070629339469765788612216030069331651856344103284635793142564214235567744060558442699894259056423978267147439023062077215426388495511219950819032023792965073690725584824482548885341900531959427174859995228520864879701222712981586824842663360683493126202666659791163662215012289869123969998070197307252685370274301464994965091391313655793358368683106249999854180494437590347064516640984521759255783989725457825514320291169956084927299805347161270032091276989201118280522811417542264644352738460362392418318046675541012454331131522331701690680054131813023934232388734780235821601460861775004313767760296765224819590975194614868866784750554701111593430379374941105333768019159578746662749909810681596432337724685693859238865306963938431598792051562331581197296266205463140097776767674204301459325800168814863982088935470965273717610761173827918231068812494605149489677342379305458821880171838062073649684232034403699668159289452446106633387510394028981139799256794237860771761995405088796107694478577241239071524182352725420660385917008643443283436412849049260937805142339689922776027946997936769139300142838254757498001003920771597299994473362412899628191706963358841192753001683040496248656960762910312070937621173614717775112514978993145221505453618673830666644005687370706974159131538353870752772727189811188680734102815562349563286126293095584012949780005497430988636462179993286254132216385052629381445669992992938837697509151279591393315940238633121343081127266652727474757830040746046281649778619360082254667016926212217270010268227382510615990083243981166554941201565931960408122307765731163286009413374422213217980601056105400561275986454110510580107456296325418821266121985527582859661739150642110283643132510959034444440193169940366172930063278445225652991274787375520665419554165937723543031817296336210703091561026388805722873000483855443635226158473314617640260503084730945553516521740211090566621156740871486974917189069629730628106121593432045467675907939441677189032633945511093348439502445336228201326017174610818373727513126449638787561523809220384114661824168140000380006443485333636094756178989691658831694587194361009857961730680151081627587963010820281720141309695781557472141400060462023052910259308538842675821885509147483763769174685980212040239687157346805869982245396292345797815105011636772237782393455857450971916011978979841708525003738835611151294862097640017101946154868332846593848980229198814794182836278367399527441878380084449266281438051479939393190995961391081028757750132274763238129722433027785573419678394841131801747129679686533851724039665099539420600694556603013332989280734966754768052901692003491239859290825497505577815756297888612633843036673393509242555018310419130284193892416970322865284345089434199533954020226692517429071163609015292849090614437376363921812103025718368327676236389404214941154509374848251848476817428829024056877389691755172462635024935880509128721737399035447030939091012564662744374200326835169637798293291871742034847118707883172919681207458563112696391647298412352655460033723118251472066232344771167930375970244103030788316788280038407541611229559532009174492206321822544343846426136429024177588339742438998226241757667565208225660257050403053429481720192615124366411474988575314794440007895947645444190258195760935462215164287170659628422704950454319721282155496323875515435984686708546756759115863030580871476971910469484642253983762036294559393892131401935125160200252353327849932496251370355413783772874365073866915878016412704222551726736739020885366151638341603834930633776502411940018515284815396085677050841197975076915105237345567422428482345442351095721164139541623876998268663312231151581227051650221833931184386599562844750171316181857538336007834769308613883404785862166060807285229412273608438575122899069771221191004911096569204158434866678437018188781924274931177245763790334964011977265779222522857955397399968054476775895031643937421162754696867445376478851557848542625526613168143493051816006992581931111625689625138297704057022106991617311091091185023427567468610053651215796448253980824251826763199564122890555607002093557958693066522626245757372868651607060135241851548615131190900210536002501026970547828106018885295573903029781899342961841957760549815524420106916195232735987967158970265065352477368692955914391191393355065278076006013615367210779883376081191104264983082277850517070458839457515471313061013912066447782957298087396100937431985503882057188830338245939698205332193351471500724765127705113053670815443599745711678494483837288900496906825849683430909607286615133730580563147692132511127201587452667321037519476811076070425788027029399421261154337802489540140885192750485131996046995486642078376089115733345880812450839214321278971100191379560217058033687194750272653281548475829091048919669167189391833717511797760849215701679463090411683392260485382300008226102159074501627209277921255993014308274172086568008111591414790800083300890239042029358937587003984939800032486053254049410474314599347608633202824103317344055578868998803822025618621547662545833252634517386934462083703766752295757146307537472990101719321110931555353883534856602072040689926304783818475665737821050486540872007885713496685930814821154748013652859205417451299914311639434686110171544917631280793180324096252877283408277128787461298205004161375136556090329634145891125292092591560972094524092591860851381587788782328370941609652023034552008548767701614546925972243450956724137493642973563909547955988261772497779207125630045768255770200374995448738861382491204443901061786734367150116232338002119799348579434838022358060170225973430218796517427685496399419714121030950207775713961886438945202011279762778207487917211192459260434465181309377233049718585814531935932029042479321220140594479921406076742382475248243489521788792623631178199108108323192119616143665212239345100024131901755024803909497171190296558238592959718297727702390582947395372169772752867600996732768927051284331061264173286473299270661414430994685231412669845502430678999983091867838859475112704262345863889006234437515637235429642493320949035933194198166455344177165873242275422831246549112884025850510480793345940609015668696258799864598615511966860273524231568862540814021572295886521538559003577454713091541201753583190799692575357845905454437962377149796117522294111852701870730232949731088974618125591899012328366751577027496614305704349494020962717085953281771109676949587795408940536470473795641932172224030204848658559148499385338308239829245133232567538386559811476795336937245473269266203893031316835673236120204020269259030648278186528821432246774764217997952345073342893374381460308630316994260498043907496214844359331154443575648659354744255659976472703483461686130250067375549992855750206029769022415486484218036653332351470508927795559954224147473959797411852511130652696912401799647292502035079421635169568345996345509513948716461739984133564821001458339927434439602781438611690260526064621937332175652818873023580959730925409777712293153840122280678671599909235819372905715583488248534882576640888184609918003616831067970360298619591914349111870405733547087321741356994819117405062039396381986259037608124261860634785872924271598541421824608979702045933518598259263036310214469719831166131357975900367622095501511924926153101310963640391062726027192517373239388935357873798969628133253415639000862600152567881074655340006541926414582104618561850980057267926973278388081802262519863850666440660512568875699192031205861693586660404118305139949808535063042641386951825694018673078091345409351367283577977121979723208238403812886206016593970621394854957439286767604088588064304348340988526460153747326690804705387133891413779417694830094837616324816874059100118959794920790245975446384790102543001448409092107948429983696679520567063149223703802889925565795541236411256118386948254423882735510660392737580381138716201360590527681382132610022173565984787992063952972534469276496238528340651224545271006198260378684107433653796165795022820229569466106575423975349382901313626149007035471114459945234492418751438118986366498257739898932780605120506537505869474441861690044404930519359442068045996058090683793349864554146829958249029224900142456643128447857276844838153109671615383144133202731034176855278530606277228602803828271222673171765326345886809525275408510443269970155171392833944097309713995725381228082758415068040083378684187371685512773564416484492014796088392532209379614836137748519967306481836649301248742463133027678012724752993625842437068657031769643684770118020860297475122338344859736799434378156138061167971339333850575710477523098353512440655416060987744676724758691569130605804221094974050282508618733743502510413110520868065467747594370637764503920014742661880889910071107522206344374319132174169964597083974624785668084908366252491792880993211412978748861824431947221901595268553037821562663106375594463210948302463788102588519197722152205711418379239872855681995381473240756431301451304109065662204866751527649063854563793965503863670046432138178022572437884291590352957607400772575047292932853641600661458805398523686001815621542988177441889226810043326280335690682534120444729297532630820697970141229522925275142186958854788331486916421324009515659354969102113956928246168505109429209082739815332941800440335933261668124223220316008463562914958301717168057141401935595444833284179584330495467552905654697245151013809322953482224984501021433493678908485050036621573659289474177271452812168166888583692577074363324706667939112763268709707685937501758357148425007548929455179501793524093106189755191861187221867179515037949240767453021701251211072936190152103482255577652671275570976493451558961413007938790351842616578619959466905553161239236383202922243083395351844269409970425972305100953841151466817981963580834184807841944710773566283206275546953417546234319155306181152984362691702664528663456091324521754967289518109570095946705073749653642609319940267557637153632065044907270474241262388187440666305923268401915240380324017139484034688215243088698481136736073923008236190418305151490434738660908872067830057932057714172643976003825379652189327981593829139934039753191742352700493053290305587320634808108844590508253993859297709622919243736458248798213048649117978981113858269471618789262242027244997075039770654952874040508475831167909919158564071217661376314949105853103768408096480815653557263330260105823440724541716236799400395463305072439836564670314358200232534808215096304768258832118826035119059355955919991310727780370785702125018875255162378836423853632774055381219731100135063411770941815724306797441990315884613996944112752190063280935638289402940455910271547456286378354848722079039439786569023713369252443216112737817980677458288064043929511725217211360639595307476379672879663401057442678987333649229449978754783259981279739572202568680073937204330071439426062096162135752390208841652886032387942754924264878955319829003671193895579356573260964805882314386516070487400945340111126808441388130837750299265639975739873589014112647424776292292231137945278366039307057879445757232903471310197185396874581151052439780842319476640152319057931334684683156872340809829886842622790310554290481719583212837433465751800302081223996301516376829104470039270962318712174964786667166859924340632807740260774915330041081947061505217645749234340942825385674720129365703935796877102764123522229792094375477083540809134510940860685890943445432758917189921535619858707997583226492709045984588565843408829737952995753540571158228890588699045036927746400071868568080531463820364757921778010960384226396154766601643777050015515269113649890466332503345086869677889552551172511485393793939300513060340691865415227525726536499637296179705725405742648717740339518045118964695737223632306299993462331897284868799142362449147597743887640311152272101588106873662832563551211112665211075376272842510843927722359329727967611538033427171426119461609960551502383377704656733377493100510855501682937636160595551675240350234830799732411278803709441570020016694608729176900612962182103470626914607714101912052061456861180763446658359747663109646007367739278241330426004032893995812240751584391635201977180702871580057512471090891801821640203590632073531226586196947888347462147733179965560298342369333870229023783980432008686065302141818499205854884915348714494806279340630228339090710624422297950189280660517338608926172464793511888992358727935714333575462252992363613885594302623266666666624772652578144217247742935526386648760101879494177398335069794999566511521307007982882034762958172553893363698588102121228850984174938536557629755776005060084847529823622185170034699105063726405956671352322803820431729821047111346401774511773522215809519198829021165714136519201918626235111635800716377675416705672099788676536558886639752908526650994620006589025174777320400306953551885849758128431097789164016950459897177535633635629947109599736710730865032439269119539298614971684535577313053679816706540152296038221851391925850564879541514722657914580454798828355474005620538325719344152505633588694399421830293735215451100011755891738513771718504318751886505778927682508904342462144856071498035547079843982559655208395087751534682056467295838927600669048581829373447397376762088666757563010642420169769884186372493582249235810235962668944736257796956043446098357532992743662946393848563061197404656841001992499042007297593053041050403725988425474881955887640023924238322855575604721954336604288006644996320131441522831019953596809949197415366796909070731668796477552323333060696129137767765400117676764145086490524724341928365072021386569418220950176465086775466765935904397623527882285519389929289600965251632147579668063740174895361063935344776509849679521598467985523434659079590142675938940971123892347522242681724622316125855906206138551413155769733939299984510132496762230745473022438063368266682414987227470955062626547276786060633957555562699597647810795344301183962753889937632224925490909043302168451739544825483780159342395713195770220870285307530770245763092046502758001980452584497857766189645633965302103855618174380171930871801289168031789177523342750331287308334065026826314185441246490515217169631092466935594536499513893280229744410481747681550217785949111383925226323326925423928068317405991776153499812912698285162539691172454659959826402844158953277751752139754770803370291689104452196736215142528437781418394293732820194493529700508219881081371819520202490828005642191487728202164619341055003271773285962265814677503949596566375346401566160129173078141499531428857092800167570012683428858586436067828396163572987997609840717501508093620716785891149677573469943840558651021100682385966159626487012319149744830760358460406828470012621534053682846267526964959462683832008205214556570294990853114184499569172918128016231195234166753378073911840840417955129067884204338824420974472847591835312595326461255711186373747401959085044616325800753322330305320536358038544377350358630264607796200931777849661643564575721678695972198418037338502469400879022778579416042580304990507795229193646918751105697638366882835021063496962343665298759803506236297653298395057201794670127120616912589085279182545052924577376721439723522005150535570196885430178677630318652857473618113394615727735567476801743967756659969386680402507896586288284569457513445818172152744015717325965885145787472472652096144499961389902901783236194625830376406317196458382386829462665153831868519998148992437936631926427081143206321591220599618865896941208859547121627208986730294326375527045818092059541715787103553686460931291248909512089315066393656573532571904254130661962461108752914599956500582775808780613364959317490904199221569508069645023917148967727502037439500721711007885900273494040301875193971655712065849283114946251282017107784674247290260994588091812595490079147488869454620180925286646449416167185336347242585224639357210695908713470413327359896255813762970202009361740821096154461987300762363099600662261778321510889877171582557270067685229667256395608718506401402241280842048642303746362645463161550501328879643417374208556067217925813202661048352186277334530585919263941299534382706302572681160062879902233911432851304125327477952039281941212522292082808330633882428314524092685250894261965757123527855920617234247895113451554310105491092734948748636161998848712639562287857501869687549483475197103196853750339261552706917153351183924944020807025839718376052252398522929228971133766413010852703007067137286432301758250481157562410404876688488300480750156437780248977438485694960107451594730567322082441671365610197684043521556620839998556072490101728569589553264388199887779002013750075195814212769797862661855943002197353420071785930184281675716617869530304772514132166297828728434373819795086459305247531255872185410270989904527535774877732299711585477319490811030084786758050885839381064265667854615495513551926704534155306321101131524113840951113244850137888553871828124946424720476974827854174782607739334021317913909575977367029359856994352306817814090424636681423904091746632738385846918270706458319471098561389064074745808927725195124435755339816596485804006615601238229775844481845038513638917712438469003649673938115014379490662800989918116194414383395932492526216132151863392008867802713435606627822372827637890663868663003714204001923184828454468867409841165925758375390078958451543815461302076807877581253400692843652061315242974973538867791173657442755697740339720629622454800410654404951788130312990963647463694479022287325578979304936479270038419855890693148734124349294046843993283888049240513756508181279075199241353551422712771900404351067016740756547007137026544071938742944438714525826207665039041442471897201436159287681151800245560987781912172120977039444259760054835161121773243198220205567353994687610800684799412757837733732730165692650583081169687735307066241433472109379198193389039984420233498599636554525354605082977679797167194786287983113454681255704907715632708169410524964513649199971823838626684388810568463250544411730471361272348147516365185441372781551097511609424931889204539167868194756929414205997002837904075111427436828089235112932034173165039374413588021291089557124632486064592300358100796307715048903335933443461371556260912426808698620782466142749678312863435860734896704111044165752868294679838290825745000744510522776766937198291575897555871560895868550415371688891278658807986222584931871634815072193036934660402269637683124978776898188362364810114151832939108707342670786791860749813991829225346660706629632311288129863002929840724496969266768145606851949733874221262585393745549279986229531653277795884508395864558874267567343229366995677256110455659301075253651767250950265294373445293305369347596808037061978355158298842027452118925573040015453587853031195981764852403800380244264948689006705654967870201700570683563646328646204393958819823012271353038268699970011671159638472634739539114862672166304456248352746322558741179530956758753619627021762293616169143560723037031055032032030677807467463789208991095632540816274611860791889418671835160646959590515345483696644491641055350551593080156871199959224473533355918148475491659918842514730948049524858901778845309878430393390070377456479106061260921515337146042821057444920339015397162968670148213474680773003584356991202114192097351050189523004170106542807128443063569617173308779728511090148234899556875205026272007241721107706477156895626723595434841101126672570312479164174391743635386671292366383057686239336339706019717659091294033446480222001466982974670422279118115350310948676673969145351002680927234766589353472201004902145887656237378109306561454989520597248206438745111813100998543185182402576530720699258568692154042005333595778342790967247096904221064732210563326064238365547571277930689683390615193335245154554031543575142009160253749074981884614832954246169782505145187097661525303549000486310796368224363686651924864602993904310342264447600983428642869388041774465554603754335549998102324450162568346029695820278794234382623741898925593652679225020422444716903855154822975669202515323555004863070610368417254808866677117335531769292778769692438272840489223755182069502719659371766313893257829371338938529467113994724958515661705764345000138054440766933156342836030052719133523962067067163773536033241854101194116423871958908858971796453294582670095213615675813242680250209620195274782937061879799458794536291425092568610834452205382374456735121941465259346576405474628119047420134568222502309614026192221184657008661931347727518829158608434069292161835958784341607742095479424243337707611533927875524962267880938995723084838138493103122943104394895661891601589888083867651732680766968370512369215463606341359106379176166894712790703061783483993506918142838558324590584488885008860105301544933913388831795098146630775030873707742433483093936213663048117324354965085446984628323962338294165683599216418842437543927314384982635306169290642333893803475753002820525561909884636357986230302079856278278906073882907139842712468666839862342755389902877037295463781373726369412364699661341698108936750648527078990378808390882374026450619729240361339663264577263046711644196086666198612998018779176498088843370699074836889470386041103654564888193964393273985831986382816880830110311705693894145361314763126121195029222916892043844833593918026577481752431283925512215019223599578598859341738973708559578643292246736915565667584835266114160819098688035594592381181214228323076724765891326778711896908251026796966588296651240786814287889925083526063349215342921814713931170160722422696115991374063242777249632739531026867731721792430089537585032078837187586094977309137169453750291326527614887075780239227393120228154381480289054980252060374369735355791598763584686919996406599765604950460751058422993529480740577469054816307707337596203986799088589457421721229004272001514570434438089104813219558194653096429998825379275760022137634273340922952356426061954525611344751421528558681827762090397993704086696220198054356498849062527571481804019918140984473836118051821542449085057068027336343472462081494945073187817121845801705386739868794708394635454842459498336085443456047321308334955258087598198220618663763538185269723204989545299827449486792403381990888184173284914140096268227603544525077928760855668938486240301804498025395246743020447145084981799680844579507306244407724626726619036975685974350703405966402401073695458893487891468975278891379491235005548570853911739034743899160674203384741485249747854703201551612604409799240896199542036271895750126753574288937307742036550785436747295727650877725215073177703590853816892411641746313214918613793036346806201851455231674814927088049533609954672736083962749863802167655893331725488497777638581247064604706057509534526719748427639326591912304518144665049868470782577862265169637531630286735024622708872084419522283440740212373252233791074674511985041963179628429969949847341348605180120840705911441105944710643649189375157060332764335082926704681536603034486243850018321269240522150080649228852107265971545823778196294183707143393290960121585195124344391240358088247061432068263566988957129972130632353655961246181570357639934012840221245452081416755614137693305143623468216469269680124084503807662783124352024532059522930239568583088372920700891930912019080270760578751706537176455741538855265510634324499084508498696669275369615231579407894999352443732184180903915149036299291022531411798561360583454334325547574148216900965573136923448954653931015185185875086159192881624455968787973142766632330194761797896942733206516423162930465486404377890956859962881221398453955641622183374065724224016429668833732679170785457761452895213082617336655118684223915673465420800765914543978330792785445487501154602322574634499983591335811724715465786511183857344411522300006839293205079377107225367229233879258599114683001853788961290424360021656792072273937018663699365877011765626770721312010597170010325219669819838910199466633050065869504254976129063159019642135749471793671875068020497912653445143248507928202249206691163077183456793348222102177304465312379006875044327941453247323970504564188357399274568856892613464323015580225765466384559677488332338417069551246092706848525893851112136769591558660354391961468144577443685474383345712526850437468197257212593255753323882915774304344337427619322422120330016387050314063195018203680601126696584776062021560425679195298690354114612087109263598121657643507644602109940407768797214618513454914708010982381298320815619264667846001914221469218623532063790854550017278845529961688723644039281961940724505217997113162546773614773277283280546111095688410335614854171351202914706960105459373383600457061348245202589863756554308225088664535457863734004343538673959028638872352857818248549657609404288040210746121616655298734736598825370567451202476624501971875250401651462710765941987663456509885744764240250585354936104544411592424005189005308564907782321110210605207026405626246359856195384412149007932681252406026843895716742356746438724791277388831569855199336478763071806625871688667091142639632887132171456657117409447066304052235481851174078728246445194303175918901524393946233559988681675579532281954869097240501563868810295236827212137058484857478642110429904352951397668329947723251043836372107540755321451317425791508826649191882673671543654762185425879067416526550661942163723230696221575967607304453784146862087165905540276611574396430770105840075965287081079403907258841372203413951783060420002089431085458719358951188738659900184157880781490158971098790573918136688830960446530392174691255493144588690108276244514862996927104488917248371778606693553127168466929830754378161372984154668597313059751987834695078120858906124032345468119256505970119920601215766913026489537761231798236358049166597328774662259683421253948141279301612941903654602103039970355699882024320356903106982452726073518310192664148750735548438749407230074221922966006780622069854623491184931642517635368607992333930279863689774286233414057822705071603775524107629493264637083987216333614763826190535096623534010388452470188393723870724588167205236468533293707509138170156802209495832094572514221806479768744835509635671600425348645881826814983947407037782840549517607079666382444120705456698003582900819060479639766476663852624882946929476035015330420592644267528675249788472156327152959785052745345996146029998440619132694067427822210541414592090491453996864206451404044130257239925908923818595896313725753440059319910706484665323216497746843399868980023128819477552272327775517707443353047269529854934118741750118336617636811380340778883831814007378662855854374416404000365362949833398616488779203716786179943437160503311903705346434016347837577143788351204969891324085688387503995960053774850697191005407344704684896418651071876343020138523888266353944616983485193764310464466927729703978708313508125068043853500725232703362892597966816835287218013538773654404881637595213874854358768547622849994636311611571527937619576015751983067397014821206132441616123467199542161073112055999394391391872710480674695963333388052275408171985232801431969706222236963811973541022864996683234117474122746582454704790213843092609317099337405432868311626986339637728134055399396683609654380896309784507256204671585159260288811819380343828197478778191512237190822087802245614381666884020103190336928259055311259216610025428981576184746027641471139441581439795925022759848001039430096828423228371502431582604528905691051060490745713850282180844215725027364874207772475990783080229805328968071212458657191917712161800571870454700704661369101319530242252572610265201654670746170102496246370545170353414044941373768487771085914360475393700301621517786063886655750703115589035421866746589849419020035426959882084832453910740427287284651370932893977709295011817914597542773648505550141428622253403093762469375755804946560013837850456502605263122208653858094951200279543761794341112362783069191182623566498982281318940747946682499707197843224574840530006483210824934632972038440296536648347855477903042942240264134888209417277250595465965699803098488532000960047759965277783156962795081902870253018529652888626453524924989956685587661926533815220007909316199388437593016043466757938384947605479957140128153585496489507496008498234980045926037095308931181802152967464085019999559705873651076914527913242793783052229421472763686209045557916645924058788742907944062842352444091689932010517720388382080020012933285822277107669322541849836368995127666589941855544803836077332427060201228425586970753753322717858134297697545042236323248428099960837261068204465412337099232879239962716362430000674376969322163645721465328502082916615277597255522194135268366909116478946690164592555440948219532646021821701434880707907987412366371431861100477042911870314152596553152783743144816587886363075815787676771943091764443065451317112649701982483862064192273125969215268604336548608256041838302108648402748127959910705080493216044468261692709091629837649210875484051799441788007760532341517091999082244881392796521151979462420467960667001462987253739610369384171911293022199276184331290728011520206985750396891866970054388620329928856055816961847108498547167359001498400303206587593636549426988743976499971716732969129143827699433428194911763009883278271015510556999615587616442262340945330704077624336772586160994418195995000309291131157831397479781015503013998390904012402297158225001087857801254641673572010459355354770643416343851565600631687897585562749486380598292546509895029255210907763136555905616076145605961878165973484041076613828911323363197245165468473876726159717471010713177920766896993751975445997248022254569241733961618248587265839674864563857285520098726791265937354797514810307520417165206603131511708665606096949492117290568887242999383427291886780717439039447159940625992808088616427036093133538798338860301682214439154576662192942584208504296832490212183184539563550563201336109539807733358492693863557140124254067512638574929334249835183515301787858210331666930121972048675281286467289782530204542728931344697191091413835215973727093334634963082484628351754080055936831491150889146739716325884279182902750835563969541001555266560614632552003139962491637632995578643713924756009568630162402318908563526552211800502420326133901558819009284347258907490601845883238383829295311446058130633334302577943756948939697190640310654505913089465424541081708501153422434553324317399814674127800010350244995495166906358056586302092537717470116880695585515901316938041732337454982711914494191123438927286431332145412625581771335873874718794358335525820637979128822148721923015501473761694273086336375358499535313959030255101165690391116010161402086971657880020570536066369014886528007702987476305824040059636628646385222231599299278892186509105973963367046105769594809421185254839752883810364823153027529651016719563568953032199208976293871644769007994006979381514249129798759937270176536536496768131656437488894227392422307332367971981593934913353549510288149740371918266789119706733179470588229197280371529998311258212630126094562252834420368445318930036301917086209821614722900068888052127703487726143592692157266183752472386289033249774926630580996803156281191549023529043720547876537573577491865662423763873323858421029057026771699579907849345655813121601048072962448059316868173149970069743566610348246729634902759492504500452442577409098604091634569295515040829552691831570652129424145107668375188212775354302977385701320858538926489293425732368624406916088712477225312639580221276758195392165875218865203199988030274163870804379913811917716590671521623903121218727131475598218075857403456150806356187078480194795840117376887009679302339913747587085870800713293948585276997418087624185568246064129583985978373356566558289302528908565234761382241147658823942088882745458801075538279001632471330800614118516840079458194757524971303856725975525581774603684792429796780333705947223348556841579960482828328279308643859819045910783460900415436802898645219614108917721911370374028333864266803087237756546766856788855713936208426871065730574300594549567303816413299063759291087153106194233035961585353059695498019099104350573055500686828518800484374886243514312539772058884554687430502067517498954413314088380327682077071699657602483648175530044971223837544940910451886579570421111349950093844961609493964816277575136344046882000748588277214907150397271397135591365544884331074329283062915555881602914903234228132023406376367541264902869157885385483062090860008661570295158277325954863515983167803235540798805069248507149733749278951551843237480655749342175514731554902327369210775868111842697042465003896834169997711880923076502262488094741155761040718262849247892309942247520662402630339579386159575131451802976098439657973895936038806104094386735561648213449011147016977419552851640945887503433755074290466205029978061125720776291318586887107582397968707573827792903393042351704819492580387288411899553080924562792793169612409887327624725113599490076831123616715881126150932329376818811047581638498402119519975872919221231958851569222974906630804947140788913415113655934083154702869937849387751966416768044666867596958111726127356746160418012269861695154294689982003221394943384938588635010880006477685024507931543381184999918439242381318915700103611018860013010617418525884578260617797454543074732604251147044531593036682508366702112524328388151852346628511125472016101573982954658106908537899084195196249698769032960561741356340184646424175652694485345444483836729612453285437811927068368644265838993855093473272746834609657986692920752879000051920898317883848422234256318798356752521387424956525595846496029220783817709470693210395401590244317965251735263716741826700834093125168435647793479684519321334977801242373175759753012747177230213773155953556822427575379085578402090113374889342701999304378032909551398592641252834402318135343787232907666137749119498449250315588796155603780087682921629465464322191613478144678871411103716003088793311450752833586494725607699730581814663455422131135451319602267804307284122894901554786203224582359473167360741990225113585676488615007951289905447406605443191882994856665920411861042161393018586583718798576022560714828985886480557887985460491364906299869903219576720747459489026324019710855819783851086564260763241139720775563515853523531736366919600505548824925185673282383568635476172545307412655830853625876103919496573535789639921572928272083985637108691875761021143384902153902377031243616417145000968597714207313075706673907560570078842339634933313751011082093427081273583719658186303560362192120162091572522969549910044609296205627207168635186915574808717503516254165569282426978857468102704697468756868439878883974188331989776676436748945724364592676984372322139294945705884380008218676878835711047474261637309081711605720367027819395539304455211518112432413818787740150672013839719385242967697568249443596139905012380859314052425881878224065653713743028896829022184082246799325567118848344328039763994505621088019342929913670771340947610926574718201310853878610290203431087209764276374395232876633584517844381027148735427110717273650648301227439600391495485455726316081991547146398654677624338130190326800251664898473737212475853985171504399793987495716490309198495397752259909927818545300891957610183395288116254672607663533700898207319996646952629893097191686933290838246513173369474539633022072225963200911932685248146822726869295988959630941441594387218330639966754006001431461491008077925026329737773440863436820548739968374399112000906285389067695913208222851598801794322404013313344940344926997274977060295389222409233429065787382090489771561757315071746522081033169864791522753107620428687767705895652446091471448742883102681423789265912317844199187633740678058980919760930912172102567773625596525340361674090566563164285319914423401857960107248853346195209926186423290522278151846575594059636527728660747847840901414063089612187557308014092712011508085782724833993903248370198559479269146996944732082963361109804177692865797819502397192878295468434788593604694361798824430854771141087340428980153274472533391537700071123033697244278089543814983708725700082898318935988667397768886819273330672124047009747538378462513949781329972247605980050780745458955051220921692729425273314904896517208111716241226246803717729642973454468696241524235128823578571468815650319730769956693016888052946233745068072662585109719413883262858218677038592023135583844064210383261016107204549023365458377503081464853036082457923154095770455585100208433665840240632534744393550031510606600066223044600686585942205169044581505357263185712551688360194269968509785034296090305877873041347935829937565668267135464328383407531859826380083037189889244682985634508146801464841273806651977560333149254358794371388618680557102408680122725600244131741382965725370088861151051988536314653078828376238864940900034881719070826510042267458131327902905022077744804726914838760300154309942934792247280845134918726553600068871224734148893370499717996651349453755334171828594871494905050980998659010669676364925569124660702180720907917347516013615086066561754725959079434910087216865121937441449968752168183038975765317422935014448512121388585410417484084097582612052648990630437303649141537356644841579010601822366026255447068241467844712598574195940721569471666876007431666226282378015646505096617948846412406136995070853133411613748527729892852153124743186522320262486478872102274198577638377858764896525326985897208813408999296720379540915978366104111804577785070469886281022118196025332706363027937222014761041295716148565263829649455606348851732026914907397356017211197884174990690935695057047734167193205296070674288498064565887227410829074729215071760908085187064074846316384524994222521381287398004892584330362196757037725434919449532939014491145066486020680735426916639057507618451131243783422647006117445595807931057779973516686928410886215514054226254891984729550726246005629829472013731940166894925929609189295114563844537883905055465662055003623357336452610228548715431354176990835224040407997403996712908712094976591677278553960219966490471920718818117812812622227333521016817064780067498747003637787247381650745625591286750021128428408195561943306622904890424061695839917976667862544407574573089008456507371022861786944737597748942113004528031746910183031452222640298849055533367075706493816611520070634662133407103137637537180523395078801730454603157259954416588194981815877421314342272473504413014283546585167312603839594445353293741320780304768310418685404660723172966870351417864276823564747162240546317675046501018085167264043470832365379527228684580595367001202098383367712087182347583733272522370532374568070878343013896893225099867067467860262867225103707614708144371406028412130724387559458968403399838176033831690543767503986867523486525255002147283291259135705629202316466925789623919767493340400070156168506485796489478881030240496534867732606825299700112840663277127160107040073107976149031357985593543127970931386190460030457497666966421812326119862178776608599570976521665751019798015750745313967046656284055579683233352797051275006128740926489839147192063997648241205660891962328844123754450971786730148639263233734099562393435607545975686468844674301154873829136368958424098888666878279907351969126829297677656002713597400707203471487073287617216884215999259481735221822890036764814455032547703261758717359591732871377798910614249630108814524469365742385792840386175852651403713425592623788707679434432098578736469419555976486435046857453843624181842423817367966923348028109589840392145771541258893303431940198142951978193020992388063787011378052351736892921137567357612655915529118808376993331971763700968647768933668631009296717449913840195064270972936166771501070164306876780717309053683589260165820109004328271926052510045505751652859918304197612348647886012799702887439717505876229889398633394086615237698129884799015485359675271149785021320587893912491744437590344074476644965158707238428658803065154038098367111518957821590458056056796681318296260387069691379055660928520690744499710894479781797112709207502580343702649779729206332705118906649669146745675541736798975631132440864703660876168235899274219294529670257613771898518602316601322100471758741287584796686006334585733640096394992249760965759345446761538706370515495592808732301314904681027653658227534076899103431050989527721877985884609417815286718399432063993019344422879805744805374037781324093353351091276053996205042337858039935347886946557430257451489602692840018445792766697336834214222412054061478568078168430106419755920408747005783038691280480058673707418109813859146406106247445422394470964262392754581491849459819352635883682213944375504608179275053375864092892050305677432421440729474349876613987954893707297600935370796643400544371202004269560107402145989345319127728487710991554061839323012470902129001970616747122157809131906251605820948459230166132676479800516127970822620340844022835134885774398268640854660260144567469289557811463912675807743169826336979184326419356230445222732137004841617760094020001532959024311678303818639331707970255617519668318606288383912144830430483447071541619140904462034321589299895670106375240381522215229517705004779470238184936365294450228467535214004832561950152180695221016765369053844833343292271042229193034107669316052434150030973477070591464828644110776320457135215375957915460071191792596589928124547091631351481264784393775981228755239538175546357896206544254524299940663045402932603051339870385842421626723552412252571074105849379645622140800292857547296156220367749652706729371727563153201884125968126700326048241188016254376635025785649124727183619154756271447093950935082667246315812602114438713395340702030954768553304917092637573189135674522796659654071926572807347240778207972504886998151617271004609488627969125154302250553097489848407732899344422877086822353935943188005029254486866078956650174131002081849825018904639149905561896564875243351457921331382855067531156274374786983329191953935712187338930462780531930618726268138270807035252226125532842251583610131264794570515353715044278320714404345943593303995695783326694239189512354316006954567356162490347706883929048854272477540273746724870842149236143987309050486535756423481774031871402329316214740778196242152464917855468127355101322423664188203880520402935361525167621319636194352603165663708206325897643230553706034673210535660376042322396016180597240391992333543762770546534062312634760681463535188803906088516377254242272037437672524649773483350442276854891715041419109998076996592077361496868883458539503931146123966097085019768870860128003253607251360701857388106375844641903038485015929350981837912309071181921161906384055635305439584254724645597184396693264177219459526058854862477541244270994466700907717855509410758323762047980992017696581800094649428669572583860967982954456461706577911666398674348452795284255111568343728031738671171147048074938382185230494331795967952487623731913782729696837613737367724584750605361444189264127469003012652498233012249655146316185477457485118793237704039234864408854137102439124155822043841574921005413221332911924738711907531383588693156949294890951306702426374744570473961268228772965972946074701887881343163031583409912419785050982667523488021827192685058469553735467355505381265163210046934517022149318394141857030363289385944402417857548711040996316227292291785704660905386945128084467505860269777598538285128548324670140072061063931234173047806197651641352890457477620699821275686205002405132495868590416332264102261637360827412621110174044106854309963680264324599840235223948931843139578085479871012031224513870467515846509943228583890204597852315365191576621073695943907478729488364264607823757358964879986690123068003767689873163583211480073243791764999813769382611383600032198453823677430166195250809973340408271797440777687466023941332629328380128881102928346516415497526266133515753592201203032836544502494295677283231734199447586083320159559783790391851665184013861871950968343272774102588878954792942069849832220221237947260240060932666752688528652899550410207293443403128080465536673931504470682080860803502362287862648650585477781819643172295213730292233863894486233416577554543576889828911076817265665924185244050602633975986148929734056847621591515434867705298749947025948833862930322091975643694592017217992945258208471304018756781686646268369022594234537893217768270408739702961832546673018615222902809950753477151505397262791452970691072622247633217774068144524960592573287927202393582238412164948563035393065150997054231744077678303897507900343369299521143173889962657284329180170095323115931082758320504382742879786676920729806262093489489355475841508129741824133765123643286019036178337799411964400290452579313627669095691287174697230933800266465467405235116403376369370548098461341057972034236291900688729714811023170303930207424800103248313918527872215774351843777860381958424360548302811602824380902456679656767337112419164006190567339922016640102714742583909283573547564227255854501403017324794510287915496816022581053871966115204655947550698740643277048626876676470689826615890791525810070347738761431940637906055280798864871752987161772298602335793013214436225732706453030878138247986208353531266908426824276729773116779400720071585799770925257781402075868464153583285038163107769970785413942739773547450589696559588627117349438799847759003585598637867854267409461824541064758584200439257475670021718984136920683713416525106233105210577622382745125364068546263771833929923818925779035573818656555923572520109510223789899608116142044132321255882054792553136708889016022708512809659184202466626914654723489806055625472965752001557474612080361502413935114191337758158657428553692066885558330554170556727846835913084776125063091155982025106593666073516168746089943103099385878040008411841445010789707409751187757167321907251320799167599009822182889952087670238060340866577847620342998408960397195324047989163806732880873116100192497453277582838965525120369224273240616936166649228645864966469538476359840003588128696893520743783816883664063557282745699384759575828499902674388422425001922188337571056950742903253537410415873355493004730159762192066525053012486292807185639441430190838615202910289183453144346368994334913615442777207730653599141875597319226855529683903138183046970524051981740703368601443225789477150619149149719287203268534694716930483279006284872700559529219702908944623528831417481868197929595218317375732611808224222208284577003932617646533498520328851196869553478785673656466481486105250231204780588617288443200040874480816405554794987296860498119314868972581124509587916471764158770173444434192191209775650115055861189423741014430769594314117437097783095336764886694365496640353676145873662685553706360833017939816425499892644036450389972069214578965102699519948193583452438929066946502417810377798363954303033746313577108007620976748508100859034547506907380732166798664067279479027340715685721956993661587452492683549303156365042628442594272889774815212269081179863570942257474038694766464845590038083302100274724715703711127861420259782779600137988287782154068299668485996135384049660201295260462606566018229461609558709970191624212650904992670564241728725472570461484327401494293742892508631959223665348872774871337985675620704381988010949152707270621724172357452022675850239317036118416141749949025746671233953233235681315445995398574544331053034854581946672255255135107043561478034066290854101626027837412382792705660665640823087979549870564070190305723158831056582958055250583947099583142327433239875451427449016895996387124124830930659525525443819274551207817777202418552107051611288277129752291085391654207453725369210504290729998336718481142520054867472538840897429208343650346041833654520353258226983655334065751666758985861650021943070485748195520597397020725166387685088345666838543456710051203447502849226867117545285996086787011968223278060642163073587281930220543974435110260190362321269146347236822315786076244735235697486018663380904524196550718264463273376282870635475053505634141161632974406827683893287715739524651476897825312877447021431352732275622640611400357189492253813614853743448440105887201719532919200460231407030612575182162821939867479461377932154249664310142631364774187626910615975141267868944806942203922229484052409713803282135044931368417187025480609924436532213178482877644849632155192828184898137109484485516031643219216529610909648266034658880188646209184495461250018235934560852517096670604438850939667114960586660664838580380603589378915983508088879714180636953021258972258128027945946329863344958890456619506181572632313496280133285582701567664706126129818820927475913979678080870599967680073683430215281708843430664645522322659729151187043193359619587219846783419744572853414898049017716622500304685355550322832817263362378022509532259113785429021088073754320570056778891127015299092691174662846602626256469444854250413955145396273899242477328129366161174777242370648723616187173990098408307145372918193844765192729227432098541382950727995394844925704069321207789608948056692605164896173602014242916425229362923496656613487821136842646878889289863549443722071967435970021068394602553067412992444591373547292051480507713156187301524683769766402285843193553917053737610791294373058328295177974779310427053095963884912542165157700992242809735533878783387110960310308242903018239279521402634916615818669817620547671578335616705633156674402121571926749594994999186123537084674648673826413713898998132032820335097209051112191816884901550486338245951446519720565729924070563983809601719947649768977681837345805601387311127617461517037281521829425529985496342553282624727452550622560742545945052697251413303080504550049991973090892408066747238380844364030676503589134762208216620427972701277379103127290496240592790294580911834113526160521663465702511731493606072430153496614443001992313620355865669973044522454200638950771455549916311038418964161829784146741210648244179848199083294782538329596312717810548127442892316217587298990325098293742732435516928834987418529740751228728343649983942822637474917453026694662136359055106565497564759224778770965193352685666628539002219727766143125112953927502231094521296199356810567196521487638637278168999669546799261483140201565431995359038417337330600011089910241195173130479985687718437935741246406067366175984962091152829019166200511747384608771167284741485259633997879799172539832238626671253621596462358353056892589479800712361337112269386702232863950170966778523746811496754160514162695348789615229584763805847201003326795900931731946805705462413244313197451502154491059716426947734803878373724294552384937671995532264233181543046190498222759288233455814543210654670283516251895928716302052539583284094950780478371536871190789381410148228895413355926841617784601412194098618011527472205329569750229097387770527807958413346689942514543760372196206757958955647959935133224514449370745542874760138613353008129918452767981773627849778683829028020430384188756116470123766411985940649129517843355093478602470942021590838007684810948323970434082247471235461670800043084389371841707895621940524702927536631093993240034926892822652151522867607125950924292007137584281099296156326764559208965628721266921238245697825463217367911644323927223096288443362344231565873900841920315381201989413318425214805052711580725199529368019295417841317110865936418773712244498929815013751703427186792321787183015665572724149220936130094635782594205969515267892242586303947278613884098398504806211950362992616096476381583887998562641228671077308740008196376159256428722320761943484454172786266668867300871813066797483085613949707866335238588332437593757369746357452951433890679572832558794408683303414037033600347894609129168234138172497078085723477502130829991664135267240343680986334066827695854307387540881356832431280271650523606815566977563290055141798332066099149537495598950171963879884000328389364502695621841484626049682920989543007122300498984419402321061581786151391854671433623839878524244539528629250621687790244347195748594201947384934552608432002471102349306890467902983996134023490493330985905130999861189866297807650562912089745673938491568818882701217559631818891817068241206542747807808646797128661223704858640702506281836595878096865283903341063735453758400377198974135499204317844066563696893193162630930959219625080318551507555413186024701010231608413315748168920318202802020819061114513007758964300424331358190997144811025480092884539550157807368427981557519135902588597885181207563834547958902639669712630991681740330861148529575455642712140171987731177796604020915423498194521418849998611455182453013309666667521962984984251989578220977801184530046863406279934322354878731269133555821978902140421344490781556169387344921296064460258937138200754671415168948301282794330018572160162949576033440767073615629002811743564558872829934618149291137503425814254391316170108207467061993197676699090368962411897797362467318257681470438230195048997671447375470911549364524893135833456338826387034262107742711127161566034897901131633131708403118288440875339920303241468051909793085766287545064500860340546009206415595885051402659355300110681762727310063889820223923460957360133154454290429899782742208997655171846195139836480886082356750943265865810497130787230986183458685761047589898470546391856933837611205459386129672943768797270289128726027531865672343610553382058902970594570585735825381574661073343825741937848909195150885834400261734789428853771944511483448242273753730470580154550988588338548267906069954940746604381806698019414252983205903381311456906712203468858938225392338046571898435797414205029818793989876836886542361406870901794347103679544357801238476181917241822034611418352175795202263041246980327580346686775186696600356613120279908772597531653377496110923389205460125502138085001602750599584079296559179443985518725809123423625513446764234672140597161365038521512970446235477069059174776356200042596635532618865609988270481440827588329783101744841585213780899909649701589104555839647399728464405160205954386567834923946546405260637281493938562097637359742874389113474696518735331411704628993883318348965561230342007126463061374484951972605764572851424582003332132441848211097524147646747076141856635670381413713761865056868084738861016285501252732199651619437615201271508144068395745757065006615437890711564485818695443131703129050995038646030861566604422589820818492372605912576373391000224618150693548885268771289954783296982620707701023288556428990145151535856287191415154437338033402174116760900534118175793566178551742394507057227187175021935609492553637037893358898614875136029021118965465786456617245019077619066571010474491856003044669113593159981995447780109852746330635693610225834006748129649068771970256436002237784453957086822797000679350744220221128923271614083075635018629105681934710174733290776175933148369567802518629338763293075129467249489857072465263720693588845415657844473584012833415021115255048944470190371199920935314530413348775576447680937842234352385678515677973099454593659485929872331518685314260854148190330349692633890370376899023358344144210027514920838603068534670395433082855989540115770064396298535201875564346821597411821144078321805766126799953829320702077143420328793551286654381263764751174840593729633314250120419276372749325340324442276791302913093359421325728309211958162794921116914778797197926494713806647907339849652046510087141104374808892914555200059532331674785874714333908801808972206582371643006913052765904735474435070425741607709024046795502360563259740514580060394726012432022544132347833976759137551113366449160279563043293137870247396030580313224219368738004443738792239945161368139180957238094995930832412846166161830229140157358607860520309440617692943527314739508532743543982227478038489461032702277368094095163923851987394567805888682885639613125541582995884813279764621460235181631959949676388223932690616264468875871865762691198333705417612791627113148282990094370020323915866841055014047398306818872702573291047971887766858448284618112939988832196740398435366366593554174353653000752152716777133176500388464923017989038168270677616200308208392698513454871968227855477817031586603937305105149423751938427832703589075457307732371997150137228107444608102186288882778522710060358145108975815804745619788681572604102933701046721614675835660136264725858671449832837995195852786558749129420267425894851776709455460127567463573329454054868136521923625703240382742202489932073544662965228257845824238475974285013766215317008186143237462714739334023236417489745812077615348122888328755948479033999672945374366901044846978635818852175851646674133688061203703490824326858638500231661669407973269116831899256021868887231295165831226959118710031105203506144030346297614748782961786303194834229201078287997559355554435229643490007553883014296302000498513713035745529557503015912710313302482074825855716349024038856830520422709579195503631820316175230004271514489460612619250703249492281368812591375089680590252582528642712759581878350730280280778735286838115319442479822816167090887977300167266635044077925648706634105242401985494902590437818253578262339514973693574909672635343388128157828655520378044088622847735395220318515382777483965643636037404400211184304074694623118176587313698772308451378137375231325947270873975140566721952107765797190426397181899660284324060306027794003936528622074421982730420442123968834017861376230839039913897138381663455480035422976289678841213374654748372743474569938749704650669814682098701011242337727636421726933154444766695303379753548640486334189177701860003619124516776236487357494743279154903015348137299607120395487617560018399244450431938657191194685193656224873804349936502461758614214015022227805563756066093565965202860694750257416602524385929419443464325552182319881215446825356394486005436348835227616230658215966635297850942641623622636629585147951117869734280184105094463577670915710343543670085364418757326979193670147011777718397873147583370994564789963451830009930325711051817657064071050207965825430116750563819609017785741310472495767301149390049465424572210407376809135450536219011630365450911742057217070934732812222760130099154625324265556796481901281296606122672608510051224569441182892261403206431820530174279727872460407404599520794099755309710273108675523981214108758983089848485485133453279811846271462982118322476375700775126130093450654932289017591839973086523499451368110770175100440273108968056862845666506521026796901552942224916841155497092339591287615032372547518788675741492055047879091260703658001467290926055895737784199200073051640929817774341855286955582769446416534609208605953137311394717992105303550094923623739241676915619462325368471908979193927575026786993945545594675312079817369593977800544142069542740086458489390416182977237008697898007297269515655775510651653949575880863649336975707494031972473644348943023992147031465570748149509507290877189154328169597186183738041043666539325404171865356270105939056322170797937061274355502009300094396354125324662077595755984048909013716964465270611780527896585007366733093885259235885730967241815499654588064293171873225850582959911115867560938606483993037002226997392792417399043740124100382873901260717690637270560499031988868240986661497110321307492580094942412923668675585379007547338251374175830911575504596713429675036548421690311993406847774516883266291896144528015344324560919197115472882245420184949676289109969492044905710791292365134279377579389696999709683200296353898560565632169923428493634712740511286552844364464750793591473974896068269428841885250217577659029570661166071071129329140123319274419356531163998434345046000239405037931235661721006253228963694519176008786815339063665426068485249907888464349741898661142095931523905196766521069110907504469589071262436585641718019086133898956553717762242616014310912171008928552274688888934581252569959059100447661921863996965650834463673737312550513731840293854755926132201206201751979299944108630607910262665505993687187072772807332304804444025185571630783219553290847783980242356233249388879883367509087827285583043787898641149293718989935276981384951366039047978407472465426507365146634214200490353693722445821362687553283341282783806374628408137923195335921018470192819181136226641460351371573694692594200897276790221461726400166785197013523277924303936936043335560207985773921409761379392845785810044527848636154999251529013643700755439192997791416610439247450618002946724521158251078344733573988055293079083576461005949523449012789899106120795527559527330015143108000139918653487317134117246875860833764501772952531634034306654934452817897376512151710266045039461514609856919995878723704208060895429835553902773404798655752867790928725771702245130221158390780556765695537976861593638481762843791809995731298587779287587614749026904129901712484413758258361440584919937303641331784700269904521717794782205260555095413911275119513706209185220434215117899039601647227270736016026095937878917385244189333656994572353939146134001263642701802435993317312653124033648737934570926744008785984436316586793745124611485933060703181661816402279634097875939117345584981903757885270787028396351189916260518823031700488859901084726337971520540803777384267516867640878393802573760509391503125786896371912763348258705577883227332029662778259332544229713692050492773496694633866354726168254162040259067204121539276069724284368917900965961133249582121144232333122054616645956149385055300951462697138023889459503057862716529447253642124924306335800353282034018593647559692718674701363593443223718478099816178970931389985480113102505652499639627021720169737931154389568179224233179485932520094972997235598706569999759603940217076834987871500553419529881079828903200475592780179587309944528345232097782135966880749455640068173224294466214683652698432542215934875815505776390765112891422710917097971662337947463245781484451320582169416490464972549639688441839039343514108282708270482673663824028381915408407558432343594499102590022913284244463959212152607853910053909821693454457228863986006599661554344035917161361544499364258930533462888712643083449832999060723214048230626414337752815561144559475984751347263539097237426895830636469581549491272669917153499640814125835543477368210177640266378656519680324422647922920505682708931181959815180064391761819757175535419970707047744132931187437165945585297299945754915601348856247774606732521910671241096017676880624893438979452304478732572109437867972260666007984061737152155847374445677022151482395391332181361532134563108239903756512289256737824183840771340058413367887492838687279434507170866516246601028119778966972162214292185923565994836598168958864846366393392948928616916373563281632591138751842063193312893698659637262745202800254402988707502620725472775003103303302949810666987769842949332613880495651313696349278673923412680670566131669293624678504558123845020468934953099559444006884084576122105123310468271925164803123556900813472530815209134609769769452166946788050381823667811242824113690874307622952132883137524711159454462259965322660124904615898612784570751102469599553899840853878609014784956248449070722041034824042973712450533775236837876911199159604397008363294073288367767635306530391052775953309579124494292078354186565423896849673130209094040655388524472959145427682352910492938082700096303521857592622896454854921358162292859461537253521434497032156054793771040501417271653669773145669450029456247093590331993742293638682313357126815394026373641751061737353193739109230364298335632853884094913576824705767568782867699234427870478913756406948289596948000098196891592693943111907947853404669605147154755426581266328692012968341302392491442732117845434084659208369220916641764519653215795723823604367954611216499148516238828212189878351519079464796480603843955907635257448324255203717290770565172494405626201402800853522136044226695634211971461320585083480832569941645288883320818915796584705651426966105130858633232110022674307367665836840365038994135476755936669994424147834134892896130514750555826055165442616271713632236740327859571147842953813998341694100903449937204784856491959538209975265809519482958294835005291528550534439644486571581031561648093794568671678614210008158781854869393951603309705222362050390731532365178186639268254931943262371143312399237437789491328609383911794569532713624692171530026206161657493686874361892525449833538232511615034519986152969936890716696597039776930121373352877582280075742025929293946598913625992934921277255932840302604345307826947222237039719377297692453274473695907183186719451487220800385958062571359322292336327277557174865285611721136596827718084897987308639205953317799217761247883553621068836562423600196548388276041507061156379735019208764763596006220995479995965486826699343293666652393415503793351749547580562587556258154603228130717307150384048259478591443176227875873942564117077402781995136526177054309136531438256297003571377254714308786259773224525836258104649371506048676295594260921868107097912434876511554337827471125655929946028668981400397711118350502918535650625097274995853523259821856452182653517344427542885601558759391080898535728233771861703610712099726317674617924654665564459911219901868436413236220831765746425150909284720914884258708330453097804637874037981819473230308545982597633742551833571828537353022965164605601372111834238828693433522936547371840626415650655299335868314658917069922130029766448183191694320592028996014257618874623919280056917862094820322241418236742240619144645568962048771782337870849608459386712368706420285335325115351295140102636501029461832743164887923888365305244431048780175991366657275502901658663263610559334498223805275737008535633388149722680860484716003231856322446423685906925921601789369881086428421223790202316388262366064307591994483287691126151868788894060190066367696396864000979256310632764657366938947882459118429000695115690983173982698426181966535458588823054646370176289934911431552572986837308372829736515072518364915879259629532367554859710578871669634684499380914960961773041698386183480435014373554296989822750864964117954155701472236615798863031142813633492933485572179440424707853178824880223146046995354015514601288069897666271581243532408108177795872703093774785396292261346219831597019928898015158880255238027792888174764402805157399586917509013255868236103897948590263352836572022467260751545664860406927983740922518164865710341470488839239936235899384781434729815388212505557680649392265610496789390732919327309744326422804361618431533540176578396053827456845227894771465847136726261247176449353843088555548521282210742684771456593554824502162501725016727860464502480217672423354883948541871938543595330619132669101329861435593762369860991756982865978151409668281060425821469401584387622729979232538711711667784044300233181116258915655667781485798002898235503280961014377117921473379080674391737853668490397962670310319303713461239482018784092555268629924646768883879285991294717297858832471719177666949922436561627737945372361354140710972900631991884952111904397987440762560644611880306845930966010554009455968667082802142061102260468960201634265176760198984911873240953088748910995228796220460009635386569046688717741693803708555137139118802479034141285522665741536029530424039399124892263669674503922346161849912934941367056784904924215897633859193197146904780815028409152749946785753475429451351229566749984238776536500663393349953399287212364890263221086833277006278470212460292529484664583447841167816818388694361049576155453803168537024741720493547145269929807562048511670909935241249139620229632687173652391786933095357113527920929975582424762304330568672469653187720110095353462105490104367400009282602304644991380161121936632245366981805315054722626772775686414309561368916590648353340224243495834849049467769422190742665914276871726163748884360623066027265708487589363042594291149737054388044116813835466974294554690715236399992887844392366875222958887480197942598080452238757578496772988176625403909468181866801989346700852131312264323094371240874657438774664795068919806456665554400507683606467769365819948157026371502848563279294719770735130732409688226109114819879794161905362469700993404763130056680271477018633751536097540853769234615305360987180684043525520042005094829984627305097124038416089114299997387281639347716349939214855062979902479790893288401415844630262162380533501317194750627090514290038035062038446133387495102657104763795240145253959016480477584008959098880442553494610797318475591975505482933426153941931912474300815870586092753827825147063352837307708821745830760527566635990621245922976390350006834391704171029263718207198494053782256123316795875172684700711555231223014911136421533235453770443885480961336648309192495740714763034014743713719920751469046052791590978604967243328245086278277780200711785339504449940518102519767260479116087477085361605769292265615640102618784860002577655274089154502096175436660356395075258083638822377086374691946962041350860491442252231826047219142053580478925816502228584827449820729794672759266039081416487104965453602801063180564646632955147837554345937097123783503981874584628385510217801468382729595487454846872710290390726389313716668237629875732615519879018224622378680401468780452603126377480867675185499875900866925688846317485096251830935255119797755173245190070881711302558708309574278966594367095922104151707260488445071985384797448199371061190571695842157893825304243217639034346496464731447500571106256529417736671500261567162263506362687712371185476612917967270271051389106552306394074110551787651951736629435727282206787101618774735408782911296808080345344871079208769837232920733851418063377397183045470983100791717624343245629160920073531666174156039837853934680648421698392940111498780762619610570286196133051395563022468107100197253564917549398064170682739672701610668197438498387746469548560670739280590856187549324474959133372432335576195728898827752540997623039333373644510811515165634399817952562605541165526514133334566781186969999443400847234209852150665523764050231718961828059059998594105861497971965145502351775182975837108136211643378498968128720653398403728372275411191068363170941130470292709432121629451467741851653586268193287259403251083427379905706672300237703885292117984513409405507827247538427975696719146368437036753624743836964746350990313597775007465449186406935612178030935239461727461779635789815432414548670833350352483401117677358830682670008266447892974557678311303694120274258393290394930731000296729830034801710870615239147641598598746101972345759354795517066467678517592214345640180902649272417720701031311598065630171138394216844583067063648637266442487402190509995180985765828928065741862628348112854603226490208798974479703578699588874798838151409556815522876531662352724700922688348383162845856682003878141508943960234492277486993480394758237466577664310834835357590712190478865141449118058616615575823068339192899456400531899509671073274086764698388738823927346533591417600380624721162383297406958916152313381995504066737013683633372313105222284132410572843036119085434010829429076347516398762836753370699245083809236756381927856869604180846843057468976135562075513661902742129121601953877555300390800155279829312652546374454165105273393546358680195063300608560008256536403800250238781219322542393044425371736896810367224109341802378030827476469497191093110648661215774748023452615156100081215065625356047200825251073735912128844097601339095957486008535382700809990914109200744514528640434417182840726208500405786099109846816993235031871127469611874005720269518323271877622138162922971719634427317372838647180693147932697668182342449886955178625665591753981646276539012754195690132844422726298798422346031696399556384491471641254878574152764094208722778292447456939735386283455047606131725974587965420620301875522377898364587911808318957912299643463504960892442765004703574531199780036173073074280578251782222704385020149179544189670034352948154404067619384358140803097275880210583028173834311483972240511681433721254054785921247207702839674529153976443979728124040866433424641357753784702268555196376623557074901672909109701217130960334079838334024763466728687011384317918975502257991067217064237763880655061517804987206904251664930592419855949776947329838670297049286803490067884095609629770287820288636128708535662930275964272857383712440219970739269038081663372552055773107603075108076700649409009503857835193909908632667819208820691216575390384831413639070497948604007167048347475721505931234218028936377794052898136028820046258954890032488946427949166571417507680823010510176011432124226175248698233827244392060977009466589604253025445660516201408474675934251705507455665536206681796860221843610296403712021272681727893613537826954807170696986469238719746455065008112211548139403570109814812710792460907558654789109379306264378288761346466946747174245836758424953281903613476181173756307443715494260086360952028709451215808168842150642169965751024856563306413139031371814403671961993367979560416016179942779517290307717762491781254383209950376566736794314119785600256096814052502404587160124442523577764785451846878370349152999574841919037267837937170483292184523157797085787704792580031258776718035043050936261792739803903211151615980165695329561328417021768688743327402145976509955952799655494962576607442218513870343083462155366394607398775700698327965528053180854583518564520094145151965139171151041443246648021645083963154488734477424758010952459396440253285466361256281597563212137234210938289500494371480494991505098328242393011003919417282708868756556261426788310684235002947519252145704477872807569803492533050011419089512863086099437296083146751172293981549044573837489312235281159486356938679783443454850296050985112314530415908714540593081437223931043233967761015940267474406747459140085993186685293591120550915320319222618744411018431092984889385050622984873562990429755209980861928237653508376473422264148658951521694303904007189114803897229326893835924650286544219869899836752805355691189105524082671282898765791277065080658384816946587736154708045117424855524722010558600433788984279489210619203713164057290581416502301260776045548426670110964660830634044833411610610750894115082265218722073882869833350036744453856550895815571150509582303269647705249822495032521562850182113358828217606600629637147609551725770830020773924174686873480745091222275846210676184924348630979168599741541156450701931396672067394763592473206036821146796391371121373656493060771433235858047864535963362029290749801283662994791546971732694604258115730286161450037108054559208803051877812424912821459706908231695140664793707188774472918437567643599134204351657309304452203285465772696032098676296269995265587479312920225508262432809377480722668087240943397595952835135426623432704938822741614224190131113407923512389311214425688080768887216640348769683245877528125618805983909444767126937585385109765733035450427581964163370596912487953769063397200143604103685943881803567410654402082276621440560188261667838983785129304545128159948715012089433145794431075108740969907210658223591430155242144310428073132572157812714626533724903271037715162513387116405494012389579799678592509021234105174908712492405019755862427734746325085424479857319516428307509903982122855698000634258749459782590014271391890906475600888838296146291420982623215753106013202966721160164205386322105024439644432765187277525316733815160186791880330520053498600943119562481531225922383232278391504711525665081973287281294695284154438956272808372369364928229278461456655102597542121628680504659822953223968183896567582573587757729895166049760903999529460475172255338950822679028360231110547410800177823439686115271608544166466040885518884455991709760170812296151427298956177012001580548354173102119042807114248108380626489767092269055282084158049716903891232164022955935324480783290186616001234996773195861193109254443153179640799308333702004080182610241260712161534441394287150189842479186359172047559245279539570900238097498347426029266808035407289832866555079782476920270375313219275960854660310671637871087069818854751183411072217236529777394935020791797685510839725108585681181576385503328169397731806459198334842504232018687402107215516078480838159698727157169294168961951569867361748522920048928122721290863923961193249875338141551090417867924004272275123364825392501100174338523232661595111200956426995398129363266697444083401460797521691508383385511747615094747726443554547971516374303511651448683077135353022027056903451892385726506590033941151395355705316425844620210166263642002592334988185513175815357428905166326630708800698897628642277910623893272479455782647274362438276377129484732716776011612767361770362685435915295350930646079052072310912967892904146479854821802575085340230633445919226788371116490468401384082983815010635141301864614858306983329989980463545788071497444657064781874045560196966927672932749692754434240247467418553675819762141697427874480270903777355523668812381890463912317573642087844234182753475428745716765798047531659853882323399869906552365494556253202804641302867162554919534566390987591298502974264556735769824514400440784455112364521633233424635518727489073728303907036003748124410754119335602968971225796520480218422803093260959029404574832735971330030301905219830837952214283854468701437650071924357498952447116802156313722737841587785503825184910867345340468770300812519874703249958052303736883678404032852467390262960585870743275319206123206234893806342924977027302731477333850639428821530906015572974899358497352354792990724521395570247338665614420558648296469654751016811552068578411494276798675347889063896736959679167789243164250146394322614555054208111056951971283719364553915748537446898920525593712310454155907782710626657110058074778450634600173129207561339747971703660016255779077130433420319823455317978795816349531297877992368956597165281639030267542534206370201245884057015754164930205266982261982285120918965921678433810743976161009670351900457249400118795725262519528169689602798588720307622676495736383839470187995154060686541451175411030990271028330548044344743035172146606603094935301710668759420454844746319257461698872010310260538598470202722587009477334334362423459380328594031463266663077522458077567698334743119970448359578031091034821196800628905018158946001242848892338614653005319448813751807418696352796791487732110242345149563898730795507530435005166495772834895292753311249247302549915957294291783514480501352972901397865543889818501051923363164325964163085328267874314511786367177836456859313655311259863602158026193731381945298758403923979158398374952211443239300831733343676356072455939679912200454942080388782189554876585367771742735686870479924031064209082737109367403333155966376986579658994699364704424862959711520444325416499982037215721674336033449221743485493281073180190482279506423077397703860181015902376376238444039351508554577366676363424058289766127479379868541272548835894578406914862156693705138555470671522525033848632213967098768099883821126622238624402160995836975772587292766834177074245900252962083591518346055047339322074312357549485936007677802433374532703376341448977459616874924889375295900985969288148732690300561375395959931938627077446762010000881189855840535285212613321473171855575306619733003045098758357281012832074927382533261582185130300493238682599342760982334590842168336052683382605475578957767057541950252438750995173663834259466766050360419712604613218672928566199560861039790004649987297863029834509009519436428982882288716101289019786802632994889471764460527458159525926476641883405274937534414476020682442008283193381105868837305091644455105612104675236959131791075314078257585646071559680236903904721643077130648705365864055335465184593756930158152697051278739081770327916825068224081302959339929307914621852620937708845960512377663699802766407580256501571280741874640959187781058812518116871898136802467738578665449712127304042107632192383789639498966362762923716746086407846029775878053575425855336314760514590228818319703300059369785351728700016962048893175656135505500476209129074055575768825641711110744168395174809396922610213692271993584970428317464952959468408225620621200339964290379403389299395475849539366405637487206316845628201430330460019538153720263980654394179058627908469933905439406782523285888467052521609383073203141350339933049286256405204091808459413428623115112612266208564802873735008842845105202424277629612465144933429841329366947280452246329126127790666005152735845400674025099227784954645188249596993445605560016683275092421194727228570097468051052296161877483655563899383254438007790039732760156768996285277066915525771149084618811421530634001436579370016507653722051111153624004556097485742563320854323350788357294636958625147098672165037378096105923815031094218885583270915986865453810175071637262322146951116277378670490443030160433267628511165477009752999740125745197584166514755361433813047848994688011856225995413515806312602032704865718112543765746500144613215387997722483667935476556071485827692865569223607775276881610529917190657257636374241045109230205611546539913707653508461964423436690502875422526350497537465491237296053553627202907385534192166497333882911697767602157996845101239333476414715390073488707986797377162846526147786448618956311960967581414182802737762933588204307361886680830549739282403790105633456043371926920047477963269084760454558571924778700801103015830783465729806076205953099643657049913233960746158323414356709038519824424790730637052811411020241022513109469369662933855564708178463186275707702921627548358287410440436637246634032635307976806331460066016645814345025077970859951713027159511020557735346639990202615344050515831872375480513760199317481833457608933209738887808164628347906015995279989148420091898992163556338877374931572297043985763527298730210271572707207092252264209750337936490514078457048005512498709562051634797021950117154602022413114017788231365074439853359169477796877324869164175961949335916269953774988752472654647920243475329356593845335553255575943126620518586593053618183758586306519908464304195107168070384984931889103649996614294607334554396847406835490903950563224835151671802366882222078061228290009246432434921156928482448055040369442067288028120568138707837565101700356464560160444852346603823481786246979584981706345831493990327335254445768365923939679129486801055080652177086101051345899787509415161621854937213353506171452544979585078505938579506744780326842260819198942773139194516955102250234658050195859343927614522687347763394344059106527711667547405917824730499028006859749940579849908816450369334972923115000880573006906674667236534788148814700918195818149141088561502500813048587620362883642434201173217014516553372574563227753346162785571352592170394623022471920728869673511157052560774815949897556966414885847807176407360952553610253211398891035900822117114646243569012277727496571705674753726154101852183125147401736708314516006884997385673372909821586562378614352402851996619218561665358541680526248336183610443052684907900488561211401954654037303424431988779713538103897756014182704898444231468630313862025427660952777893659698481854994266306592935664666433714975687268110789160733622525729987922615006447309951678923000993799005742338366569076235592260151192468836351427946931019003800913803466550703624300592201682515317236128564744947110466993167730875916509384482273012380195590762415573268845766460916996520480192346534837220228609916408154217805105242051577466323519889691861514589397420421036771153835856366343913055355753195232397037834539616140842047430728562447526230999054402155033079690805412688471823089691314160590303320775517334103345035252058624340270935254455257883420045399739338963509132505002211021946897859559611566827528265832185638822170157869596047685700697351306461220319479863378782053830340086298237925077215422961678037835202371833224114903412821600053903563250350347091739029533747068015606819998639482568823621232538564528216571197088078375445557831139998017757011438357341051703720274292555456794587356307689335506874117412878909855804338200227273043419942263256492237513372713475035366033949197373009492322892675099561843640696854400156112014816176396009436216639402497980625838131695347543770481024970916171745198094561455370521949306773540322413102944904988585242687168595905480383831394765333116141200415449730133973507811158673879311185388259867541492133985269420627069694657263191094767006047075175554980127939223945126728630707001028681146380186103389661456230750533680384442119586705206566874812450882175806578614502878374139269060228796958743631094614448871474116499482154551833320589743688941950192541352312274971929112575962867816879721762842382493233884360925017853660848745537544729885889199909255096356988299637670246439565482835489439217786700673620770636471036282408668123415914325591876226606858377519975904626083577601528055266420025452828659215927999427553297776097772332967271036074987476142888040805226834750905680052615527207702239652853238352794731873322893932830875127698149283399294942993638820029521398574609002312053135283559311676300730297574422807539600193869047037767147802435819766830433397842370571912386088709869075904477808149688815931315333657580756211071703228345448049113414108343608764632486796094247563198795951532160069413269333918980030280652069053935155970209329430815919375619836758923563223871155212919359550030175327949506039692898923139414136491493830327956417034859320923283273484857516936107719452488626745524273558035189716713489254525910102082327016158600552076956978721720611593989615803382314832973419561494968061737927567606547460117233559341164941505813420053596187591649326182488174843644008497025176161587988616398757260628780535448602458468833419365711552320687838760228569876168739620225246170358422843422172531910799439889013873122489833865610291489616884077302863830483307443246740932369482271835595743552578124167149497176089891694916768273825082792780743130171634666856592248956916990110621887148999974815651463779783847803420453924752439778655459045177545245979486965497999422434148023776107956651734546046314362385055779651602588931152077297738749092664204131237427000726906540955780433053112574297909993570564855526714048848529243291155310284372167452024832001805970514363601808454743679290988729678093890753505527122116674606119333564190615350856255319041911142621133462307129715768964910843467593623839873909208750377264522057514471423789615719512537581979891997170175867383386427419685342908449161477665680356139650232969355834118358843437380147933369463637778169920287057422128438841826016747275773396500476257915399392349240836281774810634318069941840547510077322561830022265307848730303849387349894248362578978798464409376426567104717517400100096677181913096332365596695802277844257089366213745478613998046043772956397123084476183816523295513623407336506885915110639946058086391177601237676293491612758601595341497646285139945215132950021596568061608662291878669361953558837522829292661041600878507388920831019415131546600486051258373613769614952734650797696343571988216237312021195029833968974513839388538393437638931319693092563454070926840356141801240851789562889624514073799923539827506808873624692610516316674855386829430809892812648325946010242351264704542027147006598177155337093244256252667701341843822768159432766966404571005115065816505507127734321331817753234121839065564655769189290452426500984190476844808807856621765998470299752973605862185682541359157321864687683919058821217152393504288768047217903132371093989382326205917752237237730181631686118970294627480067812944869694571307322382884941447965291077236702782041770244878400635262068743441208046473752445549261644361612373058596407784278016054009573304603535406801766708314964808175090703056577246261361722006126412725632265323717224650755104265343137013351080420362207088501321168624588881996950748625372957404552653479086354633804212374598544202491432906940068290675423517781573054723382930081126781417228156173142541944192190575159144796161499877377525154118117637402506002462529491810241401928051961924311335772684304242625631455165155153355382541358261647112782788978681346906530562579026579311269804779754468729103781177088217353707136994250601270776197350039079012516110273534330947786084255105407242750860365807752444076567596444406508133317049791670828180456974196199709469527454493785060159741135358162799551722126744565198889969393418553159306972876775121720216296969333832914877159619295027232461481086077549427709177627472665519038271568670515782146219594542860309753874571205467184567364399637234232179040454735563783169823630794892996791904218623927455513222358974053095981862457211778390542522311192325172105495240344207737157327987218143006390500822772728650794449174803528986520076801847270218036924065761743158146779146319955399560489181645076193044096491270383993443276448251781722192208088874456374165406845617846299898707610135204156134165769959330464630754536454869864599963595053048249623800483418159156689966129782342251594126857658996591393086159517376730707898513436110044765112544198037336926504341593152753908724579723336393814572837507554213073728726474966112915390552401066997618521732543614888063951093109149263182967957519352964506744018548382556346674731243379145749886819837010485051701086753579060639055657231478972828856296278650847890750135414496798981835386078205540092249626479727943108432770316714100890216409181291773864869668958288147975712426171191439121635526667561116763815712510016511990893192972703989306263396412351336981882116168120702614342161915589918595699632054632222079123111342351141890486679898509117019871178598136475563142767744088671113942516956730726488282143142536903690943972859804356122861905058764190652892249860771105437597407172581030760863486335060571623181000747030001553068889336321718352184428033989345013318543160308915255584832258291996063509998256393034717075246195038263312005286820504683901294675121027567192322101386042774250170188521206855384283271734509195961506700579988905504576582933927840320100955242100935039395989626192548815614725253990738088375167249927836239050521713456130986534763876617921687839097333309769059293824753479020985010593145289909576649483096559686401502345293569179993343087689230290322366841473166263385178459358218789145654454177741759070020094706639027974964357870000912748974085937836086302116872501015278209690051610464365218084861880485416150714847109790794909028778383409558580007581475301300258453282081968021089953133059227252112649012167290648236778541513595629137726778457820035917036197059718688787645960188725503949473729949622385454399417143933664509426818579788779243378545413288613628079231389733922345298039192467687360479955559521578313090610041388920878487725111365138454106064108281868361373210103998557530827732122740467242238662398014812561295990448123802946054657875840023838996320381743384788135441910275524168955089417196950266210855517636926954017253601015525291387706450666082949943572777049447501277596983072629153762344909911024175800272389447789773914560048851114421235291023109881732518392996601334706456212350033940528546930538205010246446650965172374110076718642297700102605424959309358018821183575427458635757753271614072049725337772533070610357159469505339679464365784832122824254189044007803054146167038371441956203363381543120892013860819512234511005085634726883164738329642450163025378481019039286017458332622944816725488483968257405898172207951967616470745490336940574070644804174055344459970613935570197505566274180410833881652607316276204573306377588477546345262658014634160162985063145854433986749246290094769421358129247865627511281658360548230335267938528031092298698632383328075547543499031998100685495914988620001280353301441713142348124878802815389842828072595168727950214898779862970567847833242257345131952110916148451199633699422030967218794041319889541917479311837379795660430919223257761057933914029525927845581675283434274197390372816720393536867297198292183181107949796807903095871552857409503676445308067300351446024259662613139664313047677850495737360317612740832832534756882643592972622796417516591119394517581022667041839363595301497683147320513856331879189747185571759686501823440390930786412051929409717478930961134476004367736195029037650686993370760297418378854422212073391298497808688034656377573701943545461145041939132872393284104879993765885321840271841157359296128725710557576516359377259200741870949150382294383555102904406163971527901022860247203959855810812073055139127844069705227917601406239596004030359027784010608455210270371299669436162176596405008337778214558191830814796236405178088936423256246988497384681194124074246155844420974651789163225759692810237115062477337819669410026282268968680408048969830440160788236510077293486291236370176037705255017077406216046432622019787968838517358349365437420568554098958095896714028754475496554548007563349904739446066770713798779389449352926929400158342206434950067361511748050702910071448253728715532296514296907101464211455531217005777077878817443750273035398273771120847315244466972094332320352124091644632469349936381429733102517948620049402869479702595543149642255023860980916771577182455263097178074629050561576728368876447605064509872884391584676509121368973484238363238102455730617376771075292174883216017099713368685723646891785743003241921901002326857734143302083360907831774690705840515069152909605352194820280325370444036285360477921242885853403114428923414732842872014698349959317694060010371507431861592434150071386284557510339442953712927527765614022280745193940982631817806328549472439749347235039354117596617121297649982872256263467678478091438846628337829167489613055730093206391117499577563980717797285513925077321210493047934672354149833546426649512207705535462638433216113996420638036015992858662356899117337012680061971489054958772445475650965601649392980192081335410352780392206322000292287906146983522086257662385879484344248549305977553233630843769153623909747781897782848208959760684230868128126231824484232490420728712466787602995103858976615612700175463824846604425308630438811101567868739694452194763167203089434339742589339890881252831298319317943489447730070890885236440518650209132376933073308813718469756588859451684240062414445307039598798199608225596690187570270219577067864922713694697609442311937307772289916331108586249822690765490468625139975386492643167647689273420129713899530360246542826998333002813056862999707606967201622249209509648418045412388509354244475838585323235337581543336513967405156339225898557012721862855017437009356547369525329939905998081563538367493232026567626793204139033122432657518265443121918483148942626549103461085862830999629084098440834502528925879354783147564359154071103969476205905212490142991879458675134798044092280309010521463681368446920288161244137337846483888684590509281328902973304444742365016830676070496729625677452906179413414384447079720274412837677715479762512824950066107138742107369581576186276725676300973064516382000930169011036887671601813188279187521142155007155041333118286599533274154990661377610992864457284257861160784353614274577335968193809148104398493433274724927325940526821938067029643130808229564276305529579683784071396329833173545208271902090507453130945020651138346399184693802344188817158931979680100721006597870488973239558365718124754341153220695144206404924053942300850549858666486356163328973948909835540546852974819682463096015567029086243109593944738802683116284174094319834699812233062981144826241201585773215052856713063767798620991672693254111773092252320640398693530926818751280797944659956660279475746096619358083450667830040738208027408609617782045825386479025970047642521252079776759815264742025632843916387292970635231454666763105974243456228404195707310570374643786244057127143161090896974537045937945715544066602179865118313362423510860063258836384866368657030011842781030890090615335968068147833919171234923384403385678127462406407095011738959309406659684733793749582411802635267201557145512702336203944326072126689271994478865810499690017654034668647994171932239753361638839774319553342458495675332523155769933962212248611855101051257974619802583336155797818922943695470337264080737564408688467108736904874008764151770932555689128853366305230240065081463476574783558239128904908562876314141490328050355720674182416891747447409258390750843754439058507417871592701155208008198196419814594185538351516524267996176215365663921341009536243100250879038696182371062906411561358011137347955635960703304677682525668564212382453647738994587826620215432858393337091848749147224915469065357826976457584602050930089885553082151421316661523713136148586248618901290380374684342530477549621821054877775882122799218974279570784450769575794632593695719349980816159499117619884002603930475944779561733391155876996185054893678330957329357524242290612365115191415507915629083054173268469945149750283332562228615706133763582980948424216887020243291659336424672082680959055202948748210294906805159340495526780799725063236157800896332538469646614758488243400882020201895846397278471495483161680834300938697481329434355711569947518234938663763001708073608852634743984196608856245498712647545871075704306274286171458064722610339482076010193426345100676046853848450431579625820358893931282844066333419839452552082329532690617582513123358928553596811253821247761557852703409546606856572080537464603646547543034672082581518423966370461373769112708271829882769923401220207037197146758793877650057021119895251488548296218994666114792315841748829612813961558676606224670927627804777914887044876897172062378996235718274910720561538623965847557521382622910722778597622974612032775506713160742526710594500191578538617238296750503147209936133704656260684655577309393056816266526314383627502412322206080319940638586434095423800657730394883106179866851007458317362249755506803466607303683289527242201545886945500840181546456362129093898155640369288047431710558061446871504238481495109502780809656784065862422298607259096986538400045056092649309974888169213298722109018457973764464344603114836388617847423752308722051899979748231649660027206254960280576865577231718753365060479057044248950419439787927579956613968724055530367601298882021788947072861467823308982732160027544961016740521859925496861216184264182876738091830589992542145224939953186204097060451733011732755794696834487295910107570527443218050956038493002948041135900759293112257193223901202367051032682618382886389911481138808836830986027106155840745731127367811971679982175026490369910100858280193673747076875426106265451191970615123119653975323795871570135216736419603598022767223790930495393099488476572818064127738657390581905221091755231650458890910748604840801949793979822711773283507789511702175708361302289883797827194602209092505718418569085541512270473592718443474143834327132294090578269329910598257583798267114845541368191825508552131587852262493916025761820580435128237798358380803826402072140904648520393897546218994291310945813935040124286676252574782266428889010202675952844484562326333801789864874788482648252506740425298385790903136623747413747768709560670517770034722650038601768613497994675814464880555761215061959627608019345034649324541915228852049087323015132464482372500812413056621273918491987104331537471147956832038809390112442980473527503426824458429392150595969481078296730136429886989359161112283875032907750853158356448214060560098708104363030241954132396660250703586188694478137011570816828875697320603348464170666639929124916973259536111231906398242758211855270806290421330401276892591762084514294673229536203626720468488421235282434471387348017527905116585139333866880893840712444088864572506611666428368318143957304181403049880122222881332457329642671555961845131404674755309773932778701364930301326338684599661228387301791541966740115012076749836296708153923495997606293793446474444302132433055225604051596587529475082174458741686846010677979904555827621031731823362460858338819394527893551713194922452316905255485526495069100749972206536834777685177616962665876556470224630628324826011736167219712679028238213248045075910409708000854637995952163121220544832047137943028537858052841606136497598172936490090959106410530973266114939907255574667348671395499844237585341259572970571593600138892805951207207829834688285611646458301409574611846710902519215981126723213306721277843768974388900074405647400496441876822454590007935572941904190316426679100098395939164222116890617943197934399290490173898102229021093516150979492882168233916397573790173455066728424158329968711765158042332506322663851040990262321529738663454266688376767693481183299482599353768825337250880053777371695035365948063874350701096865978516563384031288958078539820841033109498200012861657736423682150563036779059186084101494671611607290939024077722666107963939423759281833534154723461990558545090796708383228447545912223823284174897973452726208859426457150340394834833612634847393514202839351893196339943448561884158437846408244760128627707942650011020092664751509130558373415741041547590860197562351477464444448952502465097848103663437295507227276007420120083995712167676949735819959146695545840483432537449281373472803058743486306378890934167119499245991989820369032818160270865205156819238564041502821299639939322200599418245670308856953184342654561571253371847852550621298569033926260315322992072904961001980917210186112015548673073614126303559098909391443890874325332257096144170549344993550262087042451830351939851155212452366392367861662479374115808757167565759585975367039118806277024161753484176242150863306096398150892494719031563527770958249940675833389011247500071766549523370796917350009087105537865662168850960210513342321424833772269927525239363643278179818966523132237894802767689913385690500331071356381997583506443449909990589090586372437486799056622949707974997208738315605078348514151094026284600512151675217673242435283238080124321941928096227597144720389285230399524486903692857286571055771453665449356761223602233413863371894236979826234805878131322005455761012045661096918832487862790118065854185766995070133176713371342959125045844169179789536348696843037856337095092064045259975668999203656782966866687816110860817425789524834739246388536880408163593705781068356189587117534965031815058679701585579354457809105474556017814203020275319036441787993068298384718140152687788376719784305144065880112382159045393547207628164204908189559871442795657897524431840255512018729970550378438996761436436865959282401634647372072333981044320798325093178036371135326815984431412872561343955627166204485349724443366135791676028637831865668985483212954565741274617637242057713162959540389180056674974152664794082441884519269835508227453554498689268367218858223344306641283371440976081882375617681580573785570091631100592311556878598428940836841892895199735345609501635391828084501495431878960254001119549706399710874197296586945255361383999209245306836795307541934599591034235338528859749157314879227215571659048070653737976156585021351453327282628261480273785320646940120618862917522294159208439810681524032706803310495210531226072580279522737584312096625694733838396796803818000588193741839338729954969073542856838074006480385848065449617250777578062281225509932517168098740163824211465869547350094586509660253521261254116488921681174329507006678693892954322677424108279745116835902387033463737805777445759569059823029413644633056748772746294770732396421425010660477161034380666037860858619846347951090447716503620441021714773750348296946654645536118472599927394530837744406054471442065563003798885197555846171189204748991640288109666707668956218544419124255363728994682598437474702148465399050122684147974669842506849193634628903719226141920648525267627239849199975244631686836879489438077462059943262234153604594998311914616001310176276780214069736301592335767260449145866231618764122342187206849189926938020992517223204511437122014590269413955898152463339570255044606788587611711039314483289325389042771524381639848539473258199812793704760278100650809426823558834193457217835207183123068421383879723353800801944469668264091708104979184728765378073345776875642936657578257653452328035900178593015430633764075800207627992714133375396770515581033489296483469992489182674223296977393422941560940183028018269034383653776703630843804996295038981360509622412278604517223630645499573919400119089824944414843092854237706081101127700420767675838413073543531985377483783768607962124861534450872798458820088694152112239791187894456140066860009798593388928242909918964165490267071391381233347199668004298751303415873567854520586986227740041001561869637342608562272278627751715352931999443967020439926979616122093901793569152285569845458618480370430480376754225941761454649960047398096425525106385753373589600711309064120590301069770236290238676158425690392364782836080546879962096234278730997386820353575537578240798589515386862889823420988412680201216945810207609721976695167715541445296746782375257606992777344158190172714441703671964507178320436364929374188676632091546713697575380361170735498961346345438421739618863164475587522951753083370074591381776819769399906481876993370333971557671989909213917728658211662396654401776094843042910754512615433717501087492474361485059910677062835427237730368081585765358092650552964847260277177209992897238636896889001413007475526159283444186052061618692536276011961258869544705182696802153732152899451096459489468496432099436679101227849582967555135152476463647160647891103918776899805128451278892066683955467332585572769962862918286878488254622755625933954212054546493979703813282209826207755318518088673234910254715093691969815282930463104402864085219898120814447198571468695139544981300264574252425432870356721709753790266024480288950171275428445413248671640018367016998855401083716821471497115570321070659876494895896823342555301841577370977947812823217117499772368358085834917122771450907199870948944043517715808245913453263203338935702014128422181452053398904843878486028303968296593747731240005802002359176934578083821076389605800813074690223848611841410472293461494899775069734953037257828611799110306986844878555112489466952295804968993147160292515177358157167367997055696344118811306310503146871706253378804568596593069319609006621807042643452100555455728340956733532789499745727521893225271092869825360067787276346876330231781518893673232908568054679727807216636373383273298831623776387602063876562450870694889945217798232575496919523188703161018756226528623654935416578165140825330959853729418573390971727410272620293738021544312375343809891951284080545286361797503594538611507498012385238372835101421815706065221595274419317372950870402339085707144362566128581604849493883884251573612960011866086766474226815953188011048241455255955922771004345085806029066473119428034173445576077810335263489200031407191399778707393619400836969018945363732164862793229865219713835910829115654202773591164535948122657962844165855493969172820459227542500254223655083920990907928966787224415652309009667804368806314671507653353619375190243986029575861564176868221667206997939687672136097252920004286396339092177115124209706492829035978759303201038715946801610718976107810042963381569082223807944036393712080388587509175708882244386787715780128494172426402846255139439518886872374148323592291179890225817432463435635635711885777224358845799379064908733138978085527770917953421868478424603359804696535161920052690235824508056935943525186540670260338595520079930710654878595185820848382102211118709842989127761229316116344711408001692947116722754986073397189819963250168774658164332890572421084781448469916808665705948188232732719103434560400052335767695821574807903286420100603536005124836873121993678812653807464061831427662582680486374042868784144318843111860527177085372523320557810595416593739636297688993686355778380070019030736288679927183520498350377651496467747887581593114104716522403129319496999586101432688804770942624871417126717913645268166705767612421040072073335530131809624288835279977369054507021010356557684902393562032187711058696394199013217707779647161261999152088279700197052962260576176800642600298744465146599108525178993578115440096310117566958091969262112113453058966966460617402467812691270987140526324555034138132500495379512775501996191790256523930389335609833113841836483400499728077467503858487265228014084914342581649627364736788414604596337407891381436445294292372821117502578922998198908345037177925356223580446714273840789042967166779090321750804165709468404752850641522113688418427669319281550149425365133322100184113726429319020905558533215948400424740270343740122226138853146943842988973017738281413892637774080367723678445985209147429012544230378228545140796144268733782782925745716454638659791705424212879149397519671795169530333684074017440633725315877818728866519024375015112329361120991096301815927446282339831441348600287781151122617992687292388634876926366354671998559278512408556528344649029530679835510634768161319606747218704296040409016596242248842061671989827829194621401503471729353928693083084174669765133779022545946419142763039875302004205532489465642012696988307589836869050702302184517645892683618063255894419967149466532234382043033658314340746697858869920185520742594297924717536809915584451520213825414813811910135983832929428713723457590467273154647114692896332970947820706025124877351653450515766936167301579500911906981821097464887878421078127693936382338992917552557753968077580798743893402765716078410170486345593423889633117370480254824507132809844427951423959693396478143179795181714944658696593545803994138386098628688657616487461526546524439637778691334976757155665923576988788957852711387737415123305637273104093603505110271476771928347956088921587732711362124938443998285346683643556980457932084248598367787452322665184062963504645606241654144543693834462202156142568538014085457877654693275248560342889798226351087623091155916424049720528492846693110010200591799563532372684100324154174272665998873541569053388605823858227520580294072354858546264123536202138122905020222274223575739006123704635646069328764824371315127480091596920387523551858514661244341434718537045622339762718898252930678100987141322744235612335498117545754377862697871248782125215966321262362549339582941851436383859938812262598130555862256710890435047133884081829846272488454762101404565288421145901587989692140683830737308954030635659237440776468989764471192676052393865788080005899609103595285953630358857444510339458983046458769769817671499266070123564782028658965692464236167380725819940106749901199607448964045696678050710948553763941762068275870585147266938236908461503078612690960820775268844180421104303593633136689156314971917257065119929647064060628923349040492723589703745780226514279631256042063919156917586770275093236030806004836578242771643729380542589829743586022745698848686505039318561033458144118893040731710490820618392284230591214555494841827004625803793453710707156085011941271220365318430914880172758795957988888770662897872118298675304520124740486144255522309329379017909089652280990898098765416799495635846371393075347125245962836013876457138395754397181823991052264164698911482818603834573849208999369100643342954902840484428691823982180373542120770216245343382183903123677698432868411019771892919496313815162015973421015075972243445066072935046372508145735460760289745861111892033704175789747018527608031267112322368607801319381677670748236626498854351366649559082456443323766918789210729748513079291789982927606720560850476746419709132557779730415175677320580260301181258469329881944546820844010913423585769640835596039284258766026492468656015438009823316608923531346000325411713681195581895680455488397468631434641507774975759338517359126031989437303838883423222273555292967652655313197095039480976493902472577460036087467678520431350942616252577705348789202733697643091627649864516602209286469838824472152008419841191598262200693868219809497710043076243037772166503413371075126139595094896560396192691250993370173095865654931569973370336513361202241104395538649853446969016962686702062934464147378605052234655632580497199753775425161746856993423017528470231943269917192558670319077284054661923680779127515067473160957605617087095145826647382151210912658157619926709677106891559258396085492372862723827731425266251912616471959568155355693884282166558432109115604762322652918384965332231075357349150232503937920208940761493876991268067639299073422234006105148846029540903057991097293986970582977607753881146493439875282112636978256090909181634564901361911663639623569872038483715079280823065673619460593042169400293540988404792730580905623338320232339333536601540890871019727833218433282751384841307726493448600817781055024569659152352256651718731324905992339498779909111508056086600968736583367739880173411959413973218951251679942692740353809625762633519682006586472251625795059915058164951807967395559260368107887998262196264653614381095513627537535732404764450695660213210098830935113801784516220983371565913948760233057921732521628240293038452704505559276362067943400285169296523867345027737771362037564746124623957164928524100548795724980880914086911101894164304159964828970716824648367000093839188234651280030604365348776415292254289833601791145785598308392989461955331467927348630674322867997801296969418823130175645976624092518442151464044393240924260041930007860349018204454635342690979076205625277848240156859052621803075671878330826145194680110693311069107580723583660217096226780111788646783351049119525333218580027430152741517578193014170165545966888261344115391973255493583766273600781505770659885682583478412490954676765489881180033010514583046750444661061150403184245893255681568480902029235007061411679578522606551857571891638956657247896242167200219624558113860496604748842485554350566769832377253985257099111640302034736205918086324116968811788252822227892806222748544665674328925371048896739006373795926110984965263873961180702724850253008933967046244133730397578422002333314245012839386446873305060157062403198701961099957127503968318929084215368959090702507610037274569799791222839235973829467139776173920901473275274440303719080418792408960350232064972358684168712375971878275738482010137684305453913143606531205887987213070779991763231843488780732651735003839794858913513487306775196890016613295409201907756931587187541664747825906406082915121975229427207521380133128636041770623501996667873502297398802249733882233862290169777627085692105668976168671783586083580257026748911984588914292332936522813172101317175242963059419637615473004933417328814060067381418814529896181520265145912243450394643062459285998195929790737284748381219263795020518845822796278447737234493949964851721010756555116980251259401948112649174150399361140441598622204341018123985095608611573179896778627111595691858475147855742763920964431715968363064958400761323834393803861409147657566781059749755049858355861062379020162724426848447223672062230370072674581359254823426257114155380579807709702440853547847760598188583404360020227740741484862363507495273850717947184901761849458131000184922347055319870951011987123224949636798986008751627717730137173685311458216219677856210004274663706826879451242864814206866762806010439902679147310567638183937385255682832163274781046769645434691420719783152302373455596630797382340084683601614491969927446646550871436648953982568393671384955268943618421597578291474465188158283584803445970127416126340528115053798909992211483143775665641492848210000397991957500573533184895095828306336428187603789131516868529274853530080005599181833986761930203822622321787757803946771053657182519168683115980089932217009651950870696371345792284713868615448752175916139166786249688916762511965387015168475281047600041976378133554931180819662281415483919923936624931302173732569591606737640959637932219258555232962066156609864708969963327641052144177710963197139458290729479130820945896702922112335060900462123497996150439979171546211915540044717099204154189120526062714879031145198700149632272626958984716632763548109075322748274499156541334493339098496543098334173048041832813009328689398698081745419562218024035896142460305990067090575081308912634767977793885576120735142692868262008468134000152804460149899150404827386692036813655236060954055435442109808879775069500379372570540175260661414122068189000836855462025691354155487672745315364919381999610752352716080432836668939660091749279676852045779441982367041498132135883490427468174451098536462787422804489386247138798409640647909213893265996208861413587950809418912973109415184514131052622189731417627816932968103325910028823531154277921169322358404954049434686914002147388035325732795780271297600166761041956978553413855065510055991224206398314631706023658028122602621971681717868587954463434247418295519186418040422632141372822835574762690454044889279665872408100951002266878036293485939482791626643414639331182030707961936727468029544680045073963913641140369191318510217782346696539839162993339237257698828338075284028580088626119441898063224739244243618731109955964249861543128928112839385730044314756014260765705877786702007949328857540384843488148942411758703985920296546629044990218890304265853683096760971639985523768277962779378432300503189589279166103431453044486832453504439116669406198215921360533418387143869179327868476039293429139603183600777662437677390496466223770458259756302266498571692560737497072834718705121960155768595272209050811768947833180382330942228669610111483105779867439864341680244200754949433606785461415189353713927240762205389149748227731966997213331473119690233412532840220361004993967922020633669845436302668286692308092061399309074588309390859799913595441675842314536209896216772420056164999845872743228092610894476972215952647397862974186634781495504399695451993237731739501658763899680978171743640331797014968835368925120846562075309920841981426019942780704632495900802099458567003188963969913794476355559509496116101050629495449221509850236893787744115177892702790633822323699730558507096724499412777029323109461789860064317181483959037558979533013030853230985929869865733228333176084037765306893661995078575942355414072943696986271359190751324757309903309674789878486693840205017451458039678793129477781306276395033347104371704602846959881434855516274284426393222642724009771358693608556556569925351700749492210167611696780305662760435460614939835528178722772924227520496810072605847367771993499589005238491954608720502992881609491268782712905308154598373491854988376287539904513002463790285659120033653768090540193854252238328018464808171842157473961779656353292477795262116575907526756898554328803576817329119051090922900465677691323552785548411363713686508049645213601769813619159663452804586341956503973453595469058324840540071353429199283612002496094704677880873820678256583125914548603127937930948102188763962068299264406296562848601865315092794786044013946241392283581910341767942650870209225661538269652102761325784545509022396849973886675619143410104539822991797026383408863662355010886784958208269756786707854204035245602841838293993127352878238053239481186228475229331096398591335286721007857036369792296078725553899519008518014379570297136047446258032054955382387731449082325847883766789090906528193118495199705050032497332147577209158759701732142747788076322718857904376839814532695975197590749672339363997614310013950735146471956940968888642993642722803891601394823392374417227001368816484027349309567629099136936968013906243795130464193124477689790369448563266767958257615310608156868833282070030106027024246772007466579623402264177471905177416205695014810265778030296544804585496475108982537358329830348373253809121435410860548720656225712407499877847302685593719226038469035432222476719019159690016460544598896883665917838330055544496651723423169906055565363589505634671854532180330098285099162458430320575651176275347986047401114876820536353839402718157179172078621804710894783273760815239737905216257991415199065141445147197594200664014439520636646327212961226413485049539676626226778276759099430082034279953665682650358183775325447121379493530943411538436669545785241265906337503319532931077446920443274970555924872691038684075163707371390088818936690210837885677147731567582246799935108678487828816231486237078682269969191351533706306477535795494468647295731943136110744093417486148891603077804678221821086056195242860891515351341687377222424557424752469835079653169024583906172976539673850568030326135296571194846847927807603599006049241093238757213605663339202307269019481742815137296357759532158411956236693690828456230955326781099544502159231181214918925382364012369582967510420723533767565651003370927053930580561570650915861429874693358666927253848415895085396494111740383990585037569952070885939823486715583651636289235423711572941219243947607893300106255834866609327358495630415768884045241756080228643679797929281444608946567915830198771217968032520583712783813243423935864010584500276696686280758028216697959421612025952928762270340949462038719028964161767018005509894440761427877165497550965917488212050624239996959784275966368479222011579122295599301086227938426274316291984473381625925014353482046741983712690539885734186049823041370711312252507058477414443955252499567527867940452934362694134967259138630685038495803123080887940149911556156784003416312518526034230986590476658332786460121396892007308695326138482588998990252034303816901818917005324190571874946968658444260178083687851022068516746670300366222664596691248092772710265750759283236587402140564412783143812481032124290799642103393249229800038204110219357674103287804906794633896466020889074919231900793350053842393568416119694437302723075048018180994931060447302768704471198189542962136442866560419801668778230714695091064252219674387566882906603120005648261816064104894802235816402682695171387179655419632289147147156899681059103370798447140176163746984432409213149001850061085602626688768962579882531986915007971715725516377081478163001992783022197025087650136567514760612072054182467993865285701937532374865216271025372420695377865314428575226062465424768191133192195648726426023154241105418004180876011594808371437730058399034243766049637856357648107247971235209820424362291666106700547143881976998355877982277607593525053775410517672673210381021064233275988966894358413257959535558345501050858142807879188640120990829711333749041615623197590784343833369179681030703458732726077079283898145307573075172040871496524213033501854195175022135004379808345221395329428633888553559552014972356821735464220374929533277649822450566997446093321397076548904125841187038162745372013498898738745375226155983118092289306575596747906034207674501935718174679980620449433466252943456128625729553521122691792773762968726658696206603988870552185623346968876829308313903468019242822038229975150448200028960503339960392798762732673892696562867279611791085085029652349336002500369558659044627827236402020437619958270860155697612234187811504527188847937560067178974521878928184234748171936808147392219775121714293143205339173429267193595712341149388736626869035780918157641814204740624004287842494073517733951433326160151376738187266081700521657767327519084657177120275028953016158985349404613955390714878829957477464164007589434131512623703384066189644366361244938704960776980716334579579244109414766721327552846256846281058302455371394099733522295869209165140340442070582692262636455775456067388554243956069237402434731144947161419070557818920171192390218369310613307615090629998483797001026499166327163146530365705233362988469960882906956244414199418199323816577156105993813573994273455320021163365780306386521458615261121031958082525117506771701291587510571205720531805518580301183319427960151255259902898736027605840810509827154634998500569174409212835476669670131983302839910289228403015284495856858832291678508294688957742324783300775169193395273028820174021643984801352416830240553702813602702504918145403557400566838128360343928691035080104347495947554520048503142613537829877724266912590975884357515491785766968226676910378869945339708596263696849654769365593804156346761427819816963114994479883891290086379268454838283792527130342461857005797903087275513287128216720390193008009101646048745125423523899851809058079193901384100922343630061402299972740279716885572066379914101223679273591858268201055848002464556235771352976547849985499583603574821095720968748685960401610613705174033280290872300339878229949017218287240528016180236171796346541783191089312033493292300115129115988524120890361835918655146930600669169159559452313077525197302181993921248954081994508328198707999416743829230364232643814041918457815770403354311745645259928396229812711608776477482445592457053863359517220691421133063468405718312335775454490241209144540982142984436977989826291150164591954874950087565119237924913971055492215051943635494472418302932609635491915325201162676766353117030701958771286878253005206092999228412223677650896054893663436895338874803574413498299051620761039810394217841976226175035627697602752501560518750705204202899206099384542070626939499335339893875131147362180817750217635033357737685437240807440998941439096296132375253558016345291581431822131274910892262157080695530566711229976390015965191904215291348879177385171052128286372247964278081132091700292585295509023566003812263333005074847734932715481641382595878502021869524820282403097780236904825004762495167062567574441687338057505204616669092904991759635636366759224533222402942674976688924328313756981395029071744870454587174650980081634581853068282799271703032428314703236943311929865478288093321895857191681553098014889948377504625204620006804781533455577724865092102539818799889721542891336078596909111858830878862312215504098389796351298124305078462109425938414135307513829098300813880256691515947865728368499526226051681636105734842700800265447218567951763692979855570644618289987089178200516188246389411301446127897938700306856562975028983859004404358729358465884085518788227808220250918139140757840694967629152191897341362623404724720962055081953926762634943242764795837250475628560371097669662661058995664074828781573730753469978687973605175068154219285548690425920780148455285151106217972223136161494519694511855497518995399009277210615063111948945908562189060623694305451156393440397412020379229269135193863558760986463703898495607676856640095322095214708533019395350519096169382003068496997221150436742415048959748708241417946111023446793664520654111970051506973352174263415122950964013086099225303885745074541330445132101621778472819154542111302034202535684542199586170217471511816848474280316053172297358116806567721938272706232124681902418220296720977378041640450996824064865289254309050495738405692731692390519214761016490744658692460791857292917811361464947234369463780245239411560308998994494744442283822739609617139303201609119875148797603307263758789665331549864345765323459283246152551030602716625548204916506998447088629297455817326313341359761622864398785032337119751521482708529577782432896643707271881908748484715698475701745631675955883157667179564382609543466950199452023048730357920916753981996395085152498808341339494444005226326761627612348502121280206417130414558492045707282012779374924918957538578615625811139910807438022461646401345964380837765833797952307513417334030782770440177019570308274766298874201436529352213653411019930533143095679155721926924357477771025154620213775714984531215833197338953360723749763410429745374712971442717988933395382337286571454535157366168051028023238712113702318544879418098257207119085689907929715266753006078806504523912824922135233887943880356082134946059239278647539259850118428703277870864204584539094683468619015617970612156198769727182064066599519499725038495614357762036425491514091098804196244354653022334616272771212851037070467200507025544853301192212726964708924662273585187446159047152292729263738462383062538037655795507021698412768646914519908469554773404337127335032918618647737801992803541610122814763721858914194476811388947395062066120846402682644728511850040535306310988710035746864894768346691898850681421761193172615110553590757294103666484166651376962236798651301183478731641946624584743076841398617556895514337126393687985832724256035418272379028354010134202361701640922961619384753552928085832394636300622861463157679427280637333003654710925844199714466741013673161728910989525896169243917133440633508531514176178578878779379958385264883203368237673629070356575223127654811888375904298260903695176751624409246035415544824020712260652350062807453546508415598241350239765004348608341356189356570196335360604629718160514203301279390664923236372329925918461465752501308707897267824399779500241350841209028901907845254466009086610845963797350450183650507281269849515391532596266733693839881409982249729210361075171436961382332086801004364131856732080812489478646522216478031847411809746071665585253318257846147016431982868986155809784650895811640523031155757716115584546546094654645116958296379532361091428265783741366717065222845906350155217059199725949719310249588936647983051622854808559665661214863355410980407165979568705361780564708628104758796787177464700137848258541270829156045886741787662920565885985513034296493782932991006365982774901733009874095434019197350239961474514269387567652107545935581929276567952734756585021952705120356663363489029560074591206357422104668897643378131551015045605831028939064614862679026004248710260818509083624270763039207244214781813766829274509151889111014408388168988104538037182618541305854012968877369172236908751165712724232969658638267210615994978821542655608143949733875943631001835552306555173345833159491757611349473102063387354010511781556399975729885152490872499406992933371791044213687992530428499060586644766220803022836965902803122413155712363227958876460534308689018232791221310316292222155150495159056750555891223421893100476975108638404064540606831985315037100879411473309405188075236610781907209085904603144140055101330191053776782338918129315617255381218024973518864290302049627319332137679884071215836185059525968620939786099640000425697162824519338327452773660851185031538709292823634947782424286802078406617344810496321963744170114763543262363094531230836187589715894738491789474551690303542177052760339339198486669931037013076877749139415470019949998828274412291639461131415896903041027651784999083620059988702570478041683996748869152733445603458440960533344856554563493933101399166055363616309070721134040224079739923352529227330625439381701989987130050353189963961215945475892225934032411754121191971731350557893482466147051393521543242207723445399239672954908545086577057822538775723970129239928569677529304705210793653449053285815728682064611885524252304232027258323970880862530465428777993363627302349528398391364379316359578322317675297653119624102279244056482981404948127742985267295347677284857676660076988696076228729118658970016966957279679109461324255915201558215000314383319410515946690327373960682437718057911005051987636945336866907832903144572659666962714430029555858349926590505983998598894517144397725140870301869637856758829300380866074230108561338043823335283993001799146672324508748487240935139496866987317629966534159537462960756829766154931770052765363010200504557815345918205678116394300447543154947685602046643256894877515404335011408466783022235374337694300598404078271726706968653311943175018415504488145670956817620810138710153109733327117840670692834281910351084232317177192913699338227917529948057862214853597651372717985155130896906373160370415062957288094382938765522715707430224022299209382892191931060928764977522963628892072657396453434956803441761654742225379199196185441648895123538664592112052028784751297620744817879704554321594149362755105715851338396392775081910310352728260109234572660489100267053693933579825126855431709117844945668410485813547487604331851193168426710715907450778172572830006993346753500719856979256340462812106822573776665700409536398422813699531752065151347638348997197259355765248050839206219210788319905309308570039732091921169484738832893322480777570581951674411187790635299104681319973475812883490389025283758212482539791007561631411920598893072790463591508135417867144919913192856836770186657369645254351705375860024986225364681894500815100684693492453383505528767811151538020004872590880672981223162372617153751984996579585129331166711020810874113300946951857621560249709401151243047853079092556205340582291024130705433593335858589154841292652824805102484923004849411599792111159650057872669170866135430405869055066344139213058588788661777645854435204595426567720333624413500528955171773091525746500684656710330905796181855493855352312876461758377619533714291191380813291439212235227053691770326986958605734664218135278302167679742275076449131823713244374106853503423865273492542633952283948748697448322753860162848067841533784808519249674915279835495462252870957879801160588683273054856344164144011754947716385439607849763527744462245068229006469886239270250006009417181941480531066694619960424509450028000601688705023845344562562404366770374922661845901098401875312219562484746781598528015433268424953686626661991555790084844729915702359502999906431253480407240936324100980835833083754499864025818103063533383814482180403545300067208996042605710808330928781123590924891623343618684336792530831808337598290169985004280832726992794723193819049079427932679994880944911617034163638949468413849163194710318734498253430737296058272943750552382755602622045056187697729539656512112042119047222662281545376930037139917708143942529644537017495309315627654818498437358731096891105611307753740648892200386894290207251655216158275068420154737427948757131164927615151724416249710534359426506689823111378850198603603772246086996677115950483339299813868675009985554806064673413338743603137956406376464476900306824490437034442204535800969945935793516939037684551561666224969730837675233440351345981203633123237257794305848187764895264380205414178488367491149785348198540106337354563389561958212775261801921435979876248979088954658831900301522110247495412097122064272471481244734845658303717686730605589074401559971439781990408572005994140651498457416408472736389456125596492790446706844274800851493604816405497310869181782167653544594348593496971383801735698477688600733161399213744127715006470902119877195482702563030100779614415363545961538752373631578562985737361388173497709019912591786677641153536836041660967468534102267549293930833092880455200749925487531600569116436942002635385145203227784734339349548435290408782973285539335663278596450364903716938802986842258489409925626998201960473243789167030096807100027929207526024568509478978936250703580425887771077331757682161913425921735022614605071438740982960240933648229163350925515583836911313305963609240402097670325178082376478532279569750058443563520210346813615681997112335129724659715400609386315700957976054121717170342321028875490693267369939650684031928900085421881325289630562888544707051871155576338304798733341501849072656887495511002909300902611893401324269591858334987237024845276055142057977173635959418573228923165280362836900961931170489087592724061228071821926162758142127016726740262762545706106641781461727951606925681928353041812623210232849111064233807717815481086017762114043091426408107354778332908616855893582126281103221887686102890007916720709402601386496360139484388983727272276589619456846004798858258204881680343696613802117855260075817004169133336848411206535183013905809610985961807681301074232152945301084507273831223537563805724205899990790583530100875596042888618401601676477106618391668758158534233532791043468836281115942047629965121864810228716969380710391428969811778388896067185596806858727108037856376845510099886673697784288205879937960313288986453445557023829428242632281707225747984905839845532246454477170104115238787935536309670669266725564891442398652203513284961389253591255554324902871999280810760756182645023616293627602023232995680603479474555837892475804994526635933176617335960264057242310569054311582643542111420657633126229459751488736066685185407040670586200454141463027107551912522215641811386642146235548475666395494896282633903015530441073275058160437590623063556376443804384488768367056783107675679427449968526892855416421888055754555538025886040689902237175651219792893568425289522089544299962378550810986916058252980337540606040321498164817467725668909494225009606850649791481055684356472770605666271404833493582981184357439311027535407572655727898418205286358288918295940140979107727898687183117318343288393277523134467280426043728423336720745318976233188618207275389705755397629358730403259004621526666678266421925254193195345437835254505107092221966601957667484853764015152605495131323856673730093941478358707586755813505800576046986597238217352087394992561021420599482255494931973790983767422047454267912855701906055297390223134119845413445183061424189956943986381254360910741552851334786842230119303997809088733410117992799060869269147949429904653835480280005423388160816171049502993549957794459839589168944665230064613519036078677158801662798836826443903881665785136427475179417732960766832523069627212350270796949318222810253750714409400159770299697310200471432125334347252151392839148729206058112587771622005657550976809958474420142690017172110370554966024668365163098071888610266957317856422551635200790362967770621296162965096476813236795422108705715301418865949298698298602498083538501763851772431739558250221910370631677485292182140090747329102087533249997739846678163666340231585096752137104357740271003015004906803094299325202298005939912959004553419279206822813399734917797567621252715382410829547269580308671720538654622627499653444425659494900291420136388680070200864243421660354871064295524832517292133828445099463219738561054763745534806176417046329548100901858103124386555411854747732916931976636355051119796522685635475442850499191945009669095166312218885901272675657944250237957014941055786067069635095872421015360527507764130273880963279221174151993257366537673002975804890787988906061043392955404660788815823168447410322226187504485310038981384602407012616685089798990188481110895283970417039219001099527604787417901728354145874150818276357735594866094975782702629319922781400308975696395428785617240273709725489453488816287385300061152277470750118845872925157574092149385638172559345939911446212983251943512699639655203267403944028112789246065399950003779330272812936084899579731820318694686330303819647853104995058741464359447830855305214354701070440119847742524855270444319165133123362768562917541337800366573223302180525013149678771100091434254045978824581636164193895018834725754122365016494784267062868016311690027197631128878488948718426707929805053453213404801196031879638891732920062940578013119922176877243921905823737888178764841490116522484524644272215242533037252786220155772488635935312589517393307349379280913997564518016316733965859682894182116381038736105055808722187552635729506418750866938067340707738503858104640756961322636343716853480121527274082523759433352725806197382402319610854507385971938998436247279880525979576364589247329100091833687679472925312660269586345383121945839054206827934321839215808623974659735942640812228485915699496850568299204305357509009711282021158362264105288387066954222465563471280170737074298372053576890187685511247937580726571732650912757187171493593037851131362837549406837988349267124916140979367543695120928716353873623377511251269629132288460979686746519954747976240621050601506996799827080093774237613866542221510696451544830079693405165454141440109902839789294270965053625945726120828665896110855228057641251046245990193123731788731694529395957863795140918311610898683879776123602449243288475390190869387910451676582228521883302564994304913022238489776411051721960937981127950752943837383669838880511212824398713135663879618219162452658392874312638807532556811558813647478935807039414585884098822196256953195928869941158110897948521834243622833108198847758708583591336337804545264478855111274868734089458279845777473021007156887627231181907851503666748932657838447741759580086875680470056218316934359632879422253482470970259233855657213734490118471808837554769502272099550511467638544390470946517305654137540083006764653837692840744601949772811167226929468330960324095051123197294573640130427377310274186128710008303926127119349939099803788668502259773485228131220571503205163531672897703653474104419336138638252120260887925787431897038274163889260862672073997408423380033509351073020931317698061157120785369279717845393857854652302851194845866089775165229471190576880310035250560204402006037946020593709470377666224247510639320871867496790249389041970349974635470016875518269370281846273237618682665158083371561502685507614191510656324691391929700499243309432079380573868466090967551249090994878440840852064891157264409877377564127637059438707126921410807226845213094675596490396162430700454957429242470372657218492377762167167731500502956592753169290702596412203232254623470018343223572215154383757353612948396249550521745921416351122153180322436030188674956740213607568639277869709471931445025234816427318535844660365732080443075728737537085643735867761737678566245390879877547758011465446990636264028189005167018760329860406586262221048864782973614651099387053527363801376889305250755468627853060060676680332348857182441879647112095861824148549652911463382654710663582927815923223391293205648915513240361105042304579699214207109696646429478307357257495598405541755056669365733062224414102466396172116662961746415722986654713002131962412110082141038291195415632666409316702336158921625314225817398294093709065840321422793472193370144808199710905291781574462842703141210564865939105235342489727315721200041211035430517872611698359427684952926504924927361493244013100660229390761813861149173805199747910974329458948082157251586994844756808084515838876706485017326382058271703224080144665392250154713224298374986497922591337302091293909645074289783174038063309141169597838265373855664768012871551705813356073343696730252110548594459849764963724505611979339830110429309365772182921314110499919260010742640329074279978268679924426262191215133674793728129616767256530818636400320054244513288724997133648817497051107697451838314515849706514645884243678911515604622716555697588200237130371043198262252640580279361034121333132465648942152391894234639546207810730370393827980733570479389770254896362176556571117335928663659140769119285693799478667255653752514098559858370616759496767699747132435613564156808759774960283689205717353249360426156686020573608019796293172626393784186284883532354212768123615366593745551894059651444727991778308814034882789045197240536189041042382520378424734277036597044510843941058662945364022988106460639054554985870398461515733965570577241442108066827755838637933085495843181619599799014663148345514636547130588585676303717402412696233328665226301377197761066269251568676103095323820536760458995274751261501546565770663257185969964184657599023181277063183880170889522614957478233666817106817111818187380215478203346461658438991246740079114766342712386779478596288146781328727980898591858679939525764313001010295314127806061408913062573820908170031936974141427121763122720320230962774503130397825845805326803878439548573701199407166137415767106741062810113031617085561550923135524467655944464573792975016230808299079467591722869842810745177214547648368439615167704899360949506798259975448850732308361799280666714398343604680389241890645043849475113216799696771375129302829113115438202040470335685082722073916631810972466914981568139184154562779762243073057389800733017303565526814921248907315548505870542255128498482141793643995716662987524309209808503514509285193866518394818214134009157956117050177617605545080642412352137651322080834434739425176542050166222061772508004767170108916255665154611079214050759667334798569948109231903040563328505977353414437181737857180090085918121948218088746958246091349294204113859167769526867433753960705206543248239351653066025851401115822472114695803618463254395787048890214861248317628435732404030965952593671445755661939085321430427161389630068474495439100421816791144769763522722137356151884517729247281803852948743724774319588424150142648449806997641940412670392230095963489156926248816738666108501888447562010186320297656614975129729836638630250619875783640835296184117299029966939103798866047172347463451363520715315184165125866945636072628159047992526146108178372465336135982103835259477616862440736791624808687692534721303359836739862423973004453612226830644041352103504239212056221650980928863582563021860752324008498271928624519440011099345056244649325480277506574118858050924153750493379079529908268675098090404280380519382200004016858898820764394064337761407459801331522236567801384683863852031230653331548100240197033548867982053206915775741061777095350873397224184448321458568871349557307168095194516067807795238871995704158224730211913479759583860403431539502971195124776621901841877861484861533427196108288848710276248299086720533393087719481197625217361964729944408775146352772773146509765953160107856943464549146663883224252046336199290872851070018027599807124824593049703489598430736075433232293923247653065119601226100049133476035535087488261601129824557644746702780901328122419948016888426266606764033088219555037597055704265375026680357761365217153286369885426631656158049315294123208377513315219533825636459623412138630329778867182211471092668458493739032186029708294843036943842765488704070964104367992078290665748905615432307937424518217775922253542535669053693676626314548653974357957214246609860235211470776711034972606706601140390615964612771604571828061243105537695136405036380903181779173896034578036485155806525068775101496016570833769950788864670943830263014841803863910502335913022614179866705944915596998193181669817806458465161267700306076346963693971406667412655792295919934870096302244346419578621530387511940769022056400981335162862413478106701520077758591343006770761017712030978896336267661107217126783196113398765502181325606602050414530968021927667465594918172992432181675729477939444454320439828041635902779113480263183650339020032988471745079216732669831412683477968704301763625328209623452511653014054614617935999379463235551225682823666331438057924120542202374233666921908461681644017610753615305790348442706626731330414837315925787488247921345549369061662884549253016134051094550898608291264015278231210728812177909837101355277357263896521309912419812113403237406874202083312877804848288790328104470915982124798833118721360850597811574344538415363407655168338387272276581145642975701095321174681892919037345655907124130198597147352429408174717121152798705190005779468285153349079527169849872474459022335358571158912115258297748616430552384086572384992138823275609643534026647684023087375036902525213608074279596214526246677315621661308770006222440392452501897377988365319378792510980379910845196211957753777238367355556431093878471842098037758262849246549735533374660113362865782546846628234357154050641697953449972569146036408407691499991411708164461322039031109669980984052894187698237943793453394642623947753444104834285446783136099738725183956757377005402122330028356256509137685576185723189778103340541463440030760081935770587703897588779751281546590371910349242918135161827324009266876000660220258330553481735321614203023044560808261029054613803461180062533941376339717770409215658144238918229919636641886596974868669534377573086684721827061655119339248561584419006336028328770840410096830100891814204784079407530151687696608375723396452480204210200483113006825614506923430555808714563812435538130031115127884880708044589546902664518219423021534765439483097398362028830869266071021437180298595066106169729721884500944364852788279212571280284489195384153024266253800793027192109470483607256475674316109943895780925389647116126509471467670717319576410820723139667129188704248420473033445446557701216560695031400438794753671853684915765447992907595933090517866957236603808969874570941864680377862212480760488387890417903099602164220681327694609325632107774285778419220352492016642148729304402023744968430848449113051047142827154522168144482733156596062477711871152962780950884382790871821619452514662880612213634375522991477909655875287582803088398431115119473344779259113996367506716986565434385357361011884778421263344417196431423152796272168389773796515597500690572858252191656522250947632467446618749038462581651266021549324212106779646188653063141447678476282176350330267345057262020508364245976375548418833258442149620103758781736567776940579868352823758482333028441293329041197019111451808909965300204027840037485303178349227005127259611210558519842976559558016942802807488042931167155743384644870007156952078155702767490844453805431953512091719617923137477478319524323661264938324645200523328994226387481520571045012553871854902733713509547789721586982559484659506865050043589072243525906142863094970389350801696767332501177024646945814239263932495134452738039952198836229189386670492827202602840307606301064216885442992544398704645222994829332881321442742885615288869224957018099192486586272907847430309760927353917294525530764484897498928823453454607288178692060356655844544472169906971640441528835127086795387826606794942658653328301708352340580510529777048506128383820398241047756396078671851453665290812616633585329478538655405979730412291236718373862269132813030921810693100704750558080973981576770018923854663494303138537023502023303855141599629825796764372940374744869486799984267289762536060967600183232179582893347258553103865149306196134679154543032049362609083318532178983155550749040292196985952571535398331431944661008212019037833765718797895851254010716774526976327312330864798474677715067060065734692686555029739094115689249394071130396948664313788188924407316053299379344511575906357695141923358467992444218714403562482743064671740594073342700472391507967799632064797130812254758027077906389529538876156344167992905842367950088835027755219834017824938801584186069157792605991645632452847548030105818795983996587058893695440086234031035220792494973648250165199171927425602374947245883805870510593344076856607472570215414690019921227233181074883207237567190027996966070355963895241356394319319966095227199884484191329610899255379284227764288372504527134237422878161640744067627264152139850385689386458750207438065078733993521405930690994789439459127846989737666025941005607905090720636400396497260316442177886691547502441701317531840752240965376336948307282212710782768375305358656123159289426147871207742095344578193018619516880528215575823189886255613584014967154885878079481285281526544305274922324116574507384254338929269506183353402596141402384164363732324668222612776733772459352760905446640128333358907098827409032069818542682771252640103653212161056086785297278106064483324472164208313035287939757541273003138231583287109600466453327160311991481455439096260497956070711850887669849197961549227455962261628595738542263016819252497772494965616759196863413045745767740172104644647716245530874474385744988364864617055325341785880380768950955747941835961703867885049190475864747237453105698261574457331350690269944458874091439603391476648689391111525465211952056426204659984909608434424614654071045090595286403707790221170842469260176143102824802946785775069898262390661746578042762564965446661016630973557049123070446193173786536869752547809511804516121504788768629262685353927990627580467571943397487261930860323067727210380185649377760010121473887809254625859489910034892484896293307038088064558308001449664578481338480185667842488817139702098112147465320016280600414671035973666338958732282216225669948607716119048410878157637188525038374341521343401051979925849211408039360352217375192021756398054384524676419858227646554806835608878010722313047795452644297121914223735449717571716075929740983874791985653053290644292326669340128769488988498738635764604591809503942109393753480424435026314902040200065338014681954429815686903458777912784672651728416540586717508615603947691373859148656845151067330965804212813431671374340626258324204685487979180864265835818504327981094297897721967941073806297059624226179735801582343749471431037299082403730082397640436446269829972177307082403774129184134764396944304271007109139321430395578551687277401376699838206846839348896262042237796368918486606542301812356461285741671001235268755059225509193559132281019106357399263234104976702349719392673569273746383496397062574054524437380655410191102175219816111646631912660825787087124391223092716425132276452559010803783043206325907306099518815859456059091921405207584937084632041408528935001042271310041180018553982016430744078285739991345126542376253169177842164802744605287835547476302716615564160244063441920210425640608521235927970286386531920762776813555802983390930988803733139852903858634687382902475815174892996976777775040474657123076355854138684935831926624841787601159096006517885197116496930041423761115727332717016658884927549027733122403990485566504260202051814284556230050270546612633150374039412021358247158646854575397151920722199778237943122392299759559136065546609636212410381235263538569698726428141777566374199293976330996147958117085219179946962631537947016311886979535991808017700395400896233647837218772742736356645337298570034476929471113027963032925885382485430953920955723286368191637425732381366978317345915288941866625184328818685497935892013896666386087495858440024950125614210134352890137319736915543325522528998239245351001407034813374283430691089489292159609317886881987760814390861171076026627909775016955130731145206240953978615966058167455950811800265641698590636153984238012014239001990551024209092700049561973656776244503759989281409544563799440067736596634613805879326387521561887540108930790052113939850296327765658057405865091181331650250982834219905042268773846756574855512372671441799694346292815125511103907372908737015208137948310075131734610788321066729987076062989027065316162662337705855587654108735855545809626334682921438105182127264911896274919113888931486110905219385415895098763610438685161385950620452018372289239890607511745529549829162935111118870671044943214179985484374148676314692046464461527442586617683949998145650217207590064898640516994953490599877477290363711521154174561686975068105689624585540125312559817847522506344633966319154991878553151919079206018348115154855069664634650638969050893174717600135042768141057226377283138959766047059467945683419141430560539222660427824241068053864102694557003582770750175551713865387169743773067814230995358571111094028547260648206769304582770402647692895145028639692322153379623554728789089863125435343951697515010542458697687302919858078993626287033408866557539765938361874175349786231246059124659582493519668469618970073755526197820763370218778573513262312549212026761110394165325132290077220598639474171902150127234268971031888674541894271662254361617742088065527066934077353130169292385936102385744718742658594756499039640005384584339942133565824908637536073693262090775193295396792000435489880974364752676780047906730265365361887422494013663728095209096662918381694350527722182041571013392877948128096050591853711002707271918026175991883389993265774957041146450091421272970632725326291643011044336585326609007184398153318927681730683503240419511506634820785221742857691744034997190028865586113327595634922815687496375064985296284169285557755398346629104043773441966636703856859384868427505514226114198165451294345200715509485380173574362545912828683460971296482076651780780897165726859811105197698993025225186302039012421791439727700538003573354887371531629633455209561072769607131854692142820639266606272088082672104565654649309880104631057772213564840343496985167300150359924975985800055133767685977107209144477732864439629040488311889002796467648884294486514082279972253923927971940571768992150883407039813298812292680196300344458401955316250500718067478837302218864044034964039734663093783111760565539593242859033247561113010220688509158593160544813929272954363011644954339050357159466940139121859168419829055623437190642250675974455222150019616296472214185140604074553027778339930500866693485128641423291734875002643958782696416558747335772746163548931938886823967793130910208460997850352875047337744208558292540569879893695904009222755505743361473531744594406079935541804268417240049021316373569231039330793514306575855714460150590979542588328642512043477197640639294412272389618543382948950418848856813018570311756482583247712252477123242592340174141190101589608854515073695151545811582672986526430359631377994855166225242935803447496877436793121371596681100459517072574180650247467418214345451487000703000185026382563163620951505753408168752616405601015722536030739927343089624328048903327581891127650939549252025624539130689794713774186549192280208640928219282596594515723354170152992443771426806420208143781117065258356541805313789824487196597769614011841656882577131966509643712580509478746436472390740808228668347721427795081935763489509538012130842313497465343360261818848958013807077075794976550219436723355561663131517529765396335495846960085770964873542560488416701593470780140843068075983737931496906760845133635478654411313686569624082360014219856001824958729566002201463615866606449633614375028721646592365592104466497362067618853283208038512715891867642715286288227525756033262983684947311334148594681542339592901710949132630417546469054566268151581178907688344043158913285263530971947132336548992029037488261993327052171681989927493007341623982187644488085440596168273599794574405989360102960422549636418683024432096975513911729252890922616781093387315318148898741650344827662377601317359222215154741070206736142770240548530227896320005340928741630861573732937307285835337907603318238085296875288267941959524588091447421582323522293933098711520036746220240034803307923161954101023318759926470371873289170148462669128693253140264655592656381557103612817212089056464256527269493304585519713956333208062728297976273944265475278378697310406411950664307132194873242246064223703053125162715116437888806313294109613595488080859129650542742093157423935873830390589897436727767439045206519582949635557010814401225010435772671232872440818207804602946495884255285247471999427820575372012236425581709720415016637318602776133434776277761849279835484888827212282410456905728925014132643498436548000659898373143569527245058886009055704921179215840361561435638407023076441895590578915290098538301832208229861557552638731902222180544797474233267077183513986162651398286458576165405075180180790511562706369457547629419524923723352200325071283059480853289064543338196619113881700932229935426984558370241862043595961061044972947198191185485528027067565853335654965977856208854199826894129180612835807350835019990431270909420656233994521497786022889434063042844341714583138953445838355036290396548072999695458642201785694088064792119657571094395786353971207893146759397285296863376668878139104539409966538039341342955176823931795505225196713429895945513557841994819630704926710859658978478372290249674253240225655687780404020482335795705994530434682552985378444033596558147270707645315497997223963355436553455379975122833425503203122118111768260278425783750164977642703276068607342349513216659600628268941087384638403301079157328397594916001679560902824566597801429631138503375175444830988402247866688222522604106530912385454586673385463537798734351618737296689018069301249061401704125547424877821585389297422857085197298984430573011728408554309172850371224322796108924584964078795935572695145975128298478820050593359307773701817849890856480055756035673443412456816477467705754210340561787046639520140410044266489772384474349509808154233174368389286925631654741985351460060055488986264625401530674927614824374194163988267070640416542350101613749322469326219226218113361874026813713819103123651599249194891936124745173492936121534783266991845694973739239013012770100988778908480258337056586487728019227864041652469603110713791157297842945693064982495425759435411614128370110899861976094975957977301474714336926952729133296961992765585157801713572414403004785534056283315166060725318295070709653504286063200484533487333085255113168956895942914872162617326508332924505478854949842062872729509620060871384579963404123983957478430048829176212030675099330624671820892465753503157723188774543136095166353004573382919275395056107186482143209524375276182585925906580970837049800302936813024087246641929364914982356638893038019972057686263192547436926359550434897306572316594764900284225441361154334063731617869919568257347816893760303361788103711055028294197132558889653446280461089288824838198220916812922131995133651137143302997368225709059956793870043736656476360546084285687318327504846538865566816252657614068450011084137232494846618559911615471171545952725181637160129478155935469124790438839226540265468867686422836618045553911214024278989168339448059237405708185181934958927808355328321667017846652043736372768364651199529095725385896253030903051735008125706297950337450185550728074105485890733203885849486150877498703146268696052886028161232312779541843372488659529289921507238404536802643933419067469809852115336713498736301612354007434408843050100142220708039388954932575667243163726060153445021232447881608439183670253283452983391367847385179045335473922876312763194314130854658408044391013321408066107536878942506494069436975383739493173453990387644682269628708335891558662683124003879623533271494805173967460427978776715785512936748544628975575183138651186670730300399003557566157191827409684896429400731994154605653138186711443445206233698005605703717810965469095789392950032180801507782784167905840528555962948920201522538551897702844930650246305189867219414491599673447738118568455704863933158028654173962988971484351983166353785530009168041529235050331186108374036599426952167861674955071117498051281388714298144812128146466411376487366442649726278511668019340921284565128437966005068480909054308986814606634868043509766301875652620475418659632991447430850884968072425009762946039510113927886300272656662152388572984201887729365270146182616682902827347593469801367922556816196427394639760307404872759410199174976795761190449721711900745333293474662900465003321819013784957694694635266840808956927495881986693655408599319322701691629393759902779177487444780074150854089650678482922118557009541026779009007248851212563334982609313840544280655150982679382811613632111971552679818560430623405414041968540208939887841951291818789886475748369658102474514679552744349713050850273728059146387763120746087110676660531848503457162328765450213925304835241300735083645236459630414433385690377168479113460647019159272687732486993133733684769413387320587593508880034795048953745024554759953335425942987057591472808743401513670974498524125102581018602258073629368666344164218560262354098317686245655677132136656954878349852491932247199568869109732828170126017083826321250995275801198745478078600290760210346096840428118553343302954509947616785674021767767517853402895396133031266001245560902274243959563115869445774540409733707331182166657900011334682541924776761907754101080716015447741998146516153708908539338640930228241743431864129614049921834601870046478408842815174427784501481374163377212061495179856039779056954536640913942627776553924389312144689196605362137859796588491051138469404301235563914249223097369205707603052096339002997924997724825119962483868730348432691534972996998863165507773113279478952297306785221810904723656734648368528800085859490556528874505026599734680806050671123637297231582104461390925632619075324472353867340132120932455609392171651823513117677541513826593507070727749196838504864615000636684345187021021345422701490032057406641312891097893839304214165625263798326410373183012809615561282750736643991004834210703129072170044981962904884254963591243444638774528557139367845108842764156893237716005011837047349252332889236920968401081198507932150718146784644310935058686631353652925500548040468987836880194244959532433002850683970200266437460736752423050283355581276190117499794403950292591823533875680961493756758550568546600052587105735865734885169555013991708068108356897679828651725982921041184585260757974204474140505152664640667204150949484551455769285564580391754544845526450268193331494380121350756372653858871570929687119724326654515045376219935857672926817428879536328309719380048651305062113755290300882571173391002543377192467577082271342181230344225040911244810197804736027530762069675768329048211661939846000906935728349445397775370101998470823337666826503794426397222300077357141731569588056422598622275978978903727196922814361490433557687968111595325967499139631786045624758001431567853236703999853158915710330277257320286227790546536054259625849046790182668093722273767993577924398549688349301716439824097492466412918163648610481633343588585821184878581658527574563865008670441975910783595018523233131074822796015497692517199878090569654579578697359958202853480109852084923104028945529487513709998873423221665911691542885220614796720656537035301943929759343879165213283888485416904325600478458478633302515396801448623888810272135052480265762176079328710699964627264278535523526908205020807304866593907855827003578209615181029196803601446308350636868827022791040986061789214705253102832576775042031453766524916281432456935606769719207661011435604578629541953013079942078639773482962585108455168897493716412936664725984279309333364319368151609970041104537105899404345649632727588078872683025144038654852859782670647899600159149086484423721943844507217641728678233998856976924365035785400218057860525253570248094859698384463395796040762090476823874524457573825072381449847503360837843327377558448560208856692444735654597864099290262681473462484728291768562163415084371534797852842042806691628725549447184621859729064714668384893744693631536811698506400402947420455735655373648844206819929826186977653326430793775301438266263763857905601513853918466557468829032228972815281931967798930182344082496014535459703665775932567229777145840019308709779897484968111368303840875078962415346792953608523651550020859352818865591350560173058473866380109899975122393868383606103812856110099724457859471497140351674375603507780143582263766063362222901001981529239282779431615338137916385944349138318210707918410802167683880057719841141039615440339798852586548848620487722645491940296640943516483873176644307795309041299819605049008992716026858911214405778637772911265722606197405512454424527104290273262071952444991074926232434506446739979376080429277320002899273873735705556895097199127460226598250900982409555381732657618663147645798955460665209127782481523221261484199797583133426959963484908285176634019596360285491559909171688406172945194411713290445165455741109838478202908066685918355499720880906206197954610349131696560543947957635238107129591402510050982016637849120232355506613475838554980333123080689113506925028586473818127922231715267232669845653022635715465361863541455505251386273523036127493527011702615749076836928946434270466078751185275506467356098305323952225386298339760813448153321088153313905582346925775351653737337636807683266187703688424261453773281211479728990297391173890723743035979950315567638435218942407388978163677772908862594250204944372791228081899841550635083343830946995913906474599611456281468565178082055354220927836449382603668827695845333717531395552900796761315899099539110111016541026679479415525884652721919704275929857544218100586756104937984795860983479424445241507994505609542539882030153652262326039201282741201601234095274931883466908259449614619119554381659049363799200098769797680182366988228058831714053121629756471292337598223588961745819753598863031731085150594598715960384131139419352286678814309464279915021323613812174213912166682060302485044087308494326783890344967878802033469909083795714087992134091209789860551587941814176639903527334825986771530705581125635167741800720716677152568167390517686485644053293440992208586359986405561313971566182042426133018632729003694877084639212892432774172856530502693641241257821471488809877251229187936263395862966569271628523059430722055851674802863873323861317715112631228519574672046088921285358868487445824953901993267595853973570170962557768833790600189932143659977223883522107382574196793293386363289184270674636617956476601172127935550415259877477454310321646985453185743132616616208995565338442444325890977327063428898188040203083709724745269391679244977177847409494578265883160687464367211268823558291994417934556529162312444643567298498381723850353673298051295696200694008913944064611577507438959284991684433242234175046810783891307418374988562724975117548791606598376449929209242518160561636876249485733517354061498037589278113232994611387505643613373236071980088331353382881055301102807571627745462985860394828555135215039099447584275271905156757031749947943472249704024072345147432942098341268606014213387255246139266081076160183941979663577170302676041673803021377528339124023580857390078860313188562296646426984405492057271800284676692728478536368707336697377308102687412550321937586597397384629696182929253372802243174735469636203759134715148226887103376567054823725393909529929672655745339002704209977371967993588520607980359774585978155820099800525910700246205084798739678269031841160504087280174009511728748204842848209068261792493135871204392937365767548108884770103815463212475748694652518787728019904020299339713888906738938424706015459044603638805327493182874796171265164391058529025086691683719584929158514429167240281681414168643232659145500487561594804928863848355063299068052397206919342797781405258385687924310975843741618335093045134418720380390467107193944577174704211526097301075875875575000872102670572546880951679197708559671210044144117127409675400611112273047341189175818526962632420281503070540151592361404547606154776729104661570797906155518574755785633673457438465211435072991101185040830461703598119483929700579271312722090182246287059571282508144177811288676292757337256436939689347550044856949716469695337575298243567615614034524078287567007150307598262243568225825872989952919104379332186045753256299113401514839706807947320570446554782441801231495574762387196946629899789672429493212810288377976600097711294381861745379636889557246773407391242460194918463293587676864264788096559877617946124317856967146744604419324235093170223606499741500032396611307050266271722240287932151187389728176771714129351429203795036044153292705732757723701999909120136507360920338407168094267905593775342542389420008318299281343774814604330844122308851625406787712158022340896014125849051355567637220665691776061752953295682215024140869963759450213896797562863326565169538309708737534168651626436138966367425682964083454261052972079355777485890811773475979099011497709740779775388943264691616890391187751469338208770339517043293216096194330659468330233280371913734645556681345366022495756654438530662759765183106801417311867550098289236175881054280704353707277670689969426628489168537505354165138598405775086159056971269379885267318052695929884951930736276067839026568870865735147432324597154349735616940236114555723859477238628025351068536704187083274936086604148653701348389545302593346278901757252505051395307177082812139605068132785965929605767069864100487990231711717573950556076588969082119140515266271246718047590696448020834826608035546288076294442349657437089760377272518221439391468401740137912516614180260909629062793414192494670948348425168813872841592681529296952981904001105965576375930554245939021704579108462050792888705837618113676017847631457944663280719463460879751541142916204923916802383512198099236113364987636405123410827444529740596483565175741701078739704025413197479891002509471895609341813385956331913186896029119566499171374330553412713752859296006525763931459839679894308681801312023353503492688939075983364860665142478543073986548920510407316784571201190448522218660513888477768689153556138323176946155645926922252341385320491687842893508149397142092574131356281809385879983183359694074918155192725339295405939392978944352428332324772202719321749202293714974757960686629676991608792008861435563417344174875713234340309037007699466765155534125849806273138808079130525323270160485994142442281907090943786875968965895931587390812156119624992361812223479232923855477636343289269788477881556179545102783268991431422288794027031256756131848957264191069822426021094113205409447622151325878515954733088571571148261001053265007004406002037113551299876199033496809033520976668904937344751411725404108768547337280441597405385861358836251061805547098792634411785966905384297614760462016856036559962198390380333945372645324058099102570764202664408523145023195747149835036626721332366817070190403626535916964907299376240961570990424016845396642590522895275045027883120514498437576889133255970638437951589442805516585974600916906559084555037736110688877297006354102051366126055293360105745514545190555868291015481476413217043016754168345667797862226163104032238831130633806222470120911279587134963330968949113261063349360326428104593612197829001295689741774603413058334668421627000795617095352582319553501385462164815898295688808065809249545293887450136879062556301844639375760863116940233513001558430123134452108499494904785494613172381573599763781479270950930203433378913473820224679816999700326221272557662966720683713191499549158355657184682140928466549827571038236378694018465712352317242528119954006229324515362762858390382810589350903058415833214609643948352222914343502403045570901537892771131857810907457999461203478619617776406802014609546168365303638557130466957858550644669749632970847908077807927908279143259625048385860025278163521895327635251047132050930134546346569759868539237965164599735083703552496537603424725160501687841667143784416947175868964364432573105886239392550276932001485731939648731377144973799653235696628738121827846065785926543147721192698600814729100291676961978764061087158132572340045359002295713143776109452048684142421055481663562594527784172093854470704278092540455792636580475740009096963191725192496276226569011643812009383208252814667676973297819616558502347991019067656016598184653833650599420981947484814968106999104851606106967021066397428337984677276922125519186901930718534451245432324981098078328292564279789675004745568198949169382718375416834491417219109849982992358328184073072519921408752552431200184863673848056238172068816463380752606224509814093139320552460762259550927513359359359450422687070922333086031988043693839915895478393936088770424075677593923384358850024156348391236435214269800880503754240098480004548977517143752890365986535729609658947663625677686265967603095386155642070470982584496833118478509962951417977772135227793806332750525707644646863690673611949536531405844667953750781999242746310828078553996239604113002072215159503990983573429647417656610508696504397899276665291321697422967340321024462957221908018591086210148104765733791794266228491030537731757957906652874576905901024804708113613151428377100395676483489349842647710705103584125664400577787906789852181505827944131347131272542118640037080559022280779312440340499982357434537872420976267401331323000421331435113426327290124884496745396183527082624674330835532374244873118307549229104938617129075793361828486188922712788457840599110929421363160454612010879665665583938397091633170209288575441956290288951041278873581275528649365203721244997305991976814605351137576596636454709267197213485446056092691741947249816445812489943460573021566407417977192000149819376976797116966445463048564082728404363909851816793229611162354773683335297375086068433511065488222771655891505587224190190770214938559972400220963278141402835151270500175473018266688040629618241124084387374319756404949037438268236605286351654306881123345166959456276747395397109560179772688703803971903421957322570138147803894953872855698346639897221349989348821267832333000270914215647689153744178463809514451893506863971560536606539400581782546497932746463838071544395563064072927885213929759980434480597823215647600446061940028651214011791639439306297630418907097151298630851105172560322247601891697199953512823294829800663925761859907898637491808080455787765856422607762806270111552546941090806303122248496425847500499330393741911792024076739027759198782154956709857955060331664417900983489803737879223080685509138705361055093232180320599620521981279476298278086187061678228334733562782694241372573383240986648974805887610889731682179501326167392198907951188113047177923657443886961498570596208060234389982662597886413450404311397386343617181597606593036196426521294916801325554109607365863119397213535076368280434581665929557771863240161859042730597459515088822517846676175745527369783842987797699489439868950738581171298302909444005866327103744659524660962076626384766664383162406561628789252426256904620602968136707287102932657652033980423907882104722115077800617398900769805868840958933161679186526517636204557273888412556504749138625626101154462149605231058070421723415191791561789867991527262230681460195789409336530618741896435207428586688143959935383257204686004108948955220088306126204986372036657149501924501703579962260746444558988992227882195289590932228360246926443466108973422148903912245731009388959897555125637187177312398347561627359989369356086762680901330308752977663270809385236024629433348474263493593716808494962901324847238453154904812957613108458231413031545183506565259417880089968369906654244576289251827205321288448501901659570535617102668690627337003607608659269453134235745569918061436787066160870930594219862728740216605645289426878312295916173759126929195301112667127170319437202267334477983972117232237602880079249080233370426513066125988805997769742337138614269665771446946738616953343697097630198302513319133819089247205991793504654598428948349044386097261045585315934569843065854236623493079816238897686949217998472622793706747856477860038049135595098061599306716661729358046972898935052865208124097162808418104500190833391957503171601138898851874254235237559701184509511159230482004692253744935941759720381960873792200152255146522834887454256967837593140333493035429261837150613584589218901951221779332558761649312540311177991080547488978068274054836954113519149328367103055464231174382898743646335267679209001037721408774556825459673889295400762112511041020908542299854351681854975695285812794970555308113161494929993135219149682794071134878240111580610005578543690042822009049968083437515775185862847919864519256336890182087671346512993201393242810625963308510998110683257270029924222092349048239745491500402977877090995368580849445260832490447155048037900982275302060737253861555665970189595456110918834603555035171004929968502901348326725876463634591331044453005355300228887508428094958005984721888378288291952761042325016505879613864629947029738679565086885194108592706801108764583591817547468339786466270734488267729055832843947604511733554604184233689743162579335970493015781991732760167420494276012575900920692743467020251811129206960633365260055848730686938491336499448853545414440675534833170039245208190163102626596786008598770240759224801021429819214473865435674617599527632523379466766474596357339349173873643441741100078851158499058152886621148438750990792095094700567228934561910896387683571777254474810612460605403755882561932055146073387453466965787216706456501114247997705216961812684223454987830289696158470477427017891081949809662801296881567861118447147681314477734006530000339847493237691529019255149158466902969014355809918266325553532614781698119162002038571866104579964772734644702451608377709068419224629620988754472830504516128687836242188427068560758544686102843205169092372438368169410318796617760575910208568292269746748707520478392099089232382239038382277658292042413079292386864485543179339074778898486274264962928084328725868864347121274947745092446827869123367720563225232944065862431019056739458686290924179366843134529419228729098718528090369583046596252628282798482190046597575679583128613563906739269776598376117716829185007580200804309275112152201943649637737128957952641076673031969972439422372402972360962251793074625018760377655351403179451980354790043712168123341029931399004037064549246185407133216523796829932258452262253270904256672314736444257971146718828182562104497348104463626699664905830142041947961789208911399382688451993952811886854614913636334163401744035554787541661348892690304013961678118859170091126586370214002751364480857200096475182402380767025048079455648264239041975956203470824447490051538926579130002548908654570155510092526245527004805457897431634434594622177868871354804125034227512040980908480701418957709439900039177521196204811809364281696011794159184109172586331272277073672813671329865769365399614357947790358219100240683674003162408869117105056159635581351860979097261333731975376838183488192519919502124397079555563473056955205120210650474993222147651144946822721706046953015836601808848123845168692240719079739704172568187214978557099378554391078044188628114562756989581091610874683886315502590728911107945369520370957011711803159087220287676051217773523135532174089378317816005007392720434858487505567681501763807059615892788954008346444350222182758536393371953239450159723623347168284542379206582113301897109311030835606094902584790445129028431614325839146419411290996407633196182629104646888051701032531779609790906885005930946400032004149238839970711274609578712862185212238038271752550550528086192982588198469222177049801867034226410955070216274249509685985620601590882244311819185140468134045145757163706359272887419186032357894952807679806046436814202936837908219159177787616552678851317228481309375380190186254905865304238555855958328696330173492868703794154463416191597968528622057638450764196077052088822747014807724652069109795156715286219393460783470563002180627693550499271411885274906761582670131149547480604513934419841048591714968527020047547869714296666226725697790732813064225535031838105334761162904919852879396926209579917300960021023881098683006036445265176886904399681101573762289711551467590977686940957485556701355031957969889489045468963234247770012970665138717545168505227516947037228140820340016453636627125922885475384073302926454993325145324053042664607094019709799314726672312312526851014843552539591550656186632161942379373983451472667223112173605335209754323818867624941764784824932737865174419198079223019818179396472115778029204575174350358476689214624301989419511304918381787382664636398393455356352054716578274072190297785507057674968768231623043690600834927570113475186315768667133154210094944247219504447140043445612260831009041229865303877364832821742482917193350636597696964079410779485392170589098635917144486643043799922053880171027146605984132372519205463867507943872883546569500527967844695869130969825157137269450718132144654428108450518130992040472173912885949358982394680982982356121635132822042118148297801345026483143783424444196076665342733901700935760256575370651408244558074834448191561857354687372815121728278676331276017578879207882582112076743370717868442778723527383743088127757828934167070954661674179539520087025362760442415852668551710759743419512792725365914812927839603141680421188945109765987480978688715639832338201473885250719112199535582951897755064377125104928397926510947824214885324953172811117849417436279316620453139677923934291691806002133111164927483201526452967812135065851633019386468240583943293563435736053366519382067923981842090728557670958489489871887885505460409118486935489503579346720693130848022757097175155620312848809755765014578579323733354870516752584940306736129238949153863582076333546566065801241465118713918508184364603336812548926542200818181254694355392529631923461031135093576256790733050678883644657869934790468035421532732596265914543405198924831029201139354904346513595120905314056814726860039436238940581453095176556130666963161483875436164141845167083817031571206399278793735169278634781474865658752567314078057326475437500252898189874079764605879566665986563313804967628604520579502200451665794119278823599836285393016456784943146289598147100617694894862281605838751662593078795174025316928720056126425512661897775634119425378292339459133553751528984824623376784818226434407895351010094673000061493873218334374616982149290352899959523367762962596401048148669591581846393438060285203674341449475836790460744013490078777079371011912964686311841283880517977258286225518928121843347653926724734223920508359152985032270045324341056670175811799950972695348129267855973448048283539839119284355628436975900353263619100929062949554842825637915718529775206894170004417983162948821047496111875803225671786271707777524584026279232729744585310710203018418135182442595989540515039913415602819628640274209917731088095013931898835011837500793508575449567270303335908055558383984877940580343244090546684253909150664239117436523439750189339933619931238235001980101384508337494825476809598141844515186890232438585971886110339246189495744381537584830567104739607628644120070339652329865055618798580712429203826129042124667899669292385326454017470853549942142074910045645426697976595816148399212835176985472109722437501833535167065855802895886372102071469560493792977749322748812084589023088048485798958776052268756842894293598008980865609640721462298020945010435405963850468125221547072891345548188858637886099192106773838838922220961754542764275883797632171783800638733742693715925638044368201310306464586610121292495836418563949850619997165716196687871493516749956038275818756441452399538205579641219265221499781554067793513214262586289715914000632567895761397365487416450844331142605567016492656650319201394200858335127978529934073121255096956835256252700957839056142286097457889166654976369556716052385829890225333167984355621848401943640959925505431097004142943369280938931288772744700419309499017179818914743260886810143515177861675042964665880458296509875291672906395381231849504097679440153401462865842138389251616693518730377386234511798183143766066106260174418604632802114578514058531513951888796716143800846379496447050992236897227346125852548187868151767539548800154719741539633594185682887065315871113448055512091823918323401393841525718158107335859002154396478222143163859339155471345741300639779210435523058363297628464882884684436328634523555024966933613802404854423387632994169115246823643484110216233927426542601181733546572052308154722951381035983340642262244707547636118132882032814307854105852955551470853418459746305046436914565959605211924083493348199569569680130847159925809994580839147886272671319310156237813090019156388415028547043552587818531084654475968974197807666238617794295454797346332336446065849879136825517102470627255661957153470611796065647065660662857555054127540603027850153760827742138445277839384355909727785589782066096862066605671228355721948155378249533295953502285146777809394763496864646785307067898944129874336901219022105070711773228526108564317988359761388435643550915553385396013362482651697180399500257012599474715746711291408058973741756120685208914297379097823600078076072662353300608477251572722132281803677375147512356905518816210395607290002267071905541997737442974033658945814521721053061604954512248259154120239237950440905325966898963057629860394709496638751717598488945753139692634651038434730238570925530025460806128556181138224912524118226165136111210774723956418960346661482928508594037326624102373630092290431154148059984297258240104003744105091223630772505357565067706804216274278706642335936513020850748134977445051222580772461104261711842976829183204517927274348039795592087617176684696678098568302847440470094107134794402138208447589869423610059491148736407829455602815932823020354915653923493291929999854169613506919465555713462818689653781650703436643809282347204496531545161821555908157539223706004681026181113775891342887452193852968707322913298084342463297929257065591773990924216370215986428059621928304503757133951732437311476379705685104717549671359217881295658285093011182056098110574871050431194177705119234536939702008811826880480519606842869172810773096448013667235940438867368191356395209388189698891421780946819959629139016351497458029453988851426472984177213094242114927183451968011029627170870555789988905891715265692404870302679091586588102361123348205125235253887839892748395289260706839826624809238916497841391797820543158462181815081053591157375643998844287655144703193133532130262304250205866951708232184578634620818462948433705240624260469666405826039618731781161787360480217506134070305313412094436317121719405582395914655586043000525771736010846426805355268248028111288556598433604822011119560947855120657054984459920212493155621318000415314403081652781691544567776795605862988895959955956503532671894980915862414216480061576888307099144179071432257016937742638632431965422216128639652996773400573611333454833544972565288644711128963952260253428756383715419881308503191193391358833134431212881648057176324177517419353279346770358951390981782823582618721522788848613237730875794889688369573854262957990122240926055322031568824747877462388690105076040172036513981270468561390410935940245175560963926810798447709236743048568808453761711101998941139173968608656500913656767869553984831578987579690917991678208943340304431586117108016100208888947950075095242880553551418649028833630901030066087568211513991366931295958433290679790689234423033430067005972532436792639047860636836734581541253731322377505930841616044703242164069649958829584034556366216942429634160402464932209527840349843395543552224611211575816866817429882845270798124117647167208214766066413999386701690761822064589395105092309834115106115004909658043389892056677706448178611384511763111279971474816321007628241206286678342708574199620750589325020369459013340503137466979985029950058383611131211389474900663977405780562379552938754480123906908039184270025599030921625448504760148540311750180837625445065330998118782774027314044771345965392043191603359980194066891644171086976465531519272440230744205386002411005698838080045150680117420862644418228068186793184972647982281577634696353850810547715316442898809196138460689255089362507699776202633407536910041907663684543755724252717532933266271890924399025240628642968385196781953846532696217592092643572329697262106004832095684125642700845458986818854862322604790344189085887633444282908585155245985118405597924928457117046476427527745863556558270082149480410885489820754478718169145531711126259489154241586866626868714493869263379353979622930052071062793931544309709196341741134305035238352278258222665526364010428791852900921137590803424713095621481079669023021755099314822261328383614201529930628505763100029854605706383687649531504848863423473816876521243602466498942841329082484099617365689489525655843467612638180396011056922851237846235669639764399297545311223391959350195951942434107163596434919134810623466465811616652564965877608588805826072895871842014840075005421162264469662964254734517334799999724032159711333554988653384507402183041814649655943391307611658147303198723457877720047911963870737743335717821516772353808067092560869469251618906546334877185109567192831480800596240705672563005424332846183946806970430142040529949296570003574861836786227846632792034814549191746258940390652738259904251652708983187806738227658059119329851201576133721436944473415894598092012604180587931287228777627467584249339387888145870678218070311681010628330765052347943786051987635798463112147270361108631046059692221583887567134215519886231431676647833096810780474289693668186251779418960918338352930303454770991501432729328380655071095108375925499673502262906857813989287532618434786424389596437644324657487601068240495323500972919676997510391787376470189990843917662314893240307756767122905335657658480474237661756273031281895334786088544296020134272886504773733641070814828162545043318879336803575726876082839213822757847915737955076451016089835294569984747848678192581006615444325987394365093952077760647533786087223554442301221723857213214097057323370022313120814603489588827643848002524979593104107071156477792763687820983841293735807474184653325873234415861977796862351322544385640397015314514753289197843314075757096627989554298138143657322018866694277198162941242373743946706014347979387245666300694857319847434933294258024264752237283141372574182005766985098979359911424330809388559570220901008929820371045146332169026701467690536706287916120032508575058429799156925668163482666653075080815387492246320073900018143904956586508398839538531559149039639770274445974941937863160363573285257208735140366806937584066874566864973795674914370581316053369275725832585253366672947020034521114509656825633432956784516248631245640168178818632723555499294167079229743301465539641776331927395433891373916945705963988578256863602608251493532019879710396781503217228831318175565701180972626736787026566227848341074123291929203822650622976622979112855074221451307360612580756913698818972204730376819279124100651172058887158899675237468059889664808817235941242493858883573990866677835155064925142656182979759976999418703568453708030468250993303524279796204097480526292281227461591634802968147513358927851831180247049611635433363577889412882367908661856388149488128466758187731510451867784442955246382992643869914097046404590158983445391799958503279292979521231774432129295175906238293805111497971011142183663657118398132491260688243607300347907656292669179531285443586658750380777227554269781055354336078390676349718479210140827009064858495979407188204224652742436422038727137126292559433191195894219958571601304127101923793804077599865226862835075899871022413628136162285150193345766485812446634022284176866215124610295020349685120802027585172377927108464173473420025220020815899225674519234981474719006516943479812848234483109310089788706895855488048581433180687524192636792014551454087192020434028542887456091557369228067868942983418868465173862520224457123123348721124840269332631182106473345854161632553745203518580836484473139898111266413620312362080409044388696133783302177125434966364941358241526419602405751793466172526615824598417772384017531423783788769991393555997994982129596335119953714024940832652385636300715848863230304503207691374831874065075618674563901530287486621566303278948436640342128065281496776281446584484937416919957210298683249169674253957050001454580399607610088575280939746725918309145627502085368104503189060559068249604835799858568806573302553204051149164201910822850822115609666899434052074490661645820182992478944416819953159431207353423106661189690398752808933870187759229538539684553458508679049222515404470081281875150710449978313958470520223766453544326021340967168264271375887803530202149988827647893590726622164517833183126723031823352255207724897885249394408612415285302770786594106200223442450640936149525543041119116917167501485547950902889325349450823067256255084684115272156929371077358577221617993206303128394662076293024954700152130486891499780277658755139384376769205288849455499572637369381600198230589286891386519324599336570549163783185245196241759421784290155399008626069552776516527857905643288048786423271530554938692997914983362703615689321050115466868935979348900102359777980605115664661613294767878121204887816747662832559286612417421029872086266079452135156002121870300938357753398316336785810906568671921854493970814947976925004534811014113297702564878146210038655951653977007427009730375479267263270908865815299357774882100555733834954507998916992732252932028853393861331782711999014785801311109642683801455274595653837226931846549086563392546803354224353755455479863572119042552541748190299609675239519917977584618986788310666731980135357442320173594008986333239476442264033253887487276313012628012116815834530782326250768229048674812744249877406878763223615390716555316696372906579150722459259545039629278970359048583993527006444894671267070952526195875662334659903196644824783556172150252366139275408291689779751914828249659051063145762623107149679218686378060142945288745903198193486577664408939964503556770383717494054618776679437297039364425517307022130962439281516904879383293195720355050083092782127407880438777773399203160375936347088570897028894115167438996379271997464669459128136869531508834675410354888502314699225473904294052512992826521926895432097415739642584037620143468532329355750164072282592152872340751317036914084019376351683754857144461646258390316169292149076394473659583883925511015504578382480323640223945862225794807771823194957139839615312542681514125319116935883690275277392035878770008856056824935351209422438903198669980599950981765010707523758644874618145491774894823003481883456028623342330234179449485244818147106316819294410889354548419295453757124786441957725815243771763365914974759211843245977981206997708815206222603854474131559843945393281285129721428317702248760869954797148447422932752779893176136792849984813254581938046387073088037578883124760252296387304938560643157158411210523643112452152699551712272970058303325337233288482450086876254547072005222202110126366779818647504043845608193529854575427012182384216265502700688989033425873055526384555395208570093492550781487413638640888018974066515656634096118381474638965500189557983348822416188703446856235204873120543531273851575273687917827601838563442949898150038227297195247957534436916586017126527661726923142973616001096502386214018477468923680090946364556197285532545011247481671174655414754593443375990983771174793574477178990664148019902039035968151102540887027223224796975740849841122043042385794629051569477895011393469014788472168714257153418369049974063476996381201749136731887314436801579108371853669441948906507508625139234609768538094543894019867584912257260622814765198725366758506227242154640178302954553015816867905535572204576702143499072666188499581393686933920002032631304566325070393367755239956551855725723193667487687375139992924535534094304132174635396465655701153233796452878564214542463168995305549435804041063503857221052490612562784818397062883629641896651235364579614223805781680199686456726597678519831655823720176233678843671414731682876845295171045258619117498579959491008083548295936315755380275006131388988366522816107168866890289851371652874290749185510965540512270038739200240217939470579812950201500001893208287345084670411685832286772961614661640939173243465898816682006655761764921781244771767525757873672253166852848192387046969444956334342005206982658986219213724780950858094980587533728826305664595794645494169684016743798815409216191438076809823954045851386024628146803194356171921545510354161191048644640630830287780597951488162840841883102462749775223397898414923001000669458834888061743309819187841470343534660381926594528047503204691246232223821749548896348224923965897660118554048546849377268621292521196210042894916351696715782010809001841350553969699494979943137118873463090008864981702562817231574514859525682128927599197368436614858547080255411904600856042053896570964202184196509721809237772649061495164580555814215735293076168908559322985279170405639991888858981420536912383043353329842524722978704588689483354251219605916466755590156440857969466735891592163160056470574169002102613161136219227935034101877047544656470503558610428118648785435938004674332384773335760300345736719180143747081195267493098501511588486967357183862873917447192407260710029188685157822643917529236472912558256467503889634055494617580478496747770812560273793200789536773177824527181813290892449148867787919057021036107450313011639962638579575441892533347403769423849496609733673648134150513336886549512270739625604895887343551891785515071223849492903268354309208362088018375752578838064074783437584478996392522668781072563413288104998557107490063084095282803254515706241853119166294852210771669627991133595956840208367440011169762149244293378340601587707081343480044640847375759144274759472390162217902947537585456035504929305937735465646097783122472059241276391707160935484572687965590077335805447408181437481294092501070821129852359727420651189676250897465394332254452281025952499754009821006997928408769901685310976213357538590038244970465755095892989879537832944918931027768309439205921553888874670857102146464463815961721027821968644999410015493419864019517215799993538083295324908541860212479164089440446233019783695397530351937246339273486689602518805877440022742643248231434589635643972287715752554848311163339399607556516473908481999322426645257476713324858893104999759087225732269657513689789309573181941383289471935715131174779111336698640467101727291745309794254358967240837906055979572211370332619544497146715352570295945149475638638126040887625753906479646199096234831561454913994287658515740940668401876095670577918314976171948446439393988606756432644345815242486237691246643117601487182394945478051371696557595631550192048561415326891844174129475717938541670872788078134492980513678644742585098042246061311260410446371806451990775273020950718916974657085566371379517722015780426521228300415972496674574885142761749028074326177370588397735336766075493581860405489045231710516610385062930207988328689160994650025503346447484487568071147521474179136127554250947682005103840769906122648673678214657687882164880627480052441550208281205561709387583648447306060866344469416203425102699250500753759763449145717541012620343789648809923756327461705988021040164489625712756647858460514419377699374425301416028485559643138424729315698176642815158032536394427199284458726046308187637264164949129431183313957656467216235031736142276148726533145680770412691023630880878456780726661098588421743605798083789932918305803248100772266123975994270328651438950573536772021894070967084764641420308126393148173475680939957213316452572068896767810760757099905048497040244309661688872345342761622525051432742728228892766940497112692181679793395882446860862973944049269493042869421557615933178088014206130617400794765340910863345156731939372395854350503586072835463009395034325990925224429653763856917617608726423946038172297398475648369505734715661450873065538611202393895221229497229986925980647909860424174247285727787353821350477847287708124728010528802405533100980779568201539362199121609722424648900664513386428676740224419138692814156360899527729611875021507877316134253236604700316756137589613006060431416277591520048051175077648494195189598243815668547818292273377496195516590229769324811470288930725621822752089986477438101454985449937391367053580125859787966295412629333129740176207557602958261831006327341010783022152491937257188399157600905355821762691010530759474545636632441840254275688237666256884729206465880905527345606269211473918542599720014231014236786547264755193103552342108740326706787610421645049978256237982365142082990720479785844600739528443446880513460790525654837750585371634165190532481874719084286317754599514464167409089002427332150980277507265814603524455672947037393677709905614227871497669808162783375166310601775775079996838845554586067452685015959270220371099139221962496508288794521256632456489514992063853979668764848922459265797147484876182713171941456579825585346625990494809437217949973686027313240798770194248347304632342873583923182694904009291142123099864556764920474430232415221025634336109314158133448416182559899080921801812122331609305128443349263162905048140264041055545917457032044688761704467744052118833286812108751677632399807122500442631708208725635575388775037830179145087341554523983421493516751321302604677369880486819177975202730524436607149451896238912885270716860771831615006295224414601707729819064897581927827576832891434983295388356388207975841533803759155393856652348561237785854776860161179008507831653849521752962605246381036913520338321175768054955395192006628516048358167643648923414314990441777540001968942698415943226246027767614786412235956883452395575575839146461398670063261766999392417454517662822902364144820866469959248893031012068320564118599965384114767012694357844886543833027618490377611115245707690301490063405002575699761371800438023544490243157094442849850924009823369849300312231506147857898336567745461297300289636185902757092391119162569058649894855252826173126291200999384988545003228360868673882188866519993331591496393002424505908439299505249984348098671530526318046525047302002112595528048590011552112701118873407933524849820582418743490737810907791687574464199576525246466302076863397615357966353374071874764405353612039503933823621227768386354208990493061781217901476812500140672260599041370004110945672886896619942361576657245764420103261710353830923767399844257805284573224170350507817078952004034223476877073179112842996201465007328784753203423993581396510630894875542283357911509195834935321328380597724922767619746858598990800384821989126254673459510189016602392608725106746198690049814862451664109804643317744093134523539468794304097709326977030418485077377833752827059088369908323461738718201437049344288047718311675366631057412069397566336486865507036666176976259732473176457607106445032805714725661138122723844937460208570253524626399826473665242909242400217243719961509098525425519168721231207566876698794524591196652745172930083023322702004254245485335879911331908871957569120003891289213025298652009297721129120527294357628163348845671962096664197250121867070685612246494078142160171376932392318303441621246536546025642966261849211782201828423421696379437431049929364098335149034089911549111574773516924973277272186524142212119906651958499025932107453970436840945342126402683486239797695701942169334121417132307788318739897821816012499350076044091609306846507556135737591924051836738379148624618849053297255596754184968110128454374837960901848594971135291769008982593563438464572022075840814877059279458135032112578101079001918784252730381199342972173190366996622895242207261298085187258262698696126797847947840375420813486046302675336343998880879516107605808936495072066560221722509172338863292942745804092038068102787303142841506372451267417194250495434103848379490809261409927887988927188815747034646175951552702232259925597466111563081109240425089026005065278216752973398505251494851165270038504876510772679200849107869696476131874331665097156391437386670232246553599934715591304829535600421433299107871978163307297437962880596465513008039879212145244522660441624289695776767665501120359928302148576198377493917759032028976497927844470606764255845024540399519498094559775708861681896100526525946482706801593809327347390038363230834348433117370559726629570916830426704118986228808898961635052963238206885343569946699611802761752619383213546899721736596039499317802303009307340515343972683176016104588682475075103156569733034229049537856968285045649403781758556951929893633070029898513471761150620609210559780924977498348401493171979449152120578050732619691617305236326191164305505612085874215218404111732135681030736671565418074295661768221240928651247429586135717404857257701321921729988841060823804227885038886909316988772509686486079700559016152389243473414032225577105391727065753898948888973860100357350695361019892105099496799270689801352769519008039022966262607681778022851536041100988488669320477312789581448953106751134143545667889473664556385942083486196549512288977918061558257921243367721714710323119677376926371097191591655789450807311369986068391396583995371148200291772649879761526634825331301943391527776494080907281504274202889999420094915478193913932022040909748952839335140934699778198815284311863872214777593613289043610128478851707408883384863558302965372965714680497928020050641102424070552978434513419774759659595867665880367344339349819263838693728590053069253367823575394914124686898958786222170900922783451929782021907454100916766300031966203655138533545577966403566153603945935818015955034581922831313183376454511086070325907733033118610591497166784174438326804698613435164779029949196711423216422007846263090056031455180425740900363299809161002253564469411345200826695044644347244015776625346000011485236158457621409402300522239047900197912584447227286727790173815432613130909752162170491403860810087861248280850186408978789955693783752462720995250790390821057344177997436641045930289439256778159592290076998658275577808215986514438040195614151687553814129839984962605586674236980857088006538137106550131691055067953021553117103409416363314228690203234116827321529906249048105876419695801877806878616616955774595476703374512382504133688025387606210595461787107228030161512893039347166617446510307829099316073923388148704834636334153500560653276590277626532615701217996117534035990187145981475514988940257656578027176418633473071502403918824686574459676005875884410587661321434957122199450365999443417691282368605318454354382055132667806388668459640863476624902724607063847387130863636396182282245746574040950846702822851573092735889435492632998322026150909972303776718568069098780519806204705704575330626757979248187149459866939174082940967334412584162822653689744101579949063835437512689275048987274091698814749857920181193519956161047584522445242034891177874232731411193512495547157863027106998749385959183062230107529122655348735719778825793105252463989288593876034937324349965319009742162188819358741463364800835703594996015374165367128303092251705173415137846824524375866609694439457267864759100992206640501180718967919610327965052079999744203112372975735680021377592787417546108878520190580104513787086632944487481548743172759897187175405973516155103614245655902463721765344704239737356811773983908904635376920296002873170329250143548660589409108654073380012248859842993982590798777993513806010442476546852214943626374017769111332445340476648643145742013149551135241440106435698320377284516542884205224605698415865527403996230509038062754342477249936234722578321432479391071629339898369395899100335808293829827204195090420822089885676701998954102114315318680772563116661073948651636145108867439661501665929683259509832794566651999506669834049446573326999852779955227726171118474136370196798788279273341314817501907723152688534081605617461478658513995664503410276766571589273404593119979310388318517000350040116688701715475058043338623249624986553007740397201796241658290886764159890420346106094525703023721111278044237609213984342839968495722937507906435083250662135561647530369114467575947706719326994566554331933433853007424800461250943436273349309135125936010788013688791393591611646224982474509198997158093077631919487621713826703549414043248438679230415357458534781982694232713571553419902205305805807307044278408669461721167396320977143520241098900626043719566038939964714367927069351586195658120924768997811874347270389932129595093095046032049034773049148649881866478693549136521420099349325039694008498788766995757221402549628379059266083141972294272965260266670186314388224179270874074678331322782575889655045784283583361520759161989782666221591288597449070497938895489061419533473702943266382634597329392111022402614656132816966448619444728943258080370091617592374857626463431303909413681345372822035238037033902440011279474423821661373847532532752890794106366780128645966593618965104954332340158899972489853476098047240219186228005595677031548157080189374102642956411673310320171743277201278199170115099275842485205512515137166100711247651059501578972061728333593490300044688230321215023520331444935009982969603685779515639700657228603652734921840820011440971903856632185341995584274074827178868808191200450184545963725060546478413431371626945235686280736889703038891941089907029591545239725042211675222495156029576925251576321061510473805390890994891798670942672408335169631992555720602715995135249609755256208202974987595648063206537255934938268800131717387809132509542534548998378550817579655043638987855984494795755797922370498088095764140153668091184185569489308585025136494826046465431888185613875219794210637328126416188626493985651131125978592543115138701581454842654163388620287840398227558720435179990808389921817799201401139598842930671856458785719734643332744773887999989735705987679407440302909567325429454381272786025070395442871649025484487220592855917234976702441274315590825829199117298963907706321068088034636195006816353422426217865711969963575356270856065387871197732102981630186141554833647298308075792867756936950152246222863120843324158127058216056260014079043189792394440265315112245144407342210287059773716054739192752183102420941412338982997830971687658233983673178657580519318131548066928097564464607687305643132806036471314234960928561297276287303819550220599768399850112278553059213851550903322617043215319929876837474946185731632379781968321015388044768643621273846924622378725977415314100584040771293964897474112042560895847551671479755903513016918850797748127362217692256723823090783030139970659157582981405402434487687791755441367147822598272456028113396041800952625358993228739939883103277045121745369713490368217670233028433468449217341181931814537865585169536686524546747412836472791801133108132204068911471794391050838251503964430101240919033468239910935771841921578331476786589790360524449425743765728661146052251066565594036028155880043502617986428541430242367326974348159356897799321801278039567156674822719491990275579598703163281532502126332900857268829215044857141650112643633806723614552899853281321466540111021607977748194069316374337518078431376804384837847809501148646961540148393800921849029094408544787509834970981251303591646497160332464804798363221868929111240699327150489989454822523988906721675905548386503944606288920465985395784167208996176300415129563625613751325443238941759062193873103643154619482668935177578436208000602106197563961765831496367934267994797468034103330786671731195976537740489577073929302187573645883890962605500895405644490512827489934677435414265441584056566031630861531855518856815515913518881939830959603297973884252457362952386203375819954926911004289275593416525445561744044109480956161543114365639547416636530316280184849608526637209513545089231916495851244801688615253796192012802682217007567646443313114309760849513048203628047667450498480773224585077958573338020819420062644374263911054341257865472434982065318875955207189306879835694880624951408466142607467740627598854371091338314489755463214065173101865256350698591201257795318514491020985782843722682935351695451443927390111643001057155257647583354456754542777829467159529257130841596805136851661556104031829807770680909375899028943409677391927768036648436040496861647698263614926246119082923417796483043909202960750983294745147831629298799825077370613296617971992784359318559999359963990880357962996991902704100636055165122798014106464555408532302158316601748755003510223062896995624477001112095645499964610334669621591203085378602458778457692385054113112495274412377558398662840790663273188984658343345468823958698524711826349047003856217625602764780082899679592119264492743054097767232256675726372179666312535801960419895600547935583502098400158474410367551472074448986246233095945698504206032832758221943811895498958629792901450203421537825188937003793203542009170507077517892291033917018446644075405721021327087402231969479288082410473917416570147885648181448977821073523644496173657150538170232149465025852393577463891975565767398469484035924439943799327111303029223197226849379125440593187019490945480335430080339765186255703708008309061270991778099298049602814467137991860994992360337115827765428555314136941569872421609291363796570608332815376167481701781866341607286903880934835016783427126194569425447001949610689769602236021104282789112819887979801468851613481968405167985543041311315708952772709035449603362998399922086933522771437038110152978074817333909532600276004551534302106793299720344271049473052709297415746587074014431007299240609751802324169074856446924788173672349390547302748909468636756067365906275996178228266455032445994111469718287704096013386701461469382820353260497833016690049625457702548660050335662208477691536525957168386601667261135207091654711897411305141229991362471910927113605159116468964750989876158855498333666556254920228446633507961521849900584019192567007237566394945935492776928156463204412179944391067146289865692952935182100421251371065849550726646187234700089961157584314105648020146626207196465951289346220150613592178934377197486520881841403169138933266148708833610869746449383842159488282548972015527053675710859608608601206231800560115761719921086693308220299703418363831507167213237520986009037241911518390058742910362066835886810512499535261551671267218498943015740860757666831704863576570358427003742105542655859748045734357892692140618517085758212492983183947589578854628935543990438960473148211265529392879795618379685329849023197932713824189002693669866623924701748651514843765062296821606936344467621755695191419252206782945011294848219169201984117808510877785023676277958282891738652691985788162357610961721969560511711484026240235870573056916829448457999531354488235561356376722583038954788540344516118102147017110802092838923585198822249011270866746306232568175257053228107018272292016094930875637854235549881687124474248106141057798723538162939304255194742627208100853991453702574718346866198824163719538528705829849690237656669627909161527177235731774910066232213989242190289531974543380823572925805004554465872302639929219661622254213810104909640196507127671919322066793073019982856501013250754299145875791318240895863922353554464403250851534541619800058790757115535863108893334653601959190378825519959070628717430192657777718815569503670879067363768235709369640308560256838702863165098840736684139297223854512569725410366066198290112294458998375943645361653114407503074723277600747671548075299593674368989606237268862062649987045217949308279963234450274234915629988308291086390270573520225529865128514603550064171945134026389410836661352233409045356002286513611321410513091144317046664179519965791937705950399969908869417245443023717850211499423743560855137468971258313369383167768196372739571844631035152217769125902531602088791033790553857313085738909004146317079033502690080209358734561721299585234823690569510020039466125410417236060644279412341469275082965936119313517311797840316946872349701547734365754789646287851676639754379991957856282539043091828704946710855346063190933291856854995593252587517017383460352292902304712821386331016686788938987030122515152125474536472707751498784003087069280022217007962103430775380945399830592709464106705160421885902842036620861711760904881957184765616965274295363040455948478833596548095248152093715136972662778807976692467148675961418507598214790944654696929515967800960911898430627260473505305846773531782848626524034454798819618327686001098984376920027636327500961609055182701289822953227207674436820181381964251467465467735750299440806331792825816437253512985311424388381870050885543801706479735125467255397596663400299736411049224371843186888707725398775827409064853188745167167246432469065399169355991963562135527890232670190944465764257421810642324745245625363653492178941149791103793189571751899263466000965778448697150254716138880406902139666420345761694339595157630592926169298192078126458556567927423154089002807158868794972028375544463441348485006402642844440526048587186567098909687117180797485484414208727412819388677441739871696255889306971893079862317003510529131560215043221846452228774024416924687760226725177743155884603964781145275131710688085223667987428971925066170836785062505629110669183579878353396024832115827727564020341641291507275383427606661954123462682779609442869588859509431497626702434414446900830467226705968369671038715544308257712170410576813947384713036592448526240642639653725291482832758791799443938263442634840883119146355340280842597563348492702712599913862776710581949551986649374819657335377835287808801489306588788946313141310380399633221529527749771183133544369792115878992670867900652625589752825314815250041029426768900519711092899321838215583554352798660694285123849967264218157663919599808460182941641790900295444884984722779601589135635330282217770750847350990303258800586559739996667496667465812770083654075096012346742065526301549384867561807041063851464901328596655670305369850326397289978426400772767711501496178647102155041493702130282293167019892694057222287162074479238521067450059694784396119067249265567837523959162568810717543810207518730562932909040735427942755703594955578444462223440454932383726036453997647687268999158196558518649107689389571683006271230405562563671562845923402062899033023388669701231262423812317412499975218805006971730713877778175790912945672305789441243747337628580913306607946830149269716232767842207822572218743749416337075638361621205506854856000469122597928317071074356682591011146840343262177342950791527764607465325613856412481796404507379639103892981777857997770496720301514152738255408639942547535672710966192664065516858554293004340085343201178032395377616547888848888530569016272785980960344893836764499236470268780573130911129108971354160405495944702198290660641768713690219215157048868597754434637318273105897321527684761731490812863158731660076472328085750540478783939996316655255862449718677604503291663076368942096685490386061597448762256469009155397015606520442274254395212465853564237831030754246896242065601666562241704138649259626730620181971255217852373669745151293040569966673251426114614025439614671651031757202535454415232123887176658970337655039539443597209738285768520277826809142750966492678307169702060758083763161430189858451350673374997897249394738006279814418480232970749634911919290206303914740275533269601509676482321902753701562962899586723260133138647431628800733595787224410062649441914856704393299033979672876598046240643510395615390791392160602295089599903712050361977719620430973024128243433687661738727843287225158159631370121387666953100949092228331429139595805864714902707944139814975460666822183321348854376631432327108448393591571215768929514410426101492200109185758904153256108203065491212299384889533751892884859636061100848364120831143851433184168095142988151643651420823303905403159971770218622852295596675473955809138378300244957958416989420759803021030884712307061684098976615898072346171719102644877645072190476379678747960569302589012920800091739215579073876323276040282598807677644762327559204332066349666736754388997249917630934022834257177668228237609745297748415595161293371408349567288268116596919580840526144798108972402694883995425775330492231654966440859660620592528538951345778238725283934721838318175720446821083528154811699714591672377821592826350179442527987390941895279589567760895202624591084024837539760851120514001438359698153292368398933335027755014594012011993297186750505219813005455563294243772075757986883918753572505531234863787056861444895693282920638660681293512251367617823130083647994212864388572256455948082537128706117018397408928609787056647687572445989633063987381775944042482193345672747527189143337837089792538938134672927824300851383857832086376244663483566590613108942524784045829473855251291311615143287232257250953681891180107412649704844337479991113957749064666820906212154162049898282609712102337725227725048827462878530937994486444432708639038578133699402684699054265855502358732031991460029168017483251954791600095611316511563723999464297419576925614228005353594299916187864387466139885307988290597924843695071958224079161952930554318665096593527950643951503460591166727328428611788880599612536804625866900282659066868645793419310545751758737415678559352558426813080876496126211750037830588075231606345957392617792031238963785300701205728232465003188287480476186209389853890778192109596826020261928666399587155875118167912089166123492547557900716203713794510997062628771784738459403728665998231364189860739384356906476206116152778052458219022339828208203491263589156880990608902118084911024182006183845774594780369536939949862421464628735513837096089410282137462631382815087529621039434471551331835592486491902447135429811952541939746218722085921586660328201062222498619036673687016822824108716265516268175709505481985371759890528784285974718318988178676279737379991159116944985822173086706072330445192956025159840241072188032855705851889065412206920085840895466604775048963750309838028740421649547330940236628622319852554488711323495777990146312616278597572826828975975551152294299285903518760454294946207855493292117008439457436577036324513939130318857818503294919131094078825370898308538717044695999876364161065340745581485050932186467768657008839044065718015029426952048385918267288000579103415751198153734533611512094695322906818046996327667338695944995474292090170517722428609219612258000603332017446417098137779496648843550138732611333886033030364653793208737918095033462093999731087890086162265265176810347048777250127404914530360837504115203159235211111562778580131772359321866951576203628182214542954210679564245284692244630525577924166497125572761986606629557222228854628925229269098425583150788512850846955593249156634515215417203685745265824460545541401246325400643295664203012839205252982533108807592722475803775796976864720182542205246845658380861794812653958019673205047983274582200992307379803874279380935702632437719686803311578728581656969735998130052584525848214220867061360638461533877599643795858508611523389045344085498786874615390677278110525888688084704871180323641719676628011332529117465917861119980953178817299220389803851720993724158175211217199961323446744288649432826601636896199933671488246202149392444046814446104165181680628531103128290650504166943785331834488481306269634329140847254120956887257044491271656015677862545774695518440873986097601530222171045147648955080226481126561993531545290919047641068509457765557417635168787040198471674498951044472855392976420884792223338391718239536760632040448439051822607553280172152143194087947704984226827666756845759815144842078360870657963449801234459286679305393123695938955763628026624026400708645551054992950005481904742035435337392707053695016501519230932607776130807523314199819009223548351862800880864816463901805681023968137766642517212298412728946690064258312786653898484040631162822154055021975861837993832690222840504514937595228347560807373159028640830516025452219535126415201882146246165866584855580565028681746132148868522196246193279392185958973035430147845332678105105088279770275483418868826414231298647527168776209906063629774153452040031755137664957858203509371540149211747994849915230694153935515123776333573610617825489957776638029449313317679690379153446277942483681956436669971045860762875929669756449573443839491707662819150580637305132002614366609454692106519980554593365169437941062939080421311674290773914121239650877725074186161083029044564865520739835079499297933453417275575020582849367821994687566139911031941588622864972218122400164877541770117849788977182805191512796043756689711792642247750924652732487764270913517083454272481220656434789975295046364929336260049018465957889444142940963539391530649386457696150704174307995516455854800045023677343897562061926173293287513913994904745136446149951233492571665560491508516014175143559044189448994742000454899553690617873554538615871283818969731861245324446588615933545424763322298626848813082945238808039314379987649558166423472055735182376488608761129180546342583576904447990513040748239870741244554393308312971643655318648950118434939728428387785435678212417554136952063569548835253309946314956294818222460641021376337503021534613997708280514574130065757845045719712094428373936509750569168802924821180687552653574740901301028909752400029289035654859505903201943762597970845168766683237390410342534253693180324129990504022853164268720544223977711079021589797075047920380637387848297710511249579986432397451716117798134151489262869967415923072203103408102978863829061107571223482682845433254993894034788160882773337973786900904539438873186206819959654199457938540868278565996929793874001664356847395282480767995754451538630910080869050419247720301793330952920956737549792669760323063659461415601226152807440157429136187646235011447934224310560204232592786902386393783743490479954685641359674717257034507270766732495347702080052312100670444986940734856701265123890853384348252066097504852428862492182738620802024041327544978287104209127820073239769193571032239311288194588551220391737407603718443543221018114796331525534137760287633639980518071859090748783539863949908358088519873067670525655706082562217471063518137486276776772632460695175828493679007012712310811697030594723535829363680915882758737591255180525510577494530299025914667871401073515731113407696829382304411185490921679542002752139206877980507668776548288767953363932450486945912324230096953671959121803545021771287740008363901119985325109884193669005035536894222827326372866145119562005903915946709064441173853084143782065120870522944027192265579868622459377414446624009207401592491729754974734363089745396009908763570475534694086534887529269723372724264350803107150793762975202291931204082056859240904129674818748416650357617368462766209092868498774206605802766335560728429855975987443368512170230590949258310959403039802803344449797639719925259792103994695785723792047691020615143465001954146750411673417696744089628780562890372914571655859853288873703208586597757934260947859062608634173529437101274574576693446716540206324323751919668478026199067594008868694016601391149790774830813121552265921341477117916846751013079865944083944578469678081039859475576344211364566022171621984214572387900267064263603235674102797570504089938644794304760782598656812715771729971414034098165290331838404225321165337892060602250948004959061483569090693330010164925777259206118983272399597016947251702075898176481767081722455558013182550309675976527539663241793019751520453971562772130900868207543589697099829699733072120376058732675435581988181051842341367534091074839345845839781230873459293965126484009518500115164214057600215679568586098871855791639247248777018316003637266671996623030235195075650758724976983465263569439872951652859670055837671684328542748938372687190242759814431307951870860877538661510420691175023213168567167949602158534066933409974558742764296776986655981542242864284141296310930292382270116803332878631477609466299673915897540652905360417589858774151786361286740209235870752353018619164417988475334377474730738715550622897650113722005609484281368280982138924400986632818468772291278811548846815020951536802383557954489605716764029674762508765338435375630184677674804772523795894847778489130887519866526971823400594831520374539352170866901911194561700673008003996941757792946808803450727738751017764134032851970979138744254873429144810122674834742182514194935058840630918997954463700321006562683478494361133964193168225542910082682093714110048812705854911678663771726491396644183406756693091195856990521555425420663836897557871233566153753654307053680466705383766972261400329833227629065043687774235043919309511658346752852376352037616745708634973972913708025552886795942547699989880683397438640874270392567650859743814985856633771624290390606003463025504719503739786254964658417426773429431767283219400959338261161418635616295801238980051196488400283617330605017955249414119506198613019180764734653599208981631167065311787011886217841934502723007431907904621450715595028837129306296172925039014371086044213185880355079737495688200715626266848714152728922216244408384443892276136564529730002883974332414823800891314554404351901367106348983305968227130286965821505373950931531486440317091966118406803268000992769595678252383959482391825085049071063673149751723962753221454215437855141711670777754800231995423800463574378389465457222608276092849644357284114749417351505223667616405756442944625211584987456147642078280595232792055821385357036388282161739258285536559383906768891546165000834744832545309948001400297394344507483695822139822133335336428178671150040257598108882650893483173756558402436928724837304269727612176505867320072095992057939551334738827032042136607902997667082640005709174565719954103118441021542612752992205744229342079066315471818579241365133857480548051043580421033440198685478496762350212438860355933954875397846648077328986583805557107663402413505754471186980310841843112103934701978391280542427366348724882044621688022071316080874199942638528602790786517809252360682134414138967412200230443037289186808736813991260515666159250062363013368402945841774250841862947315897406331533890905658216842922684216740664694734686004525536447003629480109270501505829405174868594672624065953348893027825943059296932932604045331934499851325986814266913967114125410528382118475798136485169297595240510823531868295627446167765158610621089573480331101179631662142658710745919413305035037278597320357013061028632186306012027038991742637707243628737909899461425163266929887953106496285169463103275823246122314488686528385212068010434768717261648161866872242926623901824129480931834118049375851684736290563407743148794354874521706556234078240431208417176614513659741403027519530213173362657281454019501479576502305627368164945860982635662649791624859435753278856121029793929349533090802179662679897022709376786394379458290681991950320936962967598943846671491572118177022213475746350149036154804355549653161721225483932192411766199013520339475859028835814265171596885652200146185114178341943018840757479424648974471095078219644262918848376449419215937027411666262674331257418516119212910022139619004772532680870812494764907436586605412180012891600020880674870446661041508690251082114245835825893770863304346253152806814724709229275788056781837814019656807257988162221923961170435124768708605299608884638122394425694734104612580492830788405498062185735200214540204427001006077321700705021862960015076453885529539741839578684132922428345514619915112935110584676347919545628081220183492626951583813334745190921091497906570224216292935842841474101187637284561995009197386920034965692411280380768632622000150926926418312172564255665369992941130608173643793666586014251678241773282959475854158605637851129306729149861203830183713182716664185070847791055578956578458715260634297939846250817442951999426534236039569882418745600280974910094246998538695263724014868089450257747371835412072562693955285255035624195541167402500990968486637446079106667678771894670884241874792779965080585709833205291876129019545912747093107921952756851530114103106434331002173248942236096969804867690361836653070861970449124262935943581869825936187342872237290904540326341277967016519784013723659846237165919497737223987906885048272349504840249702591615586531024218707095374624409186011008077670504086317364708330427667394840865460355117722761902123968722612745473083489650824317857612467996901162376188642765547150899428704015924414441224083172896295933913991453422277014214573100120334740286913892424683504400178518324615000309011983345591509474103936513779793896115934950436322299102114614395692065893058566710344680745782391012308715114634754413560818410364591390341171582232766574654070189502871977292923700656704478590911636949179083628418891319930081534605686320682264678697054237607928102683038893454576312429034338505547138439389963303935614631858619004116170902672145559165144744243541322790515082403824152134117358526228347507605479855945389856050835149361767068185329152557995397200318122130073266465259786691328665699494750061248346108677285852516192661053708054585862627881107931742842740952720692997292830183592839911023650514417976730093990878023389925620655203908762783557803462162465550200357058676399685051085409087518826923011542130567410595114508055518654107763074844721291164029983566515318377341124811958939810173745319878640823198345025121592741302379489195569166570627422089977893417523559861279252177740118938394945740353823990098503657208258291353433183057260886464003798229176413195682404161787168133380507245265535353585009408094403823936049147050407827533063547786098908507303177005820246532169771980069705235971799165986290859573283964451972547127296226177176849274742175515094802469653092940216957148071634326704133261020991835411128898301808762900923730241390651656169499761752704310143284023961899405713297401480807176356599350219184636743394969858055900630571865941099297532973693057802485446434425499822665744454056330282297085905821661471984461748737290412016229110902697107101172571074840238606093062047597612056424354878440399478707625775673946587466179087743277610847827836247459634835457013637841215741980718238572174266873324103927085160266220330510603109841209551455704402360494163238117666144687034029658177314500737417466409430317276228921515436042933262046518031352242250853202801257041682973008070536544751578209598307516336428881674283577994495440526164379494742511027916836946557383333823968460422242171762655819253608646276225375950611294449491578381760525462928513581645291502240469570100933544467980609570472399616799620870435361476500225755586961099335074005424655911643476370335224701529983721980235328444385391514026099672498832225852057642871378099737663866338056482960463345988158556387485229927449188715544213639836298230831318326733096572334949116955130050061719553936078954718528746677966145166180423595373128819629872186525555291217984843822390316090068159891801139074999582276581472258901418351130354608992419716959462170420526373412118656922809059047592634148773293228291521768562934769253462891115787435866836109640635882714841422517333305387269847668473432530866617788579007603742432211621940320464637889605892448289987913870735129906185400280801360454725544724640770661480361948291416424735091300709829855339754158459351623359737963671683960407795351103127170903775872788141809960991081211824618639253189955871193286797193745723594919271725674467585650407642750078389013176744784913976761979082742425168863315654451109591978691592778931293902194361879686469516936240720590493323740785105698147823906956815223833472488396658356741800498005935102373184265950625552814228776729694135151232120919496329978687498135714830241895197053437023262369687991935442039323220594627103396480513857235075103975332143971947377434002337441831479135450783137515037106028261947773902086549297043810239067754408778132847286713310203985236045196505428609641005835780685656248687590474600492585555428796369305505491544613838893218590891167321677592142371923630610272112118078770087111356969101626049847932241163857920239212908261156973099381769873486190256302716968103902727291319559523618878763835810175339121645523025915469536192665107556866542747272734727707388672461447589154382107937841157141201279433261593858792518581130530812985900357404019501825110113691167096569365596202643163343447143163827195101761496556696698826481355583302853812335363463461342698703270287066554930981444067781611396649085554595264539749182710285999854209109460265974920389086176039081511609218888617395951990929008595436403148205081410604946667087092555667227213342317729097821889598496059063464902392696124079336403327811923380834956187466716541974231833732067333873469898492194155815826898554078519213516446489022846851380315281688350133381094918406143245301591431646200554989689155929248357106652224790180890865991424837565274866914483583137667589219758822065836557016592453019225375006085996529363433009796655047467454247164451738168319737759198053862620035922391190919947445676973289129418784477335336943794921751658921248447008206399344871258477590664311303478104733433810797179068672644019370812392076954707736382852573335539606421094006851340975332340054078394318621027520997158745305467110421400972516487325016782248677331471889662167515887431693002381033773893835317211157152934662504432379612289534288558631673231291378180164586645770520626219225944113379436870801125855943893309690454590930118151471755630640995862461664642775640901154389559425436151931894676334196302535082514851684477463517549720867907605980364932293269892903559548035104484209736046043538433992807152978950028964944805829102687541104032681172713643413261096292770293803377978598336249584500818756982441498494889664685848881210107345478298634647819399935831963040184374158590694640286877130434622271918294026407299259328966984962616958153520171893031728129765576889595761768684791251237663612114144354671890765361371263244580390349988940333079010007845513496116092718125318193810244627840526690046411475852932625174173851389902282423003341968794127879959123310277756602973889183092784800228278512615796283642947615147366465225941573313218597695453146625628816543296597882703527382401567857326689121928741788766725558962453952064249870942009399360084315788438551760883562179198184460744936438501522537645164710656188815238201666464676792925328715780694751336577888706332397075559116527375918314858310582811895468058093753322103265318884256242631651973762718793331557100673662396373670909764208709145536677290309439291902373180724321946396049011449417828521845402821724674301766509605828014336494484013515832861732035487731451456823969681994751985108603004003225066649985713274169911003965143119414429244994740152073511255046307598566578657713441464387893388906213221256844682772135103591652745488557539185383845789929159554553942835000598642396406086143831888933233346707036375572451718232183719934534776139584750450459595317348323380948064183363971414249753990882810853492927111194396022579565822093848534734131330685856440928963876877939057331793420681338811739531801945642999939663593263327211011834806706285475601755551823390765679333812350782920124596335346358421217297866192457605537562179458179781842162287037978158097226627081077123810131992022270283460326790948797667989127751779260199235610145139584828606595123628563797959889653817514517019733548965961964245427902206419752898038969250275160625219607178098192088792438856943991545910243734372380056853377345964630483344024245794863371647955562319762701665829501092536228466290939095739407962503595026339125919468448886895734047111137402289498169769313579127363609598390283490407620598944504845745393408443684997158728769420396117378696445774494346316495288786233190980759337694246285173438271676441191493968497119550906404550504987521125445759583393225247254352065107573069738479327692544613019493038045430233329748173093641101711284371960341435203331883360395682576127310499243465704086776483241425836432686034650202405739019224650902427848401553341619125817817003306962446000309371142318365258923999024119244449840395600924007033955896150703936141741272407338208925790097744061218214617232546153912264169099208415865262333126477451898644287930548472111575827658588046746448827413160754152901502720005930966493201467929619160712816234765366112708203848413051011486136512231305753712647958148307981085228002308668330027157928863058626943941465558881163853898511650766575429644062122818483631608552101601770024804515643096209591772162496770544422332951636050965074680111998104618119238693977051834158201492237741387118661070008168971877480246657169542380780812114215002597805054154949646977843013187676548127652066873623312818773861058027689816250424077273421226077296183795674581610687783051776730051112861380260347199984283614058744257825026447638884398464549468686000320748830380592744267081097332519280210847514273412242610680248349791122369146951198203768343083277390571209505345167315738977252167799829727138325664865667280178714987499794961530799007715069284688221675128835501462994046975816079642823785091667829134532400001089065370822201905677537203480249794044343332314007779869097541038662152174359949479563793358344044433752782644416681113006661152320434140520089211585565478105983919988300292587070492637344726333272861275273864800240329305693459864358647512122614513983961786277653174288788488085430585253796076236688051469418999529608760085130526547782301437248786468183688534668591949670278343913108870517876656081838413832988422328732421016952603649060446314289329546239348024758794398694190872933314120058760088363931292668921135267336886360318910383052722462917026873433079234935439611791284601224843390061955910977116844142184121107298639325071789360996126266218061955075382893162495007780950042270244687732085174508712871558266306929346668292003163247271310117497044134327246165982714422498879477425638720733170448383514956262963530505167781346269505722914936151330249868276726984362457514745341737412793645820877182450241855341059406567110851612311510891186340385356881457707104782131811469225510414534857441190692394920962153134857838392474761584661071338332579864082469706743079852422854758591940187415319172775147450474880836410535725563305981248611740926977882928765071644658569503500941646069886505181747851791841620578070903826832619107641081208648204133533884266396094746129257311601137339680008893448109793755644245398626192670657699744834182038905350273006209640761442492052279325929674289722628416671289293290201935310000373942023224618188926734516971914633176645357070315815212106953859898827980363626816414723319726367920067293603210017807802703540128841270732198299301011530052819628289339744958962236139858470885849236380045410723900793682641477061941574340358220321086663224593605944707193909067136468399062016152671532331933313948102664876580350594069767822029084051528635774871264707086422025929263856001290995192393901706322049054884456043781602047643203203996874736144770189127394966279944919200921254072241397207973000751352611000688302319656892453603645727998217717698739256995995811595207984351838976631983206438041228084255256416295914110010516648731511812906084688651775205797718186388884654499158035006112144188313065767218125514622213875842019129252347039796307320751391816189141968124100715170999062372237142404860284991015561768653596541693507685967328638748174621063955006608347299551033451777780586801962030654668324924014666056782699554256691616440725838466613914914996867519725890208890257449182119764225271173883689272544648242568608132507273463964757834669803415439405598844511466596295287275858546393679028978677288577763704344748899474324807113330754048887627249609206299251702553959259121098850605503916257343470184189329742494258621595477202427340583282482658885607135476063735176396982548433763364973442827612068381828830093646733704526373521194808503201948631071433135914088008598808035934463353366501654977012298497205010835729906368248129667692336323016783085705025332914176211619226100325832824942934472385712764221443538287330538803259319540876368971151928893760216655789712854054571010486904553685504895626996444335286110762137008150891750044796360751583236431920529973362176841060863685782112404065249404926077882662577965988144677206627744242020051140068492879642596419155551476699531809319968803671676095866867780706375517504285358320491232935330735442360892874227198071683646128845029237734789824001739100578677664123375495189798077618882206484221569423070511253609789730231376103224589074234585759248176269970573245771073266977280219689140289469198414038763978912545424943995407456351045779584203642774361405021551584744518908073475254824801044487645467968599362756025908972327491389171967041537079753360982259230966921278457400101016256961896504936057416119873663629992529577820662684070777066061334514680850574571664503376904843485596021158985627236444948240374929112403179708684587776524270262681084443797642253794501607767079552770177364234125516791791827620346504192473739602786611435582897216342605339019990251445761444262625902933068468131748818222690489344866121686110702207939573977573663611847610704012330298669641514714228438683131294814523466466688343754507438624696771969250612602109778552086850351042832406620692660497084299645906249634283678994853248427759241383805591805566811120074454691268567234236547208224581603706226311020131806803057675083749800111053030670927538052005157207910470868465459078177678420160945586028978591740801920903738778263916119635881675476245841689449369904776954836237370667228337940661642998868794326399696005598679322677007276607324156617129575732469611410448961274387334123618850382727768780028226225064577395403754332632178116455903801225744370080851101675023841826649737095553651042933914950041807641360099677207306164694881349791224614942762992747333252499178854667938442535583604579259453280662266244239836022055833504584305838334554251932272720461422940876252673880261125154862672324350136862436534467156015099943318633768752748643093050882796392997894374212074473226906912355519832500188281606475391536991023627075366209613436275929525425169455356831856519716552533162837776876379619527227118998995050416951996069129185736365505177635332980227427569822386609696271743660485647830466744970938260029880502307163878265382590332826971880126063028568847594160417122261277371801053671326043942693621888201818924513517291706133138558614829848992721902631283637650108186706626168139073261640494228989403777854276151409015794738890914455614197773149425082987576938212658565480949587627229736393170710946828757147228458987254263015208887234485651585986145958020842441028321991814724768749631477642166313667258257406980516760842432250069628580989304430182547559994308773903212031734174338850348972517974955041956110403879754792486036267552343307637095786391689257545002955763623152278836015997131657782216198637212380524507876327086618457410491970968815009095467745895491922149064600168540014917365787297610115737945834536483792247460671339572413500236152825030555850565641705152664837110071680375034572311870818214683228153938626162505871610099622031490906802598615948358834143624670266873719522604780887397598815231479118908510546102196969473342565714079696849774156198240312663331727826736651103471364296345121876361756412534439843963993139025095860587994323319117351221888464383369550614056904005272280487666653772488718588305341261687307795165211847934928925977494502523539905593652451522802119681662902784809590038234947062416428546993167436011614413676696698123897133811548756293744316031027017325913094628779872983144362558474253134128585264050179305066005329795359196667991597842012534028487868808778620995564963646999041054795395780102837625233852639198738338821567090084602044350037672841174955869567895399270238238363326462351605624280395268225583985851374215291973785559914861912593838207120519735414668897319201347170593110459113357090825917681406306418195587496395043186218478792160960961385728446177022752838299455280266694852802008392907853590934624242390938841829700224946206642673859396453950014669188279528958658725492408804862057871820342621998381498553900145732429535640379954068937730724967590435175895552449002119282380161889621109748851156138876092469597218632446774474977912807263735452267778132793310800720865598542668481642556463971266450704815106448511271648601728122866735614241008419312716888680579540304280901364430095658473696546721980942351994270156668106135481063404092489487854497183981020461698082808926569004479619949452763791709954167387817296069897635725334475020462879895421727179583443280059233068532940755031024617407567877485520062908497418136255545049369377931046476034972201802239364942932614239613766785699747045525301592816572700951634393369428429752237988088088483174190905449281866242890927882436109685325217663370091990830707049188550995818012613283486293922650998375727414762144877561666993010128800431575838468796202912117910379706889092947638257345438921393260048022620100275576985384108863418835010549185204941965004345376559782913595973843056402409079616029797198001927297628885465267033819770408676687157486948154668709618676913453185354848364282256393115634002075443486477757952941018255019331896767819102845876492720778132422896443618699802804561900157737877035135169505235319142270920603322578345439618452902995197838735835194736959456378618272405699221912465294470611162379801662175205120413572422524415326851231939647211983656673440012506698432657656069320382360370778017767879038882423522279574428509661901110886243198160230360894988306974931000109089156438698735188768739337867076509561678762373468062430327627795349002616136184358301464509708522711041482923460376756355991865270437633813936035791490530328678417538323972035202763753638931240476600721097355141785760905969480159307618573484398817617373996796648244132438603322492751107440344791072358005187812977469796241526270723366698616339763627034039437562756516186419067085482661187883341648389894851111305973261348989007500055669328376556920114555165223645300166865490373714060842971419837033964980773362040526978842825643655940714099168541330423065832698361072644092859392240525334210402926369741409538814567955460253463286563405053658575235241327033627827247720673502694959889432842621148455115044016344597704300388563997788698314650219679457320012023050302662934178408050511037109635070573601051881536292586428400727665599747702048847421450337059060328960415236866208976819243295617706107548746298401857069134504755545817282439988389101705577326479110489491616988844629957373124102445140354013647974813586008367605050841560352133100448164312366764547969328227676090961633780175087914457168878883007540268666924096823250455796484101246132953813106113236120518593887205848872248280557280497099939561365445404265427459012343417122783996245851709072456020411930871823153705972497144763022474208155161042566659051176745853909781572753701202313832991839970467816500082432370506990907148036607986758345636730984893093634187838305096362520719159311304900567499951997828518735928649352090098641390112039188039573604603322574029615868422694990115474434848741996107495667286378920360403613912851888336013747796012451329697717419430224795546277011192397737362892774932815996523278809052612691094804586372397809158715067226909742077832098461325917469648952191323405877145312727617759558818160078762428546697706332918182928326327324782302719650159969715056628131024952932009167798361004804040742829599303725828092030126971144313982743863256779378040478117465472273664894999471218831365097234884004787810292851977444614445019961075288764560394130124923413557242719311145527977443981046512945887560593031809648092583180358432050196630804392492718581892598811256442016063623257084880647004433136754605364779416917554897738638495511862246366564291381193290490442821565819956022355771601604418931694491297454766551213249592618550076503728991094995185966699298872138000689677781665272582479696694487227980247287733234255535311802273181011051071635764269346734165703477303173630871780805794391789322749121051664255592533786475457633130832376662723025705996453559511371093955286647422429940742897717299498753909928315186774794243073899660233876023244329169621059587642417433023090603531936159888888917868901993538175580294058088837909058555698459620318517909163908902134820041511072908013501591912398079721408001970708937120327865471460851108110222945335891681721530311379497862112913333973755679769989258376700329134239523602427579240769499204807369741054559055655491983799646208306665237701335336189815317711170091702647886666192407413087912011485419906039434822742831651660307308565766522715181286786815620018929783274912613321179804429778296268293917384096056863072573375902918962661241786837698383855761433162718935568105032320866794949099252304134730280280292346633294201304894337613613334097237681872882827114663221798913471104204697236119432000796263673421815696010296119932670009468686915265153694594060015090229346349844867681053274148055159166656583128255743856283938448417843349940324276943447475308363100074883618182821170254253039636943177858624662094431476547388062087289934481512265643319606219976744946191976487725765155485654832981275818538957847849411324630319705427884927730731840221069959679915335776422078743753232559594629574595103079714728183064412149320589131702943726534517607955305256879518480458883681675873981684973106810326026209366761582292950267854144195789417170908724495764701946018307493597314483982131883914184990103225659418453645699435026116330899488568373314689688629384506981051409399361631314283320497995245975225087277004206065355227404867931886924420725605827212562609712870862176878437260187356296041557191138494692804052475616796099324551416493477217716663235508669941920011715670770631384069819405937914207165719005928238091938087431881754551808816863875860075210524275295958618064080341351246766289586228944063634705349698991589677205021521024961485737201368665775292888685749973551742040172307420484228063319926704202849821745516286625787319066799293785852179353922253864600557359984330316568481795489821285588116922889905452394147257861609686501787864012126848567266383138212487802747643229802903860320748091688054717889971445140230597777222344303702565698865554929705468032652984697014801512372725191256852337348344344559302738865188754298763945059660258083909311394297056693900514699783238079589080775776860504072048573772772274969233399302879204263588059302878515663369473762159197894056761369746041517942632530368906208103463337992011183509191566967445042217764342529769807394884735697656709345026730276388608530459638723428362941214026099546897285775066975790886866639160667571333943118014708005411925552776613784777883832688568401775812447611673386193760956017407127187719662729912296764732810045124626952768043511132858916044185051430310617234251981676882562487021767394661063647526593159787031489285495347440507014328893207657795208769487382687502126992631042082576412316047486462976404607137881510438117604392285942416995984800349720651304234811826371142529806558662141436496417810124713511553938132193723503863324121924533990358482679031246877235137645421693431019850583307341672835707762939338792399414515126049598547104335971386164822982749838442991320622587742388900892058608648962771063238148504405710223916973289806347680359189362495103319812119863502579617610974226957197033991038173504398431401139602655853834695407657763483988522022306393349534018021205571871303987910694674773847079911535809827836709923539744334855844825659661590271291634676489583846322651279424642914201629003824426712638714670852054195822801559565769925836132788153068318381999605791733301463934108618618041011279246026646503180973802595155640681539431036095070989429020323777901166726952527136034243170678295189447196298759276576380158370914123365550968971690392886045240644789468585115362539721290924334887777408576227529914558417289634260446996933376309334479669644375162566026135134747414760801703551524028443270389932041178651470730977605338796683588614409878572367114414776288183675652452076226236350841656229758288067603620973300562844240752543302840957208101301618594060997464396235766288387849663394978530146487152638291535843962293958819985627429700060574831503948525830195837245932258686276764895850741462557966333557648592907780880064144010029822420898255304024751702748363655420999827552272609444512180755484110600401688223752457978302442325871913221627066297296449964354117811241860592178071757815158234337552080746371831561663759471952696410513466374564057111636877563806907506612639854572957339385805127587541907108170731407042297991140745659674830677403247037642919570957318767242134282520222651661449080660811706386137213103230468903231895513441465822660162386358432913624033820710760641167517382925748200884201696563070362057356222161441104482898215124392326569456163092103777218689062589272109393702171665199534327737604399430341491625844158279432898815992355315722599498993428082595258758348485556262331510154717987145544520322149529855356205765963360134571094899897643820618809065347539914543287952124017106627038909410580528980919973912040075040159882320586150210260799163779389428998887096939602548303975101895528491830990462954252815778075784100480122713604318593569010575831844709994517551097185115947053430378543536205710995970471400132044480877059422972529951385579092559426722821629616015535344347616350637511794456570607432247604381603227772701706554663879786598402081761302571161063987773283894274716206002682009238338662990257773949822447387038619170728494907439531892467130920640929181568378621404279102895947532802950021659010093673493711713336777099690435075815715722455273645169993781821205703953239187582618087494431918644229524922313309081983719881732265913182965856785670638471562335698638698533301001967006266782326431734193423967883262553905411481227543652335515018543487190735428407647854172497428698036871946036474876951818385831728531955470897000614618575493147762187186378491770064302040117416702157742134777986204729919472470172062706715331134620612726778644911217742588717631537708880980854311985833644164919353261638804282523413703492005891895503719669731113283199466662568170526639064608099609620594630752534205827667626598609541266176945081624202234597213928197753531499006686102558614353977023301932583828529628016958870096021690623258200990897612656211452614399553430616532493681431602282061036929318945701299818254434943432163678089221547011401933795443918496432914238388689332466770859231781096712887922198388372985388676209778949953695528398722584969166107866167936644334910563431742290888486649304999059320907255764971836066629830817229499154997986509429872174012171626562096854061380795471761325187946431579384198024997323198651315491216800571161803838554563958259034531677374511251734101894885811592836360034822603113399248107469985237244915314241169272438143774643379971574266556951644538293189185674905677058149625940114686987328915702602399505574055725320873794140997685424149892498485796262443323521218962501097151865433559590334475380064799876557293727646591268116708406852673080688569695586679518398645378880851913715370659244253830487609700646392938666561764450548008372672160970006097841952392391388403048325556004217768846678333065816816335374381645567874809443743101877401984614503235057735496724532372420205291743172562152381170742207637769801373503706131598166601437929051138933729802911488259436553759647131276817546781580431652349246549703197198808540463505699602850673263137496611919745979918770535451337567615368797359128566080554012166683092151389149651339903348249794515847916732350893149405258342376833674565129531534842863493154589236016655393460965499919768009707354466349226433703066677232747593729845041549897169768208241770977868159066500847379037506721108767882329196352250454168311263740912155596406087112861992836785714718378501093431998362447499353416006481423786646323969606200070389941332683942116809401901000057271579655967305211860334978130107254346137833492345563892783698470114950778609805406989926483932116862859882244550572015629259144821995141470955326881476183459205063702756178311276077602524301914841480880219093559975117778240896659416224082397237635365995977461271827367341814895508871351866268163614373313784972408883943806711669337382902601129064145936831797492028641693883368184441729142643081353006549817106095745971888421622517246912145388400815445983185716743831113030841496467007860547551534067960607110324578092038956932990740312005739663784824547345403302928886866010576144939190514959314723400305220929284039583259542282413295931257486406288151993273551783788184127108180854180378541507546093695785867221143133224520242757603953528380600825277024464037054283236133282982001497649991739932089731449513358841374894033648487151107433599489112329519121176331088831564726108657023730479065928483725136740813559847624532313909898392427483244005095033366675889735333590449158527536289623233765401554247252637920499485661344190673224392037902926749215664137108039832330522840301957403368302539040262899280949693064092974190148147641570388218102873219545678552201384361455353424438011354289967199971183880640291523680987625383795183547925658607914532149141960760160027871067412250710436510368735729022712691030982607098297980044967802245915749215814644169126679583501208807460521773760776020904144496150105447641296953384497508134242736795167249060356426364954474071356183032342846239760063157234138009544425115964440607507382963926160945042771792350901928435776135362944052040198684232732402786957571532379221220597198163867351452458845688067661381856338833447597988190093154621764813659221306554691510507415292235265877057216156215425418301887549358525882483300849860392621718245538932071623578062631514457626610354281380126951800858047881985553158993755271423823004499259508650186816795482672111968617695016372447511831673820909430405271399113843553802884216613198088406176982191841307429591749707241032340556080388909844061973659338945474640777182908424513827205672317338072073107929394907603651578978657112100000696887447661795279281718876938721013837633381329494416592944385044079182433338397213968895055163929482066273550429321758327858261635252042136503435283893915426492920212227464976118647505078410699633058147802611937563356876081429312147678948492050800387726313811739695718945400572394292194889846559605478962889529169673110285338161826739731054349515233435907922142490809271683395208624945235110868657914772103846293791076791697932599160039310807717869524885746715026258539040492901843628869411519335839632316657949985558979862918736882424691434184234441688130026784343965967725651170434713503593213187336703723022188962267054643999423163081759443735179899456489486874485454847590956882147810210524111485095792255932394375142131171871385825537281966470474324812704779771511410729762157600556700368433581462237671567246808308246337650417613682756978224018713829490056442407707655343209281245158412649129273452363236224630527738809604192034326143098182627460290410605481399281690916706484894717513101571207783130983948326954913489187399987383510043268005542992203035225552861329007032929888941732817328259674958946432639708270936816187420722669568072570673882208125407993450106627648290288538115944723136603142732894557666490076509122097775020309421489903666186380505675678256629595502280086867706720398481601583733016123368799218250669182916584913569465893603980309690162500415783882843046302734551911439127011295687497717736816919618552877963982672109126401435283329692982731246905335409167449107565053620371471322071858010623964730003397868255678994947934142933023180217460266820229897177457632235350232622723298361725216862350430738222573377215794717686251298430809445189690475692800229711698535869470787190419547537419851308438464565882004426251297293742643580401282710993505320138446934268348873864534314076671255527750976527467804455886650630147076635293437365285999756216024955753145790494831790730774058594158623211566812476655667621578645564658435051779755564883009782467704695208051933208748599305669222687707397379089785083180291912622030254673568256076241399811347891304762825623063144324884914900640179873251359411628896497983930283328401477607089009038795868569424083153336828503375460672131731835034040545547629245381973775783663460690458436997307406364063186407381434641090361100398441970184419604591349906368804459417112405796126844559113317942118779185150639202844693810343207529863772939426102969703525407962383498826537978322984650876805567487753635748250810589068244134331630092298597275201558046709917626304096311618056747160495732434506787727913167090666839769490203946826868831119192529188717196416044728656431714112958421085273498519799877152412712760023239136210817654732537946613228686801585283365612944243808042025598847379377471005523288223812719182550941460540434164797307784777679929510162155133458645869980950978549136079389592238870763178797461563526406206519388518098373903460175188324666158433324095574990633769364859916799476313347108301977485431684531808619250454169465812263952646439224653349551066381841071640153019717389930798910328701344596563831058312577266044286968982236685315729140581752067460307323147572548758707413577253351107764677829448516471571379292820688766898720319653914158693871258024792879077560526295113610622033356680985169425974274716519271885099854905291668800615138045065692088253497445754823903202116725665201292223827430031406872159073191300285832811482785621686136884585319088854074093729848776967725398208635714008114210457694195291821130401286772930487873739088842081947640129424955068736046902133269892120490129482088263056235072907855539468338875568958440209006557146448767256815039014232244874283877036721485709016818554600209985570585336299178301013674188299676435501432299031348382637391034815799753224699059660433877568784345657146575162230522097948846060208262379072263614236672089580676893821813911514567913461578394327181611149937436821725987466887022501565817435556738162261328649633844593865392269195436051682608581116167485439678525118700875159691856317058583976051649947173958740634129828824985611505689926576159057428852561668291869529963961692558488772949350522272281502312883924184233066474251236377175727267388901058134914854926305995001556282350150155297080859916642994107432631311875058182930148677555161324604588234555865165992934772222009060423767160607963374540323569252016239542290882314163334736520405026346740855835078493444625964622713897449787227665210585619471759149864805738031996712188698788543256463249879778082854601873881708231831599276642277381255472101535733477852906982705504357540903258866675450468821581508058999079633333226518068828877596005326621069701568368074480179397772922478906408299457191873014398307457331199155950319304100404557083190914872057619270231672420157737469027994499741067523301668451062832339537860786396462908888199914276703590383179352014196956216370428900155750815401200284048634002468051643329277723942093150335412296513972863500084812774978902097561226961550979812903054636703228341941346861051355450939367043221557767999203895729325352285448273459735714996078776084203933816843343417611875823825065074537214551575087688833937591255947028852666379189904025489320754987415113963952745689329132562400696645211332643819837269976448694232662186406456141094711269985635041443099363462194346796934299076580385956851249609179421779225692092394455503690285580903459930492637708474932912201309441082400062398187730274337754419187642575434538668750157858122162985497238029948362626064113181754380598460803498340788547591005175698821744832845699572927548849218639600929167617029035567195598916129615748103547383676533434990001929694634816037728798741897962663468867283428354728200004914152832721921064536928285702913685570927761675796148117364050768885741847797020049114271867146515702388066406281140095307951860568571471147092318347852726168103275771229160682135771711792074191127695127122197587255563097169404544246803500200965512227568181554537522715868225429810479790424213782849894896792691888865442696048845869278391835970917949248923105513119191128732638745097659836172525049310892557025867960479494910854553123107737316213912927476275428567266330020688835810239174526669811771871867984070366159986075787954871499075690561852429450400427411045333214302380789401924736754835887249289660722980549597878901191667617760337950596175346532871985414420514632385689298925355228752400542750977104338558704208525639665103589124583891984330435153691762093166162659575259669429981983987799516244889933247913700146927811755594352791418249495137534389460049911462883320100816566729027069776893762567417003392924458994587936442687648097576989596367641338418011419817730043793254927073580583188787224682557512090809447006974701737128045923458919048478508607607634779305759279448392869864273646782785680202451010649853907426371862361687653369183671156019420231026168687176985730304179101801151032859988752911712543303121309443859125079321819560734615291531798587952811898989401247228556000741943913103872032813196632252172223318592240817009242560813768314695091201901769760329640369816308689122092680890400274986789822164053014849234657364792840339686120381111882603627250025233441445589838668706879063841411028680702981756614952788318218474744926971503966303721665690098563314199095011293165014405422139912351343408122700146213141806152646506245736816984983533683044121618841133171644616818430938549672738342042319774659059658173026741537253401853570987203657568820965549123155734152424362397109187864653674518914986418267136612825195076834509031773125379232122601044603798482123216313058490999907155740584210957580295227720022644347385119492867351208479531731147311340949308070197549036242428627920891676636006667402928381543395173492389682691707436290228668040489453763980884885552275481194187331535532111825766142849063263039472336243904513875714725406676606481140496512312073939061125630372712737734888525085369768892989952535371187317288786891811779035563719465518017891324184955234768190297929417087881220697173626051464904301204093178857563754779351384046289836697878748243397434512823997624396329004110552720225408097561588577504363242250193138795292173919978962756085365705998378081756664757247621992824620344464664733943139656653646358462082531739254426517779158600000612214499219993340224803480257187934024624558394587511048833114971212332999400332160112947883921297259669929315001273353491409986746522681651812022261052256643898231878516215542850130245548356101161413236359823880743023012907272373874443810776005061474361690601703401042395488866191578811678761319709539066107508036649640825912729708945747829771787570023595042159634014342952297797413828135062441357028867356220491186121003809491103445654913920864871790657078718568085192712145702655932119004085700141345545633471468630675676784931995146968075752790059030253443388681083909830553516742035674461978083029428101949910150778399358024559523966148755835081239073599820123405477632240623891611370557957298252486950847627776569368823078499188966539654182515832818672592265262733029335111796823740685997008310932946532891954112143075149639501618534630040240385864111601532567577603840506265022762145508172102203064536888830332717044122528355553012343255696764973878977241846541492082631977093151141518728312636104768543321843144248502954504223347613001950532083138862278917301214068813496661303267477121130258936785061887747674573623151361833238915879033720187300024027584510331000550633730247472953471072256615422113851035041580455301623837246517487524415723956504739494583269408089728424072308700795639056776149275161906239953099789945894998608453409680207523621726430935704388807942332896773376824429026727597290111152020874094718827343077885154336049339988866835623116806906759000730270601725463230133888962697676565971188381204539894619100126735108166697899087556764007510005188313995492552103382111796462201734616666461905875157116738468162100190512186704984453029139801924612577029172511274874628956634766892031244205525474243088515116025526708700964297276148076198570548195891767463032542867225580481534108969867615111203325641921184223677176819499135014826521012807693855467910163037768078569881152305268935406979748720804675903988955399591082860412239900694191136079784712101316482670334996648059535172969238363008801800051490054669420285017696263315706851496930299433280581207860253521074447792817404870078281915112091154147720571653792882043678813945215716678324382934104384053129216716115545005610805168806496857895605205874504529866632602164462884627402216723025415756614393587269619992784490584597435436522815727848056506193156606096438546683566574214893796354961311145112593663726640462540131830092479556650659668509209127141145310119570636811949644114810070912495634285000139887827430884569705785079903902339793503817281223876245434816561427249577692823356558581655820537424712811471195808707896189544584669742655282108990644669331237756177600724947005133349562435048661470299883753446902315291980244515636671451311552122219328316485842088559263539774460744858005352023837824634162503933074225133067846436906421921564496436074300546221226834767138389024635321452253777660909997530100957310222989205980432706711793842821767917628718472806221528165313511543783860539694961385622221422221018707622730000140727816795228279934135184400198508791522807440101947220515398743830025116362648288881457066429894491887099237867500785340193189505636828949489142960537188353587698474643984806351287170534071736783272059599929634600457171500450732812608797962571009311213434693259374784132195346612669357826277054814850642221841032032829232205259017665300209219830249878910471112295093274738683373809718058741697477654952566461446185536191317068319105322285617211548992586407029660184254550188697544537308657927149392978323669062414236186560496346592591411912078923729490255546508517704183412840563967032198204861118354255786585397262604165007889459809112837267569152975711484278232704501942925001579563425341355214300718700253661555516597380016169247948525295282149635235741668593867923912854577641221992107140535556766478118549974898703793336281561476830417026337355690652425044246574475047566649230199070620019466078887276688892949417715298376747962847399504362794868725369471370749617386371967171654955842662896117095383458017495043154018171755758204445250796557293882642668579834609437661829221409878585006996696147952568194650574547076925765215156993567102190078322418547392756309428059543182328525315789849628000208546067927516103541554377340318813304577079092195375477112273547169816477372862849237338062856855695870020292442377755596717701653834252761412719920614980191445183156375947620689697690491857184064162169105410767679981915224521562176528243239601309716793064288340543787577124680281866005288591178535170163627325309919867866869637597047101593405113480538484444457436522232624364229021270457319347547009592845090921282898700690910605697167116930136705658250637878732436910274382786223782533134306418022472468738483529761075397718102180707358312748053764646020219346077999755683715666939523216005584908898039214046197372348235147245153228477794870698122610031020584212748455231196792608691337769316632402724762298175771833163191302875485791621810161288913519084833829264545068663535463689772278411853405527619781252639491709778553977296154929747761198822075493044687592708227660173677712491490452890501688591441338848023499516700395383271990737145707082086681571140884801451344180314546277516659031066064868434937076258880224346516925215275155511061374335507059526778490075723839832442476764779838772570084948202921548317784164975702014312480208639520835388518332996648355417931637688015969449625710120553523934516641612720406111727598310192828295319493705559600876376977097093518023182299944503188108187094130166898553799751001508603594949294898094386044880123945563617625159217982051594626391490745588074840421225332430103828500955372066063971058102717582973258421393814779765094378316679370632085021063721285171637034970245343825226642377238956291021594745370486821710727391845829818434626182705308798687267744888254084680094052630539973718451153410528500241894151858492959210206606121011042399403918139016548739489804405322968834317403001311922833504566736309329510004245346562093038217794581850297499811036646676520033867068382866675077799621844992357996081655906030518654511953762144629903663652595684430910521649509534440643724521051572974502181928005665097913943890958765901923519579248955836822681517818651733778720646313148975130938232851131276214011851388944239022897634324671309906222732224643214480885340920666688012828089751287738463716913208866048829598129541611736172340191927301158423870833685408551326449152064157084120284608000701900832032806235409155450162623263796773203419160207061589908500288674161474585639621242250869763088560043372442387390876134822683960411248917097959868927153710543842862345642423216141546754763440867732661588612848433319899447036195044689730243200629230345078905784134159813238405037812425119263288885964319671028073749269803820082921501243985471075057819468382460806567753548811860460177004318920104793079156497760307037707622427916261550774039968872267567858843236484634395223507035777398030840843685681417523722539193106595901554743101418761467539698177690315493547317185834334119308624935538873212499380273126010356856015528851220377168888053656112453645448997520279006901446358021207809835418076467805772705873028731053593807108206544919617152404853027699888511828461189245824161360049871001279253309501273731408068822379776004774665044288937835375134745131830623452403741247738739007278146577365678532645779547589564177901397189832246546972434628820080858149383474349672354624915578962580883893431493823759181569777414056503569594617287812008252080804184140321550638761958994657357116622024650038936732495672786630863920185951555611162097538161053284483205084988891312121454412826941070336216601367258578517777142177998444288937285177343886250763459231531827982656025240873552364131954463814479608829536511780023467102036123330274449877019609340980789838859877696475909332860414674620999056129281351781770887300902968799704137966454983514517643988111687298562884710687738479906575649445769846329440704159839014462544870289117363709436658829180710799418983340776718643841620930476449742110988003740577561873055923649794232162243985236172194625877612707555102084391123808359677083220506094188410079368697426596804123692334642101856199211243941531180285937911418350687408652931667147238324310996123217782265053667441563319651231526121467215244385952443478638936150228217247070137025308202544670857592937384250604331982362476143789530202891788399663291264632414199634765895302524770872879181012505719487543570902995129172785766437753257133093597233223071473541525245177622948200482000892905272274925867022995287810346962481514589692161144250114330048061989853279612865581214924616016878559098572939309674873279072652119810217903691581298994548537449539029803639068678399599462685515312114890703985557874889551879720735906735486922939686969660191130913868308986314206671599831453074197920553501127929676850901174387034108594645078541947799686410346402674599530306024821672790806581443712624845127179402503940008057109568574938778982272594314284241304521501145828452969334671498991827294704799591919929953668450785533043745079131585577832308190962463994239701440820178969387942601255432829118410491861798978293724723427940183454756192651515100771876786924947070195023286170290402661701250885880567928292744050628845586275482747869172916895864348637895934190668993802913599929847454865366057735019903416599750518603825167254813268849277531014671034871074803139172061175191039197831385126274585062280439670309120728761842446453358204654529299435863573209003810473606821112903168928808573131457814010784532341578914589926079242701569650767944044523915405496761503675450100199291480065786070931713824650553754097107332378449866919941732374381609137898059998812987364448230585951804188873529273228795926632578626785041668303798602680875708993606180363349260571772067170793406952092993372209086158289956454934229466412853800277801582138495127141786477378385828133047174620233863265496700981575859297505713851682636511953661524399251821601628266596995753440599888456878482855488965251763480321800896410850401267505095426779134481812308609387894742289871625513033037833378508102951514173085432497457237633095612979512073856377305257679024099603416511307109710913924840151465962000909673352552406879525876335537100071552992705536965814859067446468864694258709114110056772267299822280519602180376023880670843177077831973671542024414182670972145432148530316650519082633702954590393691748908358350488585590378613545655265183570576780419249948862104817604246640934341036914954898022011146275066910927783556393619051057451054556901758187060054658399204069760698901087521469921958959463933269104657761734438679959160371691251061221202511040291638383901732026291289056086353503448104576387871909469462935710926949924845008566585818967801887414845419053327031677992628458472705371634602257920893332095645178917533494324100358051665490590440898703104545879625088135943719154687888971079629044169296070602000748876203626688602920985909839096622058241101776011130068710010487797704562667530992550610861754517159374373532861698267050972739671171745774673208573920577511982000615926484841402181648933455478122993562609812945898049466588203029330199812624947220268452623448643098873267342234221223267736307178933709008215041019863472314853583530236765309698324555467622523932826845181200304958741925140359058021951591461987556152060800169730087894018775648355387474290960625220072210702823628280695157137650387349833988183316465276664252797949935467853113800398448395880906146304417430447923046160673636254314691187125265827543406519686207283520335725672487605169326614505066626592216254120438667874159319556499563670648643340943980940280834454639970399389953398175125700196973002132174215175156984018211736656318386789140176425762657783998500318073201724978756493740983502642254073184968668233789960145136603801666448584392291144622199229925553057229655717701739451540600703347758236595585459245764212267280089400378322171588014727840026754723087435221724748598463232190311923924375998042925058868286790623154984873961884803604280943900981196305827259888077931772467859564474087658526737486738586586133553349849361992431676850418780607880101059151810760645974792032767794787592283056284303838032628635111192897508996718487567013958642050949310455616970673884542648858890842039826645325981134659115223800574743793694775763713676122958710571851044171744893871070009057567169578323323968287501611545517930893732115914969336878403356312746305484630640942383859256119465414179504269478504191556749564584483769057860292103803034410218804976849166451534462218648102561514322591626777965181406462087064460563916774518739243848822291341627200198795662162116666976309332161617083817574579189688826349357569652195308449297167205695887195514638385820218577890397472903246716190841706562397625102515654335135830823290944889566000185824773295502380194445487024549839554870142979310778024826242358240517187389381528225041717112061261606117918694104601384474604949056371353153769905554963756374508995402056864268334366577821879901314109661603071003723612429442173705891539187466770524505227251489769800938780741129415418598859305602655870945782066092942407061751581829297224469447751107798979206318707012975146622240981093603449058579509935989786661527034433411098986138448690032680901102083454469155538589352192193707053014519012900945948349799861781057158010865395581541898694978386869196741757035230989882190586912296369931873530833929426510771101012489236795760434629909368679704736013040483146774891754944244040605082664095612450763952200042635572323067498706058379313235055766140199263950229459708736645549865524398981218857510981280324985310651706217543470865881555435259083556381860187565020125797771130990145214172976755221549857757180541502039534919501750167004303757893406429421499270740739005743144358827711061648496177781485578053569483090293637346073305299934087924954230753848299376515085706183699056445257825286202772540369355932737935732788265456334931441695970955294489895627780494666254668093263365237177977173051182936679269091575811591356708086157981161326437605991860664775344537786706346768139298725791040612778259590770951498949605383160655430622444636217264489835038673013903672490743775631198278249304141649128721305227883798708372670804420382844538403721884297810371601679117187908268712890503781951048914717861712715909173622787096956536395349523820339983524014490240453833730890887673190385120738997794711808719896732539196132511224293125785725084031787731040063935908420382915106313017390969698817366502713097024056241239847392358937115236693596418482538162737240763773653815709211822893174636885100392348843462472099983893049987939519909226872306675510371544096281029612124514897644882087252861264463027138089073274279201831847890336846510781129541707175085411453543107258153502395819232621607734241921676937513294984606020838728893242273387509978065279903475291722336049551813198876488422937961371402788890666368241912810873129827263385834726551275369639816193276123215639802019636044305430615980606223633266895551387750098459767264555706449257945832254083501037501676402760685040461048038957693401802928166418850438315038684441694455674073675277007963877510694729986655003399429770152450410752920943906302002934263051462602183631395757955854197683079695472389883718488472851895777957724373018221400410477165073044140205478485945755707876378599391603491150582474815153890392269880173955146624665915544276170487764836499644012114195019453870782141177696574528203111705182885527699902281209539919075660580645239991078891334895048066593785028215903068789787450113399179033123097697070949315321928661760194519355272608132387463370934570800081087007548407868698186612821667590728877025319168097679820291136555184922190376358539838258904110792453596853641622472890163320501604677844525999180571847798193330632948181434977678210387752013026207775465363726830979125424352945120084139666632971842649232831208358123322996714376210796099928548462758826386721506615799792183331433550416197894621851669202119861443053495910717238657525258708943059882999357271051437593233691762125531113702737428717482138278055932805566988878680419774196258929949090148872872680628330854351600843539748217927512539402660245063444247460390902783709684521805401635002227890480809534020717296662108034590976641602090041451687952496982576810008282164329930967161998551191957649073522785875151572628172994473757932057272144533958844702220137426484963564733598784897736984493242447037775304334272419014869572544708568929420192874315750672167788072255826919879006866158924167389118999027093912975653342785128951568954798282764513036299514852862925433897510992278544410106332512682148259334440009072371350672850800508655882415729644004564931600033931390233891535957309319447378743081379990018264389231033937750220108153056389448047695746251175705600411669903583742862380618147903170760184089288189212798193510179995227832530626641137279172929699280696308833521005860615695662380015551894194603302000704637443183000312750067093967463269015766238420259267789120305796717154310086070105921449507303769185286204127643627557778420745080858378981406179736391898810436400332321808621773962335925729221799452754280889415609202088297242588783236258745917400374168159823132390185531642239839774730970631945239437683400682705186581828569828464620002844966915338907796450032274802884854818282309141554323692578690161856957511202490392041263637813486202160945753515572697345370870028707717952663591864815896458404806783679472214035353276990964120416245998813951963217119836604111988900264079103130012359332276848270670445325645404708552632184259525305279513940349248772624407263350595701243912825778155105455835563287026671321338660514400440116384613739133834113415434330932463162179351928771299278439932697709698816712222915072435023459730818947933976973437414871200168710393252281494622338068685401472340479804297976316061202642675274455118744816251903003270588981661383186400770726108098308698774322029839030671557621520444218701771898186454935509901740675191213399600430517144860086223285610490920333566187365748610277796295299947701673535792975710387836777220733617375354757132895809210439936131622449717681740501456463946278767949600951380598564837195421311730944371227455213870073801974848109515836136765239120308454499915412738486783848964249693931942914753763440550519577114407785677940170125164982659902425761790126297719525770200577326600527656575755832755274389504249355667540847362807306548231386395199448450820661789083364881416651251364452927463697693117881677184301962584572573645751229601855541318025059668528984591096858189217516856360180570874540800694422992948930413429777392095163319194743835381024845345357413437076207860996721705764426163095391510392802297058969409720722169840403155515393513901012420759486068822240932423111041818467346367821406274076041705395072971513388375259828068691788766042853814916063403989305490387722157778777364480618754476495816771085623390356981204188504534064097438741652907926226977400982490000885876519535405501835516567964131421855967946813329191529152379912903427653943720166480509323861481309376898012289986629177520847250524200871992614788965815255346985859806099188263092549167573909589907290728852423767060626434988120717588830584231611537208885877487324649881556561369835837765440612585416295589539275992543502495471021653739713006384574367216871028242179449546943841883253069045117341176315271595160868864312143753200491840013693881427582385236100753147998305502317293141001097000272182252675474838017653568830592755632811508811075993422453182820394457512216123695697100689779351061814846640279214558600665173023619031967288962468496008054915834105030165266127097451954694271095025673256353689455979144393752529898898478197350011513035901157355821408453380985806147826099983861308017707138814230344418848960176335014191376778392570604979417390195711507749533126135554355603064552489153972733257232799986870023260734336912038256687550504828831354572770789915864408047587808940435858420710390020564190719915306785529368990687986727072193772458961538097086323609317916141841109258093648317340030307913373714633227760052436226813164553510908063308863367716350689364820843716459829018675775767134898367820738934040128974834522894683998366564409073500330180188748928815408624683168448237281476428654393977431370941242999487261356005724547637711622503564579911064094884323575964389323710903027626488125856586698169589740223004491651663224383111505608614934272044611869450763300159551083245504480931062642779267657183555854389283369685668799405091077875003913004839697757551596236115634618586513718606087026493494167052534706232277054678901783430895190470566313492382116520214210233689283198665442362416591806949705710092461624843005045825870768221110308818669941317184415592675589106254242201525499803377837053190902914183221684341676417422865696495143569022677769302436103988129760918931194640054517517284319098785846077358979068125446504249337454712150264927859908416624096532525092117601323525985118005661959387816732169556885011915671310735815075900477908471443632611531478023160309011037101704548056643363951568091390457909214107735361782114716344856791623483259285232764169823544072791032070909557859927398869401238757610788224384429125591259777496146007543531022683381331987851349721920899135029378768412646679885660304669634195551036947231290543660920725082499225258906165730416325840208096827804996584742542731605052937376153198850026436187303497843488041839952830521979820700862728593345093343880832663848558205896866650383740912458977371873349139633163685418606259148399854784983637468234416389414155767155506194522165797081671452248989741937057196087694358009970726520433574156261900186343048677828767537513656768743464509238514771213873582245377611023088856142961648558317457237268003716947764665688226248852083156363697160376299945706252777857027351357108951258330683408157443998881049361763382694065370648997288832107605815756926705266397751981774558270850932329164793118067392426815221204391278343727140264078274901425686854752315017864885030035826599133207199172516002322560253862327055090566589214449560987818237646398636083123883722259773269580075690119851606722353557236809309082048234443314770555099912184291140673459462785144227422723710139272060713313197756307886179431353361443110471550702880601012230733886235111970745002259396303842812024639611160003641799224362353870507950196818609205669903776714280831273679533780306957758525943948506897554355721589738950921562026015116931431794776052261540438885748043188114163378924565723997164340178599303441104986730794940224620823130928005454665002678655606112903623627086425426421825255226100489363984672459088029576062368009622249684689705457023410399804279951534022349524314875708825421896763124059156672205533401946517850488812689073279306867918894594653144657547654574889188138944391524032875964591366254991915313955395984119072394554648229368745526352633822358756956919489134628447836861403470071888462284131035715832351809217205447572429918212960653859884622378948584291802624501321861226707589512597391129268541559555805125650175414302622116018987338355365568389395322194838612664022436237554460890966280411963421244286706293622643700436205295576790586005088321923331151365569032426507376312725949853388733715002685931898557515585320037685233518281064099265923879318682688061779378324015730161775337561501525272240425061574033669646048993319818449640001199982328529197099987886516169353182246569712889203357139868636172993954858586415401093638078312094281290269370608744731731436752730108612303234182867331262836013636605889475331881467493505721140370846070323981534198740686759150137585612582575640523425984762334118333233775544153031373326737845231906352594255595725460531823344882402602936038809801878625278832550188677457480459664415403975976341592487702494867832172241118061484152303478689349830711687790402061670359341014960149456615406371011870305682924207207631655056686399762427044296133828653943709937522233149861802767244664162497089193161473169819024642091517648639299394038683874678932333210098642474082085247944473669901411292221556767409608141689847079446659990773673136124584667985342123745308210944199127789786105331816409364623611994709610952432191598460163083354050742966072346258136858216832856718134008443567698273577281048817144117921478404046043275292137361125307564131893951962603468379581035466849259493289283915725561002726962093073596593799810971845406402413658388685014849339752281320581996476590626656908652681416691730990278812548413622293760731298915222578054264846872108094136511679395183918167523322067843452507380641003907215562104273113465179298669690478441630164153060390747169749128145653936455698535203042638697997616558385021562956047974853468894587061750657224388075753341687881469856210899133022372576742564749447931841772397944887891945464340165386684759938798620961633938026531404120583263474066143922220175343405034896615004890592098711344650010873593329875882050690821276431381216458726783202638891071248400454202898486971630015363085155428835998321780388318403131190231674138418923480065846153079913135096842625426247241255084584212304636899662315183511085872313544612607219815903457789107816749076055621869774432705839899323973304008684378585830642792649406911185972730254243910294754529369521780070825030128754796839522425809747817495795083031378014469721899528428822484165243002074681416860721179599252389339099316309990950777145822125752381560382995443314744456189073351702658322472094968955698008915836815364501751661157640697840522098519877123652520020382691224455733149671103663218481352919452743069936863047389782763611266378345084119745726189714471190234783234673764349748686984224333254867142364986738089960759372188156534418748116051904262911389628779119537343846295848601751614465140860988926407842651146908699159292096659353292279292449537149890086011203421605061807391035018161879954786236954012389118917684374810396097506389854121156518094615611722423485316968019346876075932853349367541540834793795730916526950172146777024189840965117498923796291824756828236002567570219027344459036151210311613596353553400902405505884043185244412550026914448453900036599118405180966034383482925198718890535880344750232747701241662909661490374447431800993597398305674614067322725562064938024308092439160268468654117992994175487182180443983354718861751572044269805418851013500014480516509316009011769547778680950713827012816022914640501637279921442436551123320256466186733641034481555040684668683161102213726513709375124177177865787599097180025656568479904446836157597224537141780091688428382262479027127101464170975378883537385834208268613857452883286835761604428122898261283538695745295230327871464650571126309510327960868356684780304331833834196903402966826811040053545620204046917456636395448425425871404301434871881757162438629448148612776461949580484199024363126943758821366191717313191561621947478541636897445782110853576164407674514736508907966414789689628080841712687686636374032578678582195564663915556177612656503206075100227021375698608836397688796286026533877396239228912156627838735840743927175702300851566415326246758307677493559872681241063699260057812677809261510451485545173625368106285307207978678840723491102712157941754886231613544527709553293346697378148268975930035472093409234988044034528309392374029270932993910098562492480882423526531166710402739392458459354462920359933946309279699544392534131329394871403265246676685904862934139490369815074816749021648196904296872224753556374955116805789711536705049398845076673922282229404616130942005737811082388036649729579446571870894518082390753419267839782756264496100612144456386877222174738400561947146192848019941111051421509914319988923406057419236775889732456944534088392951379695459085133862787566063081074523316755377889731699376887046438903319734539256650173725420531251386052733487712241505828708844970475150659717508186351119895257086862258270607322393485531170386831493728408268507979185080612666827032642762022769077423586007098272359080042622746981306837881346922077316072966495349104652554232785477580011380227353407741148185288323242006644345751166621399382303301671749144345742115753939896968718182807586997155005422330286881896521614026858563309840240914556059680519857863276488977970148456298010325672847479766758039383037929935464649985226330250490463512531863213792871457995448687577452343601891952517992062984612849309763040374613168121468384871894564084653155846106727105921420394081010391911530548380488878415376402386497091570855221463136305108828325498416849983647397495982726076787137350968609371598008809193295148022789451704413977323653841207731519824227261455084067282519385820436768982084198550315115565216530692321304905032483999241467507718444690519514283762814282935298860190606972804266961148642563698209931117608400440975266496170109659609742389119480996442334037176319703042691508960037515197602277375674186946742845433431895512754934032793115010235786683829769318586188049680022495167898275525720078632528708497146586623509473116171212893009384848927473943323748018624961110552369694232138516878216788862780845502953514154382902452313757207271655508964511385664044096491166318868333364775276725712100254689098567935730073136632119581129474780480290747866185038534430116562145676035635677957770414683498096683859100984365945380634266612935176601155559050901818846818953403080732880322860484824216894423624921475167549742241225772393708652898718670894694238164071604115487296930937402721242399746794213229731847177593118507114780490661459803879972540007389777786690277408485987843893921487423510720567485313307911826085847820698347680586526298740667667601202916740506955415730674687159220385175399744091436619845901655884557007218924901621694717260906680954432473365382823090021554451223704057866553368741097402513270168614093917389320277659505802859446164959790275394345197093247124031659611436585686192838284959306311633011665551232646091020794073961683934746819521388742537245194394691457594771034496801120546082680127457015320323936682712303218979040069157482430533063125015155182793487162693900451016779670018775827564372816425603710121676563118783591251557489764900055797504925276399702051797461915808836618914655365709961060645127812983627144972397935007673055551727938322214125030919415566631963724868842214578674700406518789844277219569720657562092509201396589761206474539705973063336211213035927752639405905302351667830172534135813437458766599803276028695073330523250878576717934028275045672624437406354874407945369394949806097664970313428506814037784374709110364493626282404610304845650579031344710880694229383997061880143331729898105198584273025101223501399962222541387278209353136901137883808873391991904216388156973199193091374099432441475999673496341937894783846867311085964098851673216729928102883505338386777912569363491553360388564547313547082676287414061722982179210530211695615769985656890473066572037906706414901173850536997973375028026023122190230374083940410864667728939122510170617433609068990184624069123371446277187905017112674744137624789256301336770312456618482733992070107536372562359145759306938891619775525848198119653157635132109232495240936491412519814420481646585747163802825703431848680176698736886769770066211115543667159301267007842996582107559636907687668938111170436213626527632746142723158823209580510161026152844929936441842987521925735795581992241629781243699445287538424931159213935115614097860074481207867137144191363103407651695962180656197352028625906897672233146267063163902185119141536944891717062112744017236637069622091859446450633370289819849433453239196418617864934312170017636930379690409343118852616959616312166113572061673446727340832014754871840342428116311323776522707380066124084432668658836258009665014221237500348399442588547571401836842461101277589766446824349954885838252319927755912237723439298751478855109695963107224231031302014292425302289615551175039223027045469843742178940896357828567542410753139858383732547570912028375002477094014628701477134240144136168965801288724595534857801375520305311778855791282572393238540451703159293487177427367984351777803415056615623931151528422178898384431754269677633475718757584620214977790087571950080044964214099827054449869902851090105118035816686753490568295040344218473670841693322864417900196892370171728973797168357204351567897676472741985851214844315240621769231026299665851796537009288312829354801018405542834125082506735702415007298051280432050106433611760081803014481622605121269122360993028332924234667227347034346298738495432503593879068810758290024730756955961643833425957983621997144827734700546936478537802741643787194636649507159164585168511583029952989596207149245973672489623960627958073683831399077667408723792098965102624416315142166119824752784608766804557314338756913827861002282503595426862242863072557129628273148218056278286786919240047210460206035435608590019355762288739710111704230071396371553791041491342916448332177733188457105239371964162355249229483744081988512091586512789624748307643588882127497506348346203070334310622834056648660232919250286570297064416901912513812939124078473817088087800098655463653974391158136311395104714685667274062915583659951916446888488137735233525297764400331342519447272536660807876378911847925776684832281673054674410425276475447757850464469208897253561524643129853221060333802028979057222323522638880889568278247784732243361733562110059767977022453780588119697411317871976417195995290529862256940230267504919599892917689392630721627878871094825348646001538478535179159353364472032255248444873997339042198019542027479205388329398140226430679046499910783407142441391355683540535624271110468560338270067153105034319532058190852235397062255218112500108735496059941262391099774919311053927210246278227988709842168298146580588806660919459057957461371762709497486173132898754106064036595989892589983246174410561827820773434443858665373367214425584095314490845636222538875703498635418082579154274574048870550292927985209977777497563749599393629909196530777207509292535636962854144454005670983265560886194721932065672127142933117547712399836225549474062672354403103255837873521797117049877157381325542262991710330661161795747099259022465182802753099991116713535036192627324872186682609532800873598353289034069289314999359253200768100377772501902004652102977194509775249556768762870664661134775433710481661859819551441674107189892818494948641784027426472961968966566848588615881057301987810508175013277211322958361889030051926242241166177602371561041869368962601736873616762255989414970052838939175886310586569265353725816012685398444828199158916083054029476027136035271167141045102183130279649708393837082104008628123937270532276735796273166058239909701253962187673491321552999563325271727490725834874247016856933933063914259201823460407992102035549980659937088269165308822609317659907345948888622681669090420215649013055731256575002304650607023376863940543970422628677477034522823238128818117622609333790532483705376131706601487880706224474901502570814104761162740363033827049414902311275256822068681464122366375869000071866836658100045204245124526168524060836076270383578303019500868667577719203923767968642681638883627362731173116905298551677387775585676117812150295680499330542949100831189296552594127886451934337399332890374771439559931943657415981701072591953913380106807318698289617095228394481725840185158360585747499377707188219811835641506088694443364214963095245408416558160476135045527831940719724255434184107231588134027722663613871868995767582512027552448120671693179215491325413794365879886687970863556345016591312941415130431282354628209271686039326415070674059261163663287043130284100630743181962381594221235831865308585132486425914303449763596439982956532351929645279754636057892424319431719985603631114243853201892375643732003266273238434943370791666147142499432066187953846574565466232086718409629657727336066855895865191568262509860730250431516960394949508341820931993954269753510642360303036228742014185163964308581286645342241965506039640251199231734887961527850392848909985746655989262157779847349959470574254249050883760851813559223553094617534973081080447567790137108093526422678096424943026448373284423972332914498871654056140561970042464110563538799710555735843643435718390479307605366629578702701573143816206001052481706945811469265270910641476142003139199102775370042875491311739988675107270922139807349946776042276947918119505019751262321677647483900403546730755372630342462516786842798297798768821148632137846809487267332370038602668905578322109699761064963856809612565271741598150106356311540981796671210793976037465209812236313747920553867239672277596302504237379044215942480458054207061697173119265073551839883587250721486119184477013818668301492575067618084471083609912584370463720864902881014068787290475413640905132471007301421627909933412819890080796288338400005519631018546989849508131111738655734879104905179445395922459356259420705852364512340640509149532236096179420061626104587781761608895504809609331840936658236441996486064745616418626194654320100125209469711808135975449678116829393322841661901771443679624656560170777461439157146653239494760856260678193072466971750437529324838704882430892369375971921212284458116963902232138664577533005345760031304584687077709352433714283452980323372852375659403104790369766698224735241802670374830374068693318754794985319820903036746683369610605651453597314355608767048209575832223472909760070165917394576941385036443815231267334913397392527707914889339615327463323507422994654641361648384002490576681194564032298967904396569664478819249357827310067804171576763040464545497571832961783699234723750309950097911833950377966028448918054357205798588336468165321143117325436008923900211925234914202496961221766236849092475001936490448836230264854275395583741319181358137704591461842465661062558667350432547660700379358109147571168500259884048947471666670734705354381513909283854463240149754267475359339226010441045671005369090048782642006520244208944508357547879204607627873175256545070080759146593121866178320801629393868838740023447512934817416044702101141870927394119679238446266990975006322547064434016855930960963294316635035736482087835252406334740455908628278174896106146331137778576385516317691842985227378685476339717726537340987852857779503606375693108556495185722753792455261552112205839373482904857872603443131207861159656459065079502062213119131609158928634953330130826448572770481522461615014801285546424741392323470556829392975347322158631141408320840308679857868172369770813557394215606807936184209755167193157215545275414494473169430117142948784738966531986536469494688987835231643652118745766589857805655303151989687715398497066469318534021155032603581602957040110068387531411557292060395196389446337360818560615848475748291777810083692454705900427168445177745591824333585010633967284590376948055651304108717045527513112133115705668899721186623283364845049249010771463536707274607881615608375590988187744624687417342619658712704814107732856169272866363468093144751353477049336027120203033388509007892478460505509839082880956565951024076757277458084551450226348467188768944413456641369309253450860041155261940835072857709981543187959648207415388398542735190658259493914293253311556874595540381773320012257711493063948595126420741432884888959934563859722750950499588932415877987351788838955898735082210033318956432963976720099383227958555622110142814149442527870101185811421031940543415257639844176605747942997315533989847379139124718929546611363279736273186888742486921037655748688861305232624486803933132512861803213599698018576651786609018488636654035350960986827638111763230735999545717976065204903116328922674027502877964327570253329002051777666718293132710888445440031120681062366600103041819261483062180808147811635650159776078250243518194822113952139072609439788484602661236174847461539524466928840712937668534732209448624637272599548148507567855125202244127670261221371306334218202406277247726285865556084924401301142665338684258937004681089109353914775550889437490821323327640366758673749939545015571631893525144469132884835860157661605186982394996861543627753486984787491550026709920628707605212927951886306987145617425465271807831717490006564782120243158343069619886463049136809644899515506534489912389576969194768465287255850154057601681244954353957209036821964672613173360518065477525347147638938289568718959517800350654935987708758160223880875246312275934737023254630792126990432721893598259481451819603637860777590011817570720529291948069566562218039025664664849341516039050612894194697085074409346725331629162976368848783161631623239151733534620194459864447861280274703165741771711763009147951159761150674123692471421501967202184941420655352617535066252389689608494799330308898247130225878404590405078662817689675486102150880730881960205541691265976590658554911490698095941989734636355423186783167193432038050312753135818531826557496483913124588330561799701268969996351851277841543333082735430684432782487271986293620755789866772354321069176583082469823411110574858137378214721360593008022130698287190842441950880873841583068935458959555674754718313570346710246986872505362752937727615913043079998029305044459443827631192734517393587478030198648169498929046076547827045245047315203523102298239718746963707662357199408643522779294685323096167073867746178374205657151566082494588175486222599734591383436751374562860390524487520272434861974739641019811840104614448398780959149034902266574542781045720739759371235616187420888642259776764862177886425712247155760591903807416152850909149800722671506321302488251498064023907286512038232084283782757217609626844117171507505879730173681759779608907966630954002958017295628078036385426513082575087765932098184096403374045461085379267965145951384075231239209902035491025738791178475294798993650564045050488060241148047168264773563907848303624258299372085135888522614587445010464809397338267040029913962816152913714156124228846035140279727124187655480822348564344269319023625435512531909019305908241049354897599409665249916539907061449622531755634311915699836473794558180600596280207990095327544482044637249740876455189355615689249086780902938234229920935141570919474706430629050688308603753025691813891184952031630556929141360558306343119620552985485161567770663595817330586712624347777235161218935057784336821670999146824759404990841901724608020719872822164684338813417055381636136172022946055618906639605716584231439408823512956670257012103833049510504788014741810921138578816756729980118365783721476048834539104930151307272086254190453311730924354141858216172777951155703859648382232259279270164156638569125570997964308153203929970599364186857989975654793853855788405481184383916522598572993450469468869829246552024217329906454614083796757849497565781290725200123453599454911858462779325986533043316892420151558923765651729297142462496036184601953130952943935331437334788872453418872512546546508166335625549896930698160824456879497927609781249778775544635854363761298064885302309122884052032419950837166922932875856358419120593162715359550531974076917460720577874356684710048150526800604024443115309010758072498442371373227003275931006286333242307695007640413472646734544859507742695240938527895204556248628053042367216334628908348842882402630614174225244738465993425916272245376698451493333806033448349803633146204385955612880456872058544978184835396193458442579011484539607057118825576343152726711406324771140203101275068692188035141171074773004104270023092930058308860074191870952076233177267784664323367353733408143633265190221434489167910813195107062139696889429786120806180909953285454632640108462482572835608227150412559675535213632107933505856095027025168734345113757724424873806441914464107639008986246685617841430588789551644720289624381524463716635520168302132589464735911593697264149481900295455908900239635046522825982403837170218466299053630935066611713941572947492601383131129207276895818364656536524673513741029246133953593322511524478124949483100011122563426777021618057950580515272467310979909537156191769106647265694479555624969917374660189458935445693044024115484663360274343375999239804111679198135286263406254968994282050728093769703328497692504644196470905186883570207326356557594708733765478678030805017541309071193185633966784002279739763769625326440033087042591035772782425987587562720659758078328350113373469464757245648539896542704454069705536381529148718125440829444306003555792503228407380870822388347681085443585067781670173380663826517469257090424879963490141687914019637235830620257454207231970846636344391493836742325361149360457342545468796767878059898082972182257330385197341584160770819251746037379116834379693905885141044159079293751438652960270635707201093196951110799958350942211126617089723611738524495012880326994846275225854345477150383788215465806985027273555125855923476471330483912126081158873284104865982215845341858746311559507318435402554013825234430376274437162167815596076326372447821504644625890464196662302302028372234330801275178638960257603164443924678840520195134048925059651172023414219163538539709794041595319971264187370737451596669906086249460760409002822544078689967170398187778958132221933713355608978452186708991441296061299634048036890601879721241113460938158921342859286673505755332318880984268451305730779906563019957565221158109704757452942725475837245665027271649610084764879151860473742287926651791168063058744728626959794723278268449549064852639988513404877351687517694394451361252030689333660364195973851944118737338667003502369126856463896596121441877161803781110154844427907839271932685872444067129930759048711767392581309250478032512790918818538557407678199861816723828811116276384528778340807139172349525741710801032516884514052412376075400519502450435074635794046657170413270896695750248502097464602405593243625371993537894473982873491775781497436245101008612123365347296991838958318042791485696157155250055429530168180348741155650596303717313252930557556743029029872598434511655305776807625597381068034647580016699473853059591236352247498450182544254995803591653526963285162099401736365890032168245786607903813439929760966186424574085833272210187668913886095552389502444460776350175588282264403472110658700124709821359640362278232153316090105290585887226053706920269393413296851143652666586758318265800549073996861410186283198872421770759210953507642892596011217581466096334473716449932214314747659366973760376900117470196960445430280037332420646932398556012487293799365153479537509280394534801231774944763316135551271451233575049125456355196928633776951976089912187014365592951300257235152041804380601543908355972868022512529933697085364011695951376559577001838873270996577396285255194418818706016034682665962034227836836129044391011366135095072378950244436545845364120383449689865998793657086527881876376546805747004501904269704248214782871951317838800471131208115484779009209068112440985265530492290498137197845777147003987243505222902873302662651669914833092314621684873390211107993142455179080444446627904402545166457125466750427606280106848555490620585675368325510907547511399649294944824339223701017546012611943219723813506362087582939306909537411668372407049393089522485644534428678648417256164477654399055136803840880234487662627375432820519001512660254190691648627649768993013376836557639148059501913673398436228466638264120941611429535617578405360016253787711864209350381203165008331686762398380138228721125626883715974931626891592647484729582144347129248818034551031209549247423003550925218804562495701954335222950316463364721284733560994417380561492742854767595511279881762709473764172310067300984565250239367269927202544590078355521606100997518803275569973200249480970839841197079098707404157758031324030223721765429871121814486446265663277572386151286054717144854659133470110636957672489200005220855928893340345196611892871726092855392391685372035861459893678337239987599296349824083644718032420577779435525400954214119744487051659021454418739318073026765164816601001276353415059179328212279905011923322065966417109549287471129555587991247045042801811826543464896374364457376008134860725743630955851563418907307772939666008446932476358075978549162918579192724652495385376497165622828666394652544825541413522221375152764951366870799995453199446202875330305175213625853368511498563096532899999966851071928607394248888358525804257016352557870144433785137616164844714523386096021420647855975413352192731424027736132214414740268327486792879153675138327990400659083555877602959177218741605966042242236226099248451465632000515483071867708548005328208283730433034697962761681122536482464824431552555777938565259860449050849804946430876041986733109645359549743142557155823394149681650488151525737373514902173462506327168514598337412099810448645125308624674248885123052975157035622934302024151636547857781024877473225044934155880564026410701881094542040900726193549586752853834643188359242965017165382140835426667191969293909031796649479981180797434186708468132377534618733938699561446946184862504551736574255613939326690991719253585140740493456869521062728747514156181785682772895721387078071693694362147557158311804737719690763208630633934017466143011021524605856350163940740172044121609852086286536295209906260571255019265206783044879646998457016725783044048559847105287636295922104673866746720898841708372141242002848041525946170156977400860195878863429021525902361324662717187947930222975865167423086463462470481542238576864725151776851315509746319456949329333473715007752628511584050962777742398304430994180541954294213456138598168046241400853498481730881985767253270001303801286239039294450144481711353626403349432689015722511548087608676681686559478077417405325842479079111689872514974614447441951123253257670119990896984983590941057963330731148156858893068662957721994675930277151950381406406715823418950676567552201725454643967751826135573716508135890596278404902291121196649322500200122481363141246945500585137053444609003648117828524330183168957236730040847462151259657035445291719596757516033793189758700230301643074620789477687173555887402123369909003556515794842355579401765803849154676538141099444770443924168011420443370543166277288110684723013691720408427406687240996858070822885373560535004727835179168800157075028474631056050348586855316135176374268470035306986610889450648526261321649320233975468333291168748864320784837258581981265829757211469674756801255858833266644128098585809363607527971066441343139596575288482290271061112814502637391894041467487216910926440586181004704048822670475085294366759233854605203960037395034858107095909304279231279752415541570417199529104572202344696584148118544191271251004131939666190299659034489242173834692946133147382627778661831850157519463108685349444991359617372242220113646036285611452105731585258285176029331517815573231252807025668010522729261303681183494972347642351025559310990289564686778038531822323459633170706014986791254448429221931836289748449265313005231448451478682105194611007762451053328928478819071083151082516551655823933410285594868794888907202369559357826419584431515526181231455244977681488303223146132391717212483877923814466581665314821530923823397286393604321554460341186482416021680977506086528946211273151241154459580181547179764167973489930797449077673836564092680445074331060982339479033552001527102392623014446025310139705088127864491644078695194813912800451109464628580467033914718720669060795570055726310307656419916343409558406549505503694390729661968948068393155935627888116129549508918076419945638610414499830685326229527154860989260108045228639757975356245259573233259395665402393934892648091998758432931783199228906531154159141848579240913121417674893044530929619088308193981647785653541783724600365309392038991965731510915589807907240177874931186207834167545393364903952488753548171198385900270656426491732231282060754196140360283334801128600567064688687179358970292271399849733404031927078234699433194456376285905485228833473858785991213140793060899664973345450728379532388078856154186878045639232911455886959216840500056423192231309601810714895735643906221702408296430289174140655744465612969742652896214090077443575157973368693614907753818102121640943106588668711202419899864967232456593156539223480696338989024888496198517854028414872736359050669125672212108121387965849656497983498680796041096003150003224935697999723952671849537161084863461384433661667302933451865290613669123338163048685654403503073508183318142480885214863181860185405496700965272955302171567489891350754391933237822766547637641456567767013669733967703924749268433693298655015656693609517030541369639714985369854351798538455443646817915917044393331858817843880406821425336307308661049474705908629323963685037110234320325886046767602786793872058522866053999946100317780138890234747295382620538138086938127651568539859023484228124784179520765583977334366330760239799319662829338667283371038270981095283735942835708493608418173047688166718968477169527973948285090191486537634371108176588690283759790050163213387116236847376058538568879444720720371536567583123219370491090739356065567087936720779663329201285133927176538604886602298429587587260751816982484267972358499780084803999095264613385425361739394579245153437864017697080317412044392683351508595406597776865199025489594938998218116412671747656039310505307482985108332028008296117412407798304973757530482612470382290123571674811519301646953786933907741811982395982684875064036211559683720344553856606409442476159151257929696555193009580727595975321304209679847441938558226677755713609556591016711147761460587679440386625749506622288430643054787675901119621965888661793779180960995118640903455012654100401779679206376720957648859490589086091430264473232958706156709564959629181338099221426094526509933733442936070162047899050560360189514091581461497429496054943257502842626158300777341136992391352562387650544368577081022567676674319254118949005710748474293913354156525428066872031288298872821293847643919986129302547449614820775365662856271016853957613271517811844266987199863207422987644213485559147834701804563666962482234970952393274644904806339327268717905981294123805344614201608946768314370914175082734207641123645095925959037801158761919126032266930574197001387089181223109979668162558226311558599031743255157294266350903001766383375506684425309661776931959356356850913343077883119499022583433014540812772717001586469192486033046144986766201089530203106039711869148640726485909530503995768630581276870608224861811383366586749603911256577990275230189676632278303390417614902146876413818795755975104014943027638575435689025321790878174549326587749246903443343412818267660368822104003142552241647821548657908610746712105172949715085464859095892984255232508598913946799290235410642273631091136759532140391189208731333016830426544257452795759037078549212559073054821886755133292054305654894722882447921588965223872362115960198526714144151929213630441228308402517957593283061559235100308106015743514015987745865127004370653451696472016243753572181577262017787482677777860999138901882070530072616689239831230861358988891870349287452486852929096415178048920482810496995361447662870700864355573657867307423854531941621024681645070023063763506742235446863943909719614165391431546528574578852697004180648157358867407631254889668256643361885258701908747693284411845016444731072053166218464787144866611908939391197984368001927990930790092576363746307334370775181937777159917480893866004684745694316317995621669123960938499869016745244025843789386290267398644688046589530692947614635505377052412601634372440063827133380778266985007922717650946844858380708737707839847320275193628314952682695047830143791447409501604747434417695754309566376972112480881740342775635026157926229961479906233334626126605121349968155558777302313387069995387401470810805364250011255008687728728745865761532641558202970330316894698027265312462425234829507939905628755300815850451214763478840866600112983492270313310883815035815560051100911739448377797631298220603396665097329884396620914817809323650497015926700938860218359460263586986432050756244397619266091219962655688597904331640055321063078208868112806476083844334766110238522506213139633416936257000963749066139962492294853915621081721825959619256093521375621357891496487952914706481968322108827585603173498170735710418976660731508986727415880532095729766542707009118502459399073480250689006993753306901718471225538440535976575148489676116330210597922776054829355526073775533710233587648439429055196195185287604957971878071502790081218186449660999530111376601800208492094466232006317593401859863088702342015823540972407822025654805048443480352365800197917439636386062445113493741988174087662686212700943564203775122347941729531720332980438299772249885830631904474684774203388087476378864787757435484435459860821989807108104767055872077544563558331570486800216927668258918596513717706129943914766110668444702395445326861403211596144194020761266525003561950603019796290755366733102778854854371803410146462959536392806542256384129133148880705255477780257859723241124428891821374041483697811341627065975477918977783674970298025401664050541269778442612255401607655198905945012005421897447965054700140213889504678845058212833213948471224538561430568305687298975287949373727187674464311248096097098223663640821356274538077197561767989300417563159784357508059670354472468356803831573889540327360975366803475227732514967583256451754246198625789909634306545883692895828256228237756454453750234085359330039844138790166996412346323853651502751681073410516792432176147054972500591663963851690580013629573294782025489661535022626948081237303324955501244681053371346001425834746547531189901325190089329097449836302016261842352349648158825806131464332390918558239349631300809797896657882072192476381046848607735752706252867085963599143688585243407103391375723322847188358962454765727138774180111353735584635063345756485981709834386787841119602199549794256040457363764916303748202923396963145036744008406098867187323317404086803710232729752163665216335006267753901857978445915138610697887634116176790425813082471313663439698530408264087324051989842343015782941415643177884788113424391414497989577111962252998401955396803428473952933245943521385843111551645791862092346091172432830059702463383794845962407020508454817909734515137459762838247412108835528742018806869104304514857667556644843111878278867876923593408347944670385652146627377403785516688960261255313913848300279142965854217202693235842859621491529846047767389955060296805806685421259207477232611911322699302821125553609656614247754733061727380941826498925789674617788579012791094590276443506258029160806364067309335285855740225657333209549104470496697965311627551699996765500082099290889395409193566693387432013111961463642026325510030572724084624332655319066613820139951157384483824850692573695301058846560217673480984271024491408921070388781592960682172426167774430605627926088593214984887209487982511154426277238306367401314677048279389198096125875282166621351235560923024374993751865900736758048982572955431931875081901715872952730162487670166115729869580616682311925441557175715815316030059925799354958702493301411945991592058708577719080574725922470066632383230853185730373637074469321487591381170726372733082340187698907095615795270789575862222156591264378889124165675790847007961800256825390560233882780152279617267638396384024616817558028179202063766785703585128250029200407437829300666940119242697863288394091690145242479149837685051174569252323585689047077339211152925532626852098694680319876100912531066601782494741341793774147897852438632619206398944543370277597238031402111922655122252936402839012640018199395246270678756480307130394359750896380288192923873559151589044927603519426473795488784922436206168059846477943372997364043699787342939843962603209965016054268163307229197805027445986316657228768823674473292435359079179035310976017470171747402249319954104743939231646267731249929298328238270668111318793276209481525411658238427100509441098857991507058113940375530415234767000041020294936540444066908637364304185123926043006834980041397964537583434389597205903105991321981908188805744353393699195805722354348088819557397499757973965088369899429683710562703194061498853777459898409181161919503022189358140547515326841457946310606060046092870123868185943673453160022192862906631932986584659620616489041051637438839104604764935750993531739455463214523394259154758398344056149848352361321781807759601954324864555953846084363685073993803386039604917700827854880372512183942141038998591916550794368772133927553260923902515415641523060071946078903936853339625105079094326951689234648566358859937376296394336329951212607354548066174938577644252198227813114477269972408380614009178707505668993164170031529000588485093964115582137916714623356474686989067646589951302871212806370148324121885899051086344072893973960917777633736354411068064240539377087828706053078864605899829754156697417663316022094202680439172939079470688429733469066764304847052755614712580962969741461550481707096929146442204803834299964023821603895886751140260096038806125083932516669342725544658777413290232125991627769103957787303182025654243911674851476751018134257073027397041778225230197789759476944841240010897337581218436438172530362093958534796869806196165716912071455464622916523485277784993193761490542636419583139139069250379534249587693262074995872474096293510119084604529982700300217515614689161434929320554198536216967873484285190815294927944343138589005565591099803100270175514660747950523239889490422685631812052584970766859329363549812575263673995112530192461862565248489785728629033070916261152479417462594711489979438368256387929259908820125540585993203300292944565293875264272141666649539524921738475082145557509491871795448288675473742344869921730616277582954754168665815950119391837593185319828201571198822026574124800831523240514220932467326985373792056866838238253747639154517217105566693984008409621705938893618928030385380012408002662644087910970023007384527244144847671835631557588330523818923161756957805089156704970665671284138685974359997716362706111578336213166439172718909705120134772548528069069565680886898236833417874932072479010845928133723458629227454499741036749005336801004737785216535722529803561426556386887554957149377568618117990097690810316736084076489833875332689007305372599771854477202639501613581532458041292886610061122270890441627326702618668245472880003463174057761150212982457883751415906949860966533696312722629003768922729586402641953804890609851452586871401810770205000599247196458124427965789573679608830733025835631655157535740444348314584942782656210285126378400109036270565468975006483830796528898241203758722856672696134909532009397773779838835811077352959044247013259758485731443161409756789370631849009382813197433214004341392010419445617679929209859519450076788629956480358452634274218576952113284977221121074661358870726999347613732332960749963681073991227108411925541412677140504705975190818507990372290170029717136721945957835297531261982803146826069594029188944630448359896918680391538612320633961343436661943383427893982933299534882652938914581732833614972028477395447804545569474152794549185240791232150054332286864533927510365121415236546748013677822028298187620223379905582696449142621258810293800336623804959233618904018256468141119226021029867653095823239135315541459566974035068310009209727127689792896764910377190075313573364849589301205085969114691799692029247340114404078428359701225893598992540307732852801424019698468991520560476584224983481968236642746599449540372042769165206392340058484931309484341045207873757222071734105312471183335127478849889184153793523557390614988740213749444977299649926675260839840090124776795814200046679734431709630051659543030447467439030227736086062952970226366559994773707476810101294231204699497004781294232045648659779540802769304905892494110616784528005457848940423839278274314629421143915764982331994562197924979740474953988777769196508182010970774973046072199568344961490917567692983566351921096242954875695989431042365642798232528756097201427598499512062963257203771246687599165673458684067159115165372179231553719197780057173924273386890931883631955823625840169951479498601032388777358690745405497912026939091896677405098102379789954079982694371519119975960681961673000411706941598556510663217461203763914054327149538874708541612423933492719176248005806310219589440461616002310057128495195336465279795006924082887457085382559449905268694143620552129135908725759463258216357887302768580046167874148640837020010386271493217768748659739793237922031690103242267712122230357477571423708992964146654538246284070874074550205373007808863556587036513703096083891641550959757336518951353848568490171535435631041680113602592902694824973723336340935848770756046825756311268906866096899840087838522064218481920510129969643544287688131820600229335689019181248172904094374747372091823527641754589781571948340307034648492596378628671878903107595673903744626471202788733690592918358816012147450573117965231770175498638724491628771483526190575758183715134300031999522678340500185748758638664982284459766599761587223517366925349335510024709554277596902670925764316679259391480687470484651777277297877033202860522629672255944400912879413614808813153507750553591215801294843353068299504650879964014788101819751614307076337074546342176938367951511646986587855168710770454575888901816416259711350759270790541666931891283160369652695931838476970753844655633492595222805898115151008016184338592852894168471307821359226897206801817780598839719544929414096064369433674059804566986434329374200421868866384008352615703507324193941421077880835128999137505985990265043041254109039968264353553143129433495246443894425179112939476214361942279053185471440453283182245123355978636462094031864820487593148766914216183110825790748316012995290097846583405071276633011529499392860370605158105147374316270319751074215032619972491845721766590044447916370324894947983265385094057057827942634097593219421735665774908777798018382777004512230319787437933429608136779022264761634324714580380043779685092135061108416947991420319515928542235352089174202335629991462766972907450123013563958592564257080120186754635804208743002781741169855209412378563644669741198854327657307468137007565502903642536941594572663203823307797179227173608514640727706130507525529954794263374539605951099213873370501280850534792429693993604685079250819053780661446539007434939412742602284590632515048744942408584523908048690576994488095305676198614887056747822093674619676391716363199007727115433905339965472100933652632981093076628510557875535474051597814219167938896702321413276371290811989711928262554349648010071969207103166119571032553344727649765113230696293765382826899944229743561993989741661321378416452476101514832817908048499945134267727406319594804558362164704653650845691658170949472954706292916910631642441314769250267661117613257935670568036285144262807480067777578472930507283014604946963507702798306456101856523717577138065849840465983457136194493070852037976158661563975538913645214563750975095310731137801653257475956131134420336326750174747285964930922021522777133667609911649768334695439864328795806447427379111990065908674609110981117639902620967149808068775341772051157048760178226613295588610272935930962621101490820500065177606807411226073026975612889722435553927338492958452970660818322997648057845130190655034221894979160832121663796798294130078178935629710329792605081207839477062925660632436381554844795497693497201558222335775395532377415130500116099505250501375996120414337497909387544863946018131054436696283006990833513781888930904561449878273029961749681416426802052645750015570022556420088328175564470788558881234028357416034022585244330053701537961475326873218649776220235746417628372965843888525830689358358398321806484760085265170869663213031692939752506664448846907678452865707492112214542721066295140851626745887185158855097960226524942751302022921427279400629379278363039198835693268157174477903382221524068817005632794648301067998363553916816101349155370972122484556309445969011150483759299218590772438753759991895601482944769221897612060264596439151336097093524171144054368805954607584096738172324620747070032393870615370534544360827574921648104429169045274480223473220285301919684274429439120162615427567679469812072316098823808187204168795156700446584633815353060451239105130099124882028352658412955314140446982121739815809095705727374562311865276161723217963526629880375194771702786944606129256274568033614851125617234974840494084224503163754586285270822878525529348411481926533529873592274158958164402821611394654039106085633088318052427238809252092589823528873664224053683979651035754580633117682334938493154325464781193939857269887311883167674347211397749579683929788428332536858336199780688442634266464137160354615271395812999483041547747701395606819717615568292280637947565227944405168885622162624726659195046019112123630370770227372319039927745417427987539962447501819211701396959166045088961940772146018441087802621609885715698235211556165029006413701105802219823921353216998957358531647898101754807604578860361342416801294847605604823959679204802172814494030137769876309594450506650566407547086439748319423562039792428790366384823676734933869974017483260129501963541610937371220117715333273209759185648608045958699386030768147431256175431379862396239412169999817110190146391710195680517587948201378928020435547272020641732672893078085517487620971379588190867737677456442744426156761327376761514683471454545540261387532981324134490930737052938778818129157579253179931521432135729509151033579333379027476691874632969834864258815649015016295422296628834709073147160206351204571376428549443816650005794958288154801742040824745183053190667496646924552118696972654349501940465194847401954867963675405949530887073791831658030057838974512040785347101934746322870998399180939635612236106485403198850427580329012215315547040294790388803760064476096477527200190941268267257365503940638599391323138693323487919357037722461235089089075845306054587655632980934170267925276113811816194678529318883814565159707936861539985710256699630679771605661902063965791959674526688698798799310286612490229633502920048874287031329583270713091414802283867884549852711906586727496971748567872481953136278038591750708755548883815122254527322550322068908532774356285403186421454234560488571999559433637036885575787141178500230636157755035883893115938550552163363121062459160026715991082395487059528260943831533291541298992370613436052358323850626709090768798107175994548455094635766686250165962912657546376904839855564754653703964192084781635358955758751376550278330603522994708875346197155532509978449807546480700817063495803544740090546435405730791941942538589621595821853729233695049755285383947873569808999595041423913456975090939448332102987220752213071672507657982752128123871813525428362881443895577006674605082747798440643455562739586719529211221835322723650247542939315157236069404413921472381860860595306902519708664697114739456561855450449944103633705017788009027693531585177016299513406418548670486106157986936404012766005210983861293625238518793196636346479478812296238496458602662424857778689028594412523207721661884001032891313409795993165447650966037069472810835793660743989151350979211362201217088353651801851502697910571075009241215958166725339072986987772049391005603255049549379540227453274328914907491135813605179916192845193160201238563568981039687506541652959499680904327590617364779813436201462036165789679094138356399932452625302588867805056903445164350789954458227982490902984207820669894602873264987611736377847910489530760926042674401601844198332814297991309587778916351880102245625287493148879230402863819579399500682709950693837937691826540892694832414529552841594341095614362573280837676043199025924252251389413030743167124968288555962370205824873682944410881000515552123242650880912898242402901927363083567822429235428027037654420508075733980642800841122231418360544609864677793626059742962400486807011311938358696814890802893265409399337233264896227169806981155629142872188869254402198679611788284224445432312980849292725247024045032078044290600241599312895516771828401753005468443078673043174335262791826191320537343308452082196048412007276948054230835854042353297587390316849525826050434002308978786794184496516251616600580305476775543025946753465741169968035867217749193180887251285556206419689709492226437046918372717238686647678091493528506608843205918846179378528885186234171376955288435267607915730858904900151005914083344967624044801126078101493289200056506643319419636166272185806953107171597083689866726167308198256642941414961346332088850165289358526660952727064386698502091155260267988539874470662340013149417963224486554925204593455091342641019977128105048326579107830885124338359559993702725476666581871219539520585270323355209986712742617951392954216742681184282546156291930522926854998813616403462784900304424170908832550381159743415230729317389567253323943088295307611346483251578106313895524260260700853152571937602798225064038973755021159001638207795922471858776913438948544198993629079239098614604219764214381785668089752592050147805983669977939835791795113660466072811239629653716161865895311205943977009838456502697416585309403236253015273882208688178887630981269179917733905481752938556779996223313700859388887178510266195222891483886884784477623415098423142022997882654622780857042833636601552179276481140193437754973992071190010605306848059042633470365291488558080092379094844676409943079462916797896520879653139276505664685071370974466914548350868707818669775406632157969537937172033762646287582771225920183459407923684537157188063974369817391421742406102471587955814532809189864903473074809985851522109865132621319207901355867022964823703651503478007575022299190161513225001568984206209795506758122811503095732837420027184646813333582555002050345921331228264383711613638963852375492287116324136347022790664442789437552170749638025953072402971796892014317624903007859004594223019204975112511200816803835666634019702940843287239822621812148207618902863561707975552077401757400933641054361188292320271868540216795530317139680323978190984555573632507282036728299211422764518437593619969567201216686676740708475636565403699059873447248534150778615780705639761292442424143823901785764125002552570211468148985424546561076777854659964752769963050319613242244742054767788586117188041165420794719988398114462273674824253578416564599473047448452766397350531267518565002707025673968737738677248581246533611882568273975087492843202145430972700565605238539325828639126815569033786866706473016868439463015214423817835626176556393556875903999552267637292267323084379120998832986783585018654607615701286895895215395981732692458662188037977986378720375470118550715842394210124520262171450308209742255358797442595811886292627741787368537475919108839078204633862648754057394730990004628949393463076522213451300651972311681274910576110030575718453102043594839830824177095084481934757909500481543780158425386618182226961361792630022390168329674454685712190724978630718380918897822513570684931244976593306825372760970583273287149923789694619084736502198214128350633650351743954377219580009609494055057757816138276771629342375073326682790642446340347166198605656372771176942907363969614388018370108808793619164147750374691833706933650729810623552858484462872361641633082096672778853907029037059011972459556320382134772008509246251829331348966911754987807627587047930452785151158934975938557091071119665338238871061817353927511411587352407093539781530172253030013611893619197204798580089168030899045833724178237630836458435849110151784402562733713391562737009107781162814101840786892835350859607039217384133251258409315961541042155647086553667724311379005838053767849015057787131213728082503463320883105258584151271110529869045040736370432868600775443095359880265362455558518770488485529480103590121680047118267725663379457647181167925102865498705353157412064218873709640115075160731011798176932714903472585986718157875087551074963563716303447509363422946790121188151349714653204159000289459197687499952898658846358543434455110247302950943493523758980412449911338189763416753818516303176770464410416585083789085051034074021878682528136929614683731991952120596889052760352367307849590421563691113871962985677820069181485781117674481509077539522732618940862278953451932269038513248549574230168632777335133970260603592669941477372316794673483414708788230429521764420708790965049819015314344124530619540994010064324572282710319763160907098168268373271750454075359559699942553475547536134897516653868083517238266578855256771448641300719641002778376595382054589864561259759624428662522754217469133590116302479672900157673370112444864564417009998926900261411137148014767002041747739324594373414413230820501594776982670401913443331900222984410293701727293691026239308269416606058600214986968737563030081477933914385837199124320906417984168448579346830475913867232233408670773087321668434857057184023490215476490644400667433954431187652732887818384240569409623212062899002642696597767707985511100248108007718427475260700797588577352050436132123046969985593203921695506928897608752990587854579063895140546601061322155286036313649511715450162599125865652821439581929324791750746286358928325636984574745034892672197087686498497708841477050343718418472898451012680657531077489077499890064352003549835833435081453998881589402590842738570285673864184122733532216318132497329434927995424419505722897833049964876140110609969320839932833994898158170066625854614631445450590520556332832705115467241256162516228517008341517266500451213994518898009695138412415521403964128306452182992615237373981134612590426501051203846017477211262043683976978968118154524527717584853947236977179263160146960117935900957531472743895881357987192221504733909444622142683035261891557988566263457827075418507639558532259611414931671689559833280976076073897005607215890961027973415277704212722067878258024129059073943988758741247876595438781935653228589770965790066265708570022399844513544906614500914888007573045045221888593669539517498635900103803429154447341048844265382181636385427499801284660254282298187420229998054888607453119589853686112223157968739489782525205770878349045959312650689676398006456164776029751585392419417289372369650685343763484670206581430400225284020361466231471952620660716132202158799446894176637204720160664687672371296051067604373853052185569116322484257578123133484506751183914452893385072882704196357057090743012243906018623815030566984101005976704733727622568552868034626880370449149957907586285542650852197922045487073389237885918788179125101964598191195639289285233084712019258826301500672103491844123177118575147027060302025195732211754380600963483302640063373992294702160258019802068888500513882336740916114328370217146046494185655332116066918885809130338546447671588161906224839640418084073734044620387571038486591933004058015570654880593738686362382891589860008501733211347858200986990839083062476183208388270562629247760535834247711925480097547972832804921011948465910947594553044457339269906654312396730514379583104900262396373111843591041852476541701145553693222132433651232651557087147364850358500813136513823201739248328355430990428728427435805985480231764263397509058151893697900106896016197610203821889439641660718773453209861620727556359252045206386368385925160884396454454261019615128464962454857703297576151769368859356499983905316161615621825045024704549787540447352098625835400167216356158123394431511119930198236523368918088736954628082293969674935391337287475118522228079766991605920147023132844172212140401162008453882617943868168030718833128965138773172280463937196304741224879061918966628877996809141564957317417585572302824733072945591370923417648645036401192029714558584238925972987722050585002992543578269326469419143214747070239066105578479500069152574099153864217924810204827987163585692875049428659663001160959754436318278243767287663162999948762324301086244730430007263102373227561899925260520607955096479902131163148939298231680475465451786262510240741723376701329081778707312460389548354161137015064928735594723268319232072069996302359448250167580485000994746950291732581159830335037515199618240716777626787213052613320546281426586537083422030444661531712976387663058574744393858179249549694663335796055424337981866403212745486291527643544848667783651025713036385625964123189914559917457820067922638330871576083781817723853185347099627010793674398235113986435037540290750625718066419563997082322856610971314274993292864631822426363634311725206423018855899668015916161088380742569886354714743932086650552831620761106140649939816573210557072957918594651479804253907149289866965632231637173480883026438488812524710295194496461644196143811159930495068491791409671044212098412550834367266446015798660893892025296966020468015257830041157749724666607244766073572758903593342745676185551619755738040013688977151515557590692194844332656456402603807016752972753906929466078939314083214771123044758169972519975978457603337359919688429826658831478352654445642966384481633264441347502799882354581735941042362381835177996760236864775820335610966502713499907369314572462728827838794850382688898896436591311432328688206993809162856732907601171255426537827370289233774820244342676902609429785898619720720631916191260801785563701540151259292906703848805844157995852421573599324876217096107720147230628443575946825174161903136437154565285034132403552873433153575321354948166878198934997665553104704221835652018094173659256492792182445384097897039511214615786575289443511106651306580005099028982414568671442905768805613768163920204608225133197192071614171659906263268536050353998293361787263305351059140211022171928011236356478192079277713526212317042198889162611357624031122649626506142458262824746892826394470210321368697049578246417536986488271760733080889621018567540992598769439008281484423494635320308358323565530272855137635259573003971315406274580834246116804679421103564032814928715494521966388151792917796167023242882149212102557285409894236135473079653917860716600338128133450866645435773024815019673498439785999954326385451164971302556266762032665296010558069895092022495445199185330140329288535280613324250537816789554510092184885255937463176740637297383038413664434944386773437692237913490164481774540385160281825325910754784972480788209302500993487100495784870964188801297966572528901649036674505249370455300473724011541398872885922843870824015626521768619419736534687338532704232639064675604060628510062434425691711315461353009043765762848850891401694828300775218941940124938891469806901047839295644094521959975622258007290958485847145314147517268246740454719785189173751113570015824216072679066459762373843036044698339231223415492078073787391472413613420810625492055353384962983319125662672985120492627593556048764811307296745127254438183395122063099513998613912124274309187335719332672418319111107710154491390618342686529224069198154666072526445069261390436286034184833686522509003809242237919796469884412722796751831024962914234517921167075333677419070227750595481183452790720153531267497100791418149783134881268602554891209093927537834441920933187691814219161956741131843893643793889984575994231443029401650949712857050438898467179161229164871302859733462025978580492312956714468544962808761770102061585265478743837819315875825165025448078687113136393740942701781732543589998525283495853726813265782875810231147591680710188805039234492282994055588067793356204429823522727005739519618721624426445346159530849722175851026018569141268052464164239627627454060563557281877414120357065966101388447564765821459529485611378990417688221196397676001228727468307509846128720379364937543908531499459673276833544504190833595542820045529867154077989525499034963016320816346585178022421597603686646733137673536142776252301141810830060170932365833550863836074384679339127282960346893854957688827327668577793951953499661183784497611453179850472524825659766314689695118497115698523119955802070064537638744670958664350561229430203921131368104425846674427313349937547128257980584226116347848574691807850436029749684750537824847669515645017933097926652743527207815533657108488304783009585540352186081033739812412020953910389540760338276735386251691063023256061706718048694102956423387001660223945431952520300454970831699505020693913563544657861304204627998334170113002887394515634399907366765566774083765454763445336185254968479427601658861534276376357465947671032686602149036326862292840436600687331608010546645396622835153527428859285140660084488989196667162172848679108303013054748922596810019291350861587015552168906658016088756484685509272587860158235984454985488854665091387886116446636280038489069560409983201381504535850265730096279168990157438360280814062497529103968843340774442989953483026635804830564328912528663250631968379576835108503068963300670371949542416941783053891996101924454799494725565908412058585603819286107533922835490904144990589607549854820256283796977082581700909611353110579098916914971093220486809615872970076566968194350559109874681967851704309107359359955656977162092201774640358589190483667542321220591972389482220007043380257952276557145855738332422855469347038811554581433322207373647502028399469124427285182407156272594364309449525327737073277299674133345195817340663230248157547713056724568647238987212997942383160188033128674790595115105144581896947487003882540289064392420038028810229972555836212879034033063991182998835506472102819563977738229939796505913460578153933486858605361939895380555742078097616647412103631869106504129327686985453315152195556751898207238889009184490333938896251941864575858604851154937167594029614188529222963260182399752409441236234881842313811390908579491406051764191276851575507266694523975743073969976259806002152558692678891913985395800270068048247716895157460211669054961492894670867732877964071905073247943400107038168895467454160212085638138191620871994586067557833585849647732449311939198390549877168790205712055707949611736185003952424498586718996439267835813819916899549811515924906516172101172200087903713603190380436942907704921309100101478146960019439476580399001313995757746038704943047937418411606011069715541419446359217891033278294662398077071635695015727452292153438292680922512661534169736831886448946040727185867008575747301352866248797451004502624974637865234548533340863779533589725323183569959674069352480922861836255909015117863559464235272091143906647910185440653418465199183356112095573903228656576690708973459848905709204787888104422532738240151462177657335577104337838385631951889509936508743266332954364860000790137880341134701757339578700687877065457152256237256885197795179627508832038818360339914444485575293784814471422123970606386138570260418437223103775997214441548744898934440710529920380603549190548883161041789422074051869482559390782036451470898581165323812828014173839138562046423582314301589277732340186800296753215634371451153084505716361869496287002156140725859815297225538728274989626950626550377283037965513564849269066778275916120422730824377975819123677842624801304330395934225746568369382024451641452036664374544028004311400685198520964943714155578473852517754091261867109788040977145287422675917388578442407376917847472416507358145696482440390845932988679681182657670363797972154792924637353047672107279104831344101114122043453747849052792905557410415296500814186989897098878472219830202132113861917842447090663929248529169539740460089355331209906298158633690236449983231239890351638129609669211832299118269059021124141961092244103715376664977732739923841564556385585038069292330628823723419212297722695198165589370798809248628230161790353888830220029220909060459322981537943026090265926779136290434982537190088030896631869703902794451866940721874443890135372527754842787650168882458304112262873310241920590358268709072819602633767441325070338793103211489225711412307282495679513535372645401028859583616802075424093151212372868061029552202281758681646388346556381304160087195315693875584469780402577413541757612808716843686097600733297510455382584590999103797269440772656689370967479413045287999557749276448740241335042829479135493749027493983801383130810125977080576055742759398249386440928387031727818860822674568298149442235653192588138884362413016885088479085738112405217275180490377879539226626233040992509479864305718499965584073296483932707632217204562429014622514105808506181524464154600598913734913459265049277094931425540603015933495902951398153525572413649362817544933649569134774676980274116166484346645341828532944196945415384151840467119014146290318547735550378686667354205665903476176835881345266294763443378926234598589312170176909493349689814418964113266897704061768642417459609070684164482039986698264097202035779187851882812565487511173121100232359356591371115355207580142953336872237626260237197076689703624396623018760335914411271453412829518134459348090718448228869862357908594444265735569727749278395049084901804410340817374821562610581107589293329719805352629234117028587068185611299584995202633063539189598834536471560097036250978567044157806547778096795349331413661603795945633690544252250307562147382609985051785083375412287366748745298029850226865271605140371372921137592358504775855818358752457937152046617369286874166190482870411527400859822205685312007487080978159519463975853300120435933498239053155643410152159498580102224618827456785545835152131617119012258623404287979253675881989760730161820461020973832575732652058036907131603562114802977665712163891265988979612869268668575818913441549884025706130547683893262295453795304839052736392332838931355767812447915403573128485771523310593286669218538597597932518747536438395312653978561835622923060781812668039758369828538638131526331827011931229577174915498261049265296657094035075489551913975233921213173461174073283846561718379347007268032378004500379734202650413691536058387914593741960071150250197757198184865637866992203464877697882024771867716951638138925728658673584461961521384937803668466790946558239017902643907108198761293678349284014801824817542770413268984538118634831565296098435774483371812669241576659055857418249725020464939135620595742203409355595976793821717057723673306340691622049405524266100761813347821289934231558844326014504930654674795902932522679691138012745592132908895468627947118243087927461149698146808735472859525413340130626481476629889070251917880682663591473165667696073997859166275588579389518199705431722460225145959690542849028213740474314089154369995473093275110772812559398503279672792653912235300706848639786045042017618045724429337771458226229647440633183765272818286177431812268482164503843612729137950620960861283794726329618994897074772851212258461374960409681344481552645093012269133522756794219547567569807078985810886526318887475845305521707783996250982425584783185809028518457141136108918940331503568869145637434901305117363857912438375320712619322555954725518541365038620561677634069981485270732970571202085664743140352736541473670113978744044021446872612259213217504352336093906303740495647576657596360609592668048889350268374892989723264410412758058945096848782237028996961644072891816501455916309391251717924197721124006260123251221791263438608298464353197696426470971870243156963717074814549579813909527479641956594240746054183289549685506862064752171448378092239590632313500568168364784148426470210496540671642145821515336073021502142677424355203088936378415269767443054094173171958332283319090521594126006464472106657203784960906699385208666879840757121734373609095710294693707399280785632460606331086530791896799763430199463660119159999330699267341516536114931625930774695802685428561298899778738549350863959772415055782633268668353575217013150493145144918119485974058790397993638882019095324728477995902195578885110164542119490408458810021852866538328519556216864054944959755300067366847963802389472264467606724616501404023267071886755400511428995484386960018281269857218874446813370503566760215555434878225841769921816053060995260666003571135905826182184786464458263868692254568214711413209966796425928669920513311375120331424817321457772190577470198048323037158521188523738722735956018388331338629913390332966966780976850450086084357252575538657162341327124216288473787931182930416018199051207072783386239936278409450555022714802993441939120534496990177620276380458905270067791237693209550636122820855494489152585039615943974841052572372788692640151994651034394101344891186002458827976684965549157211020879114634608145508026722320688497399640306691862607584281955657924577773041097666235898009716062034628765636199407173642848760645085451413331501422510663661562361521410831988249729594143955604545739360968456481373114320707927487958937104215923831312650120606380837265099826978149571781500659327676249745215604420338223592571467760391166744099906761256220954241407681653922846959577046087907192087387020880892404286727213613840935862057001089687292092282990170547558732899610766421187557674281737345087831239370404733862644891783140588380916909272935091825686954017676772051274942414091510939609427222628123106827636819698609237637729544637147891545284291173283631586667895055541487853479107940816670810152819323325384981251908870052048615756010979297393895116371263897277042132781165660643199540221929997909404900694263850750597050949458667604173108951891641703161834538394887638963261109340673537492774809108169362070073807978168655776076981857227266396070237694159287782143926464845344909417733622696992149740441882037202912221539641153809092714536477144395385658765327715312036763746389694244381498868593115575855760748006574457962287888344675053200156013254405832800856690731928748709823414600114942765900269685857856370072097406654601877104325579457367060757073896752926582716455670952828636031298098428832362904207642740270503844358996049161608804121255791241779709624790968681907172092963870609386662146635294104952408205084142158044769929732815745187848162439962325771167122024442805374978176200610785227073173179469168318328361378756652735400731241833959319384383960534150893613112096966508241853494999481676071818068105736209938169694491911380431000416129110845603495932734435584858591266313273349899829918824581020582724132031368168980444012379856988318908275442202061251392658055897847489481705068879598618073733470900984975710361693040203027678158124438998789781784467221956503047084880110207646560370827876705133450526320436689258243783630446979275781026824014745958236818768686968107577321172433489205052880950324758991129070086473858523125411370048167386844871353140863582850214077577491538128131411560778956824195455419427177400169559198818526357508815713268100070691532447077160643071045218906424550296387847545662658001851763802614584512963678811649561457743763022441194418102991292687130891404151009797980011646161581052290850589188409477659341263875719811554076575306877644198646145956270033249428721130322657315185833789591453118837615522170981361874157829696483231417612600059936682406967043620303701970005714621460688268569159328982908576801440743518462051897080393163116437126338203925010115427757399280454511554055285192682048671914462294027471080436967886743265099646208125526980444409539174390534054047286911794218710609962093156788000511513030477996874443114938001802320525873219564905144690074374555265405065353703056322531005021048166980545862068196753830710075265338307997821618422166611274697072367025100164243449750085930121872390640799735799824080724662054985659354875719816104931598269627276882946199763194321978454170465768038943613506091763340182996078890567468428959905263585967484509396154106309844238018217264829878062599781381302247142352380445444474799819309037990980913280664589903796367061640267180362530013771534122822976511724651127731168517647972771646166665407578373277929152041206759068868146812563760070040144085859606669691945744282207374949395435028801078987278916028084197095193154055571901175724494747728880173244845338861488567924639982680207139534697394623602570075359670568482203289711618154841667170455252848491639793270647956958005691885764895580887842054644041626128821066140240293152474611207716573118949795852196461936136449470703901919333761151688130782306644769719121101422988349571316037020478403854731259419592280752347329002790856725261646392059039284682465584161991470349681970798341461657477692927024645619651766347029807302142932706116582394394124263902329140898291109155158355499938345533921203671543323819084861964346923422074569723024850883706722255496268488382839762589981660136285844809430080637890635338815187985122760178091229767026617268358585983228021582110511261831689778026267849556963647084717129508471437729086627174233318487107885656149408859149093019462028156496120252564108952173994824418357419267629127325070405798888428552844402771626277366175603079768756572561636247524863009237782281256867754456012987475538523677369960481726168046464502559308440598830478814547969991195906506318601829156813001339139276722374882358775498830563679180735151528231376882107249782623790317232201234406829855754425981382205961140819484868434356880111829433444421378607231892378958154111192220613233800851469445035153232552781372487821929460834514088830097478648048131717010196870841442317840475261763660947953516503581290334738871488296516213946131418375096406881754435719716118940073672503682231231408345121425039992523136869071077418377940723316120374889052207069422544367927224801897832207120137092649493392140410789963649116561293378452860425634707658155668886756898625986609844515710488887358652220349664216249783623794320670022697430364865220517447259728427195028258217235750511151593837438592468044593933672550640912266313608571784751968277483608562377222809672834036537394208630605255305052265482473728630492361648243790750603433173853401038709889135910277572474011038080747377129575790532522456983576908652412946148606174578792722936862052951893787457862824849391496022381700847762549721791802201550665872608044265728792439547347186161408907670249418783832030036958581897624836632353313164277049132008254793994559003526726408154973891263329128765209314604909765263471793135686248188538351861890934085223004621141076083468497503660703428871592086113827583063646742697773295208650712214876764847990322851239637806318496645903775451917525285518178370122218892612677874487538625645356298988165918209089297861624414549267177472041989796121247995245407441399827319567737706178857260979010564806980263865848760301694677690959452324363164644149195241527767463200387850786009559566046741292336916652249453131805678514923082175568144108916278213616811337838690588258703792221367382484252146993322331284121799862013397863596830869464424272527363722946710040997521977518934775308496804333446445098883235091973444030853255322262546162336726546625714326032274569825888207878611840012854279915845292245137622433999711502698966866787628476603260726011371928764523287613213300047329804097656826909209433006492061080915642855097313209054989691239179903747137415969383835082618941881756408956807380587712256793150869715008923460434433123535424933715970604994357907116805860341122012195278092328484528146777041917587549851017655919496588005624044169805335925820786765587985538190605764326705377892483462373419644487534833591379944855683025599817020627140994043141907600003173008208050055184659226684530149870237819298594469473615196945850305452802199439161590503906619881804615833612603874238264132563901865032401204588642260137081242923188432933679139573836141952529439487632991083393437042113510395704034155908216526793462431354120554945425019176613844790558293405203268442411563867613664160081451670797939748909233908989022075650424679272823313873249532482002059862818637728729634114209808867961626243246796510538314985547800443863342309403795007303116803814676158978438552715104479958910627010975040441834627189380464228955573683833341006765607307901294910932963052531612826064330053078985193925135839728265078712143553290139448552730295392825434973320247197542982797001851758125409750689132389260115982629257848038907301567308355090947946850756616180075794799366719819217212298663489647997563384234237833241724121293867839003479905579015845191431997556379885321903527260346188353698897720577343943322850228836901930226480310470806860283285427435543925032791724815208664593590189433789381888822186273445721417649484017004934004838853595954725968824616749150784274399308106695391379610560781893039207507160912395505332584227707235212064414009075794320561272323033181996490016090100452728405639820906151840239737654267491758905769775632160293098541075671237542868368658655727253636929466534083920353942482148480531404676894640134440092957572860820215934632697383753369072259822129422391954790685047799827611121945960667963588840452741849424352003144107119786602409625564270362859846139747185416997997924327880994240683902722147953829666990705671147126628159633234568329752439023840759954314279782998405764059313201759924595700731425035671427100443672909053429574246490881061326585371910253692467992911700854294175655383271024760860441944473186699482231724100941672581770685640400546317634685629619410517861013510666479508968786609501025004269905377164209010028416984497180134458442882138110315309959132006295616020041293002956042546453981212118176899856371490720995660752233868770649697839515717819858181487816594067075766282287922866840658145090104434962440813188927876655345915067650909288301879747254661241035444377599357283895451259204769576012038332174456379465007447627035528915178622073462861613949084386813984537540565052024210545995678052998835482086607556473593506144659419725771868818602082237163703824676245332806362777177490050678685684208769793565498464143980823002562148578427053389725178200626982220630608926034313532293266357405181971140322296347362920869192241592068830977786251402799393779526853129228747057021421026247322711738954854107447949998680815484226562107017079811750789935562472475037968213951313106370690225819112729856808659825991075938272187107101901170144448215119869417980350116828273267616806931127995602940811948048195669664741445167805079568873223222795199281917070753716847165691225946395172029110582406075484264967502658408848741364079408203368799632357742774564742417620079016171110765885830777319847154128307587340623048040756138230894132870301455360136505285006331158048305630347469229705293367292574434380914643933132199110562262811623826125701515066544757875049966422818015668400956018429938704163553426102543391437556872173684998474508609854024296453169591479439115777203209504813879435597217938589184039878891315840388538857175621372389705705811957560163519988352143073977515692087629231607119437003271778497717712142435283498806088330748140020066379403114083027348372010797144014487837449331434907353512861684135637125334720580695708074806649939555289948015017149966282854894001025471383822908319545194968783408051105410716838271281613347583164206407737913284397162654672073306318241928317946924224772356736243319478815494047294691115337453375275288114876237806234351768725352548383309410225278607844942208081608430894436839804874975213523062218859863787295497799451523747480478837175246703092979093575936406566144546823277974936535507088309371420638558750503483374809525827393428753367015199687192018703708225754074039070332360501893325787297029041597694752316457678627490084594645968401786098915402885619655854797274589562494012054441006386574303405716427395902831665972258894987339010232890560833569483891127120850011911598604689484224739736160910495971858455244017947197121205111972102513590975763539784195669036912290126124484190899156919626863489376353141365045734303132278194862580485689436745191271981497798222948531254318323285440503660059299548486903207891658134483253782735598462731041431023307526752302112923562965510022911303041497741725327488714751175933510643171592631574108056897834917036537230216583165100251256403155241596852631245114380032862042275517964790989063270409251148530714705702236057373040021263550037966059992786967021767410962329579454069292385158049114521475016287192971034874909550376386751043553549713842466102129010585526198520519718039466712256210659885609530889247040796670098303444895161862714093808981419643411386008415281373037880816849993274525537173625455030958169759632182170145650650973591527671547388126262613491848814522488660888026679210957333990112206972939997294975519483544914065338124533060698820976180450928575465867105731412916203915911272769031509376329333516299693585709569718222754267491533450142751241966656613920176248453340183999005271101877140719270763108748679052734939104122654581959063202818955304330947934780446483813455619814294013072955858525670535154304631716824731547956845237040064319234028350733986449226640524815303428531361366600236154040301175365523631579563997288535775162715503944006644348008818266364337414199161618491259330345784336127466057812736702762850132414045199363934227618501141339297135795091850215338619358399689501286534893009407485103244853595541633072326634530620141132696964478135565115910640916982737778122915513435428307101557051097816626989111859857267090336345402120035257298277794889708284483570093165521179445046992787000230378800414711713549265917943001242413861591480028072431225388553775988095951436971387599772475786589596516249855471654586015971010201454867188735381162558215561126279131762952522552924973758667605778438966936413390748558765762836381511870486416806253250256014920856310636032733801826314235658322704783016714197949008540870484315592441889404955620643750558477523015607588494261984318154377467858933248557306980629676044651149501858421747770980544818837674365812172155958089663397339321448049136639702193180731225540199257373772744711888668984882609738558686081258921267967875100992478598264570487306781428752830461825430544322074699420761575826361697961974054684717353268076775082371655394637986480337179371876205421715984866177853937246480898976380482650813694910419799560422600591254149849787748045371858779454596897118898988465540455343443119932814208100856986716018366793972434203124150781146472548773942772852159770842259021439536906242385817952613050652516413647076175647378556545425759816942978263658504757384438100387190360239224214235577521678194585619838012609131089936497873284777085780509749017343478324061508241515952868058951958409547372252921752762699990748747188786996811754822915024851845059826905800564942325691553984887603195849918607203450283318471137586044696721898613296968798476598993900097206691724466408885130249472481316397605509233004332327164727357086612947587269838665976946084878323217370702078296387230695895524535880578826836459593062279747561689153406688250586946152982194949141634458647285621967689031492219235461538465472344218133077722005861118695556319935013291070888433127127811541125091112859962890874659450469129614869768467179167926152507930538574405657554213843492453218472351027991622934200284858261823106352688648259313705730558114577280958104832978092574680069543716742901466809573166475309261827725766418759971467312970890931521634396579961748286214054700956268358521544939141452900623951501849392349935253332677114045338205757248370529787703350183566358837339655109739077708841779265084150382392951845543675074743824480511754578594249029542682436271105612325075325037315680688656410614784421983584015199550760972634541960022793343066508904310290917922945704350540563492974697423029779472551344174182844217492443242657754938460195202603846507160952865571135303123855762000327934864249001789542346321780194756879181205814296887174244891730594678404043485604487914912516982815729247556682836530714390865822957002088102990088027194792617943792083332559954014217436621542283281910591642182913074363268210353632842216517316660747081969078352602028573913599037830547628063376777751994506244941174943803296649508473229783892969915079745515191376669772486715105204542750034712782416085578327730581311367843093865556040356307580289234490448640105323087073115848310250052838495645528231060080020907642576511301068549606571326370961681459826160363922721415699950096588572702615159799448314855041777067077872535817079667696107433485215091467929885573467568294076224999507019730724190455938668626957558132669121394317325291803599804895208530271567826087269435546849938471445481824927288737729883946553653631406568834895160989056193398752391880471279237644312203256243356135151383829373582511376003600525609395590040470577625484784110147616269310461295572181004849467982069906698273729814372835471928257038464234905160261894237241459090790945675468642559840963222857085111290793166436312156727284614652493940460468906814514544822544093547946591131773599820949865813993536065322425732260694999263968140566954153253685694744795055948744589711875052676301277589879237912441624911578297860707930081216072914560934331271440490364848455954861880147021422291782716129207986094442802840607362147803615429138220561125995299442215440129172878139229976516486266330435186925317518233168454009566522308646695384731050998900824679705409841242449657577268272847985812085118277610530336548917161041586702541978336073910716391251883044559261544675105840737812100577019802806551004792299319427131665074376822061816356034337105306534731550124647745847821214027073993440460692429520318678613919958802206752642997687553096400101945560741024342692201666213761637423262800665703883397493206890569734722351204411080597777382389347120933323137123127836523745189272913397903642436064891562742860538044502816464569892007610607304901628657979287983680445704001811009074663066801923553464596469051835157255274017289898813799365155239561837233064171871428825734130689630899154905285383987797554110080438732625952159235956087244049082429138781171000825272798268802927378012354714973247984296110354392877262100426907305701807866343273660365160651273535746316151132028736800394960096466498310569596547588102864142639280739747560810162736839674967161729155329252123773768345156645693795413614902705149767455759777728216108711039980379256595259263746489127845088825732164192664859335360968060117631212371253111864906617877398194518928020827385782359167591469852312022483649238004681297938088694658042583314070632245285735335679736200786998789367883521985123358521595110829089905082930764251318755523583591237659800102026055642740920305542972225678103944343396635448858780619991818827955651279574716285246597763761503393204695313735091538312253269999756327443938571051722973782103811218163272582608904822248387757908974632425769830110808506374026729187835098416500806571890732161202254906048329151139342145536650340528842368602724183115901485173627488017618394629365487125366065831055525185767870876974393998450579510293041399943640600055587514117689756287942323141740198545490392743245606587350331861752918630482289933617353166680815289012220263210469558485040938473060090268239660367698193275821777699960956119918004243033234042933134857003623423222866013069582892641039372433422220647965820254550611805765325634099389889774532081603087991270820569376384818340401014901995992131025770033346274956239256000693915299327675121868932242783802829872168527312600544428743030281335677124651053345290967132479758105976212061463256817860583189944455083496787466775721482898465964003603044670912128218326757533019611226069592983805575035851292618422714479134515226221644280264118521712035459864156545391059826041390728824609503424613982329255832037727810224901317088221617338443037827984141847909970331181966315292160796866029196181276913580110973653777173556301393625341203686066984534475738951160214703841587716658828513283864081971656729586959102177421470893830289687109845163142668616752244666749017530932201316487228358515107275828708311920100151855413801991804767448258296589840571286191942871281473422930287492080336137680068839614525644195047173305053215525411052633474649469423986919399741555213049927426474766287460515280248986469905067065776585823775215238764835498406975401322146139922075453165425424491358958349942142669210390215267364169281352541944965839841187183668128149446244749636709950860321866860484280792494170430334034492741494747097793899748942789057054069585582193289757377695917226926860517344929150634979074282216560067272508636426849939746938889169261001774169110798228720346722886483097523772779727966403724961333115076903614224643238349348653488355155712587665840917564784865764700012475117465875081087505155427685596375760114818420631372038236362745967186209564375595331827552951428080033984377078144979621790463470960025157926213186258203031213556682628773136500163235016030806213964910957650656342852284780958641854765606497254365919585359414342276316254232755541226622721264625779368281100823092130975073531138876711006495081128505369644661345983240459046392132824815962053171165739003878374741456818770317358572948702379271727233315850291106641972565580342648441453727353704738774920120051439783968573760958965717869952946014210476600652631242324818839711018268679290590410519497004344687747650530269423054696441053921293400249534475327978431702773617267568017787118995117978132008451523855570173001044492840318677300969513535565234551751981997962217612439681999908987319120244840037787812294245762278200282450539971582414984203347162166743687126599784449115967266967483782921429182967813284748447202341007500281407832940033757145835956046288491080549552309060858678332462568766803251322303903857514406120436701729049928823298810915867655491954915086047625986452770411869122899434789126123215638785282377381628717944413467617786771395770896961455571469522304321225282561498798981487196460327484053861978673482816777284507162738968120783799728586997255192752678470949349349765181421122033028064939106024234585799017866613392517528103359070970349762152335002661776423996344476046779952633278667418269477417976965894596835779530104572835485368434151686841885428159714434254841480413697970507969575123149420581792477526633080453349689221892891084591771947626616521481228048580581949600794481371899201369573883313454095452263251126926734826039059340682967465000232099524753864787614338288440831305907810093984791667688750244474158468512138224962662688053495758938758916344215718753703440729515400138546317838126100538331717344499934862956391844020792175616184270572828538019454011189535735527219589319850529859242366265291088344543516904343996324031137975541839488030975648911983024940831608554535473447494296560864578493436159889593683407356292382095446438861957281414485707610009136114504839084134410826032300246972818758654453150152836723543565724555057946650460702634500305744151569580331394280590586790791623041454260286428098476579314505161188054080240170772934771984313635696043534950512013119176656296670657002394713661792664173107637751749915305690516239094578837032850019410706662284022838161550973334430952223192652161707105071524718693008689594845330686963069705133127205687646971836663675941208177518239959889678494682179374604606992340374086837722804431960311253265444601828869862019174046966895547017514481923015254063450627470820198661622142391747829775035701968482335354720100516974172107329991818967054902789722289835782186039809302995275753822474475904121140475078550187571824393283713991881984664822213459939298373537759020327373115621897083529736502363642314782231084409255336952110010480750666278904792277764995159344076263545345865638420107023172297617846079788726261102584425451634142041089957185678180896770329776408682453854956207267795129689534456326953286476357828940015133504704043460260426921984790644101500205975200148421769988319867556078130529818072391232620508943209891706401418135583017347916575446393202999843706481213307105597355104575823795674980894808829023848182164307089403229213332010170957147375644205678613504039061227400072904366866055796709021580543239779364826673883283406707860660802233791154074742777839176545212711911712948006011194972666351809355678350063775144195208912705803251939105322055384893495507772445438512394297037182092059198698200649940579743153616159078729491033100049301355388544685263510977366969634318504480306283322077866090569726231570452354343245578662776497501445435417950908249311783972249424270964545933524675812342639329329096635156357899024243270483760100867640276045062373305598475439458490616663251313994123528721345747392237162336620767982725650489284832220313778638797766594865738073788258116108413612169097632093876407639865047865963701795765286545573769275230602521693503001267346602995875093070878548505539506291338644766622771401535475793174079543723681807115565793167346506089897178300590493199925033451995668671045998766452090356986263037787516954180476349449070995984680609241357926089566490079415584215529507003106430508949250990967392416393413819917285258548443977449492487906861443917321862887099235593812553254396883518629681125072135641134092869506582826750435042372620787817039798793050419852012889712738679716155967551786323905724132377733053125968342164429032063301997558999599187103768438014813684276330123111211838471216633368681042170650653900273191697972179193029659002234866623136084366878108999721160527080712130187601138387853036094954196443117291271730066810520866994547933942644689544379617341477416969696578229844387196356302188527023508735826039052748361871581356391152630065311282616404449064747367185082478681312069335570440715661832621423323155497811089081657093929006061656676904213782026915411714702041922567015407461391981242742618422838012204646262958515995809855681146730508652415211724643927018128628197445686339313410315485430922749073392982001895320102989848136025108649539627893025810845839640891594309171807719600088629308111729473636521371362016776974984492697893009274015611233561480018222897156522808630949222184838169954455733081436480172342329789335201280530609913834013239600680067703309781215273449606274567356044696431278140230462848560099025004418296382850324453425925635034544324310720684055600027590848083975561992099926665866101139374930826389564349174984729828564480562109416713221344620623922303962790045713143749122379040942558402704946456976871941629395673503449836277119136433790036316034434056141513623649493132766229853209697503771740961461095275770914347973731926327468979138445219170293093182378349300635880324288742024368228223134671625823339310822703876427669847577935255945704981132428607870765150981138345142328165754020954949747220832534985981711003057934472331623448862018129104943631562100577909732617561090114669019348724972441968947001346071882688374288076972110766510649266635562181783487056678703609019725349499976628010545542796846600219094694608535792582585543413104606349828686744060390288666347843054104739659119022309866789199373189757432786275531108059443962006770472677574773792068146613851009830450185110243702187123161909941566732490699290143578974368638232520783867311459919369573137153601069885259514038312009216633622388023025007847617751852032010892838909440518530322464307035670325682187612479577836693489046658890758440040727311537627679710568160281584716083075970951285026425604795069508463111638245089954445208519552353864128221142120045985941341268385809856504636548313956756898935411125810492205811022287669430169604166401275571861134021333321614733699366414112529934052614265550789123251593385399329603069795149179397585347573900913302643691577664857675135330714386521988202233100343900787854883432921428851859936489215154667926473068434042821332684054142670455407563227707136375869584203950083786524832930502539566597424415525602145165048031787497020458675762502938262267222435403025227981323510988767314559465717715998517634579921312179518024155065359501005317231818630170758412039230155481776573195864546018255051353875385266901749197793982182965528724844768209359610189101604481020352985595738754405910465445432776302081015974442403333723557064972900118035963146964425279115027553539951231114890147678868270859637145294730275890466354917380088380854293005416480496000299006269222467662048384226411080570314891269475132869639573430776389294927205942986108998090208029300751540653031362814183268367419486276871154249066887315936855825352463741227193600407002341188540316138158525501461053443921761433955143377358240910585347016284794489786297912125079808364100147978308742261172994490571424496162810420857428037573834534932117584276814275153551786041327594944558237090767033914119681641187432555409351339977523157034555923006266352358268775941867514709388073180242691188957798147652856045046337900118525107332438191358306534564110875823448279914746066835214309232101920911287804481707352966298998770347371715889344868176288603750724031337155123235435686714557150269621739669632937060631520104281329331637808679571293674933426546850420931010179063524078841850145777141080507358755282888028353252331738318521980830851222167544880459646230204204565921990881423917071750439438578377722173023452620479980347556981408554454849634972833330195549344737656691728680677289048386637633205761526510098904650790859390330168419278741631030972791136760011701384642610375344648648793720087988506899112271618243751094777621007105731360544266060906742555141593755210412207828509353005215840528316952991769743170277333006410778530343536772458689115089955347012309595693347347619627838276278189286815011199177333412707384483934503663462340342799362636520032171301087065775990827606882842080379023650593681075345426594557926830150721111110183398182496855959740506033150730473910097041232261689198785624087142723795460871475814391763051029045928627272512505766584114497437151409617052698659057007565433584940432518549902370361880644011227388918765923816704118502532047236572601902520817195684855310914557481118911102952161005015633200198996673503700362044366795371711036680067502792779779453997532649608451733496874512562580665227348772275645743258996580885908306594953525474419889345206588440284861806489272739553383545656729032855898554250250476432845804173596601605226203621584165982437440168783474082940340827996644713821430075478980809220043654239398960449186146608491204617982570682629305557966343630904836203700744929131347975522676812240748265683590103096256346251177139151859180529015149775852633141760787849265709988297093825500546627404016844655798193900359181374343198670398211216555177493112890745590654706239132000685028147397843636386326663911762453082516427881539298821982652971393263260528028164160697958832382834487792831018635227465410459802875262268329987431366533845535980874790196573996588924867581965217075835860730557277270351944506388159897351427201059214873478188251331773624175995715895802678571749901955022551631794148823678537352134347283985073570228754619817717112116686367472945346952329425221466965438047804460994549938298286919314836269424585832993996207670739927106958473996275292163909726776108346945442748182678419021319144221933724932782418142076463998718223951765392190179085415314939550104001239072278923205401079769543765577599616989586974000437231272687918038429053444905855691518525957351547767400865125354071154494440641016337457223712490259030671681477053417399416553580440573367977632050676020871894691556459400630829645963977403248456135220708011328089074744879356996089996213033146894121293199722359860733248264829653230432055742334689360844609271732506817741092306196540514198963584374834381017434757398997997660568746961276525970312180022641188415113313279331652134550247270736435674924127879521478789759207928514136354371138209789450919275782132410546685584777768618346323919177943580338442047393201971422577771095939777739960170618423945671684646642198545874454988098928722068768595764913449193456615763572419145527903781464578713851376752032797618261619246638811248450520005290303436291994219765188437718992864165034554921141952506863480808737264784295785724830350933750934854036601569397812630589570004750725730299877037505922603989616536712059300633518716020221149580487273426339010869087609849531251721603036168693110090283146132203389387004784566271346580297204361860329030604739820238559994110816397098625283135410709237075957317115216992807359098500933532808674524668302521076064445324619923005053104260855290405777966815983918793865138948221191335338026652104199437238551064830290240236562028463773296888770176354432417823053244724794717069038398070179277641982281323799870610201721461242412708758055884890593567837706838052620024659653276641544538287649376607606793460406689300189563947646390284717053660716982170792597218805358480782076556240251360076786822633705654723431734512082050864150029444275767819660060565946558593349162600331348123240314030049469430463652538008472666536205631060158197707005475401512997828835903939746123474613664621681799495376157232027884791180780113291929388008587932805448737186451699732995560228634699113524492794161593261614075280629658007419032202657238103230568686271025820656337733429594793546532051606401699744554448052716072497946370537394078368153608580703688275712397085232622474007846898843759546869518769750743539687187514617674561124125387080135976289157661010331337691934595666102193208927602236292704274726961576446986955374192800528024317990927833381738254776760456692769862079402575258392504842009088948861433337064806684259262425283300890512984188646729586201963718432727941786803282121901622709509882904792540442866877741343251769505586604315866875868776347108439634580073190730963737264598940743075143967864257711597888177368139238724782950789169557373064905644462875648536997880482523152693339447169473447251679439800457934835047853867505334397170511676527377216282139235195444406997431471600527101345825843146365618476025373890457833849216548872141107600776980249738393764612474532283328654037406404516423304949746434108074864426028017656695540663571349659794959710157068842133141276822528851806020701405157387793107171609174935215578581297202248423428569361253982584704007826771136778714605891066142972995745548495179870563277369908692093534922469962659185172977963829035742306886420039715968515237873807547498987979590736044439049135012831182227857939456041014861619918522467266372467585077139525318058997194040223569875476649148613660500688331318935805498617871016656818338500136613231330323330176273261180337951890975743714525158249329106353731612819182210073852958476114536297207059199439569657396211241876492192976632321007750602214147547632197299041923618430798270384759744495832533942011919486016967592510080312369447472949323930661974824316451618833566319211179918911809385030804374296373005217544557133761918167100223929675684188321999171675833961556317821781782551469850774342951344522554236360578630946540430444611229024370292918775017347365275664179336836363968344196351887234450184854217194320496322557422078108168427381378491513429916836718157645646397135715416603299898192132747878464784559612609093249053072195184912327202510910035579930972885928141879454990087801489747783654167154627926627554292018340929012526094966338479491643425264309364330882342655162116927325563450035534937646304718404253009343248400504998068961245921343774297849020707248961450101627356905028910357547595158568670554527297098319723699862098905147133121234959501749267799940973110478696791558185697810155862540379552851326415651094935140170402796643051680051252126005667776026585692584457294681943618187192816032371617631510581060585160031952489848853108442804042273805510893347417052057743047586693799011254181731742346616965519549596951410717081074266054248443758739220683595656088789596909391312600048266191386460385757160957051446772463878154038404264474917860030055637635156405475585395360078165147254730012631020819299427023214450881633830784257605813161210589766560341108468720891164641069357512554158010950183746822598103662469947828420712172382873096129297607649707242052949544030484041301202435596699369356215255060620578102264830282643017991011445064124601031760887642452441033126816046553382281781054791781323257575142234481333022919984165193502613639546225857270916327320618868873039647686845934413483597433277884270221511717533271097970535195192125971604791981494953802487910099097893923237915124354767107315598817051770793968749592316397221004482737051190727166345760662619248075720198909106181753643760838765413845666362751443805184902391936313288229546067248828790641479719269666669830957484214395887508376029256869815061855286802845552870510477918760038325239182405258259178266895377972236106473216507740712668064167604192335124018171756015790601826508616030001375439478658857062865473784675071599392421738787551592740563140951412713780671859076915376315631208657318887169582652925427555560082880892503282565206281037486945588958199926030765321261110993053297152421064886385986096547625516088338966408567610099154606411135014423230691552271131691645007956715005784769021377577515450705628173159972493651258208944324226741277526053031927618622391797680956349290167092062811160901386664363467534565261886524013333485317728722304260531349918080319387358816487581756366211078745151526838726939610735021910876516079439177264630152072407968492283315817909489985767532313670871914611276578503121542323791981708618101611365274266325863570520948304995749595043200277195386911388770664156105172705755231989756553169199287027186063079758855561336086794603231792220624539400148470933754657543674598280973287678717830657648416212559186463862527587253633366799329313220019171751255241434315305230605210258767463026801171634569717144929541867241832982544660110659847294405882579319145972007824960037666445312352706824629357604208939506705344503428555333124111277298269955035598664261340201185850786773714163568963485768858487951441057984736089490349307730287088599340125931016778015414769784717278419804210580930235422757926037267673997087111180440484244169522971622611497930633129974473249877233801753633073065166185479604045582256970394964896080954943978313867060148505711517637710991960201812464346667365294408506062113294598184740772683797005100309226389067259093473853762671214038894070790157708105994122907802751256281419738862313665340200547624794880582526377563670137898838707442128844854795959832070467499840249142867592164933627336807397739617871081239490077485811892985558817698314142068185797361491575135700029570965432827798277445359700105629718945526455435493469991939791766777298533105732328098012742628349355365785392860732111634002847264614812259292040337927600624569860568751184906853281743278855460756741084848358464163367682039512594444778250869719213749480562605585739654005254019902628342793890081074411699017366053746554222945419368914221785321221289318201482777462875971099831096496243246177760701097155675802806683579947370314932144719322938605699396131169106319137096071245000265071719627300419040506794214909248857870672271809059211556933739329870398991076586433228222267690493956825039632605761669392250369983445287935761707673391550673590791484924897597709880704316037648367394514506573655461175411545262372504553026863238308977790201244373534807173505224435885166561523550982560566064519739380756696330027001445090389330554997181898296288491949527089948766034365343830031657796007614827840345269491299818239094419589428823960293917633939715601681222714747788591715149302011375168624042049761961177007300345031680101252452254819008309237754670087719875799229957711143063302580779029315050524294350291365450598767541448789579457368297969632795729588613382506725630352956493031909637101432308410195215234806011769488765906327312452863917537190563690782373503929258193808166501789075936812434973232577830684790070299159639054458396109266999471434860203420042914866207820542099467863808268419783376066792062939001485242332320024330775135298130991138096988865672343206653400665585321198222962080823921277276314484257470024935190098223184009991167411081900179111193162747036000627056088568945161920564722465061863225125893534157014998221849326151025147214057459590073622641874115948971744667374264342815781984481185441710026278543233603282609353513175944504208674194169238359291384428626593868545233842801991844381871797754358945369781485245168201310201402052745791856628495297605124473418280690162987653759701615197799548244846598235311819187540067341808913216028138355870753919672204364914982682522406216008708119080091127776275989428911534889871946173757676645468857429806410807307967260218333025195446939287262888942897815912535359492395042939177369275214271105664606746306148724080264563545220769703647204630270818799157634584799384346694087600919541446218292405027628971747514678788968124769098976759444388838698236245671311256190509457634550452578651241090617289862808734009873389561067624989210451043849819891802622166308229482511075873961733017040631226004329700761761291714656154285018534875383771854616078568802550788977692462996117547339511707797963782801538861547661266864487123042206042058303975896796359144692136045543939561410707394292455412918490442768151961640860818170367216421607808016547987589993685122037272771237288000826181942305465333899369876968909426193509871760075604887516257791203047346001067409604028687367196939500183729059375126170135451422482491818635844119001724717201071833173544219813798103028627506263620367310317295726381943024782300976591185907066725071998829154660031943670306897697574686701807878607909422068652470226822359513094214406224474987303856596627475621801320563626317662712113880183585607523505074188007051560346576907832179494729084924639712058007934176418834935743720845976046560290959193530902115273862166587198941430548721810172194174909484762825933093605271774203269758427661582945010512805337437311118611502500908917109042335899297227320613092389512458742265872638421679276882091237403945081284361495511320335479514248560144122909452195658043512218694158733044055860318902492528714849346534130307479237467578693321425978653757252689597642991374959542303883810249179333777863091906104004070513322594417672745569187332120867700520315626444478267183710073549926912146262868076494255098040045803850926338355432569232406440889329851130774106778153909819843035451770252143812996057964619226601248580979071464668670798821314351574696051278868820109778183413561456476519583876972553550628711541072073867099670887501268331740484788895339864961082656167771320290388011738620894861589748787181281439568161948327101535339793579716865838409072634144935663484739480793405218250973203468861212268544685502066015638566603727401217622532027667249665742337126047207152809753499522198729394540607659486257674071094210473129278449649353713026605650469200881404766979727383107953773736334894162074515153142289459763909756722325568193754764707994244021689533404044895789936522627206294684512292031857277257380884820587636925083716817067719064261377043237310363107278479740588430325039224495761147467591354131038584077852315331612636754478388499944939328748626095581059017788162419429256034123019279684805957362561538046934995053999318751980336095899866197807743551307331307984986232456769992775413598549680296224423871303917755426309179644574135642109744848329371423886165413009441754590211409803971408159651720786343177085314001226048200566202007797254419691474641536349738998597830523389580153077372874390369370989946681936954537515946744169617291006686891838322717833933197612532696231584127891149544439791651591390567963798344159316120741281853643389748369069901185790575532043060649752554512090652865786235714900436420757581400450970792144375576530810187736067159074384886327336061644242904920705014287582196953231439873929220386713817188131688169530996024132298628213407464190796984791737859525730296735786660004664387043214594336560905806241331129497500087489926763955367664488554308218422435031240769230901037112722862378884611435574895130902718274389579139730809566435189341318666467786361254631773321784517212766522080567567177907628303107482328650106955433247880180827185169254077297174786453114966169868453275821320109840534074372799497072036674830385281377289858325705998688992445610757385535407639384155534335961694921114300384509096165434268699423550569265702431919927657136287038485646260001503404835710035298582246096411416336157887085340099553848767494784996906661780160009057544928144262940008046219540058108799178267141325565328838322151827796187391129538739610016754003881823269501163986747081335412758102626388927608791888641635409871717454807233754076362319438331594577012379582689038804253056950800360651786873820632710874792122942607586920150581522851499598136294148189622188407006098534225708695374538842045705390668292628891246789842322988720115019602489515595982594258369964768024336494827314920918979623632200530285398942986954292782592126051841885206119007419614653958720120448572739238208511698951333849000764999837878192810596583714777175461677065028457853898537101372508740528433772246349070967906587833669268027545319796456046256299524661558019226576103804861518611285286357726796391869371979319227996663988145495738064113920484365950211667470804035976912245693800544644813955417520435772818397843791411645115626900507172020215444064370371301307521673466345806363828608969875704048295876805309411955798382760059348947675131179222089703051858333433852165527904898657228152454997516727128959872979578470908521296456559464379203589387227293390398170689689277536084980397546057410395871327634532359626366277487805780192986376759289974117332122667301742094178084327510479549455642379621888202637344158394689996325605811700498490679779436299823079895180447614502283971557142770693611901771910519987528504705296840300187932524453643948943848957316275480804125789384221789964136079773507217785176393354611764694520679315764118002600217658373393457648976961716045752757387797270385253698106074240218008051346064021659715007162209240931901962648933231074820565315119039765480762238469357123414204674097317016221416364866912405790048565716293897213709224326948124779411819548790903528876556485920558339591587348384962856976234885768882167843110036548128048923825611667810220972078331641096186161067698240962841067175160141537377410520251602228552074264884677399910418809236242816029953858592358949357413780079105896302290461437396631986288488019933247752913223213982822073996132971291220385609326906202877343421242672185927763552986060424751439447733169784532202418240885749219984259487955876386076307697068734293230741528823440960596139553507539894146233365116005130962455604961973606940585337475312503681688564552866791480218592310924681552178249949231665321140452031119183229106767348533805855543829269480345212273921354987227835905127120546577420528441522577845239132835358924191961320510175575350796603133451174650488715977832916655177163230657730602526894016893757035268758871263486110885251284249899613646709402304745780602373973331620837241714941705878284678939295166152427772972380012326010360115764513678753382405551966406219359432174004114031386334117359403906425405855890264551144329871369943589109886487833068181575019302414102871456552817783417658642042522023927709338790722662239047322739663003840939729905678434670041080367043283677005819037372949478335060878937824661799197172715049385187972364538328022123992764755343081677121967968941101634443213324155546844376717235924088551329784864139740418135642134805836466617108048133933653547543851850473400021786532966557137302329162916276680161963732228772635746247173146189302129353719485522733836802737249691046977455146034723028643847109213421199091184728541286537923978987227659694599931604521596659893321622153906629187019503097464351596807673820881686039840566526622694580588671446807025984537137636661210254069240614037072103962530243712319646664621248726547563809816550227806767986503449623650739113872401355848268506040116069839252873070048203330097025830282956717322336091700871252014471361845836752822415757508790409888374432135041447570720892395425005767191903142151451058512999586780280007642097591636302163815203994725132996619088809936074018432855958073960769411140913492704974342956252718470694517035375765190834012366563867172568309843562855421394475280706181569257352407839775357847655015698712825511180306358507232789307659743311487011523770248888936625441436049067309645988086082380045651119963141498617859884314711774264604580276745261701136871049924632871363030972859697177841000689777295363802269156348965100164825140113594863138405490365257919380833421150681756957220401362253684395477036287816770602848274151017998397266756774299393164463715189054115800201706354334788883194112548780309264265965213428557932642735718076962851173076653743103246961819354926124385638368548847822261898546948316289801014408999524060437199786155602993463960618216177371375679937769694724411011139858222919868985435919868154549888668027390222809831144442833204717909924366759104453619859307446238617766936104410140338704746668428216748640360863068736893284783260907214512642179279955313263586852002726294533791637596271643142199292801336820202662196387345965235187480963550399256599713326950383405976576738654531799567084752278342615385241991664538234202836836563501832769011315021542857497347839435400983314992388975479614182082756503303317500514557685679292037614985122155004071845195660837287905050282691140534372901927622474004261883969702744550104975374505395120964864975749679828552885123816624201455084737693929873905638421589282299343426855659653459339440988235123231076395300741393344021488127953638382622755171464543523726353248816477228170423322204127178008383180974466705295801138981726175326021303539110050719127604860334313048437225395295994145013400296579827166486095483092208927646575455801069563173383871357556967074654108616725272081573352345201414746476192024074634036356053594344746772711887059676608752971462101381351612209691968110717493712079999710315119376488067761590800308557096293740494483675760465256083646940050688388453863957369250084905359038900264917078109057369150629387740610142041496423626900286141813057503106228290201949899661601782734048473677136203926895110563377529051608197411559728727370345855469298893409914455330740557935995815992992905770004065991502809283542954613488315099745512229396542125389400162126930822201151297048333274568618513809435542536659760815131792927649754578711131384433858063311528768080102866096964185498726923532644686623359993956841581936649506005127835387212945649828747919480284312472523155289997844896158333713267117879770194282296201292503329998725197748815522972663142164332087959720928821952820636979494542600118866993131736592106097686258894334531103032110864742335320094762404688257375414152369409385336423332942087624308548274330622573240307549744270197424019164772681368355421642493726065536375757795196691379961046767958728030403169975615724581918750538309683289449433997643634556012227232732929023874778801494857214614940015532300046028685543447137540884267853942371769608069863874730562851064661734807899901429188970746072854007885987945521369761063556134571177417922322986807534873645861407402267319232235497707595305591423677575732040378485831154255009818304358083228377479546808050846708086323601997615938372686946695877965662108966777817914141671109162166873101610299011448962816102910180091774432055885174189814000460656551525753927189798530149556165591584964343303808606919568025968190663077289216601968434959953724510267667262523679675134955075301851001163476471900298699582227073332808861936855652365417835628197070005432438187186487670670875646372677096520075572371394849406516494528349220083562977195251753946291121196172591973888915773264266416554844510125658466943832969425093837768235602033733806947793064106377166395959720560550990298161649657276802675466651224883472979155565284745139196162629459212812873308715041069659877939384309968482433039042085430662719058311036562594965446710656931981637867653717240255923093564913217645362946706022963426497464557587729251191007279630741066451838183545354005138680940725520306231332262115843703723869221800645898233753563453219045261333297915844999715997450706230565755788586336414705275811044628495833824590568098775656935999646331693761565026632189204180486549576997327753588118189005248133561449707130643746161200139104866894961277832282952345617300337923400530938225818893502279603331015799612793845497703353361329864076289890585323930779521341076255104137160001514450703015493574774851840639829882868122822154189943354748183930359113290641012898310832647236239402987934847439906642561350848436899816240692375062329388412959276947085853425053128579081232396505201348231234408743209795380177465667610484752496099666554687595713658198595782096205770263514567863046977098227212660204487080787993247579160775239507497101812858645033511705502517155781848748706359145965894798673354286676548054575302817485225348748439258319637975644745567327078015261739611632497251659593557234887777140501580717502853357975068960718568385606148814774088829311381587779095324925861994790776688053356533550788295810680546531699053436167126534744132270124487338194900413682643368801577855718670189669982978197249568136167618060385199725325323350332394024983895199208652314966716648245530453283823910194040424285261680822630005840694149294426570197919637649349865956986883708745550133395924345228908873389884371587962377621822306926706741722987676449284016968536892588352920574687810630754167908047696528134501388265271804635937038381306783505755804437216733661872555154390557155068677823604856544718590999225319152786688391905454843265139172352484098736207306892371600766897931752630387438192998934846292280097584134962132653983977105998283095617299840758660627218635491292895363502394583081076883811660659381326001730265669943151161801616135908560215553586966499306761469150793123607670375002068424243601523116119952524852157552952459626085581626781443137910859360754756946571704961740262413273196814623134692315828339761921127693523156217167993438225567380062673420832498602296332956384951372829761936514342576566669903194952791916488418010664668501867738626247093829324654198946290515235427649996592662415519645354853111736065507779564427520052481685223372527076463220030833669155002092631935253662495582489179292007942982671763833534469056203580773544627701440613108482215341971170258330628616157164117350669913690188422633622276716794872906072667276573866502995092574000087635073478679359083095169088001893560544957800860704341661442461573122627379714964674878204800598441902023772052282206085109300083245675846677059631669272631351395914258910370778361413128871343723994240492416164057474239603371196278020835858960489888143327149832623305575787427664060001194268282487921476682689194237846965729189806849502459019419203799103683788170332821550006672746103232964522236812216206248120235730413274638421848654751782495258091244804502389458394923746996968060808290038233474293681434645987490070607095329764063031429008083330703158530715003823443758457647132464396175038006162934866632042058020255998787693080042808685311413265975531158743111080962462687752824431945561080565484833150533549331206878761353128529768419557937353119618791370966382468835692892758817402496833482659847302735936939127507218904327381015192571434158676035728323071013968703801425241371602730055361666778050772118600798033439063839363377553436563603200996603539301106555372288915290162747766095967006966196597405265028160358752371228686609895485829214241993330741365083459845390644085859136385531945055810739131728608279420203024451570941176514405894734269602996669965276772141300733820657134798320350499147857151440067739281632836781473281055520822070347440647261610075028053933068256101025414172630899081672332215214911706130175095181091904586558234238242034472988279956629824751210025120427647997299412864317882350664564228909062747934692834765156568189860875872946593499038299646289233577679154761587528915136526257746089557758341929266009136876701949952714351274377457642036231532231888556844142565495098325019230025997326440288296391280528952491801249527492314913800908630814544238100715149909268010450268754876531075699480615359792845443952746141560103685149708193123833876734475641783633476374646630343235373384219855914712565967535307304004331496595005952314304549300435845618211043815812166597099789490101135503674038344097327875746127795647701402885045287381719045228841900907179122475931974322064518028520145429072951541436434961788387629840228070243085408916339762828823628689016732652645713404178536129079698006993994934368468828843698346660217630683508458698820659092005488402462456463780889438902812951032390869775632762592655590082891705099402535591039583536965405292802737209954850920480261747913026371910608785695021171843953573120651691272803562070403667326596209892380216533401779964508260885190815081453146726321664764132263560021827899412808180857259807793360880392650504597171910518294423534699873422535904761788191047934209472186724124839847365506842138465986888475816766902617195718900484869313009435960428579103049116734833635067027630371379944948556462399439831203903843638443775828894896081755182245764338376988865256274660908778342611776820424404189173993948501389555876672458876329833323464039928827262401900670118671644764610789956173540411272200817705862433366762631582668346798184042884943169335746949491089722852137254920491235816713628589563606060959976178771505252798208606171975905359001255131162110554172251237113831681456277475341288353438694610927432019273463404397962430398941534041315198545911448131560929945600454065254073965903404502022052446697755622779137834135001563635636390746510259617797262762183759346253053825226949607636805747884902711196332352601340330771784761412809972051003877832237165222674678121841964127906523814300296707630239681575263736116385677791143239075289567492275764982826541015883609625383683074400256924821917347590545076259619290264236066989835504295547325962800213453372169428446548050217422379364918819128721097978992744928527493291950196348417133997246023561460937302379878871453986151293865298266457076018934637540844889695828365891426367168222336402972742760324807927153929218721298453078242547099448641485948849754392853727548070785367804547578973154568676614209448522471518232313614741779933514625037231027656455593755950036713475970859148378084003004127698569684621784094335984440072179136323046700153675724331278500216727491086118312233030404657781397018367759651509511685403205257865209470666210239613051643309477347419583918642154240112044399158405662831796381223066714313564356975862985528413999408760722190645819584486835056536830914919513688172828897735030116439418681495802563835117806838462176402562674366542095370073130413163854939620364326867767615373099140207538802044435904778411586818527526420987565021054967653965090001062356816737309008409362162222514633004903217760863378396899859912369942164302908944352358007255788584159765912931737623426722450078068886363986588428598596558048549150395698217471981598960464933640189713609397145736232284946600235099186662973850800062103931012769133301287648134805061005537858159690101625945667954448885505474730521793003542464170635374426877784244607460283583868080722352975998778597403414178788925750865734411918948902335306352841653470283051574991316047294248915712073891205601002217542112826876173836378431099150277464894389425172975341027637959390308999359664551665708939210954173045955489917731724475135300938374334009286976022241067446524829815557559161010258674821992929692024234222402741808633487937161381245397763326890673887329093514839372259353025064933201523289573112540389225917998222328605569878375608878814641778799511091396280086330016498568908518970490988224735861704672840094572516794084112986984846823986799800571496556742051090651829120252706727831657377851799246094360007921924269176555108763557913086482489564478666345789607075833247026428480724656321069691823825342130832406805875180147528917663428263766402828604573498065206903758324989480163281068007632659394644755388802444496945928047228624916990471594963666689419386410947878572130351306564014741329002311922640471368984726268702611346567015155030276865947913020813272511754220847800836853591967081178284889463781011319432452564530130975016364280292496748489046144647366811225218323955825568985587532186762692791656035721558676356458941130456980754164861775907384408970558401467350883974090005995695201313805066832585792843832424753145315343210806061315862810930612948011235923661762012786973563489043860211677111274205266852898847861116208348819267380833110423188946453068923431196760325455539933306910555481250993519447918993525172354073644956016239468458722986749089262389773863117688033957983678960271807333033668453810435231385924313212348368865306469402477538699010757808486673611236607886318322554293418299879522646742682187884249723727981453738030689256327542548549906500319078212512544493890045605597453370079211792330653195524527268938249547670229229272234127802645830969863347482649381404194364226629812807279928337914911551198452324134642953119096909851168643261390123475516813256472329267207152933203259122458500334091667278879812629728756850493629178375990193384133423430344668933033084618578245925999981622141183071487658618656726109008231206621670107324798597177137117145251491837694790197629726273588890679530725290927403336577095529823629249054798290329951771646010635664785676461313160858658624464945845037517347072056820051834650119990257038585610002721936650116105235143352738854446481999430936644334482876368756607114579876930661539522106609739908907627663862294812543625783193355811510967861706634195283578102648464831777841676077335291622203123823277741027607929567127612557497738362460178423629606900533881156738693004390466929108341652734904204394225743872111555064232937763627627872070237003168879986447422840173699903466891667065455213006826416509224372877322894510154312382020203428045302561389612437621341947536770243679125120705434420551531392082579076605970392189022798612116734506620307130108955206666098964343463312696384122814332071890323088215080431478299101836632684820254917865892484754059459800229470858850891431561717158283610871428083424200012484092396830503272741940417586343163256450837022633340110898731121481189046228986917285189850886936849403533023067286802238770524665838627031322077559215463006070154845790570652632373173363071245585597977084155781912980333290231607044190072164224620020913745926862384251511112030340485387711150051903255545543736881299111694233515372192583026796180330612469773438232132343080766631628860802128643847594747551131990250980089818837268365007926422600993254036435769236964288040717684727500344525854620039535004564114775332266352253189017862338901165927219125429790131496092133456135618169084136920505296215980037502577650342539988264754000218748014069435272139840458078279770501559991098928971500894876350934618918684417452094268118894490072770807038020135486679107652092967735240419483038853241355544466541944109425181299953127739293137130532942382398005142727735427053588796092247128711653047213598738631479170505803967560785201185125574256368129001181806827977475915175715596098511451874241889862437933717093197870766582466442094059235970842108656099749928155604621059759870684833707439158099361670035860410111860247187564390596427144209813042101824873897894060232742329260149146849128354169853793363385722079984752674200114782258024456020014935382210253024684628356827868317637804100532336103911041254537505445296005817928919781280441394411006373822767405366195055925507653694475519215898069953643114892067916453247642840987121122681175738940946989186467622412816620630054490094799027578024057334355446605321353541170865661877992671726519998305647978582951963286249786866169027744117238460519916289811167284083072516564194401499842033552545581508938169015489264147682916734524490110471771723506218852406410546810500473335834625659412477108445984100099787349060168760084032571928651923229152257352834821822337780640877347079274317114284944044450034827274279536273320389903343776506658268054100835649277628936289868232661854865293427829032714704786442361134747066539387777013473940851160269429457951730814860583453408453416927728261690681242189608583883006375318484884893661661448155125862972654322597690023887801864146818199998539157394017337175400370700640877781786731370566802606769316238546316722208978694989012943901227728575142160595637062617833356125168387517491098083887053369696850850089376565562048869205648853981158316124298576799527062924433402810275414136867728242025301918121780020352033299606095925305268695087123923382516328888845252829068002769949518928100336198083554692862433141680846851801665295718962998257689800382035579158390230842806559189946131669221795997279008097758803097994686738877650701543573567642203354049431729456545393170521331105725705345711521615637584432903081377216886104697687938452533494041924645548987093181399162442597818193929169327884318507478058180791896388696247701123173917615247773092876000599725198805912535491731065211692295230764360099204894709810901816892252278359760591997598463904668312470063786215333819415901429816993243067660759068024575185167704940401896726526451852841614386568256675478198234542328254703788616110608535764782025588017504598471548181487443570499782679798748033890586761274243081404380490287989535521014460288645876143026450587839135030165065685707940867745994317809737946888495340438213404311942418286823685910065103395662096261226823754032719795110011396790646614257148899453278742089416598624387843408283877067065800547676583722649463601956211354158359675371498467918700421060142726788730783072371726878139202596096605358130022389246381278127209219270416004724556511593894645789730236276293866571527157551793132557982974443836953900110878452908826643971657581053637116676634993135632025095670458071375835628308628861958262843343019952369625608461508873094016760465850443582041906862862740807610658437432643097639954326154069785029447755834345937504778520265644590519492387069004448065960023987787486244545812761070262426640883492383853795749452901483332857247588388944535718202564063112440000981087258860839787294073379783387814098324840524887035496732315564025849216368786443872669979106027037186525875733970518725444998729550156990761112069378366616638988606204807781915199210408900334364570111342609076707071372526102112205967148158674889178183373069444861559469751760401526595357826414562065990791682918672784195188449323437960946755137675918886933716851342167993197614017842439763036176141588447209770427219179208028732760593501486376382848737125722261848953296137181807198624693168671058467407056174869089012941496603792962710848949528693396847093153817943428057404332454474590495308380004795915746556380307337609573276220622886208832223243790239238114326215712881097835661309052789447664867036603498767336606096434520439957708802327572910204439365290208107763046136027679832398423577842514247851228561750129206038372234743225214165753146066954419909851930209271681688169870891608773068669334115431856344159316488557449676128112433355165934799756662189040296620288594541979402549812255253202086246718684871965240659210148494660673658034938204386725564525163119892779083737307249944081996641607369382058936314541758024164976399825652366946840405734964319474218768511482395509949151825121977717423183090640176785878813502190458156135149652813569417047995156604063551246071098599668774605714222544752909715986897857095052231154360645364192041371668950597625777733341229163950435795383050962926620213351401501599998769661931698879323295373036080936466520574370299823506008072728496853080744023846386826186228389921369656533239464308459525009112893118428133986656321272436805778042647424318372236784886418101820409310501331729155939651909270254823062363914074814801576109577933438008833370346753297793007874437835038901992995792240167051860646261693319480193565126824253148830414989917373765751161044325565483684003627667638302848398991225200963379902770554939037002551131553209269737454080011568936006359521714092427029232704022207683950090916313102172141827547572940969573757281428188258934468696244656691828939237693322584091655470618052860035199011257575638203184857320756858018636427584697453939936524352500506916914732479889785467427896331961636957083478449140361296650847613905197027454350912959376608207069249698504674768990531796148106539990525683022267396287474802062329648945835502518842085661645095703204863609939558344688821753394639002907973175876167000403277120288614389827938110630666389802463285359373548489844660946753907718999934775266228252898774276275524485623386955740181448653181454094893859204858544249784696452866683646264017694480266657719232178390366168777694225764015993945990658079162623055499864876245496263185010945558108087808041603518313503336438228676916363879631791153312502235983953606195700624409256886359579580507146323261664563780329667591705265819175577778438030786307847622424330774751304831085595963090681240448920734552236312075507855768442336914906000083098485418236898122797932688724565348012441637148535935642511291304247472324994682970960306577156816770319063797514047620442823432866406858434695672963322154665816474664037114889301976568543394065808265973838873613803666620053513227565204968544222642877413830236351571619550472994725069328612637536395961933783900386880279034299558604538139460223394230871354498289331085823219215226297300363030213064944873432669083052132878687569632002022265716104534512369997785228203699448899607424037093816318067718122574578537233598466243871291332937113168055394144666241596397963344067072173669375853676403592899928516348587307350849816251389427767331364432732972232266895911294076942764304459363215568122773440487659113817507151687552589462272731658615321078224914367642516448437529152984124168536039654334059546593233086019086800658925434911158707058198868807972156407643007665555292967092144049207931054246738069793325637333929184173036707832589895318543547314988053769205540067505662893995611366651036306129599861059853591605250989575978239386689983348093554456679563955212513287000871113614950725793681955189886645664128232257058453614956946488392246045054658378220956788128654567132131607892082879982061944029203153084994033232171585283268851562796010744585443398664097056805462383561655744019598548677983162092201592696239698763614869089730837590537963981266644975259558282971141318591369565204224571498803847011883464424237625523999802519807765568712624715405223148757938754598234455779466183301953048511655028627910840709240420188744657961367693362311879515040168736971340352771900621786099562664634334727376729071291433139811946004836511723037232354354023252468215685062781954565089764570524862412171967762721381824360905905707430958589977643521065093571501939894872808434204275416816601927599994104457808362785261060727428731131844627622975649655367661394750660719430176658658315421275901240622188334376198376089044742842320583656745007198483642900546224197570407880229372304051386946635021618755884688353444191072669912104390434695024401707667357438046290980174770891906245868105039945670194464312001253973291472758615863534590283803684134257734236313276619341922560741965557551095464436029057574862454754692287369714832368302796171908211932867289215201272775243652311439077009183705914060257170448181047353817084142708540637500215364417286103380881280125288268846876576354104513612871845336619776242560400104049124917684680066187391139037377251540450116132331467857448497405326705305389490424676620570030197248505682691668827350798806255332813273601858126951270059510023595566989059176053840463550030997892122696959408922237121608277955884707604519154731629198446022163917489316603787919447570780141341776232198989765305204867189020186522278242897221378320909534152586256015140628890911746219324606129334868775590364239149406963639235136026068400251534018390128317075464908500099746904680228424431557332589406610779957548467342749627530641025757489418709356822074393882504144535491842115051832424177393078648639716562586273207621633668435693116310496853925572847482053135537787049754019404698775206560854745270919392196652866008078653909223538124774594252991046961663031048369291576679352224617436927330325545079494433979264340119293106037131129788437229786240463467717808056087848820633355518556322768140691515613628977922733396949183899528993478975018872439209164989713788056438910756017968510786326708391581103934166372179439403747376932526140965985706724418155685526028224984975074946758275741333648936044502196881797318485687468057164340314018967092794391172186349607724403132433487798191269507181256302102200755834771156074925979102413629522652973573856052488232189240885361880075516375620021372074636801017730352924505667291792079168833380794733182363592734203282830322169691685795639482157548648437676354717823298501941308421662996924370478546659830021032477189814572644466303944568022458819899216369790675095371848471276903574737894215618560777698989766846064490011843489858227335538831474287447399220556925666247017421755894574801983241992766717422338803930554281119586253910222461978746323775643667684360308813059185801905120400019880155249536773065512262649189034636022058626576152279349745966713390978706742281003713623558612558294205179505178852487279874014260148525726717347613289789760901223356809804478171311502495680465608557048642476921463881366606950788562646494660472160732124121191011978750076198276840779157955783935914564592909926848719334886948538474346768999174733418613729188636413112884586904118585304569619885182501390394796801775808019000751745006319057501386842725942040172839409773609770114255869575355780500302745046125944064846978864391663264860478316137220772218887337979414590072196876415857584833025883652213581771393365518989515833962744249668483053713486820034358246984095990376116464708075909997258160655827952936111176084197473005188777332652221116052323488117449334499810902511513120549972241058755406438542655393835051135460197857820150809894314003338008242452135927580144939236099114161253891098912127109759086667432219537792485338289343267995987486443416287335276087689480771623370450818510096702219926500769341748165049282125344575815827525666490806174291877945911336549783883050586668589956283002566042866917562274354461827002000893652241676825095961902929426804552130517790845306477648716141202898980557971490684697215157203277335238906338277262472157690519297455381498996257861144037694678436423111473102078988908961661540346580816217393778289748046300707021405597493580611474066498040084276909508112342956496471017850403150959738060619830521197328482999841576777852587953232201392915444873255659062952169254944151610098825816050678382972037959959474494110488135914893559348673511960776084628913917577220068754951212862055540691884051633105226970356656162220632958530135022631567331773545909832516837723562732146128234447282926878557325889095049656202064943256619793934702380260127616172543091884960817781394938905739189615701652551081284391438949462297219872440499226025858271767189666612191928751211173840084920440821733432056043433730367946021858999304775357743172339796405892138149873374420096355285004572128868947494302100072588587714700242631372695783739264548650371701207589797232846875830467559624685560959095149467085786824673546927664187182633592139552486859855183350926620565767438876288415245759084603767785218531109154649951948616440434903785128373220274700488141772960679072627556299184528042941906926045015031996088167240253961568431428399834034525176813414254734651411341517503609523230312534065874498864720812617956127722160324732279866746662971353396239010329706686897847788301281029101805524761505315798829547421018168589082642410967425794191449834180430436015304950124007664447990697407007678462044688407202466991583021126812885894360390981586205820053902426278840929800080392647835374170784823408200899319201795604870141274391537948613726028377906243193721069820358511131565986684482143516670865085118340505619465233401206792293108415727841146256370861773579072109568020878487351476453940323753057438434864607781673943728611552642333894127081277912457143940477234792952760305563558535149836621057159037414975614207332484768563307033121672618271276900979708412237515232737112091573855913818326571548171612377541596631305330509436362481742601754964658997040782353955218932358653824455919671174114842364326400311726542574114407296094609995686806430018104720736781216264284614104638374887951352187917776822248214316341801897988183494682412129048264709870375495935246567605403377203173956738774119252613608118776856058036027388586334928741311768384565379377442931748400066016942287869390455978336462628365011058116688638955340943253492426892882463007573658777781240612189733627322377242278407920700540619609089833631467174977701305070532399240745946846877489998684468436908459283018579225405012412731501181880753651928040500342405619680005013544881176915408843117952621997409431382830415508753889644372858512936523639568986881932350765717032564708929036963257623943443849331478848707857687335688903895836341120332538061197013117605073673612602429311502429356141397543003482380756570322317476752437696651686312843042736485514210604169332254788321856385180090466982026734788020102756947989768785771485551132712123004703735745115352586667668918053949400088968791379088535627300370008537139088811419267344824228035534400926158146547615843439337651017804635362541689609433161801277330751425909610266937600265056430505191596730927625856781467240030703878355156269156304910231384791862169740323722540630765562174049510415709172337189032480375173703142507842823947991652952438056699728586645499482514617099087554543211865105876298507966476033316654353994520955047518791511578874249806518857330954765719450168268597006559745103220828318297597913241158201626041903344298982906029719614666541654578966390770078715237211530811248414855772520513864854929837220966413719725227782203839388037437569056920283148734537544005344575487990345509643033008402431591770160193469083293721916671788378707324732881213316934199971483667165111744642130001363488997405203521330630859254934706379136706688847063748365934155652113056833355955289685762350123679947503377354893007710196773980643473540636667929668360505479266967576157483448356354224051155993860198704042423983458608461620427547876989551664166538124300290904152062846917761533043600873970634508489343589897844096177891331992180784141642255968424860499692254946144309491132124867792314888754616397462266350125415806427846346527346804048638911719078016821220047975701705905258258874751798713350792289738455888720650442552653412792988250219454978399025864310279657261087668979703618069209231629781940006243470324959967127029432214208226294258758273567348596419203999110660396365582471235167082762152823819805912673055463116190492995687810685552473245064464510375439978432521765552839612760653732755794284301700975470482251389573941034372482019064312477127389237644165323980229006140340942686216828772964497728614925932245615992594097534978118438397171588069334459076441757230207642798229043086097507562706140610257285660870445478795903941240932415102554447989248165296684527401822673905655928728436072821267247677006167983658181329101500226125632057925076881867389506532632541842757064137661410052222578863660121796594012505550128484124402066934612941522750635799983017918280179484497095313202454321997158826262235784752072406980931191228884885782139778469199148602473882770204753349281911559161376099710608059430461668374780323149702331045822883285038323889206794523384980209588774330122118340163796479606905655520019540031872588395800252817017443700687923963472198849514877899151601777125307191955810557325764912771693137152131818505606325235967212681685827954027004031982068988722351271009432003727705531024865405702299694798422917040448439101889717380162261832882625751035606765561476064097993730632903272675599884382378559963006039528470395298697351031242596730204049721273274043176534551842867597112264443472590839660840051165242346099467196782056634004039710624768201469906471034498641270487896388359571415927998827457875301767257768583999340852796503267393117231662342102683582144161708298075893152950459281290350882412029887129817484229122316581258230330845919394558189425146351890996682701625742595687109515340984934358489292053356865035873010782512379074163355180024313681937465913946225541099859977478315237400527255903486457567664734167637483714919681307824293443167792798331369364768856524971320081865815985752547303907340689858595038824808332451584260016854272712399365169820797768520575381142081980057889011601743508588372565933533656350269289927630038651556379417186289614630183621334033833119675468840906174909172472878615246130996749291731441728840594366263472252999210791971459441092084619787302156890422333407307595196321706732244582759777991990040502990858453066259123354656393714707318887429986261674404454806745098186268785016966431731723630824550001188212772195100006322196750577226923984657052037235233494813384535032115427041722729993115324175788731815344693460548248832660420055164458469530764312490673012156667499119861978886446469647999555570125504066277715865637032680472883970347011701503778263700905115733205825677896837256467530945756556962942287119942264362587921558780654765923472944189390925498868903283469420585590792329235349570221022220614257823097877089542889441093329113470634450825985439242184678518634914646730221751593323792479769327375846273413077121200110910933174643958819793535520832783469047952321057587125125387725157187221099470164290903539462198259013421632983058830320858795536964102771141233091279513583327798959328926199857198110345810531231568757945839831062149501088336491171336619481274114256246992672092408689645313835303425512748029042438633201635010112379897976974618562511488231844029762602313337727061146364293871320844553535997240896132736008176360699448214401600125813578248740001022419485140839370239302133239075087695530429108405210294707686612655353660490620671675932432069362561710505261372375089282885328645292939999943156773857237960496142560139734544415152975702801151814643409660005232668172276151802177392612445248016135227967945575548881424371412522887386782566262836487035602650433189531566082151784555905127846294501255040163007626411956498133884156409853077546720210341168492135620620698239231372065843416754379147101486681342098647234002508529443916329338568102845057408711948571540578553583011424533751578571071470455223663024362796224757342798527689901027258027616982728985802122339812163151808778803603265527141469541458716419971097263463677592439528069651433102824097671080009060043159837522466390407031140029766430343701569726958150443341335970899614386831440339885776416805481159964739951313511538318581730708972253448946880996968211250182206266076121772078766821369547848566618430842503472685179795403265378109854474763683688661791924602081624828505052923056084660112259903792047016028685834229503859927463216526082317364282999341515063082690433967833127377644649556611739112297909076747803433798914868198330953851510248433227665905719541717623700393032253615238446602247531068338572766665686633850412995881144427482089641601260345516046273828280567387544124358707958216827809486410578670660707211006051826485234997400298093716568509339419632156482307145675430460885200738594486750528424117709588822479491949834908199282943773046264995347166393510620500204212517123684891454987070987100674480830363538314848402573397276409804467802606598204004376425760959076591493112642625815243389608016349784906891018540917630511562458637723815798367848615977875783766192475417284694257352288438269277942902762779666642047876242814255839638160555969431474670013515868776390404066792293874827771221424192925642344907261540446420941453682620278085981240800530477977842088727216656961633406466826496473865586701698554432343138451975535447257617440428386404051918004347900666855567873829735592854742240062158601442440192222601379926076444762635447152278008591975633146150887936351280180718810820635858366323219985564682951723769333153705973499209365338218214195119379913223946128491045006829514585765843490338569097002464160190848023294810491286341775617872365921555887837441789186900095030975846284052558281142752576158645813758325478153402658180814048997798188539699316456420357173959998081175828543239586484515637193047604577843336274525441574752968343733184100368513692150389826120908570165893408053924051416583467840953160963873874328343807842535557829661730914877568037541086846303788477321448121136167970642825979054432828331078637146696007256183483389749446314841044477760678563065099345294159990750904544549076947981611196688796292115774728848521265391180381035092929625466217080077495672004559946843655575118040639460899959312985939685314914070769675706224670907081081523162399740107703946307894055391134168447364127159800378398998991313583820060243380683146470870798195361200817092344362546325761128578018318472391053909470792664928039138424955491416913424294672556963050458799728697709599261634133954475694579447759326057843201490882304208373536694155139622737340589412564703637363792946851229684039277723292608614527710734834256924744023919485499475243995555372030342669611993985427240263356211817092268476535232650679139058895070009977145728580617929254402165994984644858269614496564429824407841412055016015612416027395993288698691550243639576439722480042473576009585226423605400397689063219947564036045399052068598528367075252852671502391197159319994219535176647252727491029119319286673950900255040668117894224085112041349056928371133766940926604208069933506905995364262956367854740927473326948309557992672551120586371630349456903114473945255500253003977215248906720848710117886875668275965148550801364470996644398712889845769878772534618418345520165830657053280919094734847847470240155860516945211843117448817538048746868210084130637006854923744669114263872445186551646483741372218001959813447734994561023244880943777050252127566552002529351641778728684074043697906824535788837122126717391439120994000382552653860119531564400192567991662951882132380003669225345392887255516370773699557722914602404320061553990603959698620642802723580659975577838281069007593733930628972512811624912712966990356144126938681989098009778793800307338669733095553289057788819368823588802668608752203609290852529407526604283054362745092692202208563168912051428712697703280765521038913621470967691188733231242351760716338875108867517423813410299229191498080716143376365723965612870348034539593196004995543176998767907950658048724297640624506265364060445214203241122055514356559267231637255745363552204889925536894249857396450787868356457558040398022424917421755629568347864601022874190267692349346438103269909468972994910932517117061315550508955730510712647151090646743576542464109721366696899770319126680224434578877396519263986742418396954916728913651136266154669269822184155453765661442651853144024721449970641968585367744081967294585474357089811057187107471292049405708879694616326382821829307103626779073272459310960257568592006129392939423414002901935942297421946315759197774015953454670206315481583204478476373286456979540462910617454173183277341902622031814741351200838887234306336984637062759671438095908718208896173111852667486781192152310128828589682492014481455813956613363581409745488179294873488136435423471950496500078455925267906102907127008665815247356204647586122727593032336904293049218598729436968547361874093807666691819751266628320742245000894281782299242745274467048375267275739178650336758301296388891268786493335722549216729828973649161995389442089773826378078167276659175933726282709038647318034443767181448717457015878621137745487346416283612612199881623927286679864270249986417750991220946377515990870608431132840686853615011040987231253056848141588456076857286381447057915923374132530763456842001172684954713085449696306967754381160718662753934835130129614942454983192161195144898908574896599954022882338569030758991731545636151892846520750543818544687038402629056388307493255366810492576425816269231293990431135450189102124182861922362362979448925881086931674945086766796748282312305211245902462084386254022825826869175495844156276706459531029651679128145590651478679278815845552624054575388777279827544093852564868816602503649628279040096761161128327637296096001701489438148188420412589952758228673169087913456360011780347761158758926604622032790735922997357317764906417657569492914032355257322227191046566314943785942014397766593900582183259338486623283305609594279026008091503236542181306734307242865016449945991008905134660728045122460737718474654899734597286387995893394248773574846916943840167630395880149141995614684436687168348791687857220781386395878388259919094210936055963833015233608419128336371512138223955902080309234088790441510629511702865662377490110624161767624753937225837656661478599961488858841298268282522322481672421104646516002638040153176556401476568049728343067110309870551000307094693944609709795709038400553613812834107625475468323912994983650479434394680275226860599165721795780471216316625137865615916721942782309534925723117724197774834966590606192175309739458201387164031173245820787824426949637552479708877738477093499934577296751836252971012398351321981448646974405152812868005120430026703685555835800315884817362237378054417893691529665496083790901636564100019445346682800437270341790480432608708377724370270822809705740807347666339625379871349290135803686865506551716806959281125850010705849250793579257806739150298531795300515955231807031710060602946587814855997249626843941108639732758894967613352128144288826882084983207412347149018007677750354525992023495990826766519385329593672096961622692454690758660481052083825440458463534224916668112029854460184449057635751183860796120840195549991201808247497576007097036889510064748151657490884108946116877669983634034342576592007891534173035652835067631880475301946783279513188886657319314798290188958534890777708209420880075601399535369616038987221389715817797721601789467697291997755386409136522083671306888720723660075383434654075311876863442661295475860477658778380634772031371234022477905037004585720050443757444259176504131484160273031266569366405269892943472439486423449460666127310365745586106472492463608063086208927913264664657966909067919845877695323065974071643700945835466939662798391387611190063564822802865187533377654998906866265604654772003821307091170012795376037710491035446320635209314756187921241212867503411122259514026994262540125853358594852266220890568933963151317405307346608147482295676817634567317338458647341928815502817146936220513960279133542577271107905344039038328844815311296275824315912150968721293127224114992172625820799593958919839003447836480815500869290647386801472079126445897677510533825153836148916069067540848344467573676546471530283538872132023859609578402776035179034102432146537425048604156819999634342730270628876752042220231323363899150725821786072461239776295921966269004862896015553516019603667768063250168671078539001229649604659298230533239795305191753710505716536492222621484796489478286388458804275173548025228902607537428728630780230515815534516623932600261535261389536554370988104628277739629816080870308105181216911041324606840837899246609164034808949671183870280350173427164065804803928843712598045740720421068386178144118382347504337027483864186694026314773569814679529260458041338210163626870831557348205348844515350221957090358696237981142105205245997992822105020897248271904276412786792290600529081258728242787757095701671537471810506048524031687299150613438278742677926737912243734881563424642008992407452855131552034054075718936670353774298752213122682676992982235505870009672361719874884117783961966578019082772795430076396881157011200822776632892718830844748884237858173206891744468880440294652907577365027070067064052821217784230817692485993455039062769563030004420724950934783272372951648340544455166363026608379147581399317211435475105159742932411160266648061258713098225401497152808537820927878175923263722358051257869131051161921791746771302969845201002670345550443928274800644482836570611133912148895028172484912080027450463547142538656750413505644626080120328595660269597432525452157896657895704957896458981260546441128096748308759249853822659170883482099522264595084618872473528379700649956778134365210708700636895456082137338377489934759609162801189967969694862641163711379801117849005838063164516831610174475497866862419359959623918453601987399519105709542813179588435270909197623622947651335418675429497367854552202927703142384816855106846122659098356081882352972836960890819092550058332590119025526956879440788115802672127801962558528092544008949247474704835094569295746617996816651691907850886393285548292208172245053890425664096254031276911905422639846519266911553417495929161417585414497903910163546552473328567626420899488454260306282280835162306268289753682533227225041702211870659151845613062386800544241433404040083776134080326510934908573951757191881539743066636754909838288712211857427777219606071266679239795782352782812025808600598763894818360972407863855166304025050278976968633614802409549218584114986404695268558627278326540476313481998549516316030539102963987079925188936391909784980089025586838920163115865714072801518563199481325087477407120970900745455306059281905204085785636396672278742015155085486697244886960345259091889456814845442890665018127777729122095376143356987366688979512324432892339803137951379827242504086075261519224884421460543635564401869108924052902010603522814949177156391742466296877419135947473578770097623641011617492911708808572183216864434791325169582498681160225011813135113481151310451072739606432312311776018340135179751883823531595300589117418729212129161970616546906910104379841255018073307995718556829931563746892718557616464924432456163464258485390751720871203415498027964808999863703016626148658759252484388327332525723392325848579554239789271190308851758774038807749088505397174923472785825338588369780472678921244284255835516945270344468615168652168761506405280382972335168040230563496701941851970574654693820183278760276894539862647323479453597391893800738833439249322358896618129906403285873414054979375714872429157147311871404001476777479258013616919437892376413693187432581098294049551321726872447942955844351381709047442737166212696827436059337774508054306168381321799474031858198011492484319741633793613092547325028579241299026814063547564127657685998200012717658989809028804490587362965263678600094864730227697780978818201085124468477881446331477552262744302045631687056467120750179926102715220229418978607475649160329964185617918176464429096000009960059331882285807137959590179642258842889326706566549074395278728269479034725503641745721951645624286349276872027989380357221756688590008072908648047217378202625247698024849558668974323432342227990692050143910350666696000990783288791650685816862643824934016119552712355636714279252254649914073997185567515404267536969044670865163108985599964980696184224470497257301167111182870838509632252241582936347100885869199365754496082416099983868518509148250638980240351400123570905556218083478085304360448374275592956654785939891772243560906248373332384091604396804279849485089832593046647417516716660386174093218658173094798293375758482008783950313045262628400731786378021052201636554208794746467999422245116950770586059315452015933323451802135244622856576372319756461189712480594597083686049263168530517493853037598788877574197090855450130173557454035087617205754016253035709046415437368766945290161703170065888445601791099554013880702153919263110823106857853587440314775126015169129719753131154262093896988003818730976362295364487119631543862916569382422769380329364072952171532492525162350075834117426930524023865255267115024124962262942513194465422221780478018482437535824145700964870795608787569120902786074902479116581733022210231927407034223247074994165157224924043262975897160873373738283133043354357631853256259726192642436551778255724994243469591223795080754501994170979033233309601718347382505104102623134918688359685713765104491753158853351920885064296516993893081945786140486107915233018090008721794880399648456544863687921264665303309124773841481278473804806916155114946541517260149761877106114438745104960543598812592248452693307413181730245718151050162238737775526542394165933288241965617131102812909099687527183349429215808366036884438996776148335131119865376801724404885876845050442671879640826364111011865256757618708845519976300344770309710254685547998235753199418173292338914536114655385537182975860337108926793663065954214599368582840783783331795184184141361961291802099790130067924057480985822731742354384730313892864723118416286920581324819289532313158136042767168127602286988178396179523745881480359748049335885671684931585574796490985190344266319085781016209619950613085753913773665719282242557054532751861479931641881304771158907136190773016754887612253080553642825386582443830591042529595574819408899403908162403998049343172742314687617540926782945416513024192190074085335781335334834549928194964438643190373948300290920913929906436315244337299664118560703750847886566013382012994140662778396019648917473287149740582640114700569464044072287819804730466388390110050175758971459176087596375720180099282367584393140701239945986210060084143555070662306236312810879117035442006131334025453367356125725623903721817008752438965377348492826133679018583478315847266460228307382465754133782898414581040139896099329986420889730272995495806595400423816788981175208379921416120991045947900573687145492120477752236284030350265693892445550276133603304240964712081776757898603516433256923083186103777704468193834539358510472506642595671352121218753849536902979895766281893965823930699508375356661740127341846310553069458621334242002602150831938993399726507395487191079974569713502528983672260310711881850639355046022092925842463258163661560407293104782113981699585504139831289496523484300217997464539063027383757885262190842485415049515378355213955994653640471289625947759547645581822370089639638115964870080102969322007964742085249359281568652201833698099048931992027020696109753976572091261670262498383034351404129493570390616925785527950007496112056464792481941961736868886962711249851874035108148212927375873232552964458241307355905600245732065360953794542108711771776662609369698703202834157556146356731306247372736311480548432906193943776047672022152193298591826439653944887298821112793060940012541555768443821729744669564176959718819719295300122594399539646972994392562317082773039216611879185966100185631739517389063976550069734052377444932860288562668151413691221153017057509923490979039470636885636356776845650742067736844999631353176426736133594147891713864497233165198267836722812994436347433041899621356884337188358891912442582675422463137305248127482657541033529171628205373697321728268889172067023448905095741027666002924397682115951485905188436245684435196406797253683991176254256230355871077450483463836141231064029977226129617306264240468422887911540032940622471814257945604722087134726572850945512877846603738886967251995449636723727934209641968614863896892206304599046599806161914327674407373918074745236205389815514626621693138574163284998344952247025441855786336967995760761361832982568441292109755569928195666877731381543427561210520656215538490114397215093907608721872507027378208163832217371664023801095618957128469421562655949540183653471954393933034784418470225239925842677595275554935417528327146321007088794151735671936260750552699270382530807397878012387833199543114370085014592101730868470562286775804887845031575510698486192074599788768505214143782825764359257485006430258273449942675323315314118350490103868035436081512363701533677604904395263520723331774985647832472129350562655888494923930373814470947605018349419563496414228705687225249678688333593037073867557686573977791763298202804482550421891696430140683483284704835257410546910193161802490673443422201063954127004617339253303922054495711788117473730686592382291872701811057280400222072850476434828448522695975225723967643164250101488847984427534625854642715412073623005283829604426025649570657740590642343887147712784385889328231738331485271123611183723392333106137923296226464053377617181536310821595886747474078908330585172869073686027299464278997848627860614495552948500772323821622493066050726767882176114588648280094685485148341367730532915214884522768880892376207992386866040210289806051033343388445164153968071887847021747349554415440961138405839893850472954211592405359591239745999687476840212016951328598052969764401821893939599492755329306758508368921454844930024289853665378237911175830353098191395932285665801879004721600558788062498586851423852993937984112921285190920712685848416332106622264418778427980051755792614385209936839485522717652893870562463005539833109000135606798036631393506374829755636393785540532531520149281453099693671598397452151835602293768008837753622416736910536202895930175251074090712816486313692833500119835404927929939352295650536807959200810890645056300589035003520314376953747579513817408908401887447793575303981293859331017219972773579066177752327554959458504194604084241144340386567917382534782519346815893912358913133914347960468089721443636012002579740053566487557170176983472293372616205676118703950676895528450359260470858829741150442393905776307159762378871210043514713789098087134811747263337311390533079336275229835930831405619767160663347911370329389473215257345352689494089914234376049636714372869821767472325917742247270611723685744500223612081635764491881397734826578464581449762090403835543998490038346060527765409999739654251333999611794712166014441415823167719260542072306056935185184831050288832271145932777899164563911054795404480085164406912636572593223565276604202719937773274652201367483628858832630687004595381623679393321718155314057337177938190109512614377918649115666066672068244189473502328997415992619490204088538001878567623298723126850437674300318440686179427335297220877368340636566944913605676351771924035900511243622888294898706340533881380539549791053407450894324061937203033541039366837800647289567108742205047516433868348080695100029239021944294458364378367603846591479918252201403268177877575493525207157149229879178864210201343122238152762738244966635833248596617461944324012822382078112594263036888680797952829109397939303688328831031093152808261224394211094076685516470724919744695433421978821808187489414629879657744746373237400823977487173293992657513779742537236371295445453728018695823766842941524374759531921179468619906411066351990179516067804457494384466693476313403123561169808756999685554286121223039038855029123720690680052078120128674886805253550247312307129622611320335759586332216687931944973291665074969378941563618385684595069520644558060103828878205464443784884192915313875054553348936895278892896428182039045225595156651143190782784036386077422400585472993073646135266899498148711449748450980135037151824797811082319851965483832322100080930980703844957675284681136048788380206996633466263448223477655871352130227887501586006747827195801061964954389541232425656789366227592002440262138420859240034709443083184554437079162786263154641334081162548553856137013029291867739032551137180452259662579009251309797586082022551284466284766540086368420644490836244069805750653971869422447830893208322874186436298358384863475147423872404801942448449832979102192610926497816498953673448788589982468542875911467638058566484297384008979387869788687351192350092535646260700833828398326804910842293453602380930569844884855415733440458324762057387865595140442821221911943330759833151507721927119178687632563163471554981284070431532376250807630698399075417122842966225995701860864643556198941867918178508822370808223630325344562241139740236800557024251712226497179103786506540050633904107270329313683664480710039554630822719479279745945942347568163993041596270024716365214283446232613968204900675902729596517759150209246865891992993589130631028279442931418038148462590263498228831382569234806708063564488910946459352269252885191326165386990747770711647700400205607061773696988808872595986693193656311039972478207656755808661814621695441602400655988928395817831360405987915812112434574899263424822352944015174515636387231272122655483067767841487144538705750381793902261453444128095839616231571427245096881097278537050538924861802312321693769498731645889559670334255037902325078578731123146886227632976821628803930977267077811410081977150494333874022390835882491559290114444247229449553670587274324274248330402370139151568744841044599614680494763673760865077590168647240142970538852898061388138856550543561185015487822181344746308741660345855879945881131654316476363278551452486579378451741067607324885466124484537720452515008083790589486326691099182005249174153687465013020794759078682928094638929449701138921623065505272185623182522493719181955467126451558214974800664335154979631256887674040876823529704467535290461327118949460367268644888749081897920216041756198590626516020002393678186587609157975000195792044655900769262030940667257000151798355825128598151504117899531581085977109566238257511491963879709061266620479089287811667829309493500777634765259510653525606325549097406391762002193791938615153543172222423619079935166335583950634931955347758051588116776673948522717189159918217094199428756885004994931712212171393537286791840832428370597773152236976922765273316494673652055754073575546221756133395882954650158247265788444144329445520295778685389761456191945087804491321310933308421569540366762674330949649437508019661090210480130291768919183262710783582311686918367819390421372471149619320344079694023713139389564636001122604898921293688465222020084811321670419986290462949410545983595145850320765955985795640601946743052910363599098908641379900621036108751056462483161733622826412793279527136332570093885821244968603654537041071920261597661704189774804178331426693513386608218765764264643920441466653680751721552251469665840079761449382107589100063322058520447366179277153704207947245200715925308492100706523459134716549932809549758886842670755283377748848342860087592135147225965129906293128501366775357463247503972689440501475222257059492989246265306587690433931224468649125429937820815221802385132265394752377466718195398541379880266053393748788171167412612247804462977746948807218799369824126893549896057166828883148470742556635215261268143978713445792482411166210269832435764735986686016317653963294890266038650402640390246835746219013034230576466169079595833511715751881101660780912218857747200924840363249071541742599527691709325853644433921346557611755382540989756371888493375155567613840883762596936576588383385860064115793514874196248423235993890311965986185642164919163909205300651575079788229175989702425306908459453373399099644861822930214458696392659389854046551395795248706265603077276814398024837771614077083561724473404792314386515763880173400504662120674814892274733726072973934179904013917467417355214263122954617012414884401138583519094004457735070091796635394614625013186305171581853030619014769089725886374818817322842848914278986169403823070320690363940835803958035179220730567741993609162260852994909823362131423420227526563655677917867778702627144962786464328860003100583739191113153938991764696111309038967441081467075696296869000694029021632917900290487927860387316941223412219908716831793162712540819458972036796620733277142857893792380172162548973938202602209388043684485374020391987856160491092093661011935863820297414449106731431532203193725288092061145373062271242867340569157464868871642637239826606822033621059061581966759600979591257192735646063617999283582085506368782509631769717123986403596200266312932613644757679578999141908664070782972892515600262618354937528167419088365411920096543738080085942456016757054003362892112579513121057850909767112675355973060139302200755369856504984411373651799137936297854090449345614311574411037268724997423625957708751600255038342737249153873677677125555532016168313471422319572448735672928699005223595727024887305950249016414335376351634911635581768413897896873068299554064169116834918815848245022022241607431550521686655932819998031885495524142756049557639074823216110462144080453191052633032221415630361059879180879989070901567263923833094315715164339187264694372023383278569416444824632200939769010590215377465821735253801782349566461628983871800411032667958076470098329121986989837316066200122848155184819873278331917699520888997372713532055515948610924628112960610810874667312730314223723037727357092735890965390802134912746851598335655942794075020160560916264659558717180669613600031210167293423016900239924248390698702052180489062573813510177034482547874239627680098466324333795091908773786685997695476446404800288047078620881376227008670092100466044652093287044378658899767581089870913029268104638540584383813642562175031261792108479911034971329315291982304044343345785051062825408662436428878232287476484048006678046792128311330393692994597794125362821992266279218546657962675624728065046622493121121372329999450624551958823824888574107174062012694295492288761088187866978664850314017014110935160614974679825773315737896463304657002759591078381388323259124976261064139151698112725331205796868237126362656282568222470531195749352869992629581813608135475446948246552375807623631862068857218948312747644115617965353510895110209695640917664177406808570071784278952897899001043637995635636520173489984001813609091508283353027141768218365260680100240799438035320533072865414846700361319618380635010542982212741977093606230698379885301939928516861869016898034282290863141115846263370276999863719263987245742256468005919638759300276168582152690085841389396839486501867714040106647020848163604478591230064502461275032068706423107204926945374821079153030513157485258969281852542751673333133675138303103943407842768506223489037768423727214088819056704594145313654233272677807351297341205668322590290761453654073910863969515709826093752678472494291192565672269436237927509391770602380621277354451927404452478642564107604234383235032404304050327211669964019813488158555388888827443314023453006172238839780701762818707591024174379784795400404790718528630814378118609495184410880772711875853454895286146163873175377501555581278429424590344211599380256769221679249487628557868124597700462706227772954515693453032143378664979456142341735111560627752749772950005956221883026726801258581640187390090772712199055763065136590699816286813789463880932136339698520824862797372212468266531338796650111070882335479844209043913164787955616710258497298410324370629429017391816810687714295453523821563412414817557686053667398944030298014537350154311074455529895981861801792119794399753804236212774640141749437736542283238707296376811992654569291180152776691792521099468348612394198236674088229139799483192522412646097182773538731062310891629713943728009562124869853901482555938006802562523701206502706339836097714852790905561564853452457858003276999520952828985978354931273928396872791479246608647692968063767487022323766691177715868834756171360032301096481418440144516315764672320744520964189568893833632401830397642379166172972705470618517475757025235525208143222989619493588010889989826967798317633141431184790954751142844821378354475672074468872412973987187411959591949032942084346779044726242887609329069471915597402136731081379540761095977798676884355411115403971828966928033797405988827530268317423313221478168768079957215559409819878089034854316236852621914254671236350974065803920212491099050471755432549728050302122587960398112422347959273223538203556774189609599340567034591694727319067572735024617140566545365320250516653836698661522196079139726274716470869396491848758953020493014506518782030782133229575728892985095868158421141841168488964526522424986198265600632730493105316366557197325329964914721094310536242363408522014901432269957342867188464431456908559436844940428974071371879353710169130420021711740824167043257024178366389388517306751990957946715048400559242495762090728477441420436238826022680524112144481399470844400638613241590761542012193583270516441125100086218051370144795796951453097300627514248020579366813943771212705025108416002360525537063875483065074009825605309775445886950557144952230340073735428523475096000657429809450635815183329019492622432144476252705864884745659410076843575832570318563720391983824547707422398674104404521709343238071028169567348761069707701833637854034553420183780275420994314206875676792829719604063808823986664035360334764737410918961172388250865192723406784975332643082575499450355641858366580578829642208872435851437917782349103573780987981533125315240141307883679514018193900317864515718932155064906300157262120381826327004307494949574620263317541623026758270117320798728851343780208061414114983996289963081211547853898522568386811972986431071461965524369305144207702240473378442124113371749027006492211610352905026174334663495802877762072156868189147442279038924067384120584810500659876550931224402530387307333873472325516926689825856916184103263001657694622865359142307331370374282059427358432265918923156377449849757715321777237451363816182441419085005615056776198653112921347358992550371221228881113613846658044608260988750636138327889171572477045114412639561573943558913532682995293167430661975498358239797710287207658613501336859213103759649632489928308004822747337809573287776057295951037889424259433890281208224186668885929755097795795076518816967135068594472990811011500788524256852141210588079540285016029684379700998704210251629448371386552231038876045400520930940482487482157728127071181979489698659858888444278983163075118257860973991583623991292028570173061753990117692587023133435103590051082504664134746360262706860319304515586501842407448338790535017982634606822753464514754882944704052707234138112910358296271256006452527057590513627482241859665266092196530025428046001744622192257566029385020151549641952858623946056875191600484083597412647972230971929066767407092571424332737457293905873712886759410626190256953427042274870330544462744241510794619499674479152182318774750177897843732575371277535947021602351550015804267383798665682263312730717390663916700083544555677101568316106777636017560142809994726019385242286838567127314565682824263639450731297280056112525949020215427228398688954737692675196983166691410502482291461723729835449358660103146533050775447658764431697894545860494969648573088975620614124961411381891184380541105989950967606738630923928624626515704122367938405702042439574321265258563540010656412836219655175457930627640481665890255687967678231871162625058266924225948617659689078973018704136149601829891753742190667322588159491998476608582178412320027879129760195987452160234414987200635503994897046312604549302189110245182244089382281369314674793661139189733534297189377130553055539873685522576979486926999840202236956714736015886986431510498501494701093258776626771686411747162713852788814232465665238061697127852758841773018286858380840347414108179684687176268242746034211485208023383153205224714313377190793459078610450841264873294282966228762286902989265800422047656807208006162392942479917526754161860115933496099956461358633423108871345426298430454406642982391271085109307272386382491061101152026088217757224221686219670253267081511222721977237024349914559820332392830817457604292695451251356673639021165391265127626796102739528677728887680252432005405954913842661118634830908569432399523201828975003210250836760995020237781146717719769645024734955864920308394906562167245184535508514574944596170309417873073034788137287010754155374584603668691899974820035389300303784112871743721539230456020394718291958599805199087204076236914905536811727240468887227742916524389939077572587070717135933016263240125718238171970900447644722013569949150181766787868524405135747583554061215962470943629268206832866582178456953911675223027004264418766506161292656586005749378289875140739729972239873689292205542019468571783077224323833581588636105277474190020404114630575584666235245772804529406101449013175171057930015279214583952250823290345682790457582660057593041918784144918794760022751330675366418674452598597639405917163740978660501856284316116772811678274469621212764694708320695681546061261868264726098437494033755248989171589510631216245788972911233061044497292081215187692621768179172219021688022976865746419751490112104333583842848409153589955998803796165043882860153753241795897417662576430653396269340490619809829815066890296989428175740623705274389554303519108843827138671790324194830719814738440853315188778494936219180992369183612140682710585365184470956385467182282473440669739903671044238541331212998704649640108995641459630036644583452552668115749632946197317822408100142814357572171206506938742701531645143956789803178898194967329889022608292422174459961630021520276363423907935236947220333729380597701711637775089659922813837539116657521197789857438942382860733494521289150228390586862011095551888521908609949942181547898740889170123306630877559589078909844316899654210074420965382697778408231787638715727889220754086753090057716299054558628083229378452032787212664611044649922868155290058272572174039248806526489260023490552780273979860448629876230384188452536596368176603434558423034755033237338014151114075416681819395675075591251936106906529627464647670477900288029724138484790633709000014969371368985220882812407312195454498614092129959389029457920028854252348669400419203088054875651926356968226154099507400154911497095382914037279719698346242148617797997804052240543155820723857450049394663098775924801286906327998008187157441656656398366374789626624852745627718375866632049663202386623444088500614991413421442574541225587374946563608465342878404742117215057456597804032144055510153297753046980057236127403895508144269427909949896356017075025096366413469294958550395426191954690710362531293760492156169939505743007336332763384213862630437730614756064070610312054507470896241247086675091310487744178835994585452280154784058957997881766562257674853093431759775618409731572373891484410361956773127694133622324734148043180412545987251323928528723074893460530375186949583737912470922816175529214422053717261883059199670919838072672546848533186222566991632322568538667110369654855371046797807468982906452805370148341642442812723934114092614852747963429578994779695894515318048620921886115698286903027575642303725455118557930567644177937671029977598464729538647803497358986359267019736541505145130341923783499197683260342244936953764397202996020993925230007770757075404207706779738810326205421781816920737515115424538166878665206910642565412244869790692382649032952255120017761932283857018309305378840156742213908115271767677229020061943488029222674397421438364225754687132858242850426299121240698817613473828527865366273153688303708674624114522420537931817564466029832371006035302609595420573508983601613586547261137539054062368114983815056777472562226984057251023395767399433631461038208048617353678407273850021830205804656084555590826767962856351597239918429708631547781109888190013441027072717341287456966379028851991789352769699579430302123937406553580596884924025854569345483410747309648218154533792751702289137793969942094983365607841438471508111322902266570252271469277248297867388823791767418898023671077702175078036900737779579240421345572195849482944524759923952386454709180149648884665587005632875966393260170444293829498321686096137998862742310749008189289920336792289137347679813031840192690088003693171855793580863354662246925201855239737082645801186316207129834941898859177106932332848750221661602879179977552197239791219427661351487121366526844841349708400469146188585154780935206363129818822392624836512418265476012515600256931373376554926392558569401797680853683689518821148734674345312769115999646526434844777447887734951404688317989074080978924636624531116487105357766551304272853659026525239765953099579295719908008348634412476917208694630645646064130655976865461946232188238629854512361832263385416854467423502982745855763744381001312735476431392780430082084132711424546949307567144973486765477388782202097304796248611423159040258915171871846587138715259677232691286456418849640265997105226933642005181515697683442488161981745658691140590641368197705592968845478719550781043655504685273803812923657488037911747653866850777211920163118524536975618741207024940285232720695106427231267989354449107069728571529631654347630393728056618279727556694485695165453953006787650994372125849890007007214549641809044255198865715129625135097069622510650884652128949534340252100373664626787740528710082362567183871237906577351256171457368850789395537291059829911759524778143948877806698206463967646132459575041340604393291948872785392413007147968343237438730357801729376405683669514062737616157230433930013895520740609372927985862123939296752156595670677235451658852929389277020995202698394523016831042294501518813761599399327791292620967497348998822803852620835186855279719816051829220513498000923108074061646476413459646838369183206678349722445960784523299781660546266129229099204168006096542320853399007267422203013572986681851602688186987751483955540475535715490147489735276404443732264459613069695418915551004447331169076320862984715028916500792744180480365052258407695456679286722001827931152065689395894249979908854152721642105315191250742821055934566192750435500093822919053987288089884837543578921949987878453657721019313838498526934008288339750150206637036848970622727274464295822684862887500045350987639909029716731130986801346691138515216479675376925313979807174859420479359309453248709539780194594174148458135681965077147782655635314449003369351932472787815358249242216679996290772138528538743182230404706240673535598586583737436142166653540752901518566889531857287900704276480997032547300667842896968494706612650332067731764562927275687902468896426821783043674460151523409517106997575216290746672492237763300597341015770011042187175203588832798226204934696079283357643030577505404676589962556837549770117891400634721003368019558169961800304911562563275244902446041901752331495075509616873987734305836706593973110920251025898909087440360450051903439192490665076957736108833354397004370364944884846454881067710226116356541856444970247154757873023570116142446147033200105001059867625586913735957837077436919674125838361942496630314852690217108035117863078859404607016216776322774709281958249739710292558604029498207164553623068500633694046582619188096093828538198576981580256761962005148033250703886128117865899987549730498609377090927053802479073613518177464618450620040068475496543059346708956557456092539717404272694057668720595861294459030809212135967120879607400731033789249959635356602564251204353342956300390788816078274805182834742307956559784308584083012814292933865483165781102309752316533666002204531628817109912998342905236088452243809294983189416204727866076890591693585306829447645759480420891775294233173048665595801103272467630147971330694510224062900311768678691770414047926619834574671752649042505472203303374384124847774006373228578473246407218572322887810835894175941175577272259310804852292742355646672288632179737652851105441239120771306942446746745065750360735675186050330523871549113972098649091685787735011848790029066334682900384582926926418959251821228036504071108155358566865298229328772164042708386409174573176949068005577323556172717511513380098766914335383599396481566776500172167705521406947646946067913827655660854204276785066193024406092591918287558110918824162753486094624518498230138838025274977227497045439500334083100550469672616602713179941638923002995493000645634570412586937913458627560656686538405620764195135626657093099451439062453848027309210201862290340340677418308272138178259404854626380058055445946660401991324437114114907365045943689149161075603994357213086798173486351015790939802415951555024806765697129747902419993238664121101833771764283588428960138915923598442010159015874982282390764282906757071286943338720452326362811738092791265183777344236044826444906826372135113084576021903918368753797471462428161394487313022026802469369781603749212802823589833120225412633487534960320493813937352959684726015670575411683884333959537133637281496124874451073558202228359345287911813738297117747686224473738254569039328135056099566406444028018668313418542706270614603209415055722630917283875249389525388848598317685988935941668281273457671010322727486044540766994483339148905338674903985696198344062664771319001022949776104570775388154543962317264232434856507698155828783289281118092668513198196821162337827166617944962938800847934858347012926258085266995065887677892403840496291709448965516282464041758494639950491764698936589264418458705892328119035128598561845022578687140000059337805278173385888792645198242357173648490186474504100203437946304963095302746917152585447973488724784846011460623083676471797926728844016832097187995636941464239588595505021984639862041623957081783227126741800846417410436324741176753747928982608668068333105708577125148125617836328003354097574324896069097231315882917998577545837110051644594896923772577255639591427718251751887469725786647712417980337854636223672677712542184092445314451494861659657530902998440516321462964459439840630644099953489684220534588955559405741159844433398651662656180849932239235723576477111260650542585348738558096626399627979504273217505853096089440425283975320549224934258821221021872462603689969686634802599660312967455448260913791998189888202079625087186924181712850881670934198033236580835198241823320988961365271501065373669072063102712691988191611569259057069768607647145916319912985191917795687290449923907079540711006768178633286455339293053139862643630372367381188876555204725126879986484156564051703240147835139365871245934344763668192068632309000914108872806625583432718639850402872833792698033096352509560533579745223879054975672138653468831004497864014383346732237255056634767139397202619871776885903962029099172896924007842605189101969992411240098673205533672412304742691586059208157606857257198339439823002112512013643614012320552474095099223931195411326883073858357837669008233055208434094441635434098615484762404841158833111721387229630002166387316233283957763681443963041803583373411045866518384278151360600163434876446164865509915855342905609168385458251656816722774880451906863068152291491411535969119377954649413383080632624714932016267904027124638888927250845249778775018083691904749488086013186435980773177368033171916558170835484959932957134159431413097988249014161259237140703583094870652961373348387340473837632851969154497577036219678198552166877266481567435690543381059937482089748021473742917042753301008236134394277544556598629534987959543231490709001544232681923730680743431613023432797007858150468538590484470837071219606125886804689096144758237305167940448393238084458631355929729219775965521286529992446923704631879970572201546449161423496775738495230519259372563499169176012710420407536532858866052087569606301952281094299808267456987439496838450203137349084349480021709348328548394082673838333002970859094075768229194579656385980910782032223448738066476411023881254420516112021208820582894355553960066241847182960598010613164677631407578071407811216646352317037833928838710653141349595254199624514860703740948253488684245522521551077637115259404173205651956970083366361537305514171210227257607747054787375989870228043618165440129300225861659568245238501960798869983336711106082520157337518844641506265735380340584204484788962231918817039684434248024555581137168124301718067502933138901773394520523210586759050349269597641266859948384395507234075346213896438885806158427742327633128312712143966707032202490303176180447925550528823393694514615604824560084341074002106834986077806571009368303955471765605178621535256743320294465945862021134464636347489794525207756481957588637552872755101005639475533300032012744777929666449540567286692039998746565811496263269734588981189200193941795904572391857539149644722811208422745365084728437957665256426399774842929540712076789626829844304554067772363357340122989416287909826626323758208994779824261800116475570855993281598822825006510213454856859941094807102640341022494648138592270983418154236367967300379417723441906927889608173398750014891763107479736611291343702076753356024064323678597781981364665203842948462825305780129372324060855141989160486072739618223316548114430805222708631706623086133071028423306269888805999652371319407531345134446891188093114396256164660310843934981535166597819067855490853054182936717217135726104822442018567303479947801372266582440680624982302647267533690176653117397145467063734223564101932202587904146388996775684767317045422941475433419906585412347590930708974143642258871104499209901254248755910804631341036517808295030110711058906425821941455388960674996445672828048268790477548351224079476993744089439965014863759131475875484983987274440168867846312166027349472392516917269333167120258013795805136869556519358852156501261454520571294600663047908041308158631295737728217380446694718584955131530494698460815140190250224991009387301378307786702424456372201223432473821325305261638517924349125497026589067702047653959962971859341184816894082508796648311102198542472378452989381617675564608201441874840509945308074598754314527674417436458654876603695807344007501088742119464740507147206370827603126708581826113254223876857320636836616386612008719709621177748922208849552875805745108800826393944555223042268474783174208389491116337284452091805252428258583670436381027901212163010523991365843115944341150359481451954982184616447468663171192875199802613845656616341757909304731591702468943287060560359994727861851266497182600676792906746128456063953445507006769379317478425193384174284095493256958366732152454800095324143338649291815905976153348490483900908615360469917771421923434887976689398678226888096550154813178534423120007142006154897278706216213085839987824369095604492302697520616145640048948092533902778760755173421354976127503417822309434906177755081880269288580859486638338257790325323590491499325531421511625002023600165381563587281944397415596709802842688538225447677783927096350766105634785545878130039192614158732797431977007087922844166005185740674137192322152840546837583276916833287681284621388676577673636804446552899896127736665963190768505968772693814149590407891928842157101193722099954561829529220624416988065939312604729969529530415687319538408336091345344563674889931100425028867788145508305233990277984747637476727345067443750025065910010812307548949217101617763676474750191589751309117400959944027880528161871725501510717475191282466112958116587674836987708974107053964596251952847332940033998926138737194147592945747947546121136982745316343586262910209681982503751690042309872775757864908162347336492102295282239204133828479011292332785609211670121601719875945094764248434254362336944215021609695893661081818090513131803267230707878437882951782143121495217173588067114532608487762131660126158338542546183567262684182584821787702626122086534094784657419573673660786144113287158914039385837498592917699717535192304686481040164178762195768442356066819266336233127698887989609999508982344301656789509342141883897326357785633907070889034160335656689284637669639490906338571359390621957699658370157819478407167978648755472757940392174102596577374231281755623794600184429007104868917841299266677500148695338771236399987669677932647835521871167251727200803900290012881380499867781438426533311175769724831998721589845071804001134214649705083318766906865753301598594577918011737051276960738824065885697506882168289930743229947777165262358466616866674803220603189394362375857223842494962323885575413232863840827901981905096520039425746075560743671572082199679140589961171867490292781285200557872176257075792407182849685013377488976196973119328039356846994105432723909028251915821555349607600646878363745048333200379376211446919329781765323131922279001299255865565239404795838326049928814918644450454881702718523404094910886221198793536044351534159139406876884903495495746389010832206699230142077876603128753957363955509683324381588572177628305708877428020654077343550372130459832666441364252180131226588839119806093938331994018266317123831985949207900639770350088922502501929426301132752120321781618570076910018509111777508724206673201769497348820491821839186402884212522089576437673960242042263035076151328720261758817458415664246483398968336587625030788845806125257657584610124924594369593348431980539190101684634884793347802805684060037142296691989599508278936180676114090633566998631281599820603977266324499986070684262676767600799215578913665577303982637963775605137377619245612263753518768227798893247533335699321504398757187418958577972187518468180165517434404976038648137435724986890454070475384416207662009122753623532128634547223882515812527427260391574392188733621522002776644488974389767208973868027734425062979692661420850315607279710156358975969440963145025138768310379142452699953163993884154231083320251859360724271928875163721960853217641365708315232219433628977269280417866902304998360049504218669563769982598675767924094032480032388740994943738491298880611023514792167697636232294633170583021733640126785170874058963947811523051178899000429747419825093786328382930305454526058376524857229706873498245440275331525064428790942893079706956149658737972792392132583041098063978163705132470076103873878482185825256851866298443170971773094402807654581015177547632720571060364231428937572553864192988586729631299925195431313312084737623185769999055814166780554821986649805141042121842004864417825552486159191499956436654074110792049502723817754782515226220342187600528296088065050059216518292826899024145840228432001176364218891452079422709610834390760316580859303592449417313725127541877320978457880781616836583025002482484277998356965184886918739785663823269444214846930196237259292008844306715483227699035372431373331052214429824254251041244572264175153281323681544752891480067658370501802487853860676209917161518572251935474438080016370957074912463466413956434122919520661489087924875300977103534093942326327348231496969462297205349888957088646434994231272436307738424281841669234229159701887709179753696247174424120256522014099382586759140554331973961779231294578021436200213909623654053540701896631795509686740472989227435658769565157917869385257485139289260605466553918713220674841632745621135741042835202986105216084488940257272979735091977032354689174315505816624879981784174381681752731356428553998568820851914578249505344606018334719469661392305575798962370964088040764571117647038852926367448373510243102581879920480153772648887901979129422843335811087994923667395470390610757673431583365144522802818856726816900456907808555158077652690125623771680929678174227732177871858342030959887071203213065111365848769080068451842992500166597649392411123265551307778417483638495031103906181483883207893356252198202491391318563645754895972354805274329183599699224344096573702227331366293947008818296883244563817698693225963884095548322227545796432005309691049723595628405959945895094447243815784008130578230453564259285843940984336625233048709631792184594079602595427982040248902729487843653504695295985988447584985233204252199215526863315527629864131601481207569271712502139503860411320347277747473145728374989826932625224564203345184652730871815165975022994861972557710831970568194839769670378690436128964293555149388850128340945480734930544738278339066800655205422282573332962673155980143306753468930754039032580454273071707032033732666968980747611960496107982272919911908800454413839471752557068470294397218965419949648019282126938371103183390707379022049156873504949218871381104955963094399338778503149742939889260014979610853704324635805848402369905019584227910971558565135925633183751370840975217104347277016672944738313440832647329203268436345837926679650367362453004689067716433143640508958514070692951759995830616938829112521425800023025985292736560321063906571062843688533407270197818107417740551598691124806960817613248857398837527520505843871360718850070803335544662802670878726123530492216973852923367180781210849496439194366389787401606324967164784709963344062096631945817615810679605374963589063824404540708200641467192743062743890276171266947357361467957804759003374179475195175091665905109070498908181968127296814354379596597863479282184703946076869420197435075264536064546229281768003166046921445197982966801536192727737384628700322376748312187978940857881995336480534911707427726277729620672018370762852056509154169734013643483075308034201285401097347354907836657049404809934032506044927055039612963261623815519623108877441723046430204274378076422258298450500475859555234210448580149841417228575263977612593667595506943590079588888370840646841754425910350795959170853138117625823240476767036069668651188802662810342290124956024739848704460492879708441664206239209049512723416429944776657504372468496180084291910639759173301355600538787238847894955716064298415879995482814984336078876856124084990132871316766623439588102806725814834115919391069317346179155865156205250440369511902314523021859418505376986286878086065400305927258877955966287934954988159941495992631266363463100815468681640948783212884597946030120947873062632425536762033552491188363158284734519593060512154484203889296827247714717262458311870277155082065821230219052439520033776154840599957770325535334974596192444876039664890842494239625396838710718648384663942225059075610540522155365250898285793565171598984498322198143633881096856626087314466431309046426118172335260594457169475045411558634233591803583997989084553987911918417871193583207116395353902302914926051500945339323937637040577857672508674922670851849437751479576625689103423322039504281991253663103684645482387195969108585788888112194304256563579116659396890925745127391936848570412137009639592065357840379459044678150196570126920990230798007399315468518548187117334358561996193443266644799887832648277942889509430990004783801283115099832990478746160898509778232723950791134668017288001199064564495901078151324152448733718110681960253709906015798692124679066521885236738498691256413590707901376088665289197468323826977851391150543045443440192651990594196340271995439431833275995321367060884020130041081043060811225029169626907546455236459031269801709661652480675055070071751895617233486614937823472095711343601870697852245846257337986909759796937956646375611305951162450177749023299810914693254579159482289272621472889420161890482525100147199547891604540842849667984037649508728771840551739627416999635569063471150660410335818655886382916441220293420812368755993940483226061894603516665961923784913572246239094767456101097923084271702542369293185811523644403710063659030524872530316551024416302298939514950107284446030599002627733571323737615441279391587281714916243423829317682256343171739304811975565201542899644723527605518825552789145799612248510236485166302486297846134848912462284347629626981290883333037497551272714550996855950829652109043278512788332243940293207627661589086906772274654739246516195302838056594218833488172178589435352841529845431769518495464208601097845942243604224653495602727109054927132417557765821130850756402587382399960194676504844406104340960981381827988498787038444817570976665496942911312484263670088444350184461853902133017292608328357196899099922881272798908060472964520445185104319243388697997723458239239483090277430931325260481418661415390901306652582268927461396409265362556212427560782015542723302621165136417617029697580805266397395274663211636099841609992839704574845254294035648947707006566290542428777942005725604284832431576808792871734587937708899441532434858352009946339149895672976087000472327643209370931759632731131558715378414736112456028070910784031619690233045023008896003027773204905054898109997728176348354795097297351091425806884908193371544769036242626392706446400380905118817027650328036516623037808319838258962887240952286784744626525037461905503118142612559104904377381197232993340846631040247461110172018253180392020738110921144311190026730829927339580784704624232559151661431061531956672033140987436661683832224550501656229080837046961735803291162680084651895229286229127922141706193367014751062749807354218861877371523293913271291065246338056681417543622758701594566064239703264940834661055002227069940703846465679916776012794671112834668697983438944502923973196933611884576769636936836454363256130424866308511601520715029656318968413285436049098799800908957894967638806648858652070173404891452152472664991287428463617570479902436718636071264243308825941949360250781722056563652934785613046979488083010360003655743826385061878320185731164579213394281712674334881078558027774985315099864919552462535528894995071476452962113989037448970369162139589156206827038958153366458691029423538287837365272114734324636337424751026229544309443849681450871273884002067158417422768855319937468939910309182030319660764330730392796483820127655778592493268560531378306719333345776378851446551446895700127877585596002702055222016547371381668919215102554854404289557620962384818028276066262851042946144293728884891982075429075188361364092403679173601114734913016298954690215008547085863473769440296131210756731194779310132177451507705487931969719075552319083346794397890604339011069129477120130913966949382001695584117088156323703519073477797445120113270103734951699529965966979839349709742005765158484823787002972268919465634203958832954902336429484701459125666066848280645733828822653467529323720623162597405917361505506526938476544199493831126948393353513193587472311637481500960228783752402115646271139932573770504202596728698359781269493426282089803237105586963607333235368940493616886878765314037749003144714056109954697691646190250247121943951459638063431677674185837127096123022242950333255198771828895271670012578047072681193540330423019030312086061615099537424802482427442173679058039130760241111930797446358499950141804817666054675582164215771591622700475136653826188025992939544944946754058530411415966449324766237101927390256825326641093835608835719346984853247524103461720658249840595068071321586139195286567523732129582758958116350776176197957620160499408502546335460156123146309009518970571964747269211601276537281324101214109655380700332348155448729125770963707600553328694350192827408573531341604561114982288609116262822445497377902447522495574754477137866366593892567863404153019280693265517468770005051739100648528591231587469477586313571259637467156050680884476621187953264376470596950286348254961043026262408273879858304560861663034721740428526944584711244323735748024639497162676435110336286651202384116535004773477341578344476076290597911542669535755197893753970987996723526218951681203597998274686448660681021683309137792283690601754219977586687069229177103496427983533916913559735907259235051432654817344317825119519568291832226493362837790210602037346187375563035047091702871399026065161628661150283297230414263193382009513425792010242780676069558858041341187762825839125470507883761312910721182888760652042212186066329081368555588501949635019831569538422305167170394837161163081655276102120685531639681237410572881178568574036711786169156662427935989288592951886043344631616631638243128185967829107594129205229330988428694959048397852843488990772398401814348799245328154633016481868268848267901875003448811835038871595946167574363511059885636519487227596312180808629785895658341804887063429959008618755122943441952032967880008802372736806552601690332796744186601259542978539676073379463481336102843996259184553260014090702700300023523581939710666280880679431826237651764255390323009998974848746531378954309807042302732709286645384481434202833380211900641513419491600229470915100009399322836666394212998252908890085623439519358075464912391064680676184814469014731777131373522439350709668929205193151661205537841044029278957725947842388227562257537790403207333724316110230495820606973094063222469635255781110272056725115088423547397384517764571262949384156214081238949794031384858600675046005221274402285370224673832957556426467281148773333118670233782951505378389978702933824335158447881152395447584752114932064440291803726350970415128620504969241808459056157707469702963442641926692122649162714958033610754007296435833963813261868367244281968370166130585558302014586422050226237273836274123735662514799398060927974012853701449146516683119786177583646498529642759533799054083840879535441232017063756474650796353171065675229421999345226839966823380945484261833154618542347244555455160113510204344708255521221556554684000896342651104623440066630882350553952493929266548799743985475841675247243639952439251007586757637241089707353297208652533109991771234059499354867039406048180516484764785007442181340860977528036070573547404812423690681353678301267284923216119278107647241749218625080348070759286563462496852531640177315274276607284720989984189121779369291311586578359063030619061846371268832651081267913045619179293391335472474373926235663797218578333289264655944126902792697408371555686172469798865661932033878075797905092437762204620320695211316845078819432926503226652400301170801844662667100108468271832942564001138707554203537873095497414142898839573088186843020494864091770934601630984559624815646950759954538535250841883723877151172423930454889499089059517018396550770454205312082695543228504907579055504507004811759561232201435794077396490852254178748609980349403520342071135735798582509304777754961318911362347686817734451816977241090075066132152887360960427665675265348687998911449192887872917051791550904526108226921037476217016645988076040353665012175976002500211807424517175468436751856393713779752783290016251719138576042107564138932354936007602545969008435217055278708055541240450242195652465625369191737052989746381153352342735791001620829610006919358502850662346237453268017363029902426238264874721923664599414230988724923188739372390383753943562335001834145003312725191279253185151509451669164489653202568980343896578895173892474417597029280226697783038595812716968368618348847985597772605826119245073501736870428556437252285569934979087606115270049811526151614365689378504546321749080755474906066315599751968927794713082690700193274225292410187484761790878410917209066698810242211009273872383491600230306502492729874915650814739573218430611440189128632029328233215300221014058363750651594061204184932840443031685163993397530914559504025867432627147532046524035861385567291007966122775441998198122819028274138413056544664530358493331855285746839800843785066560244294546041818638301827781610391183773796886139409497278122815713250103340722127295600057923069508153689090857823555670557014387382280374568368684296848492957738424201253257648679844710402869676048031166582428646266766772546872767220008136955046472227863919213402040190078395958761431702038499200268034202811867811682305045924775760572249676438076775937820478366644724421479444083965163553940767964748041528259140521785981889585314883112075698353015226650196351940993977251012800305493405347247521258398565244056385693265326374415415424492920455804543253357630634105648680502901093347984769370093804686729799906286791439044530694605119375161780195290900265168846341978550903663476695286746784965390820186241365234902243034791285743476139647739018360349892888129693951533282304326876513979989480571088386940785125268339275070078393504774473633053081925984335516547719767388249495677700314876651059342964491015641341353458092450288343250611432722489334511562832872235582276093496884590388699330267999968228738156612317216187117340920839025430768485318900036234831764806414022074013601687932724250251626337734915155471037850459452167004650987369146648011870482051881502901063228331047356128732155615371509076690965106512152297479280139134967507788493997332891517343732298805881532499561763034810513073754198655894829761877719560709708558302464676220139838407367327592955303496559316563916689065418971356893161134005782837800058344235199919197307895867432125680914773940123201184371047830951127899473665722724087018729921585228894814515317437103239676519710354925400434314242633961932472917694417588736510217974913403739677466549696647629515294131875450547138126203146884405901156065325405252863516761771761725839140111898277076367137103785916770142433871398781358202556247077216294032650312226169435854968335405877397514999415748374625672748728517013214334023112314272259771887719566044981253170763692859832521912070972002149430494273564342049317539549776915593942381403701678408234634241339689882759388097707265634076127203572245782718286965775845589364180708973477969713940101428919959223397341404635919743449616609626109558272096246233025437844095409839978370650416482995589811766988173650416427635158303276461674782981162351821069393026268624516973100281196185245030754720928261120723182513268519792772564151160280000789024657975218298350288282798872765637466385789808624996891350037972767039976608557147736203762305251950823357708124741541274422644335208165220503515828924205999420565177464068752112388180096130031047480766843300219599068451971546073197006476805273462854342132754487733646062129364112778483984479830234114812073307761871677429106261619142477595214633447500461421916357441126619797475768953398688044097038672744641720968622459912059794693322383415476259786945960506762731650662572871266982283884922724386906222182517083524893570156002983376116215484298067447618980129944832770842995100329889999596081319933635707514352544211598029063190141340164681107910305099584409084791702008855417236565504301592569407687327368406978733320152927821739516092715567013817594406913117900170509320856130127631207194409828325778554139879579980580894002637929779853101280528850589917807926503234010609330407620909636089991999361575316032953023069346981690315369561017913313065654296006791651850798033781031365270939486924396072779196385694606037175206270005774792233309202780578833158457013688259610124895832494034022154302846794663010319137768702684487397300165649822314373188568448031152824491232241573093439893041566357110596141280566369430087636532556706532114259927637312342049853582557080472148197104957049166808864966574231324835309504082855585277079681359472080990600624757006441973579618007273192587049828014268247112297757827236119028124905233883115379063815386971552070849250577098173437939423413770545484770790270527792912321553967520454555611761194294472288073893200625721677150140013481255753915082079112507537611065613403022162327231465746551723256306954583263603279861896517339960415167055013383310508639278513205215097132949015411881165926180871569321744920965879251190218883957409547050732625204738167384254884041509853588479519588850511751436952065959116416052754369391767402773039461616294397411237723918420825848900412848301095572458979897910359907041151694420794786642584322722229459119798490612457690696579553569314132060182557888067967096122633707369579118746656379272663223600371449327668652572578069343464994263755417290226828987211364052642465170223654925251515588269607543443146660895608651162002557070049522199818021415162454631681106539779556647396751394257895352412576520229829590034278890613019559413754077574132890023120719136168555821352032765037864064954046648928973117175796954554994561946728029553766497249605551646728352987328967998986749166591996735945289516292437753141785316401850649428989935000781393422106803429398087150629710004795933912778380875371422318657768834107226730231642010804197175311941682446769784099920345603274803376184446580709752194846819044344409565983331853496700310280769366939074110679930036484009203735091834803510950624615255882157260484853048799886593714617627987245632742023144972477951818770736908848972674052359561357801206610303978506492820866713400509978052410733837749029453698482180947040824879588441704565460410585654238705657850418638249903810147518059282352045966793713040943571368590287598599881849862813549285208342919072317481114898257978382496665108297627851417694197173372549652761151365936600927733648124878425933913918858644907737279601410958329405970087261031614914178024482011445344412382809320850992645873296001750154090095038363881720037888414625760188055887465091802423350618821451521051113533586675503258973814704483025071010032284118062160027427873777060505540883009041098828049254060276295141492129083708662722498982763993399680565127047647849564558976457623448274016097699755013385279163941285140040276029821802577427615730289471909707550369076240968425249775908365521554992323936613229989966888046125814667586985896522445208886284666887765648297966014380906054782344771985007856468677161404089878053109739397323454267622915148111229257785457681244305394226692436371139533746674560334476315787403799362886089828584851198344055270797543976418504333809038595226677010837486528975090798413834098832951503237159146204619249971320437164311353026518874432525564484085003065983648354908673209813100567977678955391712089701338943486196236442439900142737978796763954342308077108095894819525257158073340059439535179455368907429416508903622917151973622388954225214125327351292943592853558703655579286095953416920709810820339296699755852524308631710376975272329733525261941792683053574768399480405710839616714719784018596503098175851506694658116902074127079286480588340023496121374186934383681940779775368161802707502375962171385263635749942105536708906695999451761728738946103241480845866498789317672962294446828541081074950726370297497356307872397089591625734248797415200915670297258706721206074184035869929373374609011307121533535445914082261772660902865560946215372138763744389338771365476661855456789192598770289673750496573095082803442119124653191081143119112943057754493948509170249098844429999819298700602161737391776170177671356961984005151427768086155613156072210415451950068338589804211597763670587176763861551771943685262788078238782981675186698310761931090123832344787317728619704916119684239478899147886806387325049678098831801064005195425376624865666531912493696078904855154559381138910772333658155715941167087582468619323427519284048607720006987981322942529310536220334782130851842359867198527313513483111807532252260948624086047422376686148259495602741006234114748057738505802335983830331323102960468646739800302380735193171506041412249784984940211278828437351566198199269111086445626041374901608610164574014968708699070628811345476497017725799970733781315435806513227040028821416640872334369264698772500103576876193891193574897786857532767460089596116778279678865944722264253602853304114687068817161784052012147222748217905703246564633292666577115750078406915997846843651120954414693785941227703805961572788024158548953755019759000301299744461073411853336560664840320590930985464882321148517031495479844414922077689566531820341186782256710075321701861717977408126811536466105565855623739653356115213601384067697114936253953186003165341626892118910355421224957765061908042783909141414383192788967597096383076499834098351784804468321118553278118634943573592826222366913402743430945523557522347403284210006634486996543446610395757294459488741157855231969487447300361549442041033256131671990183062210285440802264550683468593352471540211437033583381998301075301039545792917355004614872513255713597056049433890447806865596348430484561945169583718315927535600359019394850298521113724266188378400003620049356002806709685084025149922425678125563723882539949370662514119114162274465974382706056667605968908037236031437874202810850740748606110622130808519009996101975124945677107356822758909720118292191459898635603447005603741887144195106076611456258732067084894099738305768123010438103933407757482170828145093389724516101373291281650019199030791277518190646268105060693856746349946845766888219699182710249761116887183040724216431275873256262527298138081451391919185665756620973240922466717550142444786791362089028609945300516396995434653335910846037863489349140671072888379907309728356246990781859168913722293425447277671079903482785945139064551948830755322497132829968490571492277159802175501858791918206994008604048021450241213429446110465268621253790572105790733831821064462725355022598484353445460776923104387769061576648995481491991363346256032610408028937258806625919902233161897513697316945813783785335333671998847597040411758691452488932658268529905820032723902937180724522825610207168431157880923845981566905247033823812270629251725297685882435775573773647974297190379639012466113774987603908554188564886802509405563976558054231323896517987182901183498833263398245767314526146560754527633779950824254164620200397731913111208998777891083282716340182056866298511156253157274241242862369447181346916294637118494927940417555804334098827522469781469205610580184301176798105737833051891761393449375113539539276016231925802819545919853227584532683696746266176492416092336057808504484958117443087138950997285690590928686098940785287778979291818594053675683518700775525423271999342743516831724086548388865607674971277529327461598887245904933189950912519304720495276420823729800962247214080926147137699149235785172935672150904034914298021014482405209578214911471220537729196780162279373058008168528843091616242317935027975289259506312560804973434835865064170626547600005742038482010964517276480916594608478231028243560208126029960630321868426353962396029310443662726388374220343632016819029891166935408732353191180953014590298703055214909141292140830673586253562896716732335645340243030110649273674156103942033645193703244626062350754211674272026469147706878374181518512180423690581266980622667112117978602477437570036984940763582357353204180610078016423514455293200250166898874299609706533469874959656113014242863970179470248133692993015740076397479728774022121193334123144222846123228717444513885794331743548058017305899242121092785487504084630862020446895833484612618019503577759207601892956763734889234538938277964523529161437256298665234014024509449454824302351953121661589113505907337022607238904342820749432437022749011838341451296172465376191719132987633652964298271673811536501129815389842549300026571765295978782918719473386840161054275304401602904248591425037304099770140708755361102362883720274086527796104520839387300246304128432259916692853302941750945568698238797528446688936230120617773008802514373456099511890924225915664699995144549303730329122144458579107227492037920104130936020498688084822716514456941847988670298430522024905126346130305530216980561102353246730843395077624542352095500188573455508461280051446878435589504115306791524018448773858406895961624315243323408666564866582705551926093747191407859902160812402124628761051728711577171755319716584632135159003646074491041378833269459276356254306265418081398006065570315221797486429381762507081287541684326768467730816419643267442783451661031530994121643818067717580240213931404803238290593913536818628859698303236672019848343322649136852308685050594123092661859124783553862622138715766257680323992373136762584154354981064787014062594576162124517695114568362454050446045919560419802928962344348338466021075317609124960041182816466297110657481926515682638814956601966250203538563744504398872097338818682179532792815610446456082317715234694638213883739875708233899026761271280495929190278265826703085549887037037588788613223760663757333076849775572025854818211353690238962928195541348119287292333724790850003980835562919447904818149870662959328017711661397137223420658284220054762005238133301964665964902711495705428348511417693122150739440964387722801546172589913900060105831583756700092868273411804008599675375966560032318537759765876210109198170228157933166918276901236336435066379568837789229687733336805282154602332621917936586909265578879398567357106462279473305311562343782632850099872736858298455245618299552717203929454978949157107246894776521950307244092204806029294394150342892189902631919060063463175580024032595814972203212502901606737714161505742463943582548109315397400114061337468895160947698555939185602890724186684946067188641267605891584821752794311421157017372319870382366473935513209981171430751478810333832624397209417117210624779555018706757911270037812116281527887009416321726174622724155637648837572682591441579594847809577108498784906363348344360378442519602738779769103809941178255245851662566933620772490134400095719318816642275043248116464416283670837313982958377056850060083336707942587792684281719854561362674380959580859047925590638615733583711019839120256987412732587987589416583744259247350619367181848166879173003894889656953697892284533035550833517403689787958203105058879940403908177561077900589150452846539095960378960069006091364702009721010120890516758296307453341652582412877947072998599333428945969101968792126861113556684270087815135852049187416877440901100129579093174502271077860607909889866346778294291029395627648245701725085481207257843625116345488720794987270495182292244024145657262296776504462490912952322531319977774917473997097966081791809330281396355937131289234507518442386867223547863719337521082581054506561016380006281761242973554044979677810161163653213879656658891696964965751030652613833248661466599126673993560359928832867724952543336117827877076671021156011479941603509112801365612696247682794061676442696265744062424873163373862018875952369298502462497861970241764700726648186269535764420044991842923435525144352337498285717304086798976383259934044508291481505276418465163470524714760567251365058196364957926175429027328112403163878044684332642846679210462954719193288960425789867294545912628266724770703383098881219006234344079516050408271674324147333568779038059172515098919545693100944651367544565286744456380701368078097501576004506703855480577639647549976443821934015684296223933708295304443972980467189741803375890037568956873297462826889545429603134179502204560878034331972994713856858449148552526091369422936728317029291325412377512359601031526073436746542100788692659620774227230636852176764217625795973810030855160717845660054047825563497838039811051191913744728045908379176887000954543015172295553209660692581082084197939597952251912651065725422530095946857064557167679018129308664512625089705814888093679561976118706235263902630769850734505834891950085161633143436618471569898638503658356837206418314082399228141529988150349147782190376428698297382428234638601644601181663511820844154820387205707008168340151303530600457600637444694695476464197242156717042439788019625880643174821660511112397656678725268506341734311246205437068499016744174318189394078278830658301562164148490822429671561063278219602041900857017402609019828748841367765840240111623948942780171555457665032677678970560589119684719141798964142358766812651444958543646390789346246713313290595328499322749435217317724819978795002864981925256784449653210954842243564764568771867382186997581481721051066985049101407845091124099906896855650570657718506687056058513905462134847680715117486665402751217208596922079742941563064898159310441292754962806829748869283080227026293760253292480587043333583612304380978635286034807047906240593474444115923370792083375842553855909275913767630737376468055141212664168805369170548851113599882726111945604014062007205592120547131300409312306468354685764289370666153477157598143036514491552051568662978877366374399204691391086417768697428780222863890888261876299996545319998424513036334334759742868412719823124384943920308551638315913310525201827193038999918246914630050319585404664595570549964827657413766987001792980500133672653937071435202282514014069849497625304741929316036997748269192289173709013706699412994725527099233634447465169304528314720026014243497675912956290438635010975404190243576057910357515093315417918961404694567059692869148825718623698187418112917754305266591397451383489614379302142771431127703779768673096757763382138551893244589898134084501176818833951290912369943331325934617139103544045065867068358506103570724715084419379064898095309242249463358906529902949518700224097001246097684966745385269475448641180311364809741650299149859186578179055678947038148886251831542104988363345055227844837024969537477570707526522015627378248347077221133814496750578319861324949143353798163662526744909540245409388565679766900346275221795141148352921495925027944056098751289010029198430497580863254760641743966465428541611566662507532961183961561375552203710440699255334064500756071085460393725043179738997971679959306041319892970194580957121319980535690802498948734081480441381346374395191734230527635421285245469885734676235123758074116216810843383926339294184373419470502799850834446520971417158722244770927918682682738785339335511457216571132575037361107007172203922693051536255519492685062952029501032064582016282238449074360790132715757786739880867972853822655970650186432155738439359571420126561110448413642916276541483151278144974501657561718221566851362400983849279770429002575385318973537648378085073932594942330254269825379896105380346717955684923959419401544490923016696252934424763590875340228709194553334967312323410318432999144934281189225964766884763144734875153562560957482856579793703952449201927217176162231998965414209266733682643559122008646522820586548781569257131147098124777218405827228046277672163101550470498412625511538760658009443662577953071645559121704585292628509795206009896871023422232142095076993607989183918708576929065878188667270317908465949536202560111673568956836967193876564054202642615480226353238210207196860456501233656949807279737735756064868812376527961761346344467845867954353289948007989903366506656529194492060423711987469705666099151106714863282835158736126840867295945557261275522701219319212549924930986152860963991874183048750775938007168860088241716078132066114028180241039512012266856974964347761522161691205152978351641159010256526481910598493451691696701920838099453782180201987819817215512225891348821606585914052295799152429260905950859877159215156584263337337699291739666422393571329423898680149451135969360874284091943890050015671626555679585176365251464922181250157708971992649350942488176500204315899846285356395237252097432996926418395356978230847799188068019149696555884073121412049694825420889931938568673151681231170445115570963540778402564174579505925224126986971871397662331768501752848450266835447960308770537404043541595240754111205552424433584884145822874103804120135348232308563354636188270550957549413324137409485111608573868474182915720758851834419942375343710076158591107436121826140925687251293481997695379535003994068345451590727149235451954125348281155459068253188922064007318817611926742371478607743658685837790079905727652827275368618662951544303214049393392015005725319516239398976483982684578672401211246520089544757799290931339147121069382812846772858546302005378039434234226357503539492078487516623278096574457049925884846917342782700067490092164235574906353794570425524747509115943675866198597676537914149039390589979069201324342069896941674245456189235169628774410819850683365336643088915483693109629358794165276082169890326832716117477356141748499002210275415881983342077929286027074239699470623138488103758012494343522576610006292167586117527331283280670404619121633528080739340053641233524738522401859755417369884690702145235779368044969082240121287761156851338048784831899484502261979810169972418527361849759960819054656191323993303067918315677216546404642064053232967811423952409782663370026850897203153657166373101965359279974151264367323738918555347092015664139569370536837580007973393302819027625173387303954538489163465033778146525784610868636820145922594398176812809692083412472038903374000000746518149289916612458797886199276498012072886254268131358062236873501033862481435511787780292967394996772048341890199240028268166187136595920024432031032324009426991838924630422045975292210450932578643246923796935895149977603334684480890311119941543267241178380255390205081344267799143649966514850455689413631021985833331937611548183031305551121936663343824859938263069113943468936592234690406303733065532232146688132529134542899586623454176392475858431290510498348488000223659971719883760138984743029507076651273075991008779459039024471951031233496024486645895197770913297726957671947537198149653527182700806598061169297363382547237556869262883665102818130764914356981421953791828417966781767663956852734921629618551942234689331340567215491430027232155106590054252455735557036661195479032468249988654540549275727525191189170782168978641347613135631532821710823013163405228161343248978068012287396683567185769682546834754692356055530109698708501215351087764031293789734332033884484584587667362743800288868645065527112280593202103030163195340375853268739803252306927919170280006886793062951415119764830197510518838575252405464043750409323795736935255402737841178201539421928417430300410290780856412685571800503098036011825573122225949120033237096944407726722969786343459642059456399193660318943209812270728553039708509643891051045571051705741508293816731902905566971121129521377004339234403955317537520814892173408821447025538640112377523440787423400553455817878687041818796004712738192909178298038815118523951303647346455277931904906662531327386164632751007692840804377552997020654916119629320131814069362833641457698115745131765232039309270634630573563306687646144672972944889185153201176753825114015710027369047932806092954824749642975531987036109372035427527018651723711231217810127040952189826319452486507637167080535323285359158439822965574260535298292751773471384700206104898096654020140395343433930528529490704906776138838158993857541064122927527608622233239280492272584354018529676266145113581941950343415866628897444608249789686321215924134797885830450420288117027105051635121857426321551540039328133075173389937912761301862623474327020800173608031438601062280938001111787155331329958773338980707049486418749881046420776833356676116354374952589902403814658440194976700054612382816597312804672044643342463751255262664265311381059596851237906978954777772698857800858824622604639229328758105534318105024618275510761435433093064906810143591880100705845631412626106791806788354605174193849345452714853417463686299717028547175583811022375331577111118875907391462692800723340214665624185609359970539062807958838956383318336483866371745159326559794794011276920960952845062868791890331354083086903999433117888544886946380241931945154692586574822428910238153582309092593389498388817691029508161733112121810463377166456453533776583995262492420436450474693986429451841464104004807291556026761386795240271963373072282779319679235886713524746416892154536816301915305778341328184198304685109480661854751826257378016779383311770337160172182415743340765511446553363154715127412210989995784929380452381863624289868479825353894040123927075938578622295715070766108708712816337172667287607950023998089212685261048081327582636262025951872180582379385876921312100891661126940743221611713713507207393728875157594002364257846193501720467397558263927393205885803299627033491635727476021439018667853269637787798650503553472553784856547731525172966900316639147750621754069148002559066036137870409241145279572272354423150133538351376843885090571530189342436455169092619043270879890087266466095305565047082245314266929512306592562791436711671115054026355302412628789271253508775317891966486502133116521152804893304920954476299392746274301400054216777849465822661995268161434300446141408311682499985905018285027202815737777508772749927702951172108501245329181550400259913597774319463106389048171522711603886870679705878355530945942634423627564893145526093681518219162079383514009448223650515130070432363620522055215053691709752857348784425839115503688428588562149151204718785053070514840100558280390070852442725138362864354526220872234690029153075492261921443917735008970898032616880385677656578113908886774579189275574238320681863338948089509360282963846822670451291150747119885666973298534485891249664680990393271324839487245222158479186750371504535338176836856014091859769218462557704413368746346246597398086648715239144104491111866104415256603748086296904571522537722818120322788130946220505425512667828656976138619879373173078142386847948306985017555952577856047565193480693339220415678291309913200549764744375444145203720231967230027167077432890303534984069260021494991548619281788248736809896166394908534922226165797560921414526109164217210657633186557112742523189059668838052712463392455662466286671816799826752190679014139923613495653046646298209830220535504258160413966264799619041431862864276390703943235855513633595411952959440662808541605327609626060269465125319895486595165216788353237100925926160673208777593063460023165448998938520500634873305606594753051127723105344903113242273437076197024560960567730221246432647057787367884372605777160732450658673627903064537539852982908662506374731720125873984780716364139137093517306845454963389947893576329864181273085290511985715970113206022989379681323516023496273635410147275252021059841611690812544816913747071474969032182574408854540446508641350680605864368056571940634044651287404399358390408233245537060630275190433456227215620282416893712672827260878593057070858405223575800423663976942599550840077068322500736878224138880253376897972948630553888569548897720731764635151445819799075811897665695604863770464146395770551450895963570640050265797872854096359700110932966612585603926642423473144572009390130428140739217076495593808525687683034563711374166050851500647668387626083247264997285712325847788681598868334988058471369092554144325569682857579701015730413097436664618714141558642406234052499089042813720595122742810048011709032512104708757285313961667754362779024193535364689568544667601088277439447280389253652511072261964875676869342455074425164984539184438266106592526065580373299173716095174535146512078556927271583537533788328209078128723599966886942479793337499748396512150752813951257156790273595861655406784082646852058035040664544950626451829007670159180354591264613490789451143856741926250825704053552737348543809959192712981624169086503819979513144285592528258147556988123526934338181372685156076721276984714653806698382030834418624407841246936119773080582276791909285100600512745985372732938548066131909922769809977644210035935926062883151638873137380881598250689664344445400435745264053216489764961923604290086406979956570403673110805839083923455642195714490028864897172966668057301455696777257843503487208827531658012011454714698334176117196450024006143559054901601949135415999634107934041965045803236357071500257031362786674100005073958705986121430644966615597520523274844761338397492142448846352717788438896580271440264810270545945747290544444785436396164614402647163047969192657524681848676115443226518740860331821843328245614998946407041725277146407907690203771004036646165700386726669286206711599708368968948620218231840007384006759911127412707468599873712528070146183290248362144137919497351493140108513614617926386486973664431656976561673106733815927134513121458884789629191233997014397954503598902331723618074597554292391619131500847960361391230106234136720020016639656913978281061749234818410890525124085778244593237557436101676609372146879904146096661447830977615309237984467724742159138752913491818457468761129666681509139693285441592765841404400252301040947715110627740343816365322994314983309596240850966867703445842136297069468123888000882018490196049209784820969099320772300822194998552850462232786297207900989134535858498720601811649194350160913766885954080205481192436901245343101489057921354258158263608431820754748872357171383989717060154858651266046372265251122316118166154955793735273098252150081871999182283384955998671291838980906132621105036004386674302282773247581017136543641007582708542930751768657160472407138195069964801257482158890552442846511371898819731890004123074399033965850647807751506262565864693836390364604032225765608960115563567942164698463201535181558455797914590763149735880205647091446861217031914126320770388051191891492954283807071221595814379903698171530323276876229340342173627514493875116425831649685874553841828328347867850223146831522363198222634463633740941845410574878668818156521043253444440294950543951102097558062305334581442385378609734930325009906920394478691957038140965403068123946265872204636700523383955314164974950446145879181733705181731750484627327073451243422607425651367141146765744864373468084087124650173732664110082414074151165980911384359167408886641389120899562918713856347582925192864093309587683458696357576499143500116117241225910824760206589327750816094443053688761284379655941772479029099875541511373283933221424339992502530458733281665171566772395518987253059765901835929130812838875467053373107053649693488056916012878297078693630115609951170609935557390079304733616479381344755962683642124183870873789653722669430923577748130002411099337334891038849381835680928686341839255511190780910666147300164628896736868331612974290060787196754936697552574164383733287290977985295250640266465787552005393329959115474372501083718725307352088637558699250309293281803391269118840517986886707128592535225158998740595122394281990634292969960851792820010671414213964344994969976117322846599140761277178133489056820851555437540353413134695164765647043250774886796021098696400881967972173317849327523164123159296096801371150046750409727467740672082894494635033684536333719717618231556464608238649123020522518434876197402233231730866781633496492329898607232326503606410941956717147371958389265867809371818787020698999670693970658478168340034374288437613065399408678605420604391624271235873989128802294173291271275219067878228143568822679656680828484109985110551414895418756793543993896618518489197221654696124563338731347877631427458779588753849827153786188543542193375941552113148778110405659112941073264774716756688217517110290330521677757658373304118547203606403753795684650451023372820512456964172698886959459627577603822529560974031539060652008269701262463429474711179118371634733528434547778307594139235059288233891166084697280155334975852551114901810445182011842421031089322741332383204259226828383311070568531427782334855552171986498703802435641451452087727807297433200034968463469174870019572644668606361712042381088867260301577276711713117599540152448868921079420044329119910650549825471107316587948942305405076312439857974623803680073685930276760943428737170524758870180095692531499277234148954505610361311586653103623381053949675745116329499535973771185000563642797419223082555299911032507140477713284390238418127568183784682436932299719298970572310912440819290874750686318864374363338876853093099545379499103856442612602466083833460727705191466581592680225890177314178993150511201133220707625863765381516740917065726950760784184957403363350588448078834321376828781190366922846220808963993373478918473656404956014589541642070626459750900293946765386132420009951978246426361235273932737716771457454071965880505356189885338970529447691777704620281599294842314586893867994171836490550448219857101539858117224769414325897873217839239839205601112521624282111600528964403567156175622594377287320228220698129367622412659686053658454890308714283958081709496764780013017584236051438113900205003605086808740607385767129428269030952855390532976991173674431630862777377430422214335899204730637976240555046178265803789995253047950444862140139730791953506060843484208673213114844687734268776933009808928870168821404848135097890974464928086069857746968010256317985477910248782683508737316756326903790579450541049267799292429839790608336430084610351000358818738092958640329612878189688905935160091194041642049728301776056295570644596601224926336475072709267343312680515044839432756879119920181085893829077333192023308863526657173326118713229942675852480916162383167853293248978456792835993433345657837148915837595381940197539776338186493327772014847360112190876761794575008761421165698178449739407213052640788000673054839035953896007440005714842264146894610636408266035440160411549283848929314914787623194232795545050262559616875906848822577803452821630755225215753680207597344916799957278322864791570027035587300778013621885366889775418148649726302234702625095375248378882607807430938939041405546065172381853955369507047669047389702233358709935353159572676699553605019455405737494880158554218549165139118048418715531351616023149462308298986149065434287467673136641058976713404598709068290543388875569699579867242905700056420674441034079370087863081100716695126940530479262506352647119136515737105190490511189217122478272125101582346749346896865891420861166752571434168137144362274343201778439550874244157379903382879605869021852972558223396498474732506965577342363885715649898561838172379619861024164530343461162776821850479076404562643163158696836277114909516665141857214627203800481764533992901267559880888978557050434416888405427424811900412959745455942222711003546378216499778636685425935709083652532041969768281908725085844130913176841891927628627452524207788077197532465186154905278679330139954243179141245506173323671288404591625636103155854489486073615571295307910516114840132841553149283915094646355329052403138726493405300246880008933427324123062192729732275271644752687657331148755627725127530117603845359367316170740161412771094604714409812267814521660458762567930110160793720595537400759317059816345924019148830705694613110600873661364968303012202561306286029058153122617572022256882699704122827658530590395306701561500631880998187946422489739463197266313281308141924212456452977941961373148980368516647609451262795598327177397189183397028661702641242707547556878462798489444216844180784722008940118942959398170510955366573710755157608317673561481883562229822813955504444606410923501112621027191269957546540733850157774275257675630943040874813702342973221085024658688884974870138395677619460014761477338846177085331601702257038177468782407212320775964856648236862771353339291526114984717397263935034574824046877665614583963666229205874350891511973815374197077857872083178163885245743650623789164240364538351113264646771429583547398324851632284192432951053780797683413264523904764817668430801108857024312214861716845384115423192402515475898886128600285070402057526308539429044333104539850798454742021711998781753889123183551527101650827167164067398208659068437624527826563479139187332194722117257849760804426312187155591547662294244174243875108625862297574291753356180723198697708469286063412908984357835887868887218801882098370558990291528328099017556117722505249526590650101334980770282181430398639256513909716897477624751515626998772868142108447659492958249278681621042483500088113245080826711722126758803717888792718934669010030106353591923248450760766489907054410019920604542257341085423214796478097241929419649169629614287225443565082321608743728366496874788196294748412075149622207216371658836082529628718043913607759659994288778227099153790198037217256935782859255175585236188495721495901913289484799092169855914465507870081271707571640516870413650727207111917315280162032351655845156406634017470960732386513045142909364723142710260947961145578189250303965417362180976427649532048495223498207991663162516118057726066128349589243022863129639015751858315795586518519897626860563532173389727904720250083707997738389793707596549242104373171258104769511078790997791275945770850442156953362690821314922883410350192642559704384435623956760443692082524381332753463723009604308431783935801671428246897171663815669217922684495034582506318410901226473079584943183965404259416211644952788512405782259304062895813823310944630954643145000762430957432853573591598826288102182386798395167098227082848893956302575873899469414285220048135670566525946892479485176788763664026303957994400396554081690937612332164620513744446597991801562721635628071973074834926960481253916100906978996867444548111160658894575158240653049930112504306388702743505199380870792940386575265183853722014354809196143251129720118519595032704887742487499388891700528678854145199148511738337027231458620674044056434131184451483036898728713394221584678993509433778644863898674565804112826976636621361748956698036837615368106200665951431666919257303863311700401154742148352864811374280745798323162176440319105448861913025612471647925453834587301355290105684487899555722131765984414093346287535813607741524638589345302492186108704879280672434469481700220867090674567696047678989520994070857907390370110544227556451374701399462378260360629105976923905753684383039498283523284854586770186168128014152189413607790472503390289842051972451115537772964224550746708515518372085373204616728183223391910174811667392895454918031777345800350699009565108284455403520961350255764783630330276705721559869137362869957967609567716415568902394426668103042405968137601475844930143264195110279498836640493279332459245712736585301139090526769544238681057316266309771802113622139397269277460997946126189758275759070445084375242496954239416349396133278282863017235838292878584976089412108794874001510176239503116656852418513910388822639647547263421836066957360722430145887066301967192835393890082467613814023497065138399500797425100530530488117625563980645972015298356059182647813396370168951060898252497945659047472151788846610650467743256042758789926718765631444656147813899978132219024712687825047237894132270309068433639946823441079296847862276161342851923611980896686919194104058681332318737253230065027637518267754476291108411101094219525314773389190074993800801253448161667722601756196088194198872567980939602496666264718165647686836404142876104400641610725818565383277834160205756756714738047316196979122839475351805206582742917768946198294400983390351152968521000471599941841281678120219163288555289254056294912670444601496690173329176809002483335349584422940999966655072350131552798166658343088900263701390780728173672667874852068084541348048592097481717073339070423341857125825589150193589672769290537281954850237697439815735606577120672069094317830862841260408231205938491079231510126982528574228531602042287640764386924548768010725187247695723007861396461283615621224244842468135756257295952520101124225141507463432543181816925116464029186866168528753469009188241099279093045558834447736783962833106270646891079815895078028307562707519211504971925888185609938921177397751620757722740673556647766519013111179918638720312506137853773948635704609832535909633470690863441617232124410097572042315643790118205733381744122827551221756889004888703591505944934944644941606485860116251295285464551803937452231732143076412386323772402773927204118810602529520265809792465088241458190054935784262730716201827863908260544293298250217753077673094213332449764682655541253664346018664793747418631097176934897630967474373104010590226359764138983762149559631484981964103824747975430901115231816227164042631546573903513344024246664932956481503979993830939099036292459235157558546394301305740511821702150554508335056762044243820158339104600073711474401366726235801311202891686203302806109756275720984302737023872287661294858797373125834765916226893967002631270908980858286608971953687135269932315923145796284081310920293028506334320414258994008598074561398542919207379007802899179767765401882349745074238328030645878534959441365134857876384173654148995311604320135480602334290340259422315672979322725211562127339617792942800618688506881456865757828755419906020828098777705989584848414837817915714832969512225178464271976099673383470487488855332114687517105052988029732925828811046844132472645605687008160771285202861538597055245426077898616521573374553776510065028192998367054659078676321780403842236399276905715133183468037431492568134190938579475807588357201723523116165193727618444020236122069937181694281580430697667352624328972777664709321240290377505730019885536296967409143351076354384857888941291592018961876918691424182650153813583668494286019642570628755544678553568246586444437768780397684836385696250443837897885407825209161712015565754554156935054644039289253342112164932937317694957087261046390179609586527982191476227323148607674806491444799618510249429800694272711529988545656645082825444631601710541871194151792051093082606976258689410135471231209942319515633503897677876652172745930072122893924912941182448892454469438655695167307758684481707152376049102398044478951009690343726862804684450495530166266010075801434044315257895304639888903916855520176172313560535087287634469134753701561960850480610242065644856571267058457947515483436827759425620423199401232626860808922429566190214232217322184818256824478420134836438144725383853154193039504845190896753610576838860424914673373589536620102415703891403161487049068462202241406636113903457266623782298723258446824779719929579274377774158285014122056018316198818149774136213097563117186757553231684141319385182146414494159054790389656673302544339767670367188748923969858300922146881885906112917060795268445566209070936881618635582664091931119186572553086184677885692788980730399178814578662481989065333142920446688319915306117496837748809985426319406390789416160943305380463400966219681039996166947821367835189191433982671493125567341123345847438654039153098076810244551505574861058189076709411027532788608393098309853910753449970831383090650612859586628620103120256757760637925943772899350473884994928286772164268637382150342433111835309996853015886171724212717918471020877942985419912975874326057565441555518331783014090137601059944387041899886007488038940320194000693803620417253206732741172861544886137677396440042418586921892783869277652404130533247246750683974740841166003454862232429761549574650885011873207867323720864717216036251416479136915641309861843081474237666981331850077347400018074356033762546838531073722185736571051424629563575479050297012107610253772409103141708235564367032783217828177748138747723304237789981219484812323377513645919785437270018483139257193680777580554885395349146124556280578335039268926129454195364362008523826059554210283613633423751628610359655051014566713036621288777054087192563121247686612567455920383255611958581995699165508063401897712395227419096944457567744422762074144822003420008555019470454401438177284694668770363951506285663322898741355211281243080289500368763559652195644403402429894937820790456505482169657924262510623412304856653744937673784322546807522648033329393314966971811439937605154824075790922787656722099836665653511639316532628594227016836855467326034372053722885276158828924715851515486476761782603221346969730771342831256210712005901343926638283539903373652170559977665914429930543444064520512398533770120281696087628092158879830435668841395810313745048770192726353048265814979605771364398302885920702341922597679804735220024816623206869273768265495862726020888033527015195820022755216351905578344617488982698996926862646966834656926808575406578260039662411392844980431137731497154726926310624243458693525226885480680049566628464739842785016170691246483485190646845863551036060408241532864013934323096379031696219766623150362257779112175279597670187829904704400261848288437742262779987111658174908190593175905419131518015573649160090161064144632871845886172198760528897583797205807990535056181077317466520665892128474193279362864190338918529390758456802291499789068919357069173724912373611555822668405440788145645655496304143211372739999312254750438643528171872032448570732702252555634087858904217221274902085600038531841458365506289892726791101758308691281405285875150313770494667963727699358749202242873551613992683684949590013443045831369278939109976368802622991494778929433096042694483074525667329837421422692915676911529276496717827721824569415557592832113259425765836075150634667747350927437426617005441917368708397149727673194681383042083431843236280339623856031296505769108908055539575697770331842012500976819436528810815338751431554814546458382666146156867800843289226454360868197673569236926582515427127452030590612982713242975624592099451951627209043265209667036294020499217170519385292138939526238619883789472579963355401451764528883505466827721688836479499587579719254576212796692706059351154489668726874506709598322405349146967590250047978947377647734440091406282373870094045456605068460909765445869906884681607805128460179029368828032301482928426567269131389905347944740551230348202927911753562886500705652961685821232122594674865210969737258482636784883465834788620013746506163601987056280277117634649354533550791714269753552902153206486565232028087340079845416059310236197914366581475739591486270344089748539302136467378374950211763003772304277392909882427837862849452803772799858429556494878399840168642270512082235519909549664466218225626862526688199666829644982986967530774795351537358866738894931865852422738848321888687968334787915154203888740530839025457756386199818435008332627981679840555309788219542044612828267002731733453234147398592357506881221119357340775911337777724483440557683744529520793370947176410115229008850932434761546583161017451361908860385235621599297994421574258645841788539310565315320748805281500308965217075930304642627689567340882113922591007229719106632918627540569384924869105210956691458611712411625522856435895230243347513102823917940957513484959457879935117613997364420370564025765160145897078891470987105087523547391235643950402748988162416814971169643224147012782213093489629328472730101600205323519765709050579335242670760508242704544470135774745916326929111332416659307104767503868483253716405922963339142612976288872774877546775997853841035452701247256293432079881867232544238699837771888429877494588825658526161635319303175761074852747658378858114472638032012222957709993535230905184523631783667954875850929509028457087273757804502061101415626586510461119067950263619861928983095681938609748588276012574306497849046849958041168332601388782512325363867386393740843324209733311492186628303789509303215541670012321815883858420832601249990174032022121590303512868121964562449973397410855897299091251487557007521192331894044091198601541207938792846477086096640899769849547455732394663530800270347843543680297116271426380305716922228817101834081776813973772324935859038861569845188717138019136185884637639774352055154781526784953487303419904178146398366145145520722956164154382479761911384811507099930925227895435396493693663669744649855963043593850179485631800516524753116078036365071670796746529991283811835572870506646697282334060405143859381243072883423094639802134202662653295592745854282750994406444000199831281650488795085274715580116284419653370232872437521837452332999564397404112753897437302632554597149334840994041696734720602797528755636341736015325622756906586660965043643775441640799265884912292618835941817119252697850378300925167289292473363910192178893369774315033040075425367407209997990630881243495897190745085853178449558054996613631269224247401095138905043921997506993730328333863499178841044384793036880220663248615362730584712545349467022508798831846945107482716923180299540955662953858808797657595923473992605090436957776101150435723225413931507396254008993147130533720339325972554331535885044068344275713484125271228709431244302830361628019436426713030793745855254338877755491314619427870139832914492202914689070010520179332197219031514003678138322257999363478060118984255155589156994412835138984595338126778292458810888287612934259273885799869223250340575683867155419085814538396763053489131126590012064350411023857545293298661397112024134348933007636816192717496389602931027846033675484311661214854596312349826150610761730383640830536962407798629847848520132238860398469728244096947416692950516778831590620285079096797342798745005600078882229002269843742136507743267184799858011969560814746293855011054959786707208676846272266839181963611235797783820197704518764439754530985708321232634325272354107679057691938717389408026793192929616663798406789502923264827606447792965644552281696617723231116553681853730906200161045335658001725560656722146543381371715860904206416586974609961820265695930168376538934097020861817429875538036414393021264065668830713282065076389216953549174163544104767490213938360605921502551747717289286718412109418391592598756869624774428386167368640857629502545419044967627841471704721887954619032452214510099580392401673133116021306038514413408515780505563049611460032217363967412723880534053705971202584444452913817769473148226127135825129225520058201144779458186680492599815298390194621701886989740019933509216022237740942257696841592812690544056207793939766747454916631553234330560211152370134371753301841773370057007925045979018683186697049298070208379868714810996613328382519843132074159288529905126147516414446066652866552130986721348003334246217833507294151295246270657070361742655079763676082813102818346564079338015936095714453579816325975277986070872170298137418845991222051487527149225522253952260734696577243778068919009675129475640127792788458841924848583561051351661211095384474329741187899884934806402964757443337941591970169646468808289677542431852346865039877971168434375604973264403650110769869924611371703850618880166757325693804989599589375839921828384261395581358257893791514040897311497354537777073507392200457914517817383816151091619334721465678910417739722213887075233505433357028008751401306377256450578487495411571542262429172058294322870971653402570428677215248962552028685283643864582325296580544628901672022634293037463211038444957852386558998818779066760649137494388623343110788826972459644780386528587337899213654721648909302516303743128495461408765408498361193455476506041027962795561580330708297850169585212161973758505704239906842259878801855341230552318787168762758502838269342607349863497226233756026635223442736678174850375285748650213720663062124519398889833636740744426008508283054896118251385441339578534939658325132552274139856010930812107440279808640378115124621139174145138456907902739070746893019565236595174959085223901629921072317336522727443102605375231252051522777496068140766917596337564132655820847416247935447627051353412994191742503947568886739407228168904849733317860944189586918817722702216972280206648447707390745497169611003697457820159027642735230467237625631288737405803273064909824030030902194288505156490947528393625967507094793626452982162670955655204398904630992189558924000199201677881400765701601460135839742595647737308773580243293662952643983014933795387846069148711490855883931218861278092943034193162669835826339800972879218957322482569133093108005068174430181660800683612983432217537551734935116171276182604280888612037963924109530883136085661207718757950043909524832027916925273681939793093135264082055178285234365694907640968652001269415412285103711469616624301982835629567118165570145031739367451699659777054771583036798313604423990958977578128925181273914025910980083691319300427293016153906426885253738329313246558685634817697023667097926553150164711247293312502069106169464515133790488232531554183833167986542080732602468213823371246974184169266496292657317910081312195098759595651645128203328048104534272731544681605781457460848803496760931978555637179952501710662549203512528959130765783647696086355851536178313916286793163856002852796594370889069691671787230589945012731571768677600875662427522868201577746575504178115702695942927823073761664907177892164420936232360611624278708655588682002371951957828487483844281193296596907255048052509487139324193937429072777037530533190551066899006272536644213767133524911923076312672177802249240225393226354686703309847968536023683332074916834216810457318807422189676401141681337459628695213472417301153086007952091354467842898925852837222514070939805493295365293031260051342044944428048354322202271312669438680272746099011502622347507876077819836380358338437774720448085327118627843818667982203259325732186616862876424382021481292152214993611385975906555986618880013147133718315551843561235317059420441986179186181200567138781370515239811114820118709835049610860285496516701663371380052617868214239479795449052679356149134969892923137296950703349568327348864864389988952972368328657182418383511378951494132813592929987684592440132983281916513643545704103685434536772298745775106676667413293976357593850594986530223999946806288924734487005342236671438176197427266269217287218175822684350095267362130611485428664118243481403808980348616713444827216604389238230674533659448337996002917120805913054329877770553136172099567658546907053829721624040532329993244258792313434496302951237416651037944830379202324708294284003573604890480888018025214306908106220999691480730376666611258134829921123684851741121391416920872312933577668867618942431090563055618486153416791341681286548078216081984383355209236468566343362485541572179582162194451320740062592813625921049615699567970067086143197256776178439563287156413881334108179867724370017720792946893249478428114699591996041551253027324014285367365089296967912852878797355151557780404604707584587125536103786223732229003231703402994560253110311525491647471102433883019691398673258616295533702944160172223505585906032468246502332104311255318117116927229870283884515673630624078383630440298377291261272167282481903804779629105530812995636534820485330777860102312878102439537773432035486877198511152187714341545150170437522697787057276453769648513395695088679139727463628333335767794983413179428194386012323221054322353069467318786334950896353260076941674488539882794336569004361684686932119662144188361569132903052563699512620423608478584497669409158784905811168350192828200732017423981130821728741856429436111778477637854003512966823461292809785265349381757452567364408200236151582520819613508116544808664215994704999207406768670086556386717608641683531411628672217771317692015035188439817218927468621199063944112408505580023656755662520784765428920419997707462589822289769165914859306475788179995984533192184453150220304050899604454471069616464094434127810363103327759630540766004113895984463691912113040653211767227468534640358099275948097176157463738752567529496972183043186391890862883740518228048938043854649073271454941201253657049815174462513501688298948061578976814267897791049118947110907042501489940683114755270953834575635640109980827563098933134470487442872623416040733311823776000934726670865534535547232367642585721040452041143747114174780159505923500827502771304243552600868741572584656928008749922337992532746331647113823542553148469676145747139542535938263167354369546163358228791780837335354696896492675279747113843716458979385383377057313800893488756903711943072561042693692918194580013745544581683053751164330723817645322068794452924460756356736943371005252107569583801040068497902789821481403964320908084196961610897244697983408208624623097483737986445859140611952441357170306129193907006738316151737788756242409025477358832816591588977963855135481406105116119646885741101605817410370190349066119930470132870329690757362639981308620740521178817069629436407947974559986824928223635462533517733216981749362432028503338490663436551447024870985335228452380506907077129408163421441240290853703657893619398879406385329629783225506191083003849990376915540720017816678301914278727766344631785914097236440914296677519568471443636712496727402525252510455560236911220444896086200911852533397203511226569843123120318025144709900736305103352255466569411336253705967434964965780640266414904014313032554300060835849638815042040630687744802057686124093569911074697678717812692076079180097582713810243397393936779130559536835599546779962206503698327293789536214824137659926550697135418251599900148709803906578454970409996719684809859211188098871397347233840262761993259713445840515216048720481820430306395671780764679600943994954902464780856419980359704322683652123221689294247216979406631006837201661705987840864938378718055818207318939766947462655353994362209413840214129646357573572992983836187696102155115953386035368542645623172522454932827008307020360021685713868712640216280593201140709952912693227393241498366021871068043450040794095938191739909143891223946782403033406186032277452558514091035007130684716402667535171221500299600976552541995230582152993217618604394323453655660690926899958062508520149257804778799652749509460258749600566083834365219882517860983141735768157299103624052990753328147622333687690961683071569063891154114364264092944895010936458027635483905060242521168150094993403235660532593330628215584513780936001544942371974687599569829937505552629284245164506430982141353296431139027391728200926014175039791413467325552879655667191579869746170782814083045615845935236329694899349213192832633585955466462713964592152105039228954861645766781954905242505662756576376412575044534911756286803436445350209458338776190778074135617819172739336240261255424600716757058249989352317238608720348356725613589071264187543464794439753148857166445854656577703055146276183004210288009270124958646469247653673776757431266656411010891542955225277470955793571836989547682691232320787211807338129670167344921849372261045118881387541248350984993792797749167755590333021618506452893120082928093171420172361465257936222879906921007118688324116299588696952236472385866062874397887630283256506775244405991873525490074221065825922437497038846932110450250925724683926322752388254324062611169983612867325791133766254496737016159423328962051082150833196903146293529202425999043262048583915988948437810577916440614131767885374873172634382608023773478669741000623772332604653880941134618848024756558878612597331887046271575627333251552771781683445398423071250781318566513693430532923922960973680210048245428429248979683206555007611033425895832192403411334959837543959338590181958548613093983712800315338871958390277273097524506986150937791221790656975347322613613755187328085367321754219855631501238799972958236806768081734466484491836690950475168975292974949619517097630078983400488086760627852746620998342316742518237383026828449255491184650770252782286007616308932826795002713668299330850786141239954082476823337404880325858316950007404950985631265215644204428767641678985616314109096083495856065502583001828382703581319102983645066072958780147064489388913410526512854641164178764458213572565101758112638395233158658972134743943706829213317411941762924059617321192661047345851943999625647879840582063423349955767036288003685497463706573525718111261140522159506898524870782736659547082430821196028546876498454947978374607138792030143742498176230306199147389691807907592709052220734900281636309503500659858109264684806515541555912143188427498360836968935805057759741031629165353811140254108109240854085230539178026306090139278885055438913568345158789798428143394751680449090576018180447253792076445341935277600028029692269410014677339837826157561879535908772255306707051104719106054721791137127546618754895467617534288663054832585428281215131345778158243263131086334257678796573673184470194871085330097862752456824211656093110226697430229894731457803167804950746070157752337772212014093456075209129013174540509034111981290794296585079005875738198208106553265802211639885766293523076005601713282092642683882373685036452396914305021137595400877646142406600549690565869757704360460473916353459017680338684933393067759794472663643939100466834734486478948892579824696642069842890605318805139700259151217308971823408871121643596717665281016717325829247401960227220337302546581559979818156394130468170558684955650588179506814598802530199043965950524011578976910121803831642281095321781783806449186293916564109199586145225461879942581824001841376409254207845181034653369538345901070323745551951503969912985172109883915563270736300114215257370094791734432739462293977477149876002850180203903561553305918312078698669515901177272962015902350242620152463005446215515588846153532747152338435976260483063776576378343265801663945416992171166363231025713183473844235199775402648486596796053832921546729179749972785081938835647099690509045344153162395324020902382733045526953318580356718714945877386637827711179655330368136085931067307819440507985698547592564431374576272768477361237144741639560020154475679190860711697991818747910372634811320754551156456278797853893910568422122661514028549826680425246327732646864909554731540771822838052761802055293387575627960781599293020022027303200429003703774950824227122137596424482927443920934238144238458671400396486073529028698599281495192061284093897340246653357330758069983014358857809952649987482726355982754031529013224328331428548548161906916052006475127831987685532175332834952360095961569823561797174964084739534694849870886492309625760810845963032659420391667715257648024153958862676202387162104272596232853325365769133717853915557408138788487846875784984203810210964254759743776309054746288035537998471459617476389097497898821505899943790129911102530617704541553153738077621356627671857134783670867807786730173311618202194043103405731194917196632395631367109976375567699286957688529371265329788859526090689051007901500218022577524679386436083943001911933484845723732101923475378743462100224442076173315954205648185123692655068239212751030822662302826159411684072050485063362383076672987370604415885924071088677508240271572325705196681069927908492907214933299379528995207090212681793496812738148258524030207859039912546637711167932841494404715286690543056634850067795396457125496360614914045482394984615055975852947715285616644087269139590972393883624496127714440357452313776711971663520596806198930435542945484470740393931978928210369099669467452559123696379660390655480690404789106467850617147674320175530850849094110772786736058626371801154437893335413802821036760143092386182198898447306007496209660682398965380963942107619582770890222475268811274664205406741432437124258135020504861251341923723801850694057967434693981310676802891305539361438908686499419446060830090128075063198861169826944437354983530135137128562233509816079849675601423342094768789302659443995830010479353751722696216671632802704958235471266905351456470229214170313611458350039663033444509714500206727309405077179606535298338907738153971229690667916177917645399048073122348173944684907790981368276479171716975783076432485709160807659889161772191173607332915351596182516118509328666249377364352272314292823461093956457077372026968333200583368624939601113910866272172667097890801020031299419752296642347973391584391329595734361958926351619549687506313131219814027062943442833464278980252705716020041279387269475221961629325649195858837822177923635338230505468594595411023340265175756312281326101766372438710254168181324953767793291221515970029305266810307653878720634791357530438996662021103268320652018447226358228279855114808858182509942283065229160246465631194735346719586786368178433545164753844261675465018777227311122413148938169628952157429986986312366161555375921713387083164108943186316889923907069652691177754176390273032392954552550554096431920898528778445313734132967559643775540183102722194915078972335455083221413454973716589030739431670372914606408938268092882590536200232966344732705501014851325897391964924619355815362456674272010069078636607135535241124806112500042248357540825851605742968052897466192164899821260380231226334912728699427222296904167205015237239825526008837341797948255291519247674582624472404292794359418309869177142344701440037023550159492178700919021337302462954913778358689413663334328714383148605784595037932210546186665953417528200234796494165178885174570983145037400098883755186788177696384843532748759445587761318447953691467429198323032314878849585708672294138992526417642994691674208938523545711401850363054102096243365318982116786425427293720168011748742625665565233533109799968415603559870393922514026778272051342828464367728207752164807710743272880388279675564293458907090377829942823875619504669122647341611881830211612295514437750261638850763482066995375683118082004773715656432601483571140668506216873759134385229280937996134208007263513537536483073176186466980089617448553374409377278228110064503452550851893117115415148356019150866269508559300705513284328911417908952207074574943078877926175027870091370555500653785327180864737276012726338906621149623160497106613579415089542330673981926561466810342567584915556613481315351054357151816070846469090748489706664786984053120701651268747621488582108577640855015892818786614781050564849736846733511745956563060193356255980218224402376393355209899259908997548159113609282839048927891624548536017860389640948044779519403502762020795961612995015426191281375794227984885654963989470207403198963099737212588925712514886528896917303420043271329051495845373035056196285524092251607766381760794247770899784162178672989816311613748805652965313262371649918268292753733561566317232746362858201393483846846659056327138428854960355184384883711403306620632592764627969643600985635449469376290804271052996391703396394075034877337751301059157355565832418508087662823139449218666404725576005415076373670221117297404063171683898575850349082386964126553309488147345600079691376541083748212185229371325653315469309316041562950376453896124882690412572905983725892156623018843539584781771946327151550962586954121351318315262214924677678859361358995121331105525060851132408412686378946287763128857190733387690515478029611724197398837620176602077346511374946834654503822573287748989045451076074720684620229685863249855496327676110313187991045568180522730667054641812514201065235671039029404955201703062819500360878557662671546759821328471803159098791535874226036465426142229273338602720166162378469968429338793661430395973973190494646316705796521745741879855031750802163737861372982939623904724800233586670216756684044118442436957944432294025145944572871781259788881695391242056788979373044225780345375043966890757860681336384540624923513777178755844825110701426292017224691628952677901736917953178093569507404559580069198442556431995615594779047621392671398712357790681155779107694179413198286444538999404591063581668359309433233592262217912757947065684246935839939079336718146857015952759479017799593228083606926099672632181864588988012758693726114230844184527253618407692812908664394441019880338720301859072592199991144904599885312118238100001653214366448067375490434701966853038853574558615766348185842047087091937756942297313312240860201400521502457166791153078652807613050556027375631377260488224187351959119594669788574506755098674347024570333669873158874614151236835363629217477792273661934100447405127397815132560347983951131606478998092164074048846663618502950779928272535935620490792187381807182955362299566888454449938606506560113994936146194813653484409670742961167943632119435248467868331035765231873191433137600897015716175043315236478321638281319574912305635796458161003757466982975312484910508433690695288331972435411493869594232116432701626208247124313365511419900926669596407413528703192902238896258706259550344061983026338733915975327832928361744213482994008369786908469871093956047053068162407454452172595402795166806143775502373764009345232863554015539741041607490089402069790536250045353618945646565695456534261668493161536222120134640029312494212701129268196142629312376614001298272780014058770167714302494405196728597919442852286861704691366609302115005349515552097221388423237584887042403927227097459208728308991021725366980054607774014803785832531213935114747904245449666152333650320696728443599236660410486908731097914904151529211128708503828997220394762354302593734727704056657613129020330626374424644202669868827370984150508904377718757112138385180048069608629838875897212247421061079237029913163223075806392588703724050904943476110946434825101408076807755747124543831591982651715773364300570180569642723658937112159215821130663192030701578139749122785597573440709668635678540578744068023123388304257988588761096811892370160566085749451123566372486245403147528417642618967766644358156143382671415607594870386736790898299902430337087978699769269580520770096709855204509525661348092573543659338537577948740008102397852453519945062774785529368064326729671985906100627238826560339016346891964976861509962839820552164689013614080373311199773622729779251489383536361196880526567492856074778466300229821463259336356037276949207228425132769524231838924695865308209041925747223601208771723781973978515240709746170301654458751345095217525543704735783227561349086297554408525337004672750634338145624660511491483762334033033722453327821663517876691847455141963654795171100797581092524246778297824155822061919216407792282878748948666211687281744443835331444661526284976849828592259326766127629832843010686666716771682813863407645659678690275764273375803038338580931644671682163302958011570919034847303058149569065561978069728727977195537985593712794859945901743615188510963026820851967687999346778251503590979681837785895675489920145931461579353943303044056998253249227978966387819617848531768928643256340768638856997032429949759452767483761145629544905534036039945581303044065124271865551668662711188050427336120894660392726309714896570925925021419381559382876730677424551873145761907422071946835647008543500743956518776660265557085210610862852846137484758503245776535601529979750124021445692357446533559499863871260201588499564234332642805592930967854998983445824850854989696997542886845548898459353433261778723660096107620859329242972326227757421644117490715876085790420052374350826187922852518321594803495528152432363398138832701371899095979357885889444420325288894998593437066055546298079464679578132772269007700289965314242713964705147467374299519519432596534288319390425837031636030587505081231045872456290875569754271680012479031969949900110181095680949464053225325331188063540353422402278200071996871483521345419204904983049648574061306742662542082316219175859426702788352627708982721606249196456373312147530480731139163657158524041284277698238067185212387637516778651037995547959746927516021224901012405891042933836737983008388546902749011209686936457442794612034516418790912185962345769016419593031100345033153023810523985344053553260989752490351096206199585408498288951729662033442378921183485351355607080935217366482575424710505324344579981308583781735348319902772807580872035598946568573986652788915412352691749836765926839693560380717789734118518480230913180218007629637630988813808472641887189815972952199582390032591608403053270370218465846695576504664140809718602404937013744225369029819475113801455286944812981630126604108539504846377411884309976827172931450427842207678709726477304199199443394923270881588528060797606489236071407914806000578035074801542350099568234810041313378160525728334090849658610764459018273796297618973433906777797873486375345322613843518591014660740717921906559159161292636322910078032548126287382020113504346611186542204671507767524359096999822658742887992445484657904694005582782869868232964630827894280790894158098504688631353725945238112991489447052344229637282236333480324330802648806807729361341195572498725185881446770100905099273177212761030067484576087995632332988760293069796093526855146876165724443469454379497450218007598719335356990729135967867021496906427564692901133666510921043040897694584424036976400402720309868150106807442334250401474226209909124243449944472922970670552650917457610673615894126836705227281981417443066692431573152851196593135472635249189833874388181857246514420625355164626203241255799287244293799085493498880165294532899381911601772643069122724977517578790748723659145671124267159034942767043114172646640580547535448522431915006853146146605122033472277324130424912669964070623392554895350170383066013529949526317023026616464163389718323547653850782489584408313677626250886706311092103303745159835203753388383470869518813569304792922168855379912427475516841524400987509467058058910275413209336612357952565791922610765822897701929582574705394642655589790213745914559182826983464235659367283222542897851213548665498153053826501241770155514933941788868648586007359595886247129078704805104374327196661851652330042704668653472097726773311673657948920377791444791322066725470527372083151216720942629289980264852214727401813220207240728345647925140022246682301351894103297021190179751292863572192262233035164066006110484970740024569979739217145996687971023718061025398703651657826623471693470349015003306365316256948452862462620175454542952949603811326010630928238896215355571438056136203503024720312412010786229796127356451779574842247997818137819493561035474932098048725323521452001248842082739396243621935615112946048166530952354519088723508873396556763978951010218599914155937044311582650767980017405261502474822836131194966639066250693943821843398361273912085872514013214600869790464636419525203826375630231606766785788725371296855669407405242051292315913198431586377711220014504219886359600614935678390660190550493433865188208221415445449611678111324884976668857505740566666072192098922219474834807189184369715648689950469118479202066448190503534775045906965606358070453315250990048847715076932650145562488891694794409840927050048338297936940016711753398688846179939357971517330384882569886943907295118422388429360282047648740757123429934551115400948934722659179736438776218346757891992703484719908310182441977880403000891293703144908829110944202647032648159022468712172643901265925415562982161289875395113717388240394878704410194571561682878522227964059330554136524700402518455166598205125672113644635547083462563775457733138273052892116045754232671747730625766301480889001657935608845898518616855661221866963616246575368306706734005129518108168170710040254736741472501670465676208862352645641375923114449114709893511299704328068625074282011821724695962874797633587117170239987673454786482455235256547688680122339661695716428636112771280388186385767471885158164379967162571817674753191124166049332760927850143427218685827167513502403723329781974197879184840551647509161242851971057764392207018168399983525519448005534539059894038924401206916989948339179772268999712868540884425539016010483598418541732765389853742597931970107887152020374981241719279075705953482327306382667933369116364146143110791607400339146345594182994552511179133654501156884540314598357072763423694881328091370432528318580381995493983656538189217848462269504984025642362876210885757320257838283544528242537457108176275594628204867947768581682576529983062782480520408077908193117472781316393417563983237367987503025832591878934080082563481654354348147010349176772968919431268555092094166799839494185056696769919556739011538600386352485363351221419029157938734956321093988632389848791704776347600896272006500280641323908360961943660727889907968921996642208254113013993803301986954881974123032674623073996958571219316569201538057712665806773509420783375261164078979091441808483069269765540329586296455882771107336359658250437936500507900740826782062991583088647628518057724953570108897272598185917323359866713456928910845192980243051732608423807899352192482787509052790318249374630998494413292576587671404534031890845782675624250771818090451871716543014807757976239906062111520148567884391651670206817013323985627493711133143360076840288564455765617613991909836148011653521796531279734222089648284283387683616816853105644597257387106754876337787197239483121738282267958035277114710327123155769729796287611920260195578065510851031699888536497395721170623317724525123305571105903411748037815809409723566878924181668934108085149617456091282205734018992306937378932430768590339375912400799648576692849170548502674228782536856043543102520832671595173953351172038643588540659015759806110906842710348253528565085231091528499780336206753097293733580084911167941229434098918222471662536575390475968528655616200406411508537805239337649995482066837278130957354672842727133803014952676685644427448333310306321012468771243835174531305124052524705045593617353901052606775704780178361355481418948718685199681570197883166426748593716643336247006762180401497869560609796768153642383297551310057011618774502619897817478471758000944546030209189776205152825274362834266635666770727808430388493633438453066962259007936691514574052234467716491587453420473814075573047878475303891002604613650795254769876715530806657006176922767991710314837148625931305955879721683424197930414293410156857910649404061167138423216916615338261662304855980458884024607306057234006024057887137737025519183460245463029546599092106170880585580064711435345525728114340212563833493244934653021564685868422264852179868750767294497481631860208225572485202875331632003999297361260648927504494733988341376655741800430292745097392457510754729159783946035160182483060318880186225868647289688937112605625186764065503480855976931857028233173676316071376512094926356895399438032266223441481411358971564060312213471189086650776976566147868495187281135584700975181979686674032773177212418602367181941412895512679711163452714650503146798492947965627638866010175702824673339388193552010434529803215998692981946608258879287124327588650434971086040349119674398157780012006338478202757352611508966420005109347112232876224137364636188080263969207529664171613095608171481030725382624027921459803494410715158303545283449053194920529505571379396465321947111020886957533401598644782899476963244429942756775271945384101993949310785970819361506732687361726015740734358615890801483664856999920822327305496721289521967977738785905263398265584262004842043353621235640396168536995373509683061703910008729324700599808365642847940153258499758518990607593495892266761328936714477870983972223485810736244991838631949492851720578422387970160018508249611888304131339135000799968702534610001421420054038353051245664571376238363628179672335139556852533809410078724673752573556827390425012448891202925270388465772306030334913610614277160210900671481473340763663861688250614482977951058663151454649046493009902551606749679838072440614816878714424547574847336754277053061598892151745915932462383239815657039068817679356569879617145632158073273896145060096059648905861517611966157348381259543409373497034532574581965239861427876756730323328020997244200559829632488163115312240116261987908019303297884769333140976699317020046888225770080460245740593373243451249036178691404176999241493622899109028982282055939421010160829063508145108346201813005664617777447481570982844544202065348367769217752111770630175812443079635583495937568885454572284374797654198808029054613684297746738085961102459736570008638679903896445443390264989776543563919476500842337224130125559496416712713099950993695116094957689115017531181646607829072293409841531524488060228679791790546820530086385473410617797859649568863147033598508000474873670545121852799786189641603670413659110721128362713063890558561215017087366387323370935402355296412479768621506393762048890704264224771910033749465520804193812701181072118317099912318443552504608754050510216123630889617247401448362889835173294265819927106010264902391393846055122112818412780216779953371475086499056944805887217572699179317341243288699507324861539664541905825799916286795600407094507991809536337524121493727560002216499695920882836988280840841795001722404688810983872042409912640466148856263164204345825293276054087511777560459036482294993453942543171991704306263584715465129363642191115848613670187654778283855410309005632746260039806815439856922716963963031015866196354866663150400018464587223101203513447502194642375997464200998382900834323501745793646825781370281544584668488346457477692168186877056540013388253510926885375525787162618802909505578353502562712599123627524895871971012928358591978621568893800051510473613121169077956694513622804600117072895997282743300723203222971877662755315461650276122938445290562626689719128238339122786834443703993364907475609394761156161806368772989630189124761927321749657299860482094296173825186727007626295133813206699651771741054153387761199755966095669294119907994514874255271806612785529229390764032831247476731458657272327886195808950719934827560228501188358485556229058428690355362885140593443849505081114631439170641018717665751277580128858211927810272035939673321589411024293425337722215828400969726788625126435806661342385363161707047666779552715568281596685841207536354490397220800427310110525955594330865290834064797557022984856866888797811239088254068348988216035314130179569203661153889370453080533460767565366559036987043243739085792878066231517426610172702486883448626079139597815817427652695846589464100004722359915070853976894621151879276588587507786848924838672026295163183189649171634805984925308818024292762636555393409577477194539918293168615918453679372405576457645003459215591512447979899081140110176008177892937976589217482813185635549073317593890875710872714240488441897022998380605365277942780726506566842323495536581302621895608218281177565866705487815170877719745409727048814316475122839123709660538650852699719827035600238782983932839822554049324373135315019944731706629829238670093469381344878038784718170197644023149296688488952330458287211855275819777453119664958795002972511032632427777941276099625308615554875035637805200108548328845669887487005149191001966903154178906686939328578457135928080205759446261550393957718441054230991048100944770134534759717597803887576856729195307086937252952724614236538101605375408166159130311922221779330319266100343664139882836184343836044311822308928433308785247892044404975373642081983496952353845140705892792629169333902118083000897385425750103331653603520115859878794855846111170210576793005924504386760955079681011016277198081064520052911441288775351248155379737839783022816429396335562994560550830401296336907418531455700245643018121611082441392970771092614975428216653252734305508172261562382833761352196422731212004150532467602012247536332006629550553011803495382142367331054288467264406081237119392133916300114810910478772588150749654408596042426854372728493059376791824646941769034745749640822403722297350160375277829495313532025467024632222012761100352195356271939439213012028130903971164806434844191797446184989223498019651715148288659330344586239114226824610526110284029797411144211741638620714589615522922535384616800608624712069718560686113646816740732186199214283139455670360190759970426684297006587609915745000716786172472148041957041690962146194224297116102495538154921424042197036200310066301273332627469189092746442540666864081688782092273244588018571892197271090127734281048334248865248983173470044725307973742976817654173321108758621917654687003413968975631375070592936081505060121048507273353871774162572667138644685122369458840517485755434818286044499586864337298324503695907561226478816421095763666707782265187622042490687880837781195105190143963182114639501226289833148309234626894905443291716493117854310725403510071441551550726660205570382426526595901035732177004603340165510201197474963013841713468095181041127029136828430370388041700707875555413486622456227315540246146342446468189542774952883837033695388699089588168545802652949576602013041250242353214720195134379120912169897626344707847054619264718948750296620312771255799799176768637701147452575819350229649511231494624394116476792964335919132393709082860087861676754994462062522280732316626114465859463032427372949176723010102061676171799935746940106978912628384839178831408900889443093894529860268258642349895315471807125143536291554323671239180894680222994028118014833172600481738159561790001200044612176404688283675355070034713492531693844129881150204290722887303534608124358265770581695975004692704357579777925047482745090617819997044425644971945707003540373671442147190238789497302015417725455585960877427253370752175630344874998618601530057305641443803589348629222079585927274069863251050528096625447706289877384603015416472951964893126631709289190665872920247217089803490499603581779066889200954828363472839396882088816783433756987139792877664889984482024853246694525653403782381299736917092005987910156910851785188717413747311398491121306761895516772350373805090078718578027273871189590320352967386490785300312564421531694969061788058961148861649503745735514610812409241283147261760896911578684304122449717679810055630526421650027240289813115380209970652339796496752396387457003947330723388879254327270476960582926800009178521330032574728342546694499545981038975000133219614258673124977116651193684866474612196290023739265924990183210128831791517122776588989120190126877866800520697832679020240368635816483869469377805785284510672239034985380394639519942864080085290433299913723986098032583996254794109133184990234913075594893216755691692602134408918138095108724913463398135632919330372453794563056795617743255073918024715367026464397724897495653484109316228369391842614250983473824525385001175629357406431328071259032906044514839962645508390012648583281239095180699030678968250971240201102595832236333162739671596327172798170948059735614170087667360003946703923556137719388902404943512147117113593481715364127061415065814177716651354104924276342715327562409474899362580944900840009399006071888623398837453935645720883847025351754098504002309383409549213600661277848862739851364447190359535798181013016660109779188685515315508197409041949336858986165187938171149840611036382992776023728563874735325685193426013136988567472472772789407926448036116200047938348666703475986358546219225754426162257411537378462012978979727726579706629811151502704955528541236939564396260978122296164772598810552346572104594429684356166646994589073931784898591421066980672219570384126243880116266398726902527956242105127568101345541647772233395658120725703071341889981393846674347883891607093249539268279226239326390295207845310140806142796756063165848354487266107193516790467646124932678454313244206766422611739752433105579317459597431567124485548597935239941340293208651812732964755088663984452614489144798702811060739174790761623455713922299401333071916608646071352732562583371314156939107955214378011465854694773956298718555201958869955186767437363615591539769594302879103208310938880511183492233681838405390504902662425073394435548878517741041391471720802710808671275142370834923611383623541231338662296005012967452160648857618036895927552701079350651615485950685266935210660555271369590274065991119042992132576249523104170773986903239549047814684098668975522020106603266519630481333011765902546527973927757117313882529164885877724412247586660241178367684714588868989574756536632377670476345158192378593408987745093990232107236510143181266791980802285568966988333971042484435606285024255835984896962407626563632863717703445465589558845123707768651660892569831492316494460276001449431123418804372067744237696301219019329276999101561740392298015456818569278152332373426944054075993128232585791812382271800311062571076855851587558239479183478291111029358221970363494194380413983859842761792587883336059874237645736351892538570463228476378976750426259624445671564155820415252930045013993338804316940572772582565534653750755355832443515262038196217188272990223510945814640389885686375853042730380607273128236220256590348827301426877695986699597223714323553650470610536285625161918651410760946459809228902225222116876539531848188597289205068654028598349484442539884722288184153604797066740942839466613939466717784153000645005885606052517552143063021459764525058522780586468129233284027881895926674808918045837818042857029048279696488385237276551071941016648944762434788573664444231545890350344415378546931217587917881635464361923421456595108317845855902760493017070432283163271814326354676039611984005204371001158653654482226416378458389626111469212914880549014683851063062979242811977806170892050132816298564730411622585895630054277680942802417044467109302041632234283636162718684528564838058798847348422045525599047501712049185978260626517385675555243990634727541562118753511577494358694629444023166273502172492198897978819834904038439162043867087536126862318886658740464916509033382023617004032868101810483338026380027488827781156772746051391006439869601675339863641747386912078527569893743148280360259046582458544180963914118827039424471962698432461677531687552884504256844284064337869785346853997933188177333581647072015362710037724675373993951946788775853887188271285340976365310884678108661876854266448464226750381359613469170907772212406656304521946581070744769146443943881062931059079585420037524599559826618812110413572521009083179252037723129283815080001661229576563160888080283386962847715144800251625880891028906672841683875427352494381994589090724676692084334619805550496269980717772915025553355954994051638315245608339657825828511659210055976880428944198275429707192599726387978373299827772008773545810202616201130506922330814169092850880475114175821414242795862237433709506742256417283588872623368119261034340637236380493632395822502505410518387033305775868057809538267816068708282849478648370401965217589758948185931833672199762386445699194617237684287379677817964816153473766631948339975912508708377824410287065248248986198274231277368953579770431229292621001188448450568535396391617833505666925760926418709545654438657420415762756710052497954566519487486219002517488614594971146058993737711004840878369048701901840861447844895113458192664340916767086553569319283999484661849771837995462419245899301120241623372427733169773439581194027920009800900922488408166787811091052714852224826909298394237928983992345599282363460882976028657141646553753524886067255762108067136156205632719168581173627344242658583470216002393227985836939530568797601981265339891574526065934021287793356759375854395157876285035329843748252456972176680165071434489936088075790298402241233155847874512198028264539322359836326243993425144568529382359310491260881327009891039352228147640160822274281127418871410576751408118997003039506799640809633721608946328878990196245697794974057852057698845300880658811343807720324828534948607807722101647288783281629543475680082388142978103481874280293158157607395553845151145680528578680670680762167289239707156020243639194291339893928709130967410330733589923999191041131862482875989967868761895787945156247815321536162987002634443886362303519937930180200562291128177148378336486792838902559007268617562761549429857352844621426403085857126285142147087608857313408768402031120684757102312273342753701698856457628828457675652772743040921015542970683401430259493109080295176085237912356887631512471800426761690604904752173384865026884131868300469309350814387673868027783028234543718694435079761931130002473782118850532276073001294197314024262796265099839225098009468196294068797402989228597575934876533656453530559864169688544965131875898242666050928511696782771600020457878995700877557953202103464456804338258869663000819115291803497703792680530954894801183688906283049838805000617910376831751466508824510340475117924631587318714933009236810147379049219683277762336098396067572664498063056052993312171074240033727739724466017109240317414504217511501280331133451042633527063692667699566458835427053701730730728451724146379701319105443349992810278910190883364824993366538732541569714414668013220808037683323697776270217395639166132511879872862559970932673980377634390858262588184211686826015628912482202188373015488656071578282328848958876212230279878251825098173518596961772414902816461198575691384650035723181623945873869347198387784071891124315857532414565007519388448382845812140841769262782646245248113394244601777080761518604407630691682970802093263234821810889769189405027517963056574984011763878050709016845263948893859912135061389914785041171201215110260571995306724627736784535327953458172888756274665346356299677912212558643970364402343572578442706688943148942244486304183425690115121124950878995301736396658899439722860841188708632652474012998964162679386663480000900715179484468660735612209315549435073461760015247951451303724527052822466075207207960703412462287193311215287552989244800249602343958773070642706524949783785663067489162856748257662167990206690403396116573249465966932152098491432346498281093423493671770863436475441586910619862197698225452204438777646659328376603496054545420080189978087192626311056508721471773983529612320265660543106604362892116762804775401594061307056046111892548822168419468049389839373878782003745479742130114631315165314793291399217974397735158018936315680140540209412224988808529035350654037458509512232470281249717697439174145916489494371181342269519724182982288187157925971491750283831537250622829914696851800899765135094003784494607461527466950615102819522835530289505874433193329426982105834469297194947149638119643302863375691514845287759451599600239730800387562192713700740904235595859585498189730123418579124407352162186116356040735239922637485497053965881698920846262939633243394525754812745885415992394401353342748089503494982852541206422877415966414243711281066948723419711764439217063095019873600719266517640435079183851906743676249829055954281754244000576549559715795154414668828749564326353810326437933449300421601088377960196025316197375016819573158823603683138020559589234816614225290469791477702897948353870002399622180828345021742915978966599976039397903517044457285059006169249681619408650372024359510845825493754336658207692464700015444503681979906605933028280093587137589994761906344808383284431622632188850594781226128766765643094957491927153316697385719180797002574343960957477291986879919247909859953705109738175845513993526703885527934379121604364021047470206822702185864341875233026110515359718873820511730873211512110641859788365555708290291247160317429163493498686747074534971595747481425311806723540391362015327622095531047188596683109284423612657180991141864009127983791288505661492756301635033543660608136925268114587842738021318982585922816717098023383588597186500432931331890282157250527181902168349212203643159777008171618145548786949543780143451739068286112134971286040751140257154989034640864913101622456893719833245686716131204404933602651893528171020563177357513280131074989622816883998564704097753091382431142759049390772310271882646091754184494006351611514079347085923058070016626083147596943016702424379561702710076151117454522842511261054676605090908806686517950361318743732896361951546081603170882208262005925794683558718911045252130351408702395013410423953429665920362119735673992529339446689683566810074439639543978290903110252972487962811375968508537292629951726552694814189444332696464104261258714452409734858706039401275240265505891840308840740598677621173087743673117439505121157160067205603417804357689344997993992535664825757699063353365114482935717458649023848006615713588166983298619863537270017620393420978200781775712457499643066900279964776935517757381505547841275498339183462899029685922239624595598919051217291709222631362509746211839047079344727968842220537805666799210826023682460977488792469702808366286128001331382703531496037156027277321829543777282663355512644534087588586308916529626398136090604652094579203369920002716615578928816685179283716876062199148188622939402883160728310949420004951274403442031496264893056355367018640428236920792202201453204754816103303713908789508246971919477434532790242295182710311807858394220950833798505731241863709272922541080133584023189737059541738776981036435471402599942527495842753554551317372306974306397024926635205728515727823824153427064683191379518212108799935766748589014001782254476746720242246235771139485417938496786422356403003993679866199592606619386705303138052068158479803672440130460082176016958379471102507830162588780694421743090388297577331394483910001369129390476825161111720243499117846339350245802600633671497430669455140977833294273009211547894126307367824854637600613148600213948527755749692190378612945814850953993957972228032648312166767186541578853043967015897936969491275315597953968352315601009149919748025179046318970004529044597760047390836529585677483636725036220805207453763330920580276295294434699858450491589029765345051106639996729965283981731145901494514620038733470943937880513604443277502633530375836254356926456779353961326872881887651627005389604634555927692740588846491397467588228967121687469129159343536291432693397841260561017129360788271646202121434835276215267780940070064742994863383657272548470159674256305133915208766855566941036831715476030544298125456469199622441740583727346300626604944146613734660849758725232871474464756804641233106634739387746883946996082278420799490332594088136414745498493519081626385266747131742903908403524549552422093006963689899624709675834534444280115291924297022733042301700799012280015913863306096753871892271291969261890393009787063090850820851174034143601648833380582449875950021970632349253463303664550605246489888887068092915077237116301313295120817085669484911311050797907776153269467347403245106228591049337603445082645844433968330474076350608610550397937508393528207972350412243025783037954285435476809477249957537311666801637196180373126619235318237161155881571146606654421165476324939312917092675726775510756274338629951797468584386161639823837021970558937676012157795156164169682963743962427144430154370089222024492914579467706304788845026677254128006165792113163312311653274684143629503018895244112700563012918568212678091570714270860459889449983909547446499330634963865907694479699430591492400406842462284365336994030310459421733437416605450604632943916804151019601765479491173554210264024420506646138641581523105963684156188488299893637879177711137452672482496994844094744810644096736383489976073074671393778358085757931234665866219005075580475126830126291136551124521057003644400892768094444395172062461198665598498028754440902014583636354200508004384188392307004983179431287432087464049656156883941113094853601163248756841627184969516034984480238854843311243344195028183972208425041587996734759606748327963740220297000948872619833455871836201384077246726197982063922711824671443160199634039597897195761909275384549283975180294094286149145686450542010860689190142452202142651910501588029952647343381184009901881274660291440525369291158426304645693362141803279636790129533631099342890435398447978261294906148085772786215942103066093773636618070141306400644438750239433663587149217800036176177474878192330463144133328811432145446330593203806290396873764736622574289686157296977178844540890957534881116748630635297955397157917029620221012410138592340659457949812647257142373499199455489414410230678480628237871890120266018815176427286009905465674283383130627369356577490505796888831119002752056534769187938778804137505680281058278323258236381592532426251611081434322352905125012034520028227424254499050935607992922717277754055263080105028373252285835452522947503374887880426309652099410141499588092095982687904873989705661970201013705384347961288831237101913598154967018261156232045067009747642212635574998528977011044139283031784221572531402984848928239193342373002511534795548201098238337611232461157674942524464002218294374117726937376431228436227045840756943830958609718080536422929197545919981044190354356268279696221899879517186261503037449765917659534314703499884912454210698121247573008593484681352690757000333166002045141195987037377701368382379723047620710648222295714634832976459756065585202944753185857581898938825548944596934433991720781867614982294290367220119045138239648484206676105499217947621647110980711640942987917993325610738040799600150759446224108143430855777721165763534390291415257777918822467818395391447468822097491834046440159041658170334660563583850691509185996053013167600906487201266524288964269980742450815828730344856904227332935284178705397950855639826460506712807298098633392766939169686227176418981977769876534199660637837380113566286239279574987189840570384090844645922153312202027275057922048216894554965988609887311970041365482308695749545017151176598668096753553261295369546729501164329918452252080613799660438976220042515538325119076404786661522828617955931799834457794649818569064300732503729264804094385299100183596977587288429402047194262128716816140255624168408367050542129985773121116665538374797313967354513382996964125691028288916078726186007745095105486280055616036081304601527326469169541458689546685129091140529846704253796847538770443199039692439464779579617540419143996248234522246296095669770611574583709134135734039936834050045315601724668795677625920249531044830202829377288001000028990442513983440075949127092954925676299929637753215293053849371695682521942073965674016768180875416826186816088538748376918589498731920515287682527907827778782880981804575806143799593839715693252833031290593036706977516445331195388860580915462427099798476718081994151536713240457887875909871289111689472975610775863413208106834332283142640792009594393060088114685347055235850113119174599658610235929434253456610390760434574793868270745700742942530587742081785657469050932517826643874316182529842662305951679709721871552419412908368365479278867945921733924979650988765983799291519421907851340090332796538758446455600977855871019841845050871299572153523564985641105764121644681583917166950313312097194959587184028006306017145871440278079405825415596120382737578630637910175508500371898712150114390200084034181481987219852291015485437932978434448330985450421110969853540713759306792341206013817658533452109341730092563948851524848191649323190637067333702100304510963591789581014933947152184313648962350794240195043376309157340703832378966231822924200244150983108997381240499098227974754970081366696273021669592214192191814244649616179921041002578076439505052550686983932391385468173147236078343031171286104997264629778955166649483680527992471476155883663905245127055222216132688766222347069215501563103322921297958728463588745755462956045174320106025960411170943921318772244573792521691358455993099180032573964756368414377279700405818724240697419191165323739247798997727218111142099769557448943405244740214524791067214036977953658161627613771468922369008136694162001247552955082298770755485232603158194541387077482252248683692581502562371734755798709288875659755432452628071765148790580594630735044977104351849588357647508453679125566051788927625370183831475028416496074606195981955024695261460230716817275588629429020055203779154193014626855462543127843835666415776892787171305008116397025299376332419174368296111853806518725366424965917983716473832324503636299497144356367674875740701742572598715443806585596243123203606059751382524502997106257031360470562071840270827307344486134831230673776905564138664889105444720278406322218278575407566483474699754357021398921729957249795221273160727578258738721653991877292213444550080352275697547889380920190041138128766824020778473473190741407638710639071932818554847401500190646203120033384365735146856089581803323396206727834494656147676892269786672805001783831598187561120867684547043259251222636693084711610214647560959726336664150258219898530510395830656142854759813268671533691225946796456715577597764155986142653494324177674401185743643338328128931771473112227546084991694898864960271943417353098217155075158909714559098673452930322353166826291761028944680747659311069572101192570646040132008689730108766539221253490350813288449017281416913215595228123631436579585310832352744420226243759917331741976273071073753704064484559004755263119224728474987955043923589472140807545334212464357360886750880745926748151700915480782582900308097137854802874606118451026695699541489702591121934352911444330688964808662110356916845962596414514651099662777796609048712614007399939772937562510435024405198901435124570861646447637782661449248204681165548386712398391095085990069647459081933915566310109883485230811932637516505304830427553486988017916454684902393715173627180602292339902892325512785416693466208963937084294050688960269861030465734545396603875996904906271073395980436285056337909815954831233743423953042369592656187696919660944496538900186127426880760411268252009854426155269231640862001747887823805716339252740134652114141025081844026200282143728971808763393742112810072326280491299913917498049771579160890743004012957830904968200662536104803895625252307367895882085442829651543514869257480114758163390604812376115384900330794729805734007065268970778624429032011111969120733468612528624281072035578007018558368354146649666668581497814606272519925505261645698483211802192482581628703182539955097160776189022821556962366286571928827013587369325831330909217620467617115547800647845107869032408311393406376341233436914720376555211622399342056782868836566987872325916504383997094971211353840758506257503766950939717680845438634485915455872691863525809477002190983495707256354039947444932256487127049019563259760439069876116187112558509061387887103300354317168481871400452357814583229012282776818505371719696434098368052481019686596645710904453373868491266771918394336568693842440703161240154783396967835205707646511003407370903230926897816877373022151021709363276622409769879278106886517017341230065118974607624288144627223334890243697299397017470623259519836150825721914340109841074649550821776357190834636154147389858620575495290144751441167819379714781467701674035930879779820819231287398227060444365223816079601920485960942332028039842215295025061908279770242290407516647514630775119746142995711535093294390258342791558428504392489203692241810271837754786603451549446437343743905294460414386217510523309858612511481827718532147315820824160882845104004095553014115542905476774446653472319035194170704047710305982429685721276738558158723082348278264127325546792285338740003999062722245669691350567125264903427535145442375785865469446366167541889814886931521687802819296684611170116254283897197166007336148621924413306435085621972726062047840772625863029946118857838543491500093826825213320967636457893295256164607617109776716950420000663783064356167371176098349323977991776850457165031414936491651757590799496451723742014633007880308426978185397725182400909035390618040375610197364666048795485332239739945140318689573089321774140932003514970858156060903679747523250389967372421449431138708868888340631826544115805639584645328109734519502150154658836887188461316556817428219440134042317612104945368058896770980693897731257869373584739136798339457566245681039463007477625747402926351725983950316340003321076594961627364276817229647695980001752606532950561955040506864108499464094221892945437862375278628495207892587575834309694274790317505582188790469945357408062280549936959023453668709940037242158346586892891923762138797486156660060275522989745396773124351203324504449748245668490307218072556074072822273993547676004520519781888930118803425376021396785372766852814999524176252904756096275078688380193702672710265648547088394499394725184573927774083380948538390989294006809859201164690394000209774902163790722556502326269166679835920820058382188258215639091534153387325061646579755681170569411624324716855821030657136542758863481548864435497443469791927084270763206429584840556031596303303288962116085218445790885256456155493468290037214807634987008374614224494760330650065098240556941036187666791727159924382512752367701869918284104123721442155896500328979448263878893610828111497612956380811435900609366737293096322541748152365559916040239842788253076061763152764985181770334684521703323707314793911145486193503011863046116663205253725460031687912150604951812317597078340170522969732295814980270053595318817289503035355043923307318852406105675690618719930168034172938294456567850877803288761953675083532464489935612260647928887624102444722626278759498700905981498457925726543947364137329063509404948093313920119313631047007533443308023949194174334086565887210482607903099941634058708716096835093068970169227863810118211391050512746724137597698308541898373093503668263310962435570686847297462920983991659321142244008474767316268202282230174266740400384784577616694171512116007642794413944582171225023993519741920051196494189738091525039080803003025766187656371274093640480680652265571789602808711236139608630350146590254959909096432902679820439188807845312215249451010743325360872971561888353131618589738880846299354891558469510176446766874940374476551897774701192375426610288614584921625782850504108604403921084776165997371945629408760888611338856191415759993535754975651896753776726970796265166665505266314749825866932960775341012621177882924332571759638283097893219768238522743163253499224155475746641023926861318289192500967769968942213398208979946505297432047026144471499734538581209653362660310471869716659371744021201492782542965779601803634317192053743865465382893279669096851365518446702103741271703871116418125430805110160418644034516850192239704665166567707480143941593730026559593241931264566752191227631021668383453944862216001125147363581692010792599637712630252160016513955677817377060342698629174979964027231563531699656418542806375612178053993611935218398995227663123187032125437509227054922895830089999332797144715398102915800396585744707818069480560850938296194656637813454195101392786259292164788523763384894092742175584888469363014192369195572652843437309583970604682823571304472473500585643146836200252992948502780652802657727709771006315330968689586088402445396320145602590446793331591726766666110397445645198740687358004085806749644632395635549439896824788539283375458153390921353582239893157307282462578628241486083122231301258932509207633841309959410845695152873377555202682136500481373991384771050554610817272414483030668872714887363222658536938710089370854379544037374148309352010981667441856358716374466097678195870998604597226839478807833956045571588005365142272659469055058968960861500174824277644244856377018462585176888016372208378383930753043652144116163160060726425783559576038108160186653578194482760939106169474876667020687016992726792747663565564994112417491173772355941073753812518974224054697931504817680945990790076583857997621134749567710469117264349859248866140457302668962660337477416439684376056310395833424520559611929165166397542655807680313753635334457784023087110328874260457703854859127759927144091947065215155664258629140167142858997541017518100757536396344803452925879755054684673733404080983903355622782258495010100261635662390010229025379980042217950944337478890850174450222115261995053446853312202371204780168796276718744245322119443393571480964063854910280698618464713148213614033456642713137628191151799696588827019788499998075447955771508630942425028888995502624643521319122953494626970926089513556138503854217852119538436548603750935420420198364961850025057081690849886121948695723375707012978162355788100866762546291759144960207897027930557064613028209248193455586294542823872216577733073340935533949923843802634101092937805290519367121950324495257318048553326460430984309952227460624292207581813128301274742209408001987266085221759903283633908295151459969010005814937728200314605672603885182638983660667429084107210586571118637072976690998041861681460784768726754395932119105844693092932567707401249040228268859171894277400352837015998898867228127503425240856694852063046711063600433523358622350121293197893874551445761569649470752519169744341243676419374955860436439595154921240254744408107945041965678302663256872604125520122055805845318835050525038652316457012898027091176363320708895193641181720167706904630405767916553539104037272277851613717199010346858537767810250170601326911670218935960616856115064610502500635014635751660208181345593253468120897922058539962036316321311547964129581947697874213038868651331833604653193960161649483076231168192170548678734976608533816660355525604979671415289434341482658545488549541710316953647075427249583667259425192517120271721385188198571541115476409965895540123658013673842923572331914589250802883654486295912849216944259358706448991049812112464428733360147508815346468057583628842802408965845608146076492511600475322741497386466043813653168724283824076246677675858860187885000005989526394703214500719768889240373110638639371110739845615228941243056214101554076592856374037522274734901669700980083869312198392368751043286406035528593118659720040484643627538926212708970095275221336331566055117800905235107672232037036660073765870403514050414335211618640114540647231596285873847439019211486071378091545501447299317613728971616961478833419200963717493333891372152731782228915380011509114678854963153222436130442100018054315631923784171306739274609937915992938643450509853427113936745097047839852736564209188404366524915409076860798405411650633272707255837924689796849515506312992219352159405392303576397430367051295907665732344205741918469488693383583999117388125463919514652537222432915169707810772570359424033178459241385365853199676099162949696345239500165958306148189393322139559604317442558662438804283187761493376685865999933772289857440771314855189730948675187731496825070669162321725123935008920840888911176338217029707629204773220773434064493147864587029179245851452793886162638239641653509931310975160223885090810864760945477298428614345446642478078602079730067977777601105109943253462086962202258987569690407758564520126591249786265127426311558943973064884441988341793941301388573768162574115629990336591851471765349294567681410810394415915839433273932753443433513927184935636376259743591074618849321545308275768997220449509765815145480707976707084820759506116415746544089309658343853521883625517721009529717636363755681169346645421425947467963771702614224859593394024587566011591360319929745443431466640956416988729390394701793243599208296411090552266452827261082388093380083854331809145555766262658187115235702641860924707976665317921949811256149116736849668662882666483185657023211144764326109604237177999209428810542156087508376430389852824463121874295769162357382956227562447097439694620377274366179134030861980230517503241664111683692503761746600916138842391806792815784255525889817173572887489458494778210940181787759175636205491914959153082772603248214480536455501087147039231383550008915978113351815560314686926164446348887905902129047006555327676172648254309027661719108607052664020868187052901115569808059926385401605143379419464668898896468076003083821542119773248651731826287464019892256223592022834584950830874003378097353492097351022298685148818358960269959331004535023253773019319812940281560481811040039403885481477550235584597698934462002324627973859848823811893560767588034020219321699752440717990530652488388375437243893867720316630429097658422354829104258134066225891822840760440427283050061459913159069467674449142792707187315660743324264301095181518392320880104856544822788925592564843358333199688630499442417786626600454479988243574910692211040775391335447188059571169673100728245906372765757472987468040898325555119248686765790120586956018221537097349738262887092239745070943225603959288078667575924243135638558783534411028431541002149933112329304068952558095167460661787939587285629564242769128962317356228258817157619310553802037295076783319583884362974257225097801217835286299480038699520790225700987419700367783090604412265661844484769237438654877903707564602565670044874549859525044965955026907219817403609361014700400082208968426292421383918168522257568221030158036512959558168984625438918138751203415866430681127494799457116378928110361921120879811249256678744981079144386606471515790803123744918152596173607459158160525713311554867203690399188161995706831197835584524840092396206103512064142927715775228852923323913270582361199806118807131239144425451319841393417224425995959071934918420100434113349464594230711924838562903829094516369093445572711374268630013570387291867855594778170332828601674138010607329620290432151024517117461587574452751831352216348507557322727740705110202558623988375027955199587707360116247789558784115649218210940717159552661480192425130398491766411582387656439142235816982882705756149278334811608300330157440324998034960284412566618382721528110445398449437730454572367262901863769194939028955874263808069457101875578626153602288372879530135612299369574439895601685172452970397254670989754786768828295902729502273390939691783936916841616347350286823096201519458379902519913295461180559012253453496581152604018550032397797789803323586543059826809560033918314507602493848361645880074821912921132084076834511395049544857985139196650271926536332066317537770439803423150144745250717099846380234542140154375423131553139585180402263320233833171714364573150375569398064780243017485031103106625293727166042629718807762767327591659744723517816009075142469636801556665190681821115547498546618854006638914587926029905105922355968667738847778976738369098604712247632542346862625087064141758368554654725352763304937531479271597411439487876402004421359768783226674577902239068889469217801784361040324945076711434239752373151772125923845645464586912585234259925405198253257401050254718179478902726253482377651171054850912623701012724212422453844329407940506505227146879740137570001147484790396527969081769338240067619846561058735991674760584220078303982479749371531990110693362298792065123458299369433722125182710466106145457111420245621146387219628668575324777450604492214310197621914455198919033004522874961840624671326591717635281009928135810891757612626615279982813357883212097278709139112157767694001299674292249760437988755990042764223275930649859185412757567186772016849366579546870448626191284326877682870484185877862164363477157794431940883163570048474655973791642306124031848092434056071133077648250473245917426055944683817080658194754725368372070211011772346798352157704302287487116832082531175254333460265432306282775139608818932492704237337394795807072131468017492791290216032502644962045376155076502963542111553183358101162911649168875800119418874050633434224232577882730631819927464778786284372246940642264926216113917864485524611463201733343018849326314111315075353399545725719470687997998357605956456363736711133330246176504886616308147135393250062519800280241786266368160951445784218474053538743870395842942345138416541268415265885190510505425973950144457858477315177446081045335774342916672234652994492189232190451527022182882052043727283380440069415034920187617253559680195808180617037574659162973925667848021721123952230617102864069689717679284429645852790196094060121003010378846620592157122840940604663639378523300489113593875684076199129336056511842336061061744812308887019520385332283302916522915026318538433809131768172619952928598654418821058142792551522476992675727403447818793183985856042510664372248935502542792795426801183211626381362122130069718101050393212750890229814830313696844387448670920752958863178122288671248779106138640879582175925898662723829752463552573498821344728514641674872454626195870128727388397268039450582315708312240239243350912144975664033423205894225988577998597083386109871702229718189365667161791181025630410212342161843563209687666605865559485018918120477653001123331923452866110173220458496217657607849842713712837818230098806827507183731901614338515402391138109755033872972565148349857971650097221061130264142206949030315504929675674780642905310112861624239975631305236986199195855625705235907290477072474654355560178549224913037534314623664329892528401982512520000528840008433281686179277815296059382467408876527671555066699241858840413600068966800870295882328823253984555159319675336468731731911672952614749856837971889752800367801090137580777593778256597865532809281840388567295141303484400420131479260875746005470557856161888182629183361631041305765924240939344176343814741704263965736817008911767140789412474690160432547304544935409001206061564765471440570032865303732337879401893252362306596833213604543182222034496437939407951422891779585336659226818139692922057331157154703235132915524543784650115183962362621542831931525216468291776405791394897974497523949362810666793426171623607713175439564659159434223976614400857291428507306167436768872298575775759931380292528898776483220131902111903194381924244401893834324750563901279519623019273654595634954858971336723593012165680924600964229495462997576638225656203806342834120001837203587786242588694380418002221554031194527132755159444147048012303203715068941208247846516856710708598406578426249128963436912490004713213581541728178105236968641609440395670244194042951797072880504987267827645738793493784643404229312725965216035364619336435899315899274043871388574946306298301615738753226025013260110106183201756185820386772320828339164104083617974557530274966271246711283525871681727054993158114788255937631082093734447622932329086255353688855294946981491547995231322322202178192708877145134520524614378382732923735959887823264524257671808621001066754239020754967068291098362684765213917266774323991854280162831646050044512603250692224237334952583712201634662982848857931263923948154465081085855789326856741089022421758644765775767628017119697953672248658219798746185190104116752254858436139981199753302222908172995037523101173910639415925424401839619266848402227819367387913825391349900906859953291498099379639381098817918102193725390148743963424422042924292904054190077766625518095631237689945140145404500452481920283546512658460672011636173176786703705679421274938060700181237620475703533521252357099275176766231162870910180562318780898262390738958696888062192303180144343206960649316685088165349369441996193070304606105786859933202627453350883080099050687596775291175042768254243692614636089503776435143322595246965389575311165285489538248980450413579830586987985468568632649847709698653968991823269683897968293925216107552866733708429012509553136111919448860718932111372311090151292946352934116933232861354249381638463279723133871336323746830379635118865402236392890857427024639596779648507862303765047322512967103421342414633300336452538673048866265978226760179058274279513636161540369192181096013521519835577075529402618351686230382061479920061521228322424282824035458511641187053977256146229198887174029118701502727643901402645288206576044077919996044566363001794619840878846640010741327129074295185673279147999699904669871007102170488243845077429770769959498927859923449756305769022962544238058686399341608393733492476709982609192084031609431393412567944548562597652766432912143437730150937788896906565283608791047450983771114598723442829748490056977884554518129896560813657428889643872076238412616566185619956933237624881564140742562486356273593356133104628119880304379434069075059411796670066560591342417275609793537323419829006147284157837714799845802135612130302115514998541847663718351257515794821623229803504140010194235402443975794022587842151438983431284464795320777966537353231509455723205435093448283075965218398853581014655920149170523346907957979556103516738563728273748761075892364690244094312927200443957366045006223292847384716725187855957226052968903004850518589847831642829985835543645636997647949812296752148224430407470766703100995083067355148170578561402826134398179701772999565618577243457972204753373223534376669740236039420707813809718189859711714454482152275378738599831097123578302022559964229633491049588281272461965777578609973264342311824942028439697138670550561173892710492045068624900339943496862604939051641886773316851111968022654899862634520480883850695279757903690486195422599243879820898839930087667758434776457741985168262265525361669050611324876430554175370787679652614250747788898558196425253843992367711560513472998947885877990756781528053251513648818947496097095219948540062146329511058196641617655396094924781055658549400710835289093463973263480441001029564804472509152044616408375337110883465731104675059806669893556853057243098416745752102736682902213120339625968347265974332763907138368123288325370839674120090111918763478588277406315941179723201983960517047605001341231257402024879545673180821240905820494949850887002038762248045431226731024048408806941097561932021928034105838222854613905284767402932549628413501152196233009695070100392735740698334729419857653506417971107454432198043649203138349755443854322622858288166018770290025916705356896423643612665375718538901064499299033525849085213132827185046590774243315633679173043605773273754264054338870973581949973608336896744693320458822384151823860117592788579569661470430314602413806258324529554776759182605333604786995293771221526811929220335774478110840353895895931513020595575520630932341714549869719409807808775991792396609151541013591248189059719114107253313167660034193865561689688346231973929917632622994827429979566096509503501770353480684116871876792002490998521629446395855357514998768786963379362196007996006183046302068080841169027811608748791680906728877001543913534569819233703100454404838159660562005344195274740540417958954186534950566662397018502704647825414304685141679687114064295958052215864703102976505763200271179655164780131654248764685379914811429804347884693365480163932152895830210506928581316574990691534153534058222621613286877383048101958157522264687793601439241838046000525974763642465401921714285478994283805574371371565121368640821638006764591195722001104438063846813252343785520940726470194413272717237126409570992723270362863028883044578086073529605364353600277081442600966663916649025258513639495468460520365507737022777251693086226330915878682008996533381158707727581647850072555311711770017669145440547736978258467311710882993065892187817502818537344754386013991100126267121181624273687738522408342163823720173517822257096640514315461733962376602732813066440502010814241968820055804630726300036824957369218342662071082119872058791792469910587363759067372909272594670161502165642751914813631967080924229865768328914561364756442756775576689422750927439273987943827758447103349503928089518541876729492751263845762187810193654250992762691874593826768649673107723258712356090241590169157299505492158389044097631303031569420464265729544340640115801525970698828364584230337902012435478536505007868537690147779724192278685272354832523296735657327129670249696605182224943390044001727343012839539647503019469983944295443491318283204469102969140480646809708879393836863909293451104633013033298182796020071233591657639790975691106525895488373248753502959116148912192542289674138600252895237950903636787745358365346013077360577819589816678691060102592532221422279928333810817989710545698893340825765521309019261572344773749102689689024959437297768545094065118790934093467462952691422137000764516997264365337915609532093958910878008446548668572432361079228237337456937961034128097311651161959723060123282890926791808505516076727945892015483735036401400069742260528462177019300013419592623705212157051867126154156256168271781857856984628709426867262241431287980282914723673227899926488592675726798966909318692492030802053244936689132452549429368013952960473800512298741088087700896425200540041631799717048914611676689038793636899081026355323190883712274686498056969069439064710846493338150886915369927471190639776435895555526479944528873508146431880428547866236377145976450385114003321729110028887119056877945031559390049813243168476108715416067678059395589427391166913283087965221074902272774713033482922253669696823294699731176628040038424918397139839098174410233363638859058027715113877470424879956176064146539033389648499667054020886760131802854668813899798360550544722594977593485673625675607461334008821347713668981461318735131791159262809036888751479879282404897950035872446054705371559683380670716844527082612046097124151578105064004560783423814430435229121840756736985928750893941621548725375093151159649002728474647432359023908062782259849965756176229548941230505291155759329995386751010334675409253340787564600777357691417755908308534042996443392172726523888316573213496013799692915107272724140541205567109351580148060647764528868129954964797231514366418221179527221535088329590193732346393580661386580686147302364610443616871210954721626325817319776934340695651774055738514844459174561175237823264075337691167349829262262931786563273560517470563248234347058358309509349384574673960796473578602033582143565622356057738720912919971442901718900956672455833344402398201928502234893912149565902872492431406521443193250966350253714443005592132706526786423352182482654177258964769533701626033136891617689697335119154815468023590944086093143399983291483567430176527114835241214295723738224516540869600793014491365504538123207272102043749553413029757548668148704996038865797165840448589709370620540513859785158010498409740976439961914284037594046953401800917365666612972953635134267493513591092913771508944011606905404666779382337108105534580177155492974868378812402705634745765168307864040473211881024030190257886189694748181748044804965519512974646161303025399230200115870857146487359871963717497999477142226725011734289199983662053038677787600203522650413642565732285375192779302977070913863957949232717808741731773990252901801454401805808524989296557057357414931543932939191779727611068745089225313203048202897282551606680718358279352041703278759196406866977580846561192231626180847937096341613676265722010629180265362619275546391954675840095806519590540183469976838666374422849432545603159729866265059920449769518402847823590957445285329323856992314683147441191741891218492498366063156528707725148428149154383829167647673092509327094527315223931899784901289910627110820187745057329959277225016006384402921827989821794167974705491968642944430557172446998707506334115266009539903453402442354603867974128583239105898311490018893467497519663134783235781638392129425643785518842777694995062113416950430947515798514405660811697543042013260041406366759659791131372134267460496351214662991921757386408481613140316126087428725420129947580402158973522661039462824067049726898988307270896716288411871882200065859155551597371683903671754991263755923309674385670603435213801113870795416653524991170511481677689777499528454208502672158055080367856636087580709546617671670989831900351670217977136637681844983885656536203024643926947868673094581341353171608900414561337051596432261646566716115294991423669112241515778448021573447722354892786793165393176527459957439922728762250149217666754668328393934710343031613787174875022148426729534578359310802432578349005880814101458495202251103791147231215641924772996642647940397571686628923042227351955687522934350223720649232180676884246339582773391051531302218031664238762557925926143808755405420246551330026065482860940195184695219059430584269795248959384479279470803699372553911607124609152363262047955240390048186174148105626709602197980042632468804096027993194504951626482855014267744626115819378880633555206549185035221170901569228077260423732021713758379017108373538508246372950404499134339061032142023157162528330421856425786209084945907859189507449682122030631267966387543492301028165607449760342085109084695795124658375750477347336333457943083182153371436948231356134890714268445194714871907996229679576193958248563283869974699641053037174333713168106797188267916360922688227320642996659663608964473459738947950852980851939624730133062066686427211790158908328087667944528229591124103326520105752862156234446804484916384017850255150090927159537132865747228050843901709582709208912290522893886574741009991916901921007415846536675935559070395957693791514081909954282853063709793859257601965559946241874023040219399261803848605705053470137246152590923800557166924248365450815756846914525075334263898209210116627896849788152078520653353929105492407925583644054067561220222667419386289732481410332437818881933047164557082250551713089927725453097765865187398114479758259141509964337415690920901932225706453304317662152061955049163939925301712295155321036220406089134671156404729810388497910130477115012233395578380434929142656864526637518548874874781401250532915123969332508225597172231488823491709946484879919639408807171806204781346176354686801667189420426447097443914297540912853723690712210079705938024618102460610839589781192389792325534057306343739449483007644769457722565116973173952341071208103307165262694903457692096294186196691743355883735746271424504134420818556282396370384247536713919387144223360188779766795195083985985127858400978795733793172639394643782065992846194393564086571173850254506863007352710591857096726314802055412024159124730958574198391294437638522917306558138634931537679762058753422562451637965222210984838985862420213471631597304016226530997421324836047395116394882291572052844326053936254873487486717096940286664204092278166327782263001190866978372839860253514926544227875006772308809807318004827805109013370788503676522710522007872949676427863211984690143518036429476861466384026530761585188884815781050829241860334496402346372892042804453171434857477346129175524386633154607628276852150019265353853132478383498426999708665130479669989143150431510213788625922343108660944966912130758636661512234513949147771164655535840761337692961222098700811830397072909913896770020876438417253351706357187045346424043172417804570908388365030768544058342367533907362681001967380384713635403593119394671514229618604141123455304664948128809045988377252980649287575831483698898158496397380684217092452073242039630573566940347630799971614437049914404341614574292782431497737270415181281629180163282069345438352438949084247366947544692130613586337864675862354333543005385441518774631691178426205716080557293861696071969003729890917798164961063173684460897583556881203627940172516777112761775529049828769469407771276343722972898455806796485486082516625646871838046780924430351446731913780991457768432773394240434553073977771724423755307723622975849634682356480610133511260636595323032797841682760361532693158471319313620804138842424605936102061777720509552244859158420002205330780560278216338136685945860588085891601963956723753976427343170872696030069259639607248570653204134457173562444387711437817393867963535596474497384781076894052423862850095984888283736224491024642080916932310597035543713278631003633675078092067522730817641152277744466106305726061770798974943380397896883046403607901238739144123156785805943427828890127796461657681952223892027708053258375929617154759731536346895964600048110505175149788764994543245313117094734126472613493400950639610410324006799594529164892300999898872760277047962224533263442290227573607673096469623205406014543390818967871746629903176963367671358712662718508163402871348623718323348668671263654808606617468937853614421059871013761773988291729811298544517887962747068730941821572706617501683723768790331737232045001864327908774523231537514013839776914531933506737184829819465385609723478599879410816470909945897209254096205733708563972345480049512092852037940248217913547074374366024449138902475044643544295024971582370060867119691377573859917979830094421574235550205594202848566930359284608394605433676061234369628225392113196396290661480488314196058058463019087967953541411053208152510706659434986973064243722295608457279099436842255907791905812458568615616997987537756887511528160653078509987263845923169420906460038715756368371104912278668269583131531608056603851486247740449118403995693752695738417379411539516194709641779440699439361056041173892383940544461026315117647747980676186010705634614551445964456688105580415622017846853606792553168904172783125850912852870931321120825017510175887450798381434705538867223307441060086647569776147776704251647814355422814741580426056622368409474888620030712323962668716990114791344390960524577576583391995616217805617207598499831352519951496410165357510329538492762230663700886461532077423844401123234943735604442134743562854758379986249136559761898825135841334121467622591141170114872554893639135277753068782801363114044830916419251880145904480846873469644289978071503150190630070320479436988461974025710046628246049429856731612980154338303156933663018827386649424756409392392076317924688912010582419503240111396104185447672176770899153034622110175247918240228532138019453758824734734496715670653176295250536254683096407434486384502719446308218629623291363788567422654459843891210979363104615333935039890577271709421288163416100216794101562191553023930539378596659368701752486700025279262292989486117843183766705144852510678458314309354818062570631718373777940256649140023419954481185474048834233640574804477265380141015836910893741082047777414349915345605486675507173441396824752849553313624954971711445628104573678383559872507699738775199523546889564217960818768516360865298601647228168794351471272431422733528270680339951276293281119108029788786432183958982967687104912431063251594792661030249588029078162825665749195254034350829348203496139608387706110364134645950387702823569709295188542115962658493321906143356433789262507316826946864383742354987705712872534987736057221672144549597895724023735815732616362849661195101336518716720149440884891659909785228467514488692869841761714328249040344957690986232480869991822064271844053339283013985161030388769051971744495708955079180669205040332126028475022927610336792580922726773354980877651465070909744232578282808970815593591076869047305967076204240281229555089913101532428087415611384661940509967339666704018591928787061184228093623680204161077210703536459460098299192739020844440685792851652811645945929665629355913749938146760229420378301742644835042833028722160580804251412831323234004808846526228037924129951791244819522136267742610921930329872648096221761191535528737435776737174433245252280659178062125196228129154529305330982422973684923069645988441684570268190152335422624605283162279378280983276600002599048741942030423088665360241791619239297066728702582965104142290527018844691216856248929975425171184556351552653049536509299171895954490801714100417275461015971125848104188367352978099433697314934626855639611234096270745930261030436208845992809587943416317784422366429834868087965505681216500975005962830681011559181541577968589137763573919033316815018208155707619029284087099087035942282228867705239592868402102385654707619518816644410369317919280121921781054410332487787745118893076522096414949438876083746286737728604569572622318558953576187032101104746585181636283930209934251898587610637752035514702831735471372412628724766745969731306890147653130848534678875144682706937492984173093083970332512974496635667839730900713700919104508823663433308252601433562505287224747341043634753413729993811143730550588352586646381858966731736964552006775302275406688458308255209052720188997722607777782645771562311469921845217326387192996197633362167916778620071550729685178017567764393626012018782152312010284618902478021744539840496124552960155245337270622470227072069483624977117943307060463615120093768061137914863616651655066789190763994357408992223069309280035473771404168961480004275478951520325464326153029121381730685180660624815056711649226980293109237669656329425736266926264049868286180695140667411710981113066186307171268119531396834643621244504267525908341762099717159549357204955477732510357233635559559599644706168006727504305001810682186677481970592471165650166026763478116120675541540075248126612267946045165138656294360498979215310794592820443975892771834897927389412744560810984495430831660953873373031957543498252334485682540991328767830725966550417747335602449117458303991378899449538419502543992284850396099663436907137348777292330424717412732956842592503974727830274857605843118769856695668681741568186573294191088408209904807255032822121600123685953469245654333810139058687761432851879112315926596715827778859306048040754324435772828395775984460197205386804138761309971442340068764260157511446037278618959692864360524349768185439985690450231208400904635581124688145619682828061647634153228712634188068121643478973518383333649658142641625589813512781882504457112419630063122434510441483125058976803066744166409386108220008098602061344952582646140174334692565757253088494385299684374935918731229525522508247874072658684908616707527609130123528733127736167745753045167013981117782459581782029163010798169762796023696598472624238466191602376814968186467531160095052125922233539919234334540224117565301247373480396147162339173502987662202719203085325602375450518816566630703696350348559302026650416685661905376547598269217658291328458526483049376794016875569402471891076252464534407070873653449784632089509410303205943336908681739223345126123834732516154770169806982911876609303902368488702642484155995015422924790552488327576745823284006203282702934817457116512762687553587884349641942181274862218802783740280171695309860800289595794919984953017716409136393801106476937292995963087354590903722505661771146385645770197564973331206691409925020396143727241004482580143663683221301706255727825609878847863449211714939510564720806227911481034410261066255671838378074523124074371045696248569828317976632697112927384018555018240144097827836374473591072498090475721534333746042828395627565767473046866536781155981861608011419907259792687861964160390999994433798731572445112592847202920324561007786859119745949870784751856798074669301197408494616253681815947812457574871825334634748733639948255083786225474151142149491865700151145052539825277459120294968314246955987993727156401627492703037199547293895099748525605377524500566286868762478796582338784025146230324814319951106858826228807926304920455665875449760855140824787436909769143505593031747405816134383842256461337740351530629448386302923780170461125072226240662143783828205380994095844738515550792188590323858091273523575228897229359390679839835812629320660924639479826966694974788102554247172165264918070889556640871375084857773881636815568652539234664553040291025521376286487991997454095905471915993450180304236907793303250756912128789205096620334767201504479298574612320850404554367407484194583963980060448000370891208861080700000303410878044393636392590094347339584203100447039519087343998100634526518010082762702969110617057527500834510871870055587788793529928441900543433481879551932848225107935225784368766702527570647164488576087493289878619271814647891165663991844560511137480238057436215523972769035871386228332464290317628558058691551223637068467935044305759391771533873407862167968760707886027474070477544854902101286761412041328300564382538369651839481827660106151121074234293200030459599318221791383363344991324266147920176599045719021978229236678934341288931602419501403816388947083019570338000633077727178862474919262179081496588466777321970421016159909563953379198794887812852630014184782070968790417082531822712659054866166284047535996903566845511431368203298660474430341949961545710360955297341993007873119196593294175612004344713957206818846176533855055361758684035486555319272656335716287982978532787674942181890626393535138314554508926237358994981107809900040082513314480075080200929073011403145032412654121768348808901795411030614777793530475225498756276449624704939215733343505416018020260855608482562228075569277550075149044336410356231625899560939307208230010905621684917985755761302483561825728956494514025277249041147774631969852601465123585997265174961390254693928293089376189406802239260404798806823825800485588960656543504208037159407464014019832653815477741084897576841730494295531372232532102393957018184945721341217636660749231665961958297764596500780455765280336174075793816363027433303801204672377599911941265184667094464041559258446316490299738160895822799743438501569060966394258423541011387086475256316303878400480241877661186181421392271118009286942731653985696052822266341559024696362350046815376793041237738327117987603458042284406589281330353523883063844043867860104833956698208204284042532228293074184027915855107347676097406454386559805672578794485147334324925185995406930434566641308633428822694937102176267110870721608993997024341686342633963517861675770419865684862224433487372547647809383314418060881946193794992707768336356527798612692415313326474260587634376852529101648933547294906476343687092698219492289764327608487267139054096402699798154346171357163017842638255203537749937062496281647712202510415588721461957560919978757721613905819946683147151191308973568007431422847716399434814598253153087735502738869919249896808995851590970143267045405500320608170492279173821671177778160305284210837310123592530487154576971636808714723793157789264716350708384156136043313659169620322564020715996716290396248895736412843864538794252204501015467218212012927671374505298344310011624808051166089329786465148846755329137435061086924905823559498670978254961868097190999442659530384213451058689268061910196766181892509105886066548696882465326568280414148549239345568441301512774298830603570828628407569664394173180214261569684804688960269895071977207464221629047564242311880218395949575215212812296483455265450184868498786024856076592379686116705385908183285185564085118254201314171828855769435090230386765388523716724733219752279756522625544382203090742417658952946230222311201202598406983717488032470954402959651957881070598755025665615872773612837150490764417374573151808841621446210406720001558801194470738541786775024076926662658451161281953757136555844776570248677933593827355306653569263813838592916885019525513159419889595858018221357242692058955865077452634391380615952690788403300394711755579122629748754684451616274593677212002570731212319940271616976967385534798234337981560024347053044756337499717555312286983112386778491321836590608274750105235843864398835067486267263108199743801563377484421704334308231462581983233851721720475622369259279304587636590502220009594080292049139325057533719780753023261542126459147132572039720057528868731882617787104351764251979571853325734230075362888572273693461340117917177204983418527115460180435067634301710777838627391534756609897251347130778336217375767115432130769946529505491242087970148889222879829164869324087092337891906137335820553090720457491504111635092372487539377861822503356285155602150072310355005118058877270221376297942572214661648701020598673508171529915252868734915493273940667175825006232811109120603002770596039762080047080692650231470371636975256929990805756484034657668369049047065695855834629128691617424450398357069230992843810656410678278702381330301719556792927991487407509558606082318249366103731514893786842024752754857427196152627785909618012057966247745316882045518520217420629192458492465193153199478968242949392906637179250396121160246486401540947239910968372687621083583306315528433098443040306929861774291188464966704844127485261959212918966657474278756490446766814578836696917551145121356203463863895588812374168501234120703031794335586960215240984492568272662443314963332227829548052488391235099385653236447711583253184956689176119476203436848689024393639084828530481506546706112146631931402569889527774643258784814912060427920313663130951099973051548849797763973304179781422035995115710391352843463729617916382415264705838449721397597721552192444814539128914082009302096245407478707747290627123771158658576198690955348933072688706368363401418663282906272088785437108512715421809615718213563251370210260182454919010398109449428229436879346961554074310113783677631552165309210571655313874542495550736380762830019708084251715807647623540047214118586719343849399076794010457528088901969620578765801572119125908137403398566719294896670565119096876619701453734070340134296098601519931399027334100005227624649328095251249864429853743422781999660990077494022670965762792849785716799095139353881270710799211242874841764206952535067893210908522056573950087766267001427081057553542417906550123372295268276787661120423833203229868144260520040031435557620081430552822698419415201451925580651739198247983266682870293514057727189110913335919033273734376832800130918566584640735576709546413165068148407985542127770628461430201201933240590239125023099749145278857308737276170849756217490373958804385947173841066786420311972192897921780375259179779298469519578130998936271939236575618736107938388214307368598879257204943733287977852814474417831019108169115152110464143590730111770329051686109816175544119510226735233939406945422172000335238034494856519688715556986168440068209879951804155309278405825221748335369117875706498666942001039595640170913388827579758825289313315297035009766854196450474934558618413079249123863909563990184398362258437651393261371634573779556390241203151564106347006782866907789735471304992479270693719793497422772114722720736235739912257656428596600335193350482883591467381275947995614770467716741852099741410516523566049560390052592056078370867958094461423682954506620763785980567026297191434636571330851202788061119401919611506311651373572167003671746662686495348297368665554050061444425713946020324057885630157009508856151904348135387340807453501562022248275247455176451990379826062777629952836954791881711810579436181596226645559461570515303191158529304225932255794157799832155253695134552637802803478278178079127014693220079777438010499409469400745354925745044174624455367222571755833955426315515281057290289182091917751507486922668127360456857144810634655414530545136008376295844751410884178312927330977256524542002743319712726165799672187625222737705557389675398821539121038661680396597669629740929630900020988747095923524610115567303770921131538684422011595791749903714777333482304644582025568116482225847052162463346617420728459502144694562009586827138855677239645935254333361051063621792043838839026215003714764397511442357331456896798963430934469610637070922748355142025046524650614038393422324924364223382784071695298271289666964505824550715339305957021328289856203203793907026075008901982500083095184619992723693160110468851436976575911707796725701226803333610824157475576477147057398703184290796649553291495595587499367201981725282766236082754169110875562095835654957358882728473879174211423644713136560188943074294689956216740023447988002268001392457493969936078896998972452904768538771574024749849782236092526775436273356910810034567629328586206060683501586782270931292093571159422779438876502230149643861276284978572088536791343479246051685791520239396274707143155287939119609469666075604585688301487243504598907762152727334907579632560771736340693845276812915876388057660309012588619764013978553836588925165612643604013347930106901709084853912230198042830222617932485156418529746416520854401380397674105309216268137419163423296162731254547797560128406097293792307289303385048081962664115764089899345744893418721520340614098452829888969043025018710908946906771779819321025296738418714236314807646887151923011328374087782626997509099825524418140915966673039207295947516672557212780646633807897662990966475289365827913544057581088888271467596608759225362726220509011752513906236025236750629008091628592678827364416953137840516039500427971254168068109485141014135839602618176854823109546361775512568411724993857255389720859622249317237743901543246819897687440134817047150988361426943212401501172058808202612218928222464500979864612134227378808681395802028208026579561916401958266710079930825368697293726018110795979847888999253104134781203767047553634886630441460888765672446526824319205517072757682781563613306658563297848705520522458925778383497335562291667563169530559886951932563569997191442206299643047817332542273763679581254770314139196316460233122041925870843541484608945491908449304115037187476522968928915412075513262711767954868603733795246177480660855645704820867623985804160753401062833856166530232308284821509810616734973983343904456053363323963439159417063726960870121416675205133168998421609268131192273310462178183129783302680549210032358397982344952756161418160818995242622694393889091414249113038984743531331081024802666228629269259473493228986357860425334997897640076378657371705855590952656674654413179938190606808567506141962449851289004648785335993404273660612881707742467693338984864135933289422473336965329601200952603012038947339664228387920083285624531738227211476384119160125621595581637487835274334565001089015035591859155779225564012626865103705029258567302107609273698298678680380375718650195037143361681939294496417856478273242893489089311329830857365700567570475876672986357328455998486607913142886125033643886937848769440016579158233163836620537980012901401840089407889270298381534259177411532758129291851010401541176461135539182515465845590133608889452981416531490910977244192278879400609395642878384679895785463980293509083390490633340721129748541347490434096853003963785409350461470010501503092433543021849099621275696847185400851196200391315016296049269781883238601634866144922103962550955113427456872514107090171691098776219879972763018786824226595744912127092303327735006686746317900803542867466004322475191875232974997609347990783284980123363388869955005816527578535518220122484762521996405949828194661253404865748983348337473010744323556628772249079517116866509972620975026569188866528480254139048618562080793252910642309957726025521020689572731814455846802778884339568775179814849064932459623772877753991547741145541404066600408832487169494859407621146791790492507017072656160787952458542051246957871271684691375288215426430114395962776545723572874398729237088446420385932409947051184980584321390662535635741439608018124681487013487002105850903344817023162798949944215343838841326701278624651910409706226916285448055148928618630083195244899033954763471937169228850974774013821489191969819161500210109442380363374128570127187399493407583469815820588050700786553518021520728551156722354703448605397562425531832432154067954367038290506088741029806644139335475686543643027257639847923118831187419316456274354666458820863131480931586015377032735163921623648142051761069734478737631032815434469603859547364513384301567192790623882878422538952328981492640987378309093398321961425061746210801336124649189695484148848477337871391602883262445937771254447766674775773342137571735760098754528599442348342368452181907172203107114216654678542173385662916844271168338444908902832312338934669548962649481670857464606285050311806541670012874758371943262186110105815238040627482058612059814540920577464710460467864559287942959873832137063444449507580669263181428371991138885492265167041442312831009639393426755259593259082188026136226161066683081779005911299816869270141078452915199787246550790109483423208687282768259608178348360720635968901634694984992459149547119106943606193834308164356143017553097403229057757879640822593982072291711680283414066627494400029319097367386541496516394383672233110649170140512289500175299468447827992157544420041566599490773456462791649545761568201826603378736271844550543753167391815673286259280775180322433029730203734543812602424474833379341239017577418674685366128865304883609143583443658840906691172755226846440145931036288760118083279147524133454505336383608987881846448563893874944956029406177023794664873187350843992634707056032572273156075913623219416370727973714480466830273981542013985939269624714631242410231591791054203123046954569638065080041479451211310812974287027775925662985484607237919198260816315240290054355945365584185610749839607754404999079164611150682018813595692073077549587469598336200147184233866850972689305133216643061664158767935318923973538639898141541252293070753533075699338375488642301478460166516061308268223111578483916626292199512929946684735798194286934320452992805777289555145685242486982718697100389932615375198428048423443497359270395535076979457550288810690782412249965436948631011732126559707011988371962431893922279170004071416807473955190172927609263434213679805491571343003139152990867468060754769270523482733999163984905156916351076388499006648383592979616470651618164286917388773578228592437768156719683976407277143365204042818126385228991683510679958729932475246237943216399037955930255444918889584815402080011214098248531081751185678033398175577003700207824648000551623291740793555078977252799620531697684338925468316129504162502035370426655303992116634000041347948154055341693078410515221565854048873442361522431836789773453366704186539200495624463064401993299927273013539478005447773745168417990217881826113776086995458440891420963139954155697447403463102984389991678801013918766990557246505113417875464046807816666241128385049180455469407412439108101242198979858070423916163428708627868428747911173322059512849048523624692391991430159414292785361104628494798596156372869739474541719156030757503574948020982846994985137052470841617436135254996257987342460032245536030421809455944408325918611659302703873067034273331052396703891995009976101866174363684026333514386690842337205101800896946334294072851404023740872248039029476863147695659336341754611501315062315157258222689512874370098153088031879906828101083713778095690429060538029037811071650081442744807131698955234949828318447792664948358036604767182395331227532243197185900326598586953396542054050377279452369581196944965845443530622106284810207304780839861274688563253502536461873420166207364300882379790350995147588062086116901414310020056284849983039184244979667873904526183673863051404972180244500656522622762680493350681714041247601426855850425752399110848607529029550012347411182246909784233505815040935183539626116556929970659112158776072084162496880035629125903299694376173207340657562710324371529584979151077580724131188220742422329799102697413984399014874857885864765675677082131009697957042937735168238790499576801481037672648483250803303825095854253062936365078349067590310082670792161644132021772791545773302737609464248881340259273617017399213534107288204786197063710996023140778997242542496546853122515530743140942304624395546326639211805292719268114981806478075117418959487939159294557883692386928728499824919917822169588529305229197646852289658101234383903696931187286099845529992624919217220787862825605558193653956911726827158774291090347787737682619818651297020809871584487038580072842859347039167532638548582553699448279795037189771265601367276710401148259300637399197144290110809421834072444098822367523459429237841882836590472187947655303258305044489433643503172726755481489251980943045325954440448439274172911199061797201730983951194311594590121513827774818055853891053367791729669777576526612068542298402061268466952318561300261647248856798439239537278861030299354216002944519606424264118393776399310126016159066579627465342629776618644875204422650935675485005420522720774101500838667919967001963899692953145928407863566625789159547310172591979550747908806736995859863980429669933631289030059598148143037545079739325241438101138047549183731230860838352558783536100124725747781849151431483316650961297562538897905471378365138434661710011215209576989089293924298567668865551351274223603624578235433503876227984516434022481429837958291285287785710587726309271080056959446380517541300696345798277859900518564252218746916515103103247798581062588071168496519460437564310253062464448378378099225654667772936889497403790636001146901790462225756634187493142194143666314058202049089958149425561209884013717340894800062459610598161509897214961735970174556893576959911315008555017821911610762253634746041030294020916613015308351524241737835600802715001315870185549189785080736043356232400699827864195591210901506917209199718127869518903751050483493559461804655024107985686695032036259294116198039051864818989192100185987892483641271596514604322993256080833409087570843057977607897438225735260683550493006714705221174902543221976806634529588420833900371273033244978546086488099475793782841885096371131264436522417081807604758334170051761191775766601204095542217218078829727705346652279658330591793750783645181357434684785574739135479758312923505583193856609780837863512926213178087626121016860165526519145971722853483704370453314838693389938716087281187840128597822960352007838025825321925828075424615822315591221983102882272836805445329342360780782222036977343379489448148087554745977915949801882389530484729999178350318219541334592835981649475223828244975637335026117824750929104653644137820157788729633164392038772471322140628881831445729789977492097347918233576848775588585058731523752311223771201270790931337568131058345888152449743461935799043168395052246328979597629415694033230509576584845759342896115669811100223396749342190809900319299433079259793853921028744926097959285887353614554598499951158720047838673953621315068412447207253699830282928330407561736274263625271774269795247864354890003386577675411978997491786852745829706484726422521533163615208274973054893804219817555368185839682940306712699916944818618126023745497022698292801067729580227948214927716855456560347950692020703202676299254488456603479970989969131268582098619336609880220578518655384225897347224061584815175588237152552575187096937075666568585571313742105635951482835398440858924959014097910607908720216982367349030857777072933512619985675462613178826198850063057712836974355399413738643573695592455391670335943765347995791933303784840507550613398443183867854506455191466859298709070983086501737154797255490357905458859500100854486372047472275427438999002600635445801690446175449384197156527257510831904992704287182079574199538287997170409207233005452444676153514937135659617610381867540925421593641589549181523033842519881073102967711794114045017895947708009619798183650924781382970855392690190156122225205951586442219224053984065828447739036151267957272006626481437137158050543716861617020829862623275207240876081397534695984280787396673731241365347436950708316075819527569019070131547175340605672988241146684397063070652205402888163850384610482912317014622794478913499065577659133826871655858501202013677041706303787343187836117076674293075666392493651458617880717696350191214057535866398244822786422617952163988449686524511709222873571366419251366405855600143307970450224533035888149814246248931877433997683020441716780498117636783142458906581273151336767494749666625745559621733761361747311439285595582353905974609612796438208538224427641565795784558189416353501244935240010791749210688776310830632368126594659850491173666679486210252470346591993244820963900765184805489009715170812846814050577766609717786649747978991332054289283185060085621266466659330585323708881369116145474919901274284724834896309921616403506115439085200493759580002562202761278433135693136918778120514954974081843693750188062774392416765491378230221153994123403656062344480982933384250424626466706833969125970593310268314300276048201129778834158329562619827839048635950292887420020407181936294255984472688676609862095744817049101017428500113219318972889115956473259849932994559730706474392578499709922343756209057883584716174550708753354385434293890997012966067834539586764591008422229579359646128227154384058020637818219460819386860442070612178977282376673060232451065715808199716978002861523907450054277296931585883006986067479509004317309612916499632311251278606820703821541286633524732859511157830431315942314965784778238130544999287541952960377925782723891499328513058335439045548182570093849704409558864290468618001499612169733151320455925459069984449513652495360036604719399183023503814807577930952779189671524933761776015862728666880382642750038234314202817141071017771849415177603196822574512723378803709905161345075057926361189385422245958523493248722237884265205552470743495474837945572544427409320587800845629221145008225900353306751481472635789052034882342206940566737077466534397808396432700918648534902302856712157030426372602286935766751081136220146101704063305423464272934992752552200550339281798674433950173523926511970719462306641904516665913676097309995395661659020212028338796881966994867319691199699544502352951817505639273729976551833274567146102605090967736914820781872943556807464666194640052254861859996304527663407754874436998367301647567535897184789334977233820842405150193118892895242552128839685576086516887103395836027926741443273686952127619834272584866282845226906014345792999444241152423609571978155263176709900680146611211271834288544323019700563521738045876550215720805039334768392990403630810046606517484945710268365490894790868114916916206018905127552504263694524352163155420908689201875287240356216630193982635946349016769767731628558993368202349568034415433442795559072325824341888051924063227405850138887584863433610436390257365293418088692192084730514346899789072598458898567433431066682024003883600613071847830381824565179918038530397736579308410259745391217075003786169286426482587209365822904333723050495532345024043723375549444337538266833131710144244165498270608115396726881772407753478229670569639790122235748933216119244531121525209157833723829408004686624398908910133337291507227608324204182891954010157749512105945080534424283537288325461323041111480531106209799469020674965345772194143143703400751355983523271338626063957421629582340524244377168099794977925980891980974131602714512361804712853736875062329587463763845336378369145792414737534923226341134903556009743202416703779149071169743416255819844849998125114181759763020510094478911469009329090186296005345894378177330593846955547788389284482796553533226349382340749925567817038286362806395591763338079398708704172965815789876463683289684504218738726468985123375652809829309466345630048026248324464034898974318490129200105556474074496523971129903866578516291544786663505290134672861334830888449858517055974136665170807600810995629216489000344331419010123938090872165382564178877652696542573397656780208458164787867304592804233197620668664850702391677351886069559471370263480617692644568186406512636996826833842564220694507147627456779598786171997315385566099530195844939818054397692851812869578235559910150502008619164967090853803019184313071302993025709421135254804641721804945280954275514339148415530561381132923025798531646264358396976679152823702394209381453478162459170957641644517913274369775743278429017173760712480715373887131767179075543661928966054544345049104902350281802340609347584607407697365030743081114936886402288582808746060211931441728376319750865413269546333455383007450990620323802055090490487022988820641465916990056543537391367732254830545325929199819736792448484314685174790145564962552624911425101738464073322144855703727448480538902347970562039560323006008127661621026706922158241843372019473693257279741793703903203791409004324720040354822491340118358417083769491751246986807538111732025875034821978153418044848469761597381276617878522052088045696004964739946740166202133226122797040641007239572415502142252566111029704381886872459180950940827017248399429786206520688550843072556473027703887057507346046477943307355062144809223985614121366823881392568115605066951829311702685149686672744204337653079935337120694891609521344307358691691965132266822237327983843673851595285788017364612486644088770209574152190033442875192874158983212452018645029229271844768575907740592354410286330249755827823234953378362638026757088457646159179022202674924727836880831788824435065278647592876763717173757265777329185810595709375252398898601958825288293329524368960124900256273476364802949853252124795826836867373173388073423293551447547618954983207277678541126547770485996826821034479868933436998028209331321017690347173730743756618595559099427260100644125663725748003901810205739513755308493573704672016135300879611798042306098761933724998241983204487890086978496094861052761441681828220869998794846461977808630155818874086147794582945782748614183963216281791590250971499102581690259890771868509782906293347518718906599441463925001363424452545544509954768790175878349466258954658132130840056758546232874615987009961192372592843489167411344948155148690185676514003288978998646983963599088541210503623433399544206575822793881444227629209254511791841001566867638042468049518146541428775462939146057722792488606025917465269444662768176341683616404092658587001389685036991654783406788234935610199812993567095331232276567823671728970090617683645648788990330571749212222253950521169206461146388438360716057296150265654529585676432735563653602427516310983827628053815142710925064051300120214718364357134358470672097936939320468603563717369039384469872522953055870590324451491420407046476147701976144899022966520540333380510553956232236778656578087783368880580740958031344335686365246651619210586699038645772441342997618658189882596447691637588768021249827982884354655554164595700436738974325589566589795950320087330875685139229639300819007827057583037112873786113603519706122353526811063505947369294034047806705179227195225131456763704828440767403540333624556212846716358621090646081428924301026653690840559848087631742888882345953848361699531875985334826194829036141039099376136380808896444321222776868061361794565121619248077539976082223502342216052354324985040131034043704174292305265989147514430390336432945706561591137634186759036255790550323561167924397727037861822066765136510008000579175994458016712310977181458412915967192003583775661060481843591437628679092178866746870292672735262469739544729544973939270435916537464841942738685688041780312592394225564743180751662252445503032223438921342581799380968624570797481711139177715364675773625125700131239306229441335340993902340219078568195167871410127643536546209040270655776400713739513153681682483663877572925241156456026317356715853217411416572607486841541020200557482785064185232620717120897585539309310480187905080075528269956545545072150394131235326059624219506990464589144687553595519822899521242924018331653653890722086534496920537610722637105471280186420186284138677340729603871456545532965163493372466405042986440792672912241666138779382993604431664952104228683455210061876292253978708358072364428287828795508222071012413013549262055298081326155245808556050367374244978547677622398229700730213030911621070723080422629516701967318341757060623528112266828676037883379055807040543608003330742385000260455368972681949494197552583537203872041203517138171593460790350684161945274915513541143695431882386822118468607529038264067790276500147688272450613793927416519588182396895180951260252133966837813808328078221669310081584606521368123262718545136314125667795255462693147658802580064438577496058034385402420088481231992712324054138673361929753937031361101464295379984774207266955344966663352489447754527551406091427119425872203125103138724861413512293064842422890267076658949770302155027359523616089691302615661964356413395572007883080323058325413479741725690858284670236647466777238784481470572231312736787465146863736909951274089755480150015030715953048297221377260622961197657704432322447682851177284055447233878758186069646559757803634947633512850956226336285301532458353980383111906376226821534281127340021574632634139703616692003384957964576571594583020983584428692970005401475097409634861004566290784864077373259773390801391071973713781196272801435411459789294411232518350028011253621310019630815251551892030291111945836907087594159073966712501132411011238944382352954670937270396877584643060463591373814493634621286780786245172304841505311421240861347025330103990794346283470428928580249592937399806034538169625109400567841068533803002236607970357068425348661224736432608122692012105105359139844629071177307257412921374081258852893431014380166754369245947787795284987470267946211411556463212725365511563884647776801083759180206537186474055909868310636202191291336721728618416887603452659960720655586936510609588117553216082368120054985352966417304948021605824788830504517585326296881639984936885520841388675653941678332221925819773785141024535412227540355611569105749948311246174058519475507705429595491752453308361382512633561190200982767795048827996736338434500608091978584755819760292565645473793778649287021926886256866216536661520470083719310528822741563635528954160943897248341075419139606330848232070006156902691513259113868506998503993068690233062789778118965746532063509434157163873574314331907467104065140152170875893998612556868479482468825594820493785051774526852077524984851456993567983251252660414714543673151536997079387000553278924513874359713024179034363085609020532751072165246185609052066219491854409320665094604220032699040027259807915968976732340751417068405285625690530906021668227492988765186518805231355018117381005539677717181467184160202293231595607831430188302280422491163590882758933031558527262505407023033190555225120446205653410440106030194141540973039201814189504714881472073836611671730996843352674853621090769471225507933217444711025900241505842544389099102289299988722722666999118360275630505696948178644047868195628029219264347482616912729001425414585932259043111153276090585090010692644322037087930308962170518719517617438758871616812855973623053218999125741884594615163741693238102969174707302016698321922861278532298579057511327937840275459362271837376223886857990203915687888004461994711617363431124061898111203952536272736296391944797074298854391416959241593172348814252436614622314441566138187074990228993175473191531708277520537957643714009325326833187552348387748300356546937772674589650876996086985819138285790418406663666516175438428302905887910540115250240922639400120527107965234759019259318279618928246606913649957854892137700148717775023082000520703896317720885776055781664986895489158913997484407086434127080294484132964331787703826191890540392441452242532264406815699534678366360869011442275061105666755589473525719218094344353117532413311844033470622563141448225786635596738977847871579112892735924550389930822266202403808775272632290055472146343937222919248624786667201543317308698296821410737936270434587099670882234907102827420334890686324073114088600540507661398467985097587479217022112385622408499266707258202005281480565183949032694554359749106903877957148001963659415574784992956254319801051202318173453520663901064193906873486198578476728117518394061655629441469004567704314226692897461969463599726074101262629024993292368666697376688948582026253198151345941833852452639169817686698007961804514426653946296543160624041014246226349405240673638187988696782193001208018908341222103551604115516970859900213526572357419208718700662614326976606963144060233678948543471365198881622053553623723893736976876024532907500004635628173172198194029676313250587662391117347887211954741463143251193187629972498649521566545451648635044803609324720557956441388937928121505540131372699335575707911513278581088364870086260000804854339592999680049001358958599435740711077054804206166529819394676266991606920346262115552501791063403864317492641134202713325088607895470088626321568203453311240349509739016616242462712834279641598107450914393201591433711472850121639786261703482856131762792166673462816027348846321219724934834688901996910888032384860246647003855866181901381284903749922328513320250412060945427003100133789311576831562810495418140963790299287480570942474464902312169776937670390472906196822143012565098041935624785646494434625845232232234045659116553716747457102730808992441364001147552090897471519087320596319134189324999603216884787080694950420967006353492741174413231322805873060213051929423229302902225145733835284011887790497733716260917044706377546459951544906544453425698597131015844618279571156060873730249682412284109431874358135366435190666140354907470264368700418703967558425704075575842739061993305365780107108402399901815777668155055718841890418769781057889939425357070100569360161535078647026048405537550371462252138875166002695527125778789511390301644772398191020435097693578472855648200819226355362716940576748802429024845941587303598575934463091210777112961488666880506867295513547123175866474094745438400964601017303531776234726176203889444382428524749868935135916343084059449487084450704171626604324391435734387571751834987844714490314114338384928829499413687042945544105678773817035693152784871628005248811794761916380076649756017528123154316163163745024420632662000227833718913764205841810354554393708363855649540281453667067842700533207949448306305565380306996121845058285790874772179227985299687834638653621104314590246427919051599862601459818585427810652102658451877321057680171383355724621651528946131771160667063059371331757624657511158321045470030870691880681335921380398064633295581364619840031500030531694290924450744834390974870207893802411255628364890090933510387711635168203195417078528813841521110895142573822052461698811128374666447930187425285039997412728692378542290998056619898468146881094880697122530487233168479795076274424722739482320284437614181073023929715366309354793850909377521046584510763358240170384077488954573313433630504849083495218437496414324665250458983077155644833675823140002770712514820608957755887813420503636430387773487555832083208319087155906562598510266326092779924389468986395374854903258422212784588042411864475315383831189272848131711080565414930862264419349847464485174570615909504869173833962862552102115110392829810208641059423536238584498023187277640489975954205148554236186514813242884790277655468201896468381380198926366313389765151846616054730988701365870355061168434355092804289714515275533174316020229405672060208665507062162980268185135510022908040747939012753490228012206784578814121847162108311025641583744819630091216170119786706358622055590409627448625690227994064631746785102289003455249414921504259732961607764586948672280239086511361222300494995362757742912782688282287707519571113730347855403301314750185066735154426654053034952072312675180596434415996971858450268921251833615289667285054734659714822828510183865549005360012364033908538714008011377979453909294817929623378830806395500002958174978062586453124599286756474246502963020055179098437556682197137621731590449804206786301602544661179317664429365026068395573121819594995663553647420142709080229721768062317796132017242886304166728606967747724473774393391079215667135583795647679526122574594898271740727931727281131645665063507513842772579482588346929719207253337136816628050731541297652827072092675393140638306888627314928963254727903563101497698108672281691601923013936776426418199883419695352267379465930134084805665964415761587418589048508861756664222162112621118036050047603438589528678655257577852663749762330464938528958240741673462858018147808019053153697146787394893432522720838937769047922192826270968223072232776066940496834661659394414821806884909211585920458474767084142400404951859355117867944710382854310686746151321731507806670527482752184914951879620689295369657273898058194869909498126779258700017452706249016867357458064846356981193168178387984997374438876074905455289439968653591190468144365991166610779654046931283108298282631484204752560204311280783000628416581240297936028642149320498709517217662305182357069765055237873397880764986259747005711923171311266123245108046383969117353053334839094712946942974633539839244365202418273507218210748152334902925611687014085582481923934715517200826642345911010000692492414866651026763187888633834012977457069891153820827303070108400272416507187442586036780333415138879395378177916798444245897326444775325807201944092223158429552391816344090570965614415264561902391273419361488558904220992971578414730437511111964674807846925536995880797080953879453351011986236165487422574410439706724916204781454469392462129051400037714045414517500006433904733259303122525291034840012341717954698972025521720184254996451743583098621936262259255439793952725360444442751748630694494567470391277947346218989014416913257676037835616957951406061172222393083407327351916812563437456829332632841237754922619367726865710869595405119242373208411714587438839078393481054234968582031771890515616074264486758210797303466341129259106258255400328226583426557548252088579932192067452543281721029179487620314705489014545789948661863580379236292847664163269418718580644621395755594132764631531037164286784985583820782591167345687276908812285000489454033033465533058073510125507859768941566961167520741963714786400941858477150660471523771301353270221052791743746684165728049486344013037833443317211579213870551560634798674335169540019367579442026291144070549693536083035772385490429444119863206663987831084028705798845218495927811798818922973780111527052694505486667034244433054705772730763477435598970374036869676803231726685210053949825518274822459198716514168852336136620843890925434812814113397006692159149968574769337013028297956796833300647263858383295450170103841951254807203577906688043879625432145874513352233983870001366333471222365718434332057135607459311437953286269450244332816137548640087642989909074809083951395501944078409854383422406165567131277013856658485564018783433348846685278316575637980690290618059372351929465733188545803925012856226323632545630659128429421919900802844024173098224251863339147234485028975139062734602133830469083400836946128071526917342932395592252317778106009864860351059977658309292135202347033341005761058803082218093393404434140518175665391152030634627261516380848858985316158305735075547985287231492983768322933719552038750414028909470263366977965001431701979391957601251804589265214922653645662921815279909914303110982397857681305301347289710786441124189002632081988186912333514995919839892583453555591041768592231533634012258843584445813702255002464136985843681603840158568170592614209666347701385757055976165781810252557201857998052508779029436769456573532645596470179968090114324704677113883611714977672929716862680551361728227701551820536175432044365783475740782615803182068497236041022928079944199167578134985133170902698865224390924516760637067933571222210656000711517379701657585286539946706863082034369914462479036090155039785565092026612101557507323758371196953762817873009419454112908781845115531648231529095616474832405719194081418254400262809621164249369727828895940066020551090255319990159028687266923816556053264163647618947661992418781563692654665065326478517908949456028205743439184602490293364813265283566210756969969672257054431785605961479072036159774957317415894140420093882340976121693757290171135911197002799053484951687331732156950732571198808896313805593822814505189553494322719468960280930144904455445280852510652820858906675654933233723590588322822593123868117900858582179715881836447801420910295858573718802681258276155899041656558011133755242101266875018767870645410276887740779599332529037421904378920412824768384293591968223045125952459555658921808450188911115120782914710744017710411028000239727526466955602085531299327387696570227183266310271720922075883997318648510014605537251799298650892626324333711484442074281853163240939846878318768422446923648648278067273420671815063222922714667515791931433799149975905186647597024253852864031718653916832962560260334967943199503987423390595044456754897666727511778919785534332566857484126073833282620425217653960585358115746228306590585772368235935365709701132375853435181706992726098419489703984454506217198015460059738700747965274117924135994350514093444968433432492689861729078005252548889046876144047741964508742545539610784453028583051647884398205425876357467055146966209189883978676595683134193176671200528341145670360378281817683823366754923844544883268041575327256318790442492161705809338682425287064335944194554755501594058543360360830863768589579404709660595920348806576044320937120093716548367163107341627117411898051003971824591272208325811500086623941034681201097725538336546037424235041407302562711991383636678689707704577272850906563335492966240595876561396344338355685103791724409857243870657578255656297411258505261962388195761518076747192642279669615923591451129116083794720497546970660237828606014852628555011851714688054348328732210006557966392184139867054663194128905473170631968921760583445826373886189043190630245611698881703569236368947479782520370955465555564410856706563987379431258080441670409956108754974186363281932895632897930065873504194642081959062461864720736645010111794558244429684594048872244337489712262795879592184993707239746121149500674137999796113832534058328752822327023346494727792939784807530824464695697508296772589824963246153023513180264105506982750271195555059105062777972075400371529557093122427068262450833716026298026862491123279880878131244290392974187155343713495548736536085060271722854286398748995090328295251518581105402614656478978187390648230294515550832599901791919001270007657764783613964320222673172097774722114673942250729829339787340406636190193784960358421840241488949334924342681551355819992204196678066389106958598152226281452212094934046523191439086524028575726335374703049666168436667088058270277519775701787241136879607552579071758876286970763057036418722687471048872018697851152216870246229092134273383198604333347510772965037101672528585813386188788408763225646706370766331193928899994815908242269279354330526138464511514955226255874543299758092052922745473397614419062811816300659172873912221999800248756782727191545778021067965867718066231104040898477066753478668651931873542258087701885521519842017104573122327884662374721216142468421000492126968438661057743626811029207593072279142640493873735492312982481553629643653628923196058693391037978464940229694434572771263905699368753533835476846183935925414987270240513188920314291954673989480128602029277370481036150552704007079872482924786294653047063511363435065506931387299038445401511662499305484449180770494374930724818850143289480044507909573286626020648095126733019644995456986630818253828050851555033233636128050961011568377235145241091125317692812606957392423373838293409012624203874376605107634977029720621689340526638201429717483537739981345564519848206487543282716670789826383074559578860546023304165129321984995504422980628680077140932603876309174570575914611470821225457551067695552123925295097375849805515975010121991209047414714743174128429072506609656830428383377547885275570359451129283367966948917531856579708021030221120783965411037949556945944964669446422094344492129321663076029751525086045461131151882226893597164667901996967611317954439150834935733058321999916085499065661268706124937318115634815943266751342253580348145043463730795401320134929751084144201543461274048329453164732176299583921787126960464303500197983915520803043573557345557871099784541085014409208842706261321636372485376215046097619007800679968958924258385088260032281808820553235275915449351050285546215863288102096987552580834995041897567932711938858579230846712778210454699007954891479223964057341853719900361913790918121183717627189220715074552572950507775435935676248297662678546892452216107487309187180063231048904874546907278623046781811491475925633203141502038024677950806487650153671040310576339319468726136553896836791020610345069014920303441046795687158778070425907349943327684523259943230576246822121101551407722205096237454208140287490611936970735240411756701058630128631637077393977023393252516963903536050864771905807494394455187080085647307245977910970928558941595683895580870993012903379388509434151043415516264567099725441724728237281140147577710346557623754149066863654168795718682709447115466110942384373134004640538333175881312424727148282938410508231134578310116344402459126372439523467738775105004856310636743205090804896773229124497684006599552154412372471711953392920810397269384670980081823279281359631922107544139871820592425281190535435284833384759203048733681697391152290771766892708230189223743612061937445780950427109366801166855397804261249589396027519592098069721715216730013071758798240552542854789296013567502577805359315122012049850578911209943894604721272591537054126382162706008520037621673408979966631331554645938209198683796694430771922482899275063296901994622828874865702882892473074274319138975123306428866403109622056370652914732293065236572363671327124767722144501885106091886758560731096675628168379235594081603097387893103813056720338207817741231856771975781339271865232971949038085085523650292546253395057020017070187133751683240406626996462007561227441740549179052980189948521929692258080116219355125600788138414033684608368176248237171395301221707799447959301364564005748800656725135444510462025309958073420667636508210620512881378108644623115508806104677144536177038254231715167546004869961665204149924611313169390988546996530688366529356491644036154517296149807325300847571121522410183233261672749740087347197018161382028880650277536766972128981364144477072552473137521602531655105909360597801815928193927092113245673817021467064209062493118401969085576882573671480644762222948979377619685417845348620296644756664981141066315433767575961262248351916976497485518968875002592881002307125362348113300859680904757932122690037860058303436549012244833853593194705405045525629259192439211641671009135249964437702392549061632999910748098817168596425010278018541061709573959017214142815626446242647235791065524330426822544417250678545371045512325981604926012435001977738384719928321351871545475640243997890355433155518933244506548022518860922035952359529429595469002680533597035640594725327735903220541137095996894357807713856655756183375035020156585737147851368348367729687339315904040390603029163453553589848117959258969266122968734023899322364990259430642399547634890629921053856997417488707975672132106155324993099345929216784875290375202426782375546931685428341198912339745937791162192625347368562337834149636981135954640683521534233132543198267193701132377713544206075220909237174225202977385936259947574050843777904230479751352211902833862389302631571297367535610867545948691376588911263302008867979306311899276689972325770609098679446764526785320706937264230440869424607561537072962459865698660391779356198804921025622634855765711997710500727076076588636625394653443170459554723770770699917961026794854842101823707929913656144388285490919830777272447366600742419101125755689481740775750216336539843192410839246208763770663552722673556882555357877843753474442393697976235265095440518966751111173385065295334884189554242759508289540243665008381465079624282986715824110669224144957645045836822812928311050750388074204381786973249043867277414345365272666994262053028050048119939883428626037141066389754258309993251594170350950279172985663804047959181145613497840511136177010976423459921118390990007333413214643495853102594090632717715918252440996566982754345685307250238784694240018874447380513340743026695420943635893426766652002903619662727359535199629285352046672779855517539966290993097218379482147910241648703729256001885988992155479906313084662905570661288860837666948113759730170797975435596419867113916796473647808169498055016055404557798475863982490505013176371924860252710830907998986360302467899582762493847872352591313626394483408167758711101079115997559872126624896949540867096018316406640192168080158079083439763525237843871891273385724307872912551754641344205321452521791350868204989546152958871032111154465829145969145741756765162520101299281026350897890984067980770208589967150909452169954465861484929105359613815139618438864250905821226767184263922912794225238860928288830787050944203437108169583325732583126595123963470765125825603004093105564451945055040890657787303565404763478129861964319437232527037804513951394149326457274341380410815105951990081127549123418675501014498455304253668411729009426014173088327956872076649041218816299642055235472796202796818664033792236546603598697553122296571803951520962665672454299623111061784189108433432853819913232103957505335146177880451176275154880868717246430246348989125871835765978195054458737053244608456046045491386164887250161007301997758326827720780564672944030292240697198702190102710524551565224572692108986157202389547183587219363950559848600868380479292521610215404762284116295120978848205731206017997381058571501636868299324685229229336587209746713165295601346133020809353790351395481443035756775806124928448860457871693020919214186848607045231867872941634321798287436953781863010154861859897940178269342988408464047676229465597892745336322722319715402988300246520980092751694879241939182724003652259190817261806964910358201776457287196392219380150134566871029891421971606216752999735904328900070231799540755050702255990128374783663417909072334584779429411756523090793703822117576201153594696156820102528210389621021239209058337414342152554132344211612729452137114651153875614732903846920849160484512917394829611127172424904527459694817919695420513165429868358668937259462362595207060828588471822966296615748219901414475843714262606045377150745161754191108582917888044514504871612089109394336108700497502151433321100105271086402046193298472939468115363687146432767767431712700438207950404385652523993078336882178854986377559212723221690971735017111340030903087739090021339650026149602807987279479183390483102918086975865794978102484899989600749549445487712521832044732567390474766615732493737282332640793795559235743154101221991803614215829890367789704110620772438507547346348491520821695113087290469823650970720160654184060375272796166563674064572709182411769236474786212623877713078107573630063907533056875388958058128387426408705171148685197981519783440835176218403473989928381012397756362889965379163377226810213812187099852517528253712523377569539983842827017185636875046265739755608638273744854452146173317512526340483253849018479240478900200505604103438021840454911875186916926957174653363877037844735744613464876592613514884411963574367422147520410030501337218574927222958531164547660394014607607476081015387367694258727249945899957617908319641469728988617115365544343218533799339833035815513287598576219561651477083742081460234984190553216915073653131336083164797570733461962898244721272734342940884487721787100006296856247809251578674330152352681955673896373249229733155673426243372394703428807700032770191550539808046135801543808873210720460421434039997643535704199682726539427618568255197771988803218494180148748172801987920995306755678037730371961010912806722700007218658574459865402090040114038968902366294207367469975433156843123968689098611159993675355269223201289789465276493888689229224589113966294474868170078166679170878325545189186166022642809128300404896066027816506143585341774629181863503855643008962925816084091944001804730761995635723839764557722027462838205722970989207841531164158599289452273946824840427282538424428482154736196297074336759085787111465571892007374070152796192472203617499830811687115435498827004961258884755036868139688738066001209498743579545903611931893859943453624436238314880866690550658842459866145139903857661863844884915608896594658838798749072274400320820917302858949249408910825706609639541074252793034522433363695945859150908273000416675295087846661462839558688587818564837192523923325985407149861034277843576779302010348394766933655957144770592459099159017297875183607453482706344290542697618120834997249938895728069873027003304406677611882425673505599770209881870364292426578691806890692013403815936538336288085474879211169040783868238288471220309766270524245058773837816281548950737752203926658802078457058143729654662143043135092568171649426776904916540035133391594620520067101817650309485599538672255815714652299293792583892638372573053871646903956394191203000356058057445870304568625079213198922806501886249531207519464898694514903434581834799503254555263735843297377643423675156165969296758551682853599945413660200584715125200906004495960224505695248793995411319797797053713993183787060918863153784992123001372586477091539529883686400213941513499794135223975201621337176029283948085473185110958106752323720970534777083174787753794944808889483654854214184026461029308708218699466513135738513141478635147453458786687903829702452230591741468847551587470780635615229985420269325026936502793541602159335233025163467334144195502937310747946851349383239940425314814383873065407821283043802247700458815838371986855809165935057526672431880020600198259505679053282107901114686720413572188415890094784011393960997894423166266742791572812450826137241107481499075690221057304831722911815641386990918161738359473185482847453764215971967431458736295380242360047658530774254628629775478381937778109888310019346289435984812957152387357817769194678507307602991306716271843793805050816016258007575829730840902564884216202369425394680001041473358286422932216342845030166567118191189514134785165449362882225042327610630664499018138548738996715079487468244647844221959237865537997460222045987915106748952483932707000135546559366359769065767005763700381534119781874821662514549177302421915560843002859653363486136962968164269331063873036827858752689590465506817413916151148580943682069444192338855209280086132433884893171035254318904491560260086118383346423612932404067193193433085921133197484261816184803290690161506200632257803639921809089270904353138969027958962325854017858763307622543329277486250329607703173123390354308326721958663343261060582117971640601437508183577239767243165335167086665795783894292979973805189943686910958490913613600954528159879243579194421666798137873651471453439929293298042253970067076716687808363277062866731972880375543523262626839631141607638754296085253826808344650166264851207376098719858327960570584059444848961912597745099016059632282716898476675862279968874598821872450742743655607968866163984891265776725698738619424980566856393008138342739576509843739115248209678767514703854690050307258101409127960893025589356755707334735636796670666928229452668554979466210080411867436325520370346527902243796362832000981999750331917331258197589119679436111100156041480892654248335405642990106294161053712879067740401828304873229645517875796570299188800961543516142483968582200371008467529273280637155388362787536848257727450634131065409425522782178341835510942375126533636576489602933229718675271613394111419277048090805894657183039180164106642027629620349496906552280666664892985473118490347906565660608798047464228910666705835640071569743671331862516521078044729540985949981802100627915868002575052544321126443766456462724680548744149055052571530493211845736929560729083009384142826553974286350475345874319753374661380701518090256962071609713986742881974908237811991629891611556506727366104296273492397841636157388879154768528593629203057595063432673033408134953118047176085012219074952097919286542068546899326661156445362630948259197764586500514581079424191348275155531229401159420845539131578700641585013031463174351973073342905789478189759908081981285822984913409892847105453909393521351278455999118460120326056353435933512738274846403839114948529152075924227916479443033032926809270481978914499023042480496128152654508093988293729304019262191943551184536330117574331243356811932118182801082265910952345124123181055366300413161920597504788495339860423325259195244440846524983635626644933549252390283891722709140591526980035110350764963079018700516987392897108839628837600648483579848285720675922069875680065713894454894091944311350046309762298559821124933449765123506089085982698643386191419198481069038680621972576374431819083375981406596389338636494368734832174148241140127233717529643387148407780021351545956161366433603188805961655910527954211764245284989518259930086022269960675929856596422621682875313177054381214776263426346431817667230441066689732139934051340954958628658425365001976201664725447372243235125679754341151684116284174321641146130584506893922085313001156497147456780434944325901948064085591882976166303686472859470943651724500079382075946073701116645705517927782743918797330368501659921264758423714591297490682129330824396144213638188894914251626885141988667556188928263808251743802686061004133554936938424079456444488477998903645279358562907458891783429182679990081615937351442907636489837685448398788776201597339629669233124282525071078928170422268639624850839700705592494390768649584634623969921934413396374341451747072893479792608062114281082776106132703784656115110346625800472795665910763170940949474687652717372525267594068067607057408824485867478169278953962658616642714405088649709673437517021305716743939932494475458045240864284720473670778696712476538448673254992020199022325902901622627746838669284013165252323224245369543917723193578509061667008286401612292397322627827113353319009174132870256885860099874565191353710006967453147088096400643708267829211220314596791501813664087322745836497769198080408977487391678388757427095650188307505507542132903146851942905707852535984567425663072764011086704334123959958278718576301868917829961683797831739039292891929182206900745427288650265776709917343193265062794829354147981667974770433423606435392079236770180737253526291720160045777689233896396541286376593105584276115922429952156369292400557850249840018301125462394134562034434102375976767340623621245877874513718668395803411613283678759726502723544531499110920109983959734654965450783207010408203621958069596316610584506973007990249538444072361042617256470929962010018976646531473335583669604909181302533698615747442174994744700917010764758273885063210520847301088060534072353461857588073608435837462604901570392577147358024427211791093769591754600096822209538904298336235051621073150948154513021867672164392037847949273301876969645190485027551859767466553164861605574972586378081907266979596341113104647970946701787802957149796120624461032960569729517425833302973121836590710277647121832434435483563006957580022968025803383476840037923791911620012894620854410981814799635014045017157841060293284644372664458666503961095763214110038865694503972764976762446702018577341815142919730192086097870902555018816366505491619532341879255570923401239850678577909276097559482775822752075813133241076651254724883984309265135397306228670839313564435349430991789155203073467230750271302450955047143140524949983133717654930966150326078638909403175505475125727419233391148680154219083905725899081799927501829797674266261147288710162974955366200569484931634431988386459641254194610481428180501723671773701273610488950016740275203910948492788708346998555630182601409012772859332881711844121458940751856504200465318650491976996023623880581830555979869272663109306046709292897581047021384173186005496463269247944456453371606520161609814787613946282787013285052184946881647901110757077352114989546829746697713644708121706176070458802592295359212555203475211228030609849205453278976537786040200367951198729196180648747981923561709080817050726939092234696835107111228087799704319255929324332014746906944498657296313435502804864440403356903670424450595623192789432516552497289636761321672647862056980385352579044568322812007480118009331588063005812539820275130334937395154746769830063446220895238178848094711757339632171486140237698695948570345684745447681020886953459042689438350274498332651834057369357373150041526899391870911290640882438507868066752829997181852715387571181880940247959797670310567138635929869174538247454591275812339026625298032024667715854705206981325203165952202919508753858891276092362971586745651274391211713559217755466854346272834877245285077577042778845462169047133212916232658078406461843140294085234353874815329904243603461513207780502335606820036425842810126192642883836682591766998636404854395805264382991406301773625894699757543144140611177126554851915675360030824652908277755149713434052906716514742197070788368913679105552430708357365654913197887764730722319954153895304081784088972487836559911487406306739680373593375463643229528983669546135736503085844305962516768915034724359973644753518467574915757418400301033928026574831784552750687052986873212174363386409035046530683021417658276551170520035173650296540206225158548015095547230015774980633501186850266146461899895698506150913440900682096368523687246122100929477130079055404465895813561531731355893235419313124414014819346964257442828029127325890648535801706181778429489077693766970055716505944147644464062604828141860230652335702038793662472360414017884374164264251642616236940415400320737255418766353563803515225524089507565510510821673704178344294760491049916137941543239087990657540294387737417642701355519827374115425025354466890585976991642149441351920379195905331885539058694083219088314493576245917959989238700147971584054407878556460539189681584628593814312211798270451337190579858820407454347549549836809647063729455685292998366679445566915537183340345674921717457841550131779098359400683464929140596545363938184232512347314730576704967173613326582714363823057270949018969088989243369587870784281345806796410425958407755800036919856827963800286143185393274844317742231822415741183460259207073028552304109614949555176611405338433715608358925786774276011318030995201093688230476493859769965283642378237106870179100725646441887934615587742531526318262826404286962459963276380336184908512888906782756308241076542153890505843322912243528758764391894931346094569182168905810509514670713980893517040434802812477843013641135082842171117187354385352951407360732414724091439977876526687379397532576933582534705462047178427640175779873216804068480727015842609388815463062355571816098510891784039919803950992337491796691649024654176268883797888292179116548551920808376432245085333313345386576187729628140173796568063743028809444108171601484535122109826584110433281804509745076863862146088408361705642360259201131289301688415252259815910546688065265735702296585046443599314908896637378201577946505866418160517802434599452942607025239286704672817781594729489088296833568856518434977822963303352201949426937800938187622338522230367827141315317160047520442121375360190943289382517023814426437323036278079463722781108809796200167888725340860025711901038796630130177982984900209429976798369664490307281143013459208612397670494872276028609603146205320885024672697134624394015359159886779036694633155934793381738383875854997140641580212487595718985568479423979939162344655279505969432168482973131752539014051501907945970132991743133561280685434190310902438106000834097283880757006197032108695391787644003299298298632275593773669553242835053979864835322289118729328896324816899127999711915198125173908309783392812411490525542603616214686679176706573461303630896997916569577437016978914080612001517559044337903079371911402807773831741122118338263005639127216303013506487161121442388858603267717603775462504243674540329284033700700406785299392044211319940813269052150274681332092455976762313648243552484643680315323749854895748704292387343731156067966590200017725373126785631419292602114617247189126197454557304721883605621021842348576300825278791538133171892512209617602530469534574777735396989825762992580572266478473328125475904201550193640434942703872880678904434165917073176079992207190036916505631376612495778277784988249289835521223845755676377547493338014515964069224367276241556521004422880826274822740759821524543306217960909628312894538663157872165897673542594882297258551958117878837194820391226489666983189253306026090647573905778079406604488973376377682776279795664079267307508476963494807147032357492749525251226688720224342597007410335676239794757673790664041725936337036130981049127903582400264456002603415958501324935305686041779061890772271170910661685785265549571775523745144416064720756484887888740502781268156919696969847101796478521217039088914965073587374746985829663394104280541605576687484262803194245568568999022423077441956512591431670005760681749502065556407787166782038831636579483017626201159591232765669406760496913494153267978256561718735655898697664127941517806407081030027247320491971232312991746363974611717620201977480473542279298207043200903332039164972648374690588394255212742304333077394382633164683741454420120585956224191937810665281382780347375683387170533142791581395621389570609118802455547954799258965026319051688325138507820001954581041183552876117573531424867405055999047373000549796906752005135344420236299512561784573543668692800928015235801412372309593158279427100039633316077065253727051500319240347274971179834153386187342709094975169665055867013092460122178639052952442386574807833203070181775270689833534836563369463881425223790148975544298816709103797675174589719862325817564258464632243518308821901416808757624948639568151312300703267472489259682431514504972557095053201085987963943464734947622843085689681044530509907263522033184291361651897350641719394486597180891856250002055640485944269775160328877649881385265446747328449026821482467186750355293828447730821290890431201988546784509257099779966039928836820538409596478704646096762189247339114187112414533998431148168128544700988648960760747332262791261724876422203514917641777787987428324414118407727837395344718291103087706881973557350255183255947846496584422334179577235190133656680450553585141548252014750830927175944109947470855874443209339962116853149870307004959747559326618623511861032501317823491257120599652206711211841848513755677426593529468474530374311707996366778473244350805849246393691512187794175602911743053561833278935214596714654262208057007092429508541283780617808113614490761330988379129716821080606950849543542942405730936370242732158357838813689761981539369019449730904555722222420866114648394573947190898951843003763357646200970391187472673263278375747904483974394415456966956116773098296104623700800022020391481131291346898142077787785049516030749012617580712108524097874925447793305722282948969263708314462317189776874212843824357822814262469339313961482573950262840525375354711799869664935920304395538326931672502866192850386730785329572311893677242633074570693217516660920599336801194824303520237655174236273804936382588736150872657174309067492698899298092684636333417053982402305484139772962388707166857577853345910596216078571602078968869612143958909633690884913698589702576403286293193786208056012309610423333263851460747174503139441861223039983517916913124248662273929212166887177495970168323103619838989522410679532690578207247527839131617877134891187098483717594314537555868639584753175067335350663992680678988365712724281339399918930019928289008149829371883297265006716864091596442977374653080423694194397784133481409543082146614013561291498763512202400109449454386877062251993498750905399334592416423492252035268116664583084739705622522720320731689087393002373637273752627319670238415975019778855558469708356611630352145254119037146090309184320204473802702031083672765508768533001611931742951642782356672488118012305319962348185781743050319964774585642641480202835171012047160983737585428863910838617588182151416014020684330020341451874851336716593199469833582050890348582327473036866460712574383273727979768295521638390037213400682916862470325365649862703658933418925004493007837619668009494847648621264635786966284180565301346692917647770792086044004366394515852463882308797084012990260558794672693345635584928498544398517783192770916820259730834424807531722530262888947279819877361626744152823673282581384970844739504548983229277884347064844695569915963628850169846624878399295908619026086696359592868842057951867356703907944471252845718530152864265794046403330606529485944983409199991473358967074785532760023302330318840635800578229793141656853411898122614636098534163060640584312814444997457619475568014755931904110412387394756667327714695541496444417571050515445057712074936485283928326401657112581801223678081276514096613592959413246804172891749422333095275658033116607790456886401193489085525770279270016047484963317420425278601209271755236221568756908795940630547016937461106232597102838960335364048750508158203475295804373500942301893403957483950561553359196425777912209047093645432522851588593216979647936935999218472059730785847843255775029580626008649229943112413761084151852822747663985060694862325662721707156962168451654646622050230065250713261692404771037237786157327679913780940840482129985500974008931905845503793309476091723326319869583850724459308018143180971254535702794640208273715659761166691229716114622843166712871280625599716709484217688074138686655801419974816951864029521302418468481255350187289466743418225915738185231936890757363901870546990070783026511563668316183140786015836315616375127919622192848040996297431301841734018645268472787665670049392910323402076418218261583485504062729558632822416363353423486340606314560860632174451788254264202323315703770064040934307618645303350664703342707063141139404019512300452341899205288572332581396735756698567299493372796966880346668094033646548804048360894258509159132251278434487112772620953991555770929127570499847935757859744016420798518700220761876518317606664026199169807462300452411597792295090251426601291760516668502216547902672663559038596135335972954214362511083348826957279628990035525763217574062797412888932303283643117958499713268581788009451872178445799556931284389310714803281998288179235999090111089269574580357336471713146142219941917143021848618413520928113927724482012130114820342205631891834601980451444302360193375197577479765646813603980096948082692675853896005665353530813890466224085851733182290827793676264423718244895713098140471349980109853825431436481887285772212483056347338394414286221065189383526310503502762588977027648746114019933513124230506756202352987481056446527946762726102557956252789828199915371768759831911518037043303958473209017962547035278281388123643986715117116408843107072308693581712775352644778510322625105080535163787255375993922302885277331661401886724790692661102944497558937373631512391118094930355313030186904738339701006049901303088711522169492640770169705898501011250080846983621632687898712936840543314569637356339957939840324322625922412331527777233111199240731628066515329644911059195333395535580062669789662736247170210729563096457123956584587020879502351619061428151866312181639990065193623290425796034499099240632407139678483348701092065374508128173394317799971142826354295195707309064762947527061986894393368825187021611079552290795064563416780181679890897543505045694721000376325823732473413331718787469600891595068463183254444328994973691664254002856996942562933680615524725430006263908392520814119255877863164067269579674484009540882027910768559490999137582809491281433872411457642844926541185994217869260905429730211623747181441567213383376473066047059219760539009387764941711634258403735683169792377323345832580943912152207374385297032388747078405876059260419360183138110331145605154868948300096943980573097259426031811834490374501434689126739142592343183535907707101629289017837462173364077666226269809392691061196877338523691643433661789851589044622681074833461822640693756997303529049532683012289510565037550754537376850699437794766132264650479196058092213567183449607209326929337708651423961124428657845530562522123819383337112977593929481827974743912306887248539627347713071815137566563191651912965439711790715916086057050159120395422506832686059930214442411630910229829436165361189017642362150996600460148601927112510452869325736097649496414414991300057856337163065253940488732402657467866728302284845963639890704430673225379335690150020919132508969177000291384953306426555661009076825846712044638157031974302949160792561967388951727988218159754757188879146996622317531264823458668806309720426690453003567028819453206968945708545420641162393783991930168161566573827085137414317444242167944707008467399645387533902543154038679901812555946825314204242912574432480602616901988368781130070111772631036131801565008041436264113582090491255093222725276746487890638288843344861056837659204881250226434291034822467455602466060952259744202536876204638904211733252002133391876609000059774876013075664636007152264016653897218378595085671465873686729701140691345395550414107718697020078787350879200600955147369562412449059167826363304538011300504980529660266245113244680295415736702764655145168048502207268517857989295892232045959069183367741877054036602109588497214390992527382181086324305154756714754053997034716803871812899501189038698705593674238305667359610612314764908038976162118622530564605214297692800804759884270281680836123283112292177432269190199859740497200788027464244357657220243062883561102927736948589283140806444712684537498631884615437321300306838563193561599623685890986736336361079406812839033091596009293462506320298055680113957348032615154252251746340549734144936767324513659175103475565203552131792757942864676439675340052923292620825212403661784563276143312517921041512744271074817294179780499368185880196326581526496861701225396990536601199575963811567833072557251515221275126687517481857546443123777230054298435004783680618219231149153241272630357807303937083475828508336193136611589875308056343428821853023293581581657681379807763884544338769501260165578068608620135207953311285083512266557619572838452129436589497037004210196968632169679954195604671460161608470473951599526509547082156761848721875875709773226820474433368113879359822866930581190936118396829343450306173485423858679710799146722550769669570651966962575849467303492096779258321437542222185227299258335564497892446884982291273181172226266610733441189159918686009374638793654730351991900609388905743178288873187535235283272210836177187852449096592955063967445226472630008601470226086900543564069685683826956437000364430497114799285390724633764254724971704394598948017747389108541426976915423157438666445040470232700745380999331284265668579430265968688771193652679411413069073091270589180530392473513577737886435508673810507762930081833979392344816100125961418784641315598673113882434455011721291112661974963898117858130838669487616462064849459553566584534686229204046263201298527007468804880736747919866350978806952475915765123167973015235508306643586608898373622311308602150028653052507610685609128670358782661274120654280081991192412877495671325566919382872368314477049551790279848367056208844444007293757914689573682523745478998957026661920535635532905700197021295628150900258004737668109603547284866638969076972970906955686874254568469683826906596024295972698577680665562164887413896802206109126496924175302097824040492003678894426026715528924994961433472130128490818715464029685565672731500180454921898398047813040501236298134396055826830203819444176836907821799342813494920439147330011477680880416530992219554134277868792517950704239896807779618172638229826155202072230025666785491971988405762108378529193382587950318283159748566762788352665380843321967365224075419599432003443738438862372934295264573188676157937631516323642695586189808408303328438146670245573867695949162017367434126651667343077706813565091190905525615222625338843731473922651359329339753669951536752363765714519551030224205587477277959346880757388747348282007110330577773149457189041630487921668786289718743583374816714151722341944652604644889778251996968431458642064907637606888474193874071584247751464169937470316922320729447992762850304239739174200119089987977782581603553853515111835756942982871998560228249788471988903041973424679606598418547490446820295490168801811598619215240049837875838459422007266305079199221212230513969518022849590119031521243306979028083249167352577054801876176571499600535761656893388191032596908433004813165445787122295188048144788450623500469218063351218117853479480020400602364417786106461820091141440655761262144112250533610752505189762684684818517336604774719448588956446474915157033016067342923202398004050393397847857405923242446254310846322074664479877799007256245675556065010304173606311911942570726553664245977433042342414486887782246687977053053478812823255790451544368889857659092893070337171465690094687274623972935649059063750675832244414005497407358001712104319010969278984638542668921607772142871917082554133744408342781630481971700924527565986135728754479504460108106727592584914207580163196080124207169055902440695377617926728118706085900558632094727537627850800899984947109015424994198570321130979609624801960387248421768071730938089469380829930654854967723412436707208668734375803185879365485374480636779505763870423664655061021928051672446239717000285169754037422501282213498919266186916966001182378875878541109075323004988399753430304333006765802932480689899039417882133975782301467550818819203223364023712733415013756889324148718051535680660025871408140733325327765665931407721314630328073882715776632752033005757445942539948263430899162739634599230734751864102324229145539031405501074440780197691145445476256466145211031663154118883649901361189128522527429838758597100387226196678777920552436595313816616701061122893230777606343398357208338023357311249218693239939454763610689297604519127257642872450938028074118740524894801894880390532325542146928804197775121718219342979586907020835782268207212305982830792684253396077619576477173968876944198503281957451250667033794485907123417914764355047036394904550313692271895485895387286837247101195206889215903724851186990760204160242356660591015476957853888228988017691406208011519690851296354030924733349737079818820933208861351367367835808243006265643090276814383679337711384880575165435286242072306242538844149512935089663122495254061975561967107879143679058120257399219971655914969315317397623568256912113488410364935658384492101442585443488442892598748955810231542175377675755434761944899205617560900560391207890918268562383562761267165481284751832230392258543828943573112175473954941742745564808768260513013183452835159426068614379594224069190577336661783128141854402141879311142448689841956744491000715576287542772414559499808656399497723788136288936518546588273702378235594072567213068763410991282556225640748057251717905731167263331096994180491085500533723609527634516935428998144282214745197028172677536857885729142454503695940725354281610119096603621619791301406760285886588037811899104408988658257863057930921342877802833737431360402778359692256130438364363126994899872129254799295153288417958192871857974080102566742453299182914121175223732487015487634737761617326230206724749961948633634568661412958140076964334728369643507637794780601812948966880493305620976362290418385471724884715183237692497666671777021133689668842781028202392899394634623258306058906664659408578092270599743077980710111685468832375179545262827151125245090381920856408866672930917371859950223950517950076749172148453084958939141617397147521214913833528457753770601154630414755969772129817482291424294532318290020510250744446846762286562848534396798951192728821367598903973900951509361664007794512935106542148354820288758889923956191886557669378015817397749860332627297546992162852902175882143972092427588506997185790002988642139443320938588917932906146477096139878430533178633348822531656302224931848849733608555901316616925376699258068059333814253369560824322142370714832272848620262003873845511735346229723917918972222415639461855156770873016636583213964823807442267114444113515247940396078876807332087240145206457719864622397714068802379348530895922670105195184317750432570544811932919662184030394483220175942237745567108742067512764188247674192536294494470406579862360810237035485106683535553411504627095754734700012887013370840674140839791137408629425481090778019761181974038423015202057213709864661530622368976321251752603842426636859648961668609817084023904196094847587728310397720964490813796710437865264781698428935515377132052989583251872348500060260419522334049743190739092873353140038701239585028826157455624197255493878419555242142582104781038443478449664808757769318477888946351748303419321087113053805242902975465709794905391126300651183053315145185938118226915977425479663097848425662678484601445439706998091070144424135146239690389976320670768722065133345412910148349065347489025323498820503109647387379459928274689635799719584706813091854653443681702278315366794701500889245770925343008700068717665534314318743219668112036691173568336935479663813011809121417173676447592636874867684035983233359106358892971507390741699799693030142253316547747626470249813001789029232759294597127161355089818607292287158652943198323711005004990794258223787083671262013268238034144433789066964893725950780446482238604124197469757522149377947752873808840704622597332293306960580271425982138230824551375767582183024402366706308716396384185067512720005045612817430875936587035575505138203950213079190362791707631617922282553826132541600069938271077857412848996967631212613776972548008896671095664454844112355942843826724067749963718534053646097416021740779379013709927237046620435498675747659494079523023832697578697179124032478668579259273835449285163263010459855666040569757536420522967325112439497269627352456011527406338860439001285395654840537278397999966859583709000447234193164195310913570866918748890667370545788226376150558038645293132228501433178138299102980382480469167862835852515766062438493444750396154590648331293758641644943774019955990574276976176905973502890181429998394816164147516107972595359382087783149852769923116735098050703477305564530808998453873571376501828185359353246137020751947794640570758772035437901286255805309530241765389820951267213308015278675186676961749296639849908530757700768638349153340759202546496506400106019236605689549008850935726435200111851408520901554663088060746607970972431363757351713963615073519275125602468890799447713719587014073633369486646357276536730242914077945314779143303510688089679301854239259810311025143655091990491372934801217371636039853174807142662640631533353085924760767928027355709840128013946730242384461075598726130381425938774133019137395768165808851734114778116979864564276591536852920283777189321113269054787988812338456962479712055043643580071564163378582881708311433566589440048407227472770365643662698900128979162064972075232909113057949401363930390513045694501740481008562356546104583914991983323451614598504448585557290718463122682769871721068806406760522859282430396177961427957408751487341659464407361067273535963486127268131609113872794344290839639567868505705687927521913833055750043086136829675098730155763596067950913570376467891711319949411805778976932222376500000316866431104789518381918805236418791874819241135853905120025439926665935714358588852185060274199834672876229838217053448711538688873019654731603666605106747003149519962260435758271890505876962182113525528326486103783885514002968170349092304807637496280554749164136100974849474889750856279451638865620532311753692194177135207967618625995021318579227588972108959167383583031249785704762222741909392893844504851757505559318493301362574541707697989673476449973834992543544041901877771708016158977495683632519124804822298231572369967979693753863286944362502673938827839855003547578001372592014231460930415417503261525711328414241149082608188409437543446151445463269186494697306505711405352129489389805252021065480277645365325841787008114651642250517946752667956167556996421218584052139774223153477764526269653282934380543415946028241381954665552404991149779829531074045657498612811312436266510920644248726156584675908883088721246058618409767315984733379198896498282781849725842027754338137831448721673741267764551453574636385958012667127326435379020182820775003357692000706869460507641664913987760452526366622476371526902852572847449970719026481645846268603201001388758930824391880201588400864618033501172063337234134603470082764165613661323749941126910839781469566582835287762334257599509035103715545792499628101225672727262261534458730985268155313689064791831762909667495611972626054487766841045711050534402947242178258057694104977219539867730165323675023920142811728577168252525602541338431070314710224332996242654649023450465301125653776749634764173819095239074298755829555387897838850855395785861649742392474388183525365692146582186927085816080693431991261818794147680119682521786342155265435491870899587648721558376045818225844623058189655088327962610513182951671671235723467793634109292234438568083179882303799528650440965007997536081381222368512389332731153166269721084952010857578695564003128741275267077294687687116345019442212516554379283257096915212654215709743964254178537968013777697426050017730875737679213563503392750338828444197134751705072019103159903009251503727136125592141988754308807665519794615003663449604609519820106614704474832886149182271719983803794869901956228360093370136414421978497847645058809597220307278703978596644088488481267641691794558598473067992888502065372164869656562340926786808305210022648147269002693081248580565313304971803152016263034617426720113871970624174686740373128009101055353777895030851145767672739625452625740927980677703954051571741047400071475490479528424853787003768451534983751845186446163321025330095247480583358468962740670339585095996911091031798288103542540533709285687181258289080425689414345282616636022418380019505050042343484528960494709640048074728750682897263551974630166041786766671138914720252946960912660816344527955014037528568688676167154406039165650294314936877424182286126799633422572189298614154702625770758145020188620703091908567346607226984335444385642914092042816107691164119305568364390073228238227084541023492566168006522588043637337173416901490934377365429360503856096362809137389883350995564167507371824058717929857572868822258752737425626787577566397202530641045034480724159301988252057718075010335366894932859162435115526390722136946146367018393070167299720789659349253951134374739956018200168630241894511941757096871660956159139718118585896717691864476740858766168310752304807070490918065238989040619889286329611638623653286374670905097341434967050300011919062004975650298493950720916241522284091449832615413366823013814179547878493200806196641583093871900355637659161398973619251310670051068155178012010836151522952562992285244374269424001163521220602940598092522334932747972824170522889016350756755562652833476516365715185430978100347787560947629207224033383052937814406653522260537214863349019344970904077678365168831694667905454343495330638801287473744080272851375806949325499448722476413029799053087483120823055946545774474814409525943774373494854593526057625192788631908567375174927666964292469222174234293818183881390693128946007161293201597381729903295747000002864874279580750893205615363984389098971675635561531183410896559277378142061350730595336842600230799439778233012957862634219955795152611017989843171650828001724302617658227964921121274817430636720570052803600446247298528886817138888160230071726105972488728823995571643243768690955313828313190174925084452283829507374521924564826357328708345859144170178738673447267104634786685354824535133551181909550590538380401538998602606872150979462722037399998974647829277305813166043742596514551670057057253016046828978584150939500063311549604946954884829370399508614106118463392596397379393312011326475050715960375425816934439242005152295953200123970702442515204702862752372051033769937124283159463855964096053530840930968096894554525420794830636820582415207640720232144130560826366372019686085958003001319583003961836797076234316554702849587384314763470333550998984792928801680649838004824375654970517800296208560552773081287606889850462225943796534629890121741409857922991404791779749981770007942976488703761588470115366400550286056668200952495239179992847718946093651966704370434664379307721561606546617345470893556498926609850763502461114677429082731411395392411509164311302937190563960142294790117503646161274229921667274545869470240531685670656779635477644500753516755693921301206506674042007465323975210217481848161702859998181457766341943370724426513975804805367003649428936680875817159144247609779102355685527913120221114954597094489973864507831843525325622313714024980120789558384631377188182141353613503575025942559325724496379036361512704455893970779375724103070931183373980942211515354247328199661786926797360626245501378281811427527997226359264666143053126025966522477943433982848088223050299699995930905806858243088123268437133264809414678299857796956822647492774469650168867362300133444113967247021751072382470208105892982755223103700799959853677791046843611657261028761784196415653484830713512698006137691790879969872324458568890758104552020467903686731319211183218401706979839488820719873497518634902105974128263701027385055169070257151541702869494304961457198015594041051398057195275986476779676724097092512109416763626792198800745108686239355234073693678100476204274960269460016586645521696880069955959541886838197155391801028255546123023269067520526186388925441499112273950272277095252835737639309624738568751802426625378745260885931626472154151953827897972942430825189288388513313769499652035467994268225850538788950917480858464824231440016870237165517249832800346385354775732634052288467007890476529751411606228427936812599745492803111889982818391025095782735159176700549132590278459663290693629311626940005004515537214952249519910693519944988765010514259575528090707693002849605306058593283253949423299480297702100171421619460245690625465561721081564781251373012140575902044309436953650506375864514448869509099342931584856125244572429223065962363699317852495124384203402718441539491177649043853537702832669371937886060338059115792457906403686519523237142780966814153183625063318730695412744549296113790421111772485122753132823974561279336790396687047038434494876892950343890245353720337608738057763248724821432759045600666019369268747289283943007819794475033902491597368709988653687254554331761480585211591083585601735560217251384816133719846452231219363563969093456452847291933840117299100263727812819150068719628280583427342653495889654561403789629772471586081578090983033316224917930781296955192569249966732003004887762290021064339287301532037289235959193241504513918532455556451185914753014965847716213406892941615254864611634448173793544453775013897120431060787673247885406141560363109442271736096737212790391362278675398294706681874944756735286697157896612795546296426363480615918310311568094208331726120004523737075321426676520308396411325176978980071808259308591364192576079253566909072935126710664263126753422738531023910349702054180138397170164324905585636680303845716793474859899133693109415152415384400874179780295907566843215233148829173471486435854409508653586307850798814201138382775919238061177255297481122174100596350320189597201827921207513852889628260397119247716790342381957607121535133280877250537219856161110354449850876999874602462483043732792072297593422954697446883194923649663500393466154883094232429709610226183853112623067311315661348758632593983137292969736430801408824381325141442489219105133543939196049131889553696446314621516252674495099603768647760802995357942055257032512218588962273356093794926154651364701559421061548260191325945379125666018681650607494709071988144069060014326606778292662085842710355233168106287598817572988569526377906677060685242756215346734884631008479302725257466124383080264808096198258590952639604354217565615310470967435557496360853998103797358190689268064456076378446999948468112601369252777119725514172013850163029943979215043533424435163577571662984466280649352917064756541784668873070314659486232343321457158539502357900788598392286180526021948625159932281683874919096277617660706327415120422471318599835721246336453796295010011854656920068884691392884875935326525346109000045656078190330218526918811685803120705552958137234967672138251864134841790574802702432018367460154916175368673354782787838737393225095090348297636515467629668261925334042126842500366503447545019818021095824079889028480790197245771882546440751088340344307741000261214126217326182772766438219362835368913305889166303438519092863037195908755095659489852840586708403100850694719460344616968093834568687126517261170219179722324240159950970174571701718100403171960115095165518118203005750304138429099981429599161527808154311748521983070916232492544049537063133210568638561185820496910592549888569216439257031915273608319456212608334869537272424436501855802926665598541257652786157871210649035900984933430771335941633659464844706527692884922080225785034249795306903906739507999068119281878262271922447796325673283397756996968515413743833959257207697626942378388007937435373656425169846842477689794845653310331882046640452465290708116541788055223083702849902774322583237440253607059814465939559910285782027275337788008636213423392073598335516477886280176125333654142115261635713294842346493199054873668736943513942368616037799038665946284826060615129346316261702649700000708451222238875610741107085142032417322856810440002006793313264464732061755708997812567872092808292759832586547386763442548379820552416130888755565364848269622763444242753969413245773378712695049188634764669461363365259867793996948859082404875420788310584684619497379262594370557093919514309246583920170416148176991735849046170760626704433784589708314092403538492498275181074574561554398379214957349052455469583869565509536593502818150028674305323274183841817957668537284371198769257999092166471627964483064000184215318824099986274002917652686164354720171879635803431526040870746619406821773548206931657019585561437170931298293661157686384811806378916472530939829883220334142245023457266361660198156799490980661266630373855002544344659434299219318348895244273627427940162321073438559674400868207261752846816900307116359337068146027254574955994945598996022188817096161515688795013132497841604009697830531114610936321177900317661952019591072041718567344678316976112774299572116389720186382780987803848455984012673454989809426413727632886748262835233375793875927868229791717146346838254974991271672513175488361267032561182819330368458030827510680734825983182853096710285232169660048576091714699552568069429362692163192888959962389728494641532385704814984146265207085931871732753981937562754855321253668653584795346220407529641377539979914633106554935644109373111257735424743852625051217392329152671287507416540123130128397297896251564407581100359746892849386992826034261766878731973367155425773118272832722955450422600417448357467933877796440258946848091942438504477316111190174610658662083343843661289126010516375913754433218566804728407849278405714273360672229799901976760173944332955023743075600849275103721171810256057954757831793270471191425919037231733131524695605936485426845290965976505841950533114698897499254847062214375763280148012630635680666852981077146737434716488233800925977374778832184645329608122240616154674753447753064394184660592206566415968585934821034686698995282979447335104764245888539561787050969618751594173425093084761545950658151263159611178049267109391577747727026692113647791094927713880745581708023094462993507284607948138504573983312329891084052381619473606213912230452031048712537744087021407722661954449559202315341599695394636977180271137537187921924153370357486011879158429075613723525958863609431241093327403296034553553486645774213949975083171309032427773480121880978402059645217501058540077975604886298441214326348641882056669766802059325341050094887710101736014655541058951299982131168865014936894982957960000512580177127250807036400398637742196717316886101801856326826096530796832858909326759262783362890172460034701203757375153721227108211687805228223287952170045911008995398723239918823968783100330113444669519735420868933453876286905137750098184579705588130818775525005326082089736665711572489007818695264745231171696825374905187779956509602329700649908946837271329542696723396996457073647600038398566552615797893935590656236605733888824692418465586189845789495094961353298225285413367138738167420870101115572734225443034476358635182661666125438138033837102491867391962309539229858564079588791044322628391517392850327905481963165099284936575103627707728627777810878921792601211382994274803715817455698825238256366662677856656692436113187462703736256584931992561149228709108539927376332508898247576906346386059148971016130143205892188161316517467192284432879796886515852684619532833144285903986487672686032772801046943775120054258045245583316816022043097321409828281255449881440117853802494832484461707596788478343366008818950841986601471748238427185570721523997185270247486851840478156815672947239756773337514220069565573074525510808155736697667746552922849052677535907628127409987964416946312258755712254654835422312450229519902506935604368556831879328189939176297524367238671039190447763933742895791085906124406803820396142747938761181609006849705883186121200195202517461171799730577011309030460956191774749773319704649251351136737156764383759172018742121569953904265251849309492283707643931813225073252197013177400532167863419844274901316484774733680399487979925379545023658490894591516370896348894422700509825498492341584622861492579270566108993258708555345928251725521528980799901691309515772978720439091801795859014306816292490135511293540760657011894398586968727617305667608242725002886146282370152696199207774549623965496361820971024219934395395670370430802697114805957330844716795244219245936367464088656872243714667847069797904847843329313057124181192891141421494415966143898147438118449448737988305215440853547984038227762235544718126262174055849107766158069437890862822898731882905108172302691518013856881495417933334081600412947725355397419761243569425982738632939438240150011848176552457045139630915332463037648812190603015383864019691246881552388249976773252578992048584296235805103098629110739047738308551793080867308759777740574165541876531223629525021666419914062074194480607355939317626967848107528481272603920994577266696608092989590695540148938059500458918879580112531935939647830069553143796674160979796544925128300191084667365163717953763178746126392986351656241683738217175253622875659458697182656725707470922675395797710519412866617312194555625257300229829162121082473899700140383325357404518310012663091460730154548992689709471067382832327353688683673581282061125083571615468146474374813476631723591312836697860932140628491225825708385405373597519333379140373581268274940311234971833799123213557458724755949639124153022193110215964511315001631157261237289494504940380690764105790168156625937256878565163372355695330836326114246462006058744610011139853818487744401818360476826945949544719981209578036192834020787378225420215759751996058506630203461262866025133335643980091570081131103935698054570743709385189682104454032392398113915492583196798619798532013657449822164310334631946588436349901273689118460593561481641067530993454216612425335270199168456261508528625985559651809255493146476163644982613571012289932312654969641664493986572400622785917921145595345448072571705027857781205919044962526289929520101550552183809457211955375125613204044194252981042687619536094048317278650318777091498836081748098867487550940225926560743335878931221321261393580709062220726009810508158944613931993159761515776715280300433315173812024297598430077669380016283235544950205080660939628809208940735506424192800858845126247094519552046040671096354066928439352126179745221391488529805374840775506149538326377105590702651146406066348321609465880647289435885310356452330505587839747453702605915637356415311914692239270018340056725521613843323271667368092333330364653515405994603187937659472623487383969189486974016730265559479941474517692792263686585035444919723503854755958271875144869847303474328877028541463348445747940030137203074261926789447812691637286723577869358962165836940981037311665371174741894674361331564388841619762317561048739420258340462237748677814021533860503995855291861153147220188976796181878215487891090057267528521812409202994761150284587957947227071601803631153054810062439709354010124787631520455849214955114683443853078713193801727270965942240820581068250842606964307236678663843715352590462225375905019586001944124382798645257824480701114729859018984015040880981030606253758130181398263358546256744441698174770683246389486976604009141179102317643576498256359568334806865728205451625904695205690408070384534801913501323855416532030318880020252565758951697328398774200041961639739937762168270731770543264781114154941069316773892917252064336844371947004142327877231659858698760367467727224663623496205681601051322562486927565025277927369606763903328017415073043692287835981356400553348396670230888924810159540999217261190215536896541881182784012076171663274427890191219502829352954986021615082996353159367644334701166671088679671604584473712528938333636437285578054664940847134382809186875805575883911350191592965610185628712547171674688676442845381621515315398589312909460205401651068149077773332829890028393514775505044696745031992305963632604322740435297503942421980607998079161380916262530846713899921072620065227780467572103873499027622092174234119880282220296814802623305471408604232991245246801297458552796079640355201998571651086117255092394417146910566370283313907021253526357162845741696977088514596999737497366022539969991222910467936769298777378017349132631772845623544847796892363054708195926971399672767500546457548938694326585452841952743274496195826668591869718392536967898476013715183450215676477522301432320435295120992051496872388278158229653431985904812791978855245745840033144554751153228298524726175648005299408022007908638567753500175557262832827258300286820194180485169573956012506210397088840225236632515692469652285430225265721590063374407762560083898662532552254010847058937065750894137565909720050679368155522225035170449001460967222609880833146941066776603194904006466418531340611347270042161416889662599476940830384097495291269673544285550934104174246289147950831933687261441257392833156519692480201592084499270796534478680536979774718451838501713428870665989974469106544032303177064733665460956590396520182961464694379172314695513838026316807315857995070355558986309779257058493472332946516212533029591156780123132261793832630773791645259291763246671542392713784705461615068066790583492615327183394649115565178425088799601632337026146809248620082276254839743293249877048768664665389128325037385174753536325064943958985535124415797838222937670004266308585278557295421689236302189414001031699796913343411644752426721721976579495254191995500747421880366448168996943974636908705101649793063537976188988989382315186616425146352668489542763226026921817763552514748257894340084850972415511892888146743257341938834429182409175310026664471086331351338714161234765098631837536432670734278472561273418665143505259909053001440559369052599406904594453651319291473879414875215901640164167262470615780478866685164674245321106396350423651398363593249901494333023519314201439005697594331181697189549831369442845540088810158027650689656432260609164873328032707076928065988989325875310201186385216979172616099070547419336264251779205657702679523135967189448078208417448400962171754361724659327303267487411452343464458916671169382416509535157773308703506456875196713668574523869976359827525743582646249135273796581920892933274205474333539743600857462891004294364857940271525545561280855122850123428291770578465876760230362351171082736316165707177876315246976185422316969297175036292075046835373426101151465743498808866997793236804500704130131512906948549853004288116964938104918873239300838576725426677724900631997466632396175929907718276053916382907474565984284134728942348944967748787796943105817525307393384889739378584051820213466729271014287362197196094865131007953268055175794099469675688551949016556657302291656558429216947809649218409103860662170996590420283899571089459000840851432398282866106326245910167450657009925290713061785021250371483790425743515844449819629865901263781931351442449984381186108729813641208700891168730090115021877149579267466600604341684284406794509700403772499057218607656832945152751823045192856030744827652579751767976539036180252600056459347219964828594572952110102325210601595347924022905258276685422109475595561451814061025946278339700252982756701211878223925475456741727808622158818690543886449765869669098938396270805733519875300340608195954864867032260423774412439943641349708332796176385807779374242402265220649169053112426629794890381234383186930004678749099899644750134456768627997644603312348976706188367247185694104788794206386725697249659790751292043508034398103862882291400956442078613023175471743659201056429942613073737284311243906580597897635859299407671540720138375699437462800430198210397833753998344791661566458577957348026916501671434981175968575773211643517050705591302428415229933136521899523294380334367278772164742688487124968474479082610671798502602779927888022164961246320529762288284145037136812471006317927870852135799306885255387796987504433960712246921277210741404612605341265470784951687330895656981335680211665633748418457755878569061328601828123956852495403413748173894752088624479974396118788770430874409526470990228700270998407126234026402884869409447603080077365299824858024832624688399260760073822357705564378625797168114808625483522865812685995901707700323046299923577789507095298128218767600487911924892818752795518877303101867045555325459663819014197271215353064741575748070674859482168490916770391148070333026020052026353552336666083985921692820535889019303127843032513686637398307759498308207290554672391763681880000772412845389789115464708889244972433470190461088348603923880618749283937982033439594821745483951608069553104660018837097472685284625753362545146469410866770808199051703615296857359659553155766698371166105557905022045829273061773264646740828939130327383069284183036591948906054492976620981726509808118748215630221414486585151709623893454677188305665128444542048174831391232749614420520586692361628964837095329164412070496723938535307235091100786084461033607409806972983952511592421687131967210431047091500935428411640009281116835035787734220380929761121469686416432308819550710780280787386889874302894654172978900112601087061326005329617376483780806442525618832910955183322145991871080415458498853464052961252610854996065187818035488950003227143893754256387489416404209344442040066885451494011875064478483153967844488809608621330251129239411769540037066312405930339100483194473904357797160739243232473777539236853245756231925016437467119213744541236300280954672370296032010751523817487839532876797702091960044175756957032147403357008369481826289611488808497624090010357312912058814440165914404021091044360270424543469977125825163230724870765228808456241308593419571573775509288401195782399743601014639986622523414994511875303297001260758448141808192643590808942730965392215251303494027166852687769424353424891828458466995244211211433462843237485168744597486284590777776291942126478212325154419355484265377034941172198587850356985150571584994483077192015375836461362816664010423715859360346977172763753455783741862973992834413578961983500662443461696990302008664237021607242925060234916982984158315691833281709115956260386271519566553325469632670786222570893368563606762181540562251585378892395510085331169209997291401479478781602868531713056094345151821159859765661448433770494213134991841075915543889416287361050558813019272371952486436520408698174467729902311747632461157021499806400503501276711408290934291774172943411888889332130412821200088273869030695252415434332697692193737099966815007413619581430570200658017319121194118135403301073563576802834598824477621409319984469717089452116807283169068702822221363768363072981180313274199889249558941691490781839627462807275317832526057116450150144627175647165510406087996163727478551075208996605352349646631221315061036049883182831125720434013332194584513999032980520250561860013909322567158454634727385228261557936142160085464429916831674452508456995015406198582374206503233192962069419023607286474393466432785547265797821530484650157852910972567408259233941513170851240468516684292302510954124590968568527192109049258535163108389208489679487486019352572202003477851396838175552688053208774506184088889981160727330130306334984838651520392804521268394011218069159602927208201264663285799959324166945883603758863350826344628676315894231583069343606983570828379278249221991039195732768352914117242157789398168152907962067369505023173886093285327637496118920321875616786105339798132506252576298133564596171937490927804695855476225921151125324206332464400808223015107393285192248133155444367846213299087185423981297526221131456969869087488417680064395202520518355954385408767395368462378204266104080822155872261699639834411893829148852148967013365435236210223952795741119426768268697928033085948801310113805764050269300073498531859489367866933504629274621289008457692021128309102398536284309385972112473576545547721254791269455838620566422492340901980598601614812918980059302893754853009187626082713980518435642000170819207774859099461795670274775056020481600924237900235677328329887817233966085070200309395956747162561559220473831912724016884436007345468220879236697700675887737100986731327007377876946959497011905246971103935979980938089692457006810579139473435965094908804754429718004714150850227282177010000450216957833194172439932714772990874540318702512829066779273815644041237393716287167339760572636505510577010861436035159131987567005623334849283325810755515360004738683367891745402519702016784060805768253996021739320368136858406651371460816041947006702945787566763006084735390534140074833651378610708008346398765952310124923869510118740854590534003552736650115096923187402288336244164077786793504075725385293048257707026440728967936795388387003105730218547694660706907327235238444979973621708011380913932042733045212524974996261840380624758390324917823504558604913950468110845694484775291106166144841830102653914990017283063615806165904394155394078882963873325754783609283327749937692408121214477601154136141108194718919662663407460739522048593937909558649475192443032264642929958271278422547377761660723887030050998240486848442475602521813108247472684535732144423054804406419468184699730279822640549451960262917558200060148749532142241066427154458259847877413035243151935869600279397759964983633376099208016952553912922532288653352154986091109473731202324075223177282306071120095364362558564988056165547833820694500442382102193426113644960910535917732463161088571302126915129981268507330331337880232898654553632441600813284866826221995224437569080306644540630741791418625813383384189854110406189461011708572337970332056848125559112565770769739130335294720823871441103413735546588392948280810919852231271574689300751120632004078832087018300647778645154325161761735410902379446553273222151374082395154729260565945588737305041610907489764660386462460631993263769240855220056611835352543936934115343144541306945604329424749688224175469589306109328291431806823701155527025719669436239359201532320624412738763962024176433155904489888177326406978353065613824746449062557915348529879140735071494293465518168047352085526996021489215165087255217376499815881878142261648854738447996529391672743120734571423492695995378424871054674200296403189951161307477867352401277246254406643502327794552106525061597306591341681449654027043702164037520507632752841142909016542687947463007718125476472737631335490850705000506236570489082347324601212442995589880859847172031164364749874026616157739249416969300173793469049860614563349180010945274860872253748588539026899114262006911973571548568241682419923445237294040267129567070297916278543876570232483177913969679710982159558580618007141564636513283183221062483315082731922039525002040676338019070181654190521679302445437542349346155056410156614207139415848966208061469733555942818023483295417102241506385712917582772489084069295534540850281576455286139773934318879807180229277592626471035207892206942918733906290555875065184429865791795593384101415814513542623478575525297404517539582423221403161154961414402063760577235583676576563674730565420881156249777630766369951456423252376219911375603537509206986616665588535518557413882174822157532453467862797877486851359270808744899791884351070173325849033574679425088036458421503162719734092798810592047870811281870336256161723387437902531258882862846233520742750537697732713621815075033055562058381572869287777563640577101798111405250001717317144255740492056922758048184554406693031607224703700567642577631489996389706928074227466163134890387185520983690922958620948753923639453818114660521416198662032578400679855537826520001511154373948242716540670209544789632676204136497337078924799010614906369204409755760416614159351407079850168155133891713955022896971277554295205996289741443652010137591987336000315060413593743601439087724768163520479682195935100657954676770011255620419970588176974557678014593680483708316215550860383401183335375948693138432622886382427302936081070305967602402331950829707977286222442593051532867054846559400876987299457629281545577802065387198223669524294774007534965279310873014856723592747726327249309142455083378925958979026979276827658654397896076568184303182161435537425483997808363405827498039927480288855929630613009877456706068331578271066979604464764706427962096275452530643670771776356780826217079352010565948603934321563709324619292943835960290505264330200372013422041782585622062661812478801228385051992709584891384827500895518555126568504234397076576914512614436281039125761053409853897815109354911460652637675124667565532263450428339133354477061677592488250894410065021436410575549568763962655231499820944684041918982754997149695570736123821959639095180880628851110200008079548367823903618231352385047072525192109845774456747098367251378115732144235256884134607925932654152569000381985574486195873080228577977723252508758120800416557802175712289052617890060413275801404068670462163514484127602248690753160000245915213448743342285828219271803669548733102160602388420937029744798525138787556960433120590025526173152583982374419320136969372657337448304149092073937956311605975217578464327846360982269302633399336168231698558558446323333223242738213474608921071121577620590466381730198425950131232606839641413445638454446051406488593684092776037805307348758625672382150048562902727445288606598700060527591009717738737084531319427045998285458422472897433615930292150460899945589337607519841638872247906973093429677632551524906761263003722355574189652339440142464027623574387256795508258033821804186019467801310300648314841151587466951455235753026799697560597317791027684189572801939393556714625885104779528358218443931953925185291180738543431389878599879757001239008971767147647832843577412848229880528009261871791529304403416593309341266483757596372462499615999149105934212691489186194371111424124124512065603650485939413429653450159695601387660530162347944837311203860505063501449357223611645429007098567667816235667197840053475018777876526986532565510985872795015810386221833586290878652135789577072423062734704591932878749666600836446758252551711538871484297298156038418993849757158780826254685063935889736328355529259791119497251278994210084308305934130759214807709455627652500687485165316258755775524819063236393256151245602537177461941884920119274710817420994054368391504517153937778452166301239801620469988197764037815203655955812269838793891043725000643675012221803129491879718466298918592517707717825852156318443372522945895254149737138409632181610368303791432305940498859854704036266584290341856391911492317529193621686243448234466886584152189455095500872952790675140960960108912427890438769051837354133356371206169405743503415989881621132214905106989426725696902651452499254166693599511077234820398113999385483010850666658609868615920332772019823776267421806805329700592924582120264278387859775251067721073835928555219085675945572017583028144732149866913547066644574382878698668025359305518964863423690569068962790677629602702066660690601897943922746870723067269487049958580418245941979894409828999676585352306041931914952202656201241433764733884495050509985861516909151407211491648408937395478893072682910834821212186335632244716154099115011649368437840008894253594472393028464757639675553536259362203829289528972555284113365433711849841167366433989720763272063136237109174351127381905976449372031439875747074537501387469706792177771244756742293756791375753104109020674658536277047769915779148953478076119247846056040184586941053624126174514268791061428839271864392324228285629487928638377017044113965687143596642250635164404328681454985893685215578726541332780739716785364284850697904388746012686027709129861054604137959239808345580976861265960477521285900162152455685735010005477576121043979242538291838469653290249765557513096274657185621276103652767211032013184976787765413438112430507699653071147603565183564646823209293633295357970401488914734794919025803630155919691035334189520921696310921741146759714224868831029245725355579466512164392815868491969906184370691425264163907645320277173213268827128991231373218285289231189425941446930442387726249083317492179735293992528687688395708214065009385198578724103964023437308042188926159330726400231913229201354555429016720212326805133354796266907124112330810686403970796556828307534633895360728987387585058144530136825230543523363393212006043985634087864065300629826891708727758178611324022902863279219167648719684838224301070017791713696295570152144216255525352642469287012994641062492686158488031072773992296973923428398173102055466703328925041032029652137231978068899437203994277218454318860717948849055761278813348735187400138992518137917234722693710465727696850007348080372474699898728228308758167362764733280694093776764388443639481346284961702898837345159586038413879245340844887034632121794617758861994755941278040135029709166594828871838974157111384307878955230957617772802278721658636098435515745286276050672448674296702858132433837305186052958323042739838133310661441162120183881791334836185724093852316145679030253549921688031259481446080174920144160649088207666972769353128052743673128245018697444417758802611298587901459514827057217319252010961869058215748323649245106677190003269409839797356571915202031742570739666806165889868860830637768879357893753859951218720849685466122394967628116826801213070588139498427289756328474876642384711676655073340353731648445326757611244669939610710233908183116205449604213667839008688564193654964723472090445759532620366895005536413934019438701638457933088076434180993660618136779831715084725185677564863089142238250092786485806540664493387968561489407241055507957964875803048610191481962882447073756432445781405884408546738353573898806099985719427547064154828216128119072915696367598753983804347885269150925375171346699522648808849624744000311777600575181871120008269476701690924422851444720284479443758456074738546847625685634597303943788111598871841709722036792381040593613109553200040598754900422104031921413268427386152545543091958641120512047726229760469899864273492471593964774616310320919128948819944157262884100645751540410278501278232609276705274863013098054812456630487499752722083050118413988212247601520435071399606265631737370854811616301798366111488902661109937511982209009485849977313137427895606684803923766954786120412510671321714454620830443971084322656588533448741126631426666613715981309725198557828511182760831520887959905189905502117509463337204866650196990272670804100593992855692675219978925728775618762971422519665526165133480168873334208290095199500345571928509487305644789893138934693414597472522288709559986259439786709703443333299414036687806698444823286145605289927571961018500282243481700249198977816020930895979212436293476330822782395415708639260999640350743624796728565145319752997220440557996328103606367357193459129726701051815876175108598744937432867290028200332966502861911434870462109037278131262702268388063560581849439570915374299588404140191233003484961380348806302825351815965019066560426142162052525688672152934424075052334947780108384751354015063737848264264550683227694884984462123876577413004811458471186325498911074861759715503190875359278473748084940755757737880701167566260456893913472692215788052886308012363029226010261598699141502831957785324381890054814679200923435192829940676794637489671660643781229194258422573412909877246712262765417917000105048817781221192828542671653701084245460834534842418966232363439319222238125375183753074753228437731522804525499214139092339211941376014279582645966170897607353449444013890800805582933966688259932231387621414985130846337170614252653388987094655722226770392412296515241691397514928599250682622379066917383295711146510941809987248319166477154435126189685619222708593028435844481748440942245211823775930138654445024935935027485524014912901972131938490544272396735031642448168715187510034210962086909306553020566601171215109812318328997463652851390186678765504097798801440205261042839008188567404490814959701446162473728940680861610530800177409518361204381978252961675982461231004011868531821311407939729491065314548765621983820873741077753590463933817477090196936907511596322746708462420524532206638543826691871806363492205247731641325201942452093221977614172129223157256782201036945242964153038388251065515686431771881235430386040177471657315974202194444392716255674328177992223689490911914298489878492864628467416976722522752913521697746640826933194038667906273599574651457555961064512104984923752078882510803672601928931117243075117621348571331209421102058030459035473025485339023174978653481252731816002476867085212554849875884874585084439887781468446063290338920958421540338300818903073791355871152451694236756361528376614806969952704766868546754963071628403028518569212378084011232558705406202109942596182493732443259358424063111908545248210201375044434083952281479334644157897298574515963384733590227158042343553267484251444228542897962719105180251380124520309958007326952152283906515232745260920151570363918105112780789096208787054129199294853742468021034202009552399781532774414809636969598629944592797561077331477739653383385960113350021897996950549441339858738807946762614918409400360317175015796020838611628916419961139944603768524965377445602990787660419825894177633221373418019377865700830796442821443485761992136959906003179756207158282508353892674529159449060906913027622358716493539255049347998388810999894050055453555838594771415099754369196184840258895073648925678939288684302917493973654060646790448347649483011477156955932599829123843470826697529221614285865827081077961649984120784926743665449460432593540853706544240213271843299471964080433617766488091153972517759850016958939085322262374288051130119714153964381658587224842620223950349875343887207117938510628999849281777813553137302985592530934199309381371198648116228872490642216716877523679303449591056219765934708325116414694442421521845698956519149679336397675947797254165216968820175243496649329686449468673122572457997613081465843256875381144274070652897755883842626203919969056535435701248543275294392227432636725629246006379054801142775755507808628936407016540815865753692410367792920375250824470633931317413124688633066871036377318436134159275149908306669544477409432405205071478840813817169062807558908293041335997405557528471269568621390562853965372292575389670509876740964794536903716130849620917778801594193184793307666400409519178574056757464335161416046327776806495474666152126347368097691578563797803680898930665146127421897625807452765837664592768061263573651822521746073140014315581542542203677534645948697327238450840071876047602611097373982635789436483430485159740776671639331981231281046498131383321568835588744527637253320669482551959433870683228865111923353629994193639006927926495206710340234763812032114440819192073014640616551589489671068254088732882259662737276478748839084113139520699880415083552611194411855448882519471662248084952366581019878836743310031748299892497069305352939116408937106399356943253718765151415837648565266047267593542242980301377948146389982414976915724210297623743697743785183471677760672554916191737711519032718229290841243882484235412953293936393406071737847583967133592943141206342737987463635667089542137537107536384638385162146307065671928637327247189048389699099109389509173716101694409341144180337799520962729400754133781661165384364245809570640008624374252592726909269477342718835798177088443599535945132631573039118212445179827000709777149556328941830305405630001894901940138222983977409614364663160217643820406005291215646478789684977596712400340848907568266087805622707230452027608678803907304062616384764950624353136734560142002407659029974574654492508886437749220356732064231716060178004367073460921600991229398823675326101468804402507036229358958573938540630502090431475000188397747519651446068619415079434583034812324064390946807719012720682231065717255798374119163730885425695905999678166315225682190446661412049844635334892353184786333722226988807881751215767618054977641747745059154045176790686902001185228197348441096896823844620619564888260036946730508536660322596120189541249091687864604908984408076678247436230976384313409445563651676513891589952863669486128981751693668952937445551266757520804776530803449148070738475295620203809260432031391975826643019306548680130861296998967407578624183523561590803829123876158284289464505178613157873842263679092476844823304477456568117327177553214266564867928463649502743406765348015736013705165681584734286077361011327221613671149494000815070898418535874468299580076623732962845065381566183839633631146351946678474270994417101689402482595458427595489208630539126596902755828560827567752561527904444084467388497265985059096857058291168759958000271613655981292644097149757842527655053670576731603256398188154179941014420446877196395835550205856287886145169075346343288277592243913354985533735866474521057757534814898602317278405254090279679295977860613974731226360039866388999487152215939673663446166832009933591662970481498566810338092213368597221184751058635304387377299104013512411475955043378420310114573499775012336641579619482277402341116068807606047694984490010335890177758117438260769674968909034135674932447742584157227822806037784366726494026224220317738953408421758548477320722810853890359590205671588737829518365700814627609489434006772543301925344775335302414408384079462430461517588709463953373006142909789561117252805704259042831189494972438380828394830659378240313352571436715943047992572518984460958446320439091394141443096508140652124855580251026885001588747636985887263111652324421076628819682489801651275892881987537316236564761836226385341715373598226173591366693559626357441069476522921375209502366841954424250741483385769461955099666124900312693038842787038335835655890124917852128652244662973400307442719958801826841295826423595147311421567299105905405615534174986608576061909125548619615575293785675747633196193671498820957630494590123089267387881229035521399596486989123230977126899243975359966343624346263490471801796231881156975821327626115190895080840705420018075844082425391272891680276752555174476671910527145915838302118762482671621161570538516200715586070412523982133080266314842818421497847873645139933252043212169111965337363859585444999618204209891758040163127795291044218215554973458538176392961902935382365553026765946287686968864499527013144753409197569589165792347960836063709551636803679239486123839990213232248903544986729270716953602182470681468857374251846499796355814783443102638511190554462432679725865763897858503500713716472677304302422521117084260096401944612004656576783652031277221141602188834597312673341459091473077487130265554362831176001968621460064056917225233472253011228455735293515176869134551663048007117021229774604776685437475891476849929570437776145055393260952885716942066890165977137445826962959512992135298164815059565376762991581487292380512780101534691668467309619747820088818391573996268512089741731148387757091288094411398572662061194665738251127130275863543115357956598834337024191100029739916397225105955320419015742223997531641917468964339789427289305902584326632660635058295159130912072848605789268274570986892591824427698654138965426644980759870290649321075030871261158357127764624942059500548295969651002967011081011738725265709414181771527060494354749798559777723375964801729720211549188247387914277595211956024229400308644590436511176553923447857517026543739225126612777524960150801585123245067299924286874081080312847918840518341732434580348847269680564772575701324752861198430083785571540894193208838254151256579754767568242933295084161947912175791187963076040641872923099378312079827415817096290176030322017917893636909083981130131898206631174642959125704674017500436663831899903483806736335208126928478017906001840911913432265063741140296032140187894141658238031728053137130529110323021707335072793295372179972837791348472645370785566425694078796706095267412626475177642909233730378517167018859830521680918336632305494197891935676983082640432483415560687805405976327098466211689860369174639742278330550371296851849657318834358279252674596629679348248708143632724863724362877218531581286148358038891043528335700785283987702161755005169205438260153994638204058309586553245944443558691761710930818553461917981762373546670802799390639628030901195734701897429118568605860072988080235149360337003033869541399271084186296869594453167213387746809068419946181597793434290330098941743350986346112570212143410870458332863471387155650896289286501763473662428134433061836664987958969461672634142439265831784508081688101143718063432687758020470315902076200075226063706519406610894370575472022651941819794130399999182180559372660374211626120269774080402779851450542488486340705834725852055614397186668453619003777208162257685079971874979351682048187440433424895894345383628803588071489553809910002920139136639269531307185864708231387547740603976418910405785171388100444665381911829627427375273042303187379448015968387539019211673853780954212244966655237848096681855114657136573567239921168944352659359056564911888736369576553045003519648249885705048964609856373472578567505283610342539176290547112072421740777094415085099974681972219915172755130334941884054843761923604373564169606850509291554323971545730454794227064041069325091796196954391009754065816064910634406376611596226210556237853165331063004125640336022486521094019204008508494356845391495617816218930556537378142768628151952884426440556974131053448137952749160856573039307467887068652823290277415848882427705671682783433636435226695953288857414494263030869058675991043157789849188830442083034074667364052017591592805873524040770887660694632239715712868203687723934997923339872623291409318303396660738897644856594529698944213619019502178059707150401941032362075670991204784883738848356619207274016887086037426487872635178748653320992445938338352597096218431868347429892197997526521337694349645055748798650107284785316207527999974995585433823199465128585111641700658586583859224772312424895231734418452330111239724886132099387490991054896313989414842926561860551073971244468621165837918863997303822738769038297634753091228474317572696935894814954594745056251567724180075326533674584319048650500388653621750052846962436932351701358473215236238204546578020156410293568624783976479543679410590507037064146815063332047126054421779308815724766676533719746031117740275301747436220438330317014875483409047580405333347218219785615033860596137237282780160395529470783780593271140465537902285291785302654235367159016485419101432985130412412347551946408921618336603645138287089011447803286706156161018756425500764841356193412204572078868392664474150747902814303880679634882795866737640560804812065005904475827180838956433462362340600932820004761684219702172053647297082042803525512318478643600818548088391881386726958827862680596754761227938896621829409633413979616975970445843550335650332051226806956246145656923280229603851981825473552096335359960173575111563488585909869215815648374573235707545011793542885708782616707882961609634370088875943945560228732540592323618639146126664470610382193152090522881184975480521534037230417743873424679813072090436329257408891533276760220866370910806177113306860262906683799489066287810736460428271813927013555896418406743913981014631415099267059370006524019532871266411568702199871531979930759522306661474804371341087854801594072087492332177886607923119748432588204763532159582734896702425901656170657206534080527650973450134027233702759000471121512384037245324628095884913351956304235215357249276760540499362937833426203373232407155381866180355607699690551478415830701700815619792153347920293835335904222814577869811897194607468600500013467561793279691615591020951145391479946311791059028517860371998396523950891663567615444513291864342334667805434286745561275576789848348817932621737866105623991545699515333334115073170920287398824889817377055609168217764343136217974065024247400738471111691605810489244431519385635169037737493744756028899108169887008694810416273374378544111984380620868282565939180484643395633918714145920516608337289120214445509464192872276441728093674274126864520390483581871911713829315850464921644289459092922714538263484817780111605836879559619606485425594951783577617709022097523707800182883599710089907154079553062975026039971576192668702245333470560403551709380792182915249380400024583732573912728747752053191999003552302613997251903309565322612662875779944325291414329820796972726638821813139167452933606044000405854483287685151566820826498405772714136914863577080425579718084525864406462560517287410509561827252166421289976577352274598754700150732619319726236771756995761893305174062064996958468071092204811451566146442776868229204218709378323158307724702736683041249452020125806992023489602491691112551766036600595712246753010224627064072984296726626668153559746394864312078826810107574017120819559696018958204450298985102375630382779124546021484905870148481271428656379474441490893436094465014733017364377497529355217103916022312467248298349106292694637962509839559595020743656957592455196608434658750678561441612876001967257511697332449970149071595819241247062147523336287025058952931787416694729441430053498280921925115014682562410591110696512475014493445526231816629449347949703109533338645443920280794470645561183138860905211715330062291699990966176680644387250102902619458296096005178210242806513344051348475959075815492994171959397526911991260390528741409474500275577851427367191097787682462665778656020648150557513623887024405054841440245235249512643846142149296510443391329327568253351180435861285477525851505228329018716181102304175820577590288576880284035921598009089771713820270231870173699517581807184441612302290507111082050933304199815535593415670839597156151820149359045800838982391056284592905701060118381124622148814716951321872565931619883220932378262716325383551428249786719969133743963861907931111008277934514572905437638750329483605358700566185506449033051686052879706488720693987451838222338414065998453054571871151600328513402779237954921164494355868095854391313050526964255976375887291331068491251813701392843365434314365662790734557564274449898314869624101315377836393563677817093185632329014000418244540011580035871110161447773435180520128968223685503252353984875540549822295655898801518380538516115635357237187541544566009457132351842601192911478939108870857605630832458615056489575541046995052936588463797541561621642816194951208124193541085659785906928185080986305545012223940105347029686596625032959964356829752711321404794204888854887433886544673270708419832606937152510435871684788215831165900764757458948112507204358766435339328511745825093071660544478206780695375770915867696474746159303299039572128341102515755393140680840428360475116222734910558917997132432664384400384843193909707438844993504740897714744345800779837025246897066029229883875820012683334639348986501727331083390415765047929089406926207611504558248588279796450683213484914003747222273620382101070306104935829018428058514493643191236126639729347899992064693405280806568423547205834102408277062674562626053456754063839990269171756165667022186234083815655080941611410857029310734017431433089426744778784972316531702293715676801924897935607710213291703263372945704708558008761894375230656463588975413026478814908751734743160379460810794660688365842324013423587363532471428325726994468346688639783591463141484346831592831493878590319541555089693048067632707907041114988278218815409643241296690682115606699068274541223686083970073734399333052013482528835584518645978624481771750605701712558020766040413670221830197842901164703460174299389304025042612904894433812363327763463287205183466930281202418433260059050985439699869810913331991161683319314639597788797860167299687145233933929770541039313040446517744061554619281002700894381266276891459707933884036182662523113921329847705362204529059017262371509295741740788843748143402176891381083020558194898642631956792660537957274029666631213764862297188825644329026930049743207749883246179725174528044828622424031808949266816257132522300485468377906855197984455979146068057637253500806230506782901840600776099169126041995369227090187855592709822220228022591809918774330924574535967390846267750926208887123767812518466892678701105260241726420875946950189828325729125771826354618221822600933737202856142643922121955964692246087255630056113493067023294964720448388878482170291690980911801563391876944726913475026096633313589625646445032069307619896050182147674687003174905687603935184367720827396593391519091873179911742281563944238899560962060393036796830556040784258222870860277013253014339914718120478990323053476545855215394950193299318817865342019065205392576701962980295257382283303290546937522561393781478667475074819283659163115216101481855083380314534697612034693227889912646617707016109374708643535474711006719143903408427944898412413117396330966897349180864457853281744061539060936515419240789942392993951421143032479559519462295213719039381425242183680367502342625688364078435723054295706195149282601741347627345153337489098189613644181086281706236889940711915835150937257975360578307528825811977514872211580045909036790577516941422075354489204781367295300194174721827555165560949867132540337465899187444238932118963849377952462753414081760918515874655196177185949718847352071511293158435597791983157465547058587118357133438930976903916184404168547326892863274899423110561777211104425004718886189158411205429318783677121835251031574643578561026247645178461030310422851091674900909672311430508433648879715016353614289724097261634860527974592679268720210833860883216275288429036225327256064230259781741333221792709501862900147897075569572441813629524870200610432895049703913962890302732706260746001341951376967323354927307479359734573364129662536819459169494284652448025952250020311382686373341227914326274743476551559104753408918767590309359422244140515752115806470002487267467034744679123145175616604786873618598976040751214750958907718769707471477782813237340002729199522834950605138165697665771348342949969283938843743286929572467190801927564724217169460739157587137423270924855542217095935314147098835073717852995732313911406038127378117798523216977756785693091257563117296139634602473699352120494887899037907013226250905981046746412923662641247773534044557962986389026561219940218749730385198430373542297986185584246856559107281174255020983826339202082815290897662954814452231732498215465701644257625698146300495694844416439320027258293813546614079574202055541704924877983340690584858436604458172412262521620345329527965254266385115219378534045487940855312003757280244150416974666271093426384096177798651028407242894556995220395324224386720291275915965119785469066030638943514317496375795038568627211188339358457760264952067074532453532372112279926563514763398329309361848036856735518004669198318779041478222589111095099817930830916023479682174595698714058518960568679781866771579071270065186048212577447175859391069543990138880806058595423516880024920751119316027532447688891889706815190722381817695165417334664610953975601814901669034616693859997886326233802608076475624206543866030514330504764716713272256988657065779632423478567480240927168998841481468022398435490829176645545797967494688639965174053817321078228151369780198699095311692967616516822613840549766425885457301650622837255436108349786933513466379237352966505200828677540476692785264668417637071775722845838783334147541659722570609174957352587810638830634396865803000459515271738899092497468918336784101086514994025154768430672566352585464041386021697987864186748759539449592150762442318580436741721537975645405846350704427695641421531347587876482389779917924155558130825092257305746379064571226679219833324246295345980838280154887029651515818519756365639429446107588213384295801794125094357328975573372707858211072396341751522208580490059147220555608848998913721373134401716674651757646085928049603814809950969034242118436960813876616190284496654205130085226162027963284700404695747495115956114605993892895253211646197536643617884015079265334630502415505543395416718123498583746762504867647104608052188346235850600665646879195414207029327815265282510785211810290457919268377806028738227539887072439057567422762097846828514511475662566961390847298852698122627804030934001930357600853817172543151394891012856180843034470913544262904081813211997698553321068301485155392874398501307145462156300758883447192977019554833613055450296453289992135657293023730703555113214680883732858891693110062040711021262486323366575768022470392467118410497153900775882899896245530385049626646969911706925518967294436610176365044849313176734231272989869868333836149127448206164861430335040319046642632189445820801800456900606909371431375402617780235441721627612294043375514225152833741455339687210416325815338165898386910539285832207883985975789190031164918612709835759841545760231574035921128389957446023749083991929652494421001465614629691537880315438634258684097478198994717325273247114538791295112030968962702788398792479576715703100004123698092038197823985486900208668972983167439392912257108485603282486797545735112789641664999036398031029643864703638999529994522709854380867968934192200997094580182706993116350753504648310814610699314744636180128433007364043187590561592131647707102089226654693366463407297324753622343806119579028493820514189794019746063169393717229271286801486970757260769573216460823247827494737541951598832860580803374923468433456616625119398252089477534672025553907616734834007112366740096275580800294256614745566747230397099674150317229405825178126784098150551704571411364002668748980026305432180069989052000199668797338105845597274918244450332590087476320561199816050721715584193742167093902143922465447959822184239502325214105783176979866417942984403419235120791316658068943312112215561234328186275019074204978519746260079116529768557133510397821603518432478717615558048882253607496152604368974788066167007907578318430793315086960648507730728104100282047873212517108799472760948781080740819721347890333701589599046822349450259316021758749008331047811758346586571109783959598620222165364212215646018148928281516211211601285783302219158975443594495017770747868333892719665857084108373001391746740962843544981860641909465743553349467003928127729651505931914968872487498229075236323779561872653879308764780301158087305986985809881063871467500993913263904065960598864383271270084704419522906712821018817282711763766120333863748258477015381124261775365616832155768558205378725685630032103314688656008024278330930391353525631927812070607050336057285564099287187492312254405467413863768772544916724270977589991328069033644741976110052339935145136424135187670128747247919121409964230714614254795258405449035952237606115657712222579639041981595540663568844354163265568792480739355028807463096664599633902835318192666290502975979198096140762269682236979614734238232049401917948815936789756606110745234818114070121811463682264878020265769874607597772067497441945812508860302022183442556436409036240103465726158607588039421532335095312762984879121480205339556812671814703271492727603579971047438789839835510734344964455831785149429974106240284443029263508688151153286305940367127848542204458183269416267004392959074406666297649545263619740314239016630849838765246265498931409498260851259141147782299323053581423525427254587641524198989059784434963840987545071583113134217515821257073798013292052078902707785765642898317572302336191358328110976010389276751081862733597698179522209216148858006147509061148891273926539097659159769265556537855892437398147184039067167910707838354735317963867559512655750629517065020326278177456916061371535290051813421621683250781646901784476212724450545202020719753618613195518885068064415298565503835384052075372596129381113242893236073895076837215848501122847705749720368192306956524521044253415531777333287045810138244028470022516844054724547135717132247852342475894595211380761533265703399818605050448742815361482714524234911348347455430717579762031707623566263911116534534801512012202365457675901462565838510763083395979474844334319867096809212596989031849246327564668944296759641529724674742803345688299649433861576440901278323630463723912527524578822833890468915651918104461747922587535882813803530692837999804717661570070256101710311950364633903830775186879090508138154017121206770407192847686606805299186366976603390250457350346053983593147444738276186079130786407146593561107168136498921193332976508371369345212557481343836763212252741282279680546193282262583789519615838429578851575722505443947031387284275414510524187222517774319860461644308900011432644550460422380395279075952665574313064561370713843069808830480893827553508691893923961572890673312464896849947830532111536087888156597002096349857806370944889618687620716580653721872375271390675446120672914845519971043889996713328646702798392650385472866322017481995140037169335582168840232539937665068634897902089281075390579759563290411604723899208649552795289560618744515763724848854208469402865785624319919381980891235168703143719548635182247075003959167683440441681870857442325356920831186856710647925196854868142125055328679349504815246382925971098755303562556139342788848187867832488592455045048998371020651803141197928705512457140062229208970194808917138355690126216401313563394191353517156268570149796422445174570062002443652819594833324108066759597232533598324967284535530433169360852256043794781449382838512654998693791241183161720406048434889895784682155104984604497244404780808994737258377892166606380196088940931447602936371623877154973970467895549966189983917658127001062329404187800541822208251278262320602913495359362609257178026350661333626590626175809943930680559800669628098940403911489823585346753951399147584489750634871102238099066309661373429323611641603045314450948434000263636649853275788643207242261844587059235765475883681973460224341681606973381865606217011663089262186464733633190671623007856082316058568050688810341037818556591197733802538865635218727795129012196405546215804342664147099108350306877329268849550304328990560878834028393677408778344144273049458366549399986338636422599134938565551998346192272164301603577834828168492330851987693059463045328274146549741687497693016391767647610829816647209335010083837545083427583926116329715689377606666015482127979096276056193124056541815303633100148520594070195402001721801587383697930033472334642876274676554110191340479315615394385378445108950517007998415172123585936043672860980186245696227134158761527951194056678549737742184118527299646329200758317144261478242486060482253410447706143222876795124681268008345820335530514506941677356644244762549906226730693856955362916022235832088467445206552740176421677298556969132458149681086697465405753351910848886045481668235453574194437346697226344341526741258398997550137527093507282805807907743353866906362163296720558308552616435930933721024799628170262785751235325822502538313439627903778631691036094587356390951645769330597371208271685659215885504455409635729793100884621006960838420610847746394792334688700201393434243463752652652591881181490619116761140670799485300266756744162543221344115673116181696897849978635562565704364851251736901685698731232981419191555451116109737183069986664800781486316221370420712947595587810087520583853865471468406924800400547800082612717788563255248359129594789156185228416601390450213917697221146640305367994680336645652926928360221321459856472960048135325371461391883142384963635532742716003582822689426583631385985389334198284768824863604498641708946902785710999773885883322788144111669144134712709698717835166877329676698223266964638937747743330287456929077582057870302529355759856632475725991212663154509199379783294071554714274597367812543065422980463565525310681874632265475509612679465829254206877454353311526107296628116960450636130695219520373639355513285099717380914353378599135236404175993286066452681142934578468970450665817223828371172792592493173900650768648159468739474174176048922917693208851532088370156328014157953216069366919961253133391294144948920466400918663276707689794523111241181579549757525767374046092290188643777763299096592072097615514756327492340411627310073832402925464626817181554259909852605895943294336679156644672764817063796247808923141205334724089589726282062000703772012557083915223822344641947485091182386214413256639577709630513341340547575049423038482491444936456499028639920899318196594708517907857532505847568657375411073437578811563109536445075577442023090302429468789248619035836173188745674846571345146936349214198120385112524305652647516282991533617113002807921960116089554494585663606913485888563639970153828943861791751502622717033601537753962367755414804345497458745403181861195169546034376716779188849521995682076935205384357078770604567213972273083307709416913367572361673623872049116874149519170349052828621713094462067613982187545251762308560746597212069546665647336667673056119457370447102334568337486183489619340644743218782381887858662808530252153021923124852954278733435696855371690927981500825115795993123765426427011169650225930193062296109646823741858063925552711200426909357564830597309909858626795659846473105230343964787999255448403530898208802364247539777157526203112137704755876423980416794652035715712378180181932030922808144349828009067082120295890771210109657179656322483287324056962495084397613858681118388755343257994128795252030187722072941779164168733384280077811463422350464342450903678997337818491195341168128957434179275941358164283692392061068508581246678315871601642832228284356554483900756538488360740084782358602363214996707757441637506197670114190809334398286978260367740597186346990751384824767725184283148817128893871088360326753739973204533120899549579844429554286593278261192753656586541707324821626519620563229068048683353676550524693228602903727741301202858607887431864312577116549799287679163331737793399037086605604873113894663310411561710274704907214580041841890519558328119089844909761569005674442174967976084884819798365171566605734834432576918202837480365309167512892025854050615877645586568457968170827638139503336097201951175371743504699655104932098510597144021914818774160437506208584421768014635315672055876613870918086024001485723828627367319639466870499902282346227196738775951197043901866357381256749056621992811995399276189556495370443477487547453638181527554272668280877236847011029495459189302891019379042966516436152547964954332598685905470040716922129438015096253032500176127552338823592421546760441935811673882054820707428904298151522612731601037634953362334511561183629258504430403337189162862109403237652473835046760672023846892067864243086784013292875812768256633986152551565130805688035556883998576926346751047298691114438065366851801092243254998647987805813582407913720050915105107533516796004862869687135731337374722495510672626077199091847051868559757911718227226987114979404201800074763575696183168567573997640676684986807831468699702102695144308844222887108771456646760406385628372354387393438276803264786452770378716122281346483670265154171909175216680556943234712427657006740849102502493414359181901230009808784067540566531407399666907036812420675239589133294670189198748180566380836509175593231197694329891453692406830680744601975736751981435456173704612296820496799360114826047311691236110785155732953668537507513882151152709733629493895519642557569283686724455130629324161281097848303408209555344417888407169177574282626725609407124538377464559717981252806086994317804895032099448518818556104638735953771134608909054850350740441217369184759027074653408102027346989390181748366337423896150173628742827359288674607879462240694604960598424036739917774228236888873849177424169256034416597680290843215371195580942105454026829588183874101180280339528034446844048896585367592827989523136781158135953262997174192993949068445961088864572456198160939952452594522068515266836685356176646181354305538796149989949400949636326152744863720713906095575357873802451086429232573217367755130580488588077938183184220641124097202944692220764999403648493399560676724860191603431748654350643295026575221703203582027113111000038039783111694595501602011180307785371512543545671681228741814292897008242304374145606821797760625079911958999560924621813929205191705061632196224836477847782087707900869298132366566662682435541166114271459305541354617319170493173035147101510460198747895384251979458943842993608844627558526823671160164803532109141769617384263333709767930935437731523089334583502488137494967542982698976400602286924690687738296048006217990853982603446760057124379451781127249630931950990576683520207272333821383539866228874543514503321605791923684500199572726934115499472488458811515011063649053471895453421550058997186261798419181414242476961728256058116240253479274670177968400774844279798255370984004732444819282179965377466128647420415418849151075171582712946132601630219150506358533594515273610676992089488111863242059722455178322273794583964714279157640049983906515508130485366430262716354178325254071995469498227760580613031001069709068670567288886148812924962614312016955193254997858148168349590313560228124390890020461066237281187473298164046774383262245603219460689906629831128353249319071574015391988592971234513770869804092166525761315788009873956141479426129797837800800099287326423703909999981083803519441305127923250956896195938648371176274005407043581741675708435636600172839834027108330085075599761629238062477809325500879964862643676249785906613692532781363861253977788230279588369496441661018960636385545353428680813918459391754330971785068122562070056742038487743445907990593285023774912511096757533366231478921712294090030617398038486655998378120420775471191048842153060407030764604332520462999085533556550273787720105908687924114480814021932428453194306530164855064894353498573357017572852074953752755308628262482510292134841091767290274110053484156299800245562723791551453264494963180187871765650383429399575106176647854697336601285268982904544621893660004527515237987040513907723209550230411061601403374951539960220317349772307802848887217085854564333232606897870758246532984124806871403414501942788157693985865410808829853998155480722663580208295017819008111428557304970233500100070248273451134036042605216406668438610963508851108023587843307732233474996598968481148960474883858480096759833719573907462615353139518994674491606859376249772760013222609211903666015931222229691639333664574485663670033883887733188018336814042431124116162603119061737908748557272365711771607681212570804576369714615232294413057039982216533758681479112170023938638821113028165812961675090053856934492267666776498321340710138992142204579655462317749010706973105902767948170401319936447092183093674795045771856740854826967611658235047912528309127561207691404590853173018824142582188540453914215509265381186275324930618495902510109910469807761392582340668280990751822127585793745261069841628786174862072846905395387445593224531350736929766750368752338905456816356154877800167643973285917914322780802421671839978707105246671588777910975275017732045703195001089089879536538082437593126446207966133731966622768943584792917416182351551540714324039073360963110398407475145739871611949131301592738292752057035005651615960497693142473467605603071970768494877530376463179958165862244788379656179522668453424647034463901164624417374233395104172311952094164993412546514679809291368892936081405343129961883790432676232409192910091121734956267867604998060693076391957089056542404944492738632665353350080986843553923462847366037018822545082762870916688594178866530336934510210858830773892533384601768324434743831419099684880835779270449566025530538396510112496236968277829031511460872414694010337613542798652995257541982203339305837916873238580651215273970964103249063859608704189769276612506185161454709246993800455216596493488727383698201474794707782823228288923258333354157528238948553897084936776349134306368167920239770227087990874711191345130406597689453152422692456610092923198119716192639648973374436441563620676886517825001965825020601755715414252208206624533059753297899009894238830236473234507288599797592194817487649051952364341670032669835902329545433192585764598623122192599209587995964224511065851143926940488352782888684763835914965404186961825446886677792726361799293438181383907552800677422282154916145498315704281134365276084214464895618590599312617555888658548894474100160925142775254809508062775875554251561160828190456079026968801139880982530522004834107486144125791282984415003078979892698560210128928476733479402198520293765684752971727326386566935918254552651769388121766252626473029129558663671517354471352171751600954125901700571611633760138909072462128963521180475490281875344359765502342976470276691283127925331808326224848985546966801341047843624104073007957677431873252000269549581198381161191188345710857908821493998449152037510901214385393475099427270147021519603066202161562700655468588755748390810837400954824045043439067964811236540424896011169496460733512319547278432825976193960146839381020182340069978145382498387014289689680645612831259132076950771672221774378480447738436146454263435529340500899813083589101768939033782256592237251029609084219156235084611741638388647857965650467934299254201295657064500095459004288243827179741703176487326430241461130342832213766781777854476676217280538254752852788768174941455734468082678485268722578554582139279878331902227509493335639038268340929164885152220388568652969098479429501489184722548981554373746622804815334885495793382436008446834748797602683705467830542670246851912238447943653246748336251598288256590596490168519621016424311859627234813117948685986770637549658441329496892515063453037876580721946529109952252619959353985329780401133170494613639412802172093491811126954646714899591447080901933440368667915048172392048142657580112772727881557715969262371620527534812733052138538155700289316519826623574019174954323297946389516843338984353380528584475152332053625983367439469004349945240115177744661055828031567141150807113902282583940994403530860860713591795676122103782377340361514838333508635158954203625001582742132939194024240610301856704421102785213937439831272306607685843523123491862521129022907270572092063865419909280314486303891794174347343547556989598017974134850222728326603844375777452226321540317477344275199039538955010571140724275145600894025055802962755302887407941583635090185954484756050962744010979534369735385171570002923541649634345788573672681889817015590673234610171701148960730249876216180113518314057947560291560552532437331772736180669291530262013879643531116298410903014910653657293270476832944571990974941737771596104582754013079534131654941324989384199463295042044982594219743179976248278176062577671733419505543475258109740526545718562066121010398090429117195561740664018693625628210383412313480418786201792708195291044499288911729088692878856160478611187900446314741053587628224765705900969563326219995733959401850231492363369380268238117226259451631563175518342666641205010534575265285983144106421131579139955917320405311340529902295205475981414734412671505106548148011281261238837456382683767385757092053520703359881156540182295389458917573785089376633534167852837167862910280070713151880684934194922667462993331870222017594183049002644326878079909792656774208458664176160133322427265187963415257935379751025044249572605537680504121721402645864342287872973038134486858719434665189767952703271524857725788570918450932753690386266916806038269445323465770688511363318666402219629182925431912653732382648396262989208830699105369933295267067695976454129854491190839840626993386347210888143703190080923010850974104453999325051612713111746581370907703503681600287186837225431827193244560292927895001290073874560968958330529126127369218764194473111571298025316071328716061785793654267113693657071168222293284913660857790214480341716127252955320500271261527534441109384813800376107192078927761931429878372798433072097226010823343028244150837789802153315753884535802256882041610071814145405972369324989817366169849482548751236788537650580282911995868408092177066416790346982238030764317249407861627276306165813816605512129634423084890368707071209160148368125016995377310867726349597771987265421467543146433707769264690918996877384588419656613285180498868390100072721840441242254396918719097944578295951112931373927851218246295155939638751854454626095633625664902361924294137841528459625227457672799491925297171267477725299492199958321582049509068350943928035572626271258247748843454354651637934364083243152002277578602203485339561815982683657521075756978713936260489780763879632079657892413360240704406749271741342702501136553759258664412958583765641256556192904922730022243190958773493966119345506378348522272684360424494469949103880573014934788560020856956493609457097421740313854548527143066204839029893841279914140687440493602185930958124536591582827431218673438907622897641969220247175421887063441856106733023889269064616287293144300769169864331308520743768210818923235996735031971509034346556241079777679657377971317789007191629328275783451538638956275142683496777891810754728918723384004826062290273006977427224284654014067347785234795827217385414983637734384319976873054520521973277256212786790082061982655826489091126355682110170663548353687535423867249884488658509096410479882843195314796590506836815788420946358515939493593316231291676379781394888536687195113628215098179028244415408065343607549629823337308149378805262182110235733641933387000780341937553582544512843878656142553555961154375553358366679851798137454773221398653958540400003002198997635245533058619804338223220777002594368019860518712866734378855769584300457229074514092227587929171775701964238093686156852400197199474925944832920347768226545979858409767737609485773090400750115239610300971416853250953353468613204844718156983109274848197549663121719293958345493000685130601679527523073154148641972707282362876248575250326367525417665370360283840253122556563669046607918893528513311979069456291793522010823271730331561980769879636756615816192243990461693304659872932642996019316068438834533082269293078475408362883829659799059430804120574755827633499742904155605100102294918318541991542987339031269592265213588694445895354681108203372682193965740899226161319526895770127954327943141197851165410762309606386233208827472590651035601874081522779547613868132994680471660852572122013145132192019377640328677595917570330140047294599827186763169003306084411316304882321894284599761899466635141900868581220696889070570989932822542394939471685968572170601806121483879760904265870129447625138936189432295585743645860995700867813553120630117557053661239090546282407486808374957181888539949413032540397851399738799960025756189794030201036536406838666619231069467266123697392860552567662250934009918730380312249755706944040492068904040599733299029961495361661732478195857149666293964562497223031122966529376123432896042212012726385412792636504892469226422542308386397396214977611513100438934813266919114160803621068333190198432341281904332090728116229133436409390308451568980960097734943945302587923668493253528186537375786605373128536533098118801850472331239636204841175834757536498620255185217378037132760754159109233712793528916970023067393307319133188869569180581408020076118820408476546165390203622867554313028696935265789442834269078181640830536161356889141189319515877192550564356841112500293766370142522555675217520601733327350255352793883492053575421301665896074532616869919112832224727046275309554272864827866251205473188972638242301833360445776330352971263170841205426813591036505526893822931994160493224554162354557884585728114659840377936579939749157911804406943172044582898730706488673546580146680550630236151099105472350656026234423868085665618393249959715125565184773779398881098535337930546371412965024313005111549863676035386078258443643661252536729299051381694076149212256868212207487688081102454547572310608131192352256798754437055966564756264952573265652332239039131180638957240957767223576241610871086702385430417341809328356581014187034122481669942190551765158867530852388267145926051489084462764225998496708563713972746134901424829061737609826117923428509239329816579169692273231577486447050124783871784125618466418656798170558443811241429958318385428930362129717314955664682724973011711512640978166563313981748451038479711435267565175678953993058102490647708319852051929143722681002112312158233188604648223442554042948855447778413560139970620473086384696112650373561403347460651255077222797476219224599162960703561378225358828196304971481480739099281298462850765365704864530648842069977098832121346812173999076489905412629875781881510950152473968773524506675263735172843225540987360389108019264399886688774431669367569190170587017386355279847337158478855500104590096056359904682763517991072606219235056641993072137172993154964734352363459072733230929003234411838634323976648683833948722238890806886622081722547655563180760218730171120409404743917960308582629511558340608019926736427733314594681473525825733134576175495708941771671153156335458270835328020049371977330670423030516988453076138346197359921897096388044514009048881495212245447485630668005949495534754076025542367572845346239674840930765835908415901556028239811084627836492289011753854156065030327245336900415888118692663070456995846275271648046326678230906479965347499408626684492414015398594428278605635071410896295653911788730193986135766059810438565043925046424967962286961953111919011553889920488793386219234158837211043013837296086223203471950918979512869531167312429527611422689453463640904483472742939852783273212011221109798991113175413616275698686096540238382181555915354322306609343126605431591331749346410582632698805320505048940664452580358568919230454906087789921677075140481765673239123195626632286234835049362909888657162914703232760626214317342215485879881249754416042782704470984845099910389321416056685320992172164082540359792174072843690261073771118529090338548450750931392421592454440256711839126122245373586519454683593010827541037636174280134117179937053520527929586441625999078620268750654965392591162474938283305627649190387141155916582660707278533772980453398798002034869658868831743284109769440414989246344640788336434375691508291088852901823909736778471036088846406192445510023633759824655114964630036814163313237688664222372254542210787738039357625614647045224361570182605489858112124357640357549529113409356385763503589435763881626534521096446833625804527995737755001872167896407062781107584185485748952635947741647233530042061667488941564289144167580147965020861236768800712390571213977606131215044749332929228535500035041299786895886529086251153060903726867911122743426042941982563532112964530399018873926738664037242222304378193494943856964220504412601328151704377883807387601636865210930085054192355394764846286337101587331406117321089357309344293668541034259593758090791728591709575953775602155662864641168431728014584582740134808494465148178990610244792647961132976095256081622583883814047136455725688480820396724222733122969272174787046107110894942000934205657120692633558975133505122851329349919301161505505378660159874688603998235806960831614350910335538064548388646573042098169935476907615406327196554343589560097487065486918796678678184252438261260872542141043765598043859872490828196721688710205838649020086801769719408358478951366463837248403619316106614187256428859216797608587080179011570320101066612998956936200413298500111820827837804364188194243325770073501916197665719389030863398744888854655206946008464911240684851081960351218168823318401621603760145452835187442575003563781704307043764649000152389924214174588402842767701352462910394702717142093093436575392049530846950953520872317123790668100712697871038447171970014332430182082474026802608096400862275696674438204518721665442614164379610079940833568994499611297514293537019701745689833024390943581330918204594557151532445030129166380594701489770336943709837045006648539233279005975543782597666469762275239307353315596910420469069391182398506402886359087970337790538833730686747125170726873746577648181734518766562383723504562447506362453102197199416316160068107761661629879528842478881800488471184798993768527499566972251936015525567153722231973324716179317774410238284942932050029372546032502575380890357632442146921779354790722139859305613910660607097795002435085349555691294707346739841875203103465916210399775037540241701497928294378981325027056039230384057152213382807375626078692514201260809483392401899513698688340799378768656668398017623400649887734359055584959915552513018518494848647999097855288404886185295693333663545606178204414988324200838023410007229523537664647679311634159358008098887385455241884418856593491203541534901695465136901191340311631651153478895107550793774177780782305087619598571109129601600722533720084071376011848408198032661198274356862733890094025842538623543203144537541844707112494224460922594006599552101820443535302921170909858145608395388103487862231011547325573053316971060562640788812507016111885224856051239167906543978394383279337379007671291177011073076710202715849406736647710147557995925486613436668864485962095832683837719614311900366349472750856599105126843331828247908458700772373831382006964332176593995636954320376237364154346235533136805359438414810737713177081940261157917568281077927655191800916444828683134315800746462993846613617093044961820537024926058344575164658809429855719578704775774929348453068398911873379843995465845294222351755866951337866020021689827445934199996434279111822439432764955220734844140679695137086933699918810445901541034061450904342078167620874511719580001526632966514756655224103389807509500509588024299864131518705206275469624720028415704478443107841555597929901486465525525299030721552213498241018609821671389751306211263699646783143713124080390212903863265908669031886755109686131369208207153629880428809652790424204679588018309545072170756713021221032604955726168582110956207334364792938541414206129617669590643221038981619903733740396334523013901650002154464014005983715632937668018556567745283790992391995976602346597412628279776851073164488053865340122967752433089107387078535282461067895440413277122270707107473090921689001213506886296336452332167398847601165184329692460123239254283370326527912721825101362829979584833062407689867755489372126116120650734226895747858723478932851028304989596648663542490696767288215722020766923883488789917673702009919733331553031009355124396308589858774439830513513426058080714559948722368482415593459988303439730936029659519450016188195724500395403779994609103630390184741851055588140350882356788402130522628901976319195080501087190529346258120632741612255073509808656717072446938809627730110006132104910500635750401831546039350880938003457204622532077914760031391501287890214593271789224952755522447531382288163437161889816304527785055952728503072531244815533752188618390668285257167028808785594737672901795701614153987468496597574616604919483981362074424553104373229993035150298089784401995218582226974113571925888330176250652963728248389496452608754829322917934747143903726194446262490768283057144036614391479876815115439453497963754217367673634780266467058455091684355546274447299740150830279302589069032867578524889645298181162875112175563970050500197843705849128269776502081135745109696023784041465588050364144122992125218222118766760336487057636685795657965228348566862222129399790801706985164855391886884581489444629608436084672474840117836737660482777516871782559040887108831462790403907111094160624136173931801239446783595253225403212708396216150134138620643765921821623929713417790959852207494395648749487809175600993394242233404749242265446010563213468306395339835082927091723405935623492151964727742770866346395060773675625316535897005018328305749351974826197018595723062461359483871396134356715889794305746931429508292296616446164706197523705173825879139351284354318509690497535949565530215774000486054314833665734564277017034086928831037361726879835497571926826288089172312729450982895067381909085411369794345180439151618746810674945925536441621196887055597478370097413474716284570974735556714053278619114503025207302130089868408950404051945203429520057164804932300653594131010517217905990901331644156220231647313980347036477209106425048419195442761549020406980697897570943283495361239167581483210331370138261635703911584638401037192648825222311399036192924720919027625502375343951894152055296224601176714427896186298506468738705071421466495332506301098084236012421249799002984871848995391543226612942961592870507730879171596769566307851495056991205860482571679794677842886805468176956840684507549326785539605239423874272793204371755903631901079738980611420689143204366914600667453796194903057906548477142673251863535614687772287540778617748651750705306740158525573780194249877229732921320545427663520564024201605998462614547614567994758250469069024425652514253283386387370783898813098714290479459695996587485858904223357536111606152265332791388018429298931534060962875693058640286544276642752713478083734081028681251395576287143387023639883535927573746628720413008282370324456278112624541994846036500005520491377478578066681619002689502616171751478143543795358147780190024729165843806180222713927071498503309804247818252416984022778154438744390594411035343736874551206706553079711018704097311460709699399698588397236271375860187763111715681222065389619533013504516989701135190117492555536433154090266611837841486380815030156501719056638666170640567082572024073756380542718668963733060910563472922761240131926354786728549215725560925844567142432481060305858223964516533975402417965126864632764665711912070709236137982854621383929081051973206528244770719316976983069558645983710825634584128562725175482878777528938981245781802446488292194446454659820601963218498096676789371900804052368547888069375331846757005522531664192098936819069261043728257864443647933805433759062995048735789628567131992728114486325763896486684003379608456947642284818201253309038992078877680971229786792835770868419726021733801432321385302516927916402551264163826455839805319825368662200006329608945745236948027133352645496230049686545650955802152632460316403192385323295378310043249783704347428889538118818640508775734542085796033962916843024169766339915064930010781452318216392462384907099622249983485779359369042630409130100964785485564538669657670004329973364736273104779537819871037446648336465063773605141640099246931033102758924752179425107167818501996483162097951163638681460172040030290879902090052640048224664596102397930299133051341972905284870691730104529843820372979105478642601443232955997082972872451238087643329190068873831498704444592535172054831252889366631925035751411917003397387246878610409241839238849962519031246949137094374761088037466978299664154836651127917992862326481038579575106916735137467812152344528365574595953358677135402864612607499474406542391260353110187484221316798925299615948121330231753929939943766122891978086948770139178748509264217535050730098669735594413622377569500384395604872072160806863431186006006831180851973266605870033541488874876735801075306484502241350439806102460571253814362519021691544546218258530128291364097894963152363078315039621798131240409623919253210684057725410346236912602784531707102773714353841900781178455823826418726878661096560753135895096987810600145985731706632713080522988061504731388194850208054660317700831038836002585018265330161769842543111109577373374075216769335216785027972498966461209413565243272000418940623850554207691803657467306915382586644089405448588920470917099304986218460517885661595729329317916558489154690242695714047310802635846107864728929160122360777414634664888546215097097511877457471808872504921649629462858379957803297553022859755965470763910095442930554808275215636550261164639677070581039966311677834497211830252015567207017936251215138077551871134743482202011040338125592664702093716822231240992722776467162504454844216902557635300220222577820582592479048705154076135323707633872119011717098590858052214615283840307604195188226541191459261696712179123739367483994561607785085453083356004498640385522774236025590179273573200550730127659969393714968739333027078091336371804834602120645259350479245328097879136282341104517989899529573379991927654407874511284854464396449966989148542290345748381103250074129819484187329108891962867779061807475216524658464385419431378674068277745060430954601554147571570404189578890634912784784832853038160807012630122859648089047297457594323549286485337379092275525110143675479369437809363730791470209836985205812991512504997628853814927239457154765389617711522435798999993253613964351400258869131181468513379799834106376079395983464902545651338746207618251407571974125631472598816734711220541826359376350949034224318543967572342799093377686757762404120034520936971799090627001388654146899081746544284944101422043277570832550718724556501589140892204647400278859808708543856863784526970717365838881701668821534950651039104060950257818438675240033670246723039874412833634570070971155930130865622246509323752576209994219637290429026066499754730494093100207093451869880201884681431283280145168390386535057757939606656119101404608096246649445487569776612392139339064197815791935589220368169947514261914478647055326989708157351340621122234827717124979251532929537966037785245508897670048999791032336633500334236237504439900912600339030700691088873630260529846083127732747169493981033685342926211919585536328552945464157238307808283512574559601094629827282666132173915453164939318697281245848180137320468167639068648344426484815143864445033519863057529392818623441943270793963522528867249195264248704862809226512254119499568899795487034732148053354841938756849445490616869426645672553234821182234887654316167676339257311496110991262734422951455996508695250371238394292885433634537626175803737968423888953980124224801419988136910230173033384247116885681205855308885779211303346102958264228852190788792361647956825392972102444191050419917185504272071789754942969960450396696841632203821521222909558137770896786206239652611084435372064122044741141874764351458410001568983878049917127779147642961802556956904723737208630038919250664692149303858627658949645273004070709022560101769722412033205131075444509706881027022525035713184736556236802468743377289459344454797711128063499047589799116881861695999067044004958679144348854132657867342393436888530305070731250071765537931706598786470885346146833430564617134174855247600873581151988394942076165282617864984528566047125173204461882005001779742328992110279852525568156842448321319278397809475772712930150188390386118460514404364804838361769294675303144801481246764540274203893529737298395899724169266097161090874109779617147695661584953463035847511747284772306265780942845615511608135272054786103498893852579354675154627527445794819155777958648242984631510928127013385126198421306822020229148324089681998121996472865490529084449202072825989632792363605605897212591176414859210791916240117199684772213202271459007293749146856579675202591300899993269303085370451718978640279155195921632692332742700355627205486702568713810565325768429305939766916081616661226392253883610501008345387966334506694866070884969765296862318026784470570258761380615591882908957080320390969315110736039131174114141151424407395951820443522338690344560659837896020676515881396699002621945041873382480424339820298615999559269440297393521764348809071821863880301865639201967616682650261520095804521950076019230041326768395385919000814420359785464886049613211299847744554109568569339228078929517831340816667806280879278955940441166391603205210178241269124887330177829779450127872444734801235113299017635072489763776291168812085554139907841724755255560487902705914594258202420325178925109344135866745245694603755586618791901191682132660201517810451411659153440305705550823828959009576109917682796136991613621363746422747951673894101184681240589472120242876145344372085749472687188333122458451157767156637251299998335187444621021239291208696019150181297982358563672791590987512080177466775594584327953241808001350743873055450515081404960907634449998123394574812854572589877954999561752821681662687193427041908688367135981679679109754443053715274818470024392646265706281064721448472400098170143897104899665342320399505440624214704683205436353181928938739310464109442374965409720953242235331098109303991090757317082688811169200683533125860423289678354800626373601302243224226796823350653027294500439018941270662076739065537475748147152623304278549580779545544095503698667422131652557813187027480254818176013755375742837534998635764758832519067563304783083943199349426634463559307495428800550886353392149350379934912068445396511906580337268682784069913100701409234642088880695551030510529824086629306972807895758362676595558543057317849772824939753382614670565691642062807095908520095074709490273344862024771685745157571918614101479572708941867279276594902395077228155430263915546689422531379823607199347572755236748141223048264170397390692226783666197124112678613640169233220557269205139435116332670016770809105084822203780734726225734929281950146294714680047433406176712728333817353222008621656980763846824025769933057505827405626204989544280102383314896880409244225743003642432266251197223118837996873241293732272437958376459695967786235022758939274386253893318421585258790089431882163683846254715841369208915193342780585965943233819772493619023219474690284008211496407001289186675433232012220320975795863612546742550620084918231762268987348440415756859563055858738384871127848709873569837143567816465921376746497106782021667233222369344067112018508771127387317112513953347706620217870157090452699508558375022830236971955596214892566940389585207898688830126813329494619276541350455086349262740921280020207150339777364530737138071883346865994547359857075137904644163902590110995057458876676597279840882419034447485888599249096227175794483941871623219044258316441478378073906238714289581693587159131296008047316282757894906047201727895956237877660734593420647011830367540817598712077353949341321956793078841609988492908868149876726345522271752040255767440575523844796418063710876904791405137821484410747289792215611896970943709441413459070244277323401995687470273302584470184623005136148677767053920417882674851318606768373576124289814362665548500461336137650426703320890943161785223516932389000789756423729963123493441016221366711013934605258528173377830923891998577584752171324650208381963017645662810223655863361299811441029360517730653313329249981447082755962350048438737992905918091565185018164532558793705543789691401066987003725115305966911610985979093700079689366967147530145808263088268078299206535841586025800643085302517161957067068768611542260729700180844153964799373831376961539326125752292285571223546315111265781988981890428295610982901987277382344101377441886760080038230714813834947938756373143540826151837666830461060977169296855500886801362452887769540566442261952238910901283150791476515124769100333467791308328946991456556382183701780119178640323075846547853829441682891404105382833892169301263248041050288965375241971954577873057795091566463184890428278403357911296448949116998454386094436649129701998549720995089517167073937356329022732664458193603597796668083974990945121073792719606563257781477977849503052719485778510725023214044442103209289712526837574669175853984140000680929704544762402893736490833500953662294196249362047690677447076887759607608227243568184072168784110036020672275179057534312231029737697520183973687827881137499724967052258144690694668429630849479032764865691413791607603133923240676223844265561625126891330292851385951486353819977397903554168680313243804320408380160242267687220099097143682290680752301714425588880322020341653085896498766612701082429585468960830595863848205455633766149442975557145475487657142700487445975564420196315022001135400330664373784541841943703964915204070049592096051416108065593432731232388986008474204455871138787260839691284802774473160662829368440485617889286441528804608862963926365710600677182786147216662514598154939990785682919767428587563777077448980266267226850710116168081583959259103183216062738014686485593179248629627233532044165381417520153229663464408728022522527887902713531778931075017602289355203055412705793296017106384665214674079756485878995415759769928939087373892359799292537117734927335682468902354550603784168370298075270783814917837643053764582281322314399774313270011412300129617586527991712727240505108612066766685941605262630206733220064106583076480677345150551699461902081602422316489805766438778298958668432924899222424751444707199327943521054886675326164292790260372216402597222773540505766970964488096158569794021112627857920092677526532539222971674431612719987660957398780667561569019245157380236244769137030870408708044131126551312362992966986897809220702906665139162804717991280506694951851973752612187927403564153680842249282475605451069575583924999499386016959911006815685472179110723264081867770823349855014877149334857220183833675090139658046033644850014328164645311995367081476919435096108827728867855490439374431057065965117705587750042841603839641647408124059037119670284095065453327411998508239048150137163428995210683758049727283085815392392502871733148109935655032927348212088764072169769315979153990241946003439329085880378924725610519825680701302065847747710305874039075057557041800270822632448673490696870495835205510429567778126012382329730645912806674016102699121861449129046998304532941604597589554250677419744389685610822768515778560475717068991776979029335453009234180812083456019644166296813731013821841710508739365175900712616619513253026016434779231275351254037489057601913982276576610744823794621981731917722917101659946844383626718831567316936712492263442871433232700534021815414002418435467926156193989983625802126721357417114727842065004263861164419815519113778890925236019545952100526291582183412663806012411405735354226182943522951890633713612686358606698412329736990887040974635910204187426823021515126721080330891356734996627932964729463168625501353758176582130673832869951175141102686360848352634162163826162235323573289576855379961036489635322741653464025493643253127146541411594410825892350830505700022603882453310275794223663297874872616677574564681073887814495160258641958308415284330723530001371380200873758430860164267678792850503937533066874133478297880617204257682153080235762673927563791530900498806971879780866482707964154198738514144927764487734470889962143192734863229873251631853869210219085901108229734032699014135161522276665912038710118974546744438709232152768235054967167430716266975569562794656209106913530910418509252380881077120820331428595848379292735579436391991732165679950337623413506481239120306945647094633964168578429685505684331879750226005754565394976451649922419673688956536779332295115500415307334037676420528174542617595547345305965286988806600314477623253686997057725034439688496547380541428606772815506201134888763179456103723149050815743952680071891263660159182611449511714775427143369559600480744892370365088781608350525877795169165730905352803029749181376376330972636099576738515991218671326888992695802273000122188665464861885267713648503291109359000800790693702412656536960709142001129120991524460564227024300551138666510231149690984549685056661764875128072833496981898872077773886355500122931950524938636668359138963175214143618410342746584148225318981806778539109486671826203238278427328553471866759173044220058077920925038415814520336372127678272269274702881966459472160360257433105704180087383849098106452587436178925210554799582065365539355661525047629081954304880413067548812738889286957909302177218001822437060779172282778667726237287818542359405564707633599453143091661787616025976735854680355833705400279759619148754776704259992644345268244194370405477827069870276033416003743250775881417450226457130498697695776351530595001534787893745373180543408118339651268542573525438958879440581913872720898417151843939761276242525630519245810603030736744111933329617933352959968727182208572575942707850405546307995687938182998102783059347377059265343189411238353303196793847754569746227535236940129114277068191025060433717903753152746980828735201261382320844482899683585971932433668580558397376652625366877271502945875554356751337772044745353320688912421235540912443254507663482524886148561711547889158391758401913300234418476872372205380385712038908625464268296155389170025180964395787752741161866298754414708363367882731320091828541412541664233726460249105182345558087676535835067120653359315888112080681688446164931220439869427851877864245397777031792291534752869505297588403739148151309431593330435047405591028483451731685118815278730766884624326883771450105402486015966964101260373894225210238244871878552332178109771908423824155777457644783435732884184935988037830533888456904969529955258974906697855754451614873267587158499760939664846640869447835387626458853893460638621313431936234247938552911770594201433422922682335444268405602294576522148552489892621860459273753081300230963492385110030613995979153013411037176881479510383768344529247294226004978163978253634159560823568366967382736022972185032087979689957780934511937257418214064532399800402135879518797242264201842972499895417898013912064278374013463681078675812904257925751694809968797384775723534726736642120464558707707738356419382544117383130306769314384662579825150704289820152905534505848111441177866527522277841016716245052289879637785108685395122254514207565484967475054720546296423309852944359461176827087636982642013178386319918756858438026100064534389317965164898864475892892211473742990220821321880349056715948105032796146428155667486144981486476422098739417864756878476278655846315956251022880611228402296756749892775373650311352343242777276168439297334027269348549777087132985217559971377684295621785113398083593504326211093363586183806639444047065757833979371944227262498313229515739144891609276860813561866950526451175741162955118526076486476087269405102987970810872419278357892815633202631012666292765015010258826835586958001523878556404398041059107690549399216536785508985204334749944859382402719598612253899515186746740915011052678104651396552808024660429485747807993405476178925028510395453151841225866968997355393708784030258766105340198691354892551228282588952538401188458148044379113613682893430085796237973465567969155134633564787440862422730236715052052674824701674868768130261297433530889264967981521747168692557146563100647314947521675727831919860841266607681019789464308547320067965460353656662387733608468284167931340691223869466084503055601112912747057275811428989235860460076457886090203099495262241320028687225402835541434988866772212344703442802567185451018731030134691520943475096307786164570744305286050719093497142860209861866028471444840226678213434721905076663604760941542480481868947068357848872365126451879539247395427186339360035837187982045875099299854149158564346556653438448388201809162232707494799173202605696940642800506148977544033527699412706969027243160978604877070751694541857561395708323620519933056348123444915734060706224252857979843221292765805043730229681578185921747198138944137870698818781945803282873574215828401031435259289362015787853274724803038484493413195283853615131668560880652707131606401971369721586147200224944407949785496673676001878946097155877151207438487440758208671732676432219613853305835904291470284344776566863706843198868390499445042951060097851108678316723937629977933051296143778260051817611248976341487391543188319360989343579531071690262740501018399508632109249484563556164947230207074842606944853407362466598153592065077733483555580618647307655018827006950189769257182125753215967222260957747350739659156430103602491627274129604778419620704842072440647671208892347249681958269916715770212794875642402514567613839127434189395598225056629391266480722627386957252337002209776119349999294103827783225321803760365057976099767104869538896856525491117187504454999498865103248783422100506400645649406480079249490165600546846467794517391115456932484106446617820780235691950261811826600962436607800647768265563961058705472056661367274312849671887044250537315019047719007109392880041542144434001210469646151664369157655279396199822053512338708443153005569271844389756293338205076601506463860866753256390603579735423998311815138361251476289917361491855706879704979812800419828749094168926491322070381622593047864034507012880888731036504897141798158111353915398643886329137725998580042649167154730909978335839832247166661190012312496324087602417939110862729762051300871554676154282246867970907574825160893944536876096400838962075753226043010687139122942258121168658905441314169351988683260307686547203791373958245662768925608148171306963166404533129698226142817147634027531326101511270174071277435707999290903011530314956917890684141931687217356056639686117472180571245561760971008212236109118638752559740131974437255778670891141522718367983965024316250185208513353744473542529830657391857257363404334460130362559272812529540075022125435669153500444287175603998014243969282780101712651141163635282921502720663160297400894259035524413881557433489957860636194244397777722989367431071439938385503424403368604691222027666607294263428024187851719488489122323659529401060853395182646371334510266010939294754829466532164693229511350540808289186449808029842739782479066816874159477927993722238918350386482800374168164905726579243900490817023038593145399250334315782529120254549430000548791347024834041235533868029813256873598592376960199682223074640405770857181045109763174070161023157705450666679759448149160142827685170550033703129497517044260736896812446199679061050200973084714426987845130964795449892981665764230195851251551625076079044845026931511773973165573878141479436781484068184994840480082238391860814044796708007419283377400793706309497041183323921171206930163296419710871552813449732914113355243706864311288435417232270263421887304953067580935275178395181413553939227202896621368576055886386083398637825283335488672665931320286242272002683352075084866245820363453616760099690442325536137473890741405288395280231876115133617307245547969968917194929217778837797404368272158004190061681523840666823118245470084611427378791347990729631414728656676935942787449899823183305349433323527619891670982963333802418014575165517945237435974004506625301080240810141205851512868354896487216597688805267340939146470710025592111764492418724088873871614541500194000663767645316720047666009608432555854340494153045195899905448670039272761216024940781886715138125049723694717979063675625461665166652039164536493859714186528694835413743681507427366371234347657366881640938144794969170515004852060387887957484345654137959174522841718729472840494221815797081951964896320906289576240418792067595501764892765000387151328804732767273520997608805866377124833667245017085097952941943118898631531688758177772242619362879072476851468275184010316780023422087869678657980075102377480670060818171646110578676606641067609809409872424197867163624963810698534029959345705733414392215226530022721015628452032967961873372099889888962009330796779929288702385741065329407652283624354924418657695020397682102997307153655654939725066868130981738018156060137415214703752243327363772554864721921937519900213643341762338362202031970519117894792966965917015418625314312776598678183574269505623215289734188084555257536979529594117746088251261269577809451081873714966550499825141598354887460036786866333517811160525927847947357444198262905817621428371612842069280555615353908554579569580520877042545524870573916093452778241913374073340082110229412243856894722110777644641651993830173484279962242485744319004138630564211507598984679174799763287599889661158736686293897497524368097054061263652063531410805907732972930195591381500953004371310360486562005957510738273534269192218396492144668140415920291557306756712067973710968847995649344577079891220136617106613423721756874262877852442877932371931186387642787713551009568608136625849673572630440137531665400628146312035608332160997808437908831380620597792679347384048073760360278990186822327403426957286175679824198654857559808445204062598498335655061953599075536195067165115716467378942653379648062743675412671905051183616401208493562001547254511701815729088297307911325221208307776244108383119988640405300123901314186934708925738008390563655636174135216570990202197638539946730100590855525306590555072549071810854689320956793009268171265053915035708999726425183287493188148978025448700407282011705418931602634810884542874603576648807677587511451872517554249077930836413522110369733428729513572416960271001218825714795793846244122251751067617065038344314415752045880565805651937499416057425600592893634345630075613517640506420440417649085218477409491657837848419380237784709443024953149331713047072070314608528395025838974746463834070364284357539492282094995735776068489307578203224228927730183654593697178492376305980806636584395672766235483492770638572265235207269279793475690750989366799396771871203621216904235360582243980085326885674645505501826723645548312979468436420006174322306534388689400713356493322894764236947484239940580202006725750718701347807004731557251496467175948270662653075523408613497346087024652059412247579321622044289363993916961536588603904445813075369741710870905921564803283201043050239156675111508491640168316061505326225329377951740379873995411021902828673081353939323269439491244701842070355881323857796575513205850119638805170866002130376616044233344452319857954919280893054086063312484467598268310706684060087075597153972034087065639271668800918629076059648107033789150384198367831675778151273920882349116066657426029102500339724808613831799504051792456091219925639861110241624461939267421234144448206817550985034749546442168004028260495059278694718888370805124638452851508465898774672702820284093852660632289637182838264643183886385701600121179352714592928076445064696937870000445439492189311224826824623031508315786153481131715456006404708171153810937967284560253613575336195324749864192003101188156018842476409331482931919394994022070586690270686834878419428213672694023509317792887473256998238225780372177055638033533088254707527616500039116918562299301957058790140072707219465670007279522313345918393251406661223529059651579667275716019591683356970303198371085967985469792181472502901054880126078453357661392740050639958358362126314766618440405199657764137935697526587075867768270908492310492161190922613433558230770052105910240508755653975493431097668243219800377320919394070868966919919963661380076337512197445995643434717015236758737429575608144827959074742184638528008050713777389583758896202364747260099068994659034017548960808802868638628601145166163869340650366532562639027383986242249680898677722296029264386563797436905929739243358072982896103213141699965892125078188201069873284052752429528342897749199119141753884127033607885724357163357401167671591579996388897413745847233782987366745002608859361119047321617506229597803279317031299738140215842322401321836468385822953006058300450047993824826640917984176376692200018397873953202897788994540625220681682490996770888920305275261135364432985272143907245375106492284281117063267178628726970067536559934219084661672407936225740613964626030754257567114370724587923750976295479592018772553612155761255530906905530291340692236423389947865692849388378780144850656385686939909922604372337554900857357941249516388997167826664976424345733195374557925700108296592595087346264371764810202289290665015922795160724862088348106015547150189144034304709519151284638892185584216283529999145478073970046837984512983093474139808537310145514145722109108829569809431524298823752385195972865813452138591684689272245710736036088602022531549026841326355323554651292219790803285454954332423697060870667761287105894034526781032639608663151780158109833273733373811949671264551691614266264554213686680176487930914294424425399474543433596894321168578552073814893263029187874618519363012649872773288701651483773157144318646878118175887902608417315604053784297175135216074996561763867436178074808387996750389099485815348485854304967868908116645187364653017608004317242234154066735054389908830192680443493028995110932799251328510481624160052242450053552272859088829883451349495913337309100560129293686549060351327517360531695706093685730932588595363862687662084067964504430026596775487469152070626597752933792340778892747555962364299014414183219442240658436372651741961599695807986486987273890443671188789969487376047028745253816246941589454652958560735981649977137043363341881681347877828662703984395602621468285865455115187639943224621679871601874536435491722945119911012575460913190265090484446969323535960792761717916208902573940487402448819776759978465693847546805595842127187299752644423690187002922702949533512974445439071475045947159571506021697794830594306350439606148740110652122347601025377460749242310984232064792701584528600735983760500243078281727512065139475887232952516319955099924648896951383244514023855111276484008061578926825296290455110773259619234775187191647921447317429358155283643125735820321507111433880067632617515050055104656226517362439049106675319239693161880679200570566469293551735332705562256479328486646151309405394527719281657253251705458533916599992812470731943002310647773060373482255078540445072930816350344386292106367917555078810639461732191262117205358186493320587134731573485569281755821330253432671082181495320053147964125044145747488542047290605655694690913585441931393837241446631858558582432810308040726068211557872476016628686333971120983587923078307085998943606694432392121576321410395410458369851487784809402368644633391418909776585152634006204614327588009817734993675275307087302983704097533218967591652955472511252393162357894144355871347443703277062342309476802665494121176111350291105248153459847283379771883627302831343422534949013558472494058196363658181614304418401804365813909435646095762287467175786289141426795549300154356355579447338286465995108102085810955192456804584386639901344371804832092721399205244791716772840269976537798612268972010216785632424072601565728130204353566130301783806161444655210859890946984223079381174202395261531886789261490310727191945208245333608475913644624359664872469305623828507007388210744789759019143178342213264414050091587446125061430974678900061203649197484355117467162975113114899456258967024214889280041941713849958007959360380127291796568467719597304677119506235471491441535055189656316268242547838602738772215643720538069515105562049700638499840506497552019281414419274397356960167221751125315235063220900830063322156133951210114253100710574227837563959543222259130261877992788531897825544742360742431273681580551932600474072853316331092608707222851269134902020282494143624527200958868697787978510690670769130159857489913042594111548830781484238623539087673143926578581811573127474977381225740186661231086615782115603965872395657574790395130641475065804699996817177007645885788234529820752560362678928034452885453811304209793173982202193863316468676121113928552773258334070726691381674926065592338310955532944607075052009853573138113636316581915709875159591649664174718405008652308789694944084677121953457708016873110722384226642651907985213206119977838965487274548010192815113585645664512978253362601924343095048936807461071266823514275172390722389626055529533015238574688503120631612596438824192261780932665862332680849479089646754865433755108114068703165061650952967949515992783898849330679909379628769656447419622159642818545010323728328782026913400808096548709250579747844337248937993774057728706815952192916921869867933522890747434354765084517083553387940377043407172528270743965234067656821880809986134736710308975420580831669310788069795021819475790777657242933939007907841380809272170461853724931492625127502570462974395515570149755202172358357510138553001420603844850596460710067370576530834938180211648295697386464021896692801771888025903403900020803491156151850745775315529814562005173767988516924806274520362134842751041684224316435940029752404677472378031620761530774247210791427280116768261449602188080516174301028098591445985648641722724839349623737913687153251364774745831118412448448893771569097446472086956039313981621044354365640874573706648386552765724707713837927663590559758436709144042639430675397639163128653780030417318034450483115049647378976932916260717418224335642299399016848652432576398253960446085335527236578090129531221538967342236919413103056417059315744623043229913086343285305819572158678644479693828942159147358693862299058909038156459584666056523045448046468470662103061298716337462480217513278179287999544182042386380161761550703614822101565790484183416909163964795776678846139139363629769447727074802672478057893053998969403812453308218998347113861360699960494116803128189794915457288234409513970997376150192057078069102600865206452529153608697083941865409122902048504393634975785098784350452218496774813982234510707519313586697072229546230806081709983282418789700498443477937927001917744439962764712183745259934350211597506358718160173996843275064113739439106737585669520442370993540145502845979034575042060438496922183181308517915544783495296837475371139549122822184076197618666682677442704266468044702689250863064458732051582015215163801511669538209705237251739868202603547338619835132173349993029838955026593128333186188408255414248355515025747845642478285828374605838893387987467521726224100956027632044107875471334813313894210574383567485427747884365666566963077600363583244318324990168074782615956249208210595862528722656869773149699431300653997999568901564361344583174869008502488599438866295529682413663226520266496195185676096937289022574456167544837457053247612833914078684557013496910078900575895394391219564701138477824839873772097337224853187117133213486093476029531537881494471163334766765795663547447717100717913383663939930240601145205935957745649338935894295249779916969448284079607177053519863727707884200622989839405233133824183774592500827035272457696846646403754615086807998796298327923509158873926989869421075612680390084047234604888380652932230322461116349079471789048252309921245100443503169446928477007803541048511236260490381034486212259612676858582449742901052931666472444669579265118580288269688177191852400027619465306014472186892934318242422623134329629463409846922879381051683676017582316327946436583099851536365203679528312719785156672083539111887795389842933808190092101158365774653712198060035054811772754650991464922738415790887788686360301595141568387836298677276362502619250514878206947831484844833269973802605790682969430576162522572350581622794276887207170334341458144905388956934233164070096896106023982553084017092855439668064375323462975314702693929546736457772712319380682327466817733359422892294724007620032107576206702247231661361623066843867970017271300183956888276823512842925588328991903964285864574744206521319958543347104038068775871123629024211588903297038779213383597864914462889186295432495440049214992754513140755700593012691910827915949126721030204789743695826066208688203052642016164313436186778781020636035177108844300080300802293280200695969483576761115273303123445061286131533518384682797171473197919454139293135543034534521313381400041936632608188944964596233508339595114083474944776820211688883168873396768804456538371583821878186224231202184967844093164806203847351234163213279133497457291866128457287475699936009101336693837331228351134153067512372637796976206449517763539104514902969461624084226542866450324383538697750212191543378520933116029384046086245044294772220691524795765743175179825040319115273846605189349821390586391099664476712802665529619573154231377026849946568260692762734599937958672644427288932938976971109516703114185144716974445342430852284371448254799472136018920530419039047228701655547373344302648060725385065186660812395093212475155809499450667604105116786687845895719555679581661726803025036759735119426735216311294014542626024756996652517271707713870541359099261345360173705624451523137881772877252308786904144016825090818263434683384386053389244841256479928394953466861405429595745944592564859715670498421579448216986209866445051795570288832565996246211929129579736564833746078225543413282208769158867985214232417732619530867098624554156575397257948288781082373195918399296027145449989702582689929256178086836348640656939578902171432152000903551489882988613962403355247990849947154831982853545803447888948795594632249801094165710993506238143097535757984127019024895265654260746962966241941703843352978619304974039506026510850737256766308260869460740671139207208754565978242101775149656128586775192971857696576140870298319607145172847125237915098113320138146229989453239685102002773110995187361736809535689295934857369017199784475539022865670593556837771543368332644947748498809641654745355540311948352775793439035033272732051486469683479306261329328464084140387964959810402914440446830353163399658666079906703481652701033353185358941661517190307657535602060413943813213728981386777466295409601474201100249765271594423070524716922775344978943246834668116994938851445321683583223428638409486743692738454569041967427959590843961698881207838383833178212412955621743909557005708473912046681268364738638455634800761299225707455624858323449081449622980906075643550899448224513625563767279350000118066887130349135376699376278865061312647894471160421124625950069483849856337644584800804805536901206336684117808624256828873751709205665084063552239452944984920727523913706840172525488478643337796933184991876059172559511541667970759920956310716872742111684509290241654694865472865783632065146643235237617494229189239875311310292054164530215320393042666767831171537364924594147268554708992786776374573514248574794892707016530465065234427534654073410303069497240687149963051249610099410441988268969093396419010985876231157829059414828330528444659517402856244778181941718058717340053834888891608213753301769533829367401251107064644414231829389520475396546981287956573648231187096018316655473661127416857232104175981313730538289036230691077932669479110288983689643534845050612352335855952351007743592228371379974649161441879499820738153470958611871285246731626374067359446833696593453288354792882620993468283483201221406351462384577074044342674326531372851164665897215030975997530357261988005422428180953350823187629364211175155534541696431241263146765871024330877856172990830982935650577625111600217036402193824488618030497702699021354136406095956482952235040071435269448358477171283986204073152772271049752861339493220697487705385373397481898405511351479908573828023016265694915501625934554185149801277884341426726851667357929772832658232935653351502123142118595688269478450444094547560843054153587884453532808054016353719921386138663718146774018918482004959261983328079650853311680032380092106939023789012768541517190507981548722866224238289384463386072606174669252108248315908253870783372759927988274222468458593620045210114654367212175015740628776839722083811370972086186661665537503706548385356511864730545338091517043365046177953061596078448384972407868221879760666510231777643660754793866275385055547183276059668502997774678150418105866902415976726998938068015805203411963814144415960735347825900826200262770645238607469965027792930869268385275659974250109313483496414785740890383754770847833926926623282453619765266082268081131214798046841624764018046144183269678644630775209226137195359518112879046850831106624029396640295118469016163404171626558048560578460500579044582123148305318166550055999527691393464955830969800108476723507833418826950405745586349478656019621866933611661889660977175773490430084066470425569398535687762467702395920172109195243291558487643449297212766636102240581236988220299073860118001208669376183535032353332202917019951725638260178508083391120223168979164013140627828816563451205024617368503374434355896144946961966998023563405481301838311355577590909329654591777739509421927303630846463050284153313211594446828667068103726021505708462313966791501535674942288869093994853704905746257280442719078847096201630104569057685001870041682381955009980144765444726195320056076850066889939735246928728812946034159882465427673608855462848189323477495692945934159512482836645905849290926090051632834758037080949850441816630195493318294007658455969508278851451540310998717110361860968689668618380955678574509366299291295606527396950536884512148196819205453807395285756104434380323340531571047254092921371862265690182710098125558470196710668274073822988882122522052080859497509571768293463785262252032757392578677179530495547063749428523920413955443401203202341941296996671333776817831761050459300480085716885888150031751949344722383877669227969345346147906832884156253108960370673940502003369778080916284815359862719180437042575191266750679740112111973776636065374769563613458181846726923330693222102891320705918218611696713610747356124112815688062563544785601332624845189232826794432917089325432396254138357946501467193535676416225036907615957991888058287455634752060798834419927829149739412581036090189370207284866433086924798640602703943204777320154710551552172479986941275362403631133189553046956215809934271519455255803959883569843696970329021906059979640741095059116972371452399592864856457252685228241906247542247539016391054337382866771451749733450440189813569253796752865216126989391537076481974585006084363267947109834890378798508837054969562177335202805056170912691125234718168999428773703631649166195755549810872541217829148426567565724770795277970776013627131534093262635692472893024902695944456537291468645156944040393370250832683630384726761211757329283074367820995340127784363260638986041814806835207860202199806126728997740198046311882389264400591052504341457561047999461441111241745059197601090961612499817128231389999716962034568837051596933146543815013477660876974226358894851346263807335327246425607347716500097530945986709300275411414895323109564384094033774083394313334222427301752396430021804620937137716380085260879363608225432940112034297418621847008789696548066017709996100204028066888632981820643022449658019995042857858777267559240550178809957591450790725979518035015046362926325008509108976464288226716833772714894972560292753824011945759547403520409886349964455916971505605966462847601775860015010179376842216304353098381068189361058467509380598968406347127404654596129544829728090993533857889510192894344935717246128457247212560022245555480610857569299570635907968535749548778601258449660095105867879179638636569459889557819247267988570509316054466136064234567863081863771044380387134440094547770730947360183626401377278917123972349103369759888232755838245832183428779581715792515998488120368834396496928142415464855286250312691474779995119062522371402248964765609837629207547298417487290512599667405801843642700958967122611022118449316352621427792626659181815035082084670276748540365505050050820639536146964528173598762137578897122135757907996510463694972913552530847166527893506870921257635133332081934255875005811932073120571387823308003968692228757399222030937082071193542132756068524951888231195955212029543956017286955679999567632805998892302246165293226044013465944379878729504906727217376940980040739579601074922447051741788101549725284544012740728647292881113560408974331921868972947641329190609418770080703104204698383299949413578095608653530059036883108196142550946774734629523368039857008470484633145361229888900346493478326264411766895037323868383966834553827159053238859640541636348997215543010618286075581005506177782847386145057233749960065124175524001435763802228283751741014812617276608729675762313978095982787860065821065505511672902342310025391414515915172803612378727022540809552173287791793917618747767495142186499684295948848434221707287522666015712010628443585484759826814096343411305621718716603058996134077788203878369753634201793059173960971594719383832808027570637679415843632910133956511701979671312779724110479080650775525005348715976861595147404544523058082135241266377148183118532757191059534442687449696312215997949189967974649302849128829559225128886659524923451127074696649211530559905946529393294227239890988291690328884060436743689249181867559835755244756257888295080084732654066006133912126862017024421464482727442262730115476400266314376855018517599057657288502536642840360604855928471606046042842727327820440025371983300734721665746396280177090759648513587583611871743497694757724097777615241619742699943362159725374216119775220258624626965829823052398975504542118833180259703049877588044658663534808988729538669382915811204500944198216388467217258462768477583043612838816670097561565113796199906685158595941425698668384437092152528855472517925224354094152552225173304859141857784874428354497972701444567619065987394743699597711008415537505962004659574140763174153541679707147636614899621716703939361206453200589589108692314270330094688290523129781279377777954825859231549113845461415570583407987544537158889984206466086457608083966166734481204826202815866932633432484435861983743396384539939892954900122603601505877246507209344160051309122650069742606537984714787455426145195020088017946537576475221015311056887445729291654486975138740113969201121915850693059549330278851864210214724457353342040153225878422039065209412492228261312734919835038350139061484671446638505140304271420791651141117699467039597131630530973059785975127523456215698895472297029778965961106521745263473135744724333126824749929111996314979558741239589866959126917572968978306584367974562595478118124648593010774411948882290137255142520150853962983114819091388822815493228146817821292609008054708125634546331627506410423831717777223185685501980623209553752894350853669040377167848881995268318621777392486128226057738307521245909782926248428560297442520466230750053719225486096421734680200594382354084643066895813845484972967255823583176262784681416619493944209597550778672061070871115554757092263429132619251208238097836476725101699539190121053229346849053929615955379133259313908566897289085075745631811235259752189434473785343070231726197628057049716642624078905758446643123430624861780171186871747990298435532327102188668578560088168354833291914578283166424852341088652866753235060464159381911081666837288836520852337421470614531525923789183529346585255943773279649115231199594069839324801084496272786566831552961462100194269293425014986506191963688976844246490026305260271758506014443768599390314977710446702039478118909785304177384463100241153707972871299092841371057062704855356408294163779803817891280317410765675748490587496022122848284180223547498306249764985497003672857551680681075371423331287704844682215028731272879353270429304579663160001487639419034358163464863791907419513569073061964109648359698362635507401586801229584241637589159281550017379989511308464003552043001196032611728277467260461373950694370668459039839464300636269679375323753918948582354625678838092963319416401549402635018850116342160928800179052721327380962966038453487418780606384252142838596860312562067383810971067964412864942063886779321647133483389931955503876685648054473397219454656611170927553293803804178029983498168403649688506069166174996822113829905467002913871156467590934128892332645614320210045765882515344080387587663232372852915515258208705055888468379954235239655323040056577989279327648722703617081239220502926855852744861276098760865434902552711600606447601929576576101522967072902820736626798120698591453054676157276116065680901086430711112535692518948217937244567874924399859725016100972660792274803744061021031160029403367709562505633892861972910836914177693282411995121075027581547986602815945528433041736345452758420685205962473373268258031278568702869392496156305052582397041371458733677163035923758632870000429273463446238977049595447778268170873044223294162022688140069215024730393142715096244004194231827943338571373678279483692916297204113473683638800623243285500720846815109410541265380747049455924776671744844161083820036142753589453033015614312405036013981352722796015671942995870636520400933066591511481033037978804748475562819056813651870502960543213409306477630541096220612534576386592209487599107575724243862279377006295348092535470811741832286737317458821128767210317234456395568711941920779426241836015241408623310711267560865689279922859077983417508594483452368950116892826943825175889858265979945979187685039772843376880566985887434033203003335145320033847371637376653803038893978307965256977405944321763958495127964231744271484725803472225083541832753841075863426402170055588027089470211721519708139055369432064946520313405620772559345778114242190193270784424848037370385504486003538308427392735276281451982834510251157839837812048429633249153619259985610288875083866172414311472988982907655831445643748366957805701653330590098058612060831593872397009276084076959268651260824457172919794134282137644809022633056579928607782379270124398129800674897534806519672500112731380072925278343019136167133371144700349731328046351647712335239883543102166969238909039877881517968964473660819209960208770683471970186225630384475048562651021861273923533020560232797558819413570076470575918737309635221591579876311017769714189932396309816509326899275903737813525070593931672023022832761662162058185469734997339199528286462957893038180283385619987017834053927570688294163592162095215594447035631489581656808261185624436050909162983243698766669771381685938663106374902551700319267975723588890308653765835484736028599678460607251938871591563702113138698048511355406550156099460589583286628064279700950789348167823701196260868520910533994125416838450187789474631890819206554523274065190105546211630264490081128464007602715969190512475646994705533378086512014750089624935215367343634291473726424067905750627260526304916350932145341106095788528532505442990314660956570281316487224244189079683784875334110842765847893301004801830167600346800030423835813300414368575434139158539231311418438302912265165910305452516801652041958014620063444300563938611411176937607984100678166724677909335699590768980966496250846523097406007009957761599518622646649981035856980342848924004354533691790480410019611573129603823255315375315323712599079149903653367574090427821628849924492672157780374828582152231407431394107850864707639548502542445752700950562379963948291739929619963673009016003357535976505972045111033412133748686433075138071857271375926982472018956133168536475154224855072280159752809399683951809544970097660323829213520224095505163064920522688943128686906743809539094402805796479191183067504734295402344137368088222805782931535454005014029691214846990609442846942090490839804849413266203342832969295206637135395380541570655593614051440286185725914945617148116653956895322545542623330332511156529021440789816389352203798465722207183030601023874624324943967935766843681700615740112262129234159599864628618864124325256880706470967462205395475026860505402466064956264712010930284343004884405146561833367304221458364500523057571845789516929313858205059234385836904716007361016939475906173224200920721925502210570309864993257529356465965657756490635242245860004272411756283081618198123026626650645279430941700508817778259209634042394883071772315987286097378716657117830622009087435163340279924315358125423904565921771296590602716861710966365332860129581486006287047590528994483657094041197563798284917071434181861991958976028826503052744190297035956179788978966574236580509739021091501123714085132737002848530661991047791181798830635358779826186352702543064739405446730608425244434543649168409815440341218197340030422117793185569443473423334087248778901112647332238818834173247451841094282904540557256351288054635645864519439282091764371753197845794176420899565692810272247785196197035612856040457128228466077648981330174469023894413935864053048523721080909824893328783993438973105497511117595515669740271511106597866341942722819402033528318974182555198615335358787827757547476509291382749467322760895576439432703189719292646429279874631397684568133569278279350510830626019320744397115213253128071446693727285860931717746021671710591541536507475752180467000794204828894205289836531063048809754797756842416603874260942808651858566423975896143293767282879821878982504237196490022960127152117210681999551381302520475378957655529478546058787091366109828581722310976049434091813300699554440651412337047821057228268269006841699246836326980399661688652836175588603234130947603657011192305895501230487317971447390812295619562165791293091577402403307854820100309717970260656197523984716078315014771263668973795887545654922579459463432762823054095584515869046520175448546849888622799575335236766597651535896767945923229896744998329228689202613173181563223365957488381915364137417660743759102326515929513691839348131825658398411220546909030272187871415432336304761765809951576805040800460054190914412075251047452724780322059445458279862729020222110917225488018802843417750383213782613594984260622219716152829891984326815008347498188569519696553470750946746270616846256518631268570980784560515611532386159766076396172088327712465074788393404505127250263365143798622193767277183954593111054775525782029843899558680191764214571807464026139886399268972186850846249271786288641473687515368580861180234341167993392309685059160346954776141407816883867851849066968912297498894013778306702617510531451679795822119236679703465831286976788361878966853410686558995676496370741109848222749006556430136161184771484051854320804342053215246651274337123684773942712321529158854557390080495238392575809160023755127801675718528816571996790140354643028824580864477031335301211484933558693300432238398759440246811521232150171598151565975621499545256938600542023166022488317620039072096597050435160834532966269301701621556448415043638357845933395604244272696571275698900353833494785492666286716278207292658395459474418001379162494042606152498380778489746623671614486339219837081039730778998365251091135562281503676561318618661549774525781578229784222517545239523187011172786177467272874770012102367977308361154509738470556242147067162179148490138375872589432649496970819728327442247128848760896841245143072573215607399131441794057304069790277739008051972482685418610764847786429205133433805419106604153924213761418029246275815956366909371576816869965547241291962276246441716332316286166854109551729839524003905257213341464607357881218557506584037278719553414542470804976258475564218879401559299982809000840571895609002989088943090784662588600415678287342920421505948443514506299376536102661465751826052410947938301900212445111472618725568714729194051379274289649365185676238788602513367041320484042558707676637285782822483902354996946500885021010258490663866760898866742303255045699004240806547130313987180586662034717129851554338926940383568270217650391740015563324003543770352780047123959099584120255445740582138279038013687829308229152843242029499172518635405824803859452859755926979595750062074331412794789267663662493960979406363294469849695045459744027222786380374603657802820127665165337827369849189099308881772886541050660370293821626015198677241460549492872576812896710423786120204923228166739098747778618054193631046552988617939890398447448172833793786940060096836813373751093630676818699211093529279464742402559288127046226698764679739924269929993128865166876755865061209862598465339221138507126600946698624982012266429552379373787725198621191195282595691760888955287047734629226741218124992500963479085766119705866592999953004333841825411872661693924799405210668238733071914799086502304649447975254236278450661326879834920327258922375484035472596441724413279820263520913146302870113911489127339220437504466948204985520826047915836788506326434548811211110084485328021367343425400045066778790646671529985073309679782840188949873951782894268303693480536735103470268112511712376187923478614644021249619157108761658125453174607693640459838349839887559235815029777270570408122490249371836757945792804179807349722664482231911646074191244453851624233604916917519776126115999006880337408243827987481928574941961008334912711292535557722752042378444123525230348841466868872117978844215298111387624043168355284703645575130121420626583119018707883187096362347588744753585361308880562672600039539538879016646034244352099949060148516737980362621796654864478258663309531191093112250691211873727954901651425776033216530125958420000766690212978276116755216411144888575699773979744121346512791752310611891353416350259483121627905167036506101008047885651032160865734484951680591410106077417611622028933132570678267070344691506019139235982719899446572176324461079877362970921800187124655090376726880039894148596817910114220021073101443406652655035026833062220098927450731667921021400869203213143360376887066020928377234276856094687382032178559922253240831102943423877355798698572862438030199514254388277107888845818308706423689600288348974574422114009290923936629644666157402147562052903258003083047654757460445366337849051699347279018470145524317223455173940341783190983952238247926521532573333435666794916189194290006178414105703161561828952300285492069208757842468986362458335554127400692449926193360978007002693396937033394364201897370064021219065533319431953252342705346904460947390961366223309079475834259661961260285949376714490735682335399478135659396203618897433774117919149379486558758063541813461592617881193569633578794011666933030748192277530320982443960767524688315234596624972996891890153327459151398688126033021223161006547309269631804258139146688946175358294243905939865059358472583890739444504873539171508069865628371432737822606015160107943832961751057056786646372961735359873781920111759895589039258501403961120227301878645201236716992977434762514827616303767350736183853566557923934463374756245468497436534780618800910309372922304904212925343792070783082769347885057698428822889769533310371105735694504416133003328008991305615920980230484846962776064327113761783448416005352335992622160014566662816649952116151332687255312839243234091513946167347861179010322877997940523075529052509442347067339396262013500061988434887739515098236224918887276506703409555613129292411736032273427762468885544335764965815150991275893135198915742044607403993402384479498840568257264267574911500215916651179993265177126945415659484814113818026778011095741028157836472062965813245868408953131543117949008648140465830674837346681883970050346945961823622942889273251318748800480813493900770990242373997824057387576471516683233185740731553056616273055534208776362546300222774096794141264060520214272296183323763830970265577939050891297580473643293834545140134048087649239690029671594971296201753224098067005195926211123803401621167365335036749910064239540842988688820263632310542397507714459143320508332319339950752517004567211190764545455676863908579067536240488625415527541669614672129136006126994332955626492163611227540770194443098046089357004252424573844677290682175363633196713555126259872478342834127224431131696531456217824970012119088825317861397148185972469745353432420816954452707594109063555396156119667049165608429618702596925433767906000539501460920828595484127022399002248434360967744932569851823019566422738161755393379323170757962311657812599720727555854205142628652501150965698732330280100113091838246320304338498602039965944279522902567581614205716009920794488390548566680123721937971619104490005191507477671558627063787611536582758033165473284478267807886543049366750288751234087209307337369250895888910409795654762412826675352990194532080891839463322139113919822765735716942794123011711623975205778311872325303578486869243371820087246527601701149103346988030297897201813295596985651366695472439354325108561012144839313982842882282276457905106438441529045523516184829549839594343079107657689688387342536095591823859477283517409405516363392112633330110366133226502789847216423805287310004034424799839300185413318113033253735432656382304248917824274951609407164859748087444435867357856040900428574837476852184589990835401959184672178405217852647732658989168097816830004967205724005519567532347445543723933490653994708123925858999952046063094094855902320605242022081958238250096387402311003691132750968217755435912554726152336881399489034588858788079889363495089636585549365970358401139161451697629273425132992888347042487362075795862284225302847334216740124574284612309376924967089157649489055698392254288778094906996054619224839931587317163266615944606412264976357963155647745939733987842638207297532227646819830501493200865740631732095343904408989109797727422102650831539777066583201225900906178239875249539892724210682584860269293558692356973371630546735368671216564202004525656337703913078653824826300408618257986538260733588535745378278230309755400152961352253286618710419280872150087373661056398819516220521451970794637988620726887701132040411496556436903170112809903443784484656589113367576004946261795271102370435041901066978171405201141885412550733585929480468619253050708672253545933851736156304659212515278191838057824491903920785290208824473941313287792317300007999063893211311956714109359941115224614324002078727823707835904272691810384168013076270544469722708146357657205550720744969625799947273962760474685266195075275924466679217030639835148892404685895388977951164562238138607541863501524915313707721968881163462286933399409019752442441184275095123470733577812875508873350786448122717122826495947222812630964498797550376288246008624922883475342914896842101970210734135676576197173017672471469188944318646077351661426893508099925033741936132935670990748389055199745292165544237462265791984180141748670743717295063105878107557381007621281388483055069338926807117219443402515043320843767159643957979948280748194640217570112422200599733365295274843947066783925612597535667232159927079664313505073542568634941441940984471791699484518470395759348478021691581497161067840632415924418824497192188012489420289399000581299468496640473869693282795260116349926939502431346637365177316018092963062569992415962069300890524667068201988371996083652109580630530969001712968379646688931391945634988397431080872761266101896856460641846694459188566235142677640530554419729691593565936517433750907459915741997767562361961180617933584542978968126074913563920025485538804553798931181238142067970305656813219094973527913035387117807618566012264903416695526308786890532570839220883745245529026915622037999828504837479552409771384775943690129887841194019361213830548250874705254808464403694367226628923202645021239716834166660764194387008038945574038235933095729896482886521118266588673082981111117678895099248674166475196597291604425645873897243555754091649235801865831179560494518344861738356710980146464268560684872290410925140479022438426772385538521592183764113917406169138906378650619244880441996968479752597923074390639986546874021227725963917517530004012771426917866821287546948758637795314274306386663969422929512368704102003376762261682986217869747444255365223763144755886308936407778603826525796678683794886569908832995385810717070464183303231415206310493210051773731441628026001586568330236603864420919032103792074650648259280466593168926668693423009076294814574881744449082909191153959523381351304334365194973874605840809425315341502809277362057788932550908708568761255078191383315173146092472368993333738871740465053726614686282143488095341528890168661955174856028769854134627189083539338719925533008990103418472063777870775430021698787687506659992099977533655657136239841123976510513472748421077983813314606245132061839991952003221578741146432228203211223625587485422548255926082691893126303019839676491032203846763900839295183170796701466536788818599208540392085167764826292124159150506007700841981554844328360893878186513438488791951003025429612170638676222343047746597395444267525320473569034473949226543436762228335798146460001395776369582427346782424203819209300246608431554163464155042187181550656627938648142309048024779264058836452696109200905934666424239025615942692116394125678727894799392620398946880120900202189604899002311128967885671863526983061277988455039510484188371423772617869142992104990422144788158858282490540631182803771149137349044968651433711222671799473132305888352583322189461448638880580762222801737151489903939182911912677901131797169366741390897810705161988836781812849859349597860341810387485879702613179163851762297061622436682274242798750170679652804036022718251510834182571260103270123493018843091510242005168751693797395434722116562181687409805167991463551527838771884058086478479518940502824580186212571177138058773880781595920274363892718808926822874739756924934161400814963248306944273274701190694966277848949334134222356048007150698038185470429129506455814695213905640780333490113948456840336484719065742414337831444340391615410015948078752355633252061835590557849297286584393664775076526058062112261391710897805145463762068811693876501962157490896294855247415110386967828204894606700418490482654582243210983025296691898475979354144945783808473705773665423120199846911247314879152601282011753592448754331574860860243376959298817448146643507178679407976387290064628160705865829316175116049181489493129932967484803834175051213866313810729378175644732665362458797406613096052250855359800782543384492642823219133508076634616893324306924878768795965453363457128854251558620804622921376794766690636948885143302860329159067193655970503391858603603509272583968450722156590606013963731590301121386180893061540137422234589838526555842319907211787058335537580735538172155206908751566067935139762845145043591685469449908546104684192121283954117621642712394899007369012904719058585619975093013194205778168644383233681254973473670759193170694853723095057283392999673433872940059021840116017672510534378308741736300027527423856371050746985996274824943603488989666973358899858872972105511407443110549525299216796681128196108239053130878176389816345960349259333761705790224939733891856843329795070784340369527771909862879927470715453700247685895857576638144444395282642663684266647039110343028657732579161962737113766646973738616951341749178931118451720576755698215263688364200368341280231969420710170555582322426303345367814123138111977945754398696497595351075991072674222223078079225687077350313622978559303189700068745539011760199317369304479624271735089049254919372976289841053512649814136400879424389032341346875409180597094132111800924781181069607822606831893757894346985502189233703914724126766324346328502103614994205883626148402797191705807302919302153160984560777453933130653216340558993614379653096620518320335790319638527867825702482944647976426792405823274118757856084046109352779608159996826767074210092310731169818374741067882435209580640471158695997896599096069762989173690449075031591020155058425560814539690148220709620779054489159939800729924564248047912442909759463501355264623839868284794146626642323036231901378784515338489355173313963410111684226648943974014716482348824696493841850866702940044594661104566567672227050853846562748790603810099342341294462617803629961137136813120403435763509190775155817760610300626100861779108959232097004222434363970199230999812014656394231661560344919739312603843079899422631842378357570680610610149249454380565616105368354682302455151994362049016381903704275463654303685896514662311026284888202963742343899222734037964636261059809799813729538514837562932420153199629039143408685933899314749826226330325950298872763452186049616096001374626465026848838845905597758558538187595236928009366725122587119291423320799631676429495995619562749974054238511256769968203100589880601827265721331363745813642051007886244566973931177594631986378430761266043565327080309565329472670519375899720676351236706837518034683815107729205201930075068518707711195998250083043733381494019514768595717774825699099094808645185647693001131386065354465869533192693098101850143228742899787465314916007175830957362990073653209026034461326706333376949000065862804706435906850718036114103795377531815082131504373238403632948404980793662734849990149625356550538606328075643087849003263967599869742325941941726066973829479832658730053052717706095669691454189860114813998215122157263122162614322465820591217980285868620974043273171298390426245027187745990195400922144578609861468318453663917632101070669472242502904565224986823093505656131771971977929310458509350002292356804187151677615749337844588070561196940688945219113085839729397463511539249782978390568758343854049470717269705371553503883710104358206398244012692829531611781712872612813453851955333583778021160581638478908161589573757851843746018283168895431585723507015281331068624090628921002115865695565091100621635600325162152239206155879599679552058648491976338423532578262522071554647905038654338782670076305907696057408400620780436698164251816330210526816820022906789271953868144197709344577805065780776092915698096046445941788314505773003268911342346895745114623113645571861668757561634615699741353446136799901647643861706114969037361878629549782911463754253717395006389078627488711904706569030648322108077804129980014813158953903254117245146778193190758862926446789780983659774387399217143419363859351160429792597675798766183390249207994774318497083748048790873453341302709830888853963819474115910609747065825383016199695139097740392253983489323018784062552956275249031419758165199787552989961267871433930361501592866215912965856258996040617117447996400730012147583834718675416525365078880461971571209936753188993562103650663940263350820398306482487285433040998232959027848563213546419445762284352885850350582335516389514861553726574488613857428747144451091055450005013797113360070561515761259704830256942657640143836037247412614607476821482318576205972496688621320116166367216430273161778223090426071793545322045091148845358777500018107962584236378063884799917364314007853984480863002650085115839606382222450581820712200045934486062281020274185932940113085730409646051432376432027942983814786891067945380802706851899569919736260101544815437901703541089806310198807828598330092023491345810404476289510411751731654613045044697911636492108841307789953210373078454921859843342620095145018699672781681006929466081820213280142335153941978454347513366877721422823988072137581343749020953733041592265313671212403072403568570879870140316887384807211260912144765422848603956015511116177794350322344477424228251476850475114035962573594085444890772870530599646775068822467952688015564481977352184596181720836161907615197508575807327343176441055731091195022098729189802414722584172256842473095125083432903761601958197154643135322101945812396020738987773714305549862239331215565297852083377558656862736526908764364595542849107826038563140877927657983606418331191669911166287792496433741173039643750032212013160086271785595382091110953659729826880391704314037322618181289144348673148749285221632734963901037755021467576523666388782838630575892664399544855553441233897554890917231567141525561741536517189637412449019257079891756499080778428234965271586249398266975846381798804236979611579789013608284797803927172054506476885216004891122354974792726810444630558151145158644454252088199670665556663335064286445701738494002289791162900005797768649415988014118481274185368273306811049146395327818729424275184487460980340808455630804399411798218525648375419043767756524618379111505554460161820184167460582755053332784461874431627687831993508363344294145869601797973647430031446024594081259749793252015957565456515514015942395982780368337597467477601992235730596151901130460441343103496315795422602050810375887473976477069075184121861792802093566744940876729808000829688351504343648908358227130284166072301770510358878198452128882544444394338483393925991754793704228098566042832039750046580024260885170442382063373934523645149955611312047461259766983117626367683331357544479702700485019285364848801709776701133387589215665911516690234671940684876692556032958970016448673244847818600460408340143507999095851109280399790189320964116248500052874126385132639426589065192802400807288206909582269084880267580775904341837776080486618811852893822964662104691195927356682098529877426726766387321701464426579791769734307667562153868357253690134807357983658044652884624979667939343774704861759884904644175348597929965743177694912710164111903357356090449146675847480556255776099352586507634156645898182873944756036903626559611390183092037479752303195284364665689697679376897196798340763397531280225763583390219361236857287570363994958148775638030085731116102469978181531060135683053785204007736355640576611693168531371379852504350351817364906549899011716247838033591213119157108515869066662682291442147226147774486041994895358842044000607129660123757534758071289939143592565058216644321456950184904389159351065847799176721017152323664571525349977832892615499522585814982631405154121448488726353490495055893896247095934110428403339484157039196885284086748718019586473915508214728041133213440681948767856754601815364015131230784070794912892654978577151967191607425195160285922243327737425930264268436442282180820198598432140011105942081982832172680923215074552854083090656052748527972258787543105761824997281995591861257164924919456925228367866832921295063793935728285997463319633873622302756401830262396472121267500707370143236904717990252009734367210336703146346379433358565827531466626536019847091570111772815794555753079591135249026822039690470457419377627737161550108247211468230689977474887793855544766400051283322344988383607570494306802615245577400262582078160965922226770395541372863200156359030517973392086198207622729770921284341805228714494563857799584253939961738933923027667902971480503635845474448067592075415790464231488838608389564752771811464716025765510904403229478946400971135009962685560722589808437909916027587894323910423457183733314502660283738701722291632910331191982988940863508070308168938288783730597931841957658794799486624672080771197453868380308069567295850099203725655625157588219658369000961299503779222001689864942322414203740308480987905694495821737479576844581940674709070847826983410091892124734957133333088120806783779099133417460091392402878000190711638678903354285535993590894279737705704322753797281026307536795176390026167387835548159398053257108061432799917360698481806397358301572711755011531789345019048849329800228825166749079709008245029667151346013449485374976943044627906592897577373929432833044379219438315498957393515675554166210734553026519915837938674910994951645499020667249292394653598971029056526547879897195958257193044418706569080293658793669119156851191435431477122898484987733401602978066773480891903581825502093057933506768895100285995043468890645554510235000934212162603358366071970252784533650100372525579688823343462201842074496714087573146967569886628304069245011809910032696153515063429575600152076289398058999118106482405835478203265211820422539346178408081314827780498033087164305625689334389867356753574885045876633085441753955939863161753622718276601782426372067093875249442353724998674578467464140928927900184844995737345170626302798174337369577339394149730741163271211863499578019453341192629420911164569763637140670479104340697961225639709196044062509855420890221082194310397944122988275179304450014018075328047496182830926437305172525765229943854028494763613559586865523822073079407393470782854068685779995461735781919120361984169148253029723089377119004669269035463221696020480807971242622917500852070507201856685262046367604207832223287919562779168121933427514694148444065431487583167479829626019033432845009907589878519112532918946792818821633613803224472728228564983232194463000473665807832325649576571690930342214669986729491955005348118716171334088377177280981109477733716342342431418605685638312465096814279756170480655409034088345897814439767039910519034666500868784859351988183734825211473257371297709387576347728686454348543212731080969096302742054291206349405092184473789500633719832554636613993789139040250540860782088265234703356276128928514729468093139404615021042929205408952426772557949549227226232815044014831618880555727700285228543367836227498774064553051293339116355186220225482142802434387779944263609647617867882512354557281710326972564754175803323620509266927802743066913313215173046480371559350861270724187847481948173789204708594564031344762174244746874995921623949038640740335522368722380101569464800328674635079447507273889138697188432864970227172201022126548678528966447892673077101750831818020225391163420689568829780937455713818794241383860489400472903874107955030140898546475700653981163527584617705278430968466025782970852757010948043446953209689788289123449428902622494894003843099712365754690316978209753713892897943672009178277689768509555058494587078133112375032149374468617735926488415117999095813108048728184800836925888029213953091916964029519832297994112950196427116389966156985755363726551859748293368627394089335247674427789373800545370679049080246261994014811126297365165263409218480025970237973743547780350195464528907745369972596549934443719771270207635225798131673099084728806686697309642718611512074520114032822714929510355783389645096601869838529004736849308288723818468811070918879982374737726249211430279002456068792508569689682092559909938208282791857832311896126658796100810388123884676590668528071703499379381871685122705225682338371481544316938018526931689094457106998074816150125758287751671183523363101566559719108811879669045186135636142840495364513613295273837587514064543907139472557003859316607579710520735888981831788938978648132500541914921559005897662153085162775199060848055840904598510289729681925849787079069281927916306421818380268340065024575483519868113590275076133104738069822405599450546174740563483233694988203666206982909516584876559445896989151382617495644458438768708775013058527377934402271372212231101437920773743545288462197302562602011379080304859362444504822314023018292855418755347013121241298246800910916674545154582670427873594762250081403570226740899046605473952113700031328512612499064166612195436981526889648665760906191817138378171460596458673324526824598573953230428158813002354568068052944623088219639824250465074462037018992154089943254094015572265859877603220566128296461283448332574617417159100118886568252669508971444848347560627881981007104647295284421579693464243734701559699770354504453607958264326850636372727649598888366370966775407850212861310207230310047576793282902041681930045647314631685392950476660739099223614004245121927418123922630207381717545739681299801082012197032715547106829808582922150260281902225011239615678262995843211904116916837665179279517858332900425135094989413019428539549365127108297065634392228276190123503483238818867008279246763398498105418874125166310544749273049807603633942477239655094745684963096687493558009096546281671376932618557920012042674920704114878197905479914736311632598010611054402022681602304237761010167545123843398038068803965508484452234220456576169315902767323325692996329901620002344845733505528214117705716365248294058990735684680422621634939089963024151563451526768655077295089782357738776145503475943426711033326872353966977982858476323845362518573211534594491392327630144467708341909528200054469211464271906691030788493312697932029662162582533121180819871156137289017994610082408565222380021933758079293582683394716165337121466247131626095236060555398937630733427914325842664748148838967034914254305161621499953383802879269552416904262795016047402905612822238773455025506914215536147225255076171722151682177115382123934740886073092110174314579522272355241661470764759657727607343932246129585583424242261113797232945749206916751394567012071521411793681174089666594781950645655503261401324343391661940460237436891258661969341547637370947491027657744405452684358040308715594465110736336097170367410446882414698503342966925509406797339328324656222410494606092557167903747994544171328487058954596584780538293769470342993171933746203004563031529623155364714424093465688654844269921763208486584616764030369529229622561028957576860648115622066942849961709621746661495722667910448667983472907094966040314910639450748256447211296023564983854756565152931946360101956484017377280997960462881807668764690721382306061306989029011943244875440527554339517250072701811540315829006514664752545000620542655367013472056626742646037504048567388793768948954220401785030378478653106886245711341641968116079133004557627062356572310893117051470278088298448949304209157494095017806008419653811463106294798791099325255222720136219272961112758732036656876176066651518075573905631358431998643586083313851084525054719040237596658490126445810509936142644792827322549850473300913787007880001387360416867078128757032655952399779040557831881577873499579592724042662850254288329212873582796943090684559080140869598155460852578312090301798630003759612184173299958090067338672661011703967221594315582018386787240795505059373183257733439430340056186115628709873864606300807088856516233137771734882503779924812216499121066170064853174076810129512051035072140653421738392456018389747710320411771831927622093620010349274347633791955554633372113550392209546643040675144991785090515428951095184576860670654254349041551748488117957439711420793789986524873637640523028615589711141795614588933880476191324939221412016030108777771597686453925524442593436626323068181251383886180770096853032984009131946991780654914163756906515279926501050245129325634729077230930749460957911650801553503573361406896090535104426725408530400955602490216999683033853535656724436092033536248861048967392494602527038970421689711656547435357965391951028741435113524057683838335648492986068345104747155102521804377899832115943870225612989079269588501372508284052334016503289721279947869074451630022864717291143499568937321704599239964088774377881392959324790512459218133006268271777389721937564608058645697638520725415873351410249407353618306208767541418557763119269021080047742961905074268044753149942271052743134897203725999674102906685452891374981221869978798252323265316684483067897414148622191849218591916321901266291188635235858733140081541956243949892305984965589185457028373140289981351652762383150016030105591133119236470750150744751217373942656383048111740623165913393635505318946301016889268751479843858036216997495204013959887262699576721341172790985535939494087188410660475474981025401491905111239314228160577980894585301358905643443952702570887096311669529977835123616816192627025085970361958521322578582004555838481855151457212737581219673255342578824007246432632940063505900877617469891653488089334261918976545023733116686843725624984830685501984709848754646600587922900846915686484058131404611754012322248243670455785027171528729303607148857130950717696161208151801410158602216835290855948184783973051182118350996783729653716938205372598546263875213919487546140168334259347752129575183117275420383822337160712696380483105840009405340845157759734026634612620273881723358803972863156956090880521751860405097235242429416025835337825769686255532305677723445283057191536739727474224381775524294764948128352273223802334669888462913857510202304962229002440110545682881687569717956189624903819235450682529827672330646441023033350297896265048430977818243316251816360688378691524641557733221969556481535712955222076643313752642426062481086666905877960248391908530395076848130063815202585451732709089910415619171417248248428548315558796935115576879211450516536150396722554240199493054686990905404436910914469790957468749310036012157636713754472320849088348511290951588889293306804985698996894088557407637151245154450385516437131781304505979839564861081386197873506230343253331849670499638790430689061248739373838199408128380805007896739497582502592095607923987429453179657857262083335565211658583444606801023981853124465602529218910917427079126505764845812214205830456084413461413997012391127971171866253433308961087061950333225069945392914039246153516798167021520977905451792805843294051095871459923647210307134561886034919185278575934680334054379601261739785392564591997828953721485818817848770510882853861073225156744727051723572405957556583420007922882707437296752203201689876319257556316811682631670552197872688856939618027295852228174905808576766611704143319671688150534544862509412454199931728206214945920431423651100720038250191175182761771431053720976895714638027265891481833486371587192142615764751197788339933475637684341532994990895974158167022908654307093881726606450750588521000590308109407012083142183861323723634282143048183110650720284324271110137081307232022749171724128933274235686093956476602394772674457707318511891571120516291811871214564709730027416057930065252798147829946428435846949582593897358749028645305747170598632911060213270674976374565443147760602693122648408690350040171032322628781956257043155087244108664458687346975134582927049960494121401790821221475925292402220538202973166523696577202700423721076505015842139089339790654798616447354931594800958206667578551547608012851306703808986748257555726142820144365382108576862747744981909526419653249241708107491313258721639157334491105301951004962817089566352396063362766917880412755031914634653565409071449596331578958242401922318362342251347301594804960076404971457064355359614515259948742660945077962746523380933280349376642639565287193224752787930511235555572792826494758425760312893376107964209776348580212218391454693717980657953625717390268106985675489431152251193467350500876431151184826159338962475067689829912387866002294202260457868226606296910539883744850613421477677056865826180539989757513541628152084150176796998528332055908838532360593354201062211159439583297915539082141808312171082099586076536670980521358444115400471091495160437499967494990375323016661125064901444008738548810856250653718016639726936284728043676524746394025830632608727010192327682931113153759528743552982138342770113079330089690760521434707007235698799724273959043763507832361086658190086753088028256067622793854865051562753353989364573211789203574182070432331576293996779696366762643490922495324514531886463611796633833214935997857380225871126720609923967043396434901454234692602033487014065633770193350766290173870978790965369924905870460694040527663172898633052986334251248873557778691736388802667260486835218984455357695045896815857649261666933154630352811088434468395996589727751915434967216670158274716162048241467878635051134607395127221970501842093867972347446261952892365583136562594702402163566978396714887368836258240687906979241853980605542527787065879215209161213267674150984113267356878828937443888263794190589142662159696581315260540123371025323365834391715056412354214896116963981270241023910198888316091272625708013852868451687128495662159015364763448999320025574921388815708774419510745971641350257887992135219752375445319927764452030281817001247397437189866548173959447088020129798627423637632233016320559500065767228376820987281628373277765346308474755013845699184549422034533082558376407171700075654438489540562982463752938095062100986086778282857334156396249887955196000428313591232091454677199362605587228327695309261448335430712722565038146411898892126221434023451205632602699465879215201062683760272201746665174086115658891048829923193626798331912457346075787387148768441546433668886413324218514330431720773527040651197859540145568092059132794698477500253371003953880251637531521656596187444866421053050321658706108933923970095109627015343129209394512863969575580078316273414303991862554395063437554242854739309654201576839013765036563319091548829064401841085691961142083848624724654774288750092081468197374385846990872134681722659094069712510160414139192103278232046559139104603782811908685919562237677493873024808592421590849918543696816138733017982962846077293374034374843928778195947563295205294782167131653603655203675146354422425853746010369655062831131196861765305923111921273301490754908510453650370125678622264586489260613937137864813429835807452975049551306548331177887181798949822998460853746311603095687009585572819085159953339842766257818018291887260401749503269452079854357302366813621620368399615215525427530416287835871112888892469863603859416325273378370011166585447403677517483685134100905555093155500696778435064090947854583103547500275579976012852945889570483863246389220682359738046221584527499761749452847539411859167832313591369914086366957626056071166364594585126032332399031499957943899942726001382640859464345427520244143947495357515696578235034624955481524332787387992384249814560635362367123805820194427153423428860700673189592041168816439955798659493895471572858746752191572205123284908612082943393006431421453044248354191247499049167513487516377035393340914306423966932922478518395207067514900847090606702563801112012217270925164070088172199188199601612002819263041923695679952483702144666915676892264204737516564810414707843489868470760992370283367403652822431458578890914991014275163249653512961898734255812660757408294892086709076296974746322457418265752057876865338448922013959676596343950359934656225348851624484734555356088810940341562585217742810210188046640854615632228765641677886693235369071098879508764334193569348214035124376739804857928533838527517618454649448717227407398354046811364867028017757007721152934362811416569222286426813637564609614089250714952371149484272801165160529613036194650349732866835352195330648375010341156205535176083048022631362499881020131110051311740998134693118250173521084767258709349805555605420417712766345999123812226903019513398174827138242604277638228760802902588488015598368956304368899749098104756442140333639446588724143919765397576804624754133137240427339610701494189979919816814201070863628341988231164738026410980581449069721989965580165487750706205609125075289394859885994537202101939507224327487214271375607896849902054515648482816363488891225049885200754455200009641518151785936486534693249537293777129284911372264607370016548718890387637974794024747086588478899648066599924889220192131125712441057534562896726726280753514866257253830447694407200172352328588122718393705280716392578904356517132963101668986990236487232301634292726903795018399946779467666180275896404294972832621679368883312154448454540829682001003842401475276180331748133395127691941412606890421033275768902050541819327056508131137627877896666249615787292584564899517866807685032985577809171605373723182446719789773662243512444057209290396494379829477882389666802580447175868549977528671083489485221741897494749690798308269132666370836900665767402917316829204578477383195217409951956618075335431745001493987471547231848440787635447989380673399879717200899820527417427326848585627443792638575653547284352223512252176090731810525677551479671052484460558552332447070526473155399709938162886868255824173563524420362746192136055941359524416350009217204356350721889587176420316628235361859362883414555433303855453165586139087030679104569378330879799314460936148135603763897455543882335234321510246466112685991008251585362715323931267368935753667088721983569356696054134373515660934708737709000703529137617653640022973815288448967017355426829622417211730064108823568790934250792709548766995727268280432267372270582080242335258292466443872372718540512475721984966284439905858350607970073706260811736556766491135649869215616138671159386264174515584339750450782944808039459897978869403675067106191996783177671349186307496263882180304253272204457218211181087989774306841790973001792581579638442583843412949978667699228338590217851850750138035993831606722964006449119974126919446745614693840331589644302866896538616476820916564085661350050504578916929373103269264653345591758051054456170814761975978440375478760652572721506143599340292280484672727535747575088687106628367382672889115712412325096728479749648248911556608113856194255627106091383079262108019411930611099469498290144922658650275081185387551914667334533474093046517331022245867630768244686684354697162178653332688356995154397953459705443134058362700722325042307482814466054704062401057636378627041042733323083727940466441370943968865053531172243921215566401797377485704985875113508382148124745792286200977798761417415163479355258250691075988442630686661654204979319036089174354235058828649962229224387256043261173725531770441727570655610571667080680934662354679351073700507838827697962210287815525840327154244496120783622156257332092977005888666437607013040027428320741069438539412674581906166817476626495782089852557933733991630910152933805924813574546068582641127586669338661153910057448034906112373290118787829974826671589788795502386817639668873848859283661531176573228640938711065402792951394729924647238882756969942499350196638882189199411239327609150680454018805162297667940546663181077312050699710489578381860667812842787474409139279134072058967648252578986739013411422160442315479928108089141066566505475834421939602755406414362220562410989760479201883806637260608295525350347042226782322311273525335540192674589621686340540504979574388251396422846309222296433213372080772132403397696291397410660034322638339466401838480665362747997547814357747769410083804999134563791102886286048728604100409283337415366027225179009942963088595452606887733618983314918055653418075503825225157984336789308078342308744836464478023661697546958922324950499953553908966263026444461459343917907533079766564187132547066232293612067036896952280423003348733328398549123095111804442086622576796859900822595224625158755400024872300155302029347194059245756334627261067542429001024867515982558840163560091559851758280942045634765172606088327607662958806050165361707521897116561258136749506138350972885395323206544939590566048834032905816310159770837830377731349313463369401311508365060539532490365544544096540813797325852540930461450739835240441200832884472017145573073896220225438346339675514912821244500025622979380541499997301722867436604591848131070923867111115056106933174685868773164909500924882681099994894842374011864250342626092964498336092027999921339171573922401097168373654662666475689065671050007510946779015060586326886205027128576040021055866480957523033118955278428640492012740034073981002638746419768569910093580247023395315121994785538950355856412455306021009013405470551711140433112809789606075188851234758467908502882051730871000507637399096591609133985903590984789156241680868531040554914005656642410074321676036795480733672891913984369202302298656329822661226826135241338031395936260727387213560999382052091921485518333976261661395275333637304847064884170584494834229965231527782460180841575222819630871631649433935998469748039963659867013463213670756055765294220003200265974502746295994332114230918647567570484956750534624702756439196646161237247532316194014083923831115009695502435784165510752283356037852494198347837641108442802517664817737442001204477178107501769291635756383476545137421023160255338835555497648398397122385310619093915764973911654455915379210249522515032199684441993174296224620310749681187664688664070906672997221407642335452322044491881348271637635083935132410290981290840873709446822508799673859530900114614989676198886889335849095639913110406082207580865338451012296187425107919747158103574406471668249110429672815296981354160906386510318964772110050227769187104992537323229885210728624006402134018539274244883799565520155769607718248064275537599579807174517513165815500828416875323024505179372520635922187970133631368826302582338899501073071305399769079988374661117579113669442816709695966610732773943758227581601816326115910390293418136897950062366438973952432606615086610789023553652177938161976588814508939816398957077510175094161154979769971043048809706486432326305362161213675619640740606344036733688964280564828958158523265206445653571126111609479437150497033897306574264760360058531333385817394052445008156569371373215648405233108011079378176293622205079416457900396692747423299992621709378048562207559971346881991259557411749984027990127911036938448578569988272555384952715078716677023837563596458331375851222148211386984631474246512887698302153567970380079472273762563422247868458435510044272508429544308465600500003413385972144636305357154742254661840525387682935276741434899080660546430636130846428904645541245258659735685805058474145104495827844378532561613639888908250358665138141302973433196969073039398613415979458348872489335015512320569632846356041829308402029141091494053274415485264905888182182472558445737306544236317591535211146525398471193603929213476782203072452222145638881866082973058957114360334742757264272436909078982284428077693246550031366358084388672531472906275265906170428460419174825308602891664979916672709102737265640389261368708001825070796665859590240961222502233922761350068899054151321614575291997377189883529461264177043192715953188888271448664428146612365216763983603048742197674665720270937026944817444243790210185218872017279375747865445384882582832654370964086643723107381568810251292067575931529917166550980687832134564008361767325900246475485849065796053118677677647394858702818613649675051763853008757356505828672585712425411490358837740999144984546303307915809085058798030967419004080083907414219119891645556271949955230767165119192532984658014012947474269913598562493236580370612730572145807199514133686187430618718106568929769821547435386025263773038624505729918902924323319986488591865987622653642217316083923983495303422869241476217251734593982363712262499122065442755405887054835466056016580588873326952219023267043770317955183533873486693381252500637653674600177994981225218156313379086322647636441600273143116358851577028823630889716314968661195399077817998050961268978180903825584735943028034380128819547748740055270939541666725308623640611728047976276925421116137905978103134425886364957795488232650954051890128714875801123533628342314911809265257317761730675652874231687432507034233783535893636472096310002990787348920285760429455957698636707094629578412935955212709106646069380850694396434880707679039706132693786139865397609761986229808884571284175013079948217668490942721257802080599400829827807837560772714248901609083522582167577685943518417035549063406045794078755545285819142134131834167838107893674537041551174192790748576019306821093572492749015624779439010563078988219258973813831528606393152153495520933617960677532554447568938569881049053470329854999836258464981423643003965253706099753248417962213274476349291623386530052485985093219215308117436932567971638258461553982276467629230252885860435028802827147019493485999748836267708691819461834843272432992778086860876126639491889179104052702164181725805704482057761613725385430030735186048398863187636621964567464395208333605284965925629795357166513991286894127362837033701170448740824417493616813079548429640351496532475081798174841945526345341449909895792423592170457827628248865778925337124667467385272428514420265455425452226952660524538686912157908252390203582897606444645610583841910419658991786482326667969366372391835575448376777099174380467330230668455449283409753286575865565519310540326606130664405314147146959244061679139653318778154653736277611998095950637930036184678964890128665637250194320372080623020576167514410492671561263279026349989287600778005404801860658889897188695807676954807828671998695423548825077378156365836207133626583450099598231924920468683995217774050678382810546043565307807334500062571365684602071810382054674538788970179460623217815869619487561402652542816530567301076180591213791169333772454834320172419562625306306363154656489065887759681872592836928827602433479062087352056526889859835935328262650835005156960099132387097422284978945155033734911000489504183995409247547771909221774981480333007273762430505221358455100189737220069068362181966899719124214517303725385048160598535728889651015279583875882459357121458449574319948457366983744122458656208638159336490645665293480805420050173839351831308419698707873497256880911408456019769247047749180304681397717894326070600976191476843639758761816965289460673700902760315845183622539931159378851087192469982577779880047433730395314408716323661299350937414373576904787370129684474547669806427123430004401994073345336524360393875160623950263819386725072862186758642771647366148891417630803509874027764621515873319757901393711060943567106354979981483732697629755018639989996163778125844863035308993448903169672649648712349776242877186785578165937890514759650133881158897027407437233130836160581782698109572698833694152830242285611053863919222249004483613683840911627555607915953979886336132061626471093461474046043464320793030832654180595471792649255148468429554319726817898661776522633568333332940572729526041719566480700542814844460146345870693090698710738818436295802379311303492431202847552840521638099894728954223379473123042128955894921163260440267962546715735198769940679669916088442878862653201064682622111771908400697461376125689203042537056010206294063094852233463920627877704698923648640506143832132665412812652454519254285428817609673769699854334026523604383788924213710491241142059200655389430449503096950137920807213035543794915310386394584741644077321775094664877445372408467255192787194084753255862954719041368729209887780733999792628017504607769361895172515952020638050071815009896076738303618057120432890286355053417825936420300404274754788570740893989398842834729991545582969163794684499215956222947483822343267339464870484495908185116520280870727603341157598507708607035083179219738171842125575368133889225127006870558759203891154282442611152465175706059668500573749893913916410719715751438849664932865544112496521696629409001983392213120496481388597682355962257845657131306071962078159429779769673943347539003391369690653508769760116745145578823488755291760078194678857807794108924473259483673483823517648506670806281612531990574190745581919553501570628723053802810110830732578220729382109271559372166562834305702810614186123582577909318687908396030309584335065917294309523106527805745558797843254666671691150252555946139091810628435338490396735138625045423020060153279575603596322733149536267303099789440596859944337125247507080129793919245505615025498064366323723167772566804456525007674827499509248324655562322419906492578745606095526751340338982338391271306919406375587525529493928256247385509099181597208856211973435061343454727170982417326795632575034114497668432068379722148719551833260751820883740994963754842139652172659442808878954318022273399646238176147518981222473481874394525045790056979099656210366013123427229723013514542729715420614481400691295000249302957561627188885521361253558970259466930012148025799066203248105679831430684072530664604762938005226486333317447213993022631446605371548944720374230753672004721964308292047110387652543685929380156698704892416937123501164035862064592653814746375643847888486213561303396052425583382200723713973408962807027990271144602460800352242671198652075401342764684908849737403998686954962700975193961871027207351488410273291445555112187454572361595689244399824063006308521118697761533049657058771645920289857494811164353202837850191926828053721845057978564639458809986535952604800781301054243137675515015499817746712642530538873404343545307761918054038964967561385799862763701892530774488361879134966757689279257525776106418017619021496913328232016288153939287444240147879040381572593470776205263347638320319324313804960103069321835495338247192579980980375351711761499750773021687980106075894164609644030781217894398948889116094322773799038231615403148921040837795629175107035578043037804170049563901642516693308949522411733112055736124790094322470685534520961009706059091797519589487914265878111214728007069251161978437524183040227055312953181722674847379283067869631616114941059898394037854983699289417455710346983500679268397125429560666910597273444288593829654324554502930702709676267269175297572796603738360993046396578989068845816546567607828746743339980958386459526602559193096641964897974126026501542409775522566189155936569907111475910210033929191876461214725882069957350670808748168651408991179414878598765542570999491233732773804617647608898925888097571068055832186758632480351247656388194240577868635260824618203445652247363271593319919948191039512613703155354168514128611517648975547402517915746172026796777786726901483166737927009171206741107597544717990161962777406131085349461576001170881779982159975492376785445670213470320588296672324954622164118170429712866882075688409386734158144634065148619660898201256869667863339671659977787506737199425405677472339531915124442112076392723478440794337827548928342809833623401496542591299915519948302438569291673122599788540224434214104078601519793912485498793137470605395186598886479150448406570143600069736138137781334482616631492036630464772353190696592700070085196638862172877822922367628242973958304110383454059208069390299925778130754490455018941346273310334733419125183037506836334277016478997897936416853235262562639942816339548569268712493851033155765445996388156229349551779757421217335458486631242367933898373328407996872894929882696608842566398935486657517209686045109191242139638751827893171007677735336671705588482974804589706184375475552799597991856419458808147017624785686761557057468906903881998979134843309397748430356659908567701453777838897733250100241170636465521431656036038492687120674844109402292440431657463631425261402609894197197281424523100351044661754008256278877679018483492512457192007172634823593518839306636872543702291048532722489197075064544189803382438581860098158912472249762759956245470155837471926695367657610940356697932748053952461283086520017112219043847888251838502795175479410401583370615746608653093680493622971219783637978904255506996527432869658858304863149687572677622717172104784356147566148478817688421762212310873441884694504891631033276439738178938618649087411834650992303257084794558840221610211740940966064427121490094559723305555779925469687972852374207873906678559332789544641444441848764060662263898024643213301203155255273069986835685791782451531223823191702243694190708938829032818978842330868491365802058936168451080606005046757277824824879154296195913834885115806468656353416216367788530298659872159464591747568343451842375898140006094700742667203977602429917142351353105064037140913577251626605049228608227970548157116780920046516122006574629698204587775689497752559290543647252159869124664170179337250651394235185157513716686104938134752298364159807377276859068481222187881507132963601347716101691320905646923986016325527735374750720363956273710003797728813594861254884802666202920625573800618870332518174558332806418514068773165226556609762343858226475828109977224323023522533529885059374449264280954835595831868490161486713417605014723090096640315559546064389078627440413644369262503877176519359581737926464284366821012825829901222085747108486241391118878086024468271359976629074832762128378518169875260409358209017121298520029225834682853252296323703028940428284536211600006824256636332549273969861138660503768731582160484956540368560169020020045778923963940934760917141231463461098146587950946526487525194565784997720577505249701959363886378382488650255762564797359810886885506833684018107951721358973892716867361396116029764917403870618508140424645436517109795208454100877092874262710906751384389896651876093344859797077506687621873630334470540086105525940876846454679590661661983441472226856461139018516231492967308258524099982970295449777687026118396264071518173435550009979533885844720530884805748666361128565191009234033639073709140905650837091616077184894098821665780349462162169849510299542540577318161553162243371166816747599073116402261189163649043156566254885756997728758484508848397733169245445352378524195041888532615026593744012139215030914646294015861288588159170972533621714838693033404956475901084687484938326654039229322156102438448387891714919854534546082770123849037828184800873041324299349386249987833434528799072633026466905419952304780967175500198602247980385957272085996406622029998433534967504047061899479461659416262724867231397964859086457537319573674057593568659131398768384398669544189800889177885904487539051104722385135218690306821153236707155837275964989824756735376781545705849917737675686880483512871234321615452490033687369595619945901664711630282379201863462572597320443578570405086639719150327191891109945212871469821700736230290252529365834173476859740329623196569685825836560682470273574204078479330444235374196233553757101096121498707923725474047872954383897958953752545268669775016498451118613768735549908092001766897056654663378818513848287708117273448005749433936248379264926498825578721783969371479907305725722879929224304409837421545206425904385148201107176974180098253906360885695091845509583152774102591288299767014318239467596452069034897042366783086271734235514479917291532723251390210664549612881671524663056841616414817144239843383414370004793288786743417249605164503971262208834447471878736799416927227727322403258673389288208452693290255024491188264116441589749920954770022749214773202237665726406826019849045265921411512487168912300867609275189923334617093751867702754285446316039267695647835305405498450650718535496760172517056343268018687619850074713646634627255951938408130918478349941021782930879050270815791722833873898554642799855069425824719026776304662945010726116208897672999497295861821287946162815030896520057268204798897186398816174878333438301168617591152937061994395357260268336789846671163063864114430903276395368498384640052659015854257204739087367841441509497540011832463956645232767912173543627242343540468276932327345775979901633578898142935377093610545332232146042899376847585387077673112007690889087790817058156122636148140285898581699165738613098478854716997723533362702363353065509454779851747427279660356439334977382502369216033839709228297681959947025982025684370263473300239728166282751883150335786443787171714530196412184807219600485632455850569409287289495122526707768994082299377724828035590859486841417457268252427335431395469151806508045480351714550062195117215498219539721308275381433600541992050974241819600270408675457766312634422769458894331551820822556408612916384840373753663205016916411395670350111017848696865128608955635147888404464110739040535088081850815738873354882488094476641481282386550589419420390511414502207598440954830385382241263274548836112792084738611401710259440643387309305513454373736681010664220760522580099067433237303060782761058951634398556113960572065478019479480998322242015800433141226874095778930217908632289577738330531712702103985852683133418942442502151607420798872502551400550419678133295949913695473265908429056346587799773448024008226492821862512344532947172066824957513633579525307116609778558534925436823029487158571628992082662674695978008085936466103487599500173412399010031132187033003577235608274462110624730635825883617961166353223179031229594573550337642476459358718670594483425139238232473021064255244765272499871362901795121789849924001668878870605446241417893946116981862127460802178791643973464808675190763292471374077379750926904362236485486852042589093388616340001709673827901465289856915014824096685223262835773269699343074674014717007452252397262287488490291185206842706118420308260759159377241079531630358239687524056739270397544939565193041021992009645409587508722101535044293331593570076027964936840604212662811782087488388203192223849873489703385565123954862802612772235137027186085525418559317260685285215559904189473141799822221223330744955878549302103136512301170786843447161431311406412746812681051698143127822873280403502297449812199987234968926062689149176257525701337159759601596470064070814750659588122762353005827321976390162510129135422151567744736214917562651223758528535686041894108912862621030767423100033681768871221356873205535321377195341063482803896073404795697127935555991647385046248875795129373006059502353027306793422863949914944249190408479626173963163313632877641006084398181376845465942162196575654170486912158265225010893517272269669748861377182103705617616838219144349790374173606557863293143556536647380580789168180416280757967919070357590780724349327804422818590902862953240281505847694642159311547725829133553165208576137420840727534003600506097609204198978050446173775571703128284998482068791056192534684157084754669803616542704962643828755801324019039476369444542177867296903189313205127448653092874101255869900212364682775715465946805966528538152683469138140544397045103903522382838125943912882580115897373643270250296196791897212972821828802266195813982002915822609500420090507374985246382070498739459965640773752630355640876497568200821014498843129963780902507165065790510881746649991719908440259806963787788597212852097669230093726058185078441310311786964263865848600246797556435838515123817250008525137523552209332410638856097527704424895936517618662864073439145996628980222302411989519946602793920053815319625910357622205187310420313890876977180483716806832541246067384710937213503223532656585850547768533177837279719678360396890787484287619941872744199623225732041738842177757154915063087414036052203512439387471752840661227788288654792448777379443002011406892764089354238736127155670062206282855342274714689621524427346296994809872463303484216511064304727831788652295913011701028129885207655476745444773337635075716518022030669656034004889467111144531018951771992346185000163691899526415775265290292383566078742825767765468981189231550727127569363860600990679306024204834268494688139896999126839634406718366576556556939885110044047748474788808652716893219384843412825457056758933773591675292612492889574160518582396385713884528121460823742026043788957845445910062936848672319589254988441930510501952463461015257745537536620314677855074686790665506445992208346588436457743327816472033252379277045106398876830222674830891184307785833712351617270036029964806810325706747827682994191874122875871613880507515269347810589507185981846593668788747044706850976895743732571246923740454983391137245456274875263141897411869840977103417089250785922271572467569405263493753753364703408355572423006686283349991535399398319542183370489583055224109080580234909080048880717944443738601072482734638725978973096703177076517007122063318631205514531911626184217442256000066256217755254704172018411770583261460884645623828927735826881148569133573645839813675917238135599753953600945930970549023528662907428200827736250290026008615115308634398297775606169462047466350139859021001024293731406268403746276751078604275624132677399549147371452605037644261774185807080788387705334038863986221749392987448534159976694001031092697383777079804190248292118201283464861596119748062548291928787410206039085958996016841660371217698796522222947316168989155553826896166752013097338085627943024402037687956663356369722951464224007240003036006955488324303652647882543481076738492699650304779791505015316129795498646064831545144302083650945102025138284729312632214889531871433881800400260989393369666032607683890422263910084187664100816816174544167123758688203352172820138920501550872710365787786620945141043690571695987210787178710942545792731035675514097230787579525914775107717054253271604431808695841274567563674252223904511631752110233666799169514251219903587212220260997379508368001874455824956422546426667476954964252205088760182523964261904714604042656157781904767326662098300511468418340365712929967629759899105136790925604507601885516959109004485312107321437549934831629457737444474145239729582040642524335693701752266695177228781042855388139982207592579165342615624650811258518314785204714578048297818477522532868752464975838973585195484985637415927737010260610029010771292834704021309039486969146508578492457004556183908152332613574885309454649711218117743038319414701099151240943028904346057300193387566183024220412339272047820541877687416314635423184570337589024965548853267056985573193960255132997146429465875603171772761035821723274954090736022323049747022081624463003536759614788168695789909151065668666114812386949108896303427689424703047929932214304660377092258595398235750092326433439473832176366609620447406261726455106659334987505676825257957536810607132345964858127365257701825643560967664183395003261454807160164315076424110731617218457238287847200005429050890870146045563709018600909631680389369325162121469405460874825856583711200846492361260518817803345548127446653048524968306490696094086894756760269519333069574111881015713594682071320257309151886288798978893955280969067301927538984598153432982296684742537993318874204873891166852122874691276673473763337841092974340349622348359212679308938081138590656112895559057159701373934447390685399887024212661428415511690180560442559972121355348215723451971041385577268525704323025068732720902676718432004587066108771727115122874735327696456734438420503961547739160314017056132524602311477613667744261810429033155462292233808126309071611057037435922455389776819468932346939688864676169137677057652510709586199063211293978832083224126365779628963608329577722812985679770742376087602098528381718975886049355301415305029025588678492708989041016892619966267368080722887485391738622698033652924945864142660831801708239351819836281576279282945701419257496975436100544538553337755344109292277347402246584814128751763723733798477970029783465600200406431911059808769110543695215416661676118709848230896036293043412250558251309615137409990814194828150522462469688438745923692171456584445505865211253121180000014090765281071473738849975390724273292655625310528097520306379263265121446826713108370327435465991977057801985992935694000752118419787047767103330235327485963511067110449521426904540408167031558232414049365193919799570998402260334653987620763826475342128227080158142860463034594821246290124830613520008904035800408033453270698019017135730927120337398488436986937709937437790573572664923236194174295922045036362400592504805112231421174555792359317585807259940566077473612124011031138859355274817599627192458998182399486221147101334483071028165198477423201380156488732177168927587322147505082724566819780359418022211794434961533185068613491820551800157313956232390587982425833627064610681090953079697403248758932031142577784207428041977678042396263639174168503814805895554642066871064270784757798167317172639942493816921594343646890828807196572469492659213281424623652076384526886412732995677987014999625225070067605191723445569311733463909124596508191387185737775439139218756373425719359049845041934484578205169374399198877051632367249507269459482820803314216875355948108547719050866541731392938283979163928687908080224054548359076734564212138988548328651168981796146890685688167961411878822154174731414455546613648475726521328005873047209030346272233333203368347358830145879589365288214846224437804637202063479670822165091634612559252132063724646645197675529704784891229588779741928305858794188177713051430488047285571202222050046259259419262186903840387628075774957032079063513419951549938180281074296542033457896494834091338242317122041426034613309056225670091832884057614335571248894034242912834066261245033975841253598099339946746560481800795971365262369929895260535077443956649332695956772392945517700688152927964910026823402934931797356941517310159002144209642212601453448240305167542613044238088386255153368488824941871243427288008743434076858977105698088191182610125446286027086580158083198818634931052576039432842986962509522635077335623253043600223602444899500540492919862698064587725975895515109947413371434324394543883734468478834521811836820742401863920730750954439190471485386752926392200928406210020520832860920343945820446859782615298292048251625108401469723582682664366731985855979364319638035775224961443714576537205302490363153975583687216140613302725080694069296846107379222409129224959155547029700504274058912584958103764070418502436464256349408359040875671245078118802018554749609538346288769059658636815459917937697163344287247277937544981425101776916582813589472039925862083789855960658615132421102964009964538193525529830978017128507307131444463412484976846888600290482466369579126399967685840132970312860497902052373457005426803982629284001009503506659545252005204921406083384285717794624498661645475120461515909100625941828086422789715559744806454585666356459506111337329401155961708778736349822663194735049408904970332675514821746648381353222816543790443214148233231523889987677471073263068229128698805264363218088142399579842993530990142245834626708170011944815511223301464592388588617104324451490011492626767264661917974764149995039954647152650563094987927874526825414156236324944883140373517906216741946933149642358334186046079837923501935983301295451555160357653299801358939088436440241525610214974632206692721897165311549357954592937774967222124564200024030207283622294530107583485975277456523244492412371673795734295216713024677025305477672610394967465979198864837739676733480653037637946867067241565820002124987392401737526553271430926524328600382100316327182654333253963143767722112788550373112593656078232612382442674156914203559800588995812303440862148625813591007302283536583566398126720619534659007879213642553235758648318523334082602537834976313405495387868792127190988497036606051265412796664509509299702751231995672348627777370027119084642270525960587807483077017545873705598695106665545697209280523848922463851464759877497095821797508942167865621675192158063672445010715377388965357025592846941367347225917081397178519751453478744772001165139769130053157463014829568617550004292389457662651514699347746898197135411647895081207063497186228461328794963728183992013751564599384044860175748510499023551820234872199369495642953502929292011799545126729763450327673333348814904266669295338523474156861076358179531992864254907976243848481344685533576012684485823115276164373945723329298881691659499671609223174077558560435739174444202341613494470878780790744514228861664727593883201560402828687560035725611943100098198253324772744061731598155011224385881214042138391592454971753702774534217973958739951151022279461578821187204387949636757861316996726058109598815433351525536065993819226485951885944783329111824001922871160495518305351920551648183683268964375360302474563712753014674573856322068637255290489450380461121355112669523499049665182220367456910304462509043817257350953728044572696802984960748186628503910082089061632765670648515753431410907439212178216679794827798056867694196057124154216092553699479995035177910173946069498266647109599956932816923816204413482923442250247932296632538345153988736544401099524253794118345017032392806711407889400529007433082313574189707231777311784262999514754785364572710225181823339473763157930378268430115413412419596322804847022633808286020007351485007403862191917267988144243566686187384165987228745870625219754533519616190723349718535105785905555237611586882125277705179012540397031706671028319691832670025672342569800031922843233865750808906393679410633897239223588345642743707057027366198287875389002712447945337042721230612293425134259685605214972185186148980419112687654901478061672160369889460821544994268310507994875488570077880010937153164733372829125887633455762270320813449569830233789762923581754568792244911324314255994479488197926976390327654049610212173913169224273988614680130699498458699087405518333447217259261780807481570943367955753652830737416255749212572178402637510656784462685898930542116642787292849236172320118614863682727266392170911337392902734400982277036520503117742776193697915571590503515443197193019021599271323795339866531723043122243758426401475460165158675102573218217282289461196042059074377167080977058719108710404787915707991032984837598402316641232841625624229982208775388181340121018994044685152394002372634646456195849898297469996475486985959388374526856011278448736988079246518515191860386848305163193608954617867811369305146692213014970015219139295756552712776164840115082285222292651922411151474065364000686270859277095961565201747484507243058003872431520508101324119852140249861520055865959478842706793551853906484455862693784969764960701562536112174401497610414645336896748386940824928130904734562802953082456630585558633949735962882443868586564178190758291893259662787862083995182434935908427625495866538998714406300725028796628184583225336973721633746786931321541869077271281569888172184950659412448722227349211855641672354003120141624483055176881946222218669728791347174153913319414991150341318317725426955786053019932452067950243216361500616404575637744857083371636854931724605693906773806639915270081485273280223687495540903267575747778012032143108163066409691876793098635675397947590826004779494629507091014980852094782623832362887754745351304044914786075773542132287661237463028319776285482869705864014825381634337395202068049436079961059131074345400915576248462713684678136069698591962576248052655295388593515047171268261835484595172267184530203459534167006345649643346909603981252463660211427071463110225141310139767693201209549885628463263185964365278674367270697322034549346771807829130823964816017758647733767274973148793848413002232632301148712427878767940292881412099260824968481794401947845170474088363004199726058400937704657027060229727609577083971484790847245300768237057711496393263099394195034883216877068428949260108154239979414055789890404356916487302563307393984041444755766778504684401420499557601454285499141383925174519221438526370016989985911408460395247260962658038933768692062038652258646072355747776322828679445897402321855726003591465716760899242066673898854400443616238210421479405605902635230278496204672135632465286880938944332079074600289552926802867721168868093665202225220300267795453425356694512151645836805816581093330112752099644436094234295385746511702690521407224509507231698491371830827522780940330791301008008541641899848927866814528138885040601289626655721676377396409770735161502461502367081263742755054556721986669082673666282796160540910901737921302320489218566876418378705569761234137009073330808761129524983398928206087744643266295901911529872236996205123692597895365984574246952745602826867027246121406108906432924591207533717795177690479030387834192256015930001407092134006462107828577588896979108205660395355765985546334737669064218436204924301473980908131267764033416648305548890194078210803906668142176367074587012921271262737168277197494722300587686372543671738128796278742273525392529817170974164887450170292916104512615372483232668800144523941331568540946047304369472136995577095457549576451211449211720227384076718216332521087368841268504943294101873130517364401442732565377499009463796041550075644645267053143295978265599578232383216599083908592839690477887963485453109277593239657478212111147103262483641022758541713428392896840862160534805248958155817781065230354578113747414639187643091812655826964978202756361025301758067382532571388737196280421738371903348680993816085181772135469808229938448604173771932926026597986724433882760044442724407299667542839916279662228597961955293713012004290635811944159448630843946542467903928442863721110779151851795595067247217829000279222307294512866759708515828888853780588320330857913411931653502511175308661779829215576537840042644603030314510781594105927879164384390951320182304442290846947240050959604302097129120151171222557083132558793674545478722081300731275409409010309994059982284071298698010824657651651045480746770938166224555823054550930220019167160493682088469432519134625028845496961930804717957029981228591248968531364054015592832489681090141595111957315640355915126762538200165193069099224996045641937603805286483754453770136817640982008183503502398206705991829814592640176186885171360216829302090000799664194964161965752892158116757312905826649151130029719528962994830317172457692897385406573249392320696751749473454518545936451404288600403442539716346915678666304081789185900548102317033547544339485024968107507920490855608071313165858432168233748283848134554980678747356767795099075477685254547290281699213652723847239153594297345192266212010095960002267909450198347094264705222448341687532613495443047513587910948514813716234090729340584983266609700473723196133656275178736290165609978638376107411558608521810413675587343177071572473536971811684378301727826942401513518432613698499872621525294291300086191286923484737349781839693523625837635434783871021252220934600619637115296833025597479065438256759317028409217417320613291934091497819779255879748042612850394883164867721275759028937210156037089255819779184198626213007755653576932214186002901401382722673310107196303505216081093463887447989400751416704738801907811187441117370716994413655467565323695198463996887124124167840073093243614727375991520646084666982609391763468884748212222059016962886761818284583182766002668608331292706070220814270764018457439639035069589843590286671335163851818430425847810278134969072610941261967323838398438617375891046829176595057092024409658570815672961781230382101404510963651024801999044813306363572335678109249885653247775675418996915869346353413210114134873697452932311010985633649236965914540825336744764148232095211252062496948569488953513475675336732764537017092769112413686607366952882960087370381370970271640128522429735693229515060355841813813330198417455495050815842611705392283906246578754112227913046568687396625830995279453315726976908330532628269145362322218777461049465494739211667369455636428180808824094399362407400465096547927774508550945221555805056859133504118270197769834128089365931051885640683814521035820637499256503930912734070223088395845118747388961379381755089825248539488577867808369313067542312400867201013324418665921617333650284769821157889890542166562986448750243136120741652371331481750274718292716509352909451607538732350934090262126820647155241559361276373020490920106692864985020137921388707119116664451314473378408149714861360432903732691617740164120140865672656732679778368402060729075559138274439251479505633024585522795373088523044040349779721914774306310322030640524528642673300475140030736692200867062393503016772456485927750165400328287701812544568202425233466523199663281339957514890043111038343805396842071526125568348948279442590711167468263760249465350808015147979250959405715967968396347282241312839805208523085287060583796288426760808465069684097528854083589727176266152044295926634173469982841558148777360741140681096701544732803699707655347189658620205464284346654849147435202524044551168266950743780928498395652301755827469489740859800387271153359391691419317907146226254682778850745309192441687249809672487012802637977960777409170496464267959236745131226953190883562200741896076859606796122783298528078774299407048975999893685776122825219766791156754982030242700985959314764168939986173309853648308765260456383306374920621932233944598647602353019362151577265985136188818001953378563757462426056151983635325942512194080771054779312595009095561480637396079223667154264287877162047886441563164505194227323785823872003935936308384767221245789238332076727974179039424161710709269210385418089744984835944611969486454817889182358271448483827521109476869308193824071771570355802305830773491880370568629611826871038106540932713349264919706300386826031591635238687315671648500692487312646804661811812345401178156604855566293612705132094158342308182389324621845796998140985257234448431834791246687173953446545645780601981953850979064054322138992579877200625166369927514622953824614809152214398217517894569480411276250491509513180382661224347369698331318851302458483899750170767025404450920295642362233842576331467737291967449693781458153225524380833437366577586887072605332640445773884949453761311202656994202948849610298598058009877567311342042815247278610904282792470039033447264306253089117632528124476582065088753428134660715324044495064040330521223392705735178091324216981659086190453793748659813763428016320922552412739227622583556556825179619480415052337305364176819706479804106105574537222444109705605156327653831645066415003728053576842765859202500589301175394155878943566503336767772874390178142445147758628745913607870067740639598372898284701685238343510097783511951420873460367511566246910324910254028066964048757396797764698802341027868986487259184903720683568193872290298354089777473637487413028819962395690718107799125702016448217624284558991187349163088645771251614227528487207688853472679891493582543392170495506083125128571797280030266871357206976114767493152537474485096171514012390337343676317427301761673096486548447081484464012038246205527645564312129665590037448057174976275012127779777776997276003912218386624639669836430452217854422956697670109156079435369730356018667965601093872898434623922963953919822479312078199431784474936580896922881506817600688102051200922549159458125790605271521764045724623282519489816455392602823838842391505487705600871427102197374857478307843735064107911721280923990541933482748481072417012441995467554883156924147665884881455269585434195797737763306520353142112016744486149828923598330613974026013761795042990531917082589526600753892030789020580573792412440783104895496560968058697422876064170477126500592247414590788374369634972583187957237919090168036555285734752151507067366118245198952180150830746006925175052909380613532160023222939355328906220648758017730915685658791605498630846005460831323858646514818928831675964363179172356330648997936629789632817619592812442028373277801060976720491199794753421503164739260839893108086372687650726576341964950140663121821658838349598479455056164816785614670877088632472637930683553477055169743274368221705871687246735205343113738745027800161517838813314769926944949932658107389696352006798473125272769568653129227155749098985641796892536167832604806661367047958189912253317639653890498318521825306518848382080709932010243993624277176560932277400944371488725874537889936565107030902803455210956343111677581077897378303406493928071981199024050953407216608385587923695649634951116843545471549011246844759402107924506582651947642511377869946977598697139557589560992545997426678685667105961476937474064729326804185507290229103822524219157903521721353214748924547501423607843510079450630740993505380484022728467934488006366276462837516711395772332616643497735556246722953638965433329076271476136572154745754150167015104618338051285185745690037457647012833726418774335207963247074046134259851514143276807680972628346634028973202629502112627407714820103509295364183218618158662030149818544592041568094485004754373890055721963855115387736857576056642810307263045712840570161604638956700045916447440496951930172861700450235504266751311803691203347525059826425960663612489377522675451248428555757664666653165832422611974571694107010804788623832424889874678418558482768838552058931772080554236404165552811503109833674649240096695612523007143764674429768310295479949041780776976518821918565046746515877680477104065998171310764108564692317847709579550680140925435250231859902216536202798073598145291020473793223158718689991099847099191249271671711445673907707435906776578906498462336580321406944699717139157019987377780250727942752489535078230554135782811659751677813689748913348735040996409144770271008805608909175621099486400921658891503266674241588247616654037751796171943643323648102615058720011545020644004229282544201046251032219033799311871708752497670254406680819026719871485345159105794532998628451226795853457266453297925654495017484354577519614719878545070837061770023075438761932687069513835418209364851786792941128612773212637023657945689582327458904325992246943527199055389276030453760122939143575030298844307830473398122849998302165394881100576225152729483455897858841933167788732766963499541196157147125816929727756980975129284571182066476648494556024254775092544843654385115183186705464552325482147933711183241625853856422557349142197909971197363797864988512389669040054702402289940974038095822246349028672779380620010700311684789508915797411103145393000845800621570848140082085877419040282191128824757617696037810312272463264477222910164228464291437674189127844164929947274142724452394301016803641510906839148941102555639069184837755718245383526183488168938041878341796385780814778322130837698808822385690584699755234373061292723610451105883101593923447861602188028848264401761555551487239823438819828912287677566764010296951673872671419213107089830583899383563024240313762621217905091788351650598970826227504031665994457691504378631954707431646632729340320519596671872882999581815152370550686801232670125142176428450810853684700250665743055928437405483669510961083139105924538695366881492190375088932141646094669798340084789319802988336060532314187980276836253909750073875063209865149858615882854595739028665709540712780962310014421456055418568427714103891443223088284735418766912320423109242080596863989487477219568485963077943740681454685269326229226865516729490940592966978247184066777134339270327491452069051753380387248568318044310634190574358904657810980186145847517111931677385102848658625856289304836282401510141156154820219592839546801037502646360803256869750936787208408839336698814210156461559795055920555999148804522002655761974429038513989939147369389886528939516397498067044160324027410078618043127476080732109279806787537743904179023948986411760950670851978030083314503638777698584045314328173415635198592063832273124049092709533124249595859463335998294309115853753812289941871916366213377584068473840114950795820679705375548027453533211047898141104428869473172555860934706159549751100649753956117705367611302198732267259190760501499078681257212463994353273334562763120849028997569553340126529572511594975139221548425805874191814574086932038457769382218096701739182020115245299442971038714758519451668969142576521645553539330042034784693202484872326559321270777006742764007419392225755673540789622945981542307713367239933816876256094131215574058532475948708790820718892656387796709662774428784681714392517100751633400222598282392036506995062362990321298921803742912043304756767885036838494796249487757605549295181129749219723395753031177905166024882732921093496821782002315825869002636688306941972285234333553291775687517844922658054982559767244764541646923427239366242519186867417259125028270415457363648862095751442935271300822235172063159008509823532462730854796005835140113268399162753981511114309507834722118327150366056308825566563075275677944321477454676196389281600096936814176426776748646328437514814623334020466362115489161029424294634842416950243818480121243956305678254193427593318986184767758789334088416791458701299064916508527822773878889015517374878438518421155307350402328606851615129253885054033165743664801893565476929240893879917989689741629467200811008690568458998860011974585639563317904877322895869107652811076780894211026204276187759441299909971962837891481313330234138862222320384618451350820324154109736382729797826344251048938412577561620405359234104623934637129643425987932076505224934219841474808684747762347265893495435448067036034475293256238354855509570729948550584232922474048169929499479748557536387166697713875056682634468026607755796328427563947130738539208782111873193390025167409999394928036532670969452927529371065620489391450489264749604954282790040554439200495236044899950278482135826520041992891520162246710879201123837834711412051185323721853420620495724291559413696593736022729715115061577264373874091350329858553146797298450694993527195751753193740308306702352808034846431073238063373186388590254238511666973125693173603619094689873896795877258947816879482246152222251807316105857033726393701173744770863189146872941861341552124647379412202019424170371887469658275427809259805400791377863699888962817153049136735013292849097827856446311701626940156957002470646945112565851830594124889094665419899614134969646165340032415284717246798430813760466549045198568551177685615080341901661600086508775987550649475271260882519734600417964479859554985271912388290824742313570315438381310208012737856120403073410305946666707060444428174127176676446544814050272549324472628594022773283379049890861921818990714792006266664545023240349623983133479832229088121521156154733651214822615431831779567736992724469461061502261813606977407249893915211323308857369782054629147192858257534191659676930952653711325634696980913109131571080652158640774810317202525053387238792962920401100415815086678613750946565454466095443578062115872282964915611223933533854173025662886006722602877897100074024474591248682874281985205462350680542014439792033454579829031071514526542120588662757229607636338287494606803226829990990826604642247712077016794635288390755928479456246876368476968329805735627765427753208875671159891203928544505534418482807521583909784020471251896990522420792051107720058257410576173780240931936063736742229309169935549285474222293310894308890643206796334271063083437101510608385373010162827575938703180748142273466389107895345871702589772199827564843762154924764093725552811052459556430492478544651657638073237865522890444345271083065555623614614930107420795492470238955840687455041471973041262863575884176007771594433632093797243038473748673398226609577293879612002682487217349168068259119267608345270449333458169968093918051059658883065573783431230099777734256457339684510032775793971699007233035933216242723771125232214108868098728098908056707689533073463255064602290794448235742955052237246106377152588266887248497842206613374614679409774562559304947248610059092408517084327474364933522299821890856929883768169449666189502659178981354475667953432834625665416762747701496344511082404472123685227573026022130604897440287669255761200608454450834038126528302188582509254138843953467985244323114518501789118760135578544252300201206964635882990058991916756148467929632241714129252499369892067203310116503252165109908282396328030401826586251862582389833360108784050723918190254079416072536920144955263635280371480755777316956364987122969894968247308032451813548205329591369908173208975209231379947584075640877862638119216212848617677511745214618785513395696828804361722634777896251970166068764230707623655501223645574605348090092284597931361514254706385759123509769692004059287006949099690226787669543500507223163041967226485239818145480477929935470868787276690183805664025211356680837391714905902806923313060471861582010927508593142449375386736886889103090991055545341283188918460014967575801785372913641523979348121274481122029884026218647950348628894848608868827590528172235840637152822665311538857736355906988975842868882455377376016537776251423731892784985083322750636094556180751094587978530916935310916448793125249372420494767742231589346405212792116529762187270211992244228919179134077524583561521269750475746659472469663515916040767964761376345669249264803676539135688351953882424831524950495356049850671413308173367738287524024776411330789907522580926920555838394140783718009233767757172979820068379500051533267502768297693370402178225148604703199289025822118337525968078670611484986988931179098158218749274685251139774423999540697783707621907374285786861169419765844972139180373427423869893240977632719255189367824307198159306747886626025151171611898097350725312770453397831878572941270828278893541710329180412378462141596136841816529345130831839377768801429768395956702247788013526511540072539406618239798908596797237698444577539894939680972841386234845707224336432602680807044037136687460556275748309194564350799294745078809594787208703449823587024218079427195472952411634914500268893486028659876995135096949506628584134624498990111109742587523752629088031209213916612681981625325358315079466886528432165281142121695906433428481323434940972808127057856748655730815702011867433826777323462875854857956940131201380611060519482967093217372673652205143979808336021619446486217957571031882177808755351939801312729133429247125666088963682871825828330369414022340390937442368533223775757246477706741684992806513673063338816211079399980805490731675062302863609199108221617903081827485211371786563487050296242577423141790598836549162688249718841149631791899779276823293118595554148253308704379539480339118988256906954696598593840875445007539753876833691458727403695466940433252521169448975902006117606352618277607882948062689462403192243017641791876818672365771496061781779652025745164545894642643198325151968376091033118016429872648205511099246563862744396488267445935424723827513542161477993011157930716075584788450479926090928025804859148311843594278592014107607688167970615218204372893441805275829319051709500937110244116088941040914753384223458137911965781922369273357827140091083269656376607816289407311819028617162369755257737691438678671277298476865458167759134839663107216934590767465895219247922069360621187080476579831222027613641683585232069394925693146727439951395362277673948741351326919916851041990422765110112744197180550272137377640617185458763430251115851945661608467494714438226249763229327887298835614790684284801747989502131996886061353842347666973312797454637090945147112571598120489682424156933693865460263564497865905957729223563585057426827170688924607261112384746595441261342573863506446739718957100180180097440790574588590422738593883844463550649888847866064242449079519872634822601473122744994764485830515642485934772116081707395634224674235763765010322243672291686545497366177684320220440796601038906159852100513979429045198938838052401508948177601448491769458388084682255781813250900141957712763672024622132939413512544732010517948831241613347392970596556590058930929867913215227423168780658804294520903852206350567138865826229167454462860380532685810141164863867705571860271967301617389408904444698367726021432832537243341921503228376302792936925553028262332799440613366495425773326733410714039251394054102028116870499723492135366692472215671032487858855586373618004709786335088254605229090281132996870452412366002567997920394454454161934204740471989735300332593112443022314739406130114790302493044212187143207439008418048358444315822740670915144602388206255333234020024710818924559847657777970606811294835718789962608188108922393584761829365895119300055662228921189990223086722814172355098048666611278029037500607290159185650267478719787280204110161120003627980964806111783570200494478653942305186782925932347845912251547160847001511169765091018146965176836629877998771039818274917456043750567275237354551407212317164942321296650083536979836644459194733624049413315510356398405102329541312298050707975670907442003334202523489094496659357614521402781370644470752334214286176159928738895810003644102454820215697578296900488507706568049853137649094874479214980668296756975150509613817161678402621711165702750297150211042955797777292630945037317596327011726152388498378411059202951391254852429072111417687254273938742400215347133388182418496660580784325640462997466427486390732956102754108756784557258383164552444877198948614970044163003033661416539520510216531250329184697013769985037104136546658839315816282962888739625912266775797444534365221158270307816194907816265976308138838401795590303124989982688832884277373244796425183570810644268225510109986108231947995245064496551696701065268366769204762701628029087818790215337290420198246203123747007839484869437164723908313132443142396792483210483221925483712575053141373547358291727721946510565520431024387647254123598662822540061676894632519720814254905121626762913759871504587053650398128623231260045318410262264816302018949858197046504943975352440154135441534366074440838167884387861734068525272832253919642626338632064878457064062438003407171660642687290061787080945800875961998265834545196902931351142058730493610277281709300160642801539660626155027043119954899914006698465540365760326264188591701877721400824895179200750427115503308062784955295516866794754240224027405595244136324057352612880353406302569448302968508705405921563554692215719492412461001113728096647199805630940500592080150914737724446057677614866958427566201586918274123018865181118519182075034456340359452247502927043822307819120272341448089530404887356006958981575441704938418334892596239778151912766419000343293542233970256186184991891934831803723776246827047970323793026669015429110057154756938476488857813780029240639909069116456068720759148695428008353876003000376001769457463870980930907372053264806776413713560958928873447506099020425364816366803838937357252971238483742110900082900237604596104910937674567930888281053856305466442231597490596474225500214080660109845368816076624741020482152338490967014734975222496254901807965599472244422483675155633930725190958104456304720675288684800981918792993764134367858843312906193968893967445424578399642713696561131933659664239408469036570296210460935222501689028472110374135777049144812746172452933486791767986675249762317543352888296920925785392129024232519353432815532273731578741489419598233804311019496252513916503463564565877466920097753007936125666521189913993605157163285694216468701790222415151010812328487165031087814038923018628302224045326456196429560551976979950012194989870878962794293276772190251875223004803831556749700744404907980671788281596798389786203577913743580498283021416004346689622378388686072557440347130253559091200201019197564108091601595634660035073542461864772381352165932161220126442290676282590437004397291914944632026373936669750648822878877182449528587397473200673691490487312411237837434784491042572292742336651730468484435125582546490148742314261008386467100152272380329303778576388366848516815563600412569999232649290766724827370869681420861061774948579526637050556338517686983947427506903745270294932987175000027935176105948311961864034468640690154467876116208627358759114284623499535565695707785028585694328697132985041066462120242044822743541584355051941675027812289774541014353896206952340798137495791066118927728167107261712526641396491000564578227047118715202136585135327706479830634692768949791588763872175993367766903896859483073247427469227082984707851183067408426460386594042763114929878471025870792374787653863564418198610758514076637856873038325394377539345445884466500137163045565590372543868558419553254302649312068504001703322995622027195974556997298094036357153642197993889986381566792602517481674378202743433725110590899933538773368437680553438602932369305178181522384128309518227182015794856294569709104932169868516528816763035428120911607798304615208023484839813181722257990922292150361996966837480134562069578890409329496623207681884570924112385500770908844263406178699588204609405003728876027344080705076568047181344532059980502611389695774923501796635444798656035024678421464926628550358580128068187291090864617247709677181944200436284081253561036862307243328370492828641828126686522071156114157890423003663576271344397937569087956564683088708317030291033536241390259186720693927976627839812574291163451712840090311666851013196202555510355207142439931606141892153495942527708821018173952010808851754626397171741728695710220198902015937233003650833591401667044432656375868112002368826402902834911260416585684972082926150713279135479816387023071839948731770155837090467013779605398715820873749894791044487462507554799785179943886528759597128924262326007950825190107451386254781810006115137248469418335720690821766366344930065767132520751178603696488807988734283492432533699833683906317485332095022228685426377376663305262455314995193637425251317868320270763531918591845809988706491862793367470686474839952084295882882103473467067280429302391838303882640279220937395595901777718888845667468529880908535899519192520853595448565025483255709975691250531118974658439967988253479828954871093491029376254821667785446557496583431192321730070503559677389462481338147245447157253662504757619516508345530803190519702574477058033458179092308400573439300657289006712304485716224230045362131847142360713032955625599157862387116639481062924359662366833762598355226717058539170007657852607273304543139447771071495855022665162473859639520639665265049241567773727536178349391294541187511703842294589680823794814062945095786170270594903048250591599372649050715167431786777814717733110060314958532144527925348831329773812435308303206371431552339767097766130706644941924854988104729331587163033550682559350888118315205175689703443947610673218329028737946843838030956470829195865992113971799350913715610572504255953870297763235829687097706794794128627927284346612257050429911182086615468305561080619877965333387948800984312807997661500226801435762217413639271360985046133224113023851250595776929987844994903227905604646473338871489344720066320524661020147690375804733839075059355308511035895850661362912010358081536752696242504230347203350372765346800284534827239691296258649966824312956544727404535381709553604667254280532189440812513732364758301454272629032349283997040439871718301057584037053635441735730585244563989012465778891981585768742019875240887348639346074654232612814749105192049480455703971833450148131834420741738189495858672962323146941681080881767889788222254984018627982074124635355626190986038979291463285353452784974055136769532047394546950121340780254467245220924062801967733612589595347775003902749155964378553958082825337854261134084194965029622831866991593978753508366186971446568257348441213323294870430240533673733563422943602722101127945569229435465916147036067558867611836747912181349627954123201423232678118682974799437386601978370642646974707885359589778923289927863305750889830122546494851365360738592609128853172753121903012039620712792787401061051911294564435277866347270431660392917847185183233499410621451313908802032448399720888040591198708179028436887216237240609823621734964967139821863867739849302079395335510985313211388406025739996366940110160116564984542937199015496756609356819849171073124930547334172513970606396253364237751974047533498586223559421674581722171620279752453692928294013912315288792638996255978674230487965035268992674611639636560093478342937072485687529663183916627566814540739042489216050808120784502210018168899515616633281811563668553522483291232933571057603772381053098492320166145748202901137164584808797876450242164893098628802664866860610206524751270948906176728042773183099669910279025029895788453574565053365992209166025890999367003343563176137597235782237163662938748116146026492186398799043307788666165344359159025340944637752273115710201100382703085507201860051472081889746151719460288390327194035506670820604591825334914964777281076596619495665189551428959290910428978806759548253763863338936711170903203044780744292417658630498978531865695036572201279442755848277894001649854038751704459585833652567760376321269810003493146326035472329594715666914821352312462340877437157539038526398603266834398678498101965155989287327960725325211867135366251515291105430203470911758012173391855249776235473354527281628123988875298466320477513249943623745929748712422728703278953953526386633686737785176774326476368261508007687309038824897157925282141976789380868055470824798615534579640602576992908749117425581463328412348012003993281519125985510335447074588737070624753984116718410209957533276487792016282684582722241003287941980371767133193874671752248217308090979732075715241644855922738673519603741328414388220548634166365789949052748365514253792773429692309904925787515427427848208107804830011035926185183237517961394872507779081967044179331994966935620773699275280785918829633131783133143637016097565651238396712922696846864074942479203804105260980327281433866575956655142222196312789955240330681380121442387084995155986409991505802692958166840144063547546828459253796411411239939959471418993727555984731749766480606980719182683643032377392152246186824517526708724104519319242295046435964744763147586640610327774656003430141238887516491953672107958603002504023484165386579061083706052430922425042108306054912904175773966254682813519294254930292540303580369668318385911854780466364398222805305282704111382588484911758926485298098227058050020234713194692495945962831267956377982494195577007256719733561339377828169867063112048078101318784383383805110175913223170849697885941441325943128938467926601065128267281707531997357649783100456773539050819055414413170987766866639736187916223432186756996257996112768431276663659197891442902054519180147176065230595096416620905990668395739085177541553251715201818941556021334271899097062070303794256890373386486390542132037627090356038151099423830154987949456900459411456960291417060216622667065213142212169848296100748196909095805751136796986387355611833529093320570277309270340868940502588613898392752245881997894064320027810554052559721709520877116063547575826310953528772863282348350078640681201727196670676181552847924038272025176960049153817774060602882219330952500451700025988022964730261001593730455118620594385782770872884840261065779152208135009264423025124839435769954656954626862093589859414509669184032780393413287080918472141813484486855968512040414140481540359972726373676604762321694794668226047650187428649223276493492947951598164980586475949239014023046290458049348858194277920971136207194573224488258702025869253640085765280970145648742852349158198444558474840194936396263414073912527282977845352375169726276356052735886222222600736919138458921877311322251935933979853477880721275329582368593977830398533653576904154560085090848699577714472685917093621428197543907881183259690397000314294364509463845723617465995801272985229515752113658679760138506535408153022491391192706481644759777354113143972432800424777967669067176431740472074645575848737633604633072970671825535917905280360979899093599723903171964133340259970342889211121857349154260138364787660974440661804121760234482240212864995778915598049948130959924464387648859733370171950137506606782384974992128363346208724006161574223708476499759136378072469086857820266663314529853571738571100098008878109567876243368039976742362760314079369483801503751579620937290596930787097390742426135150756167712444845753703516948912334155637478581416657393929992586405060065705845973898545113353728971464403920724523950225265487556959489059651787713430350395025846121918285653736578421969602856633620807818977543928599440604559267493465622258474552376674185562954548038216399221043869178448184132060712370789250794030219208902934905515873987884199876326059944316295355750255624080289622508369442181012553274478819215695387455824220365664533273771494194874504127805950861542773848817527744268937218399258355229103864969564696896038204417238721130237894118420245529703129555380737228451087487787149066797390449668118199742397216191182155806724858597152950574347703518577914851543293473497170991551663680349510377412283278414776368377810352346680586975705005735366116845663466861615967203944805845566888640263875511006434751498548700526259488701538941626496702624520101549433575752844982109947246516034503763702532427018722393809483719596802729734152961591002870475889844787061397586627036648309331517884260340288120514635818888103804298683024006572394029627687002206470875878869061367616256310419324643299158266856356980426155549352143335110074297130019685464224354202438474361019966712875249337022166502527642963425654216376907642084484956784729784782741184691079429608763891685001900659159844134524785664814124867659491154809505972430410757985125036594377290164931357209468316389096311132851685949312190186473381549181222110283710517198886196786465310066035372991102175093837141679795660714140635276281608658322902780031202596452240078431323873757168377857282638979219322904054890454648178451195720633309193386058198194894146156698061878968985505095551523778719932898584188815909554688555267691945562345612348445485235181499203376062119741427028360593224263231284996622959383662912025695760635445492180086456250157383683057987122120193632469256735436563901997267353359004064349081744984913534627655934643730253873743769557579608841486968656351728965788535384764073880681335326303972698675337550985743417769531605469237559899617327298265466325322225348538697429681362875488053991638222281154019117239190758363273303904855431964361546009885856310195755564265250124805699461815295900643021405033935658601605781284456054378371924319811404602923179043325971032096332777425823491474953038704289957981017076222928700958163771223009427501858066226826700282238263803406294267851388076419104459291585337816910326282044548962914209920118833879993698990444574097521609583581120612701748038723133453164536757360050725819843924219843359150306998706938718956992591181373155753862361915623865670172038232943452000280905210675776244855083168543031638219669156198974257259863177498093893649372840637727239681070033563163608542325348261984842135185587460501342840313119366767670147045984616084798522373219182140787700163979059605076817843622862594130035259444693630679676242076635755925288235635878033784016230264498326295869398032464636871167775901759446460880606662606228264158697880131416123592010437019036108583388731588181090137127736085274999921921001965585521247801976392071900403489590300646349370751117741065066226344122772945109963426671863317496556347202104034468231569812443831469754494190745692860066865058904560877790372072153332838059609393667527269391273064217912107073659546609199433896781639189127117008303242651361241657605959311245362793666631879712035314059506503544647966300641387280520715601362806966267402420933684789191189008030585133995125753756180704835977929164287459951872664131591306757111960778263271349897096933730408207499238562950146406178510871112113094121845671344639189421645750768023305842139458275569371685893771902694229637337434531884789657334129044535211459613760957800672275418860975098608356410955496411193898315894768566405529320215838376138327331522324693921533074286937597625658327577568501432965714317101876625556825111195100206752617442153184990084302548530914436601343969608110073364742295533028713600567784277958819187579604815928923636572432648749373420055854841248006304239123529781726983539590598338467526932155343752721983818917568892881202479236300190574274426719759109339845645733624271648596999114178146108518884638084254414469730565911657007967623579316825534516655717008513094110757702861071113209908504398049112479305425159884871529847073481398121341824654091321030297122943593650934090352056535092681083748632091973223565356179871534375028302972550265422227640441989657954614499754674533913917361550484501286753870995019804202833010358913558132096872069255946921309588009209405714993143967839809912206844256907622176631218207352757432246657932096450905682251397151316203406278331300926844532018205427187768802635450667090031741480024632329357803613716944973745648404876138810501109552697904468004325496521360868958842252984613883404305840018507666976616854721778731564659224733700185011584439034001162216708858942377822906279222931211676403165627197512701391966589642181362715017867047618569205825830889678335011428989058288928653439857719149041195073309092303969858669016811725339912322633240710303014575873196627569171041535299193143589216916756520721973894821990724268095302374015129455405843729191346605219849845115470834840757637867590784559545816079929209960917999137051162234244089303927108743629295593098456750190487921508261167953614132668129529368351279176281106427130558603071725260504317972286017205677813680855608192100315205514866583161854628824898689441606971909257946134375864738622757974565843790381286321765022518323614654847073754983394161041545581454761269736101688576641402831946596441668827563309961937727974504747054410647211479231716704883663664295079280013354611035220600347778412528233714849406724010202488872142426776073996377926987840369919448434994191225788539107294328330596413928013285068163182320640350610857685250577244870314231631466746857761326951367888027168429773531785161599466386091913372411224965861461803937221411045575510395868809164675669651434967248158014377962966236147383606576720573246739657049840153885420317534492166863041082362081123813539820669401280060709369131750019648154005782337647241834135413026940539515521205125818281765399997086450701043329381269193804742282126693701202218688353859395329838829982329591109039077895227461561352862883229036341537195790075033087637925355491238330887352378910795944932335514064337792565604170613433324573100606295324136885625604274054347713007642678583841052344990632277239834822283535732201393793571114469230225569193820979900810301518776338693121841517668537695951370112538277643939203235559722169016065174288502108793142895070801037587985520777973528309735282986295257006337889226636122591014281623954598464271684391881741740139374140882798930597067748421257622209820593741915880575952393237776396343134673843005903513769443154136628244808586270759275452601632999541465851117402043181837343294890403303757979315697208107052539211696178713994224971615131822182800507779149245368485737991934328854390492774454275488927901541210862734524569415409703174046931203750704002996690524180664513086246288153378776242300563069664419792141033491432915499545997259386089777508328819085551703089207755481952322735608287811860897642339395649118538734995133524352678020545983524782539915833976113031914739413024459686193947284621557302198942292182140965079176820782286634538224699281144769129129509463121632170579529287260155146799228800368542036546569623745105924994911321843272565536982643009725193360052662357616431089245597715978323528590382106042896078476444318466029192038573476784989191688856071946373327154451044397556827586684827315099725505646107130299249425408935500060084195736736323983006386408294479396438545384551605469869697440587855550890969557609836485205943364512774220659568960693541830252557716777292785736226954171431849476281618945186034207044414816125808242621618788961987364103821343124067482840945745461469199583334439020613220624447102641789487269673905622152980299489565793940746674551110671206816841793650226794285906391951623052777609466526570287192073312507006432984105078112601701757588786864452619101132647937535617576415548420371228379028221450163374226242098752549558838220336756572190670508099741230522321466090743956197345917521891369387281902959735264000509622668208159690767982166367556537955190428469579101521280824432190649805180952970161845842625224267082300481536157119020196343892943499082057005483309120072293121114665851852393494429792468417051951201745389705626779723647064161450131700511901507270978825514923644519425757206831936833243683666903949424708748842376534229230630102648310760328366520622074947645832688553004566758312786530249685068310723382666588175074405785132793570789051323950549067795687617256263732860080068524462971034719209336439496817149653789608044279392755951787004647071490616826119750353298938863757691873479790845557661166507763983855862621325552122153890078620580428853975539919062571275282593103880639393358958334041499562565649111455942222907668310808157290004402661191331305278984416566938664197799176708711841403672895101198420511330051319534826810699100197319942066387217744727519365400749719812370437328403593632798833345032252650553092844264110835884160434441403817261862096644599043089205510489959543993343226752971993747962904723474397414286331998580933591336459843033869525956168604598449189007949658898891184365300968104746373666016888383104211315216802088496762108674023210498215602373774514631940245875256961306973860225787190315178405946769611746468698411638485876463912298028915682748582731274931750793951766091221109908482902033079299977510542361635272173597572769922988790116888622594383664610498961105909154400216404881802758580504586611737618201642564542254434582585903331212075827214562003524924891244659581653214544479045255707273847995511561298130859303792317310488520042641418056109878780302532451000896139542491322424076019176550058784002539314469933462306595557888425234504156119791618646534674107484944644484482488901284705806522775756550821389095474148990850025197058771685654026168477325624814281662332359070508101086746387824070200871188013146575716412508989156849180606359010507690779050349984830183885398345628584030000243083881497667201605947144687834851955298898167973393642044851042921902007884515877972523825839862541937865346027801508808236174812835996460156389505773485151679393094630694584722973310145828316306606330783202717008086099744152234804130288804022523654575946882343364110845736508504532324127896857284918732931900552576263069196703369021509619565137299696190510244835075239439108677540348652294710251470214766939167830518901801962317386564194878116282925835378277018100041575831236932928628841022499271395506267535418291545391160774314622216422768983452550953973741237865516870246954356450825103057832405385036138856755466038823509335713603808521969825554266916821910973805859353569827617828251023239539154247849389680063207852634910943128208619503816679450548437587132785807695967864963918143207133635192367843637511712705948973035594016948994964024799355893530987894624066953598804486132857399756900739660389341131709364862759850293439626566767349416642877217398558043871600052770460985939630893017383459426089637149612110017245331318465648819522430053548303597533444045897386101802204625986760594483625663180640836854121927926815701935237104048378447644382316012307772361155783126136377101177778594095232341475651369151817031016568645467420345386413147547049755027379069354107783986483867282068568889765942606441304925277641237808677732655809415820861135127452289779001261543738171750322951951201106239433210954590877814200442525558211240709293428015256269804524070250952044685574311404462931445482301074773908648280325331893606562617519195164954450413424578516897496620105505601355651010193575517469431427069045757790407504450606131012022989934577096237516684711706385506921995859395904803415385524810312134306300350744401164614374688918946288825621938338540321478356245069672661062670983267715732722826262460300886766378830080642795638085734658901541302669869752499408453513133071437596864362938113494422704946761248426233642408282103946317168635190701655519311008472657325059298666422549739255631185580589125733068569936232637014972945480128159943830800722487281907652046625803847747175019666038884558788825897476014958520882268603316852305463815300150805401874995094324230505274277802584846503168881421147673622373981387163776528424597023722110988365307182937309422226759187388164708174848236012320016755745971166067763720696618026129880801504374262721972174656036340798459117146637613496187532331121679825636768094445605572619386432949676804173153469855234836029012145249093891847175470210810249636650282707972485560927881328305242392040973584427134476842460084485059496165552348231652997502853497293336869923256996954535678146249186004188214434927655749333947463544643211663571348636518045693050849128182000031381528443411546508161159923915893352565070793073209189251224252804967982834578628262221509642040985488175680165524294289323160876337483914845090199358764693507788667813444672303673942841826999157189317851101292550262012001299310004959915686987492063299061125716305325167147081415954353665025199230657984036104346143415712548047629250418330665261977132106385577340329475458537155906322857415297120283209602286297562672667102663746727660876364962036699312440315843952306533648834357823716846171627888753576162736978963199557861834827263238673538756291120351353821502735725602505018700874423760664449158486102378640496805736180818721151304551836307003596570695719693836061068832389912176244126728169553376940548376039966122336882718620590419796832374754345159735558941456067211133442086718213994945094016705112532920340426634553967207807182318209448137299826454584422788852365593060611689670832733553836948492690188515632851777679943045039935682431666559630329562070458536912853732224305113020532568266196155010938066462395583242506928984644623992937508078359509614491422876703994402902553782148676462403841968026669344710719101659245152874295330821390437895972149110294292914623185516119711589735390482859323486163121051446578413823312927904496988735668399701988069344513332517504153768095997971880486337219622167954550312674833688065419079446432735836379630106845226541364140597689800150442758445154753145258940217979509611974468008842575841555815513797364684941389671493622267116052664146453000680189171630774140638482100772951306669439312609171073658408969367778790726018825979454924277901735722675842688399310634481685551563656192952379977767257147719054792156787209690610488972877556820035307598896726792200063656846831228584812842405394280077602047863423250661961178863403910333741791713079180508973032414876419215730352667361583760045891333889422585841888724803147049158801922389269328609996653758073867236696690836775794441476282763822262629383765285484150172817645648430902110127344612827700814869650469430549884003665059715192756454189851739803184007642959856639201516601064976184875116527267919249523696772082411516071753479608912815900124543567846628548763590274458581075939909818513242879229526435028856565979980069153011017071748427422837432720433257053027374051272886686304900269709652957408230676884883827925560402346323928425760586697269035124863945232877269209205552475709138695148774956681768423697481610705601922224783090000056605372700503248065059630868016162000668943540453825827175477248510948608164783719545546627207704597356018581728111400900936760501392878050684354872328668411962166382610992943824196891042262793234511742455775954073176603573548386485733046583038143499238338651203312955249302620664478101691303773969832155352371017212745128514229455404832637035901903022331072636320694881810765774173647418313871203823747892988702149072316853726572310556755921024111241567714794016342313484661089159963612431080960933926063806914385198254820161055868975464408229705432610051604080661387883837679899016078098404773416588689264244961817327545584737399843700296300620152291300531945248161953521754270395352160660690155271206732291558960187824285800789592767581723872257667495304413722820386554458367347708849030058794537748007877406561697381123326152680823151379324533583408806894600344600931806482512048058012165076164303671283093238563279885501481209569577861138000175856050747302871510407007107537471917649959651755686441777302914923120998345244211165144267546893606399007798730460404482167727025992551141036603977456245383874280781906603370719625891629705817239012732302189822746208925600629348923912734196087588384546996888381714771785222907218953127140312828965287292043586792203494916898645381557178726432253602592388596718650206681244577490688452390907083858945226672828993031084469063895062676368885618910631227896439741136897283517904253642955625383827222617060271053974051011074722879708734277394849428755641597014277248928637708362153701843156051256364881282382559827790164403659429101770453015810062445278362935951999503558457580381776347957013611398943827834267944852151241909432033550456197699628008559556809376372077693732835894799855211560254866084639196566242501224081573893859919619980970624072881841671482550651645234954631418100669439688541986851321605396322848315437987887714356319883425154832893205923223886492634696675277559988415292154743329239873020521690433281180397723015424641779760153219939319486238142631270244891739610187099945063034944543725079440899435757235900516190963986851444813135461683583963182333701475755746330441977892077042191282088240766311759201848356994838095587450107807869576421076401691502755565730029180439391223303523693120466598614912577661739590732161632636650387600273256372703500806751069040442335927777011788497675723055630767178206396337683527981826977118452130293326121523401879816523638143932762884638740799491814070797023484236949806245385783921705262030494752588700265261537176406529110387406390807892977918943427942382579179528478123316868192052514866273929714679108867265914977162581506389334745156352846077699902946758705476536464351847202289966522686268677480641450375337895986146361018626569158522020463170834457916092625288980289889937715569798944012826292235445263613734466035492489926192189653380840734564327024425906853342090578388419676766438047673422852932459260034328222356335044143552766149124086887428592590936389331517292005794068908569151477500602645816189339372732347287537336307554795211888060656741420698520553093787677977459265269739498827181778509839854570095550348075023927250578344052202658197802565084692514819435480792755220516385880189396269669675693674458709534684869772648845992784527589227750847453478665104706143845289232464737152093057393582751030229176444383070834452038914863406670048589207042252250130455444450442998202928019776146223464170065960862310423717444088798782228804935600820027332575228001327403504751062599697587397375236611104026654976085061570067206964274693547170174941231290334946988565353724192345422358022090184833780305892054085468998736695883795565379313596586106099191991650394557943291403582537057402017481276298239891381886940516998013392020082901209912414114100682781032960735816651975956072946386069960369430491720719907143077811403021006456589557030533915720870549381819400660486613689194749294459449830011586702907317094710392054923418860272617983558205521023093392481549625456265599763367044248066204253030932464761864840085534151290891113669071595033737041239640415529479967871310783752075189521819816649678692244039692633629415400945415515373178454586509399204856482248087379990003376376748779495877871133573935037708545858263338354300810087922778506322623502038310839649573510511510611276556890060448069601644790640864510394615443836530573782302969685192579377703580875775174309314158441947634092148122623896627269748883978414916087058111034509603837317576644974871422232212514937291928200690790359066211595352242869908411107191003928063122845575852692126971186563959998689207981415967765880261261193823226946804895199793173315701655954307375315866204121976452517094772083565417265336602667845349397203269755298871249137601186229491729944215333536059307155481497704671926144121952500546713080212869821754595932598436269805458152048782651556037659569761759145154664633377298697081679427163386945787352584624983939023637173628101051799205058715389465355537000375626540201186405284491755097945510909985363013799721783774376530581880069563242918105262265067336472229154358113357928053290915122600804058083578424575146136383318178127139212634114441347789120668021841977375234099678215763417439293871874730004887442866675706618632381937865709154725004698013795023297746589883794631040723395797137364518146323065794956288421793769676298474488694956178849439510590865703613976473910334129500733465814123805353854548368453406409975145002204885980246187842435273678279320454391909187791631935225011345356185793462604195233399954415361887535344865284576682285628360127407447349020720605737717988654020266613983368662282151084618119075151201820909215398529761907065435474251453871864746790002526647899711062532518258248829782343543818989131590706651328049799612247317631356336080860554014605762364221806558834108175950549352673257774598485784203762604078186281838415162750538732039666325646785581427657305776895186240691978102006520123185883168778987783511023270934274833394311089925713132720219225021626755171877644395095676260113298573506883478729675218962689388870875311782952701786345652184339671177826210253829906855219072969255898514335422592179533196564170763574997934547990979924769524034415602767266407616082920259025930419140568525149177264386677549799073017438609343727183145811713950108399035359839697594109700365176672522776759928826884595352585786102368523202286822904847987475470922141778225284143645499008389927918439042006568105165976499312874898494778345179871017509852068975140861435793317721135423158371153495853862524287027881275009022759638884864917712934305183507391695466065380931225108182205420489539039156965149343053382777725615731232679818347635707327357227120771156771244942471697165928168119472982116155900791398706216584129418455609757317260165175569615129437086901632041301540056733269095984593955480047824201916647310932707568544804628404895030208263050256468547238345565235075616197767272477017220819205201898152692783635733673643616792170523565395853877946630713128185355183077466268356431336020363165240315124079942738826021963312752489140546832109210652041981450860525409587377649873932879637916021214208013301243380711212593520425131534620265124533151206244671421596125305078303033532821518671794936544640389413049143031348412646452473201452066147001699877782584022330273716896835403356054602688316560066331722838923033586067212883006306358933969267596684941455389774934653303892188134154288529558248658875171657270032697429462970922352071941608976854535361300806767350136263558030277367012648380001962183557818694887078564537719364840498129736840762829560843056808716273367108695995822687524891056365677225135049544000726016750013521576845009938324701635948022741274196952629821539710765493944885754945264184581073351901513065429660378600123631986801505403144269367414852163050686206758960710972754347384589402806846569299635199464116801485959110752007285487818961983138943533634033087361088113607519414212989753918208885575924790800689915994204595046438544222713343218395112808878352580002997865402277946728061718856689889443448111555294822375833836731740226642005159514193571587456044066237831324333866417781634576820918784147156817299288526014185281655389805299482223080360901522691539271706843378066110412691744369956536228195144892881644276857104422241167784538473645838537846063495634974447594304631653728354653455445322067594651133201272318556971694402276076111132280882742331563223126279169657940654788599803489594203597856359210611741295663485944626233533952830732767879452565228116044538870614282593878708253188533772019310405613716307641319354201440860339933555940840205692830390164870661536857052444875761309512551354624857983472150161146899429910643535295411667702503817478282654730015863354957542612426234159453331722324260588872291696250079415625780912303618639672902318820024403025414218214654710029591625029027307119344160424843385961481069298636930304725395577722184967065568610838702679236838135602423606633020343641856299373580001737236484615704815126907108892186481939807903742953432509064599425319046745174661338697892178056455488671532711410848852725723480848064319063211375290979433490533405850567834150578670356561629666769491322090579161995809546475124920805078252249026533540770197346681621057166909123301377118887396271669376476332839680278003165730446726950930435703001268832623082127569263158026450990781478178718776377886277514222304192330413618759821699911440252845856497316126786712391225416516272802498485384665412897067908020394622340248700133766833194403532975542323952124094221513888056478193866600265191657614705039663423513085197880253625179006006068411510675538365880550983159071110229527670921299255778287861270021802267087717243370765245259645664743111375898913552932308814076925238844859355224842764984841164522302211451806117435255723402164375959637701778086999506665257869062208840334823513791614095207037615640999007572523304356337764250179353782075754769919064376090691599900597997373095371992141350114062371897255190048801763616201194607010054787894492760049650299111546336218242381786802268177058629806622953781421464641283105729727716875536012517358954437480083841709764340305220971960631779660649516563130700438967864115010489763081638253679310396585745353920203619636029510046444452694220028408419429355292929610342726126399528342700090132173120731335793285603560153537614385322091706045265180552966536642515723888796028335137905047704144003804385494970552575226161429712791259729915931983579141751811808440995919781486329201354353825378298334031094622655309993433818451088300253150052013919889589442391379859019633377270017288956858763192244135658227255516330803586574335214528560512494603591458207047414419122009326701439109009667809529792428418967901976043140480813578239453057264309377201462445175428125305510240821459063142368763747180520008682669274056534961361898186291973517791898753544650626295631665223235652354188503778946815749028493366874141247701054240925425437476819715175149114640358402854157097892884920823737505463625861972232259246368657885994366667871082513000606634194889811910079314534154916668986125438606117622728383214295191486874199100374128930488173206538602867160123705302975486616932284118066795212865741325560511995943292421616042876647284743960230943679907488609278980237863561352117787262157956403269343868463871206750552112155017405587662804073732904344462016110774580496951616797017091652858614193277241145766067195545934068474963893754829171145766889141381217112716380160302982840269027645894367526158873538448629267077398881163442465557635172202348915942851787178289848816208256651432857716398562852055983869938655904543387375087757910756350888373474546133140737936581938946894089770584257867093820264507142103404552896610477363541419422582093737059984563810898022190159037011418393958073923480364214009944722147232023927837678021354644589295969843215480548782113799422545107159137822445347532310776484189881838777607864811790540445369207613478275729515561880455794239403254253260130726336530137869980544146470280539988376482684092324207096149888823547488027305391917923704576089104302016493968661996308584649770695297157539779020949034467831424512912984279952096797348058480338125839761234998117215783221757285275018491964231511856617416086032836979834469952267119384831828978151966569340821502504721522361410746214441959066313281482129917425641561842439478348460578145669462257609754601622430121879260757315080625043040130276566298686540292462398599615573171872665898891938105526187810248355186912665963588784990821005327572373224959851705991103735972337635112541943125550140881014454414706413959971649221716969274046426108050937469904192604610897893335765824029960699552157392532722955885699396659488127848375591064952109321668316221062641311187163562661547814790258029360476638983108466776763703815232397487975137236768016394927555986656068016549791841318657296943872403286594978303989577624294309605064858078434487757354380910724210046487097678263679426838067341432948495548226613603992208978639971788437532583943506671719565627626849914246132695121184055979044185982673548087236186403891655135576760121617274251335617233824442570753050061015228708695456278473691181287439259513873535361262963570055255208662037609817752926846938429703655050360573941093133590472645353815614026373417084408686330752158326709842611947164244063913010230651243432345325147511901760582014878600701764696619378931118023302091387413143191729007368532450338478347357509824523381815598360709370446464882830049874476139921645973063086007623842462684509407182642625076672297631085329732612102427753764871706864349856907634322650037627258882963008980912857527896213185847690797344570727674613525953119087956842594974018961613206098441337581418671314880931923025846223427575977612436996753660629647713671376842410760525550685394053179326595814921133737363877407682576289147284149143555655199985873284838366495872003697191080806817599701977880633660531663384548455354202245496080151581625038101502702470798667333436418522447462436209613784934743747396475959478163774889410394148277508478680823330080212489064836394653249958570769800224383130644930653346062460586985483469381767781691662103820332094652834240808035857568848352161439095726094496711617463838394009356191928182696162085559567877313359526039381082991094446488799576535915989050499515656874207665136481563018566086312888636998255485767856374057666788739907688718800628930451392236397979435364574246938507844606825878246832177147177272119255608894694091235853080515162476412617756475933336159100108657653190964436268662131292656877329525415639292215835959681622072272693585248635695208969945278994572909745663923830646176896072085751488487516033050814160967831889269130311286341642973648837987651927337885804365130352450240405949126991185175811322693078546251136470860334106024379389992411814541509534180987551222536521426471922199441341301678586530594342905736758516540019289238725848580911301412816281152298423678567658138037583130261900085636141165531143417999192331348532018875208120662684336642510798114861585487227807837801359240242187893363146140429850521967550307500375369958278195714682039260873262138126091877829497244538909776959985248058579733976093919559230908701345830766452895865578431118621889619528315266085824070302305124850118206161170909169007056746602025678040898156120986820816596984045512974530118143989459144039291920670608808837671995555131402730095920873639421814224181192765826277224745778526645031525653692033000509989593369051803410002243095320810759223803664380576394039315919312196998542731225633928204242404498938440047420397924085315118934742280588446460435116606271274087374367311659861577012192561080732407612637565757694122026277473941022877197479722100810578394699365597817550744932366517763551724764635303411546175385781454833701726876014701666718198575221836266157229435281720561486470763468066723480579136457800168417820004373745347315188142608551115582683189972154094815650234233768166198428436643558382355995257574460843189755763951863043231109808051640885939336211869727825493506156339420085698318302191105817298896704248138718311594460778021342104955858207152294067580220272877141360347887216277450383252133728408405513030823528097902910878522298177263098038411355755256048213921782777884881465776699929173102174614035862798452787464918040177620363357274677346148178431919460564002627890343850021789179072582527167975222925558685046477391376483194750274781475648834656771837456675670660786223938643717213902313466971991925674392715256278922487476867682608978954422421666541132291824049836601918494362568326802306204587674595866851588581800054265576611911831699079210083260695916018164492046945136920471846933847667908589716181017703292882722428037539596574244611256431894997028321334339858611621515782166566246434163031270380251766607239273689714259232849052450079232942487561158640696086893379066132673176082864810154440291842947177516756467276658969795366453828978015435317777207891977368945174963103646435410981430674399102570317744194304011827295852568478814187256367801440886779178561934668530116729506418855104962694419693437454650015499064468798263332675849136572881025182286945582925687027899430113882807903972386165811795102823367266109027741236021553501206245750713667476622857293773297257681504392045594165091113685811873373611146250050318808281075532990903831151339971663776312457953736921241732296770446796730095822245333367726934455815054860629274894193292691328764364860976773649293462013598133090013900280133705661414470492340015504844113306568132047418122858810076810680410578095663885445483930976524243548726543132166462333324713929017136639782129695743536738254066470282627262330454843427445898896260970586723328379347996710764622154774923268951714568838884419003762297799174475043883897317178955769229249287352083777307730796348978497805403250496661404831516291980865917408563905006855209674941846678613373531640715349493376356512306244309981092497599377276467745493541089729886613592868261798171701049186863784764851604500409365903388021131874874775314396964867573314597407686017882303813871789602483372810807407783602703833189233600168270055264400955908202813872026438426981725552817552456455142155369431932999097233353338390955436503273172777067806957713401262187086164889123206394538141260846785397970567685080168778118058187476477226458627151666151624567774122048385673040796509812357031003522729264222953166610277139425116312541069204019192771382072374758316683965832184010399030906908485169410568020009262934893784785671212874061550503063546946440441332261643202302841315835775824464972605354742775415591740582281948926767343632774763279550464358602781084354415556623096501690437756961611591432930401547233198974543690058911436603140770246686025329194336818843226819735534382813454227213578538684878891336998815281448892210106223357808780312974999633966364656571664294466084535192163396024558169205421687540678353823754531453587455816681075584351407590735267728459343657505124005030383274983786556484604697429246961539585586541410115832022490717215522207239379150126653157054309650692804538120353610350621685166842869743658543150326251866408947912077258306348567328978678126123751678979618310496318840046950390390121941462197742990032345445024064452344869465731531974225105769456941058166364103552350489398237604505951928892704439717641557947770435473479067549690135723983694659464913175585847995513953821436377399272066455815698725242644924303409502302099091227779912959017298772760677611196616840719963437427499283194402583439416831164805921718231954477870447857958520650027373288716807856624904659204483541228504577376597087365540131399474239843478846805576768028289654731107796076376052095317890384239361673143495601727372647443535487833775363981373591344880021319893079092795622439015845497648885207263361849778567499981859135945874050445644187992367238329778848168931401339138165026851464138363276381307711761252005070218242987970917102911058991423708355220063054522704536825063237655352609402742674566842286647205991854772227130286703761621065062194243768263652667609198741165355057895211221938372490071837604708605583106687224904503728869464677838568476356842822900125088041111955858722509217824458437797365853949181416673690259038757826401983098045247442382074877091957898489762106965427376053435662276704550341498019434601223418085829114374962678884971686418387145149399063456523003364054709290081567243221738392703383764117644713038643734127058872061541468878442116482812645353535220901298612723781443088846143481154404597236031522678864012295069126056133561719072056603963070037818879793494893600808670304657905329539027354966350846822272487758367666362332191509841898790292601244223028149213454262637091103608717104936609872608643081037758699819335271057425717331374997998222590832025670468377462478372107651158552592191492435471897937314162593504948989823114730998882448314800700259883931064839436781291029758991357379092664818203044787897149940745446934708653525678863489971632630102891537942489219848892712292337155579161734374237412042997477297420663122210327580916957277813430105098098362559429546233002869586246513239620847584878164210670100597053152700205727901790336439833491402711802773484442422616803979958128212120386047190471295599405824699260464824096152468149156472457734360685656677675705885422156639135501434013057174409890833894344585674387293075840808194930247616283136418899642249017707486410375383624060747339073554908852342306103130306773058255489827336657992004365713276077423227103891916987163324757972562887733460362529713732739853563175314847260342934837705557183256602651237143555500497357316564138314578437566743927089677695498338003359731208048164061481200340001809202635240187610717044428484269914518710487208787379443954724683515446486269404352768757599477971399179659988167345416971085955910692245825551327886978553894431287846700911409775245644678268791377143429163940799772098300373442360721266509084830929182302142906565039655604137556219404735530152170596796393048615744023330622087786983501677210307112461715495754785835660319151719984792708695259955349013919237702184407854149471245226827132968087558207866022821373370171057069752376666692525040738595083538152819178799486173725716697225825021697701164560674702004686151137919821130612113064634458833909427674613526884371650420931304092978555094519100423650231481049553391492819859742519192594318069378189656594107027090650448424055553914139021453319025125531461496005384132080714828946176033648068881536991646985599794369987576604591554942093921262429761574039471132861846434466519653854023595883984270353658853152840223959028697676630519127757035077623469417240208233562348119748188093630172282570718908457403219234213611406159591145733736739866257203758932394038789411753978037145565830424321494301058435058560229918628869330367666794035374372804967257773676697291393698781388385509806943460303374047539747719117169702660885617702376477255420316931522563391957338420880719258463478897636609908533100349714296860824621288284360237078297814457941183330713352920089692286381201179686073441989340196271067657070483685593979152477847427796595486862057103173979068131415834997905351224849146804207377270664391976316410699345537223970479949420743827910670373476753167363385898538922038666672378409667757523718489221295640905003464169744310798267862882675181900976272822138591383714816919957332274749499203458638856122218959312428935919957468499960914291176371384872963084283302319711362753229256498406904400860389173898436096402192943593381013381656472108751573371002102435446401702067569502491528838864993920385434284226075945578871538714838038740484540139493798427460722508922357013927185596882426187276303197116924276679251892166539570039677089943894460440927719689790402206150908634234481432751533020996232028198938673268065573849331599746025592386916264112129026732186440682224155335529330685366073791527829174132378588102439899133739465408006179458095226950803305077465714902745879903902315941403766983249966654853241676021146799536916505175298589596841352385695539003014142549964837284577693708739781237213882122178704620474733735832836947939127041638039993745704543250300145263379268903396982928175342108394767957655481420014131148769423052144572616224913602421156298939919676355812728543511421434118014714890945266509499122111301713261850928327983921683798842462292051981709074631139784063861866495882586041416736321483318072289438661993836094079013802131580850591881670275187784831203853970476370139137730705669468298553520076581371486982078790689309386523519663611992116147672675587390601746704630910212029799852245708481792937495949970806075420771886212189060153002954807588392334492699244720842469248998988231964313530343801742395271637535058395003225542947954156493484950095784368024406294280952316064928605302963158688502360317446758254346929285460520655025743758607837823989150966366812982578771276431458798088997091502649325655426845012237342483911976177389869060329158247189945544380863268929435883577898518695660707421785470227828825899151679248878343825322866253080968325937271110146932139022292442566778583409350747469775991233548356022488866040386372680930571248444462284472425678454704905712050230354455347857158318016682766773580069790574067325647150773264345604775374802463878477815907461557311730277315074977702320642530216737672331999510798987047343783184874899510392432207380414266028260495303279736433776275520968962300779129367097060559077027735124514051185136992038197449973942350653059141194773890594123201797418666726945669295009591887003725269735535783166000756818662323194393183775815743019126063986316618050142490306579607858264030439722857199283404307976700881323220205345095786446317739338009269363922275423364669671167680013933265260565137837011988060367871533110077377804774762546824546943042506623742296746385972887796770069929762942322071734032317260419997417196633978124087375899334489264184102596179767617114191020283778608468788915942496525623247087178946818889936954598453891802447289791279256688250609140852452592054299735663581478114736598307196743501651610506615181206712559905901135184581276356317911737075944060496107175851955876445123407365311442821117181942189849548627512678232523506280696864690169417465716399499444357653444721748051196539959488878994590457919264882281881125441051558663935802072464013453690346484551985990826298428636802826891793285190862587077761356604948006309604829106829234650805548111129351959546437522686038176023740114912645841308449967302650780999236702671643070863373449461319774936314636945962113604530439831882538895721182161248046801541147025382080748791811972539279069200680941392805893144796651376090637157811396307055288683780425440514262938318557390859094140378646489812916998433579976259445336694660573274563101094265063299938101666953807833575896869949700739780884094691816159187252817007078892723801583416534965762171768259042677002654988841924432901796512845337429662596436992701512659962532438586338004916399625923250710631606974101117046258674803994720643280370571508702327479861458876540006586584149982742162880119300866259260669698861166528867297241160822958610792273609681520721603435943466983915582392354099837302199069288799289199173566260432169772240787043269062739223119050092598830681891448946190463929444648627479781985290688165113945174170450029797319837156584715664879775619252855681724334982489758107053015728458255806276358607809701919780315404439262100439456199677495467581241522944022129860060005592764391185500811732374386350959615978627123534261453994561008618027984084257441783744232825460251365607963200615495456323717620987196604566376246893736259142396021197118945628817283237061606312827474396177513980767781112795009464472539858373814193794110134125127567152201001715400961445670027976000766294057269024618421048601007319780717067876267931648845504664368166365297115617722734206185401184124439102030638729844695845437135513535149209382381147069893583713133494551636341272975162029479296800271826475238865324797082747112886693545623366977405169257667667040945954095731096359707466558241299357506381498831290609266474206685817719053321228476545511144601542149838257936192329637136045431612006154794247853337897615740352779433208116733721670900551638626410695430286126488057785427553822861699285442690283195793316071588847337655255497898326670882169418329745495937226471327061410708089319218218032314210989295266691790711482787096723249392399908402429342954338724239373337898756028146780509966285499748871772657887818926245252182719140706405666393823857354379150790609181135468611979463440271277651767803581107854069279627189998183647672938718332440284036226017006091614852440376270951512109887421218250494262067708148368049850039496914423417457348129199645792452693684676650565057813743522891034347389288144921043757098116737740398760359283256187913922582058173012767676649460539076748914835317012649012863980682561711336001614375131023800689743458739758777827851803812844053267409679566209497081050051072936097368105483410012298145904136892604604236974638570596973826731002069211590943632912635798564873945326838809443981411103035734165804238464481943617331881231869442572340997763720606416742434958093918384334899861203871953121450222696615508398241098002095257267210530792304438082135259606971400444072484304690113847503857812993121943328087533600725065515284540834449310844472027667922110514427509049845729873185530432561510618040085468763329854042495438530809152599344445167766711062721775387996214933988050857590651293804630826077151996416147773280442994628047953361845682132029050714284580678245080064105227843129623061061593689794653984746505312570620265008218677301324146533182450852988585914727489599084519166250999268843557661686421811307408672437248537608245608244922353805468465538513721227235627762137369874628137342591593918407628742924264415453898017582212381243160436050699650759773836671188973032126485854336886514844707685404394795426096401892809422871665185237185196827403999194332447743600445788905168605282496941063279810012814094340746913141381830680405316254154707953963913879325827644843395592171663505403340271321785815938481329481535313950078689527452387501875946028150233339714390220162577542650051665389094743293153206427865354189335380238849089310965330518251411514076899860529033914432410398858068122303746843873346077377397154311266842894005645413897123063601085028377448362364637369022602094773647043751297518716186573390898506956538692306581563138428643152391946345182754093664419494559181672338990060550357984067561083969180289048630134890059118151782521786036558265894866068799615635084126977225962902841764945781432255459609853587829930800192918224603287560273734031777825385734080419698886535083927281196988576304530634355733011114994657811985827519660261374534806741401573861193406015230793208847455170740899249211295389352356146154139622200790407472357448710940189372925808757233133582060347261397048550595074675250314592724399405857908232853143922667962328754261445209336840645538292282121268623912219084604665816408049519051427182329934351288131292066575785018675040281583897744560557910498106518100507308696969537394627191044306198022853519587421772910991140096999609014115798830037871173485993383805914819558521164640677805593952175818038384606109036282594520727296250754751921795033633362167457382961781961908571888655961076369580574642317553439076448102970955664773276357080907544178327273320221309119436034266195744656365907074646556142690862901649088036862267886168329849690511054136280243044673236050626590121827581880523209360385477732955066818546030870309522618507592549317696668966001792033993338250959707252968703682644773133600538833473854617450290672440567986670129151560237251165304942294123338500167477537003643940760754426044429591693703271331972875597190451271203597727420622267256862656040006506378760782764251300389587561414527955236293473291296845452017804096745352051886777919275447753331842502494813096237594960086316387208500098554086667201266619219229158253156778032902735770877950215105292340421102670383680494675184436020445721703660961163571745055093515588664565200717558276630136102848832932460352301163121370761385385061987004529071845377431298924934369715334731577185403787656147716351365057744822647319069544835889537758528964658630342095756600145906480292111971831280842165338029973036209280679881245024527686325281134505604293626481075665374989550571253691143405650503895270697979528669475566210726149573406716921156986169960886557324447293990154186484243674934220686286909824645265726007489387931506199734740125326594566398315588947228526460020240455522919515751147087217305706429533157050299464811909018439356092332737960899613100239352253434505702460983693596747438290800700164292694122350574751181036236548621596128103284689342878345851789921038414739116967744581622718047389315413729569225022978895223192951321134144850305629514269711520373437104344087671584251917760691032124636478892987872882300811862522142258931306192029128037023503893376484880713209579176908847727829643888080601500000707835235632170495332647020128438022552505200646886720089529122521575082936480366206668868564301773006734418733059960788846236455000079861483610827056391428137585402249457563781926225333758113358156486103008603412537161579590372857661318907604638204160811663933582546767532495133393729370255570894863110061154472338033431753192111746301253845848350721197256653046402277802105794670580105792795934389782770764704147840077470207077288643524254684202309183516556550222992622813999877418073593820415876568946032753876369189916563038687660024493442609345944509502404014715224821909218334492774981432934180812942232120818375409359575705254590621527664317250247654479273448539570110109320744856632200341823988524781824125093313058770434333771478348543765883601205210586148038357240287767500373115695287827871656114475205668720631538664089945245100239299827729733790121137212318076883752685663435942124935374737070340110861830091605028636461085325902560656760833634728681176800275389477392410651905965495976905987384394561696056108840653600002480788455933572689561676578907336561235218479343877303932830950681348440104962949149257952122780392744014043933736111129554374587125492684908070554533458652941576115505088221543897534780674633605552657613456893068350995687388492258259837955822334302854311545162888069716422237157587952339109006360843724539028664682716942054173333003556169147127609189040166736915733426661916880969136327140823485938175000188017374298262316063468209753146851813564011899237586438262208951554776974380292044784676109539122607908019866916965065019148087025752302210898945731255847622435367853500539129184585095904591301907085216207342964643333137828659765343101169010861083058090032182647534168300894210387671656680064068828333728975638785130977883642768047481975259091198277446778404747440813208793490537975840429858396810938066211980872878655748780753398747468212683748957248773629466440055234195822227709261235194831415050555928780949526381411950766978494876447734362140516426669668019368373105259203956374557381760763555710259539397232531881801568195916701846251874645244289071146752685238516732139040127884344509755365779920832610030379612629383795683429074120081561580322617322381476303180915998338032190958254207981386763997777785786904513780879412707820583433015052773291308288334525608266440775642463574134085985409995258476730837666643646945495270194674033918322231467236604757054798033025707846792624782992809816446668502131482561498367679349206666265879626686308950520692177608698373203791020989629850300776189481796665110400722851583701523817295969747278082719070204696700599128144625684848996206406720664804541218674050006203728301538952950211796352951081570418723410908920220396701193003549550181579622733771223665010100015952623522468398869451672915778613105405998675179621934621222697879733480390623905590576593081590096144982405897949986434587703410919417317037712102705579857043418446951509335015181474052746864575473258845756047885191121646348902705627474577600591312307000285712105324061357466660442501568219229760469297454339262106625533166596555087762349683274007825575027403941696681299537319171640217319973651188050433833537913760705489422325263838376093640198155936378577005247525395103843287071176618891798637116233534876223186456292878447999880610698325607504986090691209713606510815843027716631975573311177249389309187834085031929859632775611511079687470757226583233937639480102937957031083734617482616728446073097494855518784449555608965891909934314836201134318352802465272658891486788416280976885486235177149500568086246192733588754200087078556078628332941308368136948597350749572302867718068825500287952076028196639982961046951602813131886589852825579474900999103421324646959787056556590608839822272021288626783229053862977880585035022839305491167817523006029603836705726998712342160376571749291109463719600395543589727736482211342042979209546651692938169818238756683994856153859343785000683737704518268950364037658631077808119463166785694761105162987647023059819798343278720531308318950778383264922276730600861957346357637233448924454179622778658108494862592889810532426748644156862211529090241856526070812905669643484741373527507183238914268066547190119757946321078010249759440648748516204566266198510588148497449492713101695129983028078457553291327758631081130693560122132406229057792070883210806280635453839707824682388683397062046125263648275213581785159802396041350610246529439757091132830037369154293401411884152731550625826121919833724982963338021966562966150664840113575473880784465424020740107077941042639699554169008399478306923697044885413806522094455201345243585967627110672617252859110694753526124527669197264326195934359722023543743103325062455414219714537972569334361721692645616269908677860762208118666340963939764837871538961663345611751852100046053439356097800627782893847009828910129523049087839714244768984068720390089207540058875823937252493046293890705940097983713468953710129189142533151483831673833153777413895641456198260615056211555245333101826743832388552647304646847130171591370233578941752246709280347820312816270035367659489173642524597259696857609759454896096838606259603848600482091056108140584348020024054347189084890963991769703697985378996618728622650774323682011116886164976472072000852579669916203613759760510158760708650748823195955819178970626482023162642423926356253912019212709866128379672868601160738921240465893539105192203428504880114878926072541597682289297076666950751890724093882794565619990473121315275301618082733785036459816659892592215252744353130711376954037816518093416728003615392538633925578614844378092591540436257232956390204645786812433257469215766324252085542752174585923547217619202676019668540926388054862250147797826676321375198126231851837059620091301806946687759246219027083653774574528902101292145072868227586523786293675518496684766427404036267653919576817367044474637550982750741831566112163231818865196393700801516948438574808498633447169406795934071765285636780680218577879088417702116232633614067974378043035828574537616096969788358485923306245889454825215457100983221114123716488873455482738692505055139115454421193876273632669363374277359367439882775968791063394299433332944814608663105150958198686376211745995723968569132375305829506749388364175736452947824300728555382263131075275440139173609596975166592507792507973435601543002231360949390091063183143105713817288857416210397710708402054752759419532480006309801399075856975791325006589685189384496158035978694738124146264038456443149684018976668100820885993229041277277622985159641900921733997125385611538148754873244300244831996836994786075004414973056322465094001520426669162772794531698161968607734099335272032690884618574863106966561869783375752396642103660949602784816865509567350403836697654367316457902622163072736404047060094557840367323918627729240902977814273287664771682267797015357909206437222314157865465372006083741505326247932151033250001310100927547834906715172263999119631308778657683170045457197053302707324017287289313689943169181595332008934150894104482595087820539399118013547636903435147682351813885717696959203749007202662892750557075934360812760415989775524555908136685859071092075036142928371145496631305317183834090810537974791135469710293517274122470501494813181396626151858148021342304224538030595987627986171213196047669074493784001865553318409858095661146739560194609953035591797596814578705052331786501627349898076383002783034878857491007266018001913706427346187966002634758463076877430814817903596009732915189923960456812904752704209158041178379625929420335683013199187042901230881671177468535855395528124494962198269308740459157928311625434013356435979172560277798071582913458985903598322552720330763462867243913936543268493658454840944910878263367088571116762135567426761937210823266259148455395580584289982118261183051740400706571848653238739638422600735710666511477625712524196341076437279379786732407237358375414795850074336638805470632925936471549664842538152411211046700315352476156845248447408671447658777868455063178668923966435199561702089638108380299626693843520239653846701537383078863218814913231930542610466720933544381509897813877064817257523064018514881758887500747726144731510231836737374707587564789077024280498177137334568934468717588493126126082649685476317387234781883333348321901558315927657009154863024259860033867995774838454486755869275309254741703518226982159529025661029693043217750341766127002002015905501823067709660153028129567084776383144693116449009758649124662991356688692873670604005190119638441035110764335373173961578516296787358880103554378988125618871819142983394815313339322664225357258846285837332899792584249534023710414877140056526043090213439737437036896525034118790084888548937729050412344218955008199677795177076903162883172161427730284696627072152148849646381465201176685754416296082369541579751618345237901575550594779304013317209499545770903081880120027908897473270223922191938832434147710380006036781729434470932334060775201491117001591492790600799685664352732386449602501396400759289361281956367851820644302417455584325477669058835137483280774628239710159571486845625464809368159575921682889860434505219144131486640196634465571688866722079533697158685347428604883470783287038969739606731858175890575381225364790992478896791914838804881806822163210678487827787714646767559377394473194691956497252263046821450025329042270510481169635236054810596687089268729885007294184115491356333558129569986863762699106085190368561590309536954994141868665303240748508498088004716322012466639514660561440936885400343528036043692512142660816063998352222857111043083832860191807973179677950999028970132327806546642266418375873762099367353862529635667822997374940942616972736010784860795933855008675486993849542940862422798732244807069687673704287418904685630157308850634145589459103659906581187406865234277192604623560024952627300122143960046469067303218700054230892192365001131114218924922005092695879119254141448036603429866606588436648601878196888240337561298165419447449712641274564119592080314639964059577574666386822307166869977263983258437584270881101020307912035325121810436018320725019065990788486803296384482859321530427775183120280760700261677846484576822758965346053830713287863374982646939846343251808486998317107234411591762671602802190095123681064767754618340607520782868219343394834243612491884518858743567340024903936793741824626797183390483233220379687858266715989047804044343242879902587195265274411022237623988385503007212255704996712554985371153525132951138008066211546478773504368447678227181838514878043371042426188143606076291014067292826145647305359857025042565586352433505908704504210882965386933652037860664075303227778661057594159191381945251530265787882161434608553206938289497032460470133451790484886342075850641852067286807148730257393025025079853480833705906271633403349923108089657197562544639602096711723509250088683907358884552050708996606786845289350955318598915569178865639649579386257458519310495102652709344354026685196318099514569069136148848401855847309642538446843994580030283880365403587100694303595968241573771361338408714325893060457638697990630733444153307913693703419785649334725912527479042337055505604085851530052404687127497884917570506211661480293921566010511095739146823627089043544000130171397075821015266621167402790586196799300640383361963282405871417689862766473543796319710918430471860054004319268734391665125381763708013811499313718271614818476425332024179251697185899854396941999948582643591246876360306050993657805886303954476041324266250432235606381060407748939453314520092746898563129192318171846296860200982373450134340848527256539285738316914452204787734051826669178893942155136360405957915460072125570093893735566052459106888085019952520548703300908192253682446121641421247682536548291651451795255375242536925965941037625298091330697844047732039999274837959812122297085249788675354840576128522630239981206094166644765004991501614942926603423611135361644259927506677692378547789368681649410592620286080681970318563329470759391852608024686221120201484179448228801558311814420615411416693341231184450175807290290368831325550911268338689489272372662491879702890969656456681901375479239097346156820966687402915422388885391057788037464735690810830235281062418840241509353237945711938299707029693247342243014659398266061683306756146210946993507181964496114540427915130344803026978589183718679702327737519306940304313761815739336394315894646157544385464984705395459614749358990171826303849636384781257524355081819312752860258342179133978785873268250004875833025437327946990178904485405741519461427310425054987388461038249095398720520024236930019485374555485401342261320472254346400878096217219011536011858510904109426349762011987314201364183085574698729837391919090017617410446899791032155165395141186304447138411298608587441438504958548263153129855436387846943659777314261017132983365886337381478240971489651200666038933805214482271404234498604942545075983938347350808519422264690840004077060881406582297723545811695326638204883624770574246482680747619163522066974021619100133746820014339844602440439257004055426120699271098178312458944348625364495396165073778716488947647902723672674390107090886338829326657121502209650262238933764671784864214259160018577610460958349753665766100217990223737406951154281092319524797198517030377167172531912842957053975630881195260510067236372065634815250613262663648618870713015586773085127938460589628348928714950352205847035757524803610448916170434476713036893793208610966503263049129828436323160642403161113251622804940064867988602240721602850326526772038737413451687404204087262743907412010166676541253218732372511431159257945477313335922410583456414381249295578255306830105248909141619437445545339926849404875835599773307652307568122751653034178203281548171146366412001743854461573107044595205107872514706284297106285250687373561235015886271760903445281596028180195000530804099658190527870221982227414620614524946945263123000284411832329135566326609318161622695982660577575295482455866671608462557737436399923690829413331886282857570758122877374140638659468355848837110021230650430815959583899752435602090227367870572213769505895099350671892375359065470101171273036697436826499651927134722682199083974106070527028045120622442856691371275146112047911914175985616043734843530727372094481718441531323502196524876025808429513842582089525648202948770199635518452458478724747532782782768786664575695871104543113514453867248679596181526437385997740403644736075115015606227321610553587503828686484222770052544269479509156268905655506675223760298058270016454371322618898273965019592928470481098987218140175441394000707976737237319348735065784231316652419954518169500813276781765946137240696513029683883304128330397464309106997095374879593267309709933292482992433162043750348991260371982980605599195476771091256776447534441489185772513317570235866414207806706606858991967327494896970810549955133333428620877847158513840276826827125643445565676504694791527797842893820325229161795677775197504587954229020551907745375594238526182282667868040225271987462878809195403037499670946932823097392406106254957672815069197207356979451214460287928076141541183183873872056997426526269377766801974148347217095865073086156140902602913271222307015199227473813826373780953421543233781196798448748118700135281312345972615807055747505761549768612548490667642616722259357186964818533720215670535553251349758101075508604237055199909320413596632040798087062824031481401284650128346833861250621106692804638924690354606310098735882348785290161455885041645360323173925429837551715405976938465302773625504686679396605807560942156393461783469953464018373092148103538198006151703885488299641049923415486933969034727859531049198515149940544534186466094640582104174009516535815154501175838304231047286840300106184829719486770195917834886517778233265767241367981915905054908661753112871884723323009812332348414052394998533039513811544414547438158159847379251171481090664607824863877913053567373307818284215780914783824713287235060508594243602415608071947366435743199652309141504476768288670774951129347298821543949757240200919253812502945095342365170561884112503877454162064595471528184957949528784647250006694958889311363908518449129120538989187135555276621554955599041897769925013176353117181053562494257773312037136992550012484182924708090954755124318015443258860684126817090958639136736106082250956959860919503985665410691371753497492433167858926128612893135731065031071124509143729325541881799712735724293170310917612641845805800907177561454034036152746944090309024645490745052533139871117140086514168177488555575349173228827827774164266038517219843014692852097519664058592577313046178887301083995861009785560221596127986491929714690893655243022840337038075727641922580617960253035649617830365225430833656775743823635440345502987935533441715949875117371298345077046115020952455444851727721575751786954207097325457385925436696718928357587389152377187913549782952520670483019157477449127456513952854657423545891621305808001840331712673071364930846629153427209655593755436791489067400560821371966854950732860403812391437547970828774795822286219726774777817553663915693203947801524500736564595388445137247623926496926911114879325200912373651732887776709006372806261130853776354564443089945885002418832132320401571350801058316013745884094868331414649612453615514879143031068771177404353485416259681617125952034792342138144994971083565980267079735231503797952309878780049208056724546309605271377800960663512511366590195842514598907634229594535713286688630937096655046541009812203490192769608964902373212875515411696515991259496123772410497581528935197300790310030521958225089884149082679200134960339834100131995943835886383573889883052831340256582227684595151355014336893563370495787005723045966885007153694197456417795008214091231469608246970496115003757467487855258989149479928946404191090743931779776470949665675788417471721504431916838131235125660383266228963935638790943528840512467375536808535832158005791056066567781500561815954119538259016530095272087212120600095640692084919089553987258736285972277955875423514868959724655180983079514849213917189343514787766635796340418775959257586639171148172298176352720053112305396805747185681593274388200910212865064827833764149315628714271613536050227143471438500746793231594824576506677881925742075877170211388672251116749239804078593924044184785474202696421954006399024159894727924551788676138133186718165652585583903705796198984654544430178969953131692898404806115134390827066876266579585713708974890149057674194820209857705770692877461360067551894194962986334537856831691369379680596956627420020839501900611874006426200520579788370955986651649978084548062894175284880309385297555915386279022104500085249942029865221482109064212347937340816976966687915491408944890353894842883439152234153862103633101014291251175962325372733456609773794623388804798297721566887500016932053448979478510487330962053607441672249931082598754325718841391788587363298041623585030024607487455135091624683145407853810913001118197629716595227691701937844116208356530523164644191784226376454018149452777948924220856301766014390007404216136544696948877173307939614966980550125700859474646571378822028202341685995109051829942037811487991890563263683531907109889895651624740181881370359311358737205811577038458331306021292896036547232052829229574778364825799537329834908666979161593708708376017411435217942268085505510173550991116237816068057256602814138975408151228468715973396658128112958509493528856248542033416976067591076565471139631043813729737743321570036283519598463756520727283997008616761732453658836644457200033697108229941380533729349758628264535534758817362077398184674012095992418182786864747081489530513520784399644890251839500181259554781431655295032875098879815857249357156746386507278714601379922322234907718035796222969688378562789012007031967083737950922969642520362375150835622597728327153783707125435732394622020554337264633643888585024021328925522247799550689314937163697572700488927656064119369819787391600804500475413899427962685333419605182399541082985418462181875959753501680619359796117935777975449385336760581520553919673228960762969612033727367908630919269561849585516769004757911547207847544986797905477873445805092901693326029958291021403182445672213451037430471587367781503158637650131343447956829638286141403979710211569457713165698653884012307915679708977553236268478966987230662399374165199733531997843489407553292734525891456688221923967848569908823730404774704478055318262951585708156389857169410680700336902329515983069847541690268588492728917419584913083423171919044784815437556907749903516889104575838556276123016523262477583114900817657700335656048777767765419042839418633628259951627889498789674363410860422730091927729849642367733378362023998281501524604544387422028209705126079605903700255845252824018004752207038075102359845774822973842954664012017518606064804000484417648654750875499572546314274203368142693513848143075892775510867402758413463832185668907583545888544687634261201511101179150145304933072780828225669214381543122418392242933242757895714542015586980756910792672759911552037126528506291890109013696794095817762373583785141821597058498247648178717735834635602915619512461348227366334706004927205684279365634255609211687411277844767557960191744281848595644916795118886126869830643175151136351802259297072583233478455006572078971010314220239032064120819570791761015926911591894664538003950893161088174160457659459249984347198329309471530124882593773907129038639961420562359350276652800273235131721096884620256759559753002084934086208251241901816745534830721949074085202561818018650503570131393080734084998021555784600868395227241746150499106495125669259391577772159662373529146219572061358326269694883983526347524151199532433098600822905572197727553697666097052528934271641075828087562089761938062959026703178356285763044056574182247511824638561812416397697619551144979930045101829983192131373258414975479433954078776863172162779447378994364701822249969502531374964066713413592980415156753487386381258806329992063253611619743088493679624616398680563871155018607555841637002418478064883561400585555106924676129563027430182654323563028691847088680118085599631091246824620433325334679431158631249113780401322041234593004112583441383884781572007874539029018504201909732273200958106301751098973051944985615678017070984601645554230853687717167751374878539445998204928736940836628446796273155300904771226510864099563259657460267598530376310514341985880383314627314275932081854596425025458782294677221584281622527471923093924810024768670595174089014306698161271683686693566249108315948341894887588680934039967190690181796857077025434199135217659366253865614820196024162613365712316675148240475687106755014304658108861688841722107776830700793323924524627658322787766929946428495844689248611696235592700906840579784923099811697859774603767418895226744237442281630960279607596930657334088330736471493383855572334856040739447779675140365488304105449117866324659499066313813157310934534726093661919306869851014242021112715874066931886367808085392284736980169165586348649991559074165807884306906305297058835531519244532080550275293550289456794681544843726042415340457887275277518811267049939057878655299128028292624298403440151864102251747273534995687527663527696972388723317038035935577696556720111602290228808745277848208246808476293091915076001958390161734857913499882296951456173841493969583472360061265381269288609934421351092505372747488354631664368786521163699361847450655036811529956775290522602810203358539147241952183952647308635439880986752738220375608722467950315602375018154624565297922963663743866989300278082108966646772706240275600277803652053142904752516058393645904430898448723643001269965794070848981224166216981375657560894452320446068940711106247600392854524881724462338747175528905495678887989670312481663702185584948996949960854354179106971569841303130074475339033678966771718485341369998788974537072239917149733131470035499333408583031409412366273956878437838722137418610663709565495647088680951611751091595662762574533991774670244334785929348223076895663852324634639788905194896991935807183742705346489177823564427372547221332291777324626392949885049619404976929775569872554934622443755450839394271965843677451343895793659007099145375079177813990065401095188779101017290532818856977081981323381860764772471707406781606146298918972770588290347734950924772373539686910732463336565504557611097481079114986708242383210002636273651576763115064910198750363423163607431803877617281699393105347913427956111935700581115879583949528260760171261499557869834506735129352285123620823594805781225691421301013217630438389112586805812299709040388630735305650635340244042519939000295732262577807072762531764745491885062853881879221482465723726730130310846082057554225715182265788085682849552837146449448806089488288411148011576040795548636944649579306830531615739907011164157645495216828454299289151312214148694168743807591921295298984673893818579703481006753552673050944399244750933084976356265813858948754756252835569035863326615252512454203521430931582695188188565919460939933922811788013607900693704107325049513091069182063930462117191199848586964410384632355109460119999892283617219539358123746747676859569765098305658890424842746035521220425852639200279192816850150952752357745846769513678165276783691914505702964898256310759011933413729227153106680892365845975778559497956879540234024721505615116661858860523987631192117434375790653418409739425672041586204002825078587659141198374370936189879155464239483752642254035637141340869761568060756292939899884817373725274632529056888083799236791974204067514110857217294447786123179615523168386475306450787285693169434763317436090075233064485064504357226704540038324560604269352041894321028798997089421727241639691310012735269761792412199679271328438216790110883367653733735336844478394155545873313928569626060950151075012962929603971989683221170562430175940834469896517629731179128996935792075937420269302598057533820168884597185898625253923491591803110168021615800876366679452306400652819592492154251263218344852681012722938052953836966057331045397338897627070539762789188933760282356619132722289298367703717573013015417689198783411978033256328776269921480323057393896625464466762700494578247654853890472221054608914655530816129720476113682041372231700267237509990287468219241169336560986698018102393471260395790236935591727034937878946262874395632965214963373204358081934470161674414973483347650437677905075496601913677005978714974407948452086732021904882558747114754100095872257577481334116294274741347337850764419157805770934231929521249260680551821002179124080296416268201767162788489116445582596870729651911308484635716617048453956555986936006134958450870924905449612264270472001180586706934897203253948594853846712157003237719098518901299519889433599911355643718271999948728023317573118208201537838507578139202206473433676663699638618816630948631481766738252628650224707917331947613738121759167950218562689123770225029850920659606248129974399981024347431017342686377942517907606807528899174929455745721678353616663608265560733351537761460587291408518909931139617595413241357165180159477316151493874388009363432921203587527458946474535032264613738160925762563682280941913150193819331973490994453026075422584596529566848624119612317411239469672861709864169661466110707101189279505084742353097882905330899369512414548527797155895187669608653799116158402792245223074934168858511968678933620408814780516891584376299984111322842687804614666186599505840681781049429084570429616957685934751617672005906860730126196556542787050589426910616666767693770366241838762216266750243293305787657363972797165339200562335818809426643977481205463006218710509420547970924067122987508300190545096944634905335375105137621554859003186465984479630663658476551157804910537860590062419737461505299986274328985104839764190435267573840672633322871239728397071116644257356801102953293158247445215558192687489315935555508784044563905223468658254860411955265218404816728488125029204999051895078868688948058714725499205639193004685928515895182884469567528739744829465435070447958067488752217650714003386383924261896193555639574054981780384809157201028259887769278109178233478531202397543504391411822946826413694554037149231874892368724792322350479555074697847255237221907047901285052463962709496805660498316870674623870976333749065098554168635591686040820420738875694010642207154149986768732620280443742293952153713432734379191009305746835875323333733913410598092777375239512727731292005337640603834338004871670803861089153760036396948840995987818511490523795496042534921712139171155256969610170967969666780650709368139710104988359121734058772368121788280688264698321206951536736309265791162859002227688767745580252659155690158373903764045145892269746256157374154027986284655788970254667880395756525030464708395778164066708085616180866930501907455051287376676541222269445114167653065496530949026050473900722440137470029337642034727534441412201346852404361174901448762431571056195012089038792818262114490800139644352083206879024566270011796254151619215377491547418147384733459922367301239409429867921428865641459536809260587681002050250761279415870815800966706422931610043721802296837222990673812047099010507420050989580328029339852976536925248494252927930131553507427757449930507030593073039636840611447346673427890524139001001132443322532950412542025260710448305006084526367855522119032049037446705400116665027132135563504210569447039569774253924894145004073877106198070437916981635669920138168344401946537415110160486458526678756781032388408881628186337242859336964118808526769935504093223588781765581124799541145984263471256916927342801256582132151811782680490167371778001944075046710056011538812747677656225412159667847872415824369434110916258773695939814998566064772121108191186481216963372601933873603391948384151007081592749209679290931272503585370948420293347669264113072981134241830610386614686743041457153294065174589699162155712826863104553298276631149933026805604128261426695741976505191788090376694129728525887790177539710627522253479850336589644527468119653876962114827474238927402878205415570752225905305587545986909020512761517524111657901793883120853646504033022347353781255719304301119793665042113594745129992208622769340524651135302600825932240616362515065182726682068148151653516247852857858206328833108376811600006124784241883187056802405660152456428844631081311485473021014969834707305454867508670307459247156638518046360325802746709299388414526586254553108739656333870716755067867541403706257518154048318712715817551382989887094769835023975843662947026990936353869147978089423994776556366425512368449725764831432531263562196678428932276774198294255062213589189051068046949815094030223250667951114650986891915811782124806123089748189088562663002060727387736444107690421208099778046897027700515228352478376955540922969443847372076297992333176827155740242512062092123320625338090579843142623246954551811378106013455767022620151345120909329257398805628375671375139143809338751974605368083763668347087456391444191636421568888831104862002666847089265997474358475649232277700103586794359704003708910415001749288093620026399873169201151755190010917174451154416397838913290764861535806588678588740497448417756650376073886441426263860221668499996762472432751924202858452876688068034223139332782732991052437531811112335184197072800198274670021584281666288586798303490644556111337476446239104440824465542771621190121438689913676271546458996680741578179281776980657437045531941396964400470836466530347499160895704473211880558309109995979479468228622772583592079723121205668218555120832734753201254977880816855391524769062732609248683707771294183141476060223462409222645582146309866355006348725210235703942684728552131293630462823143626387524667511362633899470313467067764259999316404212310890466474123684215012886277920766864818360661100160930262364361579268570742677445433843427350441933113416186264421311587195388230575822203247786944828630961136782802514551901872966686406691327270053958610179718399270344362732507740344829453464221669882140195564219941245029905233476908479475850590156399123747295970940983546069785144338775148421086717161096471287395589525218811936820679025341016085361834133689764359443137279929251820762479110536186282376107748310724793779322176114987821326304039404661549969253155305684496047358332819724702883132314039006134745776731022291822405847375800142667352191788071470946086854367671259716391649762932833915137360916643678093368441948074623739377826145247838902127004772320226691221497796774331068416068248808288100407066124048442195426226689030260092338030253258744611956280895160527608696498667483451551488588546714695718118134558779827695436428851965139522343716911398284488413024225188965191060264193695519490563945300566430925824684803280875453315540054899078883246032180877572313156951176075656218741977182208422608119332406951003640460528859174947787992418456571729621737132034495695294523493852485827039396075033222861974986905892269435360271222345546808393936272984331502865255833461647741529016525110905772767573160139973537880849752523875475297216405272411786513459336179299624382553598697450945214714092697314653796960436647288593237232938863806941332927860386169784658012859617625498645619617984902052930791400646084496553410267211577992500907067363160032690149487546758785284187855506002845138659457862521144275079028478112340377095835453808789576503725630938001801838730156551669996260172031666565317360482262566540726996664759652737159693206005100350014382091547600762346542883685456835808012122824652368574032638766772745506393595056749920616987677711794685135698271885065235242960792213972229075379220531186201799558944714561910677306169982864942058557626197762508378419367066706785490595852785414947728847039154235366266970193182476668210699632752791867158647947613185914072058178260807084461167854540332535335396220618585290035370867117465557674724545734344138477090718746046614377388395074646280909548622111141782152265955235042144447528491514398480436863443542904909401590586518205313556453744054139888844382026543540651424528776596074352118765358540621289588195998991546702398510734327370517375043580516871975071772421257010534239123728780381515225596126294673635727363797368262197021787122077293529567338009501870502380028185371059283606024773925209169851586662768669940474048894875313212192308183890893344193537088031363698609230566889462796711577623793723897114907701363002471088047271468180147802936651258831757135610073892314970642690444956483100897934190252216883533718447854266979620694401336751628765311963917362131816217988358224856049617967429187300817486069829508470754759449414951889771269395244358506109937783549005704920041781669479699757896690687682721527760639953251732261541825997528026496174661948853547120313172063808767749786513611467644520842706686157018067625310759237002497975734563314456052512218681204447943179546824814213774673443138438909523496382341071458556790052726289914033923305275040589124071283029281994445782976280555574175201357842467897113477893022842205210191007260461304654627636250428167147462710783919365808326699478412538911166538114225740187161106440094469361437976982152771412476662981710182315744136725098101395903542889988659770730188518916328482274164102344483464986960762567595978998782740242373269252387459741649608392166058168125039585163394947140552075925748126965349406686146696964593296431777846271223892753037325140763304159132642422026852887749918629381795854071084142014030453315606314536247260681579251871759673841864997484995545789278060429480663055075448948385911955903203581609450817741872412479844380945104185167346087755059678943597262156978715417723066357863101597325626209611437016766430487358571932309115753625781594531762109738024123695753635530908479289755333874341932205391255407789908744181986414315188836200593825658720758745157959948211456258320452522502133909081731975162691363861733749734263362999571565695355106574246585975005188609262701065905562978525212938087481549232110053253072736763304713907509307217755920798693529873503730736133165994783575087163188452070794577677920215614831322029761481030895774239330027851775840583910693480496603332803484463471070917719408746266980871214185630533075425919096161324862357942650577877316778966186401630692074509602793280720414155768200586804631424910259085969916441874917303054301256329313189957166749256118325699878771261770736457481300242166309701134315143342762349168243251188573242089792263115062901034329217126504117025075244973522329281617191130291622765406169216579319335397242638102655861182229536579670766270950087222947169753448630021826067569618067401324095259052362622566675027232320564772818082941674939572944354391874779131378972238320136300274817965776238547858604969561798331655335694717923945555321850714304073950463754539649784196008450101702521549011300653542147705879102350178830183828297578138947753628651911957849184641125468560357728423942907930661755811045634004558318208193839626428940371127674984577776335131389023367104632717351264021561783739166026899274163185320338832148232278066770635095974420335953614825993184278822824702742923827358776959621677390002556040404892825122122591649647582840305701461461357527443206845484318678655425493474587756456252058732824303282630491224981871638361538826402010703449601935677759445894314735535777075733634927765370965467293670314483214751780153347803507775508892482925705056968500291234648268872583874546323919387728584403881199612798493588978288307291968778272526084840854455253310893486539280028668851240867673593406910591016293124233328150672527134038665738367884983996377276318866760091246644355852832769610433947089065658306671292447904990860592114970439517545304017887908662151808195188748676813039844700939842113997647495972873985334132226195061878067249194885982419026585309714545292680870824716549540596214877308932861262943812781969493280338419157563776424282844186037167130746959956837783253719611042971941763772164681146824983938249782331364998371471919439494444191311777304245947827037555915022284731887691521234201730460963276966680737116231736159828744563626615291734567190188013710369959585669808923679000100804838961018558786252711310043025871996415987768147687613986168080427895834982933944863272003888032631679107542624819024910093692353933758101488831184817181968093733656678256512622717632419771709575692426719879452886093433492206934154223505422295175802457482681606407553937419167773310074379341814084383989854851782907671831791111731162836196819800922212482780110813121675729682053999080653686453687343132345245039203699314174200347231702962867511434732704593594717089314831754081526893166187546207303073735591081936038870395749715752780457857402932857180055213807441657981334302952658436222941410970238789202018960374360708541010975020368930529113527566801911583270517805714953558103200583239897276621375625299928310322855279957774069231033538062083144144575099628982038148289762563992164002415099996648889252337182530254786370629394650707039634002150472314046873204775389480839794987031396209597561301265968125144689721391160734671479515804591315050116458761955829809965301078236733808229949621948802817217043885394898771332174030387197732770085761847659267894323286917269960643015734050178876509522710871693252217857619960076706329726883852413726674120095858855986756430340413582599809254864278582365675341979910438916681803002119775288944372575799527494922082123667625554214186797868847831075741697806699904503495953170832380561856512081164459782753848204534728920869334686994058723278732279855755915064467816833200840777451395098945769067842507283418440000629837751979354107069730975511662533251392863845494011639443159619566392970148563470679319604373178171890573587873699345654763883964066513071512632625966649395627668258684331609430297036557420993020478422666149765524121425284676866113446147732870758230074886682692006473725391743738691252330829077777192701081829954768320514220985885755335783374808547267327798071633798772523359917742017084685636364061300593706048792173130447079722774971084362511181058665057944938677142642667588192001105895576837743429023925477746019429365165146711857986344093926123362295413822912741405761137281925556990746170981156207007456251523943433706281915684255253237607587405980994471159337296076244332576043675974139274451355179350840431225267722858471285146148802480725502054633631768086449103532431146423026759259979592426680582930700881917313191458601996696535639862367894747112570771275570922623566871142858734971017899893536182158592423708216469593739417296850124690747433323965924194216537869023495315282228107263579017783785821769456659766537584561445308113391782448499375995482064162958139570511559813285771990731803248402271633361644088463185255633301269482266901967916210535480099314945671326905523677671096642530718555754070319941876483130301474169579779471323559601899165525956152068778405172595868434091508694824312368228217794771451252410950042865801077951323816414262167006422594958937164502662917433616436908647596805668902971511918406085300784034887418881134130582043717399284093535132131513339061152189433406400763343955428721130352334081409515021791425795988815816846128840562116849431604012978195976920279623572859535413411263612599645188644744997067264442944315983703400223253681708737786357503522941512484108188657841625074694003590632451033155574537513652759378334919761971677958660620668628310465719569586973988563280614185963061158956843637685262292896348096184949650479937357042355530893283103362070271963030792285788593100511619243945961962143780877353967127848405853661115535272142683279134712620628237910686791800612747068754482310986825062152426125018830348121500374582958750396350596917744776465251330371260156164432840035431605708071550257188147177147193395917480818566858129275243089753462386344654116471217711397196550819517207551605147953500936497131790273344674891927104684307066658856331425465978214918569152016686698967594788460937976511547234483825665444524784935655290223901039149573970290372119973141782719444461554745175162786035215217807983109586712142901313230370600334873515612066203065600119468307806048503428129201905340253865569240390020656222738094513798747968531215113553838558565472064796603766014228704520298136356511461871587928640658333433271050924750761396138405186966983730721157053381234523895417560487138739178587326904290986417694739879314820851853655186670283011988580437630143573743371236964236030141262354262065185007612080455638823246331876207229059439462770307744686805356656591865369699442808020191510314080432262495694834214920691069546392067277017994493217757198629515613973496387390341914477748766725263748550342443970563062636648603064724402898848757170540357374699705562854648119041455460921919387406446903125773224319341743991867229031552386965465612176821093739656826355909498958109918137851855571087713471734622759412371250403793432147202291464211018301645699425377685754683428981860464559268620982869299230466410009767939473455704923263339675847629291852778272480995485101420878120948842625593931895344770935486475756189613497129958621020809214508262788335593891020388323918023334002575277867573658528572929131102760938115770071312799584027913953058985276432088745832856695668529911562706297030890480799673980730501836856917807424360845066938523731286275174860415666296883487365292745591334691484528353481482354805054928741217036882975395762935220897484111154969563571534436218903619366308844120866453100210758252617361995238695489089638252265503098819107385293473325031405151791111893985876710052842982997694165709951358270466417815890540486952770450629226918234227433928618511227497583342073951829603752583703560419400200481208083517544947716490251040361939510082252987707528801525109226755778246062073133284478248758034941907052567057642509914352952839752657494419934469738577093131781073659929347559295425719981991897253956557137986445251714125846472992538609696570609010727478384593894485863453622621187547018019438481768588419446510098792031004997154763448612078803919121733273379775897248689610062793282322068326349435401399905581363479501213001659967156060793300800560978497375635970430929200587584991067475159875427412551119179966441619442691053340290116057839667097933094185987359666753111966326788536358880284423972621306841387756492026937729428510342828480311146521068908542176027185229451740047921506663399112089013140417234206657599108169854343951449771786567514552814496294629725347774471058788207487677553998691817374535478707605037238618485936704414331191215798369861381446663570140639995915548037266839841808401915032223779865269207204493800898665412302610681842286326423765622233856545163027090080427423912577911910419510863313027397569538756592446424466860728779646077768162486617222290108369438117703281750910330263011258994621161712412672222636073314838886382732100261221475302179744487685944995056246387177340082470728655750581997914568474931888563114406095881816222703266389584580913472542915990189060489115331455791332982923300916834028745110298532001480894021421518768044539912308730736977523757863637558976100626771629086248714782890624242953876186153153076479996423022408236297913355497016284374882536815613567188056088563293976196653064313034127766524307524926549840752637366624947581135139200176444398052168168418734791499780192039170757568972009139995626647439272728958262230798302272067154637872453068203059429146567168957256539165474230913541161486849986604366875763140282988284718034956353708797206120758811713817973420835414160214726730689064092678094962301877561311364571524497975758977028419268901222342208262066550656048243534922124410853990138205191215007374026238802191316435956116910578656050969065703805887067609564025078832358218907896291207437585854737053150824839287279382251091233039352634006865309247870877998617223973688508746080058418375884790633692510861457984003667470457099250182494463140947958459925429367962951522678435516718340855578654802611179020287006302231929132826384519705179401506154762570000718843218339631059531303353270789153593808090163805517546531317354779680218476522112958193403803336613249640618267668723800157560763776978333389529474993738096368057367731870660443069785406006034703186502678819748207813824482017117208099218613865864628482915327026084946701357185352081704430185519691177053281882791586844298261120166678994378857321739644222035315201748610743886797521660989389771008918035285307469740804347972775593275651460508614180183432182203441484353818881027953022916069563798135823454485176584892174394477300270343703747551017865412786099270665906254643131848440393855807982322089252807628341828917840090231367969565680060865008912429749245507765181802151485451010603354938872683481061030029178394987359291917172791987729663429193687245740680545632080506752013010279545531346730241392747986438414529175700422411837251163671263219970795569931955548990744645848192387586631747119136272143401406729598654736258167749772249332125145518856557873822650990018235439300590491984417688152755593536969386992782945792993068252738379127512004613677720018885629629145950029136751989156504713093974755865689912442485424190866271597417145717149904534112342745893525629576812832543355052970393078062006453324445061201052324777675333076363269781513116937743445850744026127419647134792143866899262960059746553050599553137118411169773316102033113189119951588050843369809768987399344264200881845134283132381379220983088872470789818452792336135263238075871348753007193612737218873247176381559995765413213839494096835864310037918277289028251149850956932330535852263787066894927600934881477369750812736030740287982800216801563616875526535560289761352733604175544032658890107483206847988496889894815332283003828836341464739189114100989074168893637496452574920592865245249310743420096887167233544899740620161691597583114202862394351127396024434027614433346180890196412681602571840379989632317348258423769792955668197139072021174488181779988473834467897604170026912951428980226685828282531751138114278871726441430589755727950256104402431250866166311166006830675512443316939095998828214852967680324785703943306128288295341109050054734723846407195035578445632510358205798600360483081482994049593325310998024554922939014431849052778536616247951382686090413192977901875149965105370412241927558784092017154306438614515241182583739342469565207562515526029263964392289888335299586502695621471873473661819704529385666653107041736026108149765074960657240867559135194309785764412439537990901018763014181816558093442963182750735162514964029529975519714084095519266333282279953070567749160239719378995116762543188845767484285003241128001283798418240156959116397222802122275962690306688988994768047056404375909517313341097879889652370029322902371597047303149886648329870510810545237047101969741207378152270057558662613338715292862212224217768321764372452808450428332819674234264628024756836757076503159536487545711649941533524837312142086842852138274142510252898691011541329704860871014733323320587033749260516067339491723491382360712529003162009127214789383285526040030469321869254310942306250693157850642192123032779066437300475070806815933933942052155192453538732562637807216266374222387056295174617653748709858630971731957771902798951804960879523987307720844951974450489676088632629263992208849940609896954932658866765743173315107908056755625550610664457188414231928476400280560958778957679095006228780397218209965782003401563131620480680396707212800389521999193741334378684246489317027038328815793470923187208733679427867459223138681507079851202805145624618686814355733402959666899892552144898322291129623044552332951824717901977719172238473666756817144860972875837749431823355204978573772356132094283397437610275438250959314464914611203668671661801438842987909177473915999240216170884247117975145279729856781689806927575199830104861808975462807811648051357200691789340303657687967998789291026615882829471541805905318115338823742693811642602165877416462081965972007235821981500650661761736350930994308158904154204019250777012929506624048046289179855586087455504032331484251354290029947182934462754283166250366021900321732336263088941960558780414563128446363274421944673926100256702514319968895721948971863725786149890897372539855296679607573145825803732185129291004197877886179194254486419659190290713989659309330364560803431098869185277813182802143838915079682410586196812445846443844662194487692238588665357758651885618105878675940590113943064968972975547489896515485119868784509086652954223327283219192326929381799452110738436644334205703408091282577998331911730151683968769812600721319548807780644929864955621619272115679428310397949657506763440542656785237760991926456054889679183357101597152936884037411663803468212603978485285602726094218520016300726502217565616116510604906823905690962357832733946502531359379875095438127412691631028684437946602627274603132455792234696271863236239675148350522902778457457635160311046855338190543424819345965985643387770412983254684853462707217030178108198074199728930129300975013630252760550426150555306674596455313684056940147462427701436763299181875966048157377750389753368117150331365866771213106533765703554381020931929043577240190237846432523475428352652067157711452116429389390224565683383030332093486808556634869736866795691523998221140046871118454805517767669244663917023266364215177480024538398249516456884891751192836791125525770293400673280499317084587284463817017981634655645054621858411547749926664936895026496732703535272550960035276520926257455765865293066707859915251246478676133009936059034353636449714335480451900262873487206972679371854852472585101212851123828260867114965302079331688373256651748024157941035448296791976227309107511450114850129364921117767280644693715089828829401955897421821101829926820449553963295663446640654002592924737235937186440302878310867411870819404568916820966103958540609339442918079270756100121032619287510943934737078550712857824382535754309570340544868016854097362069977932342542299909341628142812859340034065064364186599435375859883817855363024769484811523715257752228091726128537328633507763255015794596354874340478626966586404095427678081000754729044204158440787007494755232405571211099800217493692874889246384154729533439712991925522037945683860988259824096879744123848824960475009796183347844316120073372191960936530629864482290566070891217607954421006958958409097829841714609214681839870494873385074936636926438191707291577324336162599763273908250629781727572348941198233920919006607008920920696197117381639333300012351295020267884426403602701494659067518258491542388929186519139550580930774058398919786283354054151025602119246171363897185776224636313789758220676124805187841172567711015629212245355171624329746568529283226774138551167166760324841843531568668829903811904965791556559033069235228234455811315506872086547316785410668173260176152165100602836766141449305520169505501497375307277021784672751015149771828752077648749152336603751595246951746057313990995055404971658598321782481183013172181059113694260073523898656928680007817711571840591541574471465502143163946589094549590035670316433953586557703233749072036031946177676348867298924028709450303668044252396871522777586305146074208480447704220894856689005429245098343139424590500613327734400275168340726914503353520915964120524053324938515689230061726952330892448306160007052872469163512599075594535211146096490678741876758986285216885763787949500555572272551613486267660021317829820174226275340472908242054744687632903258665847304750462081138125258850907794703765667808804107153257156720564401939891625500685111901399444013481753241523084881416303927347738869450615714408025847210514695388695427534796343917400515959044114625918897804539805279103326356719529399361405397482642044951284610485698555742165001186757218158516293038866316948661136726327507391762061048981002857819760459661370621920382413659958075211122357627529882587974072300053598426643291729355552981052999575849526511227404685754674888655268603875124675805792709159499305393481178065346377709377515300761524384243473404073191700380962347435228858926081990749148419340631431832256328946621112622766469363308070520177123799762153494609978967387092189277773011240586184442265953717303362603922215917214482826162506853602540865054074648793401944094446764555019581259112720686260470102197949940699291075890011100359395604543452759213461763145253914476787361350928181359298399603020366378026875565158371986897654310873447551210579299638456914899726903855812867456809776430443989177137626450147423515347449026615654677104185627019372331182363570489580632717259787552087544005566035479118935986997365966918033992765011679733568969144087608732734596595563189349084009575959635976436587309680263362220600508734246049036743223064451267671270721378970539791185748653365453222001909314699199913758700931403309589372020999769051223592383609770772004580561582422123867090412446247478129861268182947436335335404816888232064847815814718233551486799834748267851014445477639147707362098536149015112767530516907487039221866374829781370557650721688627809889087780841529405766592168574733471057126157809693500300363668279684755218734512992153966577696042149668729694708651280518327963556092769797966129018818478193810529856113996795881988675893780117306475744775600449019800579319281828606146301353426796319991813681860699254520687500306720200956553991834554308920768328258315415081123926431712276468135870417795248046602526147691515782665088898402815688922497327259939341750818156880301996401678317007985397033396796170631190413192600927659964612038921315840057147339086970783113835524253919452409334649066921398607932883696297460200398759657742691228885956196688863297834492877390846226014980396485203911945747192743676921326108066009826489256401349920022647728325204145451155522670877671642371836513342027641847417362000858231828543538325418232943912037094691996316711097749304505180238006096531856827045249113787379386033040232797099491309273479394957994717148233043695900108684002106273535691869015652292501185595027877288766743772911963014881083475172047178854060088996453306845757386875197225850840843235082907472660683456090334961936528292023953748735026120062003449146074163709723016526784263031320864269180297935824658425531841606965685633746097196768724606188415142796797627810401471580801913173565066238916941274357410840067272399104060802271597036063904697242911974007433175199542440864163428626248682659521726291205834020950452120266236674003509300959734193227883841664486180759602420501786469219087525799860067648980156346192371183832612373774087632608820758902637436364310578008198600421673221958107796511919419030882932671147306790649703255187282237869155139263695685622397268299349999584642218146750886112557690877923503328913960843096580560763373000427146820771390711938594579018831838502089998402174633782936542525145021353076110309917186191890354007894619832162998123249403228910166873366981916916496664153360492281233652358282495155664586165131906590702150305156961001723568386343131664645378559888275268141427502239582121661211681345144390291018048212591220135295571731327638942572369490295445440318205826691493105922797548938501708980744511524819098196722135038993303728284808085777867825927278385097448563989670797352203875518710417571664938417424162807945540778230258307546179111476745223527995686696357158012523604101266217771995589889846191087397671106933353946738748672903621570871795829038814637887535698531796282535161007085978522268839445347595498922906591789735579510134388613205898040072495526729086998604990277582661061484471507761337377900961147936811974425572162966712066141555357557473828327361124191554801522508887469014813296786746214723935421821610075930019911870196148643242408969574048213489993303095584785115651937142503026029629118861699330989406244095683765813622148740481045263483928001000654086084328138191435527589808496641290739496833633689904587601832235596032821739840748234549286266484422932507966596098832855479630999079924044798648759271130404771258697849163307321667476501017174108980483255715583542723872134600244607902100436559019239738866509814668200088671341787598082497671540297325550890737913706878918799033415783397472827430873896445541430477108541227803940245335967163178920703962153283151511824713865154543789452531437069949559702169170682850535633061180748847219535204579119139328705813560837555904168534280499148737394929088119071876722831965072476813418506953160440616798276644461680250360737364440117328480336949910933530089540387643362289329616661602080548895365100376878427327724985852701220181374591432934103966221160118902365694341401955237213287209741395266796586454297915600507761989607424397494364441330012741349812231150481893439290483011347842907812992275475625734676066286393807009086023396427863046310377067193091405685925488864504778498188477544733112445790963769705615084937806563774900883334278038006527394527389219587423996761181449869902100458004015033173199903674177536514603320031402434814582084117521170545725720055380320119172592799961525807990190290209055452176909912840319368716767774098848225693114089667988740265840290614150862903254935980867631197150514216485166809509573258250813555650299325029240135594776876483467674888678877893846889478093674300839630791409651649402277459545695754306545077022924649774282227362340806489004124927084558373614796131592222322960486756607279799347582097674173472083817447902209469152000977000692588063608208706730406201347579452167306038722194077114587465735733041116557107311485791361985914247539627511637680948365738242071187239281061386047012138434926600825348689563419490337198815758584708150955954264126963596278250639620688253964928371485746759732137688650495163264640797574306207518277178150067896564165972184150302534461600194328416053589246769590603154641213903981915992868393385463767269989534059376254141436361857885321346641450363822800196586741375379038576176397963859257377706273562522494406866543217290407731043653293822039264564792552924626122535261760244413243168868109426445507050981976468994175901050777611465119723048246759334246816937069721933477129145761816227483911406240479540684805697303205902979562255239718056510693402205263786711649026922412033651912184337217714717602763230158835080361219093792517399347449526548182765583249747974896198963354787415699842041962367117784024589831299529953000722036533867730460750181388898466139930944927372088568486793313307450527466707236857792342108870221067127166744908945749347898824206915751025193833137929115591156932633621284295458445728039577396920336296058793599802377513056929737417751008004938069663748492756600401923193673278969039485053802755323839621111623213854730527522312555158103679009668380735010547021102867490112568211229240342274881934491376212905885087873110434395186235684661206833571036574980451659202840380602170327518826259778453211168829125469407294771783343309471320501661442251941458560862017237750525647324498090838195507634087844253256035228090175030070366440542292924302034445418119032302771107978289313131697890314069648555127596769640753208788154962962553057389618584364528170188910443628376017250534034893724731023129495039949856002342178028311482027553329693052992294714075665447006531045012512749906516200774586588472323459091853839384794575197655217570754760892749466510012350569764491032744425027739710327595890265414673108081569317328364035342386067730246932683887595831569124740526117588892248180224819883024098769132864470002231270459393383009967578567369987812950823906049469566348741732944749584273966792548806461714193516790360213900714500934432341960666233035783501144871176247751099431060020085361439766484288728418401646556017328043450306893560779536091126205469811964777302254788007643579790095883813895781048302200949351712583345896472866683943251699870771893560040682214168579725541209195136934346631280192828793205143778632927602069933202251715751201358728466504966936815677936634650368409185892088116374919134560452057310266194059559819948608703193329684357753436945238235829790778168077785915911406422610811269728339838081244398082701698200778171774216840583702500422310560340349996073545552213221970608793820627709676848410834445299784636128799044164596350899958718377978293286535217860921491024483200325711523434304649728874478967386163864268344477794602215040540363212933129408332570192117112650265196811644229233635422312621519818942858014070060844379744157651696021560544179625201295877736628970576394266921522929158583621599047659631297865369693245453516347406605565334089882316044280832659702975987345239080809916589976873653093662664305055338114078958847940450688124439026007016015728513629346440919736483988112006507693240397932095110901264089621318863300671811582400640894395971557282529435904713610619588562586382930962798561893361556006540624630508715976065010709761353716038924891090828961482233756798978380674986233992866568822045593236318814622828950049697521473630902072387057737093758923467879042518539969431342702082268103314997152250187928718076715383049924798709323151302790605276998383089672290209462149262770513036190676232885828836911411239806364463214118460273826723750269384226134554723096477682702782719293161203698638685134468647075704801002676911462136403839129093527034870468944170026106647496225659718935303116354246548608138268778837079054638112692597409266051756881223760259386394647641971303640464571946170427367887987974510961884761856433673180106171814681210403145901368162249879103438647763338836495139212821427670954555367624269808324982867131709015195315517886003173739513496355910656100238893487114715865267973271062873388973954286543920858737599757394865254902977793487853021257113307513008507288301754268421923587238735269431044939474835088843319345985692811405943672092981491544207847678105450106521917831480193217375223337847667632315693310285115718675703736294639373765499096629346817533923700629658391764457122451755055491671186531009597505094207907660802103236068491153227831929500789723924977498504454211340139547442173103570183196131383955979682322916825613408033952495443496063940196352232508190834432690477077724951419542280932186955266729292056889433960220404147983519817193926591016280967597050980916643943802112992727686006649708893619489911337874690441243164846559335753138535320722390984472343368443070733334755282178231547018561197777882441844145492695945760932415406148639928888122590836061189026267249750722188859065374457923425651783001670547990282262834148585376987074389826380767434081974814324731983643505077023359198219909603455776737486546715943049429699425748630416043654096653355325431142301642313153056717300710326970149140888864048860121110397426967114988072616014894094155876818230835217514772518174760212862702067264718799044366363558754746210427120379196102600877984938403548763091236338662313961559772270050910795595693724068646412818727869329875755973127436122610649447379743495389619704506014784823847216446226774070654113901888925180205139587623300162626550917499493266518094720397452287845057877216381618582452183543595500296945655687850676520954808230452928646534703013002783581838574329159607291358625757971041648567225484904440981756067475986938361955755730751560670572798844674515596324765868660149854596385939297746641215237165333597204089410281594516124896114830621732388157667766262847627925020174975754358044098305877424556013840988952494151215274878106077000634179782443524864711278615045401313005395498823616047756212728469379446304520005950054184863401227319900310865397398311701813023412843791537937628479601014989265290535527639792047447085745861355078585846885754639466229120115714196988752953523889245405082488673298574910967990655703078302029904938811836451977639695866958797158878068098895831079439278565117207694850398569523913666159601337110620312330430853795915434318126124125130720835518601662154599250299301301795141946181643764309814671641413377235759448854499577455778583855388385286221373417259184805743083312547726938707144091873907824864551330232785398371162919001459173065973424114581114419023152293920164725125079128182665178277624080557510187000128912299463093325288158297774955953451943889751113538075492206814891785678751248045202870492439250676286116216098837554807389996154777771316215949830787459799175384336163318915357724595614111322384033142373040463490334328152630696990848064519401716150143762551214910811082070476082659242407516742795569538525276912011021395465363897867993222173097069036437629658323836774747033038751676624771677577266310157382899599172420935724258640335262130511908018851604794584448930632511065805846989726121841916828126381904182214396538382573891797452777502338251525965367467633490964507396358248667408997690631570823855522079734484298989160444869645281985267639898216223536159974220037579214029572925357644025462759462599310695364935168675107940364884103266829693227255029905518329089552093623081168169522802981356409051571511324222798822941439848618984954370674704185826553089967107968766051945248147938898411437525332279041442792196539872539318982559392439570499156107564526861099965494692738747109981266093454522261859507136093705879076162079594022057638992160556831440864815579216033649615510880526890360301203424002407420158174769521220653588646069942387597834135589456064179807374916469473380142680127037747878109810894704861084539047108261408309895021400658950564075852891069647954195488786153965332798986654197565536172164170903183113720228112357952687099580186628941889350138376202057820556300530721602541836488058065480731645826056487918434906216273999450456818463708264033987807885626322322566604634697297934238672913477051474064267113524894011543350705684288331790632020797647132772694838889236578562950773022607103110233784539755393558002664940068630042989230301902177373312338442862221687725953310982124056636004174669537030951460129674654578519338246643756027638229780871015976993299081049085817760218082541678558591470621750213831870311951189139024413619894528595263722250034664541006301780397875906654196035412482597418122843758856009552604946418957325270720568230133013773343102525597208065985680849592330635135134659931728931919489783606193402018857186458922430685241435759394026346618116318312427206474522071650730585023264586796531914498888346495279511295744985083627792108662156651266598661388804367078609514234480176517468600982422678091543732761463899382161036209234369785557445892565789209613953066342318348448952947183635624373594139650491532502836870259704585841952133474164694861400329860845178480467473682381402673631960048298592870167429827540359315232235487094044623657918850632305758445649420269078122635841505334638167840498076951091174206177945254921724373581809376063514684236061508796142418251401140258846586119994328373979574609033123112750365367272317649859016440098722570840772040696034353866115603137429360993584715485958833560673671848801465729847867475919963218230653184901914695361254755457746722510032238246469874852228160741282792571342377647606442631049476056384388953793081073681751965122046616604175174860011028269452433980008522443766356710551627296564988028945934369878315265414263608110389322885684300375798217908174786941268737420575290907924220108400276570333052943455372313298095125954499047071197172409994561051232023669293043484397628950906225530839754305816017133994172771046874124378278907261241894731285415183446344864577925748771231063739256028851296916431013827012970413883236575327074410827344305927125530459250165240671537768526867619852535295013746029497439382828196604751998837834272275347078004022217783321542989014949045769291407783644693002004754013793224343018327973369356258812854769546672585897144292226715077195500643917195594116110613619475580880103220673362375804991414033146281805326031901072654630394876362695579595701156405436740739611723793384473940387004795155644445816962780269954495354292923133288881564129550909710078610924387613706631860143220268360220079972169214614473913683300393927661583088845254215387398009271306872659699389820184244703327749592539105457647773720063186994491772334101059804898475276227490068147425460395703159326795875782603895065175742635457756732807187900107535233687239103146887156097925552161375541908807383443903308299021233602165935990389544245933988767273472512445832229002821304250350034977990024997492856031122871808345625204726311580703351964577429934895295692072579953616450642948588748287690283840264698590748930959291085443798310350607527952027730746773077210321108056600110438991720428298285151410050418980029718119755466246982217995376561007320361850855421328096668057940954668441383790682375176374385364969599609882068558752029082384352388679810802768908305932553720494297752205104426173358324094488030462371675837059865782147749385873117814304735135821058568498425457678588886214505908247297743573288601013785965370465493201966136338210791276971883812068137826433770197543144142496605295454317254451274415672815459957631146318946372486514400623618708429173054630823995871285573040213025626376734088596076624496176226538819460575392134866987090170464521083768963367070394766650965533377588222759287125846381308597922145878956525115670886711442140754129516717497019610700054915450440217999578327787272755997015188969275255746495717963490028279433939598024281425591026269230666754868365944928691047822367225518302326472375115300853062717270077382211916422828758738263122386996750019677686038311072161391675046285422723291310092387458717158595641544308098866639416463146779827011643270410193173740977701713786119189257642470652289907501999244649554803647765168426433540733035277832840776289048312999008291528558822153099590999985840653159202017307347039728257639592619291176719615352510513263208874040539982406472281560530438331578600051299659508279167181612184438980340935111987401060547386553795893073956146555905986479114530611737598903848028416446708206903955047834449528153867929731676726844944084972885603067762618517194324436795566960546670782008950561043581357500201632053504569661541377976949103057693825136814666723076418658355325426611717979413031114481061470745856925088784178428988069296917690079995260867461232691814002881823316957364546849604151801209664433604475703473733384004045854694813143488578100588225567517527490396378953204383913780557249345811368096412672307567537552626210861411177693366670226888240012686274866417263942093595079198094244173399707738646830751897369767363409088779551616065613149156035236508120545498582930992109019532349591132042030707396203588822323751096454527148159054163840858357919907743501701584714224626217648718572669216494544836553926707807685999121112504721517148790003718387869858357496294610648080872373833571115888507904778206313586420989596363845047495181297394502675864094228994566962683605745059897382530676024968145349177187824239666775131815780665547590592366166331270688876757942741943674388576347588247742693637152093912156645948709470123466042345134913947127299154370190122625974275360671026354430246177780292976403678954398138214908434433454583903914031540922569335628187453170234255721376386094067539405947163659855619854567539099281288441942299014806286146104679590626606437597450260385553432813618342216750218192087900791031064378862983835450036853386989232311211280888268762709432958674099147490054839123702975726259536339332209940612785245421426132290625344635843893050361694420059588972057228144602826037567450522852614172444336997889852816037377444885446321584786226355419275587015921127937383828220310013344439689323157867572861234361269040828529992084130504846829304744476489876244103787806445521813052834651751077773290735449114545755613581257953550291466703075175702816366885687638018829597645208005392207531593282557296435302057626384365869269106294366233366154578274149440783146591119915612184165669135277775837045843133581867134655103262001250807940631986876400381335579694961548186195344495026208744570575982708555721923885110893333835604131077633339455838771960106474923837698944210077415423387127090020756384194116941533343926835931859859076352474373656628218026211494488995456208393365950818213587932217930499273342875194097056695237453693086301913843812944716085261818623275366255454217109617646627348141850900901136430976782193395644721128853854441797594020460935006904358334290640576137420102663187664111667600236631405069187544731448060315004567403086276013346859966062989296086955645147117935867690957702806380663145313486692696001324047774764267207210111458455090257961371702614725100786129362174863575973352676638588982678107653397472554718962891557702153123749187633694980035373497346598175957267170373056026877571697231947260909394887129234138264988246947641124889599741619478021598260932713069685380035305622131334986351120409213801689481032685234468708272801364614293953465343186778179055469035239715917106174673345790259555372623504419909531263358350255467258335744242835987467716543767221448030561226709681187145393631749593996622305295852303539333309117103490941485961686052691625791336305303989246044359059321919998438472224201855688840648903737497102061556633574729929093872797295688390767445798940297367912160207310801963714267223721745429514933052538791190168811745677164201535029288740626557715748504275948288169384112404750439678120354525959464687369885642225340702854491291734800036190863851750314595819578843522588995331769823627658966615126949672304178485404229740684540353597801308496220347787530341566139838148508823967624556141278708246392430300055569082311420075798740589103611873430988668092411279098215437581948439325712663328350272926975237082525763447925550755856174822045819644156967479788473973177149597581833722352591040229772003968845571395607691588294117314282662337417918979488887433076722796211078129994686408284670624777855754740631257310253550954610055313592742007325583891134296265216389270032728486080846910935807801899816034741637296963325525386907471133011887551062516365054947671070596436949646895238072179589117842960194341026577390853082194793612396995529774627892320793519926108966060669102905707174169522018794495822436596459841869367451838377469067161670474269383096667785627365280903943470266477192150440356788877724741184656555281713275103182736371247922839340858637523315186545716466282916635715778837649970356484687324893124530968634177863444537533519009580590532023342311635610123294553155641222817588849691062636518838366373898892404285507091553665326177984232580311787039590736065130145187459531730892134663060825846254857315217331323358162002009128824914037135838910379033589491569604675244203261267346112543688002216567205210613350913990801297385057556237530403654563613022960629076223331778000109693249326335844132488592006075779644416125791699600492284468645016708006551234794719804703522325465622008415339782752223290397197358520502248369825678206857567974112297539310632323118759462117885903530311110190509758003504741361736733939611534831395768584236467930955474024331137181269195909763667153828070899780181319614763605169482745853993396514675454457394202443181724639633593458674050950249637827342052652889500284795317924973106965469052755781637240474056741187669798869818333543763519459418605667727895299257025206562098163099119019055941686269378460357217602172756113450162281007442117845266236597824293021986857499015025168521937251598791445501452126365768052419192367813407293691769070864890399483834192778976345347032910084976073117069192900746447967446390027382921058286332857899229154837297245278953743516428850836176167103761687714509824211849159930043652377629755376882347075543959560984897680836363808020046175428550022580251874100365422618817306844731276419431091144052336942858631972264831902627389209703231670088735018568686587090284747098975520013476745920177549170759789618842117114265821744210366391455117646868327235300106192911799521668388661620953553612036584493974954337921910090486290531210373219987979841661835717812366149774083389743316003050425518978546382071239802835265706504387994572605012568872408573270517637194938189163675757686306160493906199218765728609897463779779746418129069176091185209241050984014155306426159624248515255905868638475672280440002460675193606196188341769315838202572522385093672359600355350353158956779321125921935613787888403372186621922261696784381190978362025215096031289121575515623344105535237394956956324818338584513104858635892631017860795433760134499636697616941432426864375908305231952928012691715680558480137242688986010856391347423484064914835968471968645412695083604825790837276266009569757109923958035572054073081485886371338418298004919351297954782157196153852570317339494137495526078122626937860992332054227101485332938338468262170842570652097638438716400070383159011095348277762321442654569699778485678099218247547943068847490150739900671628938828003550980504199775819262406719764070876944568458518858425043521539691041145033420019444580471555036939287160486351063821298005261560177497304411674582895011271378845831865406150931669771854176103380923524518800317513150634565189047135277396522708781858143658997874198541268446427550894697217656108081379849072229076151869986939591576432341371016846497713769281482435837839299861688894569685765188263604894910085744335799859694244068725186815911067351348273004941576157937640456327986997351259857598153838784461315887017211144162387497833458456665089795186215566864184438288186879520283908360538799148561549239682344385980335909161068449527690704022093906244343228917930514224844964479968820584149896826122289166530027442309488134483280653900753374947319828224433733420069415974309206898741203041111102039625906610850170980760872562758751125343061104811734407461826986117609450101521584174175814639279761720845616270274479582901268090901733313952411876051185598757592144601227739569211006058708925271684658013862657106824707023332825368475343252613612943543131741995854816605649571385712699345878224732482136383509123692609175697929201144126058091880124006509737994653694249356181186477411659020110075778131135726737825803784644281931853304523135285100470530549021430014603377570578448363310077145515135408597117218909528301200450200972128052896340244400621979631897546079440261904482577939248066371368379897492520251894177878909437910329523104999656693601242403573893360289258360422116454579226137471708060155813653981789245088431550840827267672660367231928149612317053611167721926584099855010929033851729444354216178668927833208048403087247743689703503423881736424461156395648942091892943690491651565933040142217730710148310949494895743041500369084034253451414252883700422092926840841341466682803849868811803206105280288128588642573586649547974220648526457074418339238788327899660960890934813883685471473093770112483312241410707448673587591607103398298646445716672286485613918285234631678378202868638576717076815482255735595595954411925659709329706296158663527184757304832133726869541823834472813760710625871983536344001711819967672910935422776720435234831773286992287233458739815588774068630508778321757784418288929917663213535910877647985887460840320692630270107640416617167069601155331843680362870805897773174305559907122582262707398503707578544041003069165873788918777903151572033842711440071012988513173189136307986996063020975845302074962941062784957967197441011433891876721153780327942450634493027244388636930514986291191806327491919510495931384195266578464782005510852760564281399714808883937764644379679341487989286681283389872008420937540970799407281899749096984210357848379592723700230071361100450513060918112561977453405274872622440339965643367723752212569943863342832228718794042991769710656806594189010635410652954814182523711611279267392841460629548635122431596709575784066730269507996806255402309504977719435453803707241176603175879743264496728914210793558198145846919307053768914627472070522639351759904247494963455163670123231647119475193686406211407431286474086833027572252489753549399523155682054484052296396109945395537485974719466557993355888591087596161147329613883009195910454043185117272417619762479727607753442894974923363691339142279962840569794301018003672931668241082989038583189942211526674962756773575906268078620382556150665537784064604299839324266574511689061823378790799233946008707990629450530038709669416055479459471047028313688200508858391955773693835300183117376942717149675324184399859565987608648765434744849626223457176460044235099103042344576723307092796737556099008859822033160566994001990382090162873423686637204072367234664530358048381383851106170119718772002349091997286359023126143226595902640223891330286357382368019944139490057273882191793575456192404697321913510338494008902519964320992733743449218029059779281810645601638751983363892432349397049718027240681003766291780961564298999674259183549916330309475286407992530329602966418735152257066803361374767720097720189627607404308979388834941387837379464830647611293272257287852746921794471796024305339627237403361412630504924988083867351042339903421761002269955321410914933492368434088354572937829560589613295402982038743489730988324497113847836772174860888936171398852056560095380651698633926567067242579518218349649973343071099753989372360641967722988153481125448946743666664397777695946790740540280187139216271507191580078906748441318317787465323671451234476017478160911557436412131888104009440968840930826789193424996109299417134501894459336801491216793149091807114314155113505678270241285650112313780599322240804266043831243353112715079086504312989719471330422466476545227809514973678620197410959670591165076677771338798117765449260008212061694365298617994673249471020293483232374930828319598948697200544259143340113228024186055274020174559483132448786233518157841087727883992795033892492674676243339032094822913582489226802974464529003137648387586301342720803311940534373500892097770636061197342908434205363547780827919941471643569344200058801949395933337246549104888268495658768522876037737448571394172412315563210936723878769917516182553893326219979962058989738626061812029162825954969713566901588395518107283624015018713323787852398244329176280808543402172433617902175761573776320450712644853164283854726153367352285105347035240346072708214361986847506535676871733546730683950112001503305706334220774330558816399742166629094734727226492677538083517246469573071937759420694010743359872745417588023089081864278673699832284172591054877823692263215829454566361870017492682726204408526784683156377580867342014344888165711967854094018724314253068568428991169708351197832503474847277451154115251193111490186895622799136156743483765965801442619780854608143421251817506310913226482523909164342283295910497031637765122651755580071420720272516968420154924185571831876869625596224385275376618675884477287878268060852694094719974091312572702320991429657824300919532101701243373345642795772497200571200025686887680275690352225088879591755877512081581908995976131247848528811253711077998897383697312742517055288808003364231731538607529820909328444083007631289323058448539513428900826235181836846274350595831811295326391320593524463513597881493173800235096487790572323421204527170018557025011158662869639057771003018126440276122150236953853260246877514887514172944651404220936131794789731533882426199811113536375564724823291722602516911315475087019794910536435310527924481658716579383211424770462489996017004976370955840695091401567346270907256344369908616209037514070772940249961637235717105489736128165862994302187949656162525646257558722586948302928690413865907793988070383332047792056937376543920290529088643573029995514770928622139144540739151061456653923495632142057108291731526819459984253324785517125558126977361373808274495988472237500280076482161543603375219123197299864027092242822064849327191017729643488135315428286993690005953579445574788665610696053998885333669117721996395505558991264221144170055674000446209837227282296596775283950045303749726977493771428327388319412898356168819571463092561127500904932762975229988687109982400588489783881220627988819346151966757261711855661287639152963850587333316515274491328945660190985116092093592832988489046678163131201546130620457408206499892371419627480428704577036912743067589437166056318101121734257589432181677409205389077723421067201169587399166935632944540014961822805646585248986399142285111857569369706302259784288843038390624462871510665585875001606545172250348316253146073023154041380781344966474371762465905673210495507574790975702361519300207302333360229773417010149091045344124476259956705649711208887088764158787642136156959408239234097481461215792031008377855377882949097797365990404002260208771366615913236981920834007667469078781811274876782465579092474293159256135871764851184199140592162565289170249278122966867036048115817445208353171539710413358654544751864027053045941014438166281007765594364923154812072145589768434697459183989868979085242963917547021323348290969067884840132332965098827020966476435080320826502403662605464743132299135197235597003834961908348933255474531196476524061720081645712459468751511965989094831917599080909665873615155887782498215705453061372494992310209111833493758308297296694997713814962836333131348602027605231801420949108312657479400625207039927950076959602630777257314017017633616505941801170109077565818764590700236532143924832262417933928372205555700793615254815936265650278549338626995883290662837307781917605576433464120011538028728919691667550842696702351005808785706112355212189965580285576142377496474768619460466713320537680705127617251196687735856963365601055910197609275999171516888705461875161932764514351211847585016089873793605906552905173745799118395379907982692074729594010556584299422742727418954677389949404174373238919974779021965513065122489663617291423288036708942524194212396934168810905405669734317180508018826157658943040645704580488887879567853637799285412319925419871767348582566155265121576012833671861174427736590273144944870901112360466689460629442567526709479876430354969243480542090113542030358458146563847702800839415903072622007190629200051219675791403353635555019796750433687774535398191823100819640357024800927024120638092892702378306042125831398027023594661304501072970136624830302810324236564715125689943690945891087337003701452305908950079213025391336085943474878887706842578496623958407267738564487600590623158791859468120941144046281143295217414953639968165070907943052391207829170561614518782682398481873890768337060209167052559380737829087869163098869919831938096225372943826945065581523159629730597678484062605793950966562013936011200943319786674088623562221190658933573793375961605652359242412403862108287152417114543438687819825052436174360533908718331667147415579112624755422051351491754991829748078509634411342008676692695065603497459082893720621393005665322993967334708868809086071340868942402382115824691416007117873005031459915744418327154622108395079395571954495096233362420405618644092042065457417843047607565382835114146535811935619308702271107299498297180534980263953305804331862621429283188921778304530122875178395564580816997635478286744859724667594478250226704040035382393167702279131636939805509144340021589070813470797377612864712671796742081642197218720860734617440459458362009224770063372825188660529933690892591911533029622513254936328102163660827488277133699661332329642783242668375312344069805722254697353415198952531855216777936536084861981094488834284520831278923400169813157846210022707913934095788269692013893573677161834364994150851552301853376851125353452230923235456417458384550083906004264481390696176941833278278088398067404562400287391077192205584067021082730697294600929799090850401385737407287293051270744302784335217981290587134937109933347169741970531970953597255429983381004045832002261146270185900767579161942408767847571248557823908005978271806862399236580265023173426713848047467246457217993961675154386503317595123074211233155854145414149613883335982214716871921164890976266980544762248969043615445499815284308156174667719559371486416074860885561774889238964406839364709667617961589522950981102186671049712607884176487506308655065456260445523244756835538210203287988050057661696670944089481874203780816930820901018540221008289432907520162643565800388967868052840217304119362277810010422178712719147163791661224996435332249443873391633040395047337794831688351812379599530947192019519312502752171395071735261195326571793818742541884384116695984666317743025217801866639163506878964065448186450128517866900127251395676585043670083943252148163198005448028168243458863890335488738325084653152525860488367330000737397211107063253300635563925892910139780243328019646611659400182750247232694497260647831206426591687015789081613653491222280650702432119310115822207300992188557398264197793019519828225408871825734361119373112523944537480214131820709850898574408783345307902771148424900166941676148988543559381214787271043838183499890230464083173232351565720722481535581527110975231921126031769022945986332696084704529579782447322505039139918804545021838606337818429785173990128946997629960651195266737733176120765552798638474012602673485264112492826851560965014818553272611936129127863563250197995836508426355644996368137247817608233165298389485707162116321338522429760260914768404787604835195509645653530485047777003805527182124812407024337500569892788067317794530469980140732600621105320600451794797878731101006662571160869559603280038227362606576983802314921598982182225506322130965503726692092893049822139833597738010311526324378100462023098018818169951741186522254984274365628846519969812738176081232602180618477069264286532566183829673984516639301499469375611502593502836002126049193779561704290508796204978304517482273502044319914679090402816622072421155164977205608763573976259025541798794270757548921442716328729135774364835745372836308320652024378714374428209993628559787678897346111963425731249535800210505144977609091530423289523767754600902910465568416717005325940934763798587838775674848349078756808772077158511292328685951671719826406957694812471539016701548227630578940317107995212965036420635231203863481152157206873976371078956697542809976393845763230597506014321355617450198375254125364547977636837666033937337245395950194174215868393621343974976868514316882816168264642232645319229461155683313586089878801886510190857251415125700749923859052135875739563236442589076028428625436062036313060483054767142327373062179058063325675365274062628873147698841156991106262088070263035709905527434391663835488008487248527594399346821894300451939650621252820991837948926082775049244032077573480969382251536172752232901437965271835089576876257636024212995456962430897051519541229779350847331378474248572405666943169139952449377241123271959818377796048567563572629685164248951978683931564115217675276390435591898594653216244112344254787749346620797509686605297209854080038624851081794460348066416840566206092241287079402536956746633311410064864644450733550668379443452856624966728781345788350043217220651010789363830124221005017319372166202964393353072541902716660277885329206890675495104788325052952516996221841171091766190480975368135905786605264601968893828514523288494274909187266728150014618525844353999265794404514403018613650565967060696864592197400632094047187670448013981511354642852297862601324067013140553085988295454128736791971960314680158892093533496743645610390089973373876276351578645045745340329164950094233578641620388241077021282212431700252361427508392895653001654580874567809759962128602860028784709771328403371621073074720690082515617690055694406647920154597684212624737893180529559718724610476442113347471595152985270753457635278939663654377829961012135705842336819484439040599786318313084281308117882375295542762907838430675809135966595002686473391067498521817644725059295335609325117453324716915825811649023225709441479685065637131558005051336603070032004318693171038021145288066230680662371788401081227354244872785602614029382825522947848167970401898721596768641658716251341708563287446971490991811703795658923201265375912820730828555481444786897759560379921265645733995530631351607345216494332185378340452302299316625323426844184724370745198255630802514381931698365044401030777790434811243333255570279965724951406407909069062317176242995444332471364040003661319281938089583997560837787948051523328630212188133451153804501550289011503549431098974629034031357271501523438405455662563532071601429639705509384409705554297045892377924427334608446665856301343194768563458766953212299978066575693183249103079663308332790907557539912661773067738245906150903438262437351237917809776950691474505693749515135025398236627254232587322291636510207208822335533550879268264635631103079783187686957360190030175834683962421614626753705881127436970059587705888445865893772627733438777981765089880313176914394367417575597995738978843334087587851563385486674113430400419465119081480998411498964434042957841142498297386761090364694222819807271102670948151392297739194376669354139946119510517900450963473992635043226335675361810905613849906673420148375733754948458392479286962042929997454369092151993903386065609404194733786241816240204788979596540676262346595853114087818239286748558358944822163452495215595756756999156206372212605604394741804628507527461038584371955230249667651882028066632651254047511760522791748357750904348535564346762809648515012045185324664710176398917569251807438284419093896627873588591258316977882549030507819049866270852947357837673509047105312304476460926610337552218385059471413379851975411418474572748678557125854484092712032876968656064264969195885268057867412847007944477831769021185385480691457056578712966940226276200465328800914544864814677537999271179027089602877138501695113666707155831452071593838343601689389378119649748058945538725895044964018555175659903074309041423536738738141954521187663292548451621619030220718591121065857902772506835751712904209281037240718673289305458444850012911305596289560356140248947059163499826209111242893439171175700546909677548703896666266257049672607927718428018039369372531991619467379633826812860430232106257751009047654110130658382281980827225422616939312833646345758718645585852380675948323847228491131510981222340651878038547951422020056335443518525141917212358656406906840519407766348268471657667915827227947985337854727471340211070973072304212650308471861036230070657847469926302366750965456585148986104969045836379629110155312751611193094737628179297967174831306241372712284835786533132029510433686195325479908895257977506367730652543277124899234689205423712133414231234610406670829948559550864344482674830191093829552406320115152686092678354120735843074199955345156095669256856581525278203222654358429375597697554771363594629115075665987333808472342371264413492179206180109782243596971006815173885561250683282410212537476790622673764685920923913943301061517941118751028800586105080728393887573895423097220275757643231527988538332475070477880591052620629670256371533363536135980443301189876497905221339757305019783992712398184216802462185389004205380558860165860279196762023283912945370529237225725582790597683535237406018946656621498583083456043116101948371650547378992382708490917025620031034360030625768675632444046847690358271083481425362935800038726341453012531757631422015162958418020745283207952730948218624996294917811923312567185500861872260739239943338909468992041716398695194683669762212582689983648713707410699908167650782468995426669905316390890172863689840750680730441412281833707985122282583833496295420456570659412060373604192517759433949129708748308500983905916464267952786952959854689071761048820568714759837125956897330490997540513540896231788246407275941735349548579403190027971943700564293557080169333975280286873324383330175168647487560439604765044567372860287213673362726623647733016599166053739015193101571462173892915968164050227859030360026539643482021403253144301215467355857676132455785647727873927382883714405757046118524085482646440035130516819070128340776644251210038457649155830044580229233570729845938927362316160287068651849602946610956429886321073560487982861810939092431924980164614297023843258144812664729042419320276612317213664523191639915721749234214638450552845254452014300353942297510042639930095513934669007291667684495829181707769359374528078355427296630584258239382018978295834641535297140506879622886245558059611589241994211546569953263043226525041712068849790143996741804760105955255058818966808994312438798617585042643214701893030833761979096019275677150036374789334887540191194614570998845987801171811668418701496204711369735143748452667323678053545818255160781994371288349373784866044223985508796287425275971322778235914761630482414922649516443575657025721955547404396581586053838524414236138006075560207884700701023355889769614322865168180891899608119745736788129656034075236592514381893533820396663761630061852312677210523871103553583851041940696672316789898924030896050170566286060520321157295780426445895785988176336969838148370044435354338401468992882555767209260973634813098654663406275547070942923790154407171826611694839048629564129334683236804736005513067757808144368143215964557567633414853817083808084120600493006581116004044665095679719059671073950437533986456900322928744706981784971779869835035271779007803986857578956226080247912546254033923023889117988855928120619634878994526974977075920667986984837149345155732806826292096272366040114720244575271228500915706986057493016064312293838434529298088262007831112995636160939107130773079114519211617238694800034711926505718119028122474891397291460748001610512981186305352293968546153027880726873666021557582705842327590583761094491700726966426324487788286000744800079385860786716105993584136374198600044918278671243355997151169372126653206744569747864014006607515963174805763324209497241944247433546371916669330257377231119937784607490859064026159790927608606036677182957145790344073794977661208174023464220572772876265140318770931939095537267559049815075853298983279544130919290167577709045401629534418307790061763793934472146365156619132605112859851418054968832407556007751761907865684192386008783670217694917140552423894877937521941272626887771184905244227360412366392961036030518928554935559835145951656195048312501557501756269211437550220467666825024400540814896022827155457734931393139840685308975233798400388369748643514684688236633180289236173432378625527102347444634929452310216556202829782003556547339417546070306493519618101356056702202921160968122391386530049407774970342069796997820746219773522347455614777658312998831774754379295923675975240431238769801597349162761970029881492773558209521372821692942897265325237750019085347843438288113314170277370500089874705738051106060840388598632312278428924365577382407891841221728987691926505893466790684732532482379583041712207467591532923035375540456579000659069901578081918195564010788389780150426921338608209802071340298247379986481726372150975751897776802750851783683882934955588600115064816430749876568778076804570597751355901116286776997060982689418246653738857320132617763679565778672079987207974093854849494712634901253936535288867242026828940805469958797329496519622975183631728453191926611729150713164856693240902325953786975576955718541114352872435467211894671721265860136172348394705476916644093513647077651252552541968383363338718917883797128716169721159395164830919787156599493295212224970449304066746611492803379157139597711432113788855648397753140358668979444290184410559528015199560588247970657325451327074352855507702563881915740293202397221976734804409708456929799609051747617960733604646612706529012198531435009268554898828084608166021234501103188963805527599617501329797022656132810649438690445752724103728084796595382479616435784729506666725526972438785641766789421181456476810693426387379272820518681113433071697604382701721317673242099807982803882039053859246636818645042719815612500129078575002388428888013850321524395504829087810926224439322289043165000070586358152492272632618117135009895011933528841525459894292521176584634720515472323161281999928674364441346631872352874406163843137161992497575385510093718403646241213807911375883305066149405045798921559347885648044593421288935813649625019128471482169288108251404408833473815548863818033865200918177461785145952288816502358609589213466992765984765573458903006111254200901193347024809828687823536658170370660761031425550481213042628075775821373846176612274332549708225171187746233028658943318500230364381639969783752487616690127825749819945653229563073701123374050765036693196245903942025139883838224991873987996478472357248778283436280977015044740022118599454571756485599253685457715367272250497710999703792452562581335918038842344646043350184045427859474712377372537770531147719923269460200911121954670101613980332016285373730781970352318377358985996699635625807247874106028223312286762885926404235624028415085641443699300194135655779989895478302869226448234935815021295722407993639335600189991727595882426906162710866458473877961648050343721262989732637638814963116219739255893182886359152960010452054731828083514516702038047053652729966963803948456885850133374452929710548581944367577613340491978031967156358456293742950548205689887093476406906059867335783102681037961942320089722952733786751860700263288300879177968296720653465634618348860702788854489857270267016660552141043474877415300437264539583904008088547832022417737641860133739952050156471362457628372636154282744366913272575336352445055385478128444700969412944659149883104238720250743643276429582568936421158152162132685884345195939311567376593022067998951318433897343295776353744110625955079914242054936393396543329481750022025927997539600341058397036662553123626190850797701652749612250916757187800083644900116429526642888401336293494209019409831926421745020535609680522393294552119970990407493802923252964108465083983187724509940590131951738669825798861484580338943756295180519888497223407029165413337680703823899075205121334242203848400003685720146605380769010156848233202303108422910615526775856940099894330131257603360206082533071630036549280089975754714855632939149914235228238056023952103236257804753196989912839371650542867887199589953264530539735747773246003502059743670303987896148919345814507012439835113544852566473678595811802527865688430607819589312915049436843418798616129167915329936935911641071219750346578265782960302141829095498174653657322364369792225179845315327181007690620612960564794187979684366820513992252242179281200913135817571388050255292449836125295337545316664166750641047052091615568952855142709361824000797856522975157032577125589572108008361127036454538099909534124065442784506133896050389829275741863289081344588251545702632724513490180360973333095908277582161959314900822846236952347765493983021618609120778433869308809510757024842302065813253636658241897198195666820744328508027638659341844315604686838256122726186031584587823446377841710886657275994425125698118864262541282586794977797064188822429032822881257285295980956946481560305742761612467645266569964254163744831287768374671292234978718084611882629209689471138987085787333069488016680102311249465179772396243595326045634594721382034481901377286448870074816820530731046479431328027374519856266498923440939517710181977334799654813421702913739395434521219992515674227236063671206766769006944033542420670358792401446678838519407783513726533642806396857093178630297422513785433814110196751901707682175165138226170258069605061564205148748079801853475517252909604894291106832633417189702629478629432753377614397128724041745343817702084664773066525768497152872251682110505080010193820890468455768022817546740481843168127224958740297187819372952924980128921583942801449902303092614475916088970088460347523280482045955758042004610959451806778488935856050923196290254953727217384880276592254741277527151919272176508762810079500093733367100973641155141999391957962434046770205431555577899549130675217272941728644145563945261942755938506808797648214379925537419092903962690407539566371274226519469541307049899789693342064499069931434662718233645619641740307296670197439172894524592971393220688979519593315206862047552982831561810915398623020939316382928566411406048247700678994093596088203248998608759890442885571424289291382465691035136070316824247466662674216706217157724302470277557532357255994480592062350407915799467423426403590989295773274010831457030299971624168423501375813652987634593749649608434622046442814753414223185211261638749149666899974026514734503312387884930525942092343176107935969742905010801635192987563191672057044913662656906557152620391372904885617600008630507003679183264288024220261805440223835080189420576277187687465748885192969890437344530210366314823103991960790641348825998940418044649178156226852572659793119643446233011752758887093450950343952769340824186301480791485733142177861583350577863820506977875664861548949742399743148942109799602793807452643446604216587258649955089488437961604145247377790107461041096906719203300879723124224040720878484146408970262249749502417407688107241326929870687674043505850762033251857330602694809458028790635405262519940636702317263143671130506285482388204087653472308969278997670854864513699735437187243988604457568573457567123768208822063683490343824692116529197089807348371925179695674716862734829786906357777778720991363439082268869536552911009431932092544266505807469895537721043233926171812430805087722391734706386341109703012357078700229661335679263844878805712051392457159013330617031792629674493688694207483752334083856332099155482401613984921835342754081676251607493245685886006133697177800639724510693329332483804603779599001260228066864065532690132188762754825044215490464871297862306875599040201369369693297155588222145150425135442637038477423996103547718869903908433197943573491069354730941247865938173422754331432390894013571481317572903332374210416193170162289806042501245875605257393290292583626549679079848244553444901406516455164826381426883619083174306036954706630479511435899337685656218364984182049075783335803239075994600521964143278164391427631972628294648692919695744046573072620551991733644986271199082881055006050069188079212859839930757497863095086284926493610207585199927365312066143033263278164910037701576395206814930124722151894886392750853804140456651855342003640527226112905802412751149807722492749811755227700679106332706502090987776098355084313841200707471580440719531008156173141354306148756289341816184095502582434539949504618852394764352053719530175189834685846875987451848644998521900577221068284852657611902888393719636164863132651063512497452757305870914841381399242799430766366319917008309370003664325887382377644003001553215104874727537387737827606596815573486856520013995417554565773621195665740421734164583438903675916750784142064674920202897252815712415131724944435057201799984024413599241404528019200406984884532608323798606913308443759029398687520696916858358243743934785898852060542300951145717897926292540661161150276571834949117636894703266083501143985704080204991919678320769695476133860499941473305722120740011590377023206428765855342758204440383303612070638280225864422063203109856930706710396343548486213751481803089382250594166286178209671375842924405678622636746931825942437804122783512860175531782663035291647990495270638797926223126886022025911230139275886562463210181204812967261439873146795717544776804420308950759352254274756302781373618092900365994493821222635818657475136250462184942785369606587606699896079738194635799109633055242683343401062715745603159229432763767846906010592371824414232105368704932682051607264880493487814212675764309138296899343659263042669168199604347456732130598951459857249725189208372952700966920690280177616053453363824050236928343521841491603061153640450120815013321710380946660615768858692912009798677083350256910075642092075452726014688002984028903205252426138053621020110961896077897283762026987592125110349251822563122351207800337928207258664659414932619835293008014752503248706254704213982966281926715901765495524723248119617865745746551926970128282645274448721081102687199550139380596060209151899800956861032719281123311653879105618385472621254717883410294867716156515917172947274286557533592238278330004625404851483469182435574850596354872208063726566913637995291957118684777964899285039616757920313653452180627047260440395720485123884678418174718987883543800856922558467276123814546822724574220567399923258324805483835269583655019147320813728767729420432211800104384422149867409028976791362069083762808158442052388178818304046011740190990736594315024454888810385439125967059982447634290815069450918823767118538717749409484470879190032619675654580201162016587918647814807249113877268386829711864311490009911133621829274657563314180179530140969388727358590063116912425828597567235066410180063379058644061045025632507750972913852973023711350371275883455258825365414759129976064680171593970506296446993587318736967218697468744757903535760470507745403318517718949934410738195782850790287439174105802938760163527341456661243981760090941814580261512105950464990641485961097639531408800003234297964335907630375799427897127545182675175264925523453579002598920986117335671422338899076682824081244545842937841403012718291722542431847344358146662609861010083734666533588651275302636419535103910697859452804183638288338837989729731416641110093678045000806942999489353426198631585836082827077558382633189611004941710166330365711758633246604584858283300278085632470532537340744328179179747818999315180474337976966304304753116139153789931435192913632863226656651542817565041600871514587572175613537181398078609032766458212651361501680705515826859184366436780569416936794066254833782031066220680961278033392369686811460298610057177846081922991157085406610438637212264317062301380352759253577943303470404495471454893768064444876261565728621763616014780641600510129272024000959905138841461810064373570460317756321735406948093149464400430269134478838639166721481940970552775965065198423124702212209135596188416994586870767009864864602684721287899414324631434123290120688952961828763015135074746854481003435638214572465804518886255998305518459725081845180397227641501045370300615851657727910177547915885602562353785975568095539589114943068029592645707773092839585781729482825677917649648868650636304023025990875258270892506930772660331452371035676925402563225523048450482135490748274124355513543265900554922626261288073762130368274998761333739218857512191651100280686888592180709141149356055276558927310546558464705716133574039198794680747671767525872239197872190713083542172953760513074853568809154487649639918725807195563190435034571439128668801600609036481410984684070316501464490823307572294114490997959880522306887041197238367959321048597927515607423694926805355731736546708359023329008217346184199675472977297709422550973851880255285492242126363285561256671424314824109534057694874537893673582511452453380904698937646963178866674602419423447104263934861938683156444378082638049616308011821774117118791826801196688512636743211165863565861511441712547998460028694171490429228379247256923675784447792922137242269970765221609062016317394746965588258014021500633280938909644598643341215079121052448930507385520765598924066772750083273242626377402522248324072596531329940238185751611848665698755383246406313564704212128509267703936358276436602707896210487127205222161049668691906315971228116742879490961498418045739096946654620693070822148611128456238273275699260449554552120724171898923001123954364459714882629114458559266041983310652382928186208942353648296609756267527091608490270678637051398090561097096813101982216676607357780825771320543826916830013471207875044419447937194227881383409374037919013546668106497457582376518598636813663264627750114540252752643237310231751912594080806387670162585872588602145961989230888844569311666540752258146055926599660248659333423709555323200354131934750849387266481935304282658519558191202739148631849141213604677467386732710273466358487228842442967517503071568035982694237765497577595717795897375957466699846362644756505194639411710129796277917327414390964888215868379319006889633487935685607938255976677959270164999082523697094907273644028962276580183858362187249528172288069030510378359514624942630146456801873369113489901137375634802674840378391985985147287592697779906230204721553759189436713062202118201866403508683515091573727457693382017259247059300350239026922579990271498418842745874123454608225840538479441037570171937847850671973580061470812659803724428434633268037574430403493420129086128987361354994924445601375687334513708786905437734096523180688558234651286289209829928373852191012033354072202496787610922576347350315215472776735462769721206159930991049086067975875597317332076647439995215116022356780430942728611094389961123794096782776602194243947141769458279787630509517606360636163805105461180011852918680393170331366408986112015840067654724361681086738798614778399679404442046434048473382653520163799596344294331576820096492459238511971410174763824570983948411648357135747969258984987888247978057494610875157189219846500724342305049507621196752664761713456907727192580809222186175936833912959857710730308147426947497116904035795657635030565945073453385466518100167329032217570045122090541456776938240408530918550096762622493369272189084187512137441528111455945364390657105411473221436643036244281640362994962533195429549593921680304789337120217450286894451609760019214825277462948567312895681111989508125571123953553958728746623393505244550714897833186242771346633290765691954093505150497848204264234924930277091800990712176564932267764527580685732799355517550975529769405210346256051611732382072288905891350534241500126009098503021128011272471673192615256372199789235170788662861164812583552040068992922931111636015152543478425823892773924665180861835878806047565196402876878118567737010699259337991878631709904212808185426417666267945548423490870280893107218306217838796690829368605145587822348370145228872684263431996828827077984757929717002154220441865650786785087929909378468898201422409530962305108547567362767719723244016043565165531552742046402951555113961171110504209920038578098905377190986745298416300355312456890419009802473956197796524804416012457619868075377450876444695199703709476042917503368148160341139216895912609734757436235535503730815684369132880909286185323356320610243466582097055184463232038073878854991195588208230040419441155220288088065553328579221088774881777168307341794516144133471214109772321893874721650879318761244750110860338304216843896100131969730162307354492398593751627577328857929597729827632764936172457492497489185312439221304131168489455913636697096372363761606759648513953185787702153402466536137152556012520293513050577844566110404847890431816394652475819466540358483412418110671086493629197360061265355218946104896280278825473515489683743984662347114837097230985476873934481745731321357963531075906036780228157619470312125959837051445224090225202140998109077377537212430128428931885279326029108591265963498743843240737505911153444006462886274640340261377229977251441747942075326059953541314956526769241390881538114791430508115086659011073960019690544522962336264399960517430894694428547726357308112313012323136937825781270928447433320937593642351399303692956611197222468377633739533958283223806444975454430842858169361333585728549479247679447711100084231040374700306914542339600157965264473848715409495088233973230617300247639865594280120978660872625145548442018616365976089527510094077132158126251565256553269142121709431904522782885761485335500474798644935147347010311563432952156932430670266733513345402561664882049064701650304397510316310713026110663192478620154695237920710009436807974262155846593996966266436141812084123753096582453200604175147521715520408794743893982395562367331241095303869320050893401195658348889077927558602640436953078261703005727218793367653228823230933918129479627214112654169203683804151492575603487563374126307034304357339471372095390795990583374940973256059709210511811362725733435867337528995611663945171904916753307727736427084366086124342212784734100166884876018440940255824033225428639897944605002026729045019837765511539437195468496956282275755677850109556055175496521978831363955036011170793302967056480918537733796919203229799664502497448641656817981337394771435708361026325649465744037279137639445947821954257369582287293085634315312164150447865344407365979700213316242960200374871682754731330191568097592640118654188770436881739821753264695363621651041772706448880356443093965936780539348734836593172328907529670089817920701262681945934443498478333060648343234925833172690672772217292265978269897618116114000270086208765263948751868190642362709892939771154631075499908082707629503972690160073849532326474595026743671880652430876307147883432208570062483058072867976826010224427341544554696535364388213512025183142284107784560361886464196049120846813676403426107452450350174652429984269264890617262310657145247252281880277635366861021963726424917168372971842151690415941474378399378350312069751562186446773538525057351525427966421056459387403209062853287391890822981280483853217950668731231020034720959758627531089766847031643581758241942049207864119864343687446407179646565275865183760617777267712125130135850876083323054932159460006152926142490716781938518394699010483212932835680938063937723403521642821296009803985046528610734619910093418147089292805967105776333170007477756196536071042895674129055917623483987785509911663903445938352882119436038971774358116425222587619723027569926800872713028953350781991006802559709665030490110656345094375030581030776842474078853115599877153103010263399375146086795906387799138642092729048207863625168149504858522376081658729548616295303135892749150983920335030556498577482104096782570987770797012944590358320810375971761284857680710461354192770092832511522233253666153065390889232814108862434579676102116676328770067790013203067057991529788041706974570986539539747238476889174255524533901745704916971223662433422355349276675396571194200727419925863649883887658909888890083871275379379640378589975514239411715138392056018556343660647145731745766470417035557081792462647607334667707939369367536455268843244758466348486390057885553340618865769786512321704790225738103242660308508759391040384168931162034236736579447142692066801560905973638767108004426009373397398014672219421228494750279562950817803648972857929892595821896697553766058747916510763779943828982309653676156482304890266792031809472370207443488484073039813025802819623945891819155170932204085395454420265311326417459598156806816746761349394451248241969422339711412745067885502437522450077953794381766537688092964245038374488828993765377069943231346552527916739650744777982682824840206223681800956241494523520890493332589680131777817506330428660366838937407129342203714186031113201678013052771886965711762713000772911861250244484135563995861928633868868609262517224655132833054227563733658467212482857169097131388076344348027190214727559395124154891621933270668526136209013283555177121209964359259593858726947057432063872513733646472386145298083854810964865917430856061309073898940352636701050238621350701032087887571912294222218962560702418266390494637998520267405500469348014293998535545764965836051840187291394272062017933012990995312105261925374596707447454916838757430408473621867356765732625227887158449396293722434081077614727464316485382887677338736961520479182285758095643232175816368294141415533356325559392377350342039808882316360425868473196160981473080486582510040614132403569999568774435672349048862141320180460298957466523096114881670816806541715280204255422797231481414063368628081905691354721396061506913837302013002607648496330469885109122869107440184306784144576579798904776672128262652190877438414259569438075464387293221430937159368385117813178613008583744297116470253182001669816875852660330578382071634631416332543947629040337406017045894062407793702137747004079130470293196029024216481818102507893714644048302591726420258103836725680640720886579911237233592150545208566191283815469623546223947946475211496690439095679856513814060215407550019352747387349473317326571949901495239732486798930654985669496172923196379308877639398750509729286446187520902099019787873534695318632768765332060599905418126051960724051908167413949470679994664215051759643088662536007656198649024488942689145731069326404876511330602688222192020170543624504833332824145327694914541630727761023855234762866010821249765196517791941336071849862037218083825225046864671894266970186546703355863354612940160430463021953732984859629750942514135724073063965098860602845795901165914231890781670309812456051719300271800349384096365392530721489034480251572776982759916285847425989667051661783128470148446293663802126121782167125805635145534672944838102505780334776328612732934495182786793604825881306554480775905361012717436229513536119117130150091598934142269777755468299482333052182070807687129899234560808409821711572986534209805014586881749171367936414124737861280699703739384534091949017599700501159551809269363941371619275705977261518329124318344586524817723976661719896652452492643233478824836632155677698723196446098410961095946086040791112000704032391892070981827839931060214270564995747466713835717982484524734107842490963308893157896111210197902705574919070233114218973099349594753000286576128295099690802887962020235370540124437191630153760502443808628351353944104551760377656216610039639997760611888896446950336718529224996235112692668666015587923090027786396497891120598282668882864570794484599590878362150100885540759552905759715212179432409900548865182560297520877774810385558950006873720922796862400917280917544750615986403545865338700613586404168833844450818267691814966468477304442825089116275311476390094081700402733694268828121762749915835196666568615131053669922663364257550728772737090124910750452532012408966889270623210489519997789451370317213392785110428932858057595286458638152624803057676231426586925735105044275767814889671656819109899527477277262165957029804809279440139189921537800071355234223426041874602045775983590197861926944937796849478077996897464768348416916925199229642139784905341799972076418616190292717029736072424870036292206915550020868188121674774913926101558893073072608241096099492201873361989741943282462280591556355258291886751250891144117377211428580569069020358026519956390368546294242212512693588575951721707936561985520519942084891074414077795770369973723598192225506040716346658128517424034384033602525837865737826603022334049631138186241816027260692183063118642505355382152174963374152412392882776402572828843352414826474978683371131905320702627847876323910221090056186534399600768968650930223365937353429573015357232298804317197839929947280555178194204470809570265222279708438630555989334563355512846827958994775434162658328969201262371023376841961360340629283837029704370784057701065207655468889635626410073896222441452580342215345265798280220771761394418285823018556443090610778224580607639522950662370425493125241076213104061126332231596919709517829371134236412649634983284709944749677912155609140950906376914022868177139989792802277526911844783223059147139048243131415074224348100283362163290013575499868594230292430754389705363776702047267176426694984712217012858070010734829865535966672843326619611944872114246456905224746866702256036297818453000427870587801529526081893891940323917929299762846889699880628415425619569687363732635374756946037348339383595333371610750477837661516461297769612164247521814868939447461818363444128979411800014147115896579026581658559530259548287920345047256570986438656748919089580453712425783744272940132487175307243744867590467067251757003985724259168772101467786412522332549341624542566077251249542408562817897164574102465783177750025811123597298397136133657183338778652303148563010120742068466547017279330403924965641723434555339504988899906065863589737216014330283183782226542560376532297806520103236578140130151241358137816400752119676197883786062261306022136860318262372386462205637577632434528363889512401162309209971873354612908438953031698235507027407267481011300746086322752394375853915780158545561388095944482385110196883278870822918074761393390865804478068028355683270433875603203258253548557104249710709696422459021572775792903721966497816077006318634612025591685726065592453994321092063908390848452534819185765244943969068907852983868077828198360087445761882903202341261314963403677818742863761634296232783935144572593388881782895107507820036511124791596520297370340917510388967025932798782323688324954003510312431989227724799588985508053341591650670083926758084881833967682257856536651017085748796066971731307150899962338355468088752234381086213033162341873951079948823359960414759631379807333672077255405957804718424775233051961464400469925764854128917881976146869307280797261277373633415087097551583508685743079189239537617760420166735218054404551702955479318748411425877973154207708944322306567315814806433520932536456042784968270274163988036402699128641408609760371822672391970979067314923662598312647660592081302911990833022645646386423456148107168190421438462006750187649639522848611662142543695109252137769923322094287242716272244084023935619895098948390899612477948652311997272821308347825750710205894055518609302568141919589180925800423715976473791078911884694853284267343029805188220391650998694099450168023473995999251683774552735425665068278917217155481477512099441918159376483580021567705238265534265539056443784682697115567514119034974575828643258767484263992155456623631010824414320458219859761957823529125258836195962693727037415438361204325870372228463404507783291518716547102003817672508188832485382868688220517827067138481974946946217732834775187020419609428414526037672362935258705681397860098455463015163231468404784005886705826062167229037391141920722854940860609915238939496998210482328834759075546791531950445473538616791130978797209936513824605177981482860010098063476824887060094335874857559259333537917031092502139398539990362943771456929872793868192879219133769029130241615861531655140078305760230626199293829193923013863836201088447515298962795288585225530195965717003642560900989672674768938047335613046172959389513512073229052599264068005541705467832510935575502780835295509158863865016484123347816816531792673088556463302017275042851078199621169029822889525466858523969984721603403432418439467939213188880000299087705424185785986320334242893496676601393706838763094440288087988707814132056883646459265374651560455826790676710448574663404016999747935041716860214346759218554089492581762640902686000005733148298208957885549010204232314694431729297488737743986974856719500653752491697533104656306048335804501356939397278688905683315679126692552573956482633290923379170476062633434464148327104401488123961431988525294613886179349933760783709253720767176971157324881162486489453219383387908228049214572242454635538076915094820506242622617104027429807568287629382910288600292050224223602046404783540460573443679885330358757492428673474209867247670732346094736102261712660286061291279097403250407749559923810899270754955942696905109067337477946968247348453809573543793568128543401905483600145740654204499620053253048021315611857824526255120488228690989032277388034641105874632425271161987746196300754036931619911586250853239623972843927783862707314301825517338778805328480575598029665497787173390950765148334371004839211504768644485629507700830956195912223949866296654987033955733337810042377211235036815213223191707720374910638823380433921634908620829068972493715951725981669016305500240985269622041767345102616928613718692207553048502874569974987019329596372326915242490037936636586979199990264444940121882255422336981375510119421792389337225526233162097030043352763955249660048304892235662290590571324921882946874908507318988953097728432971190279460202500413021486184853725728805459737485507364469756215634371372169336804674507894207071339247828058096001663874159971430000501840989934654373442523279695935527545131022515063167121902315343399375172071658716488354774036270819492347814700777201186337161817849518443017912031569667174348953360974602593139797511397035543487437370592929730167092707113876720250554821619042650144138242051794317779040090793635509917802645265706745584829743846598895422680756394730071133438585597365832043271843729796039925515248598750419650713934622228126030781083214861751516590120885641891520224097653785930019126345514354764719830248138431022048807296066088160109551023192097283127820230856086645675856516616869023907811789252661981733350750627067185435171008502091099587261702720828068269663041427914955770933960373618686254018840680580972641821165533221269798770137725554518233447328676169889280753255484312417112254680508311964753548538318156524769620558779759864061148013015982896426667035698567495440261487094188521457990381090559489909712655974512364896813953546570069798782283519335483508096859916873553596824312678104355796497516651797486199254118594713424996443813045586652916226033901349863489884299416207039321121438550282889850446817394708332892176468949591326481365929935622751913557850218978169718498398006332606569620883737110456088205580377683242176935734207112878944229601603781020090392348024236273972689753278454998405493943654706091851441879624307270658051552288860937454617927669015488171424395066510384756433871287117917929122483671362200287852999241928490333680466377882253048965231221244734704902151728325153142090517286686818901039796671587857586741974835779292340183283015418195049184689048274669181794270331343718787994217893741192700164734899719951450393945702722832404852822444496549022958803127647539166671861357989969414042345591900155623289563852332373547318852904062449295043818315877625238187384457446038091882823586108919714413626920514884508459945876562666729444135971141843749795212546432254256241095568560654222092356609480299134420528061907930728527115307094168330144617392385287950820194086155777401576075752865272091109684720662556045799114280663371003113578156521073405599444483411214733756787466081618372643239525992203235801635140348234169429655309091714777932067269980176271825959709805467302529523478320329662084096613981828876315494309175514030578445192093178967200787087727878691097855139103030569843462561076462457711416269540054569236813909934050235493920740928011262089470991058404977270893240609852171164704371187734569605326302190313221877453294663917251853164989106743669610831824690596988634771109861526796325614731080799731411380693760337936664064579946531136980132919573271517072081470625277229021745377823134330546477015158361142916589047426299364369904895227498983022510667613621142293814565867877448714149844626398738509180796780679842218742878993612536875038310156297248748955177730315806692088853754121475438851683262562822484923880191380587248644863963509195268209794496352280324842862746585388094727691291906113973408110027504435132549327806660302392855069925066397095306635591511208410279600732008780306708910653656016678382609302752014911489520949323003641409994536449013935982694284855255825696845922863728542552384517719932768219910060633446136181135571119142079575997545001555633432613092148287831353558778821638115825999076995164080880824511802513257966957869078171711527806743498982150653367711908890230186979614991293124204445209552222928365325396401563838697687093744259889644358409300792775101004838294377224483074914085942248935070944682400242024204752119289591614993034423430345165076734366540348648043969948592787533782514616630390726904661288640560710295948933219644419462936938040091137298936450113904510411668665603495373551860731298825443667888312741963791353648461133559641103956088032223927928332067161832032953495140194935906430001631128811113623339215465381221018582476529178481326873982273896956778138054626069411976578270627922177347046027329123678363732680153043365556985778943471038210540554921918416601043433528807432790723031772479185013151260290211850070387485032975866431304219424741461266519288437197153162758978687384344466469133622386895817977138133477059138186178119713873210609274962128274619650277145411913214252005257684922910826132851793415349955603852721916115711097003215176243999851530064289858823115401840024162818424269419503901959847197526187347668633753854387637186189257711764433372903965682318291367962340137088303432095629334210405215622474492008537833293907579683980443458910195480831233681264022213967594002945676416026047949414121555488332264521411188942839460621043745899625554251360752576343757541543549443318558221527659138123256431171373439220990424608702080396348921727024540815765894619045117654696065722386718901532902963782415953055597685830054901351760932052925552616417433184101668772529678879391308703282187868161120003426909376843079388533998757779991752960553409375609599918893749323993460649546443279965572344596852529303696954585634864162701936073274193612602365895959396312006004802736272797440929644100854378982242861758772709505495481825444682541137645475892366765267226378526879052138082109198033357601931004827855270603048213081296036841632885506943804993958996664451564118441857484500991801537424110941567604529647424050113062005721988777541957789838290850268568010272521164030321976929441604827954900828796666583661951840523102308132193567081376732229568471594818555171702742860137450674036460709927941791173945877071407397229803504768415163172862499436612347687524309906102721992294540205801163088639926827732240741105957220522871322059039584656425616135488790123127272788090143696026064523143166950042422255273155914926188208194529000646267060887931363363185970559499666187440143486034034735856608917766550136557897828018077070984419465804163345131983905763755283801562358323266370560226033040340982020100737638099226513273854835121815145362796697611113479880291056456436880654078038745713163018088903755909881935456170441906422628436663988910721238876902073737730317783820740057557857999759636837683437669095313964956569742593890124088024061464796599606266222624736275601686814392170182859027505436760775242920464495943710187720810294979137940463824539119227818406192421867892297247100008989341709391217943556312781660273641986879049850364316901686261856470319987732191246376191368329124637006205577243321116845171602301330079434287187699198410003436947251167157668678446771325194748857514244383438598115009325871157003667747481373892924390512197223493977363261035063797403835969541221226341546637257862136268469183182016164969036702418753690633998400234524942938579330602429756467764413443609340494862619321991327571498187464510399309122800238587552866418248083833791623749586783347219167988980429280347460926372190079100362740595627668015487167581628434483141535972610027972029890889464428683056867568554528444708388948227638548098233980994768535084248921646068155506681005944896921965506408216155499779771622127620754572414355840706493235377005896564704044336594202163594782929590644376254475854289552605089119405988643135577546738012205099172815388649846875981001293962132547882231490463253719334550698374510297032313844363864909250341330530934074390638243469208490986688718776439683052673061408358294862147346579798831549541294958170749382319609115975894383622581873792289233447384192551552684503984739419890855074815674081693419692796257761982910580182358391058289430293547517810737678319150206753322930072148402751809201763254101790570912246018620055769161135557234467485505197056428134315739769159230572491873429276331950515027774785081979381035369903438225006875938772199294945546277521536758982696139786669024898416717479385289643693517555723478975897866777845191250614479018574246542106342291173905169635407735198880077642685666358514294474104857410628094599248268737060405012862557649879338461681407206905963565203623424589075923207680187577333614049809708654914015263458432517862631675187607002171743041204468633629965284506767170653583181098009425774709845110103808361815262020747872068231607884409229362759425505321571506104222349109773036582247742760654967943579793781310903071273337206033915179798716404204088055983442722286557629345671169969564072907142161467090311720141271662519087248185566227420213349390491027312813873553679939659687943815977119095751053286197809632557682722518038794939023550915799936526773634112245599635723980006644697254616873980575035576306757841557090705847522448711353933468115966582015184227385120610553487837572806747431634970063725424921100429789526171526469035146730123897975673224814643841565644220990653749600105016544198878958051669615999779738296292150168759691249103300478561412656960971707363360454443652877661953496872842783324416338102841547816843572679822094704508530364287442202766571796366202267626794802886641675957931754176022958356095836190172380944375229809595298580828960670497901342058183059582533392207759005955514778359543220975889559405846712597270948594615004607112645035362316776750317827809427645670705138043883095816054858899959787221360654032544325768223580160947921766658637003049244172636078764866974169665419724874646973043614546120309737130126950311625694931467606686801271098139165719588229575081818513184429826706324312372403806221068850254432869971115992468330856669614026107252117313090317589583847359109190312725833926268327393632539978706310708854119273468282669546553968795163138623605809285434562206493013916463137502896982853939505965694308963949891228466677152639666049788709753109365686594957805209384133240491533370373387223889015736807391781210610747725771951361333939449479699986599191210341797170601421956990221683526955829023910319435981009259999162604708709623529214764622240650137268235061076233958280341673223317625508470122246835781352533825280585326061668893236546077708287574266987811455867466224020685515989431452767695984640259337019929356544737802935236968117137947204111344607237843874622659212334391580892274010012783092531154275080934572526841433530733271904825388119271494347208689898383944432252787938761847506061463631742028063239646391924167421430401266548011637190443585314858468620643093236866358514770638208334294444645535501517967541409005394992948262448020216598706925507433372604272498784188374342574745554972149481588301842981655967464080145246229783150688222267217897112653838842140878858058767781643609610149613312684389843594205963662115879409839754124043813962708117966121025195663152689396812664731744476596308579745164744689740156798848244883816272605222101752717311843112314569397920023742618739786834079262417804454542500324859686877223553156961067935570461044063512983885093676314908455396075670639430392584213984947367540586831064131388808340616933719144337847546565788829363425057312751873081669938392994927421975420452252759820176245896559016682432065095642994919792160171117311920948020302788126553124535614068795817740797641441246003731505294902105797676637717717864463258502194581508255311992053013161527665339629236858607608430203104004746499989609959901271759869715186243948254982859556541864563072605340924496159470700786068980082397922213788768240583726977638536299915397963670839474992782754184306259146684162540617348404703218003308179196442345679176926326518269717655191602717762254527775715317125092194092683424704183117192828001604047275473743279260296192717898779118232796825474867119310564293261823034861909391890414873634562619846112749713887798271875441028351295366502858870063030430459582853786050885869419297444675607479073279772240799249983389031654183806496302374932129380575501720335442569128369427175028100213145649363331416903898950523914105749696942653453365520500735571743375729186453309980827142844581782545971470022494293682195235609233534550305705680733744580168118590232105793372335546903315690029016589726635164897181068849086280177045014251096120428907989121881166357916684605559717279833085813473788114471298753298938021929731879119496017239725763430440210654219366247052285819210576857471667303330561378381206633501359719312896554289872066425579363780607438274333662569881279837145685639264718530158458691139840824772110578778802259611098705579975898432491894507751253776910555576638052121111722821788595478807487328771107548877762740302316134041727858535773054202242957216211128930595492495869169664142177118884946338960459125050784926980412750550806293618147013443654327649539785874892102367840282339132482263236523953752117866589096474874995870729335859149513407434762760550823605223371984673595620569232887250504794971717194866490508812387996779045480881194824270489183503371507284434095507318470118143424300091768847725115641279237914166933416935705679347490985773260059719134395841826421135042390440715749801115892295971721025128669993693130005823735770089860790062284329357772749683362715924621770178943431389974774326714641715011543442180120487071511043330745316088811786234404877533535313739515190462529756024407954025525564587773167418441591795099545253087469820210861393655199970337366724103924843646223869219654663690085888449018954912240185269809091696956451933874880371186738379403449767050962448438743032753359002745527125793692439102295396599615943384258097020927922925279477117609356699487850776314520314528967419477114270603242126609030142968343035954953503668462531061340722277923372851707073314189285951890842345316891432705641532429594605363070079884072406149234533155817578205635892387321117224800794397116314026923214114396320190394223723556784382808726242751517114089111543153643632020119943453678740247824676941911388487287734166250946239296936935366981153740607177888522593756399946328524186467677466102060101011651943025801961520806729181571280457107988259235820369677261197265171127703855973521000194108159747673469689358163831155491261262510579300544788827504330394827733868734656989204828597890087499938421383119563857432538218699696256608279265795558195752322024920305670347671877553037257733242174581455737795741917484919903893722029252219289435968895105352635547642303671567639609682856412729062916800739377022829214245313148305597846499043292681405134809935598302692613715558203654053385047063002110063724496923495492772687541330712895424627484065389323594436925193267682560310851437145417538910334082475801219534074717951524592655997433146440908055017433878703159033923663829235856559970978272960976840792529276333372938611433527337830154694709515864521608894928779715918961062526231531179353234137199916131664161837153391410277268825301666987154726816867586254338128594410756701257212087933020998701328159383828194269965869878744973382451565208392743789821247457922072447911294943764067183665355481789026548053375588195145953956542983924479997214634312658898232184503727756617833648604248085536255101421738840434530590224720538541305715368416238542779870278870123612929384108313650566675509007555366584952021591160708047818862978959794854539310701754239330039538618759208216089833579362330518346708896257462253460205995716834498878564018458253227638800909951918152057430568043019847765138103124334909665771130629179140000183267525081550731623062307984315854668816698065196943575038028170009926846743257477797027398366065662194590263098282966193475708037557699954443172548366703629504333595076179109464789775609227568418966397052839347661809088251864622428706663906899148458048748179072669290771231844255784768157550627287224608128323291047093534448011303439181761147265516036287532663617803422079935913900198855024978490117597795851459541934015748614713169811108645469683227747331671995554701261879618681540648058864669336800733856195563819795244076295461584485617063401867454849496937316348537302115853497438013528904453651481739769629641218080330481031073999711871519130139123095729772210054313774984679542309540595682298658816763154074555613997660110818923231392828852539729037147553471611423087040313929838503004619901479981208786701246839824116626665965927107742951254343760513449357739316567784188723076262680543152886570512067326112591898488041474132248296200630950358397982522034092087755385113971971006963526517346667706868868925009593625549016712695073676079020645790678557194872659214408187471474459320110371426366093949639307453093935611681532082270909546245573169959360748238621581884534001196404247116647605948875219425139319780218661562343395918423567453032917663877919129475588239953422022185273334199849997248753048085922226470218664380030032836731690049325340819366278902057405592265693477188112949522877438583073976511058451513769509252422249914335751350485785590814996620687091701446948465348755852571404692192120465436918354343773663789693703360034815513428465082828941484322576008524296655510657271983389946923175681785339016039644817930498694476552879461523192095473310153630161684947275900239197397792066958337132597445127783571616083142997436477576541063634903081215336290907221036085957345882804688816468014466644181966244924210348434986322466134400824058899711833106916354500174846396107063580000760061694642098799508076032667265834011343835151556161500115066568756752881823909384039559372833076744811728422891156221359158161849188241296901729582711207789334836776964630120902561439368388009764604010303950848378365105719474119706147193332060436166597427092224617259643233273086943622925833563322280827696251241086854676614075571521270513934440048008333745787534314245483192141481218933692925885992283884149001846860845807112222707560946355134548279334652175820456180479059073655914104494683575861560262646114870252771461870059946288852882060173094802264472058645175058155047104327623466435406217162641918299701999985187525017523536487210335095170139786552775761656086469131807429536467668989968441029282283534822241765780581140185262408959636640542552894203064730831910222415920212416475586197937833899601828863089035623440887379273720856222243313232281558846052758078893252437266960976103596364661070250340449837694755486937297668567968423172463783162577821327004128082842437166090624382298105455726414113488329618384898210258986390227476027210659892949953325133568176721128972734121432905130258830572301944501024013645978950733635041468139848020838647339211544502426034094316596114632345815613142048441969847412621408862774250868612132068698467304347126042459883786574273603416268966536900919090368340881892109870454429585628907219634430867419264994066520438638494030696391941116214957082352131114315951084670521384861789286744452038703288686283549987991842249222482456092072092351638120664663651029352748632726373689324974592233917650086999669752831881233657225287963785712807210114921624840081443354438336794725837694649351755626584008237658363782582310137023909344257135426681147787670683951922038459498011847127816867936827937816597583440141675595363021363735452724313942631375963266212686318025047453842914579325214592359159990388426369747792642154204301873906135169497999406476498884075484203848434861416911715317938725865201099531556319655681243358942706195421815252649615957630402562847054242541374383151716394720082867729792791469232831247084454642709061476584088200220709050472832692062158595319960317221143587051765354079612856260591397200744451715504966346718514957262531254439205760418974747332229546561737033881686140417621071485924524287480593854138617113441320836220615536423833244201929178061215004136859801204862829866741582288553100042285852188765560872202756297642033924298206035003706407120053213550343486713393246000234143234417489151424078851247319431514762771518322975233750966113516306542535532188584518340307870973913075233041784425100000437257507621316080105714590992207888415179548156200984231219039281480274234929544664787610547973329005432004440040896085863986432679583060002777012662614211858111141130512593747613402000382032722955372521184838962705166402225185504129537551276325855427428296135839775764032536206567164920221611363265800737040819668463069325193947358472098549506426794254632397447312942029483135529992078049694488996335968208332381347026462362425452343952977533221042093845123295061915790197945683094930278197444009175508131154977336161372414284047864423653368202544824107605798215670951971536550777315729747797342499197504453470327800992216726519470963309154634270668712876830983049604720407439395365427600048248007354870241762727394545633576777752687405851910340961202324762674002602027447146453943993531800780874829128719239837618446343625785604850134250210825109678208492603924712254523474371486223796885645364092118826223994103297531269023309194200513639298881993225961675377342551141590200361183601180852814946280468211013120378339874658510525378224227500009085501536436616241186114746538889960896189100018792818843011511891710840722929556713988576351072098600695033577551623422914348445540408542528086865193615787254633694577767496344224454416848376586306853034844232772846335718990385316910123025870404222860550940366739336017860918599809128058851490407100268165200119688107660843393318516672181555738689540104894006095398603633601834334404329583991389215780974102979252512459693416430350259570209102323663512294907021752791873421642458510465665898756921471085945469130517518125778731893391213043335577012312010698972090980851380764306886083281678209679527453083985347329514169144862221051442549827551100675253375804685419583454221984737702066248046884922179007655044470321236433118787433104400554607624415020646072846060570658527049118282357595965802238357934135757169995349813755002917009195357751162032895565373424719454662458872567403988813315046546666598871823826099638254057059930142726220872117285281825848130780667235108547743236378999877494993924200719774082225984854735441288055345998342759343926385304312393978988356386867743104507887813836735752771021614755814351365668524498335449525554454486710538475474388815412614448521769302703289719971202081395272820917905285980817165089421124597654816102533747169420952171675833923981768185896250459221315470856070664688367024395111088524892544723551770266883928467862907181919390092835866940110439870454466907493831482594040724015785140798456108518038142186932614486740291204829458072207140608612067097906935529153357841706167375570583119551228362889849403173106682201295326961867346540886986415250697205039327975525472866135664675827707452360024282377159840126008143969184315316699240162164499804134650524082599546462203945558167190017676087735282460162730999511362167393972568286196640243229429953595151299388692728952302607469489393530281287072191324623347919494997722187975774665408470460334064921993996811857472679067097244787953032911525116796828580634872258535839098450396436889759146453077352631212727573633396043602527482591775557443402111248153790754077088525039405455893884178559318432513965652248771375138098725583842224048841950436583102395583633908954381374733760268540559640711031149661495165475906031760449519220300814567211080157521569917323113841732034235978716984510456471488046670192595359156644745926307543642419946345360018205811582918119965996307186998619948571656441695604726023971579818945931425393024096042210769023309791497796664568970993398857296901670279309859770038506223937061673833639919767875560235441702352803261375982914453906521493272135399509020256644065251603946689353507850529261748361177892834576764303278333002644390818486939896757603284215215556803994545415647311697491275380211789435467718184991023186482693915584851821616596942994955569329284378095811738170089491848022019567580784140593225959296511547989507972814554149224125943082312698023692472624957383186931761728530386311385014467858861350080685786900688057683295240456528409116448914226735276198737204607641370264926004585605897671258486038332299970413375793073124077458797570895036805660480314665116745541599174962145048151070925075810542147371428385112459738551698840484153220600057342134188707410968892661384153626328799172490829812611936196664560526409766202390127154055903738394631344263159555983104685083150472996493231092198007535121755313033294171164817655054230837358942039605048145355185687287081142504087345227265121813845771728994575749374133321336238124737626803553244042937946261438526561553710417863646634382452619315677651396740922280838169508041080454903118609815758866787243991716716023652601123377630531187012936990156146695960118641840721662333514306178937962621967178275001268881202294549969052504160008557089620593565187193090153675851515852702904994568997622687751946257295951109603246184438594256967704525011189962084707640929369695866383278370565270129089045929872694682927680220024775982777285758846423495583730276858692045055670079884563573364439372104245290970539446258373980771751856464846384661926782005500553125971691388846646672806120520913665830114697511309187026943101373235500327514377726236020068734066054560393988333079216274103030718412948311112669701000658474332811090295272138211748956615117611648705736048943696592320740367221556044183678005055889457166000656566076495031088908202112368884323597221045410754985664933570514451569017850741639947442914116321623375458683196261473023545734850370043807700308432683440705723767685636772720270515156431745380617865202657619817005317992827076866101533822477401648334288160818955831825695162801924120926139416010399528163873058362446912890526766403690229469818053048509041413989791567275545152426987505804243359968429214070159646677225937782285805519726352526095184840676536171210416512464306515132061448060082026119333773536399566438118523309169923135473883451777257986653729767217557188352163339759013942678103235698446412574701220564197129567450144580847662906219899157761335289038900160186987988812958500586455360599674268435506486774450525820129395514575750596307044906252020619961839731970761422290093735948931079343685702759988062134956919103554129826731534137270079471775675339813921360335575672893767534076133754792033498514478511783252132484221090890296143209033651511315380960616991469284638452361151618382110122033608059943645545408289484205052425722292114396835566075739548041951456358969612156986953451035305082478568656224290793642203470304803832815795850530180294818311020351913582580346945314167203042014537454787863734698100773671105885264067949930811609793368249231594100094385181018657580640673270265324031105323367785751514686994037861988569755969689027165738178553577089388552892157568095211732900672591434295443228525358795898745416469365975088256433458426810678391969787880177450520547686411664708819114210202329882967999983607324128319078437270024203340378362721371037750947381592272240710375830905556765742086046797562257434512509875895163204862293095060075099888676191912249427339372274389459542598462354950676078717440869076190203093231469955544295717011003989253434097153347068949026035874380277122651055602971461363328796827043274054557385600680103938255245605289323556716592286007858142677142569743068030281780428213598941508086289631504083157813266077591429584676993822168848802131736646038080448736317789798160782489937041693273920761315569083649245200516149774698566771835166524891667169288917249463210597569012257869388205911747325705183090743083126610822337841927912226930113062370053991392270919321356722341720907095852555610270964480756987595645055551980547743765884562822756025032884755392412806022598678586252649787793531785691705911461457093372898229886477816504028580198042292043801319806954038529232623659727571496821071479930974041549459141137016663564608267985562748597675505472829643165108337437303326507008967113092975589781858438893251922966109242495094194457439979178754590344507741984322763124405567095836422093496001695874055125004972959772777021219035945633922083735932763020484875658237500652562388072321877200862544408610558134244360219453172956746398925087499216146090897653587660147917063904912273497477908209134252483308877178788161810169649780517168485238431177843376158169337261350519096973696211027650608967726266203461433925352484689023205908737457149470899129888473334817428066808135181152060617300487701116740616254548007088654165593027979391544907740038361649573732083731049029376924703994049934658989404399292987527217282840570366008633709649440219954817449117844424433994974749294817741274980129059790374784316203953770699441330356344330356927055179944959103452100123833398729472869083202744875017291256235290692582473840921160994571882927904003816967140619823750444535119905414065281321555228706866532829408371420413385130443301390972662474057208411956580413647768955315593618723256345594565049322764531385484935179822444871061511871004743921964912491736095867509584764535721946875166799391621234405475814722785922145091783204618187852398788273122408173007661720818774145768561056429181405927558729132600212147292619712110052233316323944681924657246746191527697154762563352058565202457566418161474399630475416455093735269400627592473257976969460806717053399919130855414730080082042321191191238209293652391930684333866016778933989125993099579571140066650478607319921446677642509159847578868271588308471063511458361489846622282295246316001628259023357709164626720277090391818514462714125048684686741361621316043141716144710668124448283914679836882546283995070307384460786618222246727335397410276956791630185847679385854594023767303958020414861429419054668809474826379638077301483956164211768386636818567833502099014028516616341912949535103346659971675447694449888369038651277437775739721329128832474248787565989497793253801762261870273672339649617911901838294636449977121118143604501332494954022496576223536332532214350117809091224360657811411271673222592043609009025677563471239208727693546103795695554936771026864140035032586807738399453327421939718375007815503343842441193610914118090971242842790018780900869404068841281692954238669403501590962584178012857930391992751349492209495677413917455320281641827094118809637580835761822689811703069203734041974665835709041367447804832200637737289486443689062041224926511559158409117264652201010889505537784624960292809498809581928268535292994954437122215687891764335954542610836992852872444155738237205857645025526274914452728212828629382654694958689586426474649779702242063869538821512239723945591532726578137337990193639218623458945246508210424473342884859805448025777441390600626647307325516632638144660329918748513802801033497793045040637133110633866710564774509905564850192768879365771308557962258864636502231934133866460513392790668087283643420185245729439449996749321036547782951070555945351728996878220503437258068165048569675161022228802215753358814149420148080946067477494788471463195574872123129261428461909419269874386943065022131922776490523978779509762574935615109442203346407164000038880116054828845223753699136387411832185430763709928806819926734920028453513199180821829541254642437598477481087327688110039830204574035638190314459869973175813059906531796869885335472590569234495699685162678080789920815711558634712404585395759422096632414171829709496442986398382349906627263707321152790012441007006561720621841220620329727734587214618833225290834724244617594386225800025067596880496222059141631289510269113600834390194986740481223814660161104392907924729810916416330488277230234116340252771704103262189196053256476990986102148906986003563806606773706759905358551153088359420025349194568254722802342370505061669021811086389053329081622438689648207532049409943753925097246737520928418325544142379511585527153954217065574657018348871779816201577288681630662093182581604482629545251079290167268832057735972640728983190142886312288571128422437705179823255403625079092252954168358149627498582877105555262773351154645790919147349919377695806138701326587316667148767054619220004076644995437887887195078119525847132572489496228369457568969172333762253528413941207934534617009557758089983024168747121205744767546098959852900889190431377729893358570935176034470583228175951906063616568602581823743083335563519351000293002272191449314757775923870831812418216332108432320837542834645413696752917591277666749344439923477781518627438352007469408141366725960131220563091987940981343849773825225512624344752294205701433293564851701495956773342859212467998669044491480965291646141798470362721055270802562661327425414277523377698147137978025207865443644406818005994800046863562622145870636308418882965741178748219663036647042494781259799177959652118083457942758532139308174393095331020122606019851620780499621176272358167463539729092738140974773420348634473883270853101983628107207306335469842926620602681637277445595470259154079786044396874630657872023412787998102249828404931887267117821901374158113722850891135228048630954829273310701524486708603981517220566797230270244654393763446334381957637710720825583029633042609448695120608612591387661486575915618926556774218112561269167554896295082564003444990487108432395833900238879930208844713411406056182617680476352328130432938229682139366063269860427693414375642873767458187797637239966129382388300539612868287089356023581549548185210982158586420953626401677864708738729620132727415165568117307853508785910304170327531511719106259433549984983744630030022394319941197525827597416780303357824848572510584759658727028326131818708029873903418443242769332023839367319584495355361728822983654608584710275374972949014543523106453232362868160357494425207470160883984125935072537438117163940717819043413674909120560162595432674946245908405065653412221874660991737106488838839176066865940628505139048204769004475211777252874448311696799326566187842225466741529017449682698931435112123510531209274573391424409543552083684057700081327033461315188781190211170927963265646497550895099550411937542217823166603144172738528385483831253342155478740824447891363700614259049194357359156505642732300006430707627591775524414302955133304806373641279335409436134349401067864883887893175868007182483289196513354687242242975172075528066100913795612279681495356790240521330928363089677423890554495796281269994949949324959234710918621748098781365645036512587840839823241647008400745343557877511691608240051585633842686112660595438467043450588175551462505005119251767524142643734466835581155596521428725813460259062213957370664510512128576607901545142539911136622251692391516865181948475249666051483736315054690524689835470082321401501086338052407054608110323941153828578763526382615492245274370275432133725245768101141049603048278363456829305659379567199903687422236482872598460991161937677944520865787178912482805274771112072244159538176328595417468782759071429518947702050542853512973029732584183933074268254186746938199297269826431460010734006377142928251114324989528392116826781343715481055473678820095715914091353908311629910187591145683133142155749690676077211506273843158441020139594270880204511260314067973132694248515517122221608554631869938306117301715602263639120895400162720981755520413195518214284594483486635252922914494223957021080005699555186708053766925186012484553633478173872139110464818769264023142934220447468941682712326643311982345112416875386752210725504314395587950452549025051003418140943477653933278546594302154261539252163818754813335348179410277852006580874698936233078111650473224856833809778529615007977601408246243352645510768501720967423086145286263591700127158151281568263373612484867547645930290209690216657744481954119887932252910195769357806416893854731965356969228054843613086560506844614683121398517946206155991700656948362809885024108162581465508550878493528100946719982367300803953759741346490614562188573581781762817180054902772832465889904534570013522067820777787192906606657867662161972403546403662031967711614101470284072729450843161251978160760295056135348372956341186634723636448784032182821956604479461133690918404205831392000931345078957334232164881497282029372207691174520107284862605637676862584991536702154608037845847495154173840305445371466932359615808315527021973449545878005766097894219898186534140452303814208781956395331636878694960807931032532403766881194239928104947110013902102478066892413413797226769079080404626123397407586398667904284976484605342664013063714112836379717238258421970360939708437866099536530885373930899617847918357456700388679258562813438038592301426985381581343721599972824092203375409087555119874111640385307235187894981524610500728708026207493778297667550781682201351742358666924858250860994907235570117704296799635645266120308552898231883660008158529429926753216127943599728263027486974618311500937275491703956172011656562094298525205147491401001079529989006857094417090349421494989594096918065329595043233860017843316511658565520246200767789433192146948059628842078611538515359571785472332775610715444814507345131079514793118080150037997359855763942365557371003166197710632613885922698421156605446329972456219961650711628453953171436759646498707380050208264843425586698977905080464059497274099090342438295990237267331223855363501373345544358375546139063597584684727899591292090221828240021411833917536947068986499801720908050207095619757763537555862503944106217201057921063794434346357112066600891573156825630149563882959495704377865483695106930449729094148014277300066298737947331358178323923663234056405240153978962563588242356413359641902285920260570425363092017512827453842147040358037591403591522554395164781384205317565666001104738635088772311520473941255379287115709171156710197697250669100881416392548157327400992902905109192724753179564424065491570156063661394168070771018044326570059412806879211848164457697496313227836449981521234475918425667108909928080422394991988667569459768707898395328906102949943640519334047494099522260605564817689689711570098792975658295473036921279139849989066261950596412632237957874820881888615861294300171753803154439022916947789209341811657722612473052999322800525931502380222543373600378839497447237258129157560079759885413548626576854983515903560948917585955006249746238136614787976399894393970575833058703836028155522619847996479497160882804903046103396589813686633475799251264886005554543636259432679731530701310200208386834288121050627131023644458826751743525535559590986203576154980697412409572938591666051593281080665120044116926578534690076978759592411426320911701506208035149729764171659936885018451326264731385949986500097056582130736990834182791395217021040311727816020861687367522615113513958602424131183051077147678881083155976854608294629155547410724035300546727100293441487832462095914689099737152998202687970810773867044325212747909371483912035289689648643476366668132233058043486011658353094069436995852196976066420967662797320420436781655848697100724155566099157078723863766026865400046386523130507688522234116573256613993091316509692991642132550821385173567143244645324429316836694127487473237762748223966976239656238690666288803120885972581754070820175844114994490988944048295779848255388329699301456309322818940908943491559739890113473150886470931553984978090690634126339219744274711677442902948521710791016272564888980135175751783132528455872017681091446709843797489996221749215774743047594576826561321108483570185462861033269544723907130190729178531029402197551960283649503576067466330303628560896950688260637900532336685580563150556918210686080895880978927926563403456344737900840738063153888047718707992013044381082588920461816758507091000255245344756818141273520832235106086801788176139121183386045929163410473768498308329119295534791974631046380230669303496364293513251645739775852683359250524668429172010373082186774842521893274367037430353087922245537337078143778956492514899643646560103230438994626334224479141461953216901526882640652743688614633925749565328281022479315817613659995177214187279403619516103097101371792567937442209299881519746919322080144814955747068293958635396081826394769393412852053124876915029028435609285956698234618365790608618210595705305488600804318338243476453587765045852497651777356443567279042956426656729134296913105152390230073803931151822927562780135623727755325970670568501540878256976674959998010633669157761277357806376526461319378267114956169236501314963413518298392678644792229923883740932262324204834182506208567564308759085668164551779736745099127662325445440473004786292456989658367457867932867521540411756246624290654593164729287563112656172489359216737808177553017605748805939440892019117434482513099163334783839826974105335101890462267514126443382509215311176789511931060267282180374616084567723727228518002629230811916379547076217071732173271236903085285390665031338921643037726609851231365683556451078860767876555941521251499802383406401446635540977920889096252742278391943545039731548778587525402010339471168758350604832475980939076049287158496550600247122524503625643245614813274871402876010660248721795799714159938760027425558778311070730437231871244444720120854280361420522118257561314229649687539068164797698449371193467831593187104220016003562606767596854934556134250156677542566732119524330917238206455267160105127564221896270321049605570194495828270778011114327549106286459488361656864487354086408549081413362036400174629828142314152877416934762461603753223272790832496878430040816271705971857673698383631620010235973300686612552538458408016065759028895323764941237720502101947287404657594938431972650099982664526903200170614608698488349990123848601189116887577578415447239932644888672246113371923214285513368148954280905206562840834470415156063330550168091933293968601983511111342669514865372787007527884285896917243618300902557189629103224382673931236606558864688099743133656648300084435662898639959076246773899502888171653757248563266953773923230995578063118054196283750366734792586015167757993044864266564004662597899214748868399775869331289980984068415221840848496100571107093062066931888144940813059402261421324883072766424439331126204133989054641129216386466624749270942084302923194244235738314819938099640269337587423108300266740839976274525244806921938913367663334905844543935595494449359506676526324665955429684731909237796721224764505255732752048835724557616954245991400457373432471664552485352502116829199335742947609251615814244889936492611704850017922951175024727817780367601045118297466194759415648429487444086991458671763510842654375412990115288308495582215989377300527356251473491306162621909969469844864628707472060430349320468339203180463354151772399498470439253461210972063421444147313081005134806200851460368264303842828710084044486216315345005012209129431988697009430198471188410108561672976763262177175510542752981782747499586671322560085993931725415850566145450459144888938443030144125718761270014194942608385080329829185160573767531135060518845511757860281785227274411127225232172742773710486546428723485624759618657938549759346660770681530471350320527867746706144611620135782345685499780994152496920286875308642291664295408158742233011164594013870811930286986296461089955614499856233091987088727624577793109374776016913886434008033211870279557423056014260070189874314265640902448924331747577179302707906874776890920635375883588579494059488627917463370481224702111049606232960124659971299526012687974919852334543289263593459009211234618240664611225026389719590527409108155835658103418244096162935070360677080001744211462034324029587070109705219875889408002689970472418396105392678017131926025121817285929209462981137551016869462070425373739994803956572575981550004166107861687424760542924149662482162639176038081905037947041994384321039309724020286258321351945507225459631949642053579628973426618481256630940006333479378491422382635974574473364989415497916857769479280827311456898822666522416943803425753627032742837142538631306300949584519351100780143582824629478439888982525503392384583136310426365736837388555771612706483912780936852322753237923838018299994914469521594964277914294124866759109915244333675066356100526099653150563572903724352894170135987034470245731649355148180979441146531805123272911853382053244165718861614594767719711604820858799196678348753050644124470918093152827338812809995150845775157570649743529022220892880965866285602432602367497536837060311174978940276579727776982096781375597402616574121944985991199631879519927422237543448173763392060622864876219273627827450634198756967901909688915155376510240964943886365416969617582561859362346307787881308833737344041083702318340487167045164823662407035157677381359636358413126700830915721161122428440339930838006941420686531434313682531737288536451044416488880641644990486018912266109722296588544992854188041127824151512438680515300145027369359140315544769236607902866879214099380561478761765522526324171586825527074284957792569880460685840407515206100673772267853755960426087184530643823181624793036856222521445318074846921312808841462230130791648743480127144431404984501425473147437919672282921563965889779736991829043327624539362071210150040826042934019446845259241191813127848856212656895418659840610211846254652827009695578739311852855095321660085912246068329343682378692412505982217966105268457678117216250864979490513435896739987268227206114039456893124879191578000137633567146127184649976897825343577275419415969836469204546256519896575262544678403835839902262101048527940924551496323713095524859896317833239391310606226635406040657941643609004031872339698984224541568304846095025878298467404491523052573274532439447712832439906896264515418449113614845971061808727544751288145958138483761049020962234164413649002706933454317198472836317485185285556102535964597296581677762795352540582537396214294683379235726618536748883452638981000941380506004245421487165250146089239208403536099146668134466552465516649142239955530292672953684571726116740967908891743287374746530921976557489816926576735233528210517138485820617694426754713180016754524843213282348460394605475353270085093386386986195012163853221220089957783754260940933251685161370457233256167369355491428911712708334962332411477795104575489650172223480703835974190734430004201374256868242825891895474675627666163329623655154750548025821625080786518929318849915077328500777477220550732083494316878440118542948607451614181616185025747963455610127149110704168125274963857557886822567262577106924010048409929287653132205322871917922905070310869505197446591874714331729209417963804507370960423206406790790288690270375750833808195424870549370436980752541490720746458715365551813929751371855028981621298824739046471822169081430658056218541094188178857254277215353643865108339989365684552473196578376634587650716072309545484444457071815626462022450486267311669860149302546156799080215375722764715496081939019251526014610658201044643889410213910499086866099098409453504088776482873475546557254882275051043007818534482430515232477997413459404106791860337923239727696565686557113139908488228844475999586384973971234914226158844113086968345639331327324812743517694711763338242997527807576411680944076834977490816929332668659620814597966552506333943740488046228393350424812207959478453732564341490825663587037445797797255748834291362471445020458626032572297251032494658062217447035018141540626445606357418442528760544487222859408229728496076059580671532431049535473367429020958804444790016947247024414628206719145902976000830816282000388293790174256119894057782233848463689257374061534205641166858054249652106665887009838318021257428286317648328710241382377565830827204313454971906648866095337916821427815192900033455879227228369178863600662449256077719751309750162228419892793797392429887911337488761531865535763400758279969834941157138215170159211291675752726556789361157460301640769817439568199126280753879599979523196057590675605938985908928203740807178765564386983683972990563871211859138967624601103260274321818505394494007669557092459412747855259266886831765137376008877793098971867182339075591040502617873332456786820892905872101624222408927783703474468064585767401900414440783064537404063124331490367309317968782797642865490425581606119434702782324979088330205472867454815990138205637914810810069387294491480533055942521707273198180811374388725332557564790038750859440033424221059554507139192224611998948768348026115609584610279880551289292146378788959866544281564296917844159280809552813542114882447509683230816514769616519089024058031818794205581941505647054157265238116374110669518944517163677158101719771329546505652563167351879357678388559224150584347751410334820363657687277433645838888403858104371327557386122526387199990900762867286824936054928237273097361062437257981048490707120243535100659678328974181627018392389081665978323037031311381606353352015067574098976796852555271816638009080514893547446774716515621296549027758724363452018964450449218681623884730318233694547382546236944669709471770443166210609883565461306241188157438794574794803521086238171602893911024610509225679521606623162203940068616307196582509320756210155606463444378109044827983205354078184207663557045885375183526173074432077677497170494715301798895297709431392956526513999150509336112382020053122642194715793780753158475677480573868848625145505446952956307631793600939975483213448421268241511692014238361483672773823340011589887674049563383088880402860074030518503032943818272339735389930958207608540124188865330781972058936386166089059003176331267552776849160058080556099910927532033801992742833948110440989212987178269827675825355699187762189799498251995366839644549678614927994644683228494104543207935085739526030811956459194129826888441723917400648009341772098258316911080082809034541685040701262313553954438195885769694835871585874917421375926785894973099009166859002944557362169913275199937164251739311971093071402470525817244483181844244654258874558091548532147938527790657240777606957320398750597339843885480409161744719247775395439564190925610535709389222631754467239297918547360633691724965199849106286486085755517653204443335423675335244157842914598237623010680062356782552758901998884658119270036199588112524598664086668370007501442035246488645797337762502451236814903075342110700953490649665862707522329433400867426095978912672276263294244066954982874126734845626984756216611893085686662864598435534275088172549411401761026429935961800775750450285937950234460124957658886900228867701924892152601579724923046283570594190302907218032462962621504316208996368743889082254588056631380799266628288321843158243218716927666353577061950041085738464592192554823068649078192850514016717120553858523829144761786010203120979293892633690185570156389426074807483328779804037874420359949766289432163827118568316560781820396363060564113359861387361943262172232527728156538326584406303088474117140104749838980072590236155574343842465750098222652361738687792333515558206311687600509690151712734511053960701013961876931834450992702456649829946943988564371483769214126349899310420160550604983363352402906373680482786315779256009778219774245302639579812759725217517820631534117587591707804469423169673048102309956387789606968566372878538940991988754396728578103907449641732578209410010698217614203613102472248201150544120177402352176268350452366659817630801618653319293700708599930427638849994792646875840933549360899397803910041872770765012004239406868442856530857632210274027786927784117962967278393276699951069232246575454777977353756077432404085429830078017648336107797802869898684828891309557318602555975517109498235290482940787060416190495528657823422091469986646323928378651087711411575881268362969194761423514991264751080146050712026551303568409550930014992349489564134652904815285527204045539720303244218049086984476426095116389345976002076081338292195277783322292333407181505121188253747557007802372090089391715899736462209830770466972530486926182476972508540893108025844684594771731511678283353810532713591460799016890969942901431661358479926984727249708346302901571780587126358427034573928929127691306572781480423118590215916935196202343494749388801952824975174702243545719520729410237416971196473262159537576967638706415622790095237244937370838372348865813241074496447054712369271321074423074078173453399576981049196437425452220296083629825213079524427050782379511901802657510126031206284315412500237916201569324749467568475922999979392668028765723363459646716843794322494662721535861994416163061727991541886630990223432763653574811725296225090743183150785811046548222632301681034983883711914352341608056624924141358123290842084612123723341393103532520338891293894694590323414401703460821969369252811333679185249733981311076622444445976446342010753049562144733902495975695135535394614163029951053179451695851371010464011404749234847005428975484066069661603113297379545836301896188707047424274919033664945025719960583828241384166176688476689353018847622556970192650194666339501570909192763203802526963221205092812947333333889535070002361781424573099749936163747653156672954659381039603690736944867991902150879715332081139060952759330724230781601804961304089647368317754957203178945105671587280711071146797960705585019159548246982316013860957363667087936642757349073875621526175692533926561132192936811809810940391866575186260814758730753267633806093695178383020148959015484048627231647025335326438625942847801995156318521266000222653691961348807911383840334897728795944205434791728333404770940693440314035088626568591422528362098252424848480020554627593492298711616689618176244795770046601777325124260016986353929463983095690468706589089924479362211636354015176242520662581885700513323268534953879087961228700456259480589300468659197846568451562952546618560728706139520599603835488185274398753402437504147637554920513554182527860855857521163676118347383443519459819457993724989825158040784800811351181367052000626051360947379300681269084144923427524615431509207370311453366770705159499527048664383685141759770015255244650153104123876121460938691148252066002100745245841769990106082264907052396172653536829053876599527019967402288571964779965199789636063589791266367057461429788900659159729245227678410177414854192627509024954584112746601989009282737540445330295208428262207367182933505953158512973094084711202066821375083370402298931435007286367220875182959503909992764523610384546036777346895050115708609311283979195536469300536510915096270083791423604208608054719701393930579188585501768646846447869816056636754441658449447227049208019882757475176351989259902619219029346740682315938044800263130711609518976045243172400041621029832567803593703341681078590545252419492888248817410303790554848833869461501701917273904747950277097812139624712365689926860371177557806464992435027227701284853095582663341139226567155987663540090690837779140739228607591671328384697179730921402495214923880308478086131992946101034224852667778838283799648826103702450142276428996232605111477050478471066871380694794062532388961275983173307186207544400942619306092434049106772029178930155385955531354632828311752636601955410169049560156841944806339512657629681401110102710699145112123874100344145962710700548376063033482514392666986932038346137320060651419692331026638445379071217195846744843346943982917679585732628871251510084763989997821282834763523923710850822811641652596705369955877882075161615142993021890890902008158721376753984268403220511139092535134879959805490291396667663553880754700887379531870539257837789278539031747741897303992791970797429584996758914209063404955951674358409883896869908968451610607486088673103147033833442747393650510348473540711891495574069381770250896002297189828707473005126216645164034322308962401076959688885719631202624206209084764782962704039718999593884579675800700241789482625532716830877616128118689447822575975747811033152863510684842368955901089612072545026685520007701301930589703060694609824759805347938941589986388610761536405891870745963601154461869105095505866163789697208242909605000059071960750242096303020350519425650110917415516820791842752603632463118521985192244473131599090324090612311162609072805198935679664119409259884083113775437827879529472804979929157644222577551540615180751694234028501907051673197812848967620368101421706694074068549554290394944619442617114917553665487960754783665044596490864844618680526967450879873524931441368599655150113884344794601997748207311207137655048092355963718591362488932535678387910499671336753230549851376177485444434578885778747679302168857728131104793394481649033442819988845404210803315441460821035358736899616085275430644437824664758340910682183177434111184760765326810881641399205700095802289276382794465839897623765392439687155082357814800219951436540415431501298407404624386311188217650864145134360239720217343024868458641978479027657860923107835656421874478225130680791017678320061618352020943360272188200875454947457994209868301635644956089149897451854712331270931136435632513819021399749146717776019497399098063813480261698771241123430247900816160218911318379440521418158613859611876506141122996524825204297463498744432496491630971293333407298064206750967266188246259389621780180707228984647013712503771720296504009712639750300817227005674027349309156874179232486087837953890503572183464374939679580450133594331869273832283556294530422569084616986812418459212306793207826706121984084603167195227085763345022496866227624119916962949853829564252826943532076459240933942731502456058734675915538350760781017338524779718247228298043749074853275842587080655790939285176056389218935942039641077513108915154910674154655017359857285036677553072825188821945570812769479023903185615131710914516481583646244238487886305709979121045735755155754760715927193486396646502588710691619173384383107642515690927179362206303246117059287764975643170851936303889856644732410764305711297956428107229462291982858710737337066163581219202517614105602987126917706253978310354931370214071689810494100705266691810793586337614670114601597245844032388887837874931314862484794721683244216391107459482143039771517747044243102079918718214629746418313536877696285003571582826869223475752198068549044713975247895018544701258389370021044641916344870446928082292861838791463073928394107380075473812361688692680728233599640488173489597200171749164059591393792605549178514778414746853662030025633653578985212839947850644123371419952525042382487452115370419750978231634559205022506824944263060873836552050310669853897334776744728077704990671508116977624189687799051955203704710326555369959310174219954330702715882404650129994928031188206792988004784352067283842837399570426562214417590791450667770283418780159297979892270361446679419887944209092211328558958784043913984154790738142644606875804929094015355893804873916272588129009097716732698012827878554849576643280547821299013346174525183691668321749626352975620808752298113669815859580361002579891379738141086560699713196428007251714326503123117565245546294487086355812095557724489085063662986400342880023987676470823878869794656111659889534561547278489762213447909554953436761706119346692662929756141741966637383019738869484345638466013241290178930645968155954604644473091300786463409255633672689174971286544822689359302753455375887011880719406732957786467274687164463253479677268943483874286467645034830572516447768692086581863515384326833750337760152051227450588801015298546076485838749961649584366520284441370796075304199363209029999383604321722043488953286527291195310509585638402003143077849878135236818502662890722831156783210019852209759723053410733859300779962429613812755230698775329167618947066095688852043451894459605223600188418320871576716739563289503529871011353548808329508123844564841256013178053283741463579724094108379446852365145518498802275182970355130107732444382585008543357728826698838416584740617147434655859171883196153723668056422639783256621655623937977366605745118869004739390585590498173752237216760497516901790294678969923311773454932021023400531338133797078977724736823018163438270662616349399918269719589251787089785210521256736205926339554148663702413359275329040148823882881849905213424084150603895384509077392659972948790861952252396796433214223059232502707688869514493285064862792017254090788665597026505472391322085866110946751683001387641700177051647531548347455815475964444433942294462777657698655226156820761058312329283961441702442840249495999126086818267044268644298196954575240037230653588144230388129356719804521997411744921447509179882223950342560337648923625108506698972933252240215096861891327170613424730144909186442517663828248275169648639307776305500791630142186494660421397195825605969152452702026882321868487457467005804901397331292200012177473883423650157790014848717509901518580713597722950319589980066728317223182203918801941854316453910975072731653897325220903132550905359913906188220912190078010186354338991869833504479307071982745154453917673208885007551966619306032279260400862327122769488128524303969107068339539056845478884313675089670447679051193556280655914775650623078698300064171378779318789763979847684803092487709696948926366464195911134182640630051231180098003987616504436574789882626048727758389260996563809555941361043978091489102969676179521626547945323729952474623355432980324760547368755201905986049201804005956484874983203065611409456096108088185003803743338676734358901631583639087078241373076372965339766602483507391871870360451928884431853367431336562527638692381233667618594394036575858359939538562662314559554888842049093679747291510577799577206435990207155137000509647586225786499586784312101575476906835988246929415251664217100554823773896767012980925196523813549950813143383627958389511850491180436626974322088244619729484495779435551273163608559207094959669844931411872745484593801332140433909079127305265360817144298617149017238244695224782714625360930667554978870668540950278900767650668541783895597037800189541002614482610901191124429781889682075566427321218828756287038414114456973343979482904061631126590570869972748680938676899004575610622451495594462646868310609395567641801953148496108638428791584472338624758409563471752559282995563828775092037387118606322116936344926657134887051874528516571434474860639747781469680073108870497001181385957386361609835679080054146640404066825158009032805755316267190746910478662251025049688596117390028344386932919426436050748442953532483109119668038756129582710311198093737992425803333853476521675435232788589404670768713899601188806755297810985940468615054494576449916568216918535906376184349089067269949509082357902749338506496625811346913985964856566663296988107573156237717745159564985813236646750687188071498630924895080936281267154169966175466449357028599014036162376149733046541563804079983690918794388439907647728717502741091631492908911860282746095423374570588038467431260448703890373800412886993694541180591566306592078510491647696205333234986737258088173719150041330872580588160380719588250158832789019056572778353467862278883058186663928759575633114692919944545129548040824314701349415648844281451873389691840825123761345236093043560614179095954361699783771510385099933883148037618601712131929802821620030980550805708847426018138973402631232508463163950345885927829975043008044502183452279431798584061274653940822867971109268343915650717733849191691391011169045063206728282031191416216266744682742451371658669834593757020294889080192246086191689888022863230722059851482223614602238389082932689315564602931758863982091173691288346609730316732891412878667117674828797503617140241089722128301321711088000570836148676761571951827176426268550451054855349574963667434966933001511753275926675223082724107264720543612818619955414252788986445728833556098778721583492015345354198446071612566981584727968616748221341370965114734173226304131670102798939985979371450552474808597940774030240454249121964637159797882733792598415074646165388214545559551652534792103273994111040797602879087529972786262682284745946760612444489395519749568834324768808348595778463501469902742325536687075652808775206449665520885869468320127523154834928285447342235337835144232427701546669137825035940383220164540234775497087266038199681614489453534226886361114726780341092132266680084615756295640920931327885963441369535013322871025269197889818262917114825766833038225502059584383280145778191011107696853028173473129587678640706067318564360745486302458240066233407933826642301358791518934019713131760898706472409944781762112145662857551314743480335968962254461375941217587827254412531460722930018930602408378235449965589327724290968370041341734108588403611143310600139265811479287399223161736860151495241263401413763327730242608196335477907405792855864145646066686172014024115276655279155612665972015689088767192352574403362516164428980885408226876613911497706769704224016335791182468874571726319084111851469023578010131724348078307189651563495731315275694608392452904687755990508011948902273971325415386936909550716607127924508772263475041665184856424229764860089542697113010096985911550296634972096318180185910705136686721330350655853659310783295478258855038020270206620327199223895369806835538316693001868422791964976212710822370424791004724930656233371450136039376183675220628292505373324519390266111935517750687057931073147829808517612863897764763446233070335273338767800179254854765222838364993449216628848070657404230669959997615467623170776638121133872966188179731692118528134812903769780745925787105622155822436095968601026490591308036329362362171755149168832496914090038527611726216677956531951522194197597297600349067002208015537383504783235691697215394106909510742519409377021405832552495759151699992708889637930781877087310158415558714148140680364109307134866586358228480728243742854402253934887129800701465093044577130540982261588742709951519594752008286702765440876703079878471182235592643913354649469839318836328406386827000367886452477478778206104005955493909365850529887354942891689230916850779245175363631654460080770479312381387917552422329058980827143100427565873163234812269742150232133339506066527569735939759196318259733717035773868746415626019721524151965407596574510694559303406237834207520864487117652665328599973217828563400566733915874199963578845402940961436359526731315862087062647716247640314767789859674075539167925834767579525193531527199974365728577525181090282776390513653656602563252783433436028523158244748183556506287108282098588249284538754484792988954807279753599262612717003621302521866130429435694305934713463139315739948178805652699229148771307266391145018507396653031367716692119820675930033568499048164366087897314042855322794712557455446223501124435253099632437687559110015205948452628778232732532082844986396349116785631986500288696149004983680940918338938739514602450810648343103757719303286476709345930338260714676592736324807401152890254335943030677257227453310229383642107241373223302668519398086643086460870656605643654287080474370895282829209287469586765787350114274221522965105018729724797275046930699589762633689556649281121873355923986570356734698855677061289926759390761434869859397804161990139022220955444076842404020475267801408272175394606092007483994525004938844248266181128215518029536686591924903039999227797219477829808025062014037236341327269547215868495252548719583452743133234067853817003544944355095714779895532817336994480115432306286832765468356727836446711039122172763864430355102912956918423426730356743128666628902735407200772090318331114280470897753170548154586055112250324329307247559166108770549647900026620488539919433026706096385314587990074583953557881000143666272775596567242175363061545443613203504816823399990360406670823233830861920289937038594346600486651120389844888509994531166185861352067288932123658350660878992511085345028699706488328013101889960553751875546498266407114284365603907644662112006920882138133783982048841129316981113811166335433448307719053558589836271669150954088818742810954983864539266069518806456097572802747404570218551146524718036279741647416556170876308964224406770252823228782605204151996524842697938783714714334988620860795006702378904090344818660028808493709211452916045074074970247980378132831131718899504817141719532811836863081321769565479489048508773535291114391162048928230660055204351071607595363068349718386912001286433799712813737145866905462222484923683261802681318175252005575092502242142655075045014840401972819151694626600510241008717503122787884950502187035941638351282404173392562805621034138771080087447260379777651943489590812512613744279238156983182210265037487630665873767517483069036885415513613062613168234419987331688754107344619866007546558570202238009837033909486440766384714323486730964913477158574642613346110522559842994253572301227386522419050705293501005614321885424872391917157768925464234956126129799477557681643092327171331663382529127351548019909052842176434108616361918781760450940130218341314131992962757544531806017276039029561963120118354310433514548846346594056391869871418484571937913857019947571504597654184911907694405634818023948940659248101932913254182112954723545466454821406891109691034201066041743259877509003650126063096660482264538532293571102425536017211482324703959204214278778982578439649596849897733734291029251135607426107376469715590511984492422539072419654015390754630657492519273497752492084455915955547889304306589089897749151171241810593620104231246918008765597902960892301628288308934053097434607612316821335507547269922456504618448944067492517530374365980233397928851165066519025866205284781373363801250657369709864016298310141824721033648771642355963087244022591178601001333347609357917220388373673190752755341980341591287611695903120796710429038382767616715568773604929981939380460518181908729858626900030477066907808502686929602718802591531579832838528726758512439588065384268208121123958689944362251669079362447475077471398316405829901876547849475460596492579234338943281943898091734274463488999868734593548024181986368256722369495404140681192564242523712375795346900275390360180583129484851002063315067666162488216164397824319716838162793312275859329554035838419166516470668276396357497253048223809951350373422005927522722144299286096199580572260093176983249205723125919703369433289891412747082230189434328419438193933936238291962707965255244661697815412591116850497478474165035845816024935465404683441186478093371177935530677617033087144196090254249757471090369397311647438546667520140794502025467177019629902544601512273491617075563665258300410590249487702436385171465864842399447752126982136518751355453577073095584231614044876269141180909177539264920742773829820219458801040277564101824414430401164604424732115396876339379250811069204571439159960637368222881968423079557667515827060272466879703405994026402809460512879622209322504885195488654383991818135712261649607845504542840247682371692550260943254524707276196349316464406227290527921432911321996188979881341053415426158374473412153739457977766830503241662752784937728802961129572772494101878666651004585392783200168309184557254220908980415204681170732751738321870359842966875106972254261168719852793632868793581673726186877496409803350258571699113797531804358334260341284051936193654874085980587463660421088649792276514959060343913197158480565835555609105319465145033652474347141201714897397952681515810742419813817670898900511112422493099457641793527128998733053506197481185737170556771217464575989294086289041153239757757489884999669113700806110356892657516891036137801903367772442659637792444460971631439259886463200554435721533107038917275552625736495867603213730656995078828487199071248939658893083717371077624596288975705180610324651380819001966269641918192707070261385607945964724222353159931227476095450732904600122642212645778369393716677631425492293052667053589482474371491113135239285305752055083198481394083035814590486062415912203533883608187898578666072395105466885315490478003217552739826936460376765255709560686956366145557659654879757398370726746877833994776049856137340267455897878304946871116634458683859850238171323221545890522721179966332642237659378673457691925787383431754107950833332238866178629269255528147278638123913135292150674738900330554575139457016719940723294723740692074825146362987563108257681496643919719860987085639804001911913324376714406689973585372363308028979955407802692690163794799535840306134452631264485040256945305553762277811613113169570238847329284974658271211114585353872864328956280668629039876335861082452619073921994198506319389685600477534431951410495836635874612716335934067537772064925017913947931145204910246021874997310071947132961927641162587788111153353459215408500090107716739918439741949045488492991526735249064950185916304703085498348572495238898997492734120615034843999650425691575679093721746600557658513462661430376944093243018038061431861741806419786018062181290670714648291019927436851760264721557048965643096792708279296173673297174772650436650288655385803799256231001755095253446753485764528494072172475134777481927537021383477318631707318266355086802368440721410111911893049630919468332287219930087052757739750027622889845815550180529962672134253145249731786229484826261727959909234917906688093143961159817082399191092459366597068082307966008635356072243934782544074415533483831892614576310783767335533964077989506876337079827734957051382791492719229613228323413828005590647631003501512817315479915345528275423678846120153597305003573386619214251136239985671529938211444978509949945798050310139557267878106772257679729703139287162438593090967294023007335845712649396143721316759970869395796664043163781771825860495403977878569690615158482373321585500493935026000068455783492911813228132689073465225748697792826590272447013331541026850645900178335393212098105440167412056609754204268412895607650442221783547972847354702071722499898034216316269871339785561194178656054645451094325735867021376885049537476798846937281923839486663899625575742358768267106050952758271505376206065965492355047732323144387761230676779250791357091229370918954610969865221408037080890918299435781537827117187715996280892472211533202559874650940138441408974598787355358659839406724978226169614685487103780478401512207003326763602258218569997674724123759460799879815567964768681323017944390941235111131842858601311537501876460454647727925636478221115933132294200889615673093805537981496136120272065071006358277894999583228014244580571905207095169165647605581845332709039107439371101630854758037781570292952963980282452237383544843184974003479039818387732890707249727160796611963430553567251202496153924177814397172164525278871894840640308680905215912830211985402033231596679173504645454401046383799085815165585365686638079546460895797651752671793159854041233208691968004300018319001481138688044746378032310331112222496706722075496723330174030186614069647241453362672483343307946834853075441108247825886476604010484068393120103583666244209155925080003964131541377505798491601259190408192690650744671387671615653382631157364366782204858306687109110300997412734633949777608257870128665721507977400428979685010323553420972778936913649611590258121579402655954529460848471123724110469161670401837994507084459225318192715270153627635013016689437926603507154064433864693883591909968935851928234293294502273970146106795505976066881307477749410038339154762321851573557997920088867739963132980090727426750590641405504844866719918830046803395547055298680050068339122206767227127892170385454032939647047623487008503163531716379454898487624420159775239625775936000475981669099731935277459452280904450400622445802581560824791551630475943306776030317501859316146177555542935462901679373563032033173120393200521765678200939226628026521458792057462278753801514590553446382168409838382606198395681287177503071416457836697195756551607685937077865137859158578345762081387528279078051204707244778676704324439015416389288338358959521856766754859971253328626005403736068903485030234135221043630586341391982460274859964362408387959860540826249189366613283852630256635134851814430814422748462647432844662665600397175210962982529775919801613863730312001894291295034392501686337976655439383048087783644263250001897228639733357523631374094749489332003458482382078879746686922284522249340990252214239772099380423552682596693731266366963209256607625639839298998264741914631167148105930658215404263229244506440985241795002542068591861806784676551282497152375661529969598023767165935460696963637818136070514331903623304235139648371887114108555875167384155473653334057266539199846455614968973213267077204339496827669654800847905786158789706938864525604970557249664239039853224403406143559855283363257608346374847341888820828167009535499779770304732782380677748084055112035394517458408522697892331754869194656781730864108013165484598586093578906651090698683765990605427781820992738757572245168344753857190824083121679231754561225272188352438922186742878980537229318791270202917165073276222814804432572850360723014516475310984280226046998676850998983781481706072642168020794100277792232347090967610105001300152424846462456603519626512021137778816840476379611014540722862458352196910281190752054887240369604927962323004714547660302030916085143708922476218087662762381608884737665698700387415671387352297648663800232656815027547632399727772850911940109830446552971904616518674010071195985167146705611127159447636872176984954933049387763168956051163163082785683074050596856650863355034841039859379393074877091596636702319151288788804776485024769076610987600404374167786566003644268473984238747834820506495746276810953728851935156399403142611786501068866873738829365457418694873179615128211896705240258511033978071952525985205534860363579599475709467860526882934080496756302175388944858423185003407655920267074002324880930462945869605660227124161878718294727949001960438997829823598196964146614598000919245730901982727592117929357520441526953724365118149113791277213747592077375110349007189553672689501801618460727741960353857962218080044828179254930626179261680766700454187043088472532945785301848878041122009466478798992803308169039027100547456713882080896199477358491048220009212173118055422230380247837694880209356111875188661342692724709457985659773752325870200022869584655636682267433362687507660863138938985368941019201326923954214791040373211535823731813043784843586252464345457901311490342008410671275272717942642188472884596734216668838630686956582603319813655594734274285333938650301097120212870757830356667844040515373872873358871653261283761068026689944032523102750417446355924151376086854021553030672998866084537398956731865773690846151675420569110154364757065994659353659843605786108407617511238100766111745915099395342800639430587439982990451171789836330365746833686189389462644183537880048928528677744056864276512768488355770912684135823699663871003624993103968180884490684527058733783496802746450900031272420834070017188336491061440546550714421787626494221810129010629531990690764071161899407262628762535264981692400337269380650851014441148324118560821808943220142469683316520490454145118598652937006217931579129193727867708266621699546845758275363643679033547133873202647254260299920324661342444653283817247267970043445541001444227989105586484681998268966968258705571061659575214360708038508668310038792666969861870908223725475307616466392536442948213407605683119060213610628187736293695112891582716021578647421641372290156606895327579852882087858800877192931895632807810714670030013726670643035959101509846193418425953787838693370269512434114862948614453430315880620192232267883554186029719880248710815867829685308367203924872979364919700428941276896015163389083332963349325639859830982035987153812680839151570612519847296170425680571165533853747701461730010380707491327544671780192559942043169707669686286764638198090115457579599482984511455857440484707250020126359270359018830944359422715520350625092907881381500870143700003962578948903635556990537034915816083452720080987293584559699868802939487619077867419580153956515793996488479496657904369026222517909704985927030761962495203834243469336215177973599978465914894642626511371909052932857152556540016194914140004595827838686131571808706578553423493700411444658336146497639262300380981207999640906061815999105818357501174156207290286569019223236858484748694680526604946390080363795739584128276511381565869378474257626900114092995680326593029546100927715313904678992359605055339821280560836286061689886468740470456821972828566668793286949202289886373178379007936681941160660945415444806102818334462943508274979896383488417832697606602473801304295328495852112309041646945327136906442680641775092180854418593369910146869373256065423204113757594145753504864191130805909745486750801832756068818246183036375374835798034159618210078581712097473402960502108911461114623388552975053805792876784266621196528213167828739706558566260145082998887923142293565524040805377982906819979225795196219030590594210840091384084349572178244879846565449236137410337226634967390988431419472884542048243095080119383570183769248079729389194706694074614839879529164900976963148918090618320362679886344624642048277139920454129694084408855665252364778818205310778275856178143288294218283806435037413885129965680090355166101128692021672982052172294395395945631928871000295468958528099530738211039684569111195667408151009593932891931860376753712566261431566235999766134533313392381872941223562464405407406911979594311053551431835917298140302643984295891060260537093418356898849990899571700118126897293276994913562883610604272258046868420826133542565361515798746497565037388515745010256871609878998255978870823934490470823560933783069777369177410198307427653514379135400338600246775086808950045366336761175315649333190283625349514842746956190649525810109243227374538893598719812388821218503182614117429357491838915316191669307967675680426064932518680252757249650231758204057809731529629789634104103766541879656145860757880292901363127485594247511677317669741443797553365326420698040973910599008560755277559122349946407335122760049025312969148967698850425940271746753195047805140362830701365595582083120652785409095811263453239783489115842512411552392700185949350690155377244702292143692892164880979028637041746714450262699849383036804986477609481794548675679323705289679068892049450498120860642207087178961611149446565197610454146543015280001698706681271203520192709060258819752583705210249765589715329308561243924196671103228486211426742668460825097435430408164097228670820298189607393873415304519180342801413802797128427015403927795130558217912011713295681511562172760178914948186313536670390673960982106255417314397657188122905882454209311246202657056505937424975848900739122163537667932578860068840648939959753635111690077834584986657949803347127179638375010870737516778855179774815377352911810770322624314229971949831014248898563716935580040754788094352175289001184107636567274468423119674877668046335706239480017475917328995505158403772677725114530132117628072872647249190971090917988278093206665192275772209389314893490148119002697688969375424131407975850425258164416543231047299248426481916237806172484501167652084635527915506714884666906025587988026547357087343059249294344309260319756336326919227968665453497874073099884729358482876447760458374022333985164417373716017922874836647381469622888159306907886934419961971255319770151433486310485701588556362154137388351944329427936552854484682184594201595373927547769158263514133424209806858680686413949275484194477007753484468859676897076599991161282727359188794273272486862320835242481307963446704301627480691241471071221382199839540285296180029121587379707982816228040423985879147537341996559781526672371860946505485070070338816118666961923120204012298058876640015103860888195557621291287003459020472628186964739157840282750160657008985337743093466583835060662407206847007784805209281464385695042004968297135539550807640317552791728982196577398018459805409515790552723861296571545268469921176303626167266862477276876072929110553671689323293993648292499200924623057666114865355517283956951012436860946480995649941884963121133982256985976400746283052297690185063877285253806849510027814169144471444707874649609761836720917037225277196835901682111334630198224340449763317080992901018594113390973769517729440204207944977663777920925130276810936783242163515000655950233317053931184276821401336453016817216839772955507986288456920090734290799444557826505463852309204760647601922264401553593282188403519322337203842815951344066765952676297550431226858389422559872305321862428724776547109582000001487781820927236230957274026230877262078568094072868818923111828345070322357402486189252286924597273353031999639722917297853353266460243661970995989046084313227592778237293392636484298055300780863917485964780264302869294995202124582098428449787531381261201764263355440930436962288262895838716389226781308594444130684990190869768026962851095381422149470196383660431976660937703508447166609185367872184222675661826303541350928539638796268471117779826409461916683941778198622533352724741728338131950168336411366644677336009761834136209445168508365694092878913872647309333663521113304969980950060978598494446009580637770770046673021828109394505700234142188689560202891207448679771007460611108228633861715187055313952815632644009014225696389923108338778224957961676716705883308117930015427590213397389400777049198594974811453690598884625418184339715607158069517079254508083990385827649445794435083002002825844769907081238292444596694624815976064447005608416050030488909851341724591830320061659976310059276832790122913603674305271597207230181849822453663564186390862678850845030326259258389756721026902775761181404606531961352039256821751453827901466097059833562880516715615348722649090803785772479577236640599663904283901949115527477616376664818210412295035490570765954965072943203837939694403904490474418727902755848017005801833209189019959765577906632811773498609476147375682112040095054278029657235287138811565507707099393694122756638076700764742713192411167897772127718726459769611912641358785014297379373223932715445940275904549775337717073482734717505669323671025461085584644746493170465082723666867994692927700811604164214029397298189920223689146639915909401538817848880810497385299108099053890251890430784382814054500764356816931942004922094033461100396982373361402709027276030958474373368328499127484101097897331901219193247130218650157328672879285265483931347599618881130237360683237102665695897443044318938835140132653158228525220262857476790771383171005403620531470929944969072076181457075175162170745590334538273839062591111591340044375730584196107382508671459848392813786500366677030452073534224473041448613630988469323973187587881092441389271302232796321885189562250272236176225992958672285004581110070056717254147281316481104263679179890447762267400178762738269741877805729552466778015315870591049108666659840829885948113596930576242599062014061422621811801811552842182625394591478104380866791176062282604268671570373245769186880821627890256806191193658812298610126632218898092738978556856857658323836175760610928042963577017323789522136707325542633158893412708947173567254539119476094460544195224398936874976716911911974067542892253034595895703047859291347563886189344580151067728417394581020124259033172129922056388350713602570067225470869909448368944331296820922190681926424984043653356679764119177005315221536304471703386789452308513710022748523449747569026625893585175146141036553618107675246958611701969167184155314863813590831383587217788239054122501053031573446048818469869684623942349257860091514500991297771863599270301894931042350724082823565580601826075375122884975582735429574918660351491840453312898029436452484622640913116544567224383444118973231491434510245582419973066262377958557901135381889947389031378665371566402102155779079618056745487622769888014418550362310568895806168315919064452771616083648395509786888457857593955768200595822167807325452884168450638648348322877856980470750969715229497417581478055353102638215271029134170564360353592770156473580187947464895707525530122496304281812916653970081836964795975987573392980516473162494564825931642112480186168333864795985451806588735988693808823184850918413510652348480806707075289001091649882178678875576055911869989721183951947272747494135675320759344639948879605287237821736816801587500701019898014584193179390708199844715403478213555923643713578282109822420975895363107231729403717589882618195165103958176936688118151051955177209581813160559406830323877233349367398532903639440640176281695528009042789372373887681006265216247004613536039388564087474863341159204191783151635995327068141648323752232738378354450885888844863775190269583579295220718875231338490033714753414172972081300675403786015558120155013447410654849812727390114557907027880662203255807302969528120837383602742883103780323760190761366406298822504537268928858535577773692270743822336147743049195179663805491638931499530292779685245691494062124018785690458855041635999367069131313244775912108930960698494471059780115081183388694287674556554292632041305026458342702848038747688265247847699548072071457831044581401894077638470781172806029899930259323975283522798983719501960228372370156161188499286527464782114392112699027091672974341225770839256119030334025993122132777235632498723248496273853548460729384184408736103212421828364972787758850159840239556650399113325900220341336435425338078255278938529739560027090387470151920712731119226940160113651040919010049531217089772610554162018438318759347034725114640536367215024153508152262919600564632480015721085839073481819561695992586980658407294521946436851930835389028980469034421171627803932677075909290516118090049706704148198373448560660563365595186989947497064649860419368206383037567685581417516471635421865010414543836957743345296940553556895639524661595296135804638685833639851451533079929810877953488992357504688942886866386024615453223337079358801866504620624916069368013705024074879102064665290024511510374748170468318577218841272729203784614286094723928928046107014707295162170123678071392435507712492366809657930900032139007351301843340237302111489116602462644408481491951594205584658314594664475499950229116616856388035657377134807873108702096402915139240500031949904491766073067328383881023346471884960312977381992274924712171296834113759362430700400851646497152520526957038054188604584920363163556269540633013612886343728637486710023065254023919601849601439829644645763495218014318389920810682705967695418577886850131765378650246037818844398859768523987023725062677384622190427120373881705907461473453187210963753642964405356500711689612664136607200810720705890976969858672677429163769580632481869295996284074050698409550606939109279723229688978768809712031649014731152048753779263532456532135181644583406647510034572159153182594626756979327531940276133191074197318583750938237130178490947715858275243011625236419855672787741886255740176956954156996109200727984441055239742959189326975932049263578750366649962550709562509270388273397731055351559884883839544097805420631095549800413819322168963695772876495175729005500689455001883222260160765849551200233981805960737904208375696238921742766829672042557756769329207166946186497867375077237276351077118393758730503769924821908680166831240727143200044883151546819570232172305815897051187907032043936813010165649501369434667914036620802264990390556766931767616976312233472473679842616166697046477831209659951608563856827372875530819032122733513201798958970372714594856593640665744031614990803360495350794505737744015662178614576352376202648572683738159724924460161210854380015777147537888641712986305429654716819455256305604029018622045426893285963649924623055687423775653403553593731542491941336770377636774585889510876042111942642393377074263832697049749889797236402261014606226400517749828667689094937418351754664874303670237125985410254046549313157123144351116840411896619923822845237424640985409272851795903105460794585918407556915964505889472355477219367058467824711879350529009216396649920511874371882190538321061033183927991989554712587600018281990137097210282985895936253279390907352146498917845731600615421346094124363660147681315081902549425706317992547324969915318778426439957371863179871050298092643380243253941982658417890259352647700304618956806628234885116445110977137946006185512304288428661856680521332839494259598828339043666185264557351436448078069788051148066568831926554688318241675249073063873764870239677372186976370767383495414778095244733341668252376030184913072105248437505533964573887742721555383982230153437217855293265489035904165008791932733303433651749160932313960859405225647704311204727581527200331734374035955833806029595778418977970225259378243450650109947474050482381046735744303346548779323481389974339538118498972182646522219150725786785633787002651187071917496929494111075107036616718111692276160032255564605398318372283741020505537567598744524863905491615949366300291134367192195145630248676232902793442569926689892000065490042774262117097257945526830680800443472032706682456152730499414663984462891077984794427792174669092857992131259335401805508655622906879158546841992075695466463664405461903679383785313927997503497546146406383464634314000881072099232709815270971075209014688802126862803076522420447529607130654134876154334706882648446517037761404372962399176443830103677307050509376797940383319006972596411895894095945161996878289026838464125988259408232962059457402032004958223641890752390479060542915977262283465422771235114308494066679241973546019064037016159673668949346143546729776798341771829724792448020493445757312847096682521226362017730303733113452104836757395903022180821650741898994202005548556916520038835997618397412405424097910071901496183320419173734781204199628364419271197739817977768018134500712650310073872590693923080443089412973794071321428122452172627250010819342138535922920023404707882822798249734763497546647150211796644089855045218279484531870079510006256362596355702446132533903393850688274525941662214905235128866434726639866800087983746409824110931166113443754676992796325120299624875511948760485331326342897029224790321325519189157542453322348129267832938304110355751094349856212140202328377704384268423155845500580529342523739411656981918503626212737486552238105515973248565073946743292976906359123167160270586754597118005152477643728165574391738295184819708379585883787717884526393193169296925039679348604891204003052856627369626054355007248248342083449376277317626582761639836447152099069268949583660160154012809047059326132481199905221395536141071374580680663723148631562597824411934547780561361083359354875861830742288494658835941586512879337529618748868471883631199175171847642805881887931750038056590730884774377124388573106485694790456047536607851929854944168029851376090948919119441121698030088808310939348620203997968307491175904356799860355260945958385355214553016054581459979534667806819268695792755882593582256420831758348208598012250104729388989113350365731152239738943403239316252360925778063988411870689614653599348389708278857426641942898223484450882367707424906085437939217091206139199582254343937009258981046529734731339727581290927440215171079812088676748335523589623573363514270198078616634118832627853401229558561598538792552110789152252391108886039151945842083779460782466007389526806938508026536206473094630359441775760332131527021962667550469361224008865273361420870118667676499505365631525125585599837916634007078046206755634480662035774985072833772019135254401809652430854764288275893489944751121875181043336807763944285672017651118925951369594153966561933975641317571934677345244313381751573582021437033220414912931243197815050769954461015227019978593454627839270677307857996439392461911547243832543447178810938661237515132496148755113927346363024799241171082363267807085058984713501572759258398002567712681598077019936071529954587153861984038765190344899791599878790239409384661212892254356439833138028786074274318210957825081974745132843710055160111608204086243718741634903320278884031798293465943875168692790414349081560275046422220418804841014575914350974702138949515092521673084735652788878675440807703858081121139265783495440498977490145238317413637081339200516189393400257876729964143594394355814156804981335436971894978388196090722891622231991308532179348637632480971383090863369740962988543650732926188817937005041851394559819072189991609148414322178163799793527465208274506715953658136999906185523557348435251334641651713177720440642474660077625950557902622766125370076265473035631650763600335891798221029782907911263987063557151656762626793414129748946450911812055085618414832744531540160440490698641771993329430964590353794862628995165648301445456361201012226923546132926971138084105218422921412056632234857020558753357845186897001106288310185892494703678915848720648620136560131129305478049236015421103837660306350108104249260840145901098267486129223247654313876420639490885208223891453099548441068856870335281845751127725518594230507959182564721871104614579791930925863405738641448447411953769950570529421800599812009649477734348948879539873920189231458342989900274467168898130934619465037456831289785989201387317214117655077346127282046291145991135962741649040780676759634897513118218824348360576216872175637161134870463014965141688086302476206870031735893992006893983181163486101881781383675232675233262453838388844044525076920585907839742822822198245253938669483464550752963311117975189069397679427135499238163420610022644226783300129883867007880931287760907188462073473349977522326355912041937186569705511340244522569484182744345001232915372129429553232111492432805849854666490004357477743784805860032039763498826890848395440537845950903359665306607958963162291342953202423166449544708593308637883920539548881815313801869579407584692641218213505482777200900249589045217234010108746512854786505301987960754983502899982152517234942384165148759154078837120241576187396315953259223901350432515551127530456015181825398885802900063920112162527883379419728824505012248090786302582723014527377955900974888648259620883409226575032979319006539916997981000447403340639788513345525736347172127121797470278763059312007568794629116092899818245300857227444518992364351618092325829629879671266033130334665266395702716453292827048154423059418842270562962420999398646204150608986056386753592519746556068892705859471231516973297144145205089093235049514813327550298121638063431215163130811289175235002077835247754328482648997142844958311959160231518331166065546446077075626374901540976257919830390747436076580888306089330514326074999128618405382054082589614864933374049874079890473361314757661090561643397583242194028728490401978533378111795720359211443234730249444461796677010075051539244865226871628404192931204158035267194596957559156336646376765267578343204328574338831975097164801330585199310990851799274751475052604637700918721767735737822113136185285338390094624138931626129139608583522419382326627007685381790191033688917104994819705934361199510062492046523618610107809886869635476619689555019342290669349227877297510582164703276503119397211654520040887327679531173301458180017113031134932599013918321214050672951620494918235010545015951505569626009213942088507172693441919656300206839910028249485548119722858642750087894361787533867501271032930531973983464011109395684377611879669584164291675185463120942543258119234198973743796676014889060004257221039734761585805910780323792210570080973752897305081367935742244824658589713345746590462752723711230652284394756775386369319727753535591467246351061586896827130735010380077422512795114630433350036833492375395040511463175648515086001974741554955440325243616981760781306648895559850144981895039786453472706666765580814924071838424363726446546307114647871467650938286754712682229808226492822318324368165887838385706714449542695920086284458422392418607892678084507946702676819583622065091846208925719572947713720958291822681773683680680231425735295934282379756639174430588377387507815562218613594638972800166913901017368799400654592987601850829322476687833067021658005232699211405363464061774242438266978658417174047346485029756349823455820130105509647835069225417597732268238980401265489515176799972340511251914237129138721635465932910670715545425803281807584955498899354680712434086525860404722502244842697936405415832192259168214001154280322670224766393498364612022924780297712185963716278158384407479656447096255365934658733329130083621590070076997975493414876788985438448455503504950124894017811478100332187548921892345159319392495140624445058079882369933023428866536513838263097710504171783035647328161643655486830901534973835121869664739106272645020600480355264792435882185052053024617468406776312389934024861302736835187808359416843890567501170462372300158179477914826579655348768655810568492929102291254716666066070576103244898394352232361472944527970740946822746933596749482179771925757251751501590345555308866453044957530939034603537112950620630529316739940593952054334015767602296743020839742085538705760213349706496600492339388481918708171591613323042981206639840375622851291428479716331099127407331188019623390894354976080310790262574459897774675310616723925601219852819187434225502916603980581758101797860036417907914596354201789254853138077059242857694905806765279855010873661825695884970919277413888113046163288402368266689206867548311323841012693229255216905950076838768038125803648255482967366023520298397308293304125888013712672664813538735018314734154926213579099161461916897496161569647391304171672978289472609296157316781155919440325498492289650435342020018587408107740316276440493719180913952235323612163968363325219427470915811052216666514062416558898544136934950855510545696025998799234728910761879664707375882587318377723209939909969815997512344136956245636606763525936884399551742581116140659623040575669365260854134968895939660035894712140600696596898880539729206468962189946110756245008789934048773595585445638706723182363664623825514911617817038546156085267637656498667850923450190022739480942852934753906334323871307535800679834930929221043496198909525063764100000868936421679713588996852389970713438268129976149070344923710428632187190142909251571596361730822938699645344486721478084277581314266588204671401870570059178407739653495666934977236189789355261090509214760118034912545778259707194997458364146468157938005813493701314796509808032373734175225574006429565436382485018573294537025489206719701482865229944261760547734776309514357413925684169686507917078887818728930383149563345447082334929289301404915532963479174195008108901824132705371475738951179004047554829499192442409106331823738755909183673770168613425911478706444841631087565521137759022488186192169297262892401906324945391707761687041335173710566757776765825862322562731092654972205461257466102933994481827080814780038869202742841213943063646307354307189066040801397647019388871077983131406000101559859238275767507141608633790782755754359213322526873571415946168705669149479975964227397237835421450056158653095751613889240428579350177461304721837939355242964085514112529884066007913847697257981418720790145890219749067745669372091777646112733791603057509272270897882347737079844089333905104989118925048970655674580885007001413400619257032028967306276221925628048371728540552620978781696466326039651257231308974515782246894825912496890759502127982018750035007085920476238079269392260558884971797676289285044994393944771877283221865968088890764923737681115473657175053579707954451449355555821975610362056909000367814868454518780171050826171261883707358626748936354122068412916094339639597694008387477111803618314280393505937804111000656297133762808012587552306226173392498163055344462379540139203370600014394938515556670537631631319876378446221838024813479127911172220810113188073506291818467252896899017413913550782776736415008724097744037357849260763545798870433114154531290636328175877957800265730035155983260055149028058324025887713264231189808943691168127146901355011029406937613090958916900297143634337756671558330578823821103434157942194706121479497474966005864928141008479147302467767665105272867108627494489431800038163087050176408943352103523020697685816568277263149344092361504522165245499536327708051989143350286810890270212338789290054308047907220431284672937147212269709403373125680774779549752903128609512043059924113620913325184402983643296688892160109849435361900727568253741337296676074476348843960309352421734063284568110223372808982295837512222162226551103573549652336885897598635833129470795902845543637426924524356677015362611551826009798819010276941433589933204470632081051341735782942393715305663809558179436245568178799442093733580909359172188923367239245775317044851601092017577758242677419692302419626771019537597487987823628893069608517602391399980394221372753212571004780313113354812049606398860953888319362741908834760969212712180844788271836918711069104859771476381131316528538280556735748023894665932280078905221405819871389926333986269948662528252304471780687221116797795884851755938701928711210671244045522293873413062601625585242270640993510021854388352524417678469842970761305936952855773483713301194212932502652563870005383867215288647601687867097699592694919886150983286111271285327808072692533445043857723058791817121231056171399349660498154736492231024240943552144313636302727527565428887520528501248089821155216758734620076767291625833149243506366120951892787700822751830375220264735165795435561231674999362772529493169963730973424590579149847868005691721198773892979485664405773712984145057636960055013475973185257056054482942293458510016027422709332933798568772626984251591046210233950970117785059348385637586630982879063572150972056783252290532034781566229157088569422552163610266260592742533689534083290861833620497745515445962498867762557893129254094611362764009641033521749525157824455865996391109027815977544692697747336221672015612386603563589445641657110074032047992591739241657192798133029368394451899830198294013875817872629835324424775368547860992153032310324097889218425250945539326851650690863252508239814277056242120654457162876878510464861174674335736082779852932028421027088504017490086431440552233116541392378384522500763236207013183285487204692334429196407645310426342452341731452613030805441131229584636696778315848615749567432487922721325079118122317423894007920171320920924273939381821150098864994996901725238754620041328041724551044708618212054106560291047908500285343602039043691660581798185436209813303898536679806704050669199460932675996249715006065321788503589717832344895354377028619011678793045483508183470895066130129535309862170300772763115952629119579437805763379417467574520336282736871446418024643582004818462833020636670615065081799656822414716414688844521598427345142064267210065202559044778188949607636691803776947170685548304571210689685718243320803156831209626810157642383836973124115795909593491920930822859571842275266625975089456660433572155219081943973225105162695799318456013854904964757314594747459981176457717266434870341749205128310936242339055352502790554147768048356833523347020052549245679237556913565091099900245545305164835856512203985912799838966630470038010123027274407691173156093287517655822560787135128128898909524482254352633198303071162735367873893962804163008170216167347449659769711108321810158534867446862617685637853344669255159346105171209340880303869792064120063216535130001297783601645274078686851608378252397699447804782561236473538795110570086339306858320956233415646399960768122471240792658818959419555793755289739958362504378263931236744724816775575097064485719118718175079402206196805788626148723954554166203526707320703458994593724483580502938458473799968864688115944555122406470348389250173697757542162984642579480723033175822711274428099648204264776416046365156264386409949891544291308886282414593436852842914000750398805034877303051510243165229599334743479876502830091010917578984717562224880990253342309056455034258387510467890513534812247941588256028396370849584372521379488514969627144057816220216957905590327692123042524678062195807029758621223632380577686934689812425935412749449883887988554631789902574513133139725620710088207988328333694941105355009920357663509009267284511703381147582742360624382668794277346006943665166921161992067542704106188537913998160209142032140888124765854253476757068488937253388713559277931766036419426528599489401093112687693316076942229608798278823602313404027497841259087068280771942946984264319047409034280811514514566087744550118034220990780393293176801689961810439385568668749061226686521666743317107605242061888791206226159511062990830287429878258092388812850469489621401839654948182405083609274237411203761154028245254744962378396641728455187690495751719918149015935212177460174831410512608735761164460777648186716314734112030830201382518683297888781261348354157824421570054597390074362136496199419897466767017332971752946848685426718772363377478419790384613224452511040847759456483780879553897750284160010282130138767337418396568890236014526500315452015576368365757359401341517803229260482084063709934523704945341815206885828174983734709263580106757463366585279038708692501866448258434849445515708241470087389292960859747426560689441160509477967423810401052240113444984228417100169782128896576229013759433756947600670075738772017886546695706852013277895712575950350949332090886635673547742514066324727133104552731999579908862719529262250306879398043741017334214324673529485370543306305975518576991590366444216168869763957070431871612602327351070115750986049119375951722399962869803152174167913702414314124019422451859016242350994877450867109850189628993958223423981423990905664171195817195954806107579646365763312067215085731574621797754120927057393706126463485432926170732581603321189612194172259001363456731760301533071123863680333614404743600497072503663590985211023171127698896467337228826788820871130185754955094558895955119912528945472507605023775237417764160531148667452191221578096762437201212535233391165842168396753826968495305167509629286878205362311441898625647107940509198445311280006405892665228081183580768296956946040374713084929186268930701064852679120835159846174745793868873034487167681192397355979455730543636942018421153063518635301353284135694513608568226814464085174137717316411172537980132842115972090027487450047447474410628374940159799890033517760451475679337351517937820201039792385090265596740784462127677303368505756339957754155711557024936523121194387286551450487083621296252527378575331470837951361104666528918653024438020995930600612076171756365037920849274781736565394362159924220866474463174910154820816926272993480519904708881020687098947358670766978849443344855581689948837089566956848049118756353530695190988411296813728657139304997891029544828679450774003484210939113863977481998044858963334639449553291785426256853059336471754651577649552655136219969426442947389250853939319926868449626729980878598439762087971882192316223215958209036345930226699204166598289986506293718138456496918243638376757431387444472360920803876172130803424487163526244347130640263745544179071360008076014813939116701529481381758453252507331955246984836525540303489576626112765767059147000084715522602432313505144807814313221310427216141625621284585631589910910281910727054361504435277806351060113010381633945483192878183218932248589913289713615300686064697573031911842966083426802655603982486223335034175104747992756962023219107747200040824428361838048968477724321406598641708643170899496210867449453647472343991961912404194415242372825205337678056175876896693591496310580143141360641001511016725217493550454641710592845210223981722817034639935046264367591750682340072276353527780432425934531622921417961200635752649924492313141702268510363444344694970914063429471376687366666591689354179844550797730380166811633007738894318448641899153038509258811824803409122415161520768106955088151531214582371843898938484049735844667972877599589324466579368393451329863071282793950740380802971949643977514838168456585465972413685779088385880717576431135062674770606817842371633510658209382771797937840215685959142969489885836400942822552339259856554243612815187547280573630544772572906449944923049444300705670958313200984529956800436772654809962763593503991398405172343420495487321373584190246999840043097539774318686538449997793937398353347261228281525475882283006273150839519302278775830574318854930642836994241965010151266650117059777052763817994008742923902671925511475490991631711438363236567065324726391802595917014303164964327972348961695540669135626117381690485613172457008808084408827613340446530849099705088135081880179430659633354126731015503744636799162172569832417578693438809428664149872209217384342098467381082793125698535359614454321856762745214600330639280700146220129658363375169688242949792556031833212829008246333097106549252948037729421411925451863170342059755346469528073923321577931461631861155223889919173106479159700927331661253851003596654002953560336923996651707121400243745826178176019269687579566475064866031338783602574792546420850258932348970181063194480389970028045559843525191122222697926537496012694978673678131232674453636994443469089772323946447532274936874178826665441281494736681759705572571492059348635269265094526899238509965034567107017614728386312276292906348463960240028232590184891765814762169605267789003031950663393927333626702151421572787924651339181211983126836214845775234412108145069026495072995169266330114764964749896244619017461399749214924432248673025587988973038289230759773739672842867210179995336883808070748330561409542090914245251777696216439087192320643066694345690301820914580693697595647417703236545271488906627187153080719661645639747297329252342447177346782726289807120126634097661133209855823582916743966317802421874384476715332015681329029625683170819981038453624827734703076801382434157132485957897826874661927399548221937136225672006043883599578769507704379532293163142646233790060978107565652570146963452773331922228642566983085574232541976436527059878461798205839427114028186515232575456536847199283362011971318293331490584508735763853884313197701586793339562934925868525496818366641833468599986818370533710048279467801153841767905060302868353889849532754994327225253092722457149304626082128996470479034850456955702181708513491767624696645935696059745168471527386147479004125985424615024509411635842290873706129993255869505334838976471929444784496007943813245510434627145806702875928417263367428867729906932269524592060900858298758069475815454752482485274261112062354059678677870938640674324241709462002397659278367544071174484671666353464618393947777443028922893402530790889740764265893560021456820329123870204972362250407187918861695435594179065792234076160508789448351955635066607118954347490706534609867177656360081354466094002448126082342797910271707551597661403566178624724042228014135651461613088393340900237667708007304520789780977173768260557422987429366072593019808849174487898115784781493170256715336164726443273142336582254095306657309287839778412081611239562511064929535896194694208338307995274009141295772535274218116678623391466645540510897033576543298881443835708347401793522888495926620771824169149611707486325478041665357860731555647549454890330332006725845530070375698006184735362445897741821986093441510287616165009026955498598170038868649181161709552090095019495233217535987337392727105763898068623449302494928355423398054361626002687835485353404785985045930217493788611259177351404184338766865350483082151280500555241646455852389914103849035296440122339642084944316602195740863877310009637217045979482341336340827702589562042910149815759078291543285052308123620057336950146860409670132221754426628045178366466898682066153456233592574281883314471350216311058637305581852441337196043893645804348815523577732349378236179706177528116294463847936489614700367199739030216638049613369350722883438180681987930547116693850859609203341799457804986877375164542831803136643485896136547409002720811693579917841468016228693632784446122694865393052153058406796808320590218889594417917230385506785082984517485290208563719538279533423203928699345075635491306953978551845724484158737529766632683261832935359543939738835425417632792679741321498283966411993994973554378740871021026938430029061186098664233531016039874644382522073408235705538794015458872337905604815470573672138061332492901011606491889441968040963834652424400316869123491359286650826715533895953465747957536497202413367019104430457210825974749586169766252980450764909956904549150651992027651712181188391248673277941971973243838037607309053116087221900467644525211509328967762065867732190762609981208929996216530072987304009909274957528203305392313751413906893489094778666468386392812938603063383228238321636141246249237545269825894431629953215382013846262435418387697863075985237622761585444281704728416734933033953657185859614134676834495861680083674722522050345309600720580253079428573642528573494381853201349183038371505324120892446455485235097550465240158576403276729064770568254754183736551706078162696637775584994334088864668398423486448234598019496671356016100353416333534085070735578758063254347746381004102080002659414492635703213313551180395227725865667771964768328886264365563259043193652650831949924218354144341114763156039143493469881892459381100811097738290230080890068222189592920968722610992626682519613866229312650177164721960492256214438563050894011367014628129816933379107110815856320241011677920287012231745308874085902209506876092314332319913167704866830935929903142248820010016328078583262619141087915112306501240641960617422540446426126542332077388732511353474192698504142123130790825704705508078763072786099612298498914926906101512775718005716657564663605667912191606398432418034545531207000787856381528613403586854880008001379374961544828834580509912147387293355970852939107266703514503518413311939082762453054317567586931590880763290242103416527491617480618690360752904263790847075874441345029622652724180708105518623582306758929860033800030410244832809978736740255195680349160144051067604437077071125933830771428252712575963309156163096580418347600513178659144905939170052233753313066495215290572960900465102976351094599209938044421619387614453502952235056615773758302806225207680454409272272124759896567305675171473637867615838532955156595396449718150746511952800060738765921003625744157673110295069648361101844331441395221005345583567471131279579367858990768727124514537228716761265929946979892686066504537130960679796388393310861360867262886682079140910992168206982541986442779014765952786258637159926336519321204209254162723418629653500624636515965222695314497456263020266836993369782773454810957748530159027233364842905542899760244614844813703948604396877456533607004594395296050298557514490884950094495015683460620028020878703314589648327791976165196766153495879975841310642377604089010680016527466567875585263479022800149113550570910234887237125467949210610917675867666419189149315927445262980037108226311036601513139320467661496272832905465270290729284149830495124335235597295496991385430273720636293398689055822090697365461161155025277910437749022639715468832288452363389323754443443485783721684699417540298743461070311811693531905307925727695723075959743548328834505328357691373233441211628669647510829624723749632609266926282817758436144138853428252503723241705086422079729990666779512432973091200538503677143332035266159354961443729563014961410920388787969030100601328121376607351149854711471866245391180928913813133621450418426207802233707795640145234763271882206205331933345607266624169584569934135229020407835810826650158457364745152156057592337585774077288116335661376038035338011547828449024033377977600446078881954348053515731551366143710032660532794248290028997710946393036196636542458740556884054761089616801770590660758148362005310829213665737148216665971732589971243830678366122037879897911621002923064164316156403613578915168064218133022200189504501746890093496606162647064756393664078443611263895112309646786647850552088804303372714969953510647594087457607313923777369929954410380144011157161372084556430528103588397448995241646160179344800661158968896369868962030650507105716428806479463425729543404585327626887840666457994421208283630007559515861594273669604620157658330732307470768157716976117391560520419109462286555526112117853606996634226306297405227308183563980486937118939104025317928394134905737225758623621871671752292333919824037870463800600855949524376045106832419412198182096874158508167365344122844625287423107242552311041178728336584529612893108443956966881291559260301469713469170269853506905464069494827429597732787182746667251483883798374314426979801943362905759551700620698409984594941917096363485099922774724539791098345963081009245350912749937330416909392049874976570050517769381739076894746548847718249419172935506360984041378655507433667665685253656678998032772155630791412551218473432580430234296258687040277840240422109559291881922619862083073393012466776589256738969212717815846376498915249841836431829044715624154745644751876154542006191546321089976170099759969650463031001707469153193757631926295814528845550205953467976504168601463676087431918551999180896622052671096956900604024338934966874232981351432189260124327902063443523908627135829399416204654312580158394136351235733001017789384754999637932238941948258962293960027319087535724315045432496542976397168778148835036212068837661971868721916618645106107260031163853152912573396292421923428769381901345424861440498259003640838222911156989479502659816431469800349465232396852161099932870423787530498376406957468591115571661168348141760009683389889947020926910963645391872927105517117142682470269170826361656009922312096333959440432653018882383614170742580623839277108658956635929333190493771095507752564996018984183245486723302539995336007777804419270947366218113621265139042105431961238484308266368772351404085065100000637290286766464563939338267163342501150408851231725574423207521435561474742587419619636800858123370641183733034891121346700154881827694753302015846775176074117419003396268623864408263246801368856915412768497822429195282180827194372504072225795607780380631498039930478357846038874564107350113425956059368762746542316326278809617476755302036049219963782168594066002748584814487112346694093671556387854549809709570547307844882562371890350508555907052708492844886309182468272086084186976231271469343600700727452828031895855427629839004438705837907355381236326340513725421311251375166903082259769608270844135426185800019504041537168555293679328044359263303326662181268616703510925223415243515805314844364907836035328250559292801742992058613332701335057264340567592352224307078706054640379692112970789982099136530630480825253498978647845547503987184294216230288381570645024921324452308875075584508490250519263455290513896694567191137907999970773986282289401520275849976318098282658167513345808113965529170637372198626913887027738057217938154253156458952810143314820338805844553505514663472906490889905687683081525369120275056464415470641950320059962112484532949419425974937485586560470198399996962845484743719494668904678664712085053016090358906514702512825013922213404169489305969415654411356325480032679652033688334057007882791344290679149403351343211843151711692840838037753339440356846618678018048335814166252685913618399267487134679401558579496578391465041019593527305436864428092776835981489921940359658712802350433687593722930024677555216695537806343100684191881891200906202679163697152357772452733146144664110944709499806005816961541597728621268082987874382983840889177613932971465100945491149961058802193040919977676607890861274144165361111184934731849887848035219234657310409286657691636727463698250614820341249479354254715582208363773045639088111381641975921043613759727369566901694989076728388596880581832893117713982633520073368017092585018092938823671326869418359039215269679412222023421270275358887839545221732258204858200897089229432030062514613585839752270442648679950646385839147209871247235814144877446817497790598605778886368658982495382977032473221856871069748220260165654516692828925989842595562367062128997830421397835334814534631049558731625130483358552917401697808846968307251905004750490551156286228110053398342314597785803933315922606103003441444987937819172681806955741548788184735301692273472841203921348123308544977089166522206554017531702030305502912390914748803933246214597106906693011549201568262083787998993733046097607234151898604501941722794631416667063437130836405970176333035782729369486002789619913054345093261193562013052943447305808576628833422088276015046785966150431913418865385579449657566131525126918104846770324832009616602630714177045449375071462261677940279211355879976650734058159947997242224031561433732354847979559248819073341336700241033389189559181883370868460099019948129112700887348164571154431564980943244651339256410753526781941816902887429592859639657674648964434931998526353617465094629192117726724475491818349603383688408038906733253126705406974795120845289347137202205910088621762639982974790221118373419580824654246569678109201183717207487253316040300833175766060807531145908125073272747510150265372623617283039124682244994297083726249293990569539041901163102081720380141721795918134320583500863646404369236040991015647343346405662345795919147190739696537019144343424053641411346424808352673517825999613835973612084169925750432019260264780145341276879822335618014777221060618731672110688430345230880504599217108675177623004018840181884057331355252622558807815827945771866836321360071229503774363758241971637565218306979413720190533066576844420587968511456847960388351291153320863731218082820056040210620424530537725119651282691710124410889830907070731575450042030622296132603931150663543327669763335110560051183906613286595737367110219325220567253349823324812788504331375819024828941370118655141892327012170969113001758214228267108650338809324284210209621250524688823068843280579536022533971886771333040968769268069512538124466690518945492858098483001178656007668155007644062222363102477026934366400915576814577660132774434810922393310453260979281340904724167991179041454699240154998248477668498105751058195673819431361084789547903662186585234298654523542574465398857877236535416391252998773180580619635325993497151482186001829820451482723050354620757708330132125620118952314826714489669078827903961451175176286867320425979438696509998082905358904688254877284757567721503703845916795553896885310880857579161393964836013928556260947867062091430203962400822240638353246070237959427477551265182366473948654315960339937633979025530752267799661622803517624244660437094261910730338704326471380470149819541787479603843377101914495399602471505316135479875690699190871728506974089967797278126355940753475949102406295791785284608540892221175356152669040968019849510141511628189837686886794502889874763953503536359820397192998196481729130819110477895614359990653097424326576794076873200462855080844301050530724258715636249142305590037191865139341311837582297624650741577685112180866840755070920105393809005653737216491040384729124606259150059275303445910507049402647607068209988646445047872850510018136237601455525105023087972860846685076949353875723790414639550815697049446681695605151472654957586979176112539854774720279386674492309985989146501809674193876187654409384320607291535302732418392953584388773851748539169469863414897426824506623244484707576743934961924288375547878324028984087608887739289073624469440228415964585389880383192239815343779344368307442262922784659355775634938541349197095114854732243243785276630343172708677774948396542251727543848107071078490239910794808802872913173046684795797344065535354807114620824389173760554066841785391545922119756717600560980577295051483155501419756878336312132064570086305836444173802961274008137274596491662241935457736675155797066952764645858868797416130689312169988960112935477867907979691836890147861414713773429779756678866112745153150744419520665641464961508171870957813828395212147428536399163126025589953222120444976485243361713567943057017825782073361420278083187844578755050694513885334598861602664721821910058903588725792993611627989675140260679947222223628007230945828035407032935473507184992628889523004817027294347090448363240374206382985498796830343699008920232921212531841259383851551411467100668780541761194503911120118202522686804921712773344453397359680144496150530236911075214005855217887421055729301629314923403032731648675851371725460588876176638776667462030170148265818480682105504667035070250998681908817071186637162397820820738279357417338669677569631063920096858835152617854687425220513374826507996018307991121519547268341541508437635430730214402897639243240268036024693064858358434649029109103136033472653575747689534952768129538146303857470937157504995386603046395955431306386496434008064178586022358312845355472121377003766224209816797111231081208974448658388458284281137002550030048484322981540484573217744216004425854061703318709517918726323620784744841970754660089299055876072660752571862610971369312984004774796073363496790298276504579595839412497154625051111084367727243013248378429068658004469175434111604958570417184322273135981077753730981111598856303296258000085099014729935897053865531322520350475698842448782803787152718468579809879774299290082164952988207955920538680499845930927046958199757151057987696171500782035405419747669339780041507738799463706806742554331126752432101616111993683471668644586098108079820429784629172411544844849056375972974543052998720105347983967695553495380974267341700631243381738547693112402927101589890168629824125845426228742044831182424119612543972275263625735915553157708415276768806003028763758883977079424007267215363444348595781006699110633293341765878541941962954138813097508606283690682195560760009639310094976317149520712302026168170214860574121332750785975247893261546931329298573619455233360437261811532101464122990743602679995936970188219466808259520122795724378337583147940305778876210948612834113259778244399232986891990114112516363892170569092726475606285753658733678703075462510534763014561662370290726872695821057059112185198823220188208841353241851214920179796712112746343592693570715903496127162000795477853427759955397779710656711958372318463639451573299689796900509232139515511808958795123930593639922105590656630816134806874134843382470205327714515363476766339522220717176722467678166404972639131937758689707912312699982005709184446419115497722273002430472205094433318218654023516868476885749314185671811054513666310491074657368114655234528255913727389568497552540133404034938190646994758340874706827439431750170165087912175929611347674470126392742737875610770966808109592108050459723558904699062142140025267008934979858526634907966020683422576951047811125068517420019996363341405885946303869707678394381690294522317341068533849196288044457375666411314597549351578922378763128572465848821558289750083014215596175955310657723215080820717022269813375090458947824023792402456635308266294575106134049674168305993007728583962991659678124269184038128557708097384246503015843294643045247128901629060767853310438104146858294245715532763586444312751895155990687861817792928940033130436391241639978318855596906136448772395288057273000470433849371778447490327970622810065270570187163205044716752832239564681483344522371488815436231857129070185491111414268929148292190515991835208836236203920369403654245098436615571184253784574763740438386352201733339448765933902118845380830127094477199598459615549322073182204493871474301408463605300475992647578434936857420609101446030728894902411666728432105554467481628186826644404913629200842575123036505842579434501704721743480853990796771079474136512157477770642548424023013931907031435299999707402066079325193052110216992797395546169918022259411781195080586782849956199491304913830763570389879655027221377308476011574422227839948521985561117454875176473193229961241364877123910584189394671890930694657083238784588427357190159950991339193107741621593426369234574020071300620904321057593644183706229702833859177105108935445610759728784679487534818407743971661158932241763128007230820470828774642657012734511628754681598729080262936236073186918935409755294783146266628355649474945867283053694094721333840755554698648198068287761135473315889386908854495950581566278707225965893681835006261944753834944069434145959175601945525113900647486814567734943345649018673543477244562415581958296946562800311110592708451005956752135565170874825233720027773875985273028255596077349276283148600764140753012176204327384633906428378962086826193901674071117464894655189550123932377001328419338030043722791172078071389162288916967892896457182748800552029311528568370765409274078979490650242758262480226405402987428796165356225990900469414584981499155579760673350924069465428883124475746444648041897946378544989792737695129703237539069782767899788768772373581937367055870762613743048642205662156012563218084454292114770090602199474975445477921918898864480840675988359772958343874644061734755870558220261029658395202971181856115821396983885100994810983889622216962362412879266750489168819049187240526432178781345902309493782778606357540320359243650884314601630179259751876221635527190690858162109008513221907138250328934983753862181243449651673557281082972874542310178752004310614432178828036105247908322896015636752296264904701110419180099024599457789559901032199980179403807416670324499748187552903335919138777398730958117541478952470607240261645939593618370697183249671143382478943949288640465869537410160898998366227599979847594139758025492892917567069016290856114976116286291723326363518759531626884091044715624935498889107973213023594472114423195031060591295265752392813984888154279151508942237978859022973698631749286479211116947749586149298734189367380553794211027597593919220687730123913440218763164692214694558211380956100138573861524224975106535574419499242656544240877306260347279566272829104003771558208047170760807527191504542269259124259430012128436914717103923362181101029115208381409834564192163832728020842368073850559397099160975324036322515095519030310916664019568060358834073380214953437916007772644182736993051508282061548210924977224795243529408902166602181463301140512321307339463598995375925921079329647952971105474104567925500323208010587795003219236275285633441689222567809207331334867407048383864737424909338428734200434071664862307488772228366417304083633956643110523437884023463936310331113397790337257505988092638902760230295364418310696625647013664052763573577083401166534048955938290353721733634593543868587328426300839581731305291919601635898049820713661975388139471169815431943101449912608678581078661815784252966342899982678994028646863074113663457995173291001968066711518098646422918193507384395428638352149112139398065556703320859613315089653593100036440223103168013066913383454891580316480468715121143984507815443593298432431498135905369988576722362747673984319653497429078293919507202177786510504195494117770282674997199182005222708122668613632312416201618443076479867073524294162643646959676284064053643631689798622091550520682647314390456633035315929321802827780365671050915819254093446362569040742600776547559584754226988010227103342739337593622669890918645622326761272930236902171628120208525224647016592712903862318911988065561079696446002823087914875620407193390787235257344961779183961058739223491667186943095915835306019760684717938176241858667288876674762069127275986550799198216471508116976855989279889523485532973162320426267198141225506030788714437188610837638453832527228911615290511299931723732054202365643249431789833416404188104615070959597426716486043938824580754954044294098861046175404986214178102952039141462462240106831224136176406638644333867104695676847468783410040033052690603038906013735169513653814478980773442602905694453334232253925870303260578137908795943339490759777435884486319289577770121788214948112267162619795817364509457640995364186993118123333457288638265078259971856459759570677063106823424593726379077453252572965060517158084950549349255175351592552191851366293852823388264967930211576062527761673370439386779381711293126875604047090787743973446317505532895206165509313422821008294411823952006881909682447851563253925213647205714292832950547196467345881880164578492585719215758583794495808792812548697632249923363799813290942124666736700429729885353891199212838345467713737466253330220943654051380288487174508280157369140128173308734720900118645334133449888344083711628792441914362611192696435090474422881261682168148005556730184983022796257894971251843661855402814772682549388154124167514684190425180270988184501467131692779579971239929792251172799421320270102459921169905916969800938843624487236224864495380355699126294964477566209282763492592970448779305317924661588567110171657922734858602862774173656147737381815913436775922014438152686387094342428441980132995023364620108046503851123550703864127756945759697325016351557479097050136006556449743360686617541020255965901748992024248006018420551793334833261078527720066948196539008342813006042597187347752232137448299956544340365405448771670400460769310545488374800600872740342717518134445482615804974183328834501637039245251265988951945586907420069255105647103936577424251409564469478190085173843903981367388311664207039492425970026572816365179250952491654464000151968816748081341698005533505035360282114255823531938395020683747588760137813456297807909033992969284563213694774178751731243880484186271915562085288450816417408054413176894432350324381459121939811433319577423802366241489089010038001804065310743696517206678528210820085231342479874034462513292787794231693769803123070536498970263332818689288965542925123569314923491494837798149065145201081636475149847907967821248052210006282020288078630230366725529478269069174401972158172135218196073417156204932925832679529323635217253786727735440442220477512699869475463339294197975563837778162651808813001861365897261746789242367943441775228520743735570621370285326340376741408663828621359356053152312998153725391801485281177426992964827708287384828132353972114716990327196813122203424520718373242529436153316307548395849695567375055918200002718165947330075987661976131725447051142420464636164115969845212344072745251017913995033814779442465404372553174549423468517333231318835594347659961522339684221236119394307166331269997129547856502579501154383882935381594402315976611116121842851015334666021377369087830827581316539955758919596020515300456000498384123680073213743561944037350483382150952519470558866334853776614480954438463992540916303458718566498802212754274604102957572945891790925686408506138828852324973282585574731554731600145130858046387514080136978085929413888268603975498810813012537090961748016898782398048665566256895113153059628861814070388930355425172636617334981970946442938590846465754168886289872503666722691192106309975025754098526765603143205415465781592241748741282293158230294003612243956989211428821012272495251236017239189539150135374568728147166465965086250759799239029857329427436099697736253808559792158123706612117351034989982147466086636030713653240630675964466182247966792463298473326245939565695283019362010405371469729695221813934902914386698864284178144179061334527993944382390554982208862747220791616427369745120084337589030725146484194995169368466615319369507035780527458178350368871922493615667320683372066227150853578507984800226666116063965208553998856662825240053993012487007593391535193570239565193951364117370450273361472984890936518464054824638508431211833604996300571543045600267594777598307514884464941916906112195383920358998193328525881961889190863522113342484420131057230900786551765072326342227457024349547491019571180819682853277878209863935372960045769464897142125621187846281978558439657967186270845927150262847744180599131805417941675456814166221777378703510373187606879933342919640928923448800792942165930123049996496067477493426793103426802190838275714675161016618327106697348114957735876003648466828888087097606767828178865863118682014149589488601548635572334968074038194784069277674748460112691135033160870677838649805397711965445876228504182353884181102884018805656173503288530957672078052861577041853027860992440046530560851732590200388390063426957178627948864954136722848932743859349894880594560545219858222638996798148956682549204657423843639934464798418176016624748024089708491753834872079541304946177323903620547542441117636446524306749876931600173926561482063161878420046138460853021610807013597250257156841006866490750944323572566364965462767007783966138861478845137293649771768438270260879274723706046427295400933248685334881208597727908895198463325863126961102401525865002530544980257448458537237671841242620215793591781532225208146350225809835634015182535911464875066131279012829895164245794174742373443862471109980027218837001319975973891626892244747014130917446276278030082903501772798565248540602225041152892529810370398580447140586541941693467340416068748495354885393223543899616518413683538114901212253080554391535559905479743015147706093890253333014758120280271857963965067287417130571691649625717101542810970849664110622839586377010150853841339927925440919872423587449978478187393031607169275438927011709552576766102649456124597393780667781525395583754211020897307904663960622464285943945081393976720011189458604483996650517622080042256735392339771256455849063904725804681349411453301764100942705534977856698398272025364828935576743923334814405613259842492704603551645645321156033016569764202440249743060603395812340413277017793407344824382721065421489145484567679189078994637846294571260482414231326021834459793285759137178629252897540241509418641367254436607738536591879857102869894053858206695208024597265432725559239009834720720670039521757590880486447375768352554171211854185067279924130879431011565711306845008711367068943303196735457586472699337097534380769269011762846486795105620188009818306233637974809170374766903890920247071313613095987955619168119037695215822382033957268046493798444861336535780886158555513837769189602005363809638432889342432960983435096998431116252069229524726355194384201687326889931572817766372560413186310326708205404800893416433055869325047566332873875099263074935866915598470623290097831354810688529725631839470889779828018774930977313703677480744566314417964156077134595381715920277060173466992269853930928325260398315423059702109699167980707733196105138887644914478221766599148634497684033330315484871919577316614374704908490394464171803435736998177037884134666776243033976420653259753951267983373747217137731391459253009361820767906773423255768288750397476101859206538555059401797093555992894098780202515477512861053403272466073547824814589479792894040337210241799817591978859431011409614103219310885776546801148311458438787560188399417485270433660130116715050495896116648462427302895956374402006257169255350499206050923104206253040126709424588498212084780883634217032672166130389526178301522259274274962377390286693510370733576297392836535466897726485729150899112793315506795459259892904451351437132235091182796167979824414014637131403520164315486966674521241951130621493933304488954098432812964129059855954289542971169589590908170995589717352851829375534941665912189083916316876301633051545022915027193710316654957512426133461838066326747585521324832721881674145255556448292006069255053294615955561820172551864544243052044171612199338634192584207716251679559147675586507996768755454844591299155087072124688878292858997691580204809629340381533088950575282846601935575129359210797129406115535217842917531066228266027350626469937149368109871830092193737900129125378098454373521122994520550170766468508255014322061507569129671496883950571957007067357939541247287095401963357662618351063199034383843956082112153884932140773693836135946845978784847859467218092236290318069221362551757896820647282306387548985076008412125136403481613111411467618868464874845127852513580125934541090376849308221288128048381700835788485896852149023662630174066722735291819266545693666747019467708231176712195414473336419892216290269838841704789600777718681973380057702133736264088803413617830255085516560433786393200461601366538221741046704248340696307037748313881904356581165559966089351550167381764972731289175429581100241254374489493200639222064983351489908265864383663651672599387259885055139465453602624797625236608522521738982937493242957758964903204565624714310644926427263720067165337052477209707490744754717964706778884853998023150002673617282951447119758088712778940786659730760307567152675176988058290888246227511877045799239789106894907744350320097145211402965480582972545220360237845162098320582818437847734694760640990933295770499481342312106578558493878693821522433851020457487392022328060489189546610489288615410917438318565425235353075463346636298076384880845435375348359544733638806984803697414722613773864533963313850476936964115796325942424404766015361955758240552614437369662533258107509213512291476296980089553244187209185432716840545029912867152609145816344620315166915099993367254198706473164461795267598241780108312358215019515628676675685983619678929088349018708565882676998342458142945926568837724129520222928193283246266290701827667410795426913040590192003005593547345545619746478618061212782925516600677778868648396818416044693860382126268353331776240719550989236463499337588538930726789134256915721559344091692577698819922192313168763417759132273457352317186315846800865132604934028282329830516240068132899914325913996592379858393597096990136396674918656295709791933461985945475933198297520693451946647388470876273269081286788757118300044463795443749321887548917843142862236388266578342442156556753864939833516271716159505499203028252110407303419655427560504465806847964962491279391961788495270817178398534530140922126576650874145991307957065755873497520191269696238452438568879528041864399672777380641486965023050761174687249381346522903973093742459495349514835228599884711185165984675498017336177756147799378189735995136323989294444902284364539819982335674332593980964622611590849928605586507469238486588677195600210996331645972289270065867345539913421819612420997583281000514953543172041279185024342464958052393669604250971767494786173381322687321864798605119023943240581784229674639441574425638614867939528225406110086772113267150386213075249421011418255675967845215916398528314179344412207326386843883622748445301827753429610682500679325486156996639333197247993205357876160728816988102283159606347128447211125550300298839929835368603393327578441067089487543767278545125198882727956195320207382564766193941977324312791380314221657385729988952245074650498992379455543161050714416231382026590809457353279816919496302203036587701140072714485136309088969123677350029338069431386914866483698132875482464780994027100253040886648404665919362275020926994764899061718764760081513401475639778693002986626402782200936362082756224582223436268083622577102884685713438735813040168764527298739940111901773712016567261498942914464240119993957799822878435841910646277092699673409175707948647211954286787838899757497088958687438424069762518532979411326122708647849337116115292442487275503586946144208515987373522286950967681904468088512983856496494847544564503741120422335669914832243784069889759055093989857285740437431908888649404045378911451055989903553386459373363303329942312544022538897780979096550254581826910595869509067662817582015976411620898345295661386137340328475033100252663386369051736642167094087334247029918092947907337799664366284911747620609524056023499629177426735008849257939360390889158462452419601738977839016967503956013646550164686262565003019528202034180857113714960259267369349191521787739183197535035018952462562710572564358383750618697075675166600852971125332399165907626011135250087889709178105776735221712624114083373501896096593537417480965720894527782518695756993293537477391350853233448729372158112500147627759062043623074762044010243739276915266390444206792317725927225512810424016376603269228527992423142704061565581159317797842650801500115420919443252333994948745200149995636492966221424977238525221233991035517614802626166827316639103302913480925451420336800059588897739709719115104778611394371094697860066960646372424400837215348362776120449502377688636335954531089405723922815681910023753800112197543796487293977344938177053214841480620536954046663382341709338755963543013780748177434250404121054067840980787591769355923132293732514351446276503537658469894816223537027682417065586786529742796505921300501111156067660662284618227695353135852227426530975292596743160714279048343440132753047653643021130293742425004220773865863528146131498958781706921645510896235537361594700624665632079912381349379729441897094409074949186381071694210067012517209292903954366276594649800318706646111828634476526512867569193778501802234543714548052640048609997600916730982475705143652125558856484089302915153611740747182613559270019744011486404391293328707961611296206876310683833352823640313351285053073325056323144950984538879790363607888918035446100846538587819726527249802457474971309654856204661628838852909530943094280487436330103587769777773390882865876845707744733093364159549644414821371932288473334152419087216725021525100528769553102548297712533953894273423288337482248088136722219075871393959011009884586740446931012366988172095944120348947029197539034582066998685003302794866695229334815089681941611592885454120166408916826887415021271096081253685823616881866348650958276770016187845880347943484806209493993025025259000904075582200303809243978465098857254892433623955958243612514243267997034564081160794713773442455770499152902859633368304229566599237453223243805850407931802544134745119680275026284726295466371855882484440870084474057844632093057540181690136172807806037160025210205021674910054618177247368456992646478115936688927794736014766259902558927963125189513498911395703013461781868075912827218749040720246434295599664646495705505092270556794823724371586111423244461951265788690795386572259906301956691338538476142174096351122682306167882091200027083506706891294620907787231944056974346281908906038074382222686205431663897784643057932133304674169319400121297560647677412067095244132563949408861034963631980796461874454736884049098690951153703973305659935844457273777362185757474419994328585224389938896944912644611788712039010763278776383679963530779234258139903728668898335548267103233295039257251752115965157919041508427729531507248993810205128195169120539497160863526801396333315901180942742290410117874998769380509589944481764857869832072473431905990050041007731255451723092895657555425932360604359036076087062322448982732950363861959201794390699062785305835137159102182224991052090420943603428277516371488616891006160586333556358359215607960654171394194392382938590293094284235907952977395529726836514287954673194247503062538717483991327944511610895532273770198600616586025723570250203260849783226941520485561132437138237218813916626315684056759044931129443212249961884008413436185567824826966298069262638519069154278642208510448849776980878263658959602857893935396752286721627707517288579070168809592185224203167750514398370534912776007811998697629484968436383325553794198042659227523438339282045739907124888427775422050035199659676533484612736487870680065858611124558453653764328691715051382520590517918171881740108799613459300615764808715211116350617234839497008620672176913203124421221483235246129794649050795389827674825002777668801928427393801724209548549296241278202929816340190874477755839090091222010980220584846103983060148533286310918783483604397569368335623189303151583134715584088937545481390189692276926984690359859897781251962318947404108317303481378376667119542263216938404154559055729398765186253425076427436913879351068002354638498838900555709078915944726383022784873467237536171855729032058105732725033822565501089488347173572049671761700925453320741136562491629093209192748383895453738249578467453032310616805357390300100306137702048429264449041015964860191282532625621306145198942979700661507167390478512102293699254555119056414962794435105440895544889227129853156764142681513069838455438148752742888070323401381778848422813393497496955611287686883174126442201926316412307278487632305910750954752994940747257152850856245331476747925893167320022930081700127184480940921739429556891055409045639078803187822373164208012410605910075153313864122665733745020540371032791325990428899706311735244257221218197414871754608260839602708497720209000427809476928546039460102207748305644641592590789015223551648588546766220496888942060988912915557912374291601227161707166136366099597088168729363344795109328049013333713849791083260584048441463916884039604231099580630353877182431459720379106836616076604856351885858224635767060754197028833179961274270896441149058759532999754758115804529397026965505138850405668738520559496984710115396418386358922762698013118610734750740511947972369766198820312258913066311903412907386591903497874228234774092952070008422601299061193190957550805525226883113950536720008252827988596321463261833850094605048058207106168309314387614939387414329286490568817657283945184824612173188692171574025881540455073125973273298272480783074847819798881211177133505872184742667190515471504326656459022491854032633275709754460656695276537722312732909079973125523075705942009392470599398578215991045201740773906524415541353223336913250777520084972807210116239948108734761917942418862756577947340446977789050367106565295391423981692703961701603374164584918922749610828430213968878891014708107903864216465780131057554875097395286122283738193977533946638910487753026954327146921004671104402167992007513022040618989658478653047531450183364702037123619003506594517458435731286075748954352164017971127664938473551268575276583150977631529759540037124349692877950718578876731399725859960312649473452427374002564737877227457898247345888241712248370913885555918801574072367154349881658383689675581214979194573455396117118905355978637506161770225098633471808793159826215274069783199772363276388889694242442207917361882829044026791555855088223007444422257955948313415786769749723160189056646171511810438206226678086512309420259484292873707539746700849765613890483966763356291349375134921257749901896242564720964662772787855160237093714575441634517536866867946008857133169191745025706146991373060932247731978923562912800474817647628203753447690075262606620095437006367025531357710941280966661045502739567750864808854035295531551544995208386348513148905436966408944171543640850542283768050780395310098145472130537814472787926108005323621959470156955778281046105381166289798388785577985815739124934288684871356771537550305465666949840321093955170266294989988415412110371111385689596227257553867473919575223287237137485677071612862083441830904971437052256058438718283461033666011001288047869901711373393076740723499016963984327642438904148698942953526077338226535387300741471386922346782920985440571942893182972012140897397269187608946310620506684275714074606342640937027804870148689020313474098753442103544778814571937721271277418649371288392459292942135902928499596758196323891194456291982498877964407784033118158476279933258139599971853779886446494770934951977932022532950804086950367504419160617568697747114507692317199037113333884611306574641124583129297329964225571455300238561124285664003634372490574982960152561084066890594790363308386769983325467543734254937719827726811783240360211257019660828903496800668320969752580906797360098743742276944902470862579244618161030129930750914865096277588860998345039758883164182465499649023277331123186891440413991255690991630729267617536430533339512560526485312981876337623904811666968057947997867592265891829492174834270101789922581437355584347302506104313722520275905389126963003873832107952782050019299435992875800664161264676782125752891328520989001714328761803151246973104093968273694611188161611894421844160658360081086183964254004787883334997905720306109167061783684794017638969135048903519524252257055933855450129411811983106702565794893615439540058893626139630509031965969826437555861889650874797740432760143539425170027614127074491560991862073170531142625565273414084258988380548306506420346090941417190773473032630382661727186491196728641460988314629778946886845374472187848004918621008012046489695463908072587170078828620727398468137651267486753524377859213211404711843400951526944986698298954135299999476547492603511089225183966970850500143058931964970906314859939544126914430406513017051522927573554917516317504860496867436288142732759099259531640878341696448168518312348874011585124793281529227148527187338770567301314810481659284789672801886282563653647209374520032522331316467712797381809817387791041286689453023950098413629531503315426698033095767678316793036435837723391910698570271718835939908830103017300158396187399780687002285678393897378578043042073997129319773639553048775872092744103177631051139267949401584250091168099035700910936842020189876497187922484696060345778134679142551966726865700723558857228571665590296468157596202085884521230276429375916375084315385211864285413422845708410270029387933466983989857614718394245270973986219910784296553912408796970541326507518837844432668203833528154419377130849123385850121153601740813096303909444103955777650336659106210793002899298351376278244485581254493638203758388001649642974818553910374313097416916607193822691158054548280288371299859857020484455737967826699430075903190328936668553040484371672842253423809761489780316155559747214838851843040441433284069591841289155204270917706125882520742595480954472658697954905153284984178966290534158419695891998783232231551062629998821688506333564196667717192248006689092429738998990660127296951356288478375313595600674325720322298724976161594962308618828798885858100297019173160892777768368274253577957212054986581687725753109646582090193406350833462321949426635077504150730631590895590641083287634451594203480338602327938586854735797075675567081827837332992159046712381470981218866424685388528886048575514387996963119649628730926203137813652099037492660894050096617507597628235170795451729159196926346536506380834072514095824452112799171772873667948632968110022570667037867553175614099602026884886380527074815043897178366378379093460570334145019730251674034084544232509040939033107834155715206370849684462755668158245645245184577078115597024962321422471047111109455750039007599500388341364743541002981070269764272946446641111739384547051146367039830619525563500369323302747013478382681443685911307728831650495430159913014079652710993678680250573219667211804508414123854517445860472263189478121458195101551021962221297978621013776243368951673040944524180878648407982816271888093375417464623103773861661726477796696793536606026178351382816786669145649571000862679111557698858190492459750934890442550647755182896907475526231612161462027068562021926980773810998767315976908138030621204436956269647293022089758258644371532681571909066241679926828343572178832490903171949817480493098778087676782130406593499590565697208792907024505424802467840620193633456250392408060322609028169050283911915756710248843535624596341268130722298218340698467596315380527582400762367667250256921945847874214916637539108203486710937148931443678408196408028524887002013896146921131754359382494701000355936000059153018632276540036767559231919085762211000351587434689193546857477127723596028719878516593423986929823062855897704423923884375675557956050932592118922683711964074295931683369179816224635555426752540751585994883243600638400149614167017216733150614657039366696335608572582401693642731566314869991297449550188679112145035569930141411524807877043443794532810823092230525632060362952231948316858157404323354679584542587774992455322565332012386817933076820284428240588033448799153272170036744855770155042707025302881156586146983930418045567291538854354712820769737113785926427183409081524574891241419012795010892047611089385269422809008126114776586251532838084787375385163042737691570168723551755424867633175428751315471685932752032634414354304719777966857859932233138373995446076222526967262039498438673383835865278927196560401009070007940592738073127614101691584955106486001679701628606001532424273908275461138964846041202982043614045213774874601137639255935295519348677305762932659220322190653255373038455091670412378498870171195125287803798612814889512736706263545988100080213549802448731402210621503910585695953159559512055851120534406622699308084819827699656005052570289650037515594503162204439268947305920172210360187914505658429735341114265680048668564218610576429368562498789272558663092215358270198544482109062041140837138392620049028953126613101213678195486410507418970717003248530022140067339560150931969771261535319834747977494104117893009233241076008152597735000874390654562836659294536328710659043979886741995597751315143567647820991490412446191451049563409175146594758567289736689387762056508125974322730168540436930704336538033493686761292486457211207639090513730767906764209610279185549421695826103537747086944121245487424975813294312318850028549566152861552307438860913821655800753179156833602768634230360519035300596342173906619453200377947956680073718618570882323065707840913749791305653827503401374734233207824376114982246878272345814983179983980249042961831965395143403396827074502996316426755499427973047795368381339911310660343686824780912150345503594495968613622661223231619028252437930128943715966177087293510144438191243719200998857168605079806586072782118099784372727357555200369136226151060326686013482911865339364607656753859574250348016256119149061588997365176550920572350790941029394718492417372217060326638609827916947119211498661915379873013321245027843955181038321841850809829794855847415599882254170527606806226638737636324302855293330093467963820915168746529968110836570797321375857617295384739748993469252455564020793419422322757179267671291661661406020903448224632806701022676394475716481282072588211731763591500245311800301802154892001565258453433512260344979489773204548133928780097685641270625718847572047473396592094853286566484994488115437204959013615784557189800455349146701825627096967548452239641066933681908706843594628863229487206905894050365529546708308289744122299690649373890625230002139501595336792592258479923614525915583350296426005956898174743255067506681336880707434492663142175882858149709724045793472475232142237999521899767234670997483548642905200127798446206324580151120435880822990999873182641952279275453947463805368854385819946012492066187126312020747041767606814815072585164724997444165217631612927222279171793447048723321954941693520502480040064122908831857242181638459263770874966662071342698233215123129439412102008822667691743688050108771911707976427139594566194159266572420498975973429097572911969675876346397948371434541117004394479337862108864898423714114220835917325699739990625662083984933587527664034945981926363827132186456947646449101025914869602941697285205546485095155255801421308359706898508901239392307436692903645209291656456191416572291507062369691332932236851740430334327309139354482522222419309136106660746913825113859510718482873596369077957429942762237651069094587450292022140790893405075837046006608372486299333620239792776697151142928258143094996212177822814469947856942100849942138273674504173103222614828224640934495095529191189181123158208590981617351808402435706085836683006149110394075591493939770702281028977614891397113960791810170951531645320775455672054208900186186878888813808076653315901926788179504152781226416965342970192703352602668063828273252950368273398820748465503858752605463726180051354458456671734409768174550371899354931368113640106497549099312983509029065007064227181586858494383966655483579081872463323099012276703576921243000600347161451516847036057236869385367918211400281815294244159508158427057951354933079441288779575249391403273188040468187576383141883827688426557445691255990244726713618414174031807018921636675103021497582220485669809886793943310244244727948201526817397403441898901662946364998105606642663391989176376672595698601559346990934314617135989151618690266809766649870601594804794076798053755521688599156599720593492004937075376865785494178216337108297576206927774902161284213991273743026462245460438650586687285543731309356525203094815424734228098607714820241656139711343481454336519584088797675137473544363287949740288490430012785960753031903185718102762700288664595238016545261997166901287718464449671061692680552529249972557296919625033374638055915249904259062193775904132871835036526098137229827700214476042651349564137580230792714859834927932432778169016656678556174820714742836475870492298889182427504538056666673739814570723172021179430046478927552691385072295666489579649359411110920783787835849990351258747190489939872909657826504517030913777417485365808070987911753960675530370653932589380970436794337412130634445396608620418568634780267685889701828981196495314539385667647988393467857186850031448084792177620225681541920360678879194928032432102208990049561050645635153901279108841563631386564346041379471565027365962423643583228752243253304879820177802460127516847445458618102500195622022791698175828325365140918907191255463768653467247436209859268688153347328955078686492749639840818461645469987539593775230141572449275821145807199855891084321854488919622457963468359500300717916554679195899497254888087897574626451983551540174463541919820639657531255770440175857199219743529727122017561320869637009479126902473353647130671758532118548020804366850704359843495290812537540081924337789297259854793782594058048820711941382580249049127995419622004741125733250724637530451794142912597960810263338187174046325594399785733161999994779098175520921439418346599053610160232315277405058017117671352441151015414248112388355589909615811840746344493652688580036901778570263193819614831196084320483997042198755401052633214453233577090654110854001903652956826038441797470963344873668303397703086727263084363495906711315772731625400247037861802901181471314295633647473150553552118276429943025763868875264330591363263209629380926510650720161025131733879490992747448022581921034879038689273169164205224241273528795521098156211236053459908911590444286299991727518475006520450132229668881367872299458112467878388069420118850611389163729679021325469257225377519355720269193463652313724328556835701101956891405094834769827363478495197744792224992068607737151124347195819177484377745664980695282209646092427384006475238974377591391748057168148906196914960853408960311912300233332792338802574137361374476812672819376050130061697731710761186820928258666537973962694284441876667153181973317263481383563471211560842423717808192862133052590560844022608810780621343610175016800565581048224386875812557331556868498144426739989647400107092909228133225317349688066250635842232474908463938255057347369905824451301658047891488841595193664217683653240930508287877950567796910319287956680250521641334649709831045808586083830728065804768562337729000025341814394711059312414945832055332497880715839772179304719897391958754787940288933418285000364159207566347157795620919379243994999463663159785323174315063681274136975430291406276698775526518164711245197775091809453896784441129143348187207301240275112690647660285021444590016791067019360978099772365672564706022319490955772244900940798844297411728092085080017240173699886868769745136609021718222310528772437577267169436600886728695706791338341834065680512061482393117675522202301911772582133138510687560850352275270311540635112657074960418719227216952855115141887959732856491291769955561335721250038969551205914606123892228345972710297854422626599655347808965983567523109031017663303180767209945063218651428895919313625674423071538392498523660028731635816730704827344104317184797190704013361032266931348359278028969533678378122549843621397404242377838162566844694183794020074696223251504254613589538262024214208628024888625777173213495320779749992011194602668867247965844805148107693136615384050765621968696226098536387446707147914062196204998364895814308964640231380061976015424738869247488518649304020818335669034770067001851111059082409942355927918734113183266735308428022191529739574277107707520306260838707805364267165839191152382358825414604706564767839953906981813380730186339801374496459787434284308875392279894852692604212201754688956353929583552454471063892695456324138722575007545258014786894535498217418052646020779060006788833826780156604185445651282736572365914533745691355671708014793608308651320767611438234256123027752431976548072474358419374340001048447018212009929763859563074522864941284461417488542568985985468843046094450552310996907884577621654587439058757386736334171439791058348756604530158045715908569467156911268024266936743500069469761655114497700998623739420003214168052211170894010317637319201639315432879382347105107524251083123924364108387903595622653848541245423233706208264519739364895571739528088676534810197060336471251532062624544740303656482162432494342993375729414496493282131586750941887133224938526062225837692970455743394051138241504019241066926253658229791438460264300314037311132507639468238359909162640982216247828048728203267300201027766326820722190283447568426599589632039103565791700873908571922574643477422618755696505164444430984320802249531485856762984527582057409434485666349429466435750996453208860209848598771315619498407690044296650467734869545652241106029358492905420373530999353249207238220830867225825467475492910590102757849803731488753526060659899190968796721900117537059999395624527290167526521068786340448192308990695219203071739646984489822188807708824147282366918839621840394243481594205325007776504423218795525951038525150969141339528776184203277009685511660105471624379739881710708413850976963575247733381692063567887675673912821211656026701752888145168476474301719174154966016846584483393746533141008880155178683928832975529588212416621627400190777409308835696628526820044508512118107834888228283819262502919286217229867822060090488100019253438705706771728472233002233883975157700004797275271201795558346281916046879051839150345166175314774168829958307873193797412724060930604357638792144283429990133187363798765301057173707012881126061548303568412857969439485104181959483888774893926867734551494233872376457975181073216915875143875984313768331467749877404118045414981295181467383800834193500840040750042451054143859807362124373671254477069343975507716257902111775288813925230516218296697110559557364979787931337231515762428643593095417414733114901212236946541900935813816852911111109368350512879726526227201204344928899716573675836898989583674221808758736925234234366331173895820901396812791721610699113515083762198598154201707541626448307285398539142597179525288776039347522814317387723000300323054634941989765095714470644690300661037279321927193633652113456295851278789228897359825724619166584965676363508539772968559515956007995535507829735164412723940855875442173060209539186542234951916097267497262748513419440468088672305556615537906810574577887711861416612985978950067744480987228920249308374226759531023475675572573774833934274279372204150629005100777483969022944048283091659667046720619317521592966903420189054613681625599619458536254115802114001173710235927300980457817913050199701447387193964753349365897424911615405696834900805468553426466078704744991709101382000292661447856560104251573448944736498649754465723911768886306869658133092616308374761980170623063775167729413827726391634947621784164760965061409821598575465942777687000206496886782732805877089027433359310271480395818404575351757008864679898187663308026531039532972328676266807007377389794792534626215536419439173222807966560433369768684331204852519172794895214810589826527476844690327322363231976254933196637535715025312814288545188975732921707514667034850962367495703525954450747802494907835233200076147509712106547243335881989891441347375389623772112847140992815280637632209192954866486051370112642316386880414904417845226546449806102200391506761046244001566989698807634283593249147725934252379478677270427939499669660632840511254211758342714449724667045034956446929971272913568501230229487727247363947203858254829925668815993910792458489130743572126764593651244026782305687177520553871274106428531434988724220152639756129755556225151635920394897831516387733919073935079627879858311621851834982558401049608987027834109888719350877164833483148419379820995699725236242974127547921328989480085745716707021626845103768528532424239692382958745668910798583927647175435683754105275235371118535442528187189039543538918438223359276578950629705884553246060099196687711703645962914346880577908889217356403404183457996437405059049081431960972681133365403921907906876080406147812828635573528257608796051091043553432842039113083726544818976894387881434024453366097973595727922915940251680328895774854318047445823397814815435024416692995685331747547638385891116394141131634491315679128397965485029467522704145974343779379104620465037458430860200840862876671405948927558840385953588152607921165153625373053845057070969200482046710647262335587459094023353430298110456199263712535716619516544755305566776542502882823273347155487490650374821314863904766650228098225062115120781548781821800792747168321281975756905017982594179180989815340243977678352142004874262382346156390164282275704956338604003766934029526402375965988372998622058141434513470037850024048890767956045379122868247532765244443095959381559366319818567186428759948451826702896529936876052364987123714547082855540653209832608433127381625648235345155379003053383184007850890805520800677509136818380087843139389906365751418572043378344956398695331179280690214438705832672889793957015576575939632913285791918724702408353419640499167883329061746417056133271249672628470683313415522916866630903640609361985136038045569797072611824101193352823595306024315679646667543673144080444863503967935429052535394107293043893159754867918146868036827226804621183799136332805486993387702319192058157167851544847828673954344850768950911678310251343660041869983619253213012435626899185693904771957618747630735227983741930476515779509975589909922669525853205792618789480908501205118729201626024389218732664309349276008302080864806305365081852260609483175493550979817063440565374703911667566840620007061303638493276781340068798347545557915294666077455295522983761383037773009790459312937763781608301585387941761423226757766600250020795767406430422817827011477285782394250297815680975285122884722341806753073941288120341343253387639982843426938594807167773930543841221798248628306629702529281191694876935671250347020331369121604782939446893019781479781785842226741304233276432420731321047629881112507387741183763869545786804501995323911013593433059050166948704247890018539859647398223438997763792335764564609207466543845360138684816311648231304250562774585127923173995342364286151340135962194219912206311272528908870082706389048003602059386229873858178280676063874654390313312194929064713148988208471955135203789085031358256421249267118659786695564144191472902882105568221618850903765373516171069748833211602095138971265670820717328802437639472804844608524843466353936705406333782058125126005511623567259504936320280710127319998116670709517686430361061764816099881870590186584776043098491191407335753847062913955720409486097692999544009298509474739843328556883729611812776252054856757296223950107853426096373339645315225186153532392410480646433210492879393052300219796567829946621683810202098816872995052164253424906569420598333421570646412070697707075299616722563985322459648255856549805066164383321043400351062833106871850427315561305629684851792404521333988892279189113509014755261878929141842075098474458371866416314893499491892675652081057514744855921377352325618031937640030306016676890398897398309691104268053966871183103791412030740636003165571404317600700307677354590540825114082788968648376133321198774395193999349956006225953739272711304998160013743773270874264472301635722355390191404389907759914519054631430033086109361946769859717729364163212398571797767841939096323499276912110112491325363777174136265474918045892186499126751054479954411288298359851361576946702223854619960723786027051361973568808173110439093670769770400783516651661130948968149131378404915257918273654530476761213186831320866316534511328061367352103406181904263406500496598877968027902365346880591087045931382808344160388317364322563554771414663536975752128618711042424163923331454291525639559075095397943938492492641820035573693606818903601416578067919161693738421157091566093178924677113050074585341977991324845140370078562743132491732894855072607668677821775294345324964701592816526512487022197245414627428570211527724900474420127493846958696514017220063206618160497536870024559803403237666005065353935502385220674375087126784693740131682717909149780533591829790738700293970159405349133100506869725941285467030147347404269069309842069508979715162048493886027500259209713612838182907976259649775575483490636523914174769658904791092693233415250394335317241373031219506663914063207195065581341028550605918673161605780934276088422925677963492203884535905539233580030173781447811403130613585489395989539168524676689820148128514100637913781173615898626513133305562961646340581746504439964237845471620491284382130682660227847161580196535251624953878159825745843155462133974988742145751116883108883103050450043661458745852203773634422579454104107975881317559516548953851952560660119218167351597187524827306367713849526472325005186134162233009485987589027461001218673243943354854847105403018765292527414120229992462705181662808501952239395551305586394072825520311660932969872905640885125343687977776073982666079106994462956975687930576473513964703281710575145078336008963721663973837213555414133496085671603168422836239939058953210822120835106448694923063208046868673362730817763022808537903683097279152882545292754167231024965896164348104762424478626252570785072075714067623639931184159049167463449165499043891781511874492754683958418030829958907220311797750482425674765795680935535831760656624745765983126252794102837876718519400711429010969854433097607382146161941077948395833588787727419439022411993492811235889743464066268182854755467768852353658675487240343410398050827481526126050086199973619525770137553323722924650227072177307520078686460215047538796899906336970385026534650436386504928668643871262384448217513059562199870760449057727430937585074603388952625543804261361285177288893850999427860535400528073179123601251686585109796389494260677966713263172863173589201739724889951121404480805388276263613237928377186289498201783229136041398069654980681671887974629374058478084532100881379381412202042773454759753775860158767365172622082420978643082482774882238393641585214306453933605512546704811889088382137842563282479037940558315768549819607335881196789124922341940197457721308197519529392603145796932108112542830411186995811857451565352289292699050070879247824688143500397629158702368975509417811480394295094126321304608433447022326945495806129881990135899933314089797515382677821371305569519059345567857064123224990569267630183784422467595514198959629080068880540812586107341633697191308601654939673649368581758239072871861111672253151952822037428313463893234517371316314300736996195252175602370987459939670385568242204094853580284343251716568862102456036999552145947318843599002707663165663059933494592555241951405056378947882110335541658571123927587824847409913853924808618951500725694418154627311257312481165783078903960688434880387586760675529156859289886355935505374246508092907970651841587334963777017909927849570168623463767678162184605221218543490715022470387322824691721833154289244385270476115667703195855416427849135974884574954348529434290135958671967922305249388500397072675428443847302953665429020017651017616721572741853563441241515500529630348698663286252960994267486971707536797438925041447006352880750331412731831350347924256236823183307206352223291468656197618302750928494862229120879274913335986093072689648770447879540947898519279461250606804959650075396120692198696702798647556767313742994335894406554165985990515509129722572407491627806573930766413633864347990552188511759374796917476249511827491931025454476114416042161831936461778408303355544372912064160851485161501082442476576230460986903078125090352984926315046192782456785543185886339432589243588751620477276125983545119594781541931915015341108989668128534902994003077547618446604094527354339403911658487636777323640781802808303483486936372803580798443354514294291570220882499675617496728843406032608477404850385564694857910402805186559954935321846349877518666457747407487390100755290757524150892746811624236027395756140538538061410228653182817966384103017430432035390242850118540875274603794726799637411558410196252427807468780691786004309681695347316729356171597652217696678828498736385457315651081961513640942150098436946903853557248125570894214255342652572201672931497527086240685209735758386269602024266985917889253430905119384387088796226178368953301749886085584261487710123888923416874678175407137195039837147295825082056544129078453212621860348567881192320794849759568479782777025620248361796128119704297909597285746266712184724896439925880010864684768020635826535056416528433349958561840723992783951882227884161890920980795803070759007112903990859385284986477015570948722935219771582892422404923248743058243690269951041149426249720714776477883236324411392145752448853207369500782250715792681603614859992149856950224051284080411296682874220973708237315184338717207950948725032603198380433038099309620140007296751877355187609681662705364375100044024115153095076846105203644785182298180169021634963446315074048873066807265411491542623644059403063894353875131184170192403588285740048498698297765415328085823495687813674804492621172928641721252299984887333019217843282564566202239475233818628161157380043736280870779440147877701442096712048588517958587156806687355195017155719525468356139746624380375489646571570456804403840710640775199163301491168844893604032698933554039413038506701944932536660489439343736785714523542565684159877980325862510786728624744001882102235450504170619213350893831548942847667418841059938961925241401733728783539172117312523182846671424093380215832944271872778672144340866441848521860741893330673207559160278280839260698543144195288671976856466332233564136082594895568382671740956971671250967591695239701347566376060001274548405885112497149460324198296060091997267179863644371553438548160165088969541268057745875569093341117540958193001333817002276572512838296658176984596292570486997835691436358521352953082179804205120678758708584090120663201066617412275334545310175679939550100882847098570163980222111842112720329968441087158992454064570495460287645947600255126273829892041555959734852990802945807211021705503758352689809932327901696827994876192364539170330692884630207543108081085753824701500560014441772938861220462620433666931711184552263023006165180230253727387578699812933924417642118396450588685732130518045968438407031389218934029252307690827135288140163628982398246292112254908849315743577545716271647708075957644026401614721014576839388114161298093028930517197230334198345366412853732351441602595862188013452791869859113989705750313995176191582792547221395333149726824840148636226172801899544447005862715117522758595375352740756788376230437955781979205745436437439130930492528365540201787142742327548197408859224874029273760669298523915646234122367039642345208366763358471039241187435589259888169575046317009349133317531428202368534908621659498701860323649638957861473456601976268451420896935509633317722527563922615906899561463733168753560292468742446507635895830654953962976091644295256106627887519119891212805622385215100344745407437218398558972175182588605658729666884084125330742520615017526796888700093789624313680392881845424405764180098213967839693327413850401066882787811885975382159363682297249361182873291201245430429609730838993603957195037273962863919595763977306592967127322472442030275930075852992799398212861110164875851421945332638823490503368138964288163009215194766761898296671217607841540878648009290162640037555400345540969195301406777757064391793076854101044995385043491493795488572168982157414528694168478811636526542669974525911916627692998714176915248062721392943221265355631585016768192974943463851011903517706918247422200834208164111083172968245237046384944741028782424519451256629575595781624914881364724248923138892924787921282146087036987388811363914591558540491098151273357132864651878332660157560922397682582900724215279802147200436650126002447565496220080012823628810066323867240871686810738525388163259333638109875549564902300460875123617707543394924611795629260257244226261610336729803495131306678432583632850580734107436114353863041036041562640709790308872918043957122834272355633088848334958301429044800976679687778532533759260191203428102009611777182404545624007655546976018775117100201733085071931368487250129241144029684516006201686464957108670757272972778519859688310895589233818284905094342490433962626318170470266996513123049856547984131277125610020989538174792128339137132975392162542385776392678560255766619891086058932861793247836922213071684016459287615301903396479527263540524502532310785624506605633100243582187166595890332488269223719607458599562734203981884776842083178365702379722579212959840017713125909978536484384050071456395968841091096276869691995370661214873677020088777966373227460266837746436553025781011466725013091878718085974181323226864894438052023239846858145787182963274953921068080494044511595382091968427421325290745859125288765723710304163044371744965687898383728207130395464438381155465818343407932467813330669087861337942953411773163140735877249035564001960108431968887203076933691414798055703758036236511870227928704758950175625429131348952439019630397760659151799903053471618998741710972559148988964653698436256754102572878937154001902815362677678750099833506754583943879378518492038489957651429526153498436845014953660205065438755779748382065275258559258479518330056421984934685143500042635537021404889361802003269018410604226507707414318466304039132887594468977724419153795175593613656950978691192287094310960630409394595912370648041608005005691204813005504707849384198767885016560443700308077759020957731401723135340344208312213150697245624652781305915588297555628433448163102980625198221680823553581209537070699167749880614494100879224380359906551468199546921240487324674489870497144630105602775448347948205401994266703827993555142558335573833054269801061470136797504750732260803665343011916249266927530926019298223179788421854210563957066163885343882415086986061199277041018975232127724825987405442637984195585068547455412886560391496917237333265065043913849767382765556379163215313675956690349514901550395857735088180913769314370700068965550903165365052770168419910933654340758179052981889781901609253241120963910743711278919044444443999184354502297559207817798624157296774685108345162867848657307227358555314311163537402465527362987767067029333991667314625934814347835342172075565290394747104895266954848027502409104334511489210792709016844242411134892171595441085212865040688547134027255744377220422502901822312841620756553744100178961275287807479798932902555638304992258977778722487419643725364731681702577215371958193714055695782296053044275906264185833387218584432122043125956356093524996388019959469806675533948220031868917753836136785997162286201822982447765094399136249015991078161720964890181210874541820408192948819722440470701915158424179691283436508645410329636756928487168219309345246126945450040263880166106604359045720551861037580624282282256672194703345450263563598659283525433068391872742708326733682042370429214303011108547615511970144304071111828259946257850946746622895517661120327941687261860633992320201906613079041330650197520928457957396006896532477790574973520625862051090039561545965865771666484055843433931680106906730621436161879988116202714934172626971382964346658849615384498093194627406896020098139617025697239659714572651000253213095720618436432046020208136781286852027264983824090793515598453989346021842748648043641177138142533616143454661631299218610760404674629396154688112262159502636476482486283803023996122024941735209346977162541255383098080511741888389039924108050939395700711689206421703588891245005370182056304222001835918306600053276541171527973876283045514399498180538384837629740342690567588629321205130805067279267019159640797623645417880828277907674885130884044296324977020178696052195438184027989831798686483391069962446852607254253572914900408136481874632624312775731684138417897050146972178024638380654397206163960152856886806451170935320231703670960111242415489520102019661052193695800184574287955624805509364156448975711663525094376513515053411389299049257971032187808794245393921384172829580672410914386028048683337195156807449689493061844783416496449771250510935603692817172013699739060166074710943483440052232223608182865455314156879866209710471332912370814727806806909102065650671819984643433030143580253680306736084609734172836149495651981384994685487055862675885129243055378247588447008567222905837294749340551068420037610477137041172102935096246440965559468749610302802075663694408566463523772347840866887500175280563815395159643452288661603539043196360662376621866782005578012264860673969882697826491887126788914663918263277381601357769491109297859392938386255128165366579574831996930581620174866410546610787631641537527809922731168594587719033706870367449050913513030091700337541923847181286235577570997559789113450972395214269802975441216062626338530536006930189817195406515754695435621376422700081439259622891751334744461946720560996565605102931242445243573089209508342176580106149135943336982973661412915117878373449458886733266338515870281715380117028971108203508859092109015967443313568433774181221335636999469172259299284991717481537245524030439091083236864582194355051106411368276471475637921068075369745686601847478004383901437516522750476383826886258664672266923364347035146775915046832100212034198287196876032367288541634983212708025901053160287643506990647105602022631194871576106275989623376041712449207884140662395374792214882035901193759590310909600253502140335720111913011422142592154474070629735959091964812833283469851878883963273230474394251055307845352473856303497300290263811903158543774736142067895669736020528351869579370160130025254733440527199063519166211232879493904373199459991244585698305101613835286593613922013362814375108516019144869902019105226911930449389688966478331036994566945521688776372327435243944304930058327970102334433081240387489273453557997610331880802961913132390985833159889794675766491986012039694210961562861946206827258127542901252903818429267599782480498372880274051455795701367215143787753612735986414976668402853356650018127925131963724879846932095720085634597915980668880407790407821516505256674822834430054721330248886388144139295505087704046081157269183016679187564197286984975490331504273863332675654519241130073199941134838220344038494117923823987543472046880049685231156308989355550246485289538631409898545272707468208239916716367044607786399235510001972569156411109803540083842782380913253470192509177885519083725769467278318379321887242568025952945532252852826174739380010327413978126870904217630962495040784681990053112081227118472102786709561620611852481400779705398790912263058709704029957258577562109293794478198148781445593052729844634045012213263327572838699844341071018209345388368873208006355769692213476110228441884063193090274525778654356146422272252569026654307951627266313048223239459333343017356696743446925177005004719987894132366504138032043924895169005994736773681016422474540855973926589069024914466903762200999523607262103267037316328299383707722444157017759827212868365726425243219042040078403663707632402676207367677491395784189197874761024396595227547617468970468083866161552351217811431988533289815711625258988761826563151674770628697382549035893639271007516710717634027205807439616818971213168349606936676964697953436400807468386393540558885880538825138381936487773879376984829314974692326997509873894404193312883883969468293917313602248978043811024411828930760001641535791962093897960364389241823500747245579646911340979159557489251936180750418495975670270277039011021361255088820195324285560512772341175786382256713767878932041995682470816320485373265332057849524101003665524444358048748462247882050117254716559574656291362466130550342391101990491117879932122054280888907006793214123807153532130654751748708467083564005615433509247664678240005106836227083621990268600468620131753671021970766908438108413408368156432306851129683556925891665378345335009497826365760190253324258243789629838296693439257578577049470862041527652439232350802490471388969973047154713256873996643642079514771688155649509365548443893063065190175370019395993965048046214258126208980546510713058985579573333831209579019964415887929480432014034284723446151627620487303671199121568341702778633349437802643142072912188470049849040860749766610892075344866648001388508859903853507665902084362127350872700662369532261737801770357699919522114712430065204000654167969801176501693459890952189879660133652117937613136241111459299577821367160544745683653448268780798773294890662743560816405557662255852844223441528672179866355829492068709261906595395626162984315959245692287426843492399162472936021675109080803868230228807227911955469658500601490853869336354094651669280531658885476131743308488971751610610258671631323677621068960386041164946166758577212648330773235769110113282804075159451623926363957919208829839038792159028877642817161502750239622641759885349742743330423398312149558091903163789979290205076020613747655860417280877551687525367196257335209357100511926825008984991044797545230994222662360803313199374487771210443698419940675349852661495291589083639512215702374888323701446488605770179008677979274801417265919538721037390424377962031671126676575135935441255856109160559083655109116888839732348002107149072996617442796270809453474444387848514128656665711123492799010226213021624761124789991870662520045958378847931689555608440739903822639416853830325752650956594777522105091633401164424428994106180729642713699088534819999838091839540012904830101436909089786016330150526877372970753586995392598597086656513732145554326516086684266153120041197028202553714466306506460529679952496314679708711742659549153163512505519430393518466971619117088145931632870691716635279718909308170549437316271962771934837182630953604603413251028219527106301438744343398570173760624994351056245670597895410178019223200575610383387037816010389412761855887812629952984395534282773302293694816512713817089012421081249484987975906119612022675512552896163596527261046831362076522147718982898859689251462736198693947640060557616535016406702948461073648110600755420583442927425132687961049977461307942181971694000800877761818541141321409190510920746908135965065239316963523651317419579617638251586243675931200722012906088440494361599826580304004636013736083343693257246740017080452497703399786274201859829966037043876774926593564050476365833617215566674836559690800152645911813572802874595358982534130669901742782281548105722622736213207448806930253984365215596983808413961828800217059672892035825507315572547257394957938106001080990062476615678494684817161092932507699012213061881893077407985725144387380152602869779368064009213966126820172070192765478156816871845753265570440272650881170182735642303647095645917825082866039448863594211211626146547411148309388005322397714292502310155488220763228200047403018364268990582271973121523759508723900163437951453298001316833637234306827433189947374704493153571081128515970787285275736485308844238448873202930396637811612392577240971727366508441764009684792950877009334905137788144465808482703745231157185847704336583341695016672651039531321073579696382994198587837689673605183244893022736060773899170367753590250464850740237435636805505861320764736377885267324186881385673503867668668584561739823704402794006945514948664820079698017950187923845000329651543766877747390481304440186777381239928797739920582657853055522367200598718264271568864055935024631451246538242784298515037426515239069493159063271911148524610591020558485711905588657005167506173385526310635840760712046767444164394105901686992685924126113138501930239096593398320271869225967324457899042167290976421014177367712492233148692000958344883764519783544899333727741773738757566032890865380823269085762227516256858204662396957772371135062483449472811957682543241716166950993314143021339725854811247416566489103739011728698697241385191460450028458288081270437734887051288746813206471829400862081493446453704719386157404428341357078860370968669199989888901175327169905907093363629353721853059868039845620005524054988576766065874623342709142955147194221742917655737925221687700262776701016747773745344867990560272244098163654581440151645007578716792648774097239151431220741143076980772434038353797606753038159648036264431209426713070029693049297263730270730390788743196095903671525216922277012376188307884846565213292178404452639148502071664571842785171815612977192922283964213521063767445809869298255673722293497831099786428373039091707661727310219430439222314418715259923482242794805667724365204987884924905920923121413809431790871377275894369373835041982947147446934828015569897334349410999182547751489011653945780218562865036870852517511849882317832627788062236326296364842739507057901502888082304237255992183316493003850284098910496763295644716343736776338184015487963918322824838533754477481341947111905283657899156258994189897245496318660622590537914222600760088257166854256283692171051131220546134402128319774293604991265791643748004236431267112454867182986380990692432117030742963450337730536837001102561747788299937303620150821055861331928840177125749919949868730062499565711079640941357161125033260640137358614496298764140458878968416512203426586297226650007026361963529144646041186404375552316677384814127042502452256187362507096793070519667114407147814977634653806153605205606147137014756779892279000377301730769674813205978813518061995786087420411025422463020157545007237478389446994162879956153944234228096399673555965508100248418601736835393822047460327659276790747863767888201495741059860039563050044458300171068420233227540754307681807560132399510084067205314971385968602170974353372879558933469593780057783507923793087232465565632580071155759830805656041037520368971173156027871568476565555032138178825466094889361247956650307093416890873860783889779745139711446050105068777687049224418843834842779850719798128040555549967909248957522526372849595908477564802393063644884322784040896531248031029774833970214222199037213946729532533377934947860324907804209455296125545974596297978984509148039480998477050378249314909701257375223892665449720412842339806974894826849832290474519882084511745157541027800535961106492649731719444470300407890591750076274450891284823202366983836237011128466847812968280247940351778613098716850441814334229640922087158902508060029518748408012121682949152381519682398347159275771827073613418099894699621483677069702209323650689802179535108543376729198455258933176703562005165786493458950516980088433210920725695304393035857869570559610263530738887255868137876335564266391109220883190642998387416772288548029259542335460340144381289573969072866972132387270509825597683820148744015828841527521878043714294303425946439617086823130635920994508138494268775493157158620328742402933797526631131853816394556696868627098918290447033745025201683360967905784603495577308829854086870977141152997821781477916852102362864249705928315777707190705703957252689185935270131383557833628062397195796083934600920367403840672402075300295153130752588256855035805451166484748707466916393662441836897666706668142935934789490336053999635664282390213951482026973689296545619422248248183479627347398315599325994405503150526183171429084517617468589880429692949187080927594363045203358746572106077792997907488203053678301720942469414227252544227060537080765102014900817663295450832547503348112332426665192575208623255457593400823572685105924274002522343996347500780798994442746767607346972342026339702989590139104323797951062329303643951852570077207876718653562176603488842570494523057520365570182379981348735013363956636852037311626769170556838297248903692445700760987075998725619411744747859419796734901249236378198758061768824397737598584517124873497802655232446710419768813529950638710020149481583451055440876001149700102937261606331928226074873757612903861907282394924392089251070400198155532072553489782890899149174367742661671268761011605614461793112379302970920105661065328076809221451026105106584977495584395048841044907536888534271621778824714345460634661855632759388141994228123474221295280598043518862973633973653039312510136462275230159619946674289104945150378192559181885128989076998461743237615104623429671939896830296912246969692897054162451438523626989749477047565551869117877150213091743109440721768439257883767181611824168965378071046817222489330773177492766925207641604650816114795041782219163182949939305247091439131320351685974333981829424604432039602065689942108215728397966222775859285415413866634375849995489622783553041751188885893332621884113737592662951719554478452346614450646512796138824993577976732777808301698372874796375207242997462221677001772668226678690849684455458502929466276442456165192873110271562334886565685392662142577586010772695308913129164536923520307424922096656679270963123803850524249194047290258874053581889728867524753002011775865976600110982751576977892362970539996321574669003019047228125433978116489844796108947966031092461359093046618003176650852546816960324491138416158095905975016755488108877625650872539663109290153136601775654271210294139159569486002960575336180239308188398621673065553192060477125786233968502242284840374893556569746213777849663333518063985374289821034940405715758302512860967143310218335089351910800820320357086799019822986315825721405138849754451191521484086314459566721141826026184982110233486511265024498632294438957861739426531419199118506023005895665996626409164526879065159849632292244448026845406908710255354443431705354998537783671987282529694089481059396144922643334790792811131274508557342023394346518098055162925665355340979838983193402611035448266740904638014098979762600428434201762499407410717218468693397239001869428947625506390821834990880283213901393737151800894551370885426916996740379403609403472580638796412850637421949495821977562550659926829587164992843086422992014369078831675308319009302391719061594918137236886458025294556592210803720701851692631161399975624672355749496186915016856098799352285793087581904774009951755638953244513920473063429387725069914475040538650836266987085615408501434012559844044951430585920439612472850972865258210431366405524048930129454896219238533212454593520848387635519376646962440571971566718981581636970303955478321361538239997033658937520008014206586353189337435117330187604637549903784486566694979045700741893791115172804633870038546048366169975411237364246681099352256346671753060396875071433162230389939404999345873682294789222428989688149352788240729009338845406411937051166691949591330676637244238949256920347777493069950697900856502350409142287531181647544295589848599002592599708930081192822171159431759876538145424393176180850595885298813747415075468005727444093138432908101901536080195834114165967514478532762105101024999177611687509735720267577555558205466897258480215522265071128859621133433524889619945786059460164443797251699733324247587749001303609559255665107233665289568680326286993954985919359059126361452734863201738085565639009255656534695094917566684156130297837993069445332209255887882034985496716695655871361745446382844347534385709695724299007593823863316399908055938145637958268243126099397711883924888107547990694937409346875255687543384702828879844165574981923463459411607905311711215636803672531825502999352280728620865972859660734989997301887584822197195032593207885397732354602305821465341358111807597716124871577159789838579991235922780072090113986485577492242904265309781475170442376263729830494898270502128460704523950441560369045344092105090116309643177263211614289571442959164508040707138690783783837800089951936735920529565755498412076157803800369807367001781072551677773942300687127199998829085217536891889553647804383088961470405570892882519513187152327734317841192085274037012670358580077096423487000147497683526768095551925354267024694402740731934765118295452269230677801094241899043235935022353892972909630215408588967577970581432829353395903800092145416625792346907801537607982825902484825516472937548827337069635289202837526602004972993846256500235903620860723302690616819769947473062332102870122839336086430622765109073094765928033454079874309240932754851848184073700677298098141506899212578864748962611973645383858803450983644851197517486254411274788988599386570604680878498116809518932330653040354501353748125665752556126869430291596758988535017206417931586176364175755881087427077935983989133125431410336964996809950882816617073208752317321119257928249778574105613459789421415396531703353224185685877049339676695474987140110597358314141842805693778127691663284567961586061099709208736963267460767236531624019715655689324847089009965429533588477288090936058799334168268623063485982600736642529076025735862656703323007252000504511630460661128520348452459662433806516651188803865841518966393690515339255617981988505285246400716782811040640948649688385406118161347420811174255198297519244812880686154767601598402007326188819697975199592819412199082588599238530301096829659217076745326492730481370481466098330309454571960479373088708281406242613416370005680404381393875880844575510079384037560175866679145522661045579259998378580861852959482010574541324283914413523407926957368009296444760037258614009060903204097014466642682827688181986518029171157858078792928101423999780675635740516347256025917072715479777086097897110329481038440046819155522799295517840301875775392007566912542668958810070143581976400358016669972954703271594119658441965571665099140565796457278258222001787450924001157173747784088558643915756756359480495186186252738926018386327782184449034885899692310925379626581470027014414280076148461836915702345458447390882386665142634654096266085614250041134961939602684993796619292442004987686129298726622513783155381185798344521512833703366565440738274321055029719662864713473211826312792072172104806247778009913058803962764239503244648594600392839810747502220536994890249744196052293840163382041874918104726166019999970175675142439512331998900927251562271849120384759989508157177552324384916535333398236966100128508643757191313258103036232253229508899259594629146895339860984857350108149681520145058994184157016052053460143219058734049281385973386300832410458135842851738041823938083517806110481180649802125998545380860345187681714784100658201882135274046957563545465110835052037133883640004474308447588652571612853141600515060877493403690902433052503965958701094491606616416182712821323190678027856480430349259499927082320063427518606665328781993434964557676531250479373265425500542494114443140684853488935614852242731327710783609717272257544191155040005827066384649433994214304579721919245667503747051221871630458216525991702058465531574318244464215992638432544910299607403530569108756460233168536421454972173397003057726038851282194304337662769372484110401366869277725769023343222258673436661620414667509604155607111435395642677327892242168607615236676144113132932945058639471794484582994990503729366830284339502042662314974017678691182971343400936492894934618117667212653367961412017760674289446024944933170937225166307855598077635404042987630249381308481127960473688349625769363548378560227303401603800707035347313253236003418259960169690351319148075987888701650521784877298629692640968885575115455294423531753303518252105874655766930577039729827829594672453731338241747871953507823876569705272708994362638053477433636622673686720225796545684338961811357759452029504002458708737866807933226292326151908844100079689954168738645096335295631734238430891518259225776670087968569605717815405107888755431608632650828510300227814164551746625944573700196938174017597327284479127459827106704020410444531646882583883857961086168719414926903230909582469493266683183222379140266193833176126936301792029380883814585482628210759879315167903109048945049278493194428413040929488310197627670018273206193081884483700779877751227969718495526094036987593533710525236517539928428664731031094954647214876960838905954493617337000096441844365453432365289665008254470610757935493607997549965145112845952616672397119132521279854743054725338895698718373022693435118674282027906891707469259801513633903974038188794879559934608903093761360840938444645312856548121189321199103392598747211435971323522199752989589598456386864621051585425959650423927799696868724064687961810841082971939332451790243720148330971980120067630811384452527703292648000649324586471916559169292109938636809463896769522851839869343118515351144116516826427330426300183846538481423925518811910868254726290407217877751031189174587332120923418181556201190326056691817551008687908480861949135759479267440390145399287211690447391893263067406582830148370460013317662346012442967448257124253037406189278519504707155360585749022011911208314350760547506389914193297719512605084709650569039637912774790999891277288176071228268074678194582212449953114344024525877884111051340839804023296077414351452829397020867579512718468316622558454006833787720341118420981876917835321777594817995648647688823468110477113056920827684689155464528665126897849001838538731312928325013604340310384692996626349752774837342863368378447228866551742356103421427270116370328160911261568624957160795884025807812885811231007901112670058780953617316291073035550133619059312580564965206089485385236754749785079952314682969399293432626101554758149593151892265992838194504658757210831425626128611180904513865665482227607223257340858831457161978201692081907784258556227053923643821405195650646604591369318259730230680405400663694994922470593859641235215367572871992723780368414043329603313335242174404690620397804077753177515529091240720437249531864312271936914856064217909629511938915063626260842380501021558140784733429424694093477975817931873042126294581801839399104919113526151398454701870885508096173926543460342971543082062669670518055130184513918602715445163130585040072383672512653113909776941906559279364116351582150723261313540311253812489315877315160280461962168881875465932473310671778811782328272927832231750775876701730462221184953817363104226191532712248394255590792609341516375395415706707028286684760198311520030797431155741346468424416934924108326389548532095645346139154592041432995016468246584593101954132991025922774273653885103629050713133796869409414666687317003165874012523866507987794712750432208119885601252952427281578627043447753405080186861704315697977664430406759209679502295906846214667404990345682370283716744695978462502023277479586719376022486105691870591739442503955576604906417728470311909053726942045167754739379882806118497129111590661537759793237830951836252169399440512821617177165947618150343364335621909085148655219898077391293603554329232235874057928453693398079569806576622340809588943589923872966265431063175402967501019141258703388406669837012590233637731562640241800476535018166264711256003174721719840298337193572251469644551280455331220888204840967442087738038826812205261314256302127517391842735811431933964643164141615087681658505737313850181177320154349068470565241910763298605472875794645724743745542253536655342114703547702591428462952704157171267807091390572413503557962833726310471918031917555770302812243140797293720848406486535323797568285000504803305445595115830386083675160610567011780782081317957228803165391193608932899077617839289780702878269906152493133045426527542388096622686205925230217387468437928560218889891825350072606100664071582253463384600995568789010003431251494977444389958507887341749271141517859145919765506339065090432512744155418103991048916741535812083337533776554313422162556418178527256955854809933802787274544735230243450240145474948702332694790321753536944960047130777481271050622882960706592146580104166424593178658558091424666250859643576945771200166223375916748716853990632069659132508688640984214983227863760889477256879590136651382860225746285441912066008640064876924606840743748299589698572095594983497478008295785970323746171808262779255040369648906642369102532876961782858750688409153347564891414015961631729846997486061080570562342720548364679663697837067582403835158554444057137610461746748772040440330901773404928210174796634442040829552568966420210481772670632036697383740509058525234257376017723394296723464898600352717773909671825366941489054709797081923515923687824018114150178667727807396014975881071638778472578185598343161746929817034276969087472552448678445380998917430416967358828669201768745647086052275640696363542972207004600054174152335623542920826338397168707643922058283545886032424433599755247565872082993177664658634443339832614518676027953667892500857096271835249834680787444871934883541089251677386672018840492859201918817559825671843264711681328963164599270558559227108566342270272152962649377467861775222819787122911788746084542949182050630528727179499067364951828574931391429349988513766341506435189761043930043463912494691833926990978363363725056151527488221089378419612863069626028052471059396981325399538524487728980481029979800076355466659456721445614289104540072292978050876092356539149119519721564220410963815607882533176293386579672704141147843065363358129460775445984420239682836186311615501142899349109389580604066520007729929562318537885468831689992496574146954222632526587916036031487825429565278732764980555421310101948058595475002507957036987432367930051047281063947536552204645035362277579955718554242046773405170856004324874676928504996410315666398378211694594886123137724093825709488565306729098524295658189534910464867053831987885145463318860123771159935204749493773789759006760744598017905644077513717163450106784207302014911883027844236037214668142322391515733494901239318752296942651336875722814786000365390644543758966889224031496464973854636955541624827044754027532314443981814731974131504148106025791552134815408922792093711356258424448242279029755167406596009782469933440072536359233096840130552947599296606615835320040150276295523288142247390263679671943965819661840591130608986423965284977837119468793996196522965440968764193003333523664891127233322189896978626790104011623224544968719976588858786014870133557877155138333633762448205516992900649921131477961252396106341611534196869397347096163119668113372897604472574095500550448397762165468424374053671271634112634569127463049298099057132898791650700277252780050088659294400824848266954104107509387836127580998431138839445134486576455384621379835967805268144929306607301628572259267672842979309849154598327047304228468132399167343644869322258530146822705252313834870713905937704566060957894040862536107583637559986050853218464661974049558914076731597027570829966884485977842190507808304135764601432260699853171424104880029372148500175375203170678276576222094743486352608704615159531754296694963660826528533617084483327617917806103947444656093099007750062695277176929735392258618624446888504059022199281432060447679229212254067306773897648352284745613728549289109659220564067559705276412209579791750957084781927459106577479314379541997758737727635146665323542131285777504868264650499556269154174304611335498330135829777565966074825389436003747361187621972323442121487822270194642574796308604510762716714721554283912830090630598073295316932069286914481157869836820541079533631911076708314426907222490813491559609290707643361158187926008211904389190322360783823599165875298642927341302848516743617756737844033450111719258819246330465544164684113481001384895671427054840578490868140841752303082026634838492518239694455245391492366871301107955490940320935491395658043627362956624163668984125814989022641021105338347951327871887496899290226449517080128620966660424683477672627657734560440533940361844798635811247797269512441053505793114118832927856133561433380244575604719886818989185110218647379493526386693221515506319994604478511463213052729538600476515263006459458203532822995024362131829530895248554501782770045597002758504709378329118340012325957985137355861555238058099271135905113242723334213609490342613381734126412855900766135796761001042488931042440146741671617269974105089001888739748933959502278699779452410989181167979293576786630880810610337440642272362760532347399595347010619808253201825278772389085202231026161788956929701423294653082017711442473555494899494839292358539370141899538960122624578904869687928914397663225501488662358885775240071714071420188635659699876730517186845313533363117428929394813899339805622354004779795486760086713164148035867751146282524208705441610338229712138531535596580473825837070198033751778296800407602356785652658361341602620133188775348699889796988319301060868419498408387322671484639089241918366044549913300095090971648090828409221580742108048930837481206426071095776336055099249731541436435447040403298555624840829319495468775677606260257098646314440315880811557739163994328962427229452662533548499415637810706051356999393237105679470078007221424349321825253762056435666854843514420929369527335256127635623748162669678418928757776204870854944288702555043236431738739790502283263925810930448191110672033537112453241753284911151098333714102042480515377868520612178186351716087856279785423225529544477362025624927446830588998838579880025841476256562500688144928879328994957320454904227012717278831451120766111597975705397235770913771968012847252361435317124030032426536121517991368362050977086813740138320566080408886682776244952453519524496752885645133642264110353947273912244334933786622174132782934039665807823929701175672352106179472792864494179402455694989498325923774619507351162343453141485077052508946814251854519733812836797053258258642329245087669074215981719182513017737448375775870713916856400209384044114427754028768628843028989081916687087781250931093287697548267593730345445324130430178779746422305208638948137363073573874496487486757956403424035656514686836316760813787745528459067220843282213931421849863034132351516064487418833865004751521000502332262717091750055389616916425736789114576320099997810532525503297353386588248557360158107749971529965805378582781498888766827779376574911998120856799606611833293986321183073327113081512255921263274461425999561333369257477506437911358194897208564645599136772399708506732236049685438935168873558363675184480794382564597192420631151839105174195133806089744340664708254109593344062105071142365200047165518071119178112045636390260892005157754520989330979476830799917273463605452665965568425466344805997703198010168623155762027519484727143020841007046893293171807911928816367482356813254418796659025003234990976793524193706789152124029066324556056667420631617574735624507374693172229170306173487988778641354785523782837977416297686609650309953327734171567785297658463966229081037515084329053670387697411822539151911299889514599566565203034781022896513668400449314713567955710719440765500654751353432082010400394028217688465399265791342742783732498889981478397355716298556549823208351419844077595036757122220036318202697295293098486033654074694566851269950294433440781826693366217087518206204952581660007365040518231812228704218353141998620076246752521018218645378194763819140777212594169445637034907673599221189509476768135257058906362964973873429203988025731712025073841118961917563077567043534056012742968744146962796954203991251002168674953489442212868623183047328407981831538741011197921290368447373070003664444212019479301244512507386711136559434347155265802717081774813533940446268011413968508306783078715492148761987628348767661674215337326665750856744885547879799573643450158356317640944074075242287819413052718532088111863816229373884272097168971127418935073866558146275511277630137938262150022030473462314853024900590462639637101004836691882505202292398567472452379973294139791532218605664473602137241046186302332170262214781769712437670338737681162328919798262022924015084031543102537676554358118565659418181303073442569195735055025207924424637779447651427648491124592265892032045822048921327809568391036889230864395452775636348495837074996806775554133626281233007838771180689752318721512973375505655725946178208766631592929755135745429295069247398834104815591012788861053902921274917836756592153315937941227879793419798665877369681060431118327308144267955236309687627195237741078272805396780615022964055635538610613360941089155463809495431899553589394923731532731144402687146537913243882360976609242469114268339635687109572865627699730224868518169331590136065950712116523773728095554701302305156968223701689756095844049462278186514779520600796636074977118447129830349747185446673072136562435290878787947030420631033035615291780326006276423156532237504543010605006646773492864813193914998559705640361641363250919097562196861084324839306154775859310536835658923474704859854824210163508590361416369466164466114876303660817119980522788496833563817915697755822765666214046534294915260194721152873141354130488236343885708721348992565765555896649086641699752672909250644263575442341345628621332785483762897654482550175744014976215394515592025644740569754498259837570943515058377147921199122013608440271487703904035808935944916299464331510915947659281778155562948162164222012294754791009276866649762711296690067215805718730961409146808081724144141682878714647620520010518733235218761383346699304075132538477643772652806640641655818889494867365241026447870501446306727027240712319608727878014704212074280105125468618763047605389804381940601524637374847083324350513517287846651496372239924679390936280292579867311852115517751554147206989885130455851682241427890403467100935585977740381249147832746200232226664488732916170084752729373389644059765316993217884477259338028919896852825983448161416764172747573311613780940547550514356090389639535294717273172201048661646850197428360694393011871580125237619704590134068425390368649472026918377493593688610718281947838018128365825612495905305623967414453632300127679782582495623027203475007487165633358878243658765492909303542812820286965874425994252978619485043061570448018043550645172667673747279238025605488503893371749576211405319290295998924315891545039797753470213145134289748634369090701843481378348651772412630638016104604271601102483482580322724309528327421988530184244000494477274711526377026171986727374998076731383626632504529723211646415693176628708067085878202551404455687385152282120760332583186583397541214757529667236063164809833292000605641981106678125580273329776936389003274452343355591237846258647150336432502496299242257220636493573047708081084286893922877693978154392083978646966521780439051919881624804017434006887284904893730821105063590364782358165599723955324553133559887644973972004614291099439256896795390953877412304333536979423922079262433135955329251742972850437782704911503487343616892350994043068254986605832613445854847204516935872348819845338564493269224194428126630652169569972400428737124222813031479051392985976024127787718928145554097156687299392626598251571301260508789480969976829131159379185987186830064112006653355742184829976034506339873793122387093275784695728086510265592918486892491564338292062422302970205515675111600596759120918927515355712990283945525812213376250685454864038749822041527345393603778996500043587034377917085199045990182474718004574388139550946318310076287456891862262918588402889090539847656778976098936826516487062019278526937093391829515386898579535871219895905304408927264584481969625829329976779760892886805679385683928796743767326679317520486311489615218999653191357288911782488206841144162700483159445262145337166729954736204143314903730949263132106943533793193780344141836374494967396116575807728615485714482393319602513602721297976956517073575714657833106641932369205953080302407913869068724596755336232075852759910166848133431457674195071079356077198700593628243483109060860217022235326352931535391252188533560732342133400837725508966751180351844446018068901421333401779046194661325629271974708888612093081681034484180545444453582856912457525372803871836894751664183048737465245384034298770224533558081418290743264531031862428496896200772127768406042451230322402055224720296055842200267936138744217666960057476973991667227161078864027422820394425841840834518861048255072476258851076182104165378706647200569409323949183028377728605565708326454531936844030444860713582732944929998082848207000742479175672777727208717971761419170352606250832317280492780885052714177156953697932786112573931765214806435438870051074434934216441842326360704108255220086913689737300070511243059369649809853036983367222374666150534865329046852585785266945855519158987789208670128066308760640780694236356129194117196907810338622059949715339819126226594919846960020813503501160289174472906099299994720528142781735153012024372413470246787191059409227188317823012842585338564334655745891759385025147127115147733384776580604276981411346411570160359984828099462366709220889492177580562316307986561984195677098550164927070685540005737397789119766601079515738334292201205077838778644143837841493244606973433775776642902111242024626631494853919714016045640419780742326739904403045296502410765330346085479168227786593828619832511974960539305113456931159573934969872596730453730432792450764797352925093048254104329231808559627969382889858342980325437036997746933721663565441994539283570138860170747550977029166409995486716880769300806659957114760848434274989741736059857878832908540384569017393433226722257133370720197592877308956832601377383400669347638221069230817603354867988285416225244259551271447899961372333706169299641574794412564220328366743361137767631059868801580942017956993455473295276208270018747094151394763534498061746176690096550565798959653763595905242864722628437007249378449554764713233385893356306858900708732674694386796144692826532228242504135547983805287460679057902299154210335661326392072741030933935398740059765481383307184592975610078555442602312021927032809036081016032719783482841182065088251184107843958022635068054495645036079240036683225150194072430997851213938919356023119375022377663006787657707413830953808800945081033172908894893133129412164596283167897235682108115367302992725370364032510925470591915001973771705052217592993560799721492324649297972907163809941409638582388841928092088775856566558787245309563588303656595285278913595975149474783044503713915035035809115129298421275651146610118053583879239492236227948551545941303540346577222568657089677261232702665095181950861250208382744744452814894348235876114154962242550977770118677464035139934149796489535981522709932711558011597047359847179822562050639864777659211774783673830830053162841967427287844360156280938784981150263033329399381103240325833057752983753494141398692000905247976583647156826580181874391598878805227877632311291866615418952022709614100950326513989013321655539072569125957859697536482523950570936516702564135531858626338378455731101391302824678628928810054918077882421587192915267779343318881583453678774340443086803723050887379588060342456874871152165653868871210174092881092418729769132117114954264601310160084158038000150302692718790067775754659201307666646376918115209230775998071799119032139078433746920585722343501159244788170784311621037160318024096287958455117498573175983021340365751596722716440253264342641464548167238705690964349806498533920950292880390210830143155131383520949440987347258381959996844342966803279506857486489398682840553468223320713455339293358991165302158420594615480635343287349167701882257385839330222703922953612023295230443800953068388749474607160220062424731913163673708309923605739146732875961842480889542712955817206314401802467977270610818007351254218191982630889737584961716219749527031291458254406659034621399652172637969798700256362208138530411812285259548902323539275567181451614787144524626160178113265634540688041058198062852336252037375205522397789221630229034250232851395575180734804929398780174539218699642745911576619405992511525941188885032909410523557060324519417759359533656725850113714938665723610383133465736195767090085352566778572065437048244076903211289920128322836010694191023004939983914418534195725531331877088294263658574588420500520499984923891099133826930652960693361733932349622250513052824820914785587605315237354308968139731915729997808895507180467415918667529899856209357496587563074917933278636201913166249302298694389550720236602738780637412274717236974631889433727760517136902452174506164051943131365272979791303587035374394195131020374230810045871858416846597916169488170127492999370307276533051297609837663553162158233487118237015174116467113031313191275486889636880022986274052861441801331209917787184669590386210574080263340338124521277646785438645115707613563706674123183150829378988168835089914238543443763531731644541621680758193959219089859859627275965741111656469231740386885279418171829249431269996857254165074412650499926086968525314644300474832013500937216742541756536833434521015498202430603623956972454075951738961196862326031128596193389214616951851466781029661112413074325404579333423338206598013750097326464910164287769917874440541139546542505619648832365055919388881175832339407784628777259775298885816277713600987038060362450349216625638944128106691224036104544788279747499927049708298497786329011517466924451702735763933903790574980747840048979869281186684658050094128701612712412413744579404539353381970997374816136370886803506741056365900694270961678323065696666204892370200179742666001183356253790138145412319149596588221922088939038235425391517946243598127076316577659140498486131644458251681332541279772869826895017148017921060063465478977063600227068710762967055556256190473977928514755973267616061146182841001810561365723043891715387989381146485151626408700076430824913174954680533809215212083918171798266444275595624433781409964132992598270375796776627150811838313876325102455605992071608120906563129057777867647922107135313586399053260777790013605877155390001848596997704935552099153134682135340611660259839495041625768277853202374202041126596017711985528297516667545846212956648963387085928447881515767636327415215418616757000709989836447856112281061286369234578412468899152223791346611090185240198640744256195402914352483012916701749596386243395634041224970201637218930092050585280739919757514524604796757553036302294804711910493541665481882499264623782157029914059008251648443867557717951069090148028357592769363438637594911508662730117287292695379044480129733585778272748696335358759754677280512258061852196316544658180898778263767468139132917647083702258226242715484898035414472015847334193270042240635896987854106264781406203799820973299613751817339037302671765824126386728398847227795192319289480240737610675118700399640251895204900118997844351115971273706003880212125524132735156918078329227067520620664878905516842278167214974052512879765386725976272495941161671231278555693436928013078421800825565314987765112407784651083825160135235862344349367980137889143903285609632420573425952302892136001528649138573180817823680590777545899371550621487999553796772781700457122486885716523273450219678889719434202832533064737136114040528949808648844752949444629936306032588759018257157167963345582188377522936545042834435832410516901380937495028814991311166424833779870073331694962824478601203387432260954674707399252355870345479686638110319492539945126888994502566104531348055669712125466289338897402674314431292103874261762453380072757255500205956635437456635715864407206381539364058978824882459321870199369133532743126491436568669048405568883287598464107604916546468845078527740471093280465788898085463986215875026621122979640462409677894790289213783151252754382462402866570823018867338888667859276549664856430191513179010348527561409140821717748608082358275153535660102363253017617749991250240820082304798409420432922996525575906870445330595167722137173917923593259582349677019121588970131911072946489937245234072211136829505350953842887991298297910452085576731227059083630124465598953808784728049892986836608941877322356769492415968899462180787875492794620208218773649914860668848792797160762022800578057035108173596174191408260969286559952046026102195238250290154919358330181985329456813571379392696965193265892695174377228583422433053678832994948426784047803298662615998625580424691605190257501802990436214703459954562724131166063693446863372361394596633684775970542653978888814605717256033439737186882287098534656146840473146436468431416603529534285335340353486248125261224491455844402796055989930445372208466793740433808589081921722849433623329105167435195650789125378347293864066753734959235077800595571224315553091647869810311239457244640010203705493128324538412065866989150989133635342700417139629844673742220155903495180019337626564042811234859740028508562283473158424940861139138645873497870784859027702170329807336912451595625754582066977391798013108403627460685850676899626664871508935719374400286508171051896589033143417042119465708156604874227615829157253066190171506963882372303439975797568497411531967979292633327278455519988041964841478346571619316089380873928999344332972881976351111699847796255689277517984515132856281946651492002998669931254762302491606426346579372380552013635083080693579414938700272203580027819842261680189208626787104748614378731956980564050730123938163622057654564627674807397432085828374538253044996596113719615453096292284470826984800944072418622376577118774361277951036532607307381244702681211679383549682516332675967555851567821142917121271060810467716266666358419556803505178019370081771338715675742960510797011629148201007741974776737765114531255680597146342162568970412889615229462999989298940489749839616427565854285684097888303748028931523834814923791513204429326899820634224401794727167131153024174519016477038817570668701955671000373280278096562267317344242841010144131229600282549482164073684285346939762755190480417690833725079271954871114067535770489809080726254135083312614175987191446282869496507516916128880187931969729683048222598817747886481928579512659436501968727470633523120367689297543897932026979212503115409174444192865450808649345177819859463944480931182029351730235401828120478805383265705583045413163027181983676706134811311198277530861783585012904648147181622517915559333541278027280872966464668224228790257005285023725471932084598383877101678025036687155841267838184573284330286883170432738824551242980977340125368106930402920366995806045724699576818237707169589802696333907003370745602826355901490306398041575570436019625976093187197966490218043392301770473610323395536387207055888896736287479180816921794424986741759653616685321730668989274474302623542270548410751913586067905582539503129180387409344173532417584435954128268311644085550711018487600739055546910673028456047419557672350910695463053472221186447140385383962468834404167762733319642336193978093349594765339629162007509034912187482268268576795302893186562215092563510717786062892156656546987774274911887499330807245480801775962379113043995106013887000002512442122716009252696939091661054102877466515652952644217681873414249491706471905675147655792001050955306830297556049658669416713521069412044380393848487961241793562882196415362332141859474341887807298325658075666758760860562121188908685336795672298794936669149382750106947419764182555736181396908437485004909459208294045241514580361181738267874561604337247659716419122424855048126662491830271537436327990492675983663245634140361526905051928151974223734343752741112011037037781608286246181387242554188353345421789305543786299316076376784654942807019851983250036820533800066144431840291683552186563872562651857827293301789855061448820197767480765497467725303234805962680772159814767908500162327995759965740966233508118077551531810778146832083150796381829009858297880160842304488756383007417194526730761730075346016827431792041710873318263985673664768244764348933314088682484384640112896946566227634500731358584838334570225037488245365472807406331834636573941656840628758774264883454982337033244425776328248166832737817954857034084092191006692314251259975676572821763420744606458764910654656917200899354609319256037286815492623435088797673069766127116704588659839433288646184197736011197228651378349115212194484081014074589543531472356594016931523166061241762080209144548661153029568994491191922228186853004319885950996619751148376351092409285779004635045783642565723958607016226738983812668282709998450454247889627657697551586248590994577969697723456625469468411627261595309461684665973364016867511889841151554847879491559762432036458724257474883280164459597084107907948509720649508310710633123094236229936994389642471216506441184107185201189920584610127253307043900720935275747953090018436690280610375700044653671528548455786125551565661092551064510936134511912474252396193226541432096535793160681186888295547319042799664867332475007968919811759452222426221257275909951561135361548814871293908936062538727905538935088922947471096880640168847785869456619987926250618435697010225113385239998931969399552496439742377997911902872962621075887718487903873843334634220160306198172965775268279569881100912583728569755451435158127127192148150904395820894589491312148886531245745182328233481847951911431354339718457952713665332833205486154691561361200106204846657782915293899711837565679574533739782750621137413904326169276079228130356999697537437754961200105003841117952527834446799067057546532717876344257755719747804632765654790740464636047092623517816794470721037384153840043234666864695793433933475396619098743942461167188580350034843041103644682377698210694969625939227511437281083432892470795723953481592080114584145762581732634676818448976023432578438555653003400447758292832184393496903070267905042091792830778001361460015588069153179850522136370907207614706513002414383842212831341466782919653529462642028641718387070675338010269520560216831648442876006994177689329101696004298290451135508780604824131362042104410903941180085715399158999984399582029966842603535060825192300909969508713725801719494468231919856622648881066074089301723886756832829243334342033833754412338561381749916775056974016453066242608869448250408246546012719855015253827537602604610975455489678157863715159930847858830423429912350904568685155979331491194818016419812189910005351617019960946896488992147090297425591502190996601342595190790110972362970124154055484306499040913317612639760999493769345660383621745074745499629062979381016339360330832463716378945072227738237289509909220299015436200343004144376634609550595712161542981866603564407954917704034671543350253121122638212293360934444870291131049233628806917539383296513614818846780207240035518133244718707955398779971321135641303985681025324234778293154422042448573214939311347624893678387575997868338410094781135752957503919958941863458983240918580556211314850895860707958375106662485670856136917945840309978680353622381811332724673529300447866093870481514606683997132672080454577027103546578748862809337356564375942356307634546433609197231307796023208808420056391753805329718005552180104836238283415936686005949542697502590524684380196959006573944350114552738371304214498665005280742595191215986676409164611401463067220874636434944249827024368498722961262107146302660974019022831697617478836863765441156636001956577162192094163330373342124772314650452941625825292583957540350555480397206444908701873889935597856102745101087931056691994598617171803250244089552780598596109997421442322301671798693823432519955686856505629260839797594399208452467171607274782120553828220138388377202545737234009723040963714330191771947938844055520687484092647684227673784695139788117119449625748426752111651445242231228626610077512702741307188798471521646544812052387910764929893941658927231314625326263512024267714916824078310900932931376669347059795564210448316845643473367666629498128349543690023212670907588084587055235962116754773244450392642409993295825506178874035641375816173982277472757920520579696297820098623240763596838290221226545664832438432843945188775791290463245239433161527489040122344277942371884872929178147569844712858208822864061336986409544916751579033451909498016877558654638032591590722516935666533611347739898708885645736664930530350733316011470217212901811450364811521586853378340574186775678054803591604045647169762804674135285559280597337845003663698829828598107113245273850258764189166597260001454626513932454604376456488653892261295295075470352106412406961182837003587421168457753115788944086702480042905395818453769449454492893554023977570836684177807452939329352743585730375333960112772343412205563192567688559976221025231590995991191637157229259346981277379807773282547000476348984091416443535441896611378575021176957950932155854930086817417240073952602975674286770317670412155605150505712849928985919070831660409227538912972525768566635580841277396740172314637546966618012850999836617207423104492528014418995756381374649744341126953831779639392014232468241088672063914110676709489127517910253508507566431633477794250414106799680162435436039202491034426917138286635885993144007242952507156527527693647504809777927778157068712471594796637601688125816048846060278702657923723665733842560241374348577551315270517268738664229462085463341993321201350968803740911079820115043613699905794277274100589869113150968005966933599727844634868765712740188682558760732377146515660093158836692007028489855795855096660886983698351617174424982353816747292438120822604147407569757655274291870099619657817357782418345690840020055940499958115037499964960013714345423900920446608116660965270550319959443323731866814399709789131053355651780231715636435359823401162936161515026784299809452224286723674763209536891823919450196875281552193771129528706354616537240384280584880449769140672453872624633588530573601462074577981127717319207399184301250762608559304634021144141398623972950338754787691760411158385154385295554098080119911090757522433914682021416621827705303946885338419374763556512110023289378664225931049866956519017616635096623382823946321409196201758014653244914286550344999093133379975757444440244692349796634727199121824706790703154908172373364168875663234695528148527550195148813001304805923908845597639335833029727129844469323729080995877304446442711438501534634645558278828705765709459815714336964710064803251499158257903018031763134064202099082674149817621866506757387783890918590847898428254206488987312643640686287589507195288733125230497473944909940928726656217099838385994911370076966453529422392762843906518294067898563931289995585611390198319576881592188281526581999406594697211837302413551036135283409070213046039369123434663400133846603689640612083015285582626675955544471155937797625225669983456957731289431027771264504896073953251899937025888513585528424946471824461475447696871884847765109185773337376383032870043196535885951542056783014366994523524158974230602302935126218207707940676232846410398792087879813290348272183183726844023307263884227364358183411501916617707306025447124973100053799618780369739800179359119622271351996900888398056973256613983257271151511164167575849934546443104231444007073770603580898851256504874279558160610169909037711412803954631136695697570062665416801227486075343865436408786725802129226966867450291315415101993474657668302284426887831998011405926728411317300943986248355979525843252229021931716478236605661885184648331405619070777145176042438865163431896811100689705999363639080040140596647486561661778851443215088077748672788012609575672198946767205426795651072316974173127466482263549799568920399977068482090522999207424972779580426004249028487719576001006494922318676869089803337289659406125399352275982390252758843397476910832086594380281032310335131824047204946213397618387735382753372716608238557421147081758639303687716687983945277507069446645859286920669124131475292883232357370559512318702107167834956033001829409818436049021604928954143559651286772156865043724709725155408379211399635228966319249548562549618797477719658204042838306197572619267205756239103356780470291673999963090408019258603805873940010304324636338042253325517528210948958328804320941996667598610118856444647730867646062172905076939369507109678653714793095214349979099117894215060482747798311117117813138954916673707905216757869076564722118341116223231437558364099564451581311601312863248657830091554706590803860826461602563151600146154806823044425459340420607822749742904018415826842711118959614446050130395411810368592276798458758397739735907406226401598930697128461402383451010634315939186748396020901070175360557946724144825646618037293888035972096774959277156307971902785945027197094954563388975935649041938156945409529499671602882084471677228496928301279379207883082791052888854999035600076229878059251063929214833007858161744087790298365130000099375744866994189906500396312855422853483830568385291869116526433221232248294113699279814839027732675576201772318969847549445380231561681140891961424892584746563229300050102230362360904186806418899839250164034559900432512743615259314287677601498795520425500192913636927345080824025925161511906871465543444920738943229114532885960252166304149872373649305010880411486933508363775748150405487416238005168263115304474926758805949802780901363139994933512214380348032442999131002112591705632351335883697945963105924726927161514446829609825522725434318905730253579269714774587414943608592973354797269542230780442574432229756710170344539237343850698768560940994265962711269330224623849511289803272594918628050811279816008693187158337903765002639512506651704518795280136671802996822730151482992865925871583750489595366903340067002021121041513147772804177358655419637646644640672571358252938692794453641531584451018898699130782023391097484236045525752074074977591170736616981796063075750292842670291933273079690907981906235997197170222743444550869316657242776626037064109477165216205813340515006544444869686941215799883112991327530689031962997119570720930287074486646824116722441605654830984736877783849347587895852895583538945464226092682908905681739279935482057954075210736815259246014604116577057243926471530682915801872223464539064818187835687863468581465909833184948158188196912269120485318274821825102250238264448870664341743457139516361914422971383478211435992350025753816129990316638290662846534765359016408415667800986062902331857179803217909643320628968708138377224044123831270300125877715790396977589970090235633133329550830437135612287332735935386574863912837464417260748144220580137830526489547369231615392099685146734508996986983716645994200399910154091055120870643704330532808541315591851021815647341458522145562238981886566227371094882273254156034052715263058239847184765465690679759479805841074685873890448850580303683103142614249303862429777789817456658497090386864961070888572309995213773985162287434045468524710397908482690517247077345734427549492526983435344075676183546469148727182666725317390901179810393515338242412825709420022914111373807742914058064811619355813196514481995397967885454656277070228198348199097971202707107687800443848090295043288645275251200508034097133104401951890972484258676783830876467078256173979554716527669703096367853294768493620145692967068513486943227728911494011807132245390544331189965405041824300061554702025019683740795788521753430269781082491198860273323780149963839918937924035805559094454300155653147206001500717993635568658775659370419402188979311134985379218997227905678278625242650015896941513145102450367900907594586827057802036289429700765224489390040840813553407154690430570929961648484210523227532066931872013562218367342280606242207482152071103727401829890988781285068246902018189953117801918616389627361189831185015667695755436674627832616528610510848693864656162864800044085159801679481258624881038814354077245499533059750403184163038639877432056060786164961633204893183378277701909557876816273558954520913521735806393281505853896467519736410479792640460062138481847907243623619909098802568035382067028301563156858546181854386144858962427258561102536109726668387424518166298021753175218880933110138668483668428166601902857589178404875446804859327828182355169496082571678566460253943551428039750993202589299418902474488828828566036992898549066091439498937078574955782022611099221928792906196033298625098972618968288785179500824740504786715475317579260147092866364483949019482919937629623538736177031717588210073815548146870411274796158838468930630172494722194095966557611924297107268866484807066370569135406506494192761188462978414115607093423455223238411558225394111063259850651494103165097023537751982879516750760554890678751336962098261048022410812492147466364862704387863762880292307824603682709533459427978104742038038595929637801134342919966067790759057577566247306622991379611294132573500947428787119621302442951794193747219431274410772099027616534320701260382926090267931113868150876710669485475134232710053133864326844919670150467160533012776430110586478595959012295737427350422487708526799273992226063696247393555535064045027664978465104701955696849795632669344976507376766268924238400919780940935627756119105056290312734850863650320987543544475463135214409366332949653697431497445683092757869132913958325142798686212094965646970602727444953821576818596309993443278533664482809620020888618457274250638508891602876169513569675954923669300406961753903583534502210059765377282397373192776078649607080291580703825254078862218879538942871605599854086781373047591615639014909748606236368647212933138785191549467930735614641951979875385981881409617158402543098793431235210410819989013716877665453959914328219155894632054682597909327299573977302628472573743420996943026377130589204452899983774016765011808724917539289912938215336707274560614602839526327184652721713828872279968475643640252938085563388747562684676621747817234281945065469949125853523087505922295971527119054326080580731985244615906228976712572475867400271930573311454988257371596152403777473392555621168219319849225307158322192338650732477432286421331048767040601154076936514548454895799596016061978788501441802925724844797874000699330668422064273651072724129820832971396740657065300697948203251750837460632822069085636768951124189421828476872513814924635117587522844758065924730261487465341728936064821538023593362562557692833488428833920800200028959158163963509799905748714742958596456046329351864797888361954698747618198533042205623419405526211442420672915143145124154423320900303148394332933169362021603204151790038281533894777516059087182618613212804204592982462741128836118173312773171731159038704518802575955745705937094988687679658170610552336973014782542484733940751249888209517329508365610957356022867572966999850911183483611528198434707071590901962396543408962680033827464810629256013996917872762126140418224412875964980769605130099221997903946097782693321898954099742219514732196963515946625913965901208137672948326168921078949315210067544726237492386619245417708448137210639635513234395056742951798720642851080490001596015503403676618374367437620097324606482060605658121293733149830203311818167101457881575301465481919806412427907391528194275539233447426093694070316518520917829372710266164355678634669508075210244163317432328874722771004976778007646384214038078382953925452266135851066992592998790582570748634788198392693454038588841545449651870778717698454191620814937055261108866184478732831451796300832384154027126404128577669922627992287506284535493296388283090868932614211471568535845400554955398218762074954617161221282323478169657241444494906801315176402714849997022613701788522766636960232357352461600893353330820923099101156287747084200691384822332321055586424682352891407620409299642011801685717093512771691865959939289816961074309664304983348343300038485702611358161720938985911149298130306140262002204636593916194597135693179743584668609173379869012773836317674125512243184640065330420085932316804628809352992980325074344601100549918994084225184351971685423743049752873753091778484225762340017308643946117494316359724712800964960678366698330354938792214005647828959098382681541792759750627182187216649543593438680242447707469692005714114920014120623471893483813054301722549781317694767705542213810808262961256633371143646335798801950462173355121697646015973105204607569194289152855653188147873306838617993252986647581307224891151932376414182987758079692800556946884016123873201307885576455202118053887132048452651084670027948169486006756831355488571879668323398454054739307133482480034068013614657846409365156252930140489286562693014846637686641723308346809913832697058194397659337535706922449182467925536423417079590438077890356791000242604114472078194295064572446933783247771823918612311369560692120647249418236247019689827887637476496872678798365423342306254778976353152710690314112683027375640190481075678499065197658687924259338682379068270598968861006148179832156083273199460913282442248229328994382927923456810328491609114774614330399591600509412506008366153602104633098076603415893645472630864020814750122530693975912403514015210394715019034890574062497452028744687754550189401196074780150894379089863998937001834877726616912569169964307420139695956148936971673741149946854102299961826259759988361453940527044353248942395950119348946352653736788789054020309760070966195774541578013738479247930248924420397670387189510340708260606603449773161943757450147482091692926885397573804075633817272396342929916868444394667272122619296232922265453264636108633480827040580938698195451905418978171013336682171661965375033612275289236619035227988659098744385905983692678608973810771927919174002866662647607916254566096350517625916266356613837361534025143335680638215304761729413023831268159215723639245139669478817507776332832312734167504990197761537390453927190042939139681261054875939125878287409224512125978131742176925103211176533836119367523671771895343944122037242172296434922278781990339179511117130026091221970557924628260220561506578395872670961118121115926480453107672332932432955921400724860912976957279019671377909540634306306326870560780469950883342784097531985500164315843363322605547585985286233056496353752323383432355711650922286458889180349092335775755262134504182275729704849216303310809671774405009680311591521550707548125879519241730900937230251053972782618089580104818590820841381241875774773915593942649032595502191179682158498775634742172940916230154129741193242227351186385097851636248283028608365107058664025781791852982089855452547853556516154124459123896492844453635161966614352216439863019748118956129363151206279087706299100294512783460922364704411928911467188036743016784482183486094042563297364987731790906818191551896075126680138130687455471700290758412094258898100687072066891810178465279666653156762297774549348902657961570802226059797159809630955580731677537716423338078541360262695173600019759745390619818486721057556129910908662450835529963150765252393792259162586573215201023293677416896113872398174953392962178898242351391511003595933735500096757503915184970742175708611014347965108464286634199853304526446459443878320337901415349410326397803627177460481574846537225687156817318635518261619639744540096857857909291862225010930641566265925189347918540080703702220007471021619810153017819908033849218287691253971556154463216125312611246099956960630695918850689146774835148201215095947022028507303367745759348375927478261150982230764630079519878151465225890000175796000694135914207064162916120746789101190025627771332218407331194067456760793264127280523511013118251218216150645260778910449442620629419152461864900082169451937686407911118035572369491664836657602703829290125420737737674330040287373467452450504284542030374757271610571631008782753230827171121682956885972052611640107113822560760350753289655402567491037441870796782847825002451530911962699154740558285877192196685372883144958177935276244423071313721264215872567795827768578767274935785242890762151957665543328415253399281787828866878081594593409941181371458233413688476233355506627233879490189268926005167218787549597466642305898111390828167530809602618129002066079514489482122183607783888571586446039532847942255531135538740365306724249206744250410625426159995491140275101885196156511097025142877719636180263610286215741756103005140377622265796906158950725871065599136247718496494090111974868811141710623443505606695187463026488817463547739982908439578224055250914918071239964824845953320564027127206337318022230338927994135029965269765787851425105577622271755269563384725081028247276622976317483738648595368054647507647673347601340844139915005404996204137968331580489972217261748067273304314871023026200048481880794621833366016808578883299396025660630543274961650127972375472898531784096405549995143573888390382989456898458033703524906420413535210413396268653219498970571668720304619822377395281177078917737311811699113318347253356278470401459435381107220492047588897251578881148578072956755375204919029491560508853565968987877813186269325952660938730437016718072584670123632584853357711594242128829876075898799079326567706250306909512373693725702295548724693759236533061495433051099466683248697510802783959755178834716023723463785587408861059490841056970152182026004085936559618556353582975855021960777139189886976478566890861323529155355329116464415424955554592688639167740003828691021851280307109380971616502330232733214867388205121734553137630417781701255787127708883119912364719660725375007581114528642105733251101650765844246126412262432137433182941290000970159812442320352292493344821959314735803911271300921690986375293751128342427600685319998780752015470398803949843802569946660927842687828234306200923049570873503440163677481206345864423270146364141177912997921098792448922905407695219734361508802892464373380591821428389712129100270966210234530760196718023248533328320258494032982632627514132167140742882049222357347659721015156591068498283298501193181705879290124402377321275243562499679552379839371588151222280724531377550440344261112479947337910375213039570912239330526094138373826062703423343036420197451980579546385149370367122122808588023701163036852098330036791269646333445834781224118419925728692726113622940709698738133962968827713634436400378770505571481154284694057937344160973633177450617474990359324478108813912157891006557858636037733677083205186639919987845046649729867943135698521406089791274847251730447253809576233944483984727032770123083526880525867834171184885551461583836392990872586395639234900781931480566229688950919944029604579984851510919536337467184595309357921388903492491787164114355732984288528503093700872237673185871187446088012106299991453295468937671408547749840072525370198982208813676503017381383894570439579555116508145298738556349923731568011682328747555313634047064789979924545771527990269177655824017959987977087690560092075173712375280415285387607088186170032136350992746237892325818220952188463020695798298726282129018583757784154105234998205275769435305738482849007200477027342065117458041263760817097616254818712821027260144830176434568620060562597088678635176004230715716257933925914976944293800862316437009122403113986290517379720913544698688162084550130215546234369603705518740468961817440354770929507419426797738374253281778635728730996631857184780143567717787018184483562694659476737216681471282025034699527376665412384610922442834097194955364155963436266636937579770019197288932321587330594058111723515362854438598864722570360100446329646899499247137048528175714152652577227124190654046271109834553202284073202992539355340304497998896359990032891584821527701778380137009960486921178452233218675791971131846169802414461388467375812259604171059578569368798694235173625692833494160190971019196081788416343608124536016460079423539943646992831633833581664876127350914515968350111170147954591587718573774433299915907780620243393773103082013151899443297808220945083264839639146304987802471219301539853392214270251082349018958180284260670507773933795234663501506375574512892531981099963869014957389072811296950977959607521736259499471711759976870551269545853123582172954039191614709929452496909138941507757186206252345727410425367478360031866825860120859448703042201825845326582900541698836082093185164190451833269956479059518356346806491996212337512419249129214677266586204853057104648144908571007875128332108281584698151744411850870697328732065689588105838778317312932902587065203136225982802918997976126347638781335573032596611803344237679320682207556240330723711969584403681205541529464183656589996627920881360090558799289435696037982615194896752733190378016432491261729546765401681515290757256697537137804922094813200742760730050620704695442991830483882105169001778148064368698841678502006894404478099848938875795315304284859336619575396123263302571266403798864014420260473982967875243946869028813923490764697139889070403043709272799729428041455014784718465111657966818121683982337715966176259715298621431544970841566366110354378371777256008502303371735665791825333936007562463407510189678042932634531580103370183810841306061369825829637885166097345900275138937602534596026794785169304055702345366967699093411459569461880876319860890732964665317332191194986284812256288880306155548186100664570869440334124521808034893239802281983204896898338681126569188919401261345170480559219802807995188243931918266913825695977026862733809133117246807544113776887131656724639341256367626752433485699015139978089168888158081157354950937403105218369552021241886651651065078239611308276445852264788860494934224368817657082088482589028132644331686694377061708635831475785416174300682567735256603382200223608829295228206888995206370540364644038441492451077142347129336449087921344750246049655703171968264949916137390648805813448270066638039237289345696069760112384571542977419617911051613362544038574298260110390182981736620206283938690849815319231790747388378262318666790582597196623925191536949578334160169094394991324472063110148938277537235423124758499861391729787460076585955335409920213999083501275294569592356216963556802602972049034094642667412031244310174986098427063993472859772746713683555696845334118974144582782201731053088608987301976688076789751566302243334835816806432389956649909935908176379555081460358956768190413451944850360851990870036279547902431904526628929502448855050438671811262291872793216784415657923958498610081193850411212065338398261986262021321373506614130867654023043795206023238113688543090354969078435123646930668315076785066803671833468635749993546241576119159430307146881388762197387718945124151184406548659895262378833002699761829275182049712340203762843508488873193478476361093602878906929574010595842258275276204849190171605735270853405972557026685164888296508020773347208920120211561474286289829580691535368604929244766219469112118761430454552535264965233426285666150929374563988311602272081900385477515598485606986441044778155620603712382292341432028025439880705069320596252976915974069131385887333455084465859900234500437230018472104974822791844358533199185941557012595425297088581904616690480747351344902169803488197535225954646345285378087543317263114569833050874533199444449599179422077838776263212906148682648710431857199599757973100083551231305329524910073774127182034169017171410078929950689172482917643336261947054973006350256753872984444798777254045074012825282511181243923877409863867309216073039467433826250415630618069285190690486975562778544646036025025867838970629762034369317271386377001184237011465780293245193402064378957060985502408944034854981070188961758136437513308525611329022852082746898321819675060616436838485954352740175557871923782807760090556331459383695974966335978232198914227270141723395311917642444204206774872175457736007504212880812701858242470854921698818104020023874420889522521639218314054899192513928757511397331505539947675606839174229690551648537874331347903809471915320323066244842694341313640095337054020105759301479697755320235185687811686290028076967908691777441368079523426130872904034468016624614010649251576274019718974366969330939631672047026435706037974430122275419421240098893183537709455430038744772644043827629896032489334177583639794139155140255079964093647075413324761597640035892428247535966735909550566611049609441267958355697489001140355165840127128675767321304174458218411287328362870422691788063258106553641224507109399377890586562579963467549477553895137195482215032041224315892566459312954183325932875335990930963997085984240436101579914311466094003387862936515427086495320221958444247964966882834815971886429190700099926103617592476799456122432989645090100464044227974172638009509868339948241068989608261358252635824977851763605397672106139483883601981490149170694138112711319081750441345847265755153072216620985970448509925232109211703970969560353891184958539087312503703105862637662971628674571266049013178118515659990400919120249254175155776839354444275401903065341168585477155514619935318992571330142240441702969072745112423389402514248444426145692328065910538131846328794034402313391497317952256588007049330227641858831099505793317888283457463985049573689923701330877409986577483308125788301736058767895306656344104669278530709531314216226133119748927182668485518127165534770595826945883505206417723885881537157969309161034890916308996053553166503538603026116152547229608602154736225548416351625555357411308816695476151844641983504058105345284599632962499030170671502626800470020828263189950141885610191769765231606668110839085584719778536601553102184400533544532855546175230732131133744209079632845929733665132698304997351607727943553207639793950087364374760520518717378626286585024660825185983546206056156679289254426395679371050399161677262874490339080787050897351871408174240744269003265677857437534036221113334337113458801995825234964148230774449273803407193743552982303284193524883806669155998439109492764776921555969562011266466341015379644599691718544286303184653193050759736335985978673155331037696971780414938709049161030051426007506816579648469090948973409736403581735897396818640137326731555466854183929661802727045240527627529666827045724154978890852127404014988351926988917584880992145025197962729380455595038215216011495148381978822615912602759553931342645075758618061195822278644651525038670406321357096380210966304432407536684924272173625774401664197099504204655169152744261790478652042290566325400647989315844956942438657309589599329005054352966432194521889042267880811373075849300620737158948760329179828663292528341784584853111227686093219405873389249876852257202673674357585952885529157063781173741906176598004491574280014788832585150761836978908296983323618796177094218681817810055749987075771954168299722350190617012341658326137027092649895341023986832082062096792672905270119617533181245858999256728917305627632167653678112110756556634422337413983386791688345347956676374706770075851134820390163078989031455979656855177993972616442956820289887245442769882516004939873760002658152795739121907420167865269314763060509406505367008400461518560834918776410268944935341615954160618990025651476393427819212730180126585331457057635988131298715387362416295639616448432685460315903989490522283149272093795540382368403496234166960413062820222083209935154764317342370955737943660435202023766960812082361990345194071372144730241908541017267961950650780681896506845861108062565848583898562432923580087335053261482065785414929115929527277016233571463479840709330032070028976410799019391455103894328437900982031663223408480795220713582738153714696446916863233223957776162610472750550260668036045779945210938280268288151539800856765972256820816364399955533731953836916996790570930713286605468173236153079302164876365333189442746845505042377448640731709155435949274115406586385628186670990949669960725145033540941147478705564052659084463095689011577479029914237274821236622378776598860493250509855015948992349650948173849504484689015755925013586120358221880025366178667569493644197399653083440449468819459509547225241992577483306413886617647005823201859982437882890317580969147452245594747422062797073613360209084478904419369965016081176867235947324244927311612960198806510431460021978919546523701504069283966554661112895636216452086760869444133451173942197307504483473270987681252549382787885989625885769336601226850329076598194223277479533682546363327424793767904955086582595151543576328523767245459487101607902537479792969351856480366601809836883794627414823979535072342156186738312342251566110392751459771330281936852597613544119133904500464841600831712677814961247708137531341296935812165735152187557979728339215875774710126465440087428502932649634850122428609617740761764044680295977195691024678691622028314036265766788606985849313788668795039173805356320751530737112687741700930086416340711475494814763127676356052279290075472203237208544311447699372812871634188094051033187485088479191286095724187638979526751286240667164791019763901467203806048344305731033895186329639509152462000372186473930184436163864225473709331316135219755690635930200499854469724043915052300426598969121742490116639831703052900390776754528875632350981782288390201282909768618018442239346668915503274014931312047693744684377451612390151120053417943372344237639509698615404688812203643981398758187783897847920803287579194231718012592045295864753162113726588778673318973773119139601160268519289943291815897578075306937215046259131114316889969417133946738734607278628392522411065601802799899826551210725867511984846383010800285520281244665581694283713062049240992062808885983148248290499073840293024655251520982767231824212895165535679678777285773198280940938511503121770692823838361859803318583392392039648544095417921076504512332576593286186905260468457252279851031491597707942968967175601743096043579308643302866414352048133326120994562307804122765864170832134957385842231260638733053593323355089283125056690380094537670832275015492327553330130944891671753025599276425898915938160362432597361502596332376214455374967292485022550642824601175294472200462726623776762815855232332229984092575217201157804496908079807834432111832859883207133554804006160649445816304280449756629310702258632713239750215813516308759357889909466398600169603772429004756789912299071823279899916252775318192378770240703947655288227813059406903984802774916267973234864410549163698521887609166241933390406430854789173580666226534518664987322777211536931859476164867327906012710001308288502806415013056114356512010450767561398721255345231478768845994325307384131335617549164753774233491831881021578139649461351190941781823360792435706333688489598543702504522874537843081022503292089257169154771277709537266819423539314237037239358206005199309776196983726556249793566302633387292358158796107281850954230973110676073991428229139205558558253245067339608563590234535204802191661415096268701018364500631812849747180519952401006583512981162721041933106181865571787530982050949498596961958116424998157519735853902353478181967642653262775167511149027614637764063614167815946060292917548911432955561149921282034121625803282115319872244653888941998323510693656830058476646311752164268434507247155879102290577627911021841125998807483098119595878052343256535714630374282632518170914578933956490042304595280789238951993366924056660547697240056313537743277909015482474888699020085018196351864049095959001660920023823167439296371761933716792591539312153021380510485974972258787410050303963153677438260122363375773906753662036993153869763914462803326154892227195079883097496866101272800617085837702561247413322327780315410479088929531997404068515831105207239270549746500992072756511312133747374576791472609588186992929315804927090261709020795989587029274908324559163469479777887348260415360782632671861653766021963724503775425852277929726660680033027266766500940911843429416193253797572049509168050326837043667237149117976479280245316022191942440444468872691671372709966159909909713643504631099938637647523418316602145856366219932679564286796990647259535629369838846132188327362925157528370142718785716043527320470167188013158460782930420374671852135115564887473137390831146904369884594762983751703233838311669674167699181068196143512810786838036248517855708672052202900227364825414985632253250061578902355731475395796171398763405327452504422092233358350766719449729751055457040818614562811634530580213575606430455015249108302084704475704813750567279257998318306131528600487472844439936424352379136201286426024087143827654876893145115859223978927394391675206543245781770583051732826325203145213840642017601641130450260649387846817191755255206161659012020893642007207276753835931265083547876871788938233130267257284313449668224391549530940914256221544495780388390380365444549855374690753765184469622874075307488332945219276547666067540626035657138499222311618762536811767078551788577318101389940636463779787970103919861609921831896261065083012691694246321068761174580462362215325961423126503460513161597025373835944407872428692112539334172313429421940682607934013533989575711316209117509791989281895744796603826856470253389188691155828507345607210921982234730124831345054782797584290324345145276223735924461396312318493426969918421877534706063303123389715788970049049238809307136225781718928811663670987398473927984860337165880679313343481947607626674235931225925706367765274332939150660319450609073918746070472602012924731468183247224497755536176494197527884804589788427151467115237859671482377281754212432405989475936536567827562368459651513086948704419866464786181469285341820593352820190185440958363141368682504778968361429288058958937779273202596173363055790689635617030240512024124766863661317637271624087401447668875527598612061512096868943209088164247454687240717957869435202359861646430679240233743732626573360809501440188341942200092233502738193972912953082092989321988493023222819386708926466986579974165851766528046843048827189344500634190830188391392466688827231738287542865271406694258091857848457998982021388606661104455346801277487880182886125972351508844450822233763510371918711646110338145845599226583178465245704534693125889233546598213547974178967152786835996970454993067705706107972202391043865403322703322522313508469469686627812045469618633674256384529732956214561717730359391419257857596441609195090725466094630924036604535122031528790805738483280411883706995641964377228755019151973170285967674870891900164534531249398727295800199491926678231831925282851432455987226287826256916058406844058548567517788159993027051642763337085359778569369855460267412400560725592828938598126634704465674197143328577029506373709306766113869912133094404985764788046963287782127277387024609967941217241873997869112909618842101419642751057875951628805133224569088712882753300158985842426840396180451135045729826295929858346145238153107276524377245641740963260069454641257093652546073927532584666054080523372208363884026210812328062617950406336911942583278289848673937420819903041315759770229111237313390288703667329000642428964010696858567696325683294990591985077077048153253369397612387968542287705895621194352428021973347605054389556300878674823127173826905229050087578225648429684271977804368268647919187984569462351912340108994783754391112532776246124111794302784117351444605783412084307634502331087336147981097385283800838256203770970820593499004988411713596602888363553154463893072388699328851865730985192931572431704360685419395608597163349468587548923392415978690745005691378758483128213623624393630448335052322072749158885828793838703121394440640330733085051802705691993388943144944640880710427318051974420908523868518785653839666022098716673439482831588270107822812392608182522245154041014166823884099995811134642503522535420499504868055549321484422423518324845716097332367861185370198270725830088974095441071693075088327884775433469783960520356368494522469432121954168430836049542942732841179084392360511029456712659483635312349999024262884224914256423159903067357038304680416313483375008014367715078341973755223724657843887743047301613465212888973442252693124344184000156169575520129126212641229025161126585970799167726239930868639211922182236647915098353116886609215567974978282017783749365703213602396799825822356671548466211786930143112997781312727802054676733927631558393467453160416179996438300322725522317028188565976935996144354415634228316593341080666409819196327454493389822354452236683968432660484628101776822977922016481139016291336450009514917985776021204197818602965312713258144537305676684318622677951028290831036500514242072914082341817717205546014754615246186291713730377751979239075027410362251472280041126417477879209017318602368914876896938265324839443296597028952303937098363447200702436934354582764693169809529407001224567950662124342836423843217962392668995956717486488964992556022316485021624420514356295934864541468159255971670054669584715234805550030066560918154531497577643689743122524566501504121692449514487599749750677002302717720176605043146487633900756094451039190286181835956100477041816893389057650609923996416108629935113910882268832575326238236656539338615607334168902377197387524772130045437468156731918708864271947188058307913837241049124820653458063383766962289805181526578044085964060546218029947849041915844787062585833771844649992735490412509625575134917031752219701313780254707604347829411774167192306459440120596378469303622348315542160637424642568768007381796017665723559514925608562483187966834442786292922297779869606494280365963005233456804452535378969465176733671352791191536464572981825513854623688964331735844812321907126228746723259874574773317121291029571576407473024143697042123946808980421498129995909624776253738185969338063295533008058142749370261829441598567470945364492309619946485015982743601596433454989165880280675008611743958583239510526195326072463637982691872627128741872059330170984773718583240324226023200866203417104796015770357482191055974102450660351441754795447638304643324777460525570670006318832372955773856588964283686895405053410929955880872598789212393664374736429352759163183613503837593375897569208202237585049307355969322048507629261275070304089988322032059587138702511606062461711683107828792954633400618976035700498730380215864234894099846940572143984126409778431724151961900840578012438139116704612580168605536337516550914591118597549723191885106359044568970359392981666473721970081752948996994920789546917411099486737554720257333491385170102639169171586718109635341533344701996875428909162879755768830313996907690303319153154703697784725768272353653880961324118614385257299985956801766439317688352929331797532248417923192159023948256813793368719103366844535975488189091885137014515610065901531905395786691341103599846472359698299344683923336890496836093012680742663166492980696225887263344307835277893495446972837908671621781057172400941596198957535474189531323981351345604797767912578774458410152458605501210943219232583557816045203621519285969893013731118464694163558807723769055486452525762276354866006733703389875553498503668063115403081025521766982145746865188596412851837265990889418348082158588654440431876041798177331337982031318383933688969002488816414606788421857500628766095306943352127746190715619905083884228047922925788099705744987234393404614260714118376903356349584184066738646057199800037994351646612048947418435226465358829050595411327893053049890392959579988364037186918389638483041956855876191421582594662017650190742549787590914092198581567948026685477045464013091631717935620728094832913130573322861371083844481971711473306863525854585109002755803098443764464628975994839819389951132464172519741278303952824071794673871311891805305955834701272909888599497386226160233275241465696629802503261230192075870606619264695741839291123199491520916266761082957014833612332499911667084724967106805290933192154339607214938441661517498924485688732284324991855166243638075646371939666310030198915215328837431491256607735722059905902078886144119426687232211557619419397477038261831053863629026904936344799042449204608856373481624626755381151476048178177431306246993112179593394856236771768136681182160944801971286655425430956866685599378144445709509352232710862791305966671348122314546868684637489327974393528958048056581414422950501109116158703073062174387464033155331505904777872408454101377670549772720522228297942044559097986035657007143958480865046463930250550887443797475711266334168019118235765025011805007280438636838458210612391713322049388762060955156393484120772224145209339704378661398613506493068463349694820291991611851719532203885634545427233584396174174691545057583455450739602691360050153367317787086852550099733709369514554699370013060265284717724325991497433387961270978295751933337674504335234948346863560371007953526409727801578167995178148373066100555750976555069092077121807935165689638272605554591391413651384681599834282756558134776858795729059228427970554339189113735013758106773714722576039942215657573696726898756603560682701310488755674233614391857748868382682726922644143045970549337662251856382063743695053428415615734760176753867448444765981310595998413048373638538268716331844665676535074021399282749389954464626512319986591538182158943196770297540730764246606442141619180486723166555203581656492343930963471057275257225538929894597710944324473501078922515131126223687560589790978629920237386512353446020756570707286696880607787226101361528301876297262031545762509943137738713189952043788560495408330258464684775313815851165220730130468780170648554638531984391750589914512502080541223714148532264807464635376509669132889440777835404116750978349788608883619356219674582754518887012938500086433566520043126747870435247126916051706759392449057822393696174964844304448624575092131809392568285908705147448211830196509762789534608534329164373739018054467811254562452626162420029736284615606065126940604209136641866453636178797828496668450489857953203379961679039586069219509642917770660040283833514878230300982366727763515968056304422025988677795315511538589857677922911224107339673456131236598091973880395715521487523300889766271455271325303863103410291993045053521399914545244091535386003086479539863952009481142236111154245803941896395462520196363271842887874466534138282470715917873369467692104017880668528487768530330627579907967169913538718444765879692662106836969223873792677244598069397887148275116766931544081128379362484939991814342995432523819151797544187243231144075457503689344441911554285281086703337501986480037496384847440134212602236321182117262010802529168912553514831976648803310063827258379508926638048811355748761551975770748282221012944572441285457314939823168653645148616875060858565305243503767616179830170663615358421051202059356093174811830741006119719586191586729559740119006891412725445982957512276246493258970965937097814885974703280707794256031892824236279706409924259999487749741242809232349389444575852419572489571868601605095280673592797899505219286174599424470019517915016314717124124623733839245905814523588759960383334148920740830349624680857881078218484831615791920556811737951197793484052731975178850045942011694373255130531875927031309237297381755894538058046803584008155285412392985781549057483565765979858221841892735612005114855756298681630116310991734640792573702527015941755132443374183065204996899129225901635228830497149896099194291149286211849501670824675991492098822668525497234754507898856460864709223771541339810684754418218657128129622571096180330392926447180178025326074491194486996301429249394534224655215846858683370455408887677973896830635171232618498929109092388603616708704188451583835693702469185927524181634573190759569656663703348220634676541838366801672776630399476153217231728736024314120880165755107241286350475516909416225993020902731056592806266885381833082198456685939278944272304413160413564631947762902595604995280598281720691607844121133232923435019202284863868587912084637933208858795037465515727177941888438996719488102950736927462092981245720340954313615615840491432361175164939254423972050575798135699253106242399049093736955167554737322878155185833094702843315223061373802552711030622695620693753050587926232514694617175150426795709056791874707470561201181544770393167142036189356249599260575443125987961995698092195108480976975339273972709113066465895591701166006040295571073384580452309278446798340181527589756509946880900908553417978536034495212331376409060477706090503372643827513725080549778475583554472535487953057246581854246316091040984556021115535335748553207257492445845326013722985273868786047555133690609368822972470291068895758752510457906207221545864352593475977836294127980089915416341422400723995493787424792279840596993965807870622371022945523775458508046153532124366031298219219464166740982979794867170461893727833895153133167135882047073430903684285692047914740591858604823357687476611796312626827501834752717001514211004313041571090999963690478411097727286405497282085192413645245451668532995409252439464718696528644308734893976787504909946730168181921065642930759289389139501635085683679430104275425486643508180305557872032215426146732365242293840006815962181798419663077342718271975463929964207686850666882688636002428595871293480197817451196456740496848402483218069650403861742563727883002860888979054811162173357709359933752252902161166958236517052378257123889897160545979520247563939192077935968996537339051468114783565371733263619952185414556302877845608177613180753843525285282163158155110415735183137982912000331810387669648154525702583529831338549567506083133615908401416792218698134891731098379416500093041257424076683272150087973263952877055617764076081334154184448679257598065694789049530709177264256664604117443310177701662565930808927731508195834979306434872908713158077418352398613248911979067719316259048386784331491959073536123249869573161621874313826068872553110902857649115503168735447185167583051986533573969137031710829139015599167659953893005543388197211546034500567564114820899666383890813957687481853734421973605496366256769479388892382858002524040206260879437739134771942694684104666811008823637017623561855720824481516046386343540771941731100492477979260518555936827346266745011520233236759063562012194909324278480960645817430465846756339667910254042866361286808840848789493030711460909919881894035590142295847346004231061397472043525170508925462885156161908894162806473778764968283850837117760415371341224806882353157145577768828212724546407610333660163725098047226151627849265499973718908180156403154100005356781339855386540823475940374035531828167470567033261307302079364981153302352190385563223648887144385088953548229619880657735239165724321198559631753081020806470255910732091561743191795247011045658968113234773157369067075429078141714179673181552934490164553632265710494009086601112602338892578737204427222740913047591931991779702369682177477303929910162700398020387344123295377671971514187511938854353650801044115527237111862668225883170191713863334210800530521726186291153307890146513975576975742148034399672186434596954912046215124857328552940015287316029333607703774461981114640251258548418798433619268071780530794677924409717897856040304500840626310721985270167823861301971226046764143748536333216277831832633339910449223374742349731052701811036238283907122972907734730865856011807520010163411102729600007421989813939246583963194927644848006064208569769595088762715538160076082661600881313017983951514210516505915468011047110034696582959802129067999382186825608722837538641231649589951362881996525909571153465335805227563743570897710458756637407123800992644018389320056519153526492254899055900322781231177860167036706316389925272504308486832488257732124868823502857711083589427313636492828989623365876058548341227786097345917826030978679938538781802080544035690747600278731303356832068081953894655635730441113021441070764280524164360154448128400017846482624263940235478376639042167689651819535408371018871103941959474853301140300554121436387063526488285270731242339300597557953139313880935688928689563227482984032386145837366681915431662941164588464181945049549998080546290341510996298327553772893559473064243675721444221244541890510010659999899881871167495916342165705866808819592509396555907861389026423090264474026673279850537099871196093266324991538932654434918219118385244869288236851834055583955267626870467041152608360470265183974500736001644311513073518695559054069248562527855974212093210048141423023874108506226849101898384638278774281297581597662066061343889276911845154105485707649703783354546545453169841818777087202117759086184081350544964166186372730527512051993464138369805725906584561363750560656976779684063330699625960184545717642810006967976299701378809501860045294243464517482901921786664887231939336104344266517541440746814879580424730174188107438563343582763412663122324042587548732502139347838108250434538245203136663327015185027576161107414963086887850082771186148417947116850988773105804596601632860250651895176320543729333650235292178657912899483504441914918941788580157911714665436405186229038054928326724647457993670889047974685100047294596343138437996146669213905729980120088940222433118572911115956259562578635932516934521310708103520425376131895807133080623041401926764932287848553396461811896977419202867608891023802543004712206901278784430085616777164894895083379381217427868350854075548586983415981964090318542512697135214171610837189479598047176044268328472452332412995522888515029356479496324516747365547321503023106049731156607844377137086142949581543660523605440014554942272453855351081388098573772460190314791239928560246809109532462855860157477786980961475349013905721577991271204994172608168245231931763312162530391185884603960541246511249363972513380364303901821593991276506711004606612615852093902973320619496013256831568826811541755932417380506819665412792400436045583417196753024653666814147862754852598243381010115375911434804964637137230536355158537515889447878143423018412228004049280089282005520803514212948203189257994967111183246330016113554658282964861629907877857512621632810466594639478765900224747875014596505183634049112959353127742747132273731112110286544937065743795481318373433678708609611088247767932976299795907190766193107374925854716002615301633958647907864203912972585213618943548054073330645855311804625909797298507691481859722964588338222544468974132641284015454832269227159809052376141313135690046254593035301931815598175283380856034855559144975561038501473866915568132378869513254628750208873131047264171653171679570716896158149838218021042628963834393539216391474866725949414099964902658370334996744734062887400685185327091751848824298925858375815816283006717952412940877804648993320138579576763221037972534605222030056976136188488761427313713344968375179569541814915700772883108041684079309114230125833931608849334419309509142136261389881446214740566743563658561214410292165609011468605067042457587018398440711929089604675995590206772877725323711340449750929074115591441374752138660848082829653332874256105583722674709801162136096903694636777328696954130931524332286861653201064299617581612354973260677510888761435596710650713510132869330021108203405722239551107006043013162469560172294714725901998876961020731175430242609535186756923483968670708898666524639926114555809784450144835188624250360349831449393943006218802508905515885254491180824130300748859364281893038844583899961360848796040579919318783380642509423231268011171349796163805015372690664468688991681088207292319663022998921744025411776702548217672576168953115172052097092554810871450060018327306179471049427871572415196488933157547647518692090305559700023077321260968861140212237564681988156697326656034912547865489918700643539950875601479126424826732485127242809678806219485486289039360432047953333073039404113998064599667179822478295466350779315214364264600629342706680473396039652901232276650365644964811329203746924713358174013651082924051964011403107939271942159042443372275322612386086017852756754391486385621058832874152962201022250967063961130323786911907304619280983231669905306558592836555634587472332427822613894234735707601222691340543257894557798937510912522190030203138487406718851470315462137534878393880412054251734429780674697435171441563246606473946724755060481823620508525605262109617759765187274449167011282509030784160012813231254401832264296546544064428456171108509770771455965802122089226002984318531282467413364632514688949287706605872041269190194343790697911557204307259790850732864387344469295224181334872767768508803323343071144984891368428102306978862099700475109171491674536177417901699004210670225727504278210708200505221412342008632978361052121379758590708870318608328792412612825030327687494618575214218296133134362026478860494863383994387693533278196796637398267700578099923788177044772870934203209223106552277126565065366582383812702499111989952180452622340603127283091777617608878419539650977586185772541238997252970429955534524597882317762174996202359510216322439625325452225973652814202705135071727195529404087588663612583022523483606337498500414787202319361220396093509901905070694183094228264554980852895403775973095611333781831408608349863989696515275828858400714924715469856920012220542408891614075390453150774855214309068328105538748421568105076946125150539665229825938505758803405013713066936083785390353840302273117031623874718632583056264609531756804258883650060965037733527877658433479360097456618824660468136982790881700968950799482796831850553663150896970603500712791247414572099320589288120431257120813975360117747919596364986222412484425449604675991235660418165028331372986030639986312180199062387310200075584274545864926990492257326283317763078562342801637409832790037425937810582591113748445436619547864712934380770300409802487113474764561235253212032724242567763875832036060960892467615707238995465429536935948763353029939996170951236859224764604075757289264530085754609013033306036163262199113360769525776880039346668314138828328165725989068014731720832961937887442359501295686385921328674823859727305962156499499319512522822170425607139902183393574469599364157717768942068773237551434683801375369235842302726004822281648234679850755832602056183203076646804213039390797535105912924537112022808397743853889238189107985167172098312591149629805100240956188098317736443415451896980636255151209554096056975443208826726337019384624436974587883086812596989824011370295963404584007472139192922116872382990924000082735010041481177981402130619707925603905315853209049225769537357900775117309505103623536350436493065227943011442948204827677113474776952766257807945742938280259119861227056647919992903077975196376201169620844005928077275864629679899862265835470050510244205071106667735415401279940080636660073869514313050860538547847765343409298609538950943234112285662192611092775273384796186347010717770716211714338550588943565220273487270315420521920943986796813748770077233845869879068955658982155728403759732786181250522856291684736047367201194657959979897097648731732670274639474731883361037659998679670408593164276384067184066192783327069916874529135416014413352445824019898008619841930950958007340654189166868206149019243744091121987573101905529224850056087713139961416196297616561591285676940301694992416939228828408922261599861714727806983269402979227111125418120984093386195465424162532059172191005878550876286838687689725515319345002280581623712283928946369420043906760562002951220097723550151079981189773311340190275469566464471087321285314108377691857089933712739920446712457580933695412037380631786252687477028935595865864640941490836096329935357530105871707300929448629727806881830176722512576583208692763955839180671392428178292784536510502601864510748538551728725397336645285397080859795314497686772175481418310668364642415916170340358543797381941330747171493994477567170614003893636417261293782656259193565066387364970363357814799351672128264333061588763269799906178201709942447570174875567032915511897349960474492837600621666559878099638677716408661219676630487992193628728796603362814409566443025459591190115068815115773315542933883697905613613783924397767529257213404455312449703420434918240984677402715605197963910016191160045284257810741753207796014409674643072915937521041840564217877865666597021350244285296785171177080068676464348001406910296056211775366754608500728408841997947294902329844703684649112714057916464340171815026670064229481921997600074485528420000746197116086363368977610337191235385412205412467216445146522897686022106504122357426259649629221483847430284039417722697114678681811984814966114662447731691923404467060343156520050892737623371768899937963213471527977827500401350384234865733345774029884937109218854705005173348324323216314254240800322900152439862765700335137373401175848900075225040455882490113089278186417296864739138920968138614195812632508189888705306005837783758653981182829938195359851759235032164219956794695074520771072556702487386865519286954096830259981918043336887729425377936541361471630562756771109533658156230656880983299661615639626964921005092236480678650635966586944132138724509026090865035924730590931281517630872101837471590688071955507893058651384665908527374835395562881772410737484093200691118530262778516373578242916119171582642672915195732868600922322755476849964535895366897249139715342834925283110382232595551051581759760055489804132525794943117481068834024509582514831938664689394437278668652117377305502607012146892702944773517097388967668028109504830604157324277189938952731546549621751872917195609596126068765841115509713256045844693579547150814954446780459876937439365437742966646480212773415883721546067266578047965991479529829907955036981591485342419839772174423684780044261400968868068901880167821999813334837369999401450825352078615233421116492108662708572452749449181420541342842728727808521902366070929257529452034001255278502224844242312647216763355120412026652382396490309898647406937304905845579669452825340080210154703695849093048063207413119975143517751630722162831650654070674212214694122688961041618319547987931734083675055701663497024761660304127047629463217674506190860453782778472085586195051060111180383254995900010294931216541375469044166891604340978204193580465518824128330324625687123763276282190972898804603787263163175391857859960733166540304796954701835771569097867207636639839244965600757113124299295595162391246980560029885918869413247913092446332147600084132319878042117493651578773260877855698321508328263670616922832384992085596250263259895451953169132802039193516045540133657005381563086674762999813995356392616932973757723328665640735294321953847562525896255682749923628255390492246880792941732057861907704409551975301244346381001916153106339868979997977892301119081007308142967737467880214667859153969170316842081211580333724255746968490096841019460106918715585025287266574195573442657101039172575435817415566968088030101541530930568369064465807922487324285306843944840306032999931379256648359178267507738480939331664617967961092332092390630455485712624681315019729674173818336974241492578408073981825232135728654803760783022763841359935802679094439949685578653895285266516616579734822573017223127399835691589669048009439261425645035127436133646512006855388741707218129306154155947377576226825840591558795847059400208378610697269092562536255009030906610225594996915914433465593461023016996515606090995348276656928207558783715755119771613344593010749182940532226123433229230099679631145453282093129152165700013333992770829985600957928971377515340572683567665509075928299518145109414340265810137750693440300301502323612373340737100540170806935546078536279470234337726592566678490403851432788097062597996858204569148740991112943574955861747390207224628431955847061919842628114113638776359398079430076541155208917908980548174930331713012752172883355425277485955017751853935897579866039097953978006934305950727860708133286036518676339982203557708905925055528003367483395308860075224478550721452031093977724417815447548071586896993435705777287003158689180788599898473072452921320164171591740632540641384449883808372468212728045607228777779960929159436026301978956104886998543640253553542371870048525460277493388022194547917185614323744091212542677556220027848834567354537418517174496977773495906496789953897282417422238449022330756669923102904358029656555266453906390234425758399851822836707109390205758370101023424478341711377935571241221722622518149032462967369410073831656675345241851398869695370624688718468613522464806909180109502349325185227343245529833015764219512665283670083887693356878699452893652402598162452248964814699743286904978393106474592201870421318411681774313724916506936429199834461015222374859816298899632506126243627188454200436795663169747120029522259504198896517132486048898751920174510748187715230936319283565818267735737965975553432467493558887652578992072929207201523841595255192013033866476729937302598855333518903547880170120474135959976767353547512033149317383975655808846853479589605718112474294882004767055933296763008925916532021237305525521270562465710238673664886166947349786784369479435848712022623148758612446434085133545256293558200383869759403879234303481890897840187284664463897564374364764913326597823329378415106369770794498877400426570511244833613252333779667477920957875490950023846285668882146244448793870758351597906737352642502979344590661644702764213377043114940045583254384045534011132522749078597035646238156277202748542724583922298900592200409864689537978870827075289401260306257433059304930221189640700654256294089906050857118420095941335543747994343657343770157217426042752525332207037486018296338982675732068294702174146733406098982091373805849918929272920840862445066156284432916944632133088652245633774343834991361772045402031755842980054818562273458176303995814626545272122294029924763105094553023604655480445904083311787619307446988399046314290397825280428897465394230034925693811830563361754042799734784799537677469862104682164388714989208708780550801079888378163148644398628512522941619862292684744567171146429864831429027304192437007247947947853162371869956073037197504167272377224998478797120345053444151957570934346948158420117651051891070262529865323451029360270204080771033108873650975337068665452615035702392678640939643612980563522466785255817985770755479256850590311590063329666798995520253226913046502798629202619927355999546089835558352798329097437613234114303549860542764172421072921867583721730775291059838110650278974353831115436250731370248769583313072228898061709833396024425387552146430047653786013318862781131148270604006018395973338953463674250550835861316216042132319724527993423793567068942427667108625060371092490164998398582331558320000639856838989795171964969438890934926865305037959563845641361009865218000709177715945216451284311451944519791715788032042338761970617456592381461712354595200590830633765709662879617860108011793045445817439536982089343622747522404092394049299646845573382953782289142433503736177188212596082849495143880314057037214203590141986498066959847192289608057884213232964927358107906648488018593307127345981656066494965971998420379967330896196807421890054385799689616050976632096951454013073492756401920774130548528811290209828595383705627791669729430264151012054828128755401212249789044670515276046299113341340526390443253021638887028416749964528967667660735190605616559582113145083358488916533003879754395779907515486157281411832091155807591315825966658077452332785144506837170329833680490210718047524313830768525881167245704636120326726590416353179579684294597753647645622597966710261212598887290808308324850886407096850670082027769946140701891221251623855014193516915271950799286732076133106777348702307423676021322680987549802087515518605497653724763024090779117089938360331180986512231084467845516440713167706234748775775116119432094020963628781511248959782803078527272456617071959742034992729459307661296120453502824118759334669617481390159856710982284123524717118717194569570821112113462994575020412354484716018572143422932202750004114624220110622931273846543362610046110918960314493150080849974905918897175946122405351642906298043180087031926874752102153420291269192748742068027344274764529128099188379568636003884215300901269848184374229074723871558482183520025328151595268948769890472151048395657826359966432254595834469326584833890611497334283956109044921552106434353162251611492546905104890969153083747912147367483399506906149177057702021340338158340310839258148152330236799786607255558735489765221785434570312581030541350683494813694413849089810843071709994690152123896307914712887081888606511101105688024657609177024668258953720907851307405862441914128413886046074120666969975216277986680461590509795474306569260647632373106399534876233028484166077402912765328915131979144059444472655341042024180832982745252874982717862953699825223513385692541243302330676450651120396141207677734964606732938891312843286187910196629220361384229831030716712346339938125506350369347259746121405458699902661612212590355999842712625862111061654101377234721385885610635226882334913185437078428633176953380863023455944283313245635900289657027095131327401685124119649528660414289329557859054251284706640427071046024946106632402893559865606146749368318298532746074598981504309848411236324524044985621761462246311512503075909082329098749166027117517218306486728649165114798425833882541496965238670083376346243432261999576987689430907081210839545349604335772967683158621920172972463778953951980371480118736782892281043004916611177131285768439540717168181496136797559247419579988362867076548959458382745806934138948935869421412191111289584369669148063952394690494448333572176629952454913214021891556533477343840957586025840818453355590829575367517691537170903278663407966697943855328168183484703182283759537193014879081227234342952761261777163790226404061564612156944668050151227939855137429825650151074934844805803518513675850897598021666792826487117111536827761010625405809269656691115166442900893840517781528182869010632915223469057364461186186166631453767196412998921929737319402486075353727431334973537978985761562949179037603965698756894177101470615537757701554660694031056574412957539704512703772683286280671894132698309644656924893187508802038816247477531079604014834931247141436599453339021866550839654600462751984229192872107312237065355141845035133064436389700405058848988125181717421100488361567565121221595253815174512282083824048113173181931972475985639602747481418152017202550001581907344968818280356639512910863976797891519036566199843539356235172141535547358219366834028377369566673638065833319742011329608458857659761589671328289065070266763594342185182426196101989589361251791310887555899235287882756182617525828156770552419126831299678999287953592596684592071351585284333046742340709458243400436533767612106007067003379916155934343728544276152309766150247653688792307750752338917380718104476418117214500353888647215185809459774627026040922140557819726111710529018251960080770338038965721125222719850818319250153607520656956025892002155432490322839831674831507104842512166300569627674556487435671289431952176160356215350943045624444522497329305616183074823897673897298605559496375375028495876837351512514812777580656980478187797053006016892129722018770281683141865408060657668295575952819181771645630211515451647418717044241644092301614486581878175253924536184176076499746485790259965978193756592620085094939803886873960713134087580790024875979285869792479124108111985818492268209631413941144249528918249006524352976540319237779194218140699391738023972851909610362729885529559791187767583887392933196035312975112413291008825339926440840912709438866651285022874818808815984300624718340796723408960089756377201203342718591721752521868533556360630689676249341059089787268150604471540367914445415792129469818284544127493763919399757027053633008530410013724295193499317714302549191355506869402643687269855254272902633102121938812998116971126374981094761402425511743882990923830321228355123266942120145519614359340103416699566014177778355787360231272797158700509497294512945520974071377676322214674075886959165830634652090343573145744039616740892678753655289586168447615889370107251361705089545576255629958923764810648739041039587245015689861702900884982033550419495243705492493016691314111674465472437115847494141586293237263351748731858426556777661238670654353101569758085958021152604815810426860056155472920808601166272207136848272915842598333650288219700592505551285142560625413296105475864218374448209400759022080562730895540852865204698299095287320337079843516883522596290515230534710172659536717573555325308128219449562540053311240198901799265795178006134301211529202860199334160956449602004816237627040815397867431421716620664538900647266035760106292527898626844730838825844503987620918637720575574113413565445513826937749968332212752752233101776408763323163558606612325372229878797435909968936697913107249858601238705923805294725588631349716351138576345412128556598275360334750731702880448159718988860562288600377654214592061364471087599026266861235240461147171532580403160384182130389776760520717617919770649631980671938431610876626906958551630160728438074351700386907423226802074847524150778108346859648278610821708378253677155220059082807391290018748305379419200039373496140705040282106782557669074071761510167926357632310441604870140093842577294085463062081735182785293253925099067475059494846656688673598357965398201612564275901233669020534749797684009075635617640862980522947896520022447125840645390240565287618358464270035615086998540952071342520927348066760141140142301358411556512317758660456781570287270491666979722982678973077562287266107834698758057154463639075429535823288034028554121972954128622219822364129259423515917499511420048126850314405939774543600680540910239817503804608467779650374182120164075653433592614836119805311301031338957098576762399789421152153133880224986232438267140276442830364101342357633378220084782237537488867846266367060493265518820634344232868929404478066091611435351819939225657547113313609502301586890789714746051239361105009633635404048787949492206711286749194235738675071862990509228561059365057102937554207081110493761274791231610433414671509052507433234588845400610697479257401537478043742826454675080658672464678773848139486035080464639992464020391379402192343861468811015298080578746329752761089286434558320287907242116231802709504626023272586998042062831270339174354236408494900910383699631270689692042320028912444616289850760589887499574665255593066882489631418280793842292694623246709335233896712561277358674098754123559525716648534383095960627412280229410670966117140259851920709313739288351378159266415867867603353162718254618807298823870206106024202307257264619108305958818392942700047267887719153732687303111474252109434592841442229912103840457444319564417804451932555474582597171345730986569014455194627785934183542655517468679818694844570381985753933109830047264496038758476001780542027016525373794731806042972370215498844471983920391735355737422779847945015626932044399011679803174311743329344599858340990082336301131007662914959793977383160941668132913046844199881178449671126938686612273143841460688384119027329324386434256944603127318292920173429660661551706173932071281740132140413931538437683428854338050394368670032023903574011694805120870314390637836616600502217908734098355416958445189849024349997786781038497064711732208054526307357784196627262083745771589715507025536788372962394767462757900038270661480327611907035522089756908478022922359364238562278228889235432776834507854171986502877922357884021077266579493676474415377257124966255107654826466278027901630008794087897759424116454684549118365503455752048770375780560393580608808534723327370732689049397209633763447779012477486488390587854384467338039463572115152703830062962049931538941071956455550071318339434221271480030290549652066161662678830503680219518252303980288820511676889326219401165828587615509029395663478279170496805160597119560015656986144332146506402544697993030832892818400279429168227918994885449230401757409459560052700724225043165313607179040339653019163851937604370712874733592569146861481392248754760580972938519659083768196264065320559903075098864585673776313016750233430750207134396806224575049456092036253782954880320563983249035540415444289527716525693036912121851474542186630712144103858678977608263695280868212379918904318796916740356666390299871280851191257366779816263754118651530884828332981378414342772215758004980371894197162187641482984538217595338403563199952170523245432605920816824366525000961592181875138690396900660422769760550112592423393225641679057366518974449171713865894302394331221582669629787413696779953193499032010249213420125330092089810407855687475077037065109428908591537733819873943244900499942268825132050551249655703856870039534703509799191935441386506848244926979247896821718288117424731894838241812879064301300445051155170398644744416548329820133104454442212520005362297113435631003630022038866109790873873744117573426673829497845567906472690903418417564962632570663007917878510303092706173522017137951297538370387364309299943324941522040952367718567162892050697152948316396369717150184616594333047337860734422197287108175334019667406914485793636274142981906485792114810785055866117198052763167806492156514927487330619267735335731056896081320712255434929842299598225895951966754397651110016587439850759981363619254904065775756403258355827074525769124013580482535065759193718847472260061840758548350179272276389670356025430675271688973474353451917759549329154477271670023241658786760123651178841622054944066233704542229516767479927817610342460164361524589626220697334675571764856053048603947798658328363285785201190807556940577650404519863608376629800805711105774549807954205306121449219498269524752026753577233531423356599031332536122836513959699958448645840766305516407953652853565228396291231694816468755335576984392872753788885096468790558078400831151973531860521211909184992722344588788063392523937532300256143913384862356580274935616381412434081457731510435801013136739207724850040537255372240422418770415551670106177302766467033506646254137144712944597015925431266265378769572187203825445551908092946697899893389738021207525140988840941352311896264345773664038672815022171570346686774358801626940430672168406800573450391179355715790086263562476726345539862322907183532939575745269035965482017060957001577168030153288393602897672252461205888902008027242214317730139195791019146284890901690762710219100516660894722072945524928908930192029953236170625979692483099895385449915039964811753912782547923996976204751394235977694523091827989217676207779441646837212266121272945960757553461082156054987895007858489799663747484664777266412328222781732530428314103743055133574507446757950605900931279260974702285423311904135717456826477616540417376715280007406341829212096098704298214441119807117901242222487185306476821326968573076990660036285997300878613513427728275658533275553341024875270294905886857165285091730412334312200194077725950684315839856736633993242457032331253023376898046382328600308761872561130583289836535596419549581053578847023409897439322594188372182523361608794809276953616066684448122436865654938405255495308519109826630380726686910641424032112580716890544645808565805461189504174161665861441395434762880905727177068658738287585149927332044638477656660502296280418412804027627652233397004386767424287470138863684168664216053194187875327423552973228298061441129953436971056851489329502639308898557632247327529716197267461409795136601960805721609704743360974786260441149345939507161979753099109888741367859983293104154149113058259461012744187188946098767988608405290033074328452964227926556489705450325947376491359797572817902195053494400677829984549365518376634698170905546893601536384014160423851412690838802077480976342812404128858217773315402366265022627176496254029754675885327910608839805588061633677453308416837414828649728751512722382469209909755864508610276869857005803220046980892741022791338067277422122580196571398664743055906486764168530997740927171061711280581921685655130461275438612697031851575794271879936491905420120849141085512533987507640881170806385309519130388407759531002726685998200099861842819582780917632698595139151029185897094957805119136724677195573359044183580312009164088911457442148084431981483769147757307099179208817826097706469628201804286318970826124063178240057561063684841284516374512645920902956677817185569347487811176567086158139417068614209984230224191234247021670440374796259543161354686447798365103355118648018789148641969078551642680201774277033778057720230703727373013245914661663200629967142462433610445601436420441457865637262657116695010227707883460876384255745169557190981243516060392554562640543202833448557325231424213453724419585157902281076167152923023927376234289447646458334504395272629996068327134724122282374968200715041030177060985925110352663810022119299978726714743095637655243761409320448032190857986474920549951025262279644951713440079540823644605525574327678756691028900800124172254055309667072504496864596857753700487180767686328880794816466388121206018732076147021212408443750920855253986687428486089162904617752120057906875468169537519266189934139888100055603665527896616527038092241635411135953856199460910776759573678481613094196566269771202881275218043805458205953893814329364876325161312477873845091379273202784573472054468717232298831286757908382090888018849618106679368102493085950154125324438128023253314707637630170077078319854065321047332726512054142041530998694411423251024763466418986731869652273572046488783951005459320495522740017205010915125166329102933204215371339890025010664691857445462690062476821095911590667985511091235900716122775579153115009505991787336995320163054013742531227497779474522700420216688187566671449110705476238641442772726461408038871721741091472575245569340287982624801603128657346691794511135733657886313540672590259817062382221198644763806491424058240120245590427691757968900638819483603095941978894179308608129255277365280889437218919649244234782111344246589995372534657169068109499315402899322065014135993102176464982764286447696255896566943328038315508020135319995753382723958722318077233364674255607556909889586427336322411529842079440032824367430087672781700999957166315588360048464228158542335206485735714231572583809153733415823714661644011399123940853465746105670855186776596351743834533795599828922815582012924054060893562772113211581908892281530790764795671075112790958671130495545080974622125001004862019169400213234068942920078357694694446479111242550498791274614994779992510629354330268327157916903076862450219076759196497356232929536095524846884455902799798558540588415865696043162632293836628134385870277408004653847835967166129363854307092454292562703836018534013147077509072332444830091647959939372590924557409517737644163972036153467018212229085075660059292690093876607397887911328746171607677189600293973674685227913496778870204106038604647162442761639084679197838870838208287329374680104247316580784291595404958539905310620230059657938478265937546562359642796376953898403470193767393472207759945414661967135201827811641622504515357140588494717044141210351166106967672741301837691075523612122237128365367513261941158477434435839426964860920059604474580994435612580830734917684149733510945312729642263299241045013419733032903206431845705082481598448557946277019963910876175941243649044115394209843493471803117230118982746571458737338922649309405470141733438566775501878345382882688813317006528417844767177627481584285660009434120730615768207365118287834503475161907831245326878662736157138840566653642097505891080822275161229694739713032174546375150629431726694166107596169848340351755450456003615705451096982384329572503125485660587644451507980141606922916850458314023984369933359033976081519523010696096416098159956455465425323202549907375539046650984633071759769126585886466452773870845525118409975935501205387698267693326958512367394926376219000094700383395330943491296037073946207800266042817667152038366101385269030572874814369857972018567232341196751870723193032086984130175651639142140309760906803762375079448351786256974314417071847463645657046955485107012078530635884985442815763592794877638553266420063612611398358838186604395729917648522010503020388096746060010183214937464788281563475503855153306622834916680792708438283929113833924484497624971368460478459523082857837425346257477142881859683798573371475654379748923891101643894505633717741013681341721694965445728736371845302970535113771571224451211228135663520733134831982770010388144412824130164587059505136907816366793497683155587499248392502648498015722215940258746915405662038978412680549974182852528129743398822447540932351110450445128504631401169063910970073911437211525482866703867476836891180786055634003177826981883736455156599829206653082853816474724386977997894798775267921951513081683049477815524721937505958272303367958527852047572261625353106112735641038707875882949516402340348723017337116190205077219283120566228038021653505809526651743215562196403700240201484552552921226193179584624011118828648247272322531827098473009791905099705319189003093504545391510643074224502941300040875035991911280122924457107468196451296846841669138386742338688438255938813990859555970537819187386518151304426141783525594718496190614417199081269907895786622514873586062276831328277784900632866352093276909992247547663768482278634928224837959218752976646247502953960503173496575847489042250945931742157100619869828174608451547487822652175979007992896593682470776602123058197963979223920746093400215047181868784549523350824599564320427112513183633768299712248328535597571686547654637357989299647129595441068496293997000268298940094108130569598434277339100975270697985664448389278476616517667887430447323228252511660371212156957069930703521239575394794014862910640466595244111185096724028318463936767131067933830509550811328153044883351964197904279650000220983519460439297025034693192025369835114283367200122482612049081921721592512763403553401804118961079909485974282932079085463490516246527446278684229894530951323855605024619470204629997470876915512263079331172480907542168431948480104219566477654557416489299927736451837327152644379878278362018904094037546473428974349160120522006964570758868353983681090576256808925843908354852749167503901204957057161228987442361737659994531389150654634111331611186568109734995715314238741028410356545229458802500038804602447138997320452041577350767133016936167615949703854887579634640322252830075559526050936180952445993248007297204079639266542790805579548815094090967431566514207299767505671626428686287019953738201892435404615413348477287479200896029173610782778453931150485885353536227149809548616788552735151730432205469114817672483243184163141824220771867224706127153275835977159023796110844602610374441008830082794109853358633241722539504413039854781804757092310647613083180255472127332731637275913667640581873686190745893444100249528075290522984080854953603187786388775783141204531643729622877615802734003354677017051327345755236934844291563783273272306526222970729299086161687035440550529578753055998234763775008280441692506232952549337859486573392048636150641862683416693201655429934211906864649358866798395807243334513495287659237834441069662298194709641092524885635466652328781432603981810725785936890194582464241064573601187414708770245088514136639084955501400632132125728063219739593178955764742853267589146956732040159906904940678464270000405136701224187991201878836771903235769413968069259856509777815883640117171409062226829973565490146728084594898655430512523543010959024017188501837480262297285253321390168781355154652094429091714027082146556394483675751723823060755787930489581472419940993680467002015219605474801067781996552752775057463716949128863927069321788464197532160346420494512587711401611749418593559817645310400354671436176091012375980035034230471172909330013079098496776769221254893267872628016674685044374959744742120371325671622065852985607086367893585434029246595345501791483530519805047336437828634242565328884250165257803430148667567220758107403825843810518918580758160218254235708298773615313898930296740750198560183213840701861204642870844990869201311084169609070807565299375891637128249778383711905651421684445580718286994456819426648816867847436954642830225410026444239269659686380636051121365036908050410269464125277706312411572325259954563482860081610563265656644724539795424618248878316170857442744403251462454265265453472849477063828051827194385177780538697911470203233574892498182590256708247821978682523328377143368996344883431580266284314515456384298844842311040726474657148720381112661596232747191968279864689890594526508692125976390636991075350759486701918953700049010884765654575880486975857385566442971150875624475129959387164074096538515843314242409116699530708624011483027261796000535770639756929852615119837511418821346207737803987169500169007579942012776838124429865268547000243641746103146521683550660996306163011991736178047018115905614758779069534321570894887617314885733958547444049302072010822990746149506525775631517214486242842104351805368755038316644999550268982079139580236715586007749703890960271426601486301626638874348576025004598120398788878242748620555152626662658067567208024401999848895925034700269787926375746342530987907530485914506200481231406677879101166496105206412302683809234513723426536146802026095790512160087581088279868018558633519177760968184662930148931748592099046403381659622767277561466072163065484604583528695476991117656135311426446568433802242603262541265399679092418720955180603798759650123104600089917637111171028772338647101181078859873003320522837728335036418871954375399917454497127013249393106816098812741155360871953655563181284168779036223164565652505410722769034390652106079855593525249095942418426665653654928910629035840686936730817584121913020404185522430919561022760351377383837260851655955369688013845659853495832007587551377799401251067669101409298597847213703133500006796365750274388499276916983877604768894145592172799438536104253735196675908518427701997459977153889026310009148631121643609020066594674871948506117598877727399956170287741772226218212930695917197558257930615001728337079640158243209894196239055369577172404454388708242670757429250405267607482589383083613618922778606402029991308409052659540008114188205597680261157650855837790729327660423813750724490510433684957847707227441695622590829225754166111570716164348047100552760127983762536606434067528778351789447074269308394765144654445688616516653488579612296101861711035651139083816942344712560809413773040539945824476128621715813099351658318498015286023252332113745828089276816826448868474152421070091117773947936035272596747452164446903151308720562549961865058066536479380495415070025052702682722075744691952826800103272542077179407375401529325915677306816821602227939089367954498453169601272114351442554127790284557572088711664991470724073150636203285422343710051331461715861779525743137735803685649139332045007468994784098153987037263900952216316511755947804419971642630249063075088800463819912349203959012049895741933881020340856037373315269236425677895432974094468469340143018824212296051215137667894499042940670239748403176791240933550144491237791713445950599364089022945502208646346105839086053929708588802404950207400587652554493723681163453693344265876392067548265928155805579711029333117966537361706273406960537312113840701594494081416147125289045395127127067007396750945884975646161956166992055670353149740176755162043661161668121106331579488483535731404114318545809604103626410015102950345990055079134506639691380790414301054316822251384327679938949607532044532429881661719487397488868367321731512811717152212384293378487789721302600315888882669665454552405635380261498702491241559399493625722404663359056841099927706050867440943912790067944016942046308152738585493399037835103736125653262415387141080355255732458066305679351244607088813646754711528797720032351055408949436285478471851095356356444175997387932207841264611981447221385869834893691646060689183089329101720804627065662640401511125702534803849577265959292887253842321172389856484328720163555870654426629778171854957118943241581721491243880908015504606895414047083361266590118832661546888756367088176531710081744879719537774927630012774143641913853373496057282639335759278912413075986943173346904529312858718195196210017422788287957579245824452289908256579259892862187970172461665569498370420352354222822480852102430694126046812587670305343051766604662769395329268645255158568792796124669537663893551403606009495849804487939221247036691175317816147888718023722307201651879916583964291450225404852429333282325926762103457900700652044483582857978423468285369881104901631987487350283898880110135442918126107553684320278768691248004002032751017273657813329970433229917568133853642106891121951951325553958947203711603073244904571280874104351932524974214143944849715016571259166188949859707600605973517445657906544156921365274817710574956783816523047623977795366168189013107502965675365346970121988917950537685985864295562602561284955147031327747185610189951167292757128016349714901385446160855805583738446405686246890125228460726525560390619381202200340265534179834399336718478055710601577104382892577016777489355534753950444617511568850134059117697822705571666172267985778500694512575641937977855419993300425030463872207529066787917501466409540808442791303513933992983369571782758097345717304984570437147094532323518184954222016262497898053358178353205281312810034488966385172918744335527072213254655309898100317953856784650278900513908925904788005005957407663931913632197894618956355092619835807308962204229661118682495319277797327905712886451295271239414018694375071913341430173083975433990384685722114282163009719126724398968317266937995152010467855581787610716126020775238637376864387257246389319426993835021654761649320194644736200913949023873358415602119165222776661752394459039890325396448776776562218993886291010134799382509868411513804275920426828055809623194781625093629995203524659311878756877803663107837532094336682100595944082321394589532332121103288386314191035026414877659439563394971008780983662102886293621856762292988685962600956594358549340204662867110351340646481873961034808343370987595325776873806102024804529876641094453741905412978994431120277412728214081793705589384633045808711170287426045905560325451973787595927428191241857754859193228055542800971604282604401813360672932030016679618765934848037501796423734834896779162403488573921383818698761390486475851967848877949402918010521882408958699173301463813345312784455979754512959661201755372234974657030987345883350627556377307043161137089281205913694549419033396044111584927663896086261895657533801839054141638843877790113625941648393774110931104962042118066939492119725211688298724028766530136890317160341756031952202110368866764722787549410637312522317046381010119646325613719738793020232467194837888696318767712326253327431229781966448623702747231042802362853103910919783053615906811350239041486982644954944435885313537523380046459289953819265496501936854831249794586960183075301843799844529820572306455491811143158089911320251885047031340762353844930511096698548171022244212430393648980925894924487745678357416972528843581475101989210168905444033887421559295578136183872541449909769411764305848953638534429953492198990784980232490632175343865670643903324056690308778146971751774361760792654091719503219412313968366603348590449038164301090426108240117291276329482302201043164284053937823525139123340941702370653420232325411716076229746128095410966147547007564877606571215585220273581649428223930415591040825644946534008314444401710764218709649164615683055232765330121688403036205458767274988784874584748280646383841826988667677119059209692372280395523104591201270034603523192551422467469173490681092125972842848217902424437414248263269496224767528869357059708093821928151064644918402632534286908784052875082599034243790849877202758652647897216619016627206493400155078116375732523115967751434077567111098707034807620393324504283356204642807955402012849526830456817767014725580143864507381197399615064768070649114131133228582918376298309428292684063847008305546074557604323024234736417244579702214662295197220701647926735283192303710966736404008984453249387356926273636937198244177412189227502344581746527916487468311850256817243067970622560400022302482824782051701722353088175636449080308151537828766980636727123810700945475533045922742010127713484147443978674868188995266025670856224309136382906570913194336952682670910043230358409923379699339738708633720026411450059657770576249320052187543092628334053529618676752797702324206392037163536461783357035492459141440031613740127727294918943975872234375596643868069013446287495961164027557289144356519651744549646357553611705053455312602382667690326769548293758617905004655829457591327273949796713202736807961699766915350947464407550058983566560673310045207387446811199703835837638014568197099350774498035169845625843906936487539435175807255946161311944854164068138540917702259200466831277531857177354882560021871157729973771335519693444931466201697627952553727888588953055052227865730525577840493143300783231138774792228190223594535279267509621763636987951407705498412929137836724890859756283510616643554530461235615988595796234095489309874340554820647694242315565235064066917292533789124226564219486537277248526445253776350978447085121642825384798437052244034840289912468471646695722310146216440774179331350235559234235879505767798740312027310074461085568485674172856281373475485494740636561827042701002184867565607323323200683860397264537784579494092169880438326069930501188403638614170898557398112098044034670357470831783930586252055644773515280785089776813446211346357688482705829169743316180243556018396005537470163471626297718366990236535821068593753847324757866782897425618936302309270154662930324292799745285490619105238678505852783184260975045898494509754530085899260966021731706158185209659913102359865914022322401275834826613313877912204196910456840234598499772841926442873585353443157293002718603791614114724056804740297098890027402159419197781336764807261416088047442565929166412360584844458825547358533406299816031628401231920767876115820512452778934198842988515286164005913158829177950526829837905948396255132440382708774932625835842768415627190163326290563414054416409019684552442582164096599201683561964853451916379770998537688818193520437251879487398494957093603320459238514511570633132548846596471241304655010897598798657330659697691606468754869012695282271200528157191751725239424848843109790315996368805731650005312724829997785366255021709335991246708111442429261322922935687577130801437080361280475064040996340290528520286939223504597502815841473257170366165754500915940818668995209002468967623155241192095760410600024978177797782633723882117442377050814215001874364422373801616813988002066481864142988124686864353736452343638777043847868595179962740581951497768780049928563041761607374819444378561306697817923822807495370349040582288662129320900100037187565139052306610659327870836310603443858468776469153204315585422818677813221602237307316084784703798298294682661983257044159595356414462176827203038307578898274717431125964685281860865689106717663019895553972799041862030636603085587083390375163468824263584456584613774510960497427130875329241664783673827766832373613878621728464139852943369200587570232621570719453620054464054704328866466863675437953351717448445323183480537349032776922228459363553671385760588706276865694244350431031883208611607295174133273438015312888713481382799909540557934122809527657341882258513978040925902832802438510041606151958490714975870981333486865021947354334900786982363211869490834189845485823332257174386088159482689729423718493754327163535672632241204130729193041896122871094328361717488356682073887858776093096975672931433184954197792402667593952318211280378188912200745224855533002938357543889062114316550552164210369241255422237156350872662968971310125475405690166095671681498013007779477163271018547288426869827371463534735597641275619341814300362243683072869432782646949563580035156842614232001913292531658306987805386634328682115350172278898600789874539624862610429929438666161856750696856071233172149313659677348138976772411970474863525280415537840216934970253159551183202615759214564054372716741552283002845497375492467424566938020963172616326018646382164316328722782192058105666815492293199734564877891562877263725034886259587619983611885252270699105347151347741271409698882139186097504238288322625934541495861864028036409442163230291495347863687919723944343776584806526370849545528807165509332182060158375717399550996150034012985163996946815218719734293578822599134219711966570527066300079570052887047423417542190496975643817985781460182625086949113611513422970371439792979328517754985580585754065294530479821885755833935175384007416091652782313299815640103955888486680228968566122210018835239135111824009939486523585392261334417421551657316890519730711954201029749924558684098853609755884248158198065698658657147914762182251864201291392563855015980699711516099151351606356120286615435692559606705496320711422881965995140948144310549848566525510333795842780127967028970074984202740779624983179513005108373916319780682215247494400408326753895378067885972275895088142781378979202517681815950181560060960179800813124610173334329606465052772830928335076004756923982481569787481525360271276097538017987358731967906995094844198354537014866365573265149460933676154422344345143945186208489039947648256276393117014538783048275847902263279028943326675595099263391783566402124800549555595912068127782143395691293224971235384588536640586163931848122109680408145213997490359585248147765548154264026634107757821400376910954912720676054966162683072293411167153694265939040246275932694894368877300893367811327777894255346448205018923222255079381614172442630200955408309153479524699069606984835324211301353089963275747326291175656251824384751687147203902429962374379167678998635718572974923453107262285945712661506296850316374156785853955629632513985066466992312684561605904070634050685256870449867517577218028907545828922914737399125691074195307480461156950519048990094943062096311216123148680407389211710262900286185358138814740167228726131602948207669082249537106320333017024836301742727554895339067658150949200237958843170447196157042078618214971488415916731385227989782172939590388434361365014883222627089875382147179826526937483606873913899842491682299149461829019557701560441919428668665866560902025689334316889759776079276900289748610949926324897796567675316673241339054597864277074286326277974182872466417574893874772964880418211774655254776962316841103701117285362134861259236711453631517386676989876561488892773426581296902529041237614138851117331586511501863813473349862105201792718762388381063251261202790924119977539968761436053261778660183219838717851345962326593527449815265190616150954461482054604936414401616026553210166299716777129244425509741540256081451878206239214253849761593449382515947010710966078083674750970818380339733480085710433867648000065451240935303214729234002115195069845807501844854457122368040667536395323102744679054760579070417718610428349554338144116307862539896658619103715068471726978806164374995544370969194611254775612378127368983637279339010705138324304099494067320314443470019165249605751986955746701479153070488188318828686528678784592829604530647051008503704014109611465884518360070740943018957929501422103986247874651653719631172845517694473371376053961739899878933979492669899801662502567893012169605780341890743982288768170871299552318322456908415699785371855134341251990166006748810180493635148973739983192739446457939071348307724509370177511415718913698089933049887879453108535562384370825828664278443058238280395067912485870302512590482084747069922275774166016625382979596529660929886274400736931198112191879016734884832745735767362195007615930107782232174845540804282040336842335156638842068915460747411992359158535620778501876364804425009840593189707446533707254048925627852198311024247517154127361632020160238025903463364431635438789260045411047068132199876585654317895542824807119751321719130953059485523677659171036540302886894287224625718881087026959987021287789218539765256922078690583521775237970549433525218629943765247751244394009633365951484094704219781737592157858164228607713682932852315061789794900832701703152728145852517037570650865220831354768712677884603709864935109624095682047873944765657844403634222246874762296898988951279120286655936070724176877229259386406098488542383483325075444204097768744557028467499081534178358958766453751932435040468118107304754613244805490983175852062538254826471650582806943242441090581845379999522985143305185518931771265428009538786539517242346579128102303439639594652622540714046561959386623528127851658816410089764183609636593741382551625217353354845435950833110382134973950481539919576802950498402085053298946230677451549941763124008940416104565380749351185278835562947101144878639349027060280673997351239044546832410784830341686318672225497602583409690724399902782326073496732919456774331430035438828120580737399126986752099589408760460842360482553519196141162516296376181865235607673653451249906288944465524314901559355096911655198503875430802288659994606837937359473338696551281892898697510469578362553253117111153017321631038756983898168137910213950736874316396604704236976105300660005155218460687599198867219716327871718051345820132140945213582659845253358564490184248341863804726659309070890990729733628187766616483565629101230439922776256450742719423860239683053107243986416451108691800060419971017515185803771568590003964071877205228848929768896674332611432797192953176420456795756423782047818992535504979315057650907695432927882622004670645650045782053587800066440092483360849049095643670176414269421533472094476948484354845663057847945621817264643350817623049473912853906887859401317092623160599663520521237087710959588019542512587053438658877369912045278408308774606483097653183329289852973633838939172292379899151040790294911017896639769469358879947764621522111663858446204425133246799898335753955851098619037044540290967645939712150361577187627226293270657239724790387712285479895834794377496855076083626916300759179336847910849477774403525407236656573981357911201091452047363157962301997955144856333985358446043184648724477843605606509377541744979142821649260545523811183887353003901406206245613020990717587945836929527087248731101283683226949880548041699847725585576814522845852025221243606172803666641951874709649675267528454638818556405085533816990318095579638062126812325587490087774814286412868271447115135725587461645060934889904617426533263366335424230802485757288825035722251312511803236625745564535160497559316967087450574255540848722216662332549119565257832091619424008915134666179649052370636297663232385395350022852378798130244061211198146141364930745457424662946560900560307938026890340847193402438922261897063569665040634156987614870586738621670536793756957193066536184023456062219156891370599030637323244364773645852856118513852566978323915586740976235438274855357817673475608756282599805942871558795326030051848560669351633850799845084874395610795163195482640964637012230167881789265003993340850753841966531983455802067017419801134974045508441921335151148169643522450307427229422910848144415890500460114711840735718919160793140933121483320146297587847519600918691601586126811801334370707026881623004669122183159605876889536478191794549696268657648372979842915741070587872157466641831879327099749899949746622443306861413194530857102609837241062527910682263105135938761455916868438292749500565056561417418399902774969724888179306706861477570179217897986534964215424793851515105748867451934324397953769802091480198615263067217352598651095985851756064202964722200892249745868849499236744496657839335961539663927535205655012233859888411813410354989029095583333811079037835677809197422796863781229084951545073120532594571432265743127051213416072280353789560464176392185880642859429432502456676270692857731398180385388996516412682341531000826152126827649234318783087819133626389577369511556607738694280669857813823357310443336561731561880195529207598903543908590741072529898772349296343862550542787817728973662742375928659161889242546281496856933294301345267933088146617349498237412496370275779986921045593988916052813780119597743122863374242577902806265574329033952745681552708783000421004029420907661149325857191351607899681664578630869114252756213339503291177175484367583786789096622755785228640563240141776401213109301309008832089545988968258980511791885059931591109829835794756280115229333688352649719242546049558738636393862123569867099415350749217238415466065353704556096858114717094840715073128561823582120133134016478731239275828767307066702234081514485575889772917430979209785475403474090218942027384832410018368583515406033822144038783996646269632052453437338876876367879554027481357607906743297379360525803614172829080996962676348272674716744235386021570683684956362885770172885050690957044053864650287208036070619917116171127041692871225848755188560534335184807748758874716318920692932823499232563564798737788865211195613083480182146817420812378907872753491765498753956572706594302191991030918249705942889572513525292695262413252472652939109578737037853811312869361639302359704112920493672991403954977828217541623772039020476874359755404796875511595365033999361634737227258795810685488629448797407011149855098462204790529500709112054972912060666099185255077822785337744745539579892978020254186087775462547371273658783889015595188025673504460265887145707605012682625890296299878624365468696390167888305664440631338112563916354271607782079369042609030754665172100103396152868210145186098525112230750484317216176603597035594651438192620269450120126105160262761266479345502242674658625484349918658866783267731287966494417824843583044457236641545782747547223209251295280594998790191169272188698738338077076595985028627810854998171321981808264886089232356206212626592911838142921492644751388804462352716500058737096741351244043732907347060637040077121479240428385655716255362394440740874835733488234634421777275045781390464608112744228693643020729993655552671530598775003308447048394469507747531993772064909496502750255410329666972071528130175601998911492488354695874482094537006552426812291314481636730870094526634946979860236296061328499008820823094267450016364381631146077441102845929021907027091861160731124411716657980335244790473635400855232904720699437907562828629202887165166474299296247880620909607329391914552928400183810677688696626414990965933170995184398947754993970636689454616386303668684821795738802016837531761109186834905066781196069754649719171189569595183814912898270962601357307605799760917255913660456210059042666898681962517311166172014899143900699218178109793556948237403584889926688329787425561104254876666687214662210505809511458091174498394158277050346462783485541764787808788308544852249407875844873134474767074523194789673704943664490826162544385172664586635592230085316221100114651317818662929454157142946467289600619847872036056763194849633697025879763858204788380965231087460697805358326643644061734042161946097984850361551376030745706086512756419593842220832348118762134500892964617543499388337098080815511588734248407060991776231836108741153989972793327031103911006891966536387792892766769959303508917282948129018509523638037735379167129776539952739417217888615949543939733046122368144549356358566692856385216309722970887362292076298666832555161091188695268213065826025087331054462388418479921351287827952606415270762153604126543392708370701242708458609750183618287738912804396348661811291315929269689592521909953995927171710510807740823083991882263404044061816595867020136834382218518671317965952697581001048263360792634539709224469988678172163058794708599757493384044881228535698092115808017602522094791777257982009340475194202761681551766640661652508413015371835339557471792251906090545077470715524235995070203039255733821538809473586324349520641775950242510409600314651766446825145729115209919343183103256845858349244951492482899996656722558362965690451621297751694474066552723549580156912998163175516822247875904407723949833472453251904972300536794256316278595292835014716831203391727326254986644119295940706217569743153363217829213781619812687718418293599300939979408935744778435155679914115053222489558526642789409829508589237426608994702554056115299358874700322501452340073674642162713472240744489326314642686428125999128772973669902051362626387015713430846169545404503923623527804835680594580774818473238039013293019489880585218904060053480634329527050065587306426936332511549584880993957344148002715720188199989413516091073700158932607823552279911641274318935861906448200198852819540430542404423989394798383467813989119152197663919337417380282585661528746990058838747308011188606795607143398250524998604952275934173249786448189956098973035121154531668658256346586657044056199058760860910950228777972781666046098698184101302781792167387508377493983280656483486508341917262346812400719666987668505100910969005666227461102928735560183146931440032708558852232731594149885533840055692625137149153989240588531906685426137698564659865113704457733513279009185762294530791301456224979369290283079641992890331449619708414525331162452445914436556346477238545420601712869971509320747470806073376391066627907246165593742325206005058053039067389295921505185504995328918812941134405371050849191402903597010707230528940297809919601746469406387857325644997142330650768916135679656342310414827752409199724866885767651291042761286825978107949820543763348194431438440995279897182117376848839067764547432459083445886191391899920015030194391316382092521136300469928661282157632379280367108838864270015868503017563136142132169693560378507741213972532770000882107927322757435340969552564551917240932661937404030738899962697219588105440419579941047158834005496856258116070275048981671814647707109677004076940313066470117678668953475052234270981683856365380521400635581178210836356290833592682834545866676483800932903544145272320439009154746543611198391930850696362157814908686206033039523789237683363984013514345812397913933559145952764411355584997929915561043750458783678419201225117674440279284591838879823176413927568039668645533773454490560823532454528927601902879802939468925811394130557465436875106705094189843285588055381368445155142865262308029532950983047160150248750105317573409763253949836913836852476712808909388234394251724054544263759044526701977183314251710927502025876352866378560567366856580775260737080472775838083499095063736121965173189377961285260723908276536667931052835245002374073622794913943947935166623389454333781485794433071614325597210877051175639424522982273268100716317517286033612566981575097363120323037259384630998863943022423650632031851724027105319431117321761305086436137031491195335413683790607923735831665581271823797124720414622948680727668730737389923424162623236653412790908662716292860426233654937288535063879751529948119187631095058673521658909912501380855986897864347182252697567308534790091904935709855326029521428290612014491654908833853021839324491520636441272048424196391401023079966932465146150846485879308649054478713961407353978886731779964606266462162053897687703011476679193598258706722960613118755138859031372532718292538601975085244443139000715504109765888340534356466148267656106742215095830810781087474664383086398346870126153969162730663077033128867844682240797954558603189823540251278308059607245481673716684544907114819216908865379209991527780791860567982871154882197349650142343415829669696535361762736646821529324017096175067262233896749073072728025506559514163280845902366507289974261583827121357482040106678935058776352651353627208800498830768825960966580041855877870083236016581285485949365242281738724908588778093345496761728836874852113270475081173629944944697743751885685804989684411681427713977986615699215432072185376253058719710538298955543445023431816249829713841126934393878152901824978427204868861567548328412767326797337756317204722307453240448563775345009061658376316136989566832220313435111051720872291679825144893882179361241576699257869697297392930378692898272970046287277000350470775691377529620932914814177307264165699477924729741818545523965237054095102811648175347366118415962981129997995070749323789722147285073330495054473854902208064418998220837541370808236983321873151840871497197361148888238355082426030132930508045555703364483074674607862461338761074160534822677546965802964078289219298260232607801403413906386874172303871695880494854401125415682326142407217205448480229419682604070835959485715168472626669624037353889154949693172817793203019940844501330348526333147147100133027642566939525666096524274030658841960742047022715193186651122243700961180746831108629247411892634453063818856696463923139255952774062321425172102170349756851058796171387445542644688580390524277193886055282158427778376550914212119627414165570772731437048957249914437831708076505282014612967866992559701638712693789754456621272454521099044068864932892536290233973503754446173258792118531351282409907210055951999105909771941889003451027663011534320168609552510627304580985261351379360081842439342382184775727418381626897590972489259175424259613840143005936252389522036024029348863938879827850146846281285121248610585079477824820729269780055329452619117690032382983473961729662428399294546048356683624938893931421269698865542164072795897009679231903023195114548644968529596406269789301211507666671331830288191794409078147958765934297592752749822359653769505346836541590277712544558751396820654180225826224598127563819120293815623321787456840935113537204547786967235207061517984211844720991116935099217965296586483520734787641859778420690506054759463094862761349959986186425737406255533456686790391205588777851787004479408100684204537577011782412403880970080734107601226768681355220966281748862822299058409311059937117408343080377535666061874349675122380253828059273460953976727811100700427002842248573579831149847015361180319959921104553132169964019361079058729337729768568147666625939518291381354685166665935085039715609027383734131592909303394211084334250285463312249929507259790690048636325548490813703458479949706196013138630866760593429252444558871785696375787020980174563384568359335769224338165454202951313060119010670796915783329775860680287252242431828056600261735597951537262965769253750774047787124615226858198147451750011971859991322426488737106470239464405869339807754870817760922078527132629407117996052599567234288875079921697590734576239677435447226904761695939486241055362179006832765868391418053177651489746500850484269117092108938418187121775604250618458424862406451859084380235230401942622329329021552014150218917620822996004237153543211418081108286603996005934495274335397642459245729040191346523297959254276609585319182826749062475510552594512309369590231237238921932219225127655058748028419107625713398654615863925428123843137823853365345549298651033656004052755653082445224857709439288555552309933126551414701106093343165027808683436301768334013655898086404009529106129794674901669469719589848553355652451173013896396088505809137464634337462812039628974237317681666738359935350623020906563717537918686256041666578130125826767462776500674033321387930483889316665766657957367507037115502671598001945842130199409224592941789815983434045882539489920282906285154116817049079664673058059804269514257575855908271497566420100221014143380042381071568510042908720785197288743863954216467774251854682460641870085750611020715107983844804570385648643353469104087406548547083245866337809355404683951335956100123238937204071364366233293408425787789105528253499999684665246554424881202368470620562818527966149060124665301062583094769609844083265917370059415096288498592377220937300489440260110432438121910065960449799492565011046579088381932406329288854463282909889745999061327590586216507035389886376930705673125197995591062889469966979024675619606199464407392834889340013214642722752671173542771355679151265184785379537730744161057476495673372442206016798343792765720942046185331369428760196385215027802765895109582405644726446579125284533627450628999584339200820767505987149713220760829920699843988290962834327263017791144092138941661674240244353301112933748562129490652374666254574396846277217215126642352684857056155799433695958330038154857132481088803081002692280177856404009713686722383118757090575115921607457298171300716037509326179005601901537428934545136553541253972760006407653732378383910770531885550112086247980279481623440447679398521236740037210699223054543885081503467657221805213256604103132141173242534438038874237663715616893491171362111749078338888996906098082528238805767111566982522152796334736379553041664396330148772949235277127613622745181314173828529192699690639214535828518520998295180538519249881789838298660414261578188754077823618387900471036169251118500400761861757072993189660436298191580620773223188006820617229288348654652792530265902166907508153967439981088038308417489307025679326377991104281596889954189033842433136487238694395708423319124431399091883042075771667348307175346588567032448671618644973350822972677415926882588817066897946915785371928820428822403036771093100981830170436373350603358716673250805413186628539140558621974462319171282272160825111854833732860543826991189272409967552314345980163029686704861278282344105435420923380632058390763975022421577636979731978105789934557533079517516943593387115011118933890407820100306645249798077240586537709966567872114236946097456939102964699007122614860346957912596446703441158912353947307127855008239066887000165300895460581264373780229236377591428858808950521648480757752603384189123207902700207516220140602247380847176980547596351363949690293603461607149998998777810604617526920136753872815895420986849790740630609778004328299064857876135215892843205813745368316885785473012870688011378197403010036644390254456255717549039670390690004536130775882070374314112464831971093852717664159154159101891282495293453014685410194511093866034029656282520634534570933240662741297299364164302023574022160618672348277498527155031295895820094133124637858104635279837775762568708800236694122201978758176738214925120701198801871261477891254518251263678470620963848278712715182521751214924215011815794687497408301471160884464834759457341989268390225107064854827581825338138596000643608326080652091908414809750494393002573024220202917373505429236366326968638926108167049798764890544623263317369564139590740529607425749220849971250533653586817552391611664658668660462074331287240627586884943235357001300383907750118511514110453424196319653744282844492800860112044717121592577888971715581032655369991086781515823569621853756702760685833410610450427385601446623771897222021271026055515523984843039559811216133770503890900328127359839107668867100729459605246044961313709724729543659498234559958657089885162594997287797600510621741805072023585389310548715312083218786260948103728745503183294120712459580296275599786493762488700468168797515301035813856032244054182236886810743561442164480727545249184756971052310384397100089755568310923466930815780589126790340677650798298110945189139052992156500301916349263679658312710245185571094583775407612790101867480450390458354040269642618872439314934656972162956159778098812068695558716061711244765745014437730793325448839821034304414237347486170078863224252419838728982668004056038190758198650760932350720972244191852448561603771055724644799509902747703790758660050274143871016422764866803068085823471802579464121575872770919821000241635864953737943869800157459187967920416303402147401817939210469991362876613548731587583219901383558288610931668893687997702525984061904992383591253801565105624969741885942824626299661054526723701338588064447444880958481538753119533988115180793113443360332699917400015245043199896674986088726849410492737077784381585883830270818160681468129808716265063133494713891407346433455658487116026910508433144687352036352709628006306540653140968717656437537624496139056355949198450459772113180596520572664285115289120832267780115145177265235764841392061068648015653050732561481736606247490463591224035333426307996987597781171475042212950409452047584227039955008431992416575891666046301657413606185399560942904055927563025624106434538439320866893101007244564562881875141937306731265101707269649138911080647292847292118054178452448054057422811893120132743373525808332176644134889763036523078090180561162631051974239762324944677066808876625171551433551114267106701051587428649284959327050605071322442792654846041187751752198614435120611463847880142698575405915873806782074663367963741535190283127835485725187962093033301041367959549587800619367166288884409006247285997413083097391801114568044933058113472713364779859341412733986969283576133060192923425806664450974676320230121749718187886170613279508959614007977478994343089096913820455131017777539477936935455206185585176230446604737656420520879032087635745342890872199809485034649144565030748291375227839861077171896083430848762400386978727569721197236682301723431819191159935742786687017299280397422666656813932819441184513075112894330658848418217509348067108236783592585383267473083884086009990564210829824091296813278678475208091619778756198896193985521710277927653579839380049891894282422967781127961944421427193721543685800026103082723366492670667148492752781827139551069492265481556520980190702265948476020232364755025027971200986984828636576445728243502101515366715881955646684240944783295898449914133572373865484331632469552310050801283093091631543314592493326593924805208212789904725924887995405030447352746854870886386113861172625061968638488174681170423251602567347598977026401630542555218542813938927122317340772569908152151190289063248932722703932925049474035189179795539170515117513831953483253307121830556945080916771067402750120768292799573463695833196627197749643813473667759565863021171317179105362678319176281109209513335385920080898116235282459615353494066081763413579728604797269930209418217299482730409001083827936267874877003010431540889651033543664166949214663369763595178896571622746597073692661069665537477560732245546753253130004676775013054815558478686746371436819694332865106855455125350072076707213696251234116609715767369964998649174647710882951304256038001662430288623549338375623950581533602588888487866773241796979833704065092199872515628143064222179254491769651982825950576820724888286269013227971765379090176419283250196196734747417733389943100245455401736546751034691830644639131796457857087181753277202865850716453944951520266697030761967892204014762359740180900768678821429268093675961884151636631116882417476284147729157445531181416740104037559479752334800726623982368696041489425207064306610531778552278203790872160805284911337691694804474539495673128721159758489665110676314763101610042526520249886903332402558216350703904170528123433673446324660998543300912062280475087144193716237475782841382960471067958053493987875321972801350611547087974577060470875431019469351742676195627398432687527165595121883560466097645719031278616809647643298587367631122901294095160034624720460044973619554264101780251261938026671931494368446973422148328882684008221858859938137420558687388673977118371975660648549941509964819879459313065393444214010341853017167414933459804424059623420093352592424166163274415868470022019052617525190981754338784324385256696666479637381175951020081421199657832445003492098359030319760285027345937655137272913761487853667103772113518435085565066084497359139254970879032048124989761365230014806695200032978730561879327779461687579917411620899915280529084552515623627608607317927254411436982223253161787158161582547068011705417676786257763451068401286378712193747427640491457485494400503629085444736619922721714416551455676373671052499986898717797095536372006979500722854790811476503207795187833726568545498484362529760636041626582308618827182482362546323135217764259664132517953003508854257071965204783176024338722110217196953045370909608557338146879774710735347259889528305338423253039117871155605877493614113788468197882641495375754903849437386582708734151833864368846318296019838196082333273277565305227020728870144348016211429477222897582942565434570458036934940658637831514858672534741042275663252085153657549743478459092880353562974829189643643144282786310052116906498814414924402472715600240554064596040495944652481498996334036843164559757737243379198152782680802635635817560294393622614099881259962358488409596155681658229488778531863455252771872114890572792192657864637612736923190158325227002080731977775514985337900522392217478945782462128095618018073798038760329335888048145280606353892556811289250115514632271713173286263504408506932946718609564945851717815163915805283629641144234162979540067796649778499080716961860344325930313378612152892047140146225891226374954059509223780843317623518870498529304891168450518507696521096015526861599141918349157860813770403434763600160632351264519077646775123568519057018939011377429148012886538778217721207880712053861527019435115568837484529701698447367047732066780198123965806792607908182735281022474569371174053396896785515028229902507619057390082455581821421654506571901788703181590758283285061899592060517055488499601342404924266934978745068450717347223797065061558822792871049452038689264584398168827524515987989720761287654472312265839976951829681310103432860834921217809580332063928034967198469525460333681926517327749129513442692943786009430259268917159436356218971870377201816635248783275573052399226254628584222192254435338192746525894018813826566814289162174061143544468525754217786238192571531792044888083875168018067220937040106355622376906091323650489161932790672507967789222258660802571199101367909774653352632483793263795460772377910745046260404840620128299901590735214501055178455817967489697094651738980984876256845454645750020040247085901699610000648984964516829211633300994889758073779231292336318403122010881629074016767613957221296871787738193570404517580530774334499534603379740536299126099148617584148299950701734726265625813688525327716717231982354818123390735272902458491143762325937265901033274428991740600124163219100053416536617430388838526855454930661687150775493235380708066684873456677467376365528496303454018537460564929496222813472401005843270730426086556295660334307617347609516716712522723969455798709188944370408339675159557563859088577534724327493837719571675594886876454325224070638883012421407908386574752985263957926883958946229448920068166194099114398087905066957620134016748914264892534919862585519867931922303717472424059799936505471875482895689277428585840085249545128971233467024884155523455933358028103325840187518062461181228394663736639586175408264906827656717526577705300487189177277556668135061667126522489679306827595900691206841775974308533780349076843720361165760193265874710929933877064729477998038549096411964064162990837226111512402362010014597262720380110317752005635332428045451595875177341455980940474526883144409246860898432174573789287920239941009604643939976345425407367963407580240042324573292554857193288231235982252962382605129944624901723576927262327793604453323664859495875498787888990087648103539920798774656957334054199440436854479119462486033447543493564394425965872232725114058994276967151473395632891053804653442383920733444795546643735125170215524833388757376807546314793681140581024019822541883687099656380026216095320613714203982241338833370301168857169205532131204502421721575314607705774374921157909413260303363889104057286013432931877005478834131587396427462879739050221102152929799831015514627393939237859267973121007705625339855659175079826862156567151874516479115101052219643479643220076094120162459988839461880326932072486083052124662787736782673257093494166823617299607653047870292115295188217570059243275016946606651803848456557770279011409061563814520299190246290220655052822355308570104597158590882171770537330930282616905124549331935141913556515484992190566600043878166457787184744575602912683390679177674291771456165434034000246276736266895955669277172087451060006190627704744998725135642946989106359039160072537015729330467360453074150612931556353989159863759505231818133333879033086203082162233284602592302193323108141672932301398216585407745689435498811648130694987140214180424514260570269376331653412797382472212495309650535848403795450720867873537977244125512457565200871447479422267036301476218683955777612114463902004038437315358988709073572785063302882323129872370321199268857305824511890053754297921891864347200921523395042149151145795589352565731922961579457686266805689235837393594490393250021328900151837139373521226332196631807437865844701477628805138911561771179195862517498749692595909918468365889013720365210278178555371918842909589942746673418562234272061788873190248200213808925200747283720028271449711794372758738904030311560491014513631175482399595215367388531341703447740896587768438790272318680353389409279559535317615130031431296229777816135810633515303513243285279714066539230157494642837648691118920688046129537060852283911806068396903383709336769413280861797254783953658842370893087687013531533375346206517213664874078245168780294861949721256063653397370004849738099646706249901628744525520608553000414428952310193994468049930904706877364578658543505168369001327167945104767252316686263632999309842974220229884086466929016087428017902949250191709685250966119766844113878621562255539162390477314808070202227104394532646697869336442520802645971300725519946913612201926405585166050839397346250676849479583878875999075322590263743987415271320990681291276970829039644866160590876164521172975840281695808270709114475609331292507575800530707086076682021117105206358192009356406940966490412090279681168257285523055509880444310484769511339741481321419329982553234552239678315032826863404791454669986897190937774439192837551898615721180756566527540624504554762407185287449241619047392133789836963383791133556751084514871501671793334885349314895198779211872833025850059922917487524742686630022964140428525459524093237078134765075694621353294876635693881744546102631937464491438437969224968082672184856696834480238050515105465519567203528337999893445366033785145819347850546792775379131060730116049155161302925045095477155228507490770872803930760938995118152659963225192612762671462418453916669564769755098459679547436826938901177436137626805062963635406111510613536390366972833887496618187259111449305792073289834833193566316810160052272444043503482061220709295125766215149633755670649458724923058487078590793928062927449323414000841535406361075147595152126440580424895376869172582817072711498013084245790862271240729906478736520498817076564941719821903458964685250341873861771197907993917837807344321365213072079964182252330099703017990512056629848239554578273283118819359027961868369848376185314740842084565517862860126668126740655884230299816827266296800218092880638444785436993108428066763342939040913818574056070062529885480538758282569145570625126282642932612476011474122212562620189930796403592575661297304804223291436864477301032323846829030832234727702630210448608547367086259243285234580235410949932047445278852569495943554543851960418660895508203994249754494899312593871655378323588986068621654049549918800664893846368741168127393331425575715799471600435752982214268916608904895833238901615630468965029941435532331926289684989490499708548108330859030802021971609675355024612093091964530375053251109603540199843090412526868001012292606639789705856939098297121700159687272030215467243936755523234840082947034839822303788749211880248259869344451528980979608823625958417424316883539269785414438484431387903907694810821970624477799497695681949001010476540319387582672502666582562128326219639595004021483081120671984992243773030399265709159305021338173649651533075605041801909038411910709618474883765148714028669600836457530437458060219577557895484068849220541946004402596350472113785378990360976231668713423041931509244607323202727472118021728931082799672758882529316630329292445839364588140009941580674155695903190407877848383534610532019492514916566800740073764695678136837443883838763155017639173902538799165142468692200317069254729840493555448638715539227823087837570425716059976025661498279850384391476400494579102934048553864616745257968311613732429621026655458226268986915342161896620627003685770928323239407275723946344734004135593729215364369131240823225599148375813503117580594914071537454212706653463761306422353941387477471977226713994844370363960582876993751557326923160152992279538891810221343463471120946409134187498411445817523555026847958138994005190292026109123565661393993851433151189922778926710672494704359581899774552250087882901478058277122706211174123850389310361045799162233180102001521187498320361734458999862286217409212546010772266056058415156695094032752186477996390089493334074083164712909799164495753654047732632566405458729545717423600679778033934309702806161614061307657878652937339583904249503109270659987569742966006290179866823462788490686530373383608300255513321679325574172059259323526444671502742843764696628017453406878427524147614083478719262382638105073072940964303484289345347951361623000461617689853954908759220353901131500580738924704811954221876436717464936194768725598357743899079609263133561536629973774002318494712869435860896442672801416590496439937366220996815822119927212484247909113944376759901425998174495489762835297902289460086226532754840129527355222905837025878307008115999926751469638954962095237690616379450514766252938248301279230226931698654613050583006575191238571234919793390192764388799604702803134971029823325128487684366760534107240005124048256853581198262901038839635941172224607065160520973368413987419349306906803144778299125089487550098173455290337506238682824666872393210271255598922811754118058571820500399864058604172836151332754256467905499942443743961097795250529707153656195666550279231748275593779001628615330470154258874163583283998159707973785654072250407814633726348145829516899590855872772240231634948418160647469486165502444317444236328604969797332992600060746987707509284789284805261343520576696499712929198889445241050061439575119392733780189956911831881404167991726911821080460873312917088638068449705849648715049395284916125977506937051044641068819658597121760473874956735004920076480472288010377824611628121115402177179257761108386755758432664795096885306393345113892068590449038771018814930614419814847301867638920369181114755289375997432487092746552190994298779645296405370438226161284170313643807559453363448113508539702021992973755515255818235371768245123623365256093295377231441093045934649264193019427583523382199927500062449660439923998442405539593825698341197564140303692465328105944182467976563286157193726050847229145321231244645127339509785226365503521691048417388317817872063835842375542569642894167956614415722514740905260353126830068832703950793467520627890136927536885862440751553702081777914720270172084309698686308691604431273549437109051435075330899320030307633540729473136343223250703630189844862181947703398744571580398543168721337124021833176802205649271769950619702026294050312539147115630167147530598397388614455480783761152781007104805712848255302090813680906906791005681113960332379432722177560204506122664308661790762032567977054384609300159131698343837045023655469799390749403711957723715428318347684370811421934571030606414553018991935966167789692840980045351699420281461481148385085012867481473130192802603339996425729877383137064781501023639637161296942159972528197784023373494495090263581097058482699403625651331354715371004053205399167699346549387874909875033585880760792112300809347185294423289902339553599223308918775107393646474706145352034786098850317290316727147849031824207357741407053199602098296388710075517854972715262470014367533403592015572839740080340159279866662561763456487439642257224283913989431495977930477481169668090289042314022966478424049968529455814426146177491410661628311197450771075776900208426303177281552899631615384362910885311116106145220433685792855689005029308669812463000769407391797285838499256000307981547176246826961075999480878626496860969815447556259572096766388780762726618543832151572207163277267352215766374591778038331145989538783157284551920403091255102408905542398371003150409989754927415344947593039349725632595676514354770914124928298129899002807577563573210066415046209563767515551109916033441825311943829492891340165926495095805606791020057538945350873696501620570234000393806063916055430009834393526658128874306716386052939692372970315301740154855176551985815689063844118214266813364467402297398870891052669209559184892803516529092326571008388540327253603599741139114916755077565164936892492020862436417911849976290967615339826255440064802583012912225561114164934244307613662022521816958742969631585928666959683307558815979045255525796252482447385288171151252725035812644699525665748756395513509823627783018608114918938477619917380994452009832409939213568417709847586296281330174395888706225702489042263398904201983355053047585714019533925893880982857585945337324030945522592470276235193058747704998806291047451069602817356366281437838812181323013614215711761633013562208667154299960192008838176153352369712707511123971309879406293600303748393568169686641259492194543746089266078730867914922059436865685987604964466089528101981667694166360085846257501459749609333761974202947942256563243102712254745623881532860544412390425987893772612361768987010830425040848928879107162259475390458530548344358257829881400704824199360100331161957295365071918510295013125363874197827973495667034236390178395490244767233152284434038513389793603115310231352219173022098349832158292961489770341002011323469985718469079640802143535304833621020843784855975776825690977234955647432786192293481325211474158816427889109187632818865234373667554027712697716890013022208111365713578039097094953091787880972571866155904632465256466892673622986527727686940807364310847888935594545649735639474289138399171643176282565718499844904241519031805728832497010681452671357120967476435786988281779637901705866014059399954038254326685441954008223735858980534983059167743777796305543046832209328159986067843955842880367504441136956625766337681502929704021806103342898909669906489936261164535045474051352459071297864370926354077910450951578001553520562653130175851480067540898062101562581820869651461908903066734576980292509703623365840555422338496985892640742714211711475148640130256602551239688171309715047330100598148886939880796965644791730672046209059946015515839564707341687331937549160131784625388774497562469662509298388906916942696422441459889514685320295809712539229822344488177088702108197973568184762288849027216226272260666503515386840322472140007982461335832794478544778112472617760643596208672860896108274129573450851364498924335421841651189169375721981641225525012962644059613539801061075829229109958682148249293651526167281756646474857963054216810427072632574739221325026291398752334569403774292906360844299924539704154251314852819965791607151023682749477046530469133465535460146969153134573731775815976246929489973577511612419451951901216534982659533843173116877856639048643646379149365544923900488276920820293963502875760725113591722467008176273732895019778640008220305936151525000960111213219659499570132020970250177375060906217813074644055136870269264290725599388070729188714209350314066944126867185004665388926753262895831579253226913045689158878205778347908245915607438166542155873270863735827717340925700999885180904639751740183783593505116078689023534474756718173180772117122525324351685764804427680227682401518250537964335463105745643094556477090173511168558257907326945928497322654232104935859639219046371282973689669486405141531104759350387055451990340240164324640264339855613234912916495683233806890216500522508854366240408678990769419309335040153368880926666984549068513129778894816551781449354837566710038097353866640609981001923569153341658826574006463825110787324240637854434927587947092345733021212765927184595963548263190896494598036219893779030876528508648888331302082662649540506780008141476314140340528265664595921516272276561877914963116192615412549642665133860690361661358672860395657215165684828435077434675855836165600743305537717183289752092318784965638570839049532204573172357726417500252840747619979625791012733668339527844245513421421005504562673607832673619027531760040386965855103260648968963776060763988075457135638100099687715199869095987673047399086762523879053932778661510224459509596761480970123160640788137557498226889668663269431152341341763004811999131771686274778824497483493645885205456881408731948770823772010224262661072904194989254659296084834621102968901459213906844166901345194300923072878432912076223611470285782614166514011623825846903367988256589998195810082092793766869046109458321243909176495624729368012921174581261875454392690257275817899422947565167953927012282938831081823326528346417837113767255565091157666772808364820380233755234582886565874772011260027787508103081681865221963968649826891937997054515701110820683944159934647168743508457952233763292005623171588366529649552572837671046769050257120296322481542328333118020191932020341257783904309734557985982918028414716415176266053506740271577179511607659876590629621542076930244936471305404374990818814676556338236665016582280506339619412926083566040407257716326157155177268329202004988493784980669484004516725139433788671631261758999879209439400133329387472090439576509258177144661849991448804734611324262638719826822637735010375406088578380437438667412755393912553421470617800552556754491470885578616129204575306098771404768306485693820060156623689618875107377193618655644124241565940778176827399349463183179115045585073145178443390971635860381918632230599508441218214609455061073807607861262301963796398772002229898268141812149832382736557020106579198566108474253293986670617218173551470381386526717401895227920580208521900401302483601167874238360318112997028323949432397662662968129364781066329762114923569639225880541057562833301840127365163148029479196795050559352622211790241151428424123288992989134515126278998330007540151399764895712032912133500889843427194212564966727238842393315271844137522302316158198334198959479378250771444169977020123593530632133112766515863090854216777111453180291448226024907466309607552318795601984141416156718954641546680309728575575600584146371064493802990876812368407811659783394278029769911819383847229110526848405854710089219876454543642491661945963875104674918942755429427473510281823054861979629022302248416601861491928723851213778639439974678986886654589886285561686838425062580952488471886556086114841288343190528358502376138803071069791693430174400626337871631348657865354799082098799509972019082551924902445395049043874895028285809915244271273546500474798099073202405677587767955861484611463443041408087087461444582956567730895957826285881460693457638070470696482155362952910490287725894070426033934254944640608038514738334872191466407541278785485009895045685610801553352541278564644707104721107380464844705159481602095093419172857663560853319719079317764382506539342617661004336905258281801759969257363049433202191419128461245490759242252522313145560795887192905910246389706202989624928542012951433154100466754821615943821309778753129914024657382387562025489153750935053395345476200113379459774860847934627759944497086403043630139769858863932059117225811234664996800848192160044101227193005948313338437978262955247546316938047201573457913603812395211052229318733690436695116601146393474240873766568589800942143366120790208698473099890455660094206632764690523733445705076427973840537468470400530202193688883709551624295028775126304931592343264451142271638943695559722191346057089084780274367916351010859717067336966824560481806841034369869104821836830563476934421292580252005457969723731422821306034111581493829023997332625745363611349165406241820830314508780220638678419766643120377582630647954619761892800258396222268660018409557849892472303811465572185147611263466177489428401762044196448262612220409804024601988984366255093943470919411211728620798571782361450725786607786430215130511405768223048376204187139661165325080057782452904259462918884819023992907489564479209411065391033412318632660196036657536360460621218617414753608461857189912595578399456184330704930753586343720442393841669398163925901826518401592589447301699701207905595530913434493003150093421714863089307474410701225504830225455568112251269959529928588260106806216049842282454174779317601016805306793835557970947893804959396847760157311662288610403804027949129876969632194999849768280846438938982102183178341703186966924677850292337492667418763873589177977872167047968061375560018124090404698612498772951817909674000624149828859441816305623845610771377175958269160827146195564797607277415348137030295471796875044775117247573766522887080105513469017457373051086237754253226439534322113523074966221015934859435250085244025611916543092905079263797563896504894556320501361496990748108156785382905426468384273696269025901010585343127064706721476593514119355117101563120361901275102937481322012129361151801481051636270234716140965241986462906025774172213911728564621307483912213206689439106465793236151096581803947338811386790062096932998168342990053792719011111936325173792182177249477564396861008983941834795618253376811580575709399315528948753530670879989162409410814573670702594177913455463487012735057121399947914972434201113160617568028514362524814841687142879992343080896010448025920951737558044775009614017426555288980990527236497499018952321865108864512329621958157539198546697526992733930512209275014944333671294963101957807193964246541288812100232195500095928475245933017399505971315516071670110656186336137625907595147953266908542192884198433099440532692761868972222508099937547623142190986140526091566827415477939665433879919015329250213632219235464869845882315964728244262973508130798128308857541700076163018198098376356381963911387866511164266646143879918066864892282509009709539899652427524305401190495168208078941364641510430037815372128303830404630864286144044479888452342816688433558024934083818057032343383133421592392702237099545702757744685159554064875567875752793550040064599603733504182745326995358712500377133021007815356770709903799603577547219953506611063966308544557257643424576966949385527432482414939307142739681326075649088600464393487448808008776342339633578073710803297007252899119535380653227424540441055955579737880745213176212399255001999868900979988792248084241433154773124133085547563382785850410789217845310191731293395810879517841896056439796688522216658364364280661214599147862521286054210422691224594577432410840406544055232719832797893127033713882584539514795519374624754499426484807420794216751685249027338920409720512899413818436933514998435651711532095829564892544669769152221890105543118805461161073183237369888572106707805992573987919600908055989027575608990005940904485127855691977114236764486210778926701678232054535048587872797651944337805267560127193021893930650385185394294729414658387219251389227252104891738967296554972590121101258354627180797160804276442096807914714215528263814148786144637387314332133477723052239027662374079593557140471913753972241055633862369200594564601506217929130467482331835133531799880565639985585730994406697110205830344500401776902287985258276013966145208827819370540979718736337017619249481679072657302185216233831212358666809912271505056992442680892963100370524152791940854094084001840921927403545736630682385393101520898934076514915576216028163820674842055627501729287837181744647383811405057697376447172019130496750360702232266960437192806220537953010681005787881872065441588567926012223021595291606359718031009605549536080458969494067797670304256275135362406702785840873942778904027445873695187507851326338091431559132349418035001017575397919381623564499680584738522558616307554530625981877861512453410586118499650361319252063047980711114848432886760133394274054495653655531648062708236893685262105171805469339610277572691323943659017974253978169521626994063530188792553460312833494998297708284987112298999055194158148749352168848385082573971816002387936769709186927568280784482855723723422557016217049916919379495128998850358110643281557399366133068043483569877551028802033454361678331278685597828788586344280251036316062659006574722340530116571885868865857898386291596504173204378220921138932733194964689704569862605393762279323256455227935322126168102205231571958765489197121586427323916992860008123868601316544600715935623403477886633497312546210700578239948661323646277098256041603931030401025029948230874933209969483535433944180581225737725895759178682092665804635633345760377430497004913088672163691314817836492029070616099418335920262001340898405872657854858814468348639014332858722977285450458595035722626301893987497564579236890799174597945681636292591473589781632040249516439822622232784602212259205551434312086591471224203190135920190312854474506733255059398624949426066354037366700944113804557576037977177127404188289252666411835911222491730465043730763526734737304265444374618987448788053376105640974786400511527319575241018000910285323555454483326155956574775446696439372836136068222036937693441155054896042241493028318051358073943015587582294253455818723051443820996434369791653533183551839337392446265291954066174529927127167593253496107215902575956960749100096381758984781090748035454774636579595891022124903472417056372554382845330291781179416519293605388425849883387974662805071376412208854535289068813787779181315295670958998712184824987655089107334206235286669952828142159439086560910808512964961265322234931730705491943791601563229419554226603355735417784040491911849729161947703525414820247129102933423324514709255316912551854339485971134558887704189928150840813419171646319165792233381201447237286586028535663356613949869748295966441832576564927870978538370920156293822684260751924114274468677755908554413628905570451406217267984453836280595037586647758452458039873374608636076451201049469006943417229633726684123491814335231346173572639556761224834633023618620789467635932765428242001077131964708862510257598363916984845823222805455921118036401155760174116802479800614327333179244190618944476480277535292415463730963186279576492504626819741713723913993824425852022708173240167090449745547857265613458830765274241660862429156297874044478279264988748146857654120435179776318226692298910831079392003650375415313117063731995766659181202767704681607521667129620423994865827101562121205339176550465416997801796582702049584074844982674218302728672913968554120226601533507749071662362602994908606344278470738673554500616163662255310185748596001651104579367406801705687526414465680103573176999782471949537297773754796732182045175584204191252140815748938103968302019367044116482405235946535839409871223700799054813841567869271172858879447764062932596291280802677605735732549099176653553577280459794424608054438359125055336238177912153353822800282805185085795205228448509330614507790152051254436174341088187572197485303858062901863912150742928461802614066625079187630107702240776282330064146454888845254743808837792559808311347989993547483253795988682075719228401171194289083978714693700698324482506766334399738377717688850070402308035956063946831559703002465476492130591041065240235098419230143884646722503619440633415738913744735308080513778184436393590230986092381137737420993343068774896436046955757145450413343580970790081721741953657793990140074322355328444818554927171636393148857322085650097043196213195695313454969892364124613826917365223217894789318562350754200030259779404618816542329611177809216252948964842204058526710953962607823293372851232618171553605314707018920161699792926645103308465165511602053584226616512839882998334861469989485636502892780022821770872140413784727152312906792487286617711526407490631022883542617433714143700249720604166853540363218495067831944905453787128969697905200810825398509189958627367609033991168486573641514249950979759735992817298026757546825249478489487266915363690503111007699134536505035792238324305579118276433058995408267142817635843879008992031056049840021983355355168340367441987150693657054914294705990080177713960151125884266696180425366068105234017466926901723585955573008923813245646943278932238980961350545579494950666616034070993488083158004035909649878980960229033740075519816963309714774729785575002457004412260942502789565791928193514749419173214983197145974278980835947308102917661235567589228571346362397466660127593591948030643437044546726966749907571190420232273114737792257831755513830131349561072202907084660374971560582115447160456822752680898541539023350053037270508257107122722289642637150153938431397436573885128635964627276656302863553434566502110094995590517192925712708921054762812389966921183299662736212051818419175827152765428072211875886173727201450599119246907359776202073223511892293479234527748588126841259527829366986641012487834009119208057310039133584645711531143643510073720396662710161106763320559282844686630547027953997250493681040887866709635805824937225212406207042149159206148520990233424140929037431350713155853975424940257622698588594164401918286076516259482140510181969265681651172416262265425096479036639220223268554132073972565146455346357680924220383876189770287627190454412145753516185028535664380926292189842030445789951325996223428996226218227512620482038361693367239089763112585816110374758422556538301061997857094629063157285206864721263648716747767594225450771569757520839645471493269726078002373248327407547424962067057330577309075798035642509899405849358992846487012633373893322924153887576987139498985674770612887430856098326574838830251753739223851724341390729131234749867724501382171370562675699970455633855416257815868507678735918250676157132935859456672520834430382536513042597492039782505640672164823112809974533098744866906012345614746105340128842333659940024626232760981163437127798343111655399368836390347628152072575753208628861274064217270884284104790870064958817907711916045023205028189570480936418772349715909759669651671653723344365908255255413310252458587645838459424714486317969957672687840308494308325231510925507849085798296890949021581912686547376456855566659438898890323713280018431099331800918803090922897611736269620767260727548986703119239751942103981179748728606922731671654014637538390130654335176115155307557616071550606365562985767735002439299812113836945819123565042195124985466551712170757320532287811089074836822779091334980251748842639129350925179982992446687503970964440255347796335756538431224874719738679729243062140301447748865480780835042353777640816799109116109703833072167074217056683736072239621476068919674746716175924068240889766661953391764991057262489666461044259953013955399240239797010451201464221970009274190380334886068853188203038017339465076111038591940542658986842468640980239189230391417047355045222202679248270248990798920358736719643727650065695160240632555792544593855120990157861013958187838366314266951261391987996260937236570535629246980942805996604733126355900907388382287030868017832000970191183282267216446898510182005836264823578857953531821084584209775369427426317806024122107772886361209446530912421025897588817372514856764144507564374873698026918858653761542775550257341339565939235694889444283714571860671823270846932444761552151685280198527848463530732737543976557337394866082309419320447886196671070865267162041842137548980888147883285072171584412086067547643908213134552213094168227071234339201978415258939343930892500761753093718593275204785043610274611074774729214482988164951997108213858678132797239687392978366346252336858182166961816631618518277634879477146186414086782713556120366439317721007388876194981149497073294270262264728571443730803833955389549198426837363811279661128112611182340850859385043032604422084129091451427137804413801240331921523609009488879208710498887084372117469616527593072132717242679598437316179793762085290652555740549014590715191277481613066056038371169756446695732819233551227579413523543762908111249013790521452464779683763776696842540713517770358624132166754363036776231668764713487913209134397286032712197952490335444047342099065734067253106278470313150353588215863915095126920773286093934246262948214633982620785728124882807154007827255059618536148908420394846262093770878273532947268639076907459034351828429607540187880617416090979314210500107491028055196859489584935879880199906452573295698148213524796524381908716475230095005843611829248934736083593953430136050489682197994897074023899053095830993583712013260787877187029303843386813126414724384305527141752616334607602104681235940661288122782420646404339841898578224875508997708177353254209765428437081254616070864456461381227140753630537442686464414545093190590284763523262227710699753703786993749920249400961725918371014338487753241658127935792608335406667859754539674955740258711410829438551036416736869745625842810668543881172033277077823431127495311289701794490254049475548496761904599436912222509364517155099793098290514443796401817376709135204112467491526286561397043141026208678465842508828960037890998169231831334580898991146154073649110019912080266904288685413964162438453008606950342072323877365447099699043132179523425458484615134658400287743279645257804901398074555810312595817244089590422716513662063934385449595625302325048592506746438059210124726460068538335545639129456639966565190755700631046928646802487012530417378950127481343613093464074459480627736412602214481700921507364992282000777225402201404147650938639278773439708635054263103086492215208696227894615929136217226501309340949122685048610131304521566253104840557707677009436037556248726271260056314196642916423846786890134317386684893871126330675804408056738224136884799795151782419422689731007851118341397021132061002741020348415234261628699982394226015177437850611334198453736279152586845521558032495149922642291410646300084020745581553254644493048155558733104900543170575644110235461351679342783557704769197311962673835458034545643318011411375707923498902356234340175521485148382807139101492132291829627465386465681621498651525046733756764426276271009927201692966327564067045804582306884746271624814382205309142937339114227212026381185642374003389871714277062677847994088824256649106934708429194781895370519572089857432663712173325328737562909513612616277973397916464901067032444000256117382624394696862886331972868834475131515153345419838414149015252269576038897327995779301328635753032241825073279492698717978426543734434519907823240977972769618409720745402511550033510647780130741215141611620641868986721445171074783325386844266221498168072030352023084336712181104159482815883014493297199536514818409540872857892846648725158563730833352802058361913041516256807370057422507732837196439503618108301675361818614922364851701911801038248878897652741757730136352334966654847788993554961441220627859033819937814672316731035387572377051430337215218658935061784362472040765877995161425281270730702992764105253591354452312672706664951833957748612083948572540114299386584290319932640751095544627374809784295170348882332877877834425488196050876706867985371905417922279474885442187850215790988936867987418996823026490576090553953703761718623890796388773746194966810799567526009720727623665575620752950249664091345591216532330244076944776694777120296738336322530731977961327699794729262295036739536969264580998286181305629952207698893997198529399478129916760936135821090791961637899274408023900185955274274966321459320422558826870207352514443878292399444557308289828142946137088474201430742955989039272432345056774909067652946960847419062288069627583711135621539828274582383784532971486876230280461880230872051242237662904333070886722109465382479022050799807275493668693398804776955469946347626648125872184718352295231753536065886249213711282563012480518070013137609083070015764407660595903501895363445269662700785012928828001566780440159205379412882165327670834491940699981564492556951490963917587051884356954132652750136875677629667544336543597486049800166954523632706507095711737431456660374019681053985333573058017086136370969096705398933634113201787433722790272535045359904943630978802214757544019462349388117409407661834451020054835330397173280823607505886806310606036905362571829933053728575289839390038946351966054921122909138363343798341288007490847461006020697976735876489546094740730863937412942338338435069936183909836831795625683198539024577381391724073115948219892437732831507491458877095973108725029378458450148312319263281868425411487541109558845487181405297663374526531466775827189632565022043721372942944950778183873835090251469108998784610004739352008139240577909386301723416822803433867253178201220031608220906345715712391605699299847380584623460139221471481622147905742998062909245682709165855016999839730650009591439664927860766414560275895941239222843623689488447639890823725547559234225148395995519464568841417374148252184790144716020548621068123007332331567576610481231567881041192568919284950759017358450958402371777010925425854181868421544894583367552956417725256892406868005097960691638910039709795082628057249535372025620910667705176040559222249581637368350147890378550701422793426554860718770447368934864440336091667278486407305131147367701815134494240988053047268481810155530651603973943660147899302494509751008231869930793242483427852102764943035091734836677771039167925038400610431478781315700652182200465165480550962622296289156304915437010633411319863360994935596952799723760700370768030618588900148244381239754170226663421750297877373006618675086957990738017929932229343141377186338959602176306546748037207060841261276990546137364853416291543936512170714840828079647876411830376139526661154772404140742517264968437089238371547916223842982278459094636883813992616100571789897187788590784830431989871536672038334685267566399361458555384240756063752179012250277872428307120827669864651158081495204975889899417101512688180461339530134274484404772587177626134847852406316349355247967679672304118178674793630536218634105715800996489855504923674159055349980505877015883741823836033657438980475140446489115336707738676549888033490598118325004081703425450360741778742893107013102312414074222167140908585700260575990140151868784526484841898816852964142498850768447498268938847845930128170616864846347131647198991251840319392727358602269446747047831333979758628482108680714425827307858860928493800765332728233040469489647244879989370735865739196393978382308361807282375364179235652958358640660373676479427587979280882606186924040482818203483616958453146016460544149692184843492039810727828743127131643370115012716415325297318657630042647574326112338987939134165187479482715787610363040722110648121450996604329987707622776469198287444724674849019195060628042761874217540345589622198208375166301601840181991139106676671429708099745193749015917800023697237667750439671952981291945572155698812935959108903615761523107693682315446285940725852372482184041264392786928706042914980738058320430729068956149731333985913151151274984166588062399772808206384828275266576873480163339943632586732169351538580726105780271057050317377319684002637197627876656392223041484181638615659852042557941698212376501632161932768158499348158217131346237388452637715084933239712705845147442155832297613548062256588468801950036996617023276051376571926199546585060184443279331924922217123861489511284393854035657004598077308466404476767132051125941022628245578391685290950134722098598801378979317307322535237041890865343332471850329830346319631095712245900112494853942496611424728350707622705708706585138660229755650969142715732851683219937218666619085252520357687307125662828422049542895357836355738354953376093053564795570544740445466337027198949371764127340100439068178356750208626809918505665350774623779949715312351380999599021260472208156231499027334506356812370860016896318345300916313973144526271593410828693693632635177224903686775600761069307068219295981244354413006622598164993520740939433781451246524614654466086393554592361136232142699911362760423950349497591937023108996306904024753421572994351263367929663205637662899313776672239813495052165327294123959143290083762032647311776309140297813997691709110979500138916435605823238900034565270467315185332360073420008314304319010120530586369306895999566953714282127849629230026893891724072169127366606900892768488284459561583944000678245927292665502273351175808025972731737421212481109483650762977311834488183407777415196791638830958438809590719812451092483821294152655343265330162321896855153786792412939066021357937847809991911369299862269827911193580712733009490667218859765119909952946547903790115691809664692855809247854711177003367700604904805581281336804838285292592677664094188019790789745585628337723619202264380870049064925655546756963321573176144227654666154174851937290536670138465701989730175085740220975269076192569159677521341620935068887259006423123754744413471661314561105459522347132360477707280660945867947794565174350054386957237099151454279856980881668142233086508835193374108482565324623438445748853982423530168696812189360683906960229991734439787796998338426461206778043569621198808168744600806059921259895310067768011694057229485923114325000819082175137964262591351423382700240466006601109039423132702639951772629705823319513394070966874940850081835640507914223800375695299065526473026874341613984812360999562960847578099264371241994263151877114252306194952065972816849394648123245642629295352723751262409976778071234852565902088999264088246947936639770251049476771401127454024323691089016786378946901921290340886727441627449448832430295659055579439323478037441619008748071112330029695958810733447902261998949156046841114226805845954206539286070542711168237498704034420739185793812422730704962331903939681893117627582802142090036537108964447085253095078950117436252604771643873005298863149955593835604285635617520169949281935964507777595162414849905217042749667158655704409845184601894362052353955544535928087668808983685096653844649780750033588852053426430927032040465005729398272767539659682646813375724576032739410038724459052834983251051895508772211435991882381189838881542211393946693626187892729998818031079651431643835827857188762656697642858106821806278753237787507093813769697261125865974047761220403289850734176559787480008434695641100429435057722789729475857615325169176502659515169471932067140508058435336420160803057035668930609794520075702381762190246081801120693597942649898506120449786736628799978030192972391608778232821197839743009636318424898986563949134049044985362291920979073385673217833872079644012008211947363652276258154646154467755259517003557825216473350027765861257574479790947965803796645648217034479286451366749219864642005453401808845918085619558885385063659505385372907535725976549458853074139806547315782221734412676626171109283379581192953445567659519723806118020496534229605515744485522107481686855531501471772948242496691391668712683630428186443246901815010991277264452138165979747960849872392316453630048263091982094232719760364015437287395180550656349597069294408262188375215275182491512851906171473949639768367335429208471717603166385815903798199702906416217023710182013608447414771192774318911065722350608597531188547828314667320597627316434422758594999408155707203625224427830622673096859689784666965144428156745037072854960462574929680493845949486336105512782655564924661577911480057257467456358073614248388568262293508261029718753873134541540155894872644516207639316729361930266596479132372691895239897556806538522322345984350586694972641639948110257652658722703984337123516011454250461043249675300827164395313028835185770559600909353082636860364276570685055108092466486459321433891272907839184332769125308724186598588261448137728814071791941793040909909465087472204142917923171614549259387237529608780296505459596725527182067681701670230702686529135590324365539794492039507135390135666445635140593584891378700719715922824148940004237398267763549634461934948305513031737023174166017270609947807551331056539470605412018440064169970179343075693317048746313623312383849713315187014345277544302744681251728288607553372187738873892542616671651623323195908562614859521520051793649723333390662177781585035367823382746954443062008699793984369411015047055215948314495606840447498402464088541662818916980994112803670433231766284480331360518737007414230712241558265415109269874434059369457746829302747043855589211511126489191549893209249612044026441215737934287939311606336053498723908366433712534341468664156421310187323437211206131489765965706516744818954282139338748035101060774162441237470601017784192259051149958860532326273769072034076455726863502160590223163911084665521041604125860371955879211092072471063459573560632279323622474440998030000695043830991176277623604228781916791193985432222737110232372675207781184022543216815547693133256251772512396072807448586762948808554096780437247767494351234152653176512327856912655097896819956714931396198815120791468428090017543030186826149325719735846084216834733367694352589148676001147451522904866932638967764036600759854418595885492989217402065936235009594370291039414536376277760849904023837443971287291070970588786064813466454089150196304738045027541356989066215743173091734466909450758122397166889502666129736156467665264036027657936228267148967426667014208551537004724435519592963805487357001472185087416996332502410617414670643321673513977758317879439281288562576045133296379327506088929231906447977319027918623717975448799149432158473326130625593447281411603158111284765658459972261081721540911508122603099712461655307601670754813883813345287379933412805381173719869557884557407411464286424698024236027968365659258577593096074652109180501122153714362457623982689968597519874248740174724482793871126789792097752303261044744636380439363317497889515103395199843240409965177878565185968547494171322797289602641352094636622109811303425293760426617405835006009396850871386785001458303508709449184178333051178632909028856326740827823057993554311596137323876523351596581666079032570291627887940836949718960503053041749396766274219428425271738416879896071746787639734863460818293984507211960624483504915961469379825515243895120734990195915898668497046353456542900127456426703977932814101251881809329286772053106485497438581351477462625319068896814456591774354593113125122758548713299035926539010229767790734437163278774197362879752688919498130757842192663925850837731513567723012513631670720456866826518004579321065493965176834065509206472209464704286665615165282865764799769425426474721750884860526704437894555816394090868266232875292585330340500617839545448084713700649799068964230764527766784162041337377501771079038025128168572207012369489315295554443745554412670290044785786712603491089376096638573611662545728850231702828457250233603096527058336679297614894200554014123381986452239339602201808278586960737893078695943029355164222785367809684557169449820468155816098218561853133005890460105416020840255560778526234491601652524544769250020418505535859791214975861059520270909265092965106307264987891393210595060727198938374614378430650400979424811560646925170735316093407073626921120207580009773875349025379736266409582630304356849522976517902916761326413870713296760730469625394619973620668943834882739833114059709573164123494818922316172643958473697641835250189033898941117227077583406101065002310566118197526731543233109880720868462445710034141126660932793521878384878676008234717066474842120989499210358560389521817202952690699776049832805291106308944923438130497635047697534951949522011309806679588561063030817496245744899715709210824975155405623934241159276816760456365915298641589661970399673722059701751780997125615374040393972768374656087538343502329244512871309146798843899239963463742348917526858143132748994162060382045273738275289937768739159117358897000206015406022059828350802380299085086544839278448501832662872715919647757785432693410817685937085325148201497409756986767340637001671503012987668151155540320617235669065813315415394202703311309577837572635829146918322399725819194013519633493006828463737935888992212315797563302087572210834421994121418886737219417015825272862409836226454732337102957111608101039127873343155465083236102672810270684756752331734717560124992696555674809621963195653683318731136884852231532499596724370631992010213891263473599672136259413381848121595295655635945631801087561862214220107533004674108234603225822371113572256584006267230300689330892515930056022174423472482049750827386577012426848180111525837634215380198926714982383472776080152193926386949909953425383779988996395934613691642616354426846621073773216675029089496209272260558465321138173507844448131990595382475058681850289137970564078340233672792389458030222901781742885966323696297961147059855840862842604930730915070821537570178122120985038110289358390129474596775373204029081522347377387451912099937731090764569318431226021025026350256638654616555600193906286419040750527083567675324433452103249727523142267750686093895280668994230068432080495372960634503044439082900916742454281839468254023173913711946962989216781861457975627376426132664648866546357866307599963550984117589981621404119448240831143883683286382740285938266946402087259958219206972500092055192467794691018582581249704456988924968367683109278986040400683871018880444382281210154793977026395304567658116292768721127304574217600906192513249480153466967674116223980551126014163799803694326413260258071095108766718427787833802282302693368805159570672465202889688997749445160073674172400801976310230926110384364188554926416602440734739621872110199853713260330210213367890477962944910648635114402615538355158613436671839552619899783854505792219795784242778130915780934229753358858252351363588235861295150119227368101715424623397513172031373007234818342864014450525462578599964100756243397477849178812429144025099669495076157713596183623263168878411833004757710597923512453780714807024330297295049875403221018103054102412200950542243269777784673644430906063261480869447414124199390791398096195685852917084148949738881110532457613887917313698172749131148841850381692329536100361894294764587774291598712298560390221887096148943831555301954731696284616072937385515503593307723483443243207516079792925902899848778305420015952788260978600651636161121730827585068212170867313294584087201064302325150816814222786175406825350138940531988646844998030262099167304552118412328418640517121487312527414014296710433156680437902288198265341272854811530461742341764888472243901408618379790928048463505848456874949423008486746369911973765910606764258672200412969241195637375696110468244687378051474831259887008506063792116006214830992793671319147668742857723079164031945086109086375972652085644327979344206475571397745032714095119802904208188016777982475256865350438039030061228544856312017806962713828782167500913217107250647515131736362546947108545855193654714209424749244641102009439720165209466114742961506799821438391294793654034144688614671953154069829650810097244700712656596798831828382970944729429729879075245443872491782012751696524883066313980990565344142437996289307615975721874261625061229052561330245627254247882088559217912372992514965592381469951428963711980836272155460863457410335549359041271298433334427580599421051619565713137367180696116411626631056077083738780833152175866084487938795244687909574682656870964402117600959586691408379896619408787680310453169545492935124590276607599033135543677444705968321015738368800780228479251483581205283869311954405083430247229442540797017571529213418426556570344509044423784105475617761590984669238384680631461909952583639195901529738698781139643030721392468479369115244104872133995736489760091290483445516786771930524348149239108672457634079858961946262214700216750683117659300399413133779538769705458174270579045488768235758465075485038488048346437982638112564872362255508880059754137274725222471612827676663345104551528793676708775360347785834900178755036185440238115389358287516022012112077269164680864413480403532436724168266151502897258097223599984500577559677821436331679881621778658969884391614242882675745470495846281929068078535320248692277427504409568631545835465882761520989677445932271390021217279551602249134613372385134629898004746500816380261467005571536829317330671868536643073181511045439617684745843528785386291224376208142932913365342468252902368359895865894111802482741741270054121212916737469950822778672998087563309991148630469885397568237884441188226661934877445697408458988028913089606969577238780949714425752638736186215848272399512966799698318302411982467724102914500215366339435172765496805266949252699162133220760296043486453145077688194650766202266445677818460866945467423020279697446254617491787627750045439955498910053324923266064682507401578561819708199581080969127562603170951355162160548591936903277681440594471042668823301847936310552630311884431308615176525455023190733425476141228106232246349209162589769506302092096169518245362057907370143822937158882717603137218954320609847976828304646993031721557785589000776989871516637284928397236300779894544314976611273747049589743072753038415477641129748342979616418959948329655179503285812686104725455583443552115331534008809129873966026515594700567137627456242234471573690471484152572339651342660020146681682092334242620676310689018288308565028181338172097688855621310707059405773989680079619403526426190173215811542708093781285540886631643665929211444670330162995549582132217170365367114879922792389838108161335992995751246852223550308448094474699364408575052297101326750071973741352782333593136400936370184848158680309888038435759006816785742303849854277682317357353503785194289397980140644493874290596201526772547925371002161745228336663387273564519556799738083885152992153966003294696223875748952725934015993436952741334260330956297764949317294092612218548879952827459603136431513968667980851998614522326027825773494808009309651276669117811854476102710564563263333571026742943758362771424763533620247883015228202905577200664414438981297307096632722885526788140506880138094183701930520077448928864576929434453381179360158855352820662680240173482042006195285865490142457357522606997387008828451369346403629993847527859472628724537571853700908548432019038014153233416834338140730131687681328477276261777000428222085292166092345077118004663020275128191708476471551448334388005589709445484423112601115469131386407625947966584450771927958714051218883691943761142988083075739419714965567924218929873431366953290169426813301800679798529934460187600735724543054262043936365595348103491141962858518832677609954156516333077005535553953648176228543610940092051308617560363494003601467895418963519177562267419242924259765454241216216023219675272810799785357750919269236800727314882439830888363602091172717310998757703591484889160460438185382704474115752711073090738801681765439152357202006493402026443964977500336357749309783477112033540853598821352599722448479378143411655610725214130579634997463009418195653342526738253184878019870731959177469493980602280404847650332540392204605498124769124577289607401976686439354040423890128056473048053569271932918192457501621426751651354848923396158816696532180164723733344574988490480569798701439528671414261849372696942923999523077003101046761096529451101750101917508919693961580114043080131040509058387417631393962944152831375954264938755917261910024722672957099830233056850502335726643980851651294604517588694967634059903872359430071009125183627090261380946815223178619516769098641735308001819119374665172028923601379858341948243786233241821920385348992025237848242233076395303117897043753164084075586981253018677551805913447442716335657260898459312417759913433712752236875693082395952464882864033710592797043188419983031162043805485566313369246135043426967967296965575564679367709005441934802264580307440291526133681188636422827290937408761739584133501134250688235915473150990895493248278560564846877212414956156997945163688260247340107187624181048838255780845896211919777204343534550032734941233054807289072293999141870971035746538539189977821643442042838535049923458038975856067600422120776327065620550154762636369394338122014887028490373010341325849829279696366592427591449911827930144759470469044667844218892593102370037637164345861742516206975067974096853974012297436963760385061332346628058317101391106908060708697008478641022451659808532212588402709680210345897990342793210875087808878452684605832872250534410359744922210407014495219816646375452195966673995376988905882662188059626583506146108085661744413204898085028433324474848197545999412180496546040273963181945994902561310747223782302239801085158944189821485900737410232581670383578114150656634214822935873317052923105255365325392015926054777127080498560158761302174081397141549938907526812909929895406084294306549215357537814139223384817454068655296345049346956934206634420965730290581378226427332017943589011037568044326136543208557059422190535331576431489303791366414579421790575551797430912125885323760869317580179561821359035617303633831946424048345815899550331293893467513566363899102375125400877238946652561187026889100808922801836583360348291681570785503500600894418025958348257470703158723565083656630601956477864030457810482961450943377342041940262569009184151030960417827170049120600624484695455495630152091045839594821223640815951312278173325002801549478248922911680209927860439433387715095311930585837428856363392049295384331132749791462165168622277655014042421495951142706806535576442556515085252851339979637062172019942253438643266632853966197638774387110682411057127882707319971603268936887727801767878217024089744700687185042297457357137302121509979587385144623433974393044905297749691983336000696973320101824638198736245408498759532007971080238554793936933435946087213264048787233786409002444170285793756368542279705822537977180014594205892996628671147604323431185230770610951774877513420114940173218482933651117658577502894688785919563567604776042177982838692526698235729794412806461629337394773373177464641385563763031286326425503065897059050488068055387745572163747612995089885681968978875599962911071423015772409925422697774065800200665778235391640027022178380577299585421345027400393057095730234964261598768107803601857623115974506368488693548765628874581492129422947274861898285899740118016018850396648873529076014661237310358475164008349970432661863367042757704975791777117333061197586136155811833668932133916646348363116582015981277114998105095136715381475758362487048843210455817841285097828130545355759759443049709743397972032133257658179002681884149044810562986968862761577517823271498068556077368393670782953484537969099755593698426205264759918637783356682452316761448632035020369163416089050728359639177619737904774749883600895836287064092918930464197236080698043176939041427406922245145745307355965997269737662767815000599476743667389084178192334176304528134177602579345279409583224740987537657088194835276787820731830009649103907249839459584392849934151505417242215629887011721163878891709142986014345355289582951516536606390730716457639066016561613606449150050817799483553890607757240466822100080791785207221204430945735150013652197576726136689357989597269670194350808674375185821679528061886141511234996299314663758730555295240422327129100474148385098916367329641278373951833686061974100147021555410574292993773838037107366201394775424212407108696084944853118233139273566263010699311014217159560697620091297542225677937020391391401203625773953806912180083216061388493945491005542365835245292479299190326132554588110145950148558584289829232958893411315041027319363248738698395300349574702107529412601242821505592580536493151943326601896241181292151044751711774150956687948358751999214949649052591842011746386229791194884698365965525944807050662743051680650642166971889116669237309304024975840399940670150798381734713217822528270239383668308343975417344235599740027388976707405333627284992217182753343855603819358209563338295376064159930377512335858381248252626770784568147496624210294021427296339690190511791652104121150437722304990657653214393737917886829260411368648142804814143711147253836997039919932356204036698041614574724837352275238875930360522503888000525393310143040900534329987136383562923844261141225237101035580281878201967141018644850217415231857450072434183950312310797699396078125581350375887935923776508839314124263851598256310803445491370814998575627202360448200320281361925873011075829847566782328482682498507048639795391888159111022626083557910500453426729791303497678482166472737434213046921231399851268675434457113032679446774035566252678644261918443430694533322143800321833058734845903267060734408649949439382853912201583889406725254052786584233042517409424308185067294334542080668943705855392008352149283743583979025779767063637464678682741909167844603655530491400902212512651888583093362613864289851401011535987450049667167131618053220871239087496241330512098327195478384193039093504575429528028452685889439503008508926997666729431807737098446359142468273529354494738652332205083589925082327980295576803024265901722317854964258121633668566871183387251237770122683342036305852713543214822784063856763437338538602572025846234029273305148235275842118893514090302506353166132566593993646788882986102174375030458688618428051457489032790883612602348641450421335764791009460515861222093371871744776953921021194037821667391761198122927306337266771663427359212086096714280948001625854193262872046964360436752041446840307643193815757459913924671129689215963927533043075209861581123343518755945070373861537204693120624672535688567761238274827383560222995732193702930916916648665741496084007049346827060580201382916201988068449014972363539482842268430570012146534252229139083822345050698693693543532017720533646057670522258959129754029948964344576323325050967881048193291372963031483956003673860409524241275573588384892527644913460941014231846279154678446235957700645843183829948317322927388771536303539420196790784733323758607274718483688074969010810042120658476055519222569515823262306094138642710140223827966805377089111175695693509835056101443455938942284848077045186154069051608746850211510259306736683422094358300291385645549217544401287160982592833285859408306133509640193032313993136429783328380355857222796785853261080086489110147014025361813823757986686337600326057666091339157907540269876642336958813094558724095493697863394456769091118828398403102636158787152935577446001233566532248351419946933696175012872893665262250680589006610272984360759109376263505401589977801668292852751192568912007878014457428576596774201832774461160932324842813892736901028990222217514308992487365259845580189205085593147661401570887922935614732465331780889969978493499723965815645304908183533745829306804385233871224213403509900257152288822111671237738920502406821011918730418880630279833920787698235950728970747697454387754663193402309173788229553723189844492490041182613106445734395508832517517544742381537402957095809043868163012393480961785460255105058937961672847428008645685497680700302094967433035839237053064498577498479897484148958774488033034668575213345884753640461383284392174744147044220619325061928275765944306710300155594975143538773871164063642753919015478622372426590071439063285674011360105263679471539882316895611168741496332514427460337759994129516834510115546838195194298451080572015776932112784953617075293017626397406677717714722535473973017541755462099030677125300515340539291936398610772196852630949708672970582783996019238015673989474758710505254393050088934344336480984057241866441740197990440723590741257599956209388242631268011225715928570794725470656920036045175730483569793449241609244832952505477303003574816877633049486608060214282351232796942191679866385242925135121360092843255309682578020131351175263397213873490282641396342896819493934524814670391053449704868977255950351602810167888770722426200544261227546124504576886038698969836805842768691115096366543594814287844275671272683532040167890141083127833097430062780663187798300899929311631095046835004333082718671006378299668381766020522205546705213311231555331394211188485769206139437020967842378198304339386965295914188754424528974992496527962176679709075886512779135930135701939555850041426805124769126806773467801098038530962663469746220550024130018821322069838773147316942986292322963348636007659557425815420923554470518181601212466579278689163656914009294133140688811962145623739682286343910450501923604905970610322317518560508615237190022100694117968849591496457616521693839182348989035252106747860767640943973889941070944036863803143401711371214947681341398342887123897361783297860285868986793173310125238742863056992236867189577345678436495061890955072841643870768124854012199811962407410364185232450742895229505032250625345759566604787749761598002653221735811461503038168681180947678906379800353500772435442127517422407280840102711328166350830939241314424108191127050167044043246428213167897279409146554991108299797747492869575593552410646017855345702167514609671225159523093085404380192791163039936196840226548752559607024603570966669067622064925989892375549243926386278846239786348882133958011935431852248183566121087756894259993644531865894546122103203525895729503659897993670981724766333035259722358314580060063000590723386435460451473305149705279261675013374622277984159806740523341666985939540551961349062936368151322324106608739824452420276369406047702219571534495609157471481721985202960447147732004702869047973790166970098935720355299760618694897972838295672233728123599311305300460303620059812546744642147251505254124595000529818183901184264601902397900473221708799425301450933236717809217332795475705593755070695067562780692891248026932429414094279113610405446453892612559271792706701371817151663059117156149097514295926619769465148572288869747806617949351403499592469316636388449715079827434987129718696851301156766692392927360607741591146364319593198144407299186483729903671792422410898711013148622243400650628006302078715679872219612298669196459257206982724486840306092317862476033038160968490274210279518757793634420758114440161096309479438213380654976270263570618907519804392095592810449361207414948011735450191026572775530083135844718792106534244665663989928163020607799521676209358562452605207612364963374505411824951446414512564494579725012411002391127249528539306228097930287789685318399070508306713366076739032844072047333143556537373432257438624807918186518781095779203018668866344452756056617742663411097415297125478398570585764120473100930229069782822590704743691457579744375087273834648272168476572307087953395933203856603197296241023510080428351781137429790916552117223076153916167527318325108476584328750858845254601242922219626911744920361326361652149830223532692763119016936215654022439597886235872772103629913074235411773376625344722899568360287436786757063219373919248989544787132417141791992864361997214035482334222539567485937118594675989873727231176751279190089972388082033767414918077849246224150229567809524435549720876005374936418654382731405079601391605045014541947095793492040075147980816409523278148337284032717976450216317058655040796490354315203223373122979959774483654527758144328227494133355798836630705685551470332475947018956441608388163738895687910944330752064463600772301254993237994745516043973622874697846101662301618298409663932305465924336482727964211781584286023581747232338898228054182326877138777406904575360969464556004135285809112460333257753676955784055338823550252977931474123102716611324464985281452291710258472272223203885025804617743965117673292635129715457780473305356125668246272672763217054293169743039517285870673907855332106559724473174764270550740835224319349631168844481338435672040859893733813254711992064982638966932928945696087768355371568653963404752823975427438243087288212872008793045747088527188712576356870081612730893963143075649983525005923750276669710042957064372773774093016197422481629496858219682368223819619480159499993529779136027956684309543865996871343603614074966419276159207004189126521183767768047489898318227942909375771695501584611710515827904834421243862547690177114498956051345272591652550607013716881129446282062825881121023538198763404884107333547499246768202052022573405841472726725583279149012556576417192583726503523741283368510575529087971129575937743627467022618540255142977090891497650870156738364852540255251405432132411995630316938267946883783505872922609548642115507014324860067662646217535911669924168518755580996704037438518830800099719652765151066413848292088900985123094723223362836249632334962791197845400788831070835741053021157584977733011425111903459389600455661700643091824626558656236031950272605718037439497596457327999578781319316967435632117884092589480667820777992668465775006034327992257868185525539788219986481308280833173156286456559302425516201217829643785198167879700174724404983868289664586023481527672038284331041639530782103828446434385592753583251294888625677140751376905080096440146331816948744022188373482822532209911104512465981532552307468427811564540271681732081555518097827785617130385063245245413195504550047636459203862825380442970749725016133822912518898309111915270030826188956267970326297154927843819876463526892121755094614391499222125903728943680851596692205131760224997511946043678086957401429904645507910330803034353519388396890791751073681276046891825051214291945085739752665789504749034443470023896547247884845712202754321566077200516859833772775614274350599791618933436239926846445995233505324901724196994168982333514058007723392544654147719097813275953499847187004869037898740872628865575343352935640631696974417199307227148586861253713787902359612720298116413803113973957688663943242181791896187531494607316323426081941334576073039548527488063931334390498170704799239543864010396749769393722956549566006442930369999945556317443820815386966840596374988634255385829147257335754398958201768707587260349131713423633470851853938435285238426297997710403492988165707011389514320741135179294983710434914251483448287147462387294680793502160585463162709105274707261012276996645617037966436475219230495000237825024808937765115716445007887551538345463875146168077975561685062422135097273020868375776019499027030884237423828556608091001802802967985971118099917983183074177291676506295499875076649670467650716159603316131224969067913032671518833779786370081696336305543608099168567655999071325709924197810150346229561593982064930026741686765000301135801582851223857570561126830889462719091111785834189446239823601494558918747182394572378265423200890410664753586927091170836415009969680469725648248403821511570118243097314284972763928165589982090128327430570501004026637116012692300304858015441080113633242705902576030780762217372192472323339284998045559955393209585442451450734901899180495689524627894767756120519275607544585511930815111455187647436902072037493805662521109612877203640629446630573062347405065918280591504650447037577811840314969636733308159250696632290096676488509203506825325043762616230758982616540028580668197184675388728932974831822268508751053673101954740763914930388633024862870095549039886372391817689755149121840022237731824005294665186221461726446229765412949713459288713693034945064774527764096735526846921234034221848083476652968655910264533210864518420089210441495689494861207069423236285389867365158958006884463387890185708307838082161215911338329716491908668981848886127962886742924911910779407272864904375718376972075172916606559477650008901499317213162394588608278728754383488656217350302314261776700619643218122606626790846103151829305509899416321137138062470348308159619706339289169183762569682951741865797415265992941767537605263387970937541358973357575841246891737647034456935869551543591458530657801658427513839307818956582761707637164470173474158328860525126710916766290410015480504255030551255781085537384279562330985828257264880288412902626322111869683614605140281146754309509231803321971833669625455029074569064889327420577395514683344774221411768301605882803835934119275894735200358001305208735727200457290339886267114419357043607270463682371453635071910086640804744492177671604519778117301250940426815206844597844414959843182969907972628003380459486851536413802303772677907063017575681822204238712651439749589267060866134790565721577415001405965277045939500141175498769397113139634135471934266882862754262865625786480719859720725533883070823098118556592660567997384482161621153004656799836287301886215755155348846715872899191533261253001996882958880352041082212993693696605502129987048984353149152991871337115846444835277609556797658632098959767363781319935503873692025241658417095620499724839254610533912154179155450063143013154565198294949465357504169247829248200365906653033245233791170621916268152193239253193299556800887724639009153333248887326671916364454156996092303057232224623374071743355294271911772405392664348943430494553775474291344742658380067211684911150801452226878971447932887913118796737896679466602383615047392307752329766119274815963477343771151817363526411586633773497205570132121622081603097351301501665987981266535695141620708806898480907690925073267104311917166761314406592193314174050539422968141478694444598433790052953645445599802464630277158489400902501626035944785463982947390815501268717396996672769309405730567816404271840758792725374224612081831104082273728238259383423111528636305723546376259731473978263745193929590098117117001660020393212443637043295516747447173715992009308563039671434305497429944296741513251555831190254664610233288928628444402946806760629898721271419994571461590532576083370057828642142556787304583799029826518247656946923255997124230760024148704332347812131339164418349080182232822019282775224083631267914206815919793731743731278372046622443197972731445927417191631296367113981591304622169899514344510374020169968097999434623797036375249550810434910883611884428890783578100049893253170898060865329161691509403092690599757795936626202034785801583366941671080980330689543449919539895133224607172705261306190455183128478469485714114206116156839365903851166768849021480490266640071692439824447841182144797978860235093329900780381209848798343387281102047270336553687659281270693316240635544385229906528656173307641725622050224582169015580365717581689414359697467627856060136168428124612938359353659817726004579578231159654508871037857195879157863560885847512172865957993510619952716202999705980163783808195332105526058154038036924974282547158939408873465035118949731555973854211784904233306342246371102861957747936173739569705634938960985495013892850237336175730575530314904629095176996582092190580685826263296405171118395643088543847254002318481488421737332481065033655747240180852157810964853992255270854684082214641478752663173513874933240353594689999226155701874652359589489051692990564557927313660629589527622091821670640460633680482855286843949306684887778077885832298554959034623913338160437861504921787989481661689908976418441743545446600033043608819631768263335750216757503474062095141036686059681046917158866612838767385641366758786212207087300847282686204504958025468061467446655695836426775287880881912969450547781726965403049055955000432813251941931854130325769182470313755175449489362597385512963608724806733718239135422737273749245911528697737470188260255619506370563911575421245830843711298259352268754189491297378283834650284254362073973369925463668087948744681212023454005821429643912686758374321832120438867284109411975238622519407492900126313468171528763210332621218676900675374776226636156608211788611553937701906745228940865408445266258430347317839262094665407441105526227906741560609237297094102192623332329981771310298998779059520926257271711076739243801187212068171154238980648532711456310336418036549639587337786548592034744102916723480204811098472921560217202911340177946978584077620486247329740955764848388762240882306235859817928899857999440740429701416108489531347282320249227723084638367908770766673886593754803131179985049662508592105942367804523942943668422637551615245558937997458161351545547562256568093378216390926868597740931876040564762912605611851274846111773080863804291649573047588483843580755669237071066604380222277291793226558271702119466099604461014347601548687077635831195136199970839833130115215970642487834448707815051665013832779202845111000566893345718085841096608395768366812759399787461397069894002028362027745937875807160507911365105091007456303331995726575118811151069645684167505334802312430872610369639464436293451259670201160978531240599973844716227915175928805644057318461425250627350267737114396714327289456876388509021083239682460972218167754524638548635505170552953976553777117477484819110041727251582952892498466477082983741948305850832706437465670903687151134667548874612869311502451246499428117277101096247100863056413921090600655196480803841564083767362953993615099808279787607048544212218349926318999408299301945119903232842570764292709569631960890317317145552567565965369989126891458883242750260140405257679695490672604788749182101839060848132638739593263843187894385951758864546621530289859051523943557418599550735446372951032828091203162005976016077852659205562855626788357958291133009347639042589674885281367281802657482242634284734889854785483381941948140348023955592217633896399615141949169953837996267822142618564154081468890950465911156912940443345065666917128801495680238351720057286783675404851833399091257876170291720396805204660804414220372989448738226531955054097731597307779298727530922996137599156946569967149260980226888427659200694864951985328876679553973058982546079881001074056489146065781599912279935342091867796783112632178031713048884319792132007158175039709036986108305261835448977711282458764169926042515872668942458532427494117560053476286548447143093307657966596300006619370554265866567004776882489935612546721195755633205780861016256372932774089258158043596519940749464594478115751639177909317705060353804917350666026122536156032918171031288962406294167028451191395218373472741350105524269565980316204440508327763147921737496186198000549664994370215627122799348455525937922597631280343085413992369995882818796611580126701197994225181772358900288251104907404557115099440866041858488642305407647553757431966011332942217593764247924046401778225100606070281665188052977867649900663127863534285777760897191929847147985626944451622217385688787616548813385436322238091960243768258913173950948686571433122501856609888861523053176663889221924780492011546440147474165333398666585302419510006237719165746978681431781825049126273375713288616053914497090483878367312538730088423428321455464037539999237795132458573949242261406427021624526323950201165071715404295956322044792594670956083861897048253988482555188031689212224026075010569588018582729771050477052064288154835688592341723990070866455929309002061472274760165597149743775516840421214430043066309806162537281386834659051166466032643232974654231771264353263767356748324219881274431985321620507985270914196306555041130295088569357994267098774655667529295614484722500598654387074377015411763062281121150004037200391189127882224241694330710200932442720873151061787652541579206575781443481315956929366395574525958830244045971121834351072837711721008324269270079484880993145043930491836748223261819201219952122312897082688923382859472247540676547261644009482054217838448995647823644335027398642985876402198835315645720624407843760035400973338064300082822294110262224484344155564862266932139088622377032075522823793215737283275828927581188629358025487037734038199112133805819372963387454483405528516930722162463920372884581664302982213756077702016043242657003602440758309297290724472763184109037771237606869374900385168990996793716011165568213013906396527857514624619529129813750116349538714675776625122614990984865657800496864440660908316831074164489875170357636380454449197026302858054535806270949324120250041592525862549850931408037316187509730477233693592856350597139443527770138064241042623508480546461404658393991915064674067471745629562899528600734804550853247676499696944958489956414059414479825543415835338821980457090119860407336614809889608921513219338557293010600238194525543932684502889882998358698010583784491210049663773470752053883650803890512624764677970031279138478560257009901273243797926239253353326958276433277703542233680634000849078979587427257161125180458091959117469639007266503735118762158875429156615575710291493051900419032461794822844451540899823299759689730003434916091840115001586679584954046685380189803248932716107537277145016353949357726631593140009799215714542612689590579809181333638220031630441401187656028989352679422238816552946073847922789867761845960572940019905205854908218521302106488983714688679166821866443801222153915800382305121486320453082907473439620517920225997579507001487085694371100077197534424119399430657507954594259986830147148351411089361687736188746206111475233700521664321964971667406722644624133611055030442097972377838853433846707331460187268449607077279630547894421108289246682651986516700614927843580287006400275391160096448591863247843517907400590312146095557027894469022414976263823648796994066398018815485891690235923765508018147619760472529544667375454141360486065557681646607703753252318219186650010249679622379261591655214727402331015216092338809281947675290667718548038677013363942927750595229768421569176865694857079493600256477094300412699103471835904260238164499413735381742893310045979173248670398144357263477222241640435165389339927771031178384074469692761055838659529975754332337501698505472290008325093502268385908299860607475954744710042689829842997855834341991369170425201287276673793106450306826066809960078331556852249752985194992481515932502702380164828086513279631578746622996816382639031920007930529256927899824745765070255569790386694627189951040103826274027759841015026544727218488733903694411763847532939325541652609024042515277258099453801877228560572739880199695824617608538145168558714017197861971283453194037011790006102616228696436589138636361937580198593220824985095429826697459978077016138602166514378630958222513004022295017184998996524084985037061020099842364023256656709943309915190836106298089530769391067356511221909409901154575900821830424148900765535906321660311909436362862007334745554776928694777958936436000538097751764198909421538158925328998170717271601139517728129879478429052034229669697492152571554791446976167406199737295238774921342218858693762098435650381651907501045461044921519879409013122734572909876893727915618963161747181486398863309534064742823566172718187302335147705933415397326611419092510644478764841596254632902301002341169252118294630227789535198766876460991909775378578614264245240158082733361164680201253142271169214222295906587592840138372635105586270607336623514532484036282072028996197642845424803061888762167274164185503508161371035641454143317080007650687546096976316229415918987177644124740832900042325469668655757518401066944612450669800794697104275781396856801112074269128929779203425460659911825292428604386682120877779260447696107270374157214141576998200745064847588260359902213689545941170575988732682512424443590032818304657949697780812928815101274411818864979900073103087101759110887334455083573886654558639316616312389896566432359408972293484998566793364898546904292580448970660815618922099340258195214583567586823839824631991650750412270718732045612761571734780069080364579572791289724835817177245758082406647914859239121665784923565856347956435012996316549349030735038093111080129386434168179422620216581945706319213119533418122406794010854127450453219215480485534973490813556351055873575755137215520019195233872264372558217867681092900378146456889146520203414176448293511832831339327676616286694675455204139057496096080938753719160581025062360011186251778855692289129498805099007805980021346637953295065562573527448839312141169111854302809043695160716107996175008927642794759761790803348314591042613567889809301387442961506213599395229843840974864465759740311388866773638689819712678035073895762212714970553385136170150787193233235308567995425472761912043261457488592434121287955181567444583096552895546809892402593826070819773368441249971765203413873731063922083962823779489735478671856128393935989025659611553218850076837148482143857449018609114729957458568487296000054127584359112737573533185762154121230616971118879195233501512663211206217378108432638976616128736911048893252566849132123311294387861363142200441436613657461837421881228864004317435363247898403847913853122935112897240661701185255306223608154969152429970350908643639403074835284231806962068701016858827348741497327655080926203998876747037622859452013282471672307563216427711323610361961667030883847615975322077124452030084596474171356346893726409195196241799988236360871113658897646906488521530233262906052535535770616295208705782133496347092808881202464506029648674723242536773402606709108743766095521867047871570865537141858852316517312183402845824183987391269912528403215050320145004443613234362967951358746953867148640833956556068189391680295474809721162724846055292747794283051428255148056970555550882906552722562476818351729538172922197558598705255814066343882038128588878488125949063557755936288951125487203402134231397517486861332763092166142893363845227170021095323799758469747614755244056410105256010002993956778950412119490173119763141839965714610232397199386198758365639303084687405461359175207058372985495804302268846833184524219777593882167523685344855038369957354218250969992433311524768687543122890921759011209955279992729041370708081373485558106687175203274955002795668630447651715903409311892631857201190945376161451020828189987175136895860831597794713494122853283742194215087126593473968284286332242852424361682161885314681755550661507333534728917114377638979921533598063786622230947200894176632223987216419852116976714670216227942932865995065058093355525028262714804082376286280388360885293073432610642547248139018064549113124387574191674681096257293245011253318881978674732202884192952034050052581528635487585670129797060927282463755415598714902135300797397675126099530512643278066758221792806745210744958880055306619691551574882351577917779096499211381107691286921701395185370995567999554478857140342358632514037658583720768944517303842539941321611191214032649546900211188895630212569139300067387462402074267756248956683433519909967251590774103298787909793267421532179572612673490274829230125958047161228826685421388495723005712566929388776689212396311624603939429046745527783735168988067119092408039706984048281207774899942126657058175344519154620572840835816511802017869205294141643390655010099248807502987744140450165745559809682462739150774828650017201271072017299647225059062120416772203466216516439823376384508153966518357071662384762451399504068115731354019486062186267975480264107328356195066848137389631963608028216717021589167004101201767506949531098297069364401707308453005260991937876793863630066505124180309055821419605814539865338719769860898840087954343813105668510064320944995182462105427375824051025306276669693818453091917099969169061662871470837612171573495336365688842621455061269490075482506797290226722603402745734194334149856323258032270456510366212757439318125850400023871228686528582782586728712747867227826460338858195850969476642499494330559933488929722479856949485402423513214375220745801727658732763388161735468898465471911487940128711520133734477155556401753020031370427177793694342020670698263806366291358261453127922870533208316517315330937425499428579156480537019954504658142239826983524720015191362517153529897846457427000317009445771741343962640295141581676354381766312124681995473303191041594511008995635829513518100268344055503699304113076691126982521185585386929135167656846930757905525884350351486880062782207484419267729370970535186450874016071403982758979761753707079572893778332247156262927539091870397033978204377296221950996532339517330321291658474222068831798659005015658460738169704561647056797689046306236445548345034496875534480670720302219519192756868527499382452688935172589391921108529128794832251625417721429194270420773526613256641483117338053572345325450950626909479529526729183438756904392551094247695607449913816884165910042960376602056705978915458367039063119049923550216849290357663453021578498159859800982592293726952490601345236992578544613697770569658716767688961546668231358326056545354974942020699159305824776754389692662618305856392789530507624370937147066957097995830625373458790220871639457625549895749642604468800134720538792232613100643871210423487984478222533636044873575416395064169089323621556828835331571667962042299559052575338162117840742393623648077800635675837905984956566064269367176456203527129120592312427356680472998853631801957114770234761682377344607386520405967963083290386446849929601229616315666781457375944117171028446158378991678034133140120279542041423969442633361030330600583420863032050674497197558145385470788831913330842958951735403323604947976623158112095800823541249245187271766947383231215360210936181070337204647450837680724850322211999752530872499852447603484437334961171356042093754317189310787128425277973528293110572396504842986854672036692255181651746776704352711795847372653743305840874069299573603190167488605462418062950216013901904698350639633091709789694159317852162787845055719785264141098481487716059829765745735083009300240820420452039003761119487902276977942611016658278925967458858925239043666888979723087937087305762926322804688555631015368766928502468717897194407136160916052382928772924757136454612799959933649723676474153315889621099031534597225942511148073630836956707630284410307780952421329102704372037210023810849212029736185973379916080011203708407224533698388730339320047385520707255076366523774493124799855951037537888490866594569503284735419460529547719108736746476960866092989231437244541544532304295414024720028106179994461970512133513762682661046970466716874802255256701454059944328791552988612192337719019436733350110453776031308836075700472082627567505080019487742211170005931492579299373902814653998195516210133842699007407676724580094382957746674273416850644743464333305707534504653711065461082157030250348853473340131140879933822519706627962095746752418458995265346239263488379795701582906512373566263503352903455629470610944508900607027164597166342013051824203787028982205425494670585153702809314790518649704976671132699757400336914400062190239949206300289529724341380130667790085282037394967331285715983470313904657416368198222698370891150273898969527279271596844641630042687760407109865961419254341420216619381459512313360297671854288093413838888151442270273414619990491420120799264669205051872240034895903179375186704298347808071837635882643919246225338168381839635106833349618722893292398613595343168742799563330359049872659100089699207654612805290416798490430958547701402483739534109513811813409286771391571483999496973897836142386932958129064404745133692648283353456655927856850470221446461921663952172619156036625326895469602562088034275983708619428568508973134209832583642018992137338842855855455269636967644148168724484348418932657246779753716102480425820962210881428294330649635154986168370015678462136875853887698829702178855890620220157225930833993395669752812783400509039835908072726928752327659317006242798923127288938780779508262248809316108699419446730367204786348977859164166542623651800788725268874981227538492753167071365719330984512398782882238595934503489835764949084760462962043810817015441558386858757225276727031576862379545894493183086337007279546503250558532558045832158834854162908561265019896407513139518927566582352383701542912203539565256437923782895729732636706390535770965597310563187752033683174273102878352083558343950873850757981419086160053846831625164343047842581131087556356799476583173295702240993152708280790392158607758941291344580684260536644573944164632842729472260934171466306298744754589664663438188488780643403385539481940291032294808519596217997141134725226804509960270636682883043713035138680773918253442520133807489405874594829463348333916440011117007127848674947522300974427347102365912247369490384081090160491843981411367166764955749699251512623475167025140521505588467788994516152686384364662912691385206562518986202484444938625327479043612183496731473202474688446907076557401191846973652774330714182750949223321847691475006446717186449310356624608086150531982278161478671408662943090939142884460846545060354231778223031218565602127950367008017904695442834238035661078189111868382188466929246824425907011889975911398780815675712189563440890561942235675269534991794228143783805664650624831659902103782637103713672433644949628388430973643965360376842272755019531011660568038541994021445363707574156714467868435582366965292280738809959234241780573279972792781294630936806923147456103763059534581885759827307476101545549455352782616964504216346373918662750883448339723827895001620240446099577876798822553510246250866924325259581069286400051459112845705354017951061050930269924780158821652465233261330335651609545193164728346976859632990396091526173216666417979569557196538710009886885136530244169662641991421019568612079039381943065667932906707028424903585884622188592779564087505661189863965288449743612720534425447894582382545374617879858000855470450963625605666330229748517083813824588046939771568472774119248289648904336492107782135444412326240202008799769812756274786572667087205974080932930055171705624166647962516316382224404219190634632351640869181337108939635518253641951720754182165344040107031004126955164789474605601447581259672907215842711030117539193906810460478891613834126467624025221351998480317315192702944197996582913520426812629630357471453126261660109510518511934492144730269963032648809193007883493537322718638904281626880154913314675216521298657516008458013675970814144521319061728554807747744619383343484955408490177837206390012758725218700148008240366367936049842658865468606210889417088755546890832059408985584973338605104948212932266795379880347218872155891740546060566006229338618010868400906745412930498823831218181237233206147003335759048831921203836498804853252593888301960722888536591792639839224926718967563794055241681821790562403171557164649662503291231522230551528385139242130303396116557352098981250043795748409138104931338271735948108487797316633032874556470529843135393945685360881691777865005460413238607830428505556731404828257772693387558315585661542017336150865477280024164620399957141016200908765153121874559336664962089309328545064593277832526220339384347528562239304658707677848524458136761777306954202521974868416017617873163352973217427529727050430681728077400509379282357044507977690647146708198427657304159731664911054357772507034770773794983411440238650420085123349225476878886642768667149453880939392787312619641420170827477001647445494561617577829521666985495548908693623003595067987410213827187568220263580540152357359558441187635440395030150009285990343595767394602605458562690265864695430335271215168572362483378205051118568100269556025174644984284081325313009077171710333767773472522506916062160714084713859626336773220308112030817179788102494000490997007995237960941131601408495110140180631652960505095232162940442888165918329254000057382099376721761573165828949137176369184299673563290468297665108435503253231122596701915983567912332442982485123364556513402130291956607161316834032252333074774528676497927433046612316376687404244672793603376904550309428949780520719076596652803025276661295721007290408278370640380202534358223925004514985399208426458391426028366881018670757830819771673762661563872018050132108519260273624257446411521750994856380192772653023403120119290796590603873313556679961537434162821257173690489487571992771417836679383864654603493870120773983215703029723695768024982381571123496819806241596627566453403937790964073341198615624306537426778140670809967876865376821033334635653128961532203095718918600926062311304571877728714196764672615580094889467952106083949391023652184664628226984459681942025647723290706226528114291809461973489777485043621771257195719204079762771092391858414841316163381583279886495380740997030844121917970774598582240544367292993193582270657708313301627139720549996935144376592108551198547058219277799517297103665701291290408892204772247433027625421230209974694865703436313050305438877002722256901493684990264756332321513871573573742711669981272734067923289305035930860525340718895592730832747408012409336720710353712271417156914448281937881605290646500679609667335672724117243063253006831084668569033637455536524330289787836179586297285393795690516248755520582777543853899218176918676873539960122581586865445598454236238827655335951973019281991136263632400849579497605317744073242629819320750587808507062739090721808542669563976094136579387915759339007573855258294546452066232238549979306401345796082000841234029335679258611021988019714989287458862287629189682948019583849169572004935034547857006007092798612012244629605319710323094179729986117105767008360727910906174357591928045387515605069818636534954378696854378438244676797053205228719940295585737030453603988540523787626791155643306196512516962922359765761195250815940732344560278689753702566336552356426602036456218064132686860421807935842609623763641383188922248106794967302999736946706932799893784807388819781893266966596978631560158500945611686204674449902487917484159357814948935301290104685584222900383257329919758994968225324141787422271718088008205308161597253496186980101832458648418644871863901735593828416105992331883551533073382618336364227542256489484058722495774979293263660613518157577371185219144758461075972163894510396017649530870787620060113417874828796551293843793681827247029785588068763892965835724654146121281344377103288247679076641779717569657639721723548364354997514669356202608004345178018087308422822933632043346854692410533064720634014737857466369777403829327399123254995993737800093922124354534245458146324774949867993480106673325159701979362228197952510884912855868398558346317132555534444507401882158500941786141471481784847465758269661353220155699987760217884181756933972661086955028294867447580635794903085369221234195332552938781455062527845356475554063576176270217202260439372944438885233335305920382734929368420805201981768410299864605694311493856648145013108743230608745527915519521730301810174554395877946399218242672010075097171162567460333713717278573935397036648795653879290217239832824583765205311305483009491850382420550046481282837046495878573687774803039862426209947550459007472251015883231565297977632956764094983314086594806128916260102884881124779995592685461489505694703591557890049251040606999317940929798460796179666760058695476631568662751762701983529678619150722242534208796269062302744449711047375827112783209487935408864713650592091506540114586915990878736686825825134594243709561202536864405937506207402399536220966586089243550618571184732811626726085121127714767493205447716664240339875860415531310134284651508836290080388085955762140909007847960682779123236738613729187679610266254260937257709904064896320877395563851165616429493123334901286267270797093737871146614644192469719805748793896008141166919509981561543740321730855769195152763981642801809980316741303501084289890863758844897340135212301421885441159231895272971613736772947807472874197926222438175113906089251379811626790154066692631203126645576023544687745680598847217145069363444204092067535463090361993909646071453589592863096846008276517622725974863309508266953173712303850802772764615814594089401748907671443586147381666792035799410030538671700077940340983627159576636559622011577582161349766091074089383616297988648822599256429837581900237817929164349167372741478560911284828092177749887106197889567251209377538488900638292281116770392106312716140071896438191924553799814691264573669409899343890663957579794481988643137557791955153008339758579748993824334148344874343862454388752520988484054166916455983198794781851118257475349250528284722826813007015012172663675121070657342159809298081072303488533583432225399150214130883876873543233152954254432993025503495491224578246946577816335173673118612077659123601723531007618336185340701935384108997188588973055687642603054405253605760833581597675750328442983596830000094268684230091466640412387884690298175518454522140105557465992624562190082709865427356605717979665004107982751462719344988009671899413715294688607482931740935601614398580672901122941619689507210926175079541576865239965611824374641519308542964398113617543133967192185540426340735060230334808767708956210983171103694535484343998419139906051657150440567989139565011122182295649291688240820492069149662335047982041416335862341348305219059382212294048341609588018003285228866490398772019316863140977737708108929969234943225732041362035101831728818149131151078201723745616573678706198681028221913046137245089731864831982681132344244737815356994221466537057994669269791418543417493084286175594041294613745499065538843498507855892025027142468342477129666185845179498146155568682258798226660124264001644528930290087723792408790301356238996525187129929960161161751408510017198631448122876000258074140565697814750103173078509909098072151157759535311395213752239720433073828909875170193454252689449115649284338346588606685300758137200783795899142897315010606827505012833412053689824082395145544068931020662065868161337269823504581710446475364316163241481550567616128590892784125610021235040320041716043664780519665184987216795881043290471288000351136634125356686410186112410788557254955791205714251180202124469584268861816621307934498947594445587456518574427308412423520767388367476377207250861239951423103102430560870327074667564942344191955614080008086774335187779502461094352813174939297428183730336212270342315163767385234743609657872631902076217547075808423731582740082144251922432131440478476247811891325024605841944723081591158801015806738486962880400479542565935371191894712790053213788245335141146675474844214789876489568498144153846431521647705078420473804970565039514035867505313341373702299126678595522214148860774694098349270171818011578528545853609482894625006022527153941448346301304595208408432261812901304543303026601551985215342011813768904441812885525505052136195811836125604399547700933465865713408841211274396357083242953062093023960508455723810392422709703958352590917065170808636500920664184668319177257755345161427572049917668797406460736580056235482889733447048894593269841950972919240741837711355011501015450100670644830610557928635199348997390955142355898436420243825773285864254858887167926812114543459243011463856268320801518583557775664798298755563580953664550824583408493630756488527393376625971589693212497801935734910130654265135939625763715262702488782927225414860541183965338140179325332972189781110529719024175266098380463721411103385577000490404409509633835355035429379254140236517804258735174351510205417141993517233243423534600482357461318812691602154436459590730917273349787959542749425309127089113335328592881590268177621561392887958014749907768860785273660850781009600353685864570456557207516706939218053840641225310702622562177990370541296960502981653779512178708839535835547379060437957053313432577364390405756493317725334704429888796336310087396271824301674956195647746226846531799035245811430619496504105365997108275248584051487020236233843559789700706767788919563480668827903718839551420324698979959576367744535794464035370602873110992818392653845172650086022287159922011977487675305369632886670391169941325292448871542912230769768330921153600093854834105113039232515606428399431450678635342792175652331086136275691938910484055531987840536263500148479680413465017445351733638087025722552128228830391400308050987096834224738923731912697696380016347839233800045018765273073919204113211304080815629506259353874651753457592716786837219471232300967930836425489266882322923780178544927814192415456510675628641012436691965972664837716333723382152737354691021280918721637034575690109423923191023264855413834696255152028937110263410823280259293521749514078460051772443897012991398603384965718771486670433657246559314889047081076107567426039223214132045262387911468843353400236636198272541803427756989119324320375709751113167025095651284312826118324383811020054277032994113714415917594914099353442741500065672099909361745503295644655776024927506986298717046514042951960398172857182686258899063265623961477778985070353428916776896345098839220473357708116410628080508358172867723490549749184774183490999032177862377114167309923419496885414030253811338169603095298881089724495375332742672783340022654249708030377289180031335554942301747955097554103598729480899250671374082716272777818293045967860352034980857292727569252990728887261880789873174387908667901245930889627068276451663503718812477183274110878702799846103147984768454168406063472066838161130524668837113640050838040877418748518174756945581043798602472610457502554236288978875693738119593356680507560240657495632453476029457121624873217481679622963974857539613944989944720629639186987652905071326768230004007688537865311134133865448336368670438013140277342900226723284147789389439224394144609464468647617899977429847951393148027080223249036365424590162319712377355211482799092258292150920842851919239486084304278700946308332428970272322609087976266715469224861292896514411204578418722560689386214863087721916591816949093204322281412397639729609598012925027324728317729342156406603372555887883359909083974920179307856535836360170720869556588656769502227381956988628345239736997041294207554690010227922652050759871687433168963001389968570624154756479908937645300744436657373558950353646543989113470135415094291267053007701997315054612357537791083278183986811939964912995835670810960183757314877533161356270029342661547744908860314305855131475255973920663830691544966026868824898085359046547533308067519754215751270070767621942093743599600948955312729213812123254312273741800934517524920157374750955776588794428718332459620836418336402587078014178686345996261828039429069968103047050545550220623403875404047265248540650525029737273340954836501644558710223909694797277594173997669673832432665743334090839176061115023234076240735993712897480983852250863484953836515139001264905202714291089946627288375503533886685867772198249338134206584355543539901853607922522028792501198325192359844197691342505652244779749320246395984187521394993386810606541138439832967132781320759228129152111360931635672735752919959738717224927967639696462129976610600461365391690209562983015969349260766459341091504804411017235151753460139060636069589939430941540484424817174312713964553423927912842604825653363618271843701341073028813017743001232486845329001812606926120430261042961270944166633061228189230741747675613820898062318157415299954083424891866106303339017336068071428538428397725828725590211562672456534316316904666835327663769746636397152976624238214611992146764597669826613400457491282704334533395959959401124183100551634446408047564325068862187390208057856758512271869346346955327844433769369508110941482614837063140288866030039569833405521737771937580734762031341094314543948442715498664339519176239992502788792094858983225813769310130093616820319461838201106133320426152301309286950619812804261901166115678966480858479834457120526668194622574489187634912811776148470836592077904229313054532795953616783260243593484288375416530123912199702674105490535196944359747868076618654961104749354637563292688972519641991961895384282807217098659452884884710099350175288807559909478417139663467157936997080624476064746922568464080689983739348547384256503686300980503049156759888933389365734383488003910348446486866454528531410934136841790267892444759976950160151535714091731649440254177660978850806591678013751803620332868883118317509846169764542833377461335884393367668624399317043311209998388437425178335722774792196865643766950291774075996470649801825192885619792679340917817063261624624531512340374196551339331127354588353608275354463668030949747286247643646984939669697244783290745882282899059179678756945012094475193360161521782482746173147647818671965519642895466713691330202463346648870636164668740956471741267078499048560728827454709242934648586542284160265052708816235661252494926681593046138287508569026938323612417625663936591962286938869102373242945337865308263370420850660684417793099376103931948435219616894118245849305413722937985376071068817285118785121337782260939535630842310329957230685323913336092816120165553408820319783485619961509680779714085575177253778669619649284230581890132043436370466618988064352535035042604112219641342800968052569177041174453671750724743099171011704025339559927763472380126060719389844691572073497231437433433414926732503949114682565119979361056315711190879453688511617667212716545419706137129976218392681937901113266999690995536743259844757156737867951327586565238092341764143622634087007260546642882122874756677572126773259187003834509336490805062716067515321324115364664267220609701989018398301564589642466269886532292913256386948810181123522732589371145492278559719932922304087841599540297223541908392511800959896476875470282788108180151578575151471413611289157055850598919532174764344754074307799405793790056249905172253097330256058187173767030441299290856701435941850964834487191490527442644693460880622814307531649633424627531183515407040899515022112832158061214183013622091119994518049766461872573606635014479798349246350367406040594231206874494364992797175240661058224760247840884654103876774043012721910853707600712178359456366777544236913074234502020847608253543376849728981308071295897286480032388766849586902447204469537483740874566570529564690004526469139750933211036592839497123439376718432143838072419859839225298740178134105069399899193678192895251843742100072762363515842552434669337037395628147683858953084877900217323306072788412764064632743919596766851913385578525830761664341986977081679358149115877382966683880084767653952404231279843800219770664987318826708532937635748651596518569519167706285328593941819213177784862719864002181339743643757523604749788202458432961453419465896196780455324858198480187756110145541072980280036702547900988088301476809945730887640383264077624194797388955389870080604546106706430772142967977156070604130593681395968809391870560224921057302544372925857505273069566690116445771383269083973320058111238743363872730084570220188766178230550842687722059604669828227488042316285490891769869151847296139223738023508605936186115906747185306798200982328282992665453920533846460424039731453168594793522364677841294169165433016409220529481526118271390599610915746106966868420294197816625313272560601035368359364143502373876432952083513803621136901255662766585003498702644703149339905989309333143715341691446226311580445564783431057697953415027767004177748966310033296034876316502580786112377867318877164190109515555511779912286317138110219853653017954849090026578568157433186351385985145714262397821946080773551441488072005979012476418276961248228768442360488608631415972748671475107393756893572125934572000707761242142256495631948673560718719008323130559349491495061084036685613258270365767107510733990440201942025640123530024823753402143043532877037612681220312684127168778845550854674283037094938745610659926524706074257771933053648033729691163954304658031767135102669970304662932883838793872906373703277569591528659191231466827142911384139140913641663704785832783515891847630705235062391313272277038653490313967018960267052075405000669743487332071608351971375191778524747131320076926974902170249766112977536496742874250831129470727002790993917184726123706076642203880128922385468767825868626231181978988814979139508963034240033695599996338244086860013766535863100815328797158750312954435366258484221996485287095982739657998820939650993408765324105682676671537342280681257448727108734850224489358749371444753950315322416141090422423862790742370866604832952571194163325565673920937391089679096320555525940234604513921032345661021284045247504354120582678674139267673872791035485163670311413861178507580806845005935693885019368990613202558542714475197249846325051387149536354967633234578706585552274384478978574526601458929221983671060519620722831206749920792037124680194987515066091566601804281751798407829342182422871755468674671054664086532715382017150868396410256601633706403860501727142302304881812816696753871196905955795885217692826105702576037975939608793014656196541204448438897045472617877456302700017903657725824404049612117676233488173305667158006337381199638168620327339627615487892714995239769678875716804413209461779947531192679532606939029736072279436103986110889073306516304753629334927797673082662133200290911703876406228629867502102147200474976431537817114097707236617238317098881506971794053877904671063941687766154434524419853247088862228422272315088249806263367324232653189165065836737080308721413619856544084896169175411141527840314493045871680666094369794437964864048571373621341274903610244621820593625523065648835412238493358613118218111081424595980054712106106838992500646369605243191470432382426745844280985629468993993596780525538869910698188707905054743794545735081741959019523190676214570852168119187319089785452685969115509021234088880652742922333779871033809431465431592887869147597881228215283919695661413810719931902723895942497352948630455342620602147247808137070362746078591275728028554824749272280367070804159207589423953172983838748981247363607147484822835061195781968009424025480551050355053671830938286575535346201806752662806074384611641077532663343129165618742366444875704626505884390687037158636792016758312617612958938791148324137459786014878348431310426591058293283969899500786763854779031399823587714463990228127948638313608352206397613816873274806571235658309045599845835028160524713827810863786440480649753598258613022830318909082039597509047907435264603107458274274569539494422314474994657265094220864357644304718254072316889691080126464859498351387731470133083946974617560397406258268611373362068089267547306704956887660867131585415377752715376386695885532243471174168545306576874085294162372300809218731992166332273224688157304414100261659412259710239855735509041879953005117699431528914453569053448407177161272221937930826804548200663872713677675297459747045855876899546008840759830195155570414553910605430707888875216826755099046844527154590306901179350353297517766511860079972855926695954427716746325007189673443667846572612773026283609373651131534661109508230731359317152127197503239876615694502691648490204563470855622394163312969832261020680737180374883114593621902475231196115354390689730199775391568679918973779529889220914694546610286154967013668841654883366376462571509473786828349200290392250701423329271746570714240275064603717150956286848448098737548414391033954628879850205707204681052367976784853304850324429013006574449516075715081698990103129397424190599572386914706701068293076606427088676072839441633253000562883567222203099404989508431026292018653910011446177970286738872763817648837426969836781380087439830613132113721980752720582969293963368796736860403657021879872258005747570602579260672434687618983458568349584819203864033172279434227597313833009824799249803302710449700128607438898824919470866343378407732665974130698555572366971964914985701697593711875550832471190340841837880770084649241093445287628216732177197484107261716536169485585276830123122400836540497486987432910006312703499352584297323092577417869999926183796720227613567218621063329119679683027739431925184606553968993670753372070705424445977981153893792945917295253649787100467080044259706280587547294286636286345077430288655977183188319711795932899041748139662692624224251265792961747108152048046898225977547657542683086893331294901620343727172149307782575664589990470446202183541652534978335218093641940689866528388818220271993728609135869898542473761525873687903763869234304316725038075400491040811945396548840394201656732448829610258431489067278069746170025625081785758089930212804321492142564723298647101116006376666657295728683695718197180135306048497951349645161333212522953981108475049057044020972878898080464473950835545159866812930241180966697228118333372367523507455636526092038543862399215966889790021097177083039592844283843767968960116648078085208031451214021441078973556511406961113963027843588542375809453690272703386128601063727498117752452726768028342351079292839092553183277511555857932476934479879170874314294594881097088148495236718612592878749083161594018595502693616782455357386972742787821160660302282453093432858266009289615227303135551483903280023312707705581189767763253447850873670445775271574783291332604362826488848185597343822583295427592493311235137910524266762224070819940412076667886786625527705241628813899868469552371373840003352920043035959379998570577242174781061293597936599124034164159609800668897205233299362360836128632878235261230456816771833503537675666468661023291640878176269733897003838643242254645375733232575406300750190089253142432672802043854835111002897231285608181595999374891118847600283214055007317567779481118109514626887283649186052291194379545892789008404706096432149247898174581387390956466857803303786744595680500289763458069450264872800531996590370407394524475739699203114825923916610346161379194885617593014590371170354118590226036645092027184757360626021483775822813804232910298257769853082518154452695413343535538998359397106501498737582003732057697933648744990006752802020642931012040235113315473246026543032618171091050266041251030676324765057856436171242434152331974587285780101013480810496534809689423818736677032170375940837760856969779157410508005949174752737522306217420304891340103545316274329875244959239370309604804465687991984405954915720525714073937200962923509771630965120818923050969232490158766434925188044691342432116249850959087301603341440351536059756323199612318891137819138695606356589982131010860095302037966629995338414622905884366353996916732142382282521669160212923527506218775173861295138314167855957985357699306578949861922328650664028953408125882442483961596738464280623830693939846691049497293194746788107775145775064790168060922497494143963450533816088320530004564793044490596999447630131683354088373335673506061805277433355629535281275297131137701228587240823931330264403410025352868085516663612254809184394723658451425414992318665591846235625494867758618082413701605059476547338016475656831159469135578801744382307104712843015131966407297192439128472221304860761766490232815179033401572580762863491498434214084429651403107503878767162952262438351612636191535436575721287253499976939140148005454460711366732841664039011027202018782753526601424012750607806063934752679548127657233679432429564083448778566939976811445654169574961512245225892390766542123597748029083629213986657286956303057500703550877088363584445483585325417673169615743604890810047338777289057085359142490076658959543327812796794077510473581299461652958439490443831690966646384194888834349748316155122241435931629237140175510419609180403356051039955305078872264350848434558694050153895148411378808074531506574146615991672025846177399115482651170733469652976880919909933817515170752501520788469508698500994583225862136442028913975295448669406089943198258338286597112575851359666254524244821289188905243672385097139862360555987925478258028807470424683270867547674060604130473473435743128855197438328180909077630422268493723023569976468181746416118028717339768995574332072548736727711805120068197875987396179400640369840622738406732937754720497767612301147525152160657602908152120103184182837016605068965434853715586706793748415237055355036302404606786337283403567780264648834363747664594826027124496521715703691547491197772296891383409183340129759671319826363542238859111332291231951674683464471373982903731716217982553633401396147250889446640041623357626333116904131453887081647377587557439440238221535903726645715800818438744050473781108596186669811375700306625167335548660215719091635353247931792138193845465501035428742525960607828674292246253825899486702115674472727523377717017775405527348817580470408740661547524493501407378637566271578679367708791046107625603220328067004789300980534692108001039245757705083313675186029610634562388508540783864391609956658027287812313847175099669192138269263273817095600956636572595192648645754507049605299321037055137188347344237159291527828303451718672105077588194816689097964095098871190807770573779843258812968430547897237641198902853023895168931834428074398857838270192842602272573740254041134135987027808361002200012473028293427588471900785196910811314086129383095542710693066312626965057628514087395781366267631755104474559605298082570412337774971271611802882607136889633345003742512302238882104580062723900679183759436505387319952858255558386542878335319635589747277456694975833910273309976371069807121361504267209532706761554110884022220465504376796652201048746316681786099731808510779741861141474318388828911002018984934561018635223566697523419554904603834667015446727862548203820291041733564688400526540153425873197013234391192478979886459116442453833506445101560344629577777529550509389992410300908823188543874018272991376650255742240268523400047214716586114731633911833336752868171746029413057777236417253001681113336483949531981941128920592739383015263462912713406819144041838640674664558737370807537515713378948561366319305168430123515371506055270698031301426095302053490738844640515754127692601426697177389479835442927396839659358473974518814321106548581533164029801305142743251745992173929717242278189444640809092894969522760942174447830307680090055156527973557501239363069943092335475673735832988416035759230834114483892410370888860004547198630566430163668663498784335057362537022309574340491337407044640657017891685724318454693484236909066564504995275301376142349640068482506824932332826633572779386901329764523505277176976532872424387217948962093667650266180617690079465256918455468403763086307491395010854705477950688988350752109385752510607789291244393976049618920361997903588376823986888091093822140800864342253670429115705009180041432082617316831598326764702730880314403906864239089779724932467768680536447619909581149234019184368790893617872602487543838943639999725152264063242009989083763167427228219735249085355966324712737098522914353512217677760129777011041933862206086381266293085107582296850031525418079258795565692528879330755516016464559332459677879547231792405655155984625176666168729361247278846000318863423181500381692744777938438444906337685627843987120390148545609532808742863580307766890149731010543703366909979344315970236358094198348769547671107345306993809351080102967498300495310066403579775240889074140327583482337375951551229432399140163881653840914041062792207106921604490833214286115989046655280850438733805619604483066483817985949342536113750415915104933507310503418862990392423541703038143443966144139486410887039563920785229012054860714149586713806379477548978787922801153621142733644001894645064898412811943624269721403220609420778559710623692774734345265880985476454418846553031199593936370953826005766959322398353703312932797878472319974138097749311934216445066706496022508865328734821807666724682567635582179076061559390380203334779887095956161355533352443148782932507491601001869455568024370947635759960093361783487453757504990908718558218618209452014371624965386885358578044174512923343778582850563294751916083802802395084155423277710737570037724744803627660770904712826760858860763301872975847305867402426034395498365239931515587087799117664879501166693765891940331692592507841753552324894151729856020401904108085597738859280943790038698685010203017924620242274262526802845317393883129189729897293509994876797447685101484798891413696879018971644092394947323897924970584549706832994098757265697354150720124369163881432481145546924478759876927890656424855308953206887229568336368857586873769656975020874188889987021566446871691207952969979491017849779823356787890853429737794016950928833559284494209489752129497847410739385078191603811633347032937805352099109657980511210853260161000311142143979903063263195748242533475057265449113156052588485862212802045585215561078336378155844636039390897929852828630539089827068321423309181859545435111309443119488727085333069553068731838511273687326013836249743366754652986270324396565802368774363427111267995747837344303841992497472994539309859774856236378075740468385615645876233721599646894636914802093612861441946455587120495925029856309720397640324150330270640506779165075367991020251726615398269103126607013683328628861654512415293409447716552572018641435302751386834345287450932768127943108494936628982492277618010220768394256899928302418248801774294191736692241853155938866695580887355835679023546558536482454402658156071201973104083629233291502934601539711153772632318690179383527864540780760298771844090348552665566195866048149259096214248471406356667297111640633012650997801197786223400451461568993339017959204985138845490879421561581039019339966986685276400017476593892579481297488773387804815823656611554391434306292775374458654038396672002732065168625852436314203039231285719248319367876203548799858119960559376209698859715032558685906096077847827592612826519029688025218348858094018862585171057251642792578181512225428098491482805192165591138689049794777549792735253380643135280265990993452615446799067163931333484627016125823420642962424993611417205402110548596865338349690408552932132515411980985637155138327301679805250904933972840908586728533791161591439421301346774060569686977032602886211368728906671944758565645845819835787902232021329982208466737594491767401176716376410722158410843960243559881076825729555233202756065519600603478663929099478379384407675279819670956106189248713101390077156111356179338746039969088379796220086743467958986120451486685965534574931690529012450161784272905592058972801675756824926603077482580835742937318406518386778780203142135129835311754099373365022706791863337607859636392047816500352550886213155777915462833165758541601240891991483996375817881328396410422357858755214045469701717349138863539593084304280199154633123265121632762327230521165391995235078365447777122717421118061221558353023606719626843379478948147595059425545965438414477062108933695906060442367862060081654623968276140940191750264615352122547426357658487036088759496334144906507143994488630506851127664663710339200582472851232220079683200590230942316195409438563786451106251683634737250256056957410312365030367650448267042443627857217544806589356221093253779723760621907389371841066486293764142824917568288540254128643074305281752593229410638279574847288823427962305529348152865678274654326576273023659071183810496022932923938445071979050617211554818259624965406168695335369662644248282351368554180925194793809219333140537587341970920064159650080782503996112378620905998329193991904252877461038610380750235697677329019360096268700964221325288408306187622108405957588416495713118968252177588019147323386657708813694240062140512152895750241228292191273389287243235923459497322011204421691254734909084248581545024120653448555363107248429432163551500562955592460855540421854795962870957840816958159479953691783113766791898376535597646975127731441249652737156063464993027615754472753062991816479670574342472754539474554184197115470212552601493781692014206903617619750417856778077509773119795148828475388797090082989804346767263633448308621288229014981153755044078911584351493786883246281845642893110425576520332087235362638644283506381448529245528059659127307089370407097008664175204090932683717044155279997545121150381459523652451462707952391920330708986616974514855679349057871573466625657849786348320364744553814567343251145257150534654224376490177935644366004461402479818432973738515543414265241732932466101962834959657236206984854041920754311200790663226131459628121800127629385640277995577274329963181960647051128530368168295106244891204227257485610935345084395458668782457004228055495700898499998895812766163533274547194217683725738135183638437536959854513735912147349515322286599379506864949545411177031352795072824706950624365891631529139250154319907096418477127990355887117179584267688852333207532955402758935231756005586044342106401550805457704953480661300002770862270801420587297159869259592658830884371619858097536643162542654256015028722107343532514932240763905061717961445910490925586542551339967957967245683978201017294989944291274728192826739682324982901887888562827688772171162349988820499409702669771942313874928227064620515369235742196943791958016910937835805415534168688804477414514095600328088184007462293688864005238277589474222663663124812758541178845829589852719341391860445766897409152246556693829665628798874921046286653600398971202976838376021038013796373476242043036849688372368753389480800247275312131986827862997009876088561967277043300971110792693753527390891413489511296508979744294493179154238633333400237955245390140163546006109398137266476070293571437428807462321473519695583986439760189874753495540083237986667976285576097624762964497443899217201726067858177095928125649305096490960757551249749190399245445902484037848603095335405830890016783991819576667156432973828778376679820431370410563899843606694775592961907503704580260670889945011518898319640725440351049821129129650659815016319468202958586500673843321811473860147900101037921722709851430274075478929410762660566922978968212014845882131853589358569555836854328342400543738658079174678534747242622281485943616778466104310577255257887824261225185437401890466117085822839288528067259801000463216962913597599493040062246296377100483060367878380793569511719605402619660492016236139175344949540215380731259549595540890261622287799899310477915286591780365834404818201236327306828161875111762378857061637259402079380733362523493395858076551895251090492975480871698786002164393019759271154965668597592314750400366092031445120473201996411779722393088093510063426797827028865188521832338160345657770463341874750517704259693796141284383551704916160692369008130650679041885638420229422794182216938079850772117230219770092969030498383853400938130970319905007191119062756923542757136826083473556833977507125151328132890675597654719755998021296072975959524277209741858525327608931712993664707214806441338315886460640168124761262274845200966662803760234618265797876214075825057287952880130945675794106043510955888739782917679110660273394869159328685530903532021435195039385013097129965711379999458863662317744392492978339301220468951608902259627401820274558335756502470371404558193737387951135069565528046607315308299161382988703586647139313472809365736749637413585590580237654142455431771872340927376313551097218539234891671202920947052468993985021028381891906795335848998103270369532748801256871519306048887365012326937961693789521495792864757453581279305764601070220163986831241607567987678542899782712214905030539638562637753682338904806460237993136006189004326753454748706551421819055225109676843052779733367724292188623692343666821854602133860595287815281317508380686789301318085412280253756513212274020221137581760432645655503018585304577151880750685857859026045988336746918704926696612947173947008470370863312258840905075969967655169910963123407897339306440417378894282970210596677910083218945073524276696235092405820309540995708560530582629762420729386327806441378979467644931501055620064377973905689063046416693518140359655357623545811688147834835212470714999089175958681979203498249375517213877172238628051072000882611087847884583001402062958470098523205455015673325464120559846538506352504391751093147828458186714570594429220842014149434959044304039036326847223258214807961663601255219450620529061086678641501368234668141567368713310710456712376593056592801582360330752836134354959807882030711989425310639369291644825992366023662262271437985014107366945202518851677146149029491654387629091581721053183250931311098386329104386668350723594336084221782079066241264204118202499183562445183409941881887133758803329800805786432764791659005524618941301459886356511612500623423042559170661042709762435352490382017896031958890318243202146711307260686055889586847667461198148296674166180454972055737810869619127363917085179491430812303496769495996859459458309533692090756475782897902331999984353532759900052196325927629332261875969123023028999853622391862217805516552345573167332844670211828209339016422303209093921702960735435134801919615465288313381395814773483159530272095487004521068685153193853354164731829314481972616217501329519962122003761545867998256780320417017189269595497147359236040680424240684470051557665261817036502139481198852848284995320823118618224347134252737069984670482024090171114952238520009433182579038971319660616888524325848166439122903053267902403727444691353148296821557443259665952022294907279150852187149863833312511728759048434285982097431984268801264534519945812433274428632528486757076638354620109997289757328474743592365840100065291154664253804258822744923814755585495961927559000168377932627026612128893271378837082008804622821311362671651197765452722516110232773862519759688987396227992280831938749434786481825505629105623090183014068280812630061291976192043936512099422337552585706804583605798977431493712664994551569039020741616945491233200726148042866205941441718466040029350952527032116258112176360107095768054230990193340166785802106965642876738202646607235846028700234995430495816833830785855487261802906972237173090982222775066814916371137692336883356866263828736201943939845276014591084319608900203323796737320045957369276735142456015492538468272679287968316408702716453083816909653095450023632695286212369228590181155613082692687532771453749848882355883650905394641420091567586939135468000448220812814474820282741846008159086422146571769648765210518627241672803050113139409565651106265624192688766797259169553966882536512442708310323585723345203142829546820475933355726766115455309667356782612432900714772637607573746491358871448612574114304216834409767334729204918131554718179105345882867234596870387818354667595276326466332041756840616676171652423105188535765185201021433803744580266662976940199484969085213552767134502653310467153187049159807966753355561736925008127949250403329129844822016658884297741670325744550249667907217072400202858755161260110160948117418902594342549548963691757128959687800417343590828009324097129804121912789489914367525569781529782903364553855210144273433118521866437427031263267052440208814641760334298385443563558900546586007764337034492601285942584229883301511964831341602697860680690598565826451222162762446863985140663414336610405831639865260314721606627729169600736413795983528299019104772855780858705213084269747214565139769179298363069955627694956138555520449274550041961687078630712752467888372611165106031657008294597435181326948422981875508498029332047723661822626437583083956392160252107949145116376100349590376459400697096328826576209173069579168286847929199154169963645847337798454309510982141955207083785335172575110901191232011559393634854021659119304809205315472075054695273844668471351553452985721363158577442130676190542063583214177764250284747213690685642271479021514755425570461121598393671610691112901459474167019657226148961099069081081347888214457841332970087755415364796855272554501929285220988344869368824123663850308899299851766322541302669082466676113318094639603810827908332355635252126810766638800089132074776353299753188198142879817471755544504493276034213881185887831505804625608187414684334405281863338054776200332005853418476733884367639926065264277478959667276775540847281193938800404323404171832430556913756777468552677259575309579821582471682701965609293532926161454801458696334479522715871937285777675820865043445876209520109275539358237265015224063983186279403900923381346030448150149894746768157810593917395597347021147095327996212487049346770937625508141660328676982472583788296558795172510894857482407964964631558219162261273070520867822904548447667619486744716341504357017529830565367387125935537442113575012043431275377000581256931051619110092867226625356719827659607134495532790320554870206189024176668186795247602614844886995983576576059891195736034353409855745643638732481995554934163882336120655586064589180654695879347440318139622329705472413207182563761299378897997257743450855975281982591814276311298084250643702596038761963154472256075691427320123380236073223768083250060217350089848091939900474657062259887373421144560252166423737817114238793608783541443584573405483550581711840907290920555406018387633726934136516566070371222288384329659706640762521756291605974012378368875750529724522507185534780944656680540744871676691352495349747264716814510010544810398363557107449937205789149344324847737610102096121900372408172892157304117084248019140561833478504332740350396679373742995552729314639472366349343923275617354173459951178104085113001778096754677644154303666913115495910875892187086997776357417769119271270191918737784835841988242891016554614033958415725637417299161509694417205685282694940949479163554060088735049125826957999070144769045084095019191337567623254209715271224921071432487307250844702496197246083500977622924873812726041277623427299309818043186220046630921361268208724194531754459252161871232313350208415620526241599975655255289725587416410577415777496891428764646045693859982945093782929797557492631784626991893864020054511673257621457819637526160661428771507778580231961916563294615367477738344709682540321581942216261782759051770583924488598469043170183672672059209153929373377701415969035474646494584313383116004074046862546599612207033206982644670995794332341531956694807077100412547032518944347966908910637820642112273038824044661571076073400399955781876070386285033501975915013691376902333884495605445557861483602256622943948341647049416127399463285995893898954398454363993186578134786142298553827704951199002350063826768409395578866753697914761293628574262279067551427690046067642858741972930514496622272622430481809580727976183745219578716481826946884260744135808650466916662349330385334024124750094341309652023715830683328891947476709303492639583518862780577823772628447538667895740992394173306720075458732208238948883856619908853815570144330328497207448042690494168578661450440094922590107452455410022217229552151956710110745170831959710024180919428049596001614202140313672160986724670396215785780442792018983917429650549167864536674540536066469835172271435245071249637997572423751219104624103347128135189168360600834740266295011548189661720251936703763694002215512221625756329951476386612863374483143593402245878380613265068536198790983180439869096492498602331190834069789427182801583381960832627000318426732660508055136080619859336159978845741138037485110537904677799921682891243203459849195180932762568573772577684791306968377920904000386414619616937226856605724142239370769906639106148690915249162618686639805086823660424670151256070210601590132452102285534511584864425442327888467597652418150069203127946018340333943336015284499698075722747969397188522959068368637676620443243134246420669676868843033549810659940499223694965760864711673128809920024399091454530877002752834233698918413526868066963806493686293246240432890813138195285353816113580108115703113251145796458184609828972420074373688390531026611637380213893557708230596895180504999907459720169434022226104736020684815378272473597200890261755199974573481415826918009541336693405960485607936695642856649689310903999190591490233323180782224703317915383877155772307584851172702543418275540033047008989208540138873416221903425196060109401869498272119773217428126820583564297028269442997914657749695808130274483836386768519648360647109269863556074970944405301344279171309269758232623966541754736410121383308268360115154437346613214963476637973177677050373182133027569244932567326754075644891088019825587280759979068234863791016038106460593672440773367241866908016060564353305311517787663309171964466619923335242653307291338775531670955267964806206734453606253525030136674383079803172293537845577913985611478651639027112436854909585000571848075584729248444817451381023955551466638288424549378812244811794649140650351683214055001044860584412265449001482999635442322188848940678818673850231139062083055732408125319892946283908969654418222605345089354432621213587668312037620839572162302478712752012878824574829347039595458880849281460299475222044745947601279087492512225111755573317826507127413204398705323833422220591694730283282801678287306675929622565052523236596389803432142547059665702868386952206318453025043625594182756272603277103919702470421440721767055853947729649730215006051570504636213633728268767993631583009582308892351748057363454493921525453437462552375962016166369932598930689440298283007167569307303519413683657290693549332343132070047896520771575698049054985237524000336887499637407210571674644009829690933239861064544336573783642424242420236885602972791832757804378007851122994550299314492885959245516851029604198641266931196075793132464813911101722697156457783386824182479536998900213353381356532432355757922359730548568025775591942282010147508578065664953606101400503162212129486764668970108573930283084327783040160005764723989926483757066189792898150085853975651528171010749237528487827719144782059513321567010674715019073323856081180476915523488626496678243617736759637011554554851186014449048245849969585942206176727842610349389176903737888201104178900710183058565503887753879104193312093028570832550290201179744808746838777618553870097479822088178689247093568250039797764720981284540268362323811438979582241557556141358730609459551723938512199425799549129307652182225173267958731421162230506097703013866159950430498209104598984041215753258708717550936253737923018237627206526931443420671434908604708384697452474480689573886389830817879182959980916361853378983573074663072229761534808555254177141364709554568079676057102988955901083129470141328765341095687381736299865637254358406113908965879416596033110674659203635500403722606617016204696252423166787691712975985504122876470842609004460254688595826618320275689191366524424940128448247016342370862612309012716217875055378757910698461741667283824605200621588139016469449286324688167296410882234911856475287087981317278595164528058050910884753749211517808136619812538572246329169566350849059714570689675642236834707594325387796080214541394977677565475237311693931445624643359277732155424771263484950108564120177880038628095228086105149605687375665262338827051934503257810929857987696014335855755909966718364077120974679773002113691880782615608605955012023058910942849491397106863175792634080433871291343180350598713216314376315236862525926814916897601494402484573179736369038453187573447930456603584750150316036583441322847692839690688245655821464169686324133599340430914047238384282373030338477577323111184016238781651582778958321183965559828197722558646261250211304109776573176911774941145509752391297301929420347148604068006336199422928796081581358636035572101928475672433314966967075682839442879416346831599047927424299108368407595994057913677737634798535951518283522093977254895770801707220653034896441730455190734116983894172451724540742248483545278920627345324574755929425408109084248120644008012155168706334539573228593022689425959681039738027200350066414060914747096336018169995785381855743916370691310852528672199395563421382952762656276474355309333159462422232436389930884130517993287524356213116453041259592836808698489089534267135608094505939347792339775801992568573978675563212926859287097897247172614019155164353094188141378484672629495772210995482156536092151655736704213426645798708978271571641231791321588889095317529896333239592222410939399905331745626481564511594250035524714296582241722212657420874046541610195079086795978589505370811916354750132018279956164401083048513593690148508332261618849033966580983861219859194764779467919745360260758959859885357884474543711534055633719022645044641317947935541128512630825146013995213907755459670609133696958720934681073227858054217493846899884848757852753661960146353041579836575240778431330236755427974290062750374542860098623387534314679953929960385631536029524855229278178691784036592601671488557653872188826765408077276437517142028046311709004283188512524460606749535369045097801351158626311953523945003725309897757811155099790449612743496547175964659981521497840763167460216233727429035583835977703413668907396959886594272100521865410536143388797158914987823145518479047859198160588373301372299196428880928481064689679400777263169190835330059515380666860289592580888613595431717073661969082595882337804729979263580391735023275503651758338538699530035185868377854746853068911004480186577208521478272965087202373344345655471770688721297583223595710423233901077413111104554833570257703529908174116206217852430289496951883765353047031589216090102037934762087392118648739101388676012759866191737249768893234584098374484151284387864324592393302723518141774410676981663089422520807456160267464836285699111158257608383766978311093611248750675852062001286059312421098732307403922752507499487527492134123425782304627063586333152470602255520458427557643641811450874774238817869560427647234672336213554839602248111284617310589748430932385424724695025720592214841642052285911530123506282163613195287745131611163514837187709479420969331853528161733442346176064002628356693074496666021823495613623801743564230890570272232193907200975847366101510877053828947156913678477799648140006232856485521238191980633780446699573009365041103587589487401176376837046376902902226420999155986936333082518116652799363751753251044551563002696245659577827046678575895151032979032440637476001445633289969903057566901299413989103130252185778602786223495454368855745747150016919492224893972950687677292171658582722599242840636939292929417194159521848119585030287254813927304690281451840471703315007904689110914490263459051241007066541747950587009361839638780196162696668569752262323958699936125579311603779172192038724806241746093544788847930003739855349354322012422177027517456258203804032817065824127367046210451268487444481269439151917697953258703596007077670122745981806713888621566612168604324261577523825031840660985610252865216688513228264707268264196650505444263999855563292840014852888373831016675651887186569085124160029897358825293610286789001051162677025203452683762558512178410899829573825414362004140623205522332981240463959021874799698261659564041803971353635646540837443798818711961422332111527747788214033726767605500694949505645040419198528279906165083792408080364389540864666854953028326425537977885631036018713364385550239846829822744460771975631759961535247451802982731675235929117180580907022292528141116595623028401739400980800603065728532274469044794604868862743029174264882112806508326692473667300818224511958203442027301634323394589113981968526853030844879876744596599582788143556713898223329622729345294644958997619506951517951164171966952686574044587157150776219188115687466694698629418923790038982832843181971499608911487950965333325448793310417644461759458188658125238727207112305439117959559910645161728320824593467958979804011113685008087750723893139911583892452301365501950846037792424738094626601310061166167873094440205554679799206984144218116058329259645369908264231216149532182872191037496981918798035492023816264383807858201906700246255913485328235022460114237999400001992855848459423959722687291235852253146856260805263623932655457677879158481479936210450533464212696945472233024624532837866926921889497454278773859818053369999503594780593269698123229799127407731939235680218652046995911340663635222584600399009499742330963200930743732746380871968934623188311895223102395651164340489711065715213432612037881823364608434639899750060775748873103372730603198525547927486860711988241821029177660042577242487192699044971110912245809851792554092387958731831719600942706034793784111728761006395683227693340694034815089423781387530669891003996817635683514912478082000634093833747213083633101606012459566347590625514097032132385087630956735843198045827055912543535519284026025854304597016653868347327817007528325123744297931504632623798402545064542450081536262894002087842484851170946900947424185157292951351546642648012558431337642005837884560079228328253728376545467760045007049172194908469114816009340970700863123777974388684778855903275007728807233600021198942746938749429033440817618146359254996823629301596660882310063727429935823078776283781487227173314893807944468518895377656334125172185323328615605132631586379434934063900763298303619324192575191358533739056230443976113168899106062268177496233805283499348532002579909245405399571587682805658507771766045439891861271116603578692376649631961022581535530360475287478930720665293135510242057559678400153670985654583120787478761194446688843141909960445848101080463380683376777225256251566196577288459767718259329045674309192815974740305528913219585063996939618603039698771779823656941321442196494848376669617137256956132206805520802945123226226981059410040143857613349952110335519112873399759043800339947118889362606071618819527984259639310824666610421079690931954877648047323870042629874860601357630310675921023074612415549963594998847280272222158794716918537802893890940797721153346163063266151851812457746499506047311725558738728707209484201560549437658439676108115986511714433212628422805055286406928001878853201274138593782852709023274358147872567211315235347804349887563053241567320898840074553260881578316007003743970981463052753741038516024711957215695021734637520120878542232219979235688114010281391003335664254232392310116677878243110992453749667291350719767322680435403287973656063981932857532127286120592771757920056992433383552002088577478692058040137089372799228793906943957635496239759872650992340777748346089549585066517687846507890182534379270397958769421300103639098569668837706556060129843918646644379416100080140078751753005618831933934967265815016214240846572688291129256689959862960231521934064280264728341503892318676661799080231271156388905951336166721529538196813591060078374563903216552973475547310199562124285376623210031980890053913234733045882585253081812644875750082068200351769038824529104988865883614672672818651873145699455009089305382523923077656238098554882350105022311553828288312962188117452819784924217739032588509311093676897447021254246212234810048620116856538601176313001967466598184267624160622702164882570049351800480914931471420630087203280906211851105391921270219846085978767983232404096221889922157049208177744636532461391294985985790048281580847862215259726226405204630806873294106200827781969078511843842516403238878506597597765482830830474229252666919877200819183436463446067558534111061616294438581199200371502901996310462413757248941986828021357314883483098623752301997074237662084176598722863916216027500641955951463082377543112659795511263243011331349952781133327137734945119927068633080026214207138805869798496869644021954550520519347722457393165156374860996859034422854565196281175878283490285318404944597486002626288502020515501695140577231897833053583526967608374653933451054564203272518729784662151704863368079585683125056641019667509833623696030937065646227092392477171922114362325153706472578658164355936793024348853055474357216056625913062450186242934151527959766767579481548369069707199380859137567486092108121334273266113136669062192934267835276608629183200104031984920065183315976146657082673420885975890487489889997514589766423408837870866749371412821566187410824243266935688538512169483108463087173585201721282374949431149735874546259404082136459822252443095185373167685134553005979050638132715466916701998447948988197409190989582926534368964150164168589250912122584286457910088704427107508175878682293202977017867457506989494445318160642337624213054035022052289295409046725246355671242209136000364640312137894403584293628760777478389252159563964239305636394174286107701412966471509425019555182522684341973806792749477355703682222361186610446570656752726381018253934073299352970526050492312684369184108025317913458918302978697272702806662278591748406773182008932891309189722891631280924835210071750565501547725347931862413993276029538911619278234770052956410052131316968736654635638512818814208065950701149644081226280909800891062736082934647238922541131850091768304761124994769984191398709477071085940825715279754115295834204015621611808588772687791561467929623787542871449986811000119845862332037290536499268976548846070842399043436644150790218375336204705705670457966738534846039965222383311474286280305460678316801288908820808724709043063702930067535850386382742484973065063916892467919700706696317888994741702597559429045938522925017510107338908168797573431285284587564426893426176649493737796808145275784430880576117422776495722681089793205232363692080894005537554108705822992415363974633462206251030686308823877217294384785837128368273299785987465701784206202492178482116379130672864619138488387547792096029128760377789482818390935426396532066838568323668470825165997893322359660503363999278895356570521338190617397039486431835487860000077875025302969068095143539949652240112070327627609745340733811226690580658218436023495972289305463042889274791766537921357526177569922343224357803965913391998458421762648064184983123778277490369597298012692054557408520896950643429202418499435082141401441318915468298802505458614255867315765418549905393232280128151229600969534189048422536119135753399997949473013567878992561133263478543060581815760766578809265525738583339662222503830945466246758756082088502613648221808649265500761744851529763553702319831430433037736220583071499217261251635219852806894284573355189108785409058294333431225545689356337130885465841457184997410233282166433161868327445210853159893734722186433798686602897220534123077549971341833044039819573888520992322190481650811146470245053479779388996274396251805691924461876545514396064051231221502854506384490711729255693785636592478879151134618651080893152674363882878569886397052253513959034162500606773138284477032921160540664850841493751460027201138952558109840260701879714633786858512829205068066077567309902951351679084056312259434807390586392776748498779790825695134676916326276563304614419213286983488901829288625754453313152542476365156267996587066837427368679995777074972430551179115893579198023164341281385684533292984319787611361307619715460013000557598388075038531649961590016988562251671275372734719858746928343756911141636847755800387457057070933477336692215893993429757393575328841192906305142574191904592340828173650275675462734046244055162108607701548370381898218287814144086504841945022353320979806008229961216155429344440399218020497663243685295828793065957840177908505081253571861497307918269698915360383423375143432053025744901262458226555318276133126388382426423244694178788916768643983535944140576864203532076124460240482544815295212894816120687231622121222348930702878994061831633124972192761733089222354752248767979405674014725670399910870072467654160509174774009377211706872883564543294514776497211507551309347585994097077669851010474737424355376050948634233023751184553640491726397547026249611856540346219781743116886808893922714178952850576223972206914425125564093154310452173216977284811307325076494078134470293958944675513333641962169933481344317927027086768745391346335430317658715764150213579126598982808394464807749863648909582439787252006112273965296284819831373309386726618136146839305136272513489752877828168464835146601463862180138321374268608199505035654684894756660602012316479540694101240445218378251327577484621457593575207715506260984415901888422127967275985285893521660670221928478134260726131000175327918337489122030605186288728930185369099438622331158443415339209662673754079768400276379395655070238297914799514478146656087466900357616540847957041086298621979014658589365149195445405624175109501986104730852143857676675698569582769215671553591628725222432400993833149429784313537390615693532887200638378401193797097817602049331971262658264088295103418552499729369386461316750965922815131982122086488903001293503630465287375995084090686939666141206995941236572910080990737080472430647796072200381517837492384996503026587508477021926421462930039918728575482970109207297730920783130022306893970339962337393978999478039054877109751549835217727969538044408886641793478293396003645574252057820175444265446943304121969732908711421623292514083797829306330226268177104254260357721371365000931293332513411665962985475269423677106944503484576459809781477712806553301578321213688442647439706089579423431144669070953929160394609540795801339550400470318866992505736697324399360947810983545475381293574689936101171518641968932527090501787509920215952391757707256126642446410735586226965607510849579239109961757809028477744735621278782698290809101372123351700735965749795600096190237283207182756233486012283391264873987931522062441680178277253098230430486515546521850197391072742104235314094388667603860534808094296566154979826623809486988476451133758286448726804167892720796671524246303810520324854663139370742506037974997846938115821861864181946537213508446411268895081537878932395319066530472915448716865706598295163243122122684244731044851343642428853907104198229207042205530453043503547903513613120110223339669728728429171937773941273529275933082316414957316457423475323389324902315924329467307523566011001824558699174561991685792077835324259210508566297013356740803261902276383308629423021266332277877864227375789836576042874217020778406185561363574608068048200101959020686465628669539775703306741560179706077311405581559619056491611864477580907672777371319897563712424823808233482129284667141437597874494276888961147310115717379625017950210254657543743046418813535673865861823827527183863341215151443637334358984525427444354728920326685657141235466521402730350079003475202115658701789757194435917700144081682915901714455886511441805403121152529496802715934659378820921813575271368758813903989681405977306612917758000357801863472715624307177419893314116059467098981594618530962667173431460758225999207157225692079917786449292756959157749936851581675405881340306306829588501292204787707528480958618009093794964760981447391084870581451895226756306076455644629560415398043522336009218770500826469121766180638340945530517287915627885818709716064515665178330733072781766240360581682630758507296281906803998383847125847959021640282593852373183156563358192175305695627517024687930475279056375726532040724944062308914645459145538815999481957570089305653823776557984920719019252980342744779706186395097731072120142711093830117716014220628109069534966099649639310854102196165254735965811721655892114551913328227728160089774041081078295256191988915940530282841374103804672286875821926641844435873117382209701363664571295813906989350523482660286472784305915005390984491844698088430614273132231663561313920468037907624097941448356550593943431255167477216754036699038729773898051517093483536421427322273143446605682714106124298725523161886143827936362945297267796218158913666599773755066326093219030068034911400890008797727217609184606178336114351329534498237106134652838658823484016939574546649095017700801092075854202143745924271525648478891982769366701975033138246215655651886227694106993092465651535932866155240719233914646485678338540482157813137574680766211119321716209526204980753754461504498188777510424489598612128242210834141100778617761831210382101075150732424603981668892577181313829824203224202907144235254546618156040901699009397719006998761374971539512629144572155648492619355327021333055173437564196382213302061121668781943376030262427197582213063662507136987907679431013581706922200626574490398598316468551290019349465470337523871395644304013722676552257077950147574205158948381013474027708439403143768234588217316473655917398877174845857360055026904518483036076740214001861772734552049120215165477488333527564062500554193145703372325195530522708500989450225727471784727657158411521108135355236829445641498910880706193902564950366136274059708246892757893713686735706474512775378037617065494149943448721810198214277680312104042159799695757587687718753626250336889367969533409486062520009978578272864166917897991060740904096725041256565338612503861695280787730639524605641538288847065559179209600789037647474754812983789363821909298419837563427794672491738967208995363684780762146559258723998490601757653562523838195598891434903876231943440405605448498981245719592924999636664999182724167003057237979915547651363430095652747601176937403864202536745516961202238906361489819271915843937273427314740783539267537789244867098834212707099453827544426601699950675811302708636172137596935370838926105676594273248251083260180570305744633183122661895136589907385920890869244665504598329240386363226619945442888129853971202735437598914482286818387207145232562933175227985115915066309167861926557854604209265047968737247320258136277438344464121808888848461485163455084064655442638713889139088663616676081708628301004020399277797858245994479908431234715472899218110342491386521581949827965103282152988948932574346366174219641285418070573798592651536721905070925883264275112608935371137545411364713381745819373105222884816900084004181161088513621939667687020063760456002897011293842252408000519615713093224933962536494195124600094789352090379236402944931315951149989508323755027380814975989703851117454880650656463702440395949316431544509812538905785122762004815515046678725245850140447947524308005078663699212895797865338566599286822951935384662917772674462429446842571154324984588223462218899222811155906331854141909352248253294816986792792569463849741085302191360250570857305362631142046616109254842203802483086880670114277770212173397837350771120653705517662937912617975758610809181780604415380054452573359851222189642145397071621249316012017234777901555700057298555482754891400836614049588500101147388433507638657064213915429088227190019750506243221512965945249988357750199179759166234800861748482736805856471876966043341761725174941950194210371709126325667301575158575556712223359517071881384917519012537594225177356722741926445058496149059237435541053576481266358615215693795047684257753721522630834108109856594300431884468998120348164147525468333587121937010725246914722118651625799119891770352590806540242021565033020895181711993446736680380739345495474189110214881963438800122950834552693005041901510016552023456679536571960078853035526798486063306458578393760558252105120565651216607398473487917370532666453651738743251137624471445953199697778007593794338478651854860459110492448363928900858793903356708493644630414358919226159103988220137012705430739062022801530360098627000664993778447357984067751173462363747919848934593554404568785531384576769949180644795390446756349628711750980496394336683219908761553875527976828455809875660064810052489756795942984796881199878983952069494452052174971008328792589390390796426940937462364120308284603533149555860655921985371147367782196738174911820496052459568680254943362221543470983853067052390897646641323146828137707902492161553810197798687162876669564991492204769143522114421562417465372753661517342738221228815390908520189384940800532157179625773354521631847224422328481239859195385860932997079438966558830950484330510364517815017890110259390362760715459362207133104807586407867631481908437468800940927972700859971097894727721004015592526275784851355202656038031167602089490696799512018703693386098135431929890412672055998269250619340967522741086816914273954837619729847008300836407251573958334398741410774101485384529583175995540133197569438797301003487421198927552973983553115852293347678619503558576357088466491375477143189969993350134964756545277708871274251017659708438206044692268528716878573815677782529065774322148275796880409133091074498973188334602196303255615338806012574127731978261949439497171122790455218015974225815715329830873396080062790873286473882055348129690451477667826393060186475593982475870872890018881607737028419010622604067895362828377085912905658154925549938980620121185099799373073495683460410412241853194987192844132754209535526524178681838911681693457904149224778966806815322075100336913604645746293710771585159009547894093687038742490684631361061800675390740156823707586572170734988181051799524223386431106830390261489917856074500717297973425608014109334753782908645900485103254249483324467380999488461472301487262986768785950247324315520294120347640327271347668750792786863721957065388226308748500045854376069735350796516478495493383343068718703777318951921960491457848757489719077998239116649944983709325553995884713593789187105572475387591758711572670489297724466497318159118029492653236768402216365015290221207899009701786405743888791407454033008001329127643310296707588144979758914456954540934219410381535786267590274044936062012413196562960471293144000375963053724867259106649315369384575826561725251561436274156574273006974401688006895516592017391873618976678050448235063283839624277421749832514107509975654392395495138685337356653238167013674480082090604859285965728242519148614976463333262967830725326782454940144900865757488706373233569735953224603968712410286406466356342904583149879532962279311904675131275379325023842279625292849309411429092600707756678243817232258599762856415315536577677197747719561513869388140567734836295969361117783283254106882615949935609928884638229648404989588025793455293602962448299985203918247404864946291623378227848147631451332709396511801272043836815616002836221261205857673628617715173688706861761402132001325063578953129781748595039630759030116869583469344574807905534545881059334754995449851995626959487351440770289333079188100213175167756994739003026964663236686986718343677483094805554395215151357636248409368790915063840611373290059187015306322516792797078085910528113104649609303784976839694484561912523053426425212713410256522364608440008632764692133578653361109560156152369348475112756119940207372978714129349540211537784515792213129925615818203568436164761446990477894918552341313222581714760634341553982933275302427759456438575720936634217204965931684003419037347157824460011909038421433053773962179839838113658744666523466263218816236353490617683062241924405429714556406927491742877532132821819754420856444037480071549450203451464761520291866229224578229805729240713940087739281385348583029353310276190849446637906511613010864614079354182787521365368499908921208277888929215978962744108469458854332693639607715675158337392943556320305771221303510753717126079902119603083559850775106227672231697701996954710616882647222099511625253442649195664483835445077585556206513594384233658465189230390725432203095223214496372194360875219601102626764251976393067557834507945925355079849184119029295822037276451051152027828623607548498622375180771773007906087552709995811366370810382467410290203749232485436430361649361978063370010841885187824903465272128675598693656173386709440045456277195655672037477192694652661862167254828576256487179043277598352480676870967724699319540048448211095105183286330695371621265907328554990591161176431829576055417440044786206822837188012538626959999254993524408739279278052776670300755653977921328738539458878251041222540905599713229456668933547776732259263725983260208894134408170371656563567184992776305526231245729026548311431921739026062074973815867666284579505075828357650862570220233219883759269578050170622826486016334753829580043941962554628321357584313077207174364332497121981426026313806262567375495433079497282371776362873364890682076273657069901590862520586557051923374059989251097564210818464869200187504952177071346424817421055644544222189411345899751376947515743283925523742234980157028083555245100189198968121855982912311394109294936545252937332620690536238244671140938979203310263980200625547117407692736675894827876437017050394691380335333540694523239441794881270861385016055387958813046601904982611498016538193443522762712066240943885994630920471784514539658366920059070738969976503323344250707040323229482904154433017381342724438539540074982826434893185587754810844678046109607529942773863782525045963555546237113381971610064917902337845664232154343182620683374384146830095153592987083388853360250240339299872935988657468972506665082802401882899541854439158692109641116656589873136700887008122020608904403740067551156255343388492485283253788773745974070542059333939063323897601905442850607168930818478267138550850814484628212923782252917371871559081417018857966955078467269959435654438706213018787796149636769824016579949702481115530630811024496442162307461298815561369581290584209235726270891227772438507721490697233892297896358089779218048541803326993544668437648915310137161382984818327848039429010985655514550610866604051712509132193726944682043592063265936230578369140308708572166111944778315714668949802881752091475844125381018044573967977066681659250100252796268227718623511830802347403919008275620449684173454039262940596147384649093198838990046225373051626023828003091242790454880395171669155658945876506838380644286800958493054129250047179898310528259355068489952462620953332083503236366967894143909117068272265834604326908196813300256978664164550929810823053201616835432782614612940649760334285472989519839504764993689703157666854238031548479108009799983914538888960069970594391042320062429593176586116782137445617633316696308927203972244235156420376949733905877015023426140768993500480781741266887273050974701306198381574955523267793637483242487620884132352177234109485597786144087931140934758832576274788222115012440125300075075916634851187016256929122245112489889651871271275777240253856766836783222876676905888783639003487640089994163755755340322424140145934416671416692640589086205397748580197680028385634114854110813355933528199691200462913999760452112711319012235724507216097478707074877539739184759900764842559004004132192279442160480866602254345541960053934915268908108588140001528575109683113142120730106261747008013819012829236120905632040551156534665655530782791340251111239146089678083729083823015293861426153555147234540118497646856865161072420027326083470120667313922874324417720714179683655662176893301171725490318274800889974770361038943243194384528504249760790257021889622654183142688784178988308455271748991703589094233144549267584383913222047528002198458405646949817601583655468711463539725489122770845165354629823505128313346386237297551979795439372929649910415063327174647653711444334663950859854147276205154731202974227438198166438311937762856698917335023792594372302332525014076013101976254493002782679102276775161294225599064862203938010431814009483245343133329009139324692523738305977307228510452322504771661866700419546139857861982891715296497949640938353045354958195892324490704143448924018624901800494791457732803324161746361101048802845286922695271067116171732027275178553884444745795485574827796954031172194607808946166237319691424473217669792834398850882487636767741294670832268736495303971698276963025658058152419975038704664896726081479141394274768791605745109775118712007244211727806523444390295639335990281681081451784310755624130905644333474673279205667699891531516452281158959167954521132459884234217706341527887339569575810564834295195527258163849263217433572351195682457706888122311678610734867125107861186452288641825766883420795005525953515854782488192589741178331231746791667705971656484662485867274532261336711836991002590770269042139060402504749043980860083179905118019408191589645909006853171833802962144649868097018305637764863758153133066992176100604340471612395407212962761637813812424858075275445851729729099321361904287866363079813043831109434181312422921349868795594037132690471829596166226030081400193768055118434944649538092278293903279393750699943797905721362678003538039251950280156105650498684924606448441668980960449400437449103282940328341446827773141289997509202602506075421731808694894644524895453479725166436957640862612971495794172633006020529526807479799332476734728148667263969348389933655769970815056266731369582107514405271061545690402990069573672341758833931062508757534579327543028514175406115661739632929131370160869722410076477817494113541139300412003873107023249796389379740285121134814144832165948852935321530127204682023949692325403490464784283845483025744618670381881138348403816335175340872556763841934013500345129943221291521765980083326818058952375083180106011742035067373259695787435971011618808923635112010762002939163330082333859388085590104735905389936432323245777896162479065690223003100103354777260213816286210197808163806105512686928584895587237046877118353411280591655372385834903161129301513783611925744985970367206659025782310885961312534598313444215448617857752266494484191648942518178790097617168486032990879410310587967362751153249467213665336177497325616873501864882215567883016915973541539021667620992127012553811758921248918259603599394045797605398848793314102715692026773010742797184370084927129562081235822094855262556362041631403741295185363742433707498873418399040408830425056777391788787791382600506751695898570338019554918227882717132632909412846028081880189607724410997614613433368605809397826502569249436019481627750451721473112847560435912207932971903523501701954060758013314275313346306494906193140586954529969037570787054531419010074836640016532699426608840797701152017021677858970350315166237863346522234798114041325796286501290475825663327056762085540305516801612057780616541229859828884819629872930077178750704137300212434263036370859289484384745125400777621695817509247693301508120183889781147251502319512211137681414036511810855141395259230002018201306721918434142839548814295736421578675974441858216200687490264683115369945993916676840007707967862868526863430029597166001903349406084480647230856004794874688670414046129024610827786635430244208096265927962253960707171793235739825169115882983915352675431999587090506171721637478281550998837052251748317652428140538154260667235526564219329006475712477277527021847861576633165311829538462215694616163417701839593277893612545652206553503230606577627992559877252818559465713464402851960517408759107018675971301864551325167954200014364885857538198660323729074202873635700639432463161376256448635292721114815625233022875493478613850115414104928276980463178394402149764695166089697582343519036747533577001189240949827108510086491495899045737281638389764175366579936451920009414817017665934190402454598680015507051309248324254920227249418653753717380837634693683190608596828976537300929939416640530493695888248854007029547976138822068927511354663583668778687480234165036776319146619574029189471324688368395055210338695704237327252981037530284919411754417934325131986470050312928524620166635877329775962861539176089227642446361482738286699498367140516470031126431377035965602682819836546690532237778294520062084757702496190003575980147991043934514493684365668412110553962880320420660866452574960249427074342641600709434524439573741398783032445810438376101587977494756944833170679485179406249514517943312236911942233913368796719000664615595630178933335060784841486461946269902727562578725045612814151776872173520785657653543356654231628065571510503770516350835389377851518933682185569223598914705631744282213257654372273650147193326887591468487169972880094596570426192498045618058476769325888732089736421330602341049220620730866964236965074075169370512946958348134181137242423634604269296990479530109535687130787259775825467879810804381107003387279662706377860271917050193659949049013376890311885537597310332621959296863442253431093136798096437047381819494401048713232584392774847051810397588746789536438870571771420555180057950172255543197757139998678655560911797534736191759562708393101015571730239428951980245893955853346599613342309592018476536753017827656966695578073131921200845248907173692747256714431928651674132000677412172991595977104447946016132758145800089560061385684301353570196735616115178022968087613055661078003627591824039599621203220354827831871852757432028200156477847564154068449175707500993333594412095554089829103752998058204466649300236527439534156069610091892820333450441607017541219582039209656398191512207974298133215832994710715758101784793828551461450987219988851460976360569814628448893993253447024479247452461946353526648314692803661799644228509058511370287843334206033798231243082029089850012804949935044302501358487941333343520861341944246256467364179596458095543789419989634084297470814924477861099038193447025703258239002243112578535862567751427969432501525729685131553302682864245799034128625235952728659835697263367930378184850491117444629242029425177501405562921307905855090137120960332431417021435351031189986405384456795591752861114832452439426128811850948336391760090817397804908611162552905309619381544056461145070593199005830884908790033388392243773614795401614631229494515844096018258421514904656883987340921092698293696240314193458280007461273736803825785298764986534783853483926198854565419612724821001788379906393311731667434141235250110686645803574929694103608440932343631184738461219283205962007211147511822568746317490409280752743852222890604784949184140849225613069904227789386752826581556645664698362155775897526429755231218231150256360693509876063140349144362396898245353632094701180132781748815268417244625296468049600646741543626065633553113502940242344594186988993485962509165180660617355582002703702594646801221221772583199791869152695369085850310714377119349849226493544309121761120529844442207678452163553848993409943774205563953486367770435267774808389134570861968074765629678504136154874838886637267301471455936887561228912252239557875791450445130790486402196488134372902922773059406099382446823152513112154462602745314388390426119535995552427821088948975359688065752149246872486170052113774430289212248238157664338351815834909261969463856121288327328094776003882622429548884487345437912541184121525659444691714394705658896997860456251191698763237984906390042730070237120863480420051293198654568064575368029091415279166279394285725391326819751716009365536309147005946312308699467714538777320780525339915933726741617136645390259494001540676545864292912331147092330754152449085157363155528761187844795203522906100926037235951032805218604578672440543270537697510205218705673271322676041374675240626787940527040630101037234728014869286267860214641943238688003666723840260600409660301971417655392584394208777191837828497342578922011144541374262693807449775102083579697922673544236704758763036081055809902882562592997908544054402437911830565062939509310204949674114754847892582885708744701334428286626360913511531148609003948007994683474537052044498736914292580536202405177073679010387989532297321301390796140202750684978319977601110165909632833428599292284725225410288207851088604229687747533006328179585648012292243239804137416148372988198376478897149243469404490523741640871560114695388655534280473632502768023780373995000536005043656806420610414496507924918128028976632707049060191102794027238031026133027967791226182138086968427088074660400200151023102913513403175352414082499614184555218714221547617091987263303832663676349663034049859279088864833412346258674263000741216540061528250316055509150972549216180679570015035822747234280637141589273085692236023865387276965079426811401823516077769309766040398840771325626367505518698998040886709925435757708698991431601960371087642289956196252788504244342803487019330660859853523069487504013898933344344585507985050212117112479832168911662406035667143717186884380759898361538036279054043848933438340505034509158125441587321662635605112183344864395313189073530674276090702759770613069239914811342163556753077501354966631321603459801886389209940969725524638348588112364825989746882686010132282738152984599100775951591244369123946997438892485478960407093126644298263365245421358357106914437738924276196424736206866137096859442285923858012395869477886350334427148460061565326479967675716271128002926696481685865530623708832716899616987579112275680833888537612923502519769407800966751278298838078762370357958077035860404143395212334103932018521441988783670293101753122725680855727776373683456928298632941615611032075730240390744398729333638599910021158973417619588620904265200123771857908959388585511551733278825419847302885038569088732332304635140739069764476605944975231183699153681120136988203861659389625405715366350479087135789498948411957739428229452717956413795909220830397365136311964644775502956731751349512617013431170803569498893500780761823204381341785214321932275136629976831908512812292764458673722828393025044309744736974302319510677100759052614172376884585538410112760052749006286691026234027905174394745659001075728770661691057323067040565728298479108051309650243466830443307349110506947000846430358711265163055191719328624518229670730621200562900689482695968829175576242369639968140579576967973004397332864295974370974507882158555326501620292758887571332388535970757444406910016684673858252538245408409525928365789679068658184463727348192420011265491409290424385342570090322690124703513415294856640196380415178959319884553170622989339059956779081323277910314436127298479031536432274033191594145496438893320621826613989121078721742516862155299778358927860784047537166918303712141220535577068449106856354667421110462545259228652950023036964517420517760987607431387656426631125952715279142657331846526245658621521113527044807178973524485118973267618749105166721188046492478001470475399370005511184156056049337550920144596584421194959055616670045262788002792395117910571286149260206349429913971331820068266807232576965798405719067239957103495217105384925876532622132607977422623472377353008796610437068566073760931251735783721334911301104811706187207057931786694430201788963753511114477541243573084256349074832351064806698481597795594690517089624721744189861739040263307508620809447205180848514170755699102079124627485347925788997238174859656849539764402550951108498095836780993094759003896275055570865600533432762251923369506815838531993136508825669153775490386183937111950517816965696227314516381692725765844737707712829188544048334942191754497253170454921227136355452438082029813166886717044053086808787662038644373001733620892047632561598693026079620426109866536651302107440782713256353936339878006380146602828663243800914523094441671794975957465963551000930652392138436467696093932189691091540483859147551592249115446715246878364987802545824621384828722511699125781863916497382032853914642618711785545363919643973646485186696482110926118331382948890821565814902111262570511922482443293859331158385981521637192000920284596291471605681538861258699827101894558706007724151431760019542910655992629129918658640869719918644488765641216637062168513147952391889482677316952896051826838902682728766045223515150372017205755680652830808964573153784664274610298882246656011624213499167761328892772135466696913591848449555452262945025726287686455203354566703910825737641724839683774065529111436898775235072257962064280172622577394059459896524421061751471014469715460552194468248703141187048217800937524772639215510523495999708596293295600268856391269957284142599224836493957130258600155702751388023083933863756472311848521956261023979858831908052530916241712896653464128005008064764821745246873499422742142816843076324510191088651898400774264451000362206106367172507505469077296184796799572470831301032204066747147858951929955064782189341915110866733374172754630479974674006453396181909477093891137576000953032009747829455284388211321318182731884992928523265285297878663642394776907983960730133290906534184680729078190140327919287837325023885720862598073319780721239999556971451955512316854939216227807697866467422627703008926397032217004322491044795639226728680034351356578679284629904996175636819605076050570955393650614236566722092531095452486250888126835442949237281569228083565567293764738044929947200664641314877843163059607956358325809994192612615156908081242278837220987337355030913128113243070340637767976105244076070624024460272748576448625675410114654244151785771943626202854488838883044774370961899886423737949494880507971454976192037390878631914026848937774594376546255362443624729270172222378215935581026967251935833362192916403565276220874823241153155711010332027268593762618146521667771130661048642907476481582959196427700139117009903257237077357508148342176202930065342715591163552511437683637406572666938649919081733371153305136395624768276057631471998043608628052736922489412194913948270650545477416738707832168347982309896372133142551711308184121676690192258180831137511425101149102489389130041224366788025595211459825653243903872552039919145107700030968427701525649942325112438110363581251946685918584649573894752221158165941634286063011045803948660989806471015268646602969313375011828104823480309908559583020637979058776707250865973431360756993630167521538136660815386418659844777688625469550615470120897575515195629245557134557063177295921501336100949972214242215413350185390633793146339161069483302601301946919133369870702874926445387676328565916867528984478495762753546430657619207610324522064157397060959861282220736443875391350097508267505606213526816450920313707691818966480747667398078942724692783237285062680272527629105344637667948601719731466703716173544020126186282551178771131927559868223590425302159647376290052261844610710197715026373594062844883008491031831796224931115543091200467425587931840205209717759750597690718814169883842385012680182396163237256828267481710109580000044089822102254428445697467177290277654171928026786495287400192801197385887308220303620359469434011036946469567206586669221132675053602433591902669205374931615611326385567454458324166887348274083289762632611494220999589072478794035316465815922076359430702971766839892914573555220437934846863711846720590951115367327649166224290522968545130945964608845451078123060662776514329987324291931338643448798710455035114291475174685086206509253797866913288379759411567693820562732947840551856977867304479653157361181943875544946251335224532097661116771377032623329343618503075953758443168478160640217788385520192231263459734222489934062982098629948228505118346232668266106538012413878457984863746142098593146164710303438761619136694807742560950825452336511341803552492346984960705916062968790146887684245690936775114542515181782980024644949405735398372385156895774177296722098732233890088757848574897167228154660303888592800297819038165009808020788817799129980451440108797928769825800861146932512770980855741441184775016997122227737445898140372145044153501394182094053821833464941043603266822853695380672935362812875087217688984643586452981739186583382885988831638097510817325167082534045054142665235834611080607671953216538273829165262496894952658664722704554577031849268389670950715911939075171074276606517092905496172590953670578063790257852551410973107382187661848439512594583684338815615114597962330957491483299724947264549167512608003067269059206231946814088651132642352438746701731098867405235608568481924077064118374229730519616886941119122711624993016934427035004933506457314168258768036316627224647304998714062798268311587546658095885051676748666241405101505302122740634548312164855005324765913245403054952901165278442751745325083489653395322255883437569715136709534287739267589339960384491110825987028169494280706000047173917239046591580519377897414942715783266531824214740496681741094668242451477337046558481432970844912682604262694576693002388253419601339745121717732670836834644661899524238101855347630878994995464766384547341530672557559019610752800902065676995431195977347290924732857295772224189124103732435958592080260486928997580341351565222272445967310447540968017946432066079520806552614186264922933907356737052713788828360333818343792910929208503282123334797521325569062825016263817700897031782108524797465561094945230780199025276634372355769315908669402974387986543855335865509032132912402568509537439075249012645652476903379217145149626580339300648049305945203140126996288340701580283860958835231073077338019537130974134817915664989512828799557254719216972954273336641974245935769969256431819089827784218393357250137317324690366148980739169101842732497638276356318700119542434600407807708282087116076272171065919925677876726111601039752507850243135945247698294890289187744299594820501903278869589152773718479141620608503857800927087795595379554364467795261724816375832624068178158758125061281001801794200888950494483295731621422752368879828598120713476440906468563350315037003667174048911487404087047437261325233436163034609849578765130370461343001538962053288510350183868322937536423415113886997453062873730306059527154997042510404098624827873330066464466548687469018056473137019458694504034716316502441192238352441174384364785394907075142916566421411355681215873283066329953931253731732492534927273988790233108804177254253450278826749635914780476720030829256383120904918250370042997814410523363099811908758424170949931254239477947603869043139771026510932370346027538514419532058349195028180019514055352719119542770293319075589786599398860249169949297773813144923941650990984915536398588080614536324024682719933937503461584427137477567293999416279636200260425451952737235766324939209568723013299336758168771066648300648678865335570587600048137537939197515070581703531433485643307608434795664894726907636409282719227285916323641015920306379739197889047087245577816550588289570884613496527955593493576257239031985230392754678591342856815672415970610444162655463800909617477895266734574148739471638990440671893047513610468624334866870494074967251852001345028890837474251105446571965164280192025832079696284451384384343276028583663708309705608749791734086144570441140954772112820888885115879540558797310320995525149813346770345026543537153077312763859895544814051206275561615145143038104474810807739722288465194785173559695973648323116691331265385779786152577818063751916257199996851785952222204064510534478099900517401123344663939171609035494116716462707538246319980036013937570620990062252585755716390445613898554968381491438746896336556455868484747876291085188157952456764851645926892939200028027685511999636335338133620931281792448920572472760552696785783714689348082011758806932846816946842932814488737485201708511519989319817448897981813720245405912674488113973423202026226647446944469598039526422538319615288426234581881239698482558629045546129664326848502026980671435754649272554872247049304675461944678273897527338892542175432411569154084924579989090132230546496549824334442060497329008367707387256977709294253233057781243723391138778403604651545495778404878004579747459808811302827092525395040302481066097879166687277886585107357285325728229143184873398747454380652188779960132514454734166898479591343860751928744313137211546776518381049718228464566041417455810538523603789544873358434351372194324199325680252500277121500439819118439633699507410884135440036739855161630572632610446030747711926182201340128256989438618882191166212376709623465788818999686372268298678343152971287266148584981736741145054238331879449049533617512580884854190063088658255554721152527761782202926267706827458444619401032320593328132719321079857648318947243831878767046689459385292204107479528395438838531798001347472619800354084979183347293880396322580148503546453458363412157099211036934138906299819665273693011636895942121458425034065114174142452904317123388246063563913611495338142243501583906322803533906181422286732859984311099952323723804075272710105889969319142693884005819691524040134246982389401775067184388292069740625183770504257040861216277007370775646223492718062884418018106360673014144242700414457548578885773266300163975638362634102386244920248378964409856724355557319324502187192376768953393439902986099730103968426714545316428341358927428219139188005244625126147699321346851522569618741801018390491170036542156464763438122958592395377947128275957738406396246242442356575538175665855595225934764292068276472069751956871578014279726286037336864434972912400661855569945982974516283189963059165918009277772856578870450478751194971178721721413204638408553082687870812014608992805245998096875796568647522700870454466955222924224265207143094617894868848368648946181193077834689906506253982653542506360672091311300831834595769673746331968485894513837967339524494198298741562518634099872236193313066572229995982067069776213697786321371993744195889637227095765614130721540957878792141407385255311777922684219718072537431058286188648374899781319474158292079505606107333505789225222326599389291765983820611085064130746871544916735220149484718838934992252212601845261505221399750096445494075536111505682843253701850301162779823879143160193023658061408300492402791862027880646990443131229073585418927367937996996817660941883434545766588356951671015512793481882201617687728128019425148243756733532934785493715865963599017985114888190465150590431785718550114702699426575021801874322583277529131304741231198715092126436709322444547978109818680984629704988870916903395727637819416215525527228764248065644039324572724600208623476656460641842939681087590136618942876795632361945819675379398625358148837197515751156322497340938876794804979811527342145180565546398956220897830467171965627854594106989824240419752427348598489577923520453957926421154864915777861305744725847555097254215373247895788869865523609023331382914116915337271055030864743039414658948012823274182169242513354524559204921726369551587006518354813658326948892826402601606492280968701941569520624827055309687363871962189935006977716500352780010338398334245305506034947787384579079828402000278942231147944217556027630731414521235592678219293236854846745588741124020089453935346834795283749115946641281137897934786667944291224461332745245860525136740576521931582904202548935715343387099026960148302273191910962931228007750572303574601135810088232119338544529805858174825502315851102765169118023146209998214093606606491173086052247632175221965074053931258844862734743967212470072855997965619208998713715081354607739157213690091247226082612831433940742878313905014840077998537979706353338565643801621991148796313222837522175372646676690362435746338873474441204544362157348226831759619919371741761371629776370449407599518422502866042502345248050510808893001158711541130433231364480901844328402145365098667993021498501211775772116870249441801207196810308387879112902995386076487211599253144332268678845213457017922258176739364553239420812939772856909100483947218574498516855653532369724194728130990697552113228395111668154468772772280968973886649109548266593877669848216964130240655208331682082650507318748564549365997217183172084184972451253250301234838879655976785676092445286762863534388967846742273565326131449823657449690236230297610383107590919469053109847733392519450045203066021653917259347487387455756496288295829485957606226350126567459397725453974381682395657605093992556770306929099122557709669310437988407952518664467981484739688580998047743216051619364273100557048492702341034591257577510695795283908080634242949330692796702539587960593937009787518785156023376545770458914275338245977012092241260084858980771535665634807971918955073022604853162902203718477826241983833045415193537799336551721978288055361614508404573863045626608117800738601284753416476047485513339145068039628555751250308408749132423858903219380736772475269246454862065374417324054071432588891193672377093231769713991639715052083282996096699486060517670119759755262848049667752096905291879819479369522270687959440428990276018761070428097392185944580387093889265186059202099710206667450002188795555883258137174750551071669494762688859027500808446506752507418952547745252193437673428343448564012207291364414965491342253627919144044559257186229856301066219299415149833619396160586781266784507617479793031590833235086700671616530829694534795348963044564116307327947465511848694747632440275064704686651633915903788634572457018952921727732858040806266727547264775688713916182374270193722967083720112883881995514540172014941412188016632403506884745673172464755902911844176114189305971345922665215500666420748518744842287705433658212178844206876908132966984073329013162290006851130470291030546375080986585676263006451595423326088072554020006395809361978378527005102461660260485787352337335358276781390342750337787228919130723256235810837080554369897995973366013763127480882037133164589710302521435006726767815641719091788156446321885926934944496404646947859122793632248970350472210016769970699672293405797410359154917112338245636361267792126329310332768660935115263102528000747263367756045376140994787941611001535935325257963768474353696744323967491699349580728353699106812305531981526036182573869152896695919025364878925702978575218447433778087752328536637246732326442202408740114352987784008955228681010028341360426054290564794674303306351395661201923018827128008231293273372254867318369432535524466282313750475755674802454957396895574168440828088367892413775647481015237014800300314879358486643727194072430179290776944920144730245728009935496800190339435249505267602806140593274011626285939805188887334022605734608413748574860801938621555542955850208607168924894863315018222769358163930827648829911939490338206561977821094943664243439385470032543469352622874997293274198252078822395620165797103612818136122350371814536501884982332936407743777470524388589057660569874551817170683230651339948794732984247455590963730411711361616362618515989895307502887839778649485274031728921197215542140363948569196704169150915750436893461507350603479126802983854464614163221487377361256134882105333473524845515228183689393131550357005087669335131518414933422433682037032098812828969018889374669239919467362774150304409317657707315176215675550537203362755138160891311129736108298867256254309372603542520794214329625437308288881017875973621919166870713133403059203040924808127860112903168465720476850514928675135781959929173156867245873542297491209133066152687334811011268879545195228954532837725833416023864134604515364309252399548543244096667508032152330126735046294187981759728891105405321566278539569078197757516896098927892852038902059324985018869288944339605854709196447886642210438933181660937968915615773185674294160883693487229220605691352180265964279575115997367122187853358238109869678540369383972449391496354789199893783361380163738472240671939943636979844339845319618130571462720877052136046005852810446354557803631692660280487789545465811050558656428456110515561861364622035518303946640240821192391905386303813290765566324483797275835956803393512637177482558801855887481592993054752054497853839763667952985685220049525081854764110329989437114487357699234544864304572505262123057463706003436701567884998531496780761110108189059800960515691213700770146969341378267307463753791503435343199746251242245789085065592177906234644606645510643560937272914704835966504824920861523162525326136771954188863327476660734590256730178471276819900159105125195117421823520428235051381275982708069370208800768444458586346875821088519297183881124607394308575902794909655715294124221612491044969894001218248225600566435375485614913758651480379962334967871721880116067017411891006557511512679238468698799659158943013072540909066409196891168835332223056986944485994452432460782002361174770442352689240752119171193053682353054775624388879953008074668911355963039485813782439792759280796261039198329898139056569142930740254109164458473971258417628381452152621044727587414175394812707319972722144536743363181252726415668477457090374875846572516749731286694047472799362727312919464485132500232338489062593182888200402638996258611582371884502701745705836594032350389423239724147274698823758987875190110727421565215718142227465226906885379447998595265151615734674220289474991919061662054914040906418358128096104064274659216415740973393102352618297250011411490192362726048360378085811417937608248448454196478649374914434736431121546253390617190462690080444630654944252580333203829466264583263829300014207412944171455908567248910224929743957807366487048295449393512533086405289180157243984797079846202101273401450235067801767876563945717656988690193199678104910450404227970302176755851028173554116123315463308620741497727948447417555308982268977830964631070100724730221612952561143685757727760540859258142266957340511280804823824042646240601746536832049414255379933250499976255464356915661290650725769995680094721216147945322193250538539785976859917269771100705693510018156671376463256478418045796209115820568341467693977137185872945015515774805351326198223057810868611107717973875796780275143913389914945506727257917529715430785614678598848464704317589749314812533857287605054812964348662789022665362482210545163090693552913161865408475122728802270746537056623229003891886769759289568008743391286291857169059959008501806087111167257807586637588784300258889812332565605121228551332988196446031103646828187353323839924235081272983575338524378677265926846946469357684710232337212935995897203713873096877140068827574570498573681822362490814065786682416016108992486234805506330599347524734150680726961590180352230011033164996273853464170563768747422458304218230259972214669468821453110077941428529105379896543067615613744032818405094870844697901114775595803815462334919013347650194003701315218167668771199774055691883048468838185022574429625745752205246258063539426114875967954174446618428811331011844100580812578758517281734889368400945243442874407336339990238798526424302123788940631081691889857416459947673360327618556306294187223963374936396650147601964265160836452953407585566036936696144449823081498128803960134614140276200613245016429972770437627235948362913668543695397602277049985238719045189101117463564341452870282018926589794618324795647680891580899723005475635021002092863470178207352779111995644367124521498028660691431323841929274827731217825258535832438602818193228735964468705666806196406877335521003837621088236534281313934834052587172426090536136426577056332911158193605299065872854972322643681401742044132944161648086810908669426203886511337573797226522995696635663427596325426292969437439832224574858784013254890799002344611200408183247393042787520361839954829555640943941719925321058276108033968137367245407109772555714109179457554992206900932271128071571803301360741536786685291820112103149561043097629512614342514360926959523389873806540858478208537954872351069134373464974114230532366274354837707102482709786129352934287907448125452287660623931026591557205048387627610830594988562148843897165649166830182021836568881268013321771683268655187430427373598647648665323676636520379484589758374618150701471529575015959044702941085414805894658340852675124921811380942958577666246284764654063204243784367410590782441766827161441440563675654596793671965640686140483625308529306706610270527125991836947492783336197077479831140690749790111440652622005600752862535919720548428321403952563649071993615666818356257690572290896500082011403984475461976360534856947640930607470542487941525658204767864839882527303399642359083785508229976562499124773607336411316318942991526625954149183634158630393598820219359746476363180403998387011936248879595400610905146350781163233911818683501749096203351794229140616906908088825079198177805172170574895015673225137458612662739661179105271742277816242042998444015657483184714765999990602637621185927133072284379651875692861430318837598233029679896784722510143922507373193855290028790740058827541738553717715581466300082120723826538767894847005311086177942386943291424051872242803227117634161002549787363118548489637630906004492829123951502644935711444321689106427504540762223169591054092775029674443385227478629453277519400681613071625198147105344736269313220079348135716659690292204930915779194117984886506221108020348338891599900531894621907712912739589437405874283564073783422327510866633496847807131823556946103244422227236948397907188586617286661172275939535815555657646958866363152872586419294415804596726936074965579063162058782855569669393258977276809796826221034908135936008881596151674173001342101020813961658122336493135980009602274982955086368776336385332793646892481026711126235555150821049458463341378578388742646427510767557746751933676968494658617901421772114271978328255883562466980059438417927678549958854502815373782463290020151205903141590205435141384177961387841231450327939290796236508410965231212698452822416311697078293086600925826358842985835793993253796453497520955098025621600168050851238386642448511618749925979947568198310808874314870372594141576336288338178476260347578854912480818018803587499558048041395421133951464484616736221207354299938270986779275687720326129658940107597693672960450779930059188606113946472568048736608072757334244514615341229929927219668732681407796849630772961225254094481054895518367459539331387934412738795331601790278120895776860712197342810929848943456179556405395747056411034510244372174315664497123051253993267512868956131292533221564044960286218002457871559811059623683312308507304877090734321879636360825207466907392433962391950714443230405808996686568896014086878701985803107612042335894127988747453477892787359718348665696014963606640556715672579784932357767045797618525553176091464404354199930014994950715076709512707285372885975401515551100508080193300876133937062963513520455636446224736082983597219390853905699229287090128475334715780929388919605669963443437912504126515751402906776043741328303786235465222713929094676280466458899008559362260512333737321571403565370757102392003318601664703054978618636259857468453903291200770815426081164837843667357626975709409364284047828277266132401151310512210646758294135045026960962897177049606884492591069118243652543029639106809454157578433547971397118689802211403303879299713362713852534739143248903599012676731848669664138767589351609562332152027636829936954778779868411838350129736168506186006192532007973452143168490753723544154645507525850378024858508156732385697485310757685719656639642523796324542538788271001060323296411368854733146653762794875419330149540512341710616428782901786516962720757901008279029780967881091797514649247123886876720849813956264904726346366927987529622693485631499162544555464138846843853477751605138176556877421093566864794504598572585028596551769615374554087389322278604994847242370913228787406502814973672944271364991129061584083963717586412695640416073910544260815116148246159575787832078013533677191626949468102075715192001171951391202418015835420729972758678216103457438100047223188837049230297089459494807303449016015772004528788798754911435563510196106535278204197054219609955437538026919092936702564275972192149803189193748962671691343241645730756889746426705248327222685824922256738528220318527918581741652894078670869272569801979944961201318856050839023606616467872115946822881400179134266842447164927488439966776542244113213286309725448381712515164765001659772176526862773073113377153001728152524602387234102053829046321381837161041787690772538738013220538603523601549708691752754961320101938249255844839963880962029967616428955769391542110908253692906492431531346764729567025949144449451583986362498245696220504707357381231057894614628475316585980254553309167364183158528681759851022712136024862817738413072295024856308730157703762640757855786173960762459922898185952063063734757347618685767231465079055347966148054754510695716743879116531962624483599765941441080263449051490124075400745727961016031330582821068129937290129276066321190284863046301459133837525708039798041438361214401307417656954086450983301969956745488288193820457977530759340091746443406863300388983003889943034457630227559780531935276053230158414494142001789807448536969889382171384709344489024493336332872792751424099854821675477199208750306902487649303088512877746295505832896602404068362282976937835564824731817824256645075353064844299705219574853778562393708839084799227281411504331961425710359046598665221117969926961288403075848689031206747870075008819717841423080837718697912808115869344953719202531958204241142631562395158343789649776216572015781338590870781012481318087209841027571179814863929516251957199301532350557312635814385120847798657536307073495895106346956879627278225628662897219116046155355015375183595139476243260559134270146081075434591334233403565634841683196049217378543528794409451690729165906129018891579599851905719430252599320517044078673202158658095157606110231607668324896499303875757412928655099460915852260183190105289869540787271804646782117321317514985327446133059366827393843524675383051152323749177477789939313756169735183279476714431551756963152194642987948757431714018972922244205684049677671707157675949778670117565492879111598279841988474076668845090039539742117469933500471504333091529607508854533391227507669525479841165229417246568669401905192390915277358333112383442180154489827130283055565929859717705627019267702176583574647259732374470792131767156563490201565896680449714850192731227834687906030541580168519686507111994451286809138820213199377435545348205621634283509616044051696901254354276246469719908067894893551822245706117765478466467606682282856749672865350397757539385628937082300688106264574491524705526676230112703732351741489107831967453416563432517789966231424554564764886436169706808699944415213942101245473173432348833196087381098678966916971158989683126092883332760638265877152210397071226991469335126659662742590731891813660034878341944105260909365645797546362664613540345574357156701554840401714995757940312259430438393149248859639187951629827088997525576136204805448604005131846468742708626606804814680122348846622135712992554365119204284837148771739595069254329916108032463649836106302921822106735094536600920503444089878901196799657133921102791084548682651839609974464529887632530092720987886393596439098263929455355900465165360207607434718325475945804364378202910073465266680755962353459036915636378981840888725085697889498175483771341718576214996149423900765421693353646469474474560521472126276448133135549732689962333669974704881612885563115515794356601099534916220979891790566224216221971027900642307850731178334860149863464016894975006108211046769616628707444875879063024199356719598495748713142892707934496088388600448442897744960350712937834211376124991919874668875663465486876362013669451527339782189227313017613684611171137996273680068015476172154897260751132230389540197581018755410075198417929806779264111298338759228230957496632702566289346283952559779202154566820547819654221799847116109441850153701228530382280699404114160921689264442459220476816072729211473055912834544544908569805111406354073501230989841587660255411847315598567316576248503375444408807475095488471852917471941987171741344134598123125772869055571851115429491238095930062549657956153199041308399277296602976144937545995795870053932160100182074626738640845323021650272531491851441886484392146236805069880732632783184212623816652810708685633279619996133823463580788912241614140102019233773195159680388603843643502835926475554596590446088219921278561868668315127504144121802427185211079016309587540718338040701468311456147073717678194906183729122354349827261243737493030236722207528503273550446430676786805275376637542908138295575484760087864498346282648984430785757019702383498308734740757050064506310985285322007155120719407114746303120693973120586809503147328216469994883811465600796535394163377791404027105004687706281280797853966618301051446315862357945360276828231894336696779881890704947474412942462610422537500582421967812740785639561438305149352424548862230654336738252165417444793256073320188177072253858341856131515431321233910238617582136867761002035730146970154941381500790397050971790159428183150804916007108254112532807416845022562474443192398093783024073406485541321149478293894603151729430803096833281314908590498052550748101000127732748546113068706859176804061277212560646628576391645362162468790658610912624464849245437419812221999881242022455691200753823912994883840696746498807239922926193740405243650646590603850930003181204917092778363657880660537519309852674681603864651144175904825967011289483833291349918794980491475491151036101104356199733729842497769838232593881654542971140165914315620231788510505546896851988810493249194951754236679640991440458293372354560253158458341281623110130355131994921811717237074122661283514935807963483360394955987306865048102173100196414423838206646387101929981834060437458837928540561114436726355495892628466021118949967214162075219645438139806494548007129807913549594852637854078573794670246060742684933365556650906524851954533528171094434866323366395433425278854190965353338956831620379482117810492363857775741400434483747023905235465353770550739108943864842726230440094094608723387516765318756722066555713096998035521923953642526111740508759635682120229321374637276395996604352372381189121334202619252808071175431137368554089769678753998138948224381895545970329377867182005831782266156018797166771396530079789315705945781567850069487501926730251938694324918852229028363458642576623903719514266733517840744596898065005227981444167278835688421144672366573382665920606423201832405841901386459937405857962316917151459054717934418014476567385650798537372669851209895254124824928047855169307743329242628099349341167653589047028601946046023879531655208979500984501070552042818549623312170570540253721559967802325579988085688630173318848289649315733156681413447449087889740394742382398956857649524367032271233195701728443787625691869309659743475001117562014579679588914707066084653695237175216607962560168458662456879170855538112082452866656085056164866458663223656658482510989608148441419314838552691354723626818036297928376488563866823705715341891165169753319089660943496171860795201563956628142361893984145289180583768251102060610083258162087617425406503037721587644702876965623842687997743645965231614302140955664646154565860128683603598112653222839738958335702221276812261085851341201160048400533561674616106286156813530146886159652207312345430085468087078747998708652393209413863422501310863380512219821659680449280548798159404759845097549268581488251882458165177441133282601467847919470807905471205742276393293725926611530162429465845690735060801445064260635707579998777066581940428689700148233405885645458504118812484502461710788886904074685563407269857934752495544775867425076086173455406525477056783975969155199010758076635285672847818623405573219012080466560987041902399620268471485023683471303647421699273915494927800286350808934756325441820898065002093193169695324358908813698973289103753112898676403498655807267402908082152987343417909246446924646170323398972662357418498575937894022443213035830938044011269723163380013141170855762021835423991352467807844813836947714707081553456313491612457844567270707856437369645301775805986663584431028324998831211784018839516142562898313563882797997602923886603067363442835537375952529252194120265926077428756845467641841501003924827579280304512588559257749026089122595558829054498012376652536985395786722651469042391336789081226569708567243218506368503283658838377439684252792048145137151251190515777275544558267360972284299010665013575205116022503548692423797993568433795479741530508437327253943278055166552583696156672524776784975805322089710565872100879822240098301141078556166467253961710914490092273538902675629238360948868932654020580034529833151839273461359587366383544931054679713768705470143829727869423501179315401291317264992784738282206337879234448754758114664596655885593636806449849356059527246611130684978297584482787670875214644684181334027160872567640319013014977474481097648907491762710219885813960316569698532566853585103819405766397160102854188065989228866979679602750017825040979270277767976654834978767106674772693798133583096947472157325447761179920151729736143512685633147058659261806282214839715919996468830731820178968269182226119326984936629576564486635935884156544187241972659116023538508877011418804763808031508059679624546923041140698482422278971354971949893688438187993903593834599484216132464409023714033267203608931992889256440366647125300251568752606756667212470003334546142983975796752009070953708136214926675962522523013732533647607147109021810103893215250140186482106132308135900337501989168373018916914166787369132351570536947153299006542809342858366836889474201047034508454791575050802363219959497071961532729632713750024459218968711391166671126824448581179726281585872779618293679250042229783647907804916943756746547516634136676737142138548378022557596101436899877130010861324599736810350848559509477357032254692053381541036193700589149201878929228328788524323316799129039729702046308720060598273496293081721591381474071631934334976467675127756261273407857326127334822996875899599230490279688599688104672714372667318951747743353369364237246057276196978687662928067893892583425169473955156870049651076908815895425377978041443111950417582398278345364269518996176638222568391756592575615282830094518805903571022835068678898248022589899595682935085973091107622333790479063016064440275394370957341919779736421001839891026362070607472616864848557973193712547347834366857883681015395540398196086057733913764678779398658889823462080635121375621185453514245788923324370703669944788206352728167639046665591439196935795138824273275917085772166355731593061299779123862086659596417875442126981219792438961816950728825958511773044955396475939837785699312231392480701082587961764027319037905662170838040351728765914934605761044941522755325241004124308832280823039609329771931076643744374368887417777132550477743577974996664396567177952362232832575505593732557211501387262608496665962434086880422237204802542246534342256266450254286496014658415756178639279213373403964457148315336550126310295795879322815843066931149634154111447700490482601270387680558853757844470374070491767067055586816679301375284070591389994960018221359737381679273577386246661832046343088104994671629546000298893442618244413755868424498849636425585695249164783374385119541020589491092039145297445902715548763435347537172185461340786456774746550964050666401834746001797281069533494904915621838093767445610807005029686240950325566229654724279115983382869257067727699063907438813415499395812444952320012268878237196828649645804567410280354388615818820733043671490684767405508221240826257299675431857480368457503629913874452924884534201941759673394557425323384843476711437212608060363054957973319959716621086269122235241018369822047927941168675439023201058968387534253322632957398751468402058703181192233090513029538010362111236241746026512410895676059807062157791716011182344876794224352248445312380530146218103404128844629184679506836781162134602912305444015076636693893595745874582819114826586418785758755040367548921107975761724780692030199153580639076789588067079854810347422890330252846985434178543251901790645680251893114964512517799255964567509779935961410547470491413832773971226809971912399080721498541055449156747576537828190630542012351830529812144252138105681426951756648071037053176397718140786433712189461784187401851775657793567901222885627148467416841209367947721965364725408704215230353702884845992374690664435052481028640203496357331689805381425937512987000396463036171381073474813973528328436463799178839878890717141700068421370049311324875124487179569354777624183921225033842422347480627115662602071728791747696727358680887139910531181155405196880233498370748253934830476825829383369544401720680384258440907714234365804559426578034916096132177352550024938314058172081864487194715349322833919578214074076337351260158605179134027130665460824193581717807739327489372247219433666833140655825178936790714390374254439692125413303060248691343328738207295611825425774377803769778968490570167726125397837956462217463957186519066571107989117305871598008383363685391894945101787465170501514483902024898309557871567255171889097651197779421345869669271062747707745100852214644373920960265680302494955885764072847865223548698983224718339561281205448927967491900738793290659363125463895220605712305671265019726221514610447275364220041295165876342756430352685567310379996633946953507091168156291737445225454448130748068819776239711654633748029922750966512403906051369103537125258874829688016786945098166064098433486200436653575413539046352931773203427176408083307641785799455487025502399788495445687455037407362157546350156583857942817332725192997549307545857926398012273408677975336027002581453907975889753830917760146860663309841233390841025551266511384070183163507736483948226225413689583060437979330437789080112914253245263104276566230306120768716926593234666875064286581072676300526808436436632064305183125700689997193473381123064128541334514710359197972176596048927923484206755814175558147365876893747349479128919231960019179081993951894767107843330012155864943013639990411563403815985520706614238670628603911677912437373876948826097624627677187631721916055014533268640129721555341585865882079593022096574401865564026221571771375867127963369002849242732405659053480525815382975429111710270014273997362410214573260625040787486657844022449853550008672090375682447302938213802197813458188129821599062497645421789148876635438180166877847906814935901613265123242525872559988981211833373998834091192029660785447463593681427632992015101680669631480675045677164080322717395217530198589327527032696974143366484502032242743754839311003351470001760654209494310313081539872818167254151002210731898871768258102748465847676281467392178429139685169080448616546022029697384982439606849983317075018532994208400151415546959554683317437813214042773288407129029024945512238684359944736791065548629969323176238545369781844800835400923564200115133928189801834731095547128264384680638334355121331013332026861617105854674400737236652248974604056402118066525697335559524658850544657316080645626116312521765500890107480475883159576177470150988887465149919718557209015064667483714543649101359239369800526951506856185881112108747951514422468802933202940565588905085262997853899256807208512783665893892259878924522695948605392791976665217117268384905597649558161876331360578847651560774891204891270660281555560724390042018690100008951991166017042430363093727384057392933233992042280229364309565746259695849332245938616432122700884147304011635033097257157727243876976800273305771664554804919206328984425899760201369654491416590967082839250116856383029085712773017938233886547502757115776324918598478205456329187893030169361996113139999197700333027898763961539249632475775947672145055058542131715233440007391349101249113497640283478139607508973888514573871777523863373715159691585299636037913176859700090909060305304207729288008742317018041727881348131998119996206877601768480495340420824198858667384354930399913100547010590356816732168906623081184014524065551495840416355020208262662887043811518357110935835284101305520476884096883037523087469985023270254635073568899476993406115532180896463315561748486199150609291180028577784133040013977882504803618258957134594893641096756441201692974948211164001938591852235968438164706579806795951388421654068525573757066252350431732656777826101607837145019091181291731084121827799293486094998414295771554321064283452015302238826649245478062971075831530283698658094601668556083656761091504627393246551185103810759610815307756640086687738943716957834040773890495255807250671348053389380961604562977413522132313805391147746291947596687330475184890208472707445029520468182491050466348396695864578570561742012796855784940944621201676850989507737521139134005763157643922008922174108047008995801524020152076072901335374338449910269699256868111005268558510555082492259695892007363964845445323225152123082602195861515767748530949885221485554302231767577279098544444282482747430007763879815164369994390685569012593838379637771603662985625981818248808012105361548577635373135090942164716148854384851076225038154614454202453884005441101685349045870610759176549685589561937388889194738450528101794011013872173084327424109716767414475258037074685903291971699755188045493840653994487084820621902449030863431480241544551296532125404489822160097491974630705571262782922763241134192935759281094602975033101839402390860016486711854369071846322632025733329100408235271738902480526581911310828246003825719079587246173794263756200085529548665501924433106275025922810756080391185732700760622891228697079085082329578994567475875242910674574484333738498815129017646173869179974708148649490144508995138164446383452047915653837268028823735382828269897786021785211716653099760266247921095912325393127622063701706868469391324145910396874992131492917917909453099186536898849657260905852301543053178529882977204048658398117801486479896926929893411267973791574494695189784154334371679689820773593222364265588361193878654712839430577726956810071558423330797691961639390496839207467493235662194000190302045239647071176590165162814420406256741583476954701038952565281775456904285243270512331343151089711211197179430159952505540015650597956141155396194505913947046241679002934570202177851274413384985069435901079390122224431563745520442119375745982568442671517905670294612411479330997226575724729466419092013341730169060423831064736202652773014451177254832339512473370559182569017831756585515930571573500153067199288603134086218724857199055768480673815871453322325974264510511513602815317500154186604667975537636184644200903056733306836808189283047739562730172409090841813309777066039334059874154646766055093641003349598735308740069907697570520465191403060165025409382221917114576515825707484861397283143102497729006403719820957382537050345816054180368176141439272102213189358787040297579130397445295882209180319965900801719653474430405305513263066312686101964988620879039835038751546909033576631203089900431598019453338677542580428151329169941953664528139148807804459369635244623020976996253148765425872732826084162782202330396388207855900134495274764430223673594216925960016534774255960015437853161253752749494678913852026449853881204789544246582563002535723149907369073108549413752868827049779311490537044848349375017590583515442939217516414189969887760739779042703165367315772084137527856973363855626798099429390046749550687637962857426681232519517293379970245533024811108889762200140547988516827290583605045114671527357897609760509112193303266041968522163042486042670747936516596269340120324249180161061911492880791820793760296951630705733567862315792337374507257785749187101228464261317690780087430473732829178085733286913929708923468746423705699881217552583124156759569879828024935362034370814368569007712956619890778774376338102590134275694872057886123742917251165707299556692363432220129531387584367290537129075297229531224509734457024554442767043032555801257142121109500170222129988307552186479388639113972448637710135700747009183727121782176201652730832711071178288614163983008396530215470874037097350685137427207255240637327401554708733067690870130600196610922647019123574268314034528527975584137680219971243312070289958375467660254480267957934334136118884111522616755914107269620641921277012859079215056927674207958164639470643702062466439413143164751489516512298382641576468683772319378008886355396446943019222479572456555347838367176798099194411715557770854068481346552590445439752968748500137724694597556814686893043106100851507406821132668146674691509875132008171578708780771103718577061659772946282812771849758161153121509987951747073142893614115374545439202908745644725212163077825191150947798376836711943190732194464554938647580829022908885445772752503455863684944069293295006841543177546488140628946473357520937350950252038896215534384430212972158064895694483317736508627285006831369321593377025595579096054724330355773722435908113717936944322419498995661046560788442768346267652342086227333766886753560425193185054554436003228305427965221782969167051845595103138887936662453619228934163211153053724746997773663107562305446856106881146040927673206221967945475266122596876343985506365166392132641458582648797842460056615608761532068135675125910450658490279908866977479893807141506046424496374311364381322062957178786093000761585656878818112333445313392609972157198773260142314773710528406351406036560157039291841247410233240844605143118547432930538340620631889566577503321314679731708879825792083239623645999954039481255365064815757143742639315403044640047325698922325538526046381159882868036257605433409411334858567722973619194584494865036197725177496677359147388815375852758449083310242527605918287063646731297302992835386216833551286440553960310693466448553403971561952318663109670619951482827156525609375613196948449088324921760279833346556847864816870406480359187585167875552174348283509208856496256355840869565993684447926638268664180333372232431222527457715286697936543534884367325643912448573614596436488681383671247764187267196145626731881677570487670201031885147841012539873164285971074239463061642191720469889791154377941912839946093804532142183870201282682866864014977266754924172563275035734341995754382023530426908892803191980759684148346352007182165771869707213363516430833249867890990570435207280887606754229881687775084252651822224327512999342857985220857172367011224513492408931100919454533284071618412391216798547718190687568994717376324440840359770851707697392571768682737409746622552468676408944289138561608766479530063295312013248559225691453320644732134453312217001170709685981062957894692744674551020018833034675734156974338801463819702426830286562918517481521023914940282621408039086720042281376277686310452848809707529795351026833432715681781199672642255793044260183267301865232325827129574969505606900500074749374566278131646593194195552417770613224431939206650126257597577004610453768527051998703576985314087892752359860493141147291169694196438770722867147753352438044506311690730075752837088503401963078588807061745520109091165092137522404774778498260816195866467747114496578935799035671277002292471347433907262026546438675699123924388025588678731427930505742606847587001371851375625607081609035506529337561299517891049163727766896730240872650024137893726783797047296975577956245248568148107861969471883899399328760575370870998905674193175643937368133777738090222646625503941822852881498429828458254178700535474556917203164057067550498026315840810016201182915075649486454302553002689060766953303301217313676937239325276985168369404260468545757857888210296210635085975653781761848075594251253049636590281021393831224656653704110727595796804014884430687186781116746827604411491617786570797053632715276694875485765065284924603434396477134121189413391446262852218878914030169777362531240233918877090725471987253981590034151077008300628195977954781553187611257674638704430453456950650115290343930468984465868359147817600355717924157522855065983934237817249970862033435958010835829730287220481819765011460887021855005931674111410868838749754360177730753280482947296114095531241560200156857074049661987684599340134397779461741283098119544085874869431919522054015461725774699411622823125999055757765275782359574325615824341751532152908506187288330612646672989834749340095350864039717545125678413283713119856774454266941940425908563807254350285348678901337407379046304054609045895388672758595903118602113629745038341227846641479144432558637804435308613756216552243367340498782953058553278355008597329713229233057913939841631857360925715794040167032345703445200296685571230859787641303799802906288349338188280949929073824514502678536278614232078388680249923209922065714240412936268010641955992487520621782090721546563686233211200946460346977204991546599167738741768855060485372407178716319720008102616034415070882191131297722716341978684755117933056962046730161177820396275083724573691083307978478468514637994412110894427215389315485568936772576439425337137430507237136689780232228094272955630136727790698202387678829337106881106268042943085740834093196899327644270173601651294565558707403488687839024716509362272603139949223286413948529694593720318012729828284765269139431635207091576383454602113698970521359175606192755958755554093112198487392397430662572923426965962916697050827189695945344321240823875111498331255710780624622833171210750302558120801351677610586415021574500573560619052642062235447837510665639924830209861853679742664054189846087062896129513892485091113961392095525434089020108186255660077358604151741335703712250713999007361822918028905993412512398638108550302515111981262556338565656188789348032593247821288246588287773041126407776675182621296194702730812692710471576666138458428468667924940301990513089289578474995639449671687589910816426583434404578729008661754630981928056530578723405975230405471345859946286103181398993698023567460738185138623775786105904652086483356729943282627576032741823961908878706630165039592567378845424565125044603535064836193408028196335220724546549902896876011819826364530057372527686049054813195915343218086498321191388652317249163820811457933679110400062080377949896715589419408941822092291844304075602143318928685565714959646543810963632865393293757313427930245468146846643134325208145621088665624055966011110009173135409194072961923848020976128780139027417277535673127845722979787121692003857097076417813370775102161992547371008745556745646605764667658922895711490489804012259314980758450370907288262904246665981905790733779578934404519415578230256644292743580605041278883503179698815515693661124528255757516263660319674806374398117097145292711405851213366613513078449840287695698939433511231908457667750167812970618739349106965369836478359755143383754957941267005022084972512842742899148506221440340602628860836612648251736287753310366998130424351639025537316839442872592755034033679974807913538733346625984804984941842156738242580826782857544629077092388893459336594881419951189667416472944650782544767563305046213351509478310797368604136371507649917872182370616018613569608994670978240888426378625970252808027842916993244167248154439780727177178252744001202410458924302951219190822471461178182302934924736168425400266502958572989885056072063574589791544796329415509110631723725260226032335081693387121017157149781220980709430206055017715892521376032056517105701566936921217367469606100833465985234950303288954333409922972892235636823598804718102758538470528178726452007172803653326255292419327017842452250982303216335882043819865511897104249712195892863258137141736794824098808240654369669167918409800204324637428470130093713164076134922449058656700731461862661552762292298901821542057201175541553362746714119345500600008411384151762134284743903712541928889055028083016166866099672823865804419405721983522112204438130835990892590333480065650484752381178500641980443363649163713105348045741165330940811099367162546593704768393201718091525351968117182296457246621524479797297618840159172952342002165797168671766175858126875084187519351818214745900342171713287628132874646723489315068586460344415822737882324268034029776450154522857266554559104937034864862043991724908655145999165715565874690248376603530215288576322682643490861833565285409526286957389839181034677894434417402145922156029950057387198097488804364573659196066471700660281923679725177098226915723220285776520924376057150063200871575630864362684403881730870384515061263375947012074609242336870378476292554132514069569876303138081981407199500480276494959079444921998782756456780566357287886211666212043930715899071747812026169286852426853359993392092722402378978720423650965175151201357200980327247061678462720157866674615036144510600881728747528347576316813970556604935775370893130465204753633401195035931521264326598024455657650955132019938134974734075169219899336636852816092920259792624106598016727848356415099571095980400934980234751947869841085406766767006732470915377976783597401069455145356258960004639113889187680552999416704482677627982365753527199879652849807482964196368256159023656305820307954856667454483876391606839371946067313039463810837604866361770489314060143851233349501018691292477843310013669508926977843912133098513774263353960503340970039672398003540930752635660711690132397112679613326718444333611049918158791380139010733243459312400145082317139655915794212120896810600748495859313742041495567157617697890454907730960374072721512101926399892215068100780882710562827654368421627767118337369919211201394148605875843684338812439377999549062366710780880168295777182139063441142001134420748583663879360783250585900352163892257152896788607541704477707076881437426042466544883112129323582657972237072177220872048629992074776570063687069924820847853855957511663696308094182357117566766529904968795656032124658207428718620432073895792535657476366105976540061561869719268847316087145500529752272179064387915993063657201474648594078227097568720265909221344786957705056300345118587649091280372943211838380684197381368797077601574480644938133236047372609377966070690014548452941890713968261314424225997579571533792442774590095611395357624160173258402026694611490149709233673246123205197208678495156736604037594990660968715686617412699386553345401211675986740921039040004104237266620472440580220691862403955889805226954823130527181831105375627733441208114099589770445061350562667689483294710551690697347590539957626567467917098684975436063999894280550083005350183858324403901468233342502401241276688542529503598556100372306979904288885676187185906675172314499872752006115255123889805315148784859388371145090231614712196258460835993880088709543117513992155743677111979019230410867004330519860705792081743957501885160291144045103038392914691413977532790927662019896501492062266978451404170360180864024339715294763541018156373162086144063611381830142333602908048312402277860034629573677141359558872394319835760927163823733954212399968295749842095541525419360979072740884565763424263652181719484036483847961278554942094053975165576525103958104551830146012880099841939965993025026281626064150335209037726592864849329188114561633607448775930769359515184564975774877808543139248416098900114816579420281125476776744715376265951490351182334841608640510741282844630973781657760730509561524805485562731195213228354942532338107250045559344575620104851424721693377206071720421949240292379196209062090817936750200528917544216670464807608022372994601170351367572076115526838346327368426177076023844829503370412981221082191844318576737611873646911887891436439606308998760221313982806166927350628584765930295056413907112880002786689946559299541877356461682719106218960051994941507819579586913906077651052802818762358903211782029167052316560900377622080312586448322834713220915354045905537515074798444157851198946030342810130137056796433761845696283058010768353870987152237866653400258079320716431144846480115920557898456067490877424543012346390543769396082847920034414558877866092413673695513018923992990060212871222902611971419646476815150012755413245156143587915438175481669098622922743356628785656513319050851800873584663603676374386100458568956978196123007653815101839350559561798248417166153255327058007730627180598793914285989449888682823299525702916632602017717879325931179526469449334987122142376413748191616683165343230556178162543149072279927579017248007643854210895822026001223208836948173631413509465044601408362050077039891676047305263101961793903958052005243113567705392598084744683039943592796328584706254627102519558709760546101278874003572969552138528749166365992285630343877462260104842921238345505630177767000928360242849673735888932841695004029205016447508805311054620405558883256677204121657638740396574399844497904494215886262213355759240741767516913149494369080514330187144118059282595356967357526354116192088177972074800279200818658515022951262638110029966193113286996197142137316557984548438522574704888829526107489333888443703816089537154254103258857086924705877827691354775227943627795243855691394229540612564533539534814426025972389552019422971793716297843008222999166366146011926115772527427938008979319033735497788059084607919290008063704005260437253845697868896528505510732358740276997102885180141004348398074514509240910799064161210361203268900968699652505388849976277685712412459283847336866006749049798289263439690366158888006630839725916474306125634744215425689389662330245015572951117935477413418896136605463068067824501695214255249664737897116336008058552346199927577385743674311167683712374499598008430372161706014476561951536603773550291392338200027072484873464915209632537432295621436880703623572679197185416078427157276671467136578843063678000967465050343162539480813241737733935569793622084592373568429575130526812260413197892687804283489077778389951514613943709197355504471525325145175118022703138585440759659236870156434290372923701717407403940300357898970154826121180863664995499214457233340216869768807348798489151200236609762866466464586846028081374262923136704813167419033807408791960739858015766047433682011125986029281460292344908532059440775524590878648096503191002232532660755577982466697160725131457112557120440663080174459431167854532272910042116789920580198687874581150293746136860073838004584146860756616935368052497613354096889521091767253001237160355880264163270570087530647643808135110407302565309549527176139109306314908183349020633149527243653008115219811760234230728647844817894394341706370374187386585881940462783985766259144317699693542811549210443649029655814352523171675696330150558567389525116496431991104135440972388811796239142986589208189024113777710235844652470670889315479644633825598744501001606674673336298793126503123612679126263178041191770310564048756455830128441926851506123344230050778030881613792134520195225864345231833877516228240204005416952624797586010685010057568705398516293195143908893171073086702793758108147488382283660328187746238312996455425326173598193018104674691001405463712111146248005779886340557686487150160248789095523559627455101542159133022736184696911419090532723780231696167356740643507147499371015292623193934914918231276225770952170248033070286630932332678996175641318296203670742590677840185722986678190113072345191650687966979894372833533857337090267749780528919043934546442997793587608896189613245110222214217889050347977766152349705788904372290489324293770599902814874392574457392596200015358371022353598820070909273824137341878573136882319898808672198755245907600270105709159057869462010283302674206191598412574776630641918954795304217010918078414565438708612882323564230999369264389239355708483616582073339611640915533248580766717816511345631442848384483067339997432363571156639787656618437816443386763506961257191595987283125345320949697444464854789668985933089003119138238843817757012788031543008692568595078160441376913567267950941599978076558683897731065297181756109270344058851373115201537449068409377667771274989472625820570665752931939450136938940689726077731782328778104977341346706277963731971196508183221099820965611226578017819953759325972407705235042146923263742307042386136937130222438841539369035596351747399662045776228676348651059630494057199911232598446029194871220360822092286414990973194768531348174273967347889439952061369740433722056434050014663883892771039484591942854168147908295587679534695638747307250532015856968140398044556563155997054914705066581544140419423117553472823683957594100712602339244193124850959852117180691024852107529236321148806063226056980733355222701635435827257072140375843519614581670499501657608726653979127632358146396620263454800050398642494430118793391967342857374243647516251188564728228817423820729082074392627019106430929784038811530798106132149733205634910357305627775373110408562493080700562049059844097681494351135958308299111918761618608180450697890286963251532558844303085249781257588935845582448013350765531424675345009452479678740351976562824790243403772982031227452127149782948355432914323320757845861699762044655549067497609541887163944938191048918853754506910067628083609636440762163800330944197639401790224010823467318234904282215228812221757033291781351366622395944097949397229941723508269321299016321107829181246797533736953646091719876999776453394364314159586251187499153536031264055182419769914066662274530341745619813435628716360887433254306451446745573034911187808198294441971928873509984265562657728153118450873554919666431407691357975423770730122719816889968954183966597473141523946966508694729258068688057894284577966327530814734899637812435753827796011653197122016469754736321523201281809881812747581440518279987220232421598698203696036012295524529295573450963759321151787634856343089573647207176982169618724213580161136162602639883078251946976224768890146522581828126902554785650272544745878932429860707478152698829262975294459792645666007646990488411921224099585203822609520308000094921021454882466326653665753347032899015864397300698730049267754117671548029447416639992350108486185535027218691610789204437337298934508825657833440620415045304900535976237232540050224759055373117120089873438519869218396762595274316398025636759591899026778030549849914181936027828115855482232951658938299776920598046747519112227232097619822071453955274678763742350582563888032868711899326320238471539753256089973974352142672801305493801951185831155819932559607664241501246958590361359994898915613743821237014295835577225594241302248585807185065830897207195500776064565292525025950209955260409432187225417016424261512595279365419923449783531928064440068418570978553257943373254470722076341948298334642363517101229132664098833820009731446965302918435880997184238775433579309460082119804878750987809589617107173392007623631944271335057250679127974599665259213722206339537545842201736562982545062112768567431741752697876249578323484785713709172891115613083333993814727899128618267587341095361036988100209636307699817070136974938968112654891438107186117583094436496683292236555859325300076863258298915855033575226269626543017643926673072591015224425816388053589846803348370549247378246826691940866112071352806594549869839730787992039727800352499593251294495841022752418455091667725922392779331877516939956603095879238773669310637743093939069128917533400752838409763545375564847242203680612897410698659013314828262573366852465425091135910238826436390361891380663545345135091752820934771226343577483741314827089451013826714158529206756538853790363246680828609544891893732173290697290198297345770827921614996734226877185795263311928135334723016061200718831201032132774125034573934346138034897535825843080647809367600350757977394721843511643046662125603618911478047618701330569892160428381274454387273981491276339304448256247409661070667834981884124863764960639042444485414986212148485642564632941151410896435991354828743771138776716949513681739479675285575603146414583024452126745077126205367930883471332701240666346291806623274470902734012994100114687463818713776788466892428848229156249937022481483419289574069705363643223970279571403003670604837292050957391020974808107940207773755704577068186987349941528608818992769197342648458046549074262399878895503492075119113303107128835546874542743942930859811912948404891216397987677233145133366944937976323490002426807470148762181234847702766037507088007183283791502826511952839671758886655761507038824560507231679428009770056847355842717017693185704248525920915553679183343688025484554020418576213530586611508563828798700629616247806718230244942092899171202658930589978647330079235231485914130445181518529750291327030146734793986434034187458440282934293804738608071255977482234787190917872669488285935115972972557710222102075031586241681260927473585874534546821459586494880604287828936180388825549745519888219981109846580214576802587034173814614868709740549859761133953553251685017105291321351982722771086824550455876331570280471682486602156397835366022173004010319335265094976616469900361037816682983781295803640275478086779022201535620016935429059303105884914495530845802344914649379701968379034288085013752905601643264824330067870479776788793358390982528866185699606059828058860615263022260927633025973073244947529741508730471695480748003542493349859211158902154837667981770286843457591719053424866170651441648965793263522534645567024305870079600965454516743018050253374875268703452655742249781391648881193151649331978474627819248553176624914349334075671566094025316843493829434517873286333696397116254244690512814973842635560802726605432517220771254341227232744494911965736905599913894028282576510809477829278340961757207923032827946555487896648731750439627363369530021181175792799272313023106883824632389293043278450289814623278602411106379253626363954149165475507687343946430685948836748000201680802905945229133541504408742284868323143615516512521249014264656207443104317796391642406707919025035170038024167201402773282196095133657831348842844957374894726333535375151891818157566347485480292902121804136012039940250885603526949836270917948654390974085168188064472202129330591665827797093351294944607767291773013976205541309145518504942661436165760265942027673568468948046638187738112791435971419048410441741641010007089582185993558879536117987176659211529626386463337942408762860349300847427794721278551206587969320435577013634706255653029879551691595005985201797270224725078808663603381479293968401982726387611899273111866357316858446891961752672632116137146243163724363619613421379543304318148268816118359169140322968865841623996236569814085127448440720291082330023577563162485810543283356624465442866277935649960521923404249509579803982555980582566152470208003543638605132718891295645385426111485535216030111677228498523583650707444029124506061800829731975640044587012616776920493261370775284831367301201914140169141954786240966217009000268786660463329384822371925069257303271264548330023993510552786266301377212448149304223236894734847474844574696121375662450637166260541901595629212365531443257829791760692840886552591786414270143336876323009901081325880487444456401591995205297463520025936824428705777662655744711462484437281321992512142999456478548299986920930258274689411315698446450277740960650363209771008925270089010597133191810013046043693226138287577784623788011172636014829744727362095885362549434858385817402070751612767097020914351863341934125257804459135955390689443925896549932581404528950823859184308033738640040853410251735026415447227721591723409013893680003745242750314872732643283479991206438858646713839895814960266328735429745107576721801959488718721047769388991193497897154462279401038282673768626111919392326200220902226190603928864655342738917905494518395616823813315764747692147830700985888262548475733866262111876266479071347073717859006852277693452799422015062950257565071600668175616784320339611579512643253063083268262578163559150334832788138978775743495589842440956316216329681698982065014934499781652445568995055796959434781420591570351452005367010382652846065127633498384551030312405718410016712777922280915563405956727182462134117971538223949518708645692789537369250679590598509120398877650286991148395728184908256959435105748473335878307000607643280101401852303395710515242251603535587352241136394216248305887656758464761398862757188004808928086582156468422200893034961687019225795009001310024721624663253932961227483787869825694531273222772225397631499610927185270203572802423836683590934421854462601825295478111640643236553317538425690096338380610100802264070118463563294716562296271035043215126660094066808916918644650530838524664179048495058705795091611212983248365087244178967246730053861948449729387265721761256145578059300795427541107784263881533718129101459070707164163814184481277230957638246811184625681962078673994657023360766238469609345563201283381417469155889546861242318630595871615625953180449898340938011964376045167993805852633930845586044189833338368988371385107932449680877809445600841864935261267721522950631541437563373651869822634372285843997104851404460482278924915627426181378006618474615477288961219790869596537197901463427639900199976279641623435487584562141328045206848314647021700058404105003661730440100481172490490527741324932978815395092405558422145530199892906059217726447801197853368396277496960252537584876552162307152087814696723020030036426610410032747459277459576353686779458167212169662510121216165539472834179039177577821372701889456867226337336974882450574164699297599982052873135930488044284246151778071254887178161260228365440251652027919035614213064888793933171492732032109306765282552046566010827888383242540635849040825724646736699529884770875172270832562462399392262385679542412953457336841538070185541206817395573012802171093679146779804837839612204618153691063359837120031359945258618614611347804927331144930736118010900981318995814422902707264141493593235343549239360579733315137742985138658944945635292068987899723359990304906091356561312983440831084471994364795406568434324468870231208759041627364991635495634865252842656048687616977438770394694324837291645521787299962545724174290322173104394083187325903250203344743459498034485315460773102990834413227721087288976125279894089939078272585165060199851954338801371225019873590197452874735397034699037559393571114749916536497692106137821353924240647145940536209668489676865611672629522723352110403142821316674952294125302486407750071424710637180040499402041366936823677934571679145624521519783587875895336153917550015234404435012951156439948186228671106304282094844138727265261637857828154931703823878327202502683126326530180280491439799737749751181268100422016951491536446260312873848355046811116878336409899898701298661163936322158325871803857734628331399051965040267946998999496999821155967486589759584613339605783248162004971768382912381710035352534707190916619639088321818788657048912543270679846581341798295180237645976063797403469026548347867837209130126808789089056157069782394608672787700547371067265073206867664222297290271956103550424026737811552907284569772478621249325897784462330958891228976087952281407210039566892665144673325088849485470574979815002416233940482790436928592649074534575181161786448397900600131465016468868873522453955004535866204917098687754943013535931654790354720718837762136167078496675982362205487252739506871510373534924447472044362406655741889484572535956239558379333107143046837801087562441215088584414835323008982398141660410350199542770119594102951207232061521190468890206165802324770014812526963713090528602739001241420711796760841031285444847746163803531687713276735055232539235068906053979127858194710432586080118177563251781410080056025855373663099143805108280306718365266255551927569211442505532630931280193583334695473558935569945081581277188170207823232768187624193672382438674034006595386308390363978899678618754372500020028922113628327322472895201960387989305958074015117049358751320387438194785075088643759420747995946379489112866932960163178831350145900256631660954834986543528712961275044667443500734008618606934558521284090464662575030520447935232655944474120554443874477146253173250076559981500869666109053703467140204069347843569893882086942149502817454534702429581449709618142862970431724314854454592115594483516839644150717011768089975144230594351056426567600403123911584788037923813694300928955584952534792945175492491818555993703351822273232600682378975238116581231994416754113987917672673924884742358272514727286813147691736948738670121347014922013339286134589711483354431515476581313636605299387309284401098221890501746527734367332897048419818296707619010591418842889499880612836047659460942014227260000261533505291860317153541296310455512261184645471131103063815235959525842560360194535963362376423213566443241017253312667236952546590888088147937579380330314019999252340238759420286639932189888406378024686805331725247092863718300928500594067866552450024544509851259925831625949296665317645415898182798789450598855617689158256654543997216478195037985794240925960781140730534367784458563101409240277522243005036927651834895674079708837379683654647568531567606004514402974804257626593900239364165102553281207507638667557621573423121284012222129391027200358822517846358534292357448049650585024502135454361825795471263442896962238824074629982053031811096878992891300269198725372411480898990620076751062189596102986702505268625995884240842816666095144188032934737078499499164125645818063920092425053980180376105872946886427576456420658593645230453327883625735874977772444899774630997555710425120589252731542313862995873059337307016753658770804518659367569949530788871973337124467363673559241700265950503650135533488365576329660106353457724576228855474148367934945906609801626169925109088259295833365762551670668055465774232823133301414430170869476689735172784801206825162007034406711515956872388157711479774506475839435280227507096000827697294930422626964791415921123176163485386104490437660850718189179747550386781989417144178311611390395439943964969329642013994614973348828379078713279529933316035236171487756497318468469419422038625897220942375702022033611157443030032429626599860287436059167806677078911866912265199244716574941300743970659912252087507259334775023071879224518082669787724119229546180637178086729441693452103251491182262152819327767639302792858677893100263690587902922211588166690382179527894943703625654342389991458449433696338015377728537419801209867316467206643416658739675524096593518556232879934484342341395846056699652123869325045920951599832881050344413778530051601118651515308979634172105855133702553097967605285363680451310142451629671552172052386441585483436133685997762283274498200396498831845338748013141280865315895454424517346106295387195950886113474702047179580125981252235300198573049960083566008654771692946832771631008706425940078836684075494334869319476976390164045920285072424125646115259782947372590490723123253907874103042281941020029855147958657509517356948778485910613289347302344073090453026477789554581023414761362691636460393312851073133851326599093397251675549869047320858380024021172821889734037413896336260225505955035402876174377559877140485582172546356021095793107538647480460382294903540907174100504488368027027300951080733396719229332105015945132809224817059092117545743637575398146849392856160215911017599589787919721314298299695021240079227815703051595119014392980000318233672824287047738361426582622087144255540139522457778725652993233860436043498554407189601732165904042895602095048858190228306931675827386644381570599899341098866384879662928844524134627438980351359921911640889681730058221180034608996430737946476505916804137345900284283424236044316244994185131510124184927499069738143170009010003690035939303909226060351425167380536513385863404116669811629948751826387199212757192724076712741808439333230977803846429384707554557243572041303338205181178718956622134322898880276745238802523020526339683656069341544265230640958753824749167253881352442363038278034272110641295824492220494480554807884204400349706731373053552214204117886466653157883023733748409135804396825987254010385424821820317734375830708057378647177924111985509007798736827833876335217178473518883993242280524186836117708961747942907156074846223900348632570180274402604979063037287736660152458026560681609695630456513007572467032505306007012923697812473168787727419760308053624638248878800672043919063856432662094656615054603404796369084062676087182034143866662551229626054791709998697916413716120901254210314280384686743008716166134852803842030508389247483245395328321074743086045439654126173926432859581863765937077900544879780786292231691219532083638905631816254824383546209206429253584030559512634119937446110966365316737078173804426879740124847339759586174603872460436262078209410628013151523534791615593311320693405068608835396470962633704855156159027721558523412734667551587291949342206204675826419917692149806819368836705519817416538871427734059975219449938261602526339389847235871692887853114882497868601655335337165592018838564115705367158330481804126088833976528053116759412404066744036781215632836586143565434023238982881872568160728256984467021643952419889172031422460183897966094783482028588354765177737340813596582335794213888740775019454458303238745262737100601158234030941538085240674584690324937352722618325890138004568138486983105051999501618735638799588331685690765022354555162242498881912270495786396504228521941080928411433589051149758239733030984648257138926340788264690312229333809436337542621727254058218351835520851057725629416890556181399911823507836893821659312040462033166850806363883036736960004613119066479538584415820653234886619354928578019189985072734554431898451378968120857258385532392182881352078781400966147818165595319978426632315126872674814764553200631562555946351777940101697343131758360148310582761424700743902600501102309961100424019447929416417900997038977710058646189674859243285972396541758451873836411700403694241386025602905453481160408035963491983209761999792888204232003522249044628499022958014485936450436517213744537147419455377158668682777721785731658043424242439820732096852411087705279195790011823183219605323903227862968361902744555636661562659755131959055892716554307488550315038285917623934879088395258948395321221365490042969935657802337092642099604776326006247366365401426121542605999483888080571045333950248691296485117445270413992351436420665403945184891963924880098935202401901406052766550028050414663969040644974929899788265283638022660248181737157319679893106131698346329623499227327518066429582682375090581382672406989632167331423909604406835814432166658790247322567503253107223461713257551271949002874107564051515382859804860355793369485844638877087447326548320427727962290098619200841097495553148020211401029932258904325459980549490164614927008537915595498853491457217445326749186026625513133648693017618750081303410937457056146470543653723904815827501487963728657975463559424576146226786233437822287171814204979712759060900499804678654931679878022251375859224302080139335342225225248376109430454920511125425299554373543176463026264009578470555123810716019858260978639524809850316928634193704725592372890675321517869522213493082535308389272260055612454627785503426591086374089022331810855426078827991208182570238091619992088263395953891619079834170019158608562704480797363762496030502267459408413156965869780827522803201829042031043369565402414699468884987121241182751117219908948083721661931151657026780452696909035306640798145622004355392863248045278566180334977913128931971772552764345416688592139820941592417457870336752106100395085165332544872471349854314285633269012497005191353384104684074088493390988798081436485331945477256337450980097819261324512726790382975562083319612493128586243613115670060607149454610140498330978423256808428714831772248643531074599927869850448809618741176967724469617224822136057376304501119861991802395880006980331492989822887740775199795235462653184202749590989390210210711418181967013841355924598236822420628875011006715882260353828395144887764178945443916358557591458091023324443615568687236808545518913030711451907563282150881424706649155120946185246609931018227722620018793106747472969188258578246333215641003030766005283093239702518626140256411085868809869708234827528684595476722416254651033554134059057060519132131283711172966628866193815550464538549798388690151224977730774277209025326448736880169561540947221446259666907208958217674621318118620397475021243084043092257870025717858778022721614458243037157006599209287829084228799263197002647394025199647113999350624472373201220716440856010585442307253823471688873507236302093008058317376710607740160053125923625856628204113044647843581212483636389961142065753772657370607176695968399271031299354620593237077445378220995240548122564113983746932283714320697093262583957348807407638106397546612863770978959322247581449373631668461700783560825150338785870378243191101524934443331298950565879778922769423580295168684758306367594755088218143590889066177985189073185530495389432431332112749594650833978475537681762244709698863314964341545315891440534931842870572064855774373638339719895553466940087564112283145035449472192000773083105022168907442552664995034590228214930580843028932750447609906926058438644327955133048271646795220932277329234346527057881176510067188122071745090978446336143592546898262407182237511519297359668319800493409435366361460039127802651355665105011231476557277339180226695219616791948051557868702949552126202504955485139444704259126313558675930444805159565834375356282309632702830148901296106210077632792067159810039519398767511179385499945732355279054707265420381590195365135158737526647487345266699481401648184079967534272555579952140637386133125254852785885526764031842618399166256335042027546804227773681968995044328529631567279679513377534534088497098587855676055170669944345576150881974393241400916367563175815062564082401444543753933802842322276733060575187146472981908344850740485785061157232572021556172298955962301974426937223187516235957833766151938288616323102641367879512204188816336336134888214074773418093845410563227829264455368849320416436149510532534935854765668132911229745624146970194398954604005554754121860044178278460261738172898694214801249854656072635763417732514625682087258984821822880916046753180587691861958550122363286621661057392805407649098841655117459833308319921974592238189453457475121836110114997162366300922712279881162366947771856546452708849612246548916101030823093061133216207193210373004154472938910690368290742470287964886987727110244286448886109376282439060425623104730947775930390180580830235717824239371212631261446931876332853134767354182246397868687044385606315292539458784320284471865780258353962156163038932842829683094451326608643878217295397755041869447886211674624511268767307539404705350854602556321945209212106873805327276600609479258740209388962287822773826535316141328124402914722583983218499098861519549276254154449896075943288307747361278107150014965720527346617187388059144941489684662135837183464730535457160252244698954053893011792344847276410738755193692924726840601192009382064723147465404476340361621255425631705108623763341256406157965068557094155758540410373650116734865144313015996816660084217396149395112283299981649669846638267351337089081087632392612550737791151890455207224390777731253399319385956694257121903974681489862944598563517866716233574081529032142143805290219676740964683047475143520507977527629124313924570294849409990559795135603541605860064513796236157219131385079389327736796181907636415100021583744833388863487942083507320520838282609243882039614916018462466487217676894634387648800635434025394496872561879224356147373943757246485417992427840899723910908653051928191020769962369482571015591344162366038165063368522110814002076601909916515047325960629125563841708620181240972934101274805659884179821265054504622615403098639852799000234765349316534566610785988384225550895627490194742378414089613661319660400907904279424561400056590273948163364911687241264301895409697892628156728533510550402667984916982677446834294535479425373179276439066275201950847422244472646665879610299408957084719054489482185055758296677679924201527298485817880765025655645209563377761894617819547982251523635982785144813681551441023163791772151634045006961360832368468588828396467455298667909763788893652936529608711366631597791080561490533890316442299080715981408463292935601846607263192990286730987813894519066565012061961393332835528585982051998970166393212193047825623275816390522950076746196701043246289784756502597994791483580650662544616166709083248238643514928764539434754336526222559278577193150896705998016699188984144282271680184220936284796682232897823469271948785177474932391480944632866868989235898905460105659073663044872421042919379918608826408802205546805576496614603621721664582329606727760623785623901495969948444778088898716407621745425751356807115888629877708479567304483844825833967090975308239046030024920941438762136926413435132755796717905581472900773155686456933383893374825346467356638751995424646021791335663284434595962751451518047646338861023216103583901078071040831523215465408132792791799164158346687869234939969391300870950238339805965194101946370863685340083561672892149612362067656940433997135211562026427320069813559889938851687274746655990531770862539793914206827554823814196699785175962943008603972412706447661529373831287595279352264557498981740929036651602538691191278449443785885936833898481893282120033343403419350266813941878505565123180888188935991642713065521853313063708101769504647079443212775421876478066537795037171010561191518471036026740117261708021048321390694609903259373662587351690458095017747889013630635601362659515588741222023000759478071392925873384432072707754633677358188704244453012371357598782552621330867530013376027447798893191079421823959140390645845165296136902741875295729223707418100395415637858608614649099794021176577897433860847549806362004852142542650338165279698824409635066526002622225413898876147514173599608685846164976911825330811765193187181129568908840861753498324784375494801110507689442317551921607844062640560472195093138507061686287377890610198958671958134437333540925402265960288350785190532064009427744116881590810649674673873079352096211736781147300999303604218749172926464657823348248551080924406679242495286868463000715065640115015286443040530078460113857358370493074214671818659716790495785771121862461196407084001632297146758387170267589703582605181379542099394300786886751847165241713886625082528925778123171206719460717342526005443382378002640938444852362007037493128016159120477919684135537747376509957036068645800900308261689994351045082179738409330994821005822899455623949505827527402894317846241842542328020309831333926021964722959643669817899878751385090920543209116241585599907085873314826503822542122932611579255183291397954988620418978019014307853147582068655459457203069448960091967559622125424632253077726941535283136823224692666417948343864897481270660215106787302225219021883420852724825450007831569772458331776143708342432595191350585988146447500021070253654807252040193846704305878335848277585247623785404378517394868444956781239012480282132014577557090152279284197909666425180962687900728258194685441780279022510161622698336392512812962927266239918839094837919793235335045469485648068470103281748747454223942039106738047565835506451269276669971260467119429740208379085544466364832231757309577205311032896206033352382514487525395711119021582592140985548440693488849274060554742021719116730188802315785579428152600434456478523185833877872644070014775710530753282427446795605844050309341534532396691272443310288870246588568535788033401697266012268381639858374151092237778023455321066504701097025089080315417346903089202539194230052352938600552406634003879054489963450777933772317353957242518735936527254452110357886450481373463600323306826130105877547269719033555116212311688870754200712718640637667038340009846075868042837063369880438567628202616842027091436797019884144750031496712867368729981408989391974990346336723202386439047652693768207418995187430931298970654725975257190704015094792713980403372196868021734583255647754366630715860534226374249538295936033932747388021074072617544693748763738638120846705677811860211565680200614779049869668207777225832425004992947579341993460612823524315157535822571736069778058277090294113885192501261671657874674708918540877263912494450346709689566483049725374217118072472413014931069148114393458962156282518183353460939482469574243787101101261031552077149203355523339874543023630540964311687262413599490964264166840372653670825363964863319511697585938997280282262981219525392202619626355213616754356961792897999455302473345875079028563049220462421001882374473228512948057580289657731239690392305971515592647610594596481193231800302216411143308102981088796492382523028070286771674245889710226081015974081935144160039872560902923897912008149325349304659331895353273339057334277507478039416532612698443371878320416833340610499924262463696662562415182034330651668798300223787889740750814946843963492126555701671476963362824375128707203338276088861022532965783991978875407335608507537019456989705913106037372884260614473582008040692807652223322243196951326899336599023060798365210140138304218526100887527169921189553630202672011181917776533611178348758410444680153078104233548120829592516710113197394879148076592137028194581759897338482179498347851246613975256439276283704820138191608580108258739522741054140197917244058988067889700395822842863709740594885495893329932299059109458693139490005669951583839216151728455414998786760667615608941293297050079295102584627988956134727672924275518969818197115015560073535210759953061599082327785703017649252252132482637453759474814665549500978646720006068767289055693137038089410548848747027449188537166463297934604574895696028710535745378490516445174953786903500934242483723384578904666345876718572362309551489095413534000751408414411389179751764513793022670986124596600192541893742496962647681388329094610688625250034644560431151749393867447590992953034901714617347803945615673213446538156916348024076136401714783417141378994429171137111327795190456620323222030200925808037884795299589726381449587005949971207002352255863624682392310435194113119921135997674152324987182109293183287274514388794814749534513144685084632498909161344687094504390497185763786346692366218171396991314760931691032847641278522196450803930175677239921024407144268692578561602394341275200218483930265423030236893162502176994540487677071695835505826003160083135770007847043226705920182506530406056817827468648597482557819147253871448082214252485399777747569348912592081427278220523852642719909306246483802780964249532306116140396300496091610210584161181168089989656345830135339951248554345151800273026204545820197202344254362010200793182762106425178267209181275083874353551519214979887099641046283365921214327790685873655082542333871914754050060232784370313290512422000390482096833628926214050434829391702067521033047207341937372641838703906997095778335917539264733284454695727442935053243106460898080306787874452810324553059308317482267697275785921257578724789335791897421375760353120850222855569999885494734655202757955573144354098603172419436337941004954594397974037250998289128334893436147928646062069075561112036145885891054980227992577400053969278399757547213199765731086957000575134731934754754840325513172605037556709543634731417645088634161026219974849651380760565457258517336166891300897886247488955668261652014959279771374853078135609484120037286644295195280007459649156259518321030152396280845362010428070912786616022977254426810816842539052160835818868079589466941549923966856184567912260567943042296851475420215717043949886463109475426551088986320691036694432015134217687313881528242069124857320292588987475267021168896317266669308707895972379808016340529245830744203880620611782542490951127802722813503014155860408166733220738791958486303588290122912270138792830075848550210873581828245264558958914166401728814992097505196123859670061895034960889032253650387703808992740979285594657612985797468378731113773438543660364516597883856712708865577862976266508628154129592389117908172471781151875256047656838488385038036234155797894626681275230748345508299494499341724868742951690267826594545050012483680001680542181845514623910298443565323693961482158335570248099077965016834189093157975902444123419736795578809381383545623794172837079102519544025887849183802050764261222001184857697353338893782000402904902809849006211955983643035544185640482195333763243589535645111880790733978828869142470115384544052908954465498353730615893714618703636221453630754173056419297623204649454621985293794204906535776301396457885281246516243680260874181886004457057114824206053791354200013192105412270918258879365226187442643936624243006629840534641818676933998359928871329676434292738397940074674633693775165938483316066701724330170514427414939158606814583158577443258185787474537796012125485563021884606069411099695159857834328831985654597041642152189048215389733567219099429862020624336776574514858419389276831263176212108063362691761360396148309781010068857920719322033310947635146962445592741039349696082437099453635286363377239516167327133268689069483877996424077405989653851455780987068596336912245753794915731593394438888263987728925321064103119720966456789647605561662729961950805125856541411227993610926075080318980348795466371089913276407942256008970644042551021396588144812845550853106360205477667501562355899254711860490750692788529997086797425442197419356349878721365989713419961152813195569665906650929569224734183517637811562126065633312897510141781527886989000743339399089704636599724684976888399564205491887080448172172300666130764610416893303235805960686146741439061610366566385325138127294737676033650744067462827398678128868733568169242352308060026920037991625334016731810796398030526630685165580456240285465395333558117905523860810462536906687454263038142885235375683261319018964610787472870735269205063355476987156034890773748159627425745112322597007286280540671880549411590232922627793249406947720910911003092839936457101593478729114133680858230294516923474100581339032194459934126060712341740740922255901893104289624117597155256074527764743337323891200287819762992256618733924935888285179098977680185252934719632524875260872399425952543191401353746399748972312052541275636645566995821247163761259514024257016239355289802682035644835167063851691534058856176334292739589921832579634718371316208304496332032220818263638542411752752683861324699776626784518912875637250107811619297619821998897925718117021633524787367820622575037024973584304848597086202183210808965577844187400704337140777224793029991073709330532905244249820329295150439784735945862924214478398488941544506371229038574058442398987221136846592384254245008396223310243536677118823325924792693362043323343862584415162250545212023956232764196816084628607826191898834351448349508605409282512941059332396409352980924069581630180995301893860503682633569284945495712714867907924617432737843757565081452949489579061839263261929831086256559588699283122392455945663033643619554902723134561989054883770988591628841830624381601678268849180878525392823984614607345176867712902935930483599507630098665178605373562111150059717522584251707999875154316454428898381347029668481036761501050823265934348299487772627889966485663433764848179522174499732938196395400343479302978376516807596577531534593886285698948258502643828944315806990697481777084598530509201181595976761083090149213947669688936798368338753043869774251774611275875344281540948539168268603839393950453281763927423432327117502749132677470242936647664796750261241383821603856668983787685461049776431960899701029858977414936718555956775983992599151876430740029234267134054881967894797922246628070769527600487533505539177012632298327085102230298758524292549797675897301390561367965991422148972691045700244384010225342132298617220896984974518152642644045554439102589904141662873571184002232001311418298370417372086593697862146115085624545397425110249494636637267085298126541083008283104679008907086731076238377427767001334854433927350305513938179679961073758830834309774999591123124761754927874776470131712419846463409418742518395086397634237426238956386811485879564153642728088020178439419157136026836713513864690582953573262678563720537612419214603977138581308590139931088302947081116813614775838042537740674244097444127658603634318102437531444219994705577794258872437126361122541665380333696421159167042056897780346888986653356322326891008235906461272545743728898935500702730594618325100000385503188058695406717166766320187761842571884816855311007665469591766869935834803671170447682689171906246732638651214383535860953151224488430941626189706778552098748334170043388169819238320300550217013106644948092979769863157867708632979711307489582687000391701603533699135219002223627456036543366599420319218621335997350940409626858335094186289058940912279127561027458008049423471752588515646304981710411849497098551629480094347935214777068731361527254357895260592643954813010005100934139664007074100616477194576822197270668697785379451117260004020544404195803208624539711096981490270698467899270121746097798183977102215009549950479175374180443762726648754615719600998518466058325603442726422238151567535518825104336806248539184582891090464334517471218810912379532567737686632233161157928744506008453959199506178672419029221213446739820632204165228890214058951571409524705322882192222068158620386027567348059652817913732807491204330828267874006713667536941947505527259996738288472391656824503636918292701138533501889716395357462729354270872187399767186176503472502933630275340828015817383038884228803952864848957545641882812351337506947234872671319518986972921050042669875052440677025413680780510956906418299099994822486071096260460257420257055008857504034778009126423575256014822755188566508910372604372654447409221621739742465364166961998426313354570450633040179013040529274218532745608053530883657062525149790195820809618213375678362928246630463077019531389056670130640687038287606722263216978589237033152061707582947932880340558242238322150502665278771954031097704014243438576948260672643372550714186933443641457605923394209215800975181974775214271203624149406067087236441851135598538245396079076898331158632474050729967949299661626166141078719937965515075874096735721656146327001404357345017029765590056286158918828364268382145209501414736101012437945664834115642217303339679913275852996367040323287140323676101969572246016653591234368759737014610366695195053609392037696407230824455880538193604034530035864136422481069909556800302469204652910081468125528160827388385340071059074204338052663933129249774626587910759735962462386203024932669416090684477614595701581046437148664304159081145973222564765838511785630955451766506865730377699659948517296199448906349202849892139823970585387720406700335938161808469274097443820556270267446038918870560237834479772119515929777335784924781228172061929763970842403947660567630425900422490302310151849828848526810545409999944591676865056497918534560849506250018782156889769532505126794438833991163980117609080886754299307537167070354443537930280652552043581535453516985532245966152250443302921152472915081224850002574723307120762811599609257520915892304908251293146610767219242614281052022837878193620650461265174594750635868231003555857473991495592434162709830151010851319530137008516360471875501084856727401109586129703135625390376317234578816487124848727498517273120616095853067773704105924560952182937143007219805129727824991093643800426510746855666169997784977156345515892583379961001038463725729762826006830855306034120841318662926196721217688800626495035846718197274095865848415691596532859118805208533635583009318762440030590459430855055526310057809782917892113440193638538830660192991904746318725677825752508381892692259115724357786117237912166110544089353634745879572746017523575783034797594216714182329422411945735383138134060452123394944603416957608361370182831927102071262876909470859103165959762138876211766302576320807469970049905562661798835622364022788471911823936562248038172199781230460577657265784980622534589723503108415875489836552437637927442640005958699704942914051057512695083719833314375167275437181878191511327527148964338055924605850396160871464812778891341625978427150890207966543534108222321172574220543217281605824061373417139703904728028519376751394252762501554975356774493530456860347485978374040913861057608695416675584456413530547204249444469377153429528175488415064104032750867843871855941097684149426160548859966080010930417491125424822980222676185064116389435474519092808954112711872873886000718365585311491968991431589026443514805563329128768450422697164908610961992939027733278463142002005840703706221672362837630534704117300143461703452322329935127085478019382169432823631273038483067939088496228817798981391531465966868757347891345273850775125456062835226647905390583067186280441275794299588878720902019126186807241414622071042420067213124026809392914366421360920926782584809685219699668166831905655029141814800800279106232819772084381443749270627990667131899230847710326219462808274109078769666667132804582338832225477457890276429773818129092223942508224005421132395082605452998034620485231249578306272275791103162595266940534548266709594447040216941612999928386148985069216517081005010613523489775977670416530393605052252902580492576575167315853570365576089158610484309163808797923364883374058265967661937813058221159072106925426414112694925592161597765264121557977128443801152060875058027187290828509276936870789834233451362658884252761355091944143656812630335692617019850679555940683283974333871659122866936905951929788346325971511058870329527409147744792477548633850764021457157282448491506838243821213958072890975496547335961977207553457890034012336853283240359133184878032145150732837043359357022613928488303045771775767423921641806111802524081091290908682778121590293125257240013619144056240194912382282380998626199654181122977516886229808526782704786180774233758822234556911146281218419612258504100935319215497240612800770154052382513465652288261804471799033335006714834633014944499241066757958937746660669749886946196134534687537553207155152273455811607449882971625218071402956575028629211220564300778570461520863878317764992328551248203074928992132810298570319152210490154478531407549468936778811250742705008145956426745927713118560535537949484322932808369924776795486955002829753025754205008449708098774741073350582420275527213571750661721779740834717397308552837978241405068008837804200190375826423635597287631224303365103500908195065669385278189528904093663874151853114997542125421929460772595065825990723887775512411704478646081657822140859457366330535376031418629132393644819906786824328989574916638908385899221494735839713798024547322036230246218814127082118413787507218369038055606777080530330517776034655041625040639405178262991335928707468917574079465638572723388295383907133798424950275774211524341433713710248900094024901521794974831816958341075103677542250762679830370607563304640034211666488994431505496435132620258716073069785653277201043472419312148359421874916689734784954307030269697612978091520060761884340373535002391322139636184538717816589475574349146690319994644053221974385837959846573791620104578886564511804364520080249155313298479083808098665963200542647082767359751789104730786167344424169518210081930096859602214996338113593617362258811352365215088329784859251095781419635498607796780174035110527369102230577346511106887497391756431535180872340376553579837522543142157123679100600313882204662499995424818888166006481118171283538055372251986681365522058267034152316812052427402310951189958464665565228294628222048401757492432493178083675257365081010324729077440832819439102538683066107804990841752792248684827702773689546444009576862095871905505008470781778642447706657008957074489179146098852524463599300207642431109032444613498851552499647961021339473350753872644106480556070490319867696436106635810751335994197918253908034429492625861565349320720841148436388083980246390268294767616901689093390615920108462209310843123394092837476444144124979039298698885232526161139125384767996120611797549289977859490712154809441262313894484226298032046070016260304332509778862227826964369707191472349855403904489390521643833971107842467687564622806667045989197059841073038940884628211994661938672247813037295559040472164330675157598138532961942678714437069334173832769934250403614605044681407787724075960223223343602769493134978264653929680165333601895817170668891163705818468239479411824556340655437084701494299817310056972913131575808538526979945212992021529343649288861280548153332339920537925235300864052359282513467932859898030534329018779794235040877984336001583234972898803404254067006646502087096588808940473629713543526078584447927602154893700507142906177788520361466287261449679490899736899750240084553677855161640647359621934001565701678981356313184281902549079893100201645274302929464721951139319598995352620225632271409685075993217799936399855099574211217310007894050343428937766195411026328913915202372673656356456788849132277428599992527820846967432022842119344539913797927962569255158121741722787076254776797699468661017637310631396103498728090723220213791628661632274972661768926457705910716758237438302772840008245656325318881447857183496409120264204742100147492122328971064887549205513603511779628173445064953537435093583630298507345230326779071717422166424511558499793127689141176076250316152574417983189838404718874228340374900950301985216341294948506852903372508967819298943185038224291979897373381805818557322768334018950778008792373497323908034117379453520320774381808547218620262733312253837432629198704899128263095092079489063943412128567477406045228459978002577543633841716306128469860002595858793225583608825701980874732182564950767365255503137010055835676669025886069887486686288085964765821180122124078031493182922512804225879642511177780924526463655079756212443450618084295325590345531864303060163308367279449516071308942542077661174762274540151621410153719784847567890725095044005008242848125442272926201503194551839648847418992008384874733989164530930179024398753170229395546998504018415968673818678423050329667461783430177394915184311043502684330495801501220383460736439243144478358614948666791843999670058320439778824080284570540050975024863752883541836944375034306353843456990673187770766136833116657610402345609317754805128281395672734696872120603397534741542856831524152259660329056476327024672029567427722670994825498288134512719716568907827459315949934529827904553404742534817745934132240122470733435889715677359597114479882834647038409312081490348988236904574720829292709558377761559529970485187136194453453355152116536877339743859011508300236211918219472532905963234642587228537547400243367417569456865173332546508103777139116043402898676310921186920783625248507879130396574544333651881870459923805336121235358700752285215811340474953451062783538754830231144634585848178694547103330189027301280018387941120262758675032795228375799192296637172082655270664407857644899461208361071055924776185491061100913715264781777700938616849090386199037181649348276104087563957325522116398807748139502145309922252998693635070080644471228259938584750661988312071610167631896226891731998077454697888003267514912062219091494571848930420652718323110634570766899780240230748183633603879091103272669013573442938159554655623397793527364229569338830784682799361186829120919740890377570087266096451827598354132232397919493571504497825075768683446448319997158642661062758893060839873105318009451479954138555153716943596692587887299518494869228775156565327987498483121116041416591431882013327244123125110351457010823697558905614039904031214055930595995764950735286518123536467744606494192085755217325334955800815887089527360923067381285548427896966588583355590187926613643074613482075479733392912160511164611930220335248321924207163894328639890759865882785600393994866825501293982692292972228450427750649417863810087619703669949526560251261226747621327388102891404226374662247704905744741487466189789385327574156232696151730185777013058556455129590610024561548413110269287635930676637371625473028764524615471171897536263398994761183053494906362217910469886493717300865659174887546294291117563961837762117479384982185657681089095653667629653076960331340571702910603494831880153052858428094227218164075482294995948604817926240513365497805076325393418641560224850611333481629935737438345002868759322885373202357158937018532773288186911935902728772148050503047964713964005068028457155996703068203341608239856092279195858046752028264641227529058250690996564816553314074818046658936401733331553047648273090911870179825594621946328642876444521567218671632242044910865471733486213901750096252158694016686678510935623537754223670348523393337834733545154735210433049298155509368035576944259637544752757791898324145967440464661442490239594285929880112891361574488744857370686765005949860111129428816157795076057032713213391133070664797765842818288930328153595469384493381591454310183559723273223702632076092185170259272378020868045168186090358191114081330004170324850716732469832252392547499992111432883023057736900907676167617100678220223306769185877322185879473480172093397878604688572680680392627795855030151458358780143018476852152907974379126182086377909743381433231307676729096432064911076580089456792043236024120095990321013603459828719061696239473126999109219977131439540047945462301999276924208922005149140456126691438165747988793356725686085531501395341039871326231909276716985613353832688373062005978308156640466879178437201250948206214581425416945583649507729388145192768016686818922359517164855248090140178605843726959453869196449160448226649489201879318846259130423201069467837497700555301442972244636044070158470389510179230590653457139259023219842540006167651014182014737948878458176340014963596750816186983844721583450382725574808968387064195905756678216499888642449461063047613889616688245225937068462981169983761419556115383201760488982377979842340623042924971753913092459949156108915200519013524014283185473346579416987831302157823617928907502806490128702249676508631007658373684233876061796056943490507952387781231071613435031847641905010452784025547342850651618546444761889326066881125123923040367360153096503048506540644434559571346758419739662749412677591802183000276319896558142513167633533157803009543718650013830163683656923898961809893448240644446666097851017481712383220307139374092572814646914660996599199487859282447677272684425451033479957373102720668169851991917232228756536613490482181664421680877076631587835137162960852530061120708244114574488066168514013443337592180720042343977967167721818766393163787551190651355430850772122308724056367989098656907798348693441952225579388795308152464381576752848033221703346973204387474605363129052229359405269385189490481646439353415622084465284315011652565913980519888735571451829939785617235514912591294254916569938634477763310276052991789227666785631687045785501454212234487621594989735292927252350670017741044857763927981181894449299457070153185843250666212567538036911032548789586681071233511898178662816060271776856020927940688158722840016256659407664865889521446199185941681750634882199224778964686262939901258094755330972593849541249344642013199131101123822790611127419920669929838847009849594686595598804145009487440588724100305962718304706261348564887882276169226354130261554643035359508079545632365603448581436677851568895829522773491137679959664241668746902966840857840198555496214390052254824782426697476587223579198494303686808785372014328125822749580130378353128336321786838835950718691778055948651908271045087301986665256754905077433504080238936548770914376908218251285286079108327907787630580367292973933011544481028387925282307636332811278369191822602494434682373025120575504511378042492877838023556415802290947618648520479985823238399011394846308587668467793152473183180919647572939837227506499207704701254523880769381676810791600345694975672848115858885514050971121751951721187738233532304317415582233647939310424767927822657887373078180416795718930548546413741296710145839054458048168977727447193144721530915925057317832972008737007986725274154450685051754330937648597689141147258613796090149414273809909472186550052837952324969880697151316735425531882780174089016559434107459518281299054490679486257984281797281711167494691417140912805420711912974924806716728871845694030732238570443433639490568186444383604394370673085345835695411725357181931333471006073603693945311026902866206050325137799029840247215766071233071077160701436764808799772793437608278792889458419665755838533852136045725706790691037450508471083430979298220362511181928729244520119199726147233264840678201117873602656532254102214597199174730538825383498723377095136779081234664135714199982515243138122066397014235969762969055618890357474701357889470489926523902018289591494571596513028581428585555994861834813111303917016969741175968473916026406631760203974497346992708557026649757559337439614366203405018047300750676732818788583588539134287101264895605820875552089321194771291862636634013654133028725273856841780334842578693566259239243169006148911252154386249388268820425327551628328784556808009328902090460108460903210102898780728586907631759862158276560067485682082953300363710426093190383463612972644693313690598732352345634324233535729639089646870019466633841802593467188228049806674442559940986826122611739797614592574927327463420914895448165238214035309080175397740150200641182123697980953181030647455267427482859554570608178813227553385095519733688876026299480206855916540157779877185614079673629652391989707219448192260457898317559427460710211360440467160033341206835176419172448608881015705875572207914247343838896023835378669283153168601919777895253664406506322592459776869468366303202191238837501723201493243226200607265442365832748388181703995170938756293696500208321939462459834211247153936484792037796475388797998935752192154668128533873275181973159520840407238216429544533330835765959517034148305905270796870040653296332591755419139743277800942772619061488519910754780653113525900123587272343703840076627333689113839934610490482277969400854792441255247813324382745147847108934514709431998630155044876443208984383065712586504989520103008923033870774227624184809330311634512604772591560025153960719889612256158391244208584885277946836302805049185343354902147970237004260112442188765405492620007505971488607385314997523020310634602098163415679118382086261062951630319117540865490354061900270255704335007047651917799174460501987103705851399731096839734570364990062619399296226678604542438712952136606750865389391465209470417885359377911779700076970240863159945577543679472575239255956915445634829983111944776518722620315972412037864258422892503890864526312903832570647744766510980068329644703832821602533720454394794601248270585744472501990346472364964946803922621511805835588456109113515677945372612788461709008799755722174470495333896366460762925755746296638938484998873029316386014561232248863179386558950493636552265160909963256207290739819445195809491285202593678559421399891880451732786593203244470467828130109112884569926241135739786786262500560610180248769139848230581713480239582079092729033817193062350448383454833753270259375956285665775649097814485015011754384946827228665612313403706629193301373996513098205576295963777964631585435990024230073132569278653535192876526674258764975994685746160591634226130746574240575685311623593721611947986421008921986560207522433937741755276910792736806147622137960737289681079481736845955751522206112084798076477638233264146467133196182181499826005644539916528968716880224179702141027358529808193074222894004042658535634348230499795160440206108150746679827555936438318911766680806821684778273529136067194351863971443107097830235909273480301217474614399777370906009566076956748638435538557880558765907352502238307856961366989406653675009741949632125622459316912496196045779850106512231589430933681042491148263778698572241903808544158723964491902489800492559615443568715161623430895695257081181635102830319883664328152724017155845213237472448342001934013655500361773121885696792231057295718988197302094158749173067575555202889783858528037770875045787743915957798445070438099128630468344537250578472055202370085202547982150087690426034281981515273060902347050787236449753410676066252142858437802076463502980319137667997266860995509425602923685397839954544548457440155413637212038904735464089829064203581591553340302502907867111274082361972572645537523042598341903713674132670250957902648401587318891501311155064350368987842345882866657388626712461231725610270830417653916421740476938407354403252533829438056303718823686315145760961171858154142482689748872933018153078133681301882774071620143912112912289308867011468662959537521404246518214347329071026853873782439567229875151282051835303777991526870721787210593749078910186065164469334470091781106693865552952103174302149034839777755635428934027362883718964023307949129733090790131055249879840229163079368934242733176365833305709316797785615771192797927279500465408991802214869893697602580742872568901291917365154289937976467253528972873058141456232582596343941504576114183029548029727396238283343419269160607470979375200880215236398895297026036394211096448180521107436321683352834212075535047270521057117401777551033868104513145074551247891236081343809189877117431865289337956474029282558510884176763104685829829750947275982537279000050587206601325283370515663985542800932386857883039867333177704783907181845446518245299913014232029848130576107909130009636464713999929209881048014350962476030416200607849319708330991917081392412944311079070261419500303913493291484214071613972578724374394238795515151827287049564998031152448147337378940737278111272570279343984994446501280485963372762809429544074335733421258127256692495283970562853217433917584221488679749644810191448250161438087294697104371623338516135834737325973093512594607086555056170302256414574318312814271640034088894814180318845541921926650441828711533523287168857896538109916937241577077196262923121140847737891746635705334350020085130436689780696172019592588763293066888668111455021823908458318600290179503736837059957692964744529390816151368286904916885647100535307350126044037109112120014337734549131083658009835103940736013160368084910277815595285838077170220853843771508611253844949736454587515391953732349002263578603386988095398359302178934209434540834408782510470372255600213788255666004126560230646877999560518955658672675662758231623633910891592776661269789896095161497155872814198576462376249625427009642631897501020111358072897419544046058506656759863596182769522347991140020795077110469826966832458665655112900052953594572122038268875617649540514578240493388138019166021371558174271647594271520110658226627175764271487952209559445746602364747378431994244026210258642772346206095399455317366756899915597722626863550126689843800639903773818852558899932264613460524719417244570008420534810113372165689069681104381603365370428090023990219865796652639210606622775045366834790391964421215736197859347007555011809015645788242321787103856763998872967284821399768695101709208158798305348378550196890037750020540447313818988142298806557439795136386365631045920481594555016564159819822290515599670773829840472279940813215628922859438658522245531303347951971605757834642403146538210113859211825196407128312831819681263303396747900037318157391489071586352139772329673085303597698673791028417270983838111166720629431014561884301997960985525472111924190436686832881790690705344280537814982117199567591634566931050521338716343428215463834046260496674854221427464926168779421473769366063493845650700879478200252708586621376696839108803108485314273148579612542102721052524455521178463153924177649736720257534043613787251165178616411425890619164110513669123077326324668096716378635706617961810376896160363219096924954435243029945588786352476852951991270207022010283949726431028837813974479294263574052900548183379088355715834299028556246910037568125891075991568350210807020730498676967361211765803630398514313844431429246287746190992421486257206134702551027259062076894338308835925344506954073019969876614522189145032500301157195723161953395482818891477770914992669209780823131803318685905837612644650402067333952165016581938358136902564915688087122640512511871573417553935098435682072881583783529867339583814200473053366744066603511115402014803938215958765916958710376279904072552089284164632812269841482574556499459439255288676825894355605184484656912036067731334916970058897639038886449629448468147994831266944602707047703810383239299503106995135846154097520079043070921521087676202288999832022482527804954773860035060035417307733825135464502965930805667126938783575465086317026744797639866721072731482550597306499370724128244240937528369052290569310853340165295533114325408121190136106325756814228847193415860529435591239577681045250196325968489504488644281681207605099479125414767813862994783717447237053587902205767173166203831667505597626376194313585177012548116000609682701332349474990928908654791493822161057657933890304399432535832113200284922365077525214863018936338504868033245545642941051444010800546656414204487963732600676494468715204344590002229246963236093611132211006979473180566841539723482939859249767074698547442114797595771762649148471032728600172191737138350031432592694167844949497569101425201567624509605661200153436698481416017104229257636355052977573102232364177817809057531069151844113378805770002829069912619034666146519412826947590014213316493512220425398264294346267108017093949830844401876805793112655182546437247663109304704726350332488398665296373261901735241197125330189607385648698424339524817205233093264833216312148711881671344397177989536083524944266170407520910542062746393523106261094782095698382349291513752082396465537527637891696460309703611840124780193547793533638076762492228518169299639562279980577370707440575094045400738795616462839422908676944930026025920674277961534518773678375449257102967155209058313583760493055633969226809868323577093007909948608562145222188206151014828485519114888499592877801197660679339267417292924810443791617363781077976335182885459650590581477309433206116108542852052606628145547741517449720287049367155581796115358875425925365438256577006311547232944406792720716614716354450566382019816683319456886639652397513779831612944667221430085210038244096110293531568842321163294257605718891459356128279816261318540352180810076485080621441942677741621203936498826122910052173220790239626587422826420626832229054735460784662480029948952736160486892555327878919955007938610193046192234267013304302070218585132614466771069318830920583485383255551876402588296014213588556051203899050384380706080562594917620044091908217242677956757019875372974371715324226169887395931412407391709473399858558694932509247110548058673137140053056096723758844747385413597102856391334330955604541146368704023315176056302591064180785031024375283059692794482848312341815774626569904042230305385474714179934078817106942276654655799798733026129745418360749777332893654673674892874794660837661540129978679347362035492164198772405876960002516146988988262711479350200558743679352984806852012210541834035150217722144109497501178393384513309687949724842982427156577316421088821861919703894803050947268486864517443091179885627598413399554635914434608385497329320231272504765464570603745949156976916417399626587675877282563458189580838203663292525607131920951550393438267335160011032313692608310556806688587707091154018642910737423746248935254214970054863104537197108117868206317949965329265987542698212378174240803860675947857610953210071486253956436263720899959998649555716475091685404116718642543819435744059146727963873834533846833083619569995429561497664470438052880371424688068822453297538479235472047127584168019697026784805015588743967827604656496590656084534553694708927286742026792870003802216163142765550410789177427960344919506919646474275831942914606224616103428814284627033705010829849870811776618722206623105497352547528958663996169696502497093517094034077253525816153918545507877048710622856280949698873004744141470600340266725172500459799321689671591260363073247475187471208609497261388142809305725576000754308764194937589247590067558866891546882829846155061824887877510941678630849580860149781090591959888093030028329453764781442334037032738583398021654716063283870809091363101855225071233927933977067924733152892381469670883484835678048147122395146487499689223506553726206610546629346219718878230546155125069814898846713622525741144052611395038618052679478833122245106073288339306194651263337144306919533310475850383652430770098813617204721601584567434136155668841996842678727003840252363601735812995501850404916161371272300364574299937374885151806407705019069775465509446237714573650782550803450239853633123660519930869063387856543661071480093582295836721922695428586612713993896915816584499732708979158638435246636082902183523071399112528144255666601526414134027188110567681352268528063132384476398927684402744035346777280535965701573375699317073619322572728423915421416344663452631833652000324011565151599161157755634898948472670047854509041917703620671363146414051368440513050686284494305189910474313216968886828011964308549870207087502942544639391272812528532012374260581078031876317943521211105754577986725792680642069273001200088156467985079914739446712034229250344203596619493397223215920587447376439788417510016573106145461789315507913838508973326886458648824679204723064229084915785421610108070774741882341514796643107425862473956459839579173115043052869382451416136650529376768008043754677397633545266250309799236711242532012513458496075173354734569568125645741574544123930953524333466701489417564200453376561351376616684484344816679848512639879411527232948183679189862277951394141141951173156016392911454779150221174898448770513956150921450356829182129538269680264265395717347442256324785349584756463222054641562026094009196360252479834049751945652542526995712386986317866042330030838477432359280040915864460953597452435292358273586945224438175002738544457234812651024259627483352003789372525740913391441067418419976389277705337079327889921275075901334429722916334454157580158995453987456364759307616982550045963273511465739366306974291997840815646275953474611103348797523226806151346489687075724608521443655099139759674135675557341340839998529718960122661337321188380752869305503111045851366000589322033996981883050444022250584363492756660620881219809800979984989941795383160400621709371281113721926380643623153561959001229500834690358588316573383529802317082101846963642801180174528908316234906499361601753442084315560843743316142236072726327579379008535646896226538373125140176755453777038057089209153182648665259365929994408473083074754959482119059459736125477218203307565893850202039102324301840577894064555987365097552465993055747966536154175402577670216617737901731340412590344349908935783997502001892822993682636625490641390458168730418806314491968717243257616287029873943954197604478830898010943283815449536335073555995403190226816830698583541990904664018484048448147599267369521384261552971740254189626060864268402683124325990750618573098773979660462298180567066611708347355983215052114516410476838803550921684416998764252445040036650825417780842020120522389107893578801649258414637520594921654343277468365880107036810783906009696626495149199698135696040253389333738420245018430404240800966652588130857989073502183283978680257394574441450891301838243306866114367292359878940107281097802525677986490008611085992975316766035724495257693976216394871829641908752813843619204048680208209463957771023587707664576730892250611788782148501068591570363174108079935610115872303365407447802361236276111203502754713889551323865558118470387324341261412613096189239622427290075844369966554773879726410373187373577620668600713009165881178682259154003172476439810552476823949817241556548702557867700520243677189218829217098124793390480669356190254087120720707581868863384565841377955012993749955705464933829871236931545211298768938009922474044566160638076134730629245118480667946994049873254459942264555261328847043487829328595833865089523726236667120256759936171892419513526180882153494133807312447721659550077106025700789377700964929722553051786909370606652872409890611171548060570142093085970154611722973630027414013013088494904074767678846481253278180495084625841639707034380445924875007090229053813473516395146764358538175289603196081344823415998499901725282620384494066614355848829635690492921966140161228325279383952672620845065607693749456001271167433645717811263213125770594457877884685324474552770237212796989679555317729661234445830693774392028484577461307702511538390397951099149507999917317591508859382272863969305032007993100459889815542381785059992722861282802145583922189579413220889760089355607198564423548366647902047134305682346452333635570559389079648369158152295252146421835754090860157802802582437059453543412358945386355691503118024176158481608315926935925301160362500585040675214036276658608166112536666136767087109942860321099395454822295218561306411860848081128532392551517121086805529980202252235354977445318505652120308367148415093885134184921838325317924947669264499876918499600026123959343089399584727042174954956971476158108610052359153781264335884853364086923547531721778939972811072992960500514658768395517689876614127478812277107349335750080899205410589842167388293810937372718336803888725403869569762257048117483656658391201379163756447719484104547509173204210829483181490435426576321836486452536058805769248074739665345787853248505029481279881172554231844260229613392576514155607076163615527967443646088866958970183980032049243786143186478598860638192360473304206884579406983094369560967697878564846370359746707578295424289396321306904306302733840478548736246066088446714902960884446568365295004340224476692610379732738634341555719144721853159809080982995973072710823323723018212482306073072425970401394367795367989312625126380701085302340327798018703743414330492608752699802718491631432740036781042171186494189734654715410607684155890661251882339339857151342529567316131972215122224000416758330576640153960211036463486515265574833022990739419409022734091229531690582975820648956621418168044966223615437672463644148643600154191697300017987734541163175913177470322737218198516739063339062887488510915889559230949189691953492168466177497976887597849598761754309805200203394674827242864786031467702216195023364220622256311199234398867754187421399252602936209335109713086832414622449768317418044621929003845938753193147940268548183947305489885954146520671116399776559490061618593573700972257457556011635700057832262191050847547242432094589286933505359477878934775589706852808318482629628494001781030783258707055831343029388145649647302120998190387011817131784634375025716702323673291847871517910320102289364859911005326623610671777642334561496475145026283896726385211248269024917609279722745613258955663511784406615136423450987314060789338634420628377002729475496727744567368825739508586475183305525926381600808681050864425654073902844987447567922837433815707810707856879623280713582449329226092525878509816179230592361352412928423404796382351108157496052177611938885242438865697702088577592810251199589148944170535620457705987483462237867644192138104413763899018487193809107173626424990986236488106973792746349136904734862853664755619932671391116331517891108321556814257114948938351919403810052603263568375418620177668771698064948847454391616005231805949648895302532110071429766343029737210898059939297368611152995961759879675470605033619606204631749683298744832862869584860999815245689279885861617296052676844611824351687928896777723302414861495505488679050569960557576069675424044103072930580147301554364192139696412340220855455294622670846115814622290281895898265506636178045502686417379014793985755095236117889484040073421543360409301336467253988537771494355791804802911999155872387876598590462121996114725860851774938902015416597862110363685148066071526156591366747185085204925686365094233341027411875482774541945951629913493795449076150645698927782549418334162582007347684721763199540295172929780830119802328982727211450688339285225077524644881429252866810633352843894738981662269807827442636343520471829906795091444723997455453281807185575620675933592667837569035995000383134657563011586246641285626054711397696075948672189660238447330716318620643767595940585781372298987672740168492328938476400171404485388482215612789428753011234713093957094077705610840485528256832976387274531900385647808695560831021464034267413454149416942276826389883418804136606525295004263851042795588348370179884292139629311743775467803562650269761390122149439688922169407784821745832614925708176927417094712449457996900972048189968122561946836581089083873810134394105760675184993031031439892627559438241554673003960586001435306884776572987822539265605546124717920544636737303284661361479112080439586814022503488690631228343622627827965144196033626859025292168129833269148902130253721303059411999973757299916793039071436621557901969459209374252506652835520799012088232951900021182063929139972803380056745745409704734396819597787288514675520026052663424269225415816893051088534602140886403315644570793435504438117428594380829114635775433685176840661250567664362049593805797974052377854183568857730702826125494719636882663787035277185803152682415349714055471815708503961752028819227429867027785398069618640746141061045168146723886328116955740663605205940618006937630998982501954846114417965347392326139897552910008623916173406754407146855544766341532827307903050624631055581995008152589772220222070885087545137084152855935702372824223778813061359479465535325081778143155487797261820496183507939401397894833318511497142602448605175643029818138665900685581932994348771491614331238154245680959626064320627170176462422124657371740356377933554550583543309775077296503309507064074886140374858737574920363704650207536815413084643345790932220173033148075616439531651040849884257231661732271126432763324790967523566986201972143442207917004877216377760639405836983608267293937695174193460507278537166065826426697207264637430013318637410484140464162032207307008237982693308400164607547761695143146295816851179015007452737990953625474039543787224869258108602372840157703549947372135877791987288705985860187986157467431550754489327308001015329766396312708571899237829022853323841023045327885351904257160393350972159502038683747043661219575859466223542721473672250990166178301000471765081505905521850658116453273468051154244049756258592863722490915153389571955521469998509766204241071836817788870097308247980114401465810413633453134743560827412259370230836307177914735721860149469510018038014387826724918863780866912965048058733222761421948344207855108807999408644454123983307594850108671169195160208828237412629594237333287017280915227618692806801541789053433579959834373659806027679504030013361117688336125014252945236194910293919919998433098049956417434655776721316916433869946488013470940869173156053808192473998329929638747882158196509829417998320988379611277043512508161449000504438437144355139619453501578027249069939443917731466864030038881906151676936038864421940772930463927175527049171307715552010347405368475337505527017885190989316835772816140632500211206901205164804970757384998549799531898008656571529466858772979146175373773192891779617012029529481321960822721314692287678686526085610718511963679714030198213857309872040123137429795570519251309225487241893246138642562117744680903188391768448325524018822671833489808339860907115718205084507928658232797140546122365689614957482723441804721162989213723489248639784675178542476504351548497994503744567658937852335236116800877272206276037487682786442347345582781421027012670603618127932134219363140353537762437794365151529359124281558200263727241395292650213007534991724048595181186502743234726453319023874406556251333627858498261898999844738789597447051078574461532512283398993279250242395984593861373414092404664609316525770587350725589608261534381910252759754653388092743292254917400240268601790816325346949326177337691922269544317326070298713039624109120066472782235462936532183140286284708574685447090394325143567764858725215661526792758538823872846280266191424436847662810481148777285611345379369985595706980849048842608472913882176972163477955475867024583075652472764020721735518220659281602439056167176894775270142333835362644350459315884902848429735662162360067520294032460387915434348141331335383362793314579538610619359806765057158017211718291072646045093419146032757039728292295893241357273294826277029181940162108051399347172898062921830224010392156093327413290929919050489742393581507258700361582736354753796183796728217488660992182250523222453365910174116945992182926701174396935328895663747755432155096250748502493094428082509660629700679876869973241422657792639504016848495179928800973714930658658077495902704098289304626133504066858810415591685839104099975697194410307630745509565921634456597973630165308861701919873757132778313517734876970013765847217813202979633731669479855727649940769843546082091755680468434413168238305939873654692149740825901772576545407773202784295052596538035839825858286431848316297650581389396052216608814076925745707831565660082864617974870749347306359834915239429350821364912756702140161487463027436129466056033063222994289034159778002918120512074263279503696059108127866494748404407277849400449376696764594170140224371113675269694395621127949795921125268838421753428347016677194932666126227761610072139351848411433591799037497721527690063565109214794095057090056924112671100998491547885616746408374370325854491310918654069600118327152071403049148738772520244430184087283753780011622964915313415045455266441335468152160184079126791763424177466235479945876437178860138914349991510794281053246252249783295714172768945209492122801148443212018439700539202471483304186376130980458062498307689084857897299067206919988531941513744076278175379793627132677484138430911906795165631909799228958725331595463922181708311042225400581482031152533082587250400026360374202737875304568548890361646155877222365539251345346137672679350752842334749024797564396679441670959348376593417003808772702796413248093307243038801474175710192884316393210964283157557058561595319079392831102641756803791603429994527332287589544736685106303193977875057461183144678002615390370149195317264535616360731168116027399242365172103587593315265259370209696704950110026012262777377752757769312162828509439413815758030017361744852227645450652309779222474532281842175120929286448973558041660447641904184098668643684927464558035150343983097450978420701676412031490874463878168362522726858868569476273089300278362022853537813785029895760486250350019173426964316781914141634364044912829976948464883859125930664828223399238082927417179058408780363288802760793716524976982432623906285736318108845404949309934971817028598083408269239790493755768696789550494456603677031315227327844514376905914362806361239170826117171989040083111801002149396120691619916283838423785122088866100014114592316934889512376426996608942580184382186238750080143586603917869018947069445864186372064486885726294622612362798059739989550331755413599643904072309816047359250069788318951386524530884381453600973785240279954491660479933424273158375370272284733881878548918457444712756674445896061735158251383145238738537624431594427345051002248323226200245162492881362529570401197811477941977307022992831667753787462040376171964677928989532552069295593771442002578866830393831470120579831784228448761148504411609427475383322478953979249205886949090322271410215989354125133167698770974904905088464957041921917183273871716276840044749043826047534175747353645526812965189813035729779975674600253534756808703481656278024766359281719289745275895914245821344576719741947600577131207785332954920667198193861926518439807240923005044557979305497432453511263847092344621295947826360448349735044910472185331479106157676837120219488693454545538430900632011407928257201981628754041197915211392852384848238852941103706741755320487949809871768251728908820804180935024186523380114319667249589211346301282658370439100713570299691832309435707358612856706028631430494859804264705008170025474072503698752567402192766377983120512556969764453281741778548632103989865070534382848876004766553475324694248884173046603594713181478016079781545011847974269344857515093615726607545116211362793618944160618597436580660777495238431366746503519895208231033046647484216395596478188872773701741554566181323703329513546788050833045339914409792936872701328997833917882773075048195223045967864172319857531994022599661270661560760097019168545220526065474771486251445990260989638126623864599834544416927397600541087174741716387723805032496579693251326548261978946680157697215107103202428922020543679384334077100456727164782726216217076418590608499469128675192339497460799879014487534104344971483002269196763603547095304207902433275682965750033920040135625313327090204965875002562058294062032715208188975411338580399645456555176613015854503812342068997849917023776985056912362735574276269716561566824535626763221607295729453303137378884904222384075620371095884272825743061534483007997842187365147127491694471401162790515842000330829328060188899890744996204941402844409687181222636501327493916557364637728243433175354454213595088648971095699281096937607310048136512884422812838222815824771242142247151921532921789494062601573362030919640114451875280057487444969858694673741307609476950941820828031620078314730444192114881335219747153787190404000175628826313411613663274428156360393067183811113402065795843055827482977348365361834556154945495408353017535478870962955450665427152365770656661156337256094745625491474071478444718146979712936527023315266560320290117151573968744635188623749531222936484928835705086207845167612485962417279450394252367540716977797702156356787950205002187031764053251708019604468329274449718548548361366803894296054319469858925978384547207814600210480841998100176430079775568087076329019921287522511020801361217578540659803908034684312401742977371551978273280253942976333186203053368562532736168364651121708328713393865446821271164148673427063406990104868836941629793456743929556868212805978342042332623617438344734376158408196645679832329782128345170879378838054487217530089735994541027181721899152089881760933530728370028106007062529804270979355903191348297345328013349646523021876350941913951872021973602143876778164133119937251240895549121288935347231645490890985053735263706942761524812054694347876985263692061454779513041029860771432359845701098023473495339432881231400721043965311484050585285858340709702138864878606804942670689464363420294816004682614170042697263250144672611046455158054992268393804806255260757382035574422979994110909621865005477454234271953953456049092195209996906569919583519378055833796722001282555494477246185480409764976327113525804866956654780816916885793636869632339188146897138863374687443382696186680336038494066872244347070043999651620330853452604920835305442844696666621400434386716903969281904656478657767956909128506087627327562889091829408648726581771507763407414415036042469902096717184957146018330699271525608256606376947175614991446501554016648327714894282440493797714621265620653810171647784534443599416323774294866110183145917565107519529990716278223243402147243909011522347121258783912493793176466557848167518884818082289054152083849819264926961867275605923513450296927692031586116105042126919425067169169458683746038192802793474381851100601456921274274444733099490193304565838759839757025069053612934382102446958585649579683062552386170828985898844253755271364484642342942847654304851073385779924445368912645630392623492621144292600892347933273038917318857194391873672526387836257047366284453881618560453033727841563051492310920505961158036411434601232593933171760939542919463092260336410198663338267872317361063124601722032090771289351945878666568804720433538940017335828217289800084389391444004304467028484594254385005434042390963665399050090286317274770297131519986476706564406278476466740411774537375428868542413550089078403084123264101413840297592191178979066201920382278171858351528269016520956497117076933051744156291769423221677248939156798286808186569759598457379727309885120054739655900985831332647689787215773066153850327211030032235886201927904955745144463569478373707235042570557712323452923239721051733656157060765799893238911148879273080543567767713189746245354902207024105211999058533697374213900478320414918335394585005599042460491879536319494838429093948166313322964131264447467896880685011318238422487614536967444211295815083212872364642247108082833273117972656103982680734399779677842955925711223522512868832545582421552384961605731541343851288491951488176863382967272258783766076470689093277989502860673048689105253591035091027313410430733660540754489680986183255351118554643270036408888331373602054992880915609879338799263450948154688841527141881703736687859545145529927985632582465949742719024880544006546248589642845089983361046184490630697411987511637198075265947299111486000310499187532239189571712106940132855655089569677264644449253158592691540430720221759159797924219642195544238158338946750183326107671383144048955929998415297118945385547557976783869352119676216184724437391216518647745269874590446953025724828176657153419457466184588800050474341099848687867732969710247185440463605154584185094880446042477729614633401488668697754039078759670338824691392669694484588445556588828479651197988414321939522292922447052066372219749448914412129628836532880990749992119826279268096533547817317544524555741371668495349245843933291388458563027645835792882304915481828944733926167060329696114811100447918126925863527921609831136958728012773331707787672564995386212038202848107232088776350207994258759157417768075668312702888720273871879733690599340914295664672132966074077264376064645365879322935833553554865945909006966134661291307965102588788521479716462468761951531390688483285670637493870780233970718784913850122577072827271581191810742087815392452116553373934942694431739990614880060846049341017406960439854399626966678365754438892556173472421036460553910276670921371503334322404260472609895284800984785445012758372734573980125116435636000276990097734143182553069755662386446509030250328057799569427434635184167779379876565813197592907300545132043174132291548854046781727913472985187641977733328528869952547904108213582872043699117599904418686614306960449459737772113411009799209068167493582371709681680420108593306438406129654704184110541796355858055550262154951920772841004964767246122107122434908063702631636300453115179314403921417354051005298214216781425052159108246850493792771836069411565414646734963911093300833948112071070344897698416062032699567603499348819749440476261410448466356280863784671630965872416126052200232202210248592894927277407369220446165891932006072296549411008784657748157308862361384381218791759178789956913281337582628468513656731913589052634501490040619877418973716945249642230124868579664510266192015174383291508552026691669452701005369765501306236920792456408553046371314672643242689184526384446162751432367313141100622945936762537493442598528193164869953410002830028760334620446735211986823806859359562035496823094369136429628607000794754855212272785707527472999173398822300020006821816024407944890076123303523674900260002811514756522007615282630922900850001208136814210276894622008092386944392639953198275634156197910925007592027208012019698642849480711342110860953905228073539517278671732659357238887003035099970803872707590941203791177054305569061018905943117837981390489097401778942717903160493858103794161496092862838233087124799410798294912740790117482430547807161993592583802358685713475004308439927425818249181183705601766692313626030760764429085843964491915642945439331639218908075077927114287846434986359768661550533411761772550315388300667137758005761567368076358773696494584753199542193257231021433893736048374711915473356985759819916046859607313429753948344594074334343048896907559742895014381991794625549063549235528189395823163494909650529150395813368063970244976438918569555708481776969280736245519606865249051262882971813466249828637909745019475539075436849086829490052922564079918613851365291065616884939109336761211778760865130540343823699593604443284159824449835409201505274883797309313116520971339247762788789732086397906908216291456068198781322649170320008157427959747604380477831671113930680502889574101720765866516267466356158211634522927211089352221993219762209298406191367190367227908005704367589413317586481766012906775868139859495788886787647844977128741270475048066983357942066610448287851539387775772436110991206643734622821981334149355495257601407107245259353980362058647993741951796545525375895025063846420237173667962457444260884693659245935966841008111385969277353332342658235216081993546457818204583626723398218219991328177613937214290984473080149424404697444080901982086728072954894842920108822918628739138904817479694425248302174939238589240117856732575543902209444800523157292058052971906441056662201285171377662684595799715346640442450229395289408745733260654528235497594781494569312894190037133616901002422930112075491829148315424453146328550474027886256941209042568300883219905581924275426667865802471924038562766229505552075092193927329773469034206863924296746896168224970246588623399920974177309735264935186109235836787149520729953486308603608351499347668043031786429236005573500553966133847391184951013437930379379215675350938958038893391885839775921177702765423575474586048393607927665923577472736225789569025793314156577911775122146357220903053770649427474356494148072803294529948926066219843279605221550822673213325937603519220503651980341566328213316186084124286249154169590931234386933294471220046799862023720707615233558637679190608267983678496964110495205553690472516581274285527967112906129467704956975434839699295014624194266073439678806930998042826278613117165564978561344401179157524321863078278198759144122006909389124356502964152720417535569791800884359083754130650322857221790773662654774443102187767857807051721980395023501734313464253998648681373973569458915528319970346307756251402810664024550150884789087167557958251602839222669228997623146440473906464946547470868651544292107977102524445341353125509765171309138258955291044061934321477183264501270878444771966261882072304841287875841762035318196815023477512974639669740768738203800398564224353113685414601102492906884249514269171890986123368553119956126655388880032509144675854643821954293245338686935958357930172234885195580621424646459511425132455589390997218471053458230063179166488347423780177506929025543539680034026527972930397988387644515491093613033485787258891788957250449006909839123931991271288150267148350761854013616169971472979008553972566989591781599993144213861725776217930736073833176623496546674245153986955195497064399380537552812807227617673919461644072008987581442349054402754742223221809052646722491107731501142309637821327023358708552720491626171328428749239572757448300432148964225145049212205749482247735440391859268347099955651994646102867560774348009227988612759471109166827993766113139284231067102334629555223483796077302223581883777132489862151749045033768951573594169569070943572518408440588727294246461982628507649192548120081269966031640596837123605283169233811078070452280671902355137163944446514790065213933569885123980977678982257381678097946337006708253364178550739233280771636052745754602091052418486708642977678309055982256546761919590711396311060448624774498996029015714798063255913376606098546381930517382157589734656403540766742063061536598398089442788307620745920115163384218652031774671837028117569008549746738851951161712536654655262220496005543819638090455605684741809997963370210507725683710536648232913715789083196417657032600706521976371883427535279257420728770264623556382426890077048527253321706109946978491118540587527547640580616029712746046583698090378446175980683993297583510247833996791685999400870246355689977130452564731627194486435262782202910623727719700121207587942104149982839191588724783397649941195301963785504019698619733217711963386267219982247215372280829983025499233119208527887234555730489808884522663982257933843515853757115973242630249087030242375933072659405960069394998676261122594698807603413524797271331053288174803289058873317956422006526957046692131945946629930774406960923279486181267399623837311294662938634233822798025423203295979415078765163947119845573396774923095788137884751361115739272820067280015624808957999065139796170818279322588934664498893204684432417804986475787355869334755543706919142021328385530106801584722525629782651453326060821898008124406162920964781231620448333162781560359191915574070103602785123632225733654502777617338918204054837083602957054556247095231381869559252971490325981342561401218123876498137316826786692427607072610569566490633405205177740345171540212778916406463073106824273278572532688962479174201512989805495902025218811529902660643344382945167861514855205115681995375027992597108399185141182950076053243398224619648559236418147654403183975224894836196557230384577439052296747532812120103673551203759186823994224405737969277102135244194457746778910380277827783856619760270663425109848214924661039000886920280836531240197332392173009017636590443067570198078360117210712987356890812913243360585338349490145947376871844672368386816854983773040011948790554591962798059642800301770911375562111261196564872227634301816019631997365986637110904340332466436260042061787605148600788763708679763124456347755238084970374101629046647896543267147139224211110384852027094849943760486385976870636463681020434788771489980062691783719146450949647113742057263906764306438171671751672186156302315157851262600631984759314393077892125527771962583643991825981271922200341043395446185496975887582479994130484399971646223558159347804476687326733263732131912613403843556237844361065363547312675130273314138381360812861417329256870091039350416907139985338099099173277680461811547846691946934263169573401681796231608581414936366212078799541352908095519624503207815073641767537197966778229557195974658208876705041461699279143841901216871480715255006249196601378965885421533900112797984883225148105186960155892286902487649810595849292727155841416243475740101503725111403164380857761895540682414024363817885917240686667376611129612426988224032771363590673318216133438120921585439852543785464645411873368517409993431363263043722961968454182306022286553837322810472671547492541935021901531345364808869010928163582941382413192014797139196880561475506206504093478391912396052875566332208100719361499589262980174046675817615367930426510561019357811511638479592198015837038938736702847092206608406587498221801780460654929625882438301278799606453584395703045758190613587476374731910416432262517030531783764303685778193766599057150629152566112388560268387542686741226379866997477996483081675815910583493747977225622662909133933187949160360781864137225733029278826486792425100004399498822309925432967415636158102125435367644216904338300293114361073357945383340161713759911901249837101373371673918706767081659720320173934360279158973427050393242551207430326190954107515385899102781221009098401074109434564621794380172058908233011767532762827698274691095417802896808657222659874203383673310069724659625555713831686045477068911677623082337295765673831302427478380422925733210611489795209880605413339143819340695852642624865092612217368358113269507625042073589086983832821858040522796942468807492559692143387297998659343762820917937678997195750172811311138632657415897864832565303564884411179227550434127842845034018753395405710917164174541542991791004902368415780964544272683242625293758303710891532021311978786933888975587221076684420348103290430840559455667090258817572751288523182585614779220230957076183723221311357804703591131056463989473698278101061615093302415645109952685772785167165245033854256600010163759373985510478956921466758501402859764604413498516831902975808235885465432825128442237711532518385337454850186383333254976811082745228944377339442180276254560665275428805524568919332260259555905800477313867849227393983024465047161434250741359249620098869067564414131294448570731986927227175051029914260558121539661780057221298884963621966403809503915091626386959881645071795265191598762400518992243802581607459489362258582717600496872665075150782849965572678906144521445282989701211274710472438629726634897981569654384267745737730831566666955781634732564696628621704494086403739921722401371790528895138196260921299648609497507548804172281222571181532522804600151501664937900443725997208568798771051011119584256421724440908261111285495528096554249887865962430398906177716401242463624233494033786104743581490687968744556642586511101969190430551029631504065016670949541288771004056828459254185844452957385760323214649782798700937752423338124522470869117975123935581739784657400253757461597297170692672267444718556234440782095922569512203623368036144931532082632481093377413957019130061356134891359623295838256903319700810393831322317971307603508323992041711769759542424689993861235480561983495006137276160011416604751919413480973673921257424757063089017627048260499160091445232209934674769782997302306923494610244853719356218546608922071845946995418079132345019386735020530354999003125663396789528899687530115124885042327982582774692775784224164978456804719658064653207167744218422140676564060820697850124578610625680714244087495164743993229171076426396525721949204779198187668316990516318172876494518606781075457233954914919289999481906832586593801146880230944871085816877875410832626039921148700955175497208240941112512764560087691358404647863441735124255968784658327213304089688310333374411805675620855938575336959660070018154805653523370758826232834252625698124963189438215716896575130671458162836257785209127421693017395504743553613447319736777528613783280970257309896419283930784674344225798978326653598669496112471607311978807243060869623207278093388086041336260228605503584356068243865994288105851918043840319305588498203283694910614912307037953600749878367299485768809360492957700955714148942138929297570653071039714215176500669868386020846106602787868501971698913542560295845972971825547446441040122151076866285369682252006268044261582545548520507500367340590384533358916628347449566628821595541462510996687052287284706612546672701524362604378389858837366338630943840834163435721882331498832890908870237536878512406415287727305524194425760407671477647851050697203157312883600141606061161731892578040883208508956966494756259955657221344794067804601791350558558217256728089062032825874750514522097979680874146926286819874382128443396862137016776970106733193776344767230174543113729682583646814435164310251359455649970123279828410620088061621265953646456761671511981518193497300468757261023056398621617119023646982821291340673308427211318444784952281196510286971950546220134813736695367447875390211747368006999348285797905556673621708990205236366740310520555127860430411784602777875230721000950743839745348221595252413186028734495397843071904827890382117148826497525878332918624484352569757654615104965744826946944911118125582090024919183628149740477617417175888192103666285826813563396033040583982116374401171631148124903775657224735258055939056743559959943169592245615004044230747214410711860875657340661911826972804184391387737687410499197559239651610403976440621974925926940514119018884799481235598138961538922070566239654223529791467351984561341370840724841050312675508813400721169643174244845346269066835051172327891939209393838701582462678964119814857030772447327617285316699666363213828500081672311176952029282158074283755424909191964497698769951356119319580365190935420049268619167193176886970424509063302383600566281810979672932718883962631865672672626937696458576884508862147285771981273699208548937816524808557855859753564384683328100729747954008392861320956397164438490624758174487317887628181963979963658461338208043252758955670690790571599711620765161916738629990031712608966836371170302992431212110442745347292662086090764006313470429663807824016328761138089771207359710224451938676273571900323100546183086055689690225930841287509070645195837686687359150077436326985607637052997973976518645271097765198337151691894292118531932617925645576329414645929174620210348067074225178791063421902386933608649441740906709954052979405412799940998146686669513620465638669882787538185296718956902408302959487355699020889521420213837113918681596637039320755893982757897140352914571044174599747244721889872254752930579978464271225777916568777117617115410538264932506668643159550606668745092871599273999740829550748307536934579741009852683987857715196024562745888140590321745716256254290015469169015991955421768484357749777894345912570573960498819055352642734927065797815779223565172810429966716343632239357990334130601017852795851760734411341558913485708793823120179842656906218299693661115784217613611938037897587768696991761958535748492751413825668112177860809891604187777133277810523324863880370875954826482575029005393985431315320125070363388413703299389999688883883861518763261253322847914100343032647722829665276391541972479471604032604581510719995745525459097013515891922221614641290549478382876701398062368364949866956909129786581836106410187144839308699602704083960876191861450108609757317899316182925369365389615988076333897699084467377336342559209170424440446837739435660627409991754443506238042686089065671316748890121755056294338777239512247227117248944087873773119500804058861222796227482996659958595246054565134341833580154954292383654945004822719823312751119731106906858427128799503347893290875033740727190171113671171352429888794151415986150878923428552768675787364549841145279376162987822826339923907841121527530440852472793741550288393438865363533372870486446945483264445508996622525262720414075276466852833015067435626836748803639419767620411334199155381932036872918333719701259357122020287702305904125544344675632167805668551733815219320778892409234091362516025984560586034748170058580700722605631539580159340340233105095563546519400203309785447638683549059046270902305565016852545864215219230442960362314476481194656769449509944376953875736248845572454468208607206059742333609501965415635723704551190210502911588886035754752320055173163588988201562876601166224147316199972036207547975191717285124195132156665452101163140075532066899638767713335405233733119864870304627257628118021091828954863307861465425400326664100094114038907061073575438370847919383199097889376888746580031152925511667718265192493973556926763035259408628498567122825502328831138302481108221493142511304256750224269264366597568041690017125110340834653918129856074682484480712118783289799573270618256444616292116961666799606645552523965789383878661793349230075848989328873330924931026848809867547745407388011466956165550107927638697932842939817043407855352057513757616755281718413971459792004628992896511788524745419966404898252430237092838287305591579086374419704075238940134445538905533054115205680829550035835784816479283385791091475578053288557375360532530937833592639499467482278818593089130784592312501848769202688548131911146661309881711654472123559707905449551995677624400246910834284376380369774360535166807692374867547352478211788843392342297286191948323791546361478224618676587001876879997822633837002326845870325400879383531325638417544240095775290934361817530363063355672256136599179465863605283658547185023998578727606445144406208410695327313794298639739721925715331918363279473082293388407520726853815548938762945649920613508811960544829736652070905486475871867364152493206776199168573647673239349613633774126246199271095330229405311616190818478956907837517681787251869499429034880651287248619585361502360361838613264220259034819089270476004708089617460425934368034504726897421402850260836642155500186946247161472589909709419394705200909878476077383878395368905464813514758643343380977241113051148087301634314478827597620664077284441913845385257855647550877755612910740138481609431863135297019472645648483136741168667243474737707739418411471734294408559129750553142188650554175304433214039294603193993871403104278429896017180781400378988914933361906264780088677590795608455145437363326276456910480623909176087833490271880749961953463980176356746673462908751528453014490971119913440868261337706458663826676739996631756860401535451984622187380751182451500777356516846296054266935184888585247731109111816858369432057416634386927790850215252020919707353117702721722397836024894118440583944556001923892060305398595955252137145800353883651687911281628305401852447754351603732740643021783636535084194692861803997618920928402710602894917952605651587636705393933530353769718101158073378595870822821477557274668268341366319544828756203421071029603387654428639057575995189967841467256325555247564569626314348125219891346596397470888742302885832362916418039823378006678575612672750381241792805353700932849936187220460403569015610626303063138556517959017416948591286024205397910265420923324744760425417366361691218807168084990671866131199684230331361596833175111976882014425430998825107805237932570459912241668607909078551266779581674297282661670688504283377978284995909584912101156342702689450750747169463982554473770310609840518321618728964395338290091299470890988135159548590762920300236151154723682366162791519581862609672877678019063489210146981647021530802355587297461721601101213154222559410735800604664241834314985774888511981364077500096154979448634554095041811677472728248113904655420392874583836035597119036319869251803840386189457176696918192667852234949767091656846163909356341650465023347381076705264790241135605496274539288334996666076779270399716653949434845587822959585422540750711272439494035768083025122456610547502172893574964447684149998439189473929544829150291630578533228556390738036900998377855128551206760059998893400777134293878632777834415896414810529869726815034991703766834266273984247453507528089802180855629461507665654380437359758255939201374749308810712123239129143085888064490064016593323531857768714747814545688407537922361650295542891618544349947709580839851556754427242201151365358138977233692758832665472190475057262915595169000931996988660509028264192502790302199932555531505406624596644982262804271582910988346785273034732870658425455326627186476403833619031601410457212098343729439870363583240418143520127002826206364299621751541262012758469786340641814178599916758802533880193155381086148116967601122794781591446257275343966027148013243412645974682593966484731232225988768639461248120855370219746626043405525465907372261659446119867123722690860769872573006597590121911324532308157699260069860833551324829773399768485584246059835024225391155225890189915865015403128971577446888292045833342547247278579731331092211377688950771191227703078234124330951830124167557734631105239145344486237128440154723698568575141304965360504834184657693499075773997278587311051180397860494892748718030963720633490689293312308299235599459395999329863736657836769652490221262806106001094807209917845449575433322040676677078357826848406592254859014901400049778178353012950231614209354871536063829771535260301677836706844519925798430834692606350795714270440688853282711102143463997056636892518683573993098192609680722450517313655453132229218506395287437647036342656965647302112371197584442337206995939559147885326007221425859507031380125036665364938269055753697183412925927969081371207709658875847070242290951213345019412287795175610569592710303428780430680723231108522575437249841580575589630512904350073692069794698040798532048786127092858255402709888085524992386676137972810257041239521206411631665344010216641301118785529560932934113172719656428262968036315322604456667640170839039815829615897787320872651215780048270213125398941859166411925733017527949366270003720507101059102067329836532926299104136170391262821571841760563631484499894507187100722129159060007917375424343848111135986544566680488874448141727886555960059404599304306779983768417882231226530897643390501525443416025114158887338345279632957592499579824608811090702105349394705548429591512828571007489099548064782767081456032311294501814913716019508268298577592190980026244469188165217935218008922900164838271802499251743117025674800411810780544556481126799639260720933141886577141434293798269445963187543968533965654311311481813721676225103160890502668508576136188243386175658901349528456533260213630880598836979973316096339523272071461821207103206129036391578434544138622558308473947859162990167100245854057937412053792943779429486873403813330399841402994420800141925853931946308782784478874133871183752921269110222413496646740821369145490417010121208969532810886501603316471859212577793545022690255862137916492855095473883949384234714746324792666635008171575250165085938863010807530260774036016151344629085108963918976885941682463593286260140271505567229707620367369348955976237297219243886316754291971251612255547466321609943779641943240586780529640046961178081714044739621709573825447002685795075897313210392270157241607677245237694834228553694204278416796069280851929128517482055858309752841516427340580227241175977463570283312491903652680351601329184417580950147009485080772344961895812673003228669539971331105539238505655288583672180360657515256212954137594966369884112869558707179139653654739104855475568166946830443842554374121561644317413735664654769240825254392706706857711984464107171302720732224919110078467101296158895748881195935876456696157294170586487961482348606590710369171864449661646674332773121790338862336068120269844902647332493939865004183648115359434726542490897921670160350265925864050440330201300284832570812209713005502383990201177792147873359496728064877700714221781907998961910501880467816054788319203323454357162288822109356100506202936546453233563016028079395598120200220985115219218621858510743703794976839298846848277014739861114176060032922988722686139080606074610658013011791914985200186009491496133953827824658837793382781614186183633140262490664756830919651136532624324302341119433497673444766999014026845560999298509809793333878796249851123092869256634690331235408425343667005923679057846887765531162753438718729808820453806109668020264280953469928518343873364049068749037867996696222016120957387369787170830238859764076821228249340655956478486666539111216613009457478655193515218787267793149963983929752120154060650304436887010722176374455027470313508780926269632229733992005653522557913652328722614997689019531673203739757847829300645249306322142652276267527616924453167623943371593148193740794634373724444028839912982990441346838027419300971427973231273443517068942279677670763186365036500867047993117242341538594283320169835482061387035293777660400262512240514052046725391033200709458007868370597639831101382080194970402933036292174135608685584541506688020026152452531333964071683960665076262384627970648363658354179946451390738458737742518593942300178532950729136771028843974139152782868033397418938784453956715789093122938354862350771447311663522043641533818033312783955907842977279255888072796269713872921827836649058112005894952273007278849853480766719676611165153318762884662957793097238107372335417191033732643770248850587290036337993468630034144210226311874015745646032898858137348801136891476187815197560532442223008035355954768287923208261559365630177824932149719457154240342860057001121764326501513338220961504893018395266684352968503632441971231183990632927909503722792585700140176574453370699697848743495257921698631557233267269214623185215263076331605569126156267150977630703794723665490684974328850270201480177285412073007296751963866613487535812822421103232905108602376923161342712947171775986065580620897150414899077307582169811426360752183250863399187550042987377761958509806865652842760002487261966693568744828432805872164496265115619135930530023685268895031139829286206847887529562195529736697278692558151145419111735978508896038397537572657238049106265692007774966427796415774974723980214873787080092070879169965537170159045509640230970595315833977125166003100480549426655181581793888128170202317726913660674516289929374423848806399749628759671345588084527300146662683939418228421928563849369996316803907419382287424530432418154972179687275139444121749865181496712002095656714675780899880508758879222009851393316588806658473626753382898407170262800162682429049118355289191085103800373392003821517733976353695653033388607099708083878222339044896976587929221150912448818572977361076775740801041181963607117425460903673413461871678198382001276240527116084746265552723424532563452037632576006522251477059591557659375378975138096396764724160717708933348557152453326751700932858815237931945981682343976502380727085915797307612720133970576399460264472794558155875641725409403122419792293842358017652430192769081653362975889825938259973207808797298362016145015753659263916479791067697036474709220019729729437260792251567694897592029693116072092868902638094254138257998750432491944553514519609416002509007912010435913760200219107503915543947169325536579259054629718247564742116387382123181337338538206459735890048060554714702032354285422411071349328605897049182214048910814613097244881444440318324912870848101841275301724034806953103386469939952427750313043091755986655002499690292740340403807208933521141786150580873192968487726908092270575800194665745315177956195172765871866237645893492190025183179736513198046205192214353001140558627688485253425751377697354569764003518404482701704462330399006371005427118823142402057652417439822940285512253389630893391040080910766528325938116033541841779164272893828306623364653568097570058654069867504242211877899390620837545631938485524178308057575590769704816072008413746486239562022733851127302231034052347584276854350259304577324802366868709777323616651830668980898586794817990377462433195215904895955442378035085413047705114664098246682844567673211601267349349239617909429324188726929154723503431721751266300633837188101818989047175392640820818582878791991784030486078163742759070219243283509132928076392544727194210206108457106491257035180975973063472416114291320338530919889077525795339457909439380189452124272073494098810159399518646484708876157580537858362335703804772396074973273376538743562720530984052798423382030796798801340761330124696567776301137862273836009749764405437039358702914641713507574021619709507759315111748798951377849423222105531898834687807032333941369829711561335958349977729530555150763310968694271298552746306498231711282270084377475281412084353495831108749687820531626570641219950421865008609174879873454642818324161110245299833368430708834363455941854413923507928675849261786469129818319231837075853911879393477398459875228119732806788439229070042526715327886662273160723432064780933837340608582343714032320073858139089494916577919465554891694032069345439077270208956948994458685050205897508266019155795598271224055493352913885966504043641495726253648980400209259321604721550071391696595997099783740193704231344873099967194300051938531829839380386762853521182784076322986929595299803527902146477083139084009734127386111795757536869507262893690873158935309500037719237886308221899746777034842921183047052195765364736540494026387225481989668508269872186400589535512220296367027456902622222169058162211877782285046749387616740060442969758910908155103852928790302146794041856199951927932757921382165343007018853194837993458572495212128019060676471049042962965228638931613831584364396806906722373519881324019566050999502606156408691225547532859330723453718579191968871139585737067949931839494318297367104900277154181624122092092278289246756650382439330406778133092147229609528637389904781189090714312932202401640613603175030553703919367673677924731495089227790676227830771259900943716925409191756607702311540842707319152877131012300383377690674028609503148224718201889881347244471010200711108070737853072245839465118681491155970488104300389330307326159179393624077717779988986024933191163764079351286048856375963541556866204829204723797988571052161869969097280153612055544482466756459765031349659576617061724075887129796899125827487904681281825447951656498243344088759346232715721086059021822868880570960889667286891805863748786595598911100279143280236629017267337721424689438073977918931261452541753444817775267106991234872629753763489193180357543762480088795954648966037551534704724996358381617109840474295574444233033821343386558649794388164184029396508137609769365074036383754168502804523286165103492777900223721424890468905316097243813554574831190379824002498985223167915157130110825392267629702707287189807265088901883707096012285698939383203837954335980553657271815007849329667875914475052324199597938850173608456957256912440721776716503766699921403616333397028372611426090280538786512191064008931713573431689949252792757354113328732780062234658732256143012889722317854340868029198684471478966896523368410216692349059547836353276162971539275343682380142861828960980170319025860265767740460836174870842116338903544502457541110540223672409715270497210458525164447158469583422917289737631885491189496882381767696410464871958441434488648337286792009429526034025755894767366523221248304392133292155790829472920319992122309382166239324213408341699708013172893703746076640307084003735483526967406727031390091833289300466800779731847919960620393820136667188779643542037186871145303965894734269627986223217064003762333896727717685184692280569843274540342248566052172430760153524761904486806917261739653883650729087180893298881597429579794156601081962563338671325757857238113180631243690655780677820193372994577678659170541323824303008941343427089082522597454705483743221160902407724116747693027521445298680255799469481051235879089021895326053447785884680809239103009795954485260307381584912619474123514841634668749067758056034242324926853123701244486093650312564665991300905036691261313992788484596274708302177393534921974613015366455847179503929235892965410202208517293525037507290493719375953802782337337776647290354910066138801213362878730500544689317551693621996140193825019535513274805528683229923942944356247362818280665785971164192166517614841333843848015173630150152995468040187782711971240032834833314873710256592888521883915077981590544365264202603258343916981263398471593201718932037700972325065730560439633133823876877290597924875275030224789069198002945842216490034427285854868236988440565397725469277036827082462337286780375723911210879133585453863419724799945222462783643741985041417446598806618408056501799624731509540658994237171874864204939949424870831983259911157921063686417442533573491275643781021743524104861023521002340949078579641328444751802646938924180605938105282103607665973897130933412919712135539063947114086829779791886618050051836944409463076537213181771395996044934846658992747787997521557712234525426823548495957445123987551748174822918951926943242895242281383088981335395371787305026320916618384911121815995820210039599969739546261216825093755466531008343474620438575022518079212244019453881123491193345217781017220343756651570747712836042805748285543393181480297972495237111128990690486649619593598287351565506197114273180069917454414417836473146578231777695464202628563057477651329518789136652050505803668672308578636202081108079097579919944002906578426256747478776374144452563026489950200692605375759472320770639067810121709585984386196364341852539418294413754908158176373052874929878331893938729529962040766066337375737838960741297313326568864949551786889225856747143109726613309943726637331869161519691691781691762555686375496723557651135642951109254495807254147052224836917159006708442478685647761473852317607640049167998314028373181918261625413974828676571949720951934853920037798657559886889046905343876542768501554628725804678697498853372582838485341387259353182243321310239533004363806117852611886116057143206651853789013438502192001148852335717446822446845140421705922348061021776537868375826569982095447982672919279784608116396905751289749550876677734070043148849973745564506307093919763080460385637136621508357367431452724801874362857372367431717590950092087464264809970984644653778557264901767517366512510939987025536079549908762742920364050500806561049214377744804844889143027032701441439804264956687797147352681173522615261157177483668168498681308817272267813816595945522010446362775881263598408742293689168626953614571808086151948735421080602369225482608518078802207844215201081080998380310782629398007687948116733171758226321900510945653415909292377161301956231201275462139396519388568660607462542106727513969801768072266878574053982792390583266888063738513005694338850488336376834427119746348996474654029514753762630768071217950361953051289041980695953401218681473101176952258580671034495657142085509012433475335142752189129552800299063554026263753752402086165451535298980779318471381960796565527764098747677302707122569043696227346611813070010845123859440590176822676702412122044467785398402568335548481894711562261231597731231194208182598323339079244120235671819204723984050184098113058883802151596077104512298363308858124458843172862624039957724063738471680499084558945037979556990368848371610130639577939490293725070293668731410605601346962268980838529496927077218955868342760787595747686672407210556253110573287722306075237792976927823149417331534361909699740838810184131045631397884006187110987677892820082882092166960099661836803955027253569305874135594991051288490776224229649584030992310629756906238937512509947591539007038654783204584550663119596887484640419470215241595898565091054230529778758204422861806558567749857825343601313566173293395412874411974462518722001357927819168980303740344170764407877318520656033073016889133435071619900013556748610966877415171928775134322436709686084596400820746613226847365233149057620855809311238506351232994686348552671967241110107769299994893953148802324904474148575706371883871168280260062699358672995204252490135861465670633331825882893095226171339093927189726544597852760110967084433828593394711076309024915481471895921442538996028444121693632916288804857477895301587108396884699356851179956425785052973472142557723966166132834912080224916649996905939147720641343087672180597485347451503224577496858088425547893592584098658115184117575987603090495198094834764083535952893322202623398408942211091343519720094394735986463653410577568384061078823908470335239088569624551446253705368809355426175446001566802575702958762214150162476377417735428426626809332861777593567359444498264513087065806865709638955541621310508441949116886878423056136282632169010514375916334015387070478377544766459315126448684221651849577457159943805630164498324454488150761141583554777570360094373042382745533567758692806233052781416167877668281525406744677699872905237731220969109798585371979283730906779219062421507195335777084150742357620136712642726111688941281813602426529155586392530790609053043570628468207432674505996085165310433163702725534804931679951767190387186919987661060401200228963826616315372877182080085673730293568591845968466745366015138357354081843220701047524703759104751256169193427163116919018623650518149538740784341955301192751295230741092408107842464530902159776857400141649170671995894458985616587698695220623800029877448257944749969955821337086281151573153567177407803866775941750884085181525038260207530066223360733551193713201568167270293275859599095183222941315618340129357236068223270953726358509829662356360624549914924359679329843544132522841656668949891980371127838769152332964722858884873936466167622268866498984126415725329634831047919784331148170105894338178880898802685140921719480372525662086489060508844559373220814103235443406998814938803639802872895233933405296754261142326568861384852775793918820923775114037133676353818931058574566181749866730602498213236391736491359686670117203712846035158434677797302290846130304682511162322664330806639599511236298110971344460522893546794492433869302411988825621231149501735749770677744509455957910785041630617242460483665208017113398062990258912508393220836425501350472633874306887811157822722515584978535925430346445195375297157611269525561685055759247993026341767540958856435553362951027596884115895136751496616818468634435977148405555740355260452258978918864463163977729733096491658663716363269826286239135609833832222974830537028878488124466343971573375779203612734653607348951024710093596358298026692490461723039675929523092694642712742132053365925214201715091739592072252041318173401555789144790171433003610561253794838051974544001660024652384253281555646637242140745199556649738351930561892074115512558245485773252562290332057873832154248503427553196527562176685807242691340898227903298770146459580475150109866692416100659560869722558926949256462113993100926003381430247053066635442535547528484194744749997211996414605001099510672145036157949131529220772700502519539274875925545901249121692215804882616499281231450494044375668318216542245083386528971850423734136107911947904187694673354952601369934396975037439279143472947134081608497491563813790948337514886542629907915892676305954795672070571062052753503322569630997038011993501194082311038507418503546360100571965158198330270514411554155190939345982949056631021839081428075569807324760152062079620026849275250853889071942552215779933553750906684267304814261576341670050679717524115167198351764755120307510363414184793404759965951631035781804199429199763445692843321794815113598049839177896473808732707486586342904363934859746534518954210698331509758316750731541356152773341490623342060945714884932162263805137126745779625342799828391484443532257804341195706371202765349857403078643005810053844065816814993337524372726733734531794456234105423648220681724553734895605864764280296708841691112383711624035526194739583789710660095520362997763030160208128170447147728896126747389236586895626051275310828768691478681190662697972156840901567269649087598928859774871942852527752524855877169859510566950592231005142261001124555206997280641042887269899854223778881637820735463052117998355064687347000082403629951517562320677945562829778948072965059256440153896014548452489713955371914705062320849858428430582865383399141854954456631189316936376512684485592855632420258987576148427103734545596443704617003397015698416069524448844427659599388276919389622844010328361551807529420191977430030393527727774533448611389177918197626175209337200179032473030250099370001756407724997994328923224781435752299225592329486149125944280827454561385135032911519814561997771798944361900119238917409669226625746100639377597419354031398161943245969991534804605800665840447554028897904742175145118586859456774773478461040033719720916702950094460500211868116113050254099410154715239051216787229050148535292980547502064572501617846197485863049308032803207652536872390516110192422699015243628340898065409859911029464202438956361634132496871128487446100146884326295675659069512205494546657669863271551657119988192706780725786058592844096321557287608411776180809130443711169090888111364359784786771526029046633539110177607320459025842680441638962481803515239246740882250402009173191187809277674974311593668308849143485978422998025635642284792660078598454075555965792930140485264190982205187065490397771625617155850425191839158602685860976751403600053987564181303409809156155591859722239241513353048815886691874772939531778299557240102890870467732059411074989179618112018599767122237133179174394600755558068647066534993096908238032856209089825205845498400237272531880912056344048353859086820620447380512681172721336924761483645614008935306465551053111123097147055744071719336182620923028184802501654859165080502061269690136349816407536051853532086708898398368915060061990216664572296246541390765728339412420280660207108781690791366290283256270477441509105969671467252597679926359739875022409629724850369651234847935986045311459469533218065696965297890910017157569511289668318982680509007060488552534889976453958205342773781707679228899417449463300213232462528545964196939894100124043132831384439599619264623519065884987867377395210748056517203924995792686015884063403269845464085381551872796871054862681720172314253773949801571724734844780143997828204151511365671695507402392351236124235123325027821700145887411259697882322225472791254413198379770488644437669967443112745097150483346628889426091462670986286170702702225120548935891459626207061437812933414300844507630979983234159734349552582867352937128422177333164578284785075140496529173245018414384538219441551501283976255567459532647985660419603200646361577512337224700815178306868108465608212546203332491585927184318623295353963980131844898581321940047458312067654443101682536655163926710032037014440399310487413696170458127682619872831116840266954103356907807621834991851609714727558553585971134621474519821278138605396634389113800289372995432168662928545143039361072999248761529469587827485739419092164590136215171869870847580909770757962162305354237955875123083140918733064406703615615440050413262373473390855183867912590669144151531608652516575254121566450482562540034377596239948890808636871634456430601729457315801422252132701817838640111599720823687197889076828976659352951643203336411816284695866037787897270915157551895181297153000385770188154839781611591142513925331187373043222930841175819333165261750297645837125510697875890174421809842227711380128914462474136160843537924969514631131713314730992092840672113995003792248108808390865741570659840593798604540336779318187106413373977328241170688527665764754092048754071444050940405958831773202465106024249769565966522094761909315346025297286862428385301940849966527704350347369581418621742543113952024010279173258289364994367323157124927428754282918636857068491423844667574781063123366446007018114938899710978855402606463176700342208717471136648354816237864388781229673151009533377123976792814981561201527857568950872718032831540035020574426519222862490830241457929589908707800568288169539456176538199422299464166055667520177572246929891395480092155232313113969670713669970270974803533493886481732696939254455539864745570439399591628301662936845302360744627771449261054345236029285851097141632237809279916813774906641887242677387455172028930359529684649281312315093450457876949301833433984555789158331290900330557212168891414940194082708334081435255146314998201161424739435598172508654817337111799281709047571058329846381638094083667217989559391112230688975823845164572863506408392758284028683647592660594696807548212666508505849948800978896924006011537391184106113256247640699093160375359638281587813728829542233779110811389349093579546931011448561952855007180200755363853982328821944232285589936991469755467129248477794477436864374614965906119687078256153399714266909771354515858213325634051906775152574353454212135597263653129912882016726791189994861152606223007585110994997711364648856236151778994630488779785136590622130832619996608222187357218996646886498442468128414488664710855807236423346056730658630922988752508050271232418632971184507956000451103014287998592677811676176988888097515865985035989224317745690354095675334736089894276666345090794392465413960585584799076557988939315046291720656006470560243892754229265958751911827433878372780096225967487331103234305652341308469590580828746150006462169927560673319596138031179377305898483539698840633118353957975239411887266797731553528336751414648660060509239001531134726920652736532202022386290841387174345203128186516177168699353506828300750610458046821619797992589381699953538965601604149945540187167926847495428050408144831136243051149241595843429615964543548747779818251767924375953250047027749594171431374970448543820548959721617465522775500959012569804116282128334459264806173305222522853531744825265109357684773777275911082573323893679781269123072444871033032605729299935375013503587418527359029961969607260287088334856463791027431233872955671642746838939848898849434575192546258052644561737413381180102731505271465640782338157187761122034850985434991410574757873702144283572736352339576101082146317956501011502723840539007931073948549074369390099634949129204447954773969833847774593815340531654121925867981514348971947953089063498035706072931829629877866692872347274975833812667011166290185110883614857825649864872701266081609895737032724161131074610251670141864481025055990576682927369670972259190086009596788204233392015037521559045854683914516770661439990940817490293224933288537157492776814262531562783411324131993949793287943442737909667057623771639831249866445191505232242016984060281896360014104184571173306775620505034913873573862647388989347284898141067292646062969916525861886692301628132383950794211879010418268581019357371965296799741368493460839182466000360373615697765796549773344529573912722517436513636743377691453344933172634778714236129452119393442985687379706048151813860896915830554597378813615186632291656277586800386879607205178456931426873327763538015422590304211058516413730589028184536857183511955265636579810859668939563634831800185465576455892407914336002294754453557934259780251782532490804291001855103462347096336722926533831161552818423985337558427207497650196236191471943390220037254786000342354025563773865756865705007186730873241252370879348664648477869101367620927029761251004444140549920786392428959489702861678204424974277782886509414721386440264611424600593489977233441232012958125571174671876896552420060272641421946037074669654084045892085622416544059583883292739184491753349161780543766057685917267636359816943878580030383286350542350849084175788007019265746714118799127219421101089915887482107206105939791114277331635263094606308691222551018388323492516290855488090167764541694942614429161352829717362118268803968716423865849432719341878213748848951615748051808965863067268922420777537934224961502789586400159812400098714053193672890060101678751488251246555856683908822606238520456834507961052603143190261554790982870027820116704610752121881888362663909307522906397254268895415074046699194921841229832076093988313145795092154153011971613053944751069014020148998140150932308436644237002338490476630060240182223322384734744740801525391563160782196165969441436124207572836040872384116966744027539380119167346761406958181348589284224396422386883841711234984152142679120770705323065783420536213103208114524590267636580956852077820198330917242189675794079227404268717682791518020195843922586790956444645534244772962004069458957110427824710514849409566464056344995787634909764346937205557995194048436277579154418058244280941112914715150667469572612393566227266429722668998417437371119612254038469508941835457639693597024850000510626887094345879678074560624126601139070636337614668225252083331910101542926307942388797473406809141334228426993158446443389809428209807653630954158486232688944790442153663283914240284014387697648458756304581352289491204891690368143354987543883888884361048481364144903992335348271837009590759163089964595694295900229558702803006692498961094327517014276540250164780925308604616483058175142861151062915458953609292058111925811371451893881922389162937600453593511438351281496810766172298873850573467387491488388630460566262066331442011929259216468967824903750332361208516619040399122589969182792842830517889766526353880981840633429856362665917893361748793864910002601708730055621832658680073124947096241085049073036082883547979924052158917185000865721440080347838924665003334216509698804005332204948368398651109214012339861714800352994273007504579146365149645651447922461391904315355300116679066884825382850284239305293943033795649497647602939017023691970369726687780595928219217569949038046906223447389149629451958108795254916775192025558098682571960793299245990885187190788135047396013816911697547448331041191622400725852550061439418499892589842240422221623747791661067846585134040164475711703537810550883786762577589775003164780538307604493092232734070451938096216039810925196867412839303812924837196489359829663292103772374407492151052672496315408924941294817111539631311451195396206730620842229054391366208875724037915045429259715811701303886131761651719827432775707980114140425599479001072501459413835558190731963345942994038259816702961941628778791528607273660228380482420829509210739287685116302138795011241385147715463571410102264835400848190129016752882048769724074719583148760670004670337390116022181146725021663470018997083541980646939943913324863481971337614928643404967900608483984577147165724307908093854589530028979368513734901259832974951934188878391946625166831368300435456252910450595126448641763769232306625314683261256646502387963742331190685871577538187427181046514532033259024515462182433503230457508936358981979480773098391547727289821883335225948609916624415081040520884625638223737375574755256221802042983760600901876179466785143918394969139833530812534325861224060891894947100778345101035805479175360262528367918209865761989023851218944415078605672133823355216623442984741522565529132680351634509598445954549637928761034761090165136891397553486422436699813553954773168032100601718137798053671458724756704370768594580025092229707424250335446668149662026201103448804243048001108432232544046555186780674303797841645687009392858812028592891027971595174705389125889692414617624147093778745227406416700082189412051662200423107116314451613094949080170120266570481571014904310018264836153121798752169034626264697129143563871835325761941857540984029264075702029154539243342669853883234310575590148211075413868228820223354354143269036458196540860185616747761710178390153869552070675289918679021891048252072544105633668980509812587027120578067259284607240713891234078878948241335249749412268570066211640651946169147479593994555795859273617749580140298372792308826233401425380468802493585249954537582962331449559598322986264388494368542359325024738126720167015829010841100965652931382292885677733904824450855990115304575910125973071712241345602052953853983682272703931569082409857758285777893179111213324322990413115029783619788396619835049151805873728418103211700293468647485885221042766767790407805187348127565116128147015389833459254241820651327737813220967384093176819459234389811789411218768957659108925844084322517372877778645171653276489605199034442430096723429285724542279177280374753407442532760974100168142221135384482439895598280854704267137543549686866242066549485790750880062658057028820951266581857874493908128156154723851705451736451006735239671085578486133758403739331743932300769885195871408268859511861677270224809572520062367169428145792279475820578601373614564335663407306047560325909251513823980320704908941568104794356635127658503540823454674682371768115197259103530460791269558674680975535401939046365040355268177596647321415571380095836379223451753498193680505558248817534512468563041883496349412421572175086724380053932581477642937577683162150157195994140790484603324952331200851466044381476202469465933391479348172244408587082156157168924803794017659839901403475268432573043443948452072377901873641857378189870842753714450525034487896537035717863205993401420474341843915058177320175208152913802295910646538414618445584977985822785979072888845407948477574189755804133277419008469685936610195390147202172334652580366132443808035536165869936845584706532493241011615855964723579051396082469793344500180693014456661338239013805498944015306405923594004730514812312001370493450264648933976846407290099951246169652332599926516778443017460391676609656121665264065047525902841793779011762470388615622725872838565922592929936600635002812587081692625767515194953472856164906089247151143897723638728018692529312931811747460321505107408545951561895484384161719859120573663735525325975409930390493960281483337707514731127586878981212002713512741488917362601710765665737661839000103348092092898796925880752674355172012589117874282794265275220453116479484916228285452276994327651294641900055172242867643199920549807436705845876421598544361639402871567104564904954801405041669243617494944140762396206888673595690716042221770139226742070863312406596035174099866062742619390088272248699743377158707565719163020550144473973061028501685358023236296333516923391337254047089632996433069178885476366612678167651705857401570293178868937358926533278734414873367569899949283047992142751369846601232358190516864376822317136305173961089876996724868060150294889881721267510592070323877161539511587493439483822377327714703923088742025757144793436325686082640022311911619535322139853568099609418780791837714679751374940865201876869909351457393290957987944589842225729390582638021045057208413438217560528889282317556656047591985054553290635127343015153651528962278197430725048413439488332680465806675005249317084696943937591530393557413266310258123783279996593911395759699969355161772504372491986238013046403110986321964832164927732009177432549795351819554350693875678442929299488751842877425259417679205752696847137221199406807809389999166916680625638680477992872900679188058821962513401712342075638928755913635550867070763184986537506734943696588826772811897731964181406076421434660926468969373531771956295158324142550269759631888630334165221534578464999194888622748871584354526176880202284803994795282141342990685327071568373688685012589688891480500224547248638702623888842995612565646785764993155887915166270321753011878838310466735726919344926220401141576181193188727366705552206378932006048191158582667692970881765153553987866961325015197097050193519066710302004198997824832936118180063460365946509823946877599307057658502280774663136082276171078038392102691766158328015641172550998998761037422382420257723200732107135307943447992637864847029587287586543079809016183576417051535123834929082046950847031282826222895817643911750492714149077109795950900670548028965031272982913870246037080109987306782711241078627207759221262506859928119663320914132701591992525625775605729028988366111340581136840753386166255335678688219510043639126436432594413063287537028192669531018212611136750674114739302996437414736536429166968404568151794272802865634816570914339481760073189219484438375159315975862846739430506741446947550047256539779062589713086443334419937165558880331933166424151682656930241280516043285251429501912431226663766767993956925153292953322463706764611171498405613084571798375877887754671571727126737971915310900358956072995283908862785550730481330004721057865562649077159150142968038674819436042110051042305107885258706955930562985807193890295855055176460651341396784803587397557856118936728622505513020058826651456995899749756125293056032321802142722636243151740998290851312883716636464644262916363206990780887598845196791577529338118517363666993300765371906823696965953420190866066187366653406860043902302362368034497322170654262551787021977542633865844406524112821761258836145249716038864965466422689234322946373871064118424362281417483329901746258442390234662080261184213119631359373218801957009428171810456591795943029802339402272451319985378584975187059683590733529911590377615773675258326325077199177583865000451815929450255837343881096027358781402319957068338614834175703099588847451770343206967762311953597861624161745414791535541889784076662654220345374652057104875216372301387355247358220250685439314229488554760427061829441363473231467763194274862168423616689690044007063132798849706147168066059240048031731767225949438905182015989720102497846601415523952556904931971771716975732795991758049340347035048321032661459655551988802153160781988870099183651031575735814354569619046629808331554060095323868266748302734134148669076643578570550472291417140706962373348768518444498067495327395150496330014944557845360221748468500085534061240260928006507312908743163697471377980879948836498184241354249345530540323183407731356679640452849815640955575488460703559739705667760160129509743583680704253324929347086789826628941308689538538156696100481137067872671965094247696364176866061011707214721337984144990851875808535065226717435089991203820306376063574910076400804081679833766856765646399339017736265082824670179315619339535885723037847685373957865558364145888597583027340742666004888038085542144487178274552697447910416040397712262886375509561805061073087693039362437178746996612880312069780859191795534113489455269013389012774579503903015699141903132168659074370707635746645930019709031204920168162057988745259373432286587611506164457097709227938091278703929270097423409893333282589395442258251122989513979191926457390463939217312545391333586076194751073379506353330295502178629819337585594642408617326822279488563038012592476044879297927324808040155872661581882048046512853297651812593533337737654161537973003044999197230885140394769402234960185714758277844169703850781536472511452744548499394964998154932748311703864417567377655191747890035344291565361469162906567169771363446051318660890101742838740103813432642970477501076688943110139740813441501658617785294917855345704931908818230879346747206859689343841401956113700068384972140472138815843917051984528076817811142938001540961066184231666309456002782482436873198952541635822079141679884722750168964049139977674930713729010701300134371992560952330540591632184311920972902308015463535336073444864987129258217995528916596303881962589914399968125016026140643483041086161900801009919119237047506484766963665611239482057502810959363988435583298384978467258041263419223023935367012516240109351296887141662965725709371687115600818713483495760669249764551518548913873624147767361999233282961405844473911415872811803506438796186223874363540433766535030011322059607612185442460038228550123305491003030729096019889251356156087372648924683754604458687791748312693315371930921399932265062227815626309254696738690694376059655135569648620191779368259441818200966565852549962793215987270420993227802355636905559880924377176428248317953962758206385110289513309641149521030290249436893037543247221293919286331555063082852393456906928902203332464323212909492584252396230641299632166610324500438840708520474389709758014235530387282250757580673446123715823451513230349838142488823092803636351112790234316024047786984218471566997111284849602285370345182409317056078623252462473839676175469837983383191333306166975954772249574318920615354347544154790297146211758042735752648700757487783115575616298654625835883335458869403838372935440684653334094211417744705932390813356191088085084207100735533968893404464116343335805704396030306187177286329193601234669729423051045405469526971818802772411359978756217455462156302679705121166681133515050002615053728431527167679172139091318771654597751492762449920157031072144494327917875690947329708151485884773438408349634360316800052972694778711355757804869082168689114638491506995554450420711293072231341435090142084530075439261615219447522930118826816858145361650854989761302315176770330441279525253550499767131669712681186381892165763867028978503814969598401177619187773153713094116126714815808621301258510890753145939119507635006212620727303334989210817534018989153397997253482591594389537722366289950610694623931667766412680235337350853747463689988351465487551980444306007260274588118768575304149538001787691331861663871218889215091069809950560642310891539332827562010104203536410110765624180786344915883141394615923940324497723149260675327283098230518763291731580639808537403499572517070239931067433901466197100448594903389593967018419709491569336007050958559440058849452812989649586825139606169758069943384518801154099603103589357117578552871638338043477201762449184969935236366419940874573818106506271922591294133023304712735427292816736260443736098233774604583997446500547706673773093490359152272348817032157107566955555992735263387935316640304613510105014063433956257834457134703376320950281681252099338659305567787192682594750237311650003499744544813518166376974922004895132050915506219596749048646007600149682862147217497065805653466937628676254337766456992450770415277312116790455957278155439328446457157678669863647697087725123679130456699930496390631149665520122160342737630002195550746428346474179282299751756987310519421681379749001337615429009472067034264691474914787820119556678124073880281480700012430585796904137500740264503941330870975191888346012290784890096545082640335081437485469086908755223786296004286702714086609118169550598371615262566121496154752508650804321827774501792095775866143845509968256869490741323179279988552994874133570131845632026691864338589534387200196698465857416808989090844434108106628177435778354246978933829600714896982563711022519669863663116283840565793715866254586699539768559914640784862446705475353133990884174233859679031833542219825474577372512934706470520077334585073734920271716533692516249748376094794499429631147863736481812873226105880622223133358156626135637335858843308625923616486804066148789577884639881976977191680470390003995480425746635505042779810597996882936097628269274449486082478399031171616173005239148377416065317279662728559780057231620519129706425284509915272640784474992726766939228341237557879255800595286170387528898526831678012711666982791624549635306974781598889137010746910493383089171641523902221792760306861188146491670796787025755764864316905162308108878997258967051355723457325381138701421714420477704692613151184390041174528655908391905653122658270316397999881885714113051163592164456357871383866811821461265351670113927552438431403935715341340968370857599546519016853974929408326806952535381925275897779170307372880915838302066210516490541002493724608171381693729433726882470353444949906159158748202005722665368251823281692106788163085873041534873258491923548975012365554710754041430195860412112412326202694268682066178553704750633968590816177834344908690129306987395717912946894726484470540613105799550290130247532721325852160756028997575150488477970253977697405138420641826844119584878419918901147494420484488650767813154971870281682118805585054018808867489365414873096061514669050905472214356007331181805398669940363047449571696390987335506766870753776302284495272306658560983488710404076317522677968486143410610219701049137857847673368547603242391239413530825509341229530114681121902018487664514132320776183797054642529056818700033556855514134216053894547564879405331281694270218080019278224877277402020759740010501276605539377946681696306304786634454365766553589634936763426943937128140692616044671797552093245652458223589591365991193048948266744283543421201387488204571740696226364292343463409639167645668303607761858371703010952548848457690527926808481642399183919760328478084656206512621326796005569812379604712570653002611744365782012215563271641602522310381056715484134847286245244643619772254137361198591632416252197822676835430274472920230712435567582464828188263680803723230853382506972631391720419162893799477557222375439706573841261907615507947892133706234851038170882300155103504941628693729997832391360813554945652519238536112573834903004410858109316485568608177845743703133724798700345295886805396949210373493650953323481047111009806388729328274615439600294299400255054398885289862388699679362421756659069497311975961602127405519494893406222050259590158359810859805372107029499902115129673528018543331732232269030588840183527088959114441693994245808455569813457912346489820437460458735428627486088532171358064318699009297919654677781569318546145232824057250328374764737896453721526574644398410967898955360563175845921208031439698649693462891436030185301318516876223152669349505704958139632106527570380846593087475825974413099189041958259112664150602437858367243022937174345055875655033150784647012183025376710668419006487389615606981270665620735055448807697036771110703212726617504428354274668946873404014206816285046599454957196596927546108715188962616195720020195875844556816002078779631916102221801804498400849513060867718180499243506983398188339672792171904620074313044247890651190171836456205254522620650400932304540431479260385874930703134861086096546638614799486006078587540673509886096327113898248285191398213590185930614683602456957044062829775157510276435583543949177620558028019346368768069534900450965414751744622915931098025779671585808881386501943956010987135460949550426741333164697557300042632353927049387224790807947151838029422339013214850211073581839061062293309982247228277232436761122913309943015465717835876782047162959656037093516831964416494991345057381460740100557509382033929692206947791987419488532578358122458383136942019870534940397466460158976998985617351228738148218409712785315904633450627104317790976877365606810341014205383726693403274942048861639359157032047227256677746431970888329861948348790595903974930923417010488654725236973823083987284590930591326859609494444411291087972159841319874175274458274377601818489156170234531273601337891012920527923650015541925977574859137264127188399910926929613463023902454481502407543318263075510806932257631803998710463819554496640241159980038287163112774799622576538471177235732308931247661246277215870471628684644562867647924734726787189337261502393737732926041266619430340523324085914980270867008630677429846731922938392692730912931124074926408073797981068257472533791146846605087704231221331620277860763733500121883565984465057774570765824972429391849426150880843037488197199208979172358296384703429412359976751957744508732660189535708320994241647855589681010352635111261530227737218359726793884316149173313893715075704753064053547863649841260477022626778798040068262261228260418339339665813762093401646959088671301834116221525534346722709467872647193418955687340025692690331781343599014263603931319355994219590872721228739481197974075196523300640259943164788627643863958713274113657301330927742190194163068606143139238013963580383037990356817353424862564199782580352788739887249681831829960662728439299175261905973935585425579110388267871993686533071731244793317987303153123373224336351957121873272091780031126569496931862613144137572841147193242527860279832378685045195872273875558877617704567703689526692215215402368867202959739378674976714534369359781490855846112006682852017347358541273237968689362800139361466982530801286126861982321458775797892844425644284129011679823190260997166614011311542963444361037190647987116131123751946428644224520069050606888682507409811359865213649049067947567926398149087037420746118962888909742264655013567159656754021977967747562161038390588863465946857723611034701711040103489057629568877069083758061458442705072504938265923827537073206883216142070171375185412714785109206081722086587895202691603645453007238770396879091027673034894509051974352658148758281713954458291372648977860117615551992127299809904165589336312136064326433733781804612719953313463968756390778868861810736667463641644060290119171861578941142261922558055479022269967357270369768507256164740932474108354941905603468827092319855391409380725440655377829002613109325686169055357430508327095898537120056002564128607281399446854622565561825378238343406644858420636716795740614978519359530810584861063207667015183807911130010291228345542324713034262502156395204461697493119996545389970359844638188193182805733617904104690312772039253340934988892657783833056429821715855867183953901567573247474182436549355522803158870044158469296086115795415713546667041770936741059983465873639393580194373825618771374191232799620185925707736105383043030143608419844252534849231002845840688688097951731852252501098730978519597835764216292099386544659820765944061658337971148183673313343300647885365252660725449624709301260424937174077415589464231611233822204264434033526360871276810020463377989987520409864445154178423420920150730042043157219138877545056586597340533923637548871087422755921194281088050815190523497865044922649414769067545989791454575279705629880146203510723389037195754306677412934990349175238243119847382641081528017201617991061307947834321293548523736408878455924173848538223608333083630370080245388773188825913807983847877120972911758378486607112235985278268529278703296151724731751896480419386312863459095304888865419286352099738697738526410529414227573520221629824027090458639279075961606735142797149892647923441940201401162178517579869280279196865976091680043776872064006297764448300980366749599129850876278804324658299229728604127191437859447162195232299483162688239279448836112456168475537237036459489022912581901169706089610856873252234116411552440691159372413190728680484994509197312035945615929604346122117868634229552942897324596452334368044879543199653740080418318948742493247149917810462171374710276868356054140126813874868941500474983246233173395491018283883688431940389622792297262563555236979409234850547494365325125731010714142291054436508365741250874685889944203785511748414949762424292678444322000725362150630512012268984742182968613371933588202814652677076190242861140841675758182124214719895187130327667295413039287306970385319204137798548267934488938193345672012937931746421163628513021667946127604224418059122086663043098998082086622752173651849738060730578725021866981699768800351734037014633759503291681227829492990576664236527182850040153728937572423641896821290814235320774737096641274553979706353280986073087549789896733969462544843056887750300662283708437791697556735426532206368945466901944170467465804378235256000005324538918600561997886299413638297928421520973376200435781925944844053227791447666331057200822077499562927840698385122487389957919145322603463831112987722099209421179882331745532776344038609671215964594154375178935613786662956627021502322417256511893649650022547881084393825381804426151863013462689069740748421761983548034981010184945775303947533588925475984320474559313239669337907477972106614339351498332136847343786157081407972128881967254696999743238705550801782675598551439966470692425985085591385120918598585893525278068527903934385248581655624258602427673671616601660676844279903717192636396315613402017597429666458046048652528612711791580963223968001275177019818543107864153072677880134758484191768337498360148649317592712998665901969265266904875378041888347573992366410201731208992772066767250032931278084418115462386078208426312047466295446519299248036943577556604222688179994832882876282187878030986589415510344231086090985626732293119264661989119413667009169154911646177066946280425966118762072939443046508235214667789118372875025075994320307266904839368954277539158700132927453537771398810589528799691023383539587815224912816061067241849827330221063715111947075939980360011649385435034722191859328973442072659510403622539013726126022802260821129605078627126953689397437892604281573658723876946026660918630449659724934919308604580841109287194364768804198493377539582259592012742657578450184856221745842624390162666763638943178555160278740807280737927304439390347110003712425284728081637112057955767224872529116625333668530384590275919825092801726980679440982383533141845028299354123267792657784176643725506667669278316130672363328848761248417793247191725798883695908359615369075597355060266493946620197495657510837115939150131916892347313110952716391622414960691484932989939703917850161882276793710756208573054571822839343941087603647194822642298965764371828090265332099419336830943529170901964079241137092854462283886218379142612798314967035577976610618802002598736062689216639302440248341847595902613185072150046195560658195619563695511827958956706174742956016273192464177657441662419255261771196710289810983790333000530859013743421196828859622555807300388685596982342468431460025642893813121268673834670372481458088433074483109885893404387084694646558191251271535350447697397224494444464870833891190824523517311759674722298117201820073943311384178395360025547799805325123676616041865219675993798602896675217903395955082471963288757680088842038520902913574829440053872945114099580773422484067831030775517588778051521437835816185142027778884238992345931196434642813538125374237875686200126071945209221541507175701304272808320284806667584220463686614961866736035849117978555113351329590313980416276953625891488266625496703912630326886221102008727414764754398901865052419326631654784423722542637840798340656285859875205955433158291307479167419877112600343962747204712906546842982123260166655633569387764613179628850205333267372097463150156217404480052381649916358083810370616829344386902969472654728200279323946660349378820113832721522763677089405554502823203118416681899247072658879308192688328785109611906951917954167197231783285619983138365303802888526852434587535372087086114674736950148830504600021924581471396902638675518994494641219902277732881609405571678817271812378694165329415243066423001304133018021785416401117698535284806020305563320918086966762724197197954036191061224469927258244234578350312046675522188570939609566842261754877154318625027783469840316283728783493913179446180431510882618185556579572911305531775616450820905641047854339127295355071276369304630931833365275238535033892658713563068973463777000927321887607364708030237139965176891471580115176347092870397762999311384296566382092506761893513050940392760925673841116207557329192827546989000217562315947569646074282135240472188950144303849313573649972730462576370954952361019823213338152801132637066607556014356998472570820651966187112312146215256697072509136953113967006030724693202757276133074972490808031501408291473316442980769874420020185277335053867638265712272737399153525533752510421704897343588099125663915296587645039263387666081432794685260304071665342989194061218344894846331674433704458692867267058696031540577553194190672129189197340657890720378106996475978121706785992688622903813604994806326342343955539753458083122130711295193046937921317095837928784210661487366844219463477513164889454123870045149351232752193560620949823431379109742762305369399764146571404703657480587916926572288403432026667455465569516289406505661837661718610297466257039277008165145449370565140475881243723359676699568829365699916280403102387509994864782652829318891301259319386177393481663813185218713192745133092478575348411694208388044654466954135401715322808742052939879247114378247457060338405280134391341495473199125651058275817562851408715867418300621923445441770609703182888829422245834627793604548756073839332664907132330221557642757269980519774037372583636888246280037266638390706307286129368674053750239977808980213732394821319087276951871913283203920887316968744505198102178981846182487960825106743499758787158353128459861383541146209596468228725510949161539495131416881792312634201403404286468048507436526150222829670089055935809182624633845458253777653782000993668163170099853253187171609702274082127603345800733412126302586356621753610629017092832259724074664395093400242589162398734362694500055436503689835143819383169456404598723827010030822533155410566043401982274537557952125172723846888359381694740490695270728251331368540637839009157263031200643639647065399155274640582119033022921661954800893006671375252908707983444197645240544578964377229795734399637563188791022149638320860589646575662409672838905112972068139170606049191976379929499718339611015755123608427323513267749792910832666332024225498008074560817589494376908650794701219323037840611662637763115617435285501940303835111244027427359430101976807256309954600312168006621831954559121279087103043705042170711649084982757205116537138339868217066538449850659388543835584160603538130809887716438018620234848909788396404378983602535440388106436150190462858043039838980053461237050288213520045613952600686027517896369265283857619674383294222611608844114064079502201281925917080412841419848809612306021294914882369111733852182143685338162020906935887673756776639729497878214143113912848502199577195400334687407678096729228086965398798120631140204910318213330918839242239089266506704265452874608374826131244552882714813403616554427545668944120901666120207546002422367805233916192978388894445380205685264473657410391932610046885526841522711498069307333298019716854414229946135144968236174948417973430403032869721061373267900387749282831496843534004352631958880175523224959558617913422749854092621429873887353735984192826298721002426399734961450489528563033655817789959270332609787416325793290535748543463012348449495849940369252138861732223496332293918876330667055385195887004615700059902096767541228520954796927666211082887251755731705090089186431617559394817180546136722647914517381991702235711086686160338264293143482118237803773236060143280272562342903897305339280035521774373453529138203623837559742260462518760346959884821204075230692933265088785344363481027900474419879677456728963387218711023675771308247702684393797994578936792073943339947931514140029199700540562810945473912060710953316497674055511140170079531940127757064720017312360853846153987847119841183097358813513948441478763040900990790813060895515909386405174327891149416759403511219682026731185588404745045277445814623953828629521227591441248941447717804208852898384230147565689765575779479753383769195195688702304246869908800148766563934055171547701607741913798196061763884588375374647814391449303756385108629806856778205108408223546558610407598674331168117073564033273331472727476520828689258746448279385866814987127433907053472620877616699589210428390313391771909313256173183429541205373590624575108258451519722259395899959135678233148670840840729727355344942377704747949972768129994884699367048186502975261658012994595837751674041035301863952905558823155201082909317257161147316896522236900022528955459097716883865940230377493994719973598154659673674697610977827089458611306248829391536683853072842856855291188216358568188363017940331623875424245229671734583119216538683842082302673645406764126612242208155061432633678400674683539896163117958564597192461852610708379834693929195029119050062656236304116452540028033244270871281656309992228601973573504054228072994898680156629985326391604177125903752039086390214789661846880557411797064929503351427233060502467638695887358813816932365209506815117437992572518246976901890298930575301345211532920836828269430566867722964362531017263729786838140785889455510893784942207956449087270098487368921692603780332131466814973854639016892686512968424390739430606000030170670282165220605427898932036360298738616596814227186238005622217991683508459811980591004344038394848418362273114772273202426969716216340900205167359067575349553833761669576178843878795914152891426319826071328277768633241965919738076087220859678813313448248637216217423409641472837649308148434792371339293830869995845265498867199335618749622539966174445570926750300732098962377123885362224992720508498974867241524225312911395518916565929355356273647209961042828167883376271467024335722761483775398465063047727837364238743616910911650736355805234539694899111148354931753823333759876636477289305412337793796430019325475099221015033185719577712884227505407511209341433616917453774808332921698296254926513577235308581607164847126727654658489015227850169732804004675189566118745859147166689668032040795487169543002626273333669800203447251680397749699381008202556502929401108034781186591074566544898727262000566654559230367575375379846262149386083446783440351381842510816247285898153309543249176156548082128316357926900402567022734257419763658101475987811552541784443916049147027828860286253001874836556202520270740347886342046383930735012551122991530524764188290600993091097414851546516340983761636252985498818044997906833910396178847971361465949906987728615060166241158191780349042436110925321531492660269215994100751689233859499299863537010230203475193571356984098045212488737837914238383548106850520766184394189289878072828325830187169308146339981476374795958342033668290147294553120602942239581340748986573420829479330045083459283311418534481109085222696491419642921478254418862848763796012886109683889755621271591874779793457706137519719676023951296737077729971487652105151855545311631708885983341356415147407959609243969754440568352705246689530579612725591982108451433931280547457974707677626190521819549489058342160487901095574707819848514176716145412943740248097716883071860567094605339819676957777988121837215588931815109718843331509169432751261877589744124750627302120953450271194425485445199389198303878203464263387019942521642849324161816089187376306598523423168579465820630060302763750675616560225042029936589031111619988164799805389206967579075786012436070015299621514730412961850558460841109592549359480900275212100331306742922086276679682349424348407483454041949872978129843963475457061540658463237742631008792155805173293632399509209231844635904946987000219801186125471451657060689074984561645843190637407301594849889200768073352991635399263140798803515853827838829479619134682900404290522412843714029055276754821202117414093548687335497933113193160550189439764625112050013790432061138642921747183429956304984739704701619768669934334750959280404991881202451491167031127168770998676283077641244929209990070342410323972497739277973164978946254624651141016453121035072691967711908366146209608516164942300244482500402011213026320960148564653295580979297893350490287114452605997993554090892074989784633020847967478173508152330649405250227640741708195662855314346777090646363324671806984829869843976032066995689798519721014288828355807721159779399633579488763102196747622528944807720765124058477410723223634586042630100150285446226533510264315690189161865697041081753291704020110388656964826689935234462421141819641771745842556449090791671092684813799787589900907175169038649243181213932782886713657056145718356030146206716169036681831909122288050756662451086300309314848759149340357559664551397796065492530148127551914024402237942363106968376008165163118000010921906636769813459779144022424962598053990716457075242496018669806474128153540089479730377656808814340702698420761389892338177125438787890839134326930794399368084395650157131473746810729975477552502278469292936396619687635154980068128022849433548320895176699514726702429659986565258917995892462893049306646104130389465603120088410534350823692060315929587630847004411523337186422816800483570022036329720925866158895752540296231427202784668383885024658244746533691546220047942236542721161327733863000641505206190593586849493204584501745766003402646571709200743697631350613579309819767033541791214553449906195263265861720136860683532524658451277085623207385329170049183806760186549830300883529816596390151929465389652031639572848849569882345052731802778522236367000526881691905612735149075164634145423708016355835324639908086853820462841602694905675032668751215071174401447137932923595398979513198514636444102251709447967282218499926064025179143732547687618900927565659376560330450704052659737188707082002892489999840061591837212671129390224652017289710106222287571526712495728452537478016808704886360474713386046354690926519051198968748378926114259311604745195026988273706787455388145762049883230596895883947729236647725605885650712750856731267033900759110157800683639804649561095400170946605801429103450667482538464315049930316358668128166254520452815542744438579573934539396702803769754095594031320359424962648610837415507004870628171567745259826222853487791385096251144185106502533698855462194253204917876630569230665077711677155999452923197127720807327330980599718607542255125953374070178614702722964924694961134359333229881054709974209765798639221673706270841905092200643423088372312244130326669017859778169664500175195387331250153990434537734200755852796798028356197206271578376263897146691514676242938308678066518511692823081518869298439722468069191433019512806787154464615878514125304945433758691412422479079190971367992789412840136414993433663297927549865309181924690676631728403681005322432897685445329449128107499189740048131702217058090014577967959969635420191274876394104948210591506561536373675321092107942071827554498743893782745024909086551315808509189966283032332714370078641296599491167442942479940694831101422097824468139689012290149594774835079252818855957277763953180589495993408397439151954218475914956171529691148659789647462184835717827846474305998998418018803491602139794525138835632553308945416680748892061020801028823069742605586710955676680710397859975291124926072553410599403360495802021719170291516501004179211103693315143409441723681764667093874062639194077504958117109647535861255136352057549954876375778312130140165840241642545479419076883912345789215332323598564065297988397450046614441158066061731712419527770708120291326258076516044883859960779998651611565948072151786661176046298233209524121056002190418071489904250394372257840601404191132126330079617324927701533602071308732254905456007159318096921381702597344097927943011724704592469106741908293943199684939601128622836093379905126556955908369340988727903188360920699488974282852330450854561791114115546505958764572558830325885174546905055254028521479721751267637799439004332246924150308918106714056228307089976050571281582468720889010814789541961801676390293182493903900577153651061664134137829841860244303220058108278428332388115403792097985267829607157486514262866566869568882503030795827255988938666284582445061320457114732455659358553418019872220714181023865816487539587115790336322677158064737518920856036633961865477925019663141359171675097976782166252508796385118624416891933455528791678557974867958203860479981597418256849662961580227579496641040528498117974508745846916557632690066411712175726495485427128674674980650702805124393323625573947176444238163808853836067458758919751417374286396280363289391435272061506907065009667584604392754126601299818109987685515125776390726425837289729668078188533089050645634920576849918019012222830504645606511159251270441520548226118509466949588340287577858357335165319774606016117454640310825981599134440391957115253894221812910234273672713527830757436481821830267165726956293540399255461090887346502884540682404590551917056600996158319658672191293860051615743553470728448786741247839620930909903002866847320421814304422053719505894845938755309378894017456527848197587624035916845671631896939594592982253001059503448274042024930310988690771249695943631486839861670613721739678667169761494326689598576710093088511451019535974689281968219523603773980468115297599465422608501558110145163624052987537783521856855634563460336542838500403060264975057844601638957357458540180177484206987853971335869119019645586854615701799598894754376741080399206611444973113153359407508702172512185929070417451335138112705229249105763401194021743364153378182526915994266027072111741807832629547703784917577199472778268287458407175182777535013100216857247545140647901651602369893739217845782560500304059703845989025563292073379313012467411281437994113299144548285786547831948499504259485369614819996175556371718850095155735879930191384599611280408929821584544422939406343346715013434500248009476565459028706578473689088880418804064218468081764903941028661508030053275542997611682532165381269815099441553949693933702650309971486106719943104223508607502234686877247684824115139117029653331329460973207006933101550236308269556929819825627084253522780861394404893641006121024119442509585404936508203407071072293417116988073627890689084505203831180020072371573682190487707751386123644901946544091552317753608430790341010476691293665757970630928282655658118223378758404760730081387458133488390914492322642493676700072628664249813681333589931331769638412326819688709868146443865242055212871266985170105914879073341667322786942036741140001439551746311921791323170894739690816007001869764057019498420652923635974124293913884340910242672487373220904131604568963074141521194591375251154901514099339240086712512439863202272963787825343035012505618243352449043789628465769840016134507341484492150941937943068070151953641288515862620028182748711478451406944875667988958413772445768097229357761733994417067225651086213402268687711924898548775731708161413742686324306133878238739609914292557269686959004041708172659804307193547791855559218357455239007976623416206276136204608330706705063851652206098678876918325741631283606018784326558592533096912658582740602231296361494249777015922108765330873595898182246367261265765688063316218228534155848790843400102511031170647419644138695648393979021447351487343984093215797603902593357121787100305116198977098107809001792322370414696585399516733589384993821665838242173348711468983971118486893007975035485450172169021481529445463800319291866620738434769865988708251465141652682521531202525908098811640399765242490540355500015330752129758931390590295068320007771618310925624681983290981497723627839635952803798234914199203606045476605314049436875723937170269433301543196898443189683118761814708995878639258348096197454955209112105402030844802552941801815287548821270287486287201994576747362526436301837301491971249744324702233153591999309587391094734248960158166316448497537888541608911557686762041631066007124319943366430655913289448041517886288563778260277268118567989565365839218496336842815084234090187929460898725621381710798714113844238341211737805020410092889929542882073772151036569553231187571027555403045572814280649268489107308815254125960323630168403287339754285642230012818982682014569065106638366351076895344801676525479004518545667315970735337797661669936779838779920310051594161974687545411790601994625762677032838423698896952557567145461466361291107033766226139701225380755585967872098180772427786321969862854174141291644586623006240534031823605446708014269141116366565282716314941026045502565155730635771949750753123047817931034674569675063547457180200157384187354784345181915234920594484852822037412756560114024281099978022856549880206391143132932926823256374220138123070062154814038650526735048377279771172519518104902191597137104939307279994513593392674518074664687271154418976144200631431574491330493112653642382476504968361111188268222347340001039670771907278141709308916836506971213717253469365455294166507405143122933712046978633952485491689610961311435366180712938383267081834622106815932428956033628569142030608260162950463616057264498986654779433005785468700224558195163963232256586882378123908109136726955368842034517094726820724361964457320918610715191638605844346823653251335422601051319926232272299140988802955024015508222376059313488988046372431993960018425546330137284069577376443458494332914601733399753642045765982302151892922120631505490289267267059619332039074765028739392790636360634729842561157155470597033661771258639493496364137965989145160175021137739038928040253528187466950172571292079778260190338960540535096935968893849346865405570687245705618704820326167231373707572336310498047900690964162205506893615941260038893988863680338804297558021910462337091739694285736215101059972017451038091059841195872122493257465451103780230223489385054856001894845494722762561261181258703887168551944388354318019703056008582279992115773760772348120676084176265623578950390389404414821491879292398362059233891710760678605177340566461597350938299362531055055717843004223968668731916161132890767782794888409558240554163134481343967440239389283372903790004455373952381027332405220832617748571274230675908643276817484739035165631866021747382811783696790945101336388328105908082413295741881586362552848740665764709141698817249190812157166330664266139946791496041064193226077091143819281386056813823070360202012059355585240285322028360227193134887010575758767901221593881884828221895646320292942256769060063267845264180599208357432320362589499255706623317501421040048558020243255312704934441445549936429570372692015307498013580453632467659345501598246244605289843893562029046439736741651300320913367591665462180199117578970913571143854841755405433915443532545109756759270993671416180033073679450361469658372260911259034728033914241333658280429482312098027764861334872090219173839418178228625596641600502037524527742041658562488915905410210462713823616559544403515340923873736169860050039108423306691300536717813741761717705681306542397558667935053686515635480834075573348449475617133693202763498101586145783032348003676143207261818869050147824064647876806790841998424740343433455253868712852553348310604588186157908296986114949338650076864744504296169247084665155170352454477824219120942235864289048084673956997718637424829585884638680991889840956374007386415562086824226262101199394633374661906964986744511043982716317498310921848357308188689028480695144554316839000102096430416681186643237270712954313413035674723497308705865830968151789629537605906605531739372601029247757504943932485569577884986190297156368715845484104999114522207109942272679713512983733363286705595145157541878043315917342937504527422246851028398996265598659132928616220181204560268569972035388001138593513556508563319863569347539140180148496318885175247194517065935741028705775722083739261159306422391803218448316571558452244290341154945241015825065158200299639350958973346376687884951658405556030974807589356569749655004868880013460967422484648239493701516808665555435628387833593101937450712850190567789615741481160140582831290534277114571342400488232338933810111034890845833276502458371735334773988782817890078302168994027458281338247458274374738705954987562623382153547543484836727856101778202741641606454649802321792121596617788189544957801543141711358728946137334518844538788236096766025470597649202847376236194810928497226803690134994661219910047225014979328748321613137458792419354020024862253906751383057488327313002077806679015910228287501229404248123988493520322444150856252450768352673500838743802079337033229832117844616785427984964841636006744300035749255065862765644004185056233561917226933691829872285522895518201628831094663550419011095439038570252269340519746851862043902989149713733194587695266252080433626210678120022414522201452410089961775487826947583270745671503271422981815139321402514829538323458984950630584670628855129490613566412738980022037620944619240797713880088771545225564908359635676409615192185460629223418872407482155558100486627800370400207268851854588479397119063091227131170783011860481827404638677763291336905654686526092209142178464061515631621114030571894332476064535454584976517233263133038774886704326677830649773386405477732008042097569017437565682102406567627749520578903526859935220172345449229784129328565014099016254792343376587762913467534066815762349273575282594824913964534928218802151388420003247017432650105021489586097933710813286949747151388104711501006893860867964300787646423602096715283278784407973110932465065241890251742108000090301005066575037192731635442090760139709340977941423346519217098209492848351286531887276558983036915419409169129594474426530271802593310039714642752778064647630320508723560179320156240162113043568713772745873814979808422889974921923476792026243907191229282932223418174913922649692851662635952929885060616118650310591645790495125512915967842416764551793357872395778785157203933094512937805472531527198624145703725574117931122387930735616838086655875955860672635738297317464418623856695172357396306944327652170170271645476063306606736877457693404338094601384491343438787862200709184882098650874465819766304039553246624179586221593676366905668260662270269396623242000775833067614201643546679792781920591745383725756587484523509626053453101349278021017847516424084837353957947587525266449487228575016864098138823641569538313356086620442954917275963998555556002648255806988406846488899548381327685176287253946683069743896194385882622263146326503077543810462336068981300103013771558722451862759776516456356302963323284189356325590582145221118459383642875085407488256559789978841043995119277164254449058491073218716778758349552120666813055807100207554052077275392534173801120751508824447746839677540766955505734884543293718451574415398035749876222140581463860579665972093548064069280820974899775481532818693009636659029999173451618266394286136170837639070166561120668431176966437873218568369167234205283039901721040058520892724950151575665146683920585808420038466708780445125340204063899367356575581003042906078213439547235013318637695892180928278104676092843959381705886615443730557122954782869021031804686146385180438590707781240370805635208465090453046220841789982898847865011120288161972850342149289676067960817058008767973135626693732401872158438638983601527612765318599337782505303749699782959088597933168298726834406859248430571284653734348917632780165224708022427001918834873380076476823219028533297776279952453770357642385643737124579598015141573870622138196268319838773415912523216774696358262803192495556347785483479462657419200336266887995868936366398339098230606447512112825597883400705755155526143120591259099504167201926594254751201529606001794925914872052163268453545258317268406959371122873424532449532696736255838787228093479114680331858283029007238007622586427842738932113317978343272447537241042935530080024429831119168476208697999885561401233015197609365033452688885277998859032231903960311650287104187062843657924514613042787333815922379768259808439079384490845346287181096000735979235440266565902290868284025996243297998273419731665642936578740348776243018637680955015717065712246053336777373283538935287399162312100071474702634905252413826243024450464382899492154105199101133201682832671776406259272397188173888478744992770225955872956368940172899701956545316038414246126752452414417456310599605373298710612054380004756415871091918794974055670473114136658050636290672355305811688551271322056415324376739429217470320768755067043486452685556267741368249337145231165924498504602560483913216553003328436780754000027783057645979625188859315566408325699093753611613592332091123610346278983452441206957097745649836667597122930369974896514755837925564800658808178358009211771552553606238746839380079036147447724681893015011427949988434291358594606506461082015591909638411614074682023801365707828128436369528302982904562628577035643731671905243691678585924423130728649828715297951680696149341123500977759865573983870273928691429872014221409446861773333501967559956241676317113035629277848300421828220291976230863576521866395326192113749636349345786822926907608842956799398742855056003606248799273559015133812194171680247114526133062535765470192612978613410463454710679810367820471115649326875209523078405370288036806644016489260983118873940375065903642701756405863876635345663043564927434831226299946098068430532993586608465945883063463051998067568885416770220662756044817012505978193226642592813251312076022310658398680797305053826248001549092199860709699779522685991364164986008939584427915953144663244507415787623765973834857713658154174500072867367262957972463914754283503634184869396587944901986380052183258374319562657240024853930467279966555343575153464104833864017862453283002607723283274937067475466054528758862394397158766237061923710783559469155054546728109977296530870219854491511966445106544607995212548814149000845018708488778237400952932533118165167888719486979549613518821793983486974948939045919950943349794135820215970401049327939727471683313122577322861292382688208289866021823211648901008093737081396143685927854129085768541203978577881928434155572768033646687423525169778144647372884899310658285129277119631920414066203670195392813794733388652510972689981790310839448971041344642650345969145782805176079178445662600480804259996010258889769104633381513488172307553287807413484058287389203685216338291943166653428769888306281993955097249496397359759967459197649108191538045408131447389578216710855910912111455135995639631964820285008930155398544635662970825517204598851789280353288947432375795716880152038132766041002033060869912454385542112960912163942902623804173955260050235111815338618887334491731684566228378743939883628898740521714039111845325290055127208258012084205045191365950560596730642121955309151580120378543899484679127731873956875294188966351567771105657262520766378225944711920427945613119748784300723513207379899295921061943504327318077230713420984295337002390403157549614970247779024359180697046222104527871745301124637370446981519832193315373416059699969196407912055162765017595219559809913076433984401509039038691623386297318379201841213566771531553491613671366249582041686395372710702280503605436488292354631730591019843533524115205527482058594819112815668953559328074143467026639371328114178784993433962059929691602384458326388272865003007855342262037798301909260385169696138377371258768695070618407799683449128314371503563591462004049088252954664593300526686898105412517631872441304596137100657905534182961793104042928965550087809432930743430812864203761304432888582853063578050309702802938640516799765081167234425138707174015904625592830893742501484372955031483021338292137348154878279907973766186557272930663995210011230727711111110408016775834365153865928121200438245725370670024486988105169922722897443071739469336420000726008517668321989675299371014934510600812388829099045115602306020019461154923631714318450506688843144678495045023820370536236485912070286404577812840291304044689279793669150841554741738724236153949149890971767679348198141803158451204266843380326718914873340592103393715702840823440850108675401314346296045796835624040040401146628257448839644800241546718677044982953409875736817319406970860586300111193896306759605056319535132629656337491946279810329818605488574062084616741180380419802626813693222642783790359977615850576962968273783906899233510002776480549765342621409587362461588202756316031945405021217556301814199622850442192913369385153424398541038688920236706789321269102672925212361319117737913277731797059059837883884361828401351081717191885520166623311461278853535490769263336806545689132602491240371751496228848368805151644971948253642107266175029751540663484775856447533887309036504117302670096559926971239126327039158185851476587649227323786081680083167695379845606229521186162995724106416077278438472211297716359449339829199844898379083732308921016196622671374978345137175657344971146077907158252909751417337746257968782561384478540107547992790344650799931322387413597243646320230771163373544683586906316451001183370640723363931822369705232503430190504326453520700205158196953774271529896089949837663581079966546686800725884311120273158276050877835175193070465915420613828146113237449371194633357535207864410829920474753706597385030866030955986815161034183871299191278351284772654610319163468688541629697017830100401184195628519222268481423412417124615288054719411196023922008794942714604029298810425301034260124195440158329584318248863281458085229880465561248069429325225823789667437451603891780072110646905020584989797156663867854107741991254040400466319464951665881469349258945691530327584277184909326589349654405109828407290908944951567765366232271393914742505411511126542073359023758722213844975333381307815038803838828666143081158474571971315906852644256853417156230871880415033845435524395529286325129920939889267782274283727088907804789199693209659578125241732647728510077516503145077253619159071486923907244985667016569567431151284745358852864636829087558608429636409264089780322904044375615563695352327651513902732752701806426392783540187438078958408612025389340115391379999505078337026277092260807298926039158664681888460102134518120628971380696383639884666701916266950535657125294896070880169790673834109619246391284706927299633477286492858933302544569204203406294523801026125865004161567925704484199894547395106700485443516650958935297727980535850263531074980385408376140603070154218638022910342697332526394868333508201983844902285477784712946608852413294629181302798367959127897949639730856696910608766057203190659613104156978596122589459817008740376684792302186352732555982469427260513780390791920052676258639505689776306508679636868619348719581750871423063785588933317569828427600422773997293930384682030215162644013304817468280942397561134118803578452018963563908646312924400317243531377606848886379498218423387527046821916504483168955716189166205029851021594684359783231666603837976517127085265264835543954313977759703458461957216877363072890343095787774160168146486151740746996286482888240825961827255611044660858709673929231206973502221316712347515040403603123056138568173267163977231843767322872334989824848995528944861631011747567219659788157180476180949237058421181026690388038168178118177111706496775534840367898506796492118497947004704703814689375379763094568655123773197116874141996462709019108450119267215202684500911006722669207635170343312877001470439415892524790322560239070614225002992138638980024819003814430425359949290592457569259705264450254416165102482732259678715470733246458690739672465609866220076342376145878754307795124535506239322806295192140019139770271019662251571997651245678427600198848352375205133747017298130665026500264544441758741113532879867732816160115753575573412859864194769066190189282128332683378088441660222218978903881918774433984335423032359817502741760785610342386996063195342909331782078825542921470231387383162203479134941324416449551409781898766434243592167209659438093145813117245024015255769928090434837019010547431654420559862752665224169405080510370354830240494317122632486491735173240212054371503085420139568411544435361392876937479288787115314785657780416971903434726362406543790174609845602764978034881384833682056912576401999990444636194232647203851496707331278930156819494370329535470011646810003537698142609116069050569701051905588053462163834292149521560707027486803618101438005503349763659424550349014696209154553951449814929940661603456261118599327096187469687513646404862213500945293173035004349321995766788003583591348579105093739455861269587138998058202361749905760616342150006876449623992176394768193928460193161950895940616113460374696757419138817847322716530393903448904303211473651434309825342782682633689208921871124247938444461917215965321731518650543133900115987374949684391582811508417141001706483447962471824072808679574467298087854677246937488186408519658770432311639498505216757725325192838841961122081023376740343592383573013088037335523247949022601611038546545295578510002431381009200100470526715073226844857892035881224434732718893815230959060646619654468063885549075524078128660136546089066526364664911357991596144220860700024961177929137619910810796661147093545243517744057073829079235865822630340196734597890586074399368763820757797028731983134285715571666323940943535517585701267693406119962780333748799471021447524851612540361128799184751502518891153890934746126887123110876071594974877492682142064797422815176673860392097655633344181214718050217682516181735946922190639665944082795277042864424858957773739421623083697873549868962034765364878942127417320445663832996633361223311180152610905360095730415464441944101105971276738214671961925978754654365698747184767797669927048364694167908304713758561037880212511293012942153735334292488207783183258161695328247694540576499482582513547689782844031843070609025795386421520239056903617706283742779837594647861822971882916777188720820470183272926966062951189316061214021779784632057940019184405052135874877707709568396372117965513907179844695167340482296142175612527028818462290158543528497045938976342568908345730557179941902628000961162651771386185089644093689332739887572766517380271034547836064744053219145449405793692326786009798417778397479087350089036875238982126491446105194737461931183289730482155138361116911719282761241933116005436994939985884379810359444054444517759871110364170638534245468390735163077238541036295289459217168721265496950417584259755907272535732108547566549461350648325673924176991005736458937001158040915987952963321855013871850091082866198679090312817437475028519650096263751141459769525999937633351755178571313938807896135495797336380718422806581908512734528875041018970219962527658075513364340326805372327333015950053016809084126001163960311216693581634945552935962263786317250326705754358974212197136096437032166774910795154000768472559445549593538711378285220195427176833224380273403290930478815259001624539659414792622523701486995786295429677038908349330237364602112793710140724251277236602231988050654219407015435358365828561064597979843955357556034817791511421471769845547006150742230339261605696999128983187388853832721327341705099904876033508837224586786624047554543094956770378545579610569880382968336518240891544772145768983747214810219493707924887943076524271139061563729428312835375446117298809325726947662372453787506199455161360937584816607614964861879479842538221800492545649919193437701469819511516204066143236535220956801379981075763712312859719949838978106848118281407804761155563811296306562292212169934673564259520539604782956565218835374421998105137823406774566398820809133348538270073919361038018470357747115053623124235812757879196258307178961358153623947306259507451508311108303310004544563572543914284622580961761743843187525127137030299513059458906785799060463298168068857698745133598410309556203140332067626775938687137055932540857615118006215735090791897204251883943695256850867585356800925357786016737147847873677362831302548905452357398818705077975475806483445683724205833470040469958438749392720252542575741752077929110957430568201474443408839090853842114410756610231527488128562308759641294933074363632547223535649528312133744699002079607654407364364146597967023328233358930905083470614212611329198239878434951761396873823291611413169658903629965729915841757216597469807029899019800027318761047875437472777040240318234022723138420183747245608145973024104038951228580873552570450142009266647735980838605311226958897377291634241362023172367384710941274091659097280550209639151628654517088267669246293592846584286538160851252296326066028435558413637748602740609644819672035902825941206596714053198717345132331179114693287955371855239496597044506928743008042752245408091186909643183770801096163463378664670998905384470705842388292352565253829758994885859601582652114880688035047401528344838740280308304248990521361181344166366286284704456124562393514452156199856662795717651912902490526866564522771438945866825943585281437241384130028879382139472072042639669199746982760782338350213193481504800341310715454168434416288751244011148931045990049834384827372652786438988937390845335558400940500009139595574536780185948076746522866749336883151808717302657102452618449391468367358024025710428788265304321369745489972718394479465262580896951011688059601088534424682126324395775744496672447727502577917374176121220982404319728761991323364161929682309372054969095420716975442470755871929922739663794778680533124575000572863119064545870938612955034759503554488210387726297996588780002154422913945560640012790830139305667766656904145587740859862515435757209943707014689077249176774800054764179735001471955185289190880894213721078469473884117820443727631095707769085754282489541292243969603813504397790138348710473571665253344085239984818190533869005901352352473935944176271535460915812372425490960743163213442841247186341250317009552647637702145469418797903850822604214397801891855752187207116183704444373347489802055577380523682448873270638182566043430824110617857817225008658265848097565842278312075474852439730190146479645334436832424913198032037392541307013971098671897625913899925278343926266177915887154394506338866158348921286153985263110906976302633059363515788538349772986688286857467531863310448074653691496983555436740727082641351297697495277402931885739202461518939350052385201772467327133782849040735722714342035474519290554623085565796242284681786930107391195682213340382530515216562886271144844694409069330497755323878581706366257540717452877138473818360601272939273804286345883166345156342852662127597867584371258635695026362096876724247017133628008770149178155378427068953752226853644107113239049239468898861196110576393878439948839658067657479059868129420588694251576987916609740135871600033474467820948371295837696981915129483462730319020195251792445793977142164243220042715451680617442643715238284432092542331001738059673497819309769489826573439876277509523423666300566036845408620406884725459007619291545748528031769259877664736591122241942844894779362125146978107836688971413084007084031638781049300069119048656456443673151489290004530647373651136776827910198353402014758698699258299313107993088510526088529803241221585531765805009525395858353619550912343869981264780713506556079448194488355843278889951176892983037211371862617062743249125443270768201898388653714191095281096580641907280033876415386391972083233386884992715598383377506059934174658294407551691173944803775045134479752470495449874863817887885975878274484335044740553531923799743766027349144063407703623309903443176910885230964384246624987246899770567048759635788224729887722420304411234198853181955356019470824240908292878115484975168663494598710062283414414777206875784289212569959390245925047733446577289244476627345737005134944114554167178887933880021021005920157555883500623395998512271569268821896048612084336009877019827262306350790486339142286572298267106264439813002209613826200316284054321666355281550142463051364370083897201520212018162279364166498709320648348706920706045677539480896954273205583056641793442651690116961397874379032495306661550428013651734988285600739095402669108809457440402798721988807006525415318603316734178828841429823047548046444019768803798112567313727753196664285418760254192230564867121799542406937625359757041945660559822900319254449814138235958005749570977834115437153418491656241239108061023680069944600012215284240585219255922307632538049317025678294575428801340164775863659251072270294599712040535577216978739650119517121125474221847558924582020896560767481572793718364299142844748928515766818809800070048594826824858916685191807189858868149794959071371178213699913972743171841694254293922750553628733536232206991992804744402126747411915114498721825602519731429847791603823292373719121818360662688171399179894844306632675480743110177154229345123023096158376361248677377352311935657821645384585126764569534529534746026457036409363742735592519200214025618706688547150367179009654013411295875675420000449881500600801460419689626465351774646473021208891627863977058488371439993949767414072562477286459780218916884879019412902295529777541193837791034743574470836673770212788066856454774216115886241754576470750096346612916661567916411595496108592573278450566160195598850508940563134099743694760616457583571603132184751835581916734251703622801299921025176815181309966050091356798202782894930830377095661403194463426036807203878570384101692889918949701256777944491315933003122668307274042812952545477546151218694226634246036240370609741357264805409479201527879791799962814564211139846011504134224521573571487333238217347883419600712162691429284130159050714733927774674606233963496052292414908157656095370773827078781817717028509839421809083004100999325623227789918742846837099145019960842399278493127551993441850967889861290921692712718341176118752177598672806259707046681959165580331774386690835194308147304654617425156467076403212796355446160507631369638561415690932521576550028233713214521089291310418038248300113754662693160547707488300325980959481510890352268412759067547021200478592365759706305034950876351343084720407167233463964614017280577933840080137173707640465567891809250731628768331583302577147435656553022684333879631758996119355906928018684065380543536856528626029771772730406560831898717054126921012775890789429511175741215477606466774578081029124773003671372220267343765078401557050645372969276616436578083810831529801069973802004310903322995057089447559940271773058083844297535689679754653072083846005556338815301253491717796610265341409151415678455071241668543150731618163031095933943047211892818846378397506195047724620926562211613056041058223263560196954913420484224881491958744855650800656631645096702707615892928835427838598245611521324353650080295838630314289015966621845861173650485943012391564209690831109052383003604301493792812590651031053738444445719916348709427741564290005222869083410500735677036359694159008611480305134694705496474171377080993712255544188702747690845521417665603794398261661774696774347405408860479376718648186524922805106722242939344302328703640645040083982484839130899488839771580291319798465607584395131918440708091610214433614271328721664895209320727814948204810591152329990469248707027724854853511886134524387035409472759242395796681223013868969320263009084909591203391564262346389686784225740133735388538333823763512969957702148247087836003889916833537099479114504327036661740107914113121178456259261290120398753277323070261838484065106750472195525167698612461332540885619011103712782888106841689160726632939148258378196065704404704836787113840050323823729897783336225416872536248757487703950516309422886821550862058556626870366285799685885749000672859877419374296538776837376256499685027801932344107366872731172528885837869353581331087388431679960286169182397154936040485611385124762662431174747035629014485885566925479540915106280741797933489630569083669995408763459896442490093746955488791587476056880027302309599381059706479563679668242552712176841088647789497349957016782965810509687928562653436175049751187598651795503097568377677368854530860620902881240726274514158359191963247955255116913206531352941912752578830442159036370511316140728734693106547970439901730802834143987717259904761760690910068584191079426296140975518702737687537948022609397349573555247978484378864404982282899776516267117328394710042098734115153111548886428351383501515436984339517511817720319487007337585520340122122295406482414188890402541539532713367857617792003156353321032004772435959933425222360902893276525035326110423289275421604395056441261231852572872540346178601349579715061723141663414279514541056909618656576808167529589488080851505380615557761903113291856832589349694132504329750573376824036773803868408940917509202973623190912224305393103219532637168566917161262621333174041181859861114413585410253858285533247455341849783107501913734583536490272963357927421154196351801360182739236574112617559530134636880856767332615520436982247702550435565870514115226958599938725177094964566553051144286812104054607667621635926458092541981954717026447023587639075765768687452781961450811980098566512167280903633657082672121337061338475664328884740401769446287810050740432964357227118622669164028411173701686111899941415974420352808327106670816518614692920796957215786480849977886723224138581273689962392886107541594281482837218617587668862313529430687106216613178418281550925317983582408944742874294854171314553708462147070805713700948979944518434563163672790029133574934434940843203146996001273164762412244662594690655452624740865190765615709627522162467647921029715890643346742361241260919871766796525898868492232211887069903735414657195537336705410667814423911318957997872053087752434618776340402029066666712832045524792299845374638613768167809569475358439036900125012587253749605465293903783833933221534594143884054990356625787368997879236349475230855019147941040250021732117681294815460554679367106417544090491058657282504709725294389245029060096167624820500519136334184018006557980157721902499715659413642411851897867290472223704224404041926236052315204892932674646374682887731110905861174705120687287134192821536615993550369749226975866198547773581508168856950230672081463522429263055324296579121740104897648808237199892145569886785263004472262976604903033398476565521853595778022754606954906330731557188308684647950430921821803338584970970744810813564090369078541899371130377175746775207704138720411832871282120019453849754047963244467921467812307214431904353036040254096627485091849739445442388445141560097717026745570497554295595237924003177730186020154553207076719670908608402506441870972205529219202163355140408839502241173934592644891198507525848673694110858920233715487704681737342431175482348145721104682961622564148744531230168597984217708229414976464231565437089912389930444361061949831047817462839471976045939438126941488445986854055624615918001696148577155826825528744382420763615379642960782469695518224498633086312941248626749091593833864559516918496834696757439025435979516829139101949108146298893510999156154761533013631018577767143220764114745059944930080636135999015816456077180831668449792476340838350273534514190876271038187776734227409901457392945000983101088423796008087660009429068316636628573881189557760904258213466973550073291473232706779605637063302753862830285311729751433422281921666837067316708351452033649082747280298379173019719441102735627745027539164238692249091919463544972069194189041152754663558517857677029552048201772178331886915843950368315984762977975090282166358375702094222205801155017063293894234905492161316775020290296486441849133172882202921710886043790203210553897000219251590020931490615317434160235265705226462036662067605683832949927788943515059368041932312764880749728422981897580649231379394653874137637610610601795166820439859570856966196505729998513570241829726551583052834554434380543518799109150058829915188514702827401261638875275414158950914596316123809606742360195970367957150665591281892485330940893777761870092143670026917034378130752123172114613337274525657787776773411108036790204654757757271397138781287428866823084984491238347750618861576226929601867105141549821001495841523251518693705074202492311362462002175907622028338855862941362088223534819810229187472841347202543950875262050006413544001739677457922828818694978602467053710695806257488435825093280734929948601181182224854580834510102889785368030448249082497499834725304753484076455481225784092446706127405549649423771797684704446586832092563298043864079754512605938167471962660521800979469990090458843141000517866745302620606812719841667440388099343496475386838666625531854287013696891934896547319148079508697055783875598000973566020226150568734324961136103952705411433231977516595681138827162113889670316341163811572058611747055000247073427973840808043992556896489733830965193463385341614323561722665847819953600804033766492155325282956333511325348919589844567882492349686562482550901809675934786162012523873817362031181933789197336565286578881697878522343499854081215856257703436829351396124498212142083597516745078907647442452613783833925218937133371483370221804187256401509078883014185165479265015107380056083234255088616806666574547112221439563167446737923672551321168539138051994360983717215065801085189841737061412296345407690864237323077091402753785493633482661029097337315116556478578491583675428688129010290487098444105297383344798008175456084528218389811144296884188431196827559594630317160647191663340055731715399983806477222251360190422186161991017664607483904075230887436130087960289212270708945954932444217610596680336883939656867718816754207123910618282592699515494523735064047770043627338216144727558063066128326536993291013715021883107120149838398701060985522495211673637890977325840657525093592834998438124755448888585457696205487519397117698363378396721676584584576558727892219203071465359622273148220417381762093597383378438388812943627795639097630406922133973803192147151383288246618967942435886919487453773204121314510182499843603650268423419319057950518957141912363841507475038482797726495567918884993066018957152884532891935235324821849835120100219504654940571669218538875993913199178515350304020224688263013924695776752449923646931522983118635765251044922518118168831334440513130611691913769019241797204679458160823117467714551967720037348840402383144536154748761343888093677227397220687508396758161437354225868825525052253776681595849960066103252111280370381031498231220695730024275530381265158443498673356353496334873532148534785603974319794834644117406732437455143155012668097735598904102273314465072179254260362948421994045170198327878431768269296371757185200268228680339514989019397880094150393623704278500677533296512140982731538379763277790692802324133047798303252285692041122747048201461833070252307153109737151861247224983902386643575891166148880299948880257331198316956056406343564967523193108628400721990636430709008741707065951628050612689752379679885457742146516091409749810089554704715841276850627390964451533571952892655428415808853701602288938894707540356802120563712363349020876435089194198264154020295830471530442023880252074792936617652767668456973801859071584593642387840240215792118481325788970442152889439556049921249767650355174383285599959437204852929254641243187673399015730987885060390125374812031037255350270814404960802760848876518819533710052969433242041189470911745734251543622756589489788711938938686223816826091413325291310007983962761478228615799642896601498603638050407665698316614732869666181096933737177936017542137252540887004537562521043944839713328256615720490373526670341980139022807292090610590143481378342986111933456943477564147483986150971927586494703159283222405315538261442215746900188734572351729601133647794651928636909376922672630835930546457580394896598099304592330131172202223808311204327252384315701322748297822211006941883419795606421692839822796002366574242335979125838089099001450889956785294180083124796705405559547917764239982455951939324806713414258454676867552580876365471487365374820527266740690519564678407754649432693841206866816955511204992669491918633623494282335226275950427364853809798279352310768264325423309416596275950001808322300551669006709224882701086126056740900637613673140994080608546053139675626384406380077874562710493340811273509742759050979432542408057070588416994001901269919571606114505090427642165543109501913797880869647411565235821892038762064341700590669984116891847137548635273184435583139841902440757819635813556071912398524204366843092509697044202194742809485363465693928257110188339861141725869708782767304567284284051522978406432406507839341231434005866567390911915619423502400863027983908313443322642156655154871990375362398272632022075480079205604450446707853450396522649168191131191873858541310742643346174732366463181111015564738281051270161281358322591548901794048875732086470713916415389233170434592824053469759389313356567262625427865696688947589362752643663326917725810826557848199288520046933729801830316729248549993878964618054651487957243684431206904148822008148740245342504120825095922206846262124067134688671950311467397456380012847453562110356644800549905624895640687249476835268772051429926889524835502732811425398891440755276209687701751275696816604517360483938461728749251285241224802687063537137545336878866346712624469793397694006678099463274011618841485250451616166651005496803016325533493429497603270492516455505708875850599537038019990810660511021784762584067991104734121047487964312674720943357329433153726134707026439824862002858253968588959631247305190208662849099570347278464534051441611722982671273420978673143897705305721310962251801086656054848567869089674657761989809084673159343274186905628683746524217574312051071627355416865413070341846220227098266001042990971423549001690769650502802481208669508278388275990382288961140474440240670592801190985685005112113990345211650832994737832861174862658346023250217302438468733975395829135289092519030277699743931264335083016696187965415558206370269462124225378361699763974808582103965851375653175150392097288331689170601668776552967365997838218568284617436054958438301155423566444627293673942726291246827194667236165348154239986779595388718340358050328316601052670067511162717021664862965127651539569782552429322119718873188536015066295159059696606870151945985997970428549732346627124589406232344264890708759871948322245261812233280260021630719560845006381804546036730667312159432392673378091765217084002905292230735579966731689296933442966534682033055152109584576421591702900564180225297374021048324600335419178255407498593430527627847060052901225273769790461300264499475007610213799770422360521885710120429142674596501398605381360467413043677655027589208091817453038629196651547974488658370206505064217387903689430525991608322924367416842573856706349229027435559126768397956368841621626872474054370655803473610418732202837830577449440335211447815610612558371610831058905069811788932969159092077141092735148899584164956950962300629981622654228697304724774865463534885372817649560497312285837539407445556473839457215351673475706394298120069098124233893878774553620407662780617712221861333886654412505855435466976309581779925074983450429227054596415137039589846098802828417991666456697887925561560770431888618006890401536727061806900631133956517464972119818939294434035491113560518108040695683046415597529908162160483810189216461696794967861408485344571718990145806314569648550091429828737490344597490316112141890024355248490566916206754112629072236691516919926241023753097567900077294645899526211439537984554077459597029207224812694508607586827915664613004887227474858658903677840318933952927909428587677423689848893343267962326215276386208425644241861107094927656206340559706220991915460092741730927612368419017863669221964923576014065823929902775429979269816337762535210381021457808702755458313626310348655204731400543950282918669057101552684994295246237016137533718493371998997036972253043677019499056189665175782530291719624735907386999617962529030410505300825790367009340933530700671273188339421684468164229509103087613611205916315221318645730750515620013218153401913291354276686020610105145663490824145092452387831339600344606060693671825248440512922475909967966625084752037990550776842833587435098392523951990152156623013391905155973247142899152088539860532693568435774080454817734509485864818262711538181548704978948915087311542042286797092996996185165716669494579663849442564792563960485671150175270452973996861741904586833977138488833927072754355149537773662267987610477415168451285448548062035503399321198701277621362003465325884218426275347486611848601055355771178028148073307410722052980654731141276562263930332967137121131990819882607149547190031130540071408676956766348039770706445368186131755555750305192880842305501047521262707876562987085931763268743662772566797689503493814433122941005193252509703492195509559813604391199437778648604290799092793341457355782298344702378040897786618857326092990760814234695049432107904977528928452478198876225215997796380067657547069076133439943559724199210900844968373665641060039301926283187191154595311647494656002260078956696187799940924409826222399489550921160948452229244148444785291273501444833187396401237768114655599745250764134487601041341977814601839604712365817383554542197471861455696205249260543743794567213470667363646678840021094774929431210053247745770945030788644582905660768670021548729153058158780347581446014489028603133745213953268322775909977834413604170415813664529582500784489504253774133957604707631481978238758055169102397602154138250182608808455854339615597503954192527443574628018514653942504435792019591173600172414300166253987876388485203644809861842376854319046136168413182560707352608510097223894722666090931621301362957405912531920330598874371263198291640687388835432510282470678256337731030649253726166085729455606932728636500130476650940150698279350385326312171371084523312693024365613367948502388108452724872463320761147191965374543503731561730245579003873924890377874353035405990770565071136998707281616693641499139325155267800569471462273718874819878265758120738737530877869924153051264597094651084028770644350812208823103741817310410651089289752999389579302607743227533960690183614227915044752838129973913543912843625954960872036164598492312212782999435440368704282714805953790217223206713210078658359287909198730519530105539645558451143945222753576274082289572054233169451590126365082234183017032460839086401353736121401309507190161811170075096345550392010066076169011566614636446386519641982294465815450709028716085101699184947910669350589323069198428393038537036045347284423112802317153247435585263033496736038113102876154056478915548464045577217673913247415935438006326449862880848233830892670699868753347292640547180258894302210952230868674514364461043576646463271478156024876202614170375205282153390382998404573624972621764979548242652333107173168101912140044785079405944720537520933688446549551871507797389275044347360785089965441433541011598372116720178632621907065701068170878606324247540069187184505584160565639524806599948193821126440495537436631301953631400888042993645963323162887624977861047963865755178831459963685000935329031009405362739020895168192731756819679470078401534320787167690126477829013074937615236551553514640399826321092302576670681346784321308901015535508587368642016101770278095276599341329595109099354856737796553341319970329421991555042154975535251852195580720492925137415049874289793560066988501625050421044682427194393184740729940343958462984724219021440268890756412578120573784300356831757260214843287086734650592374044458941910092002567871349303729647725874540721054847885385745712892992292814254483579382877063874092441959282469299868870789241498456221337034492776766460986557630048069005781013917666557875289114860953345194938788795591378921926815072495336968134530621858217545762968264288316471958473089585731706655567545001017587709394337279798717567160521277274731161676181061294395545776849720027426029880509241653743717504753023707363550514605809496759312725423781750049121728189439320219574552069558169759013713813675370784400960491501492389445281687143840432434887156531961439333243447078871113939060144768720339161132625786068005071097274955269256825629678966177844873813535928991339568628712078113345706581507569788254505500710448007939655529850927408535328322653038423465229392890033821301192593891006804910761375191655058105357640852352477535409394224392121891140919393011019448222440635014125432445448081003702605059194702800200017561117166393339660597250856770900959992763349189973914517935831845374245869371670935982138668487232367109105079456177987718821094252733075615818773738389314173105989282642298659171675990156591539623593694253105945851097388413985606872451833599300687099593122108629252476722516103626880000387172230421296499211325060444195411653288582261597634132039927141490893193969022932057667364265399724457512274715066216734577472133155797823194363938824981337532255168489343371067982173277962575851402773587682905220062084322491865902993855369564878302851953246470124597323126110405158083042787514556631385491297428681754192275444884704430169199336694215265441043018716616517952142421864931326520952493944660515013971903516197786575297930097605400847139917521731430384331095904009851565988342912952542460061450566408411632519550089287500187481009302304984744014208065316250761387977268541250045006373700059965024963360897214451344004574862116657279698058328898775008064553161205078654640263096081141446672709292538382724566548229312849948897214367957547804175965317395941773121757704121536410358029308827781539003079826340189787103598717615235866590279843093555225819528709715093620152936040289427176527408855156691225211224920305177689205512125470645462222568382478616872278160289083710705252107688496361127209310473159883426912064793207538083760462625910421645714095405035147325255664892051633543806426844594838488411757488124812039311719105791091740334846841941327582311845580583431998120841486653217511334771970755232179110889182367954528121001784517455331093416422994142501821120400103180802725496165292212382736051284975168734841472232511309644518262580098165825904542558820807796443621669924339014130298645199046482359777600806871314478524329516611811576028419959314599154868706828694028909252288852817957036982543097932295743249385701697096995976252899479843032715096172472914490691098423308130306632237221871885151401900935337964052216452853020950571184819558306866899687109762206304684590675608658854616137389061281204906256531583852036379417090994028616642936993419352690618817882061584072024154452304567279840650229219626875044009467584344287772380920963622127369969030232478961490641182122320358407772786573063274709703640967661087331630549522415417665632950882811930880463630700481461064964875573616761973006585242636633036792518682580484311721395730615066005859206419385925019103953357894533658739749627647944629425660296321524547676329281810990794050559141997156024134055902424907994313592367520896020158883560873240635509573375693018044589055890643174028610609410698429642464049594729473140817410191144630201194431269929560923673345417443493213200771971185975569394431855496362007501634009741289582390218709310170337242835569185133997115633939669162479078179289850047201964168487055831450827942251651432285307635803564675951754741011905465877572637639679864810755457294221283682455647452676945635739383569821195505163697002451897718159035328255243822427495513682168297842573179056445805709765391608626098015128038096819015601557164770954374170428062370261109156691121177490331484028829671442770872222396530961172493241584813639953763260870912813266199160048295341757529376046813606405409751875377589248921532422906635941794736189608032644522133772981014791937783423576948139104907035141187224349387575924079155711901231424303677434251544425503147493178894477001944313446592144717701865175810408954487156475710049626501824482149028033026277528226361294481351466388760789399650694357464054859560396316896853620945098483701583232950896037076303451294196600558458790446746389037732786571024416465308737055012614277457762942370096101868981637371372555131460807594153622112146468890830892529264080862779657041170820901944220780990376621999763081990876126970475615461397806455084436482373887175867761307104000431782723901818839299773343447452684164490484259243098986046757232307901228436423766553649285286094438617607319045054808699002295879772759520208677576897994849053278898445483156666084007647803463229519154682290303071816864076390244393793396207381650214887801349210141840962513852853440590857672280459160159900527705533385688119963627867009593536689009324301732710761688192346897591388994606994610990160648239320316148982255854230039531369610466071684846325229817331280620932168211593112536516610663992314974474083328291083584846508303427295846726175618815721222983707021510791378937117713589620284826006933947900093090120711141325097964164916399329979465460671575350124689604548082740478829698111168362407707817062360938053995912473580715397599356349739762453381371087023915220046546527707200264281965240757344525250305830041017078028807667387359883630259518291535058000804939187428958313719257325413628322185089854847425535574784418228883973163589273739186064054320759910166154155708320895924270603753168269629810114222443796108100806443253436401847890565785271572363860847231105950739340825872768031981955178141821824632867651705497047854151215326052417317756783019811663645238141191484085149104541569110696083064300387424585424408269145048942686420315560994896620986708515579562582979947708274641148498537252207097250021855718455082228151828664354786630733115963602938053584681487357680944433704651740202799113466070717005608128349182936768175282592135977154806031537600410715008394210769338237741591923966133401508025621372629543513106308473741168764752648384115246592193675440863937855830198017757716966006574232201487912722032470974293848124863250132149763558331174580550568044626272935749515803775949320155037740047170044390755550438324220382321889715738348602059043118222770020410180434351363630823601924939315984556150841941299387937531754200128138693638674639598397335467809914486283053383312019266905233179169789970046027636942739640796731265979410580251426811962793577275765535536424203107205920476925217226693804503140408149519272935741915358708366654607243147121585370156810999551307729791137841811328107486483197897341784293984729291252731026138784602956281889005431900080740119609234622421732951770137029162758256227597338058299905236483781936100320762727580982922789461823491172970180392133139390069270259700807562065221650495765691117256403438315993586774464359440066058792471933009611354948116418912715579015968825722551953766326948832671538662808324031696569126917306031544318945191892333780851708253384982137759213557389226893928686362380926294550431598086027767439255312681894752038398206945441687679976240492470726959953049627996271377130107232678122955463458472870313137863005526573022252070731756933369714888384578779934469305878850695256747877054045536471258241559743806569672463210088173579664031224136324361951134939031999055243053246476499617764085391066861167765717158103904836277062309126358467599819282531694893134185194412839064555526829427063953334544093139485283760044967464264071160793415723947592578564798457145590884351441602511362320067849245048196180286050651590664353795557491142486670362971897722904109443700340056044073251774679496662670981807412755708687833592919127817292465489329597634474137852445794349978382463670879285510359488102454516138275469844568147183077548367196167897495004036674282465100782678748266097170413195777735055741323868117484317548611301104066169998731084272777587169151079346283926328131860011605477345400686604051122500519366080628125510420483330459430589325309478937044681703334868796353801718263866029325886830590283390692226303373473145655241148314749468108545839530529902108251878235154780720325893097401363989331086091381295911148710110129090401152924647458899672845566309155797854510488185145594424121192662814496073088814132782929445284328817160840031269912953553799645988903345497170497598235015832349229348452671386209735494761728247074847893245685699419337446307150450178331246818322192592135264958243318217872862414280416788520256439275203126882250162481821353967646227738230441656785848404554531157506715348561441061498045724839307049971661142461282892267119540745071779750550468502197755669345134469107191440388180709191639295235977378487096968669334978738099407983508922548401212143720718371051204467688814559277845286719979114406841669642238413900854173851544650467817035956462430221933297259555586477505037879412902204748609375871786420180390977933000799218253331404711961715997848291704406678758328709821215466757848270003760754624118910331504250214200169275739310979605676691636574909943268285953657410596710975048940959616984692190154802894643390584218051043254775740700626457540434193703717186901173790644144266003245190492240351544595386712810963401009764395954329059330619180906906184340401707359971191565028681207640489082676510152024718864305575661345977698887864614374695503306287630689509983332855446764648329707118530670843256583478651856448184749709318485159536229927475761394482476211843059277820056245480466926522027615492640975182414720636285689793544200255503025131879229628927068520609748914320529749821466966264441148644023698949266088462837242199913729178040128561008434188895034286079145877078947226358226771383475510584491111978914660866241729171442973662599406822334412715752339139765785196806373411153599274424231068337131953581111875042267453018812969126377733385143303441683041287705140483489386699122610218953065082179292518065569237664307244909390766438344090314706637360919019675108249046030166541039135368039057874567521399793562556216024271498284612997125618239206850847322012288557822862572887474236536450624797625036012967379908716887773635561584375148853555283640173285253821417300179082628283361492657541347839705602511866504290361272313033511718422756731563367673255726229499469469890554331734824531582827501849970236019905636652583119993412741169694464697917128561768367734999415532474212953795980809264906764522019892500123514843514519294396498206246480537251315801052139272887564237650349536363471513273719119476510695026500364280434050363939611974804932716055224535470465128598515205940964053136005799452408977159683200160514773007050274047176196261634332463930148642716894535487587243959944058820868790435802307895680357507418816475475772608256905573280230706226531395968471063677791034181522245868317429392063386835860398775061456406102635190919882588399367864823496226092411700457055550692173069778895896035630649905367236129385779282924772591406127377541422575378798459145998165318797211798815885665892714072593034199813584545850201156677516930971087680212531783772527190155993732493080077666616078501707616480047893603614640398901647136986927205150174938891496103498744553086832384179045601629803133603066828103767756086220594872732157991375917585983363031574310376976552506526889315844340507840164670072389830606662422123023441853605962762639903231285190682875711355729219925271813804387848819141836661417503905931104980604138306184671840896858772091724135510648687098316767013176418210106632627395648140662981889489012190476817757629717186758530086640898433170692734641841260294106044786240191051797710478404049670909914510913614724594817557414157080082167560538751274115431116892531764491561536464904351266900563168079045861729692452944862900229260160655079559703991907016542630740838804551279051005088229020786106097261985346248615272364155043042779693201034254209671549419340964554267141908821364837055866520604671211257531894087739004416023920808735285381027473259605478095958078879590489000201246795814085129277650198210567802381340523241594016392614978455825719796701889429919509849608381836952832685163526944740066033734661357167139558128698172177650589878073927475182426885140486485777052877048199451979526004056956427060515382434851615394394748264344733919028693045637581104843843051102655355193195122761288109921049269555418593126133451464242887376023899530916439432196117948787416836061419046585896496647730108318626306098118048050511297521280623864546738247679995040759117025744746544341827586779627758012105953643121322502962837920803601316566241908522804733128501052338556313308844171676567965932282484414883738549513712646835496337910743670659990340753731294214222665194294488405822703608862666479133930673362703835576169150266582653814111467275778500879120576204464896100999418707580266690997950505834671313566691885572520881753059977958163888219432578054606363222912987565034383223143958904253068325141708218901741519454507098572086103918726483289458589613685719250790354275463937579987853624043932575574084275854176519962292638087042733102116652635786131766350479356140276148051413432524032166572520700563100201361263735281432216474740317021983736540752360269054348816351299391881054656880910187339822725227468040616815598320037071668752094190714923329665340052777369426092578619414182868143484425328619845593578449997568927109854754621130104683880228648664627788843255523900033679762948241565790355844438373683217526483100679811716976305392958419086411629969491591270297721795414337305027672886551304411405400953644053373633177349658615546589935978746752793412210914695650159995330492413771005678965763822647351585954426347420125006619322698120448918173091871746182354078041881516477511067728642036182738268366428672565827814547913264166130574069979037434460084418785639760390752065758840567292367142229851750801742605617192179358059088877788133683575843422468125418819876072346105132899471260290388578571614170717136747698499065019085636069507923728537962641562228560953580231779262191272995440953378962080787752311352696077935671500102045844431711842629886589495106416259293620489921802021687142876876265166277511421117338510083114168661593976763096228485458497667302596682504783842428600313844849299676948408210487531291975462520715068391398292618199566509165468564193350818415377477403263343833146500047259877371208924811533713774757093715861974957433431698922239162833893023134843002201707045612278478408755469515506505180331418426276922575908367097979833711182806264913919544607877891537076254057187536841851442822786881302895895752936262419855922968697956338163781996373314555359496755406478122654249377455105905861549576466364914545427085869299396845895386367691585128428684063141617249827793350415131028934628147955711988676406017753552788537187726966424166152290243413531818883617012158317683421513167406431207711199390106774315981487420107384801509854085683823641751547666647616568835848330295277292870413099626724972740927588906151225093789111851037589440554857928334022369311066689752843895907603381646187144018444646514607062953121934890303325448263122301599350688400020570540039382232403954072179591083696817642904931565795601039415761402889568565625471578062928314357364860530128406930290905450169682681297887974701696223270434933215188569075646656285545079586495801750928418329637729369649675172119952862622641984722759349728963253919071683521652327090280619154932652275500564042271120453375411965275445540783362060058872072445917472447750873506145261762659519827428526010343742398557696642130426436510225251476016983508497334827567814980712212141736336722880592143005455967124002462768228221588100056486613114738825044996398215227598324180426198349421106644142533444637463952032994902611895435787458656236003715622564954745551509773177448390069279359834426319895541452194100202343101321848354431918973170948076660631224607837062766660566203345251034349295464342862148077952907304798469458261475611264478502976006096522803681100777465724403397559333674251068701368252457000921611162634319937855330339609650915986801035702799712663688005404396269772187027444167508654325617014759309718317281320645474067288505453935818955873582452546455481738292817123011823687473872545649882528985849847858791067382127407892696410378348771079120345121649217020308092474786785329393137639547471736169545488717150861029201233792360115093982846370891346360332448440540522435975136688161686738357220302004608551065401107688489638829710877933003336000657192604082292404773056937827910727537747509838445525674746565096492375389219212182464887799677123052884023796455161768994362239078798027172669401120999462951715313494763227382641520738876465573718144491592121320274553740715124050751269530914452503145748276402913727899349846990015533843434095258189016374810309565420276744493996233832969835134822459480085704778629462484274595191329346134868215009500711651750348419311077325010861540733988100133697399682252202230914693830598008368670845606966316349927345500709304056492972306167180749562881881692818904916274631383848370499570293300406299183583591845415311543039227926791441102049457748072128776934337160073451175326835603086637529336274337388249140373716639022888763901902190657676791789438502491376971658594418739206273686194865464058739608523658149480215750088652490686946020119454673734066914228683240025659332873868847974604117915888398851277786581596037462577686499824183501730866449851415230197213559033748924288277132800195712593005368610927624988386228945101941222831498668140528864686399570125158069785882850456435283404481246157475525828719575321228362110480961015781405196409320003940653344833805388928666153779199976123475993789809147638628262443041225630419975046807302667555348733234598413416272648872464938641272494292205257610782896263524344414552150653561115594799325775175238959020895322489970579327044536576927790596496664958952124494933813988270262101540892378868724982215352985655840479761585132080402911311166021724867893777225897429446284346116677631433446480542493693472959093468847756443879390103414213609549329109204183862724508939577583851936987914074898907562593315261170070992793474770105764691696093733607716430293737336153718511681369520906543487421058107973498459344968602852747103441293889476365001867288607717115918669582715758468396334343103208327761389952503173518847392572999311425205711768472902367958813748367226748405146044794987552190690741353369532044129833608168806396204057126767059179617236063824799023326805970851540467474456829866121519013020947930159162082180160108634217585541595310204323170029278844678441806334752335946155876784616639906399012946280968057774711963421606710135614959814863454883271314077775695763911646873685824774109328851202198798369039646573814692463334302437188222120136313679649084521422958943964627402810731491525610896796939664684626210840639687861394690719552491721649499806117193414468023917378544096374409667310116784578180298812017940817117711903623809908363459033940657423885300717727663405832103416131395245483834181942561731559787550100094423319774549883800681574231743275872967225017551080536341801186261039235676302970674619448964285748485497682648223049358814249982033915258075425551006342055015392890315336838104003148682380749579873974977892771052445558387496528513081371142532197856705460762539482202885715032024232549519677378594911887468438073501951159224270386467939345326042871322999163826834765710988607457230487156920496703035613719131834383561915443099883913040840774812413741828336128738005462360588669062221389445646336952807263575404833523241406458908097851477803878168953993263530537657775030084799269796274160772672927840925625006453060345766509834217567484913001230774293952497076331153452963246192901008244763881610533899674788068107460348006337373019544956200794338249536788532765111752255535262613932193627328870969069829248979877745692973182436798824638741442413534129356053397218073562172624426642224356711686681236004843657947879733261952167659151751558308335498960899208462404437349380654616589455446382915708797124137612205937103536047373442179333465871858315274831874925851463295512696031782857934154443653416819777310833854174237486372153834085716698052663665350426873905959186509606671251268470796619417066109564977623244921875885569532291390410211604449358210548200254194377283929011776146219044263268049231067297705313746726649250714332851209796727073171309348149488506281653515670504166588139420183115345979578509602765345505635153814052806252456868496138285998226892221332270304066433870296770327022481514497409634730260775226466828721131669668757620858453995117765516844359011075087479590010463989595447304334407963750535318924738156231638353360847776739769119103339659139079268074470779770610876430580210237620732697665093257434552529848688205589925385723180075285067545119518217842918788210227257954379144191735132533014374800322097237573381284018267974191775111300025376355836392850121933051180729674069329823037092930711727277528460288699280431893214571586652111411538516310370803009380686557118900517618274553166471418924021540091336601893445792269640821507362043388801073126656723453735451542357790745060411222915490273255345595246230922230808829590256198800183642115072461204159989632230925065867730759613246718349482626654286167642783148919236828443062539489034301043449867993375587563835851620655594139976571337774387390635392278113363601699108932341016315823551448518627398575584723804629424049003109695921435997149566775375966102299661152143563627399384822420065864678040537570168492132553006551685998021698358674690336256954118388797483885174070139594281923338822362403281121769642113384962126491040453150513227181840370267968664297198558287556312916534308117856914824400917295981184690183561219643576556563213805749607422786392287205201472938718009353404097000724186401428636215215904550219821200620071177517732183495987782476899879111675079926687009926609410431959442577233847788634026178675064091782490280172357035883998765679762055334737510007206006760636708273798623143651950592958429231621277912743948437652944830943110556178311918637625225902446503973993666046927689936619978585986628597858528400628528418028539806562648078760975431055509823134701234769728828808713509361696084088850134242224670336408277761995221127031763053437081112539727172715627081537132728138543290890431932858046552198678305252181575837144541591029686204615910416903938107695423427956598773428242089472422444587652239408520810437665959790950585732864998398500960319883141272901542142149440900052472234837285992280136011408499639066299497488676072581538674446167309711188160339207634443194162543861957827710359107087758357791758621546951053003342860891379446207291767248680417646923856585020371502984931315991694704013483788310467662729858162795285142388065296566746626395272905588371900397975853450750615990436114596364278292409305566222175320199825777849487986141379635842478614616752396662628071628163118242481412674852107932079286202005802244533398573433712212888933227698703097052152423653541716621849552449228630269365567874641524516822298035709507790764036640323751410157997723736153672538134662024207064783093776074295479014165078317240863041891825938575467256845575616373342379048860047364822636130350607499848968156400210795714694165855642529755914378852903782016133810304800940046832839749866009835081126959169195384732515873972060255230885567658088323878801358243316686348030261182427451237008729435326154934317752322709792791590296673604490425970831125709936674766413203081287202381361527544352237707241496608423252934293149144066491497320866023466121427155925017092520097215119507185025729127364275248735719926776683771988414928178332963031413179999104013976632980485002500643516648173529508263870256238360209334744009524122079452998297439448443380659254407180130450394325113136761890297230234030664978299981370315129077623423710641201768297812937722072813367339762471574509070584424705114941890491252886162788628246496126504659726559157278985462833723847359734169506262241087963849306798858720048117474035911828892024953577156180020719698314145609670855906002867500046456624676043467120085379749420448156918685888531932563860900558217442171190161396203198887882095850564807300273292663419436388316881726927581166745849499981426480107798849170765327030435446521372387033342166332723643828472062873324554015866778249124552986289929582873679299088806200667232493522408552337414445451606340891578214407584084221798424297710132094008035818125201153893452606757061519358653377695675125863627882008134309851587548746385009124878572765628329535937659942339379837639413678224959557564327136311253176638460895533061106028943637772816906149334850207917426406483960212626115170259631162843840458781031226366543519791518925506571463079081480061002234731185983805081443252348177659135070594297280476074966289372570410106432837625208262272460169772361216718030402960924927537862688402704693060875878535055475203190714460982289024033263985041959943624019516661883637306592666023847517200812307506500217425290055355264645343838420442062415384458198266275969868965024315111108008871666086803585344275203606479554001156088861483895530134309555695554283941738461376468418317675574983202508663359793168370697827279284236999462569463103275388921512621340942340895770850738432042925269699844691705358664471363109705939036568748234326505787134035216646483894251526596738990934278761744790930744921628646491490611342893831781494752537567292419512146570635053411518279348038647893413462204603264583408102477226498290512748227456075414334775308986056014448289452461088880512259907175334860317071791241655752826189202786214883843496184323949476462678155964244791785868153840928430791952282641862889835962634023403337064647952623507055226534141229589245808003434026718085961595657030926477384908104502745005521409228860139971586456229014856276806816209304748667516516464749908028985849597252700691767810927441331834091783797912573786287844613679018540539534189585713558584760400100856475427873824190336288707957843788474271817624480613608122929053337425415911301802413873790201177580928547752454586983747937366711017153374717800894552760238783089753040367965479113613222542213802906038643582374023115523054492973781158283196173944419861453999535704890996316901432143581133351068410147763785253832831689034758527370025566129066974537877306822170246884119452535341679993850493172640403856409034553815752189729435644798827844128797437732038790454522087643506945575884956204088351395259945749346318208997960506450354604534452574665424165195959048465989193461452327057694715622287124215542164986462224952367099255479906412300604618553183333828829487058588954261662964224455697846394202423797565425755875890079880102700577839727679697514003444874930381205367105905165089239586366061415304912060402143531365833196657740102816986095057969984788218075140418137853869976926775498334043990657953805220945253171718438226788352434819122497658301894651331757650056468099931789080548368462024734465318518984381207094295684606005716359806918033156743852225156028945952481369787792536109025069729740784796509110556592390097849593834536396394955629379412237036775082062250194841416258749630414650314626500701788874124637838161502946349059876745292050467376481652438902621585269950150086748244214221413669415879748591020569811379712453265001171941575145470854170265332880911162144655409705913733212391095991306032648410363793912379876112654214679800450373140413121810975693247920439399544544310028444383181951701052478555945513360573603508126529875555348691032736110434320811896291714993061113481869091285140803398598608578172462995639441264219800946632689186779959467551038513609082430903897103511903339998609494719062541088201685627327215005850818185421172763440650195648374958336913957393693055118594651454524402733255673242922871266953650953598482507991947076044853035288993355027299288744742338429403651089254691152932218994215602264562741395186453546723600845673608413699775369222981685048120351835697491888801732663866003116451143720955779846839139653080733885497527589689202490160438542957086327004878894274192595359303291850105114109422261988655110307869695013267633955753150438714030097998323632681991488280641359961392340214657612805989573962278302982843227037486020993183832292280339371168579126318886909880991746241003384404823025604131528136954675089210544452029686807471834368408452448086594461645008986295536296048740516960290001251811211352450766988764715667092332445634356458729306299472843450762127313984047837152264062305891270288781291158213574993509094180723363707711435007051040617454558703776676405823080348619597860104391013595101913057712202022639712617416825809253922583299720454801070697034661353067422977985768687389115094970988724041521513882516642016783510211842735386807598348842606615017825301780033946980325344504521555113712158879097594102944504290203772469454013579017226095926374724444771710874977936658918679170619303576349608522375422056006990776764153014131761691323604316002571573880103898010029219598311212378935273015124673114127770954483153493679538121991827897863906499234883596267917039302311149454631537185734348274431267951170454740624741771132761054008460471967734087239882005429959936387979740061448171945551825437050610918943671275025673641073598136101296678615594078894842453500990592526005952248418642403200060404024925173133758069565648855968760244673308885477944075253639418276235053425808977186596057472109806649533566601739712917443716255458763345899660372235628746764137988665129471840965056098536143833478138677751720801248631976157384849884739686231659682363354026945466437879572885487597410042393852530421025231444379035411917722081433169915033963720755777107852005051664117062966947248179402594003538591349180488758167476390431447100301723715923791628407389300907251213106014242880966479736630010039620029890517447226544671479950245082675538485252008595433439333071531483416020367863085100728678919164999209304533500064571113187789155432086373838468550444214718902163264264502423431389125408482384170934917028511854580335079700908118228754762081411431990214655196897537039908992700311562138167300925302507496183280492688437846362560644666516658124687839592710217980245525214985155750260737279525712998868430000397520811313286216571641692325995387045924499279646132449470114881256397982611599831764689414267287060273270903489855109171588967313370156307658974313073470904083764630989457550773876427387532474572150114626733400024630800617784586366072047980959409361396066003063883530321747916686898956204622441594894740776298594927767053372989033502703868576699466330754331505118521067315093672759841337535441856369317421503941371605659999026684776389397855332863104349226815729980494159267542143674006811615557058836253639851302594378154920334272026921589894047211882771543506433567019299381825828863864364155050745666179844885694026403485005067584271100622680322538471302550200555381859149055650099023130527069724013471896727624543035805112487894886517835020323857767981060717279672328736907251480221934306903791771972488434672880567995856232657662099175199421502500376741563934978274639745823840501100203944542650628436724836909285269107561832345612700138893504798292624335226293139766733670546781213330088378362834285801944035876119719084239202112595683417053677907462280971044617902368536622545617605612469814296484551870510428304912457962868083270143650348576693323332908404665885091093877967162930349158787818079515366160171627910013848787153417700798131215657855832022222302259528985114829882282038629378394316340961734578151324740282440033545158507820863899162232251545656870393304063922300345610944506284911233852941268446588875861006022615874156552467288573627056930749804804838477842163319971511011597631904640875112205859606061803376183473416099638043354479842637021678965108443496535518888798792892134998005491266919329754388366901523182679149891529799058312309436389881138467875886979312155218932440692279255429581379145079388177049360959486464308469801188420494554961411143576253204201036704283643862488966340395719005545495138418111094040596933586838638024791979317106118641378420369621342251522261687856238985854615381286142142597269000402842520207340969177732166918701261541445383576242796600268645860819752729481097348190567371622868643513167423227557784559659684957831232322150170136261841467714281227720656787214964046789865226568404084377146701500461610504397399311204942083763276921129571765475910351086849779942786975364688202541659035054014896659096571755103679322324328672653495903480983799935708788305649448469161132180792315523713654356010734497615860838105159508685946126397533809194713102136955636520077829150154399898493710361249665011958026768721071539530134351801066183552914349546976810057153413151552781210096493023101616716098289289327760922678463866271244270831296838144704636227515002275008139723299798191595466534672204906099796089159965802757682064818583507008493484665517996305301369028701326726469606992078965480177283068119841422234637192483444977547163285609678547898793425078792467303145530089124118228527601853383509174574753757279989128359446000144582805666632393138288491149826778311261110318805376108039527431092345706473388529729690382668423864900220641303588726296127130870928284211728872610536027835805894459416952985960000250373229538132299855042450756345376416405351882778684353117822020267145545353899542731992930222042214387351006729845993311568904092252535036158931677815672930396612897440752029866702364124261646742167723227951143613814420456126786629129971987273548231764112941104426197001167344027824248159566597829344247400671857429979559569765257155910671626278331645535930665304127128307108084288865509679092174991711388066072306724430151214601833979109433422119421109115690052663677937917789140897164962078420163201049820468939913048043489787795702651060253378005638712214195767715676813987818066784206252545900621739036665263146597920767830879738106126104478098798461836827444915670298320829924869876083662584251467975593403121279355967864579912331933185232758728175591030243458285117042610470875965395056032962455001711316095491024116490826842646578582847245917610698222601692598251911388368665415465637497097340292939504638261420945765053261526981924784244266217325510449260575743127420106433653357440101895740037816012818857860677123761982217223395296551387549440730259535762384466603843187636225322242782672586857528592694635043079169735908824555039400804809994372014946459780738848840732642425946303327228800735893530085523323798180363365545622287760085080730385962689539676668836300486418800862499933983542059081795281363919135930701562178912631735811098184741292352387053516499087539769145390694706376890829181192935589879576549929875892384390543124765382974454229830104184533236816505369887986708365047319575526231635093833532320819558083968653785573692649278347239894181390832984543110771480490866464744293266898578615326139300790594964964084458456824237543357124989475509920506386077738138849176001837526787625462473153065371675179490660428362171992885452637953562941220217393672538140118197009268579064361488771289596945135539330739873706006531906198338330821056515570710641210708362483832223378035529584935483873874097313110619374721393228697138014286432661095380035375313555420692356490252273215010512717136984782873427712350283380433645040883767086295641459966983846044155345918902812505328309065265033253109265017296740496699847102046118418636511403252110536147807967916487749268586423442234921751909671491148168667801774820029189614352575119572247576165817385582947464684820759151360525073599181172572548729415880578731714380278855010709435339180082553701333977217126121351279210988668368228336620201740898159256481238518006483932307150311707444889814166619932559744091641680239745367030027172504673677194179202004484064479150517436878126102137541954946154437985234515364061180993333466568357003969281071422357026440865935197162456789119993246182506802121117733354728908096713627107973828511680297399375864435268103302786487265457595059658496012134338882000587811961588676866787006633342514230187710807419034879013478794588052587182221737465990615053521926199489362460069792589065215134437811863681759496836104990944401861252884555256537419986145792242974168339560281121942934267211339141464955531139254856172956797119705086345414993801760594468979135828787245604271267552946961079921149735409832879843272286155216222621916820618728476863282503175290059163392109142607318588623141123874903454203964744146029162280000492920203817542942745048896219356855610603963902547482434498109970325677479871257903340669042580050179519776515562033246157567253533413381420844575341897335185961091344677805379221315229742903320573934472998727978364611730883861023614233572554081476686238020577117290100363635473113087084189716883016943141496750737663762717295467005965157886809224079905063286731247384015818786021336937995682009042517285458920868296903686986201739413563711982149837622634283344660981567369623923430493964331602375180934809400762031643260621292639813156974082207786188232150063999389734000860431299740029876353660961590484020160082668748733520120432118960763840579006435875790073222691258029126210344018464646144568014600512865108536171729010745243050668686856477153080157881799694900371288376143424536585144834227587616181380361791236675231473716753287249044614047463897488523846749361149333366999570830316474453607026952564731966382236693765011366794133823742542099355609423140486818018216545526490440361908822273707499556541920373783519140790074614695075630283073691324820691204010253323683135678965262988610177319149060259027492979996821165492947465951534758558665919354363443673873604012352716972471001324504030286772288973695679898130127595496539566486161998110116682772747462199432059923430862948973305722629411751229424680125367724074298663846033405566023586617357578132710158179355714778942216856895465168184144300893698607983013498282981012311733366553079433661629305062395993837679064532783458600603668240782444779880733176215666575281349476646156191966442793464660245746567071850176281292320513566212285571939191947281393252277654046049214696730672078998367548516974812249700246180682099012745760786184681926439963716171074593530428770345370494896052218675947912640990418008373261259803445313714652720512893908173823069521980185470389505496205682289544824029092476204912806585754528304068668203886596335104847842228744751824960623995157180887899447413470259279670462543655140427552100522441565688877601217493436742634532725707261096292394376464153569496939267948399388940091986718045298938437508955441758018395793583794788923811476032149110747450918589769707355012877909651045025535382044430223444086988485964132920264271712472628242315721494584473478715532354983048846247321120244290558674118418560867088688279073103988929919162435904093307662521685325570816978142996680977265472805871501693059815470607897192074019262437697628523888448641552419071485218101499764577778403334056350423796427521563483128009264447740916682202194756286193444361606938998974696409736623488594066425289065575126378603270650167718793964218152019948700640397981075107215539069235820796947893198599184815972165463170194798565568428609765174271943417858333514600904453272948125137979262117888714683795032715678647932439274768015036186182581150546636024557024899021669374079864049534043288414381349932601027864956567152084309035989666052007866241764282779607760412600603856227683295552660580064084238040713200375747774725773629576676632893474657784713436020243293019557846237489508611674266454925876825455522597911384176541785233150509940010941250444870148218766536163031116678248994665197246696296403407538014644221351917113679952792938396602233468712343639515645529505841010988521104006956618198520606328224229625505902782131325992511557901663593624315897003983807975204997000886600102929329053881585346809166871035293944942358553924377927167334784208841349440871522103357148509631659952685880555904918241642023878078738673278508372941911940988839232251539881913585856002139585760569725759377244381966408066443576919413755437743921358938176532608764995214213656727449587211427835807968309386627081452568446950370113016134521603960010873491763622244049929565296895034856661683419718537390951343221886042875250009527460649963918622933976776340520764550168114542927036891438623244039750491809330312416533072697709147570862011093197172307701861955415025475234497503576994591286753873525337638701959930531902759624062401884652544251161256878272870076979933543923677559192432269732034871764039906904701984090223106984707584528583362859164836889130888367364796525702363971222013176387849965061106916793767811374065689045069933033404781980555461746797370426807188381700910035159130288551149641742765714960966146928740903049189750610626408796709391056327273839471185126292362045401062618898230097634196147708648233684022043981734764033935597194989138625187613666503201698045522553815357055349918590866407368479879330957925780173845787132889668429756474221316848170764201392315272879929021260768345946989189474219315144673941648477614077040269723863056597937461105232967494310396111118998635569745372482073807300771433796942635761394353543762403776105762267126706863286342517061723504414616534177861352861687925028893239120341521314466984257641804416343595942545061846375769193935421357904203630234819485066897397630520072308334315860433212711538764048388023538672896783497683349870670710065932868466207451068901974935997038783541446502282825844109202172737557964832757504074367899249031188832673271759670842831915632629087634114007655731457244018178384339062209695232084001166138987813793695408443230438906546862999330635169386660006471553211354435199072767410581780931413349883491930222110816717375090956456064690463408267968476777723402683986842318500582672460930877798879236569450232640485811004140910253508251898461386888542796526159452298828947974782564490857230214232401753694758194804682908950746480130421991469430250608936445813042698986530562763610285907403466508952363712977182774941334262756138945137790119885278978956761872287368499303735744957268286651670957839924556709881555143183266564795355617585930838277409350120209286091090785095606076815902499308774290863510540943157443593282728334319081328699474878565203591247583740437120308400751214335262330151934755766176543320378702643548291071974174871014669332270221041208613086629846566205118998307760717584114208978552821727752249780238765066756200569382789282910717140314520851028244841455823579911162640860168951509765048723804936763586801766961717774335096817614835765440207731624551385570414224881980875299325643472535726557895066159779178839760914372248219425994158533614260639932157494778049323934218917849244107160636737218516496142924717757644215013295731719798045142265871138416897537350881396699715875625024289351585312338058461770539714790529748285766940239424937505420768005850397457413193219501814282322363028943291670390197360710695330050170851567023809050682985641731578939507049924806091932970310414681181281514878575026904448922455299372715450584945096748983739474100208711343813859195689156977760660102657360704153309572591712636950517378384369244847588377439085768447336852032537199943245464822711339712027737218875032143696398438962094527809795827194628081416798979748145292608571348200306399558441025092509998825962033747788751761729799645382745903023396851636308957360506157605671214639614843998473967342060262582635136402378778265642414634629202221708589103513551872490359398425110048893732891215953895559345627009929997988285882909613798948904504595444291005339983212548026694028653008706614985749195933231997326815870230162503707869507016302119546066266455068963995537290340932554687698624431694040222022318002067486246967241448154101048723933078428668443486475261949237054550661508016616176776951100495522537699757458596822922940884394233199063978210220329299264544304830558601566881640748600709991090524606162280947840151154466178033521883755087754238277049551064254641454969273726897499917673106638061940825035090855547286697208494299652260775260341273757477645246555666630959448360515083180374279736807831913756394840909012552950234294008346758185268272724846358188697787461617481512224820464752954950971568076942754177725904089608750647277863406414859359981283394476644749510463696668360654507415485817227981010346317854314146736976736864035316995836181923601400673209929762603601060621745299794032740781053716910263358276114942102839104001998900382609158994613242022580953262453343703018043634255486236581191952125524008834245495941059395044850315750061492277725217073424795119995807450439399386756181721949931752517056428932810825791151682515898653340652417316989921203154633516875220048645232666837597643741761100760088501964849981667363743137626658630073724016839250075556677694828015006892214942521186832456837574334183750338276228565335576006878044694201085399594352717448459100493435370693178419762858614253951538578252967431132349064971620744111436074357094078226495090112922614651063883292939583662005941101398788600555045756652738908228421093661985434228647009200382165571878669952597936536399972846846548030506555321667609975265058863925890037759273899724056294551069311854278645656866448880303945615917529201478862926822112059521029962555567547969289378368623432377973928472246777705570416607665027428433066573974613800688932980214022299516967244969017919229816079855249278934721989030259251430998185001634227643069616785893929997843572678753740028743224268147142855539111393418622277569061151506664258070230542460831503485503452162529655182647266030199004142896175651015491759225337158050915047379340371932801254107745577417260886426671902663397612881503889192707376794554024257505226929773794478845079328513032322470525037577387649141415750212015052183370645490902697364571805029183845699547423882483841122483033485698929288789591415753008253696699225497625268696075104928406259526050229981415323293812537071662730569951656505692477717865660772022985788510351372653541508613147304231692285137829469029622998839894983880806552327279746303104551854063165122974035545011860511331338405841583266126525243294812317192643505600972024555500136411741348788596878123275612727231951339328279476347727351304501576349825480322978562662434590821114274190707021578937633051258314136634527971268987364567648478170161239283987206625196120601819038081132221098956346315347346125908252788843690661713301107607787353407010551628520244930386930513770318676589827275328046193360768995227855557174571647822011184418934559608506821037761172498878126288951328045764859900976900010697728903183538977061928330770703601280055020043053607714692705229655635151403512584290800950163858509052403417196847698988435009561917783226871551882381316581805590439461557973659801659885334653387206268733249554296307093315296865940389913039598683393646664259588489091499391134524068243324791492784825340602394521059315416264566694588823476897234639733542311760327895527317160843508089321973052362560418505046547172520160799747504195771510784862007350440200088065511947575550500871091475459820851567526057885905163125046119618939528485852552381438109474268290508445251528659412780307008521458553781530862527353638877940872263961982761312983856298196009417316839756938537252127653771434199061912251286358079493900953910097276266697585415725233402361585446700056105441466224266039589420441657070490478531212681414813882492693163504213619138765289737326327945498975417600609491073488934279126622035100292924007937032608415976277046331897984097564806343554176704373346935083109419385933892291226398382488506087309180945310080370584395188990010384284968113559885398983621092567954380984702370207787894713773537325526690333428948220395569663392470713368713763238098975709226608882434167379166098218700537187980150165486163995499014689071281069704762519731603325805439836196732751290564841711412599304161451033277816000554694156790800221422401992589545696723323709290967558569109974826454517680596693077482782520679236591060453684448370678648163207688944720990542978244776662528997094296903534670958474838156056796391661563514411332415992744583215985109657102218012181338942627713647716416480748673139199991870814403369675035074170839659204494893065464461510389341403324023090521651818961112821535131384598230441436696711213009967612753425304417047582079781802386740437260490197056246961573114996627706126174609572386619896513775098297122777080914363070555350735491139924898538462618592381369836408944744094182126846535202231023196647996086080560321627769658706670901384004644371676375761179372238722530249630907691807178638964391665642865513488763641161014566569292661167473217260369007887525305629316952927072445827902813760731579075553242678741250040703971933823717990637727326468245793338900534445613454735836817901386117272377468700788577706842440771175407585469500799743493587309754889842548503957146237516695365210137731003284205266953367269542629316170838136105668721690031969917420940554887813617222162059102018620896492753762165776268730061196806643208948224454815196588370495705469596129659707141747738539375385453281457375666346841661174300572062584266625878653034330204500749631027165086271099111384898297343535044082495042034737911710586570656622046192950297054856886916859541468515817794777111928351369048247345252666683979911325496350011365725289896227283839875565008404586943542444177577144831595186005045842750437604211395761126015665612367609481566689128937940178081302298443724659129371679420389090811928698964386375651800306541561272516786269919007692969345299443541555583827088582978163154724026029705210655420039163827845513201075537159009832294053835276796647843408288406082164107851159472393577482900233162679990244091356542825907373203297913012724741272537895516106152124845416796036161900479156080225076003707178589543207047331788303936653779885142311829361505464809639962751170919018310403950718044583479759661644746304283023070508605804345093445214279997472284873974684213386855437036239070859947620886629088653670904520269264192222349334787518031623597985941196628002362733383076438037475061403251990237901369308290048358431613793649378332187849375103692708410827826217959762484922152513111683067350166939192587456033337581488413685575696010432764031895024989683259077852826946287231061316224807833904926564483737935935014557551751861708430693536833209849660747216907431272996966301267318235393444988498766883269084658108014147502890606909880189811909884714077917091528006043426206556145474564536478478226097779860681142193875936931715753116017615074451097493695959143510209969939680743805683114183618752281535875539151838453008783397229017236927872979062471413649125466335633116907096454978410090178900050305402350566255292433150233423601917001349858589031940363476123521720116660402649451880760230113989765778281308296483599486297621760329825955552265979971925698479195972487281342406980105821310289385592037200702269036581798962448474238570829939634103843625252745080207246411195768893534048607268185932078394463171566458964396294685450745370157058876456559735943924591414537118276552892926635023158231254274894112986726003509613584483171290054678342703664483776991044015656512176923287494358287257198234634897410546072541282611761170189695045303755329150430576661787047303862915485271753109783417866918065829135225462192116799791497039736567310066874847548704534481937464739060535043566130384437155983451287341153463927518967969987826383934785546108807012043286910896335685935894706148698612140186945547705533233939134740557157096856360716022008911136985457624324577718100973300517663518363897644751030021472896813127579335542738493045269829035167661593229581241666271689700860873438954721802223387348530548627541957629725142347968341705817349337180359532275537971636757824326119131002633640830404923211586236624345731441794761223494347450397656222289076494258546657165495010200247250735492452238225758518327498017079354018432578376513590802194744350466962778086090074038369027270627226586378450711021283853643659857006067709913791551996691779315018003131342894934817448992277965989989343008821036328585707190532339937206548283592762621333331360693568036103021120934162888300992033537909187245976520913623825276682802934450764725538760558870201911996027979693696244554233756354587787668938155870740809970877800335339619866359391803113435223766653500566008178464528501955018437577116751931038738891877504580934971387297239415002693378005957129368398601760772435646299037358014718285435437916657870379217955838360549737901201701144699482626116612720765314939961605324925415668857053679890785968950024116925552312302164025629768415946594904196427151626938400189163728772467156417325039318453263394967539251683326137749985097145454924985825120104034040240813366481886602455890149105710015249102976274877661808259484106638609622394602793588712631974555265463036678729959654631389222249728991402976782787520157664473701485533915608432215443203869695565677146859801450867765159593252289383733535215892260430409496549342481577593169110594921128253506626567888799674144924530576525455266432158610803664532016082007517085551450652041499054114265806881030570342887855915739984357214216448155597173777426234546674994389667281763319275727158689583989955303120933287854890103785454374241456232707391495132976960203519200365036663446715484115345826215092042014930021104522494123041168564618506990634962631436413636049846373729502366869324114194999929542714193895811597480924931366112675107127382384430069965153906883625871660228606109522004393933995409529693218735198833744414745561977536950948874323977538563589522299666025356303840103669126051223191557027147216232490229929057173542482766604809732401643165925321122428559609679517231117389350776551845753985080924071967616474157847247249017589471074423977080660834194419747504620445843075827801917033781375164017713775728543737272986285126807443375634921815631694102533193401297477898926296741249749713363216870468994568342695837816842607293814236494672715445228084056137469603750701405778121850341674022246461261309721591820622542756751569716428246486073944289887665926236084231602462927572226303604490012534216482180515788320085642606332365111418155585477673791487600240256923592261909479696014205307671539211986709741451995761679834026352043640234191805459221342118537728171839350259740638097753624055741234031094647271120800818437586041368193711754919089807995127844503320900972774557532983776854758201677364353190438162644836132724240747826007676541994366236093265564867791011790082396217240822802475433951224191221223865250479923739729182429645859335680114753695439582513473907328594124965664464743342220024713156402210726232689103923343650149679070494204375988711611924094868719976395495086802904554295908035893133055958651569310792138432682742657104041657115716035553822070775450431465407884375482319506987123962843697305082835691270137497009495736848730972105675763558852647762292977286757587451187437339213166872986339714253382935294208061540762642924763587102938482136309720783908937534051449983233036237229285482516019598036990743533485965215338071078851830663087720563080692408832810261723160774453657425617023070365210105580226725073702835933925940321677281705652107625320510160346656371727838347826761550322099762970745568692802836553078901034224595340582037403297239914432585555297543239064365809999718347016614684972553046670007429607671755159219657621750054243411257277459215641343865133497018645045929281361517021578923919476217684394326097015767457730478236871799092844092019906573970941274973606293586073446840052588452164601190828816021931324378380593439680467920683480683511376297774255088101511330745648875773700203687399435690821213024875911754620672132107959277047700904066629366791545814508830671653698462736376582774154584749060420747272987408520845236567985789560122851695179034307897820619500373257420973220120528461500230555150911513699152656706668702789607562495309136588406402066655744638876783051475471656478725259347773867610392848666552297637273517757978695007250626962930265736223578283126751123580935861651979238890695769922549161450437251589243653094185772494435291567675197448225517138560069811797183858605459584791997742079082726309384879601009546653197242093545724821977142719659001247640209384483023735140225996034104921789888123462409361179267564162852864797951746058244135842849844752960891594810357947835206480433432109680698879043536646551505216664873416338678553168272703585591369253527811631423025945669416262375741443984640173522404505823737300366291340378818556027056237455000599953332934343542129884883641209021153279056408195057065955119227338562146769037036537600689350729348862290490438336902781875368135642298972319946390061033503067539782172479895946829160335719270012281087331019430810219826949271476677153416668373264240915408910113944182800671552948854528961257405575875085833330773515744952332583366866989931926423826909287213272341195856185451587919715780084144135988259562001043829942229519339515866708760749636200941294223543981792763386781193483163874878837781792292850026901849802252941834604133543610671825597984945768649170458506229793650277931576701025083009161104010039619383013224935327515864629620683397300037153497787896496275001973127222061461555788327894294042952557277953997844101749575173575813122299146178000920385315749189784126192057719612764029250489309742191047286309149225599997212430363666903670105196812300774238705208257380753172155636356448953911223368416478760859966943293530693806303044170088303194378860417011823458118004637617080290075511113357367261701686432237562463308025510921062969879009117605851200953503954747407691592467095642531426762753315382073097924159045894936559174746955841421505093092254040682176357077869405544926286049892850117351940842427970085446626771748403404346724651993740094977445828984543211241929581102083787300457645892203050179419031055873672051725054082116302457786779898608737289062133333649230020175277183297247158419321767297163238974511486295110677584030388667275419180282125818109577051780741441931231950176204302804469608165740414674535461756493657090325369071200371234694058693286481620155137075290763514118053301337979066129231279109883742470149262907713568173136148704905898111843227173858505544611971193690951812260768789931112619409640392821157887542684936380161286138224567321999233747271983251057130698593347386337420821760720377510450651045036002467572730608221781297737880657896331448499824090377538046372241330757062438992148605558611951406978320688431138015801828560281742181191758322135610649193471184281907282994683190916168787373140552852192507847447261911487206551636400760301057793235458063380454976246030030958408014383710839591473707271894727801620182515720327697940432854582539178701856333474956714557508297149552383224733352253500445672912885044552278195952742500378081068741744230029915566749281786633038300612662900355701878337618757843031709741776894567394435720242439145772347486819063417976333651319145403969075682431444665470037418431094675591338816358683908179502461424319363609918258228248447388379183079362208854571897111896748460122500047328802954461956727324274637114515840989169082625044324890276487749148571064446937994055625311592919552606353589435492462062519651186969910507426736811909793347459243697530751244563299175973537606886503159625730747623484138270118995849899447784605727386805857413347392629974854046256868837256815091589381118592863146961671073643234559394831205759023722920047996363681935212145291275231519785126958123759297595540401030803240125098135190875594473333454598306704361887750169338528539946702907732399594075467742744373141531587748123996009508865476224262237939664378867777266170185249131143194752378222263106496194283046895630120199474831054990291104614833499837064724926423976283322531337417608225742266192364012376026110549015341045071183267264923502704628125376820158487526046183288713265950525112898796496453176796698592201465361142629819431445564574137593239823240520141092862685004841291189740430797621270677955920470869576209719287934994816546761990152906886686821355194386000682884741256749146061104367036175495685760590871487658688151755623368746609313962699715696117696071207152944149975637426587561664577058688684105909206353940345182835787329003819379476933408764452309846666520340466013511552558235347680173253228213263804005905349688583421484684717070605668482294361371370261926734765725645052486879797454958078392143970029123620406732215432881682642576262310934267395765581625158583526746744859933751484008410787010642063154700426080899480926479199217734444250793154841005374540006047058045317704430983924633443562457165680835015959048629998128743445802594351599782463537110095134974058103231692566888786280412377188143149841947348720523979631470395846414874254593079602074705042199624512906042549998499838712408561640869445456473859939906344467363432300631964822043431313401303483664664792741395018514259919949254303302631188871731671200190148730092957942516679475919337537015965516696050123547020424144433545129158617344771066579539668194637286892054505852397074332999007312808028269986512577466135238824990152834301449022663938901475182399886095979755877627722095641535949747941852336716733691684872085695860794300016403929978036642471270656288340341355675501464795327044543094987271344291115970881578079998008668400733515057979783077303442877178517235666248699642007241312940262178954933726007584962541227593663121727657600712736951877414735314381725592290622224220299307310416969002214133869924792393559867373305589078456546052444096053331017593435906553721538394455499020776237922095364097861625636284476431496208673288508713179875286650274670441934275114869330013875159526309764547632109924008185871583321928039544912152040302080679841820940411922541018789507946378605600268547962121142750438628653788551731046827132983084932474569756166091322476996238672809346669755273159431654823896591072182846291234395612334201547100765165255162631798149039907982074366714933188091328692915709416405218349725157455822977645806365229521690166667598736041947514117157686127341882909793720080272344995453753235327652901617101498677537815103043027564387662648382479862350957729677750497308276148587121531285275247163288893001632553013979698000763687242411099400023694223736760457104653512130130554918150881541496081396218341238172128215947574809795534115544550538086987803496369980122257168885012527830706228993786128734770448690374107472639120872887791056011878881158610878310225473633253263877297932587656075055937929840910722159898105352674029509036288074827994762537027691749149419924049741210510887754661927036094551754655372218009586349156667756813441162755164495864666387573209333771214260298455035467984419428951514583306604179787736461737961697198392503937244460042549472001020205750376774775596495929447117641080713800314473797981337540115510019066582656071595674265428921535440576820305990740554019811882712123812276278086419507569560268112294459085293793893728520352219219473737533940022051620555202319927130048120413806856876588411795274161833416250526015284640032302102754492804252545001426938701543879739167676066511898846282873834143743531274245016787437709411881886799753822619351793002880532242811127197988026967736372780351899225238711757072587815815734427430153239943657426029300363025797265268759253420852563985490946703662698663103660897771218425115953166184416727833890392462342990934395339406169415440987554315711201021138813123534721473469921319443135075744085321134137101222623817613079551961972818266171277872550845711436619272888468545900470314071573866690421463729009522523127151758512327245835461499669681692468510440873575372726690020613499856563581299736595525124408665498791835398661043409459609748876402980808369069262874594676229182194588284891241131618760401780550907454155547873023121661892831912544831100089597082448644002775982518610888802797269089123306616137293624738467911607897650389335495446955212307835665878972841133508808361625187758635634262124581274180525468925961980630671956488995584687055023485912189513749560748932867593344432333254998261600611958725207822965632633946809089667750599509901164750719992124317468564691245037121390720957541403116241010382706307719886979088058721307476257719518759598652801573405568602813233826098504359408217574425029713504454495078226072818582143227930236511179951192083496464313861659995917836056347032720587722956293208081837544056322288107687877000693421736353741869607247773704019702989133608870185930829387142459702876416399980454026689493501926323245656595757637397831478665732450237637604074625393989659061099392455928682843292059712592479213773224119282006392404742817649453220692094917624971856313513196832438205693163389390179847531748130642520422845424910414001874646630883642275091358635015799681620917727798896290177985025020922483308328168666692310849186524280063393352194667225403053744943378627142801566246573641830098429468677091422282696418752956181854998260435594263899556939928230986718858822848359484706596439230289448595268156270534338716567521434868589722852095734392159554609887760148821867935373272494208772803766873600507081699828474967181761460124846678370018383140090088674615001383516250929304113044184881929131705426144119719448037731911962386727095617720345806915072905428079685588300377020267694421832344912287497019033160650687977173335730493280674413515709332428391066056251534629933150123774541268708207914813953354121573939944016567857570078635766799274264639731570906472642914638750416950795981743746642030512324449474608542458429387092800108215544754719790360915161670467326008960838469368951089366025246328147869966905835734649017574150500936687567540269115129593815097135410164022409340938407267007232169758584500608842263756880202272804263355226329436110980003749687518789428002790612935302485166250549647726734102577478995784510412584954403748326487572947209965126584170770185355437775373771526087239545036480962918962467201982184546858836037525945646090727807448143672216037158337591903699319569299101099374375153203859062957005958543347828240839270975077734214094367374858435523928173213636512636757359838435496549006694360746635581239138837263752559600981489164115611777499051407841400774499890952300232813862256770864044353122702659399397810701992187558435347123445909830099444181467118752107440792805934006473916010540562223706498446269247464637617175590673179469639705998309353713923041786849414930089016616530749223182960899293000732782025713016114527255221069828455102764732202346066599423896807491575152310888167278839601715453485542015033979478594254094535213007787440642429176734143726636536819537472634384263543661320256508514364494731067940811249890407556659707253264971964504928098198720102664301420808121439414973678809966568841013232155051101060232462871399131962457171694738803639686692044425698235578332571013517627154519166234730368732727484699457179099521494228434850821172168803759306371271537272656018516174610497547464958848048654873974211418489370045398345935515733395580308950057749624592195737617449603933287214903709693958031043095729909984331803099722370671311403993124820371339286663586978433017980136359279702031872539596030749310807944896597925514826743915533885245739769047882887514079958157777514364220529054115383824165245208822774916942460550691492350296522309224108686002414493720446249411758888007194528576158680006180794786909624722858864564620056434426260666262589777806125119349831329125850748123413558018140564877267284035933236733119547716777636876272742348464655653355957800476595126018187740823450776110503037121272365845608351664702011009745510798297546009608802544203996635105374840573395590034940953939552745225183697947162710685541359291560945687603567937146653302708376238237705892102438401819346255083897266729710059265089863341463806095728083630910442440119938440015368284259777478680311558372430746514743943841174778274273067362497719011853999599538357693896351474307992064794913636905155669207644027254084508181817048194806738756580690593626727140341888540017117725286863995140382916304729469310568472320459768574563402374344901872527381778322344754968435119844792222180492608968618302798692660533402439112658278673161210250921825281540126722838893926131374757150647929155484539529734861986311636718148478370849249242584751621981257026267869952042047029823642913779461130661396601485242633423760215187772022907080592899809877376227792687384318577518777255770762688263046441480591069116216266587767881611226738926935420863910279482863369719563369861037481074405113992188968818402907946690827412880831853702160019438810194869710967035913975402689800317069318987915338452798429236010402390297247252322817671517203931617685614893720082288795460265817302322272522254765300399744884445581481091011915154928314994667623967799225306230420076524956768540743847093317254486989720749824675067413348712757481216293466957039967037518221052830725128393909268192573769803929232939256832824393455954321340602773195895640403178755643785124582046837720353462582979030874345981491181972953130796108034646372219189510793489690054400880114473092596941132597954851732117893243294661565356577081539043318402717192177086918909136571173030461368250694915181570782547263737056522521101838728489932848308278956148101970225109285616640854305663007546067331903078713158961824056123142713906553683804666122414179799049425367108831545490701121098512149836871375579543452827884878987594858430258087585605288906083797429349248300063468001815544698246533874545701402367245089015825903874361793702956665020639018359213492118714263348182045069888581311914421629910223497747767797953958150220463368007061463029450305438059144320499233367663655018307420904595262509957865628308763404071620709356480850135056092739726205683415014807379042834800051125177969112784387149530356826550408156491240120994312637483357055948371409443418579766815284983613442370546617043513402178378325674847793410313350071169440909791671001625813755830762173729851567828330592620276988657611348392128038592841694585216177849975276410060528674525009790220615749731560053977511729291455931433603968808119486746004821505718294927847836081853929857773150738549888756042181259749259073865389090324965245875305720247416133304588006921173175620206872451556201166677504453047485440376257395360213326708860601255632992875491207495826494262795394699404131489686761798477045584242439700175630283215483153095241992114730393034983695133364443111851128212445522700979116543028880580457439896605441817103900393437709957989719295990143538401469561672767023031232330537902962646079421147239930336202822005379194167306500340387286214060265914253057866259631880976327716005240909400090199416141194074925179747832969671010778409997257473490825115549711068681534371708868715763864129366545791319319327787727339769158365625438209907080678922324669615718557631442605844300977832141858747288448028905528606201744487111405674413666823291725564292924535270771962305185251607866438796898751776040189257896289036372994032403610266532460018081830097614233655985213482622199849059985666083764305624570748960193107137581131693142659413636472461497971818558953759520360916559271944873366924555871739359584884855357231817872844899379232971614097899554994118408805292186132681782061583117509216329704100753451319283658377688504867403569984039668119056387096637847827282934122241410849033820956142683532298092698193733067754287325180340425520574028764195517426838895878359021966467289476324555904173364848150888010409209445384244843608943841639846508684821178246206523424247287765857934546564182317981651182524147366480847816250408309038508824237194191917390697403997988971838735148463867863647325889914610380864393888224173384688704129285384603707375469348906233230373674159804291725345053072225682302451892970609999747491627203103381011262055138106700381564038508833255738444302451442541073158622108779303657050150131749617216052385351732381112354169520682703766950292941067514888940117299018358815957772188868588968526067039821193897946855833425654305353837147527168181243430258731008546272067542655802198794431445944800513563721623977467210540133781379590842414620208191660664658281352196623839543897151507325979734453303072537537582885351110037335709044061200688422348247310871907647644882874885894128340513159065082302951478287567557525115208753372985281207407061770799036687381397473993124226914348128574240680623392405326862516558605125876255397418605136727955185579374624369043781496531092217220133111948376729226473135405304284951840361668884617968091711406128205924843370548465800181695780032697242207477432735389518765397217318482373531279708914154630960051287872111966294553893345159834141109635024043627111780352684744381760229198082628745566688891001094538952507225948801969470782001330213008602320464756170585861270062193021454378597261471745351196843823437696041900479668405944397802173471199081717535594553865165868056172891823221892422199392421360084062230517243256358426274314406385783235518677921704967763893574968744771866235229543793498432125397794085288444611087256198483268637229732792708847348633289845012428657412542665283213178803098543053689678182001397093293550951010877490828684173199677493034193720714511340071102609340022940906401827020057569551754343372827690377465793819711387354877387904896947373285948682446458315674316820225802857376966115661620233819168365304424789685828231146802224119593942680845864983287280285407163320988707538088954651657501391208731219214497557312581331452446479993746306324708913467413989185344460167505184117588820495945161931187928921522359791557323042444475016431315652488322562439752686984354991253925714225507136870136232594423460291724828516291947585672529484247831159488737790146363949580355725786695357589069207086117773431304385829347928067767946274298544459146285594562307037792830923835920516000557255391184785013142540648789279054023492343213815049580564082458728333629275155873112588673539219218409977331920302127555863143641078255619592297895426325429798180652631477605762723509753022217938827972528385763232980405986350999917488945403545750492384484273761118377053849780278861585447861522136684300702388601447420837100985075022998289030181084552502163017168190173864888686900182159046067466930954507254352332836747377145431805508944374560079783813876136182535581149648595155298351361420006311051953594787599710607976109828786444985664691163135296273223705115179693764021906381849321402965394554398705164023367601424939460343818773247298478593136171301257735102146507015541335394825500860952084138027848360817404034153634266988033181000628831451990476244316006314821377128570240333942863761231971209280039774755937387378384356851353972836155749762688489531320022416832196177472922756033163602920129977258971549050322377978366060295397521253044756119579808554503890836008822211605845545656006949884215826224837760109467545536298026172683518755764388057644560762759192426645774351660178825228754081173985018450908134254044971798907036414154323172391540360022201437354497614351535972123627897459224743389318205921447935274404847725851852605715711132025570579265084594493717989915430786197949913754896870698582235116933618298992659687493653658124476275760656312518544350204927430173899358341685958443602848383179742780075140190441464167810416078237139020430312437803920740545422865150292662470618555333267736678087259721867267871538561523141689640675207156077673050499109495091177939646669847561150027886988978811129186413094566019639900847494907641304697537353190495723054515074103070703603211828330681566206319294461889042613323392149913002933655127582101058042030525348878619078188288229418467867066095556060001557739399405149943835952039399277492197821020034443842735786586935976206605925581427632573092892626274353979460788122204072016315690680575284385024646147847925183149903306879844953994247139831669680032545491350391682498107358693871685894344254631542123933770325061531793122476582010627039686615338306470538857924669469330180251022452340661502605518414056226000921076992039463167714480420587153422019239127002120135352634304400118590306493921323397411357753229142531727663741720688178082717430886375302124042331329573839306745072562728827134538859225183449546047376166648250460001281748632329918896202048131265066586772376782691309361047313880586393691109487907443486095717871886837983892645514311078992568060052211942703817005857889417163885892452419710610088384670166680629666279520361391478254163201300468846428084247513391877304280152208402245590866135654452770427770534707023209206811931139941253542724443998726932961892622763494147773112273856643371766005877163392660263877465981393797453549622050819092449148643273934826457088266365559128206791509253696100855986859509575394578659398613671130425789584489073154654523013652627793437156007161774499068020184173898267853600075168821288590577485559912497560776505165855269043260006717251684385998382256608921045713128036150247082615541823177059030840840718375128021705376511791042159371343359677529939137013983712962568786621847346891465458969045682600526224306929333382118141681679007988347752007091580494163452832982538586983920231707386487459171159361604776764949049147883234217318308786417581792854169976357591628344730966709195350806584015389730329500190481430973594310678511089659651761133131221777237945044170432148983246519793468537492493104442476160583605491314035738626477193222840191854954417337332506377560352486466439351210824069726975404488711138133973489386768033053954347809406168272541205369116082572019777827897668135657179141718182058813512248381313628409088770706658671710751619750453840436061751074946908227715110382258399752538179933081478969973568588170595431811852363658050159127489581181691665607568124045361975706538124786717004281477264392835961649968926543742731366255589328857403829998382271774987742967836920713138768625054097124205347062127814360924849470638212058514264494569623106393086641773825502910447977255492159891212848006603522702856146471957483209476171935038152647436166817278358298627451194155474243922177103501880539315802174228376312180328168899037758850724955267518105964620229710484325236189698864626629577321096341483856979026403578680240495466699323875334144871727862374107897629616963803952493630787681423268338858255493537700681396324705424219503339782786594497293043422751189935296744048479361305278788290335318316124360453560662519341060058206349020907900558359254417665765023106477577076905531319326849837954798496694004369988612931149694696839120620690946846488466689492079075186072342956074605617000668050567271955674326609848291160361262531427572251842731469056649970860909121472946833988507436073620554686106760532901447913981216253162806141582772559653501224188625188269763517676039698612832553084461124586663676240226285876777096978962529571643153300580114462916940956721905797062980013184442055192450777542923031525887950485583793630925485347099812312358152910416727750737000218964653039261891146842046224273166721037396051034354050794422157292937213157619554345147335493387811738596765861592112504286038861729465841580861825462504314985148185900498811164337032400522007024090284800473973266833577502284558159482517847053298003125022902061688042965699869541179708391253459882736063753927423708310330327716225716827190478223566199234424595294820957515953535545108062896326162630736662708357765227690476692063456938958268077728725678204514700799033826391847376214728717247541258389430239621308040293510056331665810058595957764198416433358971971165838393556788071627790790933460305891779794896282212870276973574485903181733902658856897417544813084158245021663193660792922434189806375179806678899075023387582690535926377269267937277956509304447952592580564361138878167808451425331130752712801765926081765481692425512238557358495562193208736809263487841893334174081763460761587800489464216108181005586500644572056125721552008881840071441935011169988178573060879277804715350327858449209226881857244439787482826140342187860557861555372497573443800316779614264114025315266563152242831392735811055531317929616420189321672709935601814742211008067353578938884162366339558390836703783707996744419766116136666285146012247096544710382404718326856980987591138265008192461062087928863945832327183804243144990575693353982061587607364962191008732817254956864674112735138515677331272888540846759262265432644265615972164520754890297587101016507441366136124373666461252388869118217241193742728646494561927498680978440983783478446408064559007060513802616498094087306821359697361209348820689510692624167875838605701713534035833392417808752975593727459161472659860611110667685513635181803713748733251810191052458276249018228452311738266238023419660190935276687307329274604419438090792934071528280416772484387447932039578193960019550375993196412323033264920504175951835561055679327558455737152357007971249669198325992943764259413901806546766645373087664419910257179424574134223291105671612604761278167380057232955820741932277310279125831183194381291634369406692446192320841519747269883498556345401328644142693335699237825064607540076156813720765311804486148021377485588953507722762204648174256950473150696563059574611163124688916076067569939701085706791515084728896689545289440670311974389841784943924434588594246538645857857432754857672978291597113008282321801969133103782018282177540961471662085002846226344651223391171981285594434806507686964765406911866593525717091313330470770059717178310990949505434715379516840038128345068266433669000702123177384337326543268304644156514683539282185446469069791293485036550908640933177501649657656498728460606329479937143880389071697160069087982681471549271598743310400694201568791189791336666750844281624898907405646904338367944547703519642602053114622522917731985780162729366648207550578805163627201418667023509395121573321291137455419894502111961397521342667344028197829724787367887073567288778334249387506028502486676717279725994573187648650396463861948636920894820968091016830734215124917822033623398093789515651794213964201230129587379354335028713299980913127986700530325681947794736917584961261103324911273157083993824073993857030475201378961410142384246395703379480234506745696772004203510463295501845118321573189308730576067334914529805380217683261527190242954817687087510726018418068805193793520474857611928994926430619510820411761064121460657864055647095127739033990281790187394689566242260792999225344794184508823484709108827670138813934830447867461181892357024537580137303821115478969336098038846713461086574686009773769053040617296609626343666937026337200789428290517249170103372195428975509873216946095268600468751685093313295015541173284577332745546829593188272856123207101780378222745125205444114997289781749771190180028060949794156676178414715166413675057515400777251187222093953886655022689842529109138303257847202997961590212689160657518840752721396941366934546611787817468765001777826279488231749146689544862360870590961386304385929955482195608245642448811721058969672698752401840206016430602177826912451135539039441826795878368521294122343331260126493751036464971250691904041624033192234777377096328236383121612183266473681079699563217702218738666630075293612525653864718037507544063024634333177849526540005006072942710002579427738022995346056827079085195946049878356376415015773845722655000376961836303880342824619543352122624349801049629582979670159706904671589638607491907382328080228370121109991088208437668760456875632917033247939572235826924557939595423265811804554954288979552040956610074207937604954825006973954685017591817737150487377268071566971719375449156115222501906077199637218562410987054478293121837410317101578411818166967888845588630659848614786917278456455982180118772667165144546098254309747180425293708655636496458166868694150861855319221532155159154663694338437110539103455573999862694296503540027837241890811497251501982663500119207083338763256130314611976753318990331839737117307428895231268971143834807237035471220208062678883425920723470177574214270718437194232068588828148888918320824723285014011574343856623847217297659762338216779423701719080574228525329165632694457469482030028390535790242715173300380848964200165445264807379325537137400121796570829337349966988854027409651328087480657477196726140419329585826347070790046937774002603526931900177830765941635266526601361032779094411689950594157994499830456250082298706352405087395670279569608988881760025731104795138759765401155579810316276251676480452692411986229868870380774278630399481349746229209718368525121357435452827000731583343112397236576593080008428791577789558524792184570883413264813192435127581893690311386893558581767228197708628848653368086363860480692425783708719802149412941563815317255499131659303166786070855414094623604762278660767636693824344047970249028724599433413151331221253420027911536447469873541288608588391170258148404652849284998374585761852656458447713298856926873784829637009070271067316824346454451398569152585147242437770601838793777454460456100997203007462168867434399701156537106558667101244364501883465620948578504733862482404259392018154275594190067708817322302375344518649032859520828081486394680309727247263097245308812064444859431781250560329212476158994156473671441078670435985091204168634173743421625224479177836993046572146082933016499569661611183057745066979225989383447301303036763367004707327747034329012006562428407623707018045239682855443330070518880895675047733077557426157174757274974995001438186106125988749273685012124836095594001276163543374209508003881347197012743189188638232999938168589551124293959043718373606746505243828527655376682329760043990805152116984926967502799702919928242699181908326275365845870087976382556158663381577392910969796801420202350652607947898178268685923361674835013583634100290472214117539151515577735127999301686842050520606382038211593742985378561027836554054501633317704227448724023893664866475927075996522180190858667866974728648105149637806441847197706452592658332521097180337881503960928022753100177588099538743277429360567779217650938031237388670767383966939636946719213085363206871380157105635434093904267639012861976294659292728484034800555591804924900944728766532113421231822076916957888187910170430803825645740414213246019301950072140073187487482312760324183233464417441163689037977196255284520860187878620589632925494635591104828514699084331517672196520731321536839461656705849111154475301010416032050865254427724575790459230855067447128374541261683309260371160229379055410750316954546688130193543039174358398344868769434072012266616313488521476473018849562986229793753991944116192763828074911627041559466628097321308512873199994996804838547149130701160120427544588043905753522505010865031455260176071275049501714309373153724387002292717594914271196623378057614244958375854233753761856281645092455678217961212493682959702500046942886572053795939284209347521665425813541553388022274123246169792870769450270326839871358440558533631961914060079446444754918969397733893313925222733781200733029298809127859108785373187535823485331650324451726376442821419995083550929150827011696378734168042944801876945446316671634003585667244412867358382375985022239015801949687523548955081734971383263374144786855737405682516378433014413682039265508770795523424292910796632463975862373300537264187008384485228015929805643401604458219652250645326342575710544738621283243756065121666228213071545420024808783763459131951232862413392666216412599445412644097835239050368328440670412695856286805434436034082933613478773685346719899225303575106980687483552182499661649973661341331934558860224732315016990979349256221076925591265229825179590447702346842475545269703943795318374856301071395972155053906449695346167824697672199772531196757222496742511332360696120802970051803312074380610997407086241866345300749366454130391135267788762823228365955089459252166134791275497439973388865793932671322329766816116509006568434465238449637448544338011317578784397362149358180451130329709070089549568386331043480464004840409030975012488532595803672090775921574576966778801100192863200759957822361487934131221819155998861888520907579064336522934084489291307881204293663188972605680313216203860428035105332273307945715418288744881869312048261158246366716312676512873589339336006184210028783876157386988090582940293892745481063017496096675171037064608877657174007089092394875321280965893267412618662469266833743289743171891336856759265517360530873268726647719537083745820098776138787854680843713773555882508351860622154714300485846098589541093177070794478621108865233011224755008245717098014087219571507845479207536539164578797139423770496161955799724320617928849856860642629283300255540910950282288859619924621064494897580140429059111164944512697496271308060020313445468843204089272376750216919807708524629584804772478982714683116839530349523086654104122657841601758002959132301423792036612293649046016114819856016048889516901407987695046509824122983200253630478494543204333740985931419459406110524016922884709324015797428168162689428445413047361925989417937735878872794543274094231979887058368332462622036934421946465299895657931493548844473941833765857164945809467870537074290251563443148903402574888379660529439520349793246312393249461260933398382092202364392925766667732776514867213195362409122066911300656189723051039736571566115099867689556056845981361327653915084124209860776627689169961461464147869919505519164230768942896589819239788132941055327526366029151510388461808161341802294429162290701941729168074805162512551694162831341847204212232995411561630858995116331910096409893997710464967132883386770686610541024022244640287604890860735721366133113002683619508931749237596521790582879813159721288690067668370125012592186256281670093360395858895923261812815557464415297175008197776367567938895218710111083012659066971319751093331541554711958939012075865829440931306371040328222568847843506592063357364086041534986694462548556730583366748504148042018088979629532299291523338423123346391049429246194782387142356938592265769068306140669492404166493081495787676201948612532844472439525900435299631902677492510861058878231896140768470594512488632585020084220258178063800933513240528686594089350662832642373164421800352463532174960076674135186092443107675628671699746237916925609843129768678371676231155885668881108043381786307011527369494196949397230389962872177466589241821770179896665697417239487021167869272378323506033846706270343982202054058128356657747219666522226981335052077944918531887837445129165812412262634460482292454115876008711302431392717651742398906231238549544873524266702967207318567900365092451359911962050098558223029331825587186072974790776329033542136800281658985471705491387528402197889426541587841593355264374411174126405199527625416442957596568723291915410598189464217402234393486205950768553400045390263285143040508796549863070406376762314543698897519566912324252103932428694552548021789386138496425098443984198377471431039716527838005379362212813600327139639106629067195141756397771495772770297829950496366827365810608697445575516648406627006352606888741753556258407604274221347824304101282273918210407273273236512686235743498149744976910047577480810564554706872719813938289872767826624690971609587214103857365465065904952713923809803889730581561489074047202764872453578272983216813787648823166060166926013557426536458873897260102883265537449432297521594687608545132372800092034087520768018016132524977603102664888693949094495485426097696253059572995726231038805892062180460887210284313600437643260946781422500872364470414138375324226511663098341649000035086506384984374830334398306669617358751620783579792507702821132421541942742619868852000699270998596837283201810842456473261777577577416161193698817268034690536693175036690120283172770494315996972095160125347963075471289495814693030544224748068661195719782213618113230250935029815531537326295909751914796782125176684535963178099034551880726301606655962676784933272836438944437515537383996878182406537943766273479173391426696331106289093026528443963108343876277211425060528950563265325985974994005408246687676629441283680538937845022697373918550924115709184301205260872195961173825627954477469010183853230436890263027837509218764744970809136804335802152948146625884054453595518469105973042399706380830744346666224962894707562645091004850729478490225538244791882004995654514853525204624512909977962773446827721557787229703410664070468847691900256056014821158567173094814468305426777141369144093381219163550423487476166165937028719027386640456602322475681664126069234733348347623630977518791518755978056762025583206104051385003464202481291640130599489768474050095794397119576500444077156440452299369126870561936903207220622328249011714812822119933909230464673597147161744605687905840218667161461070768352782854610822352031581849481796706233468603480869621658375295085231589128239419168708283537599285094503481672643871943505757779372420737111944835695293379586363281448242176711256697301028973392761538014487393520113855623932436352298249031857514663129950272923674946755080219530112172196461515672198305586007189942689391721888027177509520355856511828336971058795703113440981664621004033897101439632121534051226423830712417770498692602084019692691218505640950476762839969280762976140692608811946525070284411090180736424157562895343013303522951333349388350582000295764572785600130179250158684490530394649842705993338693645031811889774415526461817457214738139129092166789534554567462721385496072408662814828042891834120108706905604572226569744620435973299039848715094932184977841071504152617229663157684024795544739900815474260485681117102658149591993029337398998742871327946165688159248757975049760417190992875924239018800205777294741893171602729980928448709367331143422862320383126010190975601155858619940939560433920245714494568248048143086332809981944809488616192946416130414584260081806736974175213933490291252223671284350181354863922202661301158920177536999305469080299396186519068635008094387677960116943434484184213287803824915793079350884472807990675845952222765302748030759484921845180348936381134812563033201279413610542323744043141420522904936134260536673417213383582386501959624470180994583215152108054535910880364682118880560919840697405204459330113044948208636416091107749525180740116604694912430950485552935962004812062035446988195812079899185206497653645420417417338940747911752935531936902457435124004808720039764483585569894156856360298012610359034982032406890183701175740089451693028471963686792432306414106502422780079405126249678852305551308990323970707840495384008717342484148499974529072625026807479493663839698761098790421529570015825104531443487408272262797977321007000941542664413952931653530810794279989817683428066866804298155832213180467823239583817153441128317476064784427332893959854368967859654238444746199890822507023304664088783216339593116626949938118500529717341600365123147070135132786333444111618590440790210828392065487585214351928037917325748985570134659203346000386752305680163300865877195453221820655760671056777435369887133611487148717582152906847247918311830730670643360709150251399012144688802647386391775579579984571256086436153548150571072192448424367805655554581809363785769628249754073788124830281255850396846856748156040110960580323444950834766303986597060680318903218303174716410600187560165291515519143922869228450065406574223740156592576098560361839608285607725650746086746577960606149865162564147914762484579051765055463934535904367835023027649683717567507818867824108599934513792784509368549935528025701577634264627501178961828066183645002969043145008082428924362128109909722133355135220309900830845526408306615885151135066241544315589460961808511305008386691774123885658639586816249794929088699450691134872251818182034343499472368859923820128818480767947843281578567919038273730445782921087768082492937276819062128909175260013381560531759754697716282288220594973811639215822995481438596617696358453392319422981008782291770717040512749064849697055934501834210640814234924017123586888695886409979650756201046877855601290037852570086516274479950982869181182693560784211604213639669794468944258668595723781078862107207636524299186996944386212510501023440188218825423206687137774384990436176957392786007749006194891595225314979148347722435491459989390400108759669437693839851458617613510057062652631057898995020443342508718203826640045808897796493772721099942911702222262744186645434031316875901278530148202550893933103555950969813271801722058093288284521311306077873350593443892481092020160294304239864536399865713934606511634803078574105687733796509920635995883145007719848528948134664012986531733565704560350750912932663453999264238390163305076307070450721143875116128844459957750424668578119147532771224613412619960827225982070791279239710861112241153849277996531382454863136950533852968716771764112680615322965572837945962078984260022961907464333295819118034991981980740017063084653268061341279026485997073236639738975106946015741589208777252467589833990840953689201506142515226459564580985274183975079118461319292810973728629848968827962491023702626632590035278618393324672519062443799132001510483858527871000454202924529948804913705718248306897458180826082049368626448979403726908586342274873510740325956241676991453789765790709469841390358410925323674018093318940160391981809963953893761229786500548810965727417722974922543138975865099790389715178713039550135180113101161771929394490333056307076870006909514477874824138722445671671892651378788380545526936183378084071690321052830804282314192027252167328984060342457373736250160974613176918645141800932480197110017692473542133096831737628219934608040857209033598154987001071577237444056584831216715733173161508838363363194925152322787634192110790809932670155650037169949750213366175954174465539122367434847655955403749165282609552836214260177583233518551442936683422043526943378638175400226456641838839767536067223126076404224352577617325423779692500770126325025487283060843731966697990444801556313375166426713944905983214425236141675417861617578125050955164495507362611415416189061168050528553355606635213549365550203072808882814808395379979351121015021715958017584717593302289300256485343946664650726534688706098658498518152197375693291306609907765052038600371074987799593300548297747297852373188009693794151525915147767998306490776619365569953476465456471962928082725479762910283609526521686474321769201671596825548808050142553677066677121698010873101778555411845907523944948764930783981456637782764791513340948552536379691320487718291855148715491535326868546033884291293177005905745859079468635783665689217212390781431541611295764658969698885376354514059363417013333336465900619255937962834523724186566166402559386135141495258728877297965501050832635299231080726534042162966421746759449542531142422454337757474708854129899210199442463329534036229886451743554463775422098718074523309708233606998142717518858305466041901868189304164775589094913062302396847041476298772606166861280939984538479267316324819274116329006414520213393805966053600571361704945689516555217014083273257348485898597735507399064594620832559269183046949336288656303501976652310083912494184543410050430209946031587156530952955552066306666200870703555034973387897945386605003244147173857053337583992882781183519567204057476675845706222748876490102846446532053807971226699612957239610024239271338406702357925100363408841258027950448843834386903925356852047649177743068858802979567965559545969287489801281971898328133563497191819736769023655049433575961113033254644714640146762266925553910762781678928797671247976626680354274814634196528397095395863723716882574947187653105847217865518350290626065223583912861919355270143526367228332031309821846844037511478659938358376780838913934074461784442396614457329377541848522144636931421025856386986392491116133068078491016014676747646503896380182931711859158609310054021414616438568571270539612068095626890208868172111045488479260049112027263257814827250685057354175603179125514547397942588269617953949561188803499155547941055392992898951628119072940276434344579744514957225392472546500104614587837338894015619158578488960733350529915850002723769035238459415966078752538137505758394466227716110014139390293792509914435789940456838359653230164043033402589510876419734171001421471549610709454501657889658550702318768902887441859942737214931136338972939055262824503408815760940197293723663481157288916628413333718049586942219187252590526627497902558142542908752960750186624092871773534200264148976645355791094945485172838803346704059547970705137211658199169547120178644492710128881843155108935601138701787938654940336338816584674246706133641265449872965085674957322546887890249157085898697834493351010262955711448125065547439391606857390800063411802117302773701570440399488044711212675446079992513751059757305115881230538095753036000884249592553257397207718916909389602896697910093714922690414064200901793820796915803929606141642647054881290193319208766842540867064628015178632410562513833343853441975656727735076559893728019783863779262968975688928123478530961098273249796807661680056305899911875961096676697336737876989493589678697588712227682167299119578995848352088693820681237400828768297717124418465257559989960531195166129397052208238924341051601573831831250270169561381186152967247279625556861639174340829808474653403721444790569534877061019221574308457311144709622806784087721237540624730990790105288224881837450885733153084344113339833341894619670791132698233500757977347022746079050424552538398424965150670136005516348001197476155775547042163719093241678049172091622881493595621137692570429755225671504540015779318046144832375361376708435185758969635486302631766631239967710582026657772830400588011546742138385081029161683994164120031495497923276816307020185968548222131042878020543925145851778714277786571761174136638665857758110205875495715853108310767390260498915945673247383462633439884745747245558877007072387953220188568341446159433477934176885361414745463342100246995987892716632469916071101584697885024826553641432470396308518764988941376140370895215488787626667629900582034218999422315828987604315378708688566779474534408807998346347132392390233283523734914364087026987865116215415720080526203704314697702820883940389253636585446368830962479872177949799077644945064154152261899434381768095503674362225282971016538129305644519540238502198957814607554711645719130661291358478627145591030370083977577812175467280397520319188039052970939574745852376675390832354313790944418363408871481958044224712971533963244855743226202930317812454526966235168511069606410626228316107240247240287956287092999815343699821075689361136421290180303267477895886956801298776059585098173516487120533303846160791853770983226393692757640629879459658139173378016118095306708541863782843046842365426630823400093881984788864556392855623859799281337761490841596861091802271851577120174848740790498157970731333121956816472754449511814576525481814945961134860842512376732740088837081550776208248073628159083474791734626566305464016980124192975219643375822221970327929472633933055130536631585139477846831834464148495008978385638049412537749169081104586171784844310274923926517646482691348433649196179023368167370237985780533839335929493159307739330849375461211733391079858577527982992733829025806356851592874900559813760414948701372234193971797873555247873711289990558125105207497351023565777023092185182134775119848595482362629475021646200035477447795084717379564739325045373419164950537653816928315235203934614744142635979373013075504808899068459641703978223672904688634313106165292934571737527598113397816777068179009895619195151344622314947678568848628632539235612010040475643851562134329238491736948576282357700354218890594509382963540880530072194063338976721521226443562340237531789957756071832447154400380036469400682840218867343226128662440027590806012111696695170876504495099357954541145505995227467656508946731719763722052147191554027913777065141224974980189488959023285062713518682738804904979456278157897388662217028261970870085303444707244866549863143448339415143447458729772524552866852474246249827936780895959787601673045601733462745197536780262363250137213967508892550313895191177120838231860656793067193401971934997813552227932545584261006688450669982866694216524745039621405548168330534938574876980747904386058716591113396424339987609265042755672188709400500786796936254802620072475455884316598893399482823909212345685150725920748887727076630400018567039490230585905885096403799157275763802120341803285578720213674072354624206465585035530561309059451009906198779384929435273717999711950854174090329296050409667874933262033626461397335836535837330775441735956676328355312762277434328148515368363863711201890825716431326398555837112470619165292615402298301276365834061401160264819177280733415179953422739176732470252266911356876342505953583632690773142315603946379245002271136027028606021547037724702033877259001869380827507842394364567504772042192029716435108696414406745829676151872860963680596614592901340820183623758050611811556638520870836981237047952910440931904363856725539513390865800886149369569992659875410352574689414351712109735277779799825626760073432921288265796743057383192286847464695709087070479296648935634346493208936601374876139402747363877811247577157119366255845648675070777260930619124476900855549112208822232689288207205429461269255976787181255436050067338076821058039313533535167675502771283913575947082548958514966917586663269808942401209061137763556854133951598459733615780462138240696948965649318154880323832035595801250775831887367443455493734586236326302502364515516153947933759383695032243828123458797634904555445216784819129860215274879646181329451107492988074893892434769093406139892520508887094421047583263183788563509156974715955271117181348772616674401279569975417862380189925708733052878093348281654450319747934245259929887250883898457452522837302612216843856446553287265266135485990912488951800644336764689069525100182608276546812192570036081136843718477575887675005522471019445397947614424967771744308944874397863967850232384480172083559415691921550783053019091287946758377076629663349092668120889732365687206684153699806724334777834840653884588225249522301828695001934979448326333191851644950080807661811597884212246557695771869969989801275117359325140532281682692421961883828143081026579519285258655794076848575679933821630551631709326132790363113176897273359412732273502434431722618958708396498488119074357576971316202324023180242476053188509882618690590501861172605669326356421112628348027682244597482388070162932546315913468456245431716871481555332836422655058176093342946290714729396132450612367267471476699581497013824942077545119318834170147410865460045386754721391718940613192731133352098509470038025379384808469883809675601113871907895929075085286423224941417177652670975117153336063032133732296919155136828383589895719348046223905906869757404476467975738610703459713935103239470169008974485066818031072722112294114008719386921616540198189289368526996469714710585351491474962776381592292521762407603118458014742349999009861998409685346136041375376566743582918179657298322061582419069670955286025284111635693965629429587150805048291463667869660983684095401933403348553956810578952219155723704099137888118510798852759339383552771264782452874471222288758171911373955048410850334159887101797848587954556460439923898912449407763371699183416346443635802541726520155361594872768482769800286550558736858990556589679069268804979317552692409326772987787697471524716964516428681129673825877747791257956085122564415376929674065019052484936956075894139388644731913797746698233025583837205852270494144402626763378275217730105071431464474643609618649284646200740385099863893512080438343423981285349589629836407791007291124945583314019493088480865189593842211748201198640721816303231674355246699146410897217742393587725729658638222081876046110141151249896991280885230440230910140429050769415972431568794227676786499796253315938282223783413841615673972945202145786553748316446166545117581888359064895899902057683436448558911678928776823881875989308323419586372333222129993173810352782342958042816054020873621079912658236995499635533433282630826886005251175243927825866299113815179390245223835767796817042511595000247539538614773524385969159335540983766098958857053073796332579093031443227184504503058161329618871475010239433824344379048259787065204265383691700363979063836067059298672970705490844815261954641625523521430981300046416440534694372677346989552798776591273167088570829660123836330029202837759309034739859940457213999766984492600378847217785359847114100549575936461778844918815451740504308581454355365828626079124226304029841929478908352767204289081496973298962800984506995004538588418615928782697416601923833492477966792921380257697296094698612681542420314457465570026149892041662147449610745357967975225759840895612696409899965802464416606598967121713842955129341705663204508572804299504380701888546239243164886572562143522146868749815426356963644206602052948889517336661502656858151314973953754267756502862889147418443052306198818456480728406990742669180773449394643346219690258068211410406530327915788403829038245564842501525467394552785248287416843310936979046823464079700343258469649192367964250602941665673803428923025914924357068857792064573197929596090439756055583931395248200995048637722392392894925963779125987636402325568342914254695135778564007369261611972385138581957174060690920792748113761370817690409070581850392844025321190663539263675975700281817457335597443868976701213603720447347894059998596888550411062617030581153879898630146761095698863680146730479691079901072575568275421024375702582771439597244785392925407935479238518246108352933208438084300581183732985895241413168716409905650355655184854996555955816424487851029033222181132983641907260344914232114576277749725150431876523445443164426648707121728973479921170120907230480208103663389590828182683239591210793925552858002829668612935565559193957279599486927221676382631735358503790055586402035243149389793194962773763752657191630114786277484970393562348482139168352150906694571354152660248106738371466037036888299999466759765098416591962314494877736596364755042708447379316160611142423837723987479074314195261450439563002267571989517609158795005960450722123453359044944229790228989233669586981885307155248212759754394857428357894580377016182452037827991899423791412207206623655777077677275481181913364768954912487090468514445468236196330521206423038435034002887025205473771472594159784716654735134301853168424744114612852644949047810726261816473481501608878586049920179714365230683634730929822691963377552012467569748905314667433541870796647112106013771050717355881723499759148761404605235174917093472896408011945631783691478909177399207276371982137557524767688783735654058943224245842914812011553608364564425529575636339403674270467744335143350714693128267659822369210517816206804249542343141431713529498211524971513877794088272528557300041316523233279724032444602022082277574574509587487567923625643565914890962511623160423497651678138165789884722239618583136894743603535470438301305784044581053678104499296890444668590061910299334830282498615317561683218373171558090111129080055358676649306429492919916565412653338622266419973936597148625135117791103854606753046923036939815644601342594754044782618290633984464448142633721470481707941735387787843177660107660375909418911549196220707119971826240547113352035188472842550263228081847077146682378803737171216940654134603338796050540844560868514409565849593916781085852816307142387232347985022493450973939435760773728506288764952633325105337371665564148943795792443115402610825181780598723431542424926856848917279646472929473357678695257019612260497400883830324258225292228961099770984687925516940126379660346573386084703925158872268170738009462613859219273231254185484733470339483498739197650988055293917153833070102340412616286459220911662516814723862345025148390890666036867142205868288607985117404486397335517244126322850703311615224833576826854625315003645469359776036513259527311244273977858813076025061582150307947440655351517555565098470173069885694392280376646321092118423118500075293409641529376748071186375768181231649199417735126011757569731515572462386115776909887781640644372170400650124138304206107001603019021021356692234856815484403976357354982986491338774299953416692605717429596000148221418293232931686768609098313948091312248515860125197688110216637493735457744703693443834875111043692000710423908270147233083235265605278808941968406591934922427287344705365765502675835075031281222074701834650693601320179795057382207735510959236154293849065609531957394269615974698216000019186127527719321808719501725539307122848544092594586398056149315429634014546527574363390992902491992761774097331039900048097900968873446785681405609502108907874635855942569217602836819873119312489519726814171987966435060000194621959866005166902513866928348644573880588730941402372301671916930487679936701920834214336350379184174613639818675943238482095713518685761979077161871155577064852269610707139616748849930381540365612864580307396138772404577839395078871104455014220834165392569968724764276034381320480642285792322990268639383990070610633073104844246519392892809445206607171274546678734971181322959523568533900570266092078919142206035494611679947881452839955875952834051186991394246821826810863547054339980163416243042818387962888397177944785609701722786954419870542393364805542199805903293099834742604878593910177555704635160108753287142848416475217486582567967116752003755565850836256167827282795901057290633284150854254997295186581364832954531933659243606308454653585865131047960155158899885340248382935100523446655640776156412841034834054469578567140285326697166455146804078683155382015074881539854927304575327886623024552764461425919133203164955781077279829278689675060233726430441526081902187735225899307837432060308282276337237854544052938610487904100094961044936945147159257175152401028776752998522681092884282222643958181148873854761310930255542342781890905951560995894582916870363835142389007748469577630367560069799558766988232908095497814452236817760631182075377080737860217795140979973774771096615290080901874599557898764881945759307266188837971154649430714448904429722493888170963019477254546421022205950162422248541994568230442452334809444459376375252564003138927934149994672503753670361329029721669257944782450551324992145242789863248602736716320931030737462434170764296220469441525125839313596000514358788819863621081656927113563060697873434922259525221198144233003577038003039705723510850436488375859555446897852581580277555454640758922891750902777314494613742805666381655325755136175884522794430020180930818891498137643743034077158909417841063951459614994687701121156461728800804230998002029753096465066625960684459131538834512680469118788852852632262563023633161199552806995096467802049126769275551748419718007433548502829880526428467428912801053059182181468058922030827758517278126567708380660224647536767624619356854306073022819588114698428190791542340838034030742739229854566600661790636891256361587442447756138805920683658204840816192038266302318710298476680031437906150214474529845479363177823984587616782092208886361771199448969694790687652244783791856077298719162273358662806701805030953162240433675234705037516629281786997524147793318424064805498215720790283567934919092810932418249231208956990593772500167556734371110281551276366295885702722729752680090228358475170256392444632582685611513660830245625601930299968918682343013396044700463536862727989655018681589333788464865823395659547195949969398481587543828542313545001784180097939350534005269423667521594053531578017442318367726971962574712780718398594739692342584521673732993492094777427744684373333486087201552005387779652245316408230038625925415204868938618121406293628271866477992808919016234635100046669527823793350381507717018485333616989771887308058891827255051072434552415401658947914246394130560359723826365644283445834093835217343130918202385993379625931103324856538712587885133258518999517197810626227833226706635155911242871662714584651821114668663140921085787542040182350477496484875555250449654230679003066776574875848013869937755134370435194341499262306778671143412099668537798953835888538508801663848761222050507913544864476050743687745944998676169652319313696299071852237697335194259820172318156833113518150371735752895183081122922341267014926490376293570011261630768196759736799698878037731213381251604134188295985986135517449809985010693334465259773807571456516982572387317480937157881203746633483991211312563138146797424418430060227736962617474821505328212629164132289968381491563792561324045124065121670400610336450004850157663069674363383773759599494206095231023670879319921215077518667210147805929178385389494022283000960336966173008899958476119206082253353370650974006563147587121935582474720213369760680977473777527546884772774317098836230577411771034105193211752958663081530173315521933641081927479530473974907214855074885286790767061448270612686211592694751593134981849568025239431343425962783418292951813686965172482870096236557041982355119843200781982713261973430480808590405499359574553355111874100572460968694509128861611194831503683523090044259332346347959991876499898533719013244816561839386642470515633001115846234322101793407615021290581405613157290566305572778643384631116766040657205228246140938926224592114819072935269289398366363432511444694154553018020910509928315856152997097556722607772167766763310975207067585793027398018445609007311048206491670856603925554757017013735504494033670998311956220306347269819561854117468053889808618951371142634310838693766913338265469981934194873237898076876811556124592658738866780197869780995227392712509758733660210400987291057287772115727136885836693358049947143635661463004883451360424445854048536767115722101422691526375267714187798904409213733594889050607401907300853611624727222752565674229390356605606785471479344775167270528146129598575720368303282193971576386470592084992123982777843088228416743645512832206940250639013664337773628864040309857261447063632569408002456371711920044517711546847003713025887428430390359671655210470587039713080307338264448125940661777045606529784052123786638397014826698003477647206157704013229645890304133026277677797377014570900536104479769782457989653456607353035295439789128090744651389920548990052784183542650783477907296513647745795430769240743913732524589765120407650887230107484939150396294416072412982688847681068280638826953609754812751392690368937525295473011841862217417625790112528711551266164523182307527574984983916345145518210555608912716237407663210726299996993555171071899367670952487140249141060522341756998679073378281484007021836406484006837836930253023960432330572325356478689063008266089894946625774283050090023538246513049264000296924163544546159918232588375317485887801991209951661046356399455977563493348784127731529640137130066262952196585596938388443533419092858188028684595928845210505164841067930578104618828546943772708374200524607295318660745982636112494353388195649462620549280663647242356745429984254265621302469482633715772612989343221807128237879508316819837392552400627475588901203749243494759043494401977677059881429344963829062908021095274716353313035611535815746765418324865888152459605439282375685433164297579997942101166873253118823709964559609117902703406669198474966413536287082089204109672043937221066875316465568440509626471794466539268699799913339933185105686052800642272591859953170586541124687413496393051869030322164561816263506852129829831634230756871294022158996143980947456879225766566441573141980489824609029620527433312007151498729985545883087339793072166642128419436086954816224265791936900649214215603280045796717186219095894892030218404025403961095877599821550932952754859624896432352422307774059413855424767271791310849969570363589809006189167901558891077767460644638850606110552534547087567469265957713243599544107874364373463905841984206382280947880065750239545137787376081946887930041765055110543934393254043794722135702095333035013430400726572357572044471082500218696573600225540996762147637944602735352216759302345153763805195276741372075556468806938415471089003456262621506234722161709312477791864524826343396217104039533001107352110695712148796318995737254755003930663381048431833984946059142737495017562555087813822725643167438501848718317888682869583557334886804753998656611573297100778275812473174057414433119280102368564495721245935833539688441964218109728391533231334714704942659401258770942532418080293847004794713397616761830696226156131372473537805516529864147000125520223696718786979996656891054765509629721884469204850648883661828637348321721473733697865397883954915348251227210878214578062602164277718514650192676119259586822999852745770514151981780755746325949018615875874355671627566638054982240006483735756554894889119267936233608069083671213399642352218202236120943543331335596232734208865104480432514507411716249928610067929824047757754477822006841984299666247941769711651346726252496335885255911120100431207173301420944648065902443764971519006648959167168231253398622134017865975367291709939557703798505035702132832385757501012417650140388012616280509728064492381701525699721207703919647507767818196419740343367326925309110279022194309079348467360524515666100320812576989630172444470154081116824008370942092685336351621598027678088430124567026778336231181608533097396844584878849477504470666435352081714247067688553405827464577829235864940060403709533045324614286397210022706525296156214880699210275513927026516889368960294242573020348637746423268772855583675581134912317883237753918271404253110479294660447056046319069451356273654775475711652472647366008372123082798684836569608237497005069875527337871484798958999800647005296443791189580106207143536406758475037607528799033292207613784586281709120689708453395498392054987736790834630800091210995395411154515542536625772472996733683166884864292730984316909233149864228865266566457246867015037091551664923989194396320691651929686542112257147382807255084281431725098328498534378149187103154580142850367181672472001755263838299275976396161604101075213052034801598928987123342320010486497224691821337990223531762822730860847656372797810662612009279143246111000790517370707838971705096066135803588337676406447527446303186684514822305908777068040831888634834552880172670999075644356995106501946031007934349529672496072846678771540180268017059573410276653968056888612109520852109587069776532037897264649078364836810873157071209362479703058673859230294378294974082818199173770797197204205093831508329064481373777004779265307961727582123403996098018835052836673290335051839134606043764022462113618209091967014003141016071776319035356279277396899216654754156509558352381704917433445800840319763439033201236363649012509035087132288431616546476325402253917815476463685722085577850476039000782964763579057540324226894359779158548011855253872007119293934559011783544391805926847065215598950812911926266003211976791752761641404512440331509647204793883237158029231475808084597178271783856380765847515416951896549563055178421817015856105799959831198251090246708762772021905353227216739746397598128894522342237327193660793074534458868055850811830873258792414427694868195857715336680302508435782080146810919931023965604997674285817368848573292323387714221020415374575982544731749692493233677389783626450141076249734799590871720646192006342211470020159951948113277356322045000328296999868857811733044819457742409036002763873562796420607443157117860535646580562410362561144256005215435211213910060517979637143935358138818944123298002763008153163632904987966818146130765801005238567213254578388542337623036043796452153444527749274355736690311946533266391176935719902131115012380912732515566771771560210811506788002673835807478046901385998170571708213962407377013532721719620380855210148591389204610445454472293515221328469572941160854652712466306796523549445471288700515713906678104691874650443892089720660093352162618958452147742748081838176147360606797698965505589265395775633642674823265226837916614126862665130187345486032771756810869839402853651527940615475059684074851427665146835618651144422918639159973992018105275501138950391378866923137364365760590874977353252217621595361766463846516641205920723890465296608069793582481723082921489755780054559200309055262349813100748834585122254681217065374440405185166021645811590663024187267713801373300329768022587913325110343697139598722477534558935175444812666748617162790236025723371179533604565252693628070600879639360547658640227308606545466855781259319380814443689326799474836746285895595566807662404122803108324579327690328872770642217906497857912440801082299852795561378995862386231534440152349248588165165155687376939636342003871751263899516196978098447952281879068193118928983829146523040704008091427363008854506281948729416297907172504190011928298518055186589471269344589973761733209518609521798923062320346226971716591781767500093011398499774422490929182807992379557041930481298320179700905494058337676220282451746423228698021212240365514242410897199966084734166539185831001021791950731739338409624472594848421023867905455573501326604624153559636560922451118750059987600733314801569907703796211578631410765909187151732350275429374057566903597410728158873801150932030503790899879911475721305969039861775859843867855904547469466143298305701538858194881553100911523806987494653511794804304184282719759264704442045324668105155356686190082156304829238726036433496026901699369197520173656349085347756998931698663311939253719738630107939112336727856262120153012582929486153953856725409875583477226875573704773000228782490441730901855025570569015958442736809132873260363099165730405779578452991691395948345284155842707428726376171167853253270210378259942965658480043690600545353257498251496062186813769536352224103884064978027355471096624581599876045334327725667955282096597797420627768704371841861469569660053753778919190932880572885200713356977978087425599882796736377048552111078374167508503234929273611891769645836955789587775829710172451495847883917547802084660837256932114511510290805080419109226686198532872166170094479323362884825563531042751817565556887543282591662379180942826779282114337268667967677286159474136970051810687890729968751096975822141704969446714203586064108650659270127064778031421595033875248850583737713953915456981230145339934678925238164466790354216426348202187295907932213687185857356867824993968841519851688145450364647049847016587724933579583986289221632881809972977173951896495996135782372180001346782561916726930416229224793515601632086637863799185815533400506343013875904805782925301080988282188753670802632601243842972426550302601163201002180947646176098117899212843686709538685609321035866785280361163768652155996483881377459839205871509386076082325321509235390592975782680682620507100540101926049858540266184478506706321810593630843232869035910028989199311327449956800743985070984497885934346261628457597940035794570600427284536250175037330403645368619735749536119843765967671711135742743031651062193164845532014380363507400101362386661656234210820665453531880010147811591336515068310828390338511634848307586786299014791926558956934693103255449354669335795142802651556797950384758246326241104816113383269840792709109976185784751490722141704216579469596312772510672203333734559640466271054188397671376348221561212504166647979354744008530141914553170063740725440402839022568386215162770973627895737893859285101841623149153698581807155543801257901819832970215825522089920846748331475625234741214661961160890272095345608914351821336375280761874377656034716873177554444613119462843925191970683639190160284269803092659327192929969474681570525853090821354394842383973477969564521688461962759721671596270762424534755151226581991086693062527279285540255109400452124559553622816645958153942435025032237879132731539730038859724833553784622375181320551987615151043968327225294431934458918556477456436269066597266861341171403734173706040186949108833700100488043353124008823327771707959476815555648036320525749601028285857694042635549314509627571952275825326171255196923646023141554204000375727476668493469827683400938205272658177403329776899658497139602780301242473397845343525245604156372317625235325819823958233084856440349909221630360395852956425708253662400269323635533506103073194806043252638322512455554205638445935063888114248669251948080927398468616059269879226795416203421168669434413269621934598037980200813485812962207319038692336200649605352795353387243524073122605914254301058927987589788501318485512751077647919669275851097425560219847987066871312876149193178131982236464382119098550734491949201949178731900697787683760938782945148979879864938425471982487890722082971165728607379707642423387465593964644445909915950237418503988719195180140109953213904606657603473718788691301267340376416460472465755554520968400508092633798157569134205738860205039613878617636453940351782728863116830666348598029386058587010606175990732909065432265064950670974621231578689322989109161673432210036892673356892699901672216964376044635495946283244369046021532381387722083802038922881262452585274994937305514588483613880976253582731968072914058000245967661198837340999443845180246553687520571085885126493473489882435921041830945706628736450703805736785273737460165414489033933230402429018176533467426178041958900816771596058324665135717317611539858690399664166768670906932617474901779351651208812073117741761769432548051655312490906394541154725743242617744031742458217653404116722271367520057056126867907089625573752081339576823492639336929943252183880648249140908918868634925258132605895491755511757931225849274088711806479412688725565241716951909264384681807162676901719866312335091242236711320773498603080299798560276702413701956802127697472701883615047061797484968453930318106721908341596027147249069815512729925862612019358502639967579251670656246114769875382159239739014171131383108102072435351547639583724509557706918659005217531093994331899670493171195502674910555424661629201164902033194550112957311713158901826758052600052532775729655662081792343649229950049316712424358099190427441697583410453003304407455518431441237897190795788723050320420070862048573963482737775575955144241752514732157689474818106309720230883111334073138308719562049370452661904770157233376753360226480073121784179271784314016759342303991429551438430400391217923549147675717116568697382727709595589622359578448317747853555965681425722365955501703362261665314225589272118655429184540967475616992636653332002478984674970202559167190454510040701281273929222285061234670669467544409267186588190496780208881659628348971375725429255493760573549095255860359816788802085302451545584765826534960914121810652233364365295636435259455910875127467166046250236096805807749240639636034253543313095405296950540902727111303786738588583679152573079312584887776333575663722569743370758502503345438633110450117629108813138599288581426073655832950911900554643359619129890152825313381133193151503628282736869195151161411485732875862284293793772672125769745974887697337025933228697098939054276545616710831660634992944133633457105973758670898184837732169922602119251042574273786799780274865846362576781409116215874251541497271712773295275163641144490098451463264701987477480900785787927784088745662444360832104005062611270590068020321023919482893014851030279669933297428200959755737590559630818462303827359025569582180905013863367365807363900260406372298684645902337222816948339847085652621640891538680464195835459043177595907147695462086678321395311867194055718604507069916513505289421887167169011460736299987358532237308979860741094424704388681240707303039790655293299664043941503410477221520358328081307560578452957692414817964568031405523781500464096237615278862278962265103238343145217182061467576245430488139362037574425104108802289880393448640695089757023101778324729834339764346392348976759562432235744032578744698294737907099351215139691760268350447187088252772897322681192361583753620435874843024070469724880210737986349959163777263132582117666067748303697103299608921152332305456500151560201786168878679936561934292111988298580995895899700974554462520784816430853256840090678015366644482210609463253195582501187737411842634209869946300154569152591134766001153488371541926507446151435859017087848055140479004978196409514425673113929914471567063265211577590587762837188387217795339755048875648018925394905040394267038360273796617570398348685975037508151331233126728454726928628470584218610741739473138313299686754679425419521904413572568580146250893491166969019791025591557273900296597304133634342057553096251341848515114190096385711292676167021964284006739453841607302227322338797842386841067219950705726585570382663869605074702531268174202062838349740809337187374258080024425827744272873004714637124035643977821663003138551869888252568472554211259571657577784306880593596370701183245630022582225434594650949321241188003069494756871626871004633047787988518965034314062229904653476856722871684078021013621038307529828596201267034872272759296002770996066630364488869642113498266394682278876955130173109415116486657240659371575131557616480147276293818611540645684424378804105459227189660046413064449096055807785632241362563159451569442955296772107487564096311272533961650045076534826379552949686774242966046101780737598941585491806277994891860805912308249721456291682663640325955045947115285567892676015749926098549756831489693831467409244147797507743834358052011248074411719452748190342783601260111912697267294321988756847632573888148727461188978343860252952376179668545861803609494583793129783806480587904558337170750560736337785436405672175921514394821416773859219299309639834586777430969420393926640196929425366983615852725243511578692934454570550505640069222396588282658091533571373540859753420181096137932212726425224413360434096297732146576411591635114372725836400753184595936222080217245239030018676494521534096983990571789495987755236665934468991920307242230613720005429253475352746272174944587964267020614394061409130480822880679252896912768762693697720048370095452580624275664782875204074083692990831499554573636088327382675530712207609795812140847868345654030738599298406790948763094637996399330141373160149156093414970098826415620349684512134632077388005542928188316124788047903394865441675923858324256745607830915377144675391811679835085699926357904086320812646900534605932340733356336210850131337726116351471803948627838096995650845892242087703507250786582366063926332512940971477051526256124481364829586928227044473423172056843623992071120712416876803362845168083528209135726641463509208734717611119059978895780013837321647463187419193190741346945799869870855458933012935957134221230311743475746344981778007138078483838351221038291439903552491497232592029125704312911214398056543381949614425328088174176378895791867386106893750437662332285038303546760782789400781555689006355015025709770224645563659488339192343634037918360555835035953126758704162731216448509709643041779012040017461444196732966973863818880203816295234156317112101565634578174795007839840014747064108796153770971182476746444608647681431551161180514619184189184781554031345858467927008478440860473500051604572883287420511705397800007824374153605007792527959842320146963403761502024058295625931744709985921021095959248791654589849764738904725991555405067396535193198683855938105499771644447313332229406147157610818638675257816534378651640421303104490590149146622802216784749647711360995600197397485870496657202347316495343148355849656009790234854080978537783383110905152302308068400480642292649149768501903111408867850508996944916058809817516611996561888081065381724909023406634471666031989296405536222881628682997261173960862561826150476535244402215156460154485363523101287979805935909834347526051902573445870925189256090925873932899941889746613420179024775937840576529694868598750473723898770627564190869531732107365048772242521226025204836618275565548420215268789968518054174062951410232958075998762052826712222209009783739414826239856445692909845559112968213360387537968720508630504483500762172118314533266784890653816558514268515681236369393955995093892974252916971389683201341090813719338940961197341290238737695144163072114342415297135137124254773761103745704044396007545070106412150748365338983970506367386610665921922948723283715848756017673820108946146691892133723827728487037000635099447815421616370443956944176714514251664471962103303819960050343375842617545435442663692651894389866338227732153582486832026106859666591121969707900298541619322094126606876787376120814748474912760322818991379150064911091847954382328115874257544492599798267678074203127470936113878592622350354876865230895306327791057724620611530935254501145513519669224625394180391392569554954718708838862100061092807759819431390611021776247096637654770817938201933877213200887473075586618687271870871957994482793536603962636133585081703067778391195710941769748327642422997745706618841986348560772661363071391182337819432433964862229896735018105391832028411295075288932005243949413475671525023237186523564431613682457381223340203759699055051562829682322649637151680238366969262152185292381131856856800373851918245845328775738620422120734723266190942923942363394250764701830592578589068465541068152778445348879911062030426465742746415742865816159326233376273484265735494939225472120354587500238392716652551391382574108817298413102693775548962164035842182507636581297145827130394508035581676713118971419297948752948397967846948273083524172926200125378444559892916265543952338720535433265295846267415225205027858299000194916737536165790250231445539327180619225685877645555919584860400091905329538407704629246655590577248653465637257635892309180384779477272114547330125461824703530174805823163314756082207353539321164683415212409638397506751561673851679772134723037693648309188854830218231632679906081340305591508187113919163245200817495903991697309959767518883863676704349499522660961691844917986925982655648990092676180505866119240110881798262652169774281672034202331811993452833139824636409798746632622324596476393036117691982445937853798222787185262726437326887955513903790362636213112006491200138471492769802075004889534026079787019204973976219048675596344439072600651619951112368856821519127435204411846367604550387805790877099533772705727827683384529231423625273103643210792527672703346535349646923908104842680157649548093412026705208274133589797936197261865201062253167254049958939721785017183445511912272022096843645033680817340231001898955053079999675003299945073186430470993968968786359854347447260435513187021729534181326876806580851327863861397018234822846876546241319389516470029011556700435260206821124572959089743219297859316344476417283068114827093770639994333859694922692294672752659665364791279648179239912463604052921413405668959118634175014189813636486695359305832935881701392576213544497191085453055635977387941173375086493985108710627072395535745891066830509051187268555020766403720710404076354272186424797139321812941858785307288241979280407030051588390949435948801666440569985233142215776361950650321368225023503028908113803097887540807158160260118263247269102904825830330115088859937894431964272572728259668996003565247091718066517258865796214304814492727120449896242618815011880021726736588214914023818468543159856316462510843087060606820800522965935343620208650113911021747184283690248029305857796481208781914496044560421047888300655375214124350376677621890406412207629533905003428863598094926402661196822051916215087857223392553932053939444986471438701249892884949747779848679652399618008085715249296532606072402061181793653354670971271628441795822099368670427899166001821280921673977051584323970862188431415723767189352469024882822574963145181831542768470866783419223504818676369417613660184546005952174470809049851840941444905466170970968926597855574965954528180720794424447790665357081840922478429068916053541370847058169149416022112625789665734740180332223271038159189776209965289265540585416670433092275471951426746141273106334389086755683952925399276795098682590642481702705614366907991283694083634831295369621241294259715247969341814898184586566353362302098985634564776924192785836634961878799697182438016476287816165387039699218364758403814800212141314844805497925332166903783918912227662798570301890469949376495455948424885148191933572266886114197419219634377936368509378659098261812527471276191470995248833992697977745392775629156642189230502224310992028100271918102562072627075683071724898316677246606859909183961430751247298618616836064499440511555679741766447822991017604112824580199207966608759165143711707214516733557807136266388739275666660974750668649428633437856656578213398635136813795964537056827531732540362562739712779337156262428450925279650096157790420464621552363350600720398687497183728219388922122016185776685246727570369760406949378411303200600898012121378911483156828666666592178170637607557936475776955161107241858953813616635200670295169903839312247388273957899229626662850925499500104809988239660598083529043397696261796902723682338146738760129526304584096994335111121402195984803852802391807103678531560296186688878171891985837836850945322558034315605868046017232401246962952905158147270967710451136121910635888235790283887582120969579202455439127461300593635883407187170547373933648969453707798221984005382128158463003224933055442096305635461534346992399455936470918528853673558627213893742234336657613548135427470558603920475999737391433369607856074200501690851874390270600224286764510225853109758620078784135679180103656395159892018281261195443378360150759977427319494383802443045451926061667263750856971679217835536823843634742666130820985938227497342018887134427077338439806335609778068498068943073533672533744607402245280118291931095692502324875064335224172473016550468058122902776061130643270142123311789326028053512742199341589994497999857415679999640163057272993422100161572631588221362963727233098257125373398687944089328593047160976855801999557885112410765462429326591249262881475368033847571456102279139671578784246569629776176777323509996028342300608038943111044357596160789615733681843321758925839696118979760091099815843443211927485873678644933883512718896818197264773122440349521744663199969107581855902827846281218515341182463970817252796172404200495871487618059120354089037689655091769045790604376481745663849938357752061241196924802366945122001375296430701002364460095694525883896848789888299984907792583849818677096838280771817667780237528003805535811100468361693883289721090159725609194720603986624926612074016596583073714709655299510882574991833553170628444927994725058023921339653072247614647825081242792013696574104814931153260649414620068119177968299808352893692877022830343317794017734427972789818079512790270075387659969145036473828320809820784104469719463686177772199922590589479457130720238644763333080095556253535514598133930195958818360237617825435584040504583876904662386703658234150366419614533565040727220349342036995864510538133006126804093584582849986128232695901673733438383445843760714016668724874277608859484508746887164418074417935616985711037075010448664413184256415685341662039012045078968029419028875409414585808060243460109205362967525821238850250250047789892871943137387548935049765100701415948434243811572911771195787868776969132313839520604204470061835900741513864684224162752521797489809208262915506259646677610901995017718127223676425458277949208995207657849380308545385058520589101562038455409415684453892009334473124277072645749537823113073794616949186228498544750107533920076023486983324281795529801695167624101708002861855751668555622014614955826627479320750679103414610034923834211255276083786567611985968842021208613415971357291957139146304706719688507179595600207427827460884859151456968368402932292804132194042410402995007165259361331208287619437511892614840623032734285028994167574118660597676802568532102642442223158339958491718933136657318685303421420497546185585079237691820949517922402357083631194989341313568571661898935895390111861613149610477887542207352963829927383882139353120290014981752611664145306533473206083099685347299155567351060591465223956570152769039548110613797843913688139083388338900814496857567269680832794002575118436095524510772786546829815948444424446873136636427701524917845568115791139852470815753304349682280102614502438261695884449461095130785731303841653034296631926818542441874911344025264872321804534185479085177314026404411067228253208185998902985895659468222900929127775412390248523428389279937837844779925727309441832695898823671403601037916202801111907799278499591995849254398717485570564410960973278538114920838172032093186646031657955435440003559623530441193278103550037132225542959041165795012957519606495156055286934436977822741267492402326242171276955924852820491815614462907694422498873833403399146179393051270708516685521827703040121880448172187486951648097375064085060374776874482824366980677069138062255468969525876625959311257814061639696046566724423592840516988809154549599157276504832014429521866816708246668556719493850820096429400455361512342455525080252758195738063282387762800921467431843926704819676568502540212387922702819713057174356744505324501512312651107514513556230676112117354742020099649004049713706366186162971890377564160479808415613967289242788428076159402997452119046699362840346321339948725352441255456544941792228717292557744526025520018870676413965565096707106299210191210776250984105712158537537995868121997555873202166283484107055758099171686698464908854800216795508920118207872136329075560375357596007073202480079161640336439472793868795001046518196405929935881969300210561847214498598461822915238340433724475792026197517361449206963412188157229845836876090880607502323391858941930586016176700099861259761104585230281949282092648764979173922093777102487059914498202412634916400395774336285511140326806445147879121802744567203805345897410423854934577419358873889721391330302786733418373221772711241353014383922924976364476315412490450126806161875843670523793367973634597101573860308592062355954138295647311307622110033178581109568584729775284235854887983040513004042250831671237507693342988886061544314205555084510811308643582929103699292168191376435245339379068091307142169043928489888287002709241007661398897613809860354808114209541386550427514754305372035901836933540728872144465323167936645065734755236088270150435818597658188685174231000939617537407111739768278570559643826243454915924353763781214164389389300502389102771602166388014338446668153000619606121324053881272699861206705264682661544629276899235631878424317140672320005442869228496029431430070525697302667001486261265120204600189812982858886472967502384619573431565144185294807496055813942053079372146601482245999462932836516170047323922346597647378199617309350661199006716589361822848856325512001938691808683516470105644861902939225479082528079132338741220378037797445698850930993657881116160968963390800245981114673490165688381138930862010336828255112178267444824420360509098987056130137337495273407603327420331711823788802872379052467424184949992538762779387028885688054708109944576273203136380826276671315005443626333335583220244576716538635523175440859523271607326061299224520739584835449759461076433145771524045282373832677739105401571396771427520021456105286128691082136581877745036596348318170301476263381549327381243391769269227489737345224900930559398449301754319162461627702660696025687109079985265919550860112629140708518085690207768119270692329555421423658663906404872845729029839917886566788733941841035357854545029478805822207025835786760277233252578447629881699252463417294241313149120079699395744815370377097860640360663697718472178132736342048631792460787173781560499590691801249310109694046152373828974923485001779558121667451540751798453021657950457019644148989474228833798492908168381269572002561811512059646051334273049871776801098128360727635548800903893916550209237283127772890401022843082746585103668986684065329358684411329870369062379532976444889420015391045928164791045253454901958510073141876334826114859386362732844212376303072706744880091437130123378317169125561008435113964599324081914747279677579439130685306952896801570468994366703113895086586150422867798291247961166892471793599507196334869015793556432445979362959646825623839102537993371351298814488077761995828631732308199048386138359197526830645949419778235562999219739358944545108706054544361050149514540130289491360259809869033657674384203245016354187797782885367674039100396046785691037897755122648290858772564978405271702931323711524679015737035249280836162491781761496809971548468612992447087485882997814361734209813449993465336245981198523302112327575962649824238212397842188082130282941223110304453795600558118785852832291362701666673665104673497622544883452870394371812596411011197059710924793016860845514964551818977792703793417941627989985629305159107018378573336338049961351519603572277938325338226168947366638553083099596942120350641171699531782280838240361151429149383651204826399174810855455010714172129460073754259390349897174657411571099229033588720002669971291727809256188915877373894077144395148686240585103497316964653458930017414528486361586994035296801963022040413690852719475678055159838245226081682000888061034921073970723309605987027748072868593561504671546442670809727014820835130865753247653640118024061101238879534298831238154269662401732076432807757038387787521567140599321204964240829308991705547023543096758134088973342587359447559613688973402355019327545303584320464116063313140045179830302255836357962783717978054046168666999568929996913189554134798815815303805867986896634674684514123822681496960761280433808588523146049085954235959220418949847441153001859177782326379052312083092657368845705816608922285942621351609819109029555206633895461065857227090970079735985696730447271074053697235720841865373869287804514859546388991629223728802349290068566747378361626075245487417254456348841648910952667533500728843603598750031814232800344941975257934016647502683505451973237590194296550292215347443429374078845381997120220360405060573978393134220949528402122083878054528176209931002139166490011806447234661419914372040047300757278189644702890559790799699580017201592450613137179735797896946860251023952935069513544983602419923494936656777519841157302809692841171101623668780997516175350212721095147808460839962197594736411499699395064342591701420332548614574610124343407913956233743811060909964514324558580533882296064309367265130069767074536662622387148310577195575426203713238713929834440232232948046954202208611937912370240125303778162463217341736134675936206106397831223480581853149303571710660707072319310908717066192999910845641109455083853578573062116197059806290807812818553436889074420271244460274491071116749546136887845588945247133260999298879543331613772743984497350611554300568042262672008226287422900300967102872136947249353239897909308626033607147234293934728603353143450531838220321593363083961169758111608178617871603979168882662826856411119746680014410672954201969683537920619973366304720741382094336360571065749206979404187495685644152976445542247575954097784821985279255221606171313220353454336949207261824980908150923810668973905241434196661673342017269924472611192561089997039845521320144306996756133299089434710569440807979110927481289255804805718311019649560253350975212039424768634876121437783512377781914041517215607900481601900075546498273637735742151986580513651323848472163384700894821300532306589873071256445420849361350807497318387636665357966363949074025604610283602661929965133016134641632819245796574406075909361955850777823544400503553910642272935148468073066820324901943612985842681131648158568820382651975234127384062879252939030141684857785433135608066198205137155671351573834569555429017836306557464172228516687357126497040635587586726409008465170283245870464441196728299777346535111606518193184526955771112614395762252419234126742070217249945113343766179352416342319997771099807020323842216077267533053356512054603183876151611219188950768254982488225494390775091170932966469046243135117883083296067251130365162828612203552380833909196862594530105862732742702142813404506450785156946876387339061896455428096798085925740407084291972867168453715820884975589682294704206177042086264372830935166195968810437982250604953618455950969484498684471140323505280712638886894702051203386992586199367414416503829625483741770863635416330780677446757120329710337585128354053211264898415095133780683654869538754359380489216827770259603077507537824603553849759341522181370786412778163723727624736887462752216745747491837150890609915457717036051092532329230896082229804330343713588129286636450155723064945069874724247176747933459530277440173723045068203318268054634830048062063290579453392726774351121422538362266298401249388043306363986337355355902789682676845299395603421986139325571692230787503392744989806294841303816611062348646529612141546230025898013670839970708788058374500877047756629911338124391465248411618407275933431179356784873430777705127087671302658058579977719691149463771256641260320096997270054116132982442602016384460671591276701042371374875565012814281467105025539528814615843692074884309478721843503412677254451638323468495428747329842683408265931083412105077893818714387649756834241344824052371519947991651134173340211231026022481959396600543606231485702956135502600447129814510658066181283236274185084065126589331343618379208551634974026871293028314054343788826166323070698288476099778900628957658449687216755630616302663440593195805703349594205981499463836490653175053735633052709777287598603163668244857122904996837993991564353282542239329570954843510159735817063589220914146161713920274614666563581137353989849601173375806274377403196772932088248903880377963658856701060405980872303877714320003317411168867074537074736413909272409211534598655661587537646107437765229336401598429542940455277129103987570999757806391001081884701978689242983018441856830643299340154511270087507471281774917648525201643743260023202852372259330868342652637797835785846356793966021757452796180164164296511773360215660198800045499795029500682414411170371846933212410331962959115030190664549203240987484199713986750242652979739279509373200852583422510656126902356429443159478563791977514615971376529698561870655566942940014214709769336259531447235366926105468239408578852774141489387577024757753618609408116380457798928522097338480826028773064003433153302737831962606945002623937920264323056927847868940396409663018829355608178792416966273971757382948304678495178949026404840341032642730702989517748242686974980984177245638735057166371753897179560675704999272242197263133929117913224455555210219057201576626932909332111373282892482200810991044019741783516809235744568636030538729697817805840817188573267867765173903826706192333764738177008060332347795281575194978583629057575015661302520588642568764291838750665614615780550844980947344477488743172230034915666122015290736485569396615598363781592118622509660131114865003528807483585872245001220209693032195705065645249936877714753436678879039416879301699712787035404053271503592812147530767002530420513864723869226586649146430850619571512320944253156217238910220925482514170965527937015357756975545575765902100533767765504022082743284507216302709031934235026173223865547055079211166195277705510836347252001792197995568349888020759002442231190203736663114010011093997724967748133357127465851298991874911714151313354627656630413657816546007871613585917508204211752527222121991927596119786091088802743546086956555971515483529944552627236620089314525982986887873295449962167940664223980232354524350130445556086286507219861641116097559415407635771118578150776217820682483698148873919489762985700157853389294957063583800271271069141155289774091774152718307420009261427830938006948844122642625263047420315155165945957618713556921207671973093426196296531819030568540380025070629042025131752276718861629881344298778424887721705960407579308347504747369001629758915911780671719884032844288935015896588742874160823412103292074303060555595708750328591742240349538288632631147314931351528817386876364605831655339631724993788148902009144795126405452557615506253458824708367644752471620264485112804019114971274012596156079749333641644075557323898098496942239312579466411535136255328251912764299319601982194744557605418556245754201768269195405309628293026784894154128344909569929011015520472168174564160760941941474588671318152623128835857981198790070566246204471160746525141798943479162129997224388843255675000756485402444400701105236625917206229595778720129881865938326724557874630973644103588308107448732186255009727709696713532256315904787167570170408821655635175699615153474607968406423322405005214335674549765040893734845117125634202782519599116608476962586825228901068563645201475751697061633627425138041205084090521938302737815918045961505107089372599698037801435874173691877263675583208275812626481184355252961254582799546943056930788510327009385508202379702067760763088327057871103865978622135267952763014215182707700299192135283392981712436158754179218299529139149488327754350745938283173792358928049703302492323274186357347773566431440073353994992070594851948180181682422932149751578073235856011094790026455753139423123051460742228160084797706529385473593334672137171648996927015151839659781256148541906466956316377941791841991331935973196176690230400126101204254445815179450991528354887702678831116800472358621271515459443671644674241803558793037812682879306276788051672301115579918174560395994955506884046272954756970086619702141857330320461791894258048441746070830345606661322910841213004765742210549640961990771338282921479156005643859929972661970745770343243907916769820081103753574024834898911929389166504939166431474688093478232385024416748725192089309254185632530794654323209207166647181351307503700673478559387194556358159505311603876964305019006359399645791925705251794709439601988687572256580038758306790495727659545503107526388009990106905247093556991770468325426453051146102695118881351394726186458860715680154453032984893522441763184578252041783481440100640036657823134184473421583300160370143063903998539475246584094417530044548079763496407435177139555374519837174433559170720603392875458085385818032084179280419205212829674125741079086530673983490893713128576627728336310478167068573475838550616351429814975766248007095902582486925243617365783884034589353538982054853652563869464406705904085073037662335702417616618662821663558722652606321081020062684260057846756122513810861029234928252972084145211047981777243967603804932738121035836456597098936423800578677039979297592747774121677093045743972214363144501223870541975136420480342214559897287796205475066977981697389650846609237032572106220962061168758344594562846172717916912115795217620822986678176592695141732277260977225670816961480976907419749815450154069853363977230936943737108826343883937935964798259338293857464366924249987382396027211833057958765661942344181129462444214785774096423730463609794785875562514600803615731560829725593543715024629000808716070999341905731179628193213040367048233032362992824916374649761540357765797155130422912624743443171557777387836022015873992160949732214770217606877795370221585029025966938744244029867865030330964505984287222103683459359960725843050831769417820449389052672278689652124548703716319469421994716865500937194825960820491210821439589326719086315235315202428286988621415710953433005181991076025392350413650267678005840318150789147218634712711559924121280455422701165812989408597755236490528037722387921680767510107410355322330748517830177899169364472083790196999589738079399394625404513170353100611604746687293817414267252168571422029064930699975813151569462689212257780540402638618138871549652982250301077963903453390120195495473785467163852018963646765842483707961416023625830901897282707054005954158055615324376396551373811344564547536153052938237134255674056016497589776990500969772307690306815733564369162528829305872693706989778782131417291729784029141776999587270556537371813114747709778500306102261371755792862150528213212932862633658437892983905913130001508233486251561933785898579519961344772071433053103351705080178404515236705492754380364502795376750606720025042356209211077840504728890323479129938166067863317922726789899215808488225883792682134023521788303964769695151673920688551567255879149192415417933315087614189010933803081629649598155709591478520276284165557082667230733554702730035602662014370886674294553930448210451641920709188245840251175925627707792971830414371890373579889570585971216496481931811592977580351043038940904461159546372768954264585195477242979544624965424694689264344244788171386316113681837689159224007204850748992734584936922843614623381307150344152176452164109079601001856233321777788178700356437244185532911413904958708486082714810251075069308381914278605064842902399415876047348941394849889459180019637352519567276946324521052473542367316633783357999213298412889750586935107282191624407645582104323568516767231264206712620619192357968062155032823088041415410070117351872565192870221808317620666082651565479291106945910606123834512872951212242480267142637960072444372784656434895657830984166344558321485287555281428799348724725617550614083239917392769086017733708198326952547649445216407786626774101114239455434414214806916904626939439973812802940660762065310690394052202965753412205231661299380663838131472851507550895787333564728339023216671149920704237621756149892956668093351839147281697425340835102630386711897923755930974905449096684681168311131017658583372597728879284945868982261678194004927290166265023883362154297898614758549696468523071166195850065914312617531515783524165589171454940114748629235800646651243964227619091715834745855687026196836749495722036056008400929153536086341663887621415250760127716597904677788649124496484402648706518622148470328623010324818716489860620740233677639233021899056335956445793598379572180061142647059500276391341664347231704569667254349817663950927201685759942765447376763853185311108431016869544410173554024202849320134608444913050847820544886550950979614291808686020952882715211216844745411290817872909234314371905363947324027466330132776300164489810212811526888528895730446962065596525429535220354584245098805777856551546262927590877489843951081521619334619650972585993319695596570879483305819582233266844372120394396475135700505134721138816119352470704696535797231295576908183253032698970844533190709863244135713321639958595679873372112535927898307416139844697567367274369443821513193005684065248966732794137813078302940452883613790235317939782368563899953577755128421289284124243082274338178443630293747911274061362322593270894351149264963467834139689759306188251198446390143611232695161843028607633438068727458705802528749510912341667067084521570791660320140506921668318078348594487063498274625273453349247745456728874939597109378824179427982420573692001935483344987704131016202778137587632279590250113831473333541972655833286168137394982044154732597653940242140784312305343248425801710711893745466182124767150744394982670540214369563987285201745278610334801037891675033986952199708210910343922267322403343359273277138233893280301384759599499252958817678092130192431154503303546549556375153692577119147719190709449580834686581077857806992315145536697990900611786029115812664591410564783955458498980114676551175294309913677076618291531246954994683915374459640574920378021804099655007723505072409555857887277572131961129725737371681204495050313307972871851019569965652891970591494446593581676471967913812885914113946690724921286144796842303283053839073193529247808852125253046808253695291623070478754047635922755130373840044592880198261367402503597231407890456883424990771430011455531770324374899566811612158536889497039111028817529894433976756311070890004785412616959022123225059956130663390415558769231508144829380907930886094572733697337437784396413669838485383127862153994030523747515349556840718954227170343888152655978496685216433847016792591722340562933791271749131098197979870828669504559856941218984504707081835085093966687647822584706135049009339631839755902397615969579897804124171120205690921846218673065526168863598179264002731438057681540680433496243692642627130839364684661410819700360213349765583325786454921881874853055834969292528251794029622539700500503013584170548328153707903334257355660013320106878383875861928363905779749281874405919038881774932492066915290240974209016235667017750757930123293674104592218811860100998530207464568783553267023490367753206502032759933066838273843280732235386142914770682271130392515207720180027879924487229446579039803666103450335106979749526610142868546116241571735918646386073683252229064965676540506318018771168887535490876922421879000681269373165326024276021328302312137134061512267451162571779926498474305513066798909171239126151039745011408401442555471120374373332567698177249416125066268042406322780578365284694043217970515434211099834456145674864443774034560681142964664859825227447630298762562385156768915979056148063552457510809642357915067363784902848873722187017803858030164809415671574388270976108369960215962298402880542719483759883769974591820449604253077946807853233663335821174167519310320297267158387273523929002656716022386120582342703674992713368166713202667037404298973079301609220979891612044118694057437146413259059062678539656217345989000011644195926921974147650770959639363324454612620327930547065553033804232251634223153438228055502901597647101949017747704725295466057899031647318928705665255418907362979176977565274133152277251249356826429342812708511944675408019191880727336880377684150791555554540997954276947871416581927840407631508136496808845880889731934911947651238148445375205777938091043957569838355494059982314034411989022220196864920203716243056485708987419707770907550353403421319534456959415559940075361907235392707320601199954507282722657760108168698959510825878692247764718669991252888747767380626355733253061917809268251321002740646852519830165218147324860146102800802920967937668473440508334099572999860875322869195942543982455107780180989092885517200751878233527501052009697077374089814378375508707701087830847792991516568971297596320939745839616047310629732365265707542015003676087982613196531782261569511303072273339401839784783537850155287680956071964305437405613601765307830037943240908985556241884709236135432325056029167787445357244369710170126776227194525424120099408307166776894734011212073319363602115248794585196904617041128816371008445301664403047297388920126622293197257150610233370774194899123603841667961489579249663487706122358917604841769292680545215925364276639987703265497629144674096123819776247873275418033212776850621673667041974620780059162066976383317907297072510283406794701820956223724287975299078882698140489984214116541159888968106611047865322441256302303099788451809682029658870787890445371690637118104914767825480822156202290283255005733949295386671189735320347318774435918582590245237667117407109521663172178009715966864704463618855662531274763102057583540646435504224484281501715763001382637425241126954978238711758302893031206194748637488998604611264524810715478043154950655324198875540086954465029423443365655706375170756538411545344196191181870973258022134772572099921063155374726879676808264552028261295522056748545654042261400034020798316828680606335665912354813048254105649177250519376668919070860998579771522235009465926845174493219133715872995102637775864292929761235347919581657644580296522343433085909026186973376838277679241309003601153098671512785667222125346945755167383270888408980924546228942721696105552605906753855887564398323587391922835591449016988191551210210112964231312802194096250253021102874504228268764218727430261897813599027444734369444224813022611302006501227526359526381918233407945554804923961138076620731271881978837731442809434706174220298635061165782357211679341750265097396239871965113182905405550828327043107253568442955635198933778041707210627535166437609172525759130416032433847640680042071950291963801396973630737009100422741085168228801935362619626246248200690052566377347835885123407374013814174094922136119310403702306572553589342417142852310520209758466596883897271736681281191700773092529396802565840672950685809424692828435084215394627712820139858990752720429455969164466352585319000856333723005761197796920007148854034909188296676598955444040585215105116319964452326560733065295281427915262817053178855632961509468505487838518860201799224852202819517509725129295270708656721698736911079011945333378389263050793082737925614378288851033379646998356927809985817638900295181389231181951429776338259790442660668516218245901237302327432922135340955903661432949362642768562004209043333271794998986220190286577479177545789662465546036979506560972090396926373082507368865786686090559899535321547493365858318674285468214233528794159526331909818333551836232277526152655397386669299358458812778754636203560646526034283913166540725249991583884149249959730775641223758190157811058881772579045662158330529489775665159574136054517557211384109621142194375164665176279411016610899339354668066306320367900453941158097831561061621599052021574350974293993239823828384405231816660974372915778021309092029399262836863104177478079578807004997384182527548233600618063612214990453606795386620853285301602999909777346004669378946187135183081748508342987978304620098390451010467026037900345944454806295497298406217179430640276480008812511665354573642362629082753237081850516553062953131547066205999792810912568300871729812559750452006496316530524990730773892536016070927607919843678523247629035505490341388288083498060713516230053386794569313138558710573528982615428860303263487480868246893968777145884120095336441442009666629103404378346289750311534492550215600575632325977418729748432912282553626355110514347498486214521167315205814526221152755074916844357231876954864173732979960661315844004579117124044102946100373710890361399528808189454763784344406499191478627633921893531602570284825427231550192761263766684815513759814350099927892383267703626418778763676743281502586918184558237700840997924739092018482482674576630383180790465530983064237229211462725051885401533635777759392994740366713605576782090595724517063143263662764535546010132828997367128848425225705259150086304243161626672754114192733582726562429739036766375939708000187843854149429680627329145129797450435588202803543750616688274718313187018667688545874990575998871154972813911716598252479722508215406918048424592717570158185091379494226168559687143462211512435539066716072132553010199431886539252598735484217480392681589283968061430870590507388915106816538545039166490305150770715098803322875735070505697771106933652039070670573429123525352606917456534900528929180341783739079922831395606383454559316259998919693029176704842723869792429348828295326624329329322935513894514213134255824994501962167046211292374275656652249940916902892155201313953743198872269462152313863277777731799886632808449820493497554842795526977832127088024072190858644420773185161026727829565849544385494978078949511863465273415147827241010711611832994160227383652439476327199379500994427798191626458511679206895366396568057685787647981279624307640601963678776042457670747484653987247213313107844248658735661977484421043818729815904528929429846991319734566338873615384164549571721510649074018208859053652852683002016378892468947804957772589082500705611403322027193469595384192539256076983234853498274322191167177960082224118791271340419626229388215519113537518631912892984987603026148119627570564657542158069799406248361528550369241920269611921069049935806321661218039358712637183506669062806217646971866652732011459368334754163795581896126139728081570932497984239628095946836784717808019944256514040202936112351835018626241246299710051921240116944841533814535127225598366333829323583273821671367770951652146436889866337383089500614949662262623491017423805345717523082413759199893775955025089312338232001473096530549336563163766552689005267811519787440573502777945520359183790669449756633474624590334019091495485124341584778130990335669517354403913722834405431459598573558389025869835216227931643532502979651051476002338549369944878459859732675612127240848298872131094482227526335124422920547495036226983193138861798289511162291344965382736172156092003387328055080652503821809974478406053210019744609153412211006701197752303824123399916409880552254446292842699621371428130204025021330234237621644198954938104599844431426674025602064655119000989986435130766165434207855430018543889057149114692479763152185825135221548731069290628040885489255282342107407091351455957861990004085821762234276380682170265448269023923122059359493702138517975827399821682540883438075718468284414686677487032200353945915103419141133731285914569097330642692890068244384444468821253020921132568197654115723638402350897911229394364709415160852561916430202281461739277547467248318767889942985153678749747128369533356609353350440565185417746313773844396096763990323701404718419967368881208495260497763706412858621825672803923698556276394237551954883224889763664952896360403636428119401037946767427117722241820340975445309874198544080994225634120301335561907816757802544351289139732658371130655131881636626959981538878720614226031997208049672717083389260363042991206168299907190354308573442164576274958356695965306019799367690815858852055119920422923429246458004477387117632366534579410589060885989214005848942606356915679970598380413657904604824964750279396962178196709758302791222716789266617384205124675445024913827165472751056715600022942299930694391219577189315384336550003647972140612525492739511714921214131040028067440203174656896099204099104726560142850036021061430854353240546596989638437157456661242491943549657263094459276342428897777186329280620996946008001568008004850079133363273827664500914850689622755135662084369188738652069568482273628489463288313876741754688424996742630001814209522402952782353282713061156524978505409126579897946033323903833763961579396221108821695713471429022020737239417254785871529055883013220791252334478114062050326872869225661985695521639173062615093060425811450946730677913652919584425610992541122814863399522502697444774714397039256288722043836627077169748527878595617203904879342662347004249613864516045488690311553320140255432427547350824159690604505946221214857687960314039915825701749389515947665951154547141463668132985953460191195078907443187397666075952715625760048325479254185569923728222967151135092831106623093823534448868805081870432228076353059511417458325681944801764824411154594736453939127896839444217982637918305902593607658671963668785311485384789178254727541587993288944255498815722724512332509482199780326913354248711570778066144240813330637619749469777807450284659954078129393826869134822249099056458255127478882804294636297868449155695298482944458513284611364791478811720023286442420115136093635057312528965422307338282128634941366733153716297523744125226044385451100740176336132158570442377705029442603540433342845156525297924184162195711853819235170967184572819111749295354724651920177134148475838369746782991888879745909096292773466396082662411508368798905690276472793046339959194496353629883128059498601717114411746433256219488439175032971587193479680016125260517541979190090740369753228919131267236796902828752818891237091363292817840347354371544981510019932119497185175346948334821458753943984016083214258016118088134716715864079428140540636473275410804535802642692258546672334992739205099634196086667965150015614601092918245444030461002403609884189509320565149073660798834031547498825311835253969675719920801131497247406550414579104992212709030956408641688368084282841760492016357826638179697842635438366969213780839656132496419928253114397666195187994704881113299927024721281698746560248887005222778582487596283340915076429495251567686590877895795754615265153989236644647169311713824702244106832065355124235914644038636493732625829262738893894791874416047640099752224651664118043398750780816394619104769334616471665347386783103617787761540344248194085693350120501360349948144843216492362093724085975583765216530531053191344409207086838686853103508431006411192938594877982548499964344125608362208016948829226973031413300013233733117206736120888954217086969890511265909863093949830958358418909176301146234284678056256360124524112308549116530491022204882464624332438060188000591744178882556215023532121826905457120984086504870604239394830043228582420597964655280211476810674514143340943708437250420113645735038834079133210757964288708967859405230982087808179669993911521974328819480869057635912807550236031690912220367254065609025587280643885535649082742886008568372908393265979500978709182833260680756254642806576102506100690421671665990088814044270659834637564652957424242359028245515019365497119408153552143291805543892650256723892725486537832435765088355442353822605871157146496361435050991101829687258157636758855312938940700418075076060366930617513209553745374879223018841288950650260877201411577832514100158819545670302250216237561131493698651975759770183947836050495538470002937541102638091037663400984958824336348441147341635698442346436710037163299308124616528505428157715513453568831866086932949787052281328154036276010585790161059865764476505414373000136237759407552061689291239679747634675106367799167765119666963188301874780336830282191333556975545107248833599301765245848202338073664499517493776078161830983637751907353471967541154594790795689483193213534041170319133974948768511022484909190221108920351366143394104905297620669456698454286676468593396317134481898286310356474039122360744639867266140590464316743112694223204953217691706151153384111456229142238619970880329999475539036971137538103782355076898203538426099257452113195478884192392712213895905685933837160323033677476167969289202968559055185184012770674172954014283609574234644779129952611602052168243434917230228857653967720968983396680433556457400993844009186647144434257779931149630824831881941400199820963754650839857240168828936065141954940196193663542672266663909027372312233836245764360530195356756825562291439151434731848899724335410650277578633144421506328934792704219588510527220842246009729177544531659038691173072230678691895596637059723429609867917571032451515733136441299359381627322135258787305980039669126888597310747392663989378470629755471226607262059486467422790177643323373435780798776875663430133930192716635629587755719744108678216222599225371676875413343554894652532246299672948609233321405418703218286494490340371727270415287515181932429686915887085823458383510693110498926342032110113485597949012024595113911553010611587478303615113361101909336209717574840187174830707494814165238124957423795197284885027554785341389034364827940208021531167167866600759792222706596828791722681330836496733123847287688257700796200761330095456054538356458727895922944491321768511192405913068592034831549369670300232311023410204164454279911080478689268163179929768990674082869181154543892101669207130887701318002386443141925609395710173255472754803774863190489809333743172885397104742185591706922342307109054172884139323641558395383676755211833060467791898235763026722008274141473986121494866794802979640780046997815347604648911248614580892102665929125698193846338205115032409238216873910616635096996085052589253733974791317482538774420578073315562582931421046742858119556029663630444075976369605047552125108903092093301023732047066896266326369447094306402509135123370425884311585645053707646218434775528663476343686408162117986821162573576115337013707970627538150981576583476084917187640287456396793855284738760128711915763119024229640520032640334101708220263104915748930498099979610104349338409934784154786829020310136160253501543684789245332857123019574070499713984194891942049912733637522179111630826842604978220789185321398962289096857932569526005566187144509821523601562254980516767631479204363034344619953903116437690984763513882933616365519331987529849087462461228357419015667341738960039257723119207264065715866934270542125470913578818360071728220216093803321725498462806497703965938932235357983991129267792349980758376005229363520938088072126730654435441608302027864861070300625039135154020515995866548562522031498593670469182107566012362152188987920639524340940153372067584692547002467779273020373703086893182966992479152073161208440250861313873358476337829481443522548943122243928133153170919560149689819279270851997532073528627495154290316768490002991642767282247712518277634099767280519374113715109464088256644472572573374184968033749537053951612249078045151204613349649106726414518836991217370386398147281031952320715491382458876152383847486460462930189843416754164452591130274064220242320341725462670232505308794007028629680860457118057145791409015409703373446671901859284786718555879795355701825960872299217684909559075043870113979810666319355081159567077458687227625754334993326798786870262131373850068280779230487925413260111165060753899430610331612456356317387613160800426735702206848884609784558079802466317243864489850833631451710582667454295473197260804245623647293390273466794086414912496252968408798822331391266965721030807485231123680648792202350358391526845843725780007658140323424313233688874617639393716086660804729961405623026607633332503510508550700451598660097234402432525821489563356869092712360976373981596839787318974966125728542597326321523036297770331377604918959189180335423132600414001227045241883199299914800183083855366455980191944402287870939021643951969635501899524158860052463707284251106563876798252140795250978049428590522159788957588028433746688521821092728877733033825029995977410523457945460415917100449744395076682627839696158515243774839059571065319115190063515728169314447788892368777578980381495032076385782050984912785416321206552042977823830445826165561058164088523326684707698139789646817650005551173066365867294193538484388444075223031084110153922161598155631540228388981466977791746581701093038109561095609180544660203348073883362511093544941867309806650587251611780613061513739099753394802645874677340990718977187823621466255189373577163676501369457603073334057033763716380029774434354769804246735731054583412970044914594956701366069270833199533447754289875353035299018885114637344641885509669191375630242592311644977470551594830126300007180356017165578783606620383521706191913759955114140801543023665348969595514121321521220191110561578134959202383429753319842280508509283238792642199244590710401872964476389426011155281685899462635078558281813882732447329007100636980253206221224811097538680209746495166370692891393636347775867860106649892104645364460420673526750369096953298861436032531339356735675189116605657359495375435716080362287324171309379887907481529864692551252768039216046403135263311521119748255175265773565740566456389963118063290218697539720863895789923502776190684102911492428352204321026760023124704164984504432714055997046180156668057053256963623500399022094971774644100005531779263387937160588975328055947860898647030909563888374810693184263067731858919205744822124910217801261130963987276107272471128956134534140097875701521467425133847611676089939285283621340117317187496581726448125337705194139670159465968555693025368067073237417710905858275936133172846422207599276605501077147581165863528537570850410113806356707939015235823960831329898848646215691198292771896502111608757226651961399613016579450539233178319064566175493139873859128355899790595173702493324453876205957022978382370256070232520097410098802066368901504276289636013145888712952064603700136035240009456703193912661224087068527851306553195585639946725676370318062565730713330696989607685666696644820839541295910823401583336160903143357560493036529274775436185776682941804550162350265571103059761463692496162996980443399723611313104400699661192917321015349937787165119691168652722354011010062777616768037992008332989019962531859462541898121824005671113279720547990031369395080075734779700599756215609293042507989760706320275607776411849051185038649257878067826489790201970102599920774728557001767822884144573138119906758853458608043744642542736961327160786485343502417176313413363199657606973327284059275805829156940739202156945529153276921431904834777097461868057083170584372689339751709861017440272657115371474204023935838458808486264244577291270344303186279003464604627121898654955265748421836869076861731690431808221305235737576523701299436735742187682146677565767936423466296911229204348545321946237244076338673674821323295449916940827395585336706834589491131037381294419860645923150755322589408979905378373625120445890716077242552801693128948007651286919167085031798413730354520316147023892770362785712611535663257728672564306519254579791931801420908025483663067970698116254114346754051963891844890547288120442009159838288654366892632367624043319106855457474916796534260648492192475268548875775113651938735260593708602132518777156149881308129439540814998985327461176068520224333787477159545549781420438643294587723053420411019940906698868839429365685271820372298276510733716467326472965676554896483986437912071619547857118642837106681599295882356329752560506012366166535405609688620519794053740185309030774725609023667579484610076331541501371110713851248254910261295606624645525710295187025786821622763475732978703722870097425709704129439218308173775636518275678180309850027508303455519968268816357141743678768470346811040080131641822581267479466113009580675852430938796868084570896613383048333387473540778664119489641961868843137759332175802676259008966425055618298423176628035729910581098869422776213448331254677708547225982660301976423823294116328485330427599170466651857213477789782640212906665165867472255261757573971905600177616234679347322631884747492633747883150585002302132980364632453799850383485592525073910036650910036145992042039411488853243236935480159043033827234491064763686313679080077390322480135896680306894111190132652254170349235727225849577518620951833893581088099348082408632926221224618086724698701848009120716255913641989526567242284424852394259822777140488871310484983704935191660118505063680224437337416301833796061435549162987420260614545305146517977652651672881148671061999822649227715289089237864008098819385240840705534665931623993096566388342510164491305905772503821389445703810500711363945296528097592663641448957294501425506258046471816751179034183528795187214091569768770129060532607632315217824498691174951461556764626121708953935710846922846907025157887577374476392342360047193616972402032564622737606143344386678846832726332133549479854174963554121083553066156375954276202456051674645419157734061211320701000118298463148205497429503749675062762379936412167884505197351394007972787333799127046456115332886993141451926381355904728185381329655360755506324604040797124681028272378219639371229573394035092154210689241967790595629328077985829344814740463178653831319890640127321162858328650636995898561249653182278411084737820736278180960044250479714520839605104518448670209235055820429661650704274131237780194452866994520012845836901460171179028295008016029051561036336413046194832280237522980803745199997317734544413454206097010509754384448031434429134220151927263659426444205498007837840891396176487330913211829916417522781270018682027982184560198257154854921016964254190724271174255572102015118968737155478930618090741098115035242068454265605912914947057877595935375419169344737830047988737446367156997187560098656384593471874074642086262243853344681628757409571406068370869718554050032728989952390171390507118712601386562173135514866677154036898612116939714701608080926967661470523990907242767225921163017603174182599531549469634303736918963372180979746130076955331604844207180675718146638108153262784681529766508449047642220627347586752699359349807508970288283594391627315031302780156649598675481637965271410619325778381594912711520213966836247891489182545135253907341274951652397025056953459224370210204098999795879796179916737065246150168469926368571237984945225030381506048396250213792575474654768387304667697632142610723824906404718074026449500559680017521822537962565884372936478685324132714889749424302870061621435055433808029871668120943444492238692709868368515185161644586653123638691703706568364683955556652904901715080437706521038536178780474299166872034912018942581888104083279851453303080517547406143159023474375492397237961533831056746173352574113347941524537990665144643783494613108649585366815837232466419536376510411557896672075478997923293350382451787369411196986564064919385109217258321555989325900945574119961348790337696794702329348602944376565848608380322429382121077920328567168503153663308196810374296641541039033656975152749244183110685332928112400653251401150476830758150457865631974255421745725083963174662398317062776843153691863432401872129842836769487125364126374987155391097312404073153385948558645625834551018264058546408610762782325558470858610485699051601734388534971354239404728016009979942015477746063963646769687664728440363390372777779119539500885038157777578737572511960564652975942885127681687192493069584601199760220933323168981823994893295193214583853752043517480175978332106187738171040555305401374294584983939600334538554990622236953758402026843154889905714794176779080347847548517701808657546628604918384494707830739679543921672194577628834937145954028996641359122091132768659983114072168651348207568497544197867306309731496557366683867282069599537334230721573354313968496473746155995440266701799174720214027356177142999064125457605466420176249059208667195104858128601113417554965195161284511896510115245379726223033840418459774568581058914204039220285917296041178417142841297368234349087094253219765249389666801364517759724587259649529121627659578316718856981542084867357544299042648113516482779403007465734978520904982186498265325970608030277319932082543322289332869903202538394852659902942228605234239529591932592753826113314298770078969448626640228777878464798513103429903750852806465416078472849431175446305777418386788254225807818247797005032671755749903042966603061547043262967301289426243295317700941196044097828639070512771316431220046222650420425901184023024039765781088485862831536150259759506513875719987011695508534938319045048385804312055760786098944103751800426259061549252064412473250461977031195019390661137188210337076444310735444128092177101419469958792363344711865818417561217600527751017529356867267267561317701335475195358498871346148215050180110746427270949621884936832543558324511171662761065087403730289603460318541417646499473667044538257479367949961709180139457288611794260118413022927907678077815098226599016555982972710435018487234656017080235185518903352511342840804410788902986045897272936429340572088643581853834321632198568183833886788246976095188832072217923664557776419518215486204925139569686197841467132904331127950613625433222575300943781558390645754110722017666867915812723829703509793152648458984272620757916987856093286292549500743408199816913277505871428613700608368487332373924597989493146168310866668560250443679347451786838204758409164474627340500630116528921292307327542003458026139477900201177573859523004766324345516540140727215981071573327183923023220151851484595267290111080400951746794173872882946331210771030344626929376302094428072943096878834204615576244698604268852008895721808018202513651794422893291331548623733651414915849514382452417602340635433786033322838530079503259485782252577339516320693139105975008009699246865267824332724520930501143691369920117764360556341472150283111698719159167934697808350726895015414576486404564053335522019855348302831119854925621418467013824200349885526526780911983256005026856044210564354476156340413748495295975254014212702655156498113017534579428724244536143681835627943540962099570005450651141474078388510290480344386533318689369345876518399051133652941733655703744392511924912445771047432711220997150063472070939582860916257956366957745253503663581195941359500548003845760600190237692507992851273722356949083490296354947275299203650146910682268642814932386349094072543452423262429441074488058020081154467383880587240510857537030248785348837691714932049615856312085329946820777964962362204960583126804332902773027695611660549194925219591776301162890017197856774684856981053301260725021207716083950528206972598406613087849226505647015363381610523122790730056062515777286976383724814038688557961156090801252958230313532176769948745083249068297124094066828401402662708163661503564600488498152248537521199703397588219236085361373916782280121491383613878360153547638646868495539895475148984395441361952115247076069644520111536856576158679696612255525914161972876697131747861052566743952286605085678508954896110735381990649164589449655604187694670634358266621569683483169606094940157215938473722977763464303097164715221376281300367471592863169912985636437084190779899204572388990692686641202266704480825456081214403519650100592556898777346157270179576900768367419530721673783126791681598321246987759627969887732073980156527968761359976258935467924689106716474216107159737631403593682444417694103199181928952367186760339674709937432552244075750307245769643779827725610046912394807309873301461100220328265904515515521608846099545475744396520203955668208517683589637643320888771613610869566059346251420710456270261415939568349949824388098431948143083953543490163782766277549571726566755718761949502006795330837542708828312695054241824178343760375116906301822728523439545857800587904196942010509756398372066624986665269745499011283890933979710342222842749124091805013325818994664884118812200110617556330288756814954489401313691382084881706469525984615048064041539106909944857975779777884676250801884562559511077035744865749980612163518085306361629029685230528099178564823605302427633804162770111674551087981565673102855838772681679690501169844103063985821371891396274209576385070486648134204580104310713610853951540439631804799645640466054456374964000350431771071379173563853056478148341587974387289980006562650888526604272201267975137191159869896281812477312759628744741091350657958387702076633317050532509859269979158706118096548611898743813752845864104100691053224041255071038101330804393913762360006227927631929409787891542422755504177059183872708873783706425440134758600959779744434633118302878621906013062907496102639100351528425153291420476779636676966386093397345883290485542971405721826515071795498656529766290654851195031038156899215323572174308363384056499494291809725643344567767056007563121532197388026975700157933142291342881916249492420768849955244770915698812677723446382705321271194553696166648004400790892940943680790453546458308522136093538612773047421899998047439001245891955438890156090678697385740612597309700427887960225468046253280598687840739080681035671286943902274117142349151911302932227751110899636529650581436841982743164020395820427479348015582102761505534982613557617984349866513753324934255456590598591386604799867036159426250188953290204155970108107118134959398171907163493257367348071760461884061985939469000512942722819372213279388486080692322257942489391261252965281604017570350819038918464799150033157301842438886138396415504368165474529736612104604903768213473780368306402636692732694641127307068411077682271418308171041999381713461149501738427290596929554840342651803240959636672494231844810626415891691082768863218998964649367599272102050354666581595519253304019554007538687751817824441243726345158467528810599177778988723142049017858931677510007855061211295358624428595942837167418328174583097556683947168883678874510011084688405432006883694958441534148085752151776005449215567167712953834286406548627734850446901407513868846880224792661624755551713832378598920263573166328667117113635762044608407682143496359435072272259288392424700858846603905032208041017475770215967660472975416109528165478814114261908962824482526040114099931427507176693582440074615428432050806229464676273638709145423080220980314358021971163141658616303393054546900905645347186836800639710554592736003381778600089889621435038359454121820741798294073138227524831632878105228603877355602771190572580771276884454294428874856502007588340649074547460041302487967997758920474795562965381834424821177448712332609769994342531589142313246076669192666695161893972989865402155586618384350877414803395196770219832552284812230396061584985485258998344789518412237557920954145370682383000417505008294330205057818596166877185060923944274715950084442602824206586930459483884328806782253928129312465430805028167200300865600364963374934879896244181973136023361671738564584589983883043172772194886085490986057385782540560695505063000567356731153353751523440257343457903316288800786860869925397523471082252693874257091540885369935919921285098986121445448235940424922422567612236051005952276195063444247843725534995946621438381813324671033579315326397894817648715728573761690947002521344738333678780763575120646519914515119721878216801800462667298598992526403339258332413136492911564165061935154344995467686583956074036060693792432614677661093855367093266014477371250826984755360450523442991737440243236605438997826120747150295586092702056926388130238075408791720998614557973265879491496392331650292428530895630879787159033491506536332969739945463181845688183863167297713944236223656896090908649217977218640326127126705721799291560911346789194204151012215064508247111132939839816758211517238689674713786472894343320500967158739091749794563270366334424424345713761041653111766069742287375025615902209748198275061920942103840102359407280866408361184143992368561735969788795041659408979451877459381803596671554450291635673151691541145584551785482874426826339435055015598463275361757592985984092659066987129398867512872729112805062580068842373860587754627105000038335674973683694312069545512568642464408409279301310667109558268782249665703801525969059717886535511185950023854694827819775612893209015450936598733772111230837235109638782431515652090992421999734900462866251098400477803573376387860263839981156756284996636738761384302473231544739816657066485065574186168578647538359920630266530268251677165113426537910832843519368377319245422027793782182509325676977839619535877180877974235977186438328889867738809215450453883118953658511750985686547343616238996620879896569449273572859760972180910221092296326220179445103269802263071018868080598923757428012443192399075758191740930400418747578055597230988381320117159374369345812841160404082727343125503669139046174404766747918413006527286769566967251895392099244120935164275332406654488200766734096405711956521404032024957522617337394541417039593497311165218018363644902642582165817878532702877333680625595074500441710993744312085899142099217055325665217221424093999701674035365754208190542231239694712926581810981325039487267801435441035875272984559125895881110823913702673087863026210268307342785174058049022547652311142950967705738756976318872094572486107151390111746343789430218087252932176157272483702764194440498872895056400877030504237323025361578624803721594349589718863100688782776330520643305157103253149657185983515424842415315436238772098721680565547535719202552499659662668734935402300656980137122611926572363639763895505103970017185125208673571032963806502596263806833306259459619391440776043046891018913945797806425624748061647938052730209020195548250244580762619538938878077569025307856942014866191294580264611513754642083651907232286874867301452840728995522532064970148352830666904477071480123916047415526651489425271965742048150949027772384184014268421267872169692304551304498936633860491474152014021722810776257958592949312301482874260748828474117519093142195902916281604636599263973807136705576370437431338774669517721003109254625487176033498809539583081856239381691277627538173773510023301243279833529917476013574163479519270558633844987183901809458215569103314775646115791553204799202769703601917603520144207760208905280229437859909850076606176546082213392570121645877982519013248788555650891347657791224975218211813857448554226547841195741598591764966713935504123107960792365080199563988227018517062657747903955120456079682543974307437639753839691089285313985270234484780830282478926665248764262851863390962401470110043979262393645212584388728397858892727398252663939507901826849276553632334536420606918441871775765570384505052610391056631674382243013616084662767081559079752737562666520901728744849754634570121321310886874649451249539720108318257862918410531233228549161601508771604908402666649213540966507840224634423613015914602942036907339643318890311981968712718157851607962360983152773711706425137777126747653849211362552577076689319462506254804357961809255297568215098946818678099763663096135279596012638650020001912422731932854925033268986059064422210077577259454031159303551791792306421409596565206314146059356616571772429842030280033241711454282675002337507003106750570383914512544755375681632060597107040547662462646678026206390058582381918988748796724737198486102068664129198482276756199891774195493380440697469044824167801680911693074443016633602900397857686339537363966541776161528198773354682939473834323095616455773467318493228407971584571256670234182726295558496214300788607803596041056734380801117876902054182768802140875952149879743731124457927045479073589707942302566462256454303534531734697737305616728228129423879211772655293080828424181580868246486194207795287211711174801949717025956929333616400808996307021283411141879577414579475114984939127565936856653118168342726673649083011972630156072423395025443183682317255151377841095205567292022190413530841176003073687001320058008532474210035255898775081935006019825241423136304222857636763938219305250184414934016102823919025886584943204197179726054362089772588732980706669298715209657614123306770239350277592305472968824253255570495836296415977172304152561298051681504492439418140116206592688559397222814737069599613796933702365608389439188687791495363857644854026401657131640988224520335290660261876410195879347524689998339274318868069122317852580188170205581906724000567330710954119782853185369650383911354616064270924195992518073265426306010572375383298498510276400343056195954574788136695195208393177277858221206895650578071740687813878254382936412924873742458401104535210191215043509313879545614526025578851053487560341373820969542944728374160420950713002407562623515174533933291751873208782754665351067486680561783587556045462511902357033960378939762358826281044135135663096758722271707130954386418771203851800526081222148189436319601619005637633394983306532964176215826752100476954127483780256067702883180105970223210374003790924311387620142623896685475520084471249059682411595190562790063745659479205057906844824332782879143898014762432807838429357049601473910071464277452624875614465076505004415555737038090226221300244544936394343572913422931224769155044047174974906052751937718769053998208649649485409304178025725060043999255952749843597098798321025772439745082846501378250460147185858258345082363930628661475334266011155245272204355475598484783288063017706193946083923796117024371001585667430897484945179442606345160456279601170768640598094299449923414130943662711999907713958376999898486715435858124617262275685149329127535108525035445656670820478919830973252474486126243626974750317880352376841988145074925717229608948561853171250817811846261107251803079276378845075329787484369076929409314575306054486044426629058644553068701351124687015244184251599932966435531587874014436227747540558228350970490256572727779699475909482371615638517156149780821373171376975433073793695279412488863666847335046444204844746133156796331789710400545648668302717519397381034577751516570635622188667697566674016606361175926142173313966748495258382453559313067874481448652665612774220053714749437404559731819922065755069553844954864706410459602767616166123863809547650942521717931470387656961122058100773257406033902613507569025083965316693835663380136929880688536113742905438111681433190301202482818565928017546026398932873340062149624802251536258815367897336014136816228683612723414667167691021058845191394252653596407389036219301279711262712894920483606603998354448382595577283675532262282560795044670120023196478083354621526982134863819224107146966183313048833838221590334284300614414194661903187513496146318069664978805973672610894341756027565738809823877639835584203750551690466301301149383367071561827411132229116747584856995517881093855537092383364364458874385516173562832461335026568870592078046915162539111630096496723022344375386591633018498517010923030650687818059928717897126297057989735875876903157690163991029700399315527984893152994305297542675480884339929650380491068682203978086371967999342821223101672820904148335946808930027952046394648736185701658062532350373779443643048301235362154589906417256948007725101337198965006935650204608711483341849938256134833653648782781593581875076935994901838220819043075154173050218107541018404297440916250179150243951984441381735368351443738487393325219494222734416816152700179443452402005347179768716277312166717532183157984614100608769426926700052438621682997462984684178820625856963146549089125806474800474238294307879195782727752203260187820111180754674499993489568345877439146792951351915918470439091589991483823314461326834518609067202972431344695280600020496108955883312024727060225880682024379017269956811881612840011108098640542669827257097455923961938365439802621673221412839749923587967674304016345330059404272524575135402052189397017953469367778331983830166874384529617584423882576584817659972446496605925434986434745524032241649565887034145934769195627142026590134023209070120016724098076854638416951923090786199672631412970003778753211342243900871220087966188829732254043904432378336856442526661262816296020151814044291914748202993458963043662313558681193303599080691470006830512461719525534027193865397761485965476599523582761696279385476902479296940010743457576050537915218313710756148058611427346233824658403083173587269771633500293356234658841989795089532310775420094472454683575518038701243222489117999909670169200697547610110131246906842946633164265150733220740343916555658742021867847138559619814266413960218562614817598162392089688540489172903942401646683368880508403864207648972150007590053400476575365115401157989794388724726293413359383160030555049275465517678775941427832008809978193805506549708321085177342311385090019992192351663071470775445500999780409302043235215763307572448509328943088820697974288680286310828009096907484076357853364549270376327898886048663332157335272447715100730063589571627076110610804816030562538877093876075870806625919887714307448658464492588237626326870473756140238865313541072049925048543424765401041040593624064932181657591597035074506780746491298705137443045742914000522995710424284203272688881619296085513229154196362927714491240737028867547236416882266006799602150647585694227232623749034935603334307242087350343144007017041688112285589671048511781914688041436453241440860644488539373336981441579794125295392461871952324881147075375755580749231143498398739607921482798659344755942493271668246700921577245423434774476359835722978043428489254195003330315067842828198529525835649743489215646399505676001085910120696328647341924983125656465577872645387998645206849284316405091494183334024954292115814916809382392991704087431501549589716957103706897851383434257693523843695677669702002324846518469893482956295633438774027531035506085905689909589692780906240967669699249109458024919436954796253287432644852376153462870369240673908313754532141979738337334888915061288231632225644265739123123373427761944186519447296013881348733610451442045971284625462594877268847568876915288380615647944168134247470329627503184102746766861775461374130958077408143339946049695989703732132133223272662115011106932565027977309330884686463903101775434288161378947957770233647365380430482184424621553836146315367607949038649633469000697712019809614991845500308758665080951652340605871795496017396416774936158480890176157755020516540029430269860411891126681987264267594822466028918597902954480668830814728905989595258483003417509018493355719623525155313132917498921103714153121691152817868687999370296277691610475835560000097933830798890550068007257255116337556952965799184325449575862470657694986089679422354283449120353322088984764640764007910449963199917484750529103556947315999519352304609741792349729291470389661688992636325503960156973610197363330401922476528726762550742913126726756813896183559994423358851513452573378061949602347647548556453512460862100295523436915709725547882282285137726275677045189825483925500556133716842026318298293808354424201669056733035049047442112501641824516297021232699124043284748554724532804913363066786010530544407153742849371626105285489166829364986893212224095692403327342467799321928106336851087487627989822999472971459480118431305752403886923711561256736263141472367345794286298405193447095766431945254628987692856461435586158217397395569107252557186354813456226311752209011398648016194348949765173008001344202324248228476249402741250443507050136447609319823628313490169936501202872573643844882924817317403266557731497492112708928471312667657833177818004672608044747281983403399583262301971026221201437595635494037824869224862471536453135427990719406168570790510108012124533827912740029087057492913628960919385593967043520908808604060041744000636321564998520710258517472852336256636318816518018558262471580530794827872700851246669120430037192071202724832414905708513512304634322514533445843309411383971082540305251816598056626443151731935643173129139176518599623638404473901055728263079601551901956737396383680438480864940889644291046614738462042116183117697740860246774172702495471313312593486682858626409255988269555705370102006519125581158909460161019569844996494771482635785371663678924494516122186539730340161435969858346030955922513263001904506109695148274766202519283503401021967624421240751737523763115930662207531449793465434218949016816779700252687938843520483719177009130001405423134793950639759267150827719647456456644718359524416433303479875696203222669128565517637789356830013474093632806539351783401258460692816105067715232781495420895661584234601135570692576115634483893414919140382617453296383954683757036111219536899224465775282434820199376869146123570203281613262092928266999715995447729884166429286871856884597331005200814085745000850756425085428853163051809329613404450688586592087987010130556696023171469327755118586352087829956548052966215398333571050681374974626829463481590600873223885973814405950798905687572505600089927571617241192702210522479191349258480765465407654501736088109179563065736826468142914585473017083232189593107448141890631256813235797017895158306140893294521928023290765569661125104708669016505250606076674284514870963696501094152060707821350519080507405331673259061836258046502901086281597825885864618062212413724890316432109325084835171696709343275177458544017507280314417850579592325930498191181952413488246876665958666142033113361052430683199447052747540669189652824353418438437035375389370307160907671152229888636975458868458310651004571150074907291761736703200579808006501985569185354432659901461997356530455533268517276604710400595811056499974931407602281761251521454463837279781398452201367739104458813799680817344992351853495709068775039346068535633003148512444887248118044327408296732694665808042653946543668888564938376115560095377522782561507298101553656512049076844730619375626769988685369425325753001175709055138880932317919498027703588711802879706171568417813348717902235809538277101052931356561866657406967629179635405145996071950413214463255950659845478409622794777600395039955073914474836783408623746555051893060652060630936846232140991530267238067440644163410952302376287189013214763707431754972608074272535469404793144622737235703883119603394992542102876853124915361594541828513434929766699956037708250250599039277827541988473214612072313527350919508442943088819711790411968509100768751429299645614260962920117380399517855858540808795326403670594993860362314715213962930432873000954215421032848171459940466405294123811050954484247839783958905536590459898478785851321991135736399842921601196640095854097775628239946675519163550861422148370713491416471030464859713072303282132512646428951503023845348769446995250855932246666313675877206822532279543261006274690516241181428258778141422864713317041478325180708923836213665084258574122554232518207946459603476016667552879113151929174670367016582895445234538391475077716613276446549877717948897297713552953669553034715582763005940517073208368752014985688906233063762358281981726490211803150518591105394959566254004423637581732865837250191463885867617659100479152473344611345005745660002517005374602819345143596592386299588912196356354372228064217582699291644135160181159046633369710366133752537688642017513238296087000435282033608342670115825769445135887940704935256095821369097105601394417033248214356617269402910772416843240039684228460205783080365062491596024836217022570639074922331232429256666460837507068084840204969450127232137311310965439786646100920862320656615249458624790621162098604500498060748229138183848113769115454401272203037736625063958824939685211992520176890773695380319285885768472066293761074134770144687641858851110357002082701899828520146773105356516838484154809231749957105663965926930074683906278684919082648235764416358799038745690761945416108458805153483860476403015601407543822456577247663422177920386276877419848646227692855482088527265636237444865048674657107748159080038544152183825199029623937326665456905277400826837734322930729348307787870275859968388681697312047534151251327984662205860025976927941171942468024056702354643525933186821454475968969191529667241864223829092269297205367657614768267526979108001551227563095484747216895061102559015723816823965670976551583399347534848277614537694004540027444583646988478659071552087473221472693137879523364259842023358525489737049814428725299074377899667035182557028232622212641774187524823418545841468940441600465113723572324949536531990323480932762352632123890644675289797170148725647643582648996983489504664587489883826446517923463271877875086427970095333150613740722221551652054089314845665743934066970583999622185200472622837862138266265652691950736938117559086890190172042749013929437696687693103816567784217115810686054447017289824120704054770188064170154306898996297486613082944837965764084250272207463127174210591518547262681832627656228577967845720931886189340546215096611307942184865586996669407899353120070384391267891828189712451470271952021874074361803584940728084684546187621116269651779181518623643822965295710082237778516499792852845258069613468797606969109570499469865940586823752151430670464982617782678460779795146565455915676975802257299602853175437401672628302919526939288923523685544437666693083832674037851149716510802517754530841576209907743894154742237710596699369877701752482769025192953956285127958489722179293226948284024091240326556751665770214346478039042361081380572010012501293770767169499644241511532888110289997192066464434135805406917843949771957223616626288620194902758441152014242705860208376840347686933837139571628565890896563749457687022593098741005754943024985570869504947722144568148722254069050312026492215483805138906670119756913947900034506397182688632863741159075460564361940503253561665118097334144457980676843047077060730763918043412278114654203144160218795616113204753309314755503742255400852475164542168331672474548031146703578189186191061084357410382174750510671420025003599569340924668401116323852154199998683279701267950567182969402310016007134791469760596506838712100884737612642721085632222330266820423768817197114854192107392857261349691225708956886168887541109996297632961937031044367419734585499862497932930159043568768666768725569699417713733839354212092413320081432629091758817575978984821674384970997293075103781207404367851063111072448433191528898417563147700254164981772767488574396535370891099824655510687784209192121245014515344890372184148184914033115867765502634317832533225331336954852474450693605134483814034093645770254046019800846827668194040146814770130853002784197572605197187980483777385976032133907207463695947653424837657910487581578343838589819637179879598281021872534549153897786624196392210065677851558568812677041259700521004810214870632501312827436451347285542802175051844426440063792474541481710598471170902048274931391908168487214699978738539038046358685182600473992871832829765795977004807365457093087763150805134529418563388227859629057806173540135868707879874351362377993768216521969778308599669677708414440017252970526476104059234780271576447748567040766681322585626396189615695951775657926033048436303623660552720197213382527240959212169365273736970525695651725935512845359895275330847028242850977808878491121100506394268461981277751059297322404190848712884773512557799198855526260657110702005698079057979006440015064652105433053782405000379854773985845376031095905007584434084340927581236201826242760086490315240411561748325359231860293124192535789546885340639630449560157650456208249123670114671108165981255409856829358895558780048771337140493247995021461297614967169579437541598934852779942429420319755653378877387405159115034185086323556587641310616138556880335105227045817595824290410185798923796761039165258996187715594377417036010677491011013143178210937019228091575245143643310456120022532162475850509386354119043122221101893623230989507798644281085812362781501915174696376889737757235723891285388973396955609568704712033245712343623098268009182009708600498174084629916235222638582789592000945740811451135504388834146528602108181050165336192526131724748037906703835178622529847994761213059409720611645372083206704427557620012714455792689225127592552573757207282919668872620007824728984550423422974318799084343302965557431275204638103513318142694046706545460529344094417410675865070646463950850963513524440487623326346761762436936496087446855728505401065196710944085675224992299259237631582861711207557779600914835148622864491203651232827196479166579754458099781460153420937319780528846768454369517952224031514174504872010849309882224287664592315342783660565441939272890521633120492611834382739559758072681396375347452136380494603065020299828599470734117383330449895698922617816618790836356716280367527070912916442530020079551297326237148236994323245459277353963837925259558221107946579524395993791186494941668950203579909035961248473654973705932332443763103518953255449132617832227997285015255273575383019439216994110899243229617862886376278296794650611217423121454578844563902288170021765415701635050487805915174791250671518566601638106609868093628583112865101770857832294167714647387690735465651187328216837133211726412869784968836905600811915653726803835047801557488226064693919613581297127615586380325130633557824420786982858628654419647474401123797181877370423825144476214106749795095917454480081941203291850614937834422203038717174566443786772949287558000761741800426632422510922229400542575665312985068530242869176172032049600351229703088920655425523400205934605934508071735747196420162997261089965847890776565063074727573545517629124159341934838495854386399496997795361225446920202664313557977005945270860773110628593713450091600283399562580366270899681939254165625709798233507622707345084740752840307883560038390983736696438172967120256064570407723622783256067781851040468010763738481664997996709597325845336677463350002565011701940931176307822070371100141018936284662308538469781473256141153293452854235073728528782406200736167446519477846174805266594294631999123239041401669393745809695161866744851225991450862421733270651676443691796235240798123735174444468096175938153435687392828242080042755443604817913376535116355794000861223713688000994749653664101664719522056965808142760074651108944764107118824181880243973798643613117950520992507582491005239324531085694485796538185801635173838081380982680974622931965719259748895981659697438215644418231696946759688598673609549476565987817206695306941009626970633608127285351797870117463605930039483709050736843483681633129284794800661561592309394248910375970221906181588203315392521379050183122754690727368062318504065898975391045702198827267146561227828864707350558070557287494317617881821583518587108489641945871026752229474304675901681921565011993716343092290238562072025726838633057853343520106157162761338948296131797441525647790757465030768627408126461530063953035571419703446485148014200183364842839127028450844613591711191071009691652886721320262128889693876799888432579193813816930719062719960757051027133025472058750268267644349453532304536960899173751083122134936187261650969754243803200822117991524662924342826326958621298652637894302976544065046917437229521361144677197434443609354513674331531067282833498531180653445753340251990840479799685827419418872534534709729075096293802953581677373608845608997758806279423634782672344874110254248785542048386991448912686134588109275888575416963911930579763186838723057112713311013292511189647298531609166209134998490256247872071114516320071342045505183175180479658943486852013519377445832811796623991058638778309765887105445430214741126614395356761711503994442650448131854715132996377445375559762578568688405519220639803603923082606374816693386313111646344030072666098439765786265356128682830900232868797055008559537009159599699026441944333848072906838454668001269390272990685557902960397533110001549569369868147494216473584845894916477746137881099857344216079584877805536376965515982510865862681837005959975744245076751118241225245076472952602576462575050955577983436223897366214944097156219655095820644390455758297365353927057477959945575646674913735843220703252467117191729866411255288383573229206950845801198155576001307886427979237215724191517835503348394941260443020528620509204009514104088203191384768816983118251498396878203428753126377911619092222758504958757077917983349830993780436374378852341141956916253112289022242600656120345513128449742097522431624209528437192962830118073557212313608348605262000858196126525319357280742477325055233748524230029243996081349476785465009616986396950967493393246345571981850866443553139050680544044352614338955325344226361724810921728374077525515473149731543685871364464226451033572018643042744897108939891889168601083752122453529495591983684500389873205220521934469153400088187017582806110333966827867950124911937544396423731915608469197264334961715200307318814930398456591400113962951693645447300609225087991678882534979958855361367612942653473634738095129651401416215144959776110926562908753476009223800395014794412736398523382532218607815556506314448384211027226669440200842701065254223768010534235725909479230968442085253256347098914549417655488540058640179572368618772034775124165098829454843502006339617742610681063169601445347170142364368024916938721990245183435334471745268132321789021872119014400166251363741451881317515034400657355557573180457491232711682744784336083626097265298618565651241117745979855824132095614892475526986216615350714806641571558953230709633494587662180092903405071594526358669457444677673100765808567346305062477625445677079585070764853051115976357341545822971595236784966331676490658984478853211585587946894489863502358411770600049081208040706790914034486632891951076779813097435215847197613767608189766597871318923381299528025155512823763767211256668062465552553733300801347661451167814913948296232158034726141408833742687735159131659230293767797757320355364962439085216317952714177051987777417517432635690504166631078340700744578471470550716337993289166444246332687230680883144365458298793465318564255712301273427641504723518140708889794164793764052402948675649940802926772377986288531661154748679549039147559439846934974115151807388311507345151839047352512411843752036158327455124610076685696962764488169495359140835163163236784530220607483621171576921872508534824925574477802410142473382617529421596079297300473198253979095486305872488901292716076039674359372207443463516376397818412539725191679337186549007169854498176761498485477198490903502126834846084043367166541336075327472742186278796372775629431048457288044239513254755754058788019683153010526908862708716801134888788507299598787175854732599165580964922215433817765658304754895735165874931071688213176192176902202536160264146503361139449665107391739374629108939200837394520493876533773548938837731931552989186428582098724707886827526526672314083511444640212204544890949221429403712658361738718293693345875765555808631669744012776351610042147556518418796099069870214253376691238850499586738519679753201056497432865648444983381488025535242888603405628511977655528108123935808382371633435651425991680067707437752362787882455852858925052729461577314742436144527535614923673733400861509181615015158970921727437685871169133826744983246697666917395156156719265840786562023026054094201643238350015955711583202198904838975658397842450204032637634683852480984932827775826552747016473603535523384816540447486756893501594461494687569463637161200240905584272459161863036708019645627864043057723868889123210794004508351494558934653371425288358033521865865196562565911769330535241105952930417230638586171704081426665334346894523891090861975760749484522972481698160496111724982604416053692047429777376142895253201470444598645239681137992552532528692228103974607001055099465695926834152133338992679811318141261718228250733606234762478998193788266560131621657512469094237165436345707482099732636388466860162462594382804726032040624874839230144733800800309025103281529364367915330951980901877322276371705229736154372671129598367553172523363467789849008072097253359084890744078199937542720431533318900124870745102595193493495792684328600299674928146501630701699791650259435371495976916601717720754458096556851710889777070270048848420837916295397573649638950616414443607659966953672212054065969485925497690244867271634404195097314149608133020424260754714745540182135376344821598457207111488527163306123471513207501965239352520089420623834448519028274892709934698972113119523177386408718076217932542761871039610068944869129876956461080194153377842244280498243747207183677722951300215980550266786282907911258358610031473160926927397478269628472099026888293850111700591971088004419061602447198911781276828797212577094596031620736119040460738813264959497278144509436466026459824293186461001179300914759523502116535672229921466491247381970459465892298844967221405926913563109786247678102208141723418107400487301046124979192535194970027919056753866992416804782982366177565418451574595641517327668969958189093774834144739836554425588003945476897391961145019372067495805800953425973876730799490680235186503984442525557126831356533571770763575026143011439534012829717619153350007505901967923377665591340392442518806328321107169948096183934450384911891883148952710018127162545685819731460370682285799033589492226036230341684722810773841063275427990463614953486866349310628411669999211046093063234404288516676413740725631201355112227767386226000727334157618298492790524766722801101610346484804789957291888038198150790256035155190015354107590638622724804309218017467561056463126749030160168466547346384331193758174443626267355999734678351406612081926470998005149813115244066921175171485434383795901683185562351612202434646224743892618250683633252574378347314795669070334533256402537256867961445422865654413449420950591833733023993114703805154484560531466276726846944857314113669618484189438176396214231640265573727939717461315251109633114500527560114851378305104100958902225657940423220314287586338049880457490936694485197172782834253236835004531068276290415350317143715918080894522205968657224950244529125691050370806386715594458359082294139543228984815543510540650475492888470681284356200932493944520142235871380566091714787732056809605512688132757246466022413569769918565350802910111110925557623628301234753064454477318727450378051642521293521405088201545043942524199853482574664782792007042568925395715873069485609667870156426349765366090517006558983863930213316106764555212911701122534033849568545361533898475849501569998386439752685399822539397008033676250350896655359476518187894834731073245499977321687708966462554337280366419206541031092220674394620236004497476681688153494111176923989929163061233655197901020615772369431945094130637482419953172007191606680208623235550126453452149927701212603234878026624294528814228690162534387325568037027592023445919865958468371915858764354309416358542540062570303277234426414395175126994922038581426749991840493009630416764811062169440444448605677020066714017408211849697342801611804972848740728989804114800809452718876412977307633832671807501966468604615357186916086674809135300621049099864516091155933821011017005814596699911030223765258581137453260794990694357091261038633897858693200358366619199038833387657735060621752167960267637341910764715340525096758759139412066203782521267757246010017030666714830578064438248484382430340096419489010402519583419950507156116661652170333554320874503768210657756207673570055843014790256147024876372386202443386680389224651376083150166749453272541344556009322853033301462669321000789333872634526400576310590525989494432707372891590102853427328358355339803535716568734204141107102774150794744970898509716556403560168145193424866787382164073844555644078581853350885200903954111429180435334302368069688122845042524703624048294940504352679454772236948731166575989829877701365386875332395347653654528612076668723150005439343299322873631526141530680846407199319898386091672708356620697026849030555104884288442683738807780580831077922314974590760330158350451731444781721260134124527067061585368654814054897213542951988530966783759274848909235210030380222543656956932197424035999391639684927169942133085712389893546251902203639001835874974079164211732013296191514975240181910463389653588887822540163326251316641958672292109113286294093792393576376654230715530997131980532862390914924222846456840768652821965103932012068892774302325339639341257135253278200947027329012472305387016076143547608307917829055189351560783725425927877603394574452643717281564224118642993137172915318071652440141124185801939916984433353024899698687667366831518066079751086252033904138133975234706315064690484690203562310356932285302616012317059976110112710959196674361283261473864165888155366768062094981921523441226922386764946213208805887863170015740630218558969363009208138342923780030872034249308649241657116595298809499493518903694151517916987573279872722494645978157162527768371366106565621419844890160624336061773093988897104944989789389670475127269576913636955986848587191820321818341216310447509947646608683485838350164602028762699131354680585121229101807005442184806540247185953342748868169968081768071616156179130967988218233824385932049474743120836092300569767047420541552031058623657369586490418528319104109926310003211537669238673069112965007757351909810412031181649728333059317874314234762031376130626548422634321828700442614374447740174105901268951028720661894388079003561564251593731725671717779673842928669547246989642260271603204897833256300909882702958236759359652168919426637254132533439029353461229838181199010203647951001329114759821437817835925608775532035443957903543187219859839485140605633695644023296612030057016282978988170346666117932539265126449531188500593477410394362244818386071993446260852480973265034656930107166247189511696071716550478860995267527237295754029105228719423011399960927571312556985336846695412283188277125347226339955077047167375006352820034341005625899848993299446365913739549059401873316425692422311094061210552568705724211113537973170881311780661600765488066741532062386119832182975079462809954945193999250799444160950294900032145664184477895042049592171481462378702156358553562462784316734409334096585217005508762633730110852000812164447959134230279894643387235073774884783258803217279369551178716710443526957174268733317936834629799831683672239517032503562580361616187693987957533476826008882669704996261937342289502921516728613334211418646309076950385462348083779169065392093757717126256787491726833806252355018282501883726050335022239590564636844962331583486894055984011717064461833853121331203777767261167525185569203667653959702883969482466013762959005667281108513228589742601862810475603759499036899886420232527027956613279501086297264322493907538855267863474345019731203686641639417006882457040966793962786439159985815173564501068095039053602646197479629287432007321407297066413471138529135866019839427050387113754460891092159090551375393515858968158299473853940192682720362696439259601489364376074789940025907250144516084077651547650953703437180089057744786071004414273128301315303058585824476048544694936915970002314167473294451870404151098649408716485529474028646179361639664379787638948554232201521158356252461415594955800634259311032295320045003660479281222198459104552449912776150685398832332828216709579411106346710552241526553602780198845254226760635715170300377997616696081920067578415188617309493566876760346347235522607744292916666886517292282715979383724690075302723601754706182694705289806712578017528570473957957630688966188857977296428012940907931915025008868246092373592136936133593850232126284687600381469333642972759327246887137534142206417450745571119448435062994012030312355610639780531077823656159807471879575623415788341016729215259049315964363088989623625099240803256645082681016055139299101697791598570085611338530736912714525306823530827689658689655785677337374859131745438773918630749766570880074381579783576805216065009957123214780822957133097371867314686657551257894618677986498912493146445824558196026388935072049616119224586955276924992574350250118738937971475070751525417297561286604987600299730986794226802531874135680070109272160652018800665701006566269789592123583354337536770566535084250160728720025576071603312347723549212913355374453833910631621957461878770012683477339398617211426323330353912992574215072579246274172079869013155188582342280023817711421397736332305711346757272092255721819951339983299905131557913438177334981782845934527065031574351352130922797984355245729192367334114579572074866133782846966239678706955940600117617456817140464024061941654968002189286298432928975891264594732960068084582721835183150563408430253027332320867342930420989009048190072339638963415329784159112974404391209467816137484944179762767213637996058882347102049491001363459217857455352767825877728152041113230195984137388337101455441663400675124945849776936698836338576935350393912246086514687885386374338062241452169484636244439999206196266012286814559009945204452760646898426609480450097693397552941618716211033245590791040393035623492986029217229411892999745636156189070424519135449083993504151651980508294133187739753449135580066728454095319606047663040264514769936910730857885764569067893688914005434716400097733343817998905353336721486048008219823915467230848267349031148287372806393167762276281625391504586143766515581750824195967012893447721523528957591619561492316002829674653916840290952509858561264984134400961642181121309018431701183604386884251492452479915606132380149526553961417939888057062803866459498557285880031768378494143856509672577607198519123799366430582537869129135954727830528693676964362275307758224238893936703783111730591909234702083831972425279786467731923035529260814145740015217235343724999050856496355222831275791733056915086626130971120447739315378428231545854915390727235001575926335993974689321034794494435248759958806040129407944168601919034596487264996016566411915093790177836296811314839550314001641113513105445080605856870348310502257355383988976927597160170517920821926681494713660577077854277782102112225078077271753824117405959866238210992269024485112137874374200514703383114820645109605534296906695579443673569754209139703355114568388118724441634196619069257172535795171595467163841235063573751879472899497029084639684275987219779647136251444923010793253270673554348905523140530993046832469867378157573038020916541513500641002708778338952844016658235721258919276545834871666000622938200003211334476982859745433515060751585730274144010162390473620463826921161956169482067412999633829127613864562808119531934365745669048758268137259669433809634735408778397103821712661961307711250625888461367037472150551671755326631704485118791577037838234338727543397246452130302126771085633749089899233403158699332358567093517294842419863571944202827225047483830237336194266657026814618113947846780457365704212670364408484122732203552342456319890187962107091364044237751594225046171675892993317653719014851488971909632021888669126952242307131763545811638596897838885293625416584316511970545759710185172239715363428194160848499039056772290950796886670716593340149444951786763824730950450714001394361548529817145724857276757068621652900899524236851454874276161289037580593429401467668487376643315831469442974011732468639584096102018295818303758420657845310249678979036831275128651739787367617445424793763623834471329359370662602580404737232676005555081737267224431493393842537115159488790532212101974430372087328023618772084818943304323096283909999575371379460722224975283664880088522710970272696705326795063770553962402755739520473915159393531080652632967114189198191013170530805873993095702716540692409136226581107388431954369708535895008327660516979303610262478824501434963766344319865289165358202115298215486911714370751718269644136572761562061926176374286073905941170556139934050732078429159063884258094558276631038213554233090299606662997500265132950701165790121025007730907555695414193095921139825397822346966071794277142997123085098647856856422676924665803754716559140363266802716910669159137455525284185321032336221825099247725498031077899845083478588487630385092119633858969674692243372060818172107080459420624859343607663094640405032500258062799242434516265509221641873167365978505958852270982654957882968013377311271223753503248493863666065879274103280085810687976616150913688280094367346149405318769143449770467282920255750884551118505302531463229840839472247159079043207681271039914985725642033905519441753172254587351915853205470492650332208584847218170424993622151666548184589320795788643725290855330486739840139367508344840725148709190025621271221955077810899983792438029263074141821929266627443254472407556140000576364181034925685267936660893928657101198239104868418891414479426999985532457984289798417408397453332571081640159873000706712851979772918744895377745112544376095282493500562909509630334022754189802701874866519370901401972434650937773534388736242004100130808923014996192069997366386422747004852299229547079141705380764214729558890746537672093997523302314100290632147780580736252980771893739181834125624827531465946636550416908722141017616998410076077116624851043606633754603122462403714187898817614918332646823977997046858669063802018398450442607635878396302217394751170385974964637390465649747354215136637061943722246809762868576701025353445169691082159820802353258153547291270967278000037316103168819249432973629856030241682380655840043471043277099738810624108713512313243307131236320962503853192956751884984273398431799153351310180123626440587794788970880352841134435378827733000401789316908212876995974874300223073457479944711369420225228624303214720555747143651756085176088069151687630720479374751793878783059995809167228356524577644186642449595981390458580049510442421975919838271169000773048708661496222557757332069068996463853281370972374030957368802319473619871969774533622254747667389790333227947498273891872816417385001067300597547338384115879475139990158975377118181618614886539827747652637569275088505744587915055585888359947627818851527107331471508369694853348586931887062265830965949006309212042413055417740828823819990574007157756331493253260896594368713180823531261888770924485433594524336483130186024883580738084146718178470651249698060633915947094512964478286467713406462966409256800558376884179973803076105386261776533473984845542936647986339534356234489842204438926218299406143089887276041285848386881103365449466550113984874985172369176355050146339731801829656635712866491938522786237804197922503216377681805009540573998609757205139137402946083588223183378282620419155698747919661801493899846570962874983317867536733077684536479801645476507122650314684558795398800869114883988422693221832238549567759872389776558614161638111099632578732776996449195717644356646421797596540909058993445093622823090856844406842546842929920903061557528909373137022022157429448189633765266267471476346107632053706783712817416351427792523051488308219105919751960843439778510000694194628359635720578569891061005891698739793964149236235794383730989739967546127039507294422021503514847609708011156335252493001581240443551618745175989643378796314843662210634750066713780275791731153636197676374043023643544946285172459583303163016406739105844296424688109001838935665802749652687028488204709009951570529119319933439191538380913634099457820590165931769671245686068901902426488004299791884757709377159788892319391425017157738204301927994177143347253363581678199200392440792927844700607394348886820780006671866384352752339590432085670362750739941884873009443878025320559559720593623710839739240670849292704775077542807290472805776482213368422495900999920276968442667897913610603955704097195961688688374198140752597684690690445543097513009702335390615791242872683315178964838480122541500323412176502073844427893587989872249545692151472240016199371110403934704751501863964444682116858444184071439132955691801553964064737476732906512674781357219709241612671837587548688126968613357099411724263643720097397774663022531005859665579627499955751052205683693225872500469023559955354711805180988532744087221786629459687135226698579188537020228929037369933452460315648364913874230298834480314026285728838887141009214604367460954478908422679494815893045132139730581005862494549608353149644592146860744212676018183438256498200326364748445682002551954931700434061569506500329697278005373951737179666390603410176796324303275823188956020952754915779379553256103123310691195461473845274273748960415147899397125120821256393504820082507723590199980045941512271918646550202086670506604868813944676606618264654663258674106635679529493882798550489878574758998910639253968543603390811117643851157029535945902917547951124464800571354467562704668525952519860434346723565276229694339415353439751906910021399968493498122739440017123909295890340298623799773997477390491062713158898728557265782549589144300055431445005092858017005087806065806408494096158340798335882468931002760813977055744145328494949080197892547747758544063417999814807614862173066385410064532848305819918741018358333385538375641403709940543703114441237661588188845542417622771345045412507127889588911559342646972428052107363549804987762060175369516460932238475211377881435110163794015861865324724353456191756317582309621900347430244932729326379592179101624954347215006966160263927893328913369839851759491699134896668244480112015953974918466371154162631624251575394977100122153429708306930199345877405663441346288621595396226024766128375770784701710021092103816521146408604695264586560171592709065158780020182155714635703886096762335913348792148024484432678355599767201783805550564404131417682753897729279233969037756285603970422063082559450856834915861040096360482484022417315719658179401223968032374169879815796536856942950874722974861876516206994461666373195523637598555181127765795813705900161818247007008715847642127856507781643170905587751101479968928610589088699068143379952895682106679599059524806367597720904713690477660947118928805735981760560240341045789998962164049865931848748173744327570473698679526417661298498043300196054140158107797760617532545818761673692083289231279826326936524673459143975035537691492594209889953713272261523398895404552333988019550844258613645643741449459908037446564400623502798832341122584305735491582266546229219510931313845004050244688562809956861713691573965884907031171245074672787777106870698401643826009734007674064971229037284088861766664419893911807516855957508131651773691352340739863004001001457551083090448526175244867488679837909859790072077538276868556667781003659762553079764870297781861942351144288531048955241876424985760103466008071533378537451221517521552884267727452634261390592771275637559541142944323493407071339945002512537461657073232734820457531106511543539380416639709193171738056261240553543989476406988023883145425468711208903151113007022929623098719349331476713319271394214888081546901526752600716105566674465494990825244839993804669748329525423357382048008598334806920091750329761651697236214248578907593042856408187010837924907444333073336534382168356650216190131698160846369427516630467381894184663763771007383973458196847277521940889974982975385118129617935145068427865231790268666381143208909992673387339339590309561644505515274390334311273469751825695847509268553102007646688032261230789443107845605498756462959398357309454552283099083031580264896866190719876381432462185594534904831765045789793409840445451335415531133106669349680718959252723855218977761165895357635106986059884376915503651257296614997675575005631874849127361698211543680255796956832078111351302291773771171840667785286267400096769203347909489205477310433843893370720872096215668360614134977272913690882587899950936908678149871199574560608614952893144720839810814711148147733235142571383421257539578475667579096180195030762020416179534236741765802860499034301915918390108727112308670229181999345947572622164353323932920087501807722122358324069941092294248402124723786231228337604603609956257860602116210225672992087083450983461224964110417316429261770944485424703050704204024190286148398831841746316817887127858441224345504363484574698581313623580149034402546040792251975667730576564340587992081391135539784055022994350883851749901531671732408918854206984673620210519564311702170607512212751234938416394087159794445736839061091226646762976360494340260855161378403268233699572349595770141644022219149103755366235616117438719158229098903971627605126714189602040711001215559142164288114570676618551890753812992752701536456175040796383841633294944067044796272041801956219167008324260550186476875595134374862731616158157430536403997631183107126514188284825712267520565327793350758557385707955008611478421586897396164605879907896626528417967479901219129025913560622494497871433699252455353864853980762480137644141331827913048051956355913351125478484776082719290055732819021853781312402576155062432045575513397856343603028799993414503418525703121444148626908592187543110487941854226933142369008450853069947946283510824588427686097897746579107542793181209948118610421665043856873962435514719826338397020929866091264424393023681854121398351746501577703780477453489345899558729624005689383841439816894175887638230569363020302352409125422449999739017179350301917391248437790000977952696745599607857367299772605852104725780978623254345278631049965947209792931108277884781666220323780901087976333898382359629319809354631091171790599864203216398735797065782027087985686788374327116227922143358297408005631094531724798320183637020186858530056574879872956262253225517613289849081055336758379510042537087776454472747406962976778145981260906619665474451317688046771015003555218039153282711592197295817326498203605042913669092475523334763634986824080915230369219051342215921059984041986322573826239565256054316379260957599170456350703997193368625626784322375723963986870890116030802022491028912715817432445544032097096042815786967152677809423794908894167186630542666057937658791666080295738528512117252178467150154339273332872327017017234398221701141331922885873694853598860373943528713439285634768038030990129901094637028891238459715149094887841683443276734366854449778941301205500396067647493020037122879175582599098447207880332592125849787507299935399480690529899698244611313978156495753964836897536393889388638658208809542258815605819261937669383687056404475100523423611147935082162609426388193860914237993376930493286996650788952598102407231901001897793800008511164230883024126123444802634466805572912041347158801901881819989665142446299841882193048097809723332903393470840026415452277196336998812471278982031575616981424335163247305013813514493037032250191243246504627607249148590506494203226123931979439846474098860893418503271112941286432197757026415396481872395553075540910656402437890396677932599154681366959612603806726053598359579831513048311498870554876988820752162461015508822824894724702352444947029452158774282007187320844722997509998450632618038215537910580831909494729604321802789957361551613069655079482751128200378166918810156565111669825848073389969511883265097960628518301493143619056689623718107135640028491691095643416380383197557476821118532569012001292302489324951181458284043798454204422495066388064208834489584678425186049801923637780557584859700717711194300491040520076814392600823137144353701878883144074075447060622790614830011344235172582050996260841850019630608266568271345824885183169059254802436306291072815728241981712116357258707450036825852231406076922293666744145755112579879103671045490676227403256843555292436609243076625748806865060262480009450037638560940843297909041649361769656211120215119866111370460622114360722799299835052616120366690183738132868080590461377156226030326022327897343453003059419513578507609778968774001731597227494648600612232235508094078082087846691466661382409271250608320692884765947600350848521027365593113992197585689811678280461010797527643610821851777853961963367108967952352624783532889193077761935329781876284449167178547997800575654729189107480273868058529947771315983073241589924517335310760815406390501385453128565289405013743083481123617148191618920316856727559007235516462956724275325681564545332182018056460341663070640617548434747750249055869103278626215468943671245681882664235184598861254056906312145235657706364443201722228755693374386988497889593458558645961541663957055838486612681677659840825597029276798699580613960163581193958548497850147770850519853470150442386839536774840373298190792484115482143795325478446901603796689983048826495902768982817898311028846707671038564029774227899488049065629571048150776626348210447024489785639421484608233881799346280666611534973486778872976056269406972291141110062257070523511374523903234647599624678165192293748025632522326739285701054582852411591293624734516309094659603689571606923479101147524799753276900624834396539836572874265367308420082006050750691958247291710365320778729921453623763288910568273053450817597044151360864099843414568487969911607347526834080311960552913349737590295582145920448927285010222541325457353119705595022104332815702264285975570509560021152564960740659831697280674691455283172876627709063267646788043995232271047392734191270405513373915184535183836792669974988858944047688368064973465317665394535491802442411457727200476790134726022737005645661468999520948363000600789216823959547349433710738590208971560369552182644662169422999679839076927504965676035091244952169291228833515744168807272656946905223010052611652372097661356255683920264954392592420565556720149386912127788868160160523589093705291797693510885974580282631565805734585287760258041740377267022571474049397513932545379977480507002207849671502038240690012503290421230693387651742102771759292592323233632234329159348766573094817297136519545742128573282079859062458721380093455747858309646939390322762057668671782438640039826217415862735577538194699184949026402570361052044909293076420030795566058810554235010767922970831217342293321940347886722785061750876525886316354209298830772398767562388941290548472210099485966499698660698706242722221724350452279558779617854673866875293556118288946904918038380110226184799832238346867645574309305007146304527221877945633123383174395826403571699376823385217942888468558012483009180814420380004272463670322964487092622261878062182846608948278121008994154538999421018324008643540758162033299856281709204875043412066470622448860784170864238995271354944547355739931892212799766669812091782194809135446282656874388485151861179499058477072333012546400405734070255399004385549397191505504153304523501462065017121458412831941828323236656602456093191551696574957658621582231852340264700854195687198049414537685427466203127832412814026981744441421061869519471243389043766180490729460383269323271659898235274385554953686534208756307407395602614944301787251837344848636027440804441841761113142940003772122434573710675686863255541986715897970536147536755614245456342895174584184701845030836453480336908139764776113443973199970724728072323698666341211311890288919555536684080921201333488665490578448205683198797137897380758014906978133049324996190763612532881845762627418903885500297749308554655267372272374137513424693264547456491768974875999444797340537250630037887550493037738491152098797360412235250211388121918665657920198183547193550213501384216348807403029466073859408664957325689838150460629657273644562625401531634669156626919675745537263579166814164396666050834229442827201569183352788509442299246914204394450093794707609966357657902607819891161175504140824334006548297102117684793881606515297171018155862790661300130319811659083442384451013631567794572584369741907304918181370822426489738718375653538063851095722333354658686125975481167619076294870630281710633259528029720984648395257118610256152880844252365296193895722940800377987013859444418881876849276127204023098453490973050368908525233794455619267282541111377282284356541234766646624943486069360679806552121434985609545206692426854567844931434813371236103829602459692185799953962356884205892644307877127172610194117426841432650248765494983935281800331870565210301378509083202191498962047557656715396880430117501856430284456140806746778892400993458394066549993598305729303818112730653500919480083358183708677489678593814195108265286518503364241367359911718903333688462139504371194426479485402606247253831631589554998966173394603433492381961848322841773037909969699613973544440946755742086126966230913017930705977539736683581927214128629426540838076658050721943179897905408671286168918171984447002429020457593658531380089825841495882417227202083751338260692574327907144303287468733620498176696742306845694744564718216295289419383705513425805053272633186855887728068397480324539501522223420420790798764935700472223147456676816641311754838316416041161339895517736422810673710211260048423269057227956396526106025407430110749220708008558228782001026718955904211283093068559133579097223200665970219122955749777801057099636373403146269413902776739172171540058413922347577735031463613478951569787171493333082669635338170309300107049691996626195675191537630352566265035977564666707387714944115523582237998265524700897711923777664198953969860708526902275267813068215425460571575788350340593729993874211747394381511723048047588654520749183493337181958347963991114717142233347245485362219810222542405998690615983130950694460301561223248026820554410320037646786187014409674091649808134728846728461283151265060762367330711598105241892667225647353694215029228303977962020248758680657675273380475217145236280338661700534522539211405650977357201037956442915774629524237061116316823793716652366099980799304500021707255176212816704801945875764007684300858313180124777821846864696802774946164302218137237392021374157879605112506935884265226741356400443244237337098185009369839342345205379226589145174063741258296162273350826027499302450292350716176716691413350855957768332988813847661024440420049569982303454808200071477719496123395334058135130500936001179268894717002230691834119918146327709384995288514579350710208803241571540335736278983263273727992765293922126969569587417878157418254258750171108957728169161786135250093584828897138556839382859516180435796494665493142244605999454616715696244942020432372439486471008251633664078889931229727381637717097206709295180119153102005253532097685827877559201293999626953461646304746451320766879216754220309489883596299887765136026674121036079824444096463446178539588158034503403807503806966474529507648585664566562021646413193130500011711615415892218056489205697074684647619211551166466256236105532285730602062570096627535049120069840597844499965928919497012649627781860265293733825699726910849085340310135465642528733437535009656976405091310469979805601793185817024928808868805531966237958668266836821549806387096609400631393937159641997925004299011015270678752106873143580134951421304921420704091626896041775411915306779516751656709184222398057872898768092132977474497532883418327397615822461944217854192236201997976231073495829513017634459216299289847255710523071434242370310352779889301392630698032764081785637169434473335381231679814502801217889112869377748020050644114764200524991947096491894842201612791197815587975501953852762953053771313369589669517739885198869577823143055091505389087931765780037066482764310905181770438931685503289984075772889481227217254492660919933700421013713631984687142885155814538072226618443694935444948220608119808744946147015700527934161098805032088017080735709696998658869584937819696810764506749077159167219336267446708042020042646436517367201455803578720624396359612024023754385627274444712830495919682387347494176152540518760185566172047609084358349145080902193423939313674212135721930990555871420324457455108512684578731086978628752717110480257760391846879937157178237927666005427877825328248956069804067513500588310082541003492266447523440467004344160252275535118219559955238838046017595120268859688535580022146298363776469421018482870966528724101993424830422166056951889804258429458121994776420047366739209564046558289146348937774694840530775546163361386176403596920333624985461475352988551028218461438981866599499899160049076783748562046772073504322462684320867088668386432686000887857605208752413707050001922071241620796238666958223579106588877238647395546616531274613799395528776473706946416710397219007197495025917687691833142740698770066351453626694116510964179207362892839283480685802010697264509882153524337372006141107309485495036675487467142333079074740154127551697800042644991082826760910599002024551594284194562492806610126082858578691957398942546722436660188888839332209815961791036111698695430028249244505449814424458391427965410961205775505721104566663782756314892266330640903746984816439297945750202640449577017519990708432691418798544894780000993303286567560943720514299060594713403010729279483332131528183871109796906694425885869842895078049038939468412532912632853485555177429101576732689029256187507017492644902411297981214493744570202839445861306291407780958514815722061425412040677039787153734069656850336491354704440880312841543539353068264352928747522025784636884281650192390413909114142684974732690245527407367158563065254214544152357650311573055975790779320811091074292603522756039271436661923389021098113405715119438095863122549852166651876346198804060198376730178422800799068252607710964148483066024238389004244724011190053646278887195985181891441963984146874013916406117839456423214271834043328383219177115348243545919312847481309749808423466140504711411038984531450821770944038601886564196285908934038049744511704551355630448218004230744208209212184627763500652152030795664352134230258015867444417319951270427646716274777793106740156119178824036453396551482316542733968960211651747287469160681067437134163039394201798624170514839682850719427347215002680550579081758095648885379561224689793196200538152229573020803843462180002696656558919010280637496859185562528549331554026538516569189009178624251830680739133384316543396991065443384940543856257067431834305099091702370651781160427483606010977950302963979995187396394534536791690710685769562269889974125190791300640575424123047937656254348968985983057970850483603588822325459505527553683366361460572416384353433969742681272695793849797349307748606192539696485836315052255448581190283258994891496172780309647257214934861887481972011808733565849355106293237270608218972059510925094945364627867694759381360872516578340456656031741065281624211145647394907646524858772025349200896700308828672393607355869395804891121523257508097628368344623382471546200673836574631505244497230555741928064203501795511939413248211641703849347847800666361208368962742436420432273529240767827461697204034493876110014170285239757452994684375677756613757852003613486596862329968571197704640988463414290858709255090450813831805958581195970175260215470347690620044227060650214349170639510984927420879392460820219688438023495566868227075509060383182556933805251097052196786931322241703450340549599967478523161336051600709094353995684747115863526075864993388778632574399809812854532076756136313799265880131702757716230888689801473473747059417728498422356512397465484872909959288556338911511712726896248818069080572494807456692265172667986659291863757591954074635033769697915758051367449072097120117423016029971888946657194817058188289816057643693740916001663302356408241878189120889727483050603054237619759885615013062085404326640154591449203396314773560997668617431851119634658684476864140919524790515657658984208894321207506018273612435258139690881694586068359375433421034196645332495936547945680012187773277273655939384516566145968710724639742704780806558470505507407557896561414440167255768700470160320762083480115067568880424455487274165123409200151599677297430346419326490082341759260169938459170859482696563236221818714783497921538424205058670188203588909613654715328047640774377170227577029384376075405257791604655610646255375452076508913747463116344488618520726101423469060364528396903830570385456936296597462525088848990526355074005759046019987628005446859620101810288661520762516736967066769854527561071039292334402636357196215747522418455719331033247527705703804304989262744427856741486777431225058932551963630332806445592111344066848334023164902190286979724660532812311742489187042827744483892555400520913326293838078088452329892797510416173751186081648619961778011023874935632664276691793066130764726610123474981311527506582701570533681695483878616628871192274379484744604556028512089722877558870838408303933484648103451194069079861754293092156059983837879936024533482770347656865747625736811932522137282237290608828526290703539944699828776220617028287520634723584304959920838218078727159354019016699927961520814382203957151974842960723494882588467853402077374578298612596232408820328291425627191071358997464136125333428970046929389864795558039240553438798908644380201233843181552059600325071722413742006746021383711563785830675402096864122813800996354438187709734782741408052933253619074031900547600020264402260021169892585102517331762243874816278161018170089231595176941460278194662416444700822467756588717907401014298126347428375559704153021284244511613006498532975457790892471773876395981262846374837599807470655653210746160484184489794956742700294861404831388860160569506828079164003806946143446454122569670894717116976550674584594474850208923538637443485234891779934070354688523114388624986910041520489069948189906933564568849358801969255694851953843370138978467469574079768360904673576188717279328987478296781363846003737766031495640381704889009354609266791638757041424018926657909165264980217658352096569717711003447481805129009156834736714115864161635117561427121241159620255235186210540430438687500337323580740467690513172069012477651425338317805116257528556886488002911137433997580385908501565446605168079349194515266987693671234412675367090196363914113500761485908721682182574403968474409341711797077215408577286288902876528889557472581426750500744580022793940449267519103168270002158757124301532771229898205750542090798918430104002775855960559481475927768950931099920546077856498244369402355065923527221602301180979269985798470964997322992745981553653625436432409790241351531913778602881092048733409825033342507711709725370053465490591443487301218268292632264491977367705903227616437953205693699677995276156802910403923597218442352836363503239846066116352575385799213048952467838427448466221290447388283100827586441966138058247791223135440432188791957709737542046349832781094715769550816148238424771833970470144744173661425247877163204486122834257836414610925164506751014856949333039311632168350252781440625787828808961494401205718316980347150361210201947817754435519007307594524420335502627295250193083481065173290212542625585035382601262429082806639295277920575934794237458902937091955660186088843208555116060493856309956298719909579434315217030486854435900788285892927305997741672096564255680753603272376706796101325831539294600349429303912219984227973622482114611137679430998030888399100193239226945858564222723836408170294863573556974220128315892546812732066384967270625140598775460100388846655690157904768990782921634298505763609820423470933188489167815044577970355486020757298951651447578027280745805983448484970900576978687908227399654388184400621946200149845370151754702152922893941625824530327345086228262089131748748175808784516795592321009588745069913610453190179314601106609069790983800771969466612505231631634447862476271450237234082246479456638885195223334436884881733933986962385312164980294967509438491153508293293752532899586558740596985121694545330417345462753800513435806882000198841394213524154041168863381505774039262449472442145552880555336970135107741345432233553838983976530436030010761536631705759100094192169608657600250285575029751770332425999156861316130866211216540336109374043535635989262905086105840057458067347798590938322440596970045374141744527239985724257387437048534363663154808797615371663446388655423524113162571809802497289484621344104879551765144777224061689896976176982408860942442590585385821214285170037197737592632540131894568394718504051551857765865339013022530615697874040839472488448055875148426921021568078746967844681608339231856985270867187842385593663705295339412672109287768284733569320403457075078402187906768108479808237444254490859465389800768406630437281141789787123974337786835500643005682559370406960760721380435698390878540762777627719242660937482440612067291876550554444873608667531562109566375423170551193243496689288144149684740192547474487703981507804634727546275414147458666808249954672392440619121855388133714461992592968619177798401299100106221027670601020975231940843067070161383504915610009488849335977961802705590880660474542826887411891474509929809828983575999240701114033044214528852706502798787108362102644106332807970410302645717123176834077216460822117816842774286201842837832147856704014294980156658821526343933194000262555441502595837998589077182789140611710827459227371549852675506261883754168816700284736357842427119797640598848198226883198999109319522011042436731122438631495983521591433974448609676283818637060374785023892745139396512729729248912193929443012813559859219969076807193249827322074924317033939937496220871206347363993938690957921016320516270234656816354494649854254543777489559613591212397074074748910469876273111982139699520057584503394950397582688212139470072663414715729852108917484339887859015863987741139640802553289524292121321540645457656850624739275580348719158297944697772337086969191461888122826960802719104148655957148835549135339246390596582329509808619972595569334974233886512504155360898435149397931747925297564959801995260559464701763592171797366061283263937671788038831378050611929670075111966247625074620464170959616527397120337265074637035694697153499075409343394281352981941365365943217625637081294447162785618030510480652178245012293852968441192097874582668657908469527166353989925332257895628313846170497452067122192857133768723662521186748935824755493494517027792947929677497836808046839931234803700410206437359619902239136348374880888029493997469862028739745290727189066859804313170234772276979871946038836060932934174269262638336139448778869186740811495959184536514498353743265807259558098594089423717004902297694579016216319079028973894563058916856600291254526783673466276200554026097647477708850492056868962086722911841010219756355277564658402707028717991804756217310327263935677331774564189943054382158810948651035773037762267224789524515207626287140122616343488336215592672313191189268677060033384911389861990785699821264338111629915125989008868337226484843310149917275113232610193087835704593921583024391708066973947012607027769826654921584709647004805285956412829311497687783589671322105094098884820855722539750126570017750283470025821360537010146180609568687097091638249241786080628755279842237462701592776779315007138929350080353181099093789108665917182898115002964386130229495999672263270447086745442488384763267831498276622565308786842341211136437916374917223123987873044141328173898518288617672831285118448004691737348104903232055038013600296182477219358895385910030172414351440042325924488949641112801461536124495337261136638072304309543460289253341703682914819613269169172834485018417588799017493692560282179076563345719494163135044379033389554493784129978635520922031208039478828423744940864701204333359762314049386053878947319090166764402510992922490206507998734610274941265115715657616143317613936718784462243617108100370914933677716616130450006170818121674105157258273119361327479162662148529622972756189003946195661786869456953063325810125789829779418657315791024233826678518593782634767006759593958784714220193218401054834421150621607590857876006585001570748496177640404853918374666433655012061811988265979386324698673674844937550363204943901277290423619839481971795850447946255044826590139387768298783350713617888073328578371181052143966759056745598120453728251815404598698948939124764404879433859050002316352982828877958711345316729539254649668970441244217080259210236467129379808908432397370044846480364524183215279558918393127259225606104345875515152653653395836574146092786500600200246453356589682834261412254749071037064045322939672019829421378926133988561018104237877371978858353467614777199600504156319675314656232271263175189493232934512149418440420474781912375988936203570656319125443870224449523585748088159843592200448877891628311312833387068415249254520959051346431695274117569065770302137512113700986332095158281350045220676343714899957294593325267576378381604242953836690692141175609092810785827032226062409648722252710567477327788885950229833569702298200369039217950797344952284727964927757135116128741436368183315423964626021355476997086487898789414956001338104727725803854451574268878152268817984827270297710647300754335818830155698896122295197143215533118281408443068855453173524246210599279687389596644287763886481064879543410034917754491442281381232377782547183154317328751239343026830567112917088349212099358121193729987389670716473534436615105421844282954057565675773375006538607372569864921998617702597412711917706310949360046435404044913060751284338244230774292850011535240113226007635413452632459337196686665429939625307561746268879780835768589027030055450249115090661791728239501924007419684748144386243505931673361549399508038633476617616857619025132968210990876307110824816064742357253219082999094191932741011351718152207003548452330416631733000270024996964482473510509940852246456625823668615596550210794574375809757702049766101100897131435285409718937847060639784361185417026912977439436850290212015218806665814671996403212738195106980811335381700270416347309282522535261485722179680263428595343979803436926553856818889372233346929836292065040957151275410831410964718737391690877782771593085443606581569875664209939029598181953548029605107898531822263410549622072306225836469336340222021820169205635636970361458791292074847278465883199406380244538780596119253039062173384895586825719702844914799303329958438700173823283030286287397199615861747833735081112471627217084928661433705043117015457279832066178247792005570032798691177268316203050321074969481848134800775996111081036459960906630520201068679605051832991699048211961937621443822187937832457763326922613567684531879904190143924152673379688992174468931190528629575521173442837139309121267118247466253858239435357995950190156802104271741569963722306775223349445495710452556578413475805696752572757971130254030171900960108048988904393275155341224621591277862314107685521099936688313772258698051459007866848047007527286029882444701905521360617055470772269767006957456332068931729940569834336637598383324266278156448911507797879915761494431173042651889288708399025877261389145055049601959027457993637576217863700034529404067293885652864857081436706521362228987705447138591143413825000410325723197243887474303128079874026842174932260522891955594995893702535810448021567510265258545597097345139368706649794728520513935420348055851735486302483219784375891286175537796348517621690833983332861869037421877354131557419023689132175149584440790189744641235945203526536470874462752373938784980765068405941494074625173856870494040976828283743733885112969499630644196963590925961587315438272029122475299425145885655666135547679051796844072960316144179345457466800896238991284324761824472095502342105386903363357608178483701478887648269319900147032290305044581762188642280008597854659011879596365079499805440477220209468422388356856533406248930799424118874961994820458769833993087687673910343900935548606378680967787698087198745277399807473837162800466005245922883394429724402986465261836858739061806358391204854244117643296927757826363850097028066213675692064147986614081106765620156522850984977422390264859202990973079750857908566362901150952789161888571299609628048780521692334535843869742683546051846708699329511538746706141979545429635147728963888241369869713531454502548257111246690175819929187202965376989812931167926389122534354833076400971287901565077250335068882147499615925740725861262142683944633719325005017362167556931632234124297810726744497907235869096944079295076257443738553239289250997203001293693205407519935657615277539123084218752476452793579127527079040367004143361565752819044229111217562531761200123797198528592182726370104253374528785847831208446328346036926813594584352065024661724819718650355648135694254643657675382161716311408361066234036708752250868569927731101718660864204161071583761749775174496682275002916202591000741613484784542889702994546287216687662774202381339957620185580122672209361411340325951227245284356005017168155057679627663468763595210148479151373574271874705503026729305821537811917436714352086395180645624522489266918661937299207915666537409005657409279355603648800753974038344584787444479253000116981031408633946697413275162473968905047529787528119945711303777537816394489842513818691088944843892408678083359861368647828229561984607050407568490614737413579258730137455571345678070490982556803754171091102604799622897457103742252641240075834543320993078997635044456753499722851499605446424818031439721853586933287754399017202700527806940920510443228389601030117460189468674800677500022164555614408616647205923253480513334369806433747578050423527791070443611601577371152322175119277014175520905515128529798237813033053571729568839143500681974276515423837133306602064729541961791178704327989003169431038359038847982043444632558581642056671542995270456208653771373366121530395782493762138997554794724333013044010286413623105111266700732603448919630522298220736511350581177209703448791337991253040485596950155572679301426681564855887446984025968508434755260516848057259012896730393985501897507108226706454460705633720567656935488584917770095366192914300468714415994938045598452932547974818279485481801592028458490630624773837119586494266962276206111213626692353546997506242094329322439972062750310093059632261923776124581143538709088011207786218777876627215591101061299721165908226524832565019536286686272795071092731449969647542812114359469004506716902290976660104330087825648488715450798754144627682792668077922992456739453425969237012127178896763609803782403387671116327249047970390998112859337921381555344776402430985886830695287914767367753016425254483331940825133502443292305191427948008191776091982594338098207627460590844214874268380314299482980523401479675959268690877626706225670853699271692926870142545202444742468065138368706990702936230372761432656607580975360264496757544376145834001911833217766989389797604383831734798479158933936993569607039063826453200237807898852019811295966954399237378503473828791329544614278888249410537860469275189404589878566533253966774448808454698167717800957683933981716575476266476184635076699802051523702870308748164991797349642939879222592862382455044174495071054052525238738097149893733535612828635269845683558901596616278521318520249133733770381117803551044801196965358604639157427397276591826730095657345748878409205613909001430177078507291502625929195000295555604353900766795522225313730649595349389999064537092035261572073504947695229494399124860765421748673351017900142592142151265707003189010408675892708751664243013504922072156066472946071501429358835107699770835192803452145822932823313144619528164396613070361839532781708056392641824042616734037992322440843297451302506109802258501933904605449695579495756890985296430881750996789551998709149612558842397704832208057309231664872690358937198448998372288455980589707186796021092407520970382044271512869531796172932637819012009110659342261868176179448862308554185078064039906445981995270930101295839772052004990075028196690239319870218562667228893266022292784852927714540555986412879983781614563153253725947293816788441532608405408846017428547489254820109677395269506528880233580477823398807206526782181442937899932918258684207112756960396125125581458140075861442817832159858229250949574438228962755282964578260740079893744595634260575776804485034854880260877121072195120739953897493971468928904270898174512286541815007363039797758557100832739329955319900486758001546488057525573775342599614442197393135481307698591952287860270402719368786171192306958303473572137565951257672785826005955961229627692695721593304371220341045507201701049213479191372114056793127300782410036859059418313377701680278795290364191668523481453483380649406078772239661173626418244676862452855809158027063220027317928707815686657049125667210554477774346094354995906756582487194096655653976519222268286311023722168709093081429286185058777730198142682593344022106300924880535391538744279733978946792807913458010119229230796523486681449391690137996137569383402617772706345855288294553807282407736504105835789425963784221871198104943840467510655869680528971668206855547760406266348957694045698838043212988152699089768841637102145561633611086764601411398652367786192009240039313484845384964656683199532901700262545651141950574593473014337088443743112817916833000299164832675645110211105489222540251745461863247398106910951637476049811264915099256095981432231939142023011102738440200255454157221255234366930027425066228425560057637012896024749574158513131563221956147980519201825880039452661601194806224847331638519443459766102925403498702474280799684882130365645342336002823180752345864546707662320206596206002737858654087365766309002598487205102122287163883233918974858366107786905252069495971890844491120767661699650148501466729182102531266081446931734826107129976852152031826935903026607735516574608526158386239142519075235985638890910875857865729886461701621375120551946120839242102226162106136985225715923679191570764431844913015777714621359886955101458161903729279136156125089620928714014348115008648790551295573345029252503682257548634066423836333933804121797272082794583089560368695609872354199126833714666844371148210185937925536925357401096461456337190550246906510784907493636199735839188418063432282658451656008133473271719680770189095897662202630638375361819029378895462162173023041135787768761512454642200888453519058283549044054325588901770682244187574649432119704381748817915193611920805183988156322392194788854891438529568058712865396395584155617713397656539048929859385842283476622222075717880130841458978121066109795311819743798246123113464526591294733466168800915762516791082402647184721103299702016480205785149292622759973522132099447338829431698542871321033025372448286145848546789045803949040662930538881544285420315169984025142621704462570924511096631934409652966825748021732897421919337592325017683696517932814637135965389813077089724319739455095979801634990177950244532374501110497684833059543423342593008780937015511889770291497248117868875086514070778576017600467355173728045651219442604362050970210977949922356810317674644342881695076594860526138672233144254041910006017928216965140932129026974273287061054040514366481033536318861241699508440879152389744810745424723304516508203627575841668531388990189143601533407295795178028728004205389629773792321458079926525922916021096148629758977849820447756814713038564970834403140474341272907142774771701166953656314978146966498619091363010438760490467044203200827859127736573621421951739882846112820360000140937361341586746877022272345658222789772417101061416382050731078717650249516614130708082506454647299379777768171488472590000138602649227131255080716179481401550230214046444393339181014457728003815478285156478259310334540422783736620899245278013196552459727068147473975407681334037114427493549311387674511567940291612552067271096021851407808140070865825522528571741037967020045819280489796645140116475880684023242001587457857961109160345721315128661006472327051456150552282589563431246470232911922157608582860611185711480790351191034960063562019930789975265434822828709817521423148864908080125019594992967028017327771943028784772475988648531901725900658123421152137751892215797185328875555379319888138955916668911580212856248995827908557546117723987707291278680648379624728433380663567479743394698658040708995453423382351037381795109152990187137882682016117430082987464505206238510411322176664207979963746370215093915335354322557988276260647696496498787463850407111846450535337662200320517529091074033718851856745085937771575603303024045518240909719655050117977110730747952061408869944513504395673060472008704594912947509217169657030865780214957145333508422575313873486346362160588672732152328430823266381710947007075266236578862704097870321571635569552913243505362582585479863597095522235933069987898811033051207245325964245424780369197640132452409509516129291754068639967531063670501238638180730389980962014018560928929643782298051684471182607973038693887609287222869632938018774873273308626258396804018373401586053155234722020216153978273228135319144736955349751630885993239773552517007573745684427534907979950229565179514483969873133724718552914478519169531777860140043181755099679746025007763730643226992786180977447725874465812569529944758490318253423398090065313614595464895071336404488904321865275253180135255521302608347326844942943157827325355708184903890372349212486609577652628359631597906563733009522104414709682914358153088491856642213352962729242317139221195789329783670978665476122905412980574545426818063529238559777753690470709557677983782000440694141340455148826015095685097249291279076709155388760696182949962736499648355895688498258617674063770605510542211090288900314347846254854855777333377116957933527069448277103352598860876028745745962543829224522623438585716533326343402469101746032382359734346949314041813576389497466298247726687172479795027635527208558643821934679821923048469117241398137901179156173930433650961314498041115160368268967437122876665225659852736763344507327693103890222581486868917636310794771656346709889581425562351602014298907413916399737825068218005793632771206558652870984706065619797300907226103173903308447136795620635002658230996437722815406680240659523990441465784521939047092831150574837868942588853522388784109836828708865541132952659308805204457802516632181838156123950670382561247826448433642117506659477316927817686521557772127811991775407596200241126916218879246940018600364936875967306428372815132531277329314237365841061360056826007624108130196904015246487016293437344424736436219360344510779626575041610888847538095715585805381102666166906139003520931349537124990722862597630172490090190825017477769200868644684998455903954181152454162107004440462184859155629545839780414251667022719401971643102980678817238965967364092672381830192880807891535052605548561832064009891056844818966654973333150894744439104630038050360526420931639337707771707293367449036251233435270888552653159929202184896454306039477378415095917215782172847376290278979283661001706742910189184516547485664756463746649416005869597499955144240636433009568092723547645300399334353067666757934507226085596665331658847792032697126192687946822373819419976354897635235374253446746856484930315625178996506154218735389672646088422562320980254838793838530384804666110406269542041262091169520901685450749389154967729257194216683494709358270399131151941941127802515111443154794071551321780916655811990724452036556185352160346604225195527151563195443175191628384274589735433477573259652927973929554446984086899941646875281601417701466532446647160118618646377136385224137767354759278894873582105908594430301800323165631522540832349859516089148308437343871473105684199904367882676236203155721400300483275434137763457058221377086517190752742783631842887865740470596617684531251338115986495379322238625835616138345498751835764530656051934512587441745319616584998836710724354683806524191625813547400544774023682429634161806592313393985016153489779734801948828367715248382238879411354990133113797045449624751606020703289945853538727954893919116259116927764762221049390983711154862920217018281127979866679221092221322933433698021570706706699946484290936960706977345327778567444382403716193296232896057684773580669232238622714034584221062338898455138787894812927459683607391427161351844408469065184852252306238959395242135729679811714965030568994161186330444224586794854473333940196667377256659313328088572153769330737499296295369814805241052892255045206651858729795357627360785174161219313424340121757119761954234947081964561589061400348189963228528852432996558149561683771899792346184398023604312840120155730427032204607915163132996150582131183014855619536146948681937061617339502388070706949428234468609672127758163441575073627531334941582558753969460252025917060720532868664916286948059110083171753790365854925290540272919376495766500138704715659226958187281541119404736975955107782227102473934367533730957963022711100083925715052986523582221489367760511595913068602884906453957165556280310063984424927080152677861595731696663061338980416741986089180007332996519823461071909820378485001076578786183046161509627738130960300943400965016944237718911362910888517005738123255564765328122225159461791721643548646172922533582280174729125896103791196796615774845175003079157414141146619798316537208158037424466707644884845670629725330251551527331167207774298491565487448161693535678893741681142966210723688355299824132698463664086653506015629459595233048669973749444186543825723029273396730284288602453842835116867873340912638657446726661426876681443852899972610681620281054791395173683755695557389321354214651526938527603229021672261244172603785009590899302391085025626314972755456633997125564345970678559871250879443085995253571715761859271853010099543352094684267268452340932054521403884642372072294445467983810823894290152201051840390791175221388558232833905251825510692531582881606487205005589831956634920981159877202797184133507267568775698586913429987527736907666453737513164484333385104969726379672819161743601779820028439555930056809098113476918128043942732703774222969600421078447406120196923027185434050231501466055441347331863639165808467959964294161324862587912055352837478352901172350751414324354987149839532909081844342859012502488753583339793031674158956163220557699766233076020205478790188963147913804215132150729387477759868577036285267877745699926658308636997637760206975986090674086374896119058094506204517564582439396287075336879971155725242014129977332367867687682954804092884170279757135631582618212250542606521220328653276827041748395572213982890132305437892201377636678894012743781888514677357352599227274779154280572378276888825925429556416249410695092989505913413158215263662483878281148116805899685579161484729865443284652754527121476047676313413290032909685857076865211873633112224482027380923217250679650033462760734702299126459148380643060711751354762828223301638002389929945300714005159136799974244570258341456082695616555271390505231482928663557980136164660629505824724546366011573650897885893262820332460045885193105356082313644133333537910219301887756821707686946225343496543350509903398645715571340391152460859776578211923929943301976767273747685029710372477768675241297766429876342085958692390172919436139388395368416449774116051865780758433928286858440472877539091955882176083990187982805713477599092630444062964000223486483116176454419288198540717860186777343362901595359550171648326052380858724584587008021423565582371018334458398656394917590082594069423737617761993185655286326069185253585330336993853733332427679265119077970403204587385372837373030243975537180180530035914387498069457846538486390825538918296013370179099244554340042754248205447802652120059568335202495470647136377694015665278664569039697482570842070919533023024786042521442247177792317095769695823920464847765149124261956897133582159964783132248416147433262538798702235645007075758192619317499957022692111684000270559765745081010600496086532313810894317780623566781638178425018844861564667997952434952268731475400008525796258259292967752410927245601867022340030909811417487137803307090582616067671007199824874988447489324403320989956622226440701090766385475951721368248737086067549322486332440898308084080421538671545777540759173728823281695184319247418278182913807229059161218168696493406749431998132492580206261926942346870223541176026402100102314431642076239537182835512519152172515102901657400423735929733833017115030229615596250813631873483994653040363762835944812529056379527736031981378973861874684616569985807861729243870514808207535282944753604922834132691726203091539910194482251753857472603909779798104247244384503901033753113600343583403924116081921381152506325988952742456026937896722974572702469324709438537848893809930563466234794367021536391003513191866983949200326724067190380759703176900369262531757944692946025359429938520834474490976801369423751874988101332858957966921442369975883391681076539290350363732030232363740886326841129999208569197310609139666168853433014238175106672842976354626388189464813065701346823453522656602727020610072292033236491651663107411047655105659418693659870549532453197316653195019308290891443584550728936440170347738262531997256187781198315826832569135496288563771675200266126365377637093720401085267810155491164446567973043127578839641448846912828237993675975486736325105914517021385325857848657319422871575393458874933551654261836817232042361536374747206685206618326790348583768151312076989796240521943603508799069558225252346955617089816394560964759792138570221476072134514498596702703202919524943203402647281227646731165476708943170589410723632617358235121365109376032697032355595242694560071285425024296426550046569350750044806506544365518759809041514808978348621688709437672074924386220482925268976709983068141987583210268041789348284043930675249418564461283798779544720475476696600810872692412283390904682687735537018580610429576928372628655512485292552269491360122002496698496292846583429570090012108380908142217017801969914646056587028880426258723229304526281093912913895668546358644078947806970899663394024825146986123173183688582924883691053929599664211729828918237345530333354261965517187666238373306263701791495177927166083793660397364706872731082703996532714152072628886565758342667680835934020597052551507507400633753545823421728553441670768494823618840695396938162008664928743641346979465156440222309510834700802154831820036944859940436341348196155920190893292589970199203228825466720029310616847156712676508901173582955551920094941184831349051913358335637991536550773327536660517970520863074584830709139392175785139000331407130997486084053374210093927010666763909989124400857718516460672301504722067200088821472035670230878319495922873537746393456606846770447770909125642625211140200464907834175226653830469096580038458865362548487459068178156424312352888081947340140263684914129179672413743952948969531503496360089391864811318193392319464828874891116695645300744001333863686116816929351668989690010036264350448159525493701886604698473064230912288410346874682083878298069423600148730992098627447397073571044698836193544845337976437787304697232426191213439433694982922173926718528119655622118639500687608026829800669596095461034379404804556310276280222951938919783590345583551822618138180341128735964026519938854838877929890520763576484765103771492888997822135959458151608278934841871959708242420832129105837512813861411714348169175134827453151365934887100642452603119754291742757314019833452452458022899141927043989412772189907767749451537202046803392230385436297303912578926784215101216953729427951585583267514587756036283065417327863235436975294628498964617313131909305783289454420216547761280408757224053332063126255647177549591279868820660530465447480488200465010123615070809483982934382452855005664425743136564000170149973540444664795760851846211755361538286337966935332433973102435095192637654705217589743426398051723105139394994758107224177041200635160628956521961089371048157649285195650945213446803914837074430013668685969332594168207074954250573164633085584225925483650661795885456995145893794195037179756627567230016364595557995637838495463153177829172333372322673482044817762975403324993811873042651809324947461893680580339061662866995382429066652759837976321371140395291284526144571318086136123607161344812774151353741109397813884494487887769315694501585347035470217503191183925947524223019661956946791445993561207070668732207980763986943288685318418152486370855828727807769340119332685707199506196555089223838578998191194893758345379920867878301146956804388899216085871324414298920091913749466653996599446984919042291129838530962309606552929140050172303241038122016199386973921738191036780794754345393753654216654176391885929607483522571678725048573954458581609700359290633844433658261090315072874600544864102527308152626371616499842880000226207083773276635457315339767428309190685292169028329795611287367961566040840061009520705317902954590569899621624458857236282161986670313022103543399454102936095955070709650491705856138877050308013432482119746316638990451831898182617559315415514646118424330066956041092507643994207632119404613224897051323674147476232206349147783099777492539038818532104063431222018503010590739141637660964054884740185312842716848438357275197580131639566531746330485578639217866761851473145820290126493744552765834491193627146135852223204786124703225127702962461616122291128792227136800597277136698081653426088862498041429841128635389460500886960670677095545916117106016380863153782683187177487884176542255060146659898292206959038413018740606192093095652961415080730238070495366695303857328931973418899445008795769735078510520733772255448447507280006504213582861105663386464479904471314989806178815949733768496358350856206867069458114928200016272384332130725127812023704038141615615888984775496186637525407081702199669422587577822140045646250160887490437733062897304294787450137616920383930521046355934365686289206896653691416186038948507607337850169663537828847112639199198779295093776569076296390123511220304478965536641658985870814018865193710382997240453336368346483017660033644769272015480714100756687049687003142242923750392060792942027772601534614582574666149903106565255274407719005792135682888249078039580444675433605011716783705932658830987245531130211564348879951928492604681189894824283736399307596790999189506509362497235095683940047412347580578973013102320361214835698582589439150942267744973458820181403912610452530675236752650978888752627134926832053126911591253329742592085345860859900543372550521612365161807095276323113456903959896334039973034995141773168951983760651256322494847305646715376210234240725196728023334281278246030913364102103215006719815847451463811547079028623020675651360571445478402742748805277830879351711226854086455678009294338577487359422726434793489306201105511302147507997892822939095718307231915470934070322757652522972738083826906238167098550470491972413428619539434455804893297601255135255125811886312474949271901680826874651567214993039456086856853221116812758697461126421177128223848922201381704334810372105591418150479763693088954328669868017450469456736926065588908414533533754611423942038437036729300840860407430056884370781886035025952973246484327007938710797352043997196760474295703435857699194667279474284604618572021412948747068231292132716029730228529156329660159595711161920368939846100556951945204736271091149732219074868597460143831837397050856787885795925331913021446923042907564089210279215094956263753264246603441425525691735536996238610979642236786127930686178121510404143164528998388841283054765983764599498387763901290032255380172669727718814009400913832887993485768757745531330218460166973552178487601881604638086906478931996875642555363834634774764855121393902218916489684438382664341660639654764305805844385058570450699928270527479458880921564445789366101214837584256230004781071661143613319271607447134884217816816230549811350960342874579319001433805598454028055131436850514659508519041355449465850293524126150575996186679092152881318169434210485214510540414727906833444997920109085201570370607984800414929489342230351439004366123957958396550492059023941152781816538879491518764414969880807583616796288179099799533263384762405481144090045298523361705025912919434292021812032891764760477569785191914760492142359910910520862751697260757022039928095538833123914890158812909729123590332416345590118083176803864477004751938324886929154583603941950192452966501007184920954708157171049988353448203660086293916931152005361691524732052898136968977452712308457132792300796171301215367294964650713875774424765779617710372481770977423062956632130904015405944815882628062018080849666744865407610027117405609768736537949430749979109685721349763972094736285032036776835526973046131388050568997736302502567754838872714208532123691282427003149776923039040441616051801055061137656718721248852702699634961743676517125684002589634110250776293389485681161886626547453927552762102757727559333983457009806562776823144788555857745655843021820357150899266792613677103012956127581479357850535175893300211151628464539705273721212877307258161423449414026796834043754901719804748679321964946042053358992219869488606731453758935582625079975099719017882889361558599386712468352601356107290892677008737590920752171648220953831715976455083015342071733934197535118026789468215761367869498213070527552172362299190971799132141264441958852317084480312671421202181721577954817652195652321093226635494087249391340005928862053061059446763078295675536197521884008806765768088050831350913556449110328824454055917843999301766892684985770117892105150030797683349516169286544230819487309136189151312017526292743683656271085765897682047447804092265157144172321630737092272655506906109559568257574677250447107084017277323173728560410931213381804119394902926089372104690667079077991527602926577382743924013734410498936692446888892344119617176983034702562538298900106280621992298566477772532602152617676956272045531409315055001335124092113690731181006025580966988836710009325379562890559111355161541632668763114354222189312740805360719048819098456316218972246332145889381111461461834173992056205461905923885843558290975677801264726703199139706420901515844776961899957167422096550892435520121839052347514523394240268997471977072130323477891053335156926243999032666484524618129136672445992571991022616810283832018083581667696119488069288798854237979774015370092276583087136058615958586638373024053752465176855539282474699224487128595524028253611757804297077849704605667060444907182321806799862154446794846119527377579829986836754518403871942743697674080716054872792727712927584335197824313107524295204066120062281768084765077712338750698109773239907060203455815434860353981852675973878447315712162695958382549804572547612342937043650379097514238958786849052374166171034735689090074725837294865959727458613094555058560285601635968976836754456055218183674734480752336352709014670536762204813150196762848879132181703207009342609046529978919495501277592598992559892418898019256393412506109564114846931237339319447504822817079796242713706216388013581906340078443550763746710070479189199467430433464344497158045966953179953904989934167960470750223676118141585879715650185683179565532266418298696518813353181958004014554110776950579572339752093205148084690161706055601245768454237509466603403989882913568902307548000943850742819899598955243456531606984363047542402430067802809608644356977280639702748954928674047895826649712492775151358656846113113808304524247248956870000527278544484865084754395605928155221964229933629425570976579856341385932281085542703129462194094799211448048749563269327028374261524450081320441626156676548516713290652739016591298945564419849515459040707431134409878929961397965140433525675089096554866093709283338005655059591186305231004940009183796099453717840021182073084005494717534559114143688979008685589271822566170607814922326116230068059619602999280250284737818693510777857170761193847163389174977491976393178238281307196150394618195387392463601668323668248795310933757745217731659719170223054139962692330691618505275844220917538834989646181334215686823483969929229535830262858979859212580344452629717712462809787519978469268016519365373952210713960324555991511977259145604254815220321830756228516610167260860271037979849209943747294468322177528606468851723646383166996079914378897365975796929072285153130894548041511861456819658515558387467092431530488430318922006276966115442835641964661170767386798989461651804474301037623664117181312253015845634721912240583823329421366688046184601673223716300864715547514254430938245477784024880014145330581887946351675544993832252492004264571475534459313937731357980136840018788871670880075898879996645328382871412888057848045315572916002989201823180847557062792905746435208927651763243525181683039554031248033668094795890537246111612360830912274723939285174779682455862605899421835682857731985245312637877730319469347925891349865411931058427406923139109781285595788732274795558121044731938078365696732811368692135082495685694297787929916109397057198712631198882232559204255638704580936490119762867276227355579956984046944028695091057424868234781086195440319955528180337861261795350456441642929538971582835890435115928049689526016583733744037854557158754550115230982504253221726828566664088525276630082875215982729485119979746994549575959850163661511034010208540611358723483771640729358193184795340590300183640289628961784409483573280427008029132734769782140008430224256088951715969720262185662967496585252076028929467417109752406691098187893860064700291232350966229357656224613216351578453298435989368972426019458254257658475911794413182606034613352322942505207989597103442810478925212511761718139540343219324206150331847989008251378733748921192156771865348821944065674596645230799110801059828981385916847570787066200573068427873990074635670124011481183700577589593717051682435178773300768864050362380477337938078579267832686586146622006351483797790460472539867996750176962683409344777115927792045855446311506352847495890803356943266221745436889936234417380960298038787516641969288571605691893745011725838446081380585652539848219938288086286737389357534543382908385351653846895728826146942662409602420619840070244685259852595488311587408699970155446236170068490820036798364421207000635115266895449252001961849862674914131574905090971644856213261951395180026131051991426497247879587263666112320633687827228769156141713503908579835241365775071281642435603766571767134883836627225245106398026492908555281198515552084430157639233537543827734420580610920636230694482242973536298758242996390762817514458735974320847288524817509014545978567220178356601506495865042175911643661754177666989347598528258264760677320506749117024635232874283862039228909007792116494234096486307563090191425450830748271595286979450704147212588136887703703544912518356138038487199237167602116866720739065165554569371446245689366687922346824520808511655209647175513764362885636209286350415481589333765471787282223084978420767981423066262694077421543941608667421682207573734461660710155493381793581986051848096883822641220607236746743855209691142112976948581215537526043208503438537037823816826754155519885001625038985918631315905406742247451396521601044723628361859969862544749558836274928309651654735690367563376211945881690910281377778889826366356688852775327450150669148751478316091106376088804545142289135036130018274961326425888629470728724366529367455365044421286759886609719513415324139094263510705342000066917701148879688914616646586628035513405445168134361086906578549935804397609955065800047813579077362141139598488039881160287876941022977724541891716277083386326625415184429578166907067689675164930604670392239939077269481633243987281916843610597631493463392579002701410598578945225716652868640878645501572500859772352650883520262934134602620687912677307261962477957527716986494237479240508030679758761423499896609282888238510854819713268471847592155355797025197493124532706288887016171522781724095877140000219944849929826579275547894015980840456187805123152828784030390023553225827715630634478164988159428738863051386392242691458910853245283037136180658139979251427199945752208623330268910271023346034062777237350943574503990113801893196400056357381674809219770766384347705530139162473604172042256009464006330996093651248131105074448915392173125047348076453978208989947245868816647853564669211007189360930031870737229174459106819602076143155374969613318194348202392446258441581482066574096197580065617311244572604963364279290347392700304212228590499968713135410896943852857214265556041604314084256163183908564312828613018319496257960363593097431736644763678254778481537278979078997645966071947838823920671497269664761178791375647588942822746859685304622190014135719553283221986022572622023993101539996500154799238740093791207219233268167904526210442969779085439569787471865311349022853858779141092332934817006540831277831348604778193204255822601554412065721699815255480431571264250999193275452553289706833357430180779540755851752544565405335897398141581736757950971563422301695922180566550436752019441004906041642093565336370701980216752378438597908377605233868778444944015543549653797594178576750518368133482742495272235852791046562637016989562119635926051521119508529550440530905508895881589091623978568669699493424252514967741018674729955832947653090692169886037641625640425357506908924831152678382060608278443716549146124026398306718834268237920807396245262245139195808268071943739030549287390495740970539718771501003969240374966788958771118156740263128106768135839428387865805251065783186003197406784006333778003397010990304404954753178483204121411755210254898637462084755402131356804538548700336289403989305014645814501407754553378348834850608475940926430467773112507080232621862069500350354562746155090093194638365847149788086111947384273705751997824430144565255273203965883190375421001282059004172700045859264212149051020605065235665292725704228205947858114960132169573108860159532599214897367191424609463788952014773511547738481554237971570695159419117954062759404193748469692450021748890086044250067503776256132703455222870412204186609112583193839001892362706194116374364506034450700357707637818929723270114260057740232405859151614420884882247826159630879309103390343924290014982557008618237404528711463726708000299523163073236569721441933496896270996327411311351778420222340368052126257638794411669225199653529165522290358746413163623542302746162580960391946719276848923468821673781617500795850728317397490753986302826167703463710157765090157794738306905766632824785141899912019602341091459859153227757051940757408790274456511863339183433004697141168279723552981758159942707210026378384279230791582284405316605745067263893889254226654474137434118118895968404037609066299690431174948590464876014529849279651902566538486053545254695013412634054500556613256666361670753643007885405081721611114161721182830007079276937620249007011582594231869297258950215705526725461032614595963615865614603302549635798251508236306076054886712386631146290287175120870971720145988758545816684845317587334201922905680100447984425328399435166845198125111604623083594292132511944874701371870588320310688037267692585511031563649253445426477446198528594824270412251169393823933037408816866457731306832726102841500494651436105141118778226557468789503282569057662611817195325851169754609257416554275017919042334850720831924152509237471517549780397240360279401134892285674928635114708011882079554225156325950636812024067967315906357363657472644512403404274627428007000047251253231040600962148936290306300027406736214584101623853552643465139749148170706401088661397046662004608457014552754161385225375284363908243875934278980873408102890752279186970027913115651442966655966941301220308955948355911012270566636146649691261041309835743330982528262297192743284691408895892114190308010228988931299284081595159799460979078258983679830815091790532382389519976198928277184541262795669681328818640462450548135782971362422942309487067680374664436644658344542644585453233859191123933653608031268165723064439102893988630777173399111473636154777245283235016714658207666718929437743229174735038749907034330646902788599737371988913491252943582028821560534731929794950633214757795062712385454590163253363426366263301796672725117165455438207222204430533757952860451926921859080314508682258335546622738861320134477111239135056951105892073332150102532712304975877991175963858373802346531524864507548808460257921739181715544273569912169542529017208954231273451254720824187549154766491433918324277996024876297260644178879102312880695656233388952011269444766776723403536362266924862091875878915731621621496338905687791611148158297791356967068171004990003350859011694782553789662087378153007371650366993099207160991897814463559265795598149757251680802104553975234569302587006939556584814728209793929920399189372756327476437949718260551683891470296735032590507724071142679879156800486727490168979184196613996442486001496118460574844491124946327074686219074268778425471569482972919872012010937247520354519045028347472183608064388735922676337508499086002931753950127195515842108303769420531074431569996963782173550938154796250371075894103848087990708942234013274516153513401581167885670621000477917143079440909749004179755747567066533138246738550177937543083460066824880694716165309233874182781864887321893115231720246428805472842493104658424933867885727697237580046779992739655430894689192615292522200609218515512746683606985435841960154335971770342616515955701044107004006921689215120458104304009939614057260799553452903219763665179052246114476019918146732461717476974407389984591948373442500853186033583083210393078093303881660418297743708465787030178025511507741157013857311156396923856185799633977686041969217065689401568240783359148669602674045787539680828897078552275073978348564467684294987464612848259618954172818747860479470383975744471976095914485268284672142199128421254179153994714889210234573514268687178893149948944329092027170598819577405598543102657245344706806009515747474011378266148830342598133943165076129700587767364739104691482937184592706884009070058121718852991394371301148949462792908301164026436625816979564134765024849952939557892954376879198739222486964417831891924964407832182217270084411186661779529176192074435035786531330819225636039760284571632092532495073045676261093506541857062630141245748907458963020107908979784250616508294513284713110202677857391456309020177408253452141220117191216304435433250725653183955107708648799463260459354192770092205867569242292931049860745493178667388734717668854736908752927961130890619532128345452332517638594126449000058314335330590534688207507829370936053250461791053283092436458920181363630738280793582127629881488404590321971244724260377692450629806880119243062876903350921772346154290843340496719369357580782917858202236211798396363948262820376246723840913408117664201688095288676688740658575012060334552010715816358977091191567757658702268131290446234012445962892203805411035935104598606236798712132708789464166695945618633631014594798368679868345213263540041489151731173992709036033484436590721960062325369377924356920876286215481714080170052991700721032280370863566222539158019791782574751131175206185789068071615774213622167140411433605743314236078843631365363529457335559664869868706344504214351391094017576888018192850439977190972990106904137010019337030955812324410866387484269414928791041258191973076434174432333269285007776929492062092401318513399281977151697599101897143216105131463407134959517045042836023093650537706368197991150910910848566387772628606407084759215801395059299406581395061404704590952657255652183704653105341742734171845359231794153916237043979773406851800355275428142394246341827193855690044618642173623015195641087416795520583497063687099103908402578550299001897337237254268296217254369535289264065623116272568327175542301660559887734139537554072200314652123655277001398177398801682315711015846917782973591373335829084405740209195418927594091076403953800205380718003598207820777938381867541213929508249876989551978565043300750577708260021849095044757338295965598244777111803951386912087421375618003955906944827303391130545620571705668936222190149141987286884636394350689090489240944563734057534473991631764042867444293820737144848733329926213816195183942248798166941664188171228359077781411406810866626336440406414686377930055049624644969138753202578402751856590308379079916593426794731373856390841447208634185012408266480395629043612119019350615121038240379633455863762500037248447858558424613262974561791576809041585577261849066324386351042300473291592931511859141312614981015949476330090929083994693315229526454085466901551441929433250239773157023566704632754122982232944342783800149314567439759374745059021195714525344823172453942149720786171135520879972942355667029865257694129641313695056809988498189138386769722281643056518285020513279290592554380526777111720011596722862178535478382854126274338593946475369003792383331331869375951322933648224150455150744346066756801044492513932704877481837189036497561299805297194943756430588577438524723347625122168179867910626515005572709916646390601490642880590080863473815474992062540734661757280896880821399952778141655960741767030369000825353458470057081808799632535847780956642582287184267823180731258424810051036118318029932799192134732877683319710976548833432369885286615227580125809516546066181975829322850272931690972762736039251519918765709912229385698097496253921068399825229980200063937671865330525346187366378153351642951839450209122064390574768071837865125577868534769486634226434510777586974988220374169909970296079977976196760962496865106065465758269302357106301506362859148688769996669837961388278881858680617434249683389079697332257596620300982458521757859215044590290631049720474851937644062185407209342685262491618206682474323899314829004227869144808387663172028174318184940015409677924476364273482930729024352471677943325540626870631217434494438649730136287527665570602187518743108572394194338094498701225428375530530847508654134851177645718910139422342685707268780891095276117595354647631871423302395762153580228672999945502814488808677885302361105056201941405120007871536812990391830666276008673032905892453699712712031471157289773604781842779673218677270409467764975282451625994247139363393723101493489095377145739139119828648831766855890252322991741564102043459465179726006614013329760049769638574154534143618620681189356398586038822545209155116304270957345890774817575101418835707392248625336425769042538619763564347375583199254755443660976724015158226509666095329614744782605842402268914926628718210359670281395327688593798782776867888296832210838180721742113738619862199018678589495626374951063373208999713355574668346930828368925871508189760288844153885765637061958184378243488846724734204901139019684382979975917659325996482697032246905744889323588363548259562612135728430667095239661549639501529297543101691519700875558738158802821668831236389454183293005217354883211205793522715200198945337390480153583673205113595323739932492102102885349320594081140466326682310518896072392999967566198962212114375041631182651974138746668819997749790411799457548433169898485316806239712975822049068815806238776164171568958796569355501885711542280804436309661459501027727260936669657596785219122868906663974718879003211124456486392355874389693580080208569096398792281587677951790518965460754799555950475002405064084682697398365379631467712433080244336628404615108275125307843580568312444864614541330866320654115516681825632265370912616221552498249797713062188817646756948243277962696172509958363174991345334869601727858182218647191108136735314951369578669892807751554785284014648179963545437703288243616525699568696768766137128828403876172724049938114024845774716177921944832236590139859533874443893296427415795606182651180334611137167637319643236154072710134179955925352143257605198003928296751021599717451031772977572441815561668158341336298187681568900329787390044462382074473968380844232303705424173480055480310928999413784468571765194151261786902305531147925960737752647759403351008629944250113278640081700418269070919331800235407088130548497734978700287122844478768741714932307680693876999043089032921368210713562138398296024178425254286328218437479704786111192622769631466450867103048266493487973170634253988053106054117689962160349101627846439382046140644264282693629752092488174238023040467495889588628765134656867311585556910966359391449536987755552011457535202179950522213098230908067767808812280637171986319261991149861902585071935603979903326695207553642522005906441780459994765750847553281011100437597917439536746951999768025370414771917057694526656677135983889808643350323849920647702600796772560667244920905668093034807630919484275691200177705613903870395605116238600920774099599309623238663925922977604442678965198816038616235894815566884083190471789834711731210852040478773551149918553461021445730613293171640810265749022285455610819515187393209701729763989426947738871697228598302559274267978687884998165646150598717434576792702616286640768594828083242780626684196404787955316078423277584695431037629008649379479792904220659050981618793842040214443462514769299641430368820247099483559535498650668695795488071882683912194170908050784473993336746042779624033581814364621520194334952001916501207009247034483613214731528949761588166835400777205874673486710518612432746388389961658746728265847946588294662390578429018907227868712750321369530334592624432231923051371109041816121336132037848821390339217288765310166808128463984504742295917632652778385503163256337526724255630106745823928692231744002510930678768397868540375047382859957770643741746566034135081628225174380769803661590347468272694071459728685436850056425804143657953244909421353713045385385763630924932468106449484457452396974451756776095145957699334332865166977141595396575902119222720899726865701546734051797623495594165175932687747718836069492933518461559366063249927511463581565216830983153098647948280998426765373730448379762804347149888162836452835814176708878464775695826435368859211575126905266849103788318148215030735710934657410062296936807406366683332796169222335856415904617036218902460670170714594141500369757925113679094062835905411441977140749474607860475879039524124041300700969448094063130929215755741991578658099647997649025505900825518712729300966794210321796534205582249046825226477724531547404603203718191285034939356044451638898020164526928704114044776145307986367630298631959116622056721478295878388475325858023790095834577709085007431030263882596605133027207492845683814793978654117525909434235397108709744310650011396870973521766123089194313388948927940303369162565279312194137276951768115722421189492822756069964392093192434022470467916274481505305436127946100247249271407550831978162559717689577485894207165991104763810021315929026520072729080108779421851690294959592526941995615178607491696729484287613692434043693681376656311232109340848937943699112248847956962503264352086981115935824090373203324519586186095082517126254273180799442491978176680875244925804511932007698102289411882859024334651026186902888899755165842525436689527132273387646073055645567652694457394771406877078350040696711315371731444614648410732994639899671684672806922286482155579210748775757668353029896778058629243508204875707086605870589529493561957173037795185425361567036964821727417826410363422731455181938284500977909211423176073746005171004968948662053704675020101729376930119364918810012329353359681857925669641726277289719347879214012905304470330029164839398676197815283163577692382443428350609796125113947454252780724667013621195780551696943862211336703829933756308533890612118066547645391557213586354817292067796982768428661769945871918582985198793286660544411644715669003606339914690199332722024753469156697303583061567423764660173721605240504813024077737445847473348819246467637501376507744167980568828480008888897867512303041373193750847767373253542470312242447470631700047233354828390231641183430140988847494687458531403858059862629093295268570861440267284699443216252720236615307176090793214133364887937400972424083453999809176670148477782552970968511217719988187846680575783090963992233313828735849276244174655118180336509628882396937415571155907331563424440303959289845144873702840873551471021485331601679004769135231983711973324780911761865326520603161817642768558329354421140009337288102222613582210359657895560426360317852847999438456924060198039006955402772303670302460461664075606197272763105028982321684607606533314169325779418995930842186436876406195787326745911451369090123470863635384916507814234357766321658494486308836717138222339414235933374707782411250426838880279914841204990664738219963089520353663301059583735363587734282139221855419182436351047769592388587808935737542324807077734296691813036591602678551868210258313397339179844645072685019747815855484611276057800997675796511688124251547233688262147802980385655496913285416638055645717495633093981188897190687877531264412626981355634579128448343944116087799925849606456620133548114961531618593201281422700604651689906217433315186400845567962443288696279053390487130942250481701196282178133492564595011993162424977082764748699998800395039023167944246510488217863358976362545709534517092047515371788099888199435134840133543039678845847850220029367953185405980468636443961634659510074780360474357496431406225555560056224856940769995728106657301439126747403738349486786385315871976108049190971975261411009249810537641005368725106215752337114751299400631353063189139842844470901806631929775732447942856516601815749796476376743137305881700747935444175984914671428179159501870321156363464672785813701688463760004374594514911500824354364995488559992079466789685340154624197970785017693480219397229747129841795252646183453953625432489713115715714816198595692845319441102784803446697077749801272374069631768132422009905752536501935376819076758540680445389283746148139816495243330091519374722200660046600177544898882677196905027209274339931056625318718072062655020694869204140048163615066765234477689822107124367081903022209946512241507586043376866949393313811859184417069448212306111518532364922092634306085345701879621093853549962855334545155472011377769381840350452134530770172295538708468919928108530638896929416662526966613709807683947779742929614244845430457690873402756165810140107358927008559976524134492279389066243336529793918555452393167729506874268819250939658266177302562243402233345396087889652832107547293874769021849027732051689468824959317580184457163413128248553377528506555911365187373895767114779500559459929587659042589788707859771115222643552214366085673974645608982482846668505029310350768666250938822468916275550169220955696164615787698225209612992360588059713294536157737485365357417284151758458391850918543341099664844547614870350790526312759509505800218127405482595743674797800710833856696353943935493650517914327131666959019780651540322727169334992434703890003791111272916908091151306831856529646042392941625805823442976974405889206384275823235385432381841110572319297589838306353367367209708232562899829876104077626876847017605922056819070764325338288586681711657366301955449953416725096991014217540722143723694523299123248579771740612777515998366171021448556671760581749258396667777628729003802155154423561166298962644784366245863132945232261676208957626719567635459969311868645777910722436622256192743719466324598230490669455948619459980454778009817578178188187686853056165218585893766381048538475657327158928304480296921113554013838688766791548799967011186354763276881772114598198585450022748296052632383062962921998671506000720606425998442957150163333492247441005927515623016370393391512661869253494781741360983024798312492918161503813546946386139371494685448182419149885714917093957742846752472846902769978859186304031449333297201845556852240948940340533719013600195256937869552500949316903077967668982858285231561452366617969223427552045786713159181605819219581602541575790144178803245181606196804270661198575014758664045890082930334547919032273603978364885326923916362520728489480072124497073140282579198414652148220530453684631610743052112969592085711180812364049165737371009765648817087595189697221486511328018632891564916847037357105195537711491738400572142640540863337623716598121067550292432212247025564803492153112724561441597465274722166458025075831015311086134156924407606259968311855482074454914584954020091842120262080729743099668681425872672180537433578038379670237236160368029863902927023921593531160977276068489203842482580637238546629592044337103152099582108124718766574717388135520630715275848311725808721940456687269758134366458612125439591491970506309614323618397900468412127007968707236238389277370993960424982515723884045114190018308829036083027900623618315250410082389027756288361519112055579953454144621919923230810780690644918485953195840633132336102241862311746968382362843542310195108170514751713926865535577316862288184251751363147508248826742401174430994562048767869604293515926430597571430470869636704969004358382412037565355238937567185860884794420824592122580403125645443087215786035170621519157605100964490850148749543240080432718930080384928601535408689335000284602102607998910225828824266722902358543668384534253574412415760638051532872113716632504888603115897800775669946262634894583562694473355096703314179000204710932200311125736956235503536320906465323489823729408663704922712659916036726099919603564620064595219945703259029311634001325183274130656812279817105413235030914815209095742182990227789994733506040276976572623371493227748197546408883002559713807588572532985104618645915561011666005245575770477661765641284814265590701211188142878046078471359188164718436059835521025682019558064380940029110172448667779082622332504450545477791238035277396479558577593232197835732141034692211323872620780000769119211991779272097130180841069949181130748842921663477511384029251286084627067426567716682846889588733430423038322496426978555902057079127850224264900222249884701377907317555948329079208932402879744497569147738786369815464272104704577804116882264250497649583322839764783815721127480137739540321606163757922439120126959318936619881394255587067381719167390352114580480452289999080082773519798278230170915935880172513511691759978777981574910450619287458498195040018059231401045835570942504622531918645028584532159220438378648499355089972339642929499062085795808094012415660917800789551604940451250685689523662787749112314684238986102346853560773206431039582203171207948696253817206554432054586719664455922898561639885440176003041292954104788991808524888896031515805114064488744631757657035691161645515580196623836922590131412541808771654980832939394150533909405042224437083020064309960326292425331198221667636872772984587527702892940452705299531534325558099190693795321718381114497476731040220626124336219313810649031802443657396114710955258357693745809016937993502028085411437333583007420828342378490483161901629538910971987759318869611403407222823284230768403802617838077604737481484018265508349678971279848785904255163025669165332109202169145825407324633287588004020719466067877141347855484587383811622674874115036951202325898805237665132156010297752161675657930212664994618313482446442264137378824905606039617696633489344136546920497150629867437791925098787767720972964070906296278260142742348329717765929342002154462413487709155999373537106959574167350382755793768998965509065919458497268705073436063911554479812909340668811281816036861275006187706194037562973208052067371800412290948653887188080998445426138138644236659859847942044925848279460213039585868405095009359978487402451083510386129823338509341115388166163636306643034800784105815623292132809784198436093979786818973898127163906228003621045504933254998886569068641701412185703717826536267567037969400112094095904051940345790476485760514927120492000271336384239744067543791136368258722424001318369282432053724945986073576077400471241785729132805418657160571850162503310663402105990082882835246057753583792360521192871218549691914465072229514934591845400774487283005087870723801120184421187806390328715183239322775659346660776818843034098626457349623779813166946184423970684222129635910038959777104765349172487025281223581507821425162380513830302734618579848393163613738114918863756370126050472425308167244715802227188153238267730296729283590254777434988786080202999461772566931539395047270288394811062680280818771529352307137296245327830088706702917821313851226872619839195422797208369699938633124972871989433014095120096251455912204442253191153214653710567315636238520319877578159140770235739603505991865752433836706784247759130282687468269226165913599037294259668561009166980664464456006895380373782668393232441179412660385908828691865174555473002692754368092022375163274876744999254571849157974054205582992629007066117794436671921534702475179174560039717429282013967419248714854488584485385558111640839376891207210552634499175984242357655788139848945180646128516825311822146329718405843993298566325783112159321780407402269198315489239173246816986676522203417410864484157983514312732405063345315914315587454871411848278084028814928956703959807362493871237472441772105351340940546505409350222199497877133697307685995981154116585307025059990959342337535430384591734605732679861688334702362452681983246498933073788390894090296559475367857333430751966328445834436185060549790758242418655088960924776723217135037235517700968514628226868917629887051631412694366680758952561754384056788958012491782168997440833627407331858057753440423681211576543817248439998302771277263985470470390401271528355821331234607103363655856264692712674538389284145399410730512900684543345434529051449160091180740896724237412937730419099832039000774264702424362270996044921540258920400412447202386558190745333789790963422883823604850535452162258307015982370064483814865698255875180915013864726636959432814731177352030583577402803397285616675132551553767549984786613086496015127112117701617892135638091867389333951333550333625894758061903470023677817519476433880459094384121071124912079180526175841159053163869917477510430659413405813318713826660029034908275281524582685761899256654375226533143135828870527936181764124836373675058652594628348901464078608397763103283913518643990018893949200824640261626852104963229433326510326760618543844402905583910736021197013457044024195297168729174929451668340323241783544650415724325760938087200102843044495472799254765382582775347707280367585851629245664114321572910816491340178969580055087054156228597163603923785765456740965566244342508101899109403485054796231275762131124599242735323019211292433667260759718991028828536099626418086363746648642075450737465430067352289189142545058807144729301697859503258878060521980165866934761605257359433472346090765030166794655157232556037548969141490348220802339770579869278272246527124976616620551335535462030455257607997671890908266357427786493236131302003402712882316833731986944136957384432243389498070842960548292269709941009436283058803175352129373481506148425633942932805805792969289377932771466726070045972568885145566641169029854303940245521825839647857362422346516038173620406677336582443152882837894411928211210095036875616872165032683896694372253910636107910980305106998407378585296369294714199275506383231814850009919244427944413480594950546123741928414081989184035771785953969708085185568584743836714899727986183459003331366022429533305470780649224139584406510065532531070174696978888277928142678256139286587689224031650968997501959932701529019175007550058640934340769706676228187012100399005401117734619048029781043344250488679735365525489940578768998731569797878477052895493722165419504611198256299474404424865619082858054043715493756641872804368182699157942557591250531662396902466656267184773081544740045131886969049668526274105740323191586482599087034351120826762467962105904241620954279686781375261437453408402162750384761479497785952992563532849880468752329475663649131516939273727235212254962791739094611111630808017284137375290594842789384924247642935565405784915544577192866229711742496381420386798355939464778150140801622409202239033046252244841775421084540061058777811315749431569214757310492272628959008470007726491165438605401611745122794127668890016332808708615274834371897720435319417014030814827087810278524454161429221514853697017767556415650713477451337793737845850895383516787289747348862824720601429939500684457426576920178196657677589226914957406911323689807183506265164536199044887215793730185661517594955319945552162968607555114309116292625031451935671860257564785090135421729512328466929600761080244400630249594540026576806576892689913465252467302488827037491708183708886671501171594091670204848646043511643222068004461481752923413460369046519971766494718025513120563778747676913749005626358344490467625595740833767794157225560370460854353974689854531193471274734630182811424420184399628853232736648036065239420053802356287704450585665677721671085220199613746974207493387308143226928323590581639454803070029845887971213404786882371504136186194604439924863380648490989095726763450632515208743749328501401310828896980629866697214367939196851153579487834223951950729429782340598435510895744786344749300804995149592251230428891164412492229796211850460126937626551027471020433539928296992449360020058461376028944891542729761921187983567070136497133151135982002360836114831598281454433829560937938959177038104253639174434993809775061996436677058977407910538054888792055830287757056315773248867817451095807475181441525148676844346853524998125556303005781664284448048238104462830929017407241152631522873544537678582989552112304856032599716202234786534517570198754492444869046911103261465515082995215131410796159790813383732861983426968570452719411664991412037959807182793958497273141155052775651867726756092006758372546214971445710741512924875980580687231450044977652704588977692317000580261111901403427058942343690758981789369042195743167903487490169302166402808740458815071489671044660114641218078337226159179014943902638015161808905426298923208184186010862493077592806953017280576051832315997774895614819970540029421423848424193985852724990134575888349870820968260647444954864235679149957012502817618760565008524853491367090282458365296796431739822543146374638908293472430849133119505066816123086206721660573929954921626693616448363382876325934613935744154259048875051231382691474386123502926552284004529737534079548967299189950104280521039681570824822253162765662184505051797126196831661178965995176590732643656784312484238710257964978262463749276414586873017965822647924771551111972619487205108973344657038126953686594492852248772210340720226267758811514604090735793459448015998112048381993280800814594452375800979678487722378154704276204950996427263391217671446434095864688682580911339283573956000000727434895178560236843016960361975590298862999524214550701273886152556676253261844660545958694558058327989333230276819010662224405217621605801290196444329318673112445801466585983772953236437596078006909928644845124028692441420058436209673361763053017071474590744148882129063929294516451284755808668311110066934463871849893397895565371115331631696777350334722960372570085233948383467256616360579726872767670341162835664991863415634541958778779219147135869232605239557003601829774113996397603080461449629517092137925388088683781625100080118929131553268304667021992002403202044513140439046657743822913006857338906948122752768882990844480816673962112326696553861677051311761993671842907878074019569795631004255916009564039918490695993119159105051148907260890673431960845433485229281236661588468163006853330541145776265334307323027774080567120255903617933595222965960127338240994243308114455879069334024093528807609654414733331654494533468979673991764950458671764508068438062559934829807272469467200267920572841914468218150923349251045892020276765995366996694486356201969450958969894474335783064409455973676432657750715815565980542294234919525363081262825122842222818077445200449583315122747620957693108776465412374795349323698004901809905027518679780771306452616007948214352234210352230165633172619501342475464540479853220588380690228640848720556259367454837402014498686653330629964419728423251266174231929252929107541115783725640048621769046342552269076957333528044880811083533275172153175380872433038876485401788592820068265259877715806431788779938092170603141532361095692712075868378333614519836448603026986875355213791911699015883240225993990841501676752090944488183967175885694539994348166361721309618667137263695323952200155368805862505536218715086782414847258413235307527587518833719648479216034153521021069864613181148199361262926409654219012958483339970010515183136120246409584385459345425441473726567848801607195036699787976321141221763056452065493080969404680575962146512573109743590705842750676312425425036996831078411742336499111935391458445682265669754404249743594224064831283219360850039770099714863786872620143154323779146383380730651152388192611037571252087106787354214124710133707941735336657533815532662785198151943146291902133333231167308709388093916094008550677922983751758852239944572064935062094098203350926397092097664694034406127248670581493544036405656187378174186214313204002012286635513116987774218297953517418579459337950704999893622849913300388494658361133541716777706919715432080229946581732942485109610964638593430547018438311620385635709848545722958973941209634240995162394160732871526043398417996398366073605740344357881024318222008640392121712141409388874497658683009103283420905968860026574989636568121464878320426629635802841967264425545940014691796332059580494355768984654299288236349567795036194345217181981062344463091463391715878457022722573420502528914112807419689825084618882385217636457520359490360734678906261608853113792844177238170401534507856302611469630505002508081519261940057401369599817635949015567131522926996513058407047824771398280868034401454137015284476029435900360288699889805084492553455289676439692016003293656539953550544239191163221881343890495113023130109787625918268345004829940338858271509487038513097657151980283553665238486487815438921530609085530527901011851855012301558868278212231464577826034632818332899837662437563113856602215336145310637462334010416118867015106098281555780297510611484548759026398881569307350947834379010360492726913755121451411744354785294370711064923166863820558315655525838341448280392451738845854918529286827869761362090696904757031441406169965997882311310132274251882689558421200475095725308014120325163597167452567574014469690990076192511288069359530937142673153782594915713732939336216690146516089800352461945732143670669636404986683782626029432423113146837779272678861394946023988448244363648898990721953248529521798948120209071911909860302916629330292058712773133109769364656441063874043309943453449382741597348590680069521834745648857973966633421255529794852014188425321216479607656086972685180243225333149203539490158854264487866153794747636676011694208708843293765474816045319104684481013444429591091573686586353956425833997706678335823890664576970922426185180647929080075383887552217039170605646367376595257721828158993639963141370097331702435892733402808726887937788002110254823654565994435407688002866216619915968043297976036774230769442460597458668744378242688344879169540922616084773486235329875251953517517298454089070709993605733424094218083327950586072625000359803677993871167410436986501505506962605960803310634985716857153986259788590765224566516328907695526949481271605507565770188298556450599208747756750757013401959322254518332588740480174727072714553648759489493341668445508612499075920765799288117405821887484085380885077789912639002641129232871629192533638793098549628047185969747949747823846542854199060668241371057278745378945206146374197873982597175531547604071212701759684118739176482215826224629048524055217417796192177176539421218996556490284986883577602670549635661803792168645410973332906289206255889641205206470263441927959833031701189149407685926648760393516127026075605473366092512655411963560661069943459564321003227021977717886557260472312464676257421115354167638395863102775526152172160796213978196820359377548796461296496144701601644894627611791169714307813632871449372924263229850174120738725481620139600656854989145698795224603803899180523729750257098593317586076863310285090941727948810043522815631743976567033665236745908232683434797251378539460687572831961892924021449356476650223915299586486504762106394297037130933788748051473532645732075643565607691501677373761489267462106195358821823337152463338827537038803474283335770664939399060793107311058274091389174834015087026680035677981355434211994395767672805345718366268534046977586015922607951745767266879124276789908232179950842372831031760871289852945690128830611973504234528582415591292519295325966016268798670786311484770537776126816984225816910275848990218189133601930999306519104408229809009042365546336402660567596443637889269523982627953042623738113496429131881626539420951348307553162605498697005866965543600979121559319616346660809998081221563696466634909859362049888582980748984259967146035353560862737116136323634634305170165204458482972652124476858534939225221782987340336336316397403500493321026489734845580498919717735627145544729817881155674852816092791010710830217803566773343811318862232772983282421398037807186512174455871442032274173121233495840810081349580101989012965051671181205777388955409580764625299585190424245121798179776386053777980532379767872710265532397273875805710257522705351340744840167811957277229741597825046623446863812332285089211610893454895423639219753728829970570885768600057330124924326094906803390196313123352178978808464158096114761453539507856037114424059811811920290072461659033061968803642309283331444238963313403522529174065327793481780923614281543272933500971908436720151322210115909903853974427054400611188521764444746166055014446439374907492544864145238224028928699179027934675022832675257736879075117591626658569300798526724863304227500952522218280535863168678585068297981856686753782940795474721928591578522961537656854017395747936007853791004317560004039361603807826648038403855846614592996769122721781871051776944579636442214156880090057691233747250775258459354596315183171840715779134799335661937379338072696124809519762153037338329664839066371288836594813596674345435876433562274582486772541077570880497838758237536107172631434626272259036476354586361683318966948440081462468494552510836283654966518416114120258809560191122042914238983646855140620956687824038393351883238553435801991581064887764242283510036628566207418469597581593917437567135582603092340799711384423321937533021541087652117034514952915706252365881265923717388019631112564624025999378226436511720394253439104903696996580487436257815005371747513506021906153861724235307189626775795540764684825191414022758503092607900574311462675958418641878331015889300581980511914753965467947753834224378973852623796639813966968819661100355259452953557800857795408589045000045317366201275622162461818428618982035573652060075196611370747151695233715992090192071623142300572331148074581357311288531129817929192662402253303010833066322138097935589218049934779385454566228719470352939418766175577868525103953399359685085845298093377817619942352764102747914015791925426235352654768346687367768226425695514872305717452833540641321529590726585390658780508727266997660403265845413855487879501480347705807246164438132905640522054274751361518407619538169047081569326650057702853921105415012212523830549718260685990342494455732834204187849456939443544804580081776688190002193019659826679958561597840660187605698836006995607691012534666036370132890546262000271917013241277870745969997423980180432917133991640753482489284105205819664432750945566772222321009340323380582300349842910425224893247325631275845329111714130214960917086652467255591757160904446901994998207007314590657110072217579849322684655518788720206485264205979227130725302301619761081599269117889538097827436921043271198093073506233473841542627764456692114334139973025772021322228764923633523748809085570944130498052523383311466306439056202417492825607373383743070655690165459794940222165577882508054773764112650547128827618298368629632108198692342851577779813460484319397946365028444929219966112625253751583227740223095481175210679534498111604447529806281897128779089750345114635021291142485669073598235987540579757959501374286885702238295599468027133759011342123856830599031268114093079595851815865901127541269399983308550508197349683182452712798057709741639323057282984428146293389926992177212903667133287373580639117324479321440486303992499909606357135601645810075248329387063402780727397917213014525638074961777273957703900975451021104320586546891442439224698252313991495740127152376747616289761146615380354519245684653569131548695993621202540961372470220369331165952567135440704507338191689887571895961947410431166206746042286416344445768636922547956380675283334841699864924621910402429653258904524488258176333157750828381225910033383576514061452948545682300693756023118254115207399678720770791218063606587120364309783825984007795036397333981619076036269876610525682021470358033565562735346385346928496193406850603169995639050789602494254556047747851425050786739462784626854704865276447219642302117551266004619018258818832666798381307092120214460781300193893996775576324308616843858668985706416729102066740031997741995789404616335727170389406346369016846552337748870145490408376650140302189121001229781248747413330577744201740504131032617036049861141750119774951091488733880009049932962377295474039623949350108612123448335435599362914657665082472649703036130628185349166768714974356212201989069435751176211123554812462211252474008417196939934108362130547696506264247013689948386984358498955183307923137219693194698388384781306285858774166420720965567433498948442506267654130545288972968818286285437052805493346095919924305732037253477527786317984005647301661388611551968982192365114218992767475023620714098093842962408175117506362524519584821070256289708030414343410468306639526022371270686210419985590345284216896391987303427468107724580948340176194401137815063868203751664445253593514041173032828419797360751024830335740342290968240322201565853708886251595719672459541980218370230695481701694377197961243809595348288110513091649779359580826194675299304952314536291383946038832646521755515560685503277962181193148511604106410153900477253210743243006963823313115185745969542002543058710726905384491872683264413691452158148026992128084245678027040019994610112641137495222982725933946011994010691164802721845833098784757282361502064735867033710168923951347223319608443472119224760409627384379260113503095034686460438788586950434359155598553060596358383646792268566390837362058480226337207980290130949850287656510567490702340812467292838279044318425527740331008235161490722858631514732803882016273084016002085060778378233710146577739807206127394912777075018478036772026147037926753333569071228746970327072117405087093759411575423657055434977656774726260927250092594402880401066912079080027470034479310771804861994737632661620168453606326189579129450069116413195993957129576209521502772004593329293715006131386091356806524360953670575577561259387509590407510714751566803497415904002205105180082994746379855229953687804159806821126391317550503078740283737840456935819880192881363467449315943014822720476930520217235562789645678656693613680264943265855715426321364364593735164565899168098371401070847496886518166295679276979333512401579145402088042160966205270449917871797485645871798129593197535360010750016479716111774116556332915222167463119205837571965348841411836150402781194835036625192678764361560297231885342361280150896839134490844201275387259951482045997350991296425699636349570847958737492695286899631641376163724307078842873102294800693659851788947467364251447019190428917320528678937049758604358181341229342546149650568796447144021744426166900388505102294296050175674818218578800828911421932335701783799270013280680011255984029375296761679009173214219994356721771494233464642509429137910236861760931806605500845102589433544371702010390836768137168106225565579042218569249848951703017678394196348838450506465539540456209190456205825068270646595081291122270966848806264834780623383917399168463566587193682316633587460312488688364502497252157106394320573992075369514620248485714192391587415451338072771435777632713599719996470548120423955676442088486880604450617635922194619839349106933495302681442432016054617471165324883172500194296787602848994281062465054628153737851375354467718913225748283275619187908016507051668138462368793059068250585749646972575435310105701886798838816156364471346078066425730862409226250805075201686025858941494154949939480847007465207589164160815394879604136982525746714430164019468314162362426485132893375511227266137263346755002796663517660305420840561313029341835345424974231889771292995712945040167714409387616293642518182731934208528795991950077133914484191386922439468096862268892741099904127463615140494555759651758836766051459302482947608815542869312738143420959370427719674817013450969706928738566694536269714244966973796472849567951232137244223937278079466173451669379707076507510324725715436292132732088106483978837476674900541837794172641768701530279785395512749336009624086196769518574682226534040517034144125509888070580313970626817734177163132516524462242099609259760174901358787154607261542175799086799960239685316237504398064675157785297555374577678124856753678243115678963367697087557353099420181275066186980490183907446475977485528198840921815492654449277194428581720625708977270739123256275530537126723287701797225108643531824253361584919205020106087083270798251140291015702778642793724819228722593552383036025840379303755178270577378291923183325669299257044056450265082030577121633121129306203979620504360647359192472358197094151527239866536705954400825437340202321957935039018281984593767580125595263681734005904453659375527591635910484469651776219800414211346403807473045923808763198691805589198184477454913851417936502636177941364430390122661609857707976004289403728805969049630185041655193475218063150654893915778513646717578076700745096026256955462981952751515602346315810639571502445873523700802257256404784570869426196507026422354505464293101832313963216917213184105724086346330731174554464831366524274229285075395285666964789696120843929147880932536689370958805282168276806900529117096840901470220193561677580611513890215383229513674488366546811846945784549466656363687808128732144071138133844308135012644005528275166794735593780671548108669998604257700137211455184051769558291675256881820710258751894147880787290929817954027466960109878416970327737138185880270404844421514418493831224387764758626337398443396427423403429775017727171525089099437498871401274754977803871006467257626507312571101860764180974361228982324359334166072488110548752233595432436305580696507297507829089886265187847078160295170338317621519934947328238813263918199885204401429479133875471362610403795547848652775509392337329565011579559897460208263935529833075478337871237070067066556647065920529492082798124786261186604985487244009652534108167033533626815451345297678341944145101735432792631730183320913979010573651907391452191117417580923088213112965270127643989000902615477622994908578426012685541271935286729582632423963183883498953015973084180195657021187647468328391505690420490015758332393063891469832557524478971730003792671871828048146628354034169129281102265551905382573020747105655426557231051028696024232530669751991146681280003394181160276476608752077133463418552922853929955974696902830966196001972222430762648004053329948465177876723378736622522271819642148215818827936864346051927591341642385671914965380040230089554325810079727032646451832038803629273760688553545570208025705963793088278421312724945227751610226302163529450479945228655354566399465987463601242110593371098528283660650612721302406631184397851621953090823676241555835241093858246634052744675248180956571441312252271943619853725232280955565013673039675774764594400704975970075676336164624540025944196460789132662188807620164494222391342075440605067746830920672031653529302260157664492926691871355985885947855957296863514344410693609483679501180584748793726586625668983937712246105439525119929054950781306566351735912811127815332154907922173247201565943496154690447864875810162302759448432599254442629704946828911701210108973680892462126623961009142746481216387641965496054730043101739412542746947464723840647735714226328463441383720023094503223497246232174995234326407516707880192716031421172069007085557412970390735583047916913650340402879708286565827621739966445111820435500295014712478060826124998710040348764154437862356871416301582440359205820953475885209192802741131615086921487134013617968288963413900813900586889978292065626289727594808093625356378547603400859071948484449317367772879516210622299891967640666017458075834684548062558271652164283393549420260815908207137358523879869725807239127759992490873366673820219557097898154982750606268522125521995463380305251052825622324310126746296128398114381742163035955501601911666357394853114589707917389953593638158766121075002077763078508804353629030558354867900671931065018553606839039070634712853950072241636737086275895154620619828922124740240057278946307461227450685072324542290414909904204434096004369688803737739522532480259387814406829794838538679318912425977614735726776818504625010822245309136186380103221099236938344657613947080668135134152667999292975526304966490689360552755897482082776627764369321702045729115386474865738495616472340218553588783728678757209247927119436234043211867437858269397716887568623489490802176412756360139358347246279481360665993553392382065174581838889690202320917240231746028899049447540277254016042347165405598641473640012138934534224210486384679344521185915636369345032699188351729505337355908321937348840931401449088152389756660031189176936394807699432760141360600586107522956691803794393060865165127229773587171829706066409700464235196306036679002885591160653966510749077400314308479240856596845967100144641114564508989388611704509927705032205540887983556370873014920903857911930786098426970174566908352797969866359445926746734176579459439029878180424380901202390447516217577168007472217720382786889003392338835051175669899409710655900072914083104184175888722930202424969093309375045427593413418242071182675272964598324464592354146823135029578658936864258410912196106860272490844612665411417175831487181035636767546353057464179297399783543601672353656955125358481058973676161418326423773865502058981702237309360861905108333512209094489067349384348147317365449887404403162693175745813946084986924335513310756175440356192348218215117889051784433133300448716446936866467223111088214852018669612718392773228023855833181869029417116790804112275678480053393461976097650371529775869572770012415568657526917497926841296058463978408128344348879263476123814326889596790905122720516061674860201601486458780714078014263031866733574841781694738140015034164669335990860444259977866070567000546719230076974597337576360026697647992736393197305100154113374004732447471290658574604646308729479750019595476787879462076582041768272551872296402573106836511382109808436028121687327651637435779132133333271377967691654547997396515453080808209941130977457272334635390936151617303050722592160918163144584351192740045939230125235741020382077911936193873035562473959223532185190242460380293767172766113698048072085806070849682844650777436051763000334407906922927029420071031933085675596504607637835578346590657114913276966289134467580105702606736691756040474554419964592490557061186580473345888061583002283130135746017256365628321190986519061657273835815158442908434853375346684210726444154744229970281259439401844663802222855930153088028194316554810997105316470709133160168335945504721655536092988631962884625072701949513745772449527564976831284604026954466069868351500713683174302520855495926235039718657084948718422895498131630301458092498599253278561843189183572008574486735388109532731719338917375107194902874218959401937169273446100089985049333773110750963764626981207071577759052448262310268381415936763873251003608455711844234832745526603892637979087103926967426284106338281835682482049669800446609602309678456231442516083452259175877804347187844370814184082611123213245428157124262858004951710974872832564613123025411788470475187793199342650025713880422796475119654395073904005419820211190996460448628149014111020151503523041922472720956456197366311650677450269006588732847134512732684699402927287181011608822267561026322961647375524768816937895006429956841917366689128011839152935879773023573889208640705130079823343484821692860680661481631816591915079190122736744666663582018674723519243164532447388067883185611728486892589452984015047933841617536046821529714144685301257699621753385722585439644639996804144569228457896270359169319002113780250215219919386095479921031517605908694925119598623221524131320500990066035781601653325638377810346996349117971694166122040489840844025274435166095818036193428349149802086899357321648856822020630892810393727654838505686524273900344343270243929974256121216854427681137641883471280076379578913183419616348018493875159171135766315813444910315294152690430227472266275457566571846538043130521049534579278445338231213641701080286912299956532905627991577051945095230473969724940636465713583673407084653473879915478309456373552838744644579577780436043051769386568511909342400416243602745435551479581330515405164563969576144939879762765345497936417014430224844838406822587790420609373502034788576121593739376072309592796730478042037293855816012156533499537340878375722521502938450471060464757764300909431662783126666856022261502087917383300260337849925452357568663019353923110610796530679930909552686452341135103643962814269049447076399311788815526661014122279511181358320463830883598264584746964453526501607197590329028057780804688904770213268825568729247356047979668621905765870398057195301769582437538424215730769339705857492496500219977993219469277473412307495313170178162916764362211645405359502822001661356430857071492912072018948802188263532433072779986585200016316183096918505337564951426779564887919398372159455567015642176078780689623774183275843777431156126318895977705879750994117309329131362811252727348393488400982513684469325989569166806459049529238184279308379684453516737890935426027060298503580288025445082020860067666119467863221091887353863224343063522070912789188184835799890521727113038875330510781554488663507378454120074678745218331405718547587760428545074244465228550370051648359134770379460734236998295653772722988729865544955650928605713681654949178116683793424675788465057424425189235019680381900849711831895384404423704045086917549843496860917335894677813868023899101922135018638812966949216177776368865907301770475235805811904322026527508093316294138972148589032962493406571708528730508178904801477296576373501056626809534141603932127490093022781156891597249518734586446951567183729280073454131911000712580939438008627765222232412885997602711104836412102088242184007592458814917594363003519208041784220546690292958469533961110000510075729595288383224852748586173089490721452351369249878399994292729926866187496953791039146936074984018082041313296493406280831700193191644402045290291883391572583087529715987391845872730119813825903056563721456169319474141314067862462555513497948799147406995801574837414767708685574914812452185272831877346673194582984962062462104470063337490264881656472519428784333637142738722023295698688829368163327980678897632835799100059427196854150352933200682014753428343924543114416418725314650200892527082019785235242677050189907865753171431642765125870061039348994290563396947546167555548585330788021975196072662875685885288667694505773763514571697946221163815422284849300425348586795915310491278781965884963990037304281990378230048176396497976983146805538157742683914844930967952407700207941964682335176375932383266392162047798617752424097264975919381867722029083312623661577245674803060295651098573216354133558070694977821271994939945580466007708976929122923748658588735386785900065230965877060835960071393455645482827759216174239829381952912676880381894000450815805961135323807616990986303088936020818836321817942469791820406419150939259974097620389153932550305016017477896454964582433959141508924849333144385805003975691732027766181520415788436839853041067583088277929700149392216310900960364880971152764856502984126935304075125399053988730057726517593003570017233900392402242191749768205261315600216306843355695064564428835848570214185602452029377803210967345187501857998389623953995861015040802296636509478537524924994139709466023899568802762744629156312641876576463772975541409716120654645025279858991481931818753497003490973798576546729242709705070154308741859929958776818700920910010950554689479340908190452331587952942260583643272569789704421020328072823439515194110341050924182346830318109307190040603434083752817172718350601699118130843873024652499876405151687585890880036166658321062522474768689609338571263477119898273261447212797561594275413803907235847479796276120242282423577839385479992108085655021112907043322815065551213104851926906809016934917097158623908640473578651187653751116533420153184169616559798526522370690892945397833147638015174069374431290228487071824083902693444562420241823564495765514730909449210339757826006602165535870552003095205416806172554054293295114599874856099089162516040188806945455704837330844874595711153364136695248077768491245489582680403914600302810426599603565213105872854143337918122955492822161300467481233339492130273815138134868651542777138923066014828899368689178793852524575470037859860752938631109811391817225463526432864117028239601634085524904349502871907920860376748504552109114638922240366420694854605371826963560051654544571196648490132676748787042542195260152803407131333378659105609634334995993424888875761916865726160450308216656550981813486265375177439529106959525119995758123064693589598965650903984427349275725376399869565321687713335888673116017032956388945963552867167538368059246613315807597775710192663033435317463055228747803408694152489665403062239212801685929155361663676926225615989994335010582180885820365407507392806870213211927267506903051694924898155613771164416120428167181467071916602993666737614038765828231285945675089153084120089758775171208974774156500593091696797265429604346986504570194432445440953947715471194958858153260547300499005994929846953247243627374375121680797124495329135737807176768120083028501895910015756943743002848786828278246823016565376415602762111326634233306358993029822862201846587349662900008408596897272537295840027991085323997541682108693948632097166025535013387006766467922800983673508035249241991345628736114054771422213002835369437216726627466510162553176032666782127053000138220878864871835523044997910925440916977017564357605357061360077950392331121615877409714534663194180505217991914348396977271893845918891305012306831820470446311698790320192834105398619457990844783181819290886017964412982986651790486090823278651263103441576068340437750296004075646982503495194913833089008088681376136962023178584018483608712323670364978527030005626153363628784754838147243024719959236150022786225035069084162226056307332201756685218332183655252526068671289752071406101834519846627065671058300141577957352298805216778429457535235316090405678418105147587858537773130838241827332592273637751655596991850031553784013094321718265696183526267979937099293486310145935250352542880782774239799798708237357663450029021938615644288959475372740991442224582400774964747988464193208065308844632383672064381323477409808224851191576034254491492357557515077094945906734824302652218178399971028604384594232916158435490982175107233419777980430823530870374792047050113377323130784214392879283186044144429213917230146536057412451971464414900221891473490349007491609853927244243243296505153978800551699641775437730502653449264748819650408048758130154412691431202215211765247082500226419422147447034617635364962664171964124181391058742217986482458099522935680120753045573182925758257179316629339121169311550510033302118097933708079341266058990657571809986786221203158287953466083131096775817441146016356860054445262969337976598341843135038911743268387424743347227523206912326810431414809012106416577035493838224100930197114616873832940941120138807792377451585456625175188402735106726107521724222354570158798454240579459747309751792778898551789716914997836179422869706502196826142874735150856268956343929237019614555553755181622185670211401868700569261260638403162344609107621337993267660975432209355043722760313754364739427760006126498478662302564975771274131388692143324516114193133819779607653639634074516418836130056096987937563863223167229355169740477040576766087534444798374413743398501388281813430152066528088062361780245271582336143979543347405537764261774984167873662578744140056030758733393980060858812722025007372698808843712380703995795800424743816275283847118412624481121662826093738636666335447223934352671564769261236502355214741939730782825338586769651438201050274836916839646122062453836745688351644376634278097475434573835900982765045557847129527405452056487043542469471251726901009552071597336622108306286909223553111172649226540821861975875425206808250512875575088295567821423785300346903058260383780833006473073561913029249973741421620211399843649313934351244590020377261381006424709090312021732320636406008519597365461601017821162425477018420997801877818687612483374763179883820797833770800861052545834863869730030227115312570738440168521463193797389253128129422921890872828759432092328027199985801004106765290116253853230836276754027356164311246964743795407587733930737548956547619877532847832886942160883183788718457646130741038453930380050012885743035886324913710506546507000053959838527932037501317125260702905408699253952197137373702423706492331182111478548936727161258897640777440915579816478622522813311487546440510732116131258034850995036101762270120483870126739132545204378679145919473744490403294164488296563923554934397656968363916202660984676239025515026909410270984245086961231596611380955280420382920793365300346699573921412641522884190216412751083775106198259399416931495381654649293276600626459161707469941231319612645574290946132609132392085426488002542305738108630066575348543939296220206177904858326775555898466455481585096572971390163930186652512286794299676487189640752732080557538259050003116044162977423824991460833857044837790886412410091855669607056462207868440135746745573049212011662404124983703493516377128062406708505281828709298740367004564067031904333669760499063583831978141147645887991846235850395303763913400539236176176598542766480109867478901799889924355779588787810481624222763274420977208493799348625231316998742172076499478130963686589334236741232655935025506981102264531479443428417546958929288655364013100543403746377374946357815532934723392826386399008406411778562187583954949614768672804262447009842454244403503998451192833222326194518246707356463313482759315252093039311453255663430779128893723894900768657435280329135075700903783352221939121619163562217458915512712437131290631638013655453892236110777420580701241019879270402413421764705966471085370200575801341644247094548866069972604908484697339796695570227517466097119942061613634775531227338918201657419718329154287061361339693819385942605561834240347528021552076138034854181321362934693882613449656827410799696387873376150201190573005178551179283000018116542184259354266540172907565682940012581217010227445116448126996176467639025868258614494661561788859347429213541550603415420282667964152934831962012592892771371090623319379126054807959996423332661681697151177773697989717234875725837437923460841411589332277800852999025217318004558137763924954513567229663131047255795224139110723863043346908381624220167373345093389405846882563527649558797128197290200398683514144784962101096737608054815135561929754798800233645043557446641128896964796551855277122259895716849589117169963455161696567998054297105201411561790190814120386341859878323926507569647292672672333808230492256351556563896891276550478883750982720066744930984159991389683808253253006940118869531799983480005271554307136158225246976272952158159550352468487127591121806285128816694936137670483123023872953277580495066240678979771367950587695909181542794525124926670920274022847993184778058191716078673270712768885949195364200989624430303849170048258818191215376247521482122807424123134600101213619311686957651213073394874035828018955991008834370429052664711615829447464369378599523638477457731035713756245186463245953329712960328480805710210026337386777036103667066717211650398603240386814247272027374335189715032284137914784892820900091107079604856033937150520784982533195524808280230449092188514834378072621992062635644692637011848268727931995024466355117698224318364744230345859285656121016617038015057804673833633490715121404765182935648757105915502958080736085769172576508222082223090627584816437878677539887599920938535273917720948212047286056671505802503782293994158619653562374168493497615096628283495050744479730149146319639719185166909090961532610053212716005781068464477227496741317001994104936374852955207914590658261362646596594026212406971243202170496944370903832904218164200832971782572001966345674759878411426541425063488759521068941366380621967737503443009107972591876888211076643118584451253936774478014156959522351660628995367430132125855730198963106514319083298118324977320357563674954665028851609738420274960053625836967110838035821066331072378386502378939562193952950903653391241332476047487457418421627134653535587032021346183270432078178908525075065603415940490217573887938823580064501079017161672188372916131997061860841439957508479498248099462803556065537540807725280908423348018626904259783073436694281812550428520819183718989484004097101563576684153049847934482269026457943318432937249181732454661157199824707372940513843064823404232885195142318573773578857395161955721006639466672172962997685788273961741017535717538635691798392711466120959855063115396418634281112173044576789133522673454607089300812396072689682072565817714346626072436185784863382414628225535993857023210347081018521085743701167318386859944445619856090683586217139570991446446029750248254526544834884150972078713136722298558856037372276778259472546881342648373421297578343086240689009742078165928912138384970317706895320774343520757351914563672497751578418863972374101568851215709634693233157423130781195122427176493906408942947544480173305565209247877913097421620484015011969142128731176854432369988280486080427258683358512816754763618443925858904367760556431664875968268877443304635607280663966362944159053797268496471475669251536141586026119891267099296700037002244115069288943887443948898613001328082064995122261227048800626596436824095060960275463904350070592474298826555543313869995264854943854714232866364700008120708500673911605296282329459620157304447691964894176146733743482119452666928065679720060036244284704610407326817582528323679812820631379802492625038757452508438096610849005961739073634483923764659798864007991955667068263663001697197147019966033338166540228584603570448294670128437947401652590571454800590655964079516380595238459481886447303122088642412007105443955407860985560195816899369334884435843111431681089304808287506492144071325089636771090333694584355391298782411269527540146594954950665992617463628006699396984214012884237674614746981634570619381804118279283763277604635404023827459902863585359314295171339888474950533567215401385644344857849067500782895005768519197204289585145807581174448877389425814621956424259620946242133297495734347361143520854053675541780601846399305321912846204518485745642992221436408136525104877929966488912855010270534572428337706293304424161470809160582163681067810446165131815652561017306351719663329626504654563606095421549880025673640730278402143700752753780846805833193451715853578490582291071143696353528990003658681465739021161330774980162782473642719079935245179815555973973653804945337082053912185235022565221915423050730432915813725231554955672869108162973736502238172131582490580569617470166009061922292474669927728055219304319038352619397104627039862553399021640407929074286010472458044105757176232886134766927695957575993660071025937906783482345459452045436655363105811376054996277105786477243078690172037268629231352508369879969956410923666510508020042530362013040973907150544417622720091334826760684369767190064040316821664687964013319893577251292536594503033811663270269989232616060647426237313700307170281824974393092933726534596727846863871746985225032849960939736967832086613273356967064811452503435575911171796633678070255238405544883019779295503147179913179453299638747331506915725280280239112524446047638064851466683145012223290254580943509187045707396840365073657100062835202591664385956241202614787745503953387521608151764522919295982849112234047141572832124606520867356552989117784682945492523483619789079955414072257853071753612988504369738927467850562399123568214457551453921409397159150205273062216789357201225298612625380546030162153912158841202653419129366463472190332715149864403319318559817808101770519055586018545001155466654120186420419371107934827380971824825940513000874663295426004261961654694400370602935534320695726028086156175987197629929647501235047857848300274974392995834255519271548141564005147290823150513319933258995238129413257672341507264131462383130959054298129168120632416299243229532529385514479314023536241526170824295514339600470435532724606606802088904399171480921446285356620457409395720566818449501711654561935370519399229458300069558378514714895265147167802735347425136708186367281008947084239643457869332401778269976567617915072569451466349590546091181693350760819014049262205759385786525579365630899573672488926459742851943374542572784455439188134630160691657205935105045667722860026772467538128990922976520448970434896899897803324179088310445292517308658297433735809095668635137324759857411885062641771648690320309589210186906370955325183222820902712017656813351994522624865378529265405829199829737748786503664548971660051072407780398554610312357689371681792890389391616026054737397231417074062456814012740721002490499581789296541897215651564505118476675704091965047364682271246870882193754313641510318937039768649474443188330923286280287997830944404829659462605502513136120769812663794521273682989179322083268265462262650091768269485057104608005630688420429083621253129168503679598012754484018427156278366481446419385789240639184249588776295539329431059479782258178530978687405548882677966549627434530104640971207187432286816271164163752220990225075495280471824137956393937833712855568625349376975276985176615407715308945453140420524682113473456709068707169471064415272492965664124301320925148935510399756769486357568972627264737717850220888150269641177382306328147559134873173691918565421714413009050781540459256230236914724956975814895743327651020827186315502935588334111990429070647115145127966453034013134764534628968954093147064193941011231127653645552699265664517245376248515688977123126151911090624086685882230566790539182534918134382958097889177591002519011095499433176979129674104061098440921113939898043903276016592940783576376095627585576418099808952027643401754611724470964202255730657215994283174279372278495044242429896432586151169902286401046953456144660825686813013838411896857194856146208330808156836704825844167303086454264805405556184486979740964899966004143255874034247882682263949039402395454635315361981903123245718868747309979475446347172932737862075583317124841334379534449237970517251703247883424066022100745522954675687701315460245346413562661692659217677876848064308901729820612468351678855105513371012061976867400036118096837109795443920765027304377475821232245038844952517144496098618826360395221366312844953166173237554554150395001112085518701783024293238871169838061302381573206833835386947239334942258745601271334088617243297573787093814709267562261157166316762269124577020314028279392378299981572156420363144202533454106239617970517937098189731943708607024844265343507217971557063881763920916533624515127662888327994453562010646062311768262477115476018018063918735076744662930573920293579854998683907667532718294873780688215086747651038209154720889893186280344895210082327876214843696871930718946844801116014328498696107489892753244791832627810815731710918182457265105846179197312337763596394399685173992942871929525172309091675001145359496928984233549227104287978913326866557945186075238490744819167303404184213743352719035188743678805309440977912470366390517472224198743766651285912645578583346189855803431898223184233141089614913174528127296505767241412247464826788109708412720013453949080062775670500373382926449308573807736278172996411250137328112619481479096756306497749408497723781538048005561274175906811612145539073284067140447221798413068658957704486611299730022489062628235947993354110529141573083008295582317304686767363818447772009337770598234673895581400195294300846700583067487072001695181129802317369400649382174700109256332970172331517966587127441190173044627484425288119609000447317593134299048820585919515870846833273477552274435412227473559836056449058447564859086460854075203262332928765384109418409590932433897524726907700827850966144712422435479630573935421977125252824502725301281109076684474078517123172222744238484805146896198984414522478352958636912602884553152062241216870096342263909450171805019129607240400503851255914263461116234242194085563490672629227096943363953503524952224249637507688585536412594025188292050218925272646078723007767101967748622304444825457634180938782635459662478991407390542412560486567968417776043478371940509601082622535429062503919563130619604436092482332958135411997230779904515510748164111917238226461501056999285316032246145709593642803514562772402411149546879227644855356345309794342807497691015295159400488775234468105322125357956764156348615082191709497110348033533202096709895658926539538659310331176753550894335433896436048813993587816839255561312929673988424794429687930482108357168250379863546093766357069086696309461993668783141068733771060075894202105493000381427790678974385186050259612460886925451186002664241847797440355123524460505463058237875499333651856520493059190496088057526423427314460022342298883163305340639531831706044743641067769165799604551217248668211077098254400961260592954368320302103713663041478479775427752076950051909115764809907140649554234570095464149210087001311768427344069037102322792205250305031222490437140262750067788947078837045595979601800092940640371139234083773855637548325680175185335751518339363817461269758440631563605797021092417729026420692023025798783287373054976257715808563329947496247730042414885247345268225617417203670149681850460346215086636178654559635183773990685532624806896974021651863619217466541355339918094669521193440754140226994281085777287548108240325782991664243836819861082451513314080239024502911462888969640132797937199810696582384057808476419575156335110724502723326326759848441296585648692322890571028154002958596564856585555495333506476950304398078273264286745351467738321335337541406200000278486879257524493666807462917943825155312551617951089914401664189887582208279031786783895127543959322388255834490299131444066488730430660642088491820476543745619711000825008908035519170069024229908065740466500080422551711453716303861632730824094458636884323325912398689181143005118041691893734364339521798488338337182846521655708918166428045810414790554456716031097729021758680664844842567122893565526454621794744332632119697851082316867200721428727258745215662534076580762125890112880328580343764000575410599071727263711792508751988130242115017486354839966311755489894898146932582747374626279394974049710041126514832777898704173083541526983998488362816835444317928742209513750244701550402931463297613772304130139358979502108109155167778649758477286759274444215200584860844772227483482176341879663383816253793831105629625672306343102356354676916752927533595250698419526444534409444087738142157724822808355299374398400768887985227261012896306595395270151520942944669341189949651578627131171912209697628830902586119996735151735402868511037618719317864773514910195458716669193362949513520688275997170825410040043685000613256011896248985816667294392227946202862386719526481276095733856216603512343280179945625587143412803799984757842487997054999081842371082311086773400398209575721958471212996257186670885812995864037145156206164124578751737964102684954710441816163097545884941537845594385094154281403998751072157056150437731555045223670830067313991628141696894964611285704167893318811456245286695662123892593149158347261013816829686541754432850313167667125971009743110829685927405941838023604302216892032741773647740032303646316164466361108891610582240469608683121308780345394100792884118269894306858098784158550863580580680687207342876573935257075889598716750230700741414912290945958211302214710359999899263722634372076295764450035866141909542771807172047341301516752927629268289937131136865528919314713391455642798540882994432294343229412180857820245205856334699375292947583529668585703973596632045483699460493210589906780808238158977908846074773083325380934099784411860224986615670659282787771855749859716224843273913863234486269359276519861987888283237029330978057898738356622497444422157608536661236507424369321050417148922717166790773745346351345848143080601016642306894251837012559231995981536328290180780832050598888746517244899184187186426147073071562262497114582569510109643249693251910757380803596067865653581296356888548772394445824151098810968885642877973771445471273591200751324632213697956076345218215656911753316944721882981941702778380074430094350818918242988394895018828392311116500264858043292576246669783982225235857454293305486202149743758059753205266345648263980894783582694805855292272169945808498618385163597394192888127769676623393243662090865736743063021383787539200665963292847663587549526707043111043627917986261858359595264387663630197868525957196250104084602603605274046821837273013033105090955153345024260826081513449454595519007599656245493616710488207084838906991847166683407931095823176548113624027168973934588540373783577871631200446868244517978360447637276957973466810325957893411135329637075363651933672170786245686104259683861404857360960661954941486809253861588971512585762576061242327359570014373909288280029559072291423613518650546009524740252383016213654436708759076469692719729732764399443216487963254240497762763666370161016546686072511364868070166091062653727371806276471141340585816746892817180414519272822447913728029198579611060933285092064494381058997771242911170483147761595583900429489793821261858004607789673173556624623177373646393978965486213580002173943567564422864561113013784665163032367818873466169237481697671117934491980431285235983594892713902900539985583957810945921558237087454071142239332214927924102122642670779250296176939968268390405082843967503436430403743500646135606753159854760669283773151390541734326908518398744416878310423520515573533774936014964398158752167873006647702752555978425733058114749030622319852458104208065107326086046825520806813241872286237830954169211939033173692830674730943300196421718160513421585774683927804201854398814788870877360050926812620352946515595084617767013695020835510490335816077036280579305573786189329200410482408046247248394611417506250307147179714369021902012482714868175141618999880575154942903613420506381565475112241424252722585033485950900723061218675508032693691962887226394555978074656259980814219246545112223464863000092670862053788251354737392289350280239417832434083922416978780576701925218602017964199083926411234302890592017070709826463822266387785710166399316526036218831744853280871245844736781347384030442278264328137071301556605747792696638867169752127804082784955129539354245605216159907580065795604918413129855085096777990902909867600497585544082029606004870517934199104504925676657658978748846248387763064105188715336146281075806724492071604068320004442955981530581778897191197662459697206987717406419727725391878098376589795731266162000653967392008439360717138998971546356191187788590472195608743552404135368379929008365817681710117974547061878213327022678438463776839585840002264395906786018755910831151505430492498210762270109495897200980728306032230137781225518234553269784151015154764623535106036991660970419127465100742089924418359181368769088622493541097197298405004331155632136436963211897539973316674197888701613871664237863384688879766977728612405184859510402756198799938733265472716012856764018681282151462705454889998877185502762022575294765485581477066284295927813418075498093517017180848098302673275717432675561232351944154374096029883238524991636521699666604323974231146052459493266036097099975770890942729461547244395230445284528217877885346150666958629186443294834232303007827509681911140727550133714917619622314306653051962459125067326248749983846105898269459189054486347495532042907520757688537171061348125564218318832750522583765367959231861546243629166429320019478831782533862420540318008441710586883995637063403958510829302019555585835467748524333161677176078223980243760957031698898575212092007342776534761561190745123058348222752987985999225510394428930718473092562897759400820558411878296709786302194030451384654548764496303825452622433933422358815222680845294843895672015588617591015111730887915555953424881764509463252974363983269328908284771555081052342553783055378376185372675524997552254489897642947184388739225601562937561614392010949430036728123932722018765098446340185758585512151088804181775735091557967877449719523059448556409922611088079151482178235150578341273348185986755557366029880135635623077859164400699379420683500472043528050546012196082311547800827917726170758741606517158686775924026889336039383338149222916601834043532142554916733900484220266706610821777578849029522771912646966035088555446073218322439922328563787022300779391899146930302596160116051697924016338197332617431624146259716841035175137160033146143897642396184099327045197417422083174773843927129380164283852947018777139713328470918259801831502552301662256870664015283921458920863430962059349202053166548099572628484782081721414149829760011361278715371067887417972200505410390315697631002474457884529763690841260857811183626820315569103172519315228450243678837826297733663714693411514320281784406756829049050373787237021791377977756150227230294127292075469323767917352351391055302302147266389174701623889075881756902624285859818593631931330649120949371299753157390888381486846459396932788930941638082839925326955729183715947395154339407511501496247990974840606693530544032010129907155739363399967831701478732626534155140863159357278930459271886952381500965149125085163473424695389052508399434489279306303434589237780549834712925092779855281410793782830956021022734740681604102099087549541822138225292268843173361698916326384765516936264288923650325141307432591097565732731198555976587521446585833164390154843282810838038298175085551527045466014971736430266373573424946651472301794577185201791475339855209560105416597418135498408626828569917087422876245909772693596697666508244062478608775133710050176890259197515400617746192056907883638249441197656397012393556589658632013884846254889945095838369065257510052837970752150752175759730055908566445404617662551205025768296069810060704300462271926686767535914047900004869786964073740709411098891923709945416849169773216788841804966532521402130262975056593356746810037664555847537509473392418536245974726364321959192131745963595397968715400098926889383997328838122264826701053765597018022126167908472763153661696598058912645600682316774880235289521999650658930361081019947972337473545817040419577095673855858303492403142040054290236115015397781589408910226082641818974769510888478644019491963250345375423434107032537102307671389306350590077861614773261123718242907177775868704663189136558192999694908217697104918347139400365555325939797475861339858691503232300570929701477787340562508205820310111097771578950255893520689758054448268149630687460776107358696926517875107013787805893577850321843609818023882032178204955761689477449339133843867599222240002437310693472720073459550702425790116857292029427502976198694019432129279688481335179379235699777072680319231928484380128048288460278979411058710685652615205726175414123663426935727198610366429193160171891030776112646463292173245363944052130174570810579750805672076724100644704575286579754956860743865385396093122517716814479169500760223525647512023473687004115393075047183485121217419494022050653561967418455829954816692715177064730235972084632726828589217930299383771168681810035379502707099085900032837674929375233234742567240022132337480395182432227648660117741434251812693792873604900109816935071978528628973737078320665403145078569465861240297435371115068423692247388983333703718368276555131122920402684618733929710837850721794602595192271403593547231353799100365176599386440432897868126346411479776228072158624824435431957249580370737021346568111362688060842467499231844391627564995193757145095188550997350638933784521856285990137312925130130544672640343976510695289891153618504110202029824245468332342567495107799257510705589116005016844496794397688367285590666659210888772813244338955722427616792440602201091263787128078953743906633013495242149835145376743159102032498870668713448080506815407781598552460651546079476683340780634221537588641891866072640882389505875887736713240733965820462934374012470773747904008522622950966235876075233585023452770581365401811311009192279320835003870177247586670176064954880472129484222356733503841936754377054090102273403472574205980225677566924532031774427150534959022696741052081248686397384449699130202925877563557472100057599863382470504196920535276718240978126801097797849050395861143194884204447431678215774584768781643569107932546327977503212502640782457118309608261537433354609481009108506146784163752659074472286003232407948549858703986315383658948960721149805640089265690683212914374219576393572970146779697676526989351598070955045486707411697013414415090488807343944554617413934495494875786142494182895596165620711241566879415291247384643552769554516181051257098733222977832574895404323610063738211128564326253622137288843088535595502932920652023569676323352466301821461265864021967868341611433924539996827183265365005322255298056671633473402737405169232713061541762713835496023753908006884762128410847949824696399794909417673582204930620240071134445704000097576379171333585931595905657479978054810973179500745227108421685599432052141921653577683508010258439005489723428466637533325961659068086996529118089523583802432441130683406646047148303252539325222190833108642840357378372643921835569384926485317794383153562478018427473455258387596128380809638640055748084091578217402046099618285547337762856976664771848471197348207417825021222821079173932539724086145277815887883220195047263258606802934261081053011152937260731099353161622178937282724375374510534903786444270670460048917566752970768112625689905963185260188413162391478140439801830465807421488156983543827426956524430784192199573827003555018064145563750899558166589826692529439045191774640073616513573640617455424912200192742026704199206441782111057580699864227029899739703521645139480462042637402518242397465981954741002430349384257269944268131567218117142604783466788821630844900679693982969351933093818022453574088147169608006745384512631509523574688880306009590983676823821820006417495148932091832643982797430056575154451969223996721324332254708193880414495277166825609375953260342393690279825813134635871492999349772472495828984974821978568559209729798260935200278466907282696539281178095267444733935030427711943625273016589507680741003015277141276960750460579464497135456744591095679592600142647080939601860614618730641018716330171899199300959280008723459462719955243892052283633205771002930831205883685346558332537291723690951617809241894500822965852299625494277636852145195769656878183952971603558755793046693214938004754745165419654495175444125416565965786591671808746740061000876707476390263062624536317538107308907946301431212289298981059394429645876711513627602762308729468961305808295732881528042612111827691729162423231079456761023851281951243056218652383863793955792165955326973213137898219192435355384197901507640819223876113837645155566975956802402294718314724606026786666680666148979304883457063601804392574959984505532662632592270760151404583031972674753313275802701576536964247530102098884495071210737286931698669944771419802378018776655472762054323124522364643432299509993874699716849254303987420543200153650606654014934573808778490349179758554925143878807975839228787398877529708992887300002447374977312033396934652372256832249627909961224640656939132019533888009070985731880044021402613743403531744284756544154916001774268201134855178296474683732687636076967429663822926205455725314935435361676423701549833195708219180477186394434519279236792180418303261818744117850772113906578002577927801326335721243260534202335494632378311206975225347173987404415116250909720409021719049686367975985440180091468622539097569994117669956737920066953433432085073138191449688013987902953742041799300597407037587220685418719567917033617562942059691503831606358884416710022677599989073115471066722949135458962664167920678392371823058028029200784867717144941915278388812485702701783933520440105365065129228904811274588331800187458495625042410129542385686452188031131495709305712067894386134124329325888772109399607883780070193634104401667638291106155587993672876621226622460333514226007927208230713628875233285251795850152810373718809855435740294985042550633163860973560837580808868195109929766711419793020905425644508921231321213693602498147522031198812660602818763560253281416736821320207217432446488931773232489885432110860731973437260071625433293639998045590254839031379178482515636290977689797241842833445837065429152510239189790515023877178130869840807641308413573386319622616247402001014909677473515936254682386719213304959628741308618205656938330372599606538753784912265970045016661021563756307488369863154197317824679060583412903379209066116773858996631487545118933325214914186168045237816868984759302778367440604548357772010415565623291559249908133621317400909979463784982948995572110212698758886223990809420651060963264807763070943255032774812189575932316062693764957797473231445292013510379457461446935436150834282324135268974370653180942805743595138422510525330648126726412190495242392121334989415311936730191096888453216649360452424200393760568699354080746564986217185022265409443968544055666126993672700057281327478911056088239337178521961149515389760376054397098258903218982624937317286881492253075875183844928573776212614482577519021149420953501046199276124123375577979603330808185574412250158262829976836713220647610952048186119024988082956832040662978612780372257614722391075982194878606907896594360121384896520984745349147493434531701937423343273531592777403356804451917273484024063180810966873458325634467512507435933244900086222715370504375549482848916905077104410368856869701936823888975512402612181337638580115785839295652564396130214818961874832365626922147589024113705603822751263875334551628044812914570833796173001949247488198783155342024694559953258101193890946771857348429912786085461795866952332122628346245522049842102734893265015929216980037523486709725776814189463711742745976280762518642174877146896422773396040378744572957283143988374298171046489986208678878053707650257699662125649431616202114504254358855968186737771262594880905652688711699873107328299356811185037856442480072532672984102679153905468918083157485149032880877349492795154920095803623215234799695068578632313928358071493184529978558877887570690354746235929745275917842476835298804995408099913893169312169367808418747319327966465822224917455227974238339155922685116700024803373327407005836872540840666124048702499814057900538493979656127048614195845685723142711709048784388270758585426688659033231843642096994484453042720740195512163226581919756611097397618410837288683556831707704119047539471147186362037279259592169376210409061777529582742625343662002457378968108687716424195373058866300297967958625955548106955700377454993990723085511039296216048568290340239557937725269584901046066517577602834360460397313679705939881061636093764808571485831556431852688375466837445479271177771629844358412484754966827329528675407851145409317880165231194322411963915180068632050024586208331811590285471452240489954262102528502838676057595440089290492362292842085882593181816861966259635863484289648319673252339858508206711409951321221333867186734835963111760497357999668484796456892809361538161278221072774151079819139120095170481986480834903517158322251755924383222996413431342980484251091392919699360106762833397551861636562412745256076598895009825902801800698384151017860132438840469833989394435809241759510992920442171430115657478935494283495359948128313641538370281568466617659127826993004506035306295230507230337607079408665369109523036537204000160990435783452547753150399641953480141026825624303155606523182652451368026302165677547226249957018536257114479718639766440819437730600396976594354386667139044775242415173222072018504411168763922322492040770774816155562004326812097505009710390301362474567878358286540539528701668672491037695854033366016559098269272134294701846213577236421809637584778758511342165086779599489360378227590151228198692391552349585948285280566805183511210015632019535433902435227029884072429880826409136894536394385976237129377565828826716646318459657316822209635988904153370428643500884179072982272429170732111819928305078931863878650065760958785633565121379888401438538363308269768234597693368072856472741733323142070938481113282965864803127210229625448027166403559400765058297451024784875841230360865484459195858776396882838173035362207619198844600219524093329371296579046976123985093702042186995874248356995468062307506643157439258147110710378214495924586431205376374509117398461160293639539236209906357024521247621081688188582896971553894783608932834778178741752866104756863956927209264177458394815991697699899716709875570125102785590338043866338673455068112408874634299735974848613486270897142531835771773795542790077833604923145278976533311719823981949329995769025663032887769175193751120513283461266977383360103124968642688729376583581710577644114787376481248394302864257257650317182295543284922856532171660931971790256248513348499726148715997412907166997025119695762081389587856380779425525293859979258950230115627550154381098072468382369553746439358498221333085214338981125077439941116745497700825388324456483269013159219746797184518772957497330913053928325211141888301610131851158127383840904383848123051970919732897508553487258357627596072136395900527416059688418934342316341719914283018480373998028556081698095214785691754722910625861191582855659190733769540494027916686510729793567969821048332110889259943919691621308645870499872114312044369748631945071922454060109493244523531240315125209515680048255966213993118434558097989621574946248360032176248555326861433039783944209494301444605261440938681987429754471954315320107211168273817181599439201686365510956075401519261655949246774582283506820543337943083433937038911611175720170099021266340777581699629253833488738225733390726759012878310156354336660198514728826917195768012859672020433720176634988401207196316370908329716793225826576078420290892612090218851131537776547503530025470558639559529385578795130029334182747475280432072792408507326503175620351767000741392930088543677412387137989336975999455546572911660268540560725152440131145375249581941809189646797932631985321398531036939970193400500628784020950242441251913230814248750090605331271958887484733828610691275113358574405675644930799111962095773326414035213456389764488500625850477942586971117995433637896275366283834722193584812347327390719562822012834623447443635360577702240086655031650358588705430870685085862428590017391867368711097804540754743460459828567222661278692339570048626207889136431634329034736465157882548170629292067340429106800945345100221116729550074099531691418709188095845029626604068744346059586684553370286085330317396636687551595806218219013278113375351059359093049264718519476794776817718003925077564350632756817843171164513158679298282838888862744404733363903412271572636199853463761118918329989470554703286401107895779944842746316266265076639428880937165878786204872717406369136320236828104788389650643033392651986234596956486376449601620548193344072927081041689416809449514687056903891382602887787797611109925985606377780220688884272211099685442516330224357411397507829751505718396668482716679471314417928107352355659423663604330621058011255562674504074064563281661776810185229403182761983887424513374359166270236640105212374593414528108407342907715324830472088185175772622254692637548004516863758302736181003747231668171325188343485377937348071215803510734825848903923204617973716886632375676922299507066607964954937477830947589195949248915004070313733081132212232740412678359232819135040868700734806654455809282348160307507181789704084662366977670808321380297667721488384585225360719439616122689024630354597125594282645201539712392652013397103501144217157018745945649640293376192640930550480326120308783360531903875515319656374695119784024352094889062843489251072591390546029100361900569645335978709325072319501778355435975077927631224503467462355374630265960542150327065124170911759302466656475735103883819233377414785202160226215889250558663712151447379735038014125178943833800369907643949918425764877224324960079874459660839569311799955835804805041285524716774940913266972096712233074825779811540606261366018503007294141759871451275912851571992625546528692247601390952051267811518417188894354114232882890192284415892291827866815316477095806323467924907812504480123612258101634935292053360818013508505647963745277663011059952403668909828360861926718041725920241490096445708730472943556930512490111162516986488276766808525503931505668304234631147285076267858235483550938199912194873589075771316188727191681575714916728055057421527534841643859008551903006654085185979870312131455225286767161852697756054405138390968038129756423566652648495830804474606952535151275906934263579240128384025432917616353418483709508402685711344260743714961090909316555308269146098492068869497285965628364815461533659900926585486590351312040691756144099042666866239966912616918929920944759672426916919085660986417280176631773221215063792193760072692967803132738252486849976008699488898344987288666063837653086901294723826209977745436188403957388981541650272643409724761877969040795775008971851471556918224376825893871471203940328083272760984232319113150176848103618465674340100925812061429400250115284643404642603628291123987079099207536976710256986729189951128906390535233039563915345625784510888162411353288138006806063427503462171898475457851079359503250690112273077305785805116519267958595926247253816946841180500752074822371335335114557606027179049353840356572735634843728501795990054202927856270475002711625909876661715793143726176834554646336139459378536754199833975732186393766030167283335809311806583566335638512684516069197774240284745712016572404790680816741947600927336918424701472161947046278019712741200972395861770786034888931960642414901315959719998018017749152069664235597779728461961087495405964861902679840477661336096006300949259666379124317774161923627820941190309389557724587729711331774698789942448873827728210452265701885325294740643486584552920638824185802023787913030439630653269720738223614908590407688076888566147445592794081354248189303022386995994217146833513424872469848706761908644541502294009892779519078581897146066512409957979176246932704393798771719139358385007175673118969654605319881316725941829751111559329801240986948545112845382818611692359396902902436675656432199975585650804941059771243789187801763118666323721098485632327498586328162243137850805686130280686724679008754302343767202698705057626015920771611266985741006426401528414183138070293669097896763843700218681261578509044422713137230138751254611070464135883734618923698622196216566659396045538966548232271483116700509571988222212141295910651174137627046780438837417308397816927130152904588650647018260700400805240549869540204613540806568684400241157844688816694720987638511093731149917471334317587874881120405737284763511928273011993126240166983723635396642253295799629227229663753120895933899483863524404820947861063115979378187280477598235898035320583976499047663655700675442634379686324076579854292086170612328940040432219999723857062592951008473068824634489261473619842880325508783890341770491286165277814035339851057218300308786273621720882431034872199447819924515458522746183659731366442713800362966380252108958977546567528042945264969171159166268467542254169330541009006524325419241821925709034065103505645302460085328561989477929545345030858448422341731821510965338314885106919333088625109324682566917584637961169368467560671916305429815796931928057181491056192753259734046474565663040557930647652380932299482641593545519913933330750971163081930519567972396459876110983572629857803285822953109922093800170877987540582655640609498536361394597550763547089418055635948649844958759828454249123098268106180168282265060423243596584454593230071133628014934242696230267208283496726987316732168178608086631638668301345693312331032186731568804941079335224833527787831005612773158965522189135802429836021461604750108121150724702140298650381815551077989156052552447480319770646165382165425091267955012539978944927970814832469573424641934565136818241123515267224780768501956205389014233276409201610029330120030246872669910228312019847015731967828057621806760439947622105704857724969859058328971504921242305192201260212091777914773129005431923214860055098010797386989592902950408073009382946482651277079639524891730049268434732867378887540642604845463665026969780965653227059797124223933056654060910539099868220473772984940863456914757874509267970527392662157938287902354318742265882409642935122903676767710923896976590938576642701059667282518268258769342664514972323150515218957762907615832350161746987157012629657240437996623545866698183059929121820097832057382114381028440371625367972335897581890143314827052959062473578195606851618004180649777771453185658598345524649245409085729693241106333035969093666512275396887501956477287799549431836038350076606238962873694580423040403273297647534826084651164717154541695037561037356848666146533263564167411344315818110459920619284653618966583930836735043430604436604846317112254743120768106861119332258892209141059482323853359938484343657406474819028823495718960287097362420560097000732622685991615750622237665842835988015990424298034695893109972497651713766421966564953774221917504809350383225134756165261686666032844238069370113221092036679653677873973978475560960358923292240981996644382204205823558839406382139645363144629612532854294086399450609696774881163256447143819355084679590392475976629873189565322542231563590100573437955607095364759100409184857795759072223244497733039098245730082481718271993382766904271774496071294847030322550027930541535284069179105195999219828873225610629111787644027282903248808352018640397989749312195753921021563329880384900513923122267796371278450151946965435807558455714910498867785495981100354927965865320944054651905553211676220380459902439287891063877542252359498882179998595995469557163540418568669444996222595146930681607494211189705472291192990228389702238970094711471602632042284536230482329540749652863112613921600213576753344435673340032477789011866822786499457843789313318784079959058909152624447453534727861419093843792928776807270410443391165255902816342264503961712748761514238376558490538789742248877181372420355001347926644679734157197409949746675823707043493071547638903337037595041907907937813362469947371425424413199795518965780177130054887892162671302668559092876704335085672516922344720373758967744721816524552918546338355072104653482957772181578738326318721542221402625195620422183034380217988498049371435125336340089545957009714327640913561486304719694133011261280752946822574793130995786845296597440799162431607496940720752616289545355352711006104590133043812100466572968600088493469831609261830064391899100607781206522880111037672230241322855205111410587183503397604779621649558452715569358394303890777142822823965064245817265701622366616497895808789461806551306595464851784642201122986333191196603987383181069368080361638611380090407048010332612450395409107637296040514944756548554559807309279032325979415800923046987107936776769305373352684595885229787983056213872966536106324565479193576834955130768066297285871432600805915158334386211311740808097980698260807910666371600323508299230921430844330918129248770369408957608369376979062986972818561635862971125299783040918749407891105655461414052443044349258427616222365369432635374285482997524134743039719130706868312650019690549276200186737836435892663070007337170145701192879778059925457677478002245633751473148646129911633759645998755699500568686833320116351125162618435264345110952576254678319112862261930294206034547165464703966521963108170171532390670648311499682242202474669349350798191003207915053380025678406994485895266127710318399832533467533725724113783390290376861190614434132680617069194184231672858269531885334015065842284735557839236691173205732346861136645520898014235595420500357189417931284454411775469676709605437692685994932037518504757022196544178663924837345073002335099848272198452405414004028268870606886349073759495129427578607641816955963919915113474471728983313808248565338532643457471079061529960126856351155586934533126932826644625694643133422997487196504197038466498690136212468495355057491832385065890287947547137756959742424812107877601064227891769606062201714024312986086221322417432155406924627477665959049147941913676409485002563236887540703660853332408911920821312110319508643473153925039895061799134572949880586533769337657348435210179705710591215454134188325575068839266290361392886242364585255253415022089360403756680003260005677005310323671187618778526359473823518537329416113342460636880998379589806383807065252483382579074852183435818227480650005505572715057316505984133582564775937982215849483061615943309069371486602405045020054836351371729257014452689739519305690843707334890652282512524963636125348318575577403396309804634396447855184797472011649041375667038788663854571904423059757649790357752574679087441266613225841141280679917824747655872270819920975258598222427213326807332591822164046544479934874953364695290012794335552675467066847861040993896853986277576963086694077297267015162356553810639875209016336773916291805502660354742945767986356710515370590621332404844550894597243715367833765581118466864840053318085241811035445141054797992048632710272946273988432410404954036246384694394133837654310147557923776905418700140926251588756789585894573248758897089356279070332610870959196414008511146640767005482620594538496024713044308781531690849283193978572146560194073186624429611201891086338538450692379297601980042728069970425009578356690288131232690551375291088310002193172274150879616909077599932619004069288770374322695886928184207426113191209387565785414254149770920748239575492379084670061723099153866267606580454938601719294778344832145959111515988051034956420124967646819259666060780797711281856630250694978490229763335297932144738760071177023589546814484822794369501838636267773241414878082826456812159743531240579770026922500282130421717097318712825398792614683758068837423181324138724666112129865705870245524341742147951154487587453350590440536089777874430580049347738080849036812943111844405105158496328713104571862561578367466174569494135915757131056380647383353836136421425006175323017354893127533746522795220665198813999880925689569443904933671549868487806798724434458692265093812068506786961637484574873377397083280049998608071638460352219999890704762656368306793202758176425209091525277989036687534179723277271507257224935290076394412640841521737837957208990966666796177313494838010097464890212051912342129241582992225771200934658184837428028409494863562060562622394465669845472590804944396144722753395290647091509162174529320106348045476520161895315499474717779058978746638676398987694452012116761987884829894260072325151001654715909529916278319300257860226181414612978121604647929739216984509993980634772171676476420587774427822802700656010148331678159448901044334043201494989518927509858414764045643711193302203609689960397445854767660841568077105109186659580191657030148036134001002079658980525463418674977803464648863084603101292681119960971014212475828705294028550596841108461017996403416436242441737568253965903165786459670520839829859637022924707253665881140864719636558766325983718073586171801071070935426352027185856417340637961636502196539557147947145497558348585122082207238981384019851758843667724276755717816793383800904354987758418609439275153723002726718643942921334239580923063052681536962823320379442192617670139761938682288042537351118518204422265445395436955260615179180826702559675853688477135035531576105740356241670417344952313816849917108285083807364620684477763215785978721038254335100811021338020849407281514610990158557157277014632913567350074822084673250481428261643972453052202337234063034004599276106020355137358578562490133984659478979297801341616176372461463767276283994067240958122071502348709113227666879370925919141364165823038186815579297162028205092758310592982907063722344748275517634775034921755418862091286885731987980244479616822502391131416572282512690057263516402262683534610067665083259682320854533422534910251382665627298547982630004295689576833176932839039303921781284009308111149677469040581407892721332897171325991094785863327597792920577298947363871877270650003021328301353422507289651040954013578864487825461159028400140106482307354897684681269365916072129285857023007812362246922316980873253519808121606474365250632338037751230532239568360048091532309829070916350272668872118753897734726402888707847878128415615646702864084370260038482831912561298548441799748278055894055122859927205428368016765138418758442160804021588787117958110526284306147347350899609706283433988577695477014214893033940871447333905225063162968785592216726836938927571708389943877903123541909360094879411903545963028442074253275237126207980389774455200969644095164360678163711760247504922436780277654617978852050800183661887456015906405571082023116294804197811625096805689304225286797128494991456775371057744755179297400281949257455411867566230228840536051718295367667675338725942819893356995131508134478960538710169202956236214133227467469786484809773722609548358894745071029700029320349604853210863250885112747544437063907658200316283263762851629658674878086955867983614932921917270516016876983499725136838903585335925577411871230623888673755224424461554910024160499409618776889282027631820437213637786992932598879036541420481082612919675298155398976011645344159914272374957731695002006673397048756367953987773007998189053773419187701650524969991864350523767492630479865042253936088405746301998139641671576122662952649050918596504755619914135179834673493871042874092653955978591684440719872420576424173034704837601820320731483318731169871438614535116832051161338361436759491506573051594519866066007115621211136502741591403540241631741740594498118721844400074416207174719612431690071178406079063850308708498888441375056848853341003939960064876673503965022593082517487408040810011254503980367060606191886114596981563687569363877101534195150124860128340035377088424785775031581622884271456799415053182569156710287336841383558039060563960237647208983906618952681511993797135530704254368703189156436079389102313503944690836927678229734629458145156430568232944233383934240878770131983953220264553886605233763072440212216052566484871629041607386034665257033080620600362153134403412305089913249059344550699881644108652130738740922492817804951350781181797383537538172789822848819968441634347554701726981783781355220522132218526699513014593127130696367685517896607127878768784914026102712280359760913828330619054262880656180867987010787992921357206512978208105862743796186037041550586486315210663478530092378515052410179131377396770000638256581167320522881779691372285331735103529663266754882302364928500907851764792047038993142292624782552885266889426966642268810253863007111315192468970835768861311971798714101914455753619868921052635157683209275187423936781920080829692231110913336085717056182578049316355346516565032198790042929289212054321344649598529724577248046161199037455675794009619032893195193161679679202067433802478396916544046658578526490409484963857823153666852287893733394823305716975857613972454638188264353204843435370778289505539250797112280490894252405546103422070278194991078689474796218527895850588529613691504791099340475326725664516153600352496234985109506942599195880317822252160455432451859255495868154190672049213244125411144131038288009930675967565215537068061108586587320151837526088405193604342377665735474647066555458027264772290959928223155037075588170800431321296357417693015037416415684959223931939710482623151776459887226581979859856233424798275721775791425452941290550591347228237802844876896613051688204949760493655351297547356367215962987953477315541208279254494418450152553901903146608460406390373462728023635927201754112898505974440254648290823120318428571655192489977194116816798318590957358491954175539059248152107122020513523331514057169440571517365095187073240961934619465411848329340688938179683903677033017233533835809199372640196589415820957191072429827325390588556558624516202546725723987064506307870781018004777419502022224201748747132754108827154039808184413434908072602007334195369987091455544015353742181225403836457088723660227668776901622548404132447036151301024351285982755575279798917112604447053230660510015637263770333775000478797796421887325000978641514708207073361033442450083494559946293175133518435319199578597852441924119041586534123096891239693791731241962261471760410555149058194337404344762338421278588474075253697097647461292983531944962864695608425190618310843425374065168714044935553253521841944472219570524442436375765454152004178214333014037933776180934686624359127939745697167881595289666192604977316000919169963314755008636311428594877144904572455800728643068029920634138785794693989935706874488263733073113822074498666683840414068403944764112023197534356434340921060896086316755561026800547951945363629865936926321701289322296193947731619063959903351418639866783688702357238971212724165202083861230061508106291595336189543001418644078898647795839054276393261858724274557492798974322799089911457576854671420131887591144583774604834146810320907348026415357738612952400360319703767237306761055239007300991322403657554554253423215210990955762725090238876699742135616832758329240170311895196811415830129761281329017846461695201038656812987658982933247649575333253413017569305242106617184399528963301112811198984263121401419060013588232100384896687336556988410249263554524728375662683483324444269870818789824124576548967877916150136436395305631679154069809155844641229904978609062493728315479597805429689800354138704825927127463714319441227623462116382947986459685701704564027146816208385757629425808634125620326765485560939303704677949350501867636064547002430971868510327754089328856920006775318192621170204627248130128657480547808822201783180367489254995596212093130362239014569336470137444446388842690336676811117934320902360719969517689440153151015220393945724441728832151135033838464985114805301181581819817141097023944475705046207016803217038051102173003349904491388610352103194658230417685729581927522556096473271363499151424553252081770907812910039604131137601207357839432359189607721683082012538838548051444525585458645804194983441706628048546207704159051502831061290625746899543681880237299318211193369024647916437620607326127659182756140320193582578051321018157261804142572554449527257397611493910473003172503195496189012752805530198884959143509988212521807472668660663516135127617053635644456612128703548967160025720655494770808231355573820814623653215161508508001769263333646390301144535790923569293909255530474618838020125491761955542158517491709074064503712604114182652942419856139104611576548929525405205618250780946774133592837325193022847387886640955305937026999002367883269218326873455992172776329509803953223085018251874219741004516631778295161260349827869257126848730660380406656246711098470796476384335966604961670265220038923761018623371907698331864074072816942633186417195182146264061676631649928200873762213222730137762648509952088857898802072600844876495145911011110046074272627305257587501037774472312021139694996755604571912265885498218331884568892186100895187099617165016303433541827056462711428910532428438354561252326161527445366092092467064678551111217921806370695587120897216829435855704079837362476435175158424523277631770428168873641557129308340838001148616991613115001238056688639110894103225789987154186308867976053379417781370124111643600710351745306334747512492663911387474675089779697879025396753797341537343323876439123635211067640270725521331729382706853241587002069396796940770916932995542201566775296036572953508912638157098853225718439132069346976190776383403475022563310445976804616226698139543981714306717836174661974987764460072130569256239175973454197088322935148671788162179398437128758394505416053670980790215457531020652398304266605361730617757588103658304766240790987768610478931199073186913114799372720500169849270907251472631891623260145497837971881579829599177283570263380482182063051786700413152756232574852036170386336608793759167727630143073695930571519063740354608088064425945494649813672207673620341206333566645234937569633772007434462806081415570720470570422912963995524214504685016262323465360752168540466294401168529824823312032892840963225993815022098226048352989131459691127992313767172780681329342503398216950816894983876850183256361104939244830110355717246351944519851169875143791886592044493347491868840249226851019855805780828926618742151769101594290807302062879972264356405833054160414689360859121230690822238908859684907806201534937466789750943239902996005562292289402245203163555671078221958048497003622201106661415716798055113313504528298648894851440248769753420225260942673292597284608721325589810999448114385211930803977914859352753894857614248519518545049888701173096675580095557043807303684960795249480228981909126137166712553435431755660470558861916158104563960809234254215940625553849461742657620768839678684024414134340347865909199375897585802831589750503830421841563919971253946755982862478495772754416052745924914710983551749128575356405864093153842330452357443497879176196582115561708774075088715415705981472419836948806944057112154280288618752183531159331430861759555110528741304325778187688326254517944104550639936787605504518456857072746943491596136565973324332861664236336391706807203962149086729189513390921266699152011467597494014364622911242086921258678675446853736124134011943807529672933903206090762626969473194005579776402742536590231943476409033875427635323983329426567005500340039158113834663043760043646223257753688567050979778468257030383351260534749997626983311297503626596530807377999417977306338752929221788587450787251515567522029551560011734356202921194041896603469024634463903841935493976698683781684428673697460319928574960712724195044391642741290086459774255029786069901007076957708216171252161635069919243711186358859519152788419245071005847621854546025099374302153162348813774046831538735620476949348154737332688714833066096790449050991181731187968764927985792488919640453249220064066293722002244057975350500471786969604054294710285791213183130047210081556401277674074505486857380169801520215584312908309611730014982911685545663131657673590324796242483787389322693966220164589345408369786239056547742392924128531215265948174670054640442988456066656503556299351076543567868150310447771985384264862890598377388873258321469092162006682044090497780571992418598695669403163259705593374365094227814860826882375159817526313548601383438663927409841598217983898694944360023038563214699458456467403482232819735092882735910830663661104802690207550876732737226783196964330877249830008175168056580463676775399782037414447947731195052737382138866474112334339716363535156037434924493253686837680486588229423464082128555418778010744475768851808418720622936397893462908723250899265246881755185335507211231436761586439830982513700128743872510155490355482900443305325915805762991769532049771790407837170870797476667426590181047616738258676282464614725936795129903251020982110256142767468374162017540029339929091268110159519843533611235472842303523757364027428511374960761163801635397747616154895024035166447550795323687052116262621680640505818200142394582963640210474388124140573009889345486100955061848166227936116453003843120491220224238528258302224538450244224402828028560802070957681658779837104859086665537026106266841151611782890940156562195417728043404070986919133402050015479706569172164867465430822885515559504013710242156082584395485991194943329381255694014474676713656930857832424547296717272014999194675257850275051021913027394532482641729385903718026275559510187914991401535400470760940258017413214688289054754346425822613302516893575250154748397238312224596790030968317737986534164991953591367706536830456372730936098949925683308247124603393511257914668655387299411533472349746160353478759906657851028240939024206682776821097477548136336633036612688535182036696641978188549675127454312178478102579806764537199354912911352896980754003158542959345961484972402049993870688119326829289284296456765860752533299328778115383310190187429512446112881395621987489900039824920100555441855171523107248248291398296297059974279701185508654466040803022525737797482160096468329186482638806932912888048626136393447546797513469715499620473131031560369195965611581225583458445446249136901476343983215871250216968748491891123526492468548868285831073918422109968124676963258694530777405853926825665303741329278700738533584587798544158043867644713927871769536380729049589570716697199170209242175638428853605066528891879959723396151670293932112264792405823361961609699993789288671258141282071105093028862560306042357303777579990345003124892140374721274379782704349741225758024032600916640759515876879916607102378643537917082048887950930405961053839085069886098815673161462506140590679143683382879973285977588452038850715858845555321832605620933327137418430411118835553639578538575866908978752230820005732416255480010759665065075969461964880255536998789409163631650797943552813005137011219438185626843167238556669937367356036568854099734778856926916315091282540006127488289884950289120969995354809481817896393954906990461973207085065957521774007964058741181512441014029207880250146853880294618405261468410495901530318748530432973335450149723942544104911690363833767183251582257618232913871452495558251894695236747947443663728642783348225145143568650206509241644663914877381006439038318384933440642146997877298174038141891967933333975222998830534545462804966071422883271414159251601720101322506536991234825490994603997111429501734527632185402721028975551846157001602522890475716251064571055964426336497169829103652305047764783396734180780815103518546322807709514753997800510584114473077916595067008420749470777214696421715644275346279219291579230444701571741163348919897422749606250284411856552800683367865726729556954476779999480910947295982677667139351592214085083598565040267595793426984806008173872795051066958941799050481581188720998355504298163925110197932735896735154297208084511030452372220562928899070169736550039910468059432669519476121517649388358139817018351139911328045213656516760190313962717546457128681698786597190866228313129899726713563073672181084033255167987197932880714934565284707282174700541076945396351640811693188857613630087594228673257605707488473807683315291341601067499764172301846841237797344329149534852370507040911909893313266003310995253576008029687632148657606620413821873642964802593455175030832629089546178737552817792697404473145354977977662857060945901729609829154144749186596747461444633399431557381583788541470053921251474268238672682678385139072434499102066357889152443229013834103120122367728440156390282156761557167299536725298116948380391926330116520657776909307086247900578393957560299939080206851210977997513301917603272921442784772619063820921040641705929735988391463308216980680680882258717197509269825229971837554714342373076489206712379239344442557216178233313925915235056489907119586380298032232150609902386792615760635197890849344389607614604056693591966771637540255710633627172207006840817802667833606092831518199557163707540100855183140450832376371454470049875785631488345450975689994237540825251888047579175072056938032321482059149621834427694638991863359773040783666559311640513030231811161823921663160271908940081816892226127701459281739610162121168993137952094147232771295803409022211121725351334028853740731696044770875783552418517629434186091254916712850035129383618021980459771877177199122706903387678863398691732849938362213114396403251475174139665270982403784017951916156307558179364486792968702848889191326183855077174183986924337392221312161846392959055043620949920296138926821080828521217066193167651416240076822266864709663805162724578416041077244264354571098371926986400365718946433466077226879274717510215051413402725293426242086583123491291722313573923797954091302100758036562706823995270331988862071218500959040867351661211920707478354468931579802521940187835336667232080760659297142191787289483521957784687803908732273926198373706886702638300921294656789080335193951897824172238856837119359082160936443297541441240284545812139772319654879998370296432421037491133167290809618329718093391648607486497533639378655770934404167328763825046259825868807334799176873970748245228684582966375500864065719596854154453714966129410951230562634490949248634905045036743303105010349053251761511689494647529562434363049737926081244664377674110646891409139626142994860329410707521977580246922862641736179676142696297785272810811444185546362757048068656664071338603221709688274802107664729525957170644409288079818430307131272006579036695946952702845953009352593634820078014346043985067626686598191128452027900636159532285035382732904064949903346411067385214432006491411661421476452286260658985087797363832003565288678734642712066742902981248566831309953882733467513405524512255522772348491668146141519137041015905425432054966462864331795147786790065809828929796906208330128601636500100627473492053249652535844860958614504225905729216947420763136457848508157282239415888268495938380220049099996622119533159413365494803875117531275499530243607797888821056540322716985248969625305645571383564500483718887928926115089080329496423331973924362143013220106700169235481273434604063753445606848661034106080039083997295604730001587147895723300385367829757702190964425793948507132483397495930349961292431279501775476280060276571500845253925225626214081400499915294153967949553044865259260944289677183740970292850111398302099033494953593369114830877021635373634985467586017618745340978347731230293302645638909613827694981351257379604657190749395492779419734629927651890001030644091285377830684886413334889427103498855602217237638075406670853329490416142394897632654017864421926837134046828266311396149614680103002890901985080070843874820095522388516187480553168946995376599081569617028756969828199032198572667884193556980781020986250278252368100908647307783492665792272485384725687152494232583393660325151467714337064570696960961204328555760543619553482944814132585628245798822624593253653085290581781128738659645261869159100631376139933243748461709742613367196796619468070784603172181130336641503462926689525323436478782814895130545725070039262277764347098748371830011937828231029798292974634534508831021922182616936943857554260883450498411481392715843403483726441640863145450635754056241146978935747681812359445000981325323511812513910781183543768344307011891965208171899244930661390745937048707870659538392591991780196127696471959708821813668307917680468868536025954702571124330558607565167023718771889043673531760234098298291512300254640994845957105816536387951375501915809004602735604696820710573491727289042770970413918794565243512867302637646997570275261139955162878749072011941447228183401929768181121748231601947899308159105814551446917723573979113598240001417453387042432664234039641751140141367170549759268503578496548510770674740338104943557616173295939399490127229675507198683674575830254632651838144497240783092520589703753985384445100151242097362616474920112423161038816087734295892029779575685103302842193845810507080531217845447296252637869032955088841128922620027806742777093446163964298278619816740949069603225645344224135734449787755109162177969745835216401162191374144604888194287935449060150692334280305483185232543901017161378146334815953398072737610818740259470170124473776712340042991499739464100726334869451193790636539532882061020703930207545581484159776654166314854946760815150794473723996954738295662860279557869049402704392256248700121908419677799692053848948097882194699793687479710275439129084576942625635542887995663992603888986884209217675099564584105785297894792169920964600721355031822040309409743634483515134980545083256538815388223394942646102085574128724956340494761769530149425565763329584753845815068178935815163511574519878701401607351226715794255351701757301649021963854241150855347880677975748076692638270090218401326773460946194403086403849422284101031785715601012861431055683325714355992826119528711773807450541404401311976624236579370499475707239923849559510231724505460214359366221076553262671968988183189504668371135516979688532104736306078861361618226487435829569921012523038716974975165943243868753196937263399670005642219716986354410742410505998557742494544546874224696029049755016560801699083156427659487093465776674733414497528272131077675083895152048353595055447224197537526726202292731159995301970547959291975078003008611057503510742440350756026326629298040102530875312487605339922665372355884214507571276055812283088045224574228015856355200650672126603206063766791547278770526784542488837005339013815882893969596608118954104874447798379448172849413814854350433423524769598153829156730263011422133263700554484846091156324610128327629996867817778428333894969551090849668116324271571614321488996086158421029348918198646871992441049359695437574630962626154821115123647736957348234723417188098151564561623065842079778287905622452333688429902401275556198640169857257139801661292621160794840932213209981652200468723793850327303769254167544995136728848006760951635482993702710499390392993099676464603117305049182510141320372016763288492270166674054870823706783337855675956020287378821031400411847816196599774225850565349304345269063997879161807971608878988211685462058953982538681190772531547917400216932480035945622316125021560560362140600197552543361781490970963245446170697766580762321056510440276537308969124286932159455340860347999982336295758293715146164522966879888425574281151106044683579654416357857150273858621800250405058383994321220088674987982488364489946069652975503376487131852191456445832725309693295887911776280725305121840626214344818061910693194742418825828614506370136171606507428817884986406122949764870277261456764583698177495640131522854361212689858156010511153211079742069165808150039576548732170272855742051183393425900026882505153547414366675005994381347308690173157433211116178609206356903141942578114350744193543032124855788223006206387320453157298404563361599222048107338523087880903885829756278965024694411211651399591143238322469788980170248269840780286745993497315392506194967677470700054888723188048512467381359659808968403329121809261340094953243577010304165993881426307311200847767522451876988306449324743885368776565219429922334900024884337425682260700738470784807906475599978935505444207204070722231925483964383883985706479764949899909796314234888354970427610144902855596730409254459302606074544728866185761693818984005508402571137860586496478185826608193590790496494015919758523191961738596333736628813895932913713432291326994516507799002846756342516730065463426959171374127427862925748218381378037899205506778116090610488639782781257250856070883910391175481721599174014241003364076452153142111369244566330939955988623016674265676419393968874561812509665488469213075731673841742707289050193848478775310958022383123323948076491544977604120689176220890813009380476697848268016755643206732850226844791336884585422649304475458969095139322574794919066373862641776030611129197442037633952807802639306067926911897963575016425728577840956333934489318457519094194411571436536876214755407492806354467944848163052797205472116971594846248109479478848037797160978375875932787468170194777184694767248635968157109628725986865803421335239431968025273673440667707346493846618029002941152166869377591620756129961448801889982185366374155545174394040691516907223669016497240979640359215014390509303915556686986322184099431845550172857354785088895920585699463307506895115808315166167837749474975976854322722633359403059455658695934602900385726629914683847566708726790511487447696290435330133555973789808386098790131849362774721826796236038709136079131951412172567701074732743682990813411991824148800175345952780619444723076837869021875139335792456894438239317118544630572740710564146332499762658885761532534935743459264755651487943337885785678066154353600955773252893876005939217793797803057731435274409862101333506479259556757200775347072742059965063722516838270106197362137289492527428663337442232256791528890980395113754526986644890994015341414761763913563451328287647404770170090485429529244304188547439143791611752147668771192949711937703648801145685920699261578458889607371302321339709055626928448280149718189845183057139799690645127544514147797684036847798492846190664895883304926246036585950225018489225865676231937445056468547537104725462506290872304009089396643558956055154120799833802411635745773784478111621791232980962074305415623587769794438684246893280462641770286930123888251189801852809916555426655402782221949527661534450268985632758297603729002568936419193706776192805260119928843248421657373833913338585238827815502221144387627882074310291410059241305237410837665285999971219884077227241772194445894983149738897917715627270010473595389287027517077452506868214788883005615796553921992398105715789029015761750603744512261163610602820280643257296013106577859519555215250435865949632256075347641081976205606923287192291162743099763680073294280760950720224683983533443262274238998805532883808870634222695570613317711389388351454869984001851792250373963793024135065241420495507007188335477532441642676390785278748721621856043548594534326644492815027992172912572973639636858815270234207180453656345743605260630634031064595923808121329437553552718409281695673933895816430643076107208005589294662748296659898521568559982169476942170359517982646942051574515897087018058891317045785495177789573580254125293669443409419333871205350092204029060841394481004116698552780800117735935494982361804161097142015978234769756206185057280605785057452360720756339675583056404088875366685613712957868071909567690009120804217728885121726308701068477213693176621318935404266333456590044627322464161542230990965791966631618359256806807600175710575882618933482530547919129169988773513810476714399717395698307891355170513029344084921624848526046558078810756003870037825236599980871450993834077198325208272629127944588163862331243306136371615092446701194953410701698472778920840378109763338870951611174174192479608361863648256691059848150891921070803464207269846694882438152573041568918162651092700326865045639153655520486724503218817574075646480393974235913599320682568761284870113012666479527416973909885575928621125861247528587731563791692150388235774403228097660387199244252917724807561844982848673374895717401218793687886082979111801803464676139922794660926456968372225421131505643669663991515708203773207242448939738860818019382316156944981240966388857006369404060286004726583577995880865572034013176090673693687670560819734466170630510281631374889430948613018510626652963566811647308195404027364650079768145505260901299882122685796123772600599568385924697961664935571506245768618035775443657805325508866573828638104632198618245452130278708589254533678175593084778065006421948947066551450025455753268695899681314057607004132412148261330104955259199622658012426229951632383164919730387678135612740038753400978764153182058579054815151550598737635148683563445234711168674349472146307848205908025247930722932577286710745891545407657150173952345452109083297125045793910344158000386311064781608328455595166801103161632336029778129156016579994212502228836805612799138366249639012430646783903464012242107211157924609122945440205917112095563126377683453196985362044787528441384705102769356144210518811676740777653348625760692527130393273182751087510600655920902488790818473178735481426517444702102154269476228608915807556601314742477858849884004070490399524831309836953663578821152867423074251948810634503569659431820198161955811068186932732264931744220730404014700898177494067448675704465898056156195794815765770104484830245188467313457421814703032277390598315616009527169987301702751869836681495992149774017427786792783553883727120032421852854091351365012504187939100394222777367540579066524957458945873028741272924769867805915401301975279311317737562935357757300706058895911989293012578571490729380886334618255630606766124589480853361630759191361965197363440735883343077503437954797426106253615005175427487399070613863416924967227574980730734752157273469411514262194095967664506753920800340089110619057133503757554111304817436691675414942072463732304021321532077525793440560789157404750427698956406734957288251510423693692108738560891466597105845258490858896546890437681804803625059794067736262493110046846668799328560332259953149868715890202509347843386713534035282269800133536638547367609998537946910079923258257093011302293460351421839535100752257636304824347488122057009770243065320885260015181829202075604361191519570555696804608311573091734787511675474862881856910785199745347544321853473594809201205044747196736240404041990514862391890568209948401240708353716052672890760691428873364669170970928809998183059568310736888992396885607602841107382298974916240865322273589349889140345281805592289385228282227388092609717020269983949217147826142725725148697204978011097559049037823154131085905938175125589473251973040363847609146947608024645952625444676684466592884682754039652635227685676456141371217594123998049523988014561457586588911260357217595653132002572507836404371190411561319112975269684529501795185918493099627309270559584536338702492915924074917898575084397023637053441769829117432231059297695067532811427307269445569823356156377014550573692804986181760681258172549643679056762319332684499578942525567942343532247888310050844539806585053161114640569525752931970807984534704490136352069382308448513581418058749983933936853549859300390082591558584993880998427539823226963769494579211002495774147329274895969437037056457623798943466495510620321864824573157528402505294726325340645258227376841820831486624779092211495477634151878558361298549298052552701248819083645477279891920822775877605189760279135949726149907012476131534182290656783208272260689851275313795923145026311291732683769864878641702950294112425449973791290948073927741788612818311500969082267835426191722166664620527245346166125569840566692961491339394563433398505468469037803320078450044988373005067947920941448487271496853252844604576979768647077334010543919735728051810687882661230780741610422616144607053799700352613831481882541985328551053485839341702626368662238484466872016794786586397480506506217479280286281321372816403835999468454223711458337730167604375209461731131299603619357324251425378629455524963819620448977722076961075791496653773432759054606440822775749315214595888029818368424323539004896886319331729827853089383224359494463137504564644682981935096836890320570447102671506059007151511915841292516111052469200737738261130215411259019708827137951289881305603992695341036687047436269458816040702446840328585248354598955992516746643505866901899961117334178618915402438614954189540426568196520963167637389981805363415452157242227319934000202374629870815604756390733572910635523362897656099783054059161131036108036257039012602096089426315968377748184575456819665610653310523454365827623023393641078938975342753334388568353801957300805376080973429969818420783122898095607722637425881196523844551095095450146472913233677587353036115278584246560365247283874890625621448287600167461931997354957335672660259334367992921525820636542778536014612256819280643201901697776954971876105033741445837392392698510628059627683322107492186443828411521813448857773859909182166852285450108843327130414245214743594182935396682664498529268249519427694904161895523617302421600667605102953800181621540789178857882089889995941017988635835060580649836747679509620134950543595616170133903194752407083336962365437947289858921828922622564257483241325824675563964845158394664958937546819498317809261655485490406467453507843784034385640274406169368307446964869274093722697614866723640279055626846444080569222788352125531884425743183511785767622587629940803131393597199594966040011436604838077133759331819698447125208570699702626242276054838756297722794742138850150135795885524843988232815475361778329871947457749445974822653942070715538405148588257318797885592365008686771744160928983582665379770789897275789974413178766140116122722556162048579555149446598153009479711851160068604009254627733120077108146326451284324778865237219168407878631640246238202256449705025774395614045645503569861584123532323711872077707167453290133637471092364592923701687271534443831512522566443005244020333508503856087875110951870973917745174862688269104916816101404570617316823725366883630784211049187831932104246537942170373142036218860108316077426752674540034464884643610321433201376894139280846200269049241520430155679839551432765014288104563967959277294710128193298211256899245656033774086100510228785539464537452106896794566113549428394126848826345552115034487950188478691634225174165097360261564363800682230222611254671134845149208428905633444522538695912976247741497270947479546817500496445231197163583434205813056622572620804864804447093892612273729229150706911064426721540599142993405424893947280920997911902384212116086212358644701702832726670841183917582341660968109980700823188350116087517029912758750034380242787521277126813003524054849048577639897687715549110274342008479497588513358463905004275116399596019386468638680933961840035675050139781604892683085755832389994668066880175413170535795366632993833312809601809070274023072184748985159791008265902562395109571746299387959854726095260585849723144879314820119476231615199460004359863371298633381496996431835603467758917464141256724845493097519982617732413900084714487023399660774499249203398737835490062171124910501652071200143310035458533867085100421446020764661758769639619134650694066544737000535487495107034471816621107224325004731125997978793803259202237956568942713887316819512354523337344598586625468855249468904285934155380490395416440405500323791823269418766315109298309383471300609518632799882763151115677800524883931861281044493128484984710209253996887160977510965432172593264236848056537734877338669615645644075295767313176428323543354584983377643013068727371337785384774816483459057587775923108687529690497533623268161269508917417990052170056221276727189184665059931589300371595268060879036854357182509861228304967151960200793020940448157048213639813933495090452452725404691304430102785082847576532837472082512405608468307921872693652847629884179534079646425526158870300547277288688209125648774743555712473942857780750247568474271471787953528751192253734310335943327397466030006658522373570541760540787829994870023963819012236112088572162035386602917986486260272397040745035051665289733414527743533958005851026642533124278754440792910743324186559837164142596082017331079721031545650853862629297441425369227873857897076508890776088495667214022257761832378440156612141533082430206904433795702202631109418229386940773774389810211096636136788669664847181471380800538776648439675037251272906498744083832701542475055067322055886765301208531669587453656457907053732258043824856653175771220510259731518994015704280103904648988845969585750920011399412450739809167110324642993018553152896027683725311638645821041789386694938504450001943171304728663965017834416075325620960317096283156183201298224728481104224060859245823937445890587155319302789041014093553528869656686227906489619589320076489771836293718990202407470268674382282628111265368627058641823757303080956619342638746851491495993391780885455544694932607829462126630924032963559157642875134783319240431407045942339591708708530339816235340607750338107463361724307823870763727465916211042306981947330439947857620924704500469513844861772123571035481558830623639723878480622388567452696638959034566143956486146951995370232694933985320952239030193284622919239282334445024859515879994973184538606132985022815973446177098467785328284465260141264364910159102746465516643898619475487675369561139283792836474639407728737747519085505636353966811575845688916512992458125643134678017451076985284829998083435729620757921911646972279866290314238401037712218965947422387691465925165340117554837188433351560785122434258515637974897459721958566633055666127521689922277912582948798090886429911824790113142510314439153414811078204865049227937886364148169115821940606785975631615682129592240326038022344198702099952919904088345838808234509649598210030694730438010026340286056711305902876814803133969943744449781171474170818237650961396066113661764083469989275062980732467278868220337746894780477944142904897634638104428880621812275196522101144755447151123056729725874605729155009684842378624774261754437832145988054481407514205091994080257007968093339310363753315244712334147318633350057573763289428070614143320731897922427381112015200689135157592858220004385091804554831956479738126343071381944008361827715420422815869443572298694849393981104220054929230598460216827305311315891486478335735064498369057638518059920295731911686132240753819388343552188188061827536741256074041880419800573577492007600761821299455203189991130472784515152575263205749490238647675986838897677624610854758462593393905666953012852900213734005878042214828544937819857161147181092347432561743064855505758158786905709771748880937976462350319166491717072765335716857009327423020839214926859944354969247534623932269889369829675819354377761585801352249669509952382920383006173681316341592842993480367953571115306832132160470930764068272775769655946045680568091871862265284312591202548349680571759394135428872147384851109470088228656826907723394818276264065263715270684414721547578256166158327210667060733064941110110187101831245675020978547667810670262460563603685030936299176378207850703069916720629622151366169583119378584840371379102428802703080265254499298194435431697444164510512483533101310389140077740193057037468403374595129932885182575744317314865169246868616982114752801769150846743420035779691346792493522118228525392555314874953037566251868778601922237380780548438531741005038282542807670775825571887835328897513027017993152631932159267906437562374197780657420399484279227816041201586756576639091975288136233286034870513366908989024383521029363128710508553639335978936634577096685643527960315644328706728946530362508357426134366773670270438150320184649158191859751075238927290469745828668572668914910282555800131772325400792527220477790235724339289657629520167555817042571165407725633842014822603736702222025682828441046573741832978341502816208460178907277417466424071263374684653121420394971270320532662505899139860247061253789050034906365495507853297338376115109460127301426570468143203090324346310460087315428481701500172903471678638479241499129745442650678319201984206635058106436462450701106446847932743853608738804720577936116942746436256581144928823884689348977859129925487739272678447169671966746842722105641985221088232702036260384053388965570933593278534427002903634230884391792486346453693430741849099308498025637866929071445642431624595650018665597756006770342471537156004784306142223670607349809821394633910422597246308825442432680817272956104190688462181086264266745397014649326948937329017358599518939964902261965602328552778483258039924258986715818298364386291703606862170934577714549462810765176295955518947368959280691643529718077428339868253663602470541208561173805150635749336726895078009177342933595300815436870338199312059280357549462247173995408139286366364680338055842171447279455463167946898375559701075222528642030511960710281294259344456398451377906193106421886930880359840367697598645955011336225944321223921863125155366314897413722588024632964111008556433572978146284801505631857051394982132064001538727849918275488003902704930471078274489134586998495592499773280919150778599908054652932764246377719836721009656740181787495589041418122865378031565055836680648328064861675660649495734349367395322404854089316911972481445424357515149723705478099001947875112198218197943195371607398397354270370325867579688245314082909373612854053995219400781932238572210765650936708940158413106364965293018945447775892358229505861377583030953922622435383613539580208220660428844234365757716187749372816902734807461373108513319321162591625590196404108643529211306417164070466306606046937969700487606060858129741819372169245533924648866613212818437970256179678611983929299237206545715718700198372832603633352594422099724329262761699166202967073985983888141306137892138720794364196449069367363160004206765951943610851016247093172889016870190744550983624989189940983768662005238863918778797129880131586081914874204036288864016459757625602673460271539640047038231668740766426087789710510893010808878980347515418758150389337169667079652438468340882003861302250756671801917910571671887061541271564486438738043725602259200601768897227095144701489483646908923198747481221420807600477408958686837236850036013580771992993117285510098666298840429655788857375653173327903881740084955408863464866296337622506894515135260089572278942616030234033846241162538839955088962464052770874951568696950457956956821279038723191994099725958152125991792796928576044067325101593647670824332368146787127916569672439108063191916069715709417237325079234097336925181938800119640963670405869337781641254084691298004051030308818607805788895039805265469149734667518346055874341449432205041159154176206317850595080114703660519115626693581700772051691376760155277522832695209619626566768212342532497881959042958290350693155496558799562925973806124521730717928703839755031950666021787251864457664095040036686876157632764812790377612778903233079700932407216036587399742291275004220430530289911683048929027806675146328826931871472994956655278020605075211393348869134379865858567752956689878287400498773202991884043679414905399863073719684759308713593106574637858150109414529901232293259021572044567547251126207864932833182204142509629285676504404898453756238055787729935450863533888985565844632786638668059885297951521201585762598498154808744879673363491399599841435701198131514496830698832540928517423143078619436666244461842612023219391070310978952043458808997032254440957664597041272720491015283111349923847727512063351716720226956594948814764115285680743945324479761539826007521447906940312476394799098849502873140725460813165437833664029476047673281519285098315073973787264431462542803567441150829034011598881355082324184627352270081048564867030010114376702213265588909692634926022532547480024298237062591650071996285756260485634983201824137484334671924883813942591986066383645082739308329977892779123199176434743983126927015562116751157248225738262020619973692938480428564794199255304716041931896663126294627772774748724851888551182903907875297061279027997406731508696507727681975647063695145826517582613496673199453717812295844749339055793046399464414629457207919856477238606502659007970603240066447844809649098705161109069558388589945561506008882707662487268684165550080110618544848294562433656212937385570330864704137867710197604548470994096125991146819620034008737942106794522906049075997887391172729669384296251210266992639566788356819916814066475317183946653863486328374743979886131470889147633786298986109672933351561951626231135573264055884723669736783174461129277119537045375313327390234090802771646515415797429798424751805808119827391956613089036387833354328001017740167744341920098596164584736082707661886743924646604083199442736525850529345701391345967610374344447301628601746679857597155817540350185599966363793362114207318999149879502245781430335509929957150788611090996543798601750224250760017997043707200372701560964107449553427092870300339552441189587712153292181507025615720087222245986477890823859500635409166834217464554424216172490800593278771270019834280943085982777136015793827605801990142585041994905707583447418342322864979884215408106348846504812031967061100701616639481904711681882107052973675508460280210340650090500368331788735817663348650715802136101566247063272737481067021707173385978041683379573987963316657134611574813580035949193174481418398152415844055739350804840043090166815387956650957779241998504165303521489866867609455972988560859436559762066410020898439693678528993434262896998610839952480184002149776724781289810003247917306716051049628834050400782147936887209305272174080098426403181282188061254947365531709424972901685350686344200766568657667131691008209775986226858993340909769046450552436768613042605056679785662706454871349551876579419438288541674726403588392093470287826764736019786825676763018358475002973430269591192974292183614038198672075385501356414653312408035928531465257034443137433565292659777404384904736330238468867499044511301831518566683286890957722305300380523956779214450833682400960793985787941579083182934623267685701371075880364205415849062375299302728516510292665486353021248205971318744971705712038575997555392494704565818645374495592486301965076143366957081297467851001882288539121616664289549733060305070741387955809660348898661357025033916970571904707906666635014734765624307734416799944574765409164272576051614554819310641147178573065362586219987145755414648536631847993598235872273216166454998768597964528981213816512577009940063719941047157088770893200488785409065529457329771026829432386904774950054825133869860725398713596908976575151931903107574029973857407674459133116145440577042515453598002655968803406133657311267409212233356146960255805073138402575906065030269038708767686792049140883077290835229854949782782375550554921810306466874162273916475567554504850120890268996096446523796150162149677077303652044523799201801624660502580169176196314580383622563316913256200524357949330192828156112525016942399474090317669263257566496204621177936383150767873293051104164568562994186939531340526539270488822385776637057764869286835026506598849297858043847254815549253769495059864261285183087292051260886459419558544751986509873597195246614758844328749611937348037203999308545110495831929652463382466011474559757295142461062646014886219172234780478000325256794381535262818286493306383013009138068534088499014399843442973225456601436613819761396678752172877522192162690040803073636669325622754058553155813448334026761243017457494421246908009637636805144914232747436676837691323862997612797044235462555950473507508318104371890571538475072219840534766316678109166981016271787140216960732942748532988928835901142196239808878698346588745387000420211514760655522778039245865839627993474318993643004562628504178637552576680544401559018993731460013713198597495443073804905490211349773805314917693849883083261884923523542644129071386152052251693735346785216040777283722866721163008254692902718723505991062269542582065100489905566331079219885645156648949034299663374373317072765437467849292844455898340100223414506252752376950663478214776862482296007495299113024589713572529229647027964049674503587082329577827512846016912625380196011965486499844331301717820272380199407422214642909052625904673320305721707644892540775129361948767045500591213012828328816834961409868223279875483333396332661617992978677645773345561848795182396270587173645566533891184915894392726686725385451460712330833564287416695532809268481181008809506774013619636902044829999154720871400188829507374767488109391538407804101957472595596485647602736126418811532853511768082212323808936013268449559648999225549978860944880389397870845520585182078928456300972809754197790748491309136074314485706415874993036429149508776856929325387883915265353903559681830187866964659570175199036051781321857946610296313258213857506224927108239723252505471555884249552845865006860400822173954971573431124876700873172592588577419526475876063322977608866638638978041822783125166793302648804908955577333690723903526465557865542819042347135824353210467936235939986870694081861644048399845699695733169149371701308791581584336086251342282343065773140863551318225579669186793748166429481642790375824623361648202792716176032368691014722484716710324071678034323920063005733508055006748774506680282155707497887876651464338175352708682688922075966557949753912753517580514010961207883658237600947688679132777199956650149640407238426936287729996218374024323530805883054851507165017522435388993548074274888154426762872367718519877778018802282749502125617604861557942023336005394857463567976589531413782922644088753268341040345043922717956655204152954782758681761844024787363131036608499697449115999050943185819806414190745351935728454652002668792650503792178044712648690773146412123108470464543625139434121632076737824944783498385082500130318439276227838054896738836825459201021033233731579176791910360518458530059934462333258303019724073423100510229738388643977991532667868221232292553964283489907236998845784042953866221000705240688050960591537941628432054794751324224175665066742394861960094219371871621536302675063219364263199646465278519771500182446101145218415508858256740613132425609457415634026367444460435287173202921529488803772494715948876534446891506948360971921851510184621974331510203097245732741081262293820038661552999769366842823944271064517427774765362675369703725606661513838269776867738657055178962983288541843634517258164235514570290601465828980730688332128705591996116627469522604916019934684655627623374587913746631396728838761209173183899798309108021304742789569434429920810977103121789936790951184145752871278550516432326968088533968603113159033416289286262274820926641943793945244616952497599210220190033290077311267147190001091396928858382864803698492051243787774516227758110752670356359151068467738917979301215245615242409479064528876150998675973904708554315909926289808838847595125472879597491714624506067708146888674285880866852945436425929876100784210155244382343215496604970921068447073261177668127450836412275791145790533497576302192131422737277242829744123412696107075030023572045550343549901940178843732545648390826102581628740578203268577478824430597271323919581234631941766076398448268985007620388311685192002302013375748916998177717358710656080382841984577184591651867761676398301790159299993010060808353211321956013204852672996047974368045794030256326298418919941582773787487991439421543299663165051540691425608864137772280873443938362516593293511916081362233780825037060768614387517441164184747801746256844749272651002031625864683002910584913638381053487580726700315237007665888026639418757461085972063161343931215386294556417896999732083456697498597969312804013173347207917110166187107444310739920260850901785686124511280086897484583741906871251397736945717725552093808861151439679604063363706024906379991398257223881969289417932297922109504180273403830695028675627996566592414247565773274741383159308602450830879886953968911359853536768828581021151061848663001493749899481907057446727451597332792884630334726542675062524701608589079992401470136591968506976393577798363576304156273811992311856663683940407169904417254573766002916878994696327786904441182495300597131198353148593970875591009970343893261755835309431929264827284219492258163545667742606860992367772078391620527949220439636662797392100621925646094863052547929317236401919791811190442475518794726525915460099105050594262134885747883856031081671230675589902620268242504469241953792315815519207429164391771372015199956994129719671073758116512395577407242115890889110440659119943231964595410250000795936003804853634370544063748837736619443673954041166469235533238422705747596145572577040004378686203703021845024673279346446561063462326387672263772540427025515601657421812429599995372537297251919150718769780032239791654394431134161225024609333931348651846071977301049776577802751389143867459695997117811093127672562344093201446009001494027405643399833660605079559134562922270521024262623939740532711379687918872373149168346630274852550294116686845919136370109729615643655244753465266090359094197674029947444829293798084349194858375225619707829659260220238011652652805827060540334053744623316917762458116559700026070428503987906355100221985015038277375097437996634711084999245325818555977584577234887605903210446275909045868818352040657706886982227005758060521746558178637629216028408648997294182241961793837353584045681277631459307026079389425396345854996982747085948907787687600187813018164996559403021145662764295682132586271104612755111560501960204477425298915802261868278460943274093549988287123935577463470776125278890255912425777253579392881733010499247468981189702092288394568754405440938768500535526620166786138233651267418960809319996158826893806887100084869947470715569702512315197313627415941832511263158226978725009481238200437508863980454868739544223534733986280295181240120577233491815323958419795630725844043679412255570747510678978319382402015135776076932669759103939257498870138246882811219298499125887100075182043331488950960840386338218433257108864103010501102606977162619024690772952728008457762341314416734457371533119087246701595524420597415230022489797685827340864045221545640407416841221267642133810780965372386215773904698412179108880131092938715342099158213609553295641499542840817525334719429478016383434352203534315922961307413491844146908055177289190848411568464731389609290290825541857535358671127222950618841091446603931981820575506321597033484132227793059439250324577780361081197533581935181402955062345401810665473706808673289744624852403602905566344192822167453469221550766131638332889482969276011137814750896808315908955607647661384970089801883831261392920261364798776786416912314606426452705789670721565094768442357604575276176517587906960319268889607735717395412443083279540477968495210162573545684526255010470512907486502226994434327864615636958714227670724305699090105459895916831257254687882168117293172419179691058730637987157323769702099846347695147056222193516163262947840496158377683597456897086749913370509769232739865546784255280100500077339013543195099171298275694563979597170292861293780665466304338821479389643564531164523776867522190559678653156809137204078100593224314143380846106151471602540753339841649704499648028469113304721463489184437583084494573947503616276544087193814895075708083206063009911281402260996124962845153946773947657565515610370006693537106327584459371839938130068620746318260977827487511437668276776415969064826494973559560269890569391002846792556559793283793337568671965134070427921670292861852549628924445607891252649706695541924086289434060192320682359274896895294716088494818827985784625562921687802861933297283397696573217178161733712005844539837960853164907559274039861579276469395273493713905833896867199747589059417257442146713384466414200120227943090289367482178130318449296661149822968904019038077048240474658329020736172229276997433106536707407303464806586236110515059352461041881712366225163083008434295678545630502818249628152034562917231839109377857802024346274589375293949264185413211950316456573270751933372936110810538765901770453572118114995436397449251812744008266178017761166558491425387774309049247053767913434017012005731235406275092130838896191495291359259372883234399693197852392124030744319844743861163492151698418994930878242285539124059957738380223078487455417235488655118625434561881410544701779964827587390901452735681579760185612523276308068070934348691486617992469921743849018290648946811258448370242167615353434392604574741109130027473692616256367548566912075558482530715418395901165324197878032742506776289380148934894080740694747906269807008669455858523838489848602721091592344990561300821682324026562647751577620837870934919793837772806176761230965915461451457065472103906668959105152131442207348880443022217710590292790012965848362390225296302800329362937207097918993525282090792480272547222710874731704282096448488733774493764713233781206193518544277017424730728979098585331830818362169159424077753113663274510961735758522791787745611394953111830705115816545475260358025879530450659970159978183188134494355812506660016624121858776341450068741148723503249550326005789876048665459476704030857622382409705760749253153114720731773385424339128543670709867414495318666516802987249949861322395188801633867184752738417258976151896182054612632298163281847628473855480410082964537618645702461908111182664954717196561768819271224310764270200886980911066549823451594712046745155590126666992047470855577386318383152438001521280560750655788743113824188282280182715943029725912677082111064592713424581311668640822777841734289818523722599694292763510352852688429249645182954468181544909707466422023729645709163703658999399740501922754049620576635400259243540402551572542962814451163382781640620147004857101788397331943697903184388343641789310368735628083332399988496046351740292504947095163843064069307085109836139906275218289508804894893847588457792707274466375410737113036138151756087307563924968471392323616957965597376090232770172451606536510710841993561034438743537931106123511137678394048346288286435038771444973080592926340496580731682444391038310502058973881953030510007235176773409088980385591295937106388072820016787099082588447561790086935406039424287298026949790518561013434132161852879221731969572364221172906377642913993940115888285716366697566738029265598126885301679159003801180058972358251267520078037321112252003855645794941350735591187776211639078178799889380350948425467088584067529282638397318875329125173365797541056031730839831898899593244297086127904418069648200201844047708737450933076276320153644350548071181868612059603108044168438444290081523735084826884066810845458454057974310076981209191650142008199481590579244596130525163260446561347456031663255623782564595902775795016593223466677959707772129785129266695835381693754708782654740631463246123518137250288280797683307850797288799965112880491865323877144201899063449018673092869490982227777843380227545321785190891852434074135905490784523017509615011965313567265055778911123708609574475486253362523990954544286057468975626695345271260571905163289382085492696406492500369870715015967158237871146837127989006079608809074355177249996728685192791236602247340021836341748609040701702896556006326591124661621433632416887700637843032630890517168395124810928971986526490851594450026058932033467477339693145599949621651254983331814480315123805499893889527392495638865911473295978632210089739491071280078862583839316958454094926904301417511291972043919810115556904110476750335981204155857743236380413079154083424290588263281014135895958908975935537216001012794963429446650970134206060578003731911357522360841924165904013543072388615159923383523612406454680034261317710828287576198391026000988261780692614345858790137638317391685804988861382147273932879823773044700683386137636946984852221387522988502924521105500332817199883698674948706664501583745447087571727491309325655923769854762260820225308983960645203210035470818012722991898022690038860850244225339545793511596302623095879542265091917827818437041578904866149180397945038765834990706321426975099729018718932748696243308218850216756646083761839705274460695808946038243886483089254428740891338758559131564709420372570017242697872231276142383365584535696677851196077519389683969958132096905519104198467185040415226764367434811217274941228100999182080055822982516908146955640656813378716670799064702573003157567688463133380581739693574660452646964469849344615035936141951980740071617048658693412488936645739475529200152466232089270962007919057100940612936654306698932700054900352264918965485521777647774763964345409159013304967365108873203071754200229042907259832404568595082076304051617043755792295322890085995258331673491699495823916862715203897317062192457327453398073292404725789908754798550203153208955366635135859786766783277748623517609553068786818280970759723008696452252588663540845933094662047886949760085178193394227231588972212252433461020538466663370362484725538960356383235559004919689977228570107047722113199264942689812936121387081619537263030004789377201689548443193776149139785500232649775216967706528123822818258286452753138669472463261320918089034294039598290405645941950921909301944496180231497174790170984514093569009644622146444361605677562956089841913751782876643690799496948195154920481118906424871374100539031911896883232883703097283950642124545632534112490873774244093592228533432691734919405064960765572745445603556822018223166930892174686053072582796521419700583119119424557800169573714231014610767671771721902664538363980021932628086110907517670909773411862243321524209011043103514341638792612670160747506529881164924623661685941326617815150756479441939460928526046615031233574086338779786084437249406063903737350784001582390216085763882565119060031683081947840760075086363674048921995570207380595873130263411401109614587864122219154125860470849619628845668469294610874078145905904328679006358497705916673903967302398299110183007250349301703003796057860085069339599208601020977950625827066187490420370070480938154513980421681294707335704482279115535342217243677637352137139530597540775342791126069463095092382564836164888745739698899496555847327121211947118757765389141802396121176282610346397076877001509692660396121343377987056487671753321265278718387124419565339606840949397872126256971382074698862792761052496575053246552378101748402827833386930356083781674282767913433299165548663358300171092438042927124228653524192927877082995887231787253024403830163275229015923573641186207259611781568377324986001286871842825700115260612815655192842369660958586559690313070437387808925438093184687781920926253469146278382482191723589391280476995496740760425400870271686327703829871017077549478860862573138601334200999504590418337775583400410340225554315797600671805492653962305132441033396947886022048981325317826910453486525082702517323780930497738514173226006447615895680969890142424285772460440698554633912215029730155454391992338284900439635491277084787945975503775969339342223661719664399437736281830938941330994924973109687085549980465553798561336192282464680946725059952549164764905885211157910881190801721336129745663889396401288492839442567641463023558422136144509968089217508493335438124611706270055256315892896787111128827143036863013231930555067035266865822125745354434464450080235085608838876492230601369624330440082811483623290009118363187007999681363937638161175078053932506376408558859268100020010822030637018694714733473527317614381983287335927098301039649114525632914171068692605718904931454260911075988645857056526095669682821687248075818433794068895040696724080273472744867108075454488645682828207803526977181321954261713769634195851957202141046590805454465946366980036326765277853317337853988036942341606837950786592205106982789383727522934048131100826726283654629375156455763619591534395493522511906380063289107970188113077893451375834190972986402710237869417026890222954098901550068526226696672907290428245112637663466148579567839135401794631344129020817443832793679545641460337289043724589593761459330204359450005925656349646092237459314868368014071796038634368668944207262490776310724519828970318369198480448894131598795793346211931054091429130087906144635237672512267073688358958709060858859145147917021650953961989323287599352013211555985768059040785072624731626536475513015109269362865614648456672854911561631726494864182039687014775156400867041624024888716319944481795210333767255927528519914801277911999800955527253042844221999603428360744732175686463632874375996820597962569558973119792436170257104490910237896385882485302135293224468617055939207854802042174315623363336388013371377318924918491593255300637490220143984070817660065753333291195305286303860851025703659422028675386964435685941494766742959657866604499710740396903900751324146579022258219971594426155270781695711431148852396521076336471950815165977131974134486061283047754913540459907188623951010232055042710443609459634154694532716336488649648178773465385005766166284656122522901625898947314216446640743525129005685614924101731742153087029742347180055951495401127262595519261109235380036201970267570675116846276033142326696069379775872826598601912697714072342610656143342560745826570805381251861131925195299280279439284098922339495072286781560703595128160072685902601207242465398838368810151112296979314700111239818560732244467205857355768099003910004824390165791288270711029782453678893822021651551743043788467356133099144148580114077105315592758954756513844887337797512729925175198775053897553683485120843242380157015508572425478970342751853957872131708467365385348265301085052651304722672729794999454501769933839156035928611604561011301600435578953264108844012827445588882505250351037650255312916865660214773501601899256414204306651410895730906202590806209236630384605243577553417651253431458138557464391469875626765927356839100757635991522018522688231197327639202060304387924809049845191251183033016078108868567376950277039799358960289306497744808095545511520737038714336013593116278998278085696184699893236922220642116093946104809906902019524002245004997152786407969036939147837800845665603872720115401525513103938085406980102211969747575721839291264718704284806390761174840524475384395211692528322948920578112394270485557531523962015014020026315110019246935783044000829537274521512909668173697181206733533690917450301936685172329070366326670452453794222117131617663129179285958942552033198096474831336872846608333217076708016422978019433308058735784456518333734490398819110446376480259196607200963814981350696823404033344501032331362104372549152327652862393816915145298605475162489615219417532893042507880901856491553364395821800149519649726229786006340186841396047566705915441776138112628284722644378270372567337546771633591752436892341862010967346412640617331523086782959083624614338433571165410137363824340135600359131769037008181117055951861589319965083460170617597274019295978669509643787963673592340223685865305754785774625528392532466488351440538482831314322851857264358486005305791251372954791861696515661746416724056244164794900261608489448318197608285466045237559575062164089202335834099464222308704668797687735073443667630262583079044923860058558085657527583555037590465190887190677823265256416353628258869151261416344460310669773352563147590119458517158424108386164750396486014399128714014024415886296190251189401319055553850535801302664951844367477478020688574931097985665813049565836795343899108725195826179392319775333567043593287886799989144538904385950262488387059510220076677487916390592461855710470159466585680542930531183830209593264956836083523045367925710520566233731897105861279749912791822556733110475390587067387865593978362716817216931350148008125857414004051721888880503015987397822696848772466476871821104984430262669154320678718479483975257621258846946707499081820032606229888550868056845446138438893901307947790127803207843101691273937305599756142365732184876303141902914213192368400210344733710813643281845882748784812510663405306448753139756605927497876327159772868068173742657964440375504806833499926401619683574167333437230065127417275123897980066181649948652745680693274797979132098731393787194025022493212601550496918189383853485084570864412842382166742087545951890125040467171573620621734993370603159733663656443726613644534127019617741246939879691096809881843555464433855334302821363754941928609217668068205147395851630677209034101917787599484504357593028216475251516752966295329271203893940590406781203579955125646298038555797429910557500192224720357054410698975983174040876803083287894362726403162973223831532825716520848511767568903866036603612033505668105251090607979713391561238030440900536532370113149630368331692115139969364210628851687690034294315717731525257567933341819142582669917332291081225713453903729269410473135610587367308436489173506031741581089486257675975657829436868268011270720989363170892238506686162076323728552248339600492809364271242253550734716700979404193757272162946586402860410260863329061085506519252956528826913879991802982497481226783997606365856466395124838251554202760729719292091280802083692157759770277415321904280313601882659913331075966432271930205218490196019939470780232281542185464980958569664441962666202033365817052881108363542980134827896280128390442437022107083678131480642923918348699787967736333411606975693110174764883558533562041073551816726996493813346450035332800352491469252861098535782625700568423574702762271138886271220155725833201976254318294658056013685838820115646372499634753517652582689412756332363521299563455119630291684842476638834145086360605514778328269992769302150382054697338654101547118873293606678072774540927775005196434484299382869213774905273496552050075601114686489945461911951474062844588653590713348551403269346722785245445103289352327568678312029910971980521260376513078932601022960702083720141159184521697425108527669317313992283584094754910587301665596231765027161634244618171439014548990441323199378141329234674678799050710633284205882433731569962367209486760118544427336872226297362097947801705165751176341403801987691536843570471221739479321479288772351589910484979744248205067871168441108110299989381693187877669047483328943720405711894417257097197695862912670100569183766235856233095841745942381001964873547802105205018655377392560890424839845847127437420292001229783814678438848362744711199534526698215383480451306097189188854008788099187105090771216716963023890168433041753474525978418920282776658867017903691962421484562638644967910501955127475921480237182205977759991627373562440394305698496827676495987249258009826752265607680830049656399961185974732782498709640752267305959063014450029282107593021297138963641938314620673136550160412064463342907224898433110383109011030559812653524369888276114224126026307374091131717126591804126465826121413964928095658515161496545189674283858955848540673389038765042480591169441662538366793432991619675595092752516773441547666638529066992604935986856444501145944467150636134741092450929586719554815287219696336727283297580706253816870246864290517136512689805984643875520090709753291227108986968552561042182605530771668585869504792909345289198122336740083259246073762156080163692344581962527645328203123787747529437711901017918803630956264209982367075334369309801502765318591563110953730391914460868508750997043489230795403025302648455719463210955908982669614815274825309944633033315864775729287785726591347196548968578725935178332327270084548572477995949539622608440287750532139518071291922895171460768182153408602129155170553330106460506378288341130733883740129496797967171405714029528914363851211587978819641520314888601945405314150030090671948139282960296207664073669968862126826935242421592337397241681363185588660794245653038562573526503789929474602881169251083464017841705655766519941038353105011921529932407692977320794185947592249760971729113896271609418907847400460620410429156771035259188127601622332079070317708949748999375746001842990325404514542877723860584143582263913601356801439733729661623339805352788553417486374423760284415963861773782070795918446227619091922361150073107291987054181978847186757583735098998959351614695086502913009787890112489010535660237300158945401357066878812319048113665632391257186363586073808476791263640253796580891684695927554711269129451522401909370070047068807759000712870835703343049631818589036023482849611325561955376403233710153441658325122033028962989866900723464285104898657473606655282659532161705699222436368264594905656539385835538395148470691496208573292117247168558754412036866810281643384611981785928207880972632175226129542310352965108595224328246760956987755767465313534892671782637410131545989819999684560581337551758056157974106383202042271776954206252348661457599722128032190894998303505041153759208611176565868583584964346254312741593377390463012214334224520524015751097837861831591685965406825831233030719383870427785731433672484775317522209621309340517120259731271057715620998900144991582292203111057592469950531463605133869817446871772655480203729702053823158068018480753540765495824757799581649488090572804534283131414130602415952196201141752252701080643676822977539119105759056655803206122815994961081460593179810492262941638534463591954910145663736109950610838927980262331398590452016233974195896445955549060520200531459853801860160775007013259033417608632798370050923924287147972634591850379916540176252816790318873011923027235585147147746064548183891302102978354298902187783497234269688517473745753354209824174574453864551853433541192644984244352339220359905078249720459838493626872973006027359276060304238644850535545862536925717345626440465701182039610622245231173487919029180920129315813171036344580408087786965285549819632183813329987008181275148417209094039166360689157339313768524211356854036914087166378230414902790350134378724537097077559905820375610892111082631281771189907647247033035941003461702765162246988936756748133200876084234790437723698907647147993119458110404398983341088702493447877307429523717238758471486474428373200426913887795458525439040980539601035756164052235531081652730801844852569940958953676854210760238895240537048279079610773573546168780184022074466746834896919387013972056949765073242640093075506219488086772946106546182550906977239293941707411203327340834959187558215290308940694360660742316561524739859061001666512338742730082219454046118163258029452835362229687599909798702745856308806303112991971327537153909375629464848349570719926212730628170721964956237806564510014734995137289698133369409931601609305634117961169597087905626914788881053931381443485904169058100311168585503816473732316282746452246030567401989072320249351468472781301508171357025507302187959142785264358768775197365907392089325934794196847950322094298270512730837011229635170443661332406147728694311278468360637551739083178458858540784862166669236198724099130262584767710286936514906017991456516404705969020824311712634388191760901176816196919698962761315747218116742808302803242371189171853431234567530996993315735778743385500756077657359056850576536141968807233694254605506144705478602939871842564106565055221254692496752789157683223110507524028530034192082654227349708354807462122379919071081835699784891483959599313465873843522395222639818487527049804447129826386787944178898347846278320284385627373346588585334076066758443335100615463415915512733840382548252133942062752518633981082624862396222727440142165737397138412051696378462974533582097391451905746353646101115724193184927670821573878588044029030034221144411627161466474264897571934509505195880512202632170976122838343200283938777576499192774375946312401411688457099119207642287791883378241767408073762236980805412576931083114275290174645509268495024112143900437279294008984911280715060772490836405262761649931122967556448901067203647336794095073543519260479195931989756020895799273304188690036083122386623084946307021374647376984162198929909495305282468963701398306468736159409736816300493756477295140764445320040796658277018445183871315329964802616692445631778795906496615067891091920874203717194144994611425236867636499782311739733712133782613120812961776796888140852430985794209173238126401536860939403934632537212275931280646072819804264430104535311940627686980330349267223656212289617265894781487280826493870434303216692563291805539104226575975441825693094615941382343986997753569933224883165799115042076525033705020197732906438343993450369981039088633019891515135154030990903771748666559052136168939913834478618472456981667209789216536736648914906783942866462330689919673138884075105239412774633168663765269442957532392666815982530006219365646755932898436155182155432537442183534873459227536670856417193887104945390628798129760545532778755999506810031592581858249765047507573582309481700472692994129685863116313584157471652963438497809887716338629250054114326757078572957314095485101895131969641311422480085224167375732902000765846743936482205135734731604584659976102529870806607329971490107569578391412008122274046770429141096355424037821063212421238358868534922185852535628943856729967312270889539137590837604664299543471718121894743365584107503048484622965439843995378684717346916949848195252523573797272938924726298495026531484178381091099353089884445024934807434863409453014257841589494548731273015399567294585786274448424040006867796625460570078536286909535051530808072701489346476137681350460936490915454825106729090062173361865864879064766906360126663064488596044605011745837836971339207534645049848740844115838770702037565101033291981118745511766498964769656901383415924991980726642702267156739674904639787330907939821992810255315545856762002044216946589709096419250247536445788500972743157090031114863328032306832168360094318845501821891863389406333949195900382991109658891084508822067987040122399346961122384364634374605806837710149067596280607292258555420492576464786899073643595596538725917923736592948429421746859775413600075007497364560398054408399667441006232768870407817465740500213299351686683808558890338946665980619006066177509964888832108325663739894917589761879082488048841158744280290462357666612050046765434367728934235349373332809148363307418025496484797358180980488177278207071002117740841991135001279632741405173729254767737221614637251263224239280763318320318364768003418282310832351581226619051588003462162918393130374264224275162931339756847826428111259514739165995789269970694289339512631349450758668073692843061480401366287876720640135862901490247739356754060557328525117357557523860533675964756068463978376660093599173482729526577311532322099847339227642375601362288988636735236782715664718775942317073786668622245959982649072291194333368534274707621424674895933685448676399420660670988055985488504780543743662628007223900286272756375914407267019596619989571787159602117160524142008616332807621162201145197508376349698993624864973751227850567268537507310061657427946547465505606413353609223714049497763329592690857046488479506571854949045299155136381747831185749594161135801050554642614599995120070874992369819986082311446686115266502000938330876615866758162577711343158040787084534676732543927213273268451162734689496163173183716848040219368246148300489511383146811192393475856726200506010224237854059458859075228959889352216913840913768602055313083901668289868518112852649245918710726522648087092977111116766445281878501434425594124260623922109743541747195586584335777487503699543336759688050183939415165794985526809884341449018245682542588914055163043123314106696658967734509234906270898453935362881388628071706072736419117936294445452304303430814784859632148535736433318402516376001283573706499424292645485921592480931264417836336567637558249009756034489696262458814207893955538839582412567119822635917105274740034349035408751672986260474235250433585511764975514983025158345532558311516696873780263742136007274836401044365036432262530510073414313054556511339604047908697896544408148115299760652251961803982151227217593409772864639246072753805919254559483991511223368320683143553676736569624712167787084510152021841010712397849762512891114341365648996952484868531922997714230604100036080802701080071078119840779153955427340599448403769186775353383855670672607343509273454656864679789292629919210958310794204117591138811161878523651042909539694844956142794395496284996897353277430387759434400103260385525875522399655441133045100053756709002605769331470871771313405054572342102371860299835995507962074339604905907034392646137092506836015244501240155494159385337686645475330282769811086172162712999146870861082941485801681758300893734936214552641267110923164079809374274540839712666348209809827394117134660381306840712820247045082567171390806165551440067720722580536866434089481156270616295409947967147103099112978171651461704035079766447333501144343541956475726006280043288468667145967585030769517505572669115864873540185802351244220165777501743784279211758396198438449331025505027050205199048181594348019371273179800993420521049584122330081529306788729837497111955584175292606153864181595971157714428834508745696597663564660472025385599706755479148883994488543618025090987901780771790176087764638442110006530491330432376238948003555147345065117999079421981443212180159717436993781440059116406407084032192252740698662000554422101164442284405597227043849262096686554430201475481744616876249383112973500289747954839529147537132623217362138181403728041243370356344593277361306748258594484110524762877190813576571975619123848141043233443746582476909137531883982973107222833310643866494098265510978595135241413495624197089774673080818883864659523176893499591032398466953323276028810052273537106666424590877628731280884161196657300407142032574809831742807872872278053459061894152768527336722020704000515821399867858745395671034746163307307177594712959958339571542372229687530907637941210567777641292390596861844219046088451858166756430429320339623573172755996340468055030383602417016561285693087189238967684186147007252572394031347219142938477099211201846822327373009024267896634225164849418052482075030522019458237955963815242082612529283702181781953435194451641353571610476399156330513125778618319824829454923873684106392107879342215748801958105231604808865168490932301445556988176343910201657319577882792780177467831225627063658897363174695097428510840733954880867182005776179224393263348713165771263349571310573858890052812983121724049863296620406321748619170126747641483238233539217949326550034958084788873341658465737363455252807652685194214894416809064416355246386257367208169489407578064860200605722566395570285285624863163000849576322724605459732771775755571251226610034461218439854410068038984196361533098723326428073814010476390487271923260484579116560383529791051652122448067603504401177535527797868223441728083200262230665059346837605103594939912512455486832981999795599525102434967918465653218032213987170649564916596877646931316782292316038759453907066060630603492830531775328311357741944247638508391498102280710217949111308765017662835661430857070125492503841479676805025783257983099571649172805466063490745730095545552044533638101108682663296169074911289361660307076497687819134017147695231407868214068609422389735162038216059159510708904813803328964757622247706485675624929529376861674799933751547819812835675788304222989167209237948316617180188953383217174667619887686812095278481707739034024420360251639963516643526836136936858114082080777416358398586254201725407730380924347870387245771453733713063117953504795496730758022966365447488598093807180600016973689305133500868259768820809409722820785809879611234712002878744075542636605806271432181127360674287284576989078494148930886864100295526253367630496095367500572429900883881142563553897899006760676182097671156937885133718975016316604040794945841471303702460951557064445838731256730932492892629937895863149757321804532516296335137566367895587789774936711262060487708839644303568569994078753896590333381286610653741743534945374071276534778451299487180107257141790398376397009664180656569086655977002710954292713315519346693518710319946323407211606369459869336329781708722765009375153288248547801564069375564239274267712940616223636477068510835079273958449938446648938535357204756969467606808489297740541276700156974844821497277061670901354897330684537627923114902787880050990326463539456624926523988920616283946593956182407095185439838484246487194508150191339301986292752383995816768354053099287325629721126081322673147842243976981715129359617464765780917507917437742628087107041680873466174209277032096520665628975674137186678098220128823542548723709180940055813034694053000835736789398505432597523813146615615185866827761108514114386834098080610171110325359208792312303679120850538113508793270263260483257216156374249772683415994918932442453259840840142836878545666689429848931234654551259138281382619286770837757820902082114405746093626985687368783868672635175198117654898904440555017817122396770839336407943579630291196687756308697385863100706638329907581132942030812410107809817524445680461917512117928726170992710697013931206940432022570234331260236063174059273865599772244067196879732204937065106616127852669886275839926774586668248033547194848269793202080100466790547385868869237472369177513997667809475798281381511153134632754122037252027274340761563538901130945553608330107480439127919318060691444290561485692329070717476513685550122297504818681135422587858343312871291663854237706553904708141003114020905748887563813412545497238225137784961238583451853451272958572112857878222858580842396972075132907627136049104775784391749947779958379050556144650281016847961001702480917468166384707583443785742682601780765986474635791937638143379963151539121053694915999086658163823095555320824804851677107865154389467586537326412272273772959208242845914759350849128993375400587447321018520331706429692971015005218884247756945275018642277497609588250353399051285749107184380007551284434251764447729580356574897487890664256449604363630768813319590827438427083576506660700514595412327632045894907461170382772478113736901978410293610379435223011997498421549410769541185576413242543695521840053960322376903854538470759673416209472684746643387665636492431043209366938059056359690500100786382561828091728968351474280757526835207356199204116600420525436905526523684884543121388165218710527427194693897934822570440587042627355820273241789784316293439035371685827942834206388360884006798068179714838037814144823267186968987323790169854844600694088714548417740410309760979536933686549798335500031494883436171577499533201401609735307091133292995670003842937777730131987882882920112156392112255818060275620411759399323481894343986821009915522849943822979875697823740551219765141682378329222117475340598879064772180706920143616463422821879142470550786783125689473305773146283025087689768379302968727497327127441957068766643126476209350433304944199246428596740614648609701416125710245275550325005166342431105185663478704768549600942800506601972475708591691295135358290928402843252634805805369279245748452325296697867151031885499609461651967468667577884450581286829324621109009331925596702255494700059953267904883089308232904730296600062651970220626859551303615056594440598734554392567693146298276145984443001572865622175409541769684849641600833876980902955767637739759433928862050294728730378008613523855988549200139782228692962057483604938333690443908942244141504263415791951561493680429539629285507519469275194559241810708767204494115005919649715881387956197048744974607669829375086876883970936887824882268062340256546486650104464918810273621857236593552027061813376274011806641047506019942801414402937239359555894173493574236059161826995588118962943104629147440798537123895196668877163926574521733749983851119320361538261022845131270082548313501132662619680769591289326086926205472240451958443219710603796226712169939219677720916213721435799202446308047785144982089775786473668734337465795614644717082391508991102568089719243973275916935483913134875259486632604073133418924261066271916856091599673849206674939958974928494174479747839257601522457132132478470429313513121727292457876378476889330746749604694856301239374752692148628380670960281047760697520549227833054794242028113401714821407104970433584679109059461866802000784260382004269109183263492193727072060986704173640639058631847264241078834492225963831819052367111806014503765666642241374645445942671332710965096680410147711980675834870040375790415194312942613395372721059274724670036011262918334141502609492951380827913441988642375517377351995247689202798126314299434327035229550656912649990664575726222246424956106766555716767002924701008662574926310719609842300829617420833364404586397830313748495823183474251335634337681096500244577227306449636223103722739969948351364849158189024052819731361830751348638201440235738596565077167403461361955596280843170436736707624496652807112103819059487205772722260461280175047170163702312997703070461342508432951195907888723742366539264612762489385356369800078087994631396420665939503165153209129084523691936762966787659680828929681412185027414250269195818415747037880238270217388883431238177359133684438106159849188355550892343652664642748472425678828418002209549481516480394118990487802584921671699587117089443439764447258853253742140869117962591706966705303556083277708285590866887227551210076439325646756494621521931015541741896375225857529973467637695576178562317321822372365501678534776855138078136640136054985504023860276442501842040218090115744595230808396451243287208143616123910605336200873349311858189057486032526761221027884012994245502996840830752479597163878944155740956502559526664941053759994504617699071257187233116416387355138549022521042143651490946501728442622191040777733913998323135235021836305305578768818621539565339453069127160953032420753696408590716405765882190049536675591703588231076609542586009895596214004983035654848922031200554908008115585492015741404366423592642307323942595884898698290040446577175563640984055889089380418830014022929533790700863985843459432815380279377165296922101524935335650469929661017057403594172312706829297106589603023715161105487978507387209163532248010222896300693997039945022403665780844939566382221938393636316669272317310253517419350431410253804611853751197484796847379494469176224424340810724194724668263585161896135612574009447598587836300094529456474892938804098074363496455718546094433842488948878394534617624997536430610502631911777771617164744235969755224946442201814610529486425602976452621156033735950138646060361813675262858314302681002986132899321348249454158719942464562292534775743795891484332313387431369460630777247771889681448758662415206170751735776176313015500488020218071241021360956617803614551382504003161264451553723439611830286763216426791084715393578747953893485745336332676011293977609731208584103490131631243870796231742606657221170475326719653161317904664717307692803354409192502258913695554349686827543733866521909226666455310543894735549839254104640875269230962363714628790505277034918323196053181648238325311088147886299029788723977456747697762864920497551839054976727685393651036993860500461612584433973252440305732878552083682616074211719271744679791671326624812894221658994516056603830402108009564083772619656439795368507028768047450658997478448568747686947906334878252934901051243126948832812676702661070443610908793680837778335270610270731569972755248507675231211312599367197293926449398437425860059284091379417359963360172341402760043419062947782671008591889986171240421253955674344497438717816370898506577454348964786648714285669757676526410867401243882105706183610016617551042038093055184249530605712245184240550842480986197744150731754599688714651673678061818112079846675349573283521167010488473947049493156817542371875586338184609766149412285323126542965790606951024630909129147592650042210358686965064094958640670290682281941363054632204451430967048268342311372216887935781371138426463200649659400866767172919450902504710955616833953737926276265118653338424209890645031096911602664934862991025439674270416435321296902816325087466890499707280017464422457371221148862612351344133768858078795518122096621693302493466178009069396967196842808885694818122663856496857704295397029751968435186325506054276741345566542411254843152539664881849963862990326603512413754687551936243897233277586325900596735969959271676003370031132513289440905880133149552930449934981234499958348418446986038586771648520134631980168446441093567532651947666189102316366087513172220092864181160598037097098717193901524778316113561154535927238225527863704535789569042358749373876930042302999566698637580235411609624960008899062223729542737943031170216574106755414753220635251159449212011046678352904346530957494346185567427304447136688138875796632013662260852040211420980692523596314700704235490432867981380854980762480484296248650589456040074641415975620427834510807365973472250976907711661815354070841949413474456442168282027843192150873844601579750555117671214576503508365743032790153122830821924187993963870417135812537850700583840577785540235986424762665741418774751633322877263664216643812780615233599269485778935427695615536150359142166662372910815259880773387766047120178323650337150850524123778644628569006098012181214132946433793588121197028270375651080147932314955251018485235694787261343608274086875721704197012669732163829016922156522794600313742508068319266932492992482589297821457655337605869381178220382556055150625063518994848326631380584476164881252007006506977608156380120849883865963853877314362342074568980149865555774459690722491098407602773501579113444170098298187785797643916845163636291267858187202005648874763918153063589789383040017752144580247944038088741424170829609504029749471835424068630488792005831957669469164608328302204810183053413235706619602249396515455655346934722072004211997203412163398768891797447350739804790767183867241334529996504909858027452706350525990310072017594434470791330166354117795988643818312968725377838588819948479594200860339063142254295219443979037606092898254294488262300228096223155829842779476116709832420263267171553701697603836262384801151491190925153732459705612052684746196247013794860712913792523743995239425684068260741654403283283240552037378541215201099663627543077436769708790207973143530445408620100560064963294898877157218927070602128065297368090683535466619105118064884613337298375616343183418634856613479693802473924369747668174567639332147547250798078060001299833630708468977014923464722379112475916429153491467012240989068038518590517118628990986915375100864191728426923878215691222603924453762760480692825565625747672729010888338410824562657768637187578386797695571767197227062463374524874835805555626655879813736282574139905725618471363117176857026737088174075236068795989258231821385299167851218049941433850809133138141209777157873587768385235094046091016487862107403302760020030282141449135720620460122343297554822441187481322333269587988568103703136212563634478339806981051214804263691207031093403977057608888710420992800136367017621295744189320461088637351958682629888734549723069815889131826352123388191863227242092851848501282159901143894954534689443574656291975409454175176657957050582993623416842521953354262031144979099884354393798645312069860213162926753391619458741853542108562695185382445238674100925295696679954241200095833625723309265165496472480465301713749946933096306247295033137332416876749173495755383989688434542273694471058249440476672422709840895481256281962500669381684464252564612265850100850181134252691431317457223260115388334446911224150612706700427437630567394208855752577672802779678500221265071507017898507768853143663961897765316310803958169254356969884152331473981900745557873622669121543872843081915786299871502332800755230448922266323332778763590577571141315297701689841968957897750217508075553368016300704811844914516095953789952660444059305493420652297578897670470011098267441514222954856935730622053851622427924335484634685211629578064453872063753006219191745307169834744717071105570485051189318365427421987150365879811306842216681124790215825889551649694324478038788637014623218623316724323168346203005496372528460011832814086816914140601287522698296501709323542594848621585118617323464511879696656730659336154459844922372178456250932663493875647591432882162161091468395100882124280271771655105360659364209014888925372056515942771644640137577710698508024227792515898701141961843647788668516684828368295487174369945440902073508657435692880736841586455503374002260016942026742338604807685133257658967174231463756438006984793825583214948407668845758897268036999253408814812564581965245185212075323048749214675595785613378211069870089164606530422503106528299065201476541836797369689479340193081634985767221791657205841161108460887463192296820511472502020416172075422871511592265029142638606919700379703022445829765989507021036838065628813743596829625889996499020671696842279329927940211940798468841579837656471405249310603005299563220587417482634849935387337834515702393200550154438222357459185895040558219470733099804218448869790920536364538965149713482754006014772314502122497001148315695847280670891430658889531343263367105015758583591899530729084302210480449811422420943719759790953505357519718186512520211015171020379075527917555934553207157279476955114756532573306169624198624581378894461376789778832638227173868595480895787169596732611676431428556876902680714868716249709614128059664387831723541957077870379597235310861513562341123129962517892243621591381617805604819951312650259813762622992948165807407009948100143568634992560095556156864512411904297991469306085153501786667472067704291765746493195360312383511323624138578009238993373563580855933990795061387707896618784271396751151737795204217374227617100498078994789871716627305871099809662897245290942531620302202006460951981430940451428976035994804730748588524002542949683032237685143071355812971184788062461781197301303412552596772936122158956245122409303138006740719827831584950279734554164375008408375943712698016305243392862307021724283015647759349567640651409881342590945980712163993426866370776893823678360204876472487353971488469859196829252192732662601994244594496226449684025307186645536424562555943233380020568577305477632687222708412500855567120057703282007782614785999895945759409057035497416736763890068761841603602399085848171637377482362835622508864410807751148585524186746153154135140620827397024653188563402402751314578533933162137838948430875115669265661979998413689611105278914644365854487720248366275999149722243913805659171422252469539441483034880881611634689773433834689702207278050262686655735092825359330843376245547975831412978574386743955130535005996524140790387519443952568445520432321631401447734248146054727179400170951996078438752690454482978405995618604573432453476392900041385930499805102067166574451782563724005434948889148379109920097561806919119139257550429231320613598716309252166763243518642891972950007967113434121008733791177456319019660018868335081751995408716763301909221233435377238711700576067902129535245575717774533804232216829748542238483957746071090231332610843777478382071786878766046051443085980777707009200464103569211783779693843506930229375285079171925040786350096940037193922788235298117817457776499720896871165098450756475357965657772496959528109905811673298498880156702774920590362615646952427406244227356083949065108829068857637220643173352767995991028275921775640074399317050012903316503336352280100201000494070960588636241719421345308975029112099869121118869092527055955308560496358598845311615190669231953531366922630851231962116152919792091191955042777985423586806572942516774035191905982316986696137693334041603733412909389552008127161659267059871176209437968322241723893515484768857559457070901734523451001781942992418807265690530513977018535187301459330424534449259573246975713508110867168679474675864413944652293683415624154021328823726679787444101659706621216896518537456286677920571517006258864354248773514643980953036976188030719517996821022772077941223850098143747304729124487061075424628283498903337409552108467844167174421978974498192276293699140003740629925897782930299083228487484145190124635071640098063630551755890908735145284654954221378542192178270524125175550417287850891348236477471467942216784959613627722435291919526261872708340982229984979989727018063793039499101987466695093479973468890188249794049651188396114789317418651870661647925712910998996524504083942105336560014585673125851937337712177741855538963288821504716461394066929466684614952947265169927318110935129235690672894960141791813122739124738651332481857382979960496126642106422414133808799178728751829188690217325792734405772577728123080302104212138922309333596753008781488728829384509305589067089550790945466582647019216967050409902531954884719259902581543721315557379970224154618987478036719589323479875170327523303047224365315002386903520116331380510810713929483168993126131970210563735582686031429955849051840666977261705145288113083160529279760406010946502337222951194625705014561312218183416594276778663841437616184902521377250344536268448310116225776606557585009176864812312544603709602520160041739004842323595651589211059574840182591976832324693354487126719192066980079756383213523558162381346684502437567596842042796080276131513408485253227407378700754829977069401614247169257982936449066156942520520040092045517149884354551094218220109883017221902424024136519562531550154543079857538796232509087805451027364404906005975049948211747207993424429353398766388743128128289765376543724364395832414381191246466374830783634445736082370062455596887987049670209586660247286823148929214328827606484252113751733826129756627297351392968083888429325507485287042544637653919500393701892819735211931354737992111680153181583513773555814365830557750056428285698577514665596450778863421247711905414676636412064325809849193234796241269469126868860533761244276290556790320670737111991475608551446880452529340244013399928218208424750819763936292753281078203329815922493952545626205138092385618207235369794881341296614104256886429182161800241745779991516528124280209480505789447811845812592586874187500214952642314803768760353834101718775819511008987023435946162378674439375063984877728662267463833274496122840206878917616067567038362002095392477013471606736205085444325944544118358884898944855365718236449139520246461847486100004187721104668242283720171600745662814227762519085854194846956121381785909054721686072314022313400470116028855116862920405769197024410630713804521358753981648263786865535080327940021790920462116087614783547884270136070768492418930160713805331070036125390246261241765005783869036428427133166712362907956029912365157963882188679708837087148564440730570613685148977001560176996348904832564966241980537795339159283410466831689336741262652259950996488466620290306459968075830256418955537460421366420264321124885288577577516488984765802031137629143008232177889736158457476820400196193566597295224101332347992530110008026829403920651500077485033386451422252038586707106771755257549344349010578205341799261496729707887378789796487437398319604346656514887390719807017258802122068397133054694574553101604096551877872381334355028436336993467430883211484368980003312534535838836135030023219030038122101498246523434828548574091996563514273099736255274162008442921711251191669065671612186857860039569461177184322833851999032461266953454032082482861069156014317704091908635723393034231782476548638462337062728466769555900957451535717794948917604498802832788980532154724198672372672427216537541180066883719410470779001717522632164245111440792406349769397436446197344038181903698308948281827407133523638213168389933217838006269931749033396312573686622631913404197740337469388093644683688550981113507737255471063978940095260732176996845729409929086037191320904411429571272164002838826938970825862712031981779918097767504752117200812941596364947460701264258463221948968147925793823711652898008014215183836417820384088285403370006032255966499861998622188333297881612255963686594497878665614369090352787536115477126299819679068866286037352552098894784328976267895938016799783759896939911046174834015010464158423927588271981038345290853178327951006602832994430298812901591139455479622774694444726105688000590231473411343593551591006107410693473754818914895936249859479971491035532508949569530980974782304586659927182061117126485455609934838583389880632837125694564493141130050415297211304896929532811555924761007526349686343759308201796848214294646101987949135144413995571894134583689585559249933297821239579163380717669366731285950542470504351018786396809354653750737470262952900369341856465869911887336064156513355961863494705688397646809470984906406020400079275921000620806319259770223798726558620394040286027209453439106961893972509371645483353622328035248133874620715817970079983251035061170481620772860430175173536852834483418170856653567159108540767518952620932304224417677405590327809496687235776382689187201448458134038824161838265151500830152088332356601554032210188890698016239650163135584229918492974916472975565573933907163172615645212111081191325186129101596903177898691627632006604325433994792463133608648465146291316546978940347315167138203272320299274590033946171813909767916587321101904813398877073860306307439852655670918512546822678364633429906980919036073944963885853472843962564839251999358676393491709710604236983347513686956858445410725323004486133904865209905076320196608005099001390031274143226322392745455093451077922634148601765936625255761131533725750269286196780873130792375860911700293469865595054259547232791261215083060952940897741515801356162587688439119344563845341251102144998647765774596081157400537180273563947403539821194687785531134342529932892367866673010028244524615223015584333788762369964404034740692372757958928283338651608328747328653757671334949276767025742575287750147292107850356125284489138108727831276097969300596129641533542988476113990264197619393335690833709797594469069290545961370169821473334041751202664106149668142960603158781583538943674685655433703371292070141427843175551267578508867444062209448149826851291548055719155614063796309650221098577018666425185470685822783079752555385008001907568752994631821066793907026620479091310965531209036392070984566721762365606209592212086245975240872883851162377537995681119889712581322495628861967879480999291329481017037863221626675791549542754087538380123201627776822418666910339077263228729817200950337746985424161731654195397795280780241669443274597173385907931945906844094015555709903822660703647249443743597089169008269309688134819704906895028674993620913535987044669259275463786208429844215667432986446325589358442753659320135919519369735090146005182463795902852577902389743844380339661364998781612827583932297213914645227454506165194039920760764821510006329679119267725629269712240952288855393884397036457043140682085236781180059306126434108413871993269164333731221244896928353535829685303327879762416488643199569642628366433851527214947864354170725608479929605355959215403204791785288573472797439173328370922586106634512885852195674483441478884561163330806454430407204678886626059753771400285214123766217305339824965076646234212626598886786046035160601058449781900273378829565553415317125872801029211123330336752026294920409185055732968186541802185636245453304521098663961331981090839012079283954934022108468630175627940807376947656171855756361426820305622859263763819438087733586410901246239073046053417713772304044018065491126916034583037139003376908627179679561942004051393058001103579365849898475401605421693712155573867860413844043545041227346206281061319356166147523239854768845897752650312611262654197196831819380297529229797174404538327690725747682488051471729318776710196482859444050899440135773533031747122302749820897891807940424077087626083185386061438060993849617823265707273622561295749979869996512194715428095967580574759444495302178251087596191893156797912790597301032904753498178473746996232443719438524095055441900353148662428015890104695481497468110832063889578509413327767040566168746241060881424523616047280246771942628286661518985251072249601986505048805005293937683805817312401806413237635312767942180773277162947687436840140758821893859608107990756643638065852938396630432657035893753113866634923608114362056190600641903667557070167824920552914025838889027953999471549685364400666719673356921529472747933544870239067896652100658530526759830329980169637762653677706748920202288635339155200294724107871921320193048614806382003300471959762871410915192017110343422542208980878774792729461614694563791088578916235078855615239091380057860156642828746431009186802982367027283897694527884623640414562527862789009901160186957932620371050595100591306602546254548881388019269845043225770347318445661444074270314196153452698116700480455530288808192614127490172854390421494078984138811834473854068813020999804995079214250250470258886400333482319568681479624811310851904505319853643972046791534076916432461293395026790452250580207771937456580552400262580035485654096388863607037715141931213455070872195326413757981337406554254571322924153338437051510955563948807525942031029700344177700001755940550779397454439140425267363931272546006709417930469500120183738409496927499153118208696523706186351886617101221353695279872917516259426643704835718988741052889393545950256515633838013458833184259580392565960097295578931925117436365692404552031696302357218138399487060515852091189303481845957400977711943490752665539548244327510136678910909610776726660766610530389277953031141647254861930356879111329467749867710453739284798413484004552889012125646166244195966764298630355606020005541001290564533997720332350616591351037937847334172110155006674769195080434980875326396623521572896060279169262981054197365469455166455636809459115986601851743984245465615704622013815148337030615495388554069413622867758126264475970241148903081886730746672558962714434758610734334695638997551480462706719990463066886657168407857586244082325578401496808471137956004034733985241596476156127228779342415931392468777651715548717529423894835356720206113996835925223988504846981731607029191613854680962607674988936156787585814193644783544829866312809720555982003206451598520089814152767048844147535048343685073752383008376740173837673242116099753039198777981828971729745765473137598310597270945446950686853946335496265569152996321130428496764245384569293984905002451079643457928779200827562349841271121332677455397638294659757474328372193310020949351975513209486433297350562765120619458760647392490902550744070357929605960437015455336522288607384522930555879111619022649922106728691178382150050109115805157895094795253712300567332332932407163191505627640384694562806772739595749373369778674569295190949840165703688180382408095767353881353023911618746570541984426955220770144232523163902499462768917220989900454517742971672122086824955350596103758206681586559145745137587678588658326704057282370558085665150478830519164530713346047189963244211475460009858632564998004502950388572250934227643410748338753881751968411072109500043002115950229058280230439499960467496285275900989904422069436175480268590073761222340744631754480453435500044052805236662166283485617233563636532821136282311300753901795404713701608741737409001193390294331594526743972276256425296272650798035232179624100951247802402530364907025691086305203120006645998336630333789126536528839334640605588290835735837799122195299787344905767957080952244067009980373801719137497833361923898403771593436614030369545804134837350314561209416265413593239104999307539217408358892067342460437727238456079565951657388482105843073753985417455673960251546905419451168686205957269216456853814854910659436937852231797071201862424740369547508136298765649812426404790929382470027779948063457607236432643088426735541234511393030481016462687056822039736782390307556015723783537917727626045675264663512475640724411240186774517933745954232322557219939512270930577901455927590838832896263059881627063239744940126384349681353788688558006790255675078725136858141861469192128412278539065200725934888123730132077414474921519074261120963393991209036972395598018592102115869022614581720182629024413337591007929442841633035011677077384591524674166115103715392821711855349377024492648564799257392703472789595142028035661997883807767186079234485641557205813305353682741616579627159065782803753991906138140700848079791198611756849061855460650908167019875612774383019336912264038608605808213195710108559542475446364568429442390667094390561872480336380088939935266507578684882704115837525655049696675198404597841554728300025821657063207086249540270473189384554008035440012281342977092694008711703978081351983684305310474097047158916899043992437127630448497761022241321161098688747118418146810055812409660849467826663133569392525989043057286893566426125615766031585167132097272548915483664316424896221281381527923434666207300733641796126905283779279435414063372981887272614360517314582221309994416267826054454787130022641305801450126998917725079557635495996862998042641628281386730162760619041244024619547172127957017479758724749023562139437623186968129481473844456340285117407772678443371771843186196611032443243826744956229189160747475071593706359474048720577019560355605690388616642688553827150842937995113122650159261734304004323677012530551645896844978868433368872024654876917791640307144175343954722471843343045296996901671743503794691649060235184986668262251402407181576784717891412455241063281731021054542690662447797608543570901952563991597105682073252070905591901465801932532359056820489861436210919814335332056834728620423759810019009813972225961448346625143836779312192208499388534297344653717158441352355050795857494742082669052729360684865735964836646262501039388547180681448968932530385476557281668735468637950680779579632807029031331744872875873915430228948984576079138952828935595159683407975390757231286517751559663577077705500783104022181600402987186024107922223837041191517987264499720584348305249219558405296384892166717461481481166377596912729530277027916844214745692357157481670453618402461866877844446125715404053761935341059378899470251348333774023953797617854061156853813602066190345839184124492725755374243101043838480760703385444426298870030843979070245327323951121050498089746429175687699968223920026014747209712584945799049859629582886841571348734176999647163907442073881118419817769898903036941580630650563405422773858833747486790409382056275293241711286287949198185586366148906553196884368548342080170546102027429367343245167103016687416675512075163587542107397721666532317844958678534144463989493444603522615084998423029199628050853853497266972968224336337407133997485395828112571653458557445251615813171108359775708820884367356135308590688892535148649739851273763785411720636134710879620898917085769106835941701572094548149014499300442487407814928150177905952072046643068708415386849945342074957316462961103463740904117912097533493117172922808514479818913992932812846021715843754635668578997911164158227849942839774177388061844174962803239381282314848631981883401580113318998300350451814182851937705188480841096237325027813619479056738010849177760609680824635104040179661157495446101967019355119437148965007967314235002365987714190982085246623546885548592444458701984434718105210378785080904382452083518517259116140846347157301673194951180163935719320669142720980876523374690576795274386277953444844025473911104898152812051081528907770149671708837262226866947177293380326281358996677117441655951495847239856042746334220515658112794140811129395271305770697245855355458952481065265208982166430054276844691072063868350426809570422431303106321642202950506213855783544532333659059209123185302518300139182453959812168728907594255159990417689469969588193256298960079721243574275668301827139683620938608484901139534336631089362557055382310589992381888004326864660783962215213698390345677033829891556850808688108586583856731719840891246536285055003012179142882844218651005550732489015236869283763337557036764768304674225525428942254203861003946316458616535427328781614665948268973967030609345648562834919263350817599430770044235925222691865212731002895695136182887872467126481271323995015868162867806998193253521395344698278627412744198485578348333708282366332404714102382227610116913809865885595541027920863709380063085624881365525294957075041807578997729762858301807848542902010189519180140742410067361529700418670334411613869092316366259892014443025417416635919348933732245886635400107690432180325420888180794906665409210267169549678104851583426961506104617733007747127635193894369286502071382181329989001294785280054478699867339350470027825666415166047662407909110939333371370548093763537862847787653235765111503408924040794280151009631013557898770395941948029988605970037693836356004102006633841993027057235533264584252812037211699642003932118725316438700939543648796446890988165046254060835494092413238666533831884787658934819726241059639290952578896182705201712477382516931037235963714740488772492515518598365377463944155309525909904063070851220669655022155770501477119786930433964127381886579010695206005514246451898659190806173627552326065801426883952594312450444631366584692107256591465875638767517423778544305183808192538468680363493245249232208857369256867369066007843232220650207426486433822305589898022979779275584958848431619810138888014053428140573390933411437968506283313448769545812172892057158686712992739246603002996873115362787720145797564156301507149275339651243971380011819108061728086984786815559222965330143752576309074841277710694653589921759733247164494644625728968998296765236118572535921223877586404854755738483597602225946460451214904136956402625152398500599768230417406688035525162694293964683109221108282501212915379771985844422718384768366427526448498613430738108304396320765580186568307753080124720961994462990798774750750581994312563588924258023122866054876173223250391904360757041117955797166053816963946182696737396249543286136601274426954508791251705624548403204311375539882322279681105287511920971028425870979681909728995113848460176494849010194286994236524154176423831590308726318253893845516867391252715151008601075759412807280961833272854364448754533157834062794204655878645657978955639654217549809202368163711993773903908251724930594167092485159870500001051034401882930786082824260945713681790427986339791572326653297260337507438136969595197135125985920161378676709948524378992233718929299034867165275954948522963683276473471442886487329574669637254535595318900178542620534929054021910230347247392720671611036314125702504342275293420866350439739974497250231882267444232021652304571283780068283951490790515379035616519983586358724676722823944965322180515697200834478834180130863369983657011454296926542244375674612331047601274429769779096789263266931545261484193926483881335019400688760281032340641715946248823996285088819160676816001363781596765378045328458476169535425073610382602828962053289766537944067442736225384302328413875903235865286500370782032337613381997225531011925895643287770890823425258803120552696365457394268566207650783007052260276720609405260375949791672812907400692951874244853737765754623711735161339246425685780439553318532827136524808523248328208303607229382193019388653595390131578649487961781337239511165566590102939298348706310868446213848634309307189048738204447260590828392454270002554591765700451784198315582633037225078599733336748426022021918736093540273782279376302364324942076801249485847966846186660221632284826732456484676671477691930153139845889555203118111971185072514386554724131431739095323824282109216069993607457953539914608658042465531688294269033126898885838638860664564180102218190194323953322753991793531232766541994451914793061863522451428153569177949093183592180469338692262445663985887457761267770289474901529589273644011786754746284397042212065205667623872652933448963127361634930205102091899454113154445231222646504415699708455129771566394178226308703658572007937721860983112115750717100901100922844920885308910727636371514775594494417393139850695879820374394187473027791676746750899464362633836435919240589898940402440141446162570963061860070107009391964795764703303843896846945500797632486890294310680294941861529131643944674543823382338615136086954255574642061639235528786015770659877502105844231187929804670202218901128477368686385331017280080594369041408569070667449333289498034223127479773159436982579281763928364247409750161194265190752882186220046498105463703864920531278636700175598984034466521955885737815719955989112527120613699962621573640798610333103090312898312781676344565213046066990879826655063654015031797582920877504317644708705079105010719859971395701657885654880939627760738976813138896503479570646880653285837211574240275983156556790859242229973840320260137911873960535631026819264483043656310557528948637944761177595233537365483605116281958226225084054063969593457996879774124632094685118890249211521142267392057118018877911461450547445068831910029384644566145328146999625782701558736207004591828187312178863495637787687212126937612007125139641327339569856114326018041803175766987255838263159628003871110010193089188591962392571810855196317779640850057790027807565094607728707062075922326501669117800575965651496980927613965102352516406700357244908660376899061970634950062792183399735781867429839908647116344026823766452298115106166591962894370069511468631608074449753194653387299055627913591506261008586244644320197479018291433629027058181442136374114784480667506141446362772892632608331881398242130040745241547141861198386115767891831011480928576829862651383484843928008875375580366037517898763527202535144981665047088058131918148314450562056874460273747876366933364114514427412468265165654045604186600998462897036907582346967889713718049048247829148777134651146309306828985097979660348863704074292176763682809674002732904746456609304445816246837952669944434018938103296040291848851614172394192253741914301051019039840038664479068121412757514210983238058762160158597244709052389211001733229110461501414223927978913799661278104276294870959626176383229976907652730505371647103121731130266823485554539261241330525497423301386488274482253723652308405661818311691664477582099078806854423457245731166306096819430539214079172032747291983489475143966775265686022625783843788340675815574103308776897712953988299434973849330909437410258227193161932673851347617069834603605301260477984504869296633010035399440657773997306225038010734277348537375093931459486827312610319625038403747917898860681838598377074133537312333291438326729697914566324164167946950746989770627145311113738900119820108505258730350640718484609462429567049174548191855160289841550057614879044798773933843332904811456680265199940925928364280848970913162437815133371002673058057432476050687964509182859870841852354295926235149270162094444555215131724774136604952726606570031984923469510980706360267345017916076227486234187017051603437143402918485192577546117952915452810131986220611792825383350454137384346942737321685133414214567552607715829145781874730153061984852251112843592619710830803101361281152018661621248216587684678117603164553050729918328538258003286327115703392436624857266940041648509527709279152533632174902177827200729497404180233702973052525493700319325849599338586911213362118106013972299109550523770142735532204354830671846411507174829609373647043052422932948150932036180611010187998998415356645612171076333223779990885132046831676809985573428537283983059682408248262403397004977778583411025307971912929562157903444585863217711324134843710172810087230788754240587448710551091328597144493952869688583703185934776506626386191256833109427106218654509258328816653213668253641891237767748435582950365938093015135572185459194289823947324828581785239023514484761350124014902562361253307885002294447216146385779990586594242921541563783480078469819796881156815506933755562153587198797014139476267559154098281432630255716145627497929128200667401513196019714821800801890439819430569013303354928726880503242512113708928017240998212792382689063654872663301883994789733971721453485361831938852276537888185980064112809044418261297845457258863821611123256411488213978075991384064522007354036270581584495043674686240360468457204937389344198868024450828492901344143438318112976089658545443306236673786984102687228894908422141716513794735865223322845964085177558151284894333276593595741551943806194784785564230647482583207897593757442907483769937577661290992077629408093853046896044185660413119216347369771255689470813697058371379347939446913213786563753895107253437950769845874132105509079018622064637813540083359540092026420256462595646806151893550973023751046594065934047550582357128194328048276301581243405764254766974292853841465552836445810088164073440964767690892980027681597436506550449949441727765944862995731835070787918005221699090533971861824130453238889347606532268211419158074796204776095962029190322088188682424540249602496398861838146238900939506524647688919463542808182948563514171062338771546896907910008741857308088813094428437253382464525886566186663545935683812386586992428659129172271246234971562811599941129428957067802865386786334316773697125511695020482536808770363104118023300764598352931064751182616115694535826018976777112189599246663447008669120453637282844011941156707343644146892411539476668375814828205518530339170111632024240033385341117194444765072618603623219064272382050723347015827236952510816632035378550407700759422924062777928980178238449013894944366697051999296884510692826966108422846001800804349860180904401911990363726701629265077465227359534276267137044961296241286585361657431491506995236274460859984230132113850227907622929207487197470586335755301575230463836054761814089786556899949716889299996910662695599965937833444215071077592332473667859572853587582706148161665671153778264307761379086453197337708142699127502809327698541318386522938230901132430152451274939949587706774452867117200765535836554114366023603980271840890593575872585432329627683347053920648264033997507459584568376123834344133425181455320177446418470419219910634222178655895215075619980441450631356322029291638402612942754283583749609278865644047996443100715448915711365648967286676690560119088766983490474009375437871708800898301583110578890728509911606458202151070313174179206635537963203445879758161625877552023877270803982851565036069326990953799862026598359836108936996950663040871649721484148586077110307937899463201146150331597524214000280750907543785906573276681718657116510855300447919148818751391869939391832334174231356856939625157136259813642887261584674237792790354499903773130183804428761791957809729159413787514900825321844861021311423147654731555887929776637032410117548329747453470879812528080962833378927730952366944537423614447630806740587952314704588289880040923382592855205977988252606364271058126166593148372919601901129176459436047564866474618491882229921536896120024799563666775530209837380254627799851625492655124750440988919508771471945702033781482661085630888125320033770212281457731016436774615257720866860823397677651767397459634396292202813959768828805190907865679835647354529539220346513161131703006516741914984679941496120790199911631451606436827750043861910522938526119126746658809949073063253327253268067010302757484285382518718783112370844065679075362930266347873271509997147027711403491023406492874891170221640924689467098790586722703832507446064785407936346144451325918638581001210982822000597149144542895278934651309213219758271820883326797340454967971047118189304514036810394718442897379982940073368403818451318397925945593521675996385781846162192743265795619846825268602094461115805511645107231648688576690164957538069448460018848679664784862861271340969599512295077508529089455854414343714274662474100433994182870701720843620706270315940182272040295500344138405089739382620818038013227339117325335409506340056649452933111079636945026283791612633874493035247015022599072248083954653913904754693944650473696434307714789819218256172272230151101446878315283995524484625480885537917448476139509927940380125105623873205359644445022615779369821070236306192045234446126274572005844459236063993885769534469521020828912536028758289168282273168830460065441476239175515425141701826687789089997944246136570259325627015280865395510200833758064882881929079969804809835247536479574941524620580602734236324061788306176126261192121546449536298121067324166155942469208460172552240271828514370982683520938185869359154065815253024958492801804556872873385575693083469091399092863813649361531838111036279325894931666057599658921273370570609332673752828275529621416371746049619561409573447207431366881322969954514172829177837133995685352115064802677740797118217040322141447988706588425803778740379692139547891173051299702227345468154675446986621758901345329945234903927850268974090134300955625816405140408727378248440720764271812258557757321949788137129773707704458616407347029038564754777137635635437190982074239546285903788443838690978852978211182840389435751828254894399557940590945410476247139990973187860813819251904509620658566052527691942767477614469548760789818858416416928860721246353515740808574192638275106676365365741523039321419532374580442466363517778832986589772432892401883303345878084820632660641254366759861344798661813413294517328671437740796110061089668569389815564764239841997577745364000716686384472384439127126378123708172199858422145761050935476696223064613113235668188553581848128419319882939506891037690761427915028248159200656518475838416237452611819147583049748008930645129330763969490324137659505216245380517383249340612624353899279970025993006859969106711988597130571082487412380044859268766134634514857487190818832953028154882042760584259470093753031999290910796341170871756223435103348130609158656775029112931418994580664279139396669894227184365072722119391996192446611516308750660051634008679063613146235748349676921655090304420656560506631090565671199474978302378047865932749415038599652367377882061925802223796819379005505920266964238147893982339422027401559733980099008386705400762498798513490765295892132196573012918918850589252612830035692745648356298548248434095007877304036515672890686055185919690572972764625795510581625404605602070690168904024483388633199355451405391853188058722227606867733023625413674325737912678930702412674971096529015011524439710910396388645391435765156306277275900960035071820309138306234933998122521368182403975841926262532427216840429295021319804587347359318687632543866748475721595334135995845273946842296692956897690376355059796710346320333520202019820319021325389605494900509605780929907443181215880465368213255173907379497740823020347591930605243194507327466860908870428817508494881653926332318246832429147964607898888397000657563093530004369076200821616912932635792167952104976492097301606512903443669589067076719099952095655107998196218662189666893828495232016698695300801025077540996240258102312319421406602352044865008558572279888696203895491100510689954488639537137936091852028447353072713648361994036925402161435518429616304646133367732155020974761903466645803203637467309267562394946200048271912623400998519800541242540117091237752274063981393195047864443587160849806539352587274106479497975170856430827954631492276474823474599437751180531724153796082207104226663075313821009348955051225604681339855321194701077934257838733114448166431649737374651361422153144741906154241380689755519049349336130605037644265686655165325170480866085189451381058714144406546925950763120419340356184603373503894613306325349947310596470697237721217889826953343509528222171130995212391041545652003407118910458607090036997992080640060642045667774259518874502527981745960690545592993335888728508370332639501874857820698738813479779467152517270158989545620914391041268925696457651914013918512762656629425042810856024978618166698371825338284195084801577814602937374292587196457653048455390131951053993096034448394287510419934639563751301054087000034727306151318628003425966731126815248303139583174274518872031424253093998970755371836895936647658887709473122163378148266316538390582603041910641424176196010725621299758087355646528250727248088845614912255172086774478172299688446130246543906208645693707601055965360836645657556160873409564289407719767895997316342243385610290718937100571654526096726773938285817107299218962209427053222749724475324932101944733385712705260984815474440184600309419108431297650915340953557937350689225391123650047622532313560362697647759966565095706610941480672746567900837998046816620022425004400666199762893355923721363822772547968006718142574733527748689799149230754872988172121034116055361027789868416887966132113595064982698518210877785922134227274763974669681327025292435772950096872477928571865226224223432796731697214218135772828035804563080670682217796756204867784381741276416061318130618192123039106035893548573985151185117275859135160233784527868661301776214550498252050900119567132365851892822075301163569421393297773573206870022444636818380552442666744946537743148749256084827509253594648828321003109299547211001266024310609347109777417844038712039427973852961095652319015770912304506430335925217773053438030900816155815080835978745206834475317122491119326528811069038136196440209929236782434339814841781084062399161176769143086622443181756131829679371969535173446642382122902956036668810047027273550221085806841907846301705406084052490013526538989206528528112534851194381549179310318225073736489836772099323135789303660180516128523839088048230728446458061104009887819780697891283507451995713526803038031285148996965354320233146852032400467806249757029688224502030840155752984878581103082775391073658340011302283076289898599360876791948089650953351403111737477543524653336621350121371492829571352941978022037544633928993887408528746242595965230223305194033623832767964230861073472233345833730346021146636081255183702545338923989500912069844040748231635693187789790004521941198793815552099526369096387553826966257281938477831581077522896499543305265446388852169307665105227212877131310667824174952394038436023801330941245769769178634562021318401671533026066340738150577106783937629321846325878685273638089607132637355571745175214990668337460259508661276938816295016450518465880326409234226312291198435001865829759355694358510905353084680339179168915872887712727855978259329197886411296390987015584422713645994786298852293489725847765637124438269825758420535049612796647407449112489685807791668443605038551689941697107025635674361425504320999358514335998529469665303171730123937013235364107172419287197646420132497501727739099208649756551422471247609978134793374795476524481159489368611420554151426395906657123737300831355133692849839456698176270905919567309457995357853718485915456864231265947254663402887705897504939947736146387309623880891605821148452805797223606351730583951918382434484842936997600417490937808447779985822834145449282412374547658009916558676134915165883491691610663614074955237172076626732762871445792230710529972810386005423338358364517655504621490848509341388349935732711688043259194639857183343242062052476411348503696115940842893459603731113341609811644853025428449464296130011333411572771336529608546222893015193308998157439694450745378462115650999404764173799530333160578623410823374708822448355483864129762792079054043311223719355309295942724145319988250410431159307183073208394359309957516785187081808999321839900375370940632063701580097593060656441661462398992251252915544725970767112492314386498980869847739799444616852682654625266029379902573898127252156878377702867507126112721362598996269759607871064939546690953478373399397734775510379372885259430040964683961840106009704574782527788545151867034692064333338708286448694985540325586461558363001884072394616860053995894885860589333578471525238805205000711880149733127486886603540285705452729768694445714220373938168448809689105559289775362703856185479374661297002205267193272259265282764583673074535167831299079142135631585626295614550802340886776879267066027666925619202565849484056897371395179811485116097713359724963844320544606580288045561275201621243669838747078462452384457945244871655519176106949447188249752375922653804428779220675189548307705920427422959964046255247040003848767828068991247952199590931963939135583978378740579087620346796755313895172805209183494438557632433581731173488104876371085997731471765118094737460519111015363009835549195825366605455146337354732294279650008514208459936346924454256500573266078802434666307550482480406887358394631081551936454663771604023631966420896732893383109898256588076991132617061762652650362983515366742825875541478868643364085134272159800118626289579930978244605727939181335651863249310335272955794935575143051536233583343366318417775523841825084964944700683475906368537051010225294386462195698149621100030695828002720917051786404102760672888458390021338603799904478294069729239337373746318106791207457156769512779885841821414818956301812367285141076356909628338200983741440493592743656084272640366713654471533963399887038642985923217256158728788726808755579200184630958994958040874096935854759665458158978917920916836356014359040749979984760841381694483135073945027874447290151202242912508306221223621876291134641781029859979699477233574078049608811701864053023009621843837202733804394582689506201931789950467758764211598770988082361874737855571209042816737136847577533008625443594988336246524605403227363215717838589468762539367269530443917909615944364371762215566636587355467885726347825237342779863596129235034551166105737455730580012590972331302230464406944986709390138798986509210075309931490698051561421993180658984169699653697596308854612011089619028088267871953421530685501650835556807047171820812204102105479820074415462105369878213585737616049578756822332351010462133699923079429662053830147972621009443654591621908878811901426057478255427618802747087888654371080325455508447024498373368339270353523276424808120898972635760079367819134697738171454526197625756742148256047203607320736216136481552164989911059372587234786790605305854289865859880854320507074040851531464785030967330298608603372412801557886159653010208371546057823579993101866124264874927691647473110954781718887257430428298648921535607443000764310523096217249598451634087993703473049863706264421228739461475504328115781537169793260936127753049942684194773516282801231005704387184657951911803904339327174770034065910134750050243941483609189811787598708526896974073250075514904096114516450025281144583328125470551365343753914757749107155282740397933911200778863461411280547431099015454642490292490129810060692759843523584631539797420892914044797969073699257841116649251123668178881895180332508569540346250433159751732785350805495335684264370529639073942565596181900258528509225005865950682477551094031470819683541232536088937287738133603628014886600400461832930978965985533849053349508808167437913084505226080212340263106207170954924053007053330838111348360576928872956308105734056466953788374207539430598270942992986066448020595459570550301326480320704110562510451246113094116533635881944632214553568941948649199752901095898219408705509566376434741069590211933290321068483923789798313987192852748211243745234285701501332662349587234456905121976618817224530721457276636243197702370579127761160968922954998369252917260075277709792249744821932950652164369652383349487327402215806727048633364696729184375302194172589197238326455097774498501576467361296352805668284976379062258603302676969590478505137794467380415134380340613256416376941331410661510745607963921013568037670407000648269932387150458645601057076970773342579273327618233525921643767560476856960333113898745106826739558827079741165677346254544297899559786720661674175706721495300444492466649586052361355463013638418863792604220896899998711213295273566633075187352505336239076494006761182087321256187908957041721928476964667175716332424487080414089038229668006586180268779820896005511394336929044189177638858182356027710839501368291135587853360199631439218725036290866411426309133160007899979619287787533376712054443804644671661982411316841012799509766386827602318827122055886356210096885971489360589363257357672287749357654539644775991650308928540466119137078357265511098245212219590836491345299988100065842301084702415796122044227834011049468863752813168576724616560873061141069393682461080597722273756891461249124375577376913273275450301245703953648606881730239268524388050478722303653968827250176309977568499977660856178186082411539099109604139053567826028642699368716331794032437621326810229229648510202867062989815664531883901599373255975175142119404654520804486898691618267081242668064616079844338921696464779062164027561874729342598097300965526606861392560689145065970060662286388576874595957113327771477291564080788208427926670899904010009525113038007383489116731946502558523226903895364206346467028046377769201355560586804926595390188015540433596428865900915332813421138658880420088566145072071048004867093912899669198399106074833905821498874695102802578632383863591999234913024642199556306214234853457222998900313098648264789643994172079035436542602214414619449114378809576771336592583351317052441389871788190078716527329909877608726764957304557492940061949131697114260150604079229536918790433111797197650683542107972772838902755045973822667495847552550892380858801538588623256496072501862663050166907263421002845499739960165334534322878025597383614809647762934355665104470910654886020085988270659813602720140657475629994268530845890898042638361223979208836219398559655129115093416172350412364943749250435577220639122599662596312080590950122744078500682817864186111774154232740450041417730753592812836488287204106353963574726434471438217262149578018998077826610122461105150185555552502844182426062786868421986195720552402956116426209637532997287826914956108592001868907828436864327333989148302905195069491694903546485203832857719635846041382332330204611699295755721545339947356302856054165733290067776528903415737999075283445191397540645261141707912356855900972621328209715106792795565873993354388768471680884082120327376931238681526752424573152097444561699049387237547324857158849343054581175252377058803784920350167126762511232869373163238519048904862674617607754816026512656978733662027397212840966390713418952114816641356733753174831708083035961573179936086718201659575126822708717833606022460789969302333268339134810378066739831652399347574315185465099617841629075112414176218625322509779375920852771873142518919119650653911446181783298647668159905523514707506394049398038945380244692250026464112183608836199773334246257161835958625413975322530880435255109836924459761784969571252350886889298852230575040345285850617365614844959182855323684907771255425257888998756915093555770000201876557282251088427883630567044074409181634497372920247523670323187684288746250466068363888503301935230461059590668343100686228590462505145005426975635399959024764525314007487534825188010367505346156005873510415225342670688661988425154683419723239619590931481691244562980430511330854538893893233793223966159246879610599767075304632574951333802588142435851901140228325757717260447916862969943379898772853489553155832152205359967593851599443402280481304098087471107453775877914617655101264840119533576912249218151498376281290321350977955608656378215647495576975344258880805545910719450057603797779023430146746688398351733059327545702323987207767019873715493275803872924596796362918369014652583818074318388867477092507120812945097472309771139897660175449704501726404116158783556592610184394138218196256587796742024673855661988033189765654386106202786644100084657427590265447210973512352696891509555508451801912377458742275251147478231613983271245342223525539427972528805213372001293553154441756465023643424334085850905418745220123954111084235479473836622292189813270685817587243637097214120953959105744795440120167801387633357163985337949842253483198368087926091555212752490025510738870093116285526517253753804146040146420994157749173426639301167696834064947202180145826350218812690354948463198507010500956350215597982395030133103105480172067117594535324897086248968346237215225677148863049468005518902168077449204142875295105537538164199874850496405425860602907632010845674376745632974408600369428756479649749638280472545927846227696564954601364255860481437865057371360086032347178996989749785796550165824082326063238955892678867207076619174268720411254274810050529455953349208108657576807194111811859128567675212600290154070392076150587175067973126135498183301686511194263878000089065242133323030797532760496800126764963890211933904156301852097354386793876089210644311382165967019496473148968851751865127638316305614540466516053204365028259420462166963381958884508541226937506302648707377093932158495136953985457827326614526129175023357997375688249411297515310176978107608756925216137243064433055471557890573700024038309655649846394344589709303803508068807041054767713734364418525525104626157794536893481166252114579222753552146265639719185112643069978114656691490081101047030487512885609103777418749740488688726907502141015362829427871844414682714344615627092308440247528161214009283145866331550952678567874902379864053361440926148998957097992859887466925123035153277616131881753861815608668028860396482687928918191640772154702640107645877648772160877769106011618246396295671925030989826517422812290425324362533551946739421733277163715466488309169905508796440869359540185670254745175794592243781731423525177975552891159622520276317968553155684289778507144167582530134323093598066343008446338048433588118784339787199227452715832368283484496901228259462022988174323904764336546636118055832969748144216621994136213467375529249682906307527422527912066695233759222513033679316119199308058958370144125945544182138670204894576452079383723191310104669322171940590834961717576343617622342936150471257430823226173168275061304416735661397031530098304991957287480210575476439624622892708212796075205550360067281348659975326789272817776416784631551541061193297427460442144642332744490961603017188840914594312793758085901315296426438531525819473086781855575433928775736250362766174867169388391768216160511741503379325935388487193220988474460465240041356975314736458064111600734819573127753042705390677722108900507187369398200615812322238288421795219592844821426472901163839578029736113428268685053746255180977610344210981022545677178542651482598050399865107577767481774937565057732539331735155611302909246913314991137866201917027777135241430479748614645791167562573468050088378724815491833740384110573495039916544588441974735733113999428408726504715537097995268981510548971880977497580828907993906756729514201702294310250809480516710549635448441132981709164757686746555576718545701072334901993919329985106005833785621276209500523717566326296663602650561220589453128812891444969636652996481267757571046040475014601144143417487544993269172756717899273129313478169284864253126795190468005459127293289757680000131174974280500118275685192571885896795803742610441018121546312887556725907706400223699404475892997815953611124744326437921190805023190877226516656715192262821115583519544075383545895338216723486818988764447022365150002993821347102899225613156148078024353703934388951924094125139878420952710269437822239548428606536586994696135861175571543708222700331287061074159294238206120912657665190875271514657259297285066980317693022149136734170651459030912729452553779540684673871908584410042138524372396930709685439983583988195979534024779252161423103917968996011311016570362632106227503470437749575586235915115912636077121826387155941656582422397033251443339576189743487372485104438579036263494712080142022142235431378476732060318573031133090704629589499027864305300956354568747668582518868518833266197862245162834927895496019485199225816142878074543390270891542554095616720888257974631267293785066709049576089880453123986420065280563561818288000762265801768249547534828911885708208230719299524896384926636361366660759824920815362751380603782034988466950099531259106178675676717118067689109910472661775925457958767001260266532533333255415504047481563406659968045209765979090030927450885479753557443873710046894038409318241019329972706066527834521419026012109552205797460408891241762837657074571903736241860379322780351393330209627787116647742006313408507956596823960511942421920402678878602858770113393548220683876265271640057292510360924018542661484549088630556863051196601203588136540063894661850349633786089994702848552040966419339859521196493012535444233981628833947443287241963878337845536382641826563855324694577522653339237956654550227310870080660869231962278799881312472005161187697413956626269876243697867602881759634815867787622934197438402504973386811668951619902178844049485725312048504176765939078202585943545477771581772813637995840820660549208004501142364011173558668848645897110402093591774651195856110548630783689280805114179361501490410451633360107874362307227533512817491834897671209756056885077097283001369640211920812729649016781777387264694476031171239740973287954022277779648596228342684112463444784343859946076769977109725374243671454686937902958902775921533700721442842845615439559747503085527302106463141156932417312258758190031575473350534206100968075943169840948704622423432975679588041897387495596852395484136498040735100545061281243943747766190364723349009269507985646738213373143405462118245322513540081862412728967882139352634278951498060045666607510813798221471880836033454089474731598108877587954006350650994254852281457268293451413295031052538004542134632699442819442263856614488855290362940999955997118747905331616621287793990855924933605734454499931980773197474919821935824864009161574651284184257159261132631210247743043176583491672778735688316684384347794834441710687745811195063709538412884080041970147140618896755985990778931903861334686418273680844257883818134201163627778654441142022216730038688283339669597247527770756769163878481482492029453765942925469943524900238338024490151138622114675194790628796430770447586650991926002722047035955733182907666157871358459239510690289559763669140107287364097600089642282652929828950175689601047701882290588948041507842209330600158178734600282751600529339309118709374024207743581014760096388802758386420147747785346879497935096337343739855747963107373500531668124937911590870336694770192535406018238814308884430286053629089143974749608047865739863807050813963940290424018478230267556949180597645012833929371398020080253007783079860827927898718614636926459315442966903691398885507946771167393110161286636149799110653193937954837939963356062575402563183231563522308097771040942433561992765652505679454899094676845818227486723162618168254358842856755484263780221966495148258444152130770826722630622107463516619955912551567428925603026775555815602693950553603918236654052562486421327991996868871968872929829114230925817281813252693663010456255697436641516125088752351396241470287198887594521950604471516313416145407728478366848884998535899603479826414987949719463766336068347242515709546714936790674144682367294440834712851633295985226883378661055305744539321577593193588644074515087368044813626972275269543222771016495585599348947068286079657190554412332317095772774303577061061891337924223149291457556979816676665675589774650462346149000683867562532535038908723663742086530477046748634452937145381826068774627630860566323359888656571546211669052839199047602160311706070679119671406530763367294572906839053250995055017795637731620837520965906807404153975123930704338280247107452959521116364004399390949557570616034763153305725554808129337945738187882633146114641165461723992727557175770644023399094515450772343935141762037077715826712456060886254864382991545363707979489977019228408315438430714957960088861336207488610927662195344785558633156145661886011617018222882573805570064345925037614546144031581358300923083929701195320389161473686262977102084232040187088267241407503325454649139844625178980189568076660590674161575728564718794607792674584838654065143962826406026849998690958049625145070509215627707965709223045983039076431327483334003767711579290856440297176288813885267598190409009044789739008771041816368562112325706829622353642377485257519266258990902193827538834781265700482945758668946102431924419764954673675719969933242892193393168327186884583102702365316196997662994874014163339000270201632784780656791662647455365251549488385828556477065683421126668048078920792948007402574580747472116726834857709917563048651278287616321117259404389032856471806948505924583898675736954383631944162143692722751768367582054667383809195496483627211937485550268018676368673457527907893536185262636265580784558823600186373892956607919804360659464019523297427909527044493022095965504442963413867127414116971374558768083115323862133764351343582940886924249168491688743837569826126157353260429272287152157974679937843021738466264544782835570122598156165166606351939937964957300256139346511536378978405736591476375687966798372331286492303272190874861626245635320769612444743186890243982784310078328096765167803219043669157242972176947782133455109996383728335064459512865520856877696276608518012118281276614676370727469334718840488775771914691842697251227853262103210030887594585004412332824127790695787612552308536909293860068552961172880585832958539316490487418695828281690004614200535074038005312381984921763744805231742948130313575592482323974914223630171853555395825999874431915199090715203148075823833796217092677126897588863273099955090742573998803813416343857636345240117642453079484154988007573125171572626456169119465424065763749053316663610944146443582212807120307953381850441089729787152657956197416501585407601600681050293456098978637945038536208165737361936665744575420680662174294765244663595968138475781233983845950345239058078866938775440789339593080085984030952290706469410905529222458797867177672121137865140397058383899010608920042561089051643563950227206777695748782896864883246612707147125805245752645170619636893689059346018299154036026385945541675779498098383929192406431217209291316396122546873729505697393133731110724397149817634016728113194237405230870651378962765407164098960879669008360520359025949051335854386782730785287960975548921790726461348661646769199171047602994100127786340930276346309844981408120131034012074700659966738232510550672549278085276232703894387379225626986044773494033993713495443440172182164496110758315228943021468836239056597131306582628048667946474941505782499856758523909308010017946310925741463888004659551476997730878419418134057692720666292810748705638294399315322279345953696697873361845514610586556609687770982288847796165949676860619663643017180642603211741355585162786093659072834278356233738978799597204199198480930033359655651615452229926771517169404783058261885483626474418312651191113712105087787361839807220871471912003985579632671355587128969116113510381179465788987730909019274390285950668108375353262269118964775810905286979391872638159249008181554586844028075908803189909210115431697917030561091658466005708971071757191755580200110336343634883266706847363313184798016498311210894455663208688961744713082655792023790257959602018121033364032572871500111173553542545845701150886060982693744945648108726733667080653093791886414450924509236797847539370003768881412464751962249909364557225078242094672229659009712978771574901194914211324383597713958131986498301707851726495918798661303316229037626603425011892933502414264174814596978428995623152724150151029376181343084197178277654213200912619488873487999459012912758655232506218920937390603351559097294243490148598887273050573359378462794235323338962858650046674004572771523880276631608847870867388227758486152127557819446362970945159569523710601631476939458460980719298586639532413492595997170814552526078676844020136386080937393632110526362704677219051179672100368806060350853147342203615829010461467091998137455510442934071835764560140561177537954458699714027417651669228138534448983185283891096821425122960302055209207890599884179348031471882736203010117810358271573701765786694488294883411208460824393021931513890678615927725158681375310317096853798380277988987447436624062640748339845726574409216287143840803938110653448961105731940639406541880924879357733334704987503450102360023248573878635709226750865307486457030025121104431091194550265018544685607720948046292182274439807189146924721190745697727108247885391769181823732802890650750493484662565009385771331972405904274821576042954966523864014043267019076546307822408075066187565292929304774268352847720620954757073758918737348041654373741368134676308066056831962361593526554430358350731585601291913117511332500434725534750938459546654844604757133328623722020757251269371012425787215106732802332122207896355454144802284503844768837460193170287528053796976826197050424776020191182598568568731172937797206663055681739494397405199033344849879657648289547841590936517686696213460495060750348435126296604022629067740003872254655009202632066306992963519641993294090008107033483143461543239851439650991820740647306141323960616709349307795169048923939610001297472614255607566489672676169593842668879890823273140453410771607487617862083543492880851546746402621991174053651067712309279738485065230100689617221984271739707415447314609466116783457260486470071379791454280480693111841675188466911225494769075772292884988139637086759385051557977783168026029146855769764580689119801862718292752533968509902529454285279577085616873958155775521735577950827136119002800551969276040397049063479938436120740534926282959208371066753383539363219321762161094725145894918242182418530560833018116870057620629640719177511045922577317937690636287648784210021618645219548688547743076477374463827955233337073506042153704379286483074878443430928428061875577184300889430683495440739349555624906944255704645467640426763495908549003616579296557090471025600244119261566915795235523522905060086855577666547338555146357935691570875302982060549513798673380854754103901905447872070628012129482423615527572583812998677978287603007283506311079027402638109190158030815199506691592824183927911027852405321912700348322552783427899534963756435419810385518864110999639680204007488293339883811647740318156328523169774049485940971282863745909720519319003414316078300867557103337181719600098577711627402834116187251672891262363837469560002264785964919511442451125955384648699846771380301235394182873755696183831551384708363975910095520339446170736576433593021923429892976563462490344321517253667115508371942489198101057297108276958240906975361781319433005029951095952461448733799419208915786002959170181599605030272866794926785481158025627202107678415204315303475316926650187131322391536564772155549849380070967288938087337900511689934925962579731233866229008245456025867095948800866072647421620653587856096523698479162477361043158801803280496293879611811191492163536431005957119464322643555506700506213995000635746236835150388326361554682616754517721300535854375673548519487854718145496543717987081792508818326085674989516072510059472167549132991264079287136718247224521002747172896151790923752452857756359607675577166148799364759945056324087583101170774504972128816039776901858165621074200457499294890033310453280843355915248335580178293713886318609658228184760942270551393755627801676342382537203711607020673658597452262363583058371928339213842339135731258178143411681036957207501745352681481580309226534201232859793535926592529527622711023614357470161078702093079881088893161667848478017519370181528248519476417769595111647978702663737603446028001865460448360815251040696815389500695907777861416249797614412489338150523406722624356316078212926338785373413904546001796001856175113465738118157660255977527553732703837946280367311415306464634864132849094903714785147548066489108092342530354826563361354452106211027849499587618841534543717566490735288394550995440237036503507080782769553354187111096015825968804175517295749857100330783366978372316583403501809014561572293883065748089091263875440555404277052977264515149917446733511384916478406354674597323790239348699989917216958838160653455578938130008374602342042702673862238713243854246741725866411826704953495928756150829358302970633143461371140649925564998681741232391037649429375256979215042050392751411496905761830946492918984787860555016047545310141284112958472208425124337803313138736176853957564773768326368049978522595358324421260876410813555221910854308248049605373390013251937277495337342648942798643317566858959115582312072703590813591665316391712252227929927045706018939849852365676642822602718491667947975344687337631037115495141976737403534542148433523422564591220763707666273646491270330595505867062804770011635781612634792651712962704069954696801449730029729483500240096475261084881426460621325701205475594362320619039867526630047476485205730069460029250472445714572999748866168461348895302662850533255430597562374534929024800024974521470200843485143269584697099878119137631848199829409157596202971789356681560296352884168511242064509973745685276733331137896223032270338145521249252926105034025405177665585834506109221705533048720366303775160639873446618999885750140561927345805701245129761649604538724197550367190541875899681119561621742270387146452978407377330968066769729188427283341060030873584330662944095180531028001806059753556648041617519119326918684221171096935539263222441486563844702280599497880173540994316126975884311841662675875852970711153556443699045046114860276063829359151861383154568089503572388291803648216534722549192458478597685345593751289483594003419785014046514380382202283101512343511057807670087164561715539075511511654172296527446633534572147824004430440892781576657410169379203518136128610169295446154436705288081776065661901973653538500359485837364400837314811179513373970383871667102600052960554636821820495574566615366895311765620998079959605568908323296436130487768047289720567229574956720276187471655770440784952920589126133520950680066607841813216022219915098310799052394632255677147130917389954438109299603377809685644394859341921031072891537762675683399728137048783608439193644074720117842180766183087750516515915534764509356013107175550037534947939356072625043503051470402954353895611523057532917686554868317110788659622812307531071185575494737811473080109349399595988229732272666796406676192682830451575042513415524501730686237323871767210507004832092963758474979362585391445621035751926977733291834843637184479627604695558821417179248545352708929999443369446089769948585592723659623759589526308921697752077297161156477472816288667570418437669096405413018396787289527359245827357374399119735749094369240585896997760198380713530527086829220076341109598843534278557447132844913943806052340806823282470873573640691710028006456867351012089443653766345099755163172513597168882002058453243907040989893020006302073377596700163069495747930094055554060685840638847151085941009013858573455812435982810461867125815889961108782939412537003479025568798296840715927053614595112049260035527851730994974339802413034464308112449346483107095758975392522826070597527467341409579428498588165517268233843116532646081926760568345717807623125628002070406328661320413655484277875629143944668709212043441591702472073311105504011583171007659191714645511473449767770456553290470931158390459965202277490039294569248132368153803135143322574416245991906852379225174055562480501457459321116349725751173399358552263156140784650523709081224404765708726831712951514294816780201481123576501748224646465937152101290581371907553719031052354511700598433920201622244999502396230117846695929097078412067009104760300966440510955205102569380514367143190002755733772975649208975928667854689908798128059698937278625274230381363203859463077389136273422805619273406364303074007712149602587555673181200676159431114723879447112837745712358130763258661807799192169237771015760850036048363667495527878865686517603967662595780780664474562010591433191012602208819897642261140352532052579658368201593663378855362701603651333404407463859440763220369531324086554523259105755242200735400055666759836621862542824824192461111619478197712747041057811258149921962082483660363246946158163695185263678194103477574093573908973661244046498280590909229285076447981838064276021395708396625930054975436330506227625250946923087548724150051552449197266683455027186279834406410199204602270935161291448171947634382624233245900101226938923437628147352675752929243398306913965184981268770697429982204333807202021053804404496386121469842894538089654060096604857445415581266449385561874854082821009213272091298720561051799503433373303711477310933769851520490473690204308467472453126368279794229788403583465847392676209481255527587421111178114644926167838533252982761108943647944192030809745445853000421887011719430375710689967195517724906214047733530212875903580348388181217165625882714612759610771700990359219499059199970485329520058262494958573140949633386524253734528404451318363209194780311851830829103488972283175288602156516053904563735481262981430473919482823911357167600118660288320456270183255107038302855545958941457448113303859603672288791330488403696090464689715939571335715988226128167469171342181518720160386650401517702502247651388140623512919304119084272240130546768060255306296906394736330873685915252574482357304743447549718423124812502421758155167128355742521552796981687202109657632252594580840496865266630274923731754825429605902777473377054903636958261052343224585725652513250779877970572251318190531937123157949014308653330254823157442511448077531837858685993819518949716877766813558038846515152131193973335159947720827279863265831559339573321762848642607713432732401959135697442552094754922397444177178915179357453442893275346397129535526494181449761439799572127299844363526027219008740360127442872796038944697718860224616081510765656446039812829720260630506301004560490857484740208326527973630857503943797548436154185856814600822599422103968182946164951627015635167246614356905123147587598780821641565119889342773553089882370075485661025376579937120799820091199245561471199162855326615720335500692390473853538494660719235489823646884038954141448336673538098274934296516330884785330881964430303672603518789567665889324475594580284813270479894698148890961241064099086143380396439641700363315437559312350560951351802499602772871592901040305790715111378337932686791257079733031706497936290389364188345856741631681603921011465345905629368664960857352469588991116465719515422301869735063632958411180008855052431830823949118642266175306999280346005971231438665614379111865704375334365593935717611548938824396511493693425403578916096450854936930027793468842738855895297443912846227561358569731472054602997353463728409238928140460130044026548533387355516265576339587793441567510818357690916662831105414017813231659564361492695618693548407455283345499504397230372262965314608370382840955795869392661930031359209997769898815346969091415552551797813774256360005012538308991633910079879470766521401540879618958443148918918817533740913602861134464792703865475672048621271651024832775506225174418509598430813828124666232259973900428575940665701390497425490419865214383242625966202075285892892702334056272183264750908710738827424131783589177279327385555266318835671601233025765543170206434368494420867707711155579902878632587051256303766660294185407533469675852431355703297618040084737292292322444623370149332320952484228116296981858027446505692476008541065637345906087016244699753002504605529769234457233468210605072285610023977697486093784989956792549936260624243454340404463645512354632363004750576006024016155574309697721241993271226654483055486000546978397488539919663303697472689844787067471257542434174919124404283340952734061238516635313758569144157398045471842057292709987883260116710991988269779986954276537833701556939055472938863496067084148268038951502302235220183213193038633620451901978221446104583951017992808454410730748419038531521535887123737114578866286509501772823600908687563875684843670710418866738783674590757805926296309042883675846877155693885603673146738455092711296656882926949285536014560431688603470002367715413178425977738859244262580442358225291126842983589954488573733164413526062248583387198591537557419489449940918555525651096947287250958602146591930581312554205912682162228804745357961960564976508763699584017197449011391286567017319877026078653089523263716775499075359579613315927677482457464671160451321453127720700898082612635405763497459580250228901432679493997107981250514357661207811213111575990307480962300218303678196628313084884007228828621132885085411366034491165942629568440000263214091762648775356687423189730821908930193149227585401994500420458790441020816763292738843387005020852880984636701603262648541089636233179128845319528248919453778553759427574773721039288643374673044844408230134631819414834160835577149376830235339523603545917273163116525990767885567052986230538634151311126316160100537630463672018222673944616346660306765954257359436207978243756356676011737581983656988826397947337092336839321083707711028863131195392305492727394404674559377438561103868875354681761683247480543587918158640209714271465263081534824495784725733976629010607084172045502859549519742445026728121794262792679497292666581535570045205079778222700357767067520249567254617554244263660712556302794220495183173886538425786165096730535288282959808095129025067836957059120936779283842614243437523672487240832711172751829562760212505173477170194564926134515694458378291794692132652298556096937586578653067027236684187867227514989662803681628932898617442005934379731227528787693646531698540021319305957677563086384303395845783072324663676274905591475817969151629123785056458333497988255791740984174546241297578673714244902649502670294632580609290867800408905572017697389052581004305281272428922186988029638866632494455054783827731672299392624402244785956621190494375012362629928306506255405796136074410700602164303712293688045823616553835651787123491238167806650078280689876530908510963846695375417995869564524209786875968422082994018936730753455397453661749218971453603318774821452991020659258730920435934067566171039289635932352901842804913551416688848517143223807473607170318677648683513246992614722412471557730478892035533172220646204232866953412971629142183500681214147015209521636650627857750439152714333013351711184991535162918588617113872488933490769294291295646825746421994825710953205210928209061791427667980616455261045440124029252572124913580013232317606009600268336273474213471525582126490195148112062509919648219358158623233321714170905102738699640090612289360362935490675820431707257773023248045919058430320498325107307216121458211530480411816151149366419097756376706745888081266423278148248076455132448196944643411936165519576687672301880428606955894173275657243373881868868847432512109541093030304180366228341804821443059616250012500645256363548471537415434763188303682065806879594728259602158438409799771912381461563668384445259066778052305157954581792781736959289419185373709068055730452587406165659501996892128859371601405963658512315942246101512452579395208089352393191091308213543139213104707605145477766128070702318496425370384987705115055324030739941118915065898007107378650850846891108445223011701887421635267200564889980849928087396177365945623492728898303868508543059221321574100127738122009150850625356395043011664716068892732657019348997334805721902602464836427399397935951726257977555570972607281236766647542193487500125400266923076547194108569726904897307043665941500720942212335138100256839588096198461128643902122914423367312955739261072011564372631762817072475697245730675750081822040552387375911767551181686216907552635745914306337444751888294123395865874558223030403957290399651283039031100915226054402641997068579715843776506717001918282789891138510920415502678354377270610344591750788419335202322368222612158236905569401749975589831485098116157841193976844522101265433325454684187308938221008093416818051624323956081093413509344473907013713640804111874939555901510050497495514004226102638311928983761788816872662855534156669347467208877018323890247049724079641864595155810607046950536331576258057005145006996813120022711861520875159454036445603972718375110373823414908845395755842057959968276604440305359466920946276214189871092685414382074693088372624841100641757786070941505377698949064781601407002664844872235573542217220441086998653176064380323269889339163991904856992475603257234556383183548369149065693014950661351299010378054719064254077088775638010531031740335158775435623834261962437573783062185714002832307220451540554808309780400139140827676009823808675881567578808419923810052554452120255128587212515016019613416342078155622512199700532827381620152158368340448753376532923001934458859248991376309722543721480694573593175693028019227383427951371589645009685633934448022767238815231133571837310667572981387279270079894639628166987975693162136042901652341503581359565994857722640235597351446657979442606427830184307865411591097515058530759431851809825329534697911986947922185420599599012203121733476433952430048824535976573177079504907973736244615386993809774809344198686025341484691098734345887311379561365196805603231759628735431969085669831995501903124977908692641197853581890999447171181316694534653247079786730785810145614692508579089536180519672976031946345618229800538190237952625579043890099882280594726534568511523145972409687728679646652404066654224375671463157395043585087069492230420176182462019574315165028453611095837746541525744100834786697693087168432532107826161718270870190550175319620815555376905040307498049997222637996166657135322201521951788551718921932723717742316429225755422379596165428232334571119642852531736431966044709955684368634183840753497233308625048598554119314217420964540222676420281236762456668973792750815658011797289390359765152187411759067073486253538224977686226190596545180757984868602734961755551009121483073574272945194158744607608931418436643029496914476116566259514544253774762083919286501571172663912326910501502873666095343904602468647049384636916574808211508434604124664134738213557691726371993938871832602743717175016984937711465105870113969317373884246931897118287633280472579500772029733727762995216346300835761586795376536036568623606504879145155228326871137777190257607828304216234479312270900620902986407382388853665672950226839818545804443277958782225901800186163536409210993283964247920487431631692668885586351435267811860682092291347327841274272967954807629239326502298800652223003656707200104193936351026757398572706552540961433072566942512515584781834333119117597183363996533316824243695080439992052437957479701657085581571762658846433041816620381836257653366130760344175212310240607560079102683506587977879932667630496463804503250829183892127252961274730227920201261802018243785299631808667731449396778221752998824875959734396243104925762566087680181330119302392082349204907122670022162571910745197732924686262747789456697621243378708079084981445514058973115101171410920273408328999993220893197203383061886691638958439833830424322288824857527722487800387003185735485441882255941595606130095622246183053384853367801176127485494854296984975055902623147400494616906494231500814082909479140538727351840493816307051499842668714192232018888177103322332038259919786844716849347317913497872719587502140863458905965332644815344636248806281890726469291711888004613392635662785086006469756775835861404941361672407037408021767432813148149477715576962676690392966093053606134631699635056207996111986502472203020227488843187667810704799254276365018854810442655618796614209717485338997832176020513990419876142182345888669139532474335212831657766999970738609936658219612896116496141949392700000150224391130888118641733425548225923670307698152921687780306121760363148965932531550985003441933399355286332814918422229496637899945723092203861383220303722578423742578288806594440243948450790232698504507790736352730974975033929541262961841294113433881310744750320061954731983959849990092716826540565562835009923119656260970035459335178132875403308320712344200229160047763399800600438169889544176931177309291079827980471602060306453664495105299197652459072168336178383469075012388076421243954433834994321251853693498012289900068567228739114359508671894110700327454004071096173237920237633089053937272218974366646079618443666690484380711194929650165460041647841993244489610454463347306298055901985355792732214501009384548941633829671873157483595120771386929504106809283753395907084241933008154119425338641496209705865063615963104542209920637125191994992971194606344697414301992584829653790631106076821031483042329756808701789265901705786437658591729778347161108941584072307756075148810861617521043545586435671632291835395722279333513647680422431988846577706892196827787574511288875573191959588460248140981498148952059779592802172121818245798902936181244462136201694738053205897732540866965553703774820941268959513195915133337908453053070910690310335998837261659121196898496621949785841013247560962703171330635380613383043857817075119679711475068259702015280143606378159376706581394603214188448385331366405034620664106609841084113690759072994275812256460028042773908081288411954516396411197627949472853602378345756028796909538850095249652369192502156315794028521926327484576087667222653376039441512612886761445448313678207434963682630241399493658992602598620811526673940844929557263868830777767837782202783923045853755849056218339649303672752186812639488134733411376329203378933035176290868663424659005519328142331668472682344580017152747064100792953486192345004695925165071790558204561242043913549210510042765954678244919256598088977955870956220414023429032312646598346568864014863792262184096547539958346703016080898556573740041126428340260678464707606315202687307829650634507257054069278439816281391778353634165875237581706554920833899828523619495946846017336547562174414266863896252900357868495681449259731656116221283878188669766754057715788947833098303972341657326457979145644213206503201548056907628003788988867672780882181736702695429769210095277008436569786678474057188514844977107186489751360666661690499530229211835131932815425158332157363716421179442299762199071575945093578649563399481441178223887847446609159137852583903893352101152397063456848986081951276314571333143963172029406093468264173907043341281453771853339830536973474178645678442488763573284688705605801102035610388551272208741838649356132795678137620630414040690082668852543071948451315991467692399233131074203361060304655143560898934747432891599600295597791282082224474543316186679499259651028198220392560063587688395919550803076167160181627605408331467505276573053429123328274960415636269395359933884208549796678675559481805487391376055609301759291117595121563206637786390880331140227877278547322462520162531254220815190598033948644558335106351925943259371319392530381522789564958749559347842607117634546163355685790261586241406268386968197373402894079174541976173760897704302044445016650704245553412108766109888440781292258474608468910530636623476502232869575215031798010900104906586813147056458701854433734963240970922980080849795363242554910673484617875340464797994445870911803645811892304079556023351784054313094144785902994467985548139884547806398208393849404615327062096502323965020885902188909305703245758419320810716231036021643335792876624888670042136533279275175133143197473639690473534330547611053411568281349673062458510849367413245365644767218729989840427650479430430819471196473214314432112439981966885739315518694620985453497706187663034700728775763249776257570630159747232548223074739529624457374182607378356658125685438385936444526315737643811241110168929039621695918088098766512614212390162634848128999590820096266131251151882821243686329564227066543666760642059033817997943572569688913677693128016491653844354928926535621197849842661162837136434199165612687038474979050052374091417213811320801069143692453381621093456878693790863181841999167580910047177448430241231853034638886649125696209379877556050278949816604737578183870339037596398827231461099890370889264937795462831760651750698549786352482649770816623980817377156156625648763428122301113330038567184902795813695903620848870410577401560146386545548986191715467683660466861013544475869496837208140160469955962983613579770282391243246596997941676617253202620772923870981368491133326832603230213795930529248055008989610030819450920758199729779772063993551087922527152121812405370659258735404520537822613656713020341030104270173952999406520423548382765659750237898138388931522939545065576222224943147811493090076144838942775640281057512916990374910351310314551815898761180553075238392164616667663159803255902901670649912096324447423821572487515248307077989143809864657416094389338032139557834827878010753984576149826053067216249693542474026195111239155121446029478809787663456199090743863984729517016615134453454141187711137198276380535656864891183775906103626257405153512681822679128197668352624344596908506882500619367545052867291401803787469887635845482245793791523111930254033065838281038942782697259716633070411895827480426700834175317147673661388507548905272782706963120311574709923470748952275987232142023226178923389564813549603033158687510658673509669645367570844017414636763102626010746238925824393576562029470797188121772779680725314546286792263873407293417277823634774039616533523089866041890522723418631316810090389661775637455884240239605021838167414349971201109753256220442378231492475122422943652492440278117739389338662528548189120052447161162468241432366190764065290577605491587905053791299688431814757305312327940039172560017741978411782423654453392971654345947043077569602630531667922376677136975468316857634638834195723948657117193760901337270899413674455898681956611250500925385641439995447549666155060550104017707861164209013697316071930765971460878029284449281535563990821873204247624580585146753620931194562538702231407681540280442998407456810780338702643043038966244724644073078719427420617812437162195244049086792540758337659244941461800838521740413385146362596191326496536527599660816526867228236983055858680163087381591288778983437258909352226473765730240151204657539720934339313274326309136979622923612216067995369994879987412113770043373953100354746216851165680154261162114595173468294966030073976950504785506563020457835860250255359391384161028848194854437615131658187998352438356418046027416505529862282458623261628077357386007066508172419643233170964436545220653160402646196433568642334346869823029807451555512363855050447897096129279975556178338896602119874766334094020656356996634236427685329028444463179941641489492066250740110245718103227324764602273597352487772375774566764673180956739233516228682861114880832375456147271088854039384063104789276715715292886146118861878515692274294414133578788365748366524377110530743001660451295021903729265253464074388152262913386701674435022093067144669317672671717745444246639652714408800114377218676493257689603968225538819270864109876384243592821596383561228783052222760222177439301128526379762039057439546791209903215570501428116668111719585201964108055421115975455492245539694741866248143729377627451635175922949019071130287744344702468598964196687410259737771338494225631292316918104714103854009460155876535690342939041462585267556885324189922272088239851777634383315887476712372295236785958231506211052860492394361075411215328841341649286572022743362301523559290564721294354689502722095261283786618959157097460963589077987752888415210510052675302650622358130070479273752307866495260928704709961964672301164771499561610829053357942098856680487023623939079608815684759813710924618173389998196918934714980128640988338455866770697692733418256299430527437811793796553462638563662715692752340053539950461425691730389596018192145767703862541691808496966724690437067480879050076717861020174740625326854871272501203022490077731858132204012140754263241176848441623489165543235760484948372670114753942191885534378551400872405720088812436316751958577631477454294850552759248153396917231926653919189443301381434080267744928146861214060162396438284415819872153108453935841546035013240847697936943820982571731753872815196031391124131652895955289827734480176907207091489606758330415646899742378561374178159689224715180468763930118623960809551614669676531877768930061412992717556178572190337982527835960110074806639415307996592079836833734579748275826805573055684812906655744038230975825880498385241592303399296308670195689151085212740099303978845647585523949064767270955219113628850735296912664109099629983765472222283936282708856162039623701297842279404320627159001258105947237755671022632029733252216212938688071953945482982948351306251315255260779841080496362179401925446759810264719648893305393549251751862808331886632670521094123961367269993116912768765601777274762631167523627277799154534055982782281104108472112805915647429658050023353440304652042705833212561424330525063684378644630730597075290109090694197370879266380616742114874409336852431971282494419760990330062510000697860015453067286303221985113832511615944428489793018870372262756854987793356717945949929711306080459236886142821345446733635914834145726499473975446897274719267789868594640122564868191119135844508488488926020562708142562735670923969714525597293544132978078422488129721257796015252149870966289127517056961287370484962301544760350042335369082095189362691984592180729201578064984990463266160355813799281340900129041252704935193022371732025933957863833165228384061078646513803556166968004783259466269701733318280603400121868998690317432628201960749481429890834994884207815459047565862962287323597417348725921390412208471644475215168434891164737806875728393784294127019268222842616565511248150504140231467742612301736185730115676076027830325720662540844977490570342920537964898520942009648730055692632799940233080581382424403722545492812439819918686046344909018950291597590702934519170846908550327212375056894472082661982551214786044785929017139557277927287744622189939904311265385920379321542263582110074195291962726121080114033843172540942529852087434001604174431942748725399228067905778601658751782311742264116529775680315825417732838730552815836098557032370573532981322282725771127239195369485639509723545792453319206147480098208053890573854383441309883128750257478873083459673472080736915550196889092191258178343126222738729149896940114189953637319210759321334088246812563619526628558335851122323364676886066829478835940677254142845510500782907206853463231728995203960577870368795457734230784191068834883798164754214503995333587310090610629814289725913468994896640991161434517274394481085208715757235216953632478599984770219225304340602597902738680360871262725445140922380846805671162605168245416050639829122924182967413923048305585306646339346157378889355312765447702995497586971740183444504227863023934481051173286947986587116766813249525549557169624123898281637407459369441294322968641568572734543962874628558214716561033449372142200268030029427792795094068737797610953472474816956868596130060779499924169202582180619271050865601300135366189386021210605904469397459562872583544852983584481210855476960942736129903282099582805949779164212531050457356105288558379108618089740445917070257541549811513933287754695583011873568770003812651922136676621139732952215158844659109949274736270433010103620450957146668785351043031967961548494801123638877984806801467517928044554668133420650297628424316621973232443391176016468388957708055985127496340356567668098831682748860313643182588319471195104727393226823755156069946224797563245458406333200101307519079594200497625618035341952323282564898530425311550992766559016410898245654179077858781500013581535327469323522040397462358763595045855322097550662164888731205110849318206666027055461650890751090380566949335678997460918220719130395436778918653030936298869839816314024013462494110213711186814582945637481326096639587232896291663931018710680948244651787777439721697870647204345212332142439263216209569556506134210439157192982253820358531607664819050720991105691965986335167694699531209886000807084555408907291669079329792263409649590511137695159778065459264972554240967481872659884329032747659846502057456140128963304341947347876138373425764051476278405148902602360728282023138770362067981207670735333251651908446797829328864945338786064571711411060697973251042869640773244647861403316295558551254884089653862537140438068737681211674589483836823202825935275417422370860317134465279631809894525261240485835107041503771178946385817957984396545066371408009628120627937395313971176298372412386753145503036152567689045519607094639647995723424897151766192778175004158835996808761248218276879068444748477498599097876237920748413856315933847713155061392889051373683469950113842454339435136046245965955940947465743232372110251226654555617372635096416705579399698389239356500002217169761636957371253915358231579334367611296974101258262053478535983373692747951452220959022835823257512541989397974652253541251069031176767224753978387604251441672551942392170694655559927184515275534969067528777303060767705913852262724082835877928145618845251455395034726321886879395970487108474826315393604458034344439124666318403498965753168989858620395107053274179277674777552734769619794680449556275208101585248783248477279074031665749065436463018837390955090232653174876026493176844755759950913529241447516981922555124999571534048048994693093923021978428239537694784244541829261943655489997475411640324307042700042068647386505211005486198326037368603507614601829628168999692682765904582897385554257498232282833131162172221767592313255882849045058685646728224246425789617228504886255799311706859630156588357251452035660926251538516705578002608062977715870663147338959203207129171861520016845126026195141731647509374428442730220612708000427896947397322052448596495479408166456784080976706224564979325630225131582029998762249873110835115994817248823162677005936554868114951025645099841514096671611881019347580705313887247797028606085453174556549435231848227909029105655193386861517898768622071743962163076556380391928373590034017060405788229759485647484926746194632374685397068402396554914122657961001249204230422911919280609778988933828666645138038655616418774276458712343882946102010742212711039297647749298919722445061904408234296757495404463793071435392697867089649649116288064064907070810308862827674273966586247733520973013876783603111293912357755368545828532762707993465778108315386911366419177575654660347762180514073593580767281687133551820284845475239122494044975372591052795232643734210316904670454191793220208925261437771887579931913701964974473760315322224503686936962561462948516887286541105776155157643525942899075324894885813622270156639753566487771099703813187470683418007387490976596014198892990063679666198011309671081645812747292033284905337085882398104151695485693105103935222546222238305359937011398756663292600750844687293550479487458482398578494494994254862952671599145642568978831774646050620797028628912213812307129215611786488983184707308173651525170921680721206917292476082923145115671314032706941977943241520741787537924622611856879859399294438787971164629690998025787996768415098385704559723219918511211064959309369871969113447107631377928870445135330095102492239909052136454444612336566816912831410038811947421272325742785280120682912292943283521539672073232205466349484559440646465605924347750511100698668499155224029945472456617566635127985703167815819872657889859629899444067839409190906439768331676294888706790006540559814292675095252668126260493293818986569201404678815599392764682663502569138210517412867549838709263161611487684707273834061197999718453809935481327380680627950241366349482570436639555820378643700566189109797780513666990690427453341860722364112621943007390549701755211372497579893552894072508115220851379654154057335097333978364239363556307584572732715249542653803670909117684613976435158526838518116046953233861155786104893661398404147227131035628001993725947215955334093812472113829664337206406502435363874466133220424115187784268042433510595026980026240640963099678329369180478659747066385414552648786399085648251436257127932435098247973433574997976187201315699222443229643863739941240941257572863900601787906765998593320821519093284390070883613517563246944553143618752798128312741897613005984267220121988363539104703107154896066403660263211620892665722970673458832260749990526542526948560544562364210524845023055281628924345376483687683841016814545742076635250247416577066640387724859296937563272715957547630237157318094770735560240283452980793880442671037712358799357636279287000071247908053928834930843995995480403910927625490895977495875900488345323079638816186548426401450443994643372732120902858386965924591383175728910942413890725592291157935511460760793317818748673473730092962036814975384865796268124114020893762822404032846803808478911133698375587401676153664892540442893784211332353738615664319273771027143349388022525210791471461130276333736501236772800844601079527026500057382829412897173357290469674663194851507922525361790408316133749494097464489701380364329895910675596718133062260910746399969282291929205352549872057074132236344453947672384376466186203983461926562599032966792017326192389246520293351242432802103073065037589789245906081869022467699936029958313353118427814903371251626013783217079996622307055930066187337708756953073306799760917719901587896985936271842234916856557769919593140238117928184969726895255286226567650324856193836147502626415114789279987824191303286274442815889504013098716902431266904977325879393558859279811619207764680997464248427357250461095976801074289573889393883194257542045456353680548509500507990260145178629262906766446964488184664797451560568900335566162172950363627367537356895414631870090007903397980732089864571560258777524180986176708465387604193270440353012942238779001848944166025523992831348842369386106630415438189761363711361046314143042417592139974886704297909928902047959841847440726999226200656879834152166506648632341813401295225446021942864908742460378260050529942643637891148065890310134129679188112421258539451456718364984466597255006011998739128680921272812468385967831042122165670638722701493669812659780816694331705421969413770605710769867732363817348912750701923482314821757771939675959128408496659167708800761411178051814010311330296662153154415329488225844102668271829672144662704510324160009398779421716263411352153541062204545102693461436823398519514987540299589901392819256053478360489804330711701412522045078333395228534666969449753161461762133288660880517126755252403368290497750132542252602669462694613638125791022974509257625199631844806331569797737403743080419468547045597381190888374295384108649182001176910876416467243782592546162998183986529044138300584778959212669460914190711553738795783711539429787920486551297114291441304736854452606558902212012026528084178021706566494623028939034974183203629379744504346199327977033082958561713564016824915013014105070404719559642121836214664773167143329151206560393703958154790601715609674440377798121067589922802364535254943212328233490496939512833896136738171971111060099393725154533138387420798621395312677519349909051568369861109325506395824291991190071027657618562283107752706156019568034156529947361909388332315422654003935264247413395351603526353338187078920294169199209692847186972590990680611749018533678490519816741869415710130795148102182203060639646918501677350129898390874825202486000391328618817960872474334863414194129531603389301099443959860490953026137368374397257114890549379619293478344063040947742647643669275280653727222474877211215137271997952087812747339002108251162268082449418170235988541836894949898859763798778167174688443155715661269241528802570421331876585879586401368810305204864010219729173108812810776811686888903141328814919249688780356666969984726234637732635361418917112414195280733661664550764167236458506799412133759899805996398310102480963541819426146007618027108392087235219789154477293657731071354823535779152999286074668773171901930316415826796791240544718903847956238786268045264199493114963771286553394521746959069439415986691805602637292312257258834763086225632937683615463833805849857387156020747397333622520352657210519217165914714070437749382557306138969692069966628833067829943879647059260243072139138354765516862980042777025731101748391647521152958024215754379972183338857475205598595800575313489233210164384595736157926984965620507540717949773745222228307855909689241759518045141521265244423324207414068418875715055394554938595735238289204261413243008868461289692948934196297307556193585672968140646991838424923862561610611710434584571873768330388097456523608355223272899281408121272129987306029658063798083713841000301181642615737049933085126818677774676732650723892354877766741995804313235929469413389494508882920468489411622387285612227266767802148290476667402622907833614969805236681225011000292486264426290309498776175512265696909874959610783557571547921522793626447771892463725942226274510632943910303048942480942417169363140266617698239874788988869775047413027205264387223503150343356029799265392262029214968533106995176360561144844337916283835100106131333238638676271544426076416083018455142207263173249735251883304142424360825574511102778398332965117739206678166541284055721881332307633188814236214154758435996040847531249108505296849646284902521264643582827830600439878442002044142943423668441303951307252502271314370097437832810641261838941642683680281125414809987368351355649821503990142877572730980717299853513162329076966746172679240359766507542966907037954584809153441011589560509910896188293504605384367920011087161850649477912433450995989615470878196570503078524144135659300531949314203270751559721657684734634619639218169514883425221451937772623240691100507082414307219243475373336383707621283526240128595296470574519127526194478926453662179046674512261683692709572644664343946771421463434631776697040744747349316569192926447862072423107355050508558591454680013419241472093316508647269930071590992940181872013440095823387864475359032104992747896617663505732060132388044050344747200658551159592238033811900798529718860232745152681120088165971553819545768928078804562400053327065069157757536255564607304398406638456289955284616043245080416333723635012053471958525575914391034514777627265757866236351003847447446633884391546572675471812169905724226931677741611660098369671882650153833250079910677128302820826162514561035740895188094718943288250572424995354651156484081460121719707399768051240266835326656192856579780051387514271972729541138677361759510202596614772408961163708049120975941591655618973737299718614445289031544731873988283477323635592819460514936443616721577295152000606146808136655105088187842064681016098528027838195442235065187482026742306548819917027531226161994320389332486685349983169240621803498461848448993626930505345312131070877552077584352358697493523256980361409664644238704791859905530679164588994801139220337408099116981899104220905852812985577563781878132483118787032669403727367750259421801937055074621222495351095089184134448563347785695262414177860644519276819891506973385593574167630246404244635714546987648175868343539860440036570180856748014549746850108742411434386475706732322047358306198570241363823244493375670409957030542927785890668723875221844773356669603191903794771430326678426575052086408125432939081835640415800002383123941852600430017342749972347006689468585934858296710459443048266369779006643035281196980256517146237785034411820552220234751420640703874494261261288171378334756300301827582166020501472377635515993451748066814705977409217347243489953508331909704172337288716001462320475570488413232322233808753434723452690876104486737756110447370982312464038531267961196607523186631120010665587459841647450880436480773790472792668092684926490837523114514516424542269731558227130238975503609102437859202195747228364491007833888191423917089595404323428032002718327009347760383565896750794940644821046764335936827186069068120847237270893686734694982769681262416313663124048654581799929392152591874486887194280262077431482167912054422654021934044519801098996078143989165345758233071842671387829582007086926388454729920680622264805549927951301577549686924480621209722139118642234856360936634356673986321608866346596115614359943607036665219581572030468854646633241799206523579058724154280927008695254500634308131806005340183239469471671488231970068489390042954271562227452794302581228921901523477942963681549658264159860441509654350524883201154610830858424010157447177525478797656925489213320916870867157308278323203713997608125960279658885908286896881073623363920156109367467001957670372993921141344335408033882575293490881827542956532606049574678658378838710549791277158981759111754617175406040963466457618087173137032494849991661253869323182447781135516116758276652750188257576275916318866671750505178780485101657803266754197395006291680900515463406070505531559882244464809198397211245529088788740073928488785858740727953662446968568607445787979815232457886010814413694044021261921577663854268498500353472744467304673385501316259210695787049097160009046312602587353914972420500521384165052962224515465398689098017168497147751867901291269396997224866549957776221857276814289441018126346900912538690529860810094447974548026113814258605945849856087246431930515187382253392328947425605908939463543449981990346454832981582053775252765233814679473994789982772061712959015675731262073373902601375702461804321452540456139396041075236603923108367905295214721393744627510190626667386124920001276038096257913317343722830021601451706109453562545623363447667917085913260529661942179937272432122983409599024947515595456281497643293157990412272974466388174214053775519640556498102495255029887311159533110926837032040754177642899275528938878986508894547979278402124105019322359782385315018103519894005238076873860546964389215581382536475082718478857636949608617781139993288482137643300521260515901659979101922568155300376854364823896530988026936166060480117752296065146072142419210986685451346771202147661704694881719166949465141976155262211733825113155807410395413247647845203822091351539522698940869339374045668495528153124366694167969237697319626045807184844307299875104931398296141108788417667948290915236962836920583679441612634317127037113738071074476635776947765165698171635305874653627958852169895357655031886288054306118376310127939757315479272965093655186915407747447922944124238058197148470509687873756892657621941502806039293305159936122300805458904042714673670238466263258232559138066627882764019611954440948319928068708452098731603031002897925113814454697806727921240745001085161647892192008336482481398826002424972810103741465304647342904416185498374329777771100795077147764979075771946932879281126473015147824939073804942741522554374986057919049289150361034386026012044561162143767213765149833210945539938465842513646399412211664668588914248234091551595352691734113033475132676142071976327073364993805612388416643476624584205986457684535643462493273865682278993972490115171194347885006113170079600757556764016493272743851436245893724308759908136700447615585006765826058846015183526419818106707183527069782446361496230021221869180908728168084757130469397016818918982739123594417320090713573554993117863003141459057779495910099375194863670506396207335594844839302198695713638413972904124242135488711611620131582283128500182712225859057325051127990206144623061372279736979370017392329719406262196470909232222775597001004058479041377573423501702520061515072952633960984585390464850788758306078892177150914972675746094229336005393982684835969967870445768536881258323738292388911238739191271331713259934834802875852345346628452606633669068202113691076383715340077554637762704550340209000143891950773394920922773712512480303344484696061200945710049174267561660001886905670861860929764749163959224380224912212095506778284270911141613808725319059693032716290627266473595933553226332111887641082867247777292235071775835131235906758605991737395428043434510499537649710290683047977744053753057696970950927824905782029936134327257100549579461728451088309440767236284140898037210907883179967215361692891683288424620874401156914295219913634561429037452244128991204328788421737880144234704641715115233949757515648253104489393049422396927824583238635927715098377519233356496288083715648334854703850372070818102281325893012286099199792153086932503626823799403164374622654037132773941566851341004577390786469578022789012601446407871096511845148209774623085178260818408031617390893511640360632291094621841250058693735869071222533563704961268134779163977058782190009837086654444157075485512321472822597568383816565599421406718620671829242464749346597515106129663798406276436282478640455990405983458948244020720023238028529244859523122665656897650198753367268562885885126593284800636600274857696764346080061462115399346420370637880630746096863489885456896819562606809394816106883990999986541684431155933237897498194249575061210223039949455127307281293067325872523719656082964069509889519703942913353090678776355743125945766935740724927409833498896970870873369585993987451368931426345484950427906829887715399528746707896725336415952035127602838153144628255541365798358717222457361795283034526050883444586199806771663921910222786644969793969262918746012759669849080041655036882849430638829954775799878705846155878276745143779303886881873726581762340273608900138119805651578995947082490794510943791509030602673019205567358206506321692023603782798421744432682587559090542496357516092580606605624745817351891656934331273461076174003553096205966726216996367382514986172788002109388491185350096055974659232433184981684588426721673122210203309929092482680492077211458337610137833063374758188218866798290847402882140668606337168286442298229234923679245591309111308117110653166599673373920602435323206894164591384347127373172678353256307576864741364562663140203397518140920715437555322202979584831154863913438216776683318271616506260326961666696900486396919136792639870625621624197233114353443547486000225672156488382463674091903027154127397322086616049904578015347032942255221847778164297031400896936436738906745347166459818121349928820632658887973774759308606268958230659815623845180045488589496124793840297260160258721173466696460898522978381523556302145976534199121703822320203372262910409276959568246804748930664916268584819952871976224173968723929148679029184045296805905945085684644620909042467162627253973066015452576705832978532191741488806589736732682896803262862748662491135232136793677502410466672775969360257516898005311776600533620041023938772971979605781262913170037935070002130315107502360704115392704987902930894220024791568259743809961160767857949892715643457019479277322949890810245702618158942007831991096834426247723522776315725903467491538710643714251708709068445693865811487000580041162512116161937356333600851038010300847759053751436577141443122657662972212959111786077115090780601008261156042947060435735186339593998236634906191638178517404626809758207553107490952652978983541088926916706864993724506377441557457977731197983949433520562002051343125514845685155420518069617916923445969255147835045838405201750046043007065102911231861847762145580840037177944666936813968253805367481923687624680369525262769228339056185165111611972651021875272409965689225138556991501951301989635253017711932879388565296491257484534821279672700746926923385611908105562657953401627902091310163505361788752379539871436072739257391021147716145756619643924070650578987549173863292751060116475638134082001938904066781902766528081273206864693383863421671310930401337373110682338646895734242732057877031144046759875597203644378172999286425123347892024615766254083932087871320713705060305522778871977018501582593844816134472089060149909699764354754793816750461298632605520889416704781686281599361474940815068703067773623823994815892102125533090687358934995097214424032425450742826101807616177965841034427000366712443323882399181828879664757374670892321706634932712411182121700897422193162374668488124036935544803815932786555464666517333527614279513956037834500876092970800261657494576535418963305074387502577970754092410254866799541706455979064904620261510463414168258778897763843276737936778582146625812793243474937988979911408828652256273675093803986042162312221061538106167817543724739352213753619686611023949166816969242964752165170612538808939840511611177308030955395827062913438362579748828259047104685484198027007100955299122852208837170548685359123305425163976039077758013380934252333723989234840239731586497519855283564060817733820096058605175996335749311478424589887781404084826755822966183855130731730332667606791914007853380188700586949243887255580730898175215955946903728627104463721877799968287982996796722899579556356898172682265939544937718117603039782672690257272144226114096907554554415259631459578035460800207085339068616026334763784031668447023431142770128864864710158285347764384010711883046095436494075064982501337630022827042771102442306120127856530674483651256454774443078564008155720935787276629371221500231475928796017703588157394995206398141226208713878089781292071595482238187276689125511975673478111513147556752924414847795386800045205686664333978378351599248588244458522845411888007615045318047640290561295019864202172829915832073062198192876868023439627145591295756535688916342685847399520098904677412868926134067040614393896754036151011330235651829234836637777497881212654106835960508300086004774244898018858819695443432033723442460549153641389014327238571767165622149797104704375913883168696377522032090372818601395710170086802820458063756498157412220440167974067945317241453620171067100421902128028559268843641260672918857339735201257469663307335579389065811212394599851136876719358764627476976367755141420826328512012115232857479531691418489753766093662819188876357154777655165863668448306915619324573046785817192843980519171089925814285338308099651080692522125358971266222093583595462812568933908426374755240338890192868494278234186355683853179314544391709488830188543048519677334423964464382644550129251512199909366816478877494130289946495253238533041375960599129614635630397279641574219225651450629220728287732655489279506448447139782960679616481578417829740232002488789593064261444569959010282550009629550160215859073569295939244684686305097403722026435489996005868642588989229736301789316984705670378251976392623565999517722151495223805414126428996593935772351185676366568020442253884468638574939577834825413725947658938794013186652416215523408776518201754528278687320591808311753678793355743284826155784913821688736255037173435072362675629754199441099552561287135521482524103693256230877830202777169041619943761239304609632647404896247691179770811593078151241807438458781504871401416756759053717020721741917322552150957234697874841733886228304558831394850225112166154530496938983835317439351540969322005062226550189507136688234585715308069224328597769055175138698654891414174103669294502156380696188499703011061127352759090821669231253323337165719529035255399072907322134637651469175845250484823275181598417249650494783324504637411698004755320269917731226618533329958759394142459294434657237049589368990556056467309909245845937003207356778880120943940124709325115502926791101865069564200596800667617015300861865470760968459917418864098915429609926699156673607281083788381822331713239077740442321064507299029212029460665430783758186003538529975324594198208847173599946025731227519933643771637795071141033221062152242736766351672304509336335064411384010691005530700559175310985197506557765690809841261249420891813838349517275241288593922367812827472905787637746722015248934935505803614136743917889168292789644219217468276531089964801491107642270519197752212367030388177720185660922921791356613864575691779314405350830142023217470751679874157965883656608596862981085355040345209290800423309852984029881578904179035691364256857224436504022577765406660703072496917370856369787373169934137776822757933244250247951584980454213000082122243034282709506369159970139186714523153479998736814462430695709658568443180132265502327574078578814919302943561831742824362525354436105737593818050946683227723398220665425938201593315240018943605006742542560656969848658640886503870845839854914905591639450881871395816910496727662945310155296558481326014618965590160036127897250586655043464806537647979160620358002804773016931375253975607868263132787368340308545569998037072855766713387773085831776501335194407421744304418511267893262205225780183463512934661240443508131751219637017241913974191746776330437787730152961660092807194171198805851587994308059830779530675519088277836603904341758622551997793730091768350104026672862803772274497092707502607167966656217455630269016489256660372479742689732917445122866504346400754133143397606203675278067760649201885164075080867382623628033072074781665171331404505070502518207071673245131660068816405027964206946368526569405218736784388280206753536760586074866048533625505035251023492939405304897809626192122354467339737835727590575334569665333089059514988629336490426431874583832882707411643765714106836745767891468409910513495114809169116872717895709282304868756520445065142290829661446513870119998196575773283594238629071868466137606872138344525822907073461297912558503410603234938512163598291410917020431408111152548692621185047945799258858920870954849595700052970676479795918790848815827473969864863769293305857181579021435130671753203850746260374892302022003635597601640922451942555359858833496344842015207998486204858982732786579094666975047717733990116522550613709224877936894578030853606782229109164981170012416209776741815253116877067251496647985216964445219595559051739597946178403755695218284955738424123656940170083105549156425117351710929922096105364380822921032144932655526254329824888556182209506155959856616846541295605211064120738757088107598191798420937573849870327802785838331804240663286789606393984266931529947133679038179332490424406348166911491251400746971430741622327191983926923308226892165311028481131706974416257134798031423618510223970130312079237005943806060363579364318662089526107925237395167641851605525785703837050091746987333425629791524265111352029458017313072698586794747808226326428886420580992202765917930252602799326766297020674336035932455460950337237106378827100226018021036714284531798506808976062011768750060526401786765921739812957860981025707701592343158296728822000009317410958854402966626885284184797178181484112209850704097454324774551073275824307704610630614258703098425338408124284630216550158669363259772730414245782554507852151706391900158001710188009169651180666647568207596435160646742225436048097485505928533454145762792529399856932118190842736052645114087929120741699936950985999577807205606024426857121121647935986117098687769984088405566188368303674549168141921009109981362732770064471634353053613948506261126265536993742575199806505379003789776520955627914597867874084326144691642383700629058896086451964278770999782066509645352318604837186952195868354054004597851056370573271891988788596197285701854057345930582947027945837103724470936426682154493238911712327981940391338963108143296594085550709736247154984011788958732482118132851357766232512973991578396250258344022624710269467340352386018730855274291297354247376184025190154090816549012767428401403480010220320314925136999399797156427212174214184999594337461782018629014844648247034626653305936514828784425911503057837276283440579462808547733451068222429266103763823928917616992467157642113628979785154796594830152905629665867614430559400453626772364331154937659936439654682437210098902133350449370443346404884247943182672630577722843442494463023860583895217674374903386821788443542052817195557609406561213987649988816932009291551909785385382528863502794666165011812019467783310192201862033845215202423463400842660750894548856887490479056334359138242676975105483091650560374673965746976613478558940096581390672749330532126258823005529563661989602762609081393166991972661556313552600865593987796333896860804574173033261927903788137036765061340968954563537392401431179601939088716411434530441828035888822056689977450476141250271683838975947119640001367280593964346732155301815483417550081854361228146462100520794939149540674189085086438339598098964808505383638454059486260307980503383486828075580301595432629605385180028884547507342556816734217914534291666603966363939050281806508717742829532478231692039723050243483539912237369371578994572433549944635555158870373769456968746658606011257731999685656338959030532800215028240438442601088545844228330702666933607405169499779258628932843073782222796785735229740326639669818521795394952851742166181343191827539624924127576698881315953781032406482323558791212877469812712223311195487979748770303055199413331779439946120754278998177193549905248774998593830045764393577016786960924465823580841251871192521082131002056792417808164141800873101643458440336377396245037929638851462950214137064145533237657227328412695282631094336073815551139157467412364740102912843318317355971014962031396971304735930725420939762700129482362352205074370487322908815755737132882797074915621303931032715095732909212131907408236637073152891762782534254879712431445190298287674802475459120952965010660250243484089695400542123940359350230785005564533729383915144775353812196901062614529850192858400175674335365971726971724976805162727815474798993713164784535999174605748067872568681044988981629868886997840548352463843574445499283917465407067859190807454469601270309563146399014063176355909090705973271634902824841144600460491398506660428480039112443098162988213120741475718572939080756525158121013920737580026262905058573978505756523606079540229627901494039138047382027512504679911872775312180886659218289658002662253955168985482700317298775459440103709081661715839881295747384691547818023413727973024665340638407000889109162473307061945085127236041671612027622210861007001443422340217795973436235778601286424059579898005131244420063254699199074255311212200298382054140704311574906730613914603580641521959648116107617312884571059456035719627551875776856624897531478178314399296155195508307453509262842451005566452743399763386921748617307791445038940080103087427911504628843171711118985361068903558546266553072496863973263048124898644185492735037039212554303273114237942616252616119796671990246930335609126217753578595817902186596767459321353950094456453405337398913436951964304800929539967481670841385308727858135430944079365414760944912511065757125330312171272177457953223700558132823898611048001614904414457243221973805868261662919850229928403014323524851937387199375752682223379806036198385629421927948547769321626872712823638517820730706892719567733120286716598642973020088554437669226831706818487843216626634773980051801164507518672924693051659261128603041420507435180990737543215095636202492226579333286021656098503764032418777312637373738578515072156454119675443155939782979002096519175784869012002126260038780778905783576782131789194215753670677796336619121231773052226663999486530704084556046897132819594772511209911788081290001728229401846688008551115085129540169637008128110394913165442397318603196371500454830316973406233568881970223868185794109199344926336999485636110286204195084367783302828311145197094808604091523894622796718229534820605809260777453984157001577822651091842975746218769376609315763700552501798516771590961559627062270005744422548150775122653754992799776262869834113869714769940969746917050132960483415706510193926617774450315028557026107741664135362877766347002290040129013738097349340181291179213848390193703607870646104964383759708686017854270085127535575321025211077510736026143680378179329634964316136879576487367436478331654358587555793135173603890115665722415065354146086944403339821801010153702132672459754270673637627084603467381454878124020948784892705895730361364861265283958647586733953479933692041231272479762445634858350489217544420637095902252909774013286009949119489274462234824381157165043836356697566296169011337710492002968632308654824822158540464105850095983580860092072372443652414461962091763924363528273449536848369789408129884894581607796776946641539103804081716041917464867167415368195368877914224988304719418247696103822980814775338597163886640864016296737708549111492801249221020310057377850216077130517211077874798157653836358720645620240580549325901849796006748273953042934518257478204268102243548984377788397185727404921174680748140649784741313469279010453186722178623038795411223862716326450398225497594923532799954381789901498558803730714219196477693957696184525478746057964941963523838270594759238484174431086520517703541725038547845819074578263064153661483751011209926087216710996456892549355718503478845790477912523212003292250416298289783755644831991089186736331611528678450429663349354650285930113410462719714308245429959563007340284242425477786730220260797996138772826934555126505944996096311776226031655608526650930535861053623868667904496426538179534461227044179361333181834524539456504607549876136599037663362755592622417565526087993271971038361310350641522073994079080022785615822883095112930023230878853972709747152702342103374761458922383988390353881511156290960705862546613371454518151022250454891720905638495530335488680039777662573965508868378901888495057925111870992978574909755931999535223268926671752668867386445482857223709344050781929657425607821428893762935600028497169082839978448115054727383023919362616060850830289794492932183893782469928898765586032174637043768173362377410357979582722032474978347205842633746961423171579210717794478379463977252835399026313060723613492169978974663343119073495130659766362200362448233142657446046848141212390188270271231984920348093073882316543040455650485157633478629320091372859470927019285670166862161832959102506114928556336569573872979150443652925853542502426566026847099684010564006790149981273346969886218354885922478373377008742307231810370119675837778729273623936745079877573380964937672999817024023819495750628950113754107613653737644343686385052508695777298365446444244860875356872347077476152731170500483750480546941447842096083324236841644792685431823587909111450068048877846579011643945376414804087588838485507988474261232902033420519943093805944902195090136926240368293467412067260113951066995432439868924323146553456684118383021426669447376252498317695245980197913785390711907961492190693025637310886763724155314843257175012272609602181057727334950083221451626812579870704274728732297931753738641001126140597915813039469550977391725977900298808533947635171073528561493608104683621474274521125884741877547145113287007462446988650752367505238614571087324031801947065840798050926228126054994359042255945770593482713497747773922681324872634334672395102214362410321015844998115093827750362625115432947700666636445135262544052907875935951619374835399647934166605966527327694016765364965771083272980431238952958024354482278309852772629100402441803278663361164512297365477505867536232169476156708186482670978942608758265896978917638663022210208462987643191674964279349146636419253806443403403951402722805189877367755342774791098203301409622966685093196763485690767851112611658865965401936328295353956576698346442340107382329568641435786129875093734801400421131113126363224744574272050320679762605516250864709254357790543327961116296576641193798534608872471466127900248911078657490763190063562057222727092403647301616896498050644642903750149416106992084783369179978574121476357146784370959639092779330296442393394650353736838984577813977361681148680079861822128701981303863632628712414217450163056631949029217684356620170170934107216407939009796118379977723439354937740655965874228412624827548838421903273439266712566644685464533658784807675423591782804354975995918615766306522725303512339413592515411537881941281184334159222094097739788733127565490324068083487446127063286384804393241632838880989353885531841166150194638379982278309338797402378181322695688830431123201036503455400328610688962429960097018716896166315275917694847947834261715267536631219898772664793819221921367629845703083237200059327779113203912371018958517198236679781322218192991615345992282384419753764177703514208149573246825505678900520828225672777564180088727286161767984358536867239180233055516653699017027058186456770240506364606098735004143139216723757892687225755261271773527444406360653597643407836161167996439957225639982294655324412709414301680931865378133209927225599572042872893365527921137900131406003715233564414386975600609487957195211466469404400425017164667350075296950197048568845147586721816687376401077335550902686920401906983872182651857169360221280727761676254007915475297507618731705231200710336723479912482217132487729025841111701343890796128211177317378415347786331516433935742826812420311493848468531061399435512518806664150699941934307240837559257954289012934059472925596439167049534362470920264201235644161162407424137908513758086330195796631867371705440394900766096164205518293585399777658250606027850821242978571373039514319795701824420434409343963857481451388925197712637625302531261693283877303643721780088342553664124335858986731814593440798692262928491102988066944927284265483467484229435826247438523618976987512932290670843057553790804089886102189267554465522820350025475243447080709856767429351951361021223326064597275208437107746769830521058421828592496574342587170116633111200814412088254824434984952038094017073146173686744316253022052195479105047604906195445642703697184372653454093796481015387879285645917673165131826614686089153855712637849645783787685296903836267377585761471975325612491865861320493178231075435066365498073074731372952231167695433355181391175549217236876477073418475387819520121126288040121092608697728158211146635822416629749073188589721820769645067256549240650878626865356232962653406340236028849918005719653965196814774292827047828089531621436701439029352675141119732647263884669343533281250566726078612654736889119336811563103167094083959419888610968096280041495669574603927606732741401949467636175784159685520036072801763699027789463464134624914388564553757247999323923035309384191921035098280645498152243788375578795286513694152888618841792768817089374790357180409119242294443705310879383059742878642977547165180616759080802343934498927293682081194731890289740196003206598962914706415338422253408196216091679395395768462716023611053008287026390244691917991778159344934563733061617078560971860234681795742818418256831115571475314782010865220293113884896598730216586085884248882634677686111406262548551157539518427769097620340425073196037229955290390332765475868456470196225076572564902302467437167403796120283307690298873181535849977747528924006343794254685092262170383472208156340350441192004034287034163827205449041633839259555438484452981224259976025703943992330833528378084570955392753281899884722722226782560813901173094638593332718412102068638361828916881881889418119033063067068522826747008414600406933134434444950361584076271494685935504006915248777590675470349038541428864221313107224397924247041505859961514533881717606775844570196528017348421519754692405007033140750990679966411559612518165354284722314745527687678082815763178834597941868422865022943014259024908191284909907239876853959397994099768662685768903495302796393694727723886431155396943464020752049138184282571426062656577492779466378858056643814303833802040485115083103529050394065504202831546633907956221551604687371742970990259902237070555926797628493580964730401174091359817222064698032396668303745175416081680525507976999034327985620242920345483920108004637379981123427709492510084814721356830142238117514689187221250135637851867756320158730752623676527142848549680910237547795792972630722993899254786634109158256045786262168415250769429695429809371559887508864366427276475661589188956750857101657099787388858401372820561237559716796652800594472926075255711586681944701934903941992474317334293819276738700498341321332319437168061374541618950310016411426559682897191480235474607083400321677364990116830509143995524222009463250363702889618511657458928370614469975037363483706416894283325229567893919630477267106997903642933927471103442785029341978101694654541050477215056091754491548548807087603041501752039685304558988745088144952474059692244195621540070197179393153350593154041513324310344168371549668226246595032341137012355303866273104771276491318735399636474727925860771427232599560677442747838794101112746718218678887196977706209822918593777814083641246301004075917898948924147075720105437858244012357060358328383269894408252812438537979142291577733987154266129680994585317269282173236994859104762316653874180782984214849566480519375436316654513569340518072460751074365788882036400580010015522607629595409633245185088905969008215839455233753088625480867317727442893014880631548254482018532592702040476641318507721135699620755665909665057314760246810072396758634933579158140980581182583364225687300263727809143212243030881883879331067448031290665717772745871567750156546201952541717457708166632427315760527504548017810565057469769249792385368256351519220199230333390304793499164600125878052024317595561057624437857684248384931454555800002240076439042398362418136806946673739391901712235023433762106918395320866914297042108196534171606142251420015995870422409803521843705472936613275022908223908275692447642612550035039136031661709153348958794892141179426935597519123211480853083432677575419522344622788429244344319827651254255816450529956120206320877967858387254398654956381754582806073226208704904839022863476198451013946310951160120030157534519372083981662052489854251344068617611053092276801266291816978966483990630812189465664934718184254751615998383256365714893018579003287811465945237401757214017521566347939556543261905029285755254782920331511672273685813118788204027028513729175832513869486050244816630050587749868001947553954671912651349524055576217922248432475977625000980421996232087852180239261706028230519238831281305131720749773122995194732367000847941180495937980927121496664108924164856896115670934526256621128226435022230978262898088218492303869998771129032355773908324016783353522190682896379121994900393363367922009859073867969187860043177134337034510730467504480638663569743363826086021190856622920126214588168373350291216779116574984881171470715179547171111371821020361327462575120648151930501042793008954599345372486699281065184742520220318290107205780837492423205018787564506540643929716517735832418626428252535825255972535292294765545087856538372084159310674196961769322577804273622693806861432448224639125081161372871366337967023399394250506565605935472592481966450666961740497773763782189695138656339266437801329222051969396946870485516108754668793475575005340571157663525119416939045439110076752518117780125772257735316444093751804008287358633455583452297307999013941884145317028710381818427702876032991922100894630954525687444646481487738633946200939286316866817504710117071067030262699447586890107032001398164409336151563629065765291503284009281524401579609454275416220295600473897712423837518485436398348844979588268408852744591808524170844924817690338326493206736492829611667411492856183375807585326680210271805308778420809264822431537144593311326150261860261618136572357768257954530207406947270046435498179026535592728613677358842437985382249173716592004559161453192250802709608577054955238027134635647621424659281944691875637280921123521998820668425879613693508050692232495568456763581520778221390200214132564380425118990609676604963744376260361280923086676278747044737184946759071431961193999526191778836701851194632228457416275038628814999372518166446799504571339506916031379403620666037622606160280583734063965292383945848987409007906418710023069043232312421842224306137894092678701515935815939727036746253300429148502521141570327503429036542293809534864725702588019853389197218419721980161786245241571011360709723359427172467667675614683858825381642382500440362342138791731918870440070112222721623917973497501599710492679096171679215468796930954259056359762934575118913688060787062356200026211155937203798940441576230441945481745111430528109209571336492297671779943712638598916440783646725058641702874073504006593525185550920451170418562979686600459140428162682262775356928965531192628737311103218915077374420020201259119652371675055135845725327841549330828281546871963506222000032110972216502425606408016338881949712167667838400445133028806294942715008651641931130346550834359176200311434300378848520948577406582887331126705717556727453856701369475372514098197954593403299773548748793183767633499669821570808964459047615399579526732756460246466935763361911161694569160770378910149704742017074046194554042282144589755861641913460981516725366407400209163324196384486211033497628815368531527049545291393491327510507095704041653254276591467555458957711396288016713329254037845788310968348140625540358408788872586609856540032437583050581802830017726194230519483672293352871143439907484418465652553105897794015342288275587171967400827918103885540359509797699029431875785259489015948089349531625620549810911741051746665186171752150944603503726939584755570489049823124413897847292911625017662179751540931951393858801433069787590606054139892680132005834014094606231945281717042475130816879641246080831435538153997082391051684236376190540756304396281278211344074548510194326967525281846217585425647874851157446126769256129953672582502100027777449508725029466028088667225313071806593610430473702042740784195666171583309844636467775502166734551592706103008815147016951934033318169411633512859319240046930037246997071437324043004411951684264698979982668639874577656695733639516075649188902443999951071376425226041124831668275053528043613905184866855178773064414413530050521425125891146425890437789634468505844361138831624163097673065638127644274772891944704490612602055872491438040665515889841026315792276324197612520329407310423329009752515765324968724053939521347715261839305947194600386556692621517506413040495677875818319463321550438011698352040569541276302923676333421154502640103820407965964999671268719027895038927994610536199019874329544213084402491966915424598133206224841712174095649324032278449754140862023579095197931545654578044010555154446576574570691455456451626176852444938185485890993047594471131628174107121896676032819280054609178228613647922541069271964491759031789442641877375677598851402752707706926810818736286826049331010057622486057025945679020855126024211895360949918428552747208916242117917948770341842201993500153773098655791097273649630262724370194728644826759072262753421795494802919065393209450030813265815500049036869332827130277757715024581949920006463482352405801941817463491803617155172173065053909378278553925659742271196395171271090256797215604245025176214884590337956176508644834810846436601981561249581689057373071204291949178236108252037408487387347971412224905136697473122904814491549842161987042974902975615072595852269477864805001923411588432712817805013481383458549128980609798313330602512354878415717874468234652778257588480397441115145024335274510560198406879818501214668769052085569295244768589528932912404490226161793122433016013711275629322563070031532621470999035048926516028662616307121634007818856227257425640529373873467822202283767733537905260982305879382818539525156435418143251039388654615161507580866665454887941014075253168676804172762125416787556780266652837691109965823113731338978980281547606137645148080046555674258035513692664379543258681954450874209320476500492966716828227046193040905211612121014960801602429550999196940401082836494919510446170831646003367644556815063996999747862196092335242388432996267145587527294845463110792963182733479985632918015944749623011433094771598885051013100133651743629285441300283652936214480227281644405274063441461441955707603152661168720921600970665764526633068276818833374658950989713880838679449320118158377474481268910747949254410619922471189110732369679781036785833346546421898748615530306763162945908165060218180747569593158555486250693579222153727090683427374488813737653696211742056431160701730110184928904739473719944820233227459870911913187704161646333919684322991294185315056686846540214187442605739887627622301983972058521851556110338793882295872622585257494684388482109567826420334134672977011673570280035169948437732403836273729662818558258205117239702934217814268953946735807221123324104518394316677345528876035043593296881899917314731611740178967983355828106372285962767573986987831759699787328902173824081766190537932204968336556056910870620186581359152844293820353016625383950288928743957648726022214367632850755546154446999327473833180097199056329307708495082350311284235041011031822767971956137307995849915516483091482742551835938924398622002255622680828605394512022514094600159460334353060186509368978534143953002730578785919365039166430606266052413365370661477330538696142540250655869792857142898415256096159090326237042524488091473493427116369095866280304361831251589619002494430313246670379827934440884753139233928016980725174195894046915613078098769320720462363138888953835511608951975756072573919402960031380364683287231729500162827729809530692196138780485868111472588705065642892023926818945510328387139367140881792177495620393336859924062685139377485949247087077095820656413454126752083963582806723860565884854076531733797765245372121017357514896249478314441158349344788356400494097925830786511119113620432055338006592729557863888769761391980082727951316218522644544131694526019443942148287209553782834184440132409610224375216354232648128148232786248535809341232271208212964123380537426047408595866028273228771221526181235554295812854435917266324576831058179259779204534577347064024678315187094074288417710542760023228694857601261166924373288464025887036685713241865410744158533053099745511107628932627282462635069314418510200653501261335497761018953238798182777964914249075613419502500765819647930306425531299760434892440498100918329687692387764732859595600118566311044469463813140004649201777151142359279291445485687741729087295274890822443816096940367005175905057271004273385182829497898846062074597091835018504552567676899537887652234085005899338298252511301003779434459029066512313382490256947974553791060689189671576959450742361517959164434700321350150769352232512897193244951944097720947942255764983074614464839401834307047475363366848331820596412740233145547644474423708516185928174499392235564220998747371854634074245135077447692193445612541214894908131716783714377321407607552264624884048055428217436203216883537176588193538317883034535093795463233894698247414239827777043823717681225809994467545337584446696563277742508774377452314006346359799067051570234147316334597155650354134907494610709068670602941158939616006379318684642792862203633761743707606460758694621053294133623592517277445148764476358358014821541831820251184097878561509428400869505541973050790339188658303600250155635711569089921047440646165699604354481548651954448993324876590111922629415246316804750915320074614524057327632569503251461125312560568835222200637752635774848136410699362711715863788693187801082489406947764816575778264726360360845514145882340548918796362277578633527580794836972006025530646430244186938535370922425718948521247248695181713568286314277383397891224736558110930073624811731539154218813550372253394114038485435883401359212329902817899780996084659996186343709151804877994831594601272845056605199181455860793890028547752270502723002025297011517426137255518524994960156080713318186694115941188685180355357680256588684550541158461485721812317435797278489491143039051706994725332414162303517116855036975413783071697199427272476679252985132045675796371570902142263171175975712811558402291660921630728487931511266670974566663129294550669358292675680077397284279795164324885646152837258388774156120903635900061166411950690616619130298323745205950108689445135719345260631625508656197586984697255106016286054509726202084302729662435426612217555507268896359437925406222484278882532359501872269802036496682475551127214819893039569803418984594014039416507841926145523782695334129006786875391853840528011103629049637768598029455902433320669545986106891025907901339988804726713170709617479452124043755963464912065625118758471973023952113079546400333090302742205526291543340143055891076535518517352413658080662239162911467114806959073481474860691974414349523928729317719831959980831637950762420462606901131278763813589910362581549770603577474662333569783885852425438106637300184324253613983134089627954406579484567419624882714831444447239169009562768501864305571708667036975329229277390849610957250712733305767097169101976996364302726755822940555839543306862788510737823462715236655203286396534953765489976993745932559295474287897643001880359778392961146370976818786284313264548490165072866809822914190911114982234120466505129928282682491008643677696643457740819602932139749323908854091718004037835364981559746549798122062707027825891426590274087882524582563999227692845880925962490407186581957205255405242711271685526937496518586085671971842721167884099686702002604498664289511024422519918027062647305371095213653203543338532566852723086440776964141279258288239368462464286623722090130481163075321156552893556432361655226723836920162829512194623537008560452942314965587247195808283812084645876889535240653823518680091115636829685553118429212203765808853615993705421705975610894173239953561267517004127384704878480332163297541929617940705868955637012341220427429243115896895435823791449775956914433327026618785894510181042617284782091022630927401095064026180350545297972647802823993186774731752625455521580659207955904204828194866646374132422131298389895557723182226680283536393661383928360394847787375367080392118502467497608655179067135382245727362616941818401504914852247436028490482315529928558185682181933081500853363902118305641225154426428711081909908027912820330942791566235535617258443427774089724368651264820796221626617207132149610806710438859950674438358304950872404296635085978629398957842693766670647476649142742306206214862100630167864231098843898036062086677917196557236060437282209517113317884886372216388960243586147034161929470404996261082212675365784867041593604173315968671863339130574624744802318711693668503285694456458766334163032503055616385723010972626728065250619948420235522540891917231010360397722936398824451806404343190129238485998619151442649816879955237636766465166892555692404261175020262557035329895581789029535239365891967991388540335736006242567097876999659145305239622740980883750237777776287000237493082512815909024386937676053848909593965398774656154972033641843971124648716357334091204027456896440849620990594930068253696186536155280785113721313620444725879938621627826137524456458436481954948407409853120191585474026254547793566192712577878307713099623285551126527114358764100326970251690139404064373060278403400189010577268031239315456426280629559568922989508572870820332428467666392199245238857932838229378117921604433022035674680131729499470516942082789867151350403181115737750039051754228863218421917788421618973689457976151696154960885105455301501567957684687940345669659575587794507531026401924727761958367234148684703157993691410612775524361100559006950763664308097474128050378705191247858916794541915048506004065401885866669581572595041883094825643810376903236984554393889556402067894058432995074424858538986998966499732208702206798176940034020315643691891715729179191667051259102997453541973545245907124852092588418229386834291842912806497750112115731082514699299732181637500127822578937979501790024652464122090169217791103895513929478964160241932778776044703728079383060635152824850329717500177592745710114154453330598815426126247675150763886496261103094078864502373205682557352684984718555037785294222194175133048081115651999447865312586836067028364802089611333737083604500537364091442670421721417659729451135519054068764432052150229994197914239735463784950645765917976372053713697644140815005842175227778645168997604052256360237759915275042003854362682535087835933596167659358179512911864197883415019709437251611717246923205235442832278684830039655052717376030939692571922900936864164319370701803396661253666426536412822691718067357470034541450115369529775385522600046221994935699749430459804635585316065285395361053908134137350992408015170701737488069471077249714105656521408634877772358482279894765747725330335656022713638703476435929620509583923743838351556741688247997311239001154399770902530421212518540463528776610325195799100413128827629032126517516861204964662133894597760689335892000566310902985058253445456878071550790603868203225286314946231863783244307007824222920713752378980690921109315247236226285534704305555407065286427978674608413444449643725639044751782267238390148045561380735001835887000708420557333419148389005243029615016792546065544438436718253614794615855719628505428095541667965438836634775994552122819011482036595785526714399571904548462764737968941515889342061477656081860516695505246393183010545989706702672455708105714610916069298289684857671793642347064265032915647779645749465848355832069469177730314345719850464953738314155153096185182337910644885139604470228727740272893239532415698587178362401689719604571935176626840750613432191500769786707394476292357478454628155799343280185819184427819757263502915974532929285114131590264441404666879410925014578293414772212693936252821419570719108248466291703476052635020869356672087764120787870234101885377517489080745895867903607777297540668177470575556782244059281968017164611789667769664428812396548479067323157838533212523623014090093281807300998090171063516324309108141948404500306086066096429764761100445252665514459972848756952925221937950138838461084656774036154739660310334351766078755011124183604504942352326694683934253789421220024316089852568890374789241058432932151926752947800344551914228243037675564436860592619120082108547959523825826608679421246295119315143073105474089971035212105462130637759852039534416407719671711040273669819841590913600422056969133811981592104087845140050690857761685029814022115953542960060624576212469777258186739733034255024313331084652444791285245847444350784218902226825002391527809736536202960815845036933412180331463044798464820001691004810386464964700985561502507740490364871337681447995218626481278743657856103597068260813884810292479703669288726588796159118746446389526391566690029237560072032973849759277251490341391480792927084134721755886488284533191414624307991877949130455696473014808703661007049584926661134907425835380919658833558143813308645417579514711503434603998534461778360958906410933588276694701756792145391890798481987881533435777157401125224300939226288249128653124528502607226761541443752016655322035773225818207991479859219509338163947876111085403600144572983919321263375379868930294313408056725082072092462464445638927472431377393536635059605926549168785325511448629362729071305295915710673770998481132634919242944337760492681982127648981172404620291102844338769719032514016072358403624441783956009201987066057517645176795363927050196172845571270616733465023349247542167230948808593182523960597914453135158824178406289878837397480007040421103358280620705025697723543222306731450558400744258215447793179833480277574141124134053270320855687822285935260819588274267892537129153513142345036761312509786194431478522158616925588136243295928683718350717112365831234168651538773691338317032416657070183361030320750466883809422940659927925575793962303731818351307482731926982378781395156217854922830762782445032862409179370904557760317857576139270003372492801848821631077211777448422874477579842532356301781661247681650175800888209566203556863386549964023214993007893245124872798973310635121507301705632362664340004703105571383914273048061861497417592087693109303418332024871720577918502365531975212067137419409806545174053761066806199393938312447040910019467029445734983347801375550970566381062075558639206616562280974045703137589449025493707334700928679885049996439970792793770494965529941821697865147265530057572247375227944574286414727154999413800192260748794460299584394372773893366774133994152585137426391388578445065126966740077543852841425644648669018761200944206260163798384110679852307527711493132973274222628941999349844315854898738896387684933662023819688961286339302810043309848153606936945948491232349816242819892747672638466209440988993439820001654928759442995272721336953175127297431853515949639274411174329734931200255947789806805629407282191946221764540429751657725734857602481561852627669551263602147907481436272929298451623525488887503439898588356802233959809558491481673158159808841894886649079941407907032247825659394034401302029829418390383895348732098480168888453725996499080755577374886644647152384289433458662792955294934681005902954289453021816336027904174279721872605338049452423873983637770135874237647340829947218837246331654940865990335480913583997007427208774684685770502205761601236966599528330273425529819212879640633080910088797127069580934059079875081127745620792470318667143030802418962427996628964685374993471656783579347919044835428742610673173668918711878738483074767306317033834253786462571414387640747915385688433581919527845293828128495218390763149326154197931769049983112097456307446325249618773449508272056708502531368062104476292175581659160744603831668487947745237921388871248199677267785832380996449384199248200679027652361206930312871833368972103584952635087672718563347427639610827569425795435207474735556464218400301033433127792269432848836598246030553256150959506732295316939799981747715542657505916062476370570445405440486910731803686123360526823505228672990329787782141350388169346596512303457502230885976720088207138533202643752014813730884628103341370942113982882976923211888728383016810401093162720118301153728188679054904162684233738423702975016429254963940886170173527542554433207057660013151434093524442174096839079228956772005873708442217343437490603538450310120700899692866640705828886237979154562551195912876203065342137985454231286081790522813026630810362628700575882198973727330132713690923084813054207397706659342025300746314763558787052006050460405315145495563976700297484445147932162782570484316797643042609440305209518093641990291949885445363335451013327425889756206292408865461748076391313209793707977520616786461646169176511917953298276568415217518325384798841464616136966732861861053388859851030271459896709724279356868050278143483813737836788038335758980741316967142353098998942257540415053522262083544964482718593649272325639132232592749419352834800306214056976334456307910963263797565962614459164017922991444851505984229006806775668974069150207567697501725041622181762154586572642699980443030339754969976398548010699597915768966760155835750715877872849586864154676715874318020989078205735571520457028865009860223444541124415172198868893741160203592858392072726484586886708948239281683342743757036106932455818876047902643485021980614191502609523407144657801049395922178819241012055989568146283523197083106115571201697097740920834178928119048888656978047046639452794553732388892593006667405709065914541494457641014778440713897507155421842364987719545723144325246078159781278072257584874073276275858324742503576460599467672830192576852909310064499702582334856407447594111866284925503496921071972132687077340423339350777442434807415770197056495896744920127133107099645667011270322687949136079783245664131116585575786486439513435482377479383447057442091878373440010947033370496623849055558610095342228325926803735318771881839312294984861362968704919330552611645808963092801678167775617665298510770128073057889966132313102076061893114332396546239261970810179369581133720677138454356974056444354464675543559948413989822178509296093113458147995826853854189604779712288217227273724230530779898838614176527410825058078010527603670746493826384486037359237771493751016431994456487370973294282405251715995131128695550740579084260556273781678726289254819361025466178358259815114738855249412741804744761512130006494472978148816455766039177597358391468726850634168111993881196927225283350207595519234909929878315623947063096594709819130970282323315552325318840550239227185365055449168963549495098160400943092535294780904697223208917654221788914003542566025957283841541597294390783855004936874663023714776869704821474393345010342354412193299294712442867976635744101903255367734555947583854656998474544368777843240198391074961412708688244857729375026062945240691038681488948150185201087005274009734903427012454235555499733359332347845285387351291465765790595381479452925561678290564622388770396735640462213580830844714199164230102906811854825053960990663530084327964771548152698976170604617708617401729254861820453015404804357323138194855466691262726896866558973345803768637286692329978168261430229086379605956390211297589465334108429744516361245132674374002477626314031908558193462326460060786127204680961958937616269614370475200344685519821357439196811938879687073151200469641457409902113896344010761949157876553441148602237472167407729068336409127585440270168958105252997567501651039118876473235638708860885882786447931006758462742759066797655926724506949048782593050430445839161874710302698747214598705070199055954710507853178175691750477242995727859581997905233316345020239755065347012888396492201767005871126795169844282728273409789149415123539514868647577694385651462418094564716751447637292305575807374574520871746464639229117144451810169194221084591310382713500068080919492225968640500724258910740332186722662093212897719035792254563211785338768295336430038385580962009966438050589971538160410022989438845035724124947143982576546885118154525832901306450045985852961640329296913931846033813759373256122722556147890072496333178668043622653551507401846150287336226532563849311038276683456871422582403853878966719987387523970113999594906845431441940924274733552998254647766805911241417607429705510108718483534613808261429648592612753870426899184561727544884728890296212508043382521734232809119462421788319335369862329802424342180079876401203469543005721051034836158261540922167267028032505283298191749489751466749885550348629336665612347873487535100184514844400950538546298680048762695940318628799117003591190472967350009849375857442903341409465526071539241211964532269424680829031458276462367870772046884944394660070487285677504248772339078708481337556946704834156779913999142808002815476122100812820076385498295116835376678323310820182842263159950487129422887053973643326146390867912083962920669909589006586837124728502510257619880195275614545987075754423080114718676681885954594637088519651478620337033674520608567653208808805302833944251202254588657853341822728059861770906477752687689148021705901390039095493229885515010026387612050034285782663019310899688680509024631188238655639547635572524400898632602200176527761520779792929898361007377205611926988340115805162569138503016181829288017736209301635652545808736134308969159005561554043309806252903852696762604610818026160669412044541460947321819819285220068012839391435132043395838108693548829613269253110307059756016685068629739265610070078159730700855237686818224780810570458346450840770448022055069349011390298912709786368964047750667308302486766132564883441393269227145712701419193764982199372476962459427906859515293259547629319740401155188829922020806765891037614731624732952457714434252065495306018646295472651315729045462509961508137064711741150882213287560652671465325967956342233305568125276817341283025485353277629908107354535960369662460495066511362650430967660568258330604487127236443604365023458685610068263587112267085716228274896416770667427927977723094945256857822277330217778516245575775771219057529912463981407303241586175441686136529887433612659485011564355634449357003914531991185446396940786727298289601935284511207073630608154826974879536905448414385775963873744541881156504821102426471349161558050312124479207191383295881039846879178953944790240724571095360674592005486724085315673057062244484572460520856853188077484681209615456421283711240157675563002302614064060829353501165024393975361908533860428891763360395726612824943975531226546296246754926478954612088189995230765755289397103996528277106889266024187496921302587001083839523695009769792508224555992062232038254830549295017062606853450447830591919702934750187832223316723192014957634640625618723289554665337535918968035283286908942079603076329916681279068896176110655749776090108396300813894957167553184021600927977557574873257404641348050462390121704551935200513596285638374916266145517107126116301013827742569021917404923658561740456099430334277672652617280459667733249187713158707196037188263023046352761322207675674238563469123161930386427667685425833056660962016813811223660476845078081697633723536064932909513742610369476076114693944241213937720692716416622828985649669097295986661821582056728329165302729619684729473243273719201020928402227947226474033357089908069726804177747184823768033176523223562837831233483490648383968477400949976657152834633851533873315807278055192670923164724217497240794980522708347522401871477802054459240569618406159075679942419717447382192030010913592751660462306591134122930585796685748084924046590161054959176769434477098432812385096455549554762377655644170641656726442431776080900601207421790091473177289282886909101188390229988653407098073829765656235288195717220668462041172705293682985888175519655638751825933421598498886998661226844126610569150375153543882419945415223787611625990607465307613553274020514980989140785759461739263256901201015839949100863220242501824399188739873871365327287145272529581950042474915085764965174727061961872967425686873269131286607045763155814138377521085281095549169952298082444703392968121706238967988573836736415022004703040011803607698272609945307055536059104479055160523823292951453322372922919715336391460943110614756737630244475804901252723760481971042722148367973866022900250160536668761600711437439073736742465951804562793891981887995837573126412064247761002318008151404634000714657477146712275180137590229059573398735998009764262596696446351961030335067596554900421099745278099264027558338287728445343822280722556145209330554404011238190243123596530256231227320634714877924558765224156123638036831156205848414658310331721003343170106752111074152035250957731036043012718975942953625445446658588899061755718875719965697088455519663419068624287392425065361468506473262802981685265831571349081004080819737373885782878333979442669974248717083130395764920106177298614123098366900085785361872983506804553935019242005157447926910823358690748374249528349324671459575330223322365561282332773374367625212675895601340881755538958659591935135993342534412831577455416760918785771276731138573140395910830389654574581687550800594904803989833098334241600015810611376805419651980561570946971780111947420575133271623296401694295072032233791304390777016444861048394351109060471228603871769163156114886496890182131400484104217670104180822848439096953649804991779816075909030129529584961202960688652653179913662063315368932917040199487376398296907584422879887596370876817098733430943595083587227965297161852527182491096614660173494367678571865666839403310959282799676950867737197572121687170867509867986475184897522550372785833557476591877968302271790297336668999470325411362424912194062665854942202936706877359380189608585894760872640431588961093774782451838915655680035860756245604098522468457142138341961743942013304503686816395105698425957550140862120835179763529406619549129840637291013713102285472020082686164969601652258896585712265354676870424056871165695407113389484124523214666881387773884098413996121544739727402141419018671949511481143731289192309115799163046388581487300423707476078450670019446789144534865068053986477465897329789982779675678546786949516355296394118985050171068060625369903202582389818723664857445839698306616416124519045672866240755381725361251184895234525632735201132115602244585787068899382408577566475167009371102502456519862483293056521748607385446291293740547722421448389761580306713678894185992811034969597152092787487528623372785723486342740182640109891796085735476197969685521779942366336006389736930789852997822750184826226684573399785945711391035141480942344998257124763704232463082666508503914973486189559677189617483667862341927151519373161573666146390021612777656312103009659007256672548892576358768972032688683558725723981390229679567355415577985193707886765644569028187892250550639909118829880377058157249941570079859425049789318514165087171343052278840325052684224926129789913296663847925745545734230719011875475015377171944153816869362807370636308755018872327855937870412816127726795623664765012782869306515566778129990222300543367197919458938435903168087918748427253361073886451400593233555004327430898099219816111212902027306979895620490944565565852345778131372308257033455250561939150157736164363653579821832710074063525678820077020758088894933868672079118818372946975540466820516637650545351894525581355874917103057065968158528719308690248036993916359604465096915857749346022194519040113165095776931408005248246086010924352051136571672726684365020081597864825346098024370233847532061433475131110951026996305391920479191381857175276233902528898060866352475578081402864797594971040864924127371933016244717745953648201414082918756283860918033860133715024920461865190325959555116009102018769121768520365338474721469582100175827103932297661267334174425863980723592207147688540394696329690083314801235831079899741916673196007528556509539399748519318708466101553835718470467788995618835384951023823364808791928056846710084698743444907069963796185329268545963742686028082045162210461278211828805220815255037521277647386873357338540924853779525086303843473852820606580339135015511620755955398108498043504773297026644599103223662583053824595073354086829865318904002496052516867723477569685958727808426671643904319335953116143940846366065950564348406067732414028731236275820226834538995497892199137666060505402640812591858339854967142889251311200081341663450482997934708309701135475704878218610745527605405979710525505067073916861987026997528134103145004588687245684720048795167988383300792077732571421616542898618954870806794179561042201414681658102074969776341023540750785284875846976607600683328976666197187335672773820745467169737583982086779682450653020192850385322080057068118090225662868956470789198253644305010291333454741756213154364085960882564383978228320680292087815647804049629870424691023014272208241037172002830204670310057478959344340936685958136544129690147099344437354852777412314385936551900474835133505438220670659879541811090738303897718231800170513933023966294447199749565307336125656263356770241137753088987228982312243503588574921203309850211358095974852586325033970453426003338540176477309769038955241234425484472132483227200832888438215227747676503781321704125276531497541458009078712062490362294422180148823902451278340926567730077720893060131835842589196713492587264419930993620318872398713431986498647052344921884248096806169292097095989288348080648484947486468272690170482779094279425292359783636654268855731998527133941026699237101828470629754360044379869920537055325266527015621548421366185604726389150239976441688574058756110241555112221895414896469942913167451844769165322345267078594640886294415940169108801993139519254862240177809495115399356345203698315693595853525205137401230243395205463655456194964961494133020052570915118431680242720172647454438484957161721949434470528007936118002847502937017966633394932343097297893285520990627067109316615786427765790311670340219841974509664137051283328778237301708581772471399633532369567143364294275055267233288106291292119250698416836917755323189079269995750761860597493578540761285266581957891336265433396876388897070838801843491170452952316587344122369172064129847200189435054042431314917159887161889758998983143733817924089208730668023968245635174001109601566955023736425362124070701837066405722119661922670302170682867604148088586181510189652997889463898220539986486681345914944083437135689730740513896518359528001736718743011916670415338754748798371587429373814885430235764817224076262847930922515288750889350968735143342405293259043224121631275611300550757191208889592795654988008158999763846710359177620263123219843494319567461657866404998601526154092362927277073989029187514335544369768502964681872124131008422990893366053491025155824640067320761693103468698922450960952148231293357145587631008681360030017095737687539043989583703904134334579586671726996968181360623104591081132264837354992256084166628172432644747298700516468768132942498360187240951274108251656175425337917891565284910690031791822551661776561062489785551074676887536888867576149268894747857754510622393342638888545994263067685307841637797280022832500474497945250119850237442909826273318020183515015318845744604936878445005486939324422972455770121791940229665543514390144499859529682484795963333241128676153212088266409465869295022140365401883472476558816002627369404854116913955136866122308685661690713612780148810539646578496014486673941944119633363163537379486809578105290233489864304595871480901356935776811624109367799522708160482702781752802520722378769827617557577355660009058809468950936039420377752667066771004216537790187657424624601597146343698894435408361770798258184160722007879844106509584507645732178847414709503300386821748781638527681618982700894546867982592849509626301777718150495693164441388656531035556161543577992775996222136633365081417600546913422103071425221547120049626531078071430906909685312817070769917413836971347380917842284807252394676988307664405541477144861278548215435579972679131057186788990504642041093778636501731381372178388309161301143034188156679779122575464001574083966592019208917762825769787462773916170441678649114195530429601333221315597774641162238564694140583230097449313504314555737266254137153880732808515497449645437776066390197800323523081244906099523708776707060845140249865685122461282837888908733365270372615974555221750136302365230600189282614493964946465811192801564648232053414536421524478193539746228723821294048947950051383443961786744006432109747728368903160985639077333671312429894517275319342966322675209620296579050253188654003597268590244076763089933608155225973561761033157004583465623792059087106058585290601264458660140311610017707278331857025557664694342126631603632016271626056739349554865177784990185691070293512300495574285988387244906151411623883066807946984076688847946746473261372603731828467740616456686914076567577371657434478411284882037914499151748977557587192929789258247716114981200005350023174603390284952409009151917958127779713598548260574159801741473638922234695453343567468059247128655112262297736470597072308425242948281553864494863700284852097472085435376953584671398632902671442023531970065700204036636316211019799700081738225601834690379588064714274632244166640190457751509770472250641859810888340550149043312679008077733427038930775571497805599773372552277317993417257193111693072061200074625017212409240286914515706155709946255692514092348271063620802060588182106153040298197483432944658258937600595829074522104914703058547135697016958649565990507550249746145520048273181403522157745483407910193896766123629027864414721761918495441741179082390951665282986527855920577887453777868070880392241571881138684200499419194873646215596159522568037906376319497305794550055367146630244475818726415661639795151194483902209210822553342434773269981469365957365085284712655385291015340811833108695430727936568996938972559158447803038289561533741410137517874042554110193647640726008466779246553542991154601485397386318893501528888917556851047780509609244383905868832723539217873346789196581571066888649827235228212603935065737157562770533217806490024471077037853400230266026833014747250975078420880259174880132519916521567940627863044836364059081144675605743137902846743505887980941576664463794933293353828396401382831448057968195458881388923417775743810161539338886846935094689016843708872465250121229958847306955205709698212543750442269855230577352678749212541613518194990977416093771718053298834371121113052480681250622019560993889029610286490202186216630588395724275888303111950643585698473885479382522252087778167918695994468708990947704749869895695123973381592568650627597585085682822407171961022324659913098048764598898428130784684432570237827696191357452990364932326988427795190254164714878870566588717295109960887921923024799682483724577569353524498932404386818425300579859590551325289388312522820192216886118393555588217496795976899855199630817505961806443507848807416001280629684970282231531292828950126483723093415505282162682490667246695030612113762708797444798163575247998900221862330223591801469823899945610475683326120690468495800528523343692064721227997118351227339474308983396987959773596570479456073172075664375783644406280491572377376616442024499032777543724339814161650274136496803393184361338245724166927768533891056093402221764789343609020293725678603265489535855548715822740372581926480755591957857255319264154782095487008739651003993584035594070597161320345985270002751385568045018661274928695529354311626517975605018415328369345153112246720321304128710314877383941267986626373818451566256917240504609273785029489430556001556969442322214246021762578944316456782720779018797920540922628045367147276158081804422191500579686718890924193454810686131312045894186752827573319522007450470339743015740998803592002692887701529927987017747771992873114581505695058932352372575034308813816672805714452534070190553133640464962927605157344234386559947129932007833808158069429584190220661114574924965426025728429880601011967075391518752226106195449144619368318190990750913658476904431260507180271177047195580193843299667155304081897621649460222490463585064661351703502645183550433527281008605555849642255374394143713213474854420864226543206392822287163504058505360216631570986224326388505775400955349978525239686514390593776573757185214252931754262432311890735940168147108043743104873826566741305419400120078475244970884678257982787884847161010752973538735457677167684299281436966979751140397045564648998036898108220209984661520182530124955027728988900464931530197541729235010851072494917773244892884466330583576507138030660688471068767765119159050078395003673724476461268417131155746391120217148436848738247336984660000109077666844714038963897287931446851172289096708053612922550077344815860134170570800969567609087502113641218314599343980656694612919820941860341272518221893281883248010480212321223858490286783915008076067829566130258463497316156308334187524239341684194163778258278544090879471460433129868333287677965619301148283310958320995832725174897332369469820626623098873641662004697188234837287607409646251092238015287586321634256302072356128236732365663701021204554906173298948300299696131177510432627458944243752368081041488682969953712138853500946591010424064358378979594544754269290856189512713662704642242997258409651413953049221437749790566994224987176506974151117321928930897072973355981742581512268222218037006459733895768805365191110815444951243305812802486450553768516625207546491447078755100273769728214702395419830060803885991755486959440568269731103706654330791175615901737996387698795900634086372447332137835396546603133531865209962848995247907066098639528465914198081954000510004411283292579045810493150470336414261896309849316983814815028021757170074057418053856125462047185032791152560109879008868813801446900707539677262788503691170991998238274785115212702010315617922664588060827921230018518628274648696682697980143678286089931139688882245507210511341736235673773486487137294244143468504741525567189310002650550183738696657799207457881619727064117935289382945066979608806544492095401478155850801844388030757521785362077668443255132680529538599983120567417233881318338048747437577616609633776677771905736713385203475502529173507598099226313289795894036840076354187288038355995917522689618302284606180983563336102792943032611249613090059945245925418535544826212080203676755062902274038012263195217211506716009073943662804280383075660095991659892916095170259504209883852666233059855459607018491431825373321382728443180155868643536360365439390119214075844292933630856059937639195873745085628293162110800708222340812634685985099601008411120624062126533114075419469836957459600293098118398234564007052574104051361282620160961682208223961394999446583447755893263419181386968540802219573507351636417442215112868678403914851833550127952191183308054467039207435542480715723102843636748332516693114429752863415276403563925757363985300946633293804559272170951056341125136706212554967794813621191338092708473247405850530817031589060326778728096823213103341239794530926123729755700218052925686983779737354377111786935759899407584079815978529737260656708752479966866871559765923715099267117903761534224471769244689353515734353265317337684242416989521982964410834260385853197750005556060892371486657709400964058930028976007091345979885778929549093751299733991199225653305758166962680264621075805355466978270432188728632994376245235371715106127599347328248073422866216033137595214393325545789746100503666984656665665196643334900057010385678747925351326280860792122085637220150367493357639957270644153117718967611269787648984747877087490289870012877203576929636083502522264305541713978221909340510702303646219491235040779479751899047565524750530901583518641142853227846099860433564344272225636552013906111985823339459949236740627251401722258808072998608614089018884589215629853408947168141397655592671304807828212433236869996013661538737150173919058741204244512432620724189992381424121134440666751503008143424762065076675027265170922988744038278174328444602322985756810769401868426437817756849918487249870226332305874116316742962864036690035781842959139106757437431628518949788177549970644383110519723225443700827722010559700075460800871692122654150423285191027780781853170258575147689808520227019957504313877473503425788016646548684628815311716588929469244245767595880702259105326270946681489684710206949693682512710560221161587128822303949830742644128460340172303325479198608652320661917730064959820803372824261219021083035829489121022344493571404500492557044983790758127114958820507038936715911275501212410560171338802131605335183729429212674452667592064627149773620051920451463895400104331391759091538515523098783196096359953533000499767813211927341212402253167441923823300342232244969914137621997255129614707710566784376540147393016171097650217316944213422752759343391124776842733591357082727529034156244967654124558908635540492269608233834646483436238619130393895573836120720050307916331452052764390370485522374963108767971457388366970138151112652255361460906682832551725154087259887437538780748844528626819899865779446751572088944313858912186167520846071616728889778767812318553222144752028537796079773012915538867724266393964276554541993416132830902355016445698302251450821329681266835958590996956054006306620988868960602101689928519545008140895833296425160216284013161307430591184399743605710501920883459066246946479551319476537082777741823987730714701938135520651828948665378040794167784138246438370433956603264478402442528605758764050281554877192614882816767574123768627564659723441981906485769916369611026378187285324777187584344514400105608311544736514586435855606609146246865343139784424501350637265721058746182304236265287512558415184305294191629219892301817359009662485380577236590129824806014563357138288931708557204464366462908098095773108222609233007613373845823665968006110816768665752882212076333356832704652385583780037308900010304660805439622059434147313703516069485763853977716519544637896253183699581985756357841799830176515196239071929258735790783358963147327251469377979989362184267034871204946121903831276223358096393809188250946808023489063675444423389418159113476622485166487945238307355134249007096241322565131721308819837325041259161289318294080253081381360050946800032832646807756309864096010968179156050539082609909759023747234779913785421556930072494778683685862002721410576805395935511994544931866049017357659629162515575871464144584240006187405864302803130661864289265100879456116226602294478506165438862138948679129136901728135839754054903551098180978846066360187879364362710725555417194610009337401850739823410905266656320202220586211155520484450607263817395940523599242873437641941231970231898998712580645773514282712155475476021383479159375308863389950791440805954470861834618648066865171155461874243124149485820255254335605759893795528301229814985762926490348116913520200616421592486417552897424761562371884099556758265886814725577146559064938449315426102651095631643019643322946302839308012483772069274976130686918268633706863395405486225703873584394488192095465179818178374273859021397871834781623201936276889284707940295929793085677760232328425363796224516169040661401107736779315579993700962360338986867158798504619761889404566701349191219035801793189060304271825457855759073266122615878234627352712115118962526932334659392810759600326609301773120157019712218612374937813905717576808194372516966179438296363256403131516193086849564062974714237087510013562003212257659605124485112098754299936708521526443886977460837178445357291031194946255239801979786683696622382905700941188793064066739856098784129215025649346407370354683000141088239675494271971301332396390429105205991351111468709419525700169188381857401402562219554777930704568399460101860169351760502534310890349835641463053992313334318454705258847624873877109807054311979570803701177176494571018544215423138735313922903395427060911388704396965416759310633497439494921392351984627957414249198230030902839363808935954845160365325324258666183341750058593705922545636047809235496368557385908702111254943165059965818824618456631659924812844931820122484097700433773175635586830886614075309931492967937982856382611260399981654272807630206218953749944343794992641679891788462037262844482103499806468774179005720428779670962799422900140832993412325838717185985952829529653498508473113497171851158882223035395567789753437884195664201029508103456319440842556337030910405270686482345882487129342550839845285106854496582199572190750506499078930765246376796145029522779383980410941577759250153098130834868047453390593881183301609252528307884123470237941372834236216718382190383089276288626552585497059162751996075524659793215520965252789842904664266624966549437087865330023481726144298736856932726498194521985092503742275969973811820239361099388141190830920602127318325263188389998790491599370794849641800164062851089945149109091826792078106000674740190957325367768397541335793221986215633442259872404665651464344028926566095446214933997036518772584874000621985279027521522652741132276709605107375350013130061081632918045182624842901342049604701596640519292876193163809343527577053600833751350958919471632197615275331165890490016162028326357804788987249710309439906902038110262905186282346070274551344927470105711429450598071443924778433756581502659929482459343744729249672479086173739987504756032791048798638238433320810814393680791535090069091736290191517895535686883502929883097970585937495955302035899611235178123437354246177280144044144602437437945503503270049455134493530982561138412743908474782796823567835152703960349799202434190504596812217997811050990125115522214123457838846041322324537950096304677245751480143739963193971078438686140931984277412849442233819856019413442368966884219426890554326877071348426078307592136258496347984783816921183320741188729082489727079835648645546088343820146641092401855350375582699773524786248949821699360107932691536907339849352151251562822986653402327675156538776816403954554817168762191298952749483158767728690793375056912090450336003035665218619880304399070532885408931173479713082964777975552230527360639414192046631218945858851411816529316721385244845039237123674983294092682864472873257745253130306343447207476130549547707395886740139644220457973039232006429911684060190525513428689669714826326658023767429131086843002468177870650922068023620495617765770098384721571525221278190835370095242959615976329127459733399877980850893121312883140320393470867179045824945739444350746702356989289533499061878644698099234309300681285468804814947955746039159691895578250618359665653328772429865529254453921250492155150025538566976391824293292025610357668528333807522893319455674162450160031016537764297768131908539716611982329893853509935640899194520236556308845665757348574434406097942579262744725936285797454933944546101227535409322787166066904524335746508762690195585642911249524033191011337656649314117464323199131569186010225177744927226478992667056114431472457947700896456643355795475100478430825402859167566440696373521207461471142322525055950010805665770961377061413678545528549078250831107765865789532169368655397737421939508445694671709018989459075997369094451990382590602670194456647223352826542901878603784073289347190265538516647150989830291854160951914464053012810233887939359686832183893205372341549164547163186125656672933461926328271436829268078875921379235800739868624499587690446991173492834358986314182643217471167718342365251393521275993914693028486753325318031933541636361631671580087642035909734986748096099421337587645706753816151401079185035699856588486409438365800510698384551241495350379789368302660842306991938115718872557542039311566862949774491213248922247654586414374436825014700070191597253996880887585471949520729878141203435879982500093417114234985402611462210115161379385960239599259466129804425633190310125004881770263404575952831220272631660520945700034049810978121773179895267666574581282025607586043287855314158133236636564034235870932648487932218886199462192898777986761321451574785730634303104554890975442579416410985020299327339605539971512366014028907071896668640069372748077523407313444469144170104313230985566477444640021944523600234185336966676360105469347413897205860542452572691895400413027492493522492587320583388637788667279120097454567616086989140867876584824956440935213526771173208538444851748345226452965027087408456914388399790453453784893061321051968204868864761031660478544925857477581363969335457659095658156219402685910159797755731584531636323300513997546585651394820367825951379875562730247835212824824033993854512882834822939659504009237654274034403400511618262567024538350261473105206656956051443511707898025451887039667696258335085316897292788182961723744634453365854313830382249917141228355179625102847975365333348537093398302008130238505696981412702561560863412902541987753747369528355379986457968142141223574940035613481861406218811642245219002931712517087639453085215770680856751721901232658885202233181825704222849967696080077693730650036714081233577047658141464983723847462617360035092868992244849626292693998658434547599043958144771490103266326343411818041987837091532887788663596790880562819858397606120023101942965852823944098302609877066280406776566434514863690768716915075367526536747888716559034807811794588255318909929146529609434024837662253613339494902615780385255024895510160663619450050279974559244368133850187493489885312452004846111761637051794645909403161609552819488634622231288793048996493138845227087186047019957458113025001827522581577766752511239315468314913580530341727115598185501233980148798050514239522539859639333774179305448884014902856238878756185399094341876070056606900661251198292501370735909702675411241053099760115102316070720392362966423099699565127212216735930284836496234353243466272262942407249132254480987671462146764760338581621249959377145129738483950950178384757530077850940117892940034535941926692056900162649574903796901283823427573861681996628064897687746106050005978737160351512286849168691680141432474640316060695368778989667099916684360271795891628916989294927096603332087953261809792545199607148381951451697645120249609155846544165157232082115488140543352483589617945364729884817459293117202351573871358237864426983796804160875566026410582135433459727797565284994318446677595892783085372171406922243921550175146377605109149891835133573008017246529235083422224081879843226790735627075181889365417959390371612929211295840242324919010700033450471017635757674841392224767642281850387176501641746154362360728052056835610177448332087239556349005998197887685200357461178604165775083291130015636561009039195579054515832008818045179158392189803298543540446359455751384624521477536605379832659431904824324961033534735875407754250703381973710086143184050087584956301946675510253821403430939627242073488741442647969389564075475586196596394322738131092666299239094784922560785276075850011884431188328587568737355285727895902317229141774678934900014392488885686804179089419719595122403020289198889011960272663103291341120044467022601680847052653964169586386101259054326899790587639177657849000356111796773980814760607500616399975572092825241860928624583905884693730322569336954632768448036940502320294925824968521607511441792349415874678451583732648132531749365207743663237703568457720225776903005174703896734800014615190466586928717188054276734956176924481195340889641622423729965920987187531851917510697170249053120860646609525235243577639668025678601235343204459277936466218697411059876587835103408894154061251764783313911405192629828186196485567123418297822062440424632875755376369075286903622276222231663287646257248229242825968780293184965666632439455149454960549289247804569323592280230771520688541593149331755053433295635994842431379285780026304464515582023175207074389066850135434386376563942658351529977365372429669902726583225239791314177850172592329101359133858046798670770919542550509449763054017504673552949303359778263955810039418327710648046927883042757986879444556387299378032671261966937579894754305688281231387539175246658088544550124659895234599446227811809645439798644059443059927546267029885038195988325565481220418217003309633343768968672051236632615475083042974457988473329085976073543026963172229584599128866326509883764316608795691661597102722638148216756022782306602997513885041974922473003633396130765954711662673133054293857349868464948738294415679381652858999221289113317774057994298035583783248652787873171857789442956545995526462522972068600333834492699047846703321140881570711594267945125196325668898305554930045871589313680996489184977863308095988723299932960222783027519272690910518113324141674200060109803265476116876526188809977712775702062143758857043588676266941828478379056347899071688679641781650585535627244951320230220301733367395613991535944102227456528266784129394460437960377712852587277454212493627144900707192092436227199100520762361793192193815928395767293828760977941244297139234525135062428793791883412864990049254972853663561107975146159078322216541118303558891260096901720171459528318224975595597104849511532027276261937020871417639453333631525943097611187978326691128075996925230755153513202820222523245854907329160095616635527279122276026403640888869356931171209467146566285513354804539351323516831393168811115900876916706496003616860766962013250388366001764684583936566203939932026709839571779360835652663520519925793533865420424476261056494492833702853539312492455418226295919488128190944368298959379735675450296137152595400022634154858017693694861596737327801545111772639606196612135550264801239398169049743688005401124055290884903415001084803583468624095089289935374201391940666738844075513393896420124133675320914353042818254983222817730793591000500533175337785325507826725255041396171311043926725248027399108230485421483809210323163955538248063171826411477870115544852914421987381531051660644752691434115355680346678707979387011823013314582012755257756837578268184513316551872399390124616390119011328770352701970249195857237561090783899097138779104917178523100460750858614631185673218293342519992422883958579474264173730604474583162174413754342854572172150783705818596304200189019401331818973087065068055123393096476715507789835024491238828949928094364119203027896640811257000830735550941731216331829032971194946150744433973412001206282381651720661325498021373190672823026149588548141070748092531352376996688145545738447045060030303475161225221904598460183603790920825091046338098515457958820738119294903832653726739856789282050729971457240928676948192355914018308077840829027975242875994994548660955236840377664639473855881411767374830127429619508845082568608914482182863933405672519459259295507601138850548234096628050744285349595466302374934695619994153521719372587150111929708915637243514299903478833009213634114365108487525270903815184168293723504191173381657652148885640731112805134318386286373705087216677978117997666679822653958038952637670229576393473168631080422462167990569436980561634559715806006799289055202654004431461441668893296353090995144603164511531605299463329464868751003825136031950239895010915660026780487917057729421562313557231457027498849667166442676983295713681922006960016279658685394334700965692780103175200493034133485994503035464270963465187093245503044300919839178598672291639423642389161250886853397716339353053151695810880623699938415125936286198412163349690643637718264986911565166962509043008347889506456911459459890819848270725079314138441493786325077675593713519131885737962095379195176013600414235603864631884082683609334855048732160443373436026654592718595741562486050287319550296035997442419498657251373744347694129127461457749241934394951677268395636079717627988380735165880377327953712814188636826562931568709343547728207627784663058574510736345882711021229815926558992276692527978387232319988348633586299192179960036059560149383949806232040530298964627371832925723204798072256201381313049835211575311405154795000702880266189078940181134332297574666165249559093666114153122448109333380803086255441916770693476750332805302007929607924575128269873931807094883540054711422529884254142650817050238905148920985999584741480319031620735549045770653122866865974838948876717853920922880526825955051414332018206720644762185205838990344245403847268525794231397409813118002564345596528074963029136949299427447136878317330480880152767212067824343163144519944871903114195468373183480042544090077059606668428489457794038636751348940017667433912337282427396968146746797693310359540150439880446148700952887059507110225421192637530604182064565312820682071388413265530253523515496692469865195107166726382546548853560031620081276399086258801431706787418391834248429020050189111260897532542016767091191313469641596118549969084222736274187477216581123547207216227564474161299185704979855968510742585042563619738520748296004624371114695458244513401370713025274708542631318842091254882312432811733703028389405746737212964544168567715420542364685736583010672334762480948439578398900633114129279731647640898102999318609329340112574035533286982647382134563258511178194105756123926655299178687525109679211168992275698984514324858272489597718925721929221610027167639977942042949538011121420753968928371444339513330268002666700498839689312018377172457786509820533444057251163457853328834077851382042321399743882920359881637043502053924878844931056986550185682336211310840296415924551320615640087968359437967887913588779795472754487695139039036538270286718002666723643750003809883860272251288073401763418064481001237365750474987196625326160776168995087725862095504177086331860610081993186042375204217322343959856213876994493300288947605844913294493363328214324389582608073936833086070111790237052908972001527927972456759513297361759728730254316340192112128369250277556646827754519359684391829406322287545219100635606192918534476801489198117577300566792294591973952860361372270349360231621140444696873396224101069238155066902582918112915691809398855345124715195978348978216578034738636926244562928141399413313440588475213016527235349131888434533179777135470632899885325749042005021936565226829238474336958852514018848815028248024300668973287351299151519629114872526614164319979060770873976483065249601668181191391889002123851488897396335436845506525382995624847738209797090585849865003829424356036254231835838720207213073864298520167506889194088318407423348525826891726387432528527699987705978486527384233507177434578952052728968480286482686045917811010705737153316037354077021313716816163101759108696182163211162152835494269066702355341442807873570380572512569764662409442885867420519262039046898928345091017117304470626389706990910291459115249949159684530736229910884815274698059081589480653972275844836245882952174914676243850724818627199625197270821475768393813266412618818493188744255360319395679073583271158306247744862843505139142042413759480182518294069831738475833762658886575815892981081215308503023290721013587130829373832544335584298274725710787226479120287448056284577795291184575405461020190631753753111305857122593336608068926006861240975316995280515898604068985155506618982322762039091920282413486001449444363747830180777144635247667218849432255332966426652223003829968292142599876146255590042827594492001929291864593146722891370803988848380075663092951658915718614536142268439695775606975718716818890363207498088873438198254119793162177332248055584767210771579471415558289806372908535968869431214856707638036983543673315715929632288257465163620871000889974161889779419631530763833227405315145536432889278169498082756216036931124719311353161107067305104199312684057387609919249735302449344029348460633228493319002122016087506986698043230846179637922376719316341888514438309150703188938898227274652688736855135449714809911957126413107481519174918083479503078013020963436945705657790525243429543321287621002851809644111189763686589367785877804628335880301724732345560058085896944225721833643836065233455275918350616744859143156319524980534641418084914461560074702948929400977652956705763195993839458989203758795842109201396571541996953742566138660685224656811684926994088081084568582845363969800185093697134081540610809843946568182537801455605676834021637585637979929587197835800514420469923915068313061800491338814798892574989638952811408562969325035760185501720724018198789921433537468153875581707240369734372816941372267849660489719441340318903887367326770422674148967126380175188612569680461174488929580477011043590680804676689220342538617391568514243661757884016585536221268324184825573354823341696098564428844587644009187387499230206076925374434126329906414876306429332541027398799945460944261684415904030255400968109163020940734197372600758847037710544589082829206550527182610117232934499080922050673054410421837083648516924239057676738491919042501605029221504405562486635434608499949119969380147769942615205987895225170544479487197284022038275580238480959380153095606902387948747283018362866362780586203754249448185542671314537137857048673630588572771094142244350955623063759157502061566527907195519647975703222349234263774219144308570233883980784193697265970181807209035426119275838819047686472819421360293244428707616605457855950687597026315713853444818392234825847180488716566167029845222810089307652285499173492843330729267645521448434690927790823150078601431241660059930588259612193415655685509611436138738949805064276283782675249408026451188783538066527886688935992977690676765067854186103688591031862062977265097930984007044018018828547603847348861199159748679418885604343101387995627322342314365114857298678665960289232706701776554454707230837931215729833942677834868749019100157380102326813647561061992852831458959236124089549212311444617086089576676304391689822787377327978869043554148254161784209017542493250179105921483436930008278657686078562279353983972433909155950775998874588799999262926157719337678124388825670896990194002196531335557102424866425563186994890560434667512668101949516401701028139140325377515649534289289723019983691933066797729997492735760783562399005752403554360367623306638082410375091393460924475170346723455611410866628954432428520456043694539437245113680450272259322348983520743946399410677066104910152979441073520511814344583589029787379615832534904150194953597467661599808903012111681910323159909601575285892381424013269235018156927400887665156849375984726854750233020790012356809917398073857374526878924452079085946202680524909569580559770926075542754100332701362063933542183467058817963535141220737098701656233809176850588392651783514041029083050663173466316469817933864228127069521102301414343033032653342237584879153732543247472043383631904424106270265756850665299613714172670738929333204623798869487403891230356301973226980384822475622677674631321197689123094303001842299151751018925590857695050497033472832933655278589101434382160680424361930960421638407900193249641378082761805185689905135464373534132847838046890320645068204474390607129707594184948864157749442333064403991052299829755375421305406835045338857795730117153925767071741286872426979852094020528794288939345856441904888645478809623443208820577372335862029633898641234938349518495997556838673441680120691084505466831822532705329303789079846455052245782824851586391626620024715011286836556553808340084682054123533059507169279806909531678209824782554864137197703858832655581192963211464414871175603625123624996733801406942781821239098927701000208846678603294790145869418876854887240496554507317736818850803478704482730823195904557766828328092240096927890056106661329304020781074544322274996560145559235232193585691909544764425677681340387843943826373859905947329189321872082602913338422282602633355533612902626557778998163527997251665378077430582102537340295102121066223507048043403695019448733818253402009357508976414277948751394166658222929018862037811288355061852430098298612036179551158497652106125807146657367155280656827233611645361022276714970688604298580164934594113682333799325126052201551481254492410299822925643387128665054977805578287790054012137415009673163997346534130806696700260825422766187759305838423496500714934703386363483882185198448766491120260851769322909557125426719502604105123540295857701014793787859374495681494736335115782042477299573365863039141950604175553777332880095523979191562886192644880834851099734003902046491298238591384986490600391249746007040056617651037261974996679568222878507784639332526796466083597142399742134978876663117496714861495624216143664836558318276464240235351985598904721114922857500126019885437639452820091373106349366728099311996422656622715807047036835989637692724468234285888802871890186678780338087345411516424781185537678292709539154079627853223004365475150648021375332388709781827481474634908757892405207177786386843118118023141013567373670629558111040267867385871412164270437912068141356647850046921948363122744773354164792018784020661415155935593198520349867503382532655754858714704930901603566663783567510718245839420493728452254579530145424841788950296442838129180063145956881873524853463105154077833222997219141181466615766984069770833919471781935796255069627193013174500883710579555327463798112471667091568876233914509827065507815161209680884139893520532990901513027939662692014859965276903713276754391535746297521259408918109315780715481762227210549860203979170690462521104627844171066695577966884751588744547896567940064642262003766883133129597973958728375258826018915591663191629116850775300805938609748058040876358896276707194439140013586729282789593289698123323479732400247884673079423041981991333884115650470254416424135348247072621494067653292566380648369467835065213346381563794233653216722891392200901708102506365264698945719708422109535938773290717179352210174320098135535743242374282800618389680513537223708058420158688555824702629871290456984515033641267386508850038003579207554636418105780834969914883968106372509752345054842812771076051571576123302355447816737555356521565810939918703384348901899540363224552395704027345420770537407407790437815052100352873980659453432689876883035895146465499346649046683222974568181431678660387510218091242236227482399420607161513952450989104610273249080731086354798787267699506822388470255976919754603604183589838358103472191260709907980862554220833711412237205741502800701451347747123326074090623265439320742465844668892440604423413796320280117776621259864910867823607150474445461053044745290456272685532807842827807950549111319816766521761869388325819740100710632789280023495330353729002078078608188884888471525062569964299989264076256165701596151737453728884921498106163324801055934307545823419558956290364462054274198066771180098303210014823059586291416044812342156569205295211339550844642942505670505835995670108911911495480505951039661464928584511641434473134955026761041631328543259328068514334924393021317413692508109373762640585551445418723121152623081827242933831466556530091908562790731553373172033001133776325518838112535653937260669541617957742676478922797045704830822627802005816178450186570643812340196235857196765505027027703411468666987729956126482475975756181343573831616683453094947828121832817347334389428510272819213343522489868262626397666940931471247791612794845064784399660811899219815515475831569501372476993091825056534103021671233910961151125804506512435417734224765085832763003665677417402013776854918825277627999010177025096021108115502243658170936683150362619880568097407278958625149697382913014324672873219623873707967931064367891702952488550665470277759862257678225780904996417792909049134531019368350352111650586975816751466900460794461938054860714600822739244971572301268288848610574069323453298829538399448649711883260834749624582210110715978600139942963753964447412981678274032540636114673902627504883421875458107853778033476982276408088807527635648257070835584606728299493463588543048308253326478553540870988628219069696991626272834467774347129684799624596877143524645859489273885847304165747162105323401088112699068054405066962072654650577507097702457335967876069124480958212964901162892909618986577238647906151884116247260542702619744796230708652330633781535950389983935557503974057871248491833847688089951398490724118664985196074267863543879375886208939846339140529888877125377924559331747753458311405786596653669866068956582634301389289906984005180282629642859668280852912695992812286790905054054670768884986314714777399694314190529952152596347670712131619942009600025544434492317018989688427571729256041805644461043759278205895416135016142394730334776162940489317728802071137169005236774571840575981626369873092826623269114259749163603182812347221626323987739331571651597275449911708878688357938023486784263397588884559823144012954732904012955672539478291451335914499276932023535929297575967419623609776371758493436219152727528200459604463224578684817369618184567097754875417191380955638037873737694139880252067725856955040531806891919860421184124379500729762101127334899838209264757006792068872900956553860367196279052672947140452731724901127472708101880385008352880957508613173708770973841433794143537652882231690968916372010370085535318413184519209681456589518431916284230093074666435047088599405032452088450095704764959054852868474934004268842905528658681503382003815336013842536163975318099158469245761650174085905960378847262089336004155697565263173804879712303125588455399930595575997711838219371521022414838124443252570935154024464870046455528330372435392652164755765148791912005832340771697031078182140996102312337739581683962091618950738898888436170685313406399370381926822321164122445499671771866312048807217937263128413705721733153675557073090808969613365975395475599668001409547408565223086481162360622661804506433829609169417570391370842394527971327205921939159219441043241874473250062636020021252494084673172509500945599504372052322783380277537515792995113578554955598855264427532288957125844687067765584708615599967859331809705915109802212473037556216109710731195358543192558991162491805818780424545084595423115420215174954980747423092552511646800654628427983201991420922882778795124848980476580422678050591313057553614940367018993776776394846942006650954750348077787163397840832325051796896036198160734863461427326113977930005439299434482165616795981498322338073955294640380649490830311057816009522344410268528240848508512693998895628924572225278318749790719953412401023065320941553983992613229683559315954827659566391771808354013715071401465565698226369883260636238508902889097640159465850853340264638772689453439151159594833216232433319760827179821291407726105983973449335318801804925920259442565279125882694792154690372063462772371864283824993845271447937564727732902846508183570354237804406582728948591468798599574684065093023316761391309651789204865387360638135856689061783196103724244901911740121465938311841525069586855197868023826429414115697426368823532250590490962743364511972576164050235848199306938092782948253712748773083670713412091696900204010068663470651746078344278987110747241549566268878627503211800130481866696609188322789470690157668381708133649108786255401340084530859313314760690706149331300468744572392294809601969438426169966719896799900385920009872542227903119535223425422114438903524926603324737445117691483486595380519603268820115170043587162987005837208841057275487350626584158449780103721173929220332123260842344063345446750590736386866066226117747162091173714527398627758786050954530332748322458922811782436449415747727723286290137817744097306213387246327242998249867573010261978716652713508989605964271935386320547969968928577066914872326366089380843284675144362600523986181978633390740206089579482487267662253614589951630586144760129674482359112699772043692247740873485338950100260338069120173003595090850019119213492544481373156870078910798249773432608427926923626664435031653141031854360116966457469000354534384279668488207883557676716965878257322460585612118392023382646075109306104634597046765389759481414302832539206435670559912352283431142025160243158381354426975063725088827443762398005715396279019189205414215338678362612926506448609629065867703093391231200534675637802368040203567965530118997122124701859473161818057017681217534988658017374293639440902988802821334154982404418978080933228307804925059176008960390073539228479047807953839254379386831112965052935429764727411936069399430940678334360352856735354660571396483161758596624778992434968703521741643217938268841137309081330499762568737278828257462612069961683442085857216807216761328857040953347750244356202508636385590035100560068163433042551531960835226948996925566853713619751231475577426773323885198427025015714702997208765146701530030864174330434947372779312780523765340761985489401037011446016450929207830754085685781384398477349387783263267554513929671836235594147976041977251126904712286267506248533735904406789762644838505354464125756340279800458859279985090593929202527445192267666560666513561567406428035360884241867485735530897803273838299925024675525099867797905737395077206618442253242556547936708245675343337839102618235520530505280015033603208723997921767628832749809834132659386199603299762594660158253534164892981754504037457557960054004498294171438761259355273939740003881976702940787726999680235336479325776502937984461864767360739312625919734169695151082466270619944500441786330830254135727293343979234802581783149363187481698738410324059030074493068608871193354025806422963074502085072864787134572661923249733073468908338108320644316804951788363608567527000157849675574862421193276990130233364660746634734771250417481549358702829349377334755475431947036286498600810637489154529434653806386608080370506557163449265984479452456532320019026069974031397984217184215647509642794730475092513270075701360218740053137209123956300741590585251184701414700187840541069390570909660985270721891779090660373644864143410305162092515402848135185719142114962113440247599673875037561229255903563647151229651560699408619221057196231150758751278246409820998396662232240891686940637969816435341960478127511630077912658293956752179406573012758972526962690087714080100920342832538621548776490776891657884017880955240146450573709852005024853483443022225567404037711638609358702540270065449791840653862513644149221425886679717436054188860447418747044334450373546176424333000405212748715564683616073260765709235034042115191814687824967400909516983322662218287024301761487666715143037959767117797875764203275166756863733177149003673918318409674915563520845641376415379249390097836194953380172460053382309633638081922440758521292657709584800097009645288707189787773884605473654569166060235388035329903068656114585060251939619758728629702501546415021536576271477131177129493910215264193602154906996354117676115153915185593400391368408332358264656231897434989732092183676077546531236189780925202087001767593901785317142972657439908831506936602563597525918048418552466260864885901955485256968582334793739054431813485997580409645495284300323079627368014212564003710737234774691725363297338292169579376560866940819265947060959542190193109123835589961036887767526634510167985453949641457672385228119068702980166012752580441965927426098383937171816327394190510482660790808957112980262949063036881528712367817949213146675781418863660800190233530427628649386954464409644209066638028080226628428356654876709556534602839854219854598508084556391004424964458101871782524077275709995075164976233631641680261500826267644336937267630471058641786648923471019040861627944738051080706968128466726923189093106765970835558678277683671409645161174915906674812278438695761604917324363506359348857564220168683205593093654585083996699772707566825821869219539619972793956309218062704038998170511438537332236329382133292457808731525017613750185248326562794921007760413689533777315970275490259699731763308745679389982116955551194124507325396637870128225865307242657899494050784452493916589959618779825938506301755251362945104663346548050261576132900974996734110552047908316624661430836929945713696481414423411644567673188749243584548306455079131844335596985930930536399801614314979009524450588989592214795642213898642889970957674067148231547914889597868248076924850527854011481932969974702869971169924831104527651980592874793709270325136232198740151799694940600639114293874832316596465281733298687083959998979691034962353552580362559543763361223347827926468500472359703168450298529428255393899903964793221812460093559951754221559577399407366701999061812329928613658969574510123026211485420073234673758470634673543796714201966475918712871641432537918490152100863319801219100239853923201428667029990467682022046442653530080683609791492858420610538419840953605245347081520361269032207900944876423856600246209684728476733661321687740067839483668712460167866027825262393371997751402488620505442025734600214665839172716307628506381078241405882629007629549075334549768432289318582545298949879684360786128476556996769302754503032516940064895356611235443446454752783794803366987406085960034815183821596231660082284748422197945237007871173257703223059923936589787707984721483828187845983233865924942883453865972019616072835368222356509151056669820511977318388922877850005456848464926277565632166526845707435346677303173505222369902981157858432540953321052608849648762066066603212025789330459758985524034408394622131745102151791224217941249582048080975772419286360757248829558220280196182384088683462904519960177772848811175193698894047564119614819004772319333252887804727329201769418343408305894577322114658128819660062960622316964960084581796779021265640830708677379778640143125390537119209849523528637074984449804503104265030037715855391811377977045991663106215021876202529741423302787130857963365419671313406059030187602498374963539667445103447578813537171713224487899943831924232685185465403486999144908345171472359061196906598310014690099137241927652566149942819722450508595144899083446195155878937866173543756928375492943147889313139947472861264142933426574561698037900690416540056067268676941316302701909151682822741944975571450744785181607480972242702366184933405995377410154561892799698763252514273902451894902490970250922598311871114808166109864105888676319947952167403648072554776865444802663980371191761417197365904519520489000618451070085625612531954170623096024587215879791524018411894212851705573550076778241086150193281314216478197808364216852877469719582952478229582495084720285072533780945930877577821349133910362523490563392586684501247299394103007466736834371242264930374785911896444479567505825198274937257698147137175381752419542273295711859557791876800958840280164385592500845976193459786003586404449103138496013231747043228244186390222964093253484040430211670106851498590947026028475208211913376979756704288523810541442336042474591867728768104185280569596516840602272710635568417386360246677211082839893121879731064151499342186472322743439685323100983948735459784207895044128305467979359081343297115245955253276665673826359964217309264036954752674076346659598350794833639088861678566863219633337461586510030599311981096830301899918464382823573745423973185368622006791847857697852255257560728499130414089901585396556729136307442377259354648586398376965495228130703257682997105709108855469690971789825780837057505895738883875463911783225526469472097222193427366366572743910576666003638098473836079013301002755409915521650260575566593072412206781179934592913777684614213142746528420212175864310353402208590632136590728519383274807995869977845294141144162385571444066777525916008554541003336326050972394369096681765471018054866409285794276278252511569462042120255037627362915134429561059086021307815474515483917577146001838816049053083018737580444751878219101298433425155486128631649502177882203540643489334207834926274212898831572995605944710270966003245117826810177384956922197734763814918958864581863208893751768003587997446687058367143739259613949646569931956223196037621795107936044565094754761761263865363191107534434787352963829309655973947322842296654485433994078689869521090775921346754081219724343244819956116344568782043041646983338139315852296625535542405177778763343796016006812735609280826445956624220658271913422689991295084558642376407828566972928788441341777562700674987734025425111234237736800948515439007494738926250984750303541690432276444409402258314254142796425586067578230876198337763299757524878420867892934975864665563845063735822230889932185464309229259012503513147052279049773398755960246289551784169696214028800056656076516325274724768221410549211266343080627408548555028565582115608869824359542162858473628578897914713391400633267871659665417671138997839992302265728223693718792172681378670566148349804908851201449133661754219025696358301205438691069900116537633195601425272373832320582746148587173490111674801026252637789990467090760558294810462075647757072858252299740032922657118177299899275434670968138029617125185075679279459672510898276492423686700486325077549376753626791068609084691751801551969062704539346895567047194554837548144304760564459542919116073566030259892026362446055034134391474981124562501251435854560579098866574050987239451580671201157324708260691551055359746172524107045435827456168237455268663835303259790239487859593615776267604296884791147021517949967650589081367734046984427416355489774302444882390342302975198030410275405627486634842856882533906678702027625685774592702489616889185558870586176297924146060662459320731628196222425480644911004754145651293829173421017098012440203553857529955271204963145010248614212987595776349734132620432346171596715853365273925556265915394454486003918998217392423677316392289032349287766090890462502351100300304447244958323407959328129567239835467191847283007668323558657674337174864656980535926418390431476497360727554104981237344500468875154781177251755439614037077731592629061908750333065059906535808175445723481633936143848876328956187694796313493750423278124934642326966431528327243952594118761100691671799594106182695675548519530374596118422683272799088357659803756789226216682669914770668381208600125244864037591933621811947191927762265247726161348352520423510746881833073999727388175929713862091611513240796794426756509440222296518848635314411001690917068143503609120882310676691251074629898958541753097742717782683855522695635763442425621832231408498533396895272019776684384369756299443721312752532414663700778897963189881993379488320795874874105770451602251190764409043806573794921820385360909607572866182190504423551030482483168227568815436316752300923968794244164885658675574327043983792488636281508883292501246674960636269868983012319148769867232555279825439555256083406649617569980694192377644658285435779636052672441156556117254073686657693692329907525639483762804445003063612918680277581004684935313329613628990644863630131514101106869412431247311291610737479262770316103477563269228573306053588826926518164208668264804373920691396494862436297228543918380498004634892132384229903401831407757187658992495748138499711323141738572512711921397236847965940459819673551654460923601230041198831398946148798788520016717505689166040007324620130631617227274201844214650585170067951512132488020096503101118478932325896848986727067775750745204875514197014441666341181990644822629973782197180649371418462155272317656541779293320862389310504489263000617492922072193913604818237105153648881405237483582976666013452084479104105708499043200000665577452953667645895390653439853055414509807776988569611740962992096527594147869088185737390930685887816607472947173310294643090955856172800211120634047827326917877537717270135841879474681103210368722434015238596011973379052897728867084633613998995266304121054541373945639102979673985128249828117914278902483174779845164355626593155620619903511181353176707081732402175243970010608799790639618417800257515056662039451573213528174673289781555901375665980195381522435216533594158553812529452581460313170639134817397475863972443421766868472978571723629375891402299697140661621520672391557838667266381139760293527454733556185311250267365817430505554580218294560319257290540956020883990405134608584299221969328159980481844206838353747569722213376895818615331337877252927996050548878339510242465019551480053434394261601973689410046283249707870591366090397147964297268314317273909136514381696200116331095913443430875836231474491266373989438289462386516981935434665197459533919478945933144207009100793503062234618434617664992019534772641646655153788584487185380167722103950037277387405093038702922937487699105751624289621182557046936389791162416809716643851390912712158339437690425863141041885798953847110660710280654746156776757094024534634385813319419041858701024404278848103221339098621001709822229138871505537020773384960877800156266009629078938615399295983789038885877297663711373048800412227542438135171676752722264543710070483048488591285517976385379138937029134764114972697521085620574613831346296849528762959137047463914124531870787013538127173280241555701134809887518468755898750670617114230788018066112276487974773150913143259844491000544841145638319399281395926273716665977471751307910936263282415019307533092566049855993718739962298091245059224030365766005586432195094464273370489908500558729065203410211515625191399376356693321982286714132112629677947292436379619956046604124849874571689328081922298950278365782028664642530641840665996863172104292434159913339813541500511709306930210449386990706657414083746610310438094226603105428972527632115393988004693350917071913561440006441815609954573327338598598512842888157833208079300879739600358357790466012374074599933247092651194070063997522477858950804403903635310063738744327201261225208294553841302705306661544985825547563366415518956365663850711110170420936922829658041417314392026279023890891150184438782903551830689711178083622711722492148505492426215087359342615376172402609794227759590056754299447824031120206211162792086881045882939293622899982942230943278597410033603905251423729246209101082293966961503426564551896530652252675606237356576113588999809938507297873422979645898277649938018363341624828741917963878240085294923450281353353581697797477646170090146962642485089622976548626257608315711771706380692868903175838068971472306793183011157053041781034768046616795787686827248029466098079604457036707262006045551469168248729028289641340239838686342783820399624795077126701140004726735164026395697322903449030440944142882640740949894930435501117831221502761314445396727071853240927904041951669538514086382630012870535517667544428386496064431498778454015659992558607810460580126147102953609448126726233500241092580867734771383634900693000026608593527891457143064034575710253250249287018134455899544577739032671406822650301216517402321118802857837097977505160664651071221283673270503609659603875576719148277793610687681806601186694767752419164025830493037036873693767948998564302244870063594473379078860944308109081431970063955384000445815724876099844235243917489249989764384919579779122155534423193849939957157331047753230075584588496642217933456683694367819273210414080134342750542774891984654076385345873627942590749612195942014487962459195881437941319914259823550889814493965634523887454141141090888536773763362690647715686602423757582227729823043872927087750566872011558513181966387592489019133063818599777175622616932422781561927952905740241902154740470963951601967470525347100782796276223883981667170477778109069820674349288607307404698320522768865106440649184505334345648383367043713674055164933486935135655275020451846797384102737043529766392257570307211513048386204577199172944504289008492367503757884371359262230365060454447589820537439099626342158494529239662211586737977874068886651774749331558376162843079974862972037113511697377933515339163054262877408266592477396094232691605265168361187951687152800499070454290500443095271335564807916720599663805044438408567230941906201822606811592558178131063068042056745438284919154612517513141982395610559982887671326632113353158726140044405986232092463017148056726519825801222192237799005851018837142052601701043659451374974430833530368494924309727636390863891375556725792390757575408415485270027959351790653939488232007960293191439232998332078896570741479167690526642446951967204786585973579037045720934277671705634409454877920839624553778293918226634785767304592004590648366636087386339129900930730841845859983200836115023436964227627142511205837500650938995235167467730731034447905282654129930552074760405796238157896229676509152122584182196431351366213670790461949466800799960828404570697847325222497707488368629375730193434378250999225071035512972424826211380471358831070957715135680560902771786485627659473486036817885390911636072233227617161971658245142479211363978791250444838766144535317796499974615615472541379956378802176501539107597932753034311470802023476470190243944306196266014648695652389237602162199390052765593585394767925791003656428249516439568698597232922713059189426256080008579951541591188445561200888244891911872664319357989991000980959955678180392412228289130749854956391141146742002923053455797739987382331746483917143780783293214562288465948198050158054659924418984837317256388105641362552540166406389085542018915112047536845004766447703800581030879998198960839202077827781193935610425735494234853060553968847772144680172789220448391533151411262247988852447949184610309079288113954792285387238336339057878824861587454079938913696357281094138111408982609029183057074100405606716979557532412672763381534433955246055230875429584290762629364477551433782816481720426417721755270416957222466187898268613310526559860451148698978376419850794740007080816625432399605488378069370787126770592265596874640662059888115942625838317111102315993893980583926093968178466303253064104577341018890140705093011074675507529853836580177487027993192729461966739591604593975079986830941124345670757394728188910668769139671587163999861779355374441846576051725673873201672104722120735088889544290686235472301795846766391334748969715832282033278707537464489612471627778261808877909247643317417416367519939336968961659524092573098889682438162075357217421261420584262912881000550532603028069448533341436433269086434529524523126274670861374550263434361879249749953354256013040342854545694369258147587748901034384218401389790472580270897149565348679235265829512191556778658910452089801701988387519326326510136269711886343405817829385593154980701184802981044696832465858651020683386572049036010665402846052393076619377142382276128621902310001734736937659254181765374999963687053924209915798670923889919361966972898963899514282652769138067972002784212142694921332921423063372387654295484526020056271586014073801422107325470816931942105850902973663239152555358585113300367057635210018450818368389216774400874007814224042981413458320722715602963183508506091997237026879676399286373129989919269669798384729903651329280897277392280513756657806623790490390576176050668693164701093129163899488301817646270064542943595261387274116344131428980183877106431369557668996371631505089537623011676953122136163998648350917109061185153148007771762558329548964336810289973594056076102830740889802004856495981531005463740084337207702934034489252399935132371697257111310223386015646518951729397660187336014621340284502378805875639449425348950938728493811493921194893215200932467942959715712504045052388637866519208917981836649493994001406434662736167488219282639306553977349457743119841357475398999211777607053896908004407338586551732665032887591613970434967898615443589792353313096450324322766154128287219205499982786179958887356911493139064439227463315720906896650952186381978963058009746154278150344683002109331872998908521618885531549599045632323654393831099088336460111310593797064230040210986793437663406398530582309318628516504045168548113332699471282581330235187436954408139831951196526253862328744794903920517285082039589858739484037925229459450900570581539894037586526226183100871777062912792434067518044330980942559211313210342935457267565762872287250127577233590164922935643510378966593891974454643480290558457977443873195020089701696999479338081487562710677758550293795063624234728201590441599318096674539708009289545946805450448870614342886233055198108195745442177254281714189837223414510284554616198185939206806251790767399899222235622448766462215879215656184822368856676439336554797089647820710876207318821297129723955931593929076281479118216021833910848511664540848135034145825426092919455561761386595542812588001313695331049677023127627836036043120984625905458200315314861595711654240700161024146313615268535004875634892057546677843569925070424285920266113710477947112579574983982579103121178759241036956528085890918053751886616411612066684481234257546915712172510917622351295035175537781015121316266572222861253157995296654950190218136110454590920637459335218295051277334417078958347706785586707867374734443757650111059846007788904866596717919103464297887730595988697346979139964243675694740526324563903435240240511963916994311707460869229718088789092001343800858824010675420106226854741006658519108415146838426225173174813153713923110746021965165056486059312651987146369395097051376628697199829320393665935836752613506503663347609045900186531031709669471215861302819926965425572883851823292297383967265314159465125869181509531968340063822939746715351984607385564214137160496826163757572060181155030515964804889749417154055617962877281765790387064713156837516742258352630386910130466171058658036757402657866013120863342910824324223583427522144824551606220824632469629805233690866808831751446889470655426097040459995039199833178898536517470717841864857768467757823875361505515028554121860435224342216428227840548668411510071877837647925107624957847531628178426660182007751618439768174559532421727901464833056342820419116950077109338504939410833163936489904738400824302011330937558717336036506541914510886403696916615073781551274626004165142969880002317461358289700665025818698984990028170123912233336220055145250365459419597863897099441081272413040051005224712927288452995134256457204627865571992463849392425281004645271257466362394478492304402316118103567481513648888326486443644858971843443658722847024710741309574972161993763905371169252909795581473265479412036395067117030221700777198782261030739961726682005512262991470861777731928714680734179016878279736632182025940362505584249154091568158967259229448879416060758266724610371740827932483677492226596607765847301462607367949958159888905825483210626362517231114877581027352617888181093860511936568124357764627596627093692338828217339496995162345505943004387473882473426470709937383937877649545879906887929342179278908240381123315033986922057971602080983781928438136838801983410966060364338120519821725311353919055474477182175213805268728420278734527047275299800684227505243973922265125696358567855674975481254544895855185690930805054857771353412646022508120008333570533382515955699104197702512226727248365135410888970170190754335538033920190246498430593325665604560863915922282257734101906356474609612020478066292993155206153045321174415280903806444116804157167205268320814965260931814843225931309558101292114931135716518654471157432677622566441672457764343100426679666253483088606118099447669035554448199629335936637050305942883170286110824951595872145002465254412728017161032604283437504795010966163855224600203064579593970293892723515893465435061780821312735178680980069135644181517668871503255042053576000363461956463125115497623512986180798073664289926221667178967872267748252263458809215038095463888225645005162708959118851982623303177264780785631868260867736112463109527515747639020289795810577514665684348179188118363044732415024287578394346078147509948594220946720095701630859904962639420602283431148679693662128578921850742405704812794392210148692828610315948337065140695167095031928934593779716664964863368064684772332206328459261173770010501370978966853433122036604106879799820171886810945813715803718810318614834930283920201968494591034907658828232523121674510872927174069209024092740446116788398243720705254842869776723743824085118269447992815868514688370636010083761321741797901846012638250826007122504212317693842901440120813445586032560645604626312289401343471769807670359709678354845221237156496328343562855403363768381368734130258953648230718692552563562907770347082722130858826767359240496396117419845792876524881965673163849042268386103149997810089924882278110763924382947026909199807731656872554659128999834325485613949425653100057069821552527306233009309046346896961440981442445388820704956882624834606004495386401273833084187307050042421204613836205877024637087307796897547502530799335380804555783632759308669248036189028248616792423662484283447230317436931612244525375800958736849382613106218942057778547625329767021390205184900658900726665374563660629204254600501217434432110133704304029795851147431668458173425201145384146147138567533115685476113614944528615548820482084158929706807315769237012487928487604903898878219943457396855955633253640807143518355289542646800366108797942849349056058346806721415657889525001933433747298189963505319763186023762178095117726057556354303908011823925736616085435250339976209267923460262117924172780610674427502765260427776066465949987690766963476589777188668488938653431552635099331898405721442983738029884675192543310538721333000893573165579659124946968686657475318636426618812928338427725798420386280049198008114373192126632893806260969325984593493133696827902776278020890054586800343175223814678037354638960290573433660442624636434425521528065000304973348026642893776733256160296514150976991110622172224924962381256943516416414258556795377084497087467755732970551755001324739393473468943113700358334151059115103207556218315902215251296882941426888738107843847633977135864864645620386482257301177739023317080204334928891008515426137015635387449885050503112627956333913278579422455305046278725570383527826914846842227810612621360990533290374813980175482132916132147064296475075302973960058068575130981251909938865265771220021591753463410640329090362658245423005587627310575969718483403585649466745476446922388583211306468107231217132971954542348338924760742415265947657953997612766631265957172289912319716396814824403986431281729307184483567671370659845707000330510986052432716379547019537072413145659142696227458892960495243336418388457240764861680165286640985577253603724504936943555198123446775198840988412339993045175771934784848311302604799510215842161120729673826482050603284198988952324111483011026066357322108830343159227389488173931710765914190710691225610562613302875904977150637711965616251718015250940777304436369488302105932476740902103352390798601072774888860750896205925385071141200742591260105843447210704417692832002539952369184297247644260010657532385038044763459791311082552961937522649217742732076077082721894944665036843732363810010876642634558491362788810504786558414766396059540139439144003562162964524670721552998653692140817250056080928122050606445533228543250341195648128507237473896378229264147868151055729725213170254845742994270033008431911280037554264501990740926336602195070146098069267601130541726721950339924514819607531206124307346196543582967082668580810053834245751905084379343957013888421317146735968187523696355734302213523889487608318898762966346738355286885826939291337698676223125224917304674120803114727717085953592342850266955354198534314485636457534151868167611422254869420388302764600310526337367786355411939333383629653238708911243140352943169921373697728182528531417224775383281064332572937503993659776381621480002295397061679783833992569141867905033039426107918155715579431860351818084632185346193173932888012711152252249454091784257479152925197951115992856887810939928654022395913597797023716309462675439879775958894581397014033357544669316188595456751216124019296489810292301229168509304763990899653125365650407386899916725097933678426954999441580277686475019517891653854423130276239516538857527714605691160785261256244184898894271130584561489001922006460750686972377495384802349494748118398284280722109089598613013139919813246125128691988020786367408663617783754019407510710635671752599035500493981343737622666115711301314536130466448888227815188102335762171538559548805558395739601085503306467243799985201277806884729142564249479337976218661395417135802958076274377446955425823516490521889370248449200126693007262283561534655666463649054323573326993629753363106694386332066515315063218347302902325452096556311241011243014125301729341993267534502478698253009076347220049727115690629172595499035934558069068102762957977597628566825668730834841889210037959134292817699811876844595641571764854411778138932985081964294158255807628863544045693358823375992210565263427607553204864348676013298506915167542378300708539380827091348421657913517609976002586255797789392970911543747336655593919118187554691563158398130355408080192311076976973387841614356650534587392083029883813548312276163141792896286299635050351276320296814562721695182936708421458829599215896557384132786480044633658089407661559334979846089031904998995368365746460002844285305320857366491077860861664294465591603674994785003089704984280407720143646303927922637289590554974830723209045567455991749803704206360680348988894246230380161037150134580117577199266435221137260585113019257226745865310935382024389833725753122350918203266340329439147586476364839609790078521861369302324257103675108076678438485458030430316731081252888579208045469002404984812986651045556088985500806454011274854592248778465536716254816747444445069725062495764666949535717105200066174986189501618651531489469373326619570826349300903113228433500658936477155970003951689994655280112119571702705443503344956820575606635630702847146915360817418630112901711074774485466011688812945630705992351538682727709715541558162901447172961606710782575706178730923977674331026858140884951330913888750680845832488108083093944627111442728252312096313207946025226466336727002605843674086942999863145433194381306969968796266273152298103467140920606593557642368268653997990911789961568621856356583143871565477175215664014918454039831676860812862676918927028518720267164446096256549307152140521343560000146651458926789799539778671851556013218381654249940356971178953132518172418981807494714645564471865130580854094710288748159131856490468404702070308675429564287528060731865626874308097259232489841303690759719386397334082715033790091826618567280157335413535909337635121377474962577685791161609958889859810129225197048775954081783599894218599857483139879744392077833760846143771028763718881195310471877172776479339008161102052232516832005861613933961997559982977469823354586173660607153588518084651114821124075592558359070009771887037899795970069469073599009455698276838917009296915624579688880379691619689000104891017544304850802887514483198805269610094849272414395971031079522259516973685861750210727986454126002307890248330658642977101659481975324483030249437912144914291544182352688458873289288908253049411616360326471647028789105207392191591901181411613575337986553665661022380881915009395507842522025483234154945150430923618409126204401762112325220206371612112367148581119105522870921447231520246753668952073001077454123027985212581869732528725377652226718835009776398128250352799584805321216034645482737226661739880143980369575753457427057988320143364945823919072512672340040632230819170281505057632433027681039941816856451813550829258884364922238394425016115469002541157455934869875661306032820130892210025576121210034281724948447800179131698724762853261287988401271211568500320456121019351856654466884619773690350518061582296259980747788792676545728414117310854449846944887181195138638219956461885627028674246136486135690307664153555911794019677036527196902243592411431763066474285436021013817317370597825516070705292471172079773349407447062410870733758441327120570813797799676415127632169478262430480735280058028714604179816479017730455698619554362825193648041382330258470722579638274997803647547960063681093872166565108537899184005025448831202452567689244261205661520681106968290677192828891444362273755008514212730597901314586730845110795249122888888797528148753174842292226768365879003714935721486278064620224711773851401922677513887710099716054260402975576179266178330551875896016018496670663362377034111214705059329470628937146225281757461092872636500849269785431891309258242618523986906847559154520738563573352411580188294476913520009690107326769737603753702071514072381328804302463586723426560284554393715983042783404029534834348404789300226987925786494615752865956686986952545984939173403858794229124318283531237912981834575992724264560025322145672614014307819437345845393857465036869663803380467708898966372710499550254413799397163668878755073938199680195076292519893378299220358394773166016354475215072576284654313432364315915837062697958623911697230520690889122080762417310119635093657088027793319199702643063292057753349806220371369200602327033969687489476999854661084548487169146595822953017009866604435517121524887426678260088028396701109616434675133090643030275114976550544325926215369581586176765227710125734661180201848682151160781994084699380203531350027602194663211011661877255016165283759652482797123214716429452689334087316011356339730238404584458684103412084447867077052339704046707147942509182258916756152115988248810753059031095557246401390069772716248207482678601274174718381620535117659769907142295125050592205121489480760808931575771662437599293646994740439533789558490773170827564492296178028311282445935133156100007865319582576040298632460638570207603106311215035624332950484382473840896893015449672863542238657990361329464324870857080187882824453932412283707021503107648371183456191285075751034088230744027466215516241681353999649420918177930257226612347957822721026136398463018156252321935296623033972900980575223141528079360145272203686152305442597551681002703512697514007045957332029794427769417783792792031560980508016681187487189767412349631457104317170428386042847733194686412173397235542789771943816716659069020762330580569612941759328372583119750634622711138538275437264396091117796546750924235843420135207755131282169181815588495288879913121267905907838832766995947583355512550037046969640254653051671720130336276609176758174586068299439494654035125166923484147323310242989607668651105129194826619971732200983235366488581940670386014384832037541567099233783940412857836374618786533113118171936245173054821269944531210100519223589646734441280313582564039412358120199081566408591032389405083683780465736304767802924190689641986889839583755341764890104804156808991661609735518260439663062127534207108880963859672204354720131258657907565849971788639184748575916563723853725988478003271419882908123987186118661692712939358553297017730616186350082327075876588399657744821163781766418555099099603928502872914401754864850556831053289438097859268603760568367460570509124081319612985164478490807206418212203968934661555756597904978022140653749115430052801477060791183339494800312723574812379484316995731776901185440773074589512192256837234220042473659747108955558441803652065981896758115915371409804039699154495561187515835968354413831157244155986546522916112960220447890374527285528367568416002252063122315846182273062302913249176068298908870658104546601490750056763906469801990760330993393692213932407409460669687364825552395527886233285276819975302175216740107717866946784567674886506665858434880715965994797875065803902751778540343032615564210493705074028397316489166501453956661632365441998412310279970259679067755830310100324155066163950452345590249869958878352455999555191798014987463685472242135287908691991033259599278986501778085756098480191339372683526917705023042392707335749064098229187356539336395617891220349665849355652788815226835103770271389382283281654436689743047500072202020487457499173561970335557378684622809642860774614346443221536611690512257233268452003102282351916685522352918001665926572005775814997351877202072194924691888097956645130273769613047796545515957599418331213477512189238839355746437938968797454159432901117557225350402880281438691542077235992306961318032926003551301269144917077248414467282310476105136264822251701710365919683680049385837418973847318196598200087663381028110933017964586116306910880443253805478238858091596153634131760157204004015913458608303750124286817137240124378567139263241093889466530650427175212964858101882757480723684096350668162113969553217917385550979362519396653802715155606523887603517381654887525410089679112160733627668492016234850111847321148323093658454328788891641573833215731168206809860003322401247496677127140306348291589563647848581754543835518022469419823804553676346771445813661802341586855438285000447962732784679066208407477300696630894996368112342753586646191022420747107307820235365769167219046008264777469770250768094065799212116688222677570756110752053514191724433019397443767308577733326805203443736237149258666634766829141994577519095052661945590942252376745571464757411035465579611922821257167259373004206025270808368477482903808958492718395263652950587124360029892595090470094383226430533716719056963557366952222274982557844379651078352271074077275163406542091202056085036027860735303860650863969706371795462848344936998666006998294255203541429628271624843581537008082073314336507460278827910289180256646779333242737768203111133110123396128165133617038608504000265607999146504876140571493677439264929640930343211400406400014792105276900299675787718993251642788889686198974235952375558812623242472970818171044022682310642213163016421963034050369261247837452588232718669023350684530242313833502547159418122521566497268608984867989026882991529266026631201990228867057589362674786673348637912034207462182867626477260085968896761091068967570938417750326072169728208150589665999313821353529525275294003330945358097297670874524626361049999373136115452463866607839399054888512073913989206594477185037520282486496447498279938431848000917540061315390104500285019522346547928095411696448899139086408048471435842185624394417324562591825672164294748644678409175560573009504417254147922555888347739433924086775237203029105270595417709440948852988095580221376292803284103310721134442605133591494856748117698382515282887389881892797847799038745632401447800141134965060360643802279809805092010924702217514691732348956754109553273450936023885786399237038848621426092004419528591159916022624883097748116414683961080324843360045430144486372957378576400544855387243805656759931002824425675571267405877054092656116565039001325473967335255734519509140608366457402172847975991701546372205509292967277013829532694280160402672320094837637103252152581598403547699234773624734647931596510305805497482820397064746608020836685436350356645729141902356679528371717458322153585932553445775499856435827852058958835803183986565846441684244539455693373270677333873700816070896377614635846558637202398421073133916590053020399631607421660605450350149559726660171806850524818275367459360545722103079430215614245707023965609694849568748352306929910514613794019437410783668807004582555523840180194966283447083084484520551961856465084709825289273775419046262440895190629365483821741836510217764715600525390798764553912081477040463845522233317578110663124100461440680659231078755786914614116787403841414517483020946359976487415891526082647889388075284212367033941455329282445087510602962600898906577879632069461048302156854019770588027577571099646153601703732506924420998294555535796458613133201118254673673501218931304130781946155151846945134325733576093547596146241076785823741702183256513831462487203192951096946965758690511565906792658180230845884820312534319226954903370729858480176822791188442593523938101646458658777329137478084000615221405260122646592666656299661638263743188320818043623188426578928034581404028626640833005588682264737814308191272944766700381210770779037617320765561310473530355599618118931625911254524600015004222935086483754077667215123302817146766861990447713528207085880318071078992818983159473250939073544659819750481725907206915501979183113496897522679536314845394500817802005106955229408032806696739924507204257429367647751471704330694975840217022948798676723191987437378373026741680438841699630046170757011146571557820562709153145579781179279334699991724193722716934396633570294322806822927968367338439975549971308686682665645882729038244526161506996543775718749177362552448286363781087451033546363559870460469204097335008007207206343424004400852822042191488607641778115880946514020434270712374340091917358231098901261236190537421820797098005238210956926606643399186806480333645489872597477728771659894089371538408385791257226150798507962531561492132483644057016169538020156043696507574559252132679789605528120837275945178379217073713318935407033874516158038259654878597230788552559233649690967884990736537575451286846383249506302282193802949540722691727744596506761890240685446511987791743806460506920046948443473380705877349573622188666681853469791970743586884443663275191887175190729050020744250207045370074082082662457886484078530950024659221526735664253324503936401772714363075195619681798938837230873740563407526923672554983028764294381650755949535380203738317628147921739206481542207876238707493070862510681854750270100743115670142297306087060939784603711694002759936307125375468004240121599461191332283346609402959544004969477322187930045702728773127172137447369188517653631190110577669232283724443358529813132350967763633860797196782453301346784771533181631019035512387746851825992681593429090652166911864761366955027305070678390277415246314454825319443674203598804061343977490939600191529121595159450161472555481663027175462950087620366880267641302335994193489312423331768073751250663920984288791621010114218089485433142304859599537730859359665762632346423332289513198686662906865634369487142587731860843152843116353154436805336305158206311487770466401627331435478655249240667481372116930832513340853438268017891388260591619223592168938898336190249890268609677790748840427112826606382010218585596369754830245231354661035262491190099205722428539790543706442075058361437817016190616047668755174984055175504848402094511041416863012785718721435407589936112012114195149768909590702697665490953303352725731681498434012154844665292976524220764011960826729878033490947537290483410177604986796546330982462826619504329043450964712225293113485974561748130459777727419703326459245303991699410797454890536077408820317397750927769145084982410253528177926731304355322613645568405654168117238009042216123362542019072619425546054292856344177010368021820229535915092419325723458116584673738948580937937668281805246506992318257747027725022300439213792596895689549943612954836935747883934374496505125549622540343545663120021562076673297200408721971161407704644371800547736641170899158084490976070535587082823855910658048426459397032254981207105112924734311500075550542140513100636363872987435125566773008598481830571994581630177530856753816227312458935484549954616688583078367941584347106938280414841596073335930229952068623295485536707196371471098651387166126563127611020363128931302496160576417917410347277389949446840249321899378408519945547390954589143980701748463809579910447482816667306457442537357900876766496741318853532367291406699508997774315966057338783436716009524442107203921997463525176798435959288675863641826571700750294714751994778657025171423649298493630417802273223745770597486058261441516321574733089781624333949278062197567821022690738349440860928510559431435538550527656426639009791564107522940652822018666041578927648470396803896464290264584963405384772580491096729229739730000162986363894326906292834190748411839103150694492388397751182660948845942553136530317969225572909820466244214022048860144998363692232335007876668895531597540727878339097996056748543411926483027479689701445826344613542707544919674899920969096622126096434673827641799575608027811172277648362120569458753558675370432148721603780125729589986833644546908778258336433781159978549472672461988236898437636607835191974581253588310943960280327314872219238388352954169035672080151500189910186402443877932930347978686797284646353197495714401558448859331919648870273646179925049771299026179056678461112652272687611860418133801015032571329733370015210435290966089905522384208794866324697382193708828782286295143653446700039764192275693257248632367998057235514505755829646486699063109506141965097129232853803104707801404459931989717081070690583388788720585333219020385866573770739117914740280335305720606561064150190856910628962939224411482211179490245767037570369432009610458504771490336746533735886838551757276112719329007108888497033735857026183604864732526276194808880644052709504107609679037049609532296398628028477413504618457239943680853038370008089324089427439544779995190778964075287466709675438534660254255160701968999528334157774349809859354974373873941025160181827576367793377096361431100429641358948385695372999927478472313496435506078680947329603738579264987907097670345886915287340476313198821920201601107302572819187948684758103982128844669198173870601410251052924832825504052527570489468094808399456425496109091969748356671643242805867239351830866832167945810005892988053308946807426317581043748360731273921887019496182694129163042633534843594764596964639214732196525898646585532637705605266218933438245834714707498158529563085305910849004828920742695538467693549399752017430040592340653771405008664949936575990916358529987934104658964922576657066102476940983496015701339704246628501375357039765153330206852943655894471138215442323879021505831882015271664498940659779739806038755746606359453364218265744298685010578615119245839970580470370848079466366179930203793467407637486435879556852464629499337356737914011020774175311681492788901894789345345215314359454978766724687095927394547302055802676798549950061049916710167437381583350287175222783093862657640722434769788345018119139826150578823826456832574391598607384135258921882839454846993991878114795673543823196014853617205415698497474234925425748369840493244872159038445194850772368306270207290678464634309943200763269176906701024151388032543342110666987671256287769359570000810955991418252776158915139997707263812775128600495659099166526256158376064462833467640732096300984770509014624590236726001128866797101698959286870335020193782665388013136417415473931257720792248188927539795872616895475958100327627925452761871945473896740933961135367573495572218729626865508281301011646566080329950857279295858096699779787259275895255617009787158836466831276440362786040388312442286390687123110793932082034225400920368037216157926691090844849821858262032018748119691310818738807293462659342671333163413366030511670524341382330765464480931906313406842990219837459627040873068680977237284368913765845704087805193322406744701515691573888441688139494146696698055584134900813840794433810952928664484843918447248358326295847414820363235667877654825685928642418304772146523961164667316085397147808947507652999982099432217419674412817587649196964570145811125225805768773556283339770890034388905212546686951974139049922354674607888393163588056506948459878599815499800337326250532045862854136611293824760833422174892358521473435943697430621333263706996903080496140087242436575777919731099607389693658342123654187058091836129548128804922098689108746536568883960428478224714548381269390012561227628753308992914648607181242683170230423621932580864337805722926620527966891528008682086616955857476545054017778860400257383206626294731343454263002221943534374642748870885003636166595516590720845022501075945465441832394558589131906943750028553160736645605212627053444767503277093861280931869379907366830332235000931058246798336237668252698976825120439330994233350627425557284481103042439972935082851773088225201361622371992553165313938079844172292987150136860624308526775998468639098397929390993428171477757895418885505404074225757537222494111068513308195284933638116185574179835991748314537706388392707589392355350565524205330631220547228165726683590415707188269717450163257578974312910497885602753903612551488181560572990151313127992308297904160115668679262481427817582245603114445192671979161139324052641023628378498587911538312588048427101720311020818563050232480167632260678480621613969075492256573662610009501556216099661245279440327476159692730343517372987047697302796335799545490669242044711509395156589837344376980368893409505217521414043038211782129962758566682282788766748797454919438276779988116065024650457702784946263197236245608020692436748088642359523191633446519320958918651655673510118375394647658337815837335368933615325346204213922790081092381883859126529331939940197823676433993509407305382126461801707279658648466466186097313723801339183455375211668866575913677322845143554243681098119812372299267616384764314273388680209661476792669457269258462024161843582536791244111614609597695349232664220241001371566188069475404469999336003198991129514570555952663406788544379066059297954503951380842232334721005261359936421068361625484000947368676548364488734566946776917004132336012999830444415725133515788655670437962832695928754354895332666274560769337510978380216486485602930584380802686433133926481109705099095485585215718335528501000963510919237327199988949751002569931246684376085791068417001217225531066714396205483836428541996164226247064748265849782576426852965885035889178334379704207654041473326591517988521674961093378440355783664641473887735905034285191623547405711977119349451337468117095565928867265288591620480432201532380580949648567652825583112851819500446321485774440656182457619001629352304700286403690149931093077451159324715340044871314543071486220867635177528178156239590881768539362060702254552238125261725052146569095948173308437678539768129280045740645870707548431004167535465301968671488697833527876036387371850761861630409640070369962502600132129942446514984787740424658213566559483263144477830286827871087640230686826800217287461311601407082999893840314984180722721323409805443759846264517038629716047239848385782282410638251984902597527542295245195299111752002065284646833648497080294920482675978282840313551023710928073969214132555286190364246181407884141325010309166778467847834901816858461930441076700200050554661690261874221977636685763456510514249942846160127512544169902213619385833306750941563349919802965348763972362649340884890392733860068351955873560787073733249296057795766897571393464390919332885708086451100730273073973467316392474993538140307016185126634928657055418183166657714804894165832745451673118728138345847770374610323187436205717376786050647485873769402257391096331478127585076705884779385530675696244728771720486855537625092160156102470677988939347208851031406673061398055404586123510297455504488093603215458859381334663095854510539386911567316004129506441826339605978733980724579166922498223019302721861012533410804040775666342911206247156731684193021581396065000864435288011288054485455392832514289180419152136237975038954512870899107827876972942171328411925792761346304931330388653797293144561403052518686413442444659038132184432415065798933885269992163418108538881897421528805622984887043005326281629902199591072536324043655519672950161887630396936938657108130490270020525304668644402106348306544885426168356459941516211489902390462095178940012393067548865700684100072105252886117936005402086252586388534121274782183550540229673195698242187888800009211137176177513191576467302094312039340360978404680604491404746329835405065032385899006473577008971364950065162678469872435859741043595540369324694580225673418378055369280519302800464603559257476251795021986512167280061665702729578131087806018690664524244740274686615904820337373780240441441588500929679867529449419193386478861166509324686055406837039785193324485176121786413485466999007271796413870824102436100547677270298112837478227853795582750640813514544324941649713652717261286605939218669209643379630939152893512706156443829462980533673159943578880831020224143883864884926513153264899704612614671879266747239515367375732866194145017653124550410759266416088810416146272780614897871197763097260334201952680918019877844498766129493975862515352782119155280471075291966571042724574706845503431223696862745011663810239100728576841534557633408886949841938931376211225713998907903513436047513988123506019280850656845103692785089422151400344742758082517776918784010411554841288892509267811227124448576489308834223251535491284627468101401918930804776505169557069214815778043709063096356745271041462983913475680136288066349707884104731720223563960558826815525334544654521510022355773938217394432658208604473214772616543591305161437395536134554688588173644042928867820431271238667191964112566208633664736796129993209685098838264919825340313801604663302991822765340725034868405675636236263810924285630119083712731793120514491653397797588298577627767545404722150921694617979428450084960747391839935781556459535003553712193955858826166067677115172764773524712533603591168493715977223585062666208362671180746677793881149327169015963692158478414095082558228939568675516260268065608159437712021675019113294162209749280786058401353292410333198507819726704677871690504079294829946317234291956933190450191148394224100113201781686263304082146609593332586899397162013482649885192596492372502746614910645211942271415887478221628610462379842234542572550262372897103899823663351930408724807483740252682126514836197177138425188916455224497617876990698272965567113926800763391046140492790420010879590620857117628365267418178323136632998094958006590051612094972873943469295415607238310856475707028614922194019795123195984850717802259996403933667807961920513567872549621780258602973628150461649213473763536840275281062907148356892658834868503826357794659914280332264382166860463494030876380993825474887321296955742999281580860128113040580473816991087437676222670227392509495072596100050644684695107328292518447674998306534701660470482274480304640960542605960023597592494050278564199963224072570909777777942566647408590103218659980459416091425291655782194287018430181569207738355635403149344751056513763400531981925157625272138782113385707222927666673303381259673489328113081533205076373800072204385727693152453177370971526257708825666271859149685910917869100146648894568184134722448727038663061325814395266066642063925467344342454291679108848369033064671401744902366642561863599790289466764255953234618216512222436021843221028194111521033604161746383690286616768681851258664539187678430633677895253821101014260790147828088781533701393629033276828509271366231260908736255181754110474473196639922070282482118314245798388678284660152377966832683466668085730103682098396028005026747774918790706768493973142525521559197418369644367608461362370039871465241956227952175236976141744619676943682856223822895790235471919828792879455061763678610150469400239454593200379716544087215943809163221768929733304754962325524252283570997525744192538975391446630228492348715406250353447277455745957143171755391192802792790466556505798152779714971998534329655433752492827967936391903512084020882640354245937232351148083592451986984744299736715451079126411213172002184188154223664104443195230298279614157470342534815130357748220823789686166978554853469147413983198479049759991390895949988579767157674111184306278013404793692922884599426155176653548066368272531587674434109166437373389988212795906408131130342485717166658127811049454264249179342408023701208260477572118177469309527206016913849638281111576456907549917483593223210131853091509901132708284474538267318832800951597809401265516098788667683580842130060990036102620370959542459965170740453432159236640842354392935757848150514118596310895174213941181077484959114677958392902442323227169821240811509520098908566040015041227879492105425472441081934888378944297197031568636691522966436899627863130443571557916859890704362842172668828292465717741667846775058041414843578345920977464223309075661658208244779152470460036888591017014225229007702407796565825537960147109195625403526303449717824942145034053440594787497016373333215909436549742856981561856442157532432138040938026492745077755425572170981478675352286534610106782252793473760817386254848015087231920971779903121644416661810907256358694516523220220834959927088270876178415905112181350491922536857621290493280499584264896643523359050969963708107472700138028666656832069281396140660587411671306506405463635119434307774178027690009944250039671996892047606865682684996144330805336718823805635886905869343332977722723640005716678624798297899639942619285147855762060248906538346140370394128864374770039390380557132358498709449127536322771923524100117869281054756817467615211119416495081124230669803811444322146608523851347454632007385492175496458102486444363632559487035532827223259757563211865629218562904286284914364421545437099790240747680466909130289672810544874150869877748281886160645322050190340185738553001659598069682451545012010157332106081278312691299140274031924391152545402971053557307421580028397971419570130107000368693541660509478490884037768825365317757688576357835514138640245075135193010690850141468313113415825215784905301364498479646519763175729138419469703708069866333226870937870930130276395631035242979008809937736515243620954655270653995742522364162743429839788791197988761132214878746116393981758613888392622424140901861388212652089436616943263330429363977851589162581866918491038449676418586583148019553031053639693928120082267348872906775698403618601067647259841382559202227940887671344545910216259204065313289103041427129482813938556807939801798711315662651575769520515907707389526800070535194061301428105874798810453712857391980185738928191809833248050141011389020278179694527775747655973175727670260245351760526098563271655124932181044367074827807459232514970305792082241183594605699262087466024434022126407073210260360143589339215742913064599064532615062699223252156500381007755610247989264554301963331198650002069869264252307564478902654600785194708776533127993027253346960770231370691362279896583078885628897742537519425619760278272163747156481956340178981222139108754616958436873881731911507829524291702930027456225058794152100152604247817280270853800318503145947030088142492189717913897069538706582335946666924169397772020800299230444816646662659462221566958464968775786565963110660419190909996148906608931109826607153912279226794207722824467976290956690741072373981770393573832422513520522655401211064072876042661457656956077076174006077270495842960833393697703491426010724495907871441187497823696166139374177462517011112368898091735102646988611415814375185292050270114342283965962417850712528050243581412716945387101816455253605572665696192926914336152282287049203920172698300301041179394966426632686304598942269471163991460309872352537767339972164726771925240162643137923166950080539735188687109272798524274305324039916665268317287989944805173038777367746483111189806926316199262459109996230865111611601470322733627699343630415225209300667588400871503698672203512236512535229406176483790691778267911407996474526404386882065728891915303938661203357998215161376605534729098085913417557344847115427208959858996476584110843654429443705929110604546049389390565681860705007103772713757261560821706976023308173903731004484286297513181318578947280497331134036700940837168896679755266437668042143346662671791735718856845876211356086889531162451040690794313727768267042082752453080513159867223873026930081298563965342534559851440318635420257267267495962452262115034494673304722342685144548825795768394318513018830485829055089568686979835310477262497283410700813912003733289535606342942581857542683698993224825358369045797769845066689652249876599845750412430919370024775432053791751311313630850636968266229548949654236935616771018271682297066136796361720386325384060884213217712359446830775861512288260941635027648777565583809005884765310093684583789353592541843975223560603985982267868575323867263529223406879740001060752444888308916272703114288370934644804925130578261557294375524943078296608697814809213423603901473210498489320599925226073342892448730686750815512980027762005870019995374281288009814405170288808424171769359465008167867967180684609056116656476605529291622114301817987267274841579726620112794138843051502383235214196034913914520387364883725493951623630196456684233036106184916170608479652224441176143114886055406008587611191709777219072802212680335880525405088875370824994157844197856950392818655589928206943704042831520325199011565961664447414544409716054666386753178189081621160609555605807834842479263189582199347806225017997156994067988601134734535262782468581657451017489455652561231160753622905955858610631139378627149634726508306227403336864706771922527940549364391019915726156978066400420675173203191846546183413570244105987696922665482471860993843707978760995796153366889036128350430067875398953297917060928930479939651374129900112297276475477510098717474208928735053551066968975980710368401446354225468762078058117340141513774820547232985855635460141860658307622328946310145867659243938022996011815635970928663085359436795808615575454164842258768008264719876704398907970921147165746814437036147650531065161344022700537741086818269445399071108500108817921565237765934338037606076735534269849578517462734961079423005066774462616183446070271522073766837427024995586209490098824686366007426943114836930979553755582304075754272083563474518697622925288293602494958224398481060000982527273322768159349965882958066518808789710191662879308384615745999807541957720788423258719161139269984804994571458993254283618490267980865914460785954254584693168924488164974774737578719004393677002151790520211748483717846550773909057768444294011729733460041591112902063137371824294954227549212009123876054355774687342375032075860718429912533014215642146130605641263428472603180532979353058540415816566144056934169810488550539232127778820762386801846701442130572293292938678145728824979517943828908234148989425084090704170431489623977133497656125499192447809920481006960167493057358868530486557269922354558124818308501862054358684531903875011676585957422483987714419506645076463424947158170029402773166736475721609373885662648138774338225597854074310540342014229976521081440336009907616181421532764884363603553221398155251562464896776487365291774159197404221388266115562840679476709058866120715939065197066578979672519783054918218604667343369288391645695936515499381143314607386156592205884782868230473355940949216085026521402861678377255096300159103078625301052240511186640993129663896390404705478036124144758658322364348087440152836880262088406332704412170207462888662058018472525718406638233411192441004665427744986360789152560330484997140032710074613231343440650306954751408783715850440587914434309196412332947228465584935309522580217838423010538376782496570554416759470661599130770680961451012338422689191497115678076559321714185032073979215801006555983898562515773732513049418737051234022397512849977674979945659061820067474489996122593797227157498540242137264792699156556294879891169200884084958256054431246110959731487835553357759955633861640982799187687977288723506975386445565807512486453870093678702803772011976613613655389108878286308403115322059142943798477320459932959882452926770280624025947795835204276266726363037859780854229329721974423138583009981074989629624656806288041426314910696875974908193540125173992463598099283065192730179923833876463782548219051395372674522995453153136668763540479564582174544637618476582961128082067871585548022214461560385395116784579013676391168557772627599578484297927087905688091066316847775175795738510131844120342460097331312732860171133604741662811623006134777941244858652287845031564379118148749144134586534591632319309768734015118778977855796719935309373962581496251609089261131566436908131410664634084889846298101990176542289772484937718084662613334021294086772649130813515032694308981969201676732770119331144297537311796811486256258406956596893112275930567151239502696831160299077248641146701227627299351709369251933193307071882896499570289397276662380984764713747022766040913936406144114865623271256433127461439340404890643635368246314870255834670273740840747692311903498893961380217465200520033720350878302050652664183734973721683771708123031201194575496081967165345928503142011690894062578622361330795474829216954811021848310766006235738752301432493675191241525819995689259138637940529381476557165104601162804789936450432469320131274264984517057176657671785840726425310080486788285459545812193732864808224794231456173313385754526366494921140356539338243982584049407173182362732773221798273478317470590867170212666478119402494413322227277317904930480939112446470712917881650433712931672038194662390230441544567306862270338920717459313332104108928442123499309637188223161742492478073156605629677940799702396163933503704341244251235048790152568935153550277299219582131786235993416669143361037459859568346808479608704522589922217888630846651051575365597622132577534596128720820884286282662691116441742763233228280014982848998581130833082291754661968423802168540804967466038051391718869846527800835980279865807315776422753179535160197638700315933190304059608327280677800524062359230680530927164143222549877809066791981462661057413104503557267588349835504257744706301176843126897202985678579596963388940336903994071557791184836816480100902177930412742237060440642744245644712700559759434091926886544856053076764047325115876667527524281102077680562862168898313059473431035254740035553128810924286604775160104245530322239954804776899521472851586815299775838491367463034250350047083985416547984063975940186464681387786339020742851261769874443019896090940023956790462997739316444700487154183381775494347700058081265440351894892517593690052687078779607131520114569281820634663138668730022277124820946585185740764071191497136879052450445224185263068757521677710570375790806395457150766724289610842417641792555150914509497504318831460541602664687735036832531113142026518946726387031768335575346293986014023040410154383343570570099792742697974865910882414205841733070356076800996462596501905524664068849307730706081700296895198226100299391569255011483897302345886886640533427422734753897043818010581689918773187378474048381780521749272281659023678872864869388583736293954105685390030097585124897561802058310141685112145159314281423771833817979848095028127608918955503792713614894222169803323239000139766443067113046334592996955238972619267515320809699120928819526452197256712196173884173103167979764196834147867981758186312993613925623656511827679003078705254280223182688775354948487572717259546144520645418435100394869602206473657573331072847803217393710805681020934051214689875102985116563379108770031870999130913616624678138563772548137825078325972385741679981562580585793156252022550716343407191949640096732505908770097977700301597608726311806061255523176896989616421648759078420564505564975704958873378089199261916838025725636566431591992598383289884633526977841319842788343549147012921789398119357017884632265722234795424144100424209497221941374035970565128144720959207333747434483974440373681928386037815446380692136159592029228812450950100613557692928312409028925225618057534156122950737730517819490188247767757055290718708513952391534670282492422166802616122123900215030825650840867524214128912150413210162908022270114859526963188769483480028396451402657642531898002104628788060695469520890567753849745950555451341821980409060934783228241295771204917627096038424559964903744751557661067874334202739612586768280836792134220161320962282353210659916659641865407915127937983663408169208240183069804102727341909220107467207997499965494683415005659979688185765574107955286361341080646654987580714683670738824084682442789598742130777817323598668358439875133041826948741566395475678173749652843342795641184089075109005061155224467543530703721917060222967066220574028873280267038301151655829614311210385036154249836349527843250286041360205177975306924979639196101698134499146842368844664746640270161771513260534215147930738573763154281514463203865369392716647991323522420621840961282702099717650903566229422885759859975523104364198571870954608264099686469376247046592200465920277288517743131253398150904854468760842231415470407845846729495271138370372632340824613172343565673959106095691068226916680735059338866061419713103164881348211341702303733307855736566887784882986450045880563942875497782725625688397054932479013112365834057939105436589671578552251560021810175990911264723894653186790161322149902688226893039638294271559383059458727913111681476669136297916511166977236230019076694228999575947077310920172801486386866816024770701615392444536180832650224062113675167123379330311946286884751128129772777221246900990662604712482137192235205677878410266399102057173254185341822299478464539615722671629902724500450553518198954519587000464099679037374119588887258982985670454940519896226110922868877869270030625055439371793100510997308379868776020436128913712169455508371270278750060192603625891896311720200893382530851854918742603613986616491716377309291476566080203237004472132369949431486643180414534879462724737557135415742700999795535588361357976897426328585916749750994197373846695753771583357342223775920032463924171011616065919850588282671162133394049914119017537792665867090687424571396681615671439636348331365155999892349341147821621758090684863860009230802243722100224982563631042756186912103857287879481788351626369129435185164601395119672769157176469233834688449718587603063245745736311847894542880707632740641005019594172371313985162522223445505002676394234141577947922689445794135194052085789611543170636606151602241545930806431323355338221852190503941379308290511394998564764752589929774996717869633370808210432773323013262684823866288630621900753088932897941871599721485311810794273097489264241749601698402959264470422413022354600364452973598565868302519268072931795958555899475035047021759766683832946446990347514252372349865176153194702422440347569430002688157739840149676722659661267603766211082494015998478577106563023074437474883704195668770391718314325174064421543455061848064367953258066007596293417796869694395042519231986512166520563154440273520733279831260162028871492428360788531185673649342635219742347313605228664329298327965377023927858328526906985201681134525022059229693380568087958668222736350773351895472958973045740228861713764400865259546787960515243506731048608771635739770421043702411128542555406942298424139199301054234517281458386893802804554677882362209461159392716576525867740057143042413647241840027184608473684960032141500329096263156445338893345014181260475723512102911866544090129859685455499139282439920818594486380209727681988464100322516259272449840693372777937166295951381343109536627425470437618295603022698010546923189085495124262779188117929719210383359576921339838499658740229589277969456597224171206242549069908461162913101519532108994578914406150985154882782692747514579283278710957461141006563502135458022038411680568966046814131066686794729721015380852032598070375587170132181907055809283867558615734485211400777826132877895339643253406296913708299073033041207952406687871374913847762749201160101783124063198561863245164666566852434157358076581399715276886392313512095741161948769810061265242327652116993435142360623460523786259281884456131654860650500789706870904099679442788683418010055140759466709973785152428053275084300875573266278809117742165582716950151460835488001596612532109329152816291249987340314856692620961311450106830005639238471012588319980542334437235178085983600531017245947611911343396172631489545771269482423273255012191202059795374486341491048712146877825831048811444193690495246724178095498135304902592204224075329295798821952100298010857511906183244515582523591839291082519323982708900816417613234270445722995982654154442268170914572194647160728527634843475305952750996791722983802298399828308008706588824301904846046049323488352942425030671499698522999868923590161036613703675903974126196683934140205626642890648625880808937739989233238281778685439333270413261488272120172293781164769496670320412269379973589313564303769214758574098574736173405973203223133728964731580013853448710148108109370581280948172724030734783881570859148418876732605585265944423613986122462986505964399119894169198200494830454454945453340556837483624413637483901866778434214073549146531833961752270488870336319607354007683225940010912367030618435651612320441226929741724894744970180903105413281093253414048101218241533292478029009522867512798153026821960407458580705288085750281209800991772110717312209550819782191739807849202013432053693808687301879770732366659598084502294228785451990726660989302647358324044188216531648526908061322347665006736246994278587355737123282535967729849529781715967057332003130815864517450663017450606636610311174683064513761633347308551036718156189934920869025961875563965193229153423937028482106425363924107098079252985291932484856058586885930705589680328749727325398507926116692879859367644443046627756875095877985834552542380821051545923779148099718217591922523055099566598866652989737815830455646830437609726581339206458699813742159384433272637274346236419464789332911606298032173410666103609116520310524341423492227232760976554299558916709386362838149266779898652172508094525766856470520220049682962228619685839117587910136123833918848627266790093334107472306297808259774277768999509876948954138856429671529084811078985162256400968354460917999068078736736679805505375079428087824639335266681660181080588049589621423859907931308381611819354918508356696614943469773673358287202808962023595552727111042602961637910177417194866752317852494994951731293437457706209422741206722922802169898222342823288380928545517798052969065473661379181171252871347924240896477221611799924990765529228487256676935635192055501308633700686370657658380490099790240187282531937195416409898515515398581367563114514749843685983792864464078457174585061523782717943005240056855301994044980838223220881396037073480889458441813100352225219120442445379372355250794195265088150976494605672822260064522529401289625539813619761612808889797683760274317978442370423119341273039681033411006983027518151890980558662147225109921291172105189952177415937292022957757621659708785568270392450846800560276416741473185286175953431972412179083597830038728437507934146134952385862061121991396033297866365869942007031392153361985405806699344264512882116842923244112398687210802099692721148916977670672006089606643909780510174202495116125050865078058057689028029826445838712569424203438717074287839452005725925194772556245163937540427270387321265046524781537734918250691863703628825106293088146636429075489347782294953612086426514518730448871163034692559981232683405337389540859072907294523697968836448387915919316352802508381332511554224237945222912024842698869199545403812687936649293320716595598735730404198611236300237342960252966519240531264454660767799896582283551755947473095287206786934236060313704355748620309800413310801930044120789459385433814280938554525401151716593170133873161119703611207731928058233601756472566528022645001611697725270167711320188452878633799349254283548673811411930133074632487427243297564904252224139040840131283423296511904606081861186581109418454254643036236785413921537772525907121778480120849609741387024070974380482501424261945201766397913240226150733176919529409742945284950688897639780614165004322558340564762372040870743593352042366554161452311862256449131383909109785914818751874216661008000423289211759217558858560488987192825619413008473089049340898220553571630137567519861348308429250879762393075948613165334287371597287139274075308436318691410624004925860802951590782024907537159147349732521624931296868471271551146803973692520620852006974701923261626931806583953096506289321251448500914320046507892240004014055813535559893153327164596590725510120680254338088888516454988415266390791747981106350260440545985682991130624363889462900240592690607187587066722029839866325235336936375093624045100708281080651901050470722194546933764589594585824121315871540260272386672389914263346407741571916305064885949325059168486645266172714043998249500384865353305275792686811853180554694044022130126085070673805128400045921217317244232762208569392914895111419518044530675849773357763268389490160885062727125209806718406076801465776968796439692824802817496026219034763392734054203872189147802328818505851551138045631900653012785178670010409799770284832356420541321501688970118265949096783428562253099285952826614524099148538698427965615858719390742105272910311464770473784547611942641585555635077055147074824842184294495311389064158551609626248218721321128772369327452387609418827585057861150505695899374793124664826815632857410751101709258692437621428374370531444057435704394644564657750334846981024679373622012475563192188279432148627664673097889283069583966498902728533134093370436929924205333729791586668643561220796144421113149470427546992756605413554903198419952553891012822012932103201334737038769215879925713801106443218766483151892230987545001668061575344010357721688208037584219133156691400079675332938116845136080018349016333113053611632680179828200412871700135965494535159033661804865122345327081081244047587678251264324931196057298271816374637668556705552960787336217810755593741557957642257199054946172209390140366178952719104799827431645070082568868619672360177797295841076795538352890896510811771829402578779841701623824006256907986124143888548002081000214288658783325090636457645222721006833545278545145755048834497176158737643536709073055053366271617796571836382803678415102765517406244490391127507185487798394902987932178183241286166711135937960143270980435616375570737847773630255075609514210275845794140673546029768483493617693494653880973554459499085461649418104958233925679832134428415535083773315617707110768598627207247884045780053541355603568074794380856572879135226785462112647632496691737566577368913967338512742172574865593444255639753426379902338419544872997443900899812653574613603209598706057438679310696068897895482809076354853560363126505002798243107142227321967140554289700410652725183432188432303214219656400438235580823811675544147169654773058540885058697165457821154634330475940170613262124655078709943319168945006016416506030577668584749452090263751347987576458134944169274602151071190786316683894709020690968147127427660224414129086626745830874807011611515098471733349810871625414513411075978226998925222368902205616655969610444246544687602219579898228189288092849975922605008376779938675602827475021001462839869218885383605054719967548388068016178192188869727233763873789240905251910565260719443471044178769813744446059412236618423306319413065140235297782222551512666107095048224573052772861374456687425341163527375683437065341048315108137649077370020690609472753992595580718219531620464289254005251858475548847432307693829265284358479207888989509158276475039096908597476483470640097987004245255344678647715701710184642786135092840908623897817258843173596704234517622728866897109944632368983953919536831594652407467134066199888886491219871722894034313344629875201721714179752286878956044392275023853065477335652055628998558189328437564434132697336425992453291788175606158767182785394667735951689297855122671626290220984890220121476170828473802566907034607122534952526658339929123433962779252556905497737116586999129686767409128400308652085285392859587682606204280272070910974610689001834432563413294260311591135327655539294642895904066378802595993098827529373584543989963979198380961440692693185629359943844126645910476717585189634867180947683182057195369199304432437398543150682244526778574100629644597215020969703548833537972070764432558788442629864882337714438924979276905581946104774615332986398241710940736409517095295900540119708296129063684446271102627256756528942980387710184470261099065116033580476430934583951582619254213223620940665675018839732353324644495557852992338633572867673374070102573370107132225939522031026836101112796515616704501539126120550791078705208477029861797321501748652286327567988015810497872052511239752923504567983278316052458924831344907004983374470663421449202121529558486297296519586317443901422127768950652741282631092574044973176826522934191088330349271357140846214830837667056229050620781111301041113136730325520325345377522729106473480061174494725336084658057911442898248737988399634912910631940694614378688996326894712383326672652747235980172747892456345983806388114257470830754677387239172561567757989185368219364786197993107454166647402542041690077803082063386850919258522506672044722353296485419903994768728830147426470788657115088167967347162551772363605488784678807081462195482433516008772870529063457545616363062015305785042476026192286370019373630292169207391802833879398397417248991544349250747880056332275132438400751658438581724952533113724427669419319358145078083073179399182208126389428371435896154592441183451368061983030073148817635662984925573776234660742302589132296008761968065697178555240711924260988786534559393643974744193827715136608705004582546379430537251511690104453601352044750781635381948465173831207885442834901472480910455926596658743113416840274165365279356453814179480783006230871359817025010502986002300486699189956226664052094332872258785690215593459741893896760462252714865759957150128526746793809450568995242256300682000151216482756675109352924949679412595463339712039885667455471227760730841010447852002417861547822007410728149957586593412641036066059140590719421724582982365628266270480194874109432765335104842437565691502154367054822371147284453493809932888194694991039164756462118216067267205705837606026132712150072122503124529679189582627887328576092335847555725925133994712262751362252604538628859193684492615577194148840945258628409764248469131677323998477045589480723853205995540897591760183839081783263740310776722342180658511136377272074488872182043233759541255024111080371150189596416002102203212221669393255391003748189268627532064867451998951669329803998052755360788383348107179258428190522336330154882828718949681724700187915003432460446042542346966842482651488585203883890800515649397704913152396678038316682598957403317707723060985539713375304794272054288500445859420612937630307285076720697708443054728269683881899314653740969489955656635596773650296946113021123886097431430774804868611205190560358281557819719964660406153464643331007767344769026165843359274623230266718262651201671203389236784151759840545043861314152103763279293965446990518978187824853166607306774957873101885952936815906219278623154526181279954431684592188415903441405215440541280856430481709698808672587539611121056872932232948811544205856836003517749210734419697499207902693580057398045214102967858296803821169643216345776948854616985797887661835259933466319220297730192443386796317023775802634027855187379066760942721926845364133954992114488234825074332952782340780498923351823968457099463159108439167961818804263943903217993448776822567154210005940529211084931338180334455047670714837489061605532832177915700300762765544113682428612157922138851795585620962221528338093754403668146481962011837728379469327350517442611767808552716549858167812954908225595508227147532813493238321637579554868872535746508247386357352801333216098993240340789445999595087127436784995020054089932987205158141074804796513500233460254055450817085669978997316880739436687470609296376173027914431149576525953644609915843334644988243352842946021566283353413342247276884092394399140588056585804991877635456427841866797124064307711810040847703845462477263850601141274737778583201747183773160666677758458166775499199453215813400878596408001589809486054803178439202383252865866800362764087990610553935978360451756000838132295735523496024879662247243452974946144398138560745812110274171183007678141365644325722296779483179270612799500265484192108060239177225576231457822615563029135849252468781004334142024301069194483406037125472998511766551030576871650387270751560404675195778243098516143824643404904164373448212896211624792127455967427647638001072681743198551994778013178845288229662201338158576313075618722967536730292872336244081417598027418515891115654495577475588551034752581355119107496446846195253707853395804638914146289475784028727816200773968511263770664367996361495074813377593226911110135412292183139292148337396096104952962120981832539539288807496856558070861447885882797475671495680207817487676508283861615930253933428425257463702566795950905411146982872094767825788450553764908295201858987925878225506749223986297210527650293233474225708939024989140226034016398143288365347991340356675334430337702166961756105419588959621835899942834443789667859581877827344219170700554384292587577630111225534684547567697997493922900772132245145250000955183029773720587346669998805605749532840087375368418333824362434919854224947759781970377550498290908687873494034329556394887170131829941216569569205561034968788689712474389098496842903688783493768691725136094615358416262280594618521353020628148969911646559584114321210112072717394554815954687567585629762243097161561943943443013511485192115673332846017432985398732342912847598743567944536513923959747007814330183555707530759725222015214395761220805422902638535691223179407163259712225616335504275290630789167964488600230641048668105764104868754628289199142280154714233137177862756254889288167978078993585912798953124134267111940783261365081326506169747670397802580091409752667298741838614492899812991129039020880010365501823632051543029149025727201593527867610486235394242739659348762290428140488734232652749690340588129079290871844502027758382536852167446723708932106303253379942594045167823037701447518071856412408563274558433465767126255623580449410671175858138095655270268588785625780400318674911394985853698649845616872882596132337777459869297505537444371474299818296436023697206380622122745731385767038776697437052443965547931865851673028122492896263032463173299556164273509454746464243513168905716662329212334716318750657123003192500855304147735239302273511439810171893807945979672953994511487950621603326878180330303518824561680255772428278238638545026276490140071324881063162977044729652337035336054082996298952085004931838374090080130692648136928675999282705299413656994269793849093180128233649951327692839467896127256358788942419636380538778415939511677118630894212019498078937875994668233777937059818300441908012675534879950613594869086900039560915420352564323554099325033530358465498687253322131547029890071834351485924302286383631071639811979837799746864816511992787438852314976082404542582970310722898119882739229775097615989960684716016946107877813506439353564433302113739601513743623975091880837236829984346302979919407691599019836731186714413320653675814587590693590816390955871311754198162001174889854520737958995233177514377786997368169585053295562301959179732301816380592155500070621331422186420805008260872019418376398640731377589771879310413378983065180991265384417369373809659227011087604602160852287369536962392013148379611071804374815842308525906896968747962811257538769446711926923161412896758757675318558547752509072731411069758241976344812300202268369988518618700388076154204014683475648454909433439460877309625342860722963627868980761605488804625648678405026979784535058232441108529154380478334713783973894704567238777084034655939028153533988323097852051486172421727666158823632824583793318288893703990209459441646053354578295908276037995118481104055188286598526321789602093216596999257393299520557732685207213547464821178475092375047930534021157696777597185969675717062193769263477449096926086871362942006495745510778705098613370902528045649571707665592370430569833411763005912522536641511201830349594936975879139821741788882812473778052414504185848636874931524877770635939263999874272543584676693904524472479565199003298573550625386689748053909574721061140817663598961871090830422694692615358771595608453509076718368207154963742738380252977620363322351075053406935707049455612022654687294904408844331504905503074997261969997537976515942997720968881105035893779617828936596594373805631218657863427653466611953486154173958092957867845185452062132179233300558315331686124782028597140425943361286699525243195522794994648258695932823619556876914228978031234682357665968470045554255388385312587764974681201851037950917829437184773509056800621014167673301053122735794641519926348339854494012855498756633150221917718690722838002332726508043621402937647633494090416662755661244296779369564867695964849744835309577711403477658484884843523653805975529926622027062523325948310221802452801287164960898632318296071011531068760142666758228875214062715606922963071113056521286199033463925520366874293335809598786431382307450127098830063525516219659996044885687968209768301160166494837500205340647357182884695325292217310324017116081164692857750536496082448224133929587438508309130644907383934736692675877991119054630645477970714122758367604865141358664418830907656122148921557385589725782930419394666171915610229326272120254060287074255854544261640880689725701491198197735985474380455964623579552065374454288279121169557667224591331198860477824475776354714303273736456539602736906134042015630665093509005138498772902549936320796947524517264931041781622623298984928664347799815050839920766857829608329022611094299234098538945975297307486737543473442039866176519665478195357121203260280685605523614676021857974207905170038690580002800426024443191070484673143650956621760706435797350128372106529789343238364190021911543761620200932798236446308704932976697197826856271543017498370266220297846111459789453006507376976309666507257094590373064050074620145400180060559481512274917176650819934169313532272442728158865320892996703397521365313697533070934587325786776668145590172892593846044887097825499736124266790654944014675603909675864064026723693916634457263181163386623407300798541333123728874419726980628101120812008279791266949512067481728760571297605706189403794308540336100014735561794755779321682356329550954084540171804078612532672050431531635418478498372324398120185495403342814935051250115183427441353487167275275856286415806634083961638333847628631555642061759069755062441041912417953339119948400774316012677261387162627800945407804260545647184669185600164547311618499313625956129861990679864961235576256807752246150133927450790846589918668765978575617781098274108088288267499014682247352806678475225069908515280994685512111452956704098385110003588261403204480815700830827736187096919652681089595078953928448408746216816407950992069352513427722982901054670723273679785748039177378498535841904494677278523958965946942183695226360897893341454997877768440126593035191038548364041545650959527343262583525420832735197788147076014836219670781861272944215348597565475724041644360708578937024355355161149879823778361405557894544303367009239953069742127323508048659265693648634828240270700391916768427766459316157526625295837015053808662354737451839448952619882561133897863703607386995392696569028598958087721761926937228749623595645802138084681683336350436040073870228611968415698374414293185180757530393614342086787204410142018144468654540763558422413228412256402167480431093207438791686077817914821160682251718074444287676523216231515539335308450491911685993874639527544462973157514730319468424854324530985165758703845914367213710150546966443764076298458291837066849698409946676637241556512066537135837590723824753447103762240285688825572708657125394576939399089479223968060116591095607771605248318725384805455431514523043897863337862534029060629813883691434742802067857393152033610753139471144061435224890922146888389001125718386387531048416138988805775355871434871526470174356074997149249076557446707573884869592313031696714481520899561407304877400987102574596731438959275729729902561068854065630101357529321196861513797375136013765451578463901278939792301699882517557989936322538476203790505682605111927648654155218266058349433746587929916662855237280521918435657436413240319160690096406858429743458644543493549875731513477059180390580055373077829598525458187863823887129170444259507207958326273622328310748596423180857155141588658589712771784269371278936236938034426718769317927977701843369632356595600758422441548961951157599367087154887200921889529208520386063101233580982395240657597308860156612331748233051603950833570087431453678546629313881852625277465754757388101436511817758583507162620250717259625823819126874130267076962501731602721844905930947076703243949835378929506173459709465289579618659543698018783723532286753020059933893563966721108194993525078426919072907098914463610975701858957126863777499137585318737700975894710473897952829718378005707091577482222881530558557355464201346586230859303985647718866849248341538609630777494624903558761185312556567113517487949197341623841132481362542513884178977501288022514392371449627917317706134632697420783578148830772586826847810855978336165378473607748592124115934720924607258618063242913760450649974374766184725914356694409568669274252940397285553678859910515162154957790044377229322680083337944364463329320457423639038916805087448469827477676679066998897759385756758462022138068141428372846475222613775925225721652800769640551618665719184227549295736422749495711796601158598824173810608367140555206128313426181795619623365176492442227004667765921815565534078528460441136457393317330560601516703576887681495282562308129243204074303167382633421093689128372791906910403588206700248001882288095097835328910856540275147455005292745165485099299676054595481889385797938377870876246799960069002028844402157028307775413776326905902520990323945744048771833717810188722596530623949878475935055267030636760942748286015934143902922372526980424203136829630406660887137694707778058419230676666218187186771950549161598644318482685120116482216670780687304206970341580803114993749925560432198935716215331988717951946883075186385832845871258421134062443274443460942853743648137258596855769786676695592630457978410284048386434568835431493750411886015774974361932771138746337188733623467622229744812966465263621704712816247805722861109925356356879233043969754255785053328612469540092397638559551937116924339478579796915339381404803012872277064703737826337157773847915661443858561479849197589013191776439461605779238361265306929770259549570121159187269803195247453559318891627427886856043269356344010075208713530483567905354867865616935729489719656462469966254763132848115067165714519253529599495667084726837194622617504140514026427741543549846193888356902177891278428748511662254764920121349903558363794555178276170927119347770277105722240404733515322765396774892555610800257735435982139036883036659008715460273901817214380715716705678853854097074712780655413453512111582258111978507326959296609067766300524849186395513332077198625838988734463851331449523203778336165255238351947981045898719825949359590122947298576987042810358421900994606320938127739425593037532079960372463281501662679675905464938893149474357895417587875351947922167416771210040207602494794550260738760640561596466653732898397381436394546702119441282756055200605061187567047921592723822049227401333745654145231212405881546679464031291995479186754357571948974120688857589394197391408106409529999720605988289366585707970206745748771466904099909631371551846134412766031822339015979286288699613300798441038276070815332684143069788509529364246688167549240847370043187641983808756707502283044177693635075776200981297397433304179680038309534874597210784511445412224762266672010956380863241775379610814978963944013689262272685204966314756327527602227583608015526774015246916403602151851815363229888699718478766448236521116629504353636852213468750232560201181876635382393263086629830716186173481359266772198418013240818242546150451148053066536082492168043627811232432620472559825116399928287882949120624322847661172321825940924330526639409716577478994417437710556400905588123300785272620759711384835136809200296988590795267327607646298067091900809927868445403919626029516175029859969517324632928327339848785513396446836742317996936083195515594257156423570027036962636034808821312304155636591749573496067408774122117148702525081589370107484870896550602518420662264714112997682380752622273479326643631164257055470528454267229962416818060128952133100339455157992704276962340502628808364170144811047754898858143777350320039507022255895586881584534598783810265726933212239985749549813901041640763881812406753361680774667933542406920736006023681890669297393847980488680250467793500380547428815087437807925971404844356424364984858601890267887467423364189223457438528756264404879610721455925815593545200484822060885105139514311472349849725179478746136644480900338426216208687280101570337231168533381971432599754468743344678102693486074399942580470893980016356675490897932370167078763028590707365129983783702204645390386812169297665838874717812501075483059994131691206595316168950898225639946920282886650920358317716652988396332844003266802669288916545240183549508531028219593701909456259892451029170054219527043591024042279757683714080179996655154854039831969027960548619767005206492903937492413046679963328367793500798634998427175316778889112082119245875432558761826309378887980923974313064344130293755379293234534907006432635974155198993047927012384535578233715356669014156249365445988635994793236304445700306548871913143319453933881849449233858042735596498115600737093208179332687279778217046491885772043475598350561923125211829334038247856857257048399414867257197142088726747252366425203168239274720692378451953478538579470487136380053801804543959653914327486943437963303033570936101809427128754882850630246905424501217679555783888416334168409627157361251494902564072917607272063381991897378934390883681202304833635296847148540163348400840361276502877939652978926950353904818957165178765221247440694252315767224430664043750798919164673574896591481457063246621318948702621237556653285009200757360613820616258906796847511997005254426592325331502777263834120299975233685491873733312489517756881062710754012275106169828214831963187383382673952927082509560216493995691191509460675212926696275061575956438045862251606076596950457962848527644427850363272204656047434543270370261815214104813970798675347351815246591304897279961566702708514941363924191580497393090161630847680459759775185026262432122750823037271249073445564210952690516932758118937100663875471314174828308631394202167730169433720888435097745831208168706674989134995365902013331656963773086109390090340412666247698389058090061908375451517610601124245460626940550993135613851217580694525810351942241457564202352831520765036641210205853958861279914096130656364906887914327846957667377534101692265863729217958611396813111881554503948095622253287767050706596528299191190961409959267204842710765680301562613193964771081947779393179298839818214202638732115494647457256778475768767380760257397962827564685737399146499517515078073401949203463218583164855865794815344697356243454704999539956382339615288278626059922244405427452827036877779610099098183796664943172546788876320803102586782084157349713571060809918223255888588303432364954360278160965160032575949011034979837505324860672402499704730401838020831584903807652281815274718985676026038943103851474441344516330012656798178567643921474953093616074033724282546629258210011803831453854166328930355240806025589716488017662400209146783454908188463001857893414511061705657486815564450937972683662299796133851699542885503547371976538908873684687884550430888155744388578951418869824694118246774660049778853203638767320448499201092793214703982449612980618726332313812066439221172418564960363874937085365099863024862238020303787575816800121042193349385863638021726053298178479885617352378163758054864788250942680304591196524408466681735763014128041497289814446781910360023980407983448051545195614662708207970397972394022744625350041299005860377955522113815904219533891256359338759230985425630486637464742232814615076022633706101068977020666193430012198067805276281033803507415961563674737470017519616933249238999752431723165099152229043574885809000349871797848981648569596207679383757506928756322524258127094440288853548631656051222521141727144327440085898225011587021153783450535561690551306548976993537461960253959652712344720010339154788348607057615286587284257620423305964150318615900865809710746796821795242644690980595610052762382476970063527279233545451924144396384026323390833285666478139358281412311569844098569687940713961440959397120712157300952056537253953372131280815807254653236713058556414717054215116932793518324613119722529075662571028902477650552871062877781350010401217895904444332374417773545306934025104538938563788624580604079739018234666454168769191296997719787195869129364112977689174755409613033821054834766016780648412845017047199472359326449212214833313869304467524476603746349512333087541752349499581685373318724759421577375994324826914693170826834759144012639783087983702974765529803933011776639663288858150635718130238860133393373524412687442329501528945293312622613670928803169068152872290000102897599058950219973331975794811850429898258615174910631169007806667515843479795722310461313252517341410449413003824227275628847166236010947007361640411679610194324750071820138348419029797638072315150938818895960335865943178411152108808008728724655529788039584434583546745164657763022723537025769150303719598565471125981086068250443591982038938890828307288797437270071701074948556936470758886645328435880488916451087929427318981696049689968071425110584775481055067570843372689136733039303307239623092129235944290411097702219973932900069541141462714451554354182249560927614700468632555736868651750025331835793730050279219670867091615740174301145034307213812878155800649216694115311263770116932737494357712430372351712990439729080016089780966981064283918528087535655198186616273978311156892683396182078529999102201844703182149208923487054122470933376171055980630518125624289631961462513019749356910787516630125850272543170260449710817017656473372091809060745648087923231002320059748354956851513884923497756842779293694881869903470671805099643984526439047532125482072677878753447361373203080608095115558769778656260695596124001249859754634062683406507748825565026377065629536221410564990767431825459787383783243763401355018341852130048112133739451414258647468070250932555929731967221175470502323657863024487022714424437255824272412189949477870717786391426505868364835190383241284869624451267336739625461241667565945042800234061926405535248094648512025847124122677742710809625778381062608294805179587708731452706733077541939973316710165998952997406139000100327822047565265284333720829208760796803805645816151807559504297008317875382997144534927822988190308367734663504842395539409466157001886983285379648807556086979539298516885701438960074703573606781391997613438659228098006728473705216482569430934764158802113405619758300729203725542371743376988665058965483555793236664134759500389288278541397211095682445289253095060577815542583968155019575144301733072099187906689023876645579240120766831111773515198727175101800687922652208356945013649869001356250048553913274645560779620210327165648690183039470198807099368131228881304867994352503047364099803653565562885228847978936086206894863413624696938107116261444245589399240016862035833435057311377734912581806011032974781469710537897844957040410525023024126197806074398131075021930539531015929998355777671718502239977849664244907710461147841422711555133419311634393952431850073763612612409480329936784295726855012331615885162401062722772747594137571885728013268579016387072147228811190566171275352250380610340191234044740807128672006013811745659795920572761600774403991327429365878893249904840944607799587769062351980849775405786582322931685364374807015964039830785029978598109527532985231516211786081219335598668934381760527234675276674760785926992420913228517506855304850440385758286384514164523652523529925081881520968528909220386270403741537965820442190297026197352931146806580680371278344553033327275193731161847052142327388118036261480626710371080969580933524021282265269910648314632081443169232229959447026758341023824614670301159168951129502668593674375142013968102797232969902458158463205229413234812975210320298161318092119788612190212102520678690069280245709007798949610058405780090696738685354872806681923276168918854478644000801467349516957191195837009183985845882254158487622336975629080859837445211263077062534601196243718882734824723149276049746298646953755625589609089072830346459274255810425020696241775948525510702305332705422660521337842921625040965532731427365971155454974647458838785141113199233916437262287920449549217318760259305371454929891183849161758112877107329285656862090191876535360771710133936835661693427628553790660140036352189807876937593856848068909061669530776080441014996795144776740625103561644409353874217793024450218633205612162607830017317442013683025777859904756656533398856032260196673871369772005972588625169894545932653865163516936892037152288366191126364836757139083926728992656820939413548561865356833656129978096892113402488209111520831346894147394147298260436762679409835111481827700798756843735755051830715466526919334605048220224140229922347527681069922810850707166126985422134894477346371199334372896602695102414761381641540602333450860333393873817720801425866185500650956343733962043064831943898704652309441861041340511430300100437775691844659176819404365394620520526928355621665806109098070429050762377804245985747567460127071349688712878991942624709407905774033714965990121277480253995891754846150001114849193540836203397557663778102899335088085188026605498323154674569752044148635024592493892718685100147179166346974899817137528321543572999192634962995074564523276422067914921373358459546485492022905506246935472510189985328471472886232871972387640748770884959763151667940162482785897184189498670854923877787088657656754929924838934945164228468163611327535903604332342361563442534926407549136029214316536060452108471125880361478265511597979203533163482953150474877556869640515037465940888427297440484701873155343949027151352304269799711479207753597082794200727768920949422773279769283414040285816303021391023037806051802474904083857313542982268057532012562125399152988355945863394020493919667338108161615563538401945839394055413237340913573418071845183127500661059319912990054567338377509719148472645297401495310586837915263664673491884380161549062021828724763347708905271187380242712233338907831447868548861666795758781762414146459330159958381143952277560614958444170102649306547047003012169762888120936337173753866411035549135631650186477582638194418009535975254729280442908977510714379195482950025574208285768623827986707720265835920145243791211052140691849100446896290164079147358838842579925137200503068281209092682629198854851072682490884586668887658659772298187211637970796265483144101125929289072419755860846754933898379640760970651539471208860052389019957417958479929988066584927049595023613537787600852951224127007583986411969922892132641600922334500239256865947068377508865524496922838564059850355885392281632687501644848029784149699018464065929190556474279080194075780069085198314764445571604601150513866611893428418183633068091100961666814141789780838619767528588423387230525875956634307970685456222316009644821573165575504503791201023337728546316391286876346434438330119349955927026544750866762179111082946714614145516350190007986009501060792447527268566685228981427104078555512394836646764129829276333479523039646879345962503555959766399197851766887461951791458317271723797040941507042967416908954058836759687247821873251599892264915251460451154156890282881915024134092512455186660154812089637903055299180428860754429435624594760235409471295396319522421889753191663187595075993647068302957899701039175110564154297126002592199834842847852942736316774882571906117338354954993854467706811774201241335043429793053198715504785602833705299338795799848661149796749736316092519960780525489107101937992981869224915855540372521033878487045267715380575044062112894162273501539542869426931939285959790840469746189710048756303746155442980230115738218829433115800884015442445224222963738249703266752009081588355249252190541858222571998431053822716578784916757643267710916975988984361713832346310856090679900665117174671976804955520106179265910457894930522489124685392912993577351189071398747896611516482871968073093006084426372502842151793478702187475405293929911713453320066099590702613664096730233194652309440456964532389344938015807424909146732962220642751722853911239067707091101202577501039739436490006501303524718523905173082586117619439114630593753979731934637156699864167692507466213588566290355663338204123659498628005443293520787899467440096890403099610846010349444894513191531138885107126654112915184131585695758907029057691041309713321344561572249311321054158290749704215898264782339035865080868509103578085005078673159770436626920944798061524955752829081245952807898029409624901670277260501827024734273221381483684778477357835936272955232926721570752095070872729210310733671815238735517376159191058971619018246170738479498443803352789066610122424981820028754495615485522670236129756289562918797221715802867824688684313432862170287546442980949565834353636987231630089884296651863326732967144609185575520694643291760965635000300410150570873420845247088139099880799791873234241796338778298785044974444630599242211556583652442911803119562512940047412395253317543559187422618083301859885229546820217191023271611841331159284955841779640967097246278981414632747713764907444743408838623957557019521290352792382575809711081697556337436982650211630511692862102761062882791464377190368106385936144306180790059047420932471468871852326673362415778010434570814976264268513078116875495260379648977618284614347571512125078423732784567996369535946539356619008085724108580657023599075791006598476502786038964003504918973365183518931769572179776688754001862918451560135052369366893940514248797078624700613577753056765485403803500056178255368668133000019379757869380029493615794582183219514363333745494592913414023010999991231546739238749838726324202219859382036279423971703893445374761442335334978293557676773266742183501770267282567906918393489503081556566145818434808693148817345079241800449167468506132810505765376592439747536604025026838475340507240030873867639549261028236202172965659882608022818186381094166803925006069348454917865628715442041909991839922291319649013978805442709153137724257253447394062352286404300587613636538911531941870338638701576959510328984371840338109632793489456962527627561744541851305243444975044492188083797091007268859546825769562187357811038605424273843018511570235064547806136963880882153687250041947795924410709959211395656457195449029061344931195019212477042897657900301241974680761658032534196713016290454189708849402124290246682866320309628155255264850315567012184266267248602794659263888187087687592081127861971303587260677915617615680526362912805655716132444089228779795311341012947525689922799775953497282120922875927557897381785487110298360862951563751575286585934713676061826496487825375850672862294773417561349533559922184822766168309942992391888180413010834709722122382566497095034544784870880645863730855089301239153174259014560860496366622299181728325797430425996933538699758290065379529911137798332631741318265398055239921603602922014652359870391385409944058305978195398100583070831819968333892972821088692250995895922836209691924506445806751188227845605769101359407624180874931758192843737884286311167326434078849470800289137621775750465161072836200417818354830601955243243101350829444173134254778341003028679064185236589269939499449613180003664780151402644066273610091871065630471334898829925718188150837738571054530475448341170290105255922921520896474544884757356891951152301586065232544620165355887883805226587216309265480000142495568928520240726953837811980776973090090708412810981656959513311699488722292751236292574930594096776412713009184572820886452020891981621549870024538602074382822651579214065513988240555102121450394841637753100969827549383569744766599354882607708150775982801108166905278327174884431343742716287778745296949171064811644013641285925154676543599800227366457260197899415203220331585175590137225513445225241682541942995608776837678347235043206832703295706216451636122039790608704131627921389183345762516936974626745260447090988786100603942061904109455499804796896226153316130367205591731297993759388005831052512659921983752334343408176802459546107646782250675680635965336227767727624270242335826497797656705678606350975042514855865388992956482348976247831112476875181299040773588633600273705902046214601415655591572953754255148881539486502554816927352237839922166149119582699204831952434453150854844043727051495623866506315958407466340781338624666927685453372025451562974048357223103645878267157894041124745356037580204311937421710071837701962152742202625657046125723258148864521955024351897897499164251043336885259930433110517098884870936831410117807121924241617535518752377376991633499069797065662007294067749062087131366577870723990728500691820369035918298266456646022053376702434612651435384173476806631819933500680210408977563831936028522317449596245580122500665096044706511660507652233611593804032108920014014658838195698860460640314931818804113002382831747052167285300337330355773548185372732390519955884401117671656261453546102853164943971020153338442561281812032469020536687665065337132952619836905667149985026281745884701409070110002207735972169360668727003572868853343423548770980633911917602161972234804169610847001996399329921282217895962961301592735286436688019648106009178859296343366000716853742004361999451179839628435465186640473973500303421266238852782850417505729524548679161132974545742254683565834493481443708774854319407529714046520946309411314822184345910691194803490626641381144528621179912770912138504489334076170166859046749624153366080087107931319516027294089953224272172764616719589458566633469882524060652488917893191933571967089488856809703549152634731402849563000001027927436110329902416290621987892989236838518012348705695384550891524598080204092650297809080696437124996413050654685651061247261160869833636685663712645891349632478499789426018419781548650533575690668889339824984334015502156354638888405581295263018926066093557743619133071340462301631008010355265908882869766655540835908342148201211306964030681201988191490139387411814486655312501295611091569858036860286174769569321197289896410055378057503578837000646394654730019233652714406394578051920704668463685729480401050845879753961905839428759993638169870582319553710204601577706713920836689084216000284374920709356197483003410552294402942729647569777294394528916855288335459424072676582301220740214782901019447008404229638192371820640818387063875244746260235037803016496047831070544840068821241633009714931610285559360953915080724219357588160721802097256504078359595243235386063030062988144473205702669190286832818771445529427285653875689987265560844841425876357974909649670779998887744951559089572089585260167457046668971471147776987257248977695708998168088535784935081126306773709352885794360021806293429090306048520149984380189045119548641219376422560116128881895769159784659782282113780082099984783909557822930032715828146798163510159967458974127551207017357954427407187045176199419480846069473803865002836429218826686320334801742703125810009396862220189812746765840352412639893654493613122316702854632527395136145640586120364043990896301004725995105659294205510535535602461212245066432359151104757786547542883031339226687970785964157356667299470269288056070495615046189397782641235742761388495906589860442796925989047397836785597596738412367176817435759525738165017529089841675242108138861688198597733625497570762105852257050765534679197533249737666143069637325557120457004401509084801121825765286048276076475542260906215989883180097831787382333769573540843018703860617840582651182197510867217446643983786341294413716541275741218543535701260223928734264038085230224544487636209574212817573272550893147083960547986366612819976797161625539245753178758049359634031624501742692857142315460664576584300122758290377079319643656162139513625286023912083855344067005377740729177478038299567204283775382538913373077407291065455710050884055699509505088876898728172818529419624085343472559604777819711384460384360394842946790790945293381336591275524250959654642560375651674491450239089811509737864972890697394602649637312050333512172197742803386812835738092594862194161014515967154454680164840466312494758223217522747673206814993888615416278988072782869602334678117083959262884803329188363502214687674488783362901876563396827945951099003654131386056566924663448147457202722452524445104101136271264045849443929943871365773225276984589019845168477318720847404853144984800440018367899383164862465271156752573623358990140282401450245679376116163964077533416746280322343191310357512905338999226633370339424341445308635811863322691804629115683202887298892832656787204028842218089008591289852403371736972559364758478018862567338570109715390302682181807046817025876677098028602215222846826254158355298419970445193584996023386310160526625124208752010157939222179114118044789472608499831505245719870042402322681208129164499867557644652857590829950920822917387821580014682761342973499774154739811519121488769920350972873851235821706337057888677255665260662026624414670947762958413259380500812966781977139131808589202078591679947239527428325164680267072206192659015215693907135157534449369834716897099975003152492348245658532460410800566064630644219628015863022915907789153355314041852601356588489405136902550796224832432950354820044446963752424675713176731233115790985463565158888541918390894783062537851445430815912027262794463390600982853990219799359795115533349609895030975966092779109191352439614365660587868431529035606403256408935843266756709819405482688731716427213848091988698928536986878585766563179996323563762117529139666788000013526122197738908562517086145419270027232653096502294461908843247963573912139823722060157468513170770192758386076278500895146368082679099569079462019718818372538687503072984416312615976949769608072988944462053804644793655276176544213439508435265353253233768898907692470614547589744417072423306165239012835432060753317491049521957739507511594535059640047918480894358973616837241269125776388497034582642157556056644215080730749890077703007881809519337246987376670779753026768883284738850069745065961325530806938945028238110733813176505876171912683877531986703183279499036762132551821843170872179958206691432459405240096819570437508942278364790943262178976550931150126538891690901033170938923706096960913102339793725882233287139173085705941895620667729996363062402636203233457933057866390707178502171142594366206263584556187574179975096615649364316516694792906136925633655182652710929959681405395805457566674312162551661603419992089562448027053194950817426302218025726125958904683000462523409878445372825698593981221449546229338714064988142255864589848116185653977716359602690046614125373430212784890837539003878174418885315644310993545294328355085655659155285197590726608472736597229379831943812789712836248778663482212127940485261244424587665308345666868969607262863935644824279517289714245572931543055423020879701959972560952403511444647906820449646695995520817557893416311564657734069829588279666151576590146887674789237661686681674981228465079161031579683704121825315061842070003369348033522589971613800548640611677124042407175840931031776190134454001629036112431079809780518056023498742968014204960685215985522516375055182816676701589585090752946115312457808317491714441859741200454991157410298706390954197722759805647973293827353398371681032475462277067272287511626290346249392764873642597209885311655186298130710054907952698287488783416783760939881065196152070941600146407295273266962746187512422518527483977654154899267322889392421414443349949383742650874320362067195460497961802621546498634907523125939764457930878973550306659563028501518272432484420284473694064660302139250455100059785227338527600655856101166650342061951787212789647941382898175989614789233718193285103934920865532660756813806420674136317119509323138931782999239388538109574945677272801349613421659290501372569434538447628023631928440402264803304643902522892850260819986642172909187463619358152658315900101776253915207269708528024192122268488176493811350624001151754134562458669161936635404371399889594639404119836758589654031040407036964761469764997359143957317969171802600006504681804025394705214322676603044253964065846774315892411693072188395724485251080263406437978592191518773079734684491484454137271085389173397248074876330519473486667128209777582129941137203391679577894584814865701642830744806055507513714103140527492894553414284419204730464825138458839055580418571915508950796547127220878220945257859644035979829567750317021884863705700699398883167671654470592967451467349418749558721898927395729889956854663815471291553568317706076739846729798668449627830787271023898256434261525794009083120751128183379765792789264949920207254834840376636347973869114897228911899767870750655575043839509166265755460892893233709898314275809942682953867277072924457992406409653443243123022999564116972436765545349637570253955183405614173753513891350869271255162766266207232014884163399784586723406262225909192964301818840670783655449902703619628544236104165028155927061027543948090047546604413014753901758864886109796597458864066213583411202215834579317252942667673904143790830571986243267379471566744632460757624168309029679293975913153606293274223443400957762157411617705928824599434276697465598252530883644031411608031213395467224771941940671720571273054676958526626769640207120924492973466625275895362383463601696215718223149977785796616851054589573850916918924142306613954360474343239665416495483597078313040201681823069694288733111891642190449118968021967599439239044282042483565161361357678923557124801293352819885869019960492946673468113967380560062650231168373172820244251464567461421060509648169402965952333986980917551269103829454557012061040384205808480707877292112176459354282475635826165855982840642010142842348442896012448741183409006682637423881077702892625148115702419231974508621036657882086983694499325913450486758899493980374986975019053209862043472520221211995496154075609396752329044710688426242913359686851541866960701010291636682840383242371075270395459884312670493265714829501278978841570000372280205119726942013442324871321763671376318090272620608633852270458818237099050081854718871489221653220342287477009234220261797148077163998788865353274327669101125019777016324986429066478386446700395956922841446016679921667954911037637861519619044834809430693774080053929506481970914495086261223210768557157979173077883239260974390458186278004477712073644646638471090976215004680938778159227264319882017244447585375466313417158090573723868410545249394667361405941641817067755193844063045822922848106045093796849820648482637232499578512116224949310677613713598185503711131010512810361036132637421310008080230009662523307498326284151684651755171986797470889958826060863455299106095508235193824751310536003966384239852267215610606519662341863626633514883687531866480117026425758416550991219199013421984991037181668618291698448563217596483041802141986891384394844410076089391642532520544605698589030047370786508969631118074975917539834182273786357655993736019849083156345400149429049269899878434768749614424517962761381654939254933747770496051394235793638264527265351179389201910581003807266196803934976082422415722566368912637219771071890719670603660757372005994007341283419710654938714105765119319961728653043821193444555866382112058413297648668282177531266427343858447032664243454693074273645475053529581409653367611174527810458258758287208015629124968865176858307633964442988810372452036956982972385826611678117226889800258404800829401467306133462478449903810389686359235934448497806596934376608915334983317146826147409549077337113578645015887117319782364185381255743506008640321680192274600258475415748971707547712805219227016910080274972494142628932758765311134384263621730285505190710295615139963870301652285996429559928790615086884211231917643708549429856878374472372097066374383813219273202491524054217479374807495837125533533956285743730345384694801307911646549232923132049359190944533276364544482682065805515080327809584474129059230319576950611670089056519806812039463365941285209538815823858006196996692049498827260466108489612233137881569041323616595526002695883550757802588381206125219531422379669016139581253680600072846808077562469855908073527497188566645918320209521908018593501664531458720669386617922566624075936551198999099949763595832107769555872578245016323473829922521927954265000750924067448958069274477282692084409958379612342678215340333691024822866125354293467565038033330097291070461080207497423981439915404969797575396407923829447026617540242614471927534343950506785682206889367925354883477271192831469233643424918995438739535794161642285571227303272302500020234284308472552332670154212540366282313526253976931346872255930061942426899037573042761602351991728622278550122213686954342788473309007800390124684436396574820611871004636450633275648394746366388771040650037714831895252350807754792952622445962365176388279700854160032329248388039170343119446634241752802888858814502642289647353868608510731200094228860855612053692311171228435001582570320302673493046684816611228349625576590628816086779475794324635300784171901652748902884322194141958540585582403788011940657191499479115661936947927368191275471551420841581048082264801534576813030654283070462775712592502206330442611750112692931573144447894516907360484105235218184700208973590343546574165320461837386003136305627726497369026430591436040455982611659027993677206078144618911193355399022307243989906983192861262426549286381813634191504287910173096086723822638054639123603017257018039727064664277694259178374802957628807172506284581603249589600827836291842237619142676868613973363104803489051738810552893563448184349168261011225574231961778421380777609531144806656737021757306786558523224826288471250001562239746201217442847893998094072094211570505750029830540593527997272033509991167420068195895327758696403956705854644402830165018034268297700201886905423946701592038230663864319229907031461532627251371823306540636029024529361784689291181856115473114492990081590046795351298566558177998511625794962650405363025676733499949700359861412555926213546894202627605830011092867164358234291565520898283087343986561414801948811026210239961058450244650125159793591443038341446076909720359980388137198893215899321059666709039840071079063749528701961153145072313344977192409250555849936194307245252377138710709291732608988925599798037178541483792630039616287306086151545377662016884866909400996012911248857876032930701655168232865544214539886757111293218958289314769052446050432244598482823568441133056525724237447875062747588935078217601216078519517002474737840705500324532558921714954829817465772595924253267388641173532244230655925803881196971099080163314053271467075933594134544460791474297447068384481294000888661167899564159663765217344240323037133190059094282155702589931975606156944159367855445398273909277832586011288563808777886700643058366687956498607366208571691267299355555553853233326081372144625846004968814116459084526771624641104572500307367870983987251886268749473056312664182867609705002012719061449016156886398502142615471220042099136812429130023354632777735630910995768286796148611903638772074099047377810342064868641686937177204700644185294208108623885331615046537478959613834720743622758243829493514086991822993983684014838825503945431615588622114916123833094209057821677734942808444238417148811208129204737092442397806391848428070160964129726356071193024985482776162156074740377128061192534194718394035067060844414056352243699667262208938866427240783525337053608125840168347874927412388919753914442726503488963297192668073606010576089294575784007697343789317347133430696949805862813721542842018539136137576090718621230824052673410952077337732161181330949204544959216958551558518085409193087028419358934609281032158204101758852075660382850192117066232107847357951463579391303450006443365388572740220027043510956848906837932587628368743456853657621108248251311710684085927450463205572622748122594069735548409358123086162624434921420103613648443095482485195138071392559238601389738679126484216226244060831191792696907225818302891138654722707402521928664280620029155219449638841344358187247318354818570427099467817448697302400469147563814866340486491555374075551586834637175405339725541288132461621423245669656501572295395714576228884797031916761302332206145243920499674156518731107763154078998028301403510273229996442786908534792333824748586799728085835748047932916023629605369618931186642981400075220753360384570093603582584894728915937375934859985640615252771956247280467916557289545920394806168200362419400632014459591233769316742029768695417486787669226123296570549954369125296618534359620326582493827418469226202450293686757962824904959667757210683220616646647099895257145288062236117891968801465802392215242796134803263890752792066097994945196414245246232808460394672995675766195917232154552812633556049559714340619722666790188022758618985106186946734941608014709886473066165150636352587258863416711306347700706989931667286413780694524551316812939554418149934701127844566153087420500723092052914847621809021701383036927936838047843182819327094339074404586816154824701989182957800589475986824292874745934661538772095204956830005034546838641113634982139844867192812861141171500361029628374217284444352833176383236142477253675939730327804655587734651788201070395409078433532346691596364808857505344415248538990175246516770984400146027056920575548266571752580204319857167996520160580157028228323704674193078234465458837363016972535296938912894996751359669126301118762364169402620190661495844546607726030310067089076849351407045227335015269254389562135628774189179555882766195986079814278574508252813666813618477935418931052053043561402767660137308268543694824887142908102104369568950306176222369506739402395584439028049750076257317031961278460811909779423334902733262605347451632344974613295381803852464993593209193522117856829188482371461171122528674223031550670800993786938964522088459617831707470271895985397709734594127469722984084332827075238987749435887793016302307848815221284631842860809015723720976686197484823691329255216477569068326014884595392586769955115656509782161778925878762645538288983582293387365436495689785539487152741805487632530686215515743576824877991159128424035259723590165119638342855775986848823488146802385477432974471235310870361339421500833015041979306539353621413787552117206158441364040293938612540898049518770447911465685505129805585194749996684961591164606282190071600325170485560453600389333810768015972594139114929078917618022626095812511081822398026313873949939345917274083586634935859815427256066944101808859314570591023682103656626448260363618774695208355995756598177192477552841192756568747978293667999629989851847536579897907377360820428560632081666216655314277221030764826353568920041672412239990464367885307330421693398141541882960126686885245971556480285086558271562313812895064332830266752509943638703837415690244932284229305109050353918109578230091264219020210872369094380379826230447831603028327082574573092031350935628005346823200339502730858856914352233843140546981175445716480332811702000196669923401135323360675426046249663863528240285500702457998301510427335253077774842696681816898266500023882375537228563669758724147235481484885135355930141962044238631959377610027600705342845371831355263746962266459695556176935359600676940438208727089894924862426511475323238339209595478364183388329681112255560690548894702514185609106373928825905593802076644450881190401751480189211041818682857848610276522002175038455361628631931432024322909098026221773143796957139182795859070047816079457853057790772295895008695921184673401650256253397262846249194778486704429821384163590127486601097278094034604890378814993092098472967829175948256702937822089837845956278673388417241093191075663883242420954370248374999434769982943735121766107779729256089013221817720133872946148307938703460784911791352589137679017586740851542699004370430582984523877480377936527121330545029017403295957668899559722167604351310465091829838056349171611040323364528592550246100326689832190430522152375504073219293368395102767126777706029499030474857369512649815827487504387758590475597505987479380211055481256866036320965452291884055897769914925931420273403845786824768832598826940524262686630590050624184353591426937836280173950150204882499564644501103898777457967814882190396015661799941714409928293473731285612083310262239593119907283929434937746829677299090409618562686825173420075179848499207176218707565688036925886797824609680368309226991266197819459039479280420626605481683515265286827483930431612087192622708098650176895766153126756486290731379369312611348394024196142837380639034559194157427173811232794192971067721510539283765077631251965942388274632532736288609742487100486205424041145902919900681756116264125530257043679012381495330759389054164418950483169136693593723053603536919305586055688857366466976969984325685491664197052158993855346871734713563910131975805316718022438657325980212759078305836320701709187815263033347707438168555567922475654138087133404262566239927753854895928214297551705109414253774368554738597008913400683889824792689722748564708849999118633649635901726494807019874755574987626513706139608945795109682401603560431937123366720375664258523210040138384318781065781845826103285519980862356825310623429689318849398531165808567925979749013244348171588925196983250083702249593445584057316541154167253429636094560455956800522546285009872227978181801773611117635344052950627286799972752525690935726627123356865067305832390169878047290148255454011958591109743361582373985398838953172074679776351371893322701180874441842249215898768209783331589424494191664641633674257389605937784418023656654926855312291957161708565575771833267166641721861209310445775638153924995340099051235214837036790384308566791991068240106488037542849167344049310818634574264890240934162278391182986671665668287568740087103889164316213209447580899710744314326141253007009121643286867692331445057818491706827094674830402925745310420841451076853530190573665771498453018045197883896752822788406065747172112258112616332017868019253039738962943258078741046843747549656420522822043568964833445046894263639124031320447817041636774017935597192267563820155000747208002618932663636360628919305570261672610175096480712045988035385510084469191039128328206052577672053693645602096084849983943908548899712680917818854843916745761971526583311812622841670655723674233533294585411832233730570946399433171694307032097613996476791534326477347504568250764262614464652454634110843592020200353204754362302028484507042765706799502684136910413982591446654939327565242702287587681142231887556304380629146317403201911148106769757383056932169369886969773077222784412399551105230342102715206940162646227374692730220130173368048292183369799502398819742028424195304556058324428244652231820031147611479033465034831544708050568314678549260915666840944800281379411678729568511956905696894751732087846569143274733313966816234564134196002046009026596636333192712552874721300409027802552636663470837198085870171360625256440088759625157104415111037733818412745791479028704083655364001061411947512754559943321303157642613796630119884232504792236472778647648000452834455427786916613543944637675452345478482729027992693317287847327187020216521670802504621619553590175389636056548596613959624069699284071227363101966358684123840926425437412739123958328430394734275051052770894216411624369501180275441203527758119311784897263518825728200987228421189707887841743221152513351455491487001095941658256896573383563047147505511622238670444401069567657478651096750080735774995910728187702611627630304329592992886734051159280336055843562132097816021751659170726637130379649075500030474410521963980817293065527449992896808316723340468630014536230913399998783955837316131729457320537871882578240351083904016675954041653809739006636705570610755889448043923992613789018176338083490216336882698281023317865609476221525561973706419725617052759980505323583814018365381769829477179410770051409957463870255025877360917006683005222742606147700892016951815324076628746755741603668844268554424277951086699695162772148263731561541224856478627847225019654909503124225447443526311211303840645022274565133102038745201883227569420106367086799368110294886065455819045784437611557262961730667456066337090385470415197216461316641007312130509752144671805275827047632449854983287350817382765435128941747195923386384397733120246229653876622250114612393402483355224219729288724554574488634094301626143394930343533096543576173156671912446412204338622655823925525564843701650027711092973996515539712365228366736398660720637979262978439142122974756612274828765344432339804769986067234102310493328588777522062193572910474942527092512337185112357053689246503105604446870748579978611292967611290196362231403378332716791189958182097296654668037115438921191058840253429102341397385152641941755923748705215253840998774529993218625496163062085456011903322854843101458691610849178313117108884997913847716651034513075119471275837497145891192157041194165299622309466342833263434365824067546324465782262044867006889149023289524832212636523800950311807222825969956784463103662092384359800942275952566551176517691909356958555040841774838633615199611151706277636385728848880294047257705865232487495831895313583302346816687011691685239207524010487786127048496782562692400687041031799350819782347885354045853514474609320925050307668379448668753342927937437306169281879806175072301792871846375751803389211914709917353891953969995726582901939539643410685905827569722945903812513584273331892435034553814095904839539002670589523659161818123230116327441425226266523848244414897665241055397720093102304000563581364229413857989564808663182899420767500540337145779994614995532809352553942906835451233981954164573178759011570975023697677429914320825679022458319465390486834183740445841168708224990705669667378952967912838137686272525968164102172824219690194047917617997101287937129122758174978228040095146305317357515359242757682763501355395106289567202111844347847167732942355974411677233602658187421669738321374602702887462394701433707222222426089427056205412137228575830332595133651823511700016108813046613706959528150134072435180895765953770799888869040440770073508975452178902965292447471378822332978764036087072828682866756679971048770984580114633542993417933185860209606957891411992186594575428621167523665143052850628968474693596215515864499800881469283629305255585181322585239942867860384943623556522315857502323964649433264846614995491805732852630031661619176953294199136423977628950030441639141484663305010427584876209396892014110525277749995786225378819519970921094411100097303515270833666879226455163740818046916885864626847749829663921216544579471164240226597727883868490797608266945553624482234800126091451481874482676518164383477778715688386494756304706476183750701068658068197284093904294345251430896687016788377961759620310469057426061202910159958822978842687114925926377774841904696811304257387347439379894596838404131452373231632156395174709197799763889441895292754084740100895935890337793604083913520588134575689674469347106790956146006465864781208024335976316482821550424050395507611259360374297497338665337776300073200474179807978789319785996966086502019236759260431129312530804974728551575111613150013967161466739300771076089853729721963700327508301061734388244217512162452143439916891362321533047809680135343828687890713277647851226545247964088059001472666401661275280954622942079842458745806213125373594506037180551690507836471684060327255190809196150734498263895373669225119862642351759068669269965137827411803502561943386238914160554235108399387855276485625638029765438068134317361097230677744267824181353324411898057515600891940177807639395471363460951753298990588905071241683506247678597603996147371862825460228936511510869221212835861554614903851188284203523722470112623348574862848668031420690573388512859041895675051887248728801146811860562408613850947689576470524796870655458877211693507251939575514178785393974802664892348694493624359658058438263831345848111199759689860218645519693088645386264656869294581982651321302560850323741309428313726451377104231299986444325499068589686097152572642865532819346386442401356585672493631396367235500128191060736761585910834618602619620116799258057886708997096456695957094744914723205646272655546912943861677515518269038986207458716760234161729877078453802312847713288211271286966181165194139057580639553031254250440817601799256396862956189854450971902899127912550609050047209810897257431764042916176985742162720599016030017606590830616432874026006913501829939448442297826718012561481175532672705785505083802164390750969957073367053140287015625889110746997421144074836344524144802283943898433245837738198909081761287615105132758655707282036909617986708091883564954473280446292302996772856073025578912960697747234532218848545749709440748326059676531117606942839417505615638446110799103323559739443807016368429576386034438668114622802710024823323420549840291519979084838139394808259584277489525862399815228047781760200074010981766057606011061452852243241282444999838726246162364812622826772057386732590829172545859789867794856316543845105197043227625227449764551114841022537498436657763555067752518718582741494195054416423965324240079726995881834953344879523630931065280858340326231171491516684424678825049790974699185747299744899582448304160868230159278086856907003078931228789209863378588746219222004201650231111174553617335595428880928739856784735749695586945418523789111391090590018465038736064387313463483186195414245884345044799823711319161249488799357625201462869619261776839452793079914339445388750446972549128835576408026593208454495791491520471337647162137223950094712279184145103434947126903457898901934778511328117941809998406418085213550567785483033022268183422821652097505958951712464173800719306653323806327919831726414371853800394372637188578892188729537349904879260038399211569386657152688155441277480100714779538534169159839430168902086126493352742845852064234196591441696469380117786544791287052782460732003345643997322305852504601605402325658668125230411350165068232050823756401797971123148001166505775251509807172169185105609411507292393099538666125909795368513176957838391693549020587732652455371832189657621952412878687867384698388771402596429934131588469558764938088377308588914834889777993781710092032148814087801201509135650622902593413704535371420781791180256895010720216240063972529967661939861066860076751390511719055076955014957342192822245258300828076366857638799241349338306552825884059485820511759933152606909036567259486594643274707222282898893225391296912421380896783705462772439590123289301885204826200948049395015121041589776505154436013045945566988867307582726001175202253940359918566041939045566244559726309491588944201547438583071098355585747022278890240818252887724255397136675523512769101083469683903439020302980589184952517268639101038290037727050028681749637561395365625072034594151777844296912684621652757798901349108644788860521648078486934517562306309920624678761047054706538363886158844648056722741290571030906233512947731822291023559705613379007767338917641921880837534750752254327296925983191784196858790007474944453006205466497701887995375797968301235652511103881964808075871239685984404738612078450760269013476413787234439967941814448483514086044582430748808964353215997206261181325139094540225641518521882892272975525413880630385382289203293099404523620924603727064709050482864684684966485704814254727733382863955798882761868700325021418979984989660915598087470142260781461412932993284526169850887212659813399270994644598169696309479060086089863338386974241441950807725168735769101907065670708749029139913709973606467170298342801383133007220317572238960309370004189811632717295049334527822377288267815887558064231564418713519151780481176742383690024165745250261835179792942044663665217412479533468068193824537254580909703794845060075604000603195062995026052423268090294340461925832032108795547029103298645296199636129193252535438509807309103408492496348620667072086052140348914177634226753392872078782347332456293308995013952509899870431385460279007691139902638544428591184564485493654002696685859966668055409440321709207029691852637546219826592339535928347361849624262944172876037438811060398999549321253732547463124648558811015317120247533668695708421009217127135683101803502046835229974810627407027565096594428482265681319270312246691311275568172459409069134826969649290410930568465042342459872076096194508334045242361074005403109199459447808607399076252944561049819272467401026058075015674025229092471371443857394183970980812511936701952458447630129655954818483088596354297704980065326689122763238599089793832841332807458792199520822648139391669626269141041088801942745321876453059125200545782471628575056082613902434835551459304348065228342219400713515366065910750190943524288162064879040352203417286054870390272616957148949494752672736490824597177911067283107498730362330911375825446296031702686055797615401797276466233891076695106465742649022474795425193752665932521899411541655863858605240029168084959582766622681794143014217082549940469967957984945093999172211364296895593871636535950049090001882750665694665052357943565340685385826485612614377115678384008132164024710126272570814536476093987951239719082870225618158803559020756641203708523826197992232025824087962873665830856008494296720845429461209004931970256262286153338661195637017564045727791340067889060352328438558209525682515535300852233077565131754376945643608610355116793376385564634431613714874741089690397117373763900522956863979356216887202340572825664574855010021735464413790040656611614944503167059428258756548670813278473367597618441452913118618451251940797407843357273329759624443396121492354565971528764612971566045261707155317498737813182554073200012587156717636024719789989565982488407484768950986600012569555631867872180237576917239925031007038198836040882983777249804640121709575883336097989358080363018000679190990637391537251855417501447598016464119241830583941671952818611969433929657710760732616044504813602195605293833642628435106411561843358731415039144006609179508341859758827192724788971760783021945423438165817878700318316646850107542892921390220850800551418688584001131990909958408717690237300946948904689628668057808065227788687054577311449620102152329295681730081525926915042495034767786075213118144164374153699658493415892940497634991730072317012890134716788415549716585330988681070736570533570085475733021989074609476745939369604655324732750388967417874109564100352334371297407675358383188945722804336767166769591764983578287353012316364626700565597023894806837350395199477600043227214452931570542041219515205768848449969615573157279765774233641471169050956465662920880584474151369422632813847409997082357115272407180367695055098732602475911575005752614927595449463358169804988512932114390900940888433296426355393231679710972912702984457102838010520609711620598762100778545863066094091826239897337242210385159267546785062178028467075630270008422841342552734934999880212151306749879656746751416751485405925178379215299438223702145996845003869508829580536619136779154807145311118375896020158827266454273134323468732567168430193268543962389642762995863236115389434226907971221958339143964403037142468481859465205001169319408770880582020364779411054609928211728237592347763250896244611112420440158405805982513242555583963744347241731960030585458424274888582513895540543683729142736204526843779491898164003184096482003371373203859184811618069084373239371870722145511102097748945927740090379129023865535779911567206375833342420351639590308956556448955960152456806298939042919749044550371632033993313644093234424214732137374452676067526034001736315628754829969756488716280409129500124585692273191344639014360393410079527880333712594693026198126877643257889545268231395709857870388791161802122861854799386797802477583975995553816219589335358443708342381178298554727912160192861200332613945010225379419815057964196614033401037111482375417239678110282540260189199159261595341065207876320918757680747634610876338731406778746995709908037342448060098050028490317301905399189790488533948631408946284100605754132105162534986317999607702433758360470075239072587273541165369962233067611513203234748072291698440000752751732444070679524458531699783603569279009371624127557448812328128009932593871566610251635632193575932808592302835022791990332678695556948874588175521596293835677135538204689471504276640415693302939731168340113228450089814657948530187401993489390761811440793926101067145119381606688331444299801364663209472688151539982222705342474959391540601383106139557052733253772715122645324610616998241674820834344699422326856259139055643429935015177896657683527965832495550663667700213847496199410429022429200983964154251588597925909742118320349180349935585309627629562920591524158629203437211154390402053943864341473853445304152186589323082564005617320750560933031657260018311325212027321226235086059806210022962186389946157867506576970635932450200479150256340752971280395549247462914010812927271376123696193784154501801424844490379811065514952915636090909125630847055201738322976086997088354965361046224028237530544028631442679610875382793449175164586992060497560389238982277554063627378102266148448413769148385315933697955390271195115557241612970637575528752461367614678248020153132045205330939093964729981480651758047022781477673107374986766906135663183902928004125430435833691540207866913975378451963730431355501931511855277976456913338818717808453994810473062619022847921230226273154388170774987878140564462640955499826138454326500704333468166542026423030893064902941806903912022666839575435903393217150119107990736066983872792043329627454321679929195288591584510782832054402662018827454512546203607132540073587024318247254374106864524598990842723338676427555700733584317518785264918548168704553572474110874659332461211238394654874364259340712810201873050288068733067277082814110982159914967014934907470622357869522342839912559823600532812040440683200654234806597176906615093558965888517056675611525302159199853205951304559365461180778880941172141851365193139410151566697842334892574638562792116054932076001115305823636696580829606210194128651702842137767457843033659176365770723713151987170830685400787505912396251939109844737422112003198882813343911793125645287860022558838216403837070665998765092636986182509765244481357528157231392123585060429832331839388031067548331821592777289001295350704863623515636090042671321669006263180924329912819236606746448278609481762307660792417144734652637065233155384155468216447544048717350844841868744898578993468582797352151378542210215377023618196695551875727598446632262323308222961875764436775706155155133176898476710678765104704156444249432637014573508438487468739561979653488246913895450032027716640181257563659152634629848897879971996862911776928709668869529035670699171223750286481580847526291074129968644446733259095763688734796867991484357960900753182892719533856274347505691289468689729353331882803562496041236308699697172082935892329342456978392682534811168400865893251085632453518983514431877529235091096112955227857913888936655427659680613098829504423370216170534505161280062133447303298460878533181150892132810363800348366104269521342123246701796574579147072615953458768893765569636974163499633211302649290894676385302152273360694471346812692162199369338234033132644487246520918698413767328764953312097251964553532506144908771180052585799158617920801060293596451762203819620343110165179219099579868668846961082147240051390618871151870202902441364158360195093918396442376813326461076899621071791850254023265479450534272123242206299081920395446550379906767515771430043016813264843889208673367030141924730609950420554318079427303135767939609059771042709964537110695106110200331539338192345549197717698989874840414451526149476052224386650883232936368981295771647466378000083732221133104487470982803484635261740520733816146436381492376775811373563039661629222803941626901404059120361925302213178128424352321341983998415830178517324152120207569286710729529983115144279210094216458166002427173680378663394569352896229508065813815979362215841018923096423033458724838364340825821558331217822697193690612890754427856467511332425566190158952038110340223508798724288902578088726502852607401900840696257795965308238893544305254294393054927684233947259967900033388120033938127350413880894115987148066140852551920314812306623014055942513103771723402431763590810931518985029087781293589778358816185635571610790479465644991586116139451503983759475409986652331132665802281554375886486008503331810697193038381848623510035580128464245251478466865439397891542510312366613361534324652903673792078586235725873392107021544014364226882940820720024641167899966711910214340249147448229754798149744849811589803543632164042596005189427407179818721563872749835925499941487216708133721066248586304788909116115933402077221825436418169581241887941653969525098308677004965196165387236832564532708196901726547087669711706405850288100797488990127018289503575954843400346265195842258526890699837414830025892587688826351111704985764406620022623156537305721100829415025804498004757497070747416028752991661315873582137767834548667957889935421008106641132144009378905330701545144920799700888853105715170494067708318218444481816729004794068421670247722296007214687524654410536604066646679673000372695601962283889024599176372281299847761740604979100758660650487970522761786502304928398374457679810285134667988962281738493534922140551506577805527221887884710009032352866631147642578439272947645533955826097729414826972945882735553545044163057174098661069226332359894258888683512621314381622304325463561710060507348465374892798310152318088622083988940466315461111931937904500315169903331857675428809105615116951579821318962018931676603833052948860805357193425832190634064874077504399578101096556197372164092852820546043104223756489356931767902114898671569699539001689424212484295108836036262003839715817966138734958481241013485541851569289442489358881245754106898164299603569512958659579771218400707544176936326667368595884713469506895061631633354468822893611269566767030062538531457007963393021953041719858660212107380396560039350856784755721606246608887736431729368418085536736047622502186891540761027094399467609526220777018309300583941743077998156806579448033878154356772560343910592253416919418653894365902196389678237772773144330001205162570715653148656020591384884036921896450881797260068482790848883978449444794611095807651874723837805734395712649118917832534399525895768368197145605281484588197743708044893098554705195471363713342488293784291713139867036339492093260864994016974723429256006853573742628511374721864747536664625688777305353870181318971469600031571719333826448395134227315861692535481616722322253010072999554635491626813289378573802128142410742924220937207785023227896276100383035880160427130534057935781744747035783371498134954464244565583279196840905966655618817071546194647646824608301059491379907557925021473679611697014052678009052688018984576427678892478662856647719548076410989941661064795733527647334328155750319282933210896788588034054567930405019843993477050013545703913590508705293394657348547892987865711913576804346385014279947757551980141879518138059725698490113953930435086917230266337078143015479515209452636932751618481145300902366791580117265880950632445498308536186525249454243508871256092975902947303815169196101670976425744885178414024137528994321353338043866308424143722979916856413108881171501111923132906659053062695549806121015115300148621552992158198646543503478892789268304111749204721438076208250722787655082999970524031376790353895592647345061184972546150088800837107806417869916998421859874917168740210365262075379054939916877506256312112527078007302179345131938163938323646762688263622586224333546565865747128530123357906953538555531980025045314098794077816483806746237934014909933464636686211504205709397936169405814743418078270512238192205915230766293899538584000578802435055814707470435131734536935229671299367410424895734815797947145310771788955742813141327631132617783072925535412762577164425058321130578077741603327994313209135696200126264676862233704545731240916003335061869948729883083627166256802114163073457466188224406105927236239376407246921979670731267271509277492381575120560492054801425068780743886695783974879413811057129558761519433363919539331751060078518824196789865348011284794796943525915954704633891194770164725990212328366549458056156880887072107694538571097880803638408866476890127694157500711316576482347268540611142958731711148283449323610813832613474476163663224149355128799270555692744063183551453931604599447706642223267720524321531570084203807091773264573646320776444516326232744249428144443751746829641281332377388929454985533436541733162380461427836530766232375785138626405496059704875032656324073658491759827861982221024357278940136524915016570746549722284468127109022587605714809900549442845895042948245212078566951458111441394336423723218694993841817580649753642856892095388253344093848093180223800546919039330041592997737581670706418193784845480698964262522026327596478832430975332463932841497345931029937699274387851052694275084379913742766114837855684877961021114998388019719896799819163878911636935231277527163964098181542074563564539970461176525429241056900739223013395227725456871867781077655373117349596638448859839348203631970267737472689344720003122382579659180943256469398021833549536081344192110582671239855844303670843991955062758534095873488152060076320438707412409269940293785349346093251023109383199527012736333589668605363452796710314069999102275238587792621720501014942785741244300319610322915588582359274361672759186094529254089019431706902410356808374174211667266319195366723900713185959613008845169832443594394502871788085625232433173050215955146490968856408051587718427394891696133932711730509255440673676954127929955466964732991533830488397396315449613171424155308821241233267817643036853841891865426207392661252612999887431126832306187177386261996020664916502885837985559275877139210105950969168696407782661642514487399369901075138035820937423595148360925681444207765900323534632347035975847037550687710041919775729436839557871431667718806670883780769210506664784485479640723604135056307164982554452831203085177180838919928813313856283841811414086014873984937748865939589837766363991426247692840242366065966802140963799970661836664893420355107288935034166292600111856759391504408996755308627946620131979469658573606179321422528905973300204200255703153785732503084256856450857606568982399697130985387342202374137907287180905614962242993020576297829261855801383813742311022140248114718716828396125321678717752669871993211393759546651385547541198253012747128626816806428717122359288246525382307118604109170503621001405134146882292375346795613647400118091113692948727380715681634760654198435489459830489671154939221682242555382456675259923974364541581289570553360179182016095369499635964499524250783095599670802084158740355602183939870562003450592983618338050413528891919436769138177858949218370152969982835115519944345188846454226363408087566420938420640881874256178169830849504274587001396712111029654708108977453317984096834625635480440621533396176745685408813018733285364743686482617416460001412789585567840247748883275941398782259618345452876953946922654364013455368885534463715443499222073555973953768976754407546634834787956515424848514418800786786121119814179520423791847711075049145174765916112517132529797618152488240020782442451932945976301533298944693853856240243853914738379593030889276897809998662359270251836763365709807146295909904987099780740505659557271683546090191685986384900032826438778948841235202126487025567158537064386054970080998513634105003801382227593331489531791414482387036314664430172776964704273175664727924674159074488664390789695918634395778344256375150381451532925258253704149904949873607077254793590851305266934312421397767561798045408228553305386646304650885000183867509946103154205361677083583616797556756438963896185040386579237889472347047577908519817270057685263210132345894386628388759502975484033619619295791180341374103598562022910306256737109216410455134653710351027600373763338857991692856485672614380408994669526690289280274675489907482015485590618424372671165837884931179509290856065042556860750187165053724231336305839314326021771633247231694999294861457579907481440530884657028108453922044174233927371818482483094031417774474446607138552995085924004791152712051957036988559529525321691981307767933440600209338798939396090686198456104245052994734823747469578104519040201245062451416274965521197505485816884839929519499761506813280576144168893368828298061511709538103443428390412839328627814563564128964007910418994327651505191114197558508290675205667032150157100048987107404155983630277512384202417608411440569101182567714239889342124196976870541863179790917994729449559428982423573813802250507550122958407805255900590520841305418463789571251676554828115034094237605411348379605553432673866950019861150775653494171924200292700141739811102036869448337918212225368616263047183478953417752663593735122967269813218311151422792996601358113748162789856465237373035794050753334360683279742023136707735211482742316767373271805212588935441703622013798604797305672552351345857740694484268367705864151617263460885634996424054583535198440180181739675965484964637313139110679545529675816600656720642297661603559794494771894231234149620215523288377425165493456811096359349373294252080323116636483168721944459131371684558970778007859033898507116556546021240783447612641679429277122799898238144132270900101014438314144174347561276248542278045425205749229432643312533056276731755462401505055407976218400539674208174808768207468736828526008888423716808905977141345315442665284457766080068129285648895791470593464077260982055904745483758618004050216114698441310173495986030927442933937716030619540153267703940415447916850611697970044982699308401294304139964948722817330176159631134988050872510155042894220522373471028899709465688957640425679121670141941213852186909675178534507270511035922212899150766195380480726968290987789976081322903033843767249491661548752733478406923879819149670782988514790709965311865445350920396011487877452186683385678968301296973044971905434138820488832309155554787849806197083996378244990657404253740106658086383067811350847792040849368103971808185480288862499834460624562322130607858281266154369415164866216781834394369997675406018950473159959418635569190799478668829493806874347431582174985802230205583357324922942454665241559289861185052005397170925061013713455202370631149686027875190930821889823329899304677742324165699121881559023474062881242337753264864370882280251242764547100986151334110682044853789163571186622348836028972749474255365861693767677495640691123021472156123638504863368377008068727567963572102472826953321238014616937322839637073197493524122795241886500327373579834196067701935635080006225806426253682999701398270032103264970596244704890511582141605171764723818894691838891044251499545223127821321231911410492059235560942864795577348217478913799888969076422838777745602264802214610664149398428060774524317002419012292810903031225441824138537787873508993797385575253621309257898021923844255035506318258238184372264234928957230547135270968949567751757989235890026498287013596637826723352841126149247940004352111606113836876948173621245322443586056849326416960507345118834192761546144100024207422902461007719104102539995446351338323148578791261013655697917149034940072132626204585824312594897004357995709916787038315723313116162946648557762877167313687577813305700938536368517138927586275761452486137662635025072409609963702723492701917355306421691715503107308005327006429319651321157725508206488148913329603491905643417945937019682361779620621258997491586849093751206382914140348059362970520333255411069288209808294108433174899640375423541369587778377010612078638599760985694670978060640030188801280895077286841027895402115629295664693602142194840006229280651091167996227551996175247290988163766868557244488448728489755135233223281994508351325497049611748453868528708589828112983642988075609871752108242667391606812053401935328519662214572609908184468596050401434595509730542680902171960313960425697965270891128586549686628249100248884467513142682369721724961401447477431752099690179446207190088034976515396414935329446569906718414007811263381814651408901358740286753470555772730618521917283908410623738171875284979886152442255845392437840232661177941643723988099196060263108182795315586908588471748132688658389780405022005954944777021789517555875553401669200108820536283580684989120425709532838625520038901577486851725137882985216641983878692401509350275846215213645430831212469622111668002779526540338509940674947409522850434600161669544624029282391522694820107631802355501410965497554159043033681881779196468391004606470048516105650221156554392137055253537213675724896295370358484951148153608800835495899605269786040743685370873029837740246444096507485796201801853585284895100115424693349158508214818625890187286465495278721439185655504697942538692252193577487578359169746793940939430309024140015092412333005778944535936582022679703459101358652059481087744313124209091253628549939544477792735689466654359367359557432124452631793161268231800488120957016689248051898651092202931985641419391491923739011291130047455521215936782740790219662831118710400328939884535444986275425824282964425353674492518284415461458759071599256695232322441379440856447082708122963266971446017311763991605564654214412977780277449761855204741966289818848756121925331836911006923203485066029028403203124564282456766478414148034597578126188278698568013867217393018511270412145965563794377013691924189411339346526725909350634217075277916150945439480607687876186223772180262128999022336455876092443630776707892047745521631455733225924960496841029987640967361180175485167433532734745572515254251237173632930112919391694089831306332954853050335117387329034745192203674358068159033557123815023033522383302118245267040575901309989097220388295327190244412029972300200817143102709314496659653894070969480455548516806040563131535872418251847558391814002535426467289618880914666996610434356300531122359805390550268896955702633633232351528355767573363033080483440054108495400794187178128118330485479173029661710081906683818080785575427474820074175822995448903256631061475332418237589418181928808510106340195532617293477930505909937381378437283906095964790669543709899678758676161420819463480699348299612688327701749161298414567338361072819123559528476169001741832832826633737307954464033991121249738557569200275867050084625495342522929188606306424831428107919770470997820860078708908427890283850722303397453946799336852432275786330271279791773544378590162859807756312507879664404449546276365137456119581352268121343329026791310624432331813086656824406748376691304786432970675981017463973745514949569169911724221472030349963803430707872732705277010153385662879744639412762258067323911804509706865928112890161552172576352881668085863978540979508043656937092521578831971410231716060500723672516416563631054224705486312250146960661608064684765850374884574811829931817748162700980075877510356625953562339322866110240672640440738838005713341892094310403672094253003411408568873503438701433391337567915270744639218777302093414982538461147724462900352793146704275321560884587944089781292122066441300768747211737482650716157015854809807741251844559695872394849572672946403385957888614125740050785336173917020572733289070833051278226045325796619019081417781472591880407785979118504408223753577403388321828293186854672890655518025197913586864990562071644467848347189332120897319874412388298947917729999522743900641987649021827975959426249054492736673889019615644979851534187385594602436713010771445820410406208568975045905869216734458226013977136413169915336146197378350075075177933496823298410103820425660918241332740512366076480481875068342721654341361091270042800474761993934880652681001406662326424716832691503313137767392889534762917526924511550365357573037688701742830299321457934041539971639928748139923892008410020466133188262847618403533271817380868971053593555808712952699472638939574603192627198444837956408989320763693405279397633051871966861334879983563395303721165754484906258963783785917435181110547145315824298302397283269521059745849772237922652512270438068125647860641425418249020245303310721131101793821783733986365679512124384785254014891359168042048266020523455368867589666662218270448076008361442417865575190714791898776958675842934435287396686806255572731998852723642204315597882394952386128358132073107698543383942324720634694511122701401949613037984809961129282709612139899721105795229183321138618252493607115968723982913590173313630351826471212128919054510429015932981114710892097833780084404593896373350922867338131384943078893650435050871870023767085343446051738718801219266206286992164835033550485458084376680871800897349353216937640170117073691663865809080998304233502848003430536767928626134264047667733525026625509235630201770596584869832205619088910866674554626237648104456813684704271152223508116161943963503045596545245102051015783502360382101632238756805309920721938436186579714847340747869991139062592305997190005211839941042788027397130675135924731816626794104314106950969771131184982390956199438426140912920286089248505350482886837618959883694836769163580551305283069804002701279082201562908398904007136986959725772393599112232710375108730012883029977735600899767485695507951424932246335819160452782677213627328662700420727014051505881742444163132735453849462144746239259899875324052452101111098390470021656548211293602933049812493062804450245477489196279722657814083562434908185094799743625068403609265776970399611526658671985507022820775167657577637101356122172012563859856913361751552928450290942079887543109463392854568238686845956470242520534179287228248179850691725840214346756743660932083863813278340094764146425938099245861692043923829472196981528766746477746779475540045341204914208427150301244110439378706405857367487660859912383911551280926817655033606994492888174948963840557946066785988108609762812848960573010412131886023588749491941254487304632877417057358885285887291871450316847356794583151697769106059339668829353298188923498609653093366548958008074010749533704161088889989749742077708317771891142626962249780885374989057895332821430549601970459453573821821617317216809210396995395091608285678108468758501221305733276697180758690931936822709475124220397152923070675652656624921289713206046207467633156711885974861844877822034297352615854490715569908840464345981692382527355509488680483820281162695231766430025332830603457483324247398780239965489333485197891392485334401572017466701008132330074027525077470294882155500540674342121778016080631150508265565066408069260028342648392340429892377247616177638205951461511760798568540355345730202805734745079660881216993311667982924856461748960108607351815792027931680143285353601817365569991868888327234910450714998635980548083979421180215776855786506949013342135264025638944041110138484673331446272779906799852382944724504196730771387357442142499498304805313843048478242515960837013165189817741461958357026941665769859734270493919596353790365161858138488352760697861299981751367686601046972315603823689246321874092272304598645844404739154653460561968427869654166658113706087024086714802683448713843136688227933239672285545753277084968728314426113176078548908293597368346168789017692705077095074480557747548586148023508458401317602565121893814447055913005227580216746734967077100307014936008564923554968820301633263169635416003721478185725803190781200710871856280942016106943547126564989613578449786952874330431309238453004410184680629520808111705623149903083495995944852807613431700213325733095636721095519430434266159592302352162308742768703294473793040777220953058176729850164683809435780994344840179702307500285089768426721955989690786761371357200931751892632306830118541504030207669913082223566725074719265387308406180645803054327723702176591748611156111002419412365037629330434025580806364570317645770158181055113757060496951523236534075721980889788081923879450618901643747180187900406138902205802120968261889155955679380219423007065843359039961641626131571522068913735684249469591012274799839734222720841015003735120374067236630859283119162331430459619505899182618199520969228060459662312852598804573680485152799204770186977568360849623625978807197563061726542955394291228887581051652861359547330708281143316386945634864111424951752419483041227442666949269180451324940119643711879142227125169979591313804622123934509632948210681297959091325914910321304600256409390880533994884450862933168718255588112761128991284351316985523221466692539014778296246318773429332695388062029693674975773381487595700332240491341937019100014244721512055645379744826015407766110424614637996076550144715220770451975108568708641162024839854208616621312102805198593003685655868116182333200282655493595836978743133988216774807605386649015441254585696708550075351198435745425930102081897466748484928381709213452995696595848079092277868082700967971450265376502632591647311729280685526730258023752963852433569138803412974752564175482129246602329593479761831464161806689169628649233270949319248543716743510544991196504018495151972693216790672483264823746386065035240073065383446239800638755963287867990229698676334196958156698069604666298796788365980106299052676246283962048231863347180514812244905916484272401322944626662193185488532752035851493603353368116458918490978405970526966643080098873319335951846627707622820044194743949136871738691959289518668382537489388782760031097760320980775102470485309964085168974249215599356020581241704705268042193329123237479725775671480243844084011324156566173196772761926504481396094258537605240731738549759383587654571577015330391908327867063841635910846438186861989989946640404458864058096986094600402061960309726474313494875062304455435741696564155881183429539605260345123125275102379530045473058943522996516697257738241930363894928088517848283206327938772001007272196917285685166286023945809325898101927366878901461593229239024072985510488496552113557710542926620358818338826464709649024451245676254535014773401157978549828596044528154042057794636571407576501221115416169998295741927204167337441978726250010749537241239278647442567684447661367922652955020751496681690082058517701163568197709889158154202277978825597668227173903416159716928798077728587074991677214079811804045171452238043039481855263080381419005317776531655307251170486685045636887484200014048018049239059440443497077997670163162225134662696577497224020155773717123238507123533827296965425096312701068432016709599611859463458796215651821834037020753888506448542008128340615192302097160696401256831766045595041026855062216833954522139340648203817958704379667772966948498462635780412803029385531711229194489979161968511040519506802273978546863665869019224155403566868582446603283977464190066842962319051567907879858076470483549904195223325665416202585768575797224186931090404696700780000254355975972417734680715435087786167668199224950060604146398306797714933958350525945551791341991867983325002867836327904150724428914080972261590175074457934520236489637203683925090766640549678214866932208230370409827088530545794200048494299442878835685641034527526059339194479820437537137402800586258313573485544218153331193375197400622999444797687026061043909566174758940043065293662100499571438749947145360696103162311854099393530763206053917684599613295689390837117460622012120113404135582304190107555258417743587307054453831297308870790990630120964907458318517333120439414317616097268867744940496755958799068992859718126462846490778505056778082464704656090446093747877453575841850417863626084097494008507603497085540182696929654674833509781674818704286999235964438117682187531811454369315573052672819292147007719295962743846858307845217205906419530016058488398826075306220398746915612050551322127312617464647809399605290677214196432209049317711610592078643856881330247669779844818451779833150562232930456323855335686015723730099786866905001180790215544875250939176699127827019094823506932023807538815458362413111339246434596059967608014948278769092209052605151966885424255330127556476484881305605764874883782651456839247952166696950447008999963078497127212721438596622168018551237071946917394515743147122174883982067646568610589480615946011096136395458614862694126924155633599233449772677636092493952455378396614340423256150772713167318610472108976459130630035585958655068769207733093759499226749652860887092272811105483722554159755109746414021561945970101925018276281982933020213078000166492203037546328570735232684354819519355955608559356390757904149059282338563009848608735845882756423210222415012386139112035729012108124034770823656670432243831310516291470788269598586645138709060897193462934199088359334761030643962829403715831851678582096028264031157731655023909571082701098232877415905667444761012640090743651570738739881499309434962853484792755945944026612627105608778892851308292448535024668316926348700188166797295110953597067491492949884905404149911628510780311943246187386564795001049928014014964956342196911600777990819971062396264633894462025344335827676730708193946773326503719656909212443475015453182812340486783463502216851324741583518387550282678440533488268757453810683513577190080101020122428039472006912705749575099705469629801642672643571559369393547582226255984572127917764215379188048148678241699841953366684198640848807820541621923230333275444600269498111198083594044655396781782312806000802432616387406718737737658503908224750036488681344379288165430387009644696785125754417614845180744529654138570856306115002003519397976391468078390052143685028341777441640230120737396831287566724146986121255419682366470841895798809537633497166849019780867865554923687713210895539379056134386960317284957815455680021481135307874734596013164115636813392110434818897398966825895878924197408832285962977463768450819307960038224922509880468152588146164920486582961473543587496793382915903690018430334559135062446262739262785414264699160034600510018149473842934040000077916880676231261488089746800169983348487142935829706938445863929101081898552067624755816237057146699952587989707420845165649815438439630379326090782662947377846788035080033123674589616446179278045355117489462475634230819403507642127478345471699399539619642854016332810192742503056100509537330682947306573801785546695731428851437338304355419577585405372607371880458609316020042051441474304793197829878661027578220721638668802329437992731746977070732677749233426487560746726861241116026068065493817617643833613640567589170507631881751198730965701250712091922989904815370561071658855829999979163153887874619601046324962424456374087939876454601189117012985156170030232164453130658805056403687154651250959642299834264774292181715243519280361470174418916723436977854651783708413352131274870835099606397584687878726505004882939847546088569833948414188440833160767593380705296037029140023364993414713474769081761420660870207998079873607762762350329449577205022972588326356613576674475218481345033676435684605269832663591587245463272997730907493353510249399190939832994723295778405009710846561985731793480420361097802815507062353505275565804062079231591807535773491729730964553190283232751069247112702069298283829956550079072289459739035959457939356277966663192694730305608205034045179327810656733928559301715018103681487289311149371173719503455157301289066503032512662271484302627051205777879282519740910617952776140410893782521258723607466697853889880245975933644961934738175223466445059037943581401763089683998587183146252254915610162900999159615173828981314220671733069727202985015228360715919804536615005275219886797178543324875436927554271536929824020660755690431047067780032156983871932225490962749049806468334710262631261193804145789440717120927484041946204961038140860212851864676630190574520938055080824215256137541422790203009631862200825455927559900437047322249512414886668603644983097755691110838608714510523276166543302870097405225729111977129437572007453090271808129172385784472365936148063505545653187562312885803006502222815401745563169269590753114894088592621422284523317021946444170543644154762357441015963839172450286212539931142348622050100806053287676382907439225714230717693169278093083687003943837978971720664315345810440165956736659756137163927562806863759179552596718660845633546138860959283190277004378768341701343790953499447538929489153306711743700958667211046651219777264730142327264461740451766297680199063819685198931243561041373187069195497650027707543771021207367950543988699442203797244656308437815328909704325127528104083849759250237431622962999744108747733776949399094738212359998858435182742230148560354364754711109218070988896407021699343908545864216184533719176311077497915740344195629808388174971007929331618127977665237390402449868391712419936741674237723405577823502366624231648779193699709263363056517656517158905358070986639576917594036012017856088881734339032317017269904962495254294793253054662840808519593516666542269692811253879698118078451321107559252570900435726268142188905252558714778174384404452670313428945628997516847784224744845705164004650494441382921916289721089879593596116807509741400134979383924980328302345239856882271467926813695994191362081787415633036488002682955949106147242705270010630445410672396633239597274270732895232897200598087075837800047746777845478901343353820527383608996564821278702570990469766326723275917819784478532783618971298012115168321756755748654702081900862243347217952197887836613334967583292643803676615279860872413336393042496894795762214347721096606670819400882999790376565642487345363576235546865578237122255280022364920331323193106632412895322990789292642131932158252270954386222867476310331766764350429861008485141732688763081914199935966067766496506316297473079055205541293012798453749369721523748165140274763426310472884709472179982097135521007850728666499746392088360563114310640484384375382210807267236380339638777306250411865385887896114243975028519631669731962069631818816667347571539944611784888882204616178146693083088943237981761906632122795800720222470458080436077180919346091315685354352431700003129392725794364258569641359468230584023366410432392640514967072711381086265463345526765878623394518049584707049030698632303194413827485046999751348303357668131972604888730721554936365316473908847674842761512518008491694202892366109620785590656380820351600492075334745990340909411732628131621405035721210178936541588053384367713816956032142349970189348132763936334443264717944092846243859029982241864470146949831009276461136219432237444228984947521488088391211118709311448792489841418913761328779832867468645387481891564730555587413524843530119966058394816281148297823226850800167374936805515290823040421412294496941824939527516160770717588300014724499797671058501308722126974254197959179997984400804084404735983736158157369069093774154118492170349678838667369888776425043024835813112026624327856126564767198180226731678684611243985811091581178863509481688811983606291282768039759547711531306740802257052209766228234597985720823420062249510144635835568125184459756889668930033365655482514920790456020923045095073139628767739267532181999320111482768965835354585874939758553561885083491348590984237078162799692444002640198020940736677736305211675839831058795970833272189630606712808822661298268352840542016780311400184326147316219008160621690384912972677910041824932092909330485147702515244915909733440248315962439173334426820328157426794390540757950814775492320967614268473126901531522447131635573710931784490436987374382855356344463214038007877671510572258686160536327229624637269265742077481554484342882881815304313465243828082399925026503186407420978973249694409995293171213493174769632090781973733246788481081959380094927412129315660270342630435660610476216277402468446399295162665545418331981532959226545565382342122716089687676229919005927593243808989588124714403418550795036989735418546151569414100759232936153865135026502069667382800793252571588033303444280794809489528304133214773561774000234999040087318505090388378934488431074137702373057018366747301320405539297036107325580970821200122026837103462853042959229663741418056300933482244979939381158428884256583856203594283266606128284776232191832411754115754563077187607549145750113904984548055350963713792085228339158022417679970603033885015897790330408153242776800776117373484648322469724705995259570696917500013266687239432522701187097667969715675806363285194225424746440969022506570933909318111741679467112951418067012390394280499837958822593488130198221063310155121406166289096290470238047997505341369615018422113211615846812504286380962062243244369748059296270399782488322131395367154249312099721891945750437063354732951120587690283989529949682242528641599819989292772497842166319470715663437324821145453225699716289016084150893576505268963902562726726378185671139403984309557464163518646452616179870688621721491104697404066073537310059445649652860490985619086732726099656833948818149021361182903143331111376221636535168182595767075336432251027315170719379908605164717183238709390361941481154790562888415642218286314449727734261892793418276357214667574170634563737817081054304175989730717095268995058287682684428496588051888509033516452764937821153852344556811869322506620925313410821562356050288506637083298284827301953911263924181769650275265840919048131645094439126499236258293170111683001752418936751123540309730467799434457292234130908368819584403424092536955020868795873467323656849041011697244946210715034094712463183358574402291424976071724704970357098130700704753371588943331078788900414664643129572914274869750860191567953668726520342908475831312264611005686967889203298509684108921925488919087170667810834513597448692976840908221851813160370251094519633224485384396919095386950862976021202301074145074204398437207910909732824715210828807609106112448726107588766727033699800727358062246311960036828274839876256831588407562874516486518496512705869542897324367209318382386076720421328520666803693643001652614884830229500610731849746285746970033545852498928360977484935627471678333935677906116893011261358392855369809995240944056606654196196665986053598722182960563529263440789884081850135020229355776957345589118748011932953234213495087439928131481925935331389658607666472942420843966134823201450794539542257791370986451619004640856688478310229601963669816838942572744291690657374538751505713507991126439692576647695757369515345159254811310536426689309957188192078031718759198221858321227000747068892441526686340737145189814837255836589339702524270622379373040108320945437436305294548624458604234699317037552055072533044479254413497105380310967179645507652919990728181417495415162851647764186644589364113811220778524603477514605232512148411129241000644383256731558683646858962556050425366712781405607931480534485367922709383727688614399273593765621638677371165364237179663083573763636700122491980422804418943914689609739865577688832327803067228186582565529509146123907424797219427402259459226646061140075917890725936465730924514922258096820033119004042130017130515043258020165180972289555194251518568193156401399365139071384142518184806225324681375512737406666826290197713708940078169588085026811345375736108784332133968865077032395598918299750250822901493337124698035169390014812982566401982967128625082704392391127184370866045639560700860369146557679923408119912909232919448552068328299184260909476602466232215018240527473832846645457677311523423477773530712054385700461990448713016834555339060817338724655581998493989913104773891769770286053179465233449783259890575616573475284553944126036508368078502194611437464491781221277685702787763013103589702165008259553760091788715164701154439849224550918384552727402546791026355566634116694731256157573624292868140180641297357338377551505352520924932259804889458599645623580446330674367510293775886466513601241905497351678766341607251879104890960822246350910827877274824416685328376987647924415986577409298364196797691286401235218569119933550220078741193245341735244494453886888831149638426602352105088625316267777478864414153505941356999835054969670856648398542115893431742816900530615309248530551038375426729720427457285429918730236674052872496914423696593359942932193682360108464119571989852536323134937007934158952008585772314188937361903758462226868988034738866767317205163010223919733887601644344853558442497510275324388057770961100818819433379859142293866422030544900380279872738162501539326658667629942026180105116786622150799938535343685877861886076405727632525808842349646737541646011191185823074691990684374637621757291069460784076967349985234344570333810940161729209682242555887253822043587759604273458253827548201947922077389050051881309267229630417461275168563510268621298164382026853367922444467614515880705612749818658438254426949148151608504443834331444989394303727419711709419237308855241695414052106571541039551810618990542954475369930994666142659524731043951999479635738406808730370443888925217384185351742962358093274387911217460496724127256528749688122288433759021582700733228341770573116278562651519545924796177032163670211241908782407332139447588457143566187801388675995112416179921485051916909008796338829052118941928846540682529662904235536451830995920265062144094539371736206007447960616218469847465667719946958988191684763257217308112724098012188813117595763955466381608183178312818521818554109768672315339170393364836404752617361807155151921925978252110724890626460417759622090092985402216966029052403518067575312764265106828094861243316297013866535418238425943160820802459722412486256492480642658606019550177525941440560053925345540154375598796818956888054350375398630215078822610951995357174111454642705900961353036417994480591217482036352873875507653431983992416319460098289154627447987881532268247991324715859233059171547445468951587050793956278349521043520282694386164865634284911455581018328262634476204995818871625178820310784824468627783328220478887820354150394622748557900538503654324740665850348750342954606511198403257146868560217363907795355719487233660408776196367088678402243815065945785793799025663603648896478746536510987764901653290761436432502726043782614424191667846195624629954405131689098550403691088206847528058580109091243490306235847675891684699923232873529674465066750593623600330140421803405241653288780965201279584801307768509438498859114782965345429081507489697745957660947228816093064777816649276056719941732672033722303671360784188388221087082276745620176337105792727283148805250426400034864980512117960201559488266433000152173801213881225552197976366474696753455963885051537342087230695720524023001482066838954442405995484079069528887443859434323996863299311186933293493368870623685576948397009938621862128134531980713138135633476848171933471149572660423028901465548778593182828981298145162206992498285235086567157953423160539126571934042809642887163889274212884934479565341818252097355209290673856725198311046059839999748323795974014150421322027626317508252195311969194692993272750806615124009382759149966013514561054883979926155442332351472641826658811952574747369845841921434387399997150817026021965655483553184861214777862061525810797100328323588828363685235802973488031863507206773037678592347504075241572134310975355466900390937829865865294468480574357329793137982383564950858242410678161497816585472319791357963142256914191438974821400630970626245131512301845708938486308350072375592457553806108239785429188794173530159333686410919401456398866124428517742089049166367323319595913643112381724082390558812654226976299766131899137821836670974947345259828830664951523314527542139110847781918305157514120982919315019467943550201163502662940427128783779296325892376904302736405089745938440297128354096518105487236131069029101314326763938423880047963902720696039118519416569313210636965856647667707064183357495105359242041708818184632509777950052602880652342911981176563400844944913020432734477897420223165982807660217225761214622087117877767372125304961106831180157057811709421231206522323972360849011291942791944742134103230833698546003624241471480916898221423553350414351037655980974917034883765930019966008302640602993163967245628974696719561928376682460639329780233491146481414601339528969875153865808675809605398235111396833759912105385846598713865838382416034434424090181815275809719303446787348036689716227483639622346843594237616994870361155292815554137528283538148907748569527979312385841740623188121846915201159979933528467398071391690497947659560245477890608045855548273957928364317844533945810058474808278320349124770974950036818299789560588027757118363664281374711799569489532295810215858955926399596282701222286916721393891403152454517700229135773609156553314677607046648282853424236709459012693817513622464813994449613933146935585118603214854835387505845649080177939740204341732235925376635705457224065303624976745258729710173348877019344745635984644794064901601566868545283812994697285885438907229747469690500241171005529388730098651221452500059421668295875469725940486264386083315223232576347767113277220471375491435695655745154287891221708684665522418294165517538190106858038767727673080161545236087467617439487196282165172601251099627013575205133656367244570620077416452676792993113500505549418904109499978032817692144035960207966275019854846393100134028219768005663070968605249773680521328047430569646036364286543157512627095439405684599277659536196370123909026127592688501273173431344436616899477431459357544379664384598220245502729870422312094289292768679442542815269191401178979888083229895075145389268015843393951325074657039404601435797719534732428458747123671943771075367734261538985018873198563066847188903476150226767253918721678279322924429455131026627555558158904273352121668334557599655072266063424040982715260724626209528381027425434702176408486957148975047111380038393806218638816222762113412010810793701219805075018792275550458354837870307817434034874073535314658336929376570176041779483343507428248113843570771161586040972169709482057306791798239622146374196158146351855954190489976122687451993125441440218297556605616830525452480335473600862459904386859516640634857588790045464660702619222950159888527914131061404867138049400404556952318903180958975252788100473143250593890767162712138903890480632889289421393254181553298127774024574938219083250227001398513582774783810818345043636713359690491568314170527427735871322350873195816114893312364058613324499357076300023897101349836045862412572885872612384802971988955136722948925338587531113577287424697909653732386271166284250182581404907721591526837788049144326938366850849685479206853863305506160542599665931151182828705048395021464879819136029173417164494440186144436384353364497755193730794055782475015376466134950862315582610143706348877646003125885635959217920338981416751122863828746750340042578180153030997695342304540936278768639709031244645150972653162193092021000572616974206844798075202259909927143318854859190524124077831408818591197722628045285201284809064921398747256314624716045424733332616727446251014305611307848674223340554397146042910645877912254859311320151291945543390985387157698986014489320779349761198959653872512003395612137241200634978247592470067983810213707059169791775856673437490790349349298942817529835232164554536563986119808893237087130749121970812187556669270913983616300654243863744065731561705618593676066167027150121302733363710354412310563191698982889107766098923449000618626708520731018203286509842421760688971957936407975768048200134044139748503346730820405870934892444312071087358399394914549112111157257162093986659179972771427259609921289298900160489259290049485976552630026717646622109696613000064066574085431096622233660490981186620185852449630951698362850386112987366701297386761088204477867272292788094118857042999841106818032531640193845209349860301333897992998634531909339651959685053850343859024216935590244892127346792505715802997295543878450497018077505564212697438795784939928005166004800697353800591182938182245115886359687093493398718112324221628761339313023902579407458562357136920350869614105258385660396071680811531411491137730872247010272632234673595160838199860414645713406476247542168908961820619418617456679266650218381942970993442789932822167110750575807938497304440796465555052760491422721024259996093241908123160880959596203789263492806096018557612390071771289948945567386099674465131904401955320860485441615301177432215861199961510714856836169865453177364726340174415066958598963647634986749642793766234841404740580965658241757843116227894468564218218206188516437347678000760684329077974001926957044153639351671166150182473673084470426521963470833469348326964088468310085972197274515701423426049794634941562151447357289355099254749383193038624103777276013995348980306554594944695866521780827376049986132993872449009997514665684234279020318176475250035942476280738580037531699582721659889779662201766672182249296333365136556759470468958633105032632430013977735331688680466634118026201122533188710940359878157438968125158116707994356532806719578473597120874757390948538384054900699405472200129248350746932059585799218615766398452636101198003030419930298204231854213351716837010124505255931712198359737369156800791575000682427948449822603160357845992734775000149127948019455381937793113047047797169483432752385958065398959046876721386644692106720565522032798205672517012347410770478823329774436042199972044323240895386798431338242318389420151952244774199371246854842417639118089749884685310531095296291854454111641653032370022427473888415734835207922636232169791596782564612615930230713590996586404900351102832332845217881239343632449746380549594491320957289566427710686718101625359597929240738405055073892484149901780522174563101207755061288445270186642994129858559989553509792764133064731537171378144339183568352013757943227715724454305062135813827271354871108415917859456173595917939626982236686233113881727384545740254611635826520886390594101209545831194607460422469827911428839699564223511755250871074959254140385868795302053272576317568208140586522710511642799910404694526868030627764966139802322630553951094774501847742744603422085517434111938070663402804508484504940831290931889533159537828431444029235881955105597901717626259539014537444491649214014769361775135528492506906366174777793398855900235998499176371106044423452394650074747132387329863673875095991778137745185319777993030135638024042397203362416685208963747347144808290735523248169418826221727090261322384669319445734815316626622135835267495998291991555062810198728380989620910933694861973152637277520208016787406703161477911686008357728054658015914804036668884754758087182992871917216593471994880444400360540030152075362703758088164061636111501647271449728920470817673274866272393756656956226904580739570378917488277503792629651849739401897608944666123966757555214313204478522180304396753960115566422489118397672704038337755813281575994615760370532385338439461454537113607177312332971509086993422566120993303032845253601412754993418547770162163140226865305356061721309585561660173582225000902890683241853650598323778301850158605644799634159231720522211247275076232023000642609079819321160437817071821511112318806338551322474299082391943191935116197966974806964330455494378674811991633008881953134828958036784218389937309326518127605198951632504165548382060535021784993284643472652354957324221809659346041394064802983099654965894348117506457691688452158991358538339825412826393351044136679190091162280111770031873772077755360886637076689726308384246741883985129970797069561304964386581347364183777235435187232902092612048363616584728858877858085609318941672270384027817686277365188708006777152898910210166461049868583196765807469984578877348755695665038000387884535699445668975073384661987689699600193752033904726133722647729124088344823640567314757806119963476027471281042204047923153424047027687054741221232055810784327170745731634717952750833904787140343171098724545393394909159754557024431497675045995050792572890081162607056160759537991144724486097585733212458521760520381627125866119942667381249034556687179787307301644140948827760821373003239945662872739061658238633142608424108412181573326435376128469149364965420385619125345908365613344787124557773573463560381993232950313253663246531487540894915799524671107581948663061505950896606796011383874859723996182688492911752261624502887587961548446307587092914313820654427731894618584163854939849780915010375848556509714109407895811605026476003816853514361241047830650780351510932242044714298908358820754139012740158974913047400633551996261908877228422466506951600943601783125428242820806914451394855861135559091771457132302260271571713192842107679296945451150587950092730227931801772119735248109741866575399231562165766495624863055498353071816368612935578422417398945871408134118146360543012182629568348964230517103972531218828113406613669672102331178592016709646816621882070146154819608755039369053614347641057951455278036494621013486298613868596054102461840883236454558911534763901415003876330497904116990783910119831355256020156933395549707099560664366449294273720238584908672996337413168898826311682238041371621942510332403437761096925092620597203267205140135542642860841340701838457960203675967371478687843600619484361585346814360515286882349190438346090005464896388710297961270074830992200124743246910137515066304990978258226200946803161103104197776854014175057052257488607169813317068456956105734358946621187349037423887400834293338337243646906114177481616155484645983206726998806690577420842480895050840847243199079276046446459820019533845515468574688599058497141366713648760452050741029850567839051538181211833113986481463355908284959392672848019659501020010692871560988464591632312253424234321169902715735924874814328609726100212491930657554621574808202293616868675848226701666867234923245047293412109350452629210655511058061801465696000886432212141789401078850740786790484976882711783828021477697164534199703828934437701638699979749262455098491564639243762984464722888160732289024477607914526466433675803532049609371219552760872387675370859183454841686833947478560402072868401393988640647747494164038371260636218339746705105666550310322233352109178337233982966075816803520342247989144446734368748649521164473909919414208297419956804356991839458944704300381474370117504290769085097771970396713087926971417862150687973099408754721613923739523889892755035633529025462940962113722837188588486594143254129794347123696060439118443303132259910672549829998620167398075865835997066483272127641997317765708449827360557649855988671373090584454799539847507363364581812385842732432758161260219449215603037877749987524775129241261829556949288844100306902073067981536490302184750987650184801173366721692617978146663344698771562943073033015777188831330480649502075867520548745547477599355738913641004268493391281490012979205847938149031900224195217544663225295574137316564345969123745015260639594071397154929894274797364347821371455160399146435898826360720599337012274715846437248552462873910024778996099123487147422480296075757630330612534541504117373391284116360792763998882559707228971799803601012174973359513436933571175980077642419088105984397426542428994787003142875908583619614618371235012610328121737019807116279937293565101576615268023511343378197698332142683934427597833438398603888481695881412790945531772012470781059880861984682405506142983970844918907932007149712397066865303508639981643894319529011353614175477559713030633013906095602677867389165473597284370637492971941171658772515247385024435367036157040592730848343750469486673178702580062105309646386169171507213203067672614799884249453736424083339782624443504289028603890281780339995392333688290623446626871095371253087901987065868384619246498251779333708574249881760293443579284703217551918802612706467734145966467610362043784047845727606367591742457498437520597601184601004553464368303332899461326598594278356384831855235954766328533499245566603409466707599689114032174230201662849213297093150868684325206505798056719195710331498559583144257499715580170162854816891527839312254170937152660334251154419346402435319575723912069351330586416999400800798781767445834218883144018516499118196617146716958023381729896379654572518269405345755221455553591005550732070768326388554452398122020706462022136033565450145522043397387264444387076367931635969813297748912641358712863160655932841030567001908729647394170197291330777724196278902336931782679892482649877078352751169634848968668674175308607191452080090831313120353672868775088138962457424442714582744358064774979738949879794491679539256574056117772502445102170602164355084122501823870489926130671436884531242595865785094259092933873480698654293278617095893056285904378805769761860875974175186961371441524841088699957229708775745762898309513699808937921322493301996396539069120876824689563971373496928303848033804068878771279302864472168728853129142690744378289157501184453956839686244062221801097476952185911003606044948375587381197288508725381407237806802904350094809374716886166510222318065595938896257072956343137858278373164747825668251933307443663870109852883094468049475207229897107669269418279712574265536287154698107470162483789251584584914093262253493654753089672672250598260882001630270990539051472006396004329677739224690078350506599893302722950251349769834165492511096151690634634743057068791994905530856952907434690296181402718567697458483427411122577956823353083847099384328542198577068826382941859047569744265375609831119353288059017452478995237098885724945720668822466712395901892601281280155472486655977044078239409139926953284744982677534540558616347995537736493580043344585422003072038880188222063735412897731256114609680599836034420157246725710328274149803470201730613250677745038527265795142671640745496924624833268736398072989755345212959968316066658433186659575658925072465923978862469615139069188722401965639594663529744206021299455373719082382148605725366962833955382085080397509785980882894935597167348583260770609577498396453633913772164392455033329412093906248839882910083778289686202418108375159491593614605817887072236723214904310826221263550838308476477464097579027527039566896417128841088857437018069311542630861049781658885503747500713343689269079468288487125149411083796464714808294661183995344171205256019587523435683008092073397722904230935903662767490441327079849970330174087717126567056586864355121239930115042041204361754046774188459755828323334777294647701860035070951907906024113815659973324225470927069144035088421902077145309776388198556841831991813723951604287525462619751083057365979753582252047911965487821603737987511981739146105425344634306830947891582596449826964075001052122530891366358363521886125612343862104422537451702047545756939515080349286092387247898879389860677311672974764002784697773344964158097423258978638940935741038147689857052154635717691085747285383704001334411010521629518312488016476094268233362955623158156595482710738694069175089936552709539080327832774711454761838850743833212891345000843697226507241567485249907138726877604127139356047981309011230198551712237061334229995177876557303263644887335662908947866113063019802117211188080877260593124171363336736738314406773415169563367611197971254719568030439173256857139611052992799742068134121796143677736382290011760685867693817149967604724023856334297973480746127875384214935634157801518728861486688406275988050293323098249372883435408732063373598797757946367898402663434653976783651166353172403287243128928643872392695154368794816313726664495628161642707138531421197321426058559416128770389871829578982054541740241507989658952271854251400946131048426845414396659790247061152218048273932669618642615542916321363375417146963474129730426588894103328672224441644552864256142942993358693987333679065461445968191137258944863321901255256568989149115113348067820600226942423116278796777048956673400866967092914038423695108539691475928656729831515861191571918066149066304965784917276505517402876083967251020148264446355816197499099851938823226122251182137238100489830366732061959911032554158836358805360416804241636737424567659216615868379356769267163977713492085121574503046922148682736863943416554097296136761291435246813980332150865888252685707555835999002985029146398497486501114555788137769339133860663978492600403651534004655239546761737570194101824981335751293896930359086415621907937835431042559884345193201703006228995756126452674101469255760688927515130525719132237885080437907510991093830063814310096437928853320963252837625454848388573757812073188017781118669995468925961417736532976921660987328586017032416177132247879362302885467657689826824718396025290685841220496578098956804548734746363501268311119424704023811399121665663187148379616281895576751567505254812903736958360811437792319630514090732491062326799328575118144421788990066403674926997319188263119687794194346626045435560835095152396640046227164881298662019050334795352634051471248058958687955265374910027136178705746133708437953057963867629677148539243873446088567714156489614784036460059305667792363050805791269454940053715072349430254276551353464002504825402892646339540673428611521976023618729966031334448914417912141971752016690336782322968464216180288800046633890996398028384870291570655821190852690266128557430699717896196878374294107566880259588057163591545651125406038442491316010964423655128904933276264100562299839675590447729406896493826757936462973001057633908669406648011622958038025587380896871283351127692644235705924523006203514042171437142240296851975685960351693493338541743873124451984386190028401505443727688411188633101118292695446065480481311822733270914403066641395242350362981515830432732532806231416955281034719889748148513116545566639318360675463943418466959966129558702984843954425392944432168025194007682384937519866119030676136422871976465470457434215197717976210934971812968323870028171060151428129292750148580651341530697437452195253600164052613560383971025432385486331881156438022015467825553216260128313143097410609831261499191093896130306274966503641923716304532719009635590794046115867880092952836388572176693464094089904365512399346590590643422838484194750558093750958694567067034678618885957614352588161468950624038868812069217734425704651958014345868291496466382911157100722856192983812080984657248449924126331406829410742326995540356355956109785391255138684655136045272944039497870231429667726403041315923820464061414168917413125060415183538702773494923759163467453666290403728946412977753412900282055463951206532734578587741661499400430777587724070568154294694699529197690063883973159264683944746614120691199004484813525577448908564277158845381632288932394015469803838361869345342719677642606822648344819929246001502631133093993695913089131872114960595884789018917611378144096474718959859751301226189252766281890651657560790082712366741454877410412270744660235400483233624343526652678013156572920951582316891376147083703067662760848304890054564319965951759258176223361139800080549199335238676627023916006311945016115833663328255049935616352023464712577144620877655202879500241821255333560562402703842271068991852288883935850806850693603897056464876982113861025567826168771012307727674947327821299939285280350081910555201748559279780077707751696111045588310012900024611385021631829764035357339491861792064914399522437384247792557820021835919772055286841060323754484541832455249655691101584517855527312540670784056866392111588474279097589389163913323041300592207554812590743373689129699905686444137317358942864579942938594531230396601963142117347682332340485118394274175439953601416429754721509346224597967359513236576116488656774100867516944854625262123349287276151726577167033865947138983841521851891954776741796832483572616568367951366700838467902670701278926401522236505769170170698441259847333572591579080401294977909262308364652106247771312191487096953378908732843312857980565637489005902633715315688985782970984585429253650341607482632866269581415581569522574838371693952429297490881712905966979057526790316694714938611214155320803351481830570464764509103189441563777671520620839664119124566223545706923578982169837776535013117079844178647375644070244236082467559432522790303690428760710510910884766790038029162267672890703320183754924975136398900470181479655017375199691796919780140076055626487399867145128781086274580367014241138693341398436459044041431056014793509013825218529526340802885428924441407258162810916676356403551470348405670490729537176559116860229465016796781758084433812302497310371782637150739839099529785084832593380702331402090566043446753191814750334269499227183992266196594210469043283740778682291211653578965268677448345934786561285452313822143358851438266532325034819071824201732403015820320410822647964449726522660457625715182115477263075221315006402984919005887382277522068753704738963262279818697787986695066394026624247134731400275133348588727685130119797403361532958879030054417666333220821697557576337382470964175215611036472963032256603577274433878677137713294181928070410455832173144403264139988521416543818191118063355425496804517709562512756173943496647824481525488849398546457131780930930899539911404187453158475680581029326297237004448334293981133521014873764473265607395703280064469679048716195938399877566696110100911124425017671851524859024683541150976083876996414037743505845755561500966521735852582942973857369558082515250862902459042803565362455579452024684464153806534152525136051195374866067582751619106812330932542463756306510660138887019758228689656361395076273048812044156578755503125777659649242307232471142372074265174788712859289406534480295402561309406925485124871603777968814607887556146023012245973478320452964142318090719712406759394225069700500074707270578546428946728111241051884686406125418960150225429913476151023827956182431348802574189604046506779338853788470261924423338939281307031077219568137896693402781147360719046777249157133446609302586329531991183462608300129948823109252763384952658840543639813106275830765733524896321732671818437710132374503981263607929194434786166729706994798751274535357040714063501855147169802610848047781926509172339723055548693889377803749842209050797178403927158443235836191008629791754777116996865830978188094965049649815728767285855389364897803574276835407985072874820609092342803096871670261500385945466696988263175727046368048712557780719225752642932598261621472955840441997050498108653098413425333065925171526895939183698509941621124010535758541080598423353104125670467553431256912542176322837660854783398857854219787918815637100172535925733399766899593616775572195450804729147104687647915678723769944095763043303233721007857884087264999543199129879948997586036334514230859280544857154674244619900879244618191439129698497089879269281806806143623359419052078289692555576013557735130943493723964049806464608081383664149356585047658244227410864293942747876121157540179952236591499435882956786849968057325210602836140762983570050484378549424077897131104553900280590830053700946455865309324719211413542307369956577312240933445678630124649555575435709801021084374228592105734863947815329859373451576870000543215162796548336876357615971175966278323410704423475975128981948966443917150920916708873900676875385951786087816761905805123371082039449561904451293968399771259682569546020770543530206287283366044074587514689067648124714707414839274415651332571367553866890273469821007231743298117388556782494736648122620411317363890326875328133643757006300224897388464955676809895185047820699614906568779886376603851606292940084621236623553595200468358482227922081164402874962608314104337301696013274295512347393468768312223599699707478291542232022348980967190606098337132750018549600864661375479999458959888816919606694246845567217451032407324529775305201740259369026624191140638574743288268964768629142854322273474911230954321772144234991394360182130209555845062596022084133228122876665948981440737992527965099235288020260220604266330470372512034255775433189335961151750042644355569001694206169146790560172866986446909657994957177343795534023222826767530496410760377301212916057467174992958684451989283468017758162068610954212612849018662535288393749708074947712013855927488433983845094544894096834307684104327654260279373516522501009955754664978227795201054673038659409415588228912641235509435840089823161518740035273690461848438971874522415317809945462724499919452286405982148943764354187424126139708382073284319763431118537985874815063574138733159812850141564491813751638390437278390358819014995664649941546052386413214444186937470861465785779328740109230885063839832390395478522715172608947248674187891722965146446805502751281186768274851250542321903224935401670543000105212768747989053895843996674755573533830856860355225709390897665402555597000399485887697380259005450460865823370758635458078895221635634589433507215906871739921487259675802519150611129370179945462750244727069605238624763538388259131179829502643467864149484263792813761532248455980849553282565136961902832911485184206239128781857207821885093473775126633764278530272722265576973247637292181491476406336623627104032947730195148738906779937223184034753432887145577812468582318575505295340406905540619819807249513147179217622018796875815511861272601248463565853837208784239459296854679646833862855031192442350384418057257647498657912248414928385010569346812054701912450437653883550465370911362492849837316135157634061009268213122222779363295818021429017813858530198439004972905980288698040573555099929111898073455637266339835202819182842697455092337402797132296559053407322634130630007262374499876276049957516282590835106672603834666257193657363765448890582787608410468657475583847058207927386609985514175977489744160739433684698734814056377979164470586327214277541676698439233330484798608119806919394180427927219406684507636796553893339408772465217405082041378242908058722218026111142887145984245119262898324781524717566062563490881477596580798317825257087092941299684600184688406575257847472986229379162306778727535306544010908904057754749482913964181697633005980721578179345383942138063005220982219829551229160135650432630333000467763741741386823526248115308781866218644199000693297419069937737192616770565517606016879868265950841531319467396872761111305652652620616907028404863419036791060932778327563665670669337226666165162893646467808179618508789150727281838288264755834288074101485055822471098513445571680590879076957096421177611760887094089655622290304547623678181829704317884037978759296442041637029973414870779529602551987460326838591538900708485758013183415567475400866334517005986949345986218121266932634995072246422124825610329759551455711357467948306783885888505288427873023246403224023776606335282068393964391872629685697682821050862355132651097487333333497038226469861269937558211356834206264537135169182049718258563380239814738451834479615601647183012864917788040082459685904126140241717475450140985439665604380344293325148087348786750540565086127203555029073776724817456317086072830072394955386180155718771605106267057673485014307033195468515354720341875498090480792267349399058701320987265228856611361428032756141944913063908303767781712785566455270265188183729300239879964718043185248899680687134780243146393360432398740734554944450267519450951810034230217533190855219479597715219744074496415926643877233743337997242841084990558735485323587281300601309530845964577134484317449743672614979496791782944586764394594704082568019160895516838521569485737559667499112448834261576569853573053762985272111668416385079015137436852359129774870853319964973604756372235573553505647060065958820892698043142456636207214921648692531162585351508375479145219011165542052069728017125428333002650140280966679010148343301455653033291230335472497912662196583358221128934332399723139922083058408540544366382487790094527959887809078829840267595828271894862947410576019095404198275382838461136313735656607010602584860810323533050255598485587473183697919960429621215787994454846276602821426642455976206641386695052663585592161808873158635068787405826583952943140851913590564136622471363918099615854677786002976623032122515979397945061407416839964033761907668810583091115558273268006688646452523995463579917519145346190745118089409108055751338812354972456551730720437218523145793921746625708862610815678294021900296216749723277812528689841986066148223541402234057908145601309004358164837044113854899944110459456698362270609233006350728173696951809733003480242820627914064876435658696258084384776349318048048858128098071465209214825703946637559625615180889433864884444399003542834602945698119757954410508195499765404077277122735255007071697568229225332007009489656137269272225733701594363688193164338654781137960210052993568643124347803294743899987476320392193651073141525388156815946116276155940570014342028476506974430693758228031779388089556887783169913494670922729678714329500365888783490888075435681461773494663796128395547758117729653554160552087815077602182167043104506477940917567204787078381199166394681338076737848664478525362324984626191357477380924827158599588866390502969404513770514822119463723220285405419048624855639225258967147968112713819730030196087800835236578027960300305630513909190631599127039697256561513850860207416817842915687774744687425610525212327557771452685149366025262949055855856024774445623396664403953213498189849976078148063017756917716008376328891696697089474960164001258104551545815442796622052126958331251003416714062431557432987828313265581325078508602178020855928475465811462629452036802517449863030155450056393447314173079484242160447600196162990032359563036169537072088742647619363515340308271058087768259627269570402379640841124178403569095681003410335156682209079897476963659035193500079890708457637973590477522497683866919182687340141546345928657370084428914124045168496188385801789691824277886112990812607530234464668416373371185591038767830515416903106384851332321050966356704562936777738605636385731112045646395427593441757175650549426318520396586763065471280493443578536637284367632078223563068801869647733973250489799929108708262916106765376414262223827570423145350706472850078985352223702467410906113342097167465947734156901976105481837991013718129358339938957630716694370187494224568363301797502367251342504599134681107571144959755240151307926345528378219948449688489694764405355290676619920545904829677086708695852342294015790361086556757792504479123662439845348940541255315278863425034008801940640771730276820498522734800171149200942223234130313924266310868197475600156265501359877426478396496937258753560371402552241768544519888486737219567286061266130684125408006490011377000587790236283038831630311343762707577940349271318741708688682592542011633311681148348718808142392415344322759128557294405191160684065786108359477145952300875826225405418041307102314652903750263000986174897998812317738333850115759002521130417129095669266445174324202472039540782259978548549621733252632228028603540192667890261290753471974187540678376651838084591290254008261489057624415819769700919656544823200920180328737773829719059692588348847136149934645126156837099990869282028381915768830393516599693307176576520690932702252919191285835593591081588328557440123275728788692573121358352390386060943263925947816394365672486569338150140449608463543698502649492495887325034743637197633293151525702669284867467156413057135149242276213633697831245720270097404650031832129364528927777013364929174170724316245001277869108786090308210612544355248905026080775091106145077444739256641804408206846994319111330434451227552137608579384080494785624848819529785975911636859249783200342400860381167085055363111706076590317215841375021043856153700152480170553872846827974995474665638369664888383356218300055156354191118489356451316000702210240375968769851214100254708924611557399472676608647466206249732977446921732830867732917911963437209279172126614760693206280196312445024345987136082785817598946669695832482431758038912993814169063640205543418841423976716083273641943514547978077640254138196786766002961197454738962999576073227178738345214942740654960693674142426000534732906658641496717163982120705272791906164206034691288980757355176634747222632494357183157067119331820423933442755396521921382379749496286765944632670023263448096615300912706007867556508109069947699659278146963181887967881944596278459433198676653771105725231600223487825784688890692706010864362526756341496222895255541639946900379958956166212057370665982435299096202036250390793359701264610648254575230371256457897514067499912428475191710253985807093932160501602424406363886129733254971118226937445699281456715196393466729589452651187146805762660347470395231396117117860553229016073201679794963783385270537746489566766838987996197078013948273824953044735105754737594078470877918884329338197604555573476087504798382352936022066496275872414022537976143978556153929343620554784208327505925256448595856811684145825298637884494765728291099648163258251349224519069763593255866174162831008460895052172818088078328561829847582654727843470736550907075584312100650553718583585800495911810509987968069013462834694400890326101756290303035108716786079112953800358012315425454781200829741955514698391136073588900057835926494434682374243846177937362406029865946988051700419278337386948174114130936262219300396772136695751791821914725439115463819454648998057105241660011301286120644304091059472811669816741324282011049934445833945488637796265649782419998456345650076467950965448782844351562706546289984940115435773403199561138105665874088273898964443051039027962992161335702111358723986416031481662466088398119510523416944201410596076815393021991210818134028523611017798354406086676037207400947989031357084600456121648313567837874725163996510735542158995761647985828267369641948139470894726829396768691158630626341850534377004033388336694098136427638443502164866471717431586798851862836025047579181847505518810951364296592244547243125207016879103876392668578479863744142765328346983212645111222063937666043907785107403716490530424357469553177809977938351961446061132464942081997154602851340798511846327782913589453587440964131739740589083817774158038774904766321190892035636999301198126079419182173445117499420367635125100931977568772834839177261756713424600690534097633433217627571601994326145014500019372426806520398990760058864788568595802062388341058908558724649537276453503406386764290444341296030005054839914435026600789535191214109943768853706097611173273693899904977188769241926503928229674190038857149615551755179204306079619306016979017425332317105702995546832684499881006810163310042555889644309370509687419474439597111844527505084485927534485883973979794493521066255842275352198479396599034914967994780994184043600291716274504497022861626598452253077593573781194580334344971168261413095598466741562305575361487046526282077591760803875581232169370945520700815198473402963528615371690078547518250817709289990499194799729711629160190784673518154926860073516760610090611369712259709715945982937559245767654986158247198982916122016208956182885683222615623395647454596521034641919885408795918247681473613522755880138348102818462388500898447527160525206193023063538488132829530221541177895249021579480001233665294795098947591835853411697369429225340495506186892205860330770599963969254769349212088594495192181105883716225926913455354687033583010696680993186244464257190752860931749968042738291682285140990797858396561198408364634639181577150799988720850549760246984249963336299914529268002876045861037187392749836865437656065951481894007141612957477311120845191903894667291793617942233498909194394701917094545832242842539417910055693283076426467494269106961200365334531939760620960872604723722153375881274260460129873707717269358175655609698993812392441812901234976847748854644787272269954225235276260299598746827030515212204365637190110807672742576301490677520145583720375716819761475771608220090050557816798142831804094058474187564803058960410856522723452117955541677033933861144545171256441898571172046170732611345935325128170557078731749325271004650827537118179517443665395889791796313417429982729274120944501596848092954170329319487700041003133949810443972593466753741613803021787293780625421588985858114817295329523489919706621284952950295533556308401782620861022419703527824903805338991865821776409911475281391591773137578659529379403845922375795434385093181424117157869485205844695167978991867619328869758551429615343567076606778301529320759008966600062332244796658858759708124438783738912607570748543844355581245741551720673140268371317675750053313619563674544561361372791371652044754585229303695949073935486713661981260216949042800153048331814041749276368949531432032457976500170064897322353856234539733431779839742023581465627403001415370276069837788313172823819985385385057883770123640080060429208579996829007543593407941759657111299894084650872962289450762159920583579607304531385032082174673767182625334075312280538966064981664047125134045329199399816512509514106267507633086991014714720993041171302158335685822854153089625819404189685406655939004385358235868131119043216358852188077769239393611853551579779950831700252288940706577949508838847488114307666958619144349481435687468961913660569096070790728571970464446292111167059147067272307062025819782993108518071976393347138318563871575198808387172454607026824639104795487739119192647260890672684020851429820918730977579926591312944211396820844384553877360282115266868037877472399917529717932024904966541282718866063869329019527398757985499674613203787572017962894882746775584551702719368949699025816787720187431295716754645424121107103836539664783953507173372417287194820107180910569797553239696126949439254915283454749776563151435073729696925116656476314093670559861174341135316726072684452003416166619948219298590587032763197058844683771392327605823248151657422085008474907175626877481344440816763322366110375859972690654536721705459714173332538430610806160340180782539782439768432378423376849001374246059410313832595413832674429300626281465420192168479726623979651889611625955626657448296301504532831864036496364104093823397627705022701255376192694223483373683117407565832687086857994228733658645400073418009683653227101553392479425557160878874280969469839247375643331341855107414043823707683806434571501136505184762427267621973192059646505105013468134642232800706245036431044181505996625542645162453962103184553500869124975209973873445736210470374039378197476235276160173144022132907020165320773387462957721794161236468069109673734795210122099504986509164672566038612054881043435375227721118476712854258888846464421558449165781444968601081298588500560487763196259471821495132541636649544247463906011378322505789024361434109717367284479035295963314300368056093516636999389385852334510575189734170937018098165111356374202327098441804563404888961817208582766077022938385759698012466712672127776556716822780243884240665016946346825204573206170539535960707098100824634829234782321528159230204268743508525451364429493972223800047197304215235022377355551919557217487779093642007158266152780707481124723041318287968888820584841826877400247502103262931170026962876106976178891515641030996997583658646098154391654043864589846591916459035335150851052327778378335723219253834977688806216708459259439650801676628002703350013992140489625096381221976178074143614987665416518464342608380961136949636265585303912331247072440244300779878926899160738058336933124594403155203858842104113373391402316977390991526040691633845917416161052268775292207545372842191012269051189699315538878709099404571901466891852803995096442910930642386197376492854120041343020021448339438357679073489431978924337251672643601816763107721012691474747778556892504580629757923993514439288826592542507293853506603129283567193734940450501721030425405046185573004571958188736631828298030419334969700000772068326916210465984964722285929440922142014166484877338373147173152256270654797518405628555135855675816952997132732877284188288083100132818727788197537955209943095354315554828358963617732378882094925924279488601554136199298243279594233502660718078444124917355596380671661136119806227399685190183339295550516841897641520105375276244802309222250579072832609439729699470876058794295496155282862189331511983555853722816634304828784896122315563059364504460434923729905226467927533978490497300442944463069633875859429241411243650235303119592639075479422132821315714566993341189209749529069491672774654672330185580006150979185881804678696094781290091451753747592099755510980706794042033460392652071806908811656661722751104840784826906833967841291199764299668465962570735461924581043250753043647301870028897908871803996363681609084778386886686716934345883219252499276767700061561386425976692887221321913761360339209382504095947571754392636395252208899901386431775000243005323189489199585902406870829302854994823009203790834645588730774924076205170393270162692804945004867733028660844676150102834682866704574810878105248677567323443647334176955871683406693788311492777372218751635406309691071531186834767554714988429639840636905493879767054252176765966134199811179111601198123303490554568551661825267867351764340449323348711031887225483619111220294616538221764891725165289700515771095640225095025130966009067408587030978379899897890579664455708870023829846617288354954311183446546342272558859867051633951526840963554313215926664100809375998636305107508026074855277337292592471511154023152294657057837201770690755936597007091465035185133352547652052240746295639087828966115657307533298405014283577605411311179009489522885625453657535403488228104133668110317707067998439230069998145894172135441196270182705003587174961579930466254128214243815828786153425351603502272214140476391330712395803826166460679101072426547050602057186971641655955264928093743843252992690422612845246756474561109949262159714584656900814089805302572294850552766879641437782588538581827447444989558321711516209482046681840055465408823669700820438343397676616174888959138669531674741393966515480415634478154511858634501398855816397515400837053626851940961985352174376281936387602460923616524853552981267025363433075568308397873328994873637727636609986113720571350102233118552985921076325129918966786844430427735269775930109281795917505751626512141773834863144897925012795743708725745879997831505535159956059355700935134150062800608683134626213850098563579351037852390887454185270916168201457684814639451359757180641253759749106598806343971499719041091084094097546004029815687428527728757696726755715994863191372596222008615192359867675013783351673337808643371749069465579093601852701906477471664644468967063220734531839302844167425330878807277534050413686040711282758345524927199325050177856981707145222973654237589228914899927351586622743117323978672858799730006011193484743602541234154679098338208136278007627120880302045390017859445348855786452108754816958525321757431528137732794281430201587772749194837445474288734038434565693180318042840029063243692549625677482197110679881067860954546844225914518054711775186925917985863840878250107205178879411454820443758121456587050800045812694224373590382036130531346033540316000100856389894997465558800116448308520017952286936780451472062437168782386874900002223637091857717073401898466542142257001637116793136493390133525193719158113754819209156474701268254220968080394046341148932287408974205509366887333910050348145006421517805116845912075608877691226547379652586053287864387749334314533103734915667627930169338515890679035073766598061969172620528403809744845716537564718151276004505638856134466554948396119749582060244185580922627064785144578713758388666030956629090946856045453023804503481821163065814094860943916413466408313392224337898270145982367270922338301728802295774104960032654618479414279998957064076111944400432110382212029607789049447021399205280593811744737566713226600652420275647391186873411129353069381237937988182241105222880617763909151996879196004648592954553184021375866616048353781427354083778936673943169637628893121221480376763341593449849742141198284245226363135810223944022749957999622946602583561216691931060817886791396263003404225160814697291982419551322473470577162256217632887054372720225261714842879532083391815826854545234925877333034162569756688007016509413839246016903447471071341375135000427133050383237084580344705169573909538987989620610533804633082455249152874673197013973749132254049109163786205912236134252826841061150419720410685038885177497384624412074983056995355198928175334609258204463547154377016051371914871526387608009211951644453445864925657908412967935865220055292059762671749742692824700428992195628362226425113742280451556210839797543106945971457510031570592955073411685515075985215397553762242888087032390300218163023638508285312511399216303163866500596711686190108992398229168764179868847384269732710135225752149512339766355695811985751832936551121703637373234523840705474972458478853481841675775287261451811994999947221311900116986417061418694541424237184966475689172031563498162780543539955324436667418864681408283086278798386077051776762144874562180407605854338558511887785253296991444608121754988172667568548848106560588838105405911417511244775657545325720136947008179406962168452147478725305371953424860699177186401140548517204372283786103724571861130955903653796834917466426650508961790272878226909082451599200507464293731505226148918024975280772898864373917374236834551362507739235149880051021226269462233671707983954903664005122133780202214528634350321121917271939173477992005604036463948984129273569701711850829860196103936123061373166819813069135333759747374697621642527842397603697777262802871218839375853866133445132089522605543077307596766766310099723850204382781262918078170931790272559518108053700344449218700858928185890342636020390350536744091298801283625555521983811680229447594566340201166468862608029462383291013334810731386020328987496106876742518865454802174363005831228725036244384787736631830701329617567290414704960516860738907738383133724107003207344254362534302928172493941178853299769913198411302597893163788022720973492173038871632299114026996723499531241153243989019315106324901830471604732108191970851214414999692477985184415116233697540335889239280775380275262308463977140490621544453087596214906539357799623527694880618006599551974158471922014337268807178838131045184831667592710331418416730297777961035956700654651307301220218746526282382183199611725366041211520908682779779197426066638645758980838493169495581535112295019573271328529760280061463856038058751280672734896722960289541752820087978328509627933230645972801069128710941089775693979561789020906493719828830359252004468351316135488590755150950813581917381443278220707558249887222951254964679468714720878271110290816858668220460033529969212186832579805655113963302887286090426468297382420999783323133642999735681279498304658721464766408584285143646985337799830979446584865112547059348976853044519786075596686747515190088059182429406182428668413496575189274715529247022322720047355378067964658881891646212756861962541208091124455648344371172126585425401151917929047505546504586657963502115877158621026113583542853353992962322764378061950348238388258248682191471845570878326596895048370799899180735485950264780676408802547598715338702310731538273448385506102258937634046481985921801232803978793736896383679784462950572594836384895684984723037598368195810835339242986044136901634838216581253058333095922072916482870919214028531296256044774697054499264361354044882660134911700708379308592782019120332784587416586871401536118026646679230240307137609438668186854109772557960724036784910135160737536863158845294202491404558075397999394411549230331492117779902596330399495397342371681862673589060621810014361148529407301632388215795511298634982000579015460363362195435070249693894179533350906733302523502623014059143098680313209343355121295915171243311784665730603481518423437275001953306696183613172891056826222033825195615455712838594269977440817040994404484522088649877221099699078101918376996899302963332885290901762793509165919907503117074864154077625749380888286457582901140448448128023304121302769931274156816709603940854592557654051995844668075382498502280680471003028809908047668096086678204889732441523216014816948795533093206403112399165954018489980169559022386144732462040090481618058117128436816903029971966431498368330505282902136989098585101423791377958223787128100965480075089836640401739798147412164619189763807027249942745763034709314820239247718237910454393573892611264975022836734612400007525507540832201240630978830403915617448645998721236844405187939564664627807419343343558848157757228771846764798866618342532997681341671245138818183245109869658793686841502111728094435773685852016775390102359343511306998372667993486278137793811268928915369094190152570945964448895015904659182557541189925267065787808602464310096636609762854750442731978458083236979943756047225404935024133510359520047423817817912166463868475863488586988894329636908905045865046480497123337948068728934865508534392491409543020286005147818035999575554750650542246742037799869596642401388845665647703156603945623440219627248748337844372103014813887355170242096278584919175451261133047743503889235079580824994288906642405081876914749515400138183577255572684605806100062439097423750163223601535498576815263259234974296282012046051058817641438106658500674607737588910460594472994648907773987772202517303880739675751184109593354007137764775014409277490091979211015670369414606569950174565035718366380394726379946481464734479559215202852555408940783231671560405807967779577532883987403600613412981403085289569478986890645031662422468473818431182068892100176359996056848569245633526508174075305236500778906063965070068357476936718545062605165868963041171211342870372935781779778111078850217550864227771448137808462192699155819840913043775095360477243250776582359925313866210062446130305003613613360311520695431704512792488851294800490632667474803810258775383642099400530639444930845135393507374360605975694681296768404453092764057902788142062887521195173466311309539907589063574710195773301750610345444752406586319457658240321904866676885889502932000034213406690159356963060939542818523597953565964476673749462486468649655212479737434320790704769480815426207290555008683715612475032088683820360143944917790556317661396567719432404213055248235568664687357952763598008343821555020276379164258957024424611666315558624590892982537679277654777116537047045951719856595344825357531421403485195571672610732926206277842636462688614947285428509037089981506398250798067570837435644452587077610676435806056747187589347665887057102845362390391992940139441862232779002957210570100413363324399815001309753788881901059785607514009690028710229683147245221641022399106075132576368346671760663751839657991526439271043088146407966028795974399696154076018377680988245011325323274429947332644546304985246809173112898446431914725881647571458842325763767289008993121163270719229343083632336968217765454381907056371895067477512583764251405498164758001375110702485653532851018336113525863151717020713743494260137214327522489041721403984252245032065227147414671334662337247164120287144141872129805395510021938628239700417633682708412324713490143381015325420113371528728531104567605601836484845082438401383765327777561919944897686765925710387681968275404200368210815140475052532844843346227013130911108359857765827157995784985618860016391115123839639803886187425978221796265342881819745572513104007799240281376293226331356985488226944740639413820699193995941885569744921179515029749350668260192061521950396889758206670093203850615477177115670503143868320235548462139756036329870178550791556295345543741578332848301753328088290770110901423478540580093473508254956238035883140370257886972405872657727346606079392113941369517726652309109044978237944245143292191640304627797187142942781078083141323153313875755654555953379413282056631521961760171964712799967159310022922107155597978498008279984835707102515598354568926118018934649541473763047138136442744184064930480496603199413302081267884911243992566657492945326562912836153668304569326026106128299111805354931449605538799418196436036986929568937024874057821429113093552245618801983239309501589299854166824070162490499260968561341892710248657157871665222997590101565426411128488858156608250150634745831660799961704380260870844629873476309300445101700705723972229144139910957082123073066332906749092489025562490520008130009135260324556527541326159072278402397234029092899750271301488565977341429204887182844203927576073397032323888903462662953336715270234406318332844052080703743471888554047743562651800026546684602822771526543462072304992947794789505901505791719222976090294515655784320012362615638141069064813602889382019565739588405601292364210260697250212568543169366512044598285748151763497947506938251771994573497168078066509631614388614419490950893852992820460583359076188786909436261885247780191289760115786569750869331828480772714904425925913046725059968367573194056475980569965050120332327107458068714502940264296381933984427614398029478891091188321227891108709888390922311810037513383204164628810263721193754890620721477994694738791148710853840737349041339312376487297921062770536855950190290431049287274733036139159779382264450203979650744950970061335332306585134187251333573799403101425542383198075825137093095132129997483188309560035693102775243073500701204455618346284782998598112569802758494116544104308623758796608301131578753910329791288344104848739262548066005983873337710503472241161675755026221193439555058369855817706303411349448586786064649818863586924145982336449868491388711797773314140618350477685351755155159234259387496078235986260456198747951319068714416081610788229452463480177101372229912442297307392121726910742281984190792941260414862046323587455339647836939470317150672013971567772101931653876382035368107669666303834275776800386337054086706911787508237718777845168820045423251568162643066775601906777957231611137549194859099799037334074630907188889621455347532486312091505937864359858239502182560298673910767351122616494966704138236538967789762432723288302357314054782876801161799277081390284895925703567909434983833767901822780088989708158021081886172089740481289636817051901027521823523431759403265929858351116746539691872058568456540727602688858183968306741277397602686509450735778520190336344035473874807086881201367236227698039567627595613635394297672978106758471096883048310432402851621297504397065930247869995520170604298311558433768492451392078239708042161081244651942685459766945968628310284030633756257179320110806359453523828467586231824193046794546209920641735101938545359745250164075361009081880908939201673936106193745743290592497621404085315879778986079975851605227798246520345347942998465329096940881430024976655487557947381026248156221653043427644573538999900429646022077394255148810657787867568802101861635237222839111862469771094387813484476625875907146231726059471630025827181825706456050699196150460233556404920337582534246451662671017816491642378393329980808840779175661012798657550598339589945869385365963222664198279755640593196679267396288944602045073297291656450295650485153771637206962503497302423782919712673475692797933102089335216626913687532194119121107419404159292112350548070057122416948964181443326013101144726811532669897694305907119002633510745231974022572986360656101693846294701644383017230321990394460993317877498821494694449042361435460516094740598161418638692156299806821906133774879636619892956708807722883495702883801920407364738566174966055796986199661467866291050562784346427702177277077455332247965322117956541236091337624871677926763436048966211284595878880807627236698715268875278404956413888499091465128850706561693166652515110573382272222669170004114583000109294559706129754154829212372691305217441682816833779750419068760300866187816524122924046801795509244488620661094787599343255146579871717824287264467368738363098585129536067941997317976721289194093154780807085878449721201247311232098101122967985912678287957459599705427208776796012225985734766650208474254663500888555636201761154297854162282231803120456662419411163496108808777896694954384678587390442431661448256151541870202490167293357054672479728542474332423045250110440559338303024965158124359301382543840452407588717662216152949214593281771640735542421843783415594422187892612168708876646192227291761897309937354807289550633061534855980614873532924394759977403110779491008320871252964022024682579168282412901338454365681656641155527595458524210279769810771932305851397977644813565110991742331759557959106819251494383256964101943995161085182037587142834381076503050370231471890393950523480595439535131080560048406295046675458513266299000718316707951019933074797583496194074512190220610605325956322480240948870126550740592705580085217275197567086674368618227096429043653865210722427008313269099347780555794329918528104470731025262475097789031255151158183881459350645219452253813872691025754585711711483080373704502113436006662991443137904433913160262912276651848515687578802806108627900057244722499133097356252187326031914540620434717975202409557817831031309808028885429514955992075985510969750537778164619837359159909687448828436973531664260508950281875797996403994202713175365128934638666903646654467337499498529997187371003462056870918855816134908501798871298714073794291927481599237872979795089945192881688639821953752808897125708416728571298460039753487370318834774713678794101586453235434397503319029752279561499313540744467137705872590401911141857744473613030943459803570084907533040875007916347101232765087927959425642883252923713819879702060385230353497586979780870945633972511471263745048908621273812189395560908201312041179766989073789842357880315112827904658409478867572228505353000204995642133069986431487356603866016155830200822259736778793313067560105048402015602437268207437097507173246471041230233318792469583980613062769477607942187005691813930752870053004440523414005262221212524842413276974830026195976612075481861213072469888949291544190244004777512597847887841581788897436330734852157769065976795301222518944112959326995548188316219528568595219765661058864956620568179180617267647782795237275653250882921168834808069728098883350003358091000558251660122148649205815766856622393706072594111959371108423891365033476708112933186256694735312766856110521730437454830488542796878510810903584084564190199559783318780931431502929667670798275591344452424408472507217356542256783492216528572924784595576425185278140291787751024833326689757045204450252399869897265835127427560851157727934135279529971564959203576085092660841120943222344060838950704545288964261558268097972879659017660552603826687219133662146838009365980485848894896535361225043115956447631951146273121032254891168255689963826114666714504277745361275485562245566435862121782733750336205854537264047140206008933430581477917195878168061703812579021491730923083553292547357620805410096907523898069801634770272388775384021552820012172741786251099679789783464668064366771964100509134234255159890531507007971709708422494685980585009783390546361559034534081675719332823343171642200444984837176774650290765891557940143974538250977364693481762168775676423815081635730019791893955793744386969101771278352492226948914411267821139603581058502708790669763033999861977729692447910030199851645063269863863254066591611403574179746450458455932799927614823723739207532821517855838023577149775512856651369095779102380311418141998839282944576750691480924087154841606912033885717950798842087493533971814248617500508847557868447112165769831569469082827480894885940816035946417244157576141416130525333940101444114243292031587129605814828105794102645406523038095582961426187773423263536101284510007994353349710531235436992186494617468661890608232623066838091840315204840321380942974355579486383035083235195370282201810701718762518369848287280938339597968541707914124895229312343852528271526818449323249113729955902880558497514944071830174014462130159782738946648282803140577500638066481310538788682089568281272957506953774496808225523425806537171387704386587828403799661938561079611291221876296559097641220395270016858897033680164817778357914478436385618304076728203437186249890961612783244410081529300991572150261491950352139448115009512365829556531621299082359155540517121727413410104880580133562036479819275264811036649038233606410948521517055414636960125508369892660847582077867227237497816011610492038926079555124764643592029308252156149473529309754713171649476593210734398673720088596304235601913855825879015574081526819751677605944235331105491716358086162988040122605023177479801770063604354644264682635142198190441631442403118257186248317154213696729728702223402462074878181987758754353002618622455205960681139501146067002585102171249087106997996269877707056127819084888519415193285778680132909073567046059738930397818075730835507067495985855932336683670969090838437895718273190941692652392031823018158991933096793809934433004968398037873161394967268022361523971991358677675589675673342541033537703610946161548200154278870426313427041331548373864660256165718202017685676004694773191493160320315196330318542641783927486802959215887362229133590847710257398891919578764672623409620069749446178616815326590985830387957938997702918739993916581269603812248047663754269323163865726337752340112239544028959350769414014498281755363831480203906994974922174479364514210466446337795201061452284769326729390594301153406344178808271314492862329791961423629913177024883244048401433894550961816805578918452501433639485479242993963856236623848796364477783371798753166333119105245323709268288076217730289154618331436503648168524565229146025736149119020527025221796761914229496091330038437236357454081337357162495954128543168708911008357144887787890158949559622204753003915310112461343296777654328705329218862962315258670635627180448041733027516913516774377584608583159577546440974845831518833385113820704229062582284412059076559149683878555115747599744675703789055183072673022832348821162398929195737289986225619360084592529917670130162333918044393464707832837184659449724886115240744107599311282069531224875051455611354850209724320392000816453497928702730583297823542556957225804857198337363832895351282402228678106683331153322127853942260077070196207154277831575111080011626692291124163923593097466222245834006247626931748016349836166336678347205505425655086361344382237585365663556242790204032949671833878038651374891683282098534919484217605337373708539779790841174678557252686095834816508931608712534229136016411113167932171217225034133867909080338570936321965014094786907979279687791893053894934568372029173953261733342577316287477159292729240841913505891383058040673710111015135375629317901486242242083613671347019009119974230699309461416140697360418212091187087560003993328840529765242811341533608189621336743647860727524078310187354321761343255622299846133571251569893648466816542867836317650154659835630621169320039967389220093831715749641404000602059998591715318158334998600961927761432634745152116116062531759059691176784196643963933922016662433757188047205651570129399679369168282706842707278386257811687020600000314686770072282975028121172784933557413981120597163278964661489551342280282084604743260592180154313552848298211107055270639060071846488501834377529410087929911607615887782467107227257605796916009647353487727625591317520376068458358385078127325678411439407730616568925948825784095095889116416488481466103837684537828221046373977133661169739826076207126469216853918841001280380535915528314153157723476784135093504204179161984119368503515805482954871968594300408575828681726754328823651771856924680049965365013230886124002453570036916519012978933697543030254488579278947199964555903539987419325691045717183664173289898342499898313889233356707802360485009555675152983903502128438649029384236459633734124451891568986233881968404436383209998259803046829851330658331220827024116614434081507353828520281555276861169716111069598871639036862335504349864225049096431315896838532193438456317886339501705409760778324921362284054154949034996403232057125906630249827634423124396700416552181890667363743818335519566643729159811492993244326047941712395793020901340743491698793033753453329874063171694297345310540204568166463337220281910147178980689674154543860743392596199059180777146502784800223395308326209654114393185548329951334738430634373343100123744263972518185814489292790039422240382142518750662068101821237053238062905053601155875592590725922199686784859937794128229464795242582634187915625394802457607274796922761465939299050612798552305361269812195863688863023238531473924348604342744336616298939197149171349229799387483079766689494475777837244231033935179164807591220655919364054113554192622425139227211423687815271805675825937294039358557747409950753131186159843182270910374667905124417000425394758856073303579940325616172445937253945067021145822715517006344440471007872062982129499358030807984088760836559012195143379186645396903740577994427848873418827549436351301737289448987140675069124014721455755048096949675896031709848629145946401258141344174221108393908059041668695231769421601475339057143039730620278500964637331891654811571262500386932262965440414824767344799950528058549035388681238418996664465140852963356271087183247295763060390987335803313003675214365735680848322044620096983636977548162200227574511197521665713647455784103821986181111990843730911577613449076651421047160188436892079927000342244411170085769491673597985863721540225419100894965382815826345881597180871723712884610730040587674625044814982220283696433529094702532736020691314037726107394126105511295472417566981695581649934219028504175434464034389774216306362575532618800982889114654781891559650850821465986390021579793272177823522633433100085842756591781684323469860614928769345816550742536671154587958783057280897455756609512608444382474296375152507511575432548393571572144711026959148671335184389195037149092662127057465519236085910768969856362294237392783151639689494467495462752623424617592389807833079668259878347538845908113745280128555832869007887847202599924029721522388052995953585180544517506714878523179560745322242840552942827100964679340670505965106426001540600517710574656360132491329697888520590153567458814894846123041698172692301204332949936155459426038371939875966073877656902917752932237007568381878209445972297446047273180167492506730321448760215152544502864550562031748546064051222800476480719676172551159307469248414426986866737675711358804108183435400434188886683005545407530175080162344166601824259017449549758493246729917011687317083190332075439897048918815635502523865646338343216703107811249175257715684032202898252298038845039345374776424398530560682939440621190675709002621941993970992770845277008762148023246691227694286663129282321189321039771633360476723722272120854844543565441543476116004185915355636124491311787331882071940671746843836719902732731066278665403091025484076553721140368390590245962229500453180501734294817655241103167887144175391892927176797439982140855257903584165150926504775223000870550572981432636481333279517223596288942329780907191947939175863194636442204005955667442855824640185823213795106100147976856917936142469764583551640235717404175285405943912800787830919773854168550749945619588086273044636320355801378872434527635168018488636266716415941943478239304376911221065512031433950835073551087265561983935092948481355134002006278987066478317911311528925686907698020048446999764816488310103197015655886510312598051834530653977846970788160434608421553973969161537107145494840338569355216024944417564705807079879611564053526539432314490013818594637984035491613215184485648801805129407065722713067099934777535749165060324100639169593809953280554538781403151049333866886625132197988477078433607052531954959013416507051532001839867636212386753503093677750963988681278890301578395580965581171058909054236766806664652679673092638788290481857887579985800453760872450009895024637932500677120148850557654003695785830991541740756889834643598808628611224979036100030717338702178114295613628553221117589256254964423168836658853773953310257244767804924882742943200057948134963372701691556092956407695942497202105577860063011504314756871546050550714188600685167151702820213567646692486727824107477859162728459795256216062230059872294769193047065042346379584053521556840220550489480151323401813999712117687102878900256376351022237158643308514632889482335933756763853149916088010929503041228114573323465977850450470163832809720511765346891692392308742682475699776314405775455978974985887575267855075399520971427389325510785772145561317522918507933879141409018270568270934011560111123682132810381171411010834328179342862051753502629799076453238757627708731042285571077509465971319436812060339694386609411787999355751213845381703040245515044214912246868085165033368198746568960739894304176401166261617783288429642790417209491368929212759471655617507015736627345666231401434477223674776514349817341884570278684614815080490415411869298943559999359285116089555380995356460924637917500960455285224218208417360550272560999511204498490865508191060409758670880002267482857074145642305171128125829620602635746731697392450705944422431029693053559205926601704813007547333703082802811732250299786278819723048645389784852677039550230232661855790669735229767655757879611574368820024633693402955586250804320455251595273800558080308429500238313564046763384206747132192351899420085925991925733851389630686547199533735770682058271788641600433269687026502939100270821113448376206693634410709876572844675083823937989036381693734037749404159760036365756262001582367051993004882403157682393822312987790330987279757531256084551003553073878563620339880356269304669703415338719354515462093880531298697801063543829501251749195161215538391328385718920681008899203561070993181987823400305433554987128872556998723295876266260951113495460419528045197328896416181427391873633572260621351760290328073454905912236089084101526056287284803757523085352518710563372687149575339496963404433214600180490437252395665358974508349838654248658828673444453238070697165967506667840084095778300356938380496234521009033461395894098233010097832291083079158192013758330745224519631603892851652933988294644116603799471179318228882219832839157935635498824942312311978546381116897617404711489234648710411804503202946129879451974573908001615291890824298104962567929489866787782978304256199328343053963326368361010303183583304715901486294678859993395841606676869481216818741224212295027472407835961937644514036343862992875670907830392691156889301217005101997117668705389364838611626370035838651217279101349065177650949088099324903674862857431493691955393365691790366353142216221601152706459176714819001862889489071549894347627931933181636038200670051913524464166075409320860734555703465153591083755805015654825020364009873872829438366289493877571163551571255032275192243949394437405739833157456522458988891775711485805806790402172323730518547890508373016299909699457763015678087286991717926464564142280529568644633580140837610356515230584456065275240221758557230339403400306693227293931474338762523363982872566739226768326957391633749311983102500886068250445799169973389350921069379849267397421920248040351273771111636136927488378267811185591379242477345233001160953963106997689727268919965151974525479256903097697740974762457279047812917944738922654391209631359025348081985403034209812746245620239811644735144574371937610313125274701724022585917479120757820334906982555591394580955386785980062137483520995284497893499120378562445333477913741222161228951416589108353109284593197766645780821500350327205315614011702162128487100110308974052705867725854108789728600399732343498434644030780434800982021560536177080875248081104322106206914863698022281473901088067285407692485235458483756642481116511652053658223622169409623049224934995204268647885490315750143937097958509042233965090501619356964180950333952317833839025358835034198788428145776823871738211249963199812486780485401771298777378016564230318751049560475715827641749630484940353120606187904422739474340647368828698174187841384423265970654673382014939555858867043785081053724217243157358543195650999612600185597644036440959115256759723132002798764019925638713555567137452447782309121146369023002996486801833512466539464611214766773026459599384279990082310363130938248104459896037880851680748660560178529799471289693632620577593790355087639612630053323137206143741100939095897200717491929434903831637278041804056895138325634427209348408296203416532294307561870006485034753262154065657716689409621620559964741715128542652542249977290443325175918933690738583749095329814655060340699763025808413384007356190011296312694071184902423686091849497895686677426377045639483918358919596008981518400106292828812147366644991573665299024489044113103973309668981062888863153599210553060264924908312936509647709219790567467380957775246257548412597004077042635894799481989931128795739253399110834907820468841801538482068319886817550268837552692446948909617597432843452343582641338262787819334933929452143380749616125073462265792835391748671012523244122465959681454483207285914776781230809851659540380888753509283448489959249821178802809129178985242884675755254331901075083097851492971655434671574591633095015416304185941636235762346205401437603531005017818657004552720551478281959346516693226052535987180499217318890491316570975666434555360764229549813697528286330502937524289009013343953680957080193953740326576250665139217464398702167857543477047832339047175481744743798138028035412986770691791087227779679580781921909674356717578440044141716389407680958658612145191782799960537756709383960116310470965113513636011127353251377933918332146813237463734595283059194128028766969171113209025894530016884884646826602359953410746234172180662276737710444785163834096395658137025695642559815807034863409484289011116845271277377863686460442196684930139079336687215108051330066767371796187362505984171198992277943278677433408399842455732399567710410723983339799649538355438747926639931944751930160430421344064207909954305282575139569934417001067281037944339497225668578195427498490421324861338197421689098489539329378056597912499024554553332656855190622826710524293276599016819140120470606258295403828213884977037565459728325495812765852438501845722769754867888656911772883625273926919376999582107593904074859007852020221784793390770466534500172499320303587793429812062942968197218190993735783610532975500365860457045473820631415977954560849212527340810764818448048260236007144546833242613315243157001278498866348687923388463902726920654150179783140023738071120444264949057676128911601139144320290814071263146826713950910423414336202953642895945486951675875669585987502515053777084706367617572892343086102425406374077483630748488305539924658686359735953778179581761428118767813722674203407516583043313445124719802769920528968903613549163088135310349814902572948265238513307533992257210554034652586863268607236556848232455095112263228965996022086153327568375172401956187294671124437329571831967121789971883890789764413797665207549239453493517053378376435373857811141665544907863720482157267349368472184546328921118401258645960750950445862923583031641263204704308939751608307849221279419421042149315795675695165019397807851627404328396302340412563390969818008536825781466015850165696209004539516281416784198467750182192512412937835963494091235353342577070012011995449903885494701164478123260124872846964736545946132325543064769812067132892187959892948755944375633588317139589213269592264426230205231126221928256469181582341973452384953327143854149782039320089424122092794654449859324689355090118716892754675828427228322774914595662279602064567281841811841090792952487361870353359564786150254064377437961309592310118481881127337814810575884732162629980822149286434926556443269352622466035291374603667900436885535451622421255732458455674872999301962006840864388055567966627892398660663171152859805271600621109469697650788435707648005835760830313662951219920457710301366066755190819775449731950336822259670512956985306452290167844885899261059774464848643747390120537495738161894174054378034784498766235213969244784363880305934052077825758463150629535897700853713450061963021625145725010409059306057178793930515367724305465251097739851708510092460193019278355865060091824420571944228577403193925614734850624567249117998201616123702991381891311644249761017972103703522603391685150867123183615888960490417643529904322983889250508956861980728528875247809835627560501658974089743283242306221388145319493976998096539368219499342635827629674081783520227100496221705253506409215760269688915177673737218898822078282940502810603139764369208446082660859705339911126223218169420095919871440615131475304032201998112484015124544552343137612588461766404960917986902583107591026374271466155432686154226394643882842828806671818149171751053872931469644075612976371122410110611117717793382336634069019478616658462593868893901293174230653418332322757376539884104350242418331907566253624790270315482707745822758240527239527194400456193432370085687036064204209948687651892728762390232439009934027929918465494179757958727421812392280779307872302153479889006142741632438994633596258667698039065062608337605117115371179878890333394678891173986115442410039263203348663931061513959502995447257597696450265683821118668411022777986832378720767590918645701918727622618585431776427659590200952956210333438050186910818015491881119947646776002585473264087271595079857242808368035267080372476968299806860120441097645427695167976762223749852429853101930997739371433450688846542510591538884867349739016486018299318900892006528086976692996222681593736456495865016711302268288984796676443952685879864989960697282444389610917515518554966243611427779889157137182167276302623849757240165554414784083720335695636561143672376650882423929411701604974098429133168304655169517249427658900077798665877984024847044775557667251523771061847307027930778914736864752571494801678384731330239449802931474360405650956189617775669610222010611320370955579708015307515914610056550301792618094648765915875233792512685286510025622042811789428711019823611405495850059087340170687068628202687643389313856268221865807759326863388098399135471384547421668077767866078629571912428997957981535953877854216291699702339133709397885570758010795837489001825845114012146518908206988642520751120865088583448057635041910082729187852183152387860921527610472876428398964493181787788511052366913402611990959447437937474252261712328998089599957402109466071588326512041100813472240027949037698702180319430802074591261459739448535069291520637463364307036904361066840244569369211755499070073601801895936786323753975124366416030284408451122348547237388975940806395002031236274111482565090238622099251218590390372178549662706050749224847803536093573928265567130466624810921301589537287292492672166232001522873785800411602742479254311062552647881812246481909284549578469318155033838089956641459042970255854499714706839667616688320517501710654908968025504603752865218684005790294128042026659139465846661095149892812307133694665454956647265405391324231199351393595285295089554554475073626893722168398751810395887913753369791417339044195725419397322787428357532066713420887039228694914837643246025510129653863296142172709450716849637960850708803037715189500301945070121543347227925793663387928004902742618577095785057185337858575865617012596662806074819932789917104707462758619681026901630973156035713712124006107149939950137134088629357238323747867839020941183460574591564441853356396048005588963964433515840723991279192647213025796262978812208972239038607971767957576262292460236916481877192436910995656551918956740639997436421294240029519100736022020089756084482077263134907602613723535277364594315854155728556338062794384471257108153259748808908655862380140469013708919564372082675879337418165617750991187618992002548807184992161080085916360295464867309291123230106371831796175261782068584803195444244268476427838198276933435567801328365787287607741217753720232752581410235523639261237410986798027445864927751739479000060847170516076958416987164506650430342761251075178380825832966065348967612423465064664067071340462080359167550635492636351019897275951779116619738972604276121410474990491897722722967806109606714224053633241947626524941761862823439379473124695826590138580723223167584694718132252486487755827379837417642683723924817597566222806181107334174116576369520969123592563069933758936915120566845307559484276464481203494860643980261024705898191775443289377734704881532272067058935859735892616044593558937541470366044079209294023470198275673153758383863177855753447186126501028187247781928812764030161385785888247565605167334101248454441118557705620096476366104652892211330264767601873191424300268860838153852801830577619568584366079504940424888467522624703623048630475684675968559777156273191456683297150107809338422858686345642948730025275127458294490305491506651393817618783927414213721431980768087346684715293497968346311643952536378260309185156629371190310832103650446985667542445568660024321694171089755110014173031293614455861033545014187275912068690323670540993562957149409494421474673950210495282244626032130277700880958107660991052588654139561308491216401693753873109856188762262057958714656949737649960677818709417839415087375911147638698947872687063842862256025929342374398152327615124243937067532718550240875147242080417636036353616511594163451061711209537006658203753361868132465928990239190602243807424792659958872946788448987266353459891391057951905389946060403453823178235374574299858061802968234530858263498369248967152836508592442911187350670124165025202773056648292228800778492723918965432185801461263137628192119071161895719376673104621705204297633359399643930238777451359580369919091047829320878424678759906269044939627183264018435096017243955402377629558036016047965843433113521051978566958297923248743768981252001770305745553234339922937587669490035118006250280998539784613304328780036659950849174106178244407942257614079095589716606237420735852344135885806447114650669609002083517974959982135673994862084261940075718633374754682632567318982230836048288801617089028239734233665618371959997547045277438901974780326743682604646150201055543165201709075698846280000774171599971979813751147131497046414494352970091639882891368313332737660660534264652531798358873780810593639222398023142971490722580132200777583063016507972223655799893692134811384521777782377197110658123997699121534690178547152051892186390505761944895246487397077264523478179607142554446208089980993349926279450055716137530764210728487217134434288659286593964418274910517621246874303055854999287533709362866334017551086477300964410404438989953035120055106442953891095950667497170683713853047497129347551474290567985437877867952978693794745305957457182752415594813310822940109384098407590304038292431164812720311201065220600224860061730971634285513135401437618153857591057650076100802235301460316515730286756474121319489829199022110347594462626251474230340380923386795301178273258224317940490427954181740145709605245661206476403831306199270727333177716292361786937178325981350900749977632267644410011879082968069575036799380975797524499825404553371720601701784664909131458476972175149619355268593703605968299296677334402848913802151356629169399772783008341019437844795876880313086988155437545174086981908495604239339402794201200373927734754722939488264638894733645843727959319865801247226988251294780285891310313127563534845311834229777633044361360396128746075927131738657469828130990279094238021383455436835097757943389190924244817419749412891169020976348304178668595077389871771896665559581988522787824356253214680540781569220155771044948745340891337639612291945762543175442100829295525837108106759111023197802912642657889055968796874106439409688884627191057784383635178990042835053998908105736635270283302600672901964256999439069326308051353506657344423876181080728432991409319637299538586358047975626008915946974649236379041813712862518578674251458976014996844861685659226659057241705399809569614294611738844211880572508318928133044507569354739159791187794271195079514769713657308267084338133407582878831138283132810824130126406103715754525433529729768516811979332898956431412773496397518121286139586527379567527568631883995571020984112593755651615630475358557693005916830612713203607254339563475047298455950981941347343763498075531960736814029666841362847796834181924915861660912313798800233051130877727931140619622874979837821116092519385325912600734779515969032720429938241939985419050311993283156522663142367294478754061212305627139591089381098438837903054580214539808336536625766608031735204688001425225998944187280068416393964406424064275491853704158930392502272917959266648395178305890937115155899278803528313284965122235857302617943735892869864863897618648310067808732662206290837479271295897217250812301908363082449107756489709500278510421608843275050363901333134675206982405859341593212174982942145980188021930783961561830115207373398089550848973223073581165625518075096216636019754233108197085316062886129093643828385954519221479947943781102201144966503662455843809893558981052769039490039585315180765748266307058027089396723077281927156366172913985524530696824248872627326821356842556402025088064575673592267287832360572201146933312579836206113083045812342602858934115199061565596146314168509202525771974239943953839733507973856685567671802306453066004641138578999694621662630507172153996050647376370138307140995097785425582879927814651616404390910404407444113584350438675324148304817783504903298004594427846585117406786386805898247009769702199647215873475295701622579512704354502356408301176956682482609974664066294584583320387460639330533535613895032358751737247102005417563624360233104462675604120217824530397069260742924653887272102015317111003587179310932279921493985094345797327148636514762355471589183804840788540129360580040461248415422881700331756895354061131600470974340553627033237853457035769006037158499515860702321332605115096730831110961197095860092405346908050366599118845223500842711311363780136587794273117295327677589766417517796165366762311797291196545174633895260549423846945378933963112485578001322164704568617889995648999211683627025693752142476523558769990805540492315284178108147403856914424332544830827502804340182304509598103570817098532776554379560200663275619151398712033161790555664919680397487681867401968199383946869218822218947977248568311191190693023947207263374537622496531290460002735813591743359555107551988933342677958382676128747643556806076954778685925506432807242153272601253122846657710816253075597521814677604191346300393510715593679005478192746201833322100585975526393813146774291621887337641890906023485649744233479173950743116949004337506803790828368456534132713257250729206839457006239414700186249773333138045280651588666518023818826925963361889337264369176093005426556310801882226164282895630783741382946852833344196553282712510000367280522565440244739647139779844048360401382626633767556281449529902780841581890500859739243192193629263628630581556655769851728592285777814408870224240344831923507145200867094679322246833735857872528648463455987417089381741617009127161692794342649694447550504084257676852188463250997299081161529833087189125208998227109608134879763894907957540040232713593143278682176393180044895273920696486893729591447543392938726511316225337631642382944887585157113612423954596269675310017614326409190411855839147595320911205025670372809424507796599814941635406747973046356700867338318402708692908092910588444212237344162177407658022565321268018892210518891769737904883602701263173452457692153325771976597320563796615922423923098161531864193644801227385456996841469778354446998626763239005814074655094900402140530391342123128958238277574230381930099669139694154578083992790131411388390820948195966899108399447774112363199936589377220581532374127336349287956843818772441587635840565992302642013309772642848030582582882599152613219790758536773451964844973969338531034451187809358789023130954025876897878100950936197039285397964545917438803417806824164077693087823028597551794798592849612789293084846051757443869199173910953996725051887464782560364359857848919813217409491470283176939829135142736287585159713909813709710008731315825612640490052880533090086338293866900450781132981254294713447336484980023144349636962870665889122987354794338465338482711469179764974069018482792211452538504506829796092098739653106211799496739937948266872799957628560575690583231409642185477295438370366014353333041470460992753611886970565352757646560451322977054104336265197693163674674946617215954902703938218920121599176189136966841435811631039589600452352197313673226780186168336935691909925428554874111918612875676448564464575621383924433931869866200039564183136998695253462656240627287261027156292386599760139083961614442107451471400434754722168352391444334673743779353870014793414490649252346485940347099784799462013669175031991283607530425572053928214640789223437823374424040843260897433718631025747765702668143760070597374324766786321451940206709288544222092600677481642996837007975731885311727520036797489695047922037723851390242110075487255619270927745735079293144804427165379627318047234798952789501027832312280495311931778378785305187942738306439867892468319964477286143140426528771686574338151199989992075015327088902009623685851174830999228002982758765534748508328930759212130438087905539734789957576782233025183477267977996019599841024817932240761738723320893296237234515348908335307154060411597746286372647945356175988721704963439925891558579876791934693856041180479740661022908645342415785457036137961073073814633411484671734506622329685712514908692026810213687843239585745747149706963731345699699838204138305311814160555161987386752346153367301361614518649793805992291612108757272719058013801393124138635826129975324684462072443214121157226258961033151014298517047740273010465079547045868369589752389515057075872288603280347648907373857335862011733910655737541745051993213655593419981416134545440824231351774328975052404322167765013799960458023543229606453591217443582753090397275044169352488240259517436190965203291490454949166094435737025463064251493919598698875496098250266052018147679472124434837288991439744354911814558545029839877308330139623626632253476723138359514492478414522586612574434335112505142152652267277808963786556527439645386848133589103323532025566782953067656270468710431427276025470342229442639671568222022198789131694939586287465271272756375778104693655822919764513144624613697753523405467596029155494125187724615497680270645274227307533310372994800184941632032867784993850731684458987271679425395112969605042429134478741857462200841142574633350503086812741459350259488621945383492970260310891754867019132584309234873602017632250138613499002884862638677573492272531319706352814737435626639210433094950796635691121463138852261482704669988429533692966825913691344775147511201908474166438051957781295566714766894703831260248165521831422733474807275672618755945542683295029824614450459447159923619906185032370615965347037268334496002907250665998780084244547005518691871226004254435082679832661118487507079588377394037323012542220296664364498639163397485443764594468135878894409524146572378989376721338893198176247841884235326235917105911194400479320372587320644772970728629250486207029034496851839351430377826842291476087008988436145239592063101169308985020522998792371490905637854160035209582487322523871237523093185916828060036994563855804921887044359741305485679644543686311620350545131619643106177155788726090313906558296919949412030937121758276562068081781945931962146263517988935199527977471052937583989460838086754766398618875388156275613402089351067631747546047686174747257716229017300997577240833968760768128790601795365349797375410650606860196960246026518061452563094378333023642907599824559928220506789902095188608482722570223923917050833381764210286052004290706694777809017810887256666109844280260499203047176803784081356852600255922593110998711193057761275651480025467595563683581483645957235524277655305006744477112229143147448012900488820300888971279048206816038815149384935217799516646840006955237926850162450763613926756726704666042896283000738369257016509500189302680624907967819045126162203624979429852707648294387510151439740731796151932039269885308253165777477454511327805365112713243858187653234577745727916608139178531178374549546867233191757503773593139297111616332901227343463295945679293058481341728969227388648420662495006794646050618703973011093570451362565685274039859092955392117781218296471162940100427181868469388094597757784385428664511197602163984032339233668424633584760205368666133476728617885159980305210454731008942283809487051078341480754956134918138698321240415140435790923957678661982874180093202507957360547468679158273068649334767787132594983702392775608482880590571746863492539454519898847813441386908166113555338141416476087301337873143274046749753016029487628759610618774698086076997683845430719421546747250605184821252771857005552010938892322798164336910165255653967671569226018818344999868700789109602239933922214168512175021915429394173169271704898878442562978707754496858654460615569492987996491612877324474211935024302398770438585642796551692952960806296988364478659635451875150859098137201220010580848888952211787862828753340066832039360868681894934329196335973862149558725395685070119261056273023929642931378493787433517988969264776304269301327220106391517562228994012660134050255265170078644038371177864678626927709303375631517501956322597768553564253542545994161981669398841215431990640615505093715588586400716425850680520942068561655916133616832903855987669932282107349943006968604183811552050496186644621115209377884918082628901918051617100377329587335859420700788974090150226296908291671688677466626390037303571884010771603338285180107957393821577850843455361023535045989385775918111617897228683621090553051182896495985036742284827754428348496996720753091590488404346605149685765290975374297999216554835008251312916046233583419013408327836566992131520727776400034578895194074812800005343704352319539956050593660560773800198185584354914199591572820063239473606340343024547111738228192862320630902075713205565852837443093683767618363016982451343962187797169604353197639600741358353361987976094157122599486711194003776931084723243435154637393325967483424971179644689783350759785902490375521600964707022483062516451449640960848208147831064983789300361495016215303800294296623190974414041787717276671049918657162563247293027436053913521524949141338491842811679824390326781285689536471576199789533780049318979534731697500403643934331528058985008594372228449461992369187269770815075092225449684551729683357097795503633586446631110380148130413646986795166853249804925347630642984992564508353634651942121744334220443860425544425491314330414301356005465991553567432499473361400002950248760114134573334247702787366165114142193734193041777019559867511680126309027566372666133167387442307348930954952433704031878373453573468812053484185209050935391813823333484577564776714112748233110644296947445839563037173998493604385961367246180700180514520319517885242956537033473534033312578869754543875074101192070471953797758970423839395696132122103233697340237297474107323803204997003204724579214317874431130070002390882228989983425771561785552733889171405875019583062065417288055491092295397913530716778846734259651222529272927390345839289439597480690601268077885911424567611987998201188815455506187089196358200934271411151383020772108419791765461556857737641374699452149986145541013747251704273784260742052375695718703476471801220833135223550198517566886682610819099229802745647699984206098067158111126984728545429822401620799596344823699814524262929174284059545640576680423979315135713111016328983930925545535805414512584310242677268719757410082499149359573301393358391398501048569287378828747004865997299751638687957155960944815402533918583848399080087865178582651316956179954089519997536894243371132719091118480375044992558876356639203303067415517055516780801516921646844522504929912229898457888503154173030682196971632309396509757237828364544158647820850305857765304414715017750334931816608591122231299484286321050998620156242088507655476212968654997436066008361461385485904162936363236374398643129289478268299715515140360376569868350570574385322406939470794027131672116137021219305057592879649234585620493834592576904579608152473818082411643275192127297572311366551549864537915035730812149170695573919529245271515314431436961613127092750506991230135320463559620375114819969783438075158559966436823929005349533059999436873043563479184558407202259944864908530640138575589468867211029045004810989153416970306822536437210286803182424119895493010747226806846156412938391394430640357972236011462037844382697294893544589731361984186586130862105029177687735516266317858099868146338191220065550742151354595953782610573257682418959564022006555055797073924587796518922769669022563955542473373820307468419235352443229913500689182127523615740762640226360180105134650084005782201963910232373164070189780355672708856893792753212723894547288263036593048594718200415689933045799780209155480719770986877732110785065445156180925251051680613714037820724858870063591846930923617990294031116000623107116847387186934698646178596756321959522153769228681718248686233634985441655801936671473207697866261419558391808368072965548478437118250689350379396258409447043551934479858842560079432116943608489561712197162866806145975530399816784307648486630179630978969753698769748497185901227533408671638192701057297839253191939104283463627091279053671250018908926616291685819846753183859281749249936017001984224770814281849327068208662419084790964965803135167555940062918080322515765755311087329064781117599945354528987563065966471498304211389936406942499064328567239291581337581600267045337262449447092550100177263372230019158165476560534063709268998786456658541899412280775166104684860168147578569087088299446778541695711828337679931517505615984780147471715574617775606269749378988911773124237227414962541803187079792772270160056960137252202629767643042030513453009440862595513900978387070468854351595587777075840657976634055344979602836147199784081967135125327238293800840168860361424057623624408609407876388902411323875976236017045612503412137380382965649553135380792504065781528216820396879658120499781174657801995182951031717620191276240160207909378944439047177649317196938037259837584754215817024862065250392977427543601821849613631089053587654880700032991052953306688471248877487791470688826439428942822161797802630513767477195505125874231050430185333100892182980904082591559304708457602614769226413588748175739032918339261902354684529527741570561684008588540377917476465619535484458362758406087699645752139853401709851049835816760599762772830657058167170111010373221330431877080790828827095122436336835537617682378179323604784835917839790417935983312215869935817475784265820102581179253895707855482965694313230230438852015108328148998649010874615672206741557229034553751386099105874557613383901625211757113258561742635165242625231169582454560962306271182631289500525694169270556999908624652166202755357604700589185347075631414821424288485313668566287863804849198392505527096109918154997796990109862119629216625541907878079654360522443001125547900276843924669345789223588907000184067158203391693365771232199845844259500650633880169348193209749007315326137830955433276555482159753831232380231306915112287159127780908888073171285731017628412310573273877213960565620122716627690245519478256270802777561503168802316645828613513856375726065926601879912426674131788697874716945745673522328094747991601406679005131972149909733742734822439726952952115624216575375592866335055554886056416171644545700859417259916234113479384358375235647018520666140163978571954537823922997793133329586588041223892972826254810121792620398407568583929159964941064117393941851566697058467438204004879645287583356462039267462167993297362622787851212662027563880318352519505409967655798146923623921123635285004469826091202939234987135573344143800645868521431307524800638217330345581516074786848813847322840137600318865230985243166473967654116316794738558677415207306530309370232910380381839301251776604019541781037519122874987095808250120218390632885917755142372221223469907386585664825716692623101599334534146459827149637135623635445985162086154631076514162782365770428893722916944889137539574883647648323597803454754797876872735945041828090426635497019511615103242488829738080234340449298227535329976408115195388069468991055869427860039045005826925559497285474141123021954585465488575056590685169034276843744359793165765553282344613390202633665724569882802070392765131207742753786488091982747590657616853947397973941094427965726161414969856638611092015647769945037500401260009845549790700914273353463021400450874975032561547166522133627177108467829870090860284400009782135711857941111929012280336132667154432921071967790108424556487601564569247364691585133453028395969469587815071003771996897464170022785363508290337624987386072643079129660436491059066210971398354616981144319210971388278683349994201826760818313319673276341390591068616117956789517393874770101110609815998208950743874077510627196355538158168065425668033008713543734062437472939039866069589668688967170315076505735670142230373323018518411138251770625034367109044269088541083357068982733295650411633259277827913188253913387285218290823505979803102820245225832168909781194121591301046648930333961696285404013589638662191027541284657230119035441305512600346934804261964162507464141997292795408827017776908203129067330344840184243655389310904379747972066513984724149807587298404181243812745885485777669152007354269851728970225702935504435033480704264504841215549357830363961907721021405144208712992541183629071766977903103608358950831283808200217794545709567632350307442369301486457006876685913899027738188960247481677328734778673388194839234899541180868074425792878278192382307015038982203828461698694451006739294167194463381539305534343592843861756534313868383735527614079794733331492090305306260042737637993953296779796368891119806568182118677676670026688573147452608400319913253496652411660768298098220783047668606091815777657076699290680018292109193281804213961862535824087046587799375717948231992045360861286521391790947117376403970217078999769500421892992709088270906184073338079969658529621608856830059378026179431521882795643068584539125314313282822398417028537182007854752452866373493565550450961459883149625795361012318163666729554875430998127905491201776442455139678394678255135163941787456004861146333258101294410106803683262786054642376300433618538671247126208640684726244734871250035008200336256138770796872963305875365332582991633120222627237527058855235437465304521686394155544922860543565318902266023295631709237137873129450347554097024443437968415317162979427174841099467177393524257468165384676107461259144588084373292206146135963910213769126601656025036860669997640543580193465540068725121841672147670197545046830421815999594103576981290040297579177580717070069896279705792983498828814195659926897001174641980032735104470298738417825721051300986893624043118975753443355800356648204485871313948875092048651324748483775015857488335379500455609655022720678588601332485643496789595611004208507526575657102602728633698121217299929657283274787584722131140355684501979484606433558529486507836913951777905647473756450424932575574351494851375252338088532088241262829298627273933259602318344148962530217699610130208852138552488225928076054718470263140734029305001640770266014191075787009056942562476696920599736053756159370521131616764997463201378753889501041207230827203950537509700127435028895841948291551128902788799062711533090177755261042974763306945481224101623702040597700750153784467248158994932199102691906350761417615051477593213988597159142257958536593800527083025585292926711946598292263816732438169375445056240652004990113288663736243934606218484596536729841012838162432930111509877195368189396699169073737836035806147292353654220585018268937159651794310602353683170882646191066016136113566429278688548508886488081641158280730222748839828184327042426129236039029581795388129348859544846829912563820068587256995897323297588201261348548742277575902364644138512095465773171615662097365792222300113044877637973366990816130834947302227439948185550039594636468891474705343984347724832626988973690840711825984153603754604394940072992698002471107862789553298881855643307093086955005960385259708512937956895678678637543405517763251838878186677244770809382810025238674830076330509593689261781605415837284812728130972308758836253385381128821224614611454810021664391194333883398950159870156701587047083283789643039818605082627652441455719545998747767536555652042305283996698075198206027191216730501041096228839716831708461589165554352398837806885330734753666723941131457146489886893151823721030331904526845756540882001180764465669450445093697219869070759043019624975381699059903662073434380293544753361478803297947935898315225057918974464342771560662334017195303624392532931695957946437223735134067639093184574233719711319751607962626821224187442820108116988646942542004241713323099026199615101956119531238983867882182944180318744472580314817479295821317960177184456350389506375086745252279416886658396107480481931558050500386021271938909631077268363684596031829495474572411959322115982984954673200581059392554044291399154978080060948576841429830484365423630611217819789733085198626590185174108970174676720529779740987292694155346281999497178165630204881905926288961803312587644149751540279039504029395700354630695974811169865203628975549700699096352925407890357409000125138774063701322022667036339593858604603062655552158593061347675134486172988149674572022096108104019964493230539870955147659257195311406306200506158616739365639634055233668426245012190070651898512796754793722533030013217180186950914533643614063046939047097439235854861191191748061221868391997943509657274269585924652108301594738299212227928042706678877317228528334016843964414061732324421508511175103083269839057005781235034880251802405763304791971476894822438301260746232224631137307069470966268256084938874842101175170463299080033602890783649123101521598847056620742697191422715788322813764368744896340385348554922982873015690634413445552853982358687309968888201023932603460964031813250112588628474041486380107714842883024031656631656808036975130575623065596250255557429806598612909438849163242458092765202639663041445946009951814601880094469176160458020787112851195614929464861586212909986254772597902680306945094078161168046469216347080907915563569098760822805958012618502984509352443648739227261106257569739137603443443210718019128014349245040594667644690976534996371863525989199989193773252664474572650783492650845229925467387126282913189947252545163617793764912334589468418094759188925652125984884360519061941665105160279309649975644596787124267442715206756503554126151291264703064657545230424981389417657178109627881154360245333711478408613486860077007857557245528807772006874245378337031510707220099942278173678291096318874745003891755918449049961279231562312030259926485738504175545108698194463318173261358395390925714875684331258154361722046476289729893713834085944935681643246882067119922357883103248824864826212997067308712626607848708251315909353882226502704728496495209587936269761981110168307800287526561686898384852319846955704839573031104274020126090612444840714325151270717677996005686281095407388689971783431426875789409815577347180932622744737276568782872791495741903847010454286150044393437938960237637112122815746146060927491093434487555578279195489799872199829659395759214328603803725983102592539579767612473662364440879544765332944428251899850499311755867298487323283057184717266847159561516115904486187960975303093530865664356466187824346181031139717057747640561430580443932517708505226894480164493439530161518362361835158115932833283656977678021560565070715331920852249282587692802882378156614619583712374290057072664937947909003247531770141957150847514238733086589304736461634583172653310713281703624389578421820675667819645608645888134255624976794580156489178344308427683820586491388104482819124065103761260163742048780594176033713851438160172698190212120556678632551823724394426616033296533209495134830722148902837783667413604306119823062872066033972885879766330740007854252235069016023872276486687081067717883362732416365351881815421922810840067621181111442928556030125559289767154805490937110053618599769083401508229545070986395627529113376342378602546469826063117115979449775520587499325638093354919917198081327474706502086422405363381959017426018922744084421840790271640169640102664985751457682619105602490897725107682796814380662469594965803586422159326840121963586517960181556330312035454594753125230717091701929205096246752555103114099859525920179194643314882307645379301200645924795142760193433925043911447759385158916470252268141853474706984337702328330158746253879949590425592922477160329288640646632971027762025729975753036231034639713780767116143454986517418817992669829639004579719283255777169356541594899884581108875678761745825505893784211281404410335272058448890874831521925410966205655798991867068522433098591148858169131701793671538224486367880208627512186308939967384493820577869047353623255997924707150783982163919980978666770629008280940348314735980199588919863836617142936319469503259900592620219613811645931488883930858966763585169963566858438529210645023742393561502357977545510619628175011258442770072466974297888641062821095972445244984087585495431278933665047952929959922334482708854918959175509056432572361420003134713157869927292035622502883084090907021113675096573342840612927362799514057760045084480790830219376860798273660063755676933119665072095676301061798092061724379792478812464865458993425044603851607157052261626396672050929273233072930863248231656292949624465283450162075497216072955571332344295068383606936619487000621795737740795964728798846920371383003486190363170620001850004663558513039042182473786175574613837287879313108372377868310664408410492875309351819285168526109590917537040747349086921920904147357547347850618708960311042592287575185734223483568646840382148838418328775605426415300267880775331718537415229661331633660043201377354987744292273515685094274118830790704368174838454498194405027048600407009192652655046439830452581767730761828832883503864274365569339035984611837562058513091073137278343731624738145310954211757632786755795742309485167303139219217947678387285258723459019502372670734108785667167380932658427304031528380796828284903491666014424113124549650377325085651318522378046223487230036549983424495284116433335269143254045673307643528129035246983352598008908774959205073290774710077230011027091413459035446029083313889157383988344994309694521527581243553336722224914699870999513660975945630863780988051119676321972719453587489826284008224134648530110760646725148496106615923541066865697320173305807889489733437477249025394263762202098955456384085814108380243173917689605742731433678441977862207046048904778295167614337455377114861452961956057641608007116438350592943717042843159263656511833169099966408835717386423030276405302571486499245119292071705141443606728035555686511980476499967320990804711987582497341006854996324905621122035590488904412878584952453248517939018832797600045732412865394627479319579769587820585170643041140978417199839953886418706414556561024024483849801096524886546962079101772527041893189321047291078931330980337377239475306314869137781983209582117826425614251568659497716679988303362392076424310054373905234008474374498324941901536577577791742459129117612642771378536471034595200203165762713531238099977494065137842765633289681157022641161163270898696562093425321621925153380640004124796266547518583910118561963398350244455414579326782463607004946648432209368142589962030567987218587264547688611020455487738078788310627460852489745319384524325696005062125956116568922900516761961880985907906602184178173266523182535643230959314985193820053832685045937649441763866561010651097517175318174615014200976808973306227645501412828712831366264735704011691231117759929251323216569361719509243408773395935588945558600459515005241047198109258659230301696543120804789974956526870292348394796242256829921908870526928025372393229920976553989902333251743621614823114529677171359240304375131985391406622466804455269758358514107127743051350549823130935630840626040629392286304359777328457025156454409768495418263301830330341091221113905614557787473663435053526859302761176321455390077057951929006175168406007195609631061731728773275523454520703611600959921244675847157480252242697420403367779449491164601387518931367468644190125760369909859896417170491770108300107665703017613565854361146933890445908232941778929877074627118262752287874934436597820681686725736864353410892709847765922229975349187775094668026393766436588582424330671509966992110111673049057123926184051295208830814561404534048666407364197427626155451777206583866687872429481824721570681055267930945545598219307400189432089550846715570008115615833132453447577980393157159011624841897814936493978124589127241722454815739648150067644993496617898906273746946970873860799859450185867157519237622802075213403293241648182051915077304729569879657172938997676739289782003781230214938844486445823929828701154077458575508776787369381488328169249509350166024029642709785099758858119307019145494730774797253363182184347524288630418013562676999450731806270493314249106591012737771669543564405286965499842360599984256030198289491498196669458774670522199125266351716463155962079485289315713563370954902617998293556700860735150317073141949211429313139544178965787622488023081552379514064367619245630325007744125012547389065573691699061124512729243434183412735479472105398047100755498631482473680606677073955856971449919954644958341388889708625657329188142748723347644632132628022857339617674441311829374035981629146601219167515443438446504653984610178444633155321266372220837546021509800162546285332766812528079804515794467263111381813206680981171399991207888544963767792092544153251462901193822886258854390551038284307032162483981382177273070822271730054657830923271236712505545279892995439285225826215478372754105494695420062089195927861390336544771273280501905321664884658904239737074479304659876857428782030315549332877485031739548136840146293098605766461154433888646419325873980993014849695106159704164781479814364635374128676405230564703973383751570614589302280649146603038194307398578235024575019416878819876698851062570241777642460172592954783155695014091076064101187300524424654743969775728765020129019003154564185085763997285389499933262045769178173237510602766382772322387403590676613381190088598371285438220855115407699645348028625980596993375622973270306480044391419483151850777515802251137898207816689193755169352609088305152627724849517932350441276757019413625561367681819182638606514923490312250224652410023059468240800833073924693595246657674177438836245945578152744830555791418394051196206014517572233666435754631448039599436470209682825778541211343414270184297992008519744109368353693904670339018216941871571654635853217526162863078530180413000207942324739713062516765798070970806211226436813478144946811790910440652327562701489466129372116447746451576480836546760710458406526897455863182035123421071665674217370975039354243338072406079164735836973984627697926347026354683667622342045749810763528864161386155508117428727323439600779205692832331361054668430910210453599649610821291054293181744533949565080164902392478672132285552189501800595363830379845946405194318282562262136350681923446532388119249333213870452969830080254501973134987819153153714552970731895036578203930209247360338626688853348647270129273827162648569429696515793917757301070186577845351368085390468995165441118440691453747640771494208125325112305505131630108555859143418353016629062220965310762184263326967507630943163637871858216467295988987089167595004862144570793604460037154416623590883279020757885245496369868084567481492209135728251198269672309564940239737095520837613323972002584883476088400536109330978159334511113152623765665001571347937672585383775644916291619284718390436676564233916693113116168275715818580338776955477308421240662533878100034268861229077686978531614994724371680425634560702860762142136497265190789791807406791090285575018812749513008814576357101620591339312095787066037212471227193455415613779317039087044702781027125245877067812797078171683738014421206254728036966259212721767885292347247690721771984972498032825029113836966339453209707962411339400848886610055460517276120879551473665034725671892015243297118717189586842240363607753967977033091082922147084203809855430537784125881343050630160923654156138785824453653805055117119690334763532800589037672350227553892316260399840582700258754792839811010071357226321495618629501686547290938553746471128078159154195756246771859202780924507309727663068855645442017168341966239159636021487623705238604470068645497276372591399226020399695758226241849902200837546716397089870268743298914768245800974229386367054128908568727938755321898583662788692014331494557961610037427787998193684832108435532172176752524801313404190801743430254254502586151898664499749262525369433892160094086399145683082274048594535549992580030709469151002642166956584729767322954890137625735361687550750719911431264842247240773280654422393996530449126165110911385233644788225812795473050721716778139027408781109092233156652335737579296022951807289309847061427373541340423281942961647991493916783193712999385631226250354055938802600929279112689250969461642881176828096616146929356367868991645942917751439129306122297326991180046565489641847829737207234087329203066751618136018484062262305131422437175121236088047378455369709150480545825491544392392574130223264540873173158936726939377319124870993633733507090762846201299596822194407805150960012632525331328036818532662427348031756572439096699887679068834391199622633635047950010037513405874216907417470215995960446091135196884561292880536991521351952259818120479170563757413067162853190219338314008451307795450500955903633023331517483425671973372043961043141662246712786519093947498234241460193642268131004532086358264456626538566978352416769157503998440164749872319158711089438170451778031851882949923323587995864539359443024254632062363384408259097799807018490826728365377436127777541040265868090480248184944734033494995140396839661597000522948089293950889506620724980587715471300129448945263538638271897538526068462569206928490277649552281151084478715103361583509224552105087629720385064079489885653146568650656072311767403373216311346050500666541373514436830046182207320499770516935475705900590451774857724972515177767072024109984206048348495217966935110436189819568750105561729348157697898419433985215858987339977064591529403306176517705780370881177910448719965906202847579130768422725534042062464939931827818057820727468989295540094514530497521418122767823793143840663559495057834874796694614837431754486686986783539975437850510220653365341868739778692142373520814228732895099779592703988824284505595687268814276104270797162622222036747046560281671516619902822544448599486696022084090657843720322113220543004683344370568507586082423974855542274323726331292926104973448341290248335511745595690242875385124937283162949264301917689601817864112009981647135168989413331239149646697973961312400614611525537090630909252586135420240238203689220844749507439638716724939487314116676416305341984784448672149132902124969450916142491695702554974102914306513140400885660073572035531162679630064319721567308414216732115068294475814601926384887343363551624751188115929032228580325131305173828340854459153105448041828414288585034578168078387074185361977830783003989703053099320030635234612300229105091790201811980406488727426538764043679888332808933218859874732491873350344477100210107871041259583609842864265065696619740403687216178721404898960227277755104886664252836005876132810405877695090683991233650397735486866591082607709363278296127242140397375212577248490400833401896482833866111114292365402619199235383598819440719050285696944218545366492498003313906195583777208042590749911083416551646425378620007546297319225616196958672950194886110605307732900863437613717550145159538430286934965440617327677319356482980410558993258025205309903430516659172420580493684336549086080057757559428807147510644350146580324551549213073450136027239077705539303750140878769770397501298950561738914184248854243630174087623239328233028089380770573341422083579449515768063611810049159964660795293463728017426030957795016123077642252110030574875539164875416957523108838510770708541252676006606647945635657248127038834531592305321125218042770844090832014053610605866298612034290917910087785298041835012943626447619175662303785961424461849586137745180363951794065007254190833158555084564821226811107846686948314610822529363725835593133132697035538042148320848719173882526973744215983935618994453361041788879016907975961136146442237951396764429899713516592632281048791793441364327945671342747591239466877460760534210021249314959917066073897089728318438879416139127423582696119074836397118073840250905034631300529189783180982310574903497841987395165270257409197607413830284290441537272483295570203835515653500807228762708235806558986939875355000092361127320245537422918563513686701944875210475326675568411519846538754010361344921284603578190089296696567806620275883400611590411003916172933177198470207883463199014162232925921212710105784576145493123047690673979053184474199147990061646514527450613047654034805243931778517920355334435925025503297371726115374511290384291954133014927835634130885673745937522290741497287033275177484155264205594262153248259074685534020359205844776760616593168914728023344252145793765442076121960661632327981254201357398149047838141018577978884057449390578662869478362853585698546668028325112184148735661701080972854762259795302845763769221740829722151402352919145115491296777792558283170402093471866637069831044805153277109055489891664974491076684066056206043516225945792514919678155416149816234718937967226945635912624941714493970856828988537617903077159488906476636042744166795426310659872901819660942138433891144417673475805581995149686671183586509601374783738577243769066518047218416780217732289731821700447046882101329382883200085061408552091149466862197382454294137136769570201309197806583330842762404651038203617714899417617228130893213357317784182449704759945410294388415766354479774869462861809663363195151121542902428387066189488854041867667897479024063175485675138170896874528142327526645331248630964982024271141627901293834038409333556690911887330082071121162134748330909871374753037265054716499957433155004689959019291459480996487906546250906790507638031702168057989711670282003426161553696255505124762451858343706904040576333039017088270999109511271390033008214987708260936071747350169599918026779999232927097752191039070630395601585071309426363897234776452427442854091676594130995264261484384922443409742469779911478292779565458368120564509310346314904739061208542836116608359976872150046009915424495705261657437121637460830136973961518282382476377036987103842842323152779026218009239371702541472581994197923093173672274985063997075064517807975968544868659513679924707484287356232310839146005928740047535065598914298076722278242992825885627793960292055194513139693010924786433887486179299887140702178469645811143771913960595745900640013193912969598992617367192632869561860107826981982540295195772433134591779940777838788359588271041711425182762821308097790870077525798242272574016643637782904157551246363402268254172031625500458750581095879643637887802625112827129099356240771338094143110270603868308651603772223416741211364978781335179374981261286469393257880635371766282399273317118515007844485868842511396454307395710294722965568778822924767563455265885459562027922616012059497966444706403907659420911906274116332970993062749442843860513802736132311931889602163600928353869990842162481720512535295631222314007435736820929278060061509464380894143671092089350738054819950337624727304459904445968664963496794413612834793280358120651163771708378342709407409133809463001542797453709381680653073772987693641132135331407266599530945563411473359762727711385436759044784298906970001803920346318517220955723139406890718898925367047821647919758880018467263162079426045100458250631678881390541514444619078221634158475533975344772277228712547240481943590221275801488031533519831160483590013780942650739752664906090306060438236482939629948367083088982706903926843410055640556817207061084859835942063874841730990790108319670267651526454827408118193869357064386710141193566123842395263387922745843863598721079222000064181310249929388039154589616161707358646970211148127108253807575274561286600827769101321181279091684763023668853666176048641790647902478027344063961961617505188505826818156411992213254511506103466206014301660454666165330623293126346325648218970767208644395709808739030032768586326396544108210794273228225996463335539384687819947021788587862470732596703980204563276267384762649137256226700375831667787827486469914076562021661224703028572090121091452053520199574928853156475238603878705054896117909372759606683178607246128245913341696672191857443496737570085172442170638326434947607605618292567507190368508413333796519634217409782004878395347647983685626990675628253134780822870669054627174828526146965772082572040312503153896223971527241875191398777909627265311979171745053190925613425185550687003974510725595707703559665308321380525367911808003182295838848277853812117971874269051528427902964200664887665066100956283049151627823757445079245838871394711942575043950833123488812542943727183300056572205681651956584329459811748009888529615371565598849958940893971857244709657569070137646778631602923635725430368407238834890940726749266574000948988608029373884622191388093501069305034919927441802724798581241579023160974156884820758069516935615771676436754828290561085984090952779655804471489117473577947868760431412613184377217172540730693811465831066189050329352308251036552863370737279286576027018533956405269041807750112547162792157708740270973719404840751291023364084267229764190220562244489016630396860511781688754596853419703163973836150853459140623840323346419007867421158455823194002710525309360747332511181678307268131791672921910050743960304727812987609876921885014022704624805394137282507438474151377516734921227945137258846214178433896416920522887841314797105922224807783923197243046186618460426159302715945184843706714792391054817590434180002560317879821026269980548709016464587321820376572251547905377395629407161607988503246443428667705169584236543961885532336779426462477818610793452795389097579424936375914608578954880797624256163529626154698857845462183260550881894983582014124452717530421103603787611465754167372562852392841813367518422578884262754307619533749573764119393376049423325012934620275704873661672756745355214982419144283064147974982515995640960962564494516373786668012269265029239151405554005781771996306991436326892495359946553254139434229707896431288673214741712663842544179231404117471794074983826064061678458468880941123123876162432397219167885976129806464102732596196736421098596523756782084083182476666608025420529566617128089393520429257317883950503455205325681682108036214757673780123205265675105354894169840538249089864630640422036872821706050449682221325464232824528231486822048658148321489462002960260746974230449901381500241470142881006954625218863803454630230757858435098002115206711440065140947355692686347762447809832382666668273281488684823522141244514481112123683621972743745969097287484544706708156663781990646661598615533519490276744169569424632361875629117428350095507082278088855077517627840355172834897685681108616826866490370413156510449231812449199062609348302104745735338082003116901901772672266760618188104134929159095854537929837813104555467745030921843738316146445316949972541849970650610436313194294783402567241738323603877912491789522759296000695139911702882981522949329609831428613571452175094296148079362938588414215398304171541197680400968730387637282499017404934827116856546128188185837730399796244765890276575480676951675976924608620385346724996953181355492076018194835240238229725751063629117062377009273858187507004285762052424278982838731202209183919003221115605481255936005124211634875213682851285416657519405293587730349254357576870809008751300879564517159677034827056327453961584878762382954554377783732872916026418239599377074651134319019777851811379237611759546616624240820411101716178837823751977862986398088654241289254504846853272893190651759946304516005863646213244157195315596828190270967564056054713639230162698340486925959281452578557006930349291153649235461441143002933969051017652389322126854537954099054416930946149750787058158506424472368753596273709483407453689067035641695868234739113604847266657377178177705574605541158426889842011615008573332471791952478388400620379328463450053281492730774792148508421461207184719040953688097764629338254265457644894920678250543954341646872651361129954499817268110705218031101876260351155419198423943803120174994487177533349187916043514570472125627104340909517534322386646626445159065840368265199271723595989239587985896926343308938108345273917982684030260816492329950320845817182033459749753781448460706645968100772590713157829147780594212062322674623525877469671733890202014375070782500155721316570650542093603603980189611738287893296383088733284355800639944082115599221726085650827524995456722246376933829036596917199152452921089456855780183619752172144717037893681632755711204613317539488290409306487652872104273060797043212982269795333601601764368706640250759596802377347535769918349795017512342725844871290577146797342005279536122691584216085164318562669329505857038786243154290841460366803658673675419247643231324685279559795921278309036053894932222425877611368679194205935131873548201133072539719189117324411508792874401056111625140415640514882519886781706363182644258302682418596792344978350432492497909651154429286069023020346853437220394456887664581499038407593405618638377603559621203298298931348021121548292959496966443318941186188351923883162715345776695566050815072640014118491454512323435574435507070533014120665068791333704357605080083190360989430330232913253338758416874087676255550967702794347693213063169143190571427292045248123918439749724186290113215044691632625695140503409494347706833321844835119315501191263527942516671322841114304337133063115539253910534186597009992931531695086423033226845074066831933596318629863640108501850217087672333488303646515990810616154374012980706929999833613261697096396084928801339224842536686302308893756520235366135164013920743453402724339578217852548792432818059931503147247796372391977050804301528882006081034837095054371197770929150282240384202835817870480297874838374059663671791346679786801755426463630537138194925047019312858950390169715842081012642434928692751895138496175227699130379582902409997626217463627022288574909188278951692561047290979466697344868829381022502393750290186641312004550786073754511502165938664250240979178430209838797936524659421800726235960680148842011253329158160518810995696644133092330939376495798647686545244307264232181966150628675905409594763087852369979615293118346585289513085262871784839655696976353553809286639860366151381610423741425791271155613152472286401280571307899915160331098838911599437227736227180299701507357603413338413189966315858189695230671091999977462562711605417533698679964555117144456038587531012455259185148268772878677100495277231332067796165972856536286702774124360499775152593797167416508095612898580336542530797121389914125684833648056319240311840138325820557180212186553454642820887036958702369043731171772174667804737954039193655902724257473195616451845017519313825738334077671124363719115407555797458282823097278736137993255864657046179224677205325758486387641147737085796003500878534878954307671800070994691094092619506868117799134610495156624136604704847173463673755205937171194199186450935910070753582451119440992905504494944044512906129633582600137501491297453135847857223895048886400590865237934018929912083012998275911567067544348537015189858578532910978567417659397879984226431834187672623174356794929781661591528858920263965071141078800823660549613931228617771565580311174599511390975857944987869418779012515147894207805754906944034944463424027488477425175744068833651490254097972008044698014607870562272572216348092759256761165734270329397685945314432340705066599814603473228642250296080742253422156946011129804179052207849102395760738136785126602302481037342216242436454563441483975021926532557179106527409317358460673304467082927661925743455767888314185286997860103416482950002566826526185600002783555833935858989393559391082094250305433458884290419089633330769844236239961832799330360179449551954695319595666594061149132763603315266448820641519238168774710510780143493950492065976602862556494965735858676681611947392859989495205000521109088269877672342166959259700883174726649069784177357666794445940854187894645607010745009862553069530580282838756891810016651907912684060658238065862059698057045893516831346637503210033171146180396159601724177580115532731810785325409960404492268138615998389241436405878099364830987563213182817324023120270154303416887239455405832558923356836013749668594437725193293326757811085438020574196145455073338224578998591616095110154543837687352150812443343734664142063560773403990274838924577240834216493430223163461627597325405064738432073255844758581093101889290683896208125362025136254745803519371435709442112567234137170974115846733634476183379150985165107543109031902501281964928350576296153221849473861863382425438143754233735729924627856971794115705334691755840423530077342058737204203812696533575874347855567291810633448479572448002057825117694934966069336086185437137770301484940031491304314360934435004910216605149648442803077738242915060549301661963857916909951170172225771416985214800370979799621047448759766445302166432674910870458427588890470082604044867832827285810550132243931986967057510407028280395859029689053741862899750399185525221287429693099360550654992340013981554359221453237370923081678528504776577435088928196614385655301294126745879548821040594043280564414306863552579644184717340661095771536333645246210347267776431196903086142780153261549066092653504377467523411142404054586477013661658692549809779798183636070132356704856762058684688266302548392864852148034973591463516133203832495854028119135927441807439528789300599562252920510309671675440269431089070697608820248003735726944195105585478131880971164967720973286307501057584387840597770917483706611438699119629201706849555284386933044956960854621112558631645511345027045631307049676188596791013820175622167052538031960361456857660396763374392850083298811393170415496718525572189626502199532902302553888507599632172753159628621224865889654922413258050378356723470815432285268114479343905769815328436261443124438284887555516317605718548587706897317651687645681568404564284480553671501131202227236459374869823897989791565987632293357492511083644040560825604007142510736408788675746536221656614273134279420350787760939379918825724793020731961918941452557356575068879726767826955567323029651703307739891066140885337299578870175638017931978626944805993740775459182587492742823499647005183668413562583992768459611134700833504892256173054363995253159340336011269245808956557541176848833354069690066966349331426822373549148971797715850716303263137168698847637280726455002211813638981511454082105395145583629076093618542492311670810246382233615383563116300247375462821290102706201780759955897384959882021391215505985633824196416976213330811902592379118751901353213899009942833836892222767846305293562436316659861433214468037509537952286877921173790226351201064143622829669854534122018156129463599574734125504700505013322376817510679512292204623220818393756354403865951651430402006536533525411998300451027697188487890212576123958376368750012719627166715052610638710631474833708002952181283239730446306672197179241407518051324228896472275148793674282206412279910803055196444983449890253263617185037849496806323765584044373660956815969613147868859906441493318479018628498815119214976912280015288882999792055780403546737257847439134669842188470459300338972337587888355886133258456982812596782755241697954644603419105213751842677606036315063798246554660330207366685584145289026596565810108616582868435080670959978348409734082884654109511804130955002883734128574661484644124068366796013276502133229570302042642385165235768034209490866033524075785549482567797001808259418043745721199514546189126880131011989303429732287115745388974489141546874442386234474602733106987080990932269201409154804620818645365851450410093475752989139095330644084076900558485116936481846106781125575285575563836712896160010100657390311201490937606986560457132852073534445330228368807151743493164511219724330365859333007878424169188425238465769258135668651810770946222089139675056135467277160629332516228506934930276389355945132522582708906046458851852242467029404326370672139414609942725412643527943042700236786364183987756627520145155382044564299092220151238838221553577008541189592128665507607765265902652446572417679109962239598785484744349396715670126457150841004683502298191307170192821854232504993337931689724128768584391777393880636706414382027061627949665813868222650010078717714419551171411102064806361269093338627614589155025918659510985100223535420346193135942143224855057632176888053238659511488722930687929977924280362168592870520693334201376350041961638419304256484916140838929940978587148800361580850820747379037796200207838585776444147376744224069916250963558136338299798537397507464045519494115652586459312820560918000626858367689241226227399222124871880720452729361957484901926402473177083022456062323936379657064186042071455549407337511376113297310553205153386979566219159689714939851982932808901044549310260286639554494951539752010006752147907237047225039929191520893494572402920981519239425847803138174461741384180161450565874701298743844253152769195644311138790312673672040711652111324481837822596703334398538419933171490580019707062218527489464038871849221759847506292601464082611259976724819538834475085836348875619668117794795843395533242029380372216491426894284102753302406606761201842922495376279621458747358106020752753929980881845650053004304580367556923070139179027143333985160019697692005580962940547133703496306308370148581810900068905767722543768431217349431261077193946051156927978884637779410315973665706591746751107598111633207657014735597904594543033318068522131936892881249204782659153737628671183918189725179000809097637539566353870605700842226012175586106053636065438723979043194442577842806490123932261929419914734326416996974567921817890328349165185185230873426472646889781885835973649909881568726756662094230165949181732840515877430476112752461029121592287976927530501850563539275265569536796009902031518009100364482099457562936417299394415723525527666347537280158683242656331432943818264150242828618320891063026389562973369423200961222923885206768586561700030869516496815493174007706904491339965752326487940702629995159457048962569051752075013560382694749169599880598355803980203266852630416240153630518967181897335422663689497704437782863504007246660546931719677181464445693018128101875584427653875304266861366132994413166349983664187980546662013185375945143872272528186961289527007555871153039009348460396705929266636393860790262469458236360872626686693749883319409984136460800035336384233044074166733766055269644801930535392795205662888427167887186411889238612857338188887185871944355863728295857571845511606220286578577318547415204703654977777415473602298727921639938355330413837432471068089793861175133101823932407114047219703531528297510744182680275352095661100604180774333805018010469585150097794437425641001346171442888356324232353830914765579301567688729797126454880805320475066823503545744596107913265610066456793107635801998711896706974338715950399600173313223907903008752967491774884776347389815060340979946280470810170916943188363344641856848124377566422516108987880215422611504186632853802808895848914002945334712684448596608005038684945662135788911905603102856268496442000584170552643078477635986852194631221304950013634568065750156336176413556809136230553759820419360549009979372258393701719821893614314513355920117283165275659885331240283297803931018034974483996746631886288036329597768314234491936283146778538764437303609341184995783283526303692280411936975470328000515134310870667795153759843562267108724068426315734069555910217838599339224466319812618801805687780292400254755812846042593130894349874895948661208594686351502288410772459641428871110680329253012888782359948611483526441603134350117737415131324790990543797468051696490592154539379494842893661480365425322045098274775628445699489340391455184936644467327668717531982271539318477479131257286249335966538315664786462951591629368244401468128376240646417349447464881869972421699555099289781223545881365247434129211104470668407408122452985598230980369180346695047696717993112053776265612017803815323471824831208566791829074729221976381087040413138832449596422151526292368028336869261238286553406041766730045466718643418207006410300408917058599053081172528015089181880315795282048173421119547081741052191756183856198039394271739370686730683519950975246880490342598210069240347148863678185544071106183817217235299321667421913689084873363179261303697133057547137577856192120467728357261814979318360760032984720236186363693613325552343512277258403544714382889190343089273997098072328460308947291158497041792856459500106667192379798851444883480805607826252860000266379503117061132260504366511660943716121997846098905123855966323680080412014621438999748710495951126383856114407818686562385891198271622040672485423554297642083017389907568997310810672491184772205752902413220709421289353909515956709462483715725802344984592252282276794589507590799953782155194022220561853294467491686873613442183871146226357493227599330202222626122442256215087271029447459442166966016149478181484936649856347893150491155130215363755385379487070156045278012626270865299029629829194013712080692225201934419954176313195723242743577588379541906535665151760578169417072245899695558451055170290115306617859697129657662108620726246772230786580993975807807011461282910821270071833181378384479531833960556767834434249246615529765527371022535616572417457812660143820161331159256571160421159986075916166969962493677966278385129006382342987511304564006588600415665203715621563233263796503440408021129814374188991766542885239169193737210255918061070043832798078833393976522701898397365184722878399068718670544916416305950467679916069724258683528179563733322886422250745662663020504850305879643040231570185629954053392295946326573115973620094757356804902590113017754132640570357341028710115316983934737591515942361698591261883809537561307026455120996854522071691453831672930982879097976191812249628710183165790243228096950000486856495152901783775042490218972350681237545124881195195726283901829083449816847121349188657553020357679541312145772045321270715888995669603215030978239483696065225646057219245190219360234330314624734819971255958653236571575263316978229591724269563616763965443657084717433632151470749226783350679101686322678184443751512361255600098452226531059275174364662305649422553074823694535096754976941332943042491999151591868052238968946183925911909848196158260111116377299938619611421434091953944204520669361760993594531702898478881034759316529163141769287329987579797723356959668781574217735444548618766090930994122209282739613943019901631300404874723503474211757781038315102122881122017987352945779566629983762753264134583266267313591476271149099434311355882776346578526712775320260476133972090371809848107185669327495036803171640603300185906424936856966824074574233031215010702495686336235940822502995045261962531734803366500940467304938471022716980798099850101147666264543514609179159740958386843477226969728537131162229969201683473165574945322842731951941255273542968325780724147339391720154302600009659604324230924135240742325383848461274384825166260563546204329864641594814835309051579497328664068324904065265766607105781101693165932908791696152958750604091166740640648440871430186030057844433175700752434431306626706584934217349299354565270586474690265284095491956075860410794566328870915986734784871198573007350205267873876612212702342579533093763928002743779176365970132297708590079081548069248890874348734149317667809533346954773425987556035586641864911235516761087021003258464929184889577958745496064533976539563993974372055014055106870029815043153434413522681170107908264213724656111428184582408897050397088388122940595755541119333812623173398788202824393033788998158364504578195009430603059130359827373097195348038812756387245764247150712715967243840082421374610563533689632926541437673659228914537839118791384157771971614570292941544112675346603933953460401018382572875856187231107740363015528674759420350096050457716389428345661111416605307077253370520277110603050086738330333460467380463262967323899138107106333480256742585182096484212154739499461065706387667135777223738321211488748947308575787043931620564953112784637008051141400401732128757937162317424949234971622648162402063473269453900403277309392404544119092337079035603329286134558530530385976377347899033444901335616175384015990783612946828979502362321996636446737300348507315678315111147477051599813476333242595019682731108550832897092140258647049820071368657769946113940005942521504295392810740252969819190000956720297136787303989293368534386606022658377560010068277065203236455357244128628475126404736854831466654340102626591217650701318007618861033028713183603667650349047657697640047855612948657281112584936330323561180078639180561707392436677204827320759041616025354974259592947648735886413700573699132800259181195317359550562368584818485094241671646848161834234520947556490852596657948299869234585709950830634307828202152812042676886772832903408982979986035609712320270123263117185676759764134913568142146348971015755865221167332477546929250138665393318805225996508507698844747170613221665447744641832055792460562464346031356347471643392639557522784958268242245657820363522022958048540316836014006107447654948586690069723999299128597801297514870864060856078349175828092678325783765132141333776778171168108275668108343873172316986185184760067202925546628857876611733388534941685672561899839786907905555022941050602034848995552412706248682327100239005048778427426344800010090945533301961883497932633885704877684664727607617868236832470987160678172278065132205856276326316729206099907952017459990798089436125910597428814597036126937267678495261937472003872270525464629022277494173847503061810139270338345122414006157197589229118999655572259528848174655564668401191836221766775283399525286024602408431986414746027615154537651387323792059953182889517604170254514798046646719322089278269795786358962555022235325028024653066672694564666320209627526109792066844186312555796614654640532099328525520530640792350554926625447193215137744840164505499314130297673247898013169233063431122131814939045127547312664045772700487892228607670502183588570725419313616329597584771183706491676408909383417045891940954601642391391116426080657893892228724446149926874129626613215293753895337603885340311016885027561618199898309152780236603932460834490868624199499707371243595282901882949042909422000153292705860017269852775916298663887189738581359841819940793208043042818414166835523304414132921168270755882669546854264974154481940393871677035304040763386752310699126754735439815013821126365219040420384739415780158665329378664573338584682870795728846957556697639816038761558682372222627902255932791631540117593369519865989840003307670434802036437111321960186132037439328018140051131592710971300295641834229271940044383824317345182900341487944140186868921147412714388792819008090252464562576829792611909605614102824962517874955950156792847537818134194053608082445893962670133817177625249687659657401755864936980920876802591288725159129332259098679045933824437616461888352589984953530238403990888546505354543534887121252437818607575476769363741745103424110001375896327365001347518726713162739715035100207915095081679597584252426731442638949194841346941678098295942603000683548300710348748871539779795453845943196903353306786046184662182675998464839858107646950447981502293759086994601051991002161434637128379125078092153287909156162984676723623472216961513423186484366866504427693875739359711857283023809788715821789777342619723253009119070291208735841752932007157543522088607136923090994009394562683386039381444081594298871377287710218405910704979142259919594416141902286388021725562095574090780771701382298667289525161027592403224642232404492578913662631039446451242394882735646310179206797842714518898492153320481182550531956945695530322917258498476416924025501575955908719199511245915315993619914151179736623739966129435597426247925599992611598685870346862072490707025707406929161226568494339636626406404335001053155860195838840655102374526474264886303010127405684970043454941885762454765449085834361416852464510355214493645068436970520811654185469517920155670745028636463313728356765580784685782604191222988765559085232974757923353718285661740484374656996832323749395512261074715147602697284626640360947180787792501521074274139441664502274714321458769815919353483874386923388582560999555024672747982750051280399372288353530740710889643194985888324919028932790204209868691696499076055919204049368110023560240635283670997763749888906006331934787632316435289402228784806849389443656364668780487658019046374924513147894498044703786460328325073038674481802459853194447304161443490164988945467859803936136017552366969145791046032011618234892884486725241903326549622782850459838659971116956302124309404438517569638446149984720843230873434231347917672356708068783583873483681652989224454602766589651955414294962008774127201831379593657047781464904586414472455831333766593464170468064247511733488110647567426350188133110574810758462722003576928723258138118024849044453603381976978976428989406653740684501261544576130618389281569302072010894115245044447073644980339092318021845967563254625946893361111911450987873101465462698790263973429334206391158473003018780432024986010855372212638143798718040387802855726162887518542958203934754106484435590237809966707561076179318765144979798761742222526667167428347629913021446682119126667275922999743085536610785739733332937095678715868648410804428313508361184934195613421911242895235367050628877843280653536807578778792572141498477324943243708550079862729084470442394844744610794210195629579000499899950817742616879528273810095558758643347962325909097345628139488978530006151144743042843632713925787063779696232799902825573615463460839802907316998845381669656067110626983614059156113131422851306137378417998251819486712760917079039323664492986806096420128031229915759839771409621400581467881054689151734877446278901994297710219850335188253720346020944932427318552636007292817063298465284870149947215666476575411906884638019927382574330062927750779989397819096599041089489172522497595618166317791745681975283806597040995358761937375145106184799034805907882291213046671654786327680584310087694193594498485960263585838667960227250577930355187845543490817836899000381574389027018420248021311076228731697785786330425602112343166634014556397251829592787314828912069414756733949876533804400240390296235284221643161720896783854847110705372761057208471706388057286076052485722722154131041278304289493128137662687933687914528566423894040201461707039304324687533298395109994903610716718755687230309039533217209110386191460915171846542112710343084605626052581576838215163273802864204435505320719080599009091586171121476394670192702395360789633774998938026128071520771225554493892553884624392391485433630677505592635848654769694881966476276957245828392668981526124757028586391076278211576555897048984033187651278830701426074699185401078327274672427278271049960598749820225845630161701069820608158644419327477835913948512556122870990082956256768010521019559243629181721384562812202528318396959731385562950490319296966252032345549057476085506182516284004827923615188257463418028857663573799023164457877519283521550035956371703509087421017540188305002335241904769121280259038211464580216246834815636253153042204520519374935719845188636791206178863075289428009673302924974374744226710159782146932843515914948326867385916947866073542182436444791329992590410088487580414652581922065299911641436298885072639957966669876280883585577092667742150610705835539236051762393672832964345123440564711776853578537557286777289857091185307066036286866523843636072638224759845573066900832381520481802718485796549981475524446644174564587351368034483708615312006810863387877892703422123996674157543840293164938006956916837137214562768802855986290806852977502619105678860598588330234994987404356823765955550756646714294968743187562212969475297997713211419757674011826423768043075157323717812214423063848309221858205384179466446280738204722926032315062920284729052298871529561672267319952271684583475461448688469300965494216183119409763220792342341428785667196205545187189945354604479463062546001473298758279874888216520882713783823560220787471622830027477106886288736824583351418450495418190442621624286397803897522966883671406784517012231865252670690504219761246074058468467291071134529401771128341364651603685713945712468303350032724528487265003848379772397443916735174612330705269702416511933809895735111717550098378172708595557921935365815638777674659745010045048550919172701789035893945929045196428338563482156135026885439433166703613785828077517667158649148055868615091346630054668207579488118770920542999678449889074410352926809525425085438309120017538217612568287731083853521149169156142321881847621282256482319607505041532967537882296009588695906938747110740513640338415714192285101675062420240878868685642508653969459609545897402226137066110699643710628744447476515507656768112066569344682158769390580660501344041514859170276778029979963709951490856486046813963389744044994655645834859368347672995230928478121425209468517039002618704416263014642978686431066707177075742950849834923782697938116176419317498446317566733236761255186993517409601048847934317899024039982421679518938661262520956245938903873814191970992067039462607182622096445665124086497555196355958744275309622164228208728744762715923470933458392827441911374681505779648840144054563729241493401731928187190233158383408580203708809169899637977656857211348240059025070428139513086539518049970000798485268649194074887980286356193722350567886333414632527367847405606818645858679919450482017105718787694569961318167501432489707626719697852658001904844076345609991779012647613814492575225666899969159836974525758007301237746794368626204143022938503984586881275059385009170175559488906484349421178329530153591845108149979049940675892175073625428957422932139461400162631535912832348450430756343815444585314460875077700010821725021164072287995600842475833190968880081988513073280423029993524571999003886169480042366230639005626800766422404511503557386384205193011221184965212987286890158901059766745716755518396798857324725653538550655339324743390246804405348869147013236332898961384414785974943357037721578804613512318790158336953828386902797919207575666087978667357856384809701482314689396086373922065116218850480018188536690788574625365129279866742634364680334437243589130399034819882389583621392542650868721157981862805026824681932789539098158058907116932796626200247775446490462791672073359189087678414203672918521052308302605151785989238062294563507769441664708178745509032676663023469392570588227453686753596686590444758557110630811310978925337119586539315571313064066216715561973084177843468535174375299400121673458185153856474303037326642455749473907995959946597837142136424645402285422505485641185283067281439442785107613628282696948941314958200184107276313192084043665126808209931384530335597802759776115018356532001991032659864451822376802766496330534497121254845230053730799194129213381723163935963943500904176673505081571441287859593746303835642531494321914193453929780512995052164135735654002456695718260642074449203069381470065156192551138281205589646704895018051087043928804053751712145569837896187620871360935007044106873597967811241539837297725483288459816287589309024801858251438485987872506588526995111906329421484252966294450755167874370298090516415410874605577806311880949371683848799834511127634871016915907172704253927326974657327140629135863979268795584498825531481064187311429217406664896789400220028802953723765965595998936669957384986997415829773250284420411628623478459924841372551188043502517989314021334618661838600881020654148498585663885654245378319613881722779374328083093297647118930365020879767276669811955525957601838987912986359330002684080581339352099907556699827121409110569473571177670961944394149052688155162054481843986192196897258500687125767785260980728862008503872038825233920028414941833013536560511059518011014515177393364289170589935695568666890614889500148122007571060102860404422314203051713964901277658317858516230720697638125185829363519673118644648740981327860213513706292989540573076335749163904970631794863784577259654070848153774468785475854941469411938071313993879446210659664861243178014599549102493188945725428005642790406655528395619437932291267433787771880150973983900212173694534597970771836264260505932268376412893068783337045545457898373635410023667211983296372187673539435116168206222359992324894035224162873846867241230697792661599808031310294696074042803267444121104690673483952984323453324864713486764978888868145279376652161132781458288838323521312713591906908030408994960585917921381891866034288522475937347941485122941206402052084554438062078183722467854157189419571125362050840221915886810624253171600613821986892929615569005967741681696783872942865972569481670004484024735071860850612834882125659195664215837419167216297819449729340410588845956575508153105196295724090070540726641463341703505845473204801339303872084927479539891769272280656040765064776253226804591708076215230173913900181759036198000171089501910047453306062899192714976743058711153577940788159839264688938950782560603816095493787386689988704431107312090628200178375610233502473106607945544031477691663344414678357277272945781171872792875730871848038241246593226236561126659657424753147424208901074001385333878127491081269992317679696250746454891978225284302595413630332670500203755440362485700830144765682351146282003908865118020340961339983949274924551447839708187267188135244249278684899015630252964211916689332441920099193146564519324539551303501194947461093461363740622518128712454818166550942771056736439380873929441840728354562956144150296699537209390138882264204085365208885057467805427943804227720734022614149359217650613962083701574664622524628575559624761022679209755063520746998552048830700403266240570075562291272468432868551578988553299544886738287496856150125969025388786869862308847321960848947650513428921190697406331105530382770310002606245951285833319862637772409091318988735054458211568359435995896246549083572132080695957913460367191163636270049407923014042309481834243025593165044380189469117497727981913329729315551723557957546328493476351372566173741121194737523974494348767847220490873613290091038794701502607417446756125517222916174791348480043412235110308511334816617806256421428526341793450965868040371520271350978831187014601775133174628308408837577516623558892202121896695497681139639362402507911639311657753611461871722791566178763410224246975375739836955538830922385265219622017111167366873734755346211306823530680772837236835890211798304648451268955460270710306658346701172842196365234216511427594234671497567645557670151650209649308287206881158706597332952715029716298541359612367123899136921510062363513285493697565373290543843908117194647086261132984925453311160422083725580106344949994057085942720688255241872581921503473688310500722953485883399197071161486317169563557113697270680447641437435556013882381005284298915040945929787687690045900064098690119672536158942215586873468623335095468647205796112027256405092299076935681394436029891606788988861164593662377870207894832410966161209926452115958586151472560324638940910053889544987807297183951577748814959928461293074287881606526440463738490710691131055889678977945394337220257826977595592177307589052672528921845294293208872581350717464185644747541091820640991134573155023059662185929864098610976643833583595346221428548855154059675979423490128813417289121946029862123511020129056923783262164043484152577134866965048471074540786946524333079733492102862394414833836460810097251231702057543971265329776229358579001670043877641964793389224666525223006603211420633902229511833617210408122754474311451203084355462095394371896996071849960156015236616010073230582600344785170468539070302550686090341159730731412826422115310149217192447326769850988926258058394997220550758244078507591198948523622944852421587950953704963090134608001251846568225376264540346071723003123610015819616524223186751961466315229572916919263852833320217778256354705040651877333784719531761879507139131285876948377227127295538788465378317105161350032651305644413100719861324953655184799961733122250692316497072012123635777068604639883931234425520436345381033773914409783372925440721540655645877921162201284518388162824424013970533353455428123314331291728164225056657983494336291700268297527707803692548903408913850242761348652856764251450705489093123935595778422574092982692985084166537264798313596463129479080234362593112100305691120356529983334032687642614258028475628626551110517676139313579782430477543849071117685820050945595830691482581506098372433661628907789621143955019573528277793303823914704455942513700356224008913632530530865684505916762546391907364870268805951730356928045956890296973685547098781548478029320225811822845893231916814840648611009014718522305277343270086754613501735237598207632089575954830966092478764163038935736846838852393702626782590729109152845242254289570615350993602911004786510449188297149925639160169005224478406139075388945788020557891786493829366046232053102835629605087243283566560318215092221158515960171679042364667963608077224033660769856559762114720894928413208164191842265616789008171477362024208561319533204414605638571816571838589806825232851284511161924691395506269877280841708378147306607573187690306161481730965094205934992752004523548705880648602474277737628560614685331110148897966999740650867313537724787248464183386993811704525945404391513090756515563499567607071504956860088978956943415164249449087391665218717216472102171116306242722905478061148861376880645033431539617653209930908302907288819391651441674509809046233385997267547885770938636527663904753212980007393075581582990707265580460465451284314709785200740410716871387846192524647510840932376705764300147352100444143204703379294863004682228838340340299851064239779256640322212442071245049537359205300986456621885179658778070796546484265276763427433618371311553841442703841020111374256426975856439563777516439060360755731480518772389059418134424225934071115017601047910347185608771373933204181126598333823107562244919467186353786109565186042476906714357992896833022627766434280980437839925465766435932030834341884292152750223460123617175445367711641919130424363650285653525308437653945699575838753681311724692822753215117230668965758180038426023345553854950706703853402138852020674080376272361294392977855248732770300314465805953801995615889306496442988244750062276967442308784773828362496834720817298481955725933816461431119508429066239011524836703247118491791870104494287955099583889431493901630794640235411610130308106910826393484200173323693404547364592453455197239025625723216187113136504771734369515680662183732832862290333331106659772960425742519265390679115060637815269280417226305154098899193280950389580969809863184705643510320925274699065443041317971791855653955495715748220888316509991411573336287159109049729617568947878866332141200389632458587856159316258466706553790855070400684214874216226526061547921118326909831123229638865208608635474579395774101113597024605352746049918569987397864613338252443421174181901673974036750838140750561631244083786977208751941110659382826737856077685940362836471599625087651462092387273314493898075179879422948276856715979110487812091867983829223837091415165092282914138616206929283312848594331144017544505016321637721987609461807206117561952935313505128757485667329044214663131872746343118654103918981164392660987536997821435950777194620450826296403812177785088217835887640836796594549083593393729339359884594022954988486243746741781052848744548173457758762652609402873527780930628916026155682598714879703032592795888359415388708869291788654125205510433950333461575244074786009812068914915960245716597498760599917645368837416728954146107199865811216613922032374766945743329489158101667037511634735084754556194056134859957098268565685206899454570608119292079930900492631224113434957762164897928445610929184245881450393782457562081665805807580942220538430075825716112756560769942717367720329268620605793674794785705492377179252973496805435017233755067997294086113393430616643755488649793702146436068515659585369175236659551841304986937864299415108351716494951356740767254138101032052263979446155880203479202210834102722547096616613838453735237111357653916834591111629802558691670821133875101841024779918478180728249540992713815868271550978985670135963698066865180490027255511918202805885690692812716391523373890805798388441973007149647877446010417785033470098006635295504136674202677767499207507130397830245005095390193350532198696641420409242361939541076599834411835284618980867912936167902992036322874297370072952036316755171450261401058625151688928445028590384860583570103321384425684486384004719494495044529737103631892541949259616010226805287361012089523032372293949053097654305739277387836418848474645623925216492379148414347918631932403778170260021290368401404094627185055554182711701160285450506930075737356656156116263712722828334466513552672369854490877309957254057632167957483856700193911054710240488295695961033479443523859634137257603001086972396950579799124229323836383934171412456345101105055486409022194395314803173263475151768791534904971609193197546343649367406281046255831800155709515905454342145120175334198699595839626766749437991115922691646438298218338602881018605729734104404839816700602504231266211059401266436043841633017083688948807639011098827173719838578815742515525753745890240316973807959515407026603224255391432376342541776354594249898579716415295624053756886042500814715691929989311519881157116850912309088047573232855513474819245045040083075330033634270852092464273441487114147063086412572467058331752889930657436689771412730223936384226516109499677557385442861135507585553803786932648986144964064891039332265515243430599294083168157423391031547191406012296003661174873932679189623094900848808379814557041527343699919902977608472028731652091314059485632783887936567121341487973133715125456814956421119879880181224756507552919459657888642612881514290136274019332691069656515167336391011885151807252288922855006780525054285720266125960220843187224389229929977708227714449953200324850878049439511917177600137995882630642670153974244016915753919507667327754026700981846418520674516704660295197004404510996607176764739990181204492305091217145521422564273488299903713348369562199169734182882181399038792139933504083242803904963993050077520150628798193635878235400221780304183381748587954624655549676146812965485809905727252808462987917610152155676463653098527094453853809662614107187039718516026050534987926146104165058346610272837430561336328242315230733386605911327621431560201455181815260470931936945043198953397953044296564467827081029330246716082131462998542249127876917666320440156047055638150243717294842351880576307306090510899611490436658800030343564264905328855009928516924314329750421251983953123899638127697730570240520237966107673131767122105460886779856843070350022041537930608372793072772437354022761375268932190134495150150409006397410776626547218251571052241389979748457319549185646292480611539582829809403488476258463378405505375033528306976154023773362329101145230638522289435940926452796517243052452282661922946054655770877618103448664594240971278900299843985464211386590592622733385293794398561175281177252282088820631278258624157844924354757461387540392922947517498272347567013569249585474873560005036024583205197009407273497835467635236187537654514147732275926923681368479681077192089856786433157974080835277555368764219124019582191559505812540685494228509292305193077288452498784783348201889186212426982651387139498892400467381103751565468357446549912598305699974979985266354106940775306547320787343437941710692285529845232718760460678063656561759402851357107084851657923722427216305510422541819562410785181063738273956260529572480839991162387556315974378909804214416839223503283543185646869547279140460213074053119943622238257914876944700572993671609796617473207059620572138745998595297293971935628501241087265142336567877100035952485977579925626083344795659848702307212919428176777614190879237082628790851492621128381875379576914247408513256102829375485902371042538908984921066604960676902432791389523352164939446701114962036698617532072329147531667747798051515823020277107443328959713052146067145891954488856181882164746824008490381429066312293957878866431233753569272629262196503017108917790636748976317852358172925314812883251573477377720688250485481864369385621830402319189287810552305020564601456243249364948248274990225769489977688687013090680401954489531674675397916517098754003879850023247167250537156826778209195179025440574295469339620383031235354584234863714771881459440430227317840438336202075940832034435276572213045748344895666594798371942363610860249321219187011699003289444443238242970391700029571344102420544568702524943518330838667100366216035727636880340351838530295519941895360165173591114873061044411269352100506892112440560059589856168868097450967817895553070298428436328080871246593121901742803929133178725099814139799396955485652344747080259386833880385182661144859104931537781162351369170236493135259498731013135841906670307575013496699358882247855379791711319111662726236505127583222474872085641228401466349647598928867195130341415381819217440749924633876389304976474834955374443259404987080640852061748914752046625925645199548947290370626052746669021888216952558148479623801551113105753644872897980841399406185184713338613589058024933003319590475699568056981642343092046310889704606268014483090307573450249152762460449605942990693984811866043188621241835743900940213142734397896576387560267485293209916424368637857057894829796187283522004071213467337425679072794895039772823090457787707697047679843135619008702391750454870923214968280876521973165977641415955840998825975190429739246996638042528663357015902415630349939089941461204057117478488775736313196132284538744847511492983455391714506381328391994864303920984183278080610859114020031814450292414145334176399827885468718301470201688171075675741861043858850323032176891581361837989210169571049060255913780608063566316726366775599952935781011612524659792493999808042189665446757804640842661231872431726137753464556588642990120838261964890990524256980510468430213883760827526946399294641304257472200414541855121125350796748531842946525932278676754376209932925186887989879793675591631592969902809626261944533955863925136488750199726932287589575913658486959729854581763205047088416271610715298671621193404404572775431221102564938553787876065235451319306338538208640821023124611114638409807363166046197287285338368737814876731964933067751640229773958480280482470655795109178211188551904929958728819517141109216924591406843663550652149924830114725549196930344533091005164766630451129788534613377463991123875613687609253758739216893322055371389673595202751751718844314195190989823304446614205217710901511365495102927430742764226253016420630239258127029688895965125815943533444213988484635881869934872342242856216836974970499883244884303614893477987925742083585321449518478467777654657381376598692346813365219348502661045562792089719613079634933742471827901031383175428092559050147814154700996962112361672425667226942515808662217380603188397882447157946975327929259753148527375439514651779040188950915243251507982052978168991295211536013451373505457703418703175403940952960546291372523032402430542763261474921451961667868082679394299142615605631431579111217496570617185400543312447527938052522206872580511096905278835135296551564093029700255865652525199994649197914051996877913361562567730703367459394715251268172411539806602965410646912676317908431063961695607114334592562844677330241440850856587194126281538537713608621929091461582496907194845074439123541515700800527819864268915325924947819274204810168090535423274313142320491566726973998802775753722151481801444008311209234038567574366664659577726033424894551992439287045446181854173950589419196501057939675061014273701467588989916436958533482738673636126309239133573588129318728930014195416689729783442279054059572299736088184119006236578939919471942484671773973486588555696407973998417769533706584206184509265740319331344092730425868812714666780657358852029926815937862131540750321733669098688893876143873132975702848046031973292970593919217418515277334391452287913549975786580551479025405375873826459095979291536825126133808965653934370522542729498817809807620213667676418219613679171640949568344921411719767399502970603663795702875825556889943485457343855348176619960897007130447604894506803186230940459956784795834819094704293662472807215518839598637665454045067732891797653197177754827694558580247208155144485119147097076688977584873843866832569203560529598435082432962617211774138012924813684377947035923168611583285568755497009335063361012880262678184598001308255178660855230558534710287669491912293623064611152819577426422223529347573433173651100191764662891507749604830113713451037428673501000691677487911284974822353947115290576533628908849601150400720570926762242442783643683756347508312397132438175297379759571391366814995806828293211974505429142350021040364079849429763342384863589912314732476957902834247942439911811396418272527141585052803912247450380746614383751193248860756772406995554130907948666314675978888508613244757224722664867705385403745510962202352356348274513270800057175765853433379474962805647375214243073673501971609057383912952471498242723566451421822814411299298950970483794019851698029474234227091620658493012766564982356307438823619935805601342908151987679031372419625705277177500393381490938988435000114828951778983678169057140869099662425183548433845155049466397784727978619446534000915825585507952141833707799600364508533185668555047904320289705112133102754446193316049649054564623002143713238452378231532936451937941795840911737023384661090343652023625477495523557944820115345235781752071501183273773842730519490221232884642815903796217154762282505717766191733155134981918519426313936015960927833453175823338112886878183836290438341713384536239955388416876562489869654766724423906619157301601363556136605357078918775318175227398545925275366079469464456851371648480517370981150555838367145369312536326387135339924886882073147614523054821896653096888243263126143534190014319385273326170526418762000776916032364258848907474360783915835353641192442837973712489982093612539909660183967063409520606681567828140662608717993993386041688193068884554953667037154232287813658233978722883963592872269584529487758697646506922912598429897774337693771073834554289710177043184038901398453687162210006712300587688234561404164067251560872372763066960654873243478086508182492342558728103728287125317392647154901536845931087724782468423017526229396177009202781850886736582693482592235969909545815270502607218584662832615016834149017617959740279896925262522385865617220240304929356360649681308736352386575417816633985789152039133202397310158727530417946644892598327063691560302478386617109323161923197893330815958532177083950542203127845683592979641813227347582302599093992044923325687349184946057064002998035798042516117797213593096612469607199267013911369873144739633418674845748700789488981885918158125254875027947191247949951974042602366389585908519096208218417273134468007380891149766186029936941481203258127108016241190035112095910323264840550686503519263512513768765620949707206274977322947031504171583130393248127502248898464000171453210915318885447794154747096274562588449735408036688898417241505642379699125774007692128634069900878515904266826803135286765643796709809816938667236435669205625190746315793449804574879434472209109756080720369598109669090043191891171535184807732584561087015237861064214950942413151005466600532264030117164211321279269411665796517701472697307590137246774179957778479947581731504798395536808690592559281542313500247169807795017330490562672507346465433366450967311220027715819181432659775377222123321746764883957692261219795818433016833158023972234747515321669987412688000929978356983337126305531746980228983163538957256836417444258000282596458573008283608805060199100259857092590389556031853792015650331793398298345985823092021620096643285512326414915967482038364600333681056368247506303123879828196727743123659637516907558614006139001067075967611352966805310095625540692450854008205383823795031376934758699579568500980827595130673840861820437989037386911109400372573897743925382431666426164104092069198362543291246986486905530448653160238884324612849404017194748024653860237429652415826521554269095501417082417807001707917274263212777761538345630533468032424081979393379612426934278022247520331783579436688426181789627251491115485728914367403991048477041637533828781929428674906060941068697756201898561098064603153859616722959796746912896898849012501848290358578084761340777161037216323033451915364988691563217992435386415178858910689501029168298800276492232210120997005722482587042938109405228080994790352979583773699197708137944826991974458421451650398784286764938688565964438482963412676472336315262181766946884381072106756675939964250438384417280417164453592837850319127493838723350470883393562352740117813783453742937925595090894690338793832201125393656512642538143945976685222805832972348815791801230278968414937857119720542870785941766177820732194973378973491462796943630123193608956813062405253496775843333550304416153730446723615445885000977462227431792903796979323225726394610833125819274546311554021484157036126835664470509840709465608034274725925980977356678731374147466831988431859883986415754706322438059801411135094759550704743385109480237602597482253251175104139605902969789426051979090554938026468335083105759980457126384888747410605687689815252843424045873862507018266293533510499594520381887636420918609292376903820975975566083875484644875434312926745535381025056714334608906733298927155074471695276309569657092030021695519149402565905752851503398592346074823067627256591824384114893146661214930397270578235424844119620473215794036867787490267914018246055755927276781971112741032194297007633806494747818688385633900850857876590274336328957244058440005393989298476836025360306537343408398766659317510319610402963060758201453905582050065889169897629862172929600841632702204242009582215698707863317887946766906184800269415561757042595063237372632654567155735123328935381951311878808084289726054589523298358814974468048305697449558329138727655849204974910499404292230991308701623139152253981706108400404733047791970858928027195278233504490253202432450123235910243790403876185348954487240203174910577785268678176564935046377541271120362154245109273837488043993642315644776858139434502850479069820912737631258939631678119920678526479117331258594637571208451988440441189971987640159518677502983064213568953206479958587396438403438182372945813563574062547716989389726856736891244713408959475239859379755976676158699948376259413911159048182940462437334647039231998929824489387954764303743364646445100846358284200366143867520358371476940972417273819921811578852085952153673717935427512094852153932160094094122950696770294788006278520838710139840575882590707813385055712446753803849148188012035830705845861996683081149440099622988230243775015873855507564358670832984347342458343426778234751500867003177636973786463078641801657843474542788908144883862935763121934550254505252411684253618730403830515724597142875418563145450642991256777500311968668375411058944019885394268484685590929211851662160520723032926881253201681245124395074949307229146301107560027757018748256342697424998465444820029989482271655399800434211767127922922770921997985403942394465006161853936328729991680589375564207410756294712187131196415742701755472793112371951024903470116742965384800923666535780700758199766040256347299179052626680490123109056379369234483496532489642392162383117224624447497042183633988630434579682457326897048935982058523405220872407089140873185284411235024312769990876063456272255176142858323010064079751391474678711057866743526958880492834486007645857991498095655694120686294169547458820146680113384806129249239011793601654988087403091012913101263307568751840544239454365883322366363784373219279059935827963810064165597790371947583989701264841061106888960574581204793175527208336606407905527471381441663618330515644796940734222456743563051795524428203728797461765538056516851216851685813420690325431647312887652158553929549326040711054217181138242249206393389188980595337674011476175352430343121249548005993842870637503441821684300927781557995620583715299211242825110932864374119540487198452393168668762077837812877660916365776963022970766578269666958735430449149777149547435973827323177098811220754730474931918106881615104113796433275414570252739352718680989418556010206067913216256477456103149120268754049761629409353325965706328790388949773515398456522919428136863025402932476657706559956276484921271014618182000202047088567171518464124288988581888760162671631100760569390867319367028731821937379785801738125228912950969426433791611147305640124933988553213809854919302164207788366050899212663834756547987416073363029289798932695589109699720270837916179413712123252512904052258983098860207170884752310201204760750656860286784585508840691635729529480138261486764048530546405872834261088363775046640563881242797023853551498860535399933729033063812194367182176449329782686629737007454169204215144474872490251292597971845913486296266253473620660621341026244097311896668939400299326193393801499421625977464861252012167345626621044362108289379220387277243628752045240838863560844664880789126901236472838493413333222466557638182464905017291903313583723359718612604250851627542489524185937905391933186169878695917473657803076494923249136157977511157756993327613070595234603558232420088908148170860309784040040635791119625888949212414633385574372207956064055681416547224027495811629687549402751938332443594154246623214575826100497426836905338378990201109887245456124763533242062592139466131406263229175954180609295637836536713934707450232391021472717949059598026232166480724141299829785272701175809568391445180451773008198131658138281841832304517786438858762934884601154565041613895279615446259402360089735110768341030252177397602277516590090196937629609298272684466282404968983187301581096683005052560658913040019569412405360649261633839942698618250741910552165931428046361912905727123864947863651300756386462107396205754386999606979747736549846633328261599701495728279289493138181401422661319532891459206881650153640686133858949962589867193479097256243253494279573439895947076343135241537893530587236379754641449022103899259374352236062441068127378088447373592707068196214930514459948164001966012068680800330490788630092479658556948839412076065982920120131678741426285526054737972888891447923758581718659910604908155911068438753922155806847587441235818546779709783579477197594547152160944016386256682487959935935101716691139834550518006534309088403472392999287488449644224438143452657645557027441044335301378130347904312739473368185390413120312067626235706210747847821247267544411829799164757536425630328356991868650339620424352899554291217647125199476804133970519208506539249609259741908074176952818063534569630571037213758466575438077065792673908451399920128281606087180920336920624278476509487901823080175324297476551073790867297902040466646793340161113372502296110890278097105719863308039515172970427736367736149930961344746608221754599857218885258364297130956053340362224484594399700529032771319245157497433449879658236097877179526902945330785477759784825046896300390171364837352287336967762764332223311205014754772865652045707422000062235430506459641351233725167341399575954331510064827786097580775432212095625645647524097494546377111999729889238241856676511963606258822782896610140929350450450551809447372159760067693154466419608774921948239387043383495255215214742716653660220724823313847707556695730849704439055292638582499405322493117294937260120553341646464668330167561171579488207208321626454611180680342390235484174718096490199939068631959857689492517123298670053840154202103796964830199329900671845200698071459670522487370567472401994342113413664408773909886990154269396644004677306042756541176246219939362782311066069966942097425210383302374813142808024223910422388062505112181295381769564282864180436771022335499601404719297472081678143194402507376086490835748200536131670260009766069100414209839473668409997911817137204074418216981398978779607399477192300488960936361702652947975007809852528409331131600873996643797677709402369226340797571175331559223941159121817043013160758747412480338457109289489071043813339426052616390290865161399879923612252412077542224447520277723109178231892542106501484046324861119367465916049369160455022583301443966385514755114852020433384035066799057973961592810935753865142050032348924263369461651850846118810634198709827092167246899835269424083883149926671252270150538079825647101017772002330206072206060939373209505030436740047384245403979016317305765692587164428580204907236173372371098595130127499998977995255073817266524107278035875750332158528454057996228175535884354792584113116689804714554237409687394418406214471266724674331459108737239078228462694557956424888732148562739153824465132609986525445841204698476723737231970448720622063716913508481987931475349821319312590262781685649305376507943468434590482902794187505644218723685379182827824959538504522050889056222670976319644758569226299866078652604027126564962332006995851723997417713573938102673226933498094213720135294662118564817524065581581355343863482934194900713135326601436213017169428575528039182453634387534473417275523088620274899102982748807894789522918116782341347954401795159689952698151352196739180385401277028686236846181192915866782732022815502175181609916306424888420364759643985444229515710634534423523368555866868878045154006222822586850693461613581532988188534141582533255457656033190714484894536772547244359874518041713353660231249060968145896052442440478194030277575367629827596562313048849098270060090492657540220210548131724669300526578710981585840070053154252973968999436826542449098218053029306065011674700167195055694170044164633914568350218428504621984695545335604548885821029700587467177282322540296260489313094652146518256975247625246113041201120161952891495911301549332922834869680283455846802589332902633609377765651230804187364496826942899253799483764591200119328830564556611592682082530266910791101032989933081909755343458533585766887314341518215120340383062441796415435660942956967618932641975244999890692709236184099499371398395875047502548144514000503575802748461464610319700386050983242038769128392669560697340164137963811889720444776622257618855800582403693977364508654765002036663867595570461975550519266369026512926071442604247742010638756594412005376818303107573960368900411012162574006048276704718247940991015341062982273674975631208723225235373866942863741507873645929404925583598010106751818005014854516402044712308578872899572780244777143593628378923107015395419412689634205821130297689034170006318048282249049527264663311697106901891422831610654201002747384314682881903188447378231551070360995740122749525412867851531694002619772466730367422676363314670909550584792154195883040810629345251788731274918995315420058167827649157926646774266599313375344348984854325071694724663864634979547105508562601356471438974653548073046733129119188077027848759985796916683987556806793235480637508874347037338958421282859678198967995081222074785473034230210429423531269002371576709577302609698658700644572181998386985904212767206349569798029154420300063129913845021718924895958030143360523754967579453762293782052975348087506816301736002607993326745876123720371214926393296367166482005648821194428909040258018627397850919582168988745949787111238738510730168370662419818310666684300802825953985770810587046794399115477092414384354078262027751795579148391396442663155428652160625355846521683422499257384033473536346088805644476444752662826920582034899989598178699034307972730663060268130652804848295719833341426835297997453387438867744981810440110170784972052231283975570197854145839206557423390234568501691421643053734014543289062621373578019091348633694464078636397995858313547342947968323344548269467183585884946409734250009146368606618890535355088641543505955212568618195979762488833563284258809101848049732764290007099130901905957224258081425687941172389176387695565068855166984456574281326663314847840725476884463404192180226319806909518813864914767247746811318220698776606640971699741836334714458632849702316410600119368482370602562990620782825804489175754354097640124136390693953157956990322806943999740602705652675351266426517998155870198200025601904868489362424673883389208663551009684165428863928034565404239768844071948138119788385275595690953494664110028582347473933068224321179780471952667008316901182891340801411093355243357407497206367992652244989042282190674269092893112612063730024458321466435072409687436162955099894805347935625667454864901034077917074959549102904424867290575067925331755555315832838016557670626271003427714778893713790998003865767669240689270714420512050146182492194461294463474010696894212398938854152195891110333631333272275382127907620858969402899889881257225722121276902497503143347139415094717286553426511287725366635232613507744332480645802193931913029429153635102624900891532630680507603879524673784827421034700921984888261499538229820536343318655491787968505629103486555632004170471709515332292735610245550964547371729073299138081982744247773335313895159990356875794696626625537043138243770479100127985156853686480975521936296254007853607428446025106809280655608209382924345668732985314081785842569647529371073630764993438706213557034741514274469158048060567320096514755324271934034458089343273379698075252981793707369085654437751379669668077093493659424608429679734428845381804590611836645347070172256143924878060922294280977864170755153021058007468273354897295410681642095688956202193250225488086420761243467402239326714267714635639847717548674228681399718376448600420954116157356046963133897895424478117811812945446399784130166871878392178658188271264249747700157797442495290121016104395679319206090608398900958927952654225788419238123340049080390402413882226917071175374064100624194829787174923674272407784162839224190897268174095170950763030773675002479152623294466956182673497173977987559992914083617396341859128895211879067583215981789309609631112849733311784367671752730094241696162860448360980729304655635856682162360741264157131803819965085713085352850858928228790525873611532545121095544191014989198128379478731587030074569359088305586441105919219047975120947276534787468539419335872268724844498222757420801641406454824866878027677027323823418075040539311440937680209415708020449082125084283291474648374479296764641626302432565165998341679128225583699164559066209478759479477471033784466831980094290227028035908777742419463395234792519241478967365015726908971362742824230439795401343796792909088234838586569759871747825849493599202313133297223893920033092849518722429685355881316786803241450863355966449946428583084826360829362504331600632013734290782165662047759792949633733712326819074923330035542755379618606901792355958399258829304841757888278965947902742240172954562083740727593888820531810250278950386410833021090247496314905625242020541167962779210204755262321344020874603065297588703911615337496184692971379522919485846938069131745809088897594832557098370852339761489331995059155979830059340762387042383165850134042365765153219790408215629332084914220755494412720869397542313123664023622070563847574794036960153031532805765490098973608955371033460883342321868558836035648909261899108771713725010557355360139151117404789131522341323024407021867858343609687740500363045616623858287291531236360341622416559531348828387206731231983439940553841832682122897988537994710220598479974476611950317172538875153872664990325691224337637069863144986339550901371194314963425821202804871173026258119562186551236503325035748011799753664084693227562947647671163187455542741725507129911629590540394264710139721986048891884822370493326523368340249580246000921339917010834827215614268025673774038605847178007815253830221684324769633746889264800168078560596266729512803790867084161797680518031350577457328375949871894997754819382421903673672680504122033673594234244491604323933432486107384133599955901041893609192819629604741184272272465288605913321842673426369011820670037049463987041387425202729978340605717867308301375916698849526582767622676970649504288693693067805901786628689509959318000306799578852113869454776271275877237897200725386685624160438159372567272117698257754190414317189051293575746770151499186555024442023729745362268469328237373573303325948421767091819623519116250142533350892673116068786565452915907165884193303790089314417619440952817761893911302784191585688215480381562210804424896330240095914251238518515885620987159742395665425316907331969346597351111771090366130983802139460570671671947408954600332127982269217825205604441324719877123275697380470520408108748377786807406929884936619191302698891477517356264378990069926021464458971547744993359687841934601678796136482883819101169019749387941843662591907094108607246753898080020819502630554852684604214278824390164001858853738413852484063219080898206556678227596745933990840984930928137995476067265030267929297362914980568451832692468939065050671556066717389617925710410438282758189536581727241518545603553701933465234087307879769929567906296345153680301370760231799762289513294920100281481124333084905568143689537392876365971106515732118648127872035101455616269432731208088501178162826209552206391753222824340569485377664290961214578930023014414431450373830901519648338270218036352785339043263998898732979022133965058907139027465529728922635182345078997292600321330985670400797399911812219747515409184048256768246341621255860313322625096675617986966321460981395291142223716907964869869168429500119579517239117077364299377696952337810054177241082294578057328275064211970133990876585406684498021146705102348839990031795490059238645794285449112315503680834227030394130893284426597604344278924944347824530701808925211562783673235629435272759549807501369371769755898967123973942340321646223816051448282960499925097848667663734107959443028927316993328223513948057157409377279032413669276310199003032324154233784174352070620328131564422976579723697705420997337062025856737288691060476347192147777504106887561389027460746120494738622612827537721575328066477718589309057592749293594385155690274483543725355434112846526186518372806903774359588590589403738707340969776650984180529463599360525865712817037745180873626190832287762251729894473647321454030254703484166293106850011040949318985104835817166746360838080215272685119393003533660575150254642324762104346093575975769374336291183087813719485172724423251319379903598535876119339747253746108559002337033698642782610140407010368172530461617664553235670225601859334549966208757830832572619127927858145789678773092524577633883886205514069101417900412990297151271622892520498883024636811411790914938197565148808015620127364480562873308727855746558491785200312100491692739566516647977358336616709558395439603167489330982707039300770688797380711699544036101125648958286083626603997583628849871904477882954912411468920854111047324020546819672202634524060150349116719840435643742441311104812420255240083339806274216913951780111045343603561954955166635367789301551316023712901212278821517687408513056850156370585130140609418981268111878446670754130799172456614335031521922715274973211239516089400997118128366591111439076517288271608619032361703591229047198333552250885365042256252618303306463362213590103658825344467938995165357963653404304551322954085863927499470179833495352489849775826303619865016890503599299754336671271450445184972197664266520773245840382417614497499291733287258715030451147767817723532706773229699463208385880753684516569693127351352528795477375965868854718611977444785955075988970392572054876457413397997387620480999503171290006750152444035285592761026034488112741084001474884514765805737914185095454225542923851237751833651581792327175853632856056408242370050426064465091604367386012278301134622754599927355105748894551451552881291413059523136524444067247430283304940116012306866477655994586329802805356624302815907380285435659435276589476407921795302300528467116056708539499440129010327839563545614825414781486071834624340916718979641865158844224087884888575125124259875649443504780137163095287845925186970006586241842334473984639002970440686810278077109902722298871377484045228057290841850252230117718782931617187793811045045820523841110729933999574005774737375080954310851810620172235654873556838585374551386494608776631246044917380601691618858775224576508741642063850414254776463574081937249346804633668947247315596255741136692994270460769913966647342562590152488166775567966567047236432996382003796689352674327715691182118280458222597338813679356489205536515536135615450324997272535807845150999998053674830270101572774462910643104381652471563704206929152164948468676753686455893066908816295491466998956171223109249069864571619050147059245403570157685402249069658330611385308826313317976755777269198875215076912627598213442753604797038866949193494049395653145143630174652350477636674854548833555522659214458233689073247845273530354507774868178060066985039447207920739143247350695605362036448581860502219874072635588896692192307354092822092306311331144200783553160243987483109153886192772736636368133445521733710583026718985919740665881339660601259374147859855582423474183503757101208038069075013410801545650134940403208688024692943090081801250302298971208354197981702968160527737327668480697311025545618197145084532112292287748437299435200249089739149005436618843866391442832275857154175382164917787864906205424180076119607759719643251291334028176052116954069106263230142691817968900951029786376276188899771458213302023657462898597973273207521073199967344698549463595870135937117943627188588223671674141408389768082416289557441806596399697537783881084350676109170860267540906742086550163306762785457058379417602413222219370970236027336300768276700136013244805836480199668673985364690555702554570007505572491494796668402868225101139549639888070513537320855828329979952086996791806409975193158819260422577306775330568351711562789525316823880555794509231579025264947081594007297969005966164712217129270756337279557318242542946684734703291436902192917704451433192772962388914708565221610533216732462185067989389072583099303355071811987364060690889325285275411503344603556705828049708161584794893903926227192572747887328065117841720879466195816773219775031366139201997813012884534401907472176424320025259599520294015841832780820751674569193505521317410244922325655813506316444343348695991529546139677346719859203386555527459393683210227931408920356282993606094631233396149171663761414594061775494331358482479672971837334646286452684514250202298325743462396627269533742270068976061915295012976136387161011795517084361635953503049883244519012110043833363686893114311709987539930940773718338777532584491692989917805832919584589797413041579595016813927750561050558504496716136122389783355131927930010932865864219160714332352943685985419372266621089857003017216344848565975781346522825743892328970607525035272543890537005874513481626578866378670279950269119561556660828502024156604294416435403711650823598388276335397273973473667877128540265275366515549302569674600626525145141073827508480442056755900086645107591718748605823989151920171081452103878040649596079137373227692209386830328823580726361275016184745410059992509098973472784221109240374268923928901523015131401304935200340611993934098320781450427524638586128550434295682761799656977683221569051638019782120835305090450960165696246666445424661923365373909057166602919145955920470690451332136849638209436837404254797029547778709819579390899059165092069674061959131722190227135174537853312558049091458257359655016837039169297535682331661299005389341373843231222966221347715233981784226106210834392376773053378176047478215696997461123508766858755825115512898413851868922708932430050010400281608517968413699536690823516912104154637811172230261319830142299582378446789141254849139753866581173514993326524688200724851127156763047970530365515933803000838757234234366956036581683867610259664365344469339727928410151373855403894081692360132099742829904694430774359742313519522565694761692665455927633986152785216834855414529605716073236851968952210499411058241210519476108374262254880119517359362858343060347170535714046539586453850610699927978771830190877243332138983923049066716921003560006249245252081094521480349656581973813077376355077365363302192288495638350990157817053885076167221022511168566188767405381647501752799199249038418445291546356163918132008219639765735713141076207510104473158065297005052840718514833167247695444876367190582823613582990291267457354168671542169471157494759070714024363537883355433686815731511087439289183090115781090469105629895146031474795494005765481949564245731829400929467214626345410362401399767709655387687770059037549001282943723586595923490606892668618537794027039148415810522610497133579213096833429042943341435994017980171415898415364782561875379696916217358400931970954861378451495777225716918438905225841788806728580700038106044199269296081809981692736665245946014547011370663240976610117439680209476060093707707348179573948396806841988737637850234662923877585764681022776723997778387031287907713287661220501051502658496709031983003469419392169979048907888727367959280411818334947620544158913227278620534476860407755615727858385359035219705865182603012011156378203073414424010759756171599564151238945102991754364861523705200248085619019119597571637715200034255186793422199112880964119039209170547769787881950360360346743477476544024890809866070590768628130397158961147139622347420808909288064947348512446713651076716368975209387057216204132150988705617943548538879279530069868969002721655797749845140407613926511667912016448013468634016235936605069782447503881918291270214836193021164825319139536696558669612550219990163256288399788237906177400036924978042612172965441355011566927044615149810354091856138352143199021203499072314902663662588311674941475760843691710164168550239380051892668360598646490077611029005521217592075964116878179024771007980977317990511719667814573410609690032963819308823744867810554457138466095477790381772400004973769296331879996215655026590255277026868415658080877169441161846236364978776856982233882794011232562438005128485064315828277007477025929514327515195784089469339067650624649234143220742830085641989306298371355978304252451421632771305526944739440238069735496478778774252162662691521495147043966381779731552995217873961360975105632859925030306015319147662056317518861742228062706674487922087025163253439567960951034815559192820156389029480149121435095808241777312896862490255127719648087356209687185263692744621597049449017425880737497318120345661223393861732874348320421958519709350050138100633681198754024831741823644735124409635256282875404405272705124739916545405298266292964972560284298544117688601555345764065041024242329869437308007804392020555977996296414678017649152557109624205645821439660893423076764367628367152293811766943966751336506278493339166832057372065116355868718521124264997534033145656789175549244943133188329813865977243807572868514548039893523288376055393080531702578641950467830628700016004672366856511375781854403987202302701807353789358168800414179317736169834468970430800136911055088072919938018291154913105793852471899845821286745435140771714674793352282926811381421719469148950015503159762889330542422916762299713592513355578705487595486774817615560343648043097550648102983914526876159901511640634485621396513497664121301043685339653438375688031236544573267611713739737967802193074616927893690230598029120078344015176227402918057761424662516441317360092707623466413203673213998855668547132979949816746834621019691050941584851072932604464156222967411479350709194597344407871593952200239877521428385717617492357372207834444337429789387447837363357056171406512076056616755647668788170173579938480303009783521314319302545572672935818110007513106860408137887495880633392200085454340474425483812713889046072398053982509070755296455256290041189618463514441342022902760070040336534066594625297274899283636068706642594495405595005065442588965277294844190648836150292762315591809215970793378877395076172790823820231499758153255748897039968039883117277536698437314354827677168386793897571280024516969819015922412885290603469571841317827690177135839977222823541541997864759931727495169015927439314707055164565902412070247042944265189263064778835650244568383897149395363992511477465656526111963632021070797668955924399600102114710373002755248491958765170811829025321625959045857506281278059261540164308004191385662583661784382598614169969150359316263100755696006767138606032232784292669697900950838853701224803821303656404863811197686134431126088049892921531469368594965450521211522945341983022988542717609272319414123885420288691908616426010113002963862590830620880103192920197849829707072107064459073194078186295423006451334145250281063955313084895110096148456560424657103409818885397790348512676587155669319807760051375254278866529833321937034136213496305532917318589819314951873412461006839648344454691777067122014888318971888795238602037142089554246110811566461742999576930158591675177357743297495491561757571162510439719508574901209348853757698779340847262170872038446074926473730652021558554518703574209030195801742634059261855755242431645607050114346599078569895664763138536538540495789742870520484302836374157291413292362305297655461926953036528212783634216015412130903450673518182283796475011679455783661194883982575029309613694016685213101438354669832930160684249132563601742112399418025278425213004649382593744053650074167628554535019836836868226650754451813965599332785289091897992247508563859916357324091665296312256121986407362532522972474950070260858448934340625534861930689236933520310937892687239551065250830969286266821551296250788375144484273886744691103726614550462108956303522746230204933872822602610733978424969139717418815660495414728501307779738704946352711237459502631236682023881820191513968224725980449026051548800402247658710020041295757080666908821895051930385586030710903489035739332707207521715681612946583007109912064946168041619974747114308196022933312023120640542505920742534452391342032964524048023593869224784796410635215624101643221223576258118129097988288461551844238933192710628588999271225038185286578488262916644845917137155085731268789648746788099286299279401274265358339867489633432906300093238281558811264359929491168105037316309641758966429092850171476180386017683233022919126383416043875930622882600730266648792999309315209097539723105000227054296488265046393676622442494629808045632292790740860828114546299880276520387578710180348736868042977131808430980938335465782315315798643420302832340669229720597748769303782728676087217923735914599239478787378099508990861753664123990111924240138404227055388848414021399299169765051254098314216242721582889678186482239825646006895992655286790630940063679239746017650368794061356901276311027059324250153254489564468999245390516793730083327893718299650603120123836744084988229626337662236027326983890233486724769085350508320351927993003565430945565952936112047961881986958184333922253482843124756522793434687536794187949663651009998997499099276729298769541117511080112583601118666166926013784480241184796020217386347382080092244770141738203627556223808058885149097953801529305790020971298328893244324457718407141760000529367715128934851608382401737622293259128758255053459301905728178459253069834222795581714427138121385269501077629972667277090680560789619399929471725275235026037033317113969600593336206979596256339728321968288228424170578859346911061694254137254129730541293114656277670115120558843004689783724710789740295813607127942951681176507832607358674244618948062222203616772833496921821124525266925998218790779439204838756056270518493577218091109880633339505346983915670189756612400181009980193940911839679682563625777462166066043537444575922661192251644243548675107766048188540465693142675261835002175248320183206951587693514590937469824580835963891692190052054421336066431476326120195683204983330238020234275646876596528432661298948582316243593437015733403027790573553342446348043537066472202612959811795374016184655014935569868358827936231731900473131184328389877135319885934895823941963166698249832355744248021124134406802377025333618801342642085911459170758574937853475367394537567690416276715520394304063964846048324341011165632856634054532717989855344473774509220761601604502557690493322247134205931569697895166876738599188281110149614207215644804447369706481928335971742492652181127676695058261648236544678636244382692400879626327689678105536439641496821728831228491049188020089360694064710281280063110155560085912222433232331944897088443257887360251824585408759438949984837497307738257191511394053652304482026344308248443597198450118288966365224119720131520613532490330779597788125241823253368900659967561071634681077529822859600566481497299199437964730855599957188915460563451609756275680855557968280012372708668618678648682216024472657785199632141792704526404390116578937483862572503017241767899896830720439872161556717394473895214177881605190169730626021899033994828918235241245291798509565557863726039608129904903193832593515276878682294199635047406507449516065954370958060644397287706032863550681008492144567204509268435222249249513330952203563719958345543994805793289335876967003843441956126535496944273253779190573201395599575886794055283394737322719275829307894079607994236054911055819668601752372144491209358524941564818917090936105808500293949991897700143712553196577974498454919486647677734954316887403066372395563352349506809565759102415221272064473302588927138234037093146158726733708022478952673247721176307045307237216293529968992665045819393359241315603331558624306207345595238117039281296893507586163177551454748606232406770120550926892523208692600879898765672203068028852722253799917581594221549157407666669690593055198697205410513570017290916655746839300469429537791100421079621752665174913607699381433985411909487107481836233987065384145814112581571891507538964764301060619975294105155631236638068503971712090051174036443595813297934888077178510843092292063717206032560865032496065561259311668206564507196099384313775336715753079036543120126221366871462720198590914841920647037205064615228489493883844679309984052916588274623234888298821406289016399269137073497818602100193359805909515064724610039796601758433227892331029709347993252757350658786003693358821940623594355102045046397208771589018908652876178683692227389640511308549861610667475215541350525594457286483196742622276386231930994855434366927281323407592922173420508446545152541702119959964354020644481554661471872235735289707352321078217593732038310869315066010959524055433412738353222019370373487661143696706485798027258494410579383057076375312698657378386286787916093085340919704337142433935534425422008378399806622446303354881054936108911110786663070343650288011960474552141247070290133171879018164100637800306786809443223545731162505847552877426853673628642119029318968175171534736402237863169441141192832968735452984602243098872371447214547265940903753705883896156544880805094869846796205845677429930925416089090035209759406437534000267221914121043516772927239226398677507192379958964676595944581011934816849959973130706166032032788880138596226296509792934489039088744078657560589944067570099512049345892045795324052093537775567039407426043541005668925938546505516476394573113874310911884952736301804075014063281319005391723660533378532838862277555796775040027092699677847322262558457573187429723803825259608155390937481420273377803688693037811923154487418799467951224888159534588456303040332542732072845254772104604483841155920343902124737137762676790664578167554324111312749036244797521279660947597737174220848777032907247699931431542634200853147700169535855324127027877765159525469860524277250729387169270046569251029567272465959921452360617015446487138644760678622317116125209250914978853652660909500372091987316775662502449619096550722364526680732355564008096566438952469898130916517946612912435483071489902394034704638540388218352244708368487610394208151091744226620227779281359152369441151207706017801963814722390714329730138415711434740969718496427809114233156723928207070616760617927973558012327362642814726726188905815980326376739391843609476251331483076928462299919137389759445714032740792557823077186789925781206511016777154195891175981329016773619978847713221255183259402908477315006895949756133174160672263559324690944547357968557339730644681574628863242847015322652080398746355550605853766005772223692890705235661727391397813785108393892388726063878638774651437672745332624205731230244099295082728869537762157988901049476444637002964446316802948837721069501380888812224612404986858645914153264946252517398265832808727341276998004930119174928122730857278902646980066364256828864912552939490443284958070952477454591036579979713705009891852480839382913716819673680944672584128686582498975814449199756534541649221941633187582170241729013888498318303042335293670570718960128908603066650861815800456580223732755870664110379822392501036889567531896236093655862425168765555529205435852548950468006138697440513158266090637056212817389645327854835548771016361776494266221818322944425977828738712625224729389337070920170629784355984094281720252743747749003217955971863824418017203053032953050413374874428455854426482049080529162181826840554976692986950404225317318027704054190447526229649266185503536663325592843592122911730835241592337859293394178295955746965968909836266995380375962873475897907180102883635212018503196092975900761085637762307414768888554724456504204906601963864431374064907109116241163578921033563528754933794718402790819242871618339498029556820369421732284770980387042320107905977801940403989842425080718280148390281085412774150991488191668833525173954845229903384758388472955699356779752324411958508892369634456929940204508092542974170625150668347892219247002699582647664388291607823330936469591386698582909254345484095323111285985752249737202579534697735020323185137369489756835955355859472877180658979002002856538101572425659556589343880223903105915839650542265211867167252834033535998056810865197675666133521557595150328824279183515905382841871077217465217796540510940275035237041822237229076927969066340113103693587485232167601925048745805246070642524580665433124039088972631769294783300553595194401703477880860890582402005365847309812433117248710909492285035403417154111004708710022384741524662350425059738273626392861899446608758195453718223543661712824547766375149169040494504318946459637137162766116298477859121891682280681800468585441800472248133989000114514106079691880178524782520949923827694128352865231340014218603801544742252959942455594252999194090785513188023810891539765263213478774857684235537402110514151222736310552171425406321529003513104062932272094996111684792650372551923059585471121484703936808640630117828688582582008056372756741901600999901483670596762382849753823095318890241608552302776761938843894337147493320008910465255588269779356923367210974019048963302914479743082202291019574629730972845975484226915347413616218894544464780629753086805182266036033588339418196101491932584381668171136362444289241528487528138720866674521880227130627939386820273498874437695118513844736770450732105089590376250762754399691061517270817952178881976395416605256073728915240600447268617053817773982324627055184745001220992162318942437069228326984657073427541198496526393829536625236798540186065146857713680942448641895099040682691937840026389622504091073424078909863584445169051897116382973608513140169583002004483111020994382291713129423462494886695982450631127807654900376318070939940408195111127107097891026476959863407034354198533408002011772569792092681050971336844286827176033865313158386011520480051011881987376295018688491954969734386426061081122847104500140547483446262478066707766785833426399056059505698661979946101884943576718088781240039454241947111001421404478413974945857122989187455328184892552558488671229780357629369996473666075288863676532794545441295543422593217617276443770578108021894108301093115117185800452060005168632673339759022419415877058155145952378308996381178564079412976063145028415042898137566223895781738978281884881363680306713740978574784230617777612799865062862406983957865785646118716968565578404037194624792514822762278745750156279151514071290813085658823433348556368275455061173875471393971927173101935717979788420285644212302052295044826019162137065837255106676349076779845673597792780349217945297577863160314000457981749454611816503679114122961049838987287187911694876502014814077163235737891448284300412431563793460729214828082309472851909059358653203870064294854848468534280308684460889606120169680107867705044479876900114658643307287841439928282843235947513693081585877716796995759785787019103397843051349815848512346255094233509717319780137458984379687446071807504798931927330334856457487190966878194991306332730895643789704502837825150480517516324981540507684172656805509023822137416866454413967459519906283579575904177056186762903361066621650932484241860390105402134974667858957456015480794894854248032665479183028688330180337229964055575119586499932898886166046834722008771992332716012587171334202538454199697387498024948030207214985780080242050249115223143122556252153227352246132053007169321675296894349524210659532413969342991981896687618254707008263520536001082659593385221107369953311716414389956310082558567903158976107713119870842453467213209394021380042584884674287321261963683934619676354547976556501359518067394517728130872221531586276546642866868232170831586185765667272672300988897924884497355119374181941159677065557349249238648565773004861065724916875285014432073958627674248320278439610438784538407707200486502640977096419121857768821490026513627317549057752823746487818966617337988039481801210546336776840828463636699410807630037556017299574474251505629659533261162795761275957098421356468446684796428656880636670185843141816483525540517196068613556331338903197684450895729104815761986795362060263115568783292788329358627729754697182455958006795699526708843490751329875612533436973409540749869615740966828684140233998750000995433834100789336918755885844255570383113634139325313575546078333524613690939206765574715996654762504586888038886835161125008958875340205585815942244936857506487512383498469897116816076501984978460292594936973798196681671343536959698710436064310033637455101311090727019632425140250332954414639353925307015462866800637270042023644252291456845980294472924095756607754751473785485415231270039064620737476490402408685411790104963123715164978673961684628644196068675137242676027712302882783633324102524277080114443719443070474401685176884842941518900814602672146286208083577775428407306482359000999995312654346819200621578776097117915464290299170214524678998173541684936260687777137047737233191385433009612943440103882045428208828807706845589531110271381380661340102712494529227084609566821981339651713639671383411694830576798966054844067272746576854250665999986490660388900922391433697054846283560062616933680971930311634965641401077602351511971341677297250062200527547473474146568860089440573510078422412933324681315839594499295578148868343234523896220960501042845084495126632710234696536911687791519083092100395515167949585402065723378551069505181030004386039387964789807841459502178133840831283467328328837955420991363870455233355613022760819166167864909003834751753934044644181642710618523749445201069826037234393808018192380613215601646883476083502368026748616632134102056978863647012960163922562569249401772036518470825661398667987338318956132483812830924634670290004339306260675536623889940773274052303459008012938569585024984796494977218702643280098827774184979944830886747720843680893094406816905575795039620325097032271661264586408974280087623990625492672384774544646493255944048629640049635935427096894102617451882195093663654563012925463394791506755660586216870597295719467740368907703392377557762288358735530184624953848269026554198286068308360983486644571441338791710846582867752734540988898167718720116479770682750542041256298506502528180259974424361264829011381882865358212463272211938792830663269072995209248586413250824302567578945329132855749973236146514187574537222514946099192434885728732121589651631953083929603096756298270334655308885167455213059251718417663186873722558469123145626816255466948318136063732625568750920868669526810620513835322526522897583336315696474745079277376874048066828067931233176311826075848515839169914609977688183731316494882458211825967893962573928517352680239952870057325382122489969592120397399431605674499108194769967831670855354312395336974578226152740010502417411626185752715317724622698639498219855332747373993017200247156965129167019945998248413120826582862213603024053835556786094120120770461123159119001553203584988033926021646429267119092564794216533383280877440521735602660491942288461093753471518202183458499017679173530910724740576054640826095964623851778401367887590226026647911272989371664133915611754957726638922576122438391875560445075536327060761591828537288901414165442612295416788478574783083575426789696319334290110147150747145386279319558572273574218720996709535050322299945222781406673444664551120239281112593629626466361482291310903051055544943657540943848873969939688057737884120717206372584265645839776782471254618667912862451993171331383675094091663971585222321356626022109914443958025808789611150831181824556771173973591267750396468466468864743776182935196416690045654697055245190947308666396859585056066070020833780827025353190556556998163676460981452572049372127192538097712539728275020045083839338029883773970270103770781147437268475816365601673168823993385362936468734539328022825289248719622959458016037925989594983240658759922583896816111706090046506425617276811481184590819360559793082516086463788534526981311735971130444201355135429224139138513055967162467866976883425832832370797392513666830159434947746538665779781651911315384854541665964761603513640624303372023505781249174492891923599897147187320175520575205142564165930692028533759133058786622952853496685778478834765999032709982901457984477698086140185803796531843360666951531405660475133840450526975647846871918934827587915522378666656141879004005681167287986092094324572053598667109304111088644599341864044561121979386512401881152971860584457665435633195812688151031844647718705610753451314946911678565613992548224710513023141602131478527851998517365936265404416401708061834554002459678526467135099542025857118077099194454816639981254247578543939569020774728354795806925127625757553157972952881156358619668544868927922322926144381570648148240239645508453658891735315804779295954661283813129367807074787278531948970738392536215667360438620604956528137512671360811929764386438874324789935197165766929538997993728217251219982139836209082156580487152335474962110660679640122126007920956390214617762492780380122655056749960499290891080311591450901861838856910759184792608027786036472217422605805666329633304510097524408042930135926213193902209447120896185945348164479122993524020899677158962892219238611645120263643807636757884091319061107785201275920003144354543891557032922124503945054687509272224549788660931003373875898126252057208578495462553337989787906000276748095135689012777549223295082526236955426665390117069746232452021411041736052910068657270005606601569007932196221874267167460391059140646324211831926077466956342954178901704877508602427424107835801441015968275654405704578619344217029941590375170418745452130007181322833268628646478926993127955445100041098661795943327933950653371073524336969552205687503805392785940181141874915518356098892486699781321263927101634939245515231852547969045059195133257682054729368447434066776519730253679308865750021201646008009155327611406297982935918534656453384967529494513161415795797221639180433174026911101121913711538714459808927145409461182475072960673595779384844718261218657457218496517040838843743193127463788161552783698000286151046804497034216167400845817987452625257317255421367046353536910770053781894965496292988481668902372350482330561204511676313539839309924403567282073507470406895682679999494836939161962195218601282010386820451415180704796875065377724020982607198684754311610029235279013359949875617453806694082771361954971317102434424690254839112210091828764012999301954564626257408249658233513548930596986969657049377335564265519621978975601762789499253315429812633929762367613634141708682648959850005680743025944695194783788954872919421687779397698454221444037456067266738094206749070880764613325066028260303634382959867708784656681994277353800685680481224511962002151609498957554885198785474731282285230492946268733200463465394983537826776817070336060799924503557238427465299324700192774907073179023249386515243702500258210613809019839244540138743555872116793729073402397307783678496105507943964475237131263114782454149315901320011546539947862179729454787464593991060139158201417021272703943145948101454955335398406814771181567861580783653649009256698367165655473483037599034591572180415080973203603334593776303437991413664258093090979020053483451491294621341399897137316693425975918648066110588894723652708969448462220687217496923031103185240664133138228679659031716529699846887379698211765424815310449285856578639871235262397141980725559860051795462367140268022987117872173120601322610956888327482348328438226893997070386680956387872441599289407506949813443776913496004529651346382394528472627851188466134176747484576893314372728365851988441677854251818144721045054054297433940989075708295654517710493890454661326744137896807509571351740277283281459411542324513448237687541074133101267354460940582234322245733065844643945426753214159286498747636548475888514645389096764765440815196767143804872721268355826045361851081425168266392203156859148741334991161167410649630034403699410427077480838988205709132739889998848253686852745586763601934458498517555976291012814178794083907772701101327596317808530304530620633087843380362080284259980031680753970848747223297520401469851981110630610601782532530032576637154212070348961368346586916835598561625115947659579984469928366190869586011862147213437973122096397373236271070807264757394541738617392510501622230114332470584657099535705868676344736898566697450144193079977414230008606878363094593298894578294560581710978882072076198796271115643705354408022267463511698343259376853249553514855901061343933849726830226168790170721407391565893828229240336462926309657411614240110661619248064654670180259788330652640415436731125148319745634639850550507418464376402756374721516374291218979724181876374410327998545470931224171389698655873597547869844935754962516969319850034426658097168564411205090847636007037777185570355366194822547038645308030315316374000837952804287729247942587121444176623381021096126931638082767300070765788998829455745379032444116291839789055981627743067803137978552388726167908857510884607694431881435464101843206678051592687423833612284727992257567339869436011728016389250844720069661109199135788629096124112069382118952452049609794684411898288951447459051368081505714841164760427158515536878018830604367699149910629036837495780421879928162828115242711317285277377428641618481801287060646041560437725530585958355144164749818658046420189200056026273513588750480130262515088016439127846243540738353716850914551479569881691620139713674019762805307286251570987130266849754451475269166236724638811388913185888337735582048139370103574681368475576529404509087539677363756432945396344324534403461455369607864942115605052589553739122044007547465504859032319819508776747146168340895050142595057574660151684774210364579425259289436595184735971605818665578298210505687784293020424018428623976976272698727290435669861162078063944299609794354220947236499826356596333022810432046999215265679337321254446695286320706663879864308186442151879085151053465109357573411395585981661205442318720791108686832956236388349805982224097740848535350468746473754795497494690470355187864875791264874784628128649779593408826077558325430791066400202434853335902007621183679293541564619041454308551139467770838231199496356781179209979806835401351805040294319074587925148164218730263062307702520180860431129945947206867948238635311426386383157741753952124728324847615142847427376104289338861735721500277605686245263168690194132036034471167173975464709075506562810683496124216473731100150135362306917172604749020326037474041350459088395054705111103214682925133047970110188274406018512466210124280006175181531647063298468258555108386043541542706666977894343900229147329381159011268035973330230836061112240005309065787215631318582404861280273825435631162169462717294708243364950852443522749955183737682569439281479051134197592030377582364399760823601367691381379772256300264378764457864198841279485194391754961895853364932951463800561897786489920247901522413318227293645719192734960645945479134995357392394467887194758860219196447779816182539030332493371493405225411091818179355100186159831212491157495933885361899859227713911784714329686188169303608722549333964253719593400384889995303994287298323843064781430268356820976380010386106119609080011028050105914387879608736339213718242830323666806545560772987312624096054252487333396544481452794519375936668225237373185247009629804503848103253557129798609484542932171558732443880454805728815333544319060496253644656317969475605138291681387329169947977153243663597194655239409970372042313340576615226927551193377250367906978814533455537137424369432910627924592384944244874188480888092626506237862411528288577598534262972500416733169717156457423849166907266736872133242623968468629076786366035935457399736762912250933540728540065728437945163803027349231624461491733959823919874321594008491163077671938327607008936424943903678111972804615024882336241808757671067471501035990959610716025326294315545476321711854689388495193937943289618157323736044339867874062034740735987750305374662235384481763571946278052384396836220999203199292978989361564893836315806890864063160576739345196515040280010629977367649695060172614218739590221967349182051867842241218211535174085441901516275980216894826550378356808659915843453162641713369721944344447678911063769352161597150402919031713727578432457410427203221140583430212450588743321112187031527181670039327233688401077966590460538152348718439670907278570719477781337022948848363634137101780871847073411254899011512858548891739959522606022215670378677669867355557432193888429830187035984029633566023006623877991005954225569121450778090437802640911684864252085856503230879915104514785793106429759334516231060365862293276380614106776551787150044114315513280459501333138640950670150677415004284027928313465091197122451521848351097478657023078266356014634915174420606464680927999820570399816020019034161453690697490918037925683856424660318890017838077431563320878573450399680686765097661022265349028501572636014251612013122596456353072284169040161402383902876158160429233908955210003355344200458285475257584186955341925360608164408789368770240778502253715511349384269625766415158125138547159287981101316433676528822431178154371249723219576855021163273029912672603279063757188093064931768366007616553649210488237697539926488314684217998749855416092127293780685304488888582576534249624667599238194339340304990524001317776324034386188978720420541505357015786902947246255460669402968160915741346669482637211848843530774998016889048160713198981164727484852733230021982110157440627855058861906680749584533340917506226562886947981231923307890276137652311129592535539194236413619789621622206166112699442915008634019374819201183448834784494237639819948840393192168529863546047366785708112860902951203245244935053930803483117151984799753756835177614355157672557537909008341699418783820282442562115485752076868051865499095407103404813728088195711047010306600795835959931747389116545064020640211186942864281476115511567368049752894017816451814505459026698856758991833952943568571612917278390124197813773222419494883146152808619990401213296876290785394099493620625877753179709381371430644923478570564083296671880658768838298278123335490359391481767700230050105530797390658704683838222961295384751594387712170042227990873903685784100024543039019522968311629635219399896754556996181788644986782837784875282752554347462003543700829722853398694275165918749524840214669547954816512796239813793668095033397505511790815309839749215372242917535136639675277615851789419193505876867765971199677872947957427665246348985271329557153089864316600339865173792596872274973003215760709350252007872589442702686675169421737568492986614153427643783007370370565222126829546022085937314791824022992778935778620504104344223679316403196150643086588249512154400302603160916623381386220131576163769152162134014158707746506201858004467157039058523840251213463451462448894092385019195581154999850849665947921686495480082256551783979640823586492385149008097175060815584100513922364901206789482380619068143357108660830514496869713756743512122819023669421978646740008762300101976821290252669873354726247447501990540257297830143195424445404381052635605246276743885431487796361901489121371434325278494243959003922461439077100753215083245608156679989803988508021586867909054069463643828749939462733043602384663289365701558242175738139999329644807687709266233737391371207180591210143224578661518221971988438597106414796306310118260619381789572774270091588918535785528794592441580672987589996479798674734316355125294087093212124391282101212280223118248553189157331040780180346033155125491431695065306694017623251473540822797205271355296130815749566921808948797093111537383563268401260468197275394236298871059193802652791408341626233176956488168461979422718215054555580009104727226865675977406893145328791256928958193695780083657362253846997312518994009826909902882200642987371350939116734948910720473397380237096738487379468858741038183124357595323510014852831596086341412961523502763970882151770680440109084042633866084192622952480898647775130194612119329122160490308702284984940911024219105550761158975892376783838856002301791515831068094322087900096078317858251416100201795936110917438739993270919459771382871341416410795150100467237204860795437863916065073952308956836330973826877422306884202244684894363180625221031472587518005883254198081828942091840479378733128514671586442269708909419986899077916625212519694416187143620887401117833514366385798556802942278625758659838171311049013303165230274651083459114164746827981528635408006821308360611827689430694960760933337234261790107679205221771542749500120504949855201215313794838612187492406188054303023576007284341614711768942525965329317278693829192192195155172011462931015775592344916779921077585183478116056237347697790882936767141332650491248717306446657304741852584523788626333098616367155115006104340617465544518903425430407688720860057729784766575832911572980250068050306573425425505504763513488034326206122908014677675365564795732876024808386148078424704528933296130126452125096478729156432100407151777089509917741061148026937166417046965619182649017168101836240137199053713578318546981205215575753132335737230525798335241362276094936358993973691084567276204668180829323827927227323552470916638466738857834525270974355702683028688937540999062307881330114425340304366911616198571484234400723809017746459172049439537911070439203084146591792642195360124479741850228426772484813963789510207147380285023725293076655176749114526567405902316164569185819119970724572663041008338327763084974166746373919093732985876790527236236628069588179987783992781734620929730618850763787627499436999313416867454616132181223909679426284021985328437680390043570273523864806317403833787852820485457193883670676077374571433054977389724398040236779507569615571048502275448606239218194498956467317037121209118354269710954869667165657895995303824477676785964329160147326298010745189690680307630487413683903128789290797710369067289705776601181094038083057064944421492143196466946733104434355941253845592260081767099806031128258632564289627552067081262432669257036043741370827722067967152390880854196105730091599500263568395155626472852176366980378872924664851012897745337945212709109543825524753072413201391064030212702084937821201039209527611518988336506685496978649348777584596385876519722861974028269416125909024226296780968926502770448927327332707325773445217232595034165331291178028704031998474888605018013897517538109573817315583854178796611864320851734607930143092658016072159116962413040319508029712810343022716171679006819357261078449555102682309913173915839366904115836165914757143139579212958358889128336844860338708860815999035286587480661681302706727484848150972123592429126481785215917451689622415084344890594002361858544794315609295165528909475552413937733658861849815553342811870264627006178964118755844591374880349882636931811323890706320717506968136166467491774829010915076268679630301415365955428475689361563361412067308242413418233205311812075352539203520206645938272650707316814417006204483305353164555898621126500527975368347986460440016299992780704008330026993444691982187850485087884178606426358404005880115397215551999998045107455856224468055038470018596329559669796838299057190185381966859896676818437991537583682748867274818097816781902642825066688365760171558469346091842787785715729303745775627307140610080105431515079279779078848922110720834049425052114246427769807246218413600087995212373969258190011841716368106299075055455043946912906994566583722220417793759568787728586478169152722142749421426997601187003946089737249763341157035324081857724624171781544640694026207508582000288903447457390351041547337689917804654601254564022661753847940798695600189136211542828249586132916974397117292952920868075572163755109200774394808510832647934938690832761576824742623742312711138153340257219565884780919004552179767984418515937600323305356047499353989251466149813634643949555448768263246537975813343837255256668021100374348474559299515183874074011264217480111979440515112657939533249711521051334412489035965653764998259902263183727853013402530633662014965718614111939408191121452402205167770329796140068519388287366276755019955854651213287101139248025808187503539473767726367160675367011114256379995729232196937740388463153265013609180430964296591356756837208905673103718499641702464174148920791457768745703932737445119300107458129745033958184258039786565372095241129361678308723005019894717643741414331339277909625573278436909823633041955931852804979613976042983150020344337187453705898501889478967832639107870111892756095783438314513162499019623818200290859079024295286097630153865710337688832207091921162410600298239605663755180971003071645551657991727944515267071494704880933387201465570307935059332152668775835680479882015402353399131608948628180814882911588570475883267690547711968313652411638782796398271848893058548998287136137338413110141810700718830052737930809160120626661411421158751472233158316981856127895135631336566272536424675081740801734508050114997377016091688351907638982559842554587161740569741011641660017712184999558479508328983951155426456313288048745280216626380449314816157635932280937617649664234868626863992438559899142154569061724444899932474587483119362317338748538845242467759568382315690558737324003081355385549499779077442771922542348337999735388579857892701095147424000731474548974907972188197231757816337332766019975066844458427065458914461845883707650838274957994971271653766797415570575511790293963838662387358030157640688769778920727048165715401217000869354526751090962163682991972745735922987359421490527865827714341733496594170977921378770665974164981558532497529784256951040800794410423519045311713730447117099681025070191383376279623260300603938695680325849356868620542054066793099313310008911967025417337996482519047200636201808882843908210471856123103600056798781047657076550901057441474567700842446825649014767453266351543760200053139703420636715265108926944996116540092369598787241328917162519961778472991559423208443404808161833970947599068787468100910243611718676881955930538907226982892698249212987783662055224360256691651949752462223540269371211179359240234758700471826417205069423617163711873632762880100299256672545859325849241612334442790200385189395757478565265532890071392963197832647594443398916349649784354412235046662999036300563287226514155063402411995681605883352552132784806676316304426541023139244876881810808241732680606163554823917993285470851431539803658358447644290095076084500432225216906710564520526987523155617506182160322511408486246043138146918913321774092779703725528950142062166035808529646788724980008295198609527542730790032725351276638615807695843314032370338049952810892134417699091634403528787005499935595594543520309548321677447371871967785430490549446763409028031640334592136674483496527001905698474497369937607509378706905626357736944222614314197276144239580910337268688510583268836634949826390201416257583101702940361042694981282514382144584342225376239422686257779148048684219235277660374540227441997374463759075308807831133859370375194419612162248516033431803940437021478928673834969209577761104760163587135741062652022207469103659245399217065944566014934393408255443510447889336249181173033865980736209716005487188533874684637199859526130483503559861653696766035589842119904185501695081239998952715454455090747289366766142929520385962754312065574498560097562510388402008137873256301344276047004490368474072109689227990533798902583235317847111746695952119488822664563241876525696073992153897197107921792293958136276316199989865527857238253527517538044527548459981762059677653018404140357219428482448805918409075843987523411832108123658514208785379665712826665072882909050649073221708265481643433824973209293515715713399732277618118627981786368535305391998621238075652276179082637337357966235836957079687242863172466059756526436300967541546518799604529633551742413092345482831508279699317435408045098972709587835482521175743477268800674663789304917742815276806550523075121333067842796875017788673081261656777482295269056541795297554213314801130001524786912635293800227769041971770140402354075454473273428119712839588961892437813066029914283705893528744933762996494062053984368313167938661577627160485908989269301670943160781985859319038098217902500918352742845748136210433115623856820960337851447228331277508401779758145416997084618086506063929902812789511568091980600755866451553754704277261589698630992605770566701957709793836117883304770682071279857582630268387035212431842932657947128336695086339166202279500171764958212366934234077767460934980894486553659222576963666452549507840583483862965690825708171673888383244197493400927905806476983202160914847947141142373569363323925196598553671199676698817528819597846505512537280683939340181400003888511809290729519972762866775970193536500643249282355362213089165272744531779113525200626221279274462770660620934892234861078049053993048964581839689282209816651895765212779881503143151926111401775684921524575931322284904519396432599853965090511395300628991312630812181638054746900133037370581624287793861344259692052320653370573038038896375987793129278952275197955949162816436335865897853778090780293534748235104428656681220528651933230469187071578237753618552090479970019919550773019574684106531419640563026034323500278628724236598057659175738356500236288227175079705672676141667932603382556724136712744867413806793914845983809012199850895586917064520379425238562371532644661222702453257026095064056560267246844876584190742335966341014993585651811723804846748142785799240801435163075899456791844876712393254450195646393778822158223173590783329170262642494002685736113547703059427804352689100896787805165316549105407023360567185896674002872268769909491685487192189259219511015543786235150084652527336436007283371244567108746680270232512851120111248664290785061580646555721291317733561925010264186296431016548118221955938149286455784621958979255313085694971576104508708790281751847702604307462784221780241567384193785099191689138930550735084892316759152598716490139920765703125554876671075931078709781337275678680280089982217223077002747559422669524962703471865417956567571724664440564412405256189000631641793107587011079374665610077321972090262200586791840616755789364832985043798146870456836648321686577992466305544001266467157902280471560702798806710618171780604495992313440746073929912980903700324820979499976956734110017439842343983384892361005599239700126693994486429364016341650702040581987996140951106678510379384792154195532362011179529904006781001541108812276141603773211357722059304478361872887464960514458303609347805405677391987365899346178252074661192592258024787810238432783496292868440520294570666855319195357083005858334870658543079729074350791648874202516793566060340148050663975140972294500730002151507401831620324095405234463858464122849290404265438008982989514008791522853560322106471038801959438226583689837269670555834073091026381619465687009811429581933898672550317626316586298501638503985559913413410756420305410393135035973692012751220058558665089494183708649471589095197803961373682157160220478505642279068357471185943175520623650364631934697852693345012712197124358177724533545074029304890465097958220519285856881160700025070952216665978452055040572121906760604252433854414132425541832176380880913085654625725794038983499342040659353851546011229557152080550424058784896855600536294625796628477883182102752686424933502284110653702211648980888714802676154499070923555515118629365460688859840252921948734743814144340145986832344897037971371980964329132591132790339309237502301288499660920560859669287367461078405673549785699989619384031953672422164645814247767791139833380561607751925064196206331861044143031563372692776133885770197705524972078501295581193475284103624037098030479077968992466371543888073192050982710743469725353127993915194200391107467288189845913226178708953671155889796712072361124277060209803053578751742060691758227281879472737815277642077266010536718667707821425878091606756762171720690824486318972170456350480975971769398195215872367751391787537205480021951438993614119487476204756770587875104935961874894578763776505122216405603934546199841117766450250155510512040608800022528576245450750206573095989230300697777199769285519821809188407165768443598580604226763917814965819403130688676837333094326758314039282862279493875260554691036200772201301403035478392504190122839144932092247869343431892971237268810644595145274506461934572961884988647483582176187899045302884684268505390312411733514570928038512734562357890257620350167417838827330648722581957607670479741843772331292492897029583974033022076528867035822825168173358785936330214476127571837295890141035385428897184683130035370026988853417225813639234200826607179819971966423387375743959089010793480388556857341063094963497745664797447099574026296717311589573364195826394520355051973242909397781832426948508181500225442899431938826593425882757072475566031361835756196466028711531988228595083832748969114453178036165283706903932823244850442525586696207179485237673110961010005724474408311059192366302516766142857225302587132560250372691458549690714214700509169655256965846942284956421218019522435278864496263094915152876027151990252252594829304545264515010171468344407868020498522402330397796611734283275196099501437569488234609615016166001581504498482243088804955362966262413846925642595094172896885401373020779652484915351420824972510932932964065387469180479254090693816433574370775336804834490217176770543243335437169075320062941230172858799214187923323281879829027580301825684865892277888217395386429405734954598239006334008529807955714917040526786070063054848469122437598821881920457576849902053069789047315575327817109271308501191221997019725237040758795205577923124933281389159789724734251794001024791099063290803914144736403913946293331533219742092680380482772458654855808841775092729000559254148561832208899954722734105234263198438911546412814755205143368313021227542221387131716710519777939191673790047612736548970121300743799534068581125879334686875288510134430272827713391399646333867737775536917586463524428204907479197147825297485053702973863237730518333458460981722875653967551492549559592346016823154405021381898695557826255212113486214789734588120337346188493353544827252565258858178545537114490192832372940427985600033980360311396600794057539727313381917528487583023614288026736475899248140284624849172797413797226607526674624948124445365262810819848431015756298028566498388566919447596202261326755135370548657481546098809254882821911178640037580990110326025727139231329672551650725933095907180426892607859881862409135621241578241523166284161818496352470981294202268418511395869379392924219176923959997267822584900890716032783440567503166224828813594483252499255063184590213701665276975874781298829813236808566170062796167836820379701629693818154483129631272162697337461871749193948549461641408099830253028074125432674052628154904756047919606530905443173881858018477401022899578213405801172044217717702575080097675885337258722667378215115227875400385303209777595157139277011533460757523809199988475005199756846962963135317468932048343195274364678969478258691745137881001067903499108893316210717965607011729567266339316334251121822623524600754255531701762787482406445645386392123844999913985693653872260622360556992283563771214384243590233594760892137237819746043816094549586153311559718450826622310106591607927865025674454696979473972763411994209046496468632125271071060545968894544130066803855907383292887287938085619680259760845693472335140153683359418038612399799125746350251837888787827737219241666197669166694625719732548447526860751226382163159017307579186359495192673242418148285037049492401835288286147748781467063268574576122692525919160137389169771176580978668715440942964490768688446165943843416846876386645545223037453622373445533378069052687712996404163913078886221532818828617576784918075769219238568392914283260615945436530052424551313199929820683887150692344744299178995003498212677272786067907473568916302436314007844679162265995561108302269888759025031629735930700678938976864794513140335665755448301950243381134315084885290271465596171776380189557346707583259601958735275031690268762050843235469627911507857755255822934066626649637811730162892632353846951410500902583780880105395454256732851206667138788978242484291884294762807487897455384305550530037367809893581442697365672629120912579155375938469826663728571157647928909888922923428594988019182982239682709290382580364529015460524867323479482616017221806441349292221027619884746540047841440873077728914000908683948211837995275012303053276988005367244317127827466789691501326620125164207974074962058502752630079421267209827780279751532931809726720943869185783979292337644497506823555849595444554290778146851575849404364744759894847787801011297850991814234065603621085630583302962011079102953309534428922057455275656817955849570380931392339023988087482195163045768848081299008137445719585859396407886429254982500211813177320579249757681229912537599302155526427171114361172645465809477583129007215886384401387293345901949581824418582756657151978702648206063441216327761230804234847285297438340051310420382323713556213034613745407496947054068462843794990101069157768347559140943365002792749432932731567382130107008599431819938148012686452151608132707614795345052648796037316318300883378743327247384872471109137791356221440419669132416611668275711087002000800527334534065183753873358231452415862984666013074704726961099565740907778814649598693513014942257638158266792423725272456629733568076449826219878277914480870427585903209332591976920424018739754059732146867020269371040937540791598607936452386692019947874233417083068377365113551602186168626839468075381798071205491707816798281342410802696317761750027531113019839656571798640048424948301785283641621621900071488652749462612400010316966205908972175449040584514667789260278661538550804030378602530415381113115353326866052466683683136358213078197075137163323018459287077829298428005292447317366010347588002253057333301350264022255056427110712402988946562626730811225949807743408441601620465887832217853622544452297172290526484679214753375425390334674885633526657596372825579192125754529799241449421806094932056198109395936777598803833881123130182328416975776281733136510900202266435577135164625532843539980073532825847555683930721137480963879789267648874103686917244702657204310514235373412938802839632021348197485942320348733261684801835816773327250557462155129288985038557986939129626193781479176906065804791177901868188846412521740444535697033498576036448718757488637142428430984918730887274758511609401454602314255116406063314788784341873862994441095205458674912390340871453459181824385782028500621781596961968577513842049218172098855082002118222966678234037396233627202730564860773142004754779304987954003074246409695765878013785663882104565983241503498378165969041851834573055126676745064749393480048669451968556042222802244888124527538978056343099043143684858217822365886380608205012114218117119716507037771661152948799858128849089626081097567036188493197321085554132848934020494420964828842139292406248208422049767726923431508031622405229767206959357757916914205064448358189025894993143025627808207653944857809458727273070062627341003651309779730745750586497900943166732801447860180880782877724909357580179117179362584327716940305008302744344562593216511328391363775553522027911673538470522159668095490495594905612821270357189348148888984428933238161427840234302926617477712945028132775907377867799733670452001822649550801718927593800348689620661630238604452228408938147053210200830148414060721194745985650810125915995025586920658608688235800892056115568722432346893800038927639523295230191997885649748010120504041273809253100807010901102351427917724864445511482698368512994134579060448744889901954662303143260387553375167344724142671250141123773590573274879579551615754571675675744714734487259097923155019366281850324825843580405147301334934583474464105191300183936635078854959380869615404380919870511078515724670540003063447427490260675015149683421528779976218654997727920000700883146355908828618582418372894532270184465337512001274022752102601581110869232000037827040196996286865782466413778783100198338234872808726428412561724839338787831360251189576530988140102345204395287677374348036104690360023771762130485464549984469236778156871198736328761293123197139817888255852631837812807928993178122080063842368144404906747413647545183888634320852940818939750974415435777611369056747655032152768438669694937067963484869419980140284917174830569949409281903193606807303580395202428270447820747588746301770666590675572941097240419356932395701901829743179228694101334897975578849406694332056006212676901529997894667478250020105743370864037699270076234873271735128375284822977880918085635118942932321045158824446380664234608425249398879852863666922303852429857042028275073064107065182741579772920856401162123134872860103983061240227984102969741577085826903353467584836983542468246126618588069430077615308532197003666138876728647122284971441946297219219248658384538633312057464217404464928444768468374616910612966884532945676685765385260003028703694821660990927330179495122603154787113186230216595792087869485025505393766196958780347776649498829715715499213284980363517064090874741081045336692926794249199760666227937567690889244300356745948687175504780661912191487147202936841627821334000784702921233995398089959318088458291885719322818349726629514630850101564649671792955405140167605683687574807262718537218155845424747325237946331860912904484157919095607943828524941814969355950413677501801408011913891976672956474791552302457274915605407885217710573316503107691462002151603546467109194858908234966647711787903390465387300842889408971909342228470054093703267767500703316840201923896056357614703239578338522987560377706387333501357930841677696428692078128139508396263976906786959585573534725465048287432915078571370567681818732933574203532070854949392248468884615486625965653909696365981227544320806639435643375765755474479619199860226385856230650817629521916307595828645184108865710073841344344256109331042007729059003443615657986351563582249046476096965037315036870664618114609948542909723578272068254678625351343697654323071983701997066425126317881136282763834620702813559497543462152953888523751760231701494566496498674978240041230321395489381362479202951058745899386049876216146416285978788246543491687431997790715888243613920792847388851569265100511792848719383754168014619904587781153236381743635376639659704154701595556807995190658618012080285122134035968660815831280442460386028795842718998023249427468405950983068821799750814292080257823418191924038457885659278081732505061921481937375762480178980522197565738483173868416727037716532031159540861276977079910135089841983435364516151337583985763070908193130492012962985778785116411036730846889993777489932544026739260309272953475919180556441488870534088201093774526423285436593312023275263641086895800544101779930735972505148989652926753051160193008574652156876014982623037807408118534079967463459268256164107849139915391061993024950433484341290029616233929539546463619689222296117992315039656434498765419008184787564490897925620155838282493381172022074580083678396708776885565928747738426115545937702781509589753640391008384750521351442484046285190577395591700003898409825989792251877061288184700166208847445730656973303471211115675610501994049676038939026238481645988923683184180243408139156517910360169230558438649197176220958336284748445559975845846442259056307809745702440612330210927045254184956792736930977675894871558187189914621013701597312974787050148893360979792885766134612298065518807088425999612245360276251867866733433293714996940475980745160738321345169184682450866660017089522724812136285957372639217563325197172239811671438891973100077177105270676776017366892709572087242704178081935479793150293337446410773895313570551115982803316630743287273763961996381998133970721922527957354370593144962551158602927194688120502633841448368141363747152168299964454102724721067453957460275184217482287056994541783700660279217134702959516708705931208001556816089514893101359633902116490275615934192163822862506873034058757561568499825502060048323611913016444487576288463837402677104300112569454066907859984160910962503906332816748439732405023693606139429942259218525358768603345763177014726420991499517520386155829924293322384331156495675329443678068412076699971706581971319735455691824443603113445370383633028814200766762818646703142603549437591805018331600635406158856984258518263826012437810507041020869842737325857655349238698127393682592633319233506807278538830603568898320287530966804337062514212717358326653755889605955988272890476817166304723488647590572060718053969278220081063510840072789309734991184037287103124129335156491712402464497856256342435803231933256382372585375797914953543666740759117544936054603474340025654451936074976656335089856637469562708092850730161405311933772340204282493996735215368306092495609153005566083217012359364635539417924666206113788363601663888488532065565344784647436482489150625643106090410729340537391970490537337439850089313758012909990092015902969156739973339423751470329386213227560290270548812170825720839115447610591001158865732349819168427288719966988232007472084587170967158929460879110152687948163343792438943241130772427320618227875484063950408256440212133315658200162759906646981259056949007550344920417429906181989629464650945920462354742436149604403940813882005660967138933000848074120002178584882958874686007286126145383777938440339709110761560082234859672767257541269479934253040442516657418469932599189722893059242133572633608153485367616168610571793930533879666939886558322430571291719706918670258489382272311663485425947049085653411614925213597655358202855719696869942994090659199673469114252352181307893654560086237612388896467298344973630828279148067275479183766882102734644833367743218642839175596827135325798153837849372546174863408660355535313537525485094380935251009680585621854224685363942342265422920300881333623639755088379736848037723595388342747338609750846890296340713574019088987683419241701003021839337028521374803330882323772622294821915652809195472026085117892122234943644737250285719103820508503264505691213535837329043567862896562053683839830331309258717277918056919792213910667439020883672790745505643952940658742923661771340871039916256945174102343038754629824688897865449242802750743925294485185954108832572309594540794601738859351802585211719400189075085596168535328663924883352831674128617228063320303749264934211405252730207486531355949898181957044144873611716007205778535073348264837001752534084978728776543218155558609949714214716661375721003742125300677501089081827607531967379721521832201981470518435932490053402859303286323569087881801213920371519495400359108250509629269036880509051611672786650891059343741162797837107706851202998838325772960748225601757365265192395432185011510466678692427922366272584048177647072757543644229633919254390982723713927902357164497625162332162361430910799333587293488416313976973801239365056929223895941563523676486802309935899822063104596765018122238600873640889777359984901206663484728542045112173279278297275923064580700229979964281876071491986721319858271833810684546447947246649169163943231566767937836289914790718889875575718030417475081238172165886508838565658908909489277382950909557093909315420766784947666793098374078738738216975309204510316524129705280976802873715159810398580519035704857358828855160146228677531595852025839245312387566325005146936087895409107094806547149900680421444463700499960488063669890484562617106739635078315847940336949452713747074530602609251110396142836554711036936873832341652088674870453502097255856454289853383433650502401925266249276072007754175855416815955722381582448377189117288368840951315559695441610262670631023240759109625268292607091243453324380041044466537571395885071172832421773237638298184301997704389729894725829558283928342007919837352860927039702706637795850597567932010300558780506502085375655434841125242922797880980021309174617648577970603475707750072903450346702430056551395766273576349270565753820582780372886688496353546655153149495998439531415169803314113469446364659805545640197911704191505913541698548852497684901719499971183964124264535834219955648265171110015429921826270308369916485731363283714720520413310634316599778280402635860275173819638629893400712976473463165284189909645672011373289198986304299596898005010019144142981609579471505373313481294460126467082811787023670505584644551438041555424914981022558943640397697132458386368755509722330651693947363897526911417596456705653869553234882464016600192624794124297993986877835103746139375318079263070899974910535936511390402111941547062514153895258168086196131059866733225359329263496982350382989017040872976937807524389674798589295935821764948853868792433056309177877379866578905225242740608334321271918947590045842389539122506882645968370401879230481228209339951919854029438565495042591110144852253536257031752780772215607576454727996255456656834752204628063330685209044363567504848709713289538096112725214768565002841898843014758551760800201875639181209109475727720569129036700800188447080715652304177293983927129575454181299640201269388253903786998500550663399988816987724224486790128122229108078283657793623838192504683458111690068268823929877521689836241767755114241675962152915236644678290053982371499279852504454948132426038736440082602599028880067545914366334414453433218304995550119615284346062225057375469834944978152835990621950521807264961632946093800518678062211250872484042851524166275910636197820902696227424124446802091300367138975788825764857706707033931877418383374162461688452525266933650800677023979146317270693778271051643069019961618173377864641798040995632832973883969075642200028496901730251987155675252543565567612503823251663911840297467031021881769099671921380464921638521378927789237537106864229139844437654495341807833613766029210883275403388725309970074971100043606430914834079209494985042901248563524113810889014987692144105301692712585360669964565626099530417189595149393867717201617043731234011862757217656059529988595234381504825637572814684923685283385276908704761858720113927664523143299132729971398970194754279896342584651856423601143409070567213719288035327954101471257701904918632548896403279689568993988288919087906862150198600607738083271139528681569524544889285038003997611933506969531534527640007672035432709905863577710421095347892839373916372180913791525432046870815019155818789989974967874104451092828652455842449706023982955075450259738702761485394175752727236081306207692547397070663231774753671140105793015098689297127701961267954298688017639191325270873136203620271503182527820755221759829968727434606962376825330645923426013332646562909385413334834565868801067713220971190055877240135257739537745766685547949038950022085015429578613486030660415493031929329557740806651040450766590671679889387479529594360453714776847935177791077257122112308524593246225801762016610516363407822138431741947746517141306753498697119349862113013295280875586408293445020894682454927814736716279569824576788512312902599620686571015615649813927438449787834534113771641347246685877415720692762022886861986109844156196774439750971249643742473821933896318748220837916690665402715573695080770687303036501060067540744198846024948835351867247698598229530103368686918083182222826446648491280261099421402824887831343512490735180312404214265449772031944608433617441820236967969822038498836231275297845144412879270673557013678565062379938305931050527103122195575686158568470843172233017254853116076161528634018057490632627759815175670195338869325279292694272625360391773026284493118233319632781151129060424985672176104842522756812593842711679063022392186655267057850476153673081378412298303828954481669855460589637549885810631426194303963224416020337561207051791900287866760718780380286501530374110459414996679986363796837410070692536810126986419934822780436917094898562995139622213558673395645418786491205325898735385657024875156399529491852690423390348233803841932709858587669362525619270219568104709746171759435001558057290549852955633817460381030747374554496947703212588971420975608850903675960640832740413851635725506032147333665393668639342257990360440144684363768294461925914056698057082737714376103473006813575762587260872357988594780090890382413269903517479699102259709644549527882339677215909638968441769047383493986827153644055048569992701652654002983777190909221404993544622346704448648750694821884345351407701266182575629823646524728950965624976558616863764193397454459622109737549218947140440535457102996057252708510872834490043013315408760043312200429167739046783684648646413470218718711344477831780951377636233690750298990897254098814127102884728246731848121388778210688178648168559394144581553061383661137275265028325277567986628026149879509664012371546890353751625157903180311971370185708820258648947158622624852706706938112807449962437931725183516477294123607503502535634629950947854749171139264130855921757224240662815620848211862163774950379589737292215791094127035757198945261403299250995822622625270532619619315069517559360696557004465193434849675292010814647084169362123060504495323843161806893909289422192645665241426438147447240195956165904898687154472483082462654405256390515466662964096706310394132355115406851014730031235819614456894115436740493815118058203424262504258139904085035265981843162111327846749039068616964439549005879056744936814945555051952200109409371440783604243304624538490015054370914778319520097731681124668027350487692336719791483874257615551807552753634117417474427466100836038313413467754480179810494414349821413049569554356122699427619240118263037796865496251442057769317049791778412911989905301412684560410389372294218372196836362895226605128559613739576222774632680669049944206683488980059185524664653883523773979085620019046856225139069913639525256976170205474502910799769316957481370118478136528705625589717743383484093889134971965712787333296531635616035356689722325343682977859420904433303820714619163395908039821995487645869742810051797432420376953173278397725120087812850227623919715321921982182474007903143505697055139880766754085182218503592640724330600228474729487380175055544143434061822834851386826875894386282551833128437406007735859469910502055530692694323110622675452527690733779485183001081050015386884666176161724204218622556833604171773065511735876889817720991688580364712579210620383551156816459410953618794727698930380104597092948100632507074183213540469320701930999963562907735991861009888808415246927985417477021706401640450691397988221447425259552628989624599535840408499230943915832113461541846790621225559654613337128901846765856879066030339844342412867326018797833939849752839345873793845574284599461379069077173438525077094636301319346165930164536396641605468347852179120270423007460417509359005116896909040323948142907478194463468210392138417943845950477564638581311611992514898766314591710072203236301047907651260312479357773065459058839993448209722238875495374441520897425976143041700841469707327477290584832288904299038661201781320641760095346596794116664316751119422011560844828175562137497654918700753684400267069696121713791028297395249726745110627563405975452077470070497923498308238492217856556387591065091977404584326732613151019322336971275510952551233637915480641597313664389221067925104044171715901810345234964002155010066153787983882515824623461883171772828210687658039528446346356423975516001485082979974360549287136853714609280302802109419288601051882845156171564153647227738820410662196199111524689044272898331508916199731952116387827006743132143245753276867583477162207302761205740252473389405033117204744113225715849942742002626771769282729825086780274413703348758444668050373642562797267025151928407709404606173965508376358364504948099604465462247363539803389912923654107975665771212389078669223471248860253017355070484048643899613533883528137482621542264359299739003045084322304946793426281893182924496259600947483599215322669098828531309129559237908048001508301734790183739964243331189500999061286815730104869790079160031552792511509323912675324727528902521912828975330757502228220159329822053561323221143438508704441125913328911907795913505828015747948189065127240090162714104143752166425883611644509872200622212443241816474050172413295730217938513690851188319712900938224776768739181341088037136001485957383506038763364765430543403167722641341660448731817586098759470316452359221916649039341070857465843053330206216381083181412200870762206098480649846273792646746850059171099235064428948720954047594595323236438327143656116177731227015910848131026858340940913248111414075994514855446258100473447055590623230484551143327085251859221897004401397265634517565475775575107310026906017896325813297710565480199720737999817492872292163920330749333740884154946573650523300334152079661389796162212683896922897391792091159916534289275636892768827269506686738662256731781597403539784584091161618065868174563781749847783389218032540616604600612605963880301725231312905171204735760532209409634426665980263060477609971038908250298545175213152855111800160864501653061365993720713356224525658911833883654842327020904424487870341566824095834006334566813869416585330267218699090779950807058769937991130104493470945166623717001459495270161586573651426857300117585648657971229391698990390473046818251041241986965554406639355446363931646673695668576563801254444562982098627426253560527509234523212679152806152039495271619014433877966685010054586837711223760716090515675049193456412973754460439032479019293127973300034931980825150482402580790049315941468330714200235342221509108707679717108026740704409909424701223320333761592192737093743631265627839109664965105912288402853390729958994785692049221045122728622160708827054957104524516727730686313467000132426492060741670297412043420874532449082063965167030599228748401950363878573514220287451906755887000744776444018777936432958505309795344351979190211939041327791180818526573687170556380158006960179570502125837621945812189032537470591923401022785125034654780505960941559980810358615699429904652663336065931545553430225789856990592970479622124566202084208692062627947262674606603550940135075052707219413909976301363781556870109973706108917473168339868736417188591531353315998471039837232349864603024923200794049931724814260377194075395467508208536185391911849289152447270439668957671200677761218391463248903293948491650169280003576197173197542541200936948391815169723607319871577045221610850529842823981492364656161550933733884605465329013815948981523616798990052097261618507212010361266246598187060341203787958323960086794086227187221085657200281007062046945022654491648070655671347654603655832679303267091102337187025354974150975210540602261903629987106503472687140687417014674890047930846436066891014970548681156575518007989497972298048894080121354553813445574313797415432172698309812658639233244263130878820507901194889839397793042214402252014265239533070937903679215267366728515846921375674290840532269248730501906762859940303294583185117134141555537590153791650260348667838393203712474361997482143534345066002456211648594062681533625357261052417409972895181129715659039741894847707252063337867906773750378651781269764449919896027181576204831336544916638421456669586794898590202885063390222756050876057548539632036982905153522946382341723884882899016761969302160238061507138158917509645025758277531669375948897538337281278416576365589063789867338818839976736206708441496078079482727614715266658198415983531961889285219282633335406821829504500582460769577724287341019813078264172405164501775574657848508642549538009511171928145191316911009028702696361254720519224631357408616794248796180327213627616202766297319935594508657847575863969916365972197068472715370375303552752429704966682703243793468199826257504394956983365321316535176241760788461297282380134976709290577493536509044885191527855321367109450475157035944115792199122509594978865646113491609889804209041108862653135834573001494786148904180841185060254631808062954676636492029968761449886112738132635310337865135061742097131917506900269297732079950587250666970328861585083226501625339879859844952959210141407175889450502739204759700949612592045086792901227771257111544520655196057150091694452883241775048344994984434414480014041626446725785619146919217384782774615789955984141276627132298782654591511364515850572752330887010715908507091535765375406945733968198035654332056634213725835116755068004796424047910282276786147629209558510277041486837688982695871566806599865183218792060675278933574352577306438462640720382464333351704090219710173287947881249627060208689317102811273907811891535794954237092914087991127811325542335364819324610961677754889584293462709942750683469004129145722529377989640572482902524885109294444232203895193216685097596653890726872310626015481978959389300325294367227904777075008325767681167144142168101483198057702258209860550481745780740642198464272497783394517624705387795925807415579793076392385092690099562308325049039351575087343011799480071467280983574846592482492707835154809292355071772463157458920527303717627261619856540874826022150979513697853284178807250966596717656780261654258991222314926177598999473341395803472886823938956450426179766800923789121771999428790561699497189328836049462124480566404149584358374409394818379433141814242615521705348617864847553821256471738971784730784100140575768739745974782629392753678920297656536830046964789110822821699940382083288838793453740226284497582377912966021053013244773890199556660831946176832641694187819649415745990908245069238808169109350121784407056772714600860154444463612883216084792873154017444542444587247360790051987082439750783854720699907053924857056511790468478451249359470196269096075203243984178858732804557131136960175034755827855908286087485026891298271626932692642282386434501889336758948985018263349864597394232269322174075018958162070244073839903722492151088669861241056367828224333873739731317640712856298094590716176020088040349648832731030288741652963795699495091971586938152194702791501757232799011276470065562796931840389193158562748939988303254764163320876983035882097558135306587767942115106550489262053002152670908255836733553438132809563897133003854925683345411498358905258430742104098223935835649743079984913079449627331916114250383549174052958768023487785329931087835968425546170107723255508339928159226327014818089014980455803022737606791363717770779954266294936658199001853154377544733017688989849848547632569953595577846441691199233063410992141139754634342232721051426583298750985358906095521445899709248175257228440562282436129735120674633605495384865419242990045890499534947374291402844142731011031709676720352369365729229005793180683502822432192337024297015566372686840936032984638076530728286797065064534234191779497327327943110930974132278690282741254137912827035826192454036274823128209888286706541636861154636156397326075241124130681593337054332645485424504728586566268747604508374620169843437862205418255833487257662760749094304200942112454299075318556054649945656084757670165614930308985294507531611721280826318565636787787033024884716153941133074988951892497666510266657028393397026510027193791182579636849726681832672554808188113418888798882450431104179779063230310524215040139936167122488265634943834799892688667792407997545689592606959483946683525341429673754791350506490130247058986646825962050792720014916963003497382679725421112189302142761754910219422540653898212996757843645051293417910434845595269439049343796472013444738607343884164475344857552850578118413813000082663484063031243150079583207023618442626567582820368857263354864892456228792256026543017368663716272447608709824051803030172275724072680956951249061797244502125222421366821890050482057553380201874732717278114818861307464872774788541927480900796751084044155422751102728933488289972380772992526339436044825937681687240452161610142108232298008920982649002879973629932189856584620164344711831110492976143176626090682950430747431040954845481733769887231566327755807425210641525668369222719885995852268358264930288800933485883235748723131637644753469664894478148394746227037026068554006883509936073464463616094603915014379371998006843383417620641935671583646811615827865622844747778293314051492476037413594593984347203863143936553211548722440296481168823525459218786983536883839493685028649566547816929405812427900631413534076353067096629398649000813441311630938286656200836779588475335107054413065469363609378925511489472710179054699155353413735491840625024624551733210669006599133047977607291543089068512745950898491406484480009150536669874077411972268883674297834964638901253802399383385759475336985087174713543613510228145895658048193656214754181320499381972596056421007596018732903888538675950240612330230680143062975001982381387913090335184078604155218030310606791026116522778537510141545862677885158441431492963660338231640433614653484457276044478488983827806041683514806918943557295156891045733990486008540139048320116657809844155045267327325212067462775919785638054904067990709431168952335042902974871123323838380718993215337584886254122522028409770420607977525340593252654156688016668747994962581455254073548138318178268121647626567660934085260087862707562842958082029066778637143967250586856361811442677056871742062055455173113567928606380560543726486518506620516690824893169719004331909292864019012914865684204795722501494414990122497508912555497139862937807142944391225900099088816420137477238083645639000151920726404534882483114852437909255292315711269953245547190500703507526926348221214052303014137641522761727245714803328859987665335549474568758460008968375603389034145849971192209629517693461527747956500636937851434563713225398799337733394279821886593731510822677203852102895922176435467283445625705416421058534144301703078672769650285030739649278734162976064657599356221301841526295027725380587807549734838356515509798710669003045589595694996285112212406793741132486480388080907988972873043787476261898905138907311816290569433501743186231963559873832335687187629160806027023694529277693714225087525550050549157496674052654658874210343055042989911043340093880954543448026335274695483080892341198597959631397239145095645545767081914647870639855617491555319919638605412915119229751048792646621386426101367614785393244108915762930529490075972440394600231768874899929497211294291150386038587364960494955965585733316690850551456303473963142781547675240472341050909516223545675586573971789742242073320331068124709533946978464982829951961785622986514877140105749337640564072617844763377151042028086626497598240058391907772790521633134008458121685782212612875082199833156962802137993828092105746156593999587105133197308425059339237917234779044442519717517236514743515657941969469968863808826373768093890743223977700607817552311796341904072604847876995695255774074223935051379905402227175695126883854001652257836779395908600173621528867578865184327599989863918458939087053489052485780687292178324452235986878950725235791242751217031369870073355894200208460190243438722117194006749892520482914330064397775669897952547454601569334177458305500269296272339229401961297088996838228792457455794721470299311294171755981006826260051956972535690786525575096920050634446812804314119517783757391808733731590997338690239559115838516950320443358763646360172180035929892689599530429485037799549914070712665678312168196919366806967442038166171196569250533646330166723839659110973050177338613445314964437707716942221772754223521448514108713600977954696745874162154222975940995100372170472063917160350311437569157861862727266740346318457048294716815984260007868692305214631183715570725198031920972948016441970889882351414848334376521095674394124122436336195211883070305501006018020244091861304136258741963074555169421859978524458600670759432529414263673459941760310480101725354276448142807579507709213519146071464192489095014681378862077978181536130912581685696733522706028548006780689699347755336649631246249647790608215576729369709208052289658453910133573486230895001895442011546156852818209504020731255206394774261929552881926962947336321623139337525318089342780698586176186454268282102535240388168387943097242488061955446269683872564395374940184837091615615392930881067506618541486500865836698009279358534688847214657702690782798456549582588352688970847036647606087428776430196044283829448905160958674617098422091759707538141276796515727652814955583312723385341545626192432417421179484430649575636859617486302925275827210329322892441681186641077154691181348592916208040544541935592670418195243026653363088536183985277412683177146760726605389770486522741235369380708667276291719065047588741163590595521870740541176402209312741315705465457977844028757224340386724611956257488093613369729369068325789590304741842251744591154049319056304344834879261747244816282957836898954170970988208138833388485787377754473865880299583001421202985517735503860279233490648084929078553535136042571736308324435583768236529817944381513817243669982764119608220022958640757050599243708257016175260042120263633974367718703394602842805109587479302467189094514023220952055104407536663418395721032372974258330389772968702156148698333514065412278838049906555208629022142618631060081614947025244104915726942651850110747191145382491545235637158670556499314286988614588192240320891267630867081136478022071647946373059096224787414002294570265946759305701334603079981472733093615290222426447938841566032301880326659487831188958933096937533919324819935637485961370183526441629473922236554091521732729079395530279045645492671556301984889353646656637215090056948271993823989078018105027786414748823342532256370712576863192506213428995267331747476552936063155233882692739632051168786043120288864199442555115881971074479970886965749345650096926171870678665582090700636664101473423873497699481801914668194436460044227834702175531746284637712113572722443025321337888756482943017194329028030853504615219807628499617544301634311230298649393103707293580801506426279699524349664770924707598950172883671780210510580359609737895012640722658461709792599129209538996310100124080843147764020349119806629736711511365112507934516315163898242933438196819487072923959188169890763589493906760763792078355335303067982907415944082388400207667774148542979188339224247220640241428317273456312955304279740969206255280173132377895824099064674335060817004322607314920884427507452060626195827455765427403782721966637227328954754235844251433101974971821215682788072649175585032042665663940446930529453827150395876232427084417953990343993451313570585238201112640981989264166711294793305004718294885530841673963409717897922232873231098444444332330899214359448335475063701013879915804069818972844829105822858483582413762742834070305643813373793304354998679622849369061787148095750492667458513156658442077365396511919647657979773668846328520044822569663537781399616361663293874286199564116786346743373404348459947354960008119645168122516831730345766679924080541123391489011763861435917723348442406003189436618856213099294025181790271985478166276108601542598027982155906213821908009136139405538493455030917920394658264786388873124861088387985551380283032265608912521482027086688118320076489983690978258675437742975405170111043267140058071150592963378617607992837534364748304160159825005096366429570085330657674698988413273627909176737419296017815437963104519578578879310575918173969479830637329710139864312846004652885022978582125409474085279355689591710035299419502091962208524187585272175389651527543168633417692494075874896990434263014348083927728605363664812006491676732023004596683723941194483680342122272395864326647599563687416681159534008808446642998241815682290047013982161444735241827916587377505725802319108038421834215004400476287475479901227638234466712620570261323659435860939840911649841176328106978291268147693285394890715451240702873081651619966148779943389821440313172937315715969245051547151242029796147397703770229921300694563841149803753757623021407943264313986730493394147835825896853431100899603512957547188714003516327712357593740100316320212056891234004019188005100910948894050295462116406651245210911974069128482433179410968149373216948763388138394573718708890914539126971560111578364208727052289059817297402485306549808498576142871161488192071935473473509230513248455612193506503474061844299228964170130445005301742215320450669683402911159086635097329258583428335980939281241793512205013450157175483937553503662798505184269195581759524868276668984518950249088711615684040102986633445145877311382518199349111980665241724418180209628992282117290931482686959369775042529882002395936069695763397874545336004837678329843340521255755905545424215060457277146791240864149687665244585515394365038299133073797281612613051018988296341094217461888848967153354757396693859920246705299838010461309384505376658441594226605232610587713427934384915509872459363330094767853392748168093841187010159597755372450162014383894518677217232782670174545284570839570572216901886657630795430576462741189117790852322371840506500378744785322205792870996675961470461204415752033584765419847273193771869399703016546213764885135873185104657565109466621423797796786525324143085647614780679676962500824368134687856634705464490221595130383124925451279882836490367814361750152484949100292496923102466832553930595810487236090082739141709325343799981080274240652972748432502105285464339165559827358034823323441224427406580917176039051740091847086870231022529613389255489908153363352474941746118300038077046908447946859295750702316891125089846387007265462950522590611140891060689704677716364129508207571763013294070606367605653682141842341844262040898050101324453914146202494919680433191618766733022391920690304413706693053879389418539464682263816607921823809335889738812552902926303719597060265698228248704148107101407796993886775563440061549647745585479529703355971665414943246751110648947899350564419408117481951267680157837396321925087963412461741423414129880523680750334750833716070517397279322818920841150691812145241400098144098191933968047281003859616848826372094709135280588038787410369487210449760719341493513384019586242918744954799701887523193494382877731213234488731714387027941345162873486378692360308577580515927187932744706550278982625774447597158282430724878972484498358363759645663389039664511879842259942427198410072258671986735250485696675610862207250778592554676563410746138955889488854354867635723669172020088657358613581187630960129336105612865890450923271184559242458455523914553259740420453702985768005467380350913241043842754584531869647776022600942016338897125095487943644985566948995053899217415841647299239467305502729366529344264120877410805252102946981988270596984549216380017136502831740655626489019836270519204364678138150995192795061009539549291804811873209568883807851679685551414490705708440502503760813952945838082489087245164586662592132299179443987560556713554026270133506542547804023288054181558515934911518925333542118698534268303870642558333178194685314177807940695243037412266726738108423736148367118025358317290634193281886423432729499815170139912068509391418729637993094535229696214427046520791993310512036447994422954291679529504140933262437449020826726263502694149400704975987482993399832458183357818667419300798614972472906061375927734160024498606455613936304274193547748304679383246221665039893399722638897086181521873394076151281382597584448798423194608960735644393177792854886927286444183527903107732887585143217840958996743511141867904482593260240653401090360777091954725207838815283347434448184562200497849924749665186569602372964669659952855992096675821139982895589494293149659348209024547881916156792681316984896142942440961130450341350272741917315786348995733511910036083467040616766234563812794474782040056115528597899363378223334776608512420045242118283814733137180076179799337699858411312000886548213823926081440584238235708237749955266204938289392716256120337026268314714845662845482411982908041015915356505314819824095521112089665568650941609170551048778712726904531797250666419297441083362786805860596648825408545109677731706923613593315858006481142836130860851441092892806165825060855513761510066337883728936426081513076382204885025510958319801319975668922747568745116312685382529996467332342971996521867725228744243561328598820885609285610888406787128286379265596227335231904511638751154451285947247889429527071995542622811437831762080769684920061242584686366332110465519177453949680898727503337223476427674743966782527688256493208636589809966745054531593950070977624659088560091013733437415087998735815842088036934903938314460271796490189833863020998450893075197184500387677930710103831867156978662285561046912996684406924263114854474780465512368726815694014698331667914747381761446668898555177481693956101608305594679335855247285881967042701837001196817811126203393588565998610625107023826312185009663433852004716571413226804352239845965741365719638516147993787323279896864643065469215639080400594547324033292859991373210744121371319907839548081520999546608024419708899880878717950292642048072960080224565503411012435465514765498829650026492293995556436977768182909384913623237585900598441270774841522690599186179708592985272131090960160808143323340948470860839957138636319954397673957595903650597561411945337567511164800408494477714210237304176307277287909540742172501457776538653229218345789780378822214301215275118676321493053076672277669648194290181140884354405020312795583463350652343431548955678310705436838364201963764243608959945939302391990780209820737010653541485251252454133163743311447195766730422805626803208285657528381803034037934876445786594102841182056278495944965661921141953952357298754172577013843840244373935043641703236571245253456474295747263244434804401566192871702227639881917486259479814246497293864819083816351479119290711402688551156052157581790950750086422799264262028758872412399507166951486101557849072021127001299179239360472880899886012337063794170125576584718165120561834090394495056493726424077556350404750024365917773712861921360907595646494630881925066939680957645652456486615803683953944182147442025143011648550011550000707720906702568571614788047246944087103703886615035931665991589006593173822119345346286832816858513740329810005271805988167639946944576820168393477297150756856197325342734343796630255397102126332323922323626124693195613251426086585806429760715643442421596538783649466744658469625941451511797216549212602253946288465770143977904283578897574427275736329030870170279328876096316558738862601541831844120543190339716114506515706984183851215975015703183846038047501469562810757029183206222328621791019090325037347569365551359662558753091805476501442461536144681159750177590466111974244514608897064159769978050649995952811760612324835085711342099227911968428862850465145277782359362812944853902670822341482579392135474002940075072336077670799269722290283096238832572665955138586989299890660583366316591379513538655128519287124904281777873404424419150030014530393606751950251191354590127385678700902407491921985626261430588822208243412890460299286539680847520580416452424832329090625587504824476207030690016504415735070881414531063709243610736243676372970604321103434536169558418913470985717187304518965058516666022816777838587274651019256295801775079714072501510720587455129730525351701806948973733755454152180729609436660216408876384301091033913865370717598135314961835234147530967883548335512990410354744727730897375215998677465581689142110248517894326707031198316516530058701466715828735888888338853296306738987484524687053700106744293528617210712489631150996485027375942124018181086434656458910495060818015290654180618835465448244315093995822546403184623266691807068324990471294150834886102748430630350236558879129283707843093402330933574262762437858707713655297751258304955235752987398101534466926976023083761306647643532831792789771265119796961932976953647187016486737834137156551553130499560570152494799820185447690904122581108037199634405415144557997371398987650153175170517800945729957909182479487290154011708805102975919734807762289054013907880658070684918292924446229139015787035772807478029791054408978957270039915492725067471045469321287742678187046409662633909165881389073973440464456310141624804067319957307116189861218971982796277239595452772693506375454140920798419213360542066559717429132344894440833957121145234212195324105417506262435500922867162854165864497826232438259288098205327983807654688053244980866054453740026212264061200812337561447985516940761036780800370127928209091569855504561983522094904654650020205459918964935291107448421374771260121622439076164030927503779731713224516613998454885126689740346687361571024127813755282134648656021264904213835287378450963367371858412726351342690263400038201297743024639810111951845361934623570803448069361521108577774460642889602439620878895594483565418992295234572211871243995791410016607603032303131264213239889507638488997859329346056529519742548935790737850303951911665981552380900658127042818160316156427875251897023264028679416161544971227138218554684668285044894789799484531708530900615462912859999989228412894782148463408911940530545546464934971034783510459990451593820357747795481542421609344828736420674774149401544886602900887840834917157660971926226091594055782483680038989643529223034196282924811847145199605396815133385032303791068880663059929371385315517945105465777660480074617615539231312386118295744288216048323773312751896904662236821187860733647962390004507989226232303018484191016679763579960559453669217657837636759403604215978480481097357333784555418796918136845054355986767929777008338370781710799370304010870737102422530104511278845097596968885892124376027072008394070315121423937800479750051130131363230970094703347488220397702909596635628684194216624158230985154679452589213924607135731585286848709737919680464878713123042789108069619979540707865532966689865263165116049602373891717117643879185330069384724377204823186739497249294037844520962953370838105893034962458054446008295551899316357895373013818836377259498169303933824091234771875772469610894531837116534585281018374983849367559063243810163460432080977537501159270841621938666671034591471816886348283243651345339012598800078174581307088748725538944640161579701091965126082292566320815992985291515209757261396844268224880049872471245063750803948970105909047935225202588265574727228753893772907201375131831735972939492652637883929809650111348338097703426068893418486273237545033118349640734089531299991359002960580969317878143684413035113582790516687372972625804128229412975134033305505468652398119658886383403012283382116879309941673062113137561289229200345435347808478146787852484658703533721124239820204747534705666216793471249972131794838331866032825636813615827097291236784909264918882991080381051509203556874323842716727323274689790799030478437854810399685171889945756961093410085656487022081399359468968855926881775930582293427085535906905989230757860061889665848741826741101955598078524452414369647689778100531939836017722507960933013172886982726809706432068468709504537013920166063531062267393719811611592109862108256712055214877719580876186150667456773827349502784604397284478927529365741734617844938501361720930174423740477267181226842596607207123241632570765673000121793632885552008701026882943431346389652026724882666124403799721884860696127289396533849106933413844872354808592704613343177203926215061464177287709642311943329604702994347526912071720108659954579602764383918051527351807046247734085000446310445338227879505117401756721750225786433690613671794227610291880918803369851301153043029667879927560580033351946031687341042683959141201180107889325706044381970770535581187392051054326214386410253568564328907753031303133479635500154293748811635959487791593724631585203896559416325744231202146816426863025796065163544758686321005971955895381618099139668686658464903839606973822048938594834446628373907370457384713680093960653951374377395647521900351723694779772945175951884812112328108713080903057377599666368139922042179125721215845260146471275527525349321052496072615871374529834520226213233271934949838222881307004676496151550208718356860978067912025869238469367091519508985482090666518088166522792494271811255237025122675885384354996311640227657106267198585802834923267096826742282470858739550817439802536823927486639178184561887444233956552000332472259255108512232616313246471983186787959487123473115092258291993540704603610507165095110320972562617248021965086382101520391383446387475096007233792810931370596286388970312316520046282716493367561257228899406625532520773908521648304124785778577551281983039790681766908801057823192374794599599055996907658653630523350837864303529130579527421217769374458383269506528680656805547398147312739212603342559559989888601293890465646039944117174841999294965654324197545694193678349926466457262784385903241770130237765259889579146586701200474916299821180254842370071907711398184699130655128266866397628773071083307056711705882243567503097828409957067324582949859941603872768515247549021744443542681712690910315855924830162139985587502899489237805291809031504356034999733264090465465294423300113371885717335186606063779206882866738466989652612749978082403686448762227999854965877594130251667621985272063721306464170057579219661694833476880449274190240344832597022298061030250619607888489019200021723381815373171539275292493522218826128620997553338570036418769404478268641277866048026701499699167334938868701097220358612118305231427712345612142398846449826900392498945738608378299948521306175573876633569619610272323725932845552695167731148353721111226555752055671533905526617696121714943816976397032065217123490252335127412373800865449886582050080928267341255307641214052191024415710345498804127048898713197925201062307914494567771244055318417544735927504583579767751906269685559943758680141575951521694460040422065707001785606102197498101461854945923769857988179441842492416780583409885286034908510283646309216987169698302796223879865304335053684507468104368269405059709005578309980942356126018687080216893749675457187685526423693941538142716253146193554186197237934032203652310734908625000107893385238346399618974123876039400267809985616620112652266806158620957288541274604877935504736856201548641479943900628570907241394621884409754787960761203829443585816551084311445474985701904638524743875961864690005497308400701269834814745343829757299171630289524754385851327337711109444847773396853214870617519456344753692618168016988978687139739144349832844694468686372380985188577088230448417634137200266525533343140921605731432513581566567329156212126973755854905399621014059667540286840392265443229318071169506889591101386219482199994735714633987404639770641889706298950382097699058449986203149523116019167176590014292475417530662120307934727267995568889551219064142999945500147051967439246391650072295061118215103144542311200277176192274123816848353198349422871195726009419066564677528864615568848774366317697170533155757270972141071715502518088967423396448475618226334761455797198499826107620613402857863276349263346790072229021867746392418791908823072891563792457079465972399287420710321154621390120103915084867792324601735565920376603621197782986780064856086918159011331313395510781676209666559306065855986155735014432234388174120718516509358013685370840331618981150895251785235921028975134702482207739216914937511194324497361254547059659006555285124923016355216454407874606503424931935111320363367164439508505663034974723532564963892085577698684395325677094052055029511363218862216307407730023025153968463098573960177241111970652019519362862169910996051625425949435305569816978161891740429965755163744702539000078702417120373334457057041029959505684377099606986132520458604196994803484239388027621948486658934373726876481495750104327564234662426380633239078642785033415368582235171933894882984331062189875453887913758278001128533591727032740259711042949768023152895456080797791070846876787533978937257030709470708465546962649958442802880377317436449100659404944685615720562548560363182545664526968185990914858892176044727289625468819215719364000165918636864975403704973365222925434139724499143960532518424145253830456121165354441961242939972239917069641452025563922711208382313990068440251024599637669443042660975010817108685466138775341810489842092225658805697949765015734411818156980925350808489623744849758073068310121091092466796076666068601682239961582750110052555926885168875031394314536573356675162776330835916446762626232057424148541443794321190129794335185142362060294703025228377188734415496338893547877904543663508736039666290262722078058678124752776978525195094314406207175009084072507005634749173029836138129218601797621204472837369081828252306546394983854797544835658318690016102566440527414475464502759507533953933558797724554615104429041985987440439577780693839743273356110417886175759263847813633661862934486739401077136170985089625215751953454820659460460033482860324111175790570219205565993422948351706685110663031768604170281520669327050426980244656055725532505844870566021088360935478792151740793949180674877565567409801924249087829927908708419316079203417263668289373265911167423966439295239019363254666220450570607349328036122636152668798278424642513784857637809260536581002689744951964734890246139619863605817061536160377426983908298231977574001605430787537096813682335967622539193140437375284165129191342369187269613268286308306458020835411287170126844455333080844171949200914855691167225501120426035425088265358773079024215881738439527524722518288479456587667706289214034836226444146516258278989337424458474890755325673494714162192265021217365287598347687776923800241507051476484087371786483392735004662599355934111351459563421246738495853727774925035153623601866825255072884086359542981010865141942699289543078593664852340458446669292092980560554941639177155838780838320968547749584195781970923796574936838716866239800461794422936442503948453178140559015469044500284412953701366180996216405728659011205802260542097280673713802005172743779220874926076635990546156434190234522274481626178367492811929646145637441688518831258355215622624621608588152355017987107718251156395214948552156412407126170134127900356650870386465868149929440880518395171679358707950988996839249699797847081168248963121053321886942068624379339445162108752546482756225048347348507096230796667039338661974810926271086813205906903180230365111815320167809648735327216876697407166109802117347614495134239397413887569133990465032703707510328424793223521284198203205682803781722031368033661727845107182506953203374174692459655421839203456805447477477130239457212376910782080687822843839982097935484119673561399341868632032567161956915877690099936730303143331026547621654192914117555609308078537148179054501235319872141814298394511545292043540879282159022078023520973294757551508519235592174434116576651706803812133026036713166065564722056307524266035373017401759058600500485724612544165023281550544942500548712902239144201120258814344082866949366043312741174538736118624945834508405195806755311198292344012318904027946840708045524371592268164183295963093806970511950898424406907860503097714463233645090982535498238582868529014104652072718582993767634737435560524398870505553986176609823588546556912336135901399233042967955530739646369590785252204828779569229212921706596017372269441420636350522065828003779365642308572523014327820525189076832703898206721278966866948149263272930535786133208433584382394998406125443014624467211483398762210408418222882935057890190931679313843926324144637602378794106593224148562496395015941141963182550116116467220143857896837431967038978006563518384982517875983878128302092992615695861554640271802854425509527651350335129902628749449776834968398138856455905403711313098607087999626773335484184756205226402638551939932638378398423609591848002136712259297462378867334470973877052911524290513586270796317102562593560766666877045637922036668282933175328053939698291530794448974135011608130769995124627641234434325829758163036978547253203678242878742190994486464331644466854616577626256817762419485197692659822990995742462373894594331425604494726134407512231819305575389202995077398348204339155002016332975071744735667917909467427208871191399300533660105223385399846345181116274325285594698942261818129242527104088106474291599158527778810520676394359591312986971107121490392568077768575642350333974452268555237800334697801734607828243089283222485285117943859840975732904038980722834998937354219846167602858589194548203755347011514834770821602978488164592162975781816627346977158522057446319818043577971523335612900852258206530378781085837481567666520286886845549539449369839167346268325467110556228334606616528214717119986564826852913477267041505657838393460337033012788141878532187759271501627023393666468574851358974743842660884567026547769847793954792546561258913494630540249539459044890029180868999975162546109101430886733967333638153272557653160440862990200842766417370763516331219545640802836250230336964335799633872445012048832335963753428987194979978749053254668390107360031570131232312523501556310272775434059204023893781280387086095237424715018273547013856660016222847430672621720895994981507193418045130751807518537860675918708075099896054712240696491094214531818818379915524951724569356923506957507348547235657580799021861622386760388445691815638949555942684887115064978024438186938811973064341226968106067364798353555867646022891954243147140567577876237014414636693164925915062506773161995018798130532886559571893846196786639176193233593117194799772376758894008093186890830380085138124873829631593001296045927629551541837123296216384860656908730848831635494320232566236445361929511561000316037474903268257181234221360521467805312692034048431300016662580773615040673391981631659412657272055480781289017080633412247250414634644480158406914218858287467575382231408533544477771015108064861210439526760530324234179143875649789324381281853391222002258109084608811718690611546996626108118283393272742307158598152037684091955475168904755190279911850291310701774958398637085919120514979106694505850215702200542743378859300405999196174423040477517041153315260852328330573980840812872022239034505785688891862573122537514949271796977078536618611411803255489467577541920689774392782012812695815322744312636845742590257932751875241254648848430713640676174288135972686800524865160907825180017903345314408205541381499451522278894441700969389359306720757222474937548750386022310156404362656596948993791070781807674654460077071851049999703605921182025323728933929531787144430112876999838109033878167053923693105929533024201665929643490291358790215867572349697855860964937321289233923956909697386389305805498470021762231899352024631513259343897026863520360737152004022860981068013093035720039375649390804638404084538182108066962143369611612127895911214803676385770769870495970411468518493633283085980915155773407957069418917407201819497352628223578294299499218178948405417138834757103223251203737069075249255261139515257344386173256701693377210039759166436071742266948402892065675194473044203890943332069348313007727601021954721743802862188954812735894428341947853374254055943888459577963228321903987732355527418162502636486552318674024704346704754804745971631298204585218975176481630068125143880967713997045940932145988759983093808302696550204796021960117605871263977168157840843381063648674676569057515277505135001871499836299134111110752920631303029817782165733829197475676857691239925008903743977529694105592326891531632809158472755343473252153833666291305144312094984887519550742108071635381683033467686930664315289557095603923887864278764905216908719525531028875565261030147967276323191228565910001419557578180096611253331055904299660302515840329364197174680040682861460924315960996710017624439897814422729055603334748807995566680286423218692335797423172658522787987218721508412531860802415722052312536190312429464179032049766509276360458199893473858601556281142278284008702125715058219616047073713929099492098735450785724338152147001856090312703467987897301399736841574358744302739038862757642982722578202085873219331906700566615718830455951486208585298591743499679202987970887265825911360768374082875676867452657706665854864641012418072476553178541690266304641074389739287956502178746747801670209319134318499243763031319093900752434088862397064714959207501758319825380277543416255767119291757913126364043064883735136160105142799650849660589564059277829003876921573760285048858847672057599381597861536766021978504411792868302091652811549570187190379359838051557611413285915181346514149239030855608751672318861026761229152875299815806233899935915908605409020720051258771772722490480956786381745754730085706275289884899927440802193452841383804562649711373822706928338753365840430554069847644362061232552314257351024770505761585672343578177731125866296263165628421346098703501668349259645575970924044073393399571925156481760518858215619624187075214214673069770219682334110376040484364463461958170024929195577501448686285022987879852403764825429843060328267424266149531892543381805285385196487277071086996515087071820564890670054742443955786936595900106978904937984625540350219450418383243566877087097667636753390651079972632755918815953790602584811954256290247780131470523394902860691010426020666546065980468853570839092876642864424746536021171159122590587436875680810127537750910639346650828723337533884271462183463251474000674447704618620822067066163254435590774481629998415331508326938164462149478213959146160305336129712844165280568724079975376769443060114397450948610570712707356611017829433800216295410217985029591980662008115809542098117543314086539722406489225227449352332705192946869761524656226750197368510339554562494035084794121360785494752354792708489367894117495948698081535431578405963237801302591414831947829009751393982095336791371682535764976081977134436318233463330545678274043726167990195780127425206876142571284219251363692238502562759867418737080439628341913085291436699476868416742809427225347878093754296602232882320375822198266493611525463837798067581188491748924070394443381593474071749360597305089438148569498829699525942804868518410501957756160620707713939524654678099608375249428318754343784248372629458108527494228946686489602431323125330003322732779544752940154798265970076371791124350429595358600456194198355474000856689912709990414331281973089451902920437718940774656645728685602380100831373147524483564929012750156092275730945539016871940390443445410472283136981884993283968121764714277290705348862194624615036621824840686890419967482120460720201191761012393284861058704772172696687791367981301608581017297706512596356406849270614559260050628527467870274512183419264879503511284845816726874515027616615615418266714819084879748263586667718532689362705498078926350637664888454400296054930020152780944518090094756484919165516248016458865251223069168194122867280882977044170571030025454793977091758612459976372762975480269927159016216511092117370518022607706909774404678692438393312541749479013075875857268360691591704469079655854917538206208466398033818670343179231108885265178625629179314969964179596283462497890981954198228331096875790416278003068283995253308588857989499532361003597945421961686084166203937542657739832444184456025792215242348144888984893341458848801176070499685078855736493438880160492076995606064995681827945915692492857040968158560387339266219771847446376246698915303984138398321314276794504124312808397598222859372871343917907192581438330878588730823294686829238739269809304851366025544746620602138278072128071961604365034925431388469629939561656531535082712656982170039982263065517163514234138523872435229307684539107707845088128342744892818352073097726158494656465500470020318226222148387829433067667248604288727875570734244521618792780950268883083706076659622225700272867340365877488100131769247110897540146737942639615060982114908420868228734521293463511685125606392471156564208308738950486415023283096139394953036177704008130048573127148150238347509744278200858448455684342492678527849529835655768970143749142250338099760082954171270851227097523577927833668825625428048500857006186855675211780618055571234824326259310530471456608647716402598059181926176585444202543513177756958298031448596055092647603424745125484687116435531556684678645323698570250306663892054777213733388516394522612398606390817986843790342477294422701609279795059222769964587179697690969338010797432448469908435873081474642332187853028957028888526487667586225535109022470109684532804408836447697206602684833707995702038773939581906123051952108496109746133831120918189303294116543575810237464935370330546477592404025642448246905333402420708243597403476949157486796228341122372008105711621783740690298705221821459727130555609908331519101364280409188460808273288144162183441534982074877661543162249585380130635879743662785559071163371003567611730181563659787357703602528883258684277245534132764153090105201613375749772801553107838900978170499158454388349995371884911865973556245040613769899293641689736927405727689295656846339503142822241048878445710708802999632128780146286033370989958802160091634027022993369604964826778083651452822464969095226515383517323614280238596098771861731024215089677688898795532292137704761096418939770569332735208357780511802316866066756041004767638878285887529998948406083769742526536309774894701627848148952057198996336410598891385311660621368817044172965505242367897416647645227324561980391654125984031419511113654174601007837442167632519107944578988950725530557448849717118656055811176102822867003142452184632355359816454251251747153052088675543409010323201313864856954653499894670912187022047048267878118856466018611250102384920972864310585248093303391304509065464610016350996493896884404750856750170328264493280689662891203386942793850298503639780927110745728787365492171252120649037092542996644863038568179697902825203418438243753002324009214491656196461238055864597577973115362230937019035613000746901139645792480158523544553736741728356088493010778524025845903583726893533100524419826707168269596468679100821674535840226677802762395241017553113627823358091712020265342579709534706148487180058787838466696134326239389281259499111355456335119475772422895271108675275987429232235527149753064319345791288755879234544489691706759530599180902301559172713012822298873797772355987770110306789223852158051345382768943496455439660205699235308553294030272759044666635786897070870235368767416973249585977765298798268029597076289537116924997667141993275423356811764236327363303877730436396342144322006291972661954163285270607079059080508239228142973989819278687562291973653970057174106843080476103173521209795001403346890832813291411595958460731189032967853607693189204210192731877590007803228289670752463188339793226897325622346200747490494361556340141322147884439706780968775928588069189689575661043288696446168999615176100018414538810432515249845643283477100140316376440128943663849640663509122361799462687413966777460440185114788007571732458526385651968824507719162253078350540725803075215795886806363635026788740104780998234825100336712117136175281138582785003330072878867640079308371884916761791938752276982189793395042656239573702800969175370167612154800822860184082343698804748583395240143126239798529641288029962972886277645460411489430136865934407930891375652979724934944425093991233948725140357468613115028414190247621981105766482232914691627261309504031871580376981416654775147837271964747019453385910636264333720964141393887533115614107898549443918797378168574948299493123139970298610968025537405805549476423800283073336533712143769309275357269100199952644718382173888617085549104158088553568943533178452108123061908951038378776592248973343466899053989426727226770440342328259309323681535804333350559134845039193199692268828169450709503646533138051201955899036738253260391506965565281960526682664377757135285913546728009694681812833351986199949877533821879845327280634747501052205184042578327199687154766453566324211368546142680923678949706961341747721827245893143505724339228353401974099847352451073141066087570306239133863110855519078995249309116452443219146357136131667539068500856273486039274366547923797515473014552669297572400920976917255850584729213660250840291830204478950185064950486366362786688823274631424560933573367806042766491542983912841069044811815172548420709373489015510430228836959122403345781648284896161617431384112881042693473405897793833747501311725646253061204978820688597167375879638225888939072469212806721375597005833886484597274070570461030386881131316088375245161421110285564647433789937186210591696807287387176684697143140906213592051618595829796655896586610134131843502371024051904234583190720954386678769142607112964999281689943211166779435794464777623505769990462069776410582505884040022180561872121532638182173872268273819166838473530902728663655284334046526658126608850122263786213467033100500226308633285764245462590882735294934852378476591173626056302385852110766351919342570542439185168469355655871788684501999856487267646596856766058628892064537075308608326432605700563665816749772660094833239727286929874709724589590816419790438270525076990641545366349112680090516652316280885221852537438572949290977466052453896167017827027684405133555600460454164629453370052988691507516118846793338001534621046731880404592077308676653481620374657673184370355871197156259994767105882896433892408602515009817190979720431492061765556083747810612481449569634214275147173101020333146738413669219516228553115201998134115758181605624141026582344090998829387667977692008957531089969927428869396195903316201375451247102473227799871075430391709214141167071789721889916167771852942962978672892338269631522883532621352478331895525342403807315051087477128726391377546472451175795655259900485593656746767126305430715411108330223324420464115327016764460210504267756861616891894357757906968768132120815468908537951994655388592683970952129621789335086389247965182313779752453173645936783835186627903786333009517306792293642595316152042935199326111673128894206708312800327460214191525499317170778474052877204867583508569802462890382795288979922466193869661588917606417466287956606929518145346905313903473288726413106304030155374551090314530775327321003163071318496467180487816169048694354007253277892570439670912473679940843149087065451208024060321003282463317357622678462227409249303200625387961153630493955873841315853182386366314879465615034010175684604639941369376973627931788639749663228068079301993133342921435670724477107542781530412535729548514030023003455552978283390707841042581816378884409285902053390632235183417300797206287730336600098094129588398196105843510570987033412796248185860224341187216489955413525826495374261657384279856975485150695619089581153079999524799980484148353103090997367344226660124004991639754828496833538062079267747670449247348774685883080309452091551821186155622591196734188909303309799359979496409511943234644696494336444702849175956472573257981981255468294461747013748131960184920865875676841392224222235158614443454625288529319817519701510800268746809557722115266341318500729580504619027032653500018204290578431272237437764391983051231013044657776545923400024828344345577390930855904914041898622594004110662277200845734152274858841853644512548935218146792097854608259619533957956115813538153056472529023434349648374525955498783467785165497032001831685349267746243820904892569768762830588905062190169642945986037719357419770706200250564247583467004172746559555557699747564486501431208828144292653037598777887322272121911533950647635678399425201158783969248466554624784070420904777786782814731973452577045297167048382825683105721685959289455705747441244400587325000902703626037903180191221995451836919698474845701238270615955769581789630262712334078472006806042853988729115971904445065391406767882353535939215378707220384448357282709937869804310902608459197569507050307367976226534139628859432991767696743808228673893914262111020238571056415907104893504833956089012895717188374033508047965217755967719297967810304801812831174172770959511477044045580704020736426459957203860464008432790697401322020257919365682236489785279612147971331238246260494087091423231735726073463378387433600545682634965718165822032607393649638266534189384900349589065290558460433635893030876975572925616904762810354007840129425431706304441599914729899403437266892673308813175879104930765114508462008421131129124187773460353524228283852664131334057346877832910156609934438813530102384938152209687721265698972732524721265045723174216665779032752871394582182954013132740023358694337682785802331267031391851680967557462814929431273430667925700163208524643073200094133451408224906302127378244174453730075280585287965599153221444487210170266107482013699318524350114378696680894992550703711679286447784981957174438655110483790271643725561034180274170447250534542914987209284485259926918806711902492069051457247071984835884405954555999619831037036581149980764193083757414573458904820617716267863875994522114457615571859426196671560065438485477690949384390693842993206986312321277783088338637564910406461658677030643913225464982248990344265401868933480889629926457664910626734992427335033137827016885476092382267811884741995984984600449387703149818588478111205586428352802634814631955263228257818115606736953942758608867920143847446533070991821481458233484179730411259196229223000734074620098091380219733119483873041906376862889416774136666876622069345544551225451579154355780556296238473642812755981138083725854169410501089923403342383783566969963727914922755057505941484779551922025215690989482627163773360727444968541149993223612312933779483659917097666077206992971602040908845259863452498509861760530117453055277796874684309953203943689713009511091697834486565157303243631595614168081715906418089293389872265526687821226448667562253295651657499387771973086253413631738588680102632634973283061209842337115315252801154738761522937958028923041186587803583130471080149553693994179341360003755424176661723636659364833905499167225509221446970293856705130880940685702250666979439331376695419364341691854252735733546116533739979165384493082133999756414587909594753391043364279179658274691238031847163668620527296407925748811947132989795332760825853917543682296100957442161009181423273017890407650698144266578664653076173892028404673218085670454512280486891669417190621979717719244637251562624028471596320915067208749880611573141157409809369794084911830235107191068866481017043306049337768964720243837546578757707561621039666081811841198438798259662054079230730353018148285880127591078039910677639286274665210134870389612274665118547218953904152413541227737849240748113117534876474106499996236696101903102691122541757028791834901575018546132371811637573439327220861263892255138591685216312976262791753986350804896859618156663951583978607056313239046101743764778420515978180069010637231448278701430834497111894323166655078615428875741596982425369994554596612800283554579015427089695047973822425521613900081963481348727473465898256194374543295713042476999655775699946944711387989530763558791020198260519048012480087026136347146999644843703516149047259132905274952662889143263026565059003660238430185177256377283882103703282893608117172787917143332161963045737732285226177168877419279962184126273736883689122432945837209820405580825535575530921115800984624361479558273918061187578194153648947077272823741868748893139007844338621371313620348636603422234725511036705657277408192676372517884623234180573775317459117596068554781759494525935034058605024811012089449253408219607485797329666502130626634542511648414672979623589356639242028804254804192923529922120137295886067000796253912102798864071294237419774399182302673716841936895178728274249919538586252914225162318235651204420488169108240585951638771955584679681511400120616503163601403669506117257794329984998247569576770050919621871864579016746232424399843157246256203728487368129995933071795494196561122664425881205219180004790989127665079858273110090449017518526320171262149982548978884742315604369243397660329462195445118235811082730191165645326495809410188649553979707259893537180972597789508981705818360462519564335176275383716785267127456739947344339678229759138523485303272606163105748159636480159023464071443766422700030283663723635971216810906742999226975869759855576860649306739050520359921493373265493037037594096799441247025673594636122744607090045471045747801197495962858700041681115572441760079941821614979056325054951087150477425842543392208741082906581833014326155867152098705630383204756113990651375729987235125255368268082692317331310906529734174634553642222939873513358954479592462984514730906473259819977700918749947236393817047385203016661802720128447355673692013407608907994468577641019486021266042299859799241370849756359911758391212095570081507070303230970123396627725977924747048052111083636512984484946308144689460912995830179382585066511148477497290169526067409681982001328813229194023472993940960126439154291453746792957552275027804986499155188128193800058104681588880887280837283094972660004312052311394570985878142030312853984252289651628564948932382905522177000626922345643984306798623377862511240852858343978164978314851117999697627417065976602237023944899450032670207885102565231580799749725380682530496221207246048209116760480541569808043484698822184200707246807485196064826190902538791899951333129584236990565927654848478933980803815809990362330683339068662992656769565326589798178611495011649582323171129875776853252332764971108014736652300247467884222451025764622320170988345808354820517737721668540458624563155298513645567800478754395956479196201004896702318369124583277298078830625561850769244471274724601722985940004681575213745493876214296251037892855896128579000183982303384051648113780839128063405669484500490796394421636347271295079545156080766758574051554401510971829152416361278327211329841933434365182201695715395417961086267824095960673860512003812387631676577117433244935313810868959145552278035158068322121239162136904290814114206587577750121124134816080860669602940499649940974256953157018272066909579276464563172910253254669053799856030858254951318020630423056679247887630587243563814539084852354263649360724542214555486199673439616040906852766887771067027738079525514736132740858918399965862205585781886206907100168387137366322776887245281058447876112518196371748877860081050871735024027183413715389220608767195017488964294516986558030947604759315613425984017306718495144920064669373273544542210719250839404077741088460724401462401067658028116545105532259073082660221495322271746424952395542392466716736915697169391321750687820753641508443396556579134079017419381548911511557731302498364271383395182078199811035798650019101510077328359164591755854189297671834502855834532323483684911780044538847199517454401942710121515678263976119264429401321131608528187183879866216887500445527825254878961469376532436502863000933981649475873487112082562124253957583401903219003503464803968752834335207835566240671327924698873296088936510133690440163041996358581816330298340218798523703330495602027231895146332110704156947959248873307799578178428370327415462383762619477209548158751513010789636182097696532903570754835806102920919717530721755054259321510726545791046903261848571569552453719941240968504747583229298632332631878414944115800802335443874795452929849795390853389069852171249686519088326331232820227658435360352519752308585253797513996521022078608640954954016434831725045408457798179111168909998448518538593144494196281357820060934078598677795108741590549870562002075977715471225393671752656876430066055889021920282881773294926804633954428441445750411397094399451465608183916621434643898508819992461903558289979551298320621241830407848808264634253707714378954273694329928859295578734129547482043991488325370327250112947744136591236081283585778175942604718218756607107006998985002893761168583139355919057644862336492499710647750386431033762397287978832488402809523118558715109816258277819906494531958931907469614780666978058385662822880426278508865833924327017668812300257775573519146353763419026717269951348201822488321953402606865568900072192307371899809000575702159912500420015204768263898305572704504238165144951239815792270520907588156691933715308224004614105713605207061637405952600002779108597119205397776812294648716762296533698730184950516523854675498367759758082694169960207243582451554710872654238890236315329529923898193410088316765207936145226498350751859484227855162819738862202436457671129130436740173750670759055935152106585379308535537513435380461547774777569931234031042867120526307209306439852232638415805531970896704115186544889620820441847676727951462352803633687687913700205887010985344864230537740916028750420951988249408262387780914827512248042074264986166338138686232411088794159235961462199849035462461665738398566539795960958731941983495258072800322358299322575171210337812609879147733465895454873591834109449413768728268950572343316482743600240749369542423381585571442953498079847265455016810784344531192134794344529724655647709991374572108082881769132124007939007928935074918099719914093156318656876659398585410715980933456706386295083645603810921507436396144789474772050466981851760033492054552924258360129144241647081127373729403008551713800574217780878080301056648997118961445651441216090516318247502823376843772530203531667264352326350310210557724848237500343343775754029314451220688763458483863213453918314941259556057293589475227746468161129674855991961124473194865381387389984131619940304938955964178769738442543938929277376420732069756018072173850861092120404376431393165057226414339045674456797163207916185820883505141310462454254303750672661343932202307170761051174573616297204759884893512722718258146926259204791999872247855805436813497888692458356906487967236316737205182648217547518718385257658609555043303764663666382941391326966279916667378125896366459915396094805967028169575227666000227445720596710719259494455691753473481124591876956516983922188773013379325123606467203128057975447501362303211913394313342063793268867256090462385397476227866222535800211308904496817072678886518599441435705863078672659433571925542446105950060489635325666435023782095341523365201999014208956363478297812958929760414460766749056747981336332500629671129572591218535313992015942897565976566874839111811327928408217009221452456738901814571336912360812671376722995172719440839060134298142880061301828840078786616348337519355831756623785436575964285186640686888538180175564646604163888101059982351195460247526741503669261029250292624475715152684962092406566685743036791551081901132764109359080358862616400422582008364082759567082937274117622577311552481485094610126387128011334526719822617314223345005078043594048572082722818259899989494072470570094692948118071718581614063325066976562162176245849042494230737744054629621509930577982243931702701723102934527828340272712161248675790564326170801497866187286215988591771357532416904335015635671914797085852974099479548388240769057550741620151181340431242196245375745174576413967281867442612155104149380671588898883205620841297914397293010229527462487907678513325236982144487797301462694430666729448772610471648640112908035297903512918768923155449482260855564358279719542299767019499095642287800432009936466005000487766521556862589297156990608142815145394783550233948502643470194639031387099430505132057776432511116989095742157767657297938807193923662917777503230896555066591004386814132792773758495347437480152915048980704143158369321363439366247608724411005754691806423741236347912157288666504362791314881781555666357980122497665134564433880275403885044609518282715305492749338558542433604005763490662560743375761848073402331317000413030464278162466041642525604786645894293676223116076795830897074538704993397790553575707684630261220684764829367716816366012658064961700917067742633719717042492191460722850415348111272129616585242518513853741885961392025110870635408606196572972078452462556061169783701680272535495562136908420794049690966818229792309874760543624639322349938048997298526848839910212703188538148800451939938014675863238436478062616717511109551727985050692461442333885175439040569550043932556083570676383501563368604275724748430129063776899215791751303890101808333432304469242035177800552059450811165386537764720989467486968264806205603659965557900887109701657268031068891322876038467725238635001664795274496740891389068634824414879779274373611400036034188449107400849482757288716730325466549732498886811075008932835433009544888741883659524449179151046610168601197558139759824483595844549618740866728937477125831268835531961843609973899216441098973619648784039924868202056416620721483174532273226465798324085125955993289920643152159759822299601314674168896692470516765142651219089335982757409045685629116915735652064538782106507363275723809348377010303314252990006376439591346646116598326482019997602145537952250929326236141077759222406084465681456216094109646699366283352308230738751027105621958340104597672624366577402155131566671911164719913009839799881176344109420364453839898401021735007165722105193259980208458232318122774621549528274952314246436126247763229263080730882707984664598848296375605956640588552000638807845530335122519347997779329530838490643858008863752800117028843656448946201310193623494053470888665083098427152722988475451314556779665550477455553380157106016611313214372245810686458011771457526627279098629400193504760528065133788301132886920369883742056581772538072898652146996057901357994042848685062059750037406624374932723449196571120626679902153465018494383141980128786895863661581964527201847122302941291402203744936152402550472486783566785607589344276977797864533708468530278194491634263003967236568057684082458796542183467320869712500928244033321731571262151668795822770925435593729585762860145345243041435360616212937961908781929138944925552989777151833621095803874709585410725613257335324297220312407713151760119762816452929921669718675322942283947309324384733611984512138825766212634754677030093484091748142657227068587307735396757097540737908046755348251578733269445611668159966446733792526882943662506695080852697343709380799139982399294023837194437927422062511870058700348699913025017066416415955337774259092714217794027930970387207987473442719991375677518170623409174705845195101819459989537985441489794496051517324327810321000635367971465746129079665144069725813341211240797619039875596463237399186394518439278542099650853010873343743944524222627743998700220099440779294558295733602590991602744026719069672954703329125450736788815429072791445716161683233395186072489170474084664164148074118550827258267566847609820785021789824734866667963621487294032172253423935695172573285038542388821580249858892223561025660839911153594264116319398088594754106584066417624319854048709925214409224056110731531068105488587906522533599038458580581250460720930819879479170873890852746593383606208100680480783695249363067019766193403144980546802664675204920661997362391681554175024361764348043792409433553626642950460252866157413210385353286720228676726981091745401028534606241441974927997853041756792958404588048722934155888619272026198110896909234614204774238868065854720799600983655580302257304930989290520257729586570075423561468844521729379132515442739446679961948638574097023771594461988586771200476248679125919359965229345431248095979558055999540805134990949682808573497422737970338895252934369064306784723456887108899637986512791734206506260762375588955339658092436524050146654360281383735519068083572542612854556127355650563336398935418979987829385858141683251302510623113709041278749555933228049384251014239200180230290286831424476294108705310965907049326400421670734060083179049916979847554777451539594602069087948830061957304708688650963485802914106785470996349888853936198606958507767232502390683880259095358689167427107421817418639694343907377672272401264502917963043316648893441204466657771407467356706791862135606648518361729479829008223146244595086667590256184768275215989645357867466715708357377516904164833887910679922044646944913013138429232103618042368367823255948966308969464464080174417186035032733984402656646581113371763458149631044710653077469384986761337540373972929066505254198599159244346589343773273872437902668952819862791098770150361990764024353870374075267732547230701887495261685140110862047136041304102320031466535094380816432460779042582535070909484773518288977111835199147809277982593891868470250718140266449037803417054350466548532173662655826274672658413049485166744408748483047599712230392974718967873115966444977906012227907374791731224506895353227712862569843563477293867277961233598898415929769464493554456915413957423181739891391974550051933425530054942522646197750877855715066891492663425787727319332669710376557943498718030690029744287449370932657898528904504269881907905343445411595699832563803918922837412665705325575875146112786070762824919653902514147678286887216395358572459748444891798596778240173830097521699972456912125319067383905516632132098594356420083408233743425153251470437699517213745176262336777859623069694058081359830870432894094014877487544940722782896310669046060888632772397880316418306811612089330184868149077371653013645243233274355117067704114606517624903775086630251132484086853620237652440027807462472071096989743797047355381363610982100500546702195636302739103732651217172714867320401370720616597857874132196194738614489763679626868568691823058002629702840692546685360951251175918629857973915418669042868221854835408898362067139736089334172029773150273464012023923499966424698841893865237392072655864593197754485221089140444547262935320601456483937521567729744921083729667522072779941249057623261428584507580343411496080572469460104521501438004365542805352037974657303203924306606895053635092896568783309254219994237836833895583959473036636131392866686271391564524099357745272166641176932557450463821875596813363249390564661776710408094859650280344582434867705982638376004149860417148797376648670029701730828242860419009602062352941566184082462240499608899111354133363669256410215189843882738171013798489564813198407370387388018691844628731740530639600827502184799988544962463950258484872522464698360426557237012396741751803133518318776950586083841662868499162176346366319345167802524150700671971764467730130788551296866475405720476825275893465833517283476372620381519646285702589626246019505730690363617996197748837663684716271006909598314946783054770038456095469964198208840303099791688191110912249752774029974530242875311735646554079427816352524572188144088613877866385566944851856243572899266998399619634250352955627389934341882669891480360935735535554135091883150466185733456940264106572651553625554094880779790955982379954626400707451312942640291019093573113642883457795485531896359007989539701052024972101704213531030017528051355151002938652582845741389536692242398863386096984847629442560230340121618241724587996051396817486239475523336995409481988285175169159671106085200365347694850056707704515531366778967516581139885434933427136781048610051740632424465080968166187725613727133859361571908877657627932155814337859439846622674920878303244897415219329809896528921416077242178956604598544476061237317669791094163591995808511247997707298781966740335996664133286711163022521577586323460336709254909171083944880683091744925961074168293115603777091934518110787573091436751078901258150656827406478864166474327859689099029948370800026587701616571490142502930971903500634133629357258180763696478309631463341223004545345654803554868958314707958418885751645106521829631562125798729818042047434167908523563022789314721626174970270495637302628150521008127776769841125890506616238741369056710359018022048972998169586451576790937256131532994629563279585648184149999008978350360331134075359395077411953857351096084481724871008772660552885504886830056956348581252618618084807834799762058925613246416540676765657051153812706529592523699484472355826298268074226039070016573526945253253787022996199884692946715492319457871038967202989688376887294639780779831349983241198973399323196709501290859060302151204083115692792668758844938383267055613588937373543395022813845985437347328438438576658539990114271564604860770911645765095783511103118796387871162018671211152428599638478245579427375258709301130356021466998599500590040950889569923053316804329807151590359678964523854525115480301169004697101924175362970675861314635919720558000551512261953889977555680560996496184379194613447126505428252239524167004232486059184277742982669583463898688103527552574245298288947964519759327393945648574235695959400747015374245847935269424655232401420019122394325387969631003846166437190155254554689447431752830112067025884041045504511601921545229293839270408060924621847115758804839559389326058759695265991268107078197183381841561409884666407159153452881836546693290411406185214570295178696664866887250201214257708617858520037266419264906409704729644828510293499910203767977958850036312635719231450125029940362342179853450373748203404615515263553589854934229058223921240769794833139231508826901327029636005375664159704323599309648602377144218313353643239884411733244294072631920659778228938576845415634387471221666451456297371713983451704483725112609023702178956577854729099552424278613643340987378981228060236536474843694299299234858143004292281566446814116425583110118593650915643422912619610604543156405492081833500305148467811390315002100977162131762421694711209708926070352481231768398464947724268418964926204663843838851805776189767241428400516170998144094563538481377504653509124655011203475044220739672389840263538891715655524558793762222128184571942297878312973143687211741515324409655897096609052475549672029716361737012025397463863861862096278834534126963663831010804781293789333872133127068510369676664994752404091848918078225902497040382108584295468787979160657023879611378073120024066851092223544080244015397841338998114598957498240168629209670215276260898723293561359082930953902024240045534581977087827050397880551801417548482068730538286914769398476279783647470387943885395965694038837827408185478852046659572617522528456624981063723503570184636520627607005977842638946134600086922755127676911868147331955468451743245899632825135899856439128674614203619245502530320054930206806199784789283936363290105597266680488062655599797242695071351139648899602303672622901589598633983210691042009279765296674065271412426273518174268804115310921076236960320379889292203683297197930706252227129553400727940999943522019515621025054605126069237986503380488652059917127935141610580931866102045193311273953418938985480828008092305214396920358673914539148702841336187004122189113480672318216825610161639521155709483170068952703484687945302394697129140475074026690550105494995974513283033121547907102054622317391406285154201716513627335805662022028178827999267685702417308003379757712271915691744759523854293657544020378782087812989688721267658621976560488818963986255438659849147523525509393032477475215169114909700369975338047208138742764960562363355672048917921914133105795317402677895638799830190448831880912565043173340923097559869675135512981234745895787329088586954210228575406479573036166627131243953949395995169238520705374522748218908072077475666859790348334133296753388868335550053016381547825087190685705871265084169396791962422593831491072230590990120648769164041890364532896173870274933432479321984140523963933216356001261077372725166126482440210743742774891356839494269602395471979645923103241075917923884369727950061673846080365629674001464264880332792072769643952715757839237353410180929505475928515097498004128420198069330348508042122707798235509891038871284830368160916534402387800826185281213275933030080219858669260954425926735153793855601676766675410296352560099065162174204521975247393673954010598520786652227924313964663997347781790365232552480058028015871298676240175126581645729051101639088872791248024472823856560083151033578720647036231663525277925057148573870567054051567027804826046102427698836132486748301790673081418609729846377451884094596754414507367549490141712450324619588798817420134887554650849294201514699815464085088707275486366829461028468394807803466841519266292843237426586755647737228330448511933984726926329701533672314361642161234151875351579588593523893850530624497884873806945014148161194000624155697577583805811009786201087590402061954031761176682045653182802516616005422250519758227135997883050209817742514780283533967103259134668675794384971306488280184582492450967326110185164298837788017925572492698720158567684974008587104231534289977234874704429670698751202221796472210737112954591711174291866234340449961460023743758573848959265544095469493314903687202868163727843868668740773628783208098454374188051520483680732242877213199866305162601265368947619041101101910365740988757258177169388947892817844143195582613011385981921708801742093855686066662319848312328810141111864596630656335121475233886459623649458389405953648034703665925159196489909229020538101407055355328426370540570851869948216624962202184069532652700772957841871445031242741692191702301509158297817860404588585512688562621242802138434127148216585261470405666093171853289401348674168111735813763438521502282467715917580439279686823869967511747282071103065684035633548934961708491468172578312272106503001735536491596264088729835060878678690806966992223096044905992168719901486556096661561706500799934707236097666421246411684456794318328245798584251850269409177779402519339471641377851059223648081273152355955421252097468149615240813356308405562348330352088900177169298259603913170187421937642902072990323204510221721354709518596305029694391259847659991488517185746334168767215620127838443638922895591956342487006645027453182542112341507025239199740608988439205382614345650010965925264029808762175110941181178401334306865127228835644760806710458485696758423915759091244237029743553143172481056627491093494364628156804566289370102300605923622831725560475220499722798127967476065841937082578052252738844823674893414938485169840322118041568551603468698210052740497674468915092226062063767183829671701084614686872671178027365352304971015222864161204211961306123751121542035279645619366092370359614603536438528472187010718474434596709110648631828199982193013503622131229985296786762853937390134307634701445698008205769816112148452922032344010321165004195741443337288773068941393256995315614766659191654626827858585599315169355571451318542350171327793170291636462734646133127724683038253911042799980460644717289577997649868208718099522277268749903709024044130674226868031800098627973242933016540496306432575688687778530745947205337688031648810962050287668630925358813239934766543414623028001106096844590796550609574443967045168769960270139127974830083373185162869445459508778561213682090658741791830101409942790768263481783867010597102196729916210149113192746947344324712651783910730089500809985431088882490803835629245462566395347747494508090531196019806027995853097038949763724068499626420747022992142356643978950433971493477044146871833713477141195120537082778622564725877555967792837564671288673744041023750451131691021445385946561203632961836097936544024671980185594555007258581084735953601138913595196479122780074724768442045334467106363477094098339379276796628059506981733403867264205025866217280427216109719438071746469592648936695106140698105800117950131067062662445864204008164625607096135047567947403140686280008310771692043137269630287777959884445821015670747109980900587525288786387422703518711406027926471938451725597831025947328550703211108107109305207421292600985177438378276681188715378140274482376388283541717196995247083776801640725552051996670966290221958071769357118643821061308979481140119414715660293514655399346266815178795369808518499248953487828505206459863500082453618510715999190543187337492358410302570656852648384606444393703739324544602001807008949916288667024688853893977660761613973534112897920173706164493468901665961516024540384913317246056612362028826565639871633558951686247042354678638648592836827361228117146703880409021332426293082240694476706716264175674227014314267866910683227040333413994257597780327969052737570213925393624626396560269243692604821023329180961236065830632722012604457816826903374575481567569349783250652891696890680277247215424766178203755801694580177996450574232365893246564310617988607527338905332185798756738396936587167001187248737138879540671444984070249880422279622529822660490970350811947931349178217481540434823764925708124521116045423414429841355114688906526500223426741261704021324506895147430577821253391550048737733780808897540847836871455690763564857615347486429643894093721524506758814850578384757239282516183177407335644989701647019386308501519432584703453959075707388696316305037210163160772468736176341571139403695782222553991210577629019333821672092791011044279998502002446942806087722556731167641262439307794060338171943753027822188558130862224019729105731997510006799727145305568643388539617683160766076201287908509482127866428299609282509600585748527085390541932642686634515279042764646509012729462225102848631804248316521495691284846557743971051746313095221976879143361156274752730119342701212005196177496735896794961319542921854820683327117174324301812327130062132131774867008331947963461632619509036678642465001080939299670183859177907397830937988517507271815138995475106356274683635119608164998819221008322436998963963329666809716111744696690015157815540011052446007168973653493520319418702221154184885460171451569096705183665087426954230104684876696328938145643882234986979457938454636758508409048557998991433620767236998196666478293064659404239916551233206635586651798083096994789923169193879894119945667285678658656092629288989596089530571447059652398369470569306832469377267300409671044353300629388325258872211891546260716411296709169026881172157079446868997442025266524673707698742353253986630887468054929571259754646064395530943198417313811099263477508383203943708883105271435622661368489594705120996432876596006759580819301839109112730736742009619120366310732296669948989402191143790267233940260931354688804198332692299248986658290539194431974244918201089538431604250934936676382933285931609035608144432695907891877755523525534399730701769127086595486611497769014520907981246318714957547152018559139724162313151856891731672833033593068308175168108155770778759351703132823115422308895540806554080259446608978579736687453842798613840149308538817234119828782037040353131568797015917806672927556526582747398677810209041453676513160518050542596959722829157116648082378185844472387236461816510198638980189907731186178858648517898469439006280714011675863517416120648609918979355817782562746220775273947773300861922129295513445413656407987242120391154023153581601097261450983806221769491847967517633412335804932302527396104300505164848748443180675478517859177364568522533138230361318776320677498363012070599223832862605842677939573978493091251299599376554971941850392249554011817127507156013382005079065589501472058444816883245273984212295263745982938494360823790749203151881666131925671013162794237905232763843393918831842385019611455626746013014619167128308246168321649646823460449433670236583697827493121445455627391113064835383972311139091217803808374405320840251371193072173051610597661329398594188731181405156231361465899676487653616562565480037776811597404536048007936380431924964934366203639478596377345466271185034436870017271040154077199114817244087166167926041883955643748924370570821458868871411883496305171397654793241051588686557336964899593222580159937062248837138770448345749688987503326598043646871435036500216507119054983737803558866087718957138155555011343910023934657720025983255449991899422021901515302789533493383998471436036961717146032351357261037930921657371841467324051638026484196411652318378653970332530857197218076915203129715437457900782280216303276908759154186074975374628439568186782711192066535228189027153586475554013189639049166376914937332596380920237858836892829756166573599296125100125881265686699240429386630587486266444215705294150420226121856633213337575138762761633183789695810739220658034114242510772304113118272612741231968002114345876589825757970353254683842374826840197028212980089155624381697499912882216292452268198021658533237204564897454214700485114790294931543637496725219807538755087721671348320913935637739643198018834964533586927582540616186645199642283063216152546023357106098436834638402555667106708601469197099308186561533153671571195477792889754976034332592941003889328986037576161337267628073630368802819219741845312288795208378064766250328772813893104829183880912042826313040170839475317758619436449806619510552440621326938363510757480691848763303948977724149262751342455695913352324492463298171816391655881374361112858517682820900401035410789424046716731472367408698636387865588290471049296043733113641363296949649723455025281868677636890569781584609495321175185734923143736713311843520467173256425284987616475417469535242535216794944864053792058993616339498565606384265969672152088906447047018172539054316602371796618409272928489799904186657691151331525981912331209001087248611723973135119904594844912557003795317424556311094762341126483324810208497244707075209651492234839556471571862721329248359555109159698094888055222729825106710032351687167536028787276479338869237235503506928025173658668854712512529020586148958542365363060275725902675533588006159168801588294936624286734122791526262636410601967812096730600586615683817097104788015018793403641973373116709101579332579843765657225890275121805960040580696516423612795203741038166033369428746197960368705802558963278926553768352963828015318178944148997823122147520242937819300770082519828502753175816613951211303816783860730444941547499917317723071775973371713457642612705587013577812667470290747086673489300543898243337713986502672596599634269220666233387174338776685039284713779360193321382833586365590587070524160902274855692427635551844956967029774401868918119035995551447238800258086091646949685954501400927057697784100383904063912083386320468673600037800831266294975493518139091305132286543512062268025548279056989990722016851840544354091371613838518367426222929492134334781027954508280630116423765136924460894404506520355951879059424572345886776647078312812099697934861798814433404163638459096222934221461688684157900359106520850828464796026943374069634798841954412584302948819889898456794823646410758207790730218997598150828073548229670757083265429126468097352648025496620932252703468837583889837188713807144569326679134879543890102467158915188475803173991612332047543872568845952533638210326240106627684455580791833295243966941562572579806954216394064290914055011033640874104885295525996467394301838477137902753349844455675037375693716009712875897768747381057787304798039740045551048360669871637141393313681310379297986681830689562247712496836861665397609003290657921582686308307554542506505097466698093893706491144579822213388241302209696416319513423705258363665094586860727411498946768332756138303546083620237022722740656255201806727420134571498458338325617402255160306822053928659060281404488420559066840879179646948938658909637834636046956857453896945503449903580611959474735467922601534537543554506180338916052099202970398860157187223965685379517083947126309795782024788640834747946883614983095409868951015445527057964069617372014734434929098868413236555787870564091696321621750422600799837621290398337879711929311405172152036055272563119854985948261991747901000139624321192477405166100987487883544447074134812354795988872315520129125451783644584999804511691269534357598079340972980747769259125008264263510882960145333448692629285823345746850249709542484305417375353081828528810276775057820928181865441321100381535507705891337446629662461892772893434340605681475883934918107737955663166996372896151535239616549744606534832945538515073483427797651707931927548330036513185392061218244009391994818132112051135759282905733899041301362992741869664435886562692718798239311455119315345833466580912661117508807197079995211159104070427863834779264745634362633175185924265005039272579246977825984325247645972344292160764036081469577238591425075797678594886284829084557223573666273749427394533940980845061786878735058557549814204453295166809337058232809458141289810739673845183282820474395816983583856129467435511326794422328184854054710173649612147294974915285728064208997912977992421350182214282437301209307189727963186792208559388789642595275479921361716041531786433402298619973695246258769739148140619763722226791010959984614672904049620765209232794161890311685776850046825785984186549721572113275072085970790902816866752559717239980775436079591157284226873054285564311684264828544262526984678115135303203445137334231539738402369400043855011183923820495587226804335486412133282390111360573091966190614367338724927869845845783600435706496743854371194763546763573318120835992750598056261700864158605652455783543296892888655858929412509610586168195567823272194597794912419223292936041490757878042653906134367230980713498313978212090789855053521479543084875546667788672245551258620855536639082448250902629789222132185107695521300959607124840400338778434362163496535997689577246967090804973277774340976808692164797416125940601678816995594318225809416876397166917044320550143767211602093657995366434222964940835849140671064787457997767810349168230964993131538015814359585192763418254616130212175997418862647415882064406570982931793363973166531128136918301658636818592457687396950714943633059389309813108561358718758128916398426766714825266977079358436749868313519300954681134404426106344970699779742773129639077046538077226396268790824368714715133476280504316839847911450468607648120723422840915444471948517010562032352090281849692215995275856045226443171639827679428297794921517145326303113515628881736761566286377918627826497930443585931242912875686634527211111282298492929478708872055365177022235922261427985357918324750633166083564123695504504798125875143732051946692001900437995406608085446242020507414059468847667947946694009714455757581453381997340395517337214124134198958008508573820765987801130185503982721245255929255942530946370760699556635639007880682542416034046119757411448766994355348377674347387906566634543740444521743746794619630413720827800392834672588922038634986464452537105383497198024639541522230346032987151327426538807425566216713219476874238183688957311008491572316467241677554490289370275407510520171478224129968953973120803146290194364983929576254634394090875908445237838990319823639522159785764089894200397481616633141801588644167390204123096083998013044121689336430096711007767289936859804045065170640863336469187686454118944986286204614474499015445596923320354820271005087275948057199479448252312188601320234127578564503158857498276122481360727795116998872536807093099755488927481096290365901139325245061444797291392033693125107978910521245398365020764923128166910760495284096109552521601289387770336882951358795105608251721498652784045655649948112744822687211090610873407171908501107811627884200155644572879551029782367321819437006389925165714771375737825272420501450286548106753424127180984442104640207099774356926535897547434219876282990812003541501027915467794590544612002341970508433130728441236696228409054906240453740352381690974855897064661750215836763747129869102486243735322016173527726439043697960343147806450974259749376151970559969350308001026447333400754547864961983587944481780021360307668706300103268411420949429010380899038776683551932100356062938556197075195793122355275888281785167852253371452455489882488465373247362161077998037328448052504313697779178419294667984408207710278681733915313945961354997885498869801752146340857993695525785431980375882710339750174477050485301860955744295243344314323474011856992350471279721548721084427932843693265995935138478659010968355107766243581645690721648999845053688364449523852395161698819941271646512325019884336935482032382756659570391930480578552140663862893089611228678383073741764660507474194888561367940077145671602042119771718718278391114456614345812623813693534963079584416486965327897911610716113805770922983645753706782935148614420415526225844418589648413797088913012877249960291220271225553364314017175834970132750101587495681177996356542031886206551536445453373022859039023016872033161438257527401087045239432233859159321592573080112703392114778543754637941110414315489202367048585108195194925068245916327118370079359006019460015988423353709494052647975791836833002719272633334332684134777055946753295629545540598327757011991329856511201159862334847018154810221338330694001450229149943598310600409008352239797976596930750645316897472992582680684958049235274303231407834969733616197935103030235304701307663452680693862056056935996883646930561761275753380819692673492747347474368610701541562411186947586809352009488428752618462765190314988880975472232888489679944987373681191542891167036636743597475873033995729797787212188435552210943483960839618534692013251534445321201751877555348782890216672625617752024619830386703139201015210266161467883159492286045926612921054092780365192675429109910635676190198661638972822244537272719259613406574790179077105106145971586238973326111622970909911031682255721871867668450293078881319043588171990656481237000369840053509048044091323044519560805124852901574897309380472695224801950804413229952859849734096712261230742156545673490510185570746283954475933520963512086827197695873541642352796002629296288589807284892884501391328964487952562098730219398179014842086744719799024410750075700703398365953101437075860457043192289334313018232492073865175100121608474614408462204702798090818974328795830804346666153859357667464593942833490819101543299377872236739385859229440912333809919545645720801157993273127803556720807817238152291527384806461053603500194374315425092866393894954631465544249891710927255548496495066051865420306266444814975332230820079316262833915727661956391510936964610524895577882035411383720511572668814537379364625499071349866482379566418444285205466329856172848061899217650208894977344393939972578111722091152232236855563772389168757546555792274243693563339953331470983786977354234799499510549895543052848144906990810148692335846434145727665728443961788190079666602047204702095510818864677515215452746442438733201176837800391837414843066390992599524916225253073759073132600209936199438792565286023897864502175846946279666822862102272110325402028222541923720796052873002447515150042741347875871256987319570329794951498220485144287381332106662631524213752532278095739668054468488111636312993271378328878640021790356390264254082129188342270366582597966576242126971564566458582361122273444605865489644366280187658883292121411180034489448430903409023512184200917908120051331889548939459064840455857614284873466260899515218672919707920027761226632628293008242389731553408623089576747313413152897393439521419973801199521675810855066934939663156085118912672593406103083037474883488630780997368396421495216712435875206742233206547056494468699728895719354448812005557744525080286254816949030418183416858874738104076280248468064418047071757258766349335611538834560548826098186070164203283311296531116432312860069058698253991846871154216017185828075758875637890923752245217183204630998399845894954308234364392470862473912073509699334118511746245379988375388258767892336190582557756453161063926895212317790274406349200647615662342656163620187007077968882917797257237871702777588933426231734680676979759675156777005442227024488162763708188772649160572292149328430911032225244035041432891597010925502663427463362213232622846211529305577060268146216522940872235441201217232169568069250873971010935133138946874312008442148246779187153506092437016078514409239861543759796763115712003371020558207034788502978499036056007808644338494018063787343311523249865266048309069793661747009918820288394032247337448407168867584099059630019678722987276962908321408642997157990067379154901118036071708110532891921958266883097684928574837636751288330465934965234627092414885058887493474554604834438303878851517184263011661453457632709346021372270094230998534020549505159919814033374210467146560960910506395443165044659999765858297119896465833285375750563013350229800134122888984737993724283656568085615611617954323615006994328893942382149448171220289746399439845638175106488448792202331453491018629607415367013522328869883241796856784411716183823319642448780617177824629795423814216746269320205741181063462398421701234370447370022354845450329476113982243304038562994406137481448631789478267155586959481259920677570638260880313695783787054735458624619031832224565079799091884003034568135696050380069911318616808063063494319583459619198080874815283518081644488034549833315669343620771040842098988503760885540298502544072555571431372413759869614209865918455569636127756701675968283017639931938186597100945536639707526316971935329992142325696800880401557814218779174672871623724794781912454176285831050025592836327546774341933115941977421991701057238601388053468821409630950786804559908019056206019960556526300009151282444841005871814824545238666892415833546489052220818586003731895966712453759698401697801495338901268000592547773726048070930552088052958718129245699568946371878521975442862533234718210551393533582457605273824134375799801743483519821657101369693377782657058493985168429282507044430792173307211073822777215125179421260449830719972981808310885099646164745158410557215190239224648078093686504168439844653960974180506814470978748436214969679245391637087615938911141128647120223985813030200469478740722035979859349730201405955056761699904368497714996500133170538996587690314684094678100490809900199658591772608349206145290130343542977150709341177706613336733170793583549618711406282854473105242942378733044923849502808391683810141508917596085778193174206675486091517240300862936208139533987418291462852150063859034653688464128412399219146826731943252244006046093159249663073282481565534836028101027300001345930381707239085227385602845825394780845000402430200013225589120101064170576480973212132497429431579445583245655000331984802770166049628810215664995032737741452646509517896047151034396832792247407319408596841438044691335185559741381120028384959216247077175410176417233582416155652703868526552519937909285778969479438010256335857105722203732950141684080385478911393823508556692474098706626958949012691415284223529295611376035319632900788444075947657404163776418601685880060658726055866181040858425966956175888457662917007929239072253256854674893966168082972879509687079234251554544262200030104304868882939341123861544032765046281435550913022816499563197781364125634421543515007188218525065902089400979101091906383174374682452374698345113832808462236617399960383641483187254628097632718346064250725785172467632974035550829307158319095741429975542655901668697103510827666123881666020577754737699896961973983850769491241068367467271094372187884556031660737631477227852396292814682261371479076327091724227193898450415313550909420901151235393389590422164111326465724091845940443469486755404248474871799956061886948978917420505953716311218214365953083114586989690719587563085221639589695591061990391756480016157986866811348873645827346721864741110962110718358754219772560645649541207097366946469732784201566188290151060376520573602747891174344608895588206652699006709385718727011358609728515071314261747906690676599662935707973136262401896543219797530462554475515030562860506748882079905897779288688195515574752435761944219603998300918909067733429893156025194764807933029505530805498833413959698690302917877407629484310966903315280603629957901950115897799073768457889996641695880239351403709453823652316104509575357626222081476924967960300041677795987345851814300825925803037279144916201128559641947971614930801219398075435214434685218268485280055645895335509621741751221621303233684512825333574723582951783364298529733534528253762829555903053767623962987471581988539815645125995885597928350467859197188537480214881955152091463853215005567865772395659120496994238729072770219262349156170896326276400898105211452706709898932153380216451393402294152894210574236677772431570917734892791977126428760716265005063757621393064400626787787464873666975298129456044728664874363503473043969139909237479609440683561939074110393154348159587554567236397620074388269925059688307496095862687790922782832769598330767073716398201914988998360275564921056383988065183569852778046001031713728322080552528334725111072472462685721577137913823165659891552550960726046914693736997519070176380936322539948961025943062161773266533721736860974476836664195301947998905523263727234678125194324743997438093092118652995773092313847130158854663473998010412493029980343532081564133227443627434081656748672749081737919078871334353412773598636390327365917675706555357833713542310115437014035343999716276709326944794601724333370609088027623486487668414033937022922115173431590208681059674446826296440315952222740927841342766599332077768267333629063465567107682944953945243030740807236008554964152574489278363029285067651523368032826343463613839030027912859532272285131131577999216245896658961622669502241782955815090110902922677738424544280766024338100886181265848854840031594705119656923462400014306134729444981280170240123164021847108339416897700103677364302622922885926214641504395775240202281767646765589052940990007777612827206676763660622634586293128285783694253826821052472751509183670570714621260804393006294826855527420600752790014865101914740916394582913429048995783094033625619899835653805178132375790519348564561178519065570801942675975133895446120177932054785879943930117852332381811320872453995298009602326101019727843166848780299297993892181003687338867466808289503238894577047232221788341543312995727991979616170866214877385008086247706395754021766249937734864121616447415869469940131722288046267401264636684482255659076316702347507200499160632107133783305492273581942457844045669048861383728840755688828840001216450454679033029078664272127234435820448291116822603669139756851285179182449308640885011100627156435896720784402446646305711118162442100555119371432008438346445342165217381873526108700665277993388316738531666819245195583388705093526805051750297309627279822313246520704460173527023440934345519288277328512201495342642488208682436134728991914735758212230193586755800057568286636416175616945415548303133346682530064225589397650507705404457910808089517250285816407896780788017239474597738651469831808933922821199420923042541282470763755208346984268308102335986379062056318664624662330645356625338412111717295924851745458523172886732268077326906121304615764298634893540001920102856700216550644349270268645872058198841013133617339243409008922269309462823341160397542260648413752224393110588297591279655544188710895537986471855236413280276483846543391244718700138613854106224108480501013262751103140853746007576992706475821355684943574598815438336788865749239632725609822708137752793485593003850708645338437002619375201023109800597619708887490492090047841153692941338912160588556765096980217891954887673711665890452983850341566344950683685274544087618231104828947260595246327501233758775908050829669004922279965270571500160690827141297547592119656804851023867481896836017041264183942755308257228833589699405686148530368678323842901689033839008846234897150682990545159642838614517833781203823743659021036646916336030079291884595320542426844317878395994702976901967160620009052195240216255397608517847052214668136894698073627004974571054309304688910422703786116260213197159048866337185757383529985628219775650192978554897958961761468689861744715929744842786992950911633783199219698285840976638664910345472373613257054869243309981325110169240855768349645836515802785144424594496778979562494281917300380141604689353984892512015852931273442536310447871686741372333780704536596391918614917588976661868646328461836514361664617354899412715851119244316297982363666267402421159105536649931349357941663825446405317616229986708587125223219496191972928061068480947251221059383383239221276574606143959320586357883732256704155211408406284789390016993729139812764599740929229379700200821863631652355806322881816247661684604895790548084532678861014002593807430589320793389697673775165893988640477943130705145260304795866984414329293881642322800563986913246334706318235563534163064084423464894895604470041548658842031852462466706422661900191621903469431244291822970830285307332674260561233178630630537642035303899920461810023223658430438911491159744580914097669017531601166405859724792640011334859239123947870943028517545736602631113576165464876218679189121318536437033728806452522503086681423563568185110411033930855951928880081001827424693471205656505875170856772714647362962755906637883737031509061535224371910111679523487960318557430502999215474795756617032899819029657344610955610393544794556199992858156835445076244606520961460588638099961394492530465677981529916712996350756743058204508818804823260222335307043234488957035741204164883790886159842635109214075298263292569895431231301736386303052269118034066126747584547915876164037737647581597816154543381374526652911540489286430118252589039971563575887232118752124498459603307403926847378645090222695909693500490935841883202756581205806658553754726697625841198524056246617506153732531375877835683395178138353884711447156383922398101583598155984429884182414594042943406059058736790748919642522645414054331781305303352502471280872589289054507623950673164093537217535661682715713363951466167089027897979997362320270661601561272295172624114044547512825149741583769837217750901808047173791338370906965999904282175025504195723391728158055580294733588603390682426193687634977248508790242416936198159318587815492664229096208596866469756414099358297856880234055283020324019726441115419272420634944712462545879243164463127255285944280059720045598651135276061636982296989383237962670984685654970110674883912085195207356990762988306608298100974153839336453550998935744533474667363310368484074113394043594238061221646864451995046816459429371793794451096414403491294264978184070920902418671426224584235194978593057659554395717462815626992061729684151025294472553857246837660401085402014626747445230006731188257480367279617176250640823324639943026581938663549265432092295833810875144944109273456076636500055343599030614833972817309818085955270117339637043523127056389161447042628236686321918355049233555503132426531374151133869644594502333507175059371145810099040019545357784173400555006144346441096996753016175181239232989387353279318430393734526771137224653968003199576589041348211875937330606918557948166998912491650987048625396123896791562510200265722051028000193422680943331320576332472086123986932197993635911011152473024899878650874667016100924453430679473497600973632889590256828095531777102275615064849884297395106512704353777835816066216507136164066234805153426763014976557599183027205227218930621555469527097966294113210371018287557435178557340212953571559454054599355745557946207741546951713225267227881674266907175743917310163203541844988912531425567778883533793279269234277741125210608905007220544965987147917975855700171477303453571384901281292224734905623368036823165607569843596344436977431460038135206303036578000025241648539320708466302043983444255488442417556438605926950676169661203879320775078069020748107233934908899534385375425393930777663037036148569416954284205664489321759283392665469352919991254559678981667513204378637774591862220261228400282916058373989708660855088406060905462858734423410835232610438674370460058073480905065442318668989678528088095899461487256065273451178035913895707096295986276710312400981498656795655377552678787905253648999883675994648258883329608395218617817492283696633639465297041853597604938091224563834645525681056361146952367288049456800721124567983356164424196642850309211380199966238316269640068344932905088869968543502437821746799481271208176656355159710478357899174105698350719983204636847256926671174126157264420525616800704225517406181233260926654930055591629112718730590213140017496982678040394590221213338112500322083618269967184253494721631825948817580803142807219941273358579896620426406846999737682358691455229241508944112396786589652054481871512160816110370183467850750370764616928737281707673876749299384822174667084360693684878640494829151332900924907615046040859164496511293794049238597617978790709728783791466722417367144658784419269366675255739511196255769098714826089431166026255057894397444010477432818633237723986371233337273623108295435233908052114336805944337557550281501571414246079792204638108184045963165817368823858457312428092119687850088923465645584732745607547340197162482852108636759034121266956862405521808788366598366828904241823482704450504347896959227271977507778809530182716499410161830735831028926103068707472558953038348126930798034610292720389836069738250844740472385957912276305154812513038547122571964371372934621620522712611591581486443180132897901025797844419132633952550284119039035141548393508682831286488783534456694295170599394918272084956013842286028027590582517303305059564224659629148125686576628032050511120224751504719019077304605229912263178812092159789923962759260200692032837478717656058584172912955832773165740132678826965740995742107947644440928326332072866600786103677365120812500282166153002120271304882945054141070550985842329200009412243743708155989616792486661678437600704819949772493721961667758618687545908848281764749963200352017255968884551182667776065742828664529203854721224738336171152754745629395653499225438018756139829865835741427268789644970506832265531705927056136561895319360016942960012736765140506121988239392386237597668383240302357723694059427994223502632392609405182305115797333754404035911013006869747253615592870518237843063216674671454676956032529671961512812721209236432920219991340572923148442672137602268692187400253395698732343952887972585165978740874004148223839376788899944853086642020797550912795691507404736049445268905817962211943482613044744747979269862288365730177671153737104692268849250476777424890889089336847868736537482177114339145739674858113395243117508502948425508415367225007809321431407234226372754103390956417516169300539209906328934903061719898485320731064922979799677747019462468077281926260537243619440482654097325994569586152777647525822059539035021683564983554896596968909961849561836844038395075209785985518431535787330161190114251246403389664657534926447212685734407029964157406062572099115125943820652987076430005110510283521176746184114650347357663242694236215785232497592708703040892803350984355564032273950248466812881919077315287290960069052474612135036438031047645210625897024942144388113486987396441262622059255309082551738482081819362632191747133487481336389478893311214412998374694848972953309025006792469954324899823486604583783768287080522721276514495261462330152615497875306707335498348424325000474847970759283418760899593425358628959741602707660079079739763385934602681697831879119793753775695076794319692085802635797271428792152186417426188989732114698469758564515018352451124934256859173810460075564411102919335431035086431780799930129247285573404341367827461869218255823288540396713745445418489050090217220962900468363187562684921683847629783148067153190479306003982342938369083293097328673717429283584739642060234462979865525562158300064216559521880356006945975110400572792223691511720070014127479765364972583593653152396294913527949393360305053346065430865192487993068589308941793110531317516007579481038989795158980952689874109896482746190197259076797448330410438425038626084385940467057765719355251047306432381709355416116840632685751477827394560347828065090693897009095837571707782818525649815263195294255388982972549943045188693983501170446496793552821237283447227506227808802322158258126481171753378272828350159311735819522800116274530063363445926051426080141163282114963331258590925115966423367216151952472487108849749147209627149006890022081426580508658951304533537307974200431735517980039326256708498731574003664544117251186493662265651906848616431580382792418278464847038701950007655756146594616359758949228851597501656740211048297687314973094070514059629301403062286875117455156243598782843951907577500984357357050226566498786595354967281206050666954522634006338122453603583569228813045611015110135706025344768538840771063240379800627761203904857578881900222542198874591463445549272773348200739672675050318242452480221798911713973717807500850170859309757719405235654112506535407112995772530131068385465903018155906176485235071487521858696578569861540298934580506090208212035148795382517774958892164664303872324023118650163923091860989984356129623320509956350366907300024849810850662289204090531834981200358380800325236410917911787756525185215331748646717615946800383517217455791041575865443535118497174386202904073243368135977222984684743925012002025350435169876463760804440187137227614523432887586177437517556606635215080212501359436660715899436202792549019145156990586114309352008261108154024975183283174896527290572334250130136972610503209688288510687525104761823360642804465261785856965728785132801771169917386264181783316406121860662167337438113357559786647487341666209416553218430492507210487630412452452908095260241630732077823834644873350677538900314403996442706599266479146908514351795514582770313400603244282800552007039415429026048625244437529811747801464854026816904915557119038341022403771566699356506360252208258951242828723947163844035004307959913408476011313271702991486890815369317029750159084371482538556418682211379858120341711407586286914161744305714099750336031920208910751926267375178906145577702894849316847012939798499616096217189082458481550301595241299191083582052612097696980404112103991879882793333905395641396161042224427940516117020193637931942272216118244925188605943754690908047144976077754568162367051102420200838267549888379357550836914432881760319511608473232210697012129557444487305707204923566207037782192747868924564087415259506945994301256855848324712627255406038324018613815988999324212298007419132079971166407223725984175392718234207195022955563103406907679915639396929243616851626572649758039463560763474045059713181351429040146943689077413674500713859637303284925375116095395516315212947158216024453087112816130227861935138930147162140203666592000510517141937670058426705104959256372467836436738664368092573090900673702236308482585956567206261826236924284689675874225292207995796692683967184258455112912083679212900856634384501047117640095855907196860699415492227463754149870292778810593649187059015520881739553486370974939387983121678827915023684735393414421074498593782315328338900706967051521448426179243608428766905671377856636065709502143694788490803275862798068379761218678502971017931121652619758042422105087418818439006738572456489593223444146725240879751637850638547395339256926006130193202048234328279583404485981695886168357521517301754739573260019190952564970597271496196831138664102061948391468641254243847232461507005475468669795248055419099933601135909865192178050533103082994768385044515063478851917415823012925740255839598999635777593718155528482295918045188241560463986690839072735451501274577712633636790103967554712008533865642302160047328117476645743983492567390067622461382688608609364902229820175779082131411067610564087971222635150446548897466105248016275577523165635515790799807480256710102566240799658856040550914502822134524665846539811520437993631640729026812463456816861720844377444944918313529693792412021476298524764400401397476895480692753572778899077576316977876961879825388827995932241960912858711537930966340295490525714024599171895152705958377002283463430801915789813933364543123593786476072137346537162174623650973228454357916782038534259685220656281973658143678747155339307860803313899563972569887783820887782943973021681289841719492249177802595571824327894431893134749605396830341481267905134758641518320087027301697616859030876273924105900115793465397505664236164856588518987372002066241705995981430087317578289808881742910420940128451543687110733067853683110133831277779469533306062625341332724297122831918988675106005444856281437248263715328409409151657259279232109545892977785103188613246957214199640178074016511685999077062973844194431935940747188641509506938091496908625699688553218247074073039311853223614655430059673126842380559492484601799256223752522420061869188182479470995989642283932802629845264154142734026863065995832139247579254370611776885240776907591395673995445705653839048046006432883349436284054101631498528933486695801574673422308244900837679151826599697697559123781434736495528617588354803462023420743157203273027847042218864041719512971414840468200675126899421006786913221922410327161935010697617876803385367376968829455127014064248872085653053998271449797078112395865364783528037605934146037574630524018923529625373316462725841307325040556862055187353446517457579839480524990677302948841752778223890680581149999681214697960084927359322533567260142822396719227995080855124580202847126360689132337497938575418084305988958383302893963514631236878452588446099842444754998532842632365601967173197251865851204901674996274486282552862493824382759579352051043335477595566223853877678729033281008802400915227113363588449156409507433285235801760274364989935697028932620224693951200379710610854027585221169594967278127537891571139760788594738845934096638982026661778802723224704324135842660375649491180750671537902349214769332374987271779900193394038677356446323623040487445949832283992976519938714246236749057123552906433466766808261101729970182080314032234436863714816470934082589286693062950585776648042211745084880747066474536305095273141204737182237336591573240659907368729160061177472066115485563422701640819133907479336069222625596546497042144256203575267963850113697649953743433739425428096920898746262334657822014992539643166728456762788983890772332492066947527439433156724956386912110365184747596738771086957963321339715225551430297415958340118964135421074434159217457707811310272236199374600257398011916260405909150873201505789498465627309907489457115960507657282912624891907447221126188716296448903901195676065002483427080206671522898680148469051105891932879932733098514989581392234641441608890901503730355284389736050884627248846690391661464377686357920858362138276260741469350143140217070718845906306846201604834903205749812154831842637989008975517523545358479394821410124683517671117522218756025930863174346085712314381242626653093574397768732985152531260650264019477557266290723430094381259837036466819945692230427363286591496199401560387221482907104113838686136183574818450576336044030337489713895285799441788909364018182790902207203117658551289778502239771128728351471281957970221100800318082951005054797348547638616614933330591411892230283650684193956378964128532696451987582295542608621193323969158247620922372086175649783297865367769622520847756552846356161973882672705476366173606777816990481932684446011237249719685284405922873707035043802226024640107627754757016892208691391116953485113536210670822309050347099116516085038752883159250757279515467971985044166162687174427132129422468594402382904716310492030190478024193228956403803683317922952373562220948182959712683823652978068311070004713386685906849583919455213386573386503421121304153451796640453609126703028936453606688819934172478947325297187465006736084637427442122143681956923723692564194322726691084279889836688079271783657632509067913909286900251691412484706862074789520426888803755951166514461477575707900995587051567668422686263549639505870681431237881718982243856004131557652529276956716842509982243748107318494202385483085231883526272139278162943029050724567310162443050441303218606840443505194221649585629499076416355794782468712579913713649146376690040659589330714129456283278468366270963950472087466183588876546571595144214341225056766024636776230447069955853242606324228421244787979812559555623941752044248246938457546699059537994068080417160628886359423763395393796903617273856553229076482407279061962676981679235139750353499685480120545608174608910915165968089026091931995874234055339779919997097448891033717585794544501865919773995123919363187054000450571994322129117364822286216367674741565124914704924449366332759993878476763985412539536816333161165881469400984742554077343706500330470827435704870476658681010777066136261755226281575130596146422106955340334621535274036955595546775349904398059575497265885132042741445115525434084119596421229812157664174710798677183221757512659698516589542795282038614427597386896440448145001859440841080501914679799929507972308981989444603729194163429903568781898261315792750562136304878550356481478842939047515981584953573846716573733476263953264612980275133395217827413694222173078566123950830727267569948759839883354181599643906035365930368090664777610837451643225647539226951397036029784453628649799987750696370875314100628328456721664271709249739061517742624178291583433759848992029739438215717477708052202308979653494353479764495508824745357555532997058916749427641840478196177396089855144303838878484584772153597365098328161084603948147489343218348822658033717747260487950397284632927082240161042102536770349683255543733200195131318273879595508219917391273121476885564874272977771536856735827360063256717643125240499356303395417743366613983491741009745455946969855122688682465192818104545141027774317346303771580055851470003765114019096882166135960158503271007344692614126239046860798289695360013785858161957163462995794287570768127024073521191765754192091696599970811979871134636405988069493884048679278671243427643292265002309213523124927886003118255036485336099559871403174945466028383188260167416902020602834816029926072076485199749621779741195874119697050525130410905413385072178736678630020524904006000862589239919745762230724054698817569805355399792171332315213271216360454099981039957949318264026713632192803440782140136667562537164622131109570266518110244674532311940239628629465711534336804047157729037740513040350606278321777914019994083155189166127137825129305574136408808088688438736335144605688789346238337970687936549274634897333583709197273234769593513205902678781685700156855490644237193338941006309638699076426188490688287452287712335782578671487325051110074431654915603702944966510663767894283162210461397837614665099439559097667804468130619032212453832749349122053701204568504572697257897399561288531494092599883748385313832027472303444953676092561069977098579917453945173357123875022510449375264722772148186792385865604666845854618154590209454981658214260183492905043603233107837853799564063896896680362244589344499505922423117269815088627398667844865206615205195472597949988289979773792193234564291553046559586612638747584369818324603023112668041560071027971088493127399533873713339890609310679049865955839581264052232006131216836113275849060078320195238475029537885723463357774543722630761143982033318341606055626523710682640451446403544506273907628275312160190621220638001613922741875762180062310239744995784232958413829904670255720519454543827327607516703964941174076955235308194577294749238316215252355872819344125636215682761951579516206728262185954123133310564858270534995276997825722115760373208418194035380913111661281729213229609479126201101930817234936042819063606796322726189076694702783030097732506962445048299004454442241201781334374350346858015830472955267602739659545513018534790554719825833294858897180388803743818732986285943520320003426364149379072681965332271947653259056477265953671269410320483351292187204480611342965213757226903047080220466792774966557034436660285362715463058234206559926508858388057678759079707312386116001135874219589669309135852683490599076893854951644635397628511796520730612592542066483479739943181772907470513447900323376368962245406707960770498562982011773871763555607584345497869859515893825072310727570398678684474975414402969459767051494271073970692690864647889195532913788622399416695246532590997021820904795542821764107708279523586624876903428254940215562106575368480694740233896163267689884393723327579412799978650762053032087817405266114277813722365639852201861630354249751431414603328723672190135266521602349140166043186818109461459408050241057922184239375008089516993699020387432090276931769748810084300051070669603137612470754617703907638223806485675415613148858103679610101017425434753090351540701533803582634251005218165073088257994290059130660025064533558664612740705998572870519717899977033836494773294886441054218447709182626788269927593533188426073976666413867501502113311367525457949005348802078752458757129700345990699548416197657463962597505083869091986097308553701853256117404094600499062562809653177621953251450457445548820704274430537920487349221645684274623583876877270789191757850791288345222467860039183718634779711828373056760493777682925153419956546784234085882533246053215052403092844223751028563022175014068341689028095694749177343530459385605243913993189499920633786651985639240279573768363613969551248510161893508617755339279465567793785671129168983348058272093574064009610570221982807572291816638056922770255441126075176112052839288913152224012486025092243850061028346166655991360982671525622192044105369530654844405364475395789340694942281334436285955896288818908350006438914618533104346621004494530958214758163690586283977732461305499240949574250589619475422951892101838172750508837817331557396592376993943791848622239271058457153915626284184608096983773157342477427406466998690682506240985287230288652373898375016053848128484878545847813986355692864278475218055234812352843514069041620450907671796009363957777310613164238471277561165908475297571915716529297574827410622754549717402599443616110097805745689966785407618429448145152354775052186995272948883583218609136574587656442067534947405434612494650476409772942326518841771866762075468800795762644598938807437236005652174092989490408877841260779553840564459017976240748508081916440772970040954680503846174833281844272161932596716363658270972094319752919573896935860705353937849993381646404403252152141084064969373907899478593639269624098607238501045221546162568075004078986369491390632839486226564403163226150526208490819158892565246424982855754541684040416499498051620438257830725835608043333849547389097876793548457050278153417253985485983667283544745260709402699223719341402929339927980869541782482261057497408884228312849005746054224670580040339695751725370887772670695548811281371682614683562345708881300908583104632849766288751029710754812441516554357585030310516443700770612458836207820124806642181525906629117991153533584006053733712169618969993510666684823425378713544397867499426692859324871677566375398507949159165999358393522295822943420721458449219390976538074979157875925228844735471232458316188393469804034085491195653705387984033869338662062320812481947791849188580839163340494850020660866100223272155021100752181778745106805161110204121374161905485628382801580080470495781279780524336026966355490129245967818441312654208011441371857798592827325939304076531066454013583461551312115492861966020400383114178627374153423933584911075946623749036723650831610962789450120647360054624707531471456019826969252887052034167377879490376333708846630000317252329659543124979039793675425165560495295690750664882088685107041919448554035951051495995279875152248352356797307494235208747763515564160738518561973904504013764295599590312965530449152809027459906170682543725750092312819354632581798255596837056762609301119822117588566779111667371803969862565026383209581011097718576310027404762226471597207052549233546706271958231117842643782994991240800518019974246861316878621342358534510007539537071477119364476409367987423873320893857247083500255919568870272167621615797542565569066199697259123926506254154505035643783274049956442589215327019565669282046662709384594687990394267710212099573340070925154927293260532778875002366711114223213409639658885274064356606852711767158953483752553068519237759623204319611857659931728765763502272785646886075079817444790011388437181648580316675614528155181906853371817252632652821372572240486771139893406184467644278460595965738728836632573251159481244133394745970179021003765404766782298902091195004516093529051829141860204566467631863563090650166549284178102500761939018925231855979719864073616626297381647781258875291019509516039659090186215330786649452043861859933443304622495144209433837158967477559321803562760604109743328917035497767595914082969440510471425655811956904102427156722920795916126246065993089389025957670768818515096077792079363964730148646018584052586190120744268324166997326360486578431405712263818276653130956902737620234664380974663271801065374349990396832815751812971180827356690813750092341157437326254846138120231232133737799739720310249989926076967109481471707448669812086836818947669527419599928865681833939718059490484520633067181396418869275227293668665712405568210500489346069472715167903632173890364317348164898729419888634634882259602355507992191465003973279880769958611126187843801324198629252232295524194016760513578072148501307583377651271927823889239737622429563529614118127581393926767883335670303853355274221862540916149469627350805180930310822389052766388043907001875801971076757772390427376132648115465508516202018480008953463565850866845786430591590733962003851664885845856014125441425459474269343266855597202937103767805989059238395067725246885177149012840681766059174210436032903184950676898599349448904078787522686504111039280586225953605166773050870739408885082519105973342190542397972855841667269131505595167613250746429790894687211431213469710212558632128926724324290335522650975534925547165844410388288084194159433470893187326824862890116549085878774037383468695552239848619560440144053548707114444053258269973697619709106643433797824990086929567989642252810066309217263595025033455710747265947149460998550276149471652925129586342199642725435277850732738006524951186789842704836578004050678874208571689451997968155331274739156961076122302519194946038520497214010144449403761101917638752095445806120861593673380132301191102619141691245631902829753388854785604685174301326901580263163827434807474536481082270921149013072377056410024397563295105070826215393287046838491811952646241805165566070060047904843638580575645824490334848301674244041704406449263195591501096286778260980858663504004455871139751230345791232290224795320601071898628742463481561852523853672912297132487197935869982749357179631423263537002142241068618047388042686183194902355591643593713061225530504458007366223435352334966090058576214925788523300099798552093443233039013435918688922230241922308205438326090516285811233325476893587901975247904744122577601241229704702685333665742026978321466323070100908381379507697899755042473828673553752090269309525829118815364338505978008390012644785706090068331706017517093073413628414918306268580822708736618517136152301254096451087771288038128852167480184740664571937517657097786393684532029330878040764580276694751620068369296567014959499997017699358269547339424863680463919557722354862281753299260422201172835290329657276511802233116439373367668166605028521593018741283597164614333471895242473311029594869928599169783343125223000222177353720168962023767053408083267583467734925783786427975277868639358183309437372846539628058601544598798752696375913899527819351764079199966122266341690821094866289924509059389251936089289733128212784498538076577109234696685995881473400260338488186964092216736889573196345726306688944729123636353635169852832490185033308573404046530779271078129452736656889429824357575377654754569015583934374674625395192930509388922365683286003053260390847741552432090481256502027757240936366926742677460813642948396486301018145094559534544292412660126379177979867271123873947070227792637958209444631684099521211573351397269889444884327579025478908079105311857601441967341031480099500349536436863435522537301483429902154505463478967310663217340846293104980239849532110850661904262278452236533039253723455198468673400494402535953542876309700915043501515406704394954543796790704109994924173966998682456414366253532445110339822451912910515839213762661616869131428782700878761016849243758780774503700624505777090092227398259888166709108346622207166141580602333142417506298672619381941214186751387541928926176433522391665699817588396174082323844302945804393432145501524978023665347274135503003667724992327166316438629183822534163389921090911529458234261976327819751818422275030945899671049715202080397153397034699511678629418041062924771643778091953963171309998831728694671505693179655098107036270156647582729555236583035173263756318170313274265497416534194405090407491608927709688447124704157254720020636285404417624045714197648233854197347252355301788109297565131350052562685477696580114400341154654823840168832986057415188474787658582097449638535076208541703384871142983428011210302755376653294937780828467819566239466696126052452882252129868871477767253492365430931551603330477656204393684374129747023441561577848110724920774804828497257156298720114612390227711755148013883353168358100346435522007437301920747790994488895090100301831725048873544506486696297697443217775718730731755618820734595026288753013711216504887315274376789397684159500357063846973418509027195434224291387647965879843851151354709609895949963715115729896681864325007508620441788849977833234225575521852499746243067468100086256209429794530716265983743615873806453566205037704422577237538210901044909615125474581839428457626787132689275394542988496572905605970166669989378776073241959640459248181556284608780109453485555932244218672063899349088526087579026010804017458341797897450583562182635616945882117543180128398335502972789933235976858792391710782580744363839722295264150904930734539678473129032529511916182683209275674301077799312634756413029837548846030533748571429022519884280913907270403602901283715272282530145584650229737789914673410481914197438171666136075238762891233840857335472147637779582002801843737066154094608444783497707089540415383579909270263519721178430964376109295176653872808072714278902021714799933074883287216597867930914909155308270858836350930490906740919572193848381272988194836896745801812920492852889477001810822853944766800173536502359015970106354996573465780087843262003295112534894305009591314141955784500441456308316090611431194201809851976174522261607773564466299883251454807183981216081965463326551344933992862542450607499529960030479700039265630377386803745122246578224669193648207123285141967537780679417008426507697141180886160212394057546502535525403536035470766016393673931992324851302912890066088186786697898372859137474608991168991071420329809258448395005623595866058868026516346875751696595924741391909088701872930180606834365078162986275720953099019472836519229549365213526607341772300175543985164457116083336878260261684122578829340616188033338224739489272832008717341128872397204655870627847709618349029418254055778455125246842983811477525363469887885787922886651815646114087504748246588567034312097719802921318210039194564929206000072186350013754379520408598365748735230262369487065912738717644136466616352986109995363310771337084237265853204524642013252931006278953780041978309196019356690482132006176140065365248235060060468430453416270733869673747056910675665349841417148837599894028835654236669802663200166232066310840348785807662406298648998277181923205676477056582241580591102144934731535283757167645381719827306164126396467078550767822656825872222544689872529103792567416242539915631310974880384177834135358280090288340120433113835933239600578826862879749596642871554159592259724995154906988325058569109373519394294679562913172278324920254271130395357831425601550536966068162017468626000002374609165307505729113411599079819307910886065305716814515127919258752967856951790714672424398242665506601319435421534163369667771063341100296365991406341142491747562780456542350420919555494573128972430707902419632357472527111137005401233547736725557939117002459402176064557751636792582885026828174474914811348117422071669263649659473976582152741440148227311704640583111267808109486176262574056265628392907600144920284660182307135996096050786413502476041481344808941208119365293101451367294434865988185135583343165180177288098218701317195362701276058659004777079893563808349163494931342317426185538392948855827958175213161912217564231977086362858336067067814868028959847364166036500188624385249859975488569909015174149905387469444563215553124654762765387496128039346294876304028935919294163233585578840331951924194244021562132131195651386689874354411168028413935222477272913925879442170895412381039221771072421362082229336499470672065241863690069131266687763268499233737091633427917768038859243792381724637010942341834701218280968119760538230468614072225592633743179406270626522612930966144967777120089630548998275726346114834560313029116502518979979477347158085860287774431904576941344608876252650921495378251265453508275499512921249028263856764380734916952497610792248566643257794205553761729883089084611754287497460400122841022214795584251873610102920384703935728201448129477423787437932463058979476513273695221649617091056590838391527954266927414572453675308393662195508959293297715920255297809487149366991645429194031134706974847048430599082683147808852470250751842389831762178554944126205086644815026095330256192594141742197292982472255013075569748014854278033083183315559315193687073206276872226960693660229942793364044349768923274874458179304154883442356266240824981027833569968857992387113709019414318391004818976530667346784188609574988571149101742942475898393023843185778132238591401527384326350805019523252385372979761645562755767040043711941462913884565357805914409484382316852459804253375096873257341821267928068619585007051288194780029992490971471492705737962487768128462206620915509413177745610745781725924531948450372853382671075738837646332814412420366266706320613325879982806217664918323976615331354264730586135105921294016062429198720476924372303926437189850402193765518932480037057935503526274954381288322754139120115680291282529256498437674056793549894145731497261753918352130946006244438126813619106886962190909748052024731951123775587100287557351084219655444094703602054686512139771584279482921781187016733638553675537578408851095626222811890621901128506441634360000874915390511758663040025816654751692480372802245600728758911735465162798757001083590062617841037416365398843654064327476890997442006836565883701476516419538375227490297533249895604057521475178493223295815369208482965876222928585219898985992751401565615303884930575248724451391698506005944194975137313763512790185899323471348792278203755764876691687176696146978728166424404584174764668074758059230517002966305804374886546919673772594400672775784658842824282168021326378777753864324715155720749563993907044485430453836308587007360449212212031040411446168360821026740442575499847146175852051070346374307165452835069793700510129008249278327476632313657565538077098022793533399382800713247429409418990981185240189766180911101207061566080657009761941226816054890071083071634006736501367380835139784043936468639957627443640535108172342469348872281143725340584164792665198492371778019645576982751446720382764516208292091357767138303667304734183740757634307490814877244523514950429878554445398280160975335774186437162898636995514047546490719784567811531488546680420364054003147534809658935173867502267224134837477893687575524330781564447020907539677045922976465687314015027932090456605185286197114595730435736333258518644131724326340657484935182825677094481077956504516842978457317654785653592463416418595627478471247689618779273437753144897245162380357674755496233643897603937618883537811983083679022080416671025565488143361158308890247129522163598073035221420948488869304992114116899908270795118585427223843625437794739237495608550333340582772173330593530336030155158811349810751389736430436356687924600581282700520738713197057022230331362919509715321045499245898149577325652798464303061162333778423377507577667854888448809267990679839122992639800917320186622866682125199534279439950672893999674077421832669719373894994480671899604445561134212081853021740881111823120782792940458365090827358801430512175967156688838613204004994279048588686930181851913259496516032142865788179187703273463845274266167123602456476267580980679439523207830310412815350562740883066579890940322150546316445993773269325539824524468368795307449404977362807196343670814708463600667636736150131359705504037402808935824946472068691686458077116195548183498952895233405403883728062072006441207955005629924338665063800744457080164747480959692853481804728714532421416608386717545153493565340108722844344965342624691649825761966988870270593942085743619592010564599916543509844511200512905742106278580395013155359475316419155659895716208236280040058160819328978522073235974374144954643278404991768435123326020235654046235275604143494752043738783725133230657782894371312088546389514840676124178208178745679917261675961289506733826148605870984854701771568823968698176005880857438536408509705682180665238486178052680608720543588274657801722430872349381334805401667788323066625599086652602375874458005456546638960298217419945319669821395032668344640220788645512872164640282018452529585818822860627169154810481491754204895559961319573652063532822565017147605932907559307907948845541430429863211443258538447806511375392226732117640912068249749182592144484261325850099793738231724143885851726812632909127265355276620285215068164721793294902172131206208524717175789005301949686263833361933134048204423612880486391138052802114122669649842993129634624491542674914158678930424391279096444071424342308057957712450989317313110502429812311526211242199950917269233459973701548936214655563128919438943242817437692147298387809058138905537358327242441499688791056165254276403947015261650731843099422763847884589347118976981703064458931904834838340137945736247859465113142118539627536720030362176028169937309854111126370031363454274079692272343977432998333624916081375340275907374762888911821869498791170991357037157647653713687201658854549435861119551472362812907806606288416981154674352440911813246543258967706489172572029375077409831264888879887733567328005172386055777218571790260074384513997447851093589378216374597446334704712850770124319436104593971561666340425445219880511728974292756307570311802889502566117320723004433282987227431111908854821588370248629868163491590574896591717062337102547637790185732471833176657654358882018467897545047742648752200480913460679626618846653742877157616846638520849947335314739156396340433724502642786628829196663250808067519776926603546066098178099462465545343889225442363510593233149089289584184867226809279307570734359965048970005384944577326688019909274964955098988732562736794340124592513846417724106993274044911216331439301123376593691121862205812496489444771677677023763165286499605029637390650917342072488493422739931427263286547177850677317123263147276137596668866174174813076970296469625712211670580077697390045304927849028796969239110010347716246219772727030405712826629732526099472416191161627444259436142617241793191967583997060469557438031027433078188537718626728535215584999335130029038946707683708826735205911433701709189434470150143014556650932893027643417912335692332078276239374220624602881216015677205356011762379430165864292414491026035215062606077364886422436139809440847022418083030181023584020108214173359064663555497955395894195431150913164721481814760208629761935791066056323240812109696162632193867894082226551416558153889784446041980051056547082479805867100670290560079734789948119211435434052447408888937698148737223810134382367302097099428240318363273772026049511270123803440180088013771006936011683643676868797135762938147904751358389434487052719556942356544829930120362767861707935808079896829282521126239037001697177181995695089773854074728998228524369071927528906958576156952841580010082220377667241626982729872604928812327320412913447034734126534235755812919538987202953381562245077204911403854981961928340503750303573028588321748586289339717660030403212541422993404122383089651217284678876355608992200219305199406773861065275468970285429344035709618293910812527506034660701896073007345124878091733818569046740779882801594083666743132656592325629293402359105945811343223654716980453714665970804227431932877589914103414363773015690842871841136392928082727392193588541910602008858457258396843937751296212126884219468844864181402811359964633153670882812884237495839587394634261053805355733959215724375805082319783861830906561677062218956863182814647887690997069531395715928693946039404552400278481425649753097157916477692523329683226009470493415329224782309134247524013488810076603003833498242429068884405475570674979523019207380452302848319182780061803554307381068105230767275065373439660370145428432769924927762199671869549769939062411382619106121090172259538740607599737891788110535280989389573353999749357689167842311060203120850757885156508488654904545136884617681806038279911069647497915449131355062560273005889636242394923676594494037642063898403353675352529912313178238308259686158363018488825107901002789231876375892191643498592666853036332036081537698988752893523369128731759428961735679161671302288674096665312506177683645111718850132180152397966645398311408871259284274989445036661733307056987296949144957736316090868749007313600521802269899355818634700653848086275366849355915737590364923003608868240517121219137374242131864283528951675356459689684835982519197263999330105224599570965540009270678397532552611862454201714862988605251999802065039571511038689626571736643595705826013783512398239464367224143215157907594586663548778397333023257493975137730751316392621965545633940652945935430499953039414536973031181014958642308097507149667874079913334926321710458557546855758764770208016563886927884004227926283120320725938740877747918818250404300783153686858309414874654154206408641738484432399753551572039755164583702844447889152878467842358475197221862966331806528714228193265811619617876566752549181933284511051025672035284662205732583720145390685020700744672351611193012596305285380599834767254574696983301535058762321862779094013207032021762892955611190602100197096975152208641456100128115873398927176071642583143970459820888934640425870189118015995121141425311386234018577023811504297275634132571311608051878048631772838521456707725539822128306611472122375131822852088571766267124087483356453646903272900034840850572973130667195738609133963717964971243359322285893709161117949923801579202840413287215612622798971196300348203549084096956159230537282865106683708473670763760872180995124947010399648808108009326057675400070637876636527579814506647256317858986202192117948697589038151718703221538742687547654446584186164480316780130150096596076702903788745455440385494055825031698010412080913120667458170574499951806874508122782553292683505637899644286539517348558782099545725594402935765560037586238048195752735562580870899523807818638780248097168726584302892844608455515556061066319540543063987402520589076801908031213991962900943454089179217347889117508541618114913544477851702168998021164174428657144983435113176046966093565658563709995844339016050993254777589088114364800912026973561320092448300134856254178420131704831087494787634509008490254163542932633093732152987944125778049140769188498157473306414564487939155133715857560279305698456570152271856073285974681146366438541313674130273984265282256408018058558632338457100455349400093595307476470775459695366891679185884242914234477092241427150024182297525615631470775684469235370572151354771006512448444505540893639994815076914843357037590540857942227372463472015780826479679715384163179853005649530969738727744742618183849954281707016055591815063477024595979743557482350142070543007459960361380736467578330394379914941901280812877780972682277956801522702669064868120842858799100576138478184798924951041368540122872148779155673519892244685456042136857380822601596454390277225859224430511808920396073914003359391097736514495849639762483000916530680797069356920539374265556465441380284403553200230256322264228264075873110078491688291679778654093721802446936530263683552414275946199397390265276606454415449024573219032225401385080840172448190342445770791885805337164741664394784858781852530543191372666154623529564642109785096047339808853881839202128766035069991391028900836496170316311632990989886657193934575155748926333075504675443622556655243339272379680860264559428956581727397034787554282031102169868777997616362823169631460877921179915173114606522188810613914606266430468536215230143158857241981553587532169321447707442498631538047061159662234883707809245902531971457240641359844261509507634959184854001377794376506438584428974481948072807291699581878699778140807496722268223062148386130269505150563876695430298682757700594975170001098623519419676653843226551548743004189732386022241379108642733754214699396143946029312880566859316351833057605115450183303949032087836298561496162266882819756222717113406094546478832406919763865515744145128157075958152365177549306422732920880627576931078056950977423048849360492084057745164742201181837402679616922397760449958180694723773771655761123260701733629567991381683316992659229255093407800580023000595742640124216874232156635061755446032050247084450801408716878286969177714911446038457151328468990410158794825693857904107499343392707662553120244354098147619924782299901936846982109516336938232796869185717566712761678335825453307708793451876364930728888952717420497996348761552043702637226368393176405649748687210848376279070980310464646003967231541648018477757846824085130471702861546537748294026592910136696620395735421581241187007184073328009763390083565768834786693542188115224901654752608124475201795327463959806906404521980621395145389328117012427418813609017322621307831087372940126956372684166955870116476614233141690525863374342060990159089722759323631709705621848756519815230690222883352658243009420586186630104135950142511767579937896125779671998068333068242959265328270926518834227155437352095848102446044417182178425020557489600002492423484154468442561136678677303954947990451831547428168699381675154612365610693370661063735141173688409612919623820000178981866729801911136272309305767491186155752693400446078169888846201216447124472949356475806202558324655545202490321717199820418298593265693347349698633369731180868018482973655836800964419601719422257656271536781323880909561549849519590714281225380459773493891153930495743138326083271729006211853028238927168667297314967720355762869732752243346754821385122950841345687390208626826944245668556387789052212960119546383283960018234600679936774389372117327543246259459233966502204178017961374054160404064325323736782105122025514419794547221236336297764571947349633848406913432725811875200977732063081147227367927379968932990342107304109600167425220155760960352325749927654037414382633149202930727975138157033488779922169866182084871214664815578552251272866735203267412886625248960571977363369345545550567617507334180980630896474829201147779865826856178733624101830938994100739384681737251411184732876130605708341519830552267834750200954288506572702987937884765833792760580255923533577746985924086405766461525036473436495019860790513200081439398618702390966797983999204850228123233424685423946390231812007319528576813833792818645458725834796294265957345004129739028177042318443998343679240241152392497892597811675478963160074956112317978317666789062498447855385740771989897379729109838007807592456130491116645072658640468319413494092831175855340331823157685944131486902693670719909006769944439663215122458488771331532997456558445524841712396130808904739401076831391468088366406597407543344852608183742364298158364707295425057347275720295980916442454207583120272346508928043117458319210492247394751020115795087216237692320115634931561764627850630969960888776405360665792312646114680697984426042565705443959910490358359657189358244863199821486082050430803860677677250965816124443076881924654307924475046392020486059532125177535377644839873657667493322433459529516540918414004236281941468501312797565835704018038217539124024223977688027555088463305877040559887623188659550711292064702719884762469583394539669392995572426525046101655433880877775948310225895607222334479122014190832947774939164015062454452227278160257345141108584936450656353554833509581401108388974501810872723389887575238362312656165981014746130564261607856117252398720514057778901483907289500324177638405683690055654003158311850182725733208658586953016055298303714624044968715091909538718743768458295186826195653629439502221243578992008718816147582840390373754399531991625302088268887524933219578388775921474942258757990838379528480807266169029784167853907369280261691780121171710767918591972498316666558557026635234528140459557605111385745776364766194303865363033381180438363535409894329170386285348540815359335665250779112583019749197204048113207082812844596248340429834874591004626303898783636906328196845221988359114783357265213257430530450907557424685914887910823144470411374376359628378096961761634505483888104197295864681032091682444340945833415538203759984904694393693924512327100388353640736814365283299075192275926679363693266224865463930475117699604745127095599548271109819500497642083037581272515892722530863135891111457306720798720856542637348081523944665352085203404371586632164128748037364767612663294321689094467960598822043753651930744558677233576130305446679574911065057233383214193135773129849644949760419662469492697107155246565232507553740055180765348016331620981330540470037242342076898044439991412333353207088678928301689608020061707329851446118268741222798337567729473329898852974657648474467928532830933089914055665820932351082034649684842965428019810455158081356364780298740270651382195906802066676032447915625351780451398882653337986546472412506449968500180517197175129911255905274942990526546940680210913277718261983748142941708253866527814053399069561616666271749198202250683108435537269997298874096720365899354497852060673023624017977197486343984579574469685069088992739208097786342184453028650736414663267341890547597076337036849623785273678055853282636670121650315310647889353999795289488086485511893776354493939212429042737239747131381393522300330592542956064785338661882253078554466626798768085924991206799275837978378132196642253248264345555048488566056192647861540001708786294047776210686205055256617062844763180081454122372880081766741988503362889723148390417079523249469513553995152564878404662814343845538672115513411861662655692567517494867433658702940282911433980664141148949589292842601355786997562950267631019596329196712974061663983044328093346021544787185999254538005451118104608325830335415566074590510895673097413681329033157770667181572108605041365603208412244734835691238655178599315705110703307764413002433976760105688231895491069052062290953950048342245253760035314558565450903784605722547099010786751411393050190414946134443230883886980704363438849607841440262242736487183073371060901502968112778661533596636442085771958053305601790447100466965029938836860448946438817025274477376631440487252371904238090429405226335124613103004209528172197853597238698537708079513673324943598586698873428932270406525234018151258527831272150196404286035686693946117616446518729636806461876964317341399585935196244380080698991404540894497160171810756404700196401400759691400879632826391120582707789994017741528568833206749920290403213410206973834149355316384734550515592270606386615177794886394759418072186442143895832761815852457629371737330833986358260584770029164443237402894938685281261511843506460662071198194418403283454270729220608298678333186609140736883517442159310644592921267525906654828724893918049874758893905173403369007895578751099901773833131762032091401816705049899054637881818402555994681122032926951712129714726312902545132204258893977860555906885785145790683308599956438973988220802637247961340305112061799627127290806829614860442544120590986718026356020288909974386666195666584361597871757640108336911660517287448528975326484231854146763396789453630679894863754070983187070355185684718770264540591397225996925759447866139318030155894251676396371484010581918943316924762818292207465217350338271627177053015798446525801621000330789375067481853230312688250323340000060123118484250232924908538296055943882281963005692820471066006244479006288308818009503695474114018615705704941116471201667960702902772747778814109996550365874122586633990666169714127019414209083354773437807474502366498388254122953647997987175827082352412023683462986287360199265160512568964530904059794809147299866198384136506103156828365423374657996304922019216308655299863254774995221119440076968323779616675939505039977526380324546706340877077221209026031015853764335733961650477715695414168721294640019380492740649775542880601880373366419632003093283078536245058399474708643337086041013176367767716127818822259744037775221805191577695018020835713539818537563020613662699606294081796594598319455813844856658381046667369939051025999396150853638895220834128966388026683579468137189536387911734568702878852006862408032077333026314396885832378739772556140192802619206008440945705616382312837699938045150531222038505857647322983424952059993747625107539701944790011047889643765875402369632485746683570130126728033285966168207672586196933333098180220218641342536351831259130360274349063022099126332692660600132084171751122117010860331906916293796398367016063786049625517649070607300631307497469173411836929020949025375846910227122235264792905784026100737515728746064096975151207434807276265618295851435811207891612612972498801786045692907317815793921053214449397363321875397543696485686161210642698664103973495999220403057904815662820752509641860395949778998620075260602371157428394561779518182371501457282717144637901399234040524727944041606259421276524798766568923795134796087690667585158775198862377667029180824713831502230371543004259425456761644749924907184461013123548987593625300113312158165730334261049595946729936904027391668964294287009223049805726669280458401665326569875322891765848032874918823390145947349629112327927721535779597326186492985140517544822429365711941944185421990935518673445605491356341465658164710033021424131353241414219267133415215575415792789991007878201657278081240466317734417459908310809494277175103482748257419085857829490121068133167070608926566848480036582320117548062949565565891458192363979927921673726494451183139762730207098347809397789834649100384643563504893783339510973612625477724968568910353410551868722725674780960243718705685177506486228568116555886513904129048540794210205025771967071046977928253836288626352098908230649536394810593222916142002443860696908860001077033653515538584614302814229531918426867515911225623001394875636994982868335650120846040262357833600547631295882914151668687506121812166287226546860613918441682617546188727650658551140245349535664449480902643783361161733666230355980668156386705258538333843142715608928849571737418205468450804274829233533648999528811016368512518377537902559163411085592465764399665031785954401784154612133462741780508367398362449520101381806385677916970145884260538474943529069797932525380512500306524027847214703261631486853414737344783339543844902573623681384316015046973587129064624190461567015499521134154210971858197889703564883354904056717405758621204786747021715183187626893720163245793545506880260212933461425223156893854814266544081032814244189567502204412340890740229116953813032654957731851409664853966167343055340462014683018735731736470697840047156676854781405624313713878551930486821553859683669844229385359444410872188743904013930248198151268865897391904957785366501548497670028266389252648948988372351873065306934983604884962500133739255144527859148317459686138194886463760362561114559108059914853416641873952518424616560450781926509963591540827894728116206469229058980370854961642082274080996623509087107359068546985943663744207465159098134445609650562787115567835310622653736265963788507451804469103598714367980315210641469247223176428415377847938179548163986351437542797038058371236616070043993736767025058077845417649777307136956978972704986173627389204012014793989541160628232613889472609573576915396114915907811655126471010352476481335386965397855175400920668792353747237592330542903397836182202160158129786698223699330397602331591921410689844344783090981691012305508588119354812547254337549275144461814141502584211312019270756476748059302379987718791913271514041740098741937094563771489673095143478550979898869877768779368188035896724123649749608442169743915783238263144352337148413317063069625071775544495148261253744518507244189210305136956209968050240046279690702558678763484648070843226193631160079989637404494468759605201976586577178541801452465171501939541949932710736105837611118014392388778501373173213986827750750227488017710504617355867296035484110808303352358041911993227065446640362291750214305008048116536305309447180035910714007063746060380370712521412928960176086817201090779985400195339399891722478217500054999218056125283876160111275632455805631961526654866106885572820042070765102338305837998904797023573652927700434876844530625057662346918341085673998129593285544870464430369356181867888516298715344263619591507614573037473282317032375378745102925898149717427776260703295459919027672072942827866601615042228210458432554103755388288696539100941515510823110889387786744388389178439197318557150638660061194565197530188568989566796837990380440822768235297401306768883522224941559576524344544944223929644942350877096376291500485479911209488677459977795320475511167167269844097963173797521595192660279664986127617696399820465934694259440414366065755701078112140222829080713577742422537294141097592150628953779947298052004253961665978187616840146020153812295171135447093134222470072687670010069258211148645664890083560187165711553950213960760452188933277231578681193698255840214674973147055917996884438329037621267280069287149587532402831891999287636209533512243631914324682285304677934219736915283687759669935351323479552168459318182489219536308476001752705998051064488957909618211242366828047919693830937623420804946287378594944567061827086646085614512272006056053619608663544443249406311565810670900367946028183150175965418288769173644858795824421581106374417428811155648845941624852703605197376991983004608083691163948009490484661362260635216360295222933648742496906011379457206701766553641476625349008353981023311693723180645881898627358736398198993192378519775345157235768480302545175175498189341235844153865476917592673485539569255382306598038758877784009034795272951823288335658869655998266783332167086816357886719749879527541596351730938664951530237982656419087159349067939983208145162225679629128206167059123064446013464798190777228676219015707308519865423665340126840526061193215898683419041858342552600571044136107949910246281312483483465082169223318188019605884447184044119217125347077118086409956116959219711740873700084972753613935915606247074322011263200006882118106882472295851036799096453216324696307698465787362729756521563809177505809197228210419925999376951469684872083418312561679403186160723708554316295738305252563130242674565193113262835670122590444490520154431542524425473266593094236878481260964384482922922330430395035507926789003225840348559483842269155637026871804042728413964246807209721852264256540031590652787991635023242423592944305873699312784327749756055328462821978046327721100412763914464425654336387534785419807095055184137055334550615595343433755160996883904443170737159607642593974799895606023668342733263739415103986439384317811380082240617826111341413544621288018070325859655337358405233563270910631448933654530207576018257686989865262556746527536151658053385817762659554539040868104921319287752091832622505570429373532024719298126979315798514198898073626383488368042748913222757130282323441900632941204700963493790328708089802852325238491327380867989862720321547090504450837824485350035283303649183693199628097418405889265239004152156235780827066332066073425212299506655867628783066747251051118156019038920493295305509917018430166000650188794744649298968775275400090573457651055014625298180255200395798391342557788514722146551907172590897346409379708421502455546150115701850594401277790790477905333909605256522197757198945305461382645563923858911947332427421248485181233096485175944764866244478491135154408493577041548717159568070660935334401940823843581304595119673356523682659060817518444246946838033775816547762903687434607543582141522445233851137428022943482116452915761695886671287846690147706026607070892981902221104325719986965127386407869723745018023951541338653442292085504228007650580648427841290071892676584492091822260201930072836397056355486946846271851466993316659998474999508295967144321961013003605283069335149655189951995906494321303383100316022120596755128958133371091107738989472529512013375383824308185447967791922417369431535563180262303403031053604357688721940990399747342931990347190030850035427941565073064438562590917545120267631799565412765283594927279271436270592105368004564279011739790676071591067631733923396438863948079699776210535230137188868764180260248103907488451690447618221643924685308170661223252105563295685598577767037507567944709268313886714286180417858358219018845402997086649373830159093339599657190999892617120989786230999845681501339413447412737437605766164129761638796074054531275568179935015688080494382784281093878204680805172861286201777982986808037223982091085592810380234460694712654275603637235096198162820459762866085702850590067709765805227568092452683139033739671282247913774478045454162996104133695201950275439069948082396824244221600846825799910484086291765680895097737008010419376518714036791494407800691008602533681498394402849497019234665341297935308230194215771575960265259161585183453558509292310441508809239587390399703743436456003750855665280565358454240759371550724299917327461471265789506890439032370078736882662946373381439586924303359989866392872473334658308706263692642746048845849855542290207162687308025232747673060765460343739740868161474418821959594134508338091553620064112840063809160356317902821818326788548037323035020054984536734362000263076541650375631155323495564363344185412046320050912039032731266567101261730213675175475457363115884852181106532503015938230423381662564191077391338232755567462347600809042447674589822843444341210883420072699814529173467535160959089401532215213525557181539950578153477699412588093703090385799224405735591357503715671380145140220394171477667414270028167797032281727956039140787675324261535022108007645944430953749869743021774659495311567347322751997781355657850573269006595419280904678640411780143930031036509975281878230412673778996118567429641896627770653483297890347275162638340485005252082890877890362371388685199325701074603820186770267891785718864985756169796411057610494865892044846274510415055219169656478499850478394988259070864836100187877539381194301805022644065260079545178602113772541544914359175106936788701964570895722155827451302306342217856496241041835335322315719569392638925613668071458753765827941935451802672940418435147786918341423792046267076278643338477648810227632710950954907235115989090782205995124634626587844504829397191473754943163488384151885907286913616236480108885534276497966393216017902403023357344639568679523992651325739975024012817940301641207059298580714111171680651456261253570776551026699392900771547030703193763246899028995798721709631325176684753240046016955025896876991189630649190356942458548551130008537014686487380195094305902218147909048568044900335285962141753415893731849171420493730521922475631112924400327596177453801890988605699091660619089212713546609798828168260775826562682542856755348076666001660975765477226582144754590050246187177274668280992572629038996298258803120233254304504146319204929982005106933772179152839276110577275446405969207668368258292482092331960171098754506790987704054969366984084790305315267687861358294891172821360388741901460851047499421748116691846656567576449552448384927288546467388985719663329361492212979527786593836401031666163094478658349262851540554060676758960432143189006016078408760192256108921767763564092806177663323986286445056030074597502033280092917533154453493047703211214860338150975736181732815200789338500555343725719056645472283180229239934041664699694384190494690813020105922288833688998406365537957950596721542401000829188853271343253901682862846205595732567844795271238826526554310550068163288990974851364931282979897974441207466182252020571477614021253016221488602923614899167941520328624635785047755186227264647545284178538555615887788344577628602889900999379083055088188923106420121573048955739533048575629963471896981541831597033884789723567204976954102421994912092435239188322194420057619578162437212069766238667838661277764759081496300209331234290737680621662435646986888314029284685655588862413536890677134247994308857005628370947327638920958832609746099404043492603553476153617809212670153983291592185019122878198048181107631435283277330740720439626038491115668385562061322066019710876020781583313767005126675148145685039254420944840986989856866940578470777015172963136189963217239866050196705928474078978210371277664195571897746116939727987856277706786151039585598010359104624850156746035783611691118209470619905091275195901406547502768575287719535107011961390308790309099118788431301243011413727697599537941660021314254230238874201028558804133891008096909409374620672298084564252778889855725852819882218955339901024102531821780815630168640219983403093564585475591903008039981775325519798787574939615283555023609071989661878252624884480567166179934399383717614388821879174313738514161541163043667979500357501568468918891784914882052582854650426964527202232816719351482747324071126735882122403341447618755343609321967716638217426057726948150083290251573265842976218881174314554159828006506443003778260394830470449539324198182133276323816299192701694737461605012929037803571826902175174674803563014282251226964324672927623420990036847351956776914374273614830088035940382686801596091677977473863979670150402111765606038992750097761607586730852337951658994898567213759374252773505398469172839072380140210527434211530204125588305020740331525080891276732944313034138821472794318622526379222671371277165521652828621812913187408040066465636297906667875335034719473884906437309402695750657590066164930905554689219944342996688657463626940177205302922491277794565272418505237183697664881641682459436829711936939681060176765609072573481230236827957201478286821210353315434443478931511019153107102405581086525622464993714352785646746537303663149210681485874640118760967167871478730215267388313817877779300826299860686693750916076520816199838908634621553740771455707291123400337990042786483905948289314804990117119711665439004231483625803549016075363679640191817941830331837009883899263250307446622341784293435769573787363173237009881397478040991476130031434539267395481304384454528674664655511701573242995296653103634605166244501485656686868707922764983029501137918329786046953808384901504969416142734304367168865131931134427383707301804580530953206547887613911614912960171261095661711729241501277472333870937699504946555523482505239195757533148388400222302685635600697798956249778895087583287256790465891702964506221306701964299599887901579101511570585004398716208110054723382476529488002857302172596329382915205750653474890989568597798564345413792506358880990822950873649601998307021438382856660029396378612822584760118976459648885864145334938198978410567815316215566189166560904835954429836518910120727307145492693834480165564187686389206161353904918968813945862191055748634303412619009530852530829812851876100576846027282942274593034996428286539201670654874848367976827622199366961179356888894298454568459997785500296581469010571977976987803599482715780633534189570581116954732198690515295644307390969544898992415600012367722475275607197087567045645827162398791199794146067352073436577370762512723982382714246480309644670335912771589888352250107087581741007500992755979173904448665545480185601299337154483189190221866691920385949749226944859298856904958151891258735980347093259284363192290151373876514630840339251058632086221301985954095985449457386909080933865476097507597905240890461759420228275723293248322921152319784080748110977416991968963124126860016116957792670491386963440905222025724598839466188192546488493682342967269924336925917194231843382737064337569597342305264890025087331552385390109763259526540554612665588605537914382151973280928503302822178794872079478589319243556993613097078803515087690854700532043410172343529566159621865799911456077656969163165769053497662199915218054817202780874208964413912334207158916910926876294886957141576078941395693983478694170437489270496314875081728354025656524534121120688365889629522341158109875624894904602664411649498531076178839580185142516791071432005729196901008167387561704706355865508228794565685923419166333968154404677940386673988906904880987222398443736267038091377257076646884153902249515990659036033867217236704563111399286592526883611216228904152838992554695802844756741026906213492574859119221406040720260734788313633715014876146536669053860765877875087731252348968410214763212888893031318558746790171752723052250039824483376593294413088162259522715371906305267152379786335611580662595698201172209013960606821038072628931033152580534707701531803832962178175798000102145585118699982719773486987473622167203821579903384032054861675564233712113473471728175455156429164077349133288081327432595028296335802095414683944798972155447282473633313925706125834323944375947206141070052542000873655278654901277541504081100408573753677755026004175393370510156862313909636257429530697921862086376497021671574936496060713442276712480962259705805167009404474596705377090685457611797712136815255614334135799201908972215234703311108519709045074822406116849062175194451652145632876645973738510791283564456081635082130783368701217894237901442149718413873070162702377512161507279765526488522749935083198540366369494676664303567647443713867973765365377792169482883932493283376739363444455665254375882962552236664193244911361378930983933020424638712230173367796767166144429077564487325064336116447461504081228175203168027763065499793913982557115727097731051990913946737569783647544197662442907715315963796042117934474666429667581842127561214573299549066851875016960728082506519920577854491644838390713941476387369841658623206536627998300535131499972516960825751429655387900069927331812083622727813729331154383267591885819448744302512880313290442841427084136063633456399843221322194265907686507249178479244394917293355971549458241919554724061669284412464517810569864369533417198120789249539285682414050394842760316062875187381896185117648112181826002551947848484677350586212701556768286926386149043929978416515339635453398376666218360914332467616406016083474925557086641068676946134417638276720669896585125138484715451218347909136664719780169083443748756493588700084914508530193245050545812292438997849583067852887057635020219999249172528250205576924966212708026665501254273770445736763293967217670114195592740006235643755974348720224091291958205980607686732900013878381752236077146001450029967133168956100789756634958377201703450241449207770386063238787014538251369767725868939313494727696684978505818443165653408251697418780781559159432354928111409758035163419392217955768769353353611705492522749468873085644922946007042393380340470522712000604375303215220490860242470300149137620877984420129283782535390897407492240357405175168929597871850930351607788844775061389328487715568384233831967939273142737993811381618762615790579647711330376981397978534283358313357739672388335299641680914088493216780372995960163768689222206783678783246957185534884282550016980723655957869970849567230101122300746826731385377393218814454128456055956848529931771142230493169315106510637594541858025828510932219312143285438219784145267608920729816795267728043296022044530061524903408693661601586741656519771920162458436779504875248150737304587827381619601927378596389363025190503825442147730144176151358162383230719543101108561858717368030132627763609555063438853279073225091799797487851676322936124422972669572647327742035944768363353775531518475910498269524357125439034617136159150970560323143905468999462523599541971822246583009604330143811876549326300558482203808753248772867693973823870307455675792883106367842241975822889483677563064642438594597390615413497761759389636185631742642699777245271216134952635473905962580531956515199220291722769703199924467997794307462972205683475008485978055174856806947802389930989623884305497279278972785161247251625722292519909291459699076859089193867241186847843600475786844785305621108420487146306724195897093090684171180601752801808345356426538778571277342272853268083487488004099559659413727216244768482677481512815276338517338300707483093120613039820059275816402410958096434180319971917544328602023684773443069357389695696897395373409518866743965630115132094720148237280612927915095177948585285637122773663030378766879963363262186619707559520306178411149155455767645304156817964404414972833490632343005410043762075051317903943009825523997475779601604070365492319831288443525727194005708648861342259366243735656837964781446591616980207763786601716645056089868611121650173399922327296102324713740754834871380364135217302615207737321572296861603927156670760546359628145576634630187299051714596866413641977234263278443435478480700539597073011062867189625069297028649763562986682359240792011649426930204414402093085398002573994488369466282166623744429859545325866453797881823366907335866635912895699767133610634042282584255979717311879706882194844698043149163824826503357934892941387294225137870691149977146824873951037400099579394326526072849527364389998024150561947597008678232796086616897107701555422304679280241166694470910108839309787576476399437966471596391237801021148862662485135348369479043552310987995211247070715164890971437196395109052998966465333498873300520668251884346096020379812152163120786924219863110739717762956074098080171017471694272647837892143026050965831651720071262548918631838450928383056874041572927057386673826555348977131386886452216010254699986202095465743732806226579731260688633655808152354225290852087019557733201394462544300763824827109497505391236995455603169059235993486682563253488835127546459616014383302411648354326998559268556678431984535847939261581405423802496648849408344397224804106895781428069873698025178231336010656507335297306524405968457267823130415130901784314107788129102119864671544317552918883122672845360894356512468847794065103907643583988110100719923219321860083424874417766646239750789587636664136319262059784558594755599771976902386264711355732946017533690293898371279059673700164653850677817454010947126495603767305000653166278976591415580421416383664867401780431285734985314969985723393102944538156854462261600173705836043655184587185716586917951209973582920773036699974081050371820802656813618463343599057037317988823597405960805295165605634348243166142146365591588433585746880050489561772123238419797125094405049803430843750235111191447903590874988595081852871460932742571177038966753832951371531893032851710055208627958117196622854978613149469139711629167002854163101546949027005315284044165314260875252546207876376962963281332629311206035504753802297246031403200583979768276852793646824391153172480456119576067614476374684618548557921831005046763308230695993046794644507810125209893206381737077201919167095539826612029455085562432898566700020408364108390147232963165423800954966906190363443495711872171375419115192108542804533146369110859967249270275251467056649037673721657507608113227208250333272664205024737048605993656136575621496836266277907544183904821106367195532254142198494045624901988610282532208268515558889771836962565808320775089714665703144088668435260916077121563634717044234680699830472957986996627015326545262708342109716452311889781624081058973289190240557307919351703624719571171928234087792984590822275210267333528235664237464205417804784098850009710498380399955726486838993405400137427091142935158296055441568362009735333185387980333301304578848265219083681112272265240861119195034629347243159723365780085645100245680108370483283487621345278735173445996873072746097329186627726259917206118501403635055936475656144962242094013510451519170766919585870187471625310260370842868717302024286890328963164431815264351102545890102693176343267068429855431194433057469733600114736240374500226471982670782724231132368398408945769100250755976334603666884436760898742186638948256298209341755476320000545233743359669223813782252086864037702711811243160613857860785607107638852200365832116471355598825303883578873575936723918845515598330866838930744438151704642132066817699913373146787914882793853895266974615870935910608304728591130898226551176138569676442299777312662261145037258160759114339028242926020832034021508167439869509442458115997133520622216039510748407025596916848500851491682911551821316562943812832380617284966055017346596468780988124842936908128123428007104871817383498516971328842918656126440531263668481591717105342597197843136226736894553792798918173970973459193325420013153656018186594515101856937985775475241874551070514255020512118163272296321330376842829804358702669814538201646090978116678212042908713097403439616224456695898238994582603727730032256237232858744386405635031496698056787049806837388244704624227889940442362083599551053754857100309501382750034349299909677799071646229034617514741858339138426860015450751430230033274355606773593046844131863278055704770935465324033016989910894175440740609753115390892526150952055655532958135829928143009311914123085834958025963509973034569695924342040708060236416112501402577539047045126852135912519335740720504250130791880567571935200809323726277140248916264953576098588971739520643124377551419601708568740271534105048191247838311581070491094121798853641492637981218430755482901019101105126009325109392444301416790541074828540161344441971201484381740467246577688671697779678616953129390573380503527284517118638959748721947476698845445049890679652938234096644479415694858128891523132820418888747245252629493155652749102363135254881429294471445895002502613329994341253276797827286570364135950372305474580699683246758131872534176009041295419694638160148618284439136676841949087050298150382609142581295914311731489576822372546989839687450701563031966517981519851913973613705405132426886962726580689013045314836392900856226742714610333917105553566610315127488918105703383009347177651494536231420036388606706182489928409479700905522962165775276152825923565821883616457741967126096928769909546034610105438442663545946102557715855642330359127020067780585851075903856833253382286770091034813841034264579770663595509747284159395259772750619268107577652113708940608503279836962674642424947749307739410471796441136489393421971677908548027269816237550201539078957010514524621611445810190740241192444615494266009622221865676313546666025325185446913782280036042141633122044585439380239687549041745187508992446875948835358455829048989061935617220969150255585875008143890147502798506724749286232514076067568514211494319008432378922902355940486147082285181643491899446918210481363618317957751407490503807344999718307559638209782566538600667754295468028874500724073116326181944641760509067612537175169238828259945510057200724607619028684334669643392762533226067904985001130668369725705871784618563250509125573281872626837206900782321592521018800406414803347283753150588476840424121977179139022325345355412968618244631956515967351624995590557996888861409153271037675478903319236451993032771044152692720530955021520046868522650950564657761082862958974901286075086061030655684815676449704700392235062256718298806627996638930193154989076033407437542271902793199853479801423008593658404953230200747752214959289893287516983360224842872216142984060507492649256659913060834808500598792469422185784048146146271593226509289821037039649161806509686121329455460831955856648489910946999941037522087864454187491905302284605005115502414457434427881443406637527459474658240991455334413688446976614231578547169610982220582237220918549719337359624656165120638233807010231446963698558131688739166347989045735805092388370057174253433124107499895362072739000367361716187562207366128557686980558596304544269777660378570936919908666918699790598488415293193290748424571211497101334660593855593357543825719780430109689327049502448434256535530513501459454207498203747225225604111221544272160643120218259589525781279462904316554188228548651738534570674198842826945577325372719957418825244171520197000875206665462409260184023255627162658010745970852871807090730612076745161947481544713850865912896669269659516654829395687789458709760442244822753344088320703936763094524947663586386770797210933547152569905999921225570174327262468453973888470545535644101631496502890427010268241664356857797353002329012533431900988696125233322613693429969664043324074352706708365152018721099743164354298398847835979252572107663293291956058401509929527080426989696203170690769337561468238075926515112066083468215113572207435793240943434210154164634904739008212879793464905908929818304803609260158292137127572543176545816089774442560404004989177612518671284257382012243053681850423988024533584084403808928310349948721487311517605250798839549935571689923152815324554033241562889076074340996192273937285929652026675082863921108609991273335126055665717692134208075339915130827229251687302806969337949937773760409816008144268239652257755456891395574151829247544543426197094530487563452375426984456190867260195038159470874248455523747729259006394253375409929530588273083748339301333081176071728512965415254908530824251379590662454132710774561135798992716186810905917161969496429328849386241839085158969624560925522622206813337383911879836952102652083453743261293880319948644531640680344276660252062908540138231680288684617433920655054824598326993938892415054039562652860467819045672448578379888731461736419384520166442798768298123775295304686828239108166862046637601548083000803583581208134153257357588517469700134284317200354208533655497086546441843456898146461068267631615342133934393747471899785587708524773774594321894382672318541520033149449106423833709968993049365395249588147983592460747927210852590520977290980702521338229781659221748648838531782784898390045766861013616358229540532552483388684274550298746862943057748332533570940010789025937649744062441779592798078691287147556922620562372942276889956319692958792632105277038177416637128583202000623838489142164591182205244506071740295341776830601192519016184977501725847076263574217570535210792981655604019442152631373773163751125330462722303174288295982988703974681671852148703990287434184907353912511035729674435277039841452059940002463530548098221691766868017642481860533912704202758459622708187824398352041145966451207368194275639061338205627987800045781249605341794185226029618549572067439735910914161456964367972155872840584780027541878676848503835633406597613447589286253527978738308007288199089347675002327354867776822838933068789236438476879579275357212914796817441701363855731981519759424559450604382629741290975391343627161089019913174920275112409163789128887582246449986205431136699806244390395093401430125182763407291238868053179469875498498055304346471333807782827754233734588297252794455268070101534972385000507083983402044702654324658030624093052553505794893020913063165079595006228792902088219134484077032040244640977694466508072922253856892617134975145285123321966449450621354630849526802487363634344016675893425760348540697600288936881533727283661550043830386465697001279292664364193192746502414382837550681776853627581505919778703839435248689665380129908438592474823983405041763105107404407843820454114810507644665546932290941509567974372917048000791358118819454782527979269467248423401543372405226844888853378506851778676301986477046990738547894614667437961078577240441074594996755931274529748492781599994682900303815444248295767993706332360005085183951196647775665260154518839853463656842090584065373154863963786791428089132047417767503883468146769736842692319360207787905220039535154215784362389702387805554264112286028172365108646870702752407400810325044250040408404854288195144178518440584000987959524401541239411440681943501507731110391028077076939395813458559809204593649659000583978517813839572046476137540866053939771797103478746527234963429059102653718607295035800255300148769499848012884615510248710543160247700987461296926251000258762527275504596057002878644544574795110702296988285746646597482687428444180952441328697543126317102086899623534976403013990627494787669667605089386062189666158825969268908843714892676767332912488541523185332470988701872204039350663884220361387136938136889965860259640275700860343673000649133694696738708499879056879327023646596501030459671806967018613360389215685787100832245612566653431503786476232106576187797235525131050033839019449356531510544575596331557120667124407981064224475611069225888885159853831399788623041370982363220637429679597958882372877102283662493653629816529137403416033836607639256469134945529118878480695430639466503739802351457968130933111813221175748480675300738552362044959492709135655658812864710646709542543296073941689136718300131994317515198114037436939122677686703798735330226923983045507335685497453055783194552429932344864261968618825325716781497191198418339559980551658874524128267388309245324086902686585838461198936697413000104537541809733663618557942078240288898008572855609225967966439181792372796535360431773923050049600004413371343566173129719743341201512061055073802912916387605507737599650356114293260252662089879476433528915593574455728747058827728300353776580568155347425963159564198288774883058334304404562050620660628742654160150168765622555202967049456468238960349672710499901148717248674859600436350061802679195093398654290908000308071109083396195918748475803384249361296368103116739899792227664751870890393814800904908106342769082459754654227746629409234767902858164430058554379646536144660382582846238648628068726065662056639287339159963892221155670974569230578902306421175988663256343426661910159578577293118457921413397259133633010481102433660002535311141681545362552845233320271069597120484781482628965160261926507518945362076996488907144231544555973935343155129786402046437939808452090350363747301566834431332847848819648119021803833417202742205513787371890970303405880635441857297484743133236135613442560261235373661060745049634450123063180530643944778959173708873228215333436298886869473554264835747243867551251691298855460071545045749875690318129631409451881918587320441656986161463709933384027764831178435725917828405279403034873757537328146612651942599902468079877491775123879825416574683247709304945784745302054031047133637801586871211591404204407675953422719531514444725208768134565950349231284870228064563887396903273810591250362408108817939927909061057200263503777403922392911377038637055646051218913691159184198632538544401092303163907218347974333823576841104998195315543130354975936246820062386559985325011537194849338226150189223517512678405808268941058572619830934213732118979696750012217193826470445037165528269224932373216226013593027832091017393408688760270646699408307872907880575337199377430823109786684551106950535231601489239948537261481750099325097866923319578434062316482148383689697423305249830130559136203796988196245556623420540076580664378480738163996887019982027069007011542470721581159569329581714683786624899585661752207446430347681006654783793473176531374641479141325963351514826797481189961579865175935504791619820498296051955934354882469424189270076244343814637547252273454241344806212656756583628240685589611208098907038989644398059217870663524580992281446319543604289043642361028347961342618087062395236400993006398212887690739614487955383301169934098403918383303271841295577625336750776052776482097322450229403120745265761211352528095829289892714589131305172411002984780350993540312229285035306790277209009769578127065921700532970865802783321958640939139221353111817693582972054071371850696305689504916125777130797693653614717437448114668157868126204890093893054922037534031079140768029671479146193839015921604886702755221696537498296167987876680086331719056220944546191414598901680312670648791256617630981065145820246885113902942308799150187117702955835696474439483279926753739705813986784375711784175376317139750666264887700262957010246849310384201447258450826211981925934597353278683256636141689048112426449015062668242641754314871725070781115301641131632793129294873386593701783036326579461458336448829179230638421218754612260702047931667363234105824214391578662496539089980713335761379534396467870877602949810969959716500912965348083089994209308112361931005754509713207417372420945235161283454294786108450108610894411712782386626457172821005360971241513790002943413426414248372589357482661835847453871358923339729289270456181592853519601812827418914180900334776772813373631630867685161182468771902745242283502151127510259403640619402725456826718980090614105553089605735978992835606349555354185558895290992521116472182596740447754134257154127010045446668481683821423676078480754955992806454762983240553096014951615169359578444881115144537474910011419696104304363587742189721862010385316008441423544347769079088168021509476988072416201076670688568844260033867186839396225146293681945425869421663565966831173920759969712140801358679515359522331206020434415043620782010758417239006922878952724045384073027508108873731752538182200859029356015568982302777651925132528805159371483762148624795111409597511179414137187957935094650571389173501723141359675903016577020997684658150640339696432163240870572634723170874482615648309669128210469597551019015971654271191129170986685265703860610960122549321720741891823701654556000308260929502017673564154015545086371608152925466968987902694211862754436485123684416804792938035245319899729309881016282087221078973543445119734625363141812549801459831481618362825283845875281057220608216162000988299799979266608311130921762753058257245164877511396566603768245945787788530955471533647849860023860263865916459888051157315216554362240816772266872722733557366477873330172633521214644217942390168803952121421476380596222204071354670435649938341944427637091295173949046269415504837951630812299086591866849464996382239739298395200749998225583768303332574781398640802969092863709461919080068636164471803767120060289927941182338511435919828072854540207376846657985099384156683051039184531930665684878142176365576479005238874075586563829679100688567952739428755413591442743737564657246369866432168849952128072398214060938045079878623449933333011353300859426274770372815724696996429234319391654795138439269215910893239830322093946598335925208533978899113302598024447884728697642665287130045406175313104769538117870584312525181359230128957341292308616883008651719987403065060853840572814891999025240566369625974525944243076427127548083620064778991893575216193536978851930308766921762449595458742796840203575964815597283817384620369411755686801798531877662055601050938702428546002689992527752034963952752558109241903731543811664882333028582538072220212396271585279776428688680149955640776433603777242215896186677236199783219205021158593367364407364609529770199615357653771806940442812877631319791421024728136269735728324439783090674168077222547886444994580756531486296045951891046941380590148468707845847220709156991731837215433088790359554806764414794737539470406228003971550363924237114335869171768464043180941094779376647534202575515009953197843924684231333325742697312670044494617730725922560824777506364657288034855319040127336288157992972491964760089729774390684133221317855515643056374454175679681441975093751067738395736295918414429442213662706129819079853384419719138157750775784938251165045974825969770919000089188486884272771724870314831570065578223277736561596157404269806572760640024380392227706468801446624382070859822335759755471765254407472341257882277341891588737456217355650971384883239274114252966039328009883266787204953392243682179286736875453957501062836346485215963647452491892305553738176728029808342749507387093043854170203406099777892002745455862447271889993633180014532051390745208133654631344886661513691134588680557763342825659771211171389346060125671174801613848654042944443895251805942700706410227412782535476760432060210175270117445083109640807327571915681066275840146196729854750970284617872382523351897027405151856225394669565972787530252782499510360516367888591491416288517540735457299443206305841511031593663974767458361486638242039739804205599886922528346844056059210422504752266812270385496110713432191613139443316655770783397210237208341649468401307718704473927699961917511976083357515231979482207853754994708014975353024812182276129216873648888310836492451910741772707386240317510965680887696889161183179790685981548527756255923991599609625577166736236606649335057743306870425808854661900373790963983811013489278377864325936752810954934091159112501245527955761681237910695391247656301224032868357548483644165007702363883948206361400042499390209755186237363475698371008475451395567510678865800033452157537887979362982441362184181112171353284796922114361744998744419579355811273993812371816081934592958356740374246329042789632004652776946802673763899372754613955611990872469105671522664204349114629151525549754793974343570091033563004916526276713328612923264011658042793439398894917350100834160694183275871785536002182983310369954606972518369186662609409088688277936494598308868087792257880795124260613331160269327780339015751382144815886895017525579165982005625373048317415675150737801107314263411882523369376098139479724813442949053324716702453608856195590490951157212636617803018676411633196895022467533342484167562190782756867199305538458685535749560333267270682357343421375449400908408291147397238053775526395012382058677759125060217807925692281565175904392282262296283798011447470491538709422424988955378357666741451671642647070170533388935562765532466694039242189455221051925041275673926737213672096036036467005422710060285491177595420538324735953584541760293419271289341708111487783235264399524198184845772313426136473171547882645320294009673470735215371149893248047509704745811264974249666417836806068383380523366593875514823421764968030367884636388469914666073339162578320135191832777777830436149998634238472784651817326934673203588924084594041325686135251926849403770360678803136558491753706396643160018611520200505200698546778443165829717118207129624503181954969337459480973165095492338351502403833807208397086571979365348991626261992093294542216296114013056112863615182766975257036170604930103587511803926397010790399076805466876711744692931100354138087122180036303077274565476819782582722652752277296208982263040639360111970141957730559729826558487262242769151558012731726685331185733303489045104575457176593972829099754679191536599464477991539713122236060247721938254492314440716496736808347846106328994393467121576859708022172472635822826638901746504422311600339467506158054869660720177521481582372349204753176189865066584332412254200981901922991928446900281709810943265978363041999245941174659289962133817535363244031194485479675981053229822872819115116748222643804377702785549501696247511475346176930023427834761090562122032623403801103679664082778242618385218038051930465066087153541462540130108507495756236221385290894904785163201753376194061625968539136621595181416737652433534481416698897375243948738037968067466655931109405755616570305437431670592993856764359358530092266459728226311744905853000362987628373169855281961374980436959296625741610402449376996347079410046648172247156477317454110630851237850490236223731770306463790326269460759812059472438927331579249429774899585983313506281147173297146166168050364659720481243849088670794154266092438578981732002939212879710025582396161125705017644346529595310002649649849549874525899741800608006351996334069312590164344504796150632279052405802729879122910324079742944316934074536562456820806888928258379860340192519390537735907570923682736508156457623847436083654591138774982465946487853327082627202669819853282209419850987689896543120767625713800699697931473536796605640738602935002284306152045432076332249182988499401757386931913816756044013863719217040156452182480852566616682066557101003393772053511032081407786614936455080687597778798640082913556073957894426318955220907570466776162460929099747025138969969987657693836622894675362757754567636775984153370553271308548496413145540003114897253757443846904387140974900294489263556953345082290325863163392922430751413807305149260579742460261084067384815184212673435907597054276314006667729578957330497799022023975893910424981462920860316575147925682601163081297352751178214483197288059963012777319653802496989358411270208882217627869925757238625099791864930695866877084133755741637527891160560537223397271764687994101725003893567740574836312435836309571903595048628468568600598980408445081964467308625834623852767077797876054223970874007305349252058002114602453978700925829707019862330311934451796865798627010968203629999620571328718881071720009055638411929326687793994948987002492356303276634203434959559065634481735697239157990889883233018161576689216547545469094020138973718999101879396071351619720172804788353321601474797110788528219328439838977270062873590662402960090337050380911942941826888150065805846243668376690745356276685085795995168377460255921566806086941000574065193138588309272304305247546386455015394758952569999588537180471066012547707219452310330261965909162260779933798802430896130827634702860675232838458854786436955160071844728164133143623431944167991614609978398035315837969231625430735098377416098958849780330836024856135964518469115981509496215085853932884647910207451928319578738762911116574437534849808331271205722149162461484878069488042833329306781983589542907185495883729718538723585160707276924116578018928125168948260130336068358318475113348921692987296824495277597705407988746367661486211349047668088919227312153542022624758346748927700648880799106146189751805660047400270254604387356179314460683238293963722915861110127798229577305467723165248466507015052483847685403271757991435608904882300720214057727283644088971387254724414658956456743230428135725624335821428167169233366110488981771032798691308799143792470610015644554304340435313191540273254251305803065241438428283647849757184994876280250692413851067938468273555174712449040810704937927270537916787974400185829252872787363364385191331843347105034626465663524212429729376895643287228438038889383703080818886407436627672562739461816270333478260971087432691403457121311262823938037363651434829904447172080906076275660447787415041417099120145590367315725929114443498279361459216576419284435490441661936742836846882033013285178006224215505496314346710568904999908360271561877963140981866614683231683337417202818850893759856002631014978855837041847902249733993141642556101353171369445428175619748679788161804260979166341525436794496082262753784613917324459211957444402502917740414170966420699220354515625253543601190200694150584729597522370095842111809761698312590731420367581062313826092284264175633091474667460629245451352568672526658045713888916921662761845261574138635448028472967698704268678386806922722583827516797882583632945890044418652189954328528862428288607028996593784805091745985270816796932818176740726488549856151947755559158703639323484397622136237328988969410976674992187684596253860887290762194404137307381667519013768487121975550218411209523591115225280760160467525747022433779953481150803933355601578270720807210976541928253142447620278136424763426355780472103201253189756596096956072230901690022580538612226408860438982723190719208762935392041523177132957647064491544605855354211332143277919173193717801530561029274487057816841712444754373972265666296131992939644918129764815672833625813219165454416615462718809712759181931896864991796667453939008427268012109733675233512278432987537470184277674243439468770887217350050587510954318190727643798135456735455484707781729191356773648184961747162230099054552479214420804705049317823207794548083704343552302421340057737220674210241534985489841678727133958109137090185349900350567637315189794750632302346133161272434889613204721281027269504631391775981955414809267613638411465360824110113260025615545650287095412236764221513607034990832063603026688569656426473078122364563503015526645915051071308138860488482376879135701394852391962567608449366363117832469435908183094930160399293629266731759887872183117110007999348499415298720048044901911537359816693781034538306633395119679923588316775983060307206717428269636704050500742149550015201332493385177899766840900072536270712805373751479585113165501034283067653275661679086092331301332459061090289101280298737325025792120464703797749870035058188427625242304978699157047612866396557528894191012876518097080793128811618292539486934148808441821969610900201657161054892849210286683907223172250991735313780578645089353454113790956933262429207696064063019392045709242111812997525187332143688252851811000616183308713823601288726476114587764874522893727965411865652496492920952211108013346408866292515417776903996725386846563128440322859421757109230447880989838299104622495738322599624894721218714488084364645680587044024650931572835139234394645805490515965015230327092963498452307758593097788359934967593720086450799920749559049055325501397373994394339370703150733006515455591783662737526332520816125632701834614573630938292354399556738646548787316938079586508670493208911052212003212820412930535295651111889596336133196285788468392533060470619605553541706223806199563279423397125188393589578761957807861038075545554606799488847156873490760389127286975318058952633444432738240206689597148638664981496491335058839850367856357000358083125856460504524742062444954433344850822290044293229372413606383677100694434239359305355717573001113494527056262711192021941624840427355191786123108991640415429987009112803999560903984307002380960900833385510032758087751909468628318005274136975880927712959853140647658836152893129320134218351143995649302326056456802634554709097898473878256923979631141110870034700282249081553705897547654741480723798658684085669567647461345119875238138051539604190907139555169163278237022852638927554490570110607696972410900645649749448256473002092085648392168112533219061353711386859019424770900257028540004978744070401893804059896423237683681871123562312047611994203015605209547387935832563493616069087285731290521147345392172946611159682841220915360600523916054997244289553828707814011846987524319141179636393264850099591585076352055260312962297870431958104319839866705778854236929678336621355014410549906018976102875528779694049656265218521038863406416085294919398584033205406577425779616206558008436467575467163575211345803356043574865702667366234799500383866287438335299898716748584814899863715968311685988592878356301959486605544409493335958258969542323650147723178537021952397426616342285961642599309749383004370656611154013585181113282812969783565431995469651003334720428926525011073141362836290716948836823246371668969213158328205627397118342226096738988219627979676686535408815868753005535441331662678007438635026089278836118230669153877866441545696489838971454708461720605815378566158510437187501320404216842521146391666312175463139647342158488627472772183554235108817302031026311883051224086410161484988825355165178811211602597602849796328594096909773330684968776497082937795963598956741544571061650499636599256390966480005938706890459597022338599681781131598031278826820023966482072713508471049184049541424166261645785769456842253644692491792091141445512614625298421953286994732672967388749224116458075825508639279483515227428401518299097274521224849359391430174338760385134660710167076010503941226817197668785671014503940203021548895043873485220257370148857144253027946903071388735112862491485618377176654067968498443700025847584180532087659985692750970102520771424358551687911194864854190430160510901483557006935993494172006477688313809724867948179871043169101269738824993967115208609102217899802168500675571968719263516640043552437426640196482442947917701317159113733950085800983338212671353396640134356761697404144336331603337382473963423089608334545627971148194358739274326142736582711725373251777437903547262634394612107231529373505799186799003807378205274782213221402361373035295442314146189889538841203527559419557104968990650118618425129167016578986331503107636321199785283567187549206250164681082644142794839239252797592517719277760623800299689701290433289320371795446456464014152355133887212649933525540750176544788215818389950955993134646730865386511250722931704413502587300229012759061870768065614695135906623786260510557718193535372212675713122411407437629315763096523870403548123452579076696772801328695251420240443040684489627495713692742196965491160250874503871247201855297417549691516733898554837100194833987624578002829629426829984458371483190356902278327642513278173859806441658048167415580737629959340455951242046611419982246507758014013351742811037879824875425090376575701200599885046508765575635591202472907674791308611547590376469716894074975929827826389765091123136076756375151402851649973061415668464842694408597830754681529547568275659931186454797428677411876053221232443299297903759882276977762357785444233124741042162419999476599761070624999841178917346086958586260742369792471653093667821947240201769628744839965120375609831201425549406503649903705308097941833959175551309414051806050225497143617137853320305305700131348205119061449184537875287408873928105618400868126612729408577179918983251922453107741046657899440507897066991012228719490329417318910327350773865653417454645524381229559889231270768009615826228985279733701756870128908616826739040667690549077345950362236087290078637654756055259144348379567611289979514024985806505568742079849954646690002891731647471974425230916211953434378456692632352378177287878211907522476171961996861876599452504641716047067243794444115270633822346801875246776450267949217424797304425521245249233525356954743305627884793651073423085522744097810812063136952722875338427656667338681204185018643226740319920181966486398260241582365510813770935021408140293990661719368940140403074330120413168190259714042660023219210565770963906921649579520465333065788287902713675460569695381449264037612878405156620743313495507085915194388119532212468292148121245224621577339685080486060316367333604397435997854830070828079752920219945994421624154526614356818115560917525127713622816536964734220069465582158681097464906872848207383728731526469587930730618625359701012871696524679869540748047812333069696537161146576536337796193804298521694726619292411177773766505327431976725235931177635692806119757932153589525104172244707349026690936773667851737173144618170473808873752742983495495396457239576146699823063587713630130845765066672587945782230643987796729065644858646679114343345088996823747359241374908938600595430919539289659231026558278313998353016685127105557337309496494551504013255686954288293427415930352017997691988538854778270177119253453315692041073950400534902583512068765455024540211847845312800956641361366305659650785997886675132701433300769787249544623339412820942420230559247124843109153491060548652283784852316591789177118461442794213716430369621843941945881709940405303706716680519770348339799229935695514547977644356021254327237955288075796646863492316759849711451831722414980529247718807575023475258457514841578453707709036485509238399707674004654749906830671021582957797345668509366875978028476974892040143465486504185793789919528185466543063110635463965476678140419348379538409212257836115023406507951469230233776784559588221255845592575225009136574346990930072460632267913399150085966585484531171563055488564732482294100273371878327383337057632425815811086321619954025348648365612043434371406051605566268755874807416594837500349060001648961464549511454411248628772195970358771285870872835989786121279395190791121869928181967229094907516731821125488608544862114028518025522653491682691395518874838041914052337570944192416978171677145502020505698280588208093408361790337289629612198799669085256626506596065167512763835595619720024111616025752049597643062043562539790705214440380148201823234094033998331768876941002675838347626044765998877770121458881951126157421262215150628471558933660341955484653491336878155209462975806438517569294436258641844539626953620225751022310518545126589987083067903223589416967354111721482528444450556115758908423008945891979288149221653763423597614853843460350137391475199289587010681210537701945083092345245177939817210927449031968731069439419716989673367814159188162413785282407981033514333570018148171462623894803518084988177540392574654222834541168792263926180924380760572703009733548789315129427945926542337992558779324363494044327999156359365496134927507460097100773092260795873256762536041403832288100234819102558851335692459925143125382753749653485633336084535006284889170380387987696033739629888385706277635901148550851874523598417092329648455274520124575809768278384928396453937803821684619819202143612520985520710964600242201110072878499883754148304986021656808336035866834359029603300747118428537774935592527353909062547839044301601842587040216449266557352514127310348764813015275647027746414428838565855390780598967652946969289649891212296673677247905838547425747713389824358738909938961951924564895929632477098493032783242049518962487015256598323707043571827043301407658568553361740002789590063108789687708938533226055400805371096799406509024645351334433293445259252338769814353325541031258065301100922426490022595695293634301611343636709443074399190295477673616910828810721870893818232523905907494806694559162188692366541674076283702460066196267015387001541677797958889382347406255987884637381251979367970356084681279332858510528844788772823774973122228784296981314045135485859917390499074649163789966626402962387584683515531185075282628761717488444153111892111339029300070323665715685547083134481469965746195744353430212380666603060650633511974843221006486759026232176196894821805874699975475454401547252036744141463529884182407667499926269949926712837800569302265415811692226469667618567390142744674238837558831940987751181888491052360282629039032052417248028530526007670747900764683744817061210159505759103567404640110205799893496801740661808349645320982779535320586947043842410243889835815108568115342612627277104677082589590106373088489396903818899989058292838534818544682499677494406000223355747855173751899039487735330296171658630342532966060465410659321382221929625922136131792529151278692845269791250523103630372650528428942020780925858887957162343111119067781129236386219396900153923143976205483401386106703281289390009050738486472614045924898055314445241034533166058256679932081287065527932018268485356553546768834492200689744762933800422679378135650720910072536322056160111227787760665069695904354614165163391656851309367140599739926676214729676058899137510548636354793783054660414889472378538395449962934567302681907414506669534372195363446975440019352710143011846639306521816515969394085055482448806432322802354555975318872687855297472403696742916821193455255891246166999888955947361416797383054864401769191951344052522494654401709513153489962352166044396119658188878518653345603828536640714183745856614218116925167978026579120361512053370796162152692132280893976684364265500655481982962001271124195201773014104882883116599991816305712861172309051371897541034752815229478717422085277443874413205000006629396880448038300317300865319366938523456735905261248209358945385435850174968411371283210688459663942760532998496357679740286683421016389111207626765021566880675786712517343668725608028606897669352240186111020716215784393239467123227490091336298831294448955399518697848850967572024414327044937690208728470874471492326533191695936749413728530095374564236992471532147044622408013433183774208831835319132942810827092868243849773869622799772880542425937011883803143410023135486696646956039412331525892320697961243122468156722109445198702088291753731108182957298918658696522238316669864536191058092030772504983886482155733553071319371317598328844955414649838234849999784832269730540608084404483031346658344327872902061871207697959794269788607832730174219102913062878884598907347761250921537815735161536621319471986449577838135280189310556880321067253120202640482695617406438021272756516960198947083157173083928011537613223950163184616767495541395553720467205200680013542243178652662223259164174497507694152272872974560114322397583556211160917024118109504171388572350134656938317932990098668912165244189585587499694273618812341285504109232606540236075671274583347561280896333195973797413908899346228871234434244717699628604109509552031125803400040567275661889565464788649235462855112755338736374465543359101160683963682750424582515704126235336172239971372703276597472787415552488168329658335154707267653702161265504482785639831599886408438624959837374552411627331192616219701131256561008510116438409874222384354639906756680650661890844662689763152050539399699067514223782287237318498446283124285257743472529478556289734409356158376171733957053697959470294851633163053787291772780401176072158882038828246632324606976725905132541844706269945790500030687384991975819304404538234974046540784927176730869764748082983024821906176738114866885534569248127779181755515286524287817312993586567348355865419824980843505524451295105436677226712635009793485530821061214709410117104395328088393616318278434541833911961407988245875363791106151374608314773383699386199433831625937027317031997996179546696133944354224130100325157532578512633632239779943975239129508676711704736795622799987170918651360192096040654451601268969528930617573098687906417043760592519257788440192843242754520795821931535689255342140958875777567113395836168504824020469278478289533894425885890512839492763769115363226298003354957458437105303631623505280831051361866460874750596716389668938539842703272768380229370046877560187511986992543824788656307914408855247861546498668698558885208721578959960989503679847613381627352705164498095253590963834676494839885872627560479462051404860242013199025063973120067011152622639647415760266314922502329332577805672338030175967553788446697803583707722277876768038170732301222671439211400106576169606066613505112566071880425731145541631477634219143679275991996289858185250890332961766119290105752886888248571812485811837000489275321120391241418075573861038499896405664657773745980640970596852007886192576572955002600490235492411093518342002851880261222990433516808480624217186157128417959302851601086133297764142519265734813658216012147063087192249858852849797475703226282294172787858530065060527339486321122663627288081591341820548825901715583124205895680768579262737329974166916966154504763494718042804430874090933349676312445710710711291457314148997685645857040099233976232030828566619406582358033969655690800748674777264097533391566064280869758259965420557335504228293673917811312845118672930291307538300057072151476532971282904395126536660626657975891701039799245775308062637079867212485401604594516187453655011068357624041733628843540621892559524872203992850423068959016881873757487382544634474699667164511716891594331438329894402844102845106046627624836182228275107696910402646774438067259784919234214865083719655839590290825663247156487398194226634631445821676482514261020748792686579824779291548996660548741574942524810333951357919569155130322374083918502504678262195952707522523966683420304168117837773073585025952055703480638667200106122393092511800932041264969927563752841260139627284852412067811154972208784373572370829010630814248128693914559692976556816909766732412430194141078811377028000566382948753138290236038255006180633987098321921715624734142122826847453917326211654264509124201329367268242201161058508545959280511903959161681865288575530944467072743158809608644110414523390763887653054259501737101169299980347870818960122400476307262033084976091589857013616823360190205415897348827551532489280340770243759652889778090064299966232976416625274027462621612787346581667507460079814443176877672592226921997817590605631461310441062518221629679014506776904582882287413129469834568096179733700042207314252473435250857939178155724847861772157426807524797274199918544122506380375195545764985736368742545740806875290215958708215752783576601182212736320032408723705719726612546988656792399935004934540431912852024576127948625764787952231593282867670687911892234950022595745479982014519132957599466591040767519616304286917915680085585880914704521787815553975473749461919912078681840404694938218280995975484737496160512622258014830155491606555785842806754741168165301255070928836393281205408459012445827578291482911003905342753070940765326978281627533599038381504520384412527580481875152498030969066015719225521669621574841238323709577673415342569338815747305070117131179247231690368211245579590584265859028735261131745352395802985110316662095684764636407985504017650401429836920999992243474119726167496699516888031728361686180899310755750616227782414085533476694393535638125799921019763432327062731301374176574247433103059245106147838890786820311310377571195693073908039448629963628989203591449639745668106463310430518690494970998823877940255285352254120087061102457759680298770634911508117465069050690659780127217329021400206021289073867531460239090071673490571570537667415272101367863929232873834268782683511578974495972604191109897366776188655802233499749948623988313313842681133123406195079672438470291103064318649517039184058608759021384381515329142447540898027794625204702278504219630895408689730939031325997934597478687043323967225015430886639404952129853638421556942333795226080048641496798481918994447861164098635975810237553049306745019338084286328954530783479126926830570018105716469596812879668364162591990568764141841071506585469884929465092256740552724625209862471659398931804183072178610423458764900049383592469682307389247749078709014957596102502578127685070025040912285273276029975637024640554664930733868879231126965711221557834379306073050675950958169049181430093361203515514934823772014449971053387810722133128263100826917381377432682842412864975301812634335677203449396996307388915088539661578958046654184065483371478317474407906138377478318262992594247945779374620344490570712220196810637927637263021977183348973225916326241772863479792216761838324703605415448086728535088382739514019815804786304764201193834266090637174102546733300410062219838626040950784131679424578912095030784918736839024245421032161754359330549169790904677688376359197890095225104776613640817263887486856767623019413675716335950233038067593196530494219007733300273149443670453322662812989828944207362567583369708699290179541498931930386071831370616278188441703425907402260076657799685340229661216202291145922107260374770712351376827152066714098276545356779218648089841524054334894304840293300136684903610540943332479976377230696305806820114224153286574543759561316226696847785213592319143048701919000884677814363122910815024683091919718789744227174660250360088943079083858516647496210228901661488744633281019022464350641510076242174988270233652800891022815476314700189186884247451294281063854052450754457793762624512642321082920956947320003268498216797965200053487357683141487866875026950901241764383968122665713239791115416979597297330961450374973762315987779430112702337687918235436840196753182739376703357746584090606311569377870016113364800135056984528522717646078787972935843219220977954687726370428949605593205233765445317869475607525630323910679376747506173394987342196663837713540456326551651049416781677777474534376925797871796835940011345425180417938400184584532551265424135169480215450250899619380749709642397445890283145201334664143510213958548876601994304756226726235040534815161282422771352385131405655990236196918088535077164180823506990084077847537814443129116714994384248621493534732719542097172617368931216150007389896631425698579350473126899265800273649982405345313425731576321894864181758033368877400356347672532031235782147125813734825076269355520316176771794428389286194509437880016217896591039173606599621367855620048386284381061361975827191099361965581991157197997275197446201499103822046199948025189412380749078032414332301953648368480805156532927517514477210000320890862964517043308639546833996802009604702291035293703162209893228969417724887759977227059852325253412830432212231444630538153559869668399668632404145652579362232858326069039503336725304086130518354067252304881692596629529802903147229580821668282771730346778971693901435234887595448819315196985860072268480833840588040212187029005713805637807018303228056191928225217696934281441530373345770845385014655448123794993932537216387346051729841157609944449560476999779888052072395241631368636374881365170976327262619655866234690801043015109665660179236865816316007116768822797070630856586819302119337644270182893196115113295210449288250572255106874024733692940713169308870035132575531920174754145951062487155115406764723008991199207333688442727439440236803678829132977267199307930625336226762105516714361835494218318186225387551221060615691155253924348900403417292470993388538152688305756817996913302539786783638482623716430446973572643800955479820250777075614721725801791088297112521919381324599250600022368321106124270415138682773369989251237453288748002148807959445898493944970487097358903480604768617239368980273241750894979543710608817420355165783359548462094243031655566474819639418992860501920988589345369881134373809677618331344572222085028965791302247394476331545510226656356998684079762076889835865575785222010574236133743834602420185505796993366248799640252003521415968733863777096522632983279625667983870530404130148259509952886165589198594302188823200439577937900474633882460275244268973257809391904174276626285212783353227240924071720892467735678985700879439573454830087906463038056863789021367735048460175169049880716161814297446454659189528681998885354962522475005717443064641927643693748384407808875187877643264147705078894543061896583264636014524512353387530436526655225994016154401593199730660780851585596299539691515852334632246639045890348791900254706919959386139673887889259965994790303496748578552296327070329405671324020497003198886548976615966221748591714247662756774285805824694438266730836234632305383027662097174659983323185821381177662564726902747587763060102818954680922860741030861308064152346205314102692887008475512687831552497054863707768619845460924305863361817689162656650829291004701309860229046503892034071721019364233767089039461684239720777019446426510739088387401316533119135443608046881038863909119012844400351242640517742314073361045074631480271346558829053492506735560129964863640188965884569454953440139010577625950481831414918404711235472584635804834382835282844590598634104766243053201532254593132832913005393079007090359972050288034234408072243904230743035636574753261491015211335816706034713582386111717971510841770226183436952128516503164722900255385625744967409876555277096094491245592128562915010548553724543491515084138096999573096448108752589327443875894363712573000292252996801781385565987408226807346569911481319864786712561346025037858637535459406531021583588067958746333437552948957518174058557470300768476675950505717404977844896476396480542099542465013026115489920202371286797506546690197193848602906076406276358706768240276152333638727493582030918942604353511294871359482009608847904732661483757470861515006025034116219311547702872474467953230162701511890979407196929493382980482882131000947370182326574878326981980031368649113396609498631240655528724847436400149651465465786982061318023793001034157725440768865270022248404047851928652734097170121940093158957169524873297782858641428156215765360055154734336713577058935146013442561297581587495156205363363217524919122925877208575707135748379769683231756356163732191632612385748188768812106216786253069210811555446764528045175634409488762781265196165150699751246631891683821855685205036318065375225495279705095368762631090730576042655521772015109128897757679773552698027592831560369968323826108813735751801945143323871362140103063155694009095132727554260668252862103694502288238020166989058976610660849180147799360069614457797581739841055594669431945848703979694160595628206145552891931726750421619888887961639563731161677205862841880202899300956523473385121683523987387280131000142347391936834848779045116164116149658748018779241339689716822138660244872778206971387913732205596424084370346259403884197469084532523541171360227791090802274962523933986153176252995104192198418078653179022780062642061634724770618960766578133386923726357060253729879603695705345268568044545874219794418259950289831246682770867893711637671385528720398058224512324728279618083088803432773226643217504277595663264114816674022829112138939051837836698872309301578782610911860146764074606347037980942597480727405903609317058249973014007023828173605553585187627626025423369345164706693792215066468616929843551878403795601321618890174733220471580381418176061356751138711894260541438088781261308280854340547294286569589952233204167104994440913389844364325942362094003032895894285393451400407653511844084628376082483878659526628409564928222590075173479710843945304345939231329252253177460493528546117491095188245237261964006669165522095489780033575657439720830842484411456902778689464394856672677179067595577080227314392364058939749210303815947412128728155408282288881573382261464971705015858379030669714732435589742829285503770737241036303451879362101657824290461963176394958102882997511068341350614225745661388659487332411932830363317844874269319295193589539798559537668546140468331580235885257109061446651754173703557230436404244748664507317758975230965462907218979137088099679120240441147939090296201805111865080142964809785992194141560795384750992853566618493584952035082196202300436184745718107435581062606369483695266507217421085678884896293072188424171184879999807967416611430275808623255973262610228289415554017188061660330852409576936714418697428189515419069924178818005652434298486695487003828353649177024640008231943625734320859981805561265370583017905992548250961809421649952427774430672145090723009017803136439815752940778257301839056789060034494748613355787002021880327826859987557164947145576139561827984346227226934550812826612821756089248164820784537812714198987576747999640305121076004657748109950038610225973906274827223637533217785548660254285979093872637450890222190094422202754416431589190522548222518336766813938036237596180676740527132415629683982639882088771672114411084433900036486120088288112487024865432630544048600828796978613794276757366891239336959971647320196684843625275736009889939449276313825877024092366623892003511535505009849732128902218528510854928426634707030376091804041792811016074546201242662739933776690978850324578521959559618892239003341706220698897707926921539884765361197952808427059093451965295330579645618671992253092594702821369355224815353358870179190953403127575148705612901934662615535340375228720024484472746679520631348914838231590474706055239560057871859487692233616565567020572054945477801907408898268999232307874703993420706381019451644427758050501873752175665134036210057957057080875065284150521967838592762380521194284428709192428229522419974787099390723813146888246882418109128173771024894509285107258105750299543193041889633830316536494203650051285004408887767155286924546285295783650063982775936538958242293738925296127261634514281534542680559791518061013674335823217840289587293443471136602523404998810987323993593373188051678190829862072136920512802851877734338629320746842524777426033629441776134910852210112856706050198337699475449508023502373139441467808416603256240436730187300798997487806373270378306332926187798384923542897402446009534187202708396440833396150923875352330689966640939987154424865656770381729295456612120688425679996022112033065154445983926163013905729728598025605413116907866968480491973632635442535803951746110924130000376815073214763320494496549905616462871540464164296190206791981505963851847997621016584667712258145327709866096887660025897822144135863740394625094883716291465141451117343884339824555092167710039344979570771164992394747458201686178678184478783265175414893438210153576572570229908009773956271997774419629332434487725175482018492224559820521915467419539575505241237969699793271595416793647835488643483921232890710771646626430224160732196225607383823066146266178297267620514240118222535232774070144928828020498663973899625575525391005599026196848952426093089094974337244752718203289194854344285876804273804051738166212330732739405764102620282857956669946463084003060139820133375228903263798879285021208374794746010572321993437494492851654529387001289491721361476162682318594100172394837807261066990702227419944968758042017126455925113640250227112177367027391815772644256154309261229478424324851521948647467569195639234208731425051041435466577622198294290399837003699026298579355515749091527429988835787507229301626199266867559935027743498091900159757108619809607178965141509202629867952796303430774538240852987196538824724102753318434402427432007977326384121197071601578723795029443423957025615753731165366997033010137579707048745933835503554635895768081979016865788355748139653102629171370442002928588158424236065544470343805698607070193831414112129797700954589366060584290076262761821896815588081677480353697888752137813810089997953299242581411452972549753785365444699105902965729992404942932202704242985210878569892016998368712729925962353383540631242846994285837410027096894111586025782210948519584643709747566118194134002076923313727154420869062308899551454801812557681331946542419017763284171668544276539073061196923755287687893415452984061091202543999963349983071970742454520194468748173156105415496991738193552040991888243427652545496960696903451321486747668574032079785558974085698625813320638600770939602602574791691873105063024840407106323106203252570662853137353436447737637236275410993429928104725173999012865268221826826876508990151761229320848918026576044927124112468280182887843910014661384397733127812930021353566702386297941442289540861200265439421052806406391129834257048404645027839004352448537604442008634412784738138050578180069492769126643006232568044043164564115129278337897600895965629222341439079744093865885097132878882911132364625998625949624839505731026155736194496248481074934059057474887206623130900032511744943215344047705292092424320982738816982417326347296232834166196228613074815902190254901988902400870158764033293129335187712157108270096518267087067707806481797825331869884443696089811127509981945311190224123360760327958387491420499187470832686890691107487983617369576188135395269119014572846926316352416838398869203982734324675241746909322903194348755838166238923238788192552895579436602414267566244043396605848074102375601742020365943246593053000666263835382294997590861918483233740996041644873223900606381850978253070751777035067091099807676728328223336356972877770605868875445601677691715564763149887164311945740441634513641265869628357386077508546884729474507726295184469589722635072663571854543487956945512071047069376740421044388568654834794968899260952321872326624857363777622965429062605224104069276708156189057259890553823374889301706284184634610756741063222320853305312292019395798500088128070928769416530529446940440257972372902673204543333900490689046120437308749479999143446723181038072554222255693549116551649669258659857811942686906216946162942478084432893668943851330005167338384752492587064391325834743138074988732959929703524237432012084320556122846611289945021505133166793825760402456771650870283749603712362027982399915538026189725912335966314400636813866666443554830286781641022647329028051764141482811456298049239040930007475227560282580609635837508322283981880639262810617296471692875536905226338251378492463169309938635944778052961066109076736933957407380411847295467561234816218972939102823574972462380781976571550435608737006590290819549371891716083266763320134494463183735489803740857988262935035998989047134938136809644451089839188365233985103701109655163782841355501050876854295753044657885804041232908160903943700191697983322799884364436969144696774789432942393246236287489087397075278146552862608401584831480528636000652790544445436335387963278654590740877385912694524482635326167653120670061145374117475365101409743895964025106093014142905675589285737281439074346294131036185324280214514374588174829826576088082726043746942023344272506857521895692703591522292827820967416884628119985130631933567623269239286441554772108208968624848857613460993437460100177373475439975599059272798842217931346401319429054257238277024786948346457761138342173340102099803661399139502240249343363011582070253005365167726644687128637605523983829917468983526822982537228403232201823257090089396653172963408262626172578729273587440126055677574355807273832341172618966513934535558699742100169822430735465029404085187237794309932012701607443074993352530185533690822821034967419209807437648761599814319912900348908054595063992142238435376144911817199749905709311082443778924617510309774949958195347692988061999417376894318020074867266233343016755034979195654593311883329719046013803779823149415310975764002080468018908824932238128517062929090343127826810850984062857144998113640381622753798457088591455037474561666731547349897945684775729432485737428831528501781968592494523611255064006752396550746441005220216208286128293102674167830073538395890906457187489555023289833149107339563875536424447786971976856461663399974812261459064540489261302143897947423568376183123513626541327470018469549928528078069178341522819896904887813922497843744659037065153969557629262821335050654026162166816654439580422454583066902406393787882054779225123341641244732583359523384524572966682610434515775902075920467522518867759833921063168617798481868237677193481634266998861032394771636455803227262046867420536688602478336622100334138779274655154496546506861312970181651673940244634521748206439206296027787504850768950262700557364134750404805889546958941838158127642368249307829914283596647760980108345860628142830279926087310470156816504476070057256005769432933951794449403257071910072401166268077709793857747973021475066341849615872139391881991449135713724972165320216712198808079100703503375813429952673533992536475074220843119922831921577102753407217862165170089183895126831262831611838421857137437848889317032571113150086067315756663859960422787368455501127098358367120856015161099757585766008398331287209005313623358173397406477707127081063916429861808221319812228484855702704085284866526305534479040525531167341344252647548407125835106668840488965530519808612083864112571434371284288083988938731653243372815786096350354236070649488573962335037559155092514736067759197508289876858473721681556994569132421829589220711985476832845773707766956820782645375325798505197915205869942856434082611313553127368371439071942144943087209179115719278385266198340226651151431242530175899258847744018945359698570108840647955543274199804632908541348450656099685500687478807275622686451973132565694831665804194926516209367540156446395759515533262468673669846354058779038923228027694620120133355850313727830198826463953040658262507594908191431543602464888105712777769142784199685545987318278088890365250374487113547800651834538902242467292282909338008695936373914688316544143532059903869451784200066534219616302198714672303607318652220517001132756225169765603749760923040287331967993922499110374732571978958380640688390135660888777847077373608808152258485176285901044843257793765971559805138276403167735809535337886332193574668987898482163709493494117983235550384636784411334585063284222555739158864566289396117020431713317153999435592060976943641074880796522906933252827651779262203366772396024920031431928515255605261511781915346176847553661947347071503435050111203541343405259682999060048352682082328574740284369898695846107768064752848930530537270924163694022318104285602000986930938724388831302950073080470926795621257486133493873046162504247656014947152596252799887326011934803775805368401373466037051504275371579826948123855724662188482411330748831191658167483720089384690461304019771800065854900087610038567655777726566419129644299693019133514264574698149886684496921496273109297466791691618666804911530474571254007446281903090077267930141102528806457065324046138621374547934313063063829112350572800190281114468741489351500727010194522236661256786946971822855842078010086115409331336913315316484092445693942863813420535302119361406759179861363771247009605447818987746210879402064289726546667031194545084436486569335910490061751748690918273237319490531759686406192432487425141843513534286018417716475145551432955104729122752987604597903538973931005624968466754024770431250486793360429622908641926529326108326586601406147066582676580998533035837956671484038702902586721129347303954305143147809562001163092343448550743019542182613733654978127788839965340699445231147594503018521876294099580242905798618357784771560547425896701485721875421988577432665384748982760508811908630060786268279935856651314694382331205315993548961203635198114581288244537005227311054993618071488783750703290982718575067839353160847724201228061367598770935439238469871920769073127561774778768084694932803703096935650688769013491454912409803687574600640509671015347591055787331256119106858801669691052184361960999559842044746433047211162096633324114538101741036889579997753551385966929916614550600341750090969697879991705205104748352801864417954265855299850651587039309818369994211566970380202108853439924839910339203198742702020165677644691005950940670535182195608295315306935077433353390852038274049043761920522744208929515978246670562739068117974922968750214680871591241227878748173780156272970304186441174204244738018788397611242202387017978356228771894072772351385454823787994085894687346876293949235298938589030704857825497878993465333602181491125272592809042469553703887961056287563674269144126312087744440938635035590773823066754443940367100315472171774642325526726827256715580152577448115381807712222946837241240836251141682487862125550523145475943513881553215355778221060560001145250292168402394990893573685545392277132481739759266320767632822455577606162575742997318221388804646419960461981430074039585150914592928563700030797009551886044521988137671922914542812439175525010294381118068678864643170072844474332530735447812730614408851441973277630397310232895679800639342391244405285648888192731726095572829407535461893614250804374360744531143544891277617951987660472174780384792443127609441611995416656929402929659463681095191709672677648102050875118940345386025318669779818112994210143704041357859155898304440907201082748992365792571989479500045518244329870501142311396132506791074256903140386521827806481975001214519037249542407585424181926548195701319215468271439506393491296573219398340703266337987677009156793466606545158724093300817182826327690533773692079205518323255109812455104560548359563048708443150398959013174065074227095329710931933611509127565996518079940724031613720614935773058323233926019859219742720269108242779076219747236892533289774345862187502478793722309827767514197504236242388527820892476327815990441019171362986186854589688850210463427815246307379738781494951393488556484377434905429770122736527149244142885933628507642582355584519595110965694989652172211509122112343330936033463924560922712129477533158331788092468408552007809410735964123185598561571418577378102880578533616239143893451183865652051813310691058408918186381803215348150876926942248930857384347095924463102504278607529296845587389737338678511752739084319259688370165946923912272571756155280059619810260028223829751598120463160472676024250274598699795774289696983529853918818629694208399600754432212250762690912178063447790949066222070896351045129232568382843797480461416776592022192320292040788562881404803118348819506094276938675522265742052300552474611450706380270616412109245469886786189105163541429214677364846134691349577589405080713987779927935368906857131505330595965929241008202243225859443362197949664649818475391310779917290215190069723094976879993355862253995850554839162952286289727417036626411936247994981024846284472544811995555988655975500509350728343034112087559391485914484648632162302633089550953815639797833352965982218622596273240581303890455065383568572429239494864925345525933551823531338772629165257588411502595528483604759876259032743366296294618829857583617943304493673322161079702036672418651586243337481357867973881350326399299816746650195987037932781431321684110157273095751992734200617740096929975978969712637432065121335732408764669185376359647935926693884209274428411760887657826486758245528031340219280161007391967381312046912194184300852548725188022465465745689864493921048203051509956818348060947169063751964675771957681604226026225566412652194281823098605297468780244314168400042150365808294493930602142864628472046776636236630454383282735492035210133093847076436304438549650955359298021432770433568501622447585002718950954189588743005423766686887794492251137575980840397998972097360423980529150579213058974012390857520740160053941841966926451541319820655368677029971185238588617344606583370238795617899612477180982880034274590481349426062428013974244031998782908782908085992218985232644700767258346702180384837175651977439989470911645679633748091819300506879412816692948777087352883781667301756553667770566354406884969664856171429075656722532448956872391190515899875024177958280163003747495831243057805372490461476792975821784694513221285823568587744672501671052067121464662746694213486647830001223913998317950929373725874149105016114824045618645587954717195193452220541503784211805053816809519612640762321325982373424590199372072440930943929301575674743447522021221822053723753470414922002887308823101877813014652602370870017174009395853791134543717397183412675848644466249965665458252211194768780919289145540725750763359453627575076676851093096530807224278255509710505676246302652716466708609912723032092162410086861515233611304948875104519478873027999238125394192201289202471462029794692872861607177293038990566885862997563710351558280204060119107365205507807086711172814522104195574783330133894075064620805495865613616979534603639785308512154704855975745092972250307550391042067553870845153189844789216593132856678048525782144423342069365923318270564726062574591583567424203556635163284334560927350464994416459574088965206617722760135523382278659543756528720558184190856356093790385876692200770139523875604068479573384413568059474786274806776678529232007235820151394646705823496325520729425345316477451293686772463860046204645642481688193307642443669030364523033000480307918624432761028039061425209368708752712013829774287330637375088372361289698181758223876917589743730687161092038212125740262288592303626319297715065122146028086026372834990244808510789080921733753109201858024357663125707548749950918438230082973921334753530096500128875219918614666421342580708109796331520225210331134837639047426978202378705710436941661134083722324981284697445492336136963046413441280915333115090917175730379989084328646758150370025473062234780780522419675539889633950838011128704253206178427663202969163003678056284281468390178978846533926435887360466773244302882713328778625592609153327650139983685126967664922333326620417651311162102928356684253816529421390897458198007459686891852879604399859800393504707525758356231024050873221291565843649171836900142080566542474017003278607419507858800999568333374300374774499324319159642587625912707523313985959172758929646071404985973549383313222531135929682873667142205740233724066838324702955973314241260563096884307422602376019011515481906029717798747488279848834451749276459134797319075865312463840526813370987483309138924961482584910981400456888051400885616279138525771674636853852487480654135305052987139027905741333806350052481609699387239577266628249254321589535669001595951752078621005608267491995035872651665588082019175345499950784143213879658927591368862552545111151178806605061988453042164500524236705405895184844933845335724156740375407324106275831057391612873317778275936764251423646539057464440184604348513021595289210339050695289532495124253652781343137572594364657268490105514251575664926598533343199358088422114004649187648095920003810608373349990709372651014125050529378184033163164431551228513543975103405620980562438609616558676972436165094009095213280561846730485791321700246324941650771965707360270513929898065024696553714292625622329623668514100087672040941243029908720566189638827475321181284958316269331140702045213368622879808801881660278256103317449793422460216712736593912661295305966468580550530449969754899510322204821529644268402769898055104021006217878193553718782820497877371522941403476008265419871421595639151316039302450772672277944777462362982516642765252970905590244543433929332507250751937652852343466374768119476912573002008426959560711648572247094752645570421365218820003553737251747509462621859501893654769722392529159964240469239711806176988169020996814843207562830095782838030703838914855581604305783848346745962224191488776873131652739392001515265804155205157380873525544797594310967556525631053776893007936118664451077610338275372561990838048604071435893285533307340725863285392043579858575597699303003502258698759054747795446821110139995621657488582036636840147790119509686434930343322632546047369817704783973864154485136403459176160538728648279885210167262894471928326680100329599934683699377774491343943443226998594200561818833062061946317910396979046039518805548023495604134991395402677273275798146122928392283594132794616089782872383380984356809670494604991682087545219253611188596480090708769857470999620304471368196191486244854657339400838176668347504460148429577687785227876335764652983484076570350524619695211114181127560368898199668387966881928458447537296294848093657200747067719741902249838326232960106209272063869564745249797411791501479115217129150431167414101370496523497441942261152321007988954157336076879992818395741380695390741580783222307749487870960779528424731740590412350731228092355398953189436534359552215972029740058617015754204968878841714653387633772212545573337517914520060366294485173641030704816417263205619702993024440994624587643110918621989298733672608174960086965752196590742904926239928278253454884697706908611710505392689945668535727894031080538263910929511700322047936733743714312421875631242204684747261557785581846362316753971627970904932786919198246320525047303129566283216935481559724257354937595862294172057634580785606206407977513155740923164541043365719933664768058472592778569909916366956783104657494756534579126765298586414966727106650376126526223387484316474561075010082744638604562125496004480011438953131159820885574624854223277941907444265602491698664804836103821624437014415509291447454315991025816805236169379700001376794894436715802895612398794273428183173631947301539933061744283750963545587446215253101606999809630471908479397523092872607902473173541959011396918815127476258450498280631246292665960925113957881933050015618262649331420220845620147294094796579053395013450053062689502404782069890088734988730987340778517911565509441090514571504842215620398565539692434042311291593457982878413329575337331180702559350088166526501531763408798377287282702782337339926839914759627864865622191711909949265336210227743150011853129513743639104768288849216866453436011530239922110395891608966388071614326936509288570479948864861707016426805680039307358586585297546646892283131349031150813286312267772507174797575549605918550429574227845063036436019514640310374756460163547640020738714320007641656592017771261098604717235403368882314914233520055749286589704182924623592279612052682207211207796017605842148266368662819766424710401024236896964983718139700419396999297363890352508535145800236128138324735456186612817057071177782955093413957534679489895789419647126570831895980196544744044914733633426945837797856480980313507508284447812670419618762320932125716077886062930921199192595458982808651852951455060347913071862269799000994852448542836101598409947960631983617379617765284415057857785994618982153678488146360275847053149476788215579697257895115605730732425449594448183760553932574560425090824107773962591803986188730904108965236989655755462542082716737953277712329668849864799573195097900081413197509875536056150791007997761858591314246385565517916737453155225748637802666582350674186048398282087870792866349393685040728138925048968054432755053637798848363140568935103764987544361505505769457435437206497825555411262325184068729796283902016530946058216282064632492089072249328385522990951305862293885648393885802022062102282759978669264027799609394280842623510432237260710807336948785163034694073633927404217536246833975219816628147871692527050956760921329937888461035811585048839944297854949835659127073734572071305380753637484400660914155664674625298226812209309976327134549939349932100217550175204282042310036535928834833534576250681478314397764104064709743790482496049202854828643933873706422512599411688026608825223313434756970823783257183199209586218392141530815116643960402057387779869635401491884056095568947178160444512344444767112376040273416890490607405490235214330651443288383752131181128143732534692375396021443618717221369232107984776198851538018635103078366637843983483961054420589744715437466909007466184094508784773014721646778781725983652283157751678136961049571682231296267266335834283238703954773668374676593764597892724778533842112018264132899657381323181311652617344665945511154602585723175895989112217964429553340794792866699182651803781535914471859973070178908386859386453719414538872919924278892366944849671932038186249382222253418766757264102377387090698751536446554071447584981237430230941762286142266446185045506070525532252428852575761186897693216198189543782052380767664047249249926244729972519573560973953351923672150527688273926774407057895403221555081029664584461779991269636335925687182036279564179835275223150550699657360408337646429716069608929535336257678879817407014158181092585425154913867119628605438511223823724576652531923386773109997020301539397496220861627501042514443104491786811140586739859259784073555907357157551237217007338244092052960424766385416650859779926137805574919077446869116010127178009859650840469169724624871713099758258370609280442243479445105333339835885280684246129980066379869803790726850903405747368579011234450760089479131440195848416267227238146221095524471572324726429366124842697328084770386548681326213840599563071867541336044821488329049356021587597683166027287237138502439267103176545618065929424906280850772989237224966784543479832335323922561255330531297728630471018769274435606033686302444543948133817692518271189603936302792223607202309913041909963322851941021928035271190268369407054843835641796495606283299204430061501800842344116629051779511770856441382123838255040316110796358725503735547098383790439879061039700948344345293584191959522013521945911207959701441497859548453545541698616053256995627300277013266064598627957240437599431309035365514202299423441528476305995549511023488619493810654528696838138987876798715464444534239686145252417829174435468437793931790385751815441052429015774936719676089920743747244219411479344439079312991903193868263663525024815449203581913802071165962039504346908735072474346778049550767332884251297283620057474578264913544685881475621130344795755221102528196589806416475973199996122332475331975342881353448317711992686099270250768491793538127531284301245144570801790792613429712593341399224088840949622871686227813785231362780700992844942437971736206524965109634189250396498863088660998255532545519725001319123369167395135021518551317852306183874655570277524370560833606347171033653464807953939989218688291859787420409305365263603884959870246769150030581457009657296943470806433739679665877491372059337083776898710895196731123075575735429546595426885185882491871527817593666703758820936501696547940450926284525552134810308927365016779848070470613639846145666453183130627919897457779034740429276671771594171390696715935648376924668934737166760119472216189453387361436243036949138076798259434193145788950122923172413015866673648397745275625670899631379158210272201017514142407171395166173940662658008429057062204623921089384502614099474580929508314319815604426827377902032215615882458071590377864566731245441607135442814756234279013737700028948539926440237508460831308155984042067475399024857549895273542707123366750482027618292329513547158453873174168125365167738285409232550853218168421241820463115471533492596570270286084716097014552928811882406742245743691639359824544782337144828339769301990050181834408888318494764701385948161181453160666640904573471661018707253906237103568973369870922225996139349189964664735099757008026925765430271696476446870295771247545275130077504907582678600628694632924054601660132931623700395742574748086592560815640094820916787455438446783367172376025351490495138807392338928527017574691213140749090575169199797426820172509619130443926787396427609018320816941884058949802037786764099734765219557155520061740450080725670905627935790772345146695522450524349253487813620270819307717985787114032265812204960629845876632307315538601588577791023361157548316468100646770319599036714618948340314779084692397511311752889255304037009053874601012917957731744365482299956410957075386259523495808564094528897632415933622096473000930964568204790400061275484911921396761854461210852205307065622485884405325680378462835334274442527248698223046847338532405909513840885634105502714011034092372910593918854557745277642101138363261477379146395705070079088898243091311391917141288063811698511661704566518118269491907932235749043164476665234394150663262733318115013674563737526188509088434551496945707579018014051296166193656273312745823388149664360870645172948647976726082056977736849802769774232805656701449667342951279733050917943945220872359484979251251559469614247795275913067457676232832073826139114847683699830483727473082994490246415917455730447682953360600380917447865813620440226405602181267046057302521768838031161053201249074121698710493291172734180527239380594491277660365825765291502290472853205676913523726719836483864762021421703895648022281693470555255263146558027308837316647503327212360248610993037623755426534709159069192331571142718097959213175425957217895780267903253753051664671399203581015763243905462286359761712703701837368374277798109659807298914213754937570454303387646245680465696110849172088714513378679948761041934212931631004231728248369756431846973577241808536252081300827802017800002488139484226858805507733369094901809033721046471123160082799338091867630523722289252756269742154681799540048200920803147750655120246776597740248992163306518578007370736776244101417467505971516506164210400491117993894333780795163622647357653271385205646449181651157383431015051595536362076999285927777178145342600519256131266221899157831504625304068206068377793435853067818888287402716275787126178568037323660887216189739373914372628241628214477828148869589023880326558055810298358557623358972066926704790741168575259445802150241526608907514720040204812418543974144943954520374005762796818252260779015199229185625474829666631727174984551016897415105538834538794686014865666808220233922896214867931615514789514565061288457598923975714790642830237631878711726439946084046662463085316851805426481392914110904576414809082811486551408297054286264810652950390370448310643374717454447968672213864782966904106554547504007431000771893481727962701958113286060569659058864496600161879881889874557355635554409314020776766798792974699297156177557998383218959962517361821527458128997666245292486633721739060088756296567352767855223234768050648310794734709301682422278257347375891088849785952613696200099574607772917676356469180654514929393140852207738906010647349442531975947790259438091297622875342124627351867519312602743369288950926478074934348815109805220267496990406774704428582877430860540261056596669761134809625207671300387217064158578887328060031091842051881251741246033599682682479040826240008727467978774843656936977174230763614947579393115162079248598281046723457480065199683546569660860527318336504708371667157218523789820663771744765594481261929644857844885504272748095923316379468426142497944059820641858285194610780531504343323743029412967275446544273496819612701435891622556144407130463157110083624935920724315654912520745305675470122778787787404430254441227000078381318696385823702265955620403267446282159657829279997356855368346507082294240955920066608616591716897425823531782500736985855158599465671668227584713248712550886447506470831195872613622661666921730571668399899390783302781741130733965449777709214853885478516093684266249438601085627420780005000350784284648058013426073376794197059370485811877286794143301725109164103922307812149579170547017202462671320296100476615876786088387212876573819861940243577762339700756850971419595989105909856318217722395922836518364378287833348074860659882555954436838091332589475966129911087217230123542572346178190895181950698254361093327108305573670579570205842317314463146393907222581748986973514695112512290762162262202516978529104017828831999927836866920086669965975708710896671389034965530688707776836771517451659105718709256589284245678398984621719187307427874606221021088562471347437259602913338170933442800091772656112366749296601506367133180475524076507465866040630521903366220825725900202483139438752373818435117753383059095490535653616279581327196669542313662242513316548687497161046742020990356750811756240047314640005502459592485891655359003591547825243000095805078776487494637355327605143003755427944364443438305450925231841063364527967169775023341200911859464086334036402415013632072396468942292723972969852610916648695055920017218961234674892328719318493208058043183351358175681211347550026206620825312513608597931396120729975622845670467370779241939413868512310598617633912536477474339644536833062841261850614328931544162198351500543175711427273243701974458500919035226289670026929444981638549193358390083835206185785914705340704593871563481683453070085837086297567362771501537709681576577017131554054826895702820536263406851793429582796656943354148733687418625443329452027293696148505985352370740481275654652081757180700720667108744234223722892402383753098195837767079545148001566330588925938907854816733481711436611616041233464559241563457649451402215625076753901753491852599472628490914551392919563713200102197624862949696469324481206049500706613474771380297451089528107854507495550488759120166975107005385264719851317575485434723838230160175261253728994678147029653875608550758107544535098780932953393158198235872056961396497290427378416092453423620911617398395690671852708037776964485369519860921679575820958731664606162948133469273380569594351153647857862434366009942588055194864261891087097196366554604327688568034831980155094346792870187066860189619892143706792953004099572331770404429828525632937134570020693451769241821370666970982847951586384640155995087675601550090991901423412162642449513593737266615055872975314258577924336662163035664394472338775218473433556807206756299991061365523028485250458956934223399410676912367228207807401947257525171328921147567299163279540801569964822391963963606391910632299818494652260058989656902862807359116734571600637196261359745811082793674866566741609371700655565484131177500673698623680714852047501841717032482206157598425121074390304707287348886416732175938462593502522563937910144859990432239938799458069597222193876463142737921953667455298902230516421348625788385440030114973647756907317917373154938472855000571019830094328334897233134094085003569181723753181523377592948956570907362733168161626320155099399380300740183230896113082103866373321543511320288320924606371446409881634176142684304569351658954869186062819435103985386373737041361684715211656942532558721689837608733994714129653169566552922426087973593370571202827883959139135566247948227200865742124482924650663754662447323850928997337087473507559668911930708915171438652804624740682279827901307729627413226353920282361325502997596835343815198811291530724570809434287814395346893958527641992221185417134559301288647279919994349760680090452235527567055914370090092151076313372825576266009325671000234126428869172928984876701298712649111819290932203635605688960326482273983615067870098750818223639523089388145765373259167597819144324797313018825066977992067797519291398043374810872403838605209046356270388622544493372136162709419304511803656646194453456008568712723115333381464585019839698160438866210905245260144762931606313607073185246344747862508306011211538377954764070854799607184354999698586545388690841936988755415045148710660452544473076082092438104145880817198632221125134435413603475679026800600904809749507715909313264277750548201497405097999530992643467113960796008676845458641484843017991582388741833186830557123491426627850184275672945020601286969220413956741338623667396172445518503189517313569827881712359653990730407311219393336776858482578860811014978718862605568794449821935968713287897229413466075999544843230694219338266143448132882979657350792978658446356780920996073457923940668525705500263224275269232012769453988974851448623422369652215727583125696847343318712959191044351436184710363059706858359996610763771233988317696208373715119631752882691043748844022296842389010617219578762049122458077084127177439178722685874618346137573528146108914420310743677973745587683441926538102754516160088055916303215111812287267923830626464223400978751412597840607514459050351673060516099263462862752058889814575270883411979975441038638216874025652880959513530620364567402020233633091435812233689920551947670522870758000063591464450576836621094588475189259684525610533960854964920279621610698909613425418748371295793024964068622045860258554336707185142683738605814408008125211843373726319117148797676292259816716392224539936485033528083500364578146512161282685743395131283218785705586560356349178254393202793562726931029965268520547634988719494582667904861708182033566635511756196043947288950046859390030697595547482926745720297027245254337086990814210663161769147964842641610821322478695566490188467914768059188731526548985029501071238898526950698831710975147804394642750727123016349083196859033791236779387930356212041643181921455437284684307999267644304724214619940208405040247772194015064076879778653210969710282065455282480850898481566404255795063109816361317821209119682400285523727646824015442405512418112932416640267856292936167381839076178765008322920002680902808986263835754580523627934461577761582987798150140931262118447386403198243457621352290387593307873249970577492387348398280410065724881223152349225572838990938952642194739529698074415434405909419953951614817297731348569612607363630683822478629381318265306743772624810274454349898266482321141147916517766039555086894055432376877868746163946468078051463948229738367630926799422678566600164048391874925948999748473865658464179111962082639915147661798852808620431878822426157281300999273187580569387085985401413355780289139560012047293214463032071006351493778657875001369560765017969147977044270960417530790671353382161594709485910310837630849499372200001731174101699424757008354368914405755333686177747092859503104635333750745031220352291945613338357544622289090310306307597569466830176697955239259422065303993253983133562080555435618584046835477685187962039062432535996639721607881423231543335779594780172185853660755201127983248269957702694527421574609266198994354654351048352187826343731931818123663838099844559113101250877180058916832378984984286982902015190851439526774351286045271594388139241777779108489654346787427670344817314110836571438628689806082969040318148447416737438264670906369789462394963211415444015704441726094700495540481310717564113984193492732934991599195153351860458279567798304261235472374699785930933803235224148293399048125277456569352233610926996177708146916553171562529259095207270210473643758965513226245584748738197359692682236950384144286514930255657751713549877648828302386233154806017718842690825333263857781356304411197562128286080568130465830187050155079595631162196504480899088088579547906618499830525900194890084665318581305596109411962203227601078305267741220910012852168955783865767947675992913612558479946820762252524204984162522805775312361961338750126979584983334052858271672475763806289469588996452388840520982334077421013633055916896909716743444907745222626953718419906764281546769312937369573627792813157234340180516471849247250237490616467929316012182791534994943537820309247220450193152176820233606694389771908693851767968507445802871552988569548994077677869149181761781203850794878042258834078890173659021993557479499822538179516160565770142737641080470601423373013254960661563730626105177232335047195004324766045946933296134495343273726797206340135026702652589233148034181284765217762786081324336571174485181824933110290770047346299988708775524767688249395883055617839851724751159686203046844609824928613906810821599343184168660365002029198013034627217639381290569931939980776407918998618761328364669920233604524046022609771590844945769867070289271293324195848763089106042926903349803699273734217865418942464394962694564499912514265532406993116625552113452356315446144546740507436887935456112080790117935839069884418905136440239895309404724733539298852308833492179183410710667110935733538060037427436414976993345735430013512982974825898505671022953051692349320822602063444750377856342603468764447170089553076326261527313239391877517742078570988490335645609954543441988623531236640250981989635004799035469088754650638343260031920132285717906378311362490961234347668736420879048783838190751617609871586760823344693103543879325688241138785875460075518686254587852335488065381695990052502682711338212102146662653777955177939124664790678107754889420438671256051004132493714778270134114765987803323689680226464256346536197741326799544791515316603526709803613001291423444114482809193946447909875019619025182162628815539236835490776050551508022395176015790318146732976720686788397967186400256042797329038082940005656309335232946427106463946133395002244660492585360948455444863000697889063742809245892584721589284691340538924754906132778981076252141118359355616899103662938684149418625755783767255324119721611468651292793792574996533121708848784080488579461233312902362281475950041555422076626801572359459794060192626444872431353193609323364155692744684869578429371997931555598129415620813497921789980153305919574364315413037185902985229708926114241198845606481606804502148171881353090260871000498040951450796156819938031051293224096577816589812172519443639848419288238253492626271497244528102306084586860356899035477258740352970894472789678088249256597840408327061530128854202056358296737572945693160004187945734910882021390234077147495972752149202147601450612668364154964365686406164763581166185191356321271469717429560022192831183315391824384894394668405995195108549438327462445073062847048647004845537513349038955246248588009287263709505374543643648328131704330242130807539188486916607823006503054281785971966554213942649342790570939931467854360961140252856367876983123989825357610672286897806003234215420029904984721344858341145110861755268092088010822130100770934443665812805537130556607037201607308011181667000278790857143895132216313923140116561027132081891765497109399062208961716888981093340691424058677015663835769200888000674011932637726612068395603971236004591488196510965994884137045199568347893569238492171187247226702377790497097016960421629220501345824677332563605251032289613661781764096576228751280731199179331924971234599650832750483282107249478730498952504231844671944820210824306235620077154426213902211567890187810079630130812622961239768498936921603330363422541806905434859030204733892192362991494852316931953743030930428380938170204738392386716007724350363009347028286021689140676197950307705920400256499090129980496333458994032263661819355748340377749372138879004603636689804647070304742595659228382809512926220443776633846321242980304367634327300253545597103426939344160318032464698769192823576646629265013936722616950503206534189171463339619286372964771223853259661256280039765434301637572310809053047122566819783023725905072799327783398732002741038698591933051984188327055019375370841959325340125216749767224600399424639812606804995154110730074076303187565374510387630426112970778122938114000613458314835355840170528781768223831243120207515123873803820524245280002932861695305657923346798678465706665311247798535153920956666396347335238395002595709053066267594333280603858826995622355461338572446282577492102049560020782014796233636065142676892245075266610978654314917093892373537921958522764258101889932081397341823171986925821776584498950429294028541974048952068575816721524557145807285625007990427653079177292586582899761144304023403255735532067038085407310814130091345552142633877523793670573903079923832234535986480672965639981178314319721761224176575761094620350104090555012758157972688967283604841626163411020093574550750449867001730840667875501593151640068958906239059125889864016905997627288164326189876103564094432670773845514978367446646504214640018977256648049423721742826613765438088199621730029681479843338019035209804480395518202563401120118666362561434067255036352658112741091008937610840759685881772509131855434503703312616935517243728269475256753877470705886899730967134641888484700256771227008013351366301516298960554735490776284844454620093978191355825785093070130153067135926485721975223099685360061067331013792416840450500894811225575845604465612329516064507305541332698746812721995692105847828664343846287234059435755978349844642021012308071781384119790607966411559439787255274254445610134297018474633147229938293907949536731777235780177986100388869734000636278012800003572562869688715028311074377259915518219932011437250544150873319306547273993458041651428695571824692600941463576050995643716304630260831089307973911694084286003213310734944030847554317692708917610178408483125210664579339248974219731855102689800275695188262969533995439852290409605163705033629437129264622858733267229552010552685285883905659466855477155475430489122182022322544048116911429589258258279702944558076746032055935940740850595568235042329636900545955707372749855120807446591665979986354616651795454915246670256242604057831162210855656241315269477285601608705391352534367689356868199931187821482762912790911353099709878314250513446959767665401056076250808238714442610521672580747188916337182379753151929308983602004617621238876359388557352670167351305443225682065852095355516993837018403825437416405877834443832556690299229611996277660892500289886098706101433874607806244234402418294249076773480149505745599186370600721150704775064769851439938453726787338246777840056818393540549229057441436145913606022459684008186941592931497880981771812811349729908870125329989602834324618832046465856137499272962039458697382025996612279829226365208338519316254763197250813507339844082160384132671730111367570992282823613278169345152175354577708225449311571981299839023569906622907607925301378956731500391812961635362807566443265044969296809561851238589709762859831497015555190046966627128517643082491163605741906048311347809122048539717442677282297659211310139572131438201814882112656501225145150447484605728253068397543792559464130802972956161451050821864607783362345466652468222359471862042020475818549020512862890745568625083480027096048420991576566461290301375313132635804004967042572258069959097977839140761399379997282026523228250472968103152772367378129139402029208997717017133134030406497527135167602446408156046793402853044767350797632943306767498694619287446811940391750185985677282151252404367984815209380221553093822944399807398253416480645217272941236207553667015652319434338940700805422977692609310643546081640054854498241719403857264716039651532670139595264622136232600976917119516489824183089998033601707993948423834519582763860357503565468820706519307273423988416481634954245147556927942273606530780892186484117132801616169776650284892696174160695460471517342075395081020861458417071518248121529305265086140209411093648254302811130730824976804484326890650876382342507677160123309734074840846879541610759716781982419062438264855632087008584884380232601989926043661171790268428670041888114633144111789616323180104675813493306675023682505021259565613883258309116295697035156283846268059161213206878047742225538861575641171892740887224699072511387020505245221351658881515075217171456975766047050110095195255158920675646773406104282313428879722006091136501914841935886853476542033832226883354640889267034674496087822556005848544531767722847110246696202742109083773404265472435765094943246242063484908539325440184473166121779604823679361019765012499235015463807261860192446103123805589606165338237945590728218231871274865868686685027629135544624915986164564980420783708975020251035922300210587855350014367040052995849956100047053977372425356415891136271039412223052923533808291329497281345601330112021408458027697855391382615707241373236931335070369393022520753379217460082050130834012328970328528021321344308570877447116371070580721858098812040146102044245209535014185659953020874450811162619896843716716723917647982732919315740294386757975913936330833832760019482525146989272116960543585978085879079336245630726336789980106357394806441640319190370130965941739474226585962948927112270100393792133712439217128285986346743936926927963323642511342279328240815619581286470024725605388350629077806526079365279365047596981235591269138286093810036242832013325370935120643056474084915290719508732103213455059943735255490515924567985388959558826934514970567797478531436818307593936857004199835715676053514861085950032468296631558398328121398242515490684417347880472540155819303735559281745514167032787885372735360446660483980668566908812774138944577310415225454096236986721011152337083013028040230195510913277969387101465044049661205540127402245582473468403722191671312859178042128085795967101887104708682883537507324996147904331172688576889503161866021407181211555711621837288655005273350239642530925377367474381573198438143783846423649041712391509852539538462862631201632479549815849299389982922968998885698230922167372149528765506471723898893510651489755743738238649149357663205418451038845800554009804893805054918573169813274022926172019126182457660534981430397609062642519005991292242370430910308739909586361516366370066099805187066178643973325548203180943010699193939048158031840565420645665591822434810815874513894773772865384763101342109304937644400272747136370254196559930936078295942199764121880947282043889562660132686110570696788310361659482513039536173859477275887680813428990277605713277533901387733255718675197478504208816878170435096935772845173775520358269437552396306924843096669774537465833831988971501413965021618855736722174047029876584765980349512050622418562259811563960608183695035557274859780947025930342031611781879843761929676459738187085711483969458628395752371870221715523821070825071713953244299339147027055888623836335439391931765734858242173888750560370269524962629242771325698485762834527696552300493994097168434137196851469858899377441374341016848106881654977237641977205462399512143538905944897826325122564372527909952945205026615825566284479616054646288933762770435902231887095215882330651338481950726495958528572010332856910437647335238543301234537097888222769658930660997588807000960056666249500832000436284508071716769970845670190480840739900287278623591539462213514868220500162754484393974968412722427567520111613413793623080980344755585142339806937676015899742319851146803965915251898873260556560170382952675437736805116986666217786743446374135819908754961249853207619490537491711734697025024026260723033478260826626218321697398796573676161950680535866943838172525606884022052233273484534625279483001060481019960197105508034255493055958232918527156733398149865700754800078313521373507260384144384411181417344115699979520385194456304293479818759468010593529634449910686518748733691326887733092637747182840931242363252103533214971572257210870363621648573662240506246674582784139362251640610113834423773934985542621890609643963555297363098891839452365158536167765383426536266618223218004150502691653107662839418098106295208128125679096036447262848283307836928948118519349871962326257666312219873290314176535485802213545613154516182435909921754965649886465815794376503410463938792812266989403682496904190006407603300714208699747430579748629247739439644117969447284997128657360931156321715339102790078325647653304051053184436594841420739790142220177803306640404218609316661054751515787461548665989588849951582732283850937188585683905919968715302671451704822796547288792984508422503011490950240820128233549301691499242014400462810530655650028925555705667861747236694622998122890653821322515242200347144087582381574792180572405178425758409636230156554273278067418818234844332547965911840973782768980785062129597213694342964234560251143758314573625968340748272670772961278097714625086384312397807871831693428916171199138439926645026200055747934162605840386278725377274511796065349292164637666034648292877928930025888153339829499662672929660343887858269107656646015747081694512566722428968112379767497061579588436299267397307220486635573680483236479573206873185486413081581028148504952914617956376584631241781831052249473841618076981489507953546979123890862089015785698783256759336933314877618194787799305457969011290812303213231489312838058910899016738686672978841520842047537765289453230199008977627296443844470484285069639318027955328328151400049402388468953674861476290433475764489982936413761175032043868815731195096475427426812826551581918365439208323210101150904618480692005367090651294098240278013306971032771549439109544127385878804082787151884567172170528110104281263901856845464767260958790512372554542712398726206890122052802468577063094808850165415382611061755356789088750435755802389600921753517872314644094635144729584695016169455844329960907052239944479379468766751840127210994874102532813700104042218377548532005672136686725107236357330186986691297206754913486837839492160983465580910367641108266904364743855391503501343755433504787167179613913681787844558640586709019858345458399242252931682990019540793514564137611604805775247647206465618457591278679933829212650693264417616222034717116687464647655094959486483178321726755001282059276913281938497684378746451070274140968859746550676201510489593554301117937275758034616311730154875813066575496584764451862770785009370490363128400676908368509292431171616118453832048469262589041972794097513155978452251201726430296965012060241227936851897633273232967006892629445124053862324670953111285860619462653514931223516777347349993292412447996353781367825313562472787590310243307360519100451260802582240751938530090550720613122456962339557822727703794554779678767820247765128299631568772483160918150283166464869252721365166468509732132156823874194687430781264065972492036707156011887833342276798121762460540241385297590428681960426994259822983216284734366093091521153932004978259125033428751330767770378873698903386724468515737417878788343013077473764858107157636199071417575667795516550061568293012651294496695358575574542093830293011543980050151617653311784601551141162251200031501887017221155562955029565349140265001491829495457843217157313815766685326453769147429429108386878990291923653680725097455266440316781103708871826349655312408026064537488705176525365670311318674974743210827202595080040083187330171706523635894223703491461869985186137946854666687824480788459623521976185669506654151893147248523376661600927071683535008092810744491498919044623260473816260177906943005810787088743309483156070574625724444810623888504839595534462110001610755409719274770311570302273133785983572487983256670011942409352697922787789018975316540270443816808901172817219561249601810219410410784522431487018653983123045922841222911077251468585790135048618271396816464019613125981880864715104387923833769719529723881471113842062078753975638729335121060248442819359157604476767387488415637758025391389111192135504074304765450056826195292850405017188778488860431834911634353019065100092773443491221907852545984330322084016563798344444851255897417779674417366289531419747832204677724083673703325904441815361154392355994451037168660938300031026204950797045975174643844641636272140423220707969399610588664478588920089043522815497963503729038435413525703824883657866597030388291230558926660440643752959847189478611231057465141832056847684860126461689968523458957048667529601804567058978733656908247895378241361207316603567776244337318911235431655957324555913398912314136409128836173443248777090457478344887581772309192130014810658748872051657755631848977407597710413515619879271115736700468471864871675602889887076320836293551089726293973697431586580153500017677711864334714228075198295581874144314558432465769532467675112979474812789649669504539215093769187721998670461625146752104476421234815837959386381783304355918511092176838079161738843462796936440362790678331556018042720238130149783040491000664987460998498867962598942373078827078156399640369898504876196363441256479446582225839091972998233486082198562071857292075608987601287412581705158235558729624720058996841617654232640688380391434109913313410601697016254973122127034036953263481581705863239580472988576918557042420647393565415975201343123890939857550459698240454023101960949297249665934580253999127944590165226868893150455469643733986874340997790654111761615392795181268627370365962508454239269444928018643773267338867528201528792490415743090751070352987322273715229924634556606895841265581285208237787063962296808769995194246809236474913465629656289242639422869151745703662270524873211531325868381994298540488865226046852576962100326389059603875853864597254009988558752289689421096476734370858473249630518615288566106114825853963746750231046252150234030355115627439226783368845294848032278870750319657471866774665984127739550836609898328252200935975339828674260226635822922064413023626129832580678654618795264467417897201144495729959176456468876588156390341876545646074751259970046344711350353765155217891792813113795052010016129247139549724125103522487782786018608666074304175509963894882787699572702280482191719161297604269148504874870125400888435750345006705726276867606544675485711760140542558403900374306300830213589012738720371494483685250889285425407331219350845069515051115095814730730922830470652674573044266558322788863001557374456276683055591567975019650381329873848647239236282260345602568744092225943802811769750206479862088970958881909873847307267310480620881049240733382838330597667468175595143996584794671800887202860015029610022064169398832936629676311040451925711017395826512795029584604079282349991277978732174765179437438885286788266634503411940875852389475008107194806807954558641983329111556190368405846107777166408607351561524376503524360946985955366006314257238140836789248975865482267852608832446428284264325416376028738830983074427703996127994120725720361434942787440987972876636668683461760472650830428217520330064034834883513600607841907063814574148195060518270170628394741642602244893594376809985553539914879075235325280918158796534387049453994342806716046250588192178283421826506572717718817668526638758861658356598018185561527072860208503010545348348141464321514959065566730011108936761385609332591377143126818090167115030523287953543608407360894686264819788735567061335028815612561959750944491567638843157107935050933026043252111203958367622841716796869095871446483013409786081707222370181028101181908302762722147287113139592389846220862784506722318544904097432571449388867415602528247975719667103914887931002288040092393849573649625202388887024861652608957055390305317552543211171023383443490309155143669862599099004250178889073376545887022430868058328635841078190099764819272399939692470311109900063511716118197774552174130454086018850952229397609944030002871238837949476675746144224524595992608369185485263879441309171581189654789546130292271732828902940033469757763970253720570295239899412802824283659176660874096473945409945242418427192664772863113389601229274815783661255601868394125029038607245362391381164547616430406836124947977647850398458729326323639994532774844656255827375176777613876658465310455210049493637117930611633917173218100534906821661772711343373546511286436028158438026196440312209796155934892054773466392533367052247225045681179976733213017615439470816144750212960144076133941421225787032452485344999120179594788660504629818256656201120831022484416797268969307329281109694143603269011898307587257379452490172054162492048058110307117310035416375647452317580551382026170485649651795430656396610725459575602147516852896078484401279576297023809983907926550814477178565771266394574498928121612290656272439216695353128265349076317655797059276639263388322092201208868042385356948822788177358817134353905074201877543195813421296692536046848857905773335526431968509246045704834007701286255440050771815087058541472227130709624188013149064232250047271543353490237595495194251063304908596607056653262022792878785955691101590097192581524633664292285706080715724066215933670518186439141602208166683478560548301615064727419481497242381201564773166510280529124907656764526152881018557700753927304277208035145482666600490114625305769526984897917717694161639312412221878551835135811607325416535482690814649111796024880167102778504794586881017344336732214143564966334762957763162024703680605216542574227930331858861586656303229024471211279432592281275476710980941897506470434065353762728558564218177396637685691810182887447860148961829582022089573575515822384353502407190864611158251134880712317585694153291103183804297207820000339843493825202449442809794279134374227260716980255171001482168577385038564915610818945335758287216954415796565275039182471184455255566028555052451223258697385430859060906775549720404924902582740737459920670260217256697825764088370961402388567770792254931365525751720616015707791268221639323468574507374508255599460071694283508727741655367095033979323015380828526558233435046473865666308397504855792235990988520091614777805456238294980085162901173055283865429269007095407095923553677444102509992419541249461174996635300619343034138010833635064962312314045578538293260547293465757868050425093405791378430897872436818584609095512006229193238879999952138360475785963152730787062872377481355673142691369079188876934858368531434141638694203286452736398291364149901277453979587754072430094447116057683288992846634610420719134776987161595801102351539362274252287214167343119495278430406126150700511890173320970636805772342691708661030532137455069408147201645493791759960403724129599295132085536106601035031206331847451543456588128900556306169462794222936939891821641134637484239244410258427095711609182902943442309931995988125515989177256854464452367566394677572339888796554847663767864103906875362026318664061357465222117626782498416124018347909441704039852388897231680121310883893358141410803669223179901489819496415066356058573839878513172750495594125870506837420514010535143783605160896778989092625347697346215470181205279389818384227213028923468726277880744275963343855741974736742493685204825214726530558491888270364322018442378092964980219745815974401115203096508384731834571186160170741608934004523803560850017892864038912390330260629367110863472681318572448985305337722773510030148407703592470314145117335915176276916952421724951479955573220254844548265504621425073228800926290337168599384032948967338963457378952915154915413019314369928851945367021185206878078303023717644679924722763239184210338007285133574455136198411787086691083339335583822923791357954434138000595350379382294192533263456426091590569196295240038901481166001854590994390387769587584337732346932194136864681683333987679894602870636181413927655578846479855463182748825565140417092035055767161566715906464915678507750011163550447070538023017382823307222980161611953940686571039353521536994906719656236092538158259045402084873658429967612225231545434104201696634881611310257680843146688860500718488574767819917774068044773670162586750599516007538524837995554260346857704460577292209500569518874459990320396059065305195335578160731536516019369701307600754765957667134714446476749644252822646303659346369891253343868793994077971054263520284835971320662193663775439615637477901018466824886648039923762406202581131189818097520879585863808360088202263606321107041150728706504496799677324440735101250142573845827637243512234533144720608622172200067828662426064467441478770320989436738397931208775446164219799098523680781013812658835419324794615219318537318597496135308803977706999977356376956347561290704875660350023101326426981083080685209703923281104247501172898996434678888731285655286888450184316362465755462710964677822966330192949427856355045306335296153595786893620174757095572855493054346503680633039481867259665522106871547592335524056674098316853131117111018493916817450180146184195706746476652521472014133091355026372027733671583819381081098281365391281223026016256289880647554855606709919474435069027347810703286720525408056209098941560523455395402890645494103949567846087356047177025587207835886755128725826678034015162316287962770360595827322089031457928918191331265922640364834449041745099223809923853452288911356020290013269261445322232207283730664668887615175069520381608174446460901129809604112638782756692876881729541510673065868922015307880022916386074039145824526158162730538841217710995447969982543637208230544974664149542416941019401233526773110589201750332098590755503783298306571722554068814232624025164784847755681605069162484739491621100493554185368612062077109767444256652438970713435505307982261723853657796657343968952134620814474839761259851123949879257700859410643473846464583299357696811468859621917018096952655396896305685766416417840354853533758534972354978231391204230039750220509538175877111199081232514179336879615257097840606317007159829133551969296818780915590824546471926691681273907127164211605074102832548252648822914609981036888561759648589841164460579508504170936159420832289108719505700556837802432642781529697043882121586912332065493352342274549674187938879575540186942896607962629091233080600992688030596473148188172614913475971561493253386750677763630068276460699299788404218540280814429948418823975773095502808463940368007111046009047110142115660168841767347147978816489731441982956526944195045467311919548526599910544393890929499811354220487626228923653857188719966592732648749628485454447720577661980343857074566891274528183086250014768364689864957477285625721235346454004169695611744798581257526878715956809052040753509960223139244753908459751596433441890011560523824244543259902647394136238617720280436765056219785244669248075060520558515027255594486243541825527711952468891713299013359146900888950195926737162332420302120120994400865141822049576659952360507538706572017052111186739919290866673704485708567588699335406617947078711015799875036595386581291741903809414928290008860466158291860979248202956848504957441532694412609125739902861621127292104820385806217843490096193494173177986050004271732554375835929867990205169700101345788440362917835938679651277010326915771808419939330896774110689007439876913385747316697438641973168419461879999857049455600750563185784042924599618512781556288986330297827482167270640087451940441253082462876207004051644343514819057327325613641630837046099154518838853376962795306703501148464029930186631620559502039257739163168137064337575572277770291205373076938737654149030295948263608481767628419812820194190782906150671891295836267442435679750805597578173380644106510859122172684456935099437623912749860643241997151096603755120940483941213588605716924697997618446442449416235680536942635095800100154620057736510295698908023631529765273593974207557656022330666458619640798335894831269749585547567717604075673553302623671947279311141583709863251946263603687779838148461937609695518486102382668141553508477898245562168012060679666219383406885070510075987591064724043724478406116582411250777974314320235593233410807208056618239362013795387913289060731516161781169041475758605215248296439810137352713551869598135661115328509902279698202322282548921405818107464345306442259008236537687686203015948148982306079586840807723514895735436803132375775668502336313682735662754177459314701764248732153710322174512631953503850883922989611689011821798318594849277742383933557310094331890199990692275506861417093929096701589324541118586547046961970971443731083801294515910250407997213540416962615540962813207661860448665082769035431525134953335750158466711273133992911562911327270072726301421264046123340716072013918261455750829915908023874261768135782828531740769257206106757100630042364364299021332823167709196560409395746855616296788495630590305626322225486785957157174674612836646360201354012030688240155244691030802030836554539716768794709715351668979563903318135532378324481034078307586798160688407588561476006762801265936799892073113458432283963481379367533398932403727176118657388797418216217169949755402426177900248650695387547834956770661322758829365786475391269033440703307030059357077327011683642991832220123963844144097762193357506128596636924511606335982174632780803446071837796803294562761923157799598806637416029090034704452351887861632538353390354512416286280460439013035076689681456560750656287396259480643345024905838020373572155406819535781915615196112617303400570713831400301773267049639392418149507902187419750280479698037098417609683773122414435246502270131614126940640830562071146736521437492736420467946084600833251779427360363695030615502203255041545125759308056109629333540467386537317922960014506998472904485196718269456613008121105381154812767376847195027326801795378312962605398615713043386172455460207005679574444000305426929569437184216052543173884515528911548645949169527744972693230337984354756782367195951622306641052659935727000821938116887149945163735931363997346418940614700858699531365464628327987888825389367174788616729877055995691545862980117600911692765450035752305844037481514287574430228457447588628342324340493069269717415654250797701784995881301849445334705872432585912633953586767291799243666437072149518214558819628719775489887544806339865813163407775428009422783487107723761205003660763668484868117572055661100698141602731072954801871061694292438137121896604124488709836947700799786099413869688795816649535516764138345859721687676132177927475347727940892868287730865033176514030796185729730445258253359925003989682529429429510139930920516399048144664319476708682939696121560099982624887150757212772225286716839668769308174142648142480205816328190637656486362750896490557215194122553213365451170468796726201569187948918366693169543184226159424857070626775316048210698982614667179660674714242334536643707493910791109479507071115959675671866111325151663823777178770613381928129283433993942828287674446574839388172239707902335419002381372512328406414167723278975872224737325797347891333490096700695114504484328330458559628374137178389074944628187584508897139080945163819539499365348509603912103120235226664973691664755363256290506760532570119640016005971990373918686742869074981314999836694176414735326153947047917815579135703309894204678125172996569521535677007324911817102783684411449421303340295396075608413016239997053945645126721147786033481785460791607499869265196242725111186733423325999095731874244517474759041880056495102223475610943141675323905073546639399933009638493681521941285251100119465411624578326764901170667948633623601477563650920469356138319570612136296736597279522362708537066915849108895863753566965161580066293661380635779773534371707815528599526325599109912883293249286982987152930057491692775161855823918485634877018808787799649139861886679809257160672968088105222826132445479822379360675446232007904796062065651590466793929038215129585873555473894406557691942515515721519421101239067939105540969980885788046998396463176198166078632825508784209821718230637477241631420149694267225675211298616474442639176390472186666935773094487079432077787547658775039523555604801946351337296251981031893609961201391257099510045432033986415142322117200977191189022982859604577963520981572133181849209474740408333724394576478521531401602031982605062407031414209426436137217740118803204462995488701190252467708793022940173105474773122671287184604918119794796804388014682533738848648141271287416689493418045989117133292845138403248622649738066518746161239578436932914875861642451281970926666953608394036841092878918629447620054540444375100079838566331018208396422860319382013344086624410874735740484206981062734462883034711425680607890946698318872930976672350670364430145472388828936655691421803643612337296701689381930670621313818770399326721380400153135098993458371942745968193525247731198594499691936613803307189573455435138421728289542448923915997923151686866157615792471966650497547888874289482311913492192831290755694614998651137833421843957112218340949580745077732454625674733563105392335465284558485557794613594067912928931734055096769444251804330758266855992651061071680049057023046347985345853112428075518473489511357112062899602907190985465050559914034630862649191554866623777889830769643526535981631521642297643098289849466583792567981981246597340337964013303370973412632450745194225863028660071533898384212321603347981273664990428580807998141550262940253403656841656897403582173726879614321127037086263155709100808726884554769411013763471986899787944472969096301802518051053365197249577057776060004644256895051493087754200172510229796380700668360312616529722261999401772228262839851986217484791546093193308080342983982361949220242814415585095517205114402625772750747231554282697474435820069452297062442428922313500682029039533165546736284482459693975735837530770914748228543196361372184786557912608215697063037514351146309937771327349950424186580710977652438489670192667746288354498607209942796132611226332436482578902523446370379391497481271141187844284860669804916458443820593131822164007423975623425555778802233585544341885080128445835865225809915274435783829554020628390623909939486980300774709086387366362457688581383812310882352552614299411735440302335760322804746969062433397614154354185992844727811547247422197889355644565149303490709981358356744406920993768911948909463481284613014417787410050910997425700544403416902355596860742560857214127573312707045897370952694095417830968627330580649834782903043620606017573241460086145538043580359188057470153891296436507828897465439457879437701042248018800328247354424236092597969801416100695255578779992598320037337480307712565481898689545160083191414360808935326287510357683939787517339725439252158831252906389690645453389506622876335117359469169481636665246709268798635893780733593657879027407490260285665813718605605115688977339436678445330826190863992047549141999744044186562185321827539805178222611498273296149721851071499322893662442462983148221699064754059464160194567609731209131233179062378114169187981378105278475658295507251335699411747421317715099200122802037122459296699053714473547645314900824028585767063449145451255961447337679179210928827567696288557991192179366325683822868494451996796816756411241650769348469574276662034199966034431644245980438595417864771776519085398715966860521330726291439594792909165526167922548562540327441953703931860616850778724399255018315677025687792675210349249063055662719144638927065707442704285133380353082505784822732723431219263739737360217321205898121320739266645343378834209463249803725576080281852369428390118548404135879831180208327491486048437667330993860704674846799793329640628231584725192068339764222426598195878404991965871328988998522178852901644985099069521843335759069192717992698008837957578679349314533014383159180408135843232334700499115192619123216039653343913635765526394308087132240096157802969960386059207913277174033558899709203725319365573144633990845267082859051433708248974424390418052040382063980414520783159563152014890898954700128096791721437631839506131134113447972547915402978103407068041952429380957833176427888548432843029028249516002000625449063618005569698739519007178509472598745741546791358630016116214434134631076703014712295810557643468889342131245664900292870077598297477930937494698655364576295764627102456410941139303879261442243936870306552638705279924799984234331425773975338227813783586719361015503346463926447809451143630224832062940152314214785351303517669296256948600453673412776376752173049772263293989945862794423125664394955863498880776385052362741804992933284729088773874539557583868289841192818483986795692248491617685701870844781873109414796386518413355240655144365136050578651757058446460606757451944301960085705717197545230013100137994824728924220904730186492960334514142013424780212083849000832001598844774023546913280636620110062377837549918523481024506154581627261732153182757790224700047858519830497276981566655439816410394824082945471841829480478541061397492304445986650754530724985425145512372336970396990361094534919101987871565492591699376488314577643735128307384457447429101800753491512886497440299152252757367648078262180206726014130959777184341003692284799067774895153780478350317073476477571649089422330982099166631143352571168266386912785129769833572959122244476149277751500590534604131658336931117635252254651841116013881898004213440546428682961144856235046337090104824710458066355749368442161168304899882523095980820089955801726117556076528742779872225534990914383374318537169840201049740182145246896688875914780842743125387405672709042544696123289710402394818548223654421806639806969184935545754487647468931557074606748516555190878734311268725355552491442731588242203958889606108428766359519188880397252922532859392445186686513904564601220343692331246691007600219084646188181329801687732630696151439326981833210237190365310391544926272039901082533786199307032693587644234543832682281096646531660434121309797026572045140264968641807553089116912518559684663906910673414339604741939090669871548134181116312827779916869371302898027392299635077533144090989290730613346415910316357743382200695746343817247886517875058035158534856551132612983781474084467515479382280083310716901402317338735013301828978243814384809991688755356551093191590847794102908309758928896801892178116238406870430205043223500773739212593061328986237986038449256231605009042932999483246738070623025925808717628965285895456225850238820666097054441640042081213485917031941620895345796837256573694155556834889516730936271642485685459794372389542330540640336185834065965778635957931139901348696874893437756401379118578610531228669543383516623248161018024947843209187428173730744512302489294828580475210757518290226628204759796823935230087777113071140673586890879139227852857767867908108470578172390027541989978981202777622451085075421965971329535063902588549093451529540807632871165824512813445394054539244798069950493756266273519291524711340715414982705895190499790642833020015456081739728863067335763070549430010810367495266866706105309494137020688284963232440219114281589298621205707870005988914059437856640304393925348984454403453394227327363567963084796247723310450909537273998193163423050295980501952962131926148196802795444360765170068175306315873622352770851694579983166095401383835337018127684405075727188495565669196031104616408615281080481926763644025206766783019772868927708184270618281826205855829730928102718210646664746237240738621543534127555398843934898586251316948506555243994963407483529952273465356973893089755658965564007491389620823730859315475970466351020814373055819229910535653464416343591230297064137285597179502138236271082918806714897062970429860534175193289364967888977001397528865363071845400189822069677529415690265206004942999598970017659457602727472229988872018150136515425529737636825711407055220377964736596987403291530453629596295734200633279177401461641158183272010262427045828584620720036976628305874566947943968047289045041720839902114846515648618610858187260794775729723289326543218623417989844699828976805120089139731567522653744382973662812606946494895365597943108464186500118478367081915344552975773569623110243731142795952100574142524234827991308789691123115029715759560287675132702086196888249202849750961314431175314431242402416692737101438323174783711015408927082602296823727076115329185253831443037420670418356478419758422390119596603274717862330664922532995006109936012706373821256664921270813417321925041557611545832538159909414397089868281566732111472350836402663472604969938073928563599535538858425258604073616665721303165071536625122647284776384634137809232718208500225632657139054758851876051700393192824187297122410275604347514581113541592293503006587115305621021773300163778238301305864972155070223494543495254258884098000031083066987886141836631685442692745354157129456784676395264986257355893081354554641462207466784060714921244410039527965066791026632051966611148848397349966957904088907671393845143420698333887133744399547016034552787985172595769027815170232534474985385695048236786839431541602066846465223603636862762453109949006076270538077616590272832714610860658835389610842609965708210824084602125281309574130909345713297299172790995710827394873601960593700118066609076332410655139046325778733751305682570830493527468609949101178281800737028149683821465886358906243315182662293201426122617589225714181787423513535098617071664225025408645638251818905586966526176183172103265051806969681010538298614409576759952104431113884224960635371531554534355951230466545884136846971737170695456574379147749279951531055551416277321940808367615893643002971122930483156216274500896359085698754329935504333119368288030573260335864080005474838141761500082270302886535068645161751704132490305577477335538076722699693358946002765541966800873622021937578019758643109990445681747024063095752657211270205791276722680476120700848333103277509656311597724387176810883919477594896922565610028339636475391242199965684633458988474303200963075840559242903757491300772747467895699073743982059574699909053007639013682356156302571124084033949043352696621956620493381263376486865517320215404072836850328349431738191933462337667646244595101398673355531860337284762028348513193315678520660312215553059706222673300548373665274912615517277736861103426542549891475809557993667676481452924524827399505105837090981916584241431256274663790161611699790367747055393262740515309392204468178475399539869282993550471346756571525502387149005249891425320226804623741015562900727698471993422905724896771594928652280889830241628423396349653911475345651565503305497598026384444703734618326529050490881721257975053667616739514614562014078769788316761871304580478278469771405674880852690949246448471666148268988140213871932042082311565756047304849525376313377999904114529425851964761659265315881037982008634980134009541814774370903057105689185197635593675106292267292901620709460239401771721370288536720531276712396461484460561009833694694726817529497156921339744046140067255609948549781217507689707868631600950249554864555686628191497802342259941162062637776508045034272611182095268961404255961922425095119548364977046101065093295788371881948127910207506820168818223822133952173328691245070946366413078542211900216988895656068238721807944253189186576711260930285256330306580207561258652428614143566776020068051384875510171058249996213361990896740685173299475882813711023241844950036988602449055912625713915317692508001319931145201010581580940071513074236390350783196966806051153988403077064624047856732462923338098785915734134285214297204108981537556025321808223669824014569815771190005658469033400416271640506447602367604003808559011765873657172805370143608906393841026019048437455359804834551339538221250858612889550534829820517433966959111907521244605641100898136796596382643881336852946582531156722676322585097046876651722327491493234274535516077785580648648680097489180457438649574865978628830730728773673070933648157257668404421137331000562626906248688750777281261658755802567044753670084091193553283705927542374277923479131351656827395295711859749531925267844208212680588526091126591906042419812009293198157052072380548058915961021150117818110598315266286276511255224293019049009466701108493741311925129225411503034736951187401694593677355664353883014746060421508687695463227949943567676387764542352069788788354442464548649225198480576392077650556607449038300937477119883389673093841478398382244515614211063961060654401567888413158152085187014014714464184739488050830731899690949517554521850193825428117241729272695084316427445485012253243745933724622675937275864301485440362241041309372064492032727127583217904577373608302848662544030825571475020375999136600875039017215815774105829468526844158660137396193950510113974254282701604742822692898274106138534306535041867864802213737049441491064524077354465721077258178725851064989111203966234520334394499367242366608831319622664238255985989603566398854175490157044340451213914553429221140221043654598958557561424195574830040253189797088026556569351739625066919938716246675967899103323234470920782683409256820209529016121459102159028101122766490489816134718201444530031960540016356259760285132126803711161396347744986596930607828383792122510017816460882304900162848227345326250738024768014846355619180300045721800793619377421739685605492788507207577786935682186579368455283112691137531161095346634799183512806864129088021090946841092721561198025478311982740522800893168787482650896178330383049230212772742337210873537530894504412924581115116298378291761183123328324736482568601697226395400464417330145227872561882841288939311615239453484334698124819765815935146443444510605187216266818757101160047352493933346507952346875544466177706237246775598314408983642024743973112054289578510384746702233994488146771594762885109257799548875182718274352501137135347801914078009487740046838960149867531693838120173105227699431053600289618660178802638656385729195769906030106939323179670716825122211035941642801754030585213469461246549245203882676783123445293586233525862458874743370303493941743131448181774980125426422168319553580393399094211772484073129055834469655973610804972706916927689918552794452161926566331338021930932739600502464207101522396446260054928494666437434957762619143144232225943397140095892217719737311242381207931340329057191302978183355239715016432464274435543162619646730592769536813354551922767856415551499917700176381488659953254142954597279777147938030147933255180331175063653676707438291137007713270710115455684057468909142413060509024717336301975353079577129072055220924194625087462012621181155009448962258492070752186340214556904595674239323121607599297823484099333371460966207992033135209839716164184606338752926381044973105882862640381552818896888220100113433148251691452189817105257979514714492630037039530923025496030544331115191931571880431256335529435053071484286978728817173613818001447901904349128857624839302265563588038128924116727574710703875977838916563637129333828717472281124592481865325574229160164558723917077150731937734629716015837500951046441833548649610710781975931407601724955285493730933447060297118907511083440831435557396862240661328031305779401383445003630986428695420668088293088210876426382739923944522971010397346587759501124075069126348643141104332532884630167090174552530067685085817964459439804842772413097676168670523553170877836697484647054942970589779499617060031868945727024201061557584546416245078131006542632374285575867794225964442832901228056605018161387021745286822070307072850025167253327264343233190220705281034830209085244684793285012647431057433768720390908976431252920049227434361571655020123308291082387068848758866774675010436833058527822509275325107904592749975515501229315627826209872319441268632641260636028716685416980263890321527041218442572588744774111750722551371350902011584591436875411736427217567461188797311177072145412191206699035906454109687967345491286238432694839116789555159956213282192232050311948739596770347167368685074370914195243690656529931223314833486454315114655490560090185954029519377530660510438028783616182159875276470417124764790175824145253164010653393271652202319603524502400170608859434468167124873440155266475298892698247657170730239318338120002010576721682238683021496872569560084694451975586007466579462711416216712378033834968496964668433693994280201284601201351929409544170094865417537618312841794841571496106245767212013731002273738227382903156828957288682891340288337284924918356783628791746450028839129684603722716411114925176020118162724144355179099200107993961807882066995730604767989378219067613629083893261437438360914069563510726304969114105234900630985571064433450986783187035500396164180027384133020101280339943538381848063218738624469001449394933587124973752102980556804878982299117293930163999668244050326656473924781208086327405422562530900679830091026587970125650412462654729944367402714005617494386145172182487321322401659693158381529449868642659172729580116174342761244752913227585955432323138260432146420347791910794334942098890937820007386882705160183982502934540749151939286154348131310524595100758034366332562397734995473656812868476484162653721427141078870303354725032421742499359472788506940246398413339371269395453244462532673522146259657670873301840462907417318845249353222220761407410940760908303354887515770795740506040589552739514737725274000475241489360568437361747443002840388096709961814137090549081568225339433691056205098612198254661124733517161563120087882792084627506138311731056911954680957206330641314799623557916488600794834021865302012299854093595283799714863053706953585890089700264687708553290688574417262549137992346004188742196242895907203676306865476321328744468646619825339193766510937033196597101495224912899889121234569821885436928364556532273300709909791495450510436868172601020300270057329950327535048156243334688873925633507622175373004747041377663158295120750413189845287452065595484911327213758464047856244548354530967638300072514550763546088412135627484387881530558373823406846046127005020346356995382934253352892208820401199243170425707454840816943729837217926650892262188034912059571191476274107502980618911206805638480144080416703482786773253777934094258113934170892956877724116722609224742496244144370677412952261665065103585009532967167853074576565416241310794417495614811858727381595939448670962301795164988788505563569242352014102854742136264840628222542448975023739457692469957974400831388423391598522974231043121182335086322296567004372319194265753094387025764531338482111216043678542291447072844302581017018643954501440799685287761849788899114515068754865307483633116648386467884236314239111212464710730944847527120682725610812615084953386454551977698946653983899201208397993862380694698433742909692553151440249413015321031006746631409019340716728741866520986663373975647355798936934472466742470380771008278628682314896693136520750557391137493413574128262065341987179146894007824053746158927279793475742850861561233782094634042595383415263639280900992181116910588845799680779096307865777569266252851069939755141594830877627832480288056255555651756203372203418431192577530061376267077777705048133690456058226200323099856111235383453970019623150073137004613206729362727405731103868701012208807126090996882483918237237724749653046887059218258741403524309123876704455084097095072320895221680876723639774254244103880536237607015130239294837244433552955329556861995631912439271233547737368804306119001381281707987331513501802671638031865490427799485527787118010968617471320680182734628091166556627716571006531088523926103759905327351766047155537656087264559795327979318262901374590725070986152410510276441737189537891548597296852114679096242155698819977096931048209609936808900616138792137014789821095226631469331824030896321978181742982097633730425539416140322565093690616386407084252736424617254350377037908963671756737391084774677373309311266049886345125324229585987592128538173951484262378356376026628008580509749892104895291064760976283931660575231515073601734263965564219054410786719005226073351507241269789892748005706441663905661008424607226900035201182860685912172861426615314324628544772469704782189312269313447802014982303925761164404680851757410694215056233243833993398411466052991580467150011011204908008402302389744850972102511193255348368820273875430564724296386689861006265361336428644928877686619200289008119625339048217850733358863426355091001257968032670558086161214146089358106241514153552270599592338685133207013501212475647511516530287521948409834552283500112908188577637935151021080532515337163382193008978744080417449744459324153218267098715266845021001797641694885723150167812545563144320445098806224971500069832462983721629283437129915441819536766679184293910644817327900395808465116636743102990701117952529817194717911046855876382298508941810139762481538564405620837289546776606400143608898685780384352077373298202718712383483986674822176669703468646281913962171507682663661355977067555663075515691573902354746861557468225861448695731009350295780104027122246153566985097468809693793583151831859586538410051200643812538242098040863293097040127796076250123758380615176298216951759568040071711662549857850578669609365290100801182654308062123155281538434837589046685714056665312448786602572107064934912640849378558646052386172066965237699015489327426050543369150124019593023565987173664890275435825833664851319069023254084223284703264806800982916848468208795072755287742635590440711071902461048437604062890073027163214607041053801540060178821113320157121893772791067298635460934228111251192408441926474179180824370704057479984164552415145202053854710725489662135941725561979117449610305313899453852990189908612790682523704566155925585581672819890429899629194773011753677278114314774578522862066556634003320844740875879383184385588276928151972891030585181595994028693410225540045468435562922345982483635868695294082946665788402560409188787635998139767460671822057498042592819620343802471377300302851401784949462927245968976697976362632111226068959446383858250062543843891620592644162989208897559206414402022404950214707508786683810437917722625754335329372267314593536290212009723619204199940890035780437399130334948683147470569845883864925883624800264229266289505482017278681409669024973645455592299284011449817587969580339911101085898920873571108899098175479163862285725333164649082284419709811012510284614982724509433966848012871984601770132061072388754978289757743613210898557064353734834124830228645788907179742150001076381128986583144876152412882256721228361660689492493560274178343247029450966088437732462433808746329491148534178133884093381641625807126944191490606318013899071459333991979374588719928024496411694452474057441129297258819865693620421847890837347094433222814877442606602153293262545312312531778366720517690326370719661041721183949353457242872745237387823591136506001446445472257016671849707899812427442355098557092681888011863500806636724858636638648232960191666102808721785965409311874807606668050028277978448190634437491100757628486707837037475093632659383998938665606899455021609813891886274547706453374746134530607566073698862346986436857606825975248038785577012927182720964480239273069377635943809599672349625372055380048181894337883310890949338833559799325056923274320140627597510332504907748262084126247495712339615390310276583344230546892294389281024326624195998412620150174557263099393926022631214977261688158852639494456130429140030469381258797824806294501831612515154081849148483164850495467954489200331933540064678206463273955715941877164474968502076486392850882443764013560331083332147792278567080268754191724671985532958204344606330301368699779907569304538404825910289317203403031456203363516091208566441446032404562398638906875771488628980397220046079356921507577189231315834883962245466614156668759495495979751975344693171574734562270823415116487133877642265149325477700691954618946246368853600610090060353353740564898905632712231733673543972493441286366330826705392035558212647168251688549790467358156155640679439300084764026016266227010592758501702425054129554457508384764271653370635369257602792624517424337668171161532230897809814202790218997225482427372507406720784335905595718737287829879612664364023514921858462619166278246173632044368586727129381895175885603585402948740705228349702577530226322540564857936918717904340369761235253524422191112322603500969158588014254416016634186626152990600202861519267466190081090544782499784552815180484561567121663839278645633606634061799005480523616950419715053748030955548469314705726250197724392096308386069297190410013615050151031179223789854840262022821342654207602002011940124644712305236446830662547094619352820917844445285283716380139386103459421304540395765294481145696311336126683925472786368979309169967397533001413927712259693403797086284890737703778677045928665561293596853264902970763251783526591508211018420687563621790751570135699184583493332135387590696522899608452111449392817655986938610873954320349709332831361838945153670458003336073543092294712242574539208855828710888091405588614961490951384503958135648818963565401367423325233751829735096240219441202914655450391421045877755553905245726592992316298267361203324840784152574338863254513820272045581192695724070499974221215807077734999376088113114800282020727706442470406751960687689242203614609725526646726820579627390303864062452818485482977383804245808360511350469773184652645785189336526919950546284155566156202050376988742851145306970033839222363809400687672803647071574852331619687188746725568739099314635353436560530662505064522110636757035351731647253568517382520110868067593365617709471400906528531186578696940329097416297318322229999410866573413882639938806989774735436822053918514249254488677561326941078973429397619278310561779065723522264139824507965540335230920971550421432793156560191775134665680257173879372509519184535562825192991032116737226010640152462131342192142716632943447888804738090517508378628909532753107495550460283391003003854152121302309685545803879601964155698073465444501487375715161368871916800151998016967724261001798065450828486203255526868822273233482112222849968669187506967811435631476622755543374162382980584632963369432485843707672320638672826208600727383732245544110446724965260315713572104348449013452393093852636667359656739981205699718101751776990897637807875222675726232145558724294619613639430242926995444925130613136297639634139327188087202827651164229623828741698799792057150379302359515347233960497592611617052336653326174945439171012160088566686723822632988533936503767104805320173833070351409316169396733006382566317030808774984677496692251774440978826282462335955780936960428442045425095855629237263374273043269723894956872294572077839258675143584680584138160737012467039990748537424920343035436079906215555058092062272198662478805022900805960417582797592085445289824156384480023468851809648436330443256627543094995171574910110063795300641111677443600704575294239024647651405955130032559539479888339189200381931366477986452161343526943647513115893283680089921737209697225103595680290009984252753572500078265701677712594091807229622473339489329789613322417728165184859393212826178128289679776053293740653679362072207839016710872609732110519975950319571248266951780767532465349535231742799048139482239465431052067227747692866629477959032183518632906977016316126636667625533817342055015710894647768119866992330682266637114398217319522127785073088098381112289855493700424430575330090301697869906260124020031573873236684298180202849845463628081016981537430509977299232549872265103234271498017704265233143771615599362793537689228234985436281642471431010788020683757941999869711649567984706755788307192942092118245839611938472392895661645443131936970619598231234422436733725026924067044074924476992343724215982946487354011661792582919014555023407822868439180368494926647116479249296202412394554075097279103731641253913376336331876367347119153266874044249646939453793122307536541396853249956823486430717812163720645113070583072732669197925314073592314070703329355259648831354196257474161972533809398082569945297499643468508966056789699554741682832154151198098096997535294804364760056922002706516282745423978840854820774056456783060781362945679264859275055629033550562729164042573598078270323009587085150873728548630038404820290293577726294170766863570177297670188122754479303706152908750432375405203710334539102357953595648280166517518101044550276500516163633037650310072422003052109902846008938996089476464047892065128832999511344994447900971162781381615193923247510221889610565475122066825394425695284333149936561816362278002756107550750161457240525901301422796256048482888437112671380183915846213015218711995145221514801164694387831330642334641888117449837185217146600086305489485835322107536674051217917770227424898029168515570415688941969315902658652857774437187352309442125845984224457321803572572769769715555406812932458231239439271534376795837671556323800937049490449764565346820039986137215480899132289518370370230197949340433096185771527948855429040691989782705163086934619919007787433614071171661740376338819549388025113275782013841846588123654997031289718776794266272890680495461614768338019312916497232373188441474294482952920003910155005800448021868488833519495643670361057971089740701925123939182606684761381914683337853380002809962137979894035413915311042245113406610423853139921805912071785295354722844279451529241518338654488358246550146246736503756145310289574374366606514716010895419456584812774210907691661537583258954507315192177153046917184681950463902251490167769676141275087993612648161976282459189791085985340475442811931580627714766761809381981335566414777817175582375889541484192735036012993586496625623599660328791725289218718462362902074909458510530886686851905451467007397948876352039838538537052568572592849113897803416127669913809152332582962311366417906639679324365039530387723676750985825816972957240990922375914762342679758005177542506407089208260272797818930497146901247938922752793593868410598595264472490437109614249347335196466899635806349538933345001266287733860569016235942449356407928105549806681112139273420451071543934106912351736095893585393596070149469460256566167624923033716576269216571113142995049273612015052143269086381432128110150381589493054807263013346133299073465468354989669626510338407502749385192450193118365196753028612264388351311725201253388254041746239472853796584410938999830835769975849111580367320999171173588319305802035589611799285189870754088987760865451144018830711980775726646983662921226722523354735063740737475166607163635027461832617154443370725325661156462575170716925884942789545773765051233733197472155268480026957567648845724382063365637906529995417314006432820607810342384857602987230460013399892763276320332548302153061204705699478395590071398728288588732051715666107811415825681061265322604348184430951247437288808594848351273927688122720986213431855108781165270119166329309264638352039124380187835261064185576526415908905110477919290844521168472539264763451317140321596200860777080748862684318118325949045674928502267156184680037934746986238320095583661871338458038722449537212478765720790114347288071736846671856256473024894304160446360330078623586880480556678070053571587091448668392816405145057020541581219233064275524952497919063886639087163076649821459890603820410090055000270487079048330376262123651409329231050647639107709943936062965302788056425265024453527787396358701550816818803589654641056786882295620038929160999226339121762885858220512987203147357574536953635785731560131917731407136551430090594139857081242014320092354890946801351271838047478343620440512324146555639113601383307799555028711361260657038598804231071238385930397289092032159376533385223923433417353558299379100957677108523356762592943320256006615964397376793595290028105474451547867835035423411041824085248303550202041752902192502769878851206731373995766733294517068210640058078157136724339805077643288045574535770782142469368617958313761335311357752340438065183667313873418435399444766652734110134492103609252228325664004878850472887046869236225766919459921853534240365678854628875357806774074549850386405575150552468519423467332222260136399081969400732059608551513561097855189506191294494075310604250913018062929606252139867500186629706736191805243221742913721433603079247447897459490050746177186477614982259036121855059618042134807524279432466588851964600120782646620788302505787808502703325370972719778284351769921258078025245829219954140795849626494747421995302158803457205755177949291419528707013358228543846479259125233189135208125681078166958828902108828350287602403401052244375833922758787286313715841528455447528511371870123275403198554941581753988467735009409497911733881811708228915969879589932304925816324071812573762803759998022779120691431622525001762608520132341242636993655365514367456375082968236616701419314211324041766190157297389414940350667858535726630797279023199343035892378342135158654931071666387657732891250957778154611411643908169395273333434285538877351774309031810878073762732485252114670282102364341966385913993223585019192559135082671309398019364642316269968009905458435863865408469994279230793014682610939346523657479480505829641889062555347591664137265750791990780372696596968371799187720225607901098013464424085696247204096929845353395188704496236808723587042628767855020228505577275128998495601831880091234332884479294379665354402684092677142275954392776626605889629273267278437209129381356612532131704839704101207974260770276884281653898745769346211750594379073409180888001697872733844909238614448654944887187485135772659794742251993228112386445037780596483779219552361481646365210283183613307654827436651000252170671763175006657429085106119430294897580323382413830235555995327552845777388481729568483836974685250632402976794757328805754762598869842538978183093461984041892266652265570057971350703383977776811667333208894575524648430556037441647150937154161386768460440997958181153962283733121572111070029632167531370411435274502476367322449398784178434811592207054922222710975233905678638968277198669551335319571427742859331551260897788072031880859165152871827688767099944467181180134918616423350952406977099778610004826355217858971070543240865156893747778700023987814974978003434801536764992068783464472762049360022833025591865635618890853881571986679760847864767585107327187824725998913326800515717586901191478436396510512623923489348969433700833441526764447549754739864739216754607857258823671868358828760860867366170953292754837127520799512067157109347012483855258135680502766297415751285324497906928134306774918239736034271558755440692590341353771626171743381437962337106537440829100885536157986266648260716444653770428009363278139931733967620538137759311796683898038671148561121019991091508199489207040762119265621654063593664748935439560370178745740550042301303346663162081438980055227596341132260883471529857706215920347271370459504291003694454493657913972985536733929536313163022939178703134391474000411799588385482621829077980594593693684640280728395034746729358799764462864040062451289132055630923866821451429675785487802783115370095303924858271545139574964507753674913199947152854779254724089242307787573739583261253473864082511074567251700939389005474450330020121603580734681346436116247600784069356055227428955635950963928981935121955589588152287867301919698577671738717769116776672816501388193911272045746660110601210419316383750586018617083373845949691278305547126109163173526986059397456624206997185439825850953137866218055383819705526007099046419526453953605454704906712662246479132184306233575756028074528823735177784596935100061636574460808643952373596544611441178451073554488998467617957975381095745590775953390971884177147566198832963834493971609247680832118219032273455557411752087052678267297209561181001574421981113590351742524074858614730366801701974846735612763282392519993569246836716039782626667734191158770900614266934144184304246607109817717445524941498127740422549427203769092839969912148473641101452060024333742867511598518456844809295251149522568480111139490534423629748462814254997368959225883184061365166199955771826324452951417764527679986132388549030215260049874502846825271972609298687120176382771197450860459162106300896876589204758509271561745160688944232519523365871965252548633835964270718581076111683813190467389184497677829801211543382454449211560568139720294989886701979430620611788695373169488870492891761088556631169534106700203360092020367881992131146750736228524858548277576379148549261551719529903922327414580315730794148583009911329558229160709951938404782649002263253212047975563428970817776161112791454308434253492532037218544693238579115230040503675894396387753183573031356516844358570578893334457126530139249194595399796395966335929466291472882480906548716429875268450238997405665288193765844424460019949382233114798653547398509455896356825021506789829719811852451432317961799947180722977111249292293618162162491254648460009092233832955464889539596648094331002232201738970338556785267033054408700869472171595475420652837373753413792679131448434934748324247036211850817514960037607312776903191057982503812197791927358321481395638074415500825218803922683042555557916858482417892088521040469748976131148231157875103473832445185965095230171056354725997008207399999606345839850148894091385474442464407183314363922867161686697659338847604453077487248702268638373326528556258382187120130416943195577894918135765784126451433839381245450147944164095119330260926407980615111851394296059314474468060917896649680131870775766440754172206585220891695204926285550155280501840895680207196024641611350821179460668505749349718274352500926421324600676895784300742882045868853977949916342091711777691957320353466499841463136518684386658787394595423069033350352511377491882189037500106619290475850966576802171327299751741786424546911589464377461810094490364256654382766295149462046918264124141228308149876102814364340294634467666819765694810571933541732958626736586179011652190048547106646098098216526991184869651637893506477540500734360659154111900984534792636785529920119593656209060623058334923164011467771448534276458020619500492688751431508440749772183708507296255273379504992824248751107777014581222680387778261556542701069353365927498522274834907114966532223302360664777910376446277929248509715609645514763642585120146513973732206166572840278217580391253258652262142534630268412545112621617965778371607082373426577375494489275152767649975700919140242051636960590514444930470940832223607743379174341091951737297585582095455560799873851599701143204615604456892946069645209364031280560235130367823204027558107036401440963340030117236991182826995513652699812169223019799194564707319512721892618042154610765840942511067298089319447617911758066825782297632430498472153215746424144651873975663041516258031829821921175312209545020342539239678542117476053775184777372339045302079004676924332569493842089306065898584767475353355308150563509070538309991621810706243542614226954589296081022361715281520724434010896132871932664982180146092040135332558646028800069979358496011361406334806882722001776143430574823847559653868954088629594699151105868231119516302008214039331297440922003059149906909163467260019837010833290351381139177010316855491185467976659001318706450221895894091859287396218344248242699164588653287299798149920180009793926271983294196106281339941365800506971896065136888358605525730736888980068169122540814998233402699986594939888418925757761564441989617013219590404176852827364435314123290183831038845942157709077235549062628955571355690717728050986023569667590524586429689424545931473529537880715116817334517267088864978148106296047207211014815462005295021478093499357896290561467606223668855270700706528138474135010566092362789186728868212717410641073448386752614775426610939491658726098632822050205198928340127025049505462192839016581290901794335227707190789872803876781787128715453215531795239800368563764597987624601854716568936906036525350947857310189610038476267391075794684311940839088002055996657367863545197077918554944113117602968217214038883112297954600060049103491748699049939360935344032522489628981175535973176149366216603523512336136233341699196348432286519685060958868690556972922347519653607709336763701099422885781402249927306148227874657993372731777033022107895125292515025663801381548542248721796554749559363145673553203417602781668100011349122317345641077325951309128316334070258627149058621743248778404859519761486318362077192359920996475844965567558521191881190318603896243186989704836422150282166254195933467646454125652934250087875488264223955547208690209532507181499490296508589521266094076254468595675763100261553944553633706655458721776128263215442185223928038610912889184959224990325355356921860078927395506087696005202925059499857599644969588427819381148541524291786873942334889266855269604745921840094007696465175337495661615036234924675022188685369316171105611645139786036343276870741847709207123152861253598549568248457895596338961378264177809782070078638047432310808053852192320943273873274760417817078670806784465311606933288394548962253117156173955085818006907033958061527134653509577721139182417167984588077895889431682418152704643047516865482453133303115443533660319675412612416222111660369119528915112441705786729364546431406934816619661451926853583333785440452868210203083806871259404345541470276736092184071317725371205444785909463839698799765554652144065434386702742937596767137690982694244095616221112166839490810957461350945081386274508505076045790331790306596228691428222358685328453389984754383168738368844616365034180969193137668731535522896191701014198704439115998604753367516507831056138571609911383809438547257732820440862703305388447657984535146494285720248408464728607703413273048576777405689536421490005043955704866188368520024394665808951149461575755494778276370818387443840880485405334082478750434445290239549323440353019215924738078955042654072000155376354679479056216265602689384266753287449079479557043893255995030984922504872600035500585100835806103901367928494504224558457085976143387775656185414926592355495058004931904371255047409120049766810840519788845992155128844548546540400163499692331540928973997055845188995992452901988836243230139952275176747406966033162879596119751673440365080867253525229129095678135395108051015072015515604647009161016552079546062082266875753422542362669457218802934690295031418589294474944561309872863297881456878983277856258158464239668579474752690906386070006864905234621094051550964000827701164613364418172993565457700921972824440668351215423898630719826604081914759287083079074013363355146868654441001783101310266887191887094320683242931762223745090530613099932124183688878023144882532640057295779376944054766088852994071756909685264821930290230744964086799327259485148904630364597847846643343946773127426219892152903290620754312172898402753282378233526513604896164878598958044138362192898707183245055569619263369234446088476318797585588834626030341162675957443949616321120544026121802524743876472868744105421668212788443529364290972633717288592937918549052803198624447507373191689072402056866748462947902302850324015120762063317458946038097259307912896504686750791469383821040176229193923842887858086211331894537713819818013878896188808302775708046322211805086669256822006472973224542910818637913997046391948386440540904062056368928520849037842107495091323546613012672137033120730595358127199717442069993727395058815650896746803955342776571906119351491697748757083599576871010572377398055847655472282573313867278779634317419122843691471227540536986440110514519969633813714608604025447438893735854286566306057911810309470118711450261770633383890926532537896376545893337202840288479452778035357402147201272831240863906585825028213167606509481354708530415406777748331232623866352541392704831870009420156924955629265754105901857907160016903950139466333915034638625003539239471615478126446232482799273312099473852919866114592583402553525724609341823363763727422628499664353676700934188479651272677050436706598178497057515374380503801978724764135130307023774157325464872457509673360947454166223814498382619076187772431818131233421163179614596186023240980901011766323417757374077526055524326456802317642186685135754357894849753058507702752536129805277696913631667144408154291078467097164732827138062348974850902081377922941622769931725625616260791334505911354412120246063481416972466333710788688450282046965379862440747008032222162275796579384511837291391862318805549742853803602575394022326732346006698303026760105203104854660080937950969130820061210541536592314749254124939909126141378696405201552527390916292717760471257981889194528027381139937905392265676245150510001269626852882874501366729830671171211554115473005212617394353301249631243435869382499521562420997704081488336801968592396542936491686515389793092644857240348185039103225614542833515874943571487310180991583119642830010883848875406406907396669969402438532081889034336472618020595041011404273239258524954585603198319837416701307571329388124584400226251242764427678711770048584415353226031415928754217559430126345489122145474461623366424733158946500397730277034745262106853368973607216048081251943283740146097469706858834196949540982155324167408521249836405369630270158876416782503964770209302950388444487309467201515225402345231013089559285935080047264427409009492445401323238758941512177496709061824249971913830675488484212534026659959443439993335196755114498273768935560660938236472493062319931279264307684899657987475403414192816995252446642999008344786005848407350579898669261050479177515718973564130211008824362975967060200038901369655814232614481792209343083249219773466257179175369880401237813676338822121618438267683370808771652856202077304880870480357181991931946755644270748328910407976919436747548246690708554693615961341160083446098845063369807528572288605697701145817142862174202351278290510492880831941359334144563872326206111068576336142155850672901603068757142851652997127265637100212736685825888373083599455769537352085878220088882619544276382851279949097920976338424180133735787854368383531123987888765836490394367450326411139176194078379983980102635326952111728259652458210263561218142161751701488523997313641311479148620127778682349619108463317193305060324849015022896060613761894714904844576274342963044124253760630466770586934786562012742519766165151032072057917891801417497873008519890811598535052481308987834249878896456121445250508335350541438049073394547505709602513029957280315264035836333624713919068984480362984565136970247014242911346763920978918820703741022335998803474902463113719163948202662377126115895727471074472960683237579171889050204361191189663415704568883757897515403932649586140810234011419771008314949164730906551742348243418954284306383938151886115374127579681158381278863672995569191447971503634134522262501238502370621431300584741403312352240151896511155480287650480798071780656572707269835472068972288757512304224745957648720408799523444304318102614476617182368003763825465840004085030262525494771056700458843187466270136341386310151063025125721151894825230512252095360766081541657998210760888720908459689662804532164536778668424107175042355663086172659589933826526291836302151795727253644134044268027715734141147518632361673557822001598447446018288013434016840760888794897041174870544035191661120231041164766640861444944496051385964434853995232555729914428027571922414731431401583235678608222945271073767486177097172111799636241083403358218686600323626285849392700820776748922750327603879548021172252352770972380744713624289968238449049349211082856816139421020594295981287516740840255806828504460782202645763759980498014182835512709947727615872046338906104917266447199943727684963839743848882474475384832205307379134601480912400525364385858929385412901944781921893528149322848506669942230411723901015320784478547716251013397516315045363089639987621051602217733391764072681556634831802162554132227826859513124024822134598642766255786789688927239609493551474987994628946659458799145302359100862997054675571365788723469410566260339370926267472829523417528208783569115667526860801873281418913336629385693438238290502730939674198163141362382100442752946780279932624175188543724067976884770916032341724071612175604613353199437849749488945277335826952575322120277711860770123533846515480933879473762650075894729863059429190569390570919751821453066530989128926944453790271893236693846134776573612399330194121231150301936504042690881198650129488287569461605059687839229570646551021300447065156800523805898358875617662481681230710046057004375940625687326384024086541431413543594937923061658736550463553474542451208156015878555989272085490117519378007183678291273154325160192694850522792583928846532937307401741827564167707106798508401792937323376667277908336285314498504928234725843057168211766257740024427020851000962097857097219953828631660005244037586498904952485261112428520641038230532947990378692822634475799836998018304829553052719311712276900536559917804136100807734993384368758990953943834951981650684590601539376152231309775815788150785617619325405090597434461392180617474517327946437060893073172938876753022598942741450583292619410349537873904169939497831814177571094191561627070711020329389864237603894035951483817945465137415237262125289454241974474318924931634031193544624591646300354982965575015829928921492154976673573282660018152645242691520171047987490792058509266131296976190981277199306883504467239331764537441959662910703221850640317799551485247431672894726531173666674364955320565022877237601582618640777309412318739909155321858131274526270748540618085638486711236763782870734437749078811240550608011234191961401564486568686849662206020666395158940666230503542531341644958835198680531695440992981454118820853222848082198282207613539050800380957716220572748646407952434397498750854367214299409329162591936925880926639999145726247213515097012071040823068212487291822740827908627266146141401442812269120025314382557704534326519889577393617546852206570146203573887296229857819455794984619347178451739393107646676924749380590902072029759367665617286147305221102949327291757859560573064269989106618567033029224893996612946235577576389194275759998848377972539700749517909238275516138912510265528704732719586326833523746655859669344253442124184955966730546915114423599625443493110835777857491495819410543422415082009529479376218467317806903123433983196782086169473366462340635616194827043789596215465920509795785892643851181563602285371271150785716285953369233100703572360852844572785961604989156707902821666722880133152764085778453803228952817755166774503234788147185967849801601183414933261343623789772330197381864154577078221306319417358149045752741678378004431401635260481329942071891549638613031959188432334253390376561904275559612005162749055648016393618477446101717280328861027639953407063303442396280716871322903354877044304404383762596267857949841226827705387658606356694152657086343440444304113556926811783800952324410553197936969227629594154831416298159607644695144627201457971878235913300480123084570617178733284306625190523055818277493189409614915906306216692848977243569323872371467995448931785793669773820674299752681316997737269292317689449954978119204125117058558003422117368424285918009562236968498055952252914389413986431007316015483361650011920568216255400166604297107802222822434154481425908909804758819745840832077012804327432075484592428656056978870375734063987647397311484616183810260745700314627169820368213270615783348652188359387731469611682058404157382058766947987637972549149953997528294076073622569921918578244304231472931835224288160841137360257171719845527679147911330506391408394061951031620362536676563379942231285277158014775340838922987407076335614870090929826059309606789844141971974258496446337229602143844899285614422172123651999089815228155007078879924491386903810794925432867103765837466523855905061984008036338486783921535228457392415610057496413379775906804222369607108118168651108778983538032954910329731959663357111805904713454186711813433053062173187028389327484087006150906573799791662732089688420416180745401907506215071719929256063909051753811834431571985308522124739443949656711723594215691182973392144536114608778114674497892324075687749229904088086861927646890023069427187398212269692280217470076457576796893527402190005777547485797813957643207011730925585929362744043801730989307963309928060936002152311596946834470566530991752271848487649358087293020049025157725763515994151729907781135937956868453016525009006285408900357233636056719522083593972772828325396563026330771851847958827366226709644214140658891987754771341754095079882594544982097981465616348072122190517962124831362574042701710520117930536072874118242532526858487453918745250592229619349019207926308754927180797718530198152147617273057856191393333793931276273093592803396976964347777808613048318112203976771744675804542597082720511632571828760537445820647328330744483284548845735165188058570410075615277945951793098284495135682955611750990600447902090917441903163331647112521861090331726105757767035195713156616898880923222682803656968281707957663958672242700696801363850942339637110424845127873733449890533839942955530680186891716425671077970616931110212997594136545122369219385486172097893106199732330596028487087130345571518386654830691599638610746999370363833728667498754591007295944542121697578732405613768669485497751505878975750517846148998363854341818066979841669838428080245601778134365894121663094894906447951115916313993957246940216589620457235488641932177330924491519206430861904665670613266304551649693608949952327767939142653915850185401724899832364131904494903216250088421037272276778162030558453011853226079314878056211324745021121760175968651008050417462188487359670529424358461514520732761326360358277198682752998474693038967013160698744371052417452038027322834312669973742746022730535231911495162911376030454771076727472999209207856499280172374951391276448705181238939165089165028645333242461069140508847045943918384622166314647894864503824448010588110919884823341988732864591474671679420665018406111826736327544991631322517813155912179686576847414152718158245837984047345447428752965334481222233210520369478677853035738602679046753291678032225985193562044222300485373578210289036662539856222418977177173842756276324822260520766976637292842656668307139565008130077165555381735256606951070035035916601449877551471699031483806143321045276679782532093418112707544540307583621976969525639190784128417781176955271202835597630891594144396349353368225310308797769558948279128403063799248825415866361160749331984954311211036302463512325363637020136710368360974526784256672251247958440524211795083108795488787561476550548718341303539643802659969444035033361087483650557895067191905896911117201504474605080480824159084304204859097745970711700806519051971569041220950484104360432215403076684340210141559770990153490682444030112402344112284907199604653406045622606180524347958756078999919573664469115807692853152698998492769173513205922650568522542237546075897045346262856581105448236950214828717094517083105365188123061589558451981581373705949120361128868768147442781179493125505414274968226760860393685504929265287097859185437478057192943828101061502069520143992229271767359401209698469932113567043190970717319660418666445748563269920067200534442741662944674354418718683456581969265473006439212527154480015619785454096800363690826451448868170465552539501357241888481508837785487593383342450681869016587115865915923244475503813834702317318905497863937034241159856692226687104446905855450115401416486262628352282698678120330301108185200173597510856933684112945329119121173737052355704959275873183873386585943930312105020937689155479503542052948010779703081862273825444626877955126276070504268582195675422189917289446607005163020340254765258396583089478169297642478944160413293977595443938904979225396571175399895443392138775348818838785380178813989916806946258241678003856974783804469481522130742219844027493864699712467242980552864182290493015281276110715248914285617411512298077895277699167553328783422134088882716135715199340337372788777944724704793547019892911019956991831398777739943015446627648956038021517047382830378459871313808311459272758347501242846165081434984847740712597938837584877253379365823376930894733834387172669934135640974128012081959704096853844207223012708595217550886412647076649759109528341179318741301796745490884457458753029610691919826640538183796856797362947218542760601814506382694719336783436414960357437718895708832838200164477099505361189672923620647131234467725478820655609577767648016050247622093763865007401896481368839883628774804169796231968477999607669121784001256348744722397382092131076054339603352352577626688704347802640656769531759922019525448648622412548223099303829640449747102497229289594927091467705009883060826696919588233632148721810982039999363864650457328090928836156777674352272798718112491274893361671861002122562645452438996967075585200695305863202478884047122935781076983582296883622259345678602856061548052189293473894019269991085824340449607571726304994923042618711926597168597269175890876630069958797014487391412064737643904855357575977653371994660442983961720685062892786390101403903939412654133329146246602703542968474896089922703346059827746139391417496020060786945946654096908417774061557319955131109112875765365479447492688409793201877853961441323703338819076096215516927692440316312128944308354284435190390445644999853612561690836881263058142742954042783612543643362276128870022929117961883576242186003268493110087998731584893840417111879610851916829390947921787189383120674539983560041763740698891092261790118829078247479721207006530411182924883343042317160252448782141973865707566399513582635472703148347679851538942842177677969429379504734491455660908019664407476770298556826097608083283534623946730193779874434638436770429383863196407872507275721624242330275980972211748706399968992752672860420834532404934346292449161731128999015147974916449957586582140387430980074029008847341332607507651501538951808903596873849238632317676042462023131506219549981040899901353455060542528620449651574541223604508959555706021705692743128718218386734606467235019972497835621683790578832213744605753180174434376616931122495028833159524514742454252990115322767504023653613434013841153676397174986498611164531507046911916524864889244985237321648176093668459809120567224606539994355354700374590739659940564407432460487948370148012012386065568382519381701088897032685615731977076416159261688155707650116065737760353339737200254751089740389850728544912772781179451903602011858925440285520185841618791575719818332058931817415373893425364758202006130607078529540486954553921438512716456962994656705837762760561362845711035425331597609976503856522968227514655505954587283693984323219027785078595139092185011734170571510450686998132069521341631515270654737551450431095535226461200336632996181366547463896016901696268098660608859912557498801888357573826830441168262428817843336071255018638255036484050688218027504395200082419217101876698337181135073281452163448036621828807418468674084659108510768998152698847060791567463724154050236864200023219142469948913686686875991770485281558791367997924099545101975520104684907160294524297478285653151319609937770423748253482313112627508334116589552113938646677465659723534879879693106180689595449237994844013724004101105556121877269449772898059439180993491338034696785587065479141670583064587511651632743710152569814558039250924335970088424326475854852049446092265809005213928854082026899008248009095096820131041877672146676916543213747184125553267399215946663192016335930358016943727505451122321888677114280029761956017392936679142715171864267160493621725849177253344870560482945862831138404460387171966431973971920302174713850107532198236001676693786838025970127572498226963981648916379280157793250112558556206829613292808650498446548728529901450027471690871797837682789665087763849891867508864772945597814468275878244757453096269417692461991707919941115549169664580421577856131683294151375735520542814417348425415288192926810595764520809522388288192938818881674524961429366760924534440166847047338621758023149429022710886655722947900190196611463943608215745178708457767091623318469220957891184151835487691892742417568085823696494558719520093020008039050274807884151158981530713692519106276624094496771952065144278137845002290855525697651847788312797137509525932314869860957210592763518545455196023242420470915278087471725413129050624254951528821562548265125152088660746337582309279714627410630984529457270069245229062026043615822330254805877383408575432742549928495736607775339833202290142248531137427117898351733606495437679401604941115898358957759570808707145586025714494771790264725334112109540423100914323953749693420013442426265533769985143207891402342030236453405568830288388667816352840448577243304377673393789832457068074336883649722271854229589865697847653999230182128172216431285300829733071498990250634147577506040097022771088576690807520521380546846699100838777645947647202845318626330490810697961615133349133103365759598826279566165681860722584020257192325357089422598289854263763239708776608468735149469480567335735512632842958505822164612138470459817123130194280692236178525018845482480209616370182407417689513042279555370741739619192456702375572929250842081139533162320615517604364791483237274853042206793650991451712138631133143068641924048764790989190867480135978131893223656568986258962918839450994908881200010737601395906763746391074699856206793608466251580721530859832751666033687955531192592019369116269844147637242682301650351776226540178157331548366784679483008711303810755038493341740749335385021293671582956987713226332467805395557765521170758199664210458254365281698016713183431485594464099574913199130912215084503195235446712804987825044540544314213071627954223210019776878326531233089675187519163120201340480723114087639276986381665317443354615117858525311246531235818016163459800894738822848032312743761392705591113724450062061592285750149978264591143436930911993666427944483184077259002913133577256861502753669262198948856135804469476589535400640169851823375269174778763269884355667005745348535370731962488519497561415015277504656284788752368199983047240296487929485032551902824946338548144342249038820805503419758520366224926111778065977491454154676108385188755527648556032207023253762059160470182618003308799769431191656530110550292859912343074827069778070382898728413973685848481886691377925864296543602953757709969353156309387755204247379677354840968195186481530468900627080145403622227589055021683505552068947893025170028018307735046396233795336542776313545526271981573438443513006267344883439402833707724815797928419265006604664391978487477427951753617096949544984333211159357251700330623154955346744735204324055259287779963056732789005852237261556153060107975217010501420900834475678016894107752655115848378562151284092322346246477540405419136944341379015364410609294129947693206758703830770078450432824640124804261775685019797011160280826592350571492692270362821184059121242577129040360398492737488435697195537760266895337737706191975030361534862794209583132347074973656511783990014347418621898078965777785139440864445217315315072480030710736864973565484878191723356734185953450513591668642367494766231539119195388617415987167654980621813897998426321937163073980697187989702207741135435972837671320120099776801606015983881749153914981373112363636011793565762649379866037691165052968341241004908567722200534319716437981622351648298618159011516408216535750863710262090101322483057004124692367474265109493478265574228110574600438017934531610718361648138779470347991403924655621365633754856246070725411310713734910051166699888789675978901972642554329706971492016029010352357651183855143428266317026483607478230572551143144570459171806337863528321601680239850370980821109323031484418085958333825670230839986124900881662450088441303549001817574736296004939863648655178075042770355369280827932218829121790169581910515139808733888475521780399904899479989456274215041265572044286864742846453218147124075201316182382713157209207171908291923802872633516365437222933209716665151297749734749219522619078120484558551630888450313894749189094649860607431495363882145757903371776537478450618406546800265072967526885672891291940050074491302287739060526228335259410124295989904820551745085765099407197363274339033176498026625306238408021272045967521467262227961879395933600223620126573623855437530465072504532783983172017856119351440998476860315131065693899652740546830921387716148963441717661810452928065862017087867265494752737263667306642257339840717251175477650721864236792640700145085030571162538330751004241910413127113031417085949074522916360311722968383217600960099297301921450406207445498164611596051546669854615343525105656136377592658833092977121777783928521577316648002434879016379600037054783494402257185849840649825716515731172793289811999144754915648869680631120161909196107861093646274066969168514990062513585194138151052125409341026513887498960137788159186333306476436958530208518852956279645628225533881741858814113324341767837499120683193413079376953231478843803499015628624660879953609653582253308152499277828054481633076072522767332131624919604181770753241125090802829740273906678863607481520005474722521360201056855854407116120242082806015956446941844167874070517856552469424251153444368706040833285535893591649134336093904277259997297913765266481773400916216508772726899446424408611864331602898875811577024659474832528316545580470648530315873555797499119949726948369778847947778132465234124403581502211599095152073806488233528030337301001647906783478848788224549117782609295271560551394471324384670638011384648680222666444647846391148090152203237678543204653768791910073946213798387879513798523051681408352272540766628938738082306751505050694367749411303238362824289900757410404755758650100546254260815232134559713385966850370758757897535979187138538581192772342765455330284973364266771271110721227367890699327849493537667367072578435737630965134034316656685623187943924910851993778005131363692218835788180953535729766173660368148996564857043979591007659043012029156893126612414436083528798593737783018938590106051932264440175094597412779344204627430677492598235840959490317546305475303901921620317775060829818858010036206762688850563852235253702565921389104494113307690442989548358512454174396958491417086265735887249165373949774024345240182831237333950468545323095427862761068868150554037046997831487136285315312976429081494159851529133037787879695205463591162571980924576971862941516129558859620272501945297873966347652643008068509102184398509595435224154555370690541079007278463327109128361717562231240545402749198960001228060270884142344686829958056375420436776223251241425675820725046308656000241094446570460042754510949068342183424710743421395148955215587621966431780058911273801652482997271126496149246601027871378536240329530389700247874531827266336118379169809192317869181319845489871879779851044278458944581684414917004404521385538814094457951251726098393237044927495992776222870116546229461281979391370622571000348644456868569044119503231409908767486205418132769244212589014900849259984649008322806839009672332258402391876301962859033364994657986979269866686537714233501256405781851139835336084628325616012605317834076115310880186745478608367236477965619498481615804402782138069050362285356575557975308788894451949023981509539823002949971045587121097339755110781092911704309237795401358196667932651194333753513061135081230234829122065335717410234610485635351960535953190073618878578008396632094139990344285876869360152628869964520656827231280768965089179548422777191332102307417700828833522773309434726499888056627699410302772147463721905296364865866186479016643329227146717652202421896486347675623411862255488247712468194851915808753015100217961584687191868565451990151731865608147404938103252113076723177340550380150281995573865995692694371037395177816586850705987762678427452178600028334625679665144807384462242194418185192813957049980438940291541095937873557054952975654482261645090014003704588254696267906605936338299187647649774170363180833335184452037045993951832250821010592188339141075801553433922121964015825554224710029867117906649689049075110606944940476369065049507688748631999786051780605202805657892808016664225231370594664940082656931386074374185040481994753599296926026014186313953201043598647836887741095941556011429723688064081125118157514862144172768901461103915260190199402293986010103819129163123693372665584711820138434101956837943120329330964416939846162061698882017198489107768543865145476510133756040903323807583657292563282863087639528317250481942981159555297436879053590353911932232474006641026829021104071832564479535490075630878552162673287582777522866491497342537994909358599792720775154508012949030616017717608584738804793125310158524485215761200374376193912626477746437427247078973707780349642394603029261572656587851566751609892691776799329808221883387251120565220500026416644788717234923666285688249478594417547910986625162300579816546739180099089645246967599615494109469125379172369018226663535652810997461924869868769248583821401260675270739349471647461805994936444156797732814746455431671872052952372340634106347527764755527067461832744108805447824053929096204024604215866483308561835203169112026150088088591955753285430377271407243131869480448314802284617790019442130312019982423564571042844992179171403411221022587486340523653612610933539545967391416459051065265573482305264575979797490787949566216826073853082809665811281322117038753031277997299338692502847080749126310216238192172199812978732404199293402827213517774715273595364724226970239050185515027090492201975865832656659860544330633346340079393057654517186050809283636730431187743311536141058989567661092341785331893037868859331805719906995355025938900055434649161374983399283299244653339361229349456528335730086935971916540962742582972549943959122320354096633733552592198069184310143050546382517496712409659986576840962275868466469220636273758534306866571032840840906528187394447374933539764309719955807667842089624868620928998000408928159901554275713927179504917837557752349615830546824288069342989766124014641265982322015734146629163448971587956247578511097311723967403843625151119402464070709042124664769171522910756584832922376840712515371644534473726206424949012798570294091653757462048005460353842668490508314365021704797453578491988914107035526167264497966016078221378667176128856492377968153364772146319139872384951126842468758037444082851270761668195522278710272241680956061094221790584930925851115293374951964619514523917656874086172865750473971102899394626283195786741348769576553760714407069340574390525127866923434144516050678827829590918797549071872984247992720128379900702592323477069075661066279264386553633068989429479861062991790763784348338858052716018779880557319343582703568086225120674722773572673781598241891497478296102950016897471513643675889205177788729459413645312372062534772308417637554977566948454827539283507469203977292306147875928538166414768382866031509776302719951660769958766873094963248004780530393244868033039465602526800556884367457076330186171727076483570961886740154183000955193412003933469594087381522351622639053519860061318048664051499007078162399887685456535021549998689190407566791452298635343410681419249977466256534367286471912483544648286994473448950062489806396198735417455655462472576386612602043180158627829795329959318121681918454356672533181272354422787548645659638693057959937310011663678630979277761528492306919891333496219939357427754180853891993284928833913715180271857773202677567279118434540929862718881187869867047454633190652328840401607823010710284997859007183775483774357696211818913904306069954550171388235450601806159621876138691947963257389430081180952319689134900875263080377312716946630431577233221552663617119056518411734982073869970206969373196840603172888352152397571699551734777027468160863809345117152617432083331531522227727554798443642864446297847704692019784417336533182988967838406673676970314585786926558498118226016027480182396396179610165898807496946789427828070777254545086607086035422252419554523430548133678805160740524173371997982319707988167532911440841427427271587256477339090650512623809919798265988184348382882817346081256276989144404266348948192594013748861183950693693197210988408878840560548037764274840919289405781490995611085910675680825842093595233926891218875593093418113439668313714293957770668977210689484675467616279233792850104120798149779479784218229550004400621461982447720918112815047717320244424517532517300616371165090900510721412588943896673287554784132852509674581963328294529340809591495179519731886195132426588360092519882166168865658890997983312233145768832282325336666368902797739949771981218578923528534894094828860410638050183778116688858018349232334222194319816392414372140131886538787716232513296160759476823931825551737926410976058164840078513316401500729456108909838316368841323277352322405032545350475889287103283730055928726353782012607090970393764299081517298928565083976804009738237241209122646587301390789875921524505647049088239007573006823838100533257456548261446951442525721494806822531899810775018867897105363224183561660978169409808727827882530309154556679557974674758309423519264488943912387381194353791555606615091524619073151399786705015169340267706090904864401253243906200462578884081471615531737128004962756188581507274189381601390234470479231323745449889437034165978900934371335795858555435292397141180119225072902093660063122991974137569207213262657912039242840568725914892768424226068005068415597543161634945857777577225886417301294784977641389429790889927401314996881572072765593133293644927829732594301025178951236205648063945269563728833506737592809226218360043773376101738085211965647135838577474262923846079111168069832572142376514197717252795122893190845421545747131026772297970202378243765602944531172438205709972087142848640374281482755966418302983810986935079687952033051362633931708302983027283207584844539410935507384928046207537338101506098347253543186311212862048584302876500187354469647486754068152282898880253172632267832213675655618722990720071228173270952798283455621997643570672862343081768130102697928928839365888393077000039147240799045962353024052323535036254554971422760148903998994533735536740101645481363426582106718815638137522631986802711324644061893978799094189211252155687096836017919728543529474211980755328798070595620681668836113512284830663544903388896577465997653128996046880311752230906366839628963960936657240016641762802281421300490422683902173370971515285245143850363899136287567350744482422064206478093145196580674862441885682397099805355715375541929584493058169027545421499165382909033153700596754310069351322429023052272664427372560911511513732673309660509631060303334685815653392887271709273733028406479210452245780901252366095134552916051628830843853124752258104999216828218730976145478643261396363558979385588934468090200794697244690973363786188319576380314267520055727181966247281732604320354896650140238118996017535828813104362586301625904096462132689679132637188265142228930575193971132133311667791416306182029021956407558799130769009937755967980380253795780613847092200128373132485447599266308309504747119558933356217648022933618792590891940944741057961751313020228770739273718663004165495080017880351715905244089513932961308082301107624510053782980439874579539173907058542163744238628295835813905605608420465806553438337461308938944609810461823533144738400616488247376053240616268263423396482471849724735114095251162486048921153622401826731534335044988157288356764131795018319294001754408151142880226996901197319675187676803179564684100157143893020058358570255949471908542569138309967379813456863886609247444306358135352130637157724387867120759958507620411782659997926240625679121494314611357849588865738804701272990037287256965670264909054041590848956820739427244368451571188871885101559059199610103474494012625190153800066325472347826276471770563958177572199062001943667726003365568182734096136922505091436576502668105219849895748967501830762278659471002589302254097355560030467500059644293601916970468469646100094345535728140848103038183104535937390329516126675906810670749264635331271818990595868394400957418800455390271084348887318402930251872656081998581380607430533162437263071738985020645363655327694203552310046449286199623120451619160865865730209631657240142945022391909693221910493992619338966999455692356220914289153979899022712431940820093034596590134970245102076527297155018050165239830154402697773781595822255025324573847174281902412341974697818699067734256681390433597074702597620787754068304259573584853278465967504659935300368333177763854992069588434221459040148001212208171502125091949794480316986667964063852378593515383812240252387593653536961564759907345695688585597458687179709311737798821406790876954018285662551942141932552247876454920123665708391822203213569909872365224098901604782712825780829743537117288565471557250115315960476262805271370203941646212525687882039874912315358764053801798065974218135880885352244946807038427444018505716843600556874685527051368971021866996251601961747220111278021238352366942148151472660528253154925131087837315701176637899780426040337704601186129601994214848933797975352523498356456050846366888273305922774168909190972310275431903215578081511278576520147420260441494383061653621717007817484220273953365989576442255645430669364703340353000121352748982724955662686015849943564190371447890162605932611119251562147879932760937171234957496912134371388698326234356342946289316955966651965573495337120738768717946121068197652169553782797167999891988904862995442327999036562887828709607392314386943838719435575549275048920657437133219277242558507542137705301808630069183933169514306824834839333435059667091084560671071855678355322003005888445166086600540705582559720619123549570895532714701111028419049425667650933690948070033605809566700391940161689471648965749098586655119995722260561574346413923076568806181048000080141399777617660699482601019280445467931671640941441019339412178154380920323834253137630604908897363824586433628687275993733724048504434015664437121873098896283483983254873278526681598825297000603367537319183568293794970977195949877123575770257520848909493253798676716817046593739803924090041566923755303611570529449090425433386974086112601846609078156963938847002566246177898017965556252586613101568049835149491106879094521954388647998504210559235219996598772202892593473761677693710727600738030132323277393774192445875182518096837538837295724467428037099071642042526156665659215935690198086377323224674080671782158959362105412559816560000906212775728208149008497319003223290473247192232208873104634977530186149088436445085654713141227082663844015422702828216522642419410157405753720157112822805108771578069044706889809031799255053899945182696737400145550070502392730272008106128748618152534785139070278549593939368739629555804283139225908934314069582605087587749544884940545802692630441728096443767233782094130424474477292460604224532857972466837300060595389631010471609426253710541999061040373122371182751148444934944589874440699918302013430047920057687348084564229598700459758313416236098212526772239439983520876239356141478775180506830788308985132369556746506544694010882366301057240490979742726401136179986207730034728534720805856069539531535619851679303989832319878336926499048343606437758379034553181601221904079359778274145100689544181203543329503262160324306172508984347403963723481577382321116548348058201387202665297913764908585298970208608997471896155308321875466225408969878950092012623494019379061715088834984435908758366117952551327535284716270591075724833063773629031363005816037952378866836092787197374451253069967072196265159633740634933350002033030150142279792011045428479066217803804880606817728135566503570672119763116959337044244387688900936891059673783053918915797645654179476086477450340178037193307087108084232104515121078270906067026108808934284350131139121103204200614819850831525242940457196242666775861041285063294464953991510384302355873338552070698184502535722239466882717484964243123742813414006686376504704506321343230293556224660472522948101492686312754010049699536269990391834702154444104635944002619615099965792024562389138083657384818840012595888615395771750523528353977329879101560302833744230629080697304649181767390569927637165553874068455550949310331589909783619296509772879053936026167231107068657946668187813183855405130414674318340909209546449347861444040713732918174395094555888596350832442048113620789679422884118238169283034517401870412481504681941296153676105761400252166458592636548787029467646319739164969412270888080998134236647963414145705092438186596341635504091890023608201682412835689190348018182370424701199716938450112818330092723365534475010078999296194325392028632834293937258623659745487659634934782965424140600736664899138000382238720910126563789469100786618689621800558765794086761922600860861978331806477840270736236143051664199063079774113683050288998728201442516689596511582880694179099151114715832743527289353020965721066020942899012017534599089335525241101145026042358701525043505081994154009910388810958058936305045268630671381504597619651974464660329314381144864501913814249006614215846435337808446891938472758661817761472330497976698153160134909935091825983281106770090102244714257416533784959728984516287745239579616573732260569512202278628041203280447025126967256377648767293173383826817196849752295381062641927758134834980902929907739407429666422117657948302965041704152983364019060225557914697716275187244010550688646276522470153220363079764302931967098437405359574045063765746439170273472822545090853954651209346377310881223506598630175738755505056244619546399727692453172474243459851132928725579985749012776008122788776381920592823486085401626385269722839354491523115699282730198561230573488583619757744953330391049519511911965756264993709556208340322334007619888278175255941497391647493338533357957033279708280750722760854340110696708092987107607053478070903163138997128716916704696664291514154906461013923446052609502200592790883412642635994925041512070303874199748324164506349758433774590211202672546535022536535763187960428655586571993228979917561095933806590476550336544796579391098675456218229930640968260327816880850399740223142820573400714170873072835229223684404684688949558015465146985399859455599928551340863897855165103548941044491702339157748154005758546317201623467274348488861583199251774859793686498553739420383144824607825740983668849449051056081580183542036090539469636540344457849493860556601830592237932280267355442053694296646179563472853587616387163772204935688959956646777099806909670997382747179744238332291864436928292511590279837931604549000119099282355087497642634468526033339829084351762098765691505938012502210696572610481068747433087657349837609518084256951950753855326668569633330337815491521681692827982202933661603584207281822735679665889932515002488886911036321758611108713987267776577714571841270392567300784535255639594837908134412357081396025689736396006177322350675398874859603503057945378389253705266791786609449433960164203079023491123047454487837867747329195965320243916080719906810587878987822477513311762473902873771727178892034859291285422175239134640443781682154646617525432829180669400024491976158436270596434797125066396975810838518235643263848762715251812771103474321620511426057118753645358410579173026826357249020131468064975248465426614843448310922946345962192100263808130849083250955396482252054762941872469254591800306261375809818266503421759543751268728232065679397304556317684457847033198048824119141710177759050438793262486119560893024431120016948802654944538600618669401410769497598339052109544412603211996806808806726896373203030650884391559213781096062398806133795247651355450372839329593095065550350649028341110867881832187738059195832472277916337466482891390458070809179861361121928579858761339878236586090325163628033297336398203659282164482522763375371525518061878445900925939340771002987649798070146911299245145527735756205193407654520278254242960285216609362437766350472537490211000938802497379074125981329632728662963476322535982987364549055868337857649350794599195490141907214094234664430163368704491292848174661173015294598813544926333402964033642057737403462995038035463215566203993102735211822836168083080462375224045771331025610670043950536542922127777002984714975832299977570188646883400308666607732902945174252037704711970038916958633131829577246908693759589092391576761375066207880356270729044805444157659522446480251660444637213340135042486446279561953781533811536099516262465989454235948866045975572741956794195079396336532258534047874648642348386353433769672494058012501558129882912579939490692490988001986012745675764412738607784655633417943726091673567354617670961146392554098503708248990910919719519669299405553392933705032871936053857878341384578931882012737608629860112656052211926109395108277618792677950409131217379152420652607053626967991753189891672861805130128734082850892413684526326006338777639421359426552757322143181561529211500678653367818500687930272377128234714892443861125851509545751958540047475748115299256096674954718718156527958526181729966784371566040430496695195291890509102922191745790120145928036524103390844227372031413202401788949022095254032848870200812965225886469059157861534727601658150433085604900185347751120661608494153064252632235972587900207080986473543663509166887966859382664140474551872239825521196542477411027409579325137569036223376964901834650426157967382889472234477945119095475377956214785901307405286526176808607189220250914794493159362272314877962258100109206984561549181713196811397534181816273595472843663154644104314326162204876339867831960676461076010061263364197119268686066329335939049898005505839628623035115177958753347705451070837453202659115937021600399958388581348358601220551770273155104558778130534161680810128524099917555330961955923237309720511986069145484575739002844348494928277726011274904603678377645053331452967968158470754235270796318019887854631880573867402380949210740248712603789700987349537501472451394565153760656630323723502908912532459919979305993982588684193050123551797498871418971875855295386305329860150896809196705901118341514574666249610566687422242544597978556546648167845705230322580451808999630493622204390264118915478393694542164332110294995579013720186288107536081144701153825342762988395745719423624545193450638506533800523817029410942779369043837667992360670461298131368883923028187070811123400774896684649830006340854672888810944092614196115026385248992489227513867815823068830093900589187976435116356061752491076546672425152153961786412167891146636442446956275074182749407363467406390657765367761039783899623034032503134630486177902732199645402491513407706648963712429702549797309330911757123608253972468170407411454328203505385290200091070124491232240361225044673531735161204151461334914060723196369450705974466882426954342122268516403017757366321648755801762058336799529555955753199641163073755641475710377028915701990700828816674313615156805101331244948247470953341820647994409171530789701698344600087747556328313972608273786882391277513947997275393350685294485446085389850817633063958185232268587306106439928299143897161275821006299439698603874196958477011664836166323238218665680442756095467847706374975877127736559560162644262121402739912111780914758451874502334059480518780531228958732620041330133998385019237496180691914736011891896218299860524382910620824806289885483251981275735516172741431032550169897233108438405632645153073406848651367717244155164195996053058899204634124659494958768810059494309470548501218445066742194007545035953151342209725329513470514606362763935565042149700191474450762347790186493101691968397578225042566022367003782989956337460710603276673662497047766525651950699767818592963116176348423889995961586340277683070529762178277321314435155556228192154568214366924135399190820642974490433653690433395316700186310510695745064886165777687044168942378412205540788974166817445604958484426981395626607857027902575778845745351102305741246729258778744739518014032755661366977966551362140917682964386274634131792644945911486851779048631557069962108143791719232972033782834227281107582478798475157520881419997737052476984819134031190884413776540662255942828380913641303647609139042509668862043973813580803457999913935919333263263153807653427963267919140249136578984722613465547729116794279041727589239451305113438790679271704482773689896288212933466457275837470211831680774111912401704903893338636476515604158311495662438050695583761668810994234560325844725170339822803800808808467913175130949633650885390875201243595425235056596865134092414299498363651635841063138973366542861729098436603425660676582429618461014440566343866015726130854395134554581273806275139221037041960091449611229027702766750645695322112247883658317554139093698927253706138567599379326207780027422869892553918283889917727336999710100563952889487063728322886257349671510012317324409731623850846701358482131208911073563179860890392930320091538835270387143221503148472153948458879081620871061860957812708207028098499105755013813885034665808967642224659227361854137359328257663382557721620998066414440998554164553898550600169695157777061884767026833429743780278138286787566558745673285166891258690813075454928599204474203466084537092729760871697792633791858454456531240107596744851630611352472922474713013117070002700923050412021184219727308183832166097498439639532014651944732747552905484386913844566466579380355359716398657799309106440286724378106971759566008256237398143318084112842035374650937736046335858590695265357930469836018570838792694042344047350878162391056475390843206859544815849153632680279313574297463338881298597286930948281373298466645538715997969390824792557263255242126745492995181586242912460737747279815080411782437615945346278178724378628265127639103795950312167525198839246201304122481949169353615454463755632134448775652476295744912301326901479934742900887689950032375214471207850785559987569741695874264772865652113634139016290105217810603374223814001636021023232621639276859086489492768172163732056415332798210359723177971421653654529487293951718520469925766259336993905466457626098333608929264647907297335075349443906329947497626569762502206623145135299827633654739908004041374314727035631313787409766623245653008201333434920753035596814561177778983129435658494146345827716527639902742554429429654388611043298731091169140714774438486009893336887759980195123304443711291494199303234513262942978214388988273839651606449681979602591199369121389360669996338957843281554081072794048329811955172173110470917151687802843272661818052736975007721552309491544208247224061899810535098274280261957122866807205575491375549742690018106633907835750089336976661487153631944049880154527555779049992043064999406573421488424735389636147712087457119933321372951273849905398022359411298297892360378463555299703358743737150631423138788364981430169817659921584344408359831162928471718979492600263635905480110758291341368438190106788358862598588845906305790792717584902058333166432327175344352461323609964812264074118081038975254610171797430680106521559273323931405143995552713955093606453242325850010469280264434175856124794372265815479830655022147377316990303301797326033806316614724728895231636625837822229483344275304313168584182929470296897526915388926376683832290343757618348932935977352913387330844181619555816962135666297850402800521074410930531938463044241396198088317102278844898025781665568999470846955638624304835107262496151097992507047729297453142094517947600860552883827504223419989795948187562015556080264012884882023171697946132994990443170530634883370887257984149754759502944994567644178839867749874673760711279288654047683618783917689148590801031580041028169391124939151673719117025267837545923194569189275298598352309424450010064904903116107243820483778732545348780425395783819014305853006488728927009061446671216100610427942998503185754123625794169921045240412900226164453398887722458030670362473690478784475030105514755344860459706166461691589629160019327884488587977032201297470190478711465225864809124544284667415825056843598190102739473959582389499524646545237456550611750374672969839368004183388265368246983189575318644956901638554715216481843049046484140342869681952201537341988980653572246994922899014915514171937372835508254981570052684169819315373726832867656253881514127980330187666746808517398633297387899504900241181416742941355653100696988215606552185892958447597029936952966575155255898710842641456445852628367518675093477909777928536148161008355661193860869125862661374544401915884155574267947953675996923771419655761256480772006082881426798692082043903022202897962899882176112903630569017685109693934936179147226990683391677563772972644467832508077733879683128094438337964675386903904983086003621251392482515782276585781815018082228317497224529802113459733360628078344822976867574413051128595439807708970814087320110390906376946940183006620958236569041791793556549737871518594427268753056482271754079942546265824911591548571100016809762528849222524870999424494754227595811880528596713712093233306702229280256499626137842348265813880673127922600206893848439495036155179360613017047761896102260086059800942804312676655506230185380066464556816019609558186689819222294345338839986324028751877270659931257960307194433038543784476671265574461485794266521925743905116164182201511344280572561483800213408287309438467406011986093860661905980548158549395468109966500454717681247525725808706679333921638922045137213304839876696135780437497760055455652746342784455263623180304931407229329323503172366066443256322122142214521918224186086236164192519333431058295387075336328896180471520819789557216153676889158129393482931677008783498724924475432179165004968344230568146297087884017914641113215205785216625960036960586133983587196714972158243452621717783202577373236147903709718304799404643840296457519051517444328256476361074391514401110588011597253667716062208129081603643012194192465805260190355350231937597571459158832579514239105632887010760849618534200079252580750020535448858192847294702369882276484594454625875198002720149667022640853112794320105639399959376789670052711251628024100082592568671843154558105605580742494589752902190545569753231376833842772552293619116148187266128813802382131684446700813634173059118691096532385265142607918904739627444108533090253971004814231987267199114713849032120138354118028398838472650279403313138348496502194877445668060768495692417903437376186731213156982871965000756814767092703256764786310097115465707041586110305900972139829930577981399228236951323026621629537324183535816724265819583346491480002301684193566059476090225766264346918530303607870820996080302180526667658079647392563261068405679298511023505526009592371399857795265004038080205549448606840866081677669719625934679842962633861505257175242842553987402347720462726663777955238620846708261811647545265896836458177029729296787540987924900698927906050082242891736313266253147645030311295739020811858518375574162127644196812341450246728060312724936094670418737071910861689041938552501059137287038732333882838773788027270555659326387161404830135845606860043136030522372677943994719458160530767826261019606949203557006738595032127101455034246082141691929935843927797805192802536589217344141049290885811794626464151499319867635272453686767771434314618542896060552237302442527167763568372806293582332395362904161731416133303394989292671455604829504229961452123456603833172461426512553444428964479716065464337269087206011379065327087562396671892060411359195071797218597513737113734270658256431301614591473631077408949339900732837388690909006345741517067787755433058524868514927097189570787614351740774661788986863389211713259542942729212504123563037458454736677549255132971884479424332208129057751518815208559278376884311914207752497911420309814943644878024659661695354224542229574562075880282697279663627615579390919073290149285207091716368502107150849772995547639776797160282649171422829411705260831693087295991490578910584421806079497500262937036365512141093397861410436774573259819129962442163437320930544418895676365191412511818073439389594299626698349674129006502802295431697935272133403843220035821894353162764458425314966258341032195244252269763460527523344232303930157244057862736385251901692939236315352979823243853260435298860450031904747694741367385847351243647541806756284389840344533251720194972873432990910624055316912792812338687567492991779547293663289010786643861729780942071085431166938668091650291938610409422179798532916228823970023852767812584332807935583911066407283797095688053506112731453532958197072486143420921403650716277178499880525065615123906016627867308655387548081570827581572805424567216721590400691063734184819659221831217492397025388209378898481752901825174603039636435588053606126026499047301519017139774138031760959320188347468119422184756905794097479553180732324313832796519131991156471496967463935438288145008640113230653791194044972276784057540494094335138991019346160373817481385221686438873631248478649300158499690411763660905500024321851446277408915301918365498834759418881072756560295811613217127157199771842140287263369366944995201690460429840543909637083721067480103280627442183003381513459721566646873835308654495648132605541606250841269953575898308891135333045934545705077243962525753057806419522274251760261058713175398123717528258964639282551062623458281185710436752724492486472454217513939179280155705961828449937418695874364829295230847039851315966430120948369654069699439653647044847786162495688363055658209488782019684881740048578175617471277892860660905309444729902737219184004099934643765853636624736197792322623134409918459572463397140426383255580048876019328111841925367374292235182020106179531415133896730543880154658300367051825465632400460660237078035164708209273610664179480732934895421481441384622321732468242770838475740275372074451361611766333295881017500124711575742254597361940561707141822187237645780934286126765818741747441816235679499629231155297733481745975799826186985641966132965523776521210302165527670697479783584082244402725360096025401567260612816330537352814601083832541539687787795468403380603405057342522511406782630408126044853010032793667338921386159217088673838372668228917184592994138959486922530561485258000783786323321458341425926718688974805530032266667636604096305336339562228250291138211546323173750971641003356505353020300765780021568984817550756433442596880335164234840130682007063111129665834754484130622473526641574400517891538819959413090344455258869732132982462194043968010402204456459100055623653252235892920019130192866155354215851640608778206519349414867356727968094005442931926523928467412463792562986424706451517454164554953413440624786472177643950557689697712100200098864980411410295585649269373741404311527608499746636325297133289177887064995639201056934666636293330133543393495076399689236938343708398075826628397492179698799755745320995906840735875837168946492149779441681465665270661370099058870377961480042468622364684187626516394767952848706833331155788674480641251805521888897074040155693269910203928223740670933446357505303006603608883521376783146189238860516773368355693101494855306246389099559124842285048472279800615378009840612735359061478921630874864998715042147016356578725087474128883365491567072532096208178515891585219447097797181017534803388093926038355647944390262876539955759376360570532362855780165971207076235316556769052282259313328546486673813280220756052264298351378655585474952693564622585668320189642939242698466909417055491863841421340319158195290066858173625026791205121835250000263523724892077185238376250151444786479036330151293903532776830554583176457056361709752694809213212627636420785178705620367598985546100271735640026873730594779604011949363596875802258618648267190285650993495988173123953158619565334457743045394212029534545125269085002403755614608840695003817820956370240047613615387770571026478633344795402809647249986133815097327251195027116024260293297802307566942180454812503798995976973106009573633157011949881202320530466444084090335936310964153820662359709998091907620415933188846413767565314551336140161082566542271053160719002313988213085771692742227430764817766762130840155980250177656799704062250682664913060676759656080775369112777742521824057174373188970841219877177194307799716738909595112224963972995775938973425314149308784579705585384214307961582154784933374924061126085003546355305916846954967957092214171017060178164124017464002575216021066675707737098348207077071851756860023677798239872851890538028123751941778498742899980131678076768784308314036626908617967658303248446267833654248795998051472755843533477422496374889628710782753453819201099699394888982659131888085479215242850748620191809863912482964398430269301179274993844733501014801161854933606906701226912706415356110337813893681059917271800596567065816927446500815156718849862420924928238771405476960497018052458104711539007305717869057699379786419446585088459327931063848678778786981097267170990947513409672309820969135547817135924351831595293075481315370024381675694366155494671450775266467603506725715597283681130768933911297822738937952465994176703910544931568075593685806440478111763981050825633968987026091178046819473184903243002039545905962853467085822289567608793350492953359489188627419843734844521642599919077344740239543865781742968747001717923134695580557755115273348532734753847802206370786020296332385427504394181595787208438568288122469053912335145891098002394412454388553361752308000508998630193036217175250471943682472348084101478670853244122093606268885606195897818920373338026468256302699298016393137530582095308442002451250345092768362702087070884810332861794048908400834511212676919719875232133765946180309676556590152071117408622251812480910197809404493020552959052967490610401054358335163293126717226874566695774761500880348040642038297843432277430066734694895387185017002687083080736411679119261120929227852575250997639392351927120880336521268495826216057456041451149977880566329312818053288650064251103473518009053619095012663224961390351176480807269839718486340788178589530342978996127441064568316326299790541415609938845596490870486014247610802247299378779436495310275515732161114224180752503704944027493775518418231903680933067425987742615544793388562065478860593580304541490839937145587055317689802152560379435351233655339321761128442299064608788270792667755491770706957880430667520883165648064417480829163162034397119073791140459244674270415549003444282197959291335504296906495471179182088148615247777519492728028924732406159433299137531958537988133000728892274217043973852552784301550520238687118893420531416353354073833377329299090532295781916924067926342661257634919816068092704714903529160702481108700647387726413890630381561494941497671533624796183459691690801667111126816897441729258732037878102871215551834660810255977929461964178270491193320721709325446328274439272830041705679981876772485599374928351847341514517911194553774358807342203261516364507845635420222474825630771144419337007980530800674840522668814039737805306870402651737495839730890348902042455008623269488180216580680039464877545329849519206547088879660925841066154816184825844231620482894130608388386730825773044071989586482197218721257461352855786108219636065544124592690080834902082421432907074920103859516810578079846627411512753698017660829934560129281761202784974508053903597105878070671815608728894300570204936772115497387827198992546928094851692978425985036500329962488274758441924338402586138828769190731926123776987781168400737871115243797592239550655122597513695587572171146173475064263958649730857435740997999286853902765644503895156301824450564234616373519805181706409318427359087301098565703886068160033222969824209128206612455411416243128388719999107623344692379235888909719690049031119968879227290026651165564978472468813088518613195484494346630349733345507048657344120319284441956932293941670467250709215291097399410426316196035823597114660648271071272422427469029319852555945386906648623871806066406617825194858953240615028328654020839272025143016781894008458566097411444318231871723884078730757545590923070365375246860570229653067408866852564316673048827427987670097773552187976367698166577610095066169984587305383937196160044174424089268700395712796246422273337808682908768961773865774914111621793846309292073956483434696440475068061968673693708071733561104061803443660366850603163536770378455420804460921639752592418121992051599159434021099630930938079849501442759815609773077934546303445238213446874596960882187444945309826383931189825858179586605722000423018473145097746012896942881515797147325658491337382996193933037407219299344848252837746109156726809403425875301462511144821615364140274886015480341393758593374472370528343847587435472310538078715438096613261039313061108436251394010356761384330388138443753487135375788165640330406751992751761352830116790730499386854591957016532205454749742895033513419204118450097698337558481336582313951236516994909028157347279701677811776877383269791282329685659380576127453328173260507382396996485089165547344357044545745288943700669020300166755100356838943134453555343877116010794307179307223621913553065586900591868835293572109213846391927353187950608227371513153551440394777095637208678271811138767986136622854198743902907965961674629569853968633803058934461537977809358790811650798433477805686016211682821055396019765118576057371164267049842907073208822939533682071267152092450506776102756095226064655953154456842477188662979826379223840007046998132438054744293638998528053460050930355797358500654645493772068815289018060477543261386634138960428288485859867517835570948747723752029004946078061927702208802561910841760517515665691414233452672924837835286685215144324554951517366528850095758424183276317941163955802593965944255047971004630812776643732749171600253010025906099748396273879217509022453140835888128271621665077057536118151424632570465069547420241666192766579369144473439833137685611020793317976417488770778720616180018387002283801931264423762322604800855607400196326896529332527406061388595371857399249879380738705467251416617171522482263717678732130541765619681377069164046487985880658869023799980653486022781222783649539147771407990931940830414041323136256239236080521487782537263464600748801359007956864036119241717054232639396535712007415908771513520304673257537711748860027889254561202424594786571025748608266678009710543509735621596533810562228314708348110397037094559941119447817398801982177671686620419423103723817470413581446679826151969150833174364359989222821348003045579628788636807668506893598229098175470771152489663110043553770312883695783217825034290159170663325769295539028852875153858281451250016090477297581202900168632431246647802583533917876509199448564898036145785583962764384915005725434819804689989420864622186727778506820035485810446029698536776038162936286643398772883032615002029460422953959235513643287271473290580546825437948430923020204972950940731151730693212541793326067639432112137069449933907726664555113833639196793832351283040840490513763080241723111148211241559460864531131222403727654080736930966015777797470817586389204753973595426696923884735006486905529485350267971121011963567202902759234413923317714125018808123281508206772786882238163669086733040874259354438802578235608251994749456782915789569641761522809068039103253620305466689481795495849261106447147814372986736025962978985714222830300782217379821570132420239869273794504925187091445147313424221684095409563561617176211018557204009203606269177624204301962637364292042944427886800018302564371037280651997816826206649328646317261404200427832635538117287800887282691703739262957775710104894947971061879343869137053138600234125206993428141335451950473385701345502374557086424216616558625283760116718537672974709355645178906756668871485678660211937211093123248521360332815242278152806799563087139662509974541259941381250233583409348427056868242190654774364732635847765126204517602471932199017795851908227944659409677278325709882299209808017318291264883424238921110141398988801006922339484760377436457571064843699772874212791943632177475521112996436376974981740522829805086498476272670116884336652817305708182241926626742455003970067279272799355774000572066021890056038844462550127100382630137711445571890007749419759091358406760839889566369797625645316467544534058617933229292282945148376293840311220529972385318628650290821511302340657248244575730743698465520134643258391085148978016742227638365064824954456460773512393115794705872093752169605357298685444330213927230099497690323495565160904117651827093976319890968091712466415497107318217886498272097449856484459694018681879432455344758311981519490168298060632518796064642137312581909277553593160403431828444297921511603279433220972764641706213209640637103766109535029717220623684041583323334465368691104925504326961962460454341118557586194802799950062833215446031087570997710085754418520866905262355669569156362082075527017080559031909963837189012802114124567416046598101946692838196656959619436131355620728899841204877084222899469244391392940030745386912637401504268065279430267947967487114744712414195676731042244087322792629032509091814714435647547070223180641211848979889449642065964965537395317944831466524718481433959848499403413215225174945938995753418445906504430899817647901644731457941115216688871211942040045632820244940597458609985463060616553543848131883533429821707957264241564017005251198749810653654520077941329990094796451790295527509915729781437430348570702055628734481333780023094567569033849052895965347948773493666096932521858268012399920916420922470251988983400527957209130376141324706786345130725485326511948299259365330719533513652441901878986570242638983070837294584779399431503339327248943221452010288121891289556511457690267841355705255499817297802694264709533992455385911337009453585492747896013261157656066532667245234401478161170087744428913319322718243517947824620330039942051464509434631366869317679876991086807090443443059339980904398925649118770724479231584808843352018371363214863442825304447601775010991125317087797750517636092175331100423421495424243020714368046175503984364297952640662431412854964276768759054077689132925262118058359883755842227335190291436387140783002118571446583346680720014190206079157099981690021665649919238139176099282272505194873102628863045598816654706963471256954205303063506162096441203201086873285867088818823238805696211066014876411981014404021886752998755168100933143712470721958811500983405999361558985640342330837650813034584661322004343640898202860453720234674076908121390458213243941026792982396881734303240363057074896702310212635883667760111661859904744527858817777709542765534639086627616438049904616782989663004242631638437086942531620499335296092853720564174855963149330835897009183140465693244396578452648008050950954454660108862369445503799369531155474079204259450226859949540759140777904014745015155179448645200612413331043423958680353814185342658105073613305537647871770051796715303655417328184502510961367778940694578988552021109999101048270542914341893223370138266209069848316183315863745860602915467887072104322717491213562336562618783248660917248671422103434518741265408159310509020558323064408019526468728912597219768527066814966815975248458800932365136729441855536155120356843518910745085542423824050803600938218391130032148869321354078364590096344475624547299199425914016902890652365026010292473743432460809758217026120115228354344733401210436972624781282276220942276703785991473038337131075392877386583370559143647252985221495680673294389573577039436549960894667045124070350183789350855181373835702973721646541480692464800056354023324072098047431881330466989211479666049262694832671804677137085714509618989145160787406564732991940562698343880948341418161028410659170903216774367027565996339944004499684989893252397448797114652925959388715181935814544845607005877730482145706532324905622761796434335971363320400974080162124986755527338014550258821205481464405255190950394260643214375226342844205024278163796102104473811056905956630745891311590440899992527871037385996106549996747152484740411165607197393274931940670913461593020831816767581004924529984649491548836207423922360286451519047787749909321616886089563650627733882291266980163420731430808208447130188803999510275702487887764905208110100649703422034334838600669560562534500845837665077357707614253684495269893450957560869094163631808860302054919474578343851249062639616006623075430450659604585691627366127627271303776386185111808800388580353091063278570402369623741628153561008345478252542755475524400356914855232238750341529257976928675502651279223005225170328813039732970484964781389184584204831291667840387099727506506961390486890854762077980557816561646804686166521220110529524919654494419720852743704892979730391211001674541592457503806573577019205436967855893812497680775883141065951085870436830346259419176597254627587714273142850069524338823954279053328359229434632780026443097899841440913392911237816238740100639167389174992461083265742876604609657951353713336955052183839908715366883155439779436978536737197750787865253411930791613579864574000633662332016385638312580105534227782442614412436675265259017616276585179594912152062936600091705302303247702521107760290482001183285609182978917044738837227358599737023438749954445712329387489664930213865985424519654117596760612912107835373432107155739913731208775041579991238495106707052090526171318445637700625349995520510814015107957596754527733755552501169150927385809982977267289102960254758990763016937296972702674509260569689998248612453334657274303456497979314422092914438414679859376654763194898176191398722563290546078549016178440418102420551009152668683245037713757459680900558179793364316269059339832711241340159933655673013792466655691141753291954837824025335777904331270878173097730217710720202876252175343483892579694482653973286612308526234536740811291390864296215996192204813826570282289827963317186300140833097200928092410348271325669497407165603961016488212430431052892553851828779671063424948512384205740134532441128343937958551752948423319483213440830585375437483213882127858169187103293180330549987874590645345997038059654532792447642799827237152368360379634051149708928923833600813084643068638355844825079938013418247422775714407533032901583213244821649761711681318690937654738544720661716781599244191656768501749294693432151826291057262341503766022725951587412500406395012243009847654815260528568173341707933115716199910236064419113770456772418772587272055379743381826895216925623539013062143321453899921975208745986696013221297847483605116522038534553940557858387100480545965796558367016707947272371519136554361923007949805737408908236779936174329293881460852713329559989785114521936893510797254103148223336597982963386009466493148443808816653223400582138998223364381003899667042489602629370463337463435143237942720410495753340998717723588038076542946319864631002068980342174981141507658902179920636266226643988868564265033485782842641331753042261875997494756019180686643586848091768070106079560421404933544500497848127771815345078971792358722494531724288391805899669447140660780836081219190570932240825771880809867947126411490297324494469719370675612526053817029984339289080453172414211632244267632594557759905384496349300377969382873249772031554523475833857645991336676375228937163485006442563534706989038907713869492450310387354131266563772373381675672343716528559291240643827510144887848040963612366059434702628576642790802655163970234380942138025354624520390174586063163792777626170316281278074604673724358506918580934522690693606629102082551159145643990817861356817359504330048275287986320687879231301558199225582366418364888273255951967320131104027612479137447078150379775866144169242681982834921971955601241875754263864964198351555584856221285025609673095727169926563262573754424088543551954888079630568580699045022997390222071290520693063027343100655384952189442745808796732361131699525828594850862023114308425834687533141576202946409268412458820165031272909447820494012075775098579693465730820531405944589948491560240782696050211773535998318071600646156391634965070062475540677787966558187865397888774123257979433580514787039148197287519601200722219284861281965346139397415186853911549605934257229147346346108200157651972715641996173861161139720079564754832829397242029364183794117462455275296519992612409096479178577362112142757783012526480839190424096291280992334451604950786931577659801086523238320307753621149428188054929681731088672416423560194637991203277108408658898813351689739966698238396736803759480610848045066667466737081078397020226797005431469997590923293523770986868929051790794231120723560010330413385485733078911660529496590598697029059546116650096432814730813798055281130003978554504401319364708481032020360117123396887477215383255870722877977191909286147891727307940122181459152947651348877492266437040630298228305985769189434319300903379401373413037393270216055477621874529708661696716880154851611721970827048212096555978343659535051082827456587180061558761631384014932255394199044006351987156283125307439207218109592355693192376379331019162371422020883214199019111782353609733955393749639676077085217103303029348961606342546437595786760043899628131802568020452774572874488758209045345722108186812986684556195834919645919045633563539944766549846648370778759871540035167595301951662163832779535122114029289653630583641480513615720384116022362760699805166495305146179794167675231557549625940297474470174147362877636775565093285446141752889173203028762862643217939914405088312419362912759307306334084138495764352032344547053916584464356228760171561943869622204944151407143428819432919835696292664152434362682298038393523937305665869780093234118385168459479610512028118132145286590546647728033100562447229850590355642026546397040977628371234967584742360571924741604310549638223867089326547951747843566808203267480863342954586470985935037642333548076444528203712343269654270010543166060823889763624324983475468475223642679707586881977166072052896125371592852199222435421383120914350445166987973585856901198525452101353444509076770551716412283456148083564440247531750334983751975035640284821906361011287199625755148682228565145653203806645480668579705359044517681465083233100392673942749609667297279402591492833833941887377283028281979662827537918568181593377310072336261507236954044387897898268508858481795673961847321950196818122490059910205162386991835802932127476419712979531752346131259861278983605823974595935568077686349088511487994403749952625237115861301343307840762717413378405146790180964997850695379400233753849660502427022725591385533540409603510196693004536653384575372863729517801208294687921862948660584161156634516592824142994101987310807402244175667255985797996304448586425686337012273025088434709540029681800058532021408836373191754639684167445986664785320682139168391176725679066087745643827933780378254326049201903149076977400957326686928521561308811425434489227251351854501727399312890457178881513970356706529986873204359555087437344437895347445947383960543697916012984532118299515399920048404874042864675505104641023514450056502001505470737824370866723428602939442604158181322425924468153205140855541993984708453341780832753228398786325216638724004049292723168803158364183747081929846867637547014295805250568442873932761697673151653494005449057886754080129078469452727825044133525218812015175387393588040745002689805735128226537842844827775883238366021223560265585147687645395963660257200740895511160644967120281738963383985797737308686489859301840834470453950189364218762462546684866353161713897649783883981228837018809024450742215014863258263684558373176436838020384968869757468981194249905586037281253601136587409511393414950591836681338255120048522764581651426942617411267619504139075178535651273466881098512652741732036357257933868877983730551894608509035896065854067381893580288782491768664223350898090934045537844108795147880259672878745108875544163003396933911116763918088095259719212244985562074814821363081530325204331056628448770077972871496745810250569325201024599201043027922843885796811140795604591249633666112422006207696711360399983215526366939865823644402144903012185907501124916454470806038943791736673253366248621196720000743714815428837573671763453418825224393846044479339041089709091377816416134155957671435574750069502762020513215752235964847036971641682742832882962552368946556789046150096747088549997281597742978671595783277710233895177548111779129257983883206878295949778645401194999961377374771093535262863933318077187874416335842850756335217970745181407558977443150924767606966981969451056746374016947898089372092486062782318740558478092310443050081036263003923201418053536973841982083140556155651440889657591839617905996127607829089334613504888461519866877999668931069991691414402745783570353946035454737953631258383195449647078882602669120944782368850369679754780642622751167717822268988419317356869232817039013341373836333531025245795732861014082395947217136276474038211449757420421254246110155645432043237253786599579804485602509700090988874403535075250911667746516148976841743861705160446328461978685933309678640622453081676788386841058214081416116605635201422420500569698332964984460638572632953287334018054922622307166345662606467990074451862512121848223494409032575720916943615997407601538466366900868625643655586138392717061987507708565299727348646566945530681925219281319257712829299947301130770050078413803795389212644980201770493273870015820366395850746440959194361746918237244983881759045037444773421744822830311754316309240681011316855618956680246787059066873026804511729966694892086342982611973517898653108896801366553749318570380716043897423156142409149175663286951079758773428032332379058703719568746696601714320517542523149721715751832909640009568074771694715913882029174430576464465804847599068010674222591384455462843570895871322057744159033063663775770857698016291250470330359566945250916364140250979971255877544234929763485392384026016231472790962570187342285628998529372156589083580596343648884757968018733351604790947245607966531307204108674682603253175208309232262210400565795791274685149521469707803741649136102194355437262311470664799244845177182008589826660421282053886895444391999250581286610525242102551917732952524890386939871599922428750264079765186076469065470451690868029434568903494489261876809796353058053664751955033034875163423804986471271898077913440334314786155394997563604265851167207425633765470916071271671902058771520665693465809545900761766429100777001956828912379740031070953690946658163001300973528495988792989479752298212803710354282424189940014005712422343741595528432138733824664222669882880043561889973708997959689532015418913450698228929549166269876961059906210414329786478524925053731799329959775527947151499097675115231511242127332790612862524457749408757554702740354369121513570776165655085996367464182852177643418041445735245191828724304405504801551958898219600700736323737954947680854956794578468246673318668832013000416666751175554509456291520377146044842462971187532189778708363393090072742097986242751055833188676768131060966274161308987974522529600483519332846397689339035842171822999540096488925790922895664196072152206884264570386001372713646664816215312672937945680784947065324975204549565854772307305378335966182424366307944117218016540884390961371076034152807291735524104723014646945643633336092233361877641949330336141168650330246902203397599140856856625982799047976848692167297123630891059195666848483619829598857042307430516819312828080599172749843954345418124900520478484972326083493269430811141384025231717640281939767476862372665036656555006549378754241395777715953832926180374762441309442233324048621958690207534447541672833680413345479824892276314212176209049933495146087474772119336168429185542066241349742782117228170233585779580974442937605684048342522862581779944916612269012494447056921002503153706642651917887199841425402108777446081733974472685550693977936901070545142273166666523243109212999643013925853000861681928860025936526759077114551635558177273172032150282612886608472706195318945897151747287842414715420345989397218278297847020764871832303498318746481902057935305282929147834152413931611568090427751176756733069582060567416291653746068247729543280350494851963456018961960153230201097987967222487735067886623192534061343869292861375559649597788522078631449263202831658583361913086662590310439247821812622220537445519622174963316106880229328078959334523776244086305695344768975425601184192560475634916914195674137785987629939360318494177189608655125460634338421846809397286119980185642765888383138000888029459508115233935889766761010317839480971641067980950172318670190849040292093593136916700644670371733893092647276004200684243061856904328293073497359549280580406014888405637855124599697307571039759701411378166949370873683032131692127317250729163044149612460924281577437099114362706841888930124964132708538312214755013440208672382467609308335701937422882895469014239465519613065055902004930999311510058102823748363620827384392694187116671613566566523914404928332242508473964196806605218328650222152131506741074028315326594815457613018220351283457768904860964658502599609232458202173662287321916404178340546828077254241890999279680385444145128884914034738461001794088576043165855051308502880204317007208851885347292374298207894999113108509075671012925648085172314193341345526693195507081945292450192413773285313499975439699123918143466940836373882595876131029983664370583068444366301937582001785642793972859230467215868990202351975839747141971177596462597588996562465864680610173672766967915708593741947629078159155371123372045930651708558637013969989506700770279118149212742270838294876683921435236284874499510426257165288364383102182064794441707069690465656853506075313612649715764168272576244276080409725557529888196544107807056303883251587060880598680347570667332952524836439908336480136287779683546285879401072131932785719732570757514193237932838662170579155957896817365046359655489333719297046161953142131189051453837521749820471492326196936211278929364989866835211559005952641854935782220093986334985105802291652481801875047495604188363948594724521003240299864219045946628442265808806471053416676337932673774058284684534200147903156427911948471450416573220261265905114441444452666238125936342573649745258532631684884442115394471614976665434555540404083672929131897414750559055381448653331534025065855132711346066724027915224647839554824641209868732644249851149970978084873974779093868814048930627917128836306031516428641995703162887578334074655246312062539417912897250881806818374559703444946446247073192553780378847481289389289895437369226972670451352151161899063194276637731947679209721282287641159771293512362615123334736740945152432987088061780199700754641578821055999801399634637674031825641762082681721005795134668557382838751378680449195925135091974279751307354325335415313006315067322649276586447277475075602571542375082169590593394747188860029821940336859220650452797292943929338623072848304185235539882668144281997767395999378736109641840032662191367394065660192161356352291296520137324961064509467339514346500595360885896979551471163457162217236002925923988899798348602011535532278034244397605306950659396453114918274330367303929511187146815948233457122780391065708435999263245111007451429010673805396612929654398060649626758742102509756341409776831429301743178496877677547282153814648664590569818669284346907538258777851223085011640110307407336765873325038082185352361633004068863548147889562209576199925649896333039896685611707325219048525820950000672167387512383237609577926556964319476339130992329295118933418421408958668295182728685722724041774727688681988736071996488390644785927212878148183685283433979559256463848849827985947499119056818886202785051687622206735332073107758329191137501431180663600225081720195181995096902875541940428480596679854353542370576713545197531452007727328689268390935600803777149679957690927880568838762764500783366060205630040215948006904770030443170910459234351100825083983373893299300859216098456787043819371411663900532385285399488620236628418490992994171840406305395866273799057370997984642124945982195635580663523183777695048276372961054013711092994178842088687961073751281500943975806246459363103733129343364049821802851477229021051399585326992125150553575780602357541460553659607776501011172026524173002906045592269476933780862724840728181111132475309782508096631271914848074827901553757738797470022650559397459686384548831328960260792801399963840634504129335021757099701759956796515122240701773183186419604116533130738731513505525279462299143586252547495585299812062916376754982806872555187297448428956307527426941315269219637835946969560396110877528544951139451103260670406854821044412312696296743670970401915884559339126167829785173920144864583509908120778271538718684826260691198717187741587820497001968717897431600030198342253610346862533483181929603689743989850525442216959217630110308869573674764821333538614291665590702755123146388106233347067624194021173493085783747885634302218541912508229283669914203215836013425830142827157019427986917128689834637360770957125985577320956951625613916235059715932017431682234194559362804773251725745153202891017149494030507195661493834596253848794378189585088478747595951009767064475347508810060857416946133848569251941254174701053976969779172433633205072649619580738216371049128340098960854125725401047865965071767731490225987046140428824826943121735640289933948340242957736553996704995478164533055643620240730848777300259313905202912982223857924137852172593004864703710543269400107731141378628383054420765420905652586635475400431090726496887933961756756472225094187782889979422147953811508321426574825185577257083941006541530888717581108587211156723122518519839496664783797295382867914556071387194697479850210319114301352487802898780949862345777402129573817410737799038659237069470089294618926076760126321631857575674862745444139908041186075740556613498579188226228688455822555027468645000030586608843030028711173582404546851948918496372442543746799451341414872482063749595300204175563497385878873603973178749257898048041193105698148142417752533964355346314444201279170562945098460691411551717743554181767486867427604666895676496265756143521960659776967854500656955744750430547504289546954792813012302558276261212594076524829303619976571074379665474955819848328482922760688976243257033709678566952741250180872398872857461125360204748636244749572672581091325926475331805003365095412993816675288151660821203733410680429958518615080019540555602978407543566096470754360649668065577933294805901962364606860413874309222328583343699609095071136559373333224581642572496323834791072459240759542643597447898969673609452211580201498950623221700781528072457615625353421919537214914299030354547684998830385515957152064360619126286439369606890721704585997424979675877849221937062196996126747256174480751007704908393881897060276699005264910160136485036284603060999698406299239143415862948245620610733386211671661591541506607424091023722879796294763457644163291486036982750319222071332452384991762088497036782894480217339359712059633672693650476904035696997652397981812822045326567252509321145851693498695141912716793420839434012081258727663917246063895122958857898310796054983250879746854980131706029761068547076690191914383699624587401638263937318223532920099097985082145415654378679899618681900319199768874282720718491526633993903434284209952135990186276229809993873248181949903232567751032694866742680684778827816742515166767309388562374188699087117217702676130791893093538356181842914185679803991251452424496081280859239562822992871824254155006841151225931773222126951442285961285113841499950904378105080104516420231362965963932231441696719576684637089783621463631684605932357438555198665233432669288153799424847205391742370975600166662745298544126323745584319746823463043351089591843671263180189657167476746421235108739238146356868548991150121356902131131721140929919940861216292545901333582313998504634214740161360577707599265918444564150173827998913189321407945654465475847809590316373160967998367602920052558075370498978212559082613299941956862149463668560466488710067098372519369760649886165592905785851543811699314356709978237535286584287123003124546033008414229113109439096702472455249738569944122791605464931808381146190240933783493155008231133019773043173945560884223473968615583996215519280300396855713385832688888821587371751199368630482082108400052758793944695008564500682512446873120467402958204073226060930972143376391879495358133989254476235118715260300681282720363335462195988875201770863489092134587718912321067208154944686105060119713351729719324177619555342048470776393943570569399199505937105091805007937742145155849831351992937535393021810709641575084343890291300992165246737901714869435370863582537209931535807075139930566283821268257018769250042061592754538065581352970828585794902241787112270818343540173501169947165264329515220257665200556586934949908712104848704987667609274731446293349260488713669537173396997876960447913019001571117811624785826318865222605106964869089134601739055654332364709369753196409434964819460493030712874469911236351016001385527962871135720066821731391085283811627873547189747167900953444348118614157736632365023714139803210598005098525916810528105012499495164102606865987426536930064598336476883965384686173514179828535736329663962047726704600930887925681760854397136221209838352356440448650549446688682003327118627811190149747434118678832596370288955378323479303422853467916160666706507419967975186037645434949709167087754338807053383656501409027633436107499268848354414794694004530316102683089797641162521010764867020488659854379459206856481575231733838855497682094460435285586970651553947791615038429759715214164973444017013474117851730180611811921580136624231357932254051145408052493575331079996560041777710668310946551698179256568705057506237619982703619935367196507623759693201642262460270455017683216932579320620616610424600898861526970975465772119589660087289359029252051005860209504519445376095041506642080757543276791427443040512391633134266815670873866185583716524099788012696457765892950174102675930860969651163155193927092449404404087221061667321457079210683983431012950169861160611221637979907076096704704161846258395420317842893785742692002758913606900228107893649177090856293318719763340284448477558043171308404442784671434901211490132532038683992581746843297328948263901161226067394307481502029458513318554767347696240420838983074711505540708547652724983930526125659773042305092767645468815282296898007818413081206479853236931176893281059943986705338737562056768265345149375037157083574593596755756211016605987804725532626619384871546790624247520630726643462240650519270613327660144998332374640032916595911459066946159306547670032805672318379448198412125703398535784607774683288331728867740286258856142693539201103962760547063322964970099633548492375940714862191398866470987011650884342462026625170560797856314856614752480899227852702501050463301963089570241647165608719452268819117164657559199596038144044738952855102143635469876904987137536738148014513937691273262551926348775979777266756978184700348961395624476264937735093521268187429896797783016310104186976985327488759923103404493619142513072999754595188519098651557081763532038529994768831575011535526872000722197886685950145433041536964738518498858356090079377305436099922946593137465349963263903590958119396263007601056110910554889561969155972580669745126427751158197753169563666616575246868866237665027197059223331417043231883830113188640169023710840434017417618868262502752851428642918245105295578166991843939510698156839498572648651076839977436991362011988280757628457481158763007282724855639761687489184201589542982417819764587993022832987275321368830056128912310198369406910623836719510334674148943359471677465300665711876534496233626651625881758699588477307145940855221283718615610002989753748584638719445501231761127280166789074920267260861651276330200132725785783963598772392473032089188800980198938589916933718776628155996184406427834176062110265367874426285888852462716254001186017462901080569827911960220425272924580157650278440435870812189993898356367958742133518276003852418971346327321927132495806667217114218915031561539381572356669136654388552527322407250894109596687323684296558497187063779230053096045946272292184297846749991897159683665866041870452647340308963093453296528918023118100961245979193358296169251391942788187413502448534418383784764775165208307035264442174406044278931194673500498648976087609646190822787175373737654973864884387267983261499572989871184275991533647576169902284266635172491228444503641582911448195777032130098695686554684554286231889371414933315510031711996730311989129354293750975821771956493737169571211234514881297041599462158664962664269950367515948273704344295743160857839998420999776353050683469959922741544587189319402442044837078120180733979407546378665353192365489105212116616225017864526283515508463178832748897219763861453410421943184489045184569200635221588378430901968061149438996975447673871362247597514906510114559320416955416242261240432734671626111158847138963975973669454776929797618350907303747080685078889815705022315735175029752254568505104444002162459223976532088121302090621302074415020694730962404496902824544772084473502241435852483769413291127681884041335889721530324780668363204177475521991057839391684375862099660829668731112837285431680405594095240683269617193477282595580852038420614462047416786876112346645440481988123794667747623499500538411527738848786772092976746193728061470711796475665645216809698421171698808145098947617594175557134083467310552816284183099580406360075289398348102905486046800198009931429624272090408809782440761694471539370238271294395531544669423141364451920338616101789733920517071274713088479072954451209408984394246493686526961939433438559297593660325336780573615260044774750406817601570808749874410608066511970604556340763783447757270003252589052747530326773969908952764380359801565883080386143806333833886616708826979596937360549032501066534845440952479923676369284915048351896896297579178582208223606780394470890798473074516193697796383340766152753995605975016842737039484430632249143359000742650694977954047293320738885738165345623623490196185405024834569506905004520668022816372223962785667333050650668305497400309197058972662530172142947632259939989358981120699364742057638832968190524289035764328819027123784848875775768229756347159604071589462942725785408252234563058233239735236925594438018783306557606921499810650195805058338388367915495584445898718197729410229271081909777052268472701402245076324681192579922403055676094717299017949950284574186793583239930048923874129794331647398033859706813789909304501804155533134659071213984652496312860825652681930592340515887955531064970967859395824110187692525104406979052062719885100389489221430136988388898579353078541626933282169705087418332126221881386276890637987490320778955707567138723826068151360272904269824962158354641496531722598112001671841957224205904249153178880091915955896325803984038225702427973812821237322784900863736859652622351830978371742373076254144753974983986911914937422343479975827799832398342708457014514031896880448302062775030132653831098948857037096644431835679159661373201206297008558030851674084115528443944207055398321661120530359799316279850167502450351903615782956661720512809164899158531578713027875161466396047014153643377362488090821420964597217747519977096656965331768119888383093409794544607032741618923511158856765569321745353038828272466146218254558620050201033345794991973539419846575421700344927112565728520479977909560794045137911963502871603607548811202021490197771582732686007414316324156472813228029376106627897204867616249594214304905982048874632329885735537683707832870579696031177134925641000729889978393153992507137619377581267400407270608107066806406550623667854436692752921679048011179627708496433978594046613815527670255440380442899056813631399846339245823782415287337747591047675177447319938815410922664055956759940377073175395303391600409061987220526626944176193053877807042530266613585177098913442143286492737703266498555239689588365555607212670750247897560312288840011198636105718249405714178158454383287113092543332853899934687161255468618695486412758004421763606756748715622254952571284633782320506378155216935456338497156458614005178362038978674302243152867694869036001285372502642486377880400291817871377199684289250081377278405480356699894028094134247038281600897361593400434414338506172142644448252914049243017319805521759368172034382288460217066838530594233448123305885803762750883768455261061711952283381855919434077568641939509875936807787885171734750924219897540887264954256119538598828948077869232933142248073364953344839209604339338347718503280529399698960997898848475838584291279210664274821518995971059450363351185526113916841664167597159326770663939904787065613412496601655129512923816504076799523545147208096714552661947233097166446313011279989438495842099554920551125782121443357379403257158956030744009555595570506862974590115336875468214547509866273917296466718027085617280762101866072536215400790369919442408975725327474237873294830593545926868504131899768274372361242105292843201267078651559105848508823759372792429798876560795799523501613746767892799305044174345589058073955747211139267936925347157486821550091984693698233355579013985286633872562035794836521430547667401105426335857422647058986480323018657342995915152070704764768077212167917269214162251866926003619726901637404709118642097864272829811310739800268594235958090817806225470480026665763499667801863179477812387176132429824442367299346362914396312865863302737828155891611152814486679904808347398273714999401008826574887155769130354904275000053075390858797094317665360917476402710837097722404465652860828833510041259144604478820835702535643804168461632214845748549814204918299154590059935623251201638803809710885661653354628691652189978367586966537267249509794364023704413186568377472034961609302617390969443626179176342564464191972879680112592584149498192954960729539597416914955607266311289187309651238317184127125347883137157870206535920691199053814695582937879517398408143509157197756272950870182709459008034278343328665298362945192484705841128738540616453248284900025061937665614846362137468011364052286520762757118519582660936380089331437989403909081781865773126457754253985466468679422853191092590646901252667763131503307808699406567478750386370556652242839208302687706860533856489244672895616836610814313266914645170556400191983595219325467752792331072181003659206157910973431430040983799496962400756749050466923702907353625038721549900478215812944494287728430480295737608498630242835501399152040440431468943887205976725577808276033405435117030239397412304516789829432127113409246628713799149933794318674608403078985941433961455658308194206262528377482016625623667829628040223485210705099712620090139281110322415549660199186866482671916586292985037376911103025497400831338536754119320073919944649765863686045408979013975822067368268702785014507657703427062538057666213005784387689624659898419515362052717669512035646711124592683240570199939730068765465249977580505371655080216505893058072183938307566585421635967932001004463601283451290399939710189941410158958453694994004965363804402373935605078387492691677481190845861025599682499490825004669719733111136741429857990653467281971895635153813040003085234354517116220659213444621245247650123223562113845831239527188301560099858316258464280949316065858864284218440431993692838679426778534231442955469772709932809737948048206107749392333548622652237486035538613950476834776333806667006935261592906218279260784055097863907977539758960079225829529324711951822594938656302938315024661416429861653358142102554096950195644109784581001328069350589956219955315606981462734075409180609944546138553589650333729589942014137093379614426110899980667210112814069820883029874857099750223894950253531177218152971037038989446137362017425770613187747030774492738332656249446138370054273652886952472172233018825803434055026193563426324940530361516018282658243162176408303268456655391258593479031838007007178384686668093420622244298059317746813522948367664708834266922315560618515919098616370903680531234483400755957113838166545098918197855738353478491946087171628489145778994930662344156674932496910242860275891220136432606796746242723748770681437190736954871572090821912426539254009086531157411995430112259285798021426923216069567762123059211005222482634938173755030241016114427908543126907865154919654884460031177619353584724814229157168079236730078719294791926711400694167528104419720977789424788060125979047177028841998652920900952639477772915372536681760048604517377596778597940944842886109344649492824048065927830990099632522170507266399638918125188355926268851683237960004688100140156263703527186499137869307584351376443112546607896658094845112661766440897606738708505128968822347799824241568198841525178175882273897389010405687469125412455625994709834504657230741007700108851559885544377092067273731612878387865616124742117826347087508399839603481559065419345182904472163300014743103467454325169489130549290258170851662566474217951013544324883614633762135508137702199037210815050999154914438157729173038922922358653294347292078878204237599099172953708699451733322320981770687496903980150313290481436193213370686701587161183672060916930245917785567988156214772716055361782415458487806201172144818158970805312662414793999231119073352594672160673463271491721001273261471332670224771324038747831530933120168869772690485681509895118371694248595220312712344967364219406659959336846125990553292340739975748841348785740599286716473430172081436630913937487414640110893527211856210197096681547928870252227338745651210261830204727329861471020416151800150193265373913014245834799518353473945226204253804625009888112333884132969122983134703874622108636049832915540955670804104526308177524435105468051446573600066663438300317138238469064172104729757010604159486210902271660903724775450306526969752264496678037811164248041923578807886540054426115402881097129239793317972402754013416818824964536413835534661936717127813675635028759807636782556199124688350239613965379023331105994096561463314927812055097946352824429782718507914319272721766334697227002480761763441516356426726084805472202943490138594078413732225630177474867742644934083706142964139484274112919816244777961013158933653687947937904203955915651398251134508906834499018876939494822956044729648305922867260516003968831749349962597970724486960543019284807912171453167002479425838392593328078419240826464778529474015749940652265056640095333923312301592267771388179174923191837212382365531407072149484990758595083952637592822867298972344723394764895537617694210829885186183176352491806091467144050952966852114344921158553316635291453387529621208246333539229975775862823459218299582008805452255945926002296119892820354533796562368794267091149964224569878057025098599306007374866256790118034898564312921847557409887913923512586224002864476547042759805341546259400282832308223462687785363205975128463503799455964474816089970443040074242675095329516337917795803378147435529959545373511579996913113703270911060402869007515277564831167497674578309364604783258902682263892227371273892913127479103216786084456264190038820167553328575560563971930705380918727146798384302630833017757063516094724285062721516371417253191010781626150240668342690093834618696467721376939662250101018707617050394903251164688779529087075810133247326083833846151607533108843658008333527840627170355737088558336934140801192361220041124312043358761663237822672575501801101397385411051930460409365828443414160052434239547947663003006878611429037836503733331171977301646132428732372539834881226275699975490525038944327972186279543952784942506715590664712830615259218469521802102663790685541175553048769846189305368845877407702435868696962005617035705383811956104650410542319538115128070317477540313662055288965695030357464485430448275648391076612931108450945228930759252304032354445975183855964287553972797089272779480046376080003978584762014118957292564018797417524163157642096177062542679837568356582909574569980664679557753910934435673819260717686481822578192478106973227369453725125696383786946110026233768854430902029092699005789335539677093966789500111769140687378170602826548326929240437151037344446289556618166187504612267663261412440548120264127565812938689295247725256104461583402366506592918367617714489968016819288518287217013263913598167220863545161970013698358817123736447368895030958809314556424842720795450115735494267709716401654337755316768159252395492466199825351075268762328887596665198465657193673494674619978550562422666796509081671301429951697221735538881806453866918322401434610106296315592996405966627943587773343774045610685753222176507948225185832691648236587827668823519720914793815136055781888364847370149403176463012422686089273267660382942092441895399991436290636491142169944283346343499667031558777993128803357765554820355393677149338057699568577805707726035204082701386360935446812449076023947320055101151227402689969048473003088553345634328722651181465275845857826848942107698807524708468702316149625762049958040972029256358353547433440634084514386024425362801751621315059214733035230270501465179049786824568224702447121760704795853374473256966685666493120192136092449153898906732445377242164054711273376921833520111497536903943227762211149466850155706293402672315307114603699310507179858735934487535896631959366079715558782879353656125756823086281119909968687795994914371892347892145714038526927008404944650413483362971057825618974910145278269207409743987152934081004919941045075186543681307341400960732264610619970592961345644764191666401401677679650610625548907669842463232147241002768107127376442149183583649009162761344508141834341914736616070490054922319196002103655226466710246173475563116993075658982417255834472040119501360269619128440741268519525860472942910752666409216114051622536732239259887756260037375518510624849582702634203492497527085838977283903899109498373590763684488154400351444774258155866215381917940729744883274647498044952477632633705449494495595878396617446935349904333188219016947442621559317948447764620241461344150783288367641151579963402864876859156475075472017850419396666351397369168712337041880877794968256973243816030404644825891395902542230025625471044987833584211266099560106396661642053039925973867255298365063152312277301545127969945724586852109195314044588130447427040030293205877322291662973257690858798123386956906925333278031112706634105741389708501022661102419631091125413315081867836587568470128602017021677256053731740493293398442492415952970729631863086308294177981670922874293953633991140884491388195743532331111562523103607326746208606578455119367135846373106200605407224810495944292106720665901858829118271145933537438562099404490804165124489390975271058869535470383621379672621680546301401904549056396375843032365443440411457305009089455062797227271674332167670038601012098500661329454601386095270354030685537813645156950594963000461292706338446893299279555366756778362129786289868654523808113021347882538896957584681368378129306596347744482077945979483414629146862260820211440272440524220142871079275457462200422753401326598122836828681313489256634964570075924394861590526934901106923200268132458486540980006054070099393321131195638459551871861735514939261132946688767637281704590655139672535152376180737475476322454749640048634840878845047340092892384068718948830922134866547932521239419387367662659646546538878724057177203066426978915381511821861989195890944385118193584667539128015591129524763470214300786647638746225984506163294128973073587882809468328679001400943839779108357641688179197284551446486500017784080848303085739448766974623269864733209861172011515070439294151379468255190840447461550026017915526029179835606692647097818308292808934671654512924472354990563942777917605148290315517697610901759173303274485284879614554266967389946579509512180874733385879922604872655268985782240442850822893016730668090887769527995055111345837967778802936574703383895731378183760046307806065777828154178649995944478795089087555995900376891592877143374478612865625480001565410236694708535750475132910483516364824012228411921696150643625155216469405785664577626341453959104521043093865343823754562178175915021596701542429093966563167027536228895192414412572518425600644213556793087930764057484777661808973591010480554726532137964622282489150779413404323655864395705141344317652304337486886912527999070823260601425004053908146121089091268269658782623371017798947375641308559560254901864309607394981506304952021198526074509590866031924687170187311760017026466903900212463861515319384061589738032494029819644172808675418340069560820647640150554854183498562071746697464691225908979231787137926163114743013010458159330820404808854868804222136080445356080861330934472203763842518572698240306687807644453486731957426764744319637690265298590234525526045748657827403986677317184482675944431386733201930141357779283343204310075775856375368751584278424684108765812669358340186533882069098840517142280131397700350866192607675888604906359146504138734507283172257188510051866114166631635381342820852959198544754686417633680215023791302458036768767714604477361873498983369124184220632276495175700217756453612415891352506866380363974593816810659917616109388864313831879887277028466096555536289130243286529958100137501423943929117576871003056329805279943504596010052520062338012466062673429762483964373606514402729690145808096849505953559503703122058880119005326990315595272872720939671723624208972529364663256901904503056281119093348110788419151456394626717209958111844030277519687127803108954878296453521483949361988086929759107293773533450905947340060155619322864814617729760333119957234153548141642908923112654584740620846021121593661865604617583954571246170019590587630895267899174646308111979497190532846205384527527829964603491186356932598053897126395377989460917502063858907066477674164914995390436433375873539699347845711820656038966707102371918670675357117080853777433351023953962133693949702902147859015075104296073062995043402502292620443085998976789487155507765851108735836800413191113401513571303246503141508378325143508527493833709427799751712582640229356497989823063752853521156025738093494309544306366900336851981197940612085038427568908993902037738261460736091258682557795920847227407932401205777642700859543355366305114952520005640032531663286217580214004716926106323204171167555996316171071853465878314795798031219299515809289248077498708455012438635897585185132085480362695760191718240381869401085948751064367163750012182640903875544833483057929648313226353882598421357999044708472174375707055004796472960553757363633672161233072906337521390834590220491493902316194287703878776394451113978180387657374698465163366288402265932222883414827998857887786482104240689511988857514698653169114252257213191721280723968188829649961837282266712475150342585813908324503239004210893142568123295584270756031761134909364485680711544269496548417954759694464092270748788119337733992558853732008738880506383127738860287173085744100755775347592730573643077501579743359741406722992589425973460698180540258834947441615005072020053934547548306207190370445349371380000170509802566584160075720981780013413890903664223879647939538911872172038380133782706484561388252156924830511994523074722302517057569177850384564253389940614177627467214585471535556275836811305875235952400738626580551521252191575359093314579408066305650614982934899872303223046040862467621993238624474728620163051620104979272447922490556920651256254432736792528500251652998467638573880627158182753202995537117208970442039704477916441351018932093309209691256672436710812292581132434597023520476187334039571573379025416899606374263250269287105084711847905993907176649347779542851893053414276237065080223983641030579825621310751149571851109144892746717149803000305460638131156053461667210877649236207023026342335542244112480817532392401615892390171314451509892696326103679601675241598399692392070980688765292475324483488665900482962941906908490549453228540190397941058247676248294108095457603792693336801009869996825929602431946343125932246811399620138190982166348857992524424892836684018266383806416267293737013483115738035739623136343446887091752668830669655915048530124712382437096226024143850943473442667968331955981945317161452451183974109959660309045005669160455916689990959730772898257788843016444691692746351194913096492634572219832595880028205711852991489217518128149747260095824952104232704361424589976717781848849562516481377214000403207489946021844659121685279249378786578728852766214556444346918582383945318351131223545436693026798293080652949314182439293787110805697954853056021822745708752336531117761212860931836603231390551905835229110702772391027755529270104397065626180665457045978305087475195356945242812067284008540539082834818465502799432752158871737483268269449897436297977586791829104147685769859240031058944869142644448241051270559984526106341098350133325686582909703341254158853957663695235579487536464682760638588996809645926155890205276497326943391123791623373810281305862925502580902369945749015741468545971537807331384583826052290085689263154046249797108980085881984745025731391613501805713768195811571164239213734095210030120780567076927772440765668868268393389084442037796660132980647517250614480109093561235665935509745685091745008066917816537843738016988664075596580713226110971327359369819504232258045965307740214138473238291953692908288929120111354613791561621225809701484433975189363845670991800742909153220413699269838602670466485083257095369414306074841998249261779512016804269611800080882051781397467286037085284153155014887269143451400222647377825991871819692690515381854312498622127895632809025108163116135450092720196304036673836320389952561617284862326172814606453732393291553362938577359680584699509032395699332513413455163282314303594723608573698256064969407930259187599805896206693668748134236325684694524770331134255120282082845468987678618012831207287492985929619236447357976601906907529418199798482954560545708227352129058365950469366894318130134090398715378912622260168333402091772032570630178144880429513668216632702232297857325686541196543290524685650132410822612445140048785463007980420147707362970280143423620433588014421975544899551467410165858140234092052841156135861200614536134553846704425470207449724409979536524437444660370556903616605389605957853875209726727458280326947527106278843215084387184103364487634541962701978209624315068721496933190972247625847782592207221220988827804589722162265538301056790721283535790732624581445228095991226043418604861791248998783633942559247609429933546515184768251846496497198607181764005548107013475893410063546716903238647043788439545900516229869622066424380543516499669780797284283038940309108489100719980014451618913490614582366137371263652357568793464719259460029033764050834691587611868775807782129526668512851512844505873182224414305521632890496266717280222496315581917797388498840310180987466859629739895587437366174776839925934955109286160625325747321790437673019111743460826132927181865581971222114446944527257092051071060027193470728254270398472835244637825535292493840295529785067028179516340749630645106397061772487109848376692066351744036572382518993218472393819219081360364333221752746572186371971249527706732051215063382871417055703194585587830205528181810034149766615191427195448299637532551753229792238522020234586092208296034015375472354778392305979302708418667580154043283229573727970742069158922753162757729130951423437567109388653386468846855904293202402008404872804522195586936114328258088656567381236884768736094722167495450434454990948775701277999383045782836348306075064794004914784097342993624738876519152372280464695449047528491487357805241280462653567184104094428210651026381984697439082298474531795036888305496546591677270878717462890214255483230121864352840015697252861582160718906782223129905972237360944254975518094372576406519199625518923109070774682914045300842457046845019685305705053239538482777559986837486593600110354311659451478312621861657317939250857337358092737290013063467474491956190996702307315298900620555970178012337423763417969578937871607186259346088145224993422186772753816963349070591508926380264582756636573484261368588946362711070869318288418225024668366249961808038220289799812956260085791504304428423231759145863336538105565819174593686916359248868775899236285268463354700570804846848970257436066543560666714072585287646488136533729109842199439432278163863113147516981539254668959373213031164627618566606508528413672036089484371337463202384856407985411477479150552061660744749021699026992565290952810443702500746301743841196397604830466205500670244111493731852362277951675152770760179887958233092184925504895615824808152528907975422031557601196141075899817536760522994490942243766324560428602800165503098939292801567725223591211140129912839926891591237379029948561137301327958522958133845257332873250315393431362170505645188639336636768935878891357972827394359039305322066407507209298354672868176255569140367715393146331425005152248654398223921465327147631127069639807203017940959953674174297875489403629038750826779350013122801049953721363702739468129824168713459250368026368224314429436420490318001659311311112840612404899929378619304668110801187338166086237904967161360723598177213036048142053580879954485023117362445145316831307515774756431451752264250595206419190335542926902419090238966633409623355961870075562238369671332594552637971876603599778891096490934545643564837506904981388976817005538740884575464266103076349751844596182385487805899740170812226280887964630851531265953302154108375836455787577083053653235646624910008148814534717633781349655997993547540313818009752510578558397030695291859706888928642391667014937481696038301923037055767976960291808829110996823067667556801753236228779560834828248713699328982345512620667591832421073211992355593850951164366138878726077810164726688054918658214733787581515985849361820616539720355140283710008965526928610143551716320156988477366616428302519703910605617600676253332099628521336247940057771824545958314328124566947044681224337447622003982187543494672115446771072295318193762855095573440443644203609207573777136700819015570789557430308355929766870878132810347678643222005489591250091375861340124351818063887413841385004102936670901361288870103232429628160864406797975856241306289801563350283127160828033786566122599788798835524203316462823494379641075473832684638221331360637690253195484975795617445396451183861180328519195511288662627777125706485573953400554938225297403597950167682848523907064859911488051095337102385640315391064939781692069110871846675597523120838362183680502822369499653194582308291354641169419822109199655948653656428573789802765637504899041261633004149541755972628074822019175595830740649010506715808599610298375083934578136309473736109312008689343298155846453024398372034360227302118035964369634906188700787060564469227002903695177523366836624910174413577180013974884197129748549939458214863634547370742948215447620695015192870182814999642293459138469855760028023312116001792619997985026752748086613326784591199489957089077961334035732678290430951806689656143423630977847011491052146380146066888486914762545514317347094270630416735463355460890449037826080127005200816314008996284563688849023428667071523363313039011275981856882682686284122708431541997334736046228201093947603151899737606313045325174515556944674311587963441069370373165452498000557749223123938469699632974501565341379464007463445130941174242419353896410560795780100198464056958800989594390561182657536547947569305193773036571757647874205564129932649883587322592405747939674924154474270136879666586167142229038781658247619627688995941567309016072280521432085448177040288915675718205760872812142614980008382432873802044298593112226103881673292572009228702092934628649855739530013527014666372285959086578226549672006430547277097239289618884142939271020165872623419271065131440001264392090810468884063802149085834846372996050455833225763604127032672444293523828126117559179211031658879261549487056151572129343676995366236345465428106859013107256669202037936460614408726774176883864435182243002443301877897267020105266289499285264020921260515794286830455241785152739739239943132958890732280306270152869659567110109816512361147520799588842067888814524162345974894443558832007162292325609361438467600589902364218441380958144082262612726974525788308999289072057435826617403601291471949570604861890518638433726086370102394786534463769171042003532422387400845679978385242806362982856286111289262843273632209988272305706712179721050428232290286639993465864479836137574221496169299428847524055351206864245728053634775745450890554508705931415529165438121173999986902862637602050382044759970927736589804280144698412908218273436765366390183544590219360154107371200994032431272397499932722869879169141623320659669339929410155125923785711885020744680937710643937420036853937904957147363523093609679377140943204605651760734097134304133949692861843931886932129416017028592547308083135771063100198215094990039179715838806102753627943509602608732197571369240356959416464798784771537133205696529785028235156843982491934265650403957141642249947135156724874174315627015110925486026188468317376721210816615390520177813214926872623519177776401179335618868359927673908148016256456503875989357004836913044400703389988707694256031906736730489689682311485632159408544459443237351306171677149129160747421921550052987871889252285666373536243961909730122690090113404451818344896361014937743709429459234807260713075297735422099401958892929005988653814690044631417266247988373112445198028252169195972432983165167060831743024759239690490410951673993570573971061949736254630559333322828106024916387299352385474915588112461627178273661976666629733843893821331086016740700604112608445713491270442982592702172508758886119440502747813884245315540884849852173185618831797737975204023398908566282651848746231180392877310667062723706541501214851783431688727854730141209756107069651442235864145776014216967386693215494441669167359369233545885548446776183403687287177193383077874516170588707681135351571668594017730201551280478534914314679941199539611430517038424155142686422666033206407466510943468936722202092422917500352325386306825056582210325569434101643386468431884731373353801561979330657219196903748236655222005580743720586087865449534723840082602813453849825614307186499385576721097691613359235529094440418717025181326925055425092688458606473373876289825422274093647815904820311333613717662375723658192886318643250482374302828447672058212994821621479979898140457740673012478570323479030433143190031005417202949013889027013807749361569253436371106672500287444508430367264475535514607993114692719470158834353371495716780688725134411934656623432153745912145373187451642496306771268468165461198862220235905880256392323735646772062399255843613714677650525122991684125552528065470537504245098268063594315853824403078118883422711566855688252466913564470785691434811815636716406089320578152733063597773011099138412951922267320596334348059316353455585370846804017964239002491017311944431125789174456231615062315738102815965521290615947143627907398559755019467552778582088336635733606626238802200102200100326329395550287049085178648170832662738281363303371340553091726105668125643465468828451093838063129601340477392389451065826229059464221508722499812440391437283712342372917561821365449991023717619634539445166229680937285407734086681850383639846791726563096975272017268544982613673303663160118611583290718272815460368838028208398462833996989189511576904700033744735250752467028195196897816554087696462686427551232727375874260320524233026538504635115393456980162005473708525657023374354388038716615808764200769027917253294299461476241479316472183905116089778679126178928201731447896839929552956989839041320261787339468315732711110934612274124468239622501654007619764409953876853942987356380805055709856529296523395353335012916601577016038461552547565331423675330968836611069926414420021198061406819495258753169692092096612050729280953134314594039082029514981544915952959446817310570660223951341122435538075688409015489835540828446758338434697858526519167298898545298338516610486715674356368958920545568418871780455106944920468705451760859420738635778058885507932259404582172592094177037702421030059410386692700705620273839349204824892849224736591930223309833697604688391152972013276900041558017332713937766779366700676384679479917192661317463897501722960546212740026206868826145771970591640319510631826186680076836626147948256232511606420197314160199345858154596796959076726600506212354389289626832909674174873305837575144077759166514104364068185208971899441808158498786772234667730731924843209774014616876022890532961777510418368900552016026048543386316059807148620677493641840582060311980254560124159117120463688569136911574156589187705603660653110660440904638112895630806344088806268613637040964415941933604067511691505793397204492273965513740510499143274003916564847887034581470846057215356871982658413902241923484861820448100160681234186655443027754505478353015216846800026892431141133039134875929443419680938795167621178987696051597241174125023553346347962066821395432640978407663901623294048406031690566257974564215477077168337697404891474788016734544542858636047368668241255671847435085175718774710087697752464882864844049802119947830241897591936844692523712630013379890118944919916528553215482736387350370047474743603747035905631591084469481975581142359272562186422948658916872006202160794673571782051034854557603656495236560260460038509216489841992697630004657333253877174716071320407774328655988229732159268128634058478340361972070106673446887365286094857903821517689030030187458910374257858092626125782234493963181129924937036335045051709671750198371737535866478114074920438116252254819645043252534080303705851109635771646433629942160489038688098809515626526974442479456834629924636529739813283010537547360670903743693860773996585593194731146975992629167935160493855924498264638531660958957361179140202535742253105000231541303300984445796901997626372618125204113492133955039832444020072499824546090283662753715940760943147974794435002758831231338501968282042359732916423031901450797221332234922619567419881241886960900602604301626663931016190006663173795820255519326713895038693299892121371951177604596488585961826711736999761093572989585622512572025762843993824596954964341698627112903749858388671367927543994239103350800617789760026782569405546788122672688615658068439508585089583459586655379913658028704172901077826598024789627501511335071467885214243027266636175593834541821047518294783960353225654331534251796503409018249985804296734839654177925835265909835688006958015198173746819139570732286154592263678302395081808796247257587814657421576002328743082717672266865523976996461210041441779057180275767452153577597772223916502630857994049023489358507971696515672190319767935567641290698210222972464930823365151841043138925289021820288878670742198133704657175025303175625902713457560825578379446904114157845508713942760314607426468623902347312117391038826835045860280657484838423122894644494920670228341479460604869124945877256368702904035730881063550975693672721718542723370410520467882573285474753162595754616214112861067569285291825081544949703868582156822360525388755564688946270674843543609416196067816425476436023178811007886058357320388907253047800233382695006533413994735929636924993805755739492640511462371004602189553942322674369825106546173825508692924049099387993924061514686128083703626980524721461616599141589669723974218606067680649932814788457292199818224021042831647775983952172763928398159024464843651745242823460490387411147332140101026653758332452486507334506624906444346727384226135815076622425085629021079880446600906827161342013231008296735328144710618487852949127153296459819289761535650170128237145988780688786649846560603176083853206334257386640682466285915687996244177255794409473232517327577779669779500210474515662324150071537221622714541055307518315252885792509190528859290525761938128020655614315275287587329314678465780471016606674372657698374022022905741534565360767721216014937533297690938447252770755808687864308298969007844633022665467870489542900454816448245076194175154360577483280224509701101366105612942535290580996592876425114817802694990845518690361895941133583049968532851350665995175379861908545387447749673055098197563671962064921737604206034094845853265310113623111701457113871163446779404425646660691865406415685000360745238584091036957007850713238856680355890622163977590553422903506191757374966008394718102100513970394248001122972973822198154705037537253208255872740678701281149487069190900176440789102649505695308102216157189909845821973228719529178198165220057246283487728212912530487990488997839618646059164824902080023346503619661874693096209544687027444277022993894325406040940154296880929827031433083055273815570451680450175845527162868104384603340002109527817276173945181352046714775450606999140592940263053395422455521292923926328677406084160352585152417106721473556664310243025690243347653041801333236411582393096486112880024253414879790260369344257296293407342167762535324917030545319767926081550791556140818423995180204050833356135146861159805839107556987351164997106967610815201153343324026907803046659815033389281486160931384609638593214721151404617280768564018139176610854819087820045923103928027903385923013238451371756970296202412887508280340677144069108115717424326395772590976474730202437272936023565495127262331551018629932259107588329152188702545236406500999208025706756917865637602209984192004798253037683377666677126203980032836846058227557912670088428738271062076259131242228164046487388394698166192269351276127358946281844383418058829993074098947451949879937697987269111686523128031152764947903433803593687988511028929919416753829939435518451591938056805256958610934157636103868842726008337671206621112802274593184192667613997150994606545907445374522921859866473469342934371914802838276824033159171486424154662596386535176367868897129836490115272737001865116872660416657711434009719652675235635540653688342580115903346052480623529983551196246857834321186688453602890182583761873714510685934118972857021605106466035608072918334596674722630866088003265081323881881431720848471124696667783598514323586608647163305416937646937841999192361434567754358072430803388469311334175050097068667626743955230886705209307090736761046116823898090684630181727134971610255966035563983558462654201146320226938266540928961456585699885906681281996922886763326828869322812784744093562866497849827668049179132651479979832793392074815383324707016871114049029330803335745758545296440974928941772629861152206379159788492499673211772456160668348194129972967472914271601610109384356830163535397160345660522929220263901646545188292049504380615701477885729813514307009696090452582942744249490405726846644942157427127186224262227594140771545327242778023334304964596013316623129553575165937224646084245435506622540203061478566010668086830156414012126875216217708540170820976957354524245100753309950935832297147261531968985456298138196815981187825560570417722467280214371427319320533339327778250834900512943045817533751406652900091604167049322256784343406616750868975410039647075038087978838160013480673809373406611508424013162163153193936861751030118853344320637822385040683252741898616107309157795506448001589122284570496145254625082452309876470231600881416823252500199274406780377365559787638279740646433989742301542688407885298039269433595285091343403575330096886201117250257762116445107664589658842930988412513973941581156727796669867124554728957642779436055488081743188713751580984114836166126250832194838610573380878077481847670052281171109682524297179575731031792558862024954676017340144880661856010669384231725967480789631386791946482195590614421225613440104550518764430311740613528330989860426077009968309545160008947754403067092962363190960943769937749755295805798451258693913980098163061052721624442443358202958066402799135383039217242911699674479575014725195635097748765220813273811967074879219520178442472004767371981844561991876687242416837200536093001956096532745856233219198323848574608823272402142818007177066776251447977859538402306338967544563159148425329725413982849541579111068710054499024805947257536180683180236073133017083561850836707874574472635996840565841561440949003964792782187057369939993095755230433073675011138725698339980785503381044720271867891946389478182612538377925151988417769044450078255933255609017397801297049746845087671576597853242256377172210373005416424546523279721110804807857448351685225234050347148278183353244268467916058651482308413730196894967313979458017477941218313116777346217758423243239173061495640893819641825629716824429356625763017447222755231034240964410243333079113368069656001253181841025618490071960300378069508908206502952644339050315138367590787907892498364978888943698036126745326080366069423785844014044841285839017449924692164268327729410836369560185727303791611435134399176275289072698702689054163947072522354051568302934888104016121078849420312426471099833200900214431096609680006042550454554268767557905882671979208315934378441839684887718337187265256096616476981565882614938538804736694865954034630735831189286762904290766561374476273425989245880868824248771364148694861295390907163344951796028289092665705623627629476379382856946092488005236906938246598089368923812885179777259583634238358762862804344219010544685401419480066334325559022438509364840119194676739008371741191999435656614478577228472480616461176394300255065640424098741320455558804401415447181272795877962804894151463629319292651867576444849424953334190602385448483523749957176396142963423531161104085323188576011639286704504330396410257636955526288240647976420794612927718978787227396914376203935568825689346332864351712301466795329633265264770581216591117337166710855642332917092135715478476432322929285060489105152892652901952136231976580297548769277170207978155293010189644584993877082558930947531230151505765302471053273951205169938816683441758172812318208830833730424216642274392558482438243446597871258430854736388110293273395484887476512528809897060333991722483599170677520187740750662654638495815414286065626744193578404599584113457706510682969496284963830915369635844081963802727027222097152150109539144647854300850457637318235954852055321189607857757215229142726403433267485636580843831159753231341678171904699796337358024902181262645118647924402740728293335185010000205260108186471012157398250676737985970951138606644288009929949020449363068217576190306231205346582789884056869796137433531211356912991118816674084670285041963146417784401622375592993737182494932604696236751750199181750370355551074460083995551616460557229921384880004346222756949207023284490249100602546194308016280417003918537965950027888382106214438915832318002814307810198383129561515624436062373273945236465518337536244863344420933865746026361370645112881795612980127997458522751971175603166450779831840981368153624740194198322891263558085697100981236766909256499880767328216515385066172917376793626980891945939444978512156603474871573949019402825000350108653501931219581896812710482892162491993440455806797451077672498462224016932998456495266346023536061549002413277453256771075741104503053610486357968755215638427518346451877184000646700510404211057416262744841499471386469645428623098015569934420759199128187133004120506955973964378451129439223980333805683822073462471885015068230824709808862528637119544952879913831223574926177623824720046214762824154616145318863507610348420476711423764303805343692807718183463714385938792610808899096729478537201451036574888833315608729036745202010520721744806088956651800046101568651145277405193430915186840924428900464342646186245169865459895161863742185745388713629012042428009613073832730471138356251623278542940680030107336668211108729947115791226145191353594328943956271187605449921382546888839298845253068785818486463894752861425254698884759212565777493224064615576455067920404853277746135729829961497102173664562463309025764159626712476408698729924813562208132894588391009740556282561230431413152352738931365667022724596399450540790373034011137281570866540795664394553997968307411608648305172689561475791457715260792725687775898710656264084476415938118693106629092650843434966530019223460245738762933784920970273236770360354774676965863315836172380349917760628366264073126860944161186775779542698142739626773970224193089063169954414708243036866373225409577914079142701538424514714239681663836854595827909551005799986469689894954963825525895549797905043697812434240366425964381215808543034379451882177209992550859650904816102924434798574640863396310931764418515487421072302870857456024077794810161134611266004766841576757659129129837763772066600455399307213660546582926971745468946274147041911139123962759269036216846152253479516885414713050112352391235389167265851827727830727309473361538353457214971283683686873999678750745943495251404371972501858713927423849193582957607854051519321614873387572945359360928584107372743367141945986847328005816825565982377390671465548763342560018783264483893083287620018680730392596707044826971222477290073851653326251507485108278825574414290016934976093912369695788113281491947873694027743387527800350987112936958238192284411922727308314475168463569359460319128032724615010155570691183815699994520957752372498738036539340413006959911670096155481734861265701696763807926033749105976410847429239434294502795931195323954350524234322680966100691474909265324546989711411521165023059983429613321670728092587977593583470309214397455431448275225220101788596413756232205813091767880186881330598317050116844931053430417805904676170256416601724185779808472804513706254008283439487464434607965246230158340890630914652432534929392763534758466294574875421468011158746976056518112922233741117988079342210975877574100974308898074933941540497445543025650805028939380892615844929990784164117134279860018323209695344311411169424612052904645601195050904508520824278508424321211095394559296561766560632706812903102063509996792205993288594547116350240658665213439876567393658119717822790426204712987750236970571713220280814048061104270852303158499950422321405985127450981787066094572318005617521650520391886363259095648831036982377113220653700362620020520872540761507906231686480244578678506510803814105821386076628489643732389783421526802897219987232078556647065815717259819469380970478809820418388756406736881207455937344690136326155744774639970676901179996896386888094047562021187696528546433590405145837363898064324686590641614761867733981403229497023342733935774870449549116292325687046100329233788710904731459066335782724401189566150990650844968562802507948393607469937430021397759842771194121473284472042771785611080915173461927845724355990511455191001333492149445178201279744801631237555405196183439226964772365432031432676982794051417575138260163244436292180542788026006975709108980674627418946843201138587985282166485366642247526107639076162787424927380386330974193174410503942146202422276757546802964955080424255786906020124757604268711840422882956548038641851276337274762233781047693673025494360168064293557581124701451097595083135624495895691972596768821470971945329525605865155910713069064899648557873527948599753392214517265522621549954811001820048549801693736967571899413691099523894103542874041410837896667771464655803870728655304415215762212385840855450816017240911684688841903973842158052129057911423928937945107415869349366556968165911410682640661040288852814073074066894173238620591833591764059532600340978292834619685404234942316356722725501124215626325430367199112875645403732494033075368423926835316496311307270330655155182078486080417316609457365244669869452058096065041045398423467098356982230600933431402075557541051024396199614917403464927470755229263032055920288369502502993384187272231225390275074541325838472444515619329871586113361210126247479468908834068760775178941709622621055111874466165959454043539047173675421310202530058650655163122678341547621982654739164001832621509460081421578745895585456729370353963804815304007404952189295910833242972845281178287523270655901592311063065184860048947163687394664183431195522793238571123171383546110077447521972349117993840527940322718850345734641861504239371531467663986817609643914787616263106076301813907399267880090393829936510632774818399179005482062588955269866102100354396520001291059934570918304441267467335647883100119682972586022610837410464665875654873496692088071430352553369928878478427598739288625896222403237618601136990543784976852546160687558150594438748790383114409238678566682432376694938664052563436347787643658225494490733780902631841883048845942084118823946249845500319673604526023374898342011458523428612991641752146791775507790147664937135038940681701484489582478221099573262901423645111784251766992422718209179688487248118745504458224521888766003108553924449258816332969768480957540071670731202154150785241550694213199728031727658190557980963926975558860058629438845432340253027802846293881339526135676116481812254962205102203460134906173786879131467380739297492849133314418074054539814819852516082881876300510572709075978010582631450750569396411338904827433439425835398233915463008595567771256587344573008417722022519107006899430597338283875088353436294939534883139730203861442095805332080213002623577627277858865858503240920215670389167601847528992407591052466627206226667604483297017865124762545992377460547931665832217620257193115679740760410666588924055882197301061710411563919960514015900667273635639417519965922871266913214299240037801079947942738284220728135690075135482530776013013344541254779272233330177241023661504967067706703301392900437682450920101384269974273787014365133042279985695218668422760572630880721781309896534302044762481723419025499939950655511339627381660673413062442367628174504645222660787625225991690731390217231838979021946800421268105791721084589166589362372844053857625508633613555634019768691396243472918522286546475246516010088574778728174801257307776318544921251232116693843240086536912255017010340195925304320174435816953450314490598082998301250921607981671825680030324160383440244852651876805248782440580078096697447379004305140853999860758821996880792900183551144181585424075637210452651958650079302723063488969160073054517795527522913443531396198914230242397076931000302481446906631348649762262420966721431300964818466411753152437917316183642838591765323861173114712735816151119417539463289259396064657169007087281444037205700735444938056513501560194079682694614008117754856361834857962872715666742678457558644514790734640422923485369428094472950576746322974904032415088217845465129885309291794216638595426504279004809656845922464119092822663206648092423689550711820197725124260393195216154760521255602547928997322969581433606708533250361809613992487469820991240134365392982432211400071333759497489434905303339179929785143836732493585896272609566132824333363955788955850191945400905479098590784386697628421645202924751305342102406815247911108343426040569678027335308040499884334840935149866537816734150040145870306934996191038008264473474564882546748997895482720054013977311573770836684967344166113615476093377879827510578192506665168417313656404899307997411625875406462432014849820513772310139964888829397349206938699007001832637612435600944427906303949708168192385690717357894073906868737704049418905415561171091990885571283048074001723720828143377615554439044512059235763168372524716538727334184293570917409027787616430956767599928154805975304855720693067069896391708367836848015800832443381300293456212502240868212092322250800062600510824589578308636416091172365740409180398696627684466607341747030120151641324259503141002136064758774422058439953162734585913838289599299994994454216369613595586581623130430788741411002647683374031150113255575733315025496796376371542416197593751421756355223859890108541861046537523590839150644458047614917025090278893582698249339544446340437874432858658986474886716256764255262841692052354247489305663774803780282465586838399803582660206396383991295984942116082858896126692386645090147611668349114325128896774890037531076936731742457475789590206960189660627306038712141297019367595566125769960212577283721640928239203655409228276206901878118684269875156310178290080352730658734414371922559579493587053001700255802455749938705316839720472800373292415981100200318879217633212729351133926024320816917323846721593087031367853082392912771654870016004801187574417543096293391317781573684222878010577410625073474739595036662552860125001689784579977338820756914814956228242060135599377203224987652782264722835276432314476643175045962256311445205534410075248239320818226756305159978444406600101351296303343275887412000605837971173942026120812899330112372121194444642066796006341214142866632078188271865395684548597020943971867809234946330076594005230785166603575023499358148233415989753562818234086267704903938989540022437500030636336711070342430752153417708762050273796412871968369609218353823649949114678909728658304501668908816666954347626256440133827619663029245820789001133761319815329316290905920142887696648061528268433259646282544712253916987194342387811038121155613006632843436549326071938014327427652226997710719840166517453802372452976162580198515034948939255812484111370357813883201612982927006143263339932013734373415635266850682836543244360395915931605843016625361899855703561280517879719889650282218551545749267810806189741664137917670417633140213309274895372447010633124412149163460383025393899223552544820542595423295497864865849824937523980949436490952338961268853892918174956352294903167042113899673315744620463000006927317426545295419615646144233333813658636745008083476868660349719361438909469933599848033645500082263212878611767404005989217639828467218974627442348631597065698254222947886537422098727523854252247221330612058386026665591414344827761585566230300427236597273242935428144423495128952858201210870013364961899857011546243419009609315137532661364811238408327007676547860908834264110308263553116214463942068269147033155467549046937899135983505930518612537590274450466153981573227893879647579190251209667916610875956924986344367175996640290087237170428951223972686190291825106976309434574660237774347325248967300777657452009154428695303502047821208005628293276582844362501487952158698141749827162989520356571299870785193694376729500968633016879396854377779627230046856983694651634567019048192527497900125181687075382368336084815603268794678211292588838380844228324284754343385522473486238380447806898594982928426483362221958060418169241872910917071362127389855978545959906722581579394208588850306329791813815327132202722867543272455379255700423799776128336088470371000806803667647432522185355193475924039031915471378103309418849478150218380442557700269752981997221974319994417614115902923985912243717121999960040398269932766558798251503557825813392775573155465350320657214363779983384558301948819202423841826886454402903174167402571766724932314395319164730611700936200862899299455171555008383539631404727903207035320471053864411027807026242827884725477101215143309613805958268197245605792698105076632216464282748787151454638266427421324943935077068744810420642182448647752213169519324320425231363990085480368303539463840954358397255734898413130856566033644764792705501091174843758547681214851492286088689266091562131118931711974025946034711923905545078595869034879465180858779994505929156895833185582981303956267126377839606512435034793992982350440747198589438730790293312009030489488963749968024485999400414190530992997493600999713928170595042165067612874750836854812903930739573758541202228521222236444811682549411760662317329618092471774903241165459712622547274315550064843079783024805056473693278169378979479154055983283629250346588171308410202203398570560210661288556058666136068806891243811571519944311349248615180966451679698301823503624095794350625905443603749180278356968217583788378631236576590728286558812684357009315070438287650879758708777648928113885046725588533919468450866873020092543428451139307846115362655918680717296687187251801649580521755569056589693556073416211614566358005033746682916444586239617690162618506868627142635347866116412346247486192314330957694276528898558590446143213031977574935196583380952283537406162296393426757713683182161290446763565312011231644507647681177760737480356153836302545848653969894314439345445301919113424016851733047256573325950998595874143552934352136547812484570795594840548663670070618131575238778461798567992361190014283815992617592433936379750456442104235424262108538537872933989662677544938503350792597817871166541401719359231833272883685114641117478150123945429879634759081240881552471103803219175943026212339230703533153645992573691286901286147731068208544410429560591588995241759967360503767742601906520281396115959124949969490174899668620249837171972139740575666042515061944468868094395687426123242471090903356652855497059348004015926389254841294071471120486895097890044709066302880889865143680486674833052610559602090412581086622300248764327171714938469964426508260285459775512784945720621804099430839631372824553169948969006853206296435411621712511930750262757574710463359628215768068543890205047182197508021790543336946890311808293624955342610372580017512787509591481807567531585399348257005630366236120325199113475850798769203688259850930274949927445873918266633133631077659748370668781732683536546176668095829491905635883643717031928837902418804977466304558122245564089653474049725591812863392907023212871722818657842876113650948421315223500681231924745573874420720401397426221652718396062282952116797790466383957076580411090334751521560206703804968369939944031926561824453675149341203376634747689793936850103794498085053357315828746664336833354407419995360276779957243970855575799923799914584039866312090778738795016409162412320323604772412640865152852249095261813360304810270409150425391492471675674517204495655110422816589355875233979194708005357401691679846460914313671585399915387779526897620134852607099309224558002092594609135608121772214126721185910629723983372583413958597876816050192320953045421327227766082196245064350510922542091922283419893382161624146785657792757043986536940965680188524606923654512840819765073309363213554999713092951697273668966726207420599400351980733532654968687687590772485679332314336728611852349425135312079700291872774257170454987172784483250650219823946528594762238325766077805744001351250309334576600649548012330492936156330802519572997176479221014874244375163261254990676644353222508201607143403995399550575662809807900197640354115491517384339163865662615388832321293270749272449345916183794892885939158672270087746185407729650895604719301065292809006249176119324998221181476207636894020924870363968992874275310767178198015168927439172930662331727280549370948102348946647485959074396741490876663151325953876329492869537929287632956698446103957156609955371278132977609567470734524348913376844647025095314405549454600652807625181789154369443403203181822480257108365011369317716712100172978607286115555696296638695599026336646120658180905921321040719371825817788255870311168925444165289234105172136113162499461609683739804624645465591745286015711092871456515717027769235738086719766671806718750727980458376280851181994816382670841391935511605051136380169660203619494531826746194568737605519826934988840569703646010529599385733004749624602457361798018847540413200401606399904930365372330346964610275983262124395038335628456310813261413041150307153406719044219806344334111658936424923058073414291600243674379923905462083815151879236104889110077359785088923142336900847567673006053968928401207171172276380641471402527424513653483492293760536241231468304502195985247673949765035004834231285931257794850236319138381948949343630574830696263883552921717922502470450717040218335857127424365793427375932094531872298032699374250083476849704141556659221122627634772952228462164298819943595035383382472778417197872302794979059042635405873996096225993474729446650644364225566508069511323469056679998922951922443006497785043004615966416630626323815734142324638291832571024605991738421394844375081369431919888524950035978671015549320098320398540460246061552130398465936295294751103654904527078413845300974294579876865838809468189849271142012626913809545735678344685042892599480370310088030408947466806552779194676200321447904889181064214155523498057039418672994725463151345977925779098703573938503764456636234354883159148175249338939141801890155830100549243828160921586061320005425604758864458323706988444274345139272391233910652876367214738202264834211748621488006122840573173832241468947950470648258392267737630131024039690103582646941502118819649914728158931773880853526605093378765505288775866268941136169646309391780515297053704538568311164635105306298451004880893886709521905549401270132906146487814945199203822788463611356647419957080657631706901051433199664156087448174689479949952087500798474346063756132673784838752294935782542312648277414827086994690863670864698913738496675993756330403567890615484158084508960319034504476144451629357074423805747878012739556664024847093502132836820999083234605195697194234213695177102793044605645957169497555436655594730190201029020477860534935755377273340896549911532205400174026459602719447438778542115771649761480327756547842213885663436546082046379262725944850597941598932786544121833153805657213271429906028573498991215361885216298422618575087776693431207596404604545379810217326646365543734237667674620245325858749816469937306683065831748083738318010800063780795727437273343723023461777952602353478076252155215198691573742816619162545596750126219316941573306011263590051776565681524838989351679471295584360823116277231503532167011261255055419988228980494241322919163642222745861030304730959813668885099813198033034346002596539700099943697715909347129993558381702224951334635959909056982276038261152508927608342416442019175500923642640607123403235818772183665161091676078562851275095518236741255652718404191541332056104853984055718616433696807931722678136629082664879607052540999079819876512653278804343095929925185093922683338079821247372395042445138814298540058682932289874668900812515373703591047528413083450494074469476962817537556571707796908884866608323833748465131199498499994843569198670855344243075567350549180409019447888641083693135336875248260819964642492912409507512474660120502692934335387644029716830157909206895584541329639838994084661629214355641908396447805917735825977965062524082157066504762450072684942149873160510239732524069124937470501748475894909269711242741265354650804437746799175857032817100287668205812357042627497328859891634147035157839327280892641123671867929241251002503318945820139395604443562657186705361129879672954080237605881510324486349902924953863313664732771066683973515914003886674132248863222981287992905517406670458471495342404221989336617369595911777848103447369410234568503497182712856230330235701407820610409266888295800236490158926162152661450386273065807961821255752837768193962480252992189882502629809847587143453429034785244579192117642589163470744332437559642055900732108457781291572856834591203899264502335338470548022816161187530904712689443986191294186185548079951566031963067391243252810896082047514111596581467365015707343017091913164956043473963614582172492093639074508998894615695278061821355625872532085904847391547552696662934951654752926730444206875542436008029511039268820195592958341003385020275999873702829155750813126661890440876693860485396786430205075231936256113039404341163715397061591523871612512866225584084972331611172343630412512969675774621636210630321096037513483103539412693595521408207149516956716092539378323139070645729859883938812075617854040608902606772373493546739507827787149042144354284034951319356005818047055315876128773938841799880944767205237712513125204066097521655835264940115774061393023618845206247733861001739815399687391587360396808547249567525349911008701410978313162832020813311247970988283518458148143488900338743067013045431257080537823308502994219290163886703265766910170028918237044759140099903908653172818407647984463847128868568370839140638995482376277609473878268562485468370885271081855448208165467838079505556746825503557213482544336573752922876917746638071588513423201062121133269679557668617457346334393727158478820521822788839683597079675415609020891834010845944634858534004827959868597321720538974202643360339843876526781063682656740771796132319859235712681096078298702914020656405016867199360987039053421868090836397448711049339444520161365758442369767786626482544713052005537678894520534919435793747897740731222882011613474530716862849785099349677843468132256707551026400847370849074459823202983846830473035681187949206073161289211151015066586140834280215933126344504851299123487925826465781834802047355351121284845130322646390801546688240076755172026249375168960181169800309328076164244077796226307312797907291396380885286132791312378302847324128245867099423700965939998660638265892714425760545781358919307616835377075635523011194410442528321011597547011918387608950514058980264637458313440185601542584321487951534512553735440828504314202100497512886784821639600543712294819059057369898803494264693986443328890158965339117982761570038807329508084233634269277487657043609476268321137527298931948711007793538307028887921609224800415897160016338483321987035825741449231905758699311663791546119994586245871068359816119711757806396383972984707614454659330541761337282247027615435870645176392300235685736743187262026042522054824306234712195860526490269740467333261531578773832981757330842551922393259077254682016973131607334714826329300310220682584529126314231868772171662608292964996230586207187549154018636476405407723979906304847759716406388300359779461466624547461736651492288353608464310484161238993377945610701695465126191417818148049915100908718997291009544752278015042489045752402796624591536570951422563060468229630417531243619115210358334166611216098810579776544093098855990450308113907027499305121621471662096486283204472463433576198668018991388686134272821854123524930130786274824610834443071755879760630225666896433919240872740815892306682927146727061645787239668960351711492232253757985168917759784516346715203111926854127437485899016761823637047898631035311422809924648957877747833244547340716664569323707127896233150502003848485042784933781381322462377625425426859726249109372463546873135297520890971725148806522591031697163003076655039678821493746931168881018553999007903392125541825271905463437293004227985628844018112971779665463918271989862081797991907459622991484389400470052460901208054489907392385996970817443877473342426801439160874115904202061878867927515086797728931189653772324674490730379178318471875802316277723252033391488796369050438142186003165905471830866511834252898016873647546038542527722909763561520079234425379727462139776431470298634522541090225555739034905933529230699675947689280634015664515182584063461849150421227176540878076213948916108838521365303051534073506998494888275757440037839717557222641609216008781166138749362953042215155126976986059858915086448179088475478546965319768746800005600756240663390992076975774443472657412642552541362244401145787741047112525318084203063277727373991371880958749533931422206929965489929618921332891769588818664387548203498531711798599390431542958768207275706206366344785185882525954169395335095583905293912165086447146551333034288635708073371051423194268279600014595402761676084735849138293222931652478267266754274227317275450079279215726421858635348736636235186467113480720660197394303367695948557043103635986696556894798558436781367331605701556896899186011811369002644103155467431613860463271324252653730598348862876222287839477210622741445497277826741938150450328759690713883056681682698841737780337228145332458573482807783771317059450744150863865727094585365810345679117469100303636635358284558896263127144301373858212344190923162865521309786564230161509455228280089338794164030333467017228273399545693401287814320772528311038953549434833418681133130361491195719971656978455215336577543468314249299138929376872900540195372876615255503409829073302452066718048230053269713002285247806240958551127288089387394745516863127973988585987173269151798849916118525910234989274526759422173109591351211274123944051801338396316616851657497722804607687405560804609214565292557659321702276393831559511400771191162859467190127914725017318097866484246400246869726397848947385507588347117767611108221708310070502118272033388068140637644871195829408480178260872084936830568715036636981724153782699760737201469554058296889709139533696142005481309957052359216024657158127633353753596823039937370545020251297483074190857457145095071987821734304697308127674195429285249445413967632776434664684108235664704860438075508709219672822270528047761398294414894877491956244492542927052335478930002154675657030668066732546577917106651452052106018013943032677628679414904199227184271289927486103612181005937404637000215611638404951447243213956029187670250997674912631276471786691521717348975998435285554125154325968289361788466032727063456572424758001755842381858970624880749685104947610348300889988449755811329402740116896409996103901405277724789395373109966400815242861679232915892577373159707565526391005017286249558642356921248941254006767575453591238515965917883250563673542150011420901691023494519845289774283416229268236856207612098160968532393115796061287748530058550519821592128120477250296961380959571617340097707173361650106071362917941013382308189900307114835295152907997574277842965537781124438773990852093439690097031694062294651352990947036920408834958988412433909662066045551460352131525356726959038442809677960145831320158935006587046388170916742137257406724612910626076296445655094582554676401270800571094745661118850971833025818950960423640984860285150054867956326275077926438700792141511218302100875106451603449303444851081206339423232594832473708725486728099060709201750261502921803425765102528295305366207220423261984959633521372657760366871696945287325751801868201017264923820601043511248950392869114072375410004014141668124770217313678519618183058161194750182436615932959029703665605994490819941278053577000224020456430789946658122000260269690482446311996444258868795204365168608430557727764278135856276127343094623445328057468172913446562658364265320378071639668571602509682493546397929707331101347787065127991838422623213209582297635008213055515178602879041282976927610791379637736760588499928673861313452633836631117564648498456369263660171736558598236973252979264248435142602905016527971605581772549643371884252278029498377962908907488585988311073145279095656417398054495863500083682345014086254869072521315357941741652003558370846817971340831836109610193792932406298389884203585922278543470256922003469104389380310526170763861766193361674381224440934336945140591048504771159089561143950713739638263965962349084236778013867339465541261922241285328226675225884073960469343518964850782020523908321874510554505387740696185855503684373976731497839804306141229485614591882526955307207191153913723648474661290778196145420101495162466360911092922904327805217988091013713481920995128872227471574981990994253840595339900221748627463993614878694411325061978293248507530926002227682141028464951823498828995370329892108640298363493759282749407969103098415755386617486185160551417936967951296234173959642519542459065320662683366821076018724218126700403223614559644887297897376858421861876255509971169903014377419323199794123263100102204949601441475545896578267911653674174897811540612668341353334721227013104505429191294705944070075798990372564843474606839712625812538990066984734804598495588710543345125701228698445488192752727702114352762967222748066408013834894701529412698795711937394907552299991123869720603263750471238500486718985885633052871030008622495888541368711127102511451000878758530310807545747719107027902358111828349089686027619950148950006713823870231551942884076441972710580065872555015538382345066040396816267336638555652254918789123476246375594767063842148666848123675430217859508036753698563050546502016209433091271125009715600714217141667306446491153916738167299378099415910189983294570475993260439258829071469058242376649194941998998728087871659149657144526777892168969501941497217436315058142612533447864414430865623379305943956643152425507199645780685221610210012751877188648560373022317928442360890972389443532486741900321165535638545119584818128465096508792976500442629253216131572078512279810345588758133908086012735924535018688011429284972262148752472423475731236625948188964912620241495232592235174048282709977997613107015468834617364803980366755253441928465468928056719098271795876506551288269196666655318108856075024923983680268285223056498445250056599653181518010521310845633910333358561290682136486298282737235295791144067412343541577833312851281685085337130248825169041275590370279564993375406297307608984093116677706554428031795060359348792254533580755301147803965911161839164018335499783631282719942482183370313209821488320954693956122242386387860958664810925700553842231697373180863759201004447623789009308683758972507509004347819533211725767493126630534865790862583912067233183333023984093401860895521067812682171688068646689699060548724294444603584965207436470904894039900972167676801536099584339818143931259680364321436534471934719995316944486669502068661996034969063372337439292767171757934355473994781282400292367106196743441621805518518832347913333323083428900140045783229681700364613271335220454978263656650010040144901387051105481671001908917612509210110842534479209162642339250678023163792746067884336160971445291882882453749218811058778813640881454180089675232468941706294062103320604645628342105136070286544348145048815017577845748688703762582145507282587212011304389005256041054559003954762410344828403570387792355982657499910067028896856344467775541393532989305681395384269606001246211661161261338647708815152118918224289376051254352916617823184240842712562432313168490939178148477482991892288078421712581402902359686234632884285754972103102209073950126009977733236649480616777629639571446616949998814865496732735165298221810261962311038577361945126803427845441719591212252869920604449959019290082251513553722549086618860881387066773705886141660432354481621369040956365987238497211137858721931995207552758574453551815599598030776713703958483819536697585532693214277218349565100671289901011058050739295479396205891196232808138277664159575199279065750179214057605888784834171411976615320947219949921299909360467792903261402651088106252797675101219812210363338412631122100719196989582857472143360503410418356541986421717790448134408198180663591571919001398438146585103161334120385791174987938029971404321734224520243938376047724959646311569997611531920062425735590557886704051165791657179958880832162893221719652583113141976980364604336039890426244307919501979566967683131358933951444048053753649342343748185177566562157691673587361637981636819115779735973294982180023517469082562410330434516257299511868074456518464599092648801349577818551928207197535085534154246794278327472890696363030355258788236914565282819832231574965547630390375839129514205302863775540234927386455837172456062017985876091350387377353866422457560790227828605092454254680688091877444811137072693183248941505658407521741413891324443031807723768353779044389936292418125093857082356459570455676440741183247629771409033509566795785389088700826410915080095538512176321690632748134333440298300455604681606956878724958069592604865214867907693427821538757443467244968535459496523205973469770281917224258258076060133245297870788805658582676012362813642825844771829014010781696850187290828015464002667821715145711385175786841474084335100360881165245514852615664942917963431415366619564169099630173755431878660450057258982578901714714867847212912262369812658279762677827673762139885123597074536367967160760099825889968900055001088117609702705251607562385776416821355578030890886265881939818337193698518489335509552621781244645167651732038212414291519219064580705376817358337627360921875278526273762109876519527291867020604471838271357315675939931919156532355653022794521295035409001670757181166436428967663317633379349636461142313590669913317571889683946772246931440717536482584612078758835611702186423177416341042845324462971457442494222326654283111536641055122675329000745481404381770733811955053849881455816651342473098786376097668420337160894045004641178530360570324741170729089814880042506566408611622914412322353804977196021760676759500291745107267118948000934154793618428979423612712977493325562382139025118849151645681461027353352357313048005193918678681203047196478179086242433139658807994983595130375912701708013818207284466286047065780431990136883198226543405533665019468041078876890596971387040331261304531008423412576050331788310813119382106864134129939514242625834115267900452893438287383712246470728174479521367646704340121707663992833769445917979552432017682803000025728429294413999280486912564527964959937134018057244670431092771865980577198186606670257571612135134566287926634563103933654680968020283796501642789339074693402321239757014210298611389996369504772916514337301195185672216628101069125675262719580053690282890896501529274368837488926706602618531306651793843204535719640456838309886997134880883569943137430000063341979513455049551560589105167536589770102515670041964134072646055887203614578630520263292955476922272806715053117958366859832210811324641733593489478012822422045234632132388704238206308592707902738602158921344774890212826754952084610725787015693693457950543366150915420086028325135633308609648996829423664500358076378103223618447915282551672247709913093705855605130701310105006928324293513495491459712572065964088567833528181164648716536837882183866705782703357317443405874837264389872470640640335305470356892912334190609482914155052805299750335558331984973163298329872694171317464907099006778634618320394469317764288045695114645239029989998712863497221725929462248134670894893365447160762500275209803237615187748415450743343594415137864863569134055294613471864318339826315952223019269353758301527219980418781246109964304220635245240553352580766324885841702894769227708606639682890636759948559866959963350579917953930217967111659958683543888421175942366458406926245629911751054766818981084571108555448606424425991498499388832935405820221492831184790707099468871738324116253746799041869541881356336464393073996838687603380128618516300922546317364334700916931460703445365005295394768221240683147619057355270010518073582690872452005469325140183564837539128345239203532736961178727332383999658950681515792525406251106562916570585232161404933613045406733402075171382122038574663409100903018225482395200822630857240064081013988500276625341470381280577166706916213240974942671791840323330131274870779636906869187982804412995100109865538480914774557354667102592799601518312216607514780047908953508426848194539425399987192754296220065432441445825023496135782659638269525971901720143075837857508046377222774697973085379942214958591284495455316401946696851348011727492326376740766559487799438439180977689306594597578460172708662152285976661215530457082877110892744024506975413010769107399754141199096138487189739279556554436576554328265616155501374524808943795796049885280045761817986897800414888668247460971411826223110352524497253640581292523942155590129233334987357742719098240946065551204274776949792510667553271626099059582399819283397711659836437939471845091824443408892743693327211582529135641542795397403120233932752652871857143245341121657768418663620339614207368793594900379250339956977525822336521962436765154781731914239216089420479539271522455514934773939933957089162839651859467951184895066751881684395544168005286374759480610372460083157379701284551936035390373771880377318159066910757319405703252407433407746073308364641043977390227995471220135528318261810705003246876716111297606986747129977525302108786395295703801536632547102550393720642832578544914437842815454957229152868430296978532528647309176976957597160530357262189737680850495968893598650260156026412708190993845770618937518024714840158550638928649740487010738608797886461501781426623507365566733931910984374334709799080827119767048290459991464297251116563062668341746690621100557617579191847733726344705707376543771198815477612170818960288794268690344804496766887102527611538010658583192610051112404629112802096683883757552539751383794506103493453244974602597367583497347751556907740468276949565325053154042065162510273514684282739877091473499941581247835230321236386914686898169387877219122739015947165671626699300497428816767375501621436384657084588803606149401240141768824953820330684524535803175600323899395000763745216908482604963742489266208752372439478530735252962897869805352272757842891291057237217154284484596710700313344670209218997593665651339476549179791748016255490264013335845743145135869851337044336188895422556484859170267119512383364720467321457344239207161223578988388444292984638944390073646950218289530665981795057287136894469712231949986117668922019332760274630607996539829933980648681623014476476690368445929554087219176268194237894336049822146081585661236563890710313818185324775888226012199748782700238249971793181283723392660517724970760732346713433955884887172235803746057987237433789073542339762908693847061988691553078027600304005049659288277529515455715368492893973680289784135509730354856674106686552048963709787122410867030224723480895882472499588793544211643764605017217080344225375800907235109698958334812981608986658709925222382662837401817339296928117122564781226445405220312353260754152980647812011881296225952532994529827460402711445965916954904564637146688237404834139728910057392595522967759665263179795080867243948463391812047866550190462250381139056162668061762689548579932987367156892032245110596723527656326388809981740518752593940502925587250638260780122268497624382748004172899702610749938246156161384883307537471420700400398735714602219533241219371541500691990375281095217486394230782270877476824239767517500913324689876069271350680187784713603747871878963795107115243282163303762257491651795127999654941575755724847173152103260271970088586960648139039363824926952946361970556644657291267141091208785063003012624256701528737973814816724154189465995747450527478798239385365162046323569562444032174856193514582923648598243180201262104448887461413827566638576720720782543983330552221799703787991070432446161956055130278069325979960909286594652287924050590491808677539945601634501624260840689353753471312583892134851636113255280694116073463769168566954728805529887335716110420078594877827302628981528013563987041846642722870901115131132612804643182602076893001705597094536690252589442796658151767440385281744226865666153390581752786634849845884736862951189931047709936392922041620562265491213690390292325828679310686150906418459108820352244872115526258260348479009539190710114209196507342570611930184682702222583094754638602976741308249318994326362349177655429647234762902352136789915158898106395963302065682581186583524485606673472231907884306477914069715327854807742901633280285120376864755854262536290302005028558846128722491890493171692538148690953078173107502194573795174244262744997745251043372475405690197599385347700725534569529614321853472426582862588769481777301432782335284651931903066554385272789059614085639814631839463304870493180385615600454197247571676549052174646247859065751359979337074958392670132489725010237166716428862658370521896240728076796293570148588600257327544623573093989192621332079631456595827510107875312605038079402526284763781254940249514040823083095083997321303487140437817886983604705904061160876051976309621012845646950994820275441596423360908075716455632763076527327641193681116580215229672417008477742196485049836483456943108827726472189470278952977637741691855131564546367261970296078234828371230617892485668361964010128427746810795106722688981926518282851640343559168072171355189873825476774024880214498476003798694675128409202098410726725772281837648845452448773151655613989582138178441571666019098320894290099978222691297182146015843834679396817243150604052436387833244379058300989767588466470146014642056968040514463981837670401385341254353708121225958571944049693786394074922808683804188899203396230010618146315605977386462252451186637617667569513781136764739448877551272227100529811880511355938786046773213425089031711959943236800276449297272476654738399840958750944648509298034915061043863418354137166006558059332700478210549185363948916044043249900835511026614022000837934358088551077483247880794855131578186316362104891724132565834663304975213120842182522170178118659768391445215241675892613550734231249877837037479727820068079053998029533185999553579695873694869277588426358092033911979868606374120898053259859258890451903320091238135239881777220767269978509495777485153738161011108573924312080026020064834895133744248820080397576590573336593004984343419613160589648610336988963632566552837919907691298124371376255551687994797991469540995989153151215226660556012072940032953836955354262288301896070663371226858913897754253509175944268855024118017305974263968401896099278042417498671923067960506168633248020439130077509342601825353253045007271449350266775504699795575966756849039632576165173445928268847028118459971906283883797123675253080662476027768405264813983895875491481199627941398045811863814549813034956893540433121960312122437328331545502584797652342947511515923021900953485706859433957931831081112459324844944493256771682948328721431441064240286192279295022102824040867871426964894358162849004992716870278520385401402557588464138071926337182277755569257696405065134562374817463210869443176931731217282892606547789534591694755291577562422535233542935187549981830206502417747176679028937587522840652599894923702299365059873062253453298617929007664171530113311566799275821604916763458155571402297138036809404756821456258068317380927976817879169554972890870489666772404638366117165342597662600003236587719305994294510252272099734530224523768423218395124415010058247800350498539333486394598843516450931325392595795385780623477329236709329137104061971347082870419364708503482506045667507653170146422666238441282227001654514946564908433850177297279289009948475234760128433192321000017812399139629787394100188277262861538027508237477975685975272813136321834346705146406384705872261076299200435478794318384996855798249779030791814036443920045060370871737310867653087767258418250481961697091257087026528166526795331259243382447525628704103168279985943156932617529720848514680841086037959022561092641995264471216966209926636401158267034509805365727918084586710274483171420766061566327128280167336594457200098695638298769114929568691867177076793069553206555876235563305022546922968574047175342471350208234698699116475524592685138380789310553751070295169666076718328060080560395680880909424185078059344011062394275369453288426842483866385141420411815225429660485636216429251942751770628205744886984342586258671889614771061703709321025920390662839868558450404637053714048098431773797545363094345002254235706653650138504810093017339795455776593796416093776167583061213743685068546590742529879639385866970437149593687251577098673632618145430208290087942248850539483814436018747624066869205251859848564711814313605043369264215318408373680955792228480757389830231701721108314577830318842409564401147612842003848555382851184567163611881399266610594386595516085928814938430281550206811117336877900189071998253253583938165057618162058654170298290256037885952599601744359958666852130330862762243782580727563121374470085813078530244301380991472088117581103402079543519137593098329734272201884529115002379888981889598701273480378480248066226601272333840000463197612384212423012542363037417364714424524120059292785171230117101621598031993247795687150697759797181490571461175070104990975816862431133248700322953011761032856542967120794599868725061673186977958667422719909240651397196697443103179081892246284645041078529702644264173871619693959150380020904648056307701685990865966086014150715483847494275650905321022051251337005546614566116997889901503536264503351690055273919604490144525489618349684503940154733460618310999341051837745003279924213061946848543529490558787775715690198535438481323079026770939139952102218421665042046126172642731123410418926786202480541758357925627905003979023056594839036743508209748425849606176038728151925360882569288033779503296341282372365116060068260983993713589147781163071817934450187113137398726851995308912899743241956145666077400882375460912119592121674112774711013537871893015309777386911537615771462479069225831816705104138007941296891692961030351892857370665379791889463453062442489455109280038971304855344041576392882127140393583023727242457092971043297151058608173685003882890840753838723972682653527433254669137455418195600625408261558683991149930604199806080370887097044234702076095865599628356175905487576709203597132478495353397470499908685053420908290173071229690359301597215401616012583361573924942491772518187401548209733309892528486315504015634818935143494747647159260559521161828406502606368141234760613828055729178727671070941052382802742290773311255238619759253941346300418411173114306968876188475870246604408394893664154990643428383061493263911912427239018646035422841198771984256136473837743239803487965121296790697103492666971622452306033552240975135348741246659666087994998601902819609483833181515331157050483180311141287707533663164597524772345813317410281424551522847200576400595676763861028579016693519715831270249851166060155677726108157690828393253545894255120774006428234409359796595551617442372930770110165672507731241566605093595568812833779376246241981297957472116354826813411564743353379978214241958123703305413530710022569475383184758007601140190994661108297801699029344837254483397767892486660083721535972656042701786352876055269265932555160008379803031052373915199346076881504145258247635932486026088169048525843171423201670624781195065511341695949393072146654264344308146100684466198203704180922326500153832803760092606202017356121094769719269488171764294167067089977144452336194885326949222029093885444383215812977443533623996400458453085929736636583470246547100883618577942896915352321741169742044843812004136373424516886289466140466977687079153680687216944232574516754921601122393645626166884838006027509696731239966878762351969383640156866357993506749133695456936247237494206484658715204620895319635488901991750881766495784462043089191448737435338639183592203152488990992299949500456318939847809355735011172341769435856798304068410276866485757115019193157597367574825369605987037942302015183256107662792621459188657913213321604261728718356899974639251833932232627848351358908044293187083768813816408063190307058042121787978454730155856554794998017974556391771084206449495272649290135071596620456723232851306080251053124791347040149193812793618140683542214252904522888672203434760366417192241244062801623266400636254928922932349094785578626220292409479335812125028395716041593021222187561177976381591099783774440255156874188219488655541313322472317044450956085372166455649665033041741009660983921183945934757138421743737368954723063054931103063971274811994146849658131920696631780965001791430203899098766340919299423600090376345016165817871694122841657525478763602406119365672550794274532571173324237532413734816593387287169191779401334160383560390523321122225755629351026686814667248835384888658522229928308172366570353899653381328785132664704981710702841152014420041311236758768524052013244109607251857428020205655921489822745262569985634946615021476661336975500762355144025292474022056603161373879363709034979115725805524871590231589044677240527620190928080565110956636620779220262353868188604854987895342458122508690865973511173002532218144162832692864044957419241231505132053212520738006059608928283494137186880951478768309261712675537205964564436009433843141097660863370455606848756573305480175727156252889084285033822794430614467419635350654256350415319986109496249419270031833097937298196220608134912902483974914911697266514383910958379661292517187971363206690033868144604818180668759284011742300083203539102965752888706412935499199390211700034901127555263734075110741072425375925173981861424077309778076139247001796761157127570971912672147321222895543433861993592736254740990938227329918393938859728981269761985888947673561381059940364979965125071200281214221954177027984195172407938871482775758688666624444127932720584601064510835496509778951929345133160451865473493242943135381033473536788529010828783873465148616640030390906425838273671488557276893189785663428569409823547445790209757195728707704348790793888793771943503983607599188287345947496319563828076530358417494497199138146204833636781593672484466930213930009417268277877623287011442534485266728389341195562712816836618184532194476672199413045529654185601988638458175973662538526354570664008978162010922420947078060374865129487671594203608223828988642907352071408128870000585316318433228651825792439630597936259555602972780358475165554930907967955679118660802747375230030025568820991568409715883596966446479296263126931384349047306650630218533392586211043146498833870106939589181550198404115043074221048014329903308889889748164261120083743803715556025385453464971723553636057465783312438771924125910649038698948842322640740315536908300722438148182767819757064755795531796687529332646158313774461371502262068981563603207548497211402117391410366204149893681368072436249840490837855529412597034256482424206720511408368980909977181624692826774371052716124382904937663815458006040358657975951933618110468336978724427245693346798085159716764458502250219739093169683747283548676973139066368181220304336640762580609914127631812722442272525115444898377835871892128219102445250801796113279939326833008566778238864133361628699875406589514720570172248270402617237583833996893953240122911952301249414565332242213776495337300939396120434157682137589210057998709387618157601763087044081739898129516351462798914342805125952486362877649679982090708627880411266647397217586478135117797047401285600429365913132796236068007740763165962534560045422421301978573318435457240881015001093629385415244041030040500042690358901090138589140446327243069031837262132655811016262078910737992223382490808180927318882993996115581977601128519158494869289469513723285007380811108764964730654206983301533274549764342401319632885869485335355206382340680553920794753392560750154822628726618566094138592989092332376380132987894965983163941754175518159522595404366715368055770108750020127737991031727766007727386847235456975758056993677130929474253515497742919815990170709071083706882504364087490154530662217806331641227300121552372151553992979580670717810198099589312940467110409460245832744930655887288108017686478992917978304078677730072987877851603337777361551974170966264947765119735688753156445376888906812558233950088231066509837907727440929055088700345036179577434858691097891712148434444985462720746429240333095105531117581868867265066340191323803721979723168261437858398550768113309999050078879877208784780012552275437676205631431565529082115875567878431499986722119349257867297242051205464646979166940857277807904237380111284565379110996226266210101428945974185825293744920161729285255610382881543369511821625184418713155104692417478828503080890613049299035747885272380123054659919545765572358047563794840530227303763133479849132666122416312291839343366346512069474565071571725641266071027284442955804823431405638664862407745006822190526146934192537760922549976842019960858061940593903638518751679010708523008202976188820535400078821003205654592188298487328751813556349899891145249340038782053323789453930761807571987024243716371335651243078354337653113819717884443238336120875293752039826362235433402720364471721085717835469534854122378115711471017610251490647164568215958251287372274521907343561111125225737389563137009921381915192336168092625970307427482502203388981790539178740603856061592266786966946975335427681048983157511404470362715214531985946237374775781067720841702319951345275232398348147065122371675832719170236901897308599543401965113193749221427214812457203785234112065593628178881060471404042404910917165013024902447485288009238699309506880631925820314881601192456186885619028337904827194915513549794837742325764724529785035020305515586220120528807871829651624032852349977686112249646494123917238142013294635981533523954752834629012946402858505910422602783760870720448166467398797089100364087854307493446924863934610748343200635884686879883869012124185077943203788151147086411804555029493773469411745195260247903000531808631132644725807930765790041448445256683631887287851827865381673779701358700933218690702643471198593619805246349501850202422819521629699417929320075219933475017711161264245945368468510719977309204467373391473166772936181918994300513918058893089259613523159923964474034268377674592418209899810146534877357239042773242490093196161490118782937276022895379375815354628403351765370888274257445535949274627835897867442859710668656557535308184237852143232422433652623992806197855603495566484207185673793779251371157779698564191725398592365310478585325855090779542094644729541265226404403683139506890948559142626747136857082358653320076290914917492676046715887020543270525401426196472527015378989008131042991590627757357482671962142223471295871753412266400388112055772344864068518307689327702978633061017029969630858451856564695458490901348959789326936341897725071389973762807202407831515608845569005699200335967780762019491592464500385834876116226659211365232003570576222920752367649458729396058555786771136081491628696909422070397047284809516916429214089601358580073407558322393630123547692563646224921970903624691249397312202661741525913227454777264083257427738215945691566724440411136284982738235190127130715239458634918294878915857762646432366332114384342290776392182634140496349964368002367167632155307483837344693362494772856276655606745098389008582474581863733593459745999852630112428326314484854200015669902491458034425880724371716334943174276541109402084271111671550775450894770524819568316096648926769231141936106291721116083512802730742650850122327571603019435438329188598696935904708475000875874460244731409402874859648944765247606280562464568758379021141163663529655982786060646111137466973330509243809747765263681792701931414539187039374188826087835530545186211982803276745013728032019899762225339458342846153931842623604370507510696204598943427691393841811547443913893657656793572087973919051594546778534478645867395583622933178662293455957409475631868937906161443107955367409763076451592439308707483584743582380418526586792727847641379481541175929919053985107479461648699295422309083613821445820335482623663394262923672080436703813776394369846782045605952234636850611212281965879041107220953656494177499262872970602810146347090346760973236089722680473189320555582997804520374003353955004243674040736018768264197234314603249060836155087594117500929185180160769269407749148731671657122432442703604998789809672392760099523826505165165039159457699414044406475389724623424895651627409720328645526989881454993779455551663813350547228316873048875493447684155966970124813657216854267123056771325985269545437734677329812386894778193344709801111928287859015878806985267789677646838447716113124795896114241205429167953036283400985663166784127535354993070750018228452715693287123920065106917488653148946767915111129103766396925787862781155533701091261974681841553085924894516082099701852498972917836636687664317428229787745555558398602947299436464979182315283211742226150606788173344737271448246207431358611213436180492828086906744564040159348961341464214689494633560188364787323479491077123876343002649726889792793704298962752385649371810705778525621501194226802080072038444262925232482288828356058255982175867995575963715777739287455469571323746456080875617084233512770119697040211907307193365002117942798309640821195057890665119304022161315679514917643150011839955612398145847453295799205185957311286086078964282259286768673002361470479034395679102914370526553961140307230422586749221374275680887628237904933447124208549377256781034502018502666582904109331831992259920801209706176267032323364585119879024170560064275204208390454596755080503010854845370110782137815658560460128566344032069083049530035022444808183105099222207835109006382193743334483741585177246403955812774599720683455544509219096438695967685998063021285950493070411531952624138755898579515009077025190360449036028306113087592452521667665182494253941652759348301963187777108422696349649095612560101862759972500748096871429910607516817901061300662823745637005401060337738847132831550960020621748454908747999790128820021689977232042958296697919865687761530015105023925981532537019299967271167752729267796298841718179846856614464997925764695637803729133335211819449172787818632271376025045575150338306553132447284986624366699407773733558912164610812222114186159567799229362099917981969464664403823070219815366641847608859115928331273667030217724124707251358891987875010525985750706006651428058398466557451701221177381047209278283256145124651524122520501905297580679492419662437897746539916201955457834172328881417863894566559405436276076652246305084703192558913111762023877763199926104279353513282687721417915086595159444283913286132070405221989698277190821678249839150408152308771420455689917784844180075473979244555810030935905976223011403722565662440538529423256344316762315222079129469853716255357294625599228554967785113648778850474836515139275679317089008134158701621748183867257069909058317060787512100980296956985302445873118129262644046657799723415274700253936468107842023124203121447155872901412239378904137007410896632549094703747818137750185119284500378291543456571971348513290479015310234616962927090384634956691894151878760887431548009826592029850810230651122379239521544657987599145971199350161144021000777560768428653383503489486136052216816662049753086181769279563250712622969072759494612794028263608326860927175035466746060585968538611031187482964307137926809708062449172228184947502920124923555193256122226188224482842967458152566621324846364291787467546395902668015611625189193499207988453137223764111566842438238666231160148909760920335485765028855002330841937717476791909470792814652558723578151257254987493812219029042458321302641287714003582267966740882959057817595467492077572754752002198430474269148267169574354383575951265146936942317439739544410853339535082019716434757673676697994972140220362790970196217078678904067436629232096148494104946536010501317255711591484914522718517740473229375021008010005718771646855462328022920210981678110896361307100477041274005604452150534519843004811810332660634889615719260138644796553956623268403261882854403216130980566957846732504426680723917210834804034989097530899251029883723564953477064660645447208100145099191417376554399196676686643751673436240734564852847665833884938782484443872878074896082414980806919694569350458630514094376197887381341765567881449460765661008240922135915797973052139581614453187759888362029037379973107020601333407451309559401933739095205492038363670078870637459914020556832478715208583856703803258104916184449855318957570871051080545010796217229780713519563571044215084230263202111371029579063872794586137512409141741998433202097343322750497262446238978216265773267570242493622321867354255500218302135303725411374209755484210902011874646456047554712559448228919733182830084388636070781222028243512175740390680286844867944626727863649985855221800556508272585118085895962716462933876031068570524571872826788876106985959366417729420579200582153806828733305669648245982013389356014915840326707689988677083516154657777184012304938722949350032630922291834852752081059684009633434494279673455557889910593656961050914451098936755694916188463421238673380976220385795572081940190882639680625003815516732789195625696156167077268233889374049313196755306169381288825684927121138986580708598889657671587873287008337048513022763507885116490087285898119693750580790638580163013339897854594452223225377095578038838787345126513945873887272513931624025036307815318494984075522815432218490006561340240085488840451410079575832707319627544918229141441857199237570318255586484344259847378905017462599026114026902272181593721399897025609372324932298685132461612787636873941576829779426693739280571035868423360112362234853415724898879472203450800649692268420548203446132675962895998589673773850012648954302745636330002773576887859440641773163749156050154624843149458968979985921676313366700526614057707161371677487273656563890514015419153608395746150312173658717967642194923740009028843372934906110061578600620193711589508930516043267841986745633794544878529805264496342207791282401888495789818393028975635098133070009399817261626435292621603773726639493569063418890101470346149104819787976738815884655084305846403105031583698012403518791196729866313187104715530123044707361512905370320137982142799540477721298752764985972008359046221879458325191692132022324210373918485033141319686548283006834753758356578939913861119878266967084162375589042213461034422760186906373570335257602619049307085637749885875303957707816669176783518186319884796195548159419979202392037108421555059152453924526425893825294890224439546600981249902994793772268668824536619303364293107424059713607599688568887537745474994642388436064726208547723842691981206587879315256932199332865020078366783802027314873723856743733251193499118159319200252024017886060374637969823477488142844368710132670445473798891906794607565665871224194337126861466829051584058900612656755351679368929243025596229492775184322086400831208092420475131967475980740267718929913616568921858281278138494520776144107443990460429872601329402490587323731938253177059399634833236597885138130481232207945110835154834830959634733335779400728722516009645512461473040800224270833929542472780425136442798693532503299616438493614153253428167798671768801998616598589513155107419265537856387276124514734562584585890727027132213186790954996202951454888920647887375315860633884666196816244243395625131681780014127221496484390895133319176513668573383151949501286118095237039332369531461711760333879285218359496300055893639958631855249773253352105866723997595557812694628771659545604023513499191418636466841307713315249440523663072927145291448608569018391443997978537098898931507374766151990527154444685120095053731711475546646156968913098327217389940028479857939698700414000807870164816710321511652056563733545557531783597820774795424947350141243580145893292767467561590142959023645620641662314896043493846840887921555636715053803964978762893938214507165542886197390268303411135442062640918599350052338548255648192628031705152847279904428943097540399149987264719940917944672210666566429302386620836959399733488979826482560076708839845639801977681838426355550810495812218948171567523017328755807441686407586373972501963400626128896064051255525808311248109523709894916018551604179215485545037463362978757288163051889035511767367183731466564882989029502926858714464821490626439994967054074277159417368201212019410435494956347955142942147593031339534802069870258874089157048677758457085498743750246040194257034839204314630798090321836788452267438726597565495507560719431263879550405835158097107669466070175532687388765820232097397016633470122796182835219242542388066264911290568411901568698215802507829430120137274520137621820972148659558175291543118394872272328474875714157870433597843768639946826229784598030279262983946746996574603113566741176935688501480080201455348975973030380295547354841571075653717404500051930768398402686110703472423302332970510833873891783596593309315425685771525296756268574807295291730755298230919334710947964194261546185092756304125448999277305495685030077572944248433047927094866787909158103111205848982495307710339706482332336124162035754547547582946699471421220292177510160905222275117256429323025571577910900953688859262903136508553031740394965066062089550758055058159620740475893452890233613707300351555099910686908922404594227617428741916042463458620293058859084338752919511430627128704756232164845295090685862499238820566962434515115969865350270841175127372615033060509864328100264535303064784513003527420778151588201586982643609221479082477712790779812379424248471554950554375048546944477307461772424528043495385803266750299970111253655218546272292587982917060052499398750758543186423123988384476442366732273681757203789514035439993280819636467518623151581344677362702547641836925987872702769721563971891032432358621269917921428487504039113518531368579645345476187553407663998357478780781091943359957632285357830108183293730485098565592414665338883708760386732832201951242223843942440178640192801786389023926550467952548111943677898808549653305990412718373865520236773272175537259731951503916635425588939201236629373564376436364143268509946677586903295905404199761863279046907372748076473618376183506483095393886720307887519587689876115499975531195476692694258692632127572757658120947521621797580956911300707701919738276425730859074709320188253278057739391293638346594308480987404924054909809882519987063013006622457401823341191535855741253388099263723997620555601872186308268030161700314416741672623862628047085308754153218658626300810340096460004570320426057938380836698008246686068800933145119840656135389102508408342020109772376566645346336448248656435619582572760916620385957703207340953884649731296909663831352768818534862370366560932510714338046294232048864845704349413676031533072852884193376966165413595247921143972582120236644259569814205470054759248837950242014099965101541258313410217596797720864746081391308779776863381576135882784280970201889890792164077566635271243921903310932423492384166234046031513100015254697234723275497413591172471681474789585909690722940462698097670997299936702754955356568262989160655470016842559068906202683207486820456550123915742431518901375118964727146967699041139877864367343092357153948213007648224614795263767988469630599946589664263300995618354652808185888673139238698711706116956372314176763913951027410139116188601493973495597708662438452628889442416229001558349624884140885324886736812129739329911147195483384528501540363057685416986477799727114611338986695669627285997202357295604526932535818508173586416816802965023688023816979878273541967515105492316690296078838642663211667512625332615268872369577417907026378806476323748242756880420073669131362726878275112017509205054688860359829519906795812135585703749094055553950827533983524326865088823284935851784804213435552490511832700003551670052289693650106427564594533905120486857735661551139185760971749938161644797537624582643083213711649155924360665049027473736494693178743758157135032243119159659496198114708355753461599120867853437621612550531401550347956884812671665809254954182983208408049726926642102722434677140395154017725694122509446436284226767192515221801004738372625575770189794903269959281333603787277606294692031170864115323083740449098503884759781463071851178592742051530747393614852810588087137597004059584528159673073105982966502680825094044245953769279100951862705389100782917885184806070853527725648737386447544922619874248286195995760958041178402271777529238417524439961623110954938716685170621336645090438327455329695971183558349603439592753096497574215635510041942847045520872418569853878515963340890839623725647737736979858389534902167858769578263540021444362176487928866287491979199288599727974131805656327624976533266519901168384948591853587601724024227320956376396692699993183694133243089757886619456288934381193194354290491394781147400132121999707259076885964192840866572689678507251329830008097720747793164122076220796101564192721879620167439983116616152847476486579638294648057353866107330115119470351894515274198925452996705452910984563080887292842682668561287197570646105049622183517173103247065201838034764417529997112319708997708198460655695285212729830813696623713057177479940469249836754466640055883944358388777420654304574664218336603622775978407831121144413980384729293774110792226131972900669171360124258541701068296857711531245371158197584832836077315360111455823616983590318680618653938055860537830832494986444606429542014860386945827870217540049564700363179819062882444664788354600866646814112226507252563532672432813408264771788702356087751187151742040481336583626731512956017306445701902473680720671881511849100791481800150016672256415193397908949046903177037372819890320079159501314328297521114801378478978287341274268887746068009335917328614736602425535610800740745460439010760059654503875530069887910812355379554628769742556383093586645801585267107228734361896155395870610756796471070371212995107286690205551764375698731219003529064178318453329205212804803370443064572766272575962702796637139919694108071598191533158768218883923910173131383344635511159035809249932127707100940591489190447793342602293568874859662266211963748253020052510359247615928782811070755926726888548229034386277070990396371000080459408402406825693468115634232444501674440688130888443914087018787082915067354696099404462763695892534201325983627414323512625263148734665065906839938034548832801386588277002758224380224757724340731848238668797724391264169112261177581151680261391409314355191020446625159580123140608545629560389789879164677224175749266607369931279847582988708298566743366798382009019032288912021017383027323915820807199766903191545004740081545563600786847515081249528579186160919645394969327015296470109363381952362100249630547764255468011506747730863359967690812536398687892785340675697457849040714030276420225775469720667507305061567095587896483396997581575185544375852031373785651172453215981652500300564106058685268658560136490617899105036471561083629319273260372517039495250300212486361761713483140860507862062191407977608077040192565557605395353660889638766169754979385017570470118017510868912443202340807299902518901880644491629671699270069026091887255831091874070192958367202104280030815233539152049836481506176782216236941848449136187859879296749985453411071825789769720705055845125959698677856563898717411956805469009499006039587730797751308925147062603011470370437136291753246467214893390580356237553701873774527989433860260759799655268811918505951828579761155943222544770652254873046927250060081684561628764137386552036587464090448806933346207976153431153090618712619149090886570845138068355676559216151220317365572406692908488960735830338056327976411469863525234770124891293252489840171475842040467518173716529185961969229563077934895824000940441278632678117960691045059060008605666278270717805801243539262033772166153113086278222302849946594704447435416100609179080259423634944132817540988399879775899063614005743852427334068126954700619494192114031969088445396553473102474018680728174480923933310165884103232117804664593984289657783249107290538419724657367829556629636161849350611667661655265712167440341920967370640438247884373625688202376727467342289113234822548651662286992604058566476137456397435688080407955796155086817315599778863658814065956404851100028704582438811456286585284046738909446694082189885872810746304899461613737986166297760601847244868837852110972851172829639593074546326474474639849023039138679514747208555967404668850468852483094188659430102788202755877363798559729117106618303601745014614235762041931286532045061712380690614482662840244470462363943239073409807504576355358389403231563373506502803643801445881228629772627481327320302852977337064056106402817352564633176516824606556339786451954547624485048497122181818426272247172664964181929560963251850256266001621504899059633935087553811609396508756321053009470330196708357931782706591793331142649787152885778944588131813167184409974799061577249656963872194018779384243145469491483302642710601900713478727627276097325783031877305501736482212772596873369284373136896450027064740327823177556624802923631399988618918477920579866397199551187290698471967974563775073359763778401170652743383400136648149616150647253288278218515764266488432288728585067124689851560774011289487664254020749544237901543449807959982998044166893735529185879846378887248586286950606196666880719457879636886671320515616362106101692995145806819981466970644473368936841803616722691748684748619680004469482993406481355887488362190050536641153218681776762128918270208333958183997456643639272598848987764406958759235956916597812623503307131888867303735616870766701403381775231837824464349870537700686572657309175644802548881307823044460251625843755865333620335766305368201661260305364165060416626614155306985509218063766704983945388549371169481665223871104029864763867647779626539480630484064004675256379518621134541717357642442339447474356028887640471625924960756022709565791084601315003816641443634542012135909827615735056976215454930020837709712440383363490692084555640106798527362095282684195299175403742765514497933476620322512262484249844371763539922066491312016020968659861219409223577247005021377434604705134008914074784813317984569826209096942535541124795574265125343130058266402001147830698103757993170874726353142763209658373399655933542705027049609721549129747047233346182601887969343003051061159636926268341284935921365201631643010104053489049220202484260948155641569640678450080991039887021700581742495835192833338848486185029577103475227393043750603028143920887393315080087204040779051005468004990000734849211505081303578324082641487965828482068204207858143354289101596930164818884647183469789096854753907046658812142876425591655071802304399918930756325288326531076310822747820334550404810098336215292297227566922196411282345982851774298523283427276139515185213153281926282945654957503027860961675949270910343799900432841515385209571059094975160711753519145933146884582885074969776182358574099164303732369263423001071419804378588471788865448082975088364664609003432346896113298135900070273940710324110133687513222964056648615782816130032240581505818195644165532222467593832359951560949096541708586164442268174216244375984663186562818639180624804969874008093087483394782226096502861499147945430714188667689422946202078659843390814878518782824566021115293923189265678078801644251852998060791405750846060016114918047526253793953558002165999578913473611365693470178890219910330691583722471853065164948281650656093226820368581548956715791651680521938084338045013058272500858735710171066193368919290939073568424959221850748564478312228643374247465547339128729186753800190651179979301064613792844159405781055958510326630970488792580713731369272868481811930067239823988666316087289948033824714743306881624143587992575261659740983494034386767640037590098644999367752479637764511936146119087335371213166651290800272609811093874470166735599098176822861110215424626663196278198969763177047599579333764960139787283598679719250993402813470766732927513790422801099986915386120650255548628737035594835994946873875500517282979723573308948392075166216853424112694203300950267659943468580015009390329438833361953405287274582007277671182233557062486147872072425353522561315178471723119794409880948789164757167063230569805302579318641119122818773284973478885911414354970285381864566011378675056726857055871475826936550413140339958691522009092768344773154187808074131986311840381176561775174104488424518912285086274579256952099249980788886002368768651362976041438774693340480947695386316910723042503052967683758737084638526085924662321721191497884269870725904798747868379464721063552206813871731141749906859757873993524948217654551992492217835460528133879016309425047481742779218277729649374768082633763758913526008548186463575344198488096092614540813159296265923237306512302307685002918866094926180313909385634722417289878048022219244081659132929724348494026999095547831316799344281571338695190387844560462886412709470268615345629962640529979982071402798039180580638670735801496229587930104182252201092816388040446571280523721573417921057045096586386863247758979999857703577731502690516854066143201233242286909285389299342448182948823943417301661004014151886802405278691494323915547754467883535298943863241951059249444950680924930476793410875727667773161655803252328123057917514023517718588470288873506868039590515051967192590841943918967161850844133545496768235143116467798642672112859259080617878324404354122571164557628266880716539543949402470179440414375827735341568139429599391085249445517105053551217790034865120965037070442542974514831427201717454431865631769959860944571634293337896933543014093530231513813124796858589410157112836472211247391877359579011882708805237098700218599958856983982157121527778863260273994705545738755662366716736455420381773978081832858335986366450430127589447473522379748268373054436943615005761967477064799192180315094951008973918869166736689982638393788036128366080406801998161750811529790918213950300599494123385982385511221701269359642368367485579939802946869533771621310661852549729834674062723266775937009997768060393829977222542141433250413724023822671368860024668627692759441838499678456170407840091830612659580429718027693621072374831323965577809077977745498589586444155291484869414020786346919949479533302404334260908796249576987625433756834231076049446847355694065397900299754192726933499488974560973789846097113410026472113282933867820511982861867733972888144509486538626828837702980041641180672029224977693594882834637987201479942490666849216788981801774168490617893086332698048948148295005277822493150324406368371643464419027063822827374578552846886308122925679217299942118181548504455433254673841261948456971302925255399446209854876099159664353608008381354148417222399840895237455747307235711679889216796632774244087721063221158935416069010934868504040250394191935290377003844697195189254876158321145602636140471931759832000185803954714109431168143975426231861470976108674345094474399925405538067065889939025042193902967375495916723654270261015006161781580856532260566728761374190153985379400763757997114124096372471444842292545253491910769345815483314087372515362203045553495725075025089524255990363684209283908027963991732482130569450206266877033409111087502823571759718116627121317507213650338704524079454565996786987265863588779556917807329062746205334568215465328624398452764111121970732647057985999069067458210190459342102781450587188110584090465939668628848041121786373199047853087162091045040154788702803739977011208692189880419572984044659574859492867068904301142313978041086697026426794034635662202697505448502759040976658455141367814623292441641847561344599625275318069813139781076495310037950886740081065211173090476456240587744397404776860302939534107047012101025227264329105994059778953185282228850291144150495397333872570882195088863759194343714762534278818529233066661129293573737196951281592106938414273473595558150472681791275727041048805871127319976169161058391578082916990033647739601853476718926798703124554443252691356943770833288836344679897081053962654182759341900793354693960799844886798101525343122304616031230331693320470194502681441530997228690534787382624058703134734944099547493990409413917005215422832001329314790193524310224052868809391596365511083933251863490999204997086323979904462364028541734801739689217391781561529930903988787547628868893195838705656984343250392548624245427393679042386783249464643706022675694862774507947750102145685275940413139041724291526771853405642522447894597429108217528054664404817002825469979926292066317687352387286214892896440797991261900048623695133632497764121353308800869945642447521782266681845326989591678459117096970168717950854494993974263772353841887209259872164776834874012658549926743115510416137695332725459997490701372760560053716876982689888399190749131920218360494165823212875149443107155423467837848347730623852918135068567225246433692907781434815810321537624462390765797013826919704517755456239377209471798585130354468309272060813550009226952423051167255724176446161774252288421934029344237203798581792448746556033833247767752078097566936223723959604905887304622211597469319065405466287105055407579545334789541235281273188156284691034266907764868594420834594166459428422090337612984452989606204848303436977003274498611607214044435382273225638853601374571826116275315517153877256624310966305277277752704694613738832926580866505008907004630882456973043988609191969154962448551642156109852548485977659450110120029726247485531089856627742981236814873785745312456099358471632618383953810003723592529092835883926414237321548854746785887014858156941688501889723024385547550340123189257696558692290448490151402995761536443054370295211108628035808596375917357823987482114635058719878081028953925771299237737447986621894435863394698976312766887423432028566973067129750828628168208822070935086359698015479796426102206922726023881843401143567007850595309713160623631780860625400575923662261986255656449582375172080230540194934407500359423750010841688011751459846856649901809487853311510305459077467241428620112277639138458321903585055865744577949297921695852414578761544740566750289091189502595437951394636680930270209702297124105381556053062479281990489146109629657157726471132647155245654865650891433788414234236994734840632148803522231030603544844295440966121945926220776833311901726704816918272584693772795840048887191290991944155077177742033528039952181457151791711950356404827696979337008173101433440386981577400205381023479978455704555717924362587679388942256860684380192363488357268318005265722134841229887207152941454026200168224871915849394993627858843154936735625621963930132666037980649350519569654751891374934182868111136134227847064227556779437006358590649382078719288496224273016485906333378935683821572150253526804321390559316533120330399526725452917923538271950831418925530435574326086635846236656794774317643532467464758725997369480306798849934576366716376874285153811479261489917784608796409178899609755155506073876650033187404927416966719208213666258743347152886495459238976020093280463784087716902943003629651271779737582642787154446614617554366524296569491000583181061533565960306750147864748426629554854823561592634373393843824884672722435003257181523209032570319832915185666116355366765523937235868490716033605501549612156677254406078814202327897568912502545776610151615663894007996594492883518733079785211432432136883553606430639159571941373675818999723365901213970504228613464195060099603007952946468992567741610297994866048060149864264659571301034092839714792031841590115663031854355783984879163840234089605658539651181143126549366099173247108209106554336725819607622326038598221077642496816991918922336705968920535424900987577328692081599068611428412445161978536688451375446246326871681473269021416621317392472895564428855754970014493200499244121254487517984847350003023818465706432444298110848142837663518889914827582629984052377028968370948942718592981773298214145105113767089355065568638859933323195936271162003738591436440181145802006735959322079009710734094193672599887185285024630611212373485837446179366205322146857508748879788804386951718164955070613720791002459828688189297835751517265359673383977593854148100564702304853060860139188783430125152225290657653846737405387235258740982227119504449357925781899617980152036534797022626332981715816254318802911091136738942276302361878682599121217616615679001000203149510796883460104841846079654331690195729233887664981705304458174102652035990267780867126654098666402845023171906510369923002399331147288623001949953713083390509680065827183433896635056337726981429792837988461960645676052455089660002181247726996057000293377279483017460613580087839909718511064146397698166848119388518500709256595950073605727798415666345006246756906878972395911594566245568245652164129429276919599272042070554425495405089662548542666371988995309088684099851938998676548529135785078944102192640557673617024057919402006528696719211278819249990508320261596374665727438339118607359788232209745679327654801548281162443756506511484362169237323146264999399837882632400970553443960927776979949992306613298423506894131307197663558272755532012254663729231199935598583711451268803688217081732146366858897051089058386329952290591420348705917435686287224843363442747060766051497210154755188437634649520553646585267599693485313954216585494565396223147999659460647241848709561734924579692179053411325589812676656200095134697648191229389771199235403486675474437810971587569220964918223842552273264576321549453382976747673216989735785820598064869000301136683592741484110162351004782808444981628800975753249202933342574061256614449628406824473536925765347550633546630130788025154113856356386345693103243785652032530604944984498008204095742860965417160676410373784289561670521936929025579118022107090712354462552772590578743620397847820545987617013773432416302514530850139426881785570347593334557778651427911476825035533976732717381490474451857193134745017017609448385416681142955584624600139820730081130015831827716367724854929355580004964749672732886460659705755066114387878667975971958357610796729531739334246344234041917492961171937034437073764068251202903388433086756276501731122416429386411691955873100914811905104835878338308088021083669661938315183181644214804264592666476318417561158887842336115154840395428518519895995165797511991792045834884600340259005546388480433003365482810714483581638579574909858605364439284664102808781889431216323047359124802879520686286075508106365932999264793215770539228092826378298554910810352114613208057628692484569942186260492628925510143485284134248051195002551462350944119193462228430836734654605721269370149947090242926401358587103594231706229698198462847488762615472927735638843550788040506232124676145228074577859491421035550585604065643069809200848721093689495417281436895386539446604954637088553054759078222531718395296019468624968017621662080817118133801984515988758078937338430574758720319046911272283482251486851849161255187346791890876433931758912489409783430507370719088251608748346409009826747805969819843295543298868489273655273355370895734066001424997938582311879571226485906291490220906756382834705132459586772646767781797596248179744532777749094819968502057515689246261018623614999811338358967552014611639141040861336839369786432598212196361300938745687728253560977309481392166621093811668006002893190857587092438378261156418348893561949965168071064434294047099261351511434312586439877889583940072438757370085128643679496402669511163444523234693422124754337171156035910546377466461059572451367286224735517487893723833871420564880376674187928904707142860223517472852371060444107293245498355713139567442357390835352537561583795104167331515053276242924996347592448035405273346519536956541633639962739825909310611237415133218941228420354436073057649218232705796361595076169233230237083947426651897303255353655500750284676163448878320924430395648130265782469863579199535852753189186433383057464464960947369931701404880592578336582899407913932789021606366529509380834796261333704672627245701368953452988955320329953775156677543201463994274995398488053198358854926791076614599621018436712503713034758790535225691543257173925721167751943959458836128885063113304783050223337554862983023177543205061410163541118011107685610244412374659001385555184522339198718413211634354101915218117432896409738151014652755885931142808152800919966634600948584984897503274021184813231123997760806606396767061662283673649867641044079729875226461733513651983629468221761311646846813649554749938839560743997604059177605227971336616985413505304849173221878004441079472211479500025028113653928561907108711095221198326302282512846329814075593889773079332876936054004482285996739795499025351952535035306005070747189838285460338017078231857595995579792072586002188310497613588609643847641708799385376928857019176448117240521605205380105882635504148689757844635135642472077209460077101132531030393451334403695609406899194698142851653251971947456543606213552355411309236635421936423151325276897352770250258067200611091571642596142928315671038158768944491783819087954842731541471085616012679841471651196567947479720512666667024851574720948006124890402021397635345543370618973886272706311318559229430588346806671189583722347739660072866362047727846418779705727570399372585451658990785079606084233797323608670898194665981289130367916437371538297499924796677659899895583745031424769826633098602295565008704693125899962703803792985856351499854721230218752201725898473462135960988013550986250435679907985246767473006479871728343966807706924968029603579979750034433909469073856857327672744092961789141956318560093262089971149403800558283135913454817034422217320400193415567079756251390650308163991363478952699898976664658624341480545632906749743017525630787864106243558837412149760075352586541459563613648127815789294835741157458235927257954580582347625468544018395234286301843030388914926329186316000611775180315858078898562079353335825081343419264347537843822763740415959220555968232770369401805595909029491879654560916740387123106532054880947847857897672718335202634828476867617079471941948203867721934230475456741842585417361176546270736913363588276487488966739154369520441483140703951141047294312979564517052793565155576781272135770162813357749119487885833169157251432970128023340994889058007822256960052663312117765272755066941491917613235446038595366334345290942094800993634212590190431094027393066304082059902613870937007238968365596512461549733052132800852244335655485522353051265139597272887342580736569592012605332264658325623090265169877588296547005571580773345389873879220719979961138842436557982452967426828798373158985707696870703860117928276142083662734004361178860811997242985101197614498601517334326438099718217217758021797977503149889325780234324278254966192021702203264915410072056015764936495777794265356706811509452102210698031666193051822656349088876070529796191170511783184473248253266791816341607984491181825599640064338802144763661617418476728320187531531761241398252197419087498052989454673963880428117210722560514232676377369620267936758228400385854034472030887435974869483999369300135233942536298113958833596656036703608915893714297152009863054921300721520776478748527672454701492198041254884305152927909914402592600944675966995364473220003192006664326036188073707364714429718079020634313963084772570222391723890766332876883420904486558686218302575635212408214491893941683810568502410325589987994574577099703145358616899937512300891063877893993084593369662349849426670424941695382057985390317788538198798595078765306140305746190819573109330063627300841699640960718218035852845017462476796258450661365472801728651048368560384609864424592247855590660772781489837704970139295526760927758780214628992682317900474610254708389767518539322919727169061376869666482315763451077777269922415010025421683124733174778343406107475023252117481959566440621379881892683717497055993369160013657696411846309317939314733497155868024550784051851782958251925348342584134341759740892201458231387775060863172518628440798811156001987546235047919624695759810891810159144976478737063707898300869944298455907402953291462856472338822762828186876789263688849532966034459146260774321921437975048504591709553676029235130119871407833900699649380886882782698545117639456930601227400350376729264671829726648522501575016631088330796772424669875885717681619350886576116609647682047929556634531812953920562373032069872913279696486198247948640404704097476680947345300382473520624181429582708433988017255769648600075726100357763244373449548841605404171867702529549757637906146270954811019170229396088674846397554545079634445571379894039264810430935834909601753923837719253113883651245265640419021392237945467204893212144670545470448944932620167766145174944171853109868118250980438712124708702464615487440486806168183285439642469880119738729737378554517424602860459759865133293482275611622387831712431267231128305594390912983213838681342188103357280520016373474743535958530216550711751422437004263446594256130348258467291615129446870742203495158683616636631993437472287483257688491137477386738019870841517335389244026786461823666144791361600082815919129230544806062625839692337484980409223351334807404116948032897668562736529487083470351638216673542801305572997561542463375629487252807877632629803522466876140696761437805331529259363302424984012115214481318385807642724047366047450351699740116316188175579451598251751778380912013294284813947118333026407526635119580699996273489718241947870320681651174828716334572773011102222918909546551291049152556398737139583641095009860574956257620349699012718541285707867742392516020178322335000733412277843499573277229726321708467160606118167528631523851432248850402180072669754637965377473555863732706504898915259871182396006231404019908281796174361881499896905446346372339251271838685461682882314698555918309463684355588808402757632895585416190026349389717787568018316546738932486787417621134103874017547036744947210296520808295671234278149713618688925635124427194622557043905357725498559015178614461340828826048157781369095965789242473890491729367275529260526483814938126000466938041570445446155411455710068617763361288766127916161980509924331915194639643001997482720405549902682510526923149027808210366846486566275476678342686585660277020704418616875766302681483865374287702303458434646320738175190640684027423844723346633109868453353066094263202368275587869292530837037523600551428445264505382289033964251694158592772817260340962268531852680345018519978618668382210099908157047637676348284035754297104735586226816304128455718155980395508574780552118703929741002042037958442810746069106859925688083349886789451952181299207497231741567002064492994511097867060859290460691282593076994484675637602302815656988055198320398234469100446638728954624886265659321628474825719593395540937220592691364039543885460767301385700565846032493578864560555932048346296279632394561932850196176966470212357099833603777654847396549118120758963298233061729215326717265741832935622718990440645950408832963148391367500614698006728358947790610908238917557054762504096261534674801183415815480559241002098808830853432184866806723586481939504302167786116160521334030324285304416631771910912088762125221226675710217295537856702495384891972147437690882197383772603466813129099241482430006048704486206864798951645596006497837590186368240712015296152035639092058421167679167581419552682009170546002036148545108915670805585278532908087762267603577295522347867442815337996808128942663256516768667801367513405813355415991564707452361699922632091948415430731090742705203468665208164989938571699120269620885192235238832199558918024632754055009829929297477976569530884230320079033500505412667338438177735367745097508312622458132166239342521148401652947978586293617683455224242079839655264057216903864553736798741487377953263123865252423115282799563387181410222064973035510528289191342698158313356199159345777631480916970344191381689188685105494795700102382383622436624947051177337638241844860630037586532336297190774149579515903488717775795681414402752840169531023879147561478514499017405568730514954250444410177404121624665165049107315072021266703937090149675117534996443965262492577392804534771051985003264377286741683340426663826224162332787324615972512765288142715568012663201029000581334808719112793669746397881236892946883131253957498681265891782332965102430256535026583823609362637105774023339141275572430938636185095465729490110729863931361334393068441650826551442181345773974210391246400089253032378462900317653570159084505065835913298146999075851327518628281185724546603223003040713322946431630080982081645752594938901725420976447602428935187275151663312070560191781232332770940441391213780477763220935030719436607320816502599979498233469374742694998727902658105360589860018206439432369116365037880627425839774555174993362225858268045819119322901504598373436111627294606281835800174205812399043506682810452321388644362966865592614668803920324384398470623209607280071834995561138777920204929944043433512014191891792178001603315060143784024724695819859992044417637830065390100894222857980346968874500267708084606326123469041185612078940153349497342233850931208121718083039938464865189564243965746185221412399067524090585238754995228254367328092927154338960946088090606608783428734600752572598925057071489940302022826381332000963993504890562863290666735982699232460174012454559255913272972737996149292975843779144709829090125450623111637223980715633375203510454892053715201325048919741347381797606828679296509617137173960118856740199788264778107777007941281392503363680043499598078557831409722503070610092203466183580803595785412141349958107258499542737470364231471212991216882884027010700437690970562453254917348355331130790758080107459818552989841769288473749456724512572676870228903930959926426933995229825220079966942494721677187831154463482858571814763469666010380763219171689910308375147470464424579414185571087340757164309076896075878279083688149470073464254445862987420995064578347951724614029938202641481701408671181809842558475155950259502859189629473362725619497606698164433834102802817518693252612691625737280949533739622331791778980945589051751219983595850923679638776057775427067059953743769078990934595987514241825456981299708970201101456293994327274720504989609143127772786996082180576024308265458132207125172758058339159308225588102010550684333874664547669051403639209495768094327544255357742000282009117128392642740706008837222638791685472642343207345104148733689056685414008366638789201212844709752908048009115975289056881209221015300796522228979678515020467542868079648681208861664030247688442133649465108668358448247259689570624946224316543055631925515429372171419329922787655280361487043622602530264442551280682219422592638324723694101726684306205501603459270460303943442152924874027989731614774741674517663930014654656710876688100919122363404725949286234156139067490149606145893794975313979859253055675141719945283504829203427487585927773714817364424709232113295394232613205960388708887252903254741542467729013665444714667709401108200731119108749233355441271460326361700223150468201550563505805837755046616707953031722501408911578321321860375530961130944441019059194780618614972593361857611357773782947767451688082221563154207099553758667886559574891318169591933064645900932669610004775058879348180890892750543051741723228044936360013729018162424424164644276857569615127746795352886394728986487088511482890720755268349208226454716849388241807801585967093741242987915670640139893804188639047917281273632528344973868689430482198831533757472567075556263737732627597119732664950633246284786835297053505509106743051259701457044382016351152142951361001349458102434308583828242084561609494619820480975375263004210114298053074984164179868675982781613334574650672467510287732735384001665152959176337115094477953160016649774272750255271311574043730652355370536134858111248764673014416637504507629948638956204980683539232675296720468735105326378827354877035644600217039920266587281781396733050783071500974698568803942940521476523035920122674318385256255918797524190501948210989881605188488908563513478024181631975045340200530897892925607931832843309073216685600546745270476340302272165908107519298512330093077298713417256173416247892971775664636496976255377043270209839473456131020480939837624526335453249938241052894455140957282004173980817756373002059017219808951233318857128704933863609673376633536489469678698509138960363856307710503710896366799217731751677933992414627107423955200101673743068515599877214796217403256046434112851302194341733608277616786193605999788433327597579544311884704719237516249327188921114058966585665606636423637257037597610769667936487480074232900191655989284760860496332979151159785519851514413171194455624102567862739213149032803141606604778077747751774473521713882370443923498603904522617503389874781931824093043414069531067796784009032453787255938690288612113461962886250988668749233644915944547877770610793103263504086940862159553982080430432820734188964115402577367067585115398302944844336924656842527215616657508377999611768765232189662052893475513250546767856565591603689440863853352081374083487944787324243819703165772328940363242450930829299472883637149306267939379806189890484803415570222154993367062339510776440513505624715125778599894668077403220139189911556880145297691198889426770839177099079032772985276878872035443273481072019803402731300696988938632982740578994526171631431488974290516240090743307850529559571137647764789296334698668060609692476068186996736363106551717294935936205583351077355510385539536788943670318913255758799500366630517357703392417013478845715821598080176233860016052829416387735739993777055641614748239525310251383849875471103757020778254436589498382548911908401670650259786401937933960900425598545504099294816920687419238112689253148026903521612353994524146751666058394502415668077874600137020625788151322984832599699866303218410643781910712758060935246233383249631431484482196016312977067427566404346068724328120094533499857570425183065699829138415917919355211611994086740617113874545732075154222446898221129475536349746128564848250487567540507152338645792520941574717852183913594686789590619606973572245998504609871031586865826334602749721336000380463377998674897442818948274632571921294832478492753965174533131401942631879038590473359932571153702552828438779197617401924378342925965534920680751784669076330694010518655448233733622216127535228697801241563050236444744291677881659891242194864927256595208133455203850253012916791802495524943171085537605449905511790896716653962721702730246966819391659312149386670770747709807027814496743659394882138115233864414562123716105626398878748400187110432961278945343037392765292243408595200530378500274059616986799702029401396318847084109581292048965672708917398065672631421161165532032131507591562442832219460737983056613492283600836766873143150181423073618271754745838603979574341372919025789014630458133849361704755241737010585255287492498486731613010004844317154841077475250182126900481381336550339657954379941666427989499301693050133924250036149262089236309572192988437305638795292528210986880444483110192539338199192922700908885485981034618735361234092642469344669328273468213549768105200546372931886119736084088797262313942919395844348840912875330887560738848093269004053030564292246784674367903662816718166789420887679612181101863503141469292969248530325287390552603813182295790473716113999397892941003582455900151623731889448441277129514487188254653192221156663426259859457634524657052594970605568990166171357989474927966715075365546630911249243103387331939700967371790353683692407897857358923008553166826640571410327033922482035358564370327677015407694832590616460090058907674025524685186209904320307047542076280925975324265150979747926487960850730020186226550494244600280496088028052202522029769039324755597954937243502766217368830623131476054900970277348826641697267362719153944639527627183832497765123103303850923148495815775452444554980828601492479638976622125184438273981136022656442789540630490470680888008256480406839504968848599751991686303257987621056544802328017055501174601817605923202684433725695318641861712283704873908378329059476755464256682850187187232858746989701879574994591195808378940299750606842186529784454882766260143629960984122238039282754259352171554358298225623290015398242859779454615983395527952340872572635603869717089888671233505791354899706251932734118808781903734113617151577799999946340695815818674497704542236210377166975836601062212075313849620133474218099231243657633607689317377971486623674892075512081215622748732412960206256533169028972388882586011763294198499514001288611060825363420278472205806707622327644194177247482831731174570495666360110599283200743323440991233075407923972192458279306608066116763868579467795740469559721042678509497916729735541424125383782603818994493772363059961702205539369709856807253277294197749062826599032255388684051621464175608632129946281327274498213195881610167963184822718311935583381034584812359961275463578059016867746794679534660633260530935832484121858716371692030132174399332385164323044424083514772294396366697351313302808997479713287139157713745672387177976065587618208809475739074332830167868607962018641308881675278487612289207527317550569291091359108984979628860315462448641992407636142417051031890874804257727823838920025446204806255504772455107696967627288560329259591286131525184484330425676956116257441173452697270909134411853104595127775390477813439884256234052410161497349219987131183307635096633792912998822724955211293064531895801607839457030647757686694347502989613869872405564120390601321013652536406855332839744205592300231726145383076281746581543276354559138788087730415165889937931708517397654442067162341109500158687418844956927546284922570988420472307344727562212255721041450490955802670308466026104903029950974813492159864257971937664283413641548260668077348121737363598016206010695047023992896896031100380297137181566948611782446999480765839417858258059683576507214357173688160713524098889236460813283981835568831787534643207838932554559012619874172262773100571363926695714605412101002499163847884311799617553409089266378700140693770079116628754961592072919831248522436515072609427011728201220633080647414944074899357668190598117419599360231279423875762565589065321329103298484418628418028334362894065415501337425162083972185349818385899029981238474174631805294715536388990356141038147957436885884107906779375483083765198761737392351292721405447816967369586362190537435114603199543418317268056891263873835162098900489195071966656261606165472652586820772574080979471681320656731372792896608610436109462415542522486879004200764821781970595011173087558411490134987864973633201417509373272457262174961178976852025715027358970980733322006828791138552693460888498572935433679660010953643402760883148586648030419645880466046360909072533257528085656108351125532294046834815247656395652285649155275694504137038831112261849548257275376565133103537876770179984540859777358485436546570633376913550603603768339931758800423041335533389740548904431653167943937904575953261211703137148157219431611329292734939482012854111722399941564489462630803854652780732724710706297697359120482035201466663696919316048046846396833745633682192307296268858701205607802634029965930139921615507131439759016898820277971449254598650451752381116724073467385150257780076257799910408187840257390046046614528532565992255527966151004786256414066013497288271005514074576217359191242218270275217676118002821111178108539400279606912221619637641903284210227701202946973881899387234566279044615600524852120812325267815782509282604193941720820427345297319313949830836492873820841357337059054446177371903678067833642860608493279903468170452900459245253297981341519891510363333737285979203629030748229208224058373782210487773103649967833542801852642209404838271056704910861858452898854863541048529396781163256450785023827869551204572130540280151249023779509295691940157766634867670201737215461348837842346579721452603906316987313864111039992788765022696885294891130022989085541445542763024919659828940442314971678990820389135628051573151384261722052887962597156116804933066600101098106567560450917192374829001725587197218569283651289573969096793620129164114060227949228815434363299783212178283088348949724969609901422441882898286710291891390316383352886501659735360580585070609791942627998096424038170116399819800521723500302235852004893751285620823499664083252026679365276718111206900909370826554612252860700619280512330460443989292283623451446373258053105193623895219385921373400022106672015086502767753057602991519541136925369490635225790306314271831584371159421599169540655133921075615696683093028264302172466768762379302033422852539364638464668708157007692353820221285793993215107460846205870820362593922070017020567764756573732824109113615970414981413506666529855902548036818846293903831499408398479459744408719678787219450061812578152442438949514038526933181445426484270599598712098017603862618301938491643720542708722196662671042846017876275078542594813784785739424326725962288969841463775329888876384851386398969886729967097995321557029295931670268157377153255677473815116218468597686687685939927540496009671288474285264008803737436187810942786564216264494550512885002042931402633289801531599942910324035579122262481948433010084703856254859801544347761440889174644622056124219922891551614539909952870651495534791156517538484715251652090309599752309862779407970132211309578859252602532722866860876947868139575860899642022612066728847863054898197649291923454461833973399045337745701266715755590058626102798175746346298659915169581222647955506696876114347744710518551659899788281776308134342046726359968175402877794639827688991857897208730499490099173732970450457132474506942563712394832227708768051189772473897711706167989254982658829899916668948052941217138683765978362682650314148772702886655042892152941296009711661605424567399194461276113099664431065380953740301188876700626120779717645343672967811276376326480794196150534008024493582955403197973865944548662296997286878261807699248055027159736041711554736274424433740466290844904199404140299676497023640519604731138010361903308377928144273123220678535584606021851264409858244402445232333549472343877434502341487256442506976488267554638986054130038106100082397116306840156072151697305733714227649900615231433992402411869580698643739935737034975028762159509804329959433895297587133941360727465149066123508808959111404840334116852471535599221213628218590553915858103201843565058301261483495885970755957022287707348111073914993365001355537958626039463659136309843782717985084178791134908140887970497718311784210824851553852023308264935389359285944407471666780252483634575632419204028535111518262895569299021136225750471778772652991407357259148284648031558984415876477343169895645867664189597407938415219065600986759933839931560157780423061314615127182653423602228145462002588995083011787762415587447044012237881749820032987015124309550033001479893087648362342494083057088996432171426144683546212550390049732189891024421074532530356894702207634778046957451929091348479431501766463646142742990219986720886090760580922222508261458017588212270545641843950131051159015511854862377586652489640811761329781964045564212738319870272584388921325303313328314956069907558414843751740163893020334784609602096529851550274077518172610728748633829193439514038165211005769377878159333357202230209763066429494486610838166776944460884278268170189109588478569983721662188280343451298726458119195743259350183114708982048643451117413145766324634798460309553862373303875435654453074310797957231313002370447075003113098096174407458978581491730383881721820287731225844844674874919885673874519024963032143160163625083730825433803904490528854956439742327114680307714126699303238503297639968303137308865555012904899286670714584778546520574191558763056546081432966100353889087148530345983740227455532649445602751442417084391839554530197369182567293146732691439263457745124385373919978303888104000573546495477287834618198253584523410725739145925247380951789177231702591017309084492539386279567486710271134090341874512736713961712199284808354902379392013268347856209121869266043765355026480003886326692500782337790941627678863783412684584533824673782921367362775696208303354668844343982542016836211699040037692713029885505539198424501933265465370979867507911308403482810145134231252327150169289114910948394399882279121775187731360586776766590136170421630058320423930678443582497760805674108722636369376871559459331736487468844170329546230076464614988676574033205989089923412434191545891277197885447550538752244606525878123587143419189506702274164324474964748317089309067422549638329754861247038589341004969476486909283522799702164243005497137036451629185224856344806005899242678779595197747956371461316705431396572181230243237183876364209396432165031605190515647746361141380865152677375171963413853121445278353785473809092922151959630337188002757160249121998261013116431431501120879338614374478045984225696823747022426043484261169368653991674055557760520047917812291976439563909480672304768082969676113277510179064087833810024859088521149235209864692526466231634593943450924605473176883818705376969417816016963778947690409750728030264587251568844584236201072337991837120701634224167505992053995294818598533683599740863509837190300208941066220472916075005820058271411038516021855280975239764279332073106175389955630491154353740021300799291781863852608991206934214055109182592535202016941169278971203966362789317642750364261076911910311949037709008540341440665782157471795740951715553099345211479192971613555470505862115861007109004714161077127221694417169615369528013306826100892418571704313525368347048739919480138321901601579153504078855863381154615680281120628332818101219867729915280484544443046562698915438664409876437856106233260472153963632943972322010634685299009738645078106941045256069092504287777699840722343141810926113536417075246279794777286941332136660072870409462265985375520829596827286170489337713836093861351628665479745918936311281504146772758131888143872622157448682708022601412141946193652018530053972461966009526934367576090521458100590480510704300596150032565378226481846937369141586360283251089774812972095479742265247406727848921268742603173653156137048973875726347476990903359766614169177721700923685709040800684252376245963356986379314313678879459435475694150984994250853411872974746944829799522264845568814174890501198116203194058001938000687379455686008494918861187545042764138226717438298043057315427399125394327974536675971854734673352708394936994883973264026032706201195785466120635618167803112009471649073632524636589013437013663914758562112878038100211676890550340149679899552655660767454128383037078282955555948781220925884035592127190725948821321277891267996812613120340390214720926744157605133651041104570504815532634502077507796525841191723742435373191364076395554293143277081922664459809995235615857397474321138125773107241551365877860465143698737623013237830108556151341719510403944168194138972460732652726048230332908349060081212274975630321185657128208008853894337977967919053041124314985983287553345237898556052228364635082644359048219926192811235397246752145538461885048060167946521484300646427843902040529641130838935170219421604961423101075395098354337197925910577625462415778028057851612574453901881756001615281418586826277985764140872696912092303483110619923988384595123876090963199431922158377450787602760123636381365576055259138352759490356594396159107033727013628307703288466671626384256308252366210363566976953489315160330028167304382418815033702574155978574906310771596205377514661295724696142289958925073791438185990430892661135763128184396207555348977251936663260629073177810649303179881823978270841154566461682491626894059740059728212589668827917861079016930263839046915447268069724941758597471442330333181291656961872762143843804499622762731731201316214361176883634948136485779911143843503375879851770423931969224968502238686442308250843263136392237401888025024077133488820616025244983242046707886726757511413242531764632754625323203170271490897551230172927656972877589380403040829101305060717302950869048686013765905012643197012233547079277329212963041579443014187528716560922330635723903838658292023904591418063660815045264400065000103221892122221860711651250523417323715998578749377611746459892876904626331174211374010504227374605265237196211758981110815015202090204747277317274215125658860463262581542833125590752818441267011888258626999243641283089220896216515352687521579995942654191111328113931784118850979162031670338312598335249631613384943779268008313214971445772660291027039517933034965222706306540309625483276892583322509392174530614308265462981831770962865284353347987450060472505927033307604949848201837605770088972390587704404985368736164205561734535325059797669131282669103433820864523652922239907078111815031775846415883923904212663029130826337367847845742388006282722430163170560315519075034178044186206491065831872947950868520989202419121507877325255299387589683551823719231315326313217359006264063111436053216896519761375600401187757038177175488220146348348757460882910955403954713243034287464533016229987697668272284091677375142589086105629161851190018381781657901804138439521840779286285553237045241271468342761500597824735694201509258690870840116932220092084490977579974550652201584116210536520326335905371976603295464433509803050530308669621986299140175723477775859524807106713311143235845862641347589855294227379251530662750710600763856179533719895585461588369333723849798169729484721721241917483235164167890749885086948443606260244054042761866278605140446770502247595705595838289725238731338230400127266855503982085757748901194820344722527384563685718598653037775827072452793150079812121882330697768255984960519992220387708092215977608413401743160138761380284110399779922417892740982990700542190704326123652912826016066645520482675292948282830438695261908250570032267110600538336603380600262766795323857400767049819329387612922167641344131044865922931824708952580326949305562006958817743169028950936563173646719180215988213159817748589015305190843897484585499877627929954263265972410456988659961997308677401736641676120512667356335344686731358916770737380663790169745258078870800034014168272675517688169743206234090218859304675721779694547950214441545519957100244611391279645827250182398177922683850318678653107676780730391711323332439728664777314374480643273010490816202596728109221356912775077994885843816982810101754152702068319099020977278864321706813649934998455927610450423253079523528875425234291059179493177053299674717024943029240296686583678712172894416380647764426104150302046676532123575040852984697276992265297792679060680903007154316552865547423372462230171133522524521162929876336017542794462589704769992460393490241958965314223662510142786425327049041556061155224369886467221387413708229694604463304376144923003181616461209199764534043292690999717615092292546314930209325342925551174070283192777303563122580989296723230854073674495996041594445412477064338011588658189784338143610995557256750786467365238053323743817472102622742409318824043436170759934823982769239203140031871835820702168742817483173382868132435560641662257360692137896018997110707836535479418931718024320268991302615086207015708924955015857381412717706533877018060509331321452666373835744055754386574557619218291510586166987866441367776371012756869391562407797991657367537355993609590997340201329673817538426195957594561062201901801132992665406116064396282929125499866570565278705177890771351822980793969207037549918957606015083002375040388592549723006227628092979707140475658628573454861702190815796743113850254825691600994824800768538225348265412876005416858362472223969303942626052425683353244783755314550712604208450618057335866603543176792424893210122452670523799867716046199152770886925391249584520295177242206860927784348947383338412887133843387349588552260678940169176070854138387905252533955104919108719763298846308920855375998942455420649541671199891796189610491051859499379616422463197576461971642109341169882136499125387997763449986087311470726975945406489443561131096891263691480979035790398519560641186159373894605661827788982746725456007567026576062769976273899136783719624962241120798508882599198245731496531528565153307969309726638570807713938333586727224082434094042289262616487778949092081679690494671146991441299523645375523180993981862760590522711142364409931996182386591200430812034436272269160450572030777464095002144292947029310459868240879472310158447496978695549338767700075130588581824884487496707110544441314608615998557714357799167593051686991621285233933495360356877469852960342916316421721648502687611475315497741893378188645158064064104904210578719311416834347981124709006251588000276994084551718208590481032829986423113928983416506944820648683113701950952201300074396330382491688506140570396445853496891549986388719265131017210597218415534487772029333632194731615494564829999358913752113862507096478606767792180911821924749645032354256515395036498440120231311594854240062909161625064001058760992787376785393723448935695995317360796900197324416427625315676578281559759696767972487244632200202013880162328014468755989915269703089922013057594677703577710497258909200658897645031873541159005699425098337313082399973095087906680956162169407219204112273193683121898725239034202771918832237530207683402418376003147249345148550087581436511213655562408164006157534059759973970895457239115809176935302043733645976103664894514019392564203746660603816464910752748518598670620911648168321583297901107646644463361900850003155852080265847627326142119625351895868283281735699910503580923139254255057086498904801788239217208431625653310482490811588429383219535684145863005995451052698508417582796795269886516603855367316105265486339330195713215267591853166778856984923506233760694412145958852865261867320128177686715443532633417105541718745942750269870317471970617967688216032010214906963296874598249256635508244138968155992055661303711885712471284945640080843131594155785785929565183331764385578036966494321022655241096840887621280219635096060722050815348616449109580485563538909446112632028949788187646876824807309276646406727782522402257436880924175028841210718777888571778372059052638690587847827236504946946425732631932132126307747299455955598693699921905000085042628076440038068247673066102581104144044026561706533171771389721540788874471250512413629770786618735328584927748406564472211744037063626897526377824892780645006398984732963267337118615717809056935757282786259504804023901286831502767596398921326494247078511009283503439439517774698611598409941942968574932155423176090971753057242627833567575360484211958584961944530367066723317846201016589026323973517828695017580365235436051085795071034134574043187035147399351458023603183284783328435753181416657696708475404062471980950484183132059265398821179116452226805446180343061740252396602554167981809389813096542012778797987400655485364760933711925630033504320762738549309477330983326786717865750595756855048206621221099863748436715307203627121733935890043380722030309268419041688862378385684463116398785928757443781472819213414571132575645747738846580496577220760367857361154628238443095159669400800257878709131608530851753573552146849438325252600484520286882870025599953331190578691415807142559046795669917563250571317466377519821830041540204519620856012400588794584836507345054396709895159511336866384857732316658361556585410256689640835662118007318368026655467702956625523792656577650754065005096637756057471780633770717675938957364440953803708330142731920738054444124752332767585328590707886723402914739548403587811746356112788690272801829084660493347965957141965310128126491754708116384353632748361979860049864366080513814787736647544147193507812102992329608220238253818367887287910349341294496788292590936730867233052266395522435497061843367427095129772981829454102920253795287511899280045726699241784047743562573688829504628532332899058246164481809886489915715843259794423432357903093483767295168079754180842543992931829359174219084980015922933371750271032697565343413247519681595628636857308696346058927870529375426965128842543239938810045622119112102738328363092822240424194231696692942766612875784428993856387750896833883743962169427682794693508154171164841404290558180305430788103619969772545481998525047157825264172328199127145887947231036640418296448152161279879826502841666705620638645004159485644914471495522547662738335983693623068681654329426902074170516509687843893998739541736013843763839883439736711260733032698191826463635663885600404976152228449952654655629183545313704597058604592940255903626011605943377126297634413778966293299729816625443592247341238741916786232078694972023809608873056297441259014378040296173365001286114998280632665660228545142478441799588433790467206387504339085125900207499780431159369752701959703435474036530427305343794639196768164863680645350143038622426868043248783991350581112802171508746136781044947764467436763753959980467675470528365999288188573511955122268928713349152271116427040646044305973604503201102091723097141596303212037234051955961690616399830797057311931002814881772552167614415140646424003640560897244874757822643078018537674763009383009037991684249788055651841689168795723529187642463514125996852917737910862305160253626448900981180225877395676156106624515602023853444088551219048186787039088655274128788748553448496353933147402089966471031294473142071413947689177466401785938158325939550789994983377437457040784056784173230549519468024148251535420779263942491699308009260255235017311870460596173383626569776132184084843697941612995343108701699731663355893501308759112239553122625194776668533465251337328913468439270153787651680642281824552701427382728085445654738976751799183105529960697238015017587209673202076430554697151399991631530277415231354519427774632541855826005040890840930744781986258034025953436155088928153792147226053015682966634174027627517971253933946300256223320792270628617138540092042409509100577098808689604420645827250007903495731452119092426755950379817068339516900100810940284120842321275016595456737938131401035656962786512332757102733823701477593240450032376773777186428302921275514567332597126565971124799704311311198388537870445606365514604359262808498762396311868793490173289060552031737130082298129707389725838826524951317235913213347387712643083498185543901961168923895918314100825531566638130055875684200186726392023381539365242737469878353636704596726937326473717839690834514772303640631745579887021143829109785560011299358561218159154947946229271195502248329971419428446799924667467232071842421970985619225756241229998896765395910007159147412666552781394349434808880990570193377181829512753860133266343627199188465183672114748437146412799257923869655913032944616453921988767960525881538625080968302711971107928901456499184588302437638006864659414163471385905989684934125625237967142137469008917536996782204816116435017941426298908989100841586328804518690734357425442332613949490879722219299303233492700182828522966550561327636151023060163733178301247291872717587791757955938109449425117440731968426613575445387553964384551511475700612018694786184984547724956421636316392344608666446323182004243067838596245223096643868158793737349162506362183733875979000577173003324148223796234443236646137160172603790906929327395117561862255045078972329382058796942265787434898398233963153791438417534207000302909982683860487858845905334619667792437317451278865445248280873385105532181735203533332862814932236995028003077950547904648156888327390716670227672866320726043418644390935121138568146719043209469893314120979076264899812587205080545727746875759385700717226557481022805778984106956257709034639458004121654923779457536918763501785412594251540846282468605778543438384104176743640881610995099194409094052381531643134381537202957497596044285240833661739572281401341802930310493558389209463764963085071736569113161202911156674357536324834342837427000595787105205283565754468220075470808387237615617585394386845143513506199155708371285040593559543215813723137976342956193067293771767564522255510809087685818622970282723102449729290950220399450903689438250113310126754090421227826699416792164540162186201398463499313960836402208641536025483553822409738283701294832435161836331889865829999881302603885367280700677660377032387364178334923075648193650107761289610205672165710709523508879285527611821557963257811619124407473881914047455396459360020357987118123960322197314657083311740296282160781932220587246481592941838323553037012094666969351643223796245889260411386506389583464703188645077012719398551356170066659386827673742126419621465392135848343489683573996947688536898117489934153161019674709875505293996670724847034336727235127745118378186104478324148355686629478140738463948605184676106909081127536659906707954794979845322052652866196293528391263707522815234868079137507303255807396751439955682541695088829170264853455671005809724141418275130191915758728575732091242126132534416120299098304768785804613833689877710809521406794810319332080551496416423899021994758013840634287196508132124659779905494885743024721442589282340747120071862300586529602586328159286573201931284774366120445808028120008653117676168561830231020835927274559945981627658111609534876011798342947106143064850527619207794374556567510462250231530312894757477508089933234486718395218710102906199948964312640488490301270038302271266549060103368057602023937666491303041094534695156673340602893357717793076955886092164660701729215678132448685938435497274281894930706891993557789785760819598185480775518965088422590632713334193593417265913839438948700478173851381578257192575238624068640485530490918998222295407083838478156894013302974401742735597693586991218296176088825231556157351169010947877233581295835734548076958927442231887713054424244466410946050586724557798966865707519349077706081498200810560928064981699262608863979906894643762077956659831162271375933685919920781119720229559099649805495426429950307748565973689630805358327161530088664943861281887019028100551898100428537118721287111818044343866022036521250293798393082373432047779069168122062022359383119297983412283046980082616107636814100464527535471954584579227146061634278976789946814378622425000150219079381495238120766312655492327557277481118794712135577251764099085342363297337150801404414167485703916812490021179068390779822311632657468978841337043613193084717025852363255649098002797010437037268516495459432453294313231414253530045585181862683702910321400936867917563786974173604211787187091208642745557126248278181788546610254698431905962485971037072100698334628075882108666543962014384356973292982927051837639087873761965836209454490290070992721064884221392873217770616965428126156103978295224562427127886077057179892545187571117089272377536211672427825283410589075203267353529884907986202656750632825852639226680242909889001271712583875805696255784087473219652385296585325490061686387577547304975198687024291262691543237910913832416677662522250690676306948947465150015419156911925382061792475708774593449730953826060963429538525285999060169184741402656604765614441710268779530865535169713160860729490081205381412856865220057330422197711334894086869480476004177098716940210836266646596737609726589086238292220848611528581124569469399663451951622168475960397209172939637960129394972176510872108140531259222797982393591277788900562019722929522739880742959307129289513224485921258532763000107951273725628562167458885166701478009687906139505244875597349658890911352601465662416406830968625079690176959718806707137609485394254407176246260966455310922743219750661258105252139714197047823894556526359021138123608366843735302118604896538140675232582434666589604865881253991240573481519591019838451956478086027595288368264678419150461326483302335284213794773297297647531989439884501986443338810225580542120588493203020264734895733620441996857937871978001519462165289416089322700970342182321957424444304421633480659650002813233676009369189829433533487544753604015363004815345877757799492364489177007491032661627922783430679085522540989973776543102280107675094426869526818607102682804874574418519234290511176552464608902103687870950153557491532736470629634503756068765770895168597179158493174915317496954716890902781821532634940057552306543579301291566246935035544329989714017821408753680545928231152007185721907373044768381051391347643531500746562155948335906490510560823480040636584711732808601916818300558379495918001041602847724647840193212274713453735438930549815343393783908954150282316022335752147816965050760086246499332574494851368297493791244602394251488406071463148227021072116919879897390512255849517373684642697501497263677950626600646244035995191846603280610417139784198504597568191342597119033529566639315510691952358428046822091051584525778847918487029690226833255002445076926606097658938399686878840372386651459763240739260679721317361074976227797600108111388778708812747750619949319930344784301160494474478398586160935448307287392756984305374171641505476592070350821068580404460628075781418233978679151139213155384306594668704983405689612079653953890665170868866001662199680730130504397048023235184396799281474451261361319737075511915604752268293794167249951501877055646949118485880984066148908335678049090242706074721506165178763805779625917619338066551977939299288107921618982651616291689245585527286480428616985497868662884018911672579887468661084568244944813477851111568929956536224750708245825667870178545461172789567070525950094351631024099744863867088067674312617253184308434268040901517873805858963060206422163652457801523945363541245062781272897494549062539424213439437433465816663963989892197038753187422714323740414483184697814868169755194581517938002792345750302484371944042278715229550156054561879563294637650525375193169993592439888015878374315370689192415668126972123316593550021692688369005939290882828096774548154702348217325431054284128544525854645749510255082177580289906063759042448522383340163519473532945635468391434471743761119067848175609187401302858375526424496087276891307971149835143864294357143107867208822321843375925402272125616428480396119130522923209911475048548905295595133410652042503971858643609017974109624251226589111287709492017072943974813526025290864465986827299398229874916466793570629497674260733081835699304850191521678965520422534146544490496233990584445458654741073742094490109243928361064846538896651799587884351484551384435846680973062402395358935188287263801817889418804626799441144972343732457369752440293097062638169032393288904320028109562377479392437380274079500096044418106801076956591878519811789021337157332849434006063026202307212516012709017179885013942241043171629099164750732699607005733036419222156394776077627091125402530396309170006337118770585883562329533462118249418822093799209610743121685048839892261853720889464588683947392026790335373665689182875002616648776916692816933160966252859020245167727887629452513374871284959623560149204138411235988262354176906265322522409218347368843742715575830986451913706673324308183631580752215264765163769811242453317976917225281712962642344759332318082273244244130224155776914296392963187311776602815164799977899337212427818296518396567475471267878124602422823611626760906827008515320587691360831045161535734636883209761026513331465865679359476450535457801530304098129452337275581912591182788701602478983162934031700841605036173151585360156463906754895418085738626991507208192966712955381809078035649195475210548294704329066518699287764202315859302053844668235457114799994236529646320761615242762703768600138857592673720704937055799986646181551877843308672508709180635135280238484216291314183099389050748740775184452833175959573763268082077140770197195166164249047330009962715760541394534150001820123222820571006048143238261724752457656741986599489570625512722125657044730527804066508757931112282902289224189743862656691617552837267508296839794100664398062044103357866207603370127724185579269224858469001063870166441555312796699593055825926798862670330758602294424780019963972824329407051086368749298051459173092001588092727554213904306414839434793902805797391049890101773673620642721961267129337929949764951248109424419799975961627304756356849775267323509240177551337824378463926547410830835443614320897763446021334539674239331689710638676353685358239061626901833046351891285974027013437001849488126460863634039203895980650484315148489364711266767069529601310830188770074480674931869684518476395441067855562052451965239805791890601678406049348507207138342785425668980723485695485641002597341800700472406228269250482558406258647681099765368816243768975202389702388189993155246627787604961380015235310811606609580479034235953343624626441849798775676254589245272575459005185512249706064906710816519385343004297972033502266576118883139230267522058234804609182625369441695834573268215668941151519433105865251835746305736225370167680858079089675506569890644770077315419823890772571681914895407814537604156593885070466403260654003998093061598519297224658586000577576308970548416505093031168686006118277481972633666270641260735464158776382092805623137382851170455384515759065156310470768967467336129245569307739737454855119967308322610022906799213403404849841313293733309907342918467480971576603555314012354011896676751085804582077682538946796441816422987281570577998057266123572806145217998645453461539623876591222404991967882427648818439569952123272910938591430483240876229471463688997508712928397819974101216347092466340433014344751783561714030530692618007583014189371674684089957745014173445459816976260613376954760559635354948103239791690722657279868282460376557289134886794712104051847950199451339928092528340089482002013198542543846399407868621225072137290191074333932615414194474910596196672729411654162041705236134453834261891989349508389911843932919962219615861974855254960474594219605726819534009102943982758137252532152898233217626409879879059267513070511419538332696618619533605188602075452450021478970618705376616120569897496408759682983425910295602640630895713992526932001145597534949439261753800063016777981622151354919442356549663360158545933199548537654389412237153724103038816941749659274017741331926932513811592414368571534685063841100601053700546460841736867677948735216804830979041311229247431465992313765702884526125652790065543049284719645486336434225549428143442313951671881877837421814603165720260348422560620659026013160259550163070812274091515325233814454272851900771791591475089667351808571312103346869018232296841126728636443738369513169330631469039121014588277745387169929306435968509573723636771748873991201652258699997482602303886930074433575410163128864284250845779561676058345463894399726766342059967352537443151385008569640522727017747842405632238390049182911569108501707086313518282030558743189485772167524773524007474009845962544996393135265721762924529017966060183653434973815387257347903089036560542577975482562862655504050398333185226333492790298760164578191702065380044798099041717685721899055482820474385875345251623291132876049169489706159364650749102638817792280264367218400258190784868257213182562634953232963061257824591621314674791975213082415291338022278102019128066867578220999747937098949313779750054183848983497884440583149161893293308315562891933299080708289826178060962542416096313068703801930940938897030952771512264443728339659509744150717665158165739339473521549098679994110179629600813045567191292550592242440287016927573644396296504068712244760565652332065081964606773459805551884452448761960067327285813423020475525254597672007728009915240473847355942100923902351673617988371998385488302453768917938755747040300649491363801205245644321702158590475160272056616094000799415044868853590338705289104540452012996436399371339486047652107994462161383566363397179008161502548262037789096225082659958256837085016129753437845019416923368884925713166087302768679761413645310410262100612640661626508244743482779019448364111011317890679354481484552782873029108632750889574548829972437239467987866425560559814668474695841974216515275076670022010777346842171849964256049987030290241817810971193588899313004413124075022789480057918842114681379920151466857859573313225045166114902041012804793403254110855554398646069477891020375929243578383852403193215081224650409198474069279648784448828647018775377349280299448740366728913738283519526721571055238517604848849052637723140259515057087320711914995590507127525324786544013855380516224150763291083468152945137317409860235334375209617565754805547353644061697683010398142872652309918243182310807146587731731177660340490225522624547048163157974245825879298585883998275775530575677758604264818698118123647482667011544226129124112668148102773133193872233863120378478128364819082733697167557000709042291497580627300596124502173657910403565789005342042868695068591254849131958520805289063329750735933578939102884131613273348952253606333285601213139293493402118111299012066272053932396133927604399204332149379388845366106284276287258277104720050228097141756726797515436349027749980830955707227030280240655640435646275068385668961661906828894609496555072880509126190944029028435310222366328042147339987842075425616030799404779960903944892843651229304592906508488043039890603684986644051601784863602003773121203276689822916939146919645305426840530245936886688154906631099578476411923206291608550598054434123518794732369849503629181175115623228853865249035833484986082857112736500906110559882935137593801774650591143212820355456336634959934168112290683087075657995452201042948905803404682260359420120295302511708854995701239558430366455684621349913893919019367043328736287626955162872866848151001762777976945180933681314980115687039209199741312534476711781120473234225288220091448538912206233835121251584204567260190357213242707584370031419836451796883247637816798936629613502836826251855405666301330238167791600846931067457210308697669147963573363427174328622400676041200888944258342773938642375235350184099705471791838299008522838120053722483530184805036928879620247082254302746716622426035569006135868107185827070682403362636354480512263232079185071233068135454131427332730394468754506077922806242706365683715093619333522531228102010369992249669138433942894509750608202002355399419682362773756229858282562583938848412794566674397822849836900277596782750578542558557799009563838714034647020975141694551565423625474226239434177557521427141785276427798355538564916941360734120339237104393301407909208663054021681752982587983984731732261435024668217028283658543485271369991219940381733023090002073855652105476435410882051047127199660942771564066595469752523972631705583742757551985731966055309912928822278735581839619372378083573289804621726578594537759995081340322889827924968552775388810324801207403622963624121559167001466727078961782333458859291699335311906551170113771560587539512689113080135106480379912721055451640988598855195132761300881863090844751303188027128090902334358807126633931198705887612495107408803364255396927207640948668818204744001082391762270555744466593873930447517746991624204462327198681253918953830652603745418416833192409255467877827667430298107616766789010171921828348699052867418586266981463950338086595458824105556240816443373789220163199439700999299853224765438020720218829331593004524447479786233968280289673659020484632767337747113386055242805854955001809183833709933427520364486934686315640431784264242446925503517786343955499618469026030415731377730829887435890878676942677295935645592969036702673140501637895723022682179469061812449339508591974922407452413412081551877977871460120394211948482501854138304651281304735509248656736836061619510631227081474339214437005745823019343827366736905197217340094771515770398169923661143624060613566683219476996090603966550317790060431368189549635153322983707444274428954226032637181362055859688399817488579006909989784926484992417805564856443180286067009842304470922295364089610804282218788118138789456490134355849957135417084413943524757714195485880828795950063367723541660227549905592814078812201253932049778716431366319459255320750603824962688329582169394893439318649355522257062208198560058082880869616833432151361009853966903774470033480918159075337832564541058266630943908858665705291993894304321055999473790742120302192100269805008222547610581036687201431731136372720007596742911016315257729185641509602007248369208631204894193201618736153071642259828713759019267181693124831916504038585040564071095509449599950344946107840831457621418712753711272838652595693646850673080048036545083266700151162533827952621196628210921617573324443640449603238054575190638967423990689047767914330357891600424589904623968549142286298272359824053217408057833181532773554550932361128345508768012711387788678206203615331375451811937310711443627506508329304204537941784947943283170419596904470728843789217569962367848761609343180584174291429161467418503361104864449359073910905968605424456415975247043462370767197715639604967503533993611368121049094655806687637327702768333267983270655949846395826958187990954842805861789164313355779524713048393861412617768564974273592676041006087494291895489075177710357214898547078967855050480846965847572815749812383827930191693442244834216253721515593458673455217094770237581154926924959134367210975364826496768162329715384440849768884992481117807666148967049426453559330809761415077159485827541232957674847800633577212138072514250248371574223686553310131439457181371628902571656973857534344985629605533578302423780881985059579535023972250567862815111205754834633261535468134262316795841171369703376723731424722160508165663330355693585877220280755369395579711408619654205675153406707749150673655927116099918738110901705572636992217438221613910540586756801882387919644985892377552064327080114637018803242429904927023592390395514876463268861306127891490209976152218856092703760676234546120571416252185253277138308848205010714525325047487371417897635666264180296053731478354302347149103074326557702820834080098029220579364886773854948072575557395519193473904548395600780733517026315090336199599385293067382357213665644894640387770825278413605970006860376492643030761602630437698942890856400483508944777462241096809866288012684909277155696395573261835869663175502420525475448359021501207095464345307452178983283186612709815516541865410557584707415991073418227993587797810998902231706809287054090704433314338753193793355183100181828077306904984256156688371047655561911946118440443954113520121848327952884320991411515366234614936082427625548148159018665226396520664782549105075983795362118914307916044904268868824549563936931577566325753109709349247517498807367627083770665373865078429835504824826334479216265083836322484448518678114048485297662428615824309240019207141946975505547730779060369565286215266313086589877895382442767625841706650140681694389021402343084603302797477659333110105394369856884798513999328780708917765158628827388253363713251314963876528649693480744136713995484519626303038349062238616298063486567646078048488493374978682846793318611323954724867981542117952659648178628387546738914180718158323836864940796596091481770135205218344857870483140428461267606684162962597203238816431589169229596135598358643037724512612200624241927340286953224885963715160012145136548959866101888484635333070065977168853769435052848624554172401252250295212845066784239103539146797357714368082055439289231657809608066178540674255363656294847186181919393210898062540162633980905439920549158496812053812794280805096828057008347456961722791669498635246994032594732890122280009829275726703528927691251574400222937647012566459645107068120440505142190763821106613013722162673560673134110468248436139932461093902334259296528771720045323824695218822790665127498872673640877277988651334661607106474092519452875361137016301655494680204165209800026186510350081030621193780057821823003080182647292211692288446554240195880474892796562385344012094234662555189392007213975844700524734235131380356869056993908718713958196194541056285803435731212404501372584052698510740885173408659097039644989532338622526490583689019441776009701024184371045811883384798660473543996327015506892920236326505402241352191954628700049369503821292282723260362536660675373283855032216523590769820916494635562064148850990911553282125853291033831894791487084838368267185510236373679436527997332637056319855895166879092583891978387863392384689053188784380419167159327470089374479114004468503454598777116159265919544726523991910232930272600895112039563150764965926927411480113181216644505934416234061215311546146319918006858220968583522079223499535730320694608688604680718428544426786212732223353811736043066684456215367092079035201494317858106093325764208401808834232294939713460871673413817268002503174467457878058439017145177913431165849400120682148149251012507869366400089073306270287672123393267049938101837393863430330990509093686263588168870037431741685804192200827443279488239524650145845599595829909415309533090819313664507697419000144662438316700039227095508313669680991417471922979284907194630644317153116683625019580550361350745244845765918267323656581011873839318556612504262176852845875569784655649143696432209138963477816709447499715089190510362818392013567938942629265280422331838993696474559860972671862035827651785857942380754538765544889440004102401436162777483814575080646019245633497794328436592095622737543062491645322354074960707868244604995000546336153265488149111032879198395543130551199079818923784157920063356157947772623545465510273942762326214296045027118592640575892084659608342066140356740004497523917666978764726548381281650647831113005577056588211737451462751056517583718098552022011674896616675026870535138086384434955189635106623836382726804390570034923344276626357808938475186085429585717540695729661221618476608571866149320696267139995901967172300829391927037995545507669993493077476592968487831947447107321120590077922974186258725564812288213358474209832503510817684270146993162538923054276550541795995860859407235261238232352521820260941429604779692609065413041478575217893379921819802762486400761772083847746703218704306585950658787364057593296106532737956407168521617236425386596110734908808237220092963196206972594687706200368066212051215007537415789150319133003356069828508275707970719995942917110970537542237287076045447052176090095925721364229954300880186020795431897893233922025182119691470344650720802528656429529239298496109268748865180868657248645716233458260551728595687617408287398620123581705650528434831958313538195721659219010917492633524855759236207630757089908511423917754450752618513269462438858735926842678620908544153234520237889993090205906246371144291969217417865900069807040129129041731604410888813800416781806654030342892788628134853176150166930809346813043381336894173460735079214370031556364701380799499600013706117667318798977695946046064244871677066781426403874366181834547100180961922001442090241329265310844708678411531315279609939031460461679236670236078553755992078296726944380990511986272709767266030054082815441591225565001491864899821218862227972510270415127317730318792124753600653026076111080308241643996557695741783431504856996296561619375239048725660980931301465429574813632157629804368706075886408689289260362860187996896377186755362531561208184225219799090482008930257283319238338823462348218228955952576237793171321733187386682723043762199652785646360934853342630851498753450358032645602481102107323826969100129454870327738822700251450494766162373202083602043000396715121776788534020632415258875117284317286067771042198958098134578446703982158106161339505530942608015423758081543492101545492838356639299077749338944788825423735515206082924281828947383465534977834573833504991528126548956089169236167939193472110676196251554667234371830136325242287682379208847564460528164270818613390970112214179287500539993656970489638274356970439260299228685595294534994023865623773227624453258365439154800391618966736094482466040274364445578107880440639162067719573769932346525223327848530659227512936766889817097474821828092349246639473273278286616779435479814405696083434334214802525129804101718903027922146903498731630193547274435891409756897769151478160844383627671044220966678928063890959772838595207936971480412209352807053228603650086496927376728130141667719492377002412612702845682084452419331524707389373639769976695373823371633444443781559839939767791244329190120837557591158720402081423755980137680468990215946618413205570338689951219945085507737951128823900573795913811987088406312299931213846867077366339502159662115338086049859102251130291825367787880976075205103966624160404602124044330466312609421282156551422466062403071748414181847333872452394758161127506367908309293517305179163900247371126957775133458559207826130506369850608920824350033603363420521137824628274716872225329583123491233196018260388962049734774498334913410095521255614882141577486524719740053489730815147255433032318572501481105872730346641792778390891969494789938857808448861719432189827159649248060080115348567335448101207627537982450071674644196558660298568633958590727139620116192426911974443226460737788712150937449744446670280262113546879002974466119485773049718710803524882664613947485597305851595835202998702908829829158581805523848436530462654637451552048630362975410190075869761582209937956487500246639981126362644217319702047308402055930054711418877657143490081548640133600549612978413058478323759970821145779702270917658724702581493416682195407400847898469503876750893980690309038642304837751318669699339743370222414748669605767805347143097374151418279235424520909687146058358305214139771235295971359967551455895059367000655011135437108784123983419256356050875724654331965620256329141002770347651068527054697552364779392647741638207035901708515930138875777723745997630274216676488510572369032758786229395255149665515099381150706190107226370256807280616962550466299785663554917553994162183298684544243114265754038196088389587628805671200110077638064439323503289524975027289491122523208352970322191625053033549953858445663030959918858682741973033759776976396281018057901894262066805416263065365622439712237536704710316725787160964444708665556588964818943865702216311011506020830100753272533513866097590491249606977157332400652799896375867543328537155699823297360157564077974128379507461375939194219850822446626555367896760066376552259428516155402553728953297841139914382869858327947834484468937312994005007597444819099076155515642421311131499939199892548752332705665683264145188253479722122073442712077578917999550074801524424283198025792578931529446674960546227369806471050954127647341195777663214116724502926779626231747065668293635367676006474089244858668495408828065007214312596096102199765663615689236118371589112424657953896987738568284257060908443370667342892809564780684907976017293042039267217326950246584263530221574590564175873618108986507404719554804604767144861667772888496434760975282736370830555087255210942405012362178296174983809716192225177915071472104443563479916202071833614556285797105674770683229718515849603559238645128302864591335941945706056934224906059407246220743208466925051212610621411059467741650321775800126051545956812246613194722717575820934654675059281609017495432294117394124002971485226730056218773180491625298898131576440229008321282373371078151001442641918966986897261613581361248244880437913337272274207400781978861636298343125823116626467055896690058367843120230368431096246145360958811290697783572954113660060351849568936101190894698516600826648952623763334585684450240577550022627486241913814897317297906427394234098963211786485444414278543301448774468454086704418073718125982863970928102995619048267216528622174408031291686931563513544262653802109098887145011434384371265730003066922943701598044749569507384445569478545957177660068357551428318775720419931474091193067465746009204799719410107482279380706564972759349266951148642449647981759659049242372315952998380133428724158281228897316808208849258347705608616003550314998290406075723506407018576785135921847413265834251052814856467687555895849484642928915917298635373891566907936967545262016351882026991028744671118374733384834358718912703675567778283608713159446252081281373716721761139908490992208610160285976187395226279802112359691847491708278302124674371907598200993550321803706553737929790575164107400181386647870799124032069515936944459665814189027408564890385181316692682683936372489969575732636087723189343720401454562423476791442036893326684639827911640499864268176042457883358635110045348430381854142032682250802746799079614245048558354376316526674915187695050439675330027416802381571928853151504075494818491423589097685775859706980193736456718364317478938882770076365882486700922085307327133380757714377014085804488823984858589574372286062726671363985408066445048513196096325192406934097559434866196796862271528112266209543488347222761704629835143450241295894660012680446056295179396919345953561175555100997135912675423357191605541812523423221628673036923693775945937185009826926605861205793988762041138939985488862739165645290766065523396109171793327613722830402624593957812521308640189376083107289159857769375025464143674399044969033379438400933582663176392016151050108450927229312189551668780782152303632902405496247215094578943340743326240230029497727285082700102885560998318492544231601770150330271058247571798894313476835560189319626717602128225827106223377111129265713582967705828683030742836386987944974037108607792998574161227264888520150127489620960478157176260500222660106822914339317932385749753038655144393125526108596429801936062118607525822949763461071022092690733111745691213002183771873965439011932040896578821516233566197949449309924296798196083385112626272764536400802734439570794755534146920874757506471800326357409788949505145408251543178240053162902176424725175857971824449577624705738264543892192172570687333840983199137280274971970656145904196421598146653420300857743487385113750794288854080410683848264576657302549365359717605840841887168535408904457617800768143330433716297683633558951505118328411533668834077261063474016261382838982042178821939294437406871236410464104659517748178967230488906313615783540341248411350612047326624933515855458129273340536375249011323076908550619008780422187865859414883367600815108463789546667050564156618136410557311490345157513045985338310434268037718080646535457736109000362456719324553628306255146624280330266005764681867276258605508875288412348153699505387740666334719537401840392926739347780240555714048954500453614046396753225350442567567642810549802935358034294833942103616906780784016740463538692402241114337296472718001289217945217476672077261312672019749431833047627673669306153982024199173256037083822794744727220788155495181152981345283099412142505767067601651766164663363177286829169084605815103869236250270147498372346583637654592971549700917156766122353477634517584024217017732312234682186771203308928753353146636740659688895303251780114389577962370175312078496684533435959002668164272310220256368513274110542968906213704504653124689433935604054075539490463248834798442677432308719878026360095056776459855957683983194345453534072130923222460573341272169234563010240156548646669011527213085833768845604899626812235540880594426962487395860557724954111102144711709659872659570626618853911230554914223355675830272806320760263155466550110326741070060484325186236279843635374236023184509404853344236754375817881027899543171823041594046132335045693998318854551360557296506889088171363845405209096884799698694551487070490601202995841008763835711149463089505983971921796353889997562200095533410593127458994691518133769995113865064696103468708220290152517142733399562710631645759779990472565677798010151217715182717634576013740489912130607326616941707605535200564334214589981084868456617667310103236286366646053388929027739284192031564597598909509082071936608479190661684143020340224528940091757965532709206923145135372798776449071790141039581608092868456051576348033877132357395111706560098678067553132218315110399158969019769699304089289485244350809203343929118807295570730709648086537723296710673299862618652053035272596407571255812071986055496577808249885815540373211169366774820055783712350177095815667216136032226033221727368708810926350637522810426065608501882442682639309082527345335602866256747343315474977009509253511602984469265224332809528587170752205760776783612456503010219610808050917668156213260117695898218436292858616239530301071157277549092775140996669751243612068852091580599922198098245760111866284536521845066342672931558404223803180451793253225504793420621586604748539060498448486379528177235880903499032131465988824342283291636109300814368006030449077984391682815083665004145285966260098965251179898512385202154370610452574290188687593707183150340847589828745604425680183797844819062884936684651862971503594149790321880546179538678256029160688463902345598436323983906381912671431931385085749418971723148858886584413635433630498136605642041731266726678899025897073084273312829060088295927085249273155121351755648348865706081188480087819677665457263046639840085639132708491880886248474733620262252346007259525659205002185738861319145574625540361047999961666416670267286622471378961620221767037216701051340599120021806583566285019548355149315585255463700038736638245276662810878573950955408339387813410114422670042200708117448189382582053676221264869918547756848725146625774825464896850865948398138052906454583069125281136141933348844633197677912885220274979737255229238299151396994020914626664361709567827997497856104640529140195899672345996360509953668352911806335905703027203799915461048113781626161376377894478103955350785480071313461801802020370444513194324461889990731873309190682242999685043959796265613103988367046863321154723014935242560641321827651125469769575128076842161483155623723075029389249841818688486219471603530747650072251875702517182685807053730252087710732960791853992846971204835026192205542453699047222079648268006137812487509600588071204603638049849066163342168922395566111984199591833054400118006767335660653010994132880814125654698298092429782106544897619018139488863484308744348391103433161478714186392248703855582207994279535126917108496626392547017656925649114462205238919647483565298517699269370299000189234088090527569680597049260963608785029740343802511098328820868160570639154943496557223322719886601359333885946595280676867289127882521084012582866004966905454878667673934664228564519894845099292649155204626666123162441100496467663056719094098709819115435044321373243594423429282645397730332752579465057388864545929991833518996501835989406665368048697607733903731188650734110619820276992136388368568565580824905905345479162160147104638447612045775481237971816295097509667858700397326777116535067707848509261619287958762680428813550913488638675376033216631694769697177973058744512937722480899774142456472910993722608914007472670890935547950766797036420526015809849583497899825150906504907820268216470014680508753607216864833502854961056156770079814167761153890714190280429346571217685907910663860504337504946170381973652997637525691812183241800236554234025226010967611417120508753031673797556377561659322545791452846691027258871616621620340128353371240469929511964082541121218674185019833830776900375437763593755178730362410089298231356963563236572025625304279437470668784201267129851507546165181346835010954149717774888841785703371875706651161192466499288079670150896516077842166888009035056593039170874270301263492340411291341655841152009834038185405033035637132214028969652327922497435292509128380284537283912046592384517560055586602024989736132236935995922597893913647161846659551542516301430559451408810611599049187672912231142473916248238792595872069997978316458613169650046509633093549610478218913747342156739426568552004165399066212298627120860558987382079959902102898175276733979231892050336016987608610915518501292097033713396233706743235356160820481099153215737012548298452325385927645183435376404787702653654392698422856684865906523321128992224719547835879578504821511480134703500668699525194592595531179567742073769904371593541111999366924808124840058435942951397238991005599427769293361987052614518391685651582365264835192919259463191254811986381950724331519021226607070165929271827677788358164699039088878865593590318948855849124325467467352774265092834234287538722447438920220840998137295094685101910135881122977099935930740304867326446058937141466079002214334441289981280329818985880939807971056694430589384095618629270344682596369336561181468764498278182850525781281040055432929772715323260477018473573913816253067286413863404448247752496675547463805894315030302352338592715698378498589049520154939691755288911021075792454179840204495425323522712918951778675998440581542237642386097047961494132857574296417980655837024387167484207226974902278543414173250517021583111998953787158976753386940019350439788993207628946002004548386121457959635586427320979326608151442797861025306388028142521892770319685571159288360976584983729499373939947372178100686266045496169310365265425772751610567326849470605134141263143473494171617812120424298041946829608878591084527241382831222963351976633299021660263135239216546097822793338780578555850688630612203847766836235855009280606252365363350527326108359006257813412423937221943541261257375070249705587739988340240235165138344041997753880366696604480306757840476156922866709851125794327529460806920424136930510172093298622474171564316399054578689415892476269924477475957296715435028974861033810971907313044392680104150884850731407471135242752593771965311579569501677989753533336045621421942317168402765445056722045728781737362445552830182985883539998681648448027092774685386301577832758812290719479908366405341725399014571606683144240258089667595753560276078584015762314091182800400462238920417366518767465080807356729398354866410505106164446248742184246620075628480765785720448767648501686618090479092768364687205541080869800348881222185363210160901679021073428268500415951110832466953514452829258454011838568129446034948849332079404053284926825204707383828097652720533995955597031505319561862049087026357572049403151471018504077954367972647685074476833279582767438808693872779568878627509265155088884405605336804724469560089921090806256371773405260854589662173208355015963758173994374698037840233927459425445952537551075912477995098858195445050564714999677851498346603178830803561580769839503047113860194620266078489166713853937069362847398418755053456470775991585684990045112666193513894096164914279552827438273507746618118822447068031642331972016001130592191117719463098373787417818082888127459975507972960415676752217334453727073088140335362986936347271817045782978139782318860072427762284634293794203517979397042507157389482583596803129231152757622919740386902517857510822493784719992723280844311034661194026112917867219931630339595240104229171978874636000872203551833056555269132681280406757516324158287266589524115209296521650101497800099800028470309862553559890229510925076937194875543165431893230544382629062111358433095808240932354888649533464258756191225882445795753174995682671375624467759313408206861451822363227414763136459038135574053463008299364082371742954926145188225326077068149285695444979328890160310142449953518223767130407765172697413190497924617677932064705464508661959284817080531619592108115399566759848551787868229535335742294188446598642614995372498332014257987299048997361778590413053443231820881852807375361293942284690310075353099180506040183151420195967728953246561087356927280601310025591902284607456335264092105228797987715715182802444149480170987392179191081514711065558699670014688913437880412978402957760944462793825677683785904197806131252903510236981404717004877776077137631555437328978306082329866113605314393826561761343756684357638347180474816386303074819417817898599848374296204816801438534819306066642427701284960151471457262977923939319332898413937692004289838062144559655219705702049064019085022574646841994621606504975523679957547546807210886683658023233116871012044475966467821268208618826023763330955039274564011255974787355038079051194471435588796756175607030494919107663424597403345842659023347798637098159065283815058941816018619165902740955579681640047459131103225503188310911667529912803712710982852730671864710517211732073050739662962467031289140230617807078749380758833638646395540273083261679863788125226319696027984328601738535037556347570594095360265875846530069890903749893833033524651645274062522697545077885740191308064498922553206324425480708161836630414875974983335612741627004664544035048872820568463594170866918366882346311764205224099904350620670212650131968010183506593368888947302184251905938572505812650800665075162755508061219580576521886499698078334805308109220560551092773274714036524082024095514638628412594151668502657851326851084531354879072030991906956188048835207721316200221365878376647208604545292167670627984124627856072189495491470014020768043268624327669820306408332853572786979014987328861284148176735204592749033321659555541956733333608355185271022061144153265770594374909813527416167028388682384813711510220084605207684955334483157750439578569289126014628942620349069966008684690744646321615743215798032421349351450821301727448982297792202883260981592426810323744201522587412533725346211930566937487760381717759477604804340458038363964327132806809289667486352668633135750799673203790964332148989846779930085224927772760713453970612706764328340046806900155221969754279064060448542347401768464396383640435118274636515288738616081048206970934531728372463834066458650124855433314464654449121964504919726063174913332984017705525217813026343824986803337496028136032152783335819590986647005870324060285912474569409089809945976928717732399012463413718860435887268476686739987587225341227055456563566821898154136914321876076604317670802361312791981417003020975773573865744568627714819443367075071449126856324595125946316562887518542655586853258922152256603038816624364176353878292327799197329108351127099096620675953524136862853057598106046414997274037702973054719343604228470893427333011618594138613950535047628443990240121415276063234743682847588679633589297933106448340938358264113657794380026150687857797397019371198110000414445619823140856662427230732701693323970122086399021159386239504236241295298534244199516271736646844997598007976844411862452096693817919885326917013730357205048178320425561831503101666676904653449911563636288709127497788882346062922380784251110867339056804786934056481082639358760301967639584035986591619104194922007159843130523029624033503504700436604239160429008074976552732101895634829819435234355121733990602065751571783615022348367899572998175891704615350547516495587716145640736784613542332314643670330500897198272612470132499170061709341401065571553408710599168469054496295408155200027998042909661035707844563923650465992965023893979209285812739628607289013524986416993202562790832653727066681095587815260169661942026672071381399433168965087595139928817872164300654996412674522905578335237803693071492594670651696141100153936803108266108981895969525912034920798965904642051950809056180088981575299227548323887179679963728900379435930663872535528429369728112564030147805743522106066648890538772491670975373467196725621837972402168148860100841339611768799188294956413136258176029944082537396772666392394004844373984350177364325378173324066282212976698454105307032643034608613474740357453024283662083302453384323694512306428747181454033860702139912742644730100710635542607296442258996872823708093961440702231960010978679492881891400802770238337811942875571447495706468423841670689888086492858970787822833117123522915643457568302449455573417558657492186264308199664189351174875054539110426240997371126070443634712607485781467999904256171116369151130966304109040874851251830322506032489968748191066941363075658255555779766324706155029421951181614294139728817281115031473470023047773150476636773033564978692759183876594799128969575036895765537355887435229822526841802062687688228139609695688168302688259466810732630215055759272781428489451599841898203223926115816307911301310418777346854255480584990394345599168613441359842516947489735826368606602111842255751150967649785811821079934236700075845340411354963860067439642361148911208169948337059208583023450271414845195850610811065902663264884981350944912678890642551913719178537242686692036381609680688380000850716474778655970496412120899725863661064541406201612167662262944874188423517247875300072846044830873704966996395554399975370948032001007770085531846428214306798941956558659396819570523576943950582346074207050021899899207822566829493825078082935297238845849263143151606987260952389090931176846203897446443719582711111537826859415787870223540081462725855778887517703857212698537973171207226633169803718211822814476448753728796612717869957830600046803363908095437851777743200513353110329554051009896919849898463100829887336516775505506697251791772998503473933902816715680351019343149802927305973066332918457737110529856393831477503333383408718226441039724142785089751986162703703101240047938827581629414185648730022946642237919746770367857620795459111589095668856227418383817664503048678774665175145996253061974391473573007212484739199059119150028497295867317206522057840745216234907289132642888287012596877555354435143060544230032105451275417400340025819169868055406862878122467149741648896849582684978080681512103912731067912153818327132307343947704620430291740554554699206060899399959765387505966025769185100053868286871524936103788492121200477544936134757628733965762832124058235619010137349568171784696529443289246268692079306943819158781639354930351327451022949893664495008282231483934087617907892851672417898311287226634814791428314156817364122519977086204846429360880129174591191674764011737107626889164480980915478318889662971352266245515176236043665992998374073858550923400304399150284042116233800892805155118134455925692505649621255557629464721211718747639917813190559172100145696799098352833520035890865669518581146956292468687433827732524181055693173067383611106714231328932598873938743825065829382488702875001862989600613661948910399580225076344559150665723346438296598904878661517142210242570568436330934997637160464311411407648759590218044509215562213167866353515488329890568958720102503104221183398268936411997367913965560006308009966452044524393894568548555615478508324247650662674812244332768122741346914422095398806410995639662962270635734620686763628353943453709823158754600608351302522036756091473463879423004070262008302641676381697540244115677537896102599647045078323137853761130338274319250919324732215402869765734311063550385346454610768968699841087632557939661487942163341123746664603204224115777751167826790382413600724809982592246439925315381988129483419413828338986779993493005609057474807597635199014578635215693482685378272668332967882692102060503109474184311212243388801196690937468358741305660627900001706566669182468815888338067679439995670600826322192313987487810351321974625302383962248440466556783493235607381537890535235452615784382772787231345229210838929235590970642516627469582611263798905669341773009522014750862528957499113195722139518326203898513254524110566449977934765460579426632506891341366156212493683866457390640265337644720491141375661253017716298509019485738519669423955641546045952291053871313532604254328716304395520447350960628909265240769997967112669542638178076349939969325503739627967752249354812956635924083800208406630606604760810322003832604361505030030822345964639039776163941039099515023453308702546616719218810602139221750357578741018721627684479189095371790694899242440432754663597030531663373769568695404343348644180583226624103696802359051653538807739716500036958344799758439185929692323516741368089612630553554053544883829297546389593571124627766251059751868465430404352048242955030282237984927420190530932101041664682379952122681796598033580097594105319206204136184514000220741587999844732097200748922011073833619723467418631391902831627419127582822560374599928278296715206712963102149699925133289902336790274208834389608826590959068273522555925259153666608906424734075911228649657237690396488118416990462141384647266209076538825345073500347937801798696361406735671195957720684135030013782682915057929232945367363264576357761897645319920874402199049724807198613320681570898791954814285114240360150980106483580206747988047466330953613395296821234863405866848030746682371173633998380011460414857976060450108171691769416621746670082023119535944549460144611867981406974918585557413807864798540688349398903691374290957657831642186820076934039673549470787069945277472616550332497848108602615922213363324487681105485306410937013771602400950553479463708943055081348204591951516488845965792554118258682703695015479587660601776336938777487505306058885505932208047083849905421982232338031202682248599991543271660837047060556949846076336293430301567285016830644211112067522256017655906222725987362379646153134757436287206759886631886789437741091205098671119478084443933942959421148052756535205076034694243055635873650930387950559580703169588888360511710431228867419502893071381368025087957981229655306115091151543251551976052072513123080850275689642439226679905078059086328473151555649388463670368129667750536042240932971448689093757475561706285102830129337880277741174616255860314193059292789455399903165667054873560851016340100744459972961272644942145972188121626224102069569977280914029912152817647510037156669281469088966360045847585711898932388481486166089108241549410580746479852641483804703957478608083304516091474397872525961661284621183231205565441202560740080022701032734874005974913594832596976338153845269199769012710311487517662819724146664908971288234937999935499429220216526572696666101642695625407618784582378014545099120772842571528017347670450552850850074097476048324941020254673419406189153520246825556223842067096124445300316731993903615582296929969062354198337165970946184940351901692795554229535141330811029600998706518601578100880398030782459129793259794189306157888991402019354944276790621753893647529237595287195018995649441974061002945483034366474049953972914372107058398454411188315868402135207669961557298300282993504647376631564753652274060769438059253776259602249667649851687444358059834497636032909548362617263932696328564988606387010436796743519762768578733892556841025854388199921210854321826669356877419484912986550267822912391008898719132551076893509374201983125357312263792228578936713729522858157972806946638742006229085511432326751257883694982162863332609508728649494125231081929266559504394819335972699681878810669280937907727062092277558781811185894994722608648914781118051249411219625521743616713133197267305894611949767548946378252391044802291868177587452472992641398618353849168063180899061691275653134655712856197612219582426157674014688054176515866928407596389426470346532069903232220286948670619968898864766973436287448373655979138654753511817406787997941476457492463583121069195366509341155011058982509268954583184147026468966954320473952413359690496631498438177243118796100278384998149806523948200410549405245293589576976429979711695920388441786109690597503901981569527464946125161487091713767155943077159589636740780864178822872464134576828795896686434610719956375197897826434916688734238818771611315371729386162061160392121983174799862793294014474626778171623891050742922317541994500931127959464611780397293550499943853056369589873472685111813327386268046853719920831028502947007843863725166630867038769326997258646675814656534973936968076641325480381592283659879813163760860440975004822609211403108555299109752580535234514009558117363551633517776922806475430376297434645263852136032115824002988568103181166396134391241121627210695293214959925154381943811971754021095020520881539050432969013835335555116647886771697087863810588053610670532117567158320176194663701036875272195629569894609849347628211852420340909160560639328153361297315125650933668557378673527811043625484390541289410973468366107631012394056292477685549341547488343757448425183275477812445784059534099693766696496711087529348882387577368762447767756171368495578317482629536191008758751751777481258774731622324262484482309552696317484211871058153532163637230930728131369248276830442379355322668872240637203036293359950782308958956554135334845659311941358732735933071942602350328397523020998014710582403636164547789200599473718817417372548140113542907079425956188546357001955193305401391710513815710694456851258137522246736437852007540057366585028152601948257843073934724333316524723957329312324887487387488317934625519243161335385380971963096967028926312883210921110621695844383093582856413606001401283982829084193450538502613576610287617845581696450358478222973888700088875561702779177544578826725822671002863665520200440344537179900131491197020244758105572718109748348960006459269681459366168161437891136414892166836553996269813258200141447545239955694336588087728028927028936681947403459677701924266252268337629445454412477067641435340575978818894353096866665453484124744066409689966848414189086387152118939815416997142087863813355696796033951745636717950516092448835645116255090308345790939219450360101782720094780310492176428358351657870511412633218967749053471433334077132363283867391743787935564887423998926657518652341220595293104425076264739765704316488340994536863497612076496833208908048951078727796086294690920313178386757854871241262094073365905091821406917742062128864777333485737008545069175530240863313896544224360781572232058154472839743036221158126597780434359447554348025338097445445097146989918396784457963608505299980768146488256392525529478126726607131373400922025291856228603841510862042400239243115624721181590972283773859264665676996694877256762472066187229514361884608108787747675723923614396677591728781678035007584748996430457696041922062182179070042302650545687462556488526330191315765143272850068235731546729391900311561393728510061671557914898055815131701267140316207377528539006175441653939321314239246166924088368180811486613163156253103940419415616251407372548200748058949138794160130807300954986199606456914858962013812032159572010100758325044074210475133557077692959596275836491678550926528414657704211341695970030156154489922236713277620164991894508052143587668810318473609700625877691282189735792546117458877696943321784165771627169649033114604841566372816880882836175713614790241708810981804085457732696859972434654864105693948765067013743579047920446282704093498591205653449384394985287464986584022021839364301060569487649448517031170407498288409053263446130003761786363102262070516785412107486891105989231367128210288626631634771602159582306989726287992734159086210750271207594403019037621075013878693646848707310837741328237244804840429519439529291144369501153045972041267318186017148151832301622144298120770895055360610938105851593484144884865661962319207985300886054857687144995931425346225140434686786935056074144497500910092032962522983356350867252540613697619120485225067093060018355644389970425339099297939559468081596860258172764135814103119831133033380427770225146393325518261134065144777331251816920966205255955489520741607022870297600984549395309631956893139334973810177469001451524176593483876560603266803004833490686430305837483523293400935533295404818092555013043268561949240543216743402521215781942363734072083927635655908556137868856099135391997422159169208564750382994622650783553704761745786323018178432214356128088743536258987040278569964988332393982331527499126850437675785583752399932718164361438169987819788055306372413188164582018430845297516348148177514623654437975130710084632440125212744683484439848079256340409072191614398560876615068152875211535763454966797026545978117500759092766449431316765621609435873945664842381456169108849890492589199645348600885281174448861869819033822450321485423297678808734782771480865246945868354301936768093968361115620178780529124318543539732128983124604546369148463272439924943871679660184498927585119930143263467120119755484211896434111438520560711101337755308647546036075113019327968169534252823573666363181885068888357411140161145127749962613761412453682591773677507013920261156451006785003854550512657740345337578652450443401996353886490245059636396166153723973549440781896623760842083029989519721970631464401128269884200261741518894503572678454310665454332216920811787956704891326685483705383554230734904949888922093982871118004996807788737175506493153851562337182365776513203169042208578676995047563720834515271077308440336141349589543341165641230329758120066418778831388935463261843326627205224046173128130796842906441131113541816236440871264771645702327125331899663565823934719668497479943481071813942254654211379963263432813250431626264126735735922978444016197601715890668473252519791813521212154234357741181441279382674131332792802731974022467563640634173553715674930243895972713422953212218190658528861372847434610658236910309446555813924957814378901266971505593393112288898456701201350334554465150034830840813480739861080740444847344171414399938865887734408453608672914702086420077750520599664090698116111720003358034892543492340048060260475712494122951110568380706545605736496930116371823033221639453196465432962167837698605886072857558333291926309814092634041193181589881874667454790558424549144265859558011152847099470555237179652142961891977914773592294813766760640668983760821514181765323411928517198041610651942253202391264294242345400698915355110308266637232733834671516064863618522759371468597947070335943154483890000693889773848209786648487562821061491262194107650132664413632197039138775860367083269297651333636095099466548554414648136241474275438356721692989956382769876069526930901323146344149080044059136596895909969044434455952030443372082407855267708393514136968829240196230505331401289477162518483277989927275975004007381238867921371326076011146970589422853214523783737065842628266413319807191837765914023592754321128102929151925562002160038012330348239443863377065482952770948704386791294364609353961220304331101129929605946201874412118980943762781766172074369632478397727803353267703956756933642510443599924200456625101015056968099406437398636624428096834833946710210085185088804036095250657970299836234225774767286913503995579795349047229971883737812444092705842431849222073294701833642511670246468277638354280128013827483853583584093612909837501521478640246816837399443926301311705906108193746421788389841160954493071623352272204630350184212049155942471896364589004063340589865984162602078640378394494786353896458085441524031738893251596044330343474745831818704787322496706218555081021265435340071875116915332676972426149349130420584130171681804498029061329721922779697811625924457571253229576757160941450108131281999124275237675385519492964951581391927704954620907242594589712473422313172907027165140791181187930014189785026253077292621952324866128231010586507521440342179306357616242870029988617537547183147806519245427280575290865691412531728014769924398430121188592169611891070418427449142675962742040946641712571972741793169497354205515846972114103277301486952198741094089117743770205683710146713123000981321954474157168814957370835435273760920282310874565171189878628194361791031187664962671339622528959106097862405952775532717705998713768159628866631119070795411400360127111292409052174712914541490259420910942972498145416523230656602652045626612486398784761436776681677411373886289875726575202166163944400428360957203054917738549592471856237290973214501116289802006493380127714259464536940231802468361052367665048388718307351934300371162110237483301613387906157625979416265202096589172409840435059881203682984460281356513581374671076931327518661822557134340045203125840220156033069884732445676178195294261958662294995768889084397876230985200126359869914362039434928732177158257225493999737864230107048763370773647150133784958624429581118053077837714237969978925038814004131031640783917300161683654576883283944290152611632400356417331485699630482863335767447352953664482052730126457051072481830224525962854026487874491991414695524408567583065050244003960216934368776446819324844960939968610487883023870322348346823243324504460999304592563661001729915945422289888037542027466526393468757801396545039542916235758069408131861249337981352000987479577817572512258173886560034199687014061065075597329747069911219141466328818029083141734461574914874670684120179439310121075971828009871262719510110411418298521239105956232987530211306147724929866343665500535253399895317558228514852978273482428679902841681770385454333029095742983798772817088958209957239345227220165383183093463947660935695989846331154359604069311478944697390110973871901047602426270924971012520133985888888754800556173932817578228100379015338111090048807839546093953657677911868880135683236669196701318375367184384313260559141198185887123087226772064938106755995748137390170256067013623695907190143688219863234465925093079462945275782981995303734664977880062007452075115312603522641501309925682422387701879731370306867402702998111549948848548732111595684743199284320160067758600258336564931310355191484413947236344980966891241614484003665956119188902061919999651606845174058859777288322356484022557827643862472228170169267315615799491109130169441986392097036905081645569550432884409000919140160354013724752585463019443657215168322143352108032675471148785143034561322040628012156664026201711635050847397744889097750121473898991335294720658439982054805340129577923922875787643808819611057543322334917653920074986464364629790515370901822567161050315882553774356005244219495660499713718889982675062804221272611830326179392507597168690823077513078676447434453837321730113277056201352154533507140800203858324134416872267187150987352262467002025222185607986132782297433780022882324452036130574440801993935400662473554419697795429831888551086972738804940381581053388222378217877999658340936303953574925556238131734934162724975237176953052509121822180931737509539782714485119379397356355910668429434045700911367719538379241289996018989938836802391426301952999470890101462217294712399362053240037772417905963961162800965622869367671576027318292229922375583455044338669406025094563267151021160956289827139694190998959900610802198932289227030857412971452424510976488197458039558661792041906087509189196846625516311421255197422897810718442272309774014522249859274920444499738977320937067916550709631912168413836044970157860950868826264743993273703496114954869746782610168118547918356044223253094935153307837223464039070578171214947803121302395815879908321982423073575050756644592954341616773404497964469236310218260027420555292246501235104383267419643822452613416501571309527857326387847971799134235271431216292693530381169044779706126118170383583223409323382402560060203893195233544541698762423695714482252587719664319330504992968489290333527436740265122274094341723592581822412634208003177857944556604417500851809077641473712917527157792914326906715552593602207522022192059313227359024139897117718752047218818105648990075071021488675028299926259711439797061872663551088052102737339974649711022554001117453317746834522775446775035067961569572156450151790824219902025218475476470736766928917780452399204454882746699265554920186842065076507988560859824222956502616691850609356853239283426077860255456846946606846966314392565322021354979119007135610943845037029433300114099419520802252284021772183514351534610875949663248837279934490114756021667767726574579770891678298364524410034245119057880334294400545580517450038873163990506585896386374621086947392415788225132688523948015241707925283140097631792104812096576065419065620472448249471504540005515952758995558260197182246158747906786258463954856633580627070710751794315813262689156572235266951228521088944730214961072876953651545553132198343416934044356284955648663540758805320232397034270129031270964089111624465013609038569340150527664890902640665933149304367681393924607890024977544278344085313275928447040024083787214676284382728436881740049571323911636765031316167727447604777127877728343234532709149591872369808837110888314978404062723970530392524705567809378507438702600167038425229877314152173673676159371064551746984478100535867007736699268369344539340227839395850731071356709557639529863083120577917550655186096103452861202953184992398128898831107566221630627507529042039910232686034704346817921143757887804327875629900846646695392340686708645840245623017160035065659051960844664825574536106692008427298087941347687669720617231447452958638332676843482016807858599868844091650547881112388308455786999746722941636056985044037705688413580840156308789844365803439199581303879502693124861378879046523158379969095569165131026729710967561637530516270597459323694700819764657009983771094709173938848638922926819490287399827183436371494658702441104919991641621605485462727012916739645461089544959329864573726643709320075641934169889427030075238049095996007477575144083108958165428369660447547711052486846348033598418462331787880040183039799023367262492561301923760741832735361483940167365401964887640882466807146008318695450491800844414685073296866012466500021946658525378427990662274716385337619278912494919164320043215065645034375147011348136984082239325136236992558170397849136276291636881800903742864252709836945683542885462868729218133469974748538793716866886704505306852696743639874123208146907677404247811546805615197591335799097190369329075996731643018648379587317330409209521187934693537296755628347803599343003023880559237406389788281429655578479550492024436817054619775865208667537283636731226990829540124707570237764106385084874643734020730407175741913064347535620914417325839368348537894697403239017543677919535204815606159689883733363074474590904633851197343883490055786010068973865062791683528065996043107846711861761025382523342928575267929592562707020899892908080776909282217196741480159145057686377994676411938901098604811654209295140458387528456283775269884659694685556185945514844793625870192223760529236817472178960766679368762399774530875335362892257845544375321823425887635316784525533780955358377574379904137705720359169086663529582382425080637708633413777064633979407381601753042404893468773277874966130938569703160538012101092958790459467329237169091881663286733535781641894215733322831527917734521146513417340358476751197429389926719300924099768094904081690217112030327238398161592120960106477198243522490772691034799589656925757940138162581488788017406363892714473159581792810215497142357304438836360854923779916168851015818467815729064395445406929037971601346443040342060246898180637351108722170804227671457160520694861884419524942127702145940665288783197610106351707902671184224292831728233250164909939505220555456385689766726442936809009775839180951826239175796494616520949486310393095798546298344636331727884606734652048308797884384264066713853012428382626103634619373642407939766615291524903127997968365998937205255778945696278650805111900217489477716492493290931897356864491220600614676405142808507341605831780814138109391565806509275202602891804582146105028735920614655958412392694420551974244832041234854989867417913921223950365763055036480172732069610740976905374972048236102175009000190398594242714726601068381428267201117642476824595493523326282860434711163918512880076292214155329036136983639602972685781469516999614142465437861541258822119253318911161125138937185329571760942838416627698053125708662476960993738758151754178778814634374799943085039632699290944442918555516673988738921809177154571207278706243624502311643767727563141482899438538165512716879394312671816444993462442950534248768383363568045074040953338802093156806997949040409462914502309727357158370774144418565698125659279041404025847825839260551687374500313008052744182521769206053685753400457698032871805071227273131085673579933084988243888685387802642541335699314271259369299287112300190697414413720726002993246468251924199706542943483140513307944192561838916634744367324846252047021747600446310114462144837969505794735776285878475877942980328779505955546101697948518483477373217444927295863896146736984046566062445162543827172995917371807346210448297859474409517807423754045961497621716184483089134540664967535400441665044643455518564424687688051929879783191441738691333231227403438457069239622908298508552578349737882782097185662028887856535815197571057114619931487811860149149233411224375234096463401584271227401058987117863357614101885184986690429316070860816061514475288410551279645763361715648878064029411021741843643107893477173655296175195512598505254551208575348253796769792395341947416072598190372778075569456350179386796847884476176544345705544767810436791392468623151745369923677810010853655352703694147238647770468538041918480266226925178954860150227121863806692369959087700990901149515963485032451574600776669326692385589727004992444029454991807294759079534431568007884973747840219564376335299910961627438253599082473908044168650342959506424786627914419977574235879596621099530812675803241748398520111166454700691328555617037396764888986250586151046031732301016702889287625498054594399848278597886934794119496928634664998576192474008928692122664319110958883291591933207455147111002360896931058920277285254698152313967134331962378580611733529136342121549846319096488168854725612604140191762211683855641786451533788976177107956306887735240806257835384586866297921667081828069151985995425998240399674865037388786398434565126308454505911647128807682822557002810714809975612478357918017390406200951023220398157752392039530158402917808803355098413500304446184249055362964204535454010567188753178803399246381864838396254903441784448624096077810131252412049331197726308509723001244421997062056713253377670347635739678837253389603161537954146693004197714271029146738267925396572772001462998978267831474904936988821893443692291088893409709829036960439912881185316694252004203739630048984483678915669432907623487406506681187718036400963117461993376738073850108827544907735909295664108201824978836450008355874369604984962536521977655301027627467777627889480986111818201788068983972688704474221240658809958923146509972572905623277025360834143711984599979106765017902384961717246766171325205087452202473834336113548968597772492018447131291877768130389890773415973605447354978620756644330202037319676763455029863171145057397184433869631368870281290171685508588065424570964659238967239898929173839906746495928553882361373698484801157790603847809117154136334599579145256578746379345856896524951159044280916794440954119982272606820739251547852768240582584395780773574879921800613694300857817842567515594402170704942910587513371583093914235801933589024459104252867732746005714825614445200646092216060465535061200592774157670250938362682531789751492137319177931409478627729708645496765952204933372548747723656369142725431354799687156541400171020765518785506271939766080989428598585507802848272183912920009269547830737129452245663428601742785472012366559573034464483158349171983941993222847444981844456594545047477181899367549439017931465259152341800620891029296467518064157606859425393533552717486658747945883100270424686210493539907105135831572053655502358601718579155566430152476981943472657993382522730168644307402762329872410837785487276355529393518816227323195305279393415236932284988763792800379422573416620182264881688406842225324835028745484555758558665223602557135426046337377178388906629695639895948087751916898568904557775527754661218220816049953445690470309179636368717761509862594407347301104507471968178304258493028522203704739629813753050184828185343768841237748653960483745201151739889818655489374487134888629997639853603392752240930349145045860666284304561408398941266213858416506308579443269351894301477465357259444939170548710606711484739119685235883368887126172740816387056658705544585435333755132079416272803421959614972994397473804427084319791896128617959646094627125932457713836904813894017895068288026580763713270680504222724439461396484429565998666869428101691169436013262460693159893828788615185822596075659455593149676031650087840574256656283115196401162092999561642048868541909183457028450326785374916470483936370574590797164396806486521525353262746285713509000764032822273854212238828822625569429282058445434503018251919753755380224816433062790502251395651746659840394877431913818727629642748299698542798665524623210104096921702512991414184824140036051353640423815916864894660921626885966290988589066631302124125317058330835312521274830891960709468635944832780194191746184771767886873917387048814860524722585295378009270935504377789208129454070206833008697725023335535900095415879094482563801891415251845099761403206698842047239938528555106287800967897288625315777554696505364657096689149642686492831862512387607608139214788216580114095599442831445841571738561686136497010054033298428219631306747943502275504893540358048510819457681306249667002753191315960223992753945071794119598613330020670871471978631975987226347710609177901222412948894682822086873827058757019846266353728995100557050334338277384245435864717207139081093889076498732458841718693555234745288421379438443990008851263012868773166488436550842843733104401069597429809334147819197528367506850221186014935914155345999677384467850411004579897604360387727870205697377877457327249420375462933834236824729063211700854602165753952221042795799605419569524349392520080859517648733408405794874439380925264146695356645228359216636884120143829019576538243466077305299683695730753475921033095712185421531452753845199617906340498851537298784801334207401833023649353557669908792898914293056297609922020178930303834368172944047774791277720950068485676743865805151073783451781351293573663817279758647567434731254775512147301067064609428062394011331243739196232090863734902025370720831339642839076125909701448633263425057211341200707525487931100220187936895492882345385712655693591870556332658346276317778306545517812855822527866591484443789177901767408556406079443362122855222660325076519666561726169171488209567156023942012937856586142157765043605756735300726460946706900156860443811184185614245913131704372903748078821353959759883058114912325682885332093770128944766719848246726677619632757090985615215242351020665181281663867128590230112269935665611860422639804502794715940178977357495413672559524888832287099214684520922164880732769339646088711131187992738295013201339880138835087920453743032722058892041972733901991397079624528587442893822096975947125374187970629926315760743883908930564238925061510894392536486272897806543099939181294206907033997498821776812735495262865728491272043876668205875405333266570329719524604744171847171035858091169008381697446085416102084121566177395625030065482186431558385261955732354655299080694758286901192850412265177330605757819878478381252781963216709959022791345931643014172763802913832662968546621471024841743521402472143501380383540054574980223275803585482394639924380350757180162621606190135251060270873560877558215348491715420556599041078603008255947979192064865671993591181867289111602853949545855880832721501092774865246306344389649034717489891916576510278475620939208991301198579746839472042252448012911393482906937815082021208571716477349179900446990958257936374412108869723263698891656924076155558456900629712536782263771627905897035580396313575368996449716034321306370845788928570139912416295423749640058156134994703804674443944178488387280753265123928191816722334437023273882978070904222036974165925421830361563242321480387487406124643120377929443043478112383392108891367244950492816919621987300003390937265846290508897575938639447338524077802153718088068957164247276366667714739785499174806593421677663916979551108375721674220294078247931841285427117746989649013277880067110703791208059041734264655955663055466576195933159022410008379534544515208213862917142895081740867743128244281650449161597790703321158838557474977720702521058063395027111933471185725293464382670991528520367654736880722019391923168841466349063864672140801657831035439452967647680368307744576504338427433356885797406703006152750975342527628775552330151687406211350475502777609528476647203883953396576787221054620389494991892527444987903571418683620898855232702278086183830020753010947305447185730580834665343164964664458050122067981363080767887788828335804652501552696975912544528390859549570889674476649636665140505685801639576532612048096949852688360130738985839868865374314646730037834782464340391732220169433014928623703285729293976938988961416418909323175837037900429751265309129587595833583087612433094497598573324982921238382251097595073407786891914125065205479665462244445073604061902616041109527604603231116211202565646947791930488750452718111843093997548442450883686692858235215943299537301928679311747548731321108567442315545319658312153191480014922540445116086095397537723717431119549353320449566154892624940823639938151299950953611617218397270697916544911626557803479224452585363387835992006076457038697833972296363181346467329321162077795416249106657380968350189435272902595616584076769015980977355637914019710370008761262179356909167738572435131521487649358349489015920882057161049450531673781623417567677313424383909395526474587495483352791309400732438116959646743297094725560893142164928908506163691690454796909776098759761696960182304545638774345225315325343777551251776340165652025429478236145895824823995366880461420405570935526822878794351048801961185533645363085602427766475160532284917489378388533373008619452859773515533199385402932619991580463386860193568831537387096284730067393607629831556795839578819833592588276778884571179445460177553040294423588839955508192762841041964302572266531321686098055796065474631018910655254468393741054545697144781907274497334619086837967787440833687959287310119139588277940453463368224624157894172035702959512597670257643324100119713483802777867386353483658961565650192305827779379264893247609767790117949309821111932242529550164799781877460410158269021838062674068225351445179426419141970316666635017335945000155789313403706075403458269465879421208512087630735913902283475350705788497566563834631021131602570384827339291792291125019362782623293014475008643247068683873472235297000494638941795748000341952346055144595040600393867117299845620185389267778394519175113008200039119741631346678165747607331350587660139353574332227632498221579678287873537908369392622104232457403924461492860607224624159006509414807539297205905624118134789844402969449448277786725632162262362600070808453393844089137930357832706574329534259107358375298064299237465594064653107304309196812480886263946312624527453201005191920298122235472761073844088815438544792919736177583339855961923678924826008167755792392386365157282235053079421058321943511895063305282557407775200541147511947355652215644803844589994395623369670971307124009702936823843811097960600139297029926623272327742329489956867790254225778015022163443490957075221017168702096365803036428778845631018605401436344620413387153290461820249495633979860825440274518100885085340085711028642318667155163640738768909438933893526810465216787368480140477209926072245965431017074656263708279586974071700119279539510417415033602126630835522497316033839069816752215539717254130185799077031812184038027903561382911114240819842794475403561001464165774850900094576897211961748489730995927627625095349184895213608441339143493878661720103952151314168581703646380156217937272579518229489322637037702881328527624793067057067790583073578365349289794014749186249107089043211636652875308659497696653633048972008131630078168731941693258085268174361205036851601671465169992817199128340209290928032606846445589804077668927320196769444525211359879345735445484227963939769150126278092299243236121499430307116197806794396612266817973321887941863625057124511390244517697171000603650375639142986750010870068536238766395232682583924352729188627494729355554077854457647075072682640025596217007416124389886418220687005670265843066544117976060327800756473602719925843184829186633321583883606544821585634616322531154948996459800346036630368921884613659906998213473300074163509439096918350400313492293653361622018236702524844762432074098963482317611993809184536473927845356049505654063665638750679037086509355863836651211590414810072769568849559062718817591663538498689353404977350598782651186056892596164768036614796742894399054448151276705110336592398427743792510480803076834365016687108365597773888895623459798892423174649574191708294235700076385338712152929081084713846937656990835941918436065232312880858397943013132868225916868652295690063215572513051939825658517290227664692083478314217020943295429106169146719799632417503996613708465891962105181911848694464164477475429946490723939296569206571502764946455540557882760554323218782987135689890200876736470014066685837959959413667965300954069049790361912537307171377221601685771010122260871367159324807072099372196999435177199344197144172456856506362044305324795130729352901122923448894076144850826288701574900770655195212207378521855928362258520900631461824211434651192042015540319432174216937604912403612996221581239981986145751118478334829663415347489022958748700976147822244760671639650947444414295065768795925563942550926712862327806096707707324868007298324438531529905423838034097642672956180221286121171981714766939416484210232747042194386036112312827689135310411122813945076745085320222978778111050660281796737986248806108643009127064982795158529044416524842316607295372232282496372375910379806218151731237516761321227023038206990540046755695866535458878863338385980865059145070888464913203115970012074749883700939943522076251227777144172131859299630438739457931946718010507738662228091863640435844255069815730573770107235715391074378567276534769830356473019207133335568003471049928432913776735424538950355213212953798927436135598060370920764150384161125920021076428104047344311862321904953878843498857251086525140722360602370067591069240814022181813615444740480199735194526316875401354164617266801723099087746506968065592825977458451499153964858987329888246801276003370549987359017227937952435633004125288835806238543324460202187404532623455643942237357179902683391141212128708369786122338089160602819601824676419748103418534109796507546039553110164943636468194054755253883604930138311093541090104249828641166290069687088783692021658864827168230166380387126498224699365837737403742589821720697843923840757536826538707800261120446860482594515011883630424917744382850403629334247877575838350620182138055463451618651133524170489021292875658827666270474856704921805942224920299950000882180221758388954180303442268088942432800029657875588586904764929532398433343925935166556571574978988094269396396112949858919854564014463056259282011374260395872276802934801179870281430619567285791837106633810546065836812099978928571487912074616781717104968727578574426200043680659825549973006735067324026882115585745050925436056112403148609022180910482061734372601163079486501171697938963976042392802796984735914242907415395573971390525173481736835358419650607575730930567137735788421876931093447941224326113994645705335992682565070075002968588727293518862824462515681966769048618653083490042924180549476002051159343556490055294194777369738336556897800204077830831600397481629984202530004745130052120023390526634115226324875757667837461430310328831884962236356413187991602352185303567177364571684891004318923698497287863938611981973663267472763935320704073539503907833468355016615384764386460388614465084812477378003402060925548961386861365435268219873749072653997306562229849516752291994122688584363982921125711838398034415478230204150100425320207418816270622419442995667166634606734787981320271635522442712291857071188535103818113904499492141781070197771593717551543412133677568487688365310715517879672029393991681000299594661981119881221067834999927023818148986330757826715378227707098024206371871229942781095102311365537046793802863227084340239055736147274338157312108626776222269086449265837961545759135766223707846951511913954157085614510333434554591853404066790979298475762337111380412072462648287388746155732987305760297473064653652823194657219168282920091846235114694814397770747743904891095533527685211981356132874010827074901332663002718108964398914061855537299144915507601345548180706953387538664108803741766653253979197924192336465051053574223802699878598551990571247211649084270854348101928651874937401997875013716894157655275655802509477255829381479582344097548989327578759998682046113058152083989195860144710395598930483466110789763029177391820957962896615750059654994629664307169728749062687749422788947024173208022187046858363118829255385847358259013174044866360580491681028091161370157936258075694440567703013868916753051909584869593026131917323776748390727005970200444454141328286416454679536471938353752141737630479551845291692304141622223973757341395371802915563396898643367200985054211486849760919669339890677144756810165270111514323099214700183517459981425768779257256191078281743059447857571147551850694164345741362208204362296881835835382645003725585328812193220397049701263065546848359537227091121281476617512051266381196674476532657420007209696603481873946631690721118878806953162485964016954106041158164236116257453401276966576966228150523384015091438341887234519946339479186908711129937306310408888628571938299600166903968036501002840453403381951809434085570276460529670100868490793658483221002911432243989761455988434148880156233210461351688362645113147028735540088616517697579173265233167101431991090786459309313152795629317572123001915983055668560743861898302527812336803252547272076065484799245269070788059916859946540906731371637948857088342164171263763740247582405880086004558982211725845376876126116625950160770890450197118333717718212101681015567585032076485618596253649399333441935896051226948052979592241410844206657181473382114192087380519169781927955192604730715838902341482645619968574394022228666345507604567842385961506688272031985673570637649996676059829562822415361663000417586560282506308491430625602093866962194696441272577535795180058148624012534191805210612814083035608858370509817066101936302738852254346081173862849596543560679224859684204304348499111937819527905449740544895703769552684807303826357858003810052911483445376847225605140965222686530652951655634889761576393818974558990763031845196995309913807566921097423881734509787613815288722058132763870994930997976636876274886298710750049587306795964276771787575128147883665846875411731794168160565203135226299860021245970191858685361874012867433755092855873064261979541454640308236694012169280629099273622315802955488407985073097110136492810627889748887374313288309096855057075335358920896676477131951903598439528360414519458700722702924888778701632845506711833148154034382642206366346423114222781849585726436176113354339479627499981628328147181446057533429038116566487198986296479176943284735353882532947327625750052943979327914265206941675514857229825361137744979692346591930965521232073686151490851364218484354422556309691185961354899254199823072340938380482448004662248110661149497147538381287725036787546332311414726698602076569467079770881212484524828245237057134740720112057795358724418173022144980844864365697813287789247719255733169082806380161045877637852905129488406780494337983189285574367265456978597309454616860666703583239778674966252550714477692694587197159905343329435275263716533108214305059447729195046109905725269254685362104813422591645149988461469676694012180083299382020082572099237436827100969571917746247233495326751839693078654210347404178415209588232266837314113942193359870954612836381656375641939491650985901805482923497593108466610770231067583163995339760705168426627432298445402148099039220553667453129806060046794350523631327120793363909125530956938588288438786385610096194969351266471621659650160989886863804101664246674328432141421905306922814958462894577874376884487212909512644712290112115012003793064105357824907870786236597611558893297590932658826228045901928042946872745784461482755214683246868940211858620024139746405850643918213200724672795445228383095224599789035695416358955417867879152445915073338498931828346339177573124225627114216134279458264083401503137182127348503650424274972990763305677058852479710319609492194229064675988611219119416370876092588080277520634814777600262435433782663164789203572914496913249438167208252320559496300013320170575733359289862401565625346129910079930048754027543642154918207913679822791888038321832904619031287254950582731405135863576436140878416166211630940789318011293288567216610627764259800692187496890926502980843634088420748036408510271546494986958599528723679024031124391469813192174339520369221513581998909572948614015728223154009659098582857012463956556910350345677000879589926079426756756697348201184407037458439913229841913315662265098830394345118833285108330732762717458558463551011713476947730593952819119055569316110912770717475276991206112824573712970064705717811480752941546347682930039523490968626089743098813138242942553883115005179140653542265414787051223789991211431130632028828503893278946507297123113634410431901671398513298148747002988864409465384961679222368886900015448257610841304859751872082179717359393458643823288698383905870534403150370103046318491657456999975864471953851310748149990347657190072571623879427059279235381726102506385787705401867251173549340930073982750859439155357507255420864983066153116766983236386440002137721409654204196089036063936990798646912979955901565660914101168552361293456071117910783127035925027572413923316965343046045189692288034098321663526335628994457037243752386237164815636110878118475177200572897963279337363751516040677673587063834700653630691122443283331642390976851189016303229462662300217931527221883877804745618914692458450488232950401311357727919142746969214050816249323228469178698429397879748286644585992701627242180228534361042883834373561405336244402251522166024250272256329379522845620255936036302333049520214157002447171021427344183547735703563860243753099580606553236962726819651538388201205271041069046227587792521968718088086044270645923425324046491526145743505505023670061020448049495898162939338022457014763120409787383041978436911568266052124128092324137664831866268805355159079105323427353783607565569854961586051648323012464142538689855082956040884363292727940297816492594873264245450743109472410262684305922548722649488327686255774643915653600239729594435355091446458868469653654938386902515977447703128416728767214852904275049175828314625714577013713177775348302537313001052775512854526414060971553881232686393454499662753616857731177949997139573333912480321920436131360771484272308054534383360390115495076696432968370329871136324103028276658169212263355903816584285233983214664606887970472437422057290983167814165135441907253326593089183989058044170760866174840713044216071607216393638055016665462170431922581292140989996830605115441062341752958072710002450524367858193535956043676982856455563089344008461860886141789374683226759019092612580659713444299049545605987970000078176176232523373542213304444990503999581806339752087006666445869127333340315988469870440497338104412599148620767656041621692344860555470043256054426387309170464799647929805018875744799050192791062491486882448385282918878476231892063120875842224802052008481028181789710568365388919711801903674381100314520229847446053853560492287807749040472543809879402269589396949884570344634097703047281587763145101876042020205072408814052178023943352234828072663764991299316441929702317736659102215325995499305974303305063462679971825222708270672714674400694411548705348411497484970617650404615426032143730375083744462753543353377971099740996904751295949137034411582483394911882237165149792121145057558048534817499987015574486318138162882993058357652900453436474455380848560823711101204891331876767680879076951474827982972479571310742782128819064433189803437377337268912742396494105253787895510175344317275703008480983936888487305853669925990499039955090070767752395767230600204678307081164940040628960423334847475841054509733439007199685309700279543352928642940380606303465676325618076828772015977847482546976705403569248202492917135342202806406842248131076459140989718961942486795330236295499427061544758980419239031668599591360801930766025333682661754573265234967444047273611048660665684842987924990749520633238482770270168281066905642931001142882918418046905285906145293271942255672728656648286621441210261875368345586943487882229312910591275151234206673336829029758144239128675536206692917325994156578426841855573407969461824867798120457636286665328001732770321034744901470757506942786140705721339565484660989793775819137210157908688354818334480229036150038766861571973825453258236402345518514644786321615676749718932591360030854259078747871595333908931039345389171558734233156045131921744102685392642466235023601030772657635141279024733379561406985661734535217027488107131458355810411407263250425300479399312814095483279907542961261951191440899442771551312515397706488922930347656583256990159210227620039061830825828995973617784088039472423947779523507634226348951401306139056444228821921154402089044111337890301521730880161152886710793640735793373209480033872437223497379480377421436647572745964841670063654354525563208917724749929313410157694253834181380387448971932317005856069138649347485148849887722482674016755553814529295632992936863336778221003078839907909696782804275362678272705361891663346857928401243590592719476914874944310742432285517777332678525195295451106177965157258942117475638230931955034338933368970261898865424718686771813697443686719945519425572025845394625168351266536073878444931921027999811611007569353870883004984758420835591895552779241236574739686320837668575726941878662341710347303687825818375730220484976335107835607937354503006837974691584367766882959588592939335513043070198288133353982998246252856517387222315915781058314257802111862326231319334752286935128752189301041166357832856584044727888236272686817886872293715534538910498019779980662384405241704920708975456258840878345511203259932392991764441249322542598924686334436515292729221142753308892044555822312702445515570779856897482187199451979429747571032233502456336241132986591580039954115225804886285185155617882020789681064626061260884266451883634495118170609866081487934752023962578161124014021960881821855251878116239009881117832143115419744274631077909261095630775064952900390830349990040448853039155651153194529512858350936534190982012930925199704555154970104728089707349268831402384546802074099070342273215740867735699127485899297305534477410372789733437017877849953332719548745141229597785158726130211160026498778757432623719759683296807208479273608140111027315538027893669833387547634872594835810765291801103369946448491816904854101852969828132507727674489916110314859083725951024664798973401369183346980480771543489969894172631433707441793504557378084331751094239588843850623730210741470065013636295970875031495393931354618400000526157760845593029685880864270784060329961400682060383047199246959013870579505472174035086443384320826465100330663905983778595118037651034040006863346656795472095135428654438148301304714484014881747782117735737643057898334671009339555766638279740738501804451320838003769253925705043238468881921540588952620193389935716172756228674359817741549811091077206169834014493871694624854527316386143645354455741212684635744702923400233633511624647712992227620922564162403122969496723146879953754708715698234603818344107635067847132535503455773283783216757925624580119716690365013703238720454017483341279764594377197522998979513458069642685118916191897081883747896517689660371982666532545319570363518610268192318334153961081063123170902483046702815451149773763636944523013306249859537896531215637374781717128056929900324422017402421970077887726166593121272493627422963714881808395891128600599638438092526060531787254965379358508331600751325288423536452575201065709651977660281051486520184765409617676098308932170335222618587909705273639657188882855524026540922581315936097972604314574671689555739021687541423390526139571142249781046771414303419917155948451941169383169577485281622999180312366179049597242367118577787477500808678579833236169633918399628837940532212740495190250732433928180816471731639957802902296230648022158010477986085773681552839642755416698600708233734964544569948930752224188622834906591552831781011933776016035509639085177503068403941889515615861262374678951224934817921529435023960180330582043087920459480268401508148277765483526971559407994105273017747006995926237281255667058699678236251799407281480015862139890834762206265993741452013207063311236853232418158128540705577324677737799200905253686556196957005113980414885329219941058453693661328571609057047846137603792325854676057415108136770047076517951997508475567435911780526069219828015547513771956672461143227936162430155819729542641211496819628931177330193970906062542372689819268421152090742839849338797856983763490222288640224719187693311994862301451079617022645362114166108267449313475600458309191823453925561151922611580208600029071484938652687402223621663192156077260251303955938460903728832108121564910267261045177276599169784001783280894014069677444706759940208098390078897388294966191225977267081518476478916658721555356098058703321556480117327686447689682853244605033491647846320473415836595727278159913477186265328264397047897457123143296328918443261516271326873139267336182630717180194461071773432084180495669302302686654228552309270566394991179792556276517856118720766215953798078497877152662775749259953429497487921858402914836337088854554877055905688121321665379637146527935206516312924658147067941352516248347504592965986582110171758438023160527532456042634032784504506630332539263292929567351170396798381044455211151934379369675155651815853657043147823734690161632597209752827226641053640192360700285767909378583020477857026234742903575261462736842344770613121439131220432947279248559500995243415388092086153991673399660683561037679121719390364038790878662207021510106580699664022200700237435239844547156971390603718490679155883811724223740021243314462137832054811773129756072465396369698173214008987826385030101638613994263302725080786331013684278377806440660324917536416890058677188017294060522460634016882190600670705316473593800275405048574024557042572273857995781035014260640817034681253526164125365208013443330459223605524790971307522822030823843604528177842237795154297680262839870412753182755937238780373887004780906581353681836173046725614228162908634894711192606798078047329884125330963977192496871290749933395696043743056592079703514779859442144871116186908173919616353948106926524860161696747157509143180743306924672836771013035379505512522721230705029710591596959914468652255862373644194192364509971118759408706887929638183405068736921571984053145371359996296465760971326324624312118263110250425005810304636413649350978565570417900931441647428574664931488287868143954402700805375435935048350544143494849990754556071864603663045657974174029857313825905644522034642957739041506219454241425679165105915583646633983207823535611115183173641029183867608564365893001090319823738338443780928941691686955082370086459448674053208055666478061116046168531846651795961402303810908565134264811141780125878355140769840719681768108458223903323831009209439703670415016532795593944628304364125927459801836557320601166135837687379290409806937263553279819710028103630101132972406695050296763851601168215148511795574393657970504350421089060343974171664950172748311404062060724562110555117303647433537128356843884309777997827288256239642555816525487935517649887489898952760682526789166961483061843782263888314663617776891190536368241246543951747643439623551943588325954276575240958897009483973669203602535592273873794748063587253037990342371775769069722040371236657696951318831314122542258825979981363778604762316169776021266160431306638995457629795203698369263550788099548154693071720770043173711002563799557773592694724535835854568256578680084263535518706627352772002087707740632628541297292170569044860203203498464208404092961439192275867744295975467371611741229212291359323585365263294851010135432361799366180120438162697662333947138565348179323737918970075707592853593723604589588837015720876110552806784827803055930996378058639262171062782581906835644279665411742487918967851003021666481708970970800487408676496750211708026391667991646284529854972586431989375423425260760814587394020058044948193883380916584292919206675625060782015152118100552759547880321283802013215969941580273545242882687453657665595565546620813197859894649420276634519060216626407947081826419756387489466002125069373724158047045911306424994440161662947369808600993132024604499738976903567804192524483148040541341406960699645369683877748099034321445452305994752275629084792837684283311568911633096609308856664454358831075306701009167883169163247425117605983159890914879952692387230197439743562234784339084386338097436985275512187274043347624105173618418703769882862322697889452821390371255656208154766745196371411404885221931467972948025825525824436736600563513920521256575311652545903343925831416130884272891022928115890371674562736981910334056215206516010258648005341524649547865806818162448131969305126798681056177717918564721445188552298670975910571817745681900401682044737792844981287465904495340471644342672528398673183235105575189314557759457162874115358354038206045793874273818597691864879587092546916960885612930298438067698387887683397413161332151345533929620677251677189569888296055963377304820598227280010918479275890471773309000545651204891652491067438559943512165606350976304019535737045338539643128644845134061447674130240412806394310075370008711554863293481797531473329412509215875045943411959302802681433450693089140612288855342945528686112850450395027541343015002190538056548577736723055417842939744297030886746998944929338811793421778118981428476738686852882622666622623935096252183561071045110928531112189046359330589486344487476202446404816909646213626469156350467651030385628464574442412430898747007456953912833640769698193907646880787921168800714432971653254536754004260746708411862415078118565658659864960240309043310606799005027141083630081578659737966645893839657963919261447242706063916644842999775540503815384923629332475614433431688226953597440117505678085373104691614332628721092075890085182190856375935513371866433820468035645977627396355232228923529332715096302067766439960335193215202281328543828007792608790497998775716536031755231621616669063035257347173006441656190136892392232727710677655928500428652149072929254389477503978248000780545125017235671058548812411420006306797863252522380033294794367317341730329378009956921303712498987817531771079360803452623895564989942563793203077228471478160280379453489529493843644003573557779417542314696822715684130233514397125041596322102098470877823996253707267306140407559115952898936911498513923727893913969790375875193499719463851637047539251404688368477030852729164352568251053345925360974898604303900104458307556771491206044465059000370596386690465638768220151210017182719023055887986916590994048444647405214134766997209486964352673369881933912399804440882437127530609243571492116849905627264033088430627356462970837924263961596364346028373959713570352083085221300066098937064857951720024647184330917981821088206112761002436327526360523200447955867397002243938425333967704174403855857120492089546657894894477421267337969799432965072565671859688193726541936440614857395990302668830721180900902390725559146985067377926506980502965851760594292157618125046146376891114687751577168582637540245427713528649997852492360568833557129399550040844672533871344245165988783783850498970129461224012489881460776162657442407810900957746288106068131403424882009854874958391200710702446660503603839430981355368716747674958385110607258194029989171273848428321596842205235659921937657917144768692349376929833609115644618455823971094177188441445888489438026496127231067984768948497568080684797419179850440956735453659658100071803146719805525089985038982028433752162292697108821426349647743911272291025744022701289450969668289892530004393244367441110591829384670326916562459848857274869597840846809074463934921747348399208448305239412221597808101137049712540023568723200770823213950805372390123768191788714915900802885359775918909358714226123188217683462399670734377202389362277289306309359756194475162703044001130076503406084085942166646556672292684564145844414501927831907439930767989882341263396653869581006871249688438091566287873691432713136312617411655454286020884603606132556888695814600653477360723187211585677976298688745626953130481015068552117280636846724875748700293962578438671614386897703013370575519267312782602127691084614259537379281924950495527994216919657156136990450582361402969460694053946019647540853146532021798743857106783288282991103306574898095485738979386109294369534813008907928946332116209377926504779347949186538934446697844189181245132716137520527419080336557150786201186281486413067738411980694155668638276392272576896984438080231333906184783774381790614773979610941982346698856624165263159580367862534368951767753874773904425597907827454509692458434719847623826380111213731216337380615323241159378526876889327200646129050712221619636157004918065613301121063962160554816863665401549042534492887336759204241684292246298183238727844962211487589930791083193493911204703692860458843132223804094648618109004314742504586072413363827600181973387279802162513814761726414946983835375239014273985372600769852058386803251605161608925452537755878768322854932550186735691112803181306913237081640412520804480812542902210337139211607078901537768399955779928450268459440162876584705277593137858827827886251762206250190404946887434833431063414247587044978840284825388183580548107738996175456844703040871748974361524475493740153746431325911180187557727883951390300992402151850380108606452901484990272450551449075072537091363511264250851042339535103632710262768503632183989657129267373329427276546191880936737650744228952948788992106521277839412799366448544793416508272152245952972579429474606296789714709868089851366373682868568169517630440720099966252755069724186331549722923005852898773472896710703317839780162043341459210907950777849370213684429469349334086441355127416761723181679820509716624099885657020560518250398068609287617164554378735000303584494680478900276847050921734336687424207420481722345771029486517879340812987448301365368433596086895821169973145437561115664669722271823548615888117208290076131720671105436543730673935861497416792379926035756284736809124205295041722110448759418001441748731740824363540134466032405519414290983978541049791214609895159254239198018163136306671854474617592590353911592037377655103273971944485244178055409705165095950986381008961658909775072965774151224919658737266984647323865319694699741397023227792732367870716932153643910535222715966272018502545931913035719465152734087561640535489228295267298374468965430814025482500220200430265858945017527561904258266266680798518186490266191064684060782114865089443696576994617195935424044764209557649140009446744616869355058168672730990969358312614711876009878615993304507095121384423838734105427732761535630886266384136393769680688773497903619968454685905773393822955807343429728142088662185163085916286572866848415611210995970564357843231574285910801392115943106788898190692596276050209448834962176918423335274200599840328345058684184726768287711705851513984665368659632624414666531631080341938451730110170621922489056341512138720137071810918729611888448012914759677562012098767534646493885700939533041950197036751001417205311908101806130733917946718388076362799409035901474395155476293300442426755564102518191385024845709269378404279717312110394666058779263568804844254492561242753037784223112472273120042641140769195553944061385293134020031104154150358597666013466223347889633947455547291707381869960656386476285032744646607001536316178535824104158785919639715794109349072009542417054723079811568050095107533983068349341085908213699819765184622861388429838411359430882237232079727616724791173062481892677254171135187909439284832077971865891912111176932855169867883375916630597256386689615937330244911454904762647709357459749226107445795107685292838394387522594504109925972514176713433058045006911034852011501303028694664388410754857637029011590856846236592737408503125262491763779182590361723898015920306264899597668471338056916964303460873525634063653204328241529940202658060653107503337971309805964972736084616913659538344151090978015599421351635380607149165367936423969411531354890496904056211875621015771198294670444587324194469681297368555484635556388612970547137441230955065639330123568386715714284262789979904498535914118798724282429530779422637288654441573528573714475287316248644776091103148485539429950006124233446195664800964392351358285731030602648873271790748048704249222328978876720004605619010622949438064485099850089038073618040519862937887642017018279276698734588448454059837836393413502905817706267130234445993437888088998246113302429430437637939382271570408992828087286507197296086168879366084880418213893650852063831121048316806168754599312148265516216887632915825574339755092548788667024888178593545649898643859759742890324331754345265754930458105431521247888870346047825731231511854445024943159723605076428449887927893759217416895156336355747536661479761541693847573467412477861491834168970775339899344933579268730913810418480752316332914451650795081253746386382180079990332013444473014756177085448393239627968508721980061396297215431970962367419317409201215321481300450237277645664576820468559133748858474244248637716349483469844873591686469637052474121723803048308274573889840436719717111564979435305281443619915562106279514596905698522989540799929986951060882279729712255513913806857017672669475731173463084445653142058354606605373906033992639300605317868176251807414761927941488356669463735515137238701351028919384558786367047138374974291173500401930450796013065680369104297556595509732732214625545829540171407028260769519276128681345801358782386047932554547654079619848284138354508402080210110780596217185582274360681319277295264886456462012012841545435076000476294170942049587880486534565168703366577000304641791840699777939020902515467938154191858176041779421421580359178734163515695064351907791640663814006816998597167830388882261154356477696254842411978899933299114331003840880872757827554017436621610519675555082706023195589162050612780587827144958878750813587129199969335964802652276776662362421174429566695001414994585956800747323025810569756108504580986596888735321133472481478806760785706140132624191722395787802727937039411345902085154679517195684105561062800927536267761789276736262375035324818973275358456909311946305918557607563487619137726859369685477099996562260958205660958980590589718653481435544879546567508688949298120636841000044697788141011413277639303473475265993830957340575421052827753890474834282751776332523421995486988837608934455764875344851933663651385274439530497712646511551390213470269976830365582531481854693065174962360672488763879963003037990779798283013782749106614978445074553898475257059379296428406191531960199170813726373733170041617873052206834349646319373934761136120749971390954298536914373808346389257142869231101839670919957330967901212538159277182501379635098805988048933466267859336307574058374661860055423205492401890278290638018192839116697084563575256047394676991708860415727780880170879781628846467820245265035558889092370334470098732951342401372005114931734550209399958410304445058352968937915633023794230730052196976514889055016034135888721802301831499797575624353409500868681888086642374649895611246581417727019399492410483663767163202602372122146511931508824904197049774123819194617696369186171822494824124171429683705108032865937194822013736265807389409487393334355073033331394928497063602934184722144830940977624727057552601386263238708232199204684803503342738391964115892331986298659753697607541251280756244691446430532098853108724727562495955827138726016026344499224573136126108755499847113464158718069934133501094178221729186988356627980654048311071462513518443389220510428667784890685150035956543300906049845449396150216729027575597201289569082439179491699300891764620428236679545054169444778607590919060999016325841209095802854269332706598051068357781542175736601703181657735364851981318535799028946814394507446090532315346746660220151913670538650310526655626858359106460286752732236180720207027643547125135244469633040485573913196150354092183195744099099057038005861778564762780996805048686486024783682991233509891856374488148979938529252531024586548197275480792710135559991992922674283695917859626841685499044625881945249522932651141100823703698278223503498158931265314842777277742814832345652007561897675376981029208325656693825342542361572963304151412507470883873775530495219729560213786163348209901171030245280235217206366169299170505195243949251540154924021780128466195837908031621349561562157960309208017318888310523673799813631846620590996205928880165410010390496202288906299609723093226849009068664340865217169372626079721093752770198632068240067098741043165061601430812607654317581108909943755959233004353294381803378821313879957646768842749742115401247224318167053568707734371697424886490942288751476105906859603102749136579382989266651683729123901186668264495788995117329290186325406209102475633659213989812828419020213728797878369761527081139985102380284621804755388500047932184377089674538125365759924432091245898442894288609518299580896201098720887113575667824958798138708600177084094473663902479156900884721008211213872220847668997516985299398956150073630329142019578397217689919045396113900077204658462685573496608631215296921035716452371737114476567131251901218535310442577774601131187815468163915038329579880028522448231212228412995488691166027268099227248966659318166256819035314565083664383982284586048619337867932175949249700278749951025408662690021161245176550798048342679223271441483588843685492423048656151839165496352981448657160985312041251794657292290079392304611862533125187249623219252049763269979578309748185242980629548664152637911167365428355889104295728941535816690871176504046895258122336328771714338919947816059232781669669445928609137495410867179921166526462480449004352671308181932786793811067907453078350391053397849459999777575714390893881583933889739127844484970428326525592412805990797731834657272318705670740653315122234217076985421327263617860710206878121194369267849543058050113406827195024443643561668397553443595123757676667399559081806119535825481154283134955723343042509115246386354593084675033625924333460563491781199397019349071915958480174999340195026864286959699302353824519013316166935534013761124324039197406101782941918601328375750414580932722136428692564920839284704125219954538413914583802346795294030579438280189804087778086282900260021826098853268861002860317373766934401949783747266728949108394812818920061748211393495612755442059126740933710107101131068212618935683595373830594768101163424054257379992819740148518588409005849948277962923704949482908841061944751712889511441876860294432473827913394990840526947852788483303094827222212443725245441695180377479860354825583140499816423753285038187822709048633196138216963485087049618634663815714983890456547631052966757282312145406945223987745495818003494048907176059263056446887086038055814039348183173784375319481811777523305802412215772361786855696745305077632960675188335536695130668333174240183917582439078125818328609154957380228409417650769376547094777131896352087548885537501266985668201915505839208780880928000487927041835176485808731567476207925679529475721107600119351860393869444864524090100700817274270811403563740053223693941539656261293096251578342195464793973244206026813637282417894368536502870374866399088796351337600742205865237552676362024876531470633603604113322857329680066017523131658748554448439980196679949055324303841661702788910642249338525442003820314611227935406793619052415115876291641348536753982571583083541260008509249570554807500974799347716544507045273119108359194644084246332760142178495081873023130001671127495043506899588362464393059161006884672590016541845394033759913838243516948352670849252782513050136379601645144480593562134772885592068944464741406789795336294589163199434304755173330585188242501460902109424108751239712110725029381887907473999411756883798857883857118455386294277213221871604244076303456468622938754232972169807861811099674970846650559109639121098792475265306695446585568788427407037455168624308031068317509538530002615446669441932658521535717932754950372224484306536731779486769578152476209033138507350612312668717574160662419066740263767983182019847780111855132184943780084813865174746984360687794138089775145517328353343110248975727103267313938360595877131178341650736964219387171441939469257008199251774358022694811323931248365150520016747829963246679149146900555353180256284599852275465839279376360080363243982124985252419934128503008585400577217656208883214387490527493943138982614026270328962751023514767154390102717912308556007883101140719701893045410709899630196922430338095043138778967182653697335050464875204981875831730021537279894250362957192224183856832772876903825417259664051269956339957038244885612974009891161712524080067285169465938037842248371108959222136355213249914632037828536511986968969320753968928947268624188000491189841318622886720468042413475630177288734321315279643819175864912251887104207492595266492068874809572302974614030579065257453320655490589472989269420732365666357996670880125920326628643000593421260325805228168516269099333311967844302513963047936966346364787753289272619120645666899262620056654060067732637368498169844337594226625616511500033675906503642896815837758691634360967115761422023954989233528359983413083673309424606701278255371406821235405561564887959581530828185220264599904426569048363078209968365765248350256831338093953790853035023985344737438757252683024927705401151176536125330013094969710739968255593012476416869523640289103988207482794229895985105106391371102804964218042830734734253291029773425874266740021039871663970701142071271381313085304600720721548369568370151339352272585508326069237671232739203737781930437284470771024655177564872831355120751740851760250782066956234726019176648741061760336970884712928844845314962038966442981902536234702107058174820024553526901391629720683897629676962863438805575254636782662839808544968977592000024300393158010284475367744585601055875892855608585359025459719274919530121784318073785932970781529444883510139844739953701808240100580399680638407644354857135410943706033398818077740637978911595007667424579057318917442231733679049189231654607018063187574647632688537057238284145033621543822481271390827254839464407835991893287838078149762298313826299177242329015567573485215087223613076600632170212285776475836891345147801202400748833466717306230897773584561161908838497892796567730026495593276784288452645029060763474524308414925019449673241965070315006260478202451138018050534136894751669620243405035643333426165581474692744910478204805974874207622027921287786055596782752052540566055636016841477761314700873203651971154896874401268077213751004102670922640183841480997308772070089431713241462429371850916540977026037360223556273173830099211652110707265929773251048457623437650352251062957083002927091921296841488675147870790057067441402631495855114972669550302625887495075595831995099848615470895709651955787403402167969565826374737833167921992768349362852656610151129889554132660089440715850785537265980548375076291263269193689178411379088095733188371430956242236815708818603699518672219520487797250810368096376315936247038468359595535982885043827547739431447801000574817728146800093717529624279345373683456298079075440527487742933132164406090474115763384394067981810981725102506457192771138605307872150617387794427738253193050780287332977937309371400163768053965060605202185694907347537517271817182804839392077985948245310833382410410627992017012048217767658016023264859494540289079696687546967239192130029079508110098574997555319353991766478881175514355521609797553431990705889455995434948202054525672936682451382578114525117456990076616426741397942728063092726664630884098710410843428475437279178716811003564341409048407424114059857602721239274238912467778618948418206546652359754007680832286786283126779197750523864631501930415978877186463642274477014587906099654074522243436921586258022694428712428679615163435917625283078114311328501798045501020133175428704387661461802597618083801723224338688657010225981309272463921373133038772529961492100562033449868179899869172411609410818087607562937370028453750437104846374263964851348428640987941289825542769111633724686258338079785383895105790761654028432102724251040418120910041863499632271415270544248933122252668858973594692060285070543872339095447341663595492696056814066921856007567844873937089016384285881750543823949865678718522731354853861117731869830366691160080716271218915295348464162628640595713958403119181379136420099303554329763277920743284321327496499578866087240323313503920932262301978283183584802497298099832624115605993411665480153043915328794853537285611194410465624254811293713070267768008075789149814495752107006215736734757105288025771999806829476269890169034288430936347741613933918004592087592689021314807016419938589984382606761650320104989419705357855688630902626848147440866356746977938285463681796352551866311081594917985371652280008253345984901178257212052440098819389039223820589654161947982344210470617339981684882497205906380339891740747655296134912992222649970208322496145376838327231122364400936252111300432693528080951104928767349016741138310794462648311702635153719159122357652098983079688205703125406001331436405561410372019517048860294413110044685346593074697979156724592909890354810904835831460111927475805692746196898416826769324107213221836578537359433084165901118589010542128934574298930179487409907152513751539021357364596995301029301378983565297582180735931750422372004017222858249124542191051387069412397615927933985137009882161625392230787191100895355776641528260408155559085784396961811251229937012988379142471289747700869134778368698886165178147204076547651272346851499765187066611357235345440100544277763048558974087520293272954212013688385289627810198710703273472252019065570883575524797138891223799667362011152143864316966887978811630530994438577539888534075011790667256282585467554696454521941463781144944795321810441341093127862976131074573566566016606077400357349439425343412076350580561347371628836527719639172851127893056805000688144703151949525517310755628120649483379526445711660543684410424882892195373289980828871620113197606997725687828390428390094158407135468267704176193354089644726338393923295755181689832786550290744198946575007095980916508903088074801224021863706233120129930968175257801742725403934526983872478096855104682637577366250027606572469714900040832895783304841308228901060133268099495228519571507605129349866753870234207323385913560790274838768931942314678305040071751330421862934031533947221998810419202957057818879216448908921805959202694334814326461577350241651452482588221430954058343366617583648906526029428061235804380854170495262366913652347083783873591910791085951334570733150207027974741578780236893322619098695143574942219163218521673499048627579040799449590622719871027462675997322826342375722507322678797221264184955418431552873650349694695834049085144813495258632202609310876743945194816339285103901599239063497217361485703369454369586000965381410951761385343432715533891957681450716053227327680714449015671888725921075948006625951921421638683761485717624388556804570703041280624458896740107683450905407340606413448525908395226937739201598832759324615292924999005026135153012356718650528402337265349384845562370123360113872422722269451612485358161342019145965096836381223508355386819791900521905456231264388025396962645209024122555286363470924962364111664483619308494545282840805388438357744121327630002489074944556021582378866432090932603877311743159212042243005321625701649298467125728748312981633053655119923859410172380844142476466668805956068318375710367929427526927330529258284601081404254340432739566402066373185615167314987550106681439044373531647659761452627365181881808397428938995152461999671013199560181778561768831930178704608884493147816910288314356713533378445971125875801616276237561637136129837165192025077898890121362648256133003675705479103506218126605612046901632650085845695831430231482608917011201566176642245615221766892963052032818674558495579074308745093492812366631644860024538707013397501883004710144653145494382095981012588326286267288476224860689086462982567777862919815067396531290695494275975884173463230692991121503279297835688341181930826329939516105164124850709877487403035435977544574536813742060848839457369622771037011401671327164717494445703921267726813677317417421495581359270247457834851175889439550572465372679966888826464843533993056401519532427017074489372816278155993054910785638135801653031811914822210430544590780962749462795985578635719389449938196096972493233553365165329421213388766163736821044827162662074026750142753950440677119611940007896088420632772761452946428107519100931758388412862876125402114921031559699226251732267934221358996679908666811192762615430241718592520982244664028854156584145510326264318716394252865642917794263979595918454158565575002291361681847292006701373347852735571745068555340422600441985559524365658882339062775761933248581828550469987960421749787983883690264090783909616459978135956154470798666139271141617261947427090832037156216104909315558331571978599609183623245139126230900337950067909955383446696616632720273323026709083420613732588699654913895577667767234914328470249958278782085437578741939401019723953276415242042509027129505475141064731435639879233593735706384314203004853388912908552732412215868238021297254139084555053400347348017139527506859862250160298620394468175336355199973852823356520042503980935501752946648770064697032160734133012778793176706412513351336309068761379518975900187561184733700684956237289599062975164867881751522423506803889534691422702128170356900140051246399997886432133375671845350066134068274463603435795463047793769535473042912514251265575275604538714024261026160036957932275262922530293655288207067146267150281561771279196267203267765073583982902673576155879059442264183409153310886756017669614214219639448487416825694071004317808722628848381530975224435745900623648154803743264224174287757747705622812145132713352071378079591849069225921926644888578974610991907638900778297676665358495086117160867885612365886025698178009785059851540563543419959379483288307394391250314207779036375189829109507047886568979475226359340488978647295679090462757899499111748061102714472160783564876417705322560135622246890375182172829717099651568755342149647951468885888536834381660395435458373274809348481750465371574741713936285607451635780341149584196875185408742417852983562867356322952835982658480119935279847668558818758724858960417958458195331707249634596937022196122034857486015914772592246078443378034353711668598805055229055154380734117421411021472130926056129396560130954614706412348306643141281573660588777587066917304029316828173144645676092961508608339123468101899603542552867459128208363843972510129104333436116603606074846866902222214864299814411984309220338323184570984943425194770602538923817674965708681458266800605532723009689870473271075482371491878439589002307922071561763687565591210024157300722465996109723047287587297124055313468016596281180523271942879206170288221358424449092649199610047757874262857072663700586379604492746409204712852435787178266574289119937210105751861255361185381141323065638183882717327062000379761619273856478045350446334328207748516005997873589943417057619082243058373550312337105733755341298640191841328979840091652744491682953830320077340996805599107258088453802317005192817706443899162140573814479967418697873051879496438188891766105496635088717404707851596507362699064966170595063996519009952432336821522789634991187449134163536932039837609320313055241331848702939938866583535456397844438596774710348915479059917641592114975555345146383081696981066981555239542659587684307417874701695258321921845552804544344822424622490992770360141396975887570768215445687463077852627826758604647559803809422620453542378387093361025271761218388079423253668292343280695143462863980881823879840301302948931191991677481449576039341921237199283402442413373531484491640390676211829122692781468192893277880781586312588542282816698039876748775947486930309690071102932191806465165300512171107592641785166037847815525025016726513475470030420783976643486240642998585053798973340742148880891284522512764209941246129605350735780514354820456937093300946233857136583547260220313001579712258193614211548366367412541220065942508075556632943202789343335659668077611432547233370097832091776025695327874593612177017366040974998992854745194028233104287073412860136010860304652027727921645203357797292357878993746430768810255215256642760988272485821848315664835025619043865946662938892028490876993279762156914375734116777713524151773601140985983392017163099793668066132333126146450298424932493707040717110625491685765253138277246846548591885039833769424812819406275429243407426169338536059390576602262230552868707066693436495865733299903521607814014911209369402601456309921583741328508653037060304941212094113759849491413672560059259913938101368726640354243088545855517882753635767370726029995619785927354265953549041720251871130523919860624330074823131767677851938882881809952642601734679497184750978177782020275024357775443310153383031226277638642295533826652312183376746275825775006947830275692262894770495061790979918772871259873442452443169962671646310782994155516546066713453970561735903793605880215230789323444347632382753855276265425223525708890872994459914265811906791119502460922873365010142663638829915858059719636841621823312709381715862117675277284855588462065262522184240454866441583260740870353776684271478949409971387544362165016875122747851700868604978220972252623572403721068354228659643008873834103510464493558421503420748108835716778985709923079130598304575090157383112655142739622107203929018173549773358629772471538774828954133457755891174612663407977870489357079568910204587551715523106480564598770909338371815755273923435919664132383240597875326238742083928113371880780598499516374699016922273740882952303636779709860496001985048491859255772341510406096051549985707368329165732009725001782499838026255310175490201977696403631552897824191354777616270565853301852417925525950522035351694519967388726321017876060859960560377943399628430963015816358623331502080315549960114811666748996114428906465331950754945991057307028839922651893205518926697367577202366273387630868821686637779458069609702423801317550026045882801845764784129263441199070935212748451028917588544346730477716877680386979418223263177075843537295362280388616489975804679688054092979078125989808521071172243914579571166997770817905290979980211816871178223687355207394727041199227859759643870893138505823183038721956189403042495403507062363771009832042027681242003791908060154387286121514084466599016341376379123781398780009371313907221518536919880805387073268245723260683919428955399788430428144544519277857930723637980174365168888843642706495193537403079938235752825029643329173217150653466779596049469865769897455935422959285634749136181243352410516304654123351021650637281316933755302434257250162045070349657390240323695543253278166232043729943760488560974547470194865004333446570764282519393309870612931375396622087520273350018525024414853390819258813943390584501360700755875312373636075476423275167545917339324504167242974758014591198213852360319126695287694346768196526115024493681240397152287567413454349505165265014980488086544034693814100265412129086466389379725676007571222276514717041823522025835973790231303271137239162342074954559908143579730565571623807499761276146060878573372034820641678095337092730589605466798036009213126980656114311478609289066868654415065348109403735081065053023021983195047966788518137951658702068206268348218023952045434893065083671717306079764552245970131661300941578901072354408619918061293520618503551410651185339024906935395332958548602829812960709062575679652390201071693655540778837052842179576885294038319642208785259255017899806221886081315664283309392838128771723447883139157632868315096630721959834793905120658641566915028517347095480156829010004759508474042656396348601063102984515330679436034908894798417220724064011472343745184582653306490373917582827398629160830122439478489490287691234679601891136853448088411408947880736332421938588266681513385293389853754119918317352617106462078848744554426430650974981794551412351054506060123409653923136607225718381200346974327380738171635506701050470110759174869902555307756926275980885736152101993318784319731802724082719038940973267960112013885523585615313847042125576745172951874698672544132797766961483732736005646302366141562598797264383821046195158667262097878778191228404903026893255925400961673118754025562708677075885507224342717976519253578300996714593262088270872727151305060105165228891288785910398035429364298425939751073696785817567476053479174511746730189314687005194666431948233093475895920501992998575220318245172158223587088040495812405117357022379355198048734555139946898651295952368674194878275437551465123221548089476766609438653211835731427719278098951375036047394356412526034222371076882419711821794239373751721844235600184424972441717663898151488750860337421342595442672426590393155454212925515434426147031901153180344418521390809486861990473680846121682742017766363394616901208188824204681741313237916020469972248281229972057526140730543041542826151275104251682564367305540636096434575343493355926059917897340385685224647436530230590864451370084363227083490603724265625657613103648274434808779360807432137815228871699408690820615403015911409696882798786344341483220403989630280291058487782067029136922901713119596392316721472619975974518198296242180239266504245606630041797074479789462582830837076901479023020135804726545577484617843008179104617009292931852046434806355750606349817035735942674179995831205518146789444626287672312712184091370066007860497295846426036771226794310801602114082156099814549298087241694014131816204921576042233079629397076455116574670002949154874106327935722949398247261656362625923053523955384739995771173968427555773911641536670095790251578529601262636765067968476970978090920499971602168087071431764684264638967038416716058998829338735148536323320234842489711158978217831572297709792204721762774397744499659477204233582140263923509379343393223890839790894546946164355930516503574275656368769856255301327078161088545054733886208632772925412569485174778938648491489791884903424511699569662612883744617646662760142528054465829490374026317696943602177871401425955984179832996334910641518921769989450479102266643119506119385461021952018573097778099222205352844145908243842072091750436621940978236296142378103073441948696607756687972306690453516043767081512986792183457985787207609618952109493319727236784105244762951749487425868884109452039922050545947378100457189777015431966113195947414343809182967832651395870069012554908328216981077579226048850619375608770982652205444393057457186157577688708184487636720474704448417208149982768902235043680421858668422471188348536402247989362963005215064217966377340408542783910102674572895517688152068827893075913938666931721301060307229262803124738578874415745655083466388379265516239887467669949923026699603823336666975895261383304080771613805614451631289533217900102808965045630265685177281282765203611952918456436186186473637952132849165219900227994140731368571911645283913841264004639720553713541922025204593302428699123785958868017259930659776975826076295335234837737627668215021967750755847391346525076859351515746344779511908532611971270078710343416912218881874852819248631699105787252378115056890097225692145270872887234555417422546894586627787359940348341461725979154851371149915921743362405530436680232117716402149100830495171767133134394803852333566235324792270852849604549925477849368113512225307176429920495810783776769473148876860753926634842892980556300691588623806906026063930809988513801667556399763308941946578172084284281378711868969097151312721126935075683559664438467246954704589643101586364438038334604800488220832700760554748931969409629653421297057637906441619093685543615116848708892825188604675676047893619816442110754546935739745339130104710097375597760100038316841557549589974488284507968094899689513246410520348679792246967721069341236882187621791308364105699181458375014522685493348455947172932285823000130336760543900576228220960682045031312733681332750384031775283832037213378543317158815538191492359081779667022391166456095471073240135269418054221882971330223946048187498613280581521274219140013586186474966378079421551157679206610127692715396695203695561443330141531749711032839662483974342241056807011975349124011680056383684969348107590850732851313028802257963585169554898127643703865992621404442774697339625347547324067490385515274491952955693918598741131089974164407214121106472095712668038248045630641283605550988885325800611829974253360970167025379076037610922677861524405636318278120810473417907477604288236208842691431518286657535914079203252620333814102931812350061401038116467112840932246503202814552077579695526875200854602478912085167303525740541225465948707901035888981209507101958099928485546023741265225901415045832368636091952205355780815519089894239211791589104309552972229381174179809221667509751984658524494362045231038699540673681940670269024640846292035833335050476217063359861230153916235138797444228335004834566900572938388689297819099822434619783386242741583354363562268633336105135762595133457331543276076894052686141598646187543838680329433230863205986826908397345926034088478437862003488420094458955978255915686209744867053979058699052042574402918776176256613284473010099822104961907063489182333819119981099292651980885381944425960291173675361263010188819900869111581040343304535253821442745479690982062460212099382161919760873040956979711274088172608535152724602979164170655279277223587878415297473681828887837418914784086486824843268295634554249267211313492562720140785466109821743087557344216315252217390075172197513903385221078484399233943242230759752735469107372165461358677168352223059899693781889422334806140469310394136974711675871115902143868374514294779031533599277344660979643071613058610143093497643375383794931920324737745063094844515691088009153546056079289322010837130411940536107327681293649143030050283482279179691447884445386214671330795882978910668033179093604045939904545290646668758908733011067599191650484610094423464817635010034352441542386495184755101319555776614640567421713933548161172240060508928626357942612115444028259342274206144565771026279899425406373860384807989163101344725168804061862596860494634597880420300631418399829298415378967483318015488488423773457384242712441078779790015501219961784493855794267530355470152468374189577359259753609261841709990954440054870252096039794380844342606163887447883807699354706221186800205039433003427794526272769536142861129550355412235771998907298957806522626516319846577149846380461995567125313546723977516754221499354039029247974798510681075405426493419033569243077197176867390416607560948655699442621819147205283520052248634994376769918325146840958037636661760503292575543712207526754790650055007082829607130364624655558069103990006546368779691279247154184682757369736135195196170761545643596396711230692176156684386012616063739863908320565824991873231811770772935393611073866555455061814249917436320454418342289730952583683319050921781395352147199545739059495583862919823681291187954752613910656329064517428449077525654533974001497499057950446773311292763021456972219614876685111370534149714236102853699020839046162815941538961016225682430910207305122795490873493232805630603356648183648631775073935620702274903816733600069118751703678424200351372649280805988855913990879695990360927796272111138321936028298900270936507234097613340643582776597081462658846338883590300694342765531238048990412623590123308665223580994805362127128060046368559710796498321493067386212851113666910777018412642320899098173610009971077340890339091027469367836767927967732207704412803024647724913022628082422029350623720977345086154539533722175176541256604045048109871803343857963899787745615010795605373873106939307947042228597869180535145698174222651451141633719487265540733160899694042914614428026047325259273587431401364524476030224424538075154489516969515996528716360501829012497891894531247573387353872183443948440589715328504304110964998848157329272634055128095337625956889971018151088560570916226927830844299057150981356018404356169570479950210816052031196337538061871344287412409182822812272363315385875684476465048250987274234820209752538184531859936877258931161040731360544400574420852866554156836529872123348522008909829524996555810383375753032174152388892997723652428573590793638633672959145595072799920617775417187799111782843217980948840043794040615908755005477711673582090499707762282482923219222213040272274842241950403567514690227890015232973851274694922484936030520298248315666350256580224780334372624406909026865293893454178443697961312175895404068758423208710286009081029093297010221353875948169575610166021013178887358545520842084508204479848080073498712878901383890377469732363765216540166595252447559377274574712949634633706714515300435493262585999975953561477746225710391730274446694861140800868099499115135056524704950235366881873760783238079625959744910624543509509125734726156308789924947619376287385090791860414045550824955634400776451434298091061887128010438624018492372800114963804885559415006131746414543298353399429526925041853349040665687198715290902233269149255007734154900515683622129671733813119381182385578835245124002367653325409792384883858236532994564429418080659608172001489874847740153760141250426263390244059161497167675200996145248263006255708170207408045679887824773659662819528009681188196626094537729712588176042528997865163083388735587610878858280230128745376089977116003656575020110647300655402830156405916115169670540072538243844725082939065212759692454109193223761460192872627817245504244503412519456978409927152582854101972730616667496156127641561971426985597515519727417645548946414697681785581604015596878924166575815642652814101925657152698787350481529825123985997748842232510994014223856591287306964999276928782201711693358807812535269332116506752000372708246322024549270500856016154475990895434873482560890320213025189671580198281710638695975144234701820883264781680359901290069564348289328801010777964307705362917529565873139963690026834237653013151967472360008034278691488995635735285727294681216830746422452145224283625755983259728513597557253187524575216648872033709321344305427157763939515847679963751276444635792188255524149562422186061463853091991118906535968769860571634220045077418681984243447219793380711127405826057818956397539681086216012933087130454766597653130457326139608822243982140474180810840122181755598828193582725983142043176825435176243483967995588419982315317092605327933978963991752661248064721675628169755682125305635802734318496016256112104441228764495269729342448560954100224881266810100168214024968591427275658405903477748945557754028901626120153481814752735684234938171995988344886802544073064768794730722427613625121149766407734053452356080057136615281128032674984450175610447122418211159970040969668951411955457719437746870493044105894594587743715797664221502761630025814143370575774082818696944387366003180281965443379688327932678931227546986508483458978776993464808747827370045953761768261232565358171501310168003289793889902094655493883384785594706944315477632949062931061863543463350818699921678911506366808182738515775243256502106571739239070975715319694952120403889119060299566186513526357227273888869600974329878929752311013634957790485824212030618703843269162297737438596568841271766261725327390977801940452511723042886241496023819668985552379358437134384338501362073590921588139267736399917031037877170978574810088782704937433093108461446076444091471292518778370321625018407271459950520685905043146376441462330626073702068745481460758723578640647835549650511189359491029154958461773705040521225174196595367317076859503149153664570699322036069236209400506612020817000477016623585016384652719045797930977208224802859882995897441486872915303356184512228603862815559198314507897630427792992149611218127167925582725595088946650161464622982629759266482341326518013750737995685400985157797275228214682723155988007549448454447158783261434888777048525252086306730885643247937689471607836212197153580691719661852567301161814250808696050384387566614862289158911146017017311462905350632629362608675844322028090494686902767935052475907231968266664221926754840688091071343820506703251687111938094263958951837618949539120487553105016400871482103207976067125254607186767261589497029188502541245254861042182413740963710439113377074382408985959675004060721070351755839565810148241609413655752228398779574904148578663231106678836251674725012687201277497304397989004895072917784836987505154874563795505766185299868562052625455163604080086164216490729516795899566548350470563092197353438364089729580387406338391264290894332056083405563209747220851304536104816757044182174395775192406826174935092101675729642110326491318577363315819074979433441181073919245417817382271848933964653275984932071664358533231967961290518842767314767144453241942867245394310211814572125010011207727387524746404600119151238059321815395430253928182528934152967814164804086710738547018520491138519521927442443460257077627944297278733178599359542181101749557905066503258753586542620371576062161357690367600392597068651599895839085692451395368663937604144389457476730010378473802590225814920629110469632558904245574254303754592161644261766377145956123870299453967845688669884903929550148592271032054036975312260026588844812723255799255450593078574761447715305381341617577774088807060199130485230838740068752377961239737916657522896459022200655705401150269762496095526834487783820221328176278323339971207831059592530431796620648438738862210398211487418646360243951476204634590614367679684213327992909907821016695111166585666436353158022205565549984614347760434855810222411441321759161723772078093324285728398479087516228085778436984940659113960170223468928535805448404447457160510432931773162916066787878812783674117395452993460782757578965015381260402700358443311733957364883851197046949766256173693019000539061330970251326998510793881666556359685354513363382368356431031067376077426699549337875316267762090449719599206488610472672539300858437186580566805674238706774747704001637734829318561296430226639224433459875119416498951220871662031879728491064173019386658390878966316739284323879588291448576109482806491912577300037061651716622609965253338909875870559163214775758633706790779630511757470898026565356616340455571336338040484048336730007047660723201368200703136235705634696580953494275102347679280199066882483347911134554793165887953908415733445380060746076446947216039577441261489882584019135067229599055680552633079893772342975911564452185085816814820930720914613987062580834274447153494474326707243550182881542479556844697545635900650735842494145349922199154449611447408203956994713411408273888089632143915906549917961660950683959771207057361710645651074696992405984416107993537673282924496765707901050536224541707178685174796331088840660429622685440895621691731139997592384016909402216653607680818780550378577868660462385353634531783131342552736000640606434211048727183143809975691649166191725554096637744614939306982870045534202122719973090008226068406991351360017887228634598414492283577038657530152439348925400778473169195235361684064781748135133836623268139142632238742670222489588352404424596964684704811604390240479672930413331159628128600127583582921552278152777544650495240316335701567796895287067077422131362577315894367494828789070934168179536965844342190484190348912380028275083440582856601361579636847811154785607785130906504991784725801609121497844898406597283790506229659343794597018965473031913220413693570179361661428095710652489838623868729688846454759829162758324228965425538901785295849215340840969111968643742031270589166717225866823766041957084693811305213888612624902863196032112890284644579060056212119071064818216437426575146731324632314150565790732114376606883139090043597691322590148661121095843319294170894735694690411659480100614355683262235888639200538239903677910620462534012700397407442601176417385557999574132997218325352479272334648540534067184411807151041772986642297299039225358833900543772954751268946341260169731797994032439280698146021888413778132681605345093950184457372602930728586909567015471309501324012617501931911407319964524371634649335401614235707138083863462221410750274518701791766180832946037844371018227284458130758183224199069770982766374236839990029116115773731086252726525160613073693622679360731786186856006042847711378496922458215742110129356191605460424909665458939427788788190627010508615745098565207906632851165773033126682685802234806517328038055734887874521231466983815402046372139034615982233808413534893038160346097702681636682699815103060362486250892784708145702349629875695246026139033293555022776736774448280519145333711123643411054112358501284947252422341944886118083103056306797382160781081648593946726435614815295039993083475652102470094946454477025132761441432042950812692443708807549601192658557284676428378482736903081149236667446420860623383821963631832092228490579654922375722516079817503761772791776126697770190134337230359874360411900520147044281248209434015743188010527823920539725573287443112377577444649423468176999504267478250109802140920665452331378269146482637355250079932771117954271700956150941893074654399134602201724804242780727476843777689051116316541565489939893596387549209542769112232249680751467259326425662601628128745277496434541347163853346223682269964119133149351056757490483343170258307043933944383258310415979664350148838594809380396683550099756235591495619667968970730908049360672253041541816349666201646542496819002658061386805796535182802880519080604081907652832755290016901590295656528226967993121215185089867908298068644294201431455765590890647055253142502035615537642893267824725695994115725439860370710811370403406766496931457984066877279584805442373769931227554944115637343307024423265229977511792761014476476966185289602401292973183670408570778572466683199133230151129791084903529416809412244001777570336474957597040655068985207037355834856294826837603041297516458221318533920459471771558420058476065771705590794610849551698392669164052181437008174054328611251445409910065500640996633864253917401447369648055803624239909540334804430787786662092670092275870597242433186893939450637077722045990003675764477605252318671139428904809071612942727847698397609781387065070505906300510653380233616920253267242117379228407779832375670476547004092901381634652711296582892642223376883207864946827613515690413363019778791734096276231586161065426724050990223755807951871630495594054560887604980229913902820448182923631513415322695230247686156664349554286992349976357763114732627602121904569772908309576762785027442343982719818918030796185436269765774292709101090036509434342230027940449689018963347250760775362110073048340090545997578556927504005838051647859978330595535929731662525172063594956896835272085834894212793647047511093881726951501932868112775945025264317001294171798359676875104024759262076566566394918603436971179908643951783087533532672024796159648730500178581475835327573729297388182003859327626458857175866856556203608526402551887829131838908120139479335528568240810917372588897165678721455875351891514047519039365820154320921947351618332069894168390701610502988648959813487162005723140611147009367687853219383239742846160923615701451479083499861137991888596688478011804330217209921527688739577306762025626179032046510994895491361502707321196265864113263224760059916959503244244821657018336933559609106102904308228651534975001802094090307691880694654868051396923604175905160005866112381429183997678603019443875780922749618000332520739779580246133902326016020724245689511499546264777388337323802847166826517804332581812265806941957215855015326938230789603442484204263352957017408529853509519915794567720194795531462189062361489134272838532615430654608292223316446438007212204672114562635761767076708517590485473363586304206100051209729753354240101632468124552323196508023170022112169831555085719159661257305922508289719278108906292227757116540725637141167542576680637057727394162442973597321846598965821982663117940600929689221812873612676809809768207062929756050870893183370817394454934470923604253418382832325721620685574268142723867507156302112874465633923457719136314550692223242821563129977448871841080206580018722447801475173268838135450520577570491268100944697574432808055191279501466533726710089966183185456204969114763861277883864873476759990905181229392999647503358524382222699677313995245312337933338036654877227952744993146916548243818283078621245938615162607118926860980878618760348167481061646288701932334867134401910083250524934756441196114569841318379626461042914689027327783572629804779180619533234817148821221392876880345781194331910507690073410684403391265494804786473412436715409806143191937670778613765724204176837963941269947290453454382286446023366453145353860313335246916928208934379780908031490270158337585710915532492499728564157470955358758327947781727219779466645047732148769949378440253032592790674047138530655807049420745435116345934058846048646523646627762386484566433201847718880747413140276822640602129593383168601743662166734359233744863006608512461956265240469204571065953349849331971679700213810067353511844099615064105532659258906262436419353413081892352155810346164540416746213587099924086342963906413043091399052570305333712612753618973633216053953913731784425686225026062622160430184755008535211142952581359085391935013251596740399140970926230092035647334118638714943772234403568487632522095261303727891345778832216710737599168729912559912037981577455308429061248424235014758796659591560078162955288531342126293902243219582049857835398172436644420580202518864856667686631902677533863710077130956765880672818760519416828921846624088220812839592952883197841379106869994286305759002180720436452311258018675145656627994995611912362380843523512865789549489215283294961187181284982816492178168897696661821195659569751832287715038082767510220774861535815120088339023388159077079568035051934979276929243337738444466560666172553769107240445707073600921659802017124771755061899413705237724466046998573889494690650592142319616294208841580261343056166274646649739688284196424539922538540309503876791159929807398369042521302586596081328312252785702779888696376704142716158290951989238652316131359863513982772962037669979466873947750279879148530079168831343051920249007731469310484188332825620079103940699038266417965097685730667836182307434299104965065392642806949229910894125061587294898460912989382445940240395529377726677335105137847740276415109244677747268880743305947919815420010835231313253286151856498972441621019358789106683225185275621793009546391148146024764728951679351340364014886703954387992689504432804853184583182794122653303478526224654197040635636602708868613655939561163103302232889777939100048176551434110270028176030578876362099827949079468020328338358366675631974814724030145915527791290952461182491551560065732533133148190912387612833145338005456461551338899106006082430133033025126960108367403484709868832459909709109039029686937663289245024701147593508400611135122499691656524949507944331692625930980597235035337902203634253469704495208473727678820645972119891065143010679336138652156998285225804294114701710042724711614316103167742356284551943770155828270619539540429503931527016233243338632383779886868116815229309482116995119733886018111277600352254370714790918011118474641092556999852468278468156766002063076293031764412651693862284625911415036970390947933938532243478119903420442551174068889868680548259611368653894386288755806675902768611771886278499024875269303562620037017468555682758886980523259835078031285223978604201206306439885005035693359809347674195542012899807523558031006023208261019553770612078542862023149658670533662072020902030570473662945151606060115398316566054127176472091999839655151560345815243169855780900034865959946336914415974932814920989273993078835321856058660784368661743157672045458591402066248257842639716443738862340967118940157653726648266638964417440049186951835354863244738056941702888070967437327866302386099655207696775080630148742531167374544251543923485349743438546913537533867604007738208218099992528209397583021219495095806186496470997190097641984549730333827036368616396964604966400383153128918135693378045301648638703472957168191908331239286866100052335553289115255175577348820459963330044420260981281831845404336746622306066539309697183511603992456917090843754075598926786627739683385530378786083694971586093591455437833717192795817689087831234622710904093013368151358303486269635344854551279132362741290284444980451225538758255452489571802470644865829427749692012525438788954077332761835497647718757498211416570829685972557194329797324376540738037162103961740956698866985889855321485168260460375840335279974602129704646652416040207775861673164315290783337628055724498265717945899069699635632189435702731113000850825572794020558864909957247449036587633016478804336903437224679908160356518326885293957303266939199721978745077848611414869596477882545898735667830342635338097862645114405365921847186995296474492307696321986143148528171247319561398430201356739655861944600823649838876580429487243874539808685765614361354348341783985552272423551787057233094564369446328055893008253019483885294532209744338270103061261479457012513445623423914936267972530318880259337582821146507317293847105527856553442428132197034190938095488180746082197468458841445569026418528338222463519748942057940406479275191240203693717212484564164894954813489866174070251731305860415992572062412708633456680915668740210367791136479349304093949008221468190175934730415651737676236405977904399859910918103879316611562170996719364432161791271398966770259978108528932771138994621373250147890019476794135030196974581667664708662074640786720149085102480676837494608396960363742244179491348210078761136699405172134739287286238913196288294072033303681272172781167181999676885243141583908018247567330242661125854282059033938953731031447155296988856264353228621010671243131614274494236050421981909362896990587217712365366056308702400109456790747253232770553458905026656638657111642466413008330197029683801153157296303587177004228988963780448714450438058221050715194557897226613352735386089600678509466924171637642457172990202505470269480432991039927197697180467354803971287948248887128797614457365964261031865577953273491411417769962792252232640631348630500946009682076786533600610483005538752475470082034096202360656880710844239287383845093142231929341692434592897915435083383665306566618638692007790947052265417078807490550908604539867539334727204460951826940025181847145350843418189273788994830398998793858614949916146391805715434411910208378591813737414344040825884275688223402942282493463614355630744905303066476186601858676149496357628619086833694434606770139674267272926247519040191317692065171961152720975357632678983654386197324234666503913702365708095167552703865728874322485077612531557041783258557607508904349462589483778617536725121543576857357957126671747708790052819063285930590338762738418699445578150312220759054460677674915567172964504670546818372379571489730006604009182903091421911749171854305702047060950431857497371158743231414048599464820944678249439391697440131693804686398580673231967481860091587071366872647250218242004683548569566811639698551386746402467326327391132078464080418380954879672962728397811449157010712656758896363250695044733000323653159199198102400353800164318815207224647451366283387592108724868051668237181526460105753617239899992455714225776860481345884473325527249658948569778527537316248886181740058185110067064969074318090246643054599257260665637580795875778729460325450864342035710230666289442802525153351906078788566156417183142781412722909702416420769815173625585275636671348672119903145025041030653522843843807182679533222157447434402817644327639471048261264300206253942039403083350688233759400007337911891185834753499228500144490786190285291514123653928033604243434083757456945792513875773868672223180396831832625867328067443178950885124798278724647486900551602383268599084949317991079745498828360914959001497479002346430976258790099664111158750879079182674574943858569793503176749919318540206897496794612792504116576355232448601812381686420038595137025297437440665759569956178791740663496429917179614448450994655162130977069147278052883484923642419479312867949638476851452416339633210602730491649563539292264955212864787285623984732133786852499848170089067918245318410645642881068770018454992829805536156757617039098461294396713836285394227516123753072417027259793239881957611510976036272350497796469383650825735137871322669444562759081707331493481886184729276783182111168124618567203724253535383678547807251306399059951078578731400336020937511378046795486375994899563624189576483701351064593025965083512783202473243803463007112246126130540251445196851868067925949913514036323426791975209742321828033350318822499641444810376155659059028706908539791029739455689147518109530333241282782327324691902791528318986375985525152498442566724562706540976762044855375741115000842475180409345313675097854208545409534000519287584454464561670873176557759080241362209842660745453654000676979371798974514333853681401186478757941822608196432674048575370943328942215253587715948046724873958480913846324121065354927734166535548817257608910925428795611384210851609906626161288987486403755377212239420131929277005625849027626961116057708671680934220245221944330216378176089626160886629443071444909040242279597604312604020004389271164362861823691084233969126139280564453570516296606557301689659224033927734262344139966214132988587534543285004423661296797122106634773827979778832414678312799432293350671234765980328258276373153265839903924337618858883125467754890442538627288616096065385983520866491521194483310423087294076288976647056735126382680181027539340212338453180886224777181823249121905308067956231282021387538921873725806326121580352510610863067362510428672274437135527708322426742851640629991235243770860509298041004110431820996289674908942678289862424098123703314950414363654078863795688113254952738935837148127963086967462106841871460813105781773952827502604618040812375621430226147180131845607477318197587783368619074069014678731218347446093391134409679485632074037339408895525126816351047663248603186696868293311419931114691043043326431720445425314979472302730649183435149477998602208093846276357389209468814517654897096342408332475377323170868962402044421761949205095128463548513784064997575092031650358963580398729517264690866679214165386642625538201899943342072834591985071486913006205267109093505439274126932720017381390394434453328246814402095761129116771889375416817585734766091966838213877654477280970056645737789367013310839646925660067594896842693894073804332777262013408534339327190107187152139688958474445228548203567818596945662273971885610867185682280387619703804019041991443455103500534047849010462158919186824483874820546794361722967456540728090560149518790863027905322600207438349138080831901340822261392345715202223401716620317074323124960962441197830595540282927959623225804579514779357099161135333884196670246057224929541345143269671591317885851896199344475429565931385015245218711929788513016575979614557668499037209200139748976652454558964648827042382504521170146037262636736511343111834604016912286245759600533537074328282913989924769503066821629041027294685839755591654028692936612498551685876518741317355371645286136226670591481649823646725754113004148915219669480631231011377561970545835481590362591558629587306893001017675382212929864495821752780725921215873619560173805814804657865005882029505156465308510645015282703916860964623084889859612127596863288744035564235008207383368081699379244851263488221269889415991763105456176504270694530828859224507436032103658927045740892097755224938452632446852682211796557645387415449026409804005295105443061669009803537951043095753196555771161824435663179520093154750104271475988580381107228126319431142069066383347651323508200069500021397267079641456860953787712869127964923300915044981443026175000208127181148267104170433579815149663066402024922691802553372658953540555294507438591198501252094909618976158311603938282325189226330759339051060646782512814825355934915238316713192283286113261583044618735644774683013646160857843909121678969647068399292621062359849575465648388766319219175148427304660986016268388293214156237680431512816121905514498556846713333037923509682051471575063410893776495382000492368195219958863873545803439082840432796879799134109324072260191681741991946812892412800373413738955285011076895036712590118347077509023091589475907968036864267937064031311962748133429046719183039760235695966131760581089831102119233297701938931339480232573709068844425373769073808069995569627019878021947198237899177311881014759986190234271141941851024314762583706160117344757795355741918479660579675442286162248702366963842550043673895216772141931031443269000501433437666273954082027296513013755218068740960099989328046740517327511805028816600009508158942032025025910918006955627323482097369200693884123909444320858240770836457304115679735266583322167317218340479980214454472214445572969470730194190702402064645383557664493517034555782753193668957415419640254732110650031110719632399604481588200889819623428002677805758361556684795612831986680733287702214189633408766827496402770542330374197886237514884253654864046430071942856803165127533570156775342711955855372579331310207661179038298555859344780696067125484669016342631289747137785089254394851993331903896312319976340851357579112738731171892432847934375994225369274954020280295298997416165565879161420238266375777409807421598017083878650215053598352218654741178837679296455523174940358904528522998364888914653069393498952491704445293960061274886324418028151675899647479694611297530356390397154881529551537096142548337887116935813804373008300378910251311553368612170516904972905203969621949899639895902015596242498263012163461434609216738893654461188756145611557401343308283833343697424040419671378784354549334945053921682564789286120684729625705415432061851149839469744725942308795362305639476252426977227107112884291442955029087436116504224542156195143738801446618575156221829669936331593804936476132461709928591645644907362887666739339242931485814700519580695164704879998176189587991888519481002683816066278758982891134142690454912744598599657395028946417585897835753337092093326473573668836083708541248733975385952830989121666271845203474348116816097032828537667070403897071385960703412949087255209723902802490817301617651447636257368191647635031687415598985722931831364763164000212334970034027989017255371695660027585243688502702293198438235788626350277269145691384568824491921426104908728706158862044713618458327161635766171709752838968668068888387755370865758349611495802392998013352349725793524080873008400281787769940880243274987700438484973205474381579177506819346238348660100587415858560760146724049717320492165126805278266797289025678044768252230225022821776135528036622026564311514120021757064274558990249500491855636799741386014155818479450677725902836484243605735393156689664384046166188159351696537626534614593301551551263843199167616812528164937611173382420200693892625740970381656478966025577953047642033461633937546161809083597669906957642964564363089963252027662385436741536742774105171870704171525287017928919435801607718513206602188109268794372357287122243964480979581066840372898237250294384079303270728242144207977227088601785939380578407175186414406026857712686001492966234950689136949204201740974332163893056191466383121879806835221079342690760149830251684209369331678021129064106490935945172912972549100678311390043841077370502386600040296249476786440619672832663295788591403795759502749686222626030843176110331599001660227014600065479432353841006896272417199608456587908468763018769957093951096003219853826066033250230492817513245577984828489893694808329136625525408007704427521536135995658577575630357628962219628360482082259821216816389458255444660051448342522105643488427165173522692280435083386145204683798068076087300046513738224589348070678673401853453992985088048050710423445360584086549794898170977812995773871294434974478693935715086700376835927568294304497020667436033081442689006910967039215533189790510694308924855827647655837045894356604783828357308195917647163421325652962600825528218760097622424010948414539049489045727571622782680192498570411984330408299483717150854752854109509089286284658039174354152614342237833941571894401086777203486522101450229833012765173530701111049097433989622468406083202719001047326644780759546640580826449731566779757913277084005072705929881526144950390566847401509766662008729689679956141634537085322503517533320437252055285745880092066678613522829319795825156978068102320181847199315328893052808558804312494210331915689619018916939275972956113881885291578694243118139289605732587696043769774745854880665533724077299536979471669840411825462672702513705519427821135261204166392541452538344270098034511477270467068712758477543985610591036873754191575553329601929408301781636304525108249959987327197000979737930500226087110764261847668506869254955335966442350697217904326221948531639360384915103752249528562553686768809534492977017417400636447872753837516888730174696005166783747790401990750049871039733437692237795766451273383239613799652425423540604471890069606851790880883202578040254999934350445526799932470522548167272577122796053500482678611514612874000413388738535793149544563243263914352556722025738050835044239189447956801993533959699884111258034327420873959681476343099386853711956397118584529710526199839172384848197810048208679639097560094659606495010547402674502182993518583607150619869211764888698847078936168195438391222561782661168526807805728769981482320265282998168654179941256277172725855610456099377094789757475245092512048945036365363084023958674691210973954257008900310011810934918650909404659224956314633147034380548433667406559674608927226601401667278134662820301319891026739340894006910411800212052650061641640397793954341931275280374957917612657073808125607853523968685993036476143030302297860371180298890905254226602664530748770680473101917769560809802584930294585867255179503946392637396861654569152742207552415905706453659369744570159337557668503264602027203335977849186400053545110637866132516123657377182236342857156589787446418537928954124631096836422803999097997772212637453544670055204342277716568284014662733178238453684328518844185300093721725842078104492719578050264310947185547387526659762151123275877241748928353347473068584487806290924331475851118773741367464280362461266896307226252974484052938567539371052876512141007876887052675109995280854918695620795331738439832719036050698239305014406546849245603880083426598244286986376293034860370690890934776404962033509250758154615479333197889800577544698855595474506364056895101827534645361994287644197670703502352896373927598353647705330638833686656388698047091119203393237157945388445016764915280756378046625843605732756549764361838901084604538869810229037183985769582148954818975849995300801965387155490928542990884370733030630144170601778738581711280422567085957106910278707729280811630448964369755914680440462184218295556052290395796180408038011714066921704819321612245064543200009914554971108778108707234784743936511425730921716161782902692574270571714880294474830257390231743976216078009917339240033220507183714411058964856475550911501514811389156814111602422808821505156103867076348032620172570096019272582928211374724768744514165674699954803742530208443107154006421829308646368793892402418965480634637709736343612012348806905464405670198346426539709802171678421324325653865443047668066110102768557192072763973856815223799433211569295615456722407703024016557326252247683886549255992922798442228835667725494488662155447002988096775816653263423595094862000384938339838175408238151132575242668149754392786489792511393941862162058069357637004883655692338629282198298244042801003840053899261035038396306122094906870143512336864103923810737935171895861594387927851876426407329865315319200010971993784187272531250162741468970821227917383477140716815675583796399078846339504896642148713532331881094912365444006727829173710700420902316160676822262548498566360432197393343504467088804270093350289859843601000648491294859885342134037349671650414982707280575294261815163075661376709892218929433139214058530089020216711115005945838998861520724043058922180231088565145018370210810530168027834983502271461937316902124864618686700603588324717746432219188834754855683906714197560313141384843525255101322922163010491955048985830102536934844535669675020867597743323648979728164104268784859873784462741890069985667972246840885038122357431742679915480614508323381457862041667418735181682445642233239617085166068379217382437533943434724429658757874469067732702234169884079186252635508451906672243880638423774481652106076397802512187140999675542276132608838791116728193880104222186489968099546671567466360170965800574069935199545975048618995569202882572889599294754013726064303611889066899792677907837564543225739061615617498475780033212849090404148328796931392304093953885954710861977074723047092930544238870602418574235920209116646110250424000699795276786285777415850196371891111463504687893112574967907130385385843182899937607433339589266766237055944960027377170379717535588638833260108635665451064952107823746903260004234354472208015296114495607096441058504152971206610974321294339875282530918702888070123061929515473727653284256681337447923295656426772095251036198628056228318716493106873962892646983482891148469834484767713410596483170162339940771620493014959825492862594306735086945650644594672362216751335967451654807487625376276151034931725150244602352670652782686192637763515307191169634904160595109330466327906462003739007478661027847193789965368648539290205080326320152304367978691391991523190949421093280936167202374156823288715354199792016541195654460239948531652110532965870386703362074418469476572149422928925688387408234235491582929942806531942914529806797285928508330362496725965998156968083240368505575419850527064820083833955727592390322606203015028905768423441052186957861382718658247478200111456614601969382957315913966113488864046367571436349189453694642215612260415378600178610489014596953155039902159913195697734451653119654063523317252191682717521735995759797494861720151825137106982970146680100936291562977327395898576936068824758101791022783028412755567870355694493126198163567946952209986759494311312658156773810202027409970183590651182501202330248309143951988188769867879513965523751751776392318508128730447959169218194386771714058412212519040878147576786908274975219857287208283776260990219574219095299770083913744961373693201046788204437042195765745541937908961801148545134397476508747320812608147899752031943219289086282680744728414288482027043549819601389954057252227199937190989554514897133045269146830461213526370091716634790442346402304252165874975951655839331095569588444365410499277435731655915107463379866595627292798529935794551661188632268306866511157272176848409992113516393392729817916977887270059998220035347274647984728376367671024160505059947058066183379044687321648398004272894663843351470018747496740098757224837028028232632760202432183325240371998733035015536871841292754246875557647595358547734550909048811230578709424006552274916612827731319133318468948515138840706749446728896506181095940426885250275898139367406056127586279872034300901647707111790305379473048306122347346658210297564427410786471873561211885837925839128800972791556274004831831255559282125386506205451122726002998899326172606469565360809070315864792723821561752208059230913764314221599326144518234472455650234974184225597616944566934347218874922803928824235453057221237404858525168968986981580965978969756892602847871116755451837282449651685830243476498803781729553025999825267966966391623581388241846655944228778250014247651973398020232517890033998949890663890143056407445243500199216881354982840187144597804975809597377651724470778156783524683359623221783774576497855867969504381285574812397397475583478544539903001692113760347676678830478019555925364789903156321423632805227806823107755325618738959218095558281227500500741606059608765597093886611110841997429464477350906492131356927889936794648802475591881019890274961086019161627133540923980122476101121146297674391556422744825545383932036719692489334239697628261865345352139967352320112385064694301532496931411206403164186800665397385246957709999076516955104496427971284738873298718873122353420424922620149687551719669984644649174720887462156545763959731486069027876156689421285954251906620283890783979626106173935767680473722005772436822692242757278414397665198762188769894692517997581365205835936570127590772699448681276485776359934762502320011198695860392139365583972554006073455939878666219756242427403934529805946938039729978068484743471798289618749213161050023526825793143585169158865626791263103267832040721053245373291852949546304992664863719367033307807078070403421487260687518580594225233045871485284859205459728105014395508804971443893659782546726378490460033356319445156571569180624700369202835063247699662764224066879874746937427449348560802066105266674687711387685206941045319576151576986927281595326197104743596923208673038804181477573652030586087800486376968373414609736542222185144333823488364671378220836219220731164010599275191436356582888081694886094078358636726337225524634252293670490336223879402281654188024927917682186120972384749330330846021178308742949367523835821661597762922190328878254344017271883548744935064621755135226493729469132430656751440643023506623413003609044057546710262986045317021354271730912029869594659055027713158214197617880861472264617948041090293777065452275689536701382073563434690149950613050805564454911668177503086797480124943303640806858963629456722452096791479236328394930983765897098393831792806619374453209959871763109054884308288512936271826934215131437246882972541847739421344573281263905010742211521193426273448132195173011979240767597667507361674445464292087082050327134497452990095390773801300205047732665232235796776335383318493513788236158188351802002212732659461602427370470394062008462445652159962809140713496272421076130001356578264328886452168884343498508293753345936256619235758000436991671401601687492931895556456664535896668191321238062211342733323781239629406210693079128307175731088789374748100652465017956931565356413576331680709862089178364043662664914622152216815931028419172379555540596541499117733583199922523005219906152751270149822701777852222693755924398333528795172642267095940163173394939562269791729909170510238296108977834874999546572796019678642995394857631920527123291550764457276136462580462375777210543408451058580519623232978219195580093934800885295172386248765015253932198297375041184912115892927129640432137778882459982418926355019511246111603869313178394248950751777824585916557720846199303893240614593300652738403204658271992483054675768791886474523394619037518850817481546993510591714993345651398544324866406186204091278529305138450318277676174686988852303975020947141998010286422975165805313652846662413119335958278060251759784400954774174701294503294012216364749227767058113380103429008835270282500200320937932789269961168675098243441582766150809641970176321396962613903366486410557450353853202275300560865167492864492954181632478937708941856124948461209336217706163994794121778024594374600330460340056941805290543428921368893435253781260688357341887020136073527434418639480458067278193759064546267125133926352948486899480665214330224954564171597720456944196355953884125833520380849218046472634079495323085637456202058923378918657900256392943554729836127727084093143875231295619064717782410898101201627208545483153785572884969116307113765094538647011199214133236480906231711980146334254732371528144736514661485788148698557692448834455634464233301790450017854016714334836697334393243739958246929606802837982079469403939399732265275524822140725093272420374648642528776925500816935778925622474285505266125908992340852911703936929117160188913598256895979727394950696614753295661996351714634759568508698745720251795740140674959374657952864088075802972210465003006047409044628004966161161530101996662381919655735643788790707932732469474379076223286909827467395810838319118297021301393852711033878567471873362171837294427332422647329724230351626797893267917838412968204880891794198356179231758302177650503335847942995691528712148692722142001014819413789289471133619336579039249219311653591302589674458692038123703693145700620576540539747084186803839171962731818663918691669116573741329559392049704589612257509724779177584518705219277273799898103076759927158644116494561271091354588147054204683289776001650491921085827938781875030908486936780187542885299811057392801327443455703197081074154232823565669156863733070815749310828779424988416288183324030269691833677491164601690949174473080129123022279330223636009903106713036508704791030338832510864622508685419184873608510591004029379997956518762990603060664969352546225311637431628835034490208659809388827954925646298336060779327645489355483424107842245371205660490453571857796982976285864702023404575450142035680568924912000220276256526668775624004175043952613237653935471028772110244608874470978307430287081430845993807551011603147128320337289122420700643045636021600088917594845964464945432427160042086367504185137745665635925050380565314333071406139160291287123949324185236677140728079104247971706794467950155132944754889799876483592078907702832069415881475850906686194266855824009991388557132156129137792186852212878631049293480938216235993488879736852718864185214533336651487391795500192579481436541846073979619890425660836478705975733119034078712927997369093750916144152108933913259499206719471354038664539129867960785905908596781994305667696819333424932084247388875967117278616070053779118885215937475213908135878074713338576430691423958203304272270163350035315897177861986752336424585035847819082097844776638779966758822621749924662262293356688867891680867570811934419033450901297363656960356623399664925690271621762814316186943090801804997359992918276553681200312985882101003333192021133635736767140253281149794704864509840874161250673866623744813425210974936400658275805628423043418368704013900555179511422770092626258613213474692618935489309294566191140076760894822441948059140510178399026491589940631849154599774003205611474029389386129723919488536568725172435395481277312751457213158616167041148479817776008193104132331837282330917280510299309157122955116744958463738379918762159924952275311575582020595276440385642117204585871858660694491530486777122588546581259243855263654758089142616442017557021469777576243646213688076104723539239131020460362265842754618553818606139864793132831351906499038239693220836889760521469487119855343673424422684630777317747095049129608812099152195060513441928064168087774393387828017341216291226080367198861892495627866926587579326118844848601743744869411396602363391826298871436250699335240039868712692665458570219129118956061754497790977422594720255005960377714275404421964362086865158402056820398043725119718537883511566648388654146107220752686213400530816772713061319093264692494296584222315507640214756199611591461825581252454918054210888625698760980690274236556111493836551232536872443074989336258524859451086939020977512216832575671980229055502061845836029059597734317190748936702723328757435595180156406913236024829639783001639893169177918079407483433702507600139060787713708747551553098913025278182958840396815687362525009006356377031483887302574791024328466960444798120788302308350668086106756669142559140397466180154554148901011066084057958974389110568979907763459295735497427917962518266136185195700578757153763122622065014257839779714178386232318332862904434761497377620078594331424669731826535650526925680803651761021502401655052460649882061424047964945891167336915303394084396370347267498868857472372880326249481852904629933688910823805981448502572127291672763356324244766141655003245407663565409865642400441383938978139828897723817819953447748479468237316189714800775847830196121749362948557688538245455610878457362540301652025471806916592782044898521389071318896337456458374203231533528946038245288398859051589421535336142997247512008482509654503541392885495231076340705843876263115003934730381993777209063465723047771438378426796065663384389853181797355856218481405232633193502165370294538461074290019327267185022217331189794044338823863172160355284477715286020965319604047131153448963256707273511170122631593474700273631958136258974113653898344620167131929334906598275579829412284020206766481954659657979853249882118761878865441233620914551215100635788581103240844958193714423192154677967397560041443760665305160026987821520929664388276507025674102425670400997160420499418588173781898857312191342609051630565116310852735566050003117738617993302833100005545566918293248257572586455000396280064671916818079968882967574270821814941158943404107055613944720733473130719281362160299286307436158076039711581775029539611438654519995351855370040676921482210212293709050456832459148930076255205624208990642518007689150083970141538703988191382130844031675662568589489075919332477883516987518294576681204601050385398151692090385531925588514000818862240925324336126938783790296347361892036177213408770350317349707227601544527395003129353099239407059007670430970765411899879045896021609252578043288082180620414539126384465141387160386807254574678543495985409154310155965123012536075001719176364120103897797673225670068981167755273564884626521059397626840436150063066832732525433027666676956508421133961379402194288614003163604381473626921825234243251608660404842806822232514198753870640277653150547725438644351436195557582440582854017781944953275987352208311972217905860912315197602873763639069915227968766496382562390887489714941409970474047542374913306050252015306333401060894343946571359982771494057269111880367914551116634861756177937335417588582751355795751630981194030263226221135988376134912252217859249539091985366985035997125641768454254653204441721878734781449672897600309810317544937205650153818960296469987123917088359078205478422482903492729616454721777005921644987608312393097882638177101183943908890264447919223639514076352819402081987275921744485340067315538427159057782252284705054659738261587265359279202867073248676896049079460837236049591863855976867381173098320090582827712953575697221170820154539920535279655049233566261192549287939962797815381578950846805915363796983548151305405076123346141910184147259081395330996324619327285141981493549939483305707976535203316993207035225192962968330950741585372683883213620452902649430629676720805933637214734333844993252901791964135403153955639138498150617729481770211989387107182112142558546742450628978341473622089509162600566833963521422117169346426848607482804686040395193270573738376058816683751811050227872746230967694988273573743162272494435113349727310165097344802546987594610065941564025416014222042934762392972304551219685680003743345808964624448639561155062369302196771176205598722518579248928245870124034298113751486925612603291678585612726642627400731334534878800573278977213824492324237292855476061353382091353669343935638325932461737190706278428570230809862457955128380638226681571185566457935917955530803281344543647906257360103146472120865529903037423348140900752581973853316133343821197439690525819778235578808967352034046770639674143572873246783239611163912276910181328344124321657311477448068460349577442609065417783503412451731150025188622908077413923173270916687970702379487580090953640500253329326988721419669046507285434187961974596959687192634262785819332989549991868186795779222775199081386368943093237969662559713342709011707354313012453066892213667344836593210455956072031817317309783629954567539661627443625380947059139102606902443769875347151024067026677114582544008732727998831551331574779676058905443681228092494990610577515815019605269962049315591886557777028846428435217489033261063059224997538521283427090484369631581678548077262147247079946756606696275229368763950092466542664549067333395990939853418469716776530456077683331945143884834073864758359483138391211951588225210676137476309270133136028139713829977643229706352721527162333759249362835909322146607518213181362357099026511295806806077187236390161044723236503918601112368537548953506907582682029919295506364877243393056344228594068551567053223656599501664603672565598379142247079674201128059927865500150065759015489864662819621457920904948569198393893221412782952694030159096702454753460372612598636638281815492527149526276404244259425778089216143554692792493806021836808350930585124753179955825467722962623444815375550257921381607046763956999776479284893813819138595183719854286350077085625074670475299030882207077952457121795451160890607339334185443319236620414443516889850393471057994358628629117231579473729073507769166732998068798870993715683362812792629423869599736944976724753341456415516569099035495214949648295544309868660394233799941753443448947587661839788405896041481827937896084490488671754664637999023673961222346547010579478382261329937597748646175553387652548851166107018870058160431212096805886187260570044066140998198513354011283729271397850446964615102459444303458763454735817556149081350422309798379586406796807378646712609729444894830546913945122769580886511159157497321947705707536606473960234518126150690189803729562954817207775899909196883681388954755054567908403313808372685701359682259049675416753265318941059401709113115438859357344861331367809720945073840078019587024306420600183581868850505275557956846089837153698916014293142642190387847019634780941674099271846570286817642204383220170692595022606682742378533847780641167437887827187139974650937375530179708717121160337865063483814087040119124977527857129509850465212241520949636493396093077537716555243306518512806877761487610045974305728945196746679078603861847133805465165419607862323398628758495519923661542774830153838645721228685996417061849103409702676764926533532645116010640759888096312567386197841754822027969498205073487431722643872510434795326819056895545359246685972774684130607900449169373794350225089685606476127847887797953260692470747419913897406019492573847276590939236563312738159006113058900609967379815281031159412405708140231802977407673124896355704970154243359684356377525696989938463115436673655151797401289190921872104938217169304060941687870096846099654288647352964414717414596720171336202470193754787294252325214089349203178106469670373237664498342035547710092696495504789889622402854454057761434999583303955429387939973095638549282417729178803126804170549913939872442467806632574839060099559708239947272287267073811936382556802444330332931178271979227950174530562100515483999615635782603543487333764959572113316972100134809579733172949910298715146433065636003201498112325738929976927004143850157834049080536924542133349862530023982102697906036665094981549706828523018483226679585889078530314040544771189471722386824973096869125483833524092802827559656417639490828869817911577274761700880756207120287066501740189190881064891605047309299134249789072988673876579613433246237444077466871133032408708500690849733360170772017912086779310674188832848844705283552035541653300442823328140330227405380850058908310030273329039392740268219158855119152295042553256013166313264965022551521149536980827892031208604744638815055319823384521863034828453530361896800612889134280807583954423886422621312115470232476677783647720360491225881915025564371040558956340588577352057930201047853621873625633204912258601250548431573776101186290612310742289571320028344368177611077390988093302060857960174037908553592944206599565379035901612403430877248762783586938815173575628055381220834286834999145005503924851619200907711545500753853475037806541764404895448600856211342707880640869819712212199426868104836483739955677364973154607378592431130416356441980868224806528024942530751820218716880225437843130687838895159272438741917771674776510638058788141597835528249250825694511077349169517727794679057040430985805262595707010607527613010472905670365884173877858579684706322010924256658572960284407002060638575236606797000469134142211625544088108924599626927317631954723494624829572264793344788977683279305199111235513052382397232560878635400128033197034647545508265173179708189477829965092401650968175533118426689190372441894554002289346432969742951178320677659867813467246446418894486081392709111706146053492386038544220383067842887033646298842953395054584247540049629510478979141284517113333943978535820765292335008569978424755071510959214193580167728320806081277884581907375718947602509459040889878449701944975174960335329277360934443388377968414623460092647983915427540457769037571156297618795904840708011188791597648825006563385893813248034654771752290620823365017738996974775700569510691848193948066605200475359579889065608060476004054681133237447664962850857646965298019591346659255946567249709791311652956078128083584332084562293152568962518420778746651864977350513846907442939613097825764367334895273067797376926390459856601664984794357259147177487069646797204878462612433861890672970126133349033589773300522398493663942988674561395934078360500074020837000549872875761231088272811857617961213139840845635195574179822471623108119409074897219818169685858496089490454149147979808273984418268816102420126465365695806400753167622788945866460086291673998182972566334687384356374698930389307348473876888859598380626102845857189110400548788420992573841551613429289398216271982494751434209925941998882626078167512538092425996576553796516134776922086848798803893857627641642041788177424119752070942318544970434200576508853855246454094023561985004582940246675996564424961774600169639671909794223901722487750871322390164162007647957094966676362833471796620520387746752755963395377969145066568130076879508626981770438020409962862206470374812297680610232293490285961897341860195216039452960927876725100095500715471586660313575841809182696346993223845912377770031496790393829365076182819932105423149495349880636414860027086845069762353018784145316839283252806649854176158611307192578418789952381117939296216556134646862060576017174004966378527908281999802638420836246567717942210383301313381926069418867336222964117777944735060725283537620418401565144248821940045078564988619877662650201149366555990540395255075606011085792533039928781990311936672984478350567567495555393184647034914720557137352924177166744225699574420936994020264652469959065315438589579118178405995643577366959712057622265284477410599530918293304891735417456040554615153279878888076582585403623231016753354238248522404672254303283235230617886524900624571891646526488773031182723392493648749136410675206593256835466981171437425097720486869506165291785097235294308091034341882711094260142294704229226953439644516084942154356641557775950780796665056352719701098927904767190187736591416867743506818942191012130105632515982830186370956820830174785907417028521134066560508641615497493062630863213231114122976675823600770827229253858029883627541324252896105225498709115823582134096717841307695555320246486258048375437499831402433351368950520730566687658406917383163319628280568097550130409920628377879390227778358993330183311375360660844084008274216278783271177624750464982763324890318017443186193951163128683759505212154529149255582619060590420070146009412598714347218219886462217629253171228858887479645873154894859069882000360475927366721733242596758153882816065347367293172658913765554978904514058894098532627330312032617771623565198190495288885141730889728906670171987945573205969998073252554849466560407774662974325911876725471358347908785516661762844755888341055003845679621673711196167408940718548324309354742999839606655525887361623556276379472784748336029004117661435085979074607243139570877190444193049189487236091370633367532673030065122872726533809253612055316161238264505538067788589751543518308271180317134604892525799341185382430108513210417507555186585789952691309175760735716154416955779189190388724251514227460906127507329879872096188961125280641658808632134677402365810028867437698729142303990532934251811385501154136497905732107236571171452972813573050283986873286715023641062547699179404667812030811459655508303661809657255729849285933968666966465895332491760937742125980893625664924643188511420562883149000800298461797224222227793004150536621747029445582949666164869599548310895824954003482187390302127853754525783564224328496435214205313085125283513711827022234877276499420591526669413481782969601189537105624123571986807663763035800982214998425889788660083801678281265928770095206449602722794341904195522112558696726394379967613162074848176990078907051503049653818488190800002566213796156081245048669434223641283767633701130489426073520623522198917024596756246179192255670594094058453326756684128501665585487684162765371024620630101196844027821567967460723395333612461186698544472255979697224538698163122003823253646646503426944018571271305403442373863135550290194294452923868439370072260124981324784640106726241673489769517552981459669183704587881646167102420141289977816808872346868571063565096228473067869053853331264349091812635702167469593122761524238069796812536336681129264903320755002835847924893405787389728465935540659520926420523485821656332423095210981648477243513211911919537250554281610568504581268286898413167842056688931378780385748840238284853973086008464953841342618829843105791443400745988462584390884084633505604969480547049654161315439537786908685365765797697323182914813305360044233097780609055564235672688390818660350734643628275968120866656764012314197100995845759775658611687510334502630978399975869500432272731905352331578209587458537012099015915048195119402439627048570772691082018849757115046418718161573864676099857351051968454817941187273442005562353490956713085120511593377197824287334530097503740591585210260549430520222566950132266774837211626878713101242632716117331885331085529915880126698253049013400244634633544881164737919692697488673058354952838743635228576739063499002019506784326177811529055585335355813239821980017689824028525515785942693150177172755276293110931886152810293451401744000689669730530761031017481638438107205463209811422161665779141702784858883503115359963055680658476756796211437221881174374904973589656708686997724588073560930256944495721322111050246242090271038431999714719189164993716493819204001717420494339944009898729386987917442508229983460446221548067460219472511507094406596184525191474359203737679330861931965540094163100147305242054446824760791905623504985637791557005785841461143335139248475874085797048465634711281334330692514345932492918409130215249798182176373865183564691379056269841247477659278611862750362422246016634149134996244317152854997956644201573074372364736077476189455184446611489836106397704397453864095198236602301169347054243263524436042172956618160931830756830291670081836899420911512323125622710762551011030723072781917387455085313550017476268439546514062835807183819023117273550190354677664466236299553128435360546026682106940036995084233266324868840761611514255111690767195839840539509920605581880369114343967307451937495043959663613076124951066296076006942870069379377693581612439270053617671040485207030564965489688632614196327111242799658830866982664516257578205676817544348929307572001272326875969493137338763619425657546024106559653772752313184683422849436121951363215352153704672215971532037503170820254062375335654678836670349600346293372700785794319559154769847341070922899136657585998439545818477678911613302065767676978005269852064882885199687677713135844779777841507498496996221989368325103705001136593377579449561015054619214794283298233187830110771774264829735038727406960112959383925994515937155248860070706386421731724693372011861886120825258901269850978624474159717841938909463164402466258026763273270569096096842707403731213743118436593262544194635344143578959720062310225874456412459536609130439199894552672007463471712419570882128916425962438234112304648129502834939187837748101889917382330477999479573016563326274136237540990816731634760677836078437863685857535763093173541452195110693115360336767616073810716523456652726700708545705545601817159841723692802229661715477290559138498359970274153777823263598198670118007095938824614540994169376693099314989513607432063045055795428386973408709270896629071959332552047358294480198775155988422404267230282874340378540666120599428611765557495968763329108231553465873357280805878968644693247568664352557429182250161398878081828479464829488204375739847065814080120263219491832689574510962961941576359724754397667763752457343864144431337458106094453664463065246526067283468199384653345586444840839933085829999738528938890571473721739116346579072273475399886564171201441735444409108206225285097810441024808097026096949409897159128312584143284605465792676571472104502315911368840695286714202640298010626187822547672417555811473012581770984428773497691191557412743900271598044346315628276047919319641989393390903231145437768484030232529369974129547416384017688617813585219875867084997921995486543633207171363749315949969487372079772511356293318821187502716157996511351346255527811158015141074073597551479256961076902631159588559285188522655193312637728828823170764242305536980616209832669042892766674132259986074136967620816316060835584319937686570966272407483439116256931220392410320291102709916143393654784138483101378077162525868917292261322430015157274149869956289178698452084089077366237448877254005726241194476044672983019490071448469375113953579875051288458127770940733114108364539094148454250468260827208562472479140548556599561700114352983008068164186272029590636258087110780650563042083123037512731417143764092281751246629760170308618206355882939964679328280338448365295385969601382147040340808748299667043626189978630981384823599693659158909584376784494258972033836006861529582906814863690171478322148534367707431697203344740304825223252901509908644968238994895412504092382626018196621344302671924850571091180546632882706405197057923563514870159909826588776914425429217750229993308944896275969711169179963298913064836118568626073567977340939047283595126661500950673709615361903552285762762970300989881344018378844382058849113022176684947785411797625266961594440699670295359613741333623118953786804518381917141281515539354023924731373898963066976951713639810729889479777217043239547162673410055571553779164152468081324316734245473192450325383935677146641676066442919070609173197584301034631395574676712301134448159704855202302915185137109059012580587827702196550452901999991644220941016842703651162500547135246776401296306264182206800947324565418881507266129796319733168902486856318728771480507917892435496903530272475086722863356038414095310795218400070599451404897958134175743138357108254807881436641883193652275854034382151779440408363966709907123871266980646942182789175634011163618384104252738139742061977921584742761825754305002054351487238035000394322336207593552620700653989830780103919985331496526810443186795442638126472576380966003611208959435264270198133936335554628262564360238690250670010297223173206968270089930252055380995744230442976683071025341127501145101365956869318032083157598122568760937080619703598023857054816979812521585071774387882554506603649507943166445774355976329279147104853592189573256332218363143099900023286335426063201204028841151873929713378235865512732555956890100375713099318567683030240512811191315760004583433249667752102371483154432062960309532128315391329589370623659280272736098622235031677577731716797678367652877380617936168374006193652709303274400737654644552696276599981065782383571819894900922827401361025503765366029621125056008085741281259724393260081243061517115497389890265807993412514389438143814498186154722499650502780330829193221154939841754360565011496254660360989146622154575184016027515950650362033298587349562425418929048862827103420262168688031145444819314656256321784642837777122862430073232466437966236714741016206038690507146544127977554046161564146595366737236971043921462854223947532427877916595343449328508554474939862577157753699306371019986683783463668051759624529486667324233586251908174097186607265952469854644900673733832402487994772714851873446084961513426836598515299077603915477952720232607080574234741816825215443674407247801262604933524238851112514108502698565584056951442834508285118431177382699171114435965052137353996946870734092744335726638905952515856754074420240334176546641614527548585656151198690782094421079803254832192290540216538501310256771644474470625005119772406199961637835957242284944867608244644546469644203436560986299216138737450913000020780408003776461935893852968513117070243322270582126124509241032028479645521710059256501824643701720457718664252757139709331014491784341229723611469101899787184752791697387165717705849066831285310740003632634534701141331054548748751657773467124484911739648252623742646430992095540045163786381010238148363397470121380177667105658572588076335110851121065590365871705468693546467576489293695911723883828432421488392290241952503063350069619321182940304002506403113739668240013767137549181635411252467936289870085078944489332828526359277856336800662222607485211137964940364926580701847939007730563922446159820494165631150892186401196459744145822151840529277862077445916424200197152421143830665674818280327480957629322659973966874805416764631140536700862833621789448966971850818802505711274932257120983553824550563557642847897905709908534879119599571830872443218112577323388642230694215306389944733812046309203123798854470832375998735925240667877413686236086447283726034172529244771635124789693964051522619084593771249468155477268308472967884276955649723595183992447231032601571309603748379813581945894798074360827690607601460835440427061874328879616047009002205360608307384178616980552414511220492315477933900081409847312017092770384415785013039940489612308210697937592524660219351628054580025098429457170205772736522503512866191691047638663598730203509701831816619772376843331873967633603750076288639347996398795455944090479999723373640126036208980365230237701276378205137191675754254449836518112500701267444013703480652689257486147327153281131208949346653771240986010314663135843859798553059614011847941505504935363960494399243282982339011184422561236924385735143597311663504992664688951315785894771279627581073086666029398673453605238607800401833446938716860556386216607775314302715538146486163105567483176902236673609357685657132389482577144397263602237415509979068138816444036300032214840164366184967427235838041895910488856514527140948374328538223829334654153945456139868115748631741783208984799896508635640208385370447199609339434831444849499813066065580054715900619633697280524006016833284126421005613939710164899967001763184595737954314676160579717985107854346672436866547150813563011813608520083850950125909922984661017621655548025154964695326128175644229484667730318978394060236781359949598995468474361570276330875581622374343666433209570500573904429965605736957448233010336660804904840712297720241124151385917744618493286081502881708021280192246943735582176421919665993384201651787020876027323392688945410160876049324184438751597802470063504973809968823257957875530455759965441000651171561832086229004697107558047598026986369515815286276128563597507036072834103164143697635895789396457736494607076951260978029087439135451509997744771702140754166312143410451203204197726895738390077055486470941353203353083492341582255544751302901799240443242057175812086754502257420614352766994341380669631202323433151245090543699735812711006908740567871655211148005410812876414260138110407722242076808734438579918892212275266107866819361465269284713205906608941440826339334419170632653226458677264028118760011530714527369028743030283624203490309299275119097482568691087455028830942315902506089727359014856063910332984000150666454397220320922750149553954677045494331409280348406874550818791852532678888333933580278449891236280705796620517934247667144176089636546559432175570506019061969740416345491299160677928362472817184837490045848741151753641534973841630361216486653411541271808229353211632721175783916306515619743335114080097793218194933078457715333646031206226719067068048874786628529890790460327240563780281124683857131707760627175445454773257016784824862832698849076575623766588875628984540534927359924674545049810396747417169191342320754458480787502618478300971254203512922825294851513028209510814443823598126915766158387282067703137619115403339395052268943252972114014562982957646707250255490147885345671931193638221725703887493804439432644973767021859868126901770806453770253904547641568849174257112362147774033868884342584981231484792227312046132088295337305240956865547500086471188085463365412583854504399033405576105400739116843120482547621451306946207640369205514394394004516011350695184995983910452651187542811945080751124242974239434462184307010066461360269338532408086952789848856903465846948783504185453363091323214386690795075957093065735437122667893619737435239933657846440190286252724295024554364396167036510744297884253160627723118402866982725974831605935984927924112909431401311177007160245290793866307356960059551253098711853426814309730644706565637984608660821853606767617661927261633636508181882992006178795505640961220256832123545976033746078046694457498659366257607968161163267394640958562291482315761967179425582204836547040914290979232588509266418670072693409988683738432468610242878888966522138347054819645598830955854654512612067405919793714720429666037610729821895488521045892560757992176562809802790308310905004171508652811735663988951854609954827869888107725399343616129027914210961131434477009165040188441351985844553088934564270317489408439970109793076350463763372640139525028346992334815954720879745901753273543635359474494237956361325318641825255637091598434867654089434048041523843498868214934302494622681877752355639860375188083778050349855890035332407944392532317721431394591869090251292499410202598147297437369801219700573293528774444891432489764203300445541895290066044420338723786516836499961736394251255965988058118774281015579748256156167219230272899750235223914018965540115893849653203932428782156906174914987651361007629986371201026362539364792341008341478881412674442750937463405872724933009043495443059479915746046997761744159074318277026799771091626739919320197858130499797973153656113749199163207869505745075251899530407303981675471240599496849653068166684213726470847034760434551591234470350164488365190494208541343750813655693408035584254919700111292961875510842741859954978253913437691376377898915787714766660896508471770783314807942322952330519004866154734970263779491998926655001599740869480204291273615876336895393036593003128005399012064443317448995858166575185986409187808368347692050101462357012158566178688227522918080808803379213627487700458960978142844376071151908646627301535877057656075931695572085475520879312307326078162302338316637046612408339406473681066364064185462821960812491035023270687961522612193508653919894203359541195872160597695651157467981821480169148920444031396541571855453249253826205982982629746554742787618228216205621720009940596009870119231952599424968826227514454406809691711107811491316162471811885466647172879300029627013121043942043425407095595446419420026784995443844108967131161151665981302004047639617914704085287813715473730787339092724544030795887071109329653494836915661464376479842943150972359655546486407433817167509641875952726593689680853889545577104086876749590887246854620791496840431404000546441437206112111144587094904645271250018807854342023182843291402932641171598594961524600965657059611463029910771798554429193547559324034936743915656880949418790000551161518091644167794782515004873074353016541625137891783860171047273449749246514637867908647689093823163417439778671428717002662062338877725753779559578551305615248550605438788742338810161864860770889553656241638165750468944911841509558366974896052096477966256596168421445544242703306670540174886996666412553096309040338442797098197196660760093782079834583085810083089013540967273718495990461081879100017990503390555899768847896395815850880034017212674698137690894252349436722948819517119306487223938615969532609133848492957977701282080610179843447609684437208312233881325300351344700504457938068544688201208219813243109197421931628053789875973879173185867299000083383578561814750476362534635702609826622826199814696138448602927612875666700597949851306603737736595641339383466679957376495898710356456067163494569618725960273784885703468973272279757869312227634590427488263244099219505627791885202611919812975697197472718110093264953685217581408217385789969303377156049860425450245660454744395820163021204288835570226757306478247610263691567019019138744500803950692660636498058064698074094895111118422001413691739034960666967771242986726575343740037812957750081083811944261451975929318739915191641343626372061827215689967520237833282465790066444889460086488399116958053199329485497060266824643729944684791534122016915284292141699325818959182701925414677434992257720546520394896871436315408851415955658085702915386091660321977746040109876114573790679726473158786753737334678522441202050538877058666353902814113766158017212369659226185928709765312971501708062600143136678852530378910258407561752039104350968856599648644553885139873769346072743062783592321136470892555129085123294788410632873419475035213448488796393166966674986582160859829665703323686000271896750031475188860354288041321973022256415723754308654034466772953800155237089160836040438484177324036153662409416473552309478760196891229842197430061718600538565304246329657419023431319259622983990888483170085838100166331494357371504366179930727721289435014252435755597161557000440948240947880180602655606210272449928119236358351327786274290228802455529538681587964715748172180220433511373374400204005579978673671389096091104048144821377805010481274744087217647472678160315957350648789780227717727601035799007644783911436738545716014899185627582879823112785582020190750668080632610575788719011759960662750640467353309581142997883047848427853410206596869461101742154325973283448510182326108079811974947730904357360609843576717273065143626590804044570902200672442180890486443633536976134929051765416473218899562021302727469146645005446882123772866854421303289251581022192371484598341562217061011856827107251714873949528189680843852000747288519679551617978731102388124712884452794250001484639889590521444542439533722362947050313889788834975021282617320653964175283279303703130469885136802661747867614574144431142304752895493305287537374795976436965461041103908220668400547799139293056472666244929084158978910903288940432661423261797120117816256532152538558028471678152040534857788168267933257377471307176330730700027942265222229237873164641507324859916249653709446409667177053202035072228961388173611425805508001220671812184621142452554457524952509275808349992863725162778146278818743098135152404206001947675138685329050580127388593568214953479307816464772459432382758310094891320911587383695721624183088136610616035454615090605761434825399329072742313111473826343280403319950841365552390338266905822009872508502070452853186285586755854186361484855992898244925296644599515647548363489147578729496454163441036920870988843446198358498830985841488889527763244372486504527810699003280623352732556345684523820730745319985841419365404225937509778361000889580628333408475122005705494111611204881653024869981938905326002227378683417826448755278079303900704938696801035457695312989999424080100050971775201078331450390298209352232381132239564286405420458050652903225070386923944730413666904543729443232823126849759440443792649243578240408977556488228208854920927435024609753511679234968870806500426487957493014853873474957231116650687698008470261285849331081536322696565307430608035773814135525830594601020889885850328796475331514721781363843950261875426363808140159565169257800163063451261974881719242283160517543852965792223252838737690157600675000366715777218512081815032232298222707168097207204888648578903635741053525983134136657679078765483525417713531434426587493261421688238112936180281543760906948402908141882983516840820608979272860392357018275797259762727587795052443426701728194933665984513944234586841557513565865914825282826247514137916045194202681106551397806620307844141101497908219317988018337172441175037740972677484140359817623936426348449045259568522271440794089875801202234648899533064396043978474801535946836218952761031667038002733303665745142670342557791056789911437843413259578130746046480597802922385545106713292789992887108185235073381950051077936920565052505598938992285288039925442197660224989761389889112286423523627979799398161687885183948327843375300709428857163297305837686422811692054833625932975999049601899025411160440501815988261021671500290134844755791326341230773118515058150677762891327315904454451372882347053848341112015865431945626384514128110729320094156031134701450580207223083986855816033937730268646672175245841990596780626399959983783888093648651358247621489436939872271620904698164707494609563084056683059098628478068908581321996444962050911078687987468142927507563870449359035743950386459037990598229688803812763206487465179395146621427280912965450367166490133377355334837816606296225414151225312326017843069526614328423230444241084937607091616062807329652582548914846109840714410374244772718507914378836075616824538560460358923936650721675433101476403411168641136375828195759798441030028457562386779795069785622458015615871430649334430735151118144855603758399180181943505324992477141589886385586841937748371218444355436955619365601118300899702875726826094696563486305127456863297633843871983891556723667214223010719033141809803680653600289405355411449120684281746485061798756956183532654233619599270717672476609788525123044604190349047749508267125305303447684253829250829818995818963780150102797675646614387228048073958318968939119647819548612273600037846252675506430244399709570316738887358606486586447978276258345288611785704927253186052382885574497891024180253293869270849526024682537506329237770420820058083458601945190776665718742947877471386628727837783489620452884783740972714276671672393197816406247975710800583509979578799987222062016887978867339482691345034365696802883956540979054013953397098505474920760697965545684662156685695829685338828151453130962450845364787407782474736660760845599513899669796369944009002654014484145854159374643713383916327890668823698532533799927267396512740050634191414502899982530680212680316556222883393187498898488561545348609783903290089402111184168613159964871566279348700008451290586534460257111552844247541282542547943980261441168050669394874624650241761891978599344674176871968295489791710099243563036260043714934991830786814138252305324493807270209494000278114507628493300794733634136435917554142167867512758249497941120721285033658004054091762914871235007910254833665824037190268477843839425660570174411540641593541816032026817998032305154939853553693759314192873567048668676261675860195165937838109927760215582845695041610913450869294283379206215950628784722007259857592146924734065997704513365366042118292158135684092113390698360500040308728214053391508835728637815501436643779287153339724336974640767723198816233187940350280206611669464989217745707660012668945097205613811558369738678533198612393450575442345831868417275517616803913441981783298997959559425122063539099273095928050334526670981201851607868029246676467542738454654442036938844049572298809815510446085417017051239949182989429385675604155102090943697426411943266776822191348297413283036418185221530755550410766266532542465553105747331477781507700599609699697822256878130839872459900928483036920620244080888692728115039235292497176102216703013086025853273383218274342014860615263113515064824501758885321705358285517948013700810955927733574717292683554425276959155029380911597645945938641719281754677400675313914658874167421234787585191958075401828468699300363141913635477157208967199478301024528375044188824482068885583415677969585632681547461161428017017650087355771586193140122327312318283418751783883337415120745232281087736887722798479095062151866813523316460183459230663297796349960008063660733507296164755809495792403500688387003302270758429232207222014403890493006948288901176814148053731740099610893108249211217835364245973726047835439921437952683901645148620273129743575583462627098101376525571398793587390668481315790999154271064486084303988685482205460932064862484976130401538594832304604415467332983436970165031218692838212877542717332840463623001281975766125383228817317620545354327737655226741095161668779115362386857209832648170530891609601731304544051565096252946131493900492292783625550086190921280307665562252687291827489169895656724244929065808736796537430301561554337892430839553984489819662791146281505401019942072214559514270153079083224685511287870191455937521482054367973869616614264502014096631192907478271582092473491835576724503246085753809763594985265028331184753312849222839941108235782216621651457384147429759656794779953019127843239862346896997721750935171825440885402817788036133299165857639470316511645415961582123177427315706635063362648789115631895389780417963188514747858957106552676075018232836393018556344394071472944133288679168016326875469131789417396305839444062717210832604052744516713167661792708402294435266087976699974764674805704904239703894122273110396445151126868992404658340481079605153059481703641253206931071438884928330295647335273406759518601469174488261770863492232077321834616321685229956796489246327323611868399021093217721856733782049569020888124119608386737764807954960021935795514985475694112751814963303944471683654020680225834574153697716858923581295247431262904510946308847360503457770414431904794393824602865260464186223519681764303743247302168572471412322833150042643689900959033512479490633392180191561488739154114283995783025947249061963758014889426294990658557677073710409792563806159841187779967408525360034097978972303840187823070302369186159969005238036539721960484040166370627731222956815981383002587907014347068532176650337666789079869661248432927773838734307111354614008626564618087099673991607378755854259487677842249945840526385388949036608169049444187066657820325461714967007581809208727429638403947650252166254984333963376480486123837271446109716029074714581868766285814513475812500012423573333670415868736213304797010068471335653912976689007354251734984993269030365890882020048498331062802923157060897625289637425766071123560398315399509424196836873242287423299609469684210125017690485095582789096638069810199245453866949963362600255938449548597801746014702841862226606677158648947299274338071210025449877640171477481570402067284435483701279251085164829015602724856126767195476039121862665187606497133981804021179863130029985778820161833296037737586847412361747268245046106705231965791344372976493956287285967130183615821679565528777175297691027768334152727142992008916237901816634536639985164712953865435040059302042513614483445351984631160405514813201046130076479429028283469538723619647292427786394318760810643989676619865734394575419592098454890909739431612452119803025545914123035937522558018322836437459075073325486277508999942968939169281905324356379162478155883267163593996447842950796241492573736585681312723004438044690789255148310465441317452677907933354172477019107067964461005414294870313490765228636894188762755189484741364984921051443399645245779354726112137443765723206330609991922834109078091790863752947277649044936294532854571612546913794363463126604412925410967570683546350650929957193522478932862429010919594216225670246422531390309425951445845821868258381210993613093862077748539031551866771206436520078823390840524096875205104517201806066948014148123614879474187645099805623604848041362971102274286257279222848713198258161602703062448906954897235722727442890803180241460636770781085580538882591983585046484520925974574744724791755346496462334125331717338791043434094724103548912408671467028503608316052420092258738188011007910523888937208034301392286449038805660814408200660344074424968506460372442190208998690722863338787688324020582288557205180484166523125889732522822280848080522217588957410425064099028053571230430923489414492674391261204713735526633198626658203640381869095199039636681684907199273659702919674257277726586621879419274849780693898030823133092611827567107739728051556796165251794079727188184383513728276758941970613577479520352323269470294950651303482960401513813839372177294868478775553212615397280646677588330871326519144914004778818618565798653553086128663997802079640692502573658065009958048999732479690027424519353815194138253704917903238746932626512467908817436139092866486713567377381913337301417101085702167981101859389406263426126572077927621220664599488472338958729457142946054855855671143827228321021551362303005449357331359091796124240157565309178997475718906605798420524353755376459353099245411654091072118388813058456482276844939970755582246387609026423415744381887291691529689258967636020040174184763464076491911211541883822457969112188314981253667466392729737816339136873768477093490439625189209692327795627793142639821265186787932323700521017675848753189850530830867248037130036000095185699441162219702268340181186305881693786874765043097960503310973388963113644863767719087143298700021283983979097549265006695618068673883994131955965640878924175087571924266408362472677768745491523402942409208390460776501774463358570929821477507949515381404174204371439327255832408114078156250404730757090725808634582988435727776721551041084254020883867447494427241520624470333481771068286853981515835435954164343366103092697725085185972126683358519209661446698398865980314921483612238867168764465182432272139633346731313319766733423557513939346736967642889784075633755596727655212245895634961234848170575245659686941481406328526160769056113696084054596858322189290908036042231456668804741378255527217708059787888080603975256029441305040072291411786898437205742968040832251688117981091257763595243152644246928200441860150230432280655309715761694648767100019664773184619768027873199149783559970649216025474756494453762059486448189825717403712602807773824489591274808148689775094111483967278031766085299782147270985760898346589166658262890319014408607770296805429998897920237613634429802872715916589270599818692799324727249532159553232227734168636646256565459113729592128514636009984589324789042982833123838491011859566350888519186598258783903329626898583899328041854645991869097799056996892571333754824951871426999298735289157226964486602090886784762739097616387481929816450996640142483688709791241419416105335985511831545284413646566803216977303957915082102086173541063303341632583720307177369736966027293095159845723901590924772384402514503995538895184606022072941070474575662493081741577347544443859712288316411970504027444673188304636531791638737863416236247632245653462887947938464327916192780635311937136939900241338054789654222332983184133190353403324754999518717543111884386438996452384792532458359888208013885302449967773674764898913032580576484696251400618954688881906525846453095734683207795870117453565227244348692313266262563125235432559990902829362217179897175417567986757134097909779135555613167470989548162325183965412490705354602191710374142693190178229536286936808174260546516786772823798762272242589785255679785224984757121357586311339896000916226029837774203875063961660213535041050954379227571072675981979921436241566000153618962463777213854608288368341754664437509969061817955767685766007795388190226847833468501209887383691315237224053747428460922262037780003458672915165610460508705926160344173295802435274995214300373133355394338785011324686055582314647110361909759507033068805108927357648742318536795142237998010849762876881614524119939578833048932759247252469865910399954917773208737672093819240029440550774220009870086436703960578037460585418635026372822518008405553960894730659135366468672379346734760276573213346209322882461285101758962305848295776708474895242772072852969414308396349861772050165354322866856262489254264767259478941855717020607309863636012341688164745891231775988950175695418913156645653008239548347270822943290716141502559038443367656932354672940797816789331605501571057699124857061107240890002830528681628320121856836792781704759412321841090841522727436463524236165007744030101188801678875280422004428522121296062978035093405063298486402772967330357520101872705869496824770805247169424101293754922593333773250298565843499865086871461965559394061284567816868160029524986745041679613622744173803937957754633847399481504649190629961737293278859318639020460028653871555052577987603573684791006781209651691068889809739105948659204320306566946703799801603768096618691518115644995305384768643732683328700536730102378681726790394310105425963391239961809288482524447940408073949125004182297722651264596127417505353905899190997852467621408470037404480819404766227266650273374979984449366181434631319913255527661649111733902867860511082747394894281235805199291236101659110938455245511829018048847522928066505338436726210064133532950537629069209921748925779532905775151196536814074757112806845624326301832539068378816823683968405376638893908699989885456896993598011549452720133857774888794414336818772804158697922345444971081122233880884230288807992623154430360088678875869627939477431915460501028213653018001963185383135110537808156401857713431657433801066056270343650702093198431678048063992403542410444434747935027971673040453206014954276410778408162560378290256779495103514358790437907585210066467949419504448820045352386860222430154595006737026994887076794691952080732208278344652359290453208498121099350708597318129701400620942676519752070921577991042974034203348805251817188331214749931192643512278377436383951934382801585168816525624420914234628152951020522013521717489608426049166709365926561583192651309388563121364786489514403812938664309773494259557545421491834314145558468367133377274763429622354852089794257367616421398458560451073913589054772444405973007887966300780591903742941464519579457671337912186555945127868487834451943988822509494885912395022934148425649019809723007811741955858978026252804248599766693397851373803420919165226322008609740905733267409372160654900599319500688680068836073842859785142000035536743531734484508376577874422964547453026268373757668360265874589785747081119587712486769425399375381502708357848565603005390211876508880822404107054166065460664267922310332495064450461123698615636064422220666006231451141499190645506767597147876912950471303013852479458814511764883614805369382687618708235345417710966230597462196945669793888134214031231867291145231300114011766700009166382624943529275718865115186272584846869835131586932661588046720504837356254567595621579327000068206518145125017733551823466348848287183156485966106278118630232967764696462535552235385942999731279526996172233288327404356328827329748961460527934853518832956711749748529862859649825753059325788269193049891872031829778963469426647463067474039667667477801159848817870418797113092183076339013137343793894685442246104368283752235713557488872080739833366162319850555551376886614511309759662203091358543150801936161545394611706643438675395312402378988334643494214136122484621001303154075670361302554077389223370676500260831174923154647762347152087072348563416183284359659898566513018806976349956781784981052541418613749323464878729279913872422273155194716238672282493855638508374591791207032627103296709611947357480798228186228079858028359381286670518098222518094611154576517913318356340042454389833500931018226382714789189520609718514138055129897456531347274118264670249621141582568180606224453196719302733211166513728554690521134973301414228243611108716034784015128711194980554804336850157385946767552423095118421247617152661653385466477681695916489793399338496035192716202940002052101618443117866782490347587092443013085264153861708718641184697490149826498943771199488503579713816013421089640412732121659430324023845328928720600382149394152170538789031706452639925468756582455570624261120550915364116299469510579108679620343101638731855497076393105558428458028477364418677657353735910177196257060667846407833474975254727727984751672945859873212087271336799440807385120538882852643691874246478014232114615090114965130664036731926733465217874862683805623525020457086738777917811311868112094841112624759111092547258624676838644233252829563345217997448245982557045164629460532453279707633923202617299543907400696644822658724623376037108691205512083840892950367885052915393425952569590616614305176998347496641159422333468913137118909729881816602435859196918317530274197871730322368286923531639675793542099379870676893659441522317588482679791063561805627801275733937234334195889657738958221779435611687805154492011967410974622489624298867999755335161274537713520473905161402623450629930929502003567454485057621842432597732831947449906616698069766238405040447331169419597944196799431474472077348122651322091044087259649661378335618480674875600139949143423329789447732054506345114743749151853769249875389992640016737495315290764704498478212648707815093049313216072645357131723723055579860178681166650281938307796599609278107954225628557340897082312923931069532608032425205090469812915464955071558680863542310903455162729370412736837894144753251185616571177454142859943150136404141610660141029059070353680032232057616460762494614566161314065296288249531234888018291604994193090522321411062252014529935882905650286674408933221638633244156070467636846576072854877570366974031913394145042392473506246472593520473021126386670402024379838881484301029279122555560102662623917484588804570352602965576412815819075567927926811239524145605514520769461135909369920423273595344891456074680862042780807834370909982997481151798595470707655026143895730664122638840299140491966848440798425315629313354556807127917176978880243385119269989907063413137503735358230345544205630213472429356087454739325089406483501609849791374763448356045373446388233859236928104074605414269981278648825174725473020711418786527180789327047981698138272288066800686497938718871158698670859798046439367526456661646062689957667122697701167056455167534306678285604670805905001539911408996158835965452373072502651258889369337065692090689880375453772895788976402030282969269522697594002896508908037763324162984959849396732855321051842584327037538900361057598926151919286522383525574927948366030859310303780991304214383747487185902428687827716072803228423855013510504639561011193415761014922606843993168071838997864023199582004776629025369015619666805710753125221599518807408339417650878344485825094840507146979349341772659064503618726585511141548955214212759439762735685977743841551797648871857282035360867038713217774452069246840440529394855788061075556213554404640524867669168717831271997738844635354955102755904955001494073405807308504318607316934061304382452961689318184347997094920114997354942216821859142263147293806707595898354867340087954772528436949865853065710121646063193046791939460591185140612149492433593834359185252768630489540312885498097743530450631700887128930359751368243008614107102775807296803097600687301581084249467062751596119150309198836418962998149689606977067652166265803836354099625976702903299193174611012569760727690138517211052861277452585608279993291666138078578708316858711237466278775820359400237388742281406348845630121076912563664697650251816337349811498709410716240856236816123181297582232464168578526431295942169486014637847366590327830520084440275485975879557991159739273386654114729918523116213485682127494117246400270760236776487771706227803761990924699834515067757645579198115307012537400018308553843108980211042121638716922582738717352175852414905661913346640632602435710348028525618325544762195822222670685007989677525918399211022605188072363652410764867133180535643853991256049263631394496447863007134430955438340231880469596510701412898327971053734236556709522265756930925618343018142266891184071599980654210039471288965798446856791075181624993876561406419222448590452099770398317122825011005761351974596787380164174002649325644303257268307226281148783459996265170461788989380327897236367385004495396788169218987217273795585190642339856715768289302535977535827828549915864393833304883922185816883406872688793784746344700018390506063069774845744232582078749599625430240510151266183370114474562641139002429767793615612143036177189669613928061568606196176269594683513241487203039053561883603856274420267625796547692342011443838360454695404847012319158410215863888418099641826816353020447932396462663868648397276009166780536407474565112673753072726429585051317499513863113291072373451231061124404347517176600023522360870329152194849349851642892770247992926197712856220643919303694876173702803913671854390743231502433164982176413401805419878695595799215540731236269735860665481068676453224560991715347803458347389933304858872643917608576349257839759912691655228144580336058563496778852637544395230217276511597907659075695028306640284078975771414499010294547206597874858639581494035091523962463304195536391662741527195350816669601177958870714223320896553487746731887124745114956669331429381254306838303118666049441461682669716711273206820385330265263831810941314167656468353396036146984083135039080106176166107736144780034717983757303082322039993317814445900408128420473224327461724868419336686899363780445769185068510552832690349616540884446252534735208178618235855463106005646962361607742573162769844797946404713442951142160088766926299338918295580791370019727169886856973835781852087996117623462927108927567951261675059661309158810168379458649253300455707080653566661606476468722527675279428412367967919465450810942788254818982436406110179598127761639638062218146358418385996920908843072135998705302152159056249735581852700909998994771139665135548456843345269962647552026278552571481955379743906126621921873105487686259532554347694980669315410521543911077260963549627028690460892464878427861044767412765979960829498879556313162673514054146645636569697578185852513325677549553404292003282593146231214950534608528090322109734036458898179772205135144943825599186315358758099822243599425693577405835444683370974017909207644231619116930207410733809184872466798714018491594440936685190154238390295885460617742626990707765292350660407614501749397644777535154042721213658852584881069331010539801334225823455875061749748286002007654346231714797789772433487666260667307347971461057546060000954371391803110743798844177731833105005082167594452431724536808797454884450916661690064482099873136717198749250233198802131615244434780384035394081938968982573692436392381049888783744630768699773199366055319889645866364614327884946658595021958892823808382627229019283922747371587959015066797753777493839058104688013844868540888617282019734958718662498529392958843489145159412940426245997655247990517002722951071396500373098351572586360667562482847699531159868444973309371687649369373056260820900059616633622999543108183272824626048241400828473722087433159149707863803304685732487421340900235774800599557254614367818844807501260895640998198746143998205883451568338936753435442029644037314305463521609080875138803760218571478396198938758940590095073619921736287947083808737741478062583827105164533711846145562529100076089323502032568062848934203001428207533818170446424692053859255509471184178785676931898011445134771131427605102906318418660684170763820253809356262791379432987268912059676154973708908110955704274142657003088008724454888224048526797635420056450147945509365715002957185079500424407199232969279642623659276918113367979589847038238054820529038758687042200193169910094187316680664337740825786053282496261868636719136610866895529934373712813932835564953378867138947293764966159130172066644307887012635632642863658870808846190094562220908393708183895924192899512979554913804266602310223205666424864766582567052339793270088642312956890532638133461732512405449104617031543969031105041628103086898904410014193213422163387394405101805425679751749561889351569656577595460691230826019370844215410388423881915929153203482194701658585849883985477137656740524280975737505790317951334696719901427919258338379593597728114894655372437270487278700887843246681759632317757573307508405307749789705540194583821678592128421899996192639585977613485049877909933788670766901380108232845212526609490451584996512345769979601826540534875512200439661957082189165322179806636780713929415418144900800744240969035933361867997926358343836403824279997773278961466222477875384127183157491463027980634755085118841489143032195218327293123852994601780240740395326683976875472081068802418999221181892425158782536686351622046315559787095905113378015709580187570617220441474060898028343003810066877432514606362075645569878003008714180283002059563678761665749325252267733961472383378294328693917593583237288820986230327939989686257018238930072171542809228529916744506530844545293996729289225738567936153251993162921826858940892303015742466528709074664613917398892663122443046662481550691785579552784388109279120818453598266634716123038250375961729171995230872849343743138485236739945343897668624876481588427785516907812521430700264827484595587585863120524509949563889850910104523882315917637377376133701141942363827388147801704174164801330329521425792046462519096920560225930330127309067171194675946070582573073304098738866917654428765998467944097299085156935747928487004110860956000003649769633126934189884333468074237397421388751403209612250359250918544132226885130906417331628271538551371433036131171920766926045043472330828408487401297673511797224746859000054952907554918392185191351080877422743187396584156967596323590680888272218353603108270228089094026377381140627789675341336559508302894332872425546381798294603994845497603738081841159748116993942452872096080112069073040668595829362532941289441696871780417512991681438331302388074589748167718956089667036966891886362845077051453531629955983338104405000731262919132505659102912967271760677573114961664336996962399861943159749721687127533044081194694813517785904559646513712490073784653334055563365625681923703464458389223826965578332937892436839604520437796360586764596864296672207819237889870658544354617738100470935082545000027033372618374438387429739070024593860105292744807437540528183633637716414705868456015661323409443350388184010030078090585135150519144131020924891721214191960797995650486279229222509080719885860290377049229435512011995136801277838209504766381813762231255095773388406140493489302161354907483560126896057758147856223886838117780370866057921922363709296843445118170516205867255029488611102090867049207060452150349557659476496837626617632913522208634725700110230388164154611271327077445309515334396428582143710375109258841360282168736513649231154662743519052227318210632810909344970464271468643056045084128916898026919092850255440420726122138612270021393425893481508388800867577767486869001667459828861821547191565876509070469526206166054124148276884214164579946626784846237740387621457666436912946766269925959314108126514758916564332632061375126691532057847388756719901974144159917370950257892590895577859424869454524335584962063769024514898987208533581260851580213827461234677049006872060626786002531834753013495304416077652382854835833781957118197971425400094820705450727603723854748830699652480238929894955250381592367866646101842975372872053703850758805543425379312465595781985660337889325194740292686686867021554264365510690038630155415423249850918503693479651838047928834375890846891451713185228922584038790655374058575065159140229973315356582926252476005423766340269876939446890828912278974282731690316774362814008357111628683878879664398001551256294336585305464282775070700906218870093098098272553373175902234739695427157740545992800905722200010265004110162865298477523078444561073507814706938782207463814126604452846474298043263877399189809421924933895435813971022586532437497075186415508649590240252374414341025483383640475917343992225228856591396761250245746485636728409869369757106810014109105034901433955881574673602735267724705167292083166133501555565989960752806559060223704073985454588782198356134032551721930190008895326563538385990577907591017120378523909034735072075302177543366314436623446317950677911994191976757911038004381571748111043678933744003687653984940395776581235924210178747121255195413040320446648355764157356356935101570986606334526758042136998003516910731011659907593149809976158445253689891580330782173300082939133453645468486078573523522529658215148093342763103007688925806572584791512358379657637343903154815116777908709531407867354961595330838248925386687409555460972542268085993847619898877572853629348094993259972036623053186708309674211393466862017242848937232285208208649754294934754304941158883401478029076879783178324018462755643786499539615295713037413961519277013256515669576892842069972019002032535600318325414883502476690474189143386388790620334104466270153876298972229376875834878036622469324275883042244124334719863205039522869972204326506291081705647500107837953881442398919902828012050514679330837986990973220726569696961247506994627392044250839483300591392860666228008937493731902831666022451519909555131065003229233884438782285802087027813728680005880204889974214157708562812271799777398152538500144945009488393375743791691580055693992806847223237964385728585010079361590203061420923133150837026176241105642621637123752513771561932125691881391880984253981913424305494059422115222164209911446710726096591234667077085528385025707309259366593313403023435654864242439318356659664540816106404970979088021085871216452940257719060315819538157796185420715758728844473034563634567768910958267837775383678779531998943999511257287639913049322565516393795413994519952743694825399892563646416822178666107560632533432905593523806051672160770269385785808620344651772551666166717521784277547363662640261567248585301199613652276277282913188271194845384930003750583207769561781620101387776068524843574534911408667438172659781269072371873285789747018632928053698827247759968106781249148439763944378996375917441510217245425602953634296047433616138067531007438782068476762592387678281962025421802608482676933298226710452235362492810434295248942136083692611393281219669930730988313541475785617619098067264055857650661929695337503394200927431865813533794754661938332194061918594436518587907221804617279309798937563571489618580219717903844379790865503593155046716458292067345608424575205124900837904729018546698681899492757732512448512450120041152027890226719918029961094723605614427252068019370178029232211459190092347100789465340559257694598583907508813241386844166190372127448961122457680750053651109081537193899087623133807150024329361671461522774425739235395549999358407939042549669658802258461770715560592424051531371760508056625750365564430548088725024420057760391216481761537327884369280644244183801228620043094059530843710716054622439093965025119977360909514158690706689378070847482585172944280313852418385065994457549967765590355908511879893968649014352555028956060669686761307426918936136799067668017347170593946181702145572278836914931220131767338756711642902454645483692966551885065722415328007366141750530685572017271761651018963791324179378716188546728372986484397367294058500037789627283822110465309600734255118585051531793255166867488544556312711094964938474514577651848940214853536135080660592811528252323278936505982707189931130731810004730639321764565700308951410184287969145231078001421085334141309038540150075633394780795752802940736575613111774922854602698074400632938570072963331530955363018328068434108274563326339111964847261862411111036885713798482775233677439598493056824611690048609306350631525033493049279226841858148380803291043124886184330910313344990179334830661167047830926794224645601757739452478838753689809426986507145855752554143576619763751027283177781710452862995802102012506019236006398224190597996357503319983137235938858359028602648002396685033844137161289191013706829798684778337383078076898424790047397597541073957656942819841473632199085134868136662629117793087489944667694191049695273163057339386163899256917569791488824163834809394254391529272825077002108004083153641287883913342317567137815237032145969011963676260990755899361780392865431131944215106748004458827243864937697504861404195850468002815386808900113150125223303249739012716037828466761224080856188640825844296274115374754548374245875153456063330745418886941389855843171081273871178301364113858062788208832893156824758777998690567112871139882550278601139534510244793516282771628381647854462765037354290269482987192143887433499526020111459644007048207855351081401293003979968088455917177330594121411491846377595472144727286522791871434050599602856097934312892332166066749495719983826637002818336039218806046233753145738322694995606888662488426222035323209666783035032839508427565433687875991167539979856408554260202590564338679722099075342165689104041259765794553055161037671439249283696607040115517426796430533833332533040887002672220084674935373139316339433463612724433902546036927326492482547172536105393038393100402712462649995990156485406669633873771517828177714043856696868458742217510970958633927034676539687293296392353327026425709553088364797888740904836550963351702143533854496654857953649025105820849468382098516092877169105577851804046520248858714749168163509617936350997331902650340101152513341387050927391248019606538001392598608740189298087912610785637658578724197682202159264776811632567701951554468511571056066510136138613187173729064696324495240953298783509946418718291182198771292877459338538211408889672892383061471088945716126093615080610842757992558640935666668788615068984504288572873996507355750072460797482223373674323253401843785922322471215477295444993910214104085821672756263372841168782256356120386720243574799801013124301073921667829763686114747915642419698141734737274620093762637344651796954073144310332299395656855100512711913452100061571477807278237182774492672659312886382484320607556985032579790070653164814004314539208519484458971668593013158826670483401026115412461318630554252962414197487677365514447209632256713131137814684276337944559531921509808247094061877930579529995133014813962159985060834091169514745226155811648810782685919546579021281578000855064451895239414969022349603620000770670169334388548425732850265853849689637286727608899783406572136014325992782547757909820929550435648056261266201367296540039574027659155532519505224107561992413084178983086281788454098303278940757322920214800268909880372755311778164304077264858116233853637854975914203012386573814684091951728593796350422539835913572959301284734748382539669603267964834715662861787374682055312732438467912102842969981071936020794173113935705267396443192712335161991642928967336646772589034800579325749751772945561766748671546230477820592588873925060855204946078771753167611569079218911736833845716403273856246229724402941978114758862358536907641861035498893879948573332060933496054534857293269649349250221126852151622573763176838009377619129164616449278084180261186726488054792312484449683145593697093357137583419247670913608982714184978946785748610207213675623669470363060530501499849088926472215784338265627714655402295270969058226285733328975984015389882426480069427583446213189614327106942351156678415222554509569315676049841047640365156255181518855063680112110306617730896034093957738092777619878936441839433764806388086140542357745116202635457380467404045586570115507645951957084310186977978143669237715609548271402265702816561624908538118856525991659996650716453665803954857120365766054994333626851225685627731613253879808648143699735837614429892967983087092262951821066481078859422684477114552274936559764661848032182286710099292241005377541153336267091840323315921492449748237360075153790816057328645652134572910998698725059909605360487645162134790176602205121005507454840733642310721495621973723967171280478012492321598945953175092755130203977134399355003327564787323912831602583175376476508473256127094122703318974946533198515850441010059186290847996174975914983067325813860364623927059468162013772134648599770451818813895605860506908880289263631373556615244914438448347293275537244709699170567507695987622353188350619381869619087689543479402439836673919591576777368993567826760481455180220357101406947589712533810228114941970856854990231378010367984175597368351563408359175513262773366600027386876252000306707050323315647801934354913896458099852553815067043904083318244426144342079477982930458716644313849411053550249848945949603041644565777036761271842891443838402254317854990197519326948615679428315983498894927923033309916304470147131229544721706937065320737179661811524637744135348410502947765020010815074129233801867620060370849814428191683432838729473179623807672617168675409431733952061351508426541352381835290605493768632511705512991862154933945306976287876346812030813995014791575735066769537369018510768206048337421695336765412850177513358050175340442781598765211398075597568963864176285555109659985939969775797582255464575382133860949933676261047890964074155072183027475288762609037790874604889976534191494434548352499532924914924937543506626984063237231690231222399922480145892485877489564411078661207954177787763835299865949976468298568618362439817935808420801613047228743002699256004791376379149915827057464089626356998730020431206774139758065656919536466019950266262206507511600900621108265543166872212779843561657491351191594819276759671969382644873955564637662374465657236932119656046404492711008159485317352201613053366615259279593987359353600816597851860213132573418518986558122947513261565055980553083585849447580658455673017737641734733983797850291871853375886492363489620251487083731936005318940891063670983506136267287722009675503423897470900703816194629542306620524277436916866013912327852329421974755866524022961946284707915866695723305083979527075129915403150836336418347528537734083267075519905605960911570426754886592938993938649118015712192479934000351308054741807880430948789151027863889943995322365515943515019368751569935241019907638175939824934747103583102816973298876042871958125856507972860276755723233007208490808804220299091961576642911803105214818554978948357637273226408884420519381760110750372465882251059477785221253695092770977404057646412156056194817103457750034593183435205057650678868838353764973616696078756212641359027420265493420685997232947595480607970293293988601227942611600578692175468387262515482123055305199004362709470764593038415950317034449794656164210395849590387324983061155187093589611543806610180486401701730659997650651515936691088486065679779814929877990922984032272771728962028921910981779750931999065251670817116896976505733177201819456190219312112242425672008581700812754234604551535621394474932373263315994033409501979569292561769340438360034107669698736798760848054728988867920558063026556309912030849623368729213365621537111548040250075553146270497775799164667481613748037903972159709517994193436541700582502869961059304997721233352793072099678732075217768428427406705448886226208163512672565581011188673417915027698560000383587331204637226459248361949362800995285897940581008116295830725068863825117291653459667116377544787410374233451927658783689987555732140556776626308080617539215678978269175894982715777158774007783569343517332812982699441983037373922223143733952055497381843796445104857521228020870566243290455169556045294677831949136716144282428360367424961924555627376867822096025748664555884571731330655522460241101006524455148365737669219678196097915422386887477734892228071558360980455462925663707855576220306056848756486627788169562964620922282840572557286268895777393750268365083689583845094556245342792026051453194384106101535395023659585351716088317126126437567556497378099856551677416387163405420680985919336789430182479150903279255010707602040564969258331864456303138797904897442781170126240145740028099145920409511388942799610378628099015444195244146710304379488447397862771445181706984347515964762643643100433395358720831306184419926051758546498439173896570877193870848592615030217214070216288101147943863338800172288124002812164927818716451312115506733293612456808563870734223747899897057421794863460207496815207684560315397114851448760565006886551161647491466923796458453564218998025158948648854205653451184773371274559193218750652132480217116750039092993931552076429843644661537875805263963476969277873369792860551050587624643055977138827744983343001360659810966396979832587403585889150214004059877104692938985246969435367204848516324444194159549867958659391937490407037307326401523706849984700419304956630611052887908216620573772193269439269706446952966478586567877349329847487457329591108813227185269752636668903199682346954782555538177054198800338073347882278604612816092793972374359141279466759836190289836463849698291791487791888614700499124056959359689007108297189150973604626586779270246745382329240247013689534774189840233122844818099642847745984552765642380812917948452213362603342642962195445235962227023333103225310511492119698990994974755830200792164098057215616124752852531646339223830412218939622641221264058758423325550370613590544845851299503575934852712761598923361627512326503559617513623306207784177481692585436271084670278977494342406528182615962237418762399632045539246453078039070167209026398755117329244128264521045165229844570312720223202703614780677025227292072474998122749305577250935365878761212436214121437263563496271708341198510187455891769646503387631665889965605020698300957283344102248715343601716109750440780962541787456814590075663529579727174186693992076590806886962384353457387401189846291177389151699735982546786526146525590072270478492085277707033960984113635706279187503713959822240461092307187716244644326498777787436044689289675812412245242608198409448262168616785499683686499448463984349166649658675480177531966604262568180863887111315150088139938020981522517923817931454159720421942390521270848268926085147251598253193368399732728616825974151901403051391052426392736236379358820201361750644530674870779389823630918450080530509926673589962707792252959320513754679674960758848107986702345916010546261215555629183835041137427922122419069027236915373204787895893046629115156995431148369477271395536976990490168448314342636905691178794924414602831898422608399502798253791891386185939152739272765367168416881624706493323363800745523485183419317821344037351194532015283340331880668139695622888263490168487736503074205175159197377682790551034170610153681583635410878591668381084302811665739225366432587955295572227214385457718326851787691851471354592730467983905275491109443452719436177118924123262962668205671659621870005665169325009411865394800700947268866782857008672724564322019646268894060818778851160590864736441424525997615890398304535179759478427390729635905263608758289398442859213708440113164233935646497483166118950821340292007912417339206259760388857808919772619283812091384293187411866823073683636816207113110855990588638156217634540850606682728795902027171484238481169295276226087615950326097319371613556247157687890751139141126782688067993408799375474838643264719588715692246495272751743758493164964265823004120343249749761718248162187625197791856292708642500971780631505966561572631164550476103153957656694832354491124888082735977935328669598480779097373757677975190694546384555945106075898092521962359977323540031694447890358073915098968452647499156511587933462310371910999756641416620234561256565199294177709607037377378329049868330093222086858866745777166613990904643711304747024439322725471472209198861288934833132886640618736185302789594272792930243848940308845365753865083019464521126787345115353130038396987218405894678620492614685467629962895417816686635667961854585489205006687073086747762107281751433822805864894388768266251587843049601280628045319090985748319142427208695939966745364871904606763211221801000627300535064221105467091170929874945774790999088753017831918558014885518793732535545897997195476355123272205109696176095653946881207401067690966490016617533506435032423532337340645542584746942501454319875244330103692551936703484486974458197025472303704366129262152340183702594189389492436536823892539330945259547538632117827743974581675738706336487537069033898516986214921228076164115303593699200193155274989317739750336823505784668995998805772177429075949562149769242136607974454653755339835518136555116917415047756101168164848911572240928044231676181383990436812241898550235102014888025174739943139098796467003739313875824471196588542053818136347037215355477417489967847906068130965777863971473280717548660536695343776276275210664260044788099200748034230758262885370862613474849115427228116042261373586635928516452334476114665315047515820683329255976724426159131265586324001773302421504657162274054562476093433557374015637315485220911226045217752977562783524300756487552346584280691555256885340626809501106472479474782088156875723251172810045157741279475100918655829192808042028144285226652928695943200462230244352738017472582589941940702305489166268091036593100137317296447889088726452146541862522490202587667362056016840736731210530643113665873730383741169078902248634932932958376868571846872550023951648818890657451250125403424136169917548781631885054034536381268604766217386560699971923043304811939196745335901719090440528284318625322365633448787203204217287853004242952356886379659952048326186049124330950623071609099159660669625652596387201470870348513619418541946835777582625512907239796849821319470730933966845086983323720603879207069789180943131862613962381076641474126172432466015171955350299682454629535852793676959641383635034168847269089677087027032197523718131047276650035024078062837801198751575151479926831391848362491580264042919523431836018963189217306968256979213249303390986752128427032366168402980391770603761309205061275818257013452969494456351221739421719616515309833623277721513035701272145570963584364527270626977552553399323843766968145129596389717376747676654815515984855970750747028145874552670929769219758851128536288611301941573771986502653466764337750569948859274368523395916797662578957985044316943661975074442308397085555294838629579567197582313645546101277856621117206278193580381103629055670687756446716625712441311913379866930627566172940573640270040067428987298843006862403926383331316770939487314434159008865935049427366243945301723972842272257382865477305245859393477558536928841089233811922108078705055714177733296490268675012278177557277442110881447776855842777802888034238110064007801234135577074396351761441753295920320536429841706808289730984476764570090685690105941411009374525179999659386549819366013634369108262711132707382803778631508315988379774332070153702018435060163028643987857729549920556371453477622586613942787205988541798104359545148579459544387123608668251744564191155691701924875300212921126551029798057650044986599322291441233567092834191555674478524317408799940592776017830430180136173549312481530796362414849773754015970108648854019974629526470058653067579751355770962805037052712699543743884227073384058825096227790493846660426459391867612218136045620074681820142153444356383100795270118669509156611594386179044711672658818403243117344193784376124940996974502740858549908347842992307520715157467960076953350198326242334754504154893396757363575543476257098015001987623656792851984830760683134849173171313004988767611889564764307400496817121355855611528075188465477158518165374696969912736027835520459166358166412268396314736927973799110685940912542548944829633522734511711216085493203230177202171299702503310047852712193729857911760983496034478195991583934925590291064971567770815145077781570492306872040094697103323491146807985955971549406805679111160387177831327138201515576670607237132729026105150544497011580931443104795949060812320528337839087582194454511318293017033774104272198083390645554491353389088563107898051475562523621824222812586380882747095801536592152844616599844469779706387902120462837627855309184016944904066197149625273913636773179329798589277132735200677945575768415278734315237215481960785720916009925045276411356523248021409881572605764879602702441197796138797205698997777570839721358812274821057607788111900315014098246262465373995128934194447700609008047686565330050577467938605342688992880787302856531134831139398523102492614666867077448547753379547549635069216389865436503577085599876818036691815655920316339115181438444855265817892341253541426449506363933623516288820071680655856585454101878134429736514229157968266935543259212080915089962255395894293526421498106988731057633045319260094517126569236100553813083036250452864331371985466265918485670469411353915663339216780143962249207214572067968386820057600352402712639763643648795185300619747738179774060643581865300790455753365042836445115048361008557022901274971388485087283297689229970296598928419072620277224634286878697630827454597320731479641888097739911466284134670983501050002939816414809699597312937822375747948648902911197063693253420098466218990587127371453058976034309461560917697186037084977073622325328136207688665330627658123693676936832922889816551536214784497275600646036819480350582537959657967789910552560763010033050652338831357366093424518054114820266138548743717397387072731511641754979432392882342173029443280453104023418246891032053318710474213977302780816926154244241133173404607858962358290608158384399246676228188015047425074717017707473906208071763011298714550016360770604206504266262098840960571510705602571617540839275855753207217221555019322427133073793522445143157862613977174599609893793327017669637518516955557894621124009394792126479024067048437899247990159441506822865633960311785345523962988662413362748992187554061382798628332583011496769664941556221334127061099803154783707167275762870248478080283451359135059177920567211299034741797008858623052986345005227105407721746441157746823303086952214453293757634510512762501667839424286438683718558842171938173900376389017497540839519699593466218882724467764820576894196648920570552028111055401132827677844070011872773130056158379774782115008820075141393297945962727079102114353847384608961173871919917740245966012460136607569131285548244925312429423971020915563201952798301778786838508119432496802744158115380095308473284713739442872243864225779838166745031463315781702320207973328916137415127371789889656797614993640908126492797434956493947158407190692290442201389069752038055258798444089622106539206483144549556690634162118798104226225411475709966990042390495170796282452746122393179702003618413482550958293579828990674218653189801916454903124514289187509431434082163162222086854192066558143049545373883598814558899195606320458798153641183407201634847094258873244016015472234366406216457763076444487909936484181131317277483296833375324997097217059755801135863490164836375266891628272888778215276828785757556039961363786265607971414348051317183433767285991120511427183138389998864550158185000426660447900476238955109526743663035850702157058772692877217622463761816048188235038772551979048742399121545387236148390196540732830496203874744089163216890651051724283912590302905222970001197064745507361161456769259674285725667723938689778171021818122574189213284043784680215331406104105995023818948289704339745577523458485734519723967407255491620554412693940557151690888839219369377096815607383632993770119260131526591627355465539734020432034145491564253393078535441410136493597846516916614053480061350889928833188336311891164487699634535895292747072358963619616699447343166563644022523980630984090991782974997971054602983532103715274279717974082394821072046514468250657414765181747403073185964200297859338421195638659175970466013680570951088443410964357571520503312890331974052925266094991914834749433160788302855795319698816832001083530787867414425349908764105795202225415794059183348512565708207694549244242595367839221890651420791612401760081787076010158026817196861994538660056662359581139266270365906681689361139513539534408271217559824979465439028627834987166621203243182692427756321957738321611678437675760155138938784198547734112056906538200129465444534174881752072240961744045818697099728182518871230845826899005748359026882904691120677200471068104231967171710228040639297734064494377401810466199008994663549745506022006225786675316221237272890584056987552109552419207049661320891557706718636887359762068769639568620859600793411585916060977452881325581069280656885105607562219118217089436620233570541327196586357142691661015393207694914502338458973492131203761496174857666010607484060234451199781839538927937870901790659192727445441251077373817162247687580360440370068560476291161895010089550194194615529079320815138684965715941225958092306433442826886983392653833682281167507583436587294943985506285781094981334255053812108593376364401060253753938537481285966323349731559451881703394447332475080017642470131270624960139000943817241839462745032254673461135679715051395486249564198448011092898312626688219249981451892091745821717418996660614513263271014134465765124570737036338565416726040851643857887985631372135423366743319234376717477324995362568997245953573017124673752119764339211018644226150780444162639966953470958446750147823291483017559244490380770834431612007031375828149695364881031281757935797652972317165353227816297054802532939056963490632181439690243074537434941163645617845709534830523894272523244243776882167904297977021215954394725679189549754759534488552761877532028443841462215946026188739511924823285310185531781572692221560839878521531530326755125786211269042767308432607795163335075823801549702508608500750639942533915753057351515387503851788521179111516662606807571789946802417861079202782727557269686378454888076711617208688340906064023232717038819005288271296504836288263517842981899575060009315523227075603221361560709285602925718378685150433397336655047962200550023774159348028062356164408258889584707983857950499664954923453824354883065033477919015109292152135257111494470647494624105758891532844835831516656136736597597775966005236710033233485214934679849071106027485313058789761587867375118529416785474005515992164713577401531505888281612175319747411388937770035862993559339659530300712013284120461059591241190046065409618207958589532202482370838632621185163890004290611714717383984143797275382225882291570902011522666089616449405539426625034367153514713967989903256588931148422178058533531479896891472944492744242946819963499440421110128550881903013382020870647597776124359627749310798522483258548301837985903513913407977618097400647936316433837155802379631084367576942994812693533655152964267014123755505023695279941415479599551010759789671911266320568764546926731767343578629130853290481802454903088475211294171801139277655133507162738876098169678144892859701482183538989491884806909978856771276483130277162726209412272786335371509837173022269663974905618002462480625226269681625835744169569323463276842747056344649190516795001559176491619279710216917365791626511573772513074306066132807783000481407658123223597278605541508107190985225588922357783517736250178873144397666294695205466988325646270483722446049408343242189741661314670639225819819519399700757348616432804829680861123931268663363345275671230250528997169226918396716533425682753303061014842373918741636892394639097847102041045793426933796605800563111038033336641755835527301330533686180909805062683036069993087722994330262415971598806018916078017141926315105708315279654467390887377450653855177955892250464138868839989359310021712333173998600921643457463293009715294764512903796815570008332709288684991920512841916744379201731345969835772627922950176175025937576950526598518005313974766873462607275935082520564303164311151173002443418348195604909342642035369123942079581804198925154844263873278489016343109770841451120966045548118699056683384110598593752755037881098997936709757239579844375801206709808417598315332446246074424666837413781789123726647948698555689441718128180781099261483547333424418354332453809317585913531226275232106108646693691810984036569206736635855871954746167499421425962511039162333710393463496486131049571723570907079242129907362330586516380905187011164301664711487887294163714680051030160667309567749842472001014489556395237391939505982664427472214941546341141990901247992910297835116545697684925551866495989225215581554010024786293722211409986616219204175474311565595671856100611202741165736980432713356874340384245698379839404912110010228084846177272901764300559036548820120302233021815034713625331990463064394402506255969756213085574877194475833326708490242934000663079944510769514186435286025405934949949772372481506358867817371276549195900692333355932493266018561158129389028100249519235766164544384571031923831657775129157788182690831033534117488239833268056834948789453466895523347920066159303347602705893739960156800153509130059995545849298847596361307729421093549735668193311156444443458598963743927102867128508798905711884571652972161211946283600981540096696991584328504864344990143061503251596354157701699388145172532980514738772397305078998235506228992316916250984010963592555915436340439134649487684008551370260335095228626179871396072598330143751148743031311480015192340068080682597952789521266135635677892335146036907420836870978925805300751813521714820290247845318775582791879783182427929286966432521676990565000231239358090899359698087873374821201472922803902319862401097328448094441861571172000775043811843896485758704251799061430103584413280102892116710805955069303351809801046515723679925314780687895990225762579205759043388132149931571024219262039040103802846612845562771245793076265948422281259018125091605844289720394210835321990161482580275251557861232547190579102004624926562248112796712172140072500417210887769154196546537622030129085718031546830478743889196051155847133384919390514684928441201241916436192461250310361614869082954563842650679591481897001759451793118726699330992819942197201622500053700450070300574480715590003317756178569163107018672744020184327158968306038439030168116019655752717096327699346896859972959442164865797099870056822995861665392041099632803502101929042070603983204967393946637673957678863454200487036731492013744456834570896601617715791990940157618341276565068031466927912264920387014531707110797967150127897080608199368880747760054347178358053859236241444898634033108656173937828286582809821189817390734739295273064890071886876835022179674501317904745064967032951860867716966889238184977945197135292995881479253256934359036665647228810242076669187144898862227609524555893224837247164838320015322740625862333473329107009844518221839460132401938962314679621488532084291712424793134921799550114786284288733462685176766789780716538832903468086636220854295214553961499953667887954915790024318833805681994883165990654058779026195016071645240428909242078311552215729045992514670244603812058680885391367198117468669309782489253367618722802773869728181613514661229891179799963330160255316276903486202740099578781350786309146153651702203886089515428874228908375817284942416888681231106046683989222538971736322225938304827897537557866258428093239868051947428853428535289941794392014772051449816182158917187549680190649137475580937105018774097130034169455960737098365894377282838463151326010292946330492730939299944491973178018027438814338333856540679671751225977455266069324741799155148290134951993585942902250610942253720643447441645560399409080819822685815272051182866601769094726526524935304210963931092386681165497004099487248537085244168247199356115091278573762663423114975269416179773040190907441054678755934389064013721865060736720258424927184343585842238384004113548997781850516456611766458476758622840307996780451298134772216478915595232180945826388468140478482169554382859958557149041238292920205447188432569709426494521823154033254698072110434201016961532782051447054408412780417247476779543963485983001522457583953793155874731403249497902634895219978046829835849555750787596872446209701013001274026895326074610297388190107283925453002744491830597973673250133957246263903444388912417559188713400622321001083256999192766740575247836818396825222434992718837738343356370044416095270955757449938328223858801991617167735816442439747690952869241623125177590556275427051968751676632698452217067834726184786212195082982644450910442138695271943986219526438192880304867575242815112535784685321678825986007550057948042840532009566172708322945689185915623169302740940525353704085834487191593544464399526491293447014534196379646330173185885477289100034738047611564353962223115825585312741935519579421531569020401551517759958005313331109438854814611373582972955007616887591854987604780402556302796499870493413411330149692382413108069220331498985768976641577492282125918288916700421771056646595995889896736592790448794674475106023113474538345791035096039313663808012915827114959919051998898551435743437507604139970478300953968191627575600888599191280250169048359642516058958991387926833839394183153326466826127152993492064966354533745322809628051091857566266950663227275119178822694277435093730475604292416969850582508659663666694112146510903399443824299718452911647103854833275193665126223918938384132746608102891195809322610742147296181079238707479633251433950534958065134836240198883281405271825838231408406967469317643554875348641574424998219288774450296115156244787718405536465176202402822160617675126472820686236120687130842230452217889013676607661504378775752813656994417812017788382985864818841763704621005997463505805401853845036025826998900156009985245269086730255391658518283996040177761885968578639955101419158699812058649680708545848855925920466205537243651881258891250877745669348589575743211396769703789122216954743094389706701318447565628551033273228771390747452877355593542741796597112129833130516865244505643495689674576203310958828085590274362876724132553982997409351850885175359317662132476935559951940381374163324669656272577896957376885651348794759024157242768200383904857405019901987610510720097669449671667543856247926051681161024960755376849955492539068510257706951213665246401808209147518729531032196544787332375302046671519497381783362715101492130264485789628796873099751369246956862511575131505512789471704126951349275634393101653184257681377752141558483993586998786174400529284732593905958119451007343435855132428061345255315391406117127879878720449793615845972985104711164080991129492609460056347647733638139406757966658487009764203903438979215247718597519059979902679232647555293070070829433578586202962288967886511895522167061597792033933126382982779292172186952019124977201182134081913925980034905785437715155747026168447651846871173321553749882967882976994574446044341101085367998151674058407744632626839654855475590988080602092942005257468662002793049852069064392452667243828277184172609919319577495458787507838352332661865108540542515216775477472548449047576966121480296827600794134678022853499521904355589777144356323287364242293962588155461267279709394797508494559991710416331669898047513304991048287301608098831895674091761848577199844580479531540306660688268106906697965342856580126747832847152649725079927732429590410029343478593326148405619413272380245240677205782069035249156919686082616958955315593817278858219154600394253845350318937985480921181334760495363809465314177534220610822370661761947059841253028627959770655528975384801963246325306588622495240263590873131762237085984928590547536042538696140698198970732441865809636730438508786718328502168361471723560067150809795735981517067786494448338412998971137467505522504459132128828303108659264212542630537506978613097751735483667650617095808464318102908179411063237019882580816320914507330653593418050067806614207362543602911184189970593775328768868048327948628931832760698251411328841358915074101647023854447432361826424905843595183567194433693160109753423360176180238448425456591857833956224126415819129184343796002038972690078880927432393432595626461618362593060956956833367209064710514861677040599559120243880805626813931685597980110000257686548984479047606368765791002156943494530176623656538822637334114266135337472546210214203830699077353462933368665346161648670959710644292552559729115074095674630314690611634284244489709271600676992445998401099329639967045852189799939406577860432567897305941740294774156836600281108265975880916229543684192832503207579814664741929330214457482221938869429379488243520392119300095683112906146971628280556744833578580377030856183871355138900198439699076781979412518523393554908540531679234461364482881600341107014538172904814176627974239341337341508751400271908777945442673679355491580891815116490198833449958020193433070431144360557434854928489260621632333228969611260167407991009502408271413440031392160860232113485776047409396612364561521157808229701728794542762363195253981925559470157229427054469190889263080152163895356601026868318643956043343225303080739921212511741335437620716236995038397213962392696043535663696978361568186659553619237440131997029612397837664731586781278845565803346845317724596443026164748935421487345377040980131032041230041193746475944698984068570285151530025348786044949783888986133566415600717572051601179578203794163371203301546422744128476150098578817096779107574410127077147784082883676830885826788761764771540001248679141990912547632060904598085370226101636116525499606359989902160854917021957806518117946947764812696834483693491195568953036878036220298897720638660163954686235159350657694651828430155762266793084675818414164774582460738935754685471936916634723609712598757043781263663951619245914807262960346968564479029458775281768015524606762332361036158871159039309770822720541954867834513559902701377974586785736197719030237157861664033249378991913473613610272059531223180402860763625196061173784273430986914453994511430441033256627758046438382658697150776231934130712592230386555827098484025059908118357305153194526568814870457383729853211291559409765983444262882616977788551564606366640880398346166885617635312498915903218363887559361295615239008908692967494110729867820806309515826682738467649653462641419029720226991838876346250230546548861702233005900938076389908825337249646221875190136834930368922150780025005129474889553636947431277145292548558155938805358549489379433877658720972977105804244284480659585555042463269018159686779923488222352082479010264522481012524983900407409535766373784871833202338454917568229759611974476320646207344959664521378237278421312831224893310584802515700484071094699391064076324056723865312379982153322746327292766488712449529012196687893490166753609097835728029629604236549137514256785656089258334621318455379944642020094005816568465051136274582390844117823288555606294895083295537915933724608994218885061040575088670547582667960894080948149081401811880712078518763368297878113577811481284035620141276881480751323537578284966110788557902828648286165294099443020797787642003230438846865906251298543924788907040391516805748461614235358074729866443991394275540275541161825010246409925963605161199313173457145342943013750737750155122633315707993306552224478113621689318512302083471730777280572501709355287793271391114681028485641547677774856607775059315376535228612336479701083171099625149385145866091529096390116815284638865503365493151952190706823729324892162466861455558488178409265838821090517504714575966365231752868876002930439509796181985263922173473978953934049383726676428930522431518910873179269030237477091590750448504146644978821259688712445953443429067643704471732698981607609008115839640621978929015060112568150351175954252461030011085541868064760381970683233841780928998224253507225922654493625858031394401640150491538112078799469600637043879417171894466283163384227323574082591788632139983760640750145426570279665725828870748504563563197658287223798628592894665991469561264435172779288277525597584593240064943545064405218356807816063495013646247840535740448764291712530477042908169762626197129932435588889787975141361196686898511725809642181682991691879755603370410972404593733629451300203899010947164871955012907058712373852333730311569180090067895038877672657414414068038443286586029215049463486574109416608981679144605016193834596341172630187500886604626953735295214466087064088536387117532779674614983847232956102279407870685246074649259447799503236116793527822503551944665396305491804796630568909569397905749348827321424321535681581114077426600689671260734204502586878733279906991729687377866281507851065278728512757698486353157855936075051455733061463199280080435363312447819888549217474160404750161628426886869817716929638048613161139150877708695699547900889743694202079422940209885959784804050895634892695089495257644435590956328279051122027834604559139730599681629118259384040499686630399912010790195844975076143331484580001337993910813491693847547435220904549504075283463872279114224813908325170164634492457386071742660297041083028523698096238538368728705356308908579393523221763178423813545775662405045506324118750384712854620051533101385092857387343584581318182735345316854161785510775874527596010518634603264365919458335565558478126868126560186840834084219591024741909128728476651342636340288882906261825987772563204631064480800194176638488505640969653629549519407050344360725189590043752926831885023660816884524791410699577453644591785934466619265791945915027941167839931249980232347771933899725428003193678459563411446598877413663902904131633446313187448851825198224985422649282666094125279140735864865299635919324827053082501971888125982508696149783994563609477697840098344779465498372828013657345135995869994597032071137420712505596961263798455598221714205807888082832324257041968603784314638468096819929122969321749476597839600161344763827118077647339052335140300895014627246182280478432089559713438019149082419392966322794614358559896809164545387543199492071060169495685388328876124359081272018925441095646851492799689076110821366794083853997272427619551374106018507161938724616118510133750811945616338480243222376248694199976173861286785025986360132152427062831268268789822358007362049181769321764635571313864857204817932166426119107132317429823570894732740370567952903138516184228360851230528244611518880338252600861834242517230481335287068597153330214974654362552442990030233456185182294479138781084207730037262719312557238195415831105675772421374024921303990158324241307870542688659132932765790076846845910937870426550774451245450458009092126975537244064307799528564683594718294625457179284398396077377322261924548501020288039602569499319370155526055634183733571832639091385779477417118871319962942336304974151914130891931999432043099960904970911368194154184786166128986441248193846729823500075961049648981752937286086618738939003758305166902817009042924829477952839725709552390828617490934119287253470866307975697321135662401754122606355565763162284167077925328137161425857587457096878064825966783068638524402890122350873298781860345265784122554411587290718528423268031816229725778614836464176216201945906154811410325907418645976515158817818182767513818748378571267010457356038487377718841269883957875104723242563775867904255962144633859207883344095484258958137133221449292345766706458703299983314174176944259777081228681985498298366083176264457652452539414242196648836068403467870278737381343234755867764768366582544032155109959922977743198900685306347579376080878747569663042160269799667006466743731094243088961949138660714339945241114210345803912028900920917184529308952119189143898997737282301623189045531223998306362153702015425335372494499332987141174316344304446366399078185088358361945352703159277181667692490215260333139107776955864222554332286226590010844951749223203820330077036039342446899836200850233155241638232867249002805833311371568607724479081236290000957051619385396520742725044909807099642274665475041606310313827203701577352037816704118269910926018307052175224702681104198820556781325607464364075755057560384883557402850017318946575004114014364529124828374583598592034662323536329152673303773035606291269827446443438257664505599847993978871825325390875715623899412992563450742925802511676026223500838365630735658949721611571892208395547501458917999932068803108194061231760519595990121200916674991555170323996644428825599796535165509215754498204289745352458404831268154767854869611862941336960544432833568578845026006954632860635645945384860261230762314760687202453125146430148548659497107522306819067368673254819385843674615842172207202248477192769639458038875436283423306329878024664345012603030100451587179224028021568903586233488409650992095936955112930410321467380415324756510647368787057345216165342009175789526491839574555556494036710810232994692722465417994935400437593475002164738683432980016329268459179130608591476389189045413643555293302812906050472153844748330012587896483583585803529011642681338730404034355948710915260763005859337101770777063964065256277733829070743447965940847870872569743133027479628675964182519796588353888706512238141053223729696217358260859260941424173265527080897441304697472422853699649215994796810815204116162363714514051445135622797932398787958954647758606466620455466273276114390584797436954371565950654548783273990853807906457035817111288489045526003321412646266631041744314538542371299443069169552895159026617184011811558904656932064274851810625475405357049075103768104759800246383324287174297552371463047452464252519518358321050905383573575153178486523290422202060775065801724377336399421168520520282701778464357550898981440689275944531410576811474186783098008736036894702387033002716504083276495139074017922036631433792398820993277115110609128784580944018700904334150032547132503919013460637163227528234428245542825016620049905625405697497250413403791298908080416441634024002783503354729177367139379571733350358241677734163313907024347453815000146614640117967455309797772349756314199745253576359299619687983660378858870061139563507007847901039991579055449435743065263556849663045598396925962773058213723540260085489674973025240643489842943598287700825104393625423668311736037880088191948591360178521093719767075946770062063696804656473490247165877512095739901779197989590354815036569937563644066742672456385941583637721176549892792879151129058190650718162584938048451352468893631861526008345790340185491093576247997178276983770068039625557336164916278697455335447272886755087909414380925710617014789497413645860688994139231277117348126511004781659357258089511421518737723489047297214834635065358994821889217713161985706518862721216206586123112509944483071339209308724065049059470804251368004601862491677630328413518540482877045136166414486707225961225604814215532910383500120141943014780366282672066424497100176478290959353978445465169836966919527806165277200336846915697101892245811935064509341389928493664472892250377742032676173085538002740288387915106767660980489766708445766083643949166944162082235293993274049311321363147912560942287038647221142879606869517928357520194401263367776617039088931843095371525259691959654983437294000633439296445596156050567235673473070124321385124515706722766114051590110988488897914783258865202188531802925305853843418884031996503846310599701705268975837345984538848724529354894938673742738174314106602239539182422860816928477700988391801250692848167625095235481508747501774425359123772952020191686124788508676740810205571837291573630649705096129608206687346957352070252554663949023592004664623057679839216555957444976917098985700847090923892941134602947383813376488007568364303251246300441136026805883104553803125579954697812379183681145707293251481150551974282801432745482117927525675179239565323112342189683369299188910723659032787603251774521076323254066299590164561676496428618349571475510799334718121992882175015118260385406244412765185792908305647251411016935042587625787313069974470627927070475250588458094928418576646268580723779132182677151504210649131058964913166718804559077413221689357012060336359616024305266115122442903005360988014615523697982126854196856181082772017472896016679918913241207769716235132373433770048732797883571707899758507272735697363490485100974523092141773545350068328800486519651543117416933546114925408303815007485909629528541923098109222283862525194702398864884602570551566497076623979103482840393908197425807759145146368676808259696475382994299470002101516717542077786483520558558796379388889550432537018664823211365832909374745365365711886110798189264934381099727801173447788579560407633326089139884108188822766011331782101960399616107970325183825779091061780683074964637835347350937930137878664909922087031512180098026814465754574695143079088082561077828915288825128675288368530521561495107016342351670046521344332743668756965621694156399266564260733616716233801967245256685861308731078469578708397463744012659553375558174454980293928429699582860790939541851567108637486395472227759555138429228091933753328332748124694429995035892779879176916254849685689655190886758077233418858777888571417678774079486524889306224540251333796469826019873481582683453255967435134038857726168161849081769291764326476267168033197600015605672100764960528172803640188309560634897754772717537518535756244826186061713464649919451391936467144711437664417557767272437298172697913691104468235177588881776890533344731145237592512971374084554643111130936041607557685262994458609258604729651134719932138029997249357332024077859324269333986319909423504172454313511092479671744231773413470797562063091396030455267093192214685614266150457302616572580338181880811210949019752560163057646739852460268528562207266373571875220719736973939597815809964228403390012343633786271161996658637455864844714502099909265849803039718931407595209156208125744426242423945660824856896382553892477639111169651343662816413402813827849241367273705623206250846867825356864767299590977277845750746628181849276877902640301097212050377489940265948460573432740679280580204806649335595243768204289132400055356762172656601397262839916781844618625637987971040811698028784223899156273386132689275541146429239363994733244746517061416582856865260590901535431878549460607603340022796046911355262884838690045336528553504895371279997466990957607552750459969159099519213699299227704161585099360153953102903432165852688148569407857270320056017930511347404903349126830639160543251054830774968799254837092125767522586481727619773630982799322578350855659120830600887353557860575573124123740916861062953525453489838537889984945247869343941334535989969162811223634019076486336463943810545509134773663691794385841057273012805544340003243362308077304420850729219234813550206871290857731400034664508775918476847804341681753125772458672476340410340709610806480721061841869956429404055068484994548761301065562984578323555911971019431243603645935914998528663390936291115676006967162500291177855780244782323109835892668794763415936770726121870010561451157303811986327899658002999401744455780656413250673956325249177194606438075589189933428104851646104065713937106732401967206378826623415169014223080139843663142300397971718591673841224260939421298596900715820770427171055508326852899231952229890516483603845040305243599142133894993729555247646143743365141872895642622551798261059627097290335555186573260764865876722462965330577226098413673005681247850060646327184051684538268111027079706467651748120665231707794629861326707830581475345335734602759574447520356212221286376583852500873258710291327140670279123620315903328383849251775780526924195020536864834675517360068745106168723921439399102171145454051612790890919401233869093009938861024143169678651931333109037989839430684164506088796512565922927446267275273081621981651082528709805893944935315253683177975987219895415222196410440071161017180307204517336005760248910954347723788726707996288285119760564463483727949479316794830803231650597303525015141373325563039201965639928542808511058613023540439532321899419641342396732530753654437097476381792064954818686429576707160788210400410595134962096215327910567697450165814567544597327367163416942113918190893603973022137355019849159445918180453563922892985192465242972738812401745898218437264337476679388456448823681808941626039009693498865666185647502985958146652389185604254993954738346989179013332672338803247764222784537222753459517224538164249144177496251355796914663951474877937640080434171317808905100191881277352482728061046769448138350946239612633371856591445251660227372916762652806790884837933959862185550027583667283565127231489785322362046506807629683499466208233747619612425010932569885933406608443440435668602418350667803245123600449038424105829485945653809400108137570746245807293310542234398349641258087309955263725115561219634493649376892602273267600009323079070301302685977579759298006784951399370193420390888133049137249174737039956288591198622976682377679950662333292189499689202750304528655836747495078796625787889429748862641847637493823098867841220519096476230386342271218769982519794410886724528689549382872818589014227973102439785881061510035824939407398094541339967924776015507003570221164096712373395613513690840394519034489764320352296989367373093605634163743642748915915869485663616245163419627636447612168303935520185765267048928140439324831729009020491465532638165676628054332543903749621698559169764533995344937115273914401369251062651263576489133819158721455369614612395355836129620488792353442941536954001686710242895624329607495634910414885726922071083082082084570667832237438426372840801438727472728655876068983285668960214586887782213237757888232407654012835110178824350156779130415316445626800322334558212998537348525173030113810600101705716148736613542667302329058173062413888788607318446019403457870610906981408187172702491849581045077756851998597045981780686255222198650691842234231004544672291083619736980720525369073312792866315079278446217849814202283508455607779610797358899781533872216567007669735397193296737222391119999933394337721590021195280152428089582578509997023153115680426440103484789958128593293839716200543808139704185169298509280656509319932500796485179956521641306620122955341570425717665171629388511881325924586010940628096575582630626021628696065095905381230253643328431754142200573900047531349435825430839834872780820396671735046080552560404225329741330596993389930903299050210129019139053298928516638724669029578006467910738956744622479373499494498373470955640363279085407992679869845922391592434461088447911307616157437719303756633068096874408572704252617635736032959817178125707780339889450812952027352280743510982070643042425463477821276944601619981084763061258064534395474710181920018894551415831642260060992505126320456406532482944099051798746071139889832765303252615946082277147280560266990537313272686600026588490726268370444716186771929173014857601055616536290332314215385581757833810560712587403412539550923089250071090414872240409106265304686955913065875124310620985504925268587539514646116526266606016714875777926139581090684254933813361838641162932562099626566096379624539829996151101106851808179852452812434018452428526192005341440409881070419912199689892043642593044427369435706450373308255963093587605000732357774387909116783751783801268455799547896770709343183121534243787111584586381455379005082350633982587150609865936013708965262780967071972187111334028072090578507007262490820483514728434614075750996670968230191392962779216056489246640926650502540438342603513317191051618060305280777658374161317615704387261168855574760253609724301921747093545768309998326327302114833073920281101164353527983767878970212977787766814149355904826431827861218007000149501453240575330262421601243891695596337237725151991074080700023907822771361233724143363127709829642893987160084217748691993877580595875617720962874169938712893937993947795258588669725484116193638993227995397440393523682021669887821585266919455577277397068937845995110573872094829892066103274095670069921830862160708661194097663571128893287852135271726386390731776007551239402797309346932414534816620913369008541983395091051799102066961937359417713065321512128706933638714226474617398805810317404251359983030364566088399000813321754717727727332597082122901089886291443523285344613593241286477545527705944755744841972161439616322364289804406978425514903762664366152070678176336445283670875619445616643183174346557262684935523271376144702401124099378354791941404267365567193338670574449158977054403319166139669776794093602363661135193061990131566532547291782045124757652163001701634734266704371120400360749927713257602012702522769851212966711260102621332073444515347200447434023034555407489130757708659659066453467000593694623968787737733926000705502327927490953779209607713015889520680514182058343327569541519725162336837060378945090325256870189429846588597141408081450286487252519171801858640528157215995987716595244577344317364455766366062764414301072294468905820301055800771038791649478374506848684361906946241851888275356994399301043783131871824560454663438547905582980147329374642910658939474380731836301196495234241659357131251186037126623040278624766078247124694189061642524391823096692292742085329966606692312108267875975015883080930551292040102097986531435851510239490624281147334413647744123143841882188645964519402758098991279839723150195975049458001327434769627570473556763244819209091621227258665902807693255621306724607425906616309428633339966487536355819707971404596051180883219635970001189350081575575263419762833144386889768561393910704074575483364415632744555529886310899277381363884675029581219378367290896927920191461627282419425117141587755061980831987324474147433660823220641637846822404773148473971967360434210856240086521449884902098613766795745750654803224583193910054886156201277369265740039121628853468208993817342929902169152449256227211681715944790058834986317822454219309552434188653798709267592210959746854381733317079379881297786935849478320821156672296942479191155929039794208024638233615856665330938568087175257886471100484776288663281164182141937960861434471201741522565178259017788137581449540341427859073864299996296991173379985119544370078905812865792358191200536917750778001504719453923071909151999042715755334233963699292326136019401777382917730269333229594818514888007722812848149056287008568948591760757031986665399057413740260429971125958641524409975124072777405190695180108333449717534749017809774860249047755118625366195697303407213974566586041746668846720772623836412493433914526425846818532299384505316949066547634939085303796389186639892988873852113781426850340138083544041790715167110744950268366261893461419056715420660816499701488019746231904774244988361156349659474077814770760641930622271708183096210988460688681490735779068963407111860993050856816040607690072752045749975030726932731420688202197009860283920259496351295623395447079911154149220324756689689583944434015910134687394357231647595038856369238382839637305703299453107966681349067511153699372209838097070714619566192370724014078339853826318503947852651869942606618532850063534374234011870579341810837359425395415604222121939277401424217101589333441993700386455878420682100543224131487243703834281147594203007028576184257801815558771174996437661976868342870101548516845016812399309604899233314845801637898608606316967915310478858801675899648782135021947654209561156071677111606710170341762663702791670139513121646349144741547642978367431390299569569468024994996304476888447720369275268667729852737471223165692477817261828571266077400148502168365238240578210974997740362989691941267478325815238598453819285518869474154453030586141313069175009654690389779544914426074761454354384828983440941404234988741732487468299679034181885521369608386477150632910092925737848362402146753659165581428662188950457779644308753082911808280956107643814199367953250726465759071646570290430745373942770252446300728344439148997399006358993349071786026108645207513594480441254872086671772054783837488093897167256742124851925503360004347481802899259124965542326442452435670493229226519219798850199736688057102252278933815816110754105307389993884538874692460842704724288281377443231874003526469717703096694018697763197651933889618059039724959212629671511444183055343248962964802566814692077161560545594487995813311386047307740292050848872427116367077199889064333069548817073176327246566084626643248103097092295486892088077482429037318747698979260573155462399422552649721098311738071676540316541130531641010456372823068474519205635567291765851106580961937249768183625788173021566865003011250598959361518303560622877202903231473941730679095924688489265334582801011524961373222949532547184738654061002104442032273339225932591855624142908184573033837187290358325755188562339310002323292351856562428810525606620845194103701302452444642811189859501314699422220394431700867144997408121187062280581388356109324168793688082302057265412790965275108276677895773568020361709946003391040775137508015094656829749409376431005450450933291558871254906429427008001109924345007701797403116190541719990289667523964157952235923702390340437954108600149618827304370788224633201040937911180486317605053073056390314784553265531656302254314312316548998868644200489535884806141826044199016831922079566553256258532036123113596099466091410802508459603684624702266099850089551469225665437494388891591499663906731192628415802200491699806667253054379002800629956501363212101037745124584369964614270556272793765439481890508286372611627823219150473016177667111447748014654433288255744523694025207393495832687397168143540482714059044951104393392002607120827052818387613595020290494127692041912452068687280984681988122274840070930757130386624496031430880910075514748465778542968749758816443242458521930468396558033266635491817294296061940196844443520514827080863409994948234202579972900205631953902539469498360897604073688559260866239583629250480424690730412966796619048434618127828308038984691083366701884636901865210851555932896920375137118777909952219235488583019457389027302080274831346648551933149436308046811540768880666177056342774909268045953854303407317500891838218226431385098745276631799045972357555101492921177432590251095234401545568431246837137412972974488221113447564591149796309898198208759954876496685971411412324520532002646961069100480031715095335733398866634875608425932956154707335176669997723048959387414059142834823710509290222453324473320509541470509106230194113268381143871122552746596554883933208972313998158624608882007788448524700163620867332342998853616209317424464574635086882232845632615491818942729671996150865072177969124073609872280700942169978438484846118190081269395715209132867141107212911371934932355404128482434863697592753193166993075960952736367170311294413558972250124062522012147633123323348522463876700331308268706846906702792219819411476169283109942852927089066174081511422953324516969431691545746908101562723224001907490917638270255000354329074647704653872177831749489352536423693381403597921038758016517325174289722749031707175505967050056216494497547627585420473716447407389629030460251460142067988104935925820572057972790439661179675028180371618343247578008417258316441730399980307728012182084474070929902824633033902929466380309322978787482851867417649706041680739544197100297969892930175896170986404155483497258965334541547868124912928353920677929413238746975118749159863887069313046588949539857461286703672104917568788391943645683328401156137607264587988701513750297767084135677826469598129276548614000904789537296161572814388631004934905002277966791099482928270189943509496578388363284073332452441100059316315983673112382461120230186026626199454098735085217130894444473642506345415322988457102847608657646484502292882339307262574947623509988432528675070137822314021878997005110878963641292194928325701940491214351676199088949390120402104234502747368536633232260631094270681241784130129306213159673777786135556161941634117110467997594112615669905941964441657434045351081862888126885106835081990306581158825351674492738366531885005163627929690643176277927477301780300850683872231126837133866155411723811107276398939979285732683328928989969273767079916270584349939359194958302502915159117678973053145645119555861298548643942588231278361489317995752131264697121353840974631515488349977847972842084870071607250486756956193256137267425601116577303505483640252901566024333603907126636428082422505389721351478254637425960904707141189968082043117920185876656775676094361191870534774533383933703722777189787505594149928312416297174135584684505371655588573804929670966952926909373763500475695091294223246867133386128037162125527397887227361122996632673607237244128418394612327766670592184661323228658138816649619215147359672180677893879107882267197539624586107820667970773655761161810304214359551061313537922466179833556228254822884997691324727127615234158944074634134769224693220312327994148673549536395536726290182505539100116026773516486856124038137020224977775344100081817403940531579597644551744365908376494615173910565321839836241154152411454352897103360099996045251629842101606300630919286588910740241155822723954394711621448911723086787441735774296612465038785735313575745078970110790430754818535447228541904942567494950261960676951009820679437932069940112563673996070802898846087869988175001047880700990339062562292991600323182950854971367437594710304823231553947266417494450091957323802653355227406225636293055915216926136363199362993304773547262746673078419405022385377953054058644176617030739949754278955599127364087838578895885650369537737080204349745699713840640777173222286023251193574288913379090473722858083673467829375510297535314940731317697227210546041883080249191057759369523814734318455144435986642397610023643375247583487722459133762147636652597004158594983362190642011057669177194690876874781867452012624411195282735800431938791209493624015389519441672922719482874688391083049159636977971659929598243240873136515205749083618970559192167637933825253578055101211059773014981582957344668837858522142243539035851381349654464313933952849819731190388206538157349243652284751271557832287303209362191452017666928516946285208857167567061131371347637257761695778143601463395162411208905253859231352978172813002782667430952701580089672878092487867594413648152275090681678525532227701615756550616206783490553078319892158007076466952130539204638052532086049128595403423856332227668043867170760594932566892523052566747561617255265331032403885504953165358895935136930749326510026786455455920328056155125227363705309979875901259998861571773648775215334734882012992057948238410943241826786172780662886414172426535150269707489149617951834082888721799640515943982936144756690934209878665649630695542548274606491490600953394624689469923086513266669863809447530558410956016901829304839050752253226545863543596582955818657480928074428395988879721709620641167093769576351830733728193774589147930406637946669002871244817054663285694845822627351605822640686274601651232140542574163306355346932432412960353979944568811082228254025703320331549237597437465080636028567928854064200109903048813077992487467110991621036757936776268704916342957652065583881522583908102987135080458390195057670663201206949307198352316257606055993978139385744239976197742729464095125446097858321101183042901383270058737667292743795594769763357564556755242201250357346422767656142467282897294022712271441878469853239669253135170390925743492056334533704843593957549948423070878993695578665839143956812822267236181884413123553654439398321971435713677966601996955676493626113905624135674583808768206384482634719643275649907534889230839389794180580300598247780928464023721509620458839554491104579542725755626313817262922011963978371092722911858982823207423170592666878401500987931644867603534722610209183732041484690251846112148077531921348493963669630811105434446009448357525568105137485549847441289529724196601037532407162157448440954611282647255484534089637374754510700444026148514178220062590767254497094500163199766380921927130058637673478204984339531048558085278135887798343597056121835998743147056498071183515360587257726669705663401819731841854793410621159784745103042064774674219130647911859047102262308898847610177940109963425873604842969163853730228794212379000217324619677692728595770643705304826761753973626152426022800455023099461488187783442700140247640831627628125914429652099698481932501608611835677834048773499768940016578769514264463243232928080645171376018394226516362944148291018622065278606778671522913821408022595592428195818588249510188554210746653905822433465365516626149776973196104015102339227833729155003708356793518023062705661980177159398843613177845127771234197705628230353203753144288087233989706035490040979244997754257460440175253753730810735657279646880738991480704763534376922066745378074122057190134858211212168180039274524537866075549113549581696736031449706861880512247242432700456214580240811979404477646090138810573318784553671312914028884315730202893755333895382098187728604439324950675122981908609273276926794747030304681958618173189120555712429382350331942724725545925928866877846817594098994294666147574817854624155998672725590576115523163599690693323722909331893761560539795139486830347963073651073795276592165388148469951133573983835016300016889765717608530591319764087823849339378624756244223703839190973875676397048576505662654885367437251868307380877992436253984263922874299606761443685876429447116943074821096107889409842366269288308314341396853157931870876534499146096625609126137437284542275182048364053803411246840097685808259271586971774870365184994340661896346455519704740172254291468798007899120691966430810106592444260081262582130253209613347984013762012581275157981374681577670354902549634369641748442059762059463666912611268088404128448880694670977353190593259452441577110603289538536204719529965309895200722441802396948528623316388632902560019583669057566198661065018135429115458248331005729752046968365724214312393306646658441889294890627574693969295975618933851310362893083143481533834499795937161662003358356188758606987838443413747106290928030066965390411056112876208039554535576240835747069958152157021878108397938140048033388512332071657471553425044896923188135946238109670504478871638814751662873466786990502786068044202827779948104052701423328688050141954008606794349811334621089300058992527303162312969215524383787031887466677850633840199147252155571942141768589263866105221088122370316298129364862797080746638928600242214370621509211526073208187964181204328820443255186605825198897849588240144606591892656249123461235712848190727762017066990864112597450146670116432840629812900602547631391850889161500230185412326884831437765661091076399702382993730735692449438310040715137188813327228933082779020680278844279247562426142955576672483460625209458220974494637357285083590855529638601027716337447392287374619841253204789005275754353924384281844989938873828538453294515820169621301557736151656804427288484544444764042487946155696412885108405943663342947201602186054422171682406647728185126465212182677657833139188001304811866844275545077252609762769527047665066828275364420286205034608114465585662396095468008222714047149279952263741941303344454355388080069590935776966302624785873578966699948079732758306231000568847961977689907056111583226144660578203628721477387201680478239856598529879849202991252753394503054981442815633978991743625518848505082526789464709225629449282966391339419609955005026305585785646236485562645347966843974135488624958472405568213101339000022913416807565390983026377381365009731197782600094671673831846846257384396667237696718049851954573126479719469538671362270547577814787451712633000085420087403599954447582789982973597596400281276935386633501609022754700550638026205558541174355061225747514377629318162589484546933501839047026478525610433806852493870556131843804265358358590331499990195853058374124908268239847055222398067708172170921871934475734577997768292537682382857411350771520962370307081788431515701007661911367036540907746202810508674136582609359399658464385139834243438550049784900208657144199552949494052444440916344834834135158072904742418446717308501688178183108531547132730278289412220469281422380124413748616859405065703337678546445737926615121804136178633032158672975770254573627739547770843292426244988863818875755277939630306181212091198508761305094890687360970444986782171860452601598931430161506886499677139072585910901318121617561774227246933245161117856704170877710665923720708787293481584032202133528123977418103899068484545373685848939789451555056787312578542922664033821071009240110697320978670124251635352766809125504040142690418164083205546301343108075981662711592731735077228128637050800656881891795906371784083410136460417117289805922863033939540559727937452368997896645725742025022796460295084795537150499801642289453474304438371807182839957526136364540153863704847684950879953429995778764541721612039933647275593511858484378499015611652788233343584968877583246400746468568569303280393304029385226059969432154860811336054555760603082463424457596224324664638427171424209903991967911353758017952890376663468481645999984585587808228191478670178618967258745383525977561240923542885105682966426281382794734495518424674105052902958950956827909663105850295670490818053735963838706305060892987681500699323937619429412305805262863271249420150823586554060379494345782219784687055378360549633252387531088055197576372602750698003469761536089110718568372589270598080196702966170065334192613830915269915467754560984950951201376628833477420293510674982918528068034409415753993725784413643668280522507312013990563674640062776666061464194674089211489014561000704279568234497572990300876195226281750959351772191860479548995045133180640776711211914942031758215384660512335749856953956183355166931950374704769019885119775782354992427915544279641422446891528190647984169677441172312790198734877914230813594193607876591982765293248293630542715668559522387302112255378334395870040127721019161516009703917910352587612616973124005924016999570208354393859473544114114599888388838134618469959361434593136829637830067732111367449555387821580178078010853690010491433309224563697525719950689451384340872096808066940475730113620562066522069521556824196492879452264171762939244428045715375977208064888813424710701328629489683012836612632714423434707042773951919067707941387627404656475385903571945132945772971836655607565752258296926337741119468913548342771795945352868455613548753742950944948439606918285135584683552429922224623457319145558756528034448492290868252606183275996216262073948432394259501653720110690102251988734642019918645513309969890243423751654375338751826496568772091330792541989532489465233591203028728055478267112644049851302025535029024186707317995568424338686188047114624968594183552493333749183819897671307114933414764072075917147880366382334783523711611761136147512741772531740702270674479319835909189816608308080088967670451463852868921967276423701020707138605239515662400808057231035278318368144938925366848823139863284655137189592657119152004933877877317692641613890417505778408581725138291400256759690250594289044584769232062179891662718736843194005791742878835725653947816551118265029072250964930866164384562228936170584815243780554815531157452728255940797056733581825676532984658462641253605748641959138005064652269209150445577897319314614464476837918086642412772895312968612774619124887349855524741384228965072732599691287358067311312041835031012096108390326108564164757313071773085119450005417407912423181634257253220237358238125832795278413364904392825454190376908470333422743907791567925428866755975705677141091184481171763858561990732675880665019536509186660083140637417161395010839854817249282893488083394458167487110671868902133264109946228709617784815774209097183999138052153015407040640909294660665530727872558065495365738638886515218591978138411883829238441202170164963409008309327474901290963012578785353942041211839282954092922268175952917619917123972952984220049778246979545219003108794303176925089598997963559188898838177512434745494592962889874293455317732461579314146192180792327571478294035180895435231965412714366860352742207803648931359507559720985362634662685091692617181379784235768635971259855212066602813656337167248137698059148434991384124093329622937727743187093410383678965275387246514384791149793194339380139202913881183847480665394289749272387143668823038987329717494965364301127724099126519603425132672605357033956822539251752708437731470860991702385165532298669296742778172905785235391252424007603552379278112906118984211792120590227812515606013026849428201476989338526615387930377240916986379171073075583507665201025139201707156917530863533712139565817437987564426491692453658490092398196873799001177889178184315626857738918960979269826450621300959867492706528785287056167579538945708849453691712108777035249896296878233855855513378025116519483113134972012948471613668287345015736610654234388845663877853253254955370135524597581835489218905773636357507345451975279992974858044895182733779214617749342083216524232451794975897171453209096267252310293584540345247001703403252417234493211985181432496352726368742089756834201648749223310512430400510800187792721291790509120492726134306797223435317492650914346690697353757614431715048781216326080566461878102125767441154639485452196939031608818560998452313884052604495175609275188390534355996363436475775895980864245582340649275572702066422102199216621128960204457548636109848989249385271883568821002002166291154211559216561900617159561003335030954854651001564255067852761876703449368247426200118616116527135350881530532620568897215214277150713710815015507006472095263073957038438075408185089908975067892806962834238539921892363139818902657940959954401467370362119799928327224736696614892641846528683275785676053087782817841757322917235794954873034264015161201169370124237630217200819546033723641606829375447657102785137355441495926581886493802401530364065203447304910178650498266433407938680077160166456089203432437981318163226631119095500869133485742813008411647498586672019325293558390282796111354283851080769939263942913482386806414914776796923981399855735291398817207867878546669646079698468450804265550438462252578648675679652350777130238641951006204674995055882372526701244845378741083938052790683549942776866266718027194931648630535614226778851255695666353917429430361582942441103033224585593266841962864690981076899674958353942329069484604118999707099618650500986517436190075840850472923151401284158116731699544723930389161616756996539146045629926157795590969333929420772865299645153200160808628628273632780289333426664214933692586174460626478909121968869112018478599407073094912689879814192841742674671739056626047527083452730048405404389621052536526473002045172975363924116671050880010297814831419161580665975197142242425237973468680686662920932325811122631750907023947281844455433577676266186018613488354968436617729367204705387334383039912273422492616041885369020040226095939950040050705284178140859339291226450988374335291647324832845695072809427483804042079268616703343725134263987376419006294968063258858722022926129080841273375704670701205882328359635767314945711831194399757295651490092070843826892109145258269853824961339494216906603066182955470740470693037487471315303415974162492070535345758390140008070189474686528815666147830641727170179552932802612229200601465871934679401219752623416306802036211432800964974307395789406055516417369815819138697471990950711499584942934838186538955572784469059219913962594688071816850804857970299992961212202288026915203457188007295916404839228366845183539585384279178488146526822349295471517130184839123216047357730115347770961215026339559946460150824731382890612894840074845115351997907880768661915663580935297661178733116632299863155442101798145071476063485677407030083146721176628976190737820927490435752943563435769685006352208960659444132648817687519083315277989273256042950354673023835519777158790571079092096547964820991498928019156277057101363790073306794847991446727553151916352723384687245186248508639019073617082808650536064138691973978429050583501354026526102569104593083150624888474652757989532621617980034890578891371776976191646812918162963916771250203278369588702499458171201974859664874428436915687911726154467355159197902651236003382154757878768213440678158939031939781128637155122802107952872139660744971272235524491293203263032808967002381018873440873353601326646810881899871720251309801967592063545008728153402002950398624196663619294440423782348263702525537793602979966105643359998393357522834143569066797476129056673014194816930771942544652304341910616401670645063952642854329932223757515513360688363975003411004051262112318126001203894224012975210889273570751902224746297656934926698835875051496600799694064267201584583993760939015833124495122440768135814358296849636982465414028665809326438178119751901467737415527640787169974800709299999692291364430866581750578157007021723241222784489037211095353356904544937535716039488970623811696849093542202719242551116784396845473684844032478837288694310454293280268415464124116906742868134856672864350938666390672117768566476805761664573855105368821069965904447894301527443677852670466641289722989275772319586236147923027239039917309154993976394595180894342488455469259785283146146539306214976153564208892489574989572585721528815727413662536434088451241117391724064874949297052603687372279202521128395055589838248045540201964353434592865850689953634850218318811728885204625300866975090180136877735372305054540663416138934133718107401822667564974042511475399298549600990260378798706447582386513748984321341497187035422167461036223568854273105321978577205472729502991983157555789894278097196527360920557675939099442001827928004666555344798376316022109535773610185889987637446967805716542962852746952842381985443883298873648188173379442174099903415830729448903808506515533508537692291977389313090946396305466574666344491028287796718388061381249780439642407501125089152831510451485973880685915423207628096291144037995374989866688111508563581134170754185070882267245956702588783793047629262370308149506743561907626686804209840433581844497358006618826377722004706782444054098522217057145233809550172827945325441727632806887881071613258850796683974273612097655424920000286687982340362254421615161120818614422508763703840905474372131040125801161986150166325006799580266658484350828267205677858016280925394918025147217601337670211729826225800328925110632815487071728691754919579614991963179114170230204575497538679440785767707298196699651843415000742761701277625280491899681641469042116845109571570194628588680785225274590371824574370630165849581815676252931600839987985327331315949211962263292577871912266768472007544095794052618096176030023436648395704548130335581521126792312512557237263701578531260844439770857555779202826567119880519799816598910746594273962864037096955511565658825750251190315985968958864903571862758761189108247154859869657831549685607942121529960721150009242567320803962198928782920691377633225959299105079984616202689562962631908026083755066312446608609018983083314204832226815502475253116133220869297488339611988946945945337662446458491051950687913095664773220398450779615867809952828741025324348600495134301231679522425096603972007998185113336392045993232495220497608728564420635193939322189108410346980089021096779265496370323623388420695957904071715959194918788997972818129723778156849815857356807560804867798909935027856333544136561075345221312217445949423771058027734554364944467836859528495109321318106449628482468050257393926394323863918183127590087243014807382297072660062111562274986954119313248599485670530091490984835614740910501699293935116680968903095050476645645217245071000122561350398471750859803151206932836647570855529427135560591701868599635462173261658168880083110420606983610861838803023033110009485426521589604987289733780539472429800686096606636147949549517587151024434058731958972472765706036869683560552603570937635043867337402207887571316770805452149344369858452067540223292825703737589684185795645954104683036837893382742232981793815084154330924068169548823333593439768892475132829096538448663454482038811546677553949553887157062653027937758198452225455047289457249352079033227491494463268318628136029801374655635215378829710795630031625931473447400978348626595214236379464246610617297646007199567395341496537614909759317037098345074140849840432232140434324128834749898473537411171773151206214265949106138719288451000507128941702080051267243020047245943365750634110763572775040033236226017452948975371554417794499516741761217899409414223189521923809342715110081608222127319123746424055263602377816499751800818743487973377042137483561453952389147190533802660887760491183863188342582318059123504796066315444976797616602756859668448262388504494914027182260657434807127978863230062753449928623145304700575535322683362832665244141661011656154087577194827430414971274115435450244951946862883203000457168764259119709423753836768522816698642062180221921472783856333449367000960069433283514498402909924957049864225499712737080563414838139606848790644123221058248368360575716941722718166657064704170057784137806261901502357247292269693467503209585778324415099645158808453611548946730934645971625746153101097319352869482504825698961952741441038102263449264207599620758543647107050027406145369477519980611311197108216570285241160880818013653843337106190264607355148918794527453462755905553872603818792033559253317824523563851873078460453467216342966357313482171390477179978237619821031065542601280562540339229581722016123709392185216399195908395361953236683178193995258228410594958675117837550315242326335378723111764924803194819150678929198472284063343168467737948938029866060400549314581589681520106462059403066477515273901322486638040002139575024562246173177510721396672311873030856455084239629391401119066515167881545466602289271960149014611021673865343872725787934507853677058496104156148656675207159962410634144536435716925647941109336946330728955569343192092063981234504889456598406145451146081729789842852124263220010217378978751670187500443458493130069502474151324060032635398069752663729807072252116037803609610161204045819153991739602563530607970817462781009377044303252644115849005799776781831150655498326146015589117269540996832991207707222004319726109257145583187194363205192999325472340210650426008621388209832310896809093110159251971365840159051468694160627755921452164047259921495509954318256795044610381763665645830112525305939444748761908140250555745943605892606102054530061847698420759724536412096025505940393456742600854100890949114031813138495548992480162132035820596594709471390712216672972671080718973240909398222556047048479251543714758956019216877189257593870759263879004829651234600178666974571947653675013273270747297384220838983257051322767431472756029680939200829154495314033324308815808840070980582208855809335510359271147629490054538198430341601697439000643632597978003711014140985815594471792483392844705709126047304824988591566159490885862968144418598182562975014274887587328334581684862322925543805860038696304506772856188871733458855245373066768175035814850358032067890240438247285038015955902543349469745102597618010450745372523458924229662999409590025526259672397354768031529664291678451287729022124343806130117197367120415456730933180870917926463552849439101329883708542401076934641922307333577466644277598078480556170756412540316333681883010751708677065561954870249646186179080120570997892758215494503648214908269468441270121312988709636709164417872970665618510659336040989498417878746956784021466808866778728240592750157539551512601199575332159123074355115167130737056018984128269198856511557538890628291386053512212436409194029024828625472564420290012992100382526975234226409386047995987273649160970412705157935365299908899123152568368504483949419633735054165904327702578293090290061196785383800504995255258164031392378187378805866922106361456421105183847833233860828873033892598515404763259033437127087248929845926893514389980928175600721867773404730112591769290432849728838247929069107076154435349909830329964400295932630011465878188002930656432305056328824698328640034194761126821406915964881613133934599713535993046974564847093780107125331171090786484024444083701075300024300683486744444737666120761722139333383485459805161144568191861729412190890502746049992569849656759896865968848736511782483273232587367681471371241499631289717010200623443043559747249663436380594340524253066486024770748660985578256459666799757282270546016762883882430718050191778547947705819562469565596079250648817803598205924901220656306451583062929597551882948614720938818248668821320763091177172145376897574549317724374888552320299330858986228304544821578380337527284840204295579610298783361943179651713573135349663916143478961643869471280381573386925362858406337854557972523613359364922453679629379998826907437384545613024142083435748103050402178564034748213522716148950708303073169711934834633636060809181612011629295570717100538789246541743702134717865505888364284230956952304373065874169009277096549135689122907029418010949167379822213953494382013701139770556525750092167198780256004027348717123493324630018412366721822198052281103142246177936908759294238360777042301380607665371046985905922167157087657279868034739241893012182626353859872688192617933374355033178332293227735701613673515985811545551676771781149167666318979631504127399286093102000618579626347427311632318434725012296563024055785482797090847413365565205289027469632832730627880839535651270294530344307933784401152370199600266026857987165124913191110122064189009258592390940315235264114852982956297771404266310816288715060721447406072307954096809411711529230300042752874173881011877373285688334680418680124676458870523787735151491715965954950612252440214827562116664619727075885298073069067195689179136263244871329850165718229588051096665545796236769434935649362314283274848571505122812282284508137386230977942789215515263703502001904339924399642268894372218500388625433096341026295077991102843915364339347624728920721687453719923002605366847163765546137462095298304314730698046697968456519290372799846150045391293398646122538988794251718367750467773195141709547674091907378716914032702041586321699759549329919199278753168628183550527813648924548680435318120020501471889964695217320971513257012777664020969568763458412832118163270125787070130965040049873896697491387746569387570933469957915388957006198214342909890168197474056636920653901763499142660806861217324115785032907581457726917614883795353652736404527791912989314858790469291086767543864242846458435049425024679572859032834583041064880236150110453931596035432269018813937326130496873994543569329594204538260631919676651221325597370448668924910052851666434998377668811576669672633043577756362366153568408403674982075526555986306506181914498107235028193133923054985819940861391643355384221651392064424491093888084812166612148924049939778528559143995636266790792815527704787885162863999278799611154601853168444540928725631574673037315574017692090819819317561668360820894426331633537096475020775684347624052824821504399187577000468764574163851578516940811003950310444860234128462146795346993753945454011266875253870851493124309125837225911790070296582271423142750203113722649555315195070872725564698735276968639227586557146241904176248312825324315149503164436370931098712769828432486077849887738769675127257217188906983000617046212520252456343158020215997946761052445653363704566256820500027895955922095234132084216013974724098191412594355225118583644495513476532416231303611470445024487989149782945254167129223159479999429175132057258450005149310302575968810263154564109914512653692131649907881054820005742975762106423213693169596338941090392411059999383847845349373088814430556491589375612783077224920250262643453124689064506508886518875342841097845438895840571638271940282869225602270871924987536161606742853368108156714868031330247174318457098016947333509333813081189321652089954154130516305289116868229633858948797189454202080654283346758497004115271615944974352701169870740030482586112111067598794981690356740193634646523262393726982566213932265971558245248211624376812012249261776567382129656286521626617929002426839707078774728821537381599879478685180014132286395447863121051967359168528686728793567736313544267334289159437148530214067284401450167255276744817919948579863363862119469666711241039992506943288294060269127425214045562251595415644212721297099691566947510637169464218933952262225916674414810225073669187448304485711556739487403080086263185331769640017191349545180737553459965562764097738986401860856937844832189857670486302250740152574947883212661479825183548115455107094674866196392860924520020343988741079286244725267183217432137105035261480236247598274062575501532736028185999006063779634255174957871877341320135442815769644858990063873439287080822153142948358861656187145400361170451589067622160826900532725301222355749356160409281442741878982308385714292186801945122655226464515389174220304982572245192515058611907601727469431408677897336936089030401975987229630912703573391076947793290660644709376337047815831314377623247333215259416417618758670663319337631219060632357398760467581651026813538167219438464002390015325444820985508116984749460938179603110892962367084027655499278687999088130042880466044775682537103588767863231357418629197032430064067152856329866835313728504616873115316208805395003727214728175441389302748297163348045984311785800395014866317589827811500808213862250026733492845387801017876948078776323404790840557524217460339318818529701616178800517527160734995238008827224305306188132661447377807913701044385069212471811974069039393381798910919418669970968778042270226688627432593933916158754074272687186866670687138496560632069182840006024650699181378582208250401753796159654811091381282685448014350132774186261667483769357292619837598811713402453560618754092885122843339887829387613679743707080102190807323498307299511105606782526959831269909813198538309890823037696684825872296327219891802679148678429798079241183075552873832218151388315066319620324783327985066901890549605189627635961024440065753944063747880888597394747876535798800811287321575617207080869937083850662307600208055520969565291048214084610166864564356694666778489885183889280805202078808262693852329618256519083595243848966118063234362511556897576944863134788540791307413708859175159150879016711198737552001118930722319353907835585206308484273166178604171407496308846043882887948229299362101935120745861377103696107339208488518874778172510571012944450480831211229032214861152442486718173332095924598070248156123925938710014072146450726702885537963276617035727213326824970897571385027021185155697837327707606247068914659410269292213970236502364219013439539393327129586994920373337377487969901528939715700970752691362683906669739555893682944326777453557924470577000421594653756490605283286364815251085133874538708460461827566137824100795162363931415718601361737538392461490670101236558576566341712237872059918859722405364753253612255340671916869483461984652476804161759282776682197978715241845898937244143755689748121374925659243149644521731011882428361774706151588858526861027488608228786978541026941256764497025317930725703413826249773276492788554990040601773473645838539432239173031226210062049031405677326512200736000627937377344964538689859688479860696466471650893080515404122332787463793419041025494933259934816688954893546856540989212265223910004797949293830154944475782642499997138181407563845196860626172652916081182334015307163480617452239966158027809469981661620786384164125736623095255399251554924507654607153329831462669145924127847395656693854814755691158692089593658881548189213293437862285189291307108361223817940745223535206500581648823029347486288325080386816101126444405559878866699969304092576022646699067308041007448500642477093934169672392448457371237652441140175260242992535556542242543645472176423161031868702460690264817847376626976125969062433655111734395557849343042400188000259179442630330703050821162881113974840556797589443760834371557600725724047926101845559913595306815033863797561828279592915876038237853484155665976273360767306004246698036556352535683780353225771209587505435170695954483226512415985271565729384085135867119925861920897182424174989401698644882006620396932891735724463700333572032307492371613325299820000122858685545222122294966745347548203985564739064979751518689684194966876761670557455380632890896887176963437201614642860967863963012306930974989133360500574962722064370388309586842222723615639507148949656114870494995823512589476586307291726482590427709591509729640242033026310737213997574200774233750629462871184196973083820583154400801743065547614863028331657339143943315096281795064638657574744847156309405911585857205790916107441922522196073948059439531408407442561853969732509421326326070872639319979128957083661545758101105122071472366870478749365008849887088088270915308362435573420099482908089605495657851605322988601451533867451043341380436983470505718839285863501248900255722274978665109406072581161527057160817142031174840630543082113243954610747076049349271056418473124875929951504282336960385048766306828382693919448032688306837774569309383494950459036752765514316745999422516006157925643666144039988709010637321181986500352429968866186489100838462460296008567328791200993256297464658051153490401490346411954207742317922239981671529980990571029955251608813389924230205336451295413205682796582295216708390010243901382992715003017060072094959829200213514572545232662426536214822416178868243465930926396113348346001390374130663260668130935812593069003092340291322136772489966761087452102293148149675193399832237355461022125677232112571440519133608156413199744234200366857217951222949775939167762120474101132548020139601373698579604002615734308467843308449933629032381663654572593503628411781928080515352007768390013934327628014153500124441505076654326371938118047229249405795757248897466212339749784299312440559020716890337395705084888828792960143748007246436121330858501966235546605147519300563082704093428329878880332229588754830205986715506841663870444697714175464447770441236005962571858251544660052405422050244464442473703904319854602124607613563689786633578121154003755799579578457701485499687820091740511456189273235450864131632123733956824902307928641859718137011625255090764235098713276710253931281270655118109219541018729243442625305600288019803844920020610209708168059845194080228939840825779417837640044507142695443032540888434387186106788826028114090121028821604104532353956429852337385976335703559619388125783828509988783706191064858955964889378665679985500491410240754616540045789869072156356170192458501356131697822236568883342350736333193521115387604590112617070942700842217244842019517979954782750050963531982348787998821996624658108772188047572974160850323180275689659749833833999047180852897520385074365721339029865585920512878199340045230856904629253148877821720919076187785114332725603967085182907548315445888918574452570070260796493151370433376412680280676194458430264822015874135825051923674012577751291427910288334475425828899811236077137906812314321633947737070523448134968329867101099168402274607154246897881297038117375836389493690011866751596407592325193824985989215931977149861850594148717467698732685586611522944007952060149007244316901157017696161423110706812945130124052487819124898591565367103011602528005599329669967248523355784102963016000221300242610542406594907987599152338928213803763772449606939146172886429057952942812791880064061604035928368869390504613280947602937842463905314027454074067820367769446237217122846668431205904575088057499758223825029069679498834066368887631321965370492872067834140950444480354423202927004659040227333956278169405611431868796728535740233743198454781989712945032132015200368670876970995290174079570533624944841878873754263870008487239086579025665644994392023004145665089883474986202314303010697730599510711700460983217885787363125778834294951282415149406191334735198711190005039260104892327907904285751783190616627833522262210835184673523006430447456019740974362249676940774435090603471557695668636671020373206717024363931810739356191400120347853507081952064551000992535035204737818362412510804349123276656884504868326120889043152777976274011889739724276388533797529607166338405386411344285522268901582634999706115395325896074155421345822035027733361814015261050438174752568745671807565820123995054761557231152369953055609232217973143381781735189806645908200583785226529922817422375589315592928158230081336484067382520142854542265647559330170417523910118803207930604156103754304497063624889911733405696642420662290461113701366488345610493731280184626532002277114380761754979861869937838840272542535447124662503927198711923085665915367518664360053887949783862748651201364261196656245300242452514096754480869249332549855881532576536766274531054610101377544418705126649897138926380098615759294038198588313100800525459944660970937815593949850378416813843965715563567168345929437229787998126182643952801061364344179780275858153992338711318485764061344273210032090093469757918514322399148881874542006631141488481423079308363428719933868563545239273471977672001779220032922130108649905168399807408704750294823382537352314687514179235642011966386378819132161559711936378749472345283023648483827765073604928178281551502204909746892523716995929718534731011735201588771627487814782966901478554551855828733243904497012548347472907458792828081961441238077127231135776631511729704614102294097605760800996237689539954292115310053267023040553756141253577645725386056955033428404605490065192647314705564759783676378549300644721677555916564322902463980835697004076524799578914920101134877395578405161905509386812162323477455781108026295166668749467453182402446530935866469081465043963458074903285372634896683590569501306054235459571937415954781680766905865347403377006464013482251204135736383208656176895160725621020121662009445428161270124001444964924267469003589970582653617758721178762828904393173541341796561281663970160733044763705055051515251109487457669475402505906494873450489875181631337982075781887308719125724741781214511813379527356450542447971831806619235673822400195590696147544836209065426288777067468005731216957364921104519336311047975950312194252582260701511224410608185787247885790991032887338547673485785229106171899462948395450289008803119431370944732529538152391683685370007240759550986271524484307823099147469359134712803028213061934535208721196974231518387450914296230204268059839535498453591387671509695630890172908242316896646367393485313578423778567592912003632617781391905796143341125348989364577761681969358505216385857996052508031057071679837301653002083501038930520321802219582861975741756054929440218378403647344213062074011393587955690053503761903904864733675630410949535864934431609650475169574809209754522619401285291639362779010205793873320530034171021184145694535631777418813603050083399083095891897548818822537351893123267811058343399319962540636972962352743602703198632052537523317373520177076214452169275191297587861115170221518195234769894998908305345620888482714482715015250658527601759662225919953491160919255496262451722225966605069837884922527380771889744771568360003797107181404302544714380458671177944625011764783473658475438597702711345658049356729679918774781331646491012130343254361274621873649395375850186426675511109852395779117560844613538445344152978254114338149944781413900814894433543128975210528286756229028667930312962189872093657439620513609811659948685433023978498672164455985236968861698335781636198205582314009410086170306073349474837265878147153063097014817711655343813475589212009010515864770904457171790407804096243929403406521110112833430820890238306830282123877266815843595836021581608364318733407510793495267728699881612209358078866202457110776028907352965118783924237075666149559749114335813711909954076235333704868924023368068424298980310089468745733971157891481550928506932175865590243851981310730625029059367361963299598578984448562921787793401327230690482394729809298146450562937756098756239950044088368218334106756049207562242361384323959095834801407924235309727091781090544697094463059267478267155585372422276738570557459680077515966830772160139490514644803532754409965347574417028482279175216569742873863640026479601307646664331745733118138160939684240377419601300019473928899585016382377485268770229015796403456400000000339351144187936002593698607848933542280349226360392163868660563547006260463425757184664126321103218335798018784240203657412103765564860953744057681719042507866001568645930307872068122411789721499292890831898851016542589730143960553186271731958795538715263940241451874033545032820671094920153687526060055885822274447422709738654202765765696837167409604786888510726866763270103660863223073833477099521691431646829733470841757547375404510735822153695860470905757236140615175863371680443581883457866064560169766080830306289799703986031833243432631431834703523775554037112891859013874323255169977420000187173407742982903134903062080498872694552165458285528883376469974658691722019209524820351008363723659753326089932626325068747130041366841271203315182750345414198965473469271348585704228151155537652959763714498464787063616187005878501502546066273881010449272545899994845193245400213228759415161858429658992251581782716471141691645726891506401815977363764285383016159605503049961781617857429022593373205456685908809976273993115344995692474171569881893640194956750693046045601781218470974238915269484572979848709226147498735227144679300504472332703673512422611834963111841549699972481364418997871704599964741072096605227724925776112778127060766228555430401716299155322971899326582391231018534540954866523890830195621116231315276768306064125270966335409904270960621090052008546159929932147117310639412016412160047580185012250345618315597772113102672621646029814521165145473367320624159691465372648705952218530441368163655232763097221194046277513855692338555083044290446195532822802442940728083065532807804563840270634146363282261866607617516988381507884259884943502834260536878865666711849872836062094252990314249121375153016901889807582398847772141124630354686844855744257529040722105103877411000430538076788641675930501192409687062733903951487437138133485691630128026531578697067202174545655561117070574846312416285589221036262022431846197518338104257018768029615479774825659119245424740127592461963561383605244758698552379909670463242619135184123735089075083287335473220938096481857390446577321205641183305368168702126381406452777406204995766088794607006185107619602661442882121203787390059205236119230790155169042473273212161414057049690090642939404161749870361437703906082735701353574328807227436794446266155179102293731924142911479583611491422596909030901967278329647258587064639631971693610306935485791987849382787931499046760431045688842780697904422409775186746075311508941757984053329648268858597766084599783492991428988498077908523169460935421788493582120537741961056091477107162639347005596863435583392249335500432156573227733091036104632884148704177994111382549230775770149664592853571392755919168213574176394569246027248011213428066468343747024556422673383409192303350354414391752902207584948574731629807586610395831465901837540150200942700096222657512966397005091541842031287262937565430950642223805997680973450136934172481410108976626236326451654509500262582117083286218818445128590866939903387180284404531450532199745291986342592587932616170950135899697088115737453439711664356640995462381981226169358468363508919087898628606591533217109722454631209319462794378045067890333871161048360990008281115739889587628352581739371365287647060500137327640530393258436618563020628992991125780707679129505731637400788972161552996853848375646420597969810973265175408323056722598218715279613213317822048292396554676923475332984690009191995564543643357729019253383026548600921847982144858885686257112096842378880799475540893445372788377400749557920921526373257358281256389673614207463073386995547741288429014364800724970980902200977195247310442628458267288944832515595790377956090962547786238167620794127980633514379595274559294213709152960358410453571397961442999957999883525697397961726114763167458767171586958138572683540471590243944530128793116871876091414756012761341810132549623791237183848621548787209598934253395344194341307725491367903809266541067487961946521975378426760054919750251007628271308886423403853705791751013019510984222190778641303612162197494369935425774198048387363354751807405262846983683985920530951320620559558000644749942987905247625573537194991771514882353724741968299377474125718679262156827947864210627287370566979105318313835286275587129864387357414370747499019604891284772835522450474150471944488190325793460533025700401543554889476519743716899722621719872791900135195841298315416282423323601152560095452062136554673453752035784494717079516575359128610113055074732506899766163682445118900270946265067540365704220709265545219125447539036128256707618156819566116430550437618977461368232014224866478667297477121052779115081621140535393261309368032421843246951483696567322078205932827374379198495038005079945395092503098956046050617814560475537619828148676568224134392028341075207577209458083914915816888093195403505113321236735069368874162910896043209363978455588221566280574850039092598635509500868770000634012573401285296255024332023509026243051119688823168170341045156173523323451952235706982830583416494945832718181849950900623620623211692299929343766765705518152323135838048895808299564612999734981397077338621976623876288604149272957993545858948733671557730507679949202980171804474005066534825236788999505270842006620398060762111167532499931462815895389959894886230517350249286961339448004532410751095048260056024761616877028524100480487418824085159481368294561473269667813080956945910628574934277195390609027837249285663351918412759009044854115507732236263746883967101678420627884248379254449651754836292460274168828000712115546444197500040734343043275111587873240131184665623591498926896591338149320312738157787016848941172961904427547891549079439710395764166791753591015151606285431469217052391731924980891381096030450500443355017790287558676940669874852122277918822408339990217926614380538938397476652148676068266220711916730747726780169161869156470045599927373327916825088364222557130726233474579744643489238113464963133790078587749658345436093179238062783797512400831814087716002640694971966567534079542266693255971338155299754675915234445291173172501468050719413627325934884243742918775558141132621654453932818093993859715120847304368142915683960616525302312410945025429013508550448087969351819054525846988226561261794888961654789093750950590594002043982786650861157784216334083457718113499044410309724508311295501750902760793261102612145725728174871266960719588897848554212004363651647675623460433432617145246826477728002406178649589907043370017277525678080783613262193023814657335433798834424419413861921810917298240530468957817829114017143835816374947412076408955418392637384111958066765637269504512195705238663268309462875636682011574491880211924118273365900406422212114803054398234175458581234273066743129909449286575334991625469714453721438812288705175177279907609854097871470906540597679420049526540097346001900373085340133193081216814980841908638366214468555862214048574261594454773045181302806415928031261137946247040080625759143244271587137967612687531259142612161517594926781996876536501632126271962261045198137037076572962697952875425141728671570285938283580267000113907733626766887355176359334231783263544910136788953588090337573222898214662155983885871824153075592970602307589917554132104358609217384203495761243193422249491942393444090869349942071651891319923426862703786281033825584331975388706923437204977205634839363115463206836301508586867458341210564805803439788567514096305415245665754599021678079047317512468430653334657105517088297361479075956165223394691891655128009135814642958613427527933802476971657061952734317734912059081235605014774762600225831204384241129263009149827906890680477319455204647618111876820710305783913542708370625829883464847139650436410218717575762115966028283385575384499704074032656413118390045430902509784361006894366130677058440105122713626091379509391573293059931964839734903438864393659504966999296889532570525648082297810158101263323819440584697150408296302195102360601625121112842777420965951581081191766311419371087442390050961519175232213932453950406404026355101466328051242690619925840184136451416525998449924276055838539039700062353761334830941306802881025313159712267372768306362563920278585495976430848751988336489806726915960140473104573982483557495398155420610873366536345828146345496154365012335699735953732121957968258732203053721841078723123167867770116172472013688987731190533740411085029091723280883204650690839135232230366509665010488948482347582793959936078881295892689578414244112123391805086672091209366533254469234007313249237099747301775327876345509217543123342228593907444472462390914068308396156582419233384793852972842375599984213227685396303515355546870680708300606631205064056631520474332762225090212729514401067300154191664622301308150582947856463374308485269727522877674073632697149997540802591865511894576161541839169642792819938122248858594417320513422298689969474154415321149998038224913261843651563419700597318372949199580563602952506212112884183192928757442505190021836948020596892535018119679750880994280715774973299359373222746006922892338112141544869552008701210027021798668237380973324503832049454274327236281029075655047210650728299749887113058207734992605045021193653912589646762768086342068927740445243098993921053183857622046432924578259305918483529868109015717698427698441114734153442538445518757739153052037249367184355678327779894362562011521175087617301383466302420692622969727371220449347401661674160701684477347406716156138205327046660465103490601299550203566369969184588800068405853486238144798704120709597992759986743465468586539725604129184940278546451959000191271140504119920383149706601634494440467564808048150906952985868194997701294771251281675193647980242199719658233950761004741147349956647444266713331892263125588987187940898161377241584751702322095185384814195457602770298032619258287835042919716474828010325804746504743816704284366917468231489857245707667892849766283664456637987491463952242820995046381035283908729698477291422843010476192178353078532492605796418670023843431060939626458426039334804605706223341641928053772664409937795482478201214560317159300347006130893436134547403282817153575710320472045663696865440855553324341961712883038742988008519565598698455208886773964664623253326317840653831442614472119738854616335830704816762525257122798483336484999736000670174405355338178223086521648324673119308511255924322289075468528914109907616264453309731123428194848552858285228419765340709475935880381380935720313431769591409343803123174241827967413115795051137378332818597635455958029121220773461173207476232686681115190061594962255763911512451240935685858144007165354075032977768609166718651379604165026163299645266748589342986472418860827160333434940885141587291234120763417403017217291465446770016397783096342924684730387675599117397111928538105530548035906361967843877321034167471391489781795832778043908542256593703198263705753602778838006044684248547226057389175884438248259326859781606692893273281249283212620508301534651601393984472275162804872404391806122917064841771691507171665590468175395011561763052470223847076418527660847647537437716136430111923462901388873114291776461235630819269734135896226176005462187771484436267649111454480182653179678761749348644885968909082452268698195157549997256989544942613426041753936997151841171313776533300442103004904472283398306291198824367647922178313281990630476280541240829078599213309401165428942903485799442494246228475482787673362325431663217747030582580807555267514893918548878782607313738738021969656487624299742502979658568021668670685714457224586367537037422922989486849330353253902637002046399186705350876956749874392867615157013510249101210044183141777613818895292959869231815868402487182061445168572014219103508618546896775243021037305462464694626128936674983118946530633201658919378704854224703220416545469959897259392802594812146959907095982507240990217886530736936626593990048971112712730394932569965288756442010115533151613273594765980176214017304220386165136916048302971182813747925938424465381949192559936786960746972770864529137073038153016623411112491415312781448797151588573637284627984858305769705427562370264380544098931184670677429990881878264846948565517632205963382738671623167874023838120106851976428544746216795133965538234129587672650483762648015521751348617371314465817316351589008885424274542818384482604547648369248946533828315470953302376459280842176314413984281032629465050434455467705952364337393254445550910518806114338703856536724740744253646152838811428153268869663182329768071671400660102873372208507129270076508782499647979693590740500924637432022876244844147011542054580391072427090115596306064563451084993986634846336230428116254786351739398998092819381942704787612249079356636020404544394183906216942858870837902493687356210849994208364640663330727996734862400707516892159333343500864210795880528063519736125343858047906083103358987772356081093628805501640908740213220973248766669164697091706947957956497159836925319627715331013195576436443316019576325056812352971740516035534902354213821615716917137459740603330173139125313331242728748553195014103401056139503170278896193501915226202398470759967805654789649529458635478955920057491527705666077767583225722195596878553722552171296349497326374549137682036420488775580639961149478553707812056443108346578416443175630823782905418337715731308007229509972870734347781515290612153711980169745291968670147588694548737265523752235230922763239291763104860956174890655123463397510776020126483902737432235499675753818985738648636063292979373112273576057338663646656638799431666009021752419796877402499045610195256763628410113625138312230036060702108426333528368685075788185315683582640842712495906438889804009909259007417051915898675623554338950546276296616561875013688683715637803470333533334520429024320060011906942161865257436461695501935550518289800629772168019090605168810183047726845625622756859029521684405560428066325517848588875578379729362495537917771449119112042236091650576207786682866012185375488358374105648414354447321824914564060663201601959813530046263252908831396574421626881448564265778267684140671405918022875337289961610781480657543623757885922139536216106316107977641644284240286364618216193802585596918500721620369951008043542084569974249608479574097129296949922876533015557549386661356601082553707100810750815578996011177713222544280184077869357543749026218379359516874739850510682189531500431448258318337743443037118230701905659958993984443146072869320135144935500951627734430424388810139628356433116095434096812798401127524577073608951783532212725907401786862554305345986959527596210283333532392922655911011575932329122870684388047043370477938350897326997357824915331205736308677927984779006823742337090697818878969704322794568275915238364386519424765916926633775320832444700837911291264972922425692955280763000024920323345501866429026574941640529948037384446024105981564382270293335078077198331370084145092412539108361276502420470712139085499408958007364020124967415150912105213251210746047231559973107878078630450923442265558884971419715430144012903055819808288530343782629728830909081684704538076274243103067024369279214758469873543170963405874556346971239974714133111674687068774895900926555079798228475147133328735402174059414292772805969960918628683658265643080095575009780411782246289231398288998839732860102753908152566344497953197810997287080172129066551375990678339912016967825630704804812087219927237802973585606793873452741657582834930506168944808738097136890629408906460573896048395640030992612084879258041816714275909348049291439628130680727314311997320325011016905584606456337078293954522619476265401041123425538810729330298705330639286476263880574607721252071384288064451579637384810249188469662722278480684358764080193462837967427116073856286292612397104889165219751061618876784903126344618460439529075761134341980874274347939295679228035944659233252168069025666921596838008068811383859118441491786053681280345016473326215878573714848016096905684638565564812083547288832324109544716304367253410973825968776390683339659333146015030920156315342987827853605629971399967638546990317831913930011247412366159932421015031681101250533008859955664914487174564138234659958134797279188955206313786632720466515113867773012115183195832432208652572459910390043685301389634461294967748887497444265690730163982808447720882864612992707407247748986615376732533661412047914696441280784354065042651386906615537364582708989237578023088277048916376885861645767590352216363565833159283673431022990551328067551245637687265862382656247377020551676455200247369759204456526356547921826263543171167468714835926553266009527722957182014112475080314384114826928344602133137821208223599546038273934797177356557104750778511171504496504290453282093596233503399469373554030358424005573234273484989373630250010674722013746662910431552511515958698178844230944814302293440474190502219983274376015937331226354510393850949045694450479663378019466518625926550818869538883542251048564830160236010925774962616814544955184463241291217853910599797241953049739112136429935835385846764246374240181745189731374809303667184134655120897210209928741971298337724962233068556209394044966745419588050266076925641636121587359090373633343461879674626981413814049968934630398544653527628319653510186504354792610829318555064975756566901089325667145647877233652530011692051384488319694215840506797929943803396510370058785721315947570976544978079733170042148506564923734250949839900830980189513596178499294392894552361183703825036730964452987141737011445420170410453721472222362257727943108594543685532722676374804113387968225289926228202210242302726141633778021096892534598136058382020659618011204281814695938665626019250644701106502427399066155144284952359553497020386484231529567653866937202753997372288709406526580823142992047351463748650552463286240017674839246498290650276831350031995043375811191758867384643973807831696261970165738577783693365849824818469281010724583010205927942254913152391809607958281640468134627778711610965283511124582836397133342129829326131187013616533536598127202790355808386408231236330193695557131274471565070591500961734977961075516753254142251810236490537755274381444425442277731448575583881168899743161990835432271759901790830912872902004881804967571323773227157182283329184796752653622711156392002765433089108003045615888555193050378275838716397833872169964678804871793595812276178406006910671526158952673942736168114564316500259993377866613623041198906511649747734202700336366513616883890900612725882547469049907976074983257098761169475130085798677112335605743438637805951154258495746687242129281424862494675098846764367930951938377401693740771627581208300000842053454014843810194310074135495346524850602623160451502248177675204255280247067557700904639805029377343829068707180736856458955913511464534403672007725325349797027267056753304437535471543481586120255701328279101284509837660911887112662668896658301359423944368901126124461448834983694252922792880339614513927709041320400963496511323894187598630695199312051837053296023800990030387890457014201185643316933056871421664413629990270329045146399685355374682613473648140477439114516840980372877219057031187728879263895309734274226028098884492430243483531038235818128513723205334931748951764157168722995929791804186973647476864496031755995097460939979953540859540106598960324175001309466404560570708595356709927606307810074857533169009975815305038351168490758819408771235911537572643655995020214782434903434953914053271166401596524867498744683546376278318921638406687523410548356148694654282281914105241001878067233617538626405924241856191714109775430442977858089012652726600405830336550685672632366866717559528151979882437830998245282787188383706912655005245164151278034416694542079725286287527419232783367693644741711737781840976764442831225548145404278644194317076791683174929717235213803745850116082147519027383978657121173785787517204999616133078922693923075125867411965836023710758566997848077958349290435124933782423860862241735100887935523252411247775894977624613747951985486331287849458887572338633678342775191742675788692938496202492536521939552156065389676307281505935511531234873811577040335939522178321691131382473887075295535428279738338724807131761296339879945886869353635788876876797512852917972027824550957874405419168636705724597794851160185527140497364602597698728701514614826812227209068787853440787210936514099910720324245055828055000638818442578139346908377746168395768792260549466423399383067356853213479611224702495367509260784480169785422175109844261596677434366308973583280155985388292480883391964706629367809837047644469127168096320508890186141068761085312668890598960699976990427858178428370715676762708392072335302983456407462018793377738887257236445951707066200596758081275737093129424068566240776930560634058952689684769308863721089124100384213306156341698137582263547684119744575888907735625143082719232708151456152144083786388879482998898221377491392037870882885837670882387292745749827630336121275998543696089194048178206214411157792074885477584221511539121541997886890939998403239485322308592911209497759159907837868644059905961967053767329759410937402234665903859136480945910108550435357103764070519917191922438026023935444606443548874630914636530940569525098394670662485469091155146470961271522758500055374016220765745534523327743993295352130531364836060154287559498743797892374494127168082451403812197601535566251260561677943231643707733497477675902609477363278935772796428104833733306503715358174442271622136226767674355817203639129140418804384586491111998925786603017611827177353166216991346495475354052627640338878815743197769984226305516465006772025344776048631242354946071494257094428869563548871914297167512423938942192659125078177074478339998695543883837707567859666966737842823545290412152122825682641340159576171279655893163779978029690405362011441878563976464995333210708745371951120386359653510148622878771512318565745815367695676164090020147598973935144022167548793379173675382283115087931423307328459648638463492521629557368239023553587898083827487519178195965105883043327680149799099629271898783882395489757326505043079223383320208696014188677701089071742233316464449166582546085433387969975156038227153377967215731463318110047876636499603492684600538632184747561460312490709482405808896481833934188548172711051913702734444679901151676334227989269627516207940946791982636056244729246192997761964978505093485160916844777419190335895865307643766592731957920437577081300181416443988231973220655922564685298487487958383354885857759758771664180315411979481908422830486892583926863122323001279224614138347146690427944770056530608650647337836044911756704226072704739135945167309383758308503154399761810525792292899824260235305347408329589741995000493053247501633252297830389593502192846330680570264934526819796527083900058690806757399501441127778769569258476137384708161402430359122929836370907884012072872050452624673469129098459552300410028226323818301227721484505666644866129609413943232292176462835834037137037785085104462415321276251018302761594964776477079000025217003655226686718982463669592944937246294339328101365767598768975588397163685771670042661499928524710633479202498248108387171459378773377309490816363833922518929073034840296885015492834427869336824846923756993303389583504681488086135902204362425559868960672942892469206898692362266474032942065650719717567633041231009166861390742999529179134866714633642901839619250124598587529190928585809659407131847098433938756004367717034521840256127869817529311182665364308716024473082562391129436057430097256090518702591767691395587288855195133895061211548649601059850025745648274569781058198563943853016510531342551511201145459623060272328825036059555617019388131521890572354126454356103121047443553396177742923368552730749311737363302274103799441928217575852023790514097389372307876600621182170809563922064801301232588431506222713693776436827316714404705235094040208922860520685705395134712295720033967179588944683156480514826316608576900981453417717138341963382102078543791561620227696596499163523271251686894180002611933898789461177462309675102074321220158512951171226201276853813387655751469853466010173252014029845588289304075021999801280353254861996737491603961337171085827076419372513417636965205309202987133225479358433045395362752787008775600192185073359465202105157093210614044907253811315795870485795212523461120505209923854877138284338190790169435614220023632674767138941254146976560685252817803845800672336912666892009031859860042551753368284500754625479200611133325389481523018147707763947442277943712408414569381214794262130658986602837390671771372616987962633022557626556625915982981853885923901356862354238315434615985412288801275528672544223239248762074034259939086676584129302070726335784437255773677164657141266020893038747336878666117837115888699708882131439397580625188166390961877983325108063330709272935512644448682794020251072178408351670250532542227441419144090723631204661276032926111411354583918624183959526106260553631514572193959454927124655974880310714559592172789390228796766898114769535650160361321330223177580427909998193454342044939061250833538697743595242992784374960914419046637109268288269836997198522600761006607356946053581668520531547851615845356671691121134136149221892689996763745169383056738515296255383675203975206034510642737999410006929138846827594472458540638846488282190334362675081395140506965809650453566078567799477505502417513304644670446980317248057319832916814440493217766361644772259660904774972145026663498494940995746257323351922339903009797709491247262081484499927376088564157408397901051164911361815919945712081473193180587359087551444682163464948388709763037809519190788601220092100595726843682638625639225217797815260431444435622329606303096025567020316375492995275805687924484018337270592123338704071180437053166935713023266605145566716848199067195482209987384977894300811942421698886088320708068301528217546436826999595908507583569108536694763324504313900316653770318090399300228557065478450335574153975525008496804917643898440300767787552179775976593244937326375799929201136152579275879196941859345409085757344369737805546700703812677644442338672839333747663970764287269353277257146467678677675938414585454782075310049927670767940435915313294325266221218682753695597630949772465411435068993349209201047692894463164977244545398394759706317794259336335273935261548819854895806136790818337601590707189100374632099934603690688375617959865450685189604574859658869594778439974155637530216576192660399708191436052984737339406823518571227454523626786576553905233564147393851549021887747340805981439618248101558063074628450032366502364291199661610672331824948445631606638255830144927904290919715656031431812929600001792980918472325713559036550751404270511675960595791874986354460732820198058307286534371570326677177621917031282555593042120892234738796677740653542655844048053763125677209739245596791504741100935799786175120382696824970735266986401330216488060564412250177564989700959227587121397834650498697503963970994275875754141994802324052818872013805488863354297151475161577504802795371016435668027113527525624760940111692699375340729552519552442991784480016954619670194456830187344622288392988500876321432994444015695743688557673916972191430671468632741306082235767220758124077112483348718183299260818303210187802043524945992029807246058932075478992140593537562388349659402818093480912942585395190072909289465972108708736140016077812245500537975321870400696000809524289454880285284528329222972544682375464078893187250689194449837153562460518011784652462632429960119500257743178259972487812089656383934003237747331562788479164818332660655887999985241678946454918184679852467469474708535382275200102887274039740357991468108663553276491393374200288268755828904834897830497159040116158925337822590283616038701586694845758998311223883851362453857792348181300259890039229207110067495840869906422548234142182029638938647654378452058774242718269550135110075232813330649229572469067420397611868496211552927178890178555591566904101894549275766493227193828797819964529990262418234590100184851502094646252561836233362563029894486674638493130807861877763755529063623138348116252927074733252001940778013081487386688853651994504854224592792782277277157817763916994622418582366432210739562313895621934607447818880746171742578757002167040523779642326957393242709926014850238039451948331019388716334024305983629808845181807448414352736730037896515786259847578631006657272916098835338650136041043088326989846563362185948036970687451598241012833725389252988613877379858919017954039054115038480604897947623499219866026783692137981567980928249310189095397128621957959862298633990226122877161207684709175934412286204189349013441204463824437474969055439470172205817438320957911037668076482558035756507206793237963938887062121895550520176456002429519434496069866867393589165121042778177295432308653792955269989076365472129543951117390932591150829209137905395213902050085190363149078696787594065898689036237959281566903109580721602602255197582472616492940757751311187961084987739887583032586615398878971019845852042333222764514455926384483518432416994272460029215352141157738844808202372967390108113336414653093972481133161014506169944396590090424091087759500498425341441919945783215960098109775272473183385847052048252015966769279397099928514406151073807836494344872686616931700123663006502724722271523600427368371044923142135469453177792458973172014410299112127628194117680212026624701088530839157285158634237047559653039138510235517541546442830375829701177711984042604520878178551640135525710397927553023798725176490704653595115151157701469959359073930094459730526577907384224574414640063944285576666122826588110264269105257511509854766018622377449181995078537562910682346856391779361183841223503759961858693331956901265829253793309787722936744605843585490503932799357679984211156318250558617910183976991676924082373642878387502667527837111197151682863783211440545772678971273276270791589526444028743213509594661430472803505432164933648971782906017468174769641975505471957315693866650095732515085547507317396581491800646672177021998546810579393403702687389066346082857431997022608344203522395861493745931516139340229576348862387265915005747565715176713411374737995102852090215918288874568626108700815372462363551996513440038425188642427463472080458726200071570295470999711139476672105976965432231839021860761959222747471352902532574021025833600952505746635704527625519564183087646888467632792276452889197429366081552664281961378381763787517909012689798610232312088516534191312363081572317129540596162737431850435074049385649061924135118574645070043291075037132926338912423540601083269825837444600860000654045027423989829893731872942620802623581746526805270194622442372866911881240066914843197311565932707991750096572310091992844780130200323219216842494552658939761651084759411595272074792918481695478346143988713417503178619038954165372329942513433863740598506548063725088324786700480107080469263064813266991053618303136169317194281832834319758049871502486719797925858603197305429263864266525320020167957322207558866502251584049989027933636975400191825480307061370711656849523348469921404465566811901106301449569423124441007108474229607849271584798567748007495155484715493753054610823618053748270861679022426135222747181236826588636948218403552907983084781801864571452821877129961258149141605077785587496425935546669343478044971144959695568649638767933889720660515924211111649209139985685035365585577516624707879208655283643628525708514957096702659906262139919840176207308843460553053897272939699353207892487256528898291880171822990593410239582153364858811111212748773734505277458019840202251970058128314971524868875559560303396056536814200047602176175563895026418391330922312228810202719817225537871641492242654370957269057508230786655251694960455778252708721909657466029978229001411442090528003666923390077689986748412652997502858906753849711586765293721299716788349475202597500187089466801342755656406481439047417698313523011850847311656648870980996928845480987669664632036633327007986540881853425149370188440988498054112228048912123873593161535544311603839741428871366374573999467538061719640533626493700688412023726615256722720694311970551085832973120912446399730797514093206282987564501211922260153451431647744681131081910469011826231287444787824220004012739005624618576864191112642379641711170305954027769118376713931498803296334863290357841300612018768127793324745673275748170705230338609892017358632688562200774853524423958202670151417126105113586975770681112125890900741032252444900885351140367282048458272943909280551243465157539738646565150670911413137950984807735945309507524133521512665258224120407171214110213893868040568001559784364481669432948928704193190655607072278703653454562403881000354624334318823663193173885104580227512031296558875610185704308760489092594295586043468458329063252530865291687849022841028876992040604801281887796755490522483130625437548428127105307208563226896634954289140523643540711372552320958605530280611369737356372482604471380332072901279330031001228821090956645148794023063047594932156240715098908443492498321397523274961038854596167403282059220817660201902961110063106461500139408035495677995010276003385879307722978198468864607068867720986047054214990450823600711638649940121653269301571778225042305752859278831567875932183343541942986196324709066184655487010982818460148281767004847830416603281139355686175581210021735010948955861165644568556985292085763202624963796908683624789487965891941544315909774489397776200723622313544405712302319761350713395684306852830219454027485471214084135410897107965448242786662679377074237797643100341143455761460286242474092237023725176774744382694158893200927651303353739828170326283244981315539807958909313594178875271137249998944638007928061920079737638278197518787355260763391002536871395102247793182427222326541959994930017268079720005939565947329268153888222795653011665877659280346117995474201281547663159050562220198846162140961567785402464817293404903939113490324791431441775165656968698435449370900060902024395511072527837501137411717345918191625041110222123116571337717342446323152489499198413832795294348601797891580045797439622871912815450001384616690361926344219899944794894050823831331097033763348082916171327372097009281945198148341439707250733276523327016922646411110199547912314474691032922600471128582095934586670596852317304412853543541146604942734746985102377769571298409214637972425531040714760621363719597216650140774151874937428409878129844717436925983726908775028203339319564222780822784003058574457155165017988237198719666701520740254722407114699529775918014770495192690631772715594520541723389754085907500524738845110011940120830130374992591500934037419746447810151492120037827295115386219632529609495902811769016246524589086055714054017944427545828350251682113635806358823212272450010427401838199435714967212763730750825343347027640666311606047087070881815963483233095491704550974024123619299086624347446986923402540061090748592151831193500084626568242722860535528195393790668233543979059807513327577323782268873481779833573499400519092535598467616623973406473711763562422320233854494111877756845943610365195184732291106234049377086527240147434925235379204349790976133669058442982485645968870916558372388762026494433161998755624949639950701722358037782990161535247863720157868688206644620937062533947487493453591795065947331859624294243422943410122609991628699938942409414742680502672004701721931791278274655057036547827855846081782132979602592056006175043433234553452078402763577608624373901202923471881796270168220767000498382115195303467242292845007674768036270616176575093360262952676673095811028632357305546211934378407694571879910614104151084691012621879120705285797888068246167506372245737895636577081211416450462226562012788166668887228360910424925277685319933129556755172339650182904971041964582407360716346685607905761350417815713582666357888917362202973561252413219941012954719920633343355112520922432883247240565597804502770916818518996633881238212766548153622454988496147385716855293166171348081575583969005710164770433331506893199494757534326279246460625683130773715088504207483053378850160284560595843754367141119044624539518153413144978281614803892302836841713135881666283724082014631299616798757752561504450240110107887419361789827337799317784966135668512154844883945097986853141318876912224499648736247059705421079213788871178239127858041427176828048108367986366832008806279968528018205498154624289891469487227167748960246188468037624645047616059247350407816266730790001347570484367652866055035700010432818208200149397052429458433101562003969189691778486658748479259297248978301953423644800754639214529540535226819524661598564474684910999077120907594067721090810958557917305921098202679637087256961231944107272829844552116564844773292909093496039621343051094174753088858609249420480060132318348128350629844185453023713022165039150138657448386563386973266032030015790360361796514253769447625541665552747872282995747717931140144735891564567317109328547400957130945744679545412284345848888342581292451779720854439054102401232285636060036432089001761789682933250982661019153655141277291614331150519975483301504061624139520764885337837932051800623709068353530794495009235670602042108197857680535219956795781764314325198766480141554449865812311578180427044373547938512193655243007937309640078934111585613402290310213065049884908759871312190650172388339369767842209292320763451895209480583018037110600408785970331295689913375857397374793445884813933166780237730024301834283602828808718651647886555538637440660857871077834289261777311798629166101479117833838466211742058630094264658585206438716970352563217090857028346010043158187267331290024952521089163867172089529297181057282749086184100883287090371756999579254974244721890262907835884258103171504669276070799014542027691501209772992696172081110157756373327385837694822523509612755750794547532656966320342618945748667496400447094624506405419678779110180991771459133059388301074268825153820772895128025534547878670672117305719911417671654719823214670221983877497697826991011586350093872950015063129820190401204447575727097759361246542999953072106846640784085154992401183929675455019028672412178117842251344088394404259321042982201945746700364442112427965167194232190335922131026936433620661149962605077184240833354746736577417187052342634490846847771021890784297012739717987224660267584469876639233833824138520902490829298045621866678961199225937466483174980449186053482226486842491362272438843869751703680838831920336018168514137982695670670026457262195752352285072483884401968104311961741383216887003687469652034577623078032643340380610593627904180751586173748404481000976272458744215611214221247737038646702972008821418837110572737614408485538969365892481548406437411006059139267201403289062429963264379059621432916838103637592965270346636306266645194026380925251580090497419583960369777320336784230726412087515301437604485707559756413936023806614927597850137854154029068617442056246404776649808680491981564112533720751434411193173374421186165524867058515498506196237219293062977086901481281184162112804626320008727758358969826260532209679472309290673452961001558737541761421452149889403078851943877459497940573124721171533223304825941376460435913913220772851667057291812474141729492609639490454761628941433373485423685467920407173669626223078338594445405785863993665073012523527650414047624700792278994812774380007011327774067810599149541391434235516330986511177098750093566075897939160395639449170658197589371994891303092607148362428662929547692437687203965208571905048852601764857951463942698421468340991580466395942594354339956794785126855163675554874273524274203659508668227588163864032047236656299018601395855456587854746937019526009489362715707973777249373867158595670224041621745448575921230616075804243230151722616560810904343684853155432946551949070952793229364604946101974442014443418513664963045937894207051901368394818404412576905351027052660566191796293324746166912368768334074327283542829628357649197142614705266323394425083483310895710646361835340680330092490108387671419212314928539698673181392550530633551442717507460852714717150909685414652359896378133421293757612299927101163291417675583120642125439248379795621993612215891592059265153267308740030144881681883962071931756708667264755695918392161013552929164549111411668997155250316631666473682939165642098321884517447052601856743799817226370852450412363959773409351392580121154741389251946796058960363877927822592257283924136023450583951299555423476593671254055157343743431894744313981494110094393296944713388313437699253908565755566188967510585166939401562431372066054469762173575827532641237678906252338005265063364526614613535619201804316457827413923125317638856881011257400803917096246232052966901809280905506919000167903163758564610973711290391143345428039668771760982755210721203943433556622368021105050118624519847605041040035608067300353530430395460275856480123071441015405071243852180130886352952278412280188443246528926089956492628051308431037387277677944271844848793378168881377732956495884561605557612887371211081663345088294450894367035337254078648808617256446117283861499334274966647404069399655065708423590151198354697578373039703084352174723536443342695497859099088373123491869474876441910903357538630564869102483581264163182548013712676204541100996519862501135330418499960269628055966921877120706589625839106113507934847743488066233695600507285230797595005490488806736314844116693038851787922698696824509272430743058978091290246698656325445627652733993554744452657763943919813446367558124451345036460162336293402375120247282973502313946479235820778824250276823075922318985461806246045905358024894652882850341977205559725854153248741219724921234234335012151061086571956460294365749388828600792644063150995160531394631090524537643786904019742705547091702781908693011658341229214928791175096163020781142616337168224551464671117991426164931148184619512560900725961699661029669707976431523635896777053178482132818667809548180009745270773555503999802378190011055066481174166824575312315896999446252048769432808591181230766696954948810416714846491609152015273016406818842706960590376096840658661330386929298247911501756182914873782797534190769150142299519066798479239580800197821201684294291302173762811686513449055834374597677153157868464062559421935963816075285442793602981417435769626865548068429926367878864398043995239083957113201945711696539032181324468010815026532391234316575933402219254270190297291810431891242106779076229500819361986764638946632667051412287870315689370437515328174704065384090539780936974811462670160398987844785365834332254843234732603170481708713442250232989009312440458840744486438596160424750442275788206404432548426954725176413974163707376973194354878932880400032432099106777627757372501127382939624055302834294029442984740100987663266334268727220134990930704901555247453000155750910146128541644274324177048616771999666940328403161037585151593271729988861889381436942972068903608040794102445852958422305681292883074701391838275827751038644074280784023437434090395451202873993104188559518620545843583584326641278224017577725692860221402826281660280819197943461845366584987880619775708212565211159786851247296907830241232077088456140316273655049606926751141011997004714370144151040577750016909192923101588329569441414493341428722125447467968383841369971448693402447048734811568059801292436748949701409048625276666390291005580885723720439493040372911400331156803982100059692235909144431261509643592175702055507352220152735533068596548301644222134838612082701431339107734009518434154639689783905135089547218180853902612245710933610603159701021362407705122735536968283474565101930990630030415483017367032628295338401115215962021530360454945717436456134941837445745681395945371145371948658917867355405909261673941165872793759817683289721689906881478519274281061135037873363876077890760924678155310457418588621117829180868346414070592411696591678784654027237340600141537293355291672525353961657671820000565121382310897411746282773088497698495462482531944485538484853664356382312679630736171808718665110364856232787691752229655480799855781788426572209484566451942612441678958534062916819049844048993466805029388079224529408473044611853917651847665454304392875908756942136722248041203411786526503735901889356279340619400702688808092459349223656852897123773890810371817496307596168336278930867637593907989119689929400769045881401443815469081841579731605519707130117079170426311838683629677685137753845297598606202820497693570124405581238548408080256605118138378289335862616316621969885944637437704903415230404580106425584239157579582007655571891888210763985077495247731621891427298988545892718761793598063925921425283367899861878707327330902778139092135837533155928595629834133732457835114035139400271682686440965360531386355799943601609287693845826948604706925643375057279022129370397919421440002472181944726117303936607029646948118532905962615131728305229612213279574212172799822783619406903943944813067826546515428312014822718589326388099689834199185516580919291906259205245394174462114918360346769497265692735355647434783040780035554187952756628931582953075789369819558859348839445902106619616063114437986089584229724621984828307115548464575353445490046430603005962793412869855116660205580260486787999777838791738104310218633767553582835373119272334852672547792587930735118902704402954186613300710424170403060363000573376913567897890978791034417313708354194143142902018469869717954024784340798365325611937072317413675415651346919374710022074411687020369950346244437504486583266325057400987660992317924936242283734467593441807567091716770775465913513054774544913627296773610651503946259689553145746292515442091482133626797766626908160381036130664989901472853079327967722108849436190322326364765124275660823739421337138493171424556794458896324386988081872794079566238676039122978314178495722802821653617372343510962024649034551603029232254927778054019611223943276773849632456093358498849319161729512363911292683302670881737419017499750713758091627870148891999106483972752400525610418507681237726662399467456763139998469547365689018080704606529423810533840027264751505695208707933835564267500205792459943272685757156706639841236361248120225566630209464043331104883857796326904909476153704969338550574572256765062892946771091089899489128102312760290281237282318405042791007850665111316994956522441572458108149156906109801347014431384288664955462344360459681430627981490040580240149177489957446054208646212969464148240328550739952124627759841397807328364023181979506795979943457915678810255292647447942094312390425653398390733314352454181620160219668475880264412520904663355808901801969079381445736728963685380349867564385190808530206779578270998471511482126538503589646348042567221437102207362828223543558579606693343253690845606469313603589625447070733656102673030599382718357202839956096335320161441479982563896877387347549057872797453504814759837382779470353041086576625429584428543009971033342728185842062012138633922030499815730126303958620466780085709337323846571856841880718287816435068118959975456641594183857302214456486176236239723846695727706124665733383560489749954791534977181335285559157707374974719562468636123849229723143851755113396733095968936197230368065435387678111163177729663961438923549041362187149605998073104794194323211569642260310122818582354949365458391179370442870251966968978253641334546525424118464676601931604430920143974596258421244768274520513308619911640829160949532864076093568047533557241141841473249813687769629498507115647581837473152048954657433913332014445103611485835144242735605759846124641630569579632540898151460496609518100541029138166678318541986586581716525283180695640690027854279364770566440607080474393055504853582268461309419640757457383427130225722474870632785269169861863550412216406194061132118916867920866873090400670125800091979876311473008468606444991873189315297316147027702314077661837871098877048918208474136770874441485692595992915500149141496644995268747107252820002753765379788453471824229702287812772297984026483189996461145988400591833929224812125364779695546525447859237531730849394597428113716092841685925880054463361609176568610926904315930077840977783702045848227249172028745620160257586445873514580533100160304172808917028084913360945544406901132287166157395737630488966030310247556335715943744790161964109856844296535787153108951897884049987530006870061289267581947964558650709767897010246618768108529694150473061836063378893461674341791706601782184247350497075622970968904164998205378832990140941248998833177952938373178735174984220712675163150237392967829448438199868209827521343210909008340238430899570109083567563479216427501233458854370931446170419949268053054837409514161560204102742912711611325944950179176563091749658944042172782332592801850715404768776121239545168635644739308990266745317844361742644102672420499927364420469146416835118939176218166473567360841549698767256411257568894843315135307920304878841829732317406979268989798069225411523389826673775161567546608181771574004481651139906370560296707871646984627544761072684290548384628758749270320715344628512320128011288924158709071227999807177342801088752984344585475427615394784736584875955226097022732491732202106360056139514832975997353095698006651694421633355865773664375421103632139291198532617022000098155775388616921041246191636661406218278374848377060830956298223579526968093290930588280084368220835282313773379909629843362775455971995155578756456494509670028779694162907279715310747109510471533501901059781205261803339258703192483964737470918198565825414686138046383489807897458682337088828895441584323945682216476607674386821527977159477376658448839319699744811278918210052223734484557571150038935384532068235079393322803257798470204403652271680375545975354657368287258564858626341335222776009005734343991685980212386006188790896285584389391209162602136980223327830311998224336846363110527836459157960162640934520291603320812411386743901074820884264434293233197243695398034127750723831201448971936937259478836242757629127173320563060428977214685677522002402382508240369297425135574277395468719449162473293753461117829083695957695384541874510978413657691746488609442875131780819564662221556664390035377478678748711013166359960273101397254157247045432611959914505712372093875631705819047998564655587916607929870078824676503910114935150105561785018187728525973203264487916230570758950172546614329367414261021136141100797399834057609326347443389744392724567925635676298275732823068610408781526837971346949198398419598089458486846826236662681191859137541423258017079322992300417120334375811486277019659160250455303385447304367998095244004786496016822948144861130405839768400360322221477674537848982100759591412415977834414057153926796979683657327083352837399917552464514938476327231782531714565996638929242255456046492151173015693404832992024909807233531225094257745026113859183650629924021692512641575509666633117498307109245865531456448855665317883711219954792230512699782878797076831530223833317926355516204913785855839089245715689060961475969656615411384344405010516932563835484609622809322682006726740416480245061869537032128147520816978511275075762604206734371411007197044989289823435352117195224977891262589987539819069855888810443705829637546775471058470283437710117006441787736547056452969935538336877391415864552626655187262307928117526117193549250700118756290524739487409371417099913343890604184409127308507481841188430129773311556548056840712493483359621255335779181000319083822633608086401617265278496218962058166304068048978626798355928540328809855760769580672590515958906747797728255545037256063056874108710086532126091804175353943381616186479103831487850088690553888130890536048784310979669433977364502302207202592962832796757452800348668741783049835298794351002030013812898981165509025952964001288887805301899357720953869216549224134761719570467995853566816099607156586497212716014148986144782769560326113583972779746034577490424517446323549488015560503853715731163507343595372622791154224509795210447017253248717326565294112883223897383727104225943461438205029679010739405422322060466782734363973235696657808319585853067751226031212009428314464332404041760215131145316976908941053172515370256381344210171783015688029213889081699663103330257607965315170642520977596252309795609246027746454419944069770719221941407036031083819423344716496866322956491132220750332887638723892486037181174959652524938962206155632382050340541516103762339268985313462069975951274724033393547087529398881889572246971639814247173991323672841554659219675749824435426586377106032207124477311644533202724412294360033249638784011276831979864208159719354327508763507878590847401926780117681139470134753376550099262197494223610955393729624353316567566643903137604732475807421487083914810280847160694936863020225801746317572705940600527360605858843267511035137547347384116189660402252443481070854743477514472200737282728234736061423576970076213207882826928591298246077246923865463499756447059408221849800853547202213063945056833673642073639238900654069021996807139987446230164924247330569887808318906589569831771554293783476251904722273533720297267192095376402222166220909531019077907478160375710211095874034264458973927395488971004406478194048330090798641150402245024136830301686921420129496081614967335518526069668594456373437041252868310556406170361151828169347875564148588048967499821479845823941858500618685092138844223127008162707552301326936502465526762065334001069931290276904479943427278907680952346467072319898689152582274622668405514354497920609688826753224406361157341070296076137250143236310644164488165665282233576389211185153938571968925941932165583156452857999621672804138399554716762723106023486030185789549543982247951019206523639230192381244276587970584757901962625677766940901747605226817170993796424040515464049747142949341693080751585384398935611863542463197869390762820977124746773294447618112722155456095580727554654523939704381089414857936107337404138250827105300400087583343849019664331621837364426275756484174962643103940048438301095966866293445829344798611334459792758470081844795878810335466475243297954970013502526394758006781357613011751594087690808208242728941130588882592371816929446497426624859333616128994500956039081171709803084866348027401846311975515205762478678944727684379400289344886125476038239640185923721593993062126597962773322494737245111781027154125839549649753019739283437438654886805072137965295961638829315267476002923980688989462249393209449571806061385494329641177984157667827424120488783569015232596835260213194523940464023172459777445385350789313016232947859365014941596136709877058470824781086455618575129508479622300074396632095134381684748022599322065307404633276508132716451296640427263773262356998213410639747798932249138278930222081317568390407416602221641213425764602502840043219409993042983423825570692471410248355311928205057115420829613277345827103772816563656914654661442419498720986869202020709089645025282687831633027759733649114463798867696152649680729545051826618889149208855228715870931987088291455097795090777837459530788729482860518379889800398865777632486159175650553658698934014406032402704021531187412907292595199859016380637046717922427162665652548337427376927481683780824763263257604241356022993903201522485641035091545422321801708207187632856086991026960712425484235912674875016498642911673543096165512725350177455374504574563629624301120836698443730700366662233808407953417493109302686872195609421854064954129455728144125149703149600273501640442710709166992699606985342459727805732855634889348932290347468977835538508393384947760935865571182067550211452433535768486221654835443069742955294013145673018455106925364504857430675553382129012119344733496202343464510943785291759182025653966161775291425691499694161019585851336837629795455699071921117467865074550807653988872992489864528062673826143836679140829548681790955918630154340793449284284772347052348771074937125660362394104392392884539153394855881256303770729806259486408737169528739089593904141672146842886094243268048326342623343643782495201751726212867585706175331624130134995136338817953373937299402780528908053228721426161863405340510984838547197484282802162771432670568420879354683790649083343024164835786579664733621471874453932530372445882546875332243574180280997638852330139399975058188737520945428293389978950435154726931054902407087438792313763107335929337720338436926826221876948995939919429447289394833860198393275154457082114761314591978152456898693996864498935885324545378956566509916927175752912022718570417484935761561855825552572243047572832566426002546675960518310057971256508696623589387688685701720156484673669186266279221317662810460969937841462825559707738052613572522448612372066884278716953891259637851589798480015184311949284909501022425532526003205102904751383333147301857219801286238852685875620886178219890221078325679728991989460451092715215473300499441630164081353297318052105842215065793485031526359749143063047993905070743738469825877099538182275259624714134610177209876006218430320228610556909047254247983968832441006418666218521421658427578078542209624842520408750859616882254936508386697866080611629739563344058142403521641042495795207892118313829484861222170059583970863467767239786958546641079065179399680444844680575421728323408035199206393531786145415575770749041567529129604607711852436428689997906351929156121008216519232132747901249572229362884698234769351791726950418506713473763727416298600029793264590056199629316812114990041465390686212191648719839558553982026239039359996718165092959614425987209572520684547105947677556223577297551976524911263670090411424485695111931325466863611985156324920049703483610705793724096714969759298818296488945604598650348427148542676674056905097742608808970757816659600895778911669793915423038431490749450639701616890819036671475204672310506812106239140062750797512387338265999384634477080423018453884550861743473211170513984276454405972319247318683285604842860795521072203412814623758179343994368887600487360736494900358196744121818532748359905952351341022903325195299161173862107741118293370789043970561205168667212805243347240315508677697098950925787946602550039536410866113905054960861291081766295104028872944040195870492666209478821243373889856377021998530246471793286074800522440898060558092310416347799713312377775400820476731199580976358615383349070315325822532245525547061203876181391288208816990458293469742970533277521016450413089243448235346305246425064496068310527524169002081250572346017351889258913781247376817056009347530047151236987762549302198067873368761985459679040685629764701045049950801533029763647203730890714158073742061374450218849244205835552376220184282617813348591852884557698279780326034200373630086142776607235290469136532857558056894557956204631125374336345807858610070355292687858578215325348702462699271466343848138633275655367759203767372864863414669296500765037732884921357141053814367291816249160632430940241299755101675353436927458497695060963077015751044540818610489080850196570733329436713179372244868821749468001023442721481784628049218745263921126917660745184480076247184925134845833120205192375042310619483607754205431063470545980448109779198334378681008897331050953362295260840232265109497122756172777394637248492235381900187954074720152197510366467766969854182374056705978246968707789844597470706953583301530757343127667740835267403813934936786333137851759928466868664998263062183463797541532865726161866988043604383817405340299457773840202223421698703619164336486870942201741214530665866141794388868451586844769538466933566972058460302129848029130856988663305562720874043982770863706027844802411945345583632613190310261517490048887183754580544299951132021221351284794406377351746262411090676649838563008257780665684522498675352156656467969931558538406752314607346546876258488818548330381657333179449680724041450636331782876764259580254924100965392731402296346518750382258064305360198162756974791275665421568922378324923881819100900481740415353429081206163561439704337845510846110181431398071138887182828898395259191026530165689844449390860386908294206596449203354191014543374872334813157568965799155631606129539144293588392998969020861836189353803166018463806913600458243876760341705375963141359986541017967626264304345113366662366507026088390451512337036653605739220555169112347273288699537613975986856179377998390030345039524775379413488011844175022749817120649131678323453063678741443811528143122413670800044997473401173271036602080776136662686458156851314434629423739111089796111309284417577817680722207635929299240103298069568198099043978940656069301710083544292050705309798946277487772415661170719920050377098088504096594760607571189140320835845717234781187221095578346268541891430986612090590977660272112482661647455650314753468914458836606503927913083712651867198729731784488769599428379112212791469899466927931580449226768998285899992325387405704568215108021562303508190500067918998415401833438297335035292872806492531995079569589304091160037949617181160560250793589870801627926241627165868203079726270676662935822366661867063616173371319499594150116606250807974848424793435636386888635922646070704237059307824406047001500138484454920613993533345927713557261018839175722517443850485501752208267041052944109474886248268627506823311249882531434090689386463080455561670980695419546951295860883661227168210169034431025141499621656340661300429439231636745583881512866426159859534082598472521000521922837209863048693794883533980535904307640753307988956620338169098444803218075215944961333162814905493589156416016783394050662829415443892155589190108282025504336572808743541809478694087124171462999109025713684563196570790917111951828047706793410859956214575645590175411983062837322768531781109091492317493793608678323651236250649944268996534553580874136861282232035471463196280157591733565679292937928016532277787010674446462423419274715029189347512784210577491437402353454012846202226416866843869419375689887230229963223390903827865644401660933819068475688656568137649257082051713242420365594718357087824350879509427963559273170098304943291098739860143411030921513879358754620424448917706066188554305855560308755183167371271985843234836695079216456731016383677313911043716443776853801239706219154120054460098000310902994056193171659710414718418782795167225532384394907081972587597865205384716561168101183153693494640732779254739561254001991542757352308255218744653201327302055068686736221622444789537429555027974764027929579767248011894262968137412140977056862837194513090926661896343034680859808000347174722041159600198200870904874273794269827093875618008700844508614707882572249972394043581840244650940311251395752545552243016243350965745355029466158462083090271891866947730323240600182240440628168203000489453726946458503822520747734299643831593248276475062233842929746435415274689147745583358074890149777976525433017122895358059481551519260535234423494655601957034729797728964198679489281489591889398979629984113772540551233086330746221735473557612726460954617848632547129330828202226627597036331039444853059577990642075374635172757724144246710977000465881010476079559245295230226315676268734599363229677015703805401624997363398084128402466421301584117845795180274640630838636410063694397259734478620195185961292739504815877356725863526320125051668231073217485339433133042415536944999050526426453453867719878235125080879326548142959274775032621623669544012604108340069542215076018669567651303311379460646422989251681121908839082014584103623276273102333808452240065956290284429075381501714526809679014567765319205757405072116230660057088111796259493793805921547252418375908545653485415590608488276456621449233552996196961712075919831836431329892919741033355317931491139876975016645543424586896207013997985783364094391619838880043267934004181176580587683959068379212661063836488105208576321819463774989626880387174688093833178630203870529976259907257375696829254956585414395528058756455784135026337206939463131232603466153958585663496012975079365620415926856478807750963866355234587817417401686810687266738105239680796011550460159975173560659218296920412843585564381063695821854650599955965083427979734243245997459540250734020122919687204231785195640568171075674146340894662481363955271797156557930967205035355912983761187942629547460516739410920313126169486771967026510616994926159411665404655642182974495979169528819714676844065120163128368916200104386522506023901127756406887650898568830888762573028640417292680775181226769873207984731473201286556276029190684514372657664501332017241945424439607044202494256011301799257444319157880371237432975810819922484202280617825160787772204698802107061363364911225745328388117883752479026801889126451917904146974141116248101807497265616604509520476541628039225408670122037752805222565873126029391267421221098500933047527736451258233127912953228581682876353186324910829914156250100353674018935514053202689020900097633092033735187478897850213327938333729651409639409674498605021234138635478351155238272190596234137196115858833729114328085371076530714962947645942150773851457952342594934504601919325683466906995010932091370638587706061850831047503155471481686009552978481497824723690220119645548494902897942183819650735606836125760519091991238313609287714466242365497071622662615505243779319098837753402627337301407733903448353308643786105091352995650307823622075298346987676114430834807754630291123272872022042055556548210407889060878325267773016517146087270636391062669768127419353162953360891514088591660874962354460763828111220872532846638100691769788571689396369011235498807132268623959811221602859693068211856450778592558470716021513578039041167669681656546525162412891688446542818195751465210604897313398402217979633391368581646261043977770280657596245361547989666977165539899782030448930259943756373917674838311143420591118512997089441625237005408844561546903388151971041640921291013370993582382879497660595469893600036047180514494899150338420299111584604612013574924121767923144513731610283784706238598191640715517485727735501405073378950326246770030177894096487812788348543004269759552305748266855545717828409001994245126464754118666753708170065286211168415475797621822619607445107789786090784768305158629208936098048027508867626342081041486654624321653210655939720725529308074393460651579256641775538042977173128681789118491729699338797532547210315351543148434153082215422986650099340728918877881518632149811314741901619628750744363368852439303613383504225473723714592988261492550487668593885936825354441784235128989020887000606715686450690379950902186774023426010592509203553358388926917543900282011184890086732208703235000900582028794642175447141767054941017124138811699984774991454941710954891394789982709215607751017996920910856795825131304461274792072494938949980706233012012002584809799646484759525351947417279241471089092597317975667423157794764270041619732836764101190451640212731672324692750657113798592438144482149499121519427227996758036356378247592445287708674734170276755931432433006449552714049100478427408350126583922153086849704517766129781992179415453824035872640671832501791558716918763646706248932629035155308302369597647583284966546261101559320780292341622032918911170152406722604482760925060812429799473869281476711139960034657199859994406041558462597982036174761235556508914141144652808562866222273540361679727375885464973590545196023276774482069390996104616890663690315823585046945591632192530557942455945023951749509775235399702124528051902348082163532121810053710983218602855525773085638754166820687884890071397764607156962809322919631183032806272042434953865004065654798809572735487101364891973684834327285918492213286535630963200246490757584857381190238069920295509181187724260466015539992886062519233560815580846367643837189177232286869490903834315971463211029326073310221629200201853803355480020001223043410235670976206426794919009889442438965645555925232031091539564163819343249181418406305016308111789435801743618155926389371826187240732592398128582270466142685728902513124816159214102738952188815543160769436880007512564048267308235597189756018646436244453640249410187556678391577436118789183719162204315128065254421733031371139965627517180048206747035424708977013313585434023477865087904390549535551253146172382879762839184144716688510081138433529403961950913903889334530615542749713647659887700991335755005873040896862829332932628413280759961675575457276079473547116315159622182374443137346105542984024556131188308938406774824166025899319785976879582905469390236008853275411502200100009497918976889575943223791495065714326679012834878236305463315329167992136628702167867758583448756180762899620911670749283907251173831483079421438410831971446924044797195663924052044664169457588918924321023092404212670809452937417990230111507990866885146128679354718194683840747653575100114071060050758858136523680832121497571839413681333158417233836107989926755586871273739553378672189242475829462558167467746607027289228383371563758507089022247296892486794815415765345577925129652133648895974742703165910798173711606764898529903535652370094961500066513802287523996849952222823289491654476829734345128784366058355152493421071040183645906569592484276057104011625594839047610772676589452056097049449589268023814790944774348080263840658861095255234328015572090233646770505382617287917424842046429022597806373110868507731522028839236803408187856197143187931484170553109672590699759492768083040556231395456538297006153417044062985448873514287654218240933709916987779042462588163960879493247435647590789251199729616924006187912365794667381539625403658831572011545039687355013779760495600006534853712287461654049121309960756909414362794016460065078284095015067435394035010484620557594650052320089542115973457607801915726842374276279000057283025343036373833535029654585839408775069731791356703655296414950140755268787877828836027508981955781920821258857985017590108853554870946111558254013660028513763806994520415295989567510262903496886581318807387110876178605005435634621688335761019355122933518453841650149309038822378979481606106804043284795747267184153391910980200749529996120410558695511019929049137522798604363451701425769257944846747521214936782178369678339746599823522270479032256898094675362780524174521698877585569994845659701997708577300117607731114072603289548267817497030369824937120155732596982006202217708305249423878809527923777957983285779080588419684561760733080966447478595999234548298721576362653067528505565689656963440914056053092563105438394406576818218522236239801479473236234809211808350457390420623751844189908939494971125391866420340827694349363792375722084137234473110557397065366687993752857848126508405985653609009471372977475121330794863550528942418049829131347672688155568703118787373861916617203432228827915910082627088035636731085248678641245150579201926407281484430207051574791898225493898512769976140089631108571059010168643067573955797564474671096080029934873672437132749328591607598879379163700739679550375812505237189199581025741592395627477114124874522589233363880572320287359093035479539463326787872950244174013709727213255489106184788536831289230834469898676928615278624011014235992580684501151999682864060183529639761923725328342769176479279036552034427644863817823738681840604381667472224675097673521021026062395304921568911489752369945510283439801975953596949560660267074503927892718165592844030771504652347879406048565062288285565341863230408750261358359438697028284537965344592768318286294546538925944302857723611688669374631802397646313436249882544544608440539266000851970475460210628520378510119249619692174947196093747098360942082062674046422415823969800967203451624016624303341237421317055737881534570430762817307814565796255000394351098283144395059596868721096087940925050659228337586325356395030732664256063590025545788583605719009148092460666868472649854228186584479158617488484269748608079790860101007944448620342375506405653413785640212493822097971420312257769190155011102543667906701713163742185433559776666059440864866262727514062596481675378519418299382146920146603584414873890518318867319182484356494832272606247632745365672996378078152560675039579578816734375445102935868915934366110674003444805829294514335668315576101228399967993651580255423625275966034285506100113666909745815081906632535168360941814375192966801132770181311744100988129780980460625231015904984173599083575903000377376747035224753572137157056541727742379004857111435014649283778494627910068106176249025689821760586039195673859122663143479294382158963357629197779362443350840602061921365346956036896560854587776770877946059882433912400964055922422255817389190814466516134074270515541062734646350776917163531852549284726353550646780639857626370667766873040836793960874286579691202218398238769937031831627786150630760133468317436945996512507806885010342165244605739864797588210247128099766216549369157955099802002828432733164751928978762200673124215343251676860442659480684275149531692245036960807061708812009926261164885293030561420332193843452581103097261439335972156133249689661198246126330993498267726622402515751575672770145183099764753032705808104965554997922164477571464662052339775410129265266262423508476331466457454433152458355740416939323517228538200306605270932960025339976035681808900642937600501706898727145199240374083735830350831794751714072537049012098565068906874606852050994394604698533315220667625242335563095039155283008225397275022662668374633853647639948189685039575426851015344701827539832392545913527595843016310124394276076006571917407026870426161566752437899353949649646724445607483627602956601268194190683825707915717626789974290665273872025035367243090513728270488004450679167785833543434628443612356255341090310750551610681881005102675519869283294715806391684227585520788524269451822765567404234795845115237910498027089409982722867053602189004997496773668034519899257193023139995867769283735051085928121956115114456768333753828750586966339277392033216783648262769279058902700165732097513611856909656876679826767368738287934718476817275349317064592710356090376229262208923199482656096139843568223799942948294107850853606341570586765657004399943712176981675706861856870029877443577884513384686505527416630967325869212324784741297603602376186181355979428305576711726047081652562604480041623145931490844336901712617119791733270478782952489510833608301252020195805131014025146138307217296872808336595947455941870437131791700705204899122468005719204591683868269263390613600594134129503561054605401333296118825255181730411209508970011810224566112317547335222574789866664958020579645873909036157684943449560426841323945742489650379400942404921438446308022205511355528281112825119380574501783909313375885204993398692111034697021234386045704475682030383867627522279635936690767200929722934470700838128284686453183412433346383033547722117179112336681863989015311815415853784875671369903910467483050793799885408446274407793735350054253377863222851037399346499902855854631807906043446184813015732249587921891300104374124871172966875357505411313476687749844485254845402851943708881298235945155197880084831820494734702677862560795764335569720735957719952497758894869200199148518790124176796582069406792123955615208038191709842072264495415509743736528578744771820035264447834672624643379081100465126034337635051162950087159390298534475325655209354112072731723215300623087512253091350364880235572698480416795347551211903842229188771889133813593410416475399296044257681229238345762133708096546234029841593623059102556266351631101348434150177594123099138000792759336760666218513895163027458535435455962805469910610924970037425994937210399359873786618112905743073520779394322998409302832270356030702636117188082214921135095448626966947972774588673751971871692969661632632338172321962789869743109434163242135118442245543755861319843352227217444712900922580490463529715877663299889891878774958407283413648095647920955773706451099694621860709838736584779583552894040546082403999359298156760430858005373974106065755755722135701738676286069254683593489510313044402080189862439541799283396688664586914391698265434250782431307354001726500664431890971343135890616020176718630152650854882546789798757917580317489185717693230940885521503388857990267089303091596621132229772904744125558650474506354708974214972673080940293500274245388418699230133276618004128102931836324192957542673033223019430396299888865554227699507945325867427975173574476745307274354278355440461435548213249124426146622576380935614480404521975309281651513604259682904221865455697129597790778150851259659627739237620370575576999535392864490821724857112484736099925282491379052854011559095326494124069203799416179531239310135122678902077173979742898387367068793427845391688977301844682300542970566566408466885233227973098350834828887054861055363101500266426825000346253081737332819710895122267921989786040522577279744677460207514132533640080031106593418072466670878742849277884905359371753225225903316600349873171181394315494365823667271267594004978520659621276265217884401394549692550301509712290949494901980797663981929911707161405207513582517082796605006856341876889749911756038349846828978233989584387478356652925493113788420431843853637524510897202927055033242927214929085065233218488651580409274055826409797368264128098048574832986240428801529856605969734771176636366425634462027327461783861322396137912729763422582226902813884436220720623225620632755743771611971294989320927467398600013999474643142016075973382879874713068553324755652355945038975390154421935653678998254977697319984050899347386078576211671343397022664256663312018068154753684146050336638919935589032775402726541487770146806612236617100338688997267769894903036125953694052177659482760224115236809413286677592674521461277408154707695206462207370272148957444703349070791164371664609962916507593747652587861735052268284319282143654456648132100602348944852096760188491874226059364914865912870339236234981120278169699339218920284717522732995657760852444851281679380359092417143503552583245425817366301086138920685584667866871594627662011998491953347876524405606830526806200494624583317087791034125516980627456587082341861269233913944208318160658674986539653472000918121764924551135013881453927684935702135694029445287498091538318692663650072976417893591842254412120937109163200212507864912621825896965704329721869790866961661064421374517663880934972263398866601466559186911524767838298592202251725629089919972774696309693760455908806344387043071041908870611771411987490269096813826088456563424424563343483938531783010832927619721775623957437771052619999365392810749406426399093479226976566924673486530788711284215016667145686223257790388261034448988282260275631553742302069099151612077073372052950100801114823441122526019254978359071287348073560623042691412413415409595685997002781066186114233700959931096791828057295441527940043187303153719989605198772233756795260343882607318006699846727575024697831740620350588473317604872930464571150701673644241451519746097367190671496861043718427224445829512333434373612508994018474122957380388486480916883648736398640570928870097820372894219878310757554215180846227786191347766695016368138844550214306612136756346853358272216087649323068690520024237728166083678445265825018145374121650051529042014520177780654823057092101480218618999309697856719311339601613103554779125253504519254059925456691491000611608100850501241081633535714642194563384747220691459766149220504699367476007882875291005581353960898705039191416584122721090646966275386783818516492354987532411693670540686194455590355820641111671221254040385550280749873166943076654582166126589404402483372455480001755734149331237844430323114587768813516572629744886294567778910827712899558316426367687404931980902381019065797343329216881781803962143914509507142214855302829547611740167580280545453005896915387054876737473333394172211413063034089771150387912120424581862927238028995738249879577916631365382939305841046044574105077114549894907019430219593469506187835681882427493072819813024901966214221977314239819653512325209105634316562159035899146844379294370726828910579011613574825825270383052003650428396696081225229489476755726170002339315046777909578004359364291403881503791132670543204722389235331732180389794213910086763857024126359938975836521417120473777861180958768708727314694822466740234427444590928343147983977926895995801501915142664379231464715455564090318472536736366528142881130149851379103661620353982050673461816927222121677473761343752633204383251669954804543389670472392292384705810568845437034050427856211173663056213025034005969642208947739952695094126701492781646505825944538112049749580327260130163387062758122732713050600317658445490778020464930185434714643401764786817997365073590991852630546167856203386383366017788961986566290182305432451478838801081605411256811513209039810564007311901997981850433761323134922007852954305451173099577122322819316263328506640255439598118153660186271283560717735045393621356484803549208054120792147450058637831878464952559463922468323999793283017218735218037715403567438380213631412507688580461256471304532860051943597248511044445782020523212165256519806869150856334674759905398638780642541365118795178130915444968976334895806171578874524081258149269894161309886306102674094187163705345297157484596224257244112357284835475778758739415487192034506798911902832353896646254318337032263813262994743051179206062394074471387784402246645221534816396666212560079249684239541686634505502813482284214566194751634214343467444526458302445053787584114148329740074739219753270780829341932521088943757109758947784170848795862007662810161232146539554450190636861757863717973814131112403898666708130956401545742270164884600154453742600470884118558282008263251914020180214954997798459977485547745898399307449967402017346263964144400716573817277650741032925004941468982721214945416545718072918437808128700704674602651482523749530676297085467552878689226002003123559311861446798597835547505236095215446000283256111315205508960600599489013171357956333310997086264688819671423009609093588172123065285720210729852283519671407336979022657987248031195671654499979887473969175812462563337460189250268457301832893087912701701572931012676564895168582103910599450027960306480912014108712657022877143816670516701914256831140928420303666284558244656431733341658076752564021457710373467117976030689314362794428219057629540039835909081262021803087589461112783421036357362406812374656263137371839487069329352813182865710720769615143761662146157081353749913086213183341155471706893130972893299085757750767417420751794670753840514095104551890946659080146869654950551700163541594043490453130997438732641361778148276130612654559692499283624934334247108021812809158939079205340099051591748369340427975413679904784268168901418043207191776548474666600942777544237388213861196004523586041349319222831675927538124958843860597606334289802099299604102566803920700542379243926785118045210779966403368982540372488481219125583689570862527180945872476586948538244202588270926737290229664399457130661412114616722357877988263565392687973868733820073329042608223867492728068420308436003169413312607447746918287989944314191332212838942841185581623456748190408719944979150449163186438263372610560439199972962912043650795672268586607111152043843965648077787735805457086655601757369825618264097144030859637249152417729444402359629507643673271077346293663276815372121863071273855448995262185870526444412024674532848655725547404021871638196441275787572874091879801246170600191837189744717694922340884181547968104839304504762732361988377694262665165119526514344196110387542777794776409373430981858886541261730980705883765334835113301211838148245808168973244187137843454449830047837924479713894325968439176365390198902660318416895153383471388444862294992040737141939042956421753811344460467121559810228420269219054836129693034189256707181172867280346692913215824280783616878064050342241799633142464165869607360311546330980635769495529098087962157334608658591826182655792173781375928449302266849597873679640033617563362253217721298994085825597298919551163302465000031643776797605226139996371482884889633018164258383220076480368097068703117366340078937506468833194931290545597916222461589264688138278216788947837430567400857792406326290192652309353828116287933208641727064955230460338401762854351714880443793038049860240141906858578764854634554228567912832632365747017915480382558988193869210861708279558118268707113612971216406410039603404595409769587184060953445701507491849407847217564769406220088028752355323988586629636485640237091901959867304937758661058898896499557402345911816755646227958560249770672772042124748886381925906350184367462175490425919630854027938613303741857156656906986003938447105669034608099619456742193630499878726364205453638837040828021100284469117503387902531836127953179921628319947141711386123998419641375899339705863198108165693416737507244281143979712576977298989255825763378811483534387042020586601743856495975289667461810777970421137833650125735733869912330138379700798200991766922403899995873069219983997970580072772028197243620659767975711353462844318484722028053903981139320795320049210721609682553129017063071703092500929595656720170983547872777674986222719872384222150147653942946352639110226995529260838935236268110156984675422488876349211101992302761717432853348440945131304768890373447149739604394611074930002639621064035772017070601956844338230192026049642924529627795957643594487108284338288625153807094298208244628609106669012441027159548320716716698482707815369374157944569669479818386620612071386772450452120181575766938480762080157524260938412443596280428236643996693418748272431196769896771331027385599350774402342339680261068139001057817128455001228083714199987302676843436099392391057011034453155042358746447925986717992141747879424860165970613187198548828126934055385436891694292282889223014228168302204281235576852794936328507241401144515219744857166855125784221464260427504330261286157341587654634472899417554409689931165122039167380816847211060298389967859898439778151420073951017552993210869780530663403873140465775747527261097576181266646288150152540652920074216456879815423730110311285135358414069458902756655480936813434163625043239315899151466635742386502440710092848762315053849009596736332160467479660125655090212186155355773407925444402395584315648087976110871714130536247444585716101199769203073208805067345601663255496634822463433704246414813782778580293785030845097011029439254758924371793534715748306584798191511298644930392977310673984317688383047561645212103762973143896804185532120431630602924640996731705395797709748239950848085736398523924672080959668643790675279943107479220429941913515581434008259181460158253416052616668973934326573126208180677461481995309931396692021596364681688141687091825244860247800748668429535595155343012689744781522592015656686978750952077416421913566136701078377998212089964183466427814770670644638691075867288750767476063513633415562771750327928333107473126395821254337662726523697719224789729166514904148068484188736741269599251400081258889817729016565180409885579459293331953633687723715080238055112823733193738037809278164775629926582255658014590080244277204550184493577742268352759178534219185436034551728145066412354829594177407244882155665798705848855442397190863697828392403462533677676094602877061532152222838359503517355236591929459649168261569972248018125227716991568765885264080154554643956412969245832100746074995009630713381597623403397698862276676125875005160995176593125543196458684531249858273506470964648443513711201084787492229427837518963744048377079664160966638769252848709074470736284431599180062257819563343018169257934752336526590149156287603086876322507371473549361658874434022683818541761209218773777862037666755761740799603335417339825817880296095101604853274475183590287253220881117914809453658228344177334261335702185128730596755799887355307624401116044090554120437904649213605716332881677906123727814233087400363022240439534948067173658967345873968373273448398903401051646853760224127482488890774481168656571921698881055571233500539542747123797209713892635684276849318866303845990417991887789630139876180373287540543769273893721210071056855694304665656394980027351751380093469580732618533066291404253748854328795489636546239025360922594517049884635976488326105142609013091986029453906480950888231449630595647858859378363869231025902187832073154624793233643059565560547000109675702337694580751934897917997022745891925184474275253774045304782387916513094176053646695006816836010366127172509218861909917218408844524855276341977200501561571734963274308362234731476803977991545681432645193693049754175540754992271368995039661442525960833169073362616504885432271520596253519643086323671288369408664592036048536458094846851112988983765103096627628129600769677038499307195760011890526939903964940645422454292409643534198230502433426470292546550077873411605966542567087832813079783389015858507923597184998409441864387690127590665703297948890689416233160630746703468593698552497430631476623692958301504460514915854400216409557094452699574243970426954760552366394709925129413657948069394302646589939567254176820937111645451042986693535873659972031954948214267144520938860636368075204940508392541463060739950933323770846350359237682767090121813676691992156449969416558542978381897054872994671090588854341219521209420797056022195816876002011198163176343687718044349420771081646220127619470885331136854518115456538758558084098164376964032187235259778882733686338840697286520441571236561588829849712782416202724837843448941541697192081151495629495818624105816208795938456860056093364199095545013862907773581086403876467342130373334276022943466476530833765654561590456126915750119154210076165072243259125765872247635882555813948743177179368010814062705828736455877440839283067126294572057269009563516212240283851497202194164199570376199643682183815438340893418436897146480835053982234254987621909885392647034489899588507761305679558336818900962778033171914227070885732780381969872839217923785676460340805079920833105429768142648598396147855945313354204967198976777028886705434736549927479344337416108642851747837502409299488369596666834766932618707679074779229705140413684561687963645889869449368449727102153627044132477374817505977554686693083502236251498002133284011981919005387326826100825343607683515735403916518142292833057667941461175400694207343115858380934677084575416821308768191799533863464536891335529460012325978878329524732181794315456368441047269297866036226024903912760537894821838688191246860236852363512964391980469128762231796971368787706995489422433458592848433366960067623730335149141316385477109074158782254935212238074981104331619793730694269399665286723214925958124797786587559733326954165636275063820351223262367390574893414934850188340378679746310232856743045589579145571736932896946163611696017499858345418250554217763363942554032066921597349677188242442185333238037824084504015211587272581264844316477176183896182657750779938667149241887670511448565323162069217609475199070470976407676762329248578626198756988459762744578307924315936774240761159669727188315263533164110728126486314363526476677120301319942630557346714086252824058934752279869325282519491846887734126943288660928650367024875287397299861872119549406417309489297355937047692287733030750807779158594742206222944587218358459045302581880609111454844145371874342812647723266456672889084918797149674463436345479368339047823193436514130028443588430692556845699412478299417804829247712176251503555643403731590199501254312158001685262763459519233426443691022120732758016089811787277592300179685809809248702335281529654708148369282924594810662116248663175025500725992383977041777282611495282201602774471667250963450652716519820706177364254646141198580952278218214562266794541899529400454134622532662383023581079851229700406734509624984165521439417165644673019523790779304084461603241093408007085177401450639392388190668531709129487134763585210614965665981497218383943936147690382464527981102705268332317853720278843755694512291063139228260207762645155327004739964307896190166242553207760871076776068996796817456027479827831098917219768371726843309385463566329488575387907455303132188198177394005709099976542591054356533707013918536221475100666982008826515834158294136582603441122706935991060674496899738189134179544324172982073529602505210465187862765306247918267291696977861000442008212132857782822156894654180133488845229809733277915379500821197169354678842451943378640468492550904646414254158518989879658713981262036177616455683363519554341686843553573080258076649109801560016228628696889412449780271188835889855162743311237274231339863962914797934658437660568906725140322492152416568492010695775815816335560498755754418784014280935039235518356920028624627904078077726851225821259211468220540411374227188433710319013448284225094088175551805149730362191983749367034497862122983587151975380895262083905140083484534099692427604634676370691926309658794022843736734393717948075671104694374923053313317642586074697594192975138911960208073271031138722930640311712166327192958365096422754281612866873001429723754589442312195306228242504673900136085527966369540524583939099623555016954546953932803230832599535239122356083845193663559349393711167225651947895152164206021432284914857272451924609985273518376044490499384539394375375225568187619335629385510168330864181712458637311281776931256245210337339409196380347093434840507933781204895182488759886593217246456396124747776976015667531292633986221143710037030014550485977373358040624356708047404590382781857903833202897559854739232842838353800021443193799084007210963022395954390202927538198045679632914201524713532027053345481058841437714874051529159853062995163944346822312804030063944594937151734905792263086639127793833828410678364981334217649082198981330658188696339655378841078449386497044301071601444062532746834398108929882141030979633424867653081341421486146798645222957891050519633686059677559405827806381889426391656144906852175397711430046156051039903788986073012088943302344226230167991349787813666072504834216605612991039111836959788317684630645449172717991221526150531470625214304986331013277905275263347798257690703846679912271494456498935311662349289072844972029365327139379960556606516487725376912529011163651545772369153279498316607361231507737539389752424541081042046895027362897085307057309613065300896754773126884457195350324510208117811008422264444586234921747879417883823521882601793105403660059775232577999929564020329237472909897729524283869598360634782911586260495011959187676917138275728391578751472275692090074119517842456464870897449318797294901605715559488380682940472094051204221304637179869452846668976855591064350633896921159561517361040769302788018431829341532286898372815806484698734250074274004436623153183500075633541134719431843985473171136591147408790025608017607067945820628700143593062131769182892976237706830112286188118013428150584291385882687682999761806463200558393264848260524578022082991125163643780257705257946488028297031353722318720559120518593819436294093878946213706021808822399588104329061636866662179320958360474737790293181428838641283315742424046458434669281946559761075629215979316155903674657673067119244464030657796634830833886513470473392506050407134116862031650173150276344521113505446435824173810214382083386667914190441777599396634858481621393786594641942780740560613602435780129924857678243173842604603731267977131844749171294721641002103459380207689861169612793391148419868610806672786480770144919854417098353541365346907349223705547016729561809287420051460220335152311458519410774120568910994471476611814463612818832409498172320922183999594799315526882442210031624489099748700561152896699076018648710432580891198000083095072039534770415802705441355593466707190625611400806301417751108218689749688064217686069626725936407642467158818837849428425037292783771119840035822426535920173977698203449510745251363489298532659946300333368795746477219460491106047166667658455035014134823344782339846428847327340092633792706669934830174780996323594003142978843343886750204227761784508710609472926642142157329084855295197664689430586789369115371273245141378452256624680838184091276168381237265881190409944019359275598705285164021731645624073008705472013540889487084279416928588506490419345954709944154675508268761555487706066775437891055550861691436118722198511950213250320406403294771988431750112166295234936382841274029060751088868353204814029509295270250974053403844415464905596273796459804449682137096585288445571420053813232026780527189856289387426982373310612257754771514742386607923344238141016383462984533307241337429546882179419379447685565586292215861764273574461959145602060079841018573012444387928293028007105002956322367269341458552657590416262666977675337114565137019079002607166220428742381627730344626949784659618006140568845017488431542629885019450471781090747610570751107452024376666115711482554469888998371484784070772962768608567600249455261615952782410217146295259466101309425190283570668952629489773354862600277437978132565431169680905605257550301020359492483238579847667312724167351946154098311814607949811991277992548337831959984127441725409319533524186221321951497162649705110663030271085292988640517223073289297216821360993133218092761175435155133441908589137031780072461108491327683427838589249955555213202736544809328358609854036509828934766358696513086637725382663935024180419227013507280449450132140938253510987876361165850774670856357756317871606163701600969520981277809649373080203262719367509281485046874430334424136527398297733830173896429713267757514789277634510375459922541600000697641220448197185292137930498880356942091453797080422719126375513363757285227022313401294497393108070341714216078536665155357761066845706330732980393878294831664302261890773423081954221217976994792327795021173596109835750220028956900912966773117869367087264008212179533424409955442947406132041506623005070800390666579936901190478707168658422238106095237428163483292522968127530663408323941311334409459189078302961633597649646073664714959354116434303293750201940772446741734058762467838676977814434494997004992045948624579095749850750500296961428121465636580423562901421640628747419438008388516373844047129744353358502738668863282055024565077625125546987942630107111251500432115630727469792795589252484433789416666450771430231827545431952298954611032238909110118534940016156624289450895556070669926097982780557163159572968207986191411765055150535031495994009924537736186175345621907647725130457948650492131045636449632250686918402569822699760034028804215387767601419581289683468384090938626274332844452004237318665968316234500101291501458403998542477852920929374952506962626888428624528836846057827787445788731718308003952495425401992932782724558363161015128677308625582133530394812310470372963173811619577375354280902464598104977011533989673318739778940701736041602206996023781871739143351228717373027716869054912649726634830464143944920025717697639914012791536057225286974972872521833832716823362091071711357731833046941410271827599549319466087582201774039418986225065630599126978236762466593617318506801437783426839336425181969140037184534792886908538499644198524319551057175726829279337221695987967104249435180263098180347846331534703479190878464385274464207835895529390120505983851182276542266929433639461036638212694257139916813538617202323589854009935560802879434902085921844878587397517259807065104780361125007759873138216862522372159238278750002951365778469583633435281107571431379877335773149394156733209915025597359008872737916507455098841623472330460660418979696897834120829449726432338048733323294339096483830629687747310796496580158794166792066875199985277341720795970609445011437890950290532723102028804709947134764432242642798260208164381845275109723169594357863265610921040556017101586378752217540550179349915146894694118059993270910571900562526761133749585522601941007126087989330330652224702313196079572223586457331009145258592445757492171029357603800714171172903111441825388670943346924576930017486454711614853440760167036202875438977739290176180492956943067211621304965792587568035168019739220582026149264082540517876845612976364436459309625329476471987407163301166420430859790397153957516941036326037916816250667619062501203452008405501933181178536499468852304297397470221247500857402511691853099145417335052269037094981989437084362871112867513401789859886769247318035280249045120724402395349050265570249377833578605558239468318448641561742252684051531752032601104964446973466907384377879713428765544341572782233932973498969372072668352097249307968442383284130259523076164098355583000827277050432427508489662027245411802518415302173141255816220093785194636609716277541262265847771681705627623353696747520145716162156943854063842397761770560293188770975504848748242431269141468169140321872519509937994638775504317879435736353963661023386893132968397007881152187369604027960553944208142600494883680159000689367861631133579277496020597188311177273359457215350607017840687716948120186959749076190463781622709314273517602258919730574223072644119393038566301388477440583268597162479710250753580496210841886543417481095400441744727910241970861833373891800105126248972903685428144307836639663712742170070639088136941733872546370280696059214188187664364730958688890283886888164548128527703943066444216312788278527896235349386507949805552473469937619553734908225479987209743525905636964595736302618705067615627735630368076585060830741789162763381312480068854613302633739085880485942789423885959043545271054028774228945051310631667472006549835851252016358757021156587055551137570427819062240044093308265330205657625866750052239610497077086881735040917368275212236570489753500852215374755641086365909182364552320339280133052201505182297570665009738273192014243234898569534053317713215090218989749514614071622312595433455760425781208196891350707439108344186667365971452162121866410588988373070545814398444041620068092361429487864923760501912113505156699520894684988418303098131711058345004401169364242334314063546599943556254957929465706314582722498731327239882261295730231144103038739962471237999691438223677379954343156681491692870128376434645797794387085062880189582125607688015868857600741637572694402975249867265532266049376854709986627573396501002468734003198990501161119708926276226006752728716500373074404077547609531917170960120674436395452443927139283585245317930208678766133136244957013536675954213968270740573212936316655770639388531384259060370242846873538675474245573152097070344281112322298539161766197329854435677822137771467254048149088515518690448031350862754440958928450379669731045607504337494391263699344062573018740260387301581459201935163936549245845715161008140838917451722886715772141016995857255541917147265243332242974689288073501555549822574288178647783596833853343864005735417170559932520607653049702855330562498893251203149429602518499203099569052721312550686775101742860080740062452880597750319493351178893575316256846335317279221808849821932087253827264245881717807532365119115178656107603405122877508138991823234749025305036035467806400324452611190187957443518880012315197668545610530406609147409948215497976028304013150200483025167830771294940526571093162887151235144069744677232156198741383986432607508079447582575255744480547852058270149540989479488712662857890668299530318033846501288359592729023014830647573781625283466194158763910767059203745740474518412987779513009696100430138097588843602455759893180366399941772071697010694683864152401626499878727389162547585201739005250171915501589623923422092016119796150839045413026262761476729666248857792846006297381832321895141181583457340899557416135939235168553854923660333326932711564708708020959296733110051814803093843641721965768975978315955771038522251964259154664531192067597635622700429007509824803035474398409110582270167682299313190190411173590759816419704002485474660150579783492057117200543388113918651867046776547465366924700715868207553323870415529681330349207834304914871071364969858966556509488421956482203552486437323765492198259247858997705634250878041462229902735228615632401212631543933785329387100990938523881809364757581966836764376669471876619336174809271620566376480481705184101142440782882643191500490323900271591096957692072304095054369446550328114530448006531786172916300357427678783455342758758555751898537462098923088145123431657016850300409769170934295022247795529767629187946029537633870059578902405339520461861789083831234844977551479961554452164575246300147178512343300750424388762677442643070928710175040097467101318756001003328594735983632064397029437066926231882691034330603304276949186703683898513109765553450985025475840217837691059217301549825885674680863201342016496259389620363290794593833487212356919718338547177394898622583141054470786422909823786600455319430196830307116187305514772547323867453843476189396818629181911258890529345029433994978821712067058455199322699656423778093928080047682688032744544582308398724701185763288275195184385373166683049477563592169966108819637067343412766110902155026689583778365861704685521730957116129382097628439226890681129334486202756305254492933092487358588287027461278284190807322441664875584297749308719464331825781057043911801145830742160809922282259858003989458294201773626530634803837632930755931573566881498902934319213695371179128471402250957278164270987964304418128692112771581262498317313164130074432315937908931910694901411564611718201301942879074032508920069592332887808104450552083904201074181873897797213522359972229156245454279830051427951558400806572946810587476482176043667103949383428286923182242312144779787810961210885338501347870201118013130166815502458812313564446616066142654210851935628561094350016311701419993126485334299737964159435054561680821586378144018436052792060968622096352165832253420722010187669097288992274504326306808607581059649336032298531101054983634308350674672141304272831699491303681736238957558152134485637462154582090606494621093136815733101940941172474077450123526866060857784557955597068983299614833331583791067451805980379389967209154204439371413976099344386663555214115143801675440473696025645060502706126222136888669443847906742351989930135849441416824180911219759555653957924027189534575416740159078317937606309505656537629234964763727967420427913058037359310154353998710011000380782781523009507135011507947223274406914943297620869003105372414680079064986974727278223037791837199012602939338412236726736722655959987120249898745814468383257897471664312263292113309822492629929001253317079860633604352421309925936998492038886328477907292380954293986820602205899816444395862408073853358610202883115482503336965026561747633664051382760851995140487948188068338897745878565887868403557394865847537715229710784713006310209158672233976978017820113787687932143657864100313620878354549572614201487247863607594943673723617487743250271813944615645237645857200192446328845755779948438479810551984936708601729419382148502918740256632619148790107151582186012906238440701171103118343646888882862617101156461735685817912585794865599603726957817356760444111832327892956777716654257852326246791800443971638099843352984650906633397730995486545563523743713822973849240352863282925329156870154944556459697835907720495903865929644036189580362635323030138043321812395948990015267215321276830441802130698083884676770500567065188086635638539591674512727965507818616800016658101659679921217493516390567313112347051588350568569892391864736866334210715983592519106950662267980917787686339131492858923287563894019307863803762309234396218790234106069904197639126622157668173674790711194039707600238392664424022911303476653032640610619474177152310940249438583072405009440356350518073286225744266624122420814367391980880818995068413870248778331934206965701368750132298215403960387378951651726739740853211299993289125763246846862864463059212887139489681543904626133652277990496476118050701909638823011194907411265692126004551485392037244335506943012345286256749401969231931961437599353357548499262761625252520578931563688644925475779785757140890450445247079384650405508192084127256975836788434007791846814004100439437583656421602939637631691463581909674807006895201606287216913677618346111102299806806359554584384305309683225414023272361363224931048794109818048075194648699221789369230005820078347929060390524358644063104300913418666950096751154407888180690828933565237036885749625662563145367714153313436307515366583099202887836753972727152644093253344143519830350163919330097310542129800487088162927078257469273370681021294903657579542515295613634426069894259538652079120137932770238666517055404821331004627638863571154684805893233162567342305029674867159627525950977425896911889469728672271693035929063073339959823359315665845132379738527058400103170902485661709265048580276813372876499649038505670969887034809344467052650271436690440812636091443896351950619179672362010640254131081298880411102930963311206613657448217092545111765467988885969086790571160756569116692767262452212653836201186700228725000763895649776289098731788188257091972703151373719185344886588507950758672226254735545891469817268301188190819313446075406617501870829703253724923281683334065097346616808339582006885599910359129808083620763750828580437573184197967173011941108684291634006601456462376367508633258042068982935263110565076580666184034665033358881686335311486798508285566337254661992362900970258393682816790931624728683216578117630947677122830627805982300695682591800627773206764942182027138129329749625051164350043542388900855877683709154670458013630171167901131003163347942495653486535468014634754937549930576922996387856772268520920359571392037387181134472616971930710673902126611580336069821342089598351413814300240236778120419323351824117653416011135357717282299104741904847952240093041932905367079149891083289131160906184398940818195064210494748615452370178345661983686115945429272855437576041233698527570639101985862122260220818933684866490384554534973326396530003374958598427561868356007423531013912773863761829276761460415658254737590196905232734488786876719879362132337570539656215407392143132895028061380126443344207105775674867394808004505550504229055323345968834812501351743180675564977066522390914645637365924360573071588298093608231545388683889847792843914933952196158725573865575364474765283692624223174547186026729114502539051411643722076842705285028622171061621346661761829005864015339167552486816399822166096013901820022671228462251239123031972559510915287163625946504822733830123621928755460565959191852644073873126856572429279268572233195158993484404731222323599460849056551143123775734130814208746816958911232385916521940649924792444994029350238563945550629584217458996761934003598007688709168481539643097637397254019541096063008511557324132113461447353750293474818640611593895972164343578044339560185532238489009436579502613014312564750652840880543179776970474331177485507984625458505149715031438869172932156332146000134214462315399896848566767056932510416956078104442723195345322473866676138985206774189412845219584622142802352437239144762447995421013177629702884318007827862717097101244571703809584380617087487442822282742970784133011644606101011294551336501952598834988884216627364995503312566213769963720262157208543767962601468068003467319519143526234352136823456451834653976506293659127280459402607901625114820518088588885822206027054496011448055179685397601098966549849505013099224196418416389978590633537471140615565995268290771455815711014060575282163153490410793823398690216283299671019378829089497551021539664751567021584783074247090316316340685626138954730571192201258770367181472741754083477455384390309020312358172487120408509234276553459121130478546261299046546879587458329982437409901324104626332470667934198843948777629769940438837372067838245332838004082091761183508858361649659220247500441606521770790069997915051585644410077046106178418535528930654660529080308274089807721866399541304656057267884463810771432007697641353892088647461046645007529827945672847454901976461588655659548650637982665141894131349364259593722476554209890067197371800401178272696817370683632431773494858280698480790236884855418464370603659578976046133173233397106811540891147726071807428684676164788435926133955611202106210397181041117904183859241956968396862739603004624415284925175933084246497037545654076558255251607082631542700801170869001802276468868208872990008872906066768321767360215331670637095420786861901063608668928472810872823164437784197089264157753846986277406873663361816840757199077480823125082313482345786112169240390589901465340650943114748038229127162158986108821305613661165162907375974522000394071134531618365917069486469481482197596207491288586588056920642604911470817339377630333249262227504491639249270699551226918779296891017365494251872032811277106922012637157325071498326797512020540916591938227838754485172977666879082383547071221259002475387638434997051883075491903743410473294402406055348406800888358060490320273675496117496142462611323047698287130421519981423094207388468851351570950733356842777424040473052143190854970936781848370808093389295788041745639283456694871261489993271530788309073834849015306221576910471071773397754674402534321887468223647248184666157491611605101887326444955764467296904211548639321508840123152800454923654775143840284905643129708381714162980218517350692237232254288004212865980983369989244448455360521649195936485361249493023784377831609036378176798568462804538715147052427396745557638214836080693581154639887878056202833424331931175477566370808545533934422425657028859335722432927509591615014157408081484996841368940569181132649866958549995307717246280650202457119887535151354286250109068460549081472782736585953221844117231105899794568932289918689930425901696326929915384427769819017726837449452435904590605253062351919332049492167126745207712600119300684791096392975341002667146847274887558773002550865106600432416694866064337477854350413121495556787057016232243940671857960267955386761669185206854784068529409129432907449949876835198101088375987214306608066696570957927838611017187537710570762042213799852627205394159213121741266655066774146504430647281126375892455075601079959374001241887690116302897175977469176849266712459164706211477051683286348496786648171906017616205401093355627570166094795163478875399348543808272017772513106535658043069296628327412354087126091835546916398980983734882157360459841051009123167697619101142210728598360221907298794498106942632912246471686830950513642570828449300119813905183806599053473029815505307852779459226581484439487763882362904901640538547325036404915861911498916478289781226136370211336577129267629936446981786924923844584059551208720554988836753036104957770118519603949612576247753748403189821347131613981518433938748914158725455434197409875910223523430889669341780228319828496284188863725742602522827124609306319308060134084418085030200025910288782964328434309416594504097034360745139209762596964218593666023649211024912332488711756004530564351911895450672378883248278888150909291324839803727237685863027554058922367734705312852730454817281329118615892191717969601428749520530271678507626881352251783702028637155909077439316257722151560912435317603858621741064704402671526267342879387422084981867075596963519273126379198995186508158454084325313298791040072315219321623765992071671168117646161806493091367036511579388724991712834621548436781303854531589617292923608977953084521445501793630017683337847861279664655530172764857684905549023445712548553782207677817673759831562558814093266344887557270480887541955733317668976036472774668011353289228890850600410523201878249850185568126602162040762229099794954040174091610497028308235247920194109578117637298586995194169008376408397800172010592555137485107344668567619612450468045580265374449270945350840985726872084354434734002225173065426073643786121602710768283645603124045602603384282933440440878717917778647796850047737644302723311455807013236589028446091948564822884887165199054235024553573868843137705793390629039982833787674824795587571401393025176628192527414742105823044355676126396671526351817670261237363070471834320325368543980860696104383618079010176988376573398299477155132206810787946422688864363961846604713615710038825144517680878781113180655969478925472149495225092297116521011318231383760051855656918343102821137690904401670093157568304866657025435613329790447912414060575408114881226993400545474692370101975537761945002209252050894640821032630353909031654776753209680595606327843542715604992335166133650837155302863467528097912613470436902112637316488134154225760673064290503390992123293079473615726671740360824033066440734248094142369929286566000784721174633708040748881113583701503149875270377405854811155717593882765131713029065314491849166415030229927404387417246701122729056608667795419097336814092419734654998430030569224021833413396721611274902618167326551569524169286969869293203245123027059406742111267547365456348211189995744446266719105220908484930675145909442742553492598309688360505946807476942247012033963418647505808138638015642550795394218188650570057996751308079484992162971807591861905080079273621748725655149560633310826336243670788061189866198636290110240659032803366924122674947467537042624119931295696343303948463444474483205976020992678472069636141273773687158326443484700037784023698743916809949119796950114533426534109817592894412826653316724420445554374049170176372436394316311091064630952346389493507767778459252024304316773085717071035377389670263507878563996923510569458031280513685560757843391980527911958072894600972439132015018308889699267262125131904081043666859055520907247977046312308635467138407519730607041577593885639960932455024084024030820647208950734788368030080731973364838104911946731487719448403223818610662721618705849514120729851167624627349357929194526592552074462203903855609180428056105692117173067389267786607222720239965137074993336780068588461781686521156660306301691239269991676325833087556015809917533494333473412354781880013257785786177557383765084582278708525346898416546521225723228183727832803684897201475556230823112476075915827622303862583644285041733012172652254444424607692969404044964875250741450979921686639562788425026497793149995458814568187241654616341595141890555938750318606748612966476969119146594359236278942409772907719448621644718090472365833775959540254964007104559060696538081324476738719720331297745486373795061213703117478283008571359187957099054906640812164732913522023682588094798658217957317897402002124293003402273886585729920704481186732441948914488209367950947655161312603206137363722690914636394621508671312722766804340501114448058823061281404026964425446410751397472185181215820408323097635210340931130735230835048046374643444286407641969965902962734814694362686139866709708599548208782768088150709853530186954381170931525844711719247609801084267157381173188870452491597545176951405191714317954365143508049574782630996189283092396303954262936565042519421954816087336778281358376098876788265883064587832680039383911147402128180545680836454483689726351993802477732724932828414402593758213032727706756888278498253341023653047418815089645299340681706575051928992255318985762560141464495831003039246202503335274047404787477223492477721648749033803437346125175727495587851757008405387240218442866237319183812678598431437237921046661690431186335894581898646246263819929402188303376113002137098484399948194007646173642134166589749062787749833591182605589769311241063291523884605858593245578877866361892877761018214180977893842858437331512214845779911367498868616857174817898306883952592115671623565307422563605680832454497159515088664141476819548956715250333051905259183098952931486348264302656266379156711129751652012999685202814353773922550926616254637792858507206763215452517354110914275484439698800040786891228537677827895020824960220729779013256468360176046469347932756155649420072461134863747646585314983473745548373179341177882177111471646351930227285249970588227442827327047761906010531434183339042480453675814249469309588873449446514988849687665258455889470132631172621536424309958323626311161798422354937278346541193590358413473176842322990655387894413925053972729521189578800619033737511781279436458012613234702466307039396081972504671538653970195735860590993392164939211250648591850537775493838653837926142651120262918961708656700623392854694336185802163457198023416431307030968588295078102152496773207437301594990413540685912503014419320640589665143561701348138666419858644628662695460237101785434645260378819789265832691386920025723909476790320270952274511711210834825770153861254999234944457120127282304884147652049604790398156020761475421539394637108923863731448972289400927391906298200560121049564142706945188044054481519672719887767911473808234188832691792517153940168958768935273532328678996504321578375319391473206965672882503786560812573394684527262311358387541582129289535123409439858475501075814070429363317107608224345691192958805676924944534674475272141835027716718746940914077343374502610817888709193526530571316934837609674849867804193330949160194787523711301259701471791726617526515114762355986124888977699975077911000710735377139676559379582275516726279158619483954516954508707225842769594375219216459087910567119721457374671300629596678087693988057630903064452916411114590478350676571399205312624383835844446059238290470810962815819886115464108407850708358121709116809076593969409612610689689624605612473759538396134339726209914623896031621961675838917346864144402835926584311019561352666958402568797925185962710275940872840273102417917825200601973934218062684887606452054020511515243014966938904603081055310662992869896708984062986618899137598462430182904585235298867022476601284171113406436995062394308191048447863304866388126619665368989061194787497491609541322850171782151072125384899115799229822219552091612461575764300499504406975617738501160613999029181650504850609923252759755271536725728143671176874960174240603185135136098476356423673932392541352578471908733806260162448533974350419748931751636154815447796632809992168956767167471140493964132608092978698786155586603777264976711261862396175627552214203410235533816108401895523903636956776770893153504244691822106848217134189578179505248125426682019227752967734341589850266441845051846298482912564562219226245797485312340964808733198351421858855541755772787409077827239441491757188046247563475626939021241995209724883768401797333868104461716345159692143473138984599363551947165700080209515378259923981096120092345981542542334273769957700127151670297967856652975621176182858963679296307797944004628512218694044581148633064723930125501266353745883384410863620090565903346511635139456580574372021505685778627820871121878235167947397460416813769945558228289229053465875012090642890063796208264063693022321782601691833368525846350823421817493912001411647513262818061876574549262797023103977869866174640446853430940537756074089021406272597690761642501609941878121879586387351957812497496045467223067494826321711265089314714283506751727483935247525778098252200655646964932056001012431504021317903477081522342083856437312926608825169602665035246120934393423951965760928505672484454962978974488158563274862921345515735503450428204913510630832820245014194623425944723378943367898720169669524949803298534727147733145887689440853987909367359452106897295421587120076421122768395531837026296896162069171969418347449077598718448346999648913448640088611156617827287549946696262110150957979917653402186192589792215534546733776593848970740202167412759358071674863668315737475441270146181691282540121799245618649310435659046249399432649373786833546619164538642694924453999677289779600648994544658698493740145828178554869358112676028228817145032256355566962191137793051810684226765430072101962455009007189569423445499642129248124421095044349548649829728643189903142140665465407518193277354081760403627791532249226516685210518297109223798393602919586436490281213584276169592602860452134432218473612051503828552477022737193358284437159884875621263896044416024936608475786161654903787077171208919416476712614053702929998283267669691242470100182854984050620568532987630663240669050051504323924948708162282289786398508023151184071500856192773164097115739315792279410428332346282063755172880066596882444652747585031781724924405173726021213052760298507089605796032574430127589215467641038543852337373726951786027724839139062271786839475063793343145578503884679781428784964908086083661835247569523550546366739361979971189860987505534070588264322864645388448391952414056188105508128395730425450769078033912761000717019641748522905163780093577759861822636979996948638595434458463908903701267646583994376737387592441759769741192373098999549840229512509046763148485807527256610078267993010074626439863767810665421230515428206846999894006532384343070499153567749131755093893499960255096731092825630182322088374297613456478507327883007820968444720723491859593602076713670147474313981681973007748840391709847144526692668627121066689153178454066670900915202223331194258199234020101680315798337259319988866815438680570751086020512784799219381039600255164389249467571769982625595881067048318929638249309585972469043059281012847049704031662674104166619276992789431308341727336123193755134185405979524702637520044928980392032331193587468811239151226338965544702936073838308777919642959141770443175324515664568332941308107410513365605420451389930317253772674665579085492843600697430604238381622400619340183731963670773896872437831465962492495963175300571155008792019749383476967388393019513302702265706236582099746237339743371209754252825974250764264758980700089112287476705768642261672463583455150828106106119876561849677963691291575211819594605847605712411863138800833313021705545466614912772231917283114382747591720714722498468030324370874554029482213909196176685849987426127919309030844924712751161753770105299178062393081207423406227139379830459999107486974205421197459611744569153213671354973885322070057551343087310119197295172551276182044265152855492480404806016267924875508061133822648514598267317603941124458764051573078392357975316715986799689121099409519541479177762791773875828180732725798519938626163890743004099507750558204324362992957225937122337180586897561301748636105057394866811560869874024161451513404093360729009144632302746696987914598052527732241914212007582699996511409932657197072870694003723514764956538025612986960514630548915925191586003414063746646391856124068524068093219256578221603755988786439076406559404731069448882013170513711919633643001860645425863596550348029931214992232210870331953650426668763340602478327356562169313012520907936384472594342727925569169657185886079154492329962292710422657958150044709489951971871640247082065204950236350265624231577357635815881029119765771409372729104403461265493070489686890390396780927790199308632711248500508450085754303793625925581696541913016623046064846369589107171452656374885581263289520872064242666462562695374096165119681123873597508518383616874609396827138350787602146322140361497855322139960214563801553790383552882142256086131341141767114032217022370633140358354703723733920944457857755796581357612809111590280981160219402803679984312426020691273421098730543582952889769861210805457868682752126491431811759638066998572683346181175645282080037092959069060191252164820606917114845573985033871755011283028379263608241594764372965456263025662607765399836025678852154007689856617038131697337659146279524615321014932909755820692103040681528872192431169683264372182008649341802911223067583424005017586081681176608335078428343353983800267343007614127339121423040171567892104576440246527751000687551419265738099358224385590984828569536873125823643732248776700365591126648935059905302330096634060334823145037045401233664147702921469402491794892678431451387248918026356036619793912355891798304321923681483760721861642010652408248001345674090954749105087296378550261432732531319763768311410107052619456503665477948379220165958040266080965114545993255722227109544061534201499238981270735676519353087738257860894749929799996532229921432978284278051059944866661685199700072487404286823018314891988422389937663328763836640003649429170477290384033059498008704112833699824262408352233071372401913590622665229636750265864169909983558570550068897510648885000193902889662064122660818570446026363804676467423081949488833802808403730393363843136147782711900777194921853044303869718804692413037753940225379704324167129518369175606660261658767893805148151867458076389874270806557851714146316310374548687604630784512077701384193280714143393667422498614102815638213038174123462076774348846524644333711360955379266131577049302822025217837152376446285933576189052710793256846773017366772614861372393609012342221515036778658631409132610167573503514737397005575549568737765573456248042204986553823979527973244502061773456948657693395246386962300749734274824839445849801291399389219320273625916894465853464241300029120867227278266764320757871101982443366879302371449026555440981314206237442649233206987648245137501823792432031166694161322882564981739648138578687281896135066655446369545543716417088644901401033430629431865800780798697565840435140488787443194059582905826248298157638394860824505325752544871015509222245716581498648021925128541855654034207734403483719202937508565892939841537397449441479928696048810326302303170125265569310485107440895576107182091164199539473461762827088296023157174008815968991140828732627776532949330420035901301453547655409918145418098735632865377982376763992602110564092035208588701331066466718460672563785330700959760130711859379869912870068175817361195549096616859719436655887174188713267168038629725201537390408200965677160964956058097748633763925302193644921401696828514602786245363230072459681254109083889767402821585228321440981805928998738668490604078149662569318522262793835863421840059356283597903034718181932209850620280508428765584796460370582087584532699500341811687738353336992495359804902778250856448532657787161173457332696933002887713200091887346813685186044906485703321194567939978205511141318308485578701244071974273239272437984627917464585298668068424838200494759156963272721487434258487946418814969889135386308273461402379457590114264032428648494418907420945613104377530727074633973849741329941200600517175503473448195817766888291607263618763740749286287955957121869974105748134256860425797438640075503411527400545780596132497807145920078059216764779510183999534621974967530661611900533778057807617313199357355970423731529418387761302729214868836443829983875663260307631345535233038640601699732686026622617250003233167233155309866552665092506409599658640753236653064939270651299152999732689511170382956560835740374550029180959247883510783880012786332882659089137582961732648927562683098492241128925462925976695246690270914441357953993839126082011376847984941510532207327764348141052937708030559020656285980809612977875002522235346945389542068291853289197742520355716502257501076559134418323391144676912331603948478301556181797425436114376530479336999308776617879779700158449778092061418022774415829254048126248918174978755545880309164227800953153108117975239289842270872614416633554455476896529927785618585840566469998795615671213991489342890493631114393132348601106236032329821574490593204102378538241778444757484851628613208027239462811222695277854547213969270487238327442205743598212998977851120965141543362387709620109141791622536865138016032245432778154932166027427037710502983054145034834992204959484624471146432968466788926324691233762792821688272945793154708168298872112608345774936199873817485811630356151540198879267121769397330969950678382788944112451571547865509269716551148845481764135516152219657225264844448132542199593741896536851414352224010251357483245653111089554582335061543883163704433513764692742634036999005751855177878361063544272867894493709220601628512701226352170601857650994561953267567578285704323054677883521569354820640282086566037015918849045039628419053184783416936402212180439596498198709198231586122100694141340120611065951663293589215935486803977704346932981975709355476527619329914482607752778867203044687396221349020169862076418900217485908108870427134120125721861027214605073560396584393698954551356345611820115185573256495039668165685719068795444357750634939485076766823937527106185539318695819825237527387065172007790279660587777925550938684610408675049717213679174011142787649636649363140769246095707233071461058794405014033496997582538852615245812155641775739422801613463608177375917727018274870515577717146215705212438107113583134403896581911317486383589006196065368610035767147337858619756626190421995814893536746389414062243198622283732971938982170731915128381977588948097123696130346075246250317149010794355175660189684755715773684573305761383952995493868896682699239910267101321119123241686626535452100490490701986972684564778810602967080326789312976771264057200425609235317373120161205664675183812943586740778423753654270069000529551846739804397841397469402109861756998627934290659554981676416562788835579035658927242423094262888030358127010860636657459079202264565891184760838121578900411583648300726508933655507872568408070043226603754667061499392612349196832887973749593029420519138869432764375903632585183397165935336737124965317290063053442140989872381297552198191140717640134564427514725255443781567650425110333858698699546677098067539828378280194939215624734422258883873893750968465568076795697287797244856766580962421997848410023026471593064347187090024916599296777617711138321658103598071956343708821681674600726166010946413224126898687907772748477826069176005297722745366109515685474350632338322582254399876230315841938214432177326644409553652585239641125588537210700689206908590457133470895767930015134279049292240613018421246231308751411569173079488272343430987484298973999619219411228078378383069608656975552108630426455011751780553973422433295982652493903405601611917646282078364772502360415488324749462547878301329170844993288265178829149767830522290679962009901740974375831461746894361409990001260732801110609073164509103285019655570586162787920476095486639639302441131783774495990787035258590539077768260866286047296427269734795861585108280410882464473223032995082199473726086192476867872334339121555263494493068526836166057191908928113997551561302037976336380363211695730594476517855772947527081216720849380838288382974748238148808788687117644221080725742510666340319201400323229124739297637697713322172000799347826312629324931730909274230470526831804146733060306123885290088120124960533762203489070692088575832915136877504628135601347529573879038841428393307587396716743286023073995187918797118997352930038868263342315596065743836989494176757882123769042095880743282329493354789631419521254544856494436071070181838480658941177395223943832321808536712688316352491526606880708213170249468917717215415161165479859746641740355348727744125339902431624526327589202342405141640991059534705459661377532278092873491356893645858756217947782614207779995719572165777393430379336536456671370236694738109802070208204620525772952769412525501368541180305588402552500879760347635924754847669328820791307774371483549721722908332200541872807280423908338663061522631176025109002774434020695540792782959896137073142320238048257465922320931536429959998136299164148988591708078884477040272952844663499899791649564051992984619146384393971965591939936458791292895879571464749680587132989862831361883035291072177576734227811296527144571642983641241883672460597550361330191935843240673437181483177645880650022870665392277557811719188723329819304926682416904520801715655090568649626733786500095548803159540822938755629844007866279987926889303157742437637123141930378372309182956801506984896068845925548957591417904682635726295423793657958072648148172168995437294254210979073751971781880020236666912400134054046188075154673560446537337115025891561119151262907247292128389350110384257653927742794621791769700833552332090496044648856537928974618909650225574629365625836271960673311118264373309213029068975102711375173792018910967304464412124888496767163502246558451110637237203925396483626247356040642779165399047292915783009998095864193221773606553111879076412491336585435231483844657066128776990935797650553890304107742265533246179866643451791123875544308005402494637724690779436227787237931821816080173165826525794870394195383434703678341917444731273905902704494020980731274389461375790030699373758367530899213743991386408583008109391290736000756327758403301260933113938354146541511604157943561939573351041752449745805136713594616232260165544116230616144789183772701904279013858592550462246629904107635972886160271591423344548043317676704525149040534576016184776088990992838744781877548924010214038575700152017876884027328170496212458421760810896164295639813446059326030582036591722574637131408815799645795200418144864919222564257399177230067486779487170540041304007531141817484808366436181115971294515089736078203355811699587057726791557374068307195631859029266981866297285017278488565605838510546494873640436344446802827243961215534913441141098928578075788199072521911985522132136352648195334212780572519719427471856296894795535547023949729488653502642528114154499139062726129547696529624443035755316935117576226971909983931457845249689018402658011897401778085939853867019184475957810743427793110043839919278921670914554755063657822401344987959869201969057981040030278021539080243492459171284483595119251752233119828233841874564635176410129815082288327514605026693273938921627302658973121961624987400468840406587723131337603035863626377871116821703988154715786725567465758512604104449281556234553707640793349385503050887005028684147417285720690105753706882081500468362204684609220330764103427960891352222203865419915784595984571936927723081056678609602122299443783111370909969805753101243482206883807611114811777146269300462199867410947672434857622566606584453099232334994518635868515484848551662561569302070930275706744579230684384725367272517012087419637908893423027978646466384342278711507479073144739379801118004116774942916348755364051752957798005896167162545329904273255969633121188741979262688309364647362985289622565030177301734197235111167819541493588029205134968939223453692987131271779175451493389416302570924874338649968873786318701681412337799023851559786337555922604006616556285680479689134517552853982664602898847093468407246331556002862712839705322341651389884373263114492931228511286173763203836734735971610604225185884340586452010104176817758478656017615453610239539800884814240258722467448334850547088810547312309116907867428110209541889515983919682863088219465130244512422508641837915599884627059790858735682513070740977796041723063292227488240545780341632110581071025668028236951819989440507105015625599801273385917110141912909154106138953257301809614051885974869932130991326914916298721940186190170932549692206072819338666489109278896778741499580799696425165031420905386610068518292360265285623043400466392016300519744428323541922652501012142483157874484445944909409864180654830510944409914197058587526879981602540788952672970175803903750105683531577549787399071166096362722574931959855412247937889193035705741778139712323302051680236939069128859031229249200349560557819227649930554881862555666935789298660387635905603549122807993976712459068892498011446562206638322851142998505125941047718338829692199114766707369444161998418782667419382005458267727371278037710432505681276975160932675266969212978834469100493098531091191454066845046509620392274367837478812658988028463491219347416142090735137135724278628418783007436157787898199443443123553248540103839240042407240845418187456541535222424946701855178502662557294293787243782064997758864875379720835079546607035813745373950834547135558490256423907542799917122197489720127020463292071211301042005886118309451270975150161992288449366326907808156707775326926460614666366050233533588665799057004422840132479811931186443407270109392299412753046352923332414454840779926251419018052886290004387713207496210397767182509046148421997235560880716963550057112047826559865967031210660926120589574853112944586355890484078358698959249070518155445984662147347508189145925360466390127612374183773836445089253165219759451495752215214704765502063493735905327753199754680011771235969174011046213766993130820144541772712372095736375583176185213751728729499403221978001055801803054076780003823278142767169219605470221755096928644684479553690466528648909245149391153495312663622232274087232905540706711592527029072362360194440313228044980159441145893375405357501563839195350427643750434169227793863799274746988973457391572145243881912112531920404969381543339117137988272712609196928275574485207584024950786259914966571397109371759593069208117212953535248135418703078916017882387659338500622179600189620709891655494727630031896820586526369535999523294585951268271599599272918114100929088786218864965070956013908935415359264200266191203498985521665418751994987385866854622749281885804203080897005515745682583517833286923063495179537471982276488085073293161484675174696911947807015474410946356333875457573423873559814440382817575650877259716041242848911069371569716403943247276606619591063268719904800108178193109249620510480779739807802221076457203686702991683976591167998117620069844559532849605370327980796623427685662672838478416505729584921599136040928111118605933512777136837675894093633863100280481104739854558205289165036508575566382234203000122924158911222450941179092856116573391176422258733789614998266408081025326633416106493207808095301178444222682617265069450621121963322356005062338642255307500187002572295956419660068632231178243349129695862042457574841498616714674086221887501169995189366281819422394799467697312508281286254635234630382602104467606028532195141217254804228584820582417186358373938665824914283249743322471280700031755530642400818589567094378770610209203379262732742062425856577747695444964739048095171608927489946956502539721449495707326784073818920181565918297131577768302608838402254971266109466220128226911685577547887616535484540116020095008538988717051434331824324718050654457876045600234116912031296019293712108572816106690810760043180177829385156980955463562052123445869847706374739535143325539467917073274845426640809229883713606090375942182926584904515432736228479760587809792130442279680478738437710089816527930335563322004492079086805670787777447786395832721442788009393277161496872529063664362798460872567069831352115673897089953432830688506282168639925696257847806258331887222277347268520315765694135782276719046400806400830511343544064670153168119603017753413442893993497733832128130711141244341658908173419624673994620346016918043314456029083791625089247386284796001668618924570135284543062409079665860275020912673616787505540760041660140093843776490949087766909811836944756442661979883487619239324456223431649188299138695729573801132144652531212618960106395563856286683267810612184435367402474551954541618651379950172421640362976234237628320212991495070382011640194703941203798137038117168020781935103247656159181592213879028380570520063831323468237012448648128063433211292684933232167390959414168203217494302877202006433975201939403165376072996086419685422985946247583087595840254115116508562170790269454464307345445648134092678934002199459937109275571697148782007097983176934569228877605176794442564730084515873473808647503793839141086082890350302274448244555125956672551861802676404711500837863991317329559516230526952652121642234523805472342714817109812747386871630048497320143777666358461018487068931435047461611549865088504351762420265309332636473157916833857265714127331664326867532050778924782658912639394739263161991637936309672031099894414229205018188759302228185827568500300417021667012450221408718901943639900281518846575985793888965091361629322155576194843845724948568997284950761700353902797394162101055485127970495197587891581811336161362566967320269531991157121858537147051313748190119571671478497213435860519694644973003921839807340080336300397131043316578825019465908775006283213721515215455734986560761401421280524542132028891913270943546324472919815053119829108507190700211818235607922615480391086812819893570526636933576139401112149774294224608898673563815689279685349683287154821021435125982380741019150088142677502207915305644160203145033896403302233921390365001390053901211404240712194280628259372245379128535415999706268515444165918911766359755732481426702195787331534600860990805738747506073327857304500080164994456573198996060221547660637622791605010112894440959348622345065576210041451892851548633109348393049845899022017429643705834968514693587861460464492913301264204609596851861501112585370430261284048965404842827709694306853874495037152189025176270222015852515320167980191023790419355626122502324054719744342223531834081346203064775950891688026272749569090350490001779341289467453415693362902866982592684593511519515203795776012658541413548318957099416243927554111234882201145069170583540858998555175851731174443980318073468211957882240849356458395196892846994335179499819692538809810683581352871162731501444948598577377483538428021797169530424055428520620983687237414110716591885578380345073178893301633189857944189903700027008786398043566814477339745144305919886142702897558408087142138140887439157960890511534953561394430079583481636880247169416223633412443197478422851567576984846940081781063232416390467616568259854993119592956059674641226218199367747756310349936774957824941755870179701991395958410299247901889978552313000572302151160600745723632142304479605766443550189629368450791797289094949062092842739201222626101999899830852415211834842136924408909752459498291341419835767035555563509174447901186739638235427013881496982476793893171637392935715260366264159239177236858083621639025057401257346470632587404849493011316787607571578198817822131474429949405380987366050902179685651670756445470451604454193370222087276876685411021768188082871484266100917112970748827181114838255749993439346783935928640824545413488773435032873485488842833752160270764299968448465386821419045347812933473723788145269922106165984522141139062524904712620433167173155284769759895596847815412042633179197808720140598726937702322337753542065070558773173688591472277579763969667772620647626435137739538810336016812128041290832341166826414289140102132102124113266414296262068299513860754515443869624702384734990992093139498530430581629905653225677711524685907070234779984673986815898343413041246082691684576657059043716164293629955701783755843879092225567197823165801093523227549799749679700236216094908472139014779108732694269363986992288341063511093618936947554597448786530155842595882812007602444543096621228082147075242533702596505236481366972114746866693774734953469544039010455305385072575321559689272123954357599350805049916013427110408032466935739091017554126318125348239262596208401792452840377936055114202424225390767721541311489350480372422772806692559227024196306259807807593276278688298837947995058986112437007699438061568083235348218293333897595716713481719320236080711497495160251380293030104057411367988417493750641310737352044488026149732133986463205824404501623996049243742328292683000233664885119811344781314719705956674388595955174847895909245823670836871157088424001539068369019502442718721693787330509803134702640799837293015846625266500255109312629696656001442545727317138454228132165283153490988192703430942996221690286310280084572371354514130051453964760876690290738504378053338380946392746907901889320714632245572727165691978739361878571479855104429493446469442933531218203505200244353922640662778306790870897565580218538890051783516510845444842003430458786270915481246196155369924235209618848833919017708320597534254030895039185771331807388981145481331091049662336881496798012673822807799976975551697727643179376200947179923410727638765327757133997248618847638999518408621569973970245175113467720497866914663074742987596061878084963833015369842156646412312874767801153852331166048568473090853440684804667132276109874156946872609045539196163064512315488825099781785377053470805106214277651573705985830901259494474300048161773435081891776859526685345332400003445902860549472464610876920279711026999614769103501396448068991250062957933061354639526050512861019244284321904738077937527423892942583729140069800317300286598609525150818593984836144829548127028712891907337857520286742501614926348974775782473023791062793247369164390884635965027083605715246011720679880854432243060324833715791922493755734359596883140015112206450846113577115949397247252729335171332780695728428539121846750014598041222793959504752958048304115916089902437632884416577673403660262257876432036012725350726278200832075358581086459881005475326743255358801452390642923905693327527100107173881255775666329472564194800445866467524287524913952636012483241098439030751056379507219481737946219936559981041197625273844005575367109889369476713220482497126784583478229609613016972391251101493664698341727632621900804794957890559299693877699971836022568613210258356465663890583224849678172613101049355333347495371343762960149085433269662904475004797642459642200738118307594538444688878417629842947050994035467981689349611082279602335765174329758638832221650275303798037740978714882288675200132818918811815283797405102447606213886214407294132094451407393929511325722223648830773001203325694467590465917697413603142265118525934224448293284243174645284541847187824143829533474715765363794616705838992252203394181949584189544556986428804809159445234698665357046202871775735196345883609507660582652481253069936368684681753965936993111279870210717692224291212273077956741644252708449629589226853837001472999550938260573180937977882030190543540474879614374896294678407825621039315376486467962795270552120537981039699148838660204621231400833386669469221376582009405714195719527473596477211202070555878697151779275466613797381979848471476119666862169099738588851068128775297187234684925863256264319464304874480874768040643658983939205315546688877700132633902409384094293588881304889401284771903779739379040326882406425219176981683280495830455560863580689525840532490041116257790280467199462826649855175496068884291187963978790272686581293569974026334127057226231349882483110224856277678972513665489675962161931144691956947676986348542340153454284163279564504088439249249562005522731471498134358818122172045485179589803233697905855531652368552638649040234430305848691710606351429154986568908950926456134673805013786383196491118622954887408165853206336773002704768838085301734962240337694234135799957311332530822150311978373874303009636289651006813157731543555775763958707860463472499728263451191765630977110892620705754412234351841725491140090050416770863537117468538077521198522908432154990697576723126002731499823482446227358485896961968383440244823561214282690589462889867301982737738189498893471144608873406862442020335705062269406212153242068622010579940537086954731782711204902738061711216875500061410217354763352522416043930078337582366300551075069513558533229460731301705512359824221914586675104367507174904801693205888283702239289675715203537808841536848368171596494854612940907384184565248452031891572182784713626853874869915275751979323356311660362288896616056265591413215145981626671579418105155800285393979322854962712068925125885738761982641639113411536581217953680423081249029033370818955138594665833470615024128596640366376853862261735042458259538041984662202854699468433878979113365283340639066799533648783569071823627091840154536574234585972459611713913697521884949229299861001306432279314730869721939608740510357006510565679802370501210408403074404820464451119540881562926140184394804803108350215857676966344290285113477578209302241254492210223484554051725519432137709523806416653386674788836300524726032559556301614757988593507376001966249027077033119591882736717274841166924487006885904088495563063074250576144892282395205123349626690462441459767219382059137758163277617791166946410600733404710742159479925604077529865385912083139324399328811293388112290333031833199589562697804721179775385634300709823900033116943174561045417541119443471281116251429007597000732152400153282373434709651352037298270904098673067765064775644312253655928811872266072717920015083812105512738702276840237563630136208431307240065115589781317522410724937738129055975275482700983437675897961372606777517210229725090964452744103216930443759456102538741527193770014130657807767723553825767476640079441882742024269267333042604161896285673282895650567449455282780712963041643915097689389505195782643533997847804230519474736788039361245130227618525833734001026740928474007249801775054768347351868389218299933809837548921490794684300591804465267982257399566000993928240634123539216769002509149390380680820804521976023239280534497152138521487078587277181048432733401202515612825435188298402159994695384225850871653785360665367135870130451480843022294538723801824184712670511296065885397764815287290219302227877457005026622902739284199942893490656209418641074261313905943479428984760553071824773501730395833539719797476241294669792638649407147370714474729993704315863108811862739008521701144055155917817469367433687310359177390282851166030778146531693003476212455135446719934580805233855545417695322725322686686320150024945173443614846274538981833115462853876300497885019337091664388745195850670897728919364363172923832544221905292454582461395462297440708678633511098837581260189291909100147491328178294157174986006445539009886279502566572215358229920547387195998057571192596392195748050753483560045600375928983961449226955997480145345640741704114243907884497807806611181810957808566734145653300094755322718699905718172348484393665613621329270911274590629920187362302455748203200858842323239702366236906733819988145840820148548331985359850899936637888458519572964386980838375901068306236567331805499623671194939190258519771461246845877165952755225781994370154522386041434509897096094520751963126649288189456834028489749449954776071613650370709060824590049519309467858492844547338739691415611966148468819030979793494708661566952409336506472274401535423420902313219808880525427178635933259101714592249052805093466844592468992519577515848241001026217091244706531967737958523678636509302905474409805523667483947032147558604544672141916911184624147884593671983331257301119198299818658117392365242304566042597476531516234323582988321806449230347419494955231041710425881437794408908061260644373105502474792127477195147090873330810164161491312984166895949894416022961720573716169217704741562103066747542331802041117206030654196844177664601905377856281434790187859944355787130474351265029008064080188887668826395834834723941064729372791713454152043129911655504283242210625796735752373496486666874108102522266622034158631205944823951758691784176162412071424597916911808141954983127146119713379468701518670143178788785426490574302860073913845572027697266130828509592219741981602551319371088606155108788808881452636582027445534875671377575230121599112356544169968694328987132893961380213113046077576620022441668173236756647576138266005513051829168123304372996418950807354307873425331006774199749489672089411380168482543098170932946397987271118134043255481730374846579893916610393898549388147204257696544811179087841434801824557470687456416933768448179151981755295415533322867178290494889058786749471365491252835887340460207554499976657351323375668928184242462106149601951332374098231743804906730735098139773581461405997396334524865964531901722192990154909737698442193684662739131823827100698011509219732606699879300553356188539339337133835592016412503556727314573281219099542301700361305109478791130990781312667457426835332317849840962091943587556866923693226385030624508086577727228184244335925494950717263297369893696058116232976993609413691967744099970051236142589766037587974136682298756331224814468452924843072977136426750277984914010844237031171133498590989909122318899082222274665127460229275942709092214273378890805210836972396450260347528074002829672744348658003026144480968852360822222137231401393699439172873883377077670458493482405797513646041462530994366259118243758769382440269164925327766033603776730028522056221239110952980159001240293484328407029055201150751668741358102000154002897452905078878764417714922996711721943605460378603461081106482927018196150758380263814614706664255830973346615833847786457397618910233414424446574353311245987660189847191901821867807578869256564468705290756700753587128292721823575675737269233488286143234569545129321634296908950272010172791273285049875690239627997039384987491896218896714004390569730413424103009637937064633828880525841639461798099434067420095414265438462642422319499173939276265869254560856208459960141773475013004228390513055101418673055905100136910263225877211654038229217260965567668102246271789030007084216154467904815874527339046602506612015029534970098038386503804085235311624206308731246796922667707040580612140893697109410711934440851129218361138065207842079209714718560564662386292957995945048934676548019448773724118050037677820305000228690509491454970194607437341185735337616899980671931100116624997957112064793273503192343626154495570350840749714148315536637943071167550432569053276024181718351013674670675140664205102176554001758833340027066020516086218695736650349181373528472936365155598347709163023153714637138406409480682358289707842719536005149849456336354219386708446315592982041927384831075683947765616198936174202111007432499925707327190625044629377878187260810747713304297014306187347804743155787245959957252837755366106345102742930744416976863404163711217133252626504569646502293067250176579605370784237325182094962994236546211333063889856181876298206835421349732901602419147040868202627483857925942027715617752870732926493063068586043177106687875480877133238858297756430730655070855290825015771634924332078065333887025638881009999608012741621257512021788849748415796457131067720105732125549866974825117807263385728472458948908961820631658504409237528568127370019549445600487668975563707010289891016374092006808037009089812987176293662835573823006281283380538747212789636256591469879321540072790862160011602722756248852456959756357507352233637357242264062134465306729536534634935603001428671839647042720592344960995864085032404221016861686312261848987703304536323662594087932165854343481305967419767531885582686630525672641750334251626932711158746193505471973605713848614558070037880585544315203822384845378914355099007394431199815854021945244255276499561525589407088818241725808870743888475873655263916170926610579930350559467542520988298317614869994996155834941456447084287649438312409083657418596631684221492514318769705061630405999925300330314067118526606271338811150736699290741172684934860754173376250080430664671233394927579707811044185465187651270978425769686736112366516569670113869846158209426939367600450479175086692259251472876827755373053526714945622892009609148082509037411398359197652741502687666329693130663288586481489386236733883504885196589557226180634941026685029436756279643483622590099657021231623269510539022661350500798378392966752375645326027623698971375931583256433784524550536876159770566840040470842537072032436957260375293410151447125431726727535760054736335429543860031605815264267477272985440673370453826061470313829066958941984839894448576828028343456308989608095197249970889357841540450671598656368479310808234456026136197126629210681403072546616586961384404317508578656055428465272018134614519323975031107056114309131802031537990410320771786714444406758318162648859648493343412806597838492372578003959166066844731234169797496491470624668642779650525959035364573058039708291196256749523528457731585640811402932594061784731109962195415406603304229071488382413041099337903632642816107198898333621928023962235663632136822981443377656926548839830070139580053487926732995144803031149559541261658664163041438672525608052478297263944331326344604175211502889075606415953907313916747841913489566499323930448323171406232435017219076732961836460347097213347224153946672086497666903337803331264540660979999554526557264116649857456486989260542353294707870498038220947237033025251682221785468394915703728756226783011157549524463508367228369209892022238637416871519406026913730596800631451168575809606802368108377911305188278883790540655390928600737079596764219727794471628523172257588219812914067565367677405392632555429968203692945185977559660205461843594549498216375145732762627472882747210918515126509867445021843816920645525050701400099823959977893298089119009575110153929442300366327183729600045729454033159530542171692667040908943790113893364346932685332006572061062565777519149845818923739923874752054269488967631747502828477570077397331187225400850343391585027820255237446805166225244995247955181608361557583787555438259799960224653660563177463109877441569287099791655244211615356212283594525999634280734980169796547949276410229573358402394117948907535248695413644773632787606243738994976396730893908455645097697577289100850410070636729195511164384133416080712042749698599383844680838852048904568065749459875526709586998374799550891534293109545917325932117607706475590633138994860776756250547073580551434606330563923276098971337937476196934628376998999606794083563678027208265736749140505640947685633864922631972046647937533307850780363828988219657290232662907458875231771057792602790792778845582584810964880488731918886295838772198642758934781395754623150049032577387260557253815423954260990999859426983343452999181328692874749486912347517686966226209724250867718406713391089129801152141760296901775714957964596546950869815248634368591376533858144002056400844697013098779543107832927898547487232382591330968405343837402655336204474131336938912318292317938949547640731851925543361701474471202270183226092349800336316191135339987891214704754790924485649426222347167027017974880686254366089352070207358376220583740771459563508098417578071294907188987356754460830537707305754011043223519413645511821302641103009505123609081813457566242596301985432480373172131643866418505140689153979963060230886403513327447891513916531732928637757950810691923287702646768485457339009815401119082481524912312926812471487961378487983342062483712284837228086368072524619822899666329529009194965173490380750755915810219666793099396005420499607747720054708685118306996342370387929363736286449681634755472246251208310778219172841587068225483703488478571647623757449299924251179921798360638124825590844393117693652906230720222196907795558740677796428600231760323102766625614807634011097834960809817873467292624962863706171085870877076949665760522778253343238252655301285866403673925442215706081772864626858605422559121939136668486399359466772156169159089251927243313344731946143466221794482924765590386729010256006581107062111153268187315468131823370034081772972164888464433563061346168436160779057365300034748688513511387694093329755786416403301683352692242071136917406134188496280685546070165229597912845782369757460750942764094166667541152181405602209858495226927007071308804808506782940454658883949270829845084884759762268494005262004510641414646465327932144205855290049885184477007609648253076604979495043850227634947573594259871657639796288643660528697658857508422653796410907830616960657369883066843234013555575885431763063268704695278476100240181830720827472217081055138086566782672214221287804722849714162117341458205135242230515671037486127556321342470584554007397687934193704711641374187221299977506679095818281957298987710986030070979704046827535879948550869496596937295590277248885390763379543681822061599078930418532641600431612482325674074303909990178180828840459729198505717485950054558674160346408851208513868287244792771724416028338454051265723687697401343302697363721975819977119911824276508680514767007090833921899776085088974860792728729659731730372849673979579340848789910244959667086249644046064674533235923777705608901753754158174262743669398958581307962277579476033837810312615837858952821284691831790239840137938264805762395780192128360501365681870139452283726636445010121333573840884506183151124507139584671805396480544481671071424281681402017386767500567102328272157582104223198173231184681897807706635776124877781512841773851088956780124462146892872948111129185921768785914646479985169563776549388107559155903073714304353711107770047959762540762450862109642637276533536671430889470187642875185526568682318931672213922004326405191443803872426628547804462336322032873547860620905868327991291558048056105670788960567244621995838147681188029123704006688010036305201268136421351407000899243335577195666064311655599499745861529147245752892034650433176033421625400218983645024748551827579648792007807143323919212945443242391275529971768536912128596179049853236421206199237640002474257373658414810018036132835343827280483744921836983113223288249739842558063650689194772260994685414340283012148599993804166312320081558931941731543474933331587817475859350338391268328677354061244401033787218059331136139807153786249835633488464333818477522096875384351967054233517148469322672054156180523255225128493426497935579151242740606053278516310557371488290068086881303721462381615984430453148934391870770479363864146746043007028630817502339096802888000358910040674402960743809195478391394854965957413846495234847585358975103047883760354642336130038768830379703949521296963492434584992594820096455614180640949763761639067312483539362569939463258215705701350685412232748983463569332078542458277603984404425510932911435234301993615898694437402766213987142121006178071498724956724846944736852589755232361787484767369679025958817681079124456080569695783444333717384318779524894070238122467036466203750113407437671280757513571621750529695322545811890893524229660948003724359596345383760172596730784896202939097088507489976163851417457155969265509412227773212865193573541049059725545238966718271384831506011684210336447519165322538038671396368075811613426019907703282134173343408413857498359331641026969988585847185113507307445120397965340166893544975355297383574632590838242182187140994347281021399265637673737947136461413500661697746240797146955553596277964966464361939184567094439091753141136891287535294394223444921771898591822162768995942185208636921462737951208586846857181693759893409949764397032783091130790867549330690531881252858362328094390374120205177300810693450039535816381086760964212573383841786101819608357937003979186854899570829341800312590178733292223861399064651553900396363356988112359413941909018847198924782283135644258346198850070825805700138537001546721901002549780795614457020116550495708494483774351112365778914213909919044850930050058413213028992007638904967785937122099805947590127997063283004146511186220309458130057048015046504521701080483300671613558844950168623214877521756593610110402562427836859913943631400566786092707970846892743067193666650031305948374213713916558244043613876496795952550713517393772702119239005070972792095206532798827401221016821604704280386517978528562601291154694413311262323350411910946489066777646276031655055938094949813609534559353277584649168511061285121163579605852201559384448397392240203008322272495652734446980839054346243668930318240266195622896706514463977306511153680107461331036230282997129602259061414919383530966299194920489645804812896345974077127612288651767879306894249621236051921959002854959610694815920237956535766059292064263847514893543359546352153602065153032740932839858991620804768711549894212795665433030932899357696158864428813748996960936644370745410290813896214089299621623500980289525690400721232848934149684747015640721638409425543244964093187408517308884741947017393512805632705578985126523376435976280442436472092786671680531073528271368654442621100720410879388264540187533005431443578682486296475602939961111430967711793757625221740038092758349378351784825577896292697432889426034464798518444524328827925886647445406995655074056959171014594038610846480473551137600232116830094616328438197238595739832287151475749631197953111437059795262646083643458439627037076044023733360404897106069196127387278627144259671991595943150222994371967883388250514559509631466543916233945757418475933694423475942495144853504243041675656849643227390675712911180351907071159403823576335762219220405860820242091707880754399514533650359488539913284959679982074997216471965615054036406056492449929771700265304716368214028869702915089667282740208242299024365609262714736014400312545226468074690329947302945689267914669850181441650778173031407199012695538905885107330372230323467342125411388057206790004701794130937471360780638714321016656123869622502598567738938815504297317135907844695420649730011372030018847763649028043123938544260956538906529768937265989985089856074332923165265686447623627129951803990201427540013754108651795834711897918079649965648777521171618987299716187803293548677386961710672171270991339296772498093399525489082506893263458220214597820565349347901473992609011901205399673927657177611511827185268766185923955551762302089305014896328495914491043912512594591719177630105778927695193975751267347591014834041970521892343345365637463747006919518706195135972088794533978071709285429183536491968678405327969103525417692196872601828442268977695456009220575558875519815959477443533343162320666494116419866520686402458797492762822668820880747762257700384968154797388148248387003403469114795756247306502672204406682230851278845698923125553605861523377343314021594210649911573039277423883929329793252122060662523224884965031365104298847016295991090304785431143992319366401063497736853487519354928890828375013103241800424078718220515747201842698821804245959986288893628729835612527982294803515807498523143731929623286470124764625593582502834643194522080998611965789460183843028005296648169493953623344931047065683961411212987024027372125194243920194468810200255715026746628527150929617900657155004980922841917545075307590449726237521842880261259361583828047820583288925821514683339100416810764462660897586765019636143104886955601179263105068429014090296505590103240904592529193955270572971598317150675171734423884520016906178301577178486980542003474634766911276706444171941773664162749444196576742466476396272835042184903513105419179106522112167555791894005085727071777409051525454320423767620089482662274794587037970747000100593887063837094157798269560138915443156908002385149226768850284907395312518866269741666750134318016122920585184170079841800572642867337849084868338837832867303958253882645285881205943062261564838859994026721968653914935376720230780614740495264170741820768352090869614226072597300899265089812825008118225881262095876065811920951598886446211767434443315499943897750775360369689293996358201512882446089929070769205605157000820638477777397846217570152295585916444657086782415121879440644668364491111633257712083106187449019107381284617702906269952827182205261241405356767068029260353181458339677610255395379994397152517517446156361328787847151387817951297360182872925371133559050196164406666354098088262417309395596770695339548314615320013045873233396850261113141878019507025980188905020078890949791901175157917959469216852156094258201480232792397915326424487418264112607641992790908763177954045434563121766760971252325987483955448995782892480475929793359442443713682438501847362103642911542813177689950543866967761849503144806494269552943577573163061907018945747132374339710771858025479370304291690703261829682061530904207526926048787409790036369089028445926746369520921328864642517581185447839707312697819494886446885745163280234083749760222627354802692258603382461554646176454275393487003992968010220720020364468916379721562499608123290714130160493231757883257739967594163970413656879263302225561167984732603729979400399325006521684869442093914387574563578941619210521992439433194415871465128735052156524472755758442225570450674755337427423335036234369962906472272315608359690732077225855508334543581183882545653877246572546671088984180966839436353689388858731979722747024443233602232971481893791068359008835156660694233039002136891753927231672673115799080644242085777694685346232815878941386457654461042700793762766692757530260253397834795104318681349549539335362811012142618195355384744306612489765197323306117223380282242006617088199003485762744367311209168401273381254188124253226180119198075825389433508580266027768055407428513281632425944198818899298656048872250052173692526654481744519002583801039405022792998862587804568346138237180801773600764091945306542878012701035507329191198714379348006811145454738129515078956366636306387101770257016048010169091314502478292456073582656057824603458391590819834920535106497182617577004899281290637289730636408304588793451779438017228145549713697987202919164969316875663924371564146731787688739344833037914196215515437014691841618878951379153702237990230810602414038319173142636728989426074423036763514091933193216488472348935881817264558222828507655986949459030741855675205857738833534610908474465374947392264506854584769201605940847499355746041416489006789693145709782994506410053093778528923974380234438196274281486660021439548162085499501808585881295357054808226847229195200120890328169930714451463251198261190076724052078570201577821289464162196253242980719094319466982560793001097029175149012711464177156759782418902110331709362089306272622862350982038918792033862848848651019752835493009447012476861399328044799049002391436652344568398117670082779968888555005995228619651010599394073294674301049971751401976342832409372186418019900602585495355192521161023167143610977134400081496929957764189361144409860795708130765696332945712483365703496877840691739124376568961871028925645124228791514277125879071269042279211443070277390154587063384909370550837451431356104612558685895636099680588018098981859342041019049292658007438123336303163286107561824094401129301468436258204406654145578441644723424069299584509237451803295441740723100787585759573136153475902023748661291178134922732267614750502272760424905237052876582229388269472652561884616608732414960653975735395648964926407730491592945289103190485235490677618704906624104525728737977568662534126801608481012349902271690982645917575843788054554575453509587801983173870844667261335110270795983714985617264619205376895006613656018896018724879541109170977812020486846550202158028853195933014773456796955385033318324034331152308607346874852755122380472325703435947039886709077891156644733334991029254912734610313972206306984773249056314083380394276066096443421918802661625777768705687963018205975712010838049847282162103076496880162179455999540116410400409439761876791912001622629811820300390670569347473794118641699163880369822354931303077877110209735261045094283440973099812460830535178895654583331744786002493493034345377481554248352994787108233427233045984940660545654641167857204944936350339164868041558435325670362332121293448104866321374456820236311297659560830653573448847307026566508395326665524674550480249925340944663349955350939624703130928540886281733755534752599858361183522408873633951974808391887656817617531875187456891899898390798674821394734006298301867599565482490253986229152856066373543624029334742842377776705323277157068633985729069453222577666209237890830843765667466700823632134006336474689315734227422158819931683018430818822476165879707626976386750330990149944558307213225954008763108730223120960875042480049847821354737791943354170977094366704342945550173028844461836296926432213069675462429728938989398449301322003259960926468675742393179218919814920917539250663174457496700866151903007836514679383618473163424445178453789202882031525726473764964970490624994112183369087715056794751231895758909505083114352241676702478542048957835488471463766061811734517136386026367486238685930704835546312165599984070866342316889800715149079886743833882577949520524019979134374908162924487933390668219763790299238912261861801178125695174338808546954657767937836628786247240169283863115997377273436373884042908099712817116188282150039369528288440795825576909657189134570687987158906879259300092952601484357501366880362619622032726664694668350770530642607029061791170916002201506196924582428742990468658074440211663724757111019729489334941850373503381641255473341608420889153831146980427737486249695160506161936781882475630464614502338535335090239346798142142616967061056243383707252026710529291815021402371461386658000012930023618664999717271613053907510643360341173196919313315125349434932725943416322395868680277614359232433746609093120665373167180851587826483089855848397197252427616741068194772908961702100602574377749793903767486871912803741713974182801758879024927290728545800850427289104544677832545256597424918454488014635197959152570979859534278943663837012335175111858591130559679353175026230137993930387150254104387616189254788765972589738752207469857496910242065785419991552435899422073937615363676431880507596748040728110977433087308170105182253511723927201825455726800239858811081978762401916517177425067729690544161251835412892000099439714898371333884776968882621116463735318310860055353948580420221645223578177502736442151213852008739688216331535788018899341024028228593599383776232557291759127385808827524297941343589870488883785215624368230653534147545331621382429458605681111926726688877071616181308461774901201520409174303126243860740020382194269923573149534775601226942827503706112634766909515910390870881210308154314316571646707684630064311978691573094927837301861091958772589814494270557394019308524998355102665197491888244760334213206581703529329350291419804882027070294776706093901969529316420570605449749507180815758445820039396015493585194429948433871164769396356631366410121559001523886086495194092052946147362528677692201593325089125829842568465796264680254389591888775134433798650520526972820955461941378118657033153407186947570742639295352380354688580014877330856302149448142457208500992270967065668667102701502284520922089958317615942601401678847697189229611526151528236956674410875675575997522896072754943756258004645395797602121348617993413796134349782070010105658281190300438163688916747483120618546522586074121147242458060685529617619086324449438944569053951878728482282559098908767266107680440665559646672504074618388853732802319310683844836969157663331032964661762687969438412266641186471980425987772130240595310010443971430615285727510331401536601708482065689734009930902013065363719502302510825806541203519057773163613850195650845841683737779279223394428948865256210636407528090767465417315395750101769196067802995723324731642521569857211625301777972771788614374348843624717720540733233970347144827388136926623763497643178975618941691705915546191532493371298754398391772170576711058767451470643055872395500433904743641536638049033895010432673361750767458729159471255722354951066258056864146441383484095178407030639151665151847691449926131059010718019512315169649333189104908800140197374118847719844212066592332573056451684015607136285306458091846698546289135597596431233544363532435603006853885359586323179980236529887978945461873720306856419230951815851369175211879834395224963051858221529052885690362299579333607073414774032977702222305298470301990346713062918062365196830466413852276043343059491879473033191906697431490793557645904340902908810368225956852899880007533341993477921966357025519220429031870922989996359873852081706733209453527308049681417525181005426723003683050938871436426396195232155829282047495708087722607832644745671832136040702682877075608542800440398422477130001287175481141901276118948129313981332590353809298008929161857574403011703350449389449429697443564773076715530500383068817582709734253717824182523848579610783692726865941101444458604754128700046185626012239189248413343384145244019551869496099658945854291558371978833962838267063667102739717568593353738296581443685263606675860564637528864053118108153776687602704871686948187506318214053945244125523115671089549081041153352343145639927770990328409227412394374404283245770562909841827762854819158171852225020464044885497439829374989640585631084614869380213015523975610846298117809670416827502102973226102142735306312378999252986942593186845667913067035136642270815437991463676745493881543534335499735675116646533761119834445426489833937859728989589859825484221860304755826066106329601711685917908288264646757012654809237781204007849429813752663697031522499294132117159709421512245560859679494717325025586437581714930944614371817331922357565180449107389422099767361342143705867694067336715529504997303847848974702842748061406556149475832125675845524402749290290359640331455618522050069764915259760193344457869136312667653958475399578985436237976296528441248042888838334048528415067659960679216913359552849237388411885613067741571764174286492440229725300276113267804793093873020401921049764154904352207587085047759871880805405664149847287897916093321521158246175722655038668653983977918268963636358359885584135957930208302297863563788850295923319923252679617994046779282096073942756278388290584438196196822507987097674427146912752381927658345863669269137388945408464903565595780542853551251838109774247033926732285270318069050466689747407988967179102733148149009740113148368548440497084239596784633331857783646351672858411808336100732932647572542431168660098393008211872018724834074523579998688430343005508499619617094049354322284174120551598495794224903282143516047967344624770259395629039085902770593686470282276626872588079808037916128553289390561113291321635582747383722427710203296270524729709019424040719774840023762572691355969764192468790735693155532667852461000206959398066486471376177811532238578983361896023082276045639329614596935906970881761090889561090199339130712218998933108059869466375207643809700820395021572828075540175113932010248658049889306878416275887474059703727027642877542941195856655439797000507936952803562824587825951688317343517247902864023042957403472533363248326898265293810833400651826581389837771682243170383581320684476557354198505350728025097481511002113448002191345299768802223067091710618829906720543115891002615988158514074152023011012871881721463989630963757167198128585892983199228350641015551026638587328278734444223945869470931603665842222576015546327538111122676358507044476560552976634844320895742150622930151926997096605566004495447274014520346048788321160194732821532583330707457697462422738889271494691328273374491764620834493885679076339579923088234246147455817566561827334357124273147431721698957903321116771121604705464034239264430847431232570385405766866989611461629534900183316970342771831081829030820658171540420740940744851122525522934940481516264746624545666424136135728555533275710659065798000113190438658933898581026516719044011689856248362640642988107907994063942469894547107248017752171581962583610364818783234872056033422694258980664759449537795771690921083238576477665233811661856677836054871064817412351627431695860165508258576231625096070019814097737284840382484351805448362219628729751772685513276464670386770222487563051477568912532876020743221186098118655141882453094319412883160940406005378887492504976870409649342767914224972846952544830073788955639262382282326071321350581373285495001340984606353469981793980527942767189685962409585754694618999592656159998526618993608958855935101011091013658325994374451671497709547269762351443311967316199900309885231996965406338955746736435965650500949667263822574491318972939800445249639642800238932638016606142063695219623920688503881322762755223765889939149679164262010095261794265680225922667992478900153328564542134359440418081520070953663960189413520928092512941722575795524704712296751373324622629873193805323190396353062160730828668705934228173096394582876090738639512881897409347290234363491897620773512194881583275592653565173530675910508519885781695895199747668626959810112731134810985850632747122097934642217698310656361144767589658297082866840347468843435827908230734689922764054067996630952827086866868741439527531538457625236133828987266586854422800612058788234594201835754354430259764118773400919590112978439521793150403545162201995377680204244386490270868042722371997799679946147113921479779709146187219218802061974781882608076420836763523638848355636815695230843881130281074533993732257005529879464120040860365095508789208364435625544981793520157966025679210382214730098954547439497367477696581661282687717016603010388636184693864573346251487527508934509828380399959647611924020181797653811896187213598965077934691051673856346785511715094500677914061558268920989736091685647248778322342249204384980136103991376997915766751530624448273633445753039723990968628143495945147765598866803857113537746859884607504842303251257577312091835369187271381842187288362009727231769580789414471972744229845329650598885000513462887910008887048409056748195887722897809050024638827679333489925393062937468645547179139018405806933006553173352019998605949091864963246093099235845025764549742217890838004569398581074187093199342057484912169536518071790865227946160656971426351107827623420129843785234593029999319416045224718552180632771998480335280183338013328968685733263770150814335059777519917615107880327840366032332027236409676383585316049039898633966747781390391938376283266934635139238532533808295377966165023834328852755240346914487615542098423730445567955281225790398032448968568789291152040625465437149763783751104499465652111378856261405127029410464664425470759013060496203394955128621037098705536286444058006561232876101479218499131961116760348474647645747668964187040769249644078062934418954810970033406062583057065763913783660258920541137662843987718011698588639260082576839633464238318141845415803617131384588408320007601883559561570290928149850652913488049959878438926868759607907715189440350779908543484014692629617939098775455806525824936538858868851655396311143039371859630857739796895768289269731192999480289974771129840470056484622089769254752704442998989164741006457866887688491241289659058984235057146527235269097135824274940163602454537659645873229896954987283877536893217800151749503812290843613581323384577508788517992503207938679657817190383698082355902683200232117220104313798585673526489491715918094159353856551228278529372435554876155944245147866200313703161744475162873362945202538372561188785213772020832783221734225132088696715554235885504909542626227622739969924813980582343296913345676942920468989487301007615525532605818231523868975509991832116337989287276614636075591504611225558368514020856308022666215743841410090092197728677902406603833335680513541587959116024481467035686001760554448171424986104520053228567997248584347529845432427581208211776353038078275302187898962715426045126151426968893290417129069889246956048260372354973212099048571467305439053351790754827666299793270034533340742539542776571652163185829576820563256056189514178189377253573248972765694745191877972621441760669295774718633737600751035395735722464516616129525037902267099869665913997641323371175884487715716235124615008709981002530973749214874502158198276724396193592093449416126876521646154762517634650066780405623506988390444847355767040953296926754230075383666475041932983027497515926794902010016997934133622977050287715247699898823001360033834252180148298310782547563142583670377692454015535856063760810696683417298684005895648520729574872230692262987855842309507772697507798333312176319186865673091032527202711233095394097443420774416803224447342101326309773769334340620355309323831531737528583459465200345758566522014504457501380083057636806121032361127857577394731092619227330528593960921569227547023224160539482438353432265994033663657028991461668174328279271126082671789266075322590621460031656932677914880376941644944191399843278041447934926046241807209885613273936203023181112074174664283628197278994283417035470913466036204411538789716262509790441050813063565176004711319334497341023160412905086324639655636491071853918799396990543248445054959673478812605079023447415885778467155182674425957877194529188998556533268127257766237977585138591877971166964820176598514227948817636931179071072413929919905740602396997746146446066446211817239506282074798189152909829964938260465660739651624064107993289954871778840926691206261650333635725790736036435825120024051490290372573409535492631991930283357054788453016389760937906572064970673395447452503286988690584102464299971498374369708870354688174348711377988745804199950843547857015961692268755644861032644169951646376106376368223645537229320195427370148050224982232660612019154412147771010401442337588984431402971672546005816910518397193038282504094446675254414989008937292836099986845402167771038528048665994832046274983058676431235039710139871033692009878586200215472084232861285566539540394705407618276180108275735367675168796315506247707379675290391727446446024543844901032981639853435802809577721828918270867062330257530708616658812355696289149867328768684367390131321075103863580036980177116684531439245739890134548017493819975949291365343147845224177281372913702075110492609237592732504289324728377294337146135610148071714973785572598303168705899659348688797094138337348627821440908874500189918412182917799307855319410815273962581244114202872156335272837711709790845713433150096543327451654316678280302905441007636250796759938882682397025090203515527421223027018494681656023423764466616664556282231417078141066061107030867097430633910512975029372802309938583691225084743246686213616567821077486591276736147591326176752632530674063195794940241164404106922875949181589195793707233051388632053093670650066462167156482413485112557598854599761881919666152404015313429910457795245399741138474744678917698314387651117528630402539019528339016830550699393196947429422234432632332765677090612320378094472127082894591081877518077349395034203150552090664290190829555795073571945304179752468991312305908720518445992738209265638564452837386508394040282722788328328380884155428494343622597727357297947560453013800132814522375868383903124563479396703642021154952913998090968069893075625393506266269851721104727115098294356522465142413723844271576002912904004741482107934953540325107811014734829249923269412560613649940951533630204356031484743684237632633724273098080912556272995859465507017787436262203140452153443847151730885438063952548165725738963333625584097681898747465437324432315720222480076772845595464762181592798473555961503993061256611879801327678062122416736413187934293196558059870631593416974437139571603480689503587368365671085138238268063240057718833384488094615764727270992797061557414642690453547274021262460845246156039269268255188142902759422427268801783849803585757289918388599451187509726199994425193009856845466118190443003878106926190533074907222133658412963849121334032647433495152016747666891584258908191794133874566919006979399336993410556734016542665838143425897203023639588359588804482820242425706326909610732046071351921510136350745510896017141957482319086036709936430680709136332510178057300412713610640280650427694904523971274189572270253588959117349630247235875825651181011263025692166239321463313266348118858595903465502755000577290677732266315091687255404765752665687242665108851665514754669392582346073253614092645752865663662099786560909007282703089430981325209252884887578477295036513867577509264953539274224652464230906826673021707757656286873830808336451069423688038372287428599393336729224987068035922224645184374577991174215326613899440233544753922426582053072626326002164363678250950487516435392287844914666139056816130166250276645703042747731934384729405581640438323708295835094800682082730654689982727592385508642219023752282055252999387306426008819273985750547544206985605881671514530026002676212566244033300074727519992513128311864408165126385380793752593405008863118172210357278116238088776721790340932103500787573843514204882929628685631432370445134008322973278881914934999067486605713264692236147097752605772701626346606836232241681522633478844982094091154150660049545533769611209875389704631588364276321790509382513502958228742919143061387242908044270296332286506213892617607987877547654775616524827601923190469381694417544897371140367251043453240112039881701249497495710646904613226048329089746018066908460322744010632062197692469987095689357703018161100068943527532168130794045687986453373964765161643521878397147552516541484935847273284234315150222629259074970005322088656718597871561430033226474268454925801495940825757000849509980018157854637157368190433759903613447722824807745168846897165774345798716475164960155620319172613109195732689204557967926629086716161559358662535565542394644043106648004890496263229692710780391533707402913219021782845122303894122870215144321106404232889003451824842657796952023666060210362640740978172074534420668886940903434205245200563845871366555199734673664578927825195744198304451109893378665011533934851382141224350447041479315398890519430539366826382016859535586380312163079287712087301648688412914153743775878669212600726463016599426140406912977925415638009763761746495368340690784509304780306271407687677355233941908629929569048983392435386605353069877578821109034247861015000983455302077403716712241928468766817963073140892716078655162196534380908730055989375407160272861114922352991356581943467181283016762971559541396880766418212036616656809107792172295313484551326918940525176981203636358468361449277252963997234257528662438603169155093095407675543611381245256785922044072033351027736920131990626286668181060327440967887381361725101782532493253095418975692840643386687795091145844176972315494003050849344259896581795530347143003550600194390129781618720844287696472280487442383510426346014251108885831018618423840160410677134118913251089930920852033014961387075800428036248728455717585741658367296258017484468701347744725398416380439839938967914937741441276882368772261989191951346055732639845747883798095711830319727082916173890954109306432212234851824824069132999512827081718550437752084021088707387520282074975727809090510927563109282101128467637507898149877872043412992385674074329250337264983228449700198416708978839929818357329725449681924557132954668508801777957727373864059937744848039518884632459125345544037586494007853876955076125541118104935388457117276583787212596493253147519205906075602633862600795056508857411223894476748116195599530571350901859254090651258084961807913000859564087015682771605413960796682031544182043447192552653160639859933133975425942152444756785074264213884344118216026602951265573266468395863559034620969721403849247267398497432522950972672986791188958538558359527658510551401442172058118931144788266620764937987903428640121746586108372949845317998223924483629313736937409279837671628023537425363197890787149839389177519246091971455206793963631752940876377592161093004574299634208461470085854291124948415878488064082032854683342192033547613971375874435013903884416738988946975589908037956781428932394696452176614258932412952379994147678209613812953646079053994004449757428327293086083416497864017663431148041952594533625596710730234782093613093110002863361568557790971752325163663217134383336371167119047344256415889189131576973576700157758043404468900365161580346653031072800148415729863867531665362105104525798623068130693254540544907873656984042649820392556173512135538172096858757157513255099665988157763038982200742913192254821153948276539093921285627638520532997196685513463001945236936191973801358367845210921718100222974022013215982524268014201828114030712196606752432761784896635033476562482969957817093671622142431517678935362467147720438101218239016634397837558100179948400144589112769414038907732586986034935078518600765952636974064802410337323083581507958720597426145460771474241808315766807877602018409155443736349361259891046074981646219515602400653398298577931916810544071015703952214202122166325667585770890817008845061939597885137437628303417406710149427775695999016259646177716695895148568123671641848940206543521049459814496936909785964337637261294163036622842892798712676760487510540465751235445180501756240566240070121968942015567887914614092841213937553646343591748201963890632795052717616339450794845175808466207601648866770255931460943112875582018911395636781762709320828618757709629660005147519766394206317343659088869560976054519033588170692180043411504572819126215161494531596271115560092732020880341890757307280085295096366098673308475381149606934557083881878373154507290265581944894955839013101419246135398014695228757432454625492265758374367011741203476913805069027301068983870974343646328115792924338206067141009312106492528020991760169701124586334949159675320634130733898562084206246914616166727393824459871124907215555401753477867623695480673992901390971501790980824274497280599456191659781203738578960051724670741033865069797060577584946349430759207798893152857923496955033749422279718213401419138266983546559337122310890673988735925944039504485939222870693210136218371145061435631193496206466213623550924914393999172670595771488758596410589652533516534056320683364419661255424821643376556711885339146425200318647825803234536315158737740754555364543919666007239624354747168214778548426872412101990997519184929094193789564088355408223197176435551329668798211754900885483546381539626689847642194298116659580820285620665693457214905447363088116551785664375681920128434923858507137187518616864939544874296524630146448622968718158156797579640045142591961812189669168793979386484736770986794934332859745347703127034579403052434959143461451688370884822812970798374379369440830881253385232955481746092210488132299396756302552109626688415466100682144208129142047037672896687885386279501995190334451759204091244586257256187726771407281946560738367721652343659745136985525829470444170927291165812364912389840194028697857658998246598650421752757072693662639286752796727665950904315014996646566727168204401038649758884759891553261953667090006834556566560807993114886773779267274519924940049000734038720501572278910957677071491541459950452071694377482701732098585612614942953310124254494095452941895706360222529274286065452868705373860940624399986257306056879475433908399592804576498985916536249832288238665644720217885919504226539293215717705379586738465497043839427065058966766514305951760642422060679711753931914664398106103218607062476673025051185311428461207564625919716510236460040690477474935314349221703273733536299205758128030200755893947406523532777497663552267638811129779392502719918811713873171953146226862642556547159487158376183690621007517090091643428927892020834348980155178898054723641398224710161251858300018013913826645880294864743446540940746254242797136849500744479892365050634940513736109698576493889628196635544192862902396338251442539757909364877105335315914531199523676183003579724099022488085133111857680053189294040070935009102700223844094333959608746368992678071402899312766534033307262127562511444640143648414977205831070427693185768679267267080613528111173773163316641970133123741134851321261328870714029783401160132043401134774679633080294936268475051457535009374287249664933442116203001980505425122273757654587147114191102746529738728775118260512422671023739403329430083394623218013006419488109991689398180013134801499187465674198820040775411473527753323347472324265944188964871115456148988831865895446255280955682603591101016814242537276524170308632010112238515468322634200678426604360648793787629324587165224776247759283923104649669925402885874169849300328113453461156900305546108116844879307672397861705423389307836991418131336364737970106680443855233444762007201924963516178253073273401494411444544408176347660304969156308364205431822755682287482555895236823243974031713249635353079152964958934423485074577279998493529432231704114406846361965991306652375001903200560604779101104855847496965471816288799822585747450402467241843249877556817525148397913010057439068805537141427158286409734971138574022368589690259619847159946058869897115618005137638102762054346374852871293966747744051074943376330552278223657551135054467444525596611153395060763324938038340980705066582376340579161821204565491940318725949160963746040140670134814181847701936485733692227337635062615038557036912595009666888666092495539951852593884118619479547513690629905506006612535612784311066402571823049317862377674190500590754689208697856014080373893714113422606473825389932288412906761434802767448292716197933148793107829825904649666445778359184379074272658385026954104310601203041667469996702184619492170467765670431272785077088466191044745330457702645632595587677080317373381112137728976910909984321476987408352428213917934943291071177221460745766829406538970724294751256633493791236231672843447268193495001009761120799102668812034501474645714094502410603596811314865340596907282401992258023421514686969149639163800440683685290175920031548062409838704653803795211137150763950124880656063083061502090654680146714765237730762773307314477555441733285326051334314852670985721320034873169523365067521164109298915277176783386324579698290006661152640026119807523588645881362437858766864027950175589797027028599069188542206357784854629722133864424260067224726643319302835584680803723410533933933792973890346344763129536007563664167670096961389897480451014488721546462554373231750796147201810178654873149261375759261059928054305042935422294963472671258874672001471185601808838986793307476168062956716621471701748781481972715554754060311232399551596156209038526706761461978876241883562814256313442819298871934163104101760586683553971574336900056500544899859887807290154700502568600954674660362044829993058354260892721864216813529311485662982482353191301689892960800561979557270413655826429804683141754489408643951060295277197837676700760305533694279682350863807164898109250513206614425432713927197411388658698618461076524961292469640143361637014855846087607611129141073904886241821304718028065692432118502824055814945753577466508714218848211987979183787768348872310830210677977625381827013061085119728567506315920141744972542541243298690306641534334072591428510589732902021339895347389269712530677749349418016472314597232234215835465797504174569005735843402102557258258722905753154153878123711177321313642902762918444848428928274903473284986533403131429902335461913713212594133257075793349996690579205008514429665514548192621789113774816897538052022673356183197428722985713138471027892302255339464736750991158181989234862646323900568732849622310569203752872587792562660825773292369831001452822002610914968888920384644856313696357938756998236457090601966464076437363433147834901835737285967712626362910252130570725321501905442099438490157881770203806553726456518450628348488698911133001524898985725751868830021248136145254144959184076480029174522228610520276919804508694795809449237065966085058565199355558709740389033103423443196935777625240121946400019329259058905227902838461748778917757512297535538380233034301473404855827969438386602072679791134511755024189094196036040142853348174861450054449842908510935251594228363076163003446294688031081456818032438507166963180961467540397045697243845449323776023160540202891230001314816088837165850866010567177430958540236914464935046781543322726376493964650834325796697481107673914212955227968416719724598476936839447312660658840141438488668770689665903094848953096516109448495837202072334339204067221963572257921780594154020746053886669062458534442280204241632277563198372996508734857727239987624381427290855873430097283982541290165036131267048488559415617375593905635390031058121708621273206362308980916903511365154542892631775957728063731520880738418128551058486946048037774959528547491169775480758091528584743604409212535715142684437210061498397300738668984469692660237348826849207795892426121898499349542571685431988305369781133933882491886213642275488747194655044414746059411464292482702262959156728895232288574640277244712760670405490127640740265822684964563219852537206553828160389161429548782832233754887594669105659998422772293507555842237335724799094160212346509452968015599961365517581802875767587441021056926699811588098010299020796757362662849506847918799884068450541867148721542999123806943193491286950513980448889558103470232332278556963585145685454952666998384178746978040111894639963256365769797082173958676672360234019841339985942407864635748328911446567579290655545859589530866000479836442176483076233692707799921451940598369029801271816866492660682377516707208898268233081021733820560687025463524135199458721809987150794387315179511157242507978882169782160119096747022412608109697733951689479254078622777319291800040800297611399407889855554813039763393656149680498261890169869233776432445972300872899199091560482771675384579754671136924975161008598060142862919399515535493650100310783131901700655706936068705781867799845819822864104842176094638771046810668333532772755162832268839543213975650424583438913566717627027023177798627107522944455665819240073120030021941892447223627408671482597805752418353453735701010112677034977215903842642160297211528363434106181618426757687791217001001627960425146823787833019306449990711335887155052286063752717844292060338199787934756815554312642640303772268787576125588753676974996616953981327896217468544336463035974211818970145879699353481145666683156223001847800407343770644341157925731144035698909930434412671130642020714930381084857530431294931959099793964269445724081841130944652119583181312539482505738518291453949468477586198897229824737867693298461625326999250600437340278480396196671296772859325626856700755044265790508641883584333889441657054960296954492912774868501108839962184552487505563491837323438054421184148403148053642643613734602629752435897974353108310053364683215291704688347032774790584484958556925111464356072877152895090435135830012971501618380212899319654843476286417344029626809898378884738589806611483907017728223993034752872495470669969704901209042015542893921242166253539827979770601582722273722744187119102675616168302491192372929567871692161321289205086572054522799386666740834195714117093914808777360121800988582288750291187643696557395743947487476323105077918014101945660523773364129600108556576348612660749317565486645579398602593725573962275961797902954919682058192893287478119761694492068385353818180858430537874981138675697290133604118852207402417099469376321083023614919739167740410286063682206987670455240553476998705208629660545532856319263762800080213276057720275897010920218516047015080061511917506122392358399720328286533601785263264879076780353622722190666715644189005763920060909112596570053585713916820513220529629054061076281247512341924716083196689876529668680349838091253086174346206221409117993887652166291156588265896534043109364989542770614651060118183808728348738327938431957129950925312082548336738180027409829011288571640663035992473977878913734393353428446025944909304657471381567782390434313333074186858342151859363723326850012595399662899368010071612819553047013276316771313356399509325190096757594625029463137991598586532689185477808448436329018880476198623911093788099388880746178996644056582876457655008917003870246220726505727475140035741390873536146470944052403759490467953944866316226077547478970991739418841513621452506640128620501922054183096110594774686891319585115493474200222754557285506635961688554016039210788187090566203313350077423858815365996841915136120512662015055805852320287899589068288789640625852338437754250704370642757352430207184135121129060687373049783818598849776148100465369019406832238378452640003936251310942316715186583418992194780479968846968839164025600630662558315809316507361410099249161838987726998531222269007716383465883013998084629268123347232492024434971857828915621719536072517398766173059327882792224828728354872989547529750730511561467042051146410696903472444655011682802597218172848949208349887794212745756252771969929101782296628976086883779266639894849171604908867366936703330635454699091628870174655550713348714519341562568766574284310415139968128309120792223515689329144354764337450125680191992786875455229290887728598476129223772648986183174520565440477670222840038689724514361276572100432956987920371581173044266089654308282493259618382047202047168519710992351886979437847953592522000069457251382579448781487116554845114891919266891107598744145723455077012320245732919558434809330286404677323940625703758068575336939680727235031249381257021715208359738260585064021159122595468267815321745424816182704232635649126329584733526618720399824773064862920852560881748428156726549130991837013099793431853563052804836477270904127048983109214642444765544567087420777530933867777939061657720818419952042407989786182018064863257552455649896424357315444713758813430992122781348023393999226694420397181511166198387132972365745058610050104329367517399039007882519394750629416447433848727451721443876813381877567700893090675781166185350549758353093927086011750407478569323431845524314045352546064364592122647273493024208753674739385691440392635277401160795886262252461534918025079308185913796824561061907690622225858026341144557081268324508389858024855025782343254526369374563556920777667027890751601502026634188711186558850308328749573560307043640146889457732098272240988452253476531126949446889733971507789130502077500096877839274739092284294955316880974382491635735943340182876917023169131017392792503212780537359775776949891759133783375917204365538547136861843672419102771362312735388445964234800240953453684781866290332006741624092898800627514348024446094797765950093868481941867002166105308260403347574408905526194357787696340552357559726423759615047716558003705321703129233716797965700110040716512216933913269433911131283815931713876879405598420293548793873513963546851368224656041252254718141417111143641055832967570971520786712466783432156856588063246475678818328880585765549302720449135636395773713938187083390409583204044244442279689227299914860278844376961500923321784824471079982959441065390950154153682998686928319617005720383818908051864721402287213399865640424265790359936413253005475082808534699607477584714599019382726829544964841168873943713006638392755419107075005183513490781019066691253239616512660068512466461725643490363164227928913777473084064266706669870088885147676614112620641302124973221448340650866265568139249041911011223949878288251026265739862744452457228217236785689080577658765463197551073021285515624617727393914724954513384431719862916611345813829098109386629306441281873359746945678079833702861142050775745208388949947642364904675090934492385735778554584197202379826103748994680152265686611292369320723881031838543694624111950237044559309587423788631955496017578725867995007806354887965796906588158477180776310511766808118546693469101663635574322308224706432288595157793691928546643762484853233094617158599095027666945075708617755841455416649560609373449136837325278058625375850594449485462300871568321341659505680068642826015542014051414275435673810616691901367282484376750902464646167562612143435586860155603680742647250856857269812337031611613520411152768737527555261388092730951851701205439255206200347620664205748230119391286185559441603309806744568279708122968149765373130173026647901778742004603778237968909058648229589889843871327727443773725035149877415453080023829984199068166175907224062411189553161334378709875487961719894893464844314901303941588956122849861771875238128982680469005044460134060631047501606363307111778399828233181494181247513122498558210786518526062747249855121375870636186291070868193046149344169161550774527696331405622395547297123061863555728909826293607622717647055718219560121288743007426828886805455587551827920101877124393003572954264231795853521716487943808493670362709489302150950961625589203704340515658885394517106874933098189637219971612394417291336139993296761264945230061530712837362268058424056701874079841715786309438138001811438075681610068289622598189002422463436539948018970680212171514685651849632350265623136721601102572584402050417416651083215877994519728719064273949476185015508074089078894009121533283041788334671442102937728814494240482131278589220011287078312533017880265069253316715222466721766791505511168220713763686472177847544451209138491641603146526522019162735815813974222917643359557972714728021362617084516680652137232838790339852708315461100493205140169939630287607827160919760837488096732898399996806432892450763688563620385962410368344805942752507810389205711186097754220912455518440224874350980763193998760533066992533356770945704366634333866148649177636764690731054506036118683241763075586800941141008379942476689116476935764357136989842971618030053862102184906340762407548967030736565460081889173296356932105270857610013530825287733584967538959301510100940746767447754232270274211666615569069624324658576789696040855092934102563644157949134368425381030343636859409441828004371431815952467998769249840859937464344526754972828583774150521148333134243771803740991490680735492916036868879909064993169742260373564519759572171267618182365295274795829679703137753805284459793295325863503857008675494242236313867550526662295551136694975229482493100915701521166862287539599346328129645744536501790900557460167432461544585200369066582933748076517285386454117697634274956425174821378671026479964396775239660675890307500765444619189367466953115065756414251139418324779944632447107483024421666157491479382602297200191655350256198227813508496840134208492101679601177744072412611697301099848768985147412651489241875683990094113819172974869769377949542372783267135870702323938869066562692399572957636295310211066074755396039891248560149893537831677184706596595797256256752293938741315961758217090457909697192343953729592804058293575426252362936617652193871680662991931632749931090002502636670859749130699439450499872838389432071986312514253328250768693955310508968157390781423952797958415711556421061693871869915851342990313069918263111321269941056308270504761557422335332407717616994594626955654927673157704811543713659096016208896021142230927492325913421605352424417448366216933549164127142542575084457129264111769213008201331819948640294824792385344021605477464469401076893029757530848745724856091171727824394668758557570173142581190726439501177609491889217974927467178656069986371809660475199380749070865998140282588644538118184229616107438156864079678034561129889631710910564776253006721341339689850856436420683711826011194496813647599723567056517527035450829490821675569468568722158862622558229322915549952666321532917948577241192375424879459200897330939021026672803118120885256074027025040927288044588288996152073008116588058957101411269614050356650314976537986977279519728050493787907433583481032506348118962627296636967168909139424968060753117856476118344249514810796189817365050859614914071885826771859167484793735600441463406641887640242261050375227249457266191431243823710188214681064942959424390260939547320962285173338417832140893301109592613446415657843581203529919524619579720222782199095174509994588721591400493939065628625061672548635970600725129991656062393921105228392863050989377518345529890269723858216558844684521853720112996864005024863958603000361619551558332323998962219152677425392066489613741999505087403983513721893359623822274567490363879000350304750144501121675251751963549881583256830677531265632050533917111309084428733249474767685309084409460162111861485361676795585352761938283669051777004487815554572689691341802950569799676143122345261883505211091655198076883596040721816243058081877576757989520576136456958811708544630313072612163012724888423842687166848489107704190568754698286095114165572299141978615895611717633480720090876119600914644840505522433142667257616033345645805889302048660904566463262422785994919568007463156567651534744728381005827418958060126940365476251912400486035947081790248247518695157750854064271838165318078759340788416269236596980109330430774982689298696954449533939912400917285330094947458069086300203924361331285001146129261725292514743169006068968521072621100560617218578211207724565006450898091827127430181218093744484294448391331072203968272257576881984145859707904401222826411275505740076398574258566269181694356565239969590309190195168819549347475380815682311371128586423547926645942613391473075293199089037247891177452277609829853054028498357771272371695248713819942131190785634614909722405453033965137888531927039875445455753981936650000010445251534951026427418440511529513966297106289305962796884615888961945008106371897692900715506331862750188784976894586605188647632448098598487117076324458536262958789729560072187507933455050960091803058343739461644709113160858949444829243542562691571995241269729529781061735109406486032174294857320950478698792297164471579443546969126846408637821387907730522601274343625912013265673670590328143407839625873072700594082033163445699922314992433019813943254549888361872438643430454910588666750907809681107145880574909634073769148847307736175017803701592038005553602508281532224543758808001288577817814920793815802684826436639791832129882421054269058536414302221689916456078608019958429253886514390093501975722033773420378806074252333703252595996909502604433841757000206514605846109691219902597469934374669627249695774758581265425437416715416103769192277731752293570731749141160267558060564265196792103798764833285192767779855056875689493167194796550733328768907327745009331687378961723248221446925356672485308554391526804691230260479223428992504842836094778174050208805828353648075512038435398174255032567003255442655814533497351245691960928797292191197205303279780952014779569839496861424833272134844391638844776332526693811773245534775753773296164959950158576114041624774517459421386351445507163020482792505204806567531454345870407684242730863128030731799342825081293903639325283293311432646231790537595477011791797681828792179674034054613425520763338480318006377579761995095728593281954818958540735959634138482255319397084759097707054210175791202398883804074456725806120536906432424216773805345228023050461259917283597205885349935577126285571812837615489252977304990100977919161337203230012166122649786458504492057694846978206975039319906857405508930978310236995305406204434356043216778371370045610829115123308116726874349008847266477847886752002521100530519786129593244288330149344947027732767395860651025621048606923368889629029736027077994800968205671409883284607307457740764511898049664717941406727347305730532607593844882825022353638448220350043099511464452267029493902970860896247041909181291857512318538305819677717808609436925539662189073831150249001152397346870014353221657527853171337719066211941145778113322134108356497409028023812010043793509498078101572782882763963731969646416474853093969152704013003868244351665951211993027827918552315039237327491545134016531214182005984432497081189661826092378921399122153664245428358109394954971214430411949503332929437214480296957885268958130012989991166582538414088858325080428599898498401315785029496639015605395213834321255968911591073299127659465746673800763041808024102576863095455326012687224813420901199586431743679027705951512536100734950209207617145416465585496690676292249227444941471126296098111150335983158754683418339477932154175314490685232555735122554670427346161132217706574993730527306207997027954930071405727188790509322255804877116692430240759527587033757162841324541211745484817309692787795237896649887455939574326347963863184192236101553192508574127367122540206110482364303659556026915945733148114990447769956375791087206979410724942637714985739604819768126069359329843295671182711016491781383339375966163240085652364753361042705704172740683501205740498249319306734326881853616282046303656546565292215460772936276764148290581258771156592210643313422854439580835922267810094099711829868411068100967669982210622679821378579850008610146288667588199792874273294554755373772062666988518330771976746179448464005480104651271791366432638671338579471608352210480261531318251514885617610307073704981753673089269608806563295458111799903768338136307045739647782556559151826321491084820222243881871213539602191529066424447905627803935691940747628181776433109021307123399179397075050162329072597172059240723116322020864460648769182662452991397316845102889909692689090432315531303206440477715092797999355374215410567663177873549467931421571049627732087853819687355110023702904688460960485473373160810520489815164018328308037537028398127101446508125866255427627248090478448306417613436823622809753415357186072746532366686263031540227367647524874739818846109368051620436936268973145063306887215586766902957362011468162756125018504244126968371840691521047769849394471212953155114737772103550001923707937624246149091305084631773058974987669706647060563052753236518837118851322308164634245112385102362714304189550212113475764178520186010567093225697454103269677974976163665245000630834852243475155246977015755885739785145681010811923203629783104792804444713200686167270643881893374548202734425421892401193802781151204928687165506681836588276552863549739096852647749227767190731670769717019310286123089362468806105150973889694550486699709917472942493169891901593957673045690693493464146988107592028915600248585682283213973048119835232924829290511506797412638690287242189291107283118579929038714957356486500600264803161210914162477454393528603410838383531530864633771160279986498082061530871981263235269885592387817007258026552312347202985893029442357734872360134370499952977711541610586808493460552871999335740567142166984672448779753103488800166610151966720589316681372850807589394745426132450737478778833059858923588915790300351532255615895497068242676517476923469914424388891189864792360778558084559634378205243730291571300014000401435953656437586648164595993822872383148677058528778811999771089491292682993038342651873128082126580472959302566598756057739760608433451864335946448119300451456470662528558926806934291393640950339447171123623718383176123103147730041367084701018869071640120769362916620556051965516645334531382456743985168462233388294037000688012136933027029857040553478739280581392819780734925032371257706852263635884521285142170217900465916900073853116426369848302562562175925483418357913837115448383678428441145537859582866816352265012056479785201674637075098414557715828819774739041950836514794753681793207019578431225594867020968593832813504551545655982718344794663334953734661614427331812770940285396608738301188918402672358901689712425788555172431642165701324604355875638211457387142480819176748945973858660861476773363488789028074889543820088600355543016347471114056392606137242096754110292080905453452367076563438217467574779181274092882666761072469670545556817777057142084435623386053442907706888710316074475823677479758374192186716590875824362766032764996305162527715599034686015413110841001520900801425562827162689062021172629374221737077834287963086917944514371692375595547921048715502296484157667924283284004813860530657046193949650316157172705883153133426771582278914379436117928757372408883283636046709333952192357401722587774020504784343154030223754051496697228649808118119184301927623627093455728539755678356221429822289172386633788149777017515439210439680602448497554950223300737926082416310988545461636902312395153750201431368636882114747208717641851903038065802998995004432487600606564550418048196539073328004715068805682874006486299731014057049572849841466847248444589285424351105223635935748645965814549052734272529116149849626127622833042063246292395068011682839211428277002049236588041884197578159948832076355317324634742355876032615783362731667415217206491560186690953934771579258277890690344072148227689766324843469564985007908804825132345166639292838023794960805675595030568802189202249569153396361166290638726002533879701172675517919083767968749320495461879001310864834480503003958969332424647596243845597823887731208878508826974198567235691370469381099468370079829155714274879198875479361978773444022213180636980765539539414109614835749554291867396879780236047570171859913092973085372538632009501602087089026753733048242784577884504201515988126506050770412440236830740223252253364473166700608143813973465991023685284649606319098493091797478713818448243296219258705242483993905586131213864396497187275895871565717672771462437831557538165996948378680891563685549926918860841529380257584253040692162126428424047415018621971275487892627148406372206602406617956466523608529132070778069194724394698044449519585747795293210977562867097674792027305543250320773582392696436907267916101856515427996017907133555673271191090720682252829202794803926799356671273079184207903784809359648496449578010766924102024003215234664076457903239389726387251588517263439120231736719937838360302245837580646219793941831866577063953004359417558831522064828555486085055685151744941385675179746579888496403358487450248137691696301687266509040354274835593358828032513136862764329667899304299413492311560247104200070813446520719211367420116454656185500421325784808745942816209892599130645605488816861293945629608264971981772485996482564304401651310223013688727217677283566297846167585320059659448885569926488373691495293514644460660144568714903304550907545443718266551136216220202601286210767080360423517170243199765496714336860661288063129118917694683719714455633225723295086872770527034737487611589954930056065119053837596306223262237080156961437251185470326623478728235737149587493695380417541891066661943904109434732767278260789633344805766323748207016010080320366902091686418582818882576012883904460932671367684106530377568640802225211328793857079146343857814728431981582932884626459193386135405268234382947079302009992427822454093602062714950348622992809202511146366858451214813632817595274286635006693889183470020722733503423178602790289237322374755222065196788721702902537530936817144593794048219465803866653459188964789399040864403362764031939589433086897768512493679291401894847364868744435674407731591422068207357223961820918928329983688171579880848156336167969995613774209855624849215686681275923565486210265301500324464726201866860981775133199253117704604423251388264035539420215802067845131259990369124552818847239934753409678934106460755552087218390842152820062112893009081815492707159367905486564300514099251386605330498578782471101080961932349164874329484209020552787754692194131703313290724753224372611785224300493472330235789382518996853061434740444959037135987759981059412448068902778420613981555440050549528601050361810971048413512659927529387956593178879209861040133487340157014382065946009071875880701994651135255468606195608244063508928478604081777952289539495223847471117106593302290030898298621689996955960566655542151624979640641472886102155155220715695317840803544736264229697733211123830960625230262111411480828550033601965149212030123699610499064615670133037181153094875752199159363778182575796566661021034568494260264638365315443591451275630718855965949502330957165062615584838166035813848312808790343386667880098354906849296933267361533321736147451717874473809667614586468406831351919762941014726701111660596404317990741338003386690742733351237909206103598444144270002512614104445124469846835820818290263020575531835349360782984387804464616066346137271742545013425539747810722615901235291930373017933756173035231865103193785403724393007095736394776853332282843466968214039100537835652168288551627699780734835513395405347949010869420128915236446889075393240868502694280387009701296666838990782075653555287343544090690954755511544120693107273875623785401798718053159082373735326363007492957847203217176762106175519923999305978931670686171223051160768743117036149031495858523108706927549583945771450538350046729403347550673356424285651136216511861191577282659276246353520246080067690947774491622390469034979598594652657816947661697437380080722420202740858532333128825025549477557824078524576279210279499379354501212071957125372349163645978696243975489837357044012287723973083915547866170381792172415177380820753730478196685269957305311204922799453127897920392263228377746781364394430169417516867727449377361653077794162564552569054603244667157154162027252004377794134237875261705310482653694169174675224589479530646948706013331932378884863273969074334089592299808573468645053754469598909306865621778452623425853781375198845985487057099072909166436367139555718658740967658209562656292602749301359022974855410098363861866321217640320447119170485284815388395371444391109045097117340117457334864753665926156369134873226943703881343069742528943700711543926813850617494866438876817591235074002940474743983815253965211014938746248408621150118623646965497035936831290989704394043566853303458879397633837802346566934088347110907190143276596253058130709287494842809299575568502653479854975182901858201905215207996088595093324635181144162707491102380756678557555215951689202679637457603445601935334147752947205102013593425338316418814927354707056319053294015354371756699034913014540754603970360692580635370599642472209377857460964340471761241433112963004744187282724823380756182176267000760418433206786227270976981606526052096462241297343918507442560936466545369109545315095985844454154559330829538539901989968844373014531969092522260429281369785899583006921409265161797169117868587959553294517238076214991969085507893711361977836124303731219828649266527179101688177271531462909398692769903507745526455689381787262093257367193051230911062892560349708403380497950038334219316332847584271437500006357373382005252631794453158222873158898737688656119029317262527786221120430794393341357243504446930241400410099089096030632303385115166415443545552902036233188431838460149094519897069958567788371638980444848853529209164892763090723598035701012807959974310561826706659489245460502251683278839851164392226115395823323506176037434559669445397416058271489947428570518471139972812246050067285101067372543889303877229341341262932320883019565481998497558380445444403902674905997406599425429239384553005618908697275680607229049857789745052941102414992741355154366031558326517045044322181546938101748256311849202203214741217306024948682471007780291173724708990680125265374264890928361090029893425517671211612227901089312572328890347701936403379245708090797951964053922503912495960923032584087073016207990799627525516096755780043834197224674074532641197137434744469117485446421423071892973073010609904902084886479591868516441560309365450463402278787137085334521077425590642555386733725736799861094593099848793388085134905981583520175724568382031824994043326206028386927308052585001721746406243790949644535743598867255658532058821485069448657405263011881733256994767626805649755788454935920013791255574653732504255663525408829947906300524974485044881947393001022623494706687278660175011232686857907269000669909241320770161109800074279434343118833572972268598747151273263795516951028504561111623142745222768834292592267834803437128656503458303144393863618351112618130985651432983363129746238890084493670884628107137202006460776748569621483141064046100888064885681039124383798177670515033313817286733115389023928360935016382306826230499468058360385951878623242985793912435008094911113378802484971561973867652763205622800308507705170623824414202664265589117316218280890365834185004377507243382634402707538188419520523951337909218374862432117472967046220793289008047684906578711927195615622573482378942897387293804031237486270020547237395367899593025864310383289386119179811978027257835816890888165519868144795033612685699285468437794905659200864069454160310283455613537841027282656503688970605864551695312499058755769021470214300202657137077357899197884289361373044337764166731487637443382788881570758965452040832346941717484584622539713190086166236853968668045698036706476364888080673954583824515819325823437328577774580149148850816923079581273238554435937810034639846712830269443325358329287919401446782100701123668133785672894288672492435854552599470369532576162405817705098733488399534058831715605089773086625805316085624156105913193215368339207518955841298772523406122887287960275978441900946418638046131599617756248710254866506417900848276522505684125257762948834836375816121823894236119317503513192412856583039417015140346832022973025537337584724529167931576453729744324594890960144442444727897192363756071697786829749107497416666858642674547701241632573731450666595280171948898391804157499671313845399547515766976605082706921740107819898907205009650133269416529719625724233271558431565881926333394721808492837918934030271231387961884762287706083816688220373251171028182804854250005884937636832625115937040850385011496685891776775286667555123010534259336696329617405879407754310288813196747137460507207276362886846699650332693569614538498686088994282336569672394493062597229960510301999975255168058609848641514885938827538357754551162881609256819149591751612551857818738897581677853841549562264226422398909685500558692221953533733446252853120897117855739257618132992221842512315404257897151627884676306488179616843146911760654352566097161922815482720327590909721874538227712740155198537048657610560808837039053786166381128395748394616380667565238068894747895265774555410748956866013097309907450718761217346507501646111006007178585186236940007185074510077169119804923943798059820605154234854568286377754239968772648784756904666132062476518649037691159647035745015593039622559327525639120169052707529664840329202600684790374756651092493926168537561380470192389001044141485373158627615984219137580519519172520163765054645400857895149191268167895213046920703206141651917644066291587494314561814059160683037910577235054392910244993661783797620981645026240300235810945417762336262686160253375402423803316558862922717613154891359623148275918707035841374744016988782007524608638686196211663452150105110182193757648115220176936893923697466754507961470405787442227249659796030308058218164393574745053448698197292997207451274712867073168120448916570114550272035132429334197670464696312311029955749267104336644083063662965064267021629005060832055365241915068922903982805880843570231311875618012722833589695069230859310710737559084828520998095636813433033967898662448931310764438466259799870212365716008259007366475244662371999643701844170700811439973012112932333359223008829617301936751194187648624835031297532578355036146183999334217872273634993168009143798880245437733213749652917485707077164647616951805465469745512531379737985288201863346776391384409880437329022240639532277798472872333553166160400536770633227652235747803271966032911279699697188704207734435298215936065590918819669890907659236066423325579615400833222433109681489560958784105357671734003380476013376971161852383555272823268425956071622714330543781210898950781501248102556587685736119051066888799877637879459792609923354726231450476362390310665236117972675163004316413322322043330898452284356070322378787892489676874083994866525423187583313674495986329135781754258293062587796464255474485523632222764384016267781066156728360979152295327231283965291387669343122317645506297226471233659811771108458412323958664018327265022061573368884861659439606809662167692236241708704938070956873316939155021729871519757303432957545045146659505399948721887266020080528812789564738832081919527390888491197847037787434175265659442460677830798113533636298418431327574532707483264814916983016171315151613342366280771828715619515491193003182457868971293434025419314399622608462399072937865426852816520806993532897565314628963000035937131464422001253243791255393243290912931979196289191846668426517676322471796423725678530776302460790746894005237902263547987409003831277812184260360857928494603061577561065949539977026049665038724593252406378518286737564143622711871320791219413177561866285466819048392661028883097830102085356037392827161129050096237813124819566862178773132750862730884911204531796650683419561139580832283137263369408803602125538887161019980092245305158583355566043061863745545450902998046207238687760806650099244816909676513753530140520310125466287452268769551163714630242210505237522858748899832530750756558523079296623933920243229223320794606619997016874230861413404650216762787977204655391828522287964558871637243235640341768789181815554315688507079014808177869472840205183143398444716893588766785290826808020647439730826781162809329557269262991479331357436296756958009820778445052432941906046170204606012062033331919749611181814725362337312973584294713211720306310604170307863371263705020554402108496802600688204941551004844239561981483916943733757450343769166561370776852212988237227220913283849313638975088913975981459104345345303360698489421569383151560368701884612156131393945700363677036540965708763730221468326941599266637107948743583591690984001836734884668412748005858803658760967765183593810896449742730059036442064384029589854807552585748551713494810962547706152687680274809012887135482073179519229496067430204850734426370896330453504483906883029174138496603974579388959476774712563313274130097251730855364866166979189451832389800064326951223728836429351589852386284137709754649078297412757043078164584341107247848082634560501219845148326028966277290215564315842075481031583513739164185767336757430175187066716570547913292009144677226577697379321348523896870409978205770376156338318149058482581275618724081337619058530576940452136610133146111410119200924006766572196316320699859505915889270761777154288792671031310427475171675720643670478756729316026432643846781039349811288603277145343076886169704510634709512865274747105257527280965466130897026539706029412154458728837853784460495189221155749826049559299730422947290628188956403520569955776873810247585430050926186166372566070748696672773584476011180905038526645102072229503301344509032797562113182859157872420789366833907642454487000793045156435586212449678219090237234220939407669758610226684975897099138414156762900137445224732576234354995628261928174966922816895090196020634581043491586947897698171637171558748954834306860258462135341017324812788415199509243659243064759554930134872096275251163923912668988668397122670497575668532957082591266666429648903061420286440045000561516734311828423275109390796529981728680839152095484931064540937853603562228520324067109775893960479801567699135305868522942459589497357007185392856400840972903969509767155097365047379173484781917959144585666124138914222391961499454297180168860796466393857552649184577842820028230083368168604533907615487680675927263627016751308249323366743497220768032500047297607811135567665880294509822281138444515819942875470354728819469973271819536464397451618881859973151592469614916601830468166461231256387776496039776536185086652116533077296693052176461932164287267577789018757596444529298995355577578648780175161881699634686973642187664709800200339281315119732242475412412549576581861305928588640609094979830032896252370414209577180862966831451327281428964426796981909403976586573136578456122657003372683013352473711970745846840741035459480274482047837023882298883152232582601983947461720214631937655208070532943543939584521044752700385686529674328467415317598019244013728383665923727097337786859667718501094942115175072176552497498549878844149638841851529623301788096771245680272802601821806082830834443688528243932416313912918964516255865266255347409388983511971676005473729992983666861154210516597338540189723320885531612180699085871853731896363016109394535581928201772500291618449454400281065567314620218423240306816861986100057506517526275243596169886586725181752696485187439563541566967595771176858274918572228981089128953804368421664584496956853976587649881701000603628602962387724294799201250939987237499499999333691472158550527974465015733380818237390164697920791190623326308424310472738420825037424751133937593134827265952732026168516544097870839842544811612565881486048430949122205425913264468269973596095325607716958022418868023127882275788055323894868806924022060386930080198912983549317433132207020616183255907349915673717494416386563557065514664002110546890697130659672591052061970196244802580732952755032513948792974210417384806998511159570108487654799353770796718695100301005567688347422390183783568854062766103351818635394668946168176231696877211066170360165112767664833668850036934169618083002285674494720506608347575563707362110800510889107806135533876680363444963303516177491062288086415639742614398693444693987246247719886550680050003515146261942055553982544806583874077482598751697814796280299982506765990031884230885822340327007895700991773904128651839891476104180007731932091792344233048496410088941731967959194373200168190436394745835639768830283361359841707015296069216630101104811422979345410785431783159294372378430217118742430207366573860698268954988860322011143613606212589236606814602709576906778922080188077206308452115927286443563476247336204759565994313066308585215634070339884253137476297491357560951516688762097981346207684207413507914138335065685505299381501744959154766521385073070413946706535125320777730192045983600583886580160177563258479458656897682925735218404655835410174758942963549601081345464344765026707577247506927298998825203960493709745458775629717686289346807607437423100116293446880269048343132432019891470907512642923600808289485733890180752585597010080546178846345140566810088265314807145342205705769853753486648167191622207651522414093899158039330254790991245521176165606293337628246173794940970176553864498729449668939777617870538137903929363065554646455782478861630473001118961695441555739335951302544437787026195238800861995503214994405956956819281741347153258367938624610212125861613963733893580077651764381964681938977585160524392987155607381999240128030151893373365471726447761996571407158676901272118407135560832044958444174960677239343074059072944863092566995712221042803108521274955574138656762057581179705157160845945859050720395677529331362429932341636408992875041265841110036919601393260080380952936234159934466204309145121825388150327682468436325719871147374500340114017769368289166162476518020635669042848458760106838633377428697270227399734223442674690988117802326942480763128215618203076115044449665392017546268716858237608605680955311503671263401725859708149184411660973743742091975947909484617229085595314296434100208319927891253406860189536697765155885028990850527236542835554411233953149801678536062338375361942785353534280904594708339515306951246978532823227408948523444638808399594115317043380615097139815313518248602175644333578978782950061923771760845490385657445340698674282575996882940522953211860805687348113109459205097109362692425955981632579300014240058189465649320759994618623403265624885787720039741808886640405470480035875566451972362849630567120554723741329242284275811061480272230838492961025487202777764982816254012010187467008224618008321521805654426939727581221570682237740716609279858934610114055832237660212455572913101849965487657611954492265657328633364661735342648535803574345096137629638470200148296539758894430690492251290821187041373584543406926876183446009264241933315095493865140686150295330795363408391448195895714628630703766525898479333537888265621335968545312040678952602449402528806828982698549866690256078247960206413199533496212705639657065401955655809338027508924270568689032108021545799755247766888864018159729659128302716167376156274097508391105535206338058433348714893196724912445475285396717965106594710737189782347517681447505740710860812196983562282846200898127127985316916405967215910927457183921135616433487443391744210328283147646004442860059496207002927885184179763592010050140091936443121176408816774822462593066800626370516797056522536920672169270280236352224111490904482653210447750016263724765085882934746555930362601573028871179593551158616710695382998650168056174525922095328744808408052466813958695516494858529303571624669888215226157061468069928282519429567277323630441152427307296766828109473081467799361036097403562692597450574421809580567599673280153532351501328402531762501633734393072411694033696495230527016743398271295224864634561222681087119206136967099092857706341037908960473567143582043807856858032735271076185262518964643297870060493545360484160087746879136282473900259674463599404647394665002192810672433539959408036945934964071587020341627506632376564320389441965783000742214074368341613911358243239556796041585524299051396299716515249808920730473320559993293841155013768550103135692566580228633051643709862449167079884253752752446708833680534058518043569967415637997131824109557515667860968863267968780883565423704332495436123564325510744096043232146796834735357565406292697580655470861157759928408099043530703595708126910214440996614063615176112859134684078691858339358624462868427316468340899792404085865082508908271459430769962088169318688101057036943158821873814052883887205430465201270270943765539916563938371752506378338259347467840487215263834493385689291961948763882285936889331110763269364788710266857091787993173632993657205869388213444943793780520163325556907298644764972822755303909798606461149779440355349008915899047951121129412076490143913411244520210901354038512456694082945573113162409822744049957732765928274732805354607683601878571660745022937778049731420979200777109690098422854499307667521260780322735681841284272985469312294882394479254492695256971362183306126360361416352864491006030141727765194901158776048069491838079255536099859107326565472858509834515314404661454844434505655529154371638242633683049010715457641570466135898266787791363944025549778353434023145728435992350106919207594077891741742764493375325081345900744256557321607282743851826849330332020266307391794133530994776052859098511460636476848674391656098550683057138303324878728548253223925354319006510123443850856995655022870110161585104914389945581484329462068269797218212926989732072803641251539617504571175117676430548584115665639250670131470322226317907859616797534921593633098932236130905583901942248305940828454027201479300972295406690422823081432759577444102367863352681574086676156469181525650029059752471214126999219261840146109385869536772205062261097438023636851338931263797927012406569309886891495333923797766936258950591530079631465037190284646119860519586073871462242104059512082128877688142765448141302899914202397534280677429382142225375775254007105742155293785500860634594862501109949003526341734641480852148275023484459358595152437178588503932612068038950680724758392063142038112224908337881920133235585495462127322353722119839572353172308303610423918468006972689359344052275265558594809511050298387962751571501154905639117313275920038637674637218218844342649672382527376758619954667260083521466054680154746409118463497729632767178860942136068793025692881856797426185237544499544164841919443820860528429222038873964222075791787310535392852443314360330350348079542364795758462487814601298674132949427209255144812925329854839592029492804754371128992190049909533872549970772396400638283812035731206048516914000551029541595622450562983614566353294199092797705688915404529908671471941004068184231464465119325283674214396963516560896328540550975375124986349790225889955012910511809532835026056333466747772922734334742633151851440166279184807093153478460021242780654346062804560830554559928305530326026267497685422726771030607713403564613430180755645077058494979215507590867998692054720760800653064406788712054629053221288642312109811227468654704297786702111284540747963019420225912315062131098553144761652133043817079510729009815720331846100776121161034695055765579844151526653811104894815224782020336699516777315658482264578867283332915803565104706488832212940179215282590399155292382976854657825671109855147338467298418387916468541629908999671348973528046830613642223878699087931976672546007945674216066915227486248760267008349071511902228032372236679094806036636760763101831185635614367854609474655468026747603497580549778142251527142902571210043157201988005340136581230914418968896527408033657170043361488189096947712896802284361261853470297782744176996271319696584284942579426056919611289947960219864315618364655746811769152721513756722883360019398739313995408672208522503369410305362104260400265777618443492284302947967961843349550916121167793639400096140914965308464690977551422544528954105221282536536103316108946972623388811360488163103702789337636084879258567635294987352609048654576194645848474088392040780149967343037545468848430646204306458172116632492687690863074432718557356319784838881010434506401641722839605227768975963371798171112969844211870783073256545408227608034726592379873861573044125287600546804953218988658201189859312156306496889531602178403733041720181591732369662624146078947313138466452888117127191266145194690227947564196488163962499163243609504437344674880697573745382643389968961902457703772457253411697822949086027765363830828939741359214746169854908027811540259079585073473724717610053117737605895060433964736112445951662919711962104981293763082023861252446593195527302267549477001624225132064133472883110881664885624927376478084776135656375729821339223043563852322516328050714668054689960101693593861124449646914772029713958681266850406986216108711016255178107495789973909445580276010026805031637867187362767674618122649379867116970376307555510248044869521205991259527309898324103089454929841607246506416958220664350158772710918610631869640405573576463806965513156685102439146438821742281752312012241060822483662014850978930540860069598618986761715439600274848542676678764197725193255528980869262922405906646595033407061319314763419431319202730019017363891609041078470665498081236157946270288044527089239698116200653642152450097049791144760280205319538082508740187142952357289279832226661743153463080813916679927516921373226560844083149199056999788828408018423874319991917492621914001134545528362624985882629919798818216189293933787345883481240317895673480030969135460213622790864438775565858437773430415057971366754527253740356758347554256521428265712880278736703514447815483268286226842460006136980946805291641219236496387415300603628706224894114887981575549431189430514848844255849811571625247788425862197545574804629448708124835604574282159200268687306800791018595246477660816550970994264333294491395693591390855128723401369218716609810150837671616881027309895584764709958691120552104604275632325736398575768266084057796635195328658653319912509224147763012423614419066787010578578767201527361193326779377928059329178293084640559056564201410588503943531185031432113928652428266653768927905042671683959884074883078951984466861986300513159071337831141993500480357864773818368775317985623550241378963443851228771560745925409689523035331512909413290075216144567205669050264718367957311022181482464711504182157858419236448916005086963079616537818243796058767516742608710230876743520662190922599477092647515544531509488537831058075352376561656119952369164822605640796950164656426274515032581872513145796202914026426057246694918484134671384351445343032915181732345068412504598985777827895402679775048025056737247193425090784494566156542953246599751628250431523106078511752568683139706952671788966154004670683709727507162046888398130492854573414903417127275082055559825899869915588748136730105937696612486035050153346256421613259097320914409207106140687868605231909879610780975452622365534879932992645566884453548112364097694785894129604174946866463105346868847143654156645345745590661352481499434864817953411204869864297589450645421303537507204777221018416871278766698920325560274395439791118967550528824569277701716065453723138929010856207356818579096434706993273319133266659461294540054786832120457589183714541206784898107761451191250873170365107685585817501114043507350259802583160713040421942894965545731003480938173087177189274179081523395528516768467837973318595358743488150413056165983609497588945953656234481292652213568165277864291319401765124612761410470441069124960619696588230169911136785762549489193834448727300534711631896068524503580516347188907448157123286604215142144873863681395427459353091401175736665011570972068629017152089243023878514076272015944872831327046190101599446704154770005571730477519862426975881832282470855329043545060539310827305537577630933111766213502701536997157702265014507539012883545689258508508886347676041307534885739677273441254520586277926648705955979969259170395762881833103895943404684321130619058942858047979010805979686243604913238342085181692557589530679195172629813127492205434263738042524763391375001664629998407419315708407857258338870737403312052595240312911181991308993688937664790682825741156206949652237918083394733689475761284829004840154461749580752360253010991975426747054970468049653085985599197527807410616575745575271581276394374858876766300714800597554317173968892211753670086649529102574775324728092806835891491089585254455305324380753809143378622943414411715981246276484710878492035503635087451400796440850665121202381071577233971697760582852767357368682268556909850684100993170866139078555854485672239377900317850621627798157309593955132024430939041318564160511091490132510237249531100339760782368289758800789462256879741487490839232490198952836462926720561304311983945248009033874354457283811625808020365259018993761746413993803534414732389126606714632127476567846688323864066604800451947973378732039401388259933652328272496844390695336293983030442530206936186734355606914517546460837310962079192720448790464776552914774784807217033419738270362978900099656296595491867902381087106017749306133905226138001461237278062198196691972628310425311320119649336170342671930626730899571893868732213107561388462496832769186480511879926630527963841605810901343715608897823751799181982351072454770873168673399674186085066288919464542081103914879352054210566374180628962390284851376712908361385947558417496409066368119307010633024767327072650594436870923727789202432020271679084263212411124647052416567358636226624457480054994436457514752643947290633896208854079418919960911673159213768268346094711444590794471334618809819688066769833982134838670894341590392132116195198298840098129501268169815557232462972197463791261755705796000872776625842859649725071611123597827365225968023706476101791769431329587695939925440945579384310410783155102722217819341563629452572090621220688140057683241210158700340147841235267868826757327062345847408021259696854509259518498327638247614159468403870971742396886511260494864918643520870986931767952204967445059910419041266965588775334560274924101324902888754686309610406387594823141156404986403644074047360698323340215838460662531814087333640453446997783209717362029484636820254066857581284781744137489685322162770402758926368850079915128501807502746349205196010623532745865003863975082937711264165251178504397198993456120870070794567640633052195226776090927152481992661603853468325134413232830202720295024838880828259804506127077068644401022371595083204320030742480434145211496303326104314635492168106290681007187243769387135565648889037538343787724436974562396045613901758198983695398184161647685477833521508928838203512208745505238324740940566323950082945151040937795608521098914739069132762683815862550077666366055910947687973358142819017928485862778067130689310203088466098536775879120089877437906759281416642212010214990589615257572933279163521975881563253479684641737315170245233592675436739255638724785660297155736332480855112778275710910021190296256647378769436790280662903860786072111026288907857243808935087086418337617288664361417788785597736751175179749222756024713675802489256865868256113157592755802245717438421488356310412192979190042845458353819439059228651502602391331053317021878448734838431795657035227992394010045587519437489417487235598929627639544070839230335017792118781820955912217700738893506690071025878293691737131765193316044596198668252788350947474706943923422899589643875847592667591710031221961911988291028501331472368940405312663928967244929045608197044811012805274465612588765161309545532576681266442341684725071771043429070702020028409776557067416874335089481977340266845385051512999838834481171082886089241471688565894393595142800206335918326251623137832420863634538433122802872328827959508373971441984447020680494230699294459542549078613691832330445520555496119219113421662758714609249396790044949873850850659361679189043636849397875072551873039424403436650886963567513448049929645308618979265934456935009214486267789919662159594850694833829635070494311863345442449548023758225130159750009001038723681642158256884517185204683801190351140028643626671607895514179885543887569001696151548279065569312451122795124493187409508591771988196883535675376019937002791450011754067586569485222710609464400771366665084269368917565339982943716627276938594648365523735198084826292776132434011239287906456847546667614344452077426143711367092186521341540721872398513158501279718547813405693061402463770857598588119679514909955584734389198008982664439780325215682251466976148054198863283998893480799543256415050053227938640212235814346481397323168973135016814015807522244259250200831587660928720852458759026190995084030258858191602319925611969536364501181713051833907346227435172852450932495110825312146415624878125328106027516403740123835293333882844406684463081735762429638753931636833777548606014307732259412864051437519419585764152659263382717542452237414359183663695493672497058301327989971943528006575355415148208041154119480556240290126640669245837253746695055309703620612316131696165054139340712685464336763842521363554071773312792837175050344184428020218761064991852419807596918626015997986788369297151420168998328318461548928630452696684360274934382914543611856328663471975374137928282687778101362236687388377920909179527409577094305969996940582293839810832951529405256046054574984235364801463644358462172391051637312143109928869399677501463842679076847487702834033646716701013736480709939322113911795346162527366704231441864738158602481201952615568687317851528859262974745630326165364797391253317049254097940418169764898232590609362575453742473794407357365168826932717621754341336734804530529645870765255386921991720959736156058932814813230906393898360189331957579771522204228970148347122868434185396621475936971752395509476285737377595699606552669149633271577286940190104240784905993378665665040846938397262036413762984954669840094764712164411967503328999462440012381650860071829275346969321982735025176647747068436154397284984951007623692139825189570120981632052936037613237404556143000883724235040284906778732295221840380948025944054589468778902138133341431831905261970246240199459042771124823602236680086081186597919692484879647248052195010442727706992835583715286005345123907511466616163229533498340675195909983585125310206663348590807188246828064227131224973240306343390364608802790349807251351212598464900381709679265441532802248553919803510312156264433602744743292398728220543085331774957237957303418146208067235656924428207220720203321949797764530292834610507997190043560786688481736034644862497707410141590091371780027202485792685823646711842718300847787822120010319628602621474796943762833138499794766219283008848330624015973519262949386565443450919953114282467090428032856351006928768062862928127826071155803973540199589593917697603620378693895264192305352514613267505140851001885318052061125955949822742107825412618279864417233164267987889893503394196876325144137609931837645346934972924283240385657902587155853155452637299475140352962353463313879377656989323598806140712190123733803475525106575075605937200056135525885878032552379265295086202279125645737523804095619792245283927146651246082076212231425834960577202042846343584603613768952933302801800453718183523606259913772871569314129374000223854420111636730600133860517308311432311153588138032721857347517518927932140527893071406314744852969363126624977286053143971264779924840678406162233900256762620269388078909910117387569365073341415942449583104156080761733502959871709257992018171727436950618116252237219665142335728831431948199706568201249986969444877850382476001612583881522134047498626546373198176079559795218922678070373028562690085449259517134788219051985099675386779246182230759577638405386246349232269582199418677774948924247025148024732209063576747216378499878511553983382036560675317933102667292147157804316418764209720725557449649010383897105139266046797766809484356842299468072697168110708606034768703554091885115472248558192299244231865992374374577882523632989311633313336420106790942108908989119679892109762047805626544931873785717869731059247001288878275286194549908597020647349664683158102879210521754041067815941706261383845757035174696987331833714287489553338553762385956211601181437874893746887812624344568302717124948291539582817911277214670109385178240688602562179324554090041979778736474097171157005492279455266237605090189288473915415714536348341093997197891641441347642178122679902473793113293297574682183354122690315971254859292959603646086187399313757394232932884486718549642823861756809110571224451422982705218913688075591492826906087082957895449585616377461528547081387584995172646120933947458267290898109389435209927223154572523311133832865837073482981754148656174348203066019076600815435500138089145052267038460196950322067837386027206399403565958797590841957363431975242726128612302664479428412345118495813570306060890359909724823095226107138038893357077566074912610301421642879981304421041791647326588650724719163253784707456288350146998977579663373088871029371131212955841459714997908498180835576629232459216953469557355172712779955843851617639288332358078977565997052920668202988101619771461344424653951071443026196944649450819650182690364319966702643742794287816676587796459943659253651092559761705094589890804488796125002095876677791032022765953653389018243212768236188571086429272801546690750724809545370244038555133527676214685628748949570375701825152875731680402818718181282654958924277947009434892198560473877425380037859150826463569010104644797545039219889619846471104016167396192194324266479931838053471829886848626036134666618268290050881903752301407994093193993497695446539687383457162340462996889214557591587354776801100274081519799429283451243530295360434561598162809359477039572657180961913247408051108734203231567087766075682362172387856068229586346055121014067540406686753368723602146165432852593299093096765377743435499541150151511231429638651930678654178059600492861547667856718464561138265301374338659213857501732110249340925666898828237820420321824550883669641768300718213407580805501294033115102134238790579685261786249455415971103992020363265303152782908221849393384651719769663922829207055784581219718314606235952550988818639949049874827488192760769557548972301990197481252429015713171581378255058051413170248735663407832200392380907695621912038337387131165128364341223754720208802626361565593972500079907460915816853912619387608061911023596170633862688519424512814636382590262104504850198068741598013186444460879658004450435300183238115603834647807108748475521551707895552626969509472488869168302714722869334853233099405642809946504603833636501954820095850828403911849430906191920198088093198309033487616896995884633904809087922464217417289739770226306308534249856325810576465989446673294319750442088882660288136237157779715921602346758022758093761085091235269658670884442720391024414233372561942019971312607360876336113863106342225565273288648529652834300525718459658839270747059204922153061698128878678263805804897998967879733114616311308661171621570013741896778454914928116719196031898960434528781542208332356264754570270842378476554012632333335468004479952540425845129732922276246148203383757554772314918134412620308008782951096109171139576943276966018377116331632499495667640125158700938196226568395150826125365809618604089862344912177669147388418928944339538569177416777156860250861883701297658387391085644095493318502745249058988489505568187527551326238925721175861699921209786096698972693223630253012485997034417678299104529610416293562033760222915615963180467160046133413878232850287160338185142968874739329578201524002126523584275667906398033856880830299539805774526616645659230647043491676891188372678085535750105875437327698973099464885246839383250770295211158876722714228253455156329471892240397812971195353176924555401951537062537165059104982477696376296906480686075027850808137810066755835008567147876557738169953131744395723399216859410706685818326956886318029210359895268539346616065023423137537912837963584196248520927575678372083985451757319741773722865094454384668822063210268002296037340877163211078536205600109139543157872546721040222949531439776156763153883308461344752721642188400347909433451077440648937287686809535630541881773150107784931940070028879174816772864439543511751686688441387161023836838089508217875644843889658389755207001098432320504778270384791012320463470445143456600169617640585012626089447102712481392526972828372708811196838755977129269143230632054396771964873480611793623484575448990187199618971080054285636892953598288736264484518708783358822278270317258106956408979110950996999205495468323630468809891021725229394005279093414984980425780929738733030853828993753585176680779389973733254983287995285129859491499430888748247422739622708270449025215556948678694169444740145437124135712678929347133647884559984055775205860657751144092636757718584156877553661250175528081708351313661883984657067227197629370413345589697349562821369640446281730244880804816138855482962192440881941322527309805239830105721361383148995330956138811506292647977904876954521985854299667250571906203265662303021052965424088287975768983296086300702463794288872587087672654277457419779305115568467913092175453469348440886036846235501536942390893598612011329122060891700016123114127103001106289370218360425172512343035678362516757871160782634141294948867071789269307960224323286901081444342199150785688020874826610262341498626025303277225868869995888931658683614354729293715206856890978655530257206521557071245480206944543619279132168474161351174062385594908435292737225350489404441138481856193795528745522686222044744271939645900536903385389779005930333094909696194359532225926727010066873219660866975011107746982332129117813580916789448187512168496486257651100869943766425514430277857043367336333776991351025016833697303828110094746891356363729014027090988419791280188765709717118196631792757272215481703158509017640947865486635243326476317210994390092092157052309932295131723780264116455489201227622256737551400578879000150422530962731963131231580874750630175051765431635544368290862871591163857720443758365645702668722560460320850701636396566205445412291524713134260599810339735841354310100854164226476321759169652323089772496828135370003851361639775830901231525444484571286552487229492439242353795768529622027949517136248819087022505509806038205306816042873931334862875817606635834105128829246025105629125220559762404478683709907543065466121200546118817844280015980790068080945545293974473864573109562540530174843965507191716804493448390282466818123077644493258675135318520569837382399099989504163738881377525897068240855737902305977065848382317031855413580360066906252410224212744230419916113676810878509229534312960623963272850575181062033896970279827669228580811942628761642310689314210169575699115803545701501495927024774337162779931333610989535951690012031692659321332408346487438679287606241058044818203812785387871809412550863612202937348369367651225055587949263580529893125681997284685772959487131752424598500637129502671230753765515484716555551880662519363275627647460773953155671646269354203011856611176669127097834915855378795969149332670228487827078952246883255187361418333624906167208440974063984912080595117102246249432718247196419060668567324028423057846267673651511589944129169647803311340336462153233786460598413083944417834686326067416475883467474030976377155504906065444246874054846070431461603921505164819045255025830599681313598727559081843210385842065728090865954551851395287912413937283290600855055265223969090824184749091735197273998287655299353180868484464812948815482028737640463431118576766335110541238568122641622850256458339658674487611576982779967029255854676753474311661473589041359878342714005876436754929563116128045760386053820089511980635646883087023967113311995567467466071545546202865262054879517800964803642177512646177887931352926581958392194414965405784671799951563677588273632381781288789685840574421843592372442625167973256083414351860199869601377145028973157151823673176840776506053063522948087212710082302712109160938588195661530088967701201539094927384742915031887946025978327535231479597741703620951961000918332809146299125489636249708188504967861444778673952167513855290680305125253916181934593441482019204118116971820847377067501366178788690338583340778034246007319200265455631568788590738159248249483327623696966605199666767423580858684734525219673603312025549331106863082429675164192661250259195239924400330629653119758049462508066721864352350453133644998468512551422676049210676745692811228769070396963319757487482035014461978290086800261321535306098505419996738615575680564481754165200764626890879007528133184943788996547823239394568013844006138323509891988318125945922247024889334230070898966814891382043744223390708342961404877743324028069777514613381980710727759069930813863362930433753017014429609934354938641224780923698972970843423990879516902724642262529307872073821256948647190813220438895768125050942115681893751446277011055785840009350782053490780240941842554311880126087907914743156679794169544290772876266599572747253640811699969301540356365894021397009141844496144255432934160017953692184135517571134000564967642955292220006283853397088687417766372520161575501193972190244399113400625785243955905671906977194479687919419545684141519785402347408454951514129483502645868145525348367465308968802534117213253211070694238293773689923436816979523864263213850683825632904856258395881273345874012228574864097917591976527809328668256600764608944625195265855954834844009660194496121960146222624709453173951344645484410489800922663043021313461988136582896673850598950051033958487605011668411348052067718455473733708038578017083454943561043345398644739990211314073495273044704142594002922075034919277722354332642847428762100953463937721189739127672199413598179782899672198291218252340909304485730840595522454425806179938921719301306586743626651092595573205133462757928644363157447772296829288783566335985833341082096730136893544981122935642928286248344243801105121848781995506644581278989949894010753693845184474614905602399188931108643976462904950969195886348243434051921447073706749115410378470917666587608528777190555286458452774161134423982018683303574497895961410411405310836592085620779867609151370930595560253554980776984248113263603006713554430002873216163238896868794881906020944753792162759758072973658831110058466964300993395423201547893841919447718731408574540658317029799007599465810974502262192188242992143418940607608237706982006093820179289776741318824030737205799459866286047587489897333958373977870556112799769689950351557262434496415886437307478762215522545917118901717706326203439856944993947410222093000808037349251423605488649491707065000193143453963696271555325435786531504645703494202140254224090103471643110235002313836563889941927514154288076575887877643392182715721430098200318253844688233632282193541735628203378561236948971404416384527143758863742308766181123208751362457528934824533931165722191688304353492301326379019432783135185982962607789776261598474708387918514186654862502612877791260680742434038595710369533284848139339000385076814273407813062743586142546325889918819410786836559482301236668450743916536212276826730313815392743329617745912877356400580178004996838434807659475088607857483533567794543125310725362490164452979671415844763385739860122294413563014824278689056706517644332378304365149441492140743710909067399539030827454972058561559784375636812148385367700655242146406482753988264875582157036101462111604784898960311704351964169917303397194687011592611952710399922041665379972389057133436702359642771173668685273589201836084737198962663990512816028068038653356403428642835758207287360381722970037964743477450099456812412512593676122119511034579341563188781018378358274363483988200430016976793839594712365581773825426779027980036271821964731349514415842663161012589572503313665934305670998650171442656499242264590620147341085143152272332595380306784619376504157602277195761156923221948774337635702110657813217877449909824846370106033496384303930852809013409546498081420701402563385339588091365880214550180656840628308987423633706011919148323193337851624122287756727126401952825748036439366602222258138092099944286989442067319786328077317774579658140691276283951785245844739828667541294286330030060606943911310275117426910453399337310417209871296421946055981153416336928312877871063506054240052581897059974901128623226021053475399356042821480261759705301290189059274420998220081328337399788166570272681509980141081986523917327947757417594878995627825287122125921587837459672373423361747409927432306224401634704399505089300691245297129611645044171870100989412748425492104929345566545283048225184146091075582697291365221380504890785278692979209242416712616085988896649780253668017355762418468982974426160995570168379993279337065068396071714783314117327538588653621963822754877010638054486090980302565082287815875521001119649845750944647990022634352196171092805776075870847201175760906282002198651152399289660737944498223937710004569167120158957568394560864906850735912934573105251401892080770952951825604714104683665220381539949626151311396445681984518867478636625357672545298868054919533453413862517804765116029971448735475074578517250489136055843267811727399968274882353377838648039001371071064771787039410918252937212411447758488068775011323988050737843433892287879673859103525839115016022066339787914103116748617205088289277496978127728029818272423269770773793259579699915248611403899514245311134635037068119218249977965284616026610167738024873841532735038698813688827846427635823269786665694165228001024901447731382887479306061227676298385789448232802804051362926556087500677425270331707776112591442202131002150396843841509480218582196671214286069697407013824429035732264551270407674646976046785481477416442071956158686878750230051919895463272158803685454236596222573816408299355261752497567553184032448140684522159021612220475226921389434376038636490021347842347611783925221311339728454130239948292433888165645157143763173825658399363907969966445190797550686860061308633260780101111096034079798919960716216164695884259256969187083210790803014093760900757736899358175030593751956549734317268220563350587412806780986350158469402922371007120465710176489540987169371081551871334698908535984453686619786292033945879946402791062685356256020757856988028199568268461262246567538994811075393182676075159843924195971284273604890610721600809556197370159860040836098233668976095462626049798756452547855105246778481662587853639602519950880096772501526060867686660658881039819990584646018397423649433434889080905331248215250955972379021677912121282408007484536262925806573303459831950815894548889451300402815890471972653646378793188820149438001342656214931807539293898583627529641686358229418172865825146766058898185132230681896980578884808116648717564580963560690273973591603226582670736185702028423687028064240022865141276030945968875641748268397842066764570298879849672714041264550240423627402040195578342679501932609552787699228805065805762402659168923852872059514616300930760315062570023727055956068724885211298914096078440035875436657743539867170716636348608107724484079096042348795639249658191657919019516607196077603508946780078779130286184700857456283977653073622311007373474051261968197224951663758911026163946268985383382041938676487357915401606876342449104500455816002535865939523855083118824678978534297801248324212000741333586137114569346187859068749275595702867738131372985540311101449978452590924392730916720837632303211158096242836345138196111775987581498707425445367054250701017302211485340492025588395957291429709873762378095663099498097078334385592816179049032792946859135220246723940624462506629017007309979700574674726912495545036214474148224902503936998178604646055327819211822486108890565247068969437827683433536100234289847905704111740126903593789977491624485157339089870408895708151908976344052085228262212903231404187678535091794249754894192243762004053478022024416714382178045733261537589346177876427102466088003677745339204340726321483207589839532735687108044776199456247453102413397627254556814629598773037230249768997305294950256148338804270516152017617685310812435745179375972106569682283030802117615179906359161964544552270696143496617667163059168678034280652012194757731438822398302711591704783719496032721573416742845336364205024006238105282658467941818610202558675804616838509148381822909588243497279359422817131743124505877457818872228210347601703032476630118844597477253349100024396581129414423261555466622551925288234825416763149075061726247072278082896636110468547702685378707939508159904191223235358988509000848978642428587234461268838597573854033916820472290143903752527380009223095997028961844546241316450062294005196445691328778234870743115398930369485004518179009329196165380209378814681694537336172138107275673923607765495061019662912722097564724454170830521538510659933336530656068234187010628707843750629056753735533315640600243954562939691834412152794030507627239555511840159924072911933929174989867327839829031829431630490377608488265142623243006645397180511412961466050201434602178843599776096053904950096607176385386157030209723465339474329288761826646676373532191667923082074391349113985705714802553190527726711891695202832904336508177542864274339821660769910940577882093507194406501854044124359532713725343764735330220321369254015189122178379432095222266755135279593189973444907727292537734310485249899764816823318505962622273941411073541144382865842540621726505345842666028397989799070435785663785857628734788652473606937112991931292900654577596913489052323277604241017632608134141436798793347229495805232244122102225574742851953593562891029598994657548105396569219912656708591970174377248409521838002658020374359712123013192612151887944582197644995975518972649330586725977875261983144909328893896499948280256347110856692902555551125938321228734615385737210442445489407052890442521387041470648723076762173600961290210991698430209568285557544135140195970042863384307014992572512993427955411794624700025283804579298357059740745577796395774365415343527153167517416222038083719475211704054300141943308179618454827018737138789684961396053029429833251883617293925421910476906244471901157007077320643662852970653771735608877110420910109834143782698794976513994123394850833211644757448295550809524637425547478469478673161136863353051212101935802917152442842743293386897103128811436826203589337551939239422377565227902264877529109301673276000098284728634038620989994889945359569972460178997054294459206845227863496289958901976287042851473132737554376061526385001463853464528180881827549229861543977180579306666032209350987565131505164834542278979045946454463931768989379652783975856316725378132255383625019201201763553780671109188535482596429115866886870726670345127653601291769821346790417060757249950590300169947196458564689911345251345263572859632003648608457698227463720847193310483023187660049786077966246270506701761045700787985450297562583304601501302171423946401927799033861702841346475042599517949677550810227412143337564763818015333508530288777258116057546781062468041469393186677017043401935550452141978201755565113225695840516951047671065216168788474231404360512971641335896744785944878061495058027206616073339717423283463851428273751851563231029778651909399773147234659284130174497480046449715235970594479893585249564457124601090106364825811349519621433015119780956822572760534111872222755517134366451710638904594746051845856034768722164698267943934970516595802632461884707229679146772349416531562132935295412336510113242447853678366326230313726693430773369534618719836726376632929390084129435284241554853785525402987080648009552045699607279189850463833811394546377615380066581211638074382693489718744184116373318014333526527559404972323767546658940559647724591960216585085158536275314323791585646944304161891331669577385528918275395925960769576177475702031458659420192835906780226925824720898717399808344579400595194853140928549563696352083827348835047879298345216140469188999458823654089495412530926288763908727691640278930676782386342155322484428862326058862672134233177690065415005061443425048365604047662847546401179926205013468250132687741066873917618429267119556455082527475424035942572615502588183743983598362428990366246897982580654853879718409892315721173771648164509335187191846391510877358953251149441422059446654982109360293339792662333385354183082916252679858229034193776007564721976992664716548646093692724208013558769688618373648960746209824479853100413010462968789820697917388374606366192207461583154778938290143141085836665692120964344355126246345231139593959633323681058024524803695845996248633167272346847680375552419207717079589582061092462897804516133895818653959582533991005366968117400707715250904759696563272111310288823660306260556945555305819287593058335324434423170660788901129709902132951174940438877478061916917217230204201439308547074702061438166131935884349230351378065560269455897922603980844596567022963383229752903773093896751690817715093161906061862756085964540390914568004606420219803210302082520975950001174606812117040891649463100395472008888582852489831791628283990730123826414602887044881400586132745918357830304575596987042970625993356238564528085020286234418083755612091365921723280347936539960890421711669793138572540228357244998851490862909667188143312408298578313368985180476612057203287868539259692830372401915817335634842339590030591334403809230880520877665972988591233478546906297579151435778101637582299503447979727768137319089961671693015087508009117279286146180567711768827519794694971819801954310083050777757501349331021548729295537422067236668029883497205886201395460923843171945182201033241105084037800800295598965039995755402340833593213500301619002514844662640249602118370182033427401444775225625882281989103415287910653969190734955179854720527981631093532503750231812877980780319041882367733649893879792320162106026781669588910133314542112324216653816222649072317903105690178308801351733108286737025207727118545762677780751654874727520764703371286453295031161845341938534037281631671280831137506937108440499885360715811994244511621872626988666376443550297341657276255642524062198199441055332172405703483767317440642566805832886936590822595393959087802109210390653059777430113913897022891919631589771985668178105534681405259306908000045221994352312309854573595106271245996369884294812938115391772948281829617776257871027824010513695828004229629239165471710687890679159532862634747078334392107105541035788137809601594091195333974242616013414346333161832895602269972851159210937042476662626365706734563328853899027542509125670810828464704373555956175803996846417783446077844992362028115298117520320103003248262727442270643317206341000054990534885698243872672399665729638391850201520043686188788477486206501313528282676569771035764927282557793042668392477647504098703120379220352894728747629293608584571584076990821555568416306292786317711193695872878177694550586858425240963660124742580507570002350570341553661871654217742637252268953639388203102487014806598269329781672183692407216021970836913066032450254636535530229874473173168596250671166107905696874115912562105096300715769371301776636437220748834241059101716255259248745061277376073000904461229628201523634030818654518834358921339350845584180893611469120549551432817247391587224668479911957364281394786389846840718403759769985590353778734835740564141418712325649634029008049078819973273163505942242974205375208561835514634331440291797763906665069263935408289143235895800483810349419828406843444182759805387408773719154656969816726835804056501430677535383714057505935230335327991429658693321179872060542896906822739535255637586387862717380126373918136685725875768960415235031165944323811139838922689314666057367357009892969391354501866727291330458956448740924467768175165917197920364464647711185508010220095936188023101167672789720148434672768482538017131526747250305571531137740671716679030226883300588951958757189122958746749656887055416637817485926917241981536216181995357624644642445902364590757032609014922815907683645002014606812065231902300669755211588897226458978842905677992096234875547578814444606223391028586389585011313007309896257316253376408857633872763877565405543529151346864210901408740335160620454505063277689341568720153584019890510606558673021032735934085013341972857722151366590766110520681009250450477454101487435385890580782479191970907294345163893482170383790033597613994409303689215074944807727228464024860956189911593120494129882402899728271837537842110872190115239969248267558670907226886421882097515624413684516201180171831571371159002667276869397765837246802820177082705391659118603093497624389356656721417973334224171011429850080068294328112122162769824306457585228060165314080701873072481990956522279758774210264757968756826800427011735449056953414431871232342697994011252709215137276356809475160961986963355858336679360264537127544210461268812374346964617193459980219183244218247571201020372628375954053676199450127374459703766746279490222352096944289772032156973147699877279338374277058248400552733370193685440836949648121022481047498289574868350332188080975003462633428840469420037001734376021251546070145374155753429210578857614862942261370494582096356315400391716177553607409623605967076713652060020205005395199077724024637608498355745045815021094815831113683221934106216237899064278393753657006261718266814699795235864015062130069193314052762781515423669172024894994905763232721145401254369403410447531066392378064086881919268878883019454988150795394545250243404420955891450048360119093837085768550484588032462441480951582680971583556869457281395873728840722758356392613110514782055351475059958294736959417420288069731125054566600854395649336620889902745062677058009262696719467746338770029145613437302406456244208874786011391245801491644856034936919098799668425508413854814755413089094428681033748256992472684016439087961342766845871383752676749625301409563085714585951583331233246303346553361753282147576557193049872256897481569885333149365606752492430242503266635768402084242311285013625762986335889871516258796522213321552156022041086807494521044970491517426751074217735692591165577396261608565455152925911581677317807495106758793327064786309144096528771937173152191569132003603765893929669260536252623755971137012151869199990504439809220533826568912593338224693983836882892021239668138381898307864446260674984233507244791244257912894381813215162488374356692620648662224261174368877168957994384013770375981430928904851104347050226880669112342242584840921291446299350008225873841815533106361648119268789264902201500809228982037198016737457536991159565291441612610708693834684849837150159108230746027477988222704741623893953936621041312412194180708418734321882885132990348031313039356441265665016053208630190298687615033002306593798455496501506472652207505613396228402344976695609061215316530631693973687364331482163288047456251995791422742705439011362168312263595730541904635548875180182685153472895852170796346704160321268997817302077011818830479556200433342741074012953520578216717166305184737205128673908688638225494152258108140164328830899326039832202311580113253824313700439863230805831190442014790777760189494716941476035081087702823822929046225548083256021738696179657799113528353430997059329698764413894461994188105009004131046067103772774530842634604448505698508543059357484299441558424457712122375095033584941960349870055512952409101660733920553438083404199561953517410527242443113995809677100219685585727408374172029132839258706359575976994854700166689563307837491089988220300848416103237578019243414030270499696166885484636577582969937048264392507148289947235062675570274717435576952534437287023623096806195160746558911958406622447109267298065815700623451630346463782313563833918893051535036273263984216407703732188025430591757516918545963951074652594746560743135141961658516532120910970279373752892066097315568188150387529940075247191241879567360639338620336203469705937529952470187025224396357506405497094342472378381104464876966849238273535638908196462784118832347612714553369096483314747048045745412167200525337182742318554249195826304492647558696333087293886645535560754568542607656250032592542174174074515325793597451647444478371245134190501552289325107454479205452079816683212268540222016083572419486530413810721481768649972577093725402114452306802090667921563520724817063475334978174168375932625351393075922882596684020038183256377032887671903159658729472402835028878092307550786202122436454835001159948942368650984105490116769886167291805426752317798524241585031944459426362706854318340607686898500724786026603153635117148055592405701297135308771952810190469603393370181714607120601084872345433634679748489283711675436809574911004986489354623040589573508041001791664506162484589012943962267989795091128273974620439226668029368542353300229733361004150622702146047752266273462256249978698181754347206939264026147107196228864913482310132684691874772916172591902309794861729009758459404599843426696823964588059663384690763297843018266842766568962740767296961603489981434556251303006638555850055645287732626759125690493904985439656368757554782430643355717445523803187029785485367475134276118191718875420041176997413525665478227594215921842709125880078591912531697463650436208020959569261757975581488964559733398829538263733668100731807534385593690216622418550835582377461404192752755137745554369428095865154063127839286217265609072555496557358040803055010966004422791026189652957265786422693493211582761498566614890171119603629582118025364402039158680994639033827807050486810918152918397454966200730597015977209661452896367001023213595248874913771454320180862902515360413357408306144468360459655630651561046454173474481155244989588084815625148595505142658859953296170337214292816865321932266629875177346342896089537053164874863204531797799541349640218316264516864154913098652095603870610423939815630475526271674104082004430239901703441471648348898412019589269993608396307787720114584288906759313297719215630633537973440511466339783660108228516578669680849392944695960596920970574890046207328513284405421112471378862720816142067501051872249426953565722393751336134868034675288940869473249155461488521044278688082761316848133324547723957728852880938377866056252159941470823701382184840698011737919086781361341043642216469886535248824970048637674229789351243135234874327970275412429137495740654216322101430734125166262454126620221430523282557419076207107897831683006237327796427496397953526186493204486097300002995273902378240805549912007110791165555398158785777340506225355236227084963755702438467234885763543519734713383001884333360856291593471442043237878869404257803753331808044256573683997899639087958379127614087124704213500144903026691445904666882051680209429218715093395539168232738847314411911994198052344546289704700603519411148499775887886698280407786102656594970351437492372868136463550642862528401147828907003201745268097639610559529918035934950470724850369924655464829077205444801671055355817709175393553636084264452469599871665262665110002065239033293003886775841398373047781837074642011421794142690424688754497875769566310346431161492336897569935974345875921748982283784963084103532982193944914629440193264125761049631820394385751097528913769880735516096775353343517037056729966973500469550884755490968561873059479327135173833947116378718242062725919787760843076615567158525736855637035155057068322248001471898257814985526079002822509723688677978598490209859602152486581023669603466981324234178670038919683418871447368996783894512494696379670441654794931131299125963382283157673075177273173870041770500335510634698787881597983288860039747943845121697860075759213168936182259848158419746369579685399853112788680015271770389782953824275816617173643483615916158135404045548187531162797434620183935195853312163208412577324966095993789988015480141111382179921516774147085183509359065994417202150441704167390209566586469854271350658812748679188582820376992383299454913857486814280578608545218960717005810728050571505873163770687951773189732039479765980093399803099918052767557015211126210657627826903745512807455216867680897549452744394168233179788705116041285317919667094644972279919047058751288975252682770949591259764365959294599130671510148135030733065668010612550659035073538355014295946949471810218697781367071645091617521960663258957617990823419957198437120684492853255568541492497609427500760965624528236235638139499101507884438030125702679405482186141109607920057546531527203034118659440227185703874433917696598428709927030287288023308500048567429874426205359599269459018083212266132475041515533850091345908809930795998853143468821580136674932414675460589556388045381797461426058508248988689031031572752640181600562457809067371364523549386004406528993632638149805009623083596521335229366432787307689845299798451837243901294772862845584238063862980845237858498792809041611207902081907643426138600594736742596465658489436797594465005276308843651949514879329819314013463685584663896886718470321091231698783492033753947221802100672494000321697948974758160690812581910107906271961346097881902064440655880923996050494674335414421961689729922738120819276722390761698984644897491746015494331829959296608375623358630166264122969286538234119161010654849041834724163486330953042193064544827481486686938702199620436663005514824801567738090764091939654983949315541820453799942611751427832212093021803787441998056827830002134915783593670858007467906069978265652717994189759267678196078985249408514905556031537153374171818788228865727041448791332381268339267729147722752528449684925261677975495154574669374416406147677499042697404039507074684787952081355109828488244260903720187258689510097494752699574261785871372312772572709216245441890327674664241258646114651425020466298993700403415882780665018483541763397694945375359096363116592957897126604698361420903624798310514606316161097521377629807214448419101629756140394531346242285848637368057471551050007902295343370463885842941984861684741334776882411887508918096560109244328496806946992990394867956773069178304707174266959008775934800874700077218178263528540656758658428643222725818167793905931389207226632872560333247663245270439503654508264233123100725489711414206486164436244675559447883386763794597481517340005536205489169805101598125077889562927432066731709712542907331725177351315503189087493526143553675132814104467995499627275274018100945527224876116198114777213822780300256504197961454676055015433277780700364788516878328860327502172105788417327871880651039648602234131750773708816497895460744412941740154130462588578538646894733528151299299357442085361991076354770851847415188963361626043498719734497608743861412491462071985513932676006125485895006861543324352058178877780978307559041318979205730599886629068828605768579620944994842942386831945104957401722860012722431334849197718253840242462065680426384563391837252016728730572543927443723669801148838363318770422457634852893067415714366787644290941404071094123367253808462420253528091161279017305244981321151295658268525244988038658435679308453700972095339331834083181329736665588270690962640465754713545734846566757845377138054554079532851339263700620283178787386609916177362051692269682512858636983261711668046762363749118402958069503009676731040842639273196920653027199962256329378031595830713759925662786549600915580998440964237244708482844166264589402984412889788977329267958832513247978578423845249627785331759752185584064693242600144664520546528253979050318398266621398430935330794055654882082195621855641859232060746629278988725064262081479403341760136146401972734205458797934954577726958283109047227507413888551602609321693872109296168755293781580015902953716812674602088235366179324517741864634724830322961818208646889053760531061088470738419341124970216307301234054150473251768571386239215941336208098794262737752695175986486171753987605137028975773551521958071148675396816676277707362442031349187479925248866524929295929975194022818758703565556854944016094633673751407733764907096759414250207446244351195389317109745449123901673115412545371443250850024991512713965639678714071336343930475709398783498623954764372926204272500257666254511518566687773611543040781594195253981595446102782974561959423037015618465561539457256671583359920624456886442260319205772340039602956885852330433128840468793691633529571628040204853518474997703379840682592666899808485608332498023869313470489866297519531366591523687085684020155321486116121502514111870090313972759068972157297339385418675888784851388841105118165474892601342319458008895698943767460647143339583390103465232234204999551258302049582078367537680706963596994653385458392127871099266580460096355803045748463028952232068734025506295040604383922004637945395491371191672697040733756014135359940800201713334212691192176355185876083781923580546593192041307471402382051118566274489177547515036764187253052373709260526005697323231804951973003521073878997919436995835970316883897801303343001634149680590874986750618967144413744712080046580595103817826810430527142725677623842131889045909081804340347543006958918357102534715477109467092015137708965677621936963002576952877963318610023565645303582189625443644741561546788393052434415276568043757134576283104677095337151655690878032058051167537483034626355068807217839282524621057263932198681255657960066440848661829538881703947959786272005457373558115543682844195480730897009729944054488342497043022709984455488362841978164182792360975708480513935770109755379632448652456074777042067860235639400168559295770779452942724823362815091243501169680206843968694472976528867918644484595002392918332276407753075507604520635320024362014378618222700645326176428465732701853000945765506977562987554537524474032104437802442808586224933470968164915892510518336390332427776273873685591763148549033432112134683990203871576190040814359447473790406238915536213942409668571749961859770960905558849541189153110012043377144138256869823718924257889319453814181963733658602273871128052751815096409106168151698547169681676886878059444531049981816407396424587417778480417442109661083034961964658960756632599768219511421852204210463176794285866768220260409270482753603697429509589557227714903676057431276322746292939002005567879186070449620407539474892598010928772675787112407432277471903945839915343822334677701409146169711269807344901305751416195897191713957802801910941241019236717712537546572394051831539789436540238914228103999114702377112587845705466004344510606133134106527184540007477817999383905657037425550018691791348680200422761355837308639463162430575806113443921071067317165614544680103298763670710783012577427755579380033890621357749414752822778826586641846252714153623733948684828781985512836416644387720627601678843718938213322259290509867436878076785443028219257640432613175349298731057667446923133841546938542334696353837472169939173441581711786547760467663410867556561785823878779297148599020757882010204308681286697991636632562895291176945930728267992881176531355717118960224381182235975380342751502293620060252802850381799853196589306335429275781340376134186032667463304822994567755962208541708532996754437539994023307833300359975214595339383056278776195340746392369454537775856917202092782064283235846134827215877239255903201718358914738236555757366033717884403734431133903905810757105446402879344124210556131915991535253107990621925107014260875597132361611030854534808283472580840800084627451051172877317643937447683165051334333691560074857387488540348907576638972039151296149715951157969169926947984380024479804136239956137673734629689782605659148492360252197108581409778485287911802444932373080090200059858763334313746077154044856514147632320557720519481361629799605500241154784863906236403923570770794301580369007693427761593751139528498210914133803173866441906140071950703572547006718699261346861773261925978774016242103062094963441069254003620665297386239942538728473884943148598826112965868480978931753946778621603189176408059168369441487811927295765589719884154988671797911859549375121491021611836372561796122394634959725244828257763586107249747260313226242792200573016345598210103571226508749346790253459758498823816185449730426791881980525253382115021815576893111028668620217821432905014061559728400661159153505524739690361911756524374471136973363161314860120130124758299725410308909395073923655694798032137390079073614559756531159843535478243424514870117247151246092440308007599792533888715390273395105035579680487832618889661025409329445456621125690697640147058242711876315417407357710318933417780328009638695503744315122619590784928838149048251337519322948599801565168936618468068968139067462953126451451015048269348144734855425608303677244749489629855267378125688122906414685914504772216215125695735282308569153767016646138117385649613682581512645065829606642820591090565262402809596059126068610256229767728133079301640853941506987995608083677207717466618729520750196365745105796491068553942639606008609051049850000651138531924656639382624929814250663970845995144212314957068801976365125360556490159382743687644969190016309287232376569117065197290747547005878640203415066918684168919451066563075867396889165903168300583576393225959322286884166279695381465471494651239232291445503292279640979719785472304151211400235643083553375208233716442165096876631418443468867459247604626742091056061873637085454854809232783165437557169705941914743042145513683527933501661301069256633395202374663453299994347497504272639437089502084876096991623264877938729989644826931549478447300212327879194867916776477143041705306677627344743902498369982143410211336538446917404678010162681175694491234819191219178808097062984401997475839512867227920315068768335409724255882840754586813760718784868538877938322560350896951244434102577542747993660155835576811091680233123197857428117003619695746797757717387535979342771639788987469979840747585195809513054176718109293913400585833240607089317229263194417324504444221133924383534497275704573401939782299465366862396288134805512480197186146409444166472223520197084722226542132351583099309774821039204191316046074833345706710820101540207538250635174520889388065262078744601521270088149801197047943837120854344519206334184231376062766885523138386537134603483850296770612239884216107878903803045480449046848715315501723916111790725587869987687294932461489395360761689522571953772301307193521917250350308513677440655566555089968670564002881034466173651372794559307666990624204977247140106368621095431263805577145033163559652627156750786562730167443508408756502139880773095642608385577791697069072629121496182793623252654980890406326365313646427797059381308575341769406326352425641002998300680804982256551546550289068331679777315433665321842321066072859082540652656265852263460214115355071959242022312813109447812315269798651610318523816743694883649530607649234418135506692324900338834995326697554206304451737468884367071995839444567832603291640973359181400172911195119793368748981611251657810510909482502014598574122089905708215197357850782359036573741257218162158744623570669362959790713347034225320507908848144237628332135521555009997353474880300858551757887657036104293459775538947991090381861060465521766537656008867744873046578662826641625742859519337589559255895133932905168664282031311372766715555742981838919652246245753033463236786724931967999586471293609968259370705183601820758298795158121064969843773639159243895735748391307939073934609567779437615226486295596633218631795171643813858834249046892061831061315047056496679321692042863956215392369211859649652293949255948249317676309305959605139456752715942304951041137659558419073063477879701522045593015066160732106070614250714258925057541078015775723539056893959018902598535039102201757896633426410044559400229074269558686273787911875967254610490584024324180918938001637329932943586828268461861335601385926938690548732546541957049489243746344441070225838230336396313256930648620253802885738023794402485349875495445167778589744925129385432821786101640000828739788979020236691567327334288728686517215803586988841850958568237781036475759576045162710645963867640648003379306497823170409177045514196026126482124045944408247875271671324010171242145988413531196017089046215566166763115592308688807544618869124595973122722203206607551658572735802976839980680871110469956300238913559612064963813145762858777829165829632578318129773028856924903875100304245323137715809981007460965812658357086348526685603598991582077165157218729255694886126840860506685272489476748698758124043675710151860058046194265399209563768150208960860834765923345597685189447858720991348687747028990616569266908538708869469268488257651063290017561737765715492222073008590093890170615533506618808599285459473567798133796573284946763858359160044199146840990706161109613564305323973566481622747599622925508584297712857529420299607843974447018468111335181127781059013854746821764122860395737626634142040264889850793558644035910398429493317342351795568334317030482531748941131981136548535806902743272768245453481565550036479304743306368529984558599799578158468136715898135684140572965158551185713086184495214914668832688707960155418079909447288037638030913606833284566254671527644238015401240633684174027995376872563148382651402392247522449187572779191675652138217338307604208012381839289006567120690038342987622036407740652262860848586732589438919659992137904177286341229670776610066079409977999635611464832485201699364493461757401996959983313963157321013891317486260828621767475226719256879508987260860619144713336369994401876060930713737298480532144676089537140062391106559931182681563250284980424266438226227315007087054596427087383079587032235542518799113113639025216648277916734225633718564121117607239817521923964451119553959825329590764555480027752042243456881108303216312158951356705158020493522991536366148213264582519333283621149968133494526760405205560341641117134829169521712348752368736721001592995068358692693276931604623767352792056543364013026007834834441914974153818414669065212308382196967235334477648687304622867031520207966579213319130560292129808451561505474476789577992562419859059892444000885336846417009472789541129542249570192512455674975641912750251337564753187147525888422063913392871768819837404008947728964872055803661193970862598539443387743818709222314519273291953689262658001383712278109625862287935712737485685179741117875598237807009665167987637558844943326781083703170547456540224734607128665640759318494058846151704252773984571656357080202361146911960170974591083625242682281417321119041463341682717970457500634983489431121651691171689634917126403677400464907407647060023430842235645144458243511165914433487027238921403065661675820828720627493368668850725946154987454915126304198378776989361049942324738638270981142188163447557795743111528867682597219721005878899926446282709841216869087993255601041166308801950517599208386109386960133230047227153009326961949505644951351437124315865627028610729261206728177208900113075222470398617165655761995590392634312356909203994524733870938484652604726271436118383130941324543244746069286558266843033967526021723354085094008503100140629785200637512902558336690673612612046587840077508087547283766309332115922340328522575532675632915757356552097383023808426306306342664451190421185819848602679294286782340945157436901627905053631520366000291843473946039305169754833721572236797165646087606758306862749817843949553650864018426179240772616553178283736855921034787786871116297711552858005928713123896150296876627344087865165385367552605992415839606796216821535241077686188487108221686629889845934570833980100235719844020501007204212263124537001442918736771469419771311086894142155359492480445860381433111309910340488725947460291281091674525472663125372980416404367133372335928167986240480460855356094843256097888492431425752433360937316451124824713015130725675648593561917233119460424198748059317083352799438628136890423004306362900799367564986693646530867008341408019394301442638116969393278645186595598359051973581180501058404715038143517015070600687345602936655131724141261377900171242154348633470202218666434436243395037119145810484740158009456237600964382356359992612317190651756576419628896808489398495988627270588496258192613272936317455893585042505664336592919395529841960731701235607326348934652250767499207736420300926870782332494789653895585619469270666537873396860027910619607265877202350297714913224986343668594187460014507213186316715247423316439508329181066889430898383009291157757883065825453155173871656622376315642225360282925028795058890378873714857326901049080576891268581013503486462366556386753575314739706984998742259770163384830340272734302817936623211945113854516950264963854348535384494776294809971470639655803739726550328567764038126027040695617641396482680368199654277119462054639541487095745740894600675708798650274526708064549948735815465864640859877976238458057235907337082738529445338582532051288549902298287823254248454686400927028502934842860415692487904247552099732856254620013946729280318699776050872667220781406741271137342208597658389048550217628882244440702470820699151748164661523644346630847770205989968794201257154898099021788642108909248940241003892540728437635600452434211405290798963311243183612543624555372797374077255665789063672759012111457080848510744328601415055270062025638807758133405714448664559648644098284099895671697180536434197464213125045857778784554333077667072508976659191516492067819156781015456182105180175496675556618546678258759820671225910166822251675428901886253084048136902024575957693261999518411413049893070772387637159373651950573197648847574360897518951159107467289785216920554122277953134829539974329522552933414636574793373428471989587725650902845920216711964406799661611167216505894100337670818788892621741513411795264891200917710394233977029453168214186105867252824808721804666911159532671694332716530386580300084474187879041148572872610443131085769980999462869532748822918816656838219595157581555133674384696394586368591808685973497936270819869123900021948057160129533979515645680735525027483715717062819269473206722481557908574667573636508133146086851852013238017913662845053468256490566619195372375825226420511999924929338524405336410654505822896358302117860974633102442185507870612461286010833178572819738582796883282731043908950758517213044775600571301238707746989418679999329827881436412287812713016657660680101725288893512019359823848315151317634501363049633997194709161893095837336194958570061373750714169246135978228018862045500554725008059918392514075970897916205430201716350855846840213012836832401352658023750097068106459697529778947512989840601172257716495314188815121270125574068033542790027143186520242382781509248626889163386072628221313703359012972075256145848666689624084382395545892288703740314510223261247708850718538158293957204704444481595757741215869438229818394616556856944339842237948561966895104365433248077896685373470348723200724460203271656408511219888831976477308441205113803910250927452086046846078631885653094836581075520678726321068504022622371464407377463415677999157519921791480097294130555109836197975529086382201920161061821076746376188095674123034468732241409436969906423639813363126585509758553899621740096148997101132248639188523311806782867278446221473088307393916136458797413128871578517880255300940304585337428266390429684764892357868733016098110888109115745737702507545386822114640949332264961783807360873595618982006166694792793678257208184382404032241397588629661499768110956460804813863326389816171432212532832097098210282866606674505603147961478708094984574389737769640547152376412304030728260000787885343719657794156554161971524192988835449201836256412856721596972114458433122747322158510436415245807226751560201755733001267223429996455061293225312301683351092497236524329038046189220925286729993722520373241274716976257233910856198907906790762333183694727518892691274887018244460537540508866622232605438576016881434161695311083970798653600632252781940478696802945915102839616569485431756402786017158719120206481601199454660252002918002733060635335054258840548349155212432592674495387930233882081566704324208520223587024255381492339056745179791950746844419280291588732888881485456775268983250149027044751658263685284347207108989872215002384569339774397453555334481038451444582324160126476621905646645528931303649616506021234620290298254469046777332192004495696705162449167431218444707277489926413917490966212060787678358482700182058332614585879778476859182840376451043468225213817432462471453536613323919003236412757992780772432162769251007612909104199155404991385759528349120498895141834221795090228479591192218604006156502661327534316494306381686017725016135336713849131943838467820069730036345972232935058590598016815795338900272594889515369566176338542052312502608468430908831709427007655873703071279070988001234074833232542044119158822257828073307649247178828237440801521249894825174006425495411053845930949153575678549773558957507694151757748880906420260450084413691206483303476619550892254268181088951761696383192277260583992215675674514718396482795395529709652488776774978480361390400395581805996855311355878809239955487704459256304529920102499099564607685788956248214753123811441654110574458371222122833493820908933974937212293657414857873088563786084103210280678834394110835241083353813684114602332111604466498615615163939882454467789488395758648883102854385408720054351385659291317786600555963420336005377613735271209119063259830844134262138834697633901890319424515188320104947913833855375215906777326863224249520568115781956506409783801279503703888331627383164056210038904880885861316720132867179644240263242722841358895045974115779928344954929029991390767351269867001667484255890075015811199876462712019885786672552607914763764066596732258973405917706153403093359719380971266511033501126037251177918437091772962656980141953500040036745748307390243642803343424457423627081463419988888940657865017620892366405794401321941929725638549890352298678141232386722040188605351540864106658736320159758367280523472554643261039923311677882259438901325140461068848477562047328590804167831113163410751406168671296911508019634756012973948644592054519339712828362123065655356396131980121376982895364076878625262145037435076455143613071687051272029641649526013404346680371089172692283469622046773324996715973708641827062891863804394346369758099333958150512126073867722561916741285417168133915901969542458942733297390632381557204688899752615979764122145143251721160704606966439923937867559199656705268975707193575842563193776039694138165504448647954299620212097818948260009020490517075272177818326437526873847154039802551676256069425748466619235510887443911479381442648667399691172698450316748307659262640840062087956980126940077797907923768787773541299757185817149581566267731653742806694768727569103860709848974948037618968614862884053326021678815322081430127193681090530118262054000345534656112854758346322974360019513010897335542328786590813624101606469829996439411889061817418692874607254914106905545862500563954414897475507391360640599606651176618430541046533421368345129483354330336179514122252310226814239107994844048423533173398035103810284133998107878610223653933329959235699943021398545980233820755063604854007004258427231198269412922051552785603408476841429063022361706889481056292763110656921052046853550271199924778543499959045833014091004884982552734913821611425343992187991999274632531284768994205244859872070723867672066568290033853015441263137629427315113835812487754501695558575934623684947663838441783972711095443352516739630595921447502523720000712321015636819781142532327936948232552204410426628261829117587184522280112533013850588781516687356954326356682813126247812192415918880047301294969045860094963004839778344921237374337728467814573153633904108985763215902003873664302593898792776284932699359126561648061875759857603120656938794422182728496182808191138434625238691418251024599858261246268432078288252332027807653903111861986874941677145992386361321042125289378056482358419061862030213790038093794883623876522158390283495210294542076634601011686209768863771803379967253286302646715181094008076005514779830197883167875030772834890062261905739231260915842697166538771506692391583447374337321217410524574593796868813266173770233883858605614109040735843627082821590547579996981254378073252358547939454496303999053743650438323491893507006957662990140881851711814580031025536437264446664859171287215696472274446717960630412211221824866300186731008913273744387294797855011609132799207474519966850753523472976440422879907852324613119838766611844266607086327599721334776743411795348584352278489362745509823719373578479269187308483268013565126516120638530847851333951345915574910459538812190810384361515260389777003347968226885608972563073354655979117572313087255195934233740536946644236143700058614719230140324253961664291840601412797715845302196564105919201354923523022219479580030843085851034257864023384666484990398104032720902404470208901961538839079226936291278182049592041854389838512398278622027529147741248795394717490592408346302088852204933233226797483435475018813492276675968912915778289367777952836375622560760602960392189220746266989601478244316278751173602015106912961981609567461717281376038850244833877929614997041699648972564092996770553391528897746851466712518431503437289784045689256601153590536553621352490961933458055282091671580245551344818372460106629600260457593925360202813349008536355189785141961393978404433444543258077032416827380811549919573862746217230521457566888612154002281000942362526926147899902891022101098403033251142351195330028459337193332206218465076949145559104078050729011006882862935119761713623050062928220421946390353948420051705882012046645461163283959308649450283895305526615224414678762628189330005052347258713425019712212046350860636302617484543591148708965444571238187860952472742388918216951946264309162042154441813480667452507271634858066877556974096502900952515309676970353757799976342876286308866104556106284709977723596504381441731487440860208356273306053627950935041895597190610060108456009743802777274207001663488947037495777940166058057450033500326077306044672104107245832620269187763009927818746756965846354906112973929326838124445746586364748404767094382091089681676999955515493444229332515140506542899150824709307732943184390848055366203815029999410894340643507352213700860205708720644727008230461851452686196244845178630104201485320245075235745807964750670508207200893463284526095336371623308782662222703703545795555123221833861909223329241248185799079913523679013367033686947666101872770395759068058384875802151982291279587259585258510869560091496463406172829361647007324596523472931999952130059278764052820890000682091237116744772637464185487424751549520271766522689793457283371997711278620147690964723541137282032287061580390728074488267374790554317821283126366350862885766302419272934018913227562869584628348169212810688119450504538260647494187479276717660704174886757021996448486321922788869304115498922267665523938251289366024650964171252693812105545983013228501504186222523681821769775354915729963321923909181631942583818632801082407928984429668063771213321639353485123058505651295379433140869781115246476899959651752751284831169068671551609340383789518494480249005274924789680407203813474700772209326825533391766762727108214720109933974227677537712304800209173230933466326970837938701379778579967999594507007432067640820978922809153096491006239410864477337643232123493791851115241124807851283198938434364217554142064224719447105957927877289156809077314940734034387264553916396182847574813313038598820742380656371229248421829147310965688511082535347635474381717297796962570403947969468870504094236517139427199486593104919252660308688845995955481096926100406101152918807414348479814167696927161546858243627866250726231613716466186353122160275018394546659736154582720902731544529381969162881578874497515962026152386777580678788423771770460318082692550002393501296869582559409786365119206939924389745319305565561734381233141671289255922191523221200650951846086223364913453924173561964535128307359963084410391460482785546011164650742645882977493510562831130790094800345745677010728086757887989240066329249019333656683801593640690594192677045120176249024163980224290858876552807334334197287345794926354111756050773769808552682314139260535237067635329996622718631452659571402579638169186585847767099733716323659167058687434203730567187904304607934468308195896944770365622560231222992250741003747822643821016214862294972256285506754411329399675966176385819427262601801151352073096112087327283802106734307953672502399552573700201515082604658638200387081768387638690253821812044053937575329038385125114988998084103930547556789573521041402378640967340075936634988192466876290849676822540408571028200830634903090240081540403994149363933492918138742290677436831402967050205845725747046575133056463415600447648796395434276684967948632487649066801988925530848963737085169149876510881743293597337277166289342012531312447273245928828241386752840673379989422403108390020761615895640758715229612961573048504347965053931555260319829036171933032462532044318569891014047812951735026283282815467415168906322036034406910996349961160798311431762302731218053268732513443686224178596361062862635799461038796736446356097199975591657348445188547480385771088907070805807812032977112199672205561734842920096425640615681203554626202368194798693042906381703521971421191783610619721912209213529666636637003518078828383351825517711746497556173176579974597445705179106289328600444485829789990043391234596278418998968689561246021324664806152698843754226973810832612140332269545891590482247349196268023039051861687054559120090559539787765476503403760547095401728667226467269642680023686231889873366394832128288289328715361546838146813993890039314348350374240317698082235510160846532082378052058077104557567920764608285289087838356275038302943040809648640589532739669213333457995281737520383481797550756101119808928480944148421403828258086404441075317270917917765974311326801776988918339296333908207306114220138032218799539880470027570286647833803229513093860311938848387951801319059369488282668475137386653671877584810604477399426661392449601020931818341509394937911051393493894577879789158444482338715169565593816082280289502946305726169019312104961397645172071664593284788257797948575763660112933360242115846071858309825922881177739560053520887614809059484584221447563442715724735494840819481524786434665171122925541962079419697525169546223609727050421612858247945282848310414549430038907315147733285455294408321670273767716266391852933428878074144719096655079647594460424025359734396393095120749244283527039011630072562679568983103823929041458354149941791864084582003030591839291078505289600807805008160694126212434829997818972714095554472140577906376248613679629969323749045224491220307170828513352828781755131297365842518870005140310854264280377404308700625933995785371163884053855544770310046993423347259020890554046452005631889419832771035004692694587592116492510013473265306175615926865469228739998587878673850167261231175391198555917040573050990162572516897235006832805963605942136954143484762128947412415357383105177900679575800031352975002664128530589787336972457304061999025176425085481720429034909744157264502286462004027119035418124949521206309440858814425223805609795173484707336729974026575342977855111843028519495541635891283985833088543743939587893701651548000069269295885452375205434978938320843022211879546553231467259513101362232586441961672891368010571606048394367729424743887054935276177680846110109172799687318102010204279212968070172228849165238875814114339713183068404231952995347873333498525570153964616215295996717853276593006337247823441377999653509960246024677202192321843914192256444049484631928905667508879439712811355136666145710077029894632153173214859145562355259241598646501601105868828798005772616323449640397979908676731485499527546429557644581807366885341018830072886799768238514777995223858017795392947427194561499014008252227706861978978850763544150871667716153266803665581792585110808699259074260156723469698540724120234499842062475962947149402241498968676053644472386807824798507189975535451711570424571080626337898937295765195359143680996719683922829774114624065445195462948970816934412708175755886572522910278620149976087682068588481886949645014400551574916270936043873587532831288062341639337368814079617666641521456540730846933546735236032463784480782833226928633832338833664559102860207342199133410537725469654598467922541341806367250390081757189700845076551740655365842572933538695944702624931493833402679977075628559598745501514844653584869166629131986863426257203343170259481303178367993456381620615716251318910901001845684319351504722054927218756207126292822726147610181987475733937543658086047477971075805598136094664699144407897114576035985242597020961125046397718016825211968003361848235390279701327545125121133670628631118905901266060106508101778072836157899124049084981191044125197339253528610734478042122263631259770665230722049098394782268409411808420156445060735383414222695174152951608963468605181913301204474931327193525008377047709529708877870197728926782874009376178287187836882854976534052376089954985958274055691961474666927270489185558745875083757269981705352453677146364131217503619152885100461929829349561416987846202570421741019743426353993995061680651844866563058623445480230852642927723628853320243154402122567127733496779576383879430265244709028809657385774370947082977283438146886646166312581817966778352680565703305007722534972865830657492837056456474725424379361118985825462567734017810064545687353003188350647446612618589292906423110384683118962100823170823467179214428212389219639894765700777547755216779286605261538858273614246638602216950845321811930089230235565740436302447702494988487810737804343740545470250866648202261659591010928367271768075730996903763720192076618540945869369242042783076264371815512038614167140911119619877475951689673767631419161938547705108598307851235574511464548986524484192183079067301158938265735351897598546990086061699753538879828164887844358989760255852083082559271228630648115924875170088498794147921906340820981420722572285547304250684824133544691308266160867511688093375808748739872773956647598923908773945567271807702608619891016232868099390944926361724789954436339886748286615819984700365987130433817163643668236565295195658395874416559887151205948127932001838229141775005159772654143830300265945432790933931093433611261223046656917273485170883026844623427318145663615974786736128643814456801129026023425272008371479707253130683129354372799083761723186816676087749475422163367706648322447734015761708626259317465914523167935634685793153511546221280893935790090709451145454618566969044053378871959472115421643327591681448150274438899420567852004748551729091676625320115807214405661192661014651349404732427904491454936335759335219773108972788056375918726381704580654425428398451789351899471869795408350014190407023433462888699460719702131871851271417933616261503027671155779539152346457587444713154173067385142636052044205417344142823535142667025611611437670762148617794738110915176256469130335411152380929350260178675130170335799588463789291789707159317402920767870944937163069132485327323084567497012738384740702180988023898074408818226396832157107912920776550749020966367402759857920852332908748280460557391480757100382681100825220245664794817243299631852244046339012205510531060483434965150901886989886135176013940505178438151976474368879316231332650149645063309633342243776443827679108816456895523808864720965973724456783743819822453096750889977464000971494037036365183881386020570154684438928878422046972280423222647958718287087423632688658874926205334116714643150168130614603294206721501343458347918204062519208181865198403627866569363526145416413112903117840502051017533089315733485415495039059304108165328911265367501849296978847525685430312339250162124569741457843252116245309287191666442214724654789532251980665434166654741120424056108671004077767840989715980774741452400245057760909180036988303861220423291164306342830816625698968080366866587780298852835640744390015947178487509296841978503038879189772717915130373171947472649828453673273972787007663517101084097847012587772223113931978705458329130162119264152782590307302466638077589143970782254935766272510670755342775620189497202470331927945439391649882555978691106096423894218114338386049915930756627330068567746296099812017618628827607645907239715634760176472169107295058243651797275731979541148867959296572727086372297657057665601328616200829176100473245758859761607605332906959235900749562123303542505322921084897547779133603579154894678729448868305544971556148331251491818661595491781175787942676070380315142868214201201064656439795103653785347356786012237416815540510216022345541885160294723539555811039590879422009530080639275708379687105822843752392573073941793056705901152469232437331365504656854183799840547858328122934587970109251092566281338508836640502017366495919291522738857226581786354144046867348391289334474255037455869032636906531141516703369741377444435532219507674113863247925868572647874572338162533797098059813530747855488354583828100240453129595240627700548383390934273768520370340421570558343619166017729774012389166566409546713980742548608072855634752019355908023391475502209561600314024480213732309378409270596281543293444775556854295826125970231688731041958046895140777641055309174491460705236205060667358924711946777140642617616665953019434194191237436624376975901730401942842910285874847520648292547106979438515890809050794108461171677739445132968146521753947259937464641605062554448091987210650928712294308096859891012404123109271025382187613381180424179211744479666255186515797993861829152847318693603280690776383622235365761381300424814428450040437482250563746090805226401764550069144313099949146558499806078206700342955843220839310840900579070220143283886535456073392980672777888190933183276514959222993983824233742307429790822946989091865596718931038952289729274113186173971385071471007926910589479559231205585219683168334807672771715385191139322584523958298903772639582073995904923107238320069295888704258343076526765551035918546790512186011457780003093341465335110997873764997894632885928033489461911335245555649238937404902437432843994332738791325491288177646520386619949903072713254711410143309440303284495684648623122998472830204946102095148724805097110249449151087949408332020520239087997265131915396878799169595857846187415356640668525254662696410315002203479136860989781280972281343440057557154838625272274724296165363575096525944480668552821766504305814784284040127942271173329212334550166316518645794580244405029207816350523348757184656946607772554189994023024007629518559605069879601840467322423834624683973297182668748657676279108859036651241963352176520214342475556438941123198075924803780633408409223339096457405377150997188594530586956440043924805747323419349910610169711228729094660232010833798997647306512699820086513459180650074560574169831119616369634902757219090385195778228168123045855613127656442852171855675830990348966358013662218910872865848496664343589635512569500097526146267998472857176636549416681517005948156487116622691261336665306295219808434133794023033967098575929200381755231546745459565339850060477663709593780664022017138236794379426081831576082929137909597928714217328997951058278290540137456809650420296971480693230353473515049229425822093165838647053753225910885081192653977481143718534728297398414711382277934210271001080214681931565928002341937477504121008799810535275245418846862258361412873600419117718276329746646829298866466609490871177193264839359944709781161844684450487232504245767751637288972619599177310389302841358944535334516375861789966346003225902673806170829953526690725332395593886798158652975996973921011447206654051811082896314468842869297780188762021339546224817162813576817836175758969902649989720330803727953873308278422599483223843664816699321997093069759431669369080985278389948681121540395043626562779013116513863893685341935122344889377163129116014936598427256897477335083848300461569190502820053376394658143998420579597185791218137265916612152244962521996365463695009076416773969364967878145538648802401598456465818768385947487980906790890566167440845369352118545474135418165893561133354978807803470666952395866474943122681109911369630333814879303263032441843513471939381473806423597165815809271552899794254869407617449205133179006769113134650359031767403695457318019552832519517936146518469681239437444477644479677277038474464135565832673925973249258423199315494546313848201171535808704058130197199977121130578349106566981184857322135269392917077170887055174629081682027475239020818139728806924273285298711011184443760554708030120661627567547292853684724078042991778029406817506624093683545131439168993201729533701261079847435799924698757476016655966073970655772039709185496777752729591583133604023268376766723257859183541700582295843012349297835943837494995332458749716317044708650636300652861747894984387521982536166647784972118753485335542878585953758644436330869843851292631332217892844143210300139104958117025754565322769960824511168007094072353760528624950342887920080865448844490245199630911578562791051856758376576241125382917595606653190970286634853272459279899146890358645495635024644887612722741416415210668045857818098063779971423086789218448148710387940398837108440760197060437105138411710513714230103365887079182270498668727834806353277112424354633745962656674953862774653345174309137821339564694232424985034323275644067809977235614902121269286572323399915785395177723254162374000550395812176673801756022313411893542670963815587176509125893176843579580374607589961379383314739095173132813030645993212033759913403139496428996991826868090614679015406831290078987285609134692144147260707182920320664354358095350970023653678932877120362601111536594969856762322952017532040147066293955798764202349460848743297855768802500693320409685613339684954115216809383973038327869688987422909509014785306655165321653491519153861771296374001764851137521307482078390563352645636469775510422099684361267804109553910147134780955899484041005329096920051227126084357492210035046344534002404420996044933971543008894264430922979410480596640290884362199788785510972481882252039386653929469940246651914075736453353692286592906475841855478187961335461525910340698228417346663433911027322723872415138491715219974179977629134510048949376179499179997753932032512350767302872545984100556007627116357485121605086911090188320061038225727151295639859980150365226579343642096075447138428252630348735107556318857074280745334203397317016240632501311522773235466076294874442542574216573854630928121469238685948426872155116985178143329442802961182825407431914108158136280731842527392269740189980102884521081235436035994838804508468315425878667482091935242497950432461282774456877196089094412719711633572608046910553790178344472470354327036443823997951387894042689225494971126210055908097158591794409470568473129380914153709453764415498892295881770256032416606642719034901697620078369543285952941751653841822834046615557340945352779338566633932112043542992745495549336646735839831481502761294826818045426906438316663947961097375258742080844497187535615484006132419519890798520021750535614749021940169047445808035208615807467724116864894335664915102662494013554992533968716301735875040133739435342705215198867449970529544003486275087131279060269080750480675974790567000285141514370174606905428049136144628678704222609046792991194960325555346605449312803263097444462817423261709293760416380211312252137881365809146376719222876870488656299568816669044406032555304146898590724579714072019967781635240404050318716626181380546844418997275076254032933655683229343857860633084200479318727992357873520869931734176062714366923090833940974095572249104714499874700707816837354877016790115671119438399302025486997594391066484906236920139065985850262635224829282063670070109585997131266621213728588306174973806156645219843724043117062012577787569052373567882246098949946142715113001309031317089919932537302130601927980721835399823333501658799558074601701626493357774360782832727996952467932393553674857896132481559856790352516998593886729554390301110965333225583532204711311437174013712631601000989681086945935022396568447579836060652937092727490592905743642188407527109732367169911151445298505833446765113091911192365768480805731152752182071939819891647078837323290933683144553907749347778736095854366912953103663850535544523245735900987591351361513020708039829152172493139215017318489089295026768177215915959378481439206099326996327849742066846709625202545454426225145047526445126324826513845885436340504284373544398842228753391133061349345828915502134571481611049791480524438907815091761245683678721038036769300410468742005917618293921567721555028698368381535433389652246614920990319142146732504640622818479582291661737327327016150483243191373408134851930548619502118543364681922837993011250160878224038523919059644297695950235432164305411694160153997061154949202231841921439401607890519554902268103520778290071396622158475271854941767377350930618417056917068370363581041066834299970874460735653672378934889388740658671250056137804167542577603740639739059536592192884443523990657636741636716652026683432956001688286098492843801128267368785231325080474605853731866660908627209009200476440244147787314128222369678824183532053772337243490508665220946772211680342140845190354870452331976183623538351822363363269241705014779986490199629278500290125578033982233873083232954682885421814927300914463365632926765429797995501721506072186208873289662908173068720177463538927191280770925082239156515175013426700219011269920643907230427688588302970382509188725835149515931962883274012517569332536302177952995281297444451726245071380783454631087536757147138469396640201956501206522002481192499133281365815772459890883848366791709538181312605021791321606292618748858822485776207947034490013187974896816879868964631033153035980468088866531244985994659369373182507634719707310320820973365700682964085884906255426693196180577982654252695504239598202939479122592335064582300917398132290546814542654315431102255561418098096567075980058151757460010361865913843336906287982397737835440872925495702693615329986034752158446749878239242456055399434636900338141345057673914535701158312598188157801839177512651373631445590188694734821382049957727430496641520537580869709737220426037154179974644355234594699865957015214007001345783135663439042331083072083563907909777668072523728360014145782588349728476780008349270858224907182044288990426902713150903095713316574726527806570221241118156304881009881281717907335180069458407176429971124875326606263481202708092540822276745773813123112105233665404616772497293176518069380534666135308356006462129270493049224365380694540807998289759009725959506831632665543420783293311782556142865603387277476737351517593254742232573020717445566299021152855385266223188912369964704632003463967969353652555645459573667692534428334942200582967334871589641074948090638656642428382486240652009401589604745390450345710274626426598078825274438913945407940435688448224857737818444936965564716472900468000675147270995381913458767656961388182363455538605568812444906330259346287659938166400474058667965205928367263158580330746338023968112959266312604694000396341333753007509243547671688560807259606128692351403936272648233094396691141420713723931580617818989256196736844629918232966087038475675662145535287210607987517167663182518239860124710667693832292096067819581854399441885053466572557281460602509026447157662303889865399982445248355686615297236213268860714443324805079531281362866214722177521257960387235429356375625384122873228431629311401961196016721299072182618486706765100244725553255602555338779165177207139789076978797530586324074466110384220935622955040214443035544152156351432647351530603765316831083383544022132426379800717074146705849769036667023647235907904820280315988019775999381778148729559894009882962947517850722232328607984235838121996040673163113910712809646391234959534896053565484157092890598708157370875091873510218480078874108273113649800259144321000486296114727022531440163893517871319406726207123120669028553645001276735521603162849679229299767345375511943533784928591742544698005047131749327565987815568299347551059622895947582008993816085464349183843315606727193993304833049408884704500717474905137985975239105164960119886719536763340044012065163066797578198217948948628576671656441574466677561163372547163189558953419663257282867467537335665132535230771927470533929100293281740873926921682564241495608036299012364063126175992466875856957285662961024106175338806029957251585347344220212910503280454994717058651918096174890374643395546458796403119010753773243566119207098971250047800574879907517964400048485117233329611043595362596005998273142726782444238134594363799087421381082078816981237145293101342232033778244778558027792542873317529863113277259550053086681328587442618810193751903963077639854180682734690084582277144331714952193244946695782007270685442271847516141165376210940910135264325262871045685663117884064263587111319414900401383978437910707864497710696694279459781598032956662576090005502641613166239312119812455821313155406844645727869619643460007138848586776763490398533489191521401990130819517093544160834569374649307365653312074005450192835688953923928124646411068360832391910195687452409481749262734741091179914587644569978006792557076563357305886620305744141064796082741206481522068264174276292459294856841058635465051504098806980876763238511736163953681167524715632978080078693587132020199670031929522655376099301251752302747667517664887729554729858448309960265826736069486988785901739594496941879144952472587731927312775105966170119102311443414924471257316374574432790658745280898665746145581124357579146371348672395085221354216768767464161088398836185924859316120518778085740663227585490995472989023085970334555110177027338970826952635367680900902181095508500104545401463391660864152920236893563897388029817719908199987042956066896777875599171030455242600594939154921935099196217089126717150394900497099353089504489973348577151254806991365186686002865397627412202507376140423653651003710003684606236910028235361259088458232322451694073308328934871909562529304542637748444558006800304532852686086790580614843039668107970239442951852836070927029933701816921230948435505170899648215508647125296558981762598524369179114418017984776477710525087573203553141436000793243455124965196575670801070102548516292269671202084119277805359268447014390289644255939416291644518590409200282061042607234011504972074257355115044041932776110307478127380909848943962691620377084537405756754708223073890586970649027430953525671476994504666347971245708597282212791373686359998195469340622219689372263644718438364822209102939285971232938222424721864713374894664918416634791887268209760679374572327247931239740465520014888132391415760725744397637438562717395290366356198814855470116219003269735020832636553186448260403607910444620461710803384523234456833535838018415070368793545375521433533818126097834756232808374874167189030212464874225530077619591489871349648702623715098044065844689237181132990644697068470609151425905184198879110014251787388909378456566349874779346531819128253809361120948030604212888146676028863346962078578782448740093384590451011098806812960124239410200652880172063628155086025035152591035542795033742931455740146735747275728727114643233712585997731171854840135248713565134272752393529529501525915400244492378829878792799948190979849978228006425849285023633709444908192366997752930775563328713077848647662145830497374412595709672810442552922868939119170135170895669934835164429791876691130427297551215359070905908065160480195009965759512100713367464114415143492754684777064698450329312203906542758210581817091324475108993915979549137212798784717082782897286322250173041010621369295403688231481987564922820458682461631353051238113325875019876088014848746989392043578735812289307112754533813958985474050132293151718742792709173365071538023605898276892124887129622055225025421892096374047739151906069656897346912928847190139430777837184272538306995314788594982508291399156657250189425650738987250570404012614036149566548033990816967123937937535429441463424517498594704925523180262230852410463664743740664741836846577499545228587750530434506174785465680250744583619114466241156607798140392965419050793787159375675914092540282191032125223490854692841533958705078921636692612688930562993295258653191474256341848462743934467359634018591972806805569978989029730397420589036355334241964107169619413316946126663201329221302283354762759970268002880172770991898759853948002015346575405530698812765136232416620296051898217593765795853698073633764842756146298106340474183979411008659796310682315668326955368569294732569095534170481904959233106735484607445736819659860831918866155622384587813070767071939327453306905901881501861152093670294426362788566106082150104906206312692701424840970001979774185832574920003753537398720496966999827082525401652312722918437307557934045170253140811967383872105466442720391140647636290512769060982078063389865316434096909673172331093157323647423464126687428350964635344620471473056385252704362454667983786404208494774801300346187319704797669798341394160300351163985090790570487510770240294849071844221432938942390985111783458153555030000182166232515332967851547857664659831614727549914253410842886623538291657506912205861989233705409747596922157787939187664098789423232222292179331324533464008058200142481421224648934400416664796731881377160708994785923408877775809592523526102807043483883620364195527805459985618719934174232693737907767595400040593294019901360771179569103443990420432293019935712218740918295043718644228691364589434127722874570424935433667024988671853810248047636710965707524931140808610336178494880992665320593735935507381932598568314471859551742843296810234856139836143754574360437983767643297454909457688681440074771829131427604591528840477364307804487591599994126684030199974169479773689610268078885863871934731345451710329221377544978380647705803676236181611213876744526579194869121046737573165727812957005789314327083409206526258390389607898042114652683320130816414285208803242859926082212343044926657140634839971898057122450569273291106667691917464462545462068780016552883161952745243215262108915457110988237428449637592186381451438772031584347424565463715583434135137249525440531383541244559073493644047015348557195472577868731636765813955525031859790971316873742430690602876724180880222823265727972584476993387904967531196185957121428512000941541606985097943679226528863607669254645221384760760371619294535045709257647594600016786681350854150085876843381241763757671784947896049304857006527758077514567278416326251078702601095034341391911167864935720353781725412094601871761240204028584304885691178522639276674658944158425464846194222476360472134643268980886861455844097442769028254244330070106598029842046840639931103383553128784970920124977163916429561202357653952844317689110776866032582323684040833234416060125448666457966659666806470680320037807314543210709349034561517801936247803297808051133352013659268216100236208842214890029507985537448758016954307609333320265374322939313328250742608801386972996765106093964861191022750156198415929889024362905426883539886828074341385495899408759564319797608676275308724256847893267269687994361533288570623809844517146108840102893260973346893919495925975449021598919604100974441883479753189362873758355938482643836004840034716538174712230894328789075012599415209025404825219204273561323406525796592690247146828083754690601456480373732623833806983365802255529454691116944403785391790484128916126439486210804154675842023077747259531656781059997839111148438197234513729902164393713214725766530912594276561287165677424150132942092797063314235606807639956739970220160760112503296373261918064978829078048334662776919335500512269666491881682650120199036267238921232987085727898163741993223176897474123058112406062548455388779260150623317501741273763964789576907531129734510507897150557641569530529762559683884675227159857939111927244331882581691233861589334074457585688054637856097965258296699467341030473068715783995116933859778552479921810146783127845138142908027100809532318265568394194782554793093698149617098840076384562417624909997858562913077981236150425732676686088221651477779432872976565783241219495369935375625537556137292848537020656380060598027622260796238193981002263578028763902443603846301282663665572661643396098012007456500911947813492048608457106875975409513849282295935505637786691755299716096697843472389453687553825671738843407915373063725960071557279385150677717043981602523610596014058861504047653808042774772206475446774005558354188792937989008396010888529664482700077884265956144497252881992289326355715079606899149619334726274821622983937926729811921866622444865593784248142961130076299351331425656340435465517589677058458400677170073084244587021218605727459450650798232768968540314768007586886154402957349642877860579459429499411417522955201070300880639092021114507292661187662002110703823453989504454677384153026650887843735380273247230793738997051241922800005068905402243036970184587240754594354978179428061440673742534385763861256672193358125989635943220273338750901111730177756948500331068342668879694058214211278854286737850605053287879264692053331328641980754368724239730308275814688780108867162777481421324106478648303000923549443015451733396660151566869074621527548398795376209890409776708366613464589436995542543774200467737947413004334637885403023393231879752540529079214217710481862367422126853946632494927617498259935555661277377157213543632208554349264200797620246149402683419236035268429131752637222568994767580770116772690375285270672735154824155887540713575905577297499632991375097886809555384628694961269193044863652602029591695289873376429215905732015870934356026183062597548079125791887485128436273597093843336459692857149495987518684321029590859303821574707690052327739157807379950649985326715906848080546289072718072298911455093930256114795442388586402718829094894803369511071984123355239492660214296158412629596864316319267124795468721576677873900232127329255799315275820516641257837058277406889576809957979331249461794311184863665036451424618479970774926613756628386751294206668468716296921537864391287853264226642982777577013633148274856004482173957397038591353012103471030562164155443153129906668457439218826550838413447054720890170463136351437974675049099734421706020504050536541537538753770876475882112616361885265021599077834709618963180547657165223381186840155543475439523851294176976804194909557757162501740610596315095791763350949654813181781864775606970252855612288839456275117087648220069522138311404363181841604252806845206547724601225395696708247393192845246446301835466258540121085742950006250937862083328942707664057384869445179120634900485684421821429066358459490652220437524207004936410109015957553877015830858670547701467755461658579684635923970235847696410538291974477048672014412385839419590583803436131051727553001063113422886453010196592737322517720014921362543704525226903124039732466411089526184913727805877895533408335055933510432290469265771682519057297640951016304973144729603745956912066261191465519196926817615659336032317923258028510816810994278575801523635673928692935315848267870307893839462977510782946358408869851797063134380390376577991609907841785184014741079856806881052070381490253601176963777723996903980949844319311244989378278571532963874158385191684753813178071374871806554630154670024302217610731722007165892229223340227843016665219596056409665787634914654017505276933544709369719680492683472400664397423357160299674183262298271461005776953919945506458910228286997417575907470644360704921524052345788977573259507456510834064610628053031006699587426101616603130401465106679118740854367701384736371104353495375531900647898647745871722247982664340244353661473758801651346172681539951616239562415224615879848506533727446407742312882199800483479105135188182662760108224953349317994981023931141918623235741971204655662625722002083670039537588097073541964132700170622929304444122007750123079549280042561137336123992969315414276915326580993175697847796235731239568913405801703398196120076218946901340764300878655422828720488013697792704325618075815705161060080637963524453328118734786363839815743601989602313817508447089815663003104553477899557158156169120380275492218862932595215577278420165503055726035962647286117958088334487621498871451875877334787164527586900946055770265210272398685259789939195598323799784722757172966487981964821688101493473609705442551155757055734270347886636855859190883689287925426593682297081341504162203296702905558683951123623846422315017811188761336991547789750292156139851740071759301756541666479852871328205017172170733690779224932999813378324904335407789026019972202103399081218267245044041536865353967495354702147368444163281555113084238651874865693410040612582637443025686051425520496631891921826383952605702235952227036548194366484248395702260405135313852036353113090661749673653091924458669225946892718904874803154456429318844962880447449177965505789260636280041294860078210036277766140890548034301964492587976476703882726608478960779783593385890627414623522816964657101357088659150502670269019246854767972586529082713336028292783014342124784253381543065721002978562653842576954290575064158258354110708417712330311034093839309050970664743596405713674421335932877377879096578072001430512917807653359780730038976473098442608076745021855299578314284973893553889698273389777659717874629360294712980111877785170923594900257482253147565979687564025404881185325409495741733606144101154322925448165301445507080843850120594449046132751713349518014343530123326306504193955751788550362676013500168402813596472032753557536183923793353717557908248726840333948265815326258502287828566486945093480166667380998594538970739085364684368572873811418698927919870094736352812979402999837806649257656466112540672982095822848217805173083667312843423272788769777725058634164402525433817713174238785495589855909052677531407447751752095219008837524776029414506915956396929136266051695425133307577825408937209369226504512284233127295385209650799035235632942391514271040129696650934383851709615052425645951437058530482217639847591954406735975647093772200349896545542672936582389607557752087175273660659077058978036002895703344093665771024633807040038871058154290814082540661743460359273606119705770065602480165283621949376960398007879019330526313413477032852911980219399076687679978600321053314944027553346494058238142769197609512120013689892844110047071859534424670095334961202143029599568537893632706438375744578804493507148746015225111972889647579707859490725566604734006466443486330882207864931016143433913902287900737889260888637754038249590125922433136760699705516515598997103557737537013803683821184029281739601890710196370502930971333266461384032920782530627890792286331528545094279945459153821852545402000964578063538430917200185176268718494103638753830709051707678302357729110039587099873097952446122059222150288456091871566439689068827269630788230224338006754311568366485684815275987200430713472593391727480353910210387541341584618332948266814787136188595024169896042895332654855761222684269757192282622788280039641311012236201052425431144829284740348874887074853202534714648296992982170916070981242913530992077696856364034508411529949902832982881090818182654318371151476017123694105015562213213659609249753211826500205785143224523264082498631587171819848680741574804619657794350409801742074282089205501849735713219580003282926007412825109608142264564919776503121269409491527230388084306054413866486698898052622215458627396940909788250739008531447842736448098246260420263866840175212795206186071070544787286053934082192083197878937646574720075238695898095642521809100627496596739004849905733681847429306826057263029467446251374417275615083046194600034883593457518208962744656059908387677987223697653800152521332313978118889775086050368091607537113720198159505539715729468941379381735085265659349974394509324828144249842557607261870938230430506472140475197583972213522864800464216231525213295732614663883695875598573403115888218302274087663791764227221327137216722713692372303234605145101491606048484973993416611449611544715201519599321774410253972467986129279575216308647132072695485923244823907524523313242678515177762357444811065535606742149945174105986451178703127803916848378051881899173549684182707299502372951297744265401134677500522492257946804220042107569475412431199118361558239968951772982500057433629278952769161882507490153443894074230105192573929153175911490556735218891209756507748698499013139200801291504665697501029580846347503716029307851161856359890507719633211890978322600599092448387717940738362460986833778577845528079384407924440422789469176874864188703217719504859086051333010965496530591249275916589828750818902467654677812509341360237519853763503767880489035257982832751984897271317163481305689480721109639663858840356471084655431775710724737128331330437839763784774680071145468628610901120600813609802213678628879114536564489842976256271466908129080602211311101135465692227515637147112824083588045237561590909846357366507636896246222360411660670390933826400336332739608472308716348116472370648658888124527958762746596008675273100358999645982412769224001347040941643674986417723761614771292744818640780705634917186104392478925832593159391762782632176208404946645263788086256196576401272039672638321594183230940137136947736237337671411610242056227422807827289904579650178968887872756549701402019396815981632939997232635436890798310168503770094858085275219386722561140178482078880336585192869090811907926061816780760201442125351500310769884391491850928873109193563099524102545390947780477442638113331501503632334640814727783665146079222643502678181430981307338417391674968852737322878447642431372647054575158711277084324489687018389488457685939966696152495665876350685486705306102458835431156154966716353740176481906582392307461389549032734268893405585568995810579093612150440748768777289016420222590060602333312930586242560705654513258659745975932606848099643956219324098645069094594307250851425840581334451867636604264417760744873258415936390739821598683760745953148323925087912090287318194286111621773156741866593503694029621975138514591327482582375265118436578892224707763501208050070254296910131594797410141676493291672449093663227376200897433845928371494011579008758346279905796880003328617015659002690578230095687108918238585162168939284484955987587886563876885719455842983787417151954278961188109021832911736276555550744665035210667325957142852455897124534696419840679592216066305041202794457555123915514969769113202722634210307031047666737731947417064326782137643165784955386837609721739912231800253625227286545658738969148614797333746954582785380315446458364311464697495174969492122949982385104456280349584102098471405917321289455273289644072649641423941794448580187274752294787266522694257674726192427222169139847730788482770474975098553684101351085481004110516329673175048913592286498390304002244951253811379400881220138374915872232425744496833744796325419052657312659148627629221111668635691049687083157746755200446852844822811587141178878061215268771917173926986592025985244285238365448335416986757802273750796955246979398418850794306985489904425880123881232179447682560934342163470373917611826360064226035506017423625671623797474290216255589781736478123325900331204198649904766032219257187354254007639639416643255458791982801304175142002193058017609133587427431862025231609849936932712327962284370935762268976283647861198403323660324664974190397613432641339373331987299147209176578922367676507893488507074430736455984256825884664442946512189886333986073451569571633155111833702722834545534857428900703127676434513321174124112035168245858256488104203332505925161039658319326535011990204326001277848551388533965771488075011822333806930156721315105550649714058319911470607868894724486612100712818047922420722808976143274035100140636413011484369027409137273407613956153187970508524982897027132944716125470706231331555767193651197403632394982405684799261875110060112059751058608492497738197234619944110723233600099902497002561258440869267974850623362720159789360158895643318135773933800122718134984027154229903909282458305939973904552737562252514520156258297148924713861225637019178753759412152271268658696898710702388470438968593986897072585965396410098170583859594501683681535110153563855968330050163213437647757580690183948109814726933727178345219190369178694082514436388487703796568250141704408286062935309059752571606744906286253917081774907809765991374156668374060417555807699401615524843758751780986365497446491204127918136776954586967842464362143721964375601092323498729706670769542821491034727135377211510022266200074046499759327598799268847950523671040569842311623547233360117451215285976887397645907891475892640925052527063473366926726664386869407349891279891472756782447601765160930499293564999795132434357823983476162518946860613308864596652201563297061651919271457431360349922528177711782709203206630382617946546668813063763837222231059132470948852095720631154030315203367324180246064772735702916197521266076276501678481114637405963741578706279127340237822498132412313205831009926303977113767947864486428769427672342547409720407756626544817241404074812851677094249798429724723242043708086729820274000405517358285439303635610947288643635956307347199457389876069234824367682236000690442342695855830236079330188624541702610241550898820259917314792045005658307441497825007990404168060765649869544629292381736212440053767440435093969506644494030307426029751293198903921823861305968038309874726438826077077543451475976968171106557834800344784614893428515635533996647587361572441744241506898742842398900377220091501669494333970154056799128595287094573554386467966722460521392496802090068231706734486112510390842645972984093715891524282530776219710597114828524035530838841704445052500780265573910652486851374354420307824928372433944831173253334524114149193173078348969747057569125488739833465563415536085312769800160371672529514120508092951211984411238481936940472815778235159579119197532010030170380344881406876282442340229357339253486684099562975015892006333950028727474386154686425361081709975736938581788163228041369190397715690356913215730661958551004378544978198373026202336761470175213943279095936873379793740026677415578013861120986111800827693014217877801967709833632374326829869328033696109995682098058031347557028799218439103142731508316686338689065764281277239023813243246906945148189550472254058028698233628669435250884999686394324293519591656790090036000499716007985384531134430108228674314600087645777469745773258592634998850900621044043020211555973366849896319701358037707384455554673571755280531338089673019530736070324972476881284377563735153023613768874689860189057441097520613195731831950811018963437809955734484089325348622567203329249156205345945049396190693317861168058050581900998144599880548921567582026730429484660695135078145279371210367608226874265518996100193931468490507970532579511481681050218875794767121060647410093128671457771574324412263523211033082036174854343517199563817936174845817413899078253246575737911960099208770225455183909125215990217466438738882754792847585589293724581426221569971960632088187046574352095981581291736079348237394214161147430264309924178029756614635062352569822908381610032450593625415745903795103043806949697649385398557552291132721904003863873672933678896288080835872030755902062927152397264858532651620748775641941972085186466475516371536474453825384389714207129753704973209464209929419540565016837749669733413082696540173755895449427121466822007204012804880682883243980358044410745423254580474316340723874056016782134773340182576617981755859742029664510765667030506319710096292712542355672211198072195309953872459406553339541570923126745224093989098319513306306971289138623455535868748774019843864239905617670770700582720030251524397227297302293447871526562109667920079178564182113604358981601271131614565161796703126090391263656740213405079533698415851038508311389216201967050605972262158344906819680028810874209187990112983457003544030855716030714938461147514193890804150728332642820655257257082703240808529172140843994268454587119928304052363560230434771310327162291578170553861023841525593515358082081230043488431284535032216926444170247295002195163940527126780846221642650430445876865716696407928850378199674549420556136411303505805068331396240678666828789274243215924745704469276411112380212198416605665015061533126785193190531504025870655390558744844750474630430772905128569141429241383737032354955969384037849587156233582956992051948383887909553592663268484315465577479534410755754749802371067151569209668347061270576440382204681501848456636522950891414353284565515483603434100609231100077053079653211012386405829641572144289129332603241590562960316919950892835312596207476724763495898949398873840138990500183687633210381983523942766597487709187356009761692945760540738575532241786788391691098324815714448194959850305321524008749871322062465720696851523375081127318764107319972845154431629067531204635167746264410518145818173151637430368833347727920265425628946770007907124547095711241416938015082311658353082341515820424616110227731419770908130515495253862772579478868884685883076384289877281338395754400042005924124544018278445642304660882199807814683911169061903964347578526056321218178017787295944637825317728822627253245830772579177198241673721586003692663264569996870829401610204149526708257811444435049357708366845594432340737856238826583425874499199332073127898132170972572116751084621915439173991218787740891872090417117239362655066131414576356355762215376956462632565421969278810860655437284575825662931432736549621580633682066254824377652841970580233040382583949087030597209736366799234431261019131136311983587763142425576953511519629594736082271004790360207157505299069859733849647582509016253526390185545536775710630844766550943092330647009110717246904926940966573284771977129877160254661767548819964706000487415354322477166804998703577590076987051257787837366217237143874527872110128231362766193382023515624942307002326668905398629548301646268697570924249802457819624947150955008120157107924723941804956307420400744469842211703206040004223661789849507562397604173901681338905194378714356460441176646751250197109763708192001412218609084538051099418275402567779732543200258277702690196695397150025240815307246981138588434941064532046379787997410521827011098812698483002016920701912422829334531525480811934355432374927740455671945411440820979507650272409684834029950792816878046517215280803166445136739988748397521367487261597146200817377979048504984353803483371045667574208434408858396207748098827717925499699473695490278722236179703978208400812215484566020171570458139062460943816569229374321880114460244581625238929345224204927995457086834196390653329675629837900880700545114175157086888460938757505453740505034177729623395603522416553126817354263243585908034639915441621449972502135033503350010366397564812652311513310149397552258392063127651818173150408266590264521161087566714526438133644147350008525128262878605195356442760891290140421136072156270379695450415539953197656805228406631315740516297676635371570549121169210843565509741540799821400673701737738729459569980346033030132408494297829299838380412133012392148350995756277601132198703142008209183069135550753588098118790317742964661844487297965701922288404146196443075017299705666319268161986068372358322199975662170596711357235023538361458510269595547303193297126164889543560570466292729399246943694885576992189905774967659466867394400510692826646489226533985242968867977971820655790200956178193870638403228382360980749080353110877808821674283025659899712585609437145089580066639533775769628582857673461683807618002073905782493304401792077977361867766412485869503299525748028139234856027911850771150211760804397818034218621974472083658779784989479826307321649325657012180309356679311782278243013647387353702683288554942237739876090454507096305291008960806439978253120287388329368605877827776836100631680744072336488163254538842862815178163808963621569081996496900344460508647384470269469707902984937058572324525467569831685310724394768024013618702100001771171004148874323286365293887253509993071119754456902664325544350039149936640802559436138286101307100884019065817829474521946115316568097800202054961571319421728553592468887212784720082880211174349013675843728274664545462041797546002698130930498912119539110340972626731993500240586390990705916919490461134707846944268622128030184175375637890201869712276226992238437157227094521895114913323774727706035025627260656763180763687163298491685616503616508998894805613959117934076999179563861261453697600512466250077081117220476599693665498683862811583768249823166529867884173400664118701783373095674382006625385458754792991110899240288549576968109831723785647351421297480670063101717381664570994763511071993901051347362413199340784109516794122943514359276700029210888311637357692543048736539877177229313143815591277016410992028489535555644595093434902021433497180467262533054447933758861459656377236185029479350684119091928193829297451909209023248638514478252865931906765405954470406469838228915809815987533665500656343393923377270389342252116427284060573467931610918124868238767006434328249060176204656494468581748800245149077189567715221341692215029609450458387575015217982448187512956602037604141559919028283688298612701824789969233721260257849160132128586390449957308527882273142276296844721528262059711417377709928257982716707511735699559389678008495553898438627494935035965767378931693214764476307256515878953390383722622576840731487007176994207893722225531083580086261014886359139389393450393816660636789396128394035564921568796415841694741032737001525140929446468250872086801695041628405928508481686030466724023078504336443865827809030960424366195302111145841553740080210992602009433251990074990730339195614056710280233049467529237484504472791128040237842129541929284466026070580700797963691898905728336207821850834130056355557745516143803665946923331025888300942677180582010516449978053963323565895339800787658692716138420572791585100930134081148883714549852011659874457026377070645070550237167110322993278664776392153303032060838916201952054273929017898960514693422396302648351497573838575086376135880461010481967113280630388485757491531645727194138788293407832719526358618184436503747956059013246971334096301051552993875474467657679842740737637666247584666113558086736135133157569600376865459820839601777395690461240126285900130371230777675015950336389854297222037821047819135777472498490281007780891361231643785666692147537496651847570992157005498572971571518857032097308197095134408046789363682994936702789733953267274838813169130030406968689667404557665727466575680381709764384709327266017772971929407194447078901956533812908549220536187071900308466899515618437972167497254262969786625310833194461111214879043412776776616396153405569031033309421533605830903969782302880765550291766682090487895194383910414847026350743893880338753643947027940715663057773555980182690999441078765659672798137837159951793272956320097165302583017626409935246997958752808360201923100794459679933586749939033518284298782369348042090748332356985625946571362377742339643646725766806378638756684261871512547430062913706656643904661418831960493363835510399540260516804622675819715755040276118275554895581662905851709778072867849183836005519451138937561936831160079843555256059181879060516175781118605502820142783438243432588837230000702546198058765133919157614296465722624635142446345841287059018649695876329872527873632881040156368740109154600449671646470836379324335734820565463982327480656809779714812160426050145613120073778528279655826204898296606658697058730419173680671005358780440606652348638640855100804146974537050744467002120251600430478316457887598138180451993883813404387361921886678956354259498384588542287830766559983953081717458185064107941065042656846214393420347837986210885388111283746526597740536336830372933007108402375348723346509211064111498886375277714983218899676888107186336245180778569707350595996536143464236703278696512503511266176523015695811809911692693746541683140914643959368667179126102623143549868651552997046073083853228019625386937773880786484307103920622502493215955264846429209739505701635660036361839295606712029250513103461541519871729593836849308281979856979497349505140642032328457341465460592509331668761052637240536525785343942360748077751344768034399629342707139827114613961591751724992908377729556617938963508764236376009925837776851637174312355278060753830903160938322763922577666756128261448279622400306841815903217115310645541174765811835243706643702593585129361774492855006768609177229542159085928079430031216940603808031163046317734210599539277155966896123708807518633679099857674150624211104156053683106491914556602773866564285359324130795835264659288535051318470751356066222142555152979396708378239856516948311256491454809927057033288687244992984187037600521295600822594916611581878377564167974052348941930523152834092828931981478392378349387444819969088100666431570897877959219093057442061396916765083987730870369015010577531512467067646100464871491792842815234900780046151784838243516005246752832612316950162241358423524512588252445583185303654385781349244218948312537502088661757497354247801775438102289870919537284447992169406979103008067401515982993087226736544543843743514767344410811595232933692815124853870091239089120235603969384384037003393126437980747043984490642566080196172644193026037044365249819358789515339967852319825680631774203611847832720031507283631945308789528718669037386615019356499000785999370161935642965677962636991219146511617474266117774361556919169895019596305664505373469897961131070098058432091060129377822279168202379011120414721676531477782295341325839810697850980976433272485955928865541157415615534895637597443212806613009079235482545182266117570361652747378273886328345362453483605352696225341227328173008737976334356871455591924544996426418994463923511471265349342152097501874945634571868983691836127378179210194714755190143025853953464565271188976451255424633055149782895021390983527463117371210551187628609231152253598184699903313161242131158534569557843202258916373286331783728312000743443048410637449992252808355919225555780481277273448624753962910129150771247197236311577816013793301252491440802020894425826843192431854193343059363736667157782018265710601841416106927381827707986765077710851880868918510168880727607939430733639959574938591290654390471546787014762731167428221532534112004582795994611654509362296754913906732294009324755142518049600059156561088164020533621807248972483914082323500551600219103933899672951206400688533735686352052334934775140451687921777234685738443112086736503893977231347039136339711690523269958791497750338751577934140104922670770149700965104494260793955525653347290905667327205643305710893685661718508112982747774381838087158997275846144001873395239177276739800281014429849942331081999908674988376832008151497532875488330722006106987852236867171037317896960538280305398211767126859065264680637666214839565747878078382388846558373361859806747158797307560776135821196282081524357974434612364403764397445491341362739893412783169346469949998629921432702165205909281413420085556475317615521046382527649262521789571067644484053183775401230979445943550778178163641194496388484381905468922873615136923229962189314608898602758579523603736506862194475395190409858847598360230893507321728136387673018360822696050697873235025032938989589740828337332126471651903534913784984937330950019009332895989869663637457144320875244802306063866208963970388729389854619116632876945355593681555804265475440656710648204622598352631742832561768022047358080642719465840365329801941673134968952835258517251097071283758224252483136528712936246389868874389969683187710667233933779316305873843344425442720696591880660068724513541777703513949765479549192779757060695641921381001891422088384711414330645229539228214807328577499600368414269162363276693423942221666734633042246148853752957798318042233254661841046278523475031933868177494312347313359946839417012454514040386722361787682515085093552662817182372858742729355090196971485925207447541429121469267939104568997035531804450574791756922748387092835707701127759975520719489421790598720403412017817471967868607361167456309328268143366966329905863404226651781974859522458023034864805334415782969835511043063458078230676176420452414402439210992075620610629127444379130515043047132885183988504148569930662366534244933667866651067824938115253392790349011089229504550864844920201832198986650187162715058901003147859834220866049409030038083852859808630931853741946139246220289750071321200956454533887065608089537211689655544288009776758418346028524859226651735106110904932563923925774129946416972376468069314345597041848153145007797071007669578140621130273031065007871562294765384771257666549923649264249609486619671218716958175122202238418989538321766218753029589520895963328766560560960726031113420920183739191867560246322232090948480869506318596899973544753048623752033307471410680451100161232632182023333550073675169248424379387213406890660922712653499674480866659110769494577638225366742473722395124866100522038630601837540060069976031007498235791030916564594528947895114483084431955151711798909307779384241850349611600002117058730198280002017571873141009658049338631856908733124595952034952280360483698970356975100596163716497948155593508692347999604866649530775268351278168968647756512759390512309528626062545763152597234353019453332340722606317274997795648846998451297229476142678550758019214385367439375209337015329883032784181702487225067038170822976677830300529100491067021842227523383676484581596421950479978939304180381665956635757806019461974651351351969776510811648149002825911771798354760924407598200869790943403719075364659391740642848896021338662813656668724084004330313974940477397647706994325925128266485206412592715955380899231369683646563958349583996939918893820323910821660828881206941333849879441626615605670218710496703978279602767515186677387444221109555592400031235073310884229038595114692129478306898777519516501777051845939675481238724140896884236089617374087162386227093504358379559813710106495058177476868129332299930985170606537517239333164945818875384004873210139640377918425449204176558554708221168967058874248229055098566166575939421329901021068172205107989564263599486898963232391718601286735079785051110288701598887732678089356533533683077239481064308231751051819120820886779363607095266157340158575721973318208401921729071533516752920728527356934652685500065997623283029322784496394407775015232691898990536922132952365769161411863285212102154161119550079416828999911196844584349846849212582251189897563570865510868720267763848860757185678930077563202115749436663592898869741197775267063024926772233816407747304560942099264765951463368318091118008848004295961334419178613054974209990401015030294455094238030409952935538373215970311740620206389023956960559937444677175965201686158160390159424744788243066519335823959916931888626197999245620491571322193250784525523092853050840996545326681777585340970473872816228387708637068010113207920316991690417962691082025031439628040814428893783395622005477724269901931504335211642340676611110608063543494165910683594400864451420308262757111694043955786023365082535531785566015678153582165239787777255871414329588041950673226242532125823771970620557905066886013305828299272747320359216012117355662443258210734913560482188303944020893437309650914674335516455050380151023457553841446840986929332762087743454117532175622481802199549857596026907925364302225714573805253219013456057494221665483547395351595035496771644768130964414269152540685705779007699126946308005574223510455461510672291725309943381430315443632421109420096160914109736155423083566856178152427571953819537484592819212633323721775082837095672350120642732897654042878218542807439863692948002507678148073524780311116616985424614812220601524476826656956587229231262660643950415010339453285611575004192926154741189179652976034688566350195741288267860750999363305814043670512345356237106213583198588050733019278320842533615121776595860566961214931445829635254989781929018477894202138499755731273801388280565608938305406242806093650442102655464466038103327200387045098617816031447714824730566530545787973487074691088570721833745242146059540662631093059206135760391812589656619435826615038637196768113428554646771990130934925863324454176662589354836376680275000827143198937117244740930795421323064373576479582037708063921335128748231820843207081145100022814381402818460974883614837445040408763780496582870575713495526080189927361341419987205675470346198182917346430239403583917904194557104945622848431431241247943799608675135914767767053921533425346893891728349045225838182956730620012567972480186172576840514397658651465314142110854154442041070107190998450004321597095167501431825203260308170524686492032986969781171726755478003916944363231854183225206941450892656204508867713464979862119563314130740166352427529349718496111453142517089045218594549316055836638798242444618284824442500850122421395569695281343182799950350209269323152741137895733209215268544368414699362812325742582577885607240346620804514536873183455900859851605645271238093864754273722099913406504186440637418328690720086019772978071716204206018275731403551729631411624059141027779041976055765284280644586268130100612176127331916570048094573960158702902783863336831368759051748316893616628442343371464544815229529912482858484474212987363269875026706265288609939278744086244889827414803909754305929585016370336722091985172575355734869656879122373540144952502691633263649937627431777659188509992826976312539857857563545740443952391236024928906144441661874399869261496285592015408533543998353771544187716387110221711930967734042132460631432855890898177529203617040356037097547810873650619817539613316981291839134596763799991567752138970585968833052271931042814510074808477797547654550177592993736436219054235181555747995522692015041568764428255899237794790543581977693806573981020488322294678680889472459077564152216723101004370215562439693938424483858445871342025032567647178422720245469393697838319405794914287258303960606549252838323483457795716841672026981856154739460033071047726577506285539912649149322268810315819589796034025617142686802788876034595998357060976937987403921108520941983953157420661498789350581937432768654753511123651038953580495414254699878697696961863521843344198524072685908286567709190343491237857385521811255208718457660198236537141920405288806122095088434502547843163116389896866028020453773638822258087613968535355126737708208288788353968793971256239172390669268865376433849097769363989861740020472728376953278987208060008240741233743748013191243700260282578148043666227348943715605486462523793693963753381631499810294445643369410954200407404643085304392983665178315603018766244593459260905054272946269868457265100043698157823664992345432143853521342843450567200603008126275932376558297743012272175299923869357489655207213035780219029958817142770986087572633500679101031803363621709820263760934750866537593880398672774272078910967392453377377832381305004608408889791409899122476951903766627353796304536930604151555934643003086838399283867696833849374581885773138393651646005474362039057399044558992915535074994624663520303169295653931569149320518294623745917479912236596818312940649046814276899493583877382584196271609002949059267060662059849589061215478992279582597287448264312057404120964639757045747233932786633417048255643224873211665110974813895653207453363534104880115266563839151688193399935400317500804044491005375326315650368497498621683621304299289512303693581575600387181032900351432813238399135245848578944606145699131500005126736977609982580613364089833144355061223632357174147985858326858821974621662801894784326511407201907319691163234205368542960250599066620062083755244345486881289010219749809859980911996359194913511365124469689740249220614537257809021032376475394405216809785015204500340972662919563143085923661800490148422494477036218272478872103142988072715007172500363773791849203128688298180222776970537034305997906069851960898354430124990551839253637699101643488232931504436967789236951812224303959892402409214133370471152269322033382018173064178454895703561340161970948855111007768691766812107402720597677985647239272164384993146955842611496946015294941212197872837707965404263828700837767941282245411845797472112295884489476101927621230905305631302215906584667109271606925364018172415145789398055732898423560219108501471442541552521167051560994297982126233982885679071833960011228220830483978339682833710483170170159670031302471012291372770871008554039559258937121105338129963105821615868903160303818302941237588210801187001678215913519412188895340796689865147126118269839473576412935136507515027964059448270020784812322219495199737228122066398410762755890405765921949584140990590210625314758743592053496520295012547680780544557493105010354973607056518118856253581481161067469860794030875235314509491797037402254226607758128609669857650470608683718318267847740670841181283009452877378078704732539176084280889771332227834247012972836752003119720744617711314693370841054456875143865624952492162606229132949231465491164225437497561942151505075431054322022227939761856764086281997590006455706300878786392886113350645333719612699292770366879509005817435525344732815067664953475900675787131967832422426533792776063544052339793881808923030568778927512499179643772910393272320171477243692785094130739512368078854164199333600384080326747714752450093916860150919783197119002364314479011027225730427749298862358321949858208944805173811966618227876037201786818946572613042025511740380028728036882733277698375472985212672128903511403833585723857995056633362384736791317459322904147265903188097497302206006726429071231168816847818815886020955092339355714971981763858497869714262859585474608288652355458091121703612328747937812681103283642343700823079715066924315908123464459156766754868425424419139995610781686843104256899914333257471953717189502315510835752550827396176523883951006697531342122292886866967981828899159170975681268551744420512323321124226697841875328960339195819507984496792378679841429727660076186049164913754707982302572638837046253966980181395023082753816469434439805546311708572111002864863921091233880356555542214118852812888663160738802324011054140235306915774158991830842042430909703825043420757366099801917592567836427955712624014272617183284244074992672528840305128152416865360715650770091710726242760599896272947439569085549393219244278606921392127042430629272011751699079116634538102501492846582923031591529229862265387727086928252947267466012423749642906600885298300375800636962329013872975156584807473285668483986174468175584161227045369890636418473413018539862252463376135043698270309200268240440654315331244020956709313121836235594365020045577877758845300533513256905924600142539148160709386612428688372423702954752684216569219415618582326341813001067629788982502308891147651401925850537143783075367082235049971920206255473351699142185369078655776413626559113471704315538271730533702709575115491639660325483150592880827855089491234613132138855667994908330148457913044318040350092831653360269230668198107504124705795065180657425109237844400202704977065258675435280791675770055288046234314946649436702975821870785755192336579150523813290272163099743749771558094155777679227096187362821219715059521823312654613421701809100687739187814873643462951215098409481935768625451359558163580806849502944171119705863023705951869906304609497062656924269329136176163789382521421950603651072910132090328323798867633312072243833384230275192798245378244311279792223702746999378464354020721276662013185585310574638774145068230280447595034121396613511422490794048551047897433854022897245587278567535815531779844327009563852252599022277222611347930676268752193146848273719380517864118179434996975344581953415202565748458830117860250410750886389139925613300088946301492028045031293840081426700216627022037115999621169777043258699561293868694377021273258770439441389096593127561936462524096385164221219184466353033555925843237383859091599988651316113759960050176862272795459892207437073400122170310177223433036528747849551353160188752241121391890895217394996726698275412418401870292232996134451175861243795250513148638813534068990980880190049677861519233879651896946256279987000004673620993614035030909347463798356268938581138458771926783504920778918223674478714017780053009108968019012055787816091743783165187766140668920991728906314187781395638429558048174313101489499818317992545685298932203784309440907560346625568080899488379475958979734436938638048457937563654546505125930991236594713128216861829468675186817821323689856317289525791261955621433682998282936372738378601105944086469585015632398725105493308681288008485527042987522484521313794069302109913625495668149838852231858065639086121161584779205373606858794361112085517282928477466708587886479792286964260720350532538139634418257749841616980860628681902298332173898383196003765314775824370065476861036267614128493445303977677632068851457538175045714405901429190571077034360807899751815840110823404023746933071322958691753893414393615384899345419212514557575499420476341419817359715462344502590112217126569209948788865626145884188931405536322675540806783269075040012874942088785559012818997962489860903696482887594797016886393205868996888239978125346062944745509182468574085988645301192497929822345223419539288013229436143641288278176850561049418051884611115609233140058395848657057075397863419016716301741503894924721989438979339427181867325173822148995133760251610695775615014750236395012552079580249289092769880859953994991491656030768171124138578168610235356273172002849090929112640475259529093736925314432268037391363809339118499500043567637274409982765184438253323854971300978647847859500598530603280317087217763028167090505256132211676747633983409538202404846489660338211115382490061982567327758407094012687547530788590054151050893120510285363607125628557236609409309326167770304691314623646680674217918090005865706173408627608076387942775931668699567239631096737180775361510299594398033539524155466630479712638516026213518914837557827263566375694289544212826160142716721656089761632734973191357948979072360891281932346918913000731262592339474614118790149056492959238139954153980344270749642436984142685739710573488165106283604138176292705314482236565612662592250915617187730241883738486151538056694781736071610707668070312225981703301011401577267485006621116741117607674893725778225235797151677275873566560916059000569080807350880363570046105905423786723797148001888552290849871901801068548855077148371475360235886168909719143506121645136589240681296238827118301631927668024198604010566458498986370694654767635777174330753945235255570661406714801056557408753977521290590670113343209266918121605620620092111746219553591685503900900121029994189209534541888731987809679577800937937629300218015884359588127566507924420116539357708419859282038195031151117334719925084934549876344778704460862812314904627816494346805778576447427394945271145883195463688249332709773932211920719253157897734879947632595707984416894335062819908204535469017259188004154191646133637975358288623061949157359788498751999589006882137455502072278296235102055717126701558395835251655037775246953448512421782373133471630409547326777317269712600522018811169238233955578822868546311572842100001341638276101717533762625444339337428083137776381320300317416780049779575055801016749666260877674900716597070248525604394406607444031578229814017986301589275092635630423262291845026035504027713621237589371859986554674085709611209246224102897066788806351728216546151852074341166251164488923192543200224855739840333634764263072180758487735575352456661304777622839998716484070218915823214625409974082593127621433922761387205929291806915838042723920077211989262872073222068587538339530932481054379782469974717460260354756416735575821637604175548494917324244363393307053283518224862025072241203434555738366716619666158013327817981108683188836014252142520798399356828096909811533539720896042390756437263583829182501375566705590415130317082370199178139350611265145650738607081649155431881375462176008042781708625345629481023397343552703831791784002018233551215853811576687033349729823692797735647475826638538684056638388053116379293133525135266059894015958974575863857040178247242393133782346067412852785165487705130157047320855168066490138635901553461854305450026423684694646978468513355463659296466315142845231767523833150030062224158429713625326888342940278315666540873277256877921354222642235126040614790814985666436371741422208027348716891055154581963212631838713931173862250287409257341148394760054338036821679087502848651436900504255978557418599450943327136593242250766769313651839364683480084849573933175883952962589982848273918946550936944182736765519878354257368880687108052410145589362840331369410824597670066466283140361386164295503558774008526921822437818272019322093454117313036286424731066368012647559750203090819914341737880007140028992153574206760096426434442330011558050277938287070553684704700306548157573319556069095551687717976681245793835015606644326251722133892391957065920297350642676354651884344553717970044745199218960000083194252793087997241398445749094914097043551982671496960286816261338484063035012686442547207174382988872786542691341417358847340492729816311233721921797538790435779041622544987485087751439841862548667645920581848815804476079939314752268453251066151413357910670241653339164260355472223199000858722733680420074237107733323325273001018268987900410858528980224021802581362885817158334798384973289960050702630222329138437353096675051744369565620918106827823966861103368148610248795402038353444900887095919280383168442457848538312847350391525749388700059521053516747911804920709009319981684807675757062759410612381733378366573456059765875792405133656082240490099440794943021653318054224247530868295528462647144311865317087588017441446506471814521156397352514256986967948231154255404725622231549617453137173648482512169780786094035420638379425419333227640181989541594408803638507499329367390775345179237877015486428284412278531137303042669809840432540527566520567246297694651213035830756508347340767448185861076364206989331576813887686403057735418697149973032862958797936105169313204350947568629425870790481942325883622708004454464231266295854043666732907175159507153744265052665981276394063908655745895358599439357244831985055884102468292583033039908664670560233044945032539274945730960651721917873049196945943910642812028121257329855455634500244456985920067841724887766887700348888177555660519540452008870764787508477667407261933629603579345596097729095434212814255703448561533805618481875359760364393333483240369446861330246625965548062574182129628230470855186377109498579252570322528113674438561294578094049575853902074197755956862762817688796426309808815904389969700584259198181197191345437749912586754850325106998445617415447223808184858414810486752670872604473016137387075744246488407095031595203009667921419696487106115270290403865217037313972943982396488266573524870964417402738578850985098399830557290635252266533853256089570959128812707421605329417534126450608676416391404378754156461321878385586584141430771971778472672074179876136733963244173089053563859485876993184914376261405571144241790688086360520537137431765817813163654991980416803649380458585966329503080955001600596656047472952146285644926988368312764268226094265560220215272029668816543147872255723789435226359044097466646899330294308799594663578416887949112964570347430499553057873756235159855352336690672114955692604854833705351202019252317621307021230765826649453726590210468476893747970117764428075698761068835718875607407349202726279110800620901761089853715127155002154992371632746807443485073784962991323553992056943477014129244458941952199600966767503873506045145950390428189304218028752031706422394642176608273720551652853641241404550611045144373319395573182835182208462754776458856542242004546690998487417167776623133039565595377143495021758558418959116824242957124719460650213061638334481395694838236959190082091600857554978370211733111081005315187734447810550631067338884340763013663113526728520954587285114514242945685783023464104458619358709147083396074309007623183099764604819772313174851671509469089863857627496516666433417131743434142545156591988576512071590777610546092661671439168088685985383710659100985269440844244840794456312153628889044035186161424496560729707013175903924202544718071656397717744577385575020324160179426780964867083043887543518233290202498529597811212215810832404727890093577617446555011523392407877505395728649549269888583947251696034901188147493340280304524421899098350194433730598985950365460256383595423397475700183943966825500177731393087357459529889897084583143087444171154996360575083097431263647554165260547148066987024127864716856561809645801779907488313074921414713191904226953936457368006041943455555000218985993084804628821053690788981783918858460581519282061079672904733057497961543729359842367300681077020320575360122203126770247905389816814262492269793780479146600465981052232328013698738740873601717209272816656314007077053874569564949473075191783032064794855980193492706900324445137662429825421955667719696118626805832660366898256443920456475424599884558583857434574685883475722200305811001841253712067945194003965345937868712504563825318948541156347657377507189418226662470086078310174524789665634595056391600159529722992151888814366411370884705765763426804041897563691568663513465076667984505678814916085065671427176431193887004433986181937321850864389506495078468772071400561911508714520023486259863795065802512389898036501444810174150715282834835960147268859864092303317419291922100295458743956448933768204814278094972977663659887845668579682236354341954826960697607534705482534924199019844467221545900312703653821405322563852003320446098075722867552657511051977734542862767650332184264564475119057801042284325042082100191695848992164792703121562805710667079086661837043499708839354865123131909838195451150267627513911120894070800749725954077393723832989736875666070712215013784373504669742011396821492227946416375731985570994217971413325260844597549927391463610203413131269515105555394483825833288356319452664324431109882661910952296833574717978201237655873056722075610858634436853709948931691098934181752474094005860568947852420228487846226278073388987522490856136887362739152901782529933085179441322813866165291617976128617068286663979234448288289391156145256705380293738241738941502089688808381421237234108705346042331776366675768862605350724987864476572890344053780395575384128238840273165648286268255458956726262207606622313703444324019642214590619598798012449291959155646087973485179254756523749187769933665423331259473305434329361345843890833725366710147723097951898173085823047711033360143642351309159510117086412851031211732414761964120610933889117928968707111206748179237247518622489062643843561685748044949823909135964729441809059866939984507238265511065990244429559823542142205141735687331393217053966434781374349979788324070843379433155612617840194475226437399741220099455246399667429252381694628240799057555019087729283720652308794844752242843426404128781456028815512408264218190421887572540393212992479311592003904697740397083279298125979413403587509248172779317927711711640028514019736884798824820135903403333600111414300599830670034807704009362597960015161081707134610068947590249346973663292663624907976832616648617386815323417440763579541630658693955782285191515922484443760475908434298310087169904200832516790173681189716036856171290166050486055496709135358702662050127812782987324501423325431176053804047980659693383788266510039793369721701378152612798752052924021701678787979128214428983712646757749605885972106252912143583801003420237446768770162521530295645698252135199462002012030869179161367015358018504043336264144851737084864541431085554699841137955463261934519593332658572465455221203765140557479914259797362159176635491941382193609235946486779807465776148521028273229216676120331760296926573811202796455415826575940661516675587966081424880374644389675965878725469493012741882852619956607659613651021293168603152586278735322216131337134130349272427886506169393821388721127796668063350396740600038144895943860122738901868078146545839098411944034432705677038168237432534797613188931232964096186566108745295803215491545583104909772558230762587662301676817049047148965519357898280629929284460474368037555764603767228389350857992365508304411868662612304820302748524837223316772423684091887065460738194104096135026593038755627750745330343266062679253944818057915312171477451404640306359729404252494019017523849614531280633014391121793657121501024493449899131738692476386904004927028429344884190500373319007685612353102118014865109471298908141888552990204651316926618033016225711285468105583673340353246072819281074694479231489831223998258642477309069430432353103939520273295012247524743971922765856853413350738998567927819850629687104771039346790258257417222864143841877907285425268723567186531706839919739454182014541843651525644015965983652331846441786791830058311185682834734919851941240203238093660480539029751736398482920330245548202689767899476413427843487872845315356251815817322242596707203221345225665162459219380634057235315134717932078892866210739387259638375268674313516401815424216332783948051160358080594061785695245186939178793613613225990716712148650149201844934775410165761104464548118407684790584804504476218050596322832902438564998217508070786956433215914869574187747546254426385659387110066980727637683505038674185994650303878158618927267104338165366022920740124797153700748016855096307377083233107368344201664272277606885863990827742263903626746144656130777697039678476028294896713202936634553112975307092072726567903893669092510750756248627714762442334691733550019056907266990965423669877319996721573287026692257910312150108177431518727957556123807288086401741685563503967360673078885444739010122144829959993844818164285339688721026503253425898089037530781188612386489713841414135877292573643499937295876958653222201298697021150300395124353188752925427585286473348331861082949998657179049613795966002747499279767195702683749288746432193269184259575349457960849259540174761676168860507489725682724507553934280292422187381640312053428490189389927644389517682791296677897834802425773968566006664340070085794761298975722625771430720276384074458712590232057133133277149735485632433187990747107411836957442148559220094337909345431423262694149746687606062992450353058284432646374618372622163765659471228208330146606511575977504043275891340533887672373580213865921403098393240610057613507414579299652708481909772255326102552446782051581895897341136295784093850800715273746883011982461060304353312400000605213331008839949295003108195039362449443082355793918748154820678877389342299222542044468571004847665941891542553312487594382432412376294085289300531661462889370043954969667676977344439163740800820075756206367449694328193449155566574227119846515233835645512001201235065409611018602805704845825125580104116815494332955867440848028826596665447435649563147482565139690064349374280616645040733131650271513572142266996982216202792396574950862789301065625018804880597668526218750601939249488711335950229519965858526590524929462214614104028682054807621558136577484006748230989046219363680743390059110593566122557907309710425837742428221951520475555922709072905422330269727000230809437134112113698318171583863185826134256800897037219426992207882075133274053726643817978979026311850232739526624309261966505635666767167632781044704486663319112950202110255776322399645845902501145575084118265088283103606846890841851306927825137574279753161369629101683331227030252154383131508202026229639153757980944674860399877025608587250623389324692045544086594969036032718534467768736656360212206781574146128384159977013401462449827781017784143758447816784706781658534195210286556012979657164631218215664486778508650547908492234542986142532435957281040590815920461550188485530011549989531423152585530837518909439902042625103855936175398224724900205508932723944990588163287505306066672280227722030434650069085250899360159360120558047090254005918342470094186882316851421536930553763173104085394060331598066851588541817870416080205697107504645973911987783188999039705676111006774260439205231367402515373977442074269057614694224609653219564809326390632846044630453074660821980138528193564599094388972534407856281107193764108167524813607760355329070253867502728040488619118487229142917788864226441284014892426024628828148241966328405935704325482437147413229667421742388196679637548507897120810349369268909009294662153958199710333894441297213312327498654940963569307776132001916093820865359805186057891438700590411997797566047292993539037831234713106739783788444896480304760084833522837630200024232796756679946335810572039135142731963079165796220982464423693570627616390957216874761422707904611146898871976737165371431894989049844570666831031698589794332949771809372778024130879696059710716178493362368753117289898972228714788554926736950022965591529525700674509416343301283321750352289848385927396057199367472786829326670229489266400428107687028563366531069598371543100870687927015975559669386951224024316630370273079907311049984147870392940703207205041617430310858991485256921857800739100827751649945532757410005456613597131913721887560373381377756625010308048741004767979652341574809809197887467630006200472126208336172810543407827837491246440179326312069891490218947815390605041610982994295087440812412005176852067504943480779951210132989572939176879569919821636035829174392872389485832948437042625307916165108446768201213740841286024584564256874025152651959927836065709393754425508913064375810863069724340011908156977055501437567532141558876497748159575081803310241007943706196413069617998401341440843606531120046521755564588695228533580876389964525642652951455902702561865802649704236570816918768391145612679704605370652803022199548200777718482752916049796424561015921124539287310445156215260074412218651574835096371706726327234788204265292656298823873556079660392871048983673311445928564027351475796373246794077571932734555039874484889286886951963175626509664584255911465012403285715642671195501418956839802204621501642323537365889804885535281803447488728147395339038856618621694475423971226824467803524134116015546807703868753264190206843332551493931122031032872797875301848640255899539617924136354006841646827112762246463060949905397605920860309337595063109633387065062319511301193165909734436284730771035792627585769978015070406935311744329426462854901552342877001904364936853659910176847140184715985119465014174722277816016261134245436973349489273777712613340566672440377766850087840375491243498580985916816407756646610735022228273284166503413359842307213464784033093406138538332177346046552121640548188897931878065766051660108082589774318367746353093278289043742379336687547177711067818926851878482818464729005141409597963897940662698383971053647424483567966508560975635028397830134744759355241285311033662548660624131880819033808495446360117797576057441906284410654872534412164046687337858539444229298821595316824054849212311879839888822421036565759118731544579252448541989000915381776475432110567019368241979978741035920465782579617041684853560271136463190001847680366928166087062733234953482834523374226133053606086286933641681993569117525941144584552315124218651750812023989965703821288232051810720200885942357500266817609562860922208018751962748888706564074059044335551588261673555336629637992656373410382707031942803163534364654129947556000156979817930134302408070297399840364132779571981648408443669984820506408307532340644923440138818118395374378086556456275789860996831581139054833105879770167777006548479295727402811237633217954884573281907744616709496775337654075583281834949159351228842419337443639754624157742846318502805467532921716431109015455675117885673146463099633226671306579349903861104345644469508009798174594557793768941432931375959374331064461973353120490032942489204151486554711714899776255521065937902915551791378205378255163555448009012513618807878065227751902907310022790122144203253707395986023523988334436052498595017222144963163846163103730159905394615280466894429168138981488264107320231999213461795802506547646539328174715954072585207637663741444738302646177406272407398998406881441986454438863922381804716163093609039353425417569962063571482881554165721556032062250877256902387199949110693051884859056215572342913867703179859688422966927125097567603969704332023994174923068478292097373306748878500994593972358047024665210608743717337213950472402852848136212334695638645555335446311821480263819114795930329849411163705365236527760919784519864248600244881036323488682338074059652689778426310808519834608507000478643657327335096095217644593693010568579467831255912771384751879359806979775722419913061162868145992857225056628179731491212042710009835665570769179004688830518173607976171835824782669840092516293637570022735273039925241521501502099879493869890459050264154600039163588175242743784239339781441734069442290670326037583551995997880867680921161417747343239322080631146324588023537834398516634651925006354367390241950162402708145034703890938172314071766828583503767979392255897483279992314985598462152922221916076762691838155954437007646820306870665230287287590952263862420347814017239357191740759264989290568170937492933733491817106736364839361396679953050534040433335964777192845517158946845184864649927400300218210844822799507074266255305467444132985579017297899427397325136655424885143413427436338164229988637073411842896357718093400402933462127593268981543264914898064499352480968361907343972753900563044305859263639731227701867596055633198250514583161082767260577303082112789485594124481609563541523092663677067208567539886455748763412116830606506979438888349603252994462297860752803171176763298083533157693942700929579093842463877213900477669980145303515978224493390512375076650523138872969223240383609411072828644789610527100840143096532885199500234489299791249351051465240044807846933411489950733877863321795302008833478139391552470002286459858509564091087962242267342836354156049945460382152094231990445848799645827716704719698775876539019149942712626850369732408456343511526981575528533548318204231011998015511547392614498973253824496577012220434500275186244509106880242297824978946083193503220560060492987257680124918618558269026919547186586942169587743355751005904171181862012836640224750976434745681488272178656972021194943426019644516230449100008206140767981208676741100709731947825571189575447512644889380148010058922336228589043370116425461944699062050025641253161594028621953244393490833981336798601618785968067497824720793238112898234951305053374192989929957701472932756338746001703555868557589632753241318610436857013265347473314902498383267465966057714914590090625816568784809530303319533845526197688211728737602880146767866437368176934088377407662842514514747712395902558482194728823076751006930927197596100684868785507352893828821936375817022114850429427810787588480666815486443694208989050800263614926416296942568155646923018581405223451019865133622451757179050177546444920931811136126196291488771565111088956095245196824993230641144058024390185448536768579184567366548497445060728570463930448780350964306247385785048268941754527594339828858311373397659466117658084213669045480590146290730189931626043079339329102422161156203861694081493805303687002423679922088370585976557446846799061826166231423478268898179139208075242674854760441565622837455953881973281769486839637545754316483580937032599847309315628880425157312986471927556664708609503694420068388788496678249175786368355765466554673609356176770143631401111083850485296975784117226922337041927386661695044832079324551672013392881543294649422025889435681749633964073574904797108083370024408153912191456575127948337552172798471142434512189226512312722295107947632166636619064145608063769263616521851862002177621994119468681942952960409747310883842220961825919717583106818931029023742844222612366227239167561909859509557158837578506574789126754432164942535978326719476034560176317549130935229708934775108418304321136119168989357429077275811925208698352907601030826181899020677131996850858290098960987294178864452569182925478972768123968591682578907887492362555039967881677590571932980809670390201610698415365301848778736374063037632739766273493539298317135591804909099904632191140530548017930545369883363344281891512918883353480284920138123882565801340779723469873773792849290036377134076966737888100768599527724118994924695750461593150836673928773952809517522688335865382145341553631892631631696393296095512762683969774674600619540418028580800800706964476888029156114686951642244878579163395996823963578678547768158083907426692764431446331466904389311393870408683916559868284048283210160769314823306911564271886866843840289534901077081322257236561798158912091368884764676483446091842835592649206831984216906582300076292006627277407822026449028378394822566126913265104674206270157468071835013136626070556331055502868375864945999613494156797267516233534441530930567879921818481043348275759650011360822893771716311151693712144828130516131661446492188447137244391335669133167239092603713569134057442614974859695454644109961415704802995919705862413142641892114938253329370903009066092277104562576227937821426698141782825380331579268094405060813951692758446732979044650377782619309185742613581593166567208139033823774300938435368368998423861446208307198373003713572022359593527500875255223553379217461635281586673682060224471759846470219846294357341371801115778642613843462075175968363810803794166790921163817547916090149926830082236009582985101275089785391275284483835452187343618626519727100330314629878162511433060395868804163340918427244380118101570982980320765545942426254556100382530263174909485327893595307390045885238140820858903849732542502747902135957178547469158996572289034941557072615348652517331202911241347851019819651923333135439636460773254212413351593093022925839243532197744690240851384743355307697946006766235263368117584264655583506772414287878910088605312491921988075442048872103146578075339856869357902702823142925808954062941538749967656394349236450239985384820079085426153560419663269545283729419438490486921751540443286782389963631881462733957641137330754695577210347172238981276541826281212640954879123506070848221828317363283367837316242640117448310389566746515948714504450617603153328834815732579022153944324746251468440749283150292329627277644025407671188648194370340321316630312407325239505350912285024294991195121342926830783786382462677507569813989780358070582395506873471335174223805529201363220812642907244733285610620346265962775279095194253688066977153876696029732871690003756749160824606216942250346202224672178547765571912069627834325932823223311077069540601939926751273379333504026348043113786635821188586452655382493965128324690810711154776702050610581540317014341019764547446198362825175462473543699810456362231612190478325015784644694940070927325330311583070065598200032108959787021520604925647179810537909266067529738031842195469936997349757810417361955341765650171089326297586178639318763217167946292721390443971998675345745899345107476016776963393655297270954466157403565801644320833000862030328600635694758335081662506898648663181618998035869563581604247103374963755999132253411140995316827410799821974277646190865101538500897474810064286325620866527285481459771737253039409248426694598871470629683967592656777011890991104581815673568965689518631585495889474023016860364651109096239910654096815193466192119125530121605169176085857691295432107008838881196637519505907248673518911522417250803511126466004412568102592880321640961383182904549297799333975867862534068121730151864457740928710169710223692568383092749577458315394020483974499071442568340005724115949733242547850776038618817503283193746153993775056778479586890626344386414502037104272111115960167686801452917566760802082765638432128267947478166651468267873764163437344943688930311931777185912895361136467769399233457140309595691677329011950020196561012897758428190168134189452255135045144229692740551244895675973878004032444470860228861205808761007129584820611909689988970116473827204101352916981915864388445103554559676445070219820080266777514774027567784742910255110520236608166559645218469894770894032652270756982864961396509922907597852652569569571416381746103420464881250911976592402570838499585072508779151243349999591858052467920609800750233926536762710339422925457835656397941540752748905357994406639957582931320164955588697191802706629938983098809359375727463610551783917005042705801924501944046807041299753074049102886624657914351093095143291007245957852426711102348391589435162006433323151426089832367790557477731562792231296393975316470827888985333943000476490491868612638697317718301463978193389848673791873572001365245708461959749674687138967560332722068067117016249461587634055389379463221986381147576067709167928512312113289851286251420736405208339545830933514733399174307109515142315148221436632380140210583215774169203198813909701091273301893357616999517906977920640573760239908246752255330367076138385224745256863616956411193111339292243328745596722048706291900953181317311479996840945934803290922093936151961726897517054699638079998270428624803283576722198862874608676960371746867017211903727443510817938296906480664402707508864921508872736124121778693647809749422166767440990057034124397095725795861441333126489882927199413577299365613159923410108075154880836603789808221509776213539234727331821313429115591602282699840565836481267791865892426714533788896923270580112157410691956391034171386477195137764758343689549531624925198883064531429760993298140282433728236880084730076731505713656006808227015359012983428144799580061728658132921301473657818978761833336403419697773320911045938599234126335719484821857033440732033533292107580557700384853783263355256904902964357181547603731045246724820339832985812732069073779696034030445979280487577102405800266522582629178129013805353308726888917005231141895922305922710961684928545042817451584770376402384975433128889533833596807566474614846645114830469476225449818672774724234702613316326340572196640042267390790448278156854395479150018202494140469612074196475627205190470381370470428243130185544484331347847346124463899733544466901662088017825092274371746149006157359222558168570193972424385088653600244339403787688537743117002850845264570424855181203530508551711031728323699356094211622961936648742958764359159169036116625102046210242968676724966445878931672291684232104101849024114104383388587251477184978615559304423157304670811271369305850887315297106571322648993770421470379278963793623879217357401815499054807365581479764177705225425987610863334477061404749988786448613065898774007900639313102302915933817064102572853705670067478845371208274411886667773361876830701975602129574905548666702779911432752802832231044091451166648806516789656037147269360136170898074996806041487320390577550475615396791851022240026758639155365259453229911121522624652245932351888159289127517385904076970216004533993695207982441082085707590742267069823389562028855696822887736748068087428089968821351625498569022419754822990511577324927181776906058198658694558476428888484836482316686611205895591318987749206110586784176858939326472994491406999618151548783998455704913623705743792590658381940996999248447940844779548365355418967794740613746318312356086380874172864371161203851065200315315310974337144752778636178409326961007134663327068021673317307012929100820962273912076702570199013643095839200006413337816860998465729576592826751551865350511818338690266966110727393545981801529004231490090091632607881749711132989856920010153946793218823479666606969808237881899755483956918278479596468276640215569575364293177345541288738932037509815980058655836124398285243157171600072025664284424099631446501558928695567139132430829739017104495742460003728272511710949518816501458317190554792285620854908059928699469799906808050550018455000758869130144595229432530846229679785012140374703046675030405646400867584299486242520531799939618804839817753622137744453392571412782339452427959742292254317385380162853323274094388384187198973963872283107492500332776181300189142218683985238191574125763926647729226755965304854380723788558336326252063597543741445178043206032782857209719377959710402795427640695369628817391064166422113971964760875693281761147139046980970958178611134784634476081120578585498463732102716676066495507178385845927600799583120779957387390183355148642342051543990057847868174815542866663978928108093908997577325428266384058932020482554924620027159156938368609333541660025391945202527661753825865490673961292660392528089834523199312111990074921532362994175080753271330139812122376830062832064057523848454598454452078342925971035203035682974351971235460849285585156015767615341709701890059325570403011928572992729213041814805488834077572992943558527687391250561528470868211700367112240915049474945236574348255047216475254686450646364060643016110291173157612814799775404521843472280510412600908982162058237282013317091609503109042834688331376035460893426741080472428427598992717342843373838308053983536326073083898213988198106261693948341395443483303858445297543399110171977977113411678930142799466854771049826867475164300147372761276575777760791971832002320307579603130637390906056881249904754934208436330769604153083788232085190347542503659326701998111967564808464645177621279861756354628238504885947862034535797015935698492562229439313356429737416455359594932828065009471286390810049011452148001432721039487617740707582665560015871787613763200120919066790627176474642682137908766213759328443123775527860179263573709655081028543654905007326735880067252470855944207423812050468365242737599452156525516472132971863528883147095306632071556640780441603302136846847558241425938992457026285620945611266410998209190309884666485486931399664724462116919803803883090613428660028489262701136642900452573365677780087624454724131986368203906474723686179299425129587391366606030828038358087969654044227524178337761194536625858995260598629168349770403928309027003221683274749652112984967239614711425425412719333502631717552405521718328137097245634567441991016953983260000712971741906506307736584088939776952570588226220723184382110092343960394912271170594349770347797159915966815383107239282391182505833760501065765448577023553261317851149438184893727322860282171027332070554100833468652530710028453779159925671214280823159746119855297397305841386959930569232927208332800492407083814924563910125885163483473915553654438179307289252698502153667465222655362349306015627897289193590150644411590150100842235017987353963544652019715948500799418579505648458168674884712102052918332534428085241054764261685738310965610116841857417635816027808720769125398813653896682538435888477320927274522483530482824774825831764308821824317865116506551381491161587441527446645994167017972718279676229113177452451309074936598015798318556629076050150279839576114264612629919848293650140644685997089943099934903509709219361560644723431346144328304826777951836565755582698000417252757120796197302376880231599144061632483016919349523116616805065498679620210137484964921363654724362624983336193608900033552714301790540433870061782704157531858869793745213870867495116055487055483620997272975810059839054938748133159214737880606690622964746542896340349223259712633283172321264629439018203446947398206560266189527208097955691068934843546093957724020164413254862194191141288638088078018008720776113818768526477217848397074608532096371483095932827607075403278785414903674499400285291884623838293560637553554055445843704129071087402370047860967413325661615692253725848808810062750738370812456427585271927683672951663634880251713351581959074797539542716509248953815704684854741382881040042185447994716336617357733775201281550379814494031010579264264586231840896402618602348451565185574973639914228029153587025132003137429083288287027132026309296244480400481722011295370279344546009180037968368137554407161644634482110174457227968521190618326167411488117566497048796977873742258807791738107968483272633521218080584298326699135657179168493561932679746601410272269830495626607174043382326127743534278792052164686211934718871399071731172853379135544579720093135037198807661233791145900074676223345263884771391724592029994209847486297132571990559353071207411763865055791766317109547227020314651754259708186758258319997227850855926399637892468222963871890991417982440814867138499695259824647990112057530998190153196380898911790255309974556134485556481778109640333829658138823691997845203260683522911519011456755321543291765683200763404335902065769777089447960281623607621637651945494161370453683559242582501401799946929168288506626752865446751582235624951363537530889871901966975640041778459053315934263943627004819386696187735486967007242237067405795046789151940578618035535933018440247626162060693204653240830964014507236519054483663171617580342983017365357156545688078908280889535786368719748037994193418452368608875221209922471478066717003988805149390103370721250637984746053267266879233069117437461294138888502343120224663812808057573694711643876605927067848258456294134438574060312379675928567772948485902133191576491947719864895468164877987352079906907392628062576878351967127887607700362630826686641932434623690748435685137319629537149106751745011150292924331318782130281458925927309691127457879324299920748120276842066783876480979239692931919288861057796367324788157858192165580534213789732012072620677429035389869256605275733120910277758851473365464110506910795567035739651415632851380431033391410963187699337147232877633676900519050018325635365436894871007619058186649387435724293834597783550858897696247977102446012658978060902894593618653007209762960001025464811783122341199060964669529415654919523595289493491350078381551537459243445258574543791374817131692365225871020522325585888110518051825034379785443769173129280704554390227854270904755707843776694117917712084971167624274309035031580517165559817125412889890753144547607806807631799319120725836816966135329639563586696361286336601743426410435495913527832772982380904187968140139156295718643881741656115657998514181679534408855325310088384486248133479092884339469615741996249153728107287233160370744750641626730901999386918759260654966497782310971029468942504512253638130174127633039056025345252472554935832216079409079661147740463936130788627783008549296596748736376002106983795439748208167720323865286200198541314353038863980699708463981377283157884901813736111664904204017156117321941892488541672616710094417843376138496807845641448744153615152683044121273311538777352430388997971868952916817062192635450819455280228759923431294513538818039272259095481723160242625056622775375753191632778192345609631412966803344378081731969813871803357539897889667571499923921003026948160022286275260429163023873999831251001600529201480072861269984470474101317131965745101040148009004050834071149888726645288612999862861192336593342858720423855683812385568442318766276877457189571708579717855794225288853964033018047910127975279669085895561108246034190216100277260498721151133109542233460709900827581738678858349197380767124554478429520022377225344146198638065550448002824795499896885824244614089123048852753255642822991869578508482408733396418867958187297438385570969099780095930741539041430909904361773215460680840094770574399252619638037740830094496451197090772161756686155287525984089846483932611654595670856938570092455172315635817709967065495226636317585437429506781349969778223793033729361562755006702664042126564091675681638798188906469269069367600625468539926842540939280928133448080108015936694818479110817210529527381756476972144034374501324163803387122892154159702013753905585289850831541631009400705714890824726071534266179740535879692547337459854136182008885273655669642331046727216695477754205197508195756597181222076130155496197475021132638249764524639665338790461508900251723338726765991764879131473414977545339874391900298840204157909115447391581271055531755066963067238450604450841923995938907163457442702220360441496868344853983974085495024129070964476664236421824486075434951210283139389102395059445574347727881656961586896062126558583650310970908454059351261633712762645358171816364612097063825254558974527896769840358543309249251436351538686491650683009085113912916257319728872734598215655020682372190390051978672288679791283960065173954225391038451354644941266663344337320811570351185694876363005832586075508427627528455505569389094655184470988429715665176182122562038625726938179600149349964275928718792759678109960998753575105587165355845518057352830261016179754371173046793622341604977903733037591552483146685957262277337705777800137870576555131012375539493507425739181182009718050433164000346230605896733944146791568641312025191381566900639899389989888393485781718788074863888302894232270373964729535941759874262998533014263411898710108912846026205645885892132180709047428454279404874788398522636912243144027090830188173290749827385509165041180545135299810195077125880267742767733481565555013459457672659373429586035305371249170437194519740069220046656116301374019342090797235289929462257530016271769666597131821382066570644191588568037963912889974499771127960786279915103111447140894169608054517578403347810849187665522221624419580106998586503482929485530364121693986806217903952086619676466734865751906450017656069550066268841960897113937473064864431762313720675043309881882627021198297291431236483581232851345146296039774925614740599039443225736488664985546338718118267874280694994609390388459051951826604011695629879211528840048841166098543480994381940418866759053345355500154615735804812430659410190222925903080936762060525775702986420383649403163776449372745687019403239994578449628117847120023183533502088122756216088112110122314611582181955069253595309861454332727410601249352421546449499115638128161194708211362952582974447867665186707091508348491101122788300156573232498784202608473409304281757622791320384317238080047403766942130473970424788673485527703895935901469488354590952732905808691120769022710399712415433025051962206021567674716784189976597374105039385762944174919931699338291761816317742619255137412029405594425933549519726620317759260831438943715296689542035813016293974393931583422979295361079374736095288388039331671819993058721599189697859637217329649598061480125895478202811637377615097338795291644615559920004297307227460713135969386937683981993050376564630065865864696252707324198562875830573790485125666449024593837969853157937691714506754980830997136461783298375248848482944406066136311006979852438539939687944751637109030330085081102976826710741589529715639113342826882836686106060486223760901788088147218155024866498799023244658901706316545958262148016724199700090717804704608976209106373589609939335712040863529248243904260916675521451867669770081180453530369645548348571523088579452150944015017192138016401898402659521205827640427225842398055232362468843032863655521871701100274980553335757117174678094967659939948612510013009850289203446429616429745700792244286908424571079757562774487286623311772492113045308919128258190161576102251692155028032360930883366821707650846229515844616013951859875056115625763035435290044977040579745415265855829775100855969407114138020211135097544158299722719120769771751523409939093271180704769000202205805453775312276486452438402772657853208862014455174601996599326379488356285893947712618978646046822949184708691188788765782680100853089714523596720720395273374845039721317687664938162423363757560080401232344931216572714898152968443503083320054526368688229036393485216690427192779617349867758093534221458991330638510154162963770800485173953440153950139555568178098444115325843155300465250811877087520607866714558533178224517096568171382077534204541687181940380043969885942776874003661621885573147262122823991260649180540005585357951345746044010976898317446151119491957367624446495319168285174483875356499398947596546829158344028526130190452495288009794068917563870782715654180067072017776182625406143187719081967716372291153194809813516588849340486284720016231174648241343775002131444439828943750218610727386687418245508516482194055600671369141152919180171345558873491614955906783407131617052448064895432153102063892599532128381757514735313380957491709476139365783005921722524126681461945403062640497137439585828934236455019766004099214268296020735942609472901798754264157660896842297351718426984294493365175331609463791379488784900298052918237706355509155405649011140375051878090405541271231667041180038264986370819674932344118347291974883099651696114632036869411744325608104207946654153453156964072488600721817273813511561670674325082883048665682895507785833874400972386294753456745803930881223944664653884566972444526588984162771733669053402879768462942012519615614278814265403850261527975799105777402481669150250061881290740041262211909768983364795825180786525901903670577839067644880143246517137123425852005968958127710730966074839400523664105071897030105340550819845735964374119783480688778175685603764265908339233728925000775703021431550071078783131045574880646052130913907178478509441918094892575393702060943069304452211409188023840391359007838233894423988923324786920869496444330735330976615231160342828386164960381842630656827115810198627832708312397722113359289975232131480750464377110742998471029153657209116971831332356588100575215648291911107841246189870223679686003579816902528762948953241791683244967491462667947009298018848588580910193363536004549786767951543656000707226931636816354888332424984129908279248181447038079583238190539848038823283315270725816457963228333805803830999152090015514302869016249906213857104637607666947648092873953129187987884829218125909153769073839836413646614324291539364522640550576926111972512071095191590788579156301181217114122129601831535160777624603121020062344132131963101647349751905763143949666185824455910231291667432126693778963200173684222581847127828914990613666914570056065888299202960645432312504689355645045627498005087696468825310518752928261315547139882319553720764596466649859779664066074179350385227153086119061982340170131203481087842800301403815737187171705568381480584468195080811087742736532515975689777935379509060123300783669559290660460470330501880340635630055486954412935652937859646955886163376521199967866369877166766170632556549620781661184347540189425244396007725765251930908263594971978674563743682548258483404784039376167808834467277259732691066190932041125694272290846733531321033454890167577669140769027680933448847322181367882665929666905114434384743024170694738537185881543202687115004409928777060231324707635189854424102149318497303465849757942399576699640758579698675729467944579394855357576181165637164950130834937557490994275857752453829378270058555104729079242446803789318973056260083001650734147896208517411493102233291921987401207481885816720651823155449826606583261606542399462369330971913194497929386368615952795765529009584923109706466478594856164964215636643524122724534569091261264568786507946661454260276162240405986909539592380944640056101296852254742997426259454706744558690801135850753008781681701640951091133891762020684168917930739408888419772280997801307462193301432393581312072478705333590623440485025928635276475385083260903759585613437960083124462958575730489049211837072961771997367399890347705972926601664058188434270514255243584177833346787534888192373076902720344213994108274138282153890277603940131312597079718522802124989925559108828523826235822713155464124108865773471489318010670622104795851385614490797602645804341433930292020925165608290981136150450413959117811495406012249466851552334248497536050910988764303352928651135508180232809891535528068527960000478045737513658428340479236397078373092416807345072810373218042129638178428883201133492937856591323424535170619684443357681325461170533615420356996634359305141429124364640479408084924051333512484974917352829810389927445018744788441222480277445323070830230502696795767408843923237270277858118845835148941337103024776932506050226609962612421815494747431778898214043017280778684104474315131949804231207685094748493961511197167534734308681410442659234260006825848563714531520238143411172477255215655061895393390248924293873581787487179158461186276158351952953659009266601989519736336894666061310559667288029782555376045614491960232909029217836326387962951262283579675067678822023358507086498505652202116687948748726646600760226444698288821830098519297243495061619295004114662647886888054203685283943043590665342615174297530023595687175846463123683736131774226780814647926780991054229933761470702338275896959586610002326500495968161790910191326435736331092232487283230599714500294270609864570724247578755433447910850631510142050218380271807929661655366082799974158993824775276430963175895649674555787245636088279346628023969274967317100954843129420573046425270309450780914288753238604710115835142540914600791135374602877376955337803744487240938256640521909784977128116598407399105996248390971754178537713051925279938958991173586166386468977165645939078090439938974316672353807622169708221937970798561123789480390967423557686066583252900749112781704489916802081217479857345815571444497082166938318396488020735714920913072677241846365680048861333146184073194625200075117028590740333966575264483298834954671393492970190097397507394235378451015546150606150447396488517069699590178510033101778156176327044780817745008703848449623008753194685648468766033268171737299269110728415072303529714715637593360034582072597759802269075669586873914988743190040809691372258852714560185469628059320749382445158969361769409968598123433440991117867448977394461091011644060454479584905187623053730580254505649795590326996866340684591524559806922001529715888018469327043277520655551808113435422380018746178010590052615019893906185100437345573815815867416066611858881731727353139959064375578923668295748628172793051888763316777242431932238182935150286849386726304745392385587337654942868732520507765537818672494455029692651486759013633511147670478081802045291568650825017711812562624191078786195333037208373321672994682741973473437226743313510774538512788246534469391148938092354985734286510975351083049231766969300915923166060217864642920457087013226407169319529499342202021856925620984801573511460284938831634732936153581696263701144848157314862267251309797586180790150013770145680587952430389215680468842130799374870286219516271537715965799467905123045551861512283719915858197694954803693632433145631662897141575174896436556489813616967342942310752362703993235656152770208755567306028446218969754864552032649933630137540279679589568303988566018765103403703418002548950215746414495359304563470623704993293758445745292687134373987786288185718269262328092891440352999164349174071622739615624720437105170024777721640205630304482319263480623904965523176751055756624069061517965985946881783589018489339616836073129880011211574447271861569110612825827764824030981885734951327573296645290428462556894924129222362923734128124939511204380838979538726381076180134194836901064507203162674975444404887056947395942337980081368321335528193420806828042019631505105949780262336127110281840486322251848300421162403374474247020341096076101874847078821938208081573206524494936208772745890337109139817207929562455616167427511902647916775740610114421577153187895708725259327918343663430752464755973415484906769206060661036705686103961219147919303514389709172430734165424448385051143220975091137851168412321776167156621829638468131274369040452388626002446885981980792295008219419224445123335894451297654090974309008321872227407215938362749036115763268237124994750873384114803372938242570136606233929021567082478135156546188925928615449708213965916979219901365911648951666771898538869474912622971535366901953711637886076234659809903692122216173008792145188916928762918115148613674497689243616822674426725535415345241377536300272533158285369693594811700621266330610166892025967367001370070714892392182788245795540285624233450079307503314188895182560040558282139081069879589147625343077766306369098318801377371228852381112011672727935892403169634481234276037453416205963397614014001082971363421452003677202739277229519696415377188513516245971044536493406807136041265035540156301900591661846596309776347600453373736944180677511384829411961574144252761435040991327499349944325136415504769825039723776731369677089353625504131188574743910212605401077168818160831898909829675528514376404386134483761771409152715410391995625723991258337797837812416635136721821167370846608925303419160409133110716389535569631315610048467339319126522138598684000991856367756950642431583369559533778828328027330630079225626613151966635001645371071686552286378478172516363099915419987911097050487428251845452761841923392017807700479546946800967538691248195930878495009738095897339896124590058211412278380939010867929553492904399271780611452712890618368763759277453352923423012039208110058306938601570315832311201024224713719770813110259560356945557145900306989938750918013742069209205409871861175394142457770633596748464953985422132405683233582461492643144564434166901681440892348631938045388274211666061824008655721421684622575917088197419056921897137407282222552749071885241444165478502716322233578724677644813105534482857315132078898688860720988800164379751631560318007837625186691546319546897484033247610684490152893215413997936371471323247593404793548560677799488204306996422744720956758406245640995361912276922192030933493183323712006408356377220265590062280435091912667433103516478516365197442044665514487491162996865437952149316081357416235980394961970602463666592200609181519088983696886192354312948243363259233396667932058164433740905456165246218417033159067635546903863893445410661707469524651679226150055609900552050142757231315763813545422882659611967254418133324467137571642953843098811659751213919997675130755524722861179441115391221447394354399689259104525984167778696634456639703181940964299943928397723912415826779256326141953445238482598026427289495061297015542703544845932237348689280270698025511133909464812886046638694819786340705324444392260104091687364999652024833587581351325899556615122362317142146165395625826974090052310159788842666515821102285463550786131922247118607882879333039107349759851176877159954514567593302267918069107663524306898974688912256935196259614774457420642191619379017352931814954499046426806232439110266303993452191375635417402634373809432913157190912415160799107152446069811620845795786530767058747246309354548379972230519666930607271053156764880886957234846620151229917746354103396767344890847591039696213237320388534467038232028795766221690375520463084190849938946575072591418955385577291091189180092861521809374747642438448188075164514497507733913447973971416032978372076676209238154988681638320799743128729039491087736962294785740617193797086589732334790484535575599063453720271882529874335750125928939736769961406808412909282363506271104610447214045901550529291768152078956181887093904273501974589280083833893450751305961249755792636448343449541588067620945757565363602768940284791610489042959164615168472387283373097543503265334341698150875280839556675635260654679305509233614559428396839854542092843207194368331793035844274285787727670984830352223654410581488694900378891367060000043808275396956795940537848294218292183600744206057853772385925866753965761804367382435405394961552158662161637101704406041146846413485361443027403327201262501762946143999018326081763316899319451113149017941480499969298243335928645819259133827296223907429760598558769405212972056633908020114551300132698247026535890191580344313380074454333515083365531050858398287094685049529608995356748165245534062806321766488514429898945879594731513943682895537292284482587943553852110951681822896880615906407766406685325147037802700612825097132567066868323117624281692265920588601808695563030012540281733136206052986326401202319141848035227858682002314576472372769886215795866394516983186239127035046918250063644392857932084306565238773156159160024352691363272266109582229879718280350231655503375241427926894220763355727422456808810064094564033386344216153872153422288914609765785678308424618485512666881477775359931468197242877768453186664420340685897976503791458275686383296488352437631892071001307500158953774706492880693304409397489971875525737614682099915228000351118607664393853456711014899050915513312666262284318151543252463039427355988435645937570612271009136513970147096091237540551727399975327727580869790803347018893884965271960097632662023756327651449097188744114726870222833930650064274735427877791940171218336128271389025322703861239476076433432868210211218312815524167731972623795527194994306763632977180027338800081474641456394160160747749770526910526717768170691964740018639207462072699918119501399904000020762124514300718101262259287644134256084771494738766274888880003327566162591474743345074775759139000188006789242857832344528193665664940393079232180551158768494371536818076332946505757970488563684331218821172824537084920471919392309262793529491871215050127602598387395185225920311885010794943039075913725537870632870105540716296739611572534916312618908777606723431208148531543262331434501132246783742667900552121654568725437377199722422799401013474820947198667598117153597394096616031770312388749466080692756095225680905587888149586168511402132505676848307131989155859539561309990979903895375455086191060037043397313966024044130439116860809072823204204420387060882248055708564632268676960613544617747756780298131610819457151243981738245708368300181849908651888329169367127549416747954697591144816133542210657392735791916671175279501374409984810349726895595900152703040511237925477035864530747896189588092513306466194097425551367004101887188557730572249008585817469873497895562974170237251457239868324273433300969989873584140020933252803808041792017623392640578036237826756991890215717836048276012174813267255536201240619559330526498858458747337324982882954204298682693341853263869439275928650660898884031658170857303800539088883993287208426482272216481103636482951077233170133580983126313014509196200010858107413716746968711519388680007380777870507581395234997379694977849764300410253995726030269575556176159904022114021650085368067003572210539803322769148267693780703741080804587288779616414740192662946489646249719570326294023759026186997585067479131294946636700030237636589204958862077933989867775186961630849359058321818661207285451768967712662793018944091560757557744303424829836419081255368603675453735451641609800924942380381824803386356546211837827008307647373217671099099252508886335714060876764267083377312402626626990548273681545370974495762459976402799709447925839840171477485100554192397509851600064711617452517440641352033534963008726342828443280048347007971322872997116318422920792020536792268999308181897387749548990954457174376674062688880553951957036967189137303816292539185210631971914755997640581822230593242254805090971230953511913897533845417433929047689426604070476192903996338661690571562657138027393523054086601033556521530816128953087385161171102890917797836607766075969141894224890490083003683796733315908333953032984105516866989036428209703914949376710341965135128537032161265645952553870533880964603015395128599326480860795998977370795045504129582183505766525857744343402037622834625934836181419372710001088721280799214618346441609992900891775931288312878454562852931435524641377570258177637820799216864441354618978955647981007514906546462444629931088390094590347617424229609501849192151810432586242584988489975948421846107788551322905649583361202795152081662779310382102489350923436808680793086336976004174390201169425265019674509591905722138816103608659316480046955879642172140462605542367537741543173046764377718377239779295116714664250765287448798550402812930942716321248959050121551624278155848863898276382781343119793935047378919180936166763112126578059052655661165072848714365090841194536418458670269079719152573787327478780764737607590281093282300527495910282360898640034373461509212983191821507085202134036446345105959422418700470023921727743330847248719428726759244306867682543370292481721691134844482530000292074869110630319524655777434145933835281924338279226141215347520063075779191350948029568208308840369195079790305831778476302019419476670888316590675062105153102481164672664395277787311947205717339769363483396300188425005049964088936019953447751636432855303526762210785675355603686297171181368881166281679155565405243736238331313593599656113408730194519217845760147400025455522164955227705539777346488443473284577065540176936637828935340899063892660686564324826153402317254980817165545868943742101596874106242975747754007235358346586722836875663259848275235383659250962193507215972265299652519548646120400533674413801781372404212176337147357591715905232195342279972051892336451391182957628701777939200770706599189405125868364027615525763264875312606671432064386907787752993259539845884922901878862881151192499175700350086107040810551443032257615852144523877362817178895128261626402673856962543088612793199053589070204261323469540386420092619093494891138735355326666157175012453386378436281073730557062563112428168542254506938198741128174966623725427908145189081504421447573513574179947888450412636468812080921547160194383087885405697670832262093780574775960947893436509913125107749086550059448135650427386300985492993036041804086236048614121990791620865405758247041001259853769359256602006988915311310667734013814058410982847696037588967528361533497017678700362074572979933284561914998764819501103143658395250682982770180536898034087767115019691481379947820778501999323890440978424287998962025150841135244658178714965159761601209120725950965224416131283781431629618613471063967716110754523275416070572986269502918494994276404369559954392491956056309986579845173638896541144741823979385997656933268232812507439846279750204563683284322058466951911144730441504397731168380821935911098891012505904098721027385095516460434672508993546251090539123604370839194586327177161467079299945193415709357314864516982615314534631699932730123824211968549648470644619276986594013367843416203738809782204322796889678016499882053409107816189655943244658854337192896073476585147571707709465852517874567047948769587773138374852945991065305101805878175812389632300763249133309948237164182493858325299273427536694350528239422617667067614639865937871701629772292597390955150032859285113304715603512113977310064937914566714452729783554495575254644349815390979891761533642477283283359169607598282729089508187050251357795455978256641971078755087530455616792445003754991308242553403572793828217451985656409152574876740140390576967139880737582359606750049606116344859557639235719753953669233002828328320380735052253707404418107579497677672789549412507968132023218672376553242418955552652844442026564396730671500806119277105168160365098194398185919754469963932058686295186898275172481548790071270727470970650676052808421643482568812202237912794562739378627388094997939854965694787769673266182325775466822736096743099802668613435686150032611775790770453373651251340094151638143339776182064791394623264438463954627869556537187796056397191993632286588447533980723104549732891489602207009614697086538386860393294015855570593810296294845687179933353855512320889656570269548364345777160198409161511593008772081003998903937415924185317944611921873160053772951189084341244592450247630695819646943347695670847136022395777931298878844350336484183250201971627197866268284584352560508641672734529711337613316772017935873592318077456878766167779033715198520405503375154872673989496648378371367671736241287746636789789141027520522572656336559939734044176356563890031508216021177282562656840112179099507659851945355348994442854381255967526744149527830703349401877090656642409568394044788726186557383610302858062534958045707701753134884603349524935407946700156856836694436721276279540968095241189177697362029309389016720216808107070006991259511229352905899502245559280995285982595808625291744748531039867376891772044926424103335244390914479175120683295670850458917135466131983061797028086432325537034416438302303033249855980389275854284264878739364729384613761250408224501584128395679674454613408880399232790631343821688931414246845492463371405093941808253417716490396161186845776291057670952348787092208927864838394958915293717001174607463311038087498849306844108836373129903077548658016963570527931491082150149201461074090737808555996463908642320270822539558551411235611812620746984271037148429735448129815125308107650128444660839694191169525787114244262087452093755055810486599632578033776574924068174261145517725568175502915177871956366482537082615134664139296611318065317437867479894097687924097999875675838033907968845425147047832977882246359166420297755405008619291884509594722353529335748219755651272344092689286385594925531560220178223863449934860000176430849462388014061317589869035537295233764877638772029268443959082830579971242540809835891228308532697868384722312205348084988525096591663249189254970938191726945392747689965881930254866190902197450679791383046267422198884099368701968709222203253238989586633353993342685361250444202275422165608674874810995297295681680363294129567332714341327894516185868210891839348252259803576602422930075451177389157776214286813645595766811382027061581537672812231652594331165497882712996657668278024060515950714423648969692484703774520439604983557389918624003885290278637810972264221316520349689587456903658599534639900119193642253510074799579250652823648044529223046590890777174312787483833922386572600000847685085414232246658790103859875859693749368650878957543913984128257784952846756185031549758265173671729647031793760818842398404274516636407649595553894573537184728483818580330907115677399619784172255408151648124996160122914501328487285425486693539535809816937044218131053530032907382431893502399395912861213879152955789057407171365921163138939501917895856392138470863732742862458650916240652961467810889299834304035441838070997556517165232230258781067149084744158566309638708764671406064589254051055015968714308277622353845523425161331575390654226457628522560531227232475382833613696222722295443657089975432097164312454815388832957303849014432649108992213703597361529389817927588820701876039337660886859446234713591869652690412124751461911404991940456759576149677310188265372848118151730385212502412004922759370769480126754301878651673248414920660541144041398107180116215859174549216733176035683940630104660921389908226385481974892533241202789856032061889648620616740536547061473261372440149009611986565220201858187595057294845206597099874835380119948545874410950463793312405304456029961397028892641628670526456957804545844858301984001575159649050767467131263967922732649315606493095346547254768708731546426989419624488653866765209455237533297339186780639396966437456308677693889243545275198982980168825384027244213715983789143164443259464396161084215064941255600378890206590985080617560330869401510067021184898255634482571538101316344442209661602210071765485536072472060472621558936059010780316140436690953236266740076120823375938860148997376599917618559007428350673158162774247128478755619590425686057870532444112758690773650133798181302254948989412558149961523067141779361827593874745626441827318793853222588999377516568620393432713089156031233773382625121214538571240150742721781990519529316610202914131804856154769317926977721637955910384832415946680272750990861681672635616173899873249946528609716736122119899466717218208285792053998210491900929364439296776367833770923079703763751822323717197875877713005283015228816931105757364903542944953094778523261257278390193182335167245795439293841057980734279814824904675086966779571409353449523995776800651710848049130490664299688573156678707999996137238422708103338869991483727270149306418028891823049519284467450444972619392456206885868280231042754275923716792663784157305673575082062447437913732270376749625424283722272022682586175148079191770820584949619575213073749132761885365219353043321966203133096109173594452014128652896714088123270642371669097823857558688187080453417554820445907805345469973310187075999500681429376404041211020676567495676688642731313922782905964912989161240662780067664749919220664455071457243144765104608393070264036589380279399842068320914657178875792110016047897727047304344896310818036434540341933420768785896728069148301178566669927772161448470889043964192740763874173026145155195566190985289104666068991667733795940501771043193057708265080711170509686743097188218629225543562841642222003238478447977200362003360356530883172723946762862922920020995120442655977810991503641829345633528948632610981505590559930157137232184441909297519712189844922087608146078187375595333812902284788950294370399454303295497896308744274248034581098808599752714617036841906715485916422361524845186822690363387833610306845382746795398421837485793635723402740425156829335321580543125255328612018535538263583741619359344996145430113479162494823846804607777078682373352516201344395804873669375940538476395826103516845449309208236490224989133409205363425816745988735486567138606741264201350824004166184678600643869877737421687511996818137192992855932957321239857957305405294174403046585498060487158974172013267710097369839223410868274248670242831703151007818275099502233101432693322755789051195781501575271028590181282838020149461799566962873726781303216709685973608639169901561224515728215473250340177856863552241506031964796974025201722341140131422548380847525425710048448972854850200659355939464668346367888029876084355721117147479933589552267839695656903233546170186483341976747920899521991889519816374185167566817578108080407981667077988155741551819286554026997691188618053802096726493975224096354640544858845749522594017420212456158984626446742014302086945651702344562407550824992376570187104258842148739805992747394066814737518944940590588034295943794299012534229005789489118399159564213985523006587703008246824503632066091467742515550634479644881623722654007550791712435093148094472621782195642348247028421430885836113499244898754358802086674385303299673818362543071218035027400219090648929357306530337859509664968741457112865754587754534010160171862857285447469881451764840422050991072731640667879631857331324502061398476098760146274745801382983523680757827291518015388767756124189988228240013783695223370722223617527950668139758306575788206012631983100837899820943033251674008851869522859070350031180103351065847969569848873410679329024163838365049199712710925884605893927941524464073623892199082795765990867648676678883642894161473470253805303499964705767787991250874335355253007018933682553908940884282255226773718472141846589854887593869099541476505549219303031607046019800258456744424879700312773063016923218484836008172765697966187405337453012731879145444543114232654911435869879710926104543395332479175827214565432391637082240508295438511530267204950779196122803222100706501053784985935040502979876375358757834827835675320663043129214914492461028245830529516409595534766717030882110141522945586777449029041561751994298957573527291714025393059438278222338178790556869749565298343454658115880452190711215793201811146660051797285166448359181666492522610755869760452539268310341284004541790117796668258638358650679523927817534645751798409724221410701948881384436433542922672795659519209892983340307604249643744544710286900097655834297653653927386741923532206895178432344081345194411981756071542810625207797768936847524599413836421361486212077611063617233750084571622317139875081259582350545464011743610897886489633723910626498367920517159158051791626775874028508935953508994840469823242494980739867917393784481561367312489250749834854439335019534719356237291716947711820588525413387103119218748056995583005303336143899985224985932902854326934179265234850380587485474402713700034007692790836498751273380386861115569274894704086328386900411256400957329270458142895943643664898566088373137953149526858007138094717292945037801889453862000397704349210027135475062401829537230189350740233774900036562032569872948808636349557809770324138863967175862017708099114771425174539606901560447333766363707426804554943609478556447776783818600418461302713210390430067346963896107907652814274900792342774151090964121377074372760847350575235907414552276373766363293601976653469110401317911139858752608260045724809604659446498637211044910622412400869207466771817430433914440211676628216161530255024725564411597836651013435958991821567014275535930189335868387098921018562946693695649467862922169892826579562359848612902900756503188165499971422112903778677380204613015706184534558419046462189756931924761461136220931688198959590645753965725949262783083457149786794364348352662496369702165567294762759663707711927410840866389376799462867754147383616675055202348882420029481793448050407258049092324381930019412540863984958129158107699137233299838679464433544857515509522548703315851960809245554767233225749114761799003717326759455603091015542605992237897582037458502029411046087934444644577506857979983343676028324429436325621530854481758667870287003619555791908823730525306733492255315963679745584168055925802323151167817166395076913567305888392643076329582204508046927814082146523033448340864864633956700442398494606821454517385565729625860930755815951246826380513817455829872296237669683859684956473736397679237217075822120228282984563638707335994620242113904226834739951611548023408186565886087859874557822727350491236022932587374845899294344074874457248981261145688767491153041205390012286556576785135129422634677837582498400418805436896532900833100733327338016527699383991312942073444803610610843422384668010633618598623058197971384518011086848131682546466232596309272741294755362135560126683186943418074005458328600726264719653081194708560212854871478527584627679389031669382089154482306306007189572325097192890864724460650025179805607459951193476855351549000198917699844309485905446955455896092307751609017602932852933494978197291879222432643134419305533700163515884556176514868658350228062354718617768564207152998095627131039017457106671650070459053792010129009350440858338294110947330447548586176252758190452405358772553222077655139888572621391418407060113939654585628123395527359185522267569484049864438429016357334609922144740790668838528752903069986591848029283700229581160039302232305134185469240425810651532485659141577366854766872706127644123736555074947828736122130428373818909423740899317252069157669200599561483562975045140754033538458074726712947521155150580192603785125455246528451622038182004172360355984630921159138777077888148282626941914159776380487728140054640783829615605431772129046411705607234552029900014373604204168481718752618733140590232480460981708334007885089457757228464033956287290465122815595722774682815243539700052491820619486850881620430813433834466848803362398818030968657582490503217690337241687314406783367045639018368604662517401170298476256983169518662582541009470508795596315266488159424334123428158131549442066565351983162636241496940005108371762174339465409718145034906200725623334414189860133247634002284169825028501647246850589102826264807666554018648797443161594691466361750258986140301144104270645726230343778485375213031806515993394907000649324058362101735251399050105441692561676786687735233861358127287184547571584970226890170330045636639984521844503464430361675983611451533879572906992688219411209425607017650922721077481835887787541648177530115385108418117000345495458865103012444421276718389490262593130504417399212015339558402923886090399693515886882016302509189109286332067685900945709251074452237732052516638551561928341314489286098524830916549453413191489449055346284183685588772247428396130899199902254168235864624477057148046035772109691479743044781851602050168187239964763894439131555296669148982535283781136640423919341354238583447287518009435170012710621012502377363424149005148136321896941675730902411656555012945804537376065187510709129883643478911779494246932708721689139161244774217317788160885178604343780590737969606766412488765575657350423026609918981041431604985048832194495932048224196377785851596575432231346727293223017363761750563922883968740790380170290097112351096738760688254801387969757068181815133971734840391721322879903969437289043456480926815559339505510107996827300986058146064254478567979618231174516842831884706922716661816553677038508348900799254221513419408960130459806831805283815255992882910609245940940330374918472873141050110003236253166805381296962238638160845050120630674482729357055272339711415405735914788675387588322951230180520421330709247916416546968731987780876195643067228004895903277932469211993011217054763375477459577570226871416146902000201233509212779171772435783902821666111860260446227469351270789040382945652750420261944152352147191310838255778973692857662311740364722864096382813356273028122353121193753483925070667621427145429509077447710594435972850330853058607565947978372806196302337416035114724033221989390725826451240864723082979414773201235945264506248053270993248910844041799468915562255192128124650840903400381517012456852188688704076134876389265510986867114366564448891795601558923685260855968901873460495024623235753336695314740180687554747763303781166529716406516928886900638133340092368687696977125642853531202784865207736480715971084564779594326956340761338766912184683901231347042766246374106265598075227859534896341942355249238004030952382816354863991514020919348714265902291311947658928704932352661308300544480071915482753614311990044186832441044813102232301893283729272350247374286749261942683350235587664273981010439832538362070451067602940892695110681276051106844202887168530071756954797879474241051800903685215506828210911612799466906511972364426912754735646484255227402078760142203749387554351111444772217408415723858481118751226529896700103540885118278922400458935812170490813011967541615065529014398966664729556292830961403532550696525186949954760233775834282504508529212418249523893181728098500870837291768059325748446126871544871996706830026359442950033438960914272590004929735621476129412089043361409286617549829477000212462563694403290379599262685165549632069961918702374262033992299306002566357479778379441610107653239528689316350823952377725392762923489066689083056406499581449436399307410324403887980028896731732236178354887338724729164666257677821382120930144177012257335838682619878200686950913115420299084037216071760741686018578663243025117435490801648815106477082712230218525990123136561882282446412181439556437499642215722022513331054518788069421272780130575765034315937077996097582303846140564374720599951824531385578032941542755201182503610674141324963088370288614807426423259805265372236963352119576050753513154694856936282267728605280725969515278676420570213541536450356247384681537584557532682989258507725196584192135412777014314394911911437361705003761184984331067983224536296521682260524974502255021690216042299242336080165347801466408264719547494068706592284345230349794480651124947427230558288920085724206795967229536444541345912764212027655508273243170538579041556571308438650075956870294422511188271494152442265438549286839773565066215319792021307518069534236783666994105473001565930023176135226026828971195827737773068397896339061775030499642093456603524303438768853323233950207676564346105364059470033647046549126717399653728359515246532128846608801394571205253485586945603461697487027985950351295643020814732298418567406684337371301664816881691123526206596446271024120958872123844792404138554060905436676635193141646168928013321579202640577734478653142067202847169627991852122596520813414936267064725090761400903822094515189323948174795802648515428394310482719449927530596197822668998412842029325499415493623147551873489403083579581877454511611867681977966854075597487903290417524062185194487294972178209797012161800120774080807908503542583694197625163130837300082557234102529947951172747662843807729011648244462362328838322865454181912869795227764691365164170963426961781358380625647469565161399020609013166847238575240519335696569392863676207938349479908511264260945742148566797643757496865151901335054371477237082601886296528067810500072158169549086523055218169216004665408170709134743443199264783614302891130151628619406072069517033949552191685035062913501009981587719240356471355776101165009130694976120895819025327696367300035037694306170708705962463096094142273863172975006771554730252070514565097840745759881088911025198805331001002270219950138339234303773596310483433355854260423349147456229615194430958267265777688958557528455487660814510635255473522007428221783605399231452621929413795437191928581947245495093134058103593800094913933833859546677451260792547169095885337494652930305316035695661393078250190229707981863286908688428668337259806239448947579266965818875471350681279361006901656263368119142026301851600835396919877436822010699790563413605319049353612201571270941515233250166475673664651966152049208936138252096169632520913917320597858300120724093295206312038332132986186973048393068598114232973120191930257664945098379239085850024260805809105869858373676401747275234546530317515478801651763975850190966310306835879457480366380035965019578587922674431346135572196181601679644192734220659019924663820043893516278830217553352873045539239296398668933615887403208297449630226802229113914288806056605590370448919420644871804951538206679544655527274050530512745774336797334317227820252051770246209846769615688185543319469835230352572609794818894577433254132922013267237631841439029259945860013933886388964397924592346164193335521187809420015409100713188399288381515109478820275946643483285402776946853921387339425688016726580043665163879549681798508638337017289590215751909420478186504140949477697115545159793204871118066976651316233766739402855068511893011381639805819780520365270986970254463592003420854881445359255460013942751091840847721071100722912726191298662916515711489096215612972657632764025779217149799066279669245744780319073885849038985639496965555019622763984450612751331423607673705189468623398442269409353532020453546873231199350217060550544512212094287389005093829870115115986341657249584305002941489425777032716853429569400109416544178214939701524608308105814809179403180736420174952478635828818280543736200267956554653169574021276024842846190819429979099903429090844997046823637969932686367155001371265848292550713500537135067698996613030048116457503628298726758218543638920528065041872939504652054003782869801768394028705094272544809682599644540393967763165882259397123218580890582466998584101015617215909299359744622727127128783680693297009601087964334779379067731321839092576010915937919146145853108613866037561984550038119436486040799820937450233113055016051676820827967979816117016896392219201857198020221229104426037512856136422581331300650379484555152744929229957475837581142394840775054036627574492400066598155604887953070067283358604922703092730905553876586924321354976612255311204057920520095001458929152100606422571865782593729342233960730763325008550628401637050666555032758017989349908649216593422260410942799764989633803356189314582256872739149437934164638605052127781638102510039600768796577701757543909222321022637041555393127654867942241105524559532565979165836572399693124176745288467486137839968353800428731576840017895473091884003800367301893015364591799063629519335092210816918014588737955682551499892934391841073847438992858934854609406601536410204747434866537369340899835360315923704165508763529077691698006434378733837718990509552942497117632828746070962140960427310394729167666342789037491602290895747312550127011015101237524113880545012334143664660173849173147666981475054044979877053919452914525291511458249123006207601077462329969011847276627697559779536500286580020069021715163261130826232768024608998515641086424245071714951377204412303646104822216500173713895673632576217770345812924648364502410164204961582153580344596902465180072484296238729052543840528711690974043471702315643258092420323927802665966975649368263507475402114177516738924280282406277015641453469236413905814140370881731050177108269526118429134544125778221733196666159401030873854083100243370612626322343135583865526767290237075260216279141539252015592176669552771086144788208368560049618419217763166756845140036684398248908569162876458949103085471280309621043689694955769358341137945337628507307720280712315466643975549998906662571676699045301882225307344714318245757555958613020080343134513653183198050625700993087557080804810741677624950929499052946791019719331823465230814452340704433133257675623751070046635237196134283513077629216140439049994297561894233514503964832526811524207430965350772608449891704705280704628357232525812506950953462479250505672878478439160904365418762095599924654032082793275428017200866946699537696747706225850350081788094315476514290296499001905320374394010365594262075519502227065174863025430678552592569794444093144426272490734756075966587167511778311293414955341115592756779006226065294485653525129693514973318755744042323864609163776045120150873957755388363251846212761237120591605847778415399924618468145630940675565112850276728091334197864318820653193826519743109958495227871179920722222433447248398855114012793320238938872507433391262902901129640954273968179457594240811014428584251253064603905568434800302915248778290327493642583580607254702623482566833236000995958433980575796414412646378070949931336937633143008538671830695143102853440998422829840830192397882195197946074508355280405278724536347198482697652644428567723814204291138839773578377495518099395744863642778971768609557599531546261808937982271986006313693171255264458064304030472385045713162357353670981606896954703562400794868720944218327490690054040119593674255157251052467690092668621204198352597475857163906972410793719098227662470158732924331089447433354232209871216548319283382564540851470465902869202043146410605953234231147507340917175880933514100864751479280262894492095879388431313886322603591268692443964579316915462624324414297694000203859936032513417890142064289565909385152516896673820601862888795689296134923333161098977293932365782610997132181491754098482673821496037408986298975513837698246638095123609583004506223149751320661279729906975592729922788243256024956504378501076330138911278229192773925434673970118577978209806343482978748944847852700572959576709420583785246369727395463152095401040874161900564253105566258630368832810142152471585770751387104798110698473860850350119792763245999343210882508536900741967972568489398111195559822237366537942713522942153192404861495428286336321377412865179863774467595944478362521845171160239229499065339218641094925639840692501999972184441125970094167237959950647416537641925769515986170180034944737562225882203409169058256684965840972349012757248270901478698554766829350308366813823549301002619608229878915156601024161904934717034753593791502440359347218027162986906496186243987453944452021586819674707457831963742002284650308508567755231998839202600184722582778096429163038690903542807105656698394120451252444348999896732715778014398901412101216684777818920478078823098472542379096366846511620724307338164154426476640338428966508985694544700249454345399461406504315663428111981651704850065661851004775724098403805180927239189898586799594828453000235211255625699546332635385779370749945763917815272232702668433478235878364130209298273656605842943590930995831019463060488879289485975069058911785149653681321784598954459119971683316441645890421639566480729333911927123239358784643638844902085947332175414002056339751409606088220099954102978118758568018326515519256899175692802237201636138502210847244908450848497335443112950319885619253523366290623789374698058034842424261418852637392958749285305779982983434543026543239704046466837728404753828982358237548879876470230889740800849784206842006475220075870511785336120276554230234403587411894124029774589692879952732770504539057923697475731313717500092535889604762721554796958073682119790190523142043657282913354155256761555010180651339120813703492623687149594790287801780330496227214419009165015536375872383605390261755954294302279588517551100876556312425160580817207683506486262894267977611668596474694593640406797997392768270106854555215410886297172860482428040819162932196807039144057793650827614101269893876684365173741053467639814812924381013352053507282028784746545798681982952721962693221623095425907547733628587460302067543218667700660527959201017289263690941034507231506566474082160905046757485384124719901982031716203797649807650182328858602505528596378957244922342757135015917085812701301236234923430566420839879467397032349548011145632753235938721738658816699848381045436015607061226164896885783325187579604224683098438356151376191343396508182358422870241244070487746950035519333627181722213883471198554777223531614434963354872166169246984102462259425557243206038904244489070495842609485171997934950661915757474412725562530386206287311512576954370335307208774527385804282706800233717455425791086369514445521517365270275094822017232335391573319404679484695711960752758685066089814526282247405356104241202468110863253630260392706062312034983275503516659650064068791054387165230270652226821730204590047658067770159254745611134773929242215736168915450317351675972847796635601344632772548735918605748100542636239315699123085219882184589006116889006173589038280992684654858930493317631892075419963288141275394321384364263693217864735839632462344838009339391484370075168328906252866482982616651027328260368631939716788105292112342597297163138924079190842843757544463202027244159020697041508501367649487506022525836138136845232865746082883643190770391478455949787644634003507104132210409381934340337724825192326652321955724296656582893030657586433969690148081101921446535158729330469392676796333892164298989309143455008201015122332963433578163872756173816005638798750897742818248390668618232596339360150580873577016529474558910665025930909222804891541481571565735100192137247268049784992845808864716206139324489834696598181388420433391760718917638452177398765741753180547729849098042024051211719675297943576699878270043134373060905372391528510073164001336455426229941090687983040732670261294408968175900278254811499678061473593468168128168152072349121764117498143276579716543980475422681763828661478528975575502333031977184520781249247459460564217113760629879908829469608573591088055557698103792771348001252641171623276274247473242508660811661203025158607263321199720650908479259804351202907084200285459144882292192850101480750385547036924618380863920338159489752805428367623820214533962015637826018081966776834201803758332022453117699051417379960117977467781329473242748712295456097199349838853429540993486339199385669519150788846109962267243916874941067192636138879708239256497970710648835563957591546739855559980075608665831984429276525635497092603399329294755328069251014463789685337783675431273384380467137603485376446377363000953605668868198407940457289101794100632309236419023671529009779501724528941451989645410279589787285017147935051905392208865527198034727015577883502152765284333072214325844159718618858623457917166884320622283282734786882263934917866274175336118844880560078169908662179414677355621851493056335150684159416755279948381868699512520525675946183436721539964462175173526379418120626608758357334906952963916602928942551710977104166572854176901220824380365822515441135890139876902751323152377681289653071456580001587498393055400219148186595438213156484432332617770367868578334647963268083259705203112699833528375408277044786581305810638473631688788089678316811555623292926122136022649562011724965245759833906191226237241016004827780248294836815684590041704085681999888929688360939124606602314663966683608622319904794278062467017501963873363821715446447396323405009018121492099780266938803250623488652589429395809743530698134907938379409094108536781652181702277578625092430850944889230731376123001046891751393076266963713826740661187163445552838140909721964849073012550568551033964525001470999330313111441965753467546654101924320599298244746429851025983374507495895175732290063940502967120379397819554836113436495006148230269910185733319545919099124678958295630798068888426516954367500611760506524941994269930395816037668254381022213865358330707980616840508728341893341835474513065726790875580382796919295400122098223560798960182187349033032427357357628288817193919409633058038505401324745629693194056426116136270547393161900835468520845486737683399243387158528010304501704756442898252515413091711822061227692376319789857661767383262491820829803497244105955895987730762095783911614103294852486500558451502176174630735879029583493030475590046735711563809332844438088488110952485980392105976415391421148985460716292880949760465354585149612958045092294347514886582085066103817405859216291803459823321492599878061189877550773496215390661924358864514766563543373472437583723887818996481851849579755322269868743567037101822780984519327958171639448361010723175068822921884818564674946265552426800198727290272967740635693815406364113971054851360374145585566111257693718944963820512096370003088540798259712738386564306103893858842483092693350811056323228776182830552432678828922431915454446822186325625038849872066571392487028443963588173262402101344258829107303353025172233502293363827143574317937362356279516348137197846400857529142695332839017774792442811882829499592086388766041317110279411322756460528909700717019931281577779750761601542926039766481007974335530097139771401545122743804095084231861925391808516960898319485491008282590360192976581438446788576138284683104965652274256818664886319116017947273392938660018617668590193264295798042478218640798493568843282888862429197906834613130172525905393760694740758753131781170186346662482739012002043169481856515994640071068828766350014839814509794371883560446832226416664174704323380624859805775735024145796353834973310997520289869264172614088559290601622496142228885203747565870297912258557606860811643287554404563464195771998029815167294902622307026402995905283441584286679010530713677469342928522364324964473433407230282998144069236326960582229906494029271278387771577257137568141376239929814629384639352673385024086448115692499278106007964463435545584038239899289047312571736225733582710757789538477454276192335356505534627567973011569927894441435745225882341050671957708313364076776885692336160000604246321311766445575656203983162354592284116385899153572692265175255946735037683124817951099452340900122592199062073970857549834214928787564864953030019741317680245604273299352118184243445878498159284231419092227571265050998738776947168411538867720360293001974045110318413720672520929053457324638712699689059018095313442520586736065274087314577340568855837678861300801518788045985838534888421333809524192686267977236396422269028123879586845862403954422380127749550736796152193277425984780985541871143769811723505943651699792480663052078417818019810871074296669224483655363431368420402375418447602918106446607711917502391107727210361875393142147110802420196368840233489936374169926244695185224902501073539926736606237624166444715351526482556207071027199147070353638120708280429570981214617263349874480182202366352237862497479561849030059620234261711323111360248846562660345047335034335236886266708282178443862548517703034279861633371275363360620237860923837994256761109369387027033882652187351221524816905949514908128733741019924061677797320730097461183064974471614945950331008796871088967270899156261134067063692907958065781699754782833402678322539644022759597186861430544021661497439849651101317344379452555698713331503484151196140659812231416923416185174882849773445166430283085717354441917117034978805267678450371225661564990866225186192314113610341697782698934122892686997538404351334939661772435637921592717340919037858395367419552072087241560255257959020972748841801005914045808533589999048958796776216106463639860508846762213435031470207176646235864928626284596009536019749780209511569166993155775738300152941679455246490280689703454642881334606821315673999997788515274349398024494646257484767250586233462602287331398278996214838011140459235968913554763537188305217516117913625633475941495982023335526610040932652994623479923499712096829068096809189527255953889627118671181840490370742754425200258542693518018167978214222425734966566336918445922047460943091398261818004957268389799470936347962294912416059193848068840767194818861115471057104158755223468780708923962793201535398618942528540852062431222282503638051514980227087187460903776977970487596277463583728574999223022473411043361744297209013956584068823970052357047326803083310454021689831436658300903142367824410937573604284988397268068404751249908550103775210112856168168015377488325820489242195768203888995095423869888475355053700844618982652825020298093390025002493875728243864251513695784969550816709269020370101092671694624748474269467472714253932328768572349719936332509307428807681684380046069741023577609334186942435683072673417973369955042775263593859036036017785047417609100420349025004763163274817068134491838767787945341834623621465395515406232409158549063431672296000931066211095043527111113147060257670955199135709607468006093465889264945481439014469619160850397443944642387993110755482644712643304463058669821566728612182212177528262048030180398376969634831273241997199165702121284786837900808956492562183096460603079183829950941007931893077481994064537425212242921895416364454008939215333404568312089296964062134855634057835283055178291882889143152321953521879308758356268908979960828856520352314354817881114554883938361012448273276019863981679398114039578370068625912288802384641910332818085931658816797272044688878060844510915548270778620216037126408588143271860075955039151931330283334622077026816763047416733123150343571903810853993695606117260497058400722580277181630438037823210195040892249504907781083866665846264573527824838034854217183359900635338939298479929129239414019794518632239988213835709774738688694330766260760284022002614514601507300690746897040735464075434310841249632974385222366617318928054345678440014351480622115751321781492209864718332998551008526892665832581718137166446160317470074421153836790293271625933356669709487966037441044087308431990634317035233150981933243829591045158573212407522419202401147283499341974343603679852479969896236418233195340092808717595731534857253272675830353131387675742671050031133265324515371266803279756944514006684395825029946761596728419354772451062126536222921340387759835410921357996580825070691776249362205862564232912868645233694679971341427117794113237281793124737751624011514568359141994079993566101187025983940332975822156658997732171642980104881734843929673527141382558690394863018049284971599798762061460830513880422380440057555469349321364547307170847246021806214526543945215732423501903205781551525501855258969083305087917373331481412927031525802650251964602515324614316466624205984123319402035661568617756180152552135959218041590651834902375801513322749881845142257429962756444639066356198901246980103980886231541030840594219585350609651823128822094586693486528622607277841204207844489673385061455720316390084680887532073665816825809263572668766822682193701346360083983631751655786398487836968752427512587334515660779661417452920989986581509527868961437937588438480266732609645505200415160252460367718346085704302836185002311421241927871858324641799350727649419755325389125377394833005664490999619061986414279775147450758254224236992994112389201938568408873127476635639565073218504374645966729953883109254101448867795997445366158443334451897534404788233276191624977754278597608608780391636995806939876355718004548093903765846906086357865135180838337280752466231820769332887559819016114663177024372060093257400235330078057789400021584389206474899796908142678011974112612142670266811581881375417828974857944991221395780218425863462954252382036475227067766453703151237456875761133935872556583452568107606223005951151781976120644420345016671212965473922924714937064443729694618783424173256953905089266971275169412896899632483608042021367113136337313745751425605991465973103686811717705351528334169153061666054125370007234293831163917514505098864875374484643092372809903162600498282768388536882860332724142144858814424485339074023477744472608662775113468453200001070285697091679566075847075638026914345415342626076160103904631506328440172203424421463165902812889518838763452847615613536686066678637101192946870477711373462217166392865629795219358266442726084167055406700900647651498770387084383442754902796955658251483807181375853555907476147918818252350450505488380231111357414020296295218506959264889717032248962873829471348383128094760558555240052737838096938048512894357915233289185448789408817828023428313029760060232154285871749897917904373798578227418114021042292102964277701129234511245201535160705453654193240261301866396940222356829969107237161704912448853589710198619893092544010557586640778545865113516692603361072869430233714283967203725052484421748185300517673884055155958216208340800798154493004368940358063208801840827480232213355410243852375133033156226087237811773923423925910485262362556527694629036993840945969147015736500687297564059783770774248874905622794933812671178895605383099597412378421015756703049038462740508399377055201042993319634101598193243301895432470069851075775659232364880651165680017605543549886780676604001193010138990516599203686890884037594108762073264479217140145595001970009259963427860652128393630457251971005792394000219805018362485196055321087245578506605381753473941752413086228331558142152984644453912897945291778359218117280704792043057310251078199857805471019089686673168359888829655276923103298954523417445702229568927848911523231221686447350331112029415769593140605850668251958109724409028586571139350452202844291813772884238767473673700751257925082579851655358708919295982202141867244104883002376910858979322220789948296947943401658658205919433403087387720345895605458885830892407127442501222777262704015591705280896387004434064250698624718452439084580924157751337984551430333623007031314759684992377577643703342070736317865824314953586194913390021059948495093245733452528745374166081615445416612318852003844331545698870526145826896315945369303773834345071329536015147885895472453728357659220926256753955674275171144716429551827422593710572778050560571062068702933052258003125022581079695197526089749093759718048426388968410065343007404960099093380303775449728041650197212644134499233088661845720427517035984041795302346658338003284757782158267206857720470311431388664606002076220097550513984329280047083011731029160185708856715282905010094515468965330179238355232722916745762291414978499124153058011672401713814373600358118589064588706851637082710980124534833590401076554488470391701344408771221905064743027596994942412140564487172871076810568747673955116986331130603186913095083592670974017316623648842534136443177500492728617593064726561102116253490529340658206125598374031319283697077886872019574228365225222002307937383802206307265097025072270494365804324805887292902937370251269340713408922269278550499969252886765926460853124415717623571177557658912863557975463734199632706961335812057801386955124400953505436555349922307921490941086375825152446359455484499857321030856186313673784348986507670036034035714084084902633436875859204121677497867856579612303270106778018161406399648445822266838375785449359590889393644657810115850988489631143252540982596687998893775729952021541095656694144371598722271681459077281929484229476966075476685394893528527069646342989841726013357290013670910078466423003785079864694015864502555025844375073624836894822712434339800169700229223665466340439328977898988744529389056490607516811890212889603221427174502952776859076054154865998232950333387669169859021127944165619518474254853817422362746112129236706599568970143890245551939813313147089231351485216443625289648467104531497343567826402223814232034524723978577430766177546170209211417389622898386780376181254876082868434536776922273452366794851847862290255911091509716940861973962887710987589094617637781699852741510295769167334264020985898669080182089698146618149700244405794233558055404262053990787596226785536676504935910617933010417917356680558711227298069215718226402825327780208720986615043996087711699042541353222884549541838025616219054557039716277210742675493087032109602756068461946553639535710040521286429440961988668755066614435899022967083035092580822845277964904588467899851481005410862468389548934885723506828414062512925131152414336415512182741405959961694257946605913466010919921103791312949507477990637631856752545007989626168681816433066320188705117522556347791013303223291457107260473461282081320698102514202205222921452771694542739247400416908079913015761147305544138199609722750672853843034341284349872565204599374419353127962902560406210824497518941278249141240828225070413230443549951102292747317286478482236459775957137389872009442584442586162532503109759540940804174563173591066026270208750566191892344610297497712455246674797108559090120430396580164250347989954922094517986896449511738557764334840565867873781105264971326914224634455074457220738667060044627180907061932347977485442406740775529902461787538006450657310372562958389091472804314918728446151548746064753413694824755746536988012664101826819656876964185738362468405349066173965275658351357981218392741184192130287504559903037205027338215113591636989434668330431705719626648325532495371956132642461532221367411222912607028102600595707276767346424528213157223176581925046478191111509695067217331237582787404369632509780619385105864161995388297557711901567208668413232541459828793389870841802269410535587841643487713824116907094771882012135319003665014757536065453653177539517436415866015586102159675259840731854754223245981086744061904003531554330004854511347803624600629779385938140194789956787778974377081038761009728356301126597219093729387884915883055882010169763803438088303251686761755093135048301257525393176733665158623073038733891531979707259710557606094463083660145511015006531176936796901794399759144380571902911524460178540215886435284286716885434275130808784892730832112581793596775380120886969039576141265887145006469173592894784360157057421019973710660108122922969274179572411224636173540290505000787685790939552829564120712190745554810319804658491528473693400495038719318775519876811269454399721621778582716560338844435027059004131929815859737387369462180360391458483899081089821287498982473221961655141907565285993449570102156301602856963587718777030237137437764291223272833639927369539861953047917343270596075456089442335469773422497258217993137476441652708235203141039240612313094603914897206492530058974930176641711470347878109005004702711840005248282736671907883148077040095591375278303943460945043593087287920294889235051263835650238308002368155608795037447576411541552777030605419799467737500352754670115807884406925008602686365559794583110754678130036438996384294519871216000083158615649597606325961882467903647817434914626154456342424689178533652621681035986292799853021088567145733320404628518967579817402921893237289346361972242031963436297179679316431132063783581017026286835277980105498924302679160170546007777394209188273515836952983485798620949140451884922350706995785658126606908683172226194537661204986842806932411503680823383046957863499749300314520903516352082385942721261032916560424828655149854490903749330833598376801623387885204882917411940857515326821355507624355078486001956757762879524720877877303487151228048364790115138122304355259235467167818010282095147268972750442401193842769820604675828609454026295755087401619783724174449052091239077860030615135258711695637454405165891560833815078263427790498627979077537476801565531607744464992929264620391001843372317270775062681126289903688576461592028894305206818819849238165892496905148139665322242751354244102575218283178550005515386131599424373895817841806108082724243666347767164008976952512659602477895230817707905303696852354336221619594383852270246016051799568249315787666400027348167249820942680600351230736018907044832436894119729458151848692918226755323987229783100323422480496162409538414380891745694508958157831103389041786262344764299275438293649092968156454823989732582065378086317359295282620086971521119168350889324533736690759349663378682926907659392579527605390902856024186832352118905839457885324998683235236805324338885459831721647246721007645594072470965370382885944364910366159587825843515022868517075923366367591544251947693078542565273718675694115250710802092885540145486879405740967490340508315944445994375259542809108227556353742935377346396571847601319627827407677225801667531354308817735517388359721526429193958992989022363859781087942008516371974047220225535759358290359036625520131821172206170191360152942095713346926456944938073197951473065483920438158508321292055109872870037796224310501959758431001020579515013435365097639644416410027650352928647191390228415204526758374613530802244584296653467554106507947176696825328805685112141912005101199935993428038634203443942242557748642273473400309189023261219643829112236372695216339419992702169313732630093292733597060986820435538918040307520430666232539340605599254817152645767428631936541772960748996083666113046688463050533608884494232463688457208429291014524807986109555061079962254524080789242393984299562744383296643839118382560914536598047393165058365942009559474634193822869997397328164024461871309631760540933161901075899296279387278478019526021277141783380621687517048962177873436987249135262199300745928159637712937100562926785620106260558761879389352444469202750138133268312794233316864124083672418733504389038783927797222203432949523010509357679741141396252093531742304834341217392360371007397538419181939580803877928125094293112425299016947481343346407474189850673354213138102408292886770201898446537091274857841925685465786332907082554561736207699774168777297682936996983304402343090440532538591495085609493569155797582401186302634709094015660455169689600166971803206381113329267568313322371923509840150846232192966860389229991438356319549614558454449603544866366695412471211541746151301500713541180017078968853526947210882392988987455454697850473331210013258444737390522325571394131308998518502120732046478384170052029918165795032211654261613045387935380628067278837242474931917955961448519942294348882407080680371715554735619666811075794805637418836244504865862200910779064990967382142904282567121323271179117850992681702360134541406116413801859365063220615512956216510971176617750836577807726836100417250882098125553005707352442816914291718169723199554451720358792146840408731468734556191198106750982559069784687257431408315646167507723525976745646082029994530935993210237778996007263458039129880143099028911207943543719091859255488773098223514439496566589439312802452743764868780724954498692154200209384476694041123893425764222109910019578870753575428005512124791991585710919784069316583832323325386508924699692032596300985850351118859362687230946177850538344113210967626057208576638380513973112894471261634316470051848571608362476099503711016195443925328109433135789073844221521370344479897611753278226766617161104678537975439808182969912028024844118653670605332494759392865880015685235948437414876549502653434065997010197926513394177353166136792200607209937113367208651639057981332576597357876133359497492479214947903843749018562274182377426752646158241319354521269498087693427382326641884212069925181944110756382586608177981186036910437527595938174556185707754897863746848502766827543419888801725820100589561642573592276862654193412762362408527904003408349466297952538973127162593976478757104799219823231731656601816918815240551122016085321243535607743196543812250183551766663431941352207784437374507947976019572304277515668221222917447733486762659170222228857494545235106492548221239085751208994643078998459511640526645871974822592663964980047653788412130081394742067646213753310995751129609358419086298137373827074613876055229534410134911465658842633037894368922114428175293421722439042348967381983668888078114575259863918297477266146404255029819896559560288946836745004816012874044325357431732070347740500344662595582481196159873437124998040406811804927034640020094045716583883739884955963066235400332063197504292274067567657365230171856121090667517346893780558421033523841535401546101458235119300063808006715509557409666877205301075863687449506556548161572822184551447704948491221652166277999614603974159707629651281915322158148864006747604528514163911170151057435974005503565379046252180180575856804423190655820141855776316589561820282842365328027223035743979691242299319927635821510701466630865814385411953603119350743665886355486180486001677063181456073231426127121389437531021379578391838749699844032702411773715502385966503365169702560707463821463111303732317293477524704650655934079143225426606246145598903147097735268078431736141056011330112001143076711207010869132868501270274109047692153601209740622390072269932775708864965512034951410257224232232944823498976978903518529397759421425792974602089513350239707107144207213196444327077263011707537444205638928051363266328488180713625622019774447569650463209470368139898588691786296942940080054497465370019822053599142990249488081124004049303130645105529966416832932302160420455825042664181760711681339030680207507296460365571778448917959291838161778916691479242201043313910203248594902082896971738118610775858542484246230686571083142208070279490240051596580279059085079423047849059005964709183412564567936400773019720397329887180318821784097420940886422656011323734978903418122543498409888578992540040017719179505920166447817748831798159389615702394000231674777070983682793990445133907462917580575405327170209018437346024435367080665915513164927531494213385982156325616504591103553152729525061408470522644775431893629820607798872924585944935668003768328590381676742020360966738567253849933282102785437285631386761000946202740474693309125787456892712712632632031018604769254875304544654473679663140693603012063868948932668342967486925625798108650946711856737933970250599671282362389358236116336118177533788013725982417743096465048656539606065433856771652901141541726528909048891801884295152582302562776572358999309382023355288348523816101030741383350140460595729281024297540958979921190475864023605819598210564907783816367553323758641258725477691262554784165175517909881635763469582083618661039283282567654994717867205653262521488957030293660917902783525454055357030865789188789801798786528606730189301069613427944237992230960104360525373858650644306388003976298696523317641149614178077447065031661060029002841661207168930078777833959741913536655823104213984718045724575092679263913926806867352644708372018550294550417880440783699683402866216230242280096902132720653915249336473885234075220624289008347584426689317265599216392842360062709568139372070656046435522117541311566033960042640678480271510414594850858547172862994602774744991328997387579096998045423433823805439806919019713001041696285565382392217296509349971319114762954260751790911065107632543478809777050609763083800842788018181064678473864385096781702433347164500978468795475058997388745778307092590339510879812859708591804903382073743064507858271594738934183593266464355524880825528642909620823205283543549415598269850280223141645510442374766074400689872928007138603006421891556638269274688679719657924011004100690191057015012345231822455883296751371235880591168390082034325533479863440264436594016682718588138017318503664253129603320702219166200404782773484220007399065352260126026776692138669008821588418374360421885972391409341651202064657903401274424931772457777155045199428752632313552653486739545514845290904393835011553439457984202453185571658567870280603246538892124826088677700664321157294312066658620597165040912353702688698750492429858367691046625467231452685823850761384984338799318763762876531001753156817898083586241996083055518988065086617184706185989863460311026384936742859552130102718906005264400749526155558855880875938831670516451791142162766814040492356318885718299305887627308749435941347752707813036796472241645154110134342462935292852652810287763019738428602377040168262716910452169315098524110743639925701690400756562495030301535621377076719887102147212818182166310841236842112354248707803097666851400969271196092374981364302690317592169099407244970937265370569185868567170339877080270436470986351893898835451508294649699849534956641070469215968342743824464308234701159844369239297467795262738333242247241566584435439905236549440399839858870507402294972982662444055914724739923183639210465022009850165500679752324352697960957650795910317523779088426943851845023718179695191357752381238635985234254577868269757048693260083660374941028300595852004120795632201590942129071926783143078810931348305112730184733239486247160973840545845665018080319126716133055933670151674640948469316071061366564559844807818779151961373336795542067505891853747663057102544623057850044311073843076098121039652445526954088229421675452959488453300622653839195916167890061145555216738507768552091170895429495745476409734491856111286708198649140788802387166343460716450189167493182255540236752399184784666950034239863737683863487591754593567638609252038568800033668886920313554402668568767527998811275766396245998952004904787381965699716956420726870661255369172764062725206841934147064949953678674436117909304471679035735840063973178927759489938544385475988594035916132073626317065802950726537453729356793228533886234528851685146971004373154459916568122794581293660120045457572807445775120030550282979068795419895545472178679563382752565928391265530181965015212575748929456502878500424470965998476227667945714603464600720025498404438210291106099254872049573530785818021644408941643348674195666866508780130950274496751785806495606188947617122826894888322343328482314665111770824038667042541844159663983673834725647293309399949782721529806145817687476513505666909004773604469212079842858803946351475435310045448305731822078792666422001093990276869631108961102073731663455042312161116564614475257405228729637067725981337531115986859933576080523928493590958206073507646149368825815485309059425694954762153583242869738386509257152674231658774235630313104220989564096864978058031402293085752269261539674467779606398175485568978169659610066936809500659272828649006433365818759854888041348201865365623500140010544620494986688882604994622343580746744841871786481604263385106555865702268873933384966603159491602037908971817366139180868449890736616904590927053231907093745912800358778093013748780522364149027603672299251708066790452507665288357452267576861937783064237407886921592820687166247634609950001512251449077874811197051347393756688490512462192556948648913363420862397017576695328910314342389772630748053329806502583840172558035381798159354619029714230753799800613377171105860948416978051861019766637314848931396034150268668775548280342549417207722534186272320821404625513471889064548771160958996585652612821471531990329649955925776721344438130982199795819598642396829993235800762663068117890984132519509489827189643582648044153148874670146122763025560481077702906469943664299599541458995911577828679501087357635641489745041357027547257638138335418471838351479154578391219023116104883574244439164756421057950680030350791060363197489918068411259262445190018252608850768174754229559382937802507061201462482992446793269841317636630800314526455453210741607732146133000297098711969445609369010404204659233632537950780383478406087811021166115859985513890102477811517748574879509085298509402424446654315446608482090681989570974960955474739247596157988290751938632355603140819290096699731002375361113591701536233788621369414273584792983613202290977722885719964711474421485941978708224102753493945344591386607346770332261614729819999592068093737069175888027504437509017489729256604524724210531046511324607299867627531055166628766710702602638636463141698210912089984842601830084543272064969093701033138256230044595292052803142319265977180983568182152298530310023179624962437376487457777434124418502881677958241074769504998646695648811709174364498313308256765530599571668179718906755212073279199239728894553018207129669521984682832722326956235858988691621586501198286899672054741291919982058474406555062368263312943490453734397201927597428503827785676038371217975509536150225413262849002451261301610426931154656013109195935452224203186884513094102263949936013646538190300736612431793115009147591597708250133905971857385156465186492163535773724353539735145872574112745029672927612583406803870748877522141902275952307510428831145590535808635938291053927117628471451098021513641061209614074117010609614181317499093336384457583018076836334467318429028664829289468312348551850148575168541904263744130247041496516816663348488833044818205660426197779341929989571417406379073105368177322003213407654021402622226253870758061995952914151107100043415200008997252729577446050094923608124117698308616922821467086117608633037396439922088617492039016652969494746986746918028390151955611814622620160548114289199802960928612107431768913777808276145065127417431562328087482014728795379432276836289102788102558155727326949312537152204718829350990640186298312719942705179281615620961712643873004303734772834734034184710129168526081503883196461430312485422425207105804225974038144680876714349156536317879946881995073390359251351029694360699940095155602673626059723325750686140745279638112038522094932522032751183089837728477426565650595636184705462123857093274070003765499468440652665671300792782596324828875212309422924636060615193182274610244504428061331920064518787705006359516986781496154815359244284805057126449089779185297856650747962112213793529202486496683261735201439201082252389352448659506474415423612742343043881241163466038509287677752365647139051214961770708734199502862021155690148214860137990106462465569232962152604332981324839426458973105618092832734432652385916468734537911267211793020007599782897442067061900906458811274363405002838423772715987262583316745371949628655416480389000851532168837764468440373892566648383155438420666080261217715493075434017347897435256051891363537402033401173432833541980807038284676655100695826018603376807618427593882759899974740213812724629260493867243961602048983270141491363588926169336393235569250921411880404202362131302503849511476947854589908064338735307707053344441164365114581312707812688060861736917134581112271842890935008605361595531379783850073356371142642683612977603553132909134528070242442324966688637868188478631541787176882103181975841361345247459046983356227352234283616845553844001650570608921563346004977153572941390909542590938204079268783401381674902644429325118026725371700363365558635396053578879660266190220119017685250795476365550005064208155595345523870828325066456819948354311394678123074920128211169354285201791126907153963502178852763268501124182450765984751745269866460344266368268388848348465315461491364026199460464562649794003891278351060010662157363879154044509288860614431024834930455578187241325055272682573129923879117530436862805928334968388379175573133951386559759946664647941400525754015085660934849114973032710910901890340304921829011205084168076904144050920267095872919648874770774129451364176971019614115589923654215552779364506710150045468268613748026841866898137510976119248942508516837812191430862658356879801610389674980710764283652380222507219685119347928450737617474352398903078581873649159981957453013674481494346543315839103864656431732191364478736487253111562260745683605696726607208096276078339338560789966053225796089107868203188807642928536823951450186180738262626106872475346751223466745745252424791551224705664870098126713005759211170794775544232121844203798584429630876085358229566821680668577369418642313734823443815360385194775546531549826431306358924627349597486311956618290149776943951325969136987701765006456510406242495112755680544070610023312588005741869609064596036415977466841428239738571199670178305879692386583249488158820654203517455941440518804646703269793503487033053248341506113902212082957871179467732283256476871222264824018822968451840140523138909634091565963325335303272750023863615564700658470461258622947517762244331273716011623433948772157828335850884314433434846221689575559821399989792504616231890346527817649996136614481594095406333550946497036534061926106560266901431010092839637703206580289474121081599396063307221388197558589702381111875967661162560130188953542963236609347077611936771610147601501287477821399475646376150844214870765797949513631557646066141100449838418739518055596849663561611854566792383031382349693337351614816572626916201257111424731848070166970317123348458615292381228486677195409895792531407897142569868039617387199871429359953941214523979945860222915276805480738546980005203373739888197458993366858356337929461400759905093252763856100750069750258231348479840658585599072667413337624415836141299337105839464695800186244430842529477167568492322622098073941808177791772500377514911871497113321668902545601653647946633322577292912905932125219206506738579699483240024006671890697824054189139780477983876822290987986670006984253209703705650744594652017862231842647700708806024168254327756915095129463115205135204748953857463992860409223393833526773468566521814907491951055510701687110605242720754088091413856653893086410815292108808437917530976069448664963551508385174917844517324225438357427755787900056229065422155354997010693429033576300068651624095958939020102030813848354721243109868246494034878703516963925367320377074597710391013064975658310212967046784618703281193763455533843384270028954344095881918473381282741838547593653728839408672084400682373847409084723396775341284874474527054905775049794950220848673521712093137425039218745554563627766992054469066660509904989611769809848552511748517704978741124762693144801676505880050641414941461254734270483717704521481907070567814922215328938559689568370810487626214598577425397168087439163636457890406838579976726705478310215836378947043485719774860889565414171746743419574661949429496701920694446562107162615490359786021939834343552933713624152048730234893729902734794373564417166197069843574960253815996503952392426111479196206662859497857022785344062204281221533931228962008746600011421081346716316164989893792264512683527156208835180292105226182453121948374115209715285222822494916611900291903641713138715103647662734605594542663200805223076466210641634358545932964887235994625534845915959950630699809526712524546825792586696484460120260217909201887315881876200691468001706136871775468912217753054299974590625473595592837515399351637085381006626494584438785765828754178213861717729143731290801530361758502693444643167695821643974534149384074278115976111336173862058703519702451689096573444654503607562982292586813554297535094482295771532466720891634888864103521931146641972939271792455963683110830850469807168138812563594100568601273772108305918953256182430123138962279635479637152392154776125844169668014459524169950425071957109595039252000727568147738374248955414649664125267375949185960296360100755403267263943320871733246303994003518694221084583207396791650610325207573062289319134349384789951820485964370602133447420288541775185058725809737494156243651070524981815784056597365902072918205037154589083987969743403499145193809984360603030408179189566428022746157087787820664704234820664167565551575228201301634260535559087750834581116954501905939360129928394913433134746757610678962297389233187950460392673449499250809747042692556063425119690292099163468823854578149068734425421876595391999852111686933954695698891951169062495106946680015453458481264020500009418796179174465656981409485252737579631725282552955589710540169785514856274532987360031726441817914385750225444592806841443568866872969926817065371315695275444703822006866570737152722373056353754618218300031997549653232650511242700761414068876112564912606909807685925405790525019785918061576575002320930559312919647504095605955977142014935864445880375135108032046036952540931502149030985748652280655832517955699737897841988810636786295790672962358276288782052255710697082230434313867724317121772764014205995135178401100545039189315793136674326315466185831313558696917761795774314078406847342577627212807046609338623884600464258117707219975558218132505130241712084905028423684658559573213735848863028777345681700943560424692988677232903313864709081878501309075447939705671250730527518096852936578855148607565992998805773399116315925268069458544778861428933635767869092441175125864048684765651533328677019067569294790907986837486110163655333468346633975080455922102101986826777763652906074176361939455399275060600143343911607348286131988478245235243141517588126109200957996693566975802200316570403795245327229340778468743664992056497772914733549037654762073722617279202850620040191897293631335866378072548933415378338359294834712906483672350800239710416980274179568553805059440419747253241029566974922431173001558843295687974542689793554151905804429140292202807220619106593040673948463224529455383528615540399479145682104701126934298168289721196223689254450557157303406220192952482919063433194668501181219203605842736669765942971679089691070388426326638826300736390311450073169551068992063138601376487272502271315071737674916310802926402562726127354354387267275473743064913727029677530698051307715431497681147360633766075809740747653061928710828543066483708178234300007148815271829175476100141569788835588696963552673030801306080192495432322106218288409153509889351856960459175824604224084599831946086871592429626189436495274004589567643098269168393334992057301084965986462172314907669171126249600650246416906448699170991601926414070242825845209977856265201242134909534488790886509560772719679969883566952564863852832383342844261895432348620999290144443809928291878245920791922060358768831371869200586652517176856581527330698197569662469464168395299460500057027449689476008232934205083476254620634135838467157869553032433179639143672930231122278314161405779630559959060102823670777011964246053705839500111735620351176732703890410651779663499948369003916135414531546731766474523240031990148544050229559883221286358176454770947984083986370486639242198843922172436216378224970983158709809027309561408847674366464492697980031478576735626507969093059310634321265760438495065217620727447138623511157062033030824216737501077187638727380843923037800961184703447562721316179351218275903936533051235427946839603459828338431837048772235400600185065922528767725785390189893929181080776092682189641701281762848050540141938037756227046142175848627018600298935236739168241054781132849807037078657222858272000406133711356317937274093766340429636754565436360077036880834445307280136666505471303906505147592801372041134539639497296757077898494472490834079455209346502181467793785002748164494448552613516430875028942735212975466035987722061148856893023645644473340435897471030427777760552504459933946433717638915384372473581173089422000917821010827141163381765463819175001997703635818189004759784131702282454346669594796243173059288152361014037822076298306216328336891047408748083466055525631927783797791898018430899733848954802164551453574196825227596135096039601437728882740583574366087912004982378361195412871079972525024277486487810515362048024618587574874947531922245539194042961561263300746177646341500290976551591407894481601311341326165202710219236155151852405605889330178841135057533166818323129973219484723293562496781332324988540927107400692326859901597697837746834034146511211493647488164956946379443234258453642891005045821133017154925244048145530636010380340310603461400354884732362013046186480068816361552149934493513802826971128725744530117488674779856639253370682862281319258139729751931270521392135266953950185842267697459670006337350653707214691178147839742981689808615932620037503693237188584129339512110620599106481434165572537093278657295070273890973173824842824572489974075371853855337399301881230018421550146553198157453019767904928270626594418677838924191736129323848487162311438117686796244223064086434491129188071871285186306842240795437572259239753445314191412261999336521758482155236204449835077346980731259741508765434085186700617078752696693031115273412460741794751299748929890423812799275121904213480814534111961139966023828296419850538228122926417631609120879798214174126117254916748093250782868069620951475531054495178922067553175152154136679974267122819247010754845814796850738176828675644788967980821324544623075235847845635381562591536973786987969066776155829020175494049864028503012849133568360775348426279720484745264079355363656674335681481117625916978119143394254928031047659597285934512344302067048866346375086844828092116884970781923907449783630984473835120980477264440210373336671974687435007908309026045709504967688792253250487714972522260247286905626457125626226230918553425350954385451072470020273098925193760776369549845996730945096284032577703944123197365398965420195903830430821382335345561714914231558608742255812995140188319107579850767577673620272417615483203963486270109822888851247940251643566721786165216419357020615475540899041770685241673571650223100268185037764090728702895833239580594704205538213625951747484391363207886038161589519295942326124186245463018469145479405560696545873559418582028669019724396482661621944139003446315100691256135810511600016157859120303975376777251104668842820995907497989784699439881732938635324038818657032259552959907606418659672469775358465497124135615298323869949683252242595773229640310997336078653500013130631817232817729759793853849694319562936258174843286350314751445622978054478055187102700176967009525585257115452058352530963502718366551099861816922664724167035441611068207052285925146119181794867503759431628388084212072676390703294255131264552770626091125294570268441992086719488246623525748086062267042722228079906983289926289882341434711257979126664870313712003656755620205350700030055515484565094042098078548529061514814479562599111825471287606895473442650726234885597229469417269972962337168021498616932805165296663965652872360883020812004971339475129758794332600025723385437961527001562125931168388142705619779134520196921143185284315093447263350450778936867872921473261583810793828132816743934197109308896966244142735311125660673124303901950052362389507060944507788018055202409008790066525918230164511297094617587831602521489511503896249629199449357423200769195818784094865592713922509798873330007481357625885752043902973622912124993390548891129691022217642117948432258082205041238504674402920494136216990747797997411462226908663437889296655151348635197055112946955738225231543238415382112280259898204712456657781104483340507843877835405856308388486484193593291691879441975032277993591976523041539302217371549118912794255196161817089043285252011623083817162332957175484500057339332677525880256348034839504691237025057378433806775909563993540576964073483050806916947649575002471234611804702455091847555303329399216089053885971664544161397289025321381033823591049774018525989866547123577873142924325574070900317044158961225400155305716762119886682470194500451139995058880380382585101277164417563720964698401063282784480473185986572754483825099202540491328354573621586576416390145924651283715824415165236881519560546408419584616006337345542042620566749690533357483833324094533456626651028227484678644885247031344839223911708609548233232128539905188018414791479153487416791166447245013475086988419076502958221916875354772454642115976659682419664320498487117480811957019483729606368030312405071702617848561220932229950095158461943505740324680240785384687160731774442215922387184042041105121348905150052030450698785092944173298832797155611324869758918629422763922746974246340924265498264227401273172628424714934811505977158588073842961999271059658911498006797263343172854948340405256846834009550400099847607821522846141932807130227270827128111506903474051771836807772088574806892008497219803792091956157444908103826024574992918194900865996212977290941512216253231621776252197467186996501634197325566231336883690450171989562601852965923842738553365612325078623666068147215850139409678516900174299568742244696214562757485674487983865245672930738618773761963466634330951491191440939702850297394824586530749132192088120160503120855010234179631277843066178993471308784825616583823484533823821587507522882201513493757268723743456887201434443466435481864943470172966866608997146631940233023300373732650728494966356279369467006400066699205188566621643692801668908950057836080262194794878764840523506653943670390237767477826725639352222422367667955301173711148507385388905775666350523067397442320950246655338077516533424176771609747880068825366187524785023068186019944918343739618426036457096180606161260475734802230284632064526910000155250816998823573438525470879767135913654267155096459692820470595581312264579484056611256369052173429743057137735799056120279603948192070996872421772700256844017425351511681109979115595368878621832182893553265956175241223522796198264056736614047812660403972203010718478464474823519982817861016112786782571007142758970845584965653194906713322606278909998669298725095124607564733364827253125455210595103833942221805213141199802537336400777840009679440701074004831030646668347737507872467624295100601063068435582473562449053976140727223741275155534773080026900297027151648024496736984793318139157904941471310063236320540103358984613549484300092468959084929486430555791621760268864159698341707174013802332135519386605167500597657553056942121578357161386163338682310045648320564168327948948353053385359550315659489981473823647856520416718076054765680644419016741020289402551391323490633843581578758247064634869102284196326549695891773942140109609340379557436467297927903666614649635516818870345610000521693036282136286391050790701398383407210483002777442691099442830077284281931803164438024142703155491282939167626898246814355543065415047230863890726601756775469176220045590093991830150197367711509047449155955671795029748911213531558156613712426729690927972311841130732432330504386948019092829087087903711208269537496253675952591837891371439643824451246195315791768914730087071177529940381523125090958096465051453290088878973506987782941165404808003470555698659952054587723712657528836567142795301123169736991917670233667869623706306393344885756684373898932903109525717494595404652413602262920590930613426092906505458147139295840000003284355379447042812793315534218787722171369030303409530299237518304796757492223502824576042294492174167875120927089913442144917821063098620735980474692018286763066351208683944723417322507442171466896653570650079112366877437937150203683004205809327872588443903578057580675546435687185813266155104136953023521715086856620532857093705137471667026407969757592680063999562076996709553097498852635938113918692233290705741547732824765632670943200088653706109856308866820185363528757195711750809276263124553443701275637971964800000357824888956940846484863550581885858657663489919931369658376978351380593820834347058488248828209704947021901374371917331732240285399639684973900818003362357082244035395058906369278638062945205593336806643810012401809965354206563194522508327750092102280897590950472435772456540273989696550863787571335244324873676575592577895782144928315527775937365246902697892650765537420534195686521230378174310135120025017878428398571535751572552514341133498658151711198969760740843263954815630668135950199606000847577958377531005020082558959269659762245461074081151058370607537020795447950180065912876447259949124735677959939933014065707105230918785296169279680284623285249615025666849528584862780074050385311902111555279057672512829180673372489223685069278448309651967856792996779915274722283417087401377974668281403433216544644908377052092011449472993068385894140833241303685259092647497325134510610711022990421783297967242138924983112696914379979675148412891075226403882943630600975041006682288549029470714964915075577130806272813613028257557083140838143641881725419024625173510104858720332394940829725029443720700298084721651278411769178339493182086128241893122685538287661439007186186704075023710495698654713037274465330488139650156912067369187301068082540279976936212100709796616374814648829539010697565298501127697101133603363734246705074369746796786772112223046252509031974643805572561971377356121114023253552781493731032686633209183002908961294704660335639924760803723689372247834152011419236251699239119968492175619159547151072880271412488619783935267467442100932358440123245333657899549583217608904434782410848845189768039369879656092566580411573228086765276881225989461560937347252333982871922887721297385363309247066984587441714994117396713855791631419435793820274260734741597273584001691235084901016107700912116441911987023111647300468076830006907634119977474830844810984790779438251601279456479585212038077770127404388920889074608195971662043010483609772402382125866952622542811462071978631225855124185460500967892163551914184187326441085819399919225723412789989346183247241143809541080072002335784947341289145067151006585356171777037207046892068503067399161603583851468619969789584761364289115502935646045148319423007020641824647388833047473772508404463590093993610430779664130198384660150862906711997290228015125197949385205138493226730706965415962199477699950791821786874470708314384283020851292363267471367187937861009943819750583812453029508330799246580320863143495863535676501609669247776218889451524575082994168961898411990060904762507283694018650594828395680225275799347917140136299156181913980120963211242501357691509025892937908724991541103626111697354295252272926908772319710303633943454091795751898474047399116376618687553595059198599589911210844536509381756456608964409610671069128406270655676796739903239596875113598353251050398444903669426096051469976723712397887742242786917996207583292974320700298453832253726385497975267024786712414120389710361267590282769921073966143665413095232185922344181187268267825496546521847150887822084453859827540964698561004599033474620125700223297952644632178000737894659211728202181669844972456920931212718796298856282011640178782656856191342630187613118053112658810003146440104563462638156554580012941054590698518390572456713461322185531358859567006212820035975806558176623473005883464101923935911123259141348526635712833236853268501010558187396719705069007228181079444862304675303179748954892742958267208220119993291906620731642790424617264126611008771464073035437457811360455426550108072825435799361803000759454020016453560944311842698968438066843843629354256978308054439738557310234932255534673621493799739178327214004264715012331254642675228145559030325623695783945681691899531544552451487627170257397928540233076270748615861366276308209834970064319565837226009481411329483561243985756639990376270278879642193905179128979571344885576065886325000186469409210918061178553780745874582138939106667785250297001031981257273718144193120180547103278606300740127412101025901244418147816052015440829147568062787594203065731266215302286250712090177188102427688616097323722116078874583253415174877880439581555071698475093988327908791193130486521262901252957753889762031923686512848502192916398073805314969140703355214450130254781623810409291781848990616719482328407993705161455237605003852336830817871405173335660646708882914212271231802576888382891913577688636100990704449120261412029071016715629445688707678435552959216559312564762507759667106921337341839561913527011281443895390874882159026619906761819326248212422542997451160402672161822495419943901449240486529162808346909906370870853007366354440175068284927407937562007415103041303962339044361988044362598375881621259926296518398355589191398420912927470200743369360081302984301331814349863064614030671265221880276840662801236911532339662774035477009050781712870289732815762277954098423807554023707389217922955219881224000409521938367954954989906302418843967594927036439949278883159232059490668792185046013180749714048981653485440080678507549102685223930621279156133886181154041965938461498243923090417237727659719808483480156038794675853334158856474528880609330479620286041639614383669798334229446587069442865384079711242631791008837712523642988516855238391093869725060851475532849299458914478998536703874592102921753179793508027403575084135965519835175590120904192452710836457591647352659606576428768416367813699519252529104262963552886832520660719973911394337151958739323458065230552421845063088115957357650772513776798201890327820319785871594567675316127945804349354629456115194629947851988326028429294257012556152558765302646462949464225587429117260682071488236683765306758014184649655933139995862084505801988557184997491049397410134455854280625170157502227308648049378488787694131848045756694760839467527900952037039215774475481846396874283308869516262743648922863238266149770431394500812795573063389788181928954277377183771795241062942098342311905523933874836184049918837130588624180575120439258530137106267425162487956850800396889640698531842427704957484730733663078634675406229610824881597752326820993246017193028539972390132597639525229537598595281945718998533539223695402553097513614671336694274355406486548356960744824590863156302591981341719757892478275638169476154923878778058457288715339163999670511031662354158539677798076860009488377265706752053230392809541703760467966198452115180573786996751388885795973536626685170337170748422840432843775095570297724291179522498442493833275659125863746064806875486060349523023709254224336597916995019885026757706837812101304647408240053966827444478047592190961062556005628762294482317362064687037702215395477079782663730436855459829013145630152712864469322346479624297068791636838671586176240924400279542000158472350863383324528838137919749582959168242345325350844476069262074637994234934666912133984261511828914661556323269397472483517437646814606776337213463767095017592194027306698184848479769204296743278942433817579039848542806341803871335704961708086426379682168031324609587029214234449009075430161480828007925441236307114650241815723907243745116292559994730966918173483685782998162414441910339832691217556931905643604059584912371418582898154904442660770018119559643111925134074868532619139044664476556288595752847097080159019540474180994070093897289135846701834207002685260103771209305692641384814597619651719990281791673521908889184840387364940878030106010778129638850071793524090821257184470410450759212427497574038314122241971664759434153459099406875460383196991278637482272149826122735173223470588794625542541348532060519887379244445404931063891440103804662308131615607495246871173375893036789042433077852399170909031954595918825399470138943958348420930351401927509613247132743465164102414270043221367104029770188060845321248028357122970488930432178877008374258254344986155694526173460331091653640287354801851001765273986319206007804580725775941512902500898013158592741917087487024932347395063092952345967670531496893737629103019641976565215070437308094639372071294142612067521349674639809840982492465597273729525109999130009376329974702276581601107250255176006968044328316652492173031418735607008445803201557143753533518220577734199794476889231212109404099190132842891125996325343377304149851978430261052939089225527814309302373154953499358634867949709789709126975510699577504004763283225329778259289199526368632497682721462558955474123624058914231158215971361122083794842979513207481798225367265778738077681943956043565429384506493364216065943891918075672423415575990684647386799396670242932009114603832599125334400392467129761680332512730104120972307080751542489149750046276896088504149136353159007067412141970791692604623532397522323328441433862786778225490480160177083809648737254731954375112596800041296287297110442552255313251756383669298012667495304574113456935883857729709754235312050104825873267650617574303289051434724426628092333921137348328470381244760186049815931762413451532337392282655595486916884694234111129872319411803480488702644704831810071657642772719489686092920938635509386099869256765610051253392819008471958381666192697322495168622927892944970976274900666550377929024949526957008529452800119712975409784691311675034172298678025907353658458408927462976251455998760687468414780245071171512760810167832062923345760326118470927363488467128489899349688275365566986076575921738373355466556783390941096553778143799987849450943541440217992003293461648375473672438226454322679221735270407825578968556595573602813738809265374889718372716562167864069649380377852765423445245066218695639964134073084313902423386761655456151556703295234278602285183490550832178227137402473008208031703790670319602008362816806137830852431389964229421179049230558387210924050380834200791115537769098616801262339048483555833487787451204628467463161031468233701568304177331630613327219599817341752072050295701817146566211608905588119612161970860283728324574727332557007439604247556710473838944948051103940694135543678411947573924322310286450212288062328117964293094639933505428672701095792203011757368196151102045987632486604114644226927074832572911111857912687833702388997862733586950503224719008790641157085369643392535502512866180264813763061618982317913376970961293743042086908848311602683959689699347132093916235443474349053498307812565936699698715604408712874728862667010478633449652572982901212841633847932628037925024338993664387975004281065090922653876997738967381175798463116954330619703331782990820074365268480915041966417027355048091205342872346137824584174770333206879982608359276107920510657819754223552801082677562246891989944454975108472333263028112795152363682900697825093461614029585683180350713951588497495431663522068658505275242176797657824398683940595054210499327921113072423574812659032466522501922420755761967516907235920433608386691846091960945358375779586870140286199418359533214705661762958076759706289863303331751245336476573336666774287455825430503196129193541757686364074477769817062737369371553877470914459664364916757381553805609363089380843337991559510043099105696785093951552644016408443096458993900247311698016174102401827298152465327544138674369093006195065157966078948642082490049178940513552813896457506527341820987867330633434519778667478406150007818521443394433150203559855430678865676394893152755707293120840421295049605366235529175342840939115843181735753293474273421365112413979292006924994084060352870438642139591123620743734064682922466336406413542331249075429906419829207368195812263601638986395280006408779428448482790095650557205596123100506996695586247088691635787866474569250738088038659840831491932470788734715553113909955682584211207022550196820727128812981350788411091975352520799633030581584043690216179637156239629299041248653394958518200370178069861021306194296501177073156506113074194157010285213755658376554674032043170429836233613289006494018694588335084894658733678276922287779065368735966534851965249954528328398398605124227215830351080502150074183743396697134841426894483923448737034939933867277014748146068426713731678032761772962641401456616284957845315229152348751933103614512208511786721739074375936728891196560679759883151820303573811880207632842905322903445785807708019180463792775111734586376655285029346770014576335792339777575839424446974660494085777002703845954740469670927279106849424715992167285954909724963785892908108043042260779342403734573302391257194222303498773149268956459060427111652581715097992899239266356371567747710390680633913735243634995300755693354429221735266366507115541141367411509172389195142258172825470491870214977965647716743881043509628582348523795398344402214292476485964034499035586966131804595320128331067384142896990163964677005397507435925012834787348450970469761302035472080107035308414619933360393221080369399596948867693594991489808933286826364698916504257865630155680222633657612483320155946302942443810132114784941339200261270290021767621390476288112037389957176702425233122786956423692411767827819420008097847652786971308091118342781261569732380718914832174782743399651102348979890280559831589741956706912079830162779634639482370278745409555806150673509181743283971657711305170625217430748985150029447974814601274339537507033683299942004728350504977622318627387122513407119280681746150583572659519251625445205800299516368250908908677808367132321219770791657817558233394609378947534116185257239459220862142487576025591228368934693254582520842174889851196379261709785159910423271442352858016834324507043668870833907520856539059991051740483427957808481506562402256387990353963847120736200857898331438041931122828736966220779438368833016729579023153562209909051697071845428823780570595441183454334904312946153368942569194426636315705948095401529262443046697917516763092047716957994304587389608277886405831167731355319245864333780333980249388610192987229593777057303656983086110330216410481834190981260558150459829496217927984795070931355003227908774395608480614469347407708061701742982279498442087058220014413012231248500454389269163535035120916158060128428482675297729119944523014459550080456439102122528690802407581107589164825168088620655528694901418145474841761777982659399513495712313923648592237530471480666404037535097854140848930760765200886231039807221239299176685866881652641707619443167341864710041863549363229942185825388188763659950518933842255749856987004722759628191637355061027809127060244937301398727513163262607262450187988080861891670114912380400094221788251319446770498495673851498291124349067080060298964308108683976534031197630738885651093672050750981649551012327560029933202389253881602879885304348042016063311829110310873099720629759714210112593674480678744800814988766337388458264767588560722818029990637937591355190094066405944624356345307240547929247418960401892997979858280563680590098352632041550964804265462985697065740347738454237182489056335268300604821151774111703602749861989747842198911108516279746700212482308088764427033164535685485031355761471004215565243067914570028772310131942247549257513469776718535237824410536382802754626731487808240967293009484180657603207080796937448441663764893126538444272369066596363210359699092101209161309560306080443290085777534635506124669943493805707299518780984970405864815917105835065025875595191860879469190371955053402197992110051337828464839433766804535438797011156741773368405077121171640622010991764006809381047907304267432275459451060450068141135192917539512699862381636854802455730443159941331846352668071398299166179110072046413671991230888060839244670110075313556763115697484588461507225972489578826089202209557213441559420071927451233128597790356482399633671061606495139221438496251587220298998964694833986702424629397622323551396829553836052979137227156024447969771621845045783461237986409977358442672681014435220309155302634666963062360971190554854886839131448127190845794838865751759524183899885545719991490779550915055571967212112954739463114814535694934533262796447636148006379270850889534665946685914922201368998403151727435855650116797936437329081671189319892502848280802829651173630432724385460952624051354777714918741942628356788552376180944614433695393988283539421294360266095762235668591204323679192079042285018669300289056525245906834602050993760319117808669771507224876274524996547976525283504992704266950288411901988151993506388416022350314337911244206023774110353353586233278169576615307077378766207096153374266980058230055561264291260584804072775807808373393544136243969671748429905975118415154412411972028675411826979542967612794188342958133808044342831034229137035609601707137583029719448199570388516905079531748875431460467525425413585155226236879542895768001470923238904652495503485766475722679070997112879140125983261491844173951876997193319056209740404336164717105326520665488723699011310437343989651599235661665842098258676527157859497163183793616161681745740659815189106474301211561468183155360987917703035028230621851700773193774740606271142303830830887975447853471805976345524207470881214450544397763170952769096234068100341810782983869723378357257247797734909140674276324767381652334054400080343629184648051836464798491862414421037817549489772384211151333026242988006712174527776232650850064731674081689751519668108407358319720916583631983790254936604610588083065396865781302129069814392119620239622263220884460392491235183499652148064726230286672279004751817378019308941109498409906137409313172797165083712317674548557389423971776832646852410705395710891674232080500863222281282772849437499163406333016621493106604369891440409068354101730701109332518421163187296533473116046051414870800336101269401421713925278654147063175227369163990429482579640774938611086793610620306796078419790452811580921081078663172573515819666291489731173752462730587139356849347782713224617262955484780643797041973767439145406556606847393984052567571876006212430880009972291564687696700476724976096946267339681074944543591073088428333026176663556271761630008230589740142311679452714769466296109233269026199501175208207952768132837478857295731763877925265658978238829516582309554287149361730503850607780809002779502935853117541710122257143496300038889620113520900655180654212966466924048597245652334506879066182991702226675540960671092734963523495944009581042541281540464840596322194363871077794142450721443565991524415434092273163254651773487530953475722897360421470842268834853229793959819673479054181081534075236358829616007295670702834418621773280925369096435749770646948129805498911262868742983232037127052775908121420514464473540540108790450388563476047761190016869765986943874114684459417309796928281389897652356182309121137641610431830898560692977243947089428113805537881425063919601399797101593307436937804060496488795812493272775542184390605759930904952086607485217552763264812015786394028916859378100090250980837758857239159037321647651321883385241024959945825860706086874334938603341555287139227782177337844799470878871346091134794382910513752184837863226492406619226527146508016646074658529852420743853679717758833914020506829810103145980809505777520773916584455063360251203675547512259637504009380247238765424070512618178567447207848791465275200137644423465479588102918439367780005328898420523966257826078797526014035962762654472436178306211775568837482125360573594193749983601813636877762767012917908668465207465568647246605475953958808134613600691059874563285829712755185047727637164478778567900750204127397921114887032485386246144833374058621940663604472293597619817546093303720852613770609025436683767910359753737792081952104447498673832032173152825024994482696594092692855730353888729548259120356496212768212206794753375786316721799191416527887248874097111235429339452701836766503537928134092723965962859731056528335635798026194664254933243254825888654295392975265989895598080678293378863806078993796199370289901768770852444167511746948397947658142952032789955985531877031650384000612719329161504136767205368615554665183129511974902043772794902673720986027816865732015359572529328593189327932742869786771228998140157648361678681855793104631084682495285216481291523471393652980846570934709081482669632537847815611880883760369289926371420653384756053061142895150387869415979396374412089438343353595551836786788476100991807664643147020420999442019913774569534893599424877451582084653212328290834141209989688369821235843687164570977620932912023393774291407686264448186635185172722336295726374944247656687088398280699913478345851033724085357562218777787760953670612026735650596730030459412860398786063629760133352257719112548033854248258565997341273406135611128677156496842858595608644111170052125817591756582848845792342775407826241189610377444601343431810640114018731111073286054226097954106316651702968649937006571057738080086868808197220184335074039249585174401396729860470717601538265445968749688056097910558498893876291559650499451507760637072295981723692999184433012769592130896684399864827625894787527908095573499818409588093586446396730402634922848644932735823461335792892161568396488634985098453694462922315848812454832705614441837796780229376952798450960750312839701037655836918722029750075133663515540856406988959017135421615296863048185266396683036422301871673929103634811459512281395361897259116988747577891026738354628709643116561223846550883977643927467516508654029613049135268573878007254627446285093307269649972144036573675795825496946643810035389580796842543938201858709464858303688449716328214246039146705646757589831320602911651818816141612685661051794386047577420640814805477364962187185948257756242087189469345821854001427892990846040009674714591110811850437343884306319354911008450744010013967965803251583746582893376061910868126973651545361362400683600271360336646170923151997223059998892183086957710715773352964854671256378443080351220405982867928000004923260925087471117288529917227042721562251254860748982597980426964977293690617166311893730594596829606348124538162404694049567972420680634865203754720971028533075177707925015216985930475350103770344254128680772141104867771189536620697343787273043375027761639909212128959977623312811242214117103911781471951073501143608593607554686358349964975644585622614386848553996524201702902557827673479495975890300373864186823097667367445603173453503992414471618192366802413527343169384296038270007453456968883291548931635246922570379110678400447835810453339366055983272206875805569928087924420372981349640323691450547975083822892699800162103948057066969134586832787182717650385534004719719996605241139665701845929647848404141262461678042483869991453422474445880743151158154549939285083511453499906590017846465386549567982194502989470016428959163779464630970186787230957143677468283408595709258228234088393679700364977085879003896215878359025760837942563112638262417263121021411845038602587921172526874437813348019485363586177818989857281538933152980422557808537609127468801058151769968048271339649501185907036553336430356988616726494602507413559650837114122994883790527524923084049746467902233483113766261681919314044320280592129735042706455352635426985653211624104387390013845716537004547669216107430138066033592056425704946742432504749810267970786086282836033316059993860158795351864442510098965054812662888895347957625841631327157089897733774332316222243635583530018084800363490136793845772181417711449128743962389453410874748939048737884327527821540852399605827181969516581166694682372066712410912800618909425774991388872279777307596974116982999855209831460021300344280233621397910674083671393407376548654444307497043807491847018620739649909150425674968608584100676490710338280383786093622844724485280218763857181912897856069102758011226253220628008749082011939237343572310632963763591543674245953645928415908527224661307571034372025132525726978573037589879312422673387596570565515332579213799917285026568421418560945405425816723461604140953806329375709024847601699175512894119234321343173160004096414183690469429442984614144828127597824921612198738798475310027654050325895153138289698319467272062331578684355759665481379755642744447725867498024667070658905843209652001255196411448890847339274086949524288621241461932799390247518227678610329371760650711683795282681346207159502197077071268285610592150619770037949715709387276847741528491039581112459850429305253931255278070415954757572067397916461678502638093647155297025873856054778449579518253181693709314220992777405971524722397072923217221691085190036985363408277260990158609058096907310310970146453022868176274554149299098805017783107293722224582432094223159401807962273202422164016281259931805295780656342628122770862261396160997236261180835525425087369743901532782410364245254807853606859833346916699605531381641991193815267784185913215237945152526410882359985662286558068064430008508596003797773124372037122843459526400818519826178584797421740382797441566127589885745416561030228572399135116626356921442262731031588553716733849717302959855556541246010628067414622769132649442878631488597181457597666264065741868216318311626336462756403944870015709410534153544291444342676091824597167482755495159489775437872820486674928016801468293380844876504807710839113936013104531346839069469222730261417809173503568342054578514004311201594278785164714099209229502688618095210855374900249642705531338343603362244207418019363278805821299115060264115291385531101186606512271608556252394070849809974159764160208429042357564661145929352450151955192883765018001711079917152814814785834345841830255134442944650287113333504529690013236478003178341978618753694840933588347821089570233025494441859933910539059210770341403087332879494184591607167477704167210896240664991263734785131255000105106474646306241131310058650561291573746054907920696442674649349502057971034670912020150330917050203810803762568862656321095452562790250509519994140087987336939851463080165791406068863120648591611615427216384628863884889205348841123911551891177200372096179501459027481514168043804897587273666307852568437225141094772733913860354549782090800527990242454174065270829499860404557167480841023815341330599667897283628535396899774976166942761211778383112097183921550581534308927483278745319624144775202411624431597630204461295413533538973323292990500636570231853365150801645896047073208854629211707056870908583813466374442921375199638900712071676442761820637352454920903108524403355385526631988001051442065649642564897993780366458101328610045259436230423296717771082769825018995084397658470855311159478549913910924399804202682247413710649856846049318713473992392527433037889369904516121491561542618457416872696474206207843013375083728878179483818660731707096712112205390924928700785547804719966295725531429339697446513953424185022830530871702039687022575747453572962688809327853087112243016224029240584906487164709987968006286650400058335052598532735240604519106855300588030495561886897796748435689255569965083165289276315132572129644305513653278079745906694820122873524581982247968730165157803160889475783969270199855836039508227885766263666627545427258482103923685759856157607121852260380771544049163931601631987384866984992067598611106301952088063319335833447015687636534204905980532513674997704774233486830567616357050490282292386071352451380851492585627030907440853094170164387689304140975545127966177891113059979806565268177354477418130618215039367717886502691197469949422262229542137518279859507430855973590238937446839344831025506484584446848241267144130727743744117797392958760673657027069089690510455565017619432237460110161624602531939460177730754181330760386917669891794650343967885213729281689709987603427376628222370934816090333805370391334252710665919969761921810916989158043457842151890124467335549027018642153576427187990986244901726936761945786258290944675164543584146911482016290853267777382115955963376791751222490485040771954501332787341192817072213777448036858663297236158242294333930042725049521002432239222329710035739427287234281038892698728445313549944425509086416453496259230344103813456899474384173026290620635034327864704049694479326234921046454515557815836033274608767516948664373786744251406337344308086065862843665904743893326422943319860287485094510339566244883271596608276620603506703057363373507213678628961308372756766357589934964775163276670918661289509612690586958302709468470247946981177927035405603630947711298866996755802552816502356544502148564806084968189951883449926848737692494931754070861735249781675741785749324888230437023719620958581413696467141211090683072060546307779495629190945394238101453088157040555260614632819721697649842250736004896901345483060023896404023036493909224965671985008876144288972726486557816331475146514890773767065863537801406208433534163784488581409797191124407237323881532844702277586175728678713354748947377971595772827999371557660077694946918293079793912830388701755918735572023897865117047728054737505567601925002626871705585059443810928719391277600843833400832500914874058553569717156364521750931815643702744924478208778254439915564999515935354872088127595913682429055735232507817245864653356907301121100156403364049914553981195514036696035477852779142686411281200972562033716814249181307876037868359799588067942272254656865087094597484459662861172280550440770955061585165620939865379849657134443061690835356493317686109827407796230624728615895902440526585512130042223645025243659236494401915375696337467068625098166043901714053991451180535153113157719968499188798885761862064315790334934021550223074488189822289935797997231861655334064409821575809867636292610058414706647654570141396105332153956600009542783280748997379257573999437493185961500957071325584189216682219684436086213683592100182847649333649495726185582959104147928919582861530763068900312490874744897248034878450115470430904302738327439591001283256962853070670778328792793787019713000081380037623111801836336411304426880009465463615980574729948836864592252413720727192122255482761045351302553928405982640658337036869272580107571323988792431560762963779236324431679814350318875997859060092847133721170838855640552509060373528261823545074931488723481163787691006740058309493742041389456841858140789289168097961410472044250495791954131103471389180546399218363553922114566120409813439172032203556051399918318783777245381934774245079297855288246338833952491752065913994050589892865412944195938150641760357120247957237492079469006332070855461030947484704483476834398825010259123201874267284205641026829541947901118599562651551520328704140652192088189685878504546986377851997634626857989644883877771543690153754473331586663697328047333404191525438775397380082545078955594888957173027413289274291260772955427484348103954480991901109468970075013707236628004466041105634273487252882650261037394216926012627490312707898602942405866735478528066981482432507735582506345532173102892710171200855746114758244973315639818509467765206149651664265525444098165478921200271800244088579010957079898555469539975235026232553206235700027581230919985311038603982230032049414702337688281999040210759401885354593595201924456084050125919296076550186848618957114620680626610371484286823673937320798272274343694804947925271004224847113207429236918203668016793576429833194757569401369265394633281295679916589144868562625533733666380372004444494270510877324830368776415195000316699198764671298051675890743425856782675965706282784733847636993003963047800892722911104878869577981654183336119954619459810573527869164864939155630099347317294547624512506676823592316870154652407080399497511624263350889039836106937600709639083766666522354949413043420250179082288016433156438057389971644554131303170866939471435502459673569109503669685832690992724096002719280646293410053604852491865365389003292383222009184596650155383502611515151180737831145526498149802975251984809768698018834793753058450124000452218028128149061174045807243721047655566327555094781154519866723260314929888540016635916553320298941417973556875447990279257620274520510589671342754414025514566059249087859335684435509089257322984609522151903722909597825814061949753395564747307716357860624180116925166752439465128160310059934165103283054840756205622921632570912429294071219178616639585764532373289085190303695226797192260388725007505080336646909884495915504160717016050168424755297740569138551852510118006733527290683956840525519752222474661186783156730221850435359878387222958886866817071685356930973285235491425297629212046806936492038846219953537449718777886616404973217181983514686937214458037093050000048530466604074738119116588386504577996726778146366393058003255217208194532614904125495552762551098967253237635439881212438630616462616632124179943866298272232580970201978127122603625897455461155006793491299072711201798431802948266893064070759614647774254267839894674454983768488420030397519179353728801031397633103163545165434147184003495052592902321408771001671393924079911881712956496832790193043348711089346663932850284574216200461431518631642865695521093964398724503707084695238111486527293444299318941060542801532166696349116350946907068012831351957707582233534498098966263349985055259902008762662343345153222353249238127339572837389132711458051740824121364479732729067529819560832928216645418226783458176325979130493010028007174886386774732044923365632110709147440504268005193469172478708601766597662560661989436576751700847526731979554305848456397312304645399984658332493452945720853503174063174084420602480234558795828058560418021294163821760828959733035905988910931394432894145557220834401938394497683725251834151041492420995715871800045168964371116100558506308539438827088512640116138109379780287555119728959225497097235669860337877112626996322104147917518535569779108219882483306067483748229142455315654777262876162135914011742293279832441770032617317835831492800214793449993360150549793947701441297816173462744154934472353676651762875842156488006917485064161798323745219250546625398655432885312940022356444305336271615480005977622313609882165624940860597959349584271329394485022822450831510614118064846492001530738884511883327201838092981992357168930705799429193954320610189635566193571344841420187949935114853612811525641868563539136108558773436708066952340137317803583294437582639075874682748853432778858296702847703640050505231669882038474071447302296166686077523914919761883627193244681177732511703467307875077460556830636129372725565922604721307451954686285435272062390751182465536076649968297353922439751523298946777397685990724129090474339897027951197214501140249142148941893975570013114159031610407482524302334636857206473341951204693606734314348621211995305086184955354870250955228681302657414350615084402448720838059107915869854622440811982696947610530302862373722774284032115522925000592795414461677935767544579307478130542695709315811384465183529155978304792753175978787616130160605135576601210811330567103230565565657771698928752974658738512943717196358330839070277998682008355795134006501338136179269195270422232409916690783896389448425773359671803361923695500717745413498688488233621917072712741568792099203761320175514215226663323696640053818004242308963183885495775882042101770537119439353673087904896513712416901768467932313253887233741636923450580942567313501067298199806954910141305942221967693309855340179925825444342693853837644280895728151330590176584913913020146607508393118909328175682776459460938350213611469226407572134774051484440810065351873426354704191858165562915676113011702632964233691230218051998804106950294043677598877732429331177403295900569488809887119847838248996128759684573802730011436352633707311381174762485678059897211369329654237876714428697858284116024150779988723104010304076887456544223012869233971050315296163542814930366814230788488813441032580788322323242202615254094052638686391541306596539805947552717974123430031467668819583649813795180189651833451173031707348847492816177475012271223751918146635878155053551334042515539024514156192362828857916814382953633242876014369379620664514119892478666960622275669404784261795136445066692990397677402434952545456607786864152053433773290045097820663002160174768169193886040470837134874568703194961061898553044366220733825394626004144454908859815292096251435068722451504337209676827678813647554665051176400389877688981283152167469061651021190553656265480868922097286920697694280202105022787008691506109566939478251775308983803752661004379851789302803588315179784146181957114960588677045778125481487698302456528317949876901217478424919510219906542459194515295070485940724290906857177645984181150888909883064865184056679099469263523310100031286428006083034978802333017874818892388039375913433076141850321308313885742413189114090666545131765665409376193925740046998424372483977481193564192132399243822731564519619033183034217212963018039431183315502997391612758970172980228674607677037701616238407418101415504268072603472085115681511052894285607789394013198667411319230339298596891098189007230353048277731809031435192426472500047085395791486063809603157789695439302231279454379353856912897368054327343721421473822516578758811783267863260927970418044073561262184138763505714499933840111254631146142726795508941988299075692796798901671274511697081416667164641328430966974410681109556552091004610679832383646960030440377944085260388303631853143200351533329155030886455594092153913682088418879770187523959695122495452641194613311432652926579412162993883947068198070655470767769987341912832148871805992983135654948167637522378203233038149387491444998661973423812895075024004313944210333002885051556951725816426453221748964001803440033557614587295881730637304290493703545166607709100075586205605421805889858713265925429046515964534940644981434492042618988259783268972913974919752314147790816603377922990827146235589360922633284493647548271280205542907515045045593797145535658985346584579502638246443028682944924120417602869877826845139405490227078582500488973966660086341948585878894257641368846895429750323875051624013878001689602752892312851785577639344953626692345539557473953547570548124269491600021227178320781352479191178087791180308052430079107414066581754855150871192614810840485937976452594300964398951444712898068762393496135850056952328390076993574690012488062357101714803729982295209773859486527431478088443337183674202780765612325189462786560443033025582836701767633194422942782642887416693454139900900342785206553039613802488373302616130977446786651325188115628325459922727043797744339319791377676578780586608532713643392556218326332453119104915613711341056096274062135415516304010098591365849191192903393235432559934550719612394112063626182306783846569169087601704270544995595977085718763644009888103438509054161075695580039735372123634989604401703912131417838473150386710679959095129396367344884911132679966041386580418488913711074051505257057201148767033466191323930823520338821355710500643743747898216248209379477726654570920319126297620569043399351218271957549665704986663947936560505756609411802435674903965970067681909988321130640101313197386732185819043921628555122835014119325521770523538601948857817106722844544932221021557867144575324060950914657399548852690550029246381470464151337765318290255990398906046922922986961346078679309472938656976447086336440698772577026206585093640887671062653253682124074037812306028980262482335461472527577877731567374466715762134025262072124833584316782163293986468867217682288514789508159383003486452706704291078401893292986705830313191560678149721786697157666847844120247518371296393696180780688500497598819578124159488313279131816127112817369333417472098764115334946124362681299257050154282082458441462201476114240216540453754383658002098691826204873864384877316352149908740839992916985371703953890098664349598598254558651180957739896675988970070324362185469544111056383564228883149109866578495868511216420265694313384480717092217963089379373108394272074606071626986067082530937833327979462597076272976250524457983605785191380807164317005506978383358279877785094652752868874517198422317989288602549168907698666892477564351355414834042429623784043488529393044995444724534203166051722150857805935404819221129042324720519410397782780855507264868935544092009645673209179595506145126628355701052004854201017085882465005798580497241827826393775411299349022447058095821521598454474425802179306520126595297925088205002403199300306299183477533109238109414539978520004760597008628274901721577219752836998160288020033496912221103355733679090586686939866233961531391492688356603363359380114532707027982467760184846553975781289183053275380592935583825456994165632511914736700387648600980118033326274844059816779962147193651449305945637861876647245119681217377345267852590030163475992542304940159031033661442534627088653712698377991801295186349831014537305518538637243450910661489901132845102936225490526083165445159880149638633072292477328846244999974345348700844088346729363408527613621337645601268068434922815553237900791529829600384090893002058862998257365975913198601903538244888684710203157858417629242806377339248144882530172629415021979763541067575239101806891542712663937412231434975693632216276090189545589386976796507682355131918605909388116565647641087872142896546257636581113127474196829976027965777972869912161017502877040950493383834210934137437188500401859304070847424598287597149835925600550546304425643998757454520970854760326226522610693741140575994834866242915627388265155961366038326232780219253372100371149742177226548286019245329418212204848783806925758376367049241943568339512901433408791073716253269781469151164234932022340823958576461538608647881536560940877026415796049696018614917066719886226129593862411076824615038029846517131574139263150203150171699360446782624157425316386595224191257282174625394168438366156272711122811308778363002622250987546330030802181918012131761310143221116028025182403706294959953848912175153058862972823866088089135355992202576225535172660278227177457679085629847129572718269780292319834791418293900369722260437883372389692430915386181749606550915531447778222712116153657889770522192676496815534924273567748567518735088313136065503703016512250983535584188928060173788279290578768562151127626943054057270211145912044522675398663374056638059264239989348505119055909487553994293674065626805690760425206364299909815322919209087947936682557341048045005845538762575018725256929663570567658376282784009388929349168144380157444036387923563030451409287947402517873510791242355151327452331237593483900636495302951987113719316497721618254749818383956043280787878112798520792810438327787123771100273191530096370307213458563209957433856525288270615556367338203752759895121935990347198381782183709636396672874539919596117735602235826950342922454877159025810693460791796318538016026283867881965027383881153126273806751341735179098496312246204620094492403103577390619472450758326871620705769583641257859062872827189270878516118180626344030886976911941015718066043605709732195511465114414671920213213947424597415120820376566567592919891346814758063032325494072556706914645969431366070633485491050891180727378728711862440143574153888952020445103289981871578595481401815667292648301193931221400368970216482772212604813784582193312602349869664849040712065770495070152737502688357520891601148690291137602826531999900290718787484418044163689070588605580062792368875957638726008147316897022885438674996956252863852348735446987805445841260697673787303313814848395836290311696641106127183026430441595952855530274400037989741519867716255428871902118024539907161804671092338697587288497963572988539200041288750334543491870066223535519256223656980458403871949775640206942959035968581047330191077939024346764542919606786988266724300090337985315705377722538886634281738972635151714368948936300045556347070188498947294790788756940434096233155554684451027334931332571450958616184349878039374635439420597983823800097747247862497171312480581547524094577953509501656796171833508246976540493462265392646176006485540094018487470492884611534094274534168900361172777409722095742237256621072310056928348467094647748952761056613130718801829112944494512719346267459641503751970603194358012478744467977464365701073090649102448603760901099097862036144586424426145706456968315076621629532526977829625611134471644516097929582745070711100255568661497972332104121413381928843247210568828852373634514143933066872716468209918633769021498107127872088346381367256528718939203432049949382806635270140997008874030071539980097425457620747523529837842346905638088332780822110484261504829472895405365583249605103502406400923866545712715955188533321186652326969300601103703889916653428144677919676068440288040593039352254546016356965639010633587194030824950209107542182649951906565062475647275052035707248106418852606461198995227681637540076126873576089903746847780261703778870459705463648548811370581716764014891532552121157216371381911354389380583377642123318662044792149764039315470461889476603367644863184759441330791766055939646090050369950814139752948209212590273180091807596784756600652286218338710061694648456501457817040053423770845528057627132939387289387965252451570155306968495104072567519547647515611038359601884035603212959135644278056936421768960309547847611900821364127681267211496013112574545884597792514927436314279106243367585139568271569564330751783797969962215550433256681867987572011619281538233203048440630902962178531211518958037494444449782824228554632287380919216405694459277876510984957321849250234191534283946976115907795140482277536146554252247427066147921869095191605814204213362867764138455637969167679312225411451215949736915210136418442396320624076365134485727056645198329487184743451259976123584114245472845690976575134817467452647763525594544381135208658351377329963353888744119273387376369947867089952604983153948566205086594109836554747804263179959521635909639338155791338010207589832717068450260864381233214164265653634689086114378078714836171540739199811752982087729608093085707398385089345914511037495479418657189081794125664591631475101325024723446106313962143755842944639910291369975822036393661543595663781327143820009486268699831870010096626737241642704725545274504334391854099098022312433745183072621231059593817664495984977487927936745748297540541734429733637393985246323550680473850703930278937416472248094333600151136743905703091201727430089196940281579675751578610312564347478703670801224560399398793907528829342902401457163917749164805670789862998261131817223699110008937359456405502885500942139027130815356456161203688735859557497381041101138200528770493403197033531464015069337570477815342482238716331755918738804157875068279776633172974133419870032928463700724619061032678157200319078105360984916425350216364313141109522817324533520579504650740316505148845200500710270758584571645402470114383175755646050109267295533472934499983910949061924610395761324839071012574091357846350090889077841117158523532609572959615743527075564687201110012458781165657660105389305477075646159504612551486170150766098498941404115335780476222563866886468443067615116321004444596794707226313236774250905533522053706060434024843102660054192355901332914415150065244991018251163563128092329750537869684600532851937403072855668719713138241424781126790358015636675125810203460158273671175596223362232466562657898805116011923095031631836108708204040231983985634823574618643667894188162383850775058200949297337807392435104540691347292500417394718875098263053686749105395660137677468199360848480764726347262070192098517864308757275820473396180832306692213214933645427625087139295887470351436230627034827003602193214008945901463090104000061732837305742354465608047683447725806352877491001779080018866686271969245794413607371304393487459192685345044046764094110724827163556279655344793544289631469927427432521057673667496829592505473629112868264758592604276389115166334030610961912413540150361164185661581930252848995915293429595086923927885570979402119232246954272596649285264408526208890512528776809759257180901256839257034800009118168385850226727528625230056434340075933418085149140352233813609485746927045950384158203771842462737904916978284493142172916036846289369278531278767195993049926677322870988953673460131498781226100653496506773085211301127705859921760351179132964966455090940256675911538763926571962758165901502527314168875651143605976657940693553572873359302913724339211667905536273821874719376976905648774366021116250885894328590960311820085245324495362053286953793231398663529216201246123637997066063938209445177373171043038098487010707545646700403642000547323383622281157417872527973392684550439146337042291092732345508835404649670427087850588993084452020159292404642706185091820402728153113915258379847793179208514036439806350294102941172112693225463792500444988344014837215210209174795972835429958577987054950761646052261771453704773922025928656158218782827913699472616581017564305836548611149548303865109486902200546555220365802637069374909562125748501658490013200436626043793852740090943610424100002864736008055479482553195091215620665169306277630768564244688641373894236305444846254650073118298355904390808889907677253845718309774593862412893445390812118399122704591405205072184925313225014886624253573846897603916989568794039014999371820510823022580617862658720507260763727599467568653689870339384172517213299839251222667424292605463157035898319687884583034331110442176890809950704076299400053515175660483048081629783128292166719920502728318111854889063357668219945115415509246374507917213173322053959058958285290170357318481763496237142938769062138382936754295335657928104506045984671626963392596747059184256235731719944852261290074292803125760574512283066400538582412105789437911029251573699901330918582976612766550241031762077303961208055699693184946573137999790249649493142968169164741025100014139216072887062952515070987258216295030770545096920407026717323242208949067707548039443085143002148773608586693976138358942761211828664108709939864857312242771376919190577845536190099402849326999618587920236860324401663383314131596503701130684482779094837108697035574010279759880742830972454390100562823814371677656385921032431944371878722269462937588250549399443643907399017166059502865231525280864261264184137379114277653045405608958729299556254391435501197510460691006750080230760395002922878492521355702515766468463670429507275504422146204777509510914171274480263519526414224160814957087322422472865587527206651617009465009612316186708537373589542927173539998617426451675786284752712883952486102599845088424081790719039229127553237744466030660872227564864085827555685930087716322385101225992466838948122651720278660133663117272786439772030149668693495377341995670063602287368736808923392051680035281965294054521489718185814344902155518809601985141706828861390151802250161869489246457425615853619191617273696180600691132090062715858833595794170562987147155895922602695669654239301814663219249238693349454659455650854222466150404752588929466979277733243764753722304998683718329774470283571451692132447651548277383403290939889643861127650206494447195985172544420424860255681047649675388692622580355512800836034338128305945166408250474664201169628834721500334850635175903555034193105656161509738639231645850988171058215256292091868316935035176994363919953310260839955490886671084370854111494160813226486373717495393593291583107054219423968468790371709612048238181359195841518466951048132844487282836243480259981741408286265054611004050843976089794948696340654017977810782221221616566045541748179912843733372297036877621141688268931965248717624239957390336696808166517339853493657275453514993622592339861976858750092419782801014044946861085766798741523206355455258880735290893330926149996822713584884172182509100173093192227697519760284706041440311290163469655983910511150205361626552944461621244881361211552299738139935602810222581853033242750370879340255506442863648592016315586706990438928868995140484630335911706846272631324484142387384573674725922182600602902189334607821942076461529983289331527826603159165286997867926242336078986887232466316603004998478002544248786504180919802857256681230712177333398503049581860563744683066403831729867735164344365659449791746917747123637816922777591384616491697647624617234566986028336404577799808095537404370597972042420562391700404984101915044431559075033123670432249321606032470570910456847567628116775974163085958680645502780539837258023077695824396542320352055073349837893253946193627088668639408154665888562306983425831513689211875339756353699931879132711883888845297616567147049068146486137647391055745297460048753881152484888683944268873316473465540124437345998971946695629924029143201159180832404595056695071481126101982068842494001047919059781664740756356135274913530499043846861504556227923500272476166511483787641847844103431190224186230792054575610228038464362820162869567233316722106011834342187015288430488988550670492897148819856624537804559245194365808410416469796806607462702792715374390020623170262841048794240130354385969118141455287032052217762652516518615250878072666016956982635300408749808929082695413369448526998863425755796606901561594904619966482153461614351787325232879032152783634295450491708385994777624014308585243499861128718565672197098396928626388585297474691637919262170498549751722314005499227545569615415321458910977961349236725867025663775547220198111339106594614577476934387625350772787869845372644433434963674393710528778794513826072204650423779738397134774121413160736842676751102517492040320818303206366372290462824420112222153474302681405751995018751244509518720111740417116544719116658066299880457772619689571011595045906646949171643489103508330124032963352554690028687383640031387502184724211462264047306845043326636726234932568892869492956529501317684233572654970384050132694519767992941178983042658940575269800595014466089132275482747248946384121268123755136562463490548806190277213633366804258007602234648732293205108099774789913259217955730045342570431084502386314914917119650733384522534570310931978307526360575375752628069085875506329231176074704423435635860143101248551653825657709537031541428957521795628839247015863039513228415064514737759775317927777754632116897615961794365730866124338359420424049733041424372544423976782803048492061453436790798498347058205883046055321471471399456755176804706758323119456825528614500193280981870278453077628598874311448725870250533103596366641054263059044233198450919519308718306947820521340068553656103665477254681783286210068567408565331319616514080669661276337071684560150052232996578876712902040497078889833050851996869363965642681685079543866208638225125243401255083375226978265787683879340155208851535518089345598000389218395898212053961186256147822386467424023279643101616429227961641232703498225562439834124480995783713822050025445817313609410765069064469462034131712338862919399533502260939183729863460917585939410155376803595990283631193316473991172731974105546813775721364948258183155025604964307401781237478532083587922795278153144992302078961766220013246219056677469043494833006882957943265603322152269069433785390996971370612001702121299626477223270253895082549078480624265807077228372350376671331782919489197491214298515148683587768411867969061702504672233679862118792678888431380123996962842228384484752786015135069444874745134208379893029726296516619064883366134519346743446049177178987821177340882246346449289237646544640147876966498041112656337068108728776731248384923235987987652584805941597785651110386381127563262680808980178371655664778640482994313205391452343223542195885561524674108824619951899323117302002347112121860722007863300120181604477178373801928729369886953937140498592783675818825721142609458517156000997855302875914424071469719321224976966134786212798737431633480578942577043478836329169013615648295897277285867096956850338333152136936451544876111454378282616167059208388584078418475864106199244039476097804345461201101806406041429686572728793392386510238241604274967538774851847238887187708247170322753633773149585161921584012155947844289005783104699164887424078088800914762348092181161887754190834569508238150006899025667945143883848422342975785976695612972890829013284267122058535793736577240296331026599296115463854825688719187658056974457403082359954052205697880010066474456898471897457800308297447732100626357252082295716260854390292387871275998206638723385949978557930741506762211450839262610442771783005740439998487423719585740261560595760676992563405560873966074180783418932534592983467866848919928790526562028825595688070110364731092782607514223881737252890778643193320479917512691859306252375501334101858261659497078549895378244766066901416601952087675253382916585567642337439906810915512827638155300241197635388056049724109962998766595083940615432609371082700274336103450544414423455235580921541775056731227643034411957464411071341885558668729917223901430900764815290320446224335604214052749557550068517788568681624833664556857778506885414100468157150226603128846101856979009971203795869974062265259710727391962115169521384271452475457590704633871930388982784255226756517394045242989393073897431451967510405117535941061305849443543105430760029437188470337097872814295871284200115113658240646198495850995994646019376492067977535454268319856806534881288430831991896372636119745472611317391576447398391053376312657251607214597508984553226638292927938887461734646105014101519672056558055276309492066230883741760830849884451316154823169649081523758014334468922194336193771471830939536289967557914022200277541763826895671293025904749409008652994215941945057830112328406373643392117483461949703358430540337067337973472301971392070449887941472872783922621652736953458337116107558964759903940399574635204946881722829502354121733484471261413852181409810116892689205656442631463219313727609375058513347378182442419492795287084645189583916590243172711198191917375560045241518063648860741808676519664797912370847302425058722273220326286302157186152538228364312599411793373696384890268874701361110970547832926861506692655193296840591440557205125926940492915573836119012468110720812421254250136417423207529162780291710345734307101449996381064743111655040010371136497223588576440997896660129396477332118098416605624315572808409385613045606972813571228255503739029416809222516672557417975099444323918994204664083714143600971030958711256536585781900342165709360625087419592852294194838100566833705218983402723132143127312744530616729864838538106226776980972586280496075081362399466659457856337633696560250781990692014942748492541177773592145157312578905840078687073869834688810265554121047084562007660260742692278816503559152373644596290621728324826333754318192213188430936454942496609967366568404371737322311335862085816508326170596732707098744727481167941809251428883531849394338206943100791370606538131341619996457124198302838683091079983614870766169621329603952980092743800007150788530245928502027903127438243146693146023493752570399706188794479122141517650417292778659437417990211453871383263914344899109969431471645795912194315491341983358941779710487165144792898136092289145546416401757639052915438360807309231754248575222759123691215369392125469670164987843222765924819089808220490235200610428432334945262182920158103797460271851458638812514061268595312585912447126737670036415839610538433432593705883245834921382703457374344473485183216134691994966318363446379553555232528969098069046088316025965189073340254379550492332178739620776462137465309996389331436145235228927337294705006052460187194911742764136900678197263273361929244541038826875781987021473183064446462618442892621624119281084693563211632864135027330261264647895377959063749309537187790422815715359861091445918171470112332478565802518323232731433087626553762351183336205624374620415935490406911463339832274858164099761313495849223522280079228124183503528606680842647649299493540507071376293411420509993589681673721981564455916476992029828106322224818413589252060493577518476498982898169473653420736966933743323469578074088525865104420922058351767018501734486908886200481639505011472204655057503767886060951992265870025216741774473469677945274342539761490639511806139348217782511604682615786916927387440602747446951664651634438237949641521524663042397668218373187107164805054699921902941844870959235363232443757935564375085957005019280394324845464754801675749930559751973737359114832629587567238070761837864829717272702728823710888489058896659674365425475175025031786105638259066458570125185817623401746151422148961832656612104186137419581075054777088032433910519984644925741055996822015956916491778139630259935823595586264419939170816101191026583911840407458277623892630279358638755633122857357530038337598460464694787943761065063706376071915216787914143642926946896577703268059146259583236070346188866316375431925747637957033411032996350240442627874963765495696239583185941814201287961648814508387982594285455297705572864122105233395039679653097861132307803468928250890105498062640980401441845415997677563144140560434083962542310452459268696722662354726220146268271635265943509952894686868087255231009293170715768714946993743249250537704681595316864416868774146192178548124136958422778366522086602694438242071128172653792980993720603528992399657079554798830283896164990488581854166606915440613798167736053148641040211272869946255937381709481537030578529372288829359720066482194589524736007490709958550588935539765299032610456471465273593269672521420091280531151455833812567176837247619282698618702534503323732210389941377849116520882734722892651892975024993453120103709672864159759491929857430572229063768009455299812524670612657816018100060442614510171033858314957406690720933145676912733216360724477707444254772280346452103943033987457629294984145632357292709284756585670430733424336693478850808821267278904501983183141147695736397023575793696969477516617543346644987956221375612807114861188694280242665198753330131802881478788482191445431981255763011054433367144052391167799274168456343848636793976913357680625079301249559227411267214299742746849299348981124164065795493031985791936472451723329255543815133865817788103469189373047198035285490728791207108279226076731846217923349278860601161674018410987341155193081357258826459172805932296087629571289542408232939817701257041895126880342923437139306936964067202253390322351495030525091238007513761837919842038808214680515183131011022342919932861946767058212667944491191771498742457654453391943855084395576342755469700379436010455835077012891437053555327269229326352559822964807567917532448152803376478737520475604246128457753797677576594598733423565556342697338326913952293776505012462141057471131383050994033530304268402464657895477484097324497723444404825959982101098255027432590753802303478730050672715017255656793483246641181238281391211038045935956917279024120816905958505138872671203258484823866582363069898111847330519496314204384898037927499618055394483164106338879607948864812808044072802354301764094267569662482681906740052570010924155443045572464692294810870963834836340805647207446226623896725527952339739954196803638301225184316101684866838804597979380776245521175748911044620365082918574518941071698670709349307692894272365802438734930307702086781090449869387331052599381457250362076486608095298726666865732895855100055113199937418890422145155263954120625580296641856291675097981557684921745509912118417009142856460526120023322030751252182217488446617612462279364454767683299259092561026957430862059478720778856593748719612264539363565738657342816486500553849441173417140687947670699899084667875140684624065871148913936514729075485344263820198338551627344392527895423440477120147554932302798101049291920690392135900583960112607023221613263381722313896793902166361338813469396634836268960938776596115823857690272556826726535277301724350560875168063242859491741023658661439343385006611777009202333861826470377815828050950408988294125496941359943581879187822270743101615368940210369706246233844639575263283320607055679024488240355868647158498871970732413343922378781538422397391778010742672173434547990159069914317504642506027670562156935069290499321405131890743921381129527945434014390764307529331357598601600175040817658776697615482092534671689521182756396554675622891896217896053834610064953841240434328443547458552202096496410493224284034422989720851003051596757808824435954964741504112718375350306160179433552736330891290525482865085410883909390239895163151332249577792999937945394652503629987748188520983347818146145753661312268146115550120449473850687676907141176438105737384564755380553366773603174738136910783503821497845842898560505605698509946969488489398497522704285258825296074205089257367855536286693841097659319591266995222195284222171807609293772542340093751216671200634982382774899229236044430178438095573170827188447939991506142309939024286417079822730059179231678823517223239910590026560728539002928224797246763360950742630639858492679582864822069376473041123802451674128875544163651260283547251167577713154999736227678047289115539584166977760296764612035940179038000489470578221692018923773507514856732177953910910094045734940865224398178388906388984324132030529862031717416555702437409267991546127480931583378587844710060600694035978898391407301669961674002507242719576785513917848500094864939396675712214015294212022188952955675847418970455430144116767758823211236933816379505661748281677373043730769569713425853749521847636319580838816424358505301725435134651562646423615664589030282424863459221091335904830229290484644755230319607947436627560599227440475103515294417118745860942254227923055086031308441009419430447722612875421297685686597576211512912591685025035926378998235289369884253550615138904800036982657552807930371319655498381742809895475121224045400708145961644883761997367675131717381363183664512869021099269398421357662911239265396276588076669801925173310887924369247378875774239793459832502467886840435647404207908370026007315830572384549294650070597166234271980532876919901296744240205833489081785166235253516729587946591130401076183000754953384552329598617703294972001615858517961210541167395393683646442960853880853295679658141117463726565246546604314583680670727267856046542088726053944021133335660781092717892786068943415032124800031561639005355604950748933877809434721794684911357104493617459863908873131817697782144266855789193556209934214413308716220204468372862560801483161863156316883363761767659147125764308824054497144833209344410051072176523597422422990882066426196806881521985649517610182088290306846043698919947083755390296175165347637574240387439621608745094347216313668536711563601815375067424554432353770572491853016877493605055572360819215308773370342034408151955714366018610735193052860318473601144353712062125662029755692602498227355673871534913105917393409539401244941390388979494269465233989133644681340605758351119089503477504408260728757271417136124683035831495327414642977478612909456884769801145215411064785991278285799871139095760287082272649493033890642982195987442199476686219381564389465707954051189555474609062118291233417974704723618676526768594483432044729986077525901582119107302346502693887723357123423346947722027993194079854001258979388169775670865448524880079625532405938369227021840266380902962553511996722457513606288691474611444874368172814564282532213000194184903221844217805818860749244184979113224907998784936654118919757082112868525199621781500094178880947189657136858859616746844309463448746630547238944734711761539614867706580499721759265281598067859621747720195529758142459203623188829195031737166829184804299424509365333323451139221369119186779165565717271646578611229042526428014630052687220202782745637991312988788398945179467086753443455721112076039955013125603852341243585433573780256188284200336011806202373901973720787779215430436603699942307524704589315517203183183215277770491537004564398578287833204958367993391702953714537535414047882996142156402234198530378071344250550778419984345937506784794700039249714611744831735444910571710224982983846361016015046770134473340072347734244626803536371573425795391488536615232255374097339078212366283461012098133554242271367092450370432779112451093765828240177132763489670366724478674909711369444020118946885143586921946085103479936470164850249083426655856506751865624648739454323343010986993069348532777008639640965530920646446030839323419785108309338725958316276954896153911095613004103927116976164256553669544709583070604171911313944725587788155087312423546500610081069147247814496963859415916831687866640961821519815656306172075389266646996593784496616867675862158213772627621279674849548565212309959172828053494359745966194110963718672722401171394706532582686100090206250609281498262093689533185710904556083477439429086385729066132030265397216883033833138787549611777124998186402064238240203440215155877888993732976597083430450044611331714011229000324983611297063657446315646035004463345173479127391003325991995504393603956409197501343257862685268583198111373610907486385350247725873534491843728859832381790732704172982357796775901476597679936420207175106850257757038451948415820671154170928162841488392543754465668094195902480151266507136718649814250610819679046624128978629398110001882209500579892663048111857579144848793505048572709898636117984219215587953341690274646956449680751672468343760869893495522419025461071930558359895030880530983770494071925650973452732917890601496910694125540407246757699098220559340073304815849459946096039877189630807990814747795023898729136026086739213393180491161574902462969660130509453712684944941073597766332303939804133554834328802448995746940096816947658407019228862624116056389926865338220796428621996452449520477536194427798736359186121848908364070618329120797046750789796824153302811052248433882103113591409768058975262389291308016990817470105258888722475883349758085637392162888740618296514459921360128450550141414378590784189168624718562832349024270759310591719951997267664761161539734051626372143701565147840846995061778233591163941382697407134512500721307815613120700289185121437222170045239099321239571362614322399121321175040560836839873293774303135910266346697151482912246928989287738093238195257277190102005831387100849282395679391385402730345709600460906173583630399259847740478392532729836678389645607231669843472194428302065113737921182814341061068826283844822757883270460583230153295480925006216519471096829952129199110068202771061184882302936589343406373096085503889244022574414656911956988550094259317947450329957917356376638712655977667732179298635749163861864717774767276731936741022249375441894097525162893480674999574773868781159449532366316590820023042113408273857239683306703774683727291712597644875087484363933952302512689656727753242818715766986497833004556581823427659671866259683688411991018013831435793179240421596194840417828616921330454301372003118185537578549561993304219548538300318427659195762172374980246528888350765711720674180919324615933936117085307464023429377763284626919100928120077586722062727597996079487366222190281332022788131466970364246024572607134046327585221221434356131621290056950202647202658143975086338215411416112404768856618239593524053138227063559376024155668259598446590967778329062149515153453690419796182728803529577296232004802549718010857334819675754173624223232594725797461044013131505741452666206995632751247706921148631846475649833546854569362172601856111773556484439527121112626337123885596570713123926859168341790428629873852557462160318679818234109064984891028333878885721393840085552802662001866204665064844343010470380558466711013945308833368276673919652391910621524444178668879813282482411582766219360091946508988955129315353799699948197995616027535071132110191628713628472901044802532180327135638476056105883053694398780870283988079069877643295927620125986889893611500461542317099734352578428003174277561428265440193610409718691197332501321060236382429747916195610022010944195584519714698891927875991261980932278670897638263251953929317074194200637709097018922539644050990347882694837344929137822728062953430387074623874061528004550991536062227891744023707022218362891752493514615043611145434690415439055117066896348340773337350844505652779315452957513128684474964774612321552956275438367722956835931657694330934612603995319113656135812162446142624468345837753803706028018696985256201066070641645781973572478968091143137661578597323120594312320550819325677138419177502275020410788333485640975915685873259633878147887843280088297501102240218195462128033845611323726888413566735054566792172492239354670103701756692741235669404945277259332212203390422251120123933396228780951746857457793024167450309050120218352356821588980998672236161105940746850672880375705128943065233488317554147091256468703053070610056302223282419489515086254786634012328499319376568857638530107077132240027009823208885229710174351589004003659005460767423729821691582056350109620628777001473330874759910962473926801538758557741156253843216828963029140782795565714466266714909007917097159659875641367417782755518622435963368406292601678092636696470672760376982441818138241876998287286404337769064419456771052504116814221234394168179126923107285199721447068352371331282168886327396323688205421913371835262208357342175933458212221515210459449443978883047522931900828760886879271817209725237078443731421323381873781871942468075033895806695570471302081249524841969082440279122826126868646320013770184395816308255768959497007784274934382414793186188290674461687470458279622078413888926763474289092023739334902966420195292197544681525091250277151250956687472795175796513915424113122725299338890873738285852090725704790843672473203925531422251577209614588355715292015553915495070888388574140716211453388968394471935599385032445200873244719330055075260896739141315426992418071138879433693568773539845535452556966990708915404875837591917197500609731962691576331532520639399731732226184717800548284953528090368490116171196619261483122255212988793505055183567176898897119975769451431975736357179254433508717911431142021332781402691047132922873421643847993687365260507459226005171258740971851347066465512988086161118013475371426990493475044260605772717359760585342725255794438547287150469267132826510157618826062344880298683276504087719026771898317208711266111488499083577331137398370551509009137118961717343587378215018070704414522637759197126565515992735656294757891491174141593174535667284909726025812829813731120158042450790274185063221299504049630805450148691253337932324023658207231979226920896562770539825101227715494324701275718312494930615660773754871544511916077287061777903581755796520466409271779722998302667725623967398154023225794520582093416935293634117474959595610800580488319345967311536046695387956710875084028425740912316313413493150818472756382732818897162221777988020681133196621232790930197872585860329184582934412633681403552511638363120155627119824608859218800460956738564863320523198217503981223743769465672409158376954075373766289799408505399916912958609981961739990765048739272991014973374438045069405411687740919056257447690178429758472554391186055621496115458762089728580258466604263512800225277366202026976729437926050786088165352412067300956396360127325383842984279364187334053100990216226233340226488197872416517201839474948386739177392469625281720698546250863321256160733888119389144492635954662521811642359201182306558544101475455751391918838048946293894572213614942233773261588975655143788886522313080769249905821483452229952029438369007472052375656011667663487734897770070078245708152049871627987616790005830391510452387060847903671037823868650256079099596893382474299617011119191694002596107695602938371227325478555023068472916134425894923974813600475418919205245781092622231792591298887681432970624621370186348603906949139234360509660602456562780050049554548938482426794594549945889540169585010241269922488066793538211100967820482908565757926753006443004453248094434122522108728282797027181930176216742164067767796983756782451163656456683527780660688643671387837417256947748857927123771067737170591224166964519984028333249560602016341857143682447844349223018130190175630502180587582181443899243495380355020084353197647742391384139624907455925896179130059559883415420627553128431110148167151008017516391864863908306167472950944581871015534159993182077389009080438330016803297916490717732739808311279326424998158441130476572247876387487030352253721630281316471407900948683029750893339177439001200006500509053347105523054862928454708285018270317232379469492845011421340793193731380992291877598192801844668200036974304262662892312634373253433814877438163435551715751307292126160104970332259990690755919148037616484829426120162480736316161442754947203545660233337343115494462861789886277951341825504797189937631473311129616598625342844750754850045632757255947766828329022171172599125564740738764038035637869578108903401484544610840293212433996660308245211632173809404893374760915104393936390307007675731342918871306915828575827899554160482603219303398143033141290831165657548175307686426668137795195528183997107466270615517100341503685504885763902087399990862720555076411906222833695665367910640727711822814935454393276765638279651134287274903969216637061479972478328817248605813062938199338595257479250122586506689598455476153227233763102511570507541746870140060448399722571523041955818738886094294294625768592559716205550451368661566673261258904060791340603537948197866565006866079179877594233320957369689526825192058870290544081218727800461610994300312542514527835585213187976522990213396646728020149913756942201686190070085449045918618904015507281806095130806841547724073682478664425195923389866523874902765649855682973260466902815217114967312623943197149463966904702355737974441972285429974746181507651697021041781972639872244532844047816208177637828910466553034764347299320710574888297456327906718098637194555573277043068517567236332640951722983916558649762897275418250542491177755360356644276008616005347881539193387981787482639465529646634771624980214210677534674788603889608224202023680695836313177360278397250720361974630485127050959092332802933561449668867928661944710878719536917270377481278414024470578903159402555207898524909812437169913641273181354794910280238614516234229084814015547396743928170321421620623103479139398018255546401163827608052789198597113072944603017939498400756759228191738792481720008771441537093921202532822913001367802494629545346020719370282556849028429059565693936407556081620873938318495979735676569128085694060541754979277229396642932476549563817026681874813239298341762195088264949262157900449043019538552016313851989728681690281692529151164997232257204789486344462056803283635708163674104332060630256333530587555407366626498752511817632531552661956680041268214326653474917737621841337632285355643986811322510712002354764044582461588576982748272015673019946052608148564553005208337586865377934600512021270413939864412496433165398129104930670593189553669545814209457340588386154710519722370242258978677920662262382667429303128055095381243187358635341694203342952043919739383103761908497905618196272548615399117365663861898200402375548913504856935295261554366663492074115826398116461954684374776665306814917895402440624548471519478242297751476489222134140020664330573269505845208629249422664863375075914607278074392764105515209997580704757387173359814511053007199780964620387515094501628798955901937317941124239327291784273025029124786804027046764457708250654625040724424867970300653881536324949238321687866961323342604006937792283815465806011832817203448436903949215768849698278543360112054827390051272404589060705905399410402446424597238835784622847106080149468370683503473698933879435844149498741946506194329330252519961081690674693334696474288918220669528882224560435578319385982463641642555770576506248433357572199154407770724203599382655778277273482598877089155802633608221774017944489923273930971954602052487186787712494222736457561850534733754927309851154844030232571302625678345538001122492472660583906534837117650040455203356402213427534925062317489830134680846911512602803357972233288843753595631064667793838258271529689392289520244595580703257534710930710063649080467852058681133611351286119263521448206734270653196892895508150480146783846106185334889564329301942553718721581318869361211826921547989576048562340564786864322243063504296636363218238806214618278520807244528829281711387868352005418839711042937669346982240068449884290187437184391635397285768789015171657069438454465235278177127528816964474056260151666465311133432367438738913731301072420766464261529364765492968761649515835109128121704602296537932141606795029554680644338561120999612758635290743789228865699047826291851725608628157727257108360379170042455035917212087457580820257295348992810139139937017086025525270976122365948033673806654836860522903959039556097283766011237769745444881706351703800247049165360748353524801544942208741034983868396717195839613287040093973604664617532712584392530365138413612710107649573513190112238731908069583571580014855225251709557924717556117585174452238853596471841452474775770701310562896514245661276889678742020361832339448620843724015322835755707433289365930212929412242685769015678028386051602945795030738223974998452658707496071742745787748676773898068515510050217184955062834916077843426933129245743653394768287571608990462926355611865450671635085211254257497097478527511144682111227460915848938985654818554645517393607955373898837839782358142296886595906242585102992497319279008332037953260769310420102112705088733978285744878321901311524041257243543681281236611319654917574701269501834709892887129499983007644365673646450063639904757912027140715887447594382773776747107860576402281170700237750161948512081107320404625609959312185664475327524305744787198189492082041154371767572366344309482174232675148443838786506711312029740854151635235230164043805735419539765065220770814155601548410943155222418838004312830276492847190141392968533230394620425857185442598476130001689979206929804080589840013559029066318772320177887352183032699782467748907095683434504850259093046077433315365210454739123246449737403127409718863727825789881784229761222574894017782442943757465465647674425223782521638850189976955038086529070339945537695291569501328650336417201415043979391338873128402800961656963361015945856626676117919748634910081891977558108148027045566039069026792358829501292979117179429490153159382042522749538594647870918194565315352899560563233827147203110030035244380511617932351778478789579093941073334982792418578903362678344844740830532427335028956433928173754343312169973383446482148370341078357507596351732582604445592180723911777508385225615547108443892528811574939531867998074830320130967983283835388855068885832466591062380932822404199052038008151262677329044445555647955058880834730233813481166455648739285292710735503918202239885370928000054185830944649317373926322764071298617113715429860624041480770994255323354359442758631577868873171944613683506431359415268725770529681356516506728681712821012954666901015394722816046129833176905952237904009711654827446797456607716841425902457545980406075850648350744006552301214437078211588191336062764876850229830784785092779984116872078896770914712946338575289063076512366732153348080963447318585885971309668929860798233082150893806791239736032433149047139870016702541129900901089369752466810763271499460095700292096057451838038217255019378202979149763105682483973902413897090165328444752565025181224674834770487866921327674475167739917085335006572596179967863659783023492406146761610868404510271712083047959989718583002451677814687992267668122373972694174132426834154210855988528056930033284647087417564929451818567003459093723269184115402280057208030955798108224041917537042939635238542648207637734709007115127723498463204021875468629835432377139595131686839488104983923961283146819153151675381868084778253257553575263646450755719705695748273601090203902076596239639847523797395735232676660228912179640482154483380515628882574096514280695544871867470889410042667842149455321835553331037078826377116288185510474272164320048421020217359724387629413361469385901587093223979965376570560053486710426302525532443387745239368088608992881479375169990568458572019209945152650024391216643550420943049210123910332491999611862533945093556591150487387601754897104486842486101930607261233136661077089345236064826141670875210780384366524881084512558039406267742640211706848271756533105538638333712314739694326979310813837726951678254186884081040735768667202428912000675931396214788611195786126685084668349663593700455046580323331697302269886593071980412821406471005409669302751850250657760392422666153579171171848811520909479954773528597190656802055943748981106079574346146850517622136260624661214459911419091513050876590202081413556739206949484439781857787641482077216266554186409822833975455733163381031930846206029634288873805237086960654561432631454247339722337957643749024098877142525431980770684721574553022843641638848307729608554766853580295469712842719558407476500131772326150068103804035436943479114350357789012028519092134315146178849941777234072360900015252570976270791180903174949065141169981070319063221100401640871980077341322139304208277926279269380841420096279225749594285802306885465632090221098016944404215782873903054297387401779196644405768693284397878534290112363735447429453825034023598814570022233756011172854777964911375854562082044629180375671160012799102672802556329959261182603060582983306685156376819374365605138538375324983186967369192838818492209584349718504244018955235278884801736800730703009274305400075929850980782473119768339527609053749335994811170655100083771763650480446575822281893014289695998224878081878950337852555388780846153316651293900110818332047946721174305613376233242964072769132560848191197288062445340770713975707891256250294623033286028441512690800655186527694598569358590076366961387113672635535700179591686764225673394328662296608208631943627663795241788101304056381750195387832641669866710857796785537532677894139768906283117312473266844126299427383034894267703777326087360925318207164598899237604238545745308929833399095445846161915599171091208841024235782425060194457546248682134524561870576320470684481919242717028830732016373391729953307856426597919578779678865731227906753096560007979336572066969386638982129574338951285757428012435054001349133141875380377073869501303382010065181961963389157503627120640550909102465036690695268138074238200670081946172691739678220924244358938186872403486782739106766556720662832421665318248953623059794554507818560683746252723172790859844058754859617402656083791298304032124604228747510167695278339963446122125713136568471705651950028238318047675031905777915628946611077494397421411915186507716586225121476257716780415084780834827957222997479388982195966202452447962710162224425168547394346772483952420476307093123957678090150030816125663076990402028574589876903087612373679555892072225377986728764901130080605896313992797381759812622364394630009210415099600515178813323382366043329179420909899397135686490609721677146049165746996364294798787567825820931567324979405238954672958102050017681952551183065730932365679138112788078485904312797598941416810751215503436582236035852267011275719583846061286908887085751301687335988702542506880349451194081320418087160662518715443859192866782023723614213723409184409163582711441357470945218452086521730878901238618936943447779701711762854225686678478001748986272829283966804609610413959465027604187697596881554262576955509442576142143175230371444302672390868508200517505426825789390640279501713695803992337348118667919022823028196523400222096432882239181870372651477194513302339412592726966837138123336024965542300403702517758620641059766615929860658946953228814550290392546048508953277188773586314673966581320960173483031232309195535163786094113630158577614102553150854685322686412534075037431217330774177414677896083903353769437599909263325883903023018215209825975362101404070324892632644856436587397158225491813341426719770300990753469884407143382610794569073395058867737385861654364485642774074911589489411091305183189447754824202318022744004925567867622927505393346095708505915548382702412791857485393851541473372827899824700250125883955531352579688013126314477788249389865617905399389192764666021600336237294323970973703641405220082959232857671027162883408931035866980992726559982740050745328104262302447153474212520682688458006726526539871026329684847225080460525725346266033834633485551839747953806349780806679311400078975368091250270512015496119775582869671775850827525590102869189201223709650638651869047726753188595209793634278454355105197738091080987537456622045155708936224134727819787871365744760870868331072668070760699605779751773185385244754682867784918998216958442466041888954628792544724363145550339782796951050076608440185737009425820106803765926259019434344293043355328276447044888662667551632620028447102446229308620380286780854579262209026603906574963001249125768284596227399894512596293453507536707036412493843321249626021762691661845140512788391818403414496710189115326822700408229298486578555151333325043317110049948976599555887871991917967266412311332371352289472283295304307729800270939502399218381142364521628626997174176774126431126004217392069262135436523008179677096964900532956640967595770160826781710192891062082379003909769264686359193171339383712266663069023577570039551502348334600307792505072949381675353527043582613903823667415791409688320612456829686946162790787926602598747428491198635354208262858036132700799895919909892696070398086523238624389304277514272034778164055031021361415831775192653390897595983996270338251874030928972302907441736447918676250991370685745780348364469409506186388970685650989887848966504061932418566458048926373751192119610646844122405439286675949088777987189541937845963435312003789327813585132129254182902015862705292671848970870979394923487491965803781577211046303915871880243461250625426514402190044301109254502650879944266997202232194058624821776597273615843943885968203142559201036198941356705406345501565470528182329162258198097036699324991298910056604327917579897106700550119863144694439659453867947810440468399584686410701798603415299949296821422101243423029083140044051617307450825922793785341685159117475746218785112400269832778008014815121277412229119324482056565955492366933566620521411886177011942528462589909324044076755879327842257578789793174636956452799834131677238471779527076012882874312926588331594335990061730301310704866594117829309712357479625155362783149265886622562744905396689414264055801272607662159022669532472630216238057947816202502740864229698195081327763852121953802354953949653705603332086335425202610332790415361619475433356412445362403021931193335581159076050266994399178446040544050908383265988107504769003552131877380754859761568911861311578899860388875190672807169373351779944842321081239888149109858398857600278480801969219037201481779526249669794740578085447426468445327964805300923872899897065872623614305246903414585912320133445428273792777008780549088251382186594483449556567393104079428117326454748406099533672477952428428119354825142191050320925330633336035016046045737964443212834671839686300336903937393896132888836483363325590655434814251436055350339431090201421993445527016060056501846849278104908356818153269221111421776230854997857785055239031479188673860655071832252778709956282753180906719345153581168442036194841376948920446854428382218577746875111590287192507557830861709447661847458079986699885834261187398172061101566412196361032986731986984594083817150257725301812816495270022954497400582197838242409332594534340041871785661778017414964305910744716994241761443033558556910755907620298388313680047852539958651580312418491695994364532927589511474798279792616851713398917879279693264333745105217356660768527704963672556609128660979815463013941214540928131593018704287768316561672492237359638814950997271607707243478275149529748142270953797732373416687535254377180160200336263079208290494291923166829310949585996741437130921853882241848230702501304063939285129272265418523572822696610837838696172157068039211610396190147328137580888028427758144476369298584489850888762795917532520413986829417333208515104208292356703820792493863522753031476163508203310856763053067283399081336617024098976720823094499817170989023013165480862639225994342238886120387607463364544958173506885694445387265544368063099866121719384853995085908338738207739279399127787887293501719922001681231906391753350271125772141871557170824939713718526206860112640494925315389527300964453054604537133119257699326606847672951604007597329959734574746136661900112219251489044290933299885250316422865413263695491120528775616391425778760759921867093075197922529332928085480150467066315742399537265773430365930301844599326869619194588114834564739475955987649914308423683895010083086436184858729482193916043319482015948222415833093642857367103384535759136051222632116746363529027838676546024258515933518600003999166240046397621957289341899287861596313504557829733372834847206615896379930074030095753445389956689737333657508475412270185094231671185579439081914336202113159725954543464907632281108245557290740347774886379712782477504639306746104329403845641368236642735734431095497675219497383176283512224004115562113581758776372014903342290545103154188998571084392466441397519873965344330493198017106297947476686412622888515662811566674052953104396790246194435189670491989301547488681139943688309385200006343868885316507911708998587399601705673688076229705680453516499559575468822720979927988287925345502809551510845863968786739365658440210259990075393303288095112945676150312332345345356533459776893867391065999628119310901012055935452079574930135661187050665428776932252272125636698701295878191185522862425870849933385776958975096192019229545891727840780823583711031512493789405734926436363327844710826434375762821822116229673623518266952915751875441340160650007851381899252801872651346664572717498187368083864136266862998797775574171870986584820300139503575401163885810350099331485159498295419300129190170425217118237822570918592527148995241354575719257078137538619730954250645327380677852536606808128789850090617209537371031349990070134853495014179293529653807942162637836960139379497666204392727685664066015367968486662248660285213144964442782541279428460791081918136736355482648601996729171811275625753828040351187715629018600275072882222022847603633307646820169235319096654251348149448466485248745101909277727426220116315820367168634906171256979492062671291973049181425234169720808410558812639910750752023279718094997800778121996427701686080639103660546755898632099380785034322000665146353694286744402741489300399593846214114676338911828772102460053046527360629263253114165467711524847439349587748237821890505875557119342127271125756851334681310190539255448764540532471641358412458081422515610788457695838382240539721316944906526874940806521495856846674482307013122227358421558630054689475872139076032140377026216640537656563000697309056669601289169342448177179256073092047075838481528810304656619344560989612830560924084955683989158092111175649345009443714001303102688777348444974825541775710678231784319985650529430351654421532154876750870834350842027014194143877622300856286986883864693678033142899382842026253303936187312278353703667447583826644059154737927872953998302953867135917057861487414373908528008982335381213924920857389743467306135417577768438141968161081684401215924936196509099460256805894001859400949521219756340085765628062809097999361176606787265416292786482939957807051359640219430151753800129762885439114162900886569889030630057676328860522717244755607170392496500219383875628250165413499088266009809722366524041306489882840371525736469892895421898842242915146218150921216698644021033431093939500673729056407230027933541857620370588087527492366044866836154519196403577054932255635828473132177683031968960921020542334555948397685996408733560608524078371666341844974729402825491694027443916344298325715311805576053566220931151149815305947426949423554036480125450020684687305771682576399217200707551660382790091866536284442070440443220004088537063996158206161609547268501595001563777763152417754851555653962940959558484649071248883196200005838410241334593303986495952946471692705382032686334036781851949718196695546474082466777608489615554551985041322536657083844296420016681072147353047561545049369638848165850931169026389355659497643695447118394461181640715539954772290826377612744882266365765717558691231039050192657697615126920459541032259753426136893336804408410025000545905356251119796911455114578260368553974326055203803668937004923146424845302558661947057505663263380605059487317945748075219989169198522765676502533077566428132531101282249774521789028274382603833920071396356526280729648249536390643891079018804883991388768598978638485726202004021729909176763436851396442864728717985789746502638397480533713190628232894887810777613724325152644547833666648359124120813897493261774776720724982338735592253655951553195078974462453072744152859922751933131057577971993189321753224502530832908665962461898496305272719148577197601206289597500212101677945850111877330478431788940894246786754219287186295811888635161380224179309876038306991584383357068191383595872200312274700738201157463030973556697568804076791099411216519679443016035664868316996677267920404245932060492828181828238410518111759689978836653415566323550538038990609969059836560246309729610140045334258566769384489406295918551743199343493240522940816659785702342540023473752295292065804486936387187340181602451127351451511758856129473126592365767848022002228540522206595401507794363059818904149172768336240637328005151440305484324899697029512957967646728499491443621026257875613817605464612026738321962746081982927841160706086368176217855470622709300325701289197814450341508142811360247639462684246068771473404148991484503366775370034649909762170258028724361160360973594895714593900934588039519518345739816759622170217186059590710975914057319330448003244428696049240024633396258155935703123265313788145241883000713646228986542419832016328732633159130639415899906092321134490266241611761887797536546113993208951256465724270490649251033688524888403251560708120072688427071195111535914378438638536209584544490094809945717906935305254495309429002010648810092849993617200489116200607681735556459387823469242804224109572391098272004350524884483628689664090088319521213998133057244855839696736219965769132057426750004382430840154771501379636640626655682105828606698245887065242226513482387088467085785155478692196009613485557859754073017785189483835370208548880428559336280679346150996375834613006296601826077138702831748320046312935602449347725414807056543403158290339338701155510477925675376850631983795198532768657649041008146220195531188442483064010717873125331354208803180229470950647848613853750026947594744839093039579854723620433837580390429322902393305614851160189043960813605994171097805257813010485176197196155234985531712164033583350304939974867332185975722722536139067141175374546142604150011754155933818634581714670914190983503858846514820375155763117851212150168758730372098033871971127733112394966064089956938996052712551827896618569046303144841566071707084131948938896656170626205738792919275597307208600004937043450947302163836234349705372868905497056891819076783109825413684682839795545523390314511864637299896932837283364675705169760571624702875817884622200480054760856345373755843001917006034186158314780735841229517762118183117614975628200397944268323698540171968879941066517833081086539411179645316622072223592078056535629729129144899519147618846360122577350575123689075408417366383862284929420594935839235628840415119478287108809798334889454451726815543735232347820900689591161415572471718922924047365328894983281967242586212893830556018244918645822882373269340871559127864641861101861951009744887556902841358392119988055302494293303360355839578421452169082120637087321972117106456263375280949051008391119024887721250231663131453327503362638941108707483228314122628719857871059924649933389753540769528237030251714841092782636030774627599928695116240721352858520492019351696094603039452396829126176959877757157041937883368809066701082734441673005845964863540757761643969563887370839753634404040643751145766018021514493074848184332711035330241091518768432079484147894256893435063986543453865367649323307227340178782888720724107321043882668359166678833232041119893438237847441388904125753908272445997511995167499431106763218938085182919154666141852529681079308969728515953103283578823481016245711681606658722054383429470088038894855974246947756729015380223683031227700423912693802691553937746337791637781793112914429738862850631882312844943448015112728944038432064812500612562925440206386754514818953303551767292701186145750645713317681807435120381945394872821402058453480761909784066836697304300275054998203391431841329694740555294775908220313061403537512227680935247929673130194758319203265059634363306710988396079664579688812674543393805668705281020760312378609486055589796357124739967540932168397893233122890110406716567069584456147877654496822097365850006692520043050598233421409835492332763909139384368255011140674629636748139156593237159873487460569838827579189786742403790102385432891693624825537800688935807077683207860388848278624670161615630492926182697034944409056599727179112825125531539139470990576583333694574915773389764998357775448780190479961329213316777684251412936230132782595377305654054192386740699491546313169000975118147922102807353447492248202397205387418803898239592572899471662616487990994389757117729720037811459900696693208196604680947095653653924651346237730291106322396382005678151813977781570910349056901738404163483212438729883057555306685528410322718515883815271981261532210303915868620765360332140147381903900301867996633453800063201052188257976940764701284263418232389403679480359772304146746028925054695848282295721650087573907530064243463152988169970594605973668400733385665660093567602598591931618513626718611099546084056338774684116844340889867448467844696839370677124592901170924796392000185635867957958352288163184647608583595710983444044897927904134706550454561992208096614654358040347741610055944927923311355469916741064693560713555241922856805219810956704026490054271845918769129638205034490765077031501971992783352386763567120135498894711196206705885796802297901356248526801611860227038256817489215718122998217858455183202173592668884265250204859510413435620707688762268885636035475413010322681131224694448138240730924242325467647161801094149318898864819456026106556962631202721496850706473001941968862239323656185620360146927506464498080010255452996120986006655674784689719394218664501904505683853155397424340090001984235306950537241815619102260195627887492129626541685511336010107395173898790296662986031605906587236446173158221252912059504337386658683059391431984858948769568735905170189270314951928141889063805916638188587979569449499320230158606849760765982077442650929253702026771683574119756935155786584001019399972816839957837573403115985822752296814718027362274265575162377721622800474464462425802431182398890032411079878153155896399516229748405000156902786257223419040959501933303422230863859676496705358487210842332506385075287288186945035370055887339847156054455651197599558172629280390580525117389539122400887126384841337681996927951987858924820458579730150865230031500839456680226803644958839756973346305852322701675991744999865542678109740817637755097559299342070133256312870120004710218006954128899379976116919859159591469763798046715713106242912957356998317440043827542586367746090205263056361162308521698961109593006884873554512062960150931091753947464899456530315554884876394087450451641227151540844759307510287671806146114162381194050846280467127333177453121713814561174693851656658483017384502392964094396539641030353381748058659375520296588392074064374911937772107052306016509641195147108254709182752106984189639407760341175839886667226707832602180473223345221852247866732638728945333008635427154838012671476901936681183555668615801389684264029350014326600603360897408891808209557826398393946938322328726088605711054626831784540283767449913307692956916092928370936373770303562221587974650792770545624608158759733717070924974153070239516190900542005191729823138553581478071020233807350132854612044222886392571706074488749906170746693834112442837731183864123036846161446635284061829042821718549361610499137793844971849606907483922953926311087694140852300062816520344633332681828707061756059321516687885022791852349103716968257089481289599279823200680641345143710659728438999289343024062544247577628885746128166154700953191902658196348669030381111188460230437054554184272562014632985259591248896088287554839737156244578776833601186955851542349787163310540365028600693820099540304403339378544440410331088745253995573316117316676057496754296846817311399460335024817252474986394575970366177774908791410396016674635569379894334757180741596304190836302165202137469288952749101978687760456748460304631309291786738504274315333689035620447178247589676745130435963789491938457856687467304174223979478172618065741703605319389208569573547844553644985898728579522976793543518234599994334302580352570199789711938980234817063347497999429848781120938447738687978873752911883567532798425392696733343868917210152666859613124913399842786121342073369446842146399817405345619563745304161275944572509161797887243047520797099781487306419389196219364607579264431482824445921405441732748307040523983059971448574017421115339754381348147210730085219270539474707348174152380835077746987932140015832276181987989916841850389141271231624590620875644921837516571401760280812325496558432270312792386602337070118422359854154675520978983978444244247179142091945530299219266936463676511040915853629654978196763542657277520629794227397206874518440512224348003206686473080943384263963785152702058502888202754860229005186503125479634418026637968219941648677354848008593386680761403346492389071252920891863191492986689730258972573006284031124755806958690864533727165779876378693236672929212505096228389855259588259007485870531922547782964122758153672311730630770504178667516382104109264099891004532033325499674735650849725227060085247719622683408275766042991417412490790385789687967835255227320860561972979790329479112664391280500062859538353515357233190289848231380511725815806277640063566094201529126725792602849398029542434923636871247467631356824039592509278629793582738152484034542217802407369061850467236536766771981650179740923310464436006184220391499680425000083840928405816618594740353764798965221510419303615903780673775882914758351154027192875335539956381543015682028761228354789928576788591456641734724245270154940061007410182139858656023672432283147814873770068884391220052765989031334809024051064153521891760479202854222655595110617056510193037671295700767198455004352728825342379967123974675673649486281450962542151363246742813821652160047331515597622326590095488159164907216023413849183494042774436892883699594997080615728025530957597962842495120963902714313139445244296603227606573787193213924987761617719292586778339571148724806637118140602840325701988252154131223804223093233966079328357208248769837209336799127965278611813507096494546935536415014676320423286562771301297145166553195958349816075897492705073880125291965024428704898646219365723886687344773022049998778624979366972427242439440670806424537030880070142936914064759625376183940307212779216325713569592759406259392625613665008712882154272698686716278769611591278941328138483743193673958609922156858650529413670802740448956528367199834238616570446781292147107836119892688015466804107401044382366386327061363537341488288799894656951755727032303301131149711470124379666237579563186061115094812500889665024684375244879106257858657642715562702757862523853596474111199256240204798126531762861570407229094709456128658967668143205914962522483145843498310406545651409760683156690730506587632193345206534901287044859808101087876153493333794266928570234689148868400919167413258733494186176858561865937408197334192647727939459702253554758877271480176751056080118536886636237677192223558548423743761201122997850886314738020335697449200678824977296346226874483693719215934226370097772880956304730357594044739064451331508003607128895847485573220738188409028410657116358624064606896179348830131208386293187477775481423761567249385555259424097988147716306573800153931827432506681881517424975016549069519944855123260760337476851987253979441860836373171528482041175018537112249528041111401351809347176085882920886508284938507140903526327061002474495246573114798445218772757735976267151883241176991234225257061284530572572802874106163133570730361201745288629501604143822619610162483132163399924577698039972256793531880366433171807721869004956312714234762928985876760768478676721767254521950015738524000036001735178517588975964338882152761078497456042918857462580576776465104353817691554000255921976457247363489252812308676254534632150248911057305972306840135476528586625841776956331916944451908915503384484424524410505706318638436058732738037541117211855922700557015272578111192950029029871926851983984205631560288562518377678820819576073264551011958316917566216181406725416906557938281801886301342261193460758658955928392223742519320003963810447674624751528915299148973219471494954497381407927775308661900631757525221463114572623606627749788724543668139869680128167494520638767882381620897495493122848285077955539616097937928252883210280490502751963808865057868372350008603743040808940411119646256341116447205308692980792991755645871271294172947856377986028731746015005766864096352455400176016549865323105788509400736192138443865029323972184550719434359678691698969905204594345096262736351204557746567476577587553978640384512970652627768163186201928684943573994419366914599145144002645570494640209858443429249569443571512643762143409434861759113142644974599448170696020158478227113159922700095955515454560015327144383589600104189162887950962340109750771655541290162202824968897488894255598061016149560760339399203897207451209614250551353181843579628826964080049934987636722751493878199865069503536209099885607649921491699307056445680059722807186556232689582586798990181848655038945568273464007401101950674762658514599255880683253899270147121531064656686617385072795476737569604794229696637184056056658484503351415432424523718540861979081982840675568539451033861858234273404524657435033543303241913938294867248694370782396956380286691705281982070515193329324191456365574093897123014808740208452390246424494532849132343892157843696128172912019380412789446918939153290259089223028484839330338114136947743984967512386964538435712579346477567608934696513071226867405847185357001052757380232716985662793637022386825635646312787546016460028238071834089390151105140392552715497777531625712293749462844654285875768898056155090630403718806811985743886440993610885396371233666092349525225932884125894778311798779999187372375520946015429251637459540638943014542491985909789925121384787577716331289032312005496685162775617856921253218029411736136224935927233817556721234132772480955466419209605652305539262273256548345764946983270011560493524368513832079158267760070308113396549291296382124490167089699895957338271493220212876225231332802541059005080524224542819685962323282444495499608017883129286296178764630066542212340119429014346408449065280043226290081768395514173496237219319001717371926166779560745089955820521800958397214167932808698735810801497670879725211950632853995489947730364851673121648675690303019912170700134906751233543109447965881543057018075447483542558491859808135236394234852811599558574291570769780942870910341729115770195895433310857839269567499581635904982697888468520517838013539401263521110169522317250659512053740846065028962239837804215866281647775456332219259568424859669103833428262807429534209800876512416346977940585656016482898796615422363330067472476175393975957788149485341862252942982446515407388737451021008916358522608588665812084264063211846501771883445855803282925877431374512166111211556567401412656077570913128909513940379365524768372866402743303480261454770388155252227086083392359233497942466261594850687755836261757682471984610761075293805149077142976275381850724736286885942911459448925923982306628022051974926977849257231342764830985622469978128051193512899980475816320822195619634369734801120441995156049256459384872855849692649799161173524146635055612208316071501197660002552171391372298539024917447300977192321074262840821918881048884985709670347066078383119127352561189613634062406150594020099970122029340804858793923846271833961411113954852045451209606744729549939713108669995179012833457796028518347370938112477434809954759338717789311408939529399338931278141994972548271978328399060514886181197428316063994959922758446237145270141574296641175060092081806573867908196661172051567167475362213036379135857865362672409529558301599983452737197431636865752574056397452548610447083546591461170620316711580670173589646631172107869190540303891459799447292066377574806741745355781315406981507288770719784985587896316425794585033681121068240317717248400475256756164591422440700707401267247447044281841347812713327177861101570386014504539684590135381138413520389072206571629588198373471117854273441557019540381110381591956594298983562552718482915311048504648713918803393806575361129408111300843774270494125607181388868113579689917055470453471351378660788298841664972787017681972689850406646652243343047487473412332878651026558570825579953178221497070838812768250776295465657112981737796295458825175457211953702167186779707963012233174444934473702776855643803844664211735905504901693459344192766701596548083545039138542589704933417022736422381822313617408318251418772466723434595571973474848481253548495089672003582741905502714494659996484257598708125089705800635733204082946283867283727290367728921911087681391998812105605105697644839223071827324514498246500276923708622156111443235718520100480453235448651630565739352956042760533243630474575118002115552045019187270173172186977237293488896043004796486457464004005973428610900381670042782774174222467669891161245340187638872786280365799176256368892599775735032629875937245357228078793237965726673560914068910377041891775037169946796024159354476088073701806407551514122757917289755327596303479450986320943743361615410446035381916190635229224937738089028829249008237133320464548842257385841265855631895604276789549946541398269091184170275977648569387245755260331533851106754770252334628876215493490867185689105239338908916866835643473807627992956650023415330475377132555011606102180570794936980678791320442917637824768707080312328043294766942682651851379183010495662609355963746718729357374467265009913584821722398910663178228908364530187157253947861656592714691946442144960959985113358474208819286741408780380738256940908949430551466610375926711053073843090702524615983592748871067753106808853226069967285897082424896664275864534330300856833085701480162276557401619749362923702112100824080327907094550467977513897476736270138094510822279410953244788565183203701538020372017990048465840337290398907899690481904376011349591761144695544851575068809618105477447504453154757361716390685288072675773960441376724115540404808021186393491808855753184510170301920695730317058588481795818322198712945854124636431559091147686344823084328306996231297615656045968400104808096802461723634319597695836248775344865951711757998947296597463041887133777765305329251004595753912770352261205996825660481652529697531303199286276587058415180781279442354173696409946236227446458017833604055872135970000088317013145809176817094885071053816251450932825561134374887501012143849457604841537189740742229902409890052219973971077297749502043131664078299675972291301844799477343068352238702719669886086187588813591898753216061205590196281806119990707850486939393164259615559846128061201911257567986334351017251618343453146520499568176182975250010131233349963973433804937313836597905702814418298829122279819238181843798817750007750579087563130951197693388586439212127036046053096932083731006399180494320247699426922385796007520422046927575179608146822796027806543087763953091470241887459542857961330219278383676674364938704217546369929870323084268910531709243754439460162471448953212360417197589793652111507223576640838360158477076852463457397347721214108410990473721342416758984736409321588079942374438197249490333725732519735724703028244336032065257303675483206146933417762765893511784272502368534471012141007337191278925912190468741232556610749240240377499591783186995025753431172883838431130035016612749975347598454950187819624964437529163513071013806252155742534548053933421696516501070903336965298483996337053870992759931939069633373039207440490935115159038265049537405215023584152031210223771657939570018150487666864613044523807124844229610485431514795883646966501977454264159935023471993486876114431273169632916330160846156514450908359094143295656232710207926077571004752148855636358341489648276058626353602043598678289685738125356574222418121739284544837231116352679345114201918815048807201763752676440600503074713929426301910726620102250295862119529471206460903828314794608424448421934286027366935968495950332746958746643173898983456900592855588940095607399264423404015838741776995636991810632712419272386313590986544614652975949546625888358108153054589605119974613630913904277651172687201132780020326065807950254966598205619178997670185231734553668791598525533527998171914297016337379641696258125265753515296312481773388621437332033666423164019383880050652320016071649962707584282427377559300825762476853124349958154579544451949656470170188769241375806083651968899482381392823905748485198568024130783883337064170345145890434751988882117418656776165605381989239894049308326986906510134580092367397865107625893731231037570068056744365462626408643108519427598621970528115933329917462395791745628849410563302938929980828177868508314128570835550021453441258427287465196750630087640110878679562494700060315348609086898408551016928632086866590797623939190701520024616882163202882181250834277773640328345168353032456576377392565838165925980052153297187709135216505950977260248999365552272539229041558604581005135466351241386740197770901657486140743281118113855511383773157180437046153730166409425214346784120650206818338648509694767530867673887061656485412642636840782076897013334194327281225191195638702550062791866202394915562351102171609514737118121788879947415064312834060675202849482025706461570327575531365542446815862067271035302952397136304855537882487630351063743860666300414566528062231645063831925280447215964375233519784436061294221924230551846824660845082814174394960352555843584888170833659813349461580522819265345268311692473718985604068675679858935998037692519458227396936831215037066685091804192541746835121848801178814090052143849680165776413297561799860965112085336398059905714878539340497856687578227781818803964147135652339684982059019453654784243580498887749796342159694792511211275522639287509135036549101902374451395599630274931954811741422799403565179908375439465008981683449008391039973440286731261913672951863572402826638093952629068658234306641919256415881714261091205785213263839822220492448286324778529186126187689892916124091769616813568739686242347825477303885406256108369697794327252278708933453769853535987079314703450675194044793786926984798375404694635133708929299754070549519893228852000316048071285726548475831148591967897574755719980668642684186019357422011449540317088695979725026984818203315863309862581353993698816987217029740265326505566516011958799168082637786344903690238964263453545119404022357369269015064166750851967773813325726441765094681093246471807741008152118661431413755402530610410317519423214530966371942085577529518352014015645468811542451241382748732023657329306098752067527086628799212033622403924433818510089114202566641631488959496023077960419860201236955257518228776573890126762739245414983376015228400445812906383132739894597612635343960738928450674341625340901991114766666588567740084722811745897613266187629105298987297616924051601927090029061565305235094528479415722631880515597287237827047489060350250122362140157963064779941338068812385147529048735940182348941039733893998839573914846027987198231123774815195871416953710956169062096522112032701825879798621347836673232297574178051876054332754035489106891842741152158045679623618234266800849457503258780367383838493399588857969305704870488196323147747808705256390036130649221342698807465017235694800819505346626880754171373066998119158172747625288507068802443417280973420369570170038990578337418811559669468120108728679561934805100512333847192471756993029791451454300352995594807928882286635305468495786928607242865974613250823647485636148639034324234360907929505502058005964314195321068917475257842983900566051598945490697889567924616654294652550442432374328474522992414728476748124576799572243854276060659961396501911829316449145390043664310720200752959175880102661282176232887048595365686390048496015974784057083251280076325739786003446193223627347822300715958096063305743837154510851621876011532601133267756991709732737950800380637946439891241108843654451432971004133924497921941430124513476430626098144429862129236173547982417812819962729263790668275736698552201637245034341789323400132252308435846134818755606514456925391418516219859576683812450124897283455133652828146796235524359189134693938716540198072575950164667956912817328323357095769537551644515295594733281504444149745149936960317106545732986047909831741537899723380852327366510203860208300865055338178377899494509500722496695805069502548050177086863493312403588441530021929519649513500779287389324339585056782677972197473808819387639536994408913544878033041909502350146367341699318710084136972963577899599815510106076326577245817090568082373717197214541374395804410125047570266827821674522664324741911990058454681325683288334837887991076156227192468342631810314049484241499057544933393845728757365792107571525565155269953242790802209265212975699594565814478817679819781313101981220919645919018323102146864116422952640636038865916098653161299438375775171455993532398425148578950000514932852472561136114435216675124545738687842008160976898432344683084908171753682657479576901560660579395552216890520439152396058526767808402210698349863059797495125000673059179447847991985221055982274740550446573521019575154644243910323792955087659842482198614166385801320583776984480883451111815574765346546880023761112843612591677926675538670741135309835236170534364157869621667416336341135944012452039327392250591471958995806869645279258176574466689444501823603720126884681380414801515153976412488020519627242518815702058964807341584541503836952825715947465704310758558464402535496970884059458295218163885743036732731082878321675170552674925512382325219273676944239352954528447800896385268141352773460758850597124731378148438275414566088544298643546835953940307179019540119683240046732107775284193809470635283040931320207759377651291654362984899376344752154082364460094531631328494950609220435203697066459839074835512830013995164040834878990993899843901604641847303460976699177329843665833408503870678840855898809099473694827385878161891490671972167089393305484663708873397342560629554963134186751004227395566232500741519286244220661440762519776055143183462693259185730157055671836769107818061077753200445067284860292412706040813877830695427737932536629230486503117808689804014401270091860924706787240882280025021916368461325677013344265847453949619147073678066916372076980429889185786866625170189357769187336704369450510215258933198427081159130191402005808700828123681207749367958773249020663458382519748063077301818056742322496671021369349512062733146953451521141801298671780299983130793042952260463144795340955586893481200560357212364950623422478820762561246699314334638606638887569297348470376465407174931835383855437991636547838498347555014088134717954319977050457305909003927805654687084735615298922399388441292093235495817426257760887650310115578054858095971051550568119272863820745292271143142294961206436193545054010153730793111722404460172391923170286520266487001635988078832797665949998402170217630615580304563656715465133703921277921590068488397037393532471101155394606933719724391985211073747122877901734939136593546844760508861995116286740751953892804934509729706190116184091619206660350063180538305623947623053009841693586241606875668388961625820435885318576908697464825570166067304313455947478369733005086289098269788063529396666130889802995251852694333774595668740251485037261706631659598798044017310232571125028005243154137013951567544575242190601032345701303233987182953529018831285756160515659348482591867623883875438935058341548452171079033916333455066244578271993939208080935475675418446325628227642825015939972905280122411896893468235822313241214713630414173074698809685710837033373725200792833534359912870990355901688718465153550801470792669953350502523423210905905530834521838152856454381107779837277532117591162537365780785010012650646939946134342516341341335761750705806152142113867281131653207094577378225825507773065966032527169056844746510779460901310294891014020436013446798404637990942605678269384109695918375772452586601842225850433361709383391652009462181137900767870233934284049867564652443206124093764612093422483511602527175872922268440478654339992272896270880511064948855638799790990039798692865996563716459450291008531257018613180538839682949541944577932583210212008350254980682229705012575446199031968616721641964641817339460945537305889698817392870106361400783845256383462858176952279049366983826453037167257041672098232200447860065900616569715350696560685451009252497933616193530725499526236885675611422157212534770258680495417121164011420656635489551961920844350688390640561991282193796500945712115560628583316961243896116520069226153591831028313545807483222005978714067222740933466091309361245387774444608244883276861348988028492948577689217735500997168103111055861792185967550388384362281879311453814779457178943872860455778758818082665570566811990769497399381186783415983133020185980914833958516402899604170628352243950497813863637392372827862991902623970240103886792228616637429139628567208105431917124129759813703568653731015712576900980677833332295991080562868028518906810173819403937070752831416692075235140843765219704302441132330184860743365607072348785799215750448010359393614501047886154699831937084643021117969937161476708965137041906604040665464425972146749098232929628407702943118933883964966551205632047652672460964164870120512340755828906012050392463560377959709774476053648755998330475995620681699839514269305258576331940804048974857174496948749380790925265606386318955141681163377453773418591306780393315602251878052428281071210713025160691286791973798925128881175442522463802421570276914403858769631194874718058944875341372346151010936831374327137373837815012601850480801377680000368868170658000282448111742973865327501577907093883857012191891801412205825427228794718070773698877379669249111969283192881323376949589105562515735498781762730575713637024824302235854873675641018060179237033448235744089832905365868652163891131723582727093375386950735375223756235818482917805272764968762331668654791298113314460158012433402758363801506596905905410639545067979836764004814240296987667628352101253783322281321114576910531530495811080132380095433473218030648420780740582870705663430114688277132724055069042381020245954204775134250613921939211341849229574324221019975664615153869031694153654188301669983278821303612373311807247370044971369853610089746985876903061008037000402628975710612384248702467407314989585612387325198398359622679821043233572458958365556176448765446409018980077589074482348611355754738569366727587069789339046556344225694566456639235863783388425424098742581339730751421377139753787194095194115201366723111381053344754904312364359019330210004174830662666160725825940267007018416658832745157319599758723258871610247704279643465379870708486575972065856845761057945025318024770346739640280850404176270822725893032270181037473526695814962583442032342263082928747073097618953409767851003203538130153909500681701738924817092639475635224625095553993990916035880065956177486327072701067657543068377720182572780775549414999522717952126361395621578003245064846044880920005985694158926370446355934537321761133071597447640380308833361496660566627458174651343090244580215588597608243516472116236746144894507566554332624847976942286791434525938318305908490058322494008899327946005777623432792076104463853536761761172520261747269343538424184089167322880290301521454680861184104564574350836753655524045651250570922844296273479294728516864801072266842888337137804818376852333610038121426335385433222670457244051543261114638101664366745563171359859782561590401240607105500884039172292164208628720399145419594600472595308175053576152867841491277966176467331203833020513936852771623445209471158947116227356011109009568769204470923308224851852025654878320568693250937208647335741802039201302085819932257096447419744414929879040427884338745159471050785844007846617211458480905724229784945874627646841853942407697202546586100786449185445985795139006328927255364470749572657419160736974294677975675355532409203995774473411520358793755331070602879862307384485744232666311524821863185789461087366176312144447290997308013625570058326161562587573091036082728840057677228338510608741286411414274543657721918530438425964242309058206639846980474666713386602424806307971705817494304102321057608772056466904962255224142517428654667460407863118842870996085940316214040945371040115229190265447720200537903344937649690045824776848093085308058992563169377059846509334721527261762424151412116619789579714786452851393438175217773239089896148431462216104165129333098712902682045556553218539889635805262921317361689419814253405552521400949935724693941372616719617299306436970062790323452749572672480384924432195067036987641788028302846107305342189789723377913605730186947350662564205001766452617602466444340437660581658179852776332804246186543988023060941135418932260656724423904584525438652175228644377313077345078201251358682421159054438538419796360795765072582561109689421225750463940827599886130065668860333286332051994219721464080183010625521246751323088315302869397672961345468636208563528124855319781427809099582400595457151830497994921904118038913720725738679558276382068354566071215832744415425720788383766977785144308983815790972347120329791682501134029432890365242737353829075435072284665840267154609301588814210285785100017458148550749896123205033459450829669828344782944593872780195695690354249914148259982552087423625417558315438654968301280201715802808679325471740763071133593645315796015549007949523254153611406847215257772008784082312555675736754364800309228071460854102599184907567461885419289524587482874235313503575765398495369746217610355354029417245492723795041162463632491493885382987643722698304013361223560346917304825539417464009565336234061109865584947661551334931806333275638421497329484007078341823409175820147122722759760224551030200240598176465199721337559363014860237493078709271958995150249405733263889459146801153365791087491122459343288010573200241131016092809496269024137573057724102744679609604378508045885915109330742021366522407441644321136379868724125426681600911966314669632316033657072853773765301077155599118277597936648903827366933629202382924879071611097110952700527613748762667764991832642556315648760196598585749666473243235623880113298173520315853401527019143710161650236442086657996502991849180560496951697874300945086563153124619632944810656394912370222377872746893771427887430948063019947702234048704778697377715641407301601831076980484629566509004513935886580987088885108053776838032588141291906066227553985187547775319929924408824783519219139922314268397024098979130416303095733926610054189488785057492274575439895545474224964077179807869061084467396839518139715016140842079673977987502810036422569546041587463594543155495866125143595243452009100725286351526724057318078157533300281970301820788132707687271816084412652528916078746301804396164785809407533378788419995060004334326026261240022511195251576979243865323084727175996267574875814785217339113930986983887000290010471825784762718784538922475486929631623806605636205505948516009910933599860705017652419585780077716934127186793498527014270759700972291298238919700896939422342547350967649344754151578986539614059565855355062265698485972243555873540617462058566552656644265849578869784457492280709743948925834254970015101939078512455173732901349635490216182854266580728796089449875007943966918527666981794132177644560427873153067791318123153058120599413711093011228874884644872750030917681758790592791843949486107912922268388233606238561989368249517708395026092193084166584220251529498149087511556451112916551639197724690456796881470470613944204149888330728538507221375146108724041732498977484595015773724655874991075313219506719598804768147214143178994319964277470445496021254731653799206911487104765662336551731013930621872241763360162700930171168940781554859424945062667469561603460482377442179766002720916720511226129837925158629012110890756164376751540924559661475229657594261503777710579255292212550617004532438446472481955566400338930317518669541631453626693842884463047081973747964652897619505942398218103876136541197531191893793775316630416100160399059313079175030187777742390413473730761891180387765587166726570188080053001214017628153709567990625046791366914374551473811949534814363252150047775123549040318186945871024839665834528759478992743028939610078890796880909948482538101222712870051484220268199313230211020400599732039429516969884911218388743472135628608272628337649077573446974142310450776834237167581767402506877771954420532301470691332782370252796287787573093836235439220710879907222461446523617839585670129203993054775866905783406670297192164119944334736418121225122552655730379234491756959839670090611125801175219639387633221946274733687672638924600982901879498043577236639561502645391444501025228285191377055154305078343298975198323764919811827331710066164124827416970151883811164913060586754153522136741277677083488048704762340811384961660613442874316260488412142916933605574319766241717543412310928856930776943415833090200967684476317467310917697654934472019079343754710522080688755236366456548718579836981922763749749468161613068504930698227862455411432945990018134412789537528978162765039528814340878517462407492842200588770516305339990798799573018155456757822580971472640842242678721757639707845614401427398792587662616253070214823109672167636752051536182688466168767861964982804611504756645356419199907223017040612432305133929552194464183998428278497429117197152695808313496499263598135612818512992851351861574070992084647031873801951084277859182714912339972913790883144567002821123323652880148446881789337534265075834318631358996497727284862887095214815685377143110785408073294477869293218380224676808594609902511918434786890520608893030958646085999358565505163323123728311615111097486028451027993586654496609425532178771607624430194771188358020476491545213031538684621981375299328036773256247019832945534282823678512961367994997588151098200274297224560108345080342545522200019528894356629384584471189640949032399269385016149525974790271342380656295364947285243759894688826626614136099703493605439245165443272657800805545276293283578246794058076729820660091899749129371916044930594332646274185401021293838435789862374463439743402777962587156906857574247024544012115822742768763537717065998066139742792770550888432663048459387427525477592248924095540889264076957661901260561161858712623777190163335418610391341659478670991012456526364626964624196189294820380857650143183134046190555004956295650889160284598761605404549100094992046663499818800428312338138980513408598513104025805937182420299842953956567130631854386717440176122076398319482066518196475406792349238027648620711790171484558229833623011406448770093316350159043027205649325877201063212151153595974165393370599447443420795146206389463640879500925842096646809649530512023733807372586009545999822035241577462680197743164286461737502721816015232029237049171288074110432288947957943897227078927573600359115210269691209168962833265142269314967548086369158774676760824745452371780179920764510647805664811647907922108089414804338607866240425985210165822378251863321028443424039708238564736323134235115028850227121780686983494982921579427411223492220575239715163964400313458239869488988367978509057198836133618822811298037325145487112737093433576216968138718532789714521386088937394649395051099164526676319478070429628494113176058405179087922172244799221664358195534334839134543268129004364228767382613466074135289321535790122932619291401322568297251364161855728703129025604557348410682482181969925494371812672374257189137906109167390403217296238495455686632518246085206837756557675554502860122773803462450098724091866175914110039159700036237385711852990394897409498411305406199100870765014934273241558917088416910507305885614891175024141272353283393826035098305627447230920539064157836361245608554799971067457322100962233441179863144460435683816912963575567611748258212787999023865111405398959148690445877470680178732379894373718364522008110086122313482885602135642211697725023488160881114761155001784007514548901610109758794398053615441405407599587833683525065565448382712312461680195080488045684318748602148260664772912767417238594714735212002606738443706725074354393857256231118941413841207222836550493203583490021047552344956922559709536429465173454647096522991195217112325873859130700522459400807178232713026499646588143812590111212796013738907164899582762301182629064950814080652865995782076358843103987929061006988223592673509932346285459144877016984429617859916357625260139145723731436621492208352314708415978623950897247726762738371124679733671695068557922091412529332340343473355788629259519874384762561037257455481505104073406834907056473998026137645702565411960795569793652442555779766620448096215878963549721889644368569954581055054057999214689503779795864487305242170506671202015826663590824190779983622368506184916737570520037637643678678030386800648425272505440553336315594918531786639954204928175076821595327746991696651501962225114573382821091743437503333112891033042841626891449388147872278319068875144811449898993771905610996240850856190545286676702172985962870079238971196364974125187336955051912094150228658914386496784469344135015036524121161792053408557974983457920955478501727905516901788425229376525061251420501616422667006519463254526105812313150566630243613271978166305990500203367821235343970338583235816801631218289389738011529288188906138526608029331491020408262414424192589552999902752908758887335438779451788419791441713666831087697100725778773853925405575863209896153741378787841956509911789208200493773649730267735553855110871642541196309381863651337220868460989046969851360380397263218109461262854173423588422535020574436959181224862239851368654843784735540269889379318557878702273307534871025741469701692239939323268864801761144565701689881726204925255781845078891291914827284927477366176574980855910987504499558060376936809027774805810575500952977147449965088906241737440449442536222499371535359807359490236058390031639539046726438818627828438424847867810501918564639748154895561102991157924863032912405031423784159665632132763844139132896088741084671067434020926693297144639158222861158614457964020872469091977816957028737611154641828402129658581821901522056508193893462092018324054885358471405157860869260124183527678082040595351601844592294815359472981426660259984935030421714918079477019487014126876087946160801504834487392822823700279009928201998712998835955403173771769173172643722140135072498615733402574671563033260444930289861516446479805722098900668394825608750473364671986519724298730447051989430938649583476697369038338312133946353970083711616843293280249741135489318604238288859064962157502973377386571680253572614543220528012725907406078370494878162432853859219673199802387289482611293450437572207777412408438942442270695941130307116710747256777146416520388177339024925769485692874302915958522725795817653473106347300585776303142846606621514346014319283016520715035971328895113670773984251911361919765943473900853291342856247855342632872902343051751809945078564857967409449929653866457012623317619548313637437479543253878926344599266327653049276179301610002681679570291285157889130486048197862971116872617874959761130203339419449239732902049909013745261724732502783262375565153498362898749457663257226259924639086866547177365331803658743172232525773361888948037712975775817223675866815687074814991413916578572328319838018683078179588394256266331652435189957696626642916627405342576649167366177140642171113894842962873165169169070439344927624365400807437963559368595870412400964662508528980816058094878091286995869180544140822315588303061129684879021045405079003230563466094784626735442488674220357989616204084453923832824761736552123366602636892044841240799143595796526734380742967885204180569071758278082652474384372338421574576516810835317903394015986714296482392907579588834084055100481018304931909483489929146330205439466416079563848725170103162836632300783693714079539019130223992674912011924023591480739895668805273155674450173038478114811991620415026556766841928735138210649736489204902686400651910153060978334936169845665685780284996232628697952614955480100272054031762535426805789450312785124775806104925503873845496228817506324157269273875882842247708785810582817178875581988675226842896992223285910933394316720825591238163528961588371684434772549413588531061899962245994408402085761583149019578971221709588003204528561555812146796573109756059437300974520008127123765596690668641979605316896400969404299634317111214244080818971548815327260959174888656522427256106768286121205393445407975928756330737064246297386673230785541967305674517002494148128289066212519991384913780613333965483209674081540877745376432436682334909617829381005218192500500914427214195980901944443730509781540466420402161044146724731746890672766149685454110711283428643062875383683950476100796126133078330822186063575320074061008779074469099349602187893981066561711797693358643244851152708485449574165251736887063497003366353676230534721880332761371426165296398476230364837230218352831072543784784118140675419586280822661380379043448143247752231463614581612746398008994943053907170041122349359903280258948906721545432642439910347991306243219910292468055760297148763541825136133684511696675213348637935481035957878007677158358252139568248511053591856168250591281697053291459220730838177042251243290065697802352997024445932909921585453192799734538021965526766558197781380596617707074547904837046767338800943846710906630532042388307051326335155329682602053388094138254612844574044283004553796956037696970186164061980712959404475035949954457017000964869336895306254976905825848095860337996265894629586870418355247255497547101719200484992624898695751093888227644139386311753128737278962555483076400140410387552923572247711621438391122022752681315018670043186130155166428984058130630696903361202734349432654070314534788189742673628183657144518174643502813602959726163127228732194313332729107474695146604346892948552360069810093779627553988361216385721962441385120165347697593978581170799812079863262226128250396670261441217815935066726831111701263594918391733296859886538259662677989180233478356504943379474405020199420444981251492982275822529787667271282090549801845937939992498530259313932184433372809134730512182922047705976397170913298346974270458805788834236944649069666903133466566309866115663837368397627414362101811068700763637091977066183099868198613823235588410539957814796030793216132815467437071474848823494145529914044146690561291827144230028596537655408523706901042376393014533691329366957880372009759963209940097547254318533681815514004724576803503952666531975919779165379334879450234045562826162329694523135419747120393195841978113753938007124111974939410113330982483316058397998807688401958676125061841404933327670868230347454305066250148039432551826916447240191080648563292324927073066548760600255586392883662381711159201212074906564805534838823660595128253488290831410655106867682639031980924523403330460768834712289060717082187824218241062461798987756395726743751808881426042693296284666073922398619552574386524751127893304653423994450736391605682616718622905315574941729790517464548371935928796985879083064860292913080560276445869905480001802297115586024262881223969280698855394909433174118085783223429601558834329286685220910251011180849518304107941794543089168749074951040728392728699939886783422149852035502448450584207660092200931192064549123078135420552601174142689430187410677212632556839787148011334720965354442854719191379738718359859148759354577219376865074477865178558894923927353177883978311009240785542349096444335887981827810874559764227860184985277916779116193005697978249099717683363702988421791858086419094145860133017786306105537398293058717017029346994784741523081114027320517901530379561788108413452719746845038492468462987100957298501193806499946088512716306222021635840053659550093693135080152387840215396664564559150009370529818423961883443115768429230070148315069747825955912688342902753208582196109422714503568910730238788139809439889285786044513475628761337283824522473162888970706804922011961656170090798183760707575121836935643250892271765849352234127131915872956484097813851118263689105751860861291188662285631695286414835268131396819125256291974580540271202189084233247631839357018258270629883345311618763679566669045340993807628832375749371091087550832014261717491771653346285520443498213213131397289254480278270941308530256824260477277145288223416546004218775532311628636778961962558893668692138310002936996810379411016346692450304332872129683288593898402424563352063694859378651165017996939560223573469082001911799613770523295234463657179042767752160575175302772891522079824037546868959772563851415275747789065135957166740507759214852027590805886989877278629921813457841539611984205973904955320274259759762223971854367837063086487193002228922570259933443555551150340945282160055375813739600215001089747522706875856929323790386300700827595996869448620836715409015370184741088806872631036569708884187345199010317199182073355717926398528369287432731004158028960602650032301295900906566497622986313002042759443584495132849466644410824257574773692655508013189484158227873516081854528680201859450209012936598130415581331031198240645820379772998949312183448015279458521228124912310507913893212610983309254570542313895664991959782309982151172720198682364424028976236457293974396333551443146225624687973241501043390959411747436480761249637061210932639348949357377069128280251637527555299890564721641204100766886804667687544271156728196236609979182384264112732755428142728576636945811470319937869459224276612729318845842458980958765416537391507660119184106393479454229640573320251562620227814448140117625518337740765809825080632905365184169655047989790938950577979262428717574651982932071365686980173785887656200685120256447909281570118625135260908076806852695267865479875035870758619358221548456861554053637190705756231686746738235846683044029012913934913181279646156610290316205350123585060183398084046661081023230747041598359219079311833534252473854729673661394013169319684114242515631658099214619254364874300851081062151730360354784579079974091938975708492015179430995519490047419304255116184525897693531936159892138904385346487530856939996566489977554931477827576767291209370042083624333799434130015236941931937157241860925150484185842618803166759213480278557389354176222844065524898256493833443171367915739271640552918744114951865195429573422772065589103965527063140073805769340433336235481254905639368323649012087624687128709433395425722347402328845616822707599558997080251510902943126098823930298257097322708585966119696911366357155880823822924893780805030989269938716221145080287761344034335555603516347522417603092693980125674471389360944352120086835646342722748593387970692723139509121738840343028926589951471100257525734973146180635134936406969223599561844681118042593502321868883796757151980307953209557042801969309907857890467969063393371442455581478201920110649789706532941404554463966751495101595296556050504214928396236810684198965104309575634693377965723196345690994285608326725599837904946808484436407114784311400123595587811063440136986293256468388980954669905634452492752560000213354133639464719311293523631924911294031649373484915118240625874326708659914822755803013901139424530441486798138401554412664322671416292720590689298712269806643367611761767283515882719596745297920065239492663751331414257212230970784712119866742991879287081675842510619525142216225852566174796241873343978692537948992943825391755559097189873695370094585829999334399698201155138046646943875102474091284403419336521867844205455711205210154221577093868500409057245266912529089584510475847793540274152213118631444455245716599205588822887286394673961506254303759447249541761969758349420280760987237414297621516721843130842096926812404904646578371169240633512412924335667121222249314098316282920612635174216257375263563147774095036503076326086134397872763116803522589029905583815698946583474759727370829386122970699123547405051142570252706840462643962686187885734021994431102826189397803360369181196083975914766766632936424602286192094113883895561078814686882728177720149030368355953120303040039418742687615246502689599659247218965678931096078984793784192474371308255278715381055995273955237952178343518999051302093602006090532338861691226830200784765838393317064251994161676721028793849878967523335392915006297127538918406721852682880563328603909398096601782528474022569718402506166806844625332035396259613761070023325304788300482876151342513518018618881431986820936870162031271341091224640027588664399948401634396894889747762855535551646684545248286603028300820308396910340474166296617107556105549500339179878256952423165233247342222397914929037793340845790621702753635037859203032840332885810401995363750297818798573558183437926837803645943993282624239398586521447598465604144752410589793083986578444341236157765662005239186977961051166311719009073421695328740450219764674395392584754516167146830001979465612106508177883297118612811288698325315242178529158200185335177074227724988113031586567894582818292128926912958109559155611244898797083783766658592874116000778147294531790792707116488941757163394689394375614678925816077230750948582915410593025431135794203184128928380708526054223332672615043339586604229994218156236524595234328856961120840147088467766200550769267253917201160056263798058168500109321098493335332043245950393311273716322149232433553630298151503129170112160730068285285646646697138217334614739418959441722176339725233667263205371891988577538828432442142695316728338904669512193710538290682535124318191597337779357801669737345810376196310546639459528432818751917175731742820842157788568999217387346071740821518141018418309879192731506007456300497355174576866696711942530207565333645797338546426481964674420660979572060096182916502269796250046398808132297080261678933922487197282050893725716685831451250347824647524222079475000000943159205970768897247788530359852598373306048840272078678255875637581389317386160001500322502459335024473626864702595994011084333857536904387634134057271292880811214136999566500366736841593712375289389848492953029396983308246246725311874256635606862651251999060320963552049809974037203238941296760429374373295408065669411451169164213955984754228977037216363952237885230017317907468863747539641564244449656156544890933421491940431112022953462565904113255741165590445736732401006557001362254930878819137460077278794841963288383822781319863780940211131952720361829404661778861583766638484630618100655415739671741787625775338517691162182650883566926261986107958416823330293238808377799705044294249290106637792378688391417034542398947078336670548253601600465887929334697356388470886730431042511941199268420878347987856423908113627879828317740523401458731456390714002034840403576539188961280671252056353792394182197947914318812748154729811662532175400435212943722443771477303387892245304854018088758949600615873131761603137411479160656952131945641001338580523234822911387839840466611722732755776198662580290313810906310178819896517123321434010129213854369378717306987377317166922248374633278709773007740881986234974269878230484554037998404267835105051317758425314369454603156404365000114167766133291923246179746476161046995690985424906182248944912893729754738185794182786003802185810179030772776944480260484547796347659568850399953128070149442226527908243006614638979301941188100825123120994066270446635478890491680609007850136128204933102039021133657010537912751284706924178486817592239704874334460211367533719695530025310283881344335167934506924841165087704456114160367740036760878855390146069434304013619774387741433380415932165134468492329338787993026717140881848676305265985099177496452837863916140035749132314018046555713555092371134463200661584145631543244268770409666306370888301364873773241583028836044617879128157678229160955179361057131993699108486992698083266891175736400480806538329237740517617149286393813751262998288829596808704614304653562898586514137273519071547225003341913488556324240054657584621777067629235046831010366576422747304941482091289088660691106848148621034181411353651812299547736610520197323351722538354122377736171428322124719344880588002221871933160816290294539717843995312476430592267504614250626568131304266144256072823366959538141172611187734885303642725247295905139976604741747876944703494108437445546583711880916638800324650645282172014488034909873636572588369729285973969835020882140359195610709497295277224501196094854736453056457250315151906296453276060948496424342949723472400579181742067357044866498184345716024093582384344050493547767432292289851650405195586448700258582691838361279119184662690846816990859171707426780305028200181616917448364629075463738380820848914138026567892931517972054887646130870465051252437921509231552395236227617262400615220974440632388202354779354413418545446396188215456625289219979665509898115869416179663266634882776260600975345155935075544456224361129372430335778322698383530869065084240359201681948201355277472287619609097088320389497179112092553021540895345198481167336019034965364931341210506226426106751105799113315397355910788262118748728289131499489274377204572340618210827862010279124029945534578218327203257760050176399776647069187989732743538054209742550856832511784161305317767023892539743020242627615289303128264474870992763053696984265027212830225790255576764295750106204269523978969950451224204907215532484711435318462293165286105537216886855726759707697366941295492415790292584177615496628946108581518841078517174107295836659590845392933910890583719074065183708060642117876343846771139051256685598067204104514402689840847557401927003887818622775426517405679687744880970760856365331719902382866423345411472033403847024317923093157044804302392466689863452358095802703046405138414048934511756226605136534028902313694509189349519562719626866703272980409220064958221440142544522181107155007889186808779834866657114046751725001250144097647007203835204007080628355068399365292025765383624314065791291943214864055177860002296755472248596262017866510756191947797728027805181085920634593833275819092000844694462214920675936776666699435712738131577172357751909562720183655891344093224423072620752068255945457068392754184876042410610909282468203830447615123591589690661911094686300866182281731677207005595627342395244343318455967921039138969374988268635363988995763252579334996022609907580367945546398222976523395479939679409604467142431879947256789744587075846101265189138971253308897121681853546738028303814673639412719584047663712616989321153070931906848302550552079867878133697738920834984317359117074231002739553382079450030809074574795102186746615671748941772535244677872659226676154448511978504845407558199411515713328298246239998999817281850962545356760185712121449929281120360850352843370003125313410322108522957737282475029590581684429555354130897285615984186476131835312986268051936092742430934955873985346568757114147847715890136695923275191881702827513578237915839469797022635790361227522832297887845590414887630921932912063086485139976745732500746935033181520709854111556242958111923984022731395752007175423625468684386247751975059898259145097391192025807878447456529396743994697640063140265434429731871292867231719207962899937897977942204580184802659837487288992765485492896180371334348375679744051455095410818548023019453025093916394527569861061027431699082817585615278855442285654044326476460433974497181833285054804904131079029215893491541842100888379893833977178624774328934672371192291532515651670904775261666587525042383896333752891367783915324517351626532420095467368875931354972737368430182739779352617213239748571734447350622848901324485895633932728317334618691663298582818102567138735845000128856194321392348416094260009461108768157293287455637371124943099393630733993397264224499150030210345736928942134746743283390316115991707245416142352898425124458363945230560603578736303872731335425215351486787559782423013774771110628019288187067039472363490154917298191469468744765833569676253208523065059031116187768392841464463897021484446512108610083081524169918373066491830630153389790311037993903742774205407033167888357504005754968297263589030267496711327216566973962469434099459030321197146789641406397988831382715434247437002776737620885368045427268477630569253311669452467595572590120142829549933352198346964176003962761730977334409113514916519361470526613603038582246047349217900923699985655543369214708685997721608977841226432243234842894733054087169974998785704036364135988119907260724281054596393414529064228107976729384674847038402223225667260507219354075440709472094226633673414242844607524233408729286838790799133784876803185653650666112497896972667737278092042664325739561883642744312598636553339806996682729819936034659760340759085616310200292898229773929362155266840571364479290588794668980457638279132219529032373838935191845062154026176297423426678086426982223668606558452500281037903585252546838781427460314620639974666556038385318735477623115951985753261191561009633677946357697519737016199697721424464741868095064881593796030003246860258242302072468942506902394095220502217293400084127526583067105293365852105816004256134254143636021605576064563287487034417198748446212696242262346127117973289167551572412471772059089287133604940274987589070453362210147236062057495152510001789331460906197351039061970532848628507762070376216503760657869381229329058525826496993790478657023592575860312645545618223898485947650201266766600783154212814361630332992438193829004486816707111113372651634737987749314387637667975640917768254078555490803268380656810654000723216088672082027411076468341171991422502078617118400540559326773144863251475028351109763314586465101832074135231710187328535160467205384332767201256521896584995274455783111804469531317207389332027043212473261867201646208874548712129241331655047459091822261114678106598254418945937422918961370658890349209614999754322759800734111441552619335189799620392278033626993250163753739732171673081046290462489827626629637577745031799881434900777185002227889568485465033010881670016574938619499714734946951578001810908554503653024355693579493081735467987581146153908948933439979403695405528552334869181246291740541968387003517245695881227282686816109667738765008598121280504651100690533219728816969475286301006596180126901024811589262304018636548064024581518989229120679143411670897313641882287688129221347922762010068696230546049636730285559784352714379657211330210246290471158935811106288087933516791584929722022389136057663754644639917331074093571182363941606680552721767479708841685993330117857144775054092589889524806866056087228010855033673040620327762715135948978699495870709223706906614513893343987004946796891019746415278558228668422969321457833250172910856336554303682227945790452053889696493909708561449778429263847604954445351696581053876465019086547900007697245086098296400805853620901020620688614116003986588965748349797656583941795481059843644362251691116547550235044315649343609570356321132138094488500181189441628486038502060014326361199347263894782666303414422299904501822296668066959979441420601683396803636657096657754492858615281564503577683118036135925884270560177557167001622190425738889661121613420796965410134142993320686026581492377452022821775760314925614688482083410919916049679284017109191971447271756086088494201193051331226801221813177384512321015230815113458459159282610522771080678903742836447773536891213631838745102043071797293881774392096218429445066065549459433424498727722805907848634864298073706695111045404415175670479172189474032942866024075391842728894571756188598499919963984547606534208845443933681191235957420289670308066118270375475183259704753164300243295465840751640429901389598133006916286213567859618034852924518667300574148483790747503210802384290789341652218126966495850799541982256520851346024122766251425664891336521872999386055993683215130701929612927203514389870126450353214743075428491382631683067929831576537181909647400624522030017084763273829573080882121635582673169083339912408043087348686545575510696452019065428638632832193140641731292190811243686531320222672232155280168460316830735589702119676776806626428345647788902316882805808414514670304261188205273290114581630108815777520704267026366060149176115685567543407760583599753662473387463124610083062716687389724712587118030244135780330865470726768012007038149179515564198134362092960859224880988382770636681882476914274089907400285508341037712185151112725843531742582574268446018640512126994938666743005297621633181257558442455712605498364841240477434384974440958645736555688729801044998845799510195308027638577502177189926655560222965667185570710086625916889489127872621283256203786757505652753235267873218669822534157341498409015915989606357370482326017372846391769759376420003558630258529129335617919684077646395430858451756032055403810092064131738616047532632777889118952677029072301978873324951253141896958366997083622828973797131423123878535875948788020633577139463816091462944197954480724620079550737820104173519556353964601538888228958119548962962155128079347082655471525397279409455701954729403274352958945568164648476920409138050467757467926526242108102567899700349424286251588592679496030791580802662502378358334758608602957642643685243786821454081218771152408817760385729222414922342377487335934042512253674761894702002631577187521060105979947243338841970735228546942522118943678128566485431221146776665545570273328495983810072800402248174112155486898816551888012732762576863796674690959438331879450651960117540364585929672462006325689559062855371529991215905314986026490628480406542972598922812488772217898333934663636271370128703749452134307773614477255198113101503277623642958195144914457865609312840107550358420748257922484083196770599457080944763323548795328091181749841995945756362201417221182978111771288372034780617482491654655762155272770067125272291613435016427320500344088200621993569695402735208429740112902804392100384828498925522102657944914662896602091276962214185697677733440764050633315160771483923548352790432235502160695351950423641056592719824034195482843864478041109961701439145976662057147060704833065124090936577869731332889937963691194480311291583934764509278627891019274248736681799779058172429494068669732209043418318224248581355387470471965795275838652517915525179793310016116424378142216506794042737025868600424321221957573408643920233146287445566628524203742406068845093628925256370745932811423947697282749519853113292493814677724558554103644680488069151049216010729298573433767958348681686477978639764385874268640242065902460071888258056574765748786730207503408482513608707816260527507985840996231673433094052775743764009008168233198747031691664813722316775755208562512649512786812030168874807737088174464300147562001195434594241992150472675913516804879368304976612951953555082918323110849917231936600372042416640566344898769394796117105756713953965593467584472596785578516042048098707229639817626592317074470384499091899848980651487153594101559914293768143468365196536393643154281480124978566866610452934206794132880876505752050345525258531164770371670569633013795087485006747064255849665100155906966523702228260850531337842207696956559517261071947068096172545489890167979505390961504607269242679766825651313597153979136296002067405841921975325503625660550891010798964914174672527774173337318474581017566836116529627560328418577035162440187284646386219109812191060889516247339186211049978209799272146257863276793458072146079956121677125248266766114793263878212695254103534784255055462329616714617597484150655540437531285383469613290263920203171087274938766026763903565309242150779974676353409733932111467930484898407439480425330069357622270942471181360945008711802992492015106391234554302774408636400804847738586798732892582834584405044910749296343563116588563229639238921152803352664684583313687527609197751956623702707130265226185340687528317481354535471372476739507011653556145672228427870651540778605937137270588494132547627517764982628794534087702151555291686596366615480647934279564236992582916815776950519023497968088970482955206860575328019220570828944719810043209323240141545753167499444063037392012836143412882578846938868744156894900207375966552331217591482336672808840372669884869821828466418423530674098697202395050025236222704576703020193001773538646756136646389678492523878834861861544612015950489239527188739278351195799602312031120732569052675203091497937384712561931647440572623703450541595334144712751811455722481992452848474141836753792117225156196604150483687525900191249174780818905716336186651373002963105195659931919739470236860890790233599193569744817567719096887043898192432387824985987362523260381315908278014498410297473168961121863436476134716070803862504290269870393515735726588330954803022332988855771606960577531912174966322874361802364243350889334400215623575002325317017994206446840394644460462772900538910893816192832367899773583789359617014629162986120457614894992877593555985985536420741207585973377299175965354716378723461625275986194036049808973380746139284255725022442802879148394974970431442692501714700219763826438970938101502021185181342337743733468327127672025341093627439221800150179121688554575501730282457461498473364408950658655866018398392321312295888643029455353485929081538678775435374558282495414958197456696985566122520228689261539439275319778727292194628636237204017101015800599297352198342358538171111649037674418867826590713332243466438345500005547346086031516038501237211628021276080059124118152592213854179368657034644386308326682296891936295909699582106344865405774127172631942539575976158813967589086835053505013419941847110260593553716699625424796239354210690976079218261149284448068228772902197685449592254807295000531114462219293001837943173342774482992632912304882772024978467660880789639992615255465885049879758700697270176373466952274881442836251844746009981980243775731710089974398372470927765560884252002215890311692182730312851950467516883139657210683076717851944129695417058997775063382726001302378182035563451851875942879702094346725574749553236542208297742246979822162302173364812346438045964834134055513845791689238668649088567221530810355084240182076911092483809570094310404885018505236942776211063514077603924231621757859443778761145183679685821439722611233778331530645129533412951866433529229314627780037371748021681508872237074732774179070017989667336363611219109007774784419210582679889020672286174725533890944149272624899605574341674514739437894603068971607642027733617391536292044698836078544924769228292740600629497530794331587106570494218892124008126237810908465563722318554849004802499598037896544909055195571676086114445158487333549761905493641638094209106926995673787479234407036644064000621230205021756474811030291379927512787380947306649360312973730450148083888225353128028470292503418061495049549211695092024063839324256626992798295061450252861598905550458255386618086511125157938709817591800756682095923924105924944920451943277228849784459540076553958776396936977900817103173829504493162734574743528428809777596686987820227014497166655830481436757834645982138319569453830436666615806836865942022922626901891946341499921241394181743291228440292828910322582204650931408743506017066822968479994515507506585298728013945483707368340624972915411192437711557728148482957044494129998732583692540426117741659846247342897042097190656682134223778493905231505737091953961748693459751902072856793364643309882346536075515464406413664824443980553101175498818154973337710667367277970841051409080610910564771665635216605208432433369817385273779482377366070054648291645321009855069093266884731664449153431238589553390712012030998105229583907601368399936875630599201667552033456210862228459555929569677339333811277099174770753613011041329038726831883693902038142863954254593288173680287717181951262123521323554943134777841182731673282124143777025160756915430865826614576123496969832443991963472463548325864722715179035595354649094013853317545934359524767078278274685910418609039579197314837759227316773358723992023226034569851309985835848630484525348497630014107583670196005154950328265749058225460070468281161317754422996842228990264817070177392143105365425340974397397141008220236655172068404065251193819080858680667061190170225855020685186973931329038039072879603094318961232777749416052394526424007563524510830016949813047327515840210943618518653272530281905411108686588282106162426819311808305034623547996215076814388564144661240922691010748951253414237731874226735210715280060246927074632400346384378425240511727832375531519181208137648649931621897264308412497051249198335299073282790940003336399178508207086978793734126736334197983991485381952777999807968313709988109752814368357084215600197289480892428187585049276434889455272479049582352549820334463737891427644189391377112240408943860451260704482348987969598592848996856015897108035893826226549246779349648905721952203738748368750534330773102987000845924178386160783043124983649476118784935818347581562010625735997902248294911214069584602600219427224997144855464526952766308518542430795496639808879345789582270538737375446012919719233079529138989357434186940339686676607300790583940366452372928007660645549978155561516707479659491812795265559863958707426212493312085755476305814299601847198381643163956479406187132708965480497120437045313002265865350448229855066371823090575934381195987175438835321504341631602644721501673250044417013462579135080175791004246981631903951589912875318244468307109240149565158340799411706307265166209315220213183790786235964066906386648044328900043464648092264236111659582264618041029134617078409909914492053825544975401409159921738722332567643525165133329085926377308617692196719636738040895185169527928881301534793502649152685302261524396014041679641196936954777248872214556909770080795008711944813608012227797536512827770471350294357071237405536122139543827870325784586882351014447352325284834019295010755953075204259237363861021521460242077670540108578050564389810460105133662140578264319403387252434891035455916266850712956268162640290977607944567832914646627010823601402927032393121012023977925909407015314399578115079240173431260654714856570029324373337757535494993172308056137205260388405959301453383122715075933081718623089333651508269495236048357834829694832347636859605150492077705609559215366443566723649289508981243969272514606947821045327168124565119198971104542937963288084579435786877782976346898705086426756942368489706680243801194781766213528505452838722261043357626512835423364322005431864317337332853198169244910175088792690154220347819402291456698140937638821063098326618623115384846896154484184506131954926745258871345877790960914068572661076885837722076428462926545846592658306637576374627823968790057606752231707317675271458025874504443989667357696719853737618431593455654733585804569374207708897347180523999042822479739362730548567869821312428978464747250033360296745484382064722009923919289454314460505657360465267243163756381907924885022145774008527638116112218401159332486097343377225297721083996424016710147195053088713122249499083636247024196614302287026462820700697290126483493554994243492572940662202231266908233252698614376528179805844433321180591428950925060038783314158413217627507371942173744984799164651211723122275079243035963461429149013020800098406976042734637560115030668612633694559442150235868674454500739618121863936334177034470480609961320463421403723930869768973879453659521437189762971491693054895239489150395158111144826586975434242030337014365710108559124310085512695182662669544733893014028035629147677689485106937470113228872980802655489933949227662538288155940134789685557758467191051931963254254749495654551065413794535140230961386868979486875904704364494281846718105896765621192423156597186816000932464445437801001580681377524120821368747551319610934608487119122225720436190434224228296028732858951134850400086936688219347323989170198271226052950968862701745993969232217894401549483061308822323624782638644804150151514229776458070359150314531471368316423486206749762602523427406965567677085823041466676911452137813484719775135357231528312754076325229589437739159638989089449653323594158181164781534915608855548603812646102894285718182488811371259874736350694966918689673222581402280788530172698809449143406376407330240561036360099300253749270597507979823743450018616201687661932121918099464721989350918965358489748655396942546420371256565786928377447664648218582368869693523367923936992077082641599598522577212459002990371194116344903825126396311891813867461382688695517372262346071445788473690017407829851354062632119306978858340234237866373631766295543642257326379442184140556713434207084819052742635431139351957884236210044952108610652488925243641310910016217920496318214082729459424652739828057755370850041573294368210299621893517308598447637689803459580030430219964957125931552381150462623474624303002593901919930261302283506977653851819220695643306604784117341390707608176767582583838873908272347674270607397197680517050296933501729154078890982581972390827737199873729339824533683414214775361752615068875317111889244341014270094608305112723132446753451886256576351648632635691301001972483566772140024788754969505785340343908083401153754833828531241562136152571408168651036242701678911255664941368173684070280906974465355922506961537517993595377308094853803492564505784560701401660335966966575153892753491838047797300152518465138265944639299293380597719776185752816436307937412593495474653073206975384782237997179528028287955449763923528942577438483780414799786097302275881198468700930017984295409171333032879387886387895778626902475226647076811396071118197331806953227657316934514090817027449887559930562965331085396459550399460117801898478678051148282083022641568132239646900466912576823114673925366741117847586499236741920169109649732148899331679187239906123453053391285463669288624080734081524101904783246755758940873842247951156528899296343490325358255890848199379623310692180563858638952026752218914728007176305628218462311408870326806364006765164327988601684140630520349772770108051745099066222993564347680723506695051564342744268976520524123095235415620165005922519639181930471520466981573255026972995143497061837476203572117073264353347420782308729557472884516368005769447211390275517931442871567062820313622156490282056434347281033505094542037068207564174719587371976250850048337578585328174959388342390556743023279573852832244698478525738882028084418602350110458933753828756961040491432906156697345789672222167682563613923281758872438174850381597266319269902009460282729502590263733243135775284871624512755450176856452566879536087694527981896185069865642462840330205237909868781382924210667425358499667141425546434792834899997066773592556122960205797754283993913165061454694462987201583291136085078241045284357466966135634730286878661843912320688822632403238380115775693964679788635655962822304847107511166907635395928851711319838014102993612656040931795962939163289222147089667087161318506660466212273707321168748244597880788812238383870601043396634147015861567285376497787277819441363604209794575727828332863294739076012945470543513506426998717992525480548644771010272653834629510363038870078887179273949887437464931234033275772626739220896196808029357680099647429496915796436501021629503522704425649151093527184690397052473634485349771573557031662689756325879444767598818770620524998367387817347965635751742176802678698224733130369721592965523484156033615596930899589803063312813770058934022442774034618849599745167424711922453025724280193877778994563876284604576213917023090043087009425208866503148125792588163643456092960639694084345337492998706560794623801023627799803203732607188187667887091700419971540999868200127544197926477813570059210900063484134639467399903320700948548035655426918453087114265976331854769647522139232685446474222597055768826199881693887211871180947007620703572562522692937347582494235356452815777733353682397901559040394431293333899052415099276763069893086420998804388803701308591024428663811908418617896347536039132808731307234058207786826182419351744122613659822495511858487474681086315454079697033427133617449420674413941582271318379199280562675114289563419426883029035881248631174978785533604126010425862271254944201380427050102807570215660180375576607067898988988757301921200023652671967880905785356987686200773267739586551019897500793365612923991510185359008032687635860966048883588317189623752172609738629862932408534620715057491759711560382483061931546374026987048122554867502096051200403120013743483676275023095207929921269317179932575215347630357960204152040771477499193415581295643262460787629365698489491677718734613484018879515157461647012924924122524336494364455684534405091554284732133199761540223637327025561673036311750783816939548177657957190232190189283466146201933014462437301184248350833880540899935637032364823040077391742053920819529104414989665130273207793089402917788791456879798719051170773192792506856175182250549203200747950685151504338559369895312852292940763535314035881388329927484659456470635637383764754986446783220061387111597667384787322480556257283042568846784283453438794535823481756770892630543187291727847356488782884581538762811122463483817089137812998243397722082118106249345395500277785708454227620790261129871977717552365728412915758462464229883185685244794272478770353832241247595358794531898458234191587188871934304813380572891347302898981479832577700144117739801109793299333728544075470574795204972042082073565580875725745240489197474086119979762474612632805651916806890593883012365858124963534507854742092085445347043368590709941646341685176082456212168779171116510114162258937274922458022613599599111178965143138541444780362931573247409747382587550889738110299035253102511694859452077566607712463389090675373405346701351903148578542192533671260148356449917419407934675415798318776973795977328334548208768402222161770639440952491094265225085857606337353318398030578393575982329158003735460211951863369956345439926469889100958630674832244334042300818250380445408952514910782570880301313660762477200439581804590662181788524755319440541352515404392969809977225222939003357788861663520780285503030594600644722125397790555847013770811477512626705493990806975090760546429274466024455493218818282528671666075634029359043981737924538444658298572019400268505781879852206647347177521493851232486905643086562994465081390975549313757438503422826547615004582712207928346460241547908773563391840704300117681680199279440163956813922924508822254557250154752126249182111267492773116749324580332262761901941783210245874499712171708949667440893293196508865897704280704738392246342216685955442668975506207145966925062257548905831096112941134251489554448918765965442915594991016492085245079459417350523762117518445505729094409076079065625220049859615585476305820718267319171063410117248813125575650927965949067062725268414682520757712628263647643206307067851439722106242923456083972615072422491878355749065880456007859567920770883632055592624384214888729548796455668946048669561564534001355296728554538740745613459663382348624034308251416455691354309608827933939125561230433759555734398095798269873686809459670882066636341219092621012627222175624177846976564804568684430839626603401546559739747516827141920704300397368586205743342083341044331043199333724435930750648054883797205459523357384492664289014295227945739409196258218282389513266036253128576066953185079678157773253104966987869227412347663487681344856923216937820401886099012921338425388070628607619199911972956038539219979888342770573756537957940113941929561464790990473682926116626597738219847843081819998341473026395095658330737055823625055392696512475505135254854555258496957558487522835258765016485624674452405315376153174245489530884297501446299954558250843457075413961685283336399458573052923430543400703105590814597543520194218677219366124538242126550885083336254560519233112707951375414219671365174212648682025672583973908190742604353334853131708924951561339061834632180078689228609206561423045283559642258312202636846718311380776455786656133722438673387304840236487093179169739681438958559703795741718868857040520241464390743235849351117883669858171942603090493427753581935029339457050674498943816422645883543819145267914624434374736435525670209521256092502442740276991166795639934304983317470911585862038412111047716482872094524984836637209994563140311925694829052834131132998170623063103508042019400300403964434336541136605762245821396175231036804231075492487536082960547132652080612639822957086686006970047810304748942263775137543728249836209886118904228244351033514437287950382875078157169721706880801013217643567063175265617068598559710822105139556986322499535125839452449238885278136771278292938767572362594810320404268345385917443588270742273327509905599276437794702814067223104755887645276028754252471593181554758220541322635181486048293424132297596583585936860989536378817781693166468426225124027120916172359010168477396252724069531100711106461327136368520926919728617841742888448898320669458280863094190034198690346993775180369489475248794577309143560856361719461857859775714598811148732773146133441675527564700720275976619004363508340533404220538310443283336957709394334413548398638562400634005819920489663499093813261572442905369839674411254707341419804318373402432486068880532171433284802352680746881971903208524938315059030212849084186355967271855629813584740241275907931078439986448775143140053723776117256300680308823265775066393148031479389681410903491770990952674692734423460452639127219010872185003702638934138051313621974678380660755404286776138103772199556960361376818654879043815890856436554289363740150886332194031718415802331776053476551740456417192188466034045808219330473861355776417721648184146480068753969730579392773809016333367166345833572807633326478251224932968998720314792187073400507726081160814241495382118265652061980873587687632598693382120524805051891751994623238051927209303909751709072851861022376281303710728053724182477189871026016405407397623257990541842540639409322904562074366037396057149412513055481198012261794876236289427871019866999661474321259101881334630694583974115499312589955443534641812764010003317835310969607847686565049890600815255319984989718175583688230090261191449272259804846681215797943759898250655316673605958831781402867054537625343249323725290548524091582911414893996403901317411011328190601809246039805985300874740684015363750640383261748078998194590472755824385374329207309146484609447057384363722036136040932621493813973739159592125428748580895489409054210931608732020467178559225875790753426827268834792207405043701376622845449753965443415940999859921362825135295004043858587001675230973212199357659249050267775657753768206245510729090480426112523023221772038342223755851552149308847602608321634899198456736818953682709336532670199812605083604445893644665081948683653806012769714201396090785857962138737655914608600162949683254583685053553727254526405820632700827123115122603447921669959482832782950788571024662797599575919921158573927910809812619935900273207549259538457530608981149205844378754961949374789030653347119362506791081920169724748822852202073463649458508622525463631714415660485531187144253761177413362317906159156337290853522438254107309187910966686537762869921903766215360059346422422588573369899635002666927304483046206274025087487428204560089619931635694053585765109920750664989854770638987326801274855655053085491083913395571886501116661966692709508740109147249801752735166576328873260434414394551091042725149005918504728103680672037615839137504102779667998460219037753959680961085125361985829393764630722919486825295364276542832898945403037846747141114644896037220964457491163136533901575825795390572675347401713067997851531432757378201155137560115642805548085893008741018961980621751037649086150437348544914306477783993374196362744590263411849619827096469286235513965709869101909985143819111648539294575410918340896374142444053103380728446821060651392784465854284605199557150024174292632438895098850831108401335871883490616676493574632950598473239276038131871628294398353878207867218976257662720833194061042385029091095275698227650345713533304523947759898404346674043907429137784659102051548742628313724247700004342671847014886040208736996327555498327447586570064811002835584959762651378390141933220948334934091246335740612834338208272041010125655400420336663626396618607644662997189849640919454828796980214981072721937626061745952788723843077415158777991902767780618776191679025580001511007518353102102368147632264175164099772848165198193568526764175521025512783651946116635280528881737577001696247701172053260675068204605697610080172652659328700333136442567351571627237149328905378060119872336260871896653107919091703417330980314667119344802974678504495504273860705180681166014389992056810024506970611587213122101329308817741025654467495170287535630793065622593744658229304990149181850938182837493308938744894211784162978517886642418999883835634871602735547646503208942522138532657702583729341193601458715443753542049734615976757456011438770410342422830027776586920046760763460658222999698120954366664139822384752965674464824201584655961792952913883668689474567496467142640213462987961624233697330732173469766658167292657378050687786419131249310831511506626855179092087726656874525842690377673486231575871914296997639568029043373222744961045513844804251577030423161953920278514232337779851946003811312011141853079813080367003230910371556925240622534810037155122699543264637243776662697006898194383401454847769493631674678673980348577511604498277467594344011024248776958298704303261724235466969453231540832218834110487969331522519322641795945925522793194294563156445207856488895896081184312015553447545825232532330842274001804238347990206223129724648801934758927915426983971923142652935103660557012606200514855218671668618324656233818478176193349579720736874161633530023444481165888504326833562579066131384322240340840435802630001500832682893346254174646836699019175653067159891928030580525792810471830947195348514429260634779756422302347345706804524871714045053607952321304095036714053594475361960227613432609508434400853580774967099959128812577058105262525836970634110379030841661893963824979572022845910192774849876611471763562235784330529130298386855938158619403238689241040076812219918670898189975577892131379882077075444644452679641998082604084837539818084461964405690634205202762909582231361830767106163816207288178260924547740591246239326944656226254988170181337870255847958784762605730088111464104410266834593549372552822354734135684507728664367184810258453928572136248021251338181306235181539618840106151756135594965039140635379405791142666223951435896216887496278946022300575601518725870176997604509762157307463314652965008064579358068121067762947238718117300495787577122284806129920839368806163462012391497834997183735285449136368398276173696624687696619121271903814407013744167678953413282366197513441112982482271918511099780198760238561652210234604049511731706898882133635062025666817569501267975668064663921067188495251774935456673676771659129289337833554313693349748981525803975338660306010664311224940060975362455664252769776899625396877972238532360933570282213890785299248333900562003035663898398507225821877757573953122280084143559102563939869667299162310686746468761374681232106590139044741948719097219561100005723981883270058316365795587698612994225397081587400710611787574214720887766471099325966050363714889614525264044719669902590907137056506658992679966291964321547946797198454299156358900953697017976229364672323505773561929446870858951184512540442165277512421968351970116942613652394832953276380622382729245580777364634078042443187192676422704026751531600753931386465116254553898399209660004943976638773892538853082710286869520033752499415580866112734564882003694151642737789869228261202386030976675856818248742456045876372313296458805386885597625049964992306157280995665065801265586307112376533954227481065017704955939965019895531666798074417189745475243848766212390418007266398382982971947805847770048165970345035689291902950556883860672755195012235781295336168769073751691181360349954154276659180513460463020102988610539540144535965477106596799296360283417176411330206144903771846596306412914738725620435754328777447534643888522602208495640845370027698810806626100775111699671581026200258769800570186356625731010855562244874923569944780437351659929562160594953307790683450809852622020881200562915135863855152638165435158705660748577992289723360307964173990067380349537254562730978127826136541594534624745703892142737068249163573526644827082338603460382867187443564124111745397831778169484532969698133923434544228910206142573524885880927808919841558903052490236092442313178342130288340124938417326489953905389713597813039647908762247764753744337414767919980105325207056441571599036983450240303393179908168584528633651340847843496257844978810618678261276870599005973383454148727387491871547632580282192353187936005622866346879656581436295401012450152980555908094832066623934461895224780290146067060362774902182453059669081830693681425846589000642898846702023487743203860089423715849786315820004847906204669496806910256469349319206281974020437859483973789401556730351600739200990369680302595497876393659212178017770857205270692706799661671729337437360128590842786475679753845501360650566014128050650662587595921125232154606466079223712548674140529481643606315345077578010155801167673791800410997012518391884536358047328543321560266956912844355937082376326871043305873478206893561072527402646800139476321678891094703700563126987976971610181940652390424917227679380076183107843059425218826732101544908075829715953940174963911874927082840198452740422609286942798764075864234448974230749823940280205232333877677811653942548193790006780069436744329977623739242799162781257087072334651216158958662030940934480106481408965441611342410415069287026898010749275225111844696292976743094604474894753782634742118571407690158130922655786815413998944986567148206045758718357142230203414627186091093634148054328453891033571585952220567637456891112475544552597038480449227749464093394480162220022190164811800806186057441086983423399767765077506367304758450130141914842681990959895949757269938779304774072132421836976640997828522447309751075770714928432998769116320636827030650106037233943780630831090103361220263232801556580739173323859790753880277326173478485083302290626787754822841880177602472556492996029847218092239036183248338635498922604328440686978791666051952062600838842644662187911921442084135400073628354869660738168101157275898411310379666375531078106833994624199043419723929762124277637395675643076408831372942316412523395682819268484568910514726723034793479994462131435454903833967732737810057527261840864600583046158282024430062178314601300202995934193312986310925736487049777949127894137610649756141957475466694960112051588830278433076035251046879116695617289522970266289330062983247310546861494171073994296504095142936467720692260735459731066029448299956993270282309067263551578800410266889161554963666346379338026412338434097638709903048960572919652568413958755816212843768945626913228924842309372233671689720896768551345352370671779515374521544305740132958618280947848941623061791562152157192967767323082595000675074271145929853851398280103952713515550800829880480025582925430311947063381828522771961162390714452215874152186702697646536919692458690487289280665239480223888704240344324411801587969258506180636212585352182358811206114491593296311598176476472719404395278197273027387055856559697613616949337819137413430955898499783845408182248436195509889354513985542681918834282243254179190569361433514335847232149510082310154823056898732544734883394174636685125307633999018789937268280432898134950129470275314262341862711559010294172638818161201804217543956116231382411617874608601799721584533045481922555145786721020815036490933157531197155234743176682854949994698312576520158493033228606145181305111980703116167734969447831889327105725137332977171829403521962552147376399894677589052208560232422401176992629189090823046419274118260767650034390312460568416613617542471100843698724207136839319431941198607935413543796617140872600087813190550897942250465774333741983752841534688472868867925262021985801290521036807267504124026993784726303962860050340998743332819236984144919459443835178125082552569036510019071474832567081989085849135110363807306773989452158971637856805965102110913983596330808875751771378892177111506642973745432152035272592073573330823662955934061081762631348037809343003314329106061204189300723649870045867893489256329490462583780096300868831632355322727289594344719906266620741473815421171229734924867420130890240722176152226175242231957176257125439434267875230512521419088502224294439470632700721571074324230604861667157303747040601561713628838126785651348266236984397300290729334290462209104305804455172561852322829041944037176761643181883200316736114309190546985087421110869301341621187858176254470413548144917368159959515128007350055238584074609004680896296459729675779112759140896196531312666136142191229850229139230363818967264496565025536183123298573981664823244190384464897522859679740815257057023807800448771961832581414481888038070626636020168485883895846660523477041444034634305773564677021090474179300903357412406463225685544743393474212158351974039352614300626034661634604421543597718015260836670853737104971176561247660981304091570994365020829575579455586892019514530193118289234403648047892069018089062120218158350400963621888377614583932621031053699878645422259607304469963266876577098857543835044575820990200036041955524036650306796694919526902019887462857697983614288396008716127587238416190736952937600319336408453150629413876550392319273827016929933840223451677533173367554607538622225924377194315643334655921622549685222129692227626329538865052255674882832730365325730965028100979067292858600985210701813028341063971830723540757881456757008316109288609287122958467746081266121964680076360650428035802403327464939037919891809716616888141625358581729755513215912282989009379260940170476389096846375241943032344801850983391935169547751688963266841521831766205108238151057141647546029759149283264765610210642763809459030620639646869740408742503278171066582644191576554316222909692362758924709672859680116371779667874722857239138881512925024669448503397266386544763343439180929166100896897196362754527900047053874371012192413267074117328431162796351025162825936943518525612708438019374543438737402292346467554302477636632358591370011050156809906303338330452428266889694387700298928293586894525261659577794213763507925632704584161508949184411202431917988718606621135850977726612975550982072232943855146971384136288373624832131594111393944058706810950201208397090097245939129079934165732947018292968033425289005701391563723687372423886194959875482087538605169322488233670805351265132706456891282716497418427354441218230046442390366893687801360477561752640693728433920007217569311310825537852194465320732423547511778090176983865758399338692785090582730966571849594113240447206615869430591645858112606189880671752230168642660483138043453780022230304531479491380865627064898826959139807478213997874946306145020320616353247949170212842449388872698868721319036806414597500109016210473587759170827183174125571485988219663460538618737684997251962771356448717556814590351845245179463738746249409523417248176493977974761800395949587373965880078730281304430118741269072734809898239242554826425731178118481804384672837565461680660553098321096203534672308006191313716272927631949336059127283241610383016137104154298803035019062296509056319065749735288457988544591249086829965031113089372659837891823456713076449676937051313359848273339452100218726402065200329386769990918412984513537930690788821162486480222469882855596622182085420389108081458795219625871833919805171753643933521794313948457309019901491464704241666200970917631391879180730688272203087820778370809541896115315224708010277865665471036403545723057118387969381467994405941315676669744512680589600542089410522094832970195118902926844552864426175849640762376489745396380516443758504122955729135039844281402053733545454412633659578517909804587926321546800683117090113231130238520305837999474046869482711527313242008981735507249691255714608451068416468821504016859810811291968812124375333873648219462279749695848435302896757112175304297978514342210580211128833321081113833111483538844454496008590959566878221097826924274718389114849524718565178335042259362371887607836912452310143165166837580056956555923260794611142232115311305433626167549474983418497783207369955083224546236775565186654847156004158507594509176491845603753993007388072447499261907552277884521202223835986834871211818323486384975935562179946601123708937486701516570468503496485356053060992573996497487168821027476854741322443676684735194303260397936059779129094974177853554254751330363684750842436018754002288571296033642739550139705866196647710816423373219501710955271311878294357760501749612628944598406824767833318898253480424393109180676169785514730046518124333147954790591739543173212692664214903305198422081822009490072411214127728813778795286263177806469429536901383895694531635481172871084675772811104394138997268448871321564434674264969415424049738221923944063235094993231755502413689332013869503221253143026822093406636208233565180182673228727508763174882679189482747521306500125352040064109540654734567395313113777951999486837214631307061121011890043786750307387001471585319573644768263776881239520999655382207594553238674214966448218131824246218274863884580576291744148590849772687760871965091129654156622686456310509982038215246021515460704749171847210301631243613486857855413328388010899504592744267931517355345000974875655942608524337262794950986960495684287646074330262352466784608106535187158695509200762071015640371528683417346308809569022756818445747557994507715294947237551929446932346325256148958035823304652734128916862796211992646091048329851276193442650020229810623002062597495361670755789032785727860876339583783161332968202362277857751157697391437553082128901056068088638253747224781188038777289305819656606697395747250103576470535355347457516077798353652859775408942029133244913227166817120360914549320921646736012209425266957423102132911631661483245352589740342788435345839118632773300682679471484339044913930756536110908272287518962845363079310898302123905152212186988276697351924907106390974837648545369882384377317500245265248998441497056588714818095832227351185913904155120239758579069540064434043577840125821335782141466465090837006688414885922343176004496784902926848547601980955225164870537178913813276449234632204126870314149389754412933008567891845702715146893755154654941308757023601499327102647339344392556514178262366295710529732667070887544406468947666514206409564169397869748717826590492201500132749816491659514897028202469721690515571636348502368911028679217599447734910926932183126375828057633363011032982345570152382732655750387725119865642857507597922804864852261124957922629194010065581082823651775986274336456446040642869523483000244720780981264941058064261036592515160758601377639913140703526277754899514193057722868024665078297858398147255006319639119298286501706426538183814032511388617775852504568922187242286503218839445617368474774845556678710029495230229955261615386340513178360979494303943219417769264454067222158852204332413690255719079998396070045850534017932412418115303048402811199453443329863261376288385889822410718886226135914674190470812073895607115401793263669766746253684827244814569354918198828770205714626279168070792564639889260579013750602594909143376461917458447191240933456726559095837244666986555847800328450877440774022342259889639290257814900681667216737921642458212903841580219191058104328771594289833214295251370825039739883562632496464291766731610501273042148820467179952798116491976924966387409074711584958728397339071047026300052198292829414280339984179573032443510317130192368065980579605647649014406960589180095203568802303625369702631632231039765329077778320947948843819050213739869626813992148804141751869650208187306572252559088577737377086292974039015156153836182007835123870806018615037022770901345392340607523992263907384144262481871288670266447173250385599484468123446942946174101967562381670105965176579055591747753295505590642592044688048646683896350185351604633216481279572150438154621788814135545981039183771739468570834631441461525882208039544959022415014536199433265568242916852409434049989154632522204387960936160652687682351367270178232784002977176600330598908747278908083671843871592082329486406514320969068155251358119501514675315018631009112140061359677379059083236499744594534704471460089448631679066867371726334013258817388526983522079711345532508796114981388445715472720468936563973778264290869162400022381235126487986580175945952523426042196697616791026454085759794561160136251625579984985075230044040464717136294881617837948875602900615298555735591731042310562504674046796989487502233223301830283963163324766682801805167814833290523826606662371881095995598298789128983297462640372340987021474348658124988466082393847997896632203392751821524150987405412753187340023030885531117330037772847647759611698762445072464122706615144574955077568081251464400769505222996139280872781956910939399667952414248821404630796113468670073226701275498467079751560988804378344779697267051090096347855777202269026683686811077953356014761581971799947098657622987999690212598790958929505183732216310121762737786004926922208527080748971875087333401192809985707458747767749623737716591463391932368241883247986047566322500691069861742399784091285163742917165038122149707232645008436355978211247025060149900942387536597302941410214647985349279842934755604537367708548795494624175464837392935923654525184935644037712817683223527672287454990124479401304865916539427642781462711299004800835119016296497055611963426426088651276593217777390198471335716627878598739584150805414102000137689347736026696277369072088102539005319073450422419534034920527699442933510918829364751417737352309999100348874828750012396036205649731985590511187944217297391618644348219854160891242046055900343028592829687112233257230440511805446023537371480075710204754008201395120263586132781770763762495392585647445824579383511111839884986611898658625681482512193504172953270147165019174715301118231169493966946426702897568028923991592307426594175547099967689636139092234398377626997514248691713376270197400945866172300423008133460037154786563014039445131771332583367751709651787581398810692273509100828859605169227589446669253107473675400130257610176968187477997583346415973314132255685510966288314753254262810085433316158577755088928022888010001620902970551139757966537129191319912294037642330289703209565175911899941396879797026534618094128869608041614374594866950889108915560376698486702110295986368466927800097421150689342186514703958305284518049339071237149467742985149790452939801285354047603748737437819706166791723649355942366664246724460107818462301288202388260142238294185751111583819260999129966541529772467574204035276567186927381711908215757041692446828403357544380665034879907492588949787443111092903371551219580320762765881239843124902497963139434626251270373664110672603909987366451754302311341272200850584913073089606419987403253332517015671713308178997628031877850308607387815816609572419192050028181562293561280528403129350951496913682347414745055097889894275537367384404399101850382075068329229273996487419531039371755783544781289563827510935855008515167972348138383265569944473949171350295235331980123631746430326876915604592101789378384120324905917859820276367878429166629203615841419325922511523581054285056582038287279596721778722943707183971980300670011246812303691736648917831575291516124910784411324664144898069505085912597495213194606412313747505215769555860905711303690495059437157868624801429660276150415963368728927726554637721495244004858685250015543924861730723164125786431366707102366987142488157969435821275059498511615072107091609274889943605228845920979897600453211237030856971048671916336993867125675872217875739949891875765410323396756203978541151532594243359590725037326613171856020233430347892853138417472949590665844211970607624597999299057723538300209285168533093819030685358209646719110839765763821448694667195140187760056437322570847107932966442910465480453277986486567744731112630810136879431906887987122893241472793847933957579978225099319251622522598373645767336616793307702251981537706540060057062207743886141842697248131418749206990776170103954329788436925936164165629894921769600808181439666184565395255515610857695990374943509364007740444393725805586847309595732925093521808631756761742945728526034519393007368407354776896328947735164360237224045788239165684776940267715071318773373340658024832216085770450043175854828526614636133257002418180813376056639074931325079024290024852244073735770422774078099532880660957984514761376219965293826110640861322852092885856748312599785608893286458036717239993312551335295424348902522996547008237243827093071393596800805322005593746204269966334996131544670571366687275465509354381502811319407017165311761467477585442537434851970978012788280122250755106548655799089265838683409869245666649237958961738494454995887578433511291429449354896328454804950401078279729460906491883408806561686089353312457896690660426038439509443780368084840119517535818301376965757535495053494393282817696583101793656201276385332948634110695368540141634333835746939327217686962922890484471464761820011351621050734375507590137025311693370993324947402481139546643348340343255648102387341398075264640448192554160623174437487849543937133223300448512412365181378099334811470374067861064312456628302698373029969161739260279714463043008576777959614023093081824944279710426346863908973887413203651195492930892696292044024557837838334106839655522226445970263527291661860573242788211397910388890788906273531754448324992794676258662509289749758682154106125341142680955958466120058713105373888426811746888106802422278172601410086350445827966593761169996484057573514813652533923968438933341485056533730499740467096131016727578901813858624054020536970013775341870472531819467540726718440726475386363018712748896194175690722114928875253671794561819875981889723820072408394880521444618768299252333937694258002036895384770542282737628143714542547901197817954360129221060389036975294062222504514066956954334314507959385629215754800258012995208661663488266303964392374146270387690774819363199290060597208081664393498561172056765392698493856892763614946155793989597607295352756698543144600636450221759635157733501492982134832597174290173745858737895287298379625154525575942880959709055079882398598229851568277216612179554780175314171559162467958682730851482075961465399186268748126368333036200642487124142118896777630525306124315910255425017906952058856674637419006675410448515512659266327351353779906173874765103608578384671020379260651174421579193375555961641674925858149963114233244830820007580997942325866801586587443418343003038350935510829657215010155437411085210396340626937160340663822579481801139569767585692162728579483586372090874539314178725131665323739059284776808511168761669643479790467822044046919852756722607760046083093416072595597277752493731969284354333963963449636070685015395860320707174445796683289611447716946139728582877786552989809089473840517954039634907113020988383083881708934702390855087345131814903667277137671824787137486397710457740747762639066644987523400459895652369736993206271914508100412043747294786737071450643808555335637875608225995571197051276594226866859572832748542468939561524972631696987388175975291571007160058485524491692314010077970883276806127846651083405882574274512865768941479598353209228399642821530820225170591261237626922736287688782374337853965994939092448525571169186135826435380077770666254779819778823662204154416100978034801528489427106395345333318089444479263850944857267603405837036124554225705052475315779580395617867597823071966891785213557307889491409794991897293581672754439543073687443998723480671406058301238067482660130622877608760187048381694388376182624430776852032624600581410690374166923530700047188923456135081834437177239837202088596067677677538193051798062525792286342818922697023444125654629487777238804842644394477732247254480037422965909765652758509002261835620141213881603257857725590582518763179876627298395226149822489513396838633571078925215961051828950903672157683031360628441939647644159003050375548111505625544270369054722648828797540329640340200140198908875174893845542167784660461610735996594264311591619724395247502704737349692675181089066931287901128855680499247860758130977362117253674979899639209132651841666103537988801887491537466872319442591343153912395219112808359117377361025900423163196456134143319903721443900824221046124549877590698231028600965985555430580606486654466217582903366150134183130852659152009361757020595185114086763836055403823646443412702294795075817703639159948306602166818650553888787898492680505365347482167796549219252895107666842988211015494493535825226735842184835913101511740675806857868589209534824479851960872294872327958001015124238312766096821290367936607505800958845889043068236586274301763004876074389408720557975265484929977125523341201999778773843243113517165720788319971283564784037364178140794484099758076153406700067449212332417293446407692023111735453593487396710976364707864346166619417857509584155065211694514936299154165444467357489463362194894489489725614586722078902506404715229599193115594532477400577242078142589840283150745297173692177736031418548893812246476702121042608176332794474761700460929131723118396095050143668281007234038318329235083524116798256701500660069465304649551738425161659670996379606441102328745573803677072962888420794716559709896940893006541566088673220224738309813125145850222645383452988868969718740764705775832293600817156727549881440589777624537239595887524557931722108893054021031120763065214595651375893170907887532846217794062727967723275643569984862406775941351821834895766328324276536596531939925137951697778795067960546234124105214028745742748143974578560991472901533504900463849867596332810580479921712473421463516432499251761018907000357727915496283767008005645374261964423540021985593570574761884966678522490743780965960903075175949308742765934819110098852364214604319184737448172710523611245115648596349508072508582001877043221052830798735587184291952191880572073538208587298729308283913231113932666384122552122995041037275856642493126055047611169597732237807831266610032184340177824819390950110085220922061184313068763781751791859242272899212328528713155911814103321118141127005965538490108483981383237325433583117729751438059154447576554703626032819270865713413635555078807551780984493751605492163627019175083262988553540972198521848424297681146363306919491984578303871949396731767757502956127715615850485050124326646977881061253375750431450860554694077460310358780081330405430717248329932610338089294428286173465893060117571280630612784590072775778461913034333679089779775634453425178350068401301254932087177221804236984233083443628239435956546442937995205300434629599519684506510755000413541410669137895084491245111265752493307703464225015595461885319842982414341750781278671973104442182706306495531001216903654926789161242186593465849414459219440319570652439159366970743875763535527670719267165900997016433132319503835203348895449435568751201992285089947758518265056775268577892280046503392264146662990179867088317810467723670178546001159289453160720116182797099120233874482509544618870609007602275772938430338777609628639001310281155358755303508767851667392513359346944589512471048942486332478675249834474317666645310625918594040913315660476793877545420993102155821135422876905998846709812889875283401469885739100046770663425419468647392898255001118445706143394562802261819585551435438476082697978888756358078071243429467425345306573269627490889458597637186755553597152459522245518791965193129916565791230990851174024727622595769886772989534957816471688518292049256703504154796757427256033824976012288787712942513939553548694493671618835894344113987640676762657309612579381316008293294948636182625047106547484182866484760267211521702870454026865225570974562662177862992651043351256724951477187946968532465821135039382930991438801233422496891056000994164265907344938417809512144076452939769324035414014444901261749434543475726022540386154018192012078160582269533908838432108338467325099002331597793537884607175072823433895202746551470883887368971551691710795093058211907313060818011594729418430427823772860751128768370861173406052421575629147641380213361756763127008154784064495720847513372522702089791134182558273605628079084773523244396585741444789524200595880956237557690791374944673979894762078441292087466731403779978960156404691849688557367305174102927327033960974907271710890941224837365486695424936111658734672401949103813143090061394392400725643790860625976462040589269467974707241975415567510288808624952109033164834343077799427073224486458785153507843779549190581123655891116278751087148811500507039117801970065059729537116195392427409506190712942043912006658784308514269459835808531969924339277902708026782014656584399067707724799397260326928569580065673615716464501083848933897814446741635149416635397111733149287890189331593722867138928030125114752904008019746459273655899372671889901499808250222560189830466917859508739484787736619920380645133102082281593896170328163100480405907329818427732041299495991585175617121703882840445897168143090853033063538546366126827525086336400908034667481435310332884534721970515481371176569311019679037358836914617748120166916944602091884868127942524217541223110658925879441965777341661108074495169441816143246391220822314522293006750841629907697633905209479213048106220941186852589171339159037489884434926733528980929930057958093093014382522826487837544237886130628650086433326572001431305870390429293775052929337088483837266009562634895817674060959209650525897251147433269359333079748509063950015391421485949913393648428468339650657053530621570885708012151011717000976417020272347692305571256409352055468761082474206997747765550056495292148398141144457916358090161967115542284953169476942875354994865985522540491061868040018100213748807398893640787296688713169817553361524639676156901787719297875895565948114591089669677356912326769038725530151532625081449234729401349607566885957180907117242715581189375503667417647060093947248203794777934378780746419067491206081177247350593140345652438093932395798061040913567234816985028890425815440533636287624632199898389169641299466190730338374683076594413366679757416321990970127413423033676637442496202496739084612426685788190251684624036967257414018146920441398880712066535668282518475847982714975984242068102406091912419922364690938783698556084086293871549149319805144147781672149399677645384763441572599883389507419950138841861711949336787101239230828966925447007592308518657272378960647686957572659566309585555030075361698231626206692253765597065416350066494970240685194041205467466856958654694125708832100748894010777693647695538235153991836049383941211145520515929325428991207550536479623316012209708118294937899123809312999560461404603993499087210885449469035052104221813953337411614867947052674586659117733064282615892549304098526207539599955472761087039502183747027473210390620567522274215999577809573517735578500791560574805383058922205582544880194316686162110301514090103177015606823654549629330728732459705254853292334511019745188721693889178894189535484059440475315582657023485292029254590266127093728222590000219109076231813484188828159117622837221567958904617904833257554907354295018535094680117783381704477751672972519419085409378357456166881633151034004129346875762567731847844435643323311259650880782075977521900603079551145460420663103211284884700228988522533324068582089454763720066709488496270165366479535033496720572015348354779651285648587481122328015118242819073995294451029640784061803211901783075819670892499643260478688433622560589368664117553695536098958125279944557771425361068245193638826805538023380414830718240447887179115359907785697162404898622734252311447116691837564407611073408700724430591418383360439500971063572371079147304501842034597526761937284063940575141642569847751317205982191211657711794511145404109486131901268849606283081482602143550335495532760633331060358457453365093023398012112911937429008513162973375487069984765425496165723617568409105547299973730036202953823354820129859069479854488730920347461317746408130564212230520649067665290107904999675498267344410950435408488062361323769904882990382633610886214208737456510723588902966609575023482880099583087931222791562786896534522866345767526531134477502845475493111719243409256274308553120225673099262756623769748495047413188813141470885785307044874963731631826475965120718463847967389103639179251003666114257663524615793471366181753446362026911564318134915380899102551110767651137258864745894905428213941918535960405669319234108626941108751833519847755691979377070336427656661987085279896729661949411110758820727603739213002685233757556812798198708503120197074132425855875715810035789225235481211140877453455945961010565993438930770827316359927771322201700796299440274703564383204949124779973476824808323392199138958087848042758185060458203861840506154392211933994639332878284786390994332326097016165437802355938485962730606639112597999288042453770921127770613474357550289451914933245681919118689913292604991975281868198161990418065616176065356443559662644950620798148235074530373240811966114397932461876732065391281209999658495631275318468763576134570592722258023448214772177678102707015598788486612491461530672639301438474271630954883805373432357328655214837927129074031081039428797165369646145563150032363122643959907241856086201457118427611033948670581154694637862054572140141911471521542295028423306242986345772124768240469348094024918350384302923178655558340628110235237016845281752405988731136612919334811382852798521829653611361760167430025699546105980249399323986651262852952624048891179719718638554956585843583415079739796395126992977850803936895977540696197904286711408200474073043023176498001947171140052184405682434398696524553987671785500526493726264907651027909902996524550150216093577696638042608983893220572619645105133813010610559654163563718171714508968997561060568532210709999571745978058773803302339652857098113291973724742212360983402242205188836271960902136417627553082123389060805156221947434506474018762444760980139621561872038740480936711865896878393461061381977835062287263842507076590544996635905681631809337372117761608330924572868855711740300852727479675460357911713903161962286868647592018281542414557174472793446167919756490729787761135376673078918954299702064664226558800333468072345113493782797568599221086331016422102278151492379664762371198015256791500189643018144671337079867307692311794186553597947127183284104565574035404800617367422814094347149379911567456518632978181789157193869336043317358895638643167050549450120748438935507706579914691158450440836068856062010899071744665337680819898460416054166448756443270891553922950606172815295136525218112537108078075593910143186513737515212259743308289144588279406974051619045574746600272356556266525361803471615219407788642214837079324336185707141960272420863997781876856404662774727188064385988252448367542364905624394675407351760332941806767667403145141417147194891417587432823450424203364038080995992675434086292492027359040449736716398625017243378319957665548045744595059968467956375540184352035927631519313780414307907338428314050475310015470912279688114044375170990651622580494180482455430985657850952699650737430687782164008773858683063022472430679707346443805676595097827612660494297164370795080276967796591301474965445296844761582941309268572139602332194989091109002324172021227395326139925861184254512944124358304902916599087770466761305046047246004413924100752777077946734406604203084127036043811977306166422872813412140540017150393597861452193959036802518441473244684445790138559264574601647013861143566585867228860669777859056600487664625510286181136397975574588988344525047427452434519047582138639159613104562520170739631013950310063234349042025399771272298433598468575323718212781156381239138869335050957755657213666771563982703647242749821711350666852309793105258041206747551363233386390028633672215131652138329921819531062699730775838234927035888601329697923227091910696714158903921300535728912168467725117226487622022832179662270248837633886745315248150223460302299223329005822794475516387052237128844625195443581656031371437476568653953188944315327478019524983979583277032245964791677824776882757516431026976617514954757853694190516006573053340250073307276217322210220835992036587907551461614023300225571528170473199309501133980221008777950954681281335351966438406008656429838442897367762871931043502734234703321752943070120234316910264193783464599257918262230465114096181043192255455635323617133246437319455081592882772816548816195941711543764735338958856835977914609003667541778687367679691614994612324737284144089581190366535391266920910847794048393564028429882328300632295579426206962135218241945407235847572427747791757034953233137695165782494407739347117239849249699671623113605253998298143840385693907358873699000444272984588104551152930148347092992072921969086046944598635289197213586902730767110681118508014516103836528263784628368443196701792295088348926634980605971154825180883894288669560329375761173433609541906042231531670708579673140626786526022001970225143953766928002005544308018471058673613943732844953454557239229098526103354869512023472945638601486068960135850936919712459852678988137129868302544688801488054094534661345924292401637574741068844862379667144682284957590735876987296334610907674994508024694043669638852924356963504584059288538604434160036200168746319458566213726262877728853577170179722098971592490524850225338325349344936643613935751516759265294017340095481460726709628342822140242557518617190190502650127285139104065518375910715249858652452551561469194783423793381205338166545398637284445882612034367614236840696992047351484978716271738783084689770296514369875414734320425003540641584738809543569484758934460492114826229400369028077956668112218471763696764705126018284208387854060526824385747197488608737408542386336733006992767643258090448637485081473462706364016821782330841778483900764259927566779629168552537082175336835172724322556877997426246894649221963082047583495287433027090797528734244283969204351690910307867110058952846019059125907812809028280915659492969249313529488042630574061094227765744130625757643469567720418806496167731200634820549644051065766170714211683840573965198626669664254280727848897997989603073487785888777710269983920261263384287498751357845713419228602887379899424661729391532868237810864965511172395785053250867471681303960046513798130203484264654394631769615155237693173555603088329991516394512494021612347119408389959889865893005892254074478194814219623914774289345158802410329952272000516901012364459721384311530329960755398371759700628632621034867890141285976575702614210293558886359108223612842611959122168939417699566639535592274775205194081983415807159700710564306023237854715803585296377114931646298189612450725253011915677331171249081805971929017016894651813725532760048340523268141162018610097875479868274850246464164829467380094070961573352946437231169285845382179292759016645642854293923447639248162120312139842930687855175917384727577173434676867350171208956504415047304283599054923560988415377899988067751630710935279609647352444372991661508865734173953156641685653021029335869919835752494213842388945795163618082596556692490234928283234152246684300950431702397287752346176899818271814582899850518208221488151763837907380420611051164021556999004145778731276680054565783929851300386543410676027722256763123589931611317668390624974297514388446681820820913922171491045357319235683736391372760038035698379862457538698140535150922498053931350917679705593652516100597363360570460685218545396710649480703794249854560795709093224039337773490792101415891753751078001627737295699503879297801477022393174442258499677251054253170618440477455344983543621755013776651268871694167514809802759812077981908003186441323274755299587010724828078350006670863308990233523172103121842955002818945948359214381559795161607847734547936475823491488298992606792235008212068532265984543828213811246496513474763243201304702402717335140170654713351561708220898554016701159331558136066872174292302959922913674648185751417162959705587076072124027166637680955566902147010218855878339190376884083285117643880709314205447703036152691611483467671567982613418574096489002294327104482919843623938513471517754055725579093385824656235622587137250782637219556122282216340179090958055285580751847703064804337808971376831124176345934546627912648845416091549872924169980564113458296016660144883363803521990305839818836387924408950280836961094052582221462876861042469107053664903387269964634417323676526186162593102680271926660272812659724338018436185987744226676788213480585774154496762468478540747633322412626000951382931897593200888043429957167817246860122805546404446114384254585216278824489991556006077699865084640875714303142063624733490642214363638887174230244813556768064874653598333761311665107481650571442844734306325873442676526380376131378126179105086695059844455916416188395530909952363777710250725213959783531184885581010820177647481727675977937009943895178805988351675237496982730788987668646915939514126860229296143300104955931543372334161810320844313470105973852559340135431700526218026106281549826130561955365769881111317228520532669755735463222356660622157203637616008717359252322655633778935555502856022026551735792917020700931382851208702295483062469763554998807030019942913388289680096146477607141395298675883722188172764995640437360855230180763195822586309987959065608484329036655888067996388847122848269740073049466355426872230941222714905809497018470938247079060196667504903799435929261889229792918182587039981918836084451394993035199176982757321204467527615374075154948455114804197366537076058002947734081855697871955428980023219714712503366835814146057674549130691230157310962815208876481986043588898927295469626677437080003709277532075303636103471188181499821161611762724635884032591206294351107862433035159266359416022071760195206384957086802936560123259471516231803329044987121954504937378019286202221552448387985069187317975425968451553804979398419919495369559403655560355424381869699448761492582007577411867910711365060066253259365410483569754228104765491089054710021395547195343809386285013114324352150385901096617197390289990118394334645856027465259430986228899616800963069612561809946783553015699369193831998459595535089448628939899417935834533007600531494533380434077498132211457775677811475011885365751732018512433925517999070311500656130091850659066756038999057222816883165290278555942028614801357095697728285488007882734619913306573397537588248511634936753919128760621745542252568983749025207723127124223041025539907973565428320331715302297244092184195560887389252129488187847661425322127059839536691671065443435540864259521926746171940688932163236684598172592387809062578167790962442970971662987036244539024037828104401237536206817578664226756451961897180275362799083847174897554924375985727394883049627131216140817839883304947006372029158961036081986139225611919087366423858977328055410604629724974191209774347495162714760237189084186561833054303022345151127195329440182050302989081835768362053814846995371007261816139409351645397272727595564300567204572687729564867135454053984857153121434502381015473087382479621638292350890601293967445792788023628040548575393147854875361141412318751481006857503224014502325661343246479625225452757519438570077778029608157015282604995600683514552089055157426033933611876700567905954125975932755364667735826645633144978843033854757457533886309569719870991446541848461688146821046747170100220118562669012910138029584500583800244605879704661533206885642720032325852423096803396542099303876701340370745015118077835385460325946844118670781918200507125583756989942319537585855136205678628214909143671560806040881680595514476846815696598024677666276598246796142193335700703319090957405289612138088159713177418317226921529889209296793942256653580181583865616352026862168433723880209020700085231351874098711151071257584647714078584047583269884028230637741137292900183508191923648875893278648456334489513932926191447070224408201773190823420636775943325790257513671185095079893140857903156176758730004862352587757540209799985718544886924836244400776258808202800412634664017685011185139444849016025454770500758979771949861438731411730476209376661164622390037784345324894021476741071260090526500959705152618100049625555953045413964963609115386519183394252631923085661351325692678196284835876675218108026709710842622077319711757927578217817420720819878735766771048901593376641465243386544640614151886519995770785383093297404825429960464278663620591091805547185766299769382024956997122437680165086855665015938579606014982542446163841635808418346030283440054378709947393617493226325227035468167790324265808335973322263478798527865240360047045625119601110197086127049587589348394617167984842609638585206039975457472386506984394354079672413454506853692789136548245221134668431699473328375795617689001290699991575990667838120991135655522800671300308135424805886018417418809439186499196013053905286991543208076467144754438240766476073537805074168347344654860849368914644039669419567449119481977597230428556125788029437425706811743372133777294757616854143408164660341711408234457853373543120224938493830028917549669265901968383271334153544883222202154048878738572248103430658070953982706705959281843407921053435388845358512956272764966054296752594047036644280360087573276609898837325652825908878028926967707568355322226254088248647354700617969880177504894779107814233976528554973395769688350960284209548509834357730076243650369296047053774833157242281009229019008884326511599652261428807616883131703027368405859678988342024692674763288399443074818941708583088657514623543026187484368287994008393244570698890017693403962107346314318826423684725638181213661313147451711847415482591974321768597024145446736560805051519038468476303880811394458857261187063815819953682754645447143760082046160747256404406434293359068048891928573942453487999381406292008590771278989975605719432261939270618851467935992033722516557217124757483140135981950326509565005712517610709761858643036699834202863487223144508549518011035744749647115955812810433375350437840308696470721869988867516299862174906445471468826624026433474448896329406643595187449197365522507081370780364577625037272350733890419716042748861944616070075016749800113981771413974039987395288349034828008761218364896869356954378678250530850359473674629897162995002369826025338539751401663562765414711834992702553874816904580808760115254427695804038839252408937275085472344757056325161307081565086017703989358867455532158067708186473609511108745536856831149123594756158290805954021099073660562236042586877629500243343775867867552883605587148175077827609799212934070963417326922055706804895272977123366986623207478475736086983201425600550364344423883303575224568584372830552257917348107310280440970804343671553095294551478260090625762998504195692758420651700056570989223313921911989166920481307239882454690523961745289350278763015993027930000554316486847537037101338458319329679335313138220549358572470305015273919850813175728873049401350165599863156721259432260698008572645592949807480912891053130605740215234506391154292518252095088096251864091432124339894055290441886538573915368515225718026479298013934153674637378729407927295131634838355815702600276388993804020012645436145555638425449892589230136331611603926903361965915453736822280570862111282990228855255548638007038798784682073581709671477345857324385949266666542243101567557490981318553214427961943412046272395660232170256223450303785326898467553232167629268146922070859758348376832042607985421025367018877693824717642157684794461123070414440241805737481047249923756574236729754483049883343971646087751984182488782014630504767814175622810891883579970081856205462500587092684098303982660207667178980417799921711935072441998977869289314640426852119157170717575397504963766623725925235551282745694624231598782205176262613343719961296066540177307147854947291790641444708087526725518493255084626960154417887668297486199674417698754808279915786075746526399517819769444415684074236542581043702703992285806022044270186327802153557864168699815718873041436970227276972132515889280839158352596353163338978715071833277054467295453711600372935105545109853055773447223314776320997177965159432695322908116026874266411467521696176739756934661799275625093149237487251510525594106251979192435460009707307662751222016052907171014426469624485526455442958739840368200801210126011152596261930367198010095305768901222776990310957999859689222503699034630593347020899970548224383316818124164730627651787940658713873131571281450785909929223302656499307035038248723098400449619770310468675173427789499295873618581751248799117024591362892535350888254245793836035014219111515785894863081314879998020048212283349609605490188886300912308355710906472508092823067123319447848932697741538126086492044794988300169803666293509760752279042917944882186572678729314370672334867328844110052944281441288513954597933235380968994759122085099316299753852913940201937350394377990310435362785195867639331001558084874202850063940067869510817920331077917655189689465544754892548975160891620802120725867374624178823336103644863051715183691406043570180353259822181105979089014628387804735236464235021351498526767785997654051584589845552802217813405865817125760237598265360517562661581907670358575035856774565521251307208171292973401602709605878455439360693938416094451989644708243243741210527733767110044223770108296102154799027296595468656656957180575848414519312849799973970230862315243477037108083925629274221858693110496480558356870538995785367681638724650861669206097178169920114394575349984903419989438793062801803724256419067815322392643530453493877337749735677299637461809285946002561067000181196987413010098637116649318314323713532230662954372129791025367244418928145250959728125967689161683129762186137005197791431520991041041389139744029594024581729688266537270685910519200446702562873860777679994622661201142098233404352705569555916301981814984866006557584102019701758971221521525865776576105324796403977519359868259230232433177220421660536736937645558779767555917619810613205115688896748767602706953490689759148291653599929157069132737212099822107000432570008853226563411847276991344849711239472377440931448318270614077556367309604279061337054179935046100697755614005295056883013115405141134723706983991720322979288718840528752980392393003457708056441589543850756809535049758681141333212288000175347607555886569176241894008104110105120991677429900866394649843985842695008465895031105442303460534821409995804117203764782244770395075580747850227731525049127842365131839770203995658020433615759317733265212231340930388457237611289796926065954576996076906998762393287054428711580637129512797697109006899565515058294786217837036868568659741106382780162020165860981315439979796315136709233216305671612476695442438428570124387683061686914052396513426763462148442761081548990992410321884068890761278588720231372086261119936726524751500050556912055539450333703465339731695272967060644959758956839483520590116171670888902678827737016331507460572740542339463712999745045264252231989319479573539854196344237836318581921574976144566003399156122486857001501473083731448805537023012629828594618198408024477924691072169398772900128509091405166836954468846754453998611272955497350174401561924247847659590999797111245514904082222434302865455109137491601214054012450377859492124832360516367568790792273570573122694512647551818792708099412331169585073477090645156096461972928986436251697117410306252904111285901785907313483467040088451169885681207809114495465793694113965387409883922163161264544074217460117195170454588326602011208460495644456889409888162244897816035764520764051782780721645644970046494466527673129315443490296462469241815067361484729956958135068582076715809335123385221003061338404937057418966041197819662513595226133994818069676937449180746560444660615076257823801309584785318100844209712168904331322671462874889049082844946783698160649561287136260908829197569749134216449938473867569499002042009655572363873381955176336600469905250998893700920300868722611278305447567903609200659311057351568623206523335336141278226828165035377325195310872631085290483402493393091628417440616794930225905231147218273493765073997818649402508722318119124184134143866661683626931950988751009133722244560824411465352505056243538171153688958704615878588951400244510849748065483032587978965214559512191822569055144451699433471099970163420954874049740482146543910447448041298860735398505553283446089314719498008387553260867234961860008725287905265985020364515404368191127622917697846200088114203125420234346831407506205438915532973799155886001978220838589889443518399221436249962079131679215148186710557513791740489469791155416408969849068009225831347399407482936471320521044344087464288181164346629824767872531762490562757899949705444486247989566599893324037552579968627058856458099080936104598141115735434107062874331125067292216485559524591268447554394557096318748465119065135040833642504725370489372917521693272642491725147439737407606525103364191721042682898097863141790855569279717289688736636782586556296841560082727344111899589014824981401790782417164256899156461001424401665084600305065040163358075186973147732221428238217942276169620865689149560431483670136091618297282311051870507824798494346416905095202373585639876008744950801562236266135413585919937527221333547604448790815377780258527765479631517454582402777699956421140311178849600396471384725260271539006137754744682159509347655577312424739008766795478572939333937428306607145453580578986633938115215599565469223956201882032797484419935585784100523179352673661592588643236674872399229418697658583594057870495700296118369703799058041125860192639324047303587158665205280778165802590921978320580949712928344096722560743935647101750029609041840167546531420729666784471820882112091720872697754436944856462785511524629664782155689713014155236046599307705007208043400592885052435731740230259085600277116001639360273582126186654748484203396710643277144159650712382081960419383313768542180596815080276190101131802865467510193893775534721609651474265216416265898782031991088963859389988497283421138131601860424486635211904084723184314638436900541522012247516636999933036263009517247432397660895047658201408016698741667261736877847364550855540051151293560940086836320718426607219479338677024201755954214319791781368369605763487014346994631131521202422735149002911921871447469634481685042236756822056983455107502534857087613609975088298788194372067326171497845443954913617098400309935808481986659781377972703748323488950700389190065796304962955866668046935253643994353471193414039238474740159036157163456124205620633628384916369008625932362381031542542239261453985111520417199072964250219433762826748974337152791118908132631203933953603758346460040662679845029698090883170792633304496055829190112492295439889819394011391759240111557274924768724649610056029898613136687148678555550469234523338480934874707893940759003693815161916409284674777384956945149857550234675634665577595000344806010709961962882621209828925155003173786323597287096644100460958342313834073901265141909049233707443836143132296374534640933361596122606239841765019884823979428107456020905361396587625547816682635770833716478816885047703656347006195924490402995638242111672206699598957479664902886703588244261832635641440322961719762304600989474815629094604297713927819995148307960559906719512092427179186046320059971524919648701303446541192324333274324783069239106368015130593790038104316722727969568598864811248747862902685460878428677092500743059805379020130646272791060681203380987812763027989441060332301740191221412888748431961139374465390933033821547115642551033123460506786759068144345956335169835953578459965278364263875030078969144062746096775456322435003598910986134238195489670177156478611960985884219938297584078242180110535761551954673507414930014463232923153311948436297871872066783436094291786134578693991976347561360775888421114819841648829991502304475323030783234511568520674621323269586926724027322051149529831445709808438272281567740006566061445794934936953171433520687694191395323767887004234455370958850121076528762585105698811702815942244952604764577202388630353556724588178181290720499853816867582790991927524132818307771671658590044161682982279326821324348781197488018211242613172626450708109886962274164197171390596074736506113186197461763823552334313709662194773842553898639216438170243387406804597159437211191533621751274823605080381857180330381587590242879442157332675599918634610149439756513787938407783134366572722121954866848169372307594988492870718935263887169720267260162140660778487263675872923881219842932185374977565000863712304943147606758467928241997711343504778570636402740786225837633822048594776458162668837620868269306105502767005681308338134664629722465444644287413317907135726032351291556403462790250776265162157348399371759602204564425659687159853309613846802945434546179769577150672236554549411843810532952680476090558073907395518063292816909190633869157237331073444973773454423898981603101482533145606359937088263571738355421394790448480193019162169051467437828011591121157593552957204208311621291018383187352019965996136223428574714928610621106488998594577997037506187772366809107661224329304635154784935253030127452804016722869230821005068766109060520023433622552967105276375707579905182984532920005966543687955451027583475427480156204048707810245811278789284437730211179458036082443839510426254548796024746632188689369238924151121199129032996952113783429915256269219402605811611119933923683408894228655373410916178326062910374898243129446238073385883564307665442070343974330758423827967344900123889677152160252332476945303516576709185690840687953777019887258307590305269960460683707118636871881151970266978859594020501372877290549733282423739876171015820177925850661039592364217679526009222770765971474021154866640541778319774127349336667685166427342058487122157146566955965089449443422979947578036143227073577555189294998720239124548685451046038711568211018813710627036935506151598199727039757849664121242417274756035978460664345406455733089372172383879265478986897389901810540621849394406814865816925449136643254355575404046665031045661024380368319257582482116876359623984486596506935564462535251833540761909188804839930288067727700118234485621649352111131746445111570366229976133956325143903293231216401050026092177234678243431881586524001185040230672132585369950108290326016651430959540331095890841555946979822384879681091394456077891377782179262879426241044404268237675825374161314196326582060449123245352511329950214898702886555913863658819513333984427887468580370425810355852805531401652341569249079402297485224199416834854567608169225121449671236327875646462372059568742081050957803792583970820903776910548336275055068304831308834937862806157640319757202186478073387306889651407411573220819481185970387039006463289975219789302376076573912073592211971661155220096363174442612998272929938142746803717866877154302757188801819713221649095419569762774874768110536089168185520589447954874399083470321809536913783276970085283074478872304146519168948034318023314106431439157717524743594653048628351969468164264231739593002921314893024153946148111055627189970441048771452150498386815404019882941338418342202356526153707985742317524925518955775362725433226998964563472778086395548724436164830269363096003851724289706629098906620219702175420991754434658649897963108306995958161102699441462026606208272720895217736811344824269227270496752810323955045574859535522855255912414662880686191827823832507720421470940380553446111610219102392462541162891577813668660476034782396179776828912406643631783859742916366478980174015829917938338925674187286725956690859672850279239050576001960702021627115862288911735823594892350757808847818004823966080731057679723187502888197206247926710501497891866465642929440276428957291172736416447651910440259877811348044935961733509493108156263140602681991130157011708959585578296863399636860334630864978507421082149500756741485098066433477154397806744543678699831551361320887155871919507544409051548177200554155382449939975348414916386034636384040576945727591957085570849144558919281504820874737504921778428946462734489447218089165598708163344865073675321707037447423323589193116494870455780825788255448002446669130276831014809623732259953589767228149213435527067706655016728834952504242861061149123216696122898006703249973179225812911697838936155257485344787413445618809602097759616323803503854599248384682017648564841540384581572616375256848452812025754655999862842253469482402387112796170643959707721166395806120995266951458991388634915635030330107747845262141773217679528407849548347965510689501386005454186224503943847590745640740093298042369235824240761396680485172847211264290314503984861860253036159186046595720583379179175477458049840555956282367222679043277979092026803968136774046233121415562056749681401938753441502808354782123846112940037996717651484992878597438361423666884319498400196052351528688485740461192584645832833195427034869785463040446524210343271973530443122720453576005421853942117997259707455187939554359179808044591463211681524931018440173914221633587346667823145055230098589351113982165177792990165388180510747601348228879284163390812385063092852414435594504496886629397274757837777613880800381111911162988238151057975548747937336345661650243744250192517372605644757454485048117774527264640266823578204032419540282949245791726301641715076841070980012194141192456558730177789469891532276574704993412249019707881450172913739825969074275224089109348087018280085253528146170885164826241242330087805891948803578550106652746676581381860785357890835548392785139536775220156433487115060908603790094695636527559946342756098375735602308403580686059770316844131545077647509233752615746133956130250614007076907152571229594707563625940703642817150545078082873127932883765167685268061517298332592239523943315003282528038298685528492717786998350684702288307618609925926389593292920354270706826562658845743310171506062137396698369992461363216800324698886963805122385170774256918308173055018626079977311048215809587793075038736725673912336574022944866612578548972942304653469135003579508986389516718398277878203913307891936627019748200944214772558597006929915448455843674958569046646533783721511399288295645658116390990376547760094777493853311197759140886491103960958190299934971885684385012504162264563458389431271172674394566612513607896394819433682371255728152704072967251521292194348206548311128935017301160887274467387860891354288246216914228930482879229950406339299585343733903821299716951014607170013316415911336545631104842454050076342988206240041277512594994560351690772364121871781715846546028958963833457037754767356199731100350533806135538901506517023455313416631368060098226480404654492187370342174733145439412005272517298581070214467701222563800687622376353206535021119259360508768537947661543438811422503601779268997947866602770540344008265794088096746669851656715485552912727964082807339313702552710724508134850461212373087779219936326112521625397178146096841395750157741411204541004723560076753476876888217334749576136034339278404600323477121158748181104174089056860753678332830758667217477886122911943484500473796884048022578196324447912046736776855676558597794465079522904985804149388370950690705938584106732827563756823101015242478024877970337511827253518098779611033971579118816551534187738026486933692817897090482773171082335863263910336587257219209540576427549861371917812518994570701851465040898146952200258290783481216647966590992280598702862309409877767303557122427077307831483235717059509472023277941675878799983009757430110862933838036373038577741835978827949669516807688187547101432718039869515555719134422984060246039441264730938818302370602868682334323301449015816562654618231654492012209826491093755274865855858951462371272183333854946493453087604092409167655047814652250607378786543508805301693161724763558606895289556156553340033945664205159264961715365605664763281581575061675445368350967662153920499417203913716907581502320315606383058136079205222988204801066824451698000591573660807868662880852256029821825794741253390741992389046670599653138447041379578322873941435712957165936258704044719896116982122233932234339082359167564415785011598244105818569520620141180131588592286385579014245279290581091186522679442197453228912977812356345437506697762855780286146312449562834547272305973672941303891087334633111307356154839024713554113082979151463796738820137740972648585923867962551672446144068598788725967269219330700888192141936587301089358945581312333310373614962422213990189692602469526521266370224472593649533720327135656126334813734571437449663775814398627169259571200787844263061087296291433816237253369439999500332988393668664971437010731583647292842276272616040077032180073531955436046280255470697640625180027595959331142241643211344981279239237027373136147056398258314025812641564841999999904274068923181104941531040438568106959318678407616114112945255735233349742006123461068161988322717500968425173664334678408594493774795905695095155745850029914826277954768064489435243080269384554509644483763600269963148140522021545367993599337316108178506517290718990738831189960041711392056680558115509456730874205714325467252194986397535674982590462553857245807017617140785963431843473757552396552885662264335430432815603953692517439447938566878254915245043525560309013091522050012613438694810849850308662002162814372866429702794992912491724444505919643524818318880743081089915887395412718623855349168306556883045301300677175099094903741521350237232367248407298759571108969267636247838672236473766519625585506162992546146367243115682322339423385107798068082700788152813163005292434307086154173862351418871112583734131893768382334404829484822304206409454850435801118220157366480324317415703422207514976936561744339809766232112090156993026705919703510977698504296242364777729051557890149941417575911766981974022390966417550845342365630125823819232192042186576292377395556862291351077624772271763646020048419868645300287825525963149548300280795873135666332715864619417424379705925596989375257221135461784476680599169243014133969515642581166948360188400242639018746737848275233631474735995383571134096261896969641690561685571888409718917031473536234791606646884974969863969582143265711252651197909353987615736288242859804831994187729854139387530206046959921780491201396994073201866300915825313650098212790959247228154637776012230272596648473841846778862044270540063967596840227044008313945473865630045378677411695035664983613598113192382758104338729639900801613880488364984281518942737176626129958328635191335821497830170933585737333903728865693203096489645542442396012736609011224113042096298252903073340710816197430552078904414841887940113679962269791986149636865597731131189814166410729525132490024048367338692529647035109043490502728589546807012682462664724739782767239270760132833591442548110711828371232694425514691419956953773266388682737863719807982482833800206205363104585325644628084126959596053491658569332100884185845147718182445373722352136632621478096404251923922513599008495586798341934899846269871762279640806054058222611662417583567894523990010183339364257780744795967850899402988977620393816172587576447220169099354839617904865976204888280209505993599899480953467557446363910051145313940124784717456916388358332326402243181591158814243344076047767392443398817202692049986689527419799394972169737182471652137659444752927220309990414424505264634265991841809338366331777741408705250597816376795329287179913875026642821314293789101357939905909928828037348481505938136360602352621398347323390185427392499550965310284334697580280242786049844762177522843631659390948800245306485741365670101010129564245011802869529067861936872863259605037104177624065012489919396531095456737375658756730043606064167822082192537965593258129014369414656316567746128424583212515571706674348817286516524650831209075685421413927011935812243122726830507225572102369273235530028393278240067361539027327509061233374035550562456069882131069046020206388293390823715612612113758621839069856752867268950654830008127311830160033522563189115825302110204886310657644069435878752472711599730032905045156922717222703645386611242699413113980696129394255852298005798559882031909876804909685991453434651262798610689982394646742016396177193474836865105486924905512518089733065124570205479901457628530319153206041283257462738719102485951033221071253533637195786890387157488490099357327303665119838025090092329037304777007924597681441094600082733096203416412577121542905024233798168220893953378051727692505853813723451746333281306940314270883657955917034081537343203689259677216904252964607260215814260506192792166781031075102845882803360769117395824306816053102893536057784768068493100606553477903218804001803294025126502423390783504822380476035672342527637470257049521362589000423418272736049211459868248682250974078876436334958173065442965731041117522391462563488424180280645979640450989098860370405814629315883889471984714873153504096205344104582572363726706890824946006660666333247314684992501162287831484559029589017179461125577052866407775479180385638931426824350937773159682825328750797806765849338963736805836256920749525872204093332061301016344779627620641343881688801670033495598851740295939427878107578903210934537606059112057012626173680304330711966607442603619137464562491287137809105017919154898044926835921653107323386289862492175765859960875861866397723734255215321687134149238102863959104285273813251722772819599304501997808245647901655561197653252741845742906069220619514596670763907644794104085604607126003265695031281443245517698658046410386783271217612356635715720967665572830967582986436129952427649657479110789278468564078139899234242448876965875702309197782784903392557060410443873709434684107167247239634106135501639401680977440120899615141993140492379709750447665132715399453312362287540780399333800520583013864406691088057298769884013029445314753675128867128689538988406754473809677344377416374550104813110096216583228070267174893385923434116253741340865367325544042890823815101345190503104334483873494224375274692774570152128816062394043429122279903032952618864506024963931741881018591316062048233118092602631090236775382061258592478247670140430067837938454782062739323184778052365783311554564586376493270402634317693290713980510599594890627031719768410115304035080626446181292294363630173716003026514474541494607372658816268932923534248235261875853169140244619976900135717367006121854547971949852899642510449445958345734914796991432516603367334073158057297616441880208334826626821594522445032819675752143645376619005176861237751136897900300328796218874900349874663653213266807786794954743736568439601628031794140941111006766738699711059277094736422615004824475492619496211450275600172388900679771102846137020795036489700441481227244355482270706064175213738937470948059152917996011635403747537244523313388997310153118560603502403907490306634846291840679721606554830411633450036878140989140057811184406163786181069197697443450115380224412049878540148410628722312932844057922235172033241895113762816221158018248991210415412980513261693063398510301686639188739658333895640061701927176681289892379938937376484279062428986163559983537600537439110603185880235702271933976970206859977511442537147113148646535139036971111236288043784513611414116012394214985223928364730715903546596666599154527884026700124012116250279574876854697387489334601536567326431807419623961358084511717047963639496611250338658038856495141026790197020294236936608269136873026301009234288089666174457390968166730968298670458065829249474326403187202447715803869481755856413637009496687006150156979399062091613333462940535780717296411980578235325208947246894054116847007895773069838365646805973053383640317148856733006517966075056762702232795403376606692243596728827976069801551856492126592756079340377154458553455636395503135217798751919787112900072792638239173332129777380634494525572162051961504592401864167914897913328438758538404434488194246166154495722738142761061214011423489256859524160066544049611229604022532400654510028358073462326598885664911254426619258787459358711662126095896661391360889822334693335447110382693938039077055874744876796272366832301147132604650066752997888741545083525143434853908114065439333652814550746235884639017803968617816165845727715995370919465007445923253426919837716311159010538812666837045279481984218657431350546667020508019242058519866580426427075726081564859720294500516264838416706127468953247139923995698756929288725624249485887681371326116022453393223220682698131091919055517520023149881478586437726250430932818940005486693334190324146757618815210176668891021873860313834054686997718207567307240529121087726699373449071753700922875895368341683985904733615249599485441264698614165459397110005944047048021404919501027448798519887953879886807368199792005172386018590310080987705412681118495520979425324417704586167188927410168977214047977040496397828680329412820018462277277371943306937247280973389333489247083648446328595901454456545727700325332444343814120278215949248674774005199659834437255327330887501205530027901464457776230058490564067036825923959212853815259374094863096280036161034432077959696429019487256868775209862014176507911859319596648691358377889961243716876988010061370274050009925865560870954266230843680177909251365910262365334863198599751070454840921219348501812857024281075080677191242427127372141794595640087951990999001850831424363194811856328398956518871671344907183062064729796713052515901907500407698810813591260559565746605077346528881967487388525041751669731094360621358844998794208026836995629784196220141153261941447454149282092876910873555986439427048159890563423938144781186884824247020441073162068941005663894425649187319619567565321535294367926487324649017397598630310779501135004462074208815308350766161690444330399548696744814018214330562848900618442784059877179833696423750289926892634674057752337611739189672340443977200474288447613345641053282001551971527526125881559016894348218501953190675151176519382144214334280623466227474853509337303799915417514097066389807463723856253340595830522180444470719117208565988342592713693286175026878085839211593222872418445528855271737239311912197326875368200818397435011335548102496655480541750039075640544571849759192044730345065882816269504034202161244172817473967512052232417990025381975334946099762410946325790503700902336918266728160061171450513174035145938022641735670436435212062965492767669068851442262432363527771446603976935680659363523531424746688836375668361412517314603098854994768176179117932938864546087698136227398146735871502848034997236170044131919759507867466835092651094903273104729392119299901368616102059666734278147552545858623767727196768869909099326111232790102177755848636081875715813019004379621932798478214023699769681298487389106952076150678931736571047257733060755241603140863127384376208708793066476033959914426406215971206386442122162282976632672908969111873059670540440878790134372757569807042048215520028784957423210569537979033666303574997129239673978693449854557899728176133111916753119370875429625009054489979763281631861500494714617987034719116730118394283266738507118557118017513955759422651613089295207119645184564343906537652266742415180939848700490345388254248022902848674058151299675806571297158772984527166222050483247627572763389464607574401582269980430391007803234123766506776813127523965518275967772744285653577089654971773999113919777588840857872236452620802451090433661229609585431853764943772635409659936033787098751566547284079335322220793623674620448770835663683287167472221405594075273213045714796140444475564658018654504366884151094928568017701963453534807726069580863101986272437146916125654366919295359949353493251526559135506758478867924531049348610254744739202838274178574402569745169622226672812821587800425761125592993207123875525103756295137573425044191837818611165813576664301537910541384669523851537461280859051298752121574926151053787217090938213898847776490523164989057456670972125007192727898862343049502372825872630882830100529565363919559782398233734132085964030856157923929550464470849245218827557321076620839720321517006702562763734504674413801698215324310846678846226795242838295811751590333251625600877542016404243147801104263483677474088678387020098762615751322039576064537687312237650356624448454972715464458032399645566962031278406516182407698003105019594615281766900692360956406949575764638167663532193416633953477131496015490327737330940752622944239442877912467577110519513119894897042869158331002211057482714247655482560227813361740660099460939570921037490310799911692668882637562447326949619888356204095895705496776727601709535592911795033477452474436304377543913280228064545319409630122788072373276089537109384263772670261472476954834242749844337239878589434218389804373928379444116651823778429761349006086550756824776632615407403532084425385109645627656621986939038900727272137952788232798426847283946689006211886366638878906632508830958779022852467478044646126285078115999095019009619382626599863500264857173258569025147074327993324113662562427208751609912841700741067756366817678301248048000883908169079473451610609283641918147675324085547378789453414779726368036795641820639839734326205021932507121542413144921088684996245659137961783338921994129576644758857308557274570023013611090428582945360012227880328907323509824383359911919493905714071445005912665473959353818311263448608150077275678215141564196070288696448633251990631857007993582577256560681662695697064175994793469828499669499060107643195911183600177395778897033767687641787290386434061679851723424987604899527167413307553076692922690438520746268119171342282158483420511575010661072867695875223339100722845053155493255543109376415262642338642835348877039319305261378422190264931965910030378248241360483849375949522204430468487422016451687602556146800445890798255967121156556607060171432381647207669050852315318426190863482231030600015841831142937456000708745921680172360036470476076786997658701146188848498971561141428274901422836038934911909687313730747460815459419014566859602674068612696190034613605534059837451907683289561199380810361244743657538641065725114394132459531719419512385543060258621106005880656195942616102746806894937721170879979995715115176115343916505064192873412094497941858333492671174765469430006266150182084042115328013230795700619885240116025486700014970719322903658219774970241786837056311210949853751876306718243115892397011187510626151739545883768959727606849491820022401721407031455087418039566336070833504841057325150832829594129828085403637434025934063872109277871850878006589878633441092782982720026561428768639201523235282255725754743532416840863605507866594096706587531490600298325024928562232248419575279136933639907566779659247438618729675970394245631729970444783112825393655560766248814859059313674611991698877648955608362805935643543710443526947060603983643146084389909078107688690564672823555906225622568506565323456056230940173155267625978215044131963974325815270794420288596824320808605595055113543505482298980610369999592658363175991668394827199831381014922756533631038813930228283551146059903462148168157575459645199669708913789666007534063023413691509462118172564451178637262464820852388521742647218661624829849824958403930432671831901396580589474369558305687066761250267560648865170199218525043400270517031343263640007553454025288882922648157310269625891573869560081031372715977672199043054947330585436043918627952224574767540106570039593212190388290717719191010884617646444930343750454540158806508805299667401893747631707969696183502261813048404906223610693164298110808247856404616358576244516815170741418757371771090709684703757219337184583131365576078526513036010213299202745285749881781906475004016160155110581567665862554617171216002626343151688796351673571129751122581912312859881471677270284973620847400544564937590732779109929510509945770656332652958270081286418554166466832674770139453684114460868351594527205224652190371298235406308564272862688947019169208437746844465111868631951646267710418502905668158824470585424966365266903993283979646098405333993271879449563270833008446285873830289647307108408636062866091077295364104336325555715608936812692688965207047053251543698733333141244753432382553599434620872901386666929220198408706516659749569371262764992127775202026111143378826515637460300319655729603789703126236082560310660158280620222193905633933957158739436204152017228207845678677529579513553063336113756062058534257596419508686704370430635212346547581362145092200220440145958675539576503333536542186382987111613276007588005314241078383900814345302080307601402852524463130175439829394432155884469813317504739100275297816365646971458605708065073801930917718009237024381327478116941398439202304119020530985743580954515104478385145591788165069196613953518738387892366917973325451648093892181860108619460126416196907965613374518806206723516634040835321642004895245557441349438800783265603383006600958896861141997316198793973845128070638576719123132723050529134712004521360096140607359750316065139412511252315031493407417548537882442714893374936459140666336067346134518728292123091362602685854340526575553703915090734322567648990571156945438905205809788517862605992814565591515156552506133168266561792883910754532671884777646063822708721912457955654322830009678207165916589173667873270545671390103511195375073494061433780194861799388943243829783479070922118215136325196627861747128611187478626822614329066226092710453991526727401600982243141850844117923631988074195810797225954567725045672388549158347638201786779575020287433219946562233038630957401020973316045106718165741006868958088142444118557548788261146126096922465250258526439245067965416010863578083836159939094239157983163148760804832534443995725644603865781623022471892806446470315322147362346686302880616656378156057239238591726205567120001065041936831210178257740070925495861159306783306983357216851979406533162517034667015011093183398978383588243431963453705673988696983376774190212529865178950570011802066451506866807862024144226544310558974935675693241573182746769456149345414077764724403023938628119084034145931481177490361333401300597776333949042956585144813098855940915801023788811124532747144035661999168830647918334105690468838614789655809835749008236683926291129373519456520256873063625313379024407970803569529196531182900497544693639597019081902416227713374508252745343966055360262429986435279402489284637247183944397586789390210486109040840652611396848326544761532730239070091196661217203598086312063395632578954761216110410195370934286757383135745257720497925706747701860076717204792879017164640984310204344461956781759067018414602423665286939252022511767181026872040870271172685669374256256174346777045069927198346254029034641339634832184632644288582442867698882109437404030883720433648608212599154853621029058764178351725539587076089551728290384942312037215307094588368215342410394497617697413471799201576169194800350541262174830744489452723482706676330034812332241546927588775547325427197758315976906403252874387654552489052761904739908793166725564622198693929172375603581938450381908285653253377913455357693388090786250926060442234372313372761548608693195070378414755649360045212725851137860610839784837152196854366255127526067400552273663908120921453262956211638598536138923098472685290950755570397895912639833750483302625048675531119635976216576969189936340597059381787824875557558868895891136483715095436698406343027020272561980911568748689628608857578222132528123949754159168959419984871398497483194741796187359345798205115578459433517444070276891641414721415505673446024226436933426496981002085838469896298837575556319127435190960761244079634536522804231501140724900097200332402361062573727083950989266794467216799478354148593341380148430529780858688716088290715405453345650053135552283878654475509030874145577699717564029880252481245392465653592867875316856163230165292484811660366376315152879936758410502596824195208087553191845603472390301715980216486413200018347987373902644734116293478822982789619264609519688851690011880779535119644551334838097251119313425020689096120800139425747421578472942426956868333869540389405382589983940241616603291921690911995701121121819566919609693764649979705723508380085902571970368842511019036575609905392926239937213071121528839072709534760222608061980878140804966507040214261212405880045219905011084359902229792773212892064525195188184392574734453067666333687147090281846349388779597293891798626676413267142782184157757685988013038909435222433556569161477953360352128379644269159093210587638146110809676257649461387745850104420381911308097407937124172641309174785320916416853837148728367331131560048828319300008921905928690339818071798109130924742696641767357245586119230139386406730995940407864597017005596930256269605683007141217793342160357095652446305182270250350130619908167726410494143021915115427398819642321717778177017743044352139854371693601594337629279375316262875001128681517835384345554106979939592163170436532811828433149068570157018005423259431136347615445253429198952370252763423377516114302465508883584012178480951539290675822256672475008251210933645175632628771233271247019182355233776122693094893497472112830173703723582120823413903563519727169533780324554706756140592717543844523049759618018886062523128587739354013238891548924446575941092768654291621242935302187486997087203265751647093434069075167064159400487612781345981378719667506862597484340462651492705413732566095253053996489451417444641957282325363865811210869972191600645257219048321405321101245626848129476723263004501095996669255497245112814254335903501692293491710698916615994884036631579872733296969764180039615979377681343121069669938263484422364692317615297283879796949540560921760047459814124974876694706306199205632016696629552583592273017662354417977973981726909175787014018867221372441227551162841660622328754958211725728010154681367726338779016708715424707433088468613930297907370572612440380453553430361117251188420805906135768927656598535070534431204314781261882522309124213173363255559954603440588912605468534674520364159382033014744787003619332238523246559510328597096421445008372704977261517849021399469761359547969919109425243308734697988055988781269216486313873144536621894018720819185418769655266196563079946060125201546296428975261411964424895972018904936781531724796595847496776948649403432561138206240361573102227122097067969567573836098122381694743361767007280127366311732306035308217752327566648336697137430362073599648473220930045383482035783006198324520777657449751654266625462321627798666306119155320091546241771422082526551095027223539806376468463267659875951808338486075707541112470613093433193426625387144847134063675500748422099018681296368653991480815472969159132948012550789290041727631202818771074256726289318764451566320178383588185031317110321375367770475840237144374996185146598574726917664073890064998987249044748792872610064960693502365785272068018713397002594122074159493462864381553401080879168040458050881497048087901231542920311802469502169885418197423796612702515067689448059976854207977953016445876698261810552887438721141418067967064369575540441305693626641854685866311339359035372167138195675839420878484656612944997096904005163031644275590272154718560355305209774454812407970622750196421225675962778333543698921597631736371171582268294874399820691485890292742925279462441173223801483507541457305665336522354088190603913775680427364391153047940899260534031841645180089031352947192754850675501080881414630796639700722156956242670921920401615636242371338761092573970024630933178039877900734033390944967902506079983489738019323843956605495504390932263091982953504587244438710312392184022484303004641178919637158359955950154549625970240060103755023808135072567270441666310564255490503275580713772107426037371255518997122018492567988518435009722729053280760227816651321536880126676625002944761335642644073275736780793207048876049248058086544431236808469674817899763122045999204678821757395645750219645683913627726378636219531178734712595691318531307234986169609699601404472991040113235641806414190476243705780267592525901003106796158764569434614466021883066652216194387683077911821900097074342424854033779584038493579820240499239443510126874800949159279036254057475214969987242909751858143568645517016066321255931680226755034113722096162399553212267371977155237974102240456483527503940359282732440724829280689709628577700235134188777090992697516059089396488350813801217681467273904845202245995684801399582814904839945555159818481189666469055257734524979881548248730956661319066977954484246250074960623537362839546097461315642907766239695331115142840328127325028192633729504202984792539867416937434918438345280740001783836671592542341479254854563072142255558207213555889495349839190418364312199813468755121302979389950925210438667792265353236635399775691422081600167521755257391863772082577023936068040451021939814479403257287573007562845738483987087723571055397816131717801514337928975328632594620585415939008607882756510010639041459415481721787769467470589747996310318824398423391957865917422335464130833669816620123912299034167980216409332047917010691327960718545875105227090475459664642393898008821103374903328276809875360563983175400259314631833637618941310017107308915314928588533723364192901295406773308594736242556150864756556356862267201978742216165804047627091253244971945121668901017018537079085538313333337157441958128383072848297490845438907822708099219868422034968899860646658483628686327537766897692985553269997916199942604218773966972499347696521625250070063375111354854180053659682697008802456571008242983958374772377167698817839034043675653115350173078912671721342728381743166966655648786588294343991594945055291689498690597213296666325795520691171340306054663868323953322032226262713558271261504786363496146254805665890243624046885446098190310401619205697251296439518207117014905115853533746066516031631054141021586073243825368904395268292660233399408594481044414813579239028437139201846085431507150924466795228378150335856806363771951904122731711709992707123240283361795784528796737252001459587295211891889815429356390193735427288892922225115417061235492340753671077442575648506061207749480922478876848546174385801460062881706577693067684546210431413433945622271601695814238047990000983319372085501823632706164394478862267507683727504059125186358433925718759127137339607951282747802529122442283277494046875846775743824198625796702444067830085034570202549160499693341006504583796128484361525501491646627155290742359625819162647996608278803271062330462200239444396030262251076974377497945493618707584586995944150985187224571463514209203835976830111000606954467808370594750879872451053525717482003176749106327534504180997508604936922830847239305186910323841074432429572687815106982652939072032272915981901950846253974105097921182997830373014398918239804142515346620179994259566769996935295839966726099495198989850881519707486063700140347122698381912747996114432225356560608821627518379494348909283727619151638296783253984093125745115146430687453323229419885591428352378893970272844411158243225176376233575388164179551316681112999086943654575630127760936040139325770310806153292693689276854652616328557721632828028295049305066935768039295501569040221512326510369218418864226211632924892009827733640340791685984927596991864774810033886374238719100733530361136827140195265453894434550357051160398999968052950364353327228222477238367247184214482555740006563637073437285774519676288452056117631567340396079867627067820215903041170397584743797121909833728912911866555197762521460557785672885285369112219362851628644409628136444103414001315402200176343624800209650768017240300923007682733644018937660967888130000460109996435601884744588027981443820410647169852074104082287162716664791088391557599007014888279116185614687737588292165577696936090531519413506159707720954067613533799412255298056363146457990942307413399508227761969753430072523597716932310784874490868630086907837958001143563703972562992807754667730974030209441741144718395229239763432933627972523112410940763183159349641039651118153230778799580692402031628281051886109834092009845650531991567930703883800809414360005397575456556216481292143234671320198363797305116733735115139078252325717182077307650286537215646673521958599167391202160500555379341380068582852855260126165790169671793616998240555911392086031918485726270597590000022339916822583771519123027176882088776663001920671712438181432073824573718457241216216396268014977615592958520031254041008209337164443343898182630509756996699046806036313976127779666053641256087142524124071541867319728845291296613624049537552573210763538547261742193268531094544070203038825128392304423079586477824942166325858720041077649446051689928234100493956930845446449861525681229532345030641764868492672020630566544375666650383038093007973017019108144193531243674504529044806523503280516284114689437002720253231768923598062131903998454601234797139163084251173553920286670551241473497130371815191148060822483721288497266399870894525787275769492454007510359974377444337865154446234742552923894275208267886444658589270635645910128663915054482013351972610131162254873203210565841287831244002455424412334549673829625651412711113721473822617513508318907176361173618113502541348241279989745087042528198072824545317966702845311846833125171107759645280053490667287939260668605856318732549331587156757730230894909503460998049121087300364298072989936129783752056441000064574115520672647746311930426631736729799444180427669185449930191878923583108018191896758165042012161390760395015184263636905808134084036341919864956370296597785436152075773042115472175584656673757462398398837658617133619661160395895635564978334795966390834848810779412541213283443399950072930280259034505206400845655472433568337465319001983712765404376455248312321695979611758154900283780742023076577662460405817030354961591109808539976844856736978369234398811752685562810876878874758691461344490044527234110410250363666182397907638395554299888825897200752467526772610201795178590848937726064154569405090323759706737779119329587987700438260223869245484432249432253210804495989929277247027153045566353182569341073749808005846736905201663701622236085199597092668377886092708126220763746134929506122248784047910750915208617669568034929982128885240928785401704300233354643939813843550648876387271128098146929969531830300596974138521113992821647865598329940480173941255953019209640527987926694919983636379347032866319919077164138808787883348726740647482933048525090917492149810906502133588880446367322841718607604755105080145629517482893935110481755258186125288455327591256410351867573608606188656524400974897745199945638980773235601380282563423068323950766818455571016949100207140446852025625349463892786331433412124871581931006286065764998603695986719887527654874130179966719609890742887861759266646854310441959259741770342988394884934937387165780788114111174637844948360607206099743159699522728679669064488706411229240550705814423713298201785724032378975199967686445574248194362014735519594995336580678811382534206384604323834122946616522060846190705334414689099459774121493794474298915664192404617854494391676886024588859517416656771782975681523768835679144469365376899639227387311163425857194139255164937961427974656181530276689004643508608337603547829455955769255485629572572372165636111736492388093129880058588695961380217541112117977654087613579740937430474965063026514461296225951097177895836841722773419505262009991733208610319996512564802639630866618595437112235284980602425508480251523637575217401669160679826838849316637222951350236864834718239716443214413357516974529858851071792471115780759931971160391321320870878607014056627167523343577304957049630253373813637648474122902818754278960476937217575192308094018747342378852811165634350973495844027364989087335594694193405054226033782952510598621113901361050302851012068071264581468687589993056225226718282616972420234602533731468124077756952538699451681389008017282746014842624621280623541922617903746439923170439872259452662626042269045068536542895498446298235481570626991929503804500209769614996376759562187316651705679678319457128738533085162093075546361592596478884279297882061690426869070334665582539362199007654490113103667252626276778493021703851183783581692990908884626689967521352027786943594861171964841916083239463267396611294513847581087464388808847847245074786910900433219521982773413753561133989964765463661989546576627281689654393402369041007826608808264865921298346575798456160316584393141685379287874852147913916159508017095324625772432874982289114776906625058985729603280542900491806871315720929912486204943952338152758323556794928674000458099176500097601445014821566780423579990994492236641655830540166860125191472278378319444901746714589291830130112971912316771835880201194823635698033695501311728577657475010755743131356693476434712567433402189603059485424924247453364801840441824725800622904506302297835246946089706675194943032660286091276573787304306299340223673655192600705027471873959784998285833861565876872131326827697174750513062434612440514277544040456593728927717363990334279181772837209206448953161736517656503911783940842892366491486106715378977409057106058643435738097994486369144076660195833038192649271074130666145013358769639097389423093278551014673461206991705505235021018633670071958696994974946058436603469516349685087244896017651268958848139511401528699587874633027880740004498304851534182605206283753269349659208897249084969735442347656812450196314048899614994916423642720533381739309741287913924699715816971490104386762730691585161500297072441854019006838893497936523499132796285923083352180672839888115596410252500098428739007660904333305223400614223450336093998443660885664853301821881599562390811236223899342623786875689402929872861866081625255419358148318747681911269339854427070447474548891563412217885398014878978984365792691321197498080207018608620961045636196158036821014730279240069008211649549747730753457361420358454346595016086132737972998511903791011272189317212464170048879985902863451944413248466271203836496787079006672022305186915670314217092273205255414228883918646677503786662819305363139635819439419153457009205304931172035163390476645687386642384426680156448955326222060237511137923090318886128237712458884586214698956072411352596463717750763921029332234671708823477458422204793491699612837732136050437025719862617168015217897967261867352890856606018063125745494713812801302650247404043677903923840026931483607060493548214451881964387949256473999616575257225364422571561884087427780941761578910282282625442876989300278122745820046886443865071296480993039504983402319307944542195983731594058788163000017180065365174503750349164792354503374582577468801325852654512552700038228543233391327594908972442266728849755471173385622471229275872313141345916514705344203914388491077282320200726361557393097137036770971577671841213332911663417355867698085993686795092641172589240073507006679232801107515452022242527294772355845660640947833022397457668644999142565083180569133890890178580906655943706783895511592869123019741280420723380571976362642875280770503698525691747887233549085091032362436989111779836229853576961499151161076944724124140212705342397484968230879425266143841113459315168689646057032227246541735771703426890826936676689591844561925362986060014882333731664478276224003555659048675555655327315801723263482420387020514344301788411116132692992157415536180762726080987591556863949479494963435675638215405282440705269723824582661111093308678160913097102887598513495462547844186218524024665713477750671266865267291826690388330662843673751636236495592519721836338344576061668935789442816689621734597854353994829389758641718007979281429384173502854089263730535551917374110375360167183381575949900735033273310988322727344834371250521628033323438666665076252081529643728207006731548914862089778793310270748636984557754436392674014375375354907081641824229950899243416874381765986784626589379193904785507647027585689229580068866815107946528466227528190144866416812633440353076658961852119031724004771973879622998602747642910266011839869907860919539009152574409761831140168186190633945337060221759297264257241229610085327211578698631270432743968788021461384239537376475386439298265481792044518657732542196082761976701654999864005555146557744150527097012488661518532909257119316571824914176511244214052622437326063569860388337639962818663498549025764796411847034322570551891915069526781651504769829222163450291021624242294411158614724848446925969013293725765858118653105055886755044609828482715464992369769881498621553834422295765543369860771213631949408124015356849734141144920834770257707677581423000323401939680344606605382802344458891062010646040000534498041539400263597994681820533025692935792119120311795909198010793541737815688889325920570898396111140254669210558483471268036795144625876734249357738111300932683344819017608921342617814511064655830420166179126982622653800767628648569970979851259737271211630061854258990445750932330629635142050595639148174415805797777896539876045969402407583331257711664284607529923665910444151708949718938805881053176900041119794899010823698972931008695224988188897502005753625185241088550044341994192604723498909662958681846016642826333631218289094908364015588040445986769366938659638905513915663795214994621903409934113942390148395990499036188450477489992383424506259476692054737629799942370498566266489306675825539994001313621318362069414354096735003222465874793305116505548351234512075130044252165494024124624180697219790066892243023823875110847588114283905733611090727632054459906436978811703458941489092688416395438096670375967143026553086484795851140572306571920484268684269947577610538246894094578673082153840887187847159911017728039050491362868854731353762462685280906140430596095578167000459551502352245092868685481368890545938558682385735986933532177995540935116856848963826190561852054601733870184790061439846290444726750827479484959677236063308916336308918630506947434233094845324790765294417391191476747535325497909719707926548439033697147616330761492279179384784148317639111264492148261333188037935144689137797569810487738294523127990720395443440613287892325927699587544527517926842239251013658129702210919222682557920975147246306260574064783757010519030171070814187383447451671887687000406043790732120156626062335093170368618307268563829520649810690897009498554457548932934906098664232272983541838538118439333061522896312029986745639821890156991791220887638086654612235192439016101557697267411770867518366893576300237460334563978377688417155080729421131044687323916130627838788231124670812076129961109783864331202130079906837883950216202428359912217030463164755280706510778678939193512124769339174288484122196421085901320580229830169508828686294670774373025238450190655900220970177662866981902240912150953291370713763800065376685871592249244989327504784544394335339595769326175724795114197471916480382408191247698090903137650680547939613216737751641516349707767149702437984104919403236461790293356441266578101244809175825149097548747163515066040765549645521200095429459097223019679005505122587410916645644822287356971253321117178159531121570853426029193216938350756559896951416327061815291833228716298676247587890599347732311002174703855903089415925306364810089826609759941853024504522925712244470958503624605833421794676482501890301073629358704856232262937984248192852534184533749406117358079716808419373975225041240001301212026409741139352001329562142559488549833917964240617536554660691232324290558197153810898643872711871360799984116767167914504190259438469850176934430003380697937777676161106710804585203116073366308253096957236047982594137118163633188856503033268031828351213704767318644356664842311601060618324162720991144798641178988649388913919525565104521135896349748887629923244884079806109306215938318427861241339192123294558261381236951995816507901191586220082077309932951717556410715923758234452213547641010967928883835853291816006680911505255789029593194361968597378951479331733867896684503039688303990037771018471453636033009966049568426201093254996687376328017709467110827868525909420590460717647564662907671325343156649507969616354904765647373215233360837954129368838895882556736545343638467313322484511843777395929243626594186047212727262630285363113722772528434067931015029914363893915521729119105326339194810228553006477795680107595918411686794428639948427281278569674622427744351639974898065544647268634112114218286799635372319173711730086689817642121143696143015302217297831544661522058867871175310499909571400640353414680259055130240739365568568853922191408695975212741296541233306059722002173182052417230788196478352188000058050217602723278827119605922262030551930834258378979471913714524953663191729343209579121512981904028617778462827113550125024760289801626665991896902512455661166917675585059499785150121561552882506982150117637700605156169796328679956506607500809613377040968473045863327902770992413280636273514459165672777082587406122248648900232423471038029679134842828200647074222572464923055063640438471807090760516569161309431615378811468241894236337208736191238251103210490046487263310126109604299870426970072848725537499590958527132543458848061171511863920254362206561083056828483305751822685693690373504632633428955778127945599876632948792592321318270466537348821759101486582846042387611847724271823546736757161843776570581876708498852090385576750801070058831143828321094312264078126795544006259596442817498849633942133232108763973012759816036506785099872865927462798541290534718366123814226853695568962346522345090675275156579574043089736214150477294255404213622802121385324697707259976913225023108447673113854682065316629797018901742001398739211803289786336566150241164939121235825815698352947786815189005513216068092557904915728158271915993486840909627243346925669650408604118125866218415930345297719644995499348636413190225372927692765887987243389790691580609891737530989022972173911166615881428976677953791097751208534038344430462721375066564089995316286454008202649865906361186255874023462756176426059078964151581860199525177475369375512166053367645012513527923804999374693736408649879520091352002605462799070195390089763025466717533040113099818846462013736117296552951890063071249695477305298347935540991684131140337529278934758397151696573649529085038651602862569577043195369233124713990391917696642353404694811932670269884886056867885254778897282928296048862859719430546396700138613712066292603369618963411235485690610879764832777891805920804620950236213254113659082668689449744050178940473324929306919854967473701341818097383349371154760256459049855450261396161955977213216507200917689366313803581123664845343692585740862812229429408542343627227580948419315887068344671957396442488914502040591381164542307159701593151961680491463791025313200344778701122728015935135903146777000730390811571296329531087867507685276294965784519525256950595786962854556344970428309753363850714802581578459300098690464322900007483395761479810447156251872477082313556098705057175376739894246537778777018040047639529821167751561975243430692902811945858262512724028457002370636068462142705510819601413020021062540447733201829331547335589290304459875934124528501807784753345513208713362205914800633889085490830813390682334290003810249279408599461150049623686286018560834266492129268098458404585339047044310820690736204344223929051528465410236318857773100877607293902325892570353480766451112710528177776284251388391547827275611418840143140511008583614917660604543910887623984843136151060691098297450267327672781535333487977430998522440051227112778518949330986781114320307133157771669641223053493512806020327619087591415993904779151673961573149460605303221011054743158019663760259798448740419013082458424639071135327248797974580321539473736707237343557672469890316278181429390533015572341089797031292279480847955701717825255929245805103319176699041425299637980483037192009396640251066189911135502502230785615278870681065985108769539033990067990382365764811445510075489090307371106511016223511885229588383435256321465901595047606120161962204996796751805836190666158947656091810693060483912930974265076335663452752697718395946887937908456067475589772251919066034664355589063105431001843394227747854188453514233819315351877487682661724035633675425488582296906107149112483286379490029839005624922473168678022251841820902251201524630466710271206760434209067532201836790690237421749570443991912953246146309146734938094307462564077194601606755034905691637285460696646123470713746148522618985195092716036980062435858802995675903140250309801910467803931587561936659118940058147044308602470051791133416456240789993586624035682390158064339918133839226866534701731133296470166985446030334461866984739765350587695228925528892422017668891810397353349890073498358863816271103765946915984660519222727426561839696456694052128495572967308350532831695281059821212553795525110926330461955653361823311237402458344218342086954833275117820163020046976286169895568247830633061545484407585782658739955451933401045475563408087681912718451202185378957382995534541911822619388144667134693253904295646988400078623537588304935072732578543241405125009215544325380611367682418135937710779987181284184159954505599577897715223354865049159306467713778962682211499782925575140488669964697970950212176771157410747990517072168323330178199744043478294211002893357834949266191889513801855808384666292245259350770219681719117633107236807279277675708183123217640934207338648838973199980955675712385388523240551808517191535957769148604010068514076564106200162202565041107512681602429711192187381372129117439926094572904764969457837879037680824275635637526312556322274894750372400579626061836577431591997297010098556339982772669214197199395512733799571175963111762408851461180251573859244067898453323861059871429750504979383214616807035937850905182551671134566083074650675913140216706616885451506746535781432532936000261459822621100156034226910799606260393185543932199365072413888092319088098846887588398649942367875340104656623569500469035226084977218974956260051334951975253229032988536925301417912118191028334774152122236561807673835164524248436662350072256868535847353579848582417613851664266186966536714924452622581114738357300575462064695932212823314549454102862638247890433623315817311414635294047040640175793626962458322882475446802980222955116192569472189417180867553566566007042038849632775839179285824838013648721377580550131460968961469284001625318855376180082585202584280404578075059767288192904019423105744882414770321294483042731727727867089316805361824511026067515905433335311669348270559953107418235923730435335835561888409097030042534451919498972960092845120637411727459708399504811965149007535860061129436372673629977839137053782214970707070206246384675155535319965509868694279346255934013732776824985300585278341072971668773541856395049561740084656495768817948846905231268638783133758998703881669998656923973548940838255684035345950851234373299349760499400309099362214155241849036381709958352574859714890516499535769107235761558639449107951461168430591956500300545172801378529512908367923304556162453482031459904509694895512369905078749914364611001858951827329794584033473102252674803727023793060888099325796024897733382005040801667704956235953122526303738958192370426580044834028640077252863440144522418950313585314294838123961087786391574990849361114509048307126576143542487920399069631175605942604835558439804712936632738285243124163297370286111430965810427376918249328813827480506689736767646857507393054263579435802840106066434021820148411286608574995990280527510597252776915733328737952601251793422689807475717275296551316093513916305320952238308353660891436323941165242578988627748652085602610233623039477038166218496587163555568417956288818237428246939048224347038535195335258502061477396586958308181538843197003804882626616726083491096831430646562057525128857597651927512214291100694142670449086470989752483170500829146460045298764755273959709166329667676236817189980095567208717412279793450083728368434252448573804181019611739594189454390915525920310295657008452130830971970203555947056546789312853761807867493111829329661751157310187953263990920972783625434745924749404191101722884914017141654199696103518567524158695865832311210277608293927355714131303965137745387809441874237642813120457409276752078969279489242051993414813861561932095871282149977428177192308406162819752257886147764735163919202683242608842260002556920490916445712551232127596034965231622665315422910185321384784988046243941767390642400597220215344521774516595639374113244199428097887001457677545666152346869415260972114326697780075882970122054858208946080735723106346211407164160273467198462713781844351331789043454866649728324985918666531963726039870001637577454293277643862642602999435782041893540244095564054707622427893422684553181539074923740973498443450599164052880374684647014132603074533325163818685372179405757256244825873152686151308494124813119032209357236998652670029338198264246853625673878987387735344690757568748040891981433973111515270115832866622128410933735067591997785208576701812876133878568032669669966215005699426201895394665530564604471588123102341592882103893069796720656663050488955446905451432431312165302387271433261120595676715833824407432959416425202591070211991725188113339581921645021312019577881899820864177038851184736851655383646789650068476864318116604982658513964857369489495580170769263526547204825508246022258898096772626815714795340939106165440596485937118395833620269663448027779486371578572705353546354757270143460299196369114932855624781444142310247751755961595821432252431537030893579855322477594941438149950320212895057103980761917206275821541735425883397381969126843129276284614904546401462284555883457992073071355425441003853789389201215632991383231520983669848560061886457067559494184552281736400599893779451720765343265231586246940386011300031437467204991317858753800484826143538417986154259376496594474375083656477236534367238326147674918441310666422798608786416639473288658820564298575222934712281324076813125898254609541343122205944669568928696221520283688008214431516919228394687731943480028019713924054515395749451590734775896642445129240513773494466284469239382408879986211691022754724287924350611462039492122800390774288448501905239581928294883682550162720696734998955853535784121205206690103280332572043085933255073592284673745174238643161750775824311108007877947670919490785830282525375649683916519387022345816744666408042937514451795800021593958619898683519394901913270472813745762067290344637351382340408011797245439386625442693845589551424412504412143314287072819479671649693506162441023600718026982727091502125342880000505568070153103586558288505112510825899576613978412246628144849420957305470947209722362423522715731312136715342772188340119255009882779002991096769200843471637469258567249051331093923598349182701310151030038744286664150632232177335854619713205060708278161832131358931789650000051546203251046755528253111832806896574631082996908707698177893346472444064379881809434888958955093388276214414024047211711255037228215934872861142889883481613205576824151218177918109986503195754506147207634152500297435110654459167719232109987223789241684367948985656366343789968252076626638847033304588578200338240166326463831633687170383733564659760597654024383141159287957788514045825086624969088559901968756135804193688774942531636524933835834812502677839464306348806734008916435414614380562642826410894726366143782349950348482382848536467760415125849959574720117346226964406493473061764046007175356791462758534434482406767823844697375894527569031825777392840209281754590214990857763635537486991933576923465748819515847743656865414898900590312427614537079785554792319266858734545194602498366635635439019599477288859580025838001479912251679812964656328273078572598957981894448230865967156391587585378304135588123596954114723760516934897327982758906062085056055413047317636485469583403666409099960876253912984486464179202489037922506372840512373207609362202612399854836613040063841623019626592238666461604448461360076235612418516757023629499785781113404518250623598465509605311922580075782379593299029185058221810237686273300475017460422226920297364794356169153891633283171478916344133661958691439945785025867234129212971764884755822578278896574915429430328423049701834241444843785109638342553608254825791879651845066753389504499488121543406472802121153192787074983123598137789564408700148398036181416813114759553016137903317690318420113593561876927599013421170529671931893121628916913914094634089247119708826101827020202290445210481747481252277748507664556358503058273987719533655844893049459573309980640057909169389743199316274826502682405236323725313060514129579160697648564563998283406146641079516846981313479916570428881522433933928267252214062236602295937089709964886454624086572633839301933745063291063883333367275770598297707643332048432153768852212110721437915611452920900235993159645805128052290938282360115656002768133393037729260636151395397014531444932244418942651858093439955928002459606895313916918268045621623622813240023885764655531406231917600083816199341419737511007285453719823641933923794919730885165918247997850528245149573864611019636083744614295496151426429482585530254464113841517848376273076778862826972279994495955167991927762166030094838422891939893026588791370156180075617391088819807241726625294049877899839592711566126699385879403918707059547661019156592438168188227943792447277804215594750611093632681031864069146293394548200914542362460444107941306664726097285494294971950201278676845583538649024892549238502084082914133084641626800916489154620041796541003879586959006916397364215655410945755771734213737798340301978491244559813170360877000615886130637513637715531179467591877474386367978848146448438789801477058432835114534579313641571353017925517122983321122451795267816717442405373780617071677628594965450589972267004691389849872407544188113004890100210747224095261005390193435000237086184698304030142808762504877907871028823408981259246330739437333001527849473402043457730772538129990040943270535252382814737752736809814288769113774075972607379329557821736695173953400860397534972578317179878726488144875086795509589088720026116409309126316207466034734276703266941608786278462191661800189762164103460914429832467326432791524884505491383685895469042276457170664820037407216345770383645555602204444856284436449987231959543144616045917653754975894197663388525243651530110575354146347212988672004101865323165044957401465184930438916782245567318195198630256451479606776526163189812393697473134748132706271066877196718575923149561398775720670201272245908809192090260029640528263571837269761339378649517872687435898103932425453123706364532160318998433786400038539675759070524338021228909200781846346406095161581303187488466663708002676515196942202863087115623599270482916004427254072476566920576613596267965935796795965201408153687209730575153648172236020669734513035564084812114132675759203789615794496378589427918114144624385788908774657286830465311774734687262605771975206917818744760975050988671348065053472109541830909565973064478176675556872074199531372338593939743201289950543142679891803596658713313402934020335708891464833230747347400288189783024608423223253702697385911297231855521054005402032265551886743101349231207029976771916013347456083436153473636757802051163543314718782928620648669738357090390034534223270952786201992155165528232116329160325598166283621070483762835162881360862089606514519367268314700764494368297229332937529122047140871350609662142992563509642731659159456443875165397972261093955712142582439135950015500060951449635585383366039429799566296691706486229729605818235362826517025650154875092815995295321132823150267811103810540662077144191659049993669164034660305103863915802677769887814155379584715265934800391312525375595167093387895444639088215311287619154396305991502046362967250950300356095280984543160595741438742334279661503707976537975361586565454040079171348292912807976455993868577498165075530198865843394768879407746286652816105666968506065336990919027448839407487019492930491341191287686455961507910370911197841112613882939174543099007270297024686670014790812095842057075311962380790274268117693981081074180144446558277211978621455387058006346678020802939292306616285846065758010335498659772280919854485423431671320403177452039816597854654229423354154112054925685058382226709765816238807801153828474848370562949033038563516591393497950219799258986280745715174900560551955059407383640247345943433551876462398549906219355705382460305334316772717878257521816582719392453751575889848452028284510824237283019994492573429371485891587410418355568624343526196528963397867137789650830583696440485963249482013654484624147263365506424016303850041134570766070134478616015624308365643490227252148799341138062339320720294815246477035130260457451259302868008205225975574000263459708979125382278800915238195163064805300157196199284314565077789793701420414438003283906059865833145421074536626718246725437918047024457063655148686857905505959201960954938353708854237806316781435290417942478673089811077373606268843340900517376404223912008823374044743276323718795790947441723460550289896118820424039387027971693707160104008524108456941792313357447072669392377845053921873244870632001049076299479815957217547070948657670635052833832923888558439419945428187444498002488879525109638470091450454190056189280073752968777050625819601178101017189132916663443894917911098333198734685859775750734264059732527794709580014156323323159048731141740762264145471133235971027089877022218507182143762374817527809971217932525085954363792619432485031684909754572902259058917213758017869000663220375393038458799526770582173778210377227934894966635635149161186711338902118805687664692216722053849800158355459429833865212673897973084379899027385433855069347696961852530466864543375200751762649326933622891458799278292170076288770175980438132595470618644844207012153658710360856483453344942112600555148011122697986532203408591197029356340467580163080692142470017224809577916057990474874352005006074433562862295744437121299461900061658815633331475190582900667195759954537638042801124967673932872484774834563445999440426535404203708664989400106924397343475952628857368067094699747784082682485209663156134224102301438099348663299597096239839868666736754247077871525179715621530396508347280571473475329176548607883491903865050044996381961611979482978791321961590129163194824461788630676630183919539998120431840217350999920618678021920631288758566336081769217430204343437864309141550239851620819321036220883897922946711547952059564706944070278357916210657039412426434813417284647251769873878677335174900659677961445758097982294333866120823125335403151459252748953979571317656345712688179024003182938491251675119207584891785022905412307328253309507225111833767452940074262318155222356471716414467210043891139933433274680894886439148138001331854945278579236554140328117071001454937662302910427816270132171343844529713767612856112168091781771224137679008358160380404135167885576377238257878978993620987276395837444267242501932031866369643491696148698460739795083256557904283515355835457078018660397884347344065766254861117570659497509566463019715919850141074250754574440523224526626875577870206244212229362393134991284325243117018610615506227783898069139863173333409458967630290408850143751091259280140191743941917897484807684360340122695188649511563828546100344626534510431650834841209993538755531684914024982597411732948673199043613347890519807454441055639469632816036478478144387786202688300949284797696692652814874787765047590121048591695743081878203633325010926219253562471416270706551282825924811971878215293622899992953246906972555841982384326865093857141842474734289379251739060511608219345599921206136276189204180397642929255826468551082482572072264858073109510686840047620275491650193380231673976159877586477342753093213144446504048048806516772302873101977561855441212336575352922955105431405979708238343759103939098697012983745658462136941717743088748993567742084396126791413552621312882530100323007268245256704031443243141542713184666242125695284980028805668000756478628397849381581114583566055121871295629383941796801851981782182716796126632566357461622803461669778979528798387660289437157145475402336905216131129510422865412311277436028580317186269668682045906593337835624566767767572727533654358343469061702365976122486564784545250316811502326748555599344965195201538519487115259693614493517417730482808288514614991476481205030127246605883050093470688585833665864254285345849555970714895592446680471559181025956510293954641439770878052008938827120901459106400613774380024075814362540384604312191021476848161417873535769671265207705226359594573260843696508393365885244024919797700620929375356536876849015094126321046532073058222032096359241298422058229433501381408071417280932643213308609658545276702700114169503000228355165695923632204355867325498072339816802200411851475429531822085774426930875298944094981916046446475812804193726269205922419359063701743894934780035649233293588157220233402278905016705101911766816723788492303284791036843135013813604580605449120265280971761743383563062351989574771237281016806116232110515438589534803110449771207180288235256194289856590267413208553034636282512963723690104269338640103122436003177220121217323094429803227741397197468276338187039150830187034559756007455378862181097898400233701509398898367600632893764496501454812402050488673891056628677126847130681126230495398692438465776510090602410061738747869089972050653694987796427088750111140369718198351200935516023828405500880179900253303381529767277982692770576187740752661287491328463838841078129252595190261502468388808063960293514742074623666716012609487112841527887085453446591048714665932981521007367605567967270605487973459011422340862577899696546472265789297268127156081153067838895517705111899264682564039303063478650517550361598397577905830056328909693989709316677930965923465882446531208529001451586566308106908449757836152501712233996383156323316405031480025566274811694016641751283019821746917555577476181777423665013127428258675277007388130248030445366017134583132827691550933471934044189741541071797389775753464596539454967308851549140552249006341849002538905341839602197490636762518184162381601611894822706693503856193834737678144296457316766245447316220755118790063149543732798021870413511989188256006766153083514335819804640157938025425702971624468234328916782035581598177815700231959092093935867578684426083102771025971005013670089750074285505817341806252531112231036603987971270547182527589733531829120059412778659992651166982454290341193125034898205454119935084976940525017047274371014700427790067799490351074076726786523770062449925094664870165839800003907162764347284689728469137929264709742291667093282030086677082206118927638689652903206549935576267614347395880617616642413214891277457767699910999817987494694085724704971525149916232125752030977325043158656701336212298703660986047759022925124918745373046629982970029701069530710969908876358677055210954428280809949580478314058033658253710353918174813521171658651726900255923558846318140629222465954557294979019833165905386326975262346233541544096188787726217698555828710894424808374872323655765601929047468209110468968344482431133892448716369426141951406413333806152345670283192052271317295251792270561891145053656515048900949279795704874771964684759781106818322668716188017872753703675533528402612616454856089348436916401930932782920038874213757271140775146095790498908366489690024061285123658134223376729417984548498146213278989248333604130836889380208993034703375306941417425794313093138807154193237903603542460986717676036997769306923516420903976820033385593641538357514283074978284406207085871278634429158737387580886060584809825150499804418197956786598381747192226927802069384966951920766702216558601826965829960524232353646686023713995191695143927871763688195207313242763067313296699077075711445774656812107163509396729523027878087141608331851426647753857449958908179886701162546789489249558576954754159559074408184009277593685129966807110776088868053261455120104365019326606728072921858560559560999309517206003159523907089280403019314231140894211427482359996792033943490399334308747995497160534291398577867251554994961793892785954225238383442818209504357025886187190018326521746663611419851535884195616766533301056305046390697683902533330138622738416147378958238323770642024910906419887305294293936335440274781423896400631038867238343489486869704899566533454644020549623236094743550800392759762266366733984879211035857034547514210557189026166552255297622344611489453103387979340146211753905461295376246975847194840496983534035677803736213464531686360014987238991017386858457946307159032738557812610840889812526954751079306098058601214255632169694651016787744572695236766488299865989005692299217556853018845119585426469685555390463318358871152907967050286775284530742055198646029406695816365108121201688160845208973320527169091357495877906498385177949756159240978203946909050693146955036302710372632967013368345464667792331680586602687030433629588669269112422014264928203004604771575313417813874125783240588269522414386463854196525606225195021728108514683146556063531894669901844943708940637488898733369912224986995406925943643787362084870421489723506674131991541589685874406640833872609557841502208793581336571884952617390621810667148521835555191789850993707697949079556087371440537084905966588298540568878059275861436908146572245812257860018231525264944942438467968419325549316058767735020164873167163961200270647665498126787307509137795602931720722782591281005558136183867320418776291395995392672334772062538978260295463457850713046936052418778753249606266787348911062407983992158807406825385993485745939858291274500755672884856210822407410544304308947114875234068589336489149231038841405216024046602770029327871435157513462747312981273227206803985696557376677642929877857573754334864000280489541859143830685099609853732284283633686225918130162673181337414990857988315433546100933172226903666741737617472580002059817649396773846238810361743502383814446839827787681565866178593519386813331365085674974849126583263232962107216393052431893056708264320110172480740559666066173249650914857822522644010466593006077438870606205824213253612397193483242131041405524112540678413154078603755326539760794016589306332615812178856060713036216258593892674794549959121117283313739507352255577432970717939869676354268147898252519747768207629549323172138003344956700259568594380548928387167779443774216845756306744813755756814183233599082635162942710784920720406764124653707853120212799755294787268540505837798312055368304762729510610327264293429091252929775404030276974268319383813146851275832316968988876592038800391759318552770609352389824592923067032073855967762349746937379442670825088950651658379962809274258499046607815997718824342824468450049968762388321997540915185735058992561124546954461869010755053535541080313548234490044882124359604813062267991957198983110260862884612771963679338538038265333603072114780361213557622651584252059840383176486590379518396070804943431372542495055857248733848351937922645565463836313680588169504111157469399611814012109150475932563878904135356184447093088116608802238663068037797888130306263276665121986931743167121057851670889455710576421379531158460638007460535875937692514247030512919382413107380965926608401130511094084430050438608402762377746347462339487124280723315628640402345810071424344161503436066061365421598138610145290668136767897076428242944902207526428251751037387892830247296249082573598580138059846986871404933623498599461884034360458607488124987004949849419114259751760748013895769286868667733594681553034743677108376316857626857506918986428323915494023578531077514200666600631032268213158323640183957964641652350171836066913425780673375424038827972527650499761836384443173461879117577425241705602195415623937565101391531867881563131296654245892223850809905978641472246421192751897907095185382128478921957523918728702229127329983883989935204761109701418003345051881187109637624047906020900253878034097128425478025362314951694371138177727932280358444792824810029344367906164193930773890873937569336967859237943523531827948942428934686824801951674064930387124181227748317951604879989591939941361466452868167241847463156136264761310350037697937671891977550566392447983267038752819409155857244889721656566097694633574868797173297048631683588722288001766495619628929987512694754905463025549788445573340879413711429311435489008645470978115066448484936126351253032350629328481975714500645434558341888746286125922660415603099121763068794332018996565205068697818877106683785559212234812609062501102927838995419318940523412574366265465223448564558381303434934988269715861085118075946174290860683194300264832105617076349058760530746197127753860006258619249311913641146812512164235217768554043454105365643077185306465702498918802189989047224816050003578844973563487189427547347852510552436596734240571651660811235391228338416049759905535760796299231027308595009791207421555582702634820239934638262867314819386472856345546702519516723621187770081751574365387749723315166193683212473520154361397581594695598737770996100266213420185416779992876432291826284389108167047327652029963985238539941430830917553822956395240962322433980602421940477716585188050351264278904422637474896224956822760538269142294023204692149597747909220824838539737684269828689373312485812785962316570755469355248553993330895399573267393240777459645195508188220083875251413709305082367388204721274531212936731309960871670009215613382866300105345819993753715289226282297220475514469248064468531625728489136516485734097514121283274966750106193453623734327365045968524328978260442160872706312135846207878245409570115264970933125749243247627986678882055906056478201116014804414675459999693269136682150500246280576960002612367608017618890062578212984629384720551589060524672183812493616879192485497331400193634498487775280744088042299846165450805557456538110498100471664391644886701087786200721882994914127754764711344722945246702381972463526011023440801578619199186718724484787701671740319034567754853123121713070119942695497694257654972709684715581263231395574352701649113385252968503441778260527015996684915957302263452142803104832802752964982034098789744267053832811431311017047395037002000620657541815768084947532789566684758995721929257904489408295178712881069689547665373152408975244719069561617041432347503403479982377754680518914636844529531470439051632033778970476936673368923011397278746814986285035492416190444945340456860780579293038396990077678189870244639816890011432538694322877837663018734955115725511838747950993191690176041875602878750909751058378012968009257598407628536264193414151808805542618715006329691606717440973594020675901605186186457602970444127085277627162408239329122213844230863096692777956119657654203491825509035335218336534684941478321916886283730018112116192151355820917361919238012820985348773007161497650769608626881229027150386029171272286212767979193007186894908512732662864118098962762011235713865138495967439951918762063889208858286013890398691799903404154539793578631238885983220987845712101369850290132412976724687232173315032572095519589257225911475307051057804447876894480798909542049047455474351852421420209140177996110611078339381968606022061939194185520766799710450870577106580679057680744811658263004507220926033062316418879223586456056644605540029081289456553614635723801665393771630152128358279209675773848391526218769672683036848253481680744541425372341154056925850449529386631268301482076927549734015783837653091663149178960527792115332316283876257558278868419079726844149888232670542364757601029734097276603595359332706062471428373924250453119971959706999401149214917474149286521545033481583457491269492172066261531748621900154685648193926360184397027149625725140547601388636751208049686475423269887001647268711377744621555354404179469830954163804590902883709890547038376486690852914164892551091860430974592615831287271042412108456704486496883065911859748262422964112115800266696140237873321212145568710246518796755069543668783331419069659890881577833447595330398015619311389201240950543630176271814730542988897188280714981203681946431189657101140067172599676792200176655807561983565694797299499204798785527515841518914013100891067167463111503471909641881228260405111455772533742111563282320330296677166539108687313270192598338879708713714320309445578077703010726373272832187852086397007523937574305028720077699712059610850242672959611962814781636864241556423938226791734213234785327091160735299745796784672580709711905015615302277334835566333336484317470342868968376859284131692158986469561532152851834905325659394176539410278625339277694054425310259110232408467075067088747814966635802858642882942971202879112198034146504280418777995392572770040229706855985176657941147204279090912166439129581925085399561213302983795505129521394225010149506841581993416932974344858894022721446368650302795635641180290637653494947317931079196661245091067875301894153058077871179316422943713026119723387621544049774590052517524973320017160778183561629423988301838327233996116614529311330423934542952016686645119113166989005626704564720557790182168326668309015258668641698980074850513898640523397383150413019943365326752655779168491931489858784680730484009022318804398099236118272223192764243724551410204781936018624703418075552889182806416265377716702867698432708988668661238925184741819154693588642605366989834731835498361539884730691106818455740283009828163352357590209330634221244427095752636146120635825611457319942129390418390498435265014375723765939251657085816416468368174378691376488772095532458877326158909063676606604846692451573706612821706532892477033576200299522950219345056202225119485126550710165860203047073149602642196272185092988830967616492607843880691471978871138591788188106609218393333472508407921173361401230486566267918916875921682182788837847539525851778160685885814977962703345403754283118344100757998802074825033962939225478867531725032607840511123242013071462333474208366433756083065441030165635453261000236595010883203642905975252008880637010968641079596494336952833117854858832296520397524350117057041900408559606909234236281803879182217131431177446149629401970906551016205947209636133872306057344002430448237020470473554326108773783009916637353659826170677090694530837351710600375166899722754971877080747524672976123287850410690548972472343061957801129807684697854750845409385609179970806047553568943219651337464085825840035206807369050373570301534825213131749085368195281689385132653829391651655550126978053632172049695994709074382621217504945490570198654160704875982842610643089028227601061562883130191613120673311679258638310959622883309769480808344480267382821972979738035338105801267720335059338794093823452149092084376049926934522976022672475008449920987186461720394519294216363757198025964711295182776476052815859531907893444950478712689920971873075987851404472338123759890579135616160134645943629656550314466071958636057135763545265762088804563218089638266045634830935199307165688480884632794988710419350419741084249866046997465270437363386409770158450102438556143585872705767750086247345963681656069932579303594189131916658048793378805508168208369931465936936930416545662807411711944923376625273459893665527414421454837717655630784996722494737766080223510090241008384120931941421520683047930002200511092451575311785537911049836730875198945322260313923809407688988194218824655205723376038494264470777559766736974957197459122495191970147080375099866672733228415365252661130956233509379792369479997906688537391576658786997026249378011837714350431784533639566078717568611632863303176410351046271986130232786539233082814212391160551596695811788685635461014020834195404278242413977192772258009006106525233716059586005322277773899493985111984459342959480344868777461947044331456383417871006524178745807164680941749873518806838009494369120533383430231428489394175446304973599487894919633448220778608899208386356205052968681574847423837557544696309985145478182886319409661658064289671859641173153371015981335801299199762403666117193845036664601693533420219282217284922202432459099292951176371908864113130919770927517164129391553118763297904792066132768221884883793063195151628748203160507594027355080155886015519764818354985953629467736292827849577141167923042908481985931308518129490442181590242462295354413020608212604984858419794076187541129354403290457013513364501328927757176961419476228071963208529801686541931940226982416057480808929800189706868046892174388165856719006279101602623656972526162437014134800792057840794700422994937186571823630398001034879783394936035903064261166926188491471267726509007095855130951755904165547783219498977251022219314164647879063902891122717248146550209335570520714708633578037367700775032209623640981332154659612231505728288699282343927718601732388627279519555105755632006306968742195254589327901323172715887455115759834754040578076833292710718610356230184945232094064870376803393658021149679285220325792160817953128256387297019379258942561948645651939907076869373987902792176598589837314503708390296728557542953521148271545385543621829028863736078704053196870916189279161947846535542957119090722181701899351592080728857761998589410049025505211302890431967890546731205243961878595888371059675006892191597737059138956335385951869120230002561822890112270581432637299825981984794246068074122219086668783898528544695282902142569843640659995042552525708157938653199583031689981034691331298603579180279780753811769824655845574931843222962809705036605700523253606591939840903212678287831883142086714812012074631509903841119718072086797729935360407374012824553303781477681994496321555160348250316404334319868391939298790590107437559483700536474437149442654660980013715926179038799415898044767302160253964194178932813413258561379953249000459183480549714229817820760019351329629043841041460115442823086923310040002266747680898919499786106734988749671495938350942700294282444450334372354392156208539714474918767153548720758665719477580314669361763935444721714476454296303519452791122700429639615867266067796959500620449353317079289351855975883076783637937352550957396945517293805511792370636378258175738781100162317377910989942876115917059988688876773543379004258766496501996406252408313186503397759383872436740521486826652918776804169868444676226034575418243450908679621197826260049541422866890481158607122023152052421720204099977156759635481508326690472633235733018821016749571543387192473399579364955772417793940450298557530727744370294777581046786853505507096496282672807967190271298416044991888791630531594103294045478014322847303518898488821784740484439251185453310891095944468207112549397297593745109232912229054788852080103385823778945893007801697596833910749080538240469504002435110285550290188081203282512707130492620535779711890713380836708149818957557931816345447732119380064536212403021027666792601586092440593236038391558154489303833119324280335372495666508673512950320041100707196325438449192608087787571666318486754052401712571617113926743393294583756318679536465464668086293819002403602948767812616029926782778011708252897590827620414135665128472032868778830889312633974113314558421012531169676933408581591404018438864053520588217496183693857240001775758163965716748771723587296777619950231057160911603279108865296504169508108563607447521420897325531187890085398490702261116215061108137589202310502860910338095709139354133809787563476301073289270335081248970909765565424061641683426565879576661646593892153115730682874165653557786729743209363089078687373109262577975793136806115232721771724700662307594891929324628553104292145650370668892928164254634813654071196719454204994295714035311388028097245507652082251451017857016899119790685912329813474813965445596513999201227132376569633068679048842468224104865202946345888098382040834571895560352710657105587879227022660829249798642490709438751616946019846516949296200482349564315962439086201852957144020730970538268287652428817011439295725191950492216964419691589951072648763539463110266969953514395367026508268636100899088109983381917157141104109435895407281655588325406615213574113136848393862055299744060956170548230847235257105634296000224678116264206781763230236236665808548205930496576799096626580875186915641769956556234036480551414072299607310210419161254402581646121678175751323644285676852364738839950101444898821546017408687189840868535274263491180159794317195560344619327831790711538176689917951560452311644497803766866503525064468737938302634204712114757978886634451391182901738771556351271605892966054247249644863780686927496073701607660630753067649025690348910992213682721125664431019008829273120362689388787541764342431453380794776350200993799194700596742752033882872546064360442381403858771660610110845805631520338634206384696805407747372061022113607634236303654365669181126537808447674975877512366430955660171137131166842591665024438614639283491461355448509067576401779287177594904686817110576293266474010613448539104721360732061990812956148827529338360723230528040630981992939345405359403432580681200713129997538947873530471552562562834740108164717563744994842308909558231435361444664216366151626199342325517515465742718830234953780072702042080613948140317516728841100307898981106306506066359431445995706754989365230568236143502667914393945693479998842297804325099221858609681181181924636646520347562713688847907468682447255390356807472396165641862471023587540317269917657959240286378655395810666768930417502952994166846529457908268291446574334345299805865207002619394439892670012732825947318491795731135308769095016968008679102367848720703440593267715816273778492032755090448396481345302601221754061314003830871185687138369443490983380440199189593467131142557562772251753531649280148533779119048092891892148518306381849231050843244872392431463769124189993340304701763730529624730141338235242407535377865368949056896930990969153160348876862524498254943037452471210252391565265766911963790214058305209573628920213641591226051998157154837207910260779187387791157312534013153941790745260635069226641662616292186295632993716818473525237991296334874547433041853493139384719766866750602126226573919510109528536006083175506312037034180201237853120090711893726689900931915635099202485478304709113530605280409412438172879479721544902175475059846052115128461839510655864975056816391413408657733829149702213444036643169795437195603758168420456718635356533911300479850077761915256843742739550399606011498862657327295871618358416356362231273831736914867888676277933449952527962699751355009295805471738466862250123199146444715369974600478699829959724957113086546127010388304375210914304303940166900539467819618582227544669597285742261214748582574415915191597905016158784307079040221082378784565355929761549896564098808276658840933417493839262312778517829788116185069194632926606627521009608351420330927157594378784482813928677639137426540131232331545571437485613491874530414714961813882292873112774312323722560934245218974317296468985655370179798331484696755515012937318704824073471903223312003033613733139465873154081997737550387946021952612768808246884587660505260183324501468856089569240608333164128204250358075952158220612409430019224144347032660463412867175517809125033523290955609459986847879310001922917742859071837702777997457302366693807186955225847967316313464662260961812451639575787712709749847406194344721404058434407688697459877959770360382790273203451826740867191538644187209238012400855606685698122308761185606245544001988667873668845119567917865435603770608294293209424033319934383929122142721193602090602364481124055732494901836205329717048017578023625487568788146319837589332765384209890821628160870388598475220350631536007667949763820143938011709144609088603436158596409543673765282025597432854543153065015255653764440895588956410420166492259310558333870651964794531191845651759658748675446438302642102127020744699029832794206448639048384528302697794575386172920367581066395193434556607569919930182659816284808079954889384335248574531916370307088502287317229622992523988457143170720399052709992312102750861836778371567703408499372035787544102096569062238264632391561717165155746216299539620108918753189537439488636451301835080831912879706851145781440864817246700284365665649684922544170310400324719531469915094224329898554388231142447988556945965148661254562475625791570224362574848344420697555990967711122921035432498615533070097514903883993266688271332292354617452121581549832348241278801193001196577380845484727104886520320055357534327630207184481062258783081542550100203617266186825392492253544500638647705802492156737648795417458902357608068522355736853306457442681848325708249881126458861015766123193848555963555516349506447894571147827585889356790928472796552352246353371188088360996112571646400995529644725193018916406169864764982151424862609916317854863954917213703075995018145966804525523194896642519919030789695432379072340591692242313711050201008638785792083962481595458815206450254916924599174049857577010277392927657636777225317333894714902927573267576322306235606130230498376964784598025523119755782982822207691424030651120437681070579831271249249735402760376398327212943288428562622897896518959841750766166790706878711641034070911528139142698141125394918991785472288960159127065310615645211920081650323724538201896157897080086793218276943569043672268197832409975179439656712773847002325970736247559327263824128887149703605778912359655824258664738826815043013467285077481465267897600842438059417501997965505887285328545308086506498994310525726423287095624401863185857120973815420414310296161734197343468209979988783055109308534642503070531857407846882255184045848320258497629988987960285545729992549153055972183753236573601105987709109166706958796262389681249553917319049238686571212077187559763490576604507588688626621813964924694837281725684400854493529006557740997558570718852343465820889299126388819325802211302977027257030952391152197794329241650638685992027922710562284761603890027960664233394329919723854598667468906135633909969136634293657498445136281560433975310664215545597837058437671144197433418266793968303986477913980480040237695706154084536332076240418155261414621339620185690674800700657331103164840804356950135999822142177190182577159196797895214440236565617617458435343475419067338237429416071485690574531535709683795277377450320766789757275596093430106052553031779078770064591930231779826214982682025948860702789458058245627973106064520283563333776185563909905856255265116802484307423675391990207011068176679356825461519128555448665390844556999809986763522040981538272579006894749450324490545886859159407510961364940562722974292563369932643162448400485566073832312438426215921839133863658288980648107175576780513933381498667459769841324019224192403062803776312988734094940395056414139702813753528128988916551639880918406858548893945978609334332990515541285186764234761350562934771285281835071636126893823005303206745181851360381647026333348046237856106408324952625554450764710371232110418077989966612639602146532000914298678164433579888955431275949286436207634490659233876661939770713740817896796388435146633057355789060726901368059999192988259970493528128748533574522059133677875281715379423857142185800219658478580986575738156519289486662076316444734313767412077962204837745730175226424507980988083061938481314076283276833154961132597819907268841266592618993900243111765240841833430550391168753364691711912576366624422301802685497123995890717854069370913053690516162652199721933975472149563213932801410951409889928616106781572024435070906383209996264703421460772759496613756084402140409908360910074055844532874498735100993038699335810469230025445812567006280345384802445129361949540832851092344872513371145487385258682847648742419556044425727488392774621725384508377137696834776377619235174462551807516149062063636224496506053207407463128271046607500588151191126066864821945481470396401188662784334048672032289723441746696253619222370469535682977851580680059195744917788587190933677727722418195462712872415789604381585953034096937194370742590382387890573412868489696637144972843263746228934857001355427187593292154147853902599460911766506985776103021160510878319981769870401954610399948860291155965289250584995750263219396858405678713196839537657279563678681378425256806235278143654466322649149616282797143716115139388694140148299744736419345296016255840173091724010486988115105602195184816138837867509618179731267008185342720260315624078119297708597399056676691763631744811772771570674811976470945321074442082794323015342567072997734248364430356720737110255691773130958045885005682373546386747826868417613745161821057503033861437705726220870403415015988096811445192780807952810043773152106834517269749429319550576049670938910464533547213268751996786217222784462589321497563022691888672941639206432522347708446291924644803715281833394296818866923461851520979582576643974394931736136932247481875663964228294447892710689248893996174514988244310391537923740245679098200126053583259909553852171792183315085747591300592081749271061605291998610680493071892456254778047498332539380576884345834311523748894497676086868539176390020547783651926488145654743033689386868807372698199518923143320003912593399523936650541995909039451714665344761690706076339200038451638547494054931675875594356557710991593584442208832681614920851717596584404156364599648869545905426934996465436408095662375629292536704459496921913358675770936271916001760710938736517876831444382709945393234347326866076359303470912065379674344302374811956187734848922873674065212285475236369452916520215612635658090613349299466262894344543744503348378100670846929126172609755118984154484883109199749073275382777148452134511244827009183365557047677083799210040748293952518482268761472512421579757088705568442798175851506548973215803629864966595468972163145300154001071465658734515412277279713396036822422434903056705826171594945006900348240015619010378123669414453558100848539133784737755550216019439149901339549015116554124331747164843643453415219231768413766578632827522174178853427234979237207915931744295526774177151393987008722119253604432665760048883664604520086026997740481880036280530642662412962341817585887999433856265136239053996079435789787949030147090941865607752950227536547373791319799362230702398796123678502171058042642701546520478363100656940601338481695761906636693132921290130417087118509302743276686419098682328382221140614152868527019848735243120145430942821339748353456924987973491718173669627880933101359074731961716601974547221117970918516014208615675800643452943620344473016942581619185042524280845268011849290930116874272307308952902115078798789198642095625292803889413650530807413389649101560081610601594926710097989591657536793787918536761428744949010878193580860809379939554831471713115748631771476428746893058591234406304471557115075569922130969955043815374377854621624565203383983949231602486507158474342997689125225691972901559499899016747571683199858442152727514038733990068091509564236881106650611765353300179074861191912585544860974561307225862928332975962800295125319768090226414142239185170991583839273127399838198590542580949627123717202796600739717460252683193881629472234698696759992082395037693728528843549338903398917586704242146879093675339382268945386299274828208026408552770607249017024652534082505593327968722326077295189275186952144248563148782958602168363580878854376084462535769821394206890710639192949388905407701285250115056186617619431625450709508730573327869648173278268875742668465981977939364016038721123194382565984569048361320755478517099653849224578418864891847777681905401322726057016601960495068578413837592256265233664105852316190528932585562503469388220506854473376891692887420205307191370081983560375740401776556440346311361911453641998335104340561452381936659543183836154568808729099064963341666308679274166581316826078099130784015590926935246664130621712635095111132380089665736364704789391053709629221350828627045442460271202000022641980676544084506381323801771284386721095487326627051656816217939150185405631129987764127269091423223055999580295052861645960054530967713068252087268719907471628128801115906017615975488010687166282393541089084035004990127383007475483738709164091925666292141270682918647017942001995598786869679098957571474064003877754526234199842481844492805736114667694555268937173086287657932516177806479841795729914897491962195057486984807834864501737946693418756578489228859243335579921975049090237312191008110613337815909146153421983941665133992778632785634885601122559434231621255888309378091788118442636123824765953040093046233453613323028872908663904817654613759565315947265055770028566658288792108913104549737515521142960017562648243743871055762363765781956081863812968139021502331475067684835216487273083213470876949243397121120370182153920789388112452231380022531946842653477912825113393074795435794394546525285968574703088537764157155855741589219711954409641850962341495969160898301980063844981169383976582323018301395960561093806293885451038146066805277273912391997646804332572888292467974170559952892960575746264295393361330257714065687655984070432689922657643561368558456601270165059386381454494227249903329326978850060950970799575506485531610182297249633204882602477072935340481125679038624696877750936128361776631778359440906011432672968361534876389271803984585516887835015076944303713344132871407112896473068463294517251843605314144752428789278408156317723027986869200527747492986793509771932464721211038408255585178128392684624221209326470999376630904468474053087542922411640877944662503856350140750978077523271202330402993039806170513934786248972061569313566101467489957675719056848890771909276461465247884665399187580305284473299350658648623717689746232088823244820187143195271487785154556908895867487011363328145159684663641517936605319412682472474140021220469751410913227414330355136115261903279098150480103109551506317524649736076326544989722447810465866691656900007030961621886263478315874844124347508604113080984463736369419976005151721137180229204281645254940555875235609011520895432351828128419451264880990439999448494779737735346335271553662375124667114829208125399083835879789865923992678827947002381036054097212676481955307113178928186579369064407602142847954219089219618816521534200993875983332787545640172537798683510393939672114313337278499547643432125872109389245228683067286792397923489377496166168854857166798113205605641540820479083389539610848071529420648518614686118258773140711770509061777925099804864356988815912315499990045791646787776300961614534628916264586420397159488543069651400597170110796370915491037802865411980990812523202492722140629859806142779450905240215156146397354460308771269025457314614902104907527314469690500113160267674799515478235821126262243402374516859909423557022881663124575726376654421549747921513458294389442616221361531048935749308309310221425148251775169450018729709123405888731001457266600302473023551151434742170104706728536233484010969912053828735520038669992927070564489523625112673529145504142181724811427995357394475262412487470530511603201445423867475760623563495445518868646074940587422090877005050249256115267322390039068207479575680675116081965578193349990993325697483517302958320703831524320233277085855528377484356417408984480478880655113936882740477663405787672681445388350864490613037688462164361282130357178922597338135666209876439659826640166947882128223529676825229350587079287180065747865616289714804213920520627052566860778705866039890626773526199476206744322441031751995889739385441085633646893394696915579476573221727556314611854372604029295173034655202004117267220532697639465335399078441503970262225227540037497493180446883889300230059340052562810638772351800355338986177904937819854975903121895987915983194220059923088563138926775636292637246334068890558612986219203606359157992855616182174401501901804986191688944217077825663148090625961201182847356552544370642334873953614860882211154563565102078444210191607754213084170129962859622441828661172461052960733572445371499412738575445014579401258560340347874410245438954779388473713340498982220103697285948279550951635029408194555998459905383606053072316847678960638459063416076909305963823013023107402829793136220885374537252304671218422780858030783823302761858799765239732191635010573235159155446078662790262127970391274220067524768984236580323099484909051129486438719320839085202852370835012360363508183646173381039582518344130388566183092055938056772539626038365053312982088832277038083018226841266625012638315885486999281056336252684104286379982790921264455661655389274723764314079632251290482179689480256024571684007508277940275451455222128167428060445630048932179844284015653530636032500927132424436515789548273740229399948496760584205166643547271438375766770892580786222940782417144561823857974733708471962517353605847341037116902659543800146514412169204382584759697838379815699382986299271366702022630324261426995120912357601894998214428678955225614288241185408755391703454893236037551061454986423647722066281081239113522502101668979346949272348505089221857712481206477849061821133958933339802854241195573443653748965100267349659478069697044263398717118574204559161522579927351897913075788877972616294627456977608346234013432804780398609012445404963775002269441512331911858350962608876888625202362551323336192458316762858062805502477152277205416074197891208466526455225967419498828649770331981398657372015283673814333759397470592314212021534528209350909365842860073576440368000539236847573406958464326348114779825528487517477239378495320813423133300308267942306553300322843516630638836354775106211855337309467025942601413886010950304250629801136569544781195588254037282800076279857956491379943845315072083676293239813566400000601970097767734777269520138628858334847843100158336372180982559657313942089203857502440852934293391242852450077207725242596437403473539720606573333555589276547142976179351672718418679241594653330471413870328091135992297240490899326700794039161902427183083489518833843074577222895353969819236267066271044080373097282036059814725578898314412039841003735954757884357769322503359011899309470970874709500777759105914824301139718089330975054142369572776701486529288729844991714737812409126074755447293712805084553771793729391620759145146133583319504446591583221611529325492247350734634012437095748603925122386206854493805819037591662074471174669692329853652095508548982211948944001145447696792255717958414209919786967708334517306410269355428779283998373907681326401733961346988519024755454072097993809525913817169150070341474927356390255385310027826952905081641809555524858032265564487128714237570789734051771273863106599597777348413700076315105331605317780867187930114577164133900199663494542280511543068292907254864318768233811320369646174468925614248747855443039561780747257787989685416257421867936043088603407320814035640573065926549575458294750840081354685373583115944054155724532636026580234093265569620925509853375893034950438231376389467446290655271655232649904459466394507856239958994528081806724363013677559497623598310108815167284263140236596029879194352121445794872143475500209160371939149300465413333346041857615538948803522493861673537698160642015744911906344445583687590520320034404961790759527445568957327655400829772163935887578663929211218032919406280646469822521086819674118925932587862174195944057343361511681586347096447202451417278379089016040708079530693922374857263888748598972514474283490138040588678722007534266107352386138261895401322840106040500938372343911735999912216203799551205674989083879416657976380382426035690819963161647555541454261860503837021234770881397517416380627637850266380074429504623232821031973165097947559140664444209988912125414596641606459469096655517260973319324969210038734936543786547452533194482447116485833948225567441675107596977755715147788547520631838687521031822827055145205984172401288539249653265284546101479459789964603581062653410769587886998503216558248754101908232704656490430804875749752621691087981865147211918439231585305796322470512886350749820672511034526187941538525423090464481135537122875391875216548459540927964374177323885107152830669971166426120519862315349766221864296377153775850849407372212791528120145295864949205633623236105168399374617945526241534884285499446025540111389315940682356225868610809214811694140865694945141668222948772055585767576270308545867746152054152016945687588015826498738007419135705501717999397572000848977246899111367314700161645984842171334782249162274562322531687868515608379849660586888251323892058740522684392192545598806682155155851832894842506217303209374162452036500225584208354814798910054782453937367492450149890844601888151852278400586064345596171695512327073138271103968146504839670023433995203400886525639272607832604036947310119222701089104914713064511608112840005690068865566449006892360041540675208863792704652673854554252546962923917052970753792102322811313203893715029398715676208898762881732207357864451045577254639672188150122717457286755959217823895402324986190778435035912307868160090045284866511022380995784828816639169646883698999430870888590906326753450895814945350975771903394313110458321779055527497428021417928675195546344999915029221261428179825342120971352738354062556562157482893064988106638505408718274732202550985986940244148228959284647411846366811753095699935435147781138081147872903147855165507317720109288688154209946308183728675459990827043529037694492127254046154044426228842280167824163775188120087403669961811905820190736428864560151949785922122856837004410729024639855082515291069916393918048927635508201932266528609619268221337184860480939006474697475570037823822439569748274546110978283821870351002122157057459410581633956458134015563857538444742748882709726192186531371898294776167743970387473718497435977484804838680130866333664134246942481458544888907227427035086126187039204256763163725788370853411380805749625203901702460006712449574173691764694517995457471219017033305952364072548977116814560684827508146803985303807131408665821548177856042947690868946626279936322096369191235171914020681296459172076193872592226351786858087914240565571742997008183670883882515836737517411463939213548631406299722562704559711497273553846620937063645894939532424013914754819161954886052548733639478775815433386426354253323478324523368350085414828674599511261693150362865558137093201403563972270713842944074565919772383339939515301917677276033509710931604901602262450467509716325863814992052194475760275691978050280129488158914798623686786401135420673506073157662419329052330858813896259701665104133925415831083313664243597764513945600373246486976832650557371352076200415092452037171133978383748824049033073448717537054193611428307522512643972023862300675878016568491125294964963365564162098717240830399628526117211785486586077082456633416425407527111269163943003344878215076845285637543563546082861845920867913165031579462469757507962844936788270247332601399533740985992437043140605520015271285594947975282129075162298243467543587139426950573522963106092363608163635635049818289934848425976884816823525083268208221935308827267216893874633708050715341474293260524092043390710461026523427061792590243741121500214864178893476628670062832628947222668895215884803791087583824972240959921863325157667710993222241936742411992728520946376423584940676862372014517904743163424605517529990682374720965366691306637549488986176662590768350608466009414910373313567449054409101285504068950874296956985007139257928903816618318736037022985611620043874358924386807513415952981309711333849014848020017492041871536294362587654113252436174904389856837059767474505183865856226423723480470159809065233854599288973614787118013711721702137722558357671816814815532717216862146537218475170858290021162604334475640562284677417653725895073023443745316438699794467565705350682081251421050259855907060340105537080689366920875180647480519470389371130229361487510905817617777214760103129384709587182274988163947010939213191967029855191900932226489045427551604803116351458888937315526194462242130082440087662573150705420925744508290520075342486618408244232079323256240863243992939469958867579949235415879502053607467700828341397587211625658951498693214968617346652882497616530463874678559932704440373779152382022715651932420646498168356471813759337339850226980604677756921935387477658032112453318720933301394649872225492927287929949152287648015738420284430693971825358735040751928558548475867042256609064928309855693508110606275329166756381754329247973451917017310433827714669614472532734092498639564970777876064625765168593621649997665155134856078356356530814930175437168943700905134694243719301752148429069822421829993307217567722101797031078522617166095555500821380118718867938186455459682422804925211562742782607611747812764500622129177811314400575333957991769976298193599755865130948882081154928672278066850928926302682574551527113298864987897997954217945086867804740864747737377743751422872657574148155740444755392775348171965933154745838322704080054766164758440019468745485365978493696982171002892108198741863097652563633639618577118872956828117347769984930194572428074948591897246165144947133015131115587570423989924753498049501121005964015399123033730101861476163141974394235061998699903736093900913308202721356545555407329739125523236521552819186420458654748074543478816968367089317567833754662217850404251268365139414557938610036666146149133813096847971346810016364333530720589783863093033718138984536008472136711018430266026739310403830701211933264489144390462063377598371821053810738076772204309416836903899593538299482410605597154237554156525949418455744498659710973454312101794983905489439797945344852280822580305031252480330049296185944638313922980340186050678122141378284859467993408775285807276099770408020393621531511705092517247574851436275355573961321224580206973031014604998433640123331842776977394775951552491682329777904469303359874002425803993752708517347630914287912625795071556782720221259996699690088232576784288258736121704986181696428278265178959010411891256030722147696027286479550160222910488895988471562951300914672426074808536861858561878084143980420547471046421208688771233100535405354125596646038555881003971360400871831750702869099527951036974364618676921329392820129431681731371636304316220938944471688270242241783900033042840275163330062522319715475083608793979877253484519352240734707181169745072127201611462217570410977443517754156337451052100120100145478269174742122334269447673685821750060946623851164195046523918109245444275272171160562157980660757876917772789002924606677460155810915883610987440165311527753579328754746132989463557680135000777952988235656851872132383810685136922511640265838574085657927629903652294239036280384915875505728562757057376421534303976305599282514480173534412238025959186218734100334948433883416685092959291591623578666729889833512253203491824757650535867523690197402069956024258703952258551479913791613418589365749531555861678679832412291709734721917505954784046694270638922512472492383648959355165368595434628234533335017241001689809727412641552222125841854815153161636671961406284184935510610029137122786884422042981360467995999606638917005924025087096937454515877551600271844383873809763556943978982453340383960294970482930952444959783100428719705337242645485128703876782536922665975537730084282052047725987041326908893124100198071159001086953058003785103111126797460178529282897648135659746243518321477821267941212116292208135679178961256288987213776384911807638911473518389176441038718617472454856403866469661176348623721911178446510318493621846587709661984381581051552548147279467272096616312394938756474221745434384787270771229839595875691172077885548978538879577549953916438942060693963113270458246105047530875896356832409577554381038847484050348052281060857718881289810586620325984606294554179914841414110385492700272290226831048339113539920800988106369667428686140851094964729965596578460634623793344613502696604351779294586964675703474267583698078288850127194740727491321386545135150376652519678778437855553438474685832155884950879419292861035270683042264763290269233537735598474830163628780340671989392561003197001993035154763029281026807939841550211656482207731190704394019462286824279519921795882777824155613729260369092434439049592828159108111820634342893493042758448377537363965024201551655103199799583898010726955854795151239613172369427230882379216345658043108264309412545615336229842253649187157735574921338735470410212754181424222283641421949764837922704918166208925343756983865699294668080000262095019698759534144434127200257546371086724584534430030217480469219662216309370080708405911657482234727096858560036812325851255373286994346832334441599500791113539408351679531532931364220907117745552344742628226161746109753745122512743818496347622455105851299587280303170602763128977709265529265562717957339379019093232788225430602143359135427058351276706148325570273317217276336303936389210468512561939093258818579025297483627347734740281907763943681959537143758969005741381691271759541610010955933893524784849843269387531400345613001372127010156074157000965656822698619768016802133843705693958177154250913568019826616808070891872968813383769346310323070374910015609309654162279903525565613883190832638295501328647468812359477482992681144094531908072537704541970073808755882885389253439330448027098330332436384937687443713606556639516769837532056454379217920949779056374908857098088091838916295356862266946374654349502285732183132431660766680363942566654117708437005649350525068989171995594226584094614351178671560500724034971263449146287099151934237818691198414852672578223987433649710261256339579069674719565188208894854076323954580808667636918917130226205160139134607161969054815727765800147360232590652053783783713858177440612323216498384542144918975632685189243278305381039146209911378993763395313580524825710431210370750097478937847162943857293689852260866349862808295405266762912302045059570899684580284043591751967195294377282306544498741153425776299494145704923354278030772516683145794664873271107750238417965537087488405725364701280845298861898180966831680098260249396444065150677774725321220000845255095566969026966590956474270287019488157939740157127688951605626273384984517436240889308500920924946617355380208123930324735005463340100138648678417152203486924041423229548306539849626260443428809696355971253239839183274944808925566644039353146606466970015693307591232985534054125394550099040176746616552880717179614159128241574761750323043494029949321919430137005575058529980942193358234502342808581211446820720891628102786717167829355477550967479666992508804574648749800078501232252763172576455592258371157886630966936856717046407807035949764691232505888099815148811592232978284429103183849655699131797644627102009447195499624884184818991934151393578621138571936389759968205823773571792397076115318681528516432175887881218987952069572539263012402635024667735172645206364156977622933250870079383166465605083724118807709402196759672218458348280410774692308225571388629105889185235659777043329964461285740641329384545777662237364788701343261514527771951795089603221188927156111834662250812155978034300354184291829602651718747419656217342398748499494786947948239422387598333807817145406400892400970570892138742268383419575792635659030793742825575264882244977394371816041537236083126294434378364359973175155267958080464507371190838058263407217752453225297862407629966099194438006890802838956904546175483375032807211103839833836334918090005795551453479460088021185818483019103557071246833608366209681869501910132106873348218467775175867287776782126402412501319666037744851722137267008150471046182690044978863494896201209640227989156896543847269391654071434067747014605030466507683587158820910487071045044259706511459432849752112196127702775652663037913417291685422639509975363584367938935395970305228862764224175392309609335125155477525119614262607871114683629911406928551927252888277010176485542250073128903410452728839841354328466936437975196917640820219292502430125517461859046755997295591952939304610541848966396516259850139793536269860511592836982828279444771491702728579640014790689062907937843045733115016651026119590244132259279069059808350493311579781644376282793046657867024934940940158867966550414968849204872635676681011002978153580446844545672911308788211307313103648205670829041577595155922030578770373189367376523549076041350023843356493077960704325088460486936582247680462942718539824656224072173636851499079730090557821169131526933251371311485796693340244975390659940302309638099158495209530395508842465784803846701726931258833999403454574780616737977533145892848249320459965727783962930737906378486967321372769648548826663964375718634799818928683962601649385806519057637913023243625313163026833536601439060948077556898767477597823400278261383263466128842665990942073356271242018319722930981304908760726048735134645746076961154084155043573385696350375950988379255804244146576609262242821832834754297816434965299442520803216884036290999992734849122922531814308536120945949123183404528055591404922905022924561506630768203591138004945051978921386010143358121745769249686888636498353940972221270805742186701302502881556734264404525251732724367975476451190199091238954447403170124631272828068927628314872616329808364114779114789670589062705668379896851738745307899763146405472839366414048853441913561839058389095801496174041556470987476485985250853542339763613751678831067087850878031164766495094832442182566438506312627279443388608493835522471870969549177757247922342271876350284532773199007370854932688650601226260133875340582317544184581038860104941207223262349040437072517456711545374883458758643607676536701965495771846181044099523406236817778841849712629555067319291422627857220801259804635894396103503569116712581342999339158699046752299326597134996056183399920167306562604297156744614516456268085751555210952204429698722998959913170371996658941413503766262862085567554916788891565455060781893802817414319212704547707334596848254079518731824252685116789760081852487467484564931230028813646627037601685373036958754466993772501946982854451111167355310472968254651244799185581195612292972904556757647811709997940252767476923748639315174357737311686960554464425818824850440426203418043391216938373996519525830668098168843594955716070804650825412463350370390676664920157211542211210737885163883053490309020101808898559076100525823161355706651060534791627168508390710242755469930761233108533393493239671357715607718483833771104116063555364456482254335408258380945033710457578838218551118320326684787462440313943473738998669026046224987025010235606219420411559076159725011014174043245006816700419736438655464043937306880032242340552497694920868982038087325977177403892431622174633042175788609247565633070147949278981997094333579224992589656863726759535770646418583141294424728155678416589580985935199533812132765702543554969921751484364320863428942304607597007271020143512939396715369622624118848092013555783765565940089293857109253082279892138811967666720410309691259307231371936550489612824269398987872919995379645864320396542532540085763653661828014626082938980571612586722886354315963066171907297916391680433393081510555279998765048963970755408132439651335800216069504139391815227289561926078710946994956331581059249668513045056574514784903872564400458470211029896099145227773938330572865897315558270409760660296303429585044653662677683580213614156176301010422979289850419699604360251249638145146082738607610451318316689939588898122950372668571498007999492823096871700756084801851366907084382092343381182759693653035001818657132949559953604708372419906406957540663103753987632095570283390723741225032159384871003831288353596098742952350064323541531100493908103391851720279931130995357063127200085775271759497417982438414333648231122711126463967993444127977378059566741008612371422087565564799796057743655502878333032061030592838510629104902754929751302172102448439796703146869416218113190122122709825026092586104238870403948960294970445952573670432938123557990080725887703999630288901731487848198967378516588304701951583684903122843127827811063902988887514521939671273434268826340544324579484008759325759358698827742815374945055428839793529535229064204258973883198600609699499589686496200394801037193718695925126381496232079443164104649752842490778934459483961736541060058200832536818860110911422053290796334638197372860280948172237633739725185492533246424024725214805985773701611750849816769597587817572077915405049951417577717036865392531341942724423671166300780968932269070670219456416189725879347693678898430858808286455924896713128483695272965477217988461743043442452455364117867429117101705245806467964331271769713725136263830487907760901664541267902869318391130024770455932223791291466843565074761700924937501134522024677609532272176910258223405949988655082955876065635027151165592959106101621798192687704150787207078099741547614291009686258062189609764723029557892638749217970461502199703106772592666991114422102569608279625798092934865333410268508086316382725244743674253958778774532385351928744209012785780725937197750938439180905691596898149489091174456875809195256033128979652134534640075282826487711990419434706950451064366750913181907107735775186943502056343534395666616099277747303392239862347586930408503215261835232176846798031754673937618323564807264397026011354449716399127210972113454938010986919183367277731783673783746899770371156333509690995767109457900996334394873972475409308280473800542650094374055714581103438140976806842114266349071757174936385142649044751145678721365637232175746853555614447521701282936482181577866657759930926990924303604822881439445098484486073474678588758480995673764726125877386725117279476047457650118039212987686068271467887667338178245714105172079452777567554970510319390603636872150795517752845515403835727425021966455560761100432017703442205581425132775058325232342014053946532992644169124589673717561694838272183703886973073728837045555540069218660947873605527191742864478302318855281838155647717579613349048601356409805271686924635745050829857442397610159249015832349157869645322320658291969029651230671642840965588046145356216430584157858444695672628288590094856806086609950421211515063819345254079579417683757096077531442971008273562459634736091840197575366450684693328040206371566263572338342988943126364248322267187642460276406325755744637271502420105042732210503541599062642130275546867445076150723262746681472801479960132467144849397494008500859141147926502348594552380593655235610533449470705270412169891000737657540764171470729373182160757777311901653477039107252597901287250213210139695983014941787561824550161987052952021815206614957703274455502534988157611822315724648120106615733596880543778719316336922322885241047532284650616532476392957910143305222174372197247582662254911201137743907925532060983618379076588294464914819996652391883945540464580130472851667199421487955426780712377424140203571184861368107718529642152209564387843094659162329660342746677657236592036199303429292865276009124241510286269599442515288514469710261895221410144658118123877196107620537225651833434692780693326556960016041579173470468371622422892064660836551470054000692854608490936709970157189688276999458357506493897563899792736884270119480423807845834364380768233991753914313589474434102743155599735463755512133330576246273770754989865066221867210495957119899291872248377841431708984727472811641492449368698791907628553078748094951807239531241908139340107591956418663441466506131006995121498763391557562112060491309131133093024199436686234042589345088007498941909783213858151687971447348560021657734059758196726438693237283445263695850074565686279722172038058024786334359188687668133151061007256137731758862702177080306124070650850392684940682600702225165572764562751655165611758418963713716495205327609564407698589959811356045052194686480196993131918705865501615451303786592637600959848837379855240050833688079221746749824091555396938903775299289387323520810766183074427032710891037648515337052173731033686885324193818863921020184591069525006670243244536025846833294778413263266305221771826061496688478434119100039235989601566285372313286488929484008146820841215307264856655450915430523804379794119907768576382802185472636963206674420398228941435278524669970546540402194284842919538347561072922418825823658209865273974210770760596904535109524725216272738506898447081167960780514081279858481541405621219134808545317692781746614927488298983989039281791284008030765474602604299294840026523061836241169151613924965257794424057519248823758794476071585003405399510020414019772102956855786703111630128448355589061033832324062565328363348192550016653606747650920383560497529852992434985053920247460361800218430413119745142943463238341808444340647344654601428665203104471009613467873238969126662994654670688280117226858996538164036693236582428524510193389519141539028385876961269467393147780802462454051113556082716294179942028677945163954371832230362626514624713834510624907233118102606880858063637224742886934349000728520804169470100006978713048758067945443181064455089174776010633153813133993100267630742924153424074987339213711086600278487701106385576723660938678517229159955614656766974070934809138762599575402079073878242111599621897148412381581570589437637347227662380514993362717550161451352272747915762634790748283699184886363850905367161466791458117304106880345821219438207630363617691204364758656005059723379587433536689682400481658401359495494709226454957968066489311928365713519436453330265355259607044195217628163973212347788909709471530954987903696058104991542507759848111026535129588859487486364682822416100772495605737749688483233236942946011517758260752577064893610830202485679755068390101594757896292763265820208675786091226750869491488394385458251417418635539117493694423426588425766654974259749155021437722017247503517696364650803555558709924047575209694951695780332213180944067600439022893915060661798502445439899742349260798697933323959797818163049378003390299064492286495944461322622623670873238137032544001380938927817800782918947990029046580621638360348197807832054140558166716764418337934951136423991339523754543043363251495938416801975561092648102007563588808050156801604085733614291072815568008218753261526994537975385349608363997015845956478331972221925385612964258753449731654328538606866174102333020917307272189619407254167329150988709134602921900251722650491802124834113462644002529531436017980565693202207032449275082187101529997486159898621413342350950069137191276508583436788442511002110757712887663168842848507363187549345347142140043120118085942886674885749671704234055254276155469058578468419518362814453521546564519088152110116588779552570767501352089192271286640137668930632700901385048798792138779235040766970357659159113013233024696934467796104684361900565355272843030338221368986427796241403728574936522377005527942611818872248388103760942220294883796645173985037575322846613020975178255564381146645531508749100972616290801369204176598349564278833572564058303865431083140722691643878569795838628063192718860318680312887476199707691858612944878374087086299820491121180454439052891381082425854541378416500657063595896756279467597372835858240693823530968508509776483991107696855263670020582949066777895435304274771595135407079257721139813094697785646614540690260651144760173852959565512299220944574584530963423744224120054049132230968179038982473216274259264308242102939413309313996688735769502101964509831856144160109731063292535406198724837090454387861331940760834172050033297543454548207480264522284177266437296545186657410177217310033413375132502712138220301188230375572968445065232100540922268484030558367338154111366331259929564652484027401557690260088541626820587607210839440131750115971661042816217108883974730164876675461488320481851660342849291466793882013159457455904078872267902031590684320683795655843050653270913485749897942108138963446035575356516924700868791351887895098746112914863669711697368167771733254679224444180462386744133255046550525190646099510071715101407597715047942897325070540637658292436948511806341520508649343903189529000404025598684071261530910417567670461377837041840646617421257508976571684022931533568389981345548771720491122481626479473983161552303092333756303095377136867133165704455745996581919733725279144600389504620901892309751089625115289069613651880348227749394076721782113622897316398572950232620651600724761771562198931544153280021851089056996873301303070241686062557750399810626767904264388205713044054084870893465028152271776236988036445262935429675904695734992471169484721955563288517974639329893703503523517888774733631799572056715737544373354753634486351655206023435809438656605187087275860942809532512514472065189617332957013665616863973250110067903887911326168035814135575765246610184974606661790058713737420832439056328534144080077000762135285020691825649110207407187341849630804059163874030376810413926386792876229734671662956516455328819055576515976162012973028192400441258505132412846621535231320976706580638574363046188798687281286277671755197134927126352248767373442269132691652385126378258287501766183911013743085669697895258973545853946455581643952030964704622220353840299962652769925527080028591614578656699967979676670184430656550571110829209638085622565295039799346675387337082693545621418248851879224623774012162219505713877434076136465795113669877768765651326710472313766110645621562997096322420949454801893961332467379648852843799845083638461663742642658351112698293823724976670304504315803095131190509902902583078137426301093708041151355016521506140259798299611241832486719795836784347985096767094370690083749486203605878118666450584275014968785657299865623912446506822254365408065465506889253453459756589910306655172141015514431932441423220686492103368333156502124311568739749712961341781230858222053045126637086446612384005235337383430397761582785568938622138250370301144491107294585497154301204737869325656247125812718014620744314850243921382137970194762285932078569288830547567827392581413365981534188529616220290942389579588537140746903022701779416870736103373493886419746544482242718695513428491979163344054734097514324654296508831749132110226467871458482194010713869331792651926805971609226838680404829610269234903512070797437820447384227019325469495096072282058978133040904044833145653290597645623895338994991821296111038742667989945220588818363224996847803825810780417183052964447673489863380935268293054414880683930484335463907322586612512794815065709298676116634478736801036126806662775440167218091531021912920438886180905635470716330778119399986979171518440343551985651177870815112066915068698840576888331432309104853097126821946657651910909399820721065545824701157473288241908016257795573290822939840400499275401547998173207510390131616609703594407416897521095702844962338985357184900669527776411111113573919920811694374616730679793503153033357498252208576707849718424205797091456285032838674991805684338198433840879255664599197386223689438979451496225771651152986585144533390914739576293650372375324301249998296073287894182850742950994069807228877284100900378598195698979289088164177202508441055816190597394322433353434222665580742234287667796440789519680258074201440139012266558587326760175014420595583188032426161556467575377600016039417119680156818687564109094741099328746246039002203412202223890516549407582537605158242536396640779578120633260128587567377558183974986315184796532676582544826436862190435940541138188376518696764949134174150855958627442522208265955382651606149219489916500136773641616102284425485528783048621503146747089241541666237498130706968095402073503218287192340116204272334716283765899136068543604234414339045717083179781407501164541278285917892907766447028978364269742479306477338247266102053629956591418822414106458145217027091462570221003745626229686624226612974045667693769690939273246395795318744948022772173882142701007418544668489445805790633532402177847471052001187621933633746574293362449961014223780750632574390392871973540175400500968541099296797757351098310542558154219173622626563248608287377002302619814702605207587054815544227846154301986002110140774604588285090855778928321106843037810160619811390446820964035924550775921021540074432811412312369336799301838694359753292259809555646329197865667586773220664059511182797172893335818399424080609659269308849434784953509882244971981912632963295232022309571691113535916140955199585098625952804354600032912297771844147153816760568269735715374055415330747824173032930443650567749568597265898236516000924105177679625290333491165280321442772290022084980106793916412557342909918459728485729858628792295612149033803753066125654906568951269190360024577338250525300446722188758267834425196713654849726598212343268640986261891641636382151779110833497729151298944132967686112485095850466444843602463090138337226382807490231851234895673134513641654753357603732565492761709042288760342186123388047450701107495763163327697793481676807870830432238288256506297059054107051189638572410362066941266020261249118298938774642767447759720266256533753671531385887923457429309646442492624011055017281319293006546996698841676271303099210716273121712558964886093114962225533420727177704549360501654345887029487193383687874277991822768596180480486336371566373889893888700785072093957089798967929168656686289282299920510634201349843182564661722937249012146291834806727688564276429347049745008394954633345101634879229774139225358532883974249115139354623072968529531980782426190034146244571042706969584472443911613057108924611452166819722739227081388089446416739827028964343041251575734497920718792880325851893265718533324372414737107030608707566131526774342846785933933268698322054702627476255452066183147058632031565923972382552283207812040737054785666854703644308767507302275134671852061135680807348876746651031653472248492629592413743963250396963843880550561725407416469035990981291180742694767646319239763056438212934714273126413732643848995685853755956199690738565645293643207728378315500875399481469354590353418442251948229359318857377425916996804801491029744912242651644584539637145487457903243454734044550580353250144380862851288822262474439825071643364244418208443621057520840618007711677843371405274101625383694403558997139541909729960407712067505559115062302709432527115474208679981228956512924763528004219502525962341228687901797719765983325829257774436478774369677834215486141916123182618931905258440759651574124001819920806548406623979409534617497906779563458010974279640295007618486652100108681972264323320780179984713174124577017043690392301182682331421103010512450938213492679159551165280163587613678124217836646752507880593617842500750616246622147117251151410922381447459838299012559119644535787866915273968626776114087078014315941689076422632224092460004714310472031672863061483925241093102395901745305908459462358359594493378680874266297144545076354508465764071714159124841268934914275140361608426727737621221925915546282284504162878157437024953833547822773438043603427063613291850011082408193218421731464073902872660385491839660530978238860104584853695803353071646234565704363761553256591434064072182845000256346828102948947359797366363856519100677261098531026811059287377804991447469444002400265117993459995815248672798072596594980647618575124817951527939073933237614701560355077105474843464470971114853160722239941279934679970168556508694885196095097805093521743545284179495303822789310255907737240365369904754107476116263957525846021940893543151452775012110915830885113752735849154266438332892915730472676206880517163641175792839223054987025907905815293832698183047929987638853496866487367525531176479214679333195092820116518516809162235614533072449893963590371953003475281905494639776351489832719688745462694038379300214612043815357510733615650510903515357292189531348635997712321999340492797119867773474128836740077719143240891218443527838873937834604494148310137075688668217530047623465765069416159120450281767121932455377718684437580331217102648916782424044203442742218430274867268063561784157728224645920262256598932136325294496909543790890407834355503498882817402545679798704660209852477502474300067777939887721231875560252509944349077156371023586897220251245202371972187546303762628887644285219893785006965693004187075431844583346938902550295308354557990366171895158577333309640141510469296883594612795221354469501593767771000917220639812858772515875459735050368900620807594004018932349652837777484866104000004431065624624562336807295522889846454690518062070737068282252798929878173428666132703741519232468993901620592054001627850339180830075201435088818330776890149711781711277229299188848297010354325613836360196867988849524672099274760371230832801306325009869365820887115267316937989494126365408417999126657397485315371785229795041480475379669216920949991863479089964621735201385798622551862669525114847845966362406933684254870306909106496910568295012230387773266431956014438437924400862695264570183585867072744421496344750979834307907491298684742358509142031557076286995589781718489476891039457365768627196033116013934431408716044363988788792010514041169060163341748319644877888473071481196948944251553969840715495213738027580251542108928933512919970216990384140718338915996639054001072651938606698587538417367123041260108554499679970120968883211254652373627388890799653679813048538215546852249241180396432240202916824704260804422518209072487757351029200511205047465648152118179175118918214689767579898549840579098647069241966823320503183669594316847074617970595594118428899789788647144714463028331616564227328830664439277329587060406014854599748714059860037107389076332007745988828903173353420917183744705733736823905288611957771943673709362825722023427313155297007827442344555607916226782768260643624555313215359695468746511173725478370480197309165901746400482466992016104500532964590108243003154784461447460177330998636824401028906542333012149044232726175499892998517702994857760793853092069726233247890096643882106572844693823429014244204656248642345039705913418658947198186036872080327728904079982746772233899607488032151529152065032040970062073720750575716281162352006256690371155401657256223663433159107333732000136669265476596645060224890387914962340530345489955201277605776849129593207372983912570607823042632018946960312280834098428362483290715668896142916530983328774208341255310574335875523711314125522232822877694866650714975281508412290505971625545463991500069153008906505700447172266232323160146448029578259161916175787559578240028680337132822344220089654448231652384408057797806229915116852420276106510357868069269406889812571244315109162886043318918864068426447386336508865670975146329428988260470882734778275817311481521882925977001738440896177776935338654083080570811941711789254786501467348663828370884387285145155284200477165537234701396407450753826233873676076081965899951246136602817445784445217662186945564582810033336183772960287026462691101066420729845707956760376783531407982438257954273956648837930292325771104783357345724001187652109073626160264276034389038175956732638978067779051626561362820717804016074013912658484768090641963129643993362329673669540799424601542545441933957913646396519397711271463582844136324854114271537138635771577334265876531133757229392979584888076904083243606304762387288517431024011626058679943082423778197117734016451886682117007992128216371913951379726776976958864484105819504355362356422938908701979357326311323389407943333318264716854248625260113782647481719072974784356007803269013005780497299292086962683899536459507688113799073473805454434830472774130099259996350370482368995151610397092013217388663102516859596853382989881977092127666127932947811286408350799519034113524471190852194081609940776241338048303701391789496287367115408001928953638361104776776209167501240322832485589579369240133570202045943670013342157901845430633174526392713154606013019146130461776385360645527765044395454292386702364254249320001259781130687949142186821556474241634003913721796574887834105579966317233842275994568377418033369631570040585305610750713781335249307026938289187204328479838186619010613114710432211271306372316229743019899140545845293333109514065807831924491327754792629074577256963194685549778485038833529054415100424993788483240745027829935220257839070636840629604064832426556944244923763492520575721919360490007588241334126263802693759892131415573332632448050565927115588912008380210768882460107888638181415433165465188357604138101544173546202919164063042803580645346738656575502614275268151596898077327240713670527739696958076623513735815554575990389851523794023014421573574924257946356034998580932450916790263390733568415911729228083674948827466909590113803126863971549230183427111066055505065908513031052015509856944716090341552892328792637126557485443417583830506996188835096768783391683230882670124572833811758321145071608334885995723389047051775955387723870808326284156032442375107428460350570388676384834982324192929305297015522208446218416819404761990816586365775777437432486875221693604280789555801807189655107188231378365226776395956778557781302687347607982828609183686761341820342920443369883476018046935542883796661130177351369773376755231888809546378370028020426068956343359402027435487146605075999277804720440381364952987606736388885080300701138025747408086546290970127896737691131959975475574444676123826554063806772480297243196226362961831182514300808652704587153966165045188362612658818843261322629960278425794656742748919151509224664179632924247061736937347967981401390539904387241079290524921108788532145759384545319227632574126662319694191476227964879141615875623228492387949685889513212131486643277670087824118876342555183679738449864237602926509246966477773727652196799991784938021389740555100236440980847156255480977677875025723611334989665870434390538345128979943425554524888001909759200618632795039968146394751201619678053099228050626855067833410437294205676912739702278709143649299988694954264347276162510072105583314446450537753522995404446461205823352807269650895138533823500197855439782492508357396432730171605547737541317961015558857129222525213536425410399920792712909676880303810836809949661401897447375951013035320376725708109552394441104263433892113655502099003220473897606705144254800513308718328466717547842003311420659822250097404591369239960783789013949736154880045552561949064580479875725133293176946775372391623498952051927475478136750118306883230064492768171174537528671462717110996940919653495975212097756684864869169852289710860775117513311532920776262160001370683008449854900837572781909200823458395829763432513045515072308186906756137714532042760953734620227946658555155423800923335025791546336526399481992005637129585844733001909459091991104214024561188533076067957072328126567823861494103032933413896880522784786408121510606462459195897301958634680946647853663332155264400163573326679601350004988851743627330795458684061276156488548356975128234392066045484087407968107893580399067792839346717333471018374351813857961950447170308560767556227379067608353953256132427192306968099630484959460125793166727031366376362398223844797259433705370858475748736918170586308097587060826789017922471397089341950491915328208831190748277474788845224497089886048665305879769632070091361775922504793641364719684121192258698297207257701008002718581527258861902709414860763336283528627662291334042001353023491076215371172905165328342483448735193160036882539070595234386312148692911647543682092703135334610093243381107738287245802415668106356873702232370972072336570873901543138283160386759940419582951697490654599361606326626316684742439584221317912717966409341963490256482323354749304521545082423286181479905938421409394110828864597260537525317354037602536537795697248655640714223359949252642148486951361513232062098312955529980650129013384399309927284169506187993096726352230508933841451504502282227177490292373350142110313899713383731989076120984618484728130479346159760242711420542357435011654544507749422598280569073512477192378915859253495032907200461877192266575149851401161652652908506281692641589636378810096149380508778914411859005149633323431904208576905927203112295240229867129155399520328650632215004333093924977019206447378241814277449166276600451161367246924124732373215088028571720542817559974270702649590250832387685362920943028952693075231303913904214783198059654656921270233454525790206123883926726486374973945566618507218706515075322177104956475281372922413999015777645751621158299277143016986780396701421012394307323037758735411778922726503624344916865572573636793283479301439003421950990745336711895831017389482615741524411983653854763743898211848778780803201771051758077050103783402689399527348862241747823740503417312328621998341079500643887719376475439225973396139043802993895642031948960802248198976495590654064851767685469014135689135713986006894249784351594028958314253794823911223113075808381402221895400251005126238258655576384551438196283385702508120353615924968294358464376693526144086904929700094890233911386852870887850137003758081477086121761180408663282806473324635859966763222217190665821162418883510599526708526438266658043793336549471345584566891130745555578546163788638577794461978243092007128494481887907258634699033744310169323938756946321712621053438790161240292545236633087107716963681464299460629728160818980017528690080764516842173918341857476394947554675694039538956138902832148303609146933702475959599457114549014240238722926986666531033227092763033775636897124692744841834099653370100683919419579556455214288802390510740790645762754924367482896071346012044377649720142224312408134875398622639959069227319971775150737288226499893061325776679616177566231327614322220466440710250397167070858313422328509577017460639418991355985165408183011321048585140396781934513486144377120781192289173993511057744822150055835597027280446114190921348242139649681775361746734271130318190811734220177202402725690202522696360735066042904536984367997873663053331142768973932827892515457504283050629913842794552768017911018103384461156675737385074096890595276328661128257739268715740956958348682330812732648083160135692612198836718812476082405554280569622325043492298680897472601715496858730337059761982035519488180906112202377871159769946020743828469208321422277808012338085644248835834699880923371175547335659392400637696419985296733164782258359717039346412488435194312877311140445111977530447258911500978867479247668336804959289351962751215585453315875813091125073906206607067106997835009641182352807470528394483082852388706260705605109812132658716610081816501915396321791580990246361788924331517445157621846408025601689727660158171340955442364084923435792820982478042245456172535070904234670809118172752638688966328459428599538720222106903493034907269345616922507952457665471273316372816729736149683058671107458428591273627320436363997578225393290094252585366918762448111530862514264661009805477189279921002893407761197350989271185709197519666945221744668158958538900847641869128032907190079977851482872380490878130110810858539566087379976454198248355298157492206309232440736390681965031219292719987282596080290354627554596519349587858985110847775851685317009921583579743382293465402553111173357113716778131259387933695871334614597952215455197028813626998635894462122550430743697626413723251118397236207194838336765369240637107158624751368623263753617217276530234029231521227836954563054104332325020120609300169629939211970420215041479431111764219674743952966109123808006914743862412530091021689561637027255840446766383635929133057320788248417199571123436760549810498572838469610809731533344143294124591430528140993318606070813483516350032175190931850043723024688066128644455590486987062399999640231548207309836351025547637302762971806784266428113574762956236567361086666929235643373019302033682088916690611346580786724493289100061971420379578890575826935326756992060751899904939885661431925367679871918841932662442116458188070274063497723819222097946776971870593453437945591732763984775978130887955471092121930218755727860987404534224583036426844680971023042374868003768627130796846803107499025474532797280768092370137771150679958452633712015171824311476176693825031416803694486777292290189728476912714033181062552077333965925142064170659818210445440296125930397216508899378936542244003989411902242436772293573754668673589112816360318388771039139271082972686452247522726726221411087905755566421307445652414742827022860028444488699025531949601822751371895120758695286241048529944843238284498571282315299088757486157183830756676877093908131965344656498991830191896949825759784743271782823541659344939263902217274075526458412407889086533213246708115782624036008611774277617124042904009208221221600571773103076658175170393499082420653987228504260326175191230543898574323887179519958639684774097907273892724880565882214755559943970736488493598225945096252635194646436673577786808716255115398773618573213944905730782417472435312965659746657300998390375920352853535674952562407761360924156923850558049081870038149245774884024073679042823957734240454361853762559914852023018495842684527749016268585946734059715840575789798770274127106151998435233174223073494174936051912065099504622378263228236616211303219646224463563992145147508770797039165025621233744037472110949481574286110724709325671196880326875442200779346675718951479563880865496375164638090663777402256308105876711171153217399361695904214577843103478497309557591314471674563289059031825347055487945791263425903384962765806393416886565656178501866982185354579280162685796454636542521681985002220685954613469974582429225164257505415736707003446731193901086203927081795042294205898221242293658097833790274667861290449376194611783466593739528280630094597852569192888241161118380891901411407530631262045226872218664741685480646985363502394823096811736401682625187528187119786597261608935325216662457237814660334327103245778792038311974075252310870636735949022421871513893817049875813098963369687019829306890816787983057635596422842702803579203820014736598038019001516881794238770304799818113806273990802807012781307804221756395840712133538200899797171252911075964548571295159571625242547390981163715044293529608350769007298088504672429913434369238045105680306693022719669551113149284448856578224034292373015375609476376905366126806895065065410683723408113052155136626023181428858957971795787271312131825785843791001349288538543714180649497508913502910621936689574855305254686775911451263270401413871710012265146246029285497381821248759898254992861224042990162790132511881910469048835599006361609507755586457161703242964738246976526751456283866500578302053094533640426857320457395078567618508867820808807463578886616191296347138577272767682784066140728304220099681001603994308058713972401110913274003430485006690009128520058613387885565681441318789750670522912239101427808047888092706317424263859422248927875571570504530774764919011304073629974870701693890950836216710480847731776248363851445710469106539604780059220535012758861451815665332310353444511967530678512299514822050565618591431718646153971966101478277902575945833301067461118789954795929107355487141270634941586048925506913101680260338940671390733738174670893499728521397720638324057624239471700430142501342212746073889615418872274857847587812003163200782923693684283895546230280050094972946877268155481111018081384865251771460165988164827480141998716539902665602345337060474894749803312556900722388017989834137695288568205970096005812776546360761324545403871282353977855221743986813147888673298324228815723872591889939276236726754915282494840394407130175984555853132013822941953124170673889566365453530163850283797884005247962155870314183532995284397430517936840337495765579535894845189632035678009922684136945767198132936026450607971805922830133649537860340808777098616554375478846541387073230200112117906005954606831166206674988051184457008727485892900960123741207486806101571572462622511646647913913829364668047591789891185299443048510316174519770693653171703480460623884880625234265243680345953126194639282643920740927686343803018656615696116765214446544045122008627712704376917271068602840202756899371524894467743186727574604046672926301484364287985999676781222586161278436003655973452751582973871467662756312709468519348145044832905469670227049527311279098231213813014682179955635684244764404741685735614776784574336005344600015666253842851479111722574595719547270254059876887075834862342324804803367161155504905389163241261650074415318298382319219513175511373615728583546853084981380320138469011049653259856099771060149572515152419575568114480176480808261317346737838133192983028778356666901582505337975129069052327796250074360257825070043739647761031789027341247951291934928385683615750032743794049985611252805489291128259931224607718381526185105701375938249578144331476132983362639438775334935518167053737419937668114265929967411673343815493056114162117285838130670094423280490318227426650719498162404505108722236386019731836777727304453442294313362526787367385901818936774202155084754458351200901063127628376152066363858038372350653380985229023692736767385357320013343098089441926777474533315997364223747150274667785353308280705695008225746954216609747309072857016362591816955342945396038443096875097491741977149010938558526795218604520750247712546112160863858522858665118470309039492956810038107789747058026948421735251689884163525399083316827377416962164293515854783676295850752280784211731172126069954973370411214024821580557028722814416010638275757402069759932958081184581002890510473556527081384944041244387213812551494734848141897067905549462906408531824634676766979446569394781071537329881461669595228985629338351002902706108509717521368868930463427723072364470486193817337687851015976061745990434599957561852956119314936401012280620778064628817261142025582395188940488586688461284592670445338721958847681753165321145479230849867042958741348226959855536851912810273797544921541291112819679696437395651043736624536165188417963303036909274265603314515657473848321701538550405991268810180608652444654157099993166638641689542461900287248191063987039541511735367191375373289694020055263260534392240417890051115441312447946959279782890128842002909031554458588028656829983263287697460213626138604652230317753402807498020850361500889799788216461998394646535743964427797670043516031733201490359765186155857773954027219966660788801701973136040024593730077365724269008928453943431132407587985783693062593907886083228197368769732106717696436624137280779886755032783830217399074134278907889628176657551840126165523025782069898430401019091843842067516689317011349255955621578893484321218208382236217564776528195962736422481014742863587507399731991360280785492637014569180751997182880374582334225327948774174287464163619912437907769580449539843283105039955404921849445511801067966865697540240266989578990321491799672637264207280972703338302803919233401676800680090661544988428343141950280747419017906021634679638897170229178249522752727030383712156790772997887327455710909540809200932096116812608793005067545669316157331821748290062731170547432142182531067923405248327596179066567073562818299884711342238114558593803690326117848060853914879662045313414240077861498423242586423991954195898623332625443941984024837606544448669756027630388423632285127261345223950090226978994513069404454300310367504587209324835960006554075567618329858288948870549292304115115419614796177596512351477020320508043709429417555942927263357655987335161056186341102951725696857623825685064900249913847395440226731928634820060313002849242806885495172480433520629413995349635523032553352158444220727822251281257114940919560371089283999517703620877728050194525669970487488511512670072888110278525831670158927668485383730909732685742114059491529168356550539762256686798895589568444520608303541219940110801154576091079224090218173993372200104263615544609998216997912299041049943849702890352549114217864348788612135035538082339611056945209217551380139881673221622920417020980603257748893003488920458986866190643526909047583075818879295597246775415995755418717856536122876844072375843370256972679862286957901363585130040993361352424459601817728604676045321022516638867542739920643170461828243512172916464404684868813677134763760781692327610875554482451664408873869715419728182171874612000252535500289522566256722753873663629792765750834500954645847243022770299815543479788080843889262647216170392981075560626524250748034494589110005164384912738445607019897551959763870989432835570145648074293955926953271436881333226562997581098004137441533888578306697780383980859960349926117730038030736536325242647275485837098311655144522248469945411278095975688218193664745782929648900917058561836763453936075643855220663834281410369348264012958175852601109158638783547147064214398290998295415975054226117600890012306500754073842980267145454063006486657798066554430158092015618991412864458189134431770047573750866837375116523694920151359924535643759840326790926865731096967685743643073944805848827514865557323740555991037458865947068645449930254939571694303874844791139704469348842228166249777358678646434722158833538265842795812901789691421725516994171970568888614597200423859264136067015494420806757101605728370854072851891892787008823112206518689721576612756027478881802276229881764474876801329751967832775008194919729767015507343841060233690061520428034519756009955328232659393052551891235800422528503361475158763255317116425751571983613133023618169207490276963483993298950139841152996572187190154171697934167919208594369086701095604221764350511071618124856695606529415452816280924273556540038063194669447241554258723979850718354935131265738636207417249007477890968918040048779852553005648812689095059376593281621687118323586814753114055706133423960313930418195110333068878761297053592843837481438057833530380319574632503663275730227053700046066899239453225204551806052985796008222999679624202021584613359527222790609012108098432610909435985943910233042337551384314635237841303982803679393162166248968533046697888311339282305602223702880150225534485678667404802561809616384503682514534097194190080961973728847099013238305031280868151311986152501255176301310078314583958666956430697108491423872081232211019631623365069760894801733608545841740249797637036323142256284549446751705995628626906894898280629081130905953232501159803978532886090215909182603172702148246027056109024888837944776660628235379658559264817297162793351387436160918462899168647638440770710673134522452855510152797944064846798446209822331859440175017542192282601863222011728350856483766413936532265094632116763065859172803781833958558125966471193618383753068959104608774051056115797143483640720105246078241771925192076975635707939547656038432221416793845595893680355113384466514338074873004467900453470692264944178999634293977920302138334752485821470158364386553752243483001017714821024795403866119479941554184725392196026541311216387019946279458567655943513174282576590988203645327402426115720619227471957426943524603224904355266351890193656000972596702321972588751631343770523960323308318667287218872672464146539502451695837713187121114702229839084951307834433914282476174970183818933345377832222950751395051267276712126050130203717242498428310058182305794713317844451779055126044387362868979293019173287787460960866783758522500883483448795959157611181131673256635856464685322378887548882494511379251127877546910412191807922685657261169171287186259487887826071425489049671232987409688025680203249457156108203978828729865013373355924862231360301467581352305019894396497057334685291590142474553750889753164572325883266960560242764553140251093189159087505822222042494327011821512121911407815482795594466975326947337783383754563489172508608101517688826752017112393605876059174775263667885969133008268022378794518081744154922967287591114394725686533859210218914539798036101354830398646537646176899552324800607961326556957707500555806607935182495615643737382238280487458104038161622338340919955860053772514669007456124261448951044709819202141770277316143605091895292136113268130341891660020034885547214707151643390016185365102399424801712388917601375431604422152505168953802312308630664351155710786396547575222735654978260318160627272259023225409744244549454172785782046181995593309261948786475975105100669202350194906888904071866561537703103147983659386643327365443127463505341781091389433631654139792647486438747296511676274341180535296383006633813612181213666096574517003198993374548770166443866007475002415335071159523687379141389732393754977401186458772981550613014320481645284861921038351267298600461974618651175649253732046766985774895283687519866500671224702461144930129241993462367109981260271039547279175623158919302878208218276886151026016204708821205908732415177470776414458714083981803171277743214184262586688698537062168682440031747251850968357101173409550133448613899840653149322654216015529459699801538568033891147452083256017194827134440082091493599626463079413045756420161134679230696396725264482215814698087939205732205390905935728676271543356086954643311234041346823667854585591123224080606798164384489751400138278762059999009041565004118749151181299890104440515725273974477048706352954589594566455356638932761653702612466406077258003916172950201360877189766751025477462053057132200732543583934623288772566493656315988914260297075393786515764718626835142257093725167859626630089839528218754763280406854498514120363665358575849990231792778959495492768376012253744286502873899114107624844991724138906041018593382752696093290929384012671865262229126931618732186554058651960055942417609975063604211546372882533139964312097732959412603282492707575172169233748684318166573980817229672132869398033960738643649478882491751593288375278429172340084503498450338019349577636083034038785570990510227772903482772313645014036587039076631879481559213795088583053311797369672939873724426214824881378461861105656131492655748060224183678525228336956120973031428579685752858439891840353236937852621432950986941782490966102222605615302902531558947553303656640885683223455935731886152468165088368825779340816635580356601393557464568569398712325810453222278111736122320386892507767364056016855099829501953193575820658772745486311252679315996417933641049190651564127428287326699667460706087773972280772325159597471577510187325454608428962062380781514771239320317044390817876736988772697524445634299613285377821217891594158395923997895202640664781439814281750371829188769177021650295466703031077351604901976534801225630096098183212798561247806204805374526156910049935408593755560942609971080647640324985314520589859479767755250956348089189881705159618597043260396020040417724301704271373858935158415648408020269308143157466276313152345508550704329560663481300912286044666499630499633641840613741742580634077346603142250011970834954723676862926243639509889157047419957101692313468412286925716345992160423037431988099705866381961128097581343125016894664330676339466555346927770463334916529986690206642320888002630421466278730082592358500195924624769652031292032662856494013051563219622310460135002819277318228279795139906489091875035848565987986079559448178503617533861516065268209167615656073160860398521634473336834908392732902398375921634331105325523363906941686465858998270004849183911877065873397288420927837419034041620114785127735534227245442671249193141469133343584761663026681072673245091446995594135914100849115366185206169156004894058777389198142822398219872731716414460101184719799616620876716009410724307660006271083688350504206670188222112908673363681934980817790934645797426488525180865905143197949954590415509510838874463037606491175771682609576363253278148228292949158135545814015958106468994613853917098630657784181527214145502861432683867876544552603590234158050148047369649330917877341232111688028597898612214433060512864089875537706254204824742018762249632496063495237591212365625867394684019435777547428054112331614127408708493118051301057828329449685614460532024575050675817772041442663564812642947894310481414470666411148692783498684078309175551495667899269917215733003267470234636020893574235366660907873708424261024423898425485354294424538586869127384677812632022392153612395418547863689485159427764949475804094138305342180565352799577483233695653503612806804762079735419333454063779825145012696219089957524827259373278307097693926527118593907812356506123901279791796493231762430539379275930350110299604005841480434665252466393531256371187653705501828850851424737494133711290942635685538289906778994501178707687617338684141281044908271703028322503804358651000632677168137911156767087187359676095063719558848089745946004734290668244296177097603287405450574620610801089492056126071305010105559556275093657208703503637977957804279112285127144295285512805516730205103930768984685952554239071191670337553236853096218482244343300588145353058523060833881390949348440232305200637904649607388396122991052461269899994055152002599559567767371817678263877599869178265130736926572414646879059596321787074380251863444931828733951161682280532696143588710398846099277345582155012430621986630836993102009953223422784961975021333575693053338817911834609175016807126227224250931223854896193442255324535641318698045320490832491714651687224236469676568368956848779236566913109980226900888564627195718558787958254119510406444920817268113463227345758988128089302311609644107009340868165991515232422118312845409259011203638643507215020698286354379454084773666164848055669138429680823247507246900335824966458792449949540663553376899991708064927366151531281929347551678335486937201620300301182933825849707080313918454991139874994358415676897951359231276947573549723720925170192849628663605167772985226008888313672625875258487264626182414667788767302341193677618116596790387490736660667035294659493070248048155926975407960261842933494765660854015371550076475459782490996912708260660265050501000723912644007057866765865973446005290971792795743982241040930433002698210897080196564465464179237320698408715656183803640369644369044895129696359212108688225089507268579041266831474979651519969808183621368982505653967859230904344169552745940865237305414926589673156724448327636441184882829243953032709352169734740333010374590463916336813476009841091051937501604184417160111556289678597115736456501386585625640664474809315459963106836434330369383336047919872206847909353541637541723672630683070354524881349933195026285409123377396487299353052711571413621996545124541847116801472942230508281556321016409412297090009989677953819826023657477427546034221949005784476865911075083531231533524358744901997024781977349302892447395244479855781872185369404943413904456653022814428997305498071482128034052331616024664356259989082435731826815373836226201476087244610128126422956232760995556965069130450823182914918443164253392916307936252459179542912977232622503865769226022985949495391074278468684320132220956288997959995139738424127518134595683658683897487036617537172861800336244001568224586324885788015410453329023878958208603124914349003505208068257586119617360277663037392587349323719735536473621750403891172237785545134517324348642669023701672501750509431588989699265080732802182586219590890566638458395795977834918065883227246590429014163839550657453775860688434021774637740404399776775955679584664083791255572799215110531413937050749173753690758676296500778862063750066343531698835419941161926607585896248490076016911592677266772514332376406675877084315216770697894353040446381467241205534909699006110096096041464581372566933794575098267458583213939403491447840080814610219889044084033617083256062747773391910734755296220285289691034826212930193599418237336504442387839208977543075557942312274715071589510020322531483950355952753477845531512491191564633140186454513382465009827031232218791322485989657900597160611452588900185049139091736731224553279561914473364243287516749598722863365421427051658926770477235026099533140638366116363915512829849708972637275740073634608739882547917134505092928310355346252353760850787249964003769267263366240654088755822405523356906344826240662928239570845804936349733878602197382615382440751847981527042341937551852464335217755393235587763703938991144626966823290594167572432944186112054592112903491765005510775020109837697536781533296195700251518592795275840737119958956150828908687746946266118473224740174710774391226907612170008294980635020117147629748043726286787415023645376993102769521795760761899887576947967321433636997036352208917043401598807246372212248082270793772506269465069784710414565497033568052422414829001054371255891682104185183904009937895581974195197862889312180776736361550951213590951703565371974819507893355344940248452647930633384407512441539914500416604103663937528077809646442382750957300364660511530088991520709563765799068362083930656916567196339023575772936840120066758851675872899180222122043655180045795644315402795189540764995947363685389321018802204132740869858278862409499348967990606325221405943322150774048068671104356762501084039206833941988521340410175122618829447018964777617574702538139899911278928387310916915283907908160200038082037466669464409876912587052204994636644675626153998423337068671121652465548905834109417568321570712801627375224508501166112184641672126431376999079597115818939776017129823547016400437257649161236331253319960628876707233799676311331118641662531969095717540271798304273924935796932472800809500645924809654053092027829957522138598420839285050335942397096380030562471963061462836483372974229643980859080577380609025813524714556506891995815316192313505714975873461777566527362083650456319365802945504623248537376495208601043394976806583587177545725527307164972173724209298544228159477580256233078084465060676965189781525462568406605742225162268867840622593476382583485097943068214573909853977990187088085992458514294222735112078069179908993469647790090670794304286279645126164391840281610993130684470983438734246992185758728538446023478370365488295774936087980129824807445081692438627262760665520440783719795855124117652186760774691402445620066949079363917943860512252986030738117262077521167170552170735148583569662820735529568190107104767864260246912189542451846770431338509174357960126934926481538730858683848859410219600615098141237142217680820626511404949786138438467510528452221619365280866525717035697579393068421024016326087129219466992069763251026870883095587768545200522645823650107808180307664825020419830507391105599685405516349818983681533116639154338568930927315675897449663750959094117852637338903318487903752562542011842405644385411322433635423946080946562790158690383117972043142352812990884959750671683523550010962902519238567441052271919411838011213953161343361058183816828088420961330277368742971305803313217639906324246952888453225269885866606074972067303789104008097278783813854518550562243195015303051694853440896903571743264187270936165907478483409077245474564647396129281370588812338041097453140434500349095212039871437130762164220570064239416287906203729409539588003274842363541097126073314181090014470890737447116332516281551666178209275824163877539138760165091356842178980196935293963791349961763414616715113531116302087713883096932384806456828903986156545511637184351870024199250066138048193493326849687170195646611119402769618895427164882558140822991722991745009498282296926646328731502157627789256797578527978320334516865623546757530504726158941871117178061553774079037144081583811471239815623338748735713744613532635572668298498825506139947351601798127238966086066643643402373190196794498892318260558182232146288462976962061693785807610949992393011333060935276558837683705327770202601886613692075647183571860411755717734690460369660432210482235696561658216810113628160734261310801379936352387502468521792455975963795943048522552389281695717512679402919538965977103715204794057255819670249791008631743814326395284698736222229717652882459890753331991736917406028603688999119139433372766523851850765647998714980102355875317467478718328899388888445257548539991343943033771362911980431499255697951151832437568164723588267282858546821891456421978126434375648109285196267711067174238392102401478300725302566356257224602964562074347510603210274591615832286876701886861424687521271157089377991178183322840605995856623647346048221980008832872730224051991011655429720780957846467036077286833171550360814511568847632870556976238810162368525233113392293550960173015178090715135276299076972185654525743304390977808375985117967221794445857832998486796421394570342672836254676808121068956225716081492989680004428383440282865912014523959637164650783040328400893469570956404314859147600234516508908719272922494856731834733101456209305439550428137210839010959539843794731647755370724708855889652862028617135553695961188126173180631619770283902991882865430358185819354931885418371440745197549148274384257482413190923992731612464777556043951173711082277383256907160691887607876053456895495672605324968826174341259703997429710723279046019705127257019634651642487128028628095582618353048336209233839329911131213144885005847885278847230284038011403103412950966448838167915502226464723005111330507588424942842017335771854858989492261612159852464781466884444583700708136608097193650192969078671234986195021105846056103344444699686815524374055856828691131238224357483478215113391998598803017788361507749224072273290249686711856751367982190248991588673535031994701470353200015416936479010714442225750211606426778558632782440495980594019064582252716378107997559671006110969597468999280667086537789779882177213407136050536695118710035546798996169774873711880989900023194343805447238714008152473101048999447207786703215508697337922388990557929023389574322562461243361338102160134248881913498330836620047922536541259096373806702080385662939892687044290074503332217025482591613958872215577609895714431940338367139752462857205911388102698160397724997847018816763290930807915682617544266823989873119112370901274142115347657647830161133553144614135387323699414722870966645434345900643831864678850884900486941014980945461697330498134310777353786432203406208596554786815732933983723548690203018946477880293912317338021797691866570757857380187325840189749479178593993949042653731180133784418411338270909792965641920020073721989166280194478726885438457631776158114360821264085445178296275753006323028582697254234353658557552713740119787389333795831341337040805357595980711072053639414778901264913546911344004827256129596797938830717906228619605089515361845198675424229805386415682019180153931604714801218001750617384723228248977719254294015242250939085103822847440249935943122520226881785461503334686748491902169377048905264333107061069839290421581632240037826811665031079955878250035924913540984202927452531003490819291911712317120950174679257951604894464485882028590903993242324707309640078948550296378427563441183365333175853128327869526692037113784211126769831717891271509643089514510183032875585408845641231073058211140001897583032028296955454474417974480259269539110244413052195216835687500911121737841448842969637029345638062877690493235222309764258564854303565285913047516140354879961187493019271357875577747283206776471170677776740268080252937251973944238198463712548142601707377035240034030610336139320034927935556764139765647799905475411542094113298813155839869512954923940301048063875243782937822575492538584637062725682238310724057112698917638304127738231609610847046939675946569822481584976287548804729233890995197772757085511370815692204486607070797468469553984861073087776147194050702569117852135988576314683930001956497308376003130989986556077570256858179412970446651867017567143523210954765885672401578526091371222912544124447916876129432674575371710155412372408126111110539315239330374440470256518334348830240989166072675974053059947759322322684872317981133088050438891106016961852569732242757051014906918418103069363067428774999867066154836090289529971827306031665221645763434001137977575712615189565687688782486874421412485633788852442243295222606264708784808780009838667391230820544745809277862007046836772218582381590594850864881812988040203333519989006531837683141829247716931252956758940167885705477393915578116979061074089769482533111434159732160051642325388931545801248565139050528149346224231305736504896817780775201417758270737408978748447205259029233435018541828377326653276681777252815761461277443019576106786314588681932645640299653979728164280342769673998673024622443259023583156561343232977484941302455969212866391911519394487545585175196852240918463310055299832691777333955224056704726777759309960411281507336625396262286743100820501184914186545775852838363840872595353216622661816818850272583251488308275770977005655725778156375502796736549983065789624827055124011770984908790508613696005273771291247084231213172307422368127058399752945121511779216562368498552746042278166087503020184036605211345712341358131344057013970438948169230378805037412132403586478959324777091265700101012176300755569914986605504646486199803921506661426526213923214849394851888131624685600211764806956943181863351664580467779609484013557390064357417231027166362963228441805165737318229177687063764768102095103251374595282281940447344686592167579697682013625175763898298176434786664758802596839262607269362673508549101802990372403923696182031476786531404301136502724627350920077009355964775141929631026944019828454235403983607831518916293450788769466978797868270470709352556185163469438712778378492528588859478724350453603917909174512420385847992734689481138443176942367686387889222051641960994501230049569171115503488232308478929111608704033181090313874079365938431556425562144730461621518805577974179882833629507621469560404009591096238255470099936880282002691572143645547743421163832009627553635074596953824491266579606729223391379169175625611246309365415018844407599352559783490798571834212881907366882839225639203919716916748110720149677404096928686839457180356330089922821406664155549788538725317970751488842462009244945901869250957662379794380884670065324920169994516419964688518397438432762127172552819914512450474237719657355880691357603528767637724258008255477794401692919902602009055587489879691893925245497805871415899287733227552453809649764784977098559477601038050543744458268400615467743513551997527905607210398596068271645623824028234590538302502314838050435367647665724332641848080597512986146770749666414863404071567991646342542929198495338010009138205548762968812077564467993594740873440507178909357491564584828485270438157601037737709511822312910319375904398067764470630623652717085143569314022593548572572222386331598106196431180598140286007499280831876566262702619772801575852978708340296877779885495847094702783878545816138820098011682057391248517808311382572656880254418672469977551066863039288392817835985935936980483970093949993950218990222201519848665828246673949319632659903538235438511977109812668241229841468408953098698204457953954344486626461968299905342787408394493468117670738725647253598558213102312740151545465438463584639619599224069102083896772107321506481500009654548918629175395339136147328951832061560988054299497630051751067150605455239330066434446456667220327136820872278381371705784401559233783582798393648610221841796042837174427116102609770274135516441732280626712597725218655338549727074693640005737960723497873801110415762975564317888266574544170862585405596383333665549993363008690175352632460810436129903136518651388279268434792408577763298337577223841664776669869077763324539949639020890627311186156760988556424926256523843031787906949469002855840347759498732407556506813585567240097836150937373084201655774435206108447711247351060453255840771976818503603887603477493439320682362762020194758554558870629584165045312688330456195150592934962512497549956316896544004438229640883193127699969991828360262574674775640618315193167442090010877805049934041806725684378269758970004771891063254951135549390123568495289791971290136644330918860468524424080477829538812666110492789967848618851601066261192386046235165278185240817199037567490153619728446084998497800874277930788668322047353179315377167962422418014124845859253123070891323714520666300829076586698229954852842626654027009649300487211285154681589205401443530757704232509322732532143282584409034370292197066262642269085627826181740640860586177696955763874415347065251364306541214237521314405958798777052646183482462849967153381768074609107961279312114487021115746834292768371208153290781618164005010623743723244333858047620960528348240860095336430858324504307190118623532368976019142250206457148135832226002306262899010895871743271843221359518942417659128732265658054029244696082976393685729005681249798421484317948650316514688897158855532209150116818581929136714591305939897668405535574564245508454824422174855547507478477110177443096047893332192014916224701022281129429859619570006104956032193734360879533970495656677808121873105817950517231397038291090292285250395134166043603049828656684425718874772976995694617738952067076308688966822825237896052553185518483512106889409013219798874227560570155545027495387514926764919447923756072120192286289776442280819348034034053184567583985202104518143431720353991011324251452567534074831367729154045252198500864984508247418232854598750455743921120044642153608535166913571060528261367444630934073931477185356918746347715615933025968972612362062965284352034255514446992003445387889739763706229269119168524686478623549540868130494714583406866136392487269274840659381078590053959218991468573875201133503196623092694599440752443946746839953408779325815644403305767942047091476198536079377373129299295469051760033232687560941998362382694718941008243254326988157855494935695497385587521918234651717203984201624339177685586153123287103021749054837726734836760350704333366898775332983788106361074273429864373492849618110086123714499047100788766761049644641137091631959474751154266882481393117326152259303248003625493892367902612863587955264174964076508124174835518630456325481601162076314278599436755044698343776218516014788650639507115891932363745627139443207544190811654951406495076597061345942600458079936364356786672997357209065309937837628713028155376282489418626695425021898038840449909140902150289100565810726130559937088800888271583143948947782231186586612172867649825620382599015398165863848931920644369490852722932709079896293190363883155974710807576462566513599487929808109552550578065801257188658962488778647183288633497085684132443537018083649324265423766405061827114224928785957932747468324862953015692259753545531980909020278109264896274137992424952857265690029093187001799830447233816543470194316402120881989659931995073449355042688748843735348839854803985670030738241439522893419005128592864984346228507668909980008066565852948087681424509973838305412235370143852572234532666939263714931741621097082191205701585977456122990956661558151702331841923678339447846041711278180041315624723821436246217210433676014468379922583939971986857912099628571837428543629105063344321224673692432545268811405497443115689686535614402585779314522543771906709880759922000118357425614291309109449464106999588649904722238093151240095233119759927734376771571648354945628648345943845885593556143850410705094844697697992424714611746583678930453652787392483313976766416841053589986926206388940228038927711842784482278430734413572185340974567628814884012245383203183586896125924557714995646441374840609983323798224313867648045005922135712462982646896268433221929700547638022889575871810399068616359776233413094009965874842053015684234481604779939039502665127005236745929150241570823886758661336739180715231634243488142162994819717866174261417850149418909978398102295302267399524479896236151535716658408564366809397600525974264147165465754948418015781855658781849600111199950328848438092584427082309719075444030053434883148579264148665288809453697679873141920754643797075320707807607005058996741854097942715214103653012542077548122429541409768140095410172215713657276968108027101980131596320310432171721390003106172448226226648465308040299116030818880704975407654694424759414160564666820066771228749114468623380980959993444417580237341063871470795931669088972035132341488607196464538914070686776095955689861315648210208397767035317089763809409649537224312570846558193500910297901520628615026033636105124063887121217550131328074519976634410407846187010951285888301011248952973629511543017828727775640638316162493956859285444426776023645263268762197381812617487677028607670260647950112122848269138701776638341366208598289876071097927665746114892493339401946809788843736235098888875107219803518940335172768266934676876230716829164299246906064194120631386378001823600289484384708758597316201047025994293636161214532517330273465433062504262506391633762478455127794628054404072281305496582112693541896359155088457569580157279033501566985726667016595691095564569756211481513738364020234016394592260845487421094251686180511908726603967212254609131392889196036485782146717585761146915721636745365959804136849415052362510241255015324397373887313100147190222398472797082726219497650708577480818520047291548095687885038938820622141654619586531953484700393372129236421014409913405565710289313677990704122520976571202156650418830584346848645046766333344979261916048925839993959277858200885943294343619007262214887198852418347762148968291335552881682476821166644593239344554464157487371253730982816888869027328861173119159468861248611678670924508511331717103089681769135371228924315833260660772415346101161058231148458633439393403816459170058777137086224449131615590197451588453885747815583340160913033354853997323099132122981170162090769000035629358631277930959624975881111130931208088633268171998703998995570434664552280032413431675512266306338395478743817080373349703875307440569701509852757077420793073604627471484765949026306120096277530977542099751696937869622334689720385126950872606724823244675005245629072951136061488763152958655232422632142097224180805125878736930021515572102539521866338015356131595982086274652418902971271855153447760965258364374714320729885260402542497859180056849773667399106091316376753541766480217946407680499132495576900603449097910030201018029438137665914920897877597607290526935509464101198977041211974747345676492249616835718262175461882807605324944711760798870726360090668692639615849269897578205112545901936084711982830342573993909682866097569059563903315162255388343529904415297310137056414728518818655866205161588876471545301272951617886242841025006885914276337935718419975804381683465680837197129131269634028604693060961325120766096091252884180825192544203975286698923393787078164942130304364736496131764445054415685246057758929298644865011467473685581016767407163598307723734932490433257202920317110992801094989901910648520979571597652311366384345594963786160163451905561486654961276114228138542027311303130809489583099799353495551837220218770876738445812906189352994328008282296614921166808335816195895868529786298568486028522852060056798746001821582823313736919176215712028376693236476679160320480495970513469023492155119879748069837117110578173028115439479697370332684847304426235925788648366924265981640627825758658365435716512167333559164945894281898040703940446683193909626967432319383706256171245690798672654087459828692193499918774974987871225452314519895709396414456470268791472629323328167610220022603180220346309791612375403449747764877875509757384803463848135236143283154070669985407827701006367398189466294252454901058878289495363818593668659951417863102762196859899710708842549610576593567103360823911963423282431218430335139985722466538577698265652351214786509018485603995291542909245536639869847508727824064065834084659850414246633590331987821766177418183693875858602289501552857086400675867310539108596807142579832429778050528893910368726476240145659057773701331364356861695311830476331072673603965170798387724156992710598294280843826585573028779374196390863482635791369635256040513007429545877189387899357119715946622560179327229605220074279625929119172095898065159006787344664572241958337923438042070902647684410617167703478045167997504051959502934657287277787238718844203604832695022844840163287774805253717694642601350988119982010032887599294504697533492991010949300377704191733839424299336023427850160883733878374531146355717706224760931675217292574284984672162203106574938151730259687588923472985458828704385888454182183744607490375157857691226246518848487515767286878672234541055392389058402629395677364270185252159852978646497771872184816320652282807441590602875993933819154448127056328185257545920362385441715422730381568584752775562231115616785462462500298415592331877302928758280542703354532233575637368955453696948643771136852655908851603798447442686048668552220369667336103833946928300762736901693681103155110284478330990529242543632841121891923375468005787223848437863829559216506020992773302433050919840410998252396252887264120221088806547711473696912504128777756889562746556722351734868612080525246446320959465214207448194270544969630758502127454443777978161051383215379826895637242866857030633180759252598302953618572218677437130862034195955933817183147113165676967338520444294373021197173760024763039631951916642162448080761200981708725746350952815932410489529631088483564496297155108536319315026540250282954056919591866200476590607366037862855399427250729290333354796400224830400494900670137527303423533695738682175255969861972625234343290076988070037442541540400710442397601321204613949775049366888793828459356774451128528439747384402626747514528564159868935402468558438056326024212459946459485419313073014895698831414002438912474825546209010132592491956963013335137982963319649337317208666208051987324129474629913204553235996819169425055216741594705362298404521568606206443440033280347466523165319685533131167379098545681282011411563469337969266043254855363069526555879106123243894147349019222279286264326818301256978373068465843346128623184814300617919673348096828891710617406054197687123615927971164155095530331913612033072877395759199494074856135278904698349585761837960349318119522783802924247863041014931301006009084090324306145658670087088415153160802657039596040700702575748330688930653051283721881944884026270553206988292381850253395436786167345453564991770890954626423065882750847690808392896642657863486662996202251647202879844317306694820791016841038353465759383072050911498651361828744475222032130346103296835670338674199573719363090901353840963392259893593272419900159118467473475671543499198827400990561646491332311209392496805606591793880761928605581020265745231402406563535689585691754581405010904751559961166554690552530378105057732058450809795379416406154384954634464853252035084589544301292065134125802853502319964649291772536235355269807602694212282789823256774797107654165988668879657909842978217431748943553554239309785524850929592612054631889992477339372882667663082897763774808723397339791354247321058410294415317021114302093153673701821136215683573728015719093807723547762927675982299462353780218546060398709028385835205811857371750532229863503092438026394313399835620952290853200751466679033359722372036669056827469141739276828361402501643693785598128482674597173161170739520721151949758794674619990257225071172783407093364209019163505060481970540435731023181667485969387159385447799912915441873638063085532991108849483089436678793041067332040519341847504843970312612794347159833742950416090929926528603240609544066762957510947661744918053433955937744916043230607711688183211112295327195461227278138023527394446888445800728975493579226954408210173036789025832707699216993938100595277027607030760863538055952571698044836018342743612337385241404818436312037991167243260356476901219746213030919134195161630638561908359636448851997691798742044084119415522302001026498583681709828600650700878601448634617709555051578412180862294368521732647616040933444911278370943082121510129810832697232245904924277408360228661393675215530106003938010133083351045788355663391495359070399168073137032556130628358956166711387985376039632662460661969206591985118746144777171230009419789248049570284586851437979714008865811566859762832497487928338125900016892999301874366318492984266501457001132049701591960006821739093308557837796147787276083767830559299724890469605166652368534811221821677116517774819880414265946513305213402411607051769424191227588277052524335248741072551286912552579329020603744964709057466657185907299162142486906080727005771521559013379818497407590874122140216155565219624010328098365680150880078550250107342810230575715572956712811360651086599092167462810499280075084495956138154920165030414686018938438919250778353393874163145149611880589510491514906242001754363972353842777312824916185438098950446326529257589761811157575182021229949515463380044344601270336694763275417069603384483334620612339098637849554445877933702043373497775032458518404467058207401893906766132990112731820463764835389866980981879433637866396307361557393585163959335818742980675560070274936762048386263666590095130174697322052371076457182959668357149674867249037028244594871897011374590263870571779043130005938446212158842401826461289611031509115797235357748410703420024439415000317455956917919618542169999589698310094417548335259078761029497436469208226006825044806863878659035247817189570308972706630820644107022101288227857014628945777179464596286362934379392637113895505955941536189854839721468532662844864112494043842678878161744050679566348943433305955842176841225837645006435975932304281262466726750008684162569855246909417090725802205769474261689757858195747864414488912192775405309158290085433447159349766559666809164060549378049666407709212662954545059019258731020120954520175505131396622340390510790660270090857660669449544679873071038626605764841648687822676897357280983374085035582214506005673898113795373996172120808567982944040781850373861785546111667544364186013815815394891867261660534072988825448025401176668294613267685783265667822116920136871328243221083765659500591318901028556679354965182757434583822881297394228114433634566171259788529035138872400302797971577167771147085912240261425499998174650008850071706151150490918819383185739822935844837210688248817927269733281883315562234806289422242161188944407762442602922217544026444320603150156476153095812713809187826280055792517066409508720857504649743663604362332101680862234041005828787352862844597633640742833737948431344237913847489439133792284168939530223060996990261043055300029920016743917818427851933156165443391075882654482824148733287167375816568783266877896039561952766930689372920908837267476926704385394197579547030619116523125506768026011172272798940929833597310206440731641127146826479864208278578754258248497435645605991478480992922375475680556359692260291602729766080588306320707855989574793194759904862807635444558795260631476234223184025747057035584063234997843566818594475387427599159026711853377627187168107615337988835898322734829679796701488942033682735547302566786906535329552827336796310896648478860264969991404548876673326109384461219678211136544703683405036243348802052017286336124423828977711192742214461442780725126235396932325364229938873327369639572019955720160672820381308929104588653370019430206649810720658957877811887512413080114114905131782433078777074139570307199765878974814910076199277327459861188599600398308953681618388570898537408489150015080564812299889051029380715939975762959315836033760465635713142686774710130710514285533164878393755929260259469675967883829963008116613841131876195775459496946012536487556348080618098730757627546499737568412178156635487495169775400725384149518453768659414673193752997867638488137069348447203500464609587014014589421042755247713452937477019011712612117288833075566451641266572351520837748008726429112903518449732629139297261202132841964984279704035202897552198766643752596537773615982114538950371705409907481740124120742043670145318640434478001670443733006127295625477123622620779858606855902473277069172182003673700513632294861814157916877594506161752533692956340478824789846477781039230283296346231964481279909591630767252571803292714598294589847434071788110883137005936264083669107528292847420927188733947525939580850926188054653904089710295519694858750303720594751361277410189060206263563996119939188463416921173073839318425234091745084858986710064394831734772313951736998304523322921966763803284253190020528986660182958606279507709237872575146844659890900567739091865806771765072106791467861472004393942063041508133580654155901378560449719252573718345423563516597431366802673377252511923957828485433451035887914254491924138606673607220347172033036041201831371520065603766060031844801324776204182817181867960470864429053205505488666441428412480087709932083086862976829504110196888292651876337236511146551031797812874462560129962178072655531844159490614495820159653315567459380839899229960353295681984643237773539928286900245283620203119959973271649825824504899611683494237057532805085757130381490637594824245807193518088721095763044362151075413550812234451950948119293429605416468855912125688819428171937223324416776739812539574754762501651949806540723908552600138981228363249334962753902972821730285024609584925266398514940586546245103277223103782848049481213410784094950924585258068591251372674292891242182853370296117861809565577051023987755428378870199513106994998972547738603300913742040844173140057775579405061121656398095579757911780729017731682568136894059724286618261183761840730640940932612977394623041089288267562442565207459071975445637078309942749392625853627490745089791024972814507858870895766428937712000771779962936931888316620644789805069732351421256884209169181229764855068512202701460795202087639763673289754218727401823798389636887348545552077898855398000591068398126583511829845019271444291947113489377567645338990035541542418889636740222188186762813428429553527897799250475213293577257449401005705630644594074984986592428445957870277115712421315373414281992357095111752182644645093653493451078761179284061557971313728294522877645349121455582538103478351975509025629874780763800702794724411480846505303576611520124027938415955511706154495902907796864207241584180911547221086800134355394944978025360678105633474080450875354776402425249184018647043557122635797512145467956533074671282844410091671394627061471194667720528585359312107481332138293338596772823832705615333957039024654400253977613018346851449615003188410616615032439666900945194484313863155554704636993206092658161778263490494937625874546199912758055463006891994058367338325926320019390234152289222511532149368790795223395349098487664868650812295073933763659405347823774321548951069562537320475583482732201689574573482892639177289096131238921154611041172231759524663086925753594627939998738911248330753212026183615524733856462280388020430420130224696977613996160289761604910139521766393253096400234221926330292438637800225868010943261265220206021673042940590414780267971559502027639813637048305294983618050349721113859972671306309549251984345766281465398960236890488429220002818769505329466322043674899108029025624470993293311252712962908910608080439578203136360783887327931831244759928348094667229059571039262311576652856729302969605631444854908749694695400449754818126290560118514257252664105817873861671487470960437894064244610313276795254227320589636011129367957706718677173780225124476920172379768319655271798150420316377108080926647540192335900529773806870811019111981724099944594295558700349968959342379403306025688640882559769123255999946269456027851281768019951114096857512070043333355468617338759865216058576560711573632081959827343699819140254578280239756925109408984173300878053651603545201899600038350570115240137884151906047438106595739043079088776131970064198355747396599946549164240035029147701160098845655782475121374557231818458986587035400603886309396083521959764475383333302937146973299272385530369055813649515286518429256857942234702177834654719171363795231715032343645768254965524450203272541788606654472656060775859370472358822039970110498451761162446782254678704962091235738953411482683968252087648234520717736864704330376038644342060584488006186881462614265229793800490025113909323612760610651785234872353102598058794210140998471874970350952784595348858589721250223090007563061582181935802985695122230848768026990907812289566987734004025832092196361933969983413361814951796814421193970238184843482573099189244232884967791849219586632972669578142654309504185727359021727883599653266048107665362600662382222293621261573986691464343135887536598298329821566869299068359863850735988485710495480962845414701085182453424423767174098170698533351219956438817726411193705297944484703116253405087545236095570223801670983868548559397466630823536778253008672313625646150453479604129576126698068356805682248476613853044097143075747033513630069813068564199883061073362674103960306338086808673114916587368053588190472770709976428583802089867837978856032386692929872178717896206878964567447746280089504601000630422226931128865504846241780306012938656308702631490836877837988159362148659816466786253870863573056178792351576069918813117117469873056370655760390280555142763978002348326750692935234326002709387541394753910661165215997718383104056211930381323212759612752255048270901328315356154433736025203229395186100461610053352977374484751540954806186290415361580222656622920428986471052556448921584631531250343585951492336381511825110921131599479432096436369788594820163305622957396194275590593009423894261144900657053714528774488763567712444310013362230368374007487013002612211805017994320135309770660285329885876240868993398599839465685603294810816264371524093654086311683719493119296119192163876682773602175385313811745845843649998109644135817173897533113468436226234268622026077207839821952125276393475846128475192044178918247083396371958382306752315494446599224346818071723673523402899076514609897248880048702543711834303675615340771097655733694412023296493053043330088794880869178683430145058959011517752700468661682757572644836856032829646609976344238180932968341136593092973169532429207324597566317551067768611823835038295903298779360867547081791398114991624498850195240866504735023931324769130709344949140763568274300823874488329064932529979551212005132181980209536765575775947765330325446366461576382798034462094196799571201078540413828966204516272815380839045329199939543606762673738985675955059426219531919587047797148505657499924390110076618785442840859956635450486858420020080825297344619657437352735187032435902306563002646177624031240435389007347349844534909850291189501642342333147463379392812513942143908648393220302108393534997645410155213584898989664133376185623184972277245481896090231550236077138320917677165569465715732056440308695730012608586686183374676758975601252462985924409538634054585475586116094192685558543526858432122355079974852410876560365905046864067729329321015442830118438425161095106808893906425314155892664500530128357874200347163873371483930069536684859785578091554515898423241773571706720691076327708057020240120538736739877504489734119861845527054140456943188456166219354680363816631868665890154704131434019415244755467879261222755784730271768206867282420588017433413659544903639570603408919058295275672653852419567685524189621960870314235123617941289331372017441361627517191551370475858769478110091787406726050946323194965830553781113680130509133541386254423883968311024482743878317415235872804173186192151633438188261533343277776168125466360454470383197769182207058678813009614617845790196709381472900671344481839548035294952528031761766463916242990521838663253090173289612066796201477549427720927902208232686055843354232334990311194117850016714251069771673451972038954889673397880480404529685637933600596864592445065282901350778302083544508718898963950120254008456656841007100625209647152047922894296210233012643744463607296106001407058741454445572437239560145958199405323960740275067649646450841700480431327531074337823245507209165867072411521636738014741616898793350655118876868741014141466501608409618359664331286101678178218737589050205968844568314517990543684330973523134291002019107378553679342938324090910892465845219677847355068912986939479635805675475760149128017617611191332419196860362716832879907283502115832205044026690627655922071145620700298499710468124832515203525733666940830564694097766246043634424980124583251233610874551650054211436749136318372783699215678639096691373745921888791951487720848224316960994470666068414078516767663693118446823445599381613062817066866082166529317750181246164327277801013776187908808281300547431409666600918528246892399599333764034589676732974751994200379455414400617925149908297166832816756999803850505711391794022258461443519431659720545599685000557188617254246863846232315942189425417682538909239373229889253484166386779562330540283146672112037767869677100447934285170022536673990898799472843052258879463202748206364120753748979344394973420689166947892357288697223995946805704814074796249419953607242124818611536084984767670988056316187462187908792976222624426510041455069603937244198209698743411122359323459244146116750642526315755894723661528928283452754864341579474611168313188049401059242429080538094208520886785784183994559792331726842492588638688097965400614883291688616747381814579859500983817626747674251150600471112355073703285469015384588968762839029672556080320443010757158822586582303643529229127784355511609475686760699545964592449641684472956899363468066944656879269494471262546668938731772463268778978353915983958393847704305113697425789947014721913188533889388085018801472922257384718115346842551417072742243342915028581124721602278145037910604195689365955959912026292002384341886600304715006187926111550153392173063317467435617185560925381891991923371693199416997743555690899073702399912537430082219642249199482606111190805675818876483953782951280429835936289317981055070057448377823778840089494964044410784536744648741548239637653778513307492965151513426582113506082429404102563511513992590211953833271688855555748448483301452071536579412357160789510050297236776641665118588655108792350000817840005364981438638994124666037522587198348415670898510862558678298724360410733502912329195121154939772238541533494149501785405726254376696728713005712806549395228250763469759282191205685323584835692758087742027862350083805336500114289177091089163176998329141761189902231994926066165096465013044016901773263525953460190550907767214086190407172700178456473008011868153068266768256768502580424174490363482866253796157574349100430119915593735990925223096648796796411218577136528909089331367293364215692414963225560278987074252572010099708840866950702928031242402033775100703929483613087381450775147521738493835704633202708040268500847967997888934553422849700276987589509181708014997262409013647056487138546553612906721047207981368689653812429191195010799684048147865428253524795765836830475050996764042895597909543035779314009507151619317004196941036663382460081094647238690389754462912540267598902998291329112816629926488759216099960662244876152848424547765434575827837893544567695203037418697615103138051523393153577892376649725198721559737257784399224861015662215740483780623991760495457134756583835311601451183312321803195029085364816304074978709486180359485301670927365553611897273791803898486113044617410250510062507444566922201169442886101260043075642671193410012485580601261332198671335925416500993138134172317744254722202547925555749421551069470862014628306804938415793629029134903654372511857255895607972397611275119502420133526063093396902236610336147113477955755630475042504836732854528954654119412906837310655754900189117563398069066216882530992963384335805080701214791646203635463678098467207988779378946932567294783952313893978165334566407744904278049629456302966639977101476891357136335837597309549855859788692000841292338458907147302232857826954236485419078073987390848246303371608162555545588027168070801197516422617418326840807085339728717542092130444392075298824168590369043587166670662551572379857451928439257405097215033508304074795003953644302577286857166119478838231613277923317657965815506365661021806874628493214689597246792049884539241177678828157997476839999033477058906883975516830869069766592988376432078564458222747396455199656594179727235382712842635495773298481366791421585385832850268576561272930201145540915928981420221105347825048698533319283654201787863680585883765067498260221042451920366437044197864983145397648981821964219297031502977892625615532699859074037882563844422021196866399490496850313669503951602339765078029556655724574896556597435751649778834303953789807074491759098601688786974577933044488784177220246801927297741140583231670329968739438155839321002301240772593217399495344781464133021400298417994635784522123010377635511507034862267679417196472697227757583586218729702029354103802303971378333356289889683993491730113821286872946602207888070561301966709127254067436193040735195930893342879754535040635155696391922120457788417068214594139159052384668099503459369189686247947950263108599770968377704089545829444491699695123594934514531615792372779686820789883313420417299105442267912944391505732821620782800123498738300764005450328830721623684277987822053141792951645315558746354221249871999427124411388066035207910405616616952682632158647586312500920523313362274033737158681341835707709016948366743886466474687201871386361645578506551694626677426458288053339439063894665101243586988879679762616539794144464887060259772606902294899254631734936139697957895716648854556136594879755911609718228897956348644609445201472103905654931813592027708914730851916001505472899132109804874765708490407152478724886421313011610524977092685486190239796366968030526970176207213355763464789588316265525421028748348406584480006702144283142825817936581014971267112745639837013431386671352307086922286543310897730761051676937097831343933446299517991707340241559768603445033367218390851013612411805212022079105005330623211306034616424048127684625643454958203362640907799514891459296551603963328416246914083728830438086643773688795573005870437595939167945533429262964949901197657074791339727924224303570274763054990966512681340069235576643300903182140791490323164447040065991561031202458351148566950177002410904574111932641656871291697521031944641220971580955728519126889041531760191682666691263587846530507197018332108965355854825602676860650010546503838830549485686315600089057648248577955918553743526747966958600082223697795563246069432808298399076175877291678582269478479542704939694173480855147323525030765270804998215017925284949683364671193545590924174559401951658965268007308804833677939949789032071498135789256199718054984238369210679210866092902194057712828700332201596746413349750200571045524173704000963251535945995275296943841054142665993340312363107117970569316809165798847813973486929617956379169287124170687863314410572831059600365969271820100345815626881385376122599733407098152330678344461273483508052940454160275483900509678036312970077781290726918528461496136549600595600804711820805188397691585681930051341090444002403057127580075288817866679575087831123397947086320036388394777276422935750502258939656014821985364771281030834030351400566324689257798932100372188468369332273732602092983352263041215824049617227712151241934277814947347470543428220313088487994412353962508907429564938111842075375966831037445125720825292407917379123686917119433428537592782079178518847259435142311603473511203381912255195748330651065778419645549841098323587784064554939474025308279555948174553902804582362082030916411786983715555759012192842775496286371714344327147860681313343802838998618994244480880068347056729665895989770462565228804605879290818464485739873487968443079152120233629189204752095755950304394505917984783381348495356164451460257678131930555158251476411886713808386745363106360435432121687522158445338573254452325559943210755875596673535399057891965754320452428828450728665094788534991720336787397605152788758540576799990855224916283966033267753095536544910430665071700550370195580025640705856558799468924498149268306933748642970732729565131334996913054109445004489971911696986144562482408027255231642712955432588659888959164350504728064014240202537559744745886591553671884286327145059354774626783723794802656557619545451541663873865539863797179667812044146323370045286145923796807147102218195003645321188879764924332079896900216994804788254922611538652196456677923010464762447367190262852424318820918670446635782979604174530306680776808295348034173144494056330897340116236469024934805130309694144916272475788790549822458999844230736287361092148785503193423515557727366184042483844113038490977823049243446724616485759433639769767304085753770461449921675374800684927931864631897777646269631246038641752571301150791594957770186811492568969815252646598714061928899269721503801440132264887895311087456472849702837414193109332913651585621547529020648083137037499922131613341265771683051767705599478037504100798465572537844504942121959892492662336790352555458421953800546186690008368830746131905940914375840608909656486037123704469445062382857591971514081089608163849391845694264374916128598622042773284619587062862663551842705709094343433344151430417123320740615106839806735081440299690171715010072309224328563603556435517614529138680228666167927787478303890767879021534499489636321920492640056563430112858109632277499368314583674753701798229181027339242503517492316740654075402249295905675813828758635183007232257545810445703098290507457136808688101201101940587869567657085654191335907281532229808733225046274136376098911260030043305638383546493243420450406335148283880504907044333449345369694464005719091012307507754918023634017228383675910202112691117451893887926821583478705422593019583190461929664732902569539204708637872212900375866725445008371286130872681840081101272223360138692514131526339199623623386575999803440682720095715268998645136402123047024714294853602953236836346214384845662828080309947898199744275764887134158001771736599979755164947598929711764920745163624415893774205784283467492877808289707511620894127706040970325906661635024137152391156546202728139437571683575352974968089535937141043532841484061684702755022653638438590054932441058657648446623016129093491967742623032917767546059219271613158943534425312761429488806974925556394732350120366625742647452236903662759246355905227414268764033595207305825859050371641384170868338292296709412910020221431810786545502134934610040446330210705557731302917005731320157460727817378255485618277183454091614379415608642514392778127428014202782869845774340358163097693529392054121100165074870746841978080626789249204527603065091689935112754968382788731085510357297815810813506210897899393504687182678226744817468194232357566404932655523648735071711051530736957690320959699153721689824436715362435056489933232569058017494940085248561556468609444266365111234494066518992235983312958100995642612026982481693629726397824475916068932147727641004107086396466289681569317940774683222991253843323907865282824002440425885038053542573551086574558928313016356010853582522920422407318392295073294530598199373786333640166967678104624800926354998624910059630305055993768814412984120995410367825139283068842560902936670650410015516772034269264305855757620317254822937455777397340843500661389251111177931215868729600240332119670072605380058004386665946100729974496982270550992903095136312643786927220654710864941206889764062703388889380812613639076312630845941510663747757184675399462165496297732491415586710254720467254989754483775387931300716505550552669850346842082239671306012660236363691100396284388827621196434729596465591351005131812705137193235466493255166371952743674931443349053703446904730237600786494375000058406318567543483727587630732592612251793314689366215143561528192900546306949512271323440350250389399153045177867005654413374021161022063251397470193561926587196828061803152022529382041264632239776282565341796495164692920809303692196406923112092889007856201219475532265946806741426811931818821572284396430054145861046993933039806686070305882390556595255971202985328600496199643487633966989379626386474478562817284187341019290255998919717939158399872010526627514131273398833439315498643872085120166359253996037268770035881195014632664366081983531181006509480031562277983292431624505467040347230196941515989399529135757680806430904090024943535894049936138477739220445330880326120759006285086882261754534313135637117845631693144909334126961138950064417384432837631694753014757632768350771891308904303774916876057173387109775534767760049720301184523764052773320288675335628231980665706720522543831816563301586984132793755891354662076130983230864740007071104132876231809342372738852558347866416284787461107216835176193698637801826499418984871447253448565993901105271197194735483268060426273884879905995912134866783100140139233067697811761345962791014137776832762917282985930635534988485972803251492672408738542113256675068113770856133728423992185795008315487140409881119528231066519537249161110869291016733581105884875856324991142761002785400045020679271385154273120977869025839166591180944721331312302980285269685396313379023383424752722883833943671973454044357870151059167149761531758545833767468020516231899952528799275016169476348323954479732687124474761684726409569064837635786465814464008227695405670197158192070168476014905782273561144405109980562190775146027921703245831615951724451820252035285183939044850862807970242562175485847777526320292570837136205069108902215528622558983190238570043767234843769336767117625875861992347809001727677895332394528836122299340477977004909926885830322087572307116851853994107806189680147108309362537441032344395983329398235055838490225875729080084620727802500531924855379530441457174203981703750601045862696916913957849121445849436385438830604265951191668421901315406258385239042485607751922079153956260260114307807619409729286227560210259476430437625858423109780998193720362856420068522150652971196309167798211048928449162573321231791897748215938280410920016477283399258393860983954877706714773067858156766509853037453396228325691843844801215652783476877019029487998228305511329731006117735723415901229269684795343428536855087991757819765240264985088528831391973449397301564452472353754338114229282724239191890344197077290546091646264693047844582245115796412696343397163024517495870333326935232950203311340749084983651063338175215895589373456656108791714499824525028112063146421755307388252591783950535630855674398663829073087520987161129001979261239758385126548051357453320369882715053334484819697307918776946848866762735990479597083819458882870613100974992839260563987338518880798497621833369370093367372711093227021121767160168894149567929012767913617188087371597148002504711349778167869617541352270230886055159353823434519119141060200714275685169039083551153652276415695906392022021437880417343030867643314407538171855392948400706766085902787982541498830718268881407088878085425197739440311702873970212911331608235149215983425840140397117400400738268170805211656626476102151082700977267455097668682250060860092095973104482939404057628925448808023314187427766294167782615891996223339163486120217163377529154365901161730932314769907981959126883024498130658999956810702501631545466813877998225317957433233794124109696196465925407421598636593569121549287356693498531728829715748711095529719029165709464741758754102939275522130687500143555767855694927728030158574436327198347341002230989926763842975322065194923504009928952891643559052499827086633779315976264224064919838299151991007162121183954989376846269965106920761713735186782677719358189568116460783266797415884391768811042623368748137317731933189367204271436000816559412469603053617982468672702902682812596727185286720821742424349021632366060981112079561992352109039556979436341789645779088420947585938564113375286506261629457056956171776827195607495445260346342468769111390683751014746623339232336887140064505791444829625383122273848715063042208170446248269504539579594128454164384681985380995252235003722379369184579255511903495451179949718676491972513260253217950144223409324256077156973064798611915541261471601165293759137017494209488785057990397562613170421962101278841904349840421727736706636823057742350823908670439797561529042030185150605737215102944069126333172202156990444800314677755026674989967461798398200040290223688716041429113724714268064563683683247027043485308404457277070434672555908256377924496857428863171609042663584483591004181227393933898851100582051710031831418147289876098285786829509775541844323026327921217185644799861499095092159684883766813237236895823763345401500442138232754959539218512501692009427629493059912870947647575571170050146954194694926631270612758713691062947168087917194745651246958970212638541368354875902005164749988686940694421476049556238245052586027017246488498210381385792814256508903072076561355964566270290785475418686119142099441531141166174005867130495920745731848831297431816876675620793594543708097072215851520558277062304637948830440409577931208903423528342325287886840184057411827827557572332796296089146660564398953027500982958183900600966979686134283182082919824372393848910158485969477071336199971318144189466539880501019020750108721604882709473803507309198172269228778245922626791208827124797552687056240904929950587061259067252975986606334339482453804258348586747023639839797133312103195603974992396149258575065347674685918329847533232429818973873551098365438901006385924920729055842294123034708334613030071076466300140356606050234618936826713204819830662744958393349544411996394216034485196603546438640541300018892646517239227500587829568353082554633334066761570274860843212798795243956193894401183812506260240671964874699344732032089484714263010549172069673295962775489482890372424392292757149240205323225624513902077939451362619446453260963918223339055559934202752652738396422102886588266983527397966808186334764096886162162171590235589006318593456633010258727851310733408969779955816449980679610620759076901900996668824193317868299053003580862591971288552140343225240166106712715210679187228191367157716478632654899293951645690536178662602074996147168454822549309069392446511929386719496273722313946505623068698432145369865506921800442169068381040594444935197233950655063159085434257537715595624216230773586644149212091425082217206022201717843647430675893788244188250489293541536684574269325696573381181357024299383249026553699900754556071445435934057116878818511532480166091842165616961183273769599790118812035259850505034568440907181760657783563551775510854457109665997462747744671298653970725613791729329668885222445295920028936546133545905650607141264437778404017836127584098406755862656935993631739619663238259487089852327273980036657814650170292704791025646688831757466253029897704306404878802860614517542905759779700886423616359438918334290320424412124488645347637808604113931026024596540985153408809894718128343868163967576173734388589640824140686995946409539799166124565160999693758013519044563628239128340324649811342030054269490370703408976007327103940138551529749108668008244176727388763727589530468821793877784007253779866789546678460256168579384305184472693079822171896937831274698992285246815326313922496426046161832069721005411823819454547967106870137976680800639850508827754905635665744447517074899483243333144941521267314074157480249287685084399829082364838890379204152859888812414054060583822301355099586789462204086133841901643299655312477126299720337539640016468443780584052188488122854169012634861799842531671342537772545907279647516440544903373976038784240715496137039206668642189732275285930812211857599135328915066007597131027298635497646357418028103342136629337397532296308011216790502871763964509629245953774571381381580750960488255946693361403186577310553318282068656383088634561406191435212893512727368316398163869146386199193374258293835203440345938681239803650118727019011231297701911432087410222465996719016177340935183135921136520475743169502937338469961593849668748629198928238924490957456512322486181025424631688452817445345610645107318726178171791888591748755199397269342127251646771243493761734020412853593281490942163018022748050974630494080514468556811573881668559298643411577010149035020936324986326902610836470921468897493360310800552342315636562109841089586831232565872971884193432438446511107234762905247943316595051581147881777767872295769023837749988462126489519595259472687343692119865454723658202896413818871333018566834235803848980911604554953671181515928066992067717885021614620204732239642978522240246185672829181132101354289783267832504023528816613395906628123852033801888884195695298397990484291426180629031776589605932485277356949459847305825276304306054693280462480433197670339707947974988799534690628170386001997478208542142269914202709256756410085012333584183786644766298951002326362793546576030226839444909378955830388071834294898817607880872613101828275207014789937881280565161455034030070934066943347843634275314130023907892823249096357217285094437983525484360139138981426169066007925361557529012705258200622011971556385004927776304258914435244503370120764117437782906200776676052974017374980247875370402052664486659454564656462221563047677346468434030498236907417831196014167879732191500573560980640430334746504341617314425688610239059070419451947714324821542820326460340445660514531376333290639229201482213385607478952213656609430540314398880765984943647266101468051924226809040067635434035124478099576182402336794466436681712549808031321992788445794012873889188653663881755999657610046741822428779552299572576671117500570831588240782190404874590587032778932814091637493711010185155237970336524406219782482282575839610462494747834149194602915201262584605460620560918951228511909048097606522534825142699660694272675767431101020641726511379461270146057591440686914941822167544022700076935227127215511479027691269813330745810526778147699019999184789809506944272209625760888852230684664680521548658205810179386989130630875975522259595296064775009443387095597863296031955287533411214207334656501533450041327745093150709028300949716127474417405538036196732789880064967129219876075963443774615531489248801969867581097116730016545882321401232680028289883369803899986459248409970124777861724608449358956057121658502432581044278457779722404227009110381729666409155585139897033842082349853681995755516324559856015622900649992122652481949811346918527861434046994354516694984313442228597655005754459088634202223304374424532488739747539719894661845034810402117686322552196756719171433454123930312454120588341242394258721745765388681403236097189889703164127433755268998531690720287521994357202300778904921080378904074401601292197525581822791317093548870432165445812463783684072755635708343914182209013661819905958385128681857377212089536915103982033451493949990797572859360093246612187835116990042606976367251568449744864704697715002211433574505980998326824824045196546622051841280119013798704234307133876522279693159566477387522113526173526526979455851435182653272072716066268725874651366216229535931203125691141062227196802119088977663421021214442573758496804096934746087952371616933719810051914287540124064127301866221065491849993875766238516265583206609038326164149279291867062505385817704840245977072536159814690704228321590305125343691578639038605568189965611467292385465716389312860452432932597915414114251880298119091046719816647926777510341234590817740206867534991233307609058321071214041028388918682543279422688935475726126278054491085734794731718001244177940402185087740375440762738987275626848770396435363083480606832542402940485983671228460256869698808478076506606104495820099329361044711052687298593397616797413760215986697763163656004204691339542922395711011410613466493529999804969520644288169077215767475350922322690342390325090013289991823214134258338604099869218746814978148097382352012798543003478196957436207775389122663317524813689883158939220973338031662045088988472785837042253115639625780934011604995665286413611605107416168125250687953480680773449740183968018159205941532916676806265635022928384318128495942008886271618488917388424781946427589061505612503495038965129873618958926981220087368169757089498097662223853940817631022625901540899740905098238456916215120222127904282936200939160171693757744798550159068956029522893921135524433420094261028845489554532174126713742068811261130918081269886204115737413428056044033637090219476917405167888649243147480317372414754486366230211641385133773498752805485679636382016179850489588249640915509666352111031402508790305130754135091598465709708707362383949717177721546529132944428212455879646391774728085827729683113064923476077361940308352429078462735097124356249408400677229217635022802198337558839294223119444447094127808490561876354893372168099837766328783973971623177563664261921122113381372368330183732949579122609347777182027319784265927192501994009631227820307151683649898549701407028023796283864962331030409800281557341035866222440419924228792090747127207946565926118326740023870537692791319335796731559283338418124417337209468513134227147336482585271894098959799225007861211655682435856160928209232317631089212801920639083492333575803653319346796715334203251257365435242256032789585129466263224450577467167952395834669997449993181700816267203356407245839305242293329447269496225017859262315079735067422033192719107614273255397965480833124092970801127706307590726363181462662998954006551295882515550107827867730667449257857477524229965457724737565540811931981358201903566252195773796845850166970977275827700274532530037484396998952413516015247320704933024818183583119909021644755062309811503689136129660119569926452854020997684897666675864011217610919717426771063539634527709538336934495297957034174225904970638700470356922202686132756390310357398124593318236404712456893369146473517553875684960728713580077373820325995219169692989230965488778361599762739027751344892678463436238130830729035584461481165753369887316553433312009012639223312632356977932968516557436215144348115165643998569453336878731921733137066248612201661147951882723957441893954112293357013661088955695858006776213672976583600704934158208839920159307614168013693574505330176690945998096775715258334919994187720883057328144884465338562105250714601406455739812733280269355519446317447455679342704808298977708591603474672195855781726706272199747344471383225315752257981751854435300308419542434002098532099594939059551691087397950404463441391232256629620843456855968994345294414566257390919257276351049680790886311550719583638531686608253679246111607274607104848808962417027260427287002156034734801255760053574463481393565016238860194333216249468499294748542026272713435248448147110330260571804144300739694740387106107969071812883228971853007426780878656835245133457337056464291091197417083706115467760941091993304666749839454506435471852259522872091957943324271652738800551103206675354450562190660598467076764650418733699544959114307446735781705973059645044877440059738318382671983763880069255941631012075583161055489405828752501118536446767566957904496277323826682303742860550014673704066161916018056528218582163637608410477301102620808141471577112840833762737215775860712272637461685746308639188508278417456319711332104771965708431797708578298673097056871540703036471484662749165161610410811407403238114341677761249995704171631422172524251510936985833742868950457058579244576433955917933063551274947047770909729989716934736959179073788377523839568098810805017265053546668409676136315379244623434208485126466849301617967648562128885396041064211033343759419172161799540722647333387289023034951819925343276078856231781440550934007694941249119994288701588256859279130059122583562898875291389755744743113284814951660861503164639326149121796073621452355267036623701085633309448856721512144927268375751342439587172140493782934794578473670364734992323808300644947747645164588612655458091613020412533015618759761732389414161417844009510523973664425065598022227595142475995099983456697611277268617654593399944392099293020488695296931767348303196865406871829799118509860563769804204919929354131578127688430472112319737832462476582087210247144032942137798514529958841519499262580992145391177121449102055598647800938008910276449727359733005764412276144021158408727035031238036571544237746984265677067237871872878239949161237734101978578278345424737755953573917221008952775574898954531802417687973039315337040375178063720784586656704112247465114096158698170989481101498671681315369348076722731910910426347298223483879563933818207553032641819997127709976601879738058449259161024763996534046259782512067058368748002150856961149661732210026729888893343996102841587422327121763512597181211739747385988679617887940611756876634699909952982817984786806359761097775896677406739608143872158979070377468730552001398795948795672532126943045636623830427272448131373141224716908404238330197797602216037640170752232302302862452094895076696689835994433241686870845585829926093520313366600652456714530849635640430500766514222491360477277341024626413670087506569207197928926588145578711436867329027045967863378417768771517615252423869136891660720129513794017829771083397107083323888292869540286727195774543572562803735085270471188559127833687510838669725247426862512701711564015193144265501285303892167267387803454404556015593947827571733959868702353578857881907640892534578547100964752194833607885404540390049698888395024650086039874915687667473890600944012747161558914744817702808886966485682061258938516835647633493968434951977589038221650041795885735613242971340306204556356501396235845742793302010278610821714410111422045572945381453447479601770832052655303869160297280564091567520122501232170003677899040577364162049472079533656288430379674395332907057503554132005813023011153881007666347890964401771252871810797028900772134312091752353569143820583884871731351467686421825198502160305415517951455758168082574955390974729349901943795939344055104319309916636114120898768664754113498624322141901167974169003222686181725581620329655254217004969438801092054543435553872571323708266897457748604425224426890925827691746547474572485726345079748633271190846576736016048179659879766373105565612441170607210949078081809035404557166359773162823090682829056053639479561164874963402167941066173813721102427676620061689706939226378424813424644660961901153933130672607179512496574141315676159911082369397671821335035319559879354257965989523951738146955427409379875488995611841406075959594146112480126114852498867199633277713829343978267097910680098823052727012881078867927968341250465630378084056297327177728187964792686448433227520050141185060369329138611475358321954878491724894484013229189939581586315059987600295749622891612251272803797159926333569948273654438092575156268782935334583610781444609718871024108395006723954759944225659258181862382086263022760144218564736990308216151688212386675410752552542370351569407934947718702701962459825687746176372490169917693665506661846019900780333507268862725077857680974300531178053905838449834040481513493082932579345621366520944555272806114181783199650929604238949915514065033540494758804138711867279132147316139264904156851760806778311831787966160724366290941836791903765053435762874311001950283484282050266521624158461009923735154272610669621534159649150209987571921437686151905295810127181825516368843709056181609736106207061992883663846343374934832634486558223694541621743021956236517755469521837561119569474866605478412367828569909660736343959989260301354668024292002335811280184236583199552620547353529892994133007349658734287578317308739747293175973209706277570550622190261225076919275440287683209325846282191923860902485838271447334915493919932696114900840785398281306723400095470129981901840937687363696300192307897372780982937808499577974325046291399279531193732047015053686600065806110574755505687617708215769910808076688303875048604825153610885456810150373192287476976235921058780732009231677817316096897360058927508952845032713916348482656141723495161502511138905733320046238124259057416297529017409822399890410814450620140845530297743713468845100746851776553004636508213078195625294670238264202868244434848623503911443837896013198653991026198504639298837206897078313809042688307497750641673765109810490286141099949612237981485844627886612246525516227434954742717568632735070103930749749543905405485128156649622103559362851214930689546965714995382806699601244874928073413242980817385071855366690115677064628897053421406621949482136381198456634827268652546907246451143322180075991530458615087627348107539547733691124390539785620876351336351079049112997635827994497955844812930816147295565132893628938933362967297825015712077305118367329242106623050562348871103476881756095748595988239411788220534762629276051196901048968095158171011275466569717899070286230139404801964880298866886322549945578487874736173559470395651112817497682231358757851976107107368627579001223134157153203642615968156184777120935634507997641475957525329243413828278479312337910561719717547855933256790689933391514766886447275006435440272561621914188081121140653700871755236477371151448896411993627674891619208913581341081394402032835993115655841520341570637747079983899396737977092965361449600595749178736191180606311903805826732617203051305935538412780315187265808509681903638089452264782495198678400874995098324146845726722487949824734475211415506351145012806814022095221008552673488434231259653347862097381426067103692822156889463189778198548196045080573509248387359353522893052924594725697243001770106933958071743130611961612093121558522587564772557820191011617793378088097651701027456333087065662641099970066782758236876500148155766214929273843948506161970852058026444582330056649657496882508863727361797188901756566854089088597803191460268492722670729721728667371831204215423274455034942007598690028128275188544002153719804417331607919571229080038106909365505089186714063407956237807300444777781154107732703924440168468545222413773685888557409675597075447963447244879025826763385403842208087346074646429356247308515461701802050230837375832797103318235891723704915357329204552869745036503023446358410362550756322815685166830288671988990134959932588038443643545732433298694277935575917591311122057355152898208603143399815579903724774608534698106679439317121712218121660631796007916709446321459733556027188481742020447980913668119495100119812181663435566189355701531793584154260769366115083740070896025753437961050885420349143415246808525729570049889881834142345065044431592101229734032054955128692615155456277950576518106022367724914939636669009751390568079394728374928426052647086662037978456935198067952969281923463304621070276093084248491190065847951895517514055066548328739465449763457406900367306345314237778421737256060791583114575726224438791747681986146204265008101841400815944656227176427562302668337236421877327097713341933325864574362366264720214288869812309542451638104005136850311287532098140207697079021501699557250517869377550378275394530509707596946024911111947968127542066277212284561925501970508523509805367044147518076468120959248493503600401247817832183368772398544791609059631962938723102766434087849616360997243726905212895299187525601082526502453882582527069708167847938728551865967851227107257294445183312329590215998386682220619224437892287739814877732365503694592679813591040111990084824637602842929679273205133262837006336072378279180380377417966092172754260503935872933527349858704937782980980921371194336401671165929127868216240838533170852336481826308486696280766644574199280749610722526421162360773342641905168242392513936047149300208986436396119146520476083612674532914544144458022516904759329386185571893140514781419449039524037348866983496495605657258941215081550748427497041390900524864303604286733929848652414200607066202683167709554474002982631539290873323167783714611885668352652925387971480869852071154194512120506626844596478843725484339985230162026476976612621205603657262419621240786976123647789988333833860960842292922449148499074728657165646703424635877627686449272594171178257055235159440309496729856580205766011329897814519997151271243836304090487430962909247620533873663549544277925282460521262459994877253427254558184327139862940617557220161741056093363764513296149771467670838085781281676192443128209217006932688840793311657310095039699486269372764171183247165291663802264008315018246582252012210559507747518288813258938528592950251396739938721896946892802508394262244091400785601329979263231905463251810038329503058221072196098671103261448084592680818366767356155616598978984216248489169845882596821180679873490821240478497556571907972735370661716345638500614073176103766674213238131266511989949374138388156001536493713696231903641954038196207603591193270181370551006340062180006835672863053395292491568037844644682520762623215996430667247555261657101375498401532409330150818784414055770340785644120815887826783145234309258880559766689184450333563109949171627564189659869606359974905524447047662516299070166070622377418904968632227613344330894399158428134313865338012064332762713660406441256688707743365274615980404971872751989284382735368835230163602057010939106900673938483507357327117990983772593213755083293447615207167439226265775387270774949686336315146818175510801929711342340614160488255875638113663754030789707148067470409401976391759764122409913700981169679797465085273973111161442419917879405156117476159536653181213048872173048520933821452447934350337486891819875532876476749939983571941349286563675866823508768684829209751278038590001679342220890697906158985187541070816263441091508112490492240120700606528494546610568345270143056607749462426354022813407726753527290553177312795144808749629058832707622829215132481871425382672248939765667838674652434721177621325658129560720410588822855680310350153686690129335147481996856535468206817545116285731226674860309903549640875907219275452411635455498152906143224308273789549397515129254870972738276961863863858278729937592484467967313785502258821177427158379705371533378862035768102964786168029844890466066314525892627134263052054221942652871407080314196762832051362605190817845392775597829627219205340370415446007777349403983441851115600412168556734308829337088785780586504228650329309040674675660749344470655604111668566077223989663818697966251207303180859148194871698461644052226850391339246170567171016741491122020905011236648413202305869354273259573274685141229911384433402375829902419438194558004780819068508342523550730662627343792911525102342974851166434620239462437203322352792106491487357308725148377636851848824842234878249344158224688445522569292425715984023716296368736544888484800616454369785499899518517678520645915880750714107931537684201385701885206402566370259728181952991633943600704433753725040786361848242936829632643450229693741618789875795970728881540199436116034519335038439921792213959220517172332211904364506702805895043803849757414939577730228734832582683754857129828786125360179035979011574870832325266180750222462112360569555098876845278787444503572334389645006000937882700463872386913371446578160251058513807035244834969515121114710804318561198557556336304621863921105030089599062150890617675973765295980847192935576321787370970287598145083707061073008480972831947002641989357026163844132624346034869165899500634897286775402139625311619857187933340347317572888631530529371603652969140018605869196969510664646873923059227296455257352795490248229789401934790369276521365770098887009488073231311737576616874340642814184588985267968302941883466600039533332394332964801583618400190464923766172682720359016431472083981240707413747563877510212410644111130938296789729653835850523226335965005449150407075307922895001725585501418186313211098708545158468162758088250966701972114468293538105384398844763560421654908387090887590405028545899941342939820989673706771303639858362531143744517736653550527553235569267717001638881178022338952697976282896952637530975497628700516250843208540870856881081989209788234552951028780543793505653040063737947235031229273994476411610906110471161191090845617566953066320921321799197145181131062468121305938496962967505253216174099584136964367183631873101635622701256763375270416593938525048732926455812871083036617737989467555915650605353286277783820334596511961850692682632834264879106350518808334348791514931487490058656802347801420929207037380730360678031869259236889869954944304826186701462528561603443019778610758026902654260135875973411892586284958382498016248520814789434389131438778631558684761395876269335920960676268664692687387134462220802708156317824632158109500165809426488717624172412377747371615521507524930433364275912309820080114873603365793825279333487841093388334716199492273385145941745681764503833684183099389705310872862360746650200770904575471011694513862025138409903246313671505482896998929637489619026501709258713433616931835085675095539768343379521992169223367385863662466663095304215554105823363529702244289515112211064189977499654311598934848412686118569006166077982710980191715488314108210749367710135903180071840490932948080613601373016345230954414751646157623627660627207506611355515522795683319201136751602075441298541927223460434200038329936054574041765154403590222547773702277625018486567338334211171204913987337042287346653086802190315388121575406660307022829640464532216512081598024993991739140871448441973665693813187384625009198460646866703337544342600142155429704512360526357012357334123554453838575017200574951421146383412381630151022363835913565869937971223826773255718471805321841752637457565193189308201905492008534107993470755480115555061804688219603033818809312603804446849985452286323390957660327338548165937270098959970906623376147615333050912954699359731945580286295345136920324965592184359500428204769434189560440411305593910739771645389757403103728198947707163902584980438425307850827609342173657252527454963106493634724993209127888740860563144529334062735036519733438007305040470662579434894500388806890306564759415754698433897839180016357927704393908051725122065811901262689349490986027353728875694796369353522812609159835199813239719741145406674799061204393458227178737325639256380789265945522407291531951822115749599527828202731011037460364330304107808483948374211745204785836414007104889315707028080920251516220023295733713455101951517894428630107596324163775492285334916322558021028783834139704580368676463961010677290357876294977471607459083173993592719370985560021474734809920357694012562863784119544457436234704627199527194776260231790526198934424238777719131425493222960775872808926342085151555016160980001119752954484291038735890815318874872082434636604902868968356552634796229246367155565568110352318715107665807628350512903124261236859079032697594888692175121369113224186136449267836959477087112806257767363512072419329245880059803307640786107201963624754400124449309277489439695039758425627316859515752557433553394862520683432623495592425544153100719484576233255722421865620638004855288268438843799682701664183307148867251044072400658540258921474552354793999884387389479686581743936017171618554100468943305619596309311806699092635277740646100798641462427853066848566961063552982793899043109323306135567689122099371109853128378699020375753429325818749882517603001578983554522553440286451486399678517244351260989973210147907008102103109758489931813121294626346697370511004880845522967070428619469303950724042762334162610466674548753308782745104508383942995995215227385679895072381174504691290460344843524150078005813073217773294971563994135920918587801085340765403880306039718742601244207447364238107339542189615339624199858246206339384254769015594893789586083355572822355812451756487657260316229937698507175342151007364869412458526585547745200261332988435655495588108692129499716375113235789224715289353634826045562831746801988843433558996412001130783086095400105920785121353451182047072081438177128804169132087745784959086187521083992576594191881466970937773541457407330538665037990399222852788838273197135541138283797941319712385468793414977577855027269742523774513860760492059623648143582832899715986298979984703110215622070052783953271849650786724026522046842838354746627207931183560703171739830100036408548153745656602639052024653091290898481576011900201126138765205109135951586140018815369376172341633739812837064897571664780685050956575217280338069431590580669780948795265967829434504860856306386533060725422862893836866423887169408778885677190107831965063774184424666321292211620966178141019374921426912612797040534155000987212797684508412574088488543497008069685538629673197014459181228208064302404291363324349983175968877543315142874410027862091598793812198032984326915780875883106014238643034295406468186881778022165103970334413574087878639114414288482019761414768204894954025181635617403698143768454610152644626060738620875909460550588168191102318153352581633863287570196954949289246222955960166370840370804646002396027463448993229956563314810857694123023918351752889368291009782492577567221517171855719782800037678131385346034360436443945817903275602098309085448975736473177138760792956628659589557019388837736827904771596177144490273539395166372412141252697025725376339592744960494620476895919877103297319248410477161444346625424805293302346587477523768049777755247889368421231038176139821226714921444703408978682808080249201060784633898652675460860619032846935302559798664242540857630684343016305297064480556783382276171769997213396441262135470736046363226297817113808574496092587862133503322071387226696086061238754459263868545280788050246496712092714776357689305817536018200946465387684036410593179386494988160460747010951874506909945815497679454444054645537419838574025443482297677408041718810494632847378531142534220558522367824007985491700943708613745968093617409643800479752443396133873429620808330795257322975739442359193415039724107293574510471516295257244841730802410453840731740177491204730028006788797570127980226701141801345583221748244878288624570409297647121860282522918160409646812448521774045947441950677042202019295257092478968157535532594269240049940352784610537566406298772006659022616230848444443439745381630080987652160691602527560750653069295639788651831711599837041613770909667358881878705397730721461461871509335420717950411767088370289688460115242391003820573566500124640738419332060215269258920506239576428576619661301833921827173342581416898059855231252054711122237431625849496722201897001636649438539441922400420714721155475729866324826721615194739636990840614822288179482005048262364871133108730313313845890417931126554856515922317142159178531971878989838455163921397162335587138331765032357635022160281231270735559468282493292462443380357043420993572084113369927728558446185691670070519079457348257510169400970044688660963586203297319769021426217735817948222484320507357669346387975950632376085392780388737986951737924903975132113781545188382672033418731940629385596096155092843236026042300506401094715357858013061750118468851976223959889532728339058714743423402147973413028093993445225375976298528340402516904448697887405980887167735531873664597343842591140710752091933551211541286128304588731520112748727601829377819888685525011088863481786171752662948107607343374120598111305463625339170394419835377393509058259436781388011546524998113042410839802860355080468287582299412128659561860928699159681431302325384321646546831972443756681793489001252083065020255539205411907988830638382016671751055239766271581158284560614899712977147862762033247633351832817079314566598535239542745683152678981684964663694186620564155108401690365992290219104600220186231808416881890647033284716476499292674688522409069046634103985295526545691199614388453693486674250453973493669093762633801787307269142109124354005191060990174730505718651486025269703593570776261922623114136074642965238209333820456264962295609269646975208667764120539705543676366739426509144655481408467954285589069791038766260581831882011007788480431763015028066482617747333524208816803950246483823575811493813817483874328711474739529580750235562511630793142258974805882788126705630761346825380089444946870268627283317927224584664036973658190106927316312651988126599494009348247144448836860516036562706670891328129189008000499190403215902804214337307494411450472327431688776484183598122097487994436533132576711996780697887246131507645849380322184571262400816950481095288542064479975987090302345500512413125895890769585959479429267794458305426320570861625314089120808060818546654573540877651233994948863591380019911703186158623632646697091282610963666580500608904404347241721529965283314977445633624811363478225932027800202600391594268382464240495510772786017394511531320263737533229712742864783641554816011203363021998721018112310047378342272008636421347516475009597612284494177277514227202493962592890602525289261959747627219300924253483437752394976027319759270663807071097101954543995379608187151367013136293979001746826962271595261681729953108786435060801150008972511716389982164844880281948996248824836657397183437188433118789826436161947701343781971382082850519359412405884739383117213257756413542201770363913443159973867744742719976096715409538361021343244270675687359894652866710455350205471453406214335653126940375420116320056604387801843071444873479736451884804372919085287101876889666734068666949593894318498048873589074767006947408182645556569609328387631805798621856155058352934071161778043669226463398788468473820947137142727705541409632901466250115480924436670372520688150846742097786427617478018760750079574016581380081715714394010925083766188174383667145034741815603508194608744838959011039008212732351207709960790188891397894878690717656606876593983364373255914294440351852291225158226966453312784431003898393591546395525764716218247648334397104058674099273995070819112318200241528717481954674477563836016985373537504989053234844880281325900495045927395724420433310869907049171772111191141465808762232764788881757215695274066708343898687349445146691250858623038618827279030274121718270479460032713364044095341549770548656519720053651753743118192243316101648317181961686093145452224516226523319624551194974244866639603011719540598208940753929107500478797055724326262221113342169427199297718622927522290682414665347853409219628384283990855064024453050448449741415538295790213323989329419230727034741593323130259562505470840691166208053516395543883294758337943805881449034255653446480789209790738150391024909368433946710943252188442345373266529183640653165736563259626870704070076803670573744003647475571644559693684257321944772971847301342567352602351006343347976706164429508614454010050474074949214171109522147583371897115792861870276887994586259523864658395539942068655112894036814425765330800213624921812423473627090091976705146011193210481796319733705558454523485561027085723198394902975801984426924055839899928455631840736297399816380996025548198362407630757837748857338450583884547525789170278960898084498509070175904476111627233918487769036249622831413839615657246430809377279526051804898980958500964414626435085063294534248496535732381146340312493254274407261306611470251151396772917221904635657062147065069543394751337981151238925512160447782168118740602884374550272207794346943331750568885421419411951034407513387977015488865849070327418145605479633277255941498311107840292271959578226553561338623000916738189850973480674067270198024766153667627137398007829704191459326397278574140015020593145321420364989291081103066248858594305658249936869459203402504519604146570668040284881834348424933663738802451701707557911937203039850000943720248533373469170466646966675310421263251449617424363436785788279411522586991441080663634762945323735152748963445600646045083331240726843875729242952201357341766320812593824347715876165356441698760742396537441846501637757531569682951911731978507325463179934056567286297913052857438981829726761886994297989381302945010894636303661283883292148910811041276715094463461464287223926111014992401855561535318927138568648433793898976421432277334454540159244671755281908133103544554952922344652183891626768701284891069887040025691688792129824582459207771903870912432963309069835949909981124800488800598310504888148736639131511661994821072413400103466211074616062022321438830554522785762324751646224852697987578187070308295395379116696647948671682952129427751695947672052545596173588847385635863604800712212496476077968305990953002578906683284669072964010695422076135878834286853048257940608330044221477769065074674883893697877535572573111472404388881002063402790258675461097452838164032259718285045180693627845677053608746810343808853559124940003883425962960300635135543799925872661654989700313567149730548119997047488885271530847333780308793503878836686252927721236927282900979593672734984000874997962033847142732827627939015312336867782612817986399196120445032451073111052653617865150778575697968314006046343900560281385979185491062315046207737195891274131652809937621350422095113593893489569418159566178222004029223129609254992009604583892043652218129403315653478147990396754212050938684395700491923699906688727169816747326287963583816925292950583901441385751127413850281297082747121797122456569470819471140415074509431555656849510180020223716552755006860281765417087425087759913852174260787069831800284948855039006145288731723885871320828854259697225073620515691679924955006527012544819062674923548618635901248650972819768772442064738637984205296585698118542468923291652727082833199885677156078009707333035779704075375520589827001145061158064624453462096909744845665601289691897258664291020610217103366707997524000903607348728047120621067717783510669487542182220983141447614574468787466269984203667728945900931435306987679244985814295505814534835444014937135480036876822326622694001770834525854535365469033151259452929608336382214262961726016965896838625922648152231815250994291069083687757362659174974931805876574606260411223856171760449399673204753044422416075095593152005809032469393500839844379159416678496920941799597432095143038616224293307596069717283528333504562714819724972303864389846798894620328360622143021213971293282517083089755365803624299642012304983202178244018656780362559004992714178485459477551814606055143918891151346592522802314780058732977841972189565258164659648990427707625796465195252988632977303654851926883452567393477080387009405399770639144553662936938434172350209217159515688516847645053943829994874936736272847753351443017903912241067522024517049683580813940938851263240137839771012998564935086746878455829546323630369687297256519815624773640869234530129415836497409388214975085506398959266576871947347352930850945033070294468736481022959668439248644404814814600411430370639995246687395712231039443463014400979150970364643430846624422394492287662798224392473206822445494844582515879049401588474819808954453656936980726224478911854064757179488963116967404868579005896728399891716099553594918668415004225092132820256282154941789070239480542728555552582141245572074664078054059434032764089153162320553586265943167872265665846843299764222694553066441030859742305504246956625659154225397900276606836999947024849389952675375939227401212514954770732786544150072997541856096869516666924175452656786850938081658917453629213653784051191335675293664134184690590364966850346692765389000904175646831608037739410573254397990636781775483756925722837125657879951948003476216073202298999311725624987853874717185895736612977456730314028579680119446143668114082427161899566296875298534870091588781273550147779067600713773083901443503167259822501174852515258430462318968744682558208024085144190943644665611422666235493701963568392745128639908946880851219799512889123717400492179373041484273901823306625965057580173001995103460519398761573207125763299071466874832492312380778868081139918733669698794754894865361021477291631538345091546274830605874074569323050236655697189132104071592243233403677129984865739920248828623540023777480730232450969373235812862686086589413673293812852493432364032298898182887707800816407046121024449059639053185529309153092168359395543729592766677958747994847394501302619580788250139161700157163049084483327091792789822863957791768451040178996903707009894378306082313800348444526011002018623036267790675948632409372826647187052178023971894885968425559651602214896363164022082312505445439256391913740120266167357866508393357546172789829864839986047387856502407572935513930128627703579349406878722645947575527243410288534149398246634812444033811575621366056966984349676777203898176683725488155163499305279309124975154343981881934622163754704832510968036198393403863515098253400082909406092351659917683265251956493393929088237923234533072070480140447694688036043370535483287487771987378360517856260990860358760318344479137346571789378068309676488573496936095590542441284275449021703633106641102695289579536414740583592329608084566018580409186583861693877275020326312247826035080386438905705398753807779530364193803791903791060641823565867727534640265718272208360202230921463482344337835232652318003247764438315302857154235316345971030971252989788067469994538801876702624051942670776190731469519199548439196664698677257603461285886072687658689517307468504274977525611020758897275525489096766175634369249609873958716896336722755006232153056532529961237215255550303054265275612659253250211284552099594215284662060566784059615542206759817560698806640781789196314928239360908268581854315242292370535966884419366326686750291840688672570818491435393802339118158648514309078314310216066581511971051519067888531674060449671829736889371510232881062222378883988926390499807829232061478746404190644377733239494753486881094908849563540005822111045097156296127766625439713237167164226656019872253692523681900644095100792273538172820535804232341842119982484460632735267174940924828062875985668913172155123559504792422477850512407934489159848118906632432701609480382982022165266644447046818078645081718737724686280845547440125814922307308758432952223994358954898818425602342561584938974097449519473643391298172137809381290132239514457798731489288611956595277643434818104877427654025515308228910968380592439886175578023230122205048210159441716882143818325816975021030879888568584892939078950110189697616773640785796259068046989641586107807838154409483039911379498623110992144646584731674443694699545575080273742162122107608846304949178274124863919884761964061646180370836248687840863232442250846272871768300956678514111213058035682625939735922633159333632743254657449225005797851297291162871439468917497344112942264051403754710400433716480666692427279378649252730262431976188383950996272030557435110456196327765720818578197925054186526716178015827835960199383309249644579480508004133732694745404647393617130832867507626848769946720179664434856127727778485748391349071752003788360723614619411192972304297337279171239064348863786504205044894974487515541081718269170127975755219914877140707111066699556384332684952372475771769136441695158682924114625141975113331914675206442350794597731452354354526913392287129914694285614449002176826353771163712568387492535259852830804947708025291303835446996865503409640011508286547097819465136214302282572050289942547139744620350109536487646516898274180610954487212713361949715329145941425581877522474623675381129456560170133028978957069741052264239818488529310538057267380762029690911771292741237731969588113487597941404459464993205289879961003594311918513949285319759302963329689819213631876420278061020235713389114752328992388785705916593848214102871784683437800643637739212741627490032045192370525563016225515697354594403769245552988924549026227151234600621552899167113365010502310724834737053869322679258783492957985074820824629702952703513671988855815983489384729065160116977197078557484019546582348649857628289895725062905586074959449598735676781601518749991494081864225676119918256003676882002188081265583249545023526129762262902704379117631071643170774359758862453878189818490636528026909120494173203782861959949955105283668953994377723232560539517990567508899147352764506111812994859783857871425291849615984797207405533367978683854770119010642652801348647083304489736136685151254380722240561819263557275934661292845071188193635380330834028789178784318294512300788341816165164303527333406878480367583693050198641142547699142608082245997168836566211266184238256594544527513901676221550335371075487223470978037288155692412415462818094209280932387720034837717582289999786591151681700836280937814223841980906790179764443365671160507159644639103786434424949877575450361406902810040065906984880208392664654935270448251862895631841222507136853954102056113487337338341000426651664870489125216799463980736113288851934002302461121663582407144418616797238545525265241463692845219765425243212198755741598861004562233456518559138719067306180381689531464538709674680792068045991004770800617598526591173332578497596950963286751044342686353649520876131421359336472218177826477447758063538879639957568662690916018789772424276021818569587103113174616781692586794981623109850122139969819549996982108031264426785960229827245341777014411995063706580131273789075169336777757737441959217342757841186651884184088830092592385193133716988468741370160795920118743954553702595624454045876251359870345749934655910609885894616315196097058909065374599603774424101697108389594605882950561620076044730424988863281306719522345108989205443904162797786514604874819196789439369721591732933901148160437673310885288837781524484236276149630916550973847236178018251893401988132738923940744092752791548091445618045988114146162260728135446935988447287205945250283083443858586295269290745276121103102362872186358761601662459197157433379232526685173860097316475814212844964977752994914267169825097939617491949446451254005624053342481134272731368437531715540392113556675327896133463183586498831785329009430807394890279941693223271991177472162341211217840932268267635291067722507346605557046641778235706828290207951392118941386107420347022337785938413585134787870583103054297159753091435100289914081780284110791508310912260929163450568007523271723344378123510473146863378619255375903115949800634136266744413573379488798110982115497599846612133664915606976170189427621158886834072601312121230684346890547488540413226327705846619927147139935026257034982190189032666948824692020581189335155210846997736870778177554647575793982760721717724075435088651071453957799831560931291863744908488839701187511341656887502491134305541213547308247210508000994622444328812157956568040002174922756880385246040377720987782824709610653488359072317250550280284191453427768493260438179521678351896272302128584651637950653738073947118940247546632479330708321268993904593528786275248631779910428915596535576185038800372450020679226476354775687013755354955330123140116897600368610021943648361576429379623054077386425323667712191492394457542170551033613442566305208879639379680961120422984980645566924481761731218433758392809114789714197048451068562173114828639215228039186140592374840078698618160203540714640113495093669385095704360488006760047275005206380326651227776820492941094559258692280748015992984122142078572694037332258789099334450784834667276324386398805293603674685331350742919341678838433920768081176607408364403766655629619062106292960767881137569735385846024339121905374817495761218882049225307042778643017097656162077645695630326046488300240429541279153257350445627141455132280583838760621192609581359872261988571413775412548309263272598470208368298700094221697319039902860729962965011799418539609835928064119145981513659821068131589200650714724961999341659144342905215103569367501473928535106246454281090881937432862614073608356619438073725316981138586388025578440920289868606751825945060024225535757352856600291737515395662009660439380357866618068719689781313101327548405956863522781869876637022077071123288355257607563700765352381379572512349574348938827079404374771373442851967568376507435516185089578316580752009681388975073658317165322478439261250776534199150239245852734772375045882906885234668567722214866092255526486765085274111078726389325214665975309568318270246698132153954266754682267235314575189361581844594442047534712916441729123838177796910705477424235083348571949636469822672530265346303736249841649041904079980075147640154919904403657775045998706801634901423966196099030631165992453743048478594443261813391853119537871247601494046313826688903580760683402745153225050170252475148099401400684919337993018840949352890387708842168522755459924798104157093890141044057717740017955752288190975033664631322154951520058873117419571138841114838466104993414614402722369750144682816275738642215609573076559710405913583931578450129492909794587882212501331360323426587802628971906322610591319382666987819909202911665603962797850635786941440096032903689020600053693532562762403620209520923767863879161986937750411719930946287920059802265082751442237898993027999067417327295034071285735134094483469206819521919552837254572699492022192195232400698946267534573407216927812878910450053402116150596658937582136356848286361455896823192791407442384953366589498420764275486749732697602773467356061732824560185265717049644919725898482044828976621887523772000606424023763201804887805603568598129962138421436886627904775730584829745024425540936336750311321881176707931585925784445950268971487535381187700868281602782053320891774471343414443310162131679982364166470927458918603372787269349916440071204203868433513411881901521104834380420111351223132823833183736726986479368083614383876560008393201003372502842463764601652961062886561940140706821229982740193259828215172260787802448534462395870048776125385202890106748805913343085025344813664546907273642228093804964967019046374580373092698890508563827936494450104067939312719099657123900986885217836198615737730448644044064829932656640691183158287220890947912428917418839389163715577495837203494586529261631190327903632593324760367946710405426010925657294092649422152404116301763712066586450690760823798209483876020027737447593212066666713359684541997888381770857380078924707924932221157990377312021092806011602797628229719758941774628154285989508794536671451559913397015285663255830012866417507462281604935230595500158660308881208375184949920117442343095951698159788089337819659304048848529072837507006989985480043412626828685373778338976312382344135316896985225483205568542129056399554162925789239843108726365810952248954695925095154673297047865901720422152903055151419109148520426424020589532215389136160307371987249954635425712016527426363051226617959287934044738320730535557156450971939532571967886407178771703478241889511955724840436035183969893906813448779854014146471006325308830464024896722075368565287618707401200295067642123004911839101937151139130425611026840502765398416269225917548222974441340976503172098648722138497184599700268647214556551753933229339269281320826645522605506551309605507149632176408700273272671896329318781723733378821707420865445519082626252598011890498875863011770511528525921016602305093451438021371288125192048587830728008826651200636321296374319722730719048757545630837203798961961455767183894708827027446151118069024480887381515764763172371533182850482557089006863307617234896892533725168241078078669255145433703940492115639501234548027911933699599963294311097989736823165916240764901401943790820447827670516754940198772698540091425610108093626814789177356186820469646008872201646991885793647638127088643199923273189977640846974965079300823936733168389306529670182463027778244806244694587139043084751115134261749453450474574259734388888404493081255347960691931379002628550067335529470849951610629871718617763295496745166453470249101301377702369837682222980204342023078251629842237991412815422402753485117644331512251087150749950288061315934845024930116218509583477774476045411795786604962195697046065448057274258436065348882001956810102429836049279349553305143336612705113766609852189129603672556704322673033871368342582874622826430040796937403662610656048637230529404433760596459214336890672805817319381446398470031996664051183626775436997153656455257108605452508388636425526942904665004008554804610809191041989948880386985241282359778490271545254517247905450020741619107186427594389931904198082544394738334442395442448841536058423494097399359845097086465583144929027561466475401717225569966670657801493213672643143036202237744546909772714485737625569703488945303083659926029877593816667730987303364372451595900107341346796479392997656872490595926408911812551350741097668758767536346906390913606726049783667758690691431700186197054476156218578561230928054355805602398207973416387902880199121937777580492161009073207885969746083030202171185785135281539419014289243302454909778300232128233089465201040586608368863234337707146918343120383928497150816350682940241969319510711757156361247596577351075050123117808668653214341486710687939466469528360425406785499735466331823528788563727174814745086247124538368359991807131257549688931654220274507972205054163906309210385657457289941650366918255456466341662323362901462381277962699106071868303055476667113960106109800189197003144662242683822372256851516154493365067507666885820344313382878153421220985791416861437368049814649065239613095494201344746143132670545767805315596230456859357799561350503512541936389974677659487835098676837282475905906997154065447717899044102393833574195577601422237046571035584798664831594760093433805508993855949402736917858216372005826167212085011483755539129703892742890995419115663084330563459615917011277743531190995364932430765856490329536966454812479593334452899718078179305562536641818879814694981534198423796961690187232978706250703796992448871344041065855957478778071308654562599764185706516996008518519205081607662556542786447899335269859557987386803085460143333679435910768530736519376665221173423285290484968791538731763858526083580464999300337404590366016667402255403725522152142537437023444500346088147911400042142985156559289518527431161781457855047174826926944022348695639105693811973338555160434690620026610100874770607866753590479033123388319937429068934641779407939376071706073219074812066184767300997001004487130615299469243962955861468305200922183879911618605261228543941792832280644384769912906583650117773234889034447905663521992405899536716877027213530556727420506683347733743024054217573053039436297947339589126702399582234235638800519386263880815929112054785795441865209872048027346332943843566989168699544127266604126633826772940792544957028303729387380200968005320824845162655572187645041865787377434153213018431499467243400180568714964585207106794757283189934915056030892320897334650615645532578613918416122278112183465198585193259136220667906792538721267648053158976691250914214636248939992522223975537320601965851295618244543235002458284314018585530345471002302584932357483194075297432556860829825186142905528208117386410914065851534473425548437570932892194270359956874413816804141616330656933855328242947578465261606229979479693280140055174741493464835250373234259013440224987845317373016131783404893140971937361220537447975865462036304758491471136989967596181356910778081330842212988441752515739829679001121475487009879799922441786690887768888123170653920777026680153482726017510826926066210279108431562702451829968853797684103701865660564381156765014572388721242958034308378612044292691061254521040139974173879454875649507758142083677707709945579342415315850737834294190437329075987361649511201011654559828703420678109488807690981625406722921167881203655774468712288234533160461756584741438831827877688389882389193179782399920570984870114122992145180121272359573121509089866540330367512833760756964150674049392438426887133481181095404259670992620636142526844929262644985861435353386834813426411587460209840231403045369813708938418231295896241458543012058171381868115519441784838548927259461922250690525617083352183049905978143604728511425031184051820452211802346982218179810531911420416871379686565839792479827552146576130096585020809528942379771685998767652011457929041490164385859691127991999434365203186754198728652374552631151701173124995136486230360605352743172612406696183901927570807401342040075160085946300700718836487888121545248911152421253784739130215339034617525116679175960958154600676743314501689065980092071857354952891682484561812695578497096630642971697721584538715949011936488648347246461124070766170775064118404390943035077381022163259523970259548178485641396180107150070295764595639771009559765970179522561765633311007833163090585321613806822559232417588954333336465895180047613266699133310351682789817662264399720888632673608061442792533809756779731428004455719169401249106523940872297327180184125201700131982167367523880827368027117453481563579617735500193940666821518910082103650642713745760604123847536202638964533935429108513284424823918711795223048736978943289464590148648305163958251538262782903464273581722315912645052831309028784030073888278082904014964849172241674367929245262652377885225968771361713385839254564330346763299246702279030015396442094419517160584390726416946325787232142046984744192662453301670514822628573344251785293951017200737594862363092796698673134918582706782063267243288672247927353873862776264574467025843778266904631955462705391770643299664247800508415403802194175266939557708487673678653221028975326462961996969138404774428028198043120221234503228471002245522023666439733623828427270723407919168013533839278401223680582786132897582582642873638274063391066672079777836154201779451184192419569732041444433825472247230557489131639139161925635222313511093509918475293834270259708099612792004076932318042382737082785937984443048820910354843783786191418253924930693063806193690223588309186358163607882549570215213958242597584367707498769126442951985163277603875369108270543437071162665810326994188521000520545140183268646395321683232273725363536920093678575361766950839040264590173103181354694882576777178626860835983318090421593775094024172933619660921387367188606487499364255013397332635957870329654665598194662296504141742588167711858269702276842589293838045876571299705541653706072950378435873110267816445485359108446397410367312279160295588271131151583041449198988648028484005254911651424710716672049763444449750506763442836231054976003302004296034699758813441453349717948040536084557398539636991083770748992019661164238234258856794189908585578327935829063266096323435035757361510082360809115744131618500194040839298207794017357218478973625178858180525440176170100436584841170363942710593324912659110775985260519180935368373337422081718928482552501699989620068341188189527851010442986323898649047476161039613577103672065694160884345284386169225713044095251796650158974205909498643152223250421396795282413184782661905590542609301122426484203197993070822832203532805325168119699306940605021764121964877218787270248657268698305832242079745139474537200702867898469879503212643016254519688185315663678403363992917682968988948611663820294901926989157121957194895496248459448767890739808195327398796381930776522562706453979666731239875073017418659158253789247698009008682722895201635221688221211434901080050010496688881689295427603129856123832811575657888761214230800768155812221320393479843705800970413215209245692864667203769446781760599572320783025542673268545176732330279059715313417929138872465142922720201227942767074043633105807753545241938229306505134388026004463439340693717853328136656953029311028192736054425896630966458362827995142637832480215299397024130320860162041167552064433031846109419292108970729925680603450687472450866984697777691907046230103102734003189071501690992492563900434815524433139375105983481405448449326285612061486015179316046916890622595763746117807728947887174128200340675143871337052785666120289780006968120740107620200912159699379237385734250478192803490688701017148852024958503258747851689939653348642834435216497814777913502642055463761395552028956661487283229126615684639708911407193647569636929035669814513513273509202927567059469588984472179685382130409719267447542650883685005900912649916372826426444384009819306815329415507627412639032704414646035908076921361209169515022163421734688626664492589113222196906594173718793241062105975531781745692934144884681408146732888582135312438778045045194840565698943508351307163360672659763571831970165979296581868145017479329413066647727753665118805779289253841948697322004754719053330216802385748986359158829314967916417534576981798105042014259648842372907955889525903945862147923966939955341871267546143768074069313205058679055300329854619694760761459666739743235812598734813007590809147142790238731517471503395529481795256056723509044711692794084539307700424568733551321506047080662762112340443968901997814634236979259816113846358566907644975463181790819137430523630558128309517083022775101122757241929979416153885214755035907912174225739119785431512606165749452890892474356266166752934689458847215920731942329874809648518459170932345991300777379627386519931041772759447145310695486726403153027972430322368810115686736888763053199324695237771308858043754617879873598662967232374996619755008866869675493526809099137197853456185220086230412498240713488458802175228987692892554194996074128936269707177433938479291147136019181556055578862504692679953363006308210123263571651968888208706785085387188136071825343032045398403990757752846266627827424125722837653091572654530557521575660902787197728985128830650683448302163983442997838923096023955627022374526941377988673875060935258119056114269954460016912917195206467922354308109175814582326426008967012114516639313484055482918106231285848747522936652458363490182578450907212990166804507246537969737987222142238885841786693683724772017092228935795383600096741042007320683982742895887541434493147359406913472842904582713493534235726423110449585327694133370935865005515626146706167369793175092325138848864018124205893770752384898365252748092261911546444224185670411057401253953808292954283842884226176508953955287990496581339825004417623009317565087506249338135066912138690145622990409685874891895977469802924420625882420060027522450788024670583135824218047600448775073101950481729057248777394981804561901572885662587937356808329986974567940447777436352465308391338994098017284795223981961802042453564501168510658879993221691709949578086591743255966139634137105987966972640526409092184969340918963289000229928755200458217478148578110879393675746519313008916954895758641736446589337420502497418287912786273320742102966109866285086285357162051118104329323389892872295511506713632601752970918917442107402134948558731334284549822958198309131016887904695875640819772135307128183645264155596161102278160059419073251883030820307934049538146770782692346267255949040202190859194282963073980049229810174045980043690784076690664981535631237955290206849233175597495861693874719185506858479936024442394335605658622149858750779909229065644626179873328320966113975648751560907991639354744729114405217627928764698120128970206374665226808218261195316059560518563427197399632791329324191403496190053778207965504653235974870267791256921830302719557212351089699715057770954284784808852549807334144950232784644128518135913902689193138691727608004652296235477579917136667206075789341318146797018258228194631366291041505660114458682098002661442473311525109882996224421807410167585601519247118776117115314472134333649534445661702077297240297464004138589088818313874473223780437942501778988902926658458850848058309753797324999785314066764269920972470897035875563093226610499171352145011128646948526234731076308817703348011768470206871535980122901161423333827751321238706333364546054975610067819614632812667265740401708167458688311165930113151101671824807723976226787962668927326077755745313832284522946132626349240740551418922807590638771257157364332582196465930613267530557463761271833939921265629494123480630953924374583860375751995330759211851886306777748227510226412758054334239449045512946760965465268881598219687575582569947606173358855000629037996480035255904641296247988762958115555407006395477500436105858734934898406822281365049465845116808947186798003696567767970521399522520543668611401029655524057825100131188929267997961865756020558855839926937245325907615448838885238629225203499890256120222579943927575128228742060550826050677594520821866673274587941884066988375873933708542350611473255811259606087185993797221229882149734861954582785336937976024488543041812955014734172775599929767663709498467620407793908664110380973142987392831127536800135124059254884294078117950679629494373218467275573681562807968883484692207884692349118923680175724778493909218708095761006058847579838843881874546394900207899595208251639754118588003438220000544384992842840206936948843485517338325607751620168460878583281664938946849905213021733594681658029335398885073358164690632099086289917732454627144350072000116227210648827613406602609070391950267215060401549859898226317733511329720412023180332263542305695266896511753314535544840131249403233696663714145731981446902009624937310409712101409052317291493535709610846491587780982898124154829647586336997313799911828022888317585823973532739815240332056285189451318423699266689619377446412425081670810967094664370543557319492136357785213406945011781748520679010967502047195131983925369212457827156681095218315102266015582421411258853151124768936515234602035223643470289998576363297498185476162529655496087679562074221397056246711809176153493498272708411842793798676533759241610158032191248567372620079715197641683348193530792220303302451728530182280913942479806198013899834113593608711685457511757534708069860360635019412342112637817603557875644297390956105598108178721379751359302722678519463181639593490624424280132599064456198802072482248876453399626603520733473732366028510568172765555375507363580897717631155180678371216931300232207222162352190840013555072464924459642347655619720411417431258297066471195939470198496697928567042846355639673450183334464764190104326886815213130258825883671977519984053041274039037522177192916991188901501564393465805084251301287191547213025390594664836529287423274482837143066357598849615682166043044638194282773348595490954601406187455197667131610810671127135719272848523631234090929527747771055411065905903930724135493547525981202710484137734250943343770283691550247148749158570363387126599487874849949764214995042349564736230184780902702930700544170030292071864700945298603404853830698127653145103291710691074062939318033885792475253023765923196675789958893121406178118163501243234886029609899500854697507045493350633111398551610240789254485836466840697710051336259469140222653384303938479267015006537451172171865340806269214870387183258417219795797366612424245398831518190970169818232139040084078499529955703437559191074770642147196544113220307226396999615678004912528516337670665200924644513750150357685793554919073505414432925246576342027434300698090236881459451581224929972289555265568515093631056142552073158786225173050466235963738989714090034075086630221424152910916635795268144267353369954265047110709143188915483856417407157749599399101655267218039064815753526990680214045582995404981649149875763011251153269078839287584026033400736698779589920936638009574771045877947793141257863925933715427421234108280124175146777999039631828437815494839905116232805251487089806562264297641413373269507906959067257011331044257324952219838973867327551884261968782271726400646058296372729007571540106972590054845470563125179953697596273921320970820180007227848483766137333634308469817425806517898820856969228523497370808996828044546210191485136206931741013373491054912117218077504414011369407062546066984235515656946461610993348564384147911411921084441455629880558679013081457818746012353885246789198485100133762791488340934426564849413729477583723579995560741143693899310331892270890942913953232545964555987591965050371207693509192719966738198450061422013666579887228847422928361844195045780376253783320322875130491323874191976177859515771784256154452952977367175759232701968759035981063012212124359517871284433395181815061322657110136956391627073376361056940173962112748131456118334010346540689331804635383644755132295402270350181130234589482771500729710830984721064112209816139753679419353015934827510153819904552516483827666007946841416971798578163913196671222752436543513886778372390690753039590792195624097707599131610951302818328756902599128160296743085425439612282807625387005538392732852571157591387763432292701890052377921865555393341813392877301952050351058172124747789279464102870218232574076102810290561888806840714944723114756275038717420944551906751294044805349732646999919098887516346996287648524652684590433365669411930479962833732282018427340915478432393191246499636814620912474966160171475198872554543677539726559420518886904297035263691337676169899688185716027139865091986789145131055033700254347711426455518100585909713546930986380739082063066547187664332358121415261370902525430099998384524985617770956966030779361156215617043745641121954317131807340013045711055228331352160369551039950949111417047828090674351642067747257386815697203739354064783257802042761315386852848069254687680101016716825905166270937729289300051447617272906429390130915298596412272387510359156813208158311080291838501865590799786092359089920697233714065300426240305790928325636871736375687847646623232253351204048093364431345185588152164636211993010536696502304068393529588201357971667677340527981881260532159749070192171731328179063827229423693218058533431761740365258817016039432621867407863973930409837011597449119043092141178022656166225921102587527539644442133002477238894317207530635411362687807936927158380607922808352139113908576577871427579779545092159211547070219328691709121075790605661122823814960571684287726941583658296771402175981243341538921166795097505668576571250017433343537620021617618324379011360526726468213630762143066734222994998689916295873455832047200371635474043365414468695601445948515128902701416143931221254164836741898863239775247046749351640368776640632900009759400622044871513533323789969055362146736844365795402483840431440250723685372582217231032757144118389989242255734047678427414569453272913647050294525861283653654979722850674855391308765265020543504977542925702164406709902124722114340321133794472511177090049096757114343677298059333238363203986129246663590842616876401306307706880164129028374461378421544481554740698266879304772000896985463099663802435998378150001454557489745346463293438596311135074355660762477463151932350280645412597138045799810511548936503124236990047268628070354682474451813801979249886112076985953870486630011490891937378971147178925472155062699380174719149718338385894823216085949543839590128910505191690745450570421152947298351536500163756804540725137669348139000644575083505742952563118184404971747554558905937772041120647183357553881351250906867023300956896439045768927199482161575777605931059689650499056778001094447292847139529396137493881653270852984434305632513998124449186361666838303272477928847361948227308525023944934715650222201461414805474595389834043080480365796594480159523555722024866167736168596121728718846895174799675890692812867040300866730949660440252333406982604691677287023315077030505288400759535747023306041355158349319906249787305250260480155662295643982468497378519860185261107004247370586968246221947799576874061627033628491770308189971508985358984090038574263047145912091280758968218346830424439246310782050326584377968797340718659637710460945746829454740589198185159475332267564039597066122978383396903453616506018703892697818995417232585060884205682857194038848779454983033487723455599810692809948115786621878060760460281811262109470298751442893876340981997318227688196505079118534818675516973014947283165265310079001850769331861410434560849598091159557804000117529955916459181477635940829918763740737828781038911118482984488162977185011995667823970858668770183816463908919661934309411438333385827948337603271069722692754049202944990097007371179946811487952473199718934412138127594599914802807069022545161005858145932348925034524062501582036518757385352207577966638434858738333759853928718297683076550141684078863599856233686089622490462714300151509525050525903533128413194135891584059106264672983506267149797732127429752462457479270238872101942926149550270321200236965962893188507560393211962211991683228918104878066343630208534677906727815982201589675568965584105891501062694816375043334232033811049997311450570844019565748500514008370949990532189705429543440087263576871000892749122938535749081326213487584461048887640009049798527360401191073106003991459244631571256707918835489740640700516052449247558808897758069884645199459407591341027892284916744540207385063182083582048662760473415656775417005670702224682774248150471788685560162958128149301596640078670224140086336163846687693792642426528381950732059344216542632651361058187150975068782934244603268749066260823741413311287782195251908194413670768596861698363975442320419072970185345086457947078472231620413927453736144862507644296903960713257267189910012082117931870078973004103918935751185351621563435164166883121233556220865131038682903480284978051238787513489235148309447979785574883260768519459259587409393698468327734272324247716513340854061034761131525519268527121713606587648374549026502549629053111744796843165862944763450533956923227161676296205842380083315270110449330174776160786965427320177480911910150399204121371798623124544314943045761720080504059073088662321264597978019930736462165007937094560835642563033841720103677820608224592567232313012899214105580007054415337662575410419733197635276456412507338279985511223704907838478173898666472398904210594771263115118228871505190624928760686805155651022815705311427775438054333400776928990268419271078908756668572615484489980952735882498354375446827339828054646636310683392267450070384694238862460469161912446033632391511025549821553323074417413508565687084944854291514044451457913963797373532762294541823093138124472917914400970993787829964289011249896520618680217978616684430605440027300055914023946706416124380187288782002038627855392742777463181512725332574621237175143819971973977407811416734874800872712987841288261178589846128691608997281210803921610425417370691053988336640023984458616063469435819049956684066879313611653751314771239745296285692324907779162770355526252740580125929311254720930442239929819792425028138226526529235234993671851008000007756979654595462644483123754401239442898549856709563098186296078809602647263099572674543793151341761036334848889625827098392087693571036896555550606770346015714192901344825572042274251156318547171173957229277007463164207346140230951056615957380595352272344027948724908785790063957654117660551899525086470734250244665418407486688983531908777229681153974977435150960434455737851244934718095620252719486839790753407972755840161910228770266371099595154638418608656324477187334859640686340831344212852829740096920057128033509635815389911091373623152801180488109557156644265928974168672104199407292371219413589721560967734794881320065328638363572118925937732924997967300343126597248449834939898274344293328562046798192572717136955150437821780025721889351359373750840111278887648644112392743648769188701443380047299246007542772340713781880072079843706884189978800917786026931199304615392302621704049829535020313653270174806017612106313138686471160188616830586606625436585904316426940142533976881050354441038107963228031719385655551606539804105306597629934648805143596030043699906869730106589863385783099863260874027008994269207185811741097923357420976935557311854792587897895640835236192958100274958664127767899190291670918357773356426662636543290081329502904704383324306211827443411499284227847937830401730362148198941244982050390452613608887923657184303047007863038801851719145350885249088185753313832919390362408164956778284704772895311333743631990165910673302211454659461214645602290106308595915899004645508747687479826366023967021502419994902759942561131759400365075927843623759736760740512337921289852431794266757718089200393449286226360683975079289574897428628832870820489760458909565223502369746136568205299795600500264507974498174017028497730613963467912126867226321308393486034447280368078071845231078555295665551196144656191058182178091445132510641738029283389685490831921461933937640165286681709275457392926283643128201660261273176638592050985152073002478304793128704688398966284635820060085746601850277875704770273743122618070793871137615843108028228995020176591439293096095097388785179180812484553390053425071153511660168021153282005365407514341698558695726131221449286092658710958321743006613685776173148390321494745330670082823230384375781171288301844633475185133530804068308068406930375060743392627642881548019464113257718547591442407653461202624207312058554510742190060949808176169244868689827447058150605877029513237033557531640079756852513296448309287410672926144355332889196253726739303539228993914963043475005187066990778071764611060003083739593100983541487814576447956044787305367039274958915186565316564869895904986741942888902354014466077183727211664822694704777993699790813242473099727126850397710770641400190972871365108489370918005778890182821414969196255639016985006353333363044274459926941954401665759856885803379413037667955602501156842405975394792802558332941706470440240846423126114590776496135012429046364484348816031472151450703050687247691097861422687564098370409956243581044120262824544248311371518583648605647156429318693486808112449024990294418456915467456733807035321838532040436219991524983153657733242141624473947678293344917550589127689121775340670633188251654747007202676159621502386309910107876082877935424183120695334639222651265602749428607565833922257171028119160890162531583216365196175435763403334436872030170898471961660858713540010702312978858285549832504678104230418159910776279352835663102547075171354769042546098560496723160452493145484566976969637206984733515637399785910303908113083163741069067422733795603800575594147667283475832594113027705808130794165011479829616398685782732760127362717613147829800453483291861395457930119684404107703401472794533462963857625581388668208419692404031929790097412574990856695418623656020609827502784880444911967328288374648277303066543599428206470359174249971130205362760953543116972295828608599238187567970367222266837696601679803241366256093206809013329172612582815731585551734286238135988345205250767131400798686719606147338776265083896898904175311271177317833978328534514839298446736305122832937628460181982718731265875034313053069362239490404815398225129012924356737733249025347416589641879244012919454129148489479932023271872858312287074975726641275070249624669648546249029413427639338652601487611499282673324072067714027051744172178849348919607696827194241747690985275923387183673217324346480341508523967703170516416856773697803190554930755552310773096062979665463605717950770326655184923353342347170471694166242020505490664893860718248029979934263715810375186553734948057537087073174411556250059994553349607665233319712918208469608875047134234032737339338296032976967134084859560037678181651835223372780765013719653896583772112819792319821066167902128224863326770126898059707375642902621680124684946034351248825816427398680267578154627680098549670052341022008940904469456179083529064402191422070605445504466524949344604412013287375062106801795685131473937104735705578634394944423801920708893974810069664753333314745661709686682598231292104028840837886603341226869563142724649739012361961277938635468728898178261941904929769403965406708907006748459404788074067980205901402197178425706843337772447464909725927760168563677884736536354641977261259653334663587064095210984331588900615932321714486813840997092719396642002231597659999435693565896385232730476385695659816161729497433498350163349845824184898135624001984645772965750946453208532054242362405335715520676876649660108594030912839041259845301806153188263880306121784619933448917983589995033869042608378867115258645853078989590746279016441476307957369084638837639365543777800100300047708239669088724632593398097158443984208436044512463735290919685347368386958650891669855096992417926855289681344101382897655876527120094114071274331040210006479572858535035344107736091760571522812934281844900246464498484365672250674971859429912874651795533668866807656554631480904774283770790082566831805177730139529814534129763205928689181238286659679886068023203785028034059920876185190863356506668443640066920172898449946459368580792050803105099251081561185625793358448641809409667665037979519463059982275056716650540498715820662016164769614959579310777181997272746870095005172263517434649638188211742797217207525498851875576902496902706479965244570555657835180341896488572221508141405317888734584014183074767455323873125787540635977368234359473916845833772832611362563179204385089452362895692883688596785215686260718609949685879385775871471390735917023301168012339348632706968291913527458598276743912728475434852491594825344077330134133591610960204110491730726417875546674282434556461824792909380558175911443952246712957170156750630767687600308381925612369252522025188284420186276533362269762128195883921342378216603483152538793768573054319311907501544329975838232727811980871671769411187584232369672263838616070801586737094348562777873888815219071408355977134420685773842524612272673903457221526271913873241477133606325932681927544138596411607994094491694055945204775574382240028777534402035805411388794043219002300329676259123446176785718567795537122506398025269294628892097896486870534253934865469662532085342423526623762360179647255310493876262914816920964749164692878141617087181381026419372657482276808499512675115433454278710122637405638992080706533698772625701409061800520788156279355332105095000726727607328648125462482947703935437426875424198650511157147905514108367272509148130215897983595240841460050846146489948374557111993454842404230849626903455356339784818667815539185710862585279068723593309424472809585983325486059220614816060567361923481900312134177146870611991832953484921862761674729019377238173176152356474645672636983997452464887198908628721668476981714700793553507713824456846838659721478757498099872256244440968794687356224234937519046555558233662685931954467548661466102270092457266832113281803372069706563692255870820009754049741191549473828431634294301463445106032848350338280641497096796810167434107584956242732022256446625492765723480171045186556717052899313335792014278785128040559066560030491579050168027661874625027561062339203167879413732948588120761631908618975520121173859407269808484416767168534437760177781725370534602172346056186391536950361632774283082844102759520829876028357405735592591197678110620287267916450306690304328606713386329979589782482788843080813569885865464875099515854020267359707520950669248118061337995952202938204026706100073554581862334384016997477691762935602351698964296651473368965663265691097818450582400357361660278919928602667479759981587945874418685371437916535242414972106316092610482910454439107081363134705377991930789117328592694706766926587268952466884255564002734817805865126019827312105003548041956890523301874966130835936728633484827981167903862445438953843368667866081379923868062640293124015235519981232297554934229816391955694314511355403150686373101584315478899087442883140809517175024096629303305035826374708939923556372906126008408948982743138953563578618181483117209990804518845750572900287620877822162289606936063648951416391104366273825399851094538843602592077440692029806706360133198562060132156845558650954577122195936272978127041785768091914525282400420020771459032750929128740490733851949789120772728057826764342586830122497533151861060212189740393702994075026102934769597682191869654511877029037153983047812063424494613036894236535224567313435449788114962302916226950643639949186650729101898022793463674935984276949375951057566975684521310857978477571447877570563766471439213501700135593425015401223389725406718343925453442474811868648618904496165153733538177682380755084117525536217176073665386699855364563149649868744502025019690265277341630407192977439564707566986377022724380765925558176321542142266091638876404460574176370358865986879736866438243191197944532968197886941322973118588937816760955970462774735859714912527130158935590494061570668858716516806722693853596906998819362184149827515577547972492565197474531054412630927460553711955096884750837261309499772299327653077399174941557233246653555818982925534954351532724909127787987773300745286401031488741229924412228381758229791193482228031199382075278937523420062316085228332322449500157057731354816806706798547034293632740353915787621380975153665059958913883868716897778979067094973631419212293851918591266757091906538566342829558177811011860204452767266374184665036339156533027822082725318391046794360144187309656970707359315050245631554508827722599751340343132571607490452443744504016483250729801732665025711908311567935382385264072473214000726237544321156597375541665614930114964220445572939033038563247551170178453053454005327413727114923971790425073167535305435733212880515099534548584813391352310205363336045130012043115348765110653106018230800941185096654276535282649439419747258089471841775588433474287150278755713273467762964534584098821679474024381628510639961570184706429448672207436369276577052998578872081285808784138884346797615834470200638969118306198517563053158849033895324539776214104727178949225403631814329080927034607681253667183083383832773077798765141416655690020559300004066379211948412439604279964936428829827158553057858591470385376447373647593424622355694777216997070317664627427556825451964340824451029784179273282126087070317958469892760681923398485439790498643083035851882970104995173821515198121184306683639500964913959568690005598111265016185215003425718937984452710454797038251824892226068128370666100772841018999662474596631852488377906489131243744380854273239459320553888223266438413247210779415155599532552661509349182820826822190335260531713872566761429806014430706786860832366820871101990382640820890781329946795068935489463788142585012831470148853282258900728675218610281168593392119521273564337723703593294404064252390691682244237554195730955019037781419809899641047899926864494665166762182553819836560564925373971822151519646816222909964737786388194539266663127489076279047295503013632011643641108728741975494599696100373273865265997107138710761318157141953619009832261407804566066029081452211444752731746017319516986303558097018710684126229518954614577543021017151797954028461764181665569218165990029491337589776674800102737008550279847695714496387509169835842120389028607432267080693971534659572140890051167102995677722876944557734158699182364233721436903956788470593314428903966283984859582965912339869586199490653241521755040801275495564889613309310868632751684225874726307895153796174380284377600393067161564473021790288310183736348091216405327835135274275566786558592510481938576583817459576613993528124266260547535509285475273963139476081502714535802524367025367820128443782854949387667865573508027328607661675188019969186473455921707361274071886258023457236139020132125602925664612825948633318993416833230306154837388950535268739503443551035531512151999140682184381062589215852816097869882546143389266274351461766126515174218055833984920241465401455845018988287172769880567145089012408408072327954420538875914180857749030005328354134597108065757497498195932311766641681284211417441517516987297811911948614846653455287538520913355776045978029090784424888181735174210581925713576487400302230950481343899131283880200981909450372518163487653716590063218628407991438430517706164922394606935732320497553784569133736481237685989473271177236050687697371439990046173186318722502510107953023217903962620991128949414395223233110032327786064429492487067458289990113698076461925854111877890045784001433303579375339363142376967611913440113221968846012117292925703190803919327300013018046974534347460464699295432613611187306324425417663873192081903899225324370087694805952005731479550111711051905886164127004528006715616871952931067236059717314706679844337483395157635450102300795131396387084101614144806048181597821168023592375326618501061150806398261273448559414596930696185939188055896453861035513989511807546823934516911520707845911952646618761880097035559939854457126575067753559429638641805787967818927094551229868152739339088942292354663227702439726030798871898714830228869850837729158086801757112872367152478851829702243216766918976614349811849332268746688647708529387169790582963610904579370766622382923985514770546769641640001311443235270260355852420892182512221552711645582589501036237301453067788281343302539063906494700411790337393524755270058413947887516653239430315773066772825853445749470717061076469330213505153899980292868430342281918129271923254541224174136240417585933529608693952640285620664260051704579355468022982531061140802645957699912336330126573112070424818876630808594597219121219879770168024591967652411171925104309487043379554853650318469548661123685245326052155071910257573634179593762891756601516538768850488085175478759319385843043090977947068527642327222023364984920233839670460349602030403109958315663825730729068988850165571528789979885731596607561826038612664453218484365850298956963698648118572885501041628280976914479225379598831662112057440812953050889523915424477758262521213330738464244489709832235333714162138600373446829023972868053944682534649418979825112849797776344742133581073013312869474673387161792966889555687834894716050271165985223660230058338911301858007473749060334263555128500096467846891931437992497192607514414945294430511505087366104595464580267912615150577625706713725427187122747660106449880262031371024833793381328393310574656884488424922234539870170785969803690378329775152849713245708518215300791192002076776703155502738352799669659270034383054107068919389504821889656217231160623594813179574316787265505155547281279193720249454113985836931944191872862391432313901852265374563488440857942285692065359587405913706857024624238340302987179567196874309936546723615599839401960259343065296636683549117416656731958909657221064886227932499219741898270084685820532129980814248736077211793948204129750690838105777099578169003577285340474471474706514707719665576012478167334081545741611354714079256930111741868859161993591267619129679104716890668782418769946269358343112787520570263407716370751768436412247894183149901839993966557322644143592842636799011524464680112583977855322145157768781847217743173268555959833625454638868921668898539525664499202201191664325559665455476135556050761201899037535931723609376960409960927507545765623733926425589627127792037737065605059785387012938454217751043643641843995370494715890916790722149444549672743410678938501291166106324789679884583648313536307739394788488263544694912769957808021409083782738733547291530965091667080539280839015647288035479705750824272477735902930825053243573364862253826031626992691441811890577739207326470813120048401161562565188674618964287523686282064863922217854216084435736389748464585626913417563636425352721675521924878520889073828042371932525645725136485762810044586353073008421552047119746767299069769106140917151204322780356068844841060952890471633625870961061388271645347207967275812401362277465597503195655923787481291960898343354481239061199920986203417521533821232831333685914224025854264246849698164058807883267215059495986104084623812498674577365582612747452576453421772297089356646329701034324603035530725807886846102975747515317615015344509218118414996887590349362635845683705206168621772972784026043454367380744553872270276583077682485276889478166918284219802737850087931152684360212049468530651786196517119081982117010758768218114871380342754255001688678693084990519728246531011373439838341804208167787709244569437666511020785835199831645453437473903372270440737763018691617113773361235413643821154004883757860561573695825818577191517518745500073781264860193565249683195172585760147444448027977818864230119596159772163822672460095545010177718644161844647368179766452087699719441706477769251037729494582159009213315661660064516061062326218345412323096149470622653794689169968672788254981959096711906309113880609840157259189762971014133705911502530699041531020645068763566646202329583485652037018756676216706927630046991863162929639827712758339319829640074559016616766131685707944570637427562692279180143977993879562688444293903774311587382611502539475408037293868082427220819066883327428068969144726969670628663001145805885487227354544942126681248896674012285154647370176210642933316839781086290881416575480993662635469074778632822936712823151038673547847773802492051481684939735330986826826799739644215300240046086363574305600456838792419448697656521492996997879077692029220491224331339174971173737957839501888736078252350380947412039938740453285533599985489272554757470851131774305590877104920833411667847981469893529510410202839873722520366221252764369002944194833649974573277406992124787636004941307421475075924445517646643114064200240925629780327469080597957141574060766729904017465784142284915041872912277446898246811602960283285669052240825556729010673959164653601378994824060283444255689156468625704808309354298248985645072425982087384636288093474935211734226241474824448642193431934294823477417318974029924885632337842337395311535360308683280884717996160950785048039529886196164783095161079480807891465918356493853773162495716181849180000599162165729060134939726497047278291396054949068864497038930442424432049691416167000488891014997835207318059730903572368701598076480708129854810063172767836301144852112872760256192904683821803903037288790491811620637718344852324288602809818227265836998609102952248453189626323125593439472647341603922412926876535462308198551297917482599607986504793579986009650624218261954559517071534851158025455507547663772019759374619604311038631205949700964328760342364133282285652740483592649293602376643867765487549196236300598927216902589693344131159793259404476969420395213388470235992352582095396613050462657686016030837061862859563707076090942795625834049204328769601343987188991067510328215254763595481070611725048990708488913364266014905304859193845077933520893888835790724276615757854521124839111499321910715010347246891516747107688305401679677532883994912286384702060794174891787305707992098823799410334959139897283080498454200845635321524747231910085423891639919774947341783628251818253228917102205812363798687326349179472312752729265383587995986091570038590502568358449260684400468509881972344464410358383593575753582509783035146005306702940698662054479123800844200010017212973107881113747754042035059819508781082684873190553396330439120753923174240936207258682885146348331922221114636561553996442895786533745309966097376700618210003823612286800561355608253247685199705794044318847814576103596860219220080683162737559977429507390830794950373574710604614615349786329722393516305045761247234136294174971418817767747244134792660259859177002729423619982142992566451573641897746481841242683574928005784820486165639486351388550516770557995514197815206166023230631336999751959849214453053485443707791001119484376720585126647555797436009639166802740462271850571947984443256135789894896610836177749805151568435348746205161183665943541855323489400126538117581902582399377977331915026463941742538630844974617337266477139252465801384252729117791635082730284542520106947670399394901858237127462892257163352502689798014786369742104054863301192713344721804641212965712614343516912360309594137159285890439935376115780070548151963173380695274887313049027467986686503224188017387839407033422694245610796159569788803076651678411654340533850672482545563434133165766842828553980152333082910963204413823454397157734066710909932712084084260321373636625964175716712224148858324064520423462709288118721777678014146109618671856919162124160167482324163635763127978288427777615948729367576603941041312167744803787526852254652694360736450317321250400115742165211782605023696445280633925884581270005725013101410842967139229489422164328844396187618619366696344086089721461036810186590694469519369315545954071620772596929624891947824119105499025136930583626314478614631216054463046112257496140596900834067112934792820549544396096940108488491859042487559669043684401029211032308475301408649155118781808184745859235328105954090290867306430355297092630122670027601640817963005759588009958375839255311512360662232168562972298614739554545368572295381378793917121004004634460393625440559908235395787796883908425456076348414501315225775479879492151291313417989836662788305834095868935026763165280228124402307039109231027446837027042386784502124286526832007719651757377637043474034223117109268741945158364394842405088019882944201650911576241342848746501743712126155236390959385860138289598237642370241498596160431803349843937034405625289668833497414161810420630691803759569744862458932923851917993844276365652277335232492705607439066917568746508977126486986634432704260307072536612502958822195289383636354334535649845537796169428891771907995429338008210240217427926960905554663494969785087005775828218235602128267143955999192190401767029616507409561748173492406475706358233658132438017638753488998225585400070047148640437028370759016171901946843416929141519328295242753926167412750912805799454648685342118594427120873286809385894470893562233564617676334838911213157347552111055239654285926370372508843878281049142636276953067163744095390564068376142818876891872161318229776553886779887634313340634124764410423915119489955166177444693470182525481608188763631995402132771569075132227736750657888421313069383060790867622197013101805484736730005998751494835872819936133170681918841878467957059482499047696052149001294891343537061457760257940283782864921800643390551945976937749717704332195839367513922492558365613227506544451458153503342680825150350959400211540543504355448740536369425786661525047682485808230275656672755455353212442635280260924580423271594436757102279873879231148354484839257402945488269623464076328067042486909216642092379665384821141503189998908027710481493350853701957939080360357062072357050276633850329558799631968556834933187200220249416284704403153905209453944808024882451865888397461562820679971978725653743886126900287368461097297216516193391808565829133896046435567882268905335854382996374336895044902983915005207541582969019266938218369346188247478098861693264450068145564508637917431710568163765289353606969095294736461561330083613417470440591524388642874484728630815101080646521245091060523477219949773874346615976930581093346034862909267938570680862293857178444661471132784170617843672871208334080315225597519631688771224798256664875621235876590620903738888381126109200532408498704799449957906783542768698679364150200739232770747281242850853752121922089995252302515440497286869753693135705578573974750808604510836517671739734477718027064436624704297338728060360861650744510412884614883922135156520231438063483429427142776358839274218221152452914461522566570832424941995267102676156663593215934279642959658209274488490330643429956956113697929317867971991198778604968289347478165700850406293482023738158174118713063821480470561366468578229396259746544431596096893397607570852144809611392490238599247528832315365887160177745408001508967058854479150080183435025654790809998909269218940830518394400539540307340015841641346199450964762822925971668152696283523117860291989069779629684852834731781767500660531807527995963208876813225589084864734292473095099623877711902387450375055570989526431178058791527674142817810271728979440192891392755645301466379571409015241180054886075002573761670778823207641922757249222515574246387114553107615220773327742374917095989431020530736358808308929839136871532655825295711481561748246769261038666368055799257767307514177481227412516177235298745698642650730587707720146672779160652435826624238610576360037465482036723798015943065205280243506040578375087527163739493674370252580697657555376981850528899765201609160138146498400855888668278704242048173527515603741310381871788418671487160201094510539446875442467382553122038559606637092633555833510210282757869439857579173111547214413969651568370222832748614950005125615027023715196301416241899805033395622598865024394440388744510901507768674935972968260614299761080953084092366435181836767364968586039932629964221824789794999962591216411243146217678582251966302870063452527043243366187391184470115327086893441018992368631528931301326311851589072200898236971372892171409165556567666839833429025494047977169835723546863100308336601792991602946436279646764467102279552442247078803281687749821331923171592639760254179862386490012080723026600295537380624705931353598709175828981196149376075816084723204480586633855505684930644963414377853611523721196293797119585813782263067606744983966365747519349909440826480392646144834463608146126961196303924165467262206830068244184677203769054945453266018763131874033816971749204333746720482416049948125321486378953854103047756955007447949491932068529172660007781506924746044016858165733834234881096641173022006868723618258997493982439403330731327024894537016391638306461522777626143865670378796344219272412852553964225965276884196952764831300991689314407659845811152317089578468645166165084431071160903162816431904652016309576902004991975551501386093841285757201221860665573088464569673209807049277145485003157547820588830071127223486025238175365667282341207620780964883831268814876540122013660901398107061691008040830384431311012576723632636204136717495973914404107811767501538181798411492346191193432236859037422282865028263010025636887704674568352909292221947175160018356207522265966361381295788297798461763167597734329546627756218353364098899654935144660413998104254961469488186132248660005823490442669666039659429908695426456075529353366387508596724288415152181690201922510072981411861199167495313335132087152859575048538747684365405281664555300774329047846678010696578507217991151901041773831374138361520797466548524156423499563643321513291344635555704449228875523931441400035478870119286536716509409075338754385804291934560614413072944431307078195052601178912669689315816271479587967031973148132942303032703608072868056421878308908933511440115939467799503018319088311243131904967637992477700132429889143777870958684908667446007850178692170970407115120970931207462889823244626709984937540526714997973969399759310361616355620769248710268057541529432176532973667121505462721544102962510227973192656557741636827825439194966162891059065612316876736057327828300982031200316893769213482433971895252839065763407671782750743077014129734437392923566318650380414304331160170148520483567032513892377382378505971548336650348776360797884934090213101063019767600292350821910139722899504800147223637914449569437858659604265320365972737486085787340252874762208604096981817094834079948006149887968581692883586955634951918124268598059429071427196078377557356211839180570796350329430454165899635738467244135419329718271957238799392066617171855162552222442565384179153606853461516060121773893743983945314319247728097679393776186077581130320045319886577061841862399586302915727039507049021044057628575700349753794444371275363257348184962500061045454699108545568005958756741109133911003290879562196217484360270880923363757506004826717639756130819889596103075122091835937344112808932432996026435119433261219860097540112812494832501654310864406931279795673186278375566498633879101078465068679717763476914294865127319090362443399623910691889847434204551896765234461331392306821908628335524372285638835100003691742817159769511075984003137043354325080526591197928260729678070696873256887044887443615401322294266917569126783036427287001354249399620216320353896302407083826717340855518793854334176804329886897829697337359923752329973955968253029656069300654523696297229148767522412292600006450110036893426493771624032709963813939941455009888858532483658902683187787091489693242912880051387312493569355404215253571445662289800798586270441999252395615371234026649504125219833814571644088848968047942367535167445240768492840851480600858385421255977097585187660401486738694848233577628682951197702229252379761544910851033794577326878341429441611501146055608610697665002017326616435445952085756819909877456983218390242821662288076402758337346754656848395318798163667510568932050859613020619777483413526832069893980009637365732670236051896167565224794856673550133546683893578924004122596347739827823703189918472227986110198233444650087543898780504232137313689768853139449260681984759847277391956352958565155103200282893050910506204941016442165992216722940816740944776672347620166966849177216666052475254600916064958407347402222061953468797794876198496153799577437560495638949338691967798088847536047484177394692568006630141413573939663706866463952639600270351950905450638593393696552209633204810066950135535813278470759654575580076193732946598884685706855670160877203434077199265502897087535055012368918118893345459366349580077404299362240742049851228777713102668622773164281575944712960352037836120523193877689876508596799923894224115323403041324059601304155040424495450271552612015712647636829922805910250199985702914497948031867018452626778324481883812695673608320247547346403492991448758894126720276072436544808950700374522731938736943080200818659164856676101720419899732059164379422043438513587263692732674535487629314012777654936039082399019883226856894665854001468073637352626201488524599878183384012963461996877211952499156623417369725375460814833669991477724656622618838172589503419156582509792167171388133634224872246510914372952664911564004822363477011545561597690175883952664293339643228929846208012001233530140519183530420185852498755931825591292650194562140079732710363075456182770775490442556139724907364963218340210102227871000677249410324646806008693608435679874151260741641321180504272604881014137031926660019252890858033838024527863062819911377358245110119117053322717684893060894356994888876616200666375166312258534686695585050694143485669525981214040280438224088669856419404088120903273287769142416292188263552601634964964681062661887482227828168768183948601056375664941791050160703768844264846273469344893889779035761593392151025140070906367744555272169534227839321498922237560894343489273938736127790927366699776295132659711811234456230305802257954732981322308435812143260875659358827018542861253868001237801511940290893056025473015712635521806176349646601068040020820248663221268678020744093694969278556363842437054963758139602502428721169510770993146474219899208225796593152433818916738972296131148018571314952357850204662434547995559427409098423187439510087944441167047232529383946046257262454552449630690552236949362939816947765273754670871575963503767846155748707217174949901109963414267357023716162815292727401348361143714306005962875173576039698546060828114530563053177254326287270561468243058131182193299824649813607137964895302580501678226584553459643529994576086142024289850666445918341137888096363359842864561537387764410448411061286681795143899160327549179913768256491826232611954343586128318794323840244409983284916686903131869822993857449461864730955047844350513359089919824690728853811389868136241405394114746731170303592628600214721616686741700593939651736395289087376486018860360362541946267701747085797023615333732617973477341473611350927625214967282435158326818219612242694308877024329447263165651297328641307643576080154255939109376425739657086484390836820747785321079627286634978789934708776461214211865988789811345425432286069391373801517096214663204157463174588771809176193316192280237173082197684079292693285936506600450381546784582313914921121200170917923883460804636477146715401272559499040820988568301122017801523738382152944950322239904405792781109955141497981203606139318245172653844496362038005238977433553879730675731422221600845779103257623710167003426533390857144209245531937799962464174091089277021853241093548879396179356666444099588988543287581912326088785037678347394004155841831446218016491096004201687956938762647102780244406582449877099384363648798089412598174491814239242189279098448701244901212624685214972622628470857010137193028278914550969057998393582821938608110472723026961108779252731467588421521966506827495315586689929087904211193545757790193932791813127808747004092224346306826605101819496472974070717156728349352458836546970963416611098832146253913163243548371853578247063913193848644678918868094759158507196903539524952706757933603398223054412367726251979181904148001909759981062778201064109582662419031432581267195324855901202742544404393651266348871015876140626398348834431714492722652699888269283300172965595782754797621966663654294212989646650240726817549884972949306500630839086963682804808027582491907087005559504638491681327049682699802401342818216436141168199534950988130024570641025833961926236394450051046716203013604953648768655305445798251644344145685765957078573017762183964943460468171197608690995920893664824444879978741698238091617384408008361036937184403827243535207715356271504568715022395089192606322305142726999295295856670406007591923210032320444817803619113585937671614902663331559069653623255824493833841172568232181673082213817842399053883047195164259145894036962879778257385482640870619741221321104536596014737197956351431037900284951267285589215141158179737025618745229717779216178322358361021437441711177845375035210690822158582061388648264777276950795445405361915566336982470680779705517712679310254104079503835538357749392645970338223365875377128215835122652506793659776117749593582856796158595155793484680450264747633216060549709731564523035198462674387064498776579706239488299164362027953036782349009492355603744740860475217828950734967273621495173026351178945016676350989779471239834271065754432216581960960811945475893268389438459132993774544883260630747313193606127208807975361600763656070285142558852855836533632873423026036341394730062857423861383050819901571222777593433494810456718912240288714541647461232664838574531672301864930471140877660930095896726779546938645781757676873851377014629787350790207438345626167847785963288578013219543491052364800334438788587787045984842713155733182835258017497808496730996741668700296714323369950692098125006228035647602802900889076730829314377826973353259436809771560442703365750070287269105242672787805384732410560958491941085096538266887959822202800055205405896289848683205101283194638504581461001675645841483317365569254867800980539398713851952918362781017600593007331277488494518370601320273556902749512908496839959252241833164339223497167174697621261068338496216504677193148422549834683730296549913764361662499342573613342937973420591820682084660666288429520684598128400186092608212539923556627354327061191175008001246386981338526763011232017564803923988340725413949589654715375678361716863119835102068652661793481151135820405911253883176962687318856040659318211485088479618978990692997356340195413432087682634494395468847468525615358766771674552471208338741096352191170713596895782816919157011920644711165001637478057070569195810412925179738712580094389825267666074934865811661380416133160269756894415687164872517922761314521629770744881535154856468968392009601725171574011319593333821144460244670547047858345557585570889612432793469469231745313866067057761376349468529849771176557825682919368548259200341920655902532870014565040594606293782520971440513554143711461547213415857302444655982304916809870876365078250899631331410941771556444842037669075975171986528269682928993392547471638402313451305498902805644395716173727673950619909902867501473336888063228955948985100923128707133419114826618377699528999668858974320729129796181252782620588761108151867647684706976731482585658911908127736944941139801269873300021651941103711312398010646473150823686893592859084562471148905332122476451104592422709764267540570853873260537203015852411104296600811391007954483116281575635294719410300653394834341054424188681326196327910302222433601041075277832268948417602388764029172278063677230301384707247773027549897303155659716122389651599739892653190361219508621850746115667792928992136058575808488960885981365908342507622885583333100393639787477791900157095328926515996517255029592390417993560140992260993441616119512626959439135759030445463176494073904754336426886654080689161958146591788206326628935881517962219258436672537948852739867854203530495603434115072391733953113375876748455259599105527950494679345097191945730640065773811832494289582567568710712448141781744957624244051992130353839093246628388675215483948222297071612354572884666719118739939751598290256075360550910803715016036028207132557893800426893176108331158360662949104872996297447828053266931648096108127702132849091228384877111349674095313636458799424267804991726279879655184087343546790331018216315305500178947065613608697444561410901085918507733206369896945013936903419999836610636462972907773580609774001142928012401416712416138716912876851328027670365202730605968820769997154396943688385949575281415181635430245886521182873682752872775922672514557003385300827182753615896112632280996134324681712859348058440574277816015564021482506470022893864855308012332543393168120775953830030653787990009069135887530189815784482022678867835952544298052531120572443884945303552389334146130485772710334459542394934104254768859953910793989324693246435039132032649797537127084880283415079295369334089777013854479550222935658831568785975484053010584354912040409225207490099550292893397739253494499928275468195016532911508810505931140185563758165502686346451445917341170808661800623377109410591472964015245469201104787430842922679175471510044876673782035040032399989254423827829765494869460938373204168383534998621478658228008849557411761876755986928059463895906287658352986497371928472386258922934391406294756103783774726519452237167698392531231008246571938377239244788288605524546714500176896024899636462429855595392101259682428269972715584525783236160666101220020385539028431816192279184590602929972733380570174065296417435959230759043275586232741601289478804442321262723740531127203570971074329027866563560218629323500607926111306682997107580293107850116901007570091091946853865661795697432294695493601278441430689823950045035453098985024336568336512472186782421344597126608187548383978840688025821678045108691654336007795704777333878692301145492601679331908035830771235448841804894265118227802928537404479640513635703377562620425535200905410170620336933722759903455215976375779806056609543741635777772688227640381347393276225696931862376046196822515866132082799766639762157631042256038056404409907467663614224014543819533200628680683558896950364068239135857747954477245155340870129717243303018661885021882964381023806412390135422836306588262807187101050587061634786821018360109945709506882400600119119690652967699715447452697238809643517505828944700653531310052329752068528417808155452849487814285502191510586025090187323296406316930109721923656860114513440227702221244923421744591004020371893777591650132653372014342614670888732314355909344057347385595250357265725421800993227691308214008675848856888135762100944009219879605572487351520688094034195348195617687820285568140529110705845389446189928179309199537232089607469780756429829494373072280095117013261782950442483261464310602615057624084160773638456420010601177768131522585136588150505774121624035308969982409093438363974099551893176397267532110711720900859604333525557707855888103366010958017754421028243558538518171701974173093253251443762617130196472121607854951541864161491047940375856174479118768111468834108949911966799433445113954739787566411033667191443512569792895416291173087680143177657329836024688013995020452815794505098539897025372867987848994331279318747089866786854199262234905217020176227837360507392842600981052588681917119474953297047237096163108521153036278162253490366413954493842704710953020735124935557622976155306564882870485575303989528117596049926824123860590527755588610552764563036242243641936888731236580417796615175632391618680197042443407678051509423333791714504503711555217576575971634238042148997359570419220571172799319045131980085515578185946914008182717620531726005678672138090669735774530960103224518777479611570850629029573831981313662922108367105967355695663332927980412409064775492575655898045115961243899399240846844475806667454916251890097391132250317645763073655131279567668953751614571218815447024501878241331780673141799277233453157603208236763597962894741569475116659432288854960895116323356382745624787085109505569114827977590599022162814862885886007129895145823816590143471201112291557175084545089840515324105698483096018374640276773562785246363940604134998754840197415241691167925054237475253678671307480847193139071787468040503013970816842173044384202117212023497253727406843894883846996665515667776583492896403827721481167239439503758134557869431109105679071014982077021650190470914110710212736913061709884626778576838621728904584265572293453261360047880734248962579117197667187565219984501790804885616597233851570764053939030472650981810199966503365382586811856482343158414907477528944441896786559941582324706084777342821731784261830953312174154336946659028997892865678818265413556564289232543010746832902353734079712309039119760225670515365271787835800635800871518512602826034876820790653132109054069750820512630934381229214540515014377293080315135050208448387348986264571845174499772058221458905909397020784250695084855053078397887628353611911949970961536914496724966569125937218385291885187950113975993579550359831325322788162765770746164811435354832068609513288154297389659062559765218170302977289569323314251170731824368293794516086660795248961252961471952021576268870198375211961816963314283832704237533243307049264282062573745394241369972856356931050498343678915137181910572270194604626505890018056499833003590031872052145435650604862055800811221478524162024773602672379912251561078073382437908416410061601436480197869813483785546576076508458849497608430679762502477918154023946350129974825541803889822297168495046475430922625667894044480051654263751976572782538812994585167105217825093827447526576722810320949748885624407660639305458919867137881831386938806226876079381990684801236594797035711367240550346599728240933736138354376469874319897785953561760764240902193291360878449720640528745241021769648585018010031759589345723234260498340752272785649297851476854219140146069535879729397562718269489847941572264305201798723609633575932205860931843712891622074996390240770776904944865289091384990792328782287855531343484080115997427478303729076162419287916242960575287661925780130278279732097245190261602177137861581546268597720454682429320247288917296559492957836957582968575280863073774150437024905013167408662008374358886601567729528144267556467762500396020397776552158024773904509649335960389256219542570225009136319291571692258186181923512426231713192485384722193045715184397681967975496144929826616839355062954837620600787818117131411189453895174983194613122593952151949885760568570272883608394739905733848826098839136115862758287278695760175539285453538647898781824196722656561448953673170555844993403802481880060624959299238443434472135112220569959414621196114149695550745916529078617337063198702580043418958411270976076889287478615111846719597486001541043030437509726161751499456162927495180762034435031907019554993182710740059768756798388360755369779213936542728518421039178761276725265583179028682063716877696335521845693064005617472550091437143777547321207778423186601670939684220660355067175138183168619023243974934743663716194514234229234795254984403480833655296453004909816930462448381644218869703034826938868562535410787822648120914740627569542552930095098810603300685394254949845985990010663683714486596164552111231476545681879298646576842785299386623522209353891136347286735161635957284719215021287301750509234042174278137620314548007715680818727808616871469050566895889915176115072668091743276947530088633989425622898788262962553258526946688204122770691469852166640942479764923291701284465188948251234831892782755315699097658003436166742634814839638880363249377505701860896138130055984332678547167115073382112044107185379397015255484154281436302430236600844533985502041996791142854069692502715655216614196645396519095205597018556339299028869039016422512389437250263790027133822930659911271119969438187739951688167209633758318584418650262792297801925432433955363859892148686225946074554350160905079285062241508349452944528888812492101972310993686233672664217233199529172192327130431068263752775840162134829920348198411573335900446530413082195313636418146177306587478495752975606123054487623652023901772165882159271205154412888250435560263901290514858473175599163087847002683649608154235220656084552896727884020178601779279041728741561692749838713239634050536571921648086474697573842231958929788366694578927570437689015568897057911744010002632125608504140288044428988536086006284040929954524692098627634887272632881808026381119384999325500915634348567275606277798872956070499693894847937781278241140368190878678658001765908464402190900047426187905900454128027636360383282050551674705287991388036215939309831404652004768499620228899658668732636290734362245913601771176823109004813319108896861558030596982382525954875632425399173071536657457286995698633248267374338163796798917056913484879155667888727053830112864483641071201154434281052536118727869415442051877143597447134324500346675839369725790103304011533840370529180323368877883950245879613472520037912418754280280502861658997000436960587034257687502681130163586832190879399717530791564663032990908172995235984566207981397979915412221930881001318571189874619113105801344101517757200007805624903953369384293264073321743881926985455375623738167993625848755175911052187120830555843850284992756205194737818783136419472991151446796500663324324877043263648087190426819673568776475015535074334338126788346845055782315447011466016781800877669743018349942096064826866311045677504886268899407702229269197586880553782029137846108991367536991663696935416628973916687987459219342794745065841041972754623943082616295186601092378737836381873582467932729140782017128525447906161938045196208486002826698855826347806486229067711273716155171496548573317285574021663470269460445939603099658900105449172986247704539628162498513676005623682730462004473451954265401989893603192251105258716332555532582382658438289283671146105462353511425752355322180729998554764672659617141636599461868400063781735142092102646518839941278530623980598259280131398393566828131963066454687961373924095152624639588266443195390094510407527352109248702591733518307687471011685670344515829529919268870027210060287116944921571534865805334751668571649296138374231438152587535843750745904017726120857604312762620324758298978860080146160340362611430912063663768734002114866013094763481894762219216606407268807294976079242099329883046636574224395912960093181655054755761596354735334835092194712719530349155364172711296080772368492833362059738386494798387454876266656952394272782798450997359103475023949602903275087633343226889219516652461268930950240454177773482397099758218224637905697870195260645331535563556186839509613301836212099806881574471401235430492972467875952141658797928110701324803062964983331517049228214357400237787703373906937675353295912124873854339566821918918720455689660486681908706228636520184154655262365445311785738182048002118056999781561215408810095637904794866692937046287909045368133625373133386669727601172862208657377789298736422798966670367197216951318291395442419956742416907561211900841939214146808623921640654883647054014319505567753010486560605591972581369165618933726217727911025269162385878202156328541713514715964449560055641628264899846040830341482207993189596915868547845073585916852071369977014847062984297338513278897369497550924838952092517279574840055507981082820077560032444482042054841067410729883671471509905723383360932977544269675271374958995270335628328998235015886705364499930287778504155811023305153332455421184183569329027474653487661353587323632429424459664327357469394827926844959274043034709272180709762424216130119298346481471138087584244971628950139568210369580172009140677702105044921330769655875982229875548827156378095316793513142836074898442671169365664304496463222240477178251739843587450639924042771198818485039229637691675546139773205830084954687425197559912583819307053782082558236803702375427790924394813804695405532110419673438489753739589422304366822674271225043132239416881846015185592532131003737468503492958907574953063216556088137785319021718169279620385414921151928013454206668347256294925832127256765658237226903954923065976373611916470535121456908380065025832177461028373355445738654388034102444925606522801081168521563823650675358586314049715330566442388847616478231880883686897674652256086544957553657330401398603634840551738381030912957676482266355175734649457158326163403267331894494038406881744703139055763671731544574288552894785152816609603792374767175328687593316765481283967034785460664003878982995105010617926127043708803469264846431150161055383111551830499008537783589590002130817544809571121719664711518959771728165663134877163352093852518140570966714910601259677466787408638271608040392559313118812827633635910372652054598538458413193435154257730904025756852064183045671863170194618749530930842119943961699825269204601889198139982645273534554143424630374998660460433315979213514336452488855088131479425598387531325975304290865543737253334118735864459457887626890040653845454570702798408464779514585764061024969094566410627731285754041334427321328870941186783578205719811510368299166084893775163305700240894118034122850280672379211458286689100979294704564279955505469177513322905189505633789951618776115584413666736217192721446854187390797505367623182624819772292884838608558761015795946197240922270406507672423956191285507653828438097176893081398537927504038952835434683758903914255875831949720548845613161666180488113029955884059144877862263403323904509079719261414641833585559072172481376303925403136697739787774056433818218557741486970675978514404192539826654969118251727318111777182807489546744316999276222760881394664244298454575191232733289255630826561478860009427079541301489655458254706036785034803087660057968477253411241497221279344557336282589643175813308122844429265308958719592166066240584045000323035205099656286266500316738851738205047411028695629128007257021753739644806075128920203214470269758593513441216623548371331795519567387237321226826844150448144933459394136334334649049349607705962817083742607545672429475224516634031377732912449879315522367877308214181252095888776242019242090527408766906573395452513324337239881407714737241215056215245224585401456821990814407038498571857256945561274689902062177640385484005639336803554880114122719929705608483852202846142103719792469269134419993521762576151507724035082715085068668947602931871176697322707539784483010038163740229703881342675366359318445679682938451912640801668552810965588994724523831601700602323186810856958966409054173273327004725686814116316368312657898153186358083965708988917447921450998388129999800312692274074527051694621615534032519551579066468259261531889346413735864329105243907339255577906553747042526153398080084822312694882501456723324489129479635000993875788018436593212119607373940518192630690386695172489072402923109429108479415334715474700044160943093584696398723806202053227511315652470867240886811060971288090902873986207779861513688831728429878026397800121561030093114534483180911484379740398550591515582579367566506953231026412059742659464009774076360547137878234448699975116347416762107629673267184875676873866480266483199831976976336982928632463479059902698677076141219328444215358098839851999437054270485763898130887231591031947618186144775666453976699188959465445670710795024232624620456134974520478576705870130104663765349841921908688760150398310379613352551634583202600251428286870689040006228132871091418391987283731958850922353898388120784604028979740894959244456833594976435768611777108820480232400231148784704439802897204512059747132307276365773574232459716985829481665047301331668483690981744487334526494402798556138853735794817671596839233240077352782828466973393917101464557758708180087551008982653587847168565763427319307718080541576077896208604779876402095175131638178073747035932516694254890088652117171247229326556836933301991038874188855319845630343493882464093801091079494511997858715573636974929137821920945280575657351745833507675825419127371864262125941469850316774514483972220275954378608659533204470227970558378297750988662986561796122891978082225407291945035578024660227394406144736102401999832823239807898532638946833075692332577863252605185997846679627629224525104377251035719157398289871978289847018159746175785510201038874682366483034683881692554705057590745339360479691936874491670891280296093519301899840249857596645811488281745608549747508991132298052781660906094632605212756624636938054456396991194382801866443293196418658790620942439418965633015726252401663427494664781609435445214926832661242690621108843701968333489883477148188464723955739468834000086753229064504318551160562277211876908289168123576907023421064463709099844350897735397095916589139371315656578541622829718335814039690505034518102947259964278552252821917600526723457927555585972976130859540122618370406658118808198592156084160718324021308471969070338230483388297872417611457284941130161249390146126005328119023330263170522930522488857120190106977163880389938811053159613425862720316574622155598205608259819328869806911561649560825400783646528586890685938594657006082156065977708034633484545489870993776914866012811625600726203224768595634162646694501540678265094902108047378250951782334428179131816150845860039323284417194467985911445285601426457511599648507720839913789877958828067817770161078679754836037603080086099261718748104066269465767272853228132723000035069827605433797525412186580787792260748472406277705235028776996584044663651026462953248211171559977217988809836854337433214323026573233879667333292832052083114073895655101554812837010222698999132396205002115736712743976149969922568626111117179152820419225720743592328449972956262908164787404460266867936926011675691089312531797768754016225031998131156216392571993621891023617725948890976387097225533732359547775409961446193058201257950098942546845763227934977425497874185900504558121071705033201809876530756723865189380915994648163319742429036989467138974932298562241922730771277582213822650447639113003700816508405200887333004113724154366937150037846804124116761260753674425658639772455636818284885728850296648168227166147200796753715326158939306820060991282255463055544634535482635037334187786732133748416778144306481579396102212921223341052811834679072441915959125868060605115387896849089694350911916944386124656064648061764733112143296963568693737507734119018830236989240796229283651863897479064248501400481411155551537365295961591307554758027854602538129184372200235770741544117992611602003474366252844269083464537845562485560446946401178325317525555462159420098023296362931273674077929331707211195237044386472744653039888668893226470065236117132660987165777062789548244590985347930016794029181466022380011287096335273398835231483203006824417303975577589956536372188359365855394718575194623702928700895520190380395014041955783768443878968990379911283779027291025101518003942610954133822390660794163778173934364799489110907635884475639922963882277975453116041848190864673926063433134147396768372651708452685048420993792923886743930941234982275801861162403431877603844230871484152297398883359764710111148382214920608231334351454401453563865550081794797226687813865393124717223365386862672803625472517867361706402957149775717120678887124214095891423774827547274834629909174015915910641786575821436509434149270150487265818646103472308825324086273009329108952043997870156781667202570738254980950418218109006945532359417012288313728033451093665749734973306715408195004890552935380013576792669375972619095563317918839216919763232718372683983217214251487796244739703376633312951512372905758132191185904812463136597143360868224863092403969536369073243419289524164499214959245178315024575941718897039834597523815100774322195471440380343945027645570856251032059479251416197174235744368411054472720565172614127915775447152095109474979758696268191260068752999662946159426170108602725223691523555661242900913627297190329028574695958855565453343252789288716226841529444767949814548627831819358658006872632112989268301702192546566276879743043478546442444216550751432842597524924600438779958957912094354428004503389727305855028189010749355147511618390619533721057391926431909480241944649162763834556978752685076162500560201547580044751453367638757992224061708345360170460028685619935633678100087468501702579611677539111807657911975283147988111117915356715858918545266857473187804687065943343233795435081830193029053543951061520937718888077247072126031783955607561554175865657130082150946783005617271741902411530846883017929123440399518286020551201247730432379236125102227833065795669300019766932534318607866835522967573012819299109576921694355923037499517772005691576103317820660479245156565795676170742153775730527964899205053441128008021916769958698535218436255966449003921678387930861875802534513053327881813299350774410379052481405565181921198125566105061936449819201026415647596479279895728064177686540470472761359822654618321077071631370838742792389004573656808900099913728186149844435479646675834326556114400816802911368776288833764240619484519779868389025716997595388343590927121514084231538492731746004321156044569825434571391013989607476338838250206284374221003569808337255837503290676028042552749886265073084109092966724578692634220647920016552726152193455507434149578629601722945199808111315667404759503766126308990569304545235371137525905331570101744567331066761953130023867194258149649039034231141258047697450510444544474020442008109393024396014401035181679149180571876270324903157435551266765459126366819956962404178145927432564611295830063726929688049116009135699237751637891284769199614676700389963519868734470111429179606129771397901214575370484874471105065639514779221597828967234994484361954252096083538781322226297756280997089014090658693876765984336811667550944600649852142503918421924943460949815944117669063081579940942103907015323593587215454662131502412624202959049386319972426313539037646536328524490481616779002798753664038818388015487529092910574865240832033154055808918118438423801960110634337227711445041306866974639435539714676467800504954333786824123635441259478192205826066859828981965963902287154508110569447830845998782415008847991462251707755440006734740583523350790512707471791122689242537871671960897058459886888551051777426491945523063553517127382371065411624190183507046225343047106812723232647956794081588188238170304266021484661949295782308872497004178509578848639343345686035605245408192080495168406791382153335497409849941964543858081806852627143214807882611517391042026133167517135212627741414350569666410338546824449900780479268130774285768921732036365742442560466269258998177493038352797307348568945969377676895378465266789141227929163196591457389137772906043469208944926806605389162142816857047725006700538833269501388631894239799551289949560130408061496080374654528086090506809279037090664093012748178902472123574905614374976872414683796761237127528694660285122927214780111351294069959293282460437835191226899476678619096201116662501470279823653814017187858621778222181953199437152605951818837018851170017704720435262805390102229326841710995629408760636058969553359603779470734216691498959058475909199461622250318403113063705342198800414408779142380796197290158400747365786369397062715085813293414447532327313771406105330807673543400765300795531997864942649954641083294956906467667122307303669660731455213251422359018414944769137828976843909206029805555334451416175922441827866639479362352052470860381368196696246388673497390330588755536579402507798006875698457264464333889186247659808400818441632965683949678006529863432620268509568776010385841034410330142790601713445323507148347507363065729398009408019891930039739029864330674257904311730514797531466987324766946671383648302366771202583133800313831387130280105013366498091231365798775986010303502306061262424490170928923529573767861741292321168842975000503969720726972593566472176624052026780224940988188950470019389574453797441666340582074872517381469358912798170917565571769927549481788426724555014691960645544663347799323025228191184731256401951602293483998775751819046201366267332240131617853848434322032470201697108289570219093302461394383644158057976813389486826758861211157576180083241797807619548859958851449729040702282984580847905370586274873298145571852616214095767460974181711193835526015486642318286154219541369368626772613449185430343209084428018152747144320521962270562047624929549870584968597361678869071095644434614877261340434540857161833801019524347053571587559673303090323494091756522529787747755723450227902926365913510020358498198792431234255099423492519578804882844102133712570944629184085972427244626490114702225087113696639394498701880567255302530889820364581032794458523011981050168200615791465171756309417252750471000376140411670956292068841482852418560654049311584857198802258604761892526089269255704652158804932671009113691333464392640813429206747399267277738843962391734469528377131287872034297017691973547214900873945082345933537789110390118509205568821036402389943104611908430346563895890290209523187222426759917646817702837034622254719243586978139736356564365041568827676065901329182982738793588219615768692538532128223046132889552797869224898090600530738087455428148071789012433351393905354153308720943742151619834292346729059074288791446357114528395055232650870841376752518584761510499763115768811879803720308194915442432012330028721736324688530209355587379919223560536543056973281539001758194451937984604667919461942131689433719796792248243505238730765653556887498147764164176898147532828812714625708939541280183574407254646418023356239136912635736906080418969843166846972126216502341602411463771655531622022026673955213812077402483932303325164980531759182975585620697594802146439004195372509832138855192350851959033834759575650805066274771188605876796536894796494676536904778750797716640537951073926011314977402684858401159033375647079176740740716452493175025869616552902689348744532524760183065320612275968268401527607014523837807722763701208596593751714057576799786578206550990642217218610078703372026366928673674548143683448077794015328245186676253027648587510965370617839103915721331816061901566326347377211213723357154032294961393551575515034477119870586583221334046356734317555498930327002197425647097690157566657223229829053295708747507279990613278237811647887351509100657193327374909203973489284515187097874215515588840033843242583371575737704913818302980305520864911090370495494677225300525090854037494990967917910789380156023921317855666514681234916780009341526575001230189414663825936951141736152810542859738799041715170954638996208575612537639609140863308692128936848874949734337256915578843906063966155485626466390524675162686930926370659801646843150981792851443432799126389893444351039173663239524756011993937001097929556415557094489083921945053320526206246297994002726050340251725960950920551276293323316635544159235173062236245309429922811184728839975761966913219006853578469499394893302941722685155633545680319913554502556058555602053485780003562113337342148699211954625396996131216270876448931678199182667520732504516626680957305709614706728355858867513608073853418178381729443603211091552349383787268626944691422963901245602362927391776493573004530947924528636522242322761615836275145530368579511748184752217230051453984654752168198872403457939145912177346792390136758081724878294619956394778876187346045598038799657356341456586783304194092399267702860198654765229594369668681986862618633659381917723573079045047253329680784198876247497458221633787726020135206422734161713530032125618747831523829164350752478368627558392679049607744833486640537106364350727611520328553884741416849828259505126324856654890465864168588297778206409929970286554625908930922636406085411326302407581372098677873135966754457070415336265178783949726213498824450966160674238895905486410334765937789407920095025554979677294512558422455467689036519650978806285240005793632184795399809494038903770864113941039255588447507153173549209711694992677099435861535243967991314154429489782298508025598600687378714419679038601651841084581163441075370506831189377871275891903571884046356114310202000167722430388040291934805516876108346181469755765717315487176184595203157945699891154828921891691821880950206207115587967322289126010199356758270891273228712142544851104438282091656872948641884147587729221846717911728837882640860248415782808399750499829049124455657236939833650268319277632784819399866737597059162016144718720575293467905681251591198308750069160232244643428165281283957228081335018119000179087883211013441661640821977122419889476929802887954012505328582861927597332290790990137045082597164091968463733801769318050511473447939036427908446166910725586495439183970761742073744617763829453855641400730980875764245223212492110063599492666998619751913814071115036148540532738547309855271016850029855332873832534006093206982384397521142159061397030748606355061920782142913668124879036797415176533730074021106585435580396619990043240851246652146573697366826269258690476746880701234679934930070463399719196937549018364499801610734434261233591253716779836525658741450608143036079655982050952660062831396736141134774070331610851523887340313307497116338999817020362553084207712199780714139963148872439653359724177459554468817484635195291337829110937340191426740922871202114047708657289499437808803636591492451664635166181578425855422151841645391330052451494172508030538537535539880719630587927438876638895418805309394455230946480203127271204606051026995422739762281528731242105297851336762726205312442486557919334884131455287794480771384820829301873797422692563298876128624182456720138017060924259382186689592448042963039888442172056589056612817061278479330272859043447631178174563692151815360273417122115058846647010521027017514337445962064973650347402261632931483195723917734977333021283234169050592263611258521939479207876435865336144704660913131634541106643483560531980079288303067256152739943416925438719033189466398858766308374148113506716044781277244534080296114332437999416392989608498813736161652480817236429156491140036592648738241380920312763071021054239767735831093390378551333738128128710220223609374101958616075554480146654231849521900538462411216659441280810771523072207274851492810954418096487256734354079575870090341593076300296959286288969170026748138766794800507045020953093783724916584171451527066788078820450948800709437416516267541578615986034040625752947321369615131580292631560458497941214501177268744743659809016739896973671169961481374137168762909759415841914220514947719347883565473318218624059294447595461329024146332085036968715808183519812773549011561186908598777554275796722522036087860571574091713084075062629075966907794382419072858980970939436093381195106846787398370481563256099953087089345301885508007674538115425144803357835786772975727740959508415098939802815019129852285199164163393070539910545454360922359287583500782053685024891487755831874228614657265990737355453164190460634371120763660233081638991291623091619763613934706016784327795368414114803579888008160172930818454214191565205288923796744122290675143864450377911160882880333422239072204896986287546022747326554855677522865770056271178877074880327007712273878837711323996836697931903610284570987975640372040711285071096716534564559482852026046241566107835632115647391341421439059887251437964175362730146637933851237069273896425728039189423376853264782032813172463565824390344770119617998987229579364630801755747507424573267359069198812105079153481127982025390151023972264158077452938142208497451999261031038683455944110400000841351882986655360516842859267805275503680182345645763765096280845135110722903084453704556720630425591845047500217775951241767489921851862810427442656565602627780577389293991499512637991277799374016349967631674231678794659925044993049183627596896821627922597924966184241690423302059441932190085492459401950183110149536477240554714067408668781521769643019406780674616343648898176737985717089069929644888270053830972598577920051273121944654412468445453777726212110458060541982150904119917473434401501273970181807893717192526347114576248786843167522532696966998785930382182649170237511032889585104535719870026932621404167618489975854750703379564085540670158655137647640420443507120140152829937100362967888421327684869380305400571013787418565758766552657452732573156884231747570000368053241293546340331500699752152420391037632759648067783368632961257378704019887990851248324477444597478191620944803057417790567086353162727847606171932460347754372708220329759224175714835874521032237016611542887886578500236891996318024754946677739748718368921725352401948811687182162003708209935918735821161946266449083024203185699627596038531331964066202413124406848885484089134807706475309998683310447978751617535013391676193311203830162081549024008063140001140746902552045980550354589449206361070315704964037712510525229641247636450854588799421192692082812558547177103887274195829363157368225126248595971123145450170414775013941733580128185395848635465114744964895522987946902054006356015606195771408033315811485005551553047921283162437610895257891496778868305581181954145064891458307148659288398320440302495990687695602536997617425747627188363272066824903323100839952207082724955542208465902101742652786596786193258340397751863526097938462006696127366411818965500024493879263564797707573128937519873973897034297695873499426059261322687839291851959223759017854867129169631888251469604042008794992105408733038206622475655277541445835675212262817710635443016738124884805485556904977532136978559568139960677331373353087437350193129579585627536612293066403263652615072967416306740865740536783669839755680043665954547316266276936267667108234802162223746220051030255684621829663884593909160723724802284816802334603617284503397830239730529976767643570813029643205768393008675873192785408708886401816963652080453531295021550148983166604055204161416632243790983039050741080761303861677659146143277124986327487563183519873233696820111932486308958940081563688807875463936400838967448429367597149976861832340870080677691362631953819141217918730357652762055956642521256541205590333512613704801403248175752789705924204207661154744028013212195169525981280456278446165052408374669804400403878515864059143718759072630231124898244959356280216007121140803948025133878647738366975198160624712284166514537547932106629331263165924732473764299097036702747665304669475445975461703172612266728786953230349795122832705319431086151290054127675890662211293665985337633481617676862012590999550366390345625961540623646298323073994919079492608300613659490077880747060546623095355014978298720272032064025461443344539363598705837651849387094159859364997576624993731292848734411331116513498802590080444445511346017225327313554929598741693722598310203370987810871301341999851352896037330760086065344100314918217868088947518715063486480516538738392409896656508200610572095382020965293878109563650777190764411732663517343943904006669084954155252317397733605391484457089731053578279803561039227649284356475898883101665974278105814393149093721972646108596110887993904084659698765487700690620901080755189198489908054519699146204715664349073055727425614769224282042122176945638480371842883485686065077741802184229166630856163579552616172957687928395898260292855780680676089926118157365172987468366865613834160270476160153100819661101805149551794362255313715616231549082275696490679236277990767302780172446772863227441869337546131903486764607506434053068576580582680430790704570340949705827871488521475515869847342062472817280536927194780375093518788098573524695464315109490208013568336936098874933213647977747287769596677907483540248085635341350285079203760313714329951058106483756339831196604935732958848590420215343660176337969256124725682403718022247707141858086332614704293535550193559577498738717696277845154527879070122690362925204034564966711959442677630422129084201741115408331198770567016743891305681720683849218242666532493507683923836150365150811381510716594092055117333309271438046475556466616866861531762051063323283674291900398893342730974668264028550632922333820707436299009235133444189920482745492030750850390652541244679736519216878543430889478296144072057471061738949645676114762481560022644387688819303835049052162018517656046808270559127946312870534991355098578993792369635157047734987475268333274540096765111464252547136963439921453337586928947902188602850954288808927443683623438441106826183333997676244070780400292590976798101779269377294945256118218832275548642317382222633594243861026521422777490976791948726470732022355627254018442003003958141641705446180675015373361657793470987341633233782356941605347006797628540035422932798347363856274166426205007578771830720916892747526820190846429888392830877115717039192322206671338307097970403202614426506281244002147079587470378192947818759641155324312289528829649173800874549755596894266494866827082123025346683162389962127905031168262697168288657230132760061869667636655757891524944322157240632002629049836098911998254185753673262809743667893775023431872615530617424454464607063729866807356714492662108799389338486555033228309873092715771098624514377016792737923961274119274955756280895568279122470005146119926720896841472207914967021922346294481413266706290540922586672065983765431846767054567099866606844355208438002985981768184637553125825393947785356071718363189592888762049190200640017765531093050974442345110542329675244430045798949234781435139487488231154558810274903310870947758751855028823250316878543734649247280239152478761719491180320997277366216635957146770151069924012501185720782391875261591401626647746094164815365647537643229465730910306402178196552939404978485279795064988312702326966374235572371392346268025024791768803518904675999319849869446835501379963263997752665338668910801851810157517460687685696950457847310731045466349155279918043686910793278770199626887281879031249833413555530974605644504341429339775643352719950299150479872673013247400585195248292573730731976340035877129604774034303862322929949061565347690888583665705581091103819876140170006461527037848082308663055569757951677468901589699453393808083452235493868388818940188253055585804458702268981390750923670191882610464412216196130081645075803801558948234422576491439937801096934316873981791446298478493068276548615495148776574600663814311096784499944030777181421694834699768612027618467696617108815313367920658974941817332978705767141875499887960818139697505543049513001524640093660955586318123230253713836642109914239147365403118576808490596405971315684407622168764420556137909650767461491250806595959732056755973795319048712714179052274772147130069876676745531720924510741381505027641411091711636614741293399713604338649048559365626298712016232999136270607422237160898489923462879585962660716230200286970190179625171108985279232503030686565843128021369656775151898503304698490026197986456506031359498853062938602114600883353865906236722265927541025944947304501917222612144535448058180993235148828270911976508991655810442901276733217840173832958254689086159313438280027993083741533817906819779592774427384024068853850828037009766029088280870147981246209163090900524994161775545870127461553618826984977966502991082382842243616566852086178913268060147782967488099891801438207225235673974063181266968487413577727964824502166234264531861255438149132133177347353115104839302210319055355961807381298922202337472444718152981052878437981810598119925465835556568785586976614761088020014899474190658732661206911304386431039098841259151264109886460590249680890783417184909195781277778446050255510312002580763540765896776854287524401248802271680124623878265569508061920447083475463835948043927133647044840267935782365391188482385920680194574105212168703643440713909571670090693710394911596180841696848449139145339817629928732283615826483892126361707185740745038196908148198397618204496281649718260886731346011873592128689624719642195117631855639112355318480891543878272917602209738000138966220678030093477570000238227687442947522377706909986032410747096694570035692958462657475133727639058163718892259445319865758128388553128501092170445394524805285690595247849503506701075492420664571335608354511008747094998379097397704132782163839293840764699980397533783245513234134270363812760230944312618800314461818208983655505753346151807175223160455784977016000675146641334269427200407644749546342208927494671366246908681337269100638207360254092594941400755452533774880546897029323696626595916544428850182966837468099044641274735634208465349655369908249137387626214361965148794631699662501003717707976038444469174962218493599472184569860739538538675179606023424005501879331594400371510649707714616528550520859464242105137603096607651472236389949028302589159423581017482224181271653735767557234908073640705486294837583009805820790629689479848936574295855396665695346153529430925889020223350818529938347344754102390547784861959961469659791746728367881720180199252697612045430151055699160780536578122585965989317141033189478634528066904777291005368583147773256197277948865866295645429800889390615377893784541624608169779652952324023579366902604215034066860681279486313304217603682305139076478144125373918830263101552217739574317141989493373547492356180887673612623485745754362956377339669834869264685303894822181121603279797844890378577991992431128639405703450986196778768465882809975864990950028770936412464536334879981876066433198388510065124197546425140061430685040031385449999327785391520014958489241580288144509190827671980688817569001350991475086613140223211131549810829415187334809998862269302532880203448388735150557811207031873417508131357385026907328748924823045010472719670120299366009138331594161658836153172719205123021315636993847465709871622496969567895475232865927727739910285493761685375965542581379664886778647671204722766889074289433754436594015648736705075913477292201351732217823408030610410334161577520897996648142546501069971662932897270868770629280789583068867525914674407485845439873176962190683281373502556881968737284359289462475353731745729967313249318588254496750991415881269046198908637416657361295839806734007236869810166495229581481902428780122149875823752259070362021614246769948641345811251418020629335397969987102544998634868854938967573775063829499919021504190753213253769516347170603533070700044587530502571692402354652167440394177687749771577895936317224665619690097706446153813588442007289239900793897198195096456576160338378695719665528845293502918907330636595348622975877945873954139673675293548151726152815899576173985227295184300973293137427402920754519708819247103970403491042534714776358647464313750773709304793554352177917698307407055208669404853960067727151693252010396809452921839857983776507404331765778255582610710691107099425430917476046931574505694051205545308442982751042483818411627978596407645283927385519123968901868489201018583936321159473055938139593191672568348731842064455144650810818387754627147003292479191107872490161967763425595172811403357155748694812816685464222604637080168366768612940363126911576063949758392665300445854449894673522978230453350844906646214849168206908559216596660030220552139818392772640318287736216210650466611247280247613946689198762691701791580468233493993634025554544777652071336469903873807720239532581500387696322687496603647392419568232809325198961379342103215004850826629942433472813998982913947017777038035592236548581075182206581658483145463296942255384298912663398872095185032416402045424470516100941029397779949934920051732542921212651027378237679824610470597416649567569448061863683537720728815008268258542199438600766685043833537589135871394668480200287857430338155751669419117853360901711683821051985068934672768549661467632117037807736899814071443399523901506809331213461258725171086406367503735738471080966796444612467024046494557853124171771231257565614441158758621961605864041051145296739411495464350939453676071440832773811510289517099142608634529348758995053999005606390013788634444934306579030189208818964642242657686842953144527242976657325628008774100117030818310788997028538391004389837643020698617076837465618060640723248796899434666491247628796633782818231884516221389276249615542136272392969516769100007855104940871545125719508596658494916179262384033286327501992657439718774132329434223733777773366514651477033038817134347213356763613691766341220493222301160903131576116360545665560198199961617874647447967454354920392499715560842370076745528946846933634128682948873073420707917362557639529567590058387689742616407699395848160707710920114356563062912441373724440890451790124298650969011431114997356011252633516260406801393417886800279257207498935193820920649554730990519520960727081794638529373164099213370027490917624958389133200166073709957559685206646248108907222628740420272476070618180540808265968207250879144362036332144918051026312176777404143436752573995125792548368552435275993443733383523415470245939915237715968929427694815855564524221763313751607920718214295068717195023226536627570193326669840676536742408753924248003274022158057459496728256621236291785222945246944192718404872869453806301851584837556452992617868043518834108358308999687027688303726229054560159511186227625403331765660534499602734681744523468595748702111254669961891466100565742476564085509198613496124208477987197131871897422543172862061779541229185416079608497463234913761168487031369316585486181290278994962710043946391647032087419807081518605024948122880780024174747167680163841267381448783700923151092056171881715396082081457227291824468295291909532923964963589950602709902662789664395131584928074475448739364021742773891529843373131425124923488976501887298032985455698178151404993566495983556441097052379042177277889275566288090272594192879907578401641497607480131721517018081094847831228228145179760959669538100145808488690819470430237564327360673041674100599479352081558743982139932498924889444055030867493500231082264324268832106350832482494935417074792436977772463997463892015936963352340130804660751791835396771663621614942887946479308986399909413462081306637501253046032846025081288210287509501014629580798681934413170413176216695126190941442403824185680684864451653372474447816619659253707993989494621076050067327093194741319488791891401528064200026003163919269894818419236191031149645117320405310878597509305609396412465784736853724821143503743923427738885622891528631479300060693289985688438045857702784039348563128356343510776617914105144142701292703273512222875258452332421446839492337448249443852403843547778702606423205383452692761487629505558599237497162973844024257988400507359742812602434224438316187036034154445902838208638874431383536669733426788103866420112545292733170609355266735057140775290366796930370581249402893011071673644794919267357774528698342644186248144781298938701115682597720868114791077730255247727488953482115330409611105146930712907737359517302646347936068145529713295696949909296338926158817894163038199097034234804230986742091128069838718031761620995612520876233345950356037830104543149759088473694776955943083365393143201479177640600853593074055280954547595156581116526991718589833446116530699396189394646658556319730035802562782833740106610779524525018866733442629871658305175566190857951202346273244965623896056679961626171801091526629873882930587521393138713717573767982212037832063829617819998176184394334066356019113366276440241716753458939267228241589700919714820422906116378317506303214122907740289482323300150599749768009777965678191674570880549180372602942142309984129254257585080565467781482198182728345517751090368989820799381472732338473540583883409375960763917684710941556777855883981448291999230785592553352141034686010284192729066916997014313581032826650063257164405085824604201652568511397661779527020864248319800929698019115832900854757200555451387822482556173034413020994829697003158090890396701945691538068803566194616191055990755748929525737443264315888705992591777963439373431874410584875499067528547195376436441936838613473837240620514562174213303597493323700428807697906712460353192620637574848338309471616344733947490744671346075170957046340490530275304813403943755161508852254046193341603601360073622776030497349483791574281438832457494476602185982589058012274948477885765947595970125236645306936725431065305749547634461120286927912278357890805251586260747005098719590628667322360561521365982462205989756697724755345880497655048174516627722853438298388793927770882474771204087816513904352720634746515695071359851467917714227648602364488448590429034330481646276913165844156506630358509671377325519432779839879875914128080017911411912508492388702451055056450706520751010174759335137097703061246373444701707589514021955699675292369469263368613084322393667113992217933277087754145385462638991898892067901764234857442471028237989004279851729435276896440012610185991316087815665682768140023970228898165690053978732104135071465159220185702754628439806562544009564037716174893285816173093597998411590741079543164623418859760449779859645315562378602872244553691204624287118241346921725020044081941507964810722783030023727725720214308929522726695145416807973993084078412388760102712159480499015327401535302118283897613415487106054384105085332516568843093627328133621772781794118769039392251165957580610087306199847943627505443529480696696426269047320365025152470264058174892204112856684194143604253833173016945617949916319467405723712890808460960719050246493925258950963991884780213226946205614968708822883434299015839381160433800110040538764419388915100857069262738983795316532154035245806323348556843704815036297460292508929251410119546590335111461875726189547326146990986633689081794593292484468739077426514429700852980266324780784393159675842451744488983843566859547965522822916823992727081366832538611781646222774549898583468228859758439913498835950160712583073350296933627382619084075376806842814491470287664564558209954335314555531684630099408295390993966723167950053800747063113881131442420531581119777834138966982354645305376517433300077832702932004063542688059975799134493090152356305161996358733223560976548239035668229004507647864143445396100191736577041530244273703973551139839423934845072345356209502549462123307723363677547302525204805564565633505158919117189594821687532619532866740856846057269061074885809576567313821884675038607562467637503520715544491113403885814259196732244015463764048887526651673406559839596609374817508951464368901037254274832624803813691697126893981495341518453696821811349420061787537638842982771952202300233425116323745943421383946123667056285268427206294227651598577851273170847481261828292332941926005261460950275055010696315263383719961609643394673646272244390549583260255766468196485006916496293328383399310772746259098933980882423963677222002508091696528352860560351107048536215634080425868739934343052381760663596046533499881296011953501817627983503323116131151590238414057686444900311707189537430822776768723494443829208362894654641880146465462870189755576026031620109272153876143014542257184272792635340495943283445404426477226986256084193817610324842326474333323550773864068647810438345841448522854895939148549837951066262067133967181697719687333272770889308053980565415065448920090396355453204403553731011562421951082089257248969244020355621922892746771977008704332406776013969674496684602019271713653434496053399586124368235886812871761916262196389819283541287086951682300007899612806636803737518409478165774155068962565863944182246796718539515129364004408536214742985416305526446036212334324459866108779780951156688690160015469883288070326131108318672717903227477320534631182394083557843688157844958851071392585158963068372477872613342096211104046617838796410132275683367285320612597423653986694974558426007332231193057831822000329020394210177029449555046855555681334176500618960134469965235268861415629713508633021512168882120060500116614725235153801381910864826066023511850877294949432719099973444195766071864780405651874181963706248793006623679877726556651872325460770460600651243575887775687475912590772860077373878374109202195951156578325140137531279287678492294579574180972225701672589966535723577722397785295184073677187448229734734135913210929942710823345209875313170099792092649459074805783734004890484064662979279171261791274747087289233977412398097598207613200823563218916512569036939609216514744751796176844978770749915792172318108654161776029504257070869451110637284350516670282031618319042412470878504483543233245691755207671511924505528476760825591961926145407926194660579129106851243957489531375035497657951471104869599356213595210383422129692405374588134431708213120301355975598493435327812516324580147278875355099294985655905970661399706132469653471384419419904435031970967653838895124991544477447456277361415542210713607543569094899175186158051134452702615029653310618824475151097407932287532991262975619958912800770991270807919508392649703967578664590334276993619668587695229723942326253114123920747947135484533623354095571205463990627175516501911879415286128618661849090770822850321192912554003322531605798616706472786340291418205716884524443161524181358911190891643481018670514121799990926507670529820382873999879442576225616854712980247096259110818927034439887324091753859904868732356732864160170286220944981261919740124218613675965541040994272754746049861887843588572587635403138247300846573745881512652761291868738442373947175592133047372588955892398998331857351692152302966086229108197139219093946433995601636011230984466645141464433776702431896465956262386034480288121001887306542620645443563180142206710666695517985298807508399945999544505080262132118786595586973184979040609718856825838843692485214728008568163316933145256833475255282429081702333762681020608015176435040700146078993662398014976351650466065423932955766270613738123663756648331243382265927394603654406863267802156421033851823649606009474421762745051669478379641842441183001652931633003474567613486706907594038164919840122800608745684209900059135769147642529521871737123375825863170387610396602388864160215611411940558985182004502056802192533163379617484786536476418803813663645905930335048169034435875008805806043150340483073365387686740252794821857776482410518018356537240131263198321292121626168767412305996262475647170665808479310946453331707433968416276925241434549728425800074827009808384764663966441978985955595545527598467709308594710525066503574172593399625251488265501940205170959477368078641831344314360103240675630609060891646826479017787397351830977877811451260638117539308079270991314603884676187989055145286801136788608474191063097756701530662478245462207654378506660263800200743497240383051025247868381665145175757059161454043834738513382801613273434983587849121597261894645771100974018561952988885835778319508753227233481194300826106410580426122006455797635476921524846930319611479991278796681628159109868443772034192839975152071012512585584647442380332214620898749967944654056164063065338069680633453569662989305792480663796743286847383437722661191278343662464824517203149435664205031931393134979231864030897711746383514744913141009987420124476590317776426351879698218588317241844144948248962258739402548157729781453696543573972486825839988040710241712063403470997646420304272381005399432228286306128487845380857569356317623002633515674000940836933821835359052207975840747658483762361213177606834660479042926811862591606549387938097049967039821014866211254907695435992385062853079667959567620829024878922418905319383713278653200036527039453349837536547459144601617084371444518315065540025748960118751461002800937963371388543695145996605215203136126501573757529292629491261397504634882504371854542861112061093965870034089181280096037625779605368612724636771167025446399976154192932996775669053668109329516715413228169281236241360525517733847818154596530115057737116060507993569938884042042043030438315988273280189444893896394913609006942207147119441302241208283151686660590715186741321769136760681104114817441964462630114058919342916333427568163831817567647028646198495974567127793165036506953760632329473757539853937487854710065839737423820493837499149544745099209624196784998721836387925803001975538776761412011770847300135085025975251546631683813192601346769612827847085093490258543956305671114509873233346786156448260351737373764977768909568938091598472012890171759484007365457048027819571176059729840692868127479229449553706928680826584132241535632198600776438853931213603027947428528765040356014017703716924095917394693285800284399924887802929549217546895220918827374547533361594916327707676961191222923094451614684139351338328908969433868501441014772569061762316858771181969314556320876017093796618005126063102450482070963669628236450451961397281817943438793866434016171425451355544143417995704974910419747686548460382746822628226407787279850815768272514408135204508523173154168383010791554110559107457851221826880620733490247896627244558192932850710496320743552194381319280825456242282648374942816828338379189713323070772763411084353056286157691330112655210834417281276319221036498372766251376137008621345336775920465744889780307776907069272703348150106214878928129739409100300802587827061594590989913326273766619106548713467902790695346480440768386428393731409497590102825481616256512291273474112685671047223910093107545914709456106061760911369656329970120642268160505950226347189072743328162406062374752573699466112631131449219595009209270727410108846110195030624796772440613895733246402254481061947377952516750525554248964411110042427496575370642482703348327703398819666306151866576964482565762286711841106329343151812243427861944774345593873300271398596614234030233491155632483552368123819694324059596040234741729700292339369318448648845812731243440071365669763039573608203831018388588659166148844089915191820944775964085512326030543676169035307768966510544716481466698909105550833165608498861342442845903739631799496422198471070211698645909357029588314733987180640607034219946254836491905324992143720829584627150410226314205726479577286354794833649971982366077893578204855922785749428291078832983115288556052553938070522293305863200146060555702179379357623554897376940107671534646228155103677096037808186517511413964846782672714598254943837227557160425216941825512595777463831764449217010186197244296597962319404868119233321553682486927657691228012845659539673452483405725689120234441043655153930578848268114453770671726136335845949471748825986755938526362302856933333974842964954728058281892282028118308961842617063858712171305453657989261973632120635495143836752423985140380290987139989623950067437735730258755409449286973157292767183051422303476813226862844859292931900130047643164283378340257502500604462443415535820507664881160731064640308170935863601602042371014225565395071498065698577613974397715618294386053483624591887839970468997766000041936941266450542284622553564874481367023472382724773928685429376308954421388514073384232791438115697497204188562599384444240411942618447574254809783460704311981167118605260035096604076957873233500527207117985516282756448725656419609444717245135949715020288676802265966221134000811946553445011170257775908224484412739535057957556722640166945299621583303494279096246839972017269564660977280462106521910885943310749699085024423901517471120021536104216758465744500330943658667807844648250604716349683909111757223473946126291597279558361219212622761509231229255814783674253620055387385480545134950441668588117461212583333529227581518633141357291288087653191909531099586058090680243791059098278181531371474316326943245404825238113453119285416371876598841457285797586568883023467253366851784909115292314140017488171053167821704459704030765362462214707071680362314797985648648096371139937798457968283108321382749506118385768366913064564533548331622573578137159399673111213437901108333830985214270809215585388562496694439926262965111508992001413410728266394173583436730945590105222296317103890921714460184193347606098013966222912664796871077494253740555030090298546682710037279907482880809697530702431603375828001834983197374455607828111788922979224111407224491678556475612830893510038123918930842004425203429835554186586030547766808306538078895080918752558583753966646019963128080982301723820609557940520965833080432930835027109370663887349257320088770105410213775275150887695086648586788149073334503152591525003438718039354071984635894429448505320040164587119379984340686564769414759049649276629082148453794800898210850230652367823011651173965936521058462714455253425239728499561511953799765285995780750548570245506211351775792477832670839845985073630493155463999482735737564025392286390579657660124544523763818552470954800464994057062152231330349521014379278317924495229489170490303068306734452075988609549097012753829017939170930823050037310876089821266642334751421173830590810260262527706770709374015648332791533185294473670110717342449450612305924895824596688084390963455683363393194372868678890367380598796219193967408333681865281513483459425442093340800971652556841728756387963502293656758752629994234581646223518218169733274559429620717739808851522518179741030706261090967043279449235758299705854689972810037113397777397758508581093215367366784053955344690824189632230188651312779325073120800116691339833020304727757494124379853182957280476363768069755016393524774681098432762908882945805870532038885147391602202866179887561090402333590762665530662367060187798819915675682718187633737351454949579449053220887375390843817396178217100030751993989255778190862881941651829539498900554480467046895074583036686485734042365225112647602912771997910170253400346362843249548745591243467206205860549448313211813130433452739186400394403465288895117330159023723827812303765779697918719260849834857443945817183706635567710305916504550918686383155185009538250621302658681378007313316263455520576284579057814905700088744182951802559357759235650242072596837120219937153059202370197462917527374879258307753950556941483854821101837216039822555272400967662587783676576242870005994435319120847235751426853456043296067386831193540815066932459722256475340142261159608439712152833347016224389814404889002110258366501270377030671934310898206309378027375897212121982516446251573363754850269690298908581581578973185714499969081820097910315479622126224071183251770768791805170787258962112794637922195098708000854734004101893733356427908129018199626663060776157632381519325843791685110661245746406203330156434140161895056501451796029002956001201848553943723727759619273999271893551634244128179603401016656201284772085674866149996480033950233826987826310930707088493713642283298156096111495536094609437703924674127625734922950012063279145940799461913480178129339940406197774393054731751633487880077517462226471861347353630571051953650480097985665531769862714990593460419216944687578282288353497476853358613289834664117316603717236170491721070313251053050791930554859076688784950805711617582881225550794399251493464962943276213971343573902750894961818901286006351117441906984555503960621042350776648989222146853304851409581958442674702249551367673081585370319580470891394366200184696874343914106444692943284359975825372811276013299174471086207818767136482087081538122164549638594946945874406348651251520601162155262604987935186635570639081193065342255401442156508355917966132484703073756930302582034687869859249536331758865572946209100028658444351372311355376765959550078618494261089449280669235271296008689195555709965953326173633566962121616071528871652710836105488090689402837956638710202998673399999728984080118649347171610760410990023798248864518624051973505026508796951096450698133753097944079726584650363549224211643503133140885131506641990519942277052372117659476152998927123064139517837668709586078887012585733898864915642686519436575292029690024787776941231631917455491217027507915468994659833820141513871250220770266361199610166055618951426208389249689716539525509138994341853323297113511592939403568465879144677530561976743841903751421528610801184582187836301535318933678094556588355387635994729105450349333591210107319851313129788011781220661508318579652811462856711803398126387680005648863337664763602751778163872741758542472724938330957423967336006758966387824315860211692690850693712865479476102566385618208070988412861464109136282000790632972066184186816136218280036365165298363064675220487159279164279744711081509078816549429487811587693585594571432629586727553558927624258895039761576270592057293483439261027620578349171324611129846437874854536545159805836756401622592936645244695399801920889391496102821912048966634474643779121391192999165012848796536072999148562926403491665957057312112376711470416835727042942778920497590930037153221542421252087747003993324670168717900304353836992186182762421498140396923710436659451523912820696561899827224160626513400367226765216615290552040302143598887949244869531293893404074132381783619051244267327002325903366856059370330961121658650052869774441530115796986857572669173869836732706168499771275160468938681507819368103781714123015465390646861713438597519703694931948279459450176285262001161018383426174169449223734762623755873914984393547220510158317209412561106825765063301058138395684851452099603790613499145318481683515881879541126010232751720364288708144533426299402422581853039653104618795798323604153120756257404167111820971068849374011155004415435399587017298113858427885668187846485125257593137938708732277018227751044254867269700274377248088193276441246162507485124780384491349861260661488922150347179366143990294306419437701762499038230366397741118393013418356556586224333307991914032054060523634828349217499826602730050668575051124163056138604991678600479506199005197184493525407743318513671641699746296767240835422683270992098423172074506153633833572569971978124003496073940686654546721443024886258095654603241823470836904530107502996362658197473293382329340612698812565853747660008979536465631947928945244014789413408573618037094761935250992680050528032881494817562846476938699668199770575606566061093542273398498527826443094800737120438329477413848742239221755416980463220834584091704817607005946630566660352417570284721307246104419785702862964826039251491437192826190021328566844150880404463722996951360220295889051263550160026233509097285962684971574908074456801085478150612992160607146339206308987528606469261682804891139969686772180047072406474295249299080901921993656069873833986899856099674233757703136510808850392153309381124931146530672203899064931087392953793125668632590583282831628621974265645597049455455734993207967293684666795291209086224721891865723570830672573039065260389045958802604028434559127279275888902761915136742274621091025261946120066715269946426968630570654265276418838127732613865934783227995036921694405885563104976206372787117690224622538976446914757657425062057386901840371842301759524302522893483687906829437006043619741745026370678634172641974890111427921018296671254094888632446196724880781856495529818607988852699263080890795011459236755745148246900985152883387652919025280653318516657155646018415370290788425131580133700293605637166859856244197052689084284783349551034219903905542365164702051276126983715596686501962763299188858990918308731075470910821149649449129952500190881532477993903263143936621918505194967250132911662818073545886531260630394227023497388001434057462888626316535126901996082359908014153881265389311559527453657562637763391207679066165240126835516623241862341042873505594815839453457734723410875572852158336460854966618072517446434615613083858569063592834997154935542979086463655841645623073356729930079546618171486555442761479829699512121350553639573337731165830235706439349967510998288397837123147154648587575217335964878602681464533954472499274874461378508556625936762564935411654434869234508252745624320860938606181937071319361801051477097937598906605000980893870065865786139390128526399183318103676338149262494271036438249104005268907381184897784423431332345726603415243152856908679210824841139458801331422249905295937734329041644593481109149969766683491903445529768361796848951348867187958159961382572812655905404460682176602830680948520825982241968184520634699878353758762751647620012155424017552152507713663207557908033468418332276701673478114141454867442943187697393377136673134124885444034123346292722925874926449568885022773613529473995722056316562142404927610490666217776865908661015364576977462986883031056381134060591838094392759929018558522312683800619082246083449713871723753245660059866970510630341679645867799519011470268581133706124489528362818648739821146992770851177424168305177573530758995958271404792620689764663790247957796095416364356865793252750614391834459261640067687579122273177028583598449331952323598938980462323674440024765098801694383723552697951913141222707937715368651349522022314344588280738028998961396707874683697158298350718577930826037310171066809607960006828258095296074626875882251305327446063992713901403154565983387053381200476970752296752722136477104663925383902661942492880977938604469333974431588112554063391543168206394904719308915371231356495559601671035591278013077008306211496744209140070793666223138225311562760080144757250401038235595765651071275969587283396998443673780555151914366332278748178572774116723267002475020424128793338724323007634124295885249729139338751534042179951349211412295986111551717993210027254852210313051267443175262946004837962869200539569877844808562288692075912066858209357213437709388129251004474071608504407166223573812920894575922150387854778216367877673002286746165635234294858371268336836370558243876027226109303505378006664814221908324581125763368425895488778163925449476749208707325464051278397496603208261346349528578358992684867905798578310028700734672516975799683667408030555058115086474581436603161909891666973748289528799281967305563750018535942242892813055745513430370000907155281249118026762117102781587821808497226080340486053164613143613005827639080169306860490887286915858349745036860695417312805361221861691030038943727080099461033754125780292717802293323687636863301320596238042329382719905401580356802721315974245965416543024731033700110893401094403585997049431726273343105801494398537186701470385546657523958676756559276350593747216585580320996910849154067225558904735362245626430004427469659358366916208203153959838686767776155933620990720743476469555961143830478298002119970717917360954541833742987837042558077308156390393053625225534517716621620084195969406486857664923129704063040924434371211508910021015920789117300054014718950843214483563508690313875188903035647920096152674641378389042089133326935586692319367436300916350933784217882923329101857989240701683814100395218354317309731320676087976935907268369932816253003076975656774049655982038200481362875983540965312036505489931812661822850881813775476222617707723803504511845977110136740259083347199959820678837451330793866245436769258325972058994941435393372909849594549607677210502571098934358195377804228663864935231546572700314805644480652139669193695371828537821663465959471615890444325762654581165830113435862282066493239966952411869376578356808072283248780237262142182326468975300491276230484996597644222447789533225254478610269822304929969699883960400445984253280371365670148184830196916677271854519440166511947261519326239833864097513325477345213535319567867634919141531848777551089001963648598027943360479282064319755482132228364710572977034384719639081352218490972483239946738462890556160469699020701623785291712883103656060670293542298250405805285987432161894700539151351718539212707092162221461525790540042152643110985401182466066508742307520240240980056929958872131626410697537015021434279018879173011248151635290016266586073051687445078186921084243204555684594956255849570259158012325811078857388050311876274220475774852702363634349640501334666615402029323258940147092980069647723996022015250131593465215851529305072533383986732656094954489237981966194928753519211681780032968624006332825947136888406180641296236413642796264263139205233522462908941433359229502813109203330318369176054496664211053738139932941199055111963507102569479899162029094132354110069759459787221794420463916575504696962743280934892178953925317658380849873913928559511280288933551722634112605883182615613002198106609997027899258525103224616776216397212120691899257131237007349719088482206537333799666936399284006902819067382224338530166466054870437572673715884394634893874039930594667608345681811816328985103120566969063392275990896564643085301887755188687183261217901930022048749352489502813865682007986144516052409073077075160372312800635086381243580413366461354175539546406351729665932461479536353056039539741363321534304042009118640775822674925793454398218221145338120207884250660800417100620371867055888796036858980494444225973878575371333588771900164404067358050482958917550789119860021124876547766694329546823827373648402446631092844347238655548609882433620769688885083468239939515445037387867208022156396363355997217443337464107950324125712336496436942317654832341791593448170512565937502401734713381735136323829760375937913900100981824108729715184467436934832856670355108935317132299003249482546804907027502373601604435124341670990259546232816409947133865010912573096496933731978998127770631521281630141354596656518295120087729198314235879223017036114852207617540025408953563789759181185022497704160536779430782384500651613779771186411191251866821008359642824269364946923568906644558345834624151044052234959460580999348927024552422131234642090967459805463774206871981478148048140117189281387108808364631103062733255370169371326017537440185246809321169310049487059097698361392787825047380567266913887428924520296032208857695031075931670934493562448516887388436430771272775837761298106913074108137243435152566568513288308830624208559323718775976591769255011281918315518250873129797564211801140714090087633377800687850242888836767125933959216468744638857507494628997590042394892424887114955240827897354500722685996290264614159892807969204316901710189920315155774528559750925394422600643043969350201257498508894462608337107514255491732526234160547632590689579523760376890168958923722495121449633903510669673975104899639681785904687807011373020966798831276577311221880013381974783602079873765781393688270687405049623053025921386791326219687803781023357393707162013747143698727567438928842792347104129632844587924302260504049775209345514236879771557893103866162202131463138563434331623261587857169705833392136978650050300645454056956308860559859496220915234337443390198718802031137987215850644168730407819837107470886635991086961018913869520372658281491510173963631179521847934603240098220982933326321977564903263681860522399970005510852144646652934325361838105817024772225167833570078418211195003157083227772631795228032238293881416506306344003831231659353747300997196862297775392458743295232751858096440099345740660694989940660498197021648556538768133690499255652769843353476615280306642990649009501689937351333668049320732898857167964084888111231754438378350520290891330605796019264234251857990911796367797255177100312159864545947169922353502933942698390207906319837864489632238118663251477491007318949247537982365818886070303396848298915120865525269990987676311578876610091489295089956495288274530921124844667719105433212431622952368071152566731516381395704727618833875680606523473510338123268314727216028152062283008363437151813950705828622192746810119951665500880134473261058846518228949598058128640696173538264133979675178530607840548013921139556419041277348628580404852110045628373861726030780711003620268027281798186634491679824070490861377505707416262460521946964946101503265546766744502255118562177911002274599604999882511818543918065258735270718844569138224011981076558659810798990169757345985230778816250368400448452322336699769556524318813267855036739755819364713108362689486394490521474958410188547755077567713293596244424109478657497978127045741513097194460072149953068576566127627279009735946630511049656707569484098612799415989519657098508546090347711261623566878755748652107493753331493945003266952190300333415306747017467878872574200975625570089026270182195392285022294623155377953902703467079726045806474573871446439001142955090481771811668008211861968780630150810295997101709709961706224208623218878907032872492460113118894238731167039408077566657296173180377668984155470575041189391087590238589285879638823995788199409764437880696734355312730418911744355143792965320915900019623589674933225344765206895541452993934988629913869314807453011378674677899318626380302158064482312896476522638189963004764968562170053733461360838431858140049181826144311955823534288367895306726266594345794678350402891874035894380064014671209426653061272863155557467379291835428408158807075463368508394897313090325765582995284985221973959001248473519992026367070812749137499753402814363215298070958321291359605552245400977024112156139855471502554245641500673677018750252180920231213605513405848349209416678012807707217707726873868973825568284917161374255954677834467220127283945285820657054367997930509694519416144075368223291914030590338488752983464230910196636042253680248065709581576147415841105176651950291656934857171501653548815543231459849853137367518986365215113861770016620231442830124067850237165122742030466093630154061959633419727824133559302181005333998395001946375551281502790153394574160611372771878711459695086865806266717421928487962820616459013834611256730645523429102106345441333279282682959451788014542531123077664917018037803743909078914457438694628329040452439668563993041136522163671450569651706293642663052332825244454569444401233780243349835825282811835430568976596807808860709311513756027904798084478619299657621978955413074089481313056542742739309156237913294232082478768283174097521350390243530521892878696987372662085296468060328458778660525225895861727797414133692940358985227298739117449354477780051087379446350462518480622429924078469121036364403535244147918607531697376008611490641658177628884074552143559198972571447741435451016586109756469149893047928494864503044303457815195503067606338918146879107738329803762974003568997448517990196767348682034221134319993019097369870328902355865503581392083319044688427920470633142023789410479870691968835172546277655780695327518464001489991439257412735670885906778762304462234526188617543318233482538402147500119662761662546619109203913649618757646940849797938112211427034964842353396172900596382113714714424403816618273601585895353135884391955527917571621313997375723818302658249294443815632670201473943856617267013121753179360254874361003836536596071357139233670802204230874655462793078844802615276394541096643060211179978261434847751414616547414692214744082370619515456627396759225919543589128683291533922091455622554939043240335567533376022904192271282462734016059161469683964905480513405384203879871976580082061835845103382182545480778530186495569477250795570292835095405626815136260776452008815458332488118351774594403419318418768843430710469814254876410713480156368482739407189341171644067019788202462996786313073413727575147570680880348365337343667378991438195468222195267456324567591424766091638317494109725073678619637507573564018545743753386829648960354368986232724222246246473690136661378946282915668878554219017437765102023614991253206187540719224849795292479901214607956074892973500147031348379241186153617801076358549936710507680021264997870331993979639239064108706923458527581260859781243920254162724394965640069493380849971302189953408862410202765522333480502914993283233728755007248715936751232799118016616335514602762854398112090514293711650142277986256906823513696135742035917474328393543731403198786734132577847828344159246006762772660491280676307105487694781203134208380592511325179759856872497497893422468862145397465063039962404976355394476760991394788445132349620864586371971603897147717665673682275960483349635167624036527346542332571423697892413118750311421893637485680507180864290141784433501942468594212369541311939699350255071363673163534079133915417362704726640542068811729980621301220695015663842643580218760803588497686530449968524068966656891887082116937970412686512137968811358198468490806161195790816738849194414869504617038114017992323590233430517022954114000891906362653638498083010201799831601958946583776471373771141516789452282209005754072191435690126095020258344242248914463228314576522229152632654893470961251804918940428018096183292391828916605171068187015800215782993316127503086467640574607128682063327486361063483259620438590298745449572342349778051663327305595668696700089152099307542675228937223536532170371384643567003750223380796826008035670437584028213929842572808018197994403773595523388437763044609218351361217889382595010447718446363538390059993619160259934392416630415019667898159171712692855786514812949180501373509565290633718820440140008539956635334738148201224409825057917558727053891087117252519767212782428294191070266969563095255188965841704419789800361114090407906489435120195961209412668771761618693070110382965290639977319928107838177021377615307757021532175609632932742730513579453560069370748112802429700496281196524027299357838852446264888431816860436604603239511306003406730408191046380457965701473718836199969584126055172013852508879729486247252738700832322702768466361196707878866412201827691413049320875355136866454228866528733971932182477995075865559233331851159568037148713277908355560906733185032076403902539736687434517013158203465038031864947806721290185186304807475570039535319644587934284312801314753092721099286122312963687199225144127136469279258649318349699094584417981593562758000874488317732697068840747195828676636484651574916694461214064725358333964783706103523300462119979328814134675665360681530767311168981500183439330180613431088834440624178443601287681543977825549038450973190610542363678548503695938222491715409605338094150878302052778696175853707975576650987923409303140316433554846753771466574873658860531149155275688926375838689380136850159502567435090604954614599284226489727672609672142199847703865300469310650709012804956983723097884901062530969452836076575628713321691622073664126421103405495836113143742078278527860910945285628474901061623457729384175916859772289471458224131481609794459771212481829288875247442649344080832575863967724382504303230127649898538988674816016781524385540446671914170251092149058397114770767529943691559047270557047688645640820143029840162402216685354494768811176887569724960786267486184171250180797352992283642705568064903570463487775458360537254308162370017004920219863766099000171749208619604286115887996530842873180739076950704143040825350316301846599179322497258329795358766205301914625985949355612422972018605246309813870192220866926050676171795625814843122200026964189563721676745583640889784056206906660818299126255752452791995153502942535753371497970521683710429324623543293472227445591939891857022162531098506902773126252413723032443469573792449205010525418240625197382821422717797887900050277596231668017146212112350802180618637492379706744764745517512544144567348292767339614417005615797904261387953841714357319526189227462719720750842270490825378136977435402473043341319500014958851791715293710370859873409960052385431360099203685382756891157867366431743571389734932641559525009169671534700938990535265371213738476505193830956426838059063161294820043980142302556875986089261501353566251699567609640808061130036433859509275080624984070479032396424099255731242224940637039849039708299071145934872813822124368189148606258606182575491999632401272625803433883217014220227617552094290651455799357326860839725062563816978428451075016938131768751747716724102667198620583405971020743243674395154364206009755012428458400047409398718160686929197932104453166961143950169248426257158923384381287267949687809107106862917698792174325380381336111603819977954060685222689921626473088102139044285477326451445886542192458193987526908790851246615650888679637595935673648499683728673500606704168523679032433086592729816976085085442711580435457862231244556427577415585483756323002667821058262965137032973755961459980579394336127281711722788914914717839984962669776698028509962566342041447199301561307864566796767003062512274448088274456518814897562905926636922380459267177120334113536115646597797362118954099383927020966244549588748154879639115713149872876503752961219614783371139052758743474576593382845911921483198915948412014787417791296236975299415423302042947335316807269622550677819069680997082512607731032729912719427641901422228507705225134347832559945433131420784838419766323078764957958947062412568657013670440350412488014755914788876875193719675836872691181142987994277782896729916398205703308542407530241162237055027647330924620373268890021927659938801925987592031826556416806580186981633564744624024975256623753800231394369405273418759629168673603934921153198012447196387918159079928977503102925006052739734460053236512550541239161829543279682363845349198168205836403147886818124589975011333887384721369682306737140430038121366550773358124081546530980815416573514216088214887946517870010660461750856136617778698919731290075810816331003824104288170151800664462630830305019323661027639992737407056263019298185495363675333916574159947894819604051937459905667500539784776497795274249283926452747399276201988417064226652787164455401986026033524600397663376287000046966416643087659286795209000809407373282786865872354705570717297706057458964320281196847676346954550677443894459018934776996596136944544570997470991043996481606307892385047992284086962843426374071642384326969216789662841666462144858900611336568783370318139807218740081593764233719537524012638767655120566902390383594045358841175967274752470162592901282257426641645731746656126914568860255990426588348339952095693862320413258937844257033236878567805723271541004765066375217360131303106689036756246089209376249364294922643167734986888079268034831738827379883514716886060333010294968292712436996278494131001800824847548081759902045414280792986223466630069427675477962574750839873781771302521007840011140976673180440603022699891166738063999176305419410667383665359560317510025920092946990844161978303497146908035922730000537868626327841655009247281594022023415918467453448007566100072464033021470520703566364201562191621507045382521378954723977577938694682396366087366700996748093558875783190415211020489826959562978683459987476308432351571624836380110479403732110520627797008907427466215010829635822114938572867954899796382020183614568771370652865706735115532725309552461813211327116566457359551050553043776747238195702226993579673809904386075212537744046575094214218460457703013720454800902285801318462758679257288983656040177351332805804290435645735589637385485455326145520983189832257798910211874914405943507650543217580824576320679021809154014222889313092528542346007647449285493339243312922122561429139188218876269514596009765699519473678125037763677134435294674665279746599933103001668493844769266457942983581536142255177837692013802460777982313228213301401687907395935448449692197029460800089995286405826040071442958110922373812854467753714307341622412276308127955641421639100976397528701429874368419806305488014366902946510705065220466770185784947511914619130327467344341488258523771835156459997044898345624724939125226677211479263931114221637672957535160697796780848783893850259904489088141103395389604604843229357578624384844581163388558259590750547222958556917610881782541530423174117135751974294463804194126588255214089776526765104743970215379208329783688428559385371301498868138374476661649852180869633995430538127054239283033908960487864221083353662465654087034987596106932551466239162960966497199906572284015868267219857269103558047392781853257100743174438987311201275562438247598886516780247805800176294304715338883934414926487036861579439714855972954293690167733108487377024542049408357560594458093491219769686306898335589120687796507700357034953592781712415494548896508530312149285355862995661050679848140530549716026969414750708126312253996694216366267458754623565452684094036609726620914405047059019762528448123629195382303555549799086150673290185383403376747562188936540845302883667881317284694961120928297423480865965529150784498446050168713452775433219042585651246754285040688123098447526253970980999503682064842286752511558673878238611337984461419633907061209640864701621579123746809263099125925156431262284411968378104944587572581052823350965129467284173619196912698762733959658641194228606258284068001597969600608795037539901772526421675784826906342080028514472209243905433442623843009479068140345991800748935212904151958473724246912474469991336330393288712720373483468666494849670741768675366276155102962236221735957964207020657501053959147457663428877886583620984719642337399587558729946649117887330597558352822230014175518639706218977138748874274319275403913820818933079850232069441162400167936219050166818327309392032718748054403621931622547036875906882292148726587891300049180263971184293198685626504991623304320975937668125747690633638691942171232455454350705393131823554983895954028405004492093595298485371044953965279784018840989519993062142697292911147723940791376108801676984538218219734808867201944054792452816527573855399210995610200084998227785767450330574326129399233900183809960139621918397319867241335315887132307835749811398421235831091043841761823843454452661257711764211395646623035331958294176433627600641219813910652325534597671403134708426894139854835036878423734943675701825047928453158925650323196192026035305471056877456487553578198816847704287290354834350582086078312022864645280287113565409228197943557487991779059078516474760323835013744283246538776998180175860838534577070230166865757379531796501631078991920121655308217865762575474317725244293920594952331475752298594178283854588517698446852773494443118544830235061190817502404357641155443264486076802035521275405986424009293094996560426383199676408125076592357295080775188793789121254092001043915657996086563398195314909372045654023100173380810498035298257028015286235507365296118639963643634722258752709397827875901391834211802194819872352704174370163081070983542313947973288852255033377473701630700243006618506411518097805465176612706556436598563905412461882244433555377545780768827741606981050124053091871660479928943669395972891799749258442982238074356652575143449706334595844823963601264415000650714132327481658093362779379754168664415737500215991834118503254540874657093076779984667839755111973608626232008459686337497319361112533969704583308800133447066164197173149002201884843967878712984339429893734434221283470880019035188946210848052844219245234500589433644042652922494753501214559031153011833865496890337639998797322629241535945774411674915223834454216263158399624215407789599687338465243968534125398964137236066770336478133228306905597846723196893726771906134627455898649795952808645803940160894972018084759446161472664671156098741752216363088840614986406545153233126814672288996650540907747981628937908457009483362608068327551923817673520609558888420455336914278047479551527743334762783850779143740462710185264803845449840746286552985230931422836899775042266120700248467753694139372693461922885045593591566023859475833191535336609216055264214386641784870130389922259919110510066277123164061948756279727802121372674949255223540558582379286576577399232175341785636187581656233326103746367862601617893884590658349944499383242190577294056697799989135441302893972488593648671453441004527282962905403166049073367229229625250321751991207276008125481909087522611727768340991508612062537408354493127827368601253588567512109045437131944216918551969672828454596571421049224334891636595526813812394764792892496193743190789245745650391943256668943815846824166536674223178483879582402093591403152873730147562666133404978451598843569943432642117228746061098730128725455215074347170611388814609506506976428679947262215250241869349651489265310271576011986943644733764205708130945064360754677578286075451851164237115623314117280152687087775283799686062506237093293359554092609285892141215309720841072300739445271008147854537316726467888147966901188348336283970947640663287963213050697408415701057112627801186630623658453885055128890112841591159129892314876143145874065474568385615297709362286686643568694372359057522420012925752604138719400805344840982291793894988746162885944644447886985187399807570358716602598695569075864601746847579194043634740371055255540270541107755741857833865328632191530331876840628931348183258406953459988275863640095807369079509455544836020184162857606057834764200103990687168514354905632546509841230518054634041811424902560376243481416138670422390279228604033990333842930040991322953863590584147578381859385514497576045230260899327789346825221260923859202843135898634431865669486932319255025580217538350269280475677147867969426192524920396358853120565786261888203384786033188830541983365386984019893664902542254086302032525952850608973980128283086620839061864842418581510876331674245747629622044560011729402146415020757256527927391157633027236102663839212456859029053021906337705756787130409721173475631620093045879233262038085980012382208417349632299831055659459003408770696394173985040708132401905668406348395927689881647281476385590668023577214457426114508464009882993584763950378725689085143350152783776367854497088294428117380465799943813663298234626393729055071004104021440794317168223655168883617708934058773704031965867622455577926613476556960621645867446144040949091222804009219089942994774299593523191685903415929215385930362046247043175276916430929530101045797429668561333635760795741824513269638598359932339319580604104316233793501677297959743086452857861141208064946940896986055815942877743786557378102751844595604257475636578255389566377450618683606494831886810223920985898831317970355221985760203212345901848165469749066059621989527716942560439823520718459330405033999844354401336926962355506426610778624717279705781444031942564465311615550865688036437765439692818455183077127312823344640567497684755477278652341021003762890440106963450592665065691807268584850964918166332863552772851803415176420277690170837094289165322458800894525073228000818117979542328327160735909965791551315601599935907385495843929459307976554803569828805666742393240473111253689005836255910207445798590324732396493147642680193650678739533476052640721341366650095687483867978785100640364664312776505550355544999256009752039390933881373751615048552483377144221590494429263435277284600826757709662571210643582461990214196430022591204885480525829655960460870392188155745959996658154611476905756687969820851911422106878937817042078004026610205105692643657350804372149106487772643983094860981831662478155471601773605939209338618809910173830244341496740743906373695570393204257413593183313259497457830365624599519218588241072557339641132981210560793745439143691473718535775445503609776887567858593021100351863564191764707111103220084200896863555424644983543375243701958503717565765417049798245838790692970514794447271654097729305746498881853380720307483256725487659163001023571665926828463295724624697846768416680154114139716729706301697089255834014827542343925597829466338046480304423315942991775189009098761441051647149561768864909185728178068686403497203866395463860958486581911962869787634562158891191714540436354322920285379438173075927440711140091576292034087217470854743692120165685435195933467551292112459319921769395283264710651174742383808302528034550715386988766906155102250760070781945564463877891335382718819106355847504629849846757466056706387524361466525597890595289021801240120830799870890491100417343836789468494071594869982764226720113134893434166692375787042150785868948051025553219343498988853390872399317930662771868306555033516105270964833951315696756628169102249216403328384061267170382835102909100334872619426713101269236753081908054247634621605714750795576124987416029267784457464803506458617425986115159909550985423991862084153693621033567000011399538392677030377673207175050902174736845366286161707306233295895805141575226730281713687472472418657308739729293595710700503012432298500222096863776348913716564340569332141862253658976967703011714663619343312468343677506574941943860031264528623802484057620699853078626788490463030529434379603278581741933769630568931597869897133524636520003012446112238665785498036476005187410370138728461282080401541848069227074803011352855492976714464315700845066992771892887416537873111865006209706497696690311062310238217169380230795491985194681960545554560212120432221322529375440716566671976376995107626565043243593718269993204573309365826703455018624591470979048268355660599674005224023947524471387356994355901912775791876233552617947849086749020243418363729456580454840799068132534850837587946719079867575335398563741038446067057917231918354753630128390033659614075604239094260982356433958545366448086653554408106227708405571931689119277204183734302402392189843686119071200754384645954432051577648109778980342480972722298577854415381488121215115014520415791765872760984532815618253511519324209324831982200109314279122132742289866364816082637396469978467171650530433241562994956863034550890348219084413834452329987285309613517696381310069553468114471077581935596387298685501324569822377995521547285655585633465960743784965337796174313654151020048617842257101076673697756716285735643580472182161937235338328009073799385639100757388622960945853844512393742388017945686699424447797396630796631382316659813669603809611297315538413451745623795077973134266193051938942237877896431511619177507710913367650482655645374030114215060915640712835024576360563731402172871217548775572145498420237530557676299931123932391777253919697246553485629443437046733342311730376065168479430562224475652424366619267642752349111460539126438292656145040755602538407746606021453669398255798780592523988407853169231232756820616519357268282426308617770816814435145004616868184234483782812619644987782044611270196359587448370322333293595818285111045414118301655330787516762337478212971771016891083609770201725898407772087582481753521271094479705257778144289131512927402306403850534062486188205239794463692724314725209458338020943477287059711983239680917080704038595783444135691442628733842317589083295271709455698950425013187378131197759319811178585198547827961899116664935181499415360262404589205733147617644836846935583764864707842200539313642648623799912852940710556090477342246652739023945202507481561440805781999909700880188511256416626495402629666195000206431492213113506606128871148312208466933947512845258555542403139583954199909744266762748789863519760390638537027055548672118301655223788566530521297070234548719690418245773797564716126800323858580460981064661409931397645195605726538568214401707543389764313717509312771072029705665450429817532682769753564883028604864801122341996239232012877494148006605478585615531228798913604687593456509601213343170017152308640913616561824542261480433389967069765020015023597702007800350447492641874876845369002451995025794012734491691473010785612974709203905287168295229691424090119909304530481803509416778078522875086390853837777356688667626256174670002031820781155707801815682454082312267358788217639715937228731923196553448235803492519937949528383645088277918920270833527280170224721171711889175130958062990436144590525236529636568674046351613435841332104202713381053285143236551880717971046484137639981120863312868968132799445196624009532230660415287111530163940088175959633559072297297251533267451793540149890757163663037815227432330423452918518680822125814020699641463844736012062362450845731041741298809965527123093697597196609201642745020156017749299083163512988807690387186192048134301861415729800609875439726541123481970983414330414857666606939820612473542681943534084416889657981966020852330475763405090153319701888397820548070740091905713407678023469358189565563150029701907398883851353445518331298950215147544333849498567877324385416200910993221329418859460760062339319767952012065373738241687389698034771436167479042384693416695092115107055814242219044056931645404543256308181453156308701118228399137070970250823903261862403538275975310689876482338081794721993125125640963956987810993346812124444556662642739298331611938301074233192827660036837352313456877560843051785553887076879164426357550252581793038711884295406809807859034712067102870371051928981719217848782656893018028620048663029796930064718702570602213145182702285707032644800752930999717914216335406810562356169068770505627782270483437797819795872608306222091460964018861083447942188997823493674539539574904181854368436865194075045678300670931755401279876122672862805440835494357279006253552998459213021342430926274835480464811024377907425572007241166387669857286911670804904391193536176602815388447661520193817763930635998352975547447193533835043266643432054127939577465662891028944587663840062951868896313092507358121873644979145843398080800428023308662690887535035360522895494914175778759646555633617964003408200153664658805631048213885981433088864235980386761266172584628829774397928803775425123084351420519661192530495789907981455393316719361888956258209949554898016712034717866893651911774026305307040654126287385011524486102280087590959297136806059467978287023248349780613095075076563504357758325349382500150770692573200582941893675740614466594479062877066204069329739258565870326609488153253264337386016937753648288363136255471858819118028898351713928568160415046407506735832382309607717730834066131400405829827524671003283161631584919100257155363251911674930218583365567301404568405801678467112250466631557940637551062279867895446281637037563890588408998013734265374103801067941385890544502699707771311239032656117408156783068713005449508206310852559547605961281358089431072496029860676663149793628959939403592512638178851789651849024470831477299628291939881342940010200442527155732647464405541951266259015869595544185922152485920179737655499424220556531263362907531662255370616482751720416112956403880169596496803681174099963179435026379732847239347510803245721377323283200554676746887845179290798280495749730040779576818217019536881719698934508485427220099469657974897354314989821787017381091015093270163903993952710362235974841659060161481727449566658543356051639171249132209057701806408332517710099159103346827608649257418190960010046397051928115524106833676695914092892139478140476690945404942855927593503160119467359450989172719839707850673674965119569318283910150859866933128524892890116299672674587052264102345075981875090605722185073059764992264666196382578079924585969182603508081227883091357528108588218415209546723096598196132462295344752941490071832326399034361764830538317598875596271876820549977524071450570160951798317886943954039664653499221298216162886026138354727586764184490559097043295369472190889680080286373653985210521454841078935535674148460016188337955043909069877611383602850523592041606319207246855913778867994018874427591185225884433057885101487287691837831790584822299347070194229991390606454863258834708157096078437403449152030534114075187602154322555071854272192509464954827375870629300330046072179043198717416916670963974868361406803310568851462928661532239769674754557781518617568497564213731151311215238254850258643198595221846982468879710408857069158952033730957733569138168740001147210431535647838886271865949749124213468310329489153134488815864300818667679744933957494898863193085923596777233026536476722017545090399181598551046827140896138143561375019927798969632671948939452283823454621660131715284358638511282609686620820400046041939857230832199799727201747274746546044714722717936762763247990929007768781187691244569499897691260797138052722872306806260465736148342296137254808263977813232166762368910249225543991179873328200784287893620819776457035717851534465020461750871741202947323991675016089684870402438911513625857173239800124504210604178417125635593572232391179709982719075294656238559687295355685898045018532557300591596833959316514264442560849361377519507996348098852306765395424539868791449101738991848678060339423297270161665248908047448340709422547058643839551518837584405784129148952101237083657163354625207286282519656730914785177065207330667620649396762322818116509233011381308408203135058896196938878832616208572708797732552833848534175279186221536422438903855992664206054502399239640623234589015897520757596754420109290708494173202951844608869984627434752158268554598054669241047475421775876407950803861910971644816568403968136509556899227229643565094496495949387539904329990596265650669780115820254180596125142980549575414798121663132296412028563709100839032233369567203372315250401571555326091538478125041760944164607004378866367036199007235302560590750845701296289602168190374825474624343402007325133638978075087597703515640855035703145552014350886839295591065737077143445548643293109197453513013776042396743439503597759997076377382210222275477629332702479528793326445680506481480481780075807840710138413709294397478253596214287250332942503627449318629115333007330159291526924360368054506983802912790177971732725894810573382042990105525223475507536560136158693396632111740910852194879076312594743316752540040006191035676088591529685454809599242956616613153842304266733193699151922747535650301273461572891344542582433705690360145441596772137713918315102562881159819662347131877802752320466450273357473246429543092893419048447015915746852142835929536278347154444393016471085594664716928228059563770783345863484188800523934370194279426322689333571868041756496433207524009205535819393031171202056410463762600713700284224490016677089983422776548094676635558677577148170757778622760143885499376291067651030705107808079002613590615586866275335956536440892113560599190843366575882616079105445324405713532995165945734512897444261782573760128838569567930181826505868554082663220920437731307490501384885596355492912474303727437602919730376233539063695992936765011881264244343894873339628777595272321475321464571442500166025876970752351830849222602738446451152686085232154403124221363380253363456589287691521942451030621287625265272978858476008111967352916034245330518944226351625578771917945267945436465947342031215096489801193184495915054585279961813903932040707095587510444492356810576304013253666590665310131077322757019727356053712495528438444611618723848468678769598728586916156186165031825281594081709049347218560289594107819829145905748848132212115141639553195005105478692084083711386418090041322767395153355396809896621386503343549864316363484569237278759453375569191780223348817758532509911613711147121567227926764747509647436263311284019100967058522759363682719226218561114128639586328825482112102128860624398134147428381123686905028064139036260580240209670403111171532839691563142775213554338322639419604594465165547215364174674036241242181694447563418451406011944479913562167349826176273943582943126044793549981325117068259825824052863672805784796372631852348214417534981388608360392394887049525608978913662639468167939430822179141213733654112931063897828379862506224818189582573161070970080333792225913800623874593248815465448269592376163814819297521353274462423303999995973966136708003412231815655580500263640446476599559500876553133341288451526502295445793593186688436948144288409708187370673451598703360812410068339487839035406455960335390715742108988771914780681431086983498447793824078975538186927965207461279408270622230718967975798861854151412424702521815872229492405104429110389572625338930688617032828681083482652618505117296395497310236093991776601810871876527806466514096286792585503275608260106939513002187544875870656706767548268839686273022339218761489620885740279130857448844024922075878955724407956885597861616278806254500016443078234941567045533774630815556335060699629741630401991572046052224236687697808541256607084051943609185902787384081205453355961117682818163200528337881500807251974733442392193216655602705068400824151117623847215911304532968794990217824082950848953681922786537849534711265765349955985159111203023040843227939433986743680985185678591092857749314284155474627884840863944100451059426394041692382112352951571054771098843012312286707431747383591249112446997161055393427375256805330222892540501766853320785757795381558105411016425428269490671342210805856796600874949099706259441315525017681673299262714106411189789305841399183632262043095706800327002660751712859182592120628863312525757805094017453626385962397539624243574841789614209711369088516968561447814708356161920604247011992649060441398428095697323988395491282797838909471836634557471549191667022058812496443766972749524540711727407835813221692438388364435509879421498610069682034119250522061459451142662428352128089083404601301287172449951616330027572417850821484368434516493569899396629984200880437255452765469499836465401874012456924381105239652990446348681686047305739389748361560702130737620321063713108630614885292555393265523833755652816136088573111594770898340877076814748299600968621114394743137925870609004156956154387458254792843695185044779663179588665834022021059136628672754110117181603570433878794426473337186073306873368350492570848413501079640185661689611283366979966293653829946161286353578839162992723643668942662210715129025181530985365644168879818322571202180769060394435515461775552615767722991545320550213077971608646299013880113647692026816523339288811645740204934324582554629454619770307023846157088914064412638879050266209107945524509028061717977524494483106012932261053761964637572720118656521809970599977913967739565864134008635413467001844741171418470298296983261349234697471681958315624665568962889360626006803152324847658794369453037899570807803953186338502331102546394086601267373541109687340513238392515430688872996411729785119105207050713329893307423709247699000898610853373929678810870581205217002682215659244742561316232643182640642987877130622117227854792936376544557250377862298288747563990843505233536957317600224012925424945554818471501921332932607852256736270544793675886660764224003228441808418641999494713756279583141212287704186311515266281058173863721616481373798292865319357782841014048783500237337947487487837951528350069837924602151770479210018999767507509365984763670576180659589289344250813585360472666704792255819920537055001125652913511171099268302251807692567873385291329138290956647168466116486517365919398908224649063850615104562038012909805856731582065032751009354207500631396634120164051956213695528060743951967356679057720879438293855325810658761130061735494950165142543433807302772903664213219126322551054947060181184248159934907547513145381081084528604466004870909102991095243019257232733512046338405469596755192404410456667172104432104122172428716163743648292599257636398712494659131412862117170109499803823762943720889459028691037214746177158437440194523918199384180722682282122583427436798771856012550717530622805774255212134349734178762908861375003304902440014270505764479646971027566234469756599098086407679899699273344640768366952873300322563318962113251052613073919006321560100379942390134987879936357538795915260649762387730271814774066681633721915907345933772808334908188669138412837204707566004124396027633778205650988675843654942512824653934170074721586061573768448325431166211041046307514972388771289319852621562971109299273861237056338088627711343037843513654433896738835213517988567969280065847996656076373439613173119889451909682645256411353039858546421973738199276152785787744288081793141608875988737076575749949162008413307321551527424518686043574695384846713899622424644088650868069919386517724000511270925965960718696529342937306084198719641389683121087481422514008805975336685584074288069795552424504487525545733945507680918631111166973609095628386139249368995861492783613461755237668735328297088873510894756682389173450171952084875290131720290417718017710676576503837178373410966744571964162378112348022292172261605528073694880207767576383352964672962823298739918551595269252916229324644693731853292854745134674719506892567300574042905465326990928597353456868462753668018322860622573327356058818785266180662593930143312755288399217686522753632253220009338934885283562806189342970200113877362392174781583594159307007411065914859540643573895311440441337763447785206541042731937352052094492011613205272617508869471737945817141455399897034206571512030449681106520208687410435180564907837236575154764700075879970278493044123518166305566915787185753504308914465877201124641081216875157538203292724786620997818688775129196516798556745217043247031626021382853391003767037620267017088643822227664435529633983654382928721623938402725176524967055040464884718516174773727781479531328452249573025652489373149286526488654975712951876962357358710468319190401644664174990876351199367148579096816555288300209897282412181385223929213520457724223637339745267198081983716422677959134178588521177149879500100550483429053349326223884927942655327082134116053691068533575706241390285876084466574168010291232529930312696425152259899366657092193028229979574716019047474163513147437594836930269568410856175297965897809673994734054666088393982898854657509178420570125640697683238663910711311169099317388198084614283206751489846665920508686810407898928337534254398360213249109185537141577933684941757739947779169155034779280382124659607964843302166482316382762378626212364106007161977307560853788646557872888724946181468614732183252424058475410938600898601286475240948285489287177971798362583507018653963946791730974332341510743515456610793017887472326196999229648762625721215721208485342971069218445469212960498546474333499220216872603360721445790277629622825214197061905190695507346504012240787797595890549037821263049576474070296064409900828863344100906407511419479679968944106304118521630684379521925018927805896785448420960212234565603893900169862289435418540360119112264053310608389265955095663331670425341108891238991487424730198273283221876003304248628556667742176407192818702933695675197666276421710107808561981422855335508490385726461477465924965785023724464314786060348188223593422701787786205032147132718088370825442764940429808864970665133821997012848425826672284851476380497610193495457443054225837481697091279047124405230416644092432529981901557957053328280511081564359478018136755780593534244467438357564296299224680160417614771971917085339989983387252428322634197200683556524034124087764183343702765657394388642377091605462064162208594933255870455324162087037526710418722271254687420350130968016003957627756754000976052344065517526849626794158667290718607012929556912891237891657279530013201391940076378336479344548472669257013937598444029121670407736397236941826335006873676649807752824171932535936787301611342754384165156421411320971504161487111472045712701710229929171993812463783166166574192465886150924730983298169034872999313864241268511272669917842204053750405229127071187150639285791676895814136046617390808588253374808418360299481605835752380150391521465215945843957583088891915986858730104602107756594359198815797773187548157986578429452786353819522441405656382140428205151619761680327498538640605935369794622479161699810322642275146736112453422057882296223333590981942487447785637157993820780428119533477208918859226866348676388670600990515153510082543980004678943991517537699306998397704266420022158692861045573369267836775805374717666168722876157987904615682079427641346038162872060398859321253784018513091767530855431930753668234374103368279042405525538173029872673393905945813056607014154198542755717969309522314688356969887176010872437621392114765581127567829072200422741072328301802723606199194239421759064982716076858230933421524409611417731750527340371597082591078047649143758375504560517336839932558387186591059192437661479473361308034774477244609605836605603935975672857855276240333050747400921475110044398400199194397616013285421489658219401149685680728097439533560803122363675833750959059054613892102915276935968432102772028996172006867922103530385846208343764098407673880153039334138035630076808570057725006643030878597430531332696606210403335433731942962127050111639467632130342736249927650295682795702085529131046805418522519944286978232857959319005568477707873708219835313635430924878927471318466440190083524407344346211325492577101450941830738427333353534118921687978542193249784790273802246177231463177523056162731181730568724699724415822604033709732742535247483421113100041739794565369422394939404063042534263692899195737088854194819643765784739865965648814988167038261318885545386592292159849826320337815005610716779818355725726207949133709632250249764689963343525251010641941401069403580041783617555844619624873030022412358648224545487472094372599320809627296787926573045754102918822795079887058321641436040024075612061582183309394455607480855350860736887362428664235054669717274311863857346528484426663722641322102537652722598356129553009377426124884463553318024824787765045601874607985968586241092934478594276990065020060107684109071816538088471331273980815456654606851145279572621019028163137437870753864236093259834400508366101742658693641323548984062763167938445522516547480569811476716924443314679333504138827446379034348411753132842709039428319779005138433670557444913797202577796881496029291059873738248645610617913365649039745348184055726298524088547015266226025133538369117846151879801165466673759289741404117883427779466155886764635323654521562371802831519515004119401383790303739958288647106533004241436427262999111707298151415422886381970631720726066979037277815841085752317590551003475770696161601194900120896444804603015532519035369403001751256765746157571755894996559542168268970318585895544751478510257568492225062073164664361821816704231494270412412622224470903869981887397835538491691506760101178048676573922634482350244708716464444348503622225319207381659020148995957430512082472210690126513659127720972255787850111194993276677942233687294786580507148745095620741497228210621774881157676628247415884197676924973522289161728351818093535316578301924620715312016378227133612331327316168762485107602436874623476572603479621257690596234657529289610525050601480263058786939255705192941996429653720672362513914677368505238359964404971274696222351346973059152001663109757643056552302287877289048199640662027680869759853196913444277816834934404403809481193887973010053588111747231264659557550278244204505498679123815936857879090574976333365637572899723047994839645423890303106396442057193351678676101802573558132560990023715524566399986813218420613914615167487560992064978886792312087815356609312497903029251468640832273494194122566348122954895118147223519434367611855069615140448464400953075823768940401304042594455885289691528323514648661119484506652054359568738896660655744398226696762169614863358484858438643582582045338681276818709617711750379196422045421746051992645259282463422012842456086738825741099236574633412104735708253169411104622675536661565570527132733755434677969626076095911036612646794899764753361986892074954058563236903126729829411108930904588534665046685303472852966660338727576997011603828961825175451094744999492864944098404384723050984777517221162144486857223996320772453225775878012730078287121398182514488258012623112190266421677049867896633926607410243773513076253739235343507710875592816041110216658365634713689324112900955553995156964330589695260944547289824555283978176380904913710728884022071881598010115521231207336179282287286364867999807913338315809391534359173341253536445556001969781849710348205907664690054302036939185648209415213691399331714956982570532514301358811502416030137395515240749466085721874430436188280028343314963532139878162694551083037504997201654547729151610581111680734733525792786334707848640952646763624856422098389306641195115935100183976392244683651707639152030942270426178853498519574303479144948841280332017620830762613423047764936751467777962797646493336511209766832185380314895513751826103303070719192724898629567888815509670691575350658581043620812772693935285624779590749084223059610912290300792376415843263183289929900428316491076224323030550063784653607789620139984696180980617778301634290222505754403334195221085917917028687149557085663110411339416565091912228827115979790549973524035614811433084276309574412965754780686357806422547179165587479809401468120755712382615157748738864798206740521495684731418781467604181366482801701165889063713060675238153713045007023895111904908367649129181642167902585813723296901540117358850961056488283809458654604822109597098045568058036378857936384766194184352497341301848227146756045634883649994379342079563033179169612952096097671800783034962737930847116983657738160687145111793135004572801034790872678518934082032179656802159695519314888011037991271489840003786171334284998619505874330934838830143487532684453691820349264992554677392653141612510871451611214904632863958749106418892414948043737618772689268622688312434125656745686854629245196474092945462796347543099657163603298521890356665298369165922308096265758429681960398885398658646968883546541509284421511267824371674180747656057157313231429421737781266753979399782445567529261182873486373684482821152798987462360799115183326230772697911237376514427896091434350609164457427103682991982165196287060863625804074744503031237310954256089027417650573118285387963815009588254499238293108020950301004399925179261519698279332941065877014730182157459063769175628325165817392150654732508554199253406748770788268971114098205397023748965229448437245747205832971524767689369183920563213815632123613148785666644496254429940519227440399828468400516424200078669354800140071907189138428937876917871423074126818321087389698735567300294526678802074032435932760413516161841978097186515960077926578276527828228662690899376868655635146757926817343365455292970972318954952531714503989634579043869313356828729890926001177023620971308524383947190898877180382240221885152755465321005419040504818662484719053980443053516738510113947661976184411106125076213382253347369631580924503350353554880848120707388338529998124061152554887822453497689763812816479170137570667608577862004456426671898075766959027651091774917466489916071130485689769283732821196295198636466266700363544199038632755776863024086323964367010654754354411415801613289439238204650295785537200410672633642199621821990821160786700639363111256973704139570607788692882504195805795495647444980118073777360444712992673872571937436781885507511358695029323400207556102011357632795941762184981495884853973354684139791716952222389931976479624214971213535913198841753944770707485254678718596130093476792878773332706860524408559407692597341803577730421159464694653017777557725934763505203242362148544617059887638873722006267593652309292017515438445013480780767808498452623500617302618504521538075127575935782300011261343624178221737645916711180866070742422324011978762275571328766858202281493479824188048545794206333579913740365352041177846036572732071244491720836222237201902865731948391927250040308818762004040727764905746105575378623468299904080690881781486388462634372442285009786989047225957205168422690407023275856742638535788712217412781990228779302111135428586847186169280858394185977182465283993562963445618386094029459898489431739544867479884754960172944963326271538625605712210967246618338606004003984167180418294138848731217119949423731693257694072116687607544186347200778440894776642788044044805179057077118173497894488488816777122820874001798854317035218798667188405002612339966707566696889786044094441996356498307231954462069134669664480221566058543905995836030320431298149537782070592203403473814556623178377992310739708786291048880669906791153715965808708823319010999759649272214834681923802313800669911373704207443348806039008999637405225658317649647099042397904912027776182417868281574064481657560437187978745242409351613071090004605209061396689057538114544854194415810647649120834919784517472325336791109524468040033906184069788264703714100608842114414599730241607791743835235057309629572678448504800487340265194863634731306922536093771017535271335774914869938134977461244456643147879894005784543668383790334360811279732627201662740417013948419302790614530592611370157042954745294150970754383428844232178767864682879907009318256533461577492672003497582453333637892103278558510706904509484684945991481976832190626295760686531898607253461783164227003203858343599175468880731298783576285108909314536843663377710381392229471891021649868952601334922750322625225252393965211382116505030069182661775239324623205040134553136853621911635763144437368619087995451752676209348602089510100638469162902672133274684438753315944518524492774578502528335052384090676704219939617100756284609718167433247426545409406337157182140954171101598203578129843820404809240901983897652477691399125508437035884001323293427183098463605210956801931329152095176906642880233795736748135705913657260722543040284471969691863242171814130163829494484804417605423133422195905311406395029886218601126145529687887170579407399549937824425878390360908528232818665004192144780640949091903363443018046021285384244973962247788228536709697155814488660068727280401803384833657968787917685090182005731026857658787095652898325377097115917167877542841881292227233103694285371901597177870315602303127956505503616244839699769577861924322171179438423840169589775455141321109651401659480938943884750514135928485123386061877380484086018744429906103038916067796229082685723523343468837424507997075436631479060720456610945211978692359537484615020741000647630198150120263946224959135278883882080125836050186614920096186246218754244182479896324894473360390621143524553013023301288964666457180050168878126190365907475646764828854811030482099947017004782742144631335206581113513769349069333466981058704536109428775726231862345407666285313774608981760877686960773310866174349070786877162808978429121148289585708989639009080551542257107899981731116092943462114336593052211029928148666853895944223010208922896694403796883789038576645420816422530225466107981539615353012493200489592797828998284304505031881750720002796897321478741937681799112866637913724025277535093592745815299967074233715520817317244012275237910204664785377545422690155804795760337334095794774573539172976444749259082204091891036234427200552568268785402805106347328590752406321821804933838692946379819924422676653058129939923215390333180507881740892793448466496779825743581969022656249349205168758313311585102419424853171160214328427235243043983066242166632593262001223769643110895653779656380573375774320765583110171107514444722714576398715553691383878633969950083255815108316446114100320795049942091513308343777801606600791087951852682142187034907871683057213351421300075918394376498272342432370362531471245771415745337729674500248539029103097592073435667563056273323513408416935705963892032325892013608436224304923988428323591903317947755091093741779479634257931821201410644632272182514721104582856223795645751681288308252094997068708182103020660889084891709229971609978250508399099521046422035963376017982514819547333024622842838325532570410675654098892792471698173192613032225515424772627948648221842890119025637653172679823574417840119086984336021237056990426768017296559042934129498558990126577756158588152024972769313374502377755167097322592720269949032811725078721409288466404098527967372303901662987677943439215803870774609136159903900594928612034837061694136997993489621307163189530824101514874366595950582891088664343108743794435108815584137571793947597939560064394016940961628672581476557505675949580598519343235469344156536203769938904369216249371196163035502154235397192502164415445288613815886699322884257828599909365054465931058523308021425190201518478964901340415738635196418554265629963550852181927248873500744679016855292639166320068869262740295069412955408591185438170002124797598138451497967129540602219832617738081366960098891020867914043528961779629001548288512013633364909200643263418098052875405642911329676948334499432492503252313324131873715283662912166426811392941469664765912083882912310690442489549501368844479833545765601422205374255537017312979535571247422863667253208924175280753154633375457203563024740052103545575709141655710393023869576317284484081405268133858281672606237695012957155235666717534502344259193333529185493936537520388787407937612091825677701244086549291367113045330390154182135910636221311218605969989460906339151620642824303099505550697011483026577281653749771938347135149902445222824747146571349702734025454886484508161494265739316209071080142779826199650206403872776281156359681386461348993087698717367962364498688321432483023038995847952405103515164106367603825783848549841885174609667950717069373050912039467506652289150192289624429962455181181306724124091444114062971604276104304089188498925359741044084922025355046369972079863480080475192333358971894797641112299165135935954683843534603962299446308400184314313528498575906285468025557663986139299346610264880476213162132016276585693157581590685182750002254730329035107499105197282365733196698340358904043362309817405617130767872697938197644642234633494945140449231291162789692387087650748053407195841860448062673314092285813490309208710970837280024036219395042342183258137735229762583881958318340822664281173449925656688859621814538512251547307303074665053350477483261505307782670107419980800734928270111597930317909177745146278759848019561350340321833387244804715475435695294117030506532506790878130939585170017508399305915216703664175694964825027403328180273650612075109531713172351137470393322764759786377340601013411032745837627702049555822080501272040500717356246157956197013286297436915004664540487242147881201444040199566612678539370480826289595137077166021349777614506308258637224401468106383843511383980150955509554651082132176215273822515356809303363546148710284953921586574850198629803826684367785520546856777093955812960770732008770760440615311344362023157198217140060401133437019444827482286917744132876322930438753667096743553149590569168966977009625110181452002422016513207336882593035634713853162937297287469280958487902245118672676242064177326303785164436517732851933811365485409399166616050384751179505296156074702104553439540485274760950093273650280583283318694021629115302056541499559611789041161550189964689061877396044275314454143402243326603270120845670979142193734704973272223627906297732112411392386599927914486789958729343330398763797152842226541049293013264010775235325143503091260488184947292896510370047789481136716830150704993011739342626952883925154671415977979141831532473228859432646760983042375449005833178625788940895466098986306276876019374011186132079526353447620980929368864952979023943975171298201765372488026056423107701474009758503466983278515586091840424846797365779643482828281527370090540611239586073934922815526200432642021574173483770241858268446057933736943659241581473107096763274842705411932684349488134923482045834537965523830307043709371543152532432732328845458030495229444063775983770151592232565815973964128100574970971516711775262493759198022598990863076380968345387646743550808991456741542203688075160111922677412309881132728119893317279273698330146164850583586003104935147663373899070716572783878032713045313833937771152518143929507406351453055660434757879781059105242733252418697916757425627790977136505397313803173592699996034489787694581482808189987853556356458082752258930905933483269192891870723754787094881468091924405589671736149201908889661922199387547858129958632125201254499480994946800369072099155911149906983247632454058832490411473476997743876059487962142351398265437886797483812038245584265259925479618791009408093789048268546213228867753726693979373161746718324328999788443949840725861913262616029995210249349380377553279931298218226386007592116117024605273889749944666865118853117789947906730022851042548761556377259406579061588662838951373734893027952982897503422622372872878988623742974513275396170064630644351791109305206803553047530727740278291400429888340912930439222858985511213453016351557444068015883420411807316758553673655449618037858199047739732808125182720411584342704051961454559087628540871499759185732763906760618232385422738046446059660190724200352862915107741131068793483346598651781792761658658008115707068271435977423288865221167869006668183133993761658128464943848840654748899984250270815178871410293674229506322791313418159666757353777396381489130252096658778544828111052943987319334529587050804078604500973679839467698540870928201395107794698008708497431309829168395899994462736842351234202242535172167792711298085021800827470956785754026590891414483901827032013112543045053848780171451089118298026533765236573254141242483586698791842938807669218764734493915834224510815493075087989105805409087989720511382830045684928530185061370823129717191889863428282042417869924440640267605768185383167026889239675676981024597894150841796594269783424233450065653727473362684834202355999935279139945119774718266463555975411538549497044671679521906417547851108530770703819016309646493015864580369332584434813359555453211924006923544167516249812607912354981892200191159299128772354117331006694726173677714011525496358457821735829369823675385508780385131912119006507694255758315990715297816907051163434641949727773374120494815985265741547709640456287168889131890707079885148896044138491643860384168473342516882012407721850126294085061456693778475213279103492128356168126143628913408162299208742751697348624554321906629316573826458539085118144347776816610651967799191922774110750202769709320011644399103805411841311594983344218785935661772177637427008277873222950638717079913618284879903837626585537768397861702147109588676534498999190942333311666313036623647080744642689034682848581690673383682781125815329937993675659159718647606026497069693294541924361108115698825688823396028083940193806657321406044955349847445316094913982605544013690036477098252905481651344910597200909511964036050116425555016721770525661572943688623702955973948357384933356777461802527995679317338764935064613285719358914921118416097264043087845659752392814255801920833772973856614991879354425855666339272551429703319259000740660812441080214600397715040754576332357614501791824382966802923599161602339632234086436861289928726274455402672736527347249060730366381793315908439861926432175105002853990853823986248345643947930901803514252105864601812033244328224943921300272505841232924573414885493495102844091736481289520979477487025680963925623095076314664889857311333931464064937869837368736712887332097609509433194326072784643157136210316373584898514737169048660159891726497214477974605243298493268445997114116439420663635124611794032060048434189953058624027457475220511280846817866385901458327934976142086170797131448074978689130149925683480493370884400981002651429639712753446188543574751137428346646282221805696327902576356057275645512519104655953389339699844985663728959263265715908285233150105581195065054052321013627107610106671558253970835590141188299483560234812678849472522314852442229323306350703374292747474613854505005281381843771131740337522937813939409702204817928218791448805046144069821316523750505420461020192834628748049759783530906389670077849170376175689841806136898061353174524349686383673725599694551045572168580115521367995816520860381254993697409773179317297444427693330009846713972957893215535407881295725082556576504773170685259752193446355236395649788409661312251512810835327892512975500474927155515461617868405815759475141127448849896737517579824495816004652646602365282643053835163871786756551684505180686716695772945629509222368625946461781633345009550621739266053259736238027518127147525695987081221534909931401038792771493582590258853212454598622903340169124825896590910334782856394301699313973938256364777454561695266364055904966222313375771182573661962682195455978674245838266048218586280053228098072066646195315523097075248148139661937409308705118508975561565321677599294520166105304042041039950116085058612228653770891712922938420466803639698704013296258290573384278845093686414525391531440604095040007449194832083809610505287211683692176215905694484667880335624405097805899020423754181833076018410733240905329914860470586438623058528386435595069469985718198187317383534815664275195524852832474423987318876881121436577566609001260429958915596006685502328863138734605182954111073732599338996662848930096842374308521357086463327632831094168203156398064348003555146917307066562024318909081349527977293956085885340780549187605898459523680318675068470886639769589082081355703349881520696273649821221973357796982624868657913016612561778345258530194809199422023679350835671238879890524382412984013235953313461631218460611388050658461565826192796878930404286729653929471495014363774755555473725285718521471968421982821398331111407074602580007977057841471706389787543525947537494534852174690484383499290535644596309013851124634954991735533855834952954944953193953959153424237331708624673144780512374702686404428862425081585301693646147355297184602039227340579837284592747339526938300421468226866003429331834570689536021212368488308398149971653300750597976371138316522293633556807942919569321323480801413912143203053557983874058233620832643974383975565526493449418341015639231154055937369487606805054803095746398523024149210646923443174183410446303643691231301423371294416931572665855958002620407994177350621874286296050260004558824900772779468429559180550524609899976557358642239210006924611113937233299722337001165037965225724520649605091503913797040286141646629941698439099722423979410902495946551517480131002748621364686844687476149164201875708832299826594602049385909697748933534507607706053927566822065933231160881411839805106933961012682851217680461228404415377337881944247742762807218269004480350704878746476641742808088207692232116163931333316987259860390319244304195062085660469005087202515341367826808072428330349954224238725487214359652032660535668250908873898798319146654150971841919150432313742495628040577786568402390953253947784221268646441128435344689504579550458479403957092883861941946333272968046741686607109179748702474033774182224385840338012951274839540511091448199277776958819450510344689862387612247664240332838687613978233692958349759569924004387878997815747582546377490742379978547064420158859139077125906611371638482730262301408977064659670726131337110511089573780413771881897000465800913860935404504741698150501684138958568464629861707893230223923616939622760132813022337734308568334347531154799489652793847933164321241869071725763140029211476713368949769463774007131867822425074753804395316614116107040760945640969674611019461890551952485631306297046655211171023418487981720418498255544966532740217180078200090770559136733343931464014866034469011206599355978796514918039185162127168347824809132470380293415122652656983872851525630592141332603725069082044263797738277117462361273446203026238339547088300911446636793815850150300848560279493745597348494525640320283713710690640665253475544227556719390798648544451590731639646593991621267473001896040495985572017107198720343266106847892055334076542303165438359486237039743656785095256317778974604741347629192876977614216236893817020266777140300970103936614377896513283572688846436515784976249095549255183331874571572423029989715057227712384480893804157228367035305827497215724965481122576215328065693411966758123879311567250818680021184736695955917058603563780487001254983681639945466879540490973690768450576193297431168390821042560430516684664817040961441404315670533416199724245057336347239796880269767658994743617920563949502297425850427677974975682714159500847890914480040219672834269450346599699144933146187245307334308901589165498415525768589765958988001561953212959630360226367427694730893871868636936243447148864963505576059701405732468893715360887323887417235219378519859499311959052710848684440314144433310822250646779246702278957022775101898383782151245671621113976860028302017902939977959488800435586660044663663334621961677790308563467242203476799958697198423121828215671407510286008607620114612840034052510393633956292677607326521989660339723697194316361392135930080476970165736876096841183401279370817275566083357958202329344390950786277849922904140187801061224747365139185712890620722850644042352055758671618354604260995476961768081983012629160050832980810473076839856301968864798893261985736465212388700083406747366103432192051654651828528623685426324598681755187702115772931574304614589289239266673133440839947759719958910077314633423744897562909671197552906230508864545691114323283187392878893408745338325137911919475597321281013073322527154798978259205179251449170250187504893287585931128402433820100888001977504494266811916848143531376599485154657742009184588985632664459070837148394930908187437392445186836224607602882836144340817914537141824141596550141615203164859479904146711202799553346734329361569201165283713068085639987030552468058995462858713371141531666488594510559919203073147624813289129290389424401812681675354625404131155635254648476301889022274230319148119035129148829285607045123913547505275123215086267023000538957352043400967361799160056950968091643178253143090900999562598175504302069893510937606250573143328836545797598749367763022274698848788118443271355819619429843201464959735912177576149839784253187250433981559330315176650136007433130712150098686152314280872788214786176206398392878206192194913525504691610221737050726209723601732992486380879679445051078028882246090525976016035040016539761298374016442058989461199601028094371126227970349163222621215440432546753661879723808839842530029253576454724774404659242544697092769839307655995087951999457550296405229603737410437000331079681853892103445382171667118924107481131108564065211786757594329376699157949352647427074305608874840092712492593812716019519033294077865445589079049980353425963042200407833967110955318097201782882669051932743681210329369193931667262119961239001430642396724373315289712127017586618302132185930735552248956069391209454244516971976667855720533280814043291899167179215632260870317819701919188864254077738963883488119699144763239125751600921388168442390210561333611041220570741953621508350792145702500286416824864275498754184026688064583895970001705203375114292659359601734005016304894366722438088121815926303217508126804270958480944428080907182077254312930409069840786623051388509608347104543770236746330847751284592041779391957860731073504304241933961335618101687577071123606100228491623807631792880690887356192323348594170003278789287183271580420903969408320450194832806807142420531250335049443390211816919591919919633757318155196659864015315049639700414613082613527845774453091425944077367301799171124133181774320387226398474850772848591630134581725464813718504214725983385376402393426994724185348202642964308969665800575084992815608042851469774415127960596622295831902095938913256630548433730685763775038349625670287284364807460065152235281072407128692713511664511828955343908595942393159820688037930735231836869005080119247466432504378918453023553747633607149501859873409171042406632563282239071910249177596456081018917027139826663205788943133908694885025135849587255446132559409578437908337547858000512381858111191095131322421004113029902573319336249834909707597742127036999456582408370543335130506651249461641072119892020687214100704645210891814413123357608743157890559648851410450708499617009006624227996878208327043325318699919588865865491244127164326840539549634417276275273045136611151630027137609151732744651617709615116468374186982713924636401467689011947180897770756018531220298164045959699994901861406333938948854999453732155936870123642028510207725933608651632493380340799591777418274670991883175480266591396598966302518937592445455047261222767279391515395837979666903700967411445193929594653185844176875181356228725267837636701634260262673743550844734052104065894252570210186696583090653976076145545893411096098043749193869279821777002278702156323098873272031665346285179434962443075781132870214925674430527874087534079481810839664298790801437621342431067139297811923107742391088350592326070479870387463399108476355783386289761003936407851908357016202291660307367010890201230642173720156628675346553368094449171020860564673083492997694473286629174222472601928014730808169681155209612440171772505842767016428589206114815008466002001565005117033152596104026103914977902479059558835759693608886838435875753381902009932483404092100257471069761710731818608853392003097840424605395721777534235404956071413659707720432927167693581184304339342935635995953965045415844265401581459341970049323833908522873715718669955865767548096129748679618360501386592607909078731346032100311486400300150563638629615856158999308668042255729701235979903794097274261605041796106186494957470172258801086554100763912696305732747997954594224996986267244624216024374903929624803152695965360594739645819707650727586227924924939572282721503220461175470892233997488409282725381558269712302121776648130885265627347321197469841368157113852086400638659559774215118666202228332418271753762704007513923136541707231213096912160982320449934105309491653235515532133940545224809626107983287249714492671987758299202742749376049234192922771951067859806842870289917565025664593591507370980672803609568965221579934722646024023083162493809865938931248893449714241308499767044624281636823526498619684066241758498551407949841470513202593641980614570538365093208684088941401927272889490919383173844102581506685779820247929079666514912558162609042599462662606656039207585762507542188286289428697225557843848016872057045481887995272282588280973233669843470143739523507781752514870737164572376836240210818093484904705946564666005904275766043026160394602415809813059781969880610455981091348725835181538272628313393610412244285104638423766608444146205722877986006715670239524918080551426214972995389685288681799703774022329700305950141797455166532942924536880530165580142855205564943016543632276978349002516647175294481502900114919853514984462491565541787368239290532454476423837149719087978736006638380214839808050610559054729715007514094104970144508156057929456094116039265702497377179981842962704949620995639935541885197406408748182635950312009771398106724175951583562626434254802101250993262231629612856614048673110620150177435850475873374880899775687917483712568451274938442343910285464224492276036192299295582569213421414863335662296486284865993378706197538477243596598803443955720371064203789795165344920699136169977477859143965290135949019451882236066816487698087540100905520504953331732889371657035692506724832591356323466892601688190528231760562651627870278101369948688937270040717188406226370269544438899915568610653146935802616097869338438077696625673204107126109837068751663396403729087370555137507052129288856183474220489192325450442040803691478731910143667229784624679135361326079065560280428961154988505615599164491230989119298377022888132822306089727422989662267298179429583695137096939058375280330951292846510015197677956180661836733036367721516635152236751978724963193273824775669388598145139909063414950678882298782849237863365051342743916577525634594500622148299231250048555680373681846985790561595870001372263401605814707026031048310009925977495550185087345692762743233582622169949494737021607584644603067678883609699327787878465300114873031246915672377050853463788219809186177096570144304164255086388566994707055190899974386997355848336601564180558280646356111491715963571891673662027137596566156560036337675214287559826678518347969105167293065765495130274503340916816586240569034554909703196239290616517664646098866556770347108462879619569046502319629998180867857543651158223151399511038486166694691030545017970530243778848770868359860087356771611770715221847835233709906143822089579032499000046588288201087207636961810985894362641305518159284874349173452482414427639209244254421008774207414225114030874056628676615908848987466434484513760640958109510668571527455908877905269980216706584493974171039182604471849827085845784630908643011762900963121536990865659431057963144729440467994326978738565457638146368795003494924713372364333501569189884177730378637550347842246706153683735749756092356974612854248193050217872773470249218776827481209948215076316047694409539771714995756458877369381595004039909305282019094268029971540481911744483598388521313680073032597782291693938149338961302829793155355706398638069783259401084422812807418671588063076821586122743271227978477869467571907428133419023540963568915664951614730822102259058972634642922931907428201867018799995818995976066087071036619898568227539443506803959432134757040503441432839909828483908722853967348271077657944729777220238341111664684507435625354720245226705093566407528536175596573565476092614827721936547496903444144421689195792791861744435294500122034381435066812266451329920432673505973670818013593366771431637175658636818771489791179957679357649436292803351296962636004677081084907043499225220677630000577767194898425403716549823031220223739073716214579775027093996657963655978336372552247946804473161803804748180499436848884471187825941735249942512424229090708655630013853495526007280439099935848606828639552954970141885919247874714776679103565618180786109749121295921156508085191928778104591542217987356487308388829057941518241953483884254058216727931967617756711179342922884224116151534633980979748265791054644015296625361512474371377024257998736450993513528772575708278068608202796410435799475569162238025084665074473932925423328683260828949906711073179789774052863565014595352791942038113025184008308627924695043298140333147227033517768415809753992630915963472610150076228805934713619188715761900089148986481855648648034693074573483897153663154878482326199994760067374385312601383875936154346895792212749112756099985467976749579064298863460355710539331675562645894939100557207719583075867769733703899425187138655954441790646406540134844393321280689956498234897541610376166731211602283512234560073513601261840254489722164913434893300589731572486144007032885794275562017608853962810150919636378662356657006717398817771454536178841641565494986155339399534660213837630942683012241249343456642609000054073658990685329489566826718126321452787295072098195180831525249504655078996284388426967269889567445529249762201995904982723681338862594867641928440264403664325688332618057176072404324479240979978899432284875244883304651272174047482202161279998790590348192581381580451114549654321273152151954236953242886017726638392690559688157097544964887434014273438290051252234312592740649514266471742095044125407310346873339967624546022915910388377997038067108531349919371957721256333377040756032673061522162055246623871324265175526218576228027252040727082583367559897022681003791618803021485089244961402980468802253242277462666452924189645535662204351294509988902495625283084187288332742146340795090941878763649608758278879740660352512251187735307712444286024988677133540146154283406220028542341107355076358933430154819117823169632584270120616822061318067833395422377780236970615311607413706535999211758167253218139046236287612749762880881838951890716076484394287486399134240374109471905215722082615887931078207498754402483389054652513215541571655558648148891471714710877573431587452215521406534702500238561240134363662829765613614343986284527316825415303345539223603332576324405339251837674340012168043591948696761428355290366527865628672804100609203746325294660651935587173965416666399386650631379242090141467778251060095455050174473864623191316128771621208570082065508760421214113052366327708253976036056440441008003796193798423198675439367097316310822328653809318207602792454671278551675133540711071305220997433971881465205169209663624289242675953049165363754680250678805772980299338715898912437135494605480351478872942671471256578341256878039247851122027490125910510175403406888376135305162998480952777710341913203721765397021101334975309621839881848024796067009302795708369446554254894355430880544984801217594411074623764750595860280257220345623571972208204728255790565395386916860584918472171498166070774558088211295866680606200407011332993616548861220851574003668995948709360629498479094573190480376580036212582878176840977890729034239760165963926969141211115223752582605723223293990772412893912382195664669767707143996127262544000452807561053791443827207545418857123072699438497525408942255659109516744972131554734106839001212538906325887087382607763248595584326272734979465834329171856623440095412538609559407704531401174608666283371163310301437478479305746213049918051998460492160795675611149536150747924807784165525771933844391820291061736724254453349964783562494804042730976854199076662848589517027559815318147774127198938398313647358873654445402813282246849884074635274078291297753481332369694052899756968943204186688430818227897070169684057530561494848001143699308496523034981622709259720975553070546921715539122091569891380600945939596312059260473958462376877962804244211548504684682451623627126653763642130611231416355841770651360096050166141070856607536981308326679877018577822091545462753824928086545500115135666063851436755429036995988002793114326245461873592584913393834779584883855249917669167295741651552749216773236712263987307122567841682521868953856302098481873341368626894190639750815135084682420513143143277589309438659628664231368970720515394722026548666095361051396922716908151908629891408291808340567900847830170723893699187622799152858798211826594716601038945871382056152672275150332324255683693210058372211757579045364822647306948321336821010260018902706258321632382690110662034449303435537225274416548904601275273565762363078159607625669796157412085867972536271008669208796134190898848512459883927294035256370260195955304867347111859505702994315488407119067382033297753569085925004998623610321002436730532536891734686205778427836107808891902278044483026408344193984127221552532174482324390349782184074391816853650952799820560331744064547739402786239427439515205330878069369310292047666729286806979424503450481140558594473650288480218032096049151481035111531292131609963936992705331294494868230205840583573691946326205808101898731148938318363313282230779484798258171549165949205158695525380175676680167331278030706455422413351491671417390690288205395057138287688676836626579952561694123128502712011483665247917861353472034569425914090993689185632544265072234484297709828441715231785576574895527758464266644285622850552354017099617282920411308046736255577085151771336250689977081654379869752564774997671224744354438465191000531722639905012439763295172504209175237898570827237518931679584758970555583849227213221658298895126722750241641320695692618265298394450994097929427619138313746470227216185713712160493618759889034703252453565296998868124185854230328770664205024833539301362915614812212483120237558438701665246710194034776792242250218103233464947250145138099847023224336373869869012676560246621547000153301791760493807781717818113536181871577144278520115597385292362764940094975891685374918871750446221906136669994627213461000049392065464193789575799216690827688242432423894930499661988581543609687512956104487077595498679370633486924847968741149865876460716746342860344873530676281264067104747800155796785898515973339989678328870325089067597599246839702399351114722742675408502166945543699612144472907901348063872766071267350569411590821245248123673774872800035374108658447816937928326099995556778471670462808703773738729256729358248833173508078152033291782287012065619157814154677176108794644908781563869570142321733458390255086244403756684513706903272161123344986559491048609278949632059162719438028962244363960467602001441558287270089560117229718304615644004353416134011357769802080965048020138542390402567128313525843807784945500466415477261862505541792951727614868340209098973317870750871622750567910425937960256839206505757583980470816504487538407263873488632401823514456052915835183733250385827828378314418839515724084136156325800286118915250369773267343007621037301174536960353915189493649737289678023161542179083048185928127029192010771535898797185374882665053286652789289709435787195560725681015186781187749814456283092206981882218646913268229652985566501375419531705228920402911236297199857088656014514525877123936762154185821754560972588750145554115179137139149188997916493725555850915586333336101177217104804919388493296760859739517766621925027367553852017165328662023379363470431820456209070084260114998283735677508515456076837375146860714895533708780460787024556951628050975772934891242284941698026390278555854976865962965396858733230724103656018080444234210757161598490076975343118651241062579834808592760544462675787427494799880158995203428637919478860333176679719978269549564322352762462120331944690281854488970134115566318922318363405151510924557134279653519891808362931875363709942833280146198019252842068123125871675855438546372468586118981222826302754161775604808460230988831597317768687317862471609532010985236529376900040741021237134918601021670697916297871076098836960217352736389420587974673243467420392591537930090416636849507349322084674079497514931060529964535975324210042910782003757117312497713959791347430163500054410390783301049211500075076719274339293803331938203951086092243717503257165014825832136097670360008609102340643145865250411841350955754977287830034966666867044203114499178790576505092950961089119525222692961306119307478861022140304009992124679755628802927651236190562461109581592515282304090944614953455861431825738415573288056843519299300447693728519139846988274088214778848019396488501974512655618447881433793812222486059532214646240610319773064126306009780465641682940852264254177698471938552936671853226282341349312055909981053434645352977801162898893271488923613432588306531989083929829570107502009141371450516043192496479404157946193837715249706872413034552429462419088532975163279838181082148420626794699072360082712989618372989502439682803510597874197595940072221118614745592600700519627192488594200826895035284543425557883815442030337521655152578658898232058517789651441900586846306896018010867077930749724219131740969134439250435543587431225579771090573864827158205980312287045820942245825530169706878851996560170097572251531134032664721155810705202792784121355635118786118461228035177567846475139125149311575649672491202511764340909497814522893348313448384034920212300783552474288061859958517048024006415707624058372292527877060876768881236348704928056491507517099743421296482243085502300117027770261448063060197876702259615447803157900980978273500603072358723290248414094215289020831486535227908376583891056866775762584323448705491668690074263494906552689498876500820263508473892397176184765884687723555998954282291330944340080163453571474299586947497486660707461269892754610151876867117052716789059676253031372731889736316891577253036780182072511783247147061762006967782535131051190036729057442530635121042338296890570146120782343435801952274557193185910407311177527832358482411652880175999252147127500175600065158427032837291570515947304056789630221580803858928428169482534879534878450776121929575274587228470726217534182500516313527913098152562177376128532105818541266636823364608371822575652791511264280744034556808507140839706177031459901838985460883260171182429867527964730251408094955055134376907366487799722483976298862804911862381690326880258086302933403184497603592163464459811104947984852799936910199048180687111952281955351055952048541045054258053949950480530350915312584979396739311029005609168045035247553917675994812929902839760277081432873524327073550824918324645719045232749128373819369060701543355066292893023916764535070135990821472996657734795825958591649708501439272410084261786655373466506967748460227825137956065125021229967455873738508503814543180803263411395160709028337493230042911178168482588917939734232919808400571455846823125757637799265918649067726231217652441063461699439774011622264345723977130716667335259733657980529530302133841751345684372691531576744833998930646472409728955172307427234587748386218980800117864400428364466504470901880606021741344738795509451589857191260949289248788477680653897044738874561065842445688610690993914338989178742736258676205061650516336377464956744192632482279801975952207062960161011166278583094018638136392491979331945800252217805830814379546548212135078131105692248075205617347349191804369685820301060560351710770887774220459186383704041431092554035044926317604682334785977032845456251866561535134597996000043656278331573362191843159845922169763286352150773691725433255301395577151273048042669493314127080851220244704153572947218964063267119075242545431025315447450724361906466276119913162104990873770705506320096618620787329911386773952977115096902938935434274802123311538953086107797028092960661703495815190015938111347995759670341225721907907216638943326587323172689187377891422193394917340908403803305486645738411197101573459897362644032254747387844938605169842195137152202246300536708898640078536599297533070691970795444164682525745228950099883130525149499001718884027133719468264996924737190490793628845504967082143459610099057289745746552561263787229367526408200146920130220720874947660441197230293052160567181291318777538876690671701294508601647475907649511118074174471347553674011940669916344557671881676068724899173693060934088449993982329558887834912259081288169161945330725115480680565758496717450552727598737200317116428237349085396718153352909257853480089141560256287971495648897988463086975610033103032675310549359379288412760526469116330274014748715192988781597409443859264366828589236755527243635912756865574978426998357086915878338169447488347837960326328353383380953131249502468779483494930493081370737266506716165498278643124838794199754986038620946371848523336426838724561526853705781183890009133312471363396223832491723265684212205221673965182194286296807752101230833002755327116949107440816723747237609476378443397281284240637797560368145030657499808623236128642927738432180541779094696100471980551634561009025444214165503783095346954184141227086429140415696783580394031602014312248093162091249470327713685732917291928425548908495120561154880934804408089950803576483999555965899216738192856500459410255492090275125992000748483965069496741139773827612022554559141805491194048192219039437122291961650308906751803911633733719557963346324008848795298981565189444103403944266079349157297037064993982310383203864804951468234817667810230663509250485957000453010071424585818399474452020246747473290333221518596655983736886178161015036015820689086288208568219227463223389854031619315720314572014794331190984726383228594388758379417721004804093925918236845504916278496796876364265998563919139324791196332455095120485105692589482560158449728319759827534068580970020002781838932207053216787973156570385487926529784097443291646796469064241119902846457021407459358496132969052339660700209077050316451181912920010161752407104401189639678745747769980849022496009747254677833429176487910757497686454204933281223054401969470211977659643247595225469356871993907018176485302713159850766785444237788771464937948269322419434952848758329388137022440916031995862761437893276853567376740738524176781397454360820541801817293571773974496979149309578644175279503998793730916705912848506777425678970772667800282061769264286138467375280632501699054041194685921750970193178985495976149011887838189589326079656737971112849053885767425390616782369155669784071597007413250076252215196481251577746042735241716177921536630873375554154432701795197275420951882114344368304823596803759282066082420977357450779839891215684695308809035634492075981576812677315164911406084696495971595697988400313108478945587304616121115764059529883129420815786167926108213813397488796501187205892509331694279401697638756999029135865735793873199719688388417977496184091233649013624340862947525130518330085641156591448816954189864295830084029427802477937200327233336979417758238055412157268386265205700617588964062656207060594457280042496096630482733866275148839074661866725257428778608793200767873112356713520299738663872314888227388153886657421901125052448871300877374401505099983175175190802417992952640952817423415369491913227655072065325694430021499298507244028835563842253734683444991963737204509318847383538665900075021749524690732023046326846559266609322218183568403946685911343594637315935388175667455423231444209826111117851674953603067089338814064174328749046190114783467224488486997096985605465496646927577690972810247169806925808860914699549032364946719720015501204187691451731192819787412385759412080743021118052820752876681886937846732393752566094429497151672980284770797469623394908506277012036971226493025381739139755407008148918409877687209318562503044017378421169154089253756341062529470527933270275082847327662608461027400713344125419015117042781527608644207786240057928314450812757221840736642856819002389100482540720918367394028348307696403728091248090075585223502656515144932872719902442354762516598133495166843491677047986857480922146891131102238834014298316897007404149496448122311230312783134596068932762636566919045492929190537507284606035947768325568359356431116631931688685511620995628033508216457883142371170420773941453113535952339988440385370469128867284778162205822049749458588295623333350413472735661868826149423292334722264748901492343438634975902124843979296767405647090345402881884148028447982293104930701456953975940052347348993190726069518435827575214414067723058056365686362223918863274000795339479864059192611920307879176268790416871718611044303019633914309494192011612318830316438057296062740174924164956986916447754185411323974304495848357157903222575566948591133273545813228008476096043777922981455239714496851827418943776288829010096839597448995779693065115888940715202892274359138645680107578073194587351085636781026052682621713216574776570803120871893863162317518441252694681112293465398145540547098635549902653395294224447705789196557737110288337289626312744282597398522888280664032266601157522263174135672417987351972614234297575175578970004513919608988918362701642236521493103741038014996960567306380624047299841206249004776793327123128185711155180157143526176162389199348564981422016144348483628792618404466649381382838883438548643239390429524032621948550804891177441440174573462663600361477557615761383399790255769256519337932264752445415622884251953789699291301002069189372876038245007660453240373742044354623899508458991025096278936899318377989678703711119795786059893188194958368694013876990039646282582974893036869720717873182589093895438985271942010818525739539645056763624699971554732262830682401944591880775612983419942421671573315714994623654753766729955529782830677236641253410102486983540910929985751411424762137903223637873304244064999987245344190006381306165062777797578120931819782251188139092310498545559049780486913543163425789682342887637838999125952847581737921329995456989207175580631698150980659405480927416853163495683619690788795893651257881537581827020693103442401882924302006699760208190916685553711535128391023316307827101341097204089755929622389653390725081262863314092924945953733304535648029489766965593380600436732681380977541005268730660221730763733608862421359422086505489542358408328407218413287680601436968092526288937097468871213556149941315790796366614468164236057052258485792044348508184085807578754110318823910610461923919648620458883028315970362001100911353985461278514889937216055407250484334610207921284702818797470816559758096170396626117782699543517468159312939988576499979422852868686594733923947909716480801368627891074639875049222916033404367761327548344439779039079010727614845231331341630479593723624191647992910442318783314092440977795999388299222278974592680820858414549554026026387684714993553477869738962269156762819548080050548307558088738936458211345506707372884364843130230233716995656352680749653325943669440822613639407603849532385857544426324894919094885961280193111815569596313328026030760068226413960611406264756538680418499501797899341419895244303084464710855410981350274613644105682364306671551575572445902251925483322291883559074870318042758788744483604882764807782051309847889696600486346241043161445178128403164997904472149896975040546792426859393645818791035711195497085263913662194822774981182001445639191118607294443497183011576929751223953881362181615647870141647941298353039341822933898192993151266573705577805363798943739696683573000984131955592624770721636000561449255619482321912252088067498302080406725700634943911213863721766352237351241938771242124688246183285299236429966739300439737759891387564091612228454283891505529959589456826778500396396485879584812508998440935783167249703222878958105957633572326761958612736346732074849126972242831088224392302366303843918860983104603988526296630466422011940119236973225166462926293997187717098520213501607188185473598731963851689081975281521599956318333091476383739434453701917620688725667117968677369495072075499492078066799510021345865590814306398723825370361106384265011882668077392137668803735879409579853018229212316869988247939458767830318657519631439870763183937079401170621944153599774888702233056096522663354842843917019629384489791988489367850559636651920350231397985140986063012467855600611596757434586348377931388213628200465502746878597171298052207703522298543337451431338916368419212171820030494429097884163923811111811192094943154623497900199488022833613645739306929432084047124989504566581359794418828967255650493704616870926147337449268656020735826156587204067156497637847476141654696554705200258120210173398650167730624003400091748303533094844539514157491191337363221278120929025846863421739044753457294657457063286435634627643106052047245600583517408194084742358833997753920863809014416036764803388827994243517471031711985071172796705727899478320904953882675793048887603183651337876656192379275638339081154209892619257145942757419427376702606204350002151029140579207045188127506758651757814721537028286836446313968942936753963438197944004416659609748638087355979293129414182916242758028158366869743990726914406323392856595319116006152275791485595920539964782539563539827609138872727557265409306114106435978591070141852418841539515062553842916594394768472980999909132834870020864955206173959563168773382509479712641020026021776497611354927601117344631166648125004905106008937571383380305159460343980571755334741653583105875510497650555768107167926169401133672123063656527560026326051486289219032413775820788251047521752480620506166088836381915892993564655143904463342805302151812085881221895809598084084734328315964062984967538468222789217759881982957002721180609694496236485773042049449045224778721473144374907680691032075458773945788254531738467956051036920564044326075282668696693204297576314425936126699626231238063492452003468740945703779147793260988425861345547131049662280889248037567601873917539765373233948538575798461620712941025494582220431094362349515221160820296012207972706042648358924442132441170468933622862646158766004204104637084870479537243040920828852468393329632328075320285134558352597000647209151228427647523074717034936299390877892928962489667403013639685721916229236242079129349194534318821648796118922398159614129531258601161332388970225920747812885535147621916145579102434768505779958300258443456978997319327508154931187014911980315706088435969477711091347197885044794607099401247671521393033201879053908645677239982577436434428918392150134268042695390806794028164344986870299989486705942181265880532530446541477915458025855351397584719027769105260270654079955624112706499656085006060640986116089765506169836685913879060432280851266812968178730242096748696907719896693222623777012605952645466719982533571639211532728650413038404722986536383613464139617745997078840321481597219192338103308986620857344632802950343337971307120235109483605936917833317240011691685260059865333280896777968304624042128853522759937699851088819661142021529805456678958014138452769742904052324623452853770318574267335577452535172381220115457375245542868355791529044125350059483715986079461225571222270692898900080876304344390994885693930164954656388262390672576676705139609260896632847898604409028512615990793923720480293826241170090990116939386220950415823616832097945685498019039485006227666783569046309906584738032315483295488902117033048230774588211805698070135047063764700875301357508894091368654486993206364347734534405874714434033844323050446274465058275953036670386062453585198100734294942274067547137244785630624786341465966588161984783562215045576430277913708666395582068953858411222297717391104020361750263528001502685191048158296168280938935372469755815441696009031075998505235843794783021888277783108787408683795398422602144283805306414569598938209102023947800667975332005342634135189207653603010211578238379732164960317990374222454602428833278484235971630648931795820518954463929929394971929340643440819080301889325117179690667157320321018340699463706419434445137585610739995476406537308738642163661927724741490583029607380280979956545591654844757659502516499251535207032546687363046816318131358093732579138210321178173700508969121972516626808405399971049443684771565687190795362797297904562188536578228393189464905216798074732608506371503274983267524379421386466333675332180233318674593910744745501530090056562953722238766837034583472972898709933929908816171258124204138549063699800186393749794907277447603313971624393892568162171475495740089408508391567210702997329801605916630989241781172995845865797893626718127808940555720187137520829661126144439048386188453606836750873414416183427193763639198449270147089805107336202001722514038515768612200115054305492456559363946473506200077856792396831421885203401699779997823038673004293677794686735417040555573044254760106888317413807613168004332218731580362442698213797380273916366005670571680102299585282965781642782953943184096786780206973017292936798172194261970944554125354969427725717742521335127148010991019620801930693220564989032717563308732499878343196266137795532087373926505649522568271882791066470089083525310462889111162921273893297794754200741821006252046016414051821108096570004983622095300168586387902896481335709227094556853339500724808430744718723732961633024900970236575959714350512330834064999031599678883772626201702661546882465432026549630355406917970634369753527439138992602055129123239311171368867788650797526114828640123201724491699951659098014285176846673601126338210893542806187175062113527888542466881829645077113621899863986399364069369255683479655394904628416596703874133819002825148252332680206813483249516560250592169912270366201021348612760277250008712617901893487473380740375469081570925152704772268528703192919978209301190534535105347813043655536215643083533830943268886191241415635948375597877771244067706610600775037902165352298042029309198500158165333200237864176463012590979590199196500500591088979391254992338517595778567781625659478019892153145865216562325391701177860030652897006437683234175921778528599944817286157488130118568601021911723859448564341361481762500836847392570943739847551936254898229142299269805068196956504808144277848562048977203152576957968697265337843879206909032279574165680890019859757440386277797529987189168084941581151058901443052220895422074762320983405554394882237107195953371926014730912279547511325677532163495355479048919802774793547412280287024326648109420234357286804895575930522921897039668978965157890749658311731096468366667232060752455340921968253009876549589926512325496226677655474593971391584882892833054364335088837906836817508909056554838530741278479379390965854223322014466494821750189497995279984801368558180133960598731150617205001841902132559228222227317957401814779003354368011356162882554546459863096350066273101562211093697386931025584513655557015614988997128837667617297807284593619194371121658561305174082318475160312936617101012433997031442499762354535854462477284572727640013115480614617211239268381427337505243819307969805019391519145181067872041150503683851075456227790580685855171181077881128474261060461387730292012412170706162209445425113187223511009512741634832260948278749969486839514347856282380036059668785544198126226754632100487937959257526103862377724555678753961805658384368185561116681179841021395019283979030875819784075690385751577918078002490092211433118882503401381017935392881976472486154168417531317862075684766585008710785741802547514026560559638884625472100024817795935799042128563463977333924621313835278639888370957401073072274902002475755167637190729923954700191739781447370869932698194967230878163924465363844617648772272373873254440231735330892513822911341846511138840356574608827855023100779581427352833704407296642207931266855823521682081927567136936839335832197037891969647061357223912611015458629621479953525023528238968055662748645923015049156024171005852669877122169599583030724226359636573441734023694303424832568401780202543774593592869933163147185754410151960375349944955201027032299816759079838552730700210957223593688340614146615764671728941253230839507578619901689614915183121744963297132292218179996721474900540554149907447950144062008928646733489263134650059051066833127661076596182895516472321812717287259141960366374637285638784140575344478485533750731324527696714718538884103521584637473482406002847361689856652894015265545982256643449943458381536302953184543327116451786912318039672348837743313682732039258224808208348308592902662882503432253725555496798418415677426902171365553596759173642535732871625321098955625944916482245175155987717175445192987943863969582893769198314459332962598295354471773956295603942547837514642777700811391372006048395603232935927373696464457030648981182441428908963079127088992944779741335810843734926136235875742063963039212537666194850018625319470006993727687085039087935687123542994433328931181828705172799707213951167956924547273491096876243166368688579968890259815070433143007135210510609623418769913460567606463848820733383177082364975035669712813355284425472302376366427324680697828466239912944560236555717404430397132153316659911426807252181295728540534192138664773091358748682293559265699442718658484327629061988952586617188303461723546620350603369303800548851795263502029733909772718875875468362880232076234238949515867979242604979580899350176294175931733903577024989533347037441991488540338967148971229463771053175232390264401072578050295302210602224314483251506298986120549525924588006423874099296206326304201796159884152730428392700017070347176363109024268409667933078625090523179957419943824981872811598016946951919626275214566568965113520334087022725913551585477550667733298511945522511737164916436190901347951050036786559447779392988961533152484340289470467936371184079625323779022541730455883471112510248212444165937468578751871155260220050661884968022024481070834721658934403789951439599285850933614333201718651331432765969278665319446560291536731474973298914138707115911146054786654516086591833137460917554411673772673994945931545477237875079950491260509513434135514909353288785121180253327972521160669469218684698732249159243596821777355110300303887346859959662755681468259244941421180757410967629381157424180303179374270444408092777629841170104366966508275322874941641810972088638650117802435527228214204259890527084078612466310135008893975807327294649559459796440266083655627473712067661619057797460505024461481307247113675134910249755004129692470959784890052751200833766593889768274100355596062721722225921797254497933895117408385923548198537691221217545645907217701052201032844751044785311837045794136835642397001130896228424084034766819861301802415392805210468727277522245139844216756371837347785448862908565910763590928367293288529137956553343189924116517309496435228741399432677196181624215753966134559608627423828806838884312168803517264618335259253639007236884862020507705434854933023901487537516396350988428528646152851356654559151950804807134266081460160784796329330769697647145268602217112409566951345127595363801099121876675102088783085616778899162158238694835084024852018461183970468186741742978533520880854072685083353294360174827425275690791963100184451408711234135523343178269359799137878194310429921235759879999328985055808576261264659940023509950728396823335467112993063303449999627587730051974042318771447944159681311463177785743983857659453727928712639873660008354471190211805045824943261116751596624673875296315486584290853039339649299319468260405902959535575674656203673314918403360101085329686413763236829193792015322884493672521852729300223163628167443237803311484519027762623070465586563852656685325929413133890296177450356702475678928249911169799086019119498729328986390515013317921584274771655581505412672481319152767320897007849152620999672006988707273173112615107681359393863884241860305146066710337937477875131868549144046204739478500278213053569922768466609027369747716947575606579373622144871492234149869967917438410252109253079859419009310686982847919528873869054578755000125625720598452321113163100799927334797098543152377296235557580427994163458108761404175426143215722683142327882536263079934302617119775199734471881684364493897161556255301265908871575247990090105602739256586593567258040561853559296847330496877086683339886992422324849706973021119345629720588090078763329993151532808899226581693908401889849205247350205415666606710436405911534825711752239596359843683750825144204127405681461025023831949457535531134303887789063470607893226708209350319968952132373105645305004220137572789535708286520842515851497590983497678599101453317157702820610721953934939129911698478532648356980859842709247979381922407927352047984937353187810361670324484364099516577875358655928079324064274504812628320416616390414619271175659043746700643659415239759504724192793517205049328261881119494619256751088688310546999678559466120548115167435251033821706062674331239133090884034442246012616965493622632033401704487990843883038097156881093911673136725801667989365993362720160831949520326364644669489189131517535619470237991596585043774445860450683631285311274131458513888783946941452669130023872660844306984901327808032993766774047565689629992651849374220893866346526053877454890489327028501020189474313113346257720176974100369056797310766796337949869084677124961552338149742572003422622745283103421058343557515871483009689156450856043640396584439869925935718045553059423930829002271438190776291047305399223328717743141011771286750182309069865414570290611640844233780922392665492317891842128643127625036729027398291717969865527073407592719783406973566540633203863163782824418377081512606512628785219954096527966814170730857189037754596928561387792389517385924961810408546559087495546833211165581589911027906848555485290541554790027277164505257436071450978245402594032343061151312049712167349287743938301244858470031475587212018613883132857001316774965266578018373189977771409037828515737676048831312313686023900059348646024215606397087174174478372722572646013925478590184851073453204300914804387233610157838598638443626686855430793768034032001779435511602134400718577078870306610826581511599155968157711502589535001348648609855685676568741663750480560850049178559034650441517190181695091070264420413894117843340003805068008541439780704261431090278865311514327179476586767769794341709248243738373031039891085802041140726844256751232581438555384931061765745355065745911248889755988772319457846319217119267420986644863926323951730119120913359358787715423213930096325990552138282879052970706264384750861560352536148728701149245286226443877783730908177782808830521345057589336862187037987204087567602152122093918695368385392464707711524624810329338189557277698371602857231885632598820805972717346406321136350129318659065400408879959601508366687769186871484360679638766163537878379926678178584511239401215983610068782870503903998406824085956704719398481002347720785883686953839901330011912395091719170720845628252539175175041114850646936801710230231658817818465152547193444248209767219484993636354699496241072773918060801403406763978081086053945193970663528137833826249046994768568545679657301102353517835574919450042004744552480726723253756615480096207912636011097703102115723332287245157651725412764501749260364455643874954908082331941985368021305926516118896725064980920102662732006130465521549527484439441698506366368987983015077408097072155596753243021262839593959082409195201852531541244081472808863629244113296217950793661612287365168404673912820217844867410467135234205421892926460269470146629534126571309261169252448878821663115157998551271817848819855664542292129691358311452063094914349734431679243361100233957760646789468164063400210228967207260584268346796068290542662066552752024518910489330564691679637812275769928403285270346804990845503535413524096092454611215904308610290361649217614493940533955760209278360568201588381840186026048417075566478022932994359870623553087755788967273069717603267775095308062650632852528637700284127751138587784793781510490652531202812257482701938796246128379310524769588278632761478121764106755836112330488287591772656322496406279983506420110176568649392540398906634725050169673078430388333382999625862465335551544534830055067465682130889209958323950511532833788656458155504534469346848314996664221435398555483327806027053459993813054739239614398730284727000199504012469365675847484784817881801389068103400844704848227935961291523498473136102937598940965807164610829058607844252505328365514858295771879150539476061106896964907079997648094968943759313203222541295954792891126334051991741526954818079778605748483496011912672945259084239928498167064524106869362115260263636219411972913262085656517963075536574034948428769080996185471871444228477962425576307863280885228312597630535176383783261554435792238827741485270855796996184719974709691215647420731310051438299774435334639036859741123277197922541723846367341033026663348312395990639496889323778564742652741855313990825904101212485699811145303568836108593029323437450414997838869796475870146008927085869303855024128783929689293857757183681571141143224591995676097802420573579619539162756545937096754068762213693722296349192686578474151807664320516790237705587246263118322505622446858868094269878786117291675354339285759611981825183078028382456429332726656532839445827917406171426982951655280298549972890593176256282528317837663677467088201830107465800309623103130956165456524206698413402584328652279659941859199236776653242471864807480842884109286138339466005073109831967416373698088794372320562388096676664131536576650122864694516600525105219740533987307900734926392894425924114703169319138481054157521562330108996650232258236906284049760523401928087521262050429924274862848615402082566757656886007142076643684521567704091746817086842433645815418625012926742079494172929670315993896766719476259650847102660175961118141614539862914748605586113790455191130445708075956846590707619445702201235023208534817997710310536568024331550093141547685825813521276777617436359800988307382227936525953070159448018540971704738039775243241799129839513513847644932479686371481613499075689493650363354056809248774259892439518761214069800420846061218405772591051446332337934394370190115199052905928171192549381035578427276914444872448417521273869918032305353476257346693850428410842895936252166989457411697840349644980414651091961268349271437816168619868720428174475623377629332951598860985544862814390505120492278173266049901215719502751911251471797215385094386986688912559622927323341080107250935906603405328518395304567465615608933899126857053578090483885390377130284673561300378840915571217468343835773396638784729383539212393543530688486691484732983516130909760487790886701728272624200526370829940009170546660759606624944936088863261186508021354452595063860298846881968895154364710389548215447965910807478456459812605386981170387108391204931541115708259420493254123919505662276465437645468061341893365190587338650037026184992900297849932099107471600023045468192108047386880004085979279261953821249824832329041436146358282334960363826596043780689380894860865284645408384486544630633008513511639491597433530853417757676748162717130731775915626750642657133778491379552917486903371060935442622108827661292650630117845400541719342220623302796904773128270803152555714147519879157443541570913310734215787147257527226667551892691646112898631725500785247430422151548256709468420716489968106781204722384900193708250655323896296034525353928122232577868799796862652661653189827279555695066910438787147253576131352741441776560392965595565951409920978551996644785691825528649631193620710708627160794860271997208361287797155254678277416371090873876783508097715480303108731896069530818017051311130605609036302064090135213281845972269496164887419334397811622689642357035726635602103055291841173635943747516161197798931040446817963287760139999756951302942278833567651233226442646940456489709770284714483421689202929849015969343009930890415521855345094630439554910891137218420615934931787848621625648937762963365803625118893269979285698728438410050804437562564915252826817835379175365218012227298489078632531877108185437232412380498399119939401947672434745393613554432115852447931031637388435312037101396989733991491108986071817399175946986419259261768178964605241966055571230967781689782573867298560094733237617993115547578980991048337608677324547689439055374836871608450296791248545711054672628973811570734343012994138182380989802373451378044986375117792653602408282581317638432428095984129660501478502580710402556531026856622747411147202049230584914390157383679234996780680825362155188851175518924471925140122429454441795811572329462821491946805792926245604046251135162003785672625303584512152097640007221655222080208450718540308054621052323909493337892155230030151809870698908447378986748558741445488841195060439313702586419683995715378575097554784502577836167717505064713738610728852714384470157641923221355138176618153321751270587838932848201213783406237824624827130064826863933332327499675203854400263500521671860808738707802975044297158145153142461091321714214039905496147943836113972241064818665780380016779932847537335985064495779569052012980725261463392832659061444683940342537664977398060326576180479537870325105150969253015278698023368830361691857140072585031961315316277780383970665218723802649456216060621771857544715092411158837867158782455206584577933433886853377940841710001672693600413158646421624927375976393118169955366363501689090635274155678203303113517714751926251075370060169404813019005870124855452404122262783133015811917042936879349424106350281408773846328452491175201470646973425443370034111631148272590684196031473354175923599523848260877520441418472993760077916449631159518934063513650251887445584214791980707917332255738388106153035521147070502214405021636309861114706068284169980641110517943277226412402476735672626920732183053461599112975074345405913237566016796436832838617902995382862704690695165789423325618964757129510011047622527284872485193528998898462897436430672831796334596538698326856567974634590432337381142326644512663820959687500749146338489525926505752599014596103137757580660220862037466599811219106888232279775017820849823336035672351276381964718738237464747330270873192383683607745855058120523666576435646872590499071396446203163308769885972251076413411420716133597567160045332088645294396268207477414941921942691199287729379498580133040339532694898485929436648575108724735828703962845506510226345335397047474203994936016193517956708110407126772595325825417514550298745079189223129180769448907447113376045187790131599869137754924248385370331794484099137555772770416680770258491776084412456763233989649877367620483730038077627857504068709927210751737351582775414712521604290152449530470950949301067191716146630631603827015145678973680087817851194984213881677629736200338204829476327453260669121132110346816690935287851497766491519453686820414395514637021407976977563086137025051985582877791034752062038845713901503725743482014540610658516575276963731029349667245452073484319565967158815121777911490423004038561383366109322892198627626667423974567516495335449550981633397260945169427134424723430495892789477950820558186650555666223651435485309089487344413400371634602611224612962616045381331644003920853332880859677812280852729601262707784127633315609502194041273292153169914680060940187565067743463197549968267086999830322804188468346303357562268305420690117537428069942823872457415602074584106479371359414700436544439470012299299599942954085951078544668757759564017476783764125924600390458302706801790279787434836258686627425889818007024153901118923415599153555189184049970126948656112504606357388492419185760085634493884656217174708641004312452431706071306386727406947588662807028846246141445540094467915828630267031398946138549421313141087933914015036187239812721807610095744329662367005638148248824584593174672961525717517224856940278716323319233379818545343139163088050680898163103923391291392967902789265706397989558853216335767105998410680403106514638377601227350572823735636862379910163502385581365974635425197769587676091684822550724981129980178445358953545997129448641867005723078228040697526179204915593221344446565619870987558952580324938004036396269631315219428667058602590819225637485411733608546441994785843603105622983986434935016270815358539430512577297077655965942373719334749890621668774659591906595738981440624803016795730226444719094758790070059736692662108630456098667172647430546156605006955433475730284792506192674252020153904576102667752686192103094728318913644813171342197042666245140585442711173344790429591391156382916378475445028007899395030611595292590840625854886048576955659018170010742567124310665382087738238265347856647357692460208917912823035841652973633291687036047733158181936308380765597146390870999985017212922677467898720392611690083369684472213469810441152301602957854737933255628310093720810905200820972544788413650270733302564293605126069509976595470130608556852135384720055260166123055382752888883436525807476913873700092007100883280436494107031901303691213812414835602625598201528493773988710292457489679153951411367394275540697296944881094433078082356653299595468776725871565577062604146070690959122864584646867007354688240394114754554152981287156243455199131745866332453907164915376618206299640874877577742250042750463881496645692828190951712562678782191055066408576354218346863063341500320545119239345935545055720431200066892381617981507477048716488261276940468383730796300217410662793961525844095170918099087037102520676405486384042234343800368957026467687562181523030285540626924579934925680923946999556093641940641051875731699646291264075606180994538697581285303071955542058686225537675515721736901263083508678567239322719531894587326626399895693529892643238988139128796477810200312025273317417918959286832247989621694747440329889135606954925285347947610023596248959049503454433232844196415193311769004317958699514399000301382991501586282061760796968700741203031009642816353895488430831946050528453525454485490444782639296834105989303655959001453520049566981587161294985902035007891662582919651946557179274578358097220334746154576156157273643880891387332845522250923397743196471020476964905791387403888443028041726470448378886727811319032427250063156223723406945459648036797080530124811381961954476155131573866941584967881992241193937952874442835508860680949583258444338676071562494830232533279357794839428593213777713007954215076904507691503190049636206773216010696065205047044424659235629865893467564042778971361222271718259981573526330943895729595920878381258368944424961665224067459051656806775499915711487355876566376061307844278307395378822782063431376561022787374847743558364896659012317327172364835825075693256609365213324550156909444547211570706898032224328844162244784390952214756728678402479138595934998356749595754656780654780133589555125911634071714926752780372541086878889438874940380341929327756524889059606386149756600862051901056533132541424290865749761838289472201697554245434630559525151690103179601103443106709587012031240131022609155800332948503177091402131197870900569844801843252972360360327339768737850013610594826286224250534193528522916447218774283519178660036429370617359532394413373329843964888230728415733451471074742986540957469268053034786948900962809804749023400293002433380457029970618051001386656121254239666722969538066646838727200325923144726399933623489705584967940152073677332550087084857287450728181738375574354504862836084850872556842380921110643885235963687473688205616691441248063707389315971850888192049489810508118262683528313623036844133494102414612471643008665631354777567659851023183167933485527440271655973791301976549944052029573753886117252224792001425126905884356903919587758410935572208038537833881771175615565429632884640723137840795592968308506477685739445561145095514689852476987128729253043150706481879926000329026378775331221798379841479743185400031189965950257465099167503106886913229495852303576117002585553478224252160044208180541605917977115825280945377883043896847589204457373850949349755653162833926145691624903077623857632735867911597927785811006601646679461443700966915854356975577829028764357671281562157528878061281063728856057713437348555936576784491092517140396150256347046998450936027545912210168019849905548634418432869989787263962235594652787772828338384642660402781910586613231983020762030836218168648094279800020094765497943668082459456819081812707867265022211756015560082355442932039878125243083785438419224812182205001411621736734499313154295019449897659063560703433389618038177736205181022233364260284703429818150803092301989391246160701740392312170483440520109351995962717206920147503119142120763987255323821729591892680780782418056428043020806333439345303011814352358926330508207296620578877745935642695279090054024382118616957332064118958985655897313503135891468028632456235526880349965630414719067976822621610131228276224363005404584073157641819854373869701938506286259341822656532814783234260761263945701375755769689080344446166878768620096995137228024928407050038746899262086440694157816199268824852268363192571946286818894817238338489431144322228024975985828677987993027154388004089924696974596858409560359037830022591661735396905874997380553632630132735326816821011300232810696521969585055125143678906758787930925118588026223532017361200572442184643542817490928081905734317474180918536053739078235875295079141739709331552947823492653009237668612877768198122749693393725736673817776396952269964792051917839127561614415391590738616570276728333480173129920698086740626702457882347126806057802213793410276857740462694034666774761245828772356592656172672028081876363582642021869253394626243371925449713118939872961717049413277324294495847292092878370552694298041103480734824405129192906671857192953067475380266509441823748976730333646983379304671793773369575548204992463466723168799069380625214174616804693665684307704565307232609559424615197594914926786394102901416783838966938352830312186855867764964425503854007907981730405793318236080041099987127751993341421368214691101942194309028044973167018752432885544321496347298057710239456315733808246880135815599620778123856541198187422690472704157585275250634727163565933148663519456014043051269909076917720637544874874799413270936170508175914073015622898705670303261765860639269114918299889136683080807298583903063633597817124458947974838452307165208869144966968069445497760947222820991126061551240697382259273137640378921336318380630005091644228460447523925068127845310828706159055132012251583414314289168573545978864137725870377229156068711248476476568677064460622656122898755150982628451556623669082105931905592420621056342778571185177357585752714020987711505298163856683526143926838021782903600336609387839796836027106338984501303191486086545016245383152352906747338596480980901305818576090988105556668634554620616065649599588775535252027400633030778053662565497584942215181242374743474022625008565450763474250318775847576752672105615246287636294410832142638403769408787392530303323882518343262368139018023327406619033205795576337963076378608782146541146229921597655435991429532269556457349150957620704510334890732004194815273434167551585046556953677631609148073510074560183359427562993585966665003856813412659997679715804013152238587664437003619872588582506053809030762462380749736110378916457722326922244119429607794396298321913757291358404109279538206659551381121479328357520917769472323896853409957757844729804222862626437740956050710467106653735800114025640847633699914718191973995546963365815657550526327065221578037584197589863042668852663676327518056279649011839222206894990511185040786741632677610100565398029259627968928441538643514945240994991240370247582439680211746932645156272603989546075979086808591528061186544284596666459796922197594846890775656370531523937821881670262002858086497911043916039618739710355559004231882731941276626936946439140249899393712563833438860244168016508172391285356005445324452222265470462549480346180017974080075397027984671621646724818408646196589589363637035467790232393917338322143129792504307622243371288458870004260331099585476420177822972789302336073502643952680839211226671348940529396960729483229392176960934196719957011356301287060436037150287246704393778689878431048635007447604870242653818152971925954655833216748690834251254607766098102214725665566558513837435193180812678558171180982102180542833437347732103018968722236723594949181102000138088022285162389093884682790723503510478171307373729872260767067649565432166207625121825078734855172929663616235105868534876237356928108656936062744363729096570146623425022368061143142500981756456772852382064739637982471843199453610326410791245936946926983955594296004619720821073602896701451607565359443864948402216142571781054149634656792058498679933570695881735884146255596285365205967058439738162637078061256659722217788979686980308578574418291114834230611385082339328860222513678693268161529683378617212910356008078991128693167584128965489011459035629717906619339541437147273920322010795428537800662834565982606202369356181844426627026590349396073259841254204645123134708599885174583286794511384395041692140082523730383327107271153430646861760270782021247790850594001324683757303270765401345249643949175857009884873487739281721692521859665347177068247385466624333694505188714595719529873437829598658002251057560815951818933721902056869948527320603004371369208247994184061792075313773438328960773836456823604420056641732296170923334712906754535689987047445739007145027682825510717859449602815337666599140464989823574387804657170939787209221103131197651731053107666525242348715855191527132789621238516291233982282107817466406727279986115200121879179983046476811263189542635021347057842807961619685708236154436987913208848360030309284535092867303899655052523947035000102325255489744929740506293543335455419693855540402921950832347003425982494758767202105091357824114914633792519813810741678467419953967936930154427187419082953907473788846784923345832752488759372912736066334957680735459148151612015771498475153012268637924768671480172860735893122792755502798012008055951120196414053277432724880850695061765787184137975129728599170109490065122546691133915808554964733918726126241605091194455805388582613497220825866648465484477701154835977033475527582687905876638755320118844795379925215416118474464180465304236438792146567804402404174602676219486669758553202008323603062980179217440267717594169238599249864946481926061941794031675768174721225405924356497603992297327550221232351563513246801525237343179753770098204935567569197300021572021877582598591868529422311923257087657585209147069254226109413545748982078359856702258969386263321451909463275212742636208243740160387593044894314400809474040626414048806712461801787758315119253998289567721283125798525597810922561946314451594941683463827329920618464826933553504570103322189372577558278506183562037915344103593110460022555434839270703711203697851598097880564063949165729931790235733164278252892507210379537259532797515707479941083314181843907068119350839636220386881144131449227979799988787465308519218589628785182139778468181688630050504076351133441491684662901355597810051771036581268192621804664776583102777325845641905030021308992724402996296962041936535565908360015199733174488691361501901102639194547146839049478527725988728228369224239939188390435286986741121746111386545903125891527414177507212724260618718817751538135172311778127626957172392737905186139883511467908388191403685952228192455766391065654221706260921752154127982510182754065537592887323143078002423459272083223685210719188829943621525816928815365726760095329002064587186029529680770514071572867249924059304138258255588953819997643806053974864257871121217040962475837198445054216684257009352754349294500846011565323935058174757079122901353565530404613762965920608559140588302634663598558379314323445756554976718262619044303494225694546782958146707271576903668115825040718846727290360479300401920348354778703657188813036013153276753562774208319995098711360982765080512301590872971602469424377884559782960354148513035223747722800768064241246640068998672064734784571036721061263973517113099756918728181632122920032397134789585146279998171591266794572485638243192696471956317666124955140637351677462790967797673966708565775942840246570934613257555985560518081782246621227016138144553657355097226648575680675793104355811872840222705188568417421142849751311470075889261592515097295991047102124894409430628749135974010256067121539850599466524906695557194226541677452561456689367734598760172785845612226307044659927223650588965348726612162063988820425392522257411129455596847958432422427757398409084031553992580304466449431252406302075591938446630843161645035350272953245708472328622958009253290809099573172012091758306530649229540507187555457439448700716390914779537391300946168659084827832302900318546401367140158366937051529256077213367038559804770400549713734585091826807693333193377011261342751125335519790305823522283640586733481535596433219130497271697781619931362474374247907722235966230873328105311875889814884001231731986889317844888061512581411372183365901932099109440557653815186329775871471933549659077263854069176711049819720732619894564160535904114726007347658121570176179165802366373476552397518775779460606805185385697903413862498131805696877393539820135552942689859533662182591522238107692414353197860922859712540139584556390573511535393273070829969091315389422822571159657344282730112644945519579101768725691013815246388453701246052388446729532321523123993724999738264454687712456172606392430590642454647209950973318634774470294159541604478710229895368850974592433185900804370329276583964783666919653428844310266090036043111543341369254449736397062982751772630470508555199748256611461432993311092113805076183964090066423701208250157075484655490913630906685458937695332151072937560596946749341729179228010984575604449625986854315586822722630723407367725206487480278139215076124688875463470679200537044457343584127625150705074234850616096636992340701747789610817707329640723208574966898178709339318860264609025464969654781380104306426719769471946817857495649834221247544815851369088029578800707306524706871223902595088184133522227694735121330249085160150956692698615686906607751504299910555387334896607650596339808210522218696148275253171362076631654794481416529053674903513702771857426231676086681753486029659335199042038620455842069246624515239826525762691904166688102573295522696230030101608415101620128363936973870956499193852700661333214749222693321783041369852504717874629324503817382707411962002120340196075738534779814534818284894141121934214477211143573630860443825647473656386229787265006434275102120496721504174399711426262163218753297868726061564189563464249253673190164567675478230126814165453029506621304774823575782698749956801953347407858820678677287829496769636732824751142239583430845546928038201702517365739657916925489442162924289277753634090652624386128049694120265095612360255159345729995045140254067952634330326793933923734808314142855929835204665457659647574781153538692888658278766253094084666976789544587271283637374588068519884306779447626226502711717883346590514334703776018015682311478967116764572326935457214773948618179880489916305640675273444354974828425369725302122288384658352333353239881100527274974236170031392978931495022541002229889206214163131956184373835838305349744491576292072746772054861916427967900668194107375587883740863926169945999777656615926222717495113990589197521693995291439077782315832216391237245060366885682502741886132620432914172672651815986829048274071102982732999856162688100609820619679409821551786889172548709339138920256066783236012499126501561623816333374437404460627726694338884592845899353328555672115180476674559271614608031753728497376806963731770981254086253028820886483614420880359568518257853213432199917782442677723248234017948995911241465637591796401382747730131806887002165469449664271102967344893633611673336297084612847676418759809992791957684286453104149572570064225701934247603031666472387935383224347379924116096607008351937434800555200929539658947337293871931272066598329406961430460886960297942616595227500167801550640536979583548904765751542683033296604226187345212581268485489359205507393228996942010648861091490367110870405291379934734434581472032190304128635790000774167033797463056166231755793804542983963478647955064898559644360046035638575236826441908727082206194657608463536248919370902352969681821592366568144092185562910657082927395215890776818505405921054978765088398386364691297421230363079862458865982540755524519869344524730836035224407404211329404018125805991608161706461484035624739287334372371922365134877332795280122768996269663733011476445396016382773679718873324603570841388695179796517122735738740605314532526180902131618295293868548332186842568276377761813097998048885246912697299614987903302929564982129893336042767024499600715503647910791723800395912654825046210315935959115250737619985018508434361147461606476108938985945978534000896375490923229628454290299075365331810586407113063366139952108282317385700863688165597641914162067556758509578960717034498470188995205696761912660328161909749138516766158160179353022980891022510775219596349408532075126046382069238028887341180881041156166663109582654101691372691367404728619831540686697350852240721720915453801042138388567750447304985776667951833160765949672738562383496403366222197586203112784651922467940431642073279619691436419654079167267013171719664698334610039343386643025490941751386830867423799298811266439901710439547453152886378529670285834910969173597503536381195120699000384653019788967601201341263225343342279795058823807874429488259169014446008693896470039383865534750338483410524791768125063045503623739041473836311569129049792489331864328999289537157893850063025301767320513464740549894592150099609751733352001237233699039333370890627651501745077151655089490184518263872926695767317434185312184587286589399238933370068257471688959496305572863155995351149913380156701573971791477000942881514439108919963852634949277307660155191814479808635400770574622410683937411261643828541474727325138917631819832933354961624168934235781410306376878645831631762266973490201419730102666900369876614535394611843158418888513822471337784330717581724631478478762123545607843507300706273861629933118857599656941495998682325284601664168487367932636370514917239975734059630493016573428556470201029455241395970487470236087992579438417494342007884520871598206230139574212809416521496458778580707302648494198738790985856658395678580584904007547234592134973303282202279612237524892304463860947382054399797002072351766016896317302652299944325387045311065543676196131695198461172229962257134154435465670692638162175513154834819669471370998801538132620375239062276939403307218948842200571089924849354898431718358698037878759684964154206161138078721019066487669145952370038310633023771068936108607519495365814847294618120767623357118728333919546728829330803506207466959518297585506671301140790501407907216378656315701478984138759722588411922701364426463735575928497842286583276035121047571896177744916997693968219118817830343134355867611808423332684635184431949913799598206193218924142949941382776906187189054581967203170837444221381534586400546654232070202341969826507227794664775762870402432872884744113575086190747154168403475343359131059252348581009728561908586351023707437775422891578363677608766618354208369717597725072193140548328258234285543155049556128969993706491553212651606619181785092537821777438589461991085546171171369233217334248818671424811072993725769457378375217305867816824853762608064933873672223264092036998536915161293662741518152789779973327448483488000441605649744354485209040230512988602485356380327550680725564698752270195747796863486916327331326914489412586635868998609794523040576657496723890234291918741576196471713096484524784691606425260312523892943464727863156856432620569095414584436064078455154003256004854425598533805515218827779979477299164254588327798673747316100033521297170451374821312179421420477306562633395929985982182643259811374973933480834106495921581586980651686504130069434920672365764113632056508916864232971523456281131807396578815634361657567087681641007185672361132217046014592685733035397823853015089766787634106634557745563170941499976765682456134478867156544553258510377485893644364897481173477344198925689476050631554427161777577609449099892294824625465200449914549656446090699474107242439826161563752547134269196610494229862811518422900682628839479171939602465234544049015191861110888668198147820448822182621610264825929317946117821566176267625777018467088566314312883159158086323712868513281614474006406098492980802004026098161590320380069784279588837280690178155417867442050039398358298975391380602099231794661955008430433860187477214625463115804678457286412450735267450720622744198869919251367589840525720001207115097533698151613126565680229537773264064870968021102928402706559501242777525634688252460297689483524888467673496502209434832904228001587103464572845298322369444870571374426009882163525782552535855606717739996406241600381827105818378459718547073608848934408249905328243280727031333312347122614527009001006246816580006306049421662396314386063575980861918062161558771860663148973904939817788351064653557532961892013790729686493364845374742262300888672773342574407865874876939561033461646017362637626757599048656964817087754323428780731672594490585051022281880042983828923253733987648006230812720888936446534364307716586810201603480953720796924722219674165385592490010684174356924133957584003341620246451098925519195398909225025097689342905737193125010196910056019583761907303136502735351154652420336610754557011080227655905867239536156698152335375586359905867234613556812810836986965041094127420563582355663649772553192034803533786679148667439518211317092613099786194744138849825260420362553148229819322539132341969672925317802742773035845775577914388908022521266404090554362604542944125282881874426871825480341931516284395044755134313324138250164646661454116732516370185524529592734193378544899626153554787347640080446752994302698457654146541537540334541618242018339650377782496772597841363702606108692845447795152071923358374835100851040471458625501518726920442720456318233077320267891409409720977694127390436067479102204973847449681103801449366130794583584371017307729363079805061637746460615960762821286764480020630357264406829639095022392550219824779093657388251864075717676296826149633033002938562960818799621016877858457377042867177839082513019367166079065855687578832016826694631536636707826339433144435445709207752181959625518894404473605044254578229269533923415875933112329488574277948874055563841255544108991984849348013565715981853355056455617152545874488802092259390840223554712103728243879721984866053366279513290433183807565235161884948892922945006849140048680567579952641277506835959332047386375468088096812098731919420918339527546539282651027419203214487058301347312839782144802274277946141602544368717829789960160043921917119135609615913666847069375949919979723792496614078481051897809755592586669867323174207540874962375928915638263029633205458980754446318577866045796647400661085118473422778869550370579329877894367950174838672232347682979507330614405551537717654872979664457122456192387877699275030967971844560127909385175601470267872466133726361457734348047711787629207093667345429112314284979629155090770516789503656232494300991057281619698417038782098087205199432841609665951099040805425027097460175881106859123941161182244371005397480833154502547358226614882978846165695637457161172560960457565630108293016479223384746696069233425726711289594325701341028541072813408503903605560777564427678402158012231337397476050598771908491031463987846428230697340248567883255368183900783447861508460117244595200943379467604779135780273156298049413388266617662039811805869121601386085110922423250778400907225877260979291794372194443042924087760861758623877940131691571634278717412258336671186812427163844111240602108291804510484568302730633094629197617417506794050005041863717250877324127236985053068421076637870434211104893246958346671086975744050098085284810924371788900530757329171168253243970740427412691640358932288496600769352966912222310216586969326397889964445129885396738176273529687651030929728520567995438338923582915860196270796587822194532925489106281036045773819314447751084891708356688897604530974023768056505385771271283095081386032122888960206303498209645246172059705565991065454730073306914203623520697114870217080868948753222349174969602215139965543623729397438776310589806269595182908572679301446524351559958902404562560770932376887134151896211102241373493031053818415489658718339782854240032883082756541413343036246154151565554213064246554852699243955493951126615493564100444862856182494345164417718143327816879078163452317346312958987723999457134455912714690634077960251542032683523556952637235172028305650833459137335529503056546459555762095117485964774119482081594044387263052816899629398496299594045921496685581961414236987863514794887085795869068802974624876572022505593044002149671669195618689130071696230434925452127965472512823905460265210268030428277541601193210694918944630033394038423481874207834920203834896076206484594685236593475683363365829786931819490785751713327901969996744188952849354227085809085843435738014023327678594531473981760668429420687957203167526989599836164947078811589186188933613193362785067646281386523747511380427482048296952772427364486568277892599901112741241760254058759279727795614840874100888842940487560312583380246760955263967965749904428672902923016164231610602338117581096638505402028480731122388982112054225868304881225159428293548244954041947186776922110175909368788317460436306073763648114211405668581896270977868831361978176905996538373738509802954772709924799869784889953270984489318633712085613245393445854410954356412649245825879416775395737645812176550454861401771842270834402229438783705071812124208235630802100793499956574092565661755115830977625063039167329077801268471219232915929257526483734600865699315132798314152312896985987280010261196377896984497015431861086662391527039365090939649378206716246182751774195214131253287023273094556869137390990482963694164924192554729572925833651205111477871449378329756517665278201896303422141947214454752017059162332029809834411989211380938859169513446854979434753680592437718685904423064973899656340372035726388678499177479406088620330188779918260624833006429186848843210924380815916823832442233422078410266821421791150384259651122739442004544495403901521084420640668765408441715126410887409973975521497463744939522253433932783992580251080764852278975282309648117513253894354812649105924267549909925342082076568912626899376598997147158231030533152857104182054696744793255286239708652871219398560784573120977661450880177023490935307128803893924482316613910173126743011359135514864328585853466238400731091779646143807142862806341915974501395648859008087992748948121438186564298175878755835772269397708696025271739064039191986998243128404763723599126362651113861698052765654044468121033563541031556089732696756959403297892569058413795510735752287723106254443311278811506517902231573971293170064252244170503817331340162103746358029532804416028286286952807059498409799336111979462003700030761069221309862162139840970409480859691222189224763342847406833709386523372982605353574250763110586971594733608068265206303722412087512971163418369929818349497211317145048907672209572699090461597432223931073477852251813382126126672127469701127591014540064943688883737558495760913668497266701417739149892473761326022774249682188968431074824783123783792428620929202519978142547859736429742371542330427649117020362413200755201627978008378998614542366491625649449600725109366984500374721542682910113023461590006098415736936226039510818229446523904224020336573003907553934322060112849040088457333102337301663606205795393292222273259188935633301918121542320883426770779625582615356580794356073417759768420076421899325934013432698805513812201996589580052566841048238869836014253687548496566905647748171302031251914187810398393510876417560600909609202214931929446670705786882918567749830008295004382402012783149011690660854805282708063408684543900686787203299084527313368227887191902890401178449490056369379327900826888985298938658415504186316276824352378722735667641155170218765526391725250922171737877448867027873690123544448400291301783097219540392817533010053078515200043719907610078534194099887755905237564360122713116910611225486037280388773025349801241518195303895736445884892171703585130122557609123687619657516664390871129009807203778820618657622839244464906584329587477287717774828065265797264088996955583766996544480002724814463698122325679006076894676195479289168310954458361162060941448709418245596298520005850993471550581510531843006361171424108558887063268513264162769148585965636986314266279367874293904837106541663300571525257736789380649727268756668338529861602970703251063841262945551899474589499058761898888289478117255507922950097810206749491611429869111518071343742070165948831817707911478848311283625125208410319567939607857662193729018920182001413855873546248559404607979822927705749758448266393473311618654700147227204638748704628137617818290193841938635916422319811634154030551337060392738489545985820438332026082836932233248992261612120222123575416751245103176442744416120841701910739197717095366699217035580274407201520939388746094575787688561431225401010169053754588311770781420165737992942996758370795561814041799415996284112087760187715719914219636115183811716149715190105773335607839791557853632537568530030095785249537709261224772884101714458260764582128099572258129688338570844585360265663260971548942547336511170222736104024082269976945905747541588223784776107012616833079056158707107636420393677694213373785314683794381980595339834286515466747394929867054167105049129247194477529209598493457336143124299644970018517648538307320845400076447396204917004437601061638893932799139003807842631847452447151957566421891219508711557704011537542537943314439157743387467066167384228170334437016247350873603927877564867429157029924346309478551663860394995292636509113376878939921356729058346689718212316006915056541895434442636061271498274320533673318965363993095419165740393717983605459058927297138603479199781719642656274389424240873130815941367541594251633673619364787739606164818069476611847891027570322857933504466243268982961646450542432535602184849035150241127558247085029940933086831755848714217987408802264813552071489195639465055694710755145999617219692621089987079819283805886668120225269561319818338382468954649575903357852778008511329146686264705532059361108399617978002666001244356532477685918816964864769317625279134290723784711990625682965327431486545053070854045174679657421699968967868937686873784458050699786764836621515868785866135620500369067550107660861954474080198186670600002707416135839961127764411254693425564629254491799923495175506268271099213896256313978484379077270129872529792586614303035115295090144474392463710057131688256080433760513024142153122756125793885147129040448833504365358253462278199213485504898493472242082597087400611781237725955798150469245949116539464201547264058578382088450289470809080819440156357645130642528979162451668336679901501249093838508965978832307606807646803676539099289876478868204491838098208627295395256510348397311157416198637592131785739321351995298951694580571556110900513414657903123836226612045742865341198164905305343149607096653890655920168847089177938428222198717958790834068412873445864372435204285118379427492483263943206740099917964215131492381673227637243347820639765119147196108010464039375497168633309617296446848872251760513664463799216322707119165818609568914342785771085120519468642248710203943191837233348614448783042195667820103936475171840379012050795543463439776902733373356697712356839609075635413643687371779043195933206551551837103342614084802764412883240966760236765506922515161442573126133583204086684215967780133819558547811506298250546112139682639314448377294422982421929105452259195825927145760038088536116693115060728066715323173680407796446238022839100057874694704517992920398553606263309828304395163800925389712696150527662129638242957702331686442796596216532632925033394236622466583954330348384520221496087661883303223357936313009366415949034292937238889039888814100567506168139041476871980661603058245666253180130537231428299235134648414800908265854429728378006266050573299051704680149764510515704443228493423872389023977261239416545247965365122665631988264933093665588597760633326216840016384006956780965650263323937017349143806766126948143029180073296230738662265960789705209565515285728640662345862057067979369462525940009587242860062989946444501609593532703578753073888885842839761743050491492994357085418819271893130829389866226391153882766379747089758135381924453348941123367817652398162105892077704547363165800996722640827362821510181892266406795725866505624344675968421834265374856050788372831184870937244176458988084921601986516098713467876811161358842650321832516804885901711430245364780775597468300624890585947336740758343439666465745015289443975736248474185455763788007407810867180051355720267267527929598664106783906774264327498200826730385201343211270927773392939943880574491954630481230433402189159173138316882963160518552522278153787217517203878805683221967703157135834742763348861171854788993029629426634778899684246663917348717521460416272217128907879848362776447216224878930114945042915912777398829707675717992569849957940762288109424241767952288509253277259996560548325509225194988633630877624636608165664989905994931625899325394779520239191326377165412925269362773063246656313773172862829322016236485095944987005201552941042565569470707065820860338693098208876499280474006954937939206859805726970289870578219050405980891426712804488011613493784058549579202811713738113445143742331886355374582249041191370129645305376437580404620883478841841319896950378304146894252832171474647712027862430708537976460590795791608904673119211025785472137241497633444194049375599893187377011180223851053996969457315723493862144490357222840925629928537612462296930575195299781710646924459184790298291849284360146041624476329376848722809041268305491679330748937530782703634363250832897791629923230655703066095243865221914497032208910732114152557536568686674411567363100189924921075505850779043347120831819195196630512832772442852790311725020881429648741439689716230957657864095733835987855782934487522859845349681025956764947387438262750840276910905042228472064617358119551305608782658728331435046371629073726220519656575150203284584844604443123985847805814469451472510085518108750611230555121622706301474016649319604929760274103714186243926248494252359636172149399198361426390380399478893645063517579138200661857914225089146295626317801567320324842022271999972765783284130335232560589344901920666246568581541311622548212632638931283682764039106845360189779398927752364612674502947132299741096509478258595801704685055243653942971952365932644019558450274568031539132086326104332752726471496531471378859386442080287920525814489628790049103747584295991414277691016760601594422555762179040621976915403917528376675532335240764313185081649323607144933130098510612472600352394022625080977499102503437360287390149204418627049823130699680154349250368389265318418451322005047344684731098818049129328412384891070729396970847805811862328537246640723183729580500902778182881986554504523354867348198267845433053017726445079022339103605714184200604603961680255710934903108602797012647411297380997057389262447310147863246940011921517854592128587252336573710542968678345101046504560644317693107177660864795592087906780424698043915154159910087056151988111963656528871886034406204720815708081921707822653137547954115515718922317160906487809758730131213215068130011309874091715607212119859335273041781589180688499279660810378582450593324071093354070303437906384714070390482559417874239373386529083286678916395405074223832777971691321655616738328587950083236570591717509811808471149132461663467270855470379789089860753971991529359429655149766088640170924689189885742543119227260722108016288808504098807898068043858346243317384960788909746496764537431256868132061924738061216527524648333340282985353846749359292667149735528573441506364012373623185144827449178356991572466455940720813382035679503959622698030246194689638777691873394626738186086525463824777149478455290911977995478848647765715507598426456566392561929660259665278624831868644199640271146751450855603981209676540006764494428678146391465769177181775268662547369709041628260714538701799592107283711961502341261332816456873935551045232042223379949564274994108485179867306195795891760108558295998850528290598592666936361561027710547087237144596823460661730725251062280661661028578861257353468780266847208598386393878394618408225780125311216331233629488359945186403627071844206967270683830615234972932575152621485559011048327690754735949376937976336478400306555429350815292986856681335767804356649765174442768583325113583129662988563539227662063463920051812702241474134681481900169533812017804463928811385522946820787666148429978337331640707303321687152230645953177222191718953279385378678694239184375237258540535782071999571530957672696589360710244695194826227189811131500603065768275535151966812448544853424639740624182282602420238887697346310500060931497893654135589318504365461184491144085629358787543228576213582374079297848864146536602546500122299717337490659836424199083618208283564306062634310353241631153751026327101000570345431937360801353665251292526674461934416038936284500249667532007270862435094667778940052500169125543319732778379320538138384902809435071624313501809150710550086262984233079973082528006673018005469056431124741293536677268044261689799340440037292985546124020350123743321292749126383753706236294846736244305547806154995041543614654138093673618844778848916221197450823066316300057640909184464518701325553838435064459903233221622379549220880785450236586455242593250876936466177334395261334975315409719707597195092073103077027679731391605389500337448834724921424049991766314875636020773731621321120317762454914745082659753268239958449727089858168137399943929079656149831112820212512096987268596591083573372027629965015798099534390383493524502058564619174815480093549075379540569354055908120488159121475174641928209346708974712999985563194694209503880607689467618766749335264504680947269282566861989025101676070744612080411781300214941096328023407389021902161420846024124952651541767355558439645128566493091379978689320689692337207672112091647870342590730999938291976868459995582821971327678018466378210975837072725429903630340701193591500191852496211307729096708624116826688536136995610845005019159120409037582308181083337171468521374098245255290765136947483533935894272608914092407491096507334711778583008815271573871680003210520706396472092390915121283617499033190520571557123476519517285794491935105284880481876790789477933106457600048653930644462827006683255952872450525086521072327193601324843974585208080389689025614169719243410049083541766056269041461960333895118846463189515938884577783769785648420958510933219573330957009105650267851835584733802688292443876829134397672480543432652466427543635640746660814772416493355145702440870461585495537191713457896700082427056313770355929604164664782802958603207202829553857697677732610311115939570510210222220129996278909296610357428874755461781144982561494089356873151054562793346681722466043051540000250688862242782154917494380280097863893870601544720972811934410989823126484558930339822070031694588584048894653100706393416982655489663075451870187188275449801422675170280960882050668831305712875294808247004936369868907247118858898492693946216835767408093654916231652125100579798586756099177979632793332457549807950217418595989549747956668255872404747192404589652309972294509580664343018334712069612251776322156239029194466314096383896553878196604216209307200083459487364923611262776250257607776125959602322347738964911128723197590847556378733186079234271958812939968701850975964032236739674634790419416069268313620397140463788779421350920578782151392259280681129602618569636187734035729702404177530778928403800349788500099954007464551568341549712043640474054690191310919525051622397438262723989376722747748864610632714036403799542726268045143857677280011295969982165000010077119039575861062701815073030109843337977667887049431003918184472241957802015239777292032236576563076238354462896839259067564665644166018095195748570809288368501629438604239440654153789682121723906167823387363205918774027717368643215566320791572616510083454961105420411490267913480622306134936083041551352140821459803692890978300906377465195406069801981228947708175966282889242234118714142777691983688370253943384927265495746875782796934894728575268471161811602112079902577430989972149488271210899586091992820737896465633900585252000357822829463064597407671079173724000506479407213976772469784542388452864478962400211398502152193096977509331117612800620455322704509429119991626143953989134719986011408727489631335779029516794134697853103234646049435018735615653712784634596093229604524073281059281447991497717458105925118162090824238351523490845307281124436988232358741121325756463985147292024958469219620283138095725420846356416343222327506779757759064877027281823513595573162638064062805616569721354639291664246788092374522271890043040561652011794909811949325235746301498948688929761550695672024789348551349360080730532806964042204019088509162209137574118090706848335810974742393577110187760828288133338365315650238575925623534610453663413772076765082155938451696436284034746877210230812381027644873411439744373002163647484012683730526960924311963362136580109656500283357861143212239020741168765720656632816793580356347003167273397797296880887141195967684603507407957159189341140489659390562548861749456429958026382042508666029460535757049942090500271109487800759361379576725472035040048192736306948643495951106637050857314726386240317892139212961615065195028902774628052867657307864437245381739127591138029227205884569723633659853348051870707210039513984927741048589068348143334181763971723678376095356956285308432766025686311822443342509096199474077362672027531353249773809550384931329178229241765929199434833755586940528432267422734377945369288510908479641422144148278098733038163661571167864015753103632048862436352914199202822947408767594631809873183754920279955216183978760131839282430210466434451118385605804949269489880304636524051101534757834300959477929528366182013873039962177497446389496497577041635043166834107742953182995469091466881831999701212314239364483838530381192962867581123990153070658302968006926130889899717816389955004693231610388708573291534224282399855773496960183678923298330859446895039680658732129574043964382404858146076760576885469279510550648725108773714893938663720269490637092399619944600796085494652350589892291928341931659315414748969373786620127514402900042767203420473325763770932303739521621396718685067684504849761265651192839706222249290639916676394468180735587578359139135500566325349173842394455930417937680394147766633929630856209721168344898937595805619799772371202684911286220430612171509100394712201766849409170049881553002860877280143104610728362626886065662010312736342934650914424473472223850689870030423975318453684462443935282383549977378365411403601735498687128959974187379738965087430260070085344798646095794749595933780330698273599222182815930914768439294071854317426156214002435855866292935616397626987080001540563305544411258102845281622699368775370295758345269375905788346525016512237251763604804256377628124155407150812641015497546763734752849626262517788874994139555779973906818999799306034951888146062048355180100561771969812357277400900118569156700115550489974008312740120133655701296377728739600179947204116982859498361540007412597266382425606106392233070689487278655290407777343079859376899430577516765143286147728950795462774678113321589358835236123571443592405807038647453895580801891713236128533300858037411803867965399168644389288259026110025193979355653855272216472669332527199139359819350711639854600042514691544195870310370950596386119074226391710426221303547548760900825430485692606651815403883862724201590051990236360963541375337833393510666225301740961370059639215140914517277421420647613845640490295956593410008722191582026887720773476946921896862480807000889993285042602034359179360605821926330128887804146414791380732207176050986072555675964516370898553189247715448633909387281072995183714769455112095501204226834747227260038067451584763144679169251706399826091666116128112956633545167180328091936845392550452339110172474429556919475079313274256743200126321496157040413758523629585620845765667904980506539987025327016615028010426059033772495155757452850978192044323154823317103495666383795694773518899421922523182955889575589410814595605487124206721621601546364740556051690060505461344780254771297982568062300083609273688740877219939305796987769535150153432299352466619740905079829888062223126020225354673765026329893637505588578435664574346772292089026075693083332691940835457388244055661763121183732964056744480452013641162316412745223164893462186064917745494114143996514454261335983701048126492359622630169051061664776437328348479948324398396400032491062215996875445427647742331973706676228445061646931225061471791812462439515168626989787935996392715292909214911633700342389355914323222643942653309529425845086228380455546884858190433288559321918033408709958635915991012654557359723116526835539095318332992395648001438194793733816541565839507749887883199337293561820240488935522311285272381231146573546511618459832306604069557279085920986616341644151003810068069427075203880920313634069474154947776879548024344230788430225504890300110182868554275978949276189344949224513132776689587294351432107945188476762756792297499502993349060990384525948411286744317075560028299188717638617814976023765308137953298667423437876542524471382092853767173041555590191850592329572694888006155347145938541068572007554474563731898575474020294496562026476225013810025103744725841256192404232974248846712813389168357329767023595193193619658129827782717436457437030557479326529271772356165089102125932640344177515153708046686761938552519275333721982599298089168171706139573598034469692638500128251263725437122165099992707870295687066700026359747997488651640804072448861416298629672739743520511005375970648173326795311539884870998563473281424727026559429638633477649255873408731195648657826918966720643590612931134206117566133532321706278221553210636590080762087195137160040161721437165341978177633192982374614725908302428015465605763155863485336186093870570997302813733369369059212265361712483744893612819650067241212731920022139319366377839623636033871181585620956867982953073518271565783370879575050272523032964289300419971368355203718712498195462491265650589126891544298051519236337147102778004534431953295381923975113852205243179746809324361463185397114810134823910513202483921275872228231551268964263684521837080992014348688037905964244379228136646293476706767484862061610550429216758704632703041246013460904867847626770235306378827536243540226320918109834878714123860488245833666682496539415664392973023136637469389189530201709289651540800103924237995824838128894892878061763711984373556997552265266892342658189969221830074928708350921411797482598033884532734853283441642700343275985781422635326629219568512919695792634845693737807892585895871715099596426690526951146020730528138842065305311254026694032970918199152482356965635098337559534711419899250478217358735039472862714178195736972249833324823070831691179168655300029877137828126223287387701797100134901018355023974060863267144007181619061632016043426560294333018596166999849436628222122864034189072244468228986977594215524150204644208555149173128988204241423508282151660337076620975554467989391553782916305884398428416665212883507099052358377770652929843847728424968108361480262384244000463281859095443670848949501573483037351761987721792173115177536561008913419026708427455469756894187011355171269800068274251030027706497095163847444910122428678339648462310701268052217829571118953058518601738783180867944579101302277046276449863065650514593834241976655403885534593771464830373885692278282524922548477889242327597684412033441827580608893185179210493739349703417126306054666176495621894136082139020559160568129491877263790127689572447306898254802626516001975051630112001457787070662846434488009380910386992131490755196806979643218918558267090679482730222801209848778634552661831679539119505070584160759540385275918843936040247533496971047508055757892350678965674998688098229738734093673500801364857986769577754694497417952028661974622522986378691748320236009229803220674832828866065248377290872000270917194299597584449813755336107672477594726521848013145113183074396981428980123365596070297118170900806768760982972113678768883945744184969184548145415587885783297194033059526594129089462211577123787656254005992800878429367487286972364471056268463333648205745571738846980225979865416903121170238195490981403352002451044484159685486203379478635126856516999682019482022175044722187082757661486159350586383386125191167685709193408320298854139344775164105310099899082349776421846278383991139863528306081709326364988776658557734155372199463083731264928323365447826632913706268403401802514969688859919610036845078554228246344527926563035532265487169866391593501297285836751146177493535849214370652401451393623977546341716478558668262804071434722745631760740537690530404206888474476814810962649288185625618932324655521283988395082109295459060588268858661126033375738477096363872663747777298865505684364866602085658277728274178705364606729567935882484699516392468629053332276206261608169566256617991949039770523636891573070662521484092626936715049605344662710401813768830391023520499424886375546558145571252303543921062335469584441797214249442442485064125563311485507342729272668585416363668601648759633760045679039646816800587724029545059947729923210496703291022957924447659828626973913847283286086473658323844038921981076043452668751697623568572788200795464356473555279775599773681797576689973827947731942338616139956945491804747271555978439024359468816238957828921190930054428927634986974772407911151731202238684311858474448849629730665787826388886498031070586424526888032613095160308303905381484312783979254785261901415899763076203586218659240898091454492425544832797434349212908112413988066067590285539436731713387976626843018264807540825949622789236639998805232959310221827334749470727686534372554293703713506710808564949518305959043741292233760120993096705529624401253306713571608172952675464541475035708166494466022378219286494461760795715095336003130059118465347289628402844712362287586470544719580778199947662211802136491573677604077178255099459466117692791609236194805745266107737827120197752440575781742897201078006832914334058457575190971112978010278643937218826974407741787143742435733228459777796114364065120616851483417427755802163633195764221682575744320045003175250425078655605664294946371668393000767020729664285309163640605837865873354084001945061472190477341305426464339374128262320668244955775294561764880862783870418575432217276019687711338573537369553005617159944647377055586346430975870101942456375549013887248713688408813369171510054643529386144958034031583611721656651599134737259805733624190500159633565105436021278878761323799258158001114238846173437192473937905857816434003413208638477943746866761134183637458244926330985999707352827344329229404226856507340782690637426065173787278463232015197251428426387947037985284435781729551699401878092483005672185923465373574577168970632745505427587909145942655907280842297366744490156568747505993283169040033103286161320683244308573383414073838400050214100400451867530909201595800346553544027369558436526020173813112512028892509762940922015111443581582203658266459825594678057171981285390910299068058510596911741573713486586132061527133060381792788289089977813225582122293228596888846772736157298401678911716907978876538856442338997814361252218766506038690575129107904532987734126703794352503387912239061421245582087621323809714645872979454524222261497693106692114133855820379725983495529409331260650258474452511205055615481434791157625580242584982603499524393984906284919474875652926911414259597172383417022462928494823530951776925275314739156743235506562605049248291401696900543671180733447018008499585673112988031330936376069617396312135133729172772877736586832629264000812564261127795864796598646926289725155098694708500217152687109198344790459389119267913367255262757439793248894412646490396596180402810080762225223616411782543598222540517506866968557360399201794333818100464979130140468057042297133776276885514397157555617542421485733315330666050905863183265887635816698036752399737222828306597656883298464058200484152177828838779461212251425821994718813219116677215722344115183061412425795147043828463127856407962016973492085273498655930907454498459452011792585118842650875000371573399455165715180743976524879921956683889999851783159633900396335922673937274814357507381630049904966093719162803790175983539075129570401682785399361712202845662033644767903051853297741893237281352221651630324834385696616245063205505250075793232674348236756571037119502964773359965108041324961098356638268011667267255631841828325173278072697795274274234505140754993155377188246709081540670388636339988779072928125139025642860255974277792133672251859911226514150297087058183362656646290152794152117350397172052932258618558274962714305021869485098063160043667277586465718942202637178869844226225083330944753954455304208326986124288188756731157459528712930593245809385252844289185427088653940738625368651418790122350874791006275646623518878334902055741178241373978496794681593573913984504780485182500919297561834985636547402320312648320426425314230529603487911671774718911602166537047630779851050434771414202758266966037172557549486045279486084146943646334915713929155276790909844272778631183213769798002433935101701478106608259475494903746647877466319467798166589009908448625348659317652593860239836447391165377484233866881077780072987303672840061415851848397709937486278675315378206839432620923310372379927657645360955544222975831313609563990663817232194992318610859863931925896371501294449117028053946423352904473616370876129816091053859099978518184461620110946364840454314036390244077876042334464931345518741870901043985210519757455456033908171711643827510734329532040458961418821780436243304862461498837653053708940627178652744425030839802399314565353917676647679497474402068288364734423025608936759791037423062778351501913542329886848956392618580158826326824486032954531296503458515937390321419129214361963820225106519620917251535831684184410025304595130455107957661397769777916072492387435005580341831906329641728101375352738577955513231320382442422866337969638313846333411206430891467377315954402424620128257680483347171181221749121313355634979791432534434337187364319949821767881953138949002517086795156129457338771647617975929726859517925283178514342607620796054996422019711650078712870142567187605371918535236416585841881236221048242362552732067612931950281704579897146257909591767874878889966917743727614557858414715830363762789141059268333464053856544526714729821958100698723910848551896324354272859291552946513517084410954715478287728884529358177560637771314538346215327404969864903390055688954158309498702941189955476973722703368077680485371514928309004153275227965875653068097329147398359779350781271927378825182525706814759863683207559390561548547348397876155846270848719200106839278211464960037630327302389580063665931529208706048313609878213703544618664864153241409027240593010322593332964317014077931696588242327793740680702764332908068828815197685523093126402102103990161340983767513965765063107671792618341831096453993888946147279219565095942821754116955123220668995404488265150524373660549984456065373606314393554399345441794704721867437439143716756388800745205821057573043065626270716956619038388429036762666824852497140665581826030892456798774357918312541225102392700067413486604953731489102333791559992092715503140772022678159206679302858808818018204809718617667553701263170532813920243690717481110054782851180660711674636062036539657540903444639108597836917699177118749480953096156211240903599473684771283301830486510629927760112517102776546320489136164272069352774017883791159821555353737035484815250273077752150544204718006798729004972299209794413866722836674535639565117722873147551101086190690764721320454896065085198929655460197125544850266389927175711346193590979665352867661316383319482062805024395716236801246749126614347682396524252446711066433590637703420719840061373989167350343896442438217571116696485224798877997398412452570211486396175696006738704235027767229438343183039718081338548252684351704391122556806193650556547862469169106000072288080180980784352961467527096621110281587377449950182164875633712680400555118351095833108916859857059979750892573423774830764144239516154255334360578204008088208054241036295420444348199901719931153771538756551133388724367805132543497571537247444333833555493944794530401702156545618898877481941014287832205732852833894022004336314345283071718466698475126847833775200704693417765639839921101358092736056622484628528529453354182491572742095071852411884201024367014464256015728706929798026968173036056977992128242156989600734633801401929820594560190513189232953294168481766266033101116360303508866881862562046949279011316161812851182840659490202477982747497039000144603958677124537742997083372281554140517584030817596486394171180434293827758911129793363170034974157777669608079932364672073598327881613770776191276581730428189503608717052856793000228574727005097523310581540716908939719764577898695688412503395780527046599966228972518485080675765809998881336703058496771282838170338113670933484395627678998560138479879828805172819096704342994111934179211385042782232624982615013643354660561403226944633505809152614948735196674630040712603351967482535857595669851866847707362103819029597920581328020546388167250480380215555137336402468273369184958366970436726520641587400201504585260491992404153435474670503323603991350701481720640443168966757023874101221200984384448036831713284139272905502478497555479559739766204742134291198364339874887807693404210236536271460739942710310095078877996545522443423078280681655812904802038284364531609434016420834435780686679305862320782123427322030022829980848209768238333038916021224931171623820000299673459856012634372200508704118245937667099753333439088762343252932482653127876292709907692111009326043260993704942362834788714652270106396209495521019759007427768715019719180168503452390827169552163262487559698868407786426868994410353764313247465565756659041279743873604927817398084217101201101459883505246057783972669846988859860096958699997712939551296313564235040310675922784144857154917399220995913419024047519861601738537091342335581572256836569537943816131049679401843806245976949221889446695558079551346341411390244103907425998654435278945362508128232406893367801734148997362108988408213068687355002786402555932819004436555827985200515809126534523577892269332919848177593565947567856706415594196483641296950338737681635930001258019058887358177403096774095150550821377531295516017612687587006120250717555487089169790018297378738656713678698151918707418449374273781421035818374270183688077912405357054059927807490881356344736372790022324043495974131607434498679329222672191682653322357114207639608898965891857819531662147178472833713272184105599943049184793579410289308409260628108174283332953115371435067874263120833822458902164814555380863844508014878653457061260416993353344689576145334167568220116366350486163488888979236886257034872048328750752708433505050152989502920752916145252562219662187045411847708897036329159207651578215620272056880859155905777288818901775764664744978970368569581435194007846674489254569946015897181379353569796792076296454548543563812857198123880497866321404457128454881194542756782273530528860997501509780622955352717581505290916816496239305092535421185844860765603952648067488983612975589885190012269694047943918066762040925688880711854163737937269982668552032018686710855719228169511602445352208235061670776490498385639145283973470867404600367858661117292223469165005347308330092400736712034895523858675449606627970677605388915071580239783132838003085154339479447343344735455555563085077519608244989892502765576540648112401648037829437972106839933289451276946127572827937033654707968282617887417472308560264176340865449290862736349334270309058569137956186145311043406837395521690224608086226342354843481255832293966591706959437597068905536878513260599015900818339379258152348660180291416722733872675841803406937987710978082769889904653393947483619143393650760523633996931670069434858356452116261519391262190541616682693442306836327511175407385448950192260453912929321398618139528536520307240614292194133491258350241212514515774477413209007785584821029684615343122377124733297629240817663870169177941877517161081425465059106174009061120054702607830577704350220977341737592217341360638443792455866290182190836082192822152541532988571019312483228497151957153259110278347897114209610099778428309740312752568958210867647835678296552835768139232783596409628863226797802875555023589133077240912986234200605337600776800921890505657964185775971899693552495937533174820820422259803371685027914600783696265665520632904248082893503563702947864821258828035394999276605724212700670333607613507748699585581084120755489007627847050537572977347482234818665005289491511203451531632509856365288338751473161749530958376817010816713103133309318461084189056686979301405366092107656155600947695844525403387726649875730602373036558640621929475149601664375338324295707357516951527432141278646275948014282743129661141004755557708102693387800091200736267971951294776191603020407948409204631984383773107692270065619633151319040421813772785636691908275221470713289516409043436688987806785203643834087440791214202125382430326470674998189106342430810987433696261811294066671609264000260702665344858898238381500704920015823374785909906639972399369424012907964152659894393984346585273242622858415123493845872528482579331708012501512475102304915512888615704687354869234005717065166588219811511087817664840251189043067505131382870738665520388310014942380522550114834705137346042713364341538905844627747058985483374644397587540876880214997524095054347039808811072591603130259199604424027189651499601096052948912406862047207312729321837978765235124610022792000525268854645776476219623831255194074589661575187809193873298132931471809084894765655492178345825921175273798260351680021143020642016566345733358290351500033178290594600271043527916561300015717936771700132689705117289610923570772707976633695319049863873029031242363721516296621423801269973606486471569211597723078443029146653475886496051107170239897467257473619711864889964008924095948614168498703763510761620554289531582369028001451245166558058718219416418291556832980056126221132427975902691605435491203722804554117828438379300120178688307948295603423264682184351231716000213313583414354738053298030289712901810707279660911080800196527232529127530013142297322100537709735602676165322129115178641322089000922623039352279651871345917377248714991444166790382973377124356863305126254184074004626848756678498480397943763274358558649993601783166796145339780227121859014837099819881519065792652749787969158298284794065900725732870225792733976549656412366496363542198376327537629262233555878018074791775324240609871429249787044616792738870797827316663910843275278796091061929733414853139140194400204675716302729755433046424303914415100291849232666660496560141804078295078723050538022809604623492101226288267981084364143472748019606430028283071175492289589921342264472232713401267309313305997491179809107681079167831941111154038652989400728834975055238241804266580157300230072287155121566810832274113718075387136255099612325056045404716904034409259145110304408846396146965482933363063513043138781950239691706951298538149080326202858634606462753609042248274993195080229189822014972885402266628513852487433089525272882775582489806154634267871550108613581645891090643334009993527346867047297649176696926772910881304608609790810423291934151738411563471947227292941296055721601559474559784267683114352963930413976211830211397559627649933431860941749744370220143735828602247018833459379068104342082402436127633830520312181153315133954198858644011780589558633982714588364228271633520545369689694439609567656940265496516562283129723059027284258629190227796899441770108701171306742657325896738411890081153530741987567060685047059288160327262262491454705306235978662821318015666121595678778696816621225101533340793481032450001430277849141466481046093811564630990707378112305348931002574280930944422867864871191385384868697537563735395561766247462862301796824198213271069394114901290482647288999829347442602608966005240906051216800768684364795013468199091007331802997018169298956107115851643569402363190216324961093028432274555385075282951246113503836425868820101458509507713612789173440526411657151359954089368450089044644000709910558607867299268993885736130067515966292638074055457796501796634904329081869510194498617073221287275764811698824249085714914137618562563506545728073132859063188545921911195434878484856130702902068787292683162119427796904596512733485685658572858460680608111787281375980545241229083785183563287457865072048637953455546796233293782500366680286456331922652227637808193669839232213334127440403850954363640737674988877903286246933934886922266867249831448993585275690821173984518769422802523055992137943342124823794465714913338773608922882827363391844982813657512752276494456831778654476264323994808848290119537366142892765744848801546599807824596222829114031407010079046156449993743312360138099926186221020744021867094438898128876492058525759756887463950983833705865939286700238753302012345848060125124399525187100617717267365355835428907557609079438199549763361080728548052734393117343361878036047793031748361780519380518842414905605459051265886025237153580842430318237754651530583397297058080924147818719613157539109805774425327471467007683124782501942901415147859663334237076444921489601809785243486974128960452611831863484726111275675958893560676690357747000838691830732723375473109322203178089071500848555353656290373489698723992939895861299421393199092946808023557550708236259812427902734840803628135565645168481650967262339005699310458925520646151173398959886405378239114722992903192469369178972872993734514482925714310450354128437851618873219117078373782301521454453373936871504359020388794022100780763226807483760845009365384251168310560999566910435830425760569313977328141699558123128926897344763613928725262372136935599986970629106831642296283233943403582789875543970230593962620078858097909870170677005919433953274166134091503592596666503579338400369063054294275943960121324860539054007402667462411501791920043644281189365195614435091086887322959812895607622358607846932244959264375758781485898689836093975736292528140287256689540951786526752582695785433686894134732073199655090433968964576793723076878871140963743341571418945048849639851621994738019391135591721091135528443489284599760783896056188424646557318989834435958238086163502045763055149676090590110079537677329020757658663262134845512975780407995491973507088022555249815611028235548005466032516961366624120043431669922989099177998849346345668650071536980580520453706238187057714560942980227567476004987957327486482527792014020476178325367518420588664873045403392559571545642707092772472058551203007788643300746045452883322481850721987538472113287608788330807472681603416978615190851125828846360432948542668051296282834526693196389498753051187195959627216952305475898908931570756265573597328649912461692222253896442002528128154756573243927901923998885648428119865202050408992206207903630723233452567509925484347925721276855538435843016661445294887886077478063491137061140785741130958668080611324817932696209021020595318605816831597884214924309004032935637914737230419678518981320413254975931635879340435493760304356237426261674988283933540216020756881533932674615834068346850494793674239603562551581953721781365541074981771089147492466974201221832377195679884573603967379005933948709070470041610107057104049594470893396823587846791732722063244805344323177209483543489878653742735035357650361463172364906328226774110259050173646740224378745386291435263115839723158633246449719627478594987009253449783328892644874756552129242845931447514804383078440315171159589456549797606019963136617676503202692702412659861783430562947044992066363618485343594507506086640355592165820559495203904825938368921322641780141896648640440122397835387615055271520182956080255426750032297341460837715061025996611609884012444819379095649290078592225221784446653449716234611293790336829625437740759867504937690385651828473622821428195954849503877778361471985408104592023395353262208805136786613763299850109904447485566985332248424310648864898634751751265839588173554588872421787593529735662764503995600155170443448068544751995306615497838369226024829956481316898076233116691808306189288050414848870439650361915310180705453708215762987876481158024881139875705568197082372801860183929699118833098197270152986241728440830132648104605012226587832928919540402092425428715589901609028400185767048552626497874434062021024359069692042983428181681289231242949855724034744861853067042840486941042295935918485097042465630882605990854793670786269451172362859963795008303783059513423766388270452816926223632023899860165593988079536603111226334288338071010136385666513236164675201795277498262451144298206708361291026171597396229664963504852891908876377157798659210753490080322518501082582194118738739816390053956559224179927751115368100979902200118012729671356287267457088328262633150603906472639036822054272467155144717568001741019049227148579156547357117450522953438364822781453455488510056872595759354726735571190190964513524483996075286889171435343294577118638583535560672538794878441493061502262777793163220946808408813429702306043881784756453742815987161162921339330793599162552419097692770509132115742802831155538160012519954598423960745367072956491116003471467223264595588768866064334105887750101205123437503273614684224024372884994732900529990917045289930954457014077071822291050759827545856727006868508604329535224712587371243631167029778910331576080718525648462181193941058552230945209690636703975723159031027436066201929756377292412748772944790497263607680468603091589362322221566538566286701831575497563346953171298166507625235201039461437002265331971401075884489344008328880216826037262539647295603667609123181304549437779472980366528477685754189923872003061932020436155218760657386656416424990321414453477263326735459559659174454747589405822038606502299050659326381053544827302319143840495489589339246608979311836739292175251804917346836267921301243326771979408368983981954032420039669004469354133091182105306180321658303431106303174565960530105377126284698368046941624312423389299701802055434589012469942732295539240367701672578079019495227945510103282379525575157379987543274606986778654845483317047803441833341595589358011453480948050850555760854933772869203437993179553308737196997451464540544059155128213861890817191797539508009489951213383872469754916721545559754831592487367083160778386356468288235897055659734132284687555480269842494267536884088498817886811979331514965566398405605965712073395060779486382717190699409157423397557088051186143839310721651662720868047555166386893811277989188132873723258022771155764269497655223779995465932639376380976049008069720207026833298097639341259399112936117495959022501550424876622502876245670190192938328658308586531661636255443736548465467953480887117012370990356961978249773099414175252260874323542372106099575461571469450559632023030234654363752134226020507287479201972252656902411220447046283033930854041414670802099795166125562948871946594127616224797183389555818858945338669275769888368645240612391713833519896285681719278501714949124543856476067094173266507386239133026492229137028255428016456293616994862948846547341358159921401409919210851940502757292779341683222580431126791733457257772901972597768924894571560082351681598840747484010183754676070157597326243479164712385631165721480971490974453936836779060627593688477815708260868200534305725624971344992122882488467019014263001849332446308691848750874810303007190473870544987344496573966533811070686605170486607879997071114654401835081291541094564156600372830437112285949543728904842464116986232661247465181996279445210491613262296760404571114494609790345623660263947933349389142334425810633129325629582428275247311732342549579757969958949232795201657461582845740616585510239722990327830439981563172267078870987680927557999799008325552466181080418024358651078463012223833665773966796782985057644826966467616056220109264191092710728285429189393023050205041103656842879213530457622679400268232545578706794009943143025426817788617597351466605506939240128732548430498930100018125767174007571735375837442215222470283566282962026211953965796841120791790750633279380126819285192649869270494695414890801711351287287215894512500811593792923761575067244780403324862124905793327983821721388531995917815387348634936783397605923450301452241890514581497988540907910643765265008469929903871755751189551203305909567793882829104098579040603433156755702954057504442169319434989608677539094637180326553084824676432378734535338279353099921542891926788061959714493423972314190957238693026451279312076124143900213754371043776953719458571503631938282231742878014742753348730068546316871320345925602528241534487086561839315375129924543065400719913616562972371658996204773937760180252434616527056853315604897608765771080310605381045884852287005259221569449190409296991825275394345617340536436611069082361850895130023138698201958459401865234155047141738346668958139600875020712813415892941775879619646900192038561125453039699117786320629711495187524313298447377135943173589779765451497353396121817683803663512381819725635300149599343551063613010463938142940604331912840738377129072052274260811169424862176014209200591292545162280580637838985040908094041612289102292586919170683917550750912082410570035524381041778747004671667707470967545567189301757586709870589936278457752899798623873764132645573876810912363275338320240883494072280418611818303833801948260828525102199664772019456408359580743893701931125950526261415990620767747793542818100654629457255575054574235409254671199254914826946418982751502928076774756985181568675715920662771055079811523674915313045334818205813107420296259879189842666226236535156497705360201128965726999515852343524814078150413190013180130140661620401653845020209148877977164294548183053571162695510645031202342500923663446015438252274169044840571409019674869528261891313516653764151381351963164112479160052311984347364550393679201445589851353561386016698119652221552693409568990203829065551538319497122163809290791043048464797558256703285521985273316104827484758296847467157472937917427330405667642027816350120455499530693333859590502115505535623417711910220312437663609398422104908042512783825131681306364325500769448200366644137176337390835395581793078874103925833661876985590427220128869634646450195251525747040764523116282393253171114451952884157871469071870821792744652855651950535799909601317103191896505623901323979273390766064871060572854350775066597551665846147465028102495283297046330732249697074237698070391939791616884484338841532500585543791736159513927883226533362721643364152049506809648639710059669740975318120371789769133007675040892242236096482454438540962129920608318107506919685576191078409168496252698883950571552250260544556153825122349943133640856386464329000738124859351939983374919129121431552424293080753212829443186728582727307463034114807341084700905964878585428145286582803363535057956751263265696847423338219436464317617212272740652639559761166310084299755826426821756864407379595744083783782128106791727705109971054416696149842672800583256279352103016385891207711247150609538233346522387892683524239682587769048126216584846198296006762293365242664110531794420318680187484942955472151490979069184389941206520453375774322035876352644131434107416834630669275672764345928480118889155794685257054138851542046180902402909776970916186703752378747661129597445303659363788121536573439469407266705638758575102355708567170087723390896159453053135110750859348909937929229084108221441206602918593740384007646663384582990514046647370424101270568736933578871465092186566905776353873840632790931652663298676301307290562032124469301703701719283921151148619528049697975305048189065484445722175443965249899327808951099185790577319639144997344393048188585432234375804504451938505114088971269499187170953066577143314010068179154310919616525956140702357013286503209325053861394991426611299109990085168603709245607497427793071427537054448223189832591419469885937245211863254355584457274868699540993106316437655186482148023607389108328645066543949657251826507780926435885101660528705164523556581186216164053149258579102419441215294072090227968475774782285587560957320586617440120468277280106196232079725024864856834566273593193522270609314716489652175554722901640591327876836514176034300616323347302205271518702150107828790262665452500418746748395009702517736572617888912302412673924608441064077207051747163989335322270450289277234676027510157029987762015490644133632379870149413651193417888284171760837234448061213555491812466078369222647093133622142319820543520978761558338688752147409269947838513638849853167123906922382357893722057154799661634369382563701807847072100099464600363482321093533204738048102683620016264461623345303215529230911279160536032432309755303107186481391479843784644953700926899084627621446702375434693975165703376855232205851367754162678532374606986451872413469260901735671710727685600298034046721862225389635827472981084825703615610227916681046861080698125075152217310501200426678295241094306751415085654485094278126304253079312883172655743168977525780902887607279362039374861916977198163469195270571516941623603402505781007288509870761785982145610872630045050250383352067199799418500949296231682533647488748885697253083779239809266913448187989828872387935936935365135231548073033669877975651221552664665506543058698792478928192701859845244832956764484251684996514699983037403699350637816303432538132262751699013869355234309924059230105956573722443564841298123682543530355168280280187064771442831583821215933781869984006620322646507566816014094620728074645258231349987490978996923514203888739020822523341593044953523226531056179209464529778434540769472920360886400972705164580806189628856655609930971386525067609376860281506217486403550211953517727948087999501203966351017866977372603080678910048944618083846591935575580892094020241203329402990630101709861563614131587109576523636626310496097567079019859037393329618429948433758863763886638003444013510881586747028839442032084870510563151415285385431787018345329985243889951515994275761687569013625818108030393165072406869867672381302764307944749370692230434319859024771335138743962370893786443174916106577657401607596440520346222247562757214465935424739372766557654209013481357597193285131193951466061254586195895489548424233051453373428011306677151956916922913165531681252298999025929441046100076990008650703519498036655536418848332315403675079405977484662110758790190255273792484751546908939564411719278400617674951103095821097278571922175218656678674424714553981261703015066803457253716571727604491888501783385116453772656035939495530212516319956569890695581546917826629313157163146769583384280745783080926648224054986695417569666850949475046930095130621942916906749043184704352000241940997136582286829949709437796409194234055512862634974765199384861576672754239414340905627062070671867229001532203287772588809604812832198080614997209415362331772237522715138960254705740899828433991237924445524823430725719604970840453876707495168818843351954634328092527188079903296953792050610224525101250669449784574401682961298938777254189195263609315955942135694470743711681277833590296062206192165431457995491099549865432890127097336343507224070946357279556929768305353847581087954341406453094103784362809887127494930079212077443522818490044043060881970088883547674713314722191415126196402869341638431617851448831651879262102374548669233308476261402312405158127835613824590174500675173304869611355882607576688690579747339750804744224440798983230597261222084359055124684008966558265240172031222028743967247084883373426936935756091535091946090866667038766847606732839670134774710608208351921196369201617009395663953076947482755531609515615841319858758091167683274641122509644143068350095358622756876729888897739192648704242189099778349224526944287276072482225192340444776914787026301668581501435181097865850096178662527913675940293943809610373493156346579539599756719208157126939373903221571461853738370916224927051323691334006641983847568633757325329199119318075205899383443985582589416505045409889072468174633674917685627003714178523382456773865363492725846859947443503432827148766329729817442409575051226486376016495584276466161410112377811852621093944873140396962282908535300250263641139254040641267330191258527617600477822821735083406847738545762956565096656028695757279394101749843892543645858377342624592446233627943509372231366444914137502627410046031379269022127398210167367500505265178928403637422106139138779796644047233371556115397753010730326165988354794424163946474449656402320408133675317319957836595938932097878304167489830732733500773790316460566076533565238660569960327555972436475482196368012822142811172713973771447866323282156533996127425278789698381293830809151658467938798860193313301896654367876873253740494348255389319667702447247999501153315420787754371575166704082525959271642987333326300806131752379794278145365573229886562782881696164906506851576861205878217027913265797631144989423936866451456524815626198670060531711928360657650230141259816296616382842500339391958417285723265914306951396121830936615829120363283686652224055931740621105150233438998138027651256614026308070259581831195152332484225317605760741770030994114394297598152278751560660964981502761560962697226211908386456138315819003903961886667925839222576687435216701881094632283410269868077429010885967022213337746907071414571452080131062930273404255459360399581268455214536098667821768434161821540677391498401257314028069146607462533702949998419766412298146763561423021068246979532470834730450636953135762384450975026695328030418691065374079614560937820189428413753583245474370381502834687415031071719342376974800310469085957529524165588848636504577610224804280880955692450084008023176008306036048874890119321100122561953474654259364151299018365642537097102948786505073159151890233075387169280768454998108436218005881395133980150055657813960662665467014923884599549279528458514088342829606743927433971033527668336016918747316338336593001152371479547134081886388253894347225470985687286747933969200601186757615572591954473574069634752471421268949456468724811031104219935246803243007989877703697622836278991967114559869428432831950460260211858849661231220830163568966643288372470914905134710331834377650345136857719972138794795505359652903966564555824931479705418484592150137951861224788616302905659464205478706949632573546916787545429291098609941151373599760344195780370398680132537709238529499495632749348774623436816159137403809612814686017334088655420964074724037522707893347419161088791479525848500638369166627898763478909492422859671371506411361910223219458417946308725004647000879187047879163895824654941348839726888050409648809573188699286828396512343013215125285084700654406269606075934935989416547284395512360037288261031196234661311796189489877655963566894192997039949281256664147096323685687723904078205634766944337435662436083360759542804166914621435560029687348145534888021959893536330357850465621868927874998238194270830299800221250640370275924411797854076538349694466212012784571988328358095117948181594498556795608068584334201431891179936897490072097542218093693502864025006486635138211197771133521963710941154127318874060982213007666361840666739994100415546702362820542490677629859823143496162203623700891077715749308161948269109223802545478369349025381453505091851861838433295038861266275388033352077346002649895857247003276906865442305206144813659006390042334777126644496457490116965094255370505875117019973599317102155531573630982408640488119794743820922370333689043456622059098378559218857482072149250374063938705019454542331759426547602090369044051980623409175029075131782085061259859448797341018612290711535251736587469743219128247710321133975079700061705467731530341353011640265658014591116074253278712012483267389989868987955987217655245210569536365139355946426822505539899929250388113687791723737103694024376194259285375264636745383390329625414172005759863085463346710696328994614079608215020442317650972500857401455211652804765070560177220935520540326542560393617697551625307952655593333255043600992864197575108454188434698216160147567514913906264315337071162171993446105210089185084877913766721332158042255158818270580485906638172889204793045734101327515949921069993885156599911318263843321251449648448719646578300490274564377394534231198319705998380028610745054097628112820872674785340853812997638453372724546284025165867992485124638835341808220071966318878087893327443577091085250862990216325350807856488583831473020083795813545363288131190721042291592529931514725739118455981795372977305988656243490097553975690133546491551573029541686802977100989010066389386636916017036862032572442397490737952925411317271338152244968399321768935788207974689345984344908417932096760281133925142903854845947799405863670736953152000092793606148645357007077629399040679064766766238979703299827949250759461028868940322950671324490920554486315137621306762945456239320440642512494657170544517002144798572538087374890055326936399991941546240024656239225868327421874717064357069104041827452544293321510233323258025196488260271105416996857268405623015268744603625577483413575178501394069798314050428597417474948515533845831134112969545593709316475225025109793445467916486712851215260074276015540710569730679499681858672897334522587682514347738290265632131509541164684941708065167578376114391435323536062703211949237606851540899818869081985219591468610317099160557125199186750834358179118438868850456501049113380108238627115970175413510379346933506063294390249537994373232044770208500095633087328242292014734320757476894850976192302591847478001418910980833535842558826823263208614062962829189907646080916172159202669052129348614618229479715572621816938789373368845653619094071114217565954772446950956487175682633210696096850624629387526903659056452134143251065711630883965121311004424468128457450897343749670265732185010182567690320578383015537954003450536294822120264023995437896134013938025343252847126512254205150153084449144265525551991927007255088754936843167794161145048732755369133896697598281297588970704763318141568636779806841844544287923366593296660429460816423568315701724917307324692219092126763105542897679207863074371322130338688385592546891834721930127693951161262938585623775011669407568299284344053014509020887675342921607589052594958055531087562923721474783989705791267416155814034014261661042354200566568746745727678273133367449787306405574449825920873314667165261823753620012031727375822709411322283255709710462037715636327704748259713149395768136190475525932484234684498598447926629167479488166054898939551332669641441793099847608558314764298701438726192069838830972500141367532497010316941308003683541247529809972656102372049418895742788728135967184619144546370342272410523761396569330709632554913444409247009167978154892215621472499858837395746884300431553025220270198178910663662641486436538401024359607023683431525095385319112731319214149503266859747579873215186595787466060167801162723251391471885186048518406756590908925592123766107924279726237552309809763836401585809027050747803067074456811212452927597777651156302238509697538672201965531565651592416288690029273238709760106679609754714286849534559404197491212398911868937138927305383178653004526917646501877120498288382315684051505049648457451136278602633702048357455157467269390287658890486479996420363539166153906416193993350898666559917768261886021403742872020005030285520836819596860523556991495907657810936185568671081959260627931553881461528741225309937924628790578314176255373085744986763549978967766041704807916794148254260802844565922354416129943776798372625748471474545291278899341362943319401203254829718282000135451495146595730875759768137529560444838985884341345536081955670243466123545919606528702081425797153615889173515041548980740880492114190513501004299995244050813134893136789547054454294044505699891983254830402568221492478382002466519837049162117382411917985631348431560860794040208444054820667853747381121177206079489938408569163815074515535375424509654458103032482676839788359005528837358616566792098609047069370320299615011069367784762699237854001452640069204468994443113284198474435324616763904627942153335080089531133277686291437928632665719335565712157766607640970654821384474874807251513966864173333559441172472109372836218394015738239673257808747739884774936579467774211023697944556683807429572148844998777580666603620394620665397383500169586860834649735959157162535656271524640138257134417456153458889945012856659943135628021583039728773168962981721241798971956538956923213800968426269313278936622066003803386782941429113374864153560217323058729328808816461940800679623332087914006135998494060469223498346396107427115019227048824337982959227068788508963929767443935640786172078590585260588039886581346097372680226603317684414286180294618040011841937005469767899486907117979658253169886901791133062601110813165870664194173448784146917542564078169183978987704194162025732374446044932454661159387279549846842916216326006654549753083446502748562871010332132429217195839891794942879815916487919925088979870153599754615198113145157338714680075596906527058474762318696077801967127577737296875427306233614102410592394589439311828724040694452414908420650000067952242774542097084961867069331183684529176123453020992985271306226981156588039935751568637114622382355974902124296913089972956295944636998526532500260376199862434277756479798959476540561457640009896578061050955344431059635844003466169255926435843637324692744484125884873228051959123943771254618059537995750528024018660597369054633898809991396405439825876185671574017765194733422175973696273778724948911867829799811923265829555466653910912382760962559073754387174070305160727139213132949118935733274233486155601606442318003888779465475732158071052472209769444788002145989460556433314839030084529696843249730662286528980970202057416636303942274269611433288402747476810622761866386580342848665988932252447986596739408852721813015572367130346799436660898906252377422415499227007123205344814817903260683294271682169464528925148311537156394572732983175190955537492796123408584136481599108455558235577246469371582492001645754410116276726519964617089403292215905638955025097128901402588347074854117727835436794836236149449110419208594319909207714422709870565871067246950859124765177995859642906501706925515989559570584101933041534141244803678507841849843210853384306659634611354112342045791894706159768136754025884162362028648982558081127077623793285795813662853939544680834565189182099664228908919229507014102950521114535986397052210501653115989158844463191526135471092196578451168510574323170801318733348786044599818885372705626070298465919272518139299890173370991472850258881951318137784920452875801807737970035830695073028583114343959867290137031795788359801066609409650403368976209752435380415168674708017123332663427931562391278076127882691631100455695950861825457134569676577208933340368499527096578851166103153940484306172394278839627616859491741217223398153131853515758565263778411593693209531242835648069018440870485895115067868821668928525664787213353415989149409825284685140297671040023586901557646605256869964593543960085325290455147576741116251519599682586078923242791480793343183174905325503921868598391687344764908337079066844456497977880545618437281639194815756081232112232301000712951252249958559783118963157835771003387680050489878501603909311265736169915449892955802266396716476602492388034161244067320885139853076473556605603561339155576959107768751000028623606507616182544478288236152340135340515952075684111078878047943741189185550839387412330215529932571546715934782845849503689626878874993000965092511331434985735594934901354910900368562167798085081767653282375404734428472999647535907671882499077637646674433247557306052073873684785671141569125695960160472389290963090115951279905480571525019654259407120564429069190181959902259665677068066097789035733164089825824169821127202607455817483788661863458722656602804375176727601725440186995751930370027692651520039018675340563478180722784193455218180027331705746623612435114838543870268255836254864773071328209712066707753966587467393078555292411500569882741455106938496134851886958383945325238057260890881009286963766658753857016632673329096786462573298895985963183326258292467958935412802146378972179073730148716537930378981516454134393167416622354870022039905907016840368989360492503520158850534939305570792711211479050139690394518832861347381996902324676390939116356494462691522919411532603206615779298221893452788236394547839237416903232300851258925507963057213983124856350927324100318408263407788927868642079272713952250687776122724200281385530477764861153215622768798841910494999816768601408373978110108109587760603028368050821389828651773793491174750551067229587423318869830173918019340481453226391459212480219730137285351105278711755165579345912976935822811286814968777760672248410417386946723866281550622678957089601405820950481281456640207116039986300819097640435386594300887462172223409729956408588619333116261445174949509632985358507967351839092469721652003722955630599929201219240991879343609626427843035736324722120869537656802142049958193190966006176049511864861090056210776986571028788742543329078725774886269093226395413735610176733338677691114362864618335346714766604438083481706174140612683578829119412899172923253335220645712902536983221632196907105337961284257452292132714874670068221237618227160886489350564951226317612761488238965390010869870341852510371902693770612845587639735699657837486595451543067268087396956301969765383650006897977434585830757052444745398646029888388444546866304712258171368846023815146714969144235174593477028925296714392901892978476976513732253822327915077506097178439954711687508911837954624290894800415351350259510497135531450396806634295741400431559344719382654937038226965373268946850182037121198512191979367764729831039768348184546901693481521553821167240757964622999026322225779262228364225577733509322370655343627947376707730520390623955750740569233845782276518440157618663622273796006137028673994940070837728357832771228401914608912171832089682277945864970722009186587830834757554197570605029684284970864634394349092406263118607037393556199851297129782284752614727835716626192717318694606441840643426692918483127546798875665188198395436434200084648810675879186980596207069899799438947283642645652947883284711759070015515277069195364144405081186327963779011308249459873288177572632996668237535671819089793619076628750998193879172535396119584294610149536574235142354581753094203791314784765636020303060213246442450148291074306423956507687774231560913171693116509816331524563762028738201562018639265387770495693539335348672869864283841749644216995180535127894833927724248572415491357153874501006883343775452009405346862074502414219576544056106804980917929904013108795726115049502481853461023513547235322537075541746110656909450326534355652210756951627135359320854387525254598879165788840148270939086656945301004936925844404407729184380116767465185463380693692258148513642489300523703371895482415725978999752625688046456186725131029323990800494866467534520805228441721530892110040974246900778245055324924235124321493139698476402499113636258172893230944101432129472388176626857301454155998798386927616741079512249708874070126274637916091896121109666693615160271440049478950522545957556887143137004672453821122518120807236169086925962303845013221636645500624940642924857488538419583933207782656695331506613635960746366726538251796240137303886026327052091258908618355844961681272043306033744043846243812374231804528678859800001516492873903351985995508284696121514564629281289086099484119317456698700763220588212602969566321329278466154556416448649357217369636083975546769186293730584992490535987907908724283720605821562412608665331135165269497056515135800112404283240591054207440152602689159984816253610566428914422491602870860810944392448295364431151786592305690926145497320937908624283754398056154381230190948111143618029336171757856707198830869189913743011229978015213945004336026382264326860304593850897480670098059081300435457031377893085631376649410151252087119842114230547186513176715409578909451980574351052562558055359766954983642612632319670320106564150318729857756495513134247878545190802500691231077597376825344287092270538057348592818133569875768613589207746749246865104943256313868493777569261309257002843931423928788085883759722636275095170345019152195456657956043561343406615168758566453206816190760845957082143082098180517616662583077660249687232814666808791326804810243474155861674992805712681236019301049720064322475741150677964249226162308419718260175366620226187762248152735710588640506010388428852175654090354866521208449169860870553234834400375455379361532853641354667922159287864956132441607034233008317843651155858463396884528811951417260195210968845028550984441412447013850393043857255727565188886667395036531466853973108720772147810732691343554642531030862550344275539167052754567388410492321970885075943994106459852926168038846453492333879043273158942909836823577529900166820171109951836165754542633704737100067593051286819532216517097648132004429840183749353855112917531539328794125266583082084278221900646356739422871996577496898974770127586076803108670530938763021291208909301172500169624651867208178430399783342479152072703768109909365154252893523357186050307561919602370030747063446795570064528068105886003057195924820434029095881538650615319783018217433886609124731711528894268040576762910505983165133058220714509555698153255893653613533158581748394398539835731290788792367517318408980858475102265372480824727969189271294220361204613397491399697319376714165953599666568180135777370545609159884150493992510633137002326719676197824894789102527694049045722898441522285954901621214988269685366718558594889378111938120972348167814820757559435742060939086910553757783809500436927650308110705143840661988668753353814844809061904839455266823673204660668981563182166443518146666016423577429537193242514460043037670884646802862346649124903395011000274847227099528908081734245389944870498582876724989926872346921836133417864781773682894069809323285638162226576299215476803840109029680961351930522532851526697945926676808550975588569508288807491347434945384368970605794247753426894269024907969636953147725925698789876139093433112641305871175845097446181471957123684468789882372853678548094927720081697159715495299528593463765327586085046463703099653751092495891534746885586640960456725303190251436715511806893950820225644327978605653909101973308883859468283854127835449532856966365386735281245467922109557978928599720826849345449606496141049112704518693642183023463745556492313627849921782118921986181108120011667586565823008329315146733919227585085207159038715990289672318961170445731941780661046404982516431241421946428789591401204682851678832092487037816212745243704243415795458509975953179968195476177858597693805572724418424890711824127937259584141973571646696437879873443334921361946952726694678923525382214459404416702122874429675700274857438653983888135293521230104174262443040502047344859806336460769185223194447956461010867948783102115997194484822605340450637057021331059331241406928644121580007968876983380109271219495723742218238168645080144715562889439260379555779195024031415145461825839809389457595064046468103768322466061228644987179419386504943707344748479813947101901655243940740509879420739012994011241085859569967463035949360668980926944228407330692966864924200829999087370373240782769780497989206169229735687314216920743979216718157565477059883198693089526009210451827972752293996227785150806718412358159881576336636617525823196425945143563726755041192853589067333602606403168675290085517134050403688389926729255209781382947150149036746263576474931492541547708358974011342789872108752969638215148798340966149736569821028177335452696245729667716254905697193396418761301575981808933060732209449056238974687680866579039410139740662261509963434467416511440402707905632795638688627525800048696484581059752814346110858289661322698583351615829917787213277287519581898290898206415024158269558633304496507291930804446312613824057938300802871253550450668961420567386214060453819824785833845082797567924236215446998800202122667015821927915000113430109707837501425264738961086626946123370509354524471114249589528273973323938041052206745828772450545398790485223964310908358891300643425021831669726385919189387201573687384898719211766163386250959274832821478687496919291873179949803649183988041605190603891611186304224483449727978152456818223151945972703378185192062415934303936129867302265408471184405580174958528967310479840927053798048493388645321027959483903580112264881747424838768070162109947405791280251813186764942058434619202451409650511799004562806716164712688440986679495112746068473094429256255886078160227319346428871244313074461727367007989431064633012350066556038216472859502421692429962231224741724933119452936593753059253783692874543643829404709072823484050226350414244288637936069478703944351254437732666424852244309977353637644537686817829424656873310466530325116272468775417412038679781597865269566594859625798823074833096670990649751087870168186526013333678557656402038803943927543883346283886742932284790948832275611189501372334279971806804652751414254770029917338560926542375245404789582391726599006877596205271559139282659356463312762139336888875118095383494426197047921904902269653858352314234424560374165775654782221304032331317742157900121658042477172643403006593222476719943418573635363498393228511208046365582044829198160598073176629870677003503105117742608707239207551780034292483374095873499535044413344540791061487375386858949622678161942895443709816697476168637718973307522802753314067461068794639980679758072304911142897194693800156036698413963230473073296870227390720241569724667301872510919539958237900499033148535143371755731868839514380317590876579179022877945058104452157406000182277796483669595243158022596266884556713836876632696056539949174301826580199857657719288877511653127088484603053366920128768591789874853315081682999047049655611388535195196586757638632583368688774393929671939221727861949748769667327224276703053151354593850874294880559490020815636849327611683800919160310183547477481013716555463205342327870961936479550287930557824957434798865497360308421103253132597955204658010987118167310302922613302103435278317255970010203555098669994461474063999221153276490481755349912028822942562168453002353263699703786158791444869179282540603304906671832992618094217990816115422202194416681738221807658238596393801439049890509016148776020540572060292730260986516263252783756359171951044374029604723093012195601499109889692886377065819614864662709431344305048821386347113648065242527216926465463363959794638672415571314322649026092457941721721856438040566282240204330458962939185159876983827267804827031970281338745871967167768115393506260841060312216367343813840531217343400186113606068685787561802106991878249308888725112078992775699496722544014702397397717697252351211882410000514953030412825936782817341242039701776433524465590735436046516890749912729254204339043435186104778540150779897753440371210809205372771590296747814033896287131091751942760045883800383108291168242385945104709781340620717113520208870656199506999640121937711621650826577543162896069517857538568031758101610945426762850961577556172321049181074581420801717663505606323977916387514773125869496716847836696072863196310633967480791290035295397225960392991829038731703220592280911064013743919104874238734649672321543128022802464863793044273551165180048346569408349108540315930537010577043352755736985580626228523644446576415915893701244786576741517700332580189446091715208991846325858592092048123407139873823941784216197719338145047672123090302938153489611048041641412307517664741310540168393509023372010592424240638377413909616795010572630023346262877968738205423920866175391976610669999963102931224185271228892059479457494077465317875542813341044644751854070345103407887605380275929735305548486466380516434769005198584413854441364906830467276305411476022931493542689666197993944235148411009482751946167535094574309933986866085647589628600349710983812357346410043634280333187141854989481073742212379262995174751695578810630344790061373019382337052001760223266417285880783086593196831757904491625908136085321117717072769633405462460016462466684923896822697320848278414714055166770737665509116172671575790937879053929296369905517461437232134054802268340431333034523103867891693570754766460588539250114968588493016298383775722897375709776130148585333140919831407821317583213920972809703912755291535126973048617859935131312260690730575271715804248174343115529409723818825209095125659510346580129877597706148485652574187677736617764302581062280672591365364679057270745311978810438228085958067163754406148686411941726947234888625603263358499716590519864154543415636061940256878763056262968920878883738613834586132145520001722448726799324908675984980713901926480360817695385272277875314833204878593498444332372331703672624102021196919089482326779880462131350178679744740288354460292353187111635620628238194839307119630273479609685939361142955677687783464202573583643263002672981837586552928778298338178310442148837770992821312378371826802164977315291261914902955401539940872771446467164627207307579884452009182874693597332724722871429542415166425408919231862828895979168985752500664911314245467079225990597370473708336457258774322671551012993862779217614875561516202298052078512250074662374668369932157264046075549806391363931013893114605477773846017627938767631996324138676278188821876283747065559972517880730919108989040222129123998312604265787864939379205133504559615774733652908311132309575827119931155944773622753671538248675220269886203486546297472394628496588011081669026192621571523159521468009903627486588005528689826530236151977573496025863593535427503982355262940127348894355045203194600281906622652095502150677446733338623698278653259864976670567638675461692476282227798680562922715223856446346027394888987839126527140859388229516294042786192461958942463536571822668608322483062302637233805708004646877372674107498628450631847611497915915899940781321645648963754296055056651623056927849136805349407275224023546522875718427158511074499511455761110037561249959697449333224989594553964139972429713289864834514246035705362967584841273794878620053586904543505546715135693101209800448569655360289251108211007069099411331337491709791822027951087608777255812441997833853925037449832938109734483232479035367487284833286475972266629096784106452186559601319015864658887090409510553437346760239320950525604978114063211076238758143080048591514059842284959308750910522620198005549763256936750432061634579411860087059880572154558653421957576939471835764814232559107656087636705447165469400651371803125572797957478117387686045449087442001882502901407032301922725634990473109281050036094189724981484193317369260456624005428911493817349997991496966955810850551945794033612918732225053559903360245675749667834409750481368502586431999127236666817084068255869394040066138701356298875428492669190143835657482844244469723919982341752947286573267493080825698090620877368830293600937927001054892934422528328360982448015402104341109774465282807032719921592098866198345262912742467058610982006274517368838396957809000848171037804619402503642173166750211160608632360150568144830959371015790620612945818669948283557119290759168897073347377427533664126311759661850409132020407101054440274094333781152023627721403546201380379615836072336786512330131840327765036361692170503647612184388782213767766591973432745719695142073302535214483804383750173571524452519677423086959724444681124122155658661494058990422180061608495674586105876364964232900945138060947832991149546915716912980581010487429741102553270979996645035021355764824809094887209543210405066311536916590312034141397477082090028471812927491471002034523071023334549161563169151802867582286254492589346573742226436099525850983068218500235330878675882471601046993102928814239286905195342044089953408795465147152254837934374679315937236401114969752244041059593669447160508843435394614498805635176401457662439538918613722508056559835591693161873703336997440588398434736022030516789047404073243121663661559954432450702487760892103742588830758810582184432896666870216900631000831706643156425992641743728202940510618618315930357550384112335799527964736815648618127255245632986010162311228448540533756043802995494307365017359566986841661776131234867732960371711880274011103696297233818259422420832932191440544077402040770469707890155255697054026440417114962030307137692949641014426233359063054208338163000969463897207953254754140792805686431796865838748581959254836290842693346176806306582032662563387775371639506729304389363586574693841726763019224478905155198218707944143010711830731132359207914691702488776208512510666393818373188374523880576156495978310938182577787710737971665129176836091787958670433779538876306311907370082900896678891158505019290083169493927142515805602063463244592921207300264715390853228707281369953687042400313904073571252059901345033399152914148056846683966384927694810748853086029594782636711758224865715324149871851697841226830779774255570724955847566749064244442883866591108068175076502144141103672454289462484004142387256979299074914662471326197526440378363486798462048712848694924448274881497987752944573862125232989963347504296443009780658365061637476845769370904107491948233843239371893298241783050686033697653322348709153751096950441111491359123069795443936675350262599560315736787053437815056422800271201538612137129775244372937184548358985712513243635076730047819504103197762908494927850758579257823578110971889392886957261965609714587505469591717974339474781718472193665087446309536259789189116851636122430193398253577306802165644477607457228962998344591832275305363022859223117864592593383604171312877068842575537097845229315490678369646988263751127389581096241287134634989339696970116223119221891133436432092393345564997437462694417062820587454060823779947839607508531642713011570654163944393919775344965074148283752326225703509899585606798715601518733328176737342423990557193317021534903488790090782748858636905731200071645154223452145270387046954258991747504781948124656772785987782028768434358787138593219458588650750244604178779811291066591262132377137141527585581498417791630680337918661084998255843211855731887419063394430147764076641620671186760185517660750830415781905533734592802176250382901090567731474697486412354261212116441612625997833371805624882434276586301341411879751847297301241927423380461751320344905252352205287803330098482061880882885558511859052798435735777203891289792537743507045265642655827050710187706179643401886027634680955774922495864974394569284888077552542902434883279503555484719237373330235370686608178986263927881396930600678971690210055802241481844334067912753182042032965116497812563719487611981020188797427035642666586777995302747429213417647883125775438217365108533753931951417496319767802085716590005781441633363222613490103190047598969814128411271845480840797426792236377695659651223449058345709653808509746262273004634567573769451846314003562024758973514586388069476541247875455364721201063117390881934000249638708371423233013915086915861339088295571679703384085583473684622544993701763942333065904798527764062247689637648483386120806744591780522234351172594103471767136326080405280247001222021458241843343963150033438870119607362190239813329313191447553708341402378577153162765915483840331969460533721991239977892321789980756053945253852128186553331940880633747837217976044959121445656517930917600837123497904684758724825769000374688617402790253473833344225264159271816938436660262839008865241363166716370799211757322725723009363411313761332832465397315749752655927581549661609573901485422302020388288135614070786956623828761542134313010012353704319647320626222732518339118101602024901790230887173265569075982269394453786474245885144565048389906731373675556711161448168460103542142941353830089763767681301440077899084424539150289186589205295112262455914361675503680640618849654628805884499885454856219307574790467116069940628978886732140740901979628189874060999096868568180014057521839971079311397602917340610135538359579929341360527446642884906976187282536103283049322078331162202077162697460035401627996987168602893489119949979782360875642150505069502544352905845598314326794264791678777323524461212226580932239488956852348912909996065633266076750064673100849109484330586839517351719994233119947799621499387642106524814275519136714620611892422116516291276459917002329725877795266575844641324498324678072057960836451010993747447748449246306449461456149633587322239068422977996069842240691953819798397746619693153547702605208952870704247765889302904457129572736108958882097671588104652962962785492531769721674484084686411259440253075404217910936780880567921828850772551413142395238466467698689575059517804594490277216812419024008333262787940233351608006169614161373257641556891739075222693203249365533401693022216039491508234837392954350552711889473427437733670074882806740500643096126666155148264415797027654940086839839104068351837173651744765470321116253191255390190167169158513430464273427911905346925016782744839952304935554516995754647817421140815140485671898263453505524550279004004465972244222974798595231841243216551638398231332317525363356408550277860073511683927646797122953817368479253471556861178852829565129800369415138646636857980322129240429855799535292226869661703593061432772047470358579026898892869614529622406165167577142602624731112694915595047169769711662315660094133080394063030730689518021180900199304910314918337025829713318671873682537993260401077592044394418663215112225177558837279164423107818991239289849356354111222164614400371694680976592106402853348229215512295213378822479466922838840327797848295976291810771849494116234304259411924915842804918373526677861386661554420872307231384277394441651855466940751134307535087802879892673963529872504975571266275419446674991919855043055995685195907470823665845377032625277220258905270708557828158309738362362342094408879187052923790245065397678398677560648151601219024807478778524813543644902859540266707049051468108636298031371679208221160316485928582192820941348609765772302277411804269296626815658011400771703094124719018724624085804711873050083661279524625696488889553808238463617095062638516795018932306217408239420660233998465131867336204458931064323146611138033861000563227118153916417591115226400104630943903714368288037771300218636276007906659068112511465608264811901634156048622540445806275109291839674022972449079481707760950323220216160336806800954371347077577308649049248978864794102431913723814118563029421186170294052744445658267198174615495826478942760359091267622993508428465966595717771378363161190097011549129695704273552378501628650788431509460851765432981634745462438335246666016810653451595863643356768407724099270406998203945306739490591913372375523836543057508865464538209766522816191646610306262545013794030449640445618300102567443911968530049238730882742130506354709253386838330151010547153580676974594091000126000752076248190534156492100605410505663855405887353531680144490996763370389053042845351020794974924867532288989232226748120540294665135289994137780253427848714676616966913903787517383386787499142450890822238545101908669650039738062576586562860876696932883583669176596503163183695115481623603994245164594106662003316642855575047216251914255181168995244781633661990142852968444952732865703671126729610743827632655719799546346835566412675685828930521588768262019441966752252173590581257125237305434088621734462503811830210041513599522735645741702872773879946198756782195905712925126291649555559993441836709216069500288406244310425950410127862015848779377797082082611313860583611384101717158550637284644579716101862010829121362051477814181139567550971090118625379787390235671699489985577730313242069246477036522946891373867623636013651030917514509831072093434368215277068736614585404864780900494429118213803172161716034515655771628456328583556001145474224798123957669913772123401819731294040187182937379678047963407000913364472864106833071152399771252272526767387125886120623542792937754537498225106398042372592019418495243508767096756927264454074906926680624922266805186775854336097584716941721681225357936629259282189503715053125991320006525201520674825240159107259023422915154453329860234596713470429718903196516271528266399744938626909280762630557636475070161213056900133231690213135676173143144250084007787064175960930984643543789674666788504881718732894699981571140457720413738991581458458778673889424114302060246919879568214443205634701811027728184450111066527361082618199360794689644062547667978147363893768179423512896432958943477172477501185498118977834786494233072977776242764959770585555779810524344444129593261455822580073301199050099847856367379271986888806380958888698920321504305813486005916082508937909458493303561029221812839941094954608756044466318389017723736796369141906551963241671176642780778925997734820352741094736511920416988924721686033450634969237075897359300314706010887780544758493996555148428019555502845957293486228476531963573365064818553625819651431020662702472607672058512800000283561933087912744353902466425256766493228431772041471141265377964701434598288248728901492165838373400062595777527089482638879592936880029236222378150522399216547847135240019187814619680672272722759765136304664676365901106280539008122316634330002099510502095718702471203490336217491537670833787897831917577520564859391765570002150941706595362423337032130905630750344218961143553631769175706447838519175284819591857323872143549625658776436368612120652598897036468483975840605438684634924859019532228329790267141852387963016478546054205575779749838407296121245194503613826738797318533848980247142484341700671677925572888055939494390106889540823035995079849880557555128883538962856101147847654120217526993198597836825510859750094776796833131206734552936956069695016156278988143621351431582545607315343350901342662512336260380099707065445677573395377612892133197609269018056184570105121211440467084353360741204004888963101972997151796457208493277482698108853648857305404140870215062171628976187618229065150658009141012283571348178118929858892546217786718999275931457724202795810067639253843990406854702463021339275607562134283131897903510877335444801528401852525939395113998744391657254744114073926334350302484980074923874140371231787051755928841712125926775464975067483595822320681294525637323653841177013069057747005724874347981689434567498732811633988973911745643554915822985868709386083797229850763324421298487360664279563573394935438555347339866373701844499092273262029720781095115763795367265136502390403875843721331954039265143844971912027646886533305420946852773524493358070692396281276791254207855019177964629302468712501834014679820009911852811290420724211462987165800039557136218200849787965977734470404298559208321357905083102057224280323025924874395975580782688666415726880042883330656818201725357971641653291849234638846831644875802456796214676362960424498780387029772976179123803274985827708869781757088881516145638075429799784362777338926136519887695324833789764199603292446989645988489121545879439930942262902259886526938664999530572410484399492660675241730773496958388328323577218404135276144410693659967918990409157458407550136085110803001362949383791929685910269710378634778641119730178587005781977213420726098227699222831778086731086776302656637235908808459999889485280287001467249908855152723329744900119514678433047545532702651380417857947850480802272088549618582137257783339434572580318869110130481224789658410669320946184759440314047044661162289032407651334291320730076983260149685384398268287878666254275395503992968001661773329303877601988220371974434267721921385544493961900908263242269995185362715270271718806103607133537284402663338109167481533090315893772344397094281733978502914895346595342129481640803291393721751751604492443731677808858734278489320320174493811559127010716400351155777729696860087774388196749624353260366693886834854470645513643848932701161277759638859207787253721260479562950428165392826665719031321240524751558019805632176002888340595953964727992870278399417847121441443239672339442222393315911447953781218707101995016200947814910704372624621214596404495238361220483409817082739396443495369849418874348310707945865656054908691822257254486659107946491728288159949849723771920205946052187913638233422509537211050863342469499435767853317753610600869896440851225167343525414940141204045346299161506987650361307157845619530137113707092543193982410119453369654078665133928210211619836241818441497104357550086010897540451780196915751223463374795190315845447788746923303256994470238938120800107201714036577694458403617216800064065883432681448851831448274722224229094988413622270123850027927161085590099808719998484283336000916086856336183495632785150715662356085069909087130860701739444741286869452161877937208154252541123392772497383766031534559467308236658423430653195937004729269639901285176465538848492129577662160811695481910668901038046906071016712814425573511470202385571050046340661347618649102984549425773699571993503479636171366465268683363514087749132682512265999128654202814011978404163971984419627903994060030455492635113531698291926586148870053104816041690783030523999917271324934412787999346577973363827331369403145262258082099068052236683002445882340899112081812720723348192564021976596671525915126405485167462557152389611977360100388473685917812308385731259887618967956283294729990803726236065724521783930567227256552966736781543592857262401513579796250608333691128015774414112969447403563120824064175798360656476417780507010924283204470521115483313640083690607399866478417569173709239427654255531972782024451418287986301829132396840209435739004955330660624080824320970667476078145360386033985203889114845903728572544869134187404275533707021333775357732240569496890554680296051456744724253613386997214157201331035073703553805684976691154551097436045049542376222533659994566407463478395989371928808653502353732664710912779875201269789505856819797927116908132925484106056905347122599286236665119820358763945881351864121871753654332015711642584663375963798154856311963857019527957193617167878085516115425496486612892526206525882691078285814510204568317739453923554224195326138916685446487673874042491810187358674923204344055748156400671097490754179556509191859750884232693437581073076942633809249539496551282421326875402237358202245780865273715812272077814063519320279295896499739147971660370817733571992153000765687870803905062185459283967712880138756793853950164029877963386103868821835111165008729636791411091829113703141228050177585106024632642631647709203774162326507837532113834998452658393403696233529462986808864804661795686797810148711702579832372292291432457312806727333695008437930540435586446998075628233998915846424383990394500687049454208372613255274393347820924504458418560844610095769180049045024785609015105281450621318974879888521674749393976572804721873395547639139743274972122617965850904406675065134013448963084120761386181191163943283519472657435253498134780252884079418433905265633315708448925647191820680852712206572147402190582461444084806885277932106768136754919023132641022200059580799261989136864775170499693850876421021596611950618192923570591639422924262424540771757022494646389932233903875748026661918976803075664395231383356509641472106340644180875689956174939003190493761108768441448624850266117805796248994946377645624934558813933818340610457054536827510683233694813982124987328887960453398874707027766868592628573517424116636842080298109863729016156165292337790989359353947971785089389293788348522723056574702616079072329761648662680868315697863530031378021537293833401262497520899844202577585911560062937534428967831392452183199659819954732210343880214450144652600946883941963570925210767487098339271242448755158671155614108868395388784145730446335186081706461479806028981599006283360633254199190956666974365058846476876720508790653248287486125694064101181604779720394032836237006562116070685919628732506340230386186995721884071484052283628082856553761136679372311315340464943587671590067355292630325082598422864885240344635032161466978452875638875252591629285665787579696913052490639729119423231396878506936503275578437767328372587702285191324766152131343167489441769217884783836251186358381442924676682437581599884243262306953371472158602582069214558351068225300446632771504346480548565384337066628235956527222327653622479693438273133956437353092371695530904450247897611092840495182835446135068928418374305214893033064220459722332243338083793654992884529603025359048018333365775108063874767836270356625231623809641345794508928696099367977560947555195846135204323254706989581809057096361994983110570474162279999257347014902227614159994358942073294254830417689681314746780654207192926972812065626071192808100345987966332190547369884446552596125165129326931285524719947660909981199715127924054241480299828003787787211844894390934153804849791897730811194263629785513892555048147504987196957824964837072725332118197523469339147498870193468211274565130676112972586629401719198795859034387108638420340790225028887087849687871686556266000650862323254016155049876509819707783698365875401987241550745357829557720730599532957176038375991687281331480786443872320113263204115310192267743013977914634299754536671456380145345927663153700335943222542431109249934002580497597440726138590719303628318271563365117452126162231843496264542484527299985261089384306188319986219000912458775578316199874157142523797830262890944764493371715068799603225665130949266380474900329809170580321332627905907012503137570780755239372586088488882886816383580985718375214454277742682907698461965165030861075398774951931882365401470022860084894159818313406090530025982950172846465006291615765049020764001459083384506440951865501767907276308036690067132168488303022168439000464100531985667127975697586588411467277258496062206033452652626883349122884944636589906043456385366540373488771046431557083219588327503691899065550519978098299978281346254431763216255687829993602200800942472874108458949089168451403954457955492801367391724347857174708607437936982703320839900887270378141906890414183436309386128058442279920253444923838483927024620879146483199407204457246163433447580471613988585474159751404360013726207584383869377590106677399988288011750646553017087241806812561412547854204771152290813379364722875990231339606550202696503425988961281247271003925415393834924080801469459553648616554876606289436702817153983142782285216411686514042675536389593201007991126091876439351350495877624428417689589822104497975924142016475371754686021352515858595092649951266395430034675030463924295900149944474370122862084219597585063727442457262019688661454880868839854186183300345145927780190420547265278529249364530661425647171741024742966887748851163709185194738456544458234680517510115147888335233271341162779584960587442316485000918631454728253934433758393946976241562746644288509344342440510696715488312709076273359757105831279805578403819057328114984794228099094602497836077933808185239568915737946241971923725572198185110093687304979976901831302804351936011034408044022268361420266674056286518113034387187010349541973217892333110624611144354413871684609238982573175132767322619842986773211918492373296698571675516496975423723390136272239753358495459379240492095580439301140826004397897717430061442271161238575887706376713986695068595445696975928786707227124735259877669541427564708552886354610033864062536242358514767594932839444141071193664304879475440762866637715199517324119403667784737127542915467356956297181609057657689556195141780868349409184553020071405259619394238714754991381783317407215502854985152878383155424317786218096413777635318087077297066765464856654179389360245097124614074229332791364388779860659008981501164808367385276093073709318605010794375901403220743354783282030361875857580018478715265666260640592625129988946413218417976935942057976640485569193753062189772247107077793047060197187775722822890402754236919774100010691577714021825961567968842113886864810262450507926785439448250764533798174994577889649843700258004712741264133759125352868183118789431603587260637734576773851872639292900523665269177356597893331598433362999396808154885339766765028065737579110549385217717685218180054879292693837543690750419375828240775394570149797557707988332380656429544756995041193395117418907795178368528272131811344911345297036380495072351190646770472124188260878388436673634225712896098928879794584975416390386444517760078060568544421708056329778115535710455410220889851881609948077853600077412691497328280036073080194262864439668705751312356356946669640993625021599476377901913542338884824325036970621073561245954946641393548129458100256599154367946851589852424733369375961480177406515607991730154525697429404987064395392569985005467087739337057203577846426379055979638821430542603125957369757699607530181129165433177126915406727383954533052602033949209147530058218907327379392703710539888466893178610903402612021762867595874836210225500038271311899398555593316045162611434873659898783187252771572345574803320012777378197361528594543396285337943121200087094005348361078567250960302066462438096681137645191548667276527029098196846434849799571126022578398909133438052599036866462840860024579760910627472550438096449752323568802213955734165905310146043617302635446035080724307098787924299274445864371512953801324461583626021158193057712903243800349339015380341049817408749588307439494736664064895621846271912612658877792144257654183248401513136800545246242900919669710285226284583262854850630485988797141759797873810057594397794748329345538498372671018198029514845238954297393146819898950823801174031863513346094108384717172106693667029874666653839012207263768987600554699995465811005829087275513701910371676624519306218927001904988625006257477381194575438483882782692452609747315269751387224048445859652597617071273195640049373466931253436050819426883962208002465119669724626881486597143574334517152704953975669404077117696584039636958816827372974815101215421372875528968022539741305139158964117801501594374224147076790943792463481419140821309122627420789296440755415339569602537404912242386486056561785210985485738738058228137090327702247398807104058385051332802567530899468382405624021531469104501054346973982274034748867050166982363090714277136749888782492781550612417931350583905745366648459140423373026022796203719140202001048895563450532555182745187443247132874533700866073730917818701653651070981921087576981973946002734771309592811278715713603093409834127088674280106112877457385304010262022491932851419204204497268929434237964923286916493677061662124727335636958384841315828801057209008001086557388573878101387481011197472314841901073700335581333822408319537600946482034485510160187272670701752764848573733398997150886712085118269736021076021616232373978974468167967237452134789906961375916051374402861501325762034795066382225649950196092911377161242568897410693059734191428479948819168637370275937545100328554017805176921862666844092509933373064003445585931611099527957917459565037730324405345910487763623100737721661618340636399788378715271095752181424498420477263516272904964261882483950586844225464287224400885761681940115206960978308189045515923352505626781800939836927435089626611044483247266845958675207852644390738790583564039098754218945510532579020121689300707990237212958687379196572983808059693713426145712147341157322869842484881028027393268045409775119034199202566469992122309509370253732232040159170529492838430786012457411049516935809281335625825411154766860560624899324777676725225408273374260285389019440587164134470456396775994921931931110875009167251285003070352504896600306909579592898947760358171465593771149642551865276309613862117718205770952199970678962389137763425652314258755418109921785454391995346033993479402513957125688702432007083810746123908260181085602681690098327781996779668705165942394945694746379877847921167841766439825182006729200249413063577426690305105528459169944334400136977160966882466978510862592634164266154699527192875862158366576373440189924339948951178618920404291170189315229147793253381485400853777607055341975169643493996778408603995073584604101405426537386614538468763297958366112294007751713393282658573736077547313440890892765191457743416833565652923091468432791523963868921479888296403742346951984483954058308599720671097132108170748006382058607998734867764120633809549556255612855275881456077260944693057701867716793780605596914753055552999213675469278472470371432673363040284634596351703390956760233554085317827348968236550588708398414104897146551073504924331965955339945824222416540416654849596881213053399884490312868024054878790548201734894311920829516721972180885101440998209033862142766743251636089837659492658554449802925818967943761952170260506573096315496434715297361955320389027697525490727448408348087427127515488343057817354837729930720707596406019201082018415517803588922373868584846576189471215911872081565215378233956802255324810124071822676244914221460348340479475736913733299985133700715728564350466760887752850655182968248765675206881479824509490957603332991409735788337798033374146918510113073209061870679175855483546895701136323517805170219601943996392919862614579390291510586197256210548767664056896472278546804653843063413226584015203482939218910764994720297475075784083373140981523455848657238104889570295918753760325483979079784647879461908669850745847732892349442667514234864424589511620133253011376864467503663357186425905586316881314992820960802275037531282133125422525178745508831017380362816014915332541853829578574686335676966270074507352642756531282040915331203259413888736488903236333316159565550372084543977984357217135479953070372498562482677189167143905332990423230309065946555123430907647939684461512756715285642652234768070857022215227667333559345158796501505490807473957211126168894048727594319332732477190060510121563983318282212005686466264940570408973870303561218577632349914747043814107428143100703634482848970709084839226637517539230894403293105010252510596906752123794697100434596775258701450168336125740278179357716308344637070172708858620743963119033703821405941379795724748362474662767896687962760901759741364494630619534380481369139493015292182545521487705081798641684075769327534959700291918458423962074460824616641207692855620050131317430781189090437017116047421434465705810012475149462387355570630001414011389234103621497525859936202905210723294062052204235558681357790347730535461442822851594482686349103193420083456631886054857903759127395064171826779469941708343656637347445225489113383266956326556335633469117743206433260333726166178838450648880592254635085218561237059907809060145061649871687639194868421393924722314929443488169977069783733278481648147266190933748996705970236074558938052431477184265890127901236427674896171344666153468679149799027694238337549924386127886192051157774285806987653459129201402737156279784097249487765324263473832196713800956349721097164631540130988153384213235599959901346090333590704466960497876848557026700111330275946405848709374237920590969592966279524803178218861582643221859552875839692693665038476917943829761674940229467846311923885192829207977488340669592371005762711757344245630841491672403385788780003292958793486699577524703079413484176225444519536056051329235343570797506703570777755544107709196124745247007489996338438353095560183451690529160565151003336891200630595262031438455333891336842056459413760501310436917189060924600509211414639972319374362199012101654459848036755855648092895566777441622135996892438757253996650226102875275433082347863361267250707370099859199129459185237001679177092176478538301171243377160406816246154601108659347064393503003748177768132351441368336977018268785575966417111203197268786609279164722210890124681740044980163486240041544252783868820810204379411407436009911651512214549889391150658353688766655187921413988814462186466338588567604190435800315909394897905652878365068730093360051724801334018713685612182372175731910555596536297166939768954950008583323479810660277229425328794313713517929621077486063964080657366876736075716318275929991079670933239542518431760698304991902737980261787631087205540299984047802871450662608353167248366818207198148976297556479791517286323441872217812129603671377827444077964934830330221195778561920794371769910348997239119081735609724457383262863867305772943525707764098328359750407554243558760261419656219930043182123421934627919232606455973035373903943474873117763847168963941000586390024828613873375743173690804948938671712549614185172800039876979724700377512018578216402905080094218408735867800991462468823164421921679785047813496733367955664178371845526774560243277505416293431813433398005238022971853414207769168578061241112235252541462622175553927233753005255214277225704473995334182368113529528538919242246876693428539378267782760537064831900179473834641852205490717053974700593025402581189493328983916524744450252950689816499804025852627517632056634495115847393595803889035499891391275221921237911334502727073949127786756648496596817765922146439334835603853900921302379184102029681764098549479382147851556773922943040535079949882829428619603065937087102788544855362086126084412515672351962034155693851214014787257534760725374972658531305601260992759544709438514193758562787967734886256129227236581740094758194519944522216750961651073280548074172468122065217005706550745139532513590878573317461923882878024798673539832490244376049229587893328110499918386576897493226892634551569696906797704699143083449816155796545609019465620965211937948831127031775361902693575198891849129272425863971633917148683149044108397917622673243064219460925285181073700996486864707501166003595641191135187044246245456526677385371232148725871873487178763078261643956450218405941086995215505265526308151538901548672631105399375918291120127766408093763754079037211277216303113397469805592325629478181027085644962204876075131953725555028893946844820162927980588355502394600458047419259299613694945516625483062982647994861927863732711205165469128130013911553856326168106684350228955541590585837303336248568939718737642645976230084472215501758457226804237991423213109611127194705319700627529959193173539831768097577977613566111098895225610692562486044977073769657589232698167957651683264108846742844824245598806598469448406166509434287311368287273387369681632116599221328397272390287373884301791721924027991478639280695977037473492230869740009334596573199079650700765620832581440684664285663986879064990061900048264229961851220198512364476262335748536240979773401474961470965306222704710097832827000570896970729996286466408803750819529763797556956545490946602226637733540933734940412230915689589085536494595461383827542166202804637286385534237726150521957471162556869671377525371226742290524588220573600725289257079491833716932092910361504956981482164613246151955395988669386658158759370009597287047499880484770157440565158570383103675312254370549364059031136838561266595820935337746922094403864037565272486063742125262115246938640387923778372124031038127049316533829817469943182279749080983768575467730545989607074598932470256416419106055952053065859113720271763938509331531870083457639994093962490213870881149368193508565600422902059611512659544229805696288922986960336829032401867648939207214637842449486957210734284275023146731448913129295865521043832638774834760135253716940492144686629397050166710490884129729805952939759719157455711604722378388001603022740817731321677553898118247807983371153810188366597420852907482460142716503756265305078105039644213475676951714562442394965721046474518100808319221783845331374019189971525778972864902582174605530860533902052217545560425353766190994073868984924052042462996519748660285381938412349992133279795461351738114290846856045275767242179410468900216365148035190537541419632474884110597575680405352658349274132139081962355691191539162005200629347165351787025078506149126685728729765119975114371447138082076265360327585901389533285808842032212305344388646134647030481113696220450925244190258500423125325885807139131724212511706089645687095031671540458984050004178844894527500859106881892492186116305119385426664714589826814592873872054549597397443676546713098473499148890945433812597154948028958311590530211900826244652687533506656658464217430996020672081702593621065891041158155817927537341533535693208404171126460755619715779640050189404899827169261053740994798960927109937010483878043307070389645059097647752645687053360180726621909568048227839694647897260019382325987736151697144565743393458114038745120206442470649322192942625828586595441021500051715114450854744938809967517704941841248062323892661580937437494628763756798817426702881293095028201704551355868529356504734276036435505639037170430091567160772456403107990169634774006529587361643322780768567025514136589387979109547351178672132669547416996967277723148201083278982845493661178871428806087826390125409394705078870019561635565389678314573072359627122399085779530729988351875266043141350096797908695088534815943242201068496532358205865865443734853624485623212360865610496588492925252803629765593415872325039922253545918368470590171313462406103243796180784794379154554476210192147707810474882329181720701506688995602129094184298626655160460443230269549251333928709069459984280704883663107121178808862773770692603835281590018122694225006763716763307528899544402447356587277162353064179441396287617272070835666256777153002630554497676507503143229918181971257364968406223902180712329000303780696754571963016215348154292375086547168310372075973113424145044462874388749734044970042309461277395100534085586968110020038550353840226959896422290355499686056025176605059552532185558152617470590450508703161444693996778410920853221467100996954496011601932578975065946847761949210484371969717910296615894759619937733696846422648719374681103432295037304635741979015751767450924482458854459599717523126331320551228038585805007599773717171973189752254797819465140000937062818053041669171068907374254697127920979821022902044718483507101256674075259307986127505278551724904376385454008046891469913074393544232797613642902282477090579815969790116730504335884180419014511551977504917785880730700601695360515403530237883458358880672175283155780518394096390469570056645984688282730755434439312120688117633206550668161452094046217908514483336695200317764829236459060970753887838425036736342348069813996480612163416573114418590638420076666663982058024463867298489033300865457612852200864761928592969961087159421558521717890695037159116924464584073879630307107949706283073406661018123382421409052550317412766848328219339226356777286163691355108554458207240925868043504247080509606554964432504675860078318320266864561898600825546688004604636195446359825008779049034862881735257932281411240411534592137216167431375010582586820574366648702583453362438706370023714327437579064084775970968025172839116416483177054758384063721421843650319142896684373235103672254708440450623215431690695000142544450922993677629762109758065254569243075057005800107609746848483376645255850806754826666733197494142969889714232058547755248046957683922613365283404250495222768333588210846493268579778591369951630445206679083882225147787249525504191132385686261357067314329786402632911979855048429454178517212258183557695155735071773297478661635587941229978965505197178978251557188983045653784065129413066480908773794283139818634441180372584026981914779066845089411487817624369056007286742929846421363410199899914501683645506961664096684724083715543009671141788175170429460040037312057253152583441659241597376052111627711037645920976864343216517912703360746136470017621618386977013476332233325408227981327376066144336098549753748745750551849094327671316453455018216332473690489072334285210879971705493561487054348184656135127615700128897185988570881381993871328289375313280815737204087585625552538166782806881460290463434565944492460876528853685537626325337788527526245477941576142586886066820709328261219548316576672754799812462664715066350556983520379957167215287261664189830733517158932456889741056282780020637642218400213281106385700699929507918836383862335833100117380712497321046044186994749459855629412203413689517321498164684706947230556966746937918011081584491952030143781434136042005601751501910161535106814655004791430239680778537335782871089450101238939812478580362071070404739648381900786456689894740484953644132295519149052251544598422347303841783279131658915517999695147080748690609924175824562731832008441712664191826008509919603545695813168112073295346191667795439559198647799818165230631949468427791403852177803969103824816541249771669204600569724058638572110731941683328611081505973449184640096005431686861136299346938285553077917642600759595836327546533856298778894034192669951395706580531045278644091313656590229031949988831391004347982927128093268103670139220321870139623146233019196966290301246526089895863561141694451745060675747711894324747258630230673685997965398898660610486064009135418990706600786371804772701124126151642723787662494011968802944086242953285101151168758805427802169636267203042144090485406093744522287807288508352483720782178274031510388395676076152320575551301226536381791257258396309132564150761143941953601435617034556344764374318421437832989659491608401124243634979984381057014665848897922524150642615539944897652720990421759967453437185705733806215555940508074154909243991538614393690745948667543191770145212948552172078951074317548598345480066045260355093933491888148852937918384906467335180442828179329316519985426779851657444131919403114537244469922765648333960132271184747180628883923328495919651918064123069095327092357308167756127973788756006609899877547000546748940325043099713192987863527981443742695508758957083361901811766504889003345256316379451102581502981261386753659085656686543974031893729655669941954986077437215756618724404019878175175404583552030643989053672262254839180861214019525853933873498003111151641881619939852514029244888271282903690657505493625444981005947143984343034022926529959153636300071484112092634608842696796170257986756457796455167350098726143887832302266746174099485534936605564257609306361742285962054224474269234114672586773851366053807292832511159452023337698139092857562224233094054124900155570405264142466706513003209722412064670228366892769921659139993663510255680070653320835658414065542121459780910887203140043873956614643769453690781322226419549926730533135536690935120081718093617995216825708763054770064897478136815272181392076219530596474797658439380277944118035390222367382181848277862365620800158341839228640282251782708073102616300716919964896414647023229897125091306559958137020358965269300745646280554675891529540061724339887592685471848319035548906691948251604056957569047764000309990452969856714169809196079328344070012447816032584021842155853386820388900485811813904062754117329221874282468541075988358594845902856707484520740617146564628497740398214563957622743572783177460404154084722497698782105262010182415380138162871224705280602601069056175692486134481115668568951850796637937031687436524109150128404767942443141490394358089536781299597440918418349400424298655969057482623375488717081296937614142632056069525858231533852095755488266369457332529849441394234625097971051649619672937919233047860805033676825164213527375888316197476377247604815120021534094710941727571146939255519027780069209666725920579628917811361052449955712332780052504577503062661256594043752251701643876586433775991483611891699738820925809655324857962334555385097595413706897192357217516434036047001128221657260241855234740318451031677337660190133158606063898151350408738873954231663521959325369565968500674155317791857665587472633063493557208763290191477943528696298806503983123075950543201338777756730290553732276924959163959581556194859789276556287327512803280299062537388937493785061537522016612964719247422481119198099384084178775686217162015937515040770160670486534779037904600627370643139306460158430885898378757909592817380421414458772102541491731022990657649096473723595853316038785135837631497687373149286029740322350401320792521838552946748792528381078726785099795903538146118313707390824857921568741607544405950601677686855930539313666959275405509966930864932494294511177891273523532256342521252303334053534072270273491345481433078281308174387970610254912986755140878230734496284353100616830881012747655787462084315037811618859494831895265561927807301824508489567503877159076376776263448777736572549635174806228526335536664275355418429152699563380401307863442008936232433715240650301422464266603817215074882191159296806550846121211548272673788714428172845037314291842017336506404401980960560780603689076431383572648228434189358134778062939937583195481956845816449558737985554080715761958060456264228568129612386210192596749641207311749150338174369087514277028109558131059416551916521818044419864787262869941234602774036626673519230029006746445741448095922596309491485306467253088352316466311924530246821922055297276927500659596446650809635545904080433851465540598936028258326101089888775430698229476480875955951424593814864398475517702679029506824704503948482660977770458299531923053794610703965130442550902971204050166212392523351095248249753793837370510931473474947264856642529474810261780063802752431159192844652297553691026100692344771123349063798175445109493272136628253731774108559231666590000353488873215216821099561711303703044034881970931708038546122612620422865040972266253554481784955424169430991406077278878406781745769798193527064739847681352455991133010165720673596828789646618698696002077540855140578070007517243229451289124023249842051924207031354967155753271855831986448231671024365709805273678028486305569464813034527454569819575843211396529316545814534863770724142849658907332202143870281793540579997518073825511723893150314255497189868224762367344407318717485270030065947928774291876757803262195888175397357597420431280653845059262615303339688929141014015384688711129751755081622569433787636234218131182858114591994786068651468514925165982025900417698435936972629122698453355796163862390195917821142853291650922573572876592358760627512256794376776357259234605576189507096099938914255714643126336449533338531890731118951393915288528358143020905691537294997396841483354963643524116450278161499776733302037345682104322798723290105018310679917411784292059278000439381047618685510383680979002518005628572025953554377931298897432554136906914196558419758385221542290280571637750339296787575124935055109829004997045814748364322322088081042138718061944705457195446005709960912616767658176843457864607616489993268333574243445678993697478150400931008483211260160286981972206585516745322973263554268007963167777535300371930425042116025140144219825287665112650038054076091783571012837376383957134958199382024879860829259557716419335540170760787339780176884840295104218630753052070082094269368426268242009881209007221847089997051653893417146714114349576289765880156313554459001818480878299981398204060087562706632329744850672972135713001033408487242386391213523577487590979165274545931689895509123370716297349671455620325169049511693464437106767257227497860378191164106201383277067430770497361656597306468711021479692376513896125048302874520799537190337546328030623568865764786277867845229435737427893096797783815508952611651559591768198811503491661577642255918422484849246913236795034928789886783490073199474756209603554512432542918287650802823185407253285347996423549044803544206776537812595634748212147393146045946557488863391252972373137002615499953812706070971344850571658097493770335367086097864310272120233228223136566022204908342871988356652645703930752606722829118786981486335683126620434736970350940904074746010406378501418723496170229831764139698113928810911385153726337720551266002160611132791445641981635626422211249462131225223128611606114072548943703904119111585602799806677621874582233326750037156448210925576778928989405335230757706826080025226240136510944867593634030307954354597098935498279849204849711985384941534075795132973334115143331176374062715230330624108809897273572149700500461501524467059062945499012542116499474571757940851444266961898427966266873522018627043550446838507248042988524375338035718952405838941811630780786579012020421377446608206472537178611494482198841205835119765274598712340370710330146959378533135629803272392671839675740831704384827627566693984950466468074511182348490992681984629087293507809605521065469750146068684617224125143058549419326837412018752383545237923263738448248343587701688498939859959551213290039973823974941056356566441317435300892723242936624116088580027996808927433778063937331972581277913360695620199440503481681562865499973773473652039024125543363756910534760763226191414147870033669252909825334500012714313281117647244099793602627503316972768663016930240251212176141353322784559692589356674045366706391266972210257025621672936710349670589364176155949303116538933446464329298064732416639214384433003864948535906677691676945688012805424366674269626382881623683676265102527273021315636301423947233059253605310188156553197879711160520115420934369331526989822726671971317306725864195720708621394221958933393976968842358915337515706801662600413565994240042562682124265848060889847943093745693322228727118344997619884061473919870775514728465218040597192028533456217777348840497778964847342064975882323348463081287168715741283942518603473502368816784404523582206737249438383695591163774045644426483933670532557888565607575286672350227551453966992306808581737705880344264944320783374374606460443951185331223925741441645062150493470420439204175518913268980183952358100830830221222083034565331902675357664375909561564169478470471960087836940670342635420965417403443409653404598236285094491023191730602372466854440177903429931142052836087173750228272357117946634092140567137891633788619820020338691033109389055828668758436781048621055581749469092248538572427328520405837665228662730550751737157346482841476290977602104810089946547471984467562133095440048564727607287223734174256640477131745418916259971993769365394308342728029795408991720290940537555484195507011089776422275963964221510148544506046386774036999432590313005968738846742330410663773574805948845174232373832631727761129456702859383800972354374990663782226879421092962881667373836735249771071503765153787521613651504488373001447674349361949541876479916080208083319762339467134606384544360892043611891798970728988480214457303541584397973113590379365345879783481403688537548167797847267878954378426587127189623231843250907075125329263213334269187565062085769118411871021662694342444137773750517438463936632248199049946789138734057500473708576938383881017297110565459857443023665114821553556788581715847619491627053461708440471404611478087520753132828226858900434836841244434414730180965978306303772508989195586903344000735934517942243122007878365816046724402032990002740487516708353716215678037481669937462748780701703783651445395303366043286559127628491731035970280279477964159185748730478450292852506099423315017851038920811932424042257950706613040082610204229833092351179311209428713856055843811329505872220769679027015725270451415658516088905370468055219850618855017480689763295187404472752531745856019446498884491934434800620259618474669182985374175556528100395018721415953385540199730338952939601344812776338935253186770267615768593951525508527896297928261500590578753863474433849892780269652015681172354363321362271787108826164825099459365463460027006302305735651778306016652596175866055410133569161423482279951970235521521831101832939446489797982511460934888565283788610355244254465662925492558461980841071519865955165728908239606076268214361966038070409002429450954747156343043455694827876290741805528784621918589283637155317410922397263820484032994022059372193389451299428301999376800055482059704102055718519290887797135928945706419780729914526147825624704744158888530906477826116734120671493702038503240864424093637630308900112676176083097948459091383654354307214326473154547754912950416566942645574298426202448042698983197229756639183608727050576663372987464037957653494927982296806955439962305983047960269749495741689706047879777273255429860433625833523680002532455022697681274402519247702185315891780925703367705622606301351983304349017736683555272160632574081477976349674531239420279360406925389240392833813440873350972121521852531474173639492835149074172650659939185663692441423950279186879224311704502035986927799682074031592803398348546080558357219855434883062635866042919296907053791864080924701211534430549718947911446483105676942075338719420096776145670918302291424596750347787324052707094213122160158716343087167256207988107444895959360360887730749301807174938888510560591021953273002261092944474449178785898818837545654898992030769470481307411666916629012880874016917927211020454480647600321095748154412759481115760045912543090806444451541366641192678405215261857041084269610398116629859326736660449176979044533816122118249515986415691371921524066623836146820900172939563571429418722784242380246424081316240470899227261434758228646497742644024564927077100231658321068869550950232404628169190748485015597925374471215107298348337639783753051768330582486177934346183255842166831977063722079291521391215471016771098710516926780541220015152863227824492692108226803204391438536484608253839398635600109837555435367844528999045590432831260666711922705393702200434688345802548785200661381376045694660361996605231552159190758194914323502529913792598220007797361913288294182928512316456581012856823975754574016101757608842642655976060914091763235678251113874688688381748094711609318017702075616207524893819804076159073139213043710113871458294905187947505788234901012726835925495405096437354943021378454198265413253998630417407985593278473040125448781064307904463743671531581955505523934607671905411579023134099550821691087279175783636918839056241029212437586429343902949653634050523294238928745628594988422342224214388226949239897367889308187942317984513443720677229537028870036915061976144651868097410825230973311493970430370922067349168499436582465516644888952603491209809260552366749766248069390071286803203202790726039924038670679568030061742812005885092123053511076195221386107770271955264110272108598979880545249410257312645152304118268762843298350965033135989253323141126844186410725434412729344955295095311097436856338737128041348237082459098024176630080423122919645122998733974305232747942319441822558813517425743121056036110828518033353846086379629378955583070805673847203552515037065642753127279474297464741494977972553985386069352228338850389402752830636099474628325831927483215918342760956882897191756801764356704563163418798859979498890956208826033300130296321499387815955898476984200464477359429793023294914071111633129137535750235967340904032909428172655955347794438994334996321994943927507918672819109868987114868726591999591864739246821518519442706916854498905437343553228140895251998096758968932025801304667235565822054042940007992547747674697467285599010127559799756844678025763034309787237594787566084390730547471565662697441922876192636310420679521450072681235176924070040554362962713613896466736346028899578087339916785425821444933535416361287707916603910845428976971472056055130049467970701279696741491353462606327038165947142461200841781694963119879277115630893486994689553537421624934030053067492208019008254573185040340365057396781243503308744531725661707766452742640368069775162069618382483547871152068507812885098554965182506379256333960729564654256555522027268735604211859839101176292383891352635466982678416344790244030304397409137931878177411545909810581850267393775525298004873072555114260043020774318172355160742206802663739440535687327287807952075121621514494702137769010660321255677291382077079654208231984637864506284919976292977076320893495962980984893612677902837550593622647231932773148021800856769465939573398866125793188178351494725626114651673134098152283356802563003726562121059387123323725331660437500887289585673001763426956219708655169556679903684378398597743117264448613187542929036927488051037759378139643560385260802633763264680747512215630247248145058950549469888061795142493253754830569120005349763840814470700229297668735663267169433366099328929224526163058502679013857704690282744272387862508354903748445041327164106391594512092954096113515815175196400289148858477101473740625028243207536489209320891598307097355726407515080449583098437104842590461799035373994381980535313278542144715041172765192600075635108023282237473225462686593184986975524054987366185640328245053582713290445998715714972239258821542920217089863385592952139237464386368250001960323012781224368430017256256598160994040339415396899970693760613210268641966750844740562478351990461006679518639495616695446438310344356357110220039467591977734951224235182688437121458873753597645854509794163922713364168373070169717090684382812462929965145207289709091788629909938025216217676440496733426767564717922341101726755425448274027929595824077877767598636216624219421884105078925749740844928975687671215271195862665412967330046897550997377067194374912661254394177581919634231623505184269904209699743659630056853058223514897898636382716791714613338377552136880133836856034722978260742371880936677897416814953603771896228862107643973938278407789368929120486529305487241943735848898185073356591744210882445384617141827405666451561696649061632852038735114044876476885364559233122840289999620018975342372032810373225325635314121903993804706247565483732592887899201603490814021682523665217064131224246305628077215588418184136523193086596767574088867145376347084499935381236500110479300322321013705652601180291458744354214718649528784321368318874053280460871146118186219670575085572942170039567394812896366895822430748436650850977997496285776462968530702200418701151741868574652212618250171614315778454286245085363028854830577447361100444267767288190553431676017759256821630245370927586790766905405180778549125795934820206045859885236525097450333641219239509020219124936421131771933571065622432205942870110160062932128882750070812730804084725926438894644332281069990741079578898879363805335023312919697645349773510657045775448423119831796710995056445379064691883856391817335369268372687746839868614313305372779117648097676628158633496242533159263849174578707685655589405696892093964852964652741910293245290472727449636871802411701430289823794369519457499605739265922008709039837915126965837312979538126103768570625059857362046154147018184621924228546074495484431235991455437925589569614814270690266438816916802680254142926470081928951161750981836291221333940837374509746643553415314054332109201832986422777269028541437792293956718620640453452315939513844144618490240246462955086022681111034990752462302208608011335833782431636326779322515316579127933631517486464265778964567298750613029990991271664844532488496809020138330625741140435485430372884022469183727127856592179505986545449293779444029782980761505707585251284049357493793941857744452977451279777960103565608285478132090372935750797298382081805201458102130962129503209220433029095445168722074710747017762644641802808275726625402791563957328247722957817186166351779125312272953780769691057783725361459545797493977932166848682335307824413889996807228589829566097605585326706032112271453089883885042795696425617800997137127228380444724906630311099136030149858814143124888500724664739324539952502951021524324823070591558566552684684598427276861800745239031152071179572914681307027422914005896988955521350705334937525633290447925748177986783211678850494855815817839451149623871641495536402418526493609799897729313537131002092644126997681878062768578173335528434341833107138249860690224430861344790750746129613618704570546203524834286284812766393224995401206453836435303878168136411275569880979332529388012621587971611606103095764273133227159292287557119493260280883917540371417113639314453749492854053426520590083848377040536088969819330539443019761368150279541355426730267256936096791776745934968109703602966244750670849959914078178361198620021269125682482413434956584422128874095040971348586783865011864976787416091789090027876742633973978434544888143149871855003032584461483231250057392922820020299385941459407352522573077737256686854957517555468712009253558297078561617815376411059576087302801700362216368668136988860075736648127694625022123971974752349420846995880093948591740879087814885584974769448664902020078444002165457865280871620288108640791096799587556872160928265749183994917916632240293849106854399482122536905490997444524048945719758578936490487101535010428418114406367897667813808830621673081330815984258202264560575230147428721314602475508749279087930718297581222428617854725766613061937163848667240104024310803344800341684599382365539197722977671071538818285129141513893823472918944259422739944467024265249486730365674545505769434958826332401907548443376549430505395659362772454146865067661372870740463077901833781260888989398130344488063913613224765016164888813865171830709119382425632368411938371004679463525228219991820588736822819805903592532295913986825221612673642288892483188071891646815212876383689689807948248920983046521689932490152216009287710017483762237374302956665757722121265325178091059193379191396661411219343552015138041451494162484390374252736220879434481100862032807251765819660501011573310310956030097699998704324985651632197564916070153979984164607807754599373583752771003295447911064573132186838355602873375780750851806042651225551689547537301203749722098688679929536757678662490437508505786541247862888092083259128449616880944886981371657914752597632426009989425801373011857825227813707711047940709571058364238482686598921037938553386376410741505151477864120591223715466113736172564437293027409748629912565741315018433194124371382396650146593852656671168454983141437593411090906811349792862403805580319354195498469178867571362466963012394825783186302855011756724894870646782656086569052103791846421825560384862688065568103206669409957130315298165705493417235104389896267798491629434248113085682990119288836648108152023113733817919462492263824296259189318516468628683181435753470143616294752254170466408561357599401506716387183658354839776593527063144378123999760200973438387116369665283452617824220783624910455271010353312272641655499351788544208076118614209469352046343677416101199214097490454628599312387694337716395118226307030512913177573668295300452058893694891908567385603892580123762520705116013470708361247049428454019364947941856693104297063440464368891554550469757044069207892120708422203343840175602140394017293083224393827103450357181245947965653525389960074726349417926931610648165837430439374030475656368793791513139832417193736688868664229058198394767396065550995475678847636399406604928721230018169702504213950999656264317943900764568195830386016685651773879525591405983877970052168273474547998921555776573420753824657573965381723112583200203946753519409257826971024514583374482126920270724455743610335582288210816834427087570198364653478040677351670816954756626269135093372659838410948919316569598567222713382119836787009056911570967184903858763543311505604692079093644056332247728339817923878174925986691819541246266255274959175439373848119411805672916094387642638057620774344717163253292593161895213701004960330181335717552477758604585459814342146660566347426276336289915743701563860123143041043597004491749298077236255634421759082660317473680522850455157869609468256203842628319111256397151253192543755836208468894782476397507230002459684993487285510091733356402487879354664681879328476114418141191712793180262938069610419709959104722647045369599600806266834156982949295665120298909824329437065208493483858273545412342274763276681872529420666160562947119677154949978094098051994852563286624589700148670357617327820494772809097035192622193284474930262266903706396454569141866121937802757501210191814901937599968886751906221045971627300089688763454365545171106531547723941782095295531647353285645855466735807602919540320679910002391316156462347651605896869465251286176456201313312343887008599684950586143316981547222863989975760526605393438635231323221800236051413225330207843265944744480746652108670984965855924369107750227871247512888560715033581402444767839876418342293136518920313147444367360316990698132897895190611778402163779405421792416350776072046719193554292040971426864785563244575201685247043783287802978751768778117712815947234817474081038947126952340298199357704039713124818164687454856739840954752084217940624518409407416040407650241118005068590636500757963201302914117526489392250783701436772330767666952398058208998469722494401390297278619030240637946707591161080036752954198572443057991512169885942657754816097277036663220436174107396047832227349435594275396595922715787098363373351334792718402862583337251938040690529665486555859891469367231132647210101704756501430966980372123669254564507937932962613130175387670277991228870701571286201590874745521485832209477792251926121356829569777949538519312573022542906387929130305256674498550842591615789046597532458637235202784384015413457967239984552717763127650684747087663935885327651734417926330204774858379756458799445649573567596405090791136466406486987879574066670830931058414073618708440488764715899998316091622309588726869179115666548574613164041129255289935189799930678649448099773029107073937833451847753492433404290339942201469030716521017963717887164513174706269025036108175778844309395046983758637887450146047927348594119138981504599491547460119684223993433253845797793719575895152865592290703525332218809127421579493543995453809847409067041099658761775596397168076233728396731202466307194944103192853424193461472269734656834442669364768932189518817594465703308073303129148783666194963725178964023184807946336049146806757036449645942875486719748945820979034612570620449656191620379029769465201929650463824103952814161983814882906362762917831900259330265497918319121021585620257555403565387857682277019208691923427739151709905217022199510277968745946065840388027113696530090209433344978052244186448571595718345963606084228284373931983832393630185092186849241505240667269525476468978076343396277406643113998292519632866759503328025206329293839362505748369503256567645172912416972228359970813460791836702935550321121983362445085345652302026847731686431298887749963545197191583958252551554822282233862876332564466307510521859516337486173637380365310799087004056071506345227326196246948222352595088065813117815785117853473562030984820168670707746563256576326598537896096815667099846002683813767819125274315297997592069425482067088907238032796468448856724408744493552490670404729500491119635355029162427290357308412227476206076967862809098775597266865224968444678462466747258144543961341204188522513599383473494825352654622036430021640789228483966184091404193529803030018312288422534711184012671783773319658582154715337656951584138941698216883036131653051254627546841551158469111564845306227130066651068588634006900877416624400353752151938703382853175535557679441144784060470816906656751857443683169327532432969995599634496022023171305349977354005678385557703327640499798175600200154474894042965224576316282453215133967605955921415342370691779009048144803742429138528270469060755324961594027631007435506415400908714853495562363578707424597253432393228992233969552112195248026581662581872460344368636714831603565133360749026473156289537385231913711060484728984787473922908368861352685197602521646565975620885327943743549253465095905366137053553045425490936969274183792463633919608329262169562581785590331292749658380192237442966861819072132965994721246359352652093669678705454400441727157247478888631467139273047658539393564608662602050659236103960952804512278140318111073879048832333373457048127283029722792247558788869414812894499467131993547459019376762274859252618934852068316915673100232182990102048826080494382887347521638825495617384575707781767476920337870969790420126983079997323144376281602775525636408968883569168867495168520590938583829595578626253369300121145345539253892667854042205755330176544832199021662311770161168287707248675121142671892885521326476101977869701258466478916351130466200699910971043184643113081674330355387918998603845634905562047626085471375936742567987431389152064931275004826249409513136207132360685221952364821944361081157463408097108742994995723686124497695886939624486162807472920222275123941344651488497685067616013528655866346436918420922464689153177058550260644756243592324359836123474455319171538289021080988073854221523723889004928489658085527569406375089573977489010905135619855497646623044097123476292069894455317122390493304984813534652021137847454386166319623832302117396617171948767155347340749500397122981255423976259020241599837179201612103814637611291899883076521575164358538618307415554339761581374856678993743567303946629282910639839287188721413961548513846597968814992604119778845003875430040918497368019350245213005981408042102966281932677393813859990682660362613877392477071906215196044078583571956277437019872284599741695986529588267872077102148434820892917916953717135426315732961128838340383538916582662974245486494716322753658749320629275102512466168803830243577079617810551769328941064777834460326679802902099290672139852723384861801655682961173422225725887672501432612875852566125572706568938773567961297388865192871637823960246425767025475763643189239834495551590705565067568378827524201082498678719023016833084718454578385685867923186510689559963808248747920082322010597749304853258064111980558852565162617140283182544452438772728859309030670897037303175065852197238783609086950125466535512481843947354921771395811325813166682515913206335216510067413082097729304786656830768858821420706531211812161009041848002181234354301928735816948935791476165133654801425363195804307275973842321255596616748455082769517551632503827353970869987316956522570848078467978104399463847998557264143329667602378827148196204806635122554058529850035242090087170479933273407982190417351855617594048917047814596494769119016003302755919246579843534416074755827863252118232593371496895392679735894369400367023162985775239692820703484236116474735117885541955148552083985193024378769418514629639867693702496869877473582107667377293962506946588839419853148437021707451416405357339037691172335029687684981552100376284423676536638151380256069426814178941497019819052779848527207708888107262250987458894243306249128422647467676078846123649813897213232947381564907582383060397935626685410495633757330584584918195887510257812215865323866086135722332658950677879895831562162536667043065651516202083899638480090708715650677314783432631686882083267846806321445356484862586557390564545085768070271448684008683981429935593542346351741591575023996606561363956830245672392408544595435219463499059302213739822103016774632673885433913126944529996769307571754582599248526774607663990796215996789375337448157589367915054888960305171957897472895753532590217394797885008812196387726959351648853227702254833129410937754048118203199195166480352808458636079791383916389209607851525124872654174855549498457064370184332417242540586270093926748790272898879179186501074967433190483648559643545741104636240521388918218581248217220756376806016964297164598779178838931981320156429276160027508399037038418304244838181684690461048492408699529471030390031431199528355659056613480829542875401938516201609058758765318049637249022303347455387335440867516408297310695738879940048924509978673394136965241885068655623449774412236413729304977446433111124385165092897370255582631189414948907384047683385048752687686891732598072227518701262418547244666576613750497447173768677415326779631803342370560903544058837571389630944041468789944405584663704445871289256795963659789464632681090408167494938478190224333299467308165188622989831725902971751181841848188637867660291904095032159960011363175716137389798447943564211525104692985291131160205463329517379782702598377105513504278190742934301029101032379287285052909935817418475736342806789017704330556627378340065796297395388361965186697261589671315848989808974368730732946691738668920125753258618026920854571452732871820798272003564206186803499994321253665288987763930636485176640685804549524232907093393517601432925508469881356762760411571070333113521133414302349938213798814938009093728604932524149283607004934838862053101022965737061847962127930601718048613628029969294467107652340196935083744367325281358312141035254627317352725610216745279980068611796674298678716745747459827016088105440876713037764751613104187554801145217061237737853180051226438191406814215423609169976343800389357110330082477019109106790526257173596057018116701451984670135241295784692536140806072321586069188979315262458251251763370656145225044449141760146713904220179314944459850303441974964480512251827421914464076529827913749962188746678614979548520092871144392993539589446797956172415836551514596111960110925569790426834434125148533740485151558386649223551206625886261986388032918346707504457290272062405583701740080834661440496249245473424337907398869996372976395381337396458624319896519879857993459191284129681753590734087377789133507703295485214176548155944968094902763239966295815296713081038331714295534334993708691578933545101530763052664598724393417037226487364256358595605863643378368770843691741920288042258921103388655113976517719854830163103848176847683018630486913716244624151057703029730767794101021280238288200345172035851772552432351694588031436629536278204453406722019621848144650072822916603757748352732492981949142166836154235209818499131275059586920312546905588127672881158959289940342703869647636331980941941825587068982007746622286652412918444257511962540476379257286510706794888459227773483414913469928575569372687054927842372898549684041755746725003310118766388819123801177869245568280670792298297291270983156586780836685448657923458689864277062585921706050648910663794174571663011594409915002431972637266313635749813789082470508410847507620786790221194682797348446205620352987557366098713513432440388260846752993578786942334590613894827953595581409999078152234386694506761103367513478880709588833356846261564510399903237771738020900779140864528026354380919780218328941359197773246565971000330305541299079677469981864446938062897275882229902648171721705049264387364153415726879079480258814610283140277275033705159357046043782861417263381895526701164708043456211855139268357973959214885564036525578765540793665806849233464101495105472971968596417939281082994829047091494394279545146603155923748954720895343700943423594596019671031549971866243672266652267258577900481769809048983128224459994524638099034197110527595371978827574684355534312291694551215589399350957202353585844815634292784590298825782165868459206409432059556521957343816661808598044032752455269904513997534466250594042495277323664068104176890809748199790795279637158371795683402115219929128702638996193302872767277381151937731801369234791581736813410283239964591333344747211030617773477098233517647527465458978445066677193938126779073928066260944841323356667627256536697095453955214692710525606599909792563431450703588649136143287314426200943991105324293483597102678704819433187273038098904509036821836824819948228522410810560063593121674381658238466440776663528911382281536916297691135450986486780142047550649954515397525246538164486015662692431478906448536960889636629241389878137477760038306835646439736251933679819021334239499130236041948463796780501425695240282773588077955113727705841406870793150661329627296793415651795927449776212398153305859188983765650819043888234342190824955023019886473740795596324936561188381466708249476856108884857966661543769069563934694226381923385946503333638442897233014097856759699619776281055060433319701989938960243832635564035427457696337804190930618981730713933824323499502041701900434513006999487665682262481205557345726734537752275138189382365923235838487335546659435863840256643282689337478710571446908088315404014092208701153865604806335278618718823620164389307893561691612892898842333046283552130220997615698474759136339604912057867319065108978928964323278895700535569604844973724084108261025708476374343347298897625429645985137916107511875977303489442230205411509081727886155177548042475419213152971600692900821879762837329033775453399201601930607479346392551634463864246207375249165220978457698325978245597648837242596737598508932384124752189123784661580372023978157030568092122147014193286071939257596037232083949132867817525224159297355390313943082695783007036140087403129257502847935625051122378389894910627485553049926019977762564340690820994967622500886691814929491605061679864951837353731393479162775557085100849611281452077986539054154676351230278178374780705425730075835859183591543529628754345485984573647108242361164563281376655644577664041479379473096772764720463735383557400347088257236003199105102200766401089447683430120126834260353981597738292996898063701067926851057831064550867204489299243656423479928585356412901100068150206516987570637009080113756380911029047520905522786199383629354057951483384379107759095553837332295162126524482968340244607283088564126000064162829211158552195661208516011995595067691307859932256475411346346722702323422860344148701568379409267210583352071391632100028961591267078135772228699818693587930160231886957073621160518060112507686780502836180092841124312600738764802793978346914893257240843999081154289599127857882663208006586983808956751114896407012305773109824849743165368416912824390867910496105365426677764456142349437932439776535059960203101037178245662094040991439174560654100246990771243519122535423677694427764373391963891155595204021722340927746543524433707333582372112162857472220491764196798974596578051115923603306634422234071194601228466660777219176852137920416707268495060242772363507062851222085799491760713199513831263329835362341419249615188611235180477528007436414244947049022712708573341333372730521280503188361754823403122422925519317159042288463204957970707665045812143741081237115575661865206840423027811627141482371172363483768969445195664272089372962634907134777825105629527076320169339127486751764603384332361184856156612907882084040404346613457071992888373768951330291434397652518635080178934312443635793610737590353178373589288927726559751874765061676192765349118614693344451814674415855238969335954881552697341994623956712689176061841852277964677805047991777872950517928353041009889553811639799638585192003465568742161489281783472748978352698767613364470833460768108644745854173488340384357509599019115989000868598532118255087299893220115498588187643518052398584019392991440678158548897311030941306376341829604802342096956401457041318725449487030289849451169129832928658197253990386910742084675318869780644168998323564273233268019339672809769499229643995165821634287023504552768073685877193593463314704109515333455904169175442445064524220873147950715721402729003857124410636971161530176101736268381012015862138671830196901335451604986596959747154231599108974268755573633282450881628292591956608421865818888284830297516090324875648707225135917842442000345749983627069295892133399712429975334693240477203456022620823876265529090124147832960800028621755406043682537631095866547618898766977116368489510650797113827439598911653564995111492161989162396567789120983661388538920614135404892852303274188142672665289198298865126038683222734365745778081385850721139660612963363903590690840081440853927113995585037648079480741690677117746810510256657558212881417999086501540133962905365986582814352408674156926620381155847425296915958518888073617246942134358261732493335526548671266480779461855518883205171162234926608372145530097421088998665981293995344103996881437883264272160108663442983462522297275025858940538089533488441416837439436220992963817412629095681916020294801751297601614429311042855147628895561836899773972773460971477215585628444065011860131280009323769196357792722941871073822348398059466583296457400071899195634106755022403723021694783367200330722573153986032245945493255568746710550962899104789871209102356659877903561957099275826857911924964940612720827462886215299866692006133230216880468778671311928431246516018139549860255011963169109530631811333198886171113058326875554060632690354119493349474560279234541707538647714718719269292706377521909238078942946230194541226279385996011183723345707630381059019723610690963658938788009666894490085724958007251547136762144483133478369878295401019973551862835072535726232543571873630768991707946805813677616517634974978968190537950880741656128934253903835136372141220922747385320764407468183552414967292365402698238084596658177989656700668303690301270010632153591833125347948896282600507065136072670649426682596939195833842477724352536355786834991378488568928748275675887917698970513988738595457943920877330126359020398071344758826324639935647528516968658668636359903048886960673762685190867126819396750539623301689261995395242957960577920492455614217466288413194677370852454659545732859422390503228869298894558678739885275289452197751474571206458886492435202904456148355087421966196171290241985309602523334519437289979186891720542204157417726955102176263870106320213635866624793459150082012615482940696234204321574146384495966536019221530029695914455515266044396869409526728988979255772050667085962212490022729511341183278418097415576875322073562612134488532419325132172637035040638272147432953907163842042298880443532001741435594865864001084768600822207011400551408597352347450081560493736202137838285810281278078066425948052669189772468022961978984426715880155690138818125609510964815770076671587717543009289958761920663374094202935160785446443620243717704091185174034565463916229559333065253073306810528956152689963600619265038421697606785932750226705370763704196126048521945084725244117655208603778839879701885869468864592834696151213075952707780916436867464094477478393398275862201767400290995250314502469048484497397193471586920178755702704604161674029711362427569870580671868257380527630048338820949701001158446311129040427659805141989272568762545472073753780730774619857963230651988614915862294669708901969273351312226825003557305644018749130827399505138369409494498823988745436234443658304508871523855450792988402810855075022929365030339742424387092661432469585387363381214080229226955540158251053225248495974800479916473771782676610184195326125126845563294814025685874330520703926602489389328469797224934410020554219346611898503459808874321921028855697092660226203922723797150739607478121385652655274254136747337818128638004387275807343366356800290475319367475516605204201711901525815752269784016666604947047505972774706785937808573115395885300631672772654528425661054264906126565153202278001382524160901276511549978565174123795072484174548804203834057746057933714948282961515789138675413635627219788154831094925010413528256479125313683715568352511983661609565253867442290095273962461324916847584514281773297523174051052946778622309074858780354386875682851080562208239511345140973259171616285076192395292020717295983117903163936788864830719437026099430426059992280362588714276677162722768528104930570945434836606905557916507696297466398049131015937732177939697169887741327212589367091346684318314220755374762073363799213104824213438256559175051497813732229106882612966108481631828382148183781667799138514731774809046225832788216793832102498341423875436386013568797652649307438206901856801987468230906896370729194525917595771287901194038083960423042905967466035264527196421089716382281566736949187959407667577716370506128104423965091332591110771067978588266614409144291634623820386675001352344091486413162499078124288517717078271806299053361504116251376739035146954738552087102219496271777367767161087474535675016459546372791650372601647842977037397359885398581279533033767207137516337804311040074223951020017471969627085883298853882544917585582425768136953401322273170657553017822287538060290690758882887098976154939599490364360571703366434291200350009198371931841878444508461814313975695713135772138503786223417052289676769631346816999743607274895576475467085671804815922715942461406372509163387062452974464530125195626073428073360841166460486443713929214712036861210299428853422836286725138516131177676764685839768358228482791396880432975775666415158468116991416378824345297501006127448878922796829781027075868275931110285657707657666912195512610547737619828739165621844434407273420838886620306121353098811341868302166532694678804275609327684119802172149259302692350320691403882049258214265985070639076134774099165993656040636589686486559979161051600936308044794444885215744709668091446711631514803123906649523215471834408597796026217590755272913389028908765462942026655618519949252325235907174768226103494171241534716391144725843899401054585246489630945182250819572046194097449305474764012922774953412164828679209484094510624772150834150458071035948148611368280652095770000355456829579219066658612176702354951507000405077099088508960859944284209140046439440140953561145572463945101403812936757429903043563996242958344856405432179710096302817476893578823445381921690053037385053329245271891864346228032456402987356345797021022959973568477269259400747158210046854057688482272611933444822900843057569947671101181226034437788303927199241314899844687314000867333734525610173250470416748845437419241292662800800697751414825407038153302478437786438464276925431251563183363344945450317053543867823448367604582695003913586972051330982528876911975153396458897580802753744514186437892294341370410829531456795936673633661601160617397775796583783659035043707696869007034734978294574141417974100448506275334926753051893834693018353238821631556163073691765301363224162219266588615132144971246628119104665416239343255237109001592991950354041949592314501117149015671002250188746340358578683962749994335070629130309133939893401504795366543668788482460994176111907689167134543337787983831819471939453528425006944522903408624533409612844079911426207321622637647407545138231069809824082514070962830850797956233875156647325793976716445414798213582355442071670490597015883747184849866250726122309945765474411327955249946544211125961267496683959159802083459556107349953269765504843032156842389756312855709400462545808160554567934591460017757744800420120900564532518467724198963390274345641429022618161269080830470610635640968176378150010512561674974054287606669835308240860345544375739469271327551988849802433670600130648290376184021822876879866022062989576292133212949551199405842010963750202331381291377990805608624956806839919567708315577481390222041275811578275360483429048617866907609634242852529337810007855013560081432689349516455013452274236356986503606475781428437687702722747478897796507701297996342846587320088678392337402338493625460999941751521688878551441567671235336611781580930931315399680098059280225345407264188279153489335172196372211896039384937561664922427128970040033991812783489619741622355620467907288480566196410110294310403934973490996876827681178826834088156348237766725718315630504504588705029527074737635557829954288356448510090300763730558022788011717025183430517738338968651431211748868156214211647362321670423500942043428097378346299725681421384559162062497428989493605442580053412500690284950889570291689634628581183584406557157828379831104529611520702598453728373571357750830761988327673917915254962107578526713217206106990963556558664816914148348192795513466676325943844248468941949842491944418257395012864472145262401830180108142011268906657467685551942293933671195573793660286156937350444262179269875637505576134249040448202646828475485845276610834334426677630835721619771340615108745983232325963980754688350595187333648746558063919902631725943472431880649281816330706204709365422561868590491742818119707345853193330905205719749617640128693897992551331139129789570851196851594183378680925878298574470410330789731319489934240001194673137967725095779863897775293189452708841889545041881202347008674144979495349330405469788660923188334888636558488753957225265794623228722335829435983129637904338005417945260569004999432580411215909763151219605832820345823217267832856355408159153189095489128491887847155022892681572549273747627671702114246269014984821443961077634133731760283284514275350995478073418863455999139560804072363735335833973506399998861139866584400025999860769958728115284222037663630631070453980556125736399881459514003266339800418046990916175976417296067886899166401888151674407971711287233419865233826045324433137703391355997241066582676151995730136493976396844138317241109474499770772135659514010334243208570320994150303567360104831270258286890974835589416491229749112647014259491762006760789030665783884667248673619855965640769658370883559902031740606150056993705530061670964335119726447547191378188309023216956259926267061503508106263406036826164473279022491997055585931030676741371733831892695055890907910072496462732115223505618876885823664725509028243048590934407277638660272060662811259436825516468935550967751517582973499588189919159386882904547969128238794772550645406816275374202859798912089265861540418697468757528228992429363226349617316776509384715207789814751769701825816898084167176922481638699020941815734361876505931039359476044983040618788106579132857995487832165066849020489738824488710785835732788716672570257882348939476654391720117252821922600790481661072915179766629407559842308906271514519529085622584910108936638077373386154271116050828993274407003464241370608998628176855225461457527416978399021961344584127189905552891849455108793632067343211014722867798696202325987352106254333221371967726874577548168457552208253448807474608627442069989402346231349935647046561577002517826879109958106661446296974224623616399604025314797227273884788281535120331293737173896138998728870064747961930832064460194686625566472475037248015934973264054221529819632145490269845185172834597330030513386843765677463567300693360738789802960395783803325711133537076827625330453648188614333711850222451908411736491383060095799253175555716369390338340345424161174809266662358675890204324999078630483017644989033826701708385779508665632541981016845957628462275120305123228685437180383915351105644666348493017259381127400296812806268282331011532800746285223294904069613569717518533827569807461677631483747207141163919483308347508825598479432039326258624627870524360604928436808696661011411896404454462633376354654871142242708943460926507377703175396774500722569188366433578532939745017541050127674143425369188241022149402867848410374103988969046110892903427197152031002307104516969215073682410584471160411855742166359715414783831556688240549016389048558191243382746986417615886621946888111831706189929567591941005183976491461818097410731220808649661913373522621136649947676810332184624925812106205011877234461438240587536772252325709248225304926857496224127462386558698659687358651093037095321055815809934914477161192301688929764680095779874137989263836365091462790927786416584987500787011161530350768948497972791737537981551398864815076350038877510606337737495925080118862232468148377116994226908231778929796833377653791872936195714962807582164234390297181764625233003417070385317012073589574972620643045918787704151981747347864239843196719901977991626008590165614488243038990337961411400856966131635641969847614824433699607456044747040003678637311738211738590910463177739482776317148806724787803452302332805447726877679603719626722768125879321604387096043524110055465232394748549221405298955198102349585183312736068830512209358655541705866520598918709651471750753128707859802234627828205442631574695084896397429548305976581879033919514456314240834617473129050943372060400839053807753917164638178559100406604594765680932551518825238661098430972679383884414319265184074970304052710277684135047528801873436593136836634097407358743372584062067689241374782676386922991338103286730073268537784835324232360141493323240868119239485600455802212456908586574447678349495814991801088210764070535219808536814685285124176333902751973789153060144188389528779333017546036399386092962337314611501609677515332939151526248812175342630044279243298657441038898767205801806028881354288538520504585153476578748065490446473292962974429155495659157797654355545554158506812422939453943214269711705291505314511535687176632172972719012850604285410695012773234966287101154197943416683726928591477886468971354591149810826497041832112237301578198740619741373476761938371881438595899217854421610473434439825586221653196675885310789752222019479885892409952031161900122326363838351903358770554809387899839386536647464406828862677395975571641508882741780680626999301301980827025233686058725641751271150145203754328441600948077740386002459592680504461896063475027250179190685914664030649575521269241537421366803285119532331825832425564457547094747741815116261337138052556869623378668126514841315062236757754388890403667554848680431706414612344065470989236107983169313659953080829010440152471679163248969741381180095534964424658408366962395571824330335982813523592507927011945648811528768109301441177282743802467459632507837052211223018698329769864006075680471669885356056763564077048057116850292550750143686221611899688943985358588639764909533530314911650483152511607897574859161097397577543403067469658167996596993300669717865028475952101097588860929259642835497510363708804712512762094193937020292655547104054204207868205017720314471328512586054750679795361586965133229048921833568171712615038340622418874085115140775958022523621262784359873647723374454533373202051118371832712494036769232655505271809788667281803815152973115113407772188404555447705363310814200735337649570900762610138690379454776871662517871396631635579151907821675235788001316349871270972318821516179117388104060431642263705582967635236940640351840219277065351264900512438752047395586831599489994307300270684658997539265244004911862148587614181551031257275894643557051725655354198449846834906676848354668225260220449610165191916725066153507664134119891048217792759612018337246894785425402723884612735761138294311570127598170663169416127668791743725555030462614846606480502450038196888393175468932252791410227704660032608902038097111198311764279208776482777949725392058364930472819676543781931743718726410769300944466776620702179850610669496952576455195840891482176734090008989887485820490851381223543910561927825018834281689331620829268377191873847873962681532333090926512054507978326575315024782933025917732181669904375355959024449273847432232363082565384190396843433594622130620171082565976741951718897323564062060543996935852908268498722131984925466018537515657062068560599334689571805619898249975087560253654581321586929262650261763862127977053217290516591513405028333290679129953326544115993092954374697911610942716792987030726031219535893530035319392650135415341564662526816428405555806333997521565152732858519037243290502698618740075638992144500737891798614916766238865062673380164648954886698610758232025711089045804534134972401368636700954517106415907783511473379595575640483245561688639047494678247119335690702390487001334983882420825017425470092520632259476108585886637581414296163936946051124090141355631325936945902113480708837510128642444263476211639832745048847435226520343536975982572676035633699545282752732515412582572139286849718813845886387418816196538809010656620180616811084763889620283761518806861246921704148207128436964979703288133315846992280913220029710892517748822911376894692170992988269103653943642971719376911592161472585150502645321722654349377938683829955315564086256986231254616167472485433419430692931382275540742325755823047082653051071463445246716957268283771589326378328320407156431777985165173642923208267165706948394161313474052514239430459050276917232142316752955425953137348692592163854598258669442498275124316407875484561648981331200899618860850690816361653241498932585248429623985027691322619227159701854636698259924582949140052484713987340683643901861076294620928190961127849057030915226527327459638993946119288788841363085461562430951730760598283129533862175800156594939095801729034469096406331139057378165338366811516721304582344428602377008916032029791089127544039114669320918418585522800561050900941156854523618970218208165185985228989849756284531346076297726853370145839404484346356476903124628482658899725389415078103749545706028999933337338535871638942567992551128115809175124311771835260800103517798545721514116042281121100079230561170458597912637785945119070729568320588152505690541783391811026074493531787441770284803336159933297457382473012288197379005773348144710133277454381506406486400723663685366854398976455639559369745093228250423593353035001549938615947535819742341790916545319757312307702733210591047326534549444556298406783289095890218208582281212445912472418964319163130576464042625358296042153105452481187784304876454696985460342577112717668066706712959745595186422313270425954930907917010876157629808075663291722054270227559825430324188146773499785431532213859900883787304699472698774608602807650643556073827444006241200098987577225294046258425846567210104748725850228236628824852047969863979975948982160471854418661057123473073053326412664258050192390172542104780238774559115441359068752205156346898506852967598605148700660447431577611211165734443262256572773359597754898943393431925661334400691383946627880274406316039822260764611218453748274015795106885865825532657776251725773801231173218961413119285826703371080835870633591952199602239750665435026529227560817187225876041727416950740563033060121304359543927252055519812467644840484170525701382775736731940436324567984355464310168001608684752696400770272742443211672396564487706660477509816449645555095342643119659289498623307981287404623069311696019645644723180714303159507459220737163982952132187414517662881180171419678881717902824010178502683399750817683414325292164085476952935015179201272972995693775168650632445408377094103147034715353863716276588613840227835143058793063960489382482367416456570777528344708324238958158166242487123441596427152224930632511486762680795558082123776176389710836287604311003647511534011686952148461211077257212135494764131036015885821323152731698346741409192649245501337324986826806952191243557590439354416185375501815462868144825346624435042267363751513531729343922045863722182850110428065792978238253970725033013736404416304025679678654668622530673218932089538172681651431118193335704951301663782283935179642633829274337674273612037581979267293858104164503701301323741154782338572271640984393691400413548646687442259770047939624025061029553314676387369025963506012171026665674123425234038210308980474050951681861837607687783941967713770463215744789419271078311811263144645721255308900114878330255091935413539154759875206777105666110737953002870885852439027777249446613519570487295580063793467341687668730206614249098311730754945380429514205617225770671699569956405968729344665722424928702240628105918577158530756075119964113024114893101104216807619229676863163881860098049607760603039588048369787545300833781118012899816071524980909231020004120224237953725262155491752631843853897722608836589807310193804217754735628066894219698117596316904751008965013111190610795968220692417184243725400196340239254072888117537233793577104095976605738743579155267995262820281398778810137038655751049925019989601084641011980213939648663867520560027364070464811842099794073776533862638914703396060547216245858575042138810546777761586906516274273076530235012573794863976794759474211226085717757322074480819327614618809201559924749346145402742665865460327444985697419722035836479278908071113363555158879031900913895339255678978068866347526013905543329098984401586383987968027363488178529922845459558375479412063979648404075345444435630964429826496540885026466306068770708056092713338627639739485521347703066942467089418787909177695389081532872363395537866656172628760956486502397662118518873793052283913673906556206990998777011473178756432020486212435799698636361690208453629005556210952073618020130712128151024250388738980801533794789796366373477310004819166679850121464834007970597884781609624188041328145061907010002368541424591940229013866102483734913744054568764294364689118206648699977207620535562132700405655244200062780715606233905763854540563385362792487970069789894315879164451418729502209278821223120891722715006145086931533535805606509394636132154791825310173591608980526790826104329520195670477383438086324387554020560016395522529889267706658701918143407326226235266514843629511255366314764442752727007426066403874016423116566650923145628423442732185658771158756239690736328207468719080530290921250104650963566123888734898567249772675033716181902852792769758490045598977580388399827426180856933040599789597986378278821989337060072753995883015274450933301574141305021257130668218654360956602523213401261634625887308244604601265255481786573896750030547658999228313741515746929318536592246013049050692493119217360233826786981358326615529567497496194446038535141208951676942249631132066881001981331982691029027392256799681604627867843961878261157666180310345409794593951088633939504495766906368644832330787812057507630726135292922439098388611911287526093406819891403770177415192740434002263952065568558889431335851253594240589906914662596602795669284076795442194960149788049712674692948132654207129127603079394031665502552500508293857267845641456928812021583803809397354161675415236056639572324164021986790608960321720184070345423752700411568975663486191546124866988514960426331824408530479547969669208484922941930481741771540822631029199698197262941922754269645257032703715137127783010006740191976668020689309329880650049748647393142850995633158736047043356955390946114263187893230103640286214533657066728500936963812826828564294013221210885917321141742708742277883709740815185822655975904573143747243632988552268559915337794815459378992217416837709243562195871423543399444475916487251317209209740856197795751289209331899963255948696866660846863304304153745805409938538416046851714274918757266243063370761185335046341223455677932565578229449193288225542350774463082052450117453664359726332248088560223555800719293020891451670334745027727906827225065280220180267689808917781755052029051563701447525334622591276878758757911304511711805890213563022121376859445459792448677658482303877617341159452964240731083955889836857313948885052366379977658915764404072984751880177777805882747713211564136573823782931050268992267915105590142158292208686111579625517569151488402851232223749942117573219212983983795286030206906686012631768339372658762934219887206533353281507258098570537419837597081706921434194793919402213536723892448525372235933419376078688741164988856558823352439792881930783686886795751758225012321738558881133681670475117516520230115340769829632051135514239019671658686663706265286656327401414347503264811125565211623901744376005587468129589454076179481421339826115089801977211562470711425132144364643019307353108142778250390911790080385389761182335550580929440322123995077120862982297701604940471938146643894062350798705391207556288434267509776540537594214317989164941643921753365556832532203818170792594000006506391885345576507239203937372243347501670897320501390568032485530396173784440586418695249385738600363885638573427282386953877549987008501520203417369670752391845352390288419370336665611417577241870727467518164024206818903521211184349250835458751857603352997001909525304845474818401479548863504098997902172958865398129541264377542131445663799362751380283938948133982463831316699161057542624764433431858003207500726783026648509984307667443941754878671742108108176991669742837108336830033634789647886437647783962482019116206463152220750809268537640164516474600993679906297919366123943050980761935494475883053806302032797762583079360861336111553633905743154747016388149991892366893703119287512414190792824839276765682717484442819195287196437707468017776063176779497795934285784890394458395618426844304891913386586079440390919790442191319097386748781877887072681430616389649597899624438572068466826487779457712426363452534569616914314522613242138964567304549864298142894025494950714713634889585889554366459641005060223475990685263613326105537499107299059001016327424023623151597255187510923777967612051320778110853889231090080065856173919014635227752320885960769542919497621192340456684177502035182870785343808119547205311579964378148104352260490700588783477845202749230236894823567371069752960281112995045567503672950273289024675421297008565243940087378812133000231943238557066143381411308281179792390760867271561488070466676597325073810555948959688761961939506374769974000661114516919066026881202456224184074411612010533001827732358193891263214193400114819848399210530453083673981935435518242408911357417520446293842951997774943019297822293510824996782407008497538746846500013798533198284527174157615878595612911669116306919201600773061226009342009539965027150011374059639319519264905448643543035097792696196795770159007472433944582886722018711597100727296287192071060847237055479310679310817810593176383587863071445298478650250299929550199329269880580179962712320169128134090083588069201620146226613952425472012590760656260532147405314139180192489543055670864067477913000600872257340486767573331676272525546121814239077862829888494920911662320106489608124124229283717734384628157738457997895990917916442166919107702982547061219578422562809875367202076683609260974921157542140725997295676846113564937969404965639509547155204662814082866868827467817820311309234977535726900199647703440199690603841865029845004733457486181406335692039074022658846928361745645751451084483906762409774442581552103163128025930587042053562658721913436769564993876084301040630960776725508139111842350346972248435911944131603423765817614031310668249662387439053880378793065094304559937522512638676492442545187681680429651334932086477760225458137428880902757837085020782689119195585308136974921377347373072577514224892515476457168613050083095966772426216516850579007473592591829011369320936725455065624500140888457938834639107061834672582872007764727488384696420840179939749775595876349420920907209528505510004602015727725528041032286682995441364205837765754997074752103678204808258661209757601313987746700482428339801730214884743941133885162150279244714413118143696218867525434242273664623459744360046632491689483305438066790394293246571142468924409359827544183307841882358761673387123359842660778848229202095199299411204713187583640375937586216082906557008552616452623683725964267066514055044259475764042462760114132913196399498904032777365557128573711704730261267628809348627693400125625473352408237509690091076028775625989418754166400530471282067417520213683948922891881585928345803168594898110203643334949776723444828540159192277758726592063812238844857982420103247398629377950047116590330337315309720601880427317033440287760730139452921347802365952907048258928854027024840965613928918328494354155352080306112377697572201609111911161129520509890408227219579043419125562220823183322039185209254019005212315077430423898899452622110368539306837911231916848991882758518427580208098350344915191335826105825732567417350648453083048791177106505527128310317892500099213867574869412685211633859898260470621108268326747536611188433065584957701426835817052511170891195495452783272999124657457620905955131356974390600767985175349614242925628052022676481517322291690904322447112740819493603316576017582812180040009499960449324936744393842037298412403300521879042949661725307287999524892736294914768282883792527025975750940344661461561051886776413552945533659281631730899481894487194881802921232659208573192487872570096763587659605734123204397289705412527581031561755231870264498406462883389847119911652829555985165437726150495530313165392262649547669069222121021863808022087355370613170484535365170638485069865224189074358973516995020648947236958385847362426816000418578212860631351567287545304600898180830152206178243577709431053016786694791961754233393463738784204758699639542532827259099379882071209774127376097173998358062430080576754538718828513967282477847262536061316219604228785319723272542190716915133545576518974727116516044793603305903784705210861987318784459309807281144315496649606411476222654201737641591624673776604104613298110749966427443909964082312344395530470695793661450856994348541321426318297175542908909228879879658246020848929199755428296285515250974344481748967665934533973303915186330038833266549061048145810358226520388686762813659277540986212918934357224012015418618260999223936491043313260117192985958042761430241949187212924351744955624418989799008594553264949558523283001174902492681108943663928574438766182658316969189211559420326126920383715021336266440074018404383385251370168767605979695346103295528410882266666869327847543356647041099519141413940559188621413029432285774143083506267254167395604845515693797426752231473334944486957185286401950757835437519260127096774746138434669481325379647667522388455800795844646298418311999547403729542661059123565875677321296893087140939545887240521881165985053928117146448237253188139716380348395663255043527249493509515549672122085361201231097036504757236159072564496707129131755213618227110045416631949651588266771094637569763852231545431915988371605764830259018545002304072174492320731233397739074482443234911699659658899016094034218440219565794001912223028171074384439222838026132592879045174705827156324859389824890919920580742825140733373280693202756502869757555877835752681895292214658773069197794711329580080117248747673784801023834042093235573290786001839937482126596893503339720768403844216326278477886625480721728217118758159261869248849021782180180546651186424648133560789989116660767958788144615413486001853128345791694005739310344103927367494995363956956299436679379986897940387322944798959452457038370394216930530367282690672121284975382306612848110141918544054516477425507749581401982988662473408294833044250826029471676458487330322813666930605918587375313878872366193418723703190385054793616141503719639787569225487004636170539779153595544127243817141673897538941164659418689665970319315292203605009934530176964481487635365836875147578766283460358774692011941375542594138071642966701659014665903854102064210558277196401305838271721981704024845922890916169190590306401357802582989125103214022290069205680088955642183991649145598551006441638599876638991711472694225192610547740168249740389499300952468784308186188409576437636299536861266834187828198935950333318057631616768671758712676919865380109117379230685156888868527461455902171461020550537676151089587122146712220091585623594934879042420964485905006077708656250990230236306012556881366711931867930734034120550365965845199587123099118776335119452462347632212987039045203045894682224101508947526182223328515352304239209572432803338191611881655843265459463863120475829867754124556418083744539024120272406966999876880407462986653798185354318966644127232080365194978690570026277873004783312008362097531827847730313908159990590874069113592476690774898692539802367667711692405635527824382235598673977857195387020012755448349099443815573804220635937792961428599045213532403900276560594389241301993199271951895356297762523715987109186023741750310055290944259964927446447930293759986595859814163354589489030736349955050985413453833181942165808283825988842179837066156443530497972040966100528083716008327980728690237178537415316641479392790063646355031576343949401078827203219738963819756365852400924977173252096458425077442798251848954532525064076586376430829204632536033640390781522358448992555029913720076459136696084702595414233064432625485850636035268366654372460923216829813639780958419252488991421359757648559989449375225953673616845201198132680440164461504707735843213202730583059041725524641922458778406987699232047444801863454555607129310731859329972667807782091770189166711360038299801301490813193363530056501441202035770585337926386947842952941337187548313384818317362285033246752804513480145640069068026166117305041498476254438972016095249463659390290079930410865061390023296841088591997532658952338019104376524365536466807116535806779418946739948402162120016259727779477676500320222029121785591040751155500567848778895446178857124365184892134805986048821735885400268529130794322434540215321723035039549207898706029986098450134886736889531230540315434710774888231876975499894600312514103098986032029011957596080512785469307374990455321581762235557588219306602193508134526007319107979532249046226096124333770206686641869764612266509997349415431535759200429149222036711446919334494166032414588303154131206116374425969101417344560803451940374983409508663246029585583490829019465139951239715400270570806657649756650335315316005915975319247856592582479481161182261694646603213274958350464216313233524558210768610992714566885833985467039681451705127308307863977208515321025087383937735122397642868924757111360427997862986359462981957253857663962938701118882104442905742207311553494156237185590551525115445873462444218740653080734948306302881286530546780844101421804752230190172270304538915782534991298078352633464715602469012467116528545666063133165232605500498628959152450705637265841975261658957553322204193295366108639685360940492740633432047778824109710417233748728877227764869326386369362995456681817120817120581266159196512603916708142636579064884278900007952551555245738821710000055644390286411612912490482305417034604383874647701485083054153759594558788881157279248091249999509498454723168715488641027889213767563933504608741656294846295152293130009996792346213199307426410513359096250286782140370777322464034156342454884415528611093378112202428112516363563416190192785361893905122214270361393150599979106110441471698583461678318578757222695958725681748963309256995588509870212061931921777413614943472010867116804697492574144756163031035252047713033239100634198144318008342478769700863123015819407100708347218923899981855230720156834281009087152208457372868890526364611722750196219691643882417962330825626367375330971833000579475064354880653896441832458372744990317126895215902321612024439742095991461840401715829257432023396129789607830835881920340369403036697280166947761003108338036125453392272965429019729035065956182462511353310209005693461356178429624021316026211291688224052611022448840569876133464431331065859318266944956235016420805015691279081762600181299659123615835791045164314562149972763513283305576128710924260131207297429831307778183874956613188301953226621082583819233638175368251415921864334214023989830986832982064336680029841950278660533391192825198572201340327978925802326480472838436886980993323652792276536143870016291152255027025660591312862697795858114597336675670507383284461984965938288697821675788257852700224942558936610441166224419975753055639975169399307252146589943708085709359283227329308366479221712427700513543364698894329655371139073613492261532684623212355734566854976446963103264873334088475015965945730350326134557772134534394685084255484042750052418837011844983204215789598578150407603876349826531279621115749986093970149862150282948619337016195395554865845592806543016933132646809891934317366857015839395836735803771168267426072157145333219691167461030975147861881795907828921364980174888956319994360065871680900535320179624894042658807482542093716699679999623558040070746376322633464105723307071790276393913446051016711656153436868132624684613466903828849575724017427042997649425891416552199648045790953950855992660429117519919899295116820492734194996990100417490125166519373731050072232766911501149832929624561581296535188663625284599203324276021237059262519454439022007588396216588652758041212772712238509440713862414442965987339339229256083164167497068432513891901884206737038078883583083530677586048769190986759196730221456391302191289458271923318501250400677864088413242398406325678827091279590519316326741312363751907771685848116852793147974058158714839745503735124667600052279404440085649816353518060691421741654253756547146408636193717089744085143275363684039301768673112740374720997184353945857231949795126559741214836459144735178555152419355125212758907806345287523995182094995168474090456922088892930606085931541653236135243123391519582802304185314078585288315724007313008708724225198739260218466611926355443620324492036356978331507270506234354111048237642682681109128161858282493021448101095311559306569811006946922420276134861446106174801807020291070004972508407515700691701430514318016185312616961766347923038311450629223465703718067437052341903666098000791144302463959112786307701682234276984091060845614006747004748943023633103028772993167131447927179135805074309927544635961589838961751098235277538437691086806127434662576186410525682479433953823228057487655408957995708177962455106421593935480194357236769935493990182263923844252659833458398035489595790108745709608154743337462141128283194574472550825316580979410179881821536453959880648340286650621234552322336311160906725008896270870480795672481371778750639013107179258372956549725311418890192630472497745282570625478831309473538693814532636743979350017899590803252227684176012071695094021216548409314445172613390171239736507415292711106223426577649768068499770303377070835683976833832380312017678817749233459892675354811761995006051754887165619127013891901845811579553588874915567535206900572242593900116350466594141070121686726426525388085396076755071208605580993977776686405620538419870522131684747731004412197942818083937720750359547758942088712454808873789961166205120870634570323563757715135787669766307525229316107737807564200364803797448224669362953909772441889700015151409465895929526159229612547310264864734314109300719916623238401729635163829186650486535004136502340862045892177511189035763297708022691962968926283109571137700520482732628371225677922148534862793244940282255360638696437303225360626686464336842251951514912003192976978401376084042844003062602998548294058950364332955028774096192604459958249934960454068669390241157390985016508732022777463068023429800205616694843527958435263934304863173319733863331410056831570817579160789827654809306265349941696999306530422800280971243711699218984342210873269696367232065711099602772585718659020919161966975016330581269191789360894447253383186064105816322197664763739424622778599817135945797418262293880145116296989155665864823454299700147378004846800654732058758751729106651860889594028970107084898726058642554483955169201795859797329666174354897770984493072683852571320935463063248030576724569268220866896482298797480042509985571510808872239845512951466207565118533399779096622733431252129931373492531687651167646222570608204819658006167293391314897631992707809062925637622530673480403068884773052275360123587447167878435258214666779928462303649022070313324826627486937530906169743577392976170278812829299354860104308759151414356719924167590983335426680616843109101501749094414795261915982859493559105540153395693119973001086892553252720767755314393382512337839297680187558778601607272091964105448231523530525109337945052579932520906736253911655806820639466423234426947411366534414391843450343477237565492710612012837076557018278242096437934599582007917965214529907445884182098359878453721852338391642662749908890912311625916335200007689084168603708067194261752203835524477726481408699081436339229818155391896376134775943109871433826368442313743738202757901568185047878489698329193161248705471421751616692539144927222947311936775418651671092582404670697428498519091330566050251623070620353594511757733335140133916109966550109564621368906073803257705356396920132083446310418235109681520002794641436474756541440366495664969256841252600688403186339372834791624452945899370165469777510150446697461874400402709412975711690288988093934781450556834842523363487572851216368182188252886302571732393743261437242675299073166353949081119218283171943186539999330947029874793637212329947087739787958951474497300001878740316785267707849260728890798706740325867669997047034091269939332430929014863733969455970354523684700880735506973106541444886938817424452686236973029194451439172347807104847482352641318157273420454715890808533718715576798774385071229125849530856844351840298531397265721699330982483980783016099834665025621958344562052363816578717059242006069249869175312071266000580584855270176423089664611970707043210206158005244072097019215362344555129313947928214656149609589383605226794246355714848929288777799897694414989073903731718401144026435267460349380240676156924836696104745418885157597347707305629063342347645808647556062612038015761630331160086420548336800909289163093649185726073349090202343116849913254837595084215960211301404134296710632518472166947344537082040682282500580483542086616400946584454315334693297372831185735364718121569662448824766327792067998594976810946236342085611965512515235097827487859166606990132094813398655031978802132765766581986597475725368272424950629620841218663081722504643976698063128439295921608121139944823818026003685195930545245068975957262701920874930168164105988898345908568124683940939017911524244773681404574638341114353088356612407335384676919453796236164118349453075951134105550102012164546992918490997237354664414553775369474180522410078946378587042956937004904525297381285792283196100513222732733767222303323280244435954086041088713511348152727065785674568408943319866283432461800446142884946466313329667876442312552485551878770707383142267186144373266463438860171914244802289195062746659891987639236971873985766304417574790576001522738887900648038831674395552496285604530916853254219748241871179713267181768979176015141366943733303695610792160518941607713934638914594681872327918346773267931473017730442399013933035053906788175836922118501907999775615032186052580528593118039699253049679423871592179152475267188887570401688158836416042881436107245880817874147575517554530364517567075192142068117247414867639746404661323176300813521261987588736779691880246540865748309722639197719468826590597592891441824848427352781349511001803138625314813122728247119460050308074139063854628166805588610261898516038440358070183730643625385150442356760872800338133366627437109459364097914765788817973116631794027208131961844404934907063591550494436492312852700744464837701463337556662646635822051819918203294558374555471964418222866702577290635848531619538629802327300037883264840346837988317884139725567660241922762228842302283078512289185845875985454993385140167770528895915039843517529805791066450393262439220484602610908800449374072062889350767180681022767223929189479338989984441562993923868587048238980944126316616230665885588646846520132632002365981703089486225621341582512193414070027638561638636464465231636066571289871858023866745417792396133638942838405397822660565218353768681727656625395523829040380937942287926524516213812564377219602630266535802802803005721290116837895266328257941182733763835044965517715461773194474493458284020292917897319068903289059894149939415721261338634476842063244207657095969151232713823123807729190814917997108440789236052717055244415009252146824557548736667023850658083963779688543809311241300044677802548845017897019854592578984904383490049884463991744645060993203709552072863293277667437840802601445369458432099709892375938966511685973070232864137494842293483865614472896372850035193107197917233481952798492232626338291121939198791543809701478599688059804417631290365746619609704307398586499693543280618486617633920295049673056356138750292419497822339340456764585064351984376144028349615730319528308736439608205719989855046349740982598398865500334538043777497478466976275616803385577431043114748569607066645255321209815609516624557784269172566270520475259081391331772445969871427568396864278255998563032604578199116348178355720873581474725996128352273586295198405029274846902066806578977390451967423927255809240171916796599306915588217331403213571591126640264543763951756888131687921124454802119337946238023639102198466986824226155400798140086336966158266929821690135474533904739517222171404035268715718944154232073546867858138812790429018270686308802088706140476795676107493420009132581029174022569944733184155459444458087207726816136733561944307726123401476414714018876585335336123008135491722497155514242723922126273848869607921594663371386570563735463404265931137241211796972290984802953683715965481420927793849965016599684936251530803313404964257849524779732381303415468106193238029503825013327985246960539235119963492632413470731728780468793042224725267470258205632864692365670338441445221612238690837078581420986439916689658891354218330033227688636577515745299459993623355855776818316306782311780369830148518349394054513170237142052149691690442331589284260755474445708860360214958777490840203931021441264360560702598090804796320056110840602942714117120211223388691592250548508554108046694144543668633029255600267706531058332050512207895779344098893664268783860989875116261011877002820584460933061206095083889295540321303287341456949002176482523104320392521653075582861522103892984146226136099405488937896146271351796044169437264380698252731627265748069629621021025509008447948832140728221513033880695556975192186601831175221911064961897192803607634678929994475272661431790671871632981816874664746801083691464823907025493723032966273337986548891677112275592701130368353543900995852737616335253422305019309615925490999529935478432366201460500453942319551548859214313837062840866577380689191207081407936529458714224331416611148302295678810095359606396372217817515757319219872352886460317874910388766429048060469114262387881903532795533215083410020460325345325058053343203298952185866644796732434189834614850922738771926813775010960244564777503802410453854456895357559829466455808434159884474840646234494635742121597244741621619001840479527573264096767095304368084194582887702132769958826228380572039975402996749162586315765316397174639343538467403252851195970153491011290964540772123279187256255022318109145173489647478952558916365953511011233191302726123162340963660895193850921808636294152338754011651830761871046304444619822105321520720044951780815368568628369060349822158564416755059073766711116706520893919639388260162777621818169236507078879282745638206836302856483555614996042685782467067982884094863414165970564268860482392443731781663799404961771591650060531981190721454471005960586399654846060988554729647231693265539012774813437845888937743494908598071277350295301513603224229629226441940605726930308397766704147128901266210973460080224765512439345860363135302754604686475778919048043342228548479869755139793407518738559469408474562823455131555707253944797648562826248595461809666427851486611683089151807039467097139304875315752859461070114442577709873629583289893527291825331021609595332029869313893799908832090153606057965074261743237208369262007675662523311640797859932561455129839482962887073419951735726512051601405781984884816845290616218360387450540421493294454035684308603916766390148746367230690975001359864850951718105201911944466985897566140477934163368496399776082552633945402342781326648145096463539012824007910930945661745268012279182245336182707247109494646100775561074409539352945024024259479706962640926797397416731629009434107026401376797745308731002087237399237861188555939766434938561087095601285762636285748263780363623719545133079722258801323747157459037920457351693762291067287674549442949387456801133959650719193111157807295977680398651926243347831173874969670437965181509482151916143581341608612207145125664957880569104967908152275156900762288281629039784314732122492082009641537257044347011545318266108627204436147087991595853016111608886743456978680447948914633975704010378359974438230921153223357436913038720572200988149778139097080873252392974782010869043535687869972273864063275708134237388989511804045159945348704455331647753365674255003448664511316604941614534422397473783526992186234717032590890165459096555676068033920577473221275938869325008417548666430185414164279062032080232865155927381225655988849834517749891790866546575950989709915407919700243558446492732278681930042688943211174880176629831261894746781697136339056873310447921336153015448243486189994279624654365576181047754161216841935265415719819871503971129122381487374078225643661209734751110384928968818734207053364976393863779369016348379495605139554553320680297548455919918674829943582517274282642730653321471708814310305707728483177427219973051466630169561114584276126591005025084468768127577194673891914470757730308728851065162034036681145020681699999797530726085768395854366542823680958848676513363299093143378112632647495045630051154252082903073999670620335551654169170110213119023601472289558927732351029264423079479128678536200308750661567827173098480591647619007187998402331038703629354738498718659489350953912729635558758435854300121781491360449660390931611074600423968572070472473133745662509423728621473242573600983440492413328656341671101108005434648575902036256880715436602692016742246693520473240550711923065730587290841085639916784948968498592296679039277312018694660229193141993650810273531692217415326663787588130457676258812177244105926226426183792535324564103676067926448131495006159364319233748608605968321085496808578601250499514786923196679814941473351523465057132347394292064825363358652768313025387898369302972433715497510630057629603413280555898226689841929740428747788248226645626308873542375952605941789950876678648925523174808073770495021597607384718214721740419267739510853353740064580357261864454051142787976949110944274210490683149734455233868868314483481736931963103352487779643606265080873401548338731457527483521263280889700653479325307990537225701416667084322028109043985262599499308394877363343589818878030244234684334229426038096724010950335311809939234657595204257714264741804502304836589444860339511013613884161018786979384501367200019196711842898135564251128057570534461141686122471775876696571945009394550823139236823137005582878017060123948037017492465492857414165609434393604554568556219720231763992936244597219521683964252760977063624145016482715338349347227172802194405017609071076977189071474383407706132357755831449781449369947580951118560426405104225494696994018697604031061443434980171996979671784909484036873062480799599488363585448383347360950233515123677480998335861088386263442258673585146037367214102809782624321481461883104218332053301165343385915176060262181334236607952503609162765866138484352725324989127972745631089887734842177612669034217024600044915966587966508458335545379214551067828492640760822769543302386857607865322666501579632902800140025303961777247575121896903512488680186855542927165898296415614585530786258303795068523485262456602867636587076098513094898229344927019743293264161022821727415029981692856797218158963350734541352024220968909942065059789311742900118845147803297239162885300469516816390677758974227099051755838757294554489946135000032434449924343057168807815497632064767801913712050980458847679534575575985939810015229965451306137048963822403379174185302591964844123153428824352454718144206509788293958612620141896599554716106086462853831088152200395933177857084406205305905006171372154560033578172556726570168782988699610168671592735283702669279194082005010894944446020952468559570467522126277560474393417830309213816660712923641363063684163647611622522051885841695030906502221324094697080080582085988059850182532874455354996652998726008484618738307015912104853517790204831463864663133996720932813469580247117910784626860735839944884440967633106952905062344890243208236973761707797626382776828201742337818012910541921726471267606676234634927076939631719756951908686617808896840115002221239611599720785559873727270170455537954745926599743362296528580053645269493460751730943070292242955914780482796480147176440834649604178971338217264825355587441262022957348490616987972828291345304229312169821115519751580132035608264026173443316633201034899858830444678254996018520677042742203951362918406937650927477785235716961263090352440576439488347481170383988728717346663586058298024069796832400803843081761412961316968783034071858554781803980643149134339673977851525825809081316695165830652805250078110548571654704703695532492162876752813721798315584934740452884393969337895212029599728627636529219130905000044689940139536274540131330496595482267296963452186605017089324778925618097643248570643769577938379422595510012239068554774336143035325292407052353150797768725781101044478448233993964049855924669221241837634358786117980411863999939597684701191226150847331832017318855489892975317409697844093709311744663007396473303159617743035267419521012510168667502064078913003160835005961088559702163412924736089577041036940341554370037169494611035406429394623927389522571899303707226993482872966940030127835374968901098089312433796053686971738848492804786918649940134565835310956640192631748675267403569982309489129064149457220867080368166631001446427578183474234803908566759629517556399106634754936685602127459776721303603256496885495583985506108518219254303636347123466409321335594780528126886189966668955442338211481898132399278356059868308352999638528867030227839221650593906487026718148671377144239485577390841348015818974170484851355786062317189859931689344173168135736156122912771005325889433950468993959816158043243868869079335100925001905528138184497059961236147890525007916178726293523851184446962166178436163971305786277735678190696775509921196845940863743138455992824999666838812999663265649875841107740493675052244224960579209790129996418241500712326578948905670637662139561975670910104547637496399884235543444251501318916481276246112269080435682284471730891216420471115814895645159436600267294015902851830933283875034456966400299361068995439023325201303276542763277621206781194629144841619503852464205610340795920002348374365869117557881308522414854815335688169500124031370855122040781504490866003961370246321737479343907475643897690909224649481807887217116651946820657493915659935178008646607280459701168948260444334151532668439842195527434209874679119492302132739934803013682623954433348389208550592528798529811638949847693525570768037189286755792984960776463476523927330323412970417697433712334019877251886709681800177295497460827162881487285613627250373527431441915099482073675245792896267435016915803979636836319901166564348308795193025812039671776902926631411204697765478892709677188950001236735634259202109354625022831053129712615273236583976046184492861713273646130470491147528761957972436204413624624488632340513549401435764975969320892600975813407520707024630238849046802698809278037010774814817259077178937275876689512627054567381334719825462897677135374357058580361395934645220177620616641833751302886766965761048445981631755654436794521522768513913185222880796926992266589804515584151473523793693979225382288627691305266739884605291800089342855417708120654460013977904903130653747487654468057746996474256551004241554558986883399800036555808491470369576358791484187928224913658508447961276783405143472304618463891226063618372897776109031892578132711927268184828210396774756580114337107357107531416260195187454420729122552995228693974320940469084073377005832982787528901040125163099192112744798079841277557271770731447628903684278587035878634932768073839138902789450108318841020252892638972069083514988625768806815102979996828529258646397905556718595513391392106198227625823771240246989423882275705626552111532512994155634622070178287898046234906405587363513709472920991600220810948871625892622224504569284149914946968418535388432632795556349017758947287519000570302700834823085618860986922340165433399836239852158465236968714887866356802587905415241528952877289185135379548767479530541820234652922692246746935852738856669614375438957120644072479469780759321839355159900432164526074445008349271956342162106638743677434826602403545134841934464630135936903699090338354064122620264186595843534751382331934356011966919840677746875984356629944732367595398114030387595858669574911882031104202328495178971712445598353598140251492909113819829385112396906683872473604829884370704475062084722862439972074286546880224891985926868122108317242574468892892290576989800335467272900001699813739780240117415375543172484261133283352453548914406942206220964714888151432772534207487288004033500826648390081197837260276194478137525433015914266978195912631983466891645717140048266433367798721004947267733116765708489232261248976595277970039184466359324811174665457167541067332219552548506862790579388654703765326394328707617595688755807657939322685724196804959196218340988846302003719909349999823987044544186904698704000089473195279555645619670130499388419097040076221220541167956993710632086997103065192585133420480237921425106930597820492865308813525672525158021230184191045364557956110581117682319223227269584509874640705465548984472972387948880939640237781155280566037467305919018658922243571681299421338581896518078005016400995881388227467169064665628412987760718667845283340571775656754502851074763678354048994660943975810056311810129789944961153466386796859697883728283609422785282101492275247248005961482415882326095762512407541212297775973153386892037239447845876403696462738383614885367422944221556738586355449846296049298527927993424506719414735354121529352613672311694260555741604563691321619915491346081056472971909661447970050886251696371984116988517658209665510031965853817516146001421171139315080317829916914446565759626784585351371556893718574361492756757424180173709673469253169842102711458349677298335031415335114466977149626047337374824992595269077610566052294641845810091003083963362201931273029859499207146348224221451343681696455827685436112506596431305001858429498254459939416219856678081949825650505101873522818929558515423515446162896279763231025688638427046583402000286278113962520732468896983303847555734439594159821336211077998607048860156540466894429961411883896950884735116222553606244886572522441919809699249593885527561494654786674177452197201941945062500133121909659992772084230155842828138414490895754759185188105331427109642378438372120192217699775733524699062064813756917329232251543761151663513948423014323385589165105959364012120598984745220860677993224689116916092395372886620082817917739920228532650212429598617715709326707164185280612903810625601055088849276000948678576815783687934303095192628920286201033986267618925254065504877999390831428100955578329331542216311210943696462076108163641759444115236042579457888684323416103208496031225316476116604246228618408284650946319192895415947727871895533091638672834653573593122229763729306812867284854323629618927390473213697501559462922868677159349822175713041433377885346790116028213510490945660800238687958090604198099025939442961570858055361794999818466164978589099598590160147984767024693044259354470080812915919577979595323543632333808435461548458823388285996134071729768291968685846092060723106908474359255345355761248432541130084847088348651012320595448697463900314897546027371995531869814705552076071313228576705591868584162906954182011823174036138343890888615165128872714067090700613873712902132759343495117639580604664912485459546750460310589349512336817473483378316993629324432645869337552280224599433347986433764308985922028326774293866322635282871042885623413863982975712976814961730533665599839709626578799829337587903175506156156121248713750800028235203584200163047075910391559806809670301882448306076951934902963103416163127397491680106992287132296127165323441342025266609694844047164170703126072705849467647641878544817163691508194818646344496529655129478089046508789704986712274131438565788652159562428325171991284743194041430935933977177860702391343666882113017312921613756619409653841655353550163690356486628753086944911627616160038886534539397433087718158654476732280133262546771310703279871358702533219866626534973980561867706956412147750777978034006664831002087105802654532689937271412957754058036035841361036495699626755987907036352745953410868529072246221156870893093580116639601262795900765018843968385015908713848629282090649475057817444083125351501865036153984004331932730588589885140899442969035107881673779911221477260331200220391331195051779147420534982579125723868376353299013561310106900119577033917580493382122040161663418282644522758618154796548993277088125276579419225573760603127326385295400806511796375868121601747331370133024667922203637138917741447743275222113420836286410887019857031814267415462298662048034652827616627382870870817162326408900432072146920957864980532250963302865601171128793967180546787666596268841758296406777043190421028597705787009147571977848136947319795333589482369308735819921933489747265841673900416953485593316936872513005738008606585567520050897818142346092248034850528249866720186707678219565557595495960354162105448928754706643920719471602636662522873601619828355538129995173583669963295334547823521755129260321192344808075066180497274992608270201046612787265451266395587291046610128299345349507878305930694283465162966791104819622710401071625672291893508315177842687644044279932798711903258912389590245934550572263787119090147432168526793414374696095977204229195695613922770868632182961185453060191223353495089217507106018767397960877525907351191612155380816999027709864924052231081053645887732896259396283129752141619749680901052357354030604844457951548320804240894588088747862921112396695807570844997593354299179907204423854975071665458366371406679559910315060690721642781195993739159382367822755012010389205204444758377052063711706774027475373759777962327712707125249147545477485571479541614312733552981408691464814750156070402989727772064402796642059547942886879706766541004262724487781752441990755896306850780204869706724812298543081041966094344886919790571626643455038781711331083145704669366659287885177367335447648176606067803180134693196993546640588635162422200635630125117298716894957348109300074839946353211493509439707592587576255783347092827000265248578963552005681197933609068422813527116347216557115966987024091195358806905982760592175136689390653607349595926628736979119663838065271232275411376703850026664086105090228876005543568496519184537815043975908010685456023017914880944815402478957586521777660170521322307360107424746705925347792802316501468834374331047069469930683094686667827122534195496247782920835926100069151696397093288327578661394269602838733045125290483010855990404633476522310834336107771190074668470208823903016208263772337725997558076743364447246344379451202117551232187589423532203156956004210712369574296973658728276082675658272888847592187669937707697886036252568849527268668771149642134801322137183035707923569267167588242687354044600335802932924579110660556161356450913219298209682056899270412570789302315752244248005599708679880519438610377652043135236963515505956037519574997086901465660735570273106924477990106279287212765943763487577140528661740782829043338935588408189551465749284765067807841459876027388414468452587260761646979315739163271605500336359811605655721258319656824603651654485404902293069106451083187951604117377328921765421225107161842449429492764341119162054633688709885191956413963111955245172468307404549248426699031919159413124565601947750872755407278139439550593547726740553337863240279822133624345798398658486106390066042369552342789018362633993429535894265089334064541974675058198690212678658866812583388309437107679136795414185803032609693888871065163367783282358805896472198753189354374837091389129641282071617582611846042389518379763869747114358032637705973828965541849289108951961140696724126004474332065781738520111331273874422113692942347230025482124972113815991984637887957551652108435689642713415391018947250761700622656619467068288226798198088371381881461788105417808023144163895581840614219807554925661162145044247756309374362583926588302488987767996002606130996074226961534288476637858242478003802496351170392035920116307738968763135148471515217223842843231024571574570526942533529602974329268828581427683050411455198249726165691670592517740742194204126239302020365920311378549912495968523756334833957592748068944610658859468317211974634498844779999450462563031109324762457165112991456890016562275558446172819277144351501316832883480274630939040203683968260796064828821510101828847237049299432973231959501889122347456639291347602314599505935494894254998049124813854887848382614611563931679252785685872423288922595887197175439231697638382441308848076926698757574224215864356217101640026219900531424381053059811644979492592298830453467319025646288117786631863079754582757584922982332213641346283073258905658645573685082250010069002529566232975837254329877187665981541198976845268099011885946759722244813050644229329198669753642058524324343604139556340699150024276198046200040782100459218035613218161676176205850712710403539400766986818900751023235914249398355885224385244593264334210885003867082807523018946686413135985057549215127387961698942623107088864389804248678173012191866509874349227812223149188885984974198953296296531145354831041223631968301584450979622749684593194954770309597014128647915793562883526400122141634326307836639105616451612126050809931146188961596386181370615293368150642653755187155726925154330193977832605804058833540080505220481675208830233991920471107196330006163973697656015080543830913780499688562915034077356382059318077641491715059171479222800645055448412575723010432748630518455313920930290707698698790234538803590433993332564661375001737249861513173034615824730460851169077390507077143986712509470420916456771391275214483430429469321913393978346135470814394486300925908083043576292888192978637258853965443850298649681445490644050982361275464519982725893388720114357333521883508653744587848487135505312939761440501418312128190624991003616955200476598250035438084164411359647865176162496100835644556572545468202877375158814693524518027145394787352464417755881371218771828462657123977053794606665391492559028688436284693236930794833920997667623568155845954198027766991461308097388501463881135332505654649969371249354757900384855937322164893901337989937923199072384602501943825328848428333496079986752284567451548512028754257902616464811093644205377096737148430155093424270456852210445194373766185490050427134182018550514195016080985712154560298498562991984681609550929267428908878180428127374819513514046405033121509290984765020388380758576217958322164749380025544096261654892930023203254563593432588749445064325505342212123175440562024179381434917212550280683143129550380445288678214588103677619136770950867361592019827079232977870040484493379767479319726268818299443011760690080517526699175688896916694927961452267650578410277630296257895366167294255212303863986536826848325455495541032777351340593379998233551708457988019249966690169771730067706739210816675130477797956522673051027469928892468451303253656068588512773094589088068529439594804389797063073220841265845687197314305735351531156814119467250472185410297758550922546126337431069469200102274386647429058384268246116790588248207917373966838325362083301408823037355723567415547939891804938896007533883973836941554644559530631272585134177455873136373578157364460436450691538410616908050595783189891279142203322201902552290568350503703667624359905216693958194204693342498521027415865244729447095375411186986851067903464814236912483148400001463034871366118745120037875797137228150931130419513279232145818615422699716784051712062071007971639125117123132777993058352399231440339399490671572353958508566374247115580552188999743572573548201285050979262850529531993300826192593833824771767464346429727199744356491218794487033351997247084696985535680818503897225678382732926173530864356457569229935191874599353127199345619280200696101675131194069532335412277567228630458236632780945781540635065135342382621732958854748070433152635907330214183435685862223926619134965250976219262390947644356207078414192259788664316611063531803038279489915239130036835949519448583925121768460014874431936778840402275584151855309812904297417459608782293941446788789433664248022769878810303399006231296878593944229695927985824737802979394990638372206322023516217209128126745714885855698791766143067138942378619002672118848623911148718292189745408515764333287595442255312649270540504923252978032215844671818196893588154525883151924659741817094865074091479192332348887444353571613694697214398941019926117041067405943978533642955182470020378181129309879218186673925458160636695739887817515645010561760102952802395713709525285092954887574730984091527436873582882579893430951853441995669432734404277148887705913126044435072746518578508129884161440636697313680996362818884119277559771162604977487120166996743960854125282548996877624163533593446276521462879609982934281251203375315501062463303968112393889161380903174790569453009159026877887629487796644032266782926900941354639706982043652620566315557564417483906474390672826538520994220433482670285685545490037707611723154129293314453837334689620956011136570191362287293121182895271408378212626449732128336336974410003834885042689677498110821037789497177520771593100142190848119776101702810376821149741951180609965402801491375276879397408923101755412264480428922894663826000304287073970217724330087425524689501322872846869758756065871923560841582705295282648249383827353615579063035473912389704512631392055637792846151728234836141454198052952520380297624092334419957449886349543679765949033791671227302428855481035999910660612564353971352622783640531235282362878251319903376311088142528740399316135862003829002231014708901640044929949159859236657811277592283262402979114752586111656946451866563114925953373949381872020882770235259113197813468849123039462218660841414623028929009817161381488905604628076247880362331808060205446591280526927360103339973705409839486803959420576171169895410345111034150662579882179621188141995557971016898719892921762531525356272824309224834996022241760351651377166835751340110008628896455918499047471328145840543779231049208375551336243288619133002785060616535968543675167408662889594286333060223217119140608182144057250076792634051338827254156018190969668857350345046439449797420730021264236617783340072304867667302503122316640310815508985774969227028189459488331678850352315333489025464388000882135312050535962676925631260516942511556297942531608710632618696608230911179066405845563377536936368318617686448934591861247013776267562268255758112157714284594603267930677635679975129781305223214028942409962241342862227835404581343289434555678750799897422481206394967758038834764422151434800946018153951257611677386130162248304143797026584800756881493095220617939985534365737210834079647656461864087587606620156046922020273759406726675793287925857138536230532105641000549613649785564188544128315089727445124333089709397069492458962545972200053217989967559099919578072201524650559425502127604553833750908223352951415773121116654385018373388426721676381107031618219180745187903305999097661201518188477947647414703450836999482014745954160023250862559720415709371069282466481989356712223672117559442666091752355751157012402591453572781192549660150658200241752277226738873533067233125759606337421411111593317225505817701605463944267721873916061541029714614527602956984971320292108934690646318363320995171885498628662109678328797274199531554283136276728962974527928960248237649929441192851097666015269715980259983182340082528833477050421096426060482956361238711364710829908540515514075647311006879979769145079543511520430170056613952197746546358533014268422329690393945168171824969527817593247459183972734414854464396701308722177563555614130362966112578904916650112559893752083478133437920811904637463421108002262718464852306779560627705365559767360930642124508746635529801000988831652185342341240251824301394600362413230544968996677484786173738644312206439180571315010527330950119740290908239560156956875059860205665258066118265906505736995012908435053565324354435278712853457067750326184259778947237064254349610253198435423821855501140118486922025833060259312586442067132512779572080570710898804272438717800748618101046583509361522809349127700867158653010087476064699381469731406249111248929645067013925476241939162459746709808461128859868197176176416786787920305436724819676540300175570001632592585126375044633235830336504778189054626272525771727264338273718067510847954403271732184298565684830574899756877839301822507704138597143207002266531479376370381020981263659823064874023456283967756777982209904973281279185935238149279120552389116705273817132306251258970537350211141306405643210449290217901344123176084785005148464992000045461246259441016501779512830854651497952955054053995501691655643228114499826965358562837788338838942223964298027282938793522383131391315794749249188859611172006182282236776917272417132650644865422186974275169731185255242005933769267267112695423432350849882227750697315538297835733106809239956060638179047398242993448619266072447448547440039921756889607277664966374508804899646493105941692749135848553015524210279156687566024746778030650026486433016465923466870421014520969022479619759510096136055505365113265613726135487284447958181467673171815251609127967199498465720567496933207786803230747882601784682677153966131640995168705761267562669799607381744918206472496977199139494466695553035177811586992576204943546585023801485220235177752832018716865219188431367362484401906975136907975565950167219897889226868541824977295252266144200631992259197864015710540348150884617669620454800500168600973184650264380137757604674697177936460023768774412808614354312382203230368751223521259453400241478260285480958214610404860181630089292366201020014383648157190257543897630959961254811952211624070396767856452254151393231737602175607298760755924425769994173304535674634942099498543116623659980026785501164163983464301132388010698178457842791356939305645448080702860453105943759167539314538527346368975637739868520103144860336700765142341868099878933425975675131528172067297184533860993991242531687965106771788803345245915044050159958594586503776411312094373568907348926130219850556945445677302286069496654155053279976643133635659239148872709576718581224720938691169023607437382426337490197500791812865675508380895563892432697280390903685327974059737146199864574131269572597567734986776780068934157737264766679483153659698508012841749803563629265446500391503573464409091226137033187690909214100394350585879196161456776694416568153012958811120864714497534270912000179366850496489522605505553452887255989532227963313682902035887789893782246411948115902309265042650786617293242312813772867782276175730857216884070993937024169415562397486643452355937545963065594397296734372876573704060465474302317130757419186426747798458723760086073124635869291581473961303028078932807100333253999459255368977844591776975067290543825399979356646336005168617858257239409104930002237921895892565508340691926026452355834752042890182328785948519044474906355887856128818334930128383872476369840811616215225035719400118244040695233193802185436472118188321127245141457451070173437208869068293347795739451067119032875898295304622919084284890760583791702758180030457620188545813283466136747374093685652916728727923641955641702013069771351672525215040257764462742268859498242982243095771304984755948744906456299008653315066461742562751308809557448827932260665677020251106786717000426834033717030858049819244243840982139019937714491584546602122677810017377530981644880905596477084049729192177064987341200329345933043222978269608812631389827674962974811065792699203420491449954371149305699650483976344198063511303191382409076739760718607648938631662925464519323704678255427141576789864583716679675094120783005634558740203867808455317440191943275422468640073636314359009921616924501031876855201983615864084998660902102203981143940119650525006937222934803630510967463490041296767790019175916671387288226610059255473676150953238579702577059204743098173762899727096161125143321062020144253149919937361921693209855467746619459868357234865791515310823905937565893544169659782071126134212555944332828827083127001684570417770488063890798916584804928380464032658481472529751118292385671383554061056308068242538186180780084884601108872240188537919802061135613593000995159267973481012324357182853672042502329609910673236105832218487290050038632535526652359196306105696286048980183091371162202424984726888144203051393927404450110709408773751287441128516175453576249940572465456479363158836303273574427913585291217415215913673216165447864204171456252936705377734303431582357954976775659540499679466300845275631328333043980090647874903571837262600985258611006267092306369805580600693832875623050791471864726433608321935778827890065985408344227286721388797491684225298912790984413781204111757180469239694695383483050330512834057868955012545899867693200457638476307633278678985341147993348273147581075467139392645498882577585424374510468619161867447086251483758017842148857801522444893955261987060028706755546525028813080786689489640339771634940175982910477134639747919788121281634763907655763911114969032921817782353753691522058305544104205475977177983232503150777530663277702133599812535414274308859599736833915789536313405962464873815206486358868251482741820108655348787719580057622477341675829435429155847264093938762950233178144477199485974771579482722343912291238805850979221561345494284194253682778346244138277211862361626694900436339496762430576057487833142727334104676449779619587185545348370516483812423454868013491665774447859185345880632132147156386300504203298845937250315456516269537464401660649586316225127175597533821343002550316188330635037443701206425437673971468329699656945260636979834336277417508358208584213135183662704381116837054741170923195161799797246908593947437921939826273345891542725008235794836447480171417914191433147222404683720309678695982963277846295767194899364333231051664550349857901884070376850383776327656502219757574152892224996896119809597255665568571294217817236686015310174743270790597706019298266991674370816464805211420261742960260733362904301222704192018769434740731195341640417034646068652149313363715567294177157625936142105924690676909777997424972417137620963572539800104245486672964110654563007284690759070937638609137131607130090896096879167174294155414361468984025623843325743936289161806107607366882144159721803809336926410204309743004665890805894492835537841985625644492597363681431250875737924433235484961695532872717025472714577156741020132890048441190106512266681430731023308583368579657590391302588307726539183131362904243560463785291045892839915398294172754531117817703426931057397411962595470066896091456098251149496290513065928319437422218774060546986755496355524161559430237852872806948570790607891060568108629031062113303182078424516700196828090525306530708775860472868017388049539685238583419645346708313472328644965917079446167425946894206384646576161059329618703395012153899433395230220952278342187994902218523045203246748792551670291778766797191571392089216317491136497632868816379888560337605531757604250684816599258057199255703105213167015378737188366347154832907371591648844795133605602935218999363872298056166496937737259794843962749256086142187324644607178461559966416567154118263649513289498032302172952555685872247587697382781455030442233276395217198932942692386173557788130668162010120927582768112689109880066647394021471636488771198337808349977170230970548483142431591245730902010432533498358824751352553600554685957524159843811425365009743743476815548792454399759000454575203879800652853119548918951549565264670442824284620391926028244956985208681762143834970215794461316948991467477343365988255619687868845283772316749987049343376956292496035069435961807406230244322706845130897863402861544060320175864309063091668965000394635214773981828721877781842248985036128337003804222196922795032792852821070765747934048265584813665499143391307742156127752813307485291066653025764870857796578584485743054140415996664181348577687758652326001330475986508401369334627739287290775349854924833626764016484366180779273765526025795555716096337803917046938139177893868771198097129743062867622522131067411149608782540068631378471805298030269921961011138373864003992714546698689641999005829654964389844387593448010246264216800870866007699659178957922653975217731237377830100100409016090853921349518618757280992925163076568842306016459971526272347552289696261792639232382505992000570003239763883023952651853923176811823124828135388309650582073182806867513331235018699612079008007045089737121934694645800531106529265214605403806467248747678122460175000896249619924824275155884925295380535406387416826719648256550631083708168949282124167836049512128925937848469947597733551317499762018163500991403445211794456607388079433122028514854909969816767521313084939222720138962621525404994634124544934296169693007034023590926626572875881260712770249277216566929674380980433546133840748871386542328120090893570385353912556292231276591590552672993231410336056730970846951564964442235576228505408439088325359752235585283807251855821107116952842040906118291670109735895906907481624678797349149403858156191190145077387107946319931595643567711018985924094761692928984691143528618223919903891778311440167983194205352631833667456340995316832629955299984917030951821171111857394535412512249405481531657595902036540599357747687839600760511105645172957210393150604747415646545912005266983035345355568761464609153925529069615906340793478000304085244927509814595835530225318620846824497956481679327627096402074230670445085981368782618737683532491981174538585566391093269246673944268127685541025270106878785682146954349458921783485843620911284927863221117069398883290768633768663444588436688376269003750555932949745400821041225869484495249643150839373478114215114117215290705716985329568623904120908056334183466272965967608992993764270768276626493745947669618950859062986445309456103945830583211886077832113485969773368255448614289809280824275043720491637386811701562044917801255328696364076912267597865546836413720920680389604082538973625916867132550766348127735112859413282431237069037646973309847874092137439154862249281218539408265825399186165970012660551049391328143066253231067763617016106234228375221572740474825030642323571763561895151307892110204357232155547356892804867859936201231751634151895792306013111240321157857868948467976660809941361825994180778423660037144017338504930006574712863008666823042318400181925448724724996144333301572377159693313277898727835056940587144731880840609056893865183181650287898437569002020346849433355990270442853049513236131704198718346126706886852855293249149919559920265451240524727083405956295528931174446444190231936593402668653818238942770703562662795985336998471666524350843891749780289116619351278979586972591637619567344673300279956060846553472695101093003016350862352205619404796409759381276287997531193703177688565969320548212749786317848508434481919446405901797147369379091063711768073958217999287870768725173567943920526762957330599977086764370590186365335270996859473913173446611444364487552676519347004181296122676756904903807056296055790587848097094210933884453040404163315205767322702832329227672173950972007000497411415195166894613949027048255816127265886660205746898814429665804787812297785306424977762288613200771622863939334408049675027637121303189296564236051158965984799733697922566763453466656184339900446265310567904455862057643895367754231588755365400564733596131102260117517144006593061452581465178750779086574194106368898406310218817826312557143411907793626323708414537660593728122993805994183709420046115549128133580365080052835926660625336408338798985492920942428734361320681133650317444144253181480650887854335228340975824505577616194199509865723021955267980572300785804248702589963414166718742910366683823203113644020228696719346327242076028110002028554904864562317490123014636320650918899775478069394654668899515109598950896837811034511551192377731784658235036081671075407786860493689450427454466316477266162285121827865403011475024399875971380232993269394370234761748913002574012224383463771914028294363130672751617892447134510653096423574212626004063737605456519689261344627509406064879810466683611471234982382209936910286675635244634769964593018945215766965263676796035515620799664716462477807648898522259742318863474836694518266839056379003338487027194456509062345242558625102803850305226436175011911890260037883091579383224089238493990236957695287038261285902784330575604398514487932209831499201883068533137611847819016041307362675449312773688163552829022979214251632459393162209777867771478230973872481449397874085384338574369343950556344224411362030307849801138301191121785287745188618100778448804030723250902247177657137749985014680486575161190875127740825031784243541984882692233891340993475264918757721709372038061763741413287444781415929626104277218242844770988436230262298506574812943923962705894072127954417680508652520584252363179062885556796634996703994981088274235137227465879985245432684076379561007708413829892239769126122929605667876152271705031342232478868185347183092941763131737900049436413768629571126376658997219748114699835916211004038512291302128091091542033214046536419916792288729698888708696485741475151472742014063622255006506676115938730851889266042514488712741613727813886034125385740314128104458905624550939825017254645247693853769434068682285450575315767168368942005212128612540216988861394565235664689201536256536487702840958005961484792977019818509018918251781578446900746397242988007553139669070639991110780217585974206630478304835938910079178468030413364492775349232936219153394565360929326669095997551209755047985176245760660457151530551919597330548991863365278922360912548107004459763681861513976651676949120070215922425170654274739867725837296515418677665303239184598054658706573152673828322472395062644829450463326829160026337867706568344975999570314930089508075248565175553650617168824835453739413184107871556913490108092398245713407432230820633894172016015372854395650492176778993278311163172989081243322369574014453597451497599140972810271252495200957789835497607635532642651043327789981392765153053460549599967412069633908979946247519010970614407089233679392404406284940698107114709786045235955657111164882376828750917281892153666938132114247141564377749438549516468867773995013063125011668422803547101196118252080492583323476901924927344119402800741283246178516480781861978736730930837069797736070840439681434785770859107119752961230492222301141026647082470782999329530763758211271012182125061461573498794117213225803406010076709538870478532101712647457315265376222741335542940226706161961267406939852263858467045516622575019471307576505295251613980026107183551795299161375836214245664491468557967955627537103467700293264129061175617234315395555084131476461252173852672412436039526881518642611169061630049338102002858301383958750105507641194591797770838631019643944341878867735792546334172482339800667408288435699149366575626929937701061446582789636742751594246696112447722809003168537266117891243442318314990799413045123578328519234868509650875555984691352025142777654298380726293151287735830139725828236270024593034096083927508602899306017686064833108019820227110944076689915908837264209346228661321411486617906175012057797746114062293449057762205882123159155406617265297721878835605980620324566884311059160910682276581765359197400264479096889162813072886216651385668333989681553423731080306739170547234732249482917559195863300606599623924966020357593873513881336676794293304841641389729604009134322126568411062266128232751820123775755394885104509354006289664090154483516940595347385400732401984064388098937027031770399115211851829308447867385304191017234872287252549914269886580023699864367953877475253539916729011563231678942640270962874435977116703573468448518567526905188793227198310569480108935631136585049425248895578203932544078265901032044463771627736051178775386879882738259024686861389989623182858976424337409191996664651651189357024867281315613606850593161343886053574879085494151724141183228682362515915139719671339052698535401825031727431053120488849961359264836993303911711944967211814583405062549530697455146421425556510815568258138686584886382555829940955209431705112060310179317710954032216283469183396770523816444486643746752832676024218745752063513341152425230498284492415042468872895425712186203825402246727318982687018914287607823816475616821789089932464717907106548961129761945646508004072852753048503184424016897694629172636875019841103455064594531006624520115279115725503509836116178735282255304979650555130989021571585423434498445745877920758249640759573541221746594896451805345883144888980955503709860737416582048183282523814236385431703405558237636649071767792908163839756238975588441521910290480259864025123802925989259375594259253563830232113995928159370004590862934401528007110909223281335591837349210745094923151532569481706948394731614525508529921620167654007367261138527272096626914427476180164290608018209366309565015738819292491206006025085316475554703925187333091791847769245751912865386388306975618392554529033771413839205507083199892243318097186390162653290984763373239309644153471958636320849130558069572332141703150248145568716500377828495137828938354653137913924846464538097106423560874602553381381481777688490162361438015144539482310190005505267776418707187490941683594634402858565905014096166091018930266133820989599390610941620843124998932207146244601085576851808205060421073599700093760346236171980329089813066625980269105169147352596449502130293579794883229631506321961479872093914842474589541981079256323679898876934088591630122840263436405430487991571258073796555952845703991614128879634827571732681541748760457014920600928734675759898240345107977412583435124677394381821834739444574547520121718029790986060733127183879446466276068451859657120149760421711945664590419579053324650634567983460862840877665241742415482062608659024783807948620703015000385053602540997867302720949116437896767057646514171744855401557893540221183409342564603391669705104749752300932859192564534215939018096238995715394630378327741338476478723950092561222418372432836161489981186059926114550166932486335899125961055901334735715756573233810912215887396239255013211503137185421711618010975518239705770361068357568293557414535318668263146067673990359944363034065160431507174362444788134663700918258766902303802244633200225206163610349940942018654851202989754883445358779828788858052156383718395256656518970789685100180297780856720283361799678241162851431731410307247382128097898564358720049568675063832705830567976503488062262995264379649478670973354826038783189463161482576404604621172983209683524004916123636167235299072913641133718341690465203122673859615380988240997944910637973184624466302357593818693964782463109496358909659976728056829658584870629659634956427134440418545915320409770461364690788576886888669886985614008007811844771875013864824141624160281339386137116340748929606657787902439966889700693178162771697066362617133291130565446655288621067324020527094478599061861385376389535353508704690402538024731985055545916341381680728399356100114848528028151099320364284217609824534101443830714184554840925605993472589742421868753182814243513084236052972196492228873113398430780748078750271779085918249718616902109903103319273111982705453897670156674180293306055706499675258521037429612250694644485828624730857005874889591679143712452430864164349060568244372003050935714262142443791498100414438899154366964681790001092160288321177924415512937547792958649359975560175979581465593095029423873581392979924284608407747736854773168715673492495187502321015164905552362485189997233499239787748505490987402159023371717709813452046579706874795819261476859839282213260520971114364919329424859476101359223383541542198540030860650446143664134901482905580713771124458611220061638996022300217093129921649939584907983647675065730139991027062027203133127403488034233373586630794505189352711323616301796585278916443547990610453324756053524302611009202452379549819927316767686787004304138554359320259700170048385964217814969193070198526582067553549609652125312963738671984712984315065503811204545295574952826527461045559622694137765203315205003903702693956554352362429274329728831814137591612133809057055313559633992849308501761511096947279310432566447307470309166896683364707757674262454319674082862804594709324414399107558859732625929314607618307233478097211526577637039696168498822334446459386476387960366069606543566675230356942481910686619868289405167620186418039633761041168663929210051158716484438091676273820427287200810800883648155714956932267575192764265770816278597928814498115211242510108418613478771741811639825503713655033332755962872845842959002842319356316919560617095922899789593632307205901482814623733259577511268795292734100315761698606580532428691625176547330638271267978166835840072655986773742100815083301208966271789436207554720135623268838472850614574341426780058337976331442351662818112641698316533392342234491790281312680969632950437601105184642351058411629721457093562820338710890369783275412900698384469480476058440381876464710407971249266032827893282820921144720190386541118061876139336630723791043628046265160374086340306693397270817321848264069093216357310096758968849645406635348879320735506105979352521724543861117674137980478133831800159165088774327913863142573389412586909784591162228082804821297950572590215476983655056708418813799616670441010506566074584715234174219875853130299242476274285195405562991357879839391805756368257897696317123491114915590943227978444668077134318352646044343267976699653453283187090397625508733414424370008712577177133711132800341170056376517955861227807347338830692166455379832482663642340857827083723839732361310273385487069040437897848123211593068592612583563327956247744001380505028780646070116626101428597808044319146834137599036904859267635817517457390767551441890395206593985590302511515958523859669766347136187797382361758883177133041023824723002494959338094231284139736861109788447602324149658838154712508762184666629554200258547550083807680322268189915541659473482187833965269323559438905719366088162384459006232941497033592040561364811577207676076424606081945529163357320518747960146313927677280749483270455806511825835291553317272521617591849039436889839903141296431959523432117032723046197893206337835802446373519548974439300541460689181415330654048747449523007407732813304614293346830749003285009571961850074937384229453408382010416108657167145791369273957046512964147644487125374876823330879673334303277096393278381911518523894094089761140011713894862910616474816672976368033432804832455666466926545778071254590878816587038651878408556823796808964382118603461824205694122331213258644754862252560453101710481457272652060554231875085417500211881082611884808167016795313010589475836024367923443473959948643168960353097156188323487310048630148743538852342647236758985185384796861536338974388926613861470648549474987051547646597508856331069393187127573826127436663847705194907466151952755106539909186894397510097674267894371788479493889691162103270394948564670601049328700063187219153027637192955514488148104186147735882682947681757283643275124666461724395735160071210722259471773267881480231254640097226401546296842692162149376682605250373477932179560156077281005764401515368720786732884450572345682965490672206011999989807463879954565101148662671761397583016308107998584050760896507018447764498774760054437671923868408032369586789014767977236312680261359574017957471436890339903319642212327153565714789270964382089344148798180333081648931639228782073852278095198695952169043373387635922030833646191733650483860993570329845561697951928948316108264610085048183757756438652885344374601090334343538504207005377912491412240811018818316642275526199922770753345374661140463025663343830416497433484413055190936151650981808703851925794709714590417425632500566139253454660376724382889017720033320037791817334760769075716161642647653446817535761804588773896145855845496815727414504089396885320566435687373799787735507257252408425374120487466925118862040115608849070244929362259197433765073416295865993870156613346114854038444683097826629083793387897743083894237732058237964454146094796850978550397969370899340858581302952619321934784981180669900359352683762069101343500458213335766584726892570841510596994991364793134333690386370728276156580202336935162609619147087445747626617909137732615938842295685326036015215548969491532108764894550354770763142908399345368294185949184847219443743960130136948953919278659754687677499090633619264621471736002133311331590188500106023744698747181171693193182572813343029578105366646110298767534692337724751912488312281487122324586114531735296476668146738049568448554675389656551091207824781282934881405982692289274341627995865744532022452426792309451710464615792142123024919421234062094848418995203126634120173491971097563120763425346529281920973295360417744707149972383576505211902853823937884305984575324179633024680397321875755358261756705320402982697699847862923770097115644048158030694871955346759996812993534906362115865616587967910720752550494252213324582235376713423327644893732202147640844159674252434598402569445077810302931299842959953044388663369414839312382735912089038465873111367503503710580758205284537676498761003012437373067730395790347788768005925941720153934341572133670613190353877942362163837950895169290315814235524814170999030048509186435877269729220057750748896850276540194049002215693751899013689928413343344954671976566528769121692483161562671804493137700509751612269873358022989921845931041009798949021157019676048805568638029894977357660134308120039084424085823366442786403466220646159574167428945531795827111050774547695540250100848046908536862568790592435114864658557948487571413878552161637017543114026430828321137019255872632334283907806180777702649406569190832998080529241687334868221666253700502044344571313872267449116706701694725020625590293634059961260319543451247952483358201776028825470944747672273471448199676965322820276904800580912392838596210061825100975167668426135447537808720327245744861465055161796097192170778426042930865639183938677495647879143938610570729491483480107052791406318641827578198949244608411934001686961405219021460870808235224469517272322826753045375417887537117138221633779683542365154156668628369174622682874314455751638157843767886059968305035287579956802223153549575858641079278116199095348140328075719908066380242212310406197325561112636279676842168349152503974184990644007454919292246814032714778985312406093478971285181866382186139682267196103223601851232460398200625278817424890465661491042662397532023576556819032264218477073398754983087601715278442948582502380783007792396202054610316930013320800833532504260955813748591649790140129864766483636287568505679967566085324123022967106481107595856323575630070059294122028999088155998895533312845599542938660003094479777043556221021741035961790164141913506499423747249218920442515845699358313874966044870351399054266564062783616098111303136258305445132472434281734804086591644409348451474423828196797307915412623246970253575645974340450045752423791155715442403391079467571028141841330335859443568148571182836167386513865212997368996062262688801329497639309359081854581758554083681426787834587949559156494106384084904755931803667077850422600410255713700048564849424799713182969741552287224671988685990409164261638105476947664030128083359775207183180137051742592605857678224390217027945307416223724902584785631690778338931811635836864663949828789330478082867937902643098554461977905127167617353925273233162522940924641354037501655650560218578328864905460342457390446914654936747594930822370462268065250107528752046200502592937038176337550207739998640385727101211277285031595840032644236039656003800702669050466662687909803685083253538680485997167833880754984987736994716466841656222019923088655119237831432385356334402317318247363499522191282628598154048941807221756772253116443134094765270809175390001632863972980014838348381798034796389882671828940498189499606212885557658222191981273047950878734286678693333510701476304528374918136945687914962179997280144274776849550920226624869769667041312327294428427988780650659447836290080992440295236535928790945853424714720543530273525522278535656630255919770452165063698888815834954439006287913976001370307947100077913544192274886381668754261897093188633491889298726670632576291402881633362906650511167648416009723265968762026719364718613239109527902949671347379697063019075750347024109959405675132059287359610880020107640487006154936673094685213164808005665979819979451212695539304358986589360423936150040613140039957592894673475388047435248473267622594951922997678507514376675690327508472041605392598434915104755028785724562876742149288000527130485981494509059779858571681324070106086426719414701658669047338232182886023791973421005351281896044613525026640742128749776816990368349399364813353092582289714159135581280276046966934179334728618485795557606759239107599539397668683349752401070888235204947869337354483140674261203845640053318740723178499875064295621243322468099775571913632279177618794854196646181602704240069469877980916935447132602314986012703606651913005234719974859350436079607237368599834388308270930515883680588719923732800261877173973475649634112781015820507174481881596174884088895985075796128590244439776167325521777446705342696711277798730753863128320898532005276136354309470178387932585605219134481882193451982205783859615707159158830311405962027474306561555105038074725807127399271322945854365210322059444080899017397597263764508635320561082033761278378454308107683795388063675293620031348998102529482662380540045570361282221319644730696375615796603568783224031072877509636392114489573930407942121712461597364803322111030190441332774489792802349823863509758962613620507519434588540052772582695691785607314860211642348667262825689610361806603663163489807490929059518028552506797344117673530107509763551745897842117876049813922648997309330839537576730706241567184405532974958468000268287493494793460326012774539144089547045226003714572661952855425553899517436736184289232447168095705215951255733687451887481471378212827804534746426406294759641152071352951289859062764268900478486576587373229397085738204791474537545031295462799658332353334609995155690621126703166220010310015922490686455659100321869379294567476013278747304816534770746186458194155779228379997498774024547851259769996999752150273329024439563860314672094981286975889987388785866228733746973234593155784116599473276107237757576849296259719898779150074289574877548171399177842466756244727636849480095525303160150770180958018325509477701777041075613609945825135864689016441089624841480057884345516623919718452283040266662814495262068983068007965863972486714352504717179956675948314951354924400613384524166177131134547186053045699879878034054745914491177031068649679704940833828962320741812587072527154328877868624625122672412778818631754322244403023201075222131672641989775470338196015914183973548247978615971232659393888210172393129584911780237251786323272834774614471041713967964859603094561470780928821539671873968902696016617483016842470525465687054922563141823167058370350268784917357853347149691489901154478182156593726706398741549747520102600482262365585363561285496654874937427105353151712851684660368164350602163422069027623686161682393536866558995924365109549300182868236221252460930567912968670800076073247704537477645070677646693931771666950268875766757223238979604468998163336441872401296168772601889962603276147986147407108456523000083863891265107846061045978851545701247994805695524916064470626677663512735819747715166126782580147906138309352940218214112742711601664258057156392316902001771251576806771364537323686385611667952987085260378283532513074327273118727762442703658621917082775717921906285926729757436839157931368237291929285646809540435818448021954345325792549299463061445147334632920936528771900478240787121704355402000485206525627729839478803247416575026007892433657782536631744927718401208362660813618716213405898318273615920364625039930434111200163867541392849040055230958306301530895258079677807336360321671080541205195817881547858299526955985283786982551128502490717846110008816601660444445522752468338928410364068071862421934684656890032613481889114446184296939532635449254465149341114060085883757077399097381370972203850777145273593236367589108871574307953653932429556109956730337140242313716479931134799601615102868004523728558606369019409563219068583157328312875191037924690209978698497966214992717061375894510993134105805286939949637826829266991229888827869420437289403460395723058861548072630004565786028646129699031242909317463910342109132729543106313842301519115182636349411515963995489448768271611174086572405924223951716003322710498236295292569817733783679118890679443695789522542790750017178877969711080439219440319933075857297927921371061699922209593906986785244534420082820801949654448035498574368155700105712584738289500052542521310984669309159253086067092161240382081135740538641013137345655750309400701516623995848798435531905925247895385238521603145471207321976251390393800946150979738643545454261487637297556685936661061144947089434535986020408005508636781561041295283254511468345300035045627706744554226956439475956622218517717687658663272051014253973528498163291245702610370663713410707687254003978980816703357266341627180801639834259859670129938068735223786036333164823787369439310392950563907927003079701447887797481688467324818455978520016904864596279166613621548519292583163751636412158471237657602054034883176429511268325910864822072598811271281622654786665414824879376645162312239140151614621821385156388977400856942168848844732104268037506683233775443615187414411235185151130258760400428697089168730235686426989985425598909346918971543465797950067802397003023045937920803305090131144843247499724779696557275321417874439599798430505620768337756562118488266307521165884227977672535591584122627342055252525511953982807662490879900015046100585560067365213230460152690930366460221395458539397314583011070808633339897217015906023913152404402165784740774035644678062007772047103158088008392332627933087826102151105928560871487997676690933620379840818646929375499773960360636115544547618603393646395558905306265562979121676007318261834121893046606396855143946672604519797714156342639386889769786160200981937209149833547495279431658023460756640643777476612751041357885273252250540661064163469193588166185079897152967789268810203937696657498814691403498179371416680584944202915385599651129235778647617761245857106596150961799155818276894069525482802121395981581231245987891510133298405130716986831209862433147292947826392257699709768422394951141039883681330950260249359040746387978718124983187250133536218362471600646060194051420658738818823356210097088537060424829029279329643676876300641131368441885337520030941359191412575226500323993800596643781026795220988177290345365910192273492877171957160951176476922989668124337812657334261939157740778288523612765335174075543248416702462106284562661843747009566151052509792949205737564454374043396137757518424119529516352337780374497311955651802511026216487295736931705699606102112006487848253556759551754254128164588364873595789331896466634685883947316282200900005570929320857160812487418038296092607208373607707396500730900440568310464275242746688377449270845825441166166785785880669017277559756568272164251215121043222419796670716103276585465963888865039200055972624411407665053343922424142059990351046732280991167603126053310264019882420211896412134159665616551155085696436168030585872046880309206669123286853131923995884326668177757051608988461586405395279762699074265082943433072340885667203989075856646167088331035488031454489631874219583591006413392346979124565163638204229724760405512938213808193410328931226953525885757572990122131774075669213266442323025079569530525226470906560593453305148157446455005981410402510874364900131410589685712855697020143421885033748928364449231968487380471552976399465811741193240784741245959248353677524157374106150361255613122002479496228246783671963383930726669960416181666248547399783305615881716927272791991649634480979223564786450833479749504173688568419274683841771109744545469345931374359759618905480779075338403150509270944173955303049488639218088299328330532694387043220428740786350222771234832692342952593143835064523645248642749439343987419733962305537710640195184229464343163806789492187392002497129365494322512100679403886045270576747905058027691218139747176886185233974571703479492862988519379428958845038456408101005151272119762443486151805876540633120968379467465030006660515576191271546337450885178330190463937558604457367527526570472173469269195189560276450014424995433486466446365034655538950585505822754806526678283980122074440194857158230820685678679049799195401603917987789519645941655931956985812533100505190904080936239100532881419431773646791742258590349314483346454305751591190766474339059032581251571867350296919504057186838164757500637751472492105672547319878734383791257889171406498507327093696452799005766106090695238010402598110120819652281128978588258745348783256505115133677938181058330656662833546035487417872230329712519112294995856652164369024398061921173790950194840246945191233275184739639025437003938472699480791991455289516710443468090858048789771952722099598974733065363704617532114431223917672837042962323528580952180746115375003032035389667745395735832300191033508109652442613674980438571498019314268435268845463573060155536461017680694642633953418095819303159544674583451318787593902965365356755681038027894344721060189151321644365032186559436208397891137748719162363208786982796285425919762943814507273637689315666198744753522223232088032930670633045663418227968360213840089464976007692345016252385443861309561666655962065539666315193434519791768307849145752944474263806270456171368189618517769607645861445011309334270328803465134795861194328040567455513291901910211368194861868791025889686581081563974161684685544801922776186598798065202094553202489436130497536881169661192490514672215214376498465231239975340935766625270889053970711627081378969931612813145532738471602210131001481528936087447439920671673222847332685561970484756129966877093904043889361594791743533732396970097066314663342781420035980678564823204174575233900748062466674043724871279077691332674769134113993474441037286898901966556688437649229918619613545930080514846596185175813325005354459423870236943232325735408096247870953168500660141658655629138945630393833864058156317968549915963614258112594583709566455958615167740896104851426639295309901468872719002074960490125233590539617933831629234803280088758582756572834552223522793067442091430515772959242046364394964057624405728685392086735077370113602983645513655021436858541221516131334872068209856993100922554028321450343399567909335342064842090788621127012292615761094480635251482570919653099096790368989956071074016608664893887493627522434421699711883190032627124008036576797036225942493220228717738931547145142169165458116967732051691909302706927260359932974823132551821919271442555684576728770760600361991215289222031217939753759985927853498648167377316174453850792984974082988814787030341972162888525972104926225127540922178990722223731791096288874234604820074933356617660806141880966762307680160365899405517025395617334818716348505494359809998768941246576889609754826137780891398041995896315542696118523285397059023267158788451801600572477939717275850459837610813612797677181211569575620864684795532773484457631667817213188766902426469131008847346008250107862754719278892343545096206988515497729933198391031244053265895568876762867538460946815839278152907042334405425844487401913709905726758917371924663080365927784703519869856761350519092461226003589645128735139749360796304741366657064378456955300550432495971301631280664333436480576958655320669054004156661298333049709716248212143396742876967342242016124304500094745046232873088069318647070574715589689440684788351963819068823830203555833129022184903186343310755643017086842828592705541867947878089174009685114805937852081070110189496465885187224661164855747676505413818917463965685866645302281124584264543199556317064495092478457474728079632720544734782672123211514106861723442125202582750601409770255725780932593964111633641428558154051522109814372099764032205689891796942060522381061374215798817923043288220948952064242596643038421012613968649797705822259742265424895632829708011800658310183213563878464531907653605192968915406798634265734815026177339214362768318291858938073894932813777303083804194014830862884704097705556504075637124899539412830353603043987477028212749994551438084838049813078585693297038580093344063805674022016046872234261087937884450712797918518960637752825916651414598082458292114045733643337431379659952723592190370404448794741051982453864407343398696614380011517732803671054584235614520991589250381902940966757752219984725436277533983004558770748052604344060826490768734474143332382805666469810513487416726809461651966517268448700397046955804688051635207235694765412121720424913673190203209129066283678147931838127433952882527971681762884225665623400005998924268857373253608884253538134609578981114147894409819280342352462245264141053991966372991708355318565768753374744025745267519525896371402964546314742161045701537340962782380978601575260537907421165268129789217200736055498804560335238700316735915583794033363523987286032850433569203482386117189761401442515101177588577568084597864726245327901040197203255619777059240257383830941421821743433787325432960708874522137259188759811632859683472738145658476967642496106165763869030889243133034815920335582593579571989816049407886174147608614719482965133789587944604917665481713449667418135154715315206958446529138539843555076365007178861906160229474144305630715991155307562992051030117986256318356692349117839013356372877168724300100715632910693913522126177746104063105893539973968412383242544339089011111391839513784290367574477271443058059087796205647944952161615522649732974653968981242541526049016170117304981460585291846309226512855930918362629630730832155433279630374328352332371118707988844176570910004212459970399001735234548874129831723718209349333172695874590869497951073874976858670236994223662398556447397337158366891408539272000302601718940299061726328953107523562071265653933758506268172437372773628312520088891573909016875223573099287805371392990145343877002722081183798000703767638501101745062200392509748901335356436625115220684967565039427382998604511824948472537536624314552434469498586593546863632356612623847239187020752150632230926349704046864798780540353003724853928822983818273524063899652432906464150335630589769010404888786496841770980147256252082530745704031613459119098915294987869049150196414204257877783856136715674743666646579002066279259801280621538032338260849194930692574679292909931106283892866221284927478226419767432485482548945246242570787395604058581277446029624324096875752358417809021263985109996949915080950089729389281697195718624349003112425917284198147282423570353001224879319859962975878052980417410877849515241486390115086438109569899957673655831514395124951045537224931434271703173564022860473935463942952930306814047940322148719010966207950824965611344345919544046199809690335858923284038757178969611260714376672724760425077060520606601178029274312532918164911298844940451469319684232465562870510828600244817058703162910616327108054529538414509082199290303713271758480325852165773871179783503264190825615798421721398964549843044785638852706141107830038350559666631385825482329987050468541136994535568415183696747009868565623631737416161073115539660568817684312298461860401326297449411297459757374013983962897439819834510159160213152146833503492284149977187803084693205519515328492105738636662076945813498552880479393604625516352384928425634221521597446016699813138595576939580369069119944171456528554537336996849077937305240401618988024598180972861213310382022868550049917093803179542565466090238587024953070995648315734909905553504225317787015306224844769289886819946260426073822229928166910027391911505154270852175659576236347872986626224402797461338502312066702736213795903196169677643085542913171437720826222079026876816941170277246447486460732270022879116624864496745833212375801002232506972102704272339778114456979743479647948424724011768833453921995262990063111082065140503929275431615383206844678872297162041920953028922469507136505520118660207452327605950241715394513202573187694509346695094827265224506484660029502377558191380775453922135304773371294447494102989281983003293096831453641637909145479557091281326072505415556920173416622987415326722452914311606115479778222406301888685791103658428312920163441303925112885238979096594829185673332070340293737804284898020555589807885653989389802853885613230152179279814912946126617737719491256276276888401756650371182647587378785519244103253983347251232027047366000552503734650247809417773863685776857087099400275145533894434108429000973646865152251822632609931603406662679570200849186759261138019947183766816774028232880577010304614013123984300040893083836842886139681819166948276090711543932131582210524721299036747800546205760073556113895428185300740196856235312905431134708492330217137518616483463051708525149973728658084674562375833751393907612898091360552808685517762649119280114097832679613483453700482739878915031234531987869703367784171847690061772703898189639363890992501231154669020391493235424845701378453207748630286012181992367970706293669930489052905510133642880643170091266829792527269855102699190841258367144785511881235965471842619666555528116236339801991021267805282064680651948610130126593499099010500082627682724423166848656318880348250540845298675388722118368156324433917985772822625103762014464272164407547237719754409941481884123668616628545962032625533660242204408749094503233405074903854202702675397537215259562822015105496307067244448070861463642242934647748989537703097217822468232653490901963566747923870972485514683934932487287384571704022706758090283605463707133701853426006666147108684913030383108786860185605329299088096649587537028787908017244139306954856290419492772749965381742487633364052682848915763939405957069724922176930746243856989246587885195648833412865605039877961604234299358524084251801427480214698989844455795772312475619818258111460394527838736352223549167302216838428821407782254027287479620638414899808323500666604146492466606471345279722258108535597747422602093003901318903709304045762916341338309444295704216951195122664258674730857752928139127217566262085786048244081216816903774660927474492470641297793066703662137243856292618187636475120345624433107103047095214900269786955648511615889981933636333681400412908956271049885222253270094813687171947153837318373452861591480511610672979789337623699915442727214587104896688139596805684709594200768523766605681793868364488284644308871924229052741278378619074599370658137614111403922698795371279217119024728910983495604640463353411185627942158581697690416933148993936801250261136088858670726114960443215242539906521860029147455476777864818973308573331410752874357860558053160272471665863983915729391683786002548754234802230270740012056398748401221088487663013252354982240873413942276231018717201547396602612042731476378807143611383025000483597687438340591773737985384626443960987973648522623089379131946100265975654575700724720914324796019362824706715391075324000676974661887139689544665375233127131323759400181649015564744038727507500014612289800836923371359184540242587108299587184218490698397884573015865563744965783769704476715667037918790848380495321588140691223819186895616867990763499720883615093215281634691572871214299461277590523114970575251267693582309436274134748601036057298276329197437648273021601723541885076007116480327215048086754810169415714571577670941197154138812930004237732185222835505115056651846175725411751410703899224037281507673779963926923164256020249427587341811706374742161395099758303250598406401774579067559649174878635652733563388225216964186150449871496285398229401406723610683241553193347956249766406923805265731772850712551760736631334528369211877888283892600454784270567646456650263198237223072911861404043631033373309133886238160405398368532654488489318513180256662198219598057249709055738251795614373300832967432634587275230798423781161844143026771569807308778766714013145526125710823643507835509419897088892200970593791850916119611380437366563502070798893953593750605161744801381363874477986846875161565442939493890104544371916950018992113572160422085302941073970409033230740066526798116688289980685861446007721772609079647374349410821352894336461078744694175971643972451132154045205220295050266904956247088497982575538300668951807480744873589280139594302408993501051601035144850961426088556421001131664685624934718896336929906445913484016538103980522355879019151271976507079058126476365237386381361715425516306330669315697896810537351521196332883458291211934968556137370295054911251930283557921970845402313389577469974129857907038379894215351493177917406884692835948445900553640826294538902397952026989153631493681742509750138035502206054780410104131959687580268386433291573975500410609223276081430087741084732922999776035169280519341180952274061656433785798652058017295810867609377969155708532116363358753814071610657249675488785536271672254147434454802126313980370561912986969782576423502013958448503729097323245407559566836515032482310670292745457238583536502895181794170390190983444394504816646445369900545722685216637156793150704335749299636295180673344995533617833037022544979489308868833001738161138688194565047838736286619367030363919676642913858985734205083896868961315281830251881997042073824961162572994514223296663710261154789528175660236502044814444575640026677931470415993816188537707663787615990719583527399682937655700672757401653374510115094969130392908264529210706043062305210482595180490150664462513160201502728512862957179839621501485605862587997261350256127044105558615953355415426021617746729407275609563794829938588562762142875586361442686280504171865373201046639457898551018969637094501197064737584448647076493429214463572207279106045477053035319221700437205269626067114480142531007644058777808777852970297834060425193092124365223919181655882843286575024882682966073831886446577924921012649143367806837167456258019812860443357195526199622810069154336969051868185350401421460188487455181753413970087069901480693231364665858077224078007354116925634927055159964609954731439316842472318638541144646937498604786402472620102289645600543759688619678867633918312446720003575095762863312715661931427963236157192616062142829380952891550526540411341316777281109828734462915619876139415132226229838458442497996763232169626260305180566528964025331078657183215906143362977117236954412887114353860885576267406134294819127251635926244267319775167199313437177999368391405740616587983793144822990047907890461334157528757270247988170934643489180974985304576776682346360414497141000097150214606473184674456768562887351775649650658526460315387327052297901789845523860348158835446405570022495597362259322500062805655984662760344214978072242024916510209686466296844603878221681062836849554884368142605856335867633844857361672598094702802596494613113277640073448980607934598774888422958571967705625254805322669692448269398108078851588183223250854949179013481813393093895722006568276234631408571956165491213759483169877795550894436494992407227803779300304543373714860509911520538556963884524733478722241682072580331181711923305894207726769944863273520288668010000398073266934578329518353519445789526048452963789678902753333656939886083396377833001911125634231540943342589137283588102208788902885451044418347779552271196514936977611770732726307864397000554312974716643345888168065394079374660045451950287089797242282348580143438054725640110552470697032393891141778663339982686004376021482077780519300786441306855876182911400301631055393911477030543070991996686311378685347247697946889646104615883113996997288981981856476583538479940846720152947989781541654037887519403487174500806561833887840519670243479361124842872344969010212715407881468721200409243448248827497415140249584974454507551781653916241348781109964689151385973263673393812425810050879670868795496053942478669917561474170650366828016740184270309145330164756503594882612210260152680029438817163731758580896794821656779811986585570935601853588170655048375694952799110690711794173309953170810741273727222666042608295444853054778151218383738015760761366917087345919752152051747940030530405264116874197460938583321023770215931896856434706060700125356164811441871991840855362054074899886077018848483907879549916893790415486348313402615052899861138319277989188289089114141151798487323199240674563685969970510974244872391960054734802968632579492344589394199670241540273926195005736696990518005710082160239296550842589653505329068986237507297399030394961906970801891928333677911001657188614032244159789835649579408491363693461461505930446983325013893912424600920171368105863836470538666604281979359882504566619499334649748113665253084103567966075736586267541149693414265692015465994127121497219791147223159721847583827600939474229876230845902070985045581210383004738430883667940282744776552150206749248597484487338598818728305133924449388638186017056094391732983272513191999598341437681894963474674269022534637972706294816659450132255904105191023584204261811266848529696242916708392791642693551810149216201439081178304081012074099575650076142386451354912620031800856191774688888105396031134342558054640022727373024052950277494379575714014094034690828296324521083455276856128108376983686118034314076322310110818656429651748215757419461009673268170009993516808854486202578754311812147854219498159190992342795990272372579270711549857342286120412796233451314117723470762757369903227301063368224484895112429727487530598997552320628174912893935443986579974834435204423615596777174379720283737848337803154025619976673004212688554425605680108788078053556124411136861937546118904126376265969535176353346575041726318556851268873665040849898395781802431953627017376582694481913840408167630302198257994450112569769544967635199229183886998010445333705623346010237153916093076660851376696687729121393736894413176007398009493012307706065046093444992658918179367198832019937838005383569156816708834941275904581349866777745084055192087011775180152960751348313237755694426495032692132400848461365888182083117647206224053984018210678937557057227277396048483225177306058370170617804788169829052660762950458286732897045009081453415660949257027947992206159648820951940848097524926496522692676965042908900167043476629478454861645298517614466498982974104145069137609679082605051961857566175417291219989040044511057554129057355732500901948983863366864127380701690657748336171362220006177896925949408438928388520904570384568265701347768755901418030647515088611563976879592455656164460453659887240549039994659431697700520751142146365696603952127568927982321841502236750014220923455095212603483802578244304762434198770142683592177672381790912358964059134516599636839324283069403538223498953038530199654132868800248724419841986640903485498166824138502187229965784579398583879512198879216624830580136012456743305930394881699252720945251295657457437750192411417952235623552154019450663770311309058091471532127510505308016778081093672086717555471800475643197201344586652468158671882249673675255258911027181180384436873035056209784528030610684236319652379033155490477448774498754510566171094677370204811244647284758718020497318742057797810514128892136005309066111000525887639140650446566450536920596262384214796792869924321931695432766251073440209922216996478151259864583110043994154016177444773198939123891260346099464896921544134962381328660344436314237367328622131472206351045906456506007110846546293426757550886574747665940739859508753603890625335045459431074142115561073904167533408729174174132657093586748547433915055547644375348109113663604292737372256909577404247275997952137415829536974267647840285506495432799943473331361478374600746187632185649461709605791142973392170299309055369057736288745193477331454563579554749738973916244616934293020467751059403955561896324869390493585946402588830116175748683889925772273391083394128164321278721195945663691356913307498975867456885675798669156524128533624783084720601079564627337518452659716247496749905028861267976644647011040684836340184218685334000289595612778796947828986364963255290900925184496078611360527156835881664141115578442920929571695650703159911563208583485510129350681649940492703453205436187752511339048606703332883339697736586505736901862972904968679363616256767835802388835910738504481819497884505883652091893075167128380298668076315119019919797895386448297515735738819290215294260264929371500423154156181062907616357464283353910072751161431466308987136725000781222022556288533594820890099575117584917532139453255580762682238952170929753066113684865687504805687936943351130931316094006032647179457522943082228118789481992447809598204221327348025538656453879504701683864449792234737138273762792385543380213840297051845301880997473368179905644771428139689420643646402184492165730708510377318719316090660928103665508082318877725753374962693151146824275544749950063737952837533221763976706817125660800356249125160843318969504574705570139862094278356917530468436642138720882138233532884219711988081149049419492168168803452539954079921031454531054322779583339216872049653190217534351074489834340972549002974471620122841846401618283271259981167612781963062523211387491769312151756568101185466500871811097235041513750670080691679877541096072834427525905850093261881988479110712554717085870226942084548886011468710718409643067547375879399355389604666437543338524061284827972915705920441846609321598182133971013834926378344990576495818318312791274685593054710703814500524212136210188836773133546150698574417685888616371044874650229652678902081227374392837127087392290660993212516969952434540431781439454187472869272028973663639934699831513591665888376082894489213198757376811741917867037126029326793345114946715610563874541013395068438710558927095209556870217552586869163617293236305782530737758969408701956918535982288952228528391845143558136708501284652609350075731360017789270737473199713991076360846510676331734294662851799022952639155126768696131887181399956602349068409072520221362160416322871575627585514600866374045102048570338184582509862271058394501790356158474749822491466278194990009051587623188180364879830348475322890840646479061732255031406028862869877752148901350815620061783559343971324151380425423535689503757308270570495928100293644269735225475289596258491989605467306816067456854611965754415681283427208349703237847591659341552589676989903900687244728171728421869753871827921196607939551074626384105695293062620828015468760486560272818537012742559205507121206792849756258923862367220269012583039702531071028432909283937062972735211130468892269556153388623854526661077959508036602883235633459540145773200596232358216568415964999755692365543606391925039154651053172479990947081609661222935028727678506863256788724438981673239121228214530556945235988614604219826092951468703679994483996128738699873777527848929326755012313336422934904912009291604615415806821160687373470727987353833824263099451132469095286443576441556366112705685309086519407780741239596766641055283676149175237020302862791859623088481988532509301579993315056281044618837692127340981993782642643123280785083298936110956344455698867175866395160414715272631397844190604568012576087740634405117979654548162350759438245133725335444104234469366646980212896093613473343562861550062704556960623803450965056561723443605174387435861895196181954647276515110475797543070388349688238751151196527356390222548783604988241103647821424650489959035910729837080463928908679824596839360519055417996594598312186645992532445475011645076222694764976750839740494934759386651720501147923844634641989465676885991809480203154321337226853072487881007923577743762529956446189512406345878453497887830319070585007738312211944049053799028680292263728781129485038714118229104008057608219149905974354873122687107556500488708964509482034504667599962612086528493823450229728731123641613179664696030352832923671473249790227970513548193896054943436900543646627288845880652927313621499936651403286781188728120225809178202036403924647214313430765448597739143526879892807214960043224499987530890057758506860615372845112334151221241301322720625385501047406348118620364113329340926434030363025643974267759210927224797024335330737779843163278264562276081915299895624277280501102916422049235031350828658514097693192926309143487623969730985595759353906326561983011224550182595526425198785534171637892271776365911558659882579567177918704554831803035374616400500658922232739404675988335258045036801259641918294330461885682347903330669412772715906512946053622300783886841562092243966118215964553400102955765222755800240572359317724740336311714631874497104755114317433889720848618275801301863253444797740380495828302084375409248415586823018557339677436880081628307893420703560371245628909530567379628884501180828782415683714629200518772737121993970162849154547468012505679525841930429904372677080719187664493880230654446797533258708635123787281501534827627113771596465581498289320184033843802414575240733536232618273686447742304594782911325214239327543106411227835009364665672040821530277345466002721974748676147060556494863812334703750273863665343302079163962005984484734994341789801244488907392288363527309405360228442417257332471981031041519776428884909486332254501450294258603002697645857406920533496173129772521820843456328065137064154947295146815701863328048746772124233051911932913740407535270756306126899179461384812818406746312261621037868773822053459792709638017620667885792885960946518722716641782942397936366289773208397060168881833410047721692592690949928834555552452972092328029403666538280556407037399730379586118582131486995026166508449131559526106470845573575463720072554155955778201014457925504073595489429039962894990440774714248554498199116693139882222005192148109944775318045325367467274509134251941689568040130783766873760487623212889835632017409968027209898986465661923313268676157020362932587859044202449138913314640726137965330985190876618020983685702366902897186427849075473069175411688596264402489937691866345974244571451769069267477800208869074369123208657574185804097360043834598257430141203260118381126212159366946265233893975457704987012210597909330710318060422628071251626914913721459032847374137943922884604886937860361161799508119432381414468414249194238151928781120410716023409952221552148355968105086457795934486338813075314605437612517733884060184361990988012037342564201160411697935545450304238067448862926748940225012747203035752626011847667634620817345648032725628139540529578630503277103881229638916283312100445128422126402142054800754923581309144803483654310600904230111312555400067376292540395902344387519081681567751851884262414226788041761997679348569221355434791832037853655160503125754697223125681600729294088695340132924192424525018175956963649995094074535568133060379229906312883394485142035397481132349141824691360406679950766984795934155974349016392798922941803466665575328047951175213869227565335873898389160037872820968422521948796947709004201687709221136765626873092748848972095418783318131408709252145099840934879103966332962405485810095773888339357774655578350333788491444668557391968356985167514270291036467169458014597576680259029030790954151875345281232181265568243147975887972331542101277004646782748529600515706473610198080297102128326063762094473679097306488269217455319720948663888678201296852074292555556251655477033887109848060458161547184514182036736330566647698623915540490074731661324629348573362941026193084441218390323652107780462662951910178203858277200971724046729584819469832257358058119734388068320420736961373212365353008185981089535512851054269337535087797300959866880528946126651426354010189836301341976288425969312930182877097699076464644423799253823263427348483084467388280844233334327430233482866088389929607058370691319978672851298130084868070579797555183866355804509924467324578781633136205232250213482966173898813268754191108268955529310540982557140917910690487476541339400652538656320713118741159636436700205056612658752929621917031420590272316791914715066386710596601112860607073472029059150523085575557995995506801105794803155187119233419779257567380810642337191311939669020550811977597400652181116815501230132486688762808626574557788516458117219863081005229069517879663021717323140999412744531434564562528905787524586800609935886472086747506413358288949274192909132574536472881745402097214351828680071059812887782522457311175219321390067845139710797306098967378546183658278272031487872320844247805257192663805470105946034628518122749392247788205667824345860241864914283333244397291667864395802555836381196302594239064411240898538786963937774844152513510881456431238298986711338245939535101064626499124443260502596655573523317196543052167468078208271301146548585303586353017766955913929392154290041170840809923657747131597015750085650822748668660661915290194212832020335462922452555428603619437068389830460139553982813358597850269917766797123756566929659523435715171562001883550076903059159464214438216722635352981162676102997627082462194471679656442441289561211907000361710928120249486315137683160018603692294898869807911241846302803486045161634690431573452571048082866049157719008389370049618377419101823464212959091762899188478605005023866302601656923652257255424510892620556154100482919817220605048150423501812374420721152518062677411727039623898106750456294985600573003748935441514237843822978796780214748395980529963049348279478233868935225441567737045360191371849486405281696340387726644635204363286624652720284608366900721432480438838066561613915382326289870598809722170225672587865741509417404929273437793332874109324090310539327178102074698213676800365162533882636581994528874251970922105727516477432577629307704176631799821009923653738439192368289077119214305319374731255501264160475261731366675755894487024348517928699830721847883552852746959411754652540103758068208032666561026052609274484546257909496099446090356831838458529379457886908540536413052429813882492447874203956753788163994940651526014292068506989338323464826107205045388023181106018406384585478765324700576618311870059071379547520199532111045453638575618128784523747035329254208453203771069004955653171673149068434610743387382593527018582339085023159302337899473712546180561475245629883343219811015454897693488858501421644879265887379206226689923749601648211070144143102146588644547324859488705934164841489946549578850718849271696613948859775056863446982375234169960764718387812118098856630465601786724456513745764064485272185373987396491498507710827756203314974920106391946101728003715709589794539447745568399279616475215927035740577615753945229100832180634768323505303474279761058423325868389183635160328020878936104251313899658321400096987047488298144278870269455528516991009181234831471820497622401951469611967068278326175562043618279794263632320410636438462203549547237490600450715171258186863313349455843589874609329667835042948877490107094497754710170194376597172443421208880423066519199441099073688677773135658360128141644701913278338984658767978223193857823758915237344354961647537507280926597650285905802977374409918513499460649028990817319625139438396471270772461912511517960716267551831344055282476898410497755981504368419946740665738779109007290117191377992764321818301868000284588504418510697696153598491893944272867620231695055819387687588303215351457922859111114573949007712750834443191415409807607462395304878734281429992647286916448643745341582839345201716627508624756762402190934841178419387931878612582606721864168020640817715628132577680866511765600398430865549804839696924238773264853605637377318676424952446871019753840936227761136228525057891835139167531193326706362564877406609971420227855622153513929657793143085601913909454698885612853012547909887275212606064229081144553287615705711532287209145187638415282226525203991974646476804252576147141563279505482405413861696856474265963792287801682257281189346233144360201441985595184417564130668267054135017151410296207274948449812628602101696087629779352909357712758396405137474972288269221009127089567932524192823272323347612498540177074465984575596679189866600673480730792047111350179102709294164731817465062307511337151833262804221168556044182420683477221014371359174996467997848180731472000565623651056863912957201324613094472658831265214578518249485979218506497339597423799611463897617802307098162298717059010569212060302026074689955052374402222287627078493222412919093470308429406611098485229138167422591167235729796488748443290263590337766968541171525769423877321781477264945882025372947386613082195597265082873356412197479406360059289119860592493921118222388184525302129273883095461650416302219891376925437577285987728058414426234673492039912234987177475253656194234648055697445718959740890562566700310629948365139085327503475029120921248952643684810631082276893197047160627517404738007718719921021565694146797693657016130874938728134141425387259363208970662732444321429161787945062015579797597316072421348600554166131279368654559330848743120625630370917144729858190528790380881884258592236235124408175334159676829529635737274433719469046658889859500151343799253384531670414898099324672137741073047650268020109728508325413712382028849375699853873863156360263889119024873151504523518018158547830619918886371550004810475236475777356561229532195356515545389133124905547723260190937542125614551878683996185121763009145177824758951991089499198180229991296700503960582729132046928364869187947108776156506560173927091798833516395890349109410614007683404336304021396154629348711406048551064741665913466809396427092947779323736905395926570807256494437273314811849794742151089640791042696738403818050876635780824353689656905299176711600427284033269309632307466314347642405856793551472456466207890547122691050120532480360453261803859837760832630009583938053099305734673711465762437438408131221905962745083098276017452631429210193209686665502677671709065516329466139549456346008844336122241133912648107965774998217919881030570573403034282374410323369071973835963069336146598114760763647161548851197458145299313590270641149663773085962258947908318631035957447925294133545719876665297181776315059113091913225243630954501584894926196359908900543755151364232322936125175419572850001754392139132009614557814205835818754883773864102164944565864072711921085764239613985255517768774523075533518652292895450889914271923756313243169611384717577828595066628415196026738408638650117525285450657251677020747685990013077856944079956913276216922017847654235709423931676840802519136648529494664295542586616602560289641005194523649955542123757555922895953164225088304937593554284018441876758721977565659285073300119147665040719793696315211840081765865276506606742695549126304322908246501637462793837504037821711160543590679021281026236506169341346070393751023598067302675920276949490900315796668962310870087052727611204578259988439855867040609205361098650045474825677534543179367683383173037975524820390608663160855915774235112094943829505654212957633905731910861621971466124535816569374715864739245267270276351270519899347877603476103179659423932141939595561826265356810198967730435604176267959022764591040461083172009793938933109389383930345732862546385393037805968429195748994540596262025652868603306269584795590350955141803717882115403614720400949819127120036466029140948492390502026222407520510410625607871579037719102163385508650749059814837017838701447574437501074891359496978162922971726252725075024041060540456177051555290196447315889423935902047926932594244230084537352927600947983340938718287498354536777694150729338423961583845219924768881740271603103108496904800724306410045017425145457432200403145653367265006890533462819213718005176668171450028157298788196491759647251570999152154880864748063578810332682740350843806715213559776058566957234874311206768647130979499558915837949021617505727102488326634783917627849951387328352439714075518234632048802556132496790008359676330583076960962764162504841257970678130118346871520036880292688703975377858750852219834658381918575530612425278884244680127649414439785714713417546671406386230270177129226137596800354793967769111495846416552710938819967500075088759000307122226581058930886295969616844563619547849261466019698352747732997890786531375335423044907819400834522075106068960493306891057531850850232460699846551860453601199426467407445508129681360098882315385305477550082685862036218167101522898938745911943002320391553696360715833927218021207187971884431654626306429920268183102462842453321935818837250898516783074973518564593721031631969710823809521319992736941284410260457606701950723220376279539211504363265615779038791351954639866230901318335435265834855627296724906551011419772284025177358470944900467053037954131126848574204959677093083342947389407893060354743939983592068286616530121464005139210788016241448084602534377635871253655622359848997117222299501257570852327095337137791607799013785579890746381549781182792777270763788790026632515486533314289599303946117414579908831860158117471519213850891680931090985302139674159201621368648340582030806802307780616331934393631718618090819742719808499724857808009354635942328753977019954557982140724918347158665008188430400017637267058798535320121960186630216205862426926531044084811125881598296258357519410793263844122250479188258904458863026491233189996407160955792330125641180466504062137476900430426613318100961675985842422020659381626621115014723237401032500704225370779817448972860469147121972170685186337933580879826993659933084542883846555202369346168068807975403004685935355618628354374650707545423338526278673381024980803138197233830232494576934784449086643224850554395206716841014527601558448406444210070701097290662555436266967462876616373959771931565239146304540158692127528112514612185447462229917890972925062370015100537380046776903328482189566266337401814957512254436223210054789998364422967398810639052500983287785448506769651209367596684064599602287048473683176807711108830142172915761039480486709022895933378791348056199204040452414616039952830823730275806736459418618147849714256853262949051545405786651701068641463931685874223817691375787639474005077890331913522084147138560925119995705604852619290386819778686886671481393963113988167438597706293628621484396684378546646983567180306486727026102676139350637359989544304318586593871340992229860740915841602336049824368453157584844471278697340428727591116256582137096989763892542069057222414362581428209106687657022443211324867471330876519658598788986747472547486445407933154811362995568113337819710524262718673261867437212952840464059804894462375879589973083733678444595163693797423004301862431764213532177288838100947589258651565685160271731528961387925468611770147769764854925485524592097242672830604459339241223329844848924409887376595616386917410031828807344507996391968988299441478638833719318797188911850806426136947521200237386174031405344339167090400771751934128167087097032684675942180140317839007351766059650798199038420781790913867785986678031103711062757128814892872640514249312399882527657079518513913485661762051473800230458558438912729002135263369382432548358022598143020597028841689408973889291608348494324624885972569027517109032431642914914177674427239355945970255122121343289463244749847262385057020682554415375738185058601646445651056805962765912103031290771245334244459699326191551316420268455174962109155306700404889462355795968955135867427366330283207587596230960395665267223841840407742466271743658361074903076305643171631210999012796780607164028157503954554138431331359199058700908463936773070702951693278178357374338104028313993393988388810181509390989975467736164700014345981805791124273574380837996296148794263740011628337762105546100539217017811941395753834774063741555497029661928602250536101419181802124042383841616982150872949033646252495403853816397605259753048675676033601899750236755582693349257352352316099271749788549294824069122115427451986789839949759818399361036023613549105578044314112960892888747419816261810828848362609620629295025759489289895611392962319699133359201409756990925753331962295506983470434838887084123276945907630114576066286759113844484498102160021770520354889983724376254906663814774382898314755140952658406055122319128413656621987129563453412740040637365285684076240856924952837754106297417663826193127988055008010226496853851879656975723732298466460997194271126800536636919956776574447420165288732219805209690045035353916313324617931501956772149257347821064847472787540828868401608313228430211657235038878822094547522249225966658789821246368195055773138702518124028041441414773646298264665480449836555385536029147289683170297067981930987823021965040077520130802371147746460967155466248524035874391980865784224373657997542717838717705217361169393394625998488942663358892544216212946726799077380339417449880301578724684132575556050594347643410587382718438040283998646803986670142961626739700364365947500851959632730821164723479283422029598431525146166462194385612594338189391485810854939091094205796920695670950497312791954807115396863869818377156780622760393045937765651045207924071634730148006359750039703021425048168959455013264450598199240430155102769419944540824488933638584879239908540502159939334397233346389289672387432261690114160274647795800223583072894763090851025228288036725667062735339049057668289151175316365305799233566847072309172656882205498273031774044417928691240481313127791897191712466173798254608484908825944783833406974357934064163701632129497638881387806123281225888169446418243236983937816821416065068962064233014757269339720624077363081792323134524324250674690275747458442856929985571589139076737750338369801819186616602304026216240166433622539119955538231598674127437363024278660496783946323164251379072493061368461728696607466789576829985800157655801293742453077873849284435636011882336924944370422034759928825089685411906968630635697407310985899137077718411951229814871808372927681774747910346201565346323933662339706457752942903434741722292620527829237477398907189765360294567321897149896679518740138556974012930402368277823954436381189718958348661034729694191819212052355919221090010272785995876552630274641293069235679677695405325523638337212035283870015708206713969121562517237652425344882082604806300006262727333453528167447011095263366189682698962078285427688135804372825820656351228423270087699245733946763242928633691657035845549383807689386579661975423832313936950314071669269774646605818849077408427439945054505814793442506994626601721057722933461885126600016398460245074171213057642848696384262619929908696172542967494819034915041830372899466568720462287662470312542194963995798028777763465399205623722551224533552132952785544575504355834269470707201965922679665483375436772562307714968925785007132553822083073100208402278971104015470441203765221148673118834179012448874251368592348515989062341132670168442266581538327051411162409806221623284425384138213777582962905252444844175055073427984892943695685810399259776895632219237748314057261131374137563343477365084917518683857686175602055902261405717099694260716425276531955977706599065408478329544838437488045495910614455741913547275871875186730198443781344715814022600973733169927769576543630436587321741410308432045072739087403623820758483174271846173614599142340546895814674270180541091818217284197274519579488880972527721769035633588641178894911508258170449895893117219578568779999115483579049653002259589030686431092483023189177667249169321490612891106004534890418603408162776615782544190598545826613644995928017716924149441290895000131475361130091685583986905257941382366148687192022100927190618789170559550489671110263402368442405970720047537975201221855488659040723655204580672030594390927412370480583552603697474567178128100148785942308822850904197133747126172878418903549201605990255691510045457209643865762109544733112748100120288140588735694859324380390289742541606542401373308976192330694961490156659160786587720409508721872450622752801549326479754102905594445648752720933581094937113742146693078533451355039929490379127135036795152050878679907478229892823715632342325757071625489527540972458661658711528851269593888567572368885009444782745337558939903764881437593886185466823205760345309816815691974226784130764673943229472400284877602857347887635729881800669333014833900429932124058504143621321048068477560118084139172923940996419041563156435727785958534218285069255644144230993357826418899245330612228304093734488598402780764204540159248742195390001069647296948910853331315066357926255656112631887592503710317689303817085548483677698818269307732563854181965949257211867485023308148911977861618163881924543692773131127974796994298312887032265923281326888969463462989495510506071803655154851276638614703589374734810341868133548459593211403223261108914248458435289838600760975361902412830517409991698318341912080973834426627086203017005889017883639259143272971607392957952223265246815236168966509605604420716694140533241096951357508474070848621317385654800550981616853813147705577892403308880249063296009129988038927570517310611175448436936808712238176912191602604549750024441688815735672411654156969026364211940886147983575005351112857585379094765653828550996766875251793311319701805838021969727128995844689775082009776537950710687272847840837767400782822760677508320366906165962332392945935617010334012591294507210147677469525432936787268253348406205560772254940556396113605148312493095954342471845236386822701472311235622535066921414646020641640771707946206493832953735252987574253369118596073947721292223302146400151182231617291535466430902616835269413290874616326931539858440512680779531013348857088887291377386978912025878055574923168002717897734106373342876576685254021721344851451458908324918746554229903037873928413962893010997560318585976910130857978656679346192448978684021720517692047915690799894572247768911638037756438051428902573155784704071787405565956655516489541452440927692685098373965524884217805871714600777288935023185252213012855079822916720259738833249687077283308689211873307143218684398919634730897133425926518300201780682293364793762278896702895650294578649475216161916222787200038813527853123661401516233304638298095908363077698096802842356965261907485509790157937889913732892443723630168430677308766882292266815224142559187729881371090357950223201818380386422261097928400426289117003490505055193906188213850873455147298691292443112236599505324647604868553897608603940287285326850623928275861208993309103865346734131162284449366467961405501911221562200567546230143949607589464782375988790740999837676243425663449274343106950232491726554660563758067435718520229476515163412862015971815319786391181698700351496872443576950117647800031854426996397417170314707157660375060512252054987298792817732626317918404616206511730245600445920037055382715672468236712900422333369535348858966693470353879583190087772755358721181639260201984808338297078750524926152800293486948484165318820160880918107868755066132336247081918693095108850079821474227806364988872554711225214470174646102260310950158042513194207564656923248986404482293691684982154440653882055156885558558338178176457400995584934856435821105037690534249056342031257333684501308632321070181718948002130010348004128815784706644184193052144221694231489914329723412396638174896301474378170987345241324886045537583613813938677523992198136245236528460517948953024439376635552397363496958216134870458437954216235473195438707881983513068704655384525628723144867949401555524724560956453114398918266369595679980963788787067780498079736024145606487626616075238476710836840291959103332884858006409296115742706766323643392318516668178194016114234347618246034223872987076961363018438596219999306385184920834305078959767791351754400914869386209241872675602366649303833647474450663730201254677328267533251415678644864606363629831619403451142471073278942017945509883215819668296956503667174771611925316527898208255094133823041169103108360603471662634307809943957758193545812029871074596399297948302374521467966199698856978209435629900527192751273612846563760439650985231503374697900879386010186438216172246589139704569668363793210778303235169149943164072934057322817573609595737803818962420309664753787524689225430245023626010451748702637917742784091825701254629590969625445131748835597778870456515558091350813117930624395966002226128902721284665982586970701229039273727640131761714987707925832448274053105144396744694783830829268798279372195249903603364363167702317959206417435076220268767147921320173135830366254084699787099508058499858939589556128321538616561612708586355992702938545998244346148043018203960843426173685520124094447825182941546817219078831766572092060511542778711053641468695309052286316493713373026313957182695638469470798704934687014337125658903973864051982955244719186930162833509073956840873052757448991887212545873436632375313088374896193186973671131172997171071100581624862109397205527786949520268394585382224248739714424355819984431507169411318563349933755680399353339069684507878665104781419295831142794656548939538163005283332840292886592517985102132929703371603021495051459520356518973807230567139688219958911436896265567689083643693167908327311254699627014217662238765706481729932245132689793708679268043520124836371361424490494419410098348687922441296941203158341120024876393839013269605625501689761820246033680385845447971927010881728741831883636111678402216964372004077291821917860037555443706058193263975614798199848167947871981010024310156764659911377356311548280554852976173368506931415422083080724505627197420254217691497629328852079234414006467716881733230134542354626671520353876092993822729841318014358875388196183386609006622288924992344508269033022817351692892001946992323570318678383772091162795246588128308881858258665750419092067070089549029351813362288702872668599408202589853457489734510831230876710660647346690498812167367431115679846059817910008688015662282484710587733990868405620027276832156560366449039495025071457660653280925164140688148489383190182529012851118821804927948509854374524523552931522696444857947452328963188265860326868038370523514748647752996122849222750238415732451510721113478422836262224528390671067006166207148648409156011011520786874874706337671166650913317795588372539835267428525120718708393547921948454870798306937450984244855385985541872611614871783908234559803485647358980158208346938375950305040903247165453082596163941894900243802085572695994425863992510455730722003038219850904657840807392800528497735919337910176391996314568449991356989716671111845236567043456371326054979006547191315786376824209097548055638391722182028798178072815939872701455568145906797742350366055942526471372340196548320872073543510824297057406499025648847624814052923161592703399355305607955819392710249152113984438659346243773786829061512282430825782331906299904925962140076102533724266235204651743330607646169499802524510423258405420347806639958702261437704291179997082778523060576794377469037096819927264707608467958829131653410704779696270154187539370717501033840749881441230536801214598216838332900716597132729527763349643111995844682817152051236238230840921071601726655084370325595889805000191619158449979067947650236457178333686320833280275714284598108286619440733165988845783091489755051615641163504566767490213400423156620510278948294514440165018107513750178355559456504182155161050811879734697257511707955686555329031537918289927409657455910818296763380206907181778994687750766409464176607614759732199871835138259425639141777671738855657503962783958325333010414166695907225047787900738427917063550321151740319029828982565750182705066471519793549859826955893620196462116211155676238640012166176002142121181838200243479092117225761779824270091577197703058131871854569365925479955944135419323736799774184117778416555659160233816957603974653613573529876937672310736420148023850817841876631564362680546002401826118680921267272234183965795524481098654601506862694734639242343076191804484986167119080113129615350079995837009697944887722469123676047667572795359253361458299100716937802724838467288925953960101404187073677443812427504935260882684140608741135605723037753825117899739262254530470129221153500349934376463467215309730078593640732721267743594231035818354462191426312589478934533507892698802984762030912457877406590331854477828268624810990743090399001063818031791018676739883688733422277601546972390985571225921454184645368183237581230493795262684973521904864047324227318936162808146844521048297395227380064337662512294106512563530925196939065487121013216874574780740908194513420599307296940253998323993363756211255724695256325106368843570193262127325775609917379893255803845263836407132757675775814992201527009570948109369539739699948058368186985991198845599430602581957790995269531247530796522763501183118406928333072110890499640701561895694225525636992384546277742920215873203469245283678378347419181223753276615946690214882196989372528641004759040724716705481465101758997219227648483173397472411075393752812530716779506508228042276870392751046204305342952825881943364829530371726479405664448312468808040267716255516557763318195900355050375271686026098204201437826657444240710735255926937803278128921677852746697015250634063301303152461156914954163772284879231560334500634250144898024937436275493840477911014297788688452962342606500230606953797678878869923050364071167640313900812011774763824813747206245333503532147483398383089004245809996785833745907017624779989945837377751302588546593100771232933796533774146290287577431930243367184673847880894974200031448684912529640292115555056554258685628819181881091863347607057585195501157453726764586335850488616019331769283948316681980594925559370357956459305700699955264793342506351356853388904378037830916496588287107070739016306042415708194179454912690640688716354084269986339161532121998387030595126385167508541410695710678731008191815419682533266830718567657272456819945082813695818994130943506492478747780867354357314920109450472629952803732079768554791495159959858625076213493308543530766367937043286995309370444490596684800686927425228451200430393063043132828222176143204226825980945577156416330668798278339233261667143188128595192184010089522351514800305230147748729519844289975659744604679706165687757200078849535893724400002492075396949828864114426915521463359273654317731398343493323931153731205166287725272130424202538937039913504412590192623377487928500712268520744525538770776687783092444590388921737191123724734871825648454691183933658327300976719073343959890374501702207684278352468588153261623517573569581235725916967490485485675414813581210575099222828559240651289900261882306169600827076243235194748296235845680593877132986830953354483766990614584670324590101913871499961748027201184326126957489132810468138974776847440873180445537210165264326446855227908964158772278231756741270262426326092384796575894141348792164819646499095752109045689526026474960419706728447456541130308735709943917755087813326305896594987399492925088464414472379635728078057854274710281204517150808898282541741176568687223453933899472562322177736236596884943680551352161598673006053093847359440434894944571372710037031053499504691884300310193851162401803191547499604111376638263440623833296457950817516361660127678526364351241573277062735682187938390943981214483479741733542297210723460790364863698223089221353679139303637449607834774903288215382480136969361032330900892440693950577992733470906401255585901917995034509826108135232847927216448401415678104897131269156518670834640776213564229272527935014220954195061079484324862180796977045863921321130888481885433253763381706023604109757968149433548494487988953972163187858622497999339048846038039902451148040392932895087936789942806555396302960500674786268907974853320983848554326759458224290912602005295325099374202455047967796388551961931267335840849840622343184716184170659753526531300673540075650756941604308621845397925387275704350113545083231952162408388139033982843095597886230105288280503059497977435821667163076397460709957133041777119931745378630965603796953282977071327389766961556251587700654763196782831506776848042121304147183333575914885983369999844854494981859080505185993439642819524375935581370952182206940786827782346566514769480170581405148979093139655464804578947150365976499250325481206869303342762080743842691151857929113572954319041185036993850843864989001682078568040011670500329373694223120151799632348715161131974988803130469112562104343016530184866910593097452369073509886314311317575742211171182590691912498384267667913046311803236499997295927433252462845655581045101024533392527199861182250989585442198516164299719969218739630571756336498260300725549050709737461796436626738977294125004122539567430139076737755743800648484613009246184546506625071453475100554304832709818163946493289874582714006953128360007983700943540076806572892392506341013652807153832081325981959639781009320697876983424758840249806516818109838188377430429037320235431548254880401326608867480695073455054970854281509815382596211736084704321407832638314068756803312667393999720590109904258104040205813106040831336865151875012051841500952464135150769006515487685741691032166028348285025538652499025359990166169371648668605775965770467569981938868170034319017142419704831699105991040424342105846297568718751587632320675528647954777930936326945062357915466108555463247060996516899456656837016880675346901200304154277963875803414335068563468267906314864589987720420380637147683013661347685757584649639048571135852667665903187796547619346892592611831915023104253363739548410372287273039087882445733574156620311363587732369254079144773978997649333349081508484124376220582039664802139145843340731635783882296963928319788764287445803585599029410718818633743993592786931136095249948199011319917833520218169765597748083607256068917412949885913951572648621325649004707102759201028014350481994546558193770325538059959041812958180888273007857950019268543675540642349928190341111309370509322011790824571620851190620767393376026265663302656386791656154281055284511420110143617913149760546727498827732326091143614425840507115509558361328829904454165609871306316181785939074723131853047603631188245379300570413280486686455738345188184327180111477046437550965693802443414438046236325074961920503135528351850900062046044848031432981525250491064588556295016498487564612980217421560564382735602656289525602398233168461975347612745930368845984678801193345853307426617707914834652098887782556873582653584873022077019302240289913948333532642557509660804140002265807481323088194928634499470959087499352530724796738058497968527462843745224299008449132438081533416863182599653230589979565364014289873321422268408529814749424767292425741495841472924991555083225020754448500895574051442838371732726796953776546378120872850637021048211738730291362587279514495766289634462240455877988164650109318191344785319926257088017999433542856707633452681527167069783520409984849808428193185559905761970999025063177557618208844742085351145097393161356352883377880908235398343978215584504908004364452484886054482939643653084421772131708881101491663776168847494717465711791031290379190994190339790449839603865204562337346082261213231723359130024189014608435628776201506544360894572517557120325278520189729655583722798690379841258212600939581854163295093135590619167442535975914897410615174112452387250813076517383093478797876769069698027285389047310593324177117748181585181336713816509221530077562960831895269507009333887502786632625540844185746904548022768228953632311716650774805053915189643261196957323467489053883925427905758813853123059183765096547562297832422258409110339563697543499648023853698732751015450135285414082227105958669370974105788963526285180942594934777879679397558620576035576744115665839058275637968934565926026157193774885291949190845180042598579326458422847984585409767743830728980166294871501180191618909283834972509345562058714119936175293298482833782999291138750940202692997437042854227362478580869378315914352082306595072915461567979280662293173077150705659221983315306251035033408972078852823998616218693259622904868393468255478148544768745634839023653887745002564120466231236972090523257260282757994789390070231002248841610041108107569971533896826995049860172457006236314882096444551666132255390337779907293504216268653371679133323882270516725220616576996349773581678212521569878318445018696322220011711927377350837850426113788393014509204357691098729589664680788870352847713612536598997772392300388914769579850522939040516470075655316898069299594076953629794812735868672731193578010030390013424899644521204115174043064091622716759063190904595440917575916881651420707474257488441198488914344143022514025405062479054534047376927584633556769087446512907374321047127765954414691631095708721090897827817322378226192664696914281372905837211222165693784249363884522651970780313089536306807558051729726644688155442656696982571036981258418177052746642495209773290559694543265893571455695456355076086000600669535862607172269890375811793969366852219168310303048499468386211123434598776075643678266136841143294291193599693257212499106741668758280328824659368046714083644571264243141362330080423686234886626403213672156714077947946332465312732385056806372823110814283036813397733738701267358290096093508812662017947095980402490521434676134661594167890757810565901492012324352985984825578465274768729303477252886815100358867956735903378345163017259606282468777621296827315479754646649116931184428482095892171016742522496149812405198185896392933527230456884166519369532322084804182306005439185468532657931697165824507675109950047738172435960924864521826071691571032677288794158372923400554026213841994510219927248208096749152605526884092009472297781190665959189467223425419108794649220748734765320587669717342389556667856480824579902167429685929929528815204622733202067471072845141422323235774047230970433196217460721888233807801113572934486978918545099054274695190167266956562847450236838955178608430981160548494254173493677061883901228839633608892673947264382136629084562526078317850079876581668639728244369903952989528734702458099745756377029282720608185141748883311834265064471374318373266865607050289435209328898544365089586218795520356663698851161289241046168996221393674812374153529807338514634349141857557726337069296440152363165186057076774113241433644158823739136407504969630193494382140230897770485979442338671190563058171730513282752014393087596029067167291094418546277954148894644125795076205327001014261164963697800429033524024556779324916691317658304835214208152514893961929153001704208323911936552012100261650548379696058185159295416471432955257266972688057297182375080527288478495924532255926833301120793473261203510911771496312146850703675384717319562290289731384183722389083048116210106034520238187471738256765905994015560613382713988689576166633688920150759107783129865202738381989212755572910576144320825763550318754447354767559803194584981850147938233925920221765966069113386405911410739627601947528433781966320865114939135787400327070719741050591007047994344519107659335435675808127164656227762503339775718970801576241552905234809097535052480759763417053112620985679859925545415757669603355254298580439833910624426749140560233141130317753025752639463049549384628160484426896525698316010074939692263513000003480725124432193088822443234100326873627497625903997798013158507157970176075154287782493583027039695276424807996627008428811712110589508545813979428222418458212028748886991481345862643824610309161779544027727434972451051958786869751881291116279562829430170569299111778086598111451965435829954712513961864375423301403298267514167359221646735495307645608659368367736992467090530503908355607155691919424424418296053969358285242122834544317361213675762969574460222561310775813594903935101648109402500938847965924839274690104124697526906343068555086852807348744526442636271516329430831716946090253298607283829735141110395041363559275422445324028685950826724603593743169994234479791440334059004389685165625411901880945585540647692267486030658292845232257921951941005479437702339029389728422005902983892474400512763054776811885305517371537771590015895653423446940026170419034962215609577285931012055362135708243307142201429045165984032625421219922488304244490716077034723143468902248575258208934237340455613845888742028155896561921417627536363940392496690172715868222158039729738011683998173024106314777880119358514490187176339750563822275180023352629276934634755039331812094419713137713169146703770518748708449008324396611883861205911540113717997187535894004451763044234949659021824843920398118693813936341929842737643085714241162285004330424466481221712348783135352263234251799657291048484789746136885252234551739588020611834222869437414880139130024145402013649720364811091568031439688979429554202717046740543151312081438853744048168789362360539482524910916751118945643965130329110861965836041455196211783385760566714928193646431052148960224533109357551476923064300822572719145261004678010487378916879756704250703548870506088532568593986892694041402906294105289711862487097379681124454366723960177704970170158883532243681291648800110000391628812146871422392523861745236358020878375769100130866329284556565000818290021349791630994267269530975450390866965912170661113160789095171988603488107481605156181986783985028999961266039506360213841930109980483966888803272949071066347885933682935181626917492694683598531451037921434642190647800947875434996713092511151524817178233158528004534909357258037907371052669554524499194449256334824429358609274128241311537079830727606880749042714162327231248762088909886382240582049222416773045073472042853937978319291254159855681035526312223043907607790152170626431601591323014482734690185661165622433276812811813853441274150070640366110629186412914836096531236453183793911990464238375219779382044980246701128759223977794761086424922216562003777556788254095842829384970608080708046045001294785369544508711194710195757129602313645561257216642821691226821104703572471610458125671109240435152162301516837349472053905695097353365565727522151705979319806747488752966161220751702343203198285969652951470570987708962393939709561491415767798601320248265379217942291507966323756313014899273341527911828168733001902070095411942909770490058121583182698988017342950253118220264113744702619018652135567514433515413892090624774665067780660907155496859659872374508951904043305005811648681316735807812592190547292577673077946451773403755290865945265716718055739315891584337934481686908663260634471501064976166775706991024416514732694550987041584163704630841657763836991917306058448731344683771964948183744512248837567274178047390477590411730733958304327103198216359829219861283922065232769288700038623930579269063929771711934371583161893517321436372428981422001146982040491257756190092740963330136755982078774862151196941102532462720183675833455673543191015846953609720845136931169410343600561305695861069807987823371770549530501229196851848541676843349286010782605679281944474784060059458912686844178186767954316804636822709298133190967671968192986928137617768802968778889768344602612872728431570709771098581426182731250526006006990693223661350533342121272998798354205696262640092277937388406677484614946107623291885033662154712596458109733054352951725869541962436195925961530975138796075702290808388167209617458896936703206878001738318467134157342263196881833150527436163881057446395011520560710829322563159634363807993836436553808976315516378360954813530812765738051059312694253700957474305531096560159748854900632103995284367145150078952946646815367672664153285776759204104426523774020575396262602585663916390738903999862537603151153480280119794354854851070764356581740703772431913835383668228131789479689481291383185452692290333090428598500167198123071859601849367902331623002924485472373649385471592577029977867351351519892171406939679187437221732506570108081429612066809933402363159701303204760446421676818742334626449790383210596663649557264497715738609894547183735721676259671703216281806901690110028269287193410844544188570423883636482227285810418257100176289335793843873977633506250972197861528645653067513034960583075810895377246044402412428117811734599579574551844136147733677781568419502112706321590119547966850177141778184061534550153140784206156574632781024242944593118349278235917602272005336838124588355375375714195367407108212959805534351834245925599376427116057526854322241098490566584659155867351422611224464040747053075380011802141553418962600886797012655232371449457738568166696640868876072996635048751878659837342578925155335759453518017627500841131386552849905586422345614923888464020567055316102376519677895579379278990755337238334963068374563044928979046311392870544446979841528093924590823573108739230250682841221530990041005629672759219212566061402321077648611065287035405258076166977080632461110114546590925291372691064352964769432917550959277515198330788671244594109642768857332243261544739296340934150785826492645182483821063229863263045306121044456857449212398630494203682453148752369280630332873959107402874458119030234470500790155956412055959141716524928902229199754788967013719795861147176353651045627783687765164986561957452833160467936301061113600271100481554715257453573524345176473739956833931906867482072063126774057840445846110392412485391960681905102971699269101529294443340761163816327554071464355705722674262249347332570150809515589598688408487717842454459124818674660636642698358881518647837545587846174766956328484011157308472965517759691444716080867247050310458188144870445643313565502760544935553764764313579891971605363786531753259181774749539287485438189083448969340192913652610010215230045164151142045829894526391985910137324434491730824309803419936596622370690932227550523125431355190756021483563718648530085630922831588328791862764077588301566538341850702878269956808607771769043725896471565283544058836293926219633804492302834784223163993432587752425556034528395737502066241438965942202755264932271167672408948776293773354868330731881550099727085076803439065061149635514119462350618473607601620504131247655529835971381100733494069638094744492770390593106259161594789452351578897672486534730188986972671973737092931700253221633922940826079585936835859482173253292149819183581280591525683417579749636079794217547979288880072629180048419240057276166454863613470306496413576487315846729829690283238141804882915724021827964655856284236276191008796608584697139125357282239919816950586359711690527289371831076080472762424690244448310189276306790819758790573628519067749093466373434402440751497381304166555685077047162842110252296510007873278977735620529015857726418472646802713447529949335790623491491106927433067741354124553410252042648928844466214555214533534148141679759403540842740224236703841484719485866129674265174737713963453687370449802352909080053202146600997030299407479859890242209936693775194358965448996382222264129643993211428192200339948250248430709399652296760376448450373636898856008736437171122970133435428355005892633791412842644557896293986670570669739644470968499895084685989467161993055267388633819930695997149300505534356698177320238917788184260372719931442744997750308958536433004695734709580472922161789151228336021640976880018600342065407657129841761781370373280549582970792060575277701404204543571894802810916939836958436526800535301207385515515002344217669367425381138119801422974277863877141297279272617620064902777115906402660183636507451156745332284883270314614073224947393713445175621132082092742071160171040597708207520294824073048627694783084994738274927865282119159808637145581839642313211477686836897560754172140939758484436940834692305142925458807395117417801644254631034197061729332049643083906883298304099508777158514547106612600707243952241535793709827037391622344992968165094776286690908490236988614424377453054565770618478110628983131392553867311537517296038834050561305761381057967946669479616321062532794122351052800944271205659308451130294890251326880968895702126466164336909924971921579863578546655905823916690474470140873387528918293915610098094621629764362062442406494520186970833665692470692316257383135652146509104504185894839407603382499573032759761037254866564157181581384591042827427086657320092136462794558590489976957127937984640353781951558946455263250405376033251758925886318755548660842227889540577955448748043787430770046636890986502396644913479940278980488517556592884775906487478761258885317210636823519058519691386007155314150439475489168100305180844166037693973011037586252814249915233828985752391501836925225654689214578778691533100533653680023863225090428829573858024998596965909602171507127083237014207829444151037106789111316206599925597478518098025772574657439445514791488873160088114718772827828377094085604783949650495030481442410938909451228596920787170668272078550883436203515802189653223955981028921055180281764022233394514946040146597684770853602945231826907669099600569516520444570974369156422256701126734291000193791357177889491392376637515619657185598155543333790144978123731608160225988770721532432802042158500768877805152482410315953465309159226862945117901301305369756783918759365491062958714723891500280847367328100217412542414531424934879407635264331925488826299100767385175615728202389045497032921923197183692763156504295867221349714334755961497566888895335701159717929878135043452532135318643373347906870604771986944846087108670905801966818711916716302071878855155822411615466580868824528874373403784219618364092430616702625305327809551048240555240692357359063013433566364139526262143128630758270195799759220474206154593705259838806954866117983330349708771560186543507405232992577965548241291660753356977751674057465999209408894438095320047190841561871962000830509218958831937072394950659078057220598057328226386844632247561546287986969016988088893129217370524751467116502648310605223374432603503367560052551480406664754063111873595197125836856180476373780544843641716970159511637202557368290585718267541275898798771883781659344473532567576910910331467664016831357897923640051454762638091644050453923776007299750178833773631199958540731673980742396347696602585218145243882570500455767857813097565698749164638844619960179823783728611379917523911009101625297623468734097362223487228947774187817212816841847201668863075058485454176420263026524883149456119697806732901596085797989738309882999235942623673392826281246357535877869721943752571501357051058929183273979628069794047194269631278094061542809866455147175903719196680453637138098095063059769395101252556260841061007185097199744649264769397380587007186058392688200733659906627442500613195248164502757052012230769844249610800385080966215308095846935929106509810261888938204707254923456606689917262349071651140713320739410743578566424119067913590350192629045749185243209848243922061814743061879028086031631042064915393792207715438288357328065727910800040174447832837895242969736791047211250791560609041817491892736589972353834364585045757795904400792272778972630355130431970962811235669381511190395151760446103336488179935605739119414496934912714511555035971766088819504156687854741765393291460084509118083349207609735694640755150800126067297740331752407656362759607729560100398467728682615277662183416336910817532023572398852277496260634815716193052863650390298343403516330730790256591303376184215831292527150315863193144845109798177716215547329421681428296756587806936234357190165174875437878624274316781117587541189406687924585227479070506895655539181526295004729508151150172168411782664381088381856674308492119501082861728221518066264001225911480467962663635925910988380021808689447270960688997356215519116885007313648678697057523698836831367417956295005447559491274405277147870892894106038687364632337418429365698988687367542077270612122095414298547895554367799065395962779166275723584122625521316306001957263528862661816934364884746501527107849613754014482344465248777131192975297728287798014992900290737621193191798361150872587271414323296067628769083420735969253140126512021899382187022577629331095252672107010117565143274683001688426340333034602317830784159034771906911618878700536342206751499143660352985496047542017442796826131628603517298719776736139308698832558260519632779567541839678220120285659691506549055796235566460182698401790248621649848358565377322052146428656612020253090894213727261753709716496701944453099566890734040100976796126036837363939275723838473940789980689841407634820675989594263479988792590863280096559095663012592329467105464858095778583214364733767844025406100231275395441238340595668120230145654411247667115861003851845635061922609008898719238161735100085641132810843209540358449693581441143953987830758674478900078368271527838668384990101187749295078114968422783294490299353557804021624607784858451451259025391682467228944102786469609061551314849667538376795510827237355221266952619248172388434062874837748592918834325987668471203760110457573412411660489595683670778530781046061555600093650292881585998107475253919837010723650594569333273803046200344748722984461389619605559238876218195707257133526465439235984310665733892706089389532087545743537789286946419664455735194415758816124606107420532413949184733390713530005451164995775393409819395527416043991640128847630592692592784899929793249158947965281744820215426660182538143091558730491642138667490391092886648490695262190839111985142726519807764256642964861468612955641620768002038209096883277140606772033709211985957415433441913242829869090441937320071461073989575113177879221171828984645332978818371814433815377401653781200209368221213053157684821329808420193086620403432620949037413314249332111139582864947790431660786117486244587369221441453194759405071990981861571175059035847469993027418405866119028164315738803051701588452032804912222826781846401269561135483354061763702371680835708225039811517875264374673727110385913379834821778438276832810621351510219813473265026958165231921215459947958729508496399967201469361000804567130925615619298565580659828462244769523579102180163946435124427424150772483509115528848423848651973473035369167177426948510219872994622989055336471618307529306651561537757236080061980831683636591262018649661081039096033286038358715290159534926686132468449117590661364188931141502064649665056180201719017448255123156800235912947715943886335487353025151848569927466750939592366578370485192461690523727106379166676807095170487112912539262831655904600483507862783805356717056645114123562666705182142398286537478621910295809978192344122760184500153667534688838308036790253271010414834224823501964569482807758683472868849768407291177958541694055112336400816678028358672128612050665378447664260731290749640316199441830697669426601542436050357790527211609546388268993050211060843087457643491842170976060370493333177561837008899668364118996699436647414206610079028882195488340274358909559684170344670424902830300223711428093386223723112358195416818732690044136211097297482573518715035995390288694469556849678574288389893839735044343916331087327288128460845734043518168004102156652618909739727824064870877290927591131051725852365441572709446736146275943526844337447131229250527104299603846433036386301828111306774655366691481319941958499284942366538686280548679584522748480378690413795361253861296045582583208698076276181586223004337206648609948641338523001998206290559921231742594505316701740964758494213145016529955685808292834458415616839117669302854789467610528294192066034683353737367615469585272056451173945560516994224396925363263234514995671857854127433399122893813446012348863847885137955314057539618856292824276492987606337914001656595106698625979904185455830837879601195310568909196015859183657447426817253762694881185401675930949323838552065230331862477051174316855726049598643911145454949676288507532712823857840517731911588493062454253436439934007658091783587412052793354039849647972749689900826468748624344641632838497681337850361499704991617788920909036658519918669222321349084870784111442501368159951021635608350084965579441302714628244745343914472171906285857031797334017235711577555178637954744467074423907972220727765138196293457572584188543592863073562658401267838004366344668878193924710042725486425490395820237062439714094309580096381276809413083944829517522163670673864628495251570561961207169904396166706914562791733678524429201200165684105916645330824464903378706109275293470940196780293070572369280989603872757422287413127445181055563789224770402246675884978679573723549025883602722489210705893231154874996904897457536196805766915046393657889597912901191920694957762626747612252074282473380174458947659014608047328846508467078021944270705066663544433659741376472743112069893995276495539941925350696938575191880653446996382635378404415879687939751767085278403630680521792477697913496327771509968849347388623665872529386009639055867352901000184825331116484326949234211268522906911538881204138544926884125783513838438126896970038579015760909010734862833689840602321774777278913566241837601408999025992191780116117664009355653596188028563335272956211192949289945895367344942559059553429826268247522885776649141244145022849682230600596383384417146152403324130044027221583333396156606248265872554816564780958048832222528946637947318833617672357853396497853554942320833550226441813940717886839246072138254365908715611796504505662497291950072164992112659997005547796775462163154778504140561820960672704030197887534546315490857805829673154563190801279985149185313504642417652267892490035394656544457324691893091456437087470606925211634572599253589518447703840531231386383771032708762961547342543201629535525778934915741521876518475714091287856305799887071138632318727736033545187133171008371252263724456916755147565542181425056926447137648367140255520009902001740353781983722695271983779501254824459210996265572751022057966947326482541074919967169088332611433550358499653291474246804035416344698724203450496658753278426694619228915997883103860406251233175908802498863011744531353090254004922742746716027579980887869173031679894950543964383209500959157419497768953415540266710245241152744755981686625931530075354404848948191858469499916755031763415435282841985408094664928864163155776540067270311607114047091375241066042137148786025980973153642436935528564382112771456094522905236003821074341420722545537741152495249916255438765521071766491555694363781088871954190385553373358615288021094752831074857845905963039018594975655688562732202152680309315849010755530235644083486139064947841829041391994845662181887460388677994270511825717069082856224227398818980945523187917938967982439472961245430179139314227007998464500336412547546109914884066964494419600681687415842545873914670819029591619105008020067355746279806593490488282660303405278063562501248733155661753445723031912287770897780836473921106701722229504875105520642616045516888001874355777707349020776988458024116581305753902087533252916920001394384443020891060134117120987458288381674570065202049582899887729679112140030779529318126802642565005814944100111221671669326836938655480422538708704329517419554858447338272995182154793958406219539055632120977372373606937361986784063859293422358431960684714457444894536463307928264078769147576512274222524306188817096709468353408569779595138446721368313462437591761777062009042408757413188727763314921958571768496857835997493533377815830666941702025307560228722983911256221299901527283871552661502851290662650992755148762342133382251898267938692505179289346154073118576465880262237709969615718232530053377138527264027696683225559970359434579017204153299356853876802788214684536008290822340787604541313757133831787203933836825391506920249068189920796257607779181668333119858990175607368996253162712479529984742361751861727961281829604012503153491712177933379722793153402493881800627478163825726968872767342310025798264734040646496880206585801878999861469436551678533681220128560314704667535147301084337184634300141081149784593764357159521750037789110727101404987874987360748950392899579233452641328681731107643547015926074801593523502381514388331589331443997457706278095390664214277600439572289311446712887473454491164943695797250303272255338181116890802997620589725745522970065312472556501855084140653003573773160426048114112728742433672423871785206386087072951945721377416135498689163818053678581709168727898097866764400430287246998199546186588093708690217965305776026595451682039308060920717482114881275363449902283964912524890460295901027278884569625075208478655605602046091623904552494681045689264072264498356241261887414261611112028328336208097060464278140931238838466403722920195369030114129957419907664199624561251317517905068134874553502862511394169484171691782844179674616349820805211838431532980228319304370350864696225419420846279235689730672280019713593702461798740610553564075260203900943148822639450404974648025916080372630207486639444015631457235420076171097636953397206775840853073232125009822818892733235731955327249981821599631989087021227971602480616177030492618025378110016972785416849606798834876564595824479146448594669257275193024815795299661960091134951957077307623663649479275561111931556101863903807424449893355171778806103827627870226677560891375802763821831923285228557114971029066021042746190790343513438561410810514858540892136207793597823706439567925493091562368294573282382269244146477829443765148579311703275691276311237905443293559319535412774603964268968193841041913269501027663736298903533924011438836085791275182369455668446656790416425892069846661012825079944010432456216666787314583169444255572828954337729597102936773301745136644650438600453176671984123867089787437306699861861342232808190287406033586422752556450424194941201206815656741970270043734675602764426439149162291254456941184721923508443474908272880916796528297257104955442192838148957877067294940979752858746125248875777040740065665744754501093689891686705059760548311951576888811185063848218605430438402459632183972780111781606974092453837046615986495087522801759457986877128396166452050563006489804476579472255952273467359406312750930909800858312151550153763424979853309986597473155449077647355594305351380692705089718062768433003588437016793146584645396454603368729905685808282477427839974163509265947404164345563377770856810409918749218778999363571926582621378554895415284257219238610937624508919988799423627018376009899343312503330338500671618436831879415016955406051377704964326362952554756907971436132165823042934439430037991805035007070253839639516567619573638741690425106133208852057160907863878536559189667838822245182823496175720038039270394415299819304762517252669299374597721979053015845003237585678028806641139953044462993995567789110587500768737030705464792454071367901549145164798889104637362137162460385974372760081013545193280163619439277234276405065717201666022127460088295655399834434492220530250672994538832506843966618338277598994999256527079441009589529828103249084374005573686208054833927822645750239127840458465909331864967670830980937515821875142826107792661742072192596854046089226509413099433614334709855108864683473016243458924930688307599571222416755031938428767643874501802457991158551142167520292981477660916351258416892966212693516937333533500055650636685544467915273036147738979411312657659116646847398397140588145541461416911489833211216773528041098471724534115525473212661860062619129755923155760765787731355466500379781804373878971986032874465070631652975081976410698778606959420325474745778750511390283066973774561051649832379334234199541086331918595572453242969125448976578130955376447650756092687354325192754334657728787839314064537456597985373748376893007996634817968052197766469109536478584532374850803683556637662528719342820549414126259083298136831851435638799166115360020358126976467457237668654690290219050477251641885521694910192758217727412727468837987536844826723310517189035907114408490979797721717471569996037451483655968862162536477594139093834011449493245182409645842999925913699633419937407091452206244570373791095351276781016858846548988777159690257084215988672665148464651165410698288495549021810949438215580047141104981764103172270180817236039807680384908840223654410715985630003186286737395178185060253627096238322771783140548415244455010712712437959646343441466790131805948292406093374211855383934524822573217051817377074018077089420121670448090870595512453066496807802371861210806604361980428363684842921072852532768205999040937713305005689926670378539475380712817008534599787314748263080570697971263953918371272167624352461697228738997802993986463873402846612645297829627226326179957315195892505820057137143402693484916425082909047849286658598223461434164820903959232185162370980852707588316475016875626478960645734156947443273453538826474323630811332629284230940568078479587177701987203354388172944662775409584754225816977440230873384797357597355253152181957778345272334774141827236957991248140707252812184116803687264169200518818621131962829819023290589569928217024370101565509993565269749394130934848838404950644062930513095026414180835944398621098714803337195843095645553429091249285278959314603974857885549951351524730132727823464676828303898809083272141066049125958682271275304102529438873086223766954911015118495945462243489633493692506147111492550328556523551216387274986207513773398801327477566125041302661308469343381871115680037596438581523482565235485370612651537497673970642070417569876135228952726447400003747777226242725725825725286064351978772907852821237078853622489866148219297953522762621610780819596057616387499608819075587450376581505299824082230748837225491873361874407866403035023370319943818770596834842427857435993195484910513825929557934040767115102895836567621638774095326624159295533804184136184623854850970758721409971985455578134956534658180545947630062857830182434436997672798389979164098104200894791658037534236867798070261660254151364941370411977460349899062699799653723810252084894251518163473900994795179029458612581288772865512931458456227722838707340079749155115378427315932796788007391877872090918930171186083385049728971513248119726083677325680073172858455012590065824138741577763120326636383483807895982618166596953189225474690194921453734893940838159546770294671012392423161118290612322455474846831527329586260678868388794468044972953685481788304297868885955365799067376957520895608210237287643302869921913658499397313942570037218068598747214749194332384749783056883573574668988521422105626593700778183803601645857951928030962629716939583226870645393623792318780408673894561943570881111794064716273334417934380730791323022572771457989386132375221274162141862393877941269635461204569117192843558171653089842032573861879994110564005202808257472755824167171683615171566212910121446652879379955830336131583661878439058306497341946468498854413852283729772416688284578231095712921370870860837763074499447538515486064326155564924210474001169653873460314190940171783862228654336729134263507044754161459451513860760789333572170621193290713759987205591399879917730711112210782386631534004606627082370810611860591038299008452787076749145133323027769629841962614982718411100406564838250015131647085629110707837333261911181186001918472590622345158399849787651110810169036868947234879459397148539797022926308860730491956006197912903199458877674112836454357624262251524102152140944779769483172776873198351575456485275807545932631128003533258719304520518666565110960342497266426289963618600674343254668057077951929912516285741023635196211719024927428749657054412217616696279497661003250819818535946693881378223742591861338450299362146009031437415413673522635081103059633906649027455147381686613740535290152267688797123301691939883327643338892301062114130999978391057068332058918100057419638912585788028326936132958124702004202704783701164865686094908826704274361900703427999284802302819339707244217554332495661910135747899491849641317118896256947601936666315052083944423638650050754038532562205956194319877996634999180824881220434667939325932369676566617723532940361651016337944694167706237464573420303705651350708331520232899459691516257124966265772079908596913926158272169156238102117149552750116494807601554804716541174363156169852676934287090412546586863267320461422548750954685763113458040137574163525453746179609139075575060595380932294581976765699765180886305712519812886704627875919218642467249022310781497802555729265147975064224500196492409942237246316362877045556974211778562725624692590982742730544854153296678099311714665461954224893716545979020952385913222020267129516803350239990799833087754857690056939695449595037881305314732709759064569449652375748176609763051238922875756356275696442930211841870282583543602253026712649686211429447603681319190467816824929218549486485410746461978583302646829279777556468115600113354060757334073577157483098949694714980284727347582259586408214301460320227336207944821457339719662552298117466925148514002235213744092685322024410483194063034275566120444472681854241996198525341623321773362234407166984877251888623120955011791625887395922743740026763836730754335712353896219526080894283368720915276200566481840109047725306663456895160700420912976744259193454550920499242410950768692095980809923403253057485407209554627436322156322004096343627986359744147750535842136458481157480919144704000646985857330193744988804652417186707155514262827724929020186023556195066654355528591551792150037878159551536246219048195406567506276506186546337754517822000384324205294019865039245130000543116275732600491859071350752709272661850335830082883605763372737063890776220208927528125189145411260151537560877562801957736552347048003246535126437259214537733915566694733424092498768556172516851955141230724481149271378861546359104526147561310346721490398676711936685685067282070819969675552762374567427250734649092894099357832585932523863461134172720179069100337752795306555504664540062243228881711210488600293390399715265731821615123115340975325306700873067406456570523584076055120833991148242069260020009516914378531551510181652044198135289213882426439790445287000668489447463054642162894708374679269194435879737119628354269129461469983436495264881894102090907478112574409469958022244732134951815117624690958267437177165161244075692095805164243208986604641120506613214189216718395287640611036679059653208428275856967195395865353817235508771404654498207384392645252317956398069273582927985486187485198521946473062129797282795021432573050876470643860319423116650042891155205198041992403753538817429215855292667312447820885624373211877137960263828403286270226213528058898175181782493370283949805000074068784440723735102125139514196385510697375339628943891464491799716733858415366164001534485987370590505331919281132160619242580420739120057703842765073216886078072533510984274883476646302601882398215935656445277634434877384618300966966160686836645663832924851852334161455723753921427137805481738172466500605865683348288687680547940930729326438775200649833206024195880663754429085833826900085264150522770441305684199781250746233908009210315943754213825502701299704762415682069225585489119675809281310271790206299828880429763924949376762610640511420746751072426233428110390090811504954506861071765663493161448258380463072458614210914123220760604814254810276672111378558358745183529740039101826586759821748596909531435919303909465251931678319112643424721547960944062130600730533985377692855188851139922371460835499645994467239190744425798489361046844177195351141863876610738593371161612882796548828111472295894100160724239295158205911642957021029028986030609537117434022930525270089063363080367728360277074642674932524323524231704837231462624930102154234300903071119510285606190127156218406248750495838282536559259280378159614245687791760905439407734213383915603582707657275459657145636666822189349760227863159763176209596928536238135379370099418423529896891606954308393233701243038526845362508395140846633780529819214625550004063576710200604837584782438611958352464368267908731213177151705791394564788119210063284792730757037958094099002553939198200636304716739078875517306951719475045815205555194932996673323875038084814731948614218281513464459496256267757274140853933161527761658568423244967515371241480798646226558359554669928892228246777102014714830927687784003454107853190643436714740083656447297782459299122781865614521549769516528431411865942198891147533181779268210281590842353983537139169334861191147715218321583071244869891326299194687721236241807078341358332171475674079316313409860688847001730061664153272727200595979101877119281903546474844196454609878056554540050952683159055558974029649627599613049258617472083476993883830207078958838184408700206051094030619847466366794208641957580091902258060159710091855330744527105514819830393154326357739877134531700631511418532216094592274338160804243432602120699257950895891967485917552008474859368364991312193437862152713662979683328096480214765897908035698576897063542144343651150337962937735956775440515062302495308559124773555964221991777722725882236400222532027421919029789353378629220621540017696526786898040851570035707928113662753335949689116586499861499548433880060776998709439079195076382983654059390934311231205045301685257236719982711491771213966945987630330775191172114004921030985718325666834070102122483294141068371671993279301893634623008977011244478014487970547648799627215506173192639171108381459618272928512825197960737206660190889501084434031767651762635342084738514940850757694608121525992274745514477401885358221243734020149008793532207513772273609150731078490991085877086469530688840924416670484307838630227335679242072731454000371351154224299423705183706867824204695084188062013472668684637102040292771350425871680753123851629121503962380294563943549389213578638356954544630120152543879629828670483961063437913895935007568326800752364883398598829537340004434122918638374833757076307106883146339300205491383611422384242399222138384568850866777412871832223177178393240413584328773463673438507065616706793982697132410276018263981250894145705542558846948255961917451433059094055202748792325110678986954514575535675930270962076329897371357429547047421203329479510481022453297704843322738009020212401633627611053202860238886773930718211521768383616300416410409857354106946031380952186030359561510132422482148521071261457131593381775823071316925297805427194303018619805512535497642801340758281593596895783841089472044516118244203956202438107132232588943178591305989846748439337642057376321402968169196166546577503766582691912502324499672498515495543068456971606380098553379308137151811607067973491582638859563020905870493219491325050225593908732400262099634031920595682949431899863120402535719109283261055250850828228785414888079706835484022409329586472793553945473047330582548775134922356823487281590980578789732376038535894555934513871344676625652555407910216858489556237100742529890747806808416496568030761914631374874467693493367700545829176812895303902752178349900961821771168593376014791358998563269354124719975265112011752162689108043991478311118541030681532634139105038346396158905427261779442600135505990504267898203246191633659967046686392354455157271831487439946572697858373632824703620377400516806707727081836504995262683662300437994762467401609624331636787694176305186429849010187349354898636332379310875892193504660304095624662016801166298924784861459153577343345427377337765245520019418440613485123878370879295743383319697007498379602130470653635624727794571181155883640627446596307719684924600302369783550090816623163000189687415997457333916643474504738889163942768048306398340519890451667892507758161495687996715691472443544952445714205407742590843581843344708995724164466455742673399812015994934055946982628653837617392905139988807421409736995028333038003611806915635082438530190645737472423543558956733223503534597043251838370803640277173685321546906011108232053481926201034481428909624891076769856288150961634528516157829430305199934651571723176167570719514928732746404261612806526720040211887528904821751459292508715625884896645838778337894087010650914797575623866378951660544754004673236437650268579024890626865880441393214542366394561712058252704360732146968214221086259635579067604495734798866225543267299411834420921749943657686908764004914088008174744285861141420193911185316139414003766563207556120527556763213891716580567602553285201282746016393564522262250007278304583627265524773260997489599730389811923401273413590235352674951453078218329878128478431890625232128672507117171379661673839460198548782021640751715446523418240900156516157344403436336697730759244611551255930074865570294281810303790235280497176178779439127610100559652340152562952180132127291511626958416484964777652686909936505389086676503908054022639009781623573281106729410100318874716883269447579491380115869445601219880113783657733552852276041216498029577387772331593605669229623585684278088555489057309145244368326777317959702715482763567388362675502278937754443749741819628440669423362295395482274439932350255399276058059220168431759895189875280136054976986074902274317294384137950901457395793520678830995526075892681401844189346744830662072333678245832247018442997633193729637203842274951929454274775985121238868706673352648821372733932427712700187965811253691960899425734915783021240811120597245814833671330535514575299252244601974955001379815812813056920647711124115188367644835529104677170735243984979548394031518390729326610151673463434152902558623125576232206171697398763480856456030248936919125232934296203764785362854891558913814494025816326248217471475165064784662235761107988549718360505324100823604365861691538668424646002766151862924518943688640549258193745046513145726269673153226193500554465641371851329150055103815008277910381710199526385775086582576751383355460595171081248954070922285262738281759273343026171854776620141306033357027992303972909809178423061011598816147927340014321614876485249735135417159901259735897423342910621171859950104234615727073512817326804121352009292427830945536315533078504641657275151254104469074871934198770878207957112291438676120165563639579601750404591383852631217673976239975927965655289890427287249905591907840304295402346021482912233264342661996209066673745613941614501375705289178087373972860218709050000474628070053010192545612578801826371322866950779337122642199483355207583482641541577212988496968168408267123698891442992298386179800175608206076830359533655235171733650529572847882980355930034414081998999242622484170557870981292554693138667813455131177228605506054928168894001059090774217994312049120064662787883976431962955558371009366456598826830099642120960098294871093980481518455371868035663148775405824665637570722794737240052148362923030426731859673613620664674848918842712959795451640660084146558793518201299210708103498638479900255305366318614738622341432443888261814960004251338675949270924003101122849772876021060578363976357304763097678059907972771032864349457363652485193359568032922565800118572775688056700423923196147718722333262170179155410494018083268808422510084635633790249743428790317849217641068409546751414940311225983072361419312785428286022132139809359279709607481209816695574272000939385327942368729032599909557488315236037606213285283964135577217773924667620956186802733611666714906366496289128511795662175974814117445257641714322224619040417794296545753733412631482857777784025376454024803256692117014851623650567387164374450287221864865426868119110411513632815989301541354362225216134082465845821313952145357945619302775669606592853274978121580527742116381201401252653673339555587025499002862648858301717472986455703214997669655774925267578444379467304746512176130509811473333316496906179225135403354401315430578344075760885032858872139044130324263334068964103825027154456751786286043773355868489808731109695813965753109987056707389079961853380989064314267138419832295920683968796405013523265197469724523772800376204296921858436665520694951045374815886099970187374720504471852975324576151622544872493295853832479272280311770837028942096055718331768928784050237832749740844676769279959826978546808222963218744375592288902044077290854990441069888736281348857003942996330540081973904067311158494880762925566477839639183536351623164436446266574294921896991457294477795246687562415609096312593409733678178938388287185477961162588252754270741754704462122909649005682750569733068225440544377520554953386726601794355913362149351818513939670012421546722490380662989956878970269485366202385100383454293260403624899525066163029726892075863997956964130754765610340616715033425361368447345913390598977579877782018670648207936904071650397858056152045807401064271685990910979219831564617966708988538555515634406742522919308408711978271025820220088808315816918472545400842372455813822734252781015429721179671807815003696275065035918754326757078896774231875060948973864911166751907033704417396770299790036105032331112632030807987201658810326102162798845673421785332162742813224633097341206551725881252970970387618169248465591893928309098051224492340474745024089213733954640750602988535342348293161178156008281768227047482736971288086174652881213220453509557039337155009180953985654215116938093117793187347768719576337678314947591284257564074156000193611604881656061385543776933957685381310639120874978615637807103274983976334736276978609630861234568469092543325815506901863228886826657685330666568384207993771425939195733289612959356614653807549586425635482769716992496045270961362157830978030805715782213589819811994556750372872525731327688260039455166766862579110272186309859956845069391630204123472724354522911303745204459080803552416790342854493372445995590928581850782577224858798181070932466720013144625765517379784263016841077378009356051020767848169570066935561503185053292073586509299823929649231666954896346806135405475023971661660111584541514066474371011202292424995174628353423968403004328636294292076095982213793841670530885564296268802773358627166145252611412499642678799513205322400177326307486152922610872213729812572601553926234284373649463937837317793106440989552499794083048510485281248919382390079048633625981445468585479622057603350710444370054257906772873298357348861041096602533739792885312147608165367620543191756216244946197290430680644991075049431524536294920212611256747012644021233980825116555741221703870765239898821722114307717470454083854699095086739555385594653185244387881073495006638855094428244297637386028422925432800716603184901391746743797041616523784480765167158670674642787520327048789562051829735605150525946499988693734638248336853383894284425075105246828336442819287800738147542439093610895382429731994737794936335359275678156612755948980855123876765540812863269932305798405081221238310201304004021205659042940418237022569807357065857799743941794470111467223857416753800983976862618918625546683381714422982464412609734853793879404513358770684532616196410332596855608708581538926012473387370491739700151920548337521619948548508365506279783905308514770463698159275953563469486942722896134483400211791322045481460464159383445361952694981696770442207917950462316162399865466408243108587411268310174034877304739535413153255767497770355358673737270421411883999617913496048629932867240451328200996931101055069146327896827428552764553142890657285264752014142594864803891296101691213481735606609383978292749636473092225042235192752173805038743016541734721854149448647832268170945244369657133463389934895037808149811456805530579099840475624721472058434692057627025748994711902733863718576510197514515296397423497577860887096817163728409742631090875997988841155570731190467213565864882664469601754035985291428876123610584278384492420932407690120448268047013488703386607258920249896805276886138092021775654790301763977663349031239377218044860184804497815565067144046031708662430387981531231720059388433190390511020539707723322473518100880616300935766289295374175149762937444254705453851047379892542058444896112749460139582597955109369908138451403431381451840460095350635427456359730632680570300247845782060893979923701307311654406353845776114876945780144829736394636182329818428894225411594205414798122915476998806938570073737284713931649264562862175253569932717033510055853623023211159499154230791520381478535914200276061350314374737643929721995006548807068154530249448492972517802763899899562162557465710287782116770040334582389765218268984340557614343595863313722352101438695469847394931218295952859657442539454532040472590942342146278227020259849289930814049682560978132682709186610311379203215631866948357380599735296503753021743489646320913097687233306627352568316082514471129706879469153489399666817984220702804529112354202182848784600250606918527568587856936493350233574632677308045356915997622191236094539906737891326935351431743674039385597951988528659051174999587041359515733782453865633429218991792480925048926363147344829817462345113321353364535143216851208035000896682304323439847860998985978414603332529090945719514986326815130591928278312545814062577330303479331473878085717039574545270534603141176464310670191062538813937659890960099505863823831477901798665267197290525169084812069983444292182372744916225969728058455914786756933380093604127425898503742716689032274559492869726829671181397434491018931644430564046793847956331840800935924983887183790694066124160316259173935411167339431275743988009889771620808251167275930683588201485065084367762678898909650382884289882334525057870458664164110013865361177459090386755635819679508454880177481075477224646334728015674450831119553719951219550379453206309918576633573202648749831074164006809580467494629399181303673781922489895014936218390778606607576516191550959792261679533650898501659669277094703541355156131845506596268924886444778076669082414610771516313263978817923922000455846175370401317922861549538994820436076927823597302681487130315731259827920176516665253889470525280300247865131985203839120812407367140833768001067107473931288403537454569950738816026833711889724410203073779957432655412432784661253261423006857197308646397970495940853349360494925368257757858417775536407658043386286895943300010478273267339821197691203095860281025167898778047501718770278047372669364198782431114527374270614290359038442269579851628898929267121740859206522038974177653310224676249193430023229308885188183359838241996205699479769151099997353375852884523204253438502318776983806633598742335423364999220738421387162585459821717665753482305816508284321599875372216066068622123751518211071246455999127904962588705472100971147706545582027204875868681445930576967992742881422559019294117072369462450584604775118224964900634021615009174286957462467546658494917932039018803066099503186356968283234720805691884529082159830495628761706172068590638744813866942803123664261717566076784884734745971654919016836370851886623277686166959902355533456876937053723221081011227760742833413454289588424386268139591711249441614582623070662951322080696134097688236408348327947591686103141321849185880761886843875212989138764190877040939396684199823500458169904926578668059953741097327317467453872979467535624502635727731396340690916423030691038256209282736131504866089675806560859174610832838583723285323839095677205956804764324376045730364285800285859850075328710242121746180278597698450423377184741847805637648656061666336817530000125253522882033104045211256870161516727455662294048734967015691628861568933530374306934835731966794583935543862105895178839944355362520580874189556938054742533096220348104630813356144074010608188792632257143099421092719012593470643259151308807109634235493523511542252394949096538112660487176894981207946544059808616658210531444210416064882491841605155086267481601377669953077119629044649608478119402608365087004464024141176107615518820250313916137007771134139845155608649434869032429753652639978334890224601927222516430934299668991184772203962402475751746962340394823495416863930981408834849582032703437311246894695999770938204053247172556437480651474454763793838430913445087984429978058348701093612749767827635863738871655221555099139939593805909583680199560506459317096499992404800825371783304749808781048125883747027502678078048153156529082609953396721087486117041837176843880996905065487392109415340181768183486603723182302599543260244237307735271019631988442150664505652045752828050057613244786883813832224783403245388446959617706743090722632423855849350150707280138555939758579223689090665570939145713192527609791554654231206580936916285661360176357188410937750308188445565162055145984796627256145861554418510831285335446425670510889000678158247749616604530471401750828290647495251643340125642928077749139729339687087525169966142123595404647554167624623441953255223878245905353516408820644441192330485580500741702768872157609247866575664119747698704619509757114872254242044623193232237858516333150063170967098335490041510137088364125242280536440794987097897384832346435695281791352628245163121095073271854735753325790538212089788643819812282851950152570934285994964423086710093357689708625766535285531574226241927638357572166396962575099076197569743412086006143645374880659409262040307715963894787950043040449697557177446156319432028881002704145248669341845103585049394522839430329604578566124019344352425537155565555582930199150942597244087609383008834912877484191723845840662088052107485340024354256082395115610099524205176968425402484218477728762139448721183202022411602235829621979506351799784708725376981428378418526436843908859888530304871400235636714516219696413118019812024209055626048439386906549127725295266996676567560567723418268996496658365308939481877916743638502139853955579754284115511801536464459733341064342061467594376889662794616276863652445175704516650640174976337104252219802408962062449895804740761153966607859382040222148710388733414831790358365513063153473290525675248395270734524588489446885225334329228552496507641844335258003864366357117505232103204945644918515654034263413910270688616173360967532323258828884302732636725585416078077271970314049180293558242050134884080201021158687105243191947466575402902085389174206253781988197707609996762182742111169024308459439719865007536494685691163211988463871341505279127600185846078502874481228912058579955765440898406622577709695222308129914198109327436249613481798681796242531063142709546345956199345918567846246020818649046957699543059040219924060826198935816541240143136294490697080570237470752284765738109074151144619241016545745429192038836860774081541335976614282777063959586107184908750894271422324995139933521300268004676286435268764524519265320947230393745545816676515922544724014349377409759460844691259223448296160037519952973189476813719602516475902299381134838768458665160234567989399949484987717764773944031483961723948756688098222544742286387739927086700989335123349726464750290664682114704943861764478752732852679881524094516023984087299195346253980191697663625445747448965723520687613782917071493575500506795593383770148207719702194344506054523286947451581976168510441213625919009926327508125544498538341644107784398319735160432204652373759747869851691135906147326083665171629774062702469503550473498838888236607144247967684052259865209968647068030557020091812617171756174374496116940924573355307982710115090540376052118671195145993433533182231732756981625984718020269341246992708430370012499464822266494570842156460519140402334122699971321555752683153956344329259713317559596255600881801569617195051962480297078710949095738893549651296923460316268172552274711268044504936147311572032241676479659694316263955764198036741012694496822432825080767841440192349268941043667424608307568339179657760947823240657276216734900043177408114261785998177244507373057331168585660674405991705182529342489311529350689252072842128426222440290506255613196906423582804263114380992760318864646116264067935989453044444376140498124618046334214290255383253396618203612083553637250178439622643005491417990509372767382320085230305533094228389097227866673229376450187337511878343685197156889283387003007705248874393519278784835628040876982728234274446813867604461877763656675292414897700963422442795170224889463354693649355771133249262147110003633990384330377544999077590915826385910017018394161556374852364698163349353592872058791161929411134311504728204187436653736538708196959193343625699809941662241620035547892767568512893558404175303354374522475558539949420633160602886677520436972246260232586426095008800055050269041547030167983312894292756834987782947867434713354320523014024010626595156190074573438087261953943181155296989271994244185431893919193277035305592178008343193155913157048257699255248447985251396968995370835453185766104154080583814265919566499626134580426818693689072423630773173353504544132792001417994113211138642109224422436278789364941372606442356591531093983834753874708694556982667240495179661122502082941708900641192580611205658408594524774495682168944479373775835295673737766158056832692417946908551365430842781749437933471686602817697005686684582700264952881616842178097276735618184866459971019288601922798075969818129933413687520626109785682645171453540344466711217256350725235533789735279377552090585739169193071144290361355723842299772207355242122662428293696283868939156781135769572896659494879975952505611846039020016045195056702704656728536628595694339733594841095381604018385337847942944240703844048267957577985018316747092309669531245646915611546782710028886938904958276062185416465219829324596403242001780273765401897961273575281890786892415893822930495054938013673937773404501942113759188875677410760037074151619894986204251687236904138353911030797772788568469926668267064116462265361438356236155365824332007002407286749132091117263685575352824717476255047069839055778611210900001012804622919806638786554933285357274290771076905783445719098532092750126612746810662905273711774902369622313735456831757881297945297690052618413403507952816105018108703624773256371290711689739510096108516484910653533370453496042199923106446597538720703798970317418795804211891259975924196747088194376638874617470004352893407577740205008822998683520795020856271253925748896827367573627636697806036297375036108875804097046496502088410519387536563311369171691380748061290889059573270534720532068874539927449284654311682498784602664441108206395379624244532215366290055670253953041393002136167782219163633687183658502445490594181736902377250696038485610493698840233029228033375957650899189182237200231696013178053453523773797552792588451838617759927579861353232422398666807387738559920735633403072891410151556641998209565789585762175712564906370609820891251258792550510017023666469170777085066383593780675554578196292581773773997324979183730514489375395688488304888328977941047986388661269752247241450549703127855004653122907268978166728012100597587298402850361059697209066160474392478366479872668460175804251053895171330465460498786933879120838755240643128017347397453943552401514932082972433134045951461605319840359091655669240227762281333685280030294582094996496757661698715616235343089484957760441099875376854715345659726391764557827565233015706549293779184822128509910344861312032054658823653671459151682166866094788047226240763428488685943791814029594418046727605875867221668243468690821728411459420096468751780439366444989674834113054955812137779035405784351494675792190362868695412240925222253307199288253460997528043169060104018030391036029424502686493947809665868573268867066334010471293214837566287718755712687320651116612891258378234890235896803540939690590821676685109855657418156964517793854310685501244688293878265685227914442032748749747814442314275018343479305967992536543315194584550543838349221721146569043837102386974538102223154458000718402073724050236671178207179245861657984042112145204548741602402541132897957046102958482324324520845298809274527517122625477535987154546512248313653423707062137924291638936304774708618882130475348497379067570269112348962679935846763209954065275545308927170650746979011913964942347287998254537963758033539867455625030547539934904054623129506747373920049383877283960116531238095569345741524217376987039277602959884205981222332828628514756646222051630914974436098571043169561616324314832405936632295938099265917253670842923360758849439614626396032914605077254499385852671459078256312262934941614138144726926666908314079812641242074488052737769275201024330722204709174870955760815230274678712874893872375247514127457700118900916442761625853170100752666407974929113448552683713213246510057470716826804859119191864911467763004678417728850306159800037411347496951240001159072820617316266812474905713395411196219782003152318695864015715266834359483415429123557177978100434722946966056232857279444381180795462560087228239981306602945801082441825207059214712435158783901880404183472550910237336260984359737041727251652564880906706070150749673807188806622682250533119223655462184407333183150071866428407523164376170057833626650115090852995898354052077603252868213986986231201406076601883663749922021024914248662855329441350910713289442410456707771340142490167858541034750144518778764098917308130279926454445131132137482719835022092565685224118399568804139200748964419051257296731836794862455833406665511768433999136898751488054879849762552931518914992098187884842507999304757996393447812390322214202299002150962862692849271577765938644877423771451865994917078198324106871824270127418676695301378333133867568174201590775455593237611769143352798435881652689793379300860531893248968971007913648424986788504888070722110495046053646332079533986523155899375883400039851853394069753127403544858713574706481716343018705816661454730262019097235792510646838104880406880906016772062126914691228322977409023586157709885992545446529594126288293088503830442448283001653108038743377821577472187803384399227669485323821748991926822839773619009018320911231617400519862678579261051748093837240401553424883415729930569707016810858153941808544784083323721380640358000897078402055321621010328479219225703276589391266897122722352307344456292976228462353434328887928792634937169402791306965787968853942406845243235765936486465445888144372749833088366566587405695918523002823761813123384678068956476525760393030877033098381836139532768351792861884180501608140942893367878671303469647147907430987738378370876956769909563646057894707411209749630340023231715338717636436928999562859181525934755897801670322290704263221611325643944070622590060463442004693060437671850930651009856077941167205642143347950184184902062220668465318026539159301395331021686650300646035919686418114291298946203104494936588598299365632011724280311603318177016715150837085052401413506550111611302977192515140234209842694114477179861045293948288007374070032176904478428035319012337369802867797371748386471911015385281855493594087646425036724211974187725165134587493091074999722159172852914488660530608396337345240092719791280695955991924656031564956691977689692012377960510032278424280271965663928739783875209838058114755100106743509552708344473828436927386464548975351420941111252726442736619074591022486521318173072052850501306620960034091127095097567308102279663150495336492632869869332132384401972868734712657295597987372466472387633679565426237035483461496429047573680912293941741880966048255994015896855674251473343523633528358192859827782985629712715286508761142470661197880884425394436712713594716659625177418740161639067389849201856567748189285669237849370250845629065134402157030165697382118587687396726801169813981604314496051660670799756577837826422694402235106061273585595592926446050968993903158122741827689767018657578098987065497558107745136261829881449544188239960461004351595795591337070555001366492356122938603587723406225472414988365360398831875599189264001776450058611033843944577297807035562925668089604384654461736787954065737099281944749933463044299063805420079297364078185587060536616546874054495960534986371759489897241028993165750685356515971315307253365967621319750426337144668551015271345675689267745544301036676174098257189027198130663569282386448128427798865378137096024300552800561297096856276416513755828685874946186605153303837796990592601156711592624239813267123235264890760662000658694244694687373503472934075775923736501477414137622857405881684294166340126521692813776432731046110194697862601017482633622847674286500352887219215637766685321937329636519579964194927683307881930771393986353686805890500691732463356138799396670952198916702490481474070868675351987869738526929033595779667862986814507195726399316318588314495195077879446409859388239062352944021785845534981318904843809019092944592904886234183716673624839878625484160409602041549542143631465713628062430138344847806850204860151719162285899325474131265996084441739762797363378199668081193719291430838153600134552458050511552144627641980640997705327531280162584210203774543943906556483923759867549175963477202787939643867486109484659590872909770468078195765737633954535707405282110267957483088765238079181937929228539373697944753215907634572330597097425271546249202170010738898495988315403910613373792111678951246847061856814366384371659028979750690749275737413580851291439524925902522561066376042875799110811450073251409045422236416226369951678757379299990688263552810639540822693232305495699873240165982204769546875378062021033714236086419014787550126063558706797123109651930860956605001947636490350327497693612000665635645592786871074165071138416448509421185824916352939768804755796985158208075219592133555572241773244556866992998311096992989799712967350165276192230052408637530628000358568092564117927533279834847841325129397099143629221505852946842671039201234337542654534195194706126809142047692386789447275046990002537744282959413387957695792583409006323495813639139256880332570842627624192361389169495895767177425037913395211445610274057083173038735512580470426813565158572858989988131440321761207369551509131874564080962168297553487699647268683144581896940277989134078512813787542546470455064980283477966135705832658537023932382788308710409078313636618370297050697407932644682812926370866554472503858385354778585678521527159143517046035920913880274200056374546556982574370419547029108282803969580819337983268864329601427477226730925480706502260093261614365437657489301826483686435725117221764911161065080640627348213515294423256002550243122782506560059583169613952101864871211225466647998475803596063546773787227178939616931059712995317650197977726760131828826874084316180658240968433525684553020896652866145286158655680952209284383671318983615322932444445202019152503033133434091685047404805303958837451079150184690387600107129721305140659260642333069480697508829741959528949252612063359321961286688643722780560304555461135436215478889131651885410165713661767817218785964598620725188858023664693891208089878131190141227919466963844814304599120797286988092415530693014828615224875165644904623701256289711604489224647478822670871737864460185637867074473355358378684970899475875790619349745925238205625871391507645008543332183875899676397280384091745494583926771079048640350142789512146963363241254115395833492750674249947937542687731316165366532703720148044618639498657235114725419704796497577180756891598229778466669732229801869268787002514515082753732072921493546094181228277960904693448740409523751103260131531266213122212098396871720696320630833847943290323675815737171894517622257011007435405044871307680092737888161158531577417869740975252006174137704957998273686015867411614975417318281294719271070255283113942435524056773409452378987337404849965368469287854877047331661710732752539018284368292138918544015058255056417504667372185418075823110035045988292023741013581948305271647996594969858341883531968272012499175550666737305952017520019231789560887702058927364767616250587539467882242007146153100528447457928276412784064326101585804421952008882471103721184245005128099847116629552551047736485258081193742482362332445484482587400407995138960770305555087097072331174466965464033853579206671270736477426577066631994658643218469563466910639663990989820086121853276811839706401200070265984178626367096661552034458954461437310809536931477996184452147335097836237881735185142027388707602811255144038738176963944455090472738595251086520888793602902571202545927346322032946386075846514901267690881620156364763202316808481921008570315882879850561792492478429822842553353913614145339135433701940389770834741877230910231650519610206333501686216859468217967459275453944175249954731507016894886906720965403381864521235468530629772609397832750599862274926335704887953139166995046638658644689660413860711115768621253067560733358847074084367537477902107422953016062864166442055261059556727232564132095352426695982804254642386280556805068420952829844306363190091278430896317175018487770345445200062821208714492078508948696143927165589244642079420011878562606683086605070709223063761015704657994426816376347740069649261794535072321840172116173831768023724727898392343926131682075073652486442483150503352641107831243715329525359322910975723653558666577871396258120709663689802622965004949864873669088655329417848580633688250098636735949379686634706526508130715007265837273132876479496814643801037869601393296415371463967054123274529157356913003473774280139506909346177379993205662875495109669753609226907280251810769839098577043541686870174873005063902363543634546966261400595797253444809399593956741138931234945518407581878896915043165660423691146185002978306327621901015242080527873502615517115415433785560158380432247708909239690500982866932038728602181192693835217824803974003384795032200616003811041316370347013757899542037745525132020144345880765802909039653008473835751462322285355970794738806038851000053739369110617905893389828924640558929108394247479400908711198762667713105808184039976245444051134000664736260386367712239671417215591237887909817032404954873012245223833069571140083126890335965096497292231553465319982094357976263417673509999834721255197012935026571297070057917547548276168761490528822304613024252459189782763954666667901616747998551031004412455225204591585664822229677705441989037011695161701052499491649563587724473190811799455530052929004789883465999069235988029703975677854900715329864340080930139451576540975114210180077435743203082467358438569563852416296269517266100693419089728739945090567256083921735419626847991886676578120352417429464688888692838415536451338261956740877240192066431538288204161028665075791882681581613278731894402870103233727975959210077823913357872351751439420645073547918559388893213653438239902966285225714307584258989176866333565972457493314529884534419184385726421310830457304842966789459395278420835930384126732267283898857959750490026206486585727730264785551851675971967245661107945560343436564567066566282242256004154217886771070920038545998114203542125528777791324935442130846945099946866208433524934292965708315973580733319908627912306658250978071570070655731852244181211057339403428548967332371856676462353572673041007097297662703965482932736995078714391768291382475379478937761929947106550562607028070709396412763393194171206703002890618126586821715146878389934672278275164153406505642970152358211410367251114837026693392316436255697452517289270887335181213322681441127728337841449259191509122421336302311586343535012610468525342028461224521906229435254719504305771472810138144368295827518958701449862490634423996327810409603848883618405605030640359720050192629879691371839001249422823092349774747078422698263486885152466420142379516738995278564024849128579121963529689369977132477602161663367765048801631381413631323415752591670403755387679917793981398426203685528171865219611944484375878822311552362628818773847093309388025574480446597431964118701669559353181537213266620133691342988369209391940241216594142533677881303506797578007192860192655094172191123256027045858921241465897455518872922447854244766473554889806124944396820169413845946733263505694188866842387340339420042130025785348681088101023577784377207184580519842287094948763950179745548504506228613976989001995500842496906221551524623794769436212197756304878079530650749486251902484669703529126431682536769553034343696571573711689992410695069015114165858489995313790552360357087749690278936199156433877317174059662422168632356381476446124478756388332670231430956478369124196318202259976177264203445041714206022771444134853573016644712229155549751949048409176787490630039724924806724342300299214112476997723733741774449403791394068309154155098286068414655769014271154419504422935356650569941786610827176632138546635836655188058996560069241870044877987697810769162640399977495015005149619638564119427601881282901904146023265860981030919399896172301649496704471675336020961168236543131642561266258621291642712330020227067455828705076585462838281037844611297896311862022846803715593363677696631843850764891332609173608446952170126267397133833645962636799863494735773132836216124717880306072606163754588515480856187401518467726100855821029967261726476470820321202147318205741206221492364835577212450068912537027095060873791491229776752193925402356285056980221006796572425954074321062428635365387444280920517260528306841372327116708110124609120183538352976444726570622633068546462556250894710351348002467184575005870607980284325228607057123918524800553347139000741835384519844902453569051552539714575356832630547271252504685303033909014301726386411090248058315610585228213118897816619619909251648317026494207234895761286219558842723815033684921074749287998924468267729846844076973309642649670123629538928845886566428004846523052011081936127583142290546885426080767765694376163514419720887533319635416033624697162950869307999223286401912417393698216752483579865522640647197560798111438554129632404814423776194057040671776474229334336530338151645602487235308243515254958851056880086493947426895551628507622341592301073731934954161112866270852811875362880821872463555909919749873866622501211064714588058984514876128456775514324750646890093059443315317427742037228472296423697750436880549174760547249714812176411252355719671228509276873513509356883774324148446059526845543617172453109217535471124672815908695918134336734379037993275896124323093762241859529258851357689578717206971675957065828300093891168762592141546325293422274514331090065833023225773191825299347713582389496652304512064816588663754040165570023729588582124829696724340944746392155330587028816694199033386358275768429371290492887640210406551552408120811912039170967339481849462740486397409223674807968216191652130112240578785645427392979581560181451949511504083198610527492560680514104130840731461734639178913879041773316648511877188115568092851969507848756196039051470161918530592199498141763678402414776842445766242083460705655789872801961679037968663349472026149105224299305708817142579223898254614674963543039965622731924428492786607811201690589309633613142213520577979377621902583271279813891416625848545877015044114565224941001281167810196888052930304557441856229805048037699350455535482440631414621640713920205961310110630227156477302825642639173993751251629928244503743671928245403055472431635302959435910369287550566620761518442874383325023254935569735822907986833154087040921755278532658349205751106763091926257384571050063901924868890743792973246192606141680717104022853362478782315670055617505574686404817416716321894785421439915375374987797279323556297600754455128362955078486474642984866893234789540852888992980403130038458510784888686462915150395298560891500495531879378914363029508024197758517864590008174926103907043818568283985131612638101254002411676003021238540924540998988370765780905984433056046968743807902443090517904853129715929571171953113756056366198479286842976175393681625019631128922308978296169205320977629126507695962146979648136178369560291915751836455296246834738990167717108853676571382875538867101363000373106876291577404652858884499352651796732003346017425899895492762330078745054959966035999417511275467191036840946765383759170207174058617972501448223566734057886756714214774517706591855444288279477006463676877142357758172170507201207198749478194740315251145876488792344273497554375616322418792634028948726008126861798898138849456744144522287450447647306238958005000772107267201994346359919823166494189287905198750831232883621820947262203010373534251690036246567109162057225270558409681782969193105244236025497768550835241457379376333615879432364167614497345568432054088295920811600787803867532902070803003857791687395422687849425219528256509037324963548333027187235583676359212179982971035778953665388391678404542442813368462832430854491915795806853519430721446089997608900555236906233527657414561371844361028493829022533230805555376764809867119924804588810075564055540819749535031633881035960002862455815529332745585386565425046089187978407742310570449926585459743925220131264525707746384610324841652338494667364821082228872463950218000739446487683329820472617994553285040803238886210984076832963012527742010125967713032539147373570662262257252389638771823686875849360082487234150508133015106496927944566304461832782338543639851128304856492678878211226597011881406261202742648875957881919231069848527111484733518354016584785086985422960351050097968487362868380232424310998936929223382050934550985916966522302982056002384932606076007892469504364827697723520955148189733267944772668224192102415814175407999919068231304548285160259011411787590798642634854035403095533002674689428847394672551558960632699572635552502284375588900854058174652941686312397771638184670734488172482057668227742004036314172174249604087397680348972792017649075316198632906303030452294055131871168406035176313686510388039351607530182077673862648963138238291584383325595446717818572858318077536410582153840657056198666397926856212355791116142918764337785417063883473455569122371643385368815787491121787282972405983158582257569399220978690115737698234143441109206941882635510873075344664133969142810239040219211368629486840074585321735410424160444756202242834758177435833922178514845462078052492899964767946724449338996125455829652368216807597787264710048818256102496870563644901963394496282971872091173708831660099524456898551512161074129382305993863395069149996117886128034799578309849103342913537764336857228708351829133251275568286630427969751477313700861287155160354143234014037323034466391080180900588703938284388273974177968249244548952984921930903560214918859459605811393205435065847594417649467656034452227604876863229764689648725859339620606389852538054307513200229908727032315859840987483764722940800579869226313539860203668248775360258554316922725302452919395250353258090293147166538116813286901369112961147681997603864174994684917494684684562753411986180144163621738315184264586780378266798284300874359998581932515423146946590245392238197590765262750870105882370811559602496859806704826661426217863378656888684172301195468390031896524529898696431835645480203900253302649155488249417123851041227378613248500462317918628299288714768708186027218006229953872344430278466995988870892985351254053288118774700629138142810962262008148727310133948705425273223487601718106410291623749642184356953199054392583064980870081939220518813943501838572579365409686651202424358982673727513702399953791590388492039124125034171690667440318560616948200880993177157067584528534555560333615105356091307491720839425332444662020354125005037962493075460881137788687637252887163441407808533818964552036920492026686448436915851075475850051103308908011929444112380431160846713314438344393561583604938294117199192742468768198616709104123582431450111608657252187759238521364668133360381243186599866631055709733119052060918701976244661661205211518607087711489535289610441802078805797929617492716578264903519336856933567570258538215351811521813248527951570817943677039939898073405316876338374216889004160128120904194384626362971453166839059815541619106591654750905774149698150553532367271707763730389822832457238303797463171859825850675287944675512525223070836771349666279662206760087334612374273732180932086269362447172080321145030487951827728053772757180128962159260959936461563913642995409984709950301679391302311175793144416639198375735162267957280245450691337398851837127633786776701345726523361127752387138092316365806824538202286514943414808495971387180456093671985141233560550719487800559142759715832465361819000699915990820855167116955629890411813454582023293369472615077153259957316086218429752554417082436729954680131916534913586926028111760651344903017102515110251143655406570877697857966580366836472288066342828072041166007843128609537572092725806519884975133182729837146374126896149912305152941727765318085979935051163416056635285226417633772525138913563779369690083620178199234814306906335720186796827461761064711277096249975483600059409179861247700911522287866183958697050004821558249171449043438633089188730702414515595673858439743679117393796774816671958654182583907387688878936236579212700988145250665791122636084225515672338700064132234338979104415105596550793432230820766111802389996308902972521155398968433410239810931481755213527802361298516351387364181672278844370948257899045588003166403562873719284393729480816845937269805233778492655326871028541167671777402346696820849238402915891387364918930364960143637312898022468786138432555452194423357957139073238544034236844586239216864244144028912276703848349941647158142917751088573923160294357120463945695501889017134306799138646277876087651163585383309216019886064876117819980463310947331456182904562929890100342954683236008947580734088793308860316421274561180913529821948395513372201350045075442902314918004173452346224578498384273487859982869937326297274547715837956441078516273691867408590204204289067685618016558848560811477399952394024704761397598264116799771576120122798235695361432982735632235441998807691118831590859870636384605425838996084887291688598383562880133587950022162314034443069244890865059774486227806042256630894676601733657638072495898789964645944324538017635649039376507993508244594379354783943271429417008437946497113778709995168540869170406128351632473637603344626197758348814064362063805411878248869003155785928341144071342939957511931631191777114399427149466663193466763136327549162602290582257759739378841599946109506350423754112737713569922360850014440306110697940819503517354022118401807772266410523790987535887193189033062766456740299096966264216321380286454320492865709232399041108028316507507249716083103999454907679003944815352473903077220061406371600578647032138641709348529505407976671799232827697171944394248642890157672377659972922059827352168375148102946598056881981565899740153256739203391235978235608935320186701573089400174485016939373929759175490122811478257420895889961383154605427166636507725394991918268895531488388961512229815205944241033319311244388015743001584374487257538561736581252087000574005309963778552920358250536241663245131547175374631375091130510713057361844502333641543484977677828710991037906958536106971292281921860307465517344939355893352976407235790430283989213926124958449562713677432381730998236958728951596632477157227487407067633214236988485402459061668964691738472311402827708119950734618163095379507498591580633966640217234993362148509366181728016560440118059579385190073084229962881521162523464147736488011549851440340682262853288131129971712460887157601996796184662497452913852308087345122916746357395144897507107270142810463134387005866490419567702984962200953582431065502326155524059529676699133950523228432639655327989185648995148729666966411410533677564727033862075667248881687634151046953543392749148123540103277771044251273912612332049873388111975085905159517604460014414738818995710759865354812462202607226489913838995081757294135071450674769591603755222528959301536736733895527766742427643267845012684991674472726893353668494501397002626844131197083229104629566390077339840436398502290787598755379306031801167190742212656658919121868275884495550510800446871569307713638076348155411863078456328700528644381495168086563732011813128009227423367902684319381894863926848311688016315079756260710120633472228220471811289176434563189946092527638861266147737151775461219711744419591420741903765929334618031491646408032194063862415389863199563565965720516457792523717145569111683538727642676124222514316072451962925632705813666050961842724060703580497454571750039262356798657647539037988286141039891132656475985120195419800516449840891277796392015252513976923433572505721981741505373234957755225134274555224408598996546841610741474413038108157865962604882215906517358137433715818083698302996807685766317069877077433656318120066212257141643875392454023414492192201371968189011114973955398668047970927393917973560038964564515427990414492436485751792830890465236193255217461328912357303044672899716801223357604864302008219228660383904392661462178155961445132661770239388347770918182224815098986099290784099543094685421411757252127524444512546667510847866087406193601642262390644860413846721689890998973190548962040055869366713921252848819061176539250250278008972867561475330663324728789888022193782243974751302312523274635663362446069292461338905407840618404066608054918524470424832415520206364306933741828926946961236926276982454560584520779867383575976800234889360077934989656175631471904163204363410574183144037762451271656804346223325675355894858276214199583010146055361739461025693808887418420535996884878562939907818953617417430197807329797528961373631171037275720241441930212375963940154380273228165137656717107216429913199128071122494608359509035303784433157943617915908103580188164109925309551359791473223011355200834650574505468781782384185128410101744277433490869808831961298967482186448551101378108549767740077819958633033061904237418987548277768028372596038834567580969464906529144429891014545013893846907699955916923965908739219396040444932050654781881912096036301050599962161324344632111968286549178443302168155520328921070399149602367852483462041264804611853213240902596341947538275683851525362153310432941514658212620960945878828572451739645781752672014435098059249943223505233666668761061168546825556839666320232723310699484509651150631916904339385957752156096330194910273590047298738195338780063066157151244705243559716634695732676123255597643863616757888494002615659276573133754226903387408282578087427682943138176111843778681800005233845018965245746218153745827642600500501004383036338032342327612280739830128848147177404855798852020136136090070495319465981471138458750138371625705118911666207737779168802888978239591218525828865622366384758846344227274772547153061215346308634253056321371689392583440115180875341109799381269356506030633576036053869375966050140164011364669320217801734332577066498237258034348355698530453162901705494710514636025771187818495206954184811027958484389551746446721670435394706351395652966283987631170380609215084227430740983638612294895563768288900121637746724169591140992599091991943851426388694804640175102821529155389755518004137003671772240761381038020594748308101293416417369466990973228857313028857399412646987418990286854053449213345008781842456448155976661823902905604843833861018589453807933524402498597329930800227192699264403332400719518864573293588106312629632625591343757723275715068699129684636737135053232248808012143988954781895395679634829212762461457074694106112964599918614493059981957224172824120763332566547671403936505489000725034336895442492937861017867838737607320882086817808074094505728256878778378088722294929533459990269899084638728344312325440953260495221620122416133725332540119802084853787581733233721082404845069043471519200693226553521035989308282334640045997074041044879138170441308017849928407691021836711732658029651808674687860342655795293313100677575257709093491123878603935020541061904999231455751565064375287924383695146876953747580264090880058994429869614556401180687988836753735920884949358952189427764728137837353205362097447602064051562758009338808895044078045806903239420799429079047455058792043414810545502488349335197149660616696600369925171013415717586338301639220678842788370110014833783461055901527295841214270853360488856083847108743905018026689654667157457059910731538826631447949648762557311259154334733790946030212898006275734160622930708267382629945560879506611011954670191501284562287693342018982416766843613932364463421973700379561597564584815912896058812251912748450268828496207318395005999889259069357954081613517020601528709582033895497030604405847349201318450866921517436307973801292224749272675366509280667909469207499345144964692513149912161563039289505552570375572806675363960761519625617277039294156460674199504423459540562481469727423600001949997133583558474984730645323247840116482771659992176479019212549340315527748072883534312540314852807491158234618202411956838996367294166936122757389195311877251375777576578961735255352310011209891412278859990642826216467929389360810993729323837717875812737545326118997993895647279942034461622577190679776949812673830288871476253976451902681256223538474235170600877038187507228666038165561906042725889288064263281992578822296748699799072355169421409669076160496457937272545533294358641577387995267168759751135847069081982097914730178695120553750300746411908700653380260133201403773512316642627536179970217228702971802235890227840153979643442265226804510835137971649159355136141622676673826993157270029384535735183683291438540807878140202835742767999603777328468561999217088078009588763232833741659733295885296957427447507178462538252109459879635185631235274868359914558908522193076263921751832636262077840293969918416362329314153353330228707052095730693914485447319121367946187807104665418681503805669988147611606651424371085892808695722261884058662031559455091262867420688855288772068652149273810185578615672593025787392343984019235375056698954074976495954871942398685232492677455939927930282957655450285102509786336238755242232933478155817379937035004878891331155074052627024314562162811405142685378458110814227044609422640677557275945168684334252116729467801658700091340341424099151965452825854596519428558099978072000377506194611702521482062140478444242459148006747733031611044173732078674865416766912359866565935051097076402763506491285437576698424289832726041798157478016280010175157906461664612195315921334380421157184568685436136571300508747262554676904500331759175082372368423503849141256903157387837225319801891161479301039294799262729682559992953367622196689017001679518756531797753681756802428891639936757772678796741744189782925101814750308270503529712362004889605203580254669474273986508775741378841652811022430976057259969242695712810132020944155546502212758059819805884608100912661862098014455998669446024942409332626634279137212942900903378742204145518751984343961872361833850562189162083052200874205037293897105157995776465219195280872394560405481249918190140154913209077229339728752149709571858820191509916056503405516203319416403021196014065060677868429139566229739422103571039008429291060132830765540172163068604226305104298117097020458218862796832106581983187154898749274721814081253994673443555203433728035827066864415108232696171895908036592390685286250123600408656806316683633437326200934150776967428470990640161577234029084694214103046699555189334267509825055929963796153612096592498116345144251140421101444634907432773085858231726919373006834856075397164762854695118866051758423735758912314553993887185600717043966600950702345652828922543273894414381067532366784204593737530490392944984948783864199410087373916582418650472537603988116345603779291376296807084306785070320426013336934199425823461418672978638550067550039698529327480813435483078789773219379191644217688565563080247283936424567274202345351710291971902102327924403182359963387892323678576552094568520763140602023243531664635351553914775447692603386020901248482279637703780448539394200329381257443164468409408676323607475864907947930879526144854758971585530621706866404131105312901618210417496015289535196945237205583816181384310416789758561772565348881262831443727078665707138302435667877820216038987105981725034744557283451077700106854477137252072500639959583678807481451846361605757643017126927936520063507623347293426097838408933083263766186115368516547282628849193139160702838640837838997368944654871259140881653676774242563476275104245546779741146779567990808814949587954326281430451766238753113859556823879848971674796335116837324618170021913486262887939333329059202889584269287615206389503572313440013898103075266428496217740669867693120204086530845978417500606562965783185977770802061955571577739304238836390786500615999261553574455926635955755147727828684205002659022715625326868737055133830646562484263216602895152907963815411291920462826025350301628486706330430757692078275465241449579470708873403320986017469630344320900553056662764077869954025536093397207057635980845756734151425064815457198491544545000199504496682546743778388001229380299566367871787751705198357333331102153401283232041131156721599998869204065995666392469765775939501018482505644140916125087717321473698356280657793024293174619824360820026301616401732206045171119070913691496393675999674567828712850827333110254329180611060371251170101514076234869104319366160814617377594579854677681651282193632220276482571098726517532915580831067607910638150996577895115532959293411851619911713243582694820353630471325159818114588791473730564496543810504611780698137882284728848345326751890277662043841536615342941467301864835248159428816631224088252691123163243685739176137670600390963509941936312961152205581051161464934202257484265677354366611112124496303256135022017964759406565145298302976344903109722853642119965725727168160528663325465771932294824513120917269543788728825106611125905741497289333734239461217292793093492217578621102648076866682138828371682329956291832232876416207910770251968103708133768424463074010564589149214081794646007526898789701899847332467019516196655292306598110827541721039363924631825412557096283568918723405564102844175906596715427014193513475460920099344494957287128282781117960037991152783045125178677914837001222339267506317226199344956046282117632327190873269090620579682259449235296932652904902244194638864607803354372183150223489680063254648294082951881155823635913386810278328615410948123723700867386461812045411333415818190807992021385441364233986098362936894192000117746784281050874383685609700587035764940029998651473533239991758314751019973778273957218539953569415947247941360299940493821124703308577866618833779751479024170197811842553415528819628588630512169653028384518020419733473735118087252973547433470824299726886092079685110665127564387491238447063609515784855224987713274952183935384196344684612920028446591088506002629147565787913279447259715851793010163379101023617998880453551386775791721850649320646727970358158478354181429487715429221308044020503534758993036722283682645780443922318623788522780741970350018621649238474766020549444664265245313035818641143426631494798865522436561553012133204758567448540895404984057779643327648271228918711395942737169336052315305692577529056951538747761863844573111181304769218174430088055750031515523889787365472030726241063274513080798282853079237934552850726965326988170404717056207266117192878664684861429576567722841626362459021680644557581058454772811171922752955478352416104271650327583449083267306325313772627038321240721378285691469634882975135017501715443048280060693522544590478544100665644541213238096378205149056243009523824086915996297700343164563078868790015627577214040192808281933078345378150406425578567252496280482701798679371104045296401339130963668866279574273999405383743887219068263825962438040709465460836472598383677486305323950857262677034042300815528295136619400696364126987386309000228680537790464057849751100333233023963639669111944861179644544979082816483159647098504633834424082382811415025488198652719041138285925353874092104326817009400618547387342813306806304095947935602096775691079131730949633655219340804468539183522992588981293650944941007280799183314199272221987923411129360096638986555767643259153123150385313053778042219521590039746345162249005743103365824736112218442763217708355039309776548767350866114543044650531302184419856452720073828365895547735935960180582183622478574612233227425955904710558375936997677417972753013645499805338649905017208433988650103883838208450488218935243897202479306257700466253001103162600561393047365272159910832746526840597731463163830935158977115612939192799030921629208159051057491585019152355274361296449758861577894892251886413518754931032915900108360909467986604053128747356438053247107795820682653883697226307904369934780948860946762176848544991163165831309073542704050999755572796459959834367297089346282764318643246999109977987670861320900545702965699518427763594970748147995726282691123657430827482932415096780482772983021988691085713755275417622425474091224958576470585411717637834026310672511021845139388602457042563403564460314752343859383368667672789209897482724188669812226165800287241583155937675652478408238447610161967883406294535244357796819695059857130927598380989823345014419098904253224770223433662634539448571811395017375032900800490797417633019705550169055598926703395696886808150434620965834946008076716048058973484278829292868929248299628483787666949814290486166139107245108191933314251265899366107403081542304000870052116907688963392591343919187186427574231689111664428746812391991256016853836063577277765797819973108082752311246844910869718356404424667602769062862303372976463426417828242035211613955157373098721625862309173120428841648541984946349900629048111332931148331938322098502618879095724309813676662591657302031581858044131096134761325919638413982887698511523940946618714235923599001225695583346161726735391688073913783128117023543217159355067175412805040025302731262391018503333223215444337915249173455313343524858049542665395542459182526813675236552575999575736311590379272445387651597353429582890307384613205927822352277978317802996040967531126765531946851916405393706801711128321982192427853335319484324483798598343246309033976998309163327223532594677541628148967767493993496973583726526028139746437233917925428710963248475161649141718240002949999234443657110685221694866840727408192791929220592493787257071174517832121567532850058993917410671852360636573443543228676449088513071341401301582394125387315876645362428438872790084769540440197743865242557884658072240930532771138080141964588441882679905820603852493898127209180269929795087047687338482872933439852882961669355483327231968867039350235279013725451274232687453619532320611375281557791714398981044816068782740743781367944246037189411495758089753247619762712417378946842355582390212175303166205674726839151575215145328089100923150122967528781486547796825546775715887787377759358094440558352481696780127468886080884115965231571198960426000151499471452885996233946049932565901346899521411121768823512271157908491005129956919117225829504602107502846983039654631948620202457986595811148253354694639034591997282015518606250150317095957363284537287752488767191509053906403837513488682766194998096797827628659490335113842876813660531913623278232384174139051848816165629336223743099149577091827744231278671875926068163610898256412779937239886870008517407226026413016092986412712656593688981339794251441282982371147970406514962914112868313674238063321562316983046998917734536855055202539739026362631360473822804134911361734306040470549208893252271616185960378456398166057902758792816096667237849379557656711488248004458659374919358053184400377708462078408943076894098363247821030522887078713790202114105899629274560526335244287657978388851411448334902776864509763762280229059144937008686291960779518502767544507127847141451108097110121330424221974778313972386666838935016525270760499122641947377373243390719168527862220897979172680820682033083633049439472819680572347305769092061106041167729425238752157354981265922043199621548483867783203635220532808108946294317361159898580070449035441520101301812807249219363488169539582815006781106596509043833070863691573330431502233911573818180695139837495665421220123599318506470004842416663102308803091321165740889866447770569063322984852577952429056370417565822693125960582045904032583189467271798859323618912201161221575392577289918084762688552640144291466875935416805148376798007590842928743552211064710423396810569115449836248278968262978069067860321653673071886770349597320310878984291931140327026789666514994523690873640795629887416093399106537577846994303687061945472468305250060124469716838525200169893487705816036529624786444218311631077476858926125823867847890912830682807300477744002690838567182622963982640812355305426079819527574240317464157249930491694410219589838791691155329199016919529519919472184793366819944205507220799062350275362374401321158747402814662018885888811512689144505157446274168144453159887250700040496483744444474211776325646539492894551240217118223402708421018888306579653236704058159953600779036229322559368867923235946361379197355415461721960169819741618179573293510427402272185559823858698074641488150168328077321484485220188748756047549408071928819832530303592061989956740286641226682882332884131064329135235066359516740922000221869370130206950604054192718659349287145411801480681568068182102218831202338422182471112781671845752759070310698384767516122761072400992879499226445921809230594107525519354486339933740545202588866157392922616289128404389636449147898806454660146618041213342937525363137308023680571475591307061754081021956243950490591820912694768212622719061325623045707804405579545904300921063784343239995629306985605476176391140710766048523602850111974687504427238013929790470926014811213555495265014049408523254517553778192775109106409141343829071699174339368418899454400701644891003691652079665639462435747998028125287223385878252402464067920124571853696162719665185087431283129374324515587600178112284735869697343912629498103119134497330720625759841189000284056266343694683259963110885619671884730802913449446314574299766760037025728053726810377240135049457324024435519487879340921905110063336129218827094266154917387900297954420987840785240186031258417359246683986255594981538663488778494043462862515084291952542418195250264025785960864011500562756811584720396061719635806806178595146073825376591170026690844975668437854172011077711766184227530906723213099376241409751664175099757911840590337197605902117256591009162253374843096540010224452879432542486575002213087566454670461584365897304348075656326956239918746036478576632477605297697202615452469676547600533568495220034258835791284504609960732794461941442465452713406264039121346341882369438518871162640494214926525739246997846120304717352259452282055589919111661367510140735282446652412669131053153955925583661239066208262436824209525833908395953984628330077484854440807711889179038971972676363995348245326296743265306695428917357297154705759169070197566451599426985345414734651247669130848977233276998069317382265810669973620784785120282636245668202567816870562454018365054424742711750068728348456542458154012669590991913740353359084385061032422715591014184582253551966523043941802786549194182725537013046827721590794323023180458663020469435508440133289796623573904000775963810779620323898073536311789261498890288528741518877118104066925633978930764188472636569032789005190724743441976626827432897046095484459296394399623117193912188097238932042302533714034472918290467532062476024794627686919206679134798155647699562581976249370317844538557940039776957670534758768509687262586252139832826314328180569045742191799189262330717058849251066124730424994712626263752731374292114410859560152191120171368521159380599584900036504273532873734095273240071323405972047983739709050400078974176869835797502548829728506156786888274123707140405281309914843522152502905072091403110021568344044438091804781016764592449191400308797063941816954391688988852296573035928717402300196522669062971375479483178992869112620927235751519997389032293330945123049513453159184478863260032220972085581358691302979844016054028494579871608337179926581027604058525728201321174918981336276753017269047360007371049788777519692583864531898845390563089162022273662545362580999726915702968998413576509942371465907470208960112244132186485440567118234433605852607675315541607446154063842213657940360600813539058043661622299610484665876586607567673466467233058827717137239408751153702011575685424609644528729140109841156320036115838268227456649309365236150621944473557287418778348345215192944100117597611038301965419989452911840307336795743734897436539141587642207664026109827476736854342374171974003609182625493983629109848614368204593659067274404391486050087995482313519563898449542463327954939318525709349011795755721452338332626611706620521921878019904881835604974284438614585578928534472052262250515140006874363239037838884683197948869116458499709630137068014071999155752907300869712390048409951992523910109687951729071866872004574834146843140110871793333904183036300956570648564750484969630889465437368998318841091908281971916851942652864673593933833778305293381515622502286698436182474148036754702604938051443196818748688333098493995876027056505340624310953412556294150105296586254647273224371845671131763501440892485413324098198887164140530419361646656724963423362325408643419225396731057971732194653960349452177494490957904872117159566835629916867034223345422409617130525013677458215140088114391990464842584455583799222488912905738068004705014120581818815018631206835102454008123632389768334709677196396864920621375831670242426137424900365500250239727406395138275705241830902303750936204307206609879516493837284646192353644581260882015320413129610232962797345641874238143301606152752991187635611956326010950472623161666999994430355960500879340298340125900662290590752851242616390939747675504758330464439462225568908058596440131325113734516472324782474724266187693800772697844147030922413768295206703133942983543627850770550919099714483892384161723105914982484216807627254611524870611239558870163823291720852062842950923466746021033599347113676109715109331421223832844916575125900181010228522968000812081998805342385215118964429936920839418721539450775937875101700187692130956323539754395000775348723905718015839194076500805168952277668846403323685934356801455905004732285598884563145401808871991169338242061430049964768233302945515581161550194911042904730825501209649005116040633461459869317421664670387604898300437203628469986142658852523297414725135505108454180146351274219898238513413986095711732882439563119343686208445711751231827829817462341099081059090780414432642078338863873464127460087955612024243824777890628408522271279622930067096442589956145402994635677606345940926503671120219247399903978734139585155283138484008219479056655909896994290867303152343072160095994719369111047111963838181878000977004216229605916492673912739756082859237984238308427094725150371851699173350479402325793083695365323998063667311033625243315892359130386081785029248375054830756590600176706610792324473413028110545682996672322779780439490408403328022992597851681681501854634624374507021208320917802349812044895700291703747175187978968811065961519423648753968613256806032789267881365691249491348133586087803606859161455841039873615535940329454683433048806020709565171793440870726674220836695002096570672699737185747139256835105675447899050427219777639490671063397667199053120548698675486613287866074087735542768757718665768141072467208075223991572585589431325823847430142086036770995648612837116098675235726445090838265017929677866944550538062496028047220293419801565373881037838750595135528204692125543156434005699249588352681174754148636791083364874845187414997026097810221014559062357043405386189814751233296686047210492062112067666480142126543638460046284990555266512958827714891652970227603682732579783303345859808414450798416368343824771416900248792106175922979996361689861088424824837910731979163468642241432316032414765880238301890992759259122575822220013644250347048944058004594725446835996017581882934072837224393776904391976101252974914625447472965052121145762588084185568884410472391263426690554122197474821451331281999103279373018091948683245325833014162291414209557613931802147601468041142533530448069564948458353362163269620694575340045364551906591192209269321367202343055698469146726106854749252518181918230476017543540112782681509365453291819157513147407838347156385336261692215165702799855668950070884141290601485901361564604605200478253684840279765601973515422618755133427095405977928450203682623437054207195650132504243657866563788712762159916803441370198946293559077527128299492744888834023791120176428910556740839196182201856465692422283692121264265504887005864629490741960555072663402987357136654178376304155090746209667488989122978744067758000653898636818485236606487973534583975181674644796166457770134686692491299319683279706849149883377523843626314162419685911959922598205224394869995872377277159584652596502459125236230400235242476820834699468396788083570131585515582454877201029876892897007505141432882871458265630949352976351852477261424877560541985450110079059448822126842330709292359166467774265203734235921173227590018887468042394601863661427202826459657942165237132897405710417265137234335949454592641389409090375545736789914436708826296341212607384473518305972457753631593736112066735256116160677798976599694069579375302616109548056265262771726545065782153947624660085784209578018604608591948496754126610213320220440248861903680005618491061699121098322158870430743261110236957750815642310669051006221731246621046442685800343445915834471277313408627019517435125944359133024832529759458122841777826325554532782915566225520546352099049112240551171658970091392992442525994321019389603339241544740645748890645821936654291842877108398568291891305216549350809814038470694890410329571681608501672788840811697755080050025597526977255602907218608304130984372771719411094734808902112136305948498170181108687332196618949394559263112591990561992196484994246200006916954115960467583117257801690606606342053146021635699756984707945007038783990624806276942277191861081127426120225455632045776584218355528873949780564869365183258743407014197338723270234238767873340645565872127984822916422165038011298752093082986592826741168993208235175389944516627913881073881460441897985633090377087482992741832586271293024163617377812445081472025259775755701374699670952493230564352376403632986092688149416732774580412995305148778345250944087101661824279148499788174647859207407606134617947372341993185154060096164337555850511101865308178122437926159119542372532310072102803393635964301458918448314997332602995647056365619291402822409964788610090056576729962366672283012241119868121960616031060117553799711662397619948449317950360714889361895671339583723795631298032917792884194397558911625459148509037638337512694723511782508948824339697832794562622321504874821806119060928825319213083707953738760360743403340758180061119591537111345015432264543477137575931733363911386679723469091083868337426825623573120405800722000797655633365760922702906293066677321163689177531386933258675385519999099220330254694258286403930291567999699922790477979869990168213161492620559354405603875915455415529122065149398155316828047251033559185197994009106212476587125692278082936804218727620193014521433113221775822484468776032965237867312023868527057476962037261637265218993242223148715124505755435309850130163493463983722747934456213693939693597618073839463660533808593323983032351496312563348670710171244053545926651086658893092620808880062394470165042174750911823866014116391955402813040337037981046167014604145675125661010436991768911831090414796692922854067615514471966508781369201186620586690334975792965612402935439396515093631202134001901949975049169687989769672352784893922156758267575806747093499517777621287869547426478204087557889720280735540350437976278018700505370200447001391745471138730460236573135969327040474897575784349586075087683670705026533036467907640123305891173500495572002718285723709986278821304801086282597593835535075117135197668745639826860622364450376021151366236234120321929256673785825306008550478630027916281104871078270462947344247492285089493905541871308117026489436492637133065942711666196733167494049106404811870733535470921581960072560681847920229066527321714340362388705880898505804983846594959264554925977550826851874282474177009289756361251889477946233914454116511437398996387338648808460169252188827653199199391195244785989909978574939450261389106395197883655060885385951848151052647698777836822729854696666153768159253358193720576274432427024423395761825344142744007428625844338157690370121353436264187881831153810666229033598328560410342931062749155516288047049622406065336924874341680953128816185349352106672743315413582364860601303382305615321930190700304139665755246723824609720741629263826822965073878209953406062737604748206788911446340339268663678097240301197853837216017348035527301058614387578549475872600448684351115699215659704086097344837364847158760795800673393262006651197324585550463579680900191939865337506388905207403114607287099511955460016196540893501376885711842882745734667646263960103286554753205204504467745852468910437242190185904387035935352960696756541770287853588521905762879557554868183499047624376788220018476186963606286635766546783864574199972614735981535024592796652973680023368631097708833872627453770092417292292132164638995314093302777249281124171885028052845864780358195083029658370628968288312572992603636492971437380301527259657198927666509813785899913661492825280584763213675702487856605918983285940735526553102918409271799489958538218221742813798310474207821335452988729504953680070054608377046588946499914643556039267930488493529530169393587129004282228591939772374811118595235301540085028420322095282930579709861020244970479755848406571671925042728984064713847578099443907101769399806601928531179533821154709255506023364200892590742996785502063003450429760403502620166888365751186173028397196729977917487637170998055812297597000446203289443393561130587498753252829112561547840488164558483650256272569658819936478051659337147169498769634862482705848002957413173975444798705398768585683432570921442012355705383668500025384336665935080871246732770431929054692576316539253620509655707811599174750654844973772115725512861431811818865345903534112714226235873092994222900443600665232758465836191254400633168205014545499646318475479269359881277721692225765585641163571929679997178516636228039427036087068543056946270161545753353034755136398839280157309682355686192610216913266433353642078154930855042946658154425456138021187868508043641210960964333224222259284373854585671447258176092961433687653272361744413324765666349723163147235827466066295717983195360980730438321769497342085183934997556998408897422562798299598886419132958684520820458282011890595256001105821504995235229376161130988382136939452971448958744977236979970820569247931307496612627125436092967553835275429724728263884365586951538655721229075498172126348689916991583319771811214348002511158796599042182507487584030699128084964422912595206651001706478051406258064225662171723559527318345693364390157976674814621688924769482334907262965125727022951677056030089790465873201811073803706832739147810853746817666163287755366048576884708138701617618917337620747032352223723188132067303644856393134554739769524053819872019239818593236767663825541419434763414283254274965905285903123123098026274939446379122449461327570889544212061085143795413257365498764472322943165709051634856179444236463809122569479918687493682204968916451129854961504674126828254118847115125444304284874334269107407925253042142929868091942532730064840663943683891963077989341942670800092967576248600282874608577289711884819233541046960302237839226400214676336841712737580485388442696885700288205306184567835510615552352575592161597613053943192289428960698267771175924676875866679330943604856883296237073561856789254896270461781372404955265844510738323156149615706479827229342031818951445169880644720125115971430540930153925751820471506220289771491267220262760389775566274372415859226296226878293167550708811826825812257596116235262037247438768555059929438786229689124569101794018937385379302928465066716600932371716357454147477854722865469720147728938624303501627349222535522683552800105455923577196492823577948068840050603416114681230846015895978830235450866512515090867744249868985140206711174888008655282070585564726855437326706446540418573067705803732746145727550280795683197567511893270838287576173781184805466474732803860854445717300799423311644085571003674392601748821143159655899755222622094932096596029002993550207798182445892669611373332262059610947589024634007332196633517771149861266455660479447757952845691801232690490347996671571310751836087370786524060948512755465083289981081460876686540968494262236315135625617749398556139546223588004830768782489687759235421767121581082884483100444769217900677339025599887484595017469952837102897770388750533817954695983240283267691679998882758412405799088205393906722704780438280033182258172009198631465668847574145611739395336238491974773302988161422733892347071109649586047734106341280324071832801429176054013402836947290369743456160034900408797585154786688090065458114320319733185365621365943746858937488945329883053458875270836491601336070796329775302933325197800894035618673287720009907282435031743097152703213791867701375312234613956798722225565082305145348116433940091140952295040235142405895460187155258653187444618818021629343157112846197407053403634342993089260049098313224459901325606753554412463215187107229275946377635921939645696808442165119187298377836939209818208634488567462920254895400344540246846098842585112384236585850410109516693288750485740716411238748043992995854795385028934223897298430287710286543508699318509002619705970601851222141719937790185360486899176270445619500778092582738138475746414329907190354235076284649816044188731480122946027538849705019510439557676829509577594905189284889865120903768605177929268704128724404035644709588200352747005041887125751099748725693015745001290602837631512031535219072312940205184386826557860263162619267381264135475908904869834229966907617201745192428364888469568439691383512451793990276314536005997708060692088696315800839741472719538735490643796686020022375543837473671085845273701199882621184542113601952559874314196996238217642799367270168573168637305804747489031649303453379363858713852790502522965859819387540060454478840215422278050167995113554361687159003104345537950591000679695007436324485775975353429210211108030482909998732279783011520489960664446509365946206119621026465672669712607126514017805297355098924559869005526519905670047838703450451850798542129440666275813275709207797917358922321891263018131251180717457292862071177606381992841808524865413399391946370376699067116417668697914454756975231791268235822954511360860011233563837470323623540973595270647795379394800766650571889803869846065537809016515906962679427623537433245996952288735030992511948281010474900852197004942936987251008519478427323568011032827651360529561859444405337078834627640460246664933163503675850130287423530429035457952607166056766379573438551328656920705284172817018487779254767950453388976389164441994594437152399994984566611275602349130215196294514415479998566164233068421297465007364818112798702937461579699651373660349648270120597744193754263078875779319076566673780267953618462460793131628340601491905578201625450607890362757967744409031651038580417360524746887811183919184867875398236733117986544955465665328294294362195650483352909288450366052337124629727522977395797949165813387817733349845637474812514675014895676383142326283884979470485026825276202335317917828709222339346757088145323788114700053071826002007349590054294593570444703461514134027612024595920578934792953188204667852139030314913952412953765708663926652057517797190433473189272115248431617895979689445630998228452719150345565022932352576378286499091489286530515262989017159332642498922074557344971889119742531025900298648569744646410093621701831660204273790298633264262181960228012371777622076258710202951123697490548297471390350119279300509569978511799633036435225348392394293645185096519265147798437519744327298517221590740713183246278505060750468832389420263172781846294576091686922243489292845558966229014130162446336107975694802213152285860375203349892169199511544766688341165016328354035673120146812590520578503333177230973095741280861126383805818364785705027627591199785224855718891858220140262234831672136233436041018078236419600396800584020723666079554312888896798181165894275344554588007984919335822440125060424661652256619141539104955816320504924536745538231305607026036269152262183358220802159206285656282112383076703997141364746447594099448849562377453690832374035912518488294954021218697399864192489040558526462445800092875982827266509715916854493394834862497503608691487288900623335359361800046819252946226298043332311420904447952206280589999840762969048675058863263857590758488416969713738699588039822624791047946557812855863212019759765209019811694006291999778950924506560885762065802673506102676652500739316169322828422657810065142838252771436051424813541197107609893643484962883109434797845648928106262327012796647617431458264179822112329268300757180500016066865663719285895757556156689655815966801221692193787921110127240032877589406410706430833208387229990152086178340392589169999120307302865985380010916028954451048457945957808044341645809673259488102778143591935203935588384038050011691051518884623458349900446931923952922648589552679799335840269472333837363268157418469121431479957206106851627637052355801254558425530000841856544396529238688331091021809619179837648154404589989659980193217239933338384939100002307834871904048460972023890321009485909008392329496564234239982074191281790003372941522929573613637795242223239292090252417868988895728755765174386387229399098427345040716774165193753444237546595135261085093559671622690788622291619683333024669592518954584246988076466245227184534122113022373906718579572929176634385429846535533990333456255984373287310896392336379303985738378033385984514360496599980755410561769934358280390080812227540255653199798383234993166454527599867433816612923335428264808004378896470708871811453463868496873738331948384722949316278762096642524353093776862527140778000929700283189594102707843144098926401052252770714807141790820003045269531409696850143122499071973060986101960777261902203704521800889060958082902581836962324004434050492053860923919022310703978977982298700686834630290477031572737198640137357379128721127185387553872519140462095571174436386647941764521266225833971588726750825489221187779908933561482373376842195978511701234895175193953072608098756819417381923432829888169261625152900781811444857939804723245986384443230493422015368859849719436456471514838955056061292455229532074718752194295565735063608537888762770679260655835026418049281916231010959493416963824580308588619941127062217022599803760862060702082707018404006485633975291066875610862808775201474193844600412607151245344576361548508525685408093133055398718439022354724096161706441918914068432639506646750945133005715818522814201411710614823067592212011951012804956442247054261698525540542793419133597846234919018488388065279341722717425652523104803334994694749138223774589054691694062441372701245055358407851274096799973329987037441286129265675175751479696079024021321693696551270938797157608814372219007888420823603622513170935134823007421812850681959067518389040244140885968437321095733712606002800675461395124269979432741016410074436227480287585358982970989161760603330530559349928806030692668460502719160397666078036981022323901944390033890677956383644380961215941681766364319198493776173125019918689212675014199025021321261610794720862614218348464058027406601847048614330427467931390988500919740452463108145153619654858149614799480999854635233884747172466885302014313455454608308279030684846318261379475467853327776072833164383085639613849506059052912700811604578771364176265516913199989713710154255378376685749295895655379369854452045055512122543858343848044826894580116394616187025498475427215166204462832805832732625616142856072298716480504126042285415258911484447670902725268521700036986210088742547807816243735059903477851666215569152723561500197963674015095499853331984506038828462609413873652670997027672239514967584538937750437436529114050170490229996237761960796408430757091320677332334537388701511616603315969291149824293625234612312529527308081145294250391228293135138667036788567706486245676119773564549597751082576126280788836614848241517057936098785949712308652719450853242062272824512760021059862422747327014651472680739233923637632177045329065018555290177913027755231972913966022738576927649026288688265903034769831848120434820848830692475886941552310992712100054863019693609631426602506167741579527368485227502041713556469075206551172007375793399413847255633099704258033238837789957829743276034707655619602501907610201380231323383180545423018122375086411621213421973449814770535910327021848423179626991479426077196800392251249089818625868633750341534542282964051711290752978545069980814877015576056472200032082515200804073264709949658980959750592965514504880938246360832469304182828333977434634015898526456950696613896541417152649115837097972689996198759337478697447164168377063200742769260833702429267528215780536615634642254905840767628757328252531344656711895709381669773878151768346346345868447754405743219810791668418423843237675681592539833043250993665665181737350831378881509414877548624545444748653646928293772788670753607219472254032978374083251790003434203913549711637717777027302314219819405356430718084357999094300857811429499198713461629358635511065859827246403733905908513073496315515584166228091421387804232762383805951091359193311357035916234431709483702876166512986512516395793734753491538976799346802128269248253530853624764172250945994648818507026940655793138955906157904299132212477115664329245165479953836605596438711990661848750777710764936484156058397979100356870957545621964596364119297296881059266159611654740168115176193704479808306753399904195122002758186281610687495530249166565802702719046715249586278761449913634468424006255185202186443588928374074063223452941396441463843560275173875606813629906839155989245640796612798069771951064105159879942578346763827308917670726698421190975684483933634785197227729524013906412535504424829924086810061355306224030587379162265045161480187130732811716462657044412156649838124135706527485985625397936981981206151692286589440041211273515622003402145731455721088711156984171210233777842276825783380496337974093289638070240084859265711394442541699095925759209416109615989075620388305726966500937710102023758805731586551402614258667455956468433111428296193699891248545647629634892743779553053068425022055257601782487639388590979102803002522840223433802620327167942215102378821452946948633058635784092893443997376136282370328463203983273277127268428143936834401487953878660211240121272598434968702743249939622310581422045624512736663889028640109677772873890520489458120017493649293517667054069091091055924280658036769510475191429276722777288538657407056831739763395141052642324137212179071785797646778600642700299458583009425786871738379461325169760266805895608371306209433514102512694664929896973163806301623720759237634059090216935171197376867354871645838671987749439327070011949634054153736825983224454881769693786157832405139831497560349385339359168309664934517745334175432633994511096758526509102352336354196564942011543753573836182610544346228703822229606528588877759767697360723079238263166682169541119482189184896374129911315044291560729765399332644412669606992434263054345828863106160290773098816498750387971149481727628622682457903049050478350071976328697657324593066182399710836602684165437553391837620426023736997077483475441524689601111356040729313914728503208170701550112238977145307040807702351589796399717352377948215543313056598873518543450477820816579915306696016173367699753919024648649950125456660673844834232791047081978344322647113405673468465596690463897053673257988007093680867358146298198396055065357225184996804394322402831513415914129161444177504214426282742623315957005049572853914134538318610673040809620665002381163030834088493011908281185882561554289132766483365585709269268784235581164491443834509454567450202159029287235799549015252994850789984319717877833155043677333694724121649128231110967648891168420744145257155720204496915058762457243751765651152621923096478647652625347602732958271343178011965691155547497961933635047376146871180950643405818661160999194075714209386832838770136928954345307486123323149507451214875571179544057593971296504588729316770988514083202859461220069443031816841151050071861874601219194708048786403503849078130572131040017902730721825961782309446671135565808500264215157228274194651654993999258929128665941001361555001307186523756754632382085682132817829674557010534782837335145351376515228474183935904716272191823635168589485554250904072098611837254064242790807234436987023087708661256571422740883896618010465767382994132564318279295497298983975074039024294395587042625718966567677248408012196288284286633827120083723857713148273035960182631806117658135061176231812060082505513587623237609156350839498235565527073373778048011571897469712237875503394087981331879245205335136823956620728529288220718476292032509649385196718778667684035443895208028001510897897764836753176643549757775072321538075866289163355078831657653146064546917829275270689964425316631418371976304014580302134671010107814311472932259911021399011959591032284871375975232214164283464775429755163564036888057519380169318411208185126436284658972517828934638299725879904750048458403278563229373403745784749230366752333671290107500361581101878413814368806076115849112702940908852294666578255331914815836246781873080500235237630968322530386635901343192827384400225781663254398504694343012272213771732983284489582732278031618116356916454135868468940212764482450087193635671731452277289398327688893507084096530878498717895102530481329539306009056453478869174434250400386401687592560588068824852878519454525009020146824959266027825184993178148626963307261264164928712934340632169920179223077666975093335861504557671176146246600282257220020421120146361183529063681301304671202181029116150498834946597418972312006201708447788508276701616978305627946393889018173576440208736029557446465256835327282230955399609291155717985585834324701118877823074291693210801798777364289601313151982774833202280613062382140873825281924908918328008317096714537353822092522524764627748791969004573933090165838923882119736514281900687584736691414958835790086855943095633865805297824975172168195435186814093353743338774010385141360948595364443888693520872491386288837750032229928463370396090791135828327589463988712679893095972280241565764786111702477857874319987650827631916644756734068902897464370413584712226365323404253123955387713081149548603861511244231732771493814625708295943492080320027861805883059460904801725028165699808273452618970156106473684788216702087552280704384913141702409096349129945351496526103778536012757047768072057873786502190921797401489826113148422806221532911673102295015789647650673429936661455725709857494069373501588832022240512458378395541264120680242598777369037451550792158501191167154438908359630184597849570652863141884066478828562151603127959174224363693308188544258812658131074334854760541799972162015419188004971096510905883658392522169761405012766219126872267056014366481399867601963550529146248155801807067224128595722795769628926842092512500477627078332681892429850846527478063638346004715689896369755765708455335059532876060489685105855144301315495962549772570162482718221557151167366005333553718185791853084032690818852392355299336063975898733504334910539438549677101596514600182350693899248781908538999988296201035780322284366763958339222075624323104851679612166835948500319940876421949712140702876127475723915027484774878336018459782849954529567576155477973114414378202401151327229254512413007494772123810287386211356591156154396140405006281618080198769364944286524610226932761628832869831917027731317156376493881271342531030635188048659448768442816304544592422425234275755178148246210404740621625056179722522404396400766924696878600722344628670255913649313636095176073271378746098714155511991534704993767520496813184720178164167068892385177282462121314052794828071540823151956706678104153871288763338974633908136103910222719761989680308846525386703804523517723072581590673463221159905041747470440116212150095407439916883021910712301267149772563859378916014011528465111454646135112573559656179531131886177629687684445913315595026206588772324663153737738889478608723011788109823851408238923902579203222466021583496376370425929087842551734386329808066670129247214102034237328264783188918497847087090807056316670334077829875605483435026387975308576633653275719257467079170478819364643081203216701742641056363749578684569766190332402575451105581356219529117406363200792429860246488822600679349043372080577609117020079215990528430811910883804361648848482356280570182663049660393369315209851592185579372542483396687549513645796516164899156122694690193392857097093454593948830792136278340967754883633609414645846307442075649071930296123200645745487763274008757911115458950549533743587470901515185321535004334689794160431466013047598284123975626531231188527196025781832394831583215968444873739190438134117248492427230369906093504649964471799714711046982139244632945395473905913553200894866640852027806577549773215458292966787184307228592968406508523197776087502065689851644931629270079611215970859422987620884877755769849920578777876581098454726171381934024214388533607442992899741281175534635952849475845663686581939442924432980703321469514332336262870235978823265476747964841532920991259369407945590617938447470343305376599478072694385854283645371991116181744847193974551590642909400185875100114080145974030137058047435522844440003819297145842826863868435505770136138822045333512668369344463219038034226302934018266135291770173836871361002782769369303876252235074638940245250550715793482155655316277214074579807941761360526891888439215398824187903371274863728923598791258649657662878775208398980402860208141528927306810350615219641830529663037518868268928146860408760251592654355863479405326348709730845804694972077758384550853249063565573079353667668520621286089831209592751421481003916452454494488006111307303542468091002407616682025309840454118171199237338329732814773102526213952411394852891685213320673264545780800668191536404849583716707936721387403945204739436784710496886166733994213685122479541878232714645222486838733526208963689662625317736933130561909914629677109095491493172929925494724149513967675647607070339969126249507002176612773789979416972693359766748568299090801976569859917947266259004994120949246696029884778426269106944134911360337024533460312790501115741987899830419414849301996069858353926371304042242450867771190991328260655622307421402155865702630618802458304436202832998424142752929259221173710301522312628178072480925746462926322662527619863940057227951064960970803259687902999298478083620886838376850416632958830047133447564223974468788220956650576350144778164280652097528136360456841478149188459358924957752708138106662907663534942973328260227760913900731685045417783438389928346175684965746552251574463800356662553843579460527907208980247899648027780692121208771780712894118357993813878225360013538908481610975274353734653418071637048012230493350874045253047845644236879094811983756234112808583908333568796200660312770849780704785686802278630226383876894189972863334298401926517097220430612710354741721760961779664496862210528148039670792021724606740711232817366058188868158643297597390113152032553467427269162277110114859604986333453225044982993802379134576907922666505128237031767105609750679232600854342735925198869035667034618805683066020732619769212915229987576815809775263336759026678761485642076972526920011776642251250385184417515738974209766122365867752337670005796235174455939980896520399575047573561671111139965041665225998450446823801093611495859267844992466082119210948678661212404835166697815882226785634397282493752584365401830827964316905942082179902919998760265594860898702180634291080898526791733287838525905799254864120995879914431816527175140558318386327923391026283043308545301738300919552937676132319143874897385356822646027350299061835939878834044278087138508093729795289295114367235714649388476754867077184891860882418479151183177924163167002179903158230837593319683339740165992882271161819232273887535918126062870328291612690111877693059801295608962520321100257769322140716282793367733141517043478197595141831586360734529038543970759105121827824604938722465932086900249278691123196591024493023455387790375050759914196217951480063995281856640124424428245407598339821180392355558318017489579830803994559698042223459979409485326651439212103556233111422707763109216007119628969958403057814709550400688535365923118537528306699090781539621993717282918853882696718934147742579997880334656672565474729689271636621326915291310955179239614555889211609415793846612001829030165381729103256070657933874180822175385855967035832004124493806896188528584406001718483445609212032911620194788564458419089268876357673752136906207175384718339714073790545889461984161716081937932393953072180136818811494344271273538791808127689816612095822491451253843420142300552375819486238489624534361344865143863359388380140868514956965721045223267167639398030864381247707974439084099464305467539998191705763507377452902680230535167404652263313750979254508262764221589344756362369428259906625782288621752080482838352783623928801958042784555267774250656997448197278845145143591615145198440807453966694591532336550147592228915274209254663928706377050794045454784022542313481019577050686524560130351157163803309011375864183846966487116064850131322874667825952743402563772433834700727719775665835792623965564935614109485957888192744044003015896167544586540195206996949912642470102635689573483542625704974973339810337278076064437870626404364152966016596595302674485597779502362733080672596096317291700023856963123242688385843094892278545947623949723612413774428767322194528159591980767523076094114835902315310282622187191115183723005175708334068078853184055833381713581537900891372722770280094124685629938375664164106521333738630132233225902022551564951209348259960655386902831147562329142653506739019280578935095976854597844857617570487709470348106971250617625373519668217152443764594169696574708314217690791547637592718671547201919214517058907419783526196175212920647450357223258234409854097054325516114371526034767673176268672243601527284250977454183185074013432637930925303323554974194623344998529799911711459393616953406248223229688404033430987325570160406835256001268980970833106300549870287505791163553349006356125398824980465012529497780025241254218433537284715250058547909659028460580477286593445304676121993203969175247163471182999724250418361021074033296828695615374042986204232620596921230214485025967652222465613015938532682505892716847689030046232741312469416992424513913295800685695969108936654092405390609073831841849745581481144907458870213028178869837774074155213535155733324283965744747142701036446453673707019071928329511184393048487133423402953486860738542052632411548229790504749657833666688577520227412349289556454129838331575947201999892907765505260825604684371285949506180666031673696246307806530327871992354273136642276303230674380526640864520176390867716179205623041569908344606666130294313775526014347421602659845033973823766520148418978121186210243895877477991553199339818146790923582565680271009655147646188958516234751651811306704891788930236228304420308832462616661327016671903524072708903135006789833747976369356590184832234151022620340237597114489794608720407378984342237703152902752941128342474193257587005896721666595678539064247219006831502600320251437932736182874142147720561509496027292844232326959641159754882045223391869285653351876942095844248921146104968647026182263673529226004027551607712662839894450674886246646881273118322774907154347430154210505495096469911742598894238059049827088561186314208610163430372157097737953967437714069624123324902218478650187674379546540113438999742575098775549647503344046070206815224009531577441483138122819501063062455097595116885153599477389148724992587677617995490311359079605258087561035459502789762646505919385703003914108795193636614111541984927816667613379434461953267370149234652578103784275350950077707028856439927829606054746414169138477253851928970069981930841148062394892536239750999232862283614774733687855682970253669282680879265627528799471500133758448357067921385145588552988577825679536495392290367130054237312783890519115501283133405905045385114233001524177537504641637791213653979279304244323641271843156233557439599278970503757169783521096857001012825065178327298011661337239709673574324535150056800511757066081555810444149477343429623184554097355690287269849711515333644943227222863058686451701776873227293902595591729665883756856129165922858830897629138150782034552810190947786421463288473388419842718153055214397036245080351078170513839449830506635256042424068780513574314268817488794108150367815644319513911400096927897193271914108235994356476818928949608739584206064239412481175377910565844578899078323974583506399214820638727486738723140168416573399976216188859756311167257838676612582015417060056954393149205177877943137884521256067953067494775737257262735588869654587446798223061472920209243199635209759336841133387938229144064538459871426526379822144402667322418373419221821707190961601808506377313472756016987572246884190143293891874386230097206635097674381858924907755305819046020483691984299907121648713243270020511860044432131595103655709569967344674936891833560459342470474438842608211722467043384591778306909839906888793408604531978794880703411225863457321376484165072439237814555588884918379886162445644857281713650760591813189317789900503263180523769775999229706405043598237296965570420901197490025406369816494135200969244391839976283575351218364620815175125424845786739018965769825060934012566387031805460535623710910205497213938142832546321589922074628536232269968661494200514963855031101500529660992335926568986844665324975683617743471180243107116583068820930051053094237810046283866975272850799330086175205963884384103637545807668678073509215217163626371834949102136633599645591178477369782630312082419762191777407264088446693820087748009510794926586901323923268017996765353709779748026854937682954984857838595609027930508988310512073106972312630196699121038466269956448080878511819351239121501194121095763406415801344538657580545611608938137887478245436455772804742487231099741581269720306442747436562998816068154329918097803397325916914014405778054645626197666742563177950454437943313591963333352469180987394210990674092655360293388922643848747948730252082394983123747297079971000422972115779306328788800713070339286036583830021996086277577959795264899722879071882831464583097127671328562935928180303171037510569147877579437260828432435700549069406340080170825442641213235788141471100519575539467628559064649625101173429258073980064987759753610199646235932662327547212206479439409086232267099286061314408945500530503460098132121676827903005921400673945612241229812052622278555741986426382926126448345271014800115624883347564589213709966936747765463567057142386657504441270007280740361368740146217845987874326432997615373355028541629073964601412940385069357558468140112645408764856011001628316786786271731825280439387653372573814728658710404755315464901982111938935634004639654682571040770343893971909108892927436452037905372205904054558188957962890650571324892921225332595615527468131335321286191932720009255686888126428753243020849990941084641113386960357878720813306497153969141457660997808694863685051093672562530157898232916026772110843513175093046395061416108969480446723029074213451334055357124291322986617851659164590142766933377720237613469537933716201393391470298519378853602619744876829860848651221693041004144489994658626330002765982560396657424159402724887178288067541771350081742921172340309552489258518145749707042689568808611324167774703451801996960629742947434689930316810767230549451541734858077221262399859018986398992743509964814396876388272277980758966724315569317348009504502337536580158570596668623922728432742100752559392070209709942751197148786104728268617819188856666638900255469652401662263677281086530860368491457566801020893536572039033340643138752050719418151148587290709097520291660422625131549019108852896498669869440983565652170490695278128397483491752318160037059072665760196698886758342653255547076549024008660690056238653055986399039110686917129667633732900313080539220228164024294312536128747863100167785516637929836272488151767933088053915806289238018148378003537402968811799192174637758390444200553281285017814808211884759363821834205996145709807339328611940797718011905071608962703245801817048323305875091737083362010035751251026810504907091119811754312338434919536409552839844505321868769864402928587279874173533762808416532461252245366597150004513908406648895200581398625286887420258437812314347472227299667314878387779362043479749122782762144339389887777989495058857248813010803740153183952979986127598249132321068406364474227487375266791477082386756267972405239391733939512969750251421461441833594389597876960818185651164509122951098162893665880091843570756748987416257136213038217973882346967420709058944889814686114464284787134384785891716453820049627914523384144207034911197540618674917992519662695408837751813211645748662745917043715505554458164572867224075986150047439617936712228528616262320507831768006131260414706019901841016258628524762701175224395874009562189386049443386519917038261850245018605362419642587174991442648106666491489134661191993775480026242081142136460599339427793485688539067883180259427818342661658746735663838542965087599623408978347080558129124586990007059495198704341527426168498767613549418225379668011431243014763199906850924328306596733570042194607840694551869021224176856838139480774723635213721265888177806595233119735443767610964462029119108372466322030230196407384455473325532304897576341060581233397404198257397901484179066558897512404195341320785652580177903523461277558888124723063876945099061241951791209631254599422676226603832694028672622824665627346007739251135190619140480944352885432183563014727067050401767890084891278981927218416712172140287895072846201510216317712790891298037207067757499626049486075707823689095451768864113907214896703997537883685131750721249193187121629059537526071838115814690661361074679071118362394273205204542770086822397086370104182278961956275607263290969038499910755321875517335754480628347505878868717302393849784703961789336840015921372105542105794697222622995880387552292898835040639416217878700774125138078273958653622305033276649876340278114911678015185234265964952136113229628337962003451298205029728527558377877175956426296355832992725104173254556469438103969719911142677794928757421769019188749709797171927038494806367171729837904592851451924732663544547609744477603089513583740437748523305453666456449770182769325051999616567242183567141667514519691089630375689788483501401776130455669115938021325244801968627761419629313837646302723344975418233342882688986794500052965499236334222353183034061224336167648704751017560870223854962609932923131709903752893772523661867406327200901847873268671360856429840592938070178841991774285003225804787648664692851187822075376151450430751459395929318943824996975107360258459050260280190083290776555817938680910186226173545403668607014443518425344662908427008836356076025843334923770412714889315505119694703589895805464557138881473839872516835950286764535641758172580136951123170359162453569569486768643341576029326853281593776138089628767970616011425843310574573969041685383567372216849960342790154677652745380382949847633926182112332319815228978906558638897110495811654720505785422734057452154507900456046472864042083351413061897004471031146598447189843225319235840304077214094062024366989750617085770895795698191165147774452353101292397359702784523848924454819906466605986710627466061238060360590476036603816040941669438364558154999336362989785589675050993473866834637278772776377924821424519246193458564124382853726817817183448370748603632474357528213124690346386635753717756066167696597084075082158995620096419135178345739028746931622661697042454397981263718656413623229562847708695159360365521169188186373133688858608901966402402069792676123023368204847125580496508682235587076022636640925133980956979391061086798977590421744490757644847498635470367602685398402395551893899887194800807905180644081745926966226946805911956572947618691581873392105440811061892832729454559360164887046036068207156094420839429994684125443606996535271886832280814123018331244767174550898051323177169328016064128107068239398359216834400732968826291942808605982143330150609295344422651056160915047523672652433659707698065544954438056517687764278753947687568467483951399324685794960896327907769413593706784660989781082827076577664990701092119822279870320630528653985485582262163516188781788648292266529955392549761091105225318659240643674317302704614261900414622381348115710118539312450274972536902906626283418867182085707197686669130264324682209739088743990045719119688964779702244466607564796376686126240330817772127414738255744461578216735132473326804314258411098389536415713829934544093164062544013637750044596211196891064087350100618151953873984053080051036481869800279292195783315095154475588798632068927834184525458789319009538480395941518405196097501313666035948137566179056148690317303334341925887052160204773582629756872875835186358769087780175258871266582076368312175626380616281473675391070604400392724929142327558839214908839805066797041466118188254190796367916478860411587145174872612645151925296464731562885997423797343692091467876534738229165592337642721004596897675426775520933440118910361310712098174638736292394328382106245767157067460344375300684869022887708576039318453448646981582681557322375101267946793648779297973505554114893916079894885618503606507077908515364277896097595860619679587455899985412995436528050791836938197048603432948412346647710503879665866662281835532701536329101034650723570858892778815258997653131110165016294277259920386475345357529035712332593883746216788654525446240399702601072944023653687712884761112941208418202795440910682100567287645179029200962381451751105340115574728837608288171572435052978795126709052092563890654480186729976719969031921847276712390925923475000009040118752166930179775979500581221961758272488901813402329275519322287223710276010060720558971852964806742970833058709005226312537815372997913089505936310348134308625424762111555520826891489497084233121165259205372058689466836755853573489943227485441369304847571761139311007164882900955570998188057597932632518814121144356434168933802969131336184925872234752267707204720751104271021489497530384389856875022143226662295568007465627084644209050212709066093900832141265377188386659038144459495141902734763546425538374178928331400106828220030185435160918533414274167156178189885052357474566010948450099956772642703799316690607375421394856681238874039860199770773334117061845424671418479328223091142754402857985811103739652275675783741211565560729797708995841822394609751434305448754877920445885492813299099697486480649544969168704616834680143609459930665494175904526913831807426097727049299216237343983447672913530326908160099411415861182098391559461758754772022879702580066146769256640137110356416249449452124814299178043294397211303008623446252673729903801059354289817080514932419693130390890925434456987039952375507186635867839532498310765880943356665102378702865455251578955810348613158095137416311516424195253174704836519568451449347023658200127081388741605930237351384373022747470359189885111753688290026007082482210319273648375274744908192516885201790753993797549614537887996122751974645232657203524838405414881427482202089420324320367108754034755233038561455540234700142616842639461307739922262900197265183172762358103459665562501644847145131506516874327859799396699222297928635969448732818381892326999091804035762426816660257438270909207020101286014976904019802552606143495817798442977928117900011647678389381447134328255383823102894114714916648715628536814775137493576053652071848301684873275926423205250571422024207845466427697538123922810806956717874996738457906929494076071462874580103816981165889305187465746506475426846779588533215870112837109756302981863873811334465256468239688088385574072979129311153419342487264419350596774336656822254503649873354737711450904009411278847199802218901265770126075852715095447244233612193606446063308292362862511854734797795132195214627795753170552933716152914766122296119372702767269337328569709832610054649918839843570449009151149758757586617527608650102677853174859131696872434531066939885547699646603680946789723780521511622779188712943593841436999104463086775543279786834921884888920570699958655849253692967418915223071398026744666158837232263214494805294791446572414296906019462460071957214491420056780755565161613892716450116576187732727532835118046572128822754973269579338205450244975897638168382149541732780766887360425649422232416819274617462670379486090806802113352483630375365111971362245878435969311812228537465732355395688345895121152899409107613342031307850919125867881397355358204153396424844897866928381471925796271600471912490707015792260991631750310668095856823912808785927483987443091845249471516032866147242736248474705334091728330522751923580053360610511406788420123137223689169248437058740040076845286816354304611280783590123306389495189531620473780611585266094718652948813052113170734699883571849909081947972165823415979686385512915488622242134509314749789107695236137396934981309688925695149835508805219635575191516881276076410616661103597844148451259045506582317677042187250655753951127862348185475757998441869971634395465651636212618176882446572439493614414769973900251324900354355265676749090713117583094106660919603246452643474531789576794803890134374165768435571919871800859726356603666669951302726911724827186593286810364233352183515733566467998257983070371271108408728207647929235709733045381924317078603792623824227833272206129812490959245248762333332285697514582634187754946825227853875631390318854191421547985614997420698107271463156047248264022238551568319096369337556708863715757535647085390325863871148360214427153075029500259578788481285575032043831089197505785576908000462840290901598294842224484745803208933590658681151578598179690090889882608331276558240636848846829014614805685803321680113542755106382218366731867038142147747985724219410372319088492308849519859396895513764590479318253054294853693607920392777814930145892773615109816046010274252928562729193034624605935255364106164521401561340776195947089757969957827514012419611295065837816129123045824908843438217441935521962941184814167726163952182312215238251526766129277077134628684645967931169626230905060359641055911423108059944415653685209972383975592412263595161118015274390809040496143827089341183865988142950986566944873506370456877300717979578559012087323355130924320822354972633300535661580009981890233292478819640187818481046070767174453342324801701384944915842439339196318387623231463736488000647979404009826909775439686860071278625537337314897331356877384320268719211920438850568910665126300379424145626891568736206579962804870869990543171138709974013764027400956891736343205929067027035277063369956404631309421909732935860305681023817267629010356853638972152718809180491326493442840423965388032786595922383435054736712176648604875774908712337075515038073761027058830175317081258690117739922531123393995047302904689521099894231889946965461626506026296510763233959322954817396726634251701043819403865086039064504735760307835669833222417069340747094313771755510392830646286775005305991517533272287125213453332523016323452665331825730104465098938580298104675123961155438590963874471111223077658529215656222221534350938336407108784430425521709141001568673149846041377311955738583524776326987389138473088485693630134394769715169439578238402595419089635439710895546097620552972995349129372717520565334242442504373527122064873935333931508652793258037826165708581796923287311562873973720448006677179087205023324638137022325783294762944071488419718117745616444397953320242590150859845207857191383581364282807758012407942707669617812810356798012409325952861116202715175011227294290878032849210273767422811343260990546698956918130088732234663770195384042779265005201680360237595995896928900217878148474978595876028368638942911910776281098317816304804904962724546822809592591256910519225465951586300026349595369306651114997112462409019273779208774972224993031725512930688718766927374614605059179038614975169794113216137945045898860648080612650134875465088619717675517831217191376209608657388334397206171348900213344211769343382379491870838669860086452513404813970235542468790835218526669690489276026838508760281866680664044383345435480174665894910858341994785468704538083586937540574671453244942619731308591465518642452126181521428655985387577607060277079353159120931948654606152862256985671798432816225201536411143092480379966606816806917597556023329372143019580366337724646154754443972512676833329696732930780410130669856544311247374229117113347555256493843918829179114844774103618066975264788366916247339679439022552070369218089031646292297293706306786150346309761931366953918317865574430674844654233934561075156039882764797568547394184137827698691872250869177863786820632315439493273290940471381605792815858304117999508725212695048746525100085943137461881356499939558531437971609542263025510977395959632583663089944812083914776413545587563387909451638094010008659964367244444220841695077106554233199641474982896514994669799943658523920904597008090944024654085383639225388108393065308335772486756081997538277014324168989766508496214609234381732297253657999480561904915230381418087868229708215642218672913716465956155334195423271663822724777603644756490322529543849715429856846616753247813851771035433969667746041605896598464766309429631801357812032744305234677599773500388393655163630040625468572223976701223423004627388032376911878218537501525951546023637616380770265898811180278690936183572549117149934616739635740413519924995033386350244943528613201812929725033628639912876284171914880223086043270405276128495819667665216302280333934640597406216349769738000442236814639384484918974676003828399460044680252899059880919731743402860588603050040055663177119338879853489903068626074249166119328149082506393456604970882743515979583710554262834360378668641932790770257371502895635490265964311847893943452277793119250837372554427753499562125303278853339627112073102380148572777752381280440466425639874329393488675406877389040405325834447712863311249476701062970984083439064263587707007304050154984794046488703795468306108378836489647570714384224035766812956447887798991749978652581859441244054791859294131213396013146558660543220042042240707987384782092540286924913646145540090907414529905084510573145748354117742467048338705528960585140612364454143247439218266504730250649368469896753259034378862150382224307788808242606384083249529661286294395672638458696051412457614851086999756976374220330917723813102907343148318151300352455218650889605144520762380282160370552924381836575253497273619789085464083273686598983697068651991684560712748070485119340170885539831559384201982524016747397233843528700620964381023643734184300492198793901603308244322822457771009312144090018556208587927887683220837895649466888952716339884156575778884688222500771211817735166583612079886421290781637208884953853651539327553119838897342747861622434152989895341884281827174755916834237700758336628253755203838780053730650470916335555594055702656790806994021943786781054626329646026544222931029203738058788562389546688537341340372216518485870678181324117079153764721537178195011731836420196638299929987434103199810130212080146719074559048659147788052936952344102963473495684479319981945883717532813888893242618558700587190760143423197403672508402962298542158239917058110183482393685911392052493731812431317194008965250327429498637068644819519244133483099385875901162185926995016987146829269531775983178981507256824605945465088991574586429808073237054249594777538144248704554030699477091140473417758751461588237486033076636445594399372211518580596353225909738583059316984512788414179313225760579807300853494328914075356567531505055802744911849018229128327550047215987846075677763359133017778286716741431501195843536974138811551854172793802274097552199503136257163073357335155657971542304123508697516458188102867570652797087519988284592790626235334801715411338731115659536620642496860765957822756544016942816510036672534420579274729086261832972877510099666740832863692593306837671632790452988131182197766836708501129762131434832668061085136070399688758980519900941385994456054827977084585049672541661469745425611539300640662887691500647007218184279297597123010354339594939627195507122849908318750022754881463112434184636743790446408434071132666696501149041180986622273609365647565588224484445658212812281379310002199534019419557716072748138696453486222177540931464226870803727912744760466732335282194358437686780762708790910360040159584812479358753521997095266700937701964520105721537866445138595076651945335316012156466760027188065978511492345546278622477281051728065561925840795895761665347656201669131391867440687608011031877041528020315869425479954005885792704377899142295821445677874395682411362529368935483366833943103159744215999490592578080612062780726602234674325323606906458838203577319954998238619484657312907645345187978825682488471983040073238181918531309994751948714948839656717664430262118552644741030791917112147428499106165452902157983826022837238651314313748375352979265769507082638982952200404133717361097530637083898939526562480966370741895809259348968523183388010750793692886739651019962621719069278354216841479988242052227778899726554212545884924313941024444073420562412189032202350200357764706476633951492141855174551260085628148324180064958684953096050382804450089693251483615048614178739699086919536565839632384150444103607113285709781118930477259333777328974129758448198506164505471926528262793474294984154416587581999761239006549774169082475373307136213732231905836226668979177407124628582199539078016207548595483096783698294280923807334818958966277983586860142882372914177477281873207515277131720993975422306751387678399351774948710143432747131918667778915660066611519010242158506259160424112420449552680675257070444453299581303038413897068343427968766995760789034653092279508770118002279414302748091960624869828406098623758244754587550223589035644997387619044927624706720048101775501133720794519421831443418885374070096345052133717734156918636683849662557373487068626428856700599754482326036811611084862283219126372924110501540822310948380937056570109983318983082079844534995906024069631414861460393251264084769447132151234091979764783850565678419391122031014212330775778617387186663188712775173455038104709515397327399073980705133346470116030475433483353168505108826846751236880758028570146240337068813984407508164441354915855465618285391370803633563035533392185954373204471976357673261348155940236920051983003521924710769603905127832130662844585845011315489718215462656891227109045612579679158379913568656924334943734164539720874096355178380657213814432648397656263767243648558847830807380579853463988837036743597686433662095636381372020375033147795022547218847748039141555920433754962746850552845378709343351928296479123170570574742953386748282800454567465351234092578937323697402094196976199891869704157500878154561171969176716092526820277267223331007310928974850514633461734596655134928637936677322634779757812594541923748457272114585745400160107987569034700536560052560398357562654796493429417829823180898309267298871754205490651405393891565865788568134882322729483556404631139199526865575238686455116843785968037137230484512828430817571909150109982720334122307736166982771995826661383867854548930128598519468929575691438320795029466837393593648209779980463964451080822924526425894224749744875566376802196395287171658684917127740084670169716025529948064609945430404176607659730389541461322215682643294816536231757910990090180944015329449853149986127819853260500970767314027002311760160115079244421151860251937130651758872203119199552253370582257119599808734867318100092476963714293850083899744862414369444588225211995738168118738082294932016137296184927116076144154560706378006810599817899758321614994159863304981631874109257002562174228836866522858800712747743083461883697127060975934179426501199565747310155346379497183105217040994488935676686811061011154921003832580349491516091188032060632971938202746222396117161463340658950493758239304261101997372708015156081527948967755473917681778789779309075085755601900994412199420015500129694775242275013428426729462972873069143850428972328900371750156612871340333668925442140858518052284597474480233797625182041697898051459910767757398439399652906802169556770497198909146165576801470321270431367875849991220216096856307085056123038093993068448877657636841203749812989602071317289218434670850029316870350806075784546256271019612119663344090399976314359834977641303336327704813442883946123985887940103591682132475748163439547043405610697520131204904546538210597253659384027735312974967617129609830542212283221951659913865481831457485028251694518129900772335944885998444803414176783770671257141605258438157271036833898650946201557122424631995982085345205923032688785408112163928317950471580295897843682884769355234843140058447159637458976273863647985782739130624105127165401583477929917620371687024712312118311682381778319905658832494125730949266970619833552111523382200381620225241655401557605741437321046898077401414595765780772295080066986036108828177083415716895223936192547411738132653472192555945422825266883290152190645580093853861754836171554100857534913878177851495957854063576658676109214880346698296063907725947263874465518491032606315840389652411264018702063293937066755195388001346852456524039251772583440003656417946350547118138001117249292927557478204773214818372414116148127869877989135774807586059077159051185911343516314601744281928773154150143710358385047447866286146559788648053384628154457428844246501407920030912836683175372270881461936505406248613892248012322538996831245112723595135918676062879344757801629184099028524224153898114074975040511190341679586919589933775027605721229238660581137077144070526386776804329669028970851390648447452958660938835302052480867799615094845045749937330101697062001345998577767237927355286287752961956331215463797977116488102886583613049461895255859768315416590330755675802293244796830889206058019116968920120456338543560326516425818515286632471357979062716303000473953822418391271728201671437803413344840030197164979574766755768420153484668437309086908890890048851043863315271184051888736011740617058711190828169718494815234468726505142302445672046684624100173869265814822190912751212785799046103826362452593345074587155475258981044729518332960211530392026518922901901744120282839212112010748972745283662175637409039513562628805774375670286921898188359857338846608793581438103913938526341623625891136792946460943509038537186465839930890904064906534631537948308209686677162331859227012372559791929696962019491888006438909014249603549747702718975432760972683438476018589244379791223740758191799043895676269325398172857356892888735946398871218911223421066036717344934535988480709023941173257219022636234450686370699099062375662331793636178367527302087661847960708872241137521638783579850873120525457429508927630231296905059481451491519245782787655315070517870078334889674469640767129244363649833050561952368364066798309445266849528487696054790068924406237780418906304200497900564797253738992978604315320815639285793258891761499176192447497678130954539077424739247291694106226645524801462248275700069563870324017721547611939069966002393902380680623810987556003031091684172790516365895218596298117356757533374237781206261360537726765087742599669433653550660619701707347641736303118740742724713656681008320256073497539188450052309655600298224192189158321431352422738326789985365616813682998044577033438176460054468476838544823560427987225699596218443749536300990469205906211382444278380507155545997339640901156279272512475018295132355065920255124438409248245365976547580189926278416191993466074252868614173208281169417868010405046984484255499117347490580179248976158950957528255288387129114661290410530421560071453143672427433733277764079038357927665734341162848614103382848403452569751210320096555302688605218213666174174425445939073363667614047851388372656372486821223802264948548229218246273559909043519287546246218415260511777943169705186218690199308889045697432874351248699113473688541747268075603828179137347434223572692094177383846633637652244200589141784197638117326183196250519601301303935314779840787702312871663697481119855126329489796571689645722589961840366629428587813783798761763376075764742149688562937197028690087934201023886730044387657340778666966827596189421951073946347930172214118416709189124842611431651965148656154836667538320742715137960960808253848496309349139903226176278857003894097177295938917862457787532210726846508364421644966282544628621409485111489007510568171257690642012838336447849983790165936486372401287646133333570217159350282638923271992348303629233918142504040035078050350021921631068223512765546592189333680239715670670024931832936508776637146993094152686440758333607439391727686129181955471718145539324966389598546242852714701139398256591348730133387644774181190564835260549567484030923421275889179900734224928195430622060682169722745694435641129847891286737913375488155251851116727130137339201428966455970932122695219155865225974526396340864938514642580206974210683468189678882380440853447930430085982723419745315257894139929441611876841407485013697712221026623536609337055955293696788609214089208742694162117368010304309450829495918820958878830007659922121365125013863040003520267947660063652436849426316287512085965558706955443630030711576903993195140899979778290286580247848837075880055481216433388745727682418066131207411557030118044117199057943019238352242728248510691808829829284452356481770914631829954918259146388541838876489138685233397207353692806928953152579566690486736147877327154170057805540083779842947503291785095617409779285776673482114586230677460793580121250937835502079122217071220205701432412079893201076360094039508988187974792013135833809783061787328711165363952335115328047252913681359497405091791392457797761331178988289007638986590155221937275166540282873061799434746203264555505153944836581731149307328465237261629421650371228339713237924189004231215115549160939919840744793778933361073936921130382858371440406257650696025436840978596605727489663674707675831364261266381506476000305538610317056741585138951948973229382819283352953345520129054545449400689376229887776510148369445567527878796425205967391269913422224804890076556675242413636098599049062546449932740177218973116985149182284288513154046899038646283874412363798706457956309819996632735627711112483259839606778954280508469189268301786438973627207655995912370751013184499502635853212334132574256426301199969499067638258344248072665737571430208106480528689502858155306194054020679339803370989654952062614682068413440942522034266522388893563600806761864951836160616267075106383742771678283048437078509582379101547120493809627228144108229008787457468042851108015652796141260916137364207037889121845593284149141684805565607871229742966954795207223072306017328463981851427612559719417755107641472324563703022986647297410389810814783174847612634602551745623950252556229203719655216513127283919985366479035797921295392134405972364672343992814493015621421232339559092088498622603245408751180166511569054015131862926322435328383233290389900854751715520666865123511674315593894266538781796144717998803706912602592479104557305180741351885094372062359340140093763697574140142796565147313627950695457038846415864448208839759810220043613345138281051212652829694903951049176839743253466964811960955814674371044341128375586105769901279463537588901520307016175339917523050706369113614614617333785153741180413034429365894931201300825431030985327273831206136621075014373713339371656247842997150693732224121358838112907838584654102502160717778871839440170826150245802303009738252355787037592247176784708470134446017695711008852820481364124389688714324401596783269707752041390755433038729300831242509446578453783548930137172874963494145051707100624898009134024838660718368212843424309442283855816188092994783345424508859109253357229317394388302696097114304969811518235584538079228711614951725992574409646724098595676906307651319243294524392298500226533651812991318735600679212594338299966592363483008105875611516703274551023053050794052398767264421361209655872357815910034363723754098093266952688814352431018020663650638994227525885025896459235607876346792351394554333769360241067733798768502635535080149474987294943101896969517478618581052206828302139770201208113932876680528532566402030761393209510174551007459700755538767643398215412482449625814062415479670890051733911659899824479671698352156625365641540219295630675549378215728950210622671514925150747011038212074858363356238152984368661543465486830480199209094202423938753516657806267755240753874510742761333970305112894942555508479970815167864343287248332788801488481452239644023700195407824256160581275755088846481738042095992895334239855036520841959027026377121677232444641741669654843453027812065487292491279015932999670983771281772005266859335888015227623934650551312531229953701262637850634911342890938972277630211574140764956996857331868085375094732312918192995009166153196564374418554742295934115553426812187892243690931199579622667408785262495249115476592623933699011636020140745978363238621013673185425248913052672629653021211206961517932284671428056761022006233598611456390270032207959696601468039402106697111853077070757826521619002049740838341555930387847693604759074325345044565798375577746046463751175130973636584962456933522341349809763566372044728106107807393608500918900154094219737547147729941990808254258839134148794123166350251466029626858703041121028847631505249061218267310248941353538038174149716760918171792653930468640467075594547019966871021122550469786438059201006190542304518534286852063767723587259423179721672510159375128264607856094890767466760131192155512316132253033290259740942127235963465758522413117504545212712430829205388934041343225834882060926048178032338954722517766416108121673278963173705908507214526205210018304241197605579299233682417348798849895905822398700541087500071744684064417092267539485535325048465727055466356147147614532146526520588176119896577396785050565802691502487413508672609713559461294719065014700932083856751822833422853717716399188875167976269481110408664036914565434008419193206683642777680445930634366620624580781499983121988174009531334036928518890895949184082327351192681903992390735620225265425243446230670053782804584825289651568779963508024998844640676428255773682585891831772803420303355599068866679145360135644843809182277411603706130776324154969384133532683380845059416182061354503007294884389571130226798468880188313952484922403272656865298430599746852846003236321446588558121638526496304363033149493455116434406268901325715495823480360255409862205837730601538492563154999336321672843592427409473320468766534590629204105642039480085157518370609603543393505219663896188219608355839989449445092009795705179931404468417484180516080185790399585668828457833693029360250262718596048372329233760640988271237685370431638908632105911819649848001060890667116820738038821410728695939012165630755242192767090659630562722534213960723215540848353797604596446692423502883350645891247921993880071110521314188848975006205439233279894179334807337561206743728022079589600787672399506654459478794620400017071305181261457196676693271009859255994895602712672102342023670210763044652373711806701982090015210146887382092318081252882645159457826542033677829276120543271596369797106101025793209227115346676954916692368231398666237633213615891074138888043470755766727437301168294406036539696983762434446394190895035770169747796111638019527347579779731090167338550612080839761426034716978621228534049793898051436187673670285114861215480027294535786279833006047628123306296098948394519664883616403828025046879146144447524793542089821341328146272007007775806428769365391911027611159394023875093615561571084355566246153998375089377368911092646094010826531602741142246113358331138201301667573803587069522776163796178481735017388306461606974001348038416603548478789896320287686843653006866298935097285303992366676944055160148023619072189777328289091691522796149259541256615315093158815940336350862538449100639780977590351603852523886361592098664334227031942954216486805565897201612698797858656396829509377780103954325194464785529565742427160326958858476408636525256264595083812382731073670538618230127003089439983238278219140200019909938469411384263617401071140659953405311338826041435781099945605278881200179869148752894729300266131697091096184978014663507950602894937473223814991017001341870305004694197283177117900148648586076163955946195806368087211359129512629288408075771344679913018688996642545295524215296005552348397423367041939204211724322438019912843705166477244185289536774883925916361088355417832286507343624069008257983900837924381972502095273333795743170681454149039243409720949481175562378749606201724431315540968495823318721516568646816001963981461133469253812537824548395896030639021225866800437774984737185022663938248382087307806950660610541184284170645977228740182502234753769824173287758033833800039514566637796997260638590839121228814053526130500274877932018710162685465049511795123179937443067090549056138055393113262210445155397123559135624800161961700548969067521617630774967491488653217398169900720826366469451592358343645846011692962410709452572522484154707752909306989392776803384752533059327856944830446779782073376485260415616205771793436064327071129839487930855770859829457996288511678647879003245325769604790234515802858473383301795905937459197400620875232321976293815557167700191414706816301408204597822273425540980487625124045946449803671299383364437892664133230245485572755585129026938449407225126112937360873957944430528187737593143403269994081938558670118717781413201260299651779716501433096628004855944895516751748024234415402097606652699712912419247206989555340528100420822934532210693379346440940904534866654422856083579642663171008130640765557235207443495061117280710863888376729402531976536495528809390932681519804374031669486553491388100509157549242508136220144664502006200954778694956910138206960906103421907139249372855449397685120673354775572662550941235799013858186054344543232190339388867772941088362992019690494734788581232796064322092358201578306999851637625601000849526312528663020359735354412913976128981874229504504530292316510177893347980737256386955015696971828943064670493717190142187575163090082324163189953300143921211255263665180696143037405565625346279791215936815132349064259213638851085481992695601090341156790331715905773385076929471601223890168623717830720175853941578270413192400666501423343997453026918928581982719254630982109749821104841551330111598346167483814558455407125617915184036686047254132595078300378195002755228200218051981272552476659830414338588899534471132071509911290893508041690140232840938144401580609742054572468826018312136521205427790914184792000967031273150989003486171576951182073876671484453429361494664159231048507695349620487893488965181824319499324274118154715848040191759531427673516117696034009651118633706275749835848108647746264885923801334348089394622926563650902340011099393609098379092812741053135638347568643110596526293660831226343777863981602489670755740571494728475172640253312753262255476261135028985791865982314040998107464361605891634968711612193883490217532780569963089927160929140191779787293327513427355941497568638624689817642712802575121891182161103488289252892740718932713254959191524733150959251833763515298676684306378749514404463982146061509508494933500171909183275588460574003534860026550023330578391516366976838323967803678145617964520999317944799244376508915050439401631331134936439996208749708580939366153994765280615505775788717476134011843293498528121038712558077629818974912198240706380185668771690133297978984497065363700548445061757491206906710605228435556395206275761433937515771528253002519838653765719386907524264796737317702660185777180698447812391350546407272485757264393594696250249498284995961927120460421018931109946255123517626517088282081588289064244106125050554765135977347917398195672497390046075717662461347855812361106619191796986886638426961948469151891434817279709720436513639810291235020311631549065889259920479647794670848964001316021738366048407671833145783118843203550960009595626407273450713493147266861478725823693831520990661012127420845942036355190471296343701759382547242174714497946526934398680390624662369286653536401806610636362605317724916710656202635209802410523212004676330000886588349496972631277145591396427784188321162276119473857301718583984564808337678178937190382933280708701589285108414426915889596607067290897677552989540069489341367727141223364004455768182624227674095978333781032198259243620715909712800374150067867995143773579529815420285729789106923802753709949854836490108093735502103255088597207411218337651614292171264978889318254393311402457762714210493780164513137473686831927121878161457554024411181573997769483099096186786934384496258114723339240176843326451624621901411397543651175503975305574911034974620622785217827286133057376971115423857708177862833183630815570416230738895676302442280778608305922059241984960313674974742898559953858840298610270963582918620748722328541640208925602312259146750953809306993777461010246802927611211514157330192895839063734312768563361363940634449523867978052766822883274937833694499804493632558952261025062946036396142886326532386268471757416165652585857305717653014386329245078835439219932451080778765266528580181057546294062166768869842609202934271809938689372532827063266632673027945331883842457936906397368616315204101408112544601009031469976899016610505939284139770816582820986087357455391117196833095495722758286337030164023467868402488842315556098806736237061348245728556153745887827276475649442664426652958790855187988489242482334777101357573687625191735588644145048829389621771330972596144207738280629482822878986882310536406145249716641428715331087396004650436833606663377721699043071365246391115568939724284560260344173254285141957120683983095897689436335674489612830743588576220054163502671221312686624245705539449514769060772763934815742428770686571763937734698444255782028442592255299091338122268834854785258416576583904745128916651784673037531533379668159572982369607519566531406945688289501657673128048993443928918545692521408264390101256631136848773044635363163919305341843483781120572090218327470715763060409272108997298079734971133386402425593458309014313799782590845983218625276490795529668369920510263752907859955004197216783602614559181482801536003704087453910654054128227729473622069083160077038124033974867776775820284377656883129109479103698562458794674027096662711606536896266800557853980133396041635320674510915027798250994655758224779638130899700468988251002132035679545236372239656394302079122170180925029641074645589893978052662690119681995462068419943675634942230192725824662760123284329134190452073936697138052842088448811603487164690728732397723053366085967657302422241883108010886808762723763988062126307022204603235053921964452236366405238279239883609209160732701629748996455594994340125553795631754020212241746815910661998375834505679031799562290709205492718726112764472366817385736966142914417137915014878105489205526806393490708708111946090227096069739667059701187777152274944263887967753507669202719812004693413964180424503028469556910676555771389325954137122460177530781122952191125677622149745098323546429540098884775764931927052799876243029495541666923313378082696872057320885709930663709126721394262158939504590391598915213453222288089335278677000286051759916602697207406460576364223740254472162544602130287215812236534597923857553451394914847709210143788105424723274530525742700108059276427391161478705567459692181363688704818571865061863509323209092123426455168691433239871847252319382962659263404847937730157099647138749472876445382068929735548098339636619904800635035818969986526678937985848229013413393499000948832821644316159502878462588903448674491205744642899724559692922803255638565145339767347565711427179072987955546617774737639625730746618248297946635369451123723762900777373914434550843010874577513754206195857390703903244220658609938645854416341080142596247348613163783840189105851480573330742453895921122303996370142552873260736376282720021993516299065954535194216751932914230248822915509283737855826155081062348690619596500527408571510213051411583420293172197935741742022779001054743365538449732259512559012290993202833667381680299745873165522251480460386269589363144566304633918116761695292768695402110078411957478164124043519844924745166649979305664967032966627081482621808599615179715578858210977117307827979944516393780208663097700738300396231815347907344912669112943516319941489497589806877764799064708866583368326556252746704925254396546464783000880396271692468417047225688344987509232274788496773510006503702281134354963580728248311694672004960503206752045426107022132314504165891198335901846258457437969673963938816608086101565779613640220162379724647077283652719714817883846515409039175316199039969683661829576682641962692376041021123876602393278036079860592017572346898435417139773380920724579945846271656081745057854341716934203986917175590369563000884659366814492635546115330263503166251550941825381556601543954197319535601159593683107727213713220210118676263671642633076005330949005527149699357586341861654229695935347983898856843140772733685044568310266028408785203676501717405580869140479983719812148807619423239639893274156152102162406272314515952368740739336292666271307526975396958878472445664278998040154122837083159996592773085498721946607304195943394716839033458926863236266351113679846190341387332284448587983309308090228448239125297281444330810735456965367125482103852827760351659724264939223613254037929425641652209302637384632335254319188841426580861420329063202556366697605283472085919114331017653391590065260744485417338598846884407981753411994046093455619904013268101929251394971731709011885671746095050111888644403529975718248082996520468232403108843035851468807034904030533908019237014153468268892063503288104746754547634688824185214347841454773055373927427395349924243631756273028321919610944274734179063349193486070362263037934524397954726964915474047815059323533426694299006960319043786765684669307151860742546320948705066561666963712541514416993969504727270115154571414698798395452973601410324357950868115882404615242397489563550967343918801092459019184885881425728242143383841467374996346418419089932783310985757822077945615751248080522181475980581707140446784420508815146614203997945384392079829657011489373130939395510830725579628745585928555907764633325601932488676783805965881987095719953560882781555671917220595846389371627812877504989461586290929741963288798199927389803723821318110469729192097604511743352179793944313901552974884808692419369528679784171082080696051748209983631497335916537309692178153082179509495463784899458113856034694524401327902251889373518997541780625792349901066236208250065343039528338674011093773337403262795375355144456876739695095576972396503971729987445613242735907407446676716682288881474427850396470140693780542046363744671088369871220306956626545526607309181664700627086783079335321000220160001209451056904187287983798270893583955065731747871386422541698060790658698835770369821213868805328270669257654753054604395240442942884739518242710504095109687083146450348917723869150607492612391035574775959020383417606284512647383342196705346159782332563024496349318598534685355009904504075701023459628181190622406543157405944982216409143126688970986287737834944786272749836649933541157329763709435425230122208520749159059262453273759685795780319058042077577837146545693663846951617228305511183856490484518723628404765847277475422258668544572361298779047070447224639804108400053744582442473604974266293332547039695515259037454783394217034417828724821929579471814545931899023857202976606703209014300555759189333895382613182495681088990594076751834497993349001232584023897481233237801292349189512048620882310408153772305682399048922811843058741452629794449488027808258867640999129548012058849781949578361456957027329378830302249921561798201769038181931910746912790444171343766054037901502780392204197264460197118379627180995138832416283563713997035134088034386505274443213259195396960723227216889695201575732961698907416572072018916375273368768804208693008018640544350123242842260075818998794343391708019516130278295456001434786376130492177840103223379829151115143328520038761716160210109013092426320284117744183529610251455279625897348965183504215180053168978897209960037739676284944762083450406570315968729217418763104109956986950798946567614865327795814146748899961859693189463809296592213051640183875909291958587495085530728762835435128241108892078882642423388239262573090384451189366215422365374002029095109690105815555492517338027735854191208347084921255920472340036840841360813052322773029881481056686745795600381762980118976957467518305220701694611550737067778920908292242288485309675530900962344983662820994644606933269357298616670138645974357301320486876110982691942821994919358770893239161435572436810885918349619071484554392014449736073524368586693687765480664042361832213378504015767686003416438238886118967447421164511600523343394235633982908251266348534925528633662883141978774667669878600344079339087293931750230120192370061126289123141325273230040057064807757735742476852861058619207554481320579105964121314515719832590613624464363114828961941384436824749724219924648790617905435476229384379755164138516733824968518741929177911674686312442056838156133567503929902076313245757158984381497022525200606587458639304161175753304702562732851968373361417861373957820314067946628768532335107110756123577798041780069757293971647007870380649403622977534279691117328378213634091698860399475706128861563984543557369328197193527332702338386828938479376165667306013037188372544141214833754960436662115248135500819148833881818098561789068826001951795847014556826947895703433369323554496287415958706398243146648194986571820065016614793598927598929773506099033223915199996633502932941721519774367815065902387161602854069350591328516461921931980459129373270302816670447418679346927448523076552236633927713972526660350034151775113166420959634751606844180452792869411558045472693313397613689911025641846918275140032284238512094028573351372280140150918574275937625582645542593044734945721934007251619865259180529161912744607125704082093532160466723751282971538457731487828358689536748063257898557471773210150886094593373575714571372580715958210919807663402453447018695668562206695544785620358545364297155591600375534958599883584884317308351025516655795661212028219966314248200956386412620142134219697010599776634574796523011015417911304285470115004117794984751244125869646417183596249772989703997421485983131924232209822931198208688784955272581647584372463850980044936483601608370148780415493673834844221814392699190131143667009020009341435481176296020007945037223608736506487863669740297116012724873225260046293853346553398969397913070243507150744728218815117165445499340320386132889017992287585817954097985149732399948091987631440448043778850621649110177451696529303598492570362399845174729906045680589908025774680890328984177909145613035313114305110109524016079444164115602455880068537769504373116927797529902160538254786383133830462482764706938906406294926990913727669823315608327487785484998180745787774370060100276362506630812635100725025435946533071566380002741235681551636458556073316519601804799485479237068415587881342776053625730681746927459418749908309780354156506189416933789449956660375808101839329676814505070683826342258036996462896883414192201536738522257127470746516430440767898546480915309167404137799577103315357757451134430632140151706926840258945201551664722355207650652209855349260329332259215750202130710416188636639654431032523049412190749120754412709337192978729428972214573933812752566698855350451862794494249676100774092090596759499917721303873158655844151795244828787872907638049137710546270579097537347136124817323365956223352164369675770558385616342775595431647925568184771662129782353217758660626448381445328882709773151929832085392173200873853533383477417818397245853145914844149635873884907470554449882051288856352754634334123933267499172766527794182533754709553640646048920850549525741633211868619577804362257674904161379889220786659703522518145131740055900608925571930638999974725438814551485375531842043819722947213511720668570145639574446237713410272313591109146688424151615890527130945215666619129959541412342307583881807710440169841498432871586806574989813485351586805998224422496302138721090519435414718387507783942165171071678577845627554235630472643494718452966891744330624807733201258604936425271955331132171623658423402843173548667649802821660552389861546277277654962126701075341616860643211659648743628062988779350300877763039074189058546357520776209520492983222058518751278268680199933060719414368228441281150557506049705358689647808540862560103924373531344278388790514380757076293674819700100783281684097586572593839824899116020543122220174362705162818407898664594879825503539957680392988988556255495628723093099812022604853156548231987651577980599302673003353712362562773942303378296547971499619813541681125969547694690571021069893965233946958228532367449079259393900606760545285354967716108902810095505195818826762011687011549525497652383374308648272547603518256379021297652380709315345224893412720823419943140022570826598852059206791887279865675905944857577304111159050829567318229702534545283788581261721398050934669729598167803749030628585456893385235757557712031308364386920034832058021791603899663564534588076598672134313490136364887193355767179723031975497357877803516458912089261291573260343026709214419612308246614630864031310932637338381592440685572838794950927351329624963676579211724358944932442627668555868314505676687101340711337864829989999239099877360512295065039187551808853162486453737117023312972973583951990764402565030196362013461220275073975171814473014094382554669402910349164532294832923426142558941030876984613941227151345944685008189749533787129482462529766074412200261062896471283143876416694779692499226753510180883934452545788800989776713578286868474492854654054346795556180824405506928742410029831447385608008870327329767541350387717295971072371322683397866564630680600181323529499391288210924792930696209140840689658459187232213888513825466567134609411407295622008023458387062196730080386444453532740027101192454237003570822702422498173020559003219427454256825198722587134548633232205920782792272385752584897782077961256183403734629808438495254912582383816066980359079545915260980073877797641561924160068772901649425310534053667579645124797869775191906418612350668388018413260622321016629341903273697511252373459723242833149653563135823162648029897112861112065788725561491734710350391570204915089723807566102943262327146801807262241636530079070162747260630717031908977179397677295199802902768295500201844177898898171694150614002537947485050171778361696394548241637625113222349982476626242088618393229217780765857311361079692445244888832924050472953361781531108314972355305954907670769020739033907211898765832328725044858005610081063133712687016993235896301614672360398790498583336044572817705606517338351082417572823147834955907801987862563267927726817502906529148389340046495672226963488099801058621634720812774007180607972113972513958925073264725998372447042706478523743265789142653971719089776322726317642819796873669980949537093265610199302317424803718569623360041949812686576247876116882783205329085194156162821701218425888413730211737237917477274683972558555638981261499596230804064623224609564357820134215717929276898185534196140617959935937171897483569419530769081237453085221287751764362580050326796623995771811396013168874668361567840767445892830022800912997315587904443107371438984205155476497469157421515317547591553622058668889192996785484638106108800420806604541866055729267452658878083467694097312512490897228987213340328252247184140702915355015741975443789723791850756887800871533989478726803294908771127840341646885722882432333417991347657777300926627669822877451914359569325580993764345995353929415704731660517734674252728775607369093873760762423188636684905739244018430059301562006251292540332417945453904631637048499768190863436162119836129295422833933558252628774102998206752743284465248497926481703283705844216287646740684341274127614899578984269330431155978213676331380591731355534696488938728960799728048274342128094102888825150664410306147873501030133108289841894221000764951056692989004368529777629862062204284325496031781748358176588419024642231019979798892879399510967562047262675620025083586938448440314325981259226958151877521969748084752333798091630649524417750844976536014121548587393792661061257455717880763666803004463168414488885461791340234725964313831072642803367115194669359072729801386693524703963799243333411275607023132585152044442720345467710329444994778803912485396749932355155506124991590813594147430567294599461654097868234467422941087933554180920349432761981098127782410052907686959798364440786245990533394239148318182969562949279248758252369645212722413109903554762832437084980964481713493836606501772144839317266402128255993080154858703543411707416526528816460840968451444947269189350594468050606600714499510349552097279650106658049821487271925234190206583550135910475624250521265799065455133767100389310407321775388510747169787145598541612326086552345335782517381738934993997509325237666192798254086956038807396708014897284384096688342386189225760665353918427616969975516716497566301240123120864132984690227660605606411751333299177716089961395327943850813950702158632334501694219204519262681834207233618777272709374435603767308144673357269965181998533285319352435983552245054838011889969054926213826682464524918029307131293222622140462041054392350936549086698988452048048318158752417645602664434904683135026134587045383953491390283321168509268345635128979573267786541224604832797864092622698955055522858402634987179285664930625765366365354945089832882613691320633387156962126252852029733585389746004298547167631425345489411089278440146435319523220195201392929511365498964442784857512369725285281595144259300757140212148058788601903418955635816669764135634190567079732449729479954538474147302181074160478015239491054306975465875417677375288874787393619031827549217722501459216087225024886935811838538021773609133924123168403088143082916034980788188446850643189887069716542875668547713493404611890963931245235412154975237582507246849350658408759998029536004951148418354746778660813496736403055943304399377392719295701014527249689533966538717842450361166978177276792807910004021177562610096182977577481750144551936755808975587736049103047104979336860364220641254124749659005992552299949769549976109421917825129658122276831232673070985202579117320132514027120539383112635291323006375138437385299788798672119054604604605599933536117239674239287856935824726447886626923750518315809124349641282948746863706106517965877808314003513504153054246287014102381460216328613051936033314724781187025316243629403614057421616825616105426575530979629095195527652395476077149422901086872592373358723846960202757325911739826530029039557240496137274282534959057512685709954188320217757073112009064087656550251621246908542042269300841086580628853451192460944294518638204670696816203894507565873295828884391685358104707921365449744040414813200329499428303170274670766039296018073716329750130758541532531030778779078862920723859656919323960135028282062787778568459934503770244561325146746634646252033431103998737861170028942267262508433580012180244452582673042411442083847079751875333685411648694606738538011778621694809292645697969748422804105079231316207049500000870336463935930671523072789687331885661524977149422994961185460600544499685438181311672458050916618600534539846063322305026488561231254600989451486072203326232853802583434956716438101624585744098269431159637740998563729455538961255203231953088657362354474213577823023757677822183862851480439091993998683978079258597552527515346822264351032501265819096001785390428157946083499289075947399825222236372011643153326313609655539283313714659220132479785852813246111819143034925923954478202849436601148810148204879952246856358387350198266237263258084175057505719319890014659868379155345720209112570045125869536456422168245113012824311644570114142737721689697644821900462990178842647153474246876854419460720192153510291834766525823782025549404172988272120724820730523598658125589463019861927600362091310450767604488760014288129957325278818831310474841308210238965930966986629609594597667465670998737378840610637108300389257901963746264265889181009358321627499650969418354633457755018294802999159472902496159112990196301246859661627813924410787652051678438304462866464945717760455110877710451953169198657209748116680955537625234084517182240386382553914451213018671772043162433105023734750828725748875961578026855930976815035033146772290899454754560186237951654339030002822910283428836782169170030267764274789015141680509785189417337057522397195749029379567677859036415269546441192803218687083503381130005347775484315773946691244176255372185713371432200832887106465705614270681108087494250638864608891330540370070755307119293197435067938685666593049227860673520689344883073320966435114891273126911226431440226547769735549590928626126719822025865329663046782525290749333688037039308489116404740733887820920387668173418356644514014764815345764902844325284152497534573105892143218755854995852443960857814839259353920497476389605878543206686388285404831253451935867409188475918220026275869385063074304565404887327913148421020703314891460001467376511393215898592115256309174535534244450204315832904363732014930062341300861678596255119844392841856378165342195531975922157285689252432015191411591665311735169238075559643224701877575381564050495110393701036559758799629539288526467212817772734852338623612091932901712161554572732485242289189185978122722521873262643830735224605299370167793908501398092411236066226540898028725439246700087962639356283882367303861732189347143835588883720365536511342410757474315934144179857018254239570950066115226030944007920536059219501817928912943829217508438718754000096256476305655302781796172131992813252031814008433910262982106131454499723853033742025148333459754600440205259551711017568843614477900502756716685118659455051056833287965900684186200770918917321527488318660439730493154043561103641738187009558949483720519112820679416214489812468223624437226831165051254483889028810383097029820090668822140405594454126547370484160669501433039721469352924169466574116027562400564200396283968818887760972077494277038736808579436711988348564613569019459095541979650992501591584444469231167013577645020496678536786768673555660828555490851156526706395802822420723944464867171328293164142452396488355915553631675139589377104523581921938985728352786531471078271731680002670817167130542609078202006249772911449101587959255436665400197547243802873990765048062985269956046910239753143467234265275867771061360369785521773185891429943714742976536917886828192230162810069186287766563006666882415667485721909973781938924332129403638895272691100147644771966835251947729820102138835970034120384473129807500266397878148867104994637384085606258737706338500825939689634358184702826479063278443512795425746355765307405538900627839966260558466527853349195427748178371239961356327944907385098462867638869192813744845851212513339220166607389478073290670451936868434905618422247780752298240710302811452934202628273091418543624316730319458212116339506717157996899930846322627711545301021571359163762013440034667934420917072733991183925965589437255551687951799799767599622828651367330381603569590026570815299322030825301137037018831371882124072534568530400283158451675812714338320195060540354704578264604226105025968564556276436226004409116738662897263730268080672173707699082409523252756831172914287912504192998332388259143221780190935953392530445699974929091193483313558182373385982260873937874937481360191982136586228424345867753902958391914538872194400443032438144967669397749237941346061421739907568083440462064484696892507137271616553276829247174640189003526576111300142670679146156439710930938902814323835304684899359913653949850510616418883994149428862185577352857273881223374474150884053712184516357987346895543312491733863010077276101271217485852408036000800673487632174265907954217393804643227138816012367736436933678406546266128874211295177908195993522539630749995056183995736153415328908595947770255074061875478033098456890032161044283589354848307833819775474631215799732872576302145127179721570782166720874631606655462076963697944953312949479343600145058904845200996070863099426172900060505561275426229394842357266054747876134253227404111546566194960488899889725861839007739167018705155043953523631722270589124187481663755049886733952496835719801034319537480636050731457458083859385875251548204568762872180219440697950903178379959094409290369936225064237136272696525997980275958390633713714562269954700004913941834991037998718492737760148004324524991159475633321846579336236268695520782202848662889916207667584099834360204827339205498526080341205666250635291898312901021238482247830113468098634441323045220567029082585270175697031429889026078894102232645744717334499842693518288050308793921247161035779894985738337538528658664505053021399616053779594739867548989810307691484388321786419195132408397614140115816067061387932144155358191554246660715949090812476997136429385534821781610998149963999580376574467023051804591602749192803862500575796510366317949811066477975291535544478239952142118211350235023038641013725508574809875659046917595138202438389009253129984677714277271945268924892013137339120703696120791997363847970486925306808904726978384786969638622425068208378959316541741387326370813171138641267192852621836662635847303620839962168061335246105342150186613556992466587358067286133519971381491652585325652965289980287105802242604792148097197633396630665424882810886010832923757070778048161648920942669670263754673840593665708397502381247210016575283810615101575125168104006355620081869770422914178292953164031239944749041735854061125388424067105323683437844260207688672730699460820233303644261602352790095423629274518674766908834790072614503228884159017728397675234336743579694356040292735595387274519913886101042291008723381443730727237777792113313223187440218752739723394582866727374810494897591306579243881639331981161654036294372580834472965596033843508053696516055355688437722637068570112452282528034579189065317217875783420033700939434520918880633747520653606854969504803307662500575034224596607193865635127276648808720582700447749712577571742376533803943949229286983655588165203464283336550645206575586905426932317845710800576844949581135751450060890853287555256295664593095512090054288220939992300845261767393230863912159963171898564551335743422529551765586241234602052921704147610422033427918851909175552469486841274510993123886081495090396238689612251694894909923005547034096578323709780500682961906709763370015650990157478889090151869579514234594746722167180122192341111236910641460606513049984835111719688400438330640988650313505536927155549986224019099244468829787467776475307100975456086532618346011284526863325172940054324431517077906653538388024471755747425781259308691870025599871313749015945698469028928169763021358880544066571851190424049265241305774893972257877480295308362076529751403095724760491097298834009395384759779016928524501438974486823461456444951053604344557894180762925824712252922685894169878318136076077793470786030207784160577007262165452567110093283925579786832074300308017133915980651134150317497355978931162127477711529690922399654315161418314056896550052992958988811003384304227016894267143495108559893879199642038424227987882776237920246761412301796336577889138722143861693033006191237905400534323616096505680302081318076699510986352097201131596793949432148544396637954372786593020042058227487222972827197931207847938617312373972328177324573545284586951365079246521922602704097791629657396609026746675352094721819737647539524161298146834901328046267558210325123325087465345354228979668453537487064696922080874133662083117352756672069924306548911275871519352920459923602605521995773086072266375998318477948090123514241469703245877929161026095202086740667021879904968611449570293336453831037498945591954243492795008538126729364593708410295513079267081979708815786169295385453295605193368272502405403813778424005785966477297314589754545663882161105557724596155463707003404538639259511391354815231602572229197312170741143772129026475807885955908542079128530231203153475669250604323308868414732344567135806611748121435168699409407733457178542048877761047890273838149862468845114751116568009454056295757037530908465106545417030641929608006287852445193015566243749673939475946407989775699441535856428697537250446713331480319751528448582264133364059648914187524165125162812444512392630658101864816485150556150082879385397505649856862872124729583510576469132916669511069180368671073119454213826604837859793762560578790924914552731536737280359946422917937030714179252738630312644699096124191795201248372510800418394259919492301775624160705959942102856912936839922965777766009719977533087295792614524681956641614319500801942701383042038678042366807044813133496288246434957324839310336512351457338037916986742082836046947418688284826983227664470957511669841164319369256284604668826112003038602676916023295451375635148682966949200421440111841647643096429693564403834622065649679338130200894271108733305054450671030459776216986259433206452541791929361200777359852467048908598288743923902734312574864888988422680547392778528798553150603364733941698463863537359141278395108662404120417748140533714514830857636371606365731156880744486745056909362386522135083577341850592286832966382293742379200903619109835059953891784260488539505768813734248955479904643622736765282917464537594016630515913190794537562722700737259369568885711491005165007718747949976013168604537865356725202071444202398026227668800389983814266245644091140660214174127688459105540055279786029917386600035400562586013884378149861737932157829424941280825076074347327599834926795113726685253204474057333858478989764676510907382254715820740060599135064223669428474105067838438596126223573937435221598821723334395135325346195876149562025876311359509913545348623002132877038260207371365985976069440051505689476903841825553688166613088822050810245557323284193980423088784952824870538726826138908147032499006425076303929013344982389128541255156310172120676781345531534392287793743536347995629056186193077671553687965084381510159960971142687183603542361888017329853105988331048797242948467294520128174755215898093236674867086338209869851712663383588672026892910815647492440689181452683029434176382934933640871969291788949916764218475924564901099675193097325586104359873906845144283122103370684248141181630134084144333766343712957886756950396743001303120294445970306612756540074742841434491380280349238413527785292237336880771463458222905995607593996619658103462813093202874203796576045428632493169624987391955438891032920459831337079954596800178372278851089752676200008358410954298931513994102556862437372674035417708136582544789797586944004499148733414812476217944864472932233236578552199090884395203282567521330039307621794056460086523150896367367901063160464564237165460938915106025757264021092286281983767880416891535521470317720801389960746171593736931618269834945415374280383726987836954129341943547517994253663786557739468458256559655597158046665534410026838575205392039181247083707072797796937177829389491957365478129124679553209798216170951215864675393931225280392678894867482184149771803068937511099164617436259073350239830808829263406923625160296584978862104240020882879327875710015335457546648603466624896556330239792062490391578635544984658503252542754947554660074063292700934980180855587933962465197015551284305468375756388129909254508945970381303666044182480919300041830122354603436752901059339248645500027505322915573191197209539505225464093499998584491999091397749217047794672165850316946522390812838748973662204792151561323724070731085670139249226624256588361084183736186090535142208871052960447352704622788631711160364465182182226417199917945126162752578594791541721212773994719712524967997246164784442706393913021012264467023607238057728288171129090051776693280203325316707152186409794605761619469132742725550132742407934194611766137004787009352449280513560593798442987205802798064793490857631368102004819890515384818125283710561135678978957988881165398226041607482854030149012468649015114034599730348165317677930480216948460703663177142087060407222834029202141092966271685328731835415171774313932975502032842948200196028730603815310080636577120751144645918989293676494287736150247849905369972628563319585860032290085249876432192597911420651098058395603795666619925924179088951376526186550879148367114053289166290138111413356275844301402363217786017219505257677746787629011488991025470486015236774216847619285161477587704612692676661798733267934628156372406166917625990364328064201021397406668194042364420673611549314544920067253693337614532187781030246656153261953674586508669704678634628881663493827189969524869408239758510031443985833779152251812961727214609444264715546969072490474466280239139549716404261855389153495385591120093389189240098826354960883189021141081254237641623271622080210508018226904942888189899851779018791091180123062871951325511202490957597065016782749370800912906929852146924308889803209758156341431045622691243944891771824464661383673940636662691875807903121715771577541150732686432090022692007966480523698099704893678297224165475766842940890465788216389939145018560474734556174122870327826203047933882669357783299734675645461998297006610403336028517441377811869649617965303205652154342803890301777782783045805452318242533891791317850294683794936724559908151280144261857042828557927530092004725932979909885902784588502324083923509222229050207077704089026116106126553052635565287772930602552830598191527419530158302836679531931658622993014913109370457613426243149565213148841909843930997820339579052337950039600649363795103594624188492398745858470837793530754948288453910330242712287714112538340738093345136091633906488116127302696546702555327665928566500947856564835179776057527831475912152401405572972583626312372034101749786017372144655470263384009525508551262048601443127326791542876203760041357935381716074621601804492788609885027837409780439028211305777146745183448991795174496911600285159846394520427059446877269127140593261226813176646018670360191102609722957810166683651110635624515337789370641438979003039409762622029693821246529082936930396069347070370295642758800141610635603346893458971916931559371738151238567691163557987370345923497539486985729695103514653943140500739731703729350536493313961518226962880905200328257554436140536429181079584263664397114282070075212026203797195778862494254092916338626181271533104662359860533321186966640306243256006017587945018394745011358592881945849992456233552662255537675215062455888020564661166887171476710053583023585063452849950912925800250275581907703140589401089215775972698020294283676682107324075639185992606082672081911260623658586253974312605497505013635781996302475286517373533074147915840082030209801319785242988276248113384389557181308490246749660667258110315230468599970928230953863052071863535936164901356083453220560073288877229840902117462031269181057605596126062724125042636808636300389075185156850998548668607774420581849214511497760988680944553830354491926713374028110685065682818879805980107430125645005896680430884824829358473435764739849346976515269774446438980418954206104139451889460978308470767022395948754509753772129146019945714110413016341956328528448767121831747112940093127749238999877867883112463013874470117074152254334626166616371857523944057578027206783733955752493877852936892128962336670706958921753864769937319392476573425472304732140439858374688707276820413762862946623625530149115677573105609032763613958847400987353754779260729885445920599754438436399801774439669741525248813516465183779620689568907782225810116812696892041956091680010438178272990801173701312652126885815814079380122446662039550239380120270803662451001434867124046789428862596504824843418695315436950428302663912155283383141004312077418126043667177191504600097751399194084932736938326759242593731376254086553916644841427189601097687634625601896398343031723270307588049628685676118758704986856076982348681826964798274309125452039685454898229962008353031590670294080245009495085331089290138550409709873341600950081891371318871119090369167698264962421693996729725167782232720082797508309934603404793392203995279876146969835752620158062010764993680941388647052969138541897325182555819837590019012015289403850637193080500797448548734575629263417054814323299333996521798295193530542513205073174870605105563597329886321004286152866067892560207114461359065483315582105144372415499326821042878986457557674008898844625242638033860179257004765348510947364228673206948440365225105992173213180589915647173693684922483215938168172750857209900898593060957867615328635686513066248978041591044452142718763076166147188091617579920801560845460219275055853241132400895125811105788652197689846047397222530254689770930455321040865049194842277386004682128276695813460256274782227596623881223327390080472820245093186956277086945393621721009472129160010518840315522453774934232213628418352959879263262216434183651974998763577321650868690215251114182817007274579730387063630899599584287445501083883174882014041200493279374850006118368053499053443988607067045939773012928844983561024981781084393267338637327398306072450524559853509001971366491378646000555711749138768655040186958056069212438503884493217995766177923411839690395097350282581075001325777110426895493782964138857345693481567502004362144461074981779280337661070962267705077284375379175725182342646897988048557707053418771056951262285319328540180510003327682479542411603866805948217703098227663295629356863365146843071618913015456328003741569874515742284747447834790519235919954735492388315654125231233465250244682735522950582513265882509147332329118161686842241263706604263061756587425150514603985052350519178271708341310680567382185357719481745169657883957880670677356008784123035116530636047517657668405818527371697418433271027731974609506211188436801794757789288126409307426591831267114391118937064730889574130000790316817442290999243422892621783742898245578087884575038475148148511295044347937945676847767528640641655911361468225368061474169468370595830161701212211546716632251083573096722235669352213726133073991392935552939856094589435436155385327146286144546290320021161591335350072450596696711506022587684176931375277579436504816832013482524206925923763232687783609417326511852814286640848483351068217716369094003183458399826668303953572346179488474686239712623468949821878763784307612899994421993475549462443101356143110621414697687458272997569529224637649583173219497828648167934963684865243810228352905131511319721760730674642453607544915814456448147775795879468175420954697970796650259494543339426756195544331766012230373563424555975771892167458214080669708430604222127290974979869681763844514185596399176860605320519377233791349031861394516746124713382181809950332580758309772017900250336241651531078858190725652737325926162548361420079907700693764769702615852414330538349669778864327400287873346981362240230448827651768538279241051984993103028190459192514908517340723760792073463577953917963480791506542528726543706106958062861319572676266136368208741055675662122042077773874945508518785606099712711699685440329688733963716002099499061055015783741765199511850003870662498668701737866886310346821544956035266114550227711968182925890832608567268711110438020517928839801152597672445493633072689808972318141071108908220708636117656152386116995699188622667316280100801666081073358250524790740767023514744241784235174050581820480059689615600402126969831711698529234271940290437340990161049635302424893413111996577521707446216150320703005725494489255175208823377220919960249328629299497626210231892468246200350295004915769613185847020741226320716293082771480281111480209817316103681275591873171294193395334381724542835518265322582131211122642155135190873374414651799071601833968762466817159515080912078269939094159949012145776263362134922297542822252128643490902905122456897987581136752023199411680383446383328188507331577432195916742891667623374061322638254669325560837116663129904911283623663690622175033108210475155897834879513689808774887179349278049634725018898254469767995062312430761871281114069310204412824664891664476587197487144803225235387715814646029746732985264652074281777656712428457627892319386235267896656008160896515007085185805972676275611835510388489526025877063525019919041700569449996753202849945951966479827950064152457517216604626205480405580218145088599781365803985346254156275521697069797889919482450024078612637332957720195349656102807790248683582615721041750515888662548351910984263869306771867448420822163107547568586390804499125893436185328768949849372962042019968570488764007048232125034748359589834144724920338582375760623097705307709927288877034676054095475281136594522468159411869806553938502841379467127434739724498081952230762287264781423646698349834114554296658768889252345043872404324446110455269239781782693580390753182554581369833431554050825863453214024442857230317840808361335889326279846441529542752796385976596999845125976556365849838094591866162108653281144416202587157231941372548938181258442574062472532490560903261447950245841352786064350450766064733288531757283037015975079530786199652337829597166439348872911355220211038723586867447388121353913743050049898017172494027602354981065977231773420297128364286714973174309846892759199916409236169859975443319384781820500011060365139068271075363384396953797220331779400573144194594420725954100649923954890142128364983652786065248061816720640476287926840734869664072771165735493960125807797414462680710718219762072057816419740982713181063313997249620808956371256987798757382633281005743343547117523223685357486495274387336132220654510294758960637653366691578573507475840806469305322562837902991351744831661521972152744780955701288861149717251022297700705851852169065357638602123267978895892696910244694353868098441736453489523086569034627023119756399107492139655933808406259432876818054519159931353871635127891067158263846338242705012118894064430703748360756850122324768376765429198378652171540753244623466863780392689349477044199154401553674839790740752668458069975440401451890252061844664083218169989613140114474931109923491029347084526427146909479131041802048443559916964814340306418403618400468660497503238937483507548543897399113257427086735428133851755966518886925681657522554759047576753707677830054075882947439804714434117392815749936772838105459648488791101066487791317669093025587492709234623305805843450359220684618573183406497867394975769233245923226873895450967624150713111467282617442508998268866540462536044265098665062901856910989945695095181722914454705647109266596163616303832757305997026359868168420296444452625696745533795561876203799182169950915431346136923987875982752449357897693340812437837038205344134201120650260018210404531040518310163194869678068931786226226243320839495163874504133103000372084456883603307978688311568171761152639650889965748471572200888396987958084701730547665546202577253259645269333587144269704058468315362535484766659670346053048247716118937201016015443398396736263793746062238866943103693241429738505636797000798314356049488626779428880987975347426467282422773690455099949111957234325637584943936490656538528714900920562724509178872507323877963823078618753181791221123323352729167726425336005687035322540241825824092578926266378421910530619755255911512047644696193002422941540976567303503935300232492559756692724130368572967307411872955621258012279104732235252447502384580896554345740849653781107940502589996668602975116981507801029571668622924168389375405681596939242281288553685453652372965094084450789329257910423974793959401913474521067684992664783333148855910720512625304586002842464330951196438349700775793261645118581104453183408398145986654951296341435417660307940296031438881112878127448736721936471806749524153224390186120385204365305731224248975544358229512512643808336925167454660429664138513061648085848623474038187832180147796634913419646277285038616769556684821870802491249088530925512509566153564641960980565026277989319527697518131252573119242710622422367029436633765408412439388348109101321614169049002900132415622636764355176602661513368389527721896760278938870744875542173834751638222833458163515273527653148666518756158741241011196004160813862910317546990696137934336121547704789152643726226650791962546516689149519894348997325855245414727895282481211464247532722061611077684913294714696420752446240340932348194240624662959302567016748287691466528217044029403264867380825710886570153593250472183396673279140552684345597897732603390305854391543848250395118385713575758182259689119121199272571252866036155069027387598330384025496592229570876468685169568459203669101902895123914429938024265489512124470485320759161068233721835737732620124911625195371736956266682383517716738015614611740574251929752414394187589908128798663155270001687454782083001738383167054451315216139131288763082503775710898200725309807273973694034648138003613814083869611890186782968248267451215930836874162445357107753809974580129844019690471349080987744928019074632120601500416736518028188460854894092750693074600336532825248434903843594106985987263180674387319360809259347636488216405190039230862992365192514294192099812693340675897127749353256048791587481243021357061784597760043761753502992520588422641247774770991547701452652534712762926739655822323362180824547924899754855528153728558721489124430340899032629439860389697449297474418805755479093604365568905270209932797279512915725861439053273133488029289034893313990766279426566085417571805825951644734126530757619064394701703992347704236295297617729138173835791668498657091553305588814173864923045425009051120538939452675686522673419293023129745080426870223094172558920727549082914787299830244610906188277484674187043370995166848112990645202245361186310466506015006580576817512564222487722314196647411089597469517952077597785102158894233576367767730850592118988601557357239115430177945963883090362974181685966997040444461608390136927693713810872101499205235391557672275617357546903636422429970268335539986047896182901043005778261427875645684186787232847250410392219518936566517962904484516781621397407757021813189566733870264489472501045140744799658744761178911620763202536279015403636432715461869386983219536777807746975320023240724452955119471161285133996175568109388446252737348267111893662659113676236608694129282285860037146034950837022544865452177156767263491362492809278816759377190611472211732741626226165939504134319288996115880234115365463605047717465997341062053137896470332004168708487207188137232248053957336046432051844733561895889615515053359822709143186240751244293685380559871045894308101356574463543552263277132814325254206655741873235105131621724193865215791445092294184264660308258043618237837342912600917108081342050929872961143372490371015229722694757412188470944260490506041913635271925043973810066349770001256423251062829650928556149743992659039394740086888812965920773172461278428858892368844000349937175975852350990905515758977693569479089684839973521571484471829060464901673546035479496748447860172692927800962358755783008629863457902186695500739591626438322273469525177392556666411537081418597422745272845614419521789595801480986793426029171345957831534256929792520073294699196495595436387077069609867697127885339726849334829810384705473754298917499187697834689209247731035405038140551890894309215942813446170540272951224935546714863492500423958246809601362433658392674885717595525523644175500240139809276474923663175675983235150712158362208382024749308446343306972100030799910393342777628023919520801853164993593992700415802627513746434101201844269972785469006304670189011799256807638987453907109666744051413010170965960440988922528643467421200543436969369871011763196848039700983147212009842321020515943274895118293544882164022247219646331769147868782970060969445376403587492492834429759730513198287961157254316074648527397467286133840745145322621598726710450097284304176513496456648569321932514088866900506054555765975312111153128017512188195120838605644790564515905507366947817081512297464066654323468179883624937386421606337173215300883447577555214457564275424133046920030521846676424155750557802750833943121573628577355616228049524201063327646920402988910156848538250813175285879590978825327603010402410388857635852877902889585421558555570479246790830243055811480180469588787128767114788445224928084554558339785130921496961414032607398600165090712269725259394574285691124087093233358882432711188158504204744077999271024720984639837192307157961971875881992803167694925753470289366117853228541972549431535992798755445392042744147236953628443058229558925060842947804301797133365948152046672892884996265894930819697333538744621606833932072908623038511057925079728031802681161971606263152910576467368511639714135196792005810402303248835630550560132786906909072839946809624318721033278764055794044090309676910509503981548778275933060799923296764508303768185144072193557552176683990553965023294913411436253936007689828833815440024117825340259333988005681004623076488120218850664439293391998985505202059693249921072890297420872970161308062680548257173021790004864813589470931166003007803373072143101303299132947944350831172354726661082415527275168656157254149837479486445442929458787670572253841776992827279827430768473716920091904409277523000681817203886962274937612909220514267898845135240930748199207961289574925997983519497184736030188780148730318938920516308871838768303011696359679735092769556736155324388715853540335173895366677710621202443069395946237952933394272273769268839728471776953300024923334116191586884299179549502826888431780592395458284989039984399342232111086416353899894014021809789721730659707360073646852527918443557061122632073433976383697658334075731317351038993435990043129827997471213008702687335768786945013275593019184870627688029547667824506717959655576869258480708745935926239158707669453334138358601350360646720282433745842546910576083298846274531778385870150758407630829613155738182977452779072205876550067296125251918934016026268281118108008878894204971863028212377374746516967634934204004896448005134543438611992182631812282948768052524141093603296012260222132793494014984055282679360071482929863934607885831272547050133301926395458563650098614075257883561931996944062639588293968435671275196245739183385401010745357851264644083953712369364113531494764292050115376362582796971138260033599506259850409007816975774000062649164220434455210852652839400766674938723940242235294398887692478983153822302680585246824058007759058189713279917888006391611778023017722626521440470104260722516553525649448666953433447654184470247747478168418284841624698732049144616272595338562877402307482303293016644638730996437445395247580822088838143393161350934724830874822367609151522436175755263807766188871611044842666159972375833662776265669724086430326576729006395076177328325878297455662083300268794438937311370154720839430200616359292164505122230530311835451086540871388114700545763339521764210350212040582644230725483441783177859129810088319554319468458523510448074955484431110136205842563112207910528900975842275576987490406266209822870538640957001175814137776126799715916047428291031072492438000454315867526707597495411132611358123727685034306355435847283383254954790349535121156489252033925992602021172857292815418461580520246172509971294072678698284882267969345453103016769741939360666134802380633911477512204184103932789142452525367320763317963696149942754545777445825671499344001701752440653595271346529175146689776719351011582732984010208584502182310798340677565834592746750264627322395207827304478890960584822176398818392899900443860523106844813433233558817656702132179165645262288794974867187658940990903112700833324148995869168205762089404116898067540169729239796951938179852587320020645502047767092612450798506529771314054823608110145152355840283964633995099307277075035130183366946244437901454107527538528793092810865132877396073526324869375712944479108925106790861120562648843062330756092801935606756330088810913372673529331524656028415809996801656766458160392617658457225566700332294772730985067890179886881996936212616313325115799539923312842030180369302577739817406012217080387230987396380217911953441000395429501894946892515368962999428598444351696802074971674088830178222838108250289334785040443545428826405254139206531804368954613239344056162973365403328254598964895570661734445133788026793882236122251967922132716322932656789923482745818762840645655880084259081854940462004905375023690713047971563962707303266634398492541817448676670336307890076549651695063893704508975538016319196089469910598092598134789617880943254631424627530363389545811426734322168020727519606970022774980667280407803629481125541537422506934418170269385741442064599715045141436895936764779642783657464932676618014250155396743421205116013734866908217332876836783299158832745276647683593068100249194120165169479276485396181904043253170003577540466476765697628689736320880631238020652412608855598998250650810642211606860799366685713255209116060506695833654150901890717228148594951163056389175056142449819607035149801503965468802265513682754701741160884901297440802952819072115326428430803252321071992866790969001546932499443073183146140723612963640180685858999433947189707660134185064080553820656337950325845090004234619709216032780277736301466672077722465180902628526040937892340995013478449565058319483566158045521804807802357378332402760869130160658962795272713506565114330799089298732578779616275595543911772204840432769794580897354985199453941705325785221009995224498358485597879944654886889157063278618693225217262957800733674257949074191178447924702724285762545309040163566460917212018773507774985432426862576580837999949661731843735905111342260147696528868860484260971570129810255118942955987803654163545205242311729503699831801735970678679821254568807720733320144082233556018109661378154763169315453302022044729430241108514336526645036118415211994904702226292591581482060909788706962076047542493316778811834023758132659336236489928995657665909832645270655014320534022983824709323958306013260241726435267946673956619025486095532639170956946154894822981451327929423483875681131325060693542493902099653094781564042576384319882772813109662744864342598540903356097931001273920658686520983352582833786356759524418321117656154173826220785355404973418703207062579148014535236458423458767746111268828948465603277784897581681450595621721754985711690439793478611459415780820416280075036107910230204408173237283764510772451113686533441360681173279344749552638171299547297777678376173915823749195093238146656962441013458701508828806829877570032706059048239440663997714082157360434429100431339811341298315645014781514641582153510029189493291496525691826293663636941394473268881924870880016164591945268582170409020172425034423564637950734152619344233852862679574182148357083782738207731890159833743055402639326984169023907265005198157513756984359421133355656681371583330030846238614767643320623249602352889935615937504691334289808000671837359250791238189369127647954433123259375004549265017784000193468628276340147050573628287753116201248217658375347098108155505983433253467595947899990554466671871599665433602752815716084150382807236934497588135378629062615127466614366538452787883954582680474724240720829978403536149558025094904384477186927154522770451957123339343984218241545409562139700914611173304344174616770582152474435728427102214445280304200723500539649643435265806063141632651115346209913272908670570524486708755777702965300612248061012760608925178917225752471737913661106289691351664647150480045540151132920311096437360730125407188854966826082325874742941258644183713073954952789212573556164448264649557076544812547222467143529994123729426542149193123100268921612828513476117925162527319804420459278776914148183273960302695907241302129770741212935340071661740994395776624998699337832183493627083183902165044207043560455803941003452359043402111617485603532701111821880440426614646808549342014024214011901241040666757985168178970308255654919538237297979479813734473751213975601867998225822931757824692088492405652740803804431327969547302050307431797350119098533128700229479100613148546664981832214910233691879459726989157693650918816805296680951430315908498387627591816357394280656604949434694314450383338701393069635984796068012528606572128960038667914248705467807037743122999602770384536802256248033764879327805344745115801631626965580451954405885605971753023375175923275865228670834908686924004900029895092798705991345125948525781821029661053145614612693287474004286576287948975961601403929344388053903756792041397236836667719682735297861739400429398168979900471911433032870174963301861668297613342150627802454240695756747270078921768026662549418044814089323352780520802897340680181228459310269283772321806689774351310478509976404044500876319636567303362163957177779401700767409745456563733441307327303444764510213093893670442527072207861251367531696472791358880778899564817629238039927399445439398825017286188119253525798876545290068784399013174241143495420948750183203169591119834949524606593375251766700908216808337535937342324250411609287469468962272467711565200023786570766794634901545955791916057105252080190044281038704908551936262311655044848653192307099590711782981652875789960581252850880409102872605002853753081762856404544841280992298832001831868664860454528765024615311914941254196214919246852021677114261057872441640275507755726425693289883221131866167144895982286398710461510214810962253261908452263541664580029150428075461627926599984365430941264241663133309664262090077398902693086952054330356881146620023272474418855632103114359437994275918107971070719059748944682248455676802973166918485632471325571106998990922164534843903125401351245830584083717560959411387728393231478349887887071738805684916307955604820001644330140866119837443955698717893177388809326907793867799460672783424098671517222054982787703191703370354931137804549540878357468864317120946981012795424190261564239975461149452198274393240714280788659094338131188674601414047235420461085453217809902311606451824577148471976328875947474512638518333467187584531902489155140612480332461431596323064879922131003505179266673906799126064793718084141874691278696286417044680578987927642452090352986873619647081928743411635178269640245359588743298568402197971819075636432509292281887330308664361935931252506444901374588588741366531608863653636736190596801110969790429512313948800192523999193373809696014288415562325524193975103547406730042505807112252876772509380688447679601452772366442061975465315778624759323347167816025311943407757615954005517300254422202298634995841963573071032293147128776416085526342185044996165833871261635515750361719427336305062071841507379003925347506407842916964148660198405687554001098819299776247519024653981092072067934726913561019043924837260676822824823665213462885320887043858273941743207015276502863369663761057903189368375602038257309267154009098247524621489077278258407662935316743317553531696786342664433385403048041666434902201885179272296049082533990959830028472490621105935479551552545360411551074258258681139506272566161676257558209283353736737873790311959418289595010052981033244161860690595143711811848003007411322492093776330369471129550299580909302812541075988648622598724204610329257985977628778078880171200801847715012945679424233113710428992052692187581536995634049709121378525580600068142267627757824177539068598863824390731895254263917165962422199657498678530648417550978369384084925741372225674142299468031382104071929764500909984456283326764656690324077576077495077057464514172033714901732421569486957085832500672397688259360907723788814352517040972485422025230564922667314006073083310986957065906206317224667667887459445051620608511629535470025084173468172281702531683776461675166778468367361227080932873513437370564071979717269374360754472130941839656368894807861628179751199465194493427642139300193314499022642645476758057134128781937984448935738583132525199397601907825874395365407315898781506244132189988621451666393943712890441624431982253676135434675987402839638821464035721077599500962776548285196499846784428195506612795823030154776952192289845543648052520696297829785726941518352097556768883917188413760986919554386758292852526976218843333317458532074435331385264551717184463928576533133521318495280694346211355552742096937434245837927036728281526619494812848415951325606559718195045458472032150741994072765042539121490629122559664840487177137610360184602523572683521450393866038498838569136641652270493343454314019315679646572997784156319031776935880483879707138669869737228647240546108850477247606749487181065225781649420929558681862136152534172576099186076598640036091352126732795099506194067904630702727851844661018323803146691527953498609338024748389572165072913660071060922551762979127686676050937414915249908524186228455373301055352092164599081712450402104873883160621065408030117701095043485451312722548058583193638707973642517588351949875628800069630603895574585548007080201887486300062435634295535007051121711219928066623992786212696813102907105953810419081228161528315131104805818897984641338950041734340343240104555605780550820867617895428695870592494883770462001905629502330382550811472586844177110723178651316350203170570732020389350331898956567438299494601598942549771532556418131314314649680234268694784325069950489918044801512751669857177475842540381278566518436584012388340717798134813666862383046339643431330229524267916140766879318331366218311206960483676331228993344468648155422060348100652343174496981838375132759851137212212818398253931634507731253898811698092519483880447121228570936368142259535368050815192115032717183846962235850193352332927431168596463662523718655668521977525334396218455226616452260431241023732558308203292277925380257819528953382649281215559867745987900828450646616937837335934576266514996262586423453507967403063735479267208411292283243105598729861876354408173258425248021321523608705754262963388989126723432262964197303185295960337157943095588661010806830908647709881575125604416325610182495840538604857173693676087707011668125392332756102247300155190644526058314434518066119493359151368876606481787945056983043021198788880628722709226295760104370477591058520246433227370958201600675351071961894069984273358380069135687299078146898747769663794431692203775338969552033717409959110878316741926447427095215324186026062108434982796138203906645697349006411641872613166825950049633874537309249935196708981394181654936138639978699116782225736747714235880753732494154867154838800969536508331204157800157616091378504997789363250442186693465722876470503752604528740980915455042813784177656601913365179941523200750659205788501414364360848317688734973882632900481574834543622871903856291496854503327278615419969908337837473556601158236433494543082253999713769342789969899689541374724801926225410715490065291161024855502794736385489899619691599261604109211608070500561717947916157607957222144315057204628600230687019802467574307160118730624060112158234065303249809948509619212386672692163740847217586072432132970427713712219881313427982956696142383169669226837299087050688655469582307978610211137362714151811422437712040709855926749005485726184241001170490734279731599795484767414429401796820520986787636096750326473228922428806786942722606056230533825034373164898929211829630278499154659915425666917580522341921907167428990931648939031604502753952439415774878131898742947104448374940804031412507782949617563999947463604599536483981846809083047510987851568415486136115940384774671394614387598320607593919838769249146338613266814283017732327260052974352426777877108145672523082715811253903050797186568753402111569216207747499294742840070484448913412948302668858871980687918807199108335778066195332853771331197405769202997543426508113786141003369219256574157171946860949069923391667859110796749177843602688763118995187710556102566907309168134054842008590109822580238632285405285376926430476019825241090125786603257179730396071453907099145336732692797042851242159425636782209200163967812933267529024008553963213404315405782409099574462063014553844884850273188523269664820854174612526331088151414533922076399211053380928747344311260771864839231676170506471078092497849767964956918712493991939284414355034451450594379466864049671850133535199885973496462138810153737397762368852554886739434207773091016336879820092173658254323582335029922501901470086375729181123522153759476570968443314768129671212927579586900168625729970589806692408632232433801710644014352142845552217192150323579526185125557616788109508150189319674155174020183998201818572831614958744605152622289880151260872032009089525799067830562581264552148573297094463491988492942750163547146523891931889929518301590311567671756721157591864626942758677348988825062336270677839003101296383349131066137379768517602103232438515481478395502401139805045769451292737265735512740050676164525648848280142531434173144618715383349227149563778420545479779558871077388602434688866096885562597169664627113354814217142565256530829706565877633332329183897259440358066541331504056490496862221343010071389870582042168525732205314513890292252497209205536265306472457187049479622894926083146599210056744393595467240037690985774609537156876917119199117589549640682107409894758820426231055439899248396765237116178269719344188996528285696606273914093599052745422638494416804844618336119728567208777369678944520505752748362493865252823141832191684255583386270787038591503741539431731654492153627181645856063397363451394225632167600057335218457256269075838958567653572334980586332770244705175365335214693962263726381902454881207469466413167599089556922653350385612339344743981177794366815081490304770425546908851673113618475595359493720497037617040818171834792084794438579461532443235999279748781969090642127093416886443622253950632869537139945719554790622472494370243917631142685419325312368687295073079222616949046646473138525513779363366178837730186040964192712551065530787011703850070995392158971699573571670030780672235763699131078321448836781193565158373138751233345436172148197562032525246688101180227140012248399980324216092674825217959232665283935392046183422354174072738527361115511699069700234719375718721806861723337745233267343260003592767787136535339765500661157121577996216197834811321811047424882505657078584210537264367019378544933106074420208471579313931200708300914048367626990899420493386874261356569879481910871668429101953745711871907689114477788456865517857618473259877985573794671594182657848932552289594553612414971190967299260721701979051997008997955566592845965281617657889602159586434054334828716402266000556888260880301347445610526329026979177197590028226348754771132423801175210962066432776567563618264416151263174613531626367061869490097950240564460400786906740563440334463458121536531108837703154809749927273000533897453491328030197507162453173246743318134028220382067593281200804576708804919661549314363467807744659285937330636008164123209413810195571580540811474557157287837276013864625930828166821837996853157496625501159069139821729637275833271023855267391634000928295965443317015048767667389663915207357545462513885093326918647901278179905976865298513399053538119197187442490521632196003661977700952867197560550983147056358026743474909754186533642757514898185659071258413433914647946160089878079131983034639720980588451124844421543966518419390303586225658412256630011012543356266607393896465625964685907109925853367581554889569932573134112910155583637289494289503312431362583478798556751975557523219913508849060896287852942341934768862361209088799699604061908364018478706097241358977831114947753604548731007581589699548819224524816660412931293839484154579863602162104186808513185500163109642762768390295980449395974412634995929701453309072863690970928762898355296334390288805553275191518671072779878476694347620096367584942097335811780611677810701168887760766048880623874641853845418757360975865918236077519098864703215934130114625618058461730796852560810737844635820619787411100163672605387180842218576755811582002322766654638962875354210220957846315377990134641286512504096949690917754983636563552878833963689638507723866364817534916941687713734270236478387188469267531205141252043312989000116008363776679515858069927170762239900339938065512853463287875296002161611498148366639779553396425270129848338419215041958913086837451400588828129715656529012650341225891901253805392417114768752357059328461676451881540061303161722059034819986496451209321583818867116559835296710202809410426906489223295659654578650871420662987470350851334018952044671084966942513111621564558225681869350892827096112707396855333431668442345723159642353922889534289305582100206051116685090030279174178749491784571387882932290564779940909016366114659749611517072489711022016996248541619968254606056057814609590236050497745842190798637043873313944638069074246965242781281141633594539122902205291383648894953075743132680483848856638229125540685428440968878303826902305121155819546610848454203620938777195287128981218066919896697558101990364623537910882041520556732521815983216707511851778964771372303286279604465765650423720245239483342790104430463298334516277069672489269879585235172595978863407835069126925423190935051888466890929118220243489104691626784197173454359439137253742446433576418416381010892585682275923631191454385618252455822538633698895991495577394919931946376417601483933078783657598768932379312833509406541572328162910739034257768585195649746913255364896607774681247227431892357859723611506672050592181754740277117343644345744124518505399185255032017914791771964179976470441483784854941323969877701384989860783515991640172352282721919002636825197999361993488773134281709865271624243153736557481453588478936346842422710047842252016583175145292885976212606287509979817029047366934952882182933104714469962872019026965392384623239056743015854826404567179039312722775488155025684224064494032065116177732628212926453090894277308110099520309928462796368192921565250097314448524410452494780262361497956882932466814194687838683337179074188052876354416066375253460045065069951395942999098300535450377183927871140501128559990017371903103388228825780304031107012454944220047811281538903255956624551190125272833013931224044772822068076378078915825559518549725734185669817387726965862098080035865331923757969951019376779385558703462581194493982032324017600995366749179706433195664160120090146336050334488984938274976125153828611642165193508653742756122452280503808328940115512819116792385066767163268882541458274762367187891148080616814256147066454570412100133479781691821386708102857538073410720107783791917947700937399662604551770762856609953747809401618810966004402926378343290034672347328868914772897241297039225553217907819305698110591525227194635495634676881582883022155580607276960845226631614579351079106184548853894786896895112240999824072459358817917736730663262915353085531507798579366285992661552435698899451084791330157590110067589835349224891440926639140631377245901658136857674438281033074936133233579787690141884336329373272735164346252008863580376389166129702382487078942173033408772891750698338200787122948872221172174579307587815883324536157889222191010901412195068511522312099284367471606872721129953680969896672378983886978986558102646639541171609501725442923178513838451665378660334459478543103998779761744184746933487305356496995978709423972893720106029227371893107770197148528372877904856855738770941405860306365722382281084460063070437075799506657036730720293086712722922008942943167396488534692467536197821968222170606358925499057490221376963226113089206769711340313152598074943960695057343956583999394330541173130317928806634492245721090198033384533039854225236398617978935871756213258958447994341240897863168521927893342865576329404791319818543504968062838081638979700218270530322483264305477330674975182023202322608927267038142573019402744259383790072414096455949373718323411423401578551682640166343437058652844722353631502106692968281077887765415985277007118320149751097432844831543030569611591028243405255655830334688996634097865966751371352726743291740154591245477977395096522430274167284732558697661177115142537022494359866206261848178083548077605012064515573528310148211609399337887207224396572507752013859331686128615119227765216788671731661012952899908819265254358557435115776884319357902502165894004780248799924105875788479026958657932106206372192762929768565967400169623007795068018277767743271609679517932189445628563239362212608430105951189731484308179030679960783038066274818438048863827382317104822049890310535676385590169973570743720316798462630952146355173672253504595665852677572180944159139540705020006918917495434400388258357895105024492687562040118991654148796199255984101010213455401190093951395738362814744476454945050634146125950896664643052573890384596587651477149558874438800138581880128832582159317189850393154493596811835464325565785199766537293317676152129294013310169277494699299015573356240927948374476545600231083088815175424751379748363670010227420429756951264625443559380301557481710335473234283921117097962699198116865823615785203751006818819017935585532983480125348090706672358837805374314195995354465471041423417645689914402181730547183154615886463264688777819320125699627158537613687130244518607187258152844388346540328173988611316605281225304289912815346881261507658615850890487670089718452373705012188231897172901390823823601076170206086928697379141142636344361854502309730761103258660007499068039817076347920671845280109019769229813462681580850591880614976553828336005741155787684152275716148986856710706228379296873966670915006952194393215334578274259272717042633543152959906130957088157539817466587617115709568657687960679847537577967700487625196108659352993458866876333107878623221604329592788871522926299754890654592922384824869717011542846040006551675045907105352924730095610137172249868702735380970807316076509359924433949731230068737231292260816577439851193424984993614726181076824389058242797396277181600072105703592678995168129048180384289098556100503079888244361481348225113005318672506315441117072260067282498898539619200729450011774548725537364776642701369083437412221824533913573797710885029831918700824958513290311609957679226425681065460810003182373329518651005698646367751660248142125265781648802596605680678949284506443996341456029303461527059553275832818485259368640026854677678793791910788841312351976267055703236167000032231586341700430359656755050388602060919532652225037636713480113418343093951356197498252451747043705376277075960413135139163987077395290601768732396865924427103767335805537581418791565961270020290386287015796947996570925446131191611606068673233873604110235706017085690718784484057077181803134044683890839705334317943525263823731813093616387512006479377169104383466038327209062647726949623697167981773630780495904555425463599728019349476563274461757321242010877636370099412915857132639155522069563309516071325441127364937576548407811261679364106987993836140304798042312873216671648372277205511135215347580631342125083064796753486215668270557137419724473324543088583108319986751473775390674696345285492860606825981781877227451611790761452074137640595726539152386917201296624664850743241923157657709855810819359846312034893838370588623467467349000420936912320246822919477641448722947155800572925547118121706989981025479619147356087324127044842079507011251391819050022403486448819214191914493192128451431843167301626767471185810327354088603159806112558750332132814790751218378918244841770689640033247326022082209136841974117347334785427377203146992457930190304404264402147123987847726989324809652823635960906883107399507746513338935622670656010999920265712950581952403818634559324802320038994986218005698534196644069591261526369729191968581515541395946152176675310617124436184090714111593314304510424842031899387540759105888794569006987798969552577643924609164676541893069835599114128267917442717254546932995284537514254739000284715277202348460343378456544359959779075072536618554057872645541018936899598787716186499034181575202555628968824697739571193595819990824989753366119982290353429495501390532743346397305356258657034043040280828245365561339465756880191672341339507103489052933085130850098970754455791426292194668502614952284837080210688905917033155457501982741372415126931638842136504194119961965011827259060162295613224919812669470872233283393862794111580945513983543727070832535768202834874514390897354942275400072524946179018292916092065925769606162671874163918918147487652653125699075017666101008396965825530027547760272520790276543537642686918653152987287340596765432363191514910822843669982825713858746381961059465100109769133066399942894953076706199838236110226523016867802886853301973326977190235385510692195281666342537889308405081269776809482059436767444235260114428408546158804151065976085345086642753146569247685789731289029024076256788316172707209263214928587742032470372076517750633493129264521075839031950627604278800325999983370942016766497623873730477694564393331907300855700149843825085789529853152464048366191952545342867343333601039046769495183120540120883436155574398241186946348729019802111771243205089787080200519974935685415932972140662086094860775144120449312707928302465935492024910683019998278800204602562438431985167697530198518426019561324744795252313744593218489279379298350785286873660670253142710855974531583956728851322228892862637376056856172056965509967825681337492571255064119102483891428048828799496517902280419328846281654265978186937990345620270318576325602812513920851702252663238126238175010791328354155975157522647698931212371314935131937822160694300628538343383382159357628548514231433605681240171057295563491128521772606736580410571834977359107442823712352239020492281546330992882473878106178658285392830068799318188312282793144863011352058033569119196439538765137354640795740794314535492566354778610847827662362844165360557376529510086324392108946916487160192135594516771258847398556384554043478391626251591141542993004550962367560592024730605944918684632680314842263466876866933096660911827930156793989618448448367318327514561668047687465477121536875038675861387868326375053051294542227497653801261305044472640308041702621517069980533847161092760174477260030882574036745499122654777861837974359083301472293526402954208572913070979865270897782495869542347167747805537401495029312606277977983136977847596853079870600561333910787359102990946136316633932269670482438977089051002618032569575295066500855201144794575996763967655629578335281446115703044181128300485189971210584725307138805245284046763875469441893371075598256042177653517231283770293201439650511091024753266166503926541812387155147852565552832159877962030716482623902743526595250925628657097969802879842695966649117631240396308142065478999975721141765758042890074678249182226508022635646279060765558586805299993272111422792303017661230305068898753834183389432507074045544984257384624067780973451868821619473419974224440662317128862399627492816529547394356985500042377686876284805996363336554575493094663389617351927550493343845333802217238541288682464280099148503930451042441852509612935780417378362978092538155297201859153088073538281843818228350877040737390418707746210634318813779249934788657032417262261325411597741235748571053275582482721271333905282153906538915062041458784082977422799461690343913051482514370686450492094009664707995238966061547170240012908724150304078864721594487474168993363576298649686740580073521693638642506318992016090578265419317028040376556581898039964970438741731294716096634756500028983142255443827809266109502950749306098735376805571679424327075428656682008903489790778623361376090921466198478508963321351664973306072263647571850104534635279708804380396510147796936789135760935688201252712486388731139473216889748190012964571532982869010731874430368099933282103137582913011438449381692527560106032509620896305869905744764736424783975925880521357225997826116029739520869155702311330537744534401839223895030161306927630278722499758189761504806997019104283794587385918735953925754276252389691436587434333984588287617540965674880033632605035829078538309140755117180985296822780297722805154862439692503806620284749840437071621543428761264017041767879610423670256909206479108183547424161086198923722692437752869679863792482811744314447644239555944998285997479973210597407085898932058855155760890237852532134413469997059772493029802711186505520462000855453329080381244240134224148284588619031641004024358594297029758683301469599295999056904984720746766277415448813638644428977203307254691613931591410437628090151618464812432688540706853478673123516451650683313357386816999210345348487765607590209737030243638005549814737839810389761319546391019246360479186362595545236844503547019661464100268960203173169875040694698098611176609818500185255478606129315333410438522040522597721451281035131051554994216014653336252976691365808321719841144554913539336029448457108608160891304798658730922117417427245685042268598440847262654173479158011194905781329819758078136421919784150184323643091246848154217050528667613910235846778001119163251870541633622760582129075898822289221587978672142558945493940082248525745069936802515350355513533447942244610619713063604375240751227629376387969226423777967743907160662888460490556165965846453571049213880732342290158454227519559895729769352820662798962378403293050595137002136455069307106156014387929922000084623440277274047388310551638656896376848981013161868710455899682048057531708226132937042684073923768676126717105162751633654467541915448515881414964896356996009303119404690368365591098557591412617127598861971515266936271443853879644145353313323710567077246922744404117090183258229455160507373414622899700601315448744971555714311171355310539918098278683024464662199552612633463692476791237561454012049285843279237717052241797659378081188219141411204593160242192269648330598599874575111733646581362370141416901176194817892628615750148588676928739530664860330434078201898097779308921795217524552043290821337936245090849131414822955654936144861696851600434656844856709834897367365676227593748124044472969605978455129665625555069698525241242265209054865518312985661655732462730390453228653963208855315292901349034017894193652904887035807127175510547466768723371661905572895519699041853608254472730389294619701554607836031217188082707225672159272444577906362592010706755097838166230093473975267691537448357580718225417072486139765717293562253184579065069353167826339206903687108754218732342895914464288414191647110770732841244093712436347764167969982710587251790378731560335820719917280832614098022307159357861425114284727118398294951857631243786320864640811640404841875337314432164718813492803399882749742454575587612813298138365584982777165955210895486113070789915090736223595027460612190915229497864805200448372424269764371377692032531518552013975649264125939168619553500673321045095546135336657562874824765706252861317674306176733290019498819186489551860086174721166155335474932039713563840148510579452082133682492098928044888069260490593307990948613061256733815416885541349650886204093365573011631809832665294255389836917451490135594832795074305626256157451401383827565914268419307165641977609488834528105871545313013190642990871641420498405609846589440273261811891329529750815548983471321866304164828533413373099760066525119552360314297801790387853674297398899436901108383174511003547971886043718199301823826149635833957433634407170834020904070537205947005569625594687032668080900887675904522125834720814862460232946925604701102818360803185292408052675698407160079284566951431677076868519198689581347911217735004318271946612915465201852830820914206379248459692226889311875113908294949496301936430656690698577145351570167793246761136834997391267563983529098265155871094520625740849683499878723980766381458100074381975075204957023425637164910888426451273824774941228556738177270355059689582533230141564668879263488872569125928895994513477388137512414750432865287745612281578165864950246379966957165751321369022155845902984074245935281435799422919144159480363944969192408956829413980647205299267090066128378266040009608098827784963999574221614290214705483849041149969650928708637871200691492847756648085979396720533984286887907214725890983094894698233428587826569480413715066143278710579053440071506284441695070566310836546563138917274573657371183472158359245620413833742419572422067110022069119400650490627392999884971652555515006888186839877330212364235721887054327142017714304668785050682874376299589452489174001268666764737939173871566328199188605569397863051318046374197081490830419824619760558186585174006339581789123967011750104847313697714436476346136412475468719606428084864051093281457011237251766079355503003210678139716326002693003841747416613571130454146236162417472165128574594637543981729957573957437698061267526755952501044709504483976970748591550890728561589276959604448985016968216577779117603219362965549617262689100156328728431543974016503339724256936307046578091476146273770850377525688754625089805026964801203580889687091576250339135717848323237022306963042878087740149412561380661171089092140291634983996832050994638878742208659488676805662704962317333474649236152033027523913867884092582472857008955338184692020667952146218195867622646216236414918351119424795772734068825705538850411853351413012775831351888163163901312116558704760127950913527670125200494984983499023919965761526034218544731302314573358705414635485432897645621612806806358982739371472814880997679690621945877694333608670330369424926801756529807696778634020293891195014702525964808295353153257819604884064044500065905686915504446591359244062959485456242822119297600058430102955245498816159042410497434858990434434896843491865656300905475358083841014192129808991040409965278079454929491555709200895378179760693392528605865933525418701111257136649129496621160048258639545663790207957834240514608214979039054404639994329842540657350626254067777873801690945958002671492889050305421062151148009238821582993517499965065580337837517560935681737873857111412970416768248738036364799717771122272797815055625045214258500567781768612362435304068007815591069311798775829807014705437786614946966380559753559354336774291613831184929326678772966131080468087289007951839907065649450551868040839118389460140346786734137578970834861293989469576180632903477520498975447667777596778651841625315407224423983715207611063301207865616285009019593324135116383327848281375931310649044021486653292167592321620238309864213675388222458653235849306757734113412776616445425097180435134925067397784984684745102188055853180889838952055277585710273749546027995005348191911867969840947921190049271844312628288865210344325040420443464706634208465462738077212760547120231284796257431212824489616742469669981978896008732023124897745804698335576046075847720945658131614637615027133982523885300120818656767460779137385092571562927069809102875589459950196426971368267713448944004339597482771405110323244755759628040957978124268055014347857969295429236147887712900814912597596911939717286892108630271597065751179828761162981168586661035495366896172622981794809357927285217871077092724156694183109540104265511551702780794309145650459932589621692314476266339447857372887436451217371532876249127932562376894199884265213543142306757811956547782471739485280172500043581047017592465105860340846106158708521767398529903078726182637880663022076320545956070385639484183114542342741958901543422116746408510676702194673764548255783533582666983176224655471833878143342107054478336302527287724627691098021647404611548404293227780124103888464583220944652240942950649226701147261916906703983383833739174650062914473752794276039745065414349355003775762062455326580405328903750457980407376139319066267452606130340355084262139919739289300994297545093580144630005058790509327030158347346178535097490987830244714220308899462496068405348927731579594939370976773772336632609051302246716520385035491475653990147995604945670186140933521659437029730578461139385391518718182692981580169353230776215574983109335489820591101348082382082797772152050397300429652628155797423488379969506974027264947509967066266832540213092055206185879852633405473911993587037253493832961541893281953162181038706910313159504698035391289332303369630277739547112775251234393140519595814621909850073240930425102256492180109926071302009357770868022255244149949626384954624352861871571992462159078016601601482082147581521516842100878394320072178044639426946812312494378009159075074978806317282179483389241181943310721036620570292210839046635495065011672161171868329018231138071943072640061862190349019915352827079839159014332402534196698203070013372959375430325366549103516530201931171673801377352025122632654024908891128346886759501941874760008183496588355259680245614000540740207274336074608616222556438739523418716820352296874091165168317983560807074584594312635045035633098985423642360294438593680215194225932214454465703045310459748364554422423468500205875187002810388176993063424667906108521474625559948288220746278600506348098437407268147680264344939235648606493647683713506989516841688557413635197509591450499974754687192605329659955719765228481268386870908093981615621530066601845167256213140650661001819348446282727496215236885575447443383541819397948167242322457338408645553753816010735701573472035827722296579126001261231200688059683120019298679632499193750905067933022593489013568892004869409511115696963725371491921773205903349592774858668341800374442272591823686618977330320790476929557713881003142729596519195719121624376649137641071323907831206118422961145779187186177658308813608684498912970169602603500444905301575338917250741259233077655306397108295607247540390198052747111154638908430244937326622098500017714938614976494601060579536996770274131156668069393094229674177808683553350762758959746777582942633263716291324391273210934958559675975889329359305764932182379450529401383277828879873706936611465275199606068327730563250250626231175054846466118217618612353429488575271279371868152225691790995582860321285971473904492513084887075485257189595544507752968576703647768597917572552307003185402191408280223613650597781669333525399671134054050613845827939315675502242501584602631327427818241792952925914910809044261093997387712716730512472098584129935628159451106991809867372999353035334736077596894659452010252412903635498190560214697095129372080002443761719300102812025481327616216228121350674012432514275624220341721204004819966995727440892032395381465591292244643636719742380082691033703389633013956480696934342857752784087171568418175163255633866974363011973588295690862591327265828635496163880127384665971932137354713101657918880622592136496547876829451633543462831730818741764704529955467112085437475834688408087993859039835920819421437899856586615591389620249026912942089063329198252263005528599108302065396294434973219300208461704821014579220051189037821561148828909559219284515931741239448141517937486500680093306028760005952584676544167186368795062243480771242142416210420788231505399828563239387978522945030381130227308127880480260862986179436971992305920483988280610406861494140952905627746700367474383388838513371509435766986145231045793168343505631577807642469665115207553393145681552181109693021888222611094416819625061018043992433390709335827895017504206287926993130277960702271264999945819811875782886826626796243244801627650603549236420237757298371598098830721807632478183934665548661259658155556730337737610520692518603362159139691895840432696688841310086014819295070033261191887482766461208600017624240268657182898616901897170751121178353702819899330548815544672838083794471613856180857786801304645781167163225376875899400951864385682453787099176940292010575438246256598437564607765379268787299690824049844301709490549039899467600075476915326288125881544114513002218299892365779751730494804392437966262192949916735593458153378061230029759228818245458418358866387431234503275299048808559036837020821428811663205136935623162332671184600516223885550729169998686150912373296221162154445296617364918222525679877123964703507545827324227296194365993590285846998771081021165942431247921848780188759778163851881141659096894768607641058229788671289636536251492344147113528592759057694030563032554144419174397294432777270801421676521097774203206979004599303308759174876342452151857323177328003445334000234390214133114804049603566007885932476195372848126124345193878651285430185087374533345583874110497266514057102476039497863379345561931647692406094896339321434304671586925511849087736207505591544557419036023460136728503674033784134727334046023835245992388355570330386574968030957884448652729445212607626864850631143598032273755135244975627333367359695545019323643272614174733421814286318877464267411884261765732970441952937738784901219867227726611771704649362632655799389614224806442592350212460139788223454991825845796983579940801687308140046978839657169741672688335574929956143941375656619432045221596529035893125219188955859805961963836615028949841998794422976937167976939974890226657272809517915903614184481759336966423927829262924088636197068534376659776443793049417503664982287674434733239682100631350885855315047976089655735376595442900434887264155498085297197589360339012112949140775129453718948229743659051917557141058330750714673833930942815256418728291665285003237733541833725002594786012257686657193274309613645749334703108450500710229034934160406027834423614625556112648075510594959778343270735447181941550621343861568223159094387247354909615375976901801760147193513531365156746400297324928223501702399309262386404721422277812749587945147448700257781087662909381814382823415657648809477296041988755618517626075955306663719155060864861640488480249770623092786745209090311623723637260520430943211739111357653528031618212855374217337166102490128892733588347580208970255718092111294402087151134903472876595466415443847139142133054638277084664776523951460876740816082801208860774922973720523735274562595603061007997796777872373263262922674023385198319494524107784368487773312339339943653989873659446874302418795067373342539540610186296403327813581177989036565956839391187642849484795765557947761858417344242648369739332217098254762583864184857121539559806632864606552081631391285552817846452369997988431097949959183507290919276158290937730949315857860123277274210488055028894151352030972031376903000002986485742820537698782914358326762075715371624384520174264456879642425666619693093652042020478346644093483149974008876190466855633069088919817439845911033852016064469467049155840936671015100326662221564677349571160882357920029196845514036762106587440224105857074401469711464717936768184300858010999490696990024381489419608297094747302444149069992137935692737699882766442372515085530478730120239089018572349913109778148175314242688474792010347343878097518417682192821246133821841306548486312247610726926463554658628867625113868817373315078710565011071579847782138553352812557147766107542915812440158898449079975685519882829205324402453864036198230973941705829374101843403918718729710363817163432646284361794486438506407235130569412541623932897839551096470592976523122947450395035426315317378989039532907389709226325092011895289242464131057026670795814377901198849876865323032811344864382004389194542761868156173592436765292583704519167562635506130137609634640240445984003047233316276254061374230863215328476869950346345888353315896213046472935110536588826247856663177724584532521370057421736042326903318011647992617072399823346771534151345752942425089091619579405063113233982753306500651677536442808371257451485395706546274569434681553789517371283844224424774587234294114294783935911361809673076229799948539232527100465011974514698946446643736094801826251013452054618307196770191770985583475026919030285394919539120216567389904724852376586631807166789028319665914780003602232291445466896707579153020632093696644675281268546560277273217651214466637893551396272004475324596959561499065574132244121440051160227509250811029138615238754825317759503957445290480004431262786567064635089918060519028831359565489544728640168885989822676418730538330914161830683029885068380645286797771707994262632612020664363493894348012988239140652349904027507313521790444618384791646737789405515407255217822089285434451818582709733969684356421855535061738912128575428559917868769139321566979383023317645982519405055876064810349504946016620531353791696661795854362820490316327939659407639897606339963871495016547739144802524380070040195876819085298159190426433495074030116959455710440934806432948722618155359153990739387716769233866336485266289065769814645355947620724104033050667243690572818122331977609701381513028166894411661749919144617047749660072574318774996013221124408357911047585747441853293948115015407010917008704314169288929880837142410088919393712504307158813611676786223334509549882297608096894466082576770927655037823102678353549495477526611233832909592779636485750324989683619403479358138841051521183826533997989574748185001817671859567433568242587390609651040945104981601320953396027928614477646975314047384711306333170162037174100330119976586523203247077722739342319712707298885213065998306765928173240537290322531345122579727070244623106996288308966174968023652558078873430416352530255661596705653007038367174231316333195441379005108535028808433404245077448908928325754169100274874020995484373708857906064395563824685211129649235136148301122522870770235991710803106803389341957215575664206604944329062917410642850446252905535984535305535727261390666567450075194545038062004427514429316695083048354336501121618781292541445775318128465039572468330191885440734177570732915736438946605091690365632293353340320775224380376843132202239773612834918152531824340494751924659142909759362959200417706439175715405654515241013437452207749282615645675940579706289183735762582058724750070820161448832428400464812413744807850264243179920804505682590359605654236354449050602831831688004251979986504490379683401321245906939861479685325646668379246292225587426209547417201682645697901939561278453820404870590138839465664844439278977114599274142089754260093300937169296819137345716592845555200776101456880425102742981153054411993228772784957219628915413287660792859520991168793687322472297358427316615445190341736977204731264072288300221729878117315492414931264910316477071827688270269788103751460866414016268607504183692472969302343826011039192514736386433951043976662747780258022699969809738089511712737870785220903761280575070977937051583746520077000110638871987354344793589709012024621254949053039388798929707635336619413523462667965740052908717153852284730605611176845257471331266747629872941242575764143051625137302733114007402904931287957239792286852607404237806820981898542233594451448871179768412296106550236845754151141859196103047002877396157047221966023877376359258408748857506910859311242094873996125426448263268644152956254547521486905956415844089150406049568971007958154100804743487748289384794173586010308362192682220351277910237984085296764830780564243925047185775170516522651843467648011590727902529218983058692164291428145528396915098487107241904447157842222737779282181178353319697243342954246354100498115441348278433532863983853736756187355847925084735103373643984058937256929715002735806536492395604751768021643054946971147201817758578310316614329414867481676079058031250092529430626679636424521291206063873479997060451230358432776941993028785695382470694205072309206506032467367175494332204309268664346512111703764365194740088536334502186647680064353353913782054067890195925901448692295752306263247525199640363510448670108629271789160063514631298441674884753696621823249337187927002300826898811861936843377121880905878813538081266891484133883220717745149132491857635825263614017415581393503907970910481965784147231801438073587452713916043244519750025080023371546456593196844477278311594521827910101984708477050019254414177847958257082619361726447695359485231080631265381811974347609336910930028542960416607936487761563210449874968599519824906751106068044696763168043168291041218947443999668025216147618246024000405054894468727834586114656280034895019639101655943572602269649952334844559569945599266738971568899858823595287448893273913695679844396268263549603190991276226657188988732028963130920894507862685353179146625502968242841356875122575106961127217920768097094351731720509095058833700328048987111642372118388424450494719370345539856430630368965206123253792426700814431327017309459895708258295530517482883978688415512054726552477369714213943692653466053218020709839691353491245436024477524651811868822155362778655656912137764383683528682018687602441172848101092134294687411929733450823109980279452584721635443368338962852883661684301422098518810030505872702372783898969717584902338632248527668186708274836795494095952952376223383336539097696778992098232305215767977115076256866761276656636986259915229371804042818925359107233167111295200436115401499395144438183804084483789499557292177837112739687022359076171921379074450870666932661956830018713470552175433850931602863026238664293324600502317844398858379250059170637075366661619501965720056375785037106837566931617495580407090146751657709295317400817701040869709161452116358508463026536468876823252781541829733374972117818986014254407470856086631879718929114021374458211350290932461071134305540055188716599732461218356523374332607335665471508060583909737986045720231575383351109843872874286775482359301368224780865177170475131682869310322399799537264496701771704953178274818149027991432376001312576765386600561176610811430575808587211005779465038941276095833242191431136571504564709017579716380775464085534503266604887572481548873663478452379993456477338855787025379726619533392954302248113256993140703871253809332715095284374163266588569650430354634234167446361949631672431076942296301440483159726159753792753476760487209794578887481196923601074041797928870953616323579951764246934423411575987423446169492802718504856589463117195349359356923913684816429584070210703617351385155992586108097444832408876928853731849722111436280630973513248655706235912304853408829356709260919677364217876874427645861614378232945969934173206912959792368473231398420915059195823741788814691857126723719457132695133376631863483210002074622458283578687950891356062979366215255450326542744178309332469856038457820631243103798328835060748718891549159502366180692609830002255904384298729536529735877309549760528576621613945501229619909644121875256100685954600394279489081186302685404433747044358392887389361681982085941679073325258370033277795252199330872651140201342331794735831414896212642753288056705365118612439113016385560577927499247406587265509218875031735976903589945726727783363237009392824137471120542089729431683948535334294539224471743940541787672393742278139564369711065512660551594084838864927210693109553862013494075324876645252271946146394060589353812909467243612811495833632608622351600554049378864566146394284210969679011151342646161293131061404486774870695685000435358505162543354459811974928354020096302351440269207617172299459082384656085170427693610586178731294065172783216295362657649198727021774579657712980762913018332486021110434964898620286079716651164592592787976186800671846180103777035288858982679135919956937643269175185121973809006476717371348809502394598787756770503798431024938247295818043411361149882331586503659069203221225139359587454782538250221757017814098769111040440455730897172709511202913403103660114989464797038676480219884384435975786868534432500503501758749778804734636142018952570503657132799031402975506889692739687149721639630171663847099143399569488302448332243414022740724016304425874073792602171546775335480029869648339146260464650117237463078029654800617183790789484431886765140129270431516672264843353231005404214493177689931216136195408660918133553466623739419574069075143601776766238604621153680431830568134191911908973305932371193744542087546020607938520007592261577070043829925995902676672277238272168341955982589220991048471290864213476025833865895133995762424025693264321626452598062310732142270063997614367885987239984261106304652806980456369894487497195619866084446962891462192010195393215044725513444883193085000608299704680205410867208655857250851059026146333276178235177027970472332721381797404717998258196354359934161619320198258374311137264545307524075854072559778754667422514070868877954165426800073651452148871165080404900935769739995087683455630057692123363853370972240134161576006363004230551390818448010716282392969432103066719692783028507615153927695730311655455602135851605655984428323110629997705619158551262042270543899203543913607597325990234597293553687324378563718198009640430923677865331255463545600135879543892912844897230175606572893223006669762259170096553815111249580853321306669085384186629279963165184140294336519990562712121003699309518571078797161646961535562978269389567993167128175950754574379430601828509021062212850899784441249830170128865354266759492323942480644326900794940882467329442452324576765060358924693353600796466083434984978000602042718226245726470134634058792204049781651773162910691606869209848397304630681130242951585632491074954342672850089883637315444365423801419909905616923774008351296322388732797389328071635346802587476119738041798530804625696186353715295012835630903194348526218289788688815206287275228332359136297747751189889344095248896819160902246042659460687939873941126074908759101949574914517166093737863388304775737896946442466446201234075836438126014011040814109382329092142183474335517459348101753351758818080746041857062801711977308997241996196705739257862494105990881385164107842595238005774212060819886070275786169451975966081935135147426354518292615564950998965563288931075995439956972789361156394184489250248773572660791085069493114385406685469375752187113868178940137340694158344277337116472424440125964306250859566082752102234835439638460455318229909804147703821427364002573257481912943919085812733945872267890232972728821063546245728703777502335058474676916277572429938898553651331813488888734358441333234524066190688933343755889414294034711340545868605006120536791479810125535379033109930634674077539492954286348195769217993131525629363866593938744756629955835561371578341280339314568676259365088362607932995300521802944193751082014694083341883000225715227403913094821608424951301716198278644730540307767434322469226237261939425143685760585781145987695819076850821317880014233667366313695758580211994084625114164355686751909195316565327860346124860731437362249673864458999233156833692121692270969549964064242259588652158286549787151897681007563367658290411783785508796580926686850751853092165451331847166853689686575429356853864465371769532282800183215556114942278699791313503223215643101031273378925459310919751965631873731168383558748859641656067060001660987728674516691902032011156032644140660645656296781004541547504626280260794460352928046768797543349151547786103181364039394969532399060137416083379918137093603120369087713643777872670472791812133675981603799287345952238550412760222006803858617576791788802233281475516256625071719893372657410050621319535594518615051663594402974676677319921451324043288073260495838596776365694128981544734576794351139883674685844402527770986069925775794248113447457602702807729468707258381381496643827400023418192090339902960179844991691859117513923436611382238447853956723293194960706929954835878325121431192416924522483935844044057505771334775149358787098302912766593287288030722226795795835522995105828044313927581492277125751955697996623619033943759796572390245064678944943403205818488557444396874517865714197880773596965042197595644869650464468292577874017784473936644036740894057324568471472586627600985796897690220631266445468118813740844230846029929480298269636722595474585541349104588802549953956363628743696441807468733057504415585585066823804214032326218130090097992023392940771120006118506161804250467658734116744824593147723414948637222501133529001569239892397849067093276909472773727871060377775455512143556750209996895142972888834921673741328304199210518030454574413397157361392137687577544604909180811562131809839655788788854765062553288748940296516058672562744874897528694651831822124301258705569353149849843832561893576653634156419545548347463084161493740826663593545299502160198824315680952795602168603776420021635829514383880851130157625587581891069886693435008420514639995916772360876933894142386989856946826362327590569045031298229450104320710769758785951329171147062773521953849857533375608990950572875758131624806870733239377686385699083481665980877236742191831983592886577138008238517734120779533007791845040255804347173954787897714114766843370056057703012838979606835192921648416476281638788226918628331610260263687321830047610565980140743842510104797015060242134409767821938454848646377467342516905338588695841520998948570414520948127182935789000529429999093318613481361851586925136324800504307827695579354772485367806819079274390547475626539445891156799521126719581263341461157848845149634972707490325137841579772478064729060178600123827237984555380397067417594942904695029277950194701888936143643864644875095283773812692792501070470715301887595604608677578796594580580342831520433715056124421101426354496583028999007898457853422868072639952804289754866054391215084188945307123259921032374795476428025317517574820068391241403791231781735135813731100354560171241133736837262893443975040747688162531603471736609925040587542041213035715053537982551017538352260857570067079441342634854237947847859602724461671034630764414276621655308567438770166687993317296271349962421703664934403884500824628229672243227364826337415731741983545920128772174691638498007308845696046341603932524573145567813940389423522476757156836120004001181203965119311369456936504435828739857983803336037092934041220360633748143865007139289216645231588351254365488650737616088848896519625686624812813738248663663364271933626909228028235358827337310179645419811022334803641429412514889335121353389018136327913637051625041076822838052162602348646957971673925036824592687602643420555893929313019946880125561607171711483513072613147178728626807287728495234751937575452013248876069446729096233424638081465632251113984891761552988536798487782525572059809687778591492213789193738956224901789435972226163899749920613848960053513756724507806422925721199429704905314847027787587844296456987463194798949622156919810515013004375298519684255301549707403958480280810446882314092374442506733712850722783876509307618028444815741219376098127278722614350199227285088946193910810341671950644696942787771833871668807886147688805711706692881589697769271367674970158227945887238360884241745261093361075371906527855624583647587193583909395278126228342837759989273054364892683678521046619047066411187992227054387524621902193158446796689266345323847571823619156398446012211115602500022191510198912602559189560081089755706928064721796273742546985609828722859091796795908993032704774035818421263741692899672767805077822006747980150082585519431847236020699162342621089519031552521531652845051882997289121433997489656549264177047477190725023007134741970196626697939641997222409381398678313359581107808602776033495553968492846267936300847267008990227578182880356163831544556399527529120568079372120909643057343055037733935770891967343428571149808504629971901575130662612613853699608805338991979534674503526831611770264170668301909931083273885901204096019702674545301321684823432480607454756140895360522807200226218738642860248176715129353889758532150272806317686935335473758215204398283551267168471569952538323605477444967924745944881501722418866788010926685287303616107245996687498356597762000642973688512434077984396046855621306927692947441475153107761568689846428335453104992672683605520671924055347414780602312154715113123524576808619028590439378599033472785261670049739506474062745766328579887666006539615466219986512023910014906318167632703758535307747431039669693314996209942112765592589451298609019257717005372020799934421646579273904854146953501145385396711559783950329445188128720494608748640603732220461487355721186121091610181738678673738630549210349673422336017666867937884260684110337338492598154302493542140734509635911334472525943150752977949672043640740448877150108201116726688407982475338786866258354840685191358734541911945376309960086350145743588164836583551711600559287817174027109829506905501041600573678739279171331124813663344556247798029392211665778299156821291159434279026399992546803118567931274442325638438045340862590742326362240105302620463046585205967661930798247354930504956702958145215072038817628926496218611619519261814347190253749865182520177449697548358045213129865480978631320335312214635516625939793241979365327035260048627973419478098972667032812556748456351300934785089164818027173188095036589573970592444812181521304945359454066154047632507231743906515337664942240503607132412006755302912562276456358626478624392120152224391481393246318865519804483521697000360767138150134267600254911496199425775637375237270987404169496649480037417308042361086246227756733922029541946176526662017936026835831687678069574112165221282696421392612619817205332593190865878077803071999621501764702543992412221426631912136660061792896636913461014092233524521846355409247820624981459951260767946400236158647784408960908675619248512567745839386223811436103775382537238106036513559708340269714185404191959072530871689785712228098827623910438804401107043353888178994797959008198389294767776335725469933179421291826870818548199896889471680530508609101796679706974827135920013241808902323497714814189343020967178446102497978986414410076665312023884181141834280728815011929012988560734037766734564101530774877215543335228525952033834870227184726951950911336991792288288779368147226512542525613401072553829249386593563000163629069069786501770438531857322504676739400293847093651745915012979319034728841739049629553706676355217769748397112603375291727903009515105952652602339502010797536784861049442476908667221910744203688584385417998167812793438570539015649110234957341892864691515552360497432992033609288063846149719131887040521130527027027693784302819750053074098572330571873859534562665128250228562643932371354050807524815924771791268831273043374068026915652427917175290623868041436358072978734284413536163335720402219975008884179540923250410094985180160160562463653033852058837596794356351489077112297113251151750523196118244345704525584575429384525330750620475118208416939603755069270473303872706071555490774694110569623108292128923203397818158181842628295818350222845131250500097155498665666681235264807957772297976793187736234553508867157614538280050094547484996434612070546524319430978388707975625301853016411334825588848362957439192540605523556661470907898187738531138842488913466737702839131369078714360676812645641139296057912879721758897598656250848459667382783079169702180968295524620923776065480214108469193710152408991211767081263805781206773498675196294975978571567269731896659435140900318226334018369683432617943578639055340267082025905408414902120880183930202964845774604644903894360617025807155981199884624367478910383271778017408159321132524711264396858833777235866840319921848035467535387601696690496834325688677998157679498154392469419486567238169114554391926432301931518488316219524380515982112738562925621747549394248416124546618522702351385824274757302586034449318734515116838079163237598070468165263875219122952030123074123558650700295709185338941609984550058092358754237268493039405286042648826165290118368007563887760134493308539167865640983791989853596887950368095122061552463247746352269766211256364998338381352983192079133564446174779072818578179120756682708886577053068845152836264732466291232049370411189948169229268069326254363698705831068622052034136809160190167517291110495265046065579795780092053546177646592377901629780462714050076846708072246203105272072580005742026334721713529483723728819377585826812180807180506797095600490325301581335641562873119879687875508783200027728800752272624369759646562457936237830825372055009246982570995932469768302231039802383766943702847080340900483332880672098394037615444022763431621579686831943902478962621168852511566210813235697103632649215513499477497443101204178853019539868825331838351569250571973055657708316903290608937430507229443785198375348147016032244072675573713146445043197800980433179506306064822451402701303890792518419414897622393856821544634517453638452919023578035262800168164715477678966491859471312942315555583252130320458973269031792277813016850409837457807334463003817338289941760235402800048167003512918645603380354516026219213903952646559453979842267666809362617694332132811339184766284206781321135336320238833166027776615265028509851557350172455727421618656275520897482454132655056648821346643651065628726630632606639437595865009413030882062486784803000997113894516904920028396057789694407598423143225658463188666159752413775290561263482095568321777177856412310928750504905336123280457812149306787736261954583929610584085528780272972949812480984801295325177017561141657528453585141685288920107027568352692710975199476635315413264040024121056099739199101396294564636552531234425445851693039795022897264117978843189126474092559602496695437964869326036807824283907930632067524791121006667974779060034857506158832466710960221218450494692080392988897363702097763620688277190089371423606167713307223951569882501700821008902609995294667882123950704064372093560833239898611733268432501096143569081849403672873974528275484425275876720550795195726708693137626073329051547951307266124476510346296110303975365408528365680056876612306098366010039923731499920666460979613677949232528872777120849674415127860275658159648887050099387933095933860834271430359037119625711227247516783828801149054409429680353916388272186943048374451547133640409665124340329219113832666014847087339524019550624725561587280565512703077005614359016761477263347038256021444125336545543759770168119392174695736819684996376372876599099210189374210548126980877150075130762346623094628869433661700447447666706607257465614134592113866240968797972415870567086252978935267499321070433487759679266973651275403272699122996217399592719148524898314097934439834130052927230898922655965228297979501546910240945961074934618798180825700957296355312196938750702319332375645000085887281540532411868786077681581787293634310599641073648367998119668237321343792035873306400233624714083718172644890836617553159567099979397094488155858587169415013962630572701024157728260903762537980576687088117187628630560363447203580178375504101082127674189773867905160648775081576783585926654038792319131802865651838925526596937317723279366427821629604815883648700735766240078328014723997468292444835758501935503811614612447153033599114109377725169270693926568537088979188088697349232136823740039018213526086321756938906876414766526197560624133613621130772222849214698961593859277235103411393539098261790546772352075277588121107005475574623953037579904649299844819017808950905258359363100793397234391393607927368405416063379319744126996512563856314020478757448007180576770150968804242396737877757203444903663287772457039251180493382160849314862647770532717602041667622172529098476035392985561508347616360085124021157756981869154512642133882113678455226130359375036022092858634635560497867354901371731629006031404437934479430753763593697562754216721460058194891968499570355937539038949033971174462416930115608100610787878261206994008617182014130994524306896718771731768073084129678509647636046718737860875992094009511789683136195868153125369479527676354967836336755139343612000214915858509463343543594208692434505400580804511937177774628253929836298534950780357147974944648085055168184012899059364231009406855099455607882049343011440918783658510449041066881777444098746937018297986418558834708474386390237435881480419245344820253178977742000011588466322841526780511162232647113595730996184851554676528155345158493920105555621914371801789264869718814809522171766103426779384149761536032543170843752569980011101098660130405031553602288847485339485103643507050903233862711792751238133687754662428544366972658744618600154954017257875475595115608663064516024134933339283538705792679453960796066792304327089311912497267880588496884785628119770009113035243019124319279045999868077567680357162949341560944042282053785354438862201975485732299328098634616001185415204455207367747426825248027117283360554484504292799015898465055907029864977802510798020854240158092681509890660439642121588803802726003627252462447364507006992526907105060012601663296161371300490348188210469011509988367317908975941611789299230882784053915604587959074379799110267932515068625008655241913006491847969580960774140486055058260870093581167616138868770727877470422492024335080746609031783423117585078661373765614286159791840517066446256728361656991208477327814157222375153412743462649091482787434998220914458429229619053851580047853903831958369892131043565928729966609097315664130813478447682771646016691055256074266569949438466727022938636934737563983167590046608407835371825051403015646577494740544739213674117919767243053759393768332493044283669554636935267933074631509255833515807736137387887038631432850665072662588762625270173887196053612743310942214780682269314918208232983312037883446292938492146876374937488297302841843176808847928884328932845129886885662534268343091211519996990490001836787897126689696621522654786276461622071701930752577939416189813905102028487815518492557544154718040644469704009540752144108835513774974461303782060630112914557116450310089630017077931462743738839053521521581597310498811443530743650737276914896375290635466304915802105022737614170986960959382946420361739456657867329078302685976563887277452162454517079725951866761909089156474467602269158063889175256851494729448486478806493155974487212885594330045713765340473996569347990208044767791402379805871813860186079300876263958323348602822408269494439647343093942931400937498855499981487020858451158779019456640512918434578957984724338517906013058540043138759969196763875673759851498003297064997567826779403393946038439372385440599628804689091463031565068389320740603175036716426575375601951963082897478583717789239667710309472146172167514930617480915825450838397587860760997046558825376790668288639873631002471564565485945322265759699467007710185868606559911265039863574927008178828168595005319662129883036315864010345885781532269430967216665131001716616760724154428252174446302920336513235702691003961035690316821142344652049915029445979091447328399676714314935970723339598387674376948697883410755896953519311282086928526107483711781248616502362322386062906244873448891252365201110500535857602710031894047704229756302168253611699690957541164959056273638295568355370160557240027483120734976087189575722055304675593092260985300198385818702888553393445092542671851079441171667696251434127115631862417548776926975839251136972561136913047007913061240517905796461045982157760340046471987368752683947816061274119480683757903800193079204446646949414103653653222841545149484370414515276872765798557176219363948012081464180994784501353173238482605472559861254940570293170022558219101963214226587073712502042485680966186417953692632669490468851948655759085114333927500999787165912620965927786637640582867802774552730423932638848824117407692202216962719882632665351812347851870965117109598344133517934931657017524079294083558168932679231768790730946262276295621438482863499696455295139207251236191506726806356349647391030675769236931205190253018264195653775504220468669707055389752479617791328720937136273701113744601241077809007101922541741780507118653996658061921782725881719349525110469325868696836565265221333798251876584664192596396671065419670420873742403655621024880465509018959598109943094338119067062587188728737461759782809692572968530559823475440453261041362639372406774199602873652381414029538207641180251807214648283591735855310684147423286096700814800292678483870264701559821713530271182474709316311129754958393123348197577988097067410601703133538504274581226407986071420087933115790562528778254539444228126433864808638830756986278725986512047767228706452868488790389834860778121140598915622884371536714523270141456568128326964357948415680802390149034517281524470119908594430446951631267961980805524584006790795377542795163411088234132339522132520181258502684706513066015225469932673781547630964267909114032608397926649989448144655527807767029303455729423672514161796584517827842490961631644139492693266335110561837869940880469073485574790743042555463928651571167225577148919971664083993340016318113700108044058838294684194982806948322105026346521225340987586041598629178057981426327369904638227086607358471933488905513970534729282727420659532410534704111909301216118466490146851820933437020279858622205147343895326444652077507794226070312655572131884000069618083183359961510322319730887670074537545162496975853684255847554514325835047220116597805835844957443797895130803570119087296445816761215471083678264484879829743294025051796539169286398735291834355856600231920390769243387873590410484116699221194576799856639356110739773550291355045205083680371424485929677613933754387853090309228294880257873763925757062461993320454467899169733472593049506658095233379406399356384588973873678038097541868687064444456483302392082240321083865767748762687946949892709638465440811861780164864251153419443539311623990087948408518335659688802205230251181229823381767183338160478554600835414366622949118962391064683755346429298219434402168833840792951367748314580457331927860363633788673058124287536508649749874903154260777196419910296546210509366237783022464214205622335045656757048438939054771249234486353284177840433987003094165324828194588158026588224902068570614494163372144976432195138550873598749356727394421897362029234729730461903281596203997560312678049789524395669073832098121264794884063366147909956784653712135808488609127284202912317821235873677742246909213468172759417402953150049181859993463394813777968994458980800538269892447447704645791739318415398554133786298109592695596083726968440499887439432460802772099943669488313524147804076645908076933741568933827428662863045223019148051471900076749791803703368478893672012560299129876954753483306656680731286649749980928839126584646330054904862003769795519294706955498220263669965954931376590354902173854065221062072278864796475762457303488492987314521009898115233033417766743984596561811914326906575480852995059283851078627784488297260430569796833945880868412982307410469877321881547871771862571467728944700147408010636191658930909770063981280945446486065008091224643424854083226374579146493075932177668680581301053875189820977903187489778588927957717970506397454195566181469526029386399728332377215556080082225086929643292256242551617541833817559929863366173215698780909947442047619511044883425266232936644658004373456434355602166611698481342896975238247571083519067890787099953345393608681332225532513467396369254017396709966423940912901278182245199365248115424815695278834000268678450177527755861028555793944224643500398072992814758196611696225839486354166342314708768876484136777380428776446042728330249490049429249756710918070841830677060058120800849943538743252069337651480839161228586815723870333413051658626769778131827776560717950185152216709677291351503195494945581157212630132493145478905505290783774999933918014424424340001648369677028734470772658340654070597745173219264642463330556179577972645691570540638576548441941468230135790808763011178671468132454167634033183743584932800198693221999903100435078316633626464628089179812339220007033971418256049388297919160823439502043519001438082635121949253060446383413236243466762117865108793794477332053505089827212131806753728726872592822273064043674488830936974368680554159192858672770272045589483666213586814806901795335306906888901244899539505003694961491606325029003454466082099087230193460739934274967128860815715305358416191117508368404739380493068063010445131354237969416104475628920626038551514095937928612247787173275277307526095151138369183571334868111697892865521922963868372311301504391040179557838141659968233961411685736301384829559862538235948217320199849002302990807103532530876887756222401257879495789696686727294082175743473654444985340894155104609176739604141219748052539648256434569637058292414231076074141444329241131516667364093952422545892355356645696137356293606113122247726252344378701723901859406534574721509258862735925006195198625336277656811593371337842768564215263990893786900813211298943314497200160305703285882752834056035711044883569684317108491673569316139075779111412875247613362194686406290230123776096813268245609648942408858439090601181631097398208446411066079739039075242080624481491542728380199081390039701026994086746195337372699357944675692611628258253134298381077440307730529413660637344164758474590963980419811004361239212375404392641034738523945221812637510323954206635255171618860240638799297748396518105977679326883757539721052063356247038721942562230209834972043283870301356115407109634525600897712511440669076969740730973201341790555275925446403600420310779424810527587605744441207356995940736365177468411078742510264740006302904063289310522019937625206598007141018857469327225499872021321120791104686737627876016680004546370206965121591266399765072105510013925890897313322646906995136701384249739834373027840975992922783801437053988224193506089647504535535840650471132610058426534906447324829865455014909301683565397726648932877041922453580289675362466583500138162089797388193591894657556816187807960237256161555828418055335520637528086917101194754801636675962114611140340826923474120356174206158503821801335050039183194277622656862480330703540951465062397831415398830142029505711495684238377323305421312786178817025193767964913919093498696262251571468707078569117134433523028198888909645381258634460852321174503414903379757832542935699163238779326838923578315058593737901980949069386086991426850443510803484895662513591570521903409988905007224030623393784255209115815305319816615734389075289496768203904312950926942415786114100284629476488502698897533353524815419772696219220505320560187440866905488593121750884189253229470797226239540642848926770644536867851065088877688044037078015879019052205425757913557973852527831309646387000401056005252998717535291943901849592939100176317257935879485368816522794765240146771524621025120226974139524173090919749662010860237348170601083325991887362092288431503312206130612548398942490506126052499003223222982393933246113090367391175189927408297582592317916924170576257645935057818868953335975133581514470969811856024580238248460179809090551772410976868968518125072793158627590945751654746351109171409374932768836121562253946844661899461574104900802845212969742169843864833807652026642179386086953059226448158832842940095300384024987561810287432485252542742646786669884201028281250487289749501491273153787768319885104789678722537199200015002227912547308495823863218006819696788722706078646038905536010789969662866324858506555911189149838854368103270485153375116499546254208161633160870379868783515255641014805829850711754329379535563634698343782380181292420514824648419050329393872558194436219421864974445172840389607199959454782680869998634226243017632465965359396240693204925307644188581400293647297298872433319236769505744860688833499842543946986249966056318449464045136356292528027908984419702928043244047414703831372451850824146311837628034788409737643781187963441492189215091561210719444846948470481893159091483844695753486081489658712089613094416135270470661296634959627839256728209074310040048949842635548352950368733513560710792628390258948853631088530413826335606303044802416645408582187657638338517989994484284057803893337088990457981812732381745809012564905277474628075662835360866218729135262895861643847768901429105933200074441273989025080950876495483480929284673316939753225777160513123838461636610346551203760348816838760077555448580095389996974700029694487338836398921473789734208956217198853032455191235456160711753687261758054705281786315509627202530701418051563134032439199448982821257444757465547352146411333669632659691870264283873861751633030720576531014321798643124473582703994173065016691585718491856640979024854790808268700521630273770776252502412654952312636530812278589450965449566057240307244396589901853159402047196731409451789187606654406766006806958692931763956395735059213957729141867143564155445178839445435706439717912284385301955062522283982694209588118581606227486363490078486506153563620777950182723335313422875414726199238823221550008903651752685502146337421439620683163088380704088678190169700346330099295256858346435680041432937018107110440182750467974501160903714592821045876382855758802576280147475090005261694942393085213672929758891202953136042088347364165853187804248742362811117103135545036806650544865390876725878050831338727656058876881479819029134036485650721303685197859515499094852815135165066568004845506132601820206808188275236594412033669704609969486896966438659394990666241357183846045216262786982903907083477078608016320326380045336346035677037912448889480766058763966275855107198634242517722039322126211438547027121353378124465799210196816742787415818294487898889645407371693873221060164528850842937265813548229916608928470991354217001108579575869573901468427450382484042049373715340092747558881910288879332475549461183029936809479220163595402145677041222871208080357387491847220748255736458409576079564434153000180591506249588214204382741864744568545891264525877871269496262591954615370384293465879276207537193007507874456869598428548575280039687172056823856996479378855321498009447021532933703156936146477629978138653150198075278252325340010300157507625690327490464761440643646732352098055308809610663025096719682941542110026096959107128862557859938455758800324378320668238956707478502233691039040253746545764590673611942536950543219998377903094762065262766373333895341400234905810195146379634183283216967287412459481630715995677875585208250854737524495750332129013515051808590338773867162048711846886272472833107362115139547801315960619291936241038704509133140983616888347206481054197096805086123437066436326610215144903573652670059364775430182175288720061957360068380436767252999546084652344755589671568011934921961397957912936698748543288223476410925801599849779806062208788086612557531678081356574149548152121537133423132643055800045737953955732282442633695153170136063801004185911257473265960551524867911439229674078129713696458269361631810492623940585352408078600351244576208618653292024956125680019308849839464934776742842818843827604132066056227806701468298225200932132187337604240328496838358490154557867077995709325356044805328949447823652050281058507436569476452490291538192922759177119647438560976487728179619910657017809881245377707338884223475816611416090906050148812656303878857178617540738013879303419185688313176659131012778450157937212099581704780841946758823828355296565969881256724554563909696748783260654803636924783417829980934951258433798116821954229025752443772788862640214281243617109158633370843437811253856486997797513249526082733921007455177070284503695275196972912841373736069029879278174048850524403156404170669864038783267180974486605486908898746320576942787258203060934824480938062191158508220197946203954890403323281273912374274315696533935619087951635731762514815292185084431629330894264012122068818907129183153902334812298287518389893725887318166650079841794583889203645998717249032747085410264542860849860135569113680182389561530713214166288498545813403974961267704291046978238629131163512999208857387322627178949166770262199820461415567145207069414595186472975215797711616063336565993471902894524771250290584594933182209518126543447106028822868898514332953315524082206626999225569722688142298703594281853812470194901218795706930338479316136266016156897185487341629386898142776468521419039351788002038306146116758496353059750496107391851242865451247042133479774602060362616612637168319067816231646078011610492923740828039473509230211683345552994353897462217827285913600423626335974365320128505204252713704986923668171011653864173713570430537722055226541639309253555312642472104036984442294504139774102078981294544701076054363525376516104965166421288731815982248369548198496870760177458937318760005693922823726142153346175361248469225019386015340225880005453049640664955295414889595972876627929882282895387005931021066008238203208740837325874827674376291128181735738456345018772936033009519329755769624111826099926306950099311674615650672355808251254918495122891171927345927069348768575640897070842986827996346716986809930959183698114522468984095656476540202115165755299930061675661731637119628160853758599099687771050982903496598251099788022612859861372589574513716590082387818570006641691026449976066874489239922431958126939896280860163173112308171468605286186799735368927206956475680926161845462434938582525454971799443004030812595622256583663789465206110702458531900449756164394932250404346538871270498484969468243711089518453466277216664532404112177511085389045235373603397439105533725393995270793696714096143197818856456640548215463696414441290439567521205785640718700758429876771425331561886634945912471793366068126464871917553512061542625198964197494848780900458814123003679608684346944204973503852736015739190204745469028791528576645110594536031452004498487685618622521507849641920205465791470956755792107287550165431828846573318833576959875716418738198927573605018850895529587010920146820063986405628217671839593966386623974481609419782267111770207735643272321737170853374468749234500723281703290303696288073588921049895602276561682774061062913777579282764156187215319171369203963135464010214903874747503363157984870789314591079954662994918060851482261717156214508832930495894482655846456931268841535987900390334196480575440469672907215841050659812737828245205134178317925920344602676934178797503272886068510661694551639321432431878827774054934582495834516528685389710218615649887785585952609513743760505666232462427882651574597173582109562576304193130382443751705027328372500882425862558347215085386736794184744599196251734874630696608498528244932300816306688030607469799092621763067361892442666233213507945344895300616024182586388585260975095288218031403116608755225854799024743684271027672557249501211376720994088014694986268237321220743829412296790224378996406939547924789748200751178690301527218399280459690970542841067996939736667778374651718087834206176205153495618241690330731578317753362835628890793786806057931494289748775796686696251400436334954002332893977439417317642787493299614309807110201395538048952417663942055563445761639092195658843865043439076138080929568510760718502310921311417440665039294773041944500319143642944795699300996876697110084655816625635274822083782161943557164501148556437555912815964103606577049070725564018563334144670630725227304830320196800434511203778579871107598761475680876642389201634235263519591300984212775276602728345983671718384966807012765304932020531579981838192971067344778916471011331398497254930221158158797866767272075980002756629057471858475591961839946019287896372501672818941023962950225409275845974655790492148080749825253715686852074908381951217259969749044625044114307902797110400812678119501510060181629995908675204360725439348601780266254516509255552682489015811634994007693204642644395843651550171116298285309518696530799068216237953471481517181503935499948421106712657838679649845769057614725143102471315004534069940039952446021995657100381586480231724642429262346644026046740297038636380216758683698165722858129794647163746172311393824071466401482210267685033818388723753648522933095846719536860791906126499340386418021127520968182531304852545995142237802222772018994252007788917943675826493381854890629422463253191297746895685499892955501336279538002149450567072602367182531309922315998786364221933178936897189853374349911533954129697934736897293686088803526614694331967237159716483785060922909655206532860517437382372965403354174137070492470871942780820234285748091196507155735342035568733592406993228732717070018422493638619444935146552426780567568760412803854847653476452419316664469381304880721671399640863185410328718719156576908776875587802046104520083503455300133746497011639343036755154309552999882879037623031227583087140083525732117413409690925641170014282622446021620395845399907023707402547474880034890455446684777051326980667766650084344832697585608897062441475201887164926910913312985067446683005347489633565612366444944621914781393341575307073140648032736718047963820877093047098311587681386182846730310378686901876547251702694499494067642808104903228491994097713980524823348028444930714067350406230759896935709386169609488301664984229855437203812469207583724608180948405711639140286064881614693459348410553379730297200343371915230692524146564241949266501775544656137674280279254350164598271156883487413912241443337946719042721090660273798617694711496494184406162537820207340126891260500021815043640587269889202518468881667182720604575284590361528762246537304510882269370028525150539356220557696258429704080310075768705290933573476805495201978428772393501157838788521863456947280092375854120127314463991668250452635860578202913106708818283954054291467153714131500564319530957591929199696013156845281534014185867599942314810958167104060361845060089971027255937685520079419142310992697492797406805985600661229933277439221426442106796372993653534530681463658546170483251717623024847761791839446666443682226904216736327237351571696001523320142849102520629771763873105669736229557569518464226774264312711365978206652052347321311278192234804675221931570706520663390824704878953297691343707851548278156714931692614124723591291328058886554152177359695910657023506073021896483341548678607456210249507272941634511072826781007266749829506402380950641083086638092793538482052810515670194865392073562283755028186487383805340228951485269363128027707877630169384680283990312319944748695265670077677437949316812366675025329540532186852929945583133198520682337755017578103054999682357650169355811360665787922335496172681931422061609985096238578039500585415710644910516791298315318081185285340878490285465190828543531298943283200807795015947045450361977920925978381721199265988162764919367540740149262228639061698463115782410344616867832634847566773249882480627941294519923573096607329644241080662051826456793652008412534359487306398959363126109428039695350188675372865195315764878578513483575622255083777758964482188223298685793412798994790550817760131551765782752105638710079210968454819364267591936458776398806383631046896918633886811706930741887116705040141673672089822399142101870993762218118341371173989096185778098445097720333533549591910993419163097014891234902040572734435484338290040434342428606715098931026985180288685207529012870634472397760301973885457198908083257872521475592891376628335174579785317461541151466627747347756856246487393704866971333167712513250718249485513743138020677930665941118191816387592158001571765313756519777010643300595770259133042169205673540785950013769595001676075704479159480449351445218875054991495790890469435940410639869385635156652733668215016640844711486545861190538574131118797735637697968562938467357771981972832743903449686962965960487687403148160994598088937263196783899516583006587895896542377139180568911244008286246752225925762380528591167685458690230818586744578510309226043741585799857422495537508037161441564344619325521800703109849485736405212750739228646091178360870675260854326669114841628458374510616643600116709579783129650248927030006399854275468388080824514699364402371044228325716580154258819382278074429120161612612120088043585870632543555724244604547548974825264173449791980429629564827561826591333741012456424130926525761578714362650686923000957348993966824780197133337629082609308312355824092981443728650036275222801015603102992521064521837043975521495409907483062504385953338186355610512440628123949390224902735720970525103356831756427969603294722552653580049541771921884689524203683249603604838769357183613613442290433012737751519154400492487983129224698652071968213898786454949144311726193818017479431795762461838787192552557980526955908176648656869350632595957696324816155531930980744360685955027087068200606608758890403738225267958631617824677531562089003879254372504609436720820406181283900106985094135978746456930244808818192169404563391197673280574728931544998104939442104554450837602548311841047360550420667052626454214020080469796841423175689438101720198310561446303999361621066849607177057022159269179992725551566765138066438011431603093132181171926735291576487806941184147255390941961143522106922153008939968997158726733933437196045205643416540925526381641559176549248904145367383459666644704500435755613869672636433426804745745014182846777707662205301379931360993147708116426712578461537034495277516594751308744064808824505954204000415181284750920846837964345378511293839009710812240772665378775061262676805612697284235954575747708280955081498589614868436578463568961979185040101623448776960615781755363808411833575095045322992072757343365601930191745021228179857944488705797802631177252697445621811981583618284784957165860481524040777352070172287119621137934153262590815170391883614151266190986028595655489971088309449586585834142818097734675743078379654805089195965101674654572047418047223681296090272449041637267665269703155115728609938449394385050443913457382012525411113623139327268398225060710538363169430286792383644873395234789051852682376962167657536873313616106799237315896509382741151880748137210477149386575417995914686937893643216340523470143270599774204039148387209909044802015787505492316371063810563527811777920775396042457803174369064492851082642376493362615945708255340398686490491413575711578115963273376770466879647602888245634119903674834606786282347754761012496684430323871056939299214106333837732575345047370815318208552997129190362828713387769836431583914312660125715476750584435315548543978132000038638221721917265271546811369995468715832616269781881696649562867857169789458512069391246347854739837878505047407988344536403683103140824137271077134675614254335722649798599046723760849767614608721371313928931817924773846019424842814123765611390625175398902145776500696729559757772050216264789803730923324068407516378863012069687184565907116489842216366674102126250429850994777085243591826164774837479076519987813821392014197727277011193539153756818386056781763403978345253193539739914151748102422815133279783862856476528089543709184733254780158105230877739890698298535576627268872442968208805373036226928392023735910090348098800143412420912930793492777861655559456985294862281596463623093475171043058000065168795501770167574941558634058775354389163816978569813116599873793338581454357243304218680963285958429669040605389620102328719095630106708428105518204804514896481760452848196499703579787618381151041750437925824847342099925533041610609907906867729340918389796827609964465165192309458985687202080873574140830515628055497297162344202685005669613255706468902872980976532018720825435436885965031436545276902847307577639113403113937242054202974936474595542696201575895767147753480777940305134623762702910068759133088395460735498872365161593134585814666762754696675300905261922496500442192914803541719145428073860010910258770781330872302033903098704405102610189833950978089181367287526082456725485713159213330499947867863161303564790653567950608065777037528809740280401717262387106947400746921881750545698985740968078041092188539986562539415886737307249694681423884544212804958125601941709301500410046546721182447952593902432645280469904664065269184829214959663849772262294485105441243878182004951171031041779881751449410779041173018884110083494631525218705576580491220723699097112545400423140605103990702272815556806208200805760279873513546126748720561273189577116853081176595956669347351545345378656151998476937520996291530096461692589630333114362760837102276116749067652067425537214058954547128603207767182949028529183789859814119556614790799985119578900970277635109580801367529769766678065127302310887415980980942638513022838063140655875732989446782258170591631538052831062563899972200934958219530354993454685217413171272405691367324877343167560866821349144627254804291186186890332054567507470699894857007729037462588331625360188732909111274967626057236006911455074532792769386833690307683119200316401670204227178805707007182907594581059066995474736868746733139584117291607333117672165787870489996362531089969963637867573041717016096163865543413186642254319241887008632826045372197963271032984343951415241134637872054988690086721971454397800589750666229231286138421855395795368978375060919082295183137222340289993420649921178671231546901686347401358529885169338011517991514415770689133033046750275738012569169689939475871520757649034502920508640152326818127896038826730058425339047749764882729989752594257904751239013129939005209073382377751593959420438176169632895519146914634871099908304359078529654370665263680801613632989522939096042879443793629682208085430785753982985483728570197530576579667687977076542910919338963070176531577312560503021044112016899063860830608651723502485701393858406177367463139256554669373459360115960977546474708991325436565613006087466370771831214025603973861266933024485190796759056301365592859049595874627672944866556689190615780749130753024303846374743716924344203244116758986618052407151758913312141457360082119388200507691686984613804682845408551471540733466207721648746601989551439160775565720756241532184776150890808761505624637426910714674016185885148713114787611280744858162301097804385061224762352758732765063855815768846343877635786084826138766284291575844773413717019855882524590936838999029007109545459063836100631743158268848080372966983971878096939327511383809418999458462548500823151783348321257582669993233709596919485844885253899873819417851632731354697843347640751071985110598794952470280064725413952093711415326728935118283158020878716561333161960550837195299417174002036722218389507434830348620786008053981275703067713666069921439237338534043643327043357294571934282053554145447651425152046486700018533180902390513679673677182775681353191724973519256108236147451743422330098801660670329851359518509883235530080192141129987755059316708577778701538314243002435393695485648641320122562250229394707903754424315504973348697116513899938012220165101167047191506145758868614134407594213310013101741353161959848320947995922411859940268671979834554780158051755944042278280177418466569836786166277339910755550290819650717217158091931000992724478188516899210718798903715406974304757957796783817829626273968887080331955231839286495339907225307035890867579725049968441515949156831217515673882350944602730646748908018217390872573719168394976807560216998676077958025082160717176064570606074312720981968279953078629275021654827764599393157495892319880106018575214553903437478003256878370638608377300542007997774266811064603858325489076135334997409134398550095061094931262366986890969981920036613659044974696954573516250011370465153296426802864001070332980203101267856382816450731651125927872383406663113987937871127745365584457481411891152186319727260197028469650533274048514228383808084821789517625242903070415807197520175831842244416135456721115064740149780969235928431986286141625635567736606971700024462382554215142126283521647335114499464002435805552188353589506086373291223395932280037733407301320905102163844889127807184784166390774812317716568231737750082361947535751119192511349636755481120120345097801171466378922994115202343415649939392162159505931873711346126956844416237879724674683831363079025514951283428026209290371502088680333302860152810164643066158388674952002902230855728124074818384596723733056095458981429198824053224698698415055871312252231513072182450371684179759352659775072685989101410648528455643550107523655066985714748083646555727256388174989975683510565466848772560937072752687750699667034677986569140718884623880912057775498976109373778319423148009189661349195440259674266709788256312901803643701615941229969926360897179694025483289670016702737135093992772884391724512489571113669427045710105582485743908986964070906180678906789433022128743775861138911887307287497510385051351756511125759152091971010145200674271664820433115793815662285567136672947049204061498685689319977927279292422893160337929294459065260114843287739472493831703283226517375427376050604205393264102882747656447623769663943455556357231039172902650335478547595493920754505942715942630188053883886873438487422650754167588716921128617737018682864897266307941711180186247591215539558553358140394793227962170369994447333763670336249452486562356108581255748222682553395335711743017645261479467568565476047319385359883490003898080355960030057016788262090901521771575146962974145363532316519544027946552828622465582441341906517482537015390868569852164094956441615431669283929216536973596890002292438617564573210399891986030866875330206250870172429986356822590256883615433909924995537493528874410392993566847141388092861158860005866153626286040838154060180657635381905673792440935562118983066080830278863911666151599378626742843402483254602210709474234151793051553784212038490278140211036199260023486352729973283754548222233740265193879419745246514913894020779517397235804640260728660079442086916226285976975403821165586017136741980525693526614101879554191615988910093112945742740513937175936622508989684010108016351036829104712305290946824312185111084040478259900314445114602545705814032331518497248075652215424667171286493054590516586912173946198783927897459533210038585587734834055400374427740330762236322606680540180844020606570553433882241545153600771921748795336032668013324936490580571631734492301950262722571767218929769552271894999886633658771676107741951403999335460355775350188952146290664726777715719470370926706364788002289521445965278491692807085516218095257701586533003606243178885901305662238133482209197531907709108437550515316125474783233539816645655835598814015035697209266893954544361391189029441380329698842824431703273247569326641710054804477402549085135143950863182170091681216447257819049567003814686966473396557155904880799237967263098799469619880229074320298939741505767733951589319494594523381306020244764187541020398452761607313032045295539427733860293951173638488985730130737578954663635510821961275587582840514553870744960991548444264524244227350011810220975250674217005817895831124609826830124652673125369445703006310867950997603973054964152436486015238708149891180829023303484502596161445319387026782756276436097219776017478038594387689217709627628012803342530290547502858404996641253205354954192086952511442636954703520178254405940350802574670338491342218500477215657362617665695341865128719192075983888925233449688054819089831702500113589949596348713472913677517573693985942633726441107331815442269438389534922247819657114104484917402721868078359589982259696786821912076542092398632977023726201363040424357369661292557456273987194391384608317566748242383369769465131609317103528004435965540251455084054533940157206227907168818118157414716670000091772478839936216533717315246907782523069396367671901326402314104086947435233945584853620910425903763930022781601617811386629067389819917703250020512834559292116017113653036195928244381631775027023054550694695803290258742890030540650984527500406250343584289755431033039451512768643148355488060108376353461200574562727892602718474047964859301670421410250389504639696583723817483364891873991386505583274621135314043621693954720179454508235197109649071358831830877588102826170450508100349624590006423581845898651679202756913851680569212003032308071431451214336104577136521170165668805499251997110761479242233204046680932876261327301253372381399968853511095146841456603607534909318789085078830132162319097875546677982383552021580870387647367452250639749065572979596433965965364054254910939055608431460111603806824061665596752254852983581358325422099908309576685641272431444558112590926041704766402969136481610921910962960588075663637596717214530224290426009524580623983569438829649895787199280027880787874671579575995155876478250256706796983373237870926318094363146313171570836123225126048422935759649121225287780121459801419672431799519460276034242263257865683083541786204681234501880926702315482393353122759892934310348097119638110224604925118201241627090304567479835692179250834349918431174977624915042758260266375232303604913815044643130950413723111398001154452590904010510242354046770518469937700164810803532429831120227428703262399962164050326286204867492281345068665958106244435560846172037588179672584940140875688552716746781255832598740002463010446898388716980386320190061741404042202639824993998288559582058342940949371583419158693217514120273264851930864301719161851585872041838312424253681108682351555702101769701859437734392883892437578334619535986230461360234513968757164103214398096465706141872569555517826533342225661506360818173773761346559273282841907459535628492880229159774701586131684296148319819924719295030056797858942070312429704666345113033646337411554594755612715464922262384790355136238942005040431274240391694663984305724865778436742332579424109074695754002103250295946825700829159079031138210135336640901186093323150201412766809658657567624609409379343229158446421073988469600644115849322777868791233904185133324536381267814754208996397473130551763360680553428649873138091216834292741885676806448259850360173671790612718844581714656830391477115159175729496042877604290647532209797006913343289463239609578828257403609341283942291498782753598339525341910932823626281191908485918041229687849220358566200883703726585408682510053797133768932774621169870096682905334583380479760462399272086172222607650214722108549323052891789138094765839045542256710484578258520354965396478953949958766806774285765382222957206730192440598047212404735909392021221189989876118022414550626711071462012351062829393827274117673591797618706122731499477258877821592721438926260111766777925135304258582914178048921404227810141192894141987887810026269912931503083376944769837930252587814488575338263078461889558972762890722552906247138309324708146225420001060831900774990331469063764263403296424455379492794487761915719181462794178581629364777604698354552565971288232325104981721118533346729110864864967670888610384633351116534738807102535269732820801333165715187256649354382674121871429185704916805468915396529169479511609648565589863942127426144844232238255358811406031755281939832991164397702002290781001801615990907558698199770245127298229447512757671260543696551372528317315507824034829721715867322709012898144191452129151423269762716885187036591333243743674724930193024965342986013757591249262569583762389745256177561130120041016654203012073754290537872004949389316545689753474305285549109693600614968922696272076249767528795368282195032777724096632639787593551619009048876179664453164181059683425469512961071342253892665980792406891212839415899828881564356989827978341352433623082734988136965234572365747958153073344671370506722772903014738252692014920969001503998715467508971896170358775054292450505494285961341557567103246060308607180292335782375400910232388749619643601978478500330731506155300204249826871795060036278275469748330772875862216180054259404446789120139814254284095487152748246942285587701662536092053903311945256398936695933856351738402210754799060323688129135376185693536957909554933174599882405389837841357474470243513004812719011354141462256799750766059341385506877466515080126215893642959750279369164768212916229487697494731997059527688031299607805856848442798656524310128169684153690424668744440470886090021316188327739670058568437881069177804997562498189610401004544300918795605167713180701425813842136394596387839928144907140668904775256109267487143593296386175711967758101372101408053697988836979771044274701642695693548240849715873840088272802069551896351995069235336203857986524118468363403596870732634087952120337235040599290817941286716815402254856067159320884558470198039657359653358848482510410672536225543111805270257945660267363792870411518686478814595846262726835713923288770336228305094530534387942716006209061999892419459371787468660560800534873811729162107176488658352907852726725127328794269592735674492821826439444760264465080942643100940154307669129686300493365996910467406210486584757414523407901326262413936112586175105229808614085770762514675972868878816734524244792786108223995174597341722723409857636393079164185374430831196352199424109719855915019136750740743734172370948928900851612065915733357669272305783956778421710041775152955249048554088791177859500421333976973420917122790285111274951171320620369329465588937737843468460637411030960028056989886421827746738579759561490372393767163361119869375907311078850639240509735870368548726093460966443418784202709962719854174711462353445203090215597623347288494717759527201321432300124602734440309470465734253354947386992458158942810724648612754090074118511340124270143494249787770440871295566043199799427450326900204324180020852038079680490466342453424631907478905112764324149598370828116329045646116063446187975658232145294036431247175868115212379425737906328341053753853361065870027857879386066214072559973827802532830494003890155294972366020260901173271909536327310556398425868323280248224699868864326374740183281707396680352295984656928585570007824636939869165715440763581933620731905619460967442779630908637930333070022371299030582854526458979874521195617415544856495196866909195120402918922897347476469610008830566574923810419348464845883792148538616613624434440510124038012411069967934993473900299886102829580350701794864804618007079297456015769842760503730609449688586780240200359435894661258408976124895627049808131810503159083814321256718297750143733463347328705220849439067922613999912559022288904288841926684028496791744997646087817451882732132344341533197899880293581607244990604022651822099999746978659093633234661100256422220658323388822709711752049775486906190914940670294016370315432397792693270995823234213853830108966651864823771617285533044996783461459721390084811629728820378210951528787651853915910029513221362464325101950222751701158890040679564253158630974116309077501673038777304848032989839421860041782985854184869940572138974939431255329527573733607407380089763798278073098736692761178946078997692929891122906979559307354395901012536909003503231193423769561111471365998861046367037236718013591541652473916419833385441221873718077203683765969612757925941810469748105919809076877953405627209518797877258950386986672100883088085093788760798477335647941775011972286828698971444720586293242247957968179616201613011013708069879957521558252847219605327500200637623435345411226117203129769434081904258585802740197746651160575381933617035147696131044793744364221724279586457907454221335971601247856033131458384080332800311068287669036841780699659491819752640636067519068697461929188746270071708664814227376323242562208192810903534563929935845412198498519019476980351339701663651160538239788627688557815042043961192932951224980621235374163392172480902141143194949065146752422609684285367987255267477958161593334051827687661654246437848659136591985414445854259481831938150958392932430808791949153886721173928407329193216849692916389396187739028630211492370900687043658302161806824572255828550460949134127807442153346859884478931805575960336645581669148239000262856920868425378643272820219016358408527194845168407509478410442810636426157973792571785670264191776310141369618382031674282218902557918130530081418255775723054094260658362261532191277832246465707050803617898669671107636479687388376746165372450113701190402975071517552853543587411802030278009308502354905355223603053654452295527860655103155421571688560426593217045380247521326026302346895766002117883559667325501587758375439731684719763321930522041470982839404609889400938312862236399951891027074241720905074938421340712249086128430615003995319404739861757575541609037419852680470598739654181037468224688693441807364720589277841209087345726672893459167245386541497630392392780319114992014606763110362876526018916835680571003073745350660841241627380161426778275005793373423734164344772913955764537942130179903448650921561414792918732599629803809630212041831297477356353519472070372031783928128385637434168123985931069398947649692299926587600480910954343309964059155571050076268478934302477104352199218666425880617485583633799478992800453652669026909876405454716410424369691208219726031312287180151347654896702570558650205685674941174305531615817649726282260472425118253290356248315755561866930357428871803310868967704352986777927738661735825609864339787856809471434838031631392822481781336446137463186061987687727119859940215495307592017408200559376293385897378915710667173795443411291989612608686157025057606149620120849159765012795636050300092575979964240531287741445570311801513062431640740138668533792305994200083408644520023145687312944174766739780468139809661897188277458723364734422442119595616743297189286339726478588372874977825883516760083833265072656648099202195334697610972136810682197767740848019032224349851835592032097267255984007295992167855920298818899199693172418774917466903192225452136879879367492659786526617114946746925135041495625821594792270352899137041835815250519406609407249337172862330637117935363673772928690951017450289678953350214938027069814041036980644956687885723033454184060236971423862391368392772100660991896926691642814397458374664520057833212639840609616052949171677215631464827830476707734473949749087058992961495029493348816782172440391117515654511258365039298811332879654759544897229100239507349045405693112239282696544716062612787696252823703947520711991282939406273901206462446570397345742139958592338870348430569716791067821183594512375953617414341658165079386141713826240428667629290629027532800280039497946818551055358379474647165343795215245741881517260173430713786679366609831962743823255875949703384776889378951703605840467337118628414950965564260326465930575772430934267560747069445432038960511207269037253598066326085236283013985815055191304898530952034768357306261193911376874101683276515365384842641002380674768637463532520785726094175894287944045863152871775280397892906515711289813566413566727310392425880964971037478338111589052343431717443869584697204349639388018075173807418418454754948254908519073119983555821701037896449738040050558940269369509163511637541519346390109895280149300529442160229295618656313146452580762089519286181796128500272220319477066360186781702546014369685277394901294550464981402448447566746575222712091379791158149087079860969738681902370519647788590108426866156393619912964239984986919881018903274469149534909030383163680311541259013203812568139724055763234361825798723769846661542004129987427338488513496275515160332126458046511279530292130447061917111104998489843362358200307955991711910693003253311100952340808838324499879827464797433252925129931910411419087808200963322389387444669829132826273228386140533927215990049567583190117686684017955177747646984900938770293549434269754189936177526164546438180476424047138294224045943171676188870640318900887754267899503642670400302836689899643995753492963963699510969489624425303965286353574438438984119234976369883446510249180028479917049876010395740539853588415280840713483380259110931636454544924202306512347108178519003278731215512205729674329722133091655239555935955379166345541638905411462139234386128918108289849724542501948149937701300032474770050841321328986054038182826511438282592443413894827931243447044943807933404826395323039430896765492154900856315869591420338964471947490637633724689958440173755965075858523702603715253464153308625846511763249171607128495178312591746999143754583902291408531425493844707859245382861276478275917451867342977447519561286377214580145693700321618937104112949655650464990954059959367757644450339031183293754329879482964628707423740746799578260186746837883869014764603024667141468304120718285874322731118052588705976932917075434679862453348759649472520327305092670088357166812106132545459790972450972225361417084413728160429052103065918936870714647440056880430583006702676738494660756194847374366977678394294225811139400735779117256610179434898286509327113883969065154780594313138283691100076729767816892219132474560412915503737775468301771113359231090177486358219439149055926698235008084677880131818841246504674827058597771148070531086511507208618222414590296139189631250363155017115835626617386076625051320699584053252883517523236307431251947256904837142979121309598641524784175205001766189571224725468197762590357555548621265056011745110273739149138056295562184067221037387386388988568727843337123893415263641664143548618138398769479022271113338294514078893601621948619094634274372986580296947428749598221586750035218941010267783060990422304306855584587034687302635501759018406787039676500305806378626088366292897597329789361883833846820229109267452654816606133727752395949210464780024768779437692959602177604506014312977670919710025095115893672133826396024282902376969321471771219925123808980107977916411043328310084762564767562844802624676929070935128532329529879020875084494019761632766725443388366256643451033570279359877854150496386874518698990911233019401592780338471155866684709555491311657680796713711188966130877434655575507464399657013117948474519616161449156715160397310092909021237892720946182456860346144436113994372407922120803636143200943350309335518677469745415171134153184307051403832149675200372776848800456094370265705027250609335206920627696860846164892948859916337045522788755200821328402495511371769650930269942592052784616540080311500463397333451726820926261948549633512840433856928133446389869384898329329298025485952514417385087838985227200320865500393144726960560903087448998315146045721621228455490013674008675992997666601232453002767923282056448585838539099298676328799531661451224763684633432079317805497768232208487845717686400186887523546694091495568107157198259331622255537778983604092783649472423842678945422006674905973234065924495982394597720270631313639580347937128476871166249667988584908576134124860790808292139785233378950407119449826309214941692518984602388533821785267107330705211904891333591810083073488526275392420729765676842533985164657978876695161816588879347220421320986365151207823294310647691657070427682912827916296304207614036856114132675401126844645571447596365725188692974041956402629010836259574917503280325733971456897093122597576391652513688937174037506102680941295951949508644569288027136589822544472180959216595907919230156671790322806765575581495365893403527645326503984406859968498218820389927175987301101719442936334169415481463491118797875342120962513937521317501277884142561519644365512591905260508236014217119334521422421120929795959033747582282106025599856700991819962658430395294919266889932757260415898914838851940884542691038834848912844848191964635971695099444347340713511447422012816965284760238892990294835971956307836443447579851161979048477152585660415166641922675315074931635364967841750006226539386875045021028794712491481106303417473511758269882728565299225349650701291898264620998322413860422925856430169708217437868982847035260714242787452905458612109809702598664655744054724160693742965145263439819566946702507847214837806818677584265197827393360960158687759456760730896207038209882036079743372162202776616706726047396748158794177746285805027029436217229816459709296474890875846798834609539767510460039439937130040719448491123081902401541932311450129046928478783800969278423930589474982045839476382144296339045960978453355322379964640358009457336380576118021942066107602618418831485687137225169478446335455485450910142403293237299646751116559626671517029642100248614527399367305616228019800574916009365489762617006982330861616330001776509128559615482027536893101046727484874630363713113200760208926165067009032150969508563427976145820289395616454096931116485287572028143467077078230391068931795306598483296082903815350241258521696135231384360339911873955571547743799724656680199863627213974486765637375615574189092341676502510571886928936482618397588597947301276326791231873667639869874894118424377686766556979304855262265948811313151817535764095748789293045623895164499132207106572354585346251034698714027268635736092595784870076517150948364439457273520161864902462102922484305854665459238080517150756814105285524603591752826428215985835806106399907202735192337457125583628219397865762806699864513518067878079851993201921904492886321828499340713049564134087179417124524347245293623919092758120920248642697049653036771743920866669317552338264124287669864272346303882768208823714237074382608166161419927580519490220307066656455607810029346270282620916788382529636255473354694304262524429014699034434205039845157425612345567334474249672916387019809065371434817692241740174743745698926597753082498174339489034334967796104197469406723248152237772617058571546740636167350524716287937549081392301909566528186713626699496466491036691741547729814760822361893101704089942292908207570650010706731535396364415693432231188584851771858920060192114373832899896190981366249901083262852027622436353671336695805084725659217381258510394551878318508671792404410978258027570187939692441231793328347585773159255936510127218110727577934129643921444774047493422984416959191661960038186708216776448624841272626182816765096478398243921141812025280253304639405876775052795578175578800416290523891778921119643808975853538535300529773715843270684371552020699391477954580776007157977708662058569346441514374643082638168150385936478119417285622754610150558359397312031094136518555988797099788236072320410668828655379571837683601122487246422579024901315059100613911206108167512045728974297750697188362652894198403983712168575471616572336482956681606120111242454357412768681158515076752503932106531114774992669731782015301562863064331180287910890766205779631014248312308049655456330088922766284956651153665253512140349847053281609648542654135324572095306045111351321141130523827566880877897512083823955412647904640900723456895468502463299150377409965065981051919284403095312285575550597210352815499122817956942989438983157396940472124323176549722178935438180703595391336774690816729352207130207352065825137711493755171785494373869160540026128672190304720676402616155925124366618455793367417794695327988031665391576021049926897285923858430750061693543345482212542077761077116946193802167607089916535316990361874178298094809954687238542806622386796953223613074273282739686875627857388832285862307086425725666190266366107096328788140345047543585176797520207761684091367562442567989851366259213405230496140951092785198259717908531057975352703019486328606085864704736207968881479105486975773294340375953615103788773307548411909808930230026309908465411654869556881704627113615175719371060489707091765010792265824185793116569802012075474165923477890890369972268592756014425163358779043850664346917910946944600581947383241733623189024241704979893539322580582266300127387481152967807429587722447060821085103386106912599922431938763691218990132780947925943628619647576070618859051236708747457487728435394689895084764840159840689017937094675351136837691521060383317587858959256025258793308715149224318686677218042421344872878534353130194865454431033708947308124064839843676501718314614612824793573576257243279105601939877783848852969526665819851289492504034755842151880279626101789257457769537836974962450223239274459932742323769925249372549686354127230969225046840571311047240130043199041056310422064052066272236291222812932572573840151978728483612589480680614521407985925373696786921127637755285369694162536464777368593943257390254172483032568045282740612737322476199271369879248778940548024363440217944298029076451961043031117017546166758798485285086392002994677924422261452575045462232588618843328777403968639946941489828127110502351737834836291636200986878076049861663937026101888102171934691842487353093792999823507050047137703235399415571515838243395552774174650523885406067111380523553857047598602808402778128395862872111828950762605590263802137999716577353834297575345100379146132121356145403762496248818647179727055043406699703748452499785930499080117602789125099669953244637540226832575467380390798717877923662549498532752292636163221612036124416029835181942369605495426282153097159588859652397275094839937211434126065441347796392408204367175908278134608187135407679302420967771908398378422183186358371683861803957857473451200255328619871767094295707014171514432512117336524302497995775941514293356543772921060769771964227678280024413063601868385518668176085885357655785115762705940706616162348205852818316903472525300875753723369424781671797090686978443229736195606939632353134395789034222544662555253223765518780671772350533626243577999176308423998096633897368169995771210117161505920116165282757188825316170885142201581754175685920153221484394948327044449767684059123120207445675630666965535900628540832157547525197157088929259080531047792782667891578721919517872718315110709639321388137107098538370371359552762422669876385465955290225690017560727753719419435450435962092491825540291407066209525791188407744405016092653220617454528179881894789697473415061731128893298985730184202313854786893019995893542592727369098053265201259218496591939060225776220743091366398026168150717140661467162090555313979724351247412782412139071931293504641765396224314569565042974707069813192271060029646261322251704443630269873549824270471008828043160725115533598162233236070078381472254082871197299039675627043689388687306696321446827544338038142314638445220926891125352250066452782437550826330210024002228399817787254867617361533444784854217432699201100540150399191388587403495861419762145028272018905839990911860759063913194973819725058921132377922702415959346082449594075402558311607253596852495883531140705480712762052660880311099851213740308882137103010679055186693024513586802837078037345597698149558585945192586481754585322476287397505388514940646696211121542078720537452108148106042074495085778849577772515554969197788655066908943748706212018372521761684106353766020165762464019200828704616613276707663676105793111307730553176573030640935963629860012759700545869364378700121150254941288574353433107878246298543885398693261869990695787592045224975534824710036434407829733995524561884848671380997517328999792242416948688240942397285343736579242746621896284395500608939688332237873336147381971813649398458314008008668392861968633730139125994239560543533593850889956403288126388604137394088379674474666529723239991530528176798888755412781989012950468470806505554373444146313360972509536930161537898560901207650267990096861681384869912833681038566624994403984191136780852812003436643511520881754368777654319099556681942146106464262461048067292907533464636605361431207066253508219074232624187756513456842811109825314749309343358857610288213568863745308233835896619559226316849234760911770224069333814383182123797680773860565770823467371038717262240606909494987048251684492998221417180800571652512757594236633441064230188654023243055054964737483758949643583993031069913875771511247744742000382342708239905925186477038988802620963318250798558945070355832303673852908572368534594705663979696277894464909806419273240700542544221042587775666123815342585245183011741272284492388979587145575950556174457377917774188120131735821486496084589394484259576788894674112549234594908388236390778376701901291670936475862716700207807824758298606502226413767373290124091420043659912447264109577995672428983285114952556322984227389539493076788293285966172064493334423509016980451292245191219639741444921586415359117094806692649383320706029169335114088894159919934974006813539305039099942138926503617241803682983476516413969425702445538239965029857727167643712142161860670843736986447366891986265324061640199633692142103118411357488582183074263236912531339272206105001403947125844775395315984582130577452278185234417295019603853752227841982068074686062398490557549053718595431563465804145413922983976380539022424495173228827645832662568031238461103921011905761715600400844516887000407394667047146810593848853682135888519840834870741129766808205581067903109485697258012453184628011723130500488272238245934437009992470463960051480712040448494466478505559688113592876172286287564146585297020218205531852753134227780957027611719077879791939700131810755226869515536532959161212468274555906128604611301346001422615162961120292916377091933401206774615781700819537790876056424271739301820236896503557262249216920799939177536981121485593356828988910093767795747304355056454161984105745515496468140517409875593532528986250404268931968443210483341041737510733008788510362141668745974180042075549440644316986211190094729326590249047908696900464221886361710163819370322202759535960202980613970809144343400516611245587783751828803869372591483961204555759275933449134659172787038996502042398605062708643738557697727903428170756868790174688015955949752185814322667528061771462200645303785626320430846638475855034573937641212883116164216408855745239405521813175430792550703408916039497376095563092688981150307871004222539525967909823316835986513565781971964208613846489115489374345221661035276209809898582362262402985058879579892921139091520221840876373085538915556402374319341792310410347563656195686936707562762151242682896382611868004296532472774142788365310530395890735579370414308681567981684266100700144083515597962355077963223382210414772140513191065580887769361470202457223729535882692557111119125603577406614055508882097717595055629864167593763117734734971038406732419725710078162387785645032498414345548049038561600756004198323956602622894399961879289250422374919091003314442653204717833347204058536046936935967124584390608865930312746347038570556196529915664963889926934405374635942220812816917236780719033898606727476878207299248666404794999189000390577158364649386698207524250142529776350228362574190594265716815749786188473622139251058935013685124879672159843086328222396038657532526422710866554524247877808826540295740436115782014514892292468305812260999759771263108475060638572469536806379025590284971805897803485421130292497506736198645746134221956431123180655642144795643027308603622055388770723943554741500724315805910292376374805375663024401409701340560939297906804250656092954808309552178285435547598698185722112048322896590212843343156758540784392814850916344567777338474863377935701277248192851416154784149636823703987257471408454041109775084158575268907031731271090258430775314618041386978175923781999262650265786945777283357651636128689547110734699269292417077973184318945516165367561478526259262078251510698782439298786835515107393237089949630177152516690315592496032109442286672422228384158832777771120590880588635069820491167233054848833043691166960409483540283112082115851709319666917745719511469703405616202897550334901465570130864718049322479316424027908475198962905226537540721892575038269683053448180200828785400800894503492295951388087669588787504355582728516462670471266931205825464239770763827182493325644293720665861781604954559115816780993305157444184659383202351045796616516424939196699056277923698614504802019205794766689683474628440243611644944519523014837929227373526886106211939723712896563970010733144356812052698017171832832526639588480759776274211427271634536199205029552611866448146508307642118270587855725032370616879664458173307432220971871082483904248720683638865371330535525095105092983161729664507052045819644267331805279132566226944472908108356225099318051566368530069912272974520439373165571470583826935351790342866890187963171525200181389284831211321629780339859766087744933118454839294876263765525508094579071601293259080755938088475277695402043826021131503170614067756903071655230528764738947591619715570416284389071358708766382403261134320455771919734738486041491838010048669068239936804918834518068788818485549423405605842743745291233867600498351466605865529105403901189945760360112293350608380148405589231049789188038717037823307477949151355360422251418277170712188003287682064028453939040329754601771247743459768386409248800861570334964627256392036129034984232498236073854124612206513109449737876345436321255785252949768842741490233270804266630445028183611949675397095681880731491627873400368319548860066283324423517316845405083466123475527914052380944919529661705312031959921094468511570370561719257151407456504081846065127504069174437539777066011734227975926056644070577885864397528532516202754510120960829925962399474704873937289769362526408289823963366116173072110469878518051856835524708882695170412245222307290010935713843963360095535500846215280973596698336511337096831147250619285801901276404397780031599478850569004838950906334910880739176298398808703527001278347665105027747610425449926010930224548881523725761487746066685180314134156318850091680717718101149320247165749277886210078696370237030416391748055293181604636784666960736602850616851419807051505670387064790472419764536432924228682951647565846865525352035982598854907927434717626554161601952347870500567962295932171482839466682653967898840471579916578519469232535920998549701046236688650182512326327162552746854707374036023802448291585665773155410531207287189551526856620439284684803979299810561133346016077695332439524017288664598819942972598232970173502843327447511486866388903608113998568718576071217082165264897121507931333723866621863859266704650261587513598841134348926259873840714476426885288299096265873774738109534191970499292975612868162842455633924848861412869291035529189872638489908859640268394121667913904768208292011511066148079864635866253743799820156010458089893119296889894223796792636995340600960212180747749729990713447048835530005261644535567814182778814409016952664280843561868473910308599075825993894502005332827214252779902081614137797107901330374158282753948268171167609733696387011960505605314746526446491665701219080785634507674814640696203075995143308118468881386899566561133493293715789616094185399556499939577143594581233626546444172920780242805864956213855162632264593806741461021757166162556526374153104491031878564380410887346363421733006038638795150440077595816479499065321644075212838652422255621275990013873202322870593125496581162110370150334619821672291561833839250600546794856144398070919522398341654449833939234448874346401730468892491592923849324641511362238422339126821150848272579623603694321022674838469252612733624138042566402950938534000946672404615172302047692934424036415644136001513916709287044619045844732139556162029215372797354599364854836052475555549732341030570902060553724026886253455860529930001124583522880833435079892745165777245396349967817720658151305764485306437196708800856506815147559537412714746896044380057048809277449094882479792168081023193885596599950943848887253851062724719857664666339671951901155078007924878732850559917805350952082202224211205231905204788057163467478182992602864788115018336408708069726746014367075482412562432062857174572435242117411442591477962620079937593975992027835657276292413653028525178876438068037805786202972559610604333535127324280768854315477661714484798652025490692161733848837772103037404684588932224894845508055770686832640808189388203977818989828041880405951458685858636815773621698487505660601997589004876385888090200282837264005909913685653390314368418312050338363979327377290786324518650807752537486271178503933228121622301392197110778908904674328496164862144302473803834832817443245909674803609247208580044963345350874377799798328009845632792454813013371298693346565350407501517173722643711865785152130919879875443676611288287114601444510759797957815255641319192261741715903972068321192603037100635727740456662501353778151517710898964643693505069750725808782029453969099708933727217420750823642031884152600146126151552338174995492673050202754369903208499552849578095797776529557560563586199590088800519535123544667269183546659303690596574001702305075550299816913701207109808429285797024988651001723586792530884773629441395662270124206160751905385887085053687067991761251868729394098403590318813870454366743617705560143318695197530884268314822687817745100636299735122950938162602859217978412417408500567972408560705519146217446600811318841526342983504137711918853614071307642044469932179920559693270773710133011263495594009679929556056361238209608720293537474694296980167932213302224002730235817820134895066403789468624927363949828487698594328942752032057411930960652846033708358421903236658719878989281533923878766652819334514574497197310894729418014395153550475056667914929884457167599970540002485136089042574403560291954588775727495561158774331258222642718165065121976262919470276949688630564948195147923432694746769276117386577886002030475116141142747083854274519991956650585985466535090630542719799141571440338962587293209369703138798628502705299699786850052868140064712837120272380877482080085471823293967868021500064130532789512972020128417420224680616037012990805188349056440300420527093688997794494763277975416991803347512302382729400832076033612892932311919116526296706004573993187653409112407898116742175662375305043624939837481672455402067719917204309701843914708363543238794748340421329151635693862572379748909166643346836752128191255506965959840129166933147831016405998605342108706102727598028695088584313903553062474961487085029400144676651679484801033623106439455030434716861469549406331606856299926471843715275440211324767838011306633138713221143553882113955892108063092261451906724260955274307652373478176186715643418868346491025278544416159152883437652798510515935188155251496686690622854635345043258228744150286838682490601820327573739567376044749535861330064696249085161072566260852703868638375815905786593379416940441604903538913736928000229700737079188111566472977541983741378061284200172530535352160446310992164343700796562914301557917941510805768231302634684475528019945839044028925872337257995034796995515820873831137600446368486260270976498457553068241191713660451684332195503241630337768541649475647039712707584675670625006281986004655221840560556517223185668347210856202256718012770250755508946781038797027739342136158543131833453974992446514953341193589970850958857247669022228663788308512254513884486289247642405855787867435418920641921033467884928746040204216183512670538674715567105028030284822595676431668585898700383390178352065601246148051837381579457740561274016259036412494206512856857505323018586392586263010019089395236122900899631883155906502080206099070053477252152516482178670727966602582992032689546588406786924155280681147675533020971841455074691107991988216399615941269496088251197350425538767437141331943427722859086504033771048693374820426344070092427792327688810713238994941491490790111093120568514203398686141715588814792110330600184930761960318071469568829313405845549738758564156946933727053741477493720198271893346745836770762045733868926024128577814810694007525203962861968950650840275806568007063638612171453241471257017214242295464453012165449886457712144104964672507814364940524865803280820702682136825484775078330488027899505886251019563586877940534189594976220011936284555315302837529334009774391514640070698804058927152661812744225626066444786139106029405575759002158467816002866966889839255146634102288654968171760233800249870629853762234146498564910283431451066939983470341917839353678769791438419338183440060634099529650109693917194223367754564126376317276824694170277666967195115872785451553296790399890705355142718477773191065080317709328833087248806894538435250676914510319359713802317832755889250127147747212472371084725652526888076527529423327597909772792031377828591747864523344709402505864362424795332835585412905726848466496697913012844152243117364007454335715866882882914979387626259014437432522049350163246296264197861900686421170072047938743282456913201408581386435723576684299045860211685657614532660027836801987875652032360255530068590046056575165187925356295165898380271846281318053933820377986726054585648012492213237065479364742038761093916092874383281209338653325840085316978464334954602574259891462293665000475000369440828831916096803988718380650844046431131466598165135183413790723520306790488518001173457069139744903834240864262405525572885416124943240850578092576612395538453745312847779600398319622706510112471994979448911818274744547545790850947116237381640511734953772716421853068441858738500376965638739785583788940068115565108473967036096069513396450614305660631929461513273479479617508047198454926545984484674918431368630912404589370504776434641550919368796556078774843892139896000827756488250711121585916424270070479836507750891421913167301443414380007460956026427814969038473500259310248396326429438677708979461401823126155421089361864923339155523232562178305351178712416220415936984321370838982048762155271984312381258061350368065112623126701311846426553400894550053424508607370091777074404533157634305742973034977647933346608902033334041133929262989855993816764584690865982417235984807539440317287730518266700301903508543921794849152033050985471948973429633105578001547883852645894695740093094708421142665516718082094558726759651148104814896646881069040909201991388084803766194062512340165329828789822893619224715021735531884957203780272423284462259870339064052216684370940124964607358534410000314609105395709390083449201134907758071523134269901662560348658459421422084402372214514044894827288747578914256310292305277949793185369682049807595360880863317181175377318791555708911128276200506352122334216781528537896962528344812493197394127624518634317247369214371651542869581138047211940105632527484873570766664900809790768901582835234508104833215634196848086752033580703730300932479046247668514750779234502315423134376118292438706189077146801749214565756505972901823913143879885723312086388615412130249637867584111491274814266334270134193520590379655969433395621532646664066006226485214348042703878650122508062919173946882765212220655053313762319059162946274790272953608010493523320853764837329391028816199581983433082172025547228484997207362454341773465439044043453870989011596681652600845571304154110880056806054898851366736109496272169484838787216826423037009570856649430950502190740046023608931509189981712859489708992779471109610764213944948176659261314612126474420140218755086436730441748596813125713501861440062086704772657835908840549291495046455729424418822993377255200540398875555353881396784846746342388383160642556574134424587313013084869610754860604885847571277404548244850217320794855514410136373088130799638120465736745520619583322447218746951274842840530049929123174728351626472541965554039009324868908305421549589030852433408766828253389661565703788419597541142120606490518795437319036697030942928466625630191985753643466045579377553889082096859403120870885278342507191640134091176267416843433328956108099777684417774078607412072171731001904949965015425032011062201476290144514744038572972121905506654658184552332727355604805756237147028749994873728475647833422106621175600199416921134827140396387411456839640986008611094778437837651526194240278596148559642831182560987264890730544561981791399392793667049939917971335043515685882769397761428979272438647090717790062775410062706092118549521902871192504505539935829440583861464775294262165965666543193989276480902442939776206886429326989232275888633416894418769106060190322312301040122384219562645250297489225095951205047009254020989410819061252755055768806768204662202449948405548457213844031379045079693039889811399734679320025546489073438679507746130096447912377125532423845069914201606282089120283954350445239310228014443635885534761294332497603005236156040461620031642714000195055592571470941720567388653762821224042422371229739891255478462816085209744167163837117814945031120891069997332556843454758617069057488119263756213553386639603346748287165456803797173213282395305320219018371744882562447555257055931084035836489407428594066706578720463254498897177749917299877536383544776070155598874449765463004014034415732610266465765035182650754857521400339347550967154626884872007941593223255840803018773454451226180029252672016731017724078563258648458799611258640265632443828574593259180240332534757195848289968361284282607512158963104159787474231997519481221193190775439699369093244406202486991464921855767834295777924269116536418014341395199444826833341448566162499421090844884463515513618200579902621886657091197495803983829888111787898886800046566530172764299815570932758433133187564426779395292993046610726660815738061189607559030963445399264651956506962461680256079098128670546870107690611076598547490095399715418657090786737878703381889313726773130959597740942178914474914010440587398983434418600336904044403771015056095651981139911817419519310682903787022506329647624736252915162192753754825567642907123039604646661470522570353977248529532865291594041917844403796872965604447720051190870947951142619276851468953717212682520813461254564240213405260680837619260746115406219948090653441883310624538120820489944030376172508313778523156347023065735013003532587029969276761505713759888690415637618123704842236059649908137203879712806952003377646526539564429351926988602225266671046861710910961233270451215194268197736300767157455309680246853852496564424364875669149670281705344893860144641288134821268191614543391756651087987606707949875904653583040239293266519959450638057653659587398489274281509509832141582218268825170299175824754622955432940147772834450510198370082490084587923275339382957140494202276880958852613242154445862161577998530907502510776001029041084444529658332719681283998986456019972858301986856873734737841603177198038685700697448652269199951608823573165066244561239238072605197795720750210680153901809061125642636799289942207521139270377879909439167341659845563621089977755355656739436264615605321683637116721212850997651464057814770291722058322721144021172924233656579955077276218062349626873245397020657510008512421073652315167992584797610646432339755452711128031260775090434241197131782816458545344511445978716692072775417180907635194287871933071801010222716599095145014252963071650588855569523458698881937154488377815932304383184911496159646914527558902694125406761062923645632653512825777814271929688414578664794646503577861033994071113209276926416363098077682072024111769771811676147908942577880244414523443927106953414516579025036853971605152634580175141026853065561552441532607678755828884510409218978766729267351989653780294730931855762646433302445047632216760406795225358439613644927907589453237659702003894775570912923238843278862163648841771199532419269706320331761058435070176276253991211603964104748524044768404547644665486441829615664772816418205376875698688252169588198455341509508882133394517719075187784339097007390560556497315708528202540489494591532569958582495404583775061121375441236902411836338853378239327634733577046225042538753691641333078131197075632199802653013759287715636540243279416826309153557016917433854186296940398691420442316008705976895373222701487557090676033801735033078866011515027111442946523499420615112774156048733813276224151806917108704411203194000664532816585616874375379900678528555754054870687956716517975515078031138796506992465713634008735073508477178557662541552005368732840894527813252818185627816364469870780435160316859168888194533473409445121929512914273840728874038686503323775404474166388793399239930595875331511455372352150493348706834051624290993375451209233070446249797670499913594398202930731034481947656887119660868966982671906949907277359954345673379543497009381222172442943828242726180876637305445740160423484015038293881667603419443372359641772901095054065361717609469907393392045939727195020881187146210886201064590105862603804143972833141906150428223573051447708658634102983818880683107597297583911710264799291087938529164531713936790430414888629563728207949777143084590127253955855635351031550507881763335655145048751508801494271925032250817962705629759363225160397023898461906650933204568185781442801109283811623545741355533327454308461360120524462351555430110300305780610351602064506176891090420177612532155512259946580417015341020808333769118381098232142230031488135663458631388990412665524224512669214343302296538121976397157509756360277794768870291710293444433572592705971024359608044404706038304890650328874851944132813245892636344774251820125218974029669858643935873437395385585643323819523286439404232479016808627976370856402618066588717191019083049739536481899318922562476730901314235104789007339829670896683627832442285871716825780094676872493206104269051728455082373174542026186937149087515549405043744570417067826261954210324296324491213966205646265136233824805724697064067571647651713096469664046088824975752674522426574196456042449943254230907760049380868096874875756589546554019480193098052477125898091857454864045571421152390642485427318773621114564171277005569543364417650958872190104361648809301257392790712807441018489555669569394159968437625083261754140741489278973256040365742513998810208103598188334886973872182563861907446351311471985890009786998589325096590775354264531210611768276402905001914128962644591414193812733688792896473296808874926647440336658008854217534710253401739586160015787488331292057272991123725664759227740994426675780476970150892122668715952076280140676748983848909023009102596813566672545488770862945099955117885753693530239614665235114467805565973736481337783063067420485370096535495349662568692941536825911276375237219921464411245962427630465241385598535907919686284469277033362657905197510416858689785457810347553350877251352466800753544954073256929630871836283301448324629329641153014735992506331023370166564433505938798973316485839470090013871554908793504793644090523794019575327635629799718451658678555032098364029256678751964405866844683088267362726448441631401574143869954883839185188593498390622275340773574679060763849278634930184497762976040409883172337461736901196210793198748861214458487617236322387915323557079383345049837311120108271474097486234893041372757765633195039893096772745028077657783538541849009238612479137678037936499762106026425421550582612991171827754846012954167174676112155328498138036461373857538405323749933068364650968530913310990558664898563453662528875780429344768979551956470939407073829842073815405550126107589144079318902743144013904130317811409446597825622485364493291965301135736776964967687872241973738316068459362440651006009845721750350213141165972121598453505274421877644522166084130361056008185070693940415717589173675248203588076864773849285536450994086587585273057368599331307195401813074376323808886834504341535278025841073529479034643356588071211775221223185818596059752336906532912903459865412375301269999710714953072079746628022865040337922935405518495589004031518977156383894173991636026445592028058396639142722110062428766641932217669986729509618264731162833048112255304207621223336287936525208916400665068930332538698600338055238129549427401762680991701574056581541998273648877211076248792992461311995891601790880239112988240980932803190191938323655276551274968051391320576033491727808525794781322139148632107917565714423786045849059003180075128234254561090476026901813897986094090439266246163780349058943958370846916768038213915458404682136263426899440135628031158139349314921421731394714270723324795094116922858593102281782437414541092254267818769612121710008696045864926423698170664986571759047557739712451339248666103850468452816201892961752835410013304729226429879811643601311122794366826152489325595271425255519804194011181874130823400322290267736310858472208768382806816197801726118969456602314980568422878765170264461077634903103008095766294565910663615792203173755644499715459222875253293129022639866086166384076504973840635878386858801898668354703501292438724722650245449890896137867899257390596902710755584270183945477492739831546200274737537078595486573083152148456919884676409441788418604503732993726385409853501938064772602563250580453468237208057362641549135915044591008062415573955299612045675258015938147773681744768161499433094932189535603115107569913806429436954091518740333692651974410817266049861279506628706213136345360808575207211237405096056606285677747693144026193103995767219603274772019855614901615354010020947492477135687979547129760269621918129165348828874908744593825794984230154960799537012293563801414740949369334709132676078964692077612556570156963445600607075386075801562048370919762139795053602427961658459867844858374740855701404197764510997795323634850717985650873104685151757123199228980048784082147721911499936576135571294221506284512718210052175779272915713819463833072672410569997217338484960889664426241401619745505654213640220704840268948099896485361718713261677831440213386990078426940117875224636125630651404700545101426805459982424880965285150576882129346841814877776770203898886463421096488128189371028517883954266216698583915146781217892019689819975767427634144371451960319401927789335347570649458038916136058488632204132833956171872348915460795434785490543130198675861967284885714077348123450683476423749300357496086083981310325995775376406449262699997410191729465097851450774869393550377393301263561141167846019611394609940072142248173309110791156986926679228489856576095063987969986774735975873526480288522646828865302773690103018077610555571284145984629095273909815202389701704563119298780920290889280532638559791662580392218804612882690276191587876382064532942519209524025909836818331158895088897638769127609606550968752658667424312058548988051813323151399752826397389744008708244074857484558759951373776404174001296144285570500013932397103126208742886320177496620165800465209893522897543405604683318578352409212618485126571906938631134611880988155948250641963365802755953751396285227535981371736436345551227293482512169161854381385584583706807014480959191533646662011043604053630999137481572374248989079020709056638327218961707144100313934863262380032128769885280582395927254937714759837912535753224158515948894225178659357971965823162702958588478533151978685231837217310943604783926742307698399673321801674514787234870527498589383489188832206014526252157692780742371921799579662373255789188349579509600312944439361165365683930163520252647333155044570616473596601666655304887139082567985996871657052302276460279046643803221004551452973408423452775956692627011143464066442618554912753408285141106791139090175780019540427845996543579315717382370334752077285313970644295930383159994978264751229628883885195579062223506015643466718100833759484573262961877419541642887648620726372467176385174913815547165086524174031433916225039210734156816558382212906273205181461188552111058425666410732202134025578799179539235589213923798161262957855036673247794902720020656972712596026966334791853470562216932365520382560036615403800609995987664973957235536903846624220400789450817814003037346175000927917800027727352026080139959107024590366609618642503112201742595201287248038465406622671826641608505726336416640803997029287789073271117466106134987450672831995793990125502079845638080173810977804557629973938807566549458048185259328553407822242715074017713374504525624464118395079749454865122259416487174138199363330279399881731833680341823040338694278208199019482129236957048241177731703726540518061630197638465665282754754422669504571544390756236087863694201908252814568676779195984036222042560756886433139755934766005270087910119428475066977340113113153018523988991285403459092944286795074542575253044648126427543617945767750641388658632908924542878141724911661517726868652140097206401539235014649489866472868662024615525977488391155981628899934836879717480198069386234382953879020086916430709991262311764951907055055629668296638165111239122062612654473272220583548956689894579576393130029555864035995347573815462307169067018582792757974922149767378529930057941678219515932472790172030521767020040341151039793787734114063639806671773358612448419630630172259954673920628936144396832990649702561064504561605914215958574236893985551850022318313163974881697805954334262873138234529301728969864198685788204703415360905201037934185562091537876978043542036148479830259107120080819453521494894692041837547514056182778844034231415346831386885390018077790769181978037431791153764325160905769609468303529318790056575404115133194346541865421223850907053166805897326913579112304935727882833728488561864473166456337965546610677704711976267106259827962792643400778493703778737385605300796206731331861985822898089879242163627685588124514501047648962299010412940959342783196820742849385682799468150082325409756921715036814779465089763720260578457859726479361864899041880380134519705707222158960972434900098901953780252118944557219961238720216869123358271608595378672188110383279472945093659407474781922680594078435611659251418685272269664922679349326293143106013322849779575768872670385778111086928855903708528445641270041222492726910285212714679118503724921360025230094893794184245168533150687809331493869443501178168849819009789116569688718448167371144697242546534730775619908262525610090698085923105740197020542337026609040715282567898235169333537276409708172859513119837757849386368141416797046441834884161517367817874247149175209033481261659652800646400706366776056244442162313452470900733506400223614451684148137933392122215819353363448694528931877558939573552198146886947591807900301528716252812545663856776253634226453480511764357378448028024253943762150997867539566247150238464973869011112445162044002997003646437182319641219385539281660029603193182346666136070763568478864970188376418045292470402888113450518008121625186979486998541458962429405645904522287394336315750931740731247498375606079895335490819376476295073292551879779336132997299897147714824528685133195042844547473307653441672142249236053473018115556408722702795322316490669188025156945305466406613037990813574153148490704281964836383056188001449219507266760512236158285377742386242813896759598940973255200621471099187310800718347621502962388229983078102192698634364972834511868708757065659656268647412697683417561311322880120112804308607924593596043231261324992944794090603028394852343843534324461859879116155930832152214359536512458082429310543955524974929404375513062249290585633086052868905233403085259199652827838990743683262560496961597520393345932929228283104359986357026528737677642877641713736104104521181565687179967762791584244622926622467167394311742513216458452738268786942075028831793973448655494305768406412550345386601219533074722310787270405994531095839585652731550231434283011209638306683163883684372403100833997306342842788999353280518240876061325856040703248227152754394005594332500370146698526847791949155202693097549625369448127932395755156387338395034678825273086398866033299264386507122265575881057751442476822124851584704131898349389349438796197918587857903318250448926028852090557301868248934625225924880967124706299761974082734199585341398549890827970192913750107142067898841748391093560068705284489159203267803945764056127231911897305033491103558818019635104940530496825517627266318596583069841929852988682709161828989561208536997671634104747096534309474942284976404137903638179704671128786324478089976592494054142498284164402937159982481380198462352673327647990094321164215633472157939227915367787195032136687844945912547948438489799872057705563889869721637114813775402193176509523005772281111730623324482057739204016212496257287473523120474630919503756930277118224784543411268827421154282662723373052277133160032334339381094415835022342440975397381006123224629799020800170017930250861023667348540532106128615463649393399126422106700342373918910908733915495775472636461383729406915225100073941996746425408829855886941568635599431379890934781530006705777987278724389209100340009851177834470726213461101884846434029025344713359411246163163555885975179051053683015661900291040992792309138929915152835023213451646546358037062976165166590490797556861411272127726357197003839954057339468103158700646855818605931044538078833378591684716175721089547830048565319096691861941847306053823741363336034989219121394130211123579952537229111924011448423704440067196808257322464750102992631454938367771431396280129168794668115783760649013669004091380199119848546862487089638064655513669763160445049985981634598485609936178573433075277617642330836819763784487400788490268344250215561901061451135369775335701717998602745557679568927672665987177765238161825475892483763257183871027244423038348377658441923393738466374365576035243084107749781425993641138108451877000664117367804517456824428252323771476796831556304474512897390279635817281064033145020978241624693774127478206748751034991667741371131065288331694236482303008836521016915280166874801622444879708259630102408846100883952206303867199956488756324563466984259513039967016252721034430178125464962310927383306205705354175759520727773875469026500639649911671323943419619009434759714975342801529911428240035826756735602366918746375583576897968760373909492676682530405680614827706999391610650741411318545398438034781926513513490874122881447910229085988220160051532745616884783130623770703973764795945620695860266491845967079453354045584066527209179319876045789385078454171214173238991638302485738993524108117292863512999924138640294189846451768872565969360799655541363422939013710822580049028602379975687649727296825077670192466086979156188632948760630139092306868613580561696466658169186892792310756266007942588359880389543812381570555583126726896574808896087808453657944803322506588225814734196277864859339454777384756805089835438706493697756942234912288522010309929190432471639684038026213777187793821348388404836064943326682573710488127442874526352202914290979993886547986516784372161021959076047870672453659459959955698706710126482081446877711517486545248980813994707823545191841473416123036822860484464447377567679432723722770712000336216130751564519071688688141548939953271262544037580862391825670092196828098825324416658053703546164653311473437641905869707654501103698252431327341759588227107691075288167973194197468036926828345605627347824390386361945263571423481803155676502288240580467011854148067302360413544985312846677490226475832537182009869655850010506737237631557852365003516945081726040397052547854203833420870719200659011883331365029056826683357587163185380014879217080371865968597420577060685502777444327927231171831007083545523758941301918661803635917317817012330291857323715756277872797786948572347016969899322583630283209516181252573157822329927398174560228648118115151503290243836464408857152390214781655499366345363056466185325576453563692690055262855667602930599179081476705731926245763243768720647144605732789571401678313589043096040221122278286709612331352839985091863898479659757960796910162310851156228864422059279605385213296443324122768059309484221404265106172307143169306274457116048769245432722357757949208910963484594770776811095836337467177321670333551656797620276697802091472746291239956083503310474150267004587691225071324216051369554634435491962491447093357568832096843363666420214186873747939026277210294299351741017034753473505097038662490499283990573845873231769964559993839882593641995951931003825849887908180433267241469416921598987024262032769365951538460482719440481057135550457883649144429109711238968417819967019600456217299916618888253323765309026414412360103804313042289685133724722730827267681268259426673640633562567005319614408795080003018513809702187175768377297079517036965792856390196845197920722123365414251708058885795277099264254837760146043951695429232472654440732862363906904255152495083564696262205883557493117786332811539511164553176671956084710273628014752923358568776656828993637341188842210428849626581206884336334313524478320139157943638655856956747080186048730145357359191068890918284016751856265248074687861961584503773230733786188247129421274351223491815240872424349240720210023736911126558480130379963287736127613169800574611462593378198184854716372943433985094437147785708523816553975401726382165021689739342211629866453662251899237185516722887702794278659636279877994803696369055092514569412729856836133727985183154358148178394965386692913778412235890888718973826930214081457506901407102098783434215422161726379280221627885950893026483008879623397642963263972589516581238517524576235306546039110448290996237406751714500043886313064718207779116689059380505286118774834133710911677314720191737293248050572034344290743477655876147751610853679489068018068477718783798433120036142253502360347942621478940542391969240488328089636165512621803953952615196311917260018370195231343028575815846998290904976910322084140680335282375703556402619397953511217627403510848777818010776794987874111241492790645631624668018343963509990101717879186699779215479275880921709249123513023874399823560340458843859418590380431804242092591760155119206761810322560064285381436899680436461988039345418417916759763331452907877486687937524498715166668947821845000609730365426917458014985651909698628319959981903298914704257528550997582513078586679766104655182284444926302971590829895743417211974740357255851003704939606554583460604070409427500204978123894900145556630336012499167851922686444526197851123886141244946485726320890837300148273175801165613306316084887569749313031035341022395637038170577485898518546217883376175702645942647358658299655887441546308351614115048506159054645033463187427718894334875322255731194437883732756446682336627917395593222551022812561269944406101839894618733404126594119025515893558321979217307437504307278033325691956672371098562609046111903499403349384010616557217408202494473141059977750923951085665020630723893125601705018959971005994906731268024720425641169132328340024183616309527966837720382432866673431432222156962647477922347010745818783921304718788379607473734230506601963038757761619566228704712637431539731714390683550822058940963928405554804833200440245323155215135011249736337837118969236992196516959641438965256827964870492894867169731202098167891094018651516274081094760821821412813185934610921218731905045255717291951010259576880904067218972424135914034732101212208525091076156532859407586065983266789368092973854155342334657500238333256740171829391420849264956987744269672202068651438382272850482634110764578665561551510060021167964123492008721576906335229298656187066672880994826611216918915172644037240774635085277688039176472658105055680006381883120758176807437741752774035046988691660190005252271200357107259887115747787444774978279555015252116848995013692351540680575033224250825098149520907305043401430671326505171825380054157468487961396417148043326917064372653289945726063469913445115166390023391710649385347133302368689770231377418098249853348782131607970455872429785411972751570943655579958990485399662445425005978663219755919812420246674065959700084372342290544025223521016337815959502508170276808661654817283455553224499962532214177511043093959482147832807841092739773909054038321274166789270879518075444000421349374302488254219135164429074471965844701010661682709680901512718920567028332783823246977443495892977950957839669989169584389311139018921301885255999209327450502891898321573841200196134435096864159210981013583698397576830094906825860632115627856997475902737705408139547562548827314914821827814506008287651643640485099308291233376659101554035083734347205671919524164731755054762994041064283447770936054817213013607861730290105377525612321281775735008407329721968174718886257193618741269006591302572518986090150327156012926196608298761846339689101191545866494017857279974239906972243953410621865080110038340003729217075281648329679101331264544093025724392373202130859365485371657474392589583121079809875320285530867364222290912421601668656689928199624182704039798228466849230264674745289561223164709534947745751411954495373022858434820005415045233547244396740892886028981174008828518167213239220938790350907785881096239782543052506484273324867389053797910863225188148646882240514513825456533567242293924294842805726542611920034011083576810425276418966541239837387939912679092754341712277133560514681062927350732099789561616079517133500148773704059230695053860888184719043960398261671368916098117882167859756828840201172450977337759526835622661633684932706146716262621058844826437901678288859032985627070559276103636564873120453544648868379603474739391065337464111921227779190733329500267545664082030237667605896298002966343756026175495856142679412487914457242562697188473855375222200882282481807453790289873046201286452327521603821574882710650869874802414152166177493769438849043914567065290716021122616334809709178919335266622056549649057048602901049704854856302090156943879550576253094633134882094518708002432781060420168965925352591586860836651544386755627926945424845224130171654944132857442803323154788086627573519741432816752196898464486242127181402861761380377453104868226726541596207845604257398399092428316913560027289653736465951748907378133813536849500418824134058272685146576227637963302717541498820650802297476386498607301054137325218006837697214710646016585972428766249379453640771278279178445872167660569620352812439069657410291390313264599527037627041481058773675869296348209224632800700255001874951826704114482194067291996092865733317216351863931342056547098263815208322311746633590978293272299213648003860120818084495024906307647341377349892181918627369105856869491176868594386233577578735142619724422922213673798387836230327848690324417093800291253312003838870086391614920730358770405762404522192852188772176380987139290609005487946358997922178251002099168572299360765649427188207136673634071760418128051015491738389733329136025974824483282381624411115625118983217192853704681061503162227616742452362175478806649338115967199209483053473745313103646214893780537901057009561617961784134502010103877141669593678519445288369479386588574522578921015618809125910426570370560604124153970464579601198946358380270211559446464759057468063780015104979660391804143805017199575501981243458685128872137897892538976663637795947528260316080436592611475761683651372093216949255733573794403669436620085317063675918079037533185691763906164088727206347733432893884123562782324452745473884840684230168397320223191056656948583763611814392700918720535876094411782805659893987719854385496849033442008112606425724750095840387158114913887663894764377171534343308092183127081237561677879520822569939534130815060814629742937143658722643610454293468868251855693985308857839043561908095910047432074092338247492583321210087007311520376812939016221796760358071379879700519287658286841253167075781528324850095855771288521849789437725942668326422397951830582042634513566616364797681512992206337438023579880463179601502829604831769581512720493004696541303367618117330536902289723431361812663898395901482390153559759134368149713814026475485562395671274207860376818062078027598490061802072761158222949392892259822345096405596341451393562885328704566015392016399466013516830410089415260982862143661141825187923676217864459745918662728797847078200778261967006734432539328713629361543074815188372190253034534008187278016602411794816498828976021734629869251619612253007610043927598343023903901162048637247474655613649583345257787882925190000464976407540690597578616000694779928039187949064660087064825042510328200986031231195311189124967939062991201900279284955341158615140953491459181434891380009644486568520359738120390022440869395627643419490106219739899225462061143626487450585149235938606386941701568927919069560056421664859319076484187103387195651829020410952156789204369283332915833518810581129126170133397752112756069916827447290111802250125306399330753349334766851518058289307231273776466191567313246915450142991772797605055576559234886255342698074539562469035027334207230691832213038082650378849018414049278934933213085338715134760568587736139266383351834123826605628382558938578097772337798863142002372912988879562436271639986251798888745654644781947145098044642943521206109776492978110520930352521210700600517254757071603408711428077317554445125497408905375353594597221182896203618832744324244437780813829963939241889740346684168726816638711973776978748921094666396567044973114329600254329773267492601634790870734027868542738749930266714205257377904803688364799141288310064852451416409579842357186720066612779756275398944692691141273466371733304104984162364744628014937715751662798216576058663871833842590058268464031493200550480817100043750159992435899609647102301286976662240764209939740430534258823564100350240229170324820430155714885055034061612576094493122380995984410820685840249351815446619439095981701767827753983669229370296772449931335016488094411860993123303143083395751223105353729052544603098958833280250392415019636896599075776287245115670802029067776176081304335837674729443033664159290526370035660332242675796757446805266081037748135169440864404020579189559001599989153220528002069313740665593463115306101492001944361881786030556251579008341763401118458890397673109877191125258413693371528330049144445062633536083955448468358384740270820873584054967416989739836632793546359320121279772894690718184698823588496106009938708617608693480979418059759523503660220949695413368747398033524605793429402823678283412083873992017308517865591269848666794951551108896944968993032073953750721827451188438003723142584142957066344998516140539481770412913199702639871645242565750774119750332818889906120669583418128204415243939587903058702354348036020477595056507542242792868560811914489996618426299282546365233435838339091997043585629255756066732209785804335377004980262356961180167772027742641188896195270788643635413343323799253807349674566357496812390532619999103424447750531130223693956116856314509417672817334622464101731141392899012821948713274260087686742205820753643572731616358438710601632806887079932253677737254798173292531402816839038643549028550579525088562198413437523628827048633787941249058568259820039667157970139320760556675452096320717412433858287233980433929301129912836811125388414547811797699420058233886458378459614068734108709473213680682054539756183091515087124627226345786878236318095249948279180202585706804089322699826874679184074222865174798507352847735637974833329177587953837057442497814914646302848648347749341177302348568424320259440934201737899884394722381989682542666775844716736281966755971708419113981524045822781930542283743566303532177674159093827859032384840077204394967656775326251477952783881733229401447700100178331324539508966889259764147090703189255725585658026586459769285371861173198249158728387064495537131681439382006394101101875054523922446774762773319067314360102145218596830759608970320465810699738061659984597961072216697275383666399558398491895933301225984827287731883415916221662764538985264166215251401143007809101166200583522414465362514021014518545313975641421834027864797138427302284044976670701447714897408761850386610255861599052473444507467916290422826463584328726583519858411926612276124956866492461351541767202895128298114382015879362156626502328285483794203529682452482505240836112859483935011712278658568594542949401922548330650004151400509046738820440225439722777454938343656004446906166782685664752099787939434630080892726510777961698876020988664087362683691012586431957166836076598610719107085150283009684509418609477891305301120413369025826864152938029828444066308992893764582740274709799936822445326603210004294670332174405894657874606372778187534340210122437910589051821347960725393948560960273165797576759580819412129024647571275996393017992528258519069873880082354740763330108330092087418961018214132756274194328220530203521603456445039353714662872489233220437658831617526336790157760501948408994028621955363970296633633666409875771096313893137557399454453335590766299732874805026228007347553544920652271381891781623866229415804589730685810628998115700379220598613068687156109460977244503669910676793992796095094850515016854351301484942324271826189160484192706370215527910362025842678640770267313028712566456135501777653923376979146386489651094411579445448010680146523041922315203678572627498753348214256056391474794469010598978587062315542467560460052328479308567512407937159456768845739090266292938008520993722921058531157640296987623951120976049770603249545246226646226801864270781058988345855958145199565989611984846294090900659058274047408571917370582192781380696497756644045883590871190368004943292038591834014790208516332660592360524242172242154596220550096199399682087341073815043363246260040440829040401150135691116213311728453415532745153299942794043234950428700336974507265064165232715968554000547236296074211973619109986404693589998529150211227669298641154249848124990622823141991274443433835132603647399905881687924011655601482874427547732474730662862803409737748944299840983492948810321237443685454341193026363873259289183484825065316971303081311112618799834690458915007273151144068308380759708501725078388070977942086587954979562281174754786043342747925064464822208189963165397028223999212659111139618546711202600938894702070979383319904438338277335622380936450942209831920757667870976021178155814037057806636932911463010788363042795418119458471853637569339358210303026058093911440218820818026095489194428100127936268849845397616618566319220938927071719940433727957547016613357770610804683911725296937830609419891635244487901691113717765917393485515959764740530759944705257469644038010357508812482744086493585586517318926430210887675413299049494307895052089720981183900774170699905878352551404995199292069732418073550791195162096928412667733450786170521958721969848147082721176542713516911707647000192971038376940586143387489233028876731371671385140815299497110137166496202261428429560727507509475336869814545216273948066212969393836257825316133985251852011273421677839231417781577269835257469605874811956808608423224193766891523351356316520757611450097396859979875479678827945108572395066678136678153382482964885872565524978110423597025967395807017255874365290474781402966276219658060635286752686979484628524175342457568666218545471229078413964523304357893388928664090001758908850539432727351999941372253598981901123898463120224135177681710182202082346387555401634285854507188239900991527491085321150816251203484787657843191903943651054192609128264547304345830692730739173585135094540214961590436971753003820196568483303784853724526100944819393610412361828236538194895324043711669949278131425218335712998205087927909700030655250042364933155595481515896127367089861785695560571441308741703658603770153842041578634356919127466421839947326689593396481993740676282364118497599412612191520184965983775595974875010208898758233804886581613076797822347542711719664717484861687986081711859588481082276289513868261613371181830324704743824899268007069583691973334031631018251876779829335669006893114545428237416511578557146000045419241228725129748929005124568645052057445940805843624412712982110775571537154201158978523125421062410318425301066940430025882080377667831415625714136020152894710160348836100229989030132367510873840300071314771232833301748548348269606081068081931838259739578218512621028152508323806735360309875310882659266387497784728315532769235410129674499251177073259571302218637194476669885679270794451878508338973189138871118251828744337434767981856406654747155009347792774416056851746398377909701988838368492143628184306075981918449017636918017509635292746868500787490437534658512505587329270101291382507271866934335481671342356305743558454712693101494331969581268456774332399798336224777288947896066635674575077224592316074238917828980891422408086179965560878668791171921254093569946960895465198255205386794964071036465196479802522046418247986366901564605161494229430724448667607327952700138371203889317362755956595299561186419604533061182532166604777953911749277390159600237885475462394638631024717622508857658359715567552678438307701289805927481240869592527709576145834044583944667188666843059011362044782959566939252054680786852265843470607695567155913096854362330742394936769527810326378606044555858584872424707326615766642831110598203357779159296795314917606515868308767489542535107124207162430669114561769087453818077875661545467620892126991564745453823222340936121944881685706924199073080854611110171533821327875734800336928696405324215386919678173816573392124689801331097031421112434766520932554720233715939276278837408675382643327016636543303596927678369276488969117812449448337123361162780268995265112972598614570010295519393767632876080077854538640382378626434535846828984825167922999970145973330637453203205887062017000063114435721241073695976513710463094581330943899844357317523832869075909945150807150215860259500743087231689497455334401890186340535238886386919142640855002600708971172704627512140498194748435879242387999568914484348770719811985429646319253759037346011239745619469738657822525451785037513296085555707164952486091309272301460482055966917476173625636464888714797648746503301785071003548525643012063781977049061029386379718953402387708929075416825005616366351704614390902298970985865150773683414054032926369004572207587627225092270844860004137294135765615735579108715540482116612154722069100006471889622261121602410404912579810276649513672726471360992623927701238098675601141049404633730930951560563318001731619513046102639790339722131253460884333633600558918499186926703851147916475645004390989725773684498157473351170604476526181571228565901308690349067532607552959915043853101860297420688399793021605960658426622613506186699589376601168340547012330230342625791032352473976022633509963221659772803094001056402105397741550121973098774741832660310007723923329358179289183982030099896571865042694239153132695722493284221802595558298231951156770536099791451380783050173175402516419698853118568975926178669121183606538558537431939438686883696725487618792901414283100795990355038630573834080289377759395716376323090812283029171051746109023345461680338844645825029873499699937365764113929390847644173837831599721833822202305671922015155776018866268140256565983123569302587769365078997131683217483499289912963021813752449858493583370872383283438132673126496936740505687406537626127668535872432057411134382891885191145936175014876512328352082944027103773233002349059070270966118804420170102861110579753795428268379286455901754182001643492234186975584605561273055059193318187046968630834441251058968926175260125475745606886883304841732619462992122881283426735273277052485634153252727488761626165866037402415895890168883126350665103950625542601099569105092517363565650928527427913584594723117674825826522525464857714320509954290291357782060897411973829053084561407732796423420951967949103187062424751838952831283487896222295765572822351615464322349531763875234581907508863651694320242517774989818216471669905012482692716641844033263971035950454194673346391442888836043939809542334857522575371243904364873271138190428166212664747361420683811919815450140182046524195818163098621241796122174792917213688283520182295888271387183545423375848171681697657190633861475834048518251523603997239977302219942076099178096892120509628117417454208287361027885639843712454249009713553681189694300079823110986465559037013005682682284504384300934515968638667955247162580573048200694722863856371503284863951718452723429013388396828126845824537313374676181795553032014493819883443621726685058304090634418798515024483165077769404242328776012705567423688444400833124073729735200234578905630356669785428012127493958491748206856611774302571603313981308579841118237696291233945209275813975506087219060926884201410176105555084599032436529452311496931262005590979851750394371903016633762302802023130991928220622352849523204334519118544985817016691438583477298915352539791482612815253108751858911183909573226657510724010114228670405392141767228830226255265060934833352594918706600228653808350281270785769938563645962031364873252457098456721998095143469872890313889613127247229133781475373728273586116402242921325368540620117404974654168226756498274245914222061443066556689441458157903077275770488254516079719642260533044479551499816284901304679877804256484592262093339621765330649904591025518869914107728107734048266304467682368638036679046780016878247562558305653848509818607032442751558297919958955461808151165551705058115426750461921642253957854796039380009617373368730711692410008949171047371856406720862509509584565132395965113223033297525236868607700899477480991044272247745350920007859896905544538085857592618358442546600247339343683668510683928426915652645679768818103031418905323371614179359429210328642605741636098531225725816039205919334207043104827431509868488977164522147927389742282276625045172890966902179931311937854205560109281677407780340971709739444683742094708967491590117909501502892444851358299279123086875993196110572597905336017549324057948522900573645567913651257524056200098913959917217008211253352982458197414773262887111635909864278571550109247032026902872823409628779879480444482561830295247895454748813501179222994532407842708902225095384021262274537030012605344781204282274767887502949627199734604791218541294795076671899364327299098232135351305191704971939808931250986276380487309260646007663150195653981357348383446173977091988317471706267435114318492779370305875052375967265549914592520518398884841786740874467379108792391727104737878562002389339542446923809970525414996501749900868956081408264184788825364850537216977204335431963007359231906282904600149776131088786917744279044115177788730864978969179043775162529804124062192693799768889561576523383501064958847692251530667626243458077012777714125756695990791576136366276346080627831131360432827485644788463966111890045629566151828628194127912652085231843674215295033650718609683516530691329132668075804622031595585309263989847065546836874143208000560586306795728032517054568717379268928920079682144449967378128118901939599091769152123748671717969628985603960814044696369013062895928950935972775283535206274867047989442814918390690547064166463871477486504118022563809236887666534092690344156971449051869234421182138489463154459170572068486749019400475567810862147604850005051084418645831442437446045113636798904458834202342091976857930752373530270270504876389312164143224255131803814571126651778500608372565259130222017509583055463213373221963183268158989755580178507136418473903863227703629380619757106715556904789706348245006354898388097973715161018126803895597890785904377539273287101761786766969541116197418474903559629385159531859663692265123827462141009876631198302180303800979496533952883116740638712630091996699634709793639900651503888950088048560895456154702944179435616501820433104367036182431966736623416982892478651170195155991626771058712456323456385849724395556675793222656007530469647172362645614343817011605310558227073926003960651643795609575206337940738743742073404880103060032578946542208771119871644943426298482655841731540373305144163054454345928961916802840645734824596816232380521735483838597662210800002667025443344700193063752656827093499164899436154889986288300754754235134303991450916040139049306355395767641110422404628248150253087375596399312639527203199599327905074754584690480524372291565493052525691810277677713873562651993220887895084294072001443112502378487667397179324173077204787495496074956027274857138197015356035043314260986530133130046641846890754131380838808317116434279312615422778081251304107979469849905265530349982389405783294335181455865453079622988208063555039261526854653003817372633197738748602556583144902658826160882571994768661203314606519722868415973925075774568477028762429027694279602961186926711426731553886743648736443826166095864757168480386950728770922976818886914550293920200921341284939254919849254850079324369600751131432796590404553675858444138858250686492712789834797857576800932019834011595001289429738178923908422609585012383547056433050798591173902115444681804907622600700912096921006678165348295282930727774223996710575830303081700802334110682884339929357856643499559686631022055944867644583978608784734290966934659948458906839577100785185204374016970344937018732034697501230281233207856546250878474798141399947866138754026107186179582226819193430951328680086267572991814942874235835820334398357760006719114100032123448025681848567697713650459155720916559005312475356206466456370923778600672602900624091007760870720253733215218305735824663825225930740836981829996360548134122118581219297628125374357657558962855477550415776242699373248327724536408454440304944498240827654279415355819422650316243422758716137436291300701742344370418254821293258645674155613205528427436756325005379156029134583330525771385321776009546296542410543714464912519805222467774412578823655695210668193699281841320028787971044047892603503146500457023705263927583056473979183530452846221196474806336252272857022016138552730502866981385212604814680751767483132639409482293793864762985906197288564399965965000762749182549962772725612028295047922224691502410076184558342147075269528339004853572094219263614913251782278881701693869774278432715399362981185895655416630899984352985760218148223955992640742507132840876994852156490129035492562907213301131298986333312452948796431834105246868733522014575903310887379286395407153722719905961244245204390044438774746083100279493904415162443520607845456152187677203539094037863395354009368553934819505843652782247687899889390197250949300441580608576467331443643413192998851861025636858720620087878958242864095960530064548461415022467317391305489979361542122076741272511821381812790425314312706839048037860286256814623177443150689195706343492248664890842298471230083911632399338234909872579760103418036385139811688569804921311921482179761568518403904789125571386063885750426971847604480645395372206476970536288226351271646783761321948713056273499597187969871463863686677658799610385934634776023629212460954947856957079059289263035869199428377287704213593945815604688911940708952393966111402225884922764896718050740217813958565120635455642214945720261219315031431122584045187911542899136889125928850991861519435066365784127044054251826997715093765735635234134271691281600982166172888781954341774849202625548728413904548551657310043779907046029661075242324719932259543313563548977323340605102099898862893599655589630736945378202397629434903767497398889746886745499429561806466256338032826247703088118954175221603446481274433231928155040992126178821290160215400977285550950337076669890933613219326280243339063399756644410266294100058130056728522738769128926913711233914371214852245505659206978550440811799339368500525628219837649160178195664135506734106087718090194749031371167447787279357931169296741586751721076445696419591133585797215928952641387205487367153286648463041165845400530925977669487337846978541720338694568077378908548993575848527905225570906798780394508986480538731446811360093125392126689018651485004106694683849087639595310947376113485128593416064593260008488078365405129911561113483331991578106983516908721328999974662284941218890163121673848761779768749602551154324520122181223554217033015064209696998962482244204022946630643969043855372551583092150523444163899235094564793052961372461436379543748409133925327837530433131594138376658510316830069609949359015360811568757221172294641018864532441715845376376088057725892096061306025659530421626334133955529616571825747690302407747297066576387496629594257787846880095195703524786753959977776502260020559038267311426819485349438450343181827608040863614215387346328323585532726184306699114662374795044134571178393022589098094605494507161495600346251422196714790954975982031304394008968250305326786407877307821000723188747259223429714001908622134436135037736209265505020699372003824457562589759836197757700576080894989731633606254632785140479125236166440545813049882646689812455231793632362241583714973776889721634423675084689121728745313967392418499304949091981496759556041405142875916905929749527361250352736201086916245851555546832094162525424378990965518331573853274937076165105577289301433082927643516189524705419329346806076357716280305347695091416892097347912924156425123813629356738221820264220524988073966023626405367841954749397266212962232802499478414732251327558825105295847778562500476653861479836861071653274348241078210936784447074825405856133698456655439692854149589501136540014866996304236736851413551508762634079232118306048421410621367386625191896006568864472228440257638120739282720740819712490854511336269124821559308518611031248852780935582903354076540886564407236976784693721120719243986432344975630605816167571559245598081047015002298207456818883424513936852627202758419225880328756409930616172143572853204450965198496012911212672196596220794671608333500693741730659563334131610621091025104760369683306600546725499005551720050262475295830176674176128740712378567614131123237173802424987840591670366173391568927533865876782666023170412834262244756126794170176475472996409895892194362158828035436879416658812453872874373049308377933239280940560395526628143248107773624333476915641021747629840100365368625712706519691737349474408078228839045811984888943040528435365543611747207347033356371627175175909872012770464203434374129507018379550333850959005809036808292559994727759671687948966353194956659486619362582468213912410566090787979010198635011966229624630590929671783538797505234477590867545797075536664271778715595779646081856023224525064046764261944386054551439761906389975725053238467450517332607252505188897055471078687488730855851196079241934898957793538067251236742240461064114828705413307058073227285279023781579619476078129679319232304501880597319585510408011637999841344597604382315578851955113862604877622917367593302461539729323455605517464033938534425986061922995345208157943224740391827375540659726169267158019716195650017895715608294143608194362615503938695775548714093892660494141530177249848559722758611377803962008750489802356382442049688820648488259245591094015646029990083151165835778697431460754415905826535122382270774720785902435277310346864648515796597490929536054396560440866366420537567628062126235100559509784416999901615601651087260992642214266478459900952471347772329830420741516305875924448063745269236889452771906372664126939166344708167243365616231004469979219157992404247118842258554306114953309479923466377623537483164767175814719796585606036375094463079766454332614558482528896798032626118580144584867162493311241575863232014326397843633834727006761443682906878623181795935177822433712276906825361397966192273058176646208011191497755558311926670580480944400966159144192089815039829017708393655688934059139532082771215145827896556922168625857818853905670009022329792866405831253536407382948082174633770313768353660580964174250889040668180725461861460993354655934931099052032667703694765479056797467263474576730935140294487814669881414739972230935995576520831670271500360149302889507741371237188764044385156206674245909242975628251100774942611515064875686975953097795405971206413434694783393729095764535818725847125462461222094241947643948009191874435421025617734745996991296748188376332383733011938964212035029568098875279161866882699179914730071028710143453526097566430607319602689526854998878842482736711541314227996889149052513142091924068159025011093386600949544534878497201871876270670079506676690750828273715163570981182661978813748022409823530706624718311660446492080663518888136789742745021291865340091757600265299400188311530933112377372397064236916885460321080363795996280674396750224735382713138864087238399572214649495337791955085293142812016342960670951082543950230194545742583149469579805618863824437901289656110623434906307083776491691102507972358328239575597971884173098034483666262388327425317455743228295506252694873516563179107851546420825122378325771130800555067824766408234171193142308438719087351895935393136090384114454054206398697903395571088153995898199310880048291483443568933385999051127064103433391299905572344674161780125240731568722855951854629231771432489000689073608855980027759024177025031468511102023737027559757040236231487800356183871235331171751567886743771128534224104144611214034327428499361327501051746178875186750383758476068688764547077624047239833305422487024939807088942995559752623096555389241349075724605805902754716513350584015025453417589228310925601908813338364811577699166106476803778785067458564623387955272252540218678534505118415930122247648460488387129964962082931283638752999905163436312652277991282559425372533035990819577188555826227916913771150817928917038575755430416172149096332888578021694478337498500155742651042770941556009437499416449792504618688127717803502647115801148645049314082606295586406286283912183114659045136582959667763661020558160086826717229801650433878293433925448624126051390870508341710724722989347541559191415274417767816999037700127131454522678777413476409502237465290752778313478626882687820905511839029508949877675210212796989699934524024791899803119212366903478030844161405161180663551263331020563019847908956891482797407440479018277298455122571583091595388509772034460312830323031115758354762242740950120070902139681205734929056300776409613851582112940917198252008570146334186018536607046496507286860456339701581280235412650831259375717323272637050495509054629794748764328396957687158016579611324081197488577175363600544803906451797545236245823748064807712629277088764654393584158802913135236195326733253908122750523559325725275405546522150313297379884229713804991005644111460956319296092292622409676931173999118954910770944766476895591502663301285915638991280175292543789146357970762866063357590151381111264102040134800728169843734077809093598340746943610238175732644714137582611785038945836842979994382466812804441787936374567034259488362828958082201907712959104735547969302946958727443607673990758158945337977873601664926047875371342730691587376481398470798627996955524562821802727134296273651273175638347142962537306295010182158673015807524814202787871156666402828507426944995798635097424242115398025741263528369786586250747836524283151280107707214096693441655706564524583667056369211231578595019931969429580518082947745448278191610273763702476977468557606422734456630979403899139512028987238244448422998313322091846729080172657932461202156727228474687666050146203430599545999253456970578090899308702716451975897683217803206790700981673023423802738411829869462834611767050770417241519779577832967330220852188725151808107254986580689484802786048555087007761866788979644721874309525755774454350374062005208742759925864660387103264654189241988939907285790613852785533694342871222410801492214335226896357965057071924867148206240993603268518323240001052269840399865036341304673696426666139591411199045554896660857898482221728659125529408230660742393490190263231215968071477860160337301420254272517557131918829312212710951556595695062436432248261913038517081701194183477595464869858818317352720718833877269225156266775851125278146846584292251164970168740264920963242713531665496020548662218279140196378111022222849555776255981790684885120411129244959889835185049485679528855322301244620961947244166891965720021724639672933183221282235561282923110900997504112934766191120070096410158332037382820898513503625802216710094233532197761581937521402937646569978972536495453588437787384536783223602835313138373616627220608426258909898317633619811464318285321492880855933867496883953101424061186570091243222144059056142952136478919445039779200922929835282815011167776114405864869254334339055059089293598684095455803295213058917138738374818694430575146990765047153030106013111732331779869687888538485772512347262438615121873363946211667435858936371504395166412476000853670026329573607201800184737801282358197865477257694436984373141077288128146383252594150157037200697286037469483786687348521793224550204612652713732467721810999808053659343823607635785835285093728997415470861651629720190796285603577112825824028419080251717027760931021846955949436407149737155966126983891623547963516906229818329182913255539137905433661862079861133622050003063709139036480285707741152637569835099332787821431126400503489019787652720606921729090215914474172424186722229306107492567395697364844240109408905648397910623454725478226688980350268061433068082289259169121971985113996076376686637891325003191249639919632151190415158881577076354144315237563898434471551369980476724461224637249468992231321132741915292584706432348067483500149112881913370156557180922371259526486778296602653323920549506377496520940499740810638073194670400447235028813830535841321513374301123473503668666400164022643080440294111412890835849381298463212460235831923222945867572909644867717861176546781285970579969903131172580753398086291516421642921694782831241531684171624141514982496419233995487515012317817412280026729270333370328496873420874579653768377381259680503275336932494545633048590735389915236263234357450363374454372338149118737624330082878073787918610247979857187694719334797100729027149117920915353594667926227893284445077960140847632873979131303248862307666654763705795885095271391603740555173626095453605072177431877877238843692396707826006776038607172293614762889570652705126073618439001282283202214451281436741836784569128051815700838780102522279819280992282162520170376919272352050267896499537983969214323799885881425719779003948818763469743443592346283969852141922135641630408271477427548718268914918249545184289129933584397133237121453797772135870918064070576850413503185037383883102225715074522968865754642438642963834432579635086329052693754380677107610230186388668423839587052766934349715642861876277353967725229636413091375028373292646084652303290104725591122494417773667488084966373452961152139041425529427365997602774083698567891740141673983045394335197471240116849653544903207926208206349036863018452800486052141816653533052257441644958377268018576517760618612425261787236889039937215272953609045826952053332166344114111896149671560277288909053487700395790960027805551041036039810106173277391934104103937406144909965658016416253245647117737742910413453814860242063001439729486533983155632888248128434284281469781487161251725546840351559097336653716587735468319545835087901710496372888710865171549620324496413679608754646273116123646955075876762109602731598799191242676971872163196098422948578040865882431918757876775884309712124101022925367833989149121987246132476584856567704464424010569915943979771458458428566969617337731879415473401585767973787722010413540095783948442036770510185088486557847106934950530228884708097887690966918799100098815582084394568066743989303451501912885303937323460933939277397722668419362582914712376369639787625008410987938122364376147610063905567310538810569506201376351115518044886951029054204472911056773865518974654240328494442260346772574510242414485742493551545541407594927072361778589968155869453777214860574042787050377693125479033230457366177748394859143771081859642441976151095547082302108587736320324328408542456637465246680230370426124111495942277136843456338585001923148670318785079478958360620360366307435469486327171860800862390248468296390854337244656919938407557289024514879598828580468584018102617948260549686448314852115751335015735688187083374090114048579794001117272052766255241396142902156639778761853173860564815519895709598435904831457413980014725265258165773675660290582940027738063374287394579451956389585358436620656255708712081275706543610318569908367610892462181242467085648713726031651059217503070599713090037564568043813758874076191524835753254734306974853077014756698226881114708679191317198539281889383987563889127063942427759409330895902061700267392372643081334027601697370524304486601264293341131056251202877732576206884638651271429047831004668385992664660713096855285156064310441372275207255311084976049668713432480388422709057510254985485473806106490983192675397578055776345363037831432376819825628507965549795063019553327989471906179229198397084458378374085814762925019181204201138915231131310442534767836079961650349024640118197944485885840714856677459385676164766114228009215236057148168233562778905310256011685633259074369887788348394277305836521034084002388629936670724289481935480673063681089054766565058296747682221620481526116137354593487998293450917628057024818042944067870367539761242802422420863863829574448605305801320993854189582933366934039484769867052527371364466608170712829181630238236150707528425194432379968507144477385175923862995603820362272076704370538916540730517799609398437867533065683652886856062985141280473972940596952211765289439059703597046869385675299358824707737440523846681403419795319174141304010293277954828930296065873380763657660310085220668445792904817434235789643539475722254516966399005536785637315570528980990604875856799928290632266499038799418017381897564153149957654926353621967107731969077122277456911561406231550097200460394334639444720889630864232096528176064658389035501773257774815936313680332822426041037266448426160173955621233805358316138083122011070313569078965074265265999045143820770878278189384463697203579256629232411488296817097277541850593837539931790402242871650020979696027863301697985722077217413086986205862416917008315305958690305083551351896836312297739310413101089298489536693976335603602517121765558087300692630438950471804230938886343646940048901909403888951126172317139584758049005936420468955634533913059259950161452785782638500808972713931064036523296250888666428920660942432966051394672432621123307741194378947614258642540620387175206968697865949494062645050394101651956969329957316060462509289039428765194076526020579844101704994147096211528647361687062464748253209411021475719100227968727657619396995918569561906365780776799716685185291564220306491140297678594344283686289542828927617870445815843994594961652094109981882780785354098594295484450510358387930067522473768043539164160009235464599303647488320852094883963590395159023095534818964047697963600741647214089774583285152519376297761994157488682325180549968263269462762964983540441127135593589172545025701661887409613103574720940311338394912988914686707534979599556254028415428625541916009712110693319530845750844976416512217462745609930041437126023877594350061664757151907739145544708397368906828732813981218270297001002547735419397500147130951362090085143358000409115078551637538971855313776126224348921885683099413695746898848945781117075317414491895363534427127039663773477349432888591684899772050559321188199274351059441674281651426534125834790680746820156527187348766785634422978359624086204594061635322254529202641382866862676525977590659239461390035680147609114184142058827772184606966970604600919609020853105089962363725373052108418730073707952461329383170547705456277973425746143754685277356776891468013768910310161939487691027963982285598949477922390978598476689654496007075917967830987948641690259923318485029193190557819169843328856456662718463577658461494978348585618478307788217029253566982332151954277648431464737336661508613563047457764876326564000558315907390618091552943522023544969156342773479162047836742481036362259365051440767969339061965743481143095823552412094619761972145730194510271167979776582761474683296243659369174199836065352819867260627023528690406818406724359621306355406171277255485400367168478501104181097789122320095215140943211678739127501464172694505255470039012935899158072330127290111007912269674748008940071787424098330035688017052759387848438127341995484396029196511803316929031340565796928932291655163412752392246665180742292287275558846075699865303398572787231424823039575339524419341220567371757636966854286138942142675206979532579153494110106120432043491460337080553068736437258332935638352914441969823876616206371257957753491364268501100271334097486426174523678533043722157029821234752435687666272709347606676881493421723223731806840679473505641686744002715232430245804624675832430046729781359401772157115569294384446298983706899145684238558456060079348886168263913325690273454667247104625791735465739126335977723047249778973977114465979663772507153073849412436663383766100127034925418574075261289438690037119271895389480455296339769569605030914541459899698770278023047448464607994167130236108789772739513948819154756971506636349608527663783549156422004281457882351731049833147875484647245515649667763641723318122489183401188688704091584235021103251498774051964141427448152171881282444000086002018735345280609565652139116698754638534212411999883578989412828454167358740736292018259827611680256724121870785462180049390494557100533763827989078650476507763215811190303775068681497843037817324928665919331316693105661363202852933956304043655768302707076846947719509704728849940962280945427166971678411682444581658279942021349814883272343755858202230331073444919371183857958345855550822161650632254369508333258901708140284111792493704441534420428596646632376394951620545610429361688830071293638721361858900168762893043758419234518481926004108959034791727525368621644351987677772527771451301928204867743365478642019690306948377581416863844309185975662491161050180613627930440900647271263753600207294445560780978551453797919296361692919871258696959489969420584105579879052240636285219357477117178411343650434996323712550321842655431922707296385189736949720641149600771648167369099553128114323639803097175828832805635423708537109432828580049673165106485836842190850031758634364358686428143171763496185155668131118974857097147012727428551952625481610299900730057870822617757902076121062569668297544825425148732543494083316390497714758358654235459530748569367974443333246409890327069187172679214612826948626681078105460443437450236544086623664339178724385244640063883785025855968207701806861899734499186846274999992479956362664951014054688690211412158069402592844008797285675889028660293484996569421654751381551345191566913077243396854149706459468159627541221058370096725598763171675159666708609482920360982398481262463733259520621548277947691536090001692932995607590735830443741171116671634405871502099324371228644546259906802675474970908958759067399336170427184685944072279877233439209863533889202647397321579549704814568135712215413335237820800950646876825436265714929606272383025490686962712171771945240713594267619860814826044535967627883058883419838571494712780474614705732941811226721030532163040219587375619844931585965961809013096801653913351307119936006001914524709888565163988356250636919535007865189538879176625988031504266436792250186771767973430947045858769079906573613181275754312577676895039370477345294715063591621704009403404601296696475913814249650772893295876069787632431920873654103430730390639776309477574821001001283911661953460153656483092598181859814347398080783080935309191325124485893442366340211683415348468498142254568738092014324334962330200257232226440420135745440198387948941791326814295710277073711218928787754727752383067082717930571008044537194924722069169523732014709984879000629588220195901729259331562538429778766473701245910205427696737145174810534505254850059306464238570674745087749734265131599217076495897461740226201165983605553974901388283238565156526046158902369132246638372742523863841825201965996500123053797893031188809590244673228686925275035930538463141153285800303720440916708225444172101233691676800438804390005199714359255537360400188232041491624324129925089647713385794578411487389284578828555975320157933312432616404363649300209850177958073442995544137085546723432782350448542154287371405079448057019481908654526313676199745776301398673986051216033243207449736126670770364004989285941792393372474201337078325125275931024786050851995289709925107301706640842338374232445627819551095671343140061595873298703949406373675335090963363300367676790294263444657992798479010290550362484191776070937030414091892895007445766119832137791880041611089680287658289331277892361490657288794816862609713434340389472205324308317644639756085689990459908627718969009663906763163934071758250560458321917792735118728683950960037232548958947688299347683305458561024827117430959481282054720316945280264349151442295261443318636715035830862852614269837782545467744730712266556235130383221587630343348009624694029307308858414087972273816434523884133289858283049526173415715388150365358907029604820972047449966187514949734838344986354913729467195978046627095913860142125915656212166694343103480558473780605443933698873897860865373549209350297191257119706350652479373654547531055957767029665412835984109744920703444891488500179858089857886080017946360590399282778255625040967621688489942353395002051822579042300680363947742599207125007579778057218590088224938664641665592653305902540589705077691307836215712894089568014413607071165147380430883361804201083304584570159572018744862719231824531680962349315834206229509475309721782554189163497168835779836479611909311522683340092317499198209966999072380376665137648191613344846320781320735353107321616972916420653453858100477464141382741404718681374066819352222617474916512960986230828978199488568972500182065056557858435841096882882453397288688423097464779018225988031831369327059799323909345767526140183032021969148659527612463049495245767375152593423073517548806308991718435067178124837399138443167298400692609984234260319110330679393535163668451787967656620458994353484548541070520775510629691361438902612637762829297205829656197076016924732673681840394469761489348031102320765433402129890847342478652293584290611461819007901529067958049131518536813647865461197482779186495732101934835062314541233828078257463055129464926125287841502172200137252891441886982378788297874631311958221805177669288491359230568121718810202146908210645958358956620678566550039285224906569559841298156552730204927329571881408737900640206286635119879399018510029441008190401517423438146158154453314279775379028355723455501419858879064146818279240733158053789997353198697115197743433283006474163944107504104497394169129796111351776989253081575382285635290195379802003074276578810609929266750819010120347389929793431271610160758572036531427136083902934850412653075355391685179441019474264227863333447163211148889021082802779625289551981703468033117783837010518720502823306393720354492322644862715616687883352456929675677971917822163739888503869309755592162026377442043683461214616473140369839294021434634378719736998525858993959230336299085839790922718261476700676890753133421779444799092853261041170413521761721451373589596547015356504146717635777608998812099884341032025578881386598158627996320690585051442979273460540608151533493642175530819316478491915995211729394013274462515694329430540590742156563730284416865137789413533732016724936083281698288944807920825852084044078892665919251709323577648205323352556238181696179400552121613875711451806410111757110477342279887447010857456071304565401057172011842867988601685477945885411623126070406415543444303312300129532677923344898358196296863779917035633165587895853265601295439774895945131982824938129556247992272867421016075925915768847179867222208862598752517162792884746177230392240572507127572657007855763178596058150927377559622018125073077037087289917172971235418110825314204035403843360698626503533120269030474267137601287041897587447203907232282060267300289054242146695616099513883608296515142609304739937030285552675171115347747193937408943451752242065174725969174503118038691313621959073013934443437332455117690780638086656555167353706504148961294321763612103477556548235013779519104457771656945811457408455659990173116586699875923814995471766965009169751710544192285744260655382603386604249572491462777906276115205021613635148289537131365541018830229176540855641236965774867350422294846074746037811227237575420117247239611332845788335478203177449460981636698475292279514122128004525333148790611267414920815023704365564339737492010244154715509801081813784349234494292912682290826649770740449455685530776492290835710572941613707979205361377344501323654506215258090272095726775270239333604805817380335829733465320411446565734981098788081204702217715698570785876336524977665162182820938649043541605816441385536176253267478961741552090660133287506362740594564075867422259717328308926518633224400113173960816183344683009504139275851700341180798746732382197433590700250341443766475614241298456161143162502347942791844910049172706793297965673342189203643365409315894053716915864237213830439185100973707040677158676880102464954276509515656182640974102458369355467803497671681578383376507352794037058871683679894374785653199843701578293984113875383045354815712588038051979631779894182945532568208030238333944683827693961887667094059891932961572105421394982545851152236159720514358451988038943624874051927914371707869324856093371987271435332119843209269889951582922059347123279292785248681559541850100005719643186584088813154933313732500856588905418519577917302138480292453736700603481163452780374820367092615875258117365544880056394498982779731369518673626040403479705041980529077897205414252033419707039258719748037902461084832611772141475209215830875832234616460463022924848162461257205295217656028469170704555604893484417839858792486908741174411959737347631119616873707396717043912436736274038037680316497237040141287028105462722198673479986447161819531137693731389997481144835247459073011234804904769779288131110283920429735618273237875618926483357972181861275544496219895949005138581064484408170078352740358637339446567324494233453198609775384016186710644779172501970521707254454868483102779494459735189023371345180953176374776223818209859675921837329910247704682657281732558092550332050565843053764972837709443367991121620330726533243604927563645247923564513701188438033473968700576956438659067237963221909349850224639714057503571279720964671057579816580233532646100559388935691869497989691127596932667894084081174522802183174401322796566230189014295739003468958135675679773522415048676003229806334446605478415285525512792551220495650226670172422643609043245164606436551101055377792778794314852426354406425064513086947225028825721711512803317571179315089911746153798741374103148691601460229372600797822623949631088133109803976830221316518331518079588939024111932531903103264197832007996974167538292351594919062503731004404096992398004080724796126521177882931600940219520612507953744839094057080239142840915200274932256690907468367198355806667321329415961527121118420580155093346299703701413724300870018447588773094364003173548824139203038851003712564637174447065363296595017703850598513317273263541961000948643069452335511477728118130296221432994499633642001863487167093596344192800206139856400856617590647153014655249507172220690483820069456523580848026635381085155947855042946715114058876688889829285207138568702299634572162600408634742374012465051287633367765774158607817907440135088031708035153085473112349408989451727793900618793556281700881513558676959529072058580083697559314876853536938614590654221738230617222829560189417714486376417377838111809790277673402005984353254859568721874955497374214792350427164063563313864122823957231176671014709773305902095701774425718832898516304942048577963011253221312862826790128924040632994028508929795072540729114195873725271233265425279793704106476026602054610203114628813961851120703402023221877618253753243372778554979486575308415090573433276963926008974474643827108513344516362404757248416244475895647161599060298823419450767378694978953642167364806022920125740000474408069133989954883007960568687055694321955244955565664592547037457229393758134974599885403445289415056263284078531591643558034167724771500208930914397489921610597262093052933280034395155435205126814948723300122166549113866813377118668978537467762459505817332214278973055251583573845993752136065469027844999037851648977502159752072977464382662483720868188325392527230577471061318867911863451857598972242289378919729407368537388050742655253217679395950943816612334206943370199799431164979848228648534514350180988492535066494539879291415152069851754144333408600479553085807285295432938171030950113200717792376313341265107901156493560109621498494874844155587091665337302804330029261976148247365980864618190587162806027878098834664945376103950609132616027615666338493102606915969031196219360169853316344516465726877134550389841638648016929362616881923247179915681532246552007602529765219466456863021942387585940167378059458754885862067160038921148410680602388311232287360573572107534167785594481594834041345790181781583858375616273198062379726726509735142711369821649385872234726951049915924234451697944437736161100820270685674154231315066479897187796016715783886378431926503655850523108629023329157215238418526661469258342602542017306292813093048954241016938319672979977767009741290419673037417700348740791619045013655981967168148834729336095698973157216207123739209480929720614447212271538466816842174374763195853537311388670957760795464881375692441932400007424754434649810860297336987239453266883658584957637125626646159975883294230789675166934752790170893263753544289451348682985010293380024736745336247077977612569922455735235572856481198844056958011878574144446720710893426043278274583807716762656049603604511378122750220869480821700166972283153751170768433138755234026284188174093880993603526325333624698209403080408118172469810197431714308823405296144653633605745564603670599794692165897962209391927582617876750559716845217473146112269329859603404913649464994029356167104003381617849342247904827232286134936300400112273650611321464379688287975132156351291255273864857589605063710124006308468707115660071851429993492086240712448655420633487980890661160679270230665745904449845304061692899385625780883850356444723615189392430699603475850008569223990365278250770702710269876485660206094902647099589935343259864664606773846639236610449615515490749288953765318072359209811617335618307589095841091844420086014501921728220028148877583264162453337399353405644423232304536153563487105423768843418230738772623021623554882318900673642784384805579959374063657235673289139188076831072738034388388896451250745431342282789796284950232223622459748519608100927438228565834712878353766659900049793183145244435130398943904832705129644569888697709161202138335433157474293027537100361999087596939091690206207131083595237101301213260412731983284597121595921678904023770038712627283403224006040610016876272320884795556671936814599976378110591472237116991203373643419905396026072013981518568984516491832192147914167023234047263135564281647255399568026114716134160234005888310902103964578831015244542267627563763880483639424702367671381189380693392672624514052745191846134871879599852821034611623489883198370480006347749952855500589102582681128982095996765094606982634011870457002309734259974205076270508187945809034035817584680216649740978923262939042758047929863372153191329460901766130689525487289512315694103944659131305376079377433507669043240214163628040201787883264235760610463092408284343345487038417726539965045034545098971938578831367062439773992403878057570182200507433411852701387857566433578397311952702838431316706404845382267160549870976620202541696410882967839102802495235822534828228031216948741432763065126421501592452915330033616038757191555088807014642063365899225269520189448763749806669757335706766229644851868140526824691487951676794186993717475713377697735651227245104445585549259607586529983224649061793507391354761610850534545560644536414331756600910175513059100315554486202542632798987429755890615766086702067062010976810181795650867087794888919586876985598528697364483517871312653276883526639995878480041254937806169577487966153504291963431309289680419761456742518044722779777643893033282459006828451321215577216769072320635880990433850897239596475126835933149791231578053139179829385988175447923191797962030769850682641485539377254617339857352503163500041260197462027344059596182413830254463228435659102338808036964994742155260858018593568738847267920152554470827908781975326513785970045015002962803389821185783088274252582161449450260216546736040222032492415211284273321940763536605124708403189583375372030022935514349454601792877726742457967501767695708540289437642163983759031112915657975607024553391362928928561866185995918229255485035792554713253370531075690809036754527710840452632578337900435575172157936125315261753986371977518895196178389199114965895453248201597402135362104036315634836115236978621608785143730389299997432453528219233402156547490431697229874935186786519998055786247173441291450352750373783575776891962816639463796646830612854363262040014832026270104328410286434305147699831886438691701263851349226862131754256433812053001333001073014698016545916497633728855973800269140877083629141225767384163921177606431404179151488114553080868522114026811622260970299303527939123516883332951894690576550523000354778360594060382606573569899424495669645905759950662318424141110572025369648597770926561076471162937776225994966413491300388544369311294615286842391168026148564422618833953334530580777506610810225709417732619955252007982562646311734655968752731835565902096344887208174290926190044050647740303515831584814020054477725499276952757832457832363648402169925565411626417567831592957918208929974158502680347964617575951207337606623728223509153745923194816290768073563291161264803523109714056604004580685820200026369239024917294583291337152723147968045211565598204427272405726148177017275954657838320918278263681615399543250898194627649174731586679674109501488313076206815365295747870307087802817284551109316442496735349281306032761237016014144386710579936868318150324655792581752030041000992947472049753053026903072929256675110152102527849651430059322065524456892202938732558110187379898026227225953006771682401173957848272462879691315786130166523544918333579305207339543304996659575234144059876959354268047184908747661867783112972307187437923023860134764817862108220974238787453851893236777850329070093439308565380364463143241266129375875088087580689997799641474106502551407799217068048983391784745876853466939761557380841474210596754305339495115020654606356862639046422253130243105849791865476130011063597392577233189963711591293795877414388356826553902563333785248490523134246315752926196566872634320915313105215825352237464210379943669705041785050575344382154461968888248336169808738030036916032998551197344215458347229485051800271062519196275611911680909781376291403694317553741635294656872494630306755322368783256537816160153163986925590974978771390610707031813574039131979019928942467349813832710729473341631202105100769045128718822404476967444269945662401649725628514378350553043465326773045833346668733989768605785082319414313913174256336493722251010385112513126853152220820127976258733871050217880996287493243130864335558471399773688732594776668305593220728124349027553505223233948430969289314112322724022405381616028143971962975091393463115462094302458664397743256420448501906122849904491443054174920185121764602099843669265518581349326787149718291939977305377957354560392547570305059698813367872130005275283957485041356625238120347382308294938181211535263059886887260345563309153163551784261547990763528009172297246549780217705450672511375244724409049369806587084214486773804805965046302525245745133760723071881576152841706811165965781801204136852746870949229430253036199788151091472697635565086263117825026122816301745813124270116101864417362403381020665707086588376216201415726311845960516036052121419462468710589091953818556428033481800491556975257212175831197347345175755966671918593536498156552145157226870415972178565105465358923271968127583081164352636245997234026734680408475609801994692536851061940519179456845865727637598668181696286409971152339805724318579851291977851510577060819032870062258549878540464410121810018481552431603014036092841493755758658068774991843950998371202794786580067553447136066075174235213564860807880487624063398353019651343727064039359833465132137052359304607011722478075728082870537653195440129042620545340980330297396153285805710311214134826350831684899197922705775664240744865672710463479733283183910768641938814524540373608248615218805594522228699644232136889569525231787668386532282003134542966682498530388850636434784025903238341137989891443090534970040374481831764777775246250999599048552039769020642049129749105072805734702653132226830531210101697987567234410281380880516102258957041670183364039803415712965622231092357260695620464011608145995214918962210890379483152390886105147735825585104500145090705307346617304267127068107516604011076777444552286903270794080556147553220187911454736072350349455148228216527307981553542022894367766717569115563043013834143201362253210552991554461480596683208210494868416171862714267643289031340165294174871720379599760134199771601295517627097982252212769560201240625372295799832845511441378080078804407230398475815233738817724371613556751973528916978339903177513587038330950609187154629938121971338619120890218551130955628830198456685891046583636450352775588400127327316589489576874622681459957130524180979447592658374172588016310199247859112860895857819152701296490452497862608862233728382364915368607249557844951830327958569163869079881087678242874398426367253114796838633174853699223108201301676258166739568830686952676813422880339942938604664827710051062640593416950882832217013237389501303973310815273302787112734330978550396389005148474486458764702221109142750201155825552431945491793609323941895404221326387912657298934567084620301309791906871187838594939982994698424677212947892633721864229330083360585092770116776086390814987510280529640311684897118186817395512834378443256094544466006964563791295461540647210340299859887115576562872093474725975773680229273183911103459549496904555924549222337529130592337446367810211125649978164386218367427255293610780701382818699313485172147136396799794857054907068307820034012281125895053606411697830864781068925530089466014389314989893970379204954881292723675192843048963982810643507656996098808805018305665562031486358608526615448746346468542082470910984159572359097470190800103603563834249139954038009661491666114812730921567444035310562454946086716226548517198589559064713859942839248793007058506330646713043973872661662142767846681141004989604663903435880714833738347938738824506420933158254970063191062896400565740982676895105234589767117971571659150204173585008338181210046846441762198014029742804755165533776937197090203848032794934078150383370807979194291382761340023426761805834406545917582134604716499582016699836793071366390277561804133999084076658562291874122830348833446904605640165703100222822820113982700973271172811011611212138639029322412306359537966195757261793148193148171040435325717326057151980834434693039650553845230629448197202178292580706397675034556096183073445714881642179264630145073742841256550371396086907888046919473484099004510718370203349304377493479532006251861671075448190609349508562226320062139767767655822285257994265150541215172461504974070056941775443577400095234385993482956001604877997759536275681544240618475549601545850674971629683434996121535043079431399971030955162848239593498504156291637411953210895927503889423466251223756004808253368102824450906610335179258252374429389498532374272890319740677461000681346554927198683977229532335610168592115705574363655105826749899577555723978345586828866061668732206078091728867582826301444922273616327874719877226177446011592002656310950740531082317130464467012719489222769982131757239268231790841638443398692473678228143878885412974659657377562631586459585087899178288138873526233937070334203940323058635072005951235150181486159983085926639750057530229942085718265437054826529513611166324607518997487958192301308521416857090981635570274958277610751531796764728272026265758962033037063940260455956246365763747013772890813686508638721743790870772350133422419951789889046728841210006771819185056543869991486075219756807756028023131525719518096315226867258389393878772387333175305940231410405894253746167719582998626548787701239960361729778344805861080463894714460367676099296884723196896697790245314884238405683686909104681851063740432670616245097328104969665067624943624382744163576557137307907163718854166426465230885371091255235203607472894387136568750159722929604177011882658842405174777458583463987852059111066748853839245127548187581606352948291014702934903498729526468975459965963543393481214646617486370974030753927710383912874913390716455102216108125865606930926862438032822825247160914201759821537180722289069525330374013498882767568743355014991217692347752857600014249024453256242924533270859877637247985102369652522391406320710743533016245219316950742510860185347721892375974916448913816682948540083718094960126274726037885969402280009004474535035338721399563674223842947852553183059188110264751051908231361376036621521876142164968285822562110050077036517256319420873988975867693471833210229412672727733641772779955810709360137858452311763511814684788530834053106988966835503533745956486778623039966175415469755306665288206781750010526219077911163459324419996633258417590589596707434550182876964154817991964308483370798653385605105450626462109277190060628394336159355093240727373202899474861846049911540620009922218995180452775970236879043980998722207688283536986284380452380759485058399459533777343935273055325643633109947200455078884984914540501759676326807579225094774679243594025472076221504437622723225586647832341970603573115779494345192029667063428291601691611141780197769815927412439480417431072070047655672405214047640334266254897769650099831343271116962744035936996738199632990564185100840622999093242414272582587563547638221026568890796470258204489832082016584032873299527627302587212781266289707587141417970348116309019989956666647727689232371577074001849714675898421919383921665260251944644667590043512579856474909359041971985498094840312583871974273142396956311197406134746909609452117080537535114798493649297916184956023624640161943356780371742234163149396841876582967133555526890236280725495729594096765674547278600939337876619907399079028501971364575787405317685729887945721113171253082554826569543881438786680431247505236858076116125728877100000957083736810153060138515359573421392544336647981986137516490146138973440162693970210192656536042689975703340767240745743357484037811688238982873006757229610891691537725746243395116062398231350745560570877563274416983594635700009416910300814508783001102612064966401367674385241701716490596482856998044322489227348806307539469592438269199799114158274465257091213785454901841643710996971903323375482312332289765683645413212662203729649496512709621929496483653900522736331948694103221684805661293634439984949577236977946449293734606322283771149898085660113076349106708450018035141889900114766531941505163025170397224860202912478559420448603339458199934538329660863082675706679137948250867117968253510548776660226229942883890276600276262912998831106505325375865679521190115107555454316331778757896763626360505270416756978817123718653413504657153330409433326890665788869248054683429897857702498620489240078486812169851950811283196405906043196825937100337009003103831362574753824423186600058958563390082365981864469341433752603751597337404595203411940915606607482066850237505497596198756718380146291711822558871419906821263747237235215445888026484751054186816688011420475979075035641467512589828312524467917242950839194453808936059390833757514638318016000211552792746880640355351612934486047137538714786736853528774905878788291159213972111392013547791082424265639839813691350027856630037937543295998599501550035743753285997281797304959660193986298297426990912514805511292002229009029631249170964963544930593552267092822318209516466141963701204901176631872991296077787571424373349276025008245344394517976508103360108988762147503474718403594449190899272849385596117773765778373406365749623191593254801973266893980664257042977843866135467916795067125750376045579092184899114147554469240635964641047260220584248304289105703147593967727094196023479769835898196322701642009838986823157497154677100540774165621807743997448882445479345561270300520694928664400156036206086958654650424034960809770076275483971239804608744100445507940038030414373955915812267627883719672726122538775311198743067286423138536802032408040560506826566786215935238318709265441010377616551324504428585357344745667754277446979366028221005267541682107387133510957450234607535266776204633001494921645173803127987321230702240216095877372015652741853032465762913280357608583958672275019379992924399143032369508569137958456492192434963010359221584081640993751510452064675606453811217359485326049816251505091343156580805933728815904109846257779628816783683500153386063776543167483126288894697776652303421132885315852859134458597524493093548582948261796434043415355792475960670058765551369963311242526317557422671825854453556737097867157539846672800679566487258850391753815098870930248275922488736282701747884256235441173897792415783863966448344586875618555715216245271863972681506261546794215713769511514846317182315347584966774439375816767467340402403680398579174237435518891387239951551638448168148954475171963939509467801974433382800425713241670892046354807059800016607959187180632758357265398806962554090514676474049234085636273492650538470977834888953042577499166884750193516081574857385037868215030585695609807254909233639915382064141473809501381919436463053922414343907725524225118786737106275035752356441744582323412863132651651906663524815341771999757832029876267787898030114052883626601649042708109700142049147057214417234212430497172017850957486182909231873489405822006753040052314986325070320489422004315636416276121947454021877079775021302282104885867211265356796631832074479353649490543080055586775284264858120715266965266205810558134166395449986067301764924212266781838147610065348638666276009328456978182300323019206735555381090543232916130782828156928522467975573653097560641733666240528514455110278237598301147539622962356129382012033088094855892122948990747439997451053986966427955439014838505864879449517167792549942733112877115817499617812290918694979938658953743669812732668874861046165603847420639579649046679697883132343091732635609300464521938956568962542116197296776327653381617763092321454041885796971956779657529538018447914228526501339057701564911306578602429005010034449024416064284537360478588320309116301468714555612279755978722333893658910566852853494650684648202462686755559888632342019776462060566075413048920193177849069634020419921607557518376541469227257332198991162456621349524425654764512220005209770722494371434787625481301854484023521134859708013600735322836076096215981375435463232036255491104127930394167546214087832436349744060107478793202007136619945737661580623139330925376749833804861481064908828781618516731641853695091788425377944635558483317985124457558808986839292323565271929938444285390332975842393510048966799079649765124418301077267251523203842950867464784320047880781929234982427374989783131410518622196842133006467862292864735566760016932320753166721967072920266080486825863018002881821583266708989708533115791178421181998415588484814165654207267427384276249440833687638436719343262748086609102324222890014734920579510616917447285991113209450153472239599267263789380801653755145940127135508911504462774086556834845035830658773040054136648911950801377790501743512668896270788160310523529730278195882537160060594587291836564639042020358623849423561531514476903281903668445090392028745824891225646766953094237761685023275288310604254074014299698408145860017619635799313498724283760362120980811881835987537956047308638708110710239353277098081743065954296045761490637928037173720161552485640688469213853652064957558308060955570513447627900506285346978718643072109486740941755762672938871250550454661837127354991506753655019059410921001395864153367530007444091264742962580982134157325367760603128093575337357416136623947957019197149777603220281708446795924388621896375031405717025283186815253250938804518894196144277880047553538557085993806299792211653637026157758692555210480058208055989581030015413073362988071735795946979148014032909689603138372814926105825273887017604582082397948887361254255917198213813250278129973276485395856203270753370974486467381550462676926799539244018736556820266393238767973063408635919971410589131671460763113548403236811434274904849070102086219244303192077922998842716011813609575153021076697103836029164003269976791827397476188917010141890606818744167901477472290694406029407577877889555050382737406686725811829186255151227694775428516734104511557586801876655596253516878642486071402932611379995125160155030670701102590139799088156945798603223859030218211360891966730846532521677012831763208800027814450241116048338232240514224300419419489569681222970032898276182418302665230090176348704921680712067282264301795657436563306633017777664824204934467954924440242966203017631846474795793092194353064639348892018373662444153689821716787005431949176995151675447473140688334448826003320026010174577671907371202466699235937702808292296900275265078054643381599277570256045734268440741564832208216446701110793047508155848329696732746841267938840968151848795015003592067117229084005331665845619563059335402958135105370879687737076034852112684698715176147281712770582920988000583394041653674574712207063360692107973591367538873927387237036834019625092555645851149657886854974368641230664631692583193738349276564778140627046163515718538027075374202648951869660129035156610902230321841422812872910839733127002079904312726349784939758614015669868546029886417350097002779323550491286684964800252212178309003355187615994924597967559914963686356186674580907928667488169440738895389355199659227098508265916065627388657600926165740516263534759585230254314418136284953187389122048645550051220790711891960866118814972303383063777455408978480911749010752781475164480508970408204857748325966761935048784323838470613806874389326581451660269427576380044970485699459921641398656511155905655916754332799500322625573008376864798179212308273888785213859032641062899969385887730307558882415856731328172457316745267355393257238209159488931115788544816254415817860702680539868500286750934560190131894317294715770136980821006806137998576332354952989514555747426058949461618148790775380732501490560183525093886893119736120282826691672388728710135270622381988277883899878332647177670405427043166986816637435623593885935422345248401153187458934133990195504215076082762563199255894636304554870853844508072940063385405800844710359780090475069590379739014700431996527791556687135269642579185070071900306575766761548271453238540674650762252569213701436545510287477045993159385372044416201730788463138712507091695399448872664669095104903802276481715581945584533493673492230187326157893434401971303316069138538166095316460458402690497972125691798611156758097213537448964401357579543560178603130816162102997855217047049462928995763413688666942903136993060727880767160587616677058861988921524756923522833684991552313862517689755322032910078561671914984397454700223510791800777744653254417295630218707770768029663034742534162624758504206627986972853482075164460242659164281645333962790036293332084543598622916940496429665791809155693980947182733111697478206380095651014030146143084050441822712085361007564500031822551758075101167253080469271065727827266923385816298013155660617337439143780675547280389540815009104978691384569407096774293337376989066853001479940592852758284038722728721777204647229633762471195603384558877663242515599000928820854780164348981729227168280246915589391838256721872741855935592960387794894662484594638557113654020906716162703209507320657933736918017086037163142839954752924686073390498460358381719922809823860686915638430850817398367291077099932561250721903364522328932859530409930960294515361880860914820364109666700817709403353767616180745844808379250486693780818637417702589366307717571501641811046385886759237376865185254603855384973285462457613031654782505013697975752808505505471133675877239443781859679637935109184565068020622986097492183307083117445974397930119266380669337792586699996079176960971986746215010584182756059188140421360022126176049166161836314359462148781177259372581859074875640535178446291147175040795388666279017583014404904816024485651307668944947164314653471847387680214186756005605501177411862188122520035505785507943213604727709951406387457584582637888891668371336060786234793860121973089180817852677542590290669026933334875795303472433058137826838481594053132924273066254946426665031212530929661045699029436563040776093583719372078606421161320027464870924324782135456808668507853321921704493497926522983861198082832732160645484614217400905311985620207588012499567106640066180087445042474706097054105601944418119705371153872747344869495423082763704070554373765240927670465338379587972080534088145543504359548488021459568263997120426963682863867057128005843701831140773078244615975426914013460447590818102538880220179638994512071070458661877243791787001995204811303611064038529935477308725732168707419064502312036634546179521391102814192177140493190111087872359287037434056229763738836718830811708019783781210175759091175060505387094790559944205437077518303356177350686111254615634611544916062378108294502116652725347374148807355768660433667235685335966950396965463564546448874860927065826409946051285555766233900200114895018394316440896110384708404122037512752256532014724895937429364784539736494295750699072174853351051057231220127407038542039537878340952269519522106612780966594984301100945407867798113925736223276636437077501175805325336058120582343563308282042119966163289891745918856520889385883682436581806785541254445191636553832212401310148493271802165014803726370643747519734478468952275219622018361599206237068797972915489143523336439208102302331161181608614016959542074583878470274921919216864676863596289648623672034105545135702715933379779648210288920644050609602929241605383410520816388809363145468768548287871198475788623240580534187322538225372713290698066488599082636671330239651335528076862782722873017194536911154678014260049835300888024162612793429396860072072368779668138149624479400427022592882160155549089913346904063701799633046049547950876754605183340717985647787712677551734819387870173915039107004817392455734303527662537841365183178007027855869254765632108739155160381732854011053980408104212790931374992468136856093600800419130326661099713213599125759438314969812364783777820481449879948780693366563844553060172934449214596619293949221959173621771125476536112274850592889537608306442450428298105603565225630426951275507909285084911529685966142654231561528609908157569174995761914162709157217589673479398287130937017107218814599329512171163483913399969015951537497735943017701595856540205975948824729605228972833640711053115070131659555829495344520644486500677658594434437337905235991507434677159801174455622674144638562004820959352941187876285177523808968565608696560525960428340351287065051930280968616127452800845788610526774954788159281400434891026416831258314168312314983795555881900034378613107040108002395980591037707227100609717406935944143731644493938061434829306919484812478661633290155108424496173814033986303397697543349555252360415697661174946933858566729502150647627407462772861449423348498348861826824114237716247070406125520427101910393564357892193936578887242301993964600395589284778895689209584676386924887128772987644395357575684789376086481292139334085592946530623939794326298122779717459621975307462476788429692306900446261603057429534108377911449247540390807102854686467121629626320192221337345068428907805079026477168332069472166706466579825550459489939341076870955466716397347671583453140330156100307893956416997853826336828692453346153879483085614660025889265826156050407069139902807946958623939503466799600041847993900738627196429213863843310132766518049151750415495529426121319607019708821989885470835612689013344445471592984303135663219942571962168193888619570660845199543594249567283191815993933421188183102085069910212875929196936305893994209972638490381044269647530380260590589253241672475294958407635012172833592992455184893427675163170695405236719615092395155084576063981132841675433862960387987437421193237122506814121937376162651793276654165944406080779717344960771746455347333015969375095194969987656724521580884224174813766566497838555549017314179353154331955479937510507611413506983404377091011052665998787798428157004018408267528006967201710342800749100315286037301113217355500895588095899849374231851545704496028160990021778328306466822638777971314431352018515421107845616660353114827359838167622106674644666151839364337606322412380603845077848909479072000771443502464493936846615731326189380639058476241346155111408795899102416081706085977341840806629242669073043048910168523780173557491004458415073706896950482057642951074122596302470223689571596162869359984112685074589599825780814902480465085131577933799985155431220999522118917478937441725049558591528513930906318556687113769060644830118009994131040500659563501483322433594810109849285364671208651362515633307314132687371187726473906007936434575798721013334045032103425165496221858829138331363089325822878245505697926271598434643401391159508175736777282314189216881741833448429392736714281907418724302977922112927561266520792910248602395187969712772736101147185663446495858327245318572034990352138132096612485810118142752427499087616178471947787351781100613292181516912086299054290793273849887232122236486152479754168096724436986473148102123010491684836979286943600031864764383706840712714368993453421104030923999533113200847794980796464243234206593224150790308534354902426942328732531781691951658241801707685661920174018981823833208515272164766435437837234066454629073268020073266618029999849257855829988721673614122513806491630111754472373279680361496723538626289109606756613602260800099070919847936671635603817246733146493651011391873903454563495522616432254242316106796066709831792439468030733214364651840522114448544375855549216729475434837809795527343245738153657623958027082984815787804328140241668504686847220906348408819580155543481561913673647990405496816573690957412729886035047856449774229199336151509178573959037634434375008282708598084190564077279037766724611901292259093906402409118141849247461014209048655146359907242242734521413670072017319371477644584794312318779443593015696470886228787053481618341290996938503118515169116515150473466328963641469785097320589868005099933369651276661954288635296870392013153392313253392220474028193032200004023164300515960865939868088989643855817633744555070573441241415881841069640625242279915203083389558216098639295497917285778024676753149280020204688394777469498132681582500549133666942887601041582022994522241015248922088774762422765549693273137833772726424482259216628932000651666967586678083840863988935318157110233558524641578032274641562140537014335425169047247168707540257218216695223274739468412812370806503581376817462066277403331341550056232455076389074537235650458328964117309658691078581772197850758212337544517816811960764038965480414755134730758947357671915268306315871293318333983343066944257995647448284069141991627322475640080985529904193576154515515318372340888569394372749892496317136415719343184018941728964929652170193313254682919841168243529518481600061720719265938697391206164699932859609706198390234736202187347529996135880787641809229021500064689146093558660334407850880256543260318244840086904763202743890453718293702645830719633367229394271691697961188776428376788378158220250920112113804663238446746676889243803219612592310962812579666827592294726048079388225659826144686551553584458349203193297147719553558279260629375704207344598355154758457278873934826077952177084799205836617931895644101177484724851582971555950495492990673260809263929873592474331283644559174788238605523839104101847913116442752113607641044058691692603677017606635191037027689573293377848559826509145095587113547195001160440290963666699339355480743752973411200870914923217014190626948149882930452004793430648796893945081737168148959336601284261803597749176318257812347527735757516783316369961154891920171656578605772707585038337469600895036003021986872554002377226406371701189706568596307534243241857551224760610676644369353411826801493720203199544928402443884222871674713442739242718574204915900317637414703010018674737806391570209505084580199538206845961745500251613049140157147363791762743510633114410455886818141258828362358921336830798970381116009129212310732558542653876715429043821346676918213976273374518832162553729084976852394491410671258695929446029781647275318811553826132549784145887487349091890006092280497347825418526092082375956898777713309811567352406963766847450237129420576738585346115290800857834796783251481147679924023102669147610602484763295732096351997869114978309309405276638364661126307098577153419677551552670352755750763605838221919446352350807459966170908815265072917809028168615825391469503038345386045192680951886325195277018504881278088916334353410455029237176215330418444063601404760330105951914157207446278446769736343102024123911205319358907047961052759983418377770322452526263665030121926467910100962435906441255672360085841321506030963886596423875729094720252555785537744655703773152601753196720332480666129436069592140621656286369750365576329935426885544867986199267672869533788396160637944835341881377014194183321997736477779953800635296272276315757838248160512342033442799279691228654191690271825367826016002438693017505925095988665756102750884505091278316356523169784657480236873989257676956756390617873683164574188597057851711822839974362577195232184547822997396776338734192449036802842296769505195839399075346701053720574662268827849758706144901743002249250051383698868298729160932660422855146380036139502351938456238500940023599278186641056062109865909118340155141701817113652818229995445677629886044750086583146161874354265173960087174332557537798035499618284442937196869306362678845895676858662054214177103561368400430391438475119328640968808669793760141012285743306352187717068514206605205778185844227079569638424570400806326596446052062137303873290502222457265537568736411435180218553162933282469856448208870911357433319935260801874643126086768252513782510388988517256968941172377569974414845637805380896934613803370462146127092980878713840968000498828648803914835506131582358505031901929507435214208492122146334263531808288518446998568868524463966745408000493341687398712866053262484752150987938595500590341007282813466630832661769555698187152124493329495514991397793364385507423287027330558021219610533106794820424764239220354102203882866587013855373798743885762901471130598636228892561759859708227190222861238463677793337090345831396563724421204233719537519724992593860758904373222356084061750486330463442964262515220931596969936492506000554422644731777993555184938578604786985566821730404352374339031440480361460026533782477362191528338654580978512158666606111584249342004244353871061743717527011375762743578482892945121707058983559317981059683567017919604004496785232858069930690744187221175027204222553386559733973104853528098193581486485105910749592564275000952069422580481638532741112212533546051770724046497120719076382840346226512754006928517900944663973404122896516224927260969424736804730244202431892055872626975714545850883431747947058093533074859919209289831331888869129506250147223991074514796054565385572948241747318325972775023479396216297226702963923479992406755788774584169663950167505695461772177767550411907704090242624055072393638936389305367359904690354626775535568391039362094329198147447891439128801916160828032010677222078066809615736842825352812066798426766918433766232872128094698496971894990505109068106486702951202491579488896587019716565527068330493461822973503827056288591833973763426081467034154787347537329232780780213476805824031894641205557301664924914166396175610801953874302540312667047521895994516069749775304108015253684302732292831007933324709719916480971216254754536482556136176939098130173127246965200541878565960130737857455993777572707115397980312912608481809026983454455588727908181172032341447270428999792914053018906526359128192074002692003651495039719092646093298588495883597270648413030774413505656077560970170482365868124969564547121561936747619473153609385619925677712714704424770803511651695167570806127133314963508905688543635501243687593525810443729256001224155981468975240528165537927921889745920591984462621622455837936928573979459412340284643006490788638650258949927177922993412092753201285469089892545959281138688456317285007642709307322236662193482772672680633812107745694075477456908078278878115088409230408708162305088607542380733487276658512221944868450172605590536628519058141723886280981438752491543671548625528077090459030757785214987923941733936952058610597827231530093406632276131154896316734115045610450859910269751082592166923556002862025033074764697542691627477883675739007228571799145631325323834027338276326828687299786069060637947201138359749250959623470214961722490178721177393106577847843163920240386469274281608872401544301497348828817355953773518389270443641105228871982475746770832644422171830754416153043709410370772151834874466407788497937658585969014039448332116074508262372327995920301215130916410899666628417128444131417898580487193329076707852836633192056969798860529028576323273745551560941126534004978171486084735718365076534003270047188190572508502083795748732594379372379719380070498140619625883705644427811080804395389160723925827657410606684091650791403263932306477489149362805477788464267359723824278079018957229445768143597969098661323806176472523638563019958225499068796820098628711472033695825270710927378866992744720476746268179380517140646554829311391593993868601180602921545769907576203401072956333650227711614344744885307533024107489746158192423413248986544956552565309283609192944228081633670119470629642138170082629473196192744010287677578732528581203123597837511510378418275938897812791272759631029857390106716936776006387008141875550201135847931095550928418847782906623186216489986716929629613205836946086047528157062030629278004722763146608114601979855800153874240989501953446586726256096569991703305418566132464584874367625647830559073282997556772516062891411400358631909767598637173675572536518301710942924232766172542205439550440658370756775529882897228024166055419996363586068628986402333345147688189931967816557328777114250683803809088550425209193536735410326925070764581203703900348201515656583162537583459376874561177102511947267487262855726103388303495362261501734133656369618912036278966902946299663143556069833148047947567519582202768468566248082649966670017357823888459583698280282577586132855419555248258338052665052835958231524210747506765240066076641104914543686878216565439517782268919571135167251032131904460238763347168624641125249070757416891601040135176528087203960753829023019971940653084993210547429158536625736480690552864473781584785028814059805718595547749686854559450857031821509802549599405152683005506712880102160264888286818789719751461701787420987106259197709614572644847329737639329513306002907758403280114993157232925005838438445090002709669847367983064441569328470498714681841807363754598579552832909253182008723311793946597584257029470901796120267540109227114760586138512172481166867749781654201053629408155678475992413956956170056029709111576989997545412634708739902494866728095125171297109880858434804785379653787531567944344566796436146564245907011679449137839614049131014686987550094724781970724605486147450721632209277274495256301711276933632069291976861047144875842892330013654159109604971243588327519421134234293568187956957461621651112346873806099489104612784230586789012317181968206346324789746190400905452608763920262015857309753492698991261467599709230280131702004289996269737079073272064937310344240615065561593707765852381284382852633211903425200583903813194638388608959200921090491701249531172518034274141332442237926878021207961005632349648632773149415408815453513318758553621027139218912224544384166576464717140646116123692840539710020099770624015841317788241756045929822699019872004228484427377179152544273497772376194655611448489974279810486559316659376052441744262134792205417006413799786295754649031016801614533527257712486326901289121193381850801240562336776350108734416626851258394882108743225348144452787573213340959371490106495513024168419596503684917639550419756086203131149545500312871843666924329511046298619075525317550178935852005487978505145605944749105177973050398225259418208975856784487836782113017831424070596752648151840088248719210785966095141895015553190707629755221683708041690060015463794363882727234127498879713905557576426202170054045840001048871382190416304724161458274250219863348134488401879253629889882953806743687985120605736836356939554806898927642527739901908578013065605930774960907660532132604614350469337341952589703090429956037982698746805137871239021357843200824646159798174100851682935273082705480455656592368477721814761588179358157021463405247281324507641378291849945349982781796721153700826220642365901867852464503131893177499518629770918889424759959443633323611448703038932872543626607094322999238808513039051685913463105203615821852940314622008886382485124797119175140373832765750042180645129680004677705618268355747213681178569942111578429604578817183784442277486918612607530803630195001785188199103117477602800424363709081027692836821184132937830847805049025564101423456034918052007455030225736996640908982763913777969270836879323207881931835652719669678566441837392083245161320011007292863280703211663337576671585136243859461481184698879853757349973340699057679861366836240628974853906528055284571846037050949764690913044344373862881230571832603471481138737574986282518256083314910044265785989926775494943553639853416380038529892205168449111505833370845710594389434243435621211502167899523629656967425313051127676096483797529255940468089680290696463184181722115864111001573864152702595059659251683287996427365334145352133458560685355141168037082616262317166144932797857268778830543656503931920547877591303252047591120258313793148469370569953412084903837010128839535168413612754361223087199302581334554807533501121488734013577830250839355304226549168873767075743524017514175707412956965992250796428100926079197532000993463823697178006533572210082648232842303490130492324783232124809487610286409033554304016524375217435563164190675832366534268246552339517624977208832301798399787328994220578906017600761479989162442796525473082353118771626650963022778999557435123897016929348310128296601474946324650582235426845779533063915575406425616119017206473537536594467244170258897470448967680996459751223020916986774935780933852611835647569371330705743056797370520927284223460515312219359566819346436008351300326817544750571569302511407981187842641903698587492866853557251492064879972429704987382438990947384608166796239883365694394750416398479058701701031403212860562017819935386279589091227100140010976404251548845686942567047106993192577502935860833085203658733587975945661555988888094391095592950955811467481091503750451662682470430858772308191436475060089287784056522594990247297265411006072348087033448317435371857917771767395415692271564419671540400475807882356554493509203393475156610415235879263968259296796581251957556421217051800557614302403243750461430911483883867579140954933175474957418952840900856215048706151126145635092980947998931926120708638525639528435336940637345324475835643181373050209775678547814682330938499095565906778309333946606373896152212216479843851641269102084181158789086820570745299459679266408740880328598907756829529954857914214450360919845231049415811989106392044204434855689779956815261575716264122249281191764617829116610796676940358144607046032166476460310449386754226252796151016421067469241965878900598339889144863996232849132981197746494921195809759361332775548449231949032939327409895991016263325872010199543200180458991537224892094418537782352235343297981282718431766466625456045631306937346859308923618496923597720380067822790644416229287169562597347921889104062870529908858903744270717931532076671306977904092143031279861872594702338431871652845567981534859990992196992843698109391967577113747267716958796835636137398645823388912875982405166708739737938185388814731981359278187305808559984262607748593205509654855667992296276019696456941973884253034752182357447835068601477457178260499690820216348449590228486068199648244685149175076686654640323938129308584217377819808486675305732868136145694276141471673487937360762221354647766102667752921997433748828904927621006823522508051865294323538939234327796739292445590289943596292545387302262934877020445996025835079402781826969778092089031463170580791860385331619205061337255851486133115703875084122848865027244174624715694418505678061888829005525923140211271602508404103423466719562130833120372471745607558673138638587942314094322246202328554345011703730700910942365635827605543500014088137481146130047380870116938353958887988900656462235009680952018799698840276267586047524098355458871463255011620628646154711696342575515525196241765456708793956687268227208987190075170225270437568798303222744658054574906167470123341201803073239090066284116841252886150851743239456938214522902126282113391279125743344654320444780945225079155839038462079996163470152364310367047621256555837672802224344263204560311753457851680950043172452231814522377163530435707380567169537790233722031966853034552573574778770045952580529400894055850929320379817589217791510785223321626847944039787779438669075876024960036536583739917438378049758219078473117116461251269142450190788748470351878721172708478510740510124517684132012021144827902654543165479639061075129933022502787636867427374985714001089462167653421010336258425777815613239215070577791108797715366211702735693132790007302810151664085097742879391682309491115041015830155736154181150169282573064908741750143456960652956576870217692831952882451426085583993616230205037533350472689344670485266883684291889383108460502352010018129894643369719779066407848453123837205468421258811051268040149477999844070086128302003340214107575932862143966528582389123046687759452268123554732325527449594672988195076357773771096966377127520877175000681159894414784337735947998052609599303071566207296563452218039990789542634144638619534082608049527360604455614778074627126064705986250471701771434963352252758667285251546639059469573862530591796288570347992016208323172432685639156733768429508685810395880344049132258148755975824880028558134617053904163307161802949919682289449126755448432242506814822471692552731197307442762716041437179595501845914984608393155576719338364519636660829221907979326559963989638108664255023228695261881322810143911730621774699096102385844140649955680563852736759936690645187676365811013329476286205176221177537986655859006487458431146547902189281929674167238652854618522311426326389323989515709185918928619528762745185663706414033286285237751050773835804620410996917802535158726627493549476965976310819235037960620813640200540378471703157578362717633169820478754871427896226828625944245183583198551305962656179215279700458857600952949685990902332061066325962115657671127968774962131955657544680113531267478699589519629549508217291118619874887027833779977311023834937827418386588787149698288459207862274233080959027385162559343064527373847708310367081089755352246275061504490513029511318524522089700023973744500353935276002666436567784432327302288782427265591532181596144304473721032210089786836582483983512308399412303123682489417039774075155362776694957407575645396917077133916998779849994043547931916867201515118272581703240220695945240502987303889201514919931109108862321195612557005942467138204783015069722602492712405706767883390681412618622296587841023124826521760471821062275430099162258642955663078906077115206952593265833575995666228336461358548987178479019525733974753638082259570303503433451639492276269909353326185436397185390049303673518148319969968174188904502774781024326688183973395220870091302043805166088743727248210141532376390990803906123339845472016051624978676081851667373316932831102401366894949879774535106411061945848032621611081415149590139084700583528934504849347241500358949515614104098854978345823711067791216694248519348484688380355498714164868131284032478868039259058631193075215799656993181786928651372865241636369791736276798854965491255527131253461208446528267419827302307914433834568185368052449678032990436485523541270559976197840006347111870893612752600324518893333626488260202416748887908061451649551536175892527416494846804928471685830880902257373014114372171632682451714893196039356997314259283562700985183424604256575678646404530028621129379434609186684570044700223797195149502874017423595887330023777749496682820293062371204185005399092685237123931728755939460807971218855583638172933695512309724468723796095733367455871227553195556311545349312748804951744560535888009964147694934146818418057920048423505882422920150058279657302886678904810293916689654153383633704257474077879500410398091245876635410273794708848406811564974290350584323655578354345122174316035441246159043488045395584839144256375202577514079123712811732105986305887334528312918135661626907266823550726160012468082778465529878895047384784003838021213449847226331756970423727907765712791868593978959753931181180202044412258289883535281391189044071103655623452668395913042797489683062890965144359698485760520937129330546394154751786337967641251740882093696632372313272561247899784059497884125909866464423185753813751065469326699965225696938067426070489340998907271897715274732142920258100484115708479130291893513218235485606152684511967708414640213113287983899929813428902387177445564063004574949822941034725069735394616571692914718748973198058268876924475680230213748708717756344068791514701509741737411272467543369043920715926562288885947450433249534745302503017971244345445837503424458643336627896144248411653056231786224820426543590458434223713198076122495258360364948244724379775284471788801384697254129491325094635977112128255245944079591976331105457135933677686365583147999077826914356617526740574148735390951617287419625493217308344444293018183038174019423290089477786664172105525234384119504402562354997601885079488032940125134120998187601302450600587483390396428672194753295609263556522344559852690508742043305305292826708833497135231911727449713156965181846221805334753384219178983281656828573696983286858523723770388455457102352323633227385298214383704914211315541617368392920264277864840823314974018460742889765512682545983881856563578717268516657170259734380391503703054715775053393361289595786644592998901452945779988383274595321572324175870854750050640796393220379866127300770304711202683092088245643977742368014844364331013465340749909269509419924807598452707285245258697358462055146061207567401061167634673458361845612639421390399190498122816927900857324085894830296390289666177276446582630181967451230540012660917772371580400959619800083697933249851550708586397391298322342584635182002836769274899454708294305499235552886425669007034769491760602697324051005185744587737575820579272796220197120909069524684024639352350424047934268578236971080487344240552057177002610984329094500997515217509652541057503091032784576185822794918183840266880301470013885023767577951666124139842154883210598305695445213161605319122925656503051860229450582443596732667742331725509585654432536178102655819357827470548567091616378467100505418279836017333112371525442161800199056834998535215619720465556981612282982994739127772391835878793154827222745692943989751611509500824788823224732204617965546539156871272670869581413229688440686349540556392713433764196382737679471502198577150464815963167568907792809730339423926780233027976579913746187634169075831972934729704781621203605888587016041260744374350093506902227395681474948767488342952726020770506184393196725999996989199775570119441087955830765998450587239204425154798441547457918070520106003897985059854142556436937733598332335394485391192476868299170990214146577626772338619016853845165290489073727753668093474932459038642771535750613715994375705366615985715638167461392152000402981698706082370682349269064846949329539937591009332134159662815950381120846730539101248151751882710121063575613121593008133444374752571507949011413586335061084268269739313375003618762061960841809808930960368129732007944911212685697363175814925869614229934935173228506957680502378892398433804840089732393849882565199687847820824725807696503875439615158491453431045181636080385903663809016452163286106601319218528354277278989994530597074898834450123443898363169312386843424286504082323296723365547364678237647973556350156946422442000237529915991557069481836344756782152034032027541656916217645517560587572841928454212125801350695281735375426723806819481810611392771068580613438020149278360694719952217183836166078888253251744220235682723865515937249410501762229852566670729849696520067385887853827487535614447429027302452722653604282525565068607153231246806495080707630196167043262139109440161035032661553105009275053915656460913685329035495607892034186521080775067275137778817599099815199472793799642712798341396430394940397489906303012352809967765185339990257578422808189835209218687506314488005413366129476842734241078750471967762462158449497254839839782478541624448673335133503366924623511504276855041938136955487608300984797118770039750052119403909366750004434207430863734680645673544392830854462363848839347710152898685746334080927307478361613245925794840254158670553427356301093557383310383483575578574597735891192822644451722144919346266529723420404787492167777284758251094436386237380605048448736103317685676644175728063812643450369539110117300799315807142649376559675107374216398650930342791078923062579101489606613829794615056309131999875601272178815323598525958623414949000914399460985307103909933126408184326963909301942417931540566240215941657596912431817797495145213252508462275330640981343667807155746647832703645427390596757697856012361054867388522538265771198914453972468018614896517971099165763426878614993532212573566237322594278853927150039561977427783493979554178089733940886541903952656324902302509000385991673890311388228476368082557296940042860529584568359192520547404724672698594821671196086956772308922124689460275335940874855445719923206106778085035432548909549030189736182144747022356856813555477435853441866937212006115860179061393114208609214140962931378049476706098601674216772941622009898577767774758002526495117616122595574027275880548977622058296152861743397825758502332039765251935159581490429830182003445155290826808322572487443805340502198892092035128626680802531425651068534898628183757007455539430608223001972458096979624497772822282678460746324694545280550208524574825091349801422342205572445457066830518809859586967293967303596682351862547973850834803569648931127566440112903841340815763358948630227336859255437221393828984166685465796051472325895248903410265854887247712608342776033987559605194016584646719190673138872487571385914743678838821549279044123710492011387679504365214667488595815674674835788679583215583193477455558341546471150275997092801699917180438662755900015295254369960208920063275666503084890233682383681477917169826508637754818881114062738071242484725538378805457720601805016873151970742686059552968703738157544401619360762642023108795989580041666580294302927308849379283325635270887070919155375118929807592315909250763907642565035103902623894964705468975749528838196027260382056863482587842040157758387236204509599756433260050952024889463713380426171836704742957819490569296065567601377898409480122408283066121881295737120727037721574596334735957335483637612893035224452136659414483776464038407215897139453752596729522222021393194890975818523315970784802091049025823722105207739574501405502267834539549543788091729498826443398199590902971980463261926859490231268817911743952461363406798993413195463342989415845518056376243576874531402173290135943829571134234629593842121639773841919076068121817857052008307952784339574816696425941090703051302233927583069143736968010791372266642503437921258278604898653096393012881993074833485839913537505150069042986090966208599061690689218302729944630601629424091581360840020485119238475423299556744502714499727605527380731514069776027424262399185777253816524304154685042197469319358970252275349966971682841302155310039696025509323402567335930385230009508119092148578327882719053110182343444669013987377850349608452655691256950635147862486381666272818049099143893431340452807347098615721286916045679085626773310321176082683392533278566236887149469109251040201398081561056012791076697631395454193391871751246273259609262740745973400332544752699637946514354725467432436059097499883260836900286547065074089377249162499651859959483726030356935315091910836685387611061348476392631284835276608338344802821935815476923528506463202726716738830289182851973126126416761758725960235749077534923834708425115141173816559109457622483642932228676613206727620431610407139191665224941222312336825667435136291728078090934544713729793778023210632986061961895553560051904966090553198298971820546814111054200042258744804161744026502501649127120909714151605877587613337953813988131936231533419766962627711981680998234712128168035297530617588617953097432387009866523722101292597411263019321819446313724486142516620473603707383407130765471805276095253511636349323904037378943860030952856426238125414682901954211403238618255039904354446703779392441483955383790639448276364381658832895049166993206676905723459392818035061810201082443193425190824673909187741983189342676803918357637787586161386127124236566656755855363739609444139342333928982600331145131077290511101171784550729380102807322626771722630288380207651358878541202360323044940677265775489384179897600947711847756025112243934689996748502449795716872028884404607595054277580682773259886807352407888057419002740241969922076141070704741081803737873566686596008724676993222550085129478040985477715857047840614142856367257116863120519793742149259828961084527243015885839684357259521995749850550346526015300412800689034180924114176877569736206130845528504940283589195871762215883858251998912690085656362207628910312063718979073140165959764083271824369330188841227145543710551208039374540364687265781167182876974048915095613080542736013294566114388051227406122336117055461146630953723406886107428425752707455606850131016597222206778859335370579259599308846622196200659274033739467392962307606365461444442740923089336984277154138079107979976966685881827340196817411707410495593040018576718972613551899747681244216129478034080135252318132354770630667465414909079406783595377417999292847828773428081120536358489240980405927800957250173751338876046491631021865211768856820557719177786552361816934035561505433241524815620838058147290495285809439859246548128544535991376505421842262816272654148197116317143143360833003565022849178864111285522935554452401829726316777161182975833969244216583170557965388612995560474545383315879433014168330597935174178172827417029207026117675902426523840071718233403026740267909230131149894015008682400699014811803074158068024142257086695383495517195940217378618188864346676958937606384118436475916630142015529770981095354080099330095819906929520575092105728271975833230322479851527394297422850683837482325116083952268453916928863624105783455023149092550535716441366415085263211158130167867629911438588796470644393476154821202899337110191507396506004014163841605263152466680293834922833603688358732543006870859831361809526564805863661992971723715582334848842623329548034796177226140205899883509039022867008988971809565351648401901314826904450526754560026177954311713664494201344123507826039096211600986131679807089069156176121223794711942783372152757619053857673134478430625382697499304197135991344031888432383087863327619504473159225729691506033713897768508063958691029581577857192786959820943664752349730083607651467542718947828448041009872770231242126553344478938510178295737350143551507875650195649273469210994722357973823532470972460819859879023720103206237912544523861807189683251673072042541222152932187583417482917218580529541938061894020388315064732970762848470866814967038491708048199088248086178128178945411982399893723061561565959101246167362752741444828759718219222464570537267700895388877435058953320989975905162478749258824798630148960415328664157521786193200917266603470925839581327577953525864602910647056300274039445538821203272365221158001518617938985601822577297885553235886879573648161512015107124772702508366652398022407786684086211402289029736348213172966268163996494692457882048528093298407318415823796666010612015508498209317038373489471936279560843573005106640557281058429789902362684194826468488603433732134576822414136500649585153430611581698788509893326598317476678996603610440634163364019221837751963214447175469622337822645016205708992091939353686410696455398770495246544610116486084774024544361855220786708291374282561180993619387315805574288764221997660879761508018132157258600696416672709211211775305975783562996240624692593030285396935798235860764994521320230841748605643631764348478868298710890467488578787362561370927254181778856077070034625737181569221600150841697677169864486144632410176249391549687729524485667861219242916325691957960412186872935333758359157620396982476104964878505272468561973100819100248137178106993692107050895487535928874324578433476530292053383775574502008899154789864922543781102318264413724741307349268450927830444223726711740504091739453411207285370675806723017620789477079696804191930855979918297883897898326691178778411726748702207045809941927704130453210764162020853772122789908717811176341790867874470211990529271379445587213641930893956446376995026741502628466212343622342342187632593168400643674549292000319275203970228711036990032038370694742543072311741876958696188540180309860665070317760517518883400365267051565962479785896872242054417112624738366290479276845484050954494353964961140617010192700849515356287008019680040306659937312549586309991719106356785732781400480974682985619493205365060872129641975470751129748638053484751599926614707504396144574218248443122336974512321950078681968377369742088903457186847603047718548209041846525814605495847796166075528857392203163671126192366355118880492065396367322931810610209264971507135851517363141670646832944028144603298347300460134211886562325643591410678777815548878646773513441630879995317703750392518465150034571999193805596104004577387964458423105703279887890635767198785097846524160813454522064560060743609776092848168979031454105024906572596825040630344793029475465240568445138952199620912941408354544037157779887697633644926450590315223077139656314645254385171188466829073443096485857207901285610719608817623024345034671735931454588835544857447202146645468933827150856060468083176278798775236823266962626975144528251518439683934785856515657791191618329211395043482744434662526036048730917899746916870715919280651329719216450298035051272745725546740601324387215870714522965847859432193017433837811343933976250450537343323825564646104391933053672203978722401818597011724903855639475609811979067494130687822144575176939507808576691890528088160263693264959593149370195763208057941380231764733370123321584921361481234532009151313937507275988669863460826910929685973215283608099591515393053317735711701520891305537157172023142751533524137419106582234134209716073675167996301360650091209973725602210069303663728287629655104310658250938347616804683191830441429471103934310165157182528625762526942024293971795920572610339660784375141677244807402555172643713355368186141355368542470112058281101498505648746215304044109658117127502212747740082961285494142840726446744546287093057513851028632026107084937839691942422209073402617097768693135463519936048314430971037728561540078699071183669537255925496416896442725776657844753968147814198157302185714548928077406416786980826369678173638875560424799064142496072404915629860483456076214404284992121840997941629502877653671621825068138769837621419862841436357987116727605776146118294748070575725842443411584846495811516283275694789926084258745213120892056538253837083052020812835360853221642650859386445759607597098863920644538190699989975895160139991237021627068372482357413271731969433627403803006074985835884470174926127544694817312282766930901297686344908741842302933168168852723266620128982656616150625278408964603524892512007902530498941846457503005719004411067247083523133128223193857636206238739509272810987478750671566743305838586735468123310424427860004524012906026876285060699316785791218392887393817802564610477588187345747888788908755213086744413104330070253975413059480493403403030453218019221833180795384475783055310663997679914748496009225294186456877280222825858952033505513543607962473504574579406607582709971680154440368435413982091866030469097189758958872093898774988870525777767654066383351542835768002795594918104684867538767611597029229674775202532086715027037615167991810116601237402405473707558680720748790216889669657359588694317896437032214515308645416421519160700547234843607168407640809932306083583185049126305976666871631277317536602832083501674393727106888241739799035426637851269905331852277969433826813193772264272688937763072335565429417731782122859126781526523495712377920404178369214666266906417973329001018627351950701801796279985199360587193337711708835719066855636031391591633970961631088258804785593029531007571703739619978774370875427537880137658034664561920768942335031661016662357657349683915286113553947235656629012725952240303349352489343156817623476939320707749248792248813380498555514073561602181517698834171902213141688277110571126594108002771106043922390572365186824396574966289919452064482580009800944671173761941241491392593069613093965264560848705306229853682066936696993488783933344899624582956013145608045188556792157796783585757813563355055350502432555476737842615154582644339585171704652803455886075482542511196425268927169965283767342864247343256477549838600501214017601953554617005605266466821721391931072711085548963725253932979426667828930967095527429016439624065366034178987392377745138077658432355986098268692222074203267925199058549311473960479402279290241072086951821642922712059991044670895345423247470349129925660950452079764290035094706699062708376706711543668910823442944139789930058890942724865620069244157879730614661082068370706657348994015349534734475727817922606206274400076712178303082176555959324556004686603583661898914057940295822797417997857954042113322360904226513828876367715875841883199542979736193579046616402517040086196077130555239015236440353830740479298752442988372980049480936723064337384868803258180377789144864487447844838263169314055567169367228382947498071539675473538460915834385980711917928819110612732556266415902655947208719251997231164848619457694135756740877521463010097618785968071495642581919439541799313233936834703194200496983697726887527314504410190910289966749600729598308739041539564936006150739624897923991581571683556573673755006628321355227688624172212469610022636690870365591348554218811610711950146806954859244748767492233793606539055734997798208877471243338734759909569566318386155104387727597509862443620679086719675280634290220479560466826928637741232135623778830060696844956509277339746382025371304940676840076993107445248313985120003137464887567174911387532146710702478149068118331042071292081749445515083318695737240633918531743950595764119907701382582945119699594417577844692003938722465487905891557724992766661596353373265297576845734768497727614008720758146680149860058100104633406769260286539784438940075645289187360986369491014642267830420827590931214888508905627424313277952780957295420359069932926508438166101108516833320190053482072286402336920765742787334128581372156818878928598352670192248488887640594852348538841206946234299642116876320325178084451691268283361139216651843489733949599042229879447491592120619793194475141546378690097305205765891780734799883264165273590479085188342054796038043365244453507768108115077230957183083179112945508759040639980200523791526675734763280242733898461478310430132363388231678883796842286707250409339544990928500755617435756721096884532129966216954174691069803858426687170105376064235586312817109122935719337699625356307922844853793706999193545084055071930211534209355265674731405062245427986249090127851449755131744162599034428421381899797119765965588385748788052493501458081240185298961184656643308435778621924780227543276181648695358122894911198270204322268298820273390093334882452617471718283471210397848099364754138914948379434749213419443675042891141818624934443643240520723074098458174357111559653540516202647175098073903473960760098032234823812315085362846014661414674979943204323351651933415433538114900970395728685093845639515813860249444959677075360290146737685352832702307518219390646324122392142310538769963872815907859619696248228491360632326612638850872293794440506928279888457321780598674158808460917022002966573387413352774785456641629216611849078079546413128219969247808184610176642176371283148758657100640238254705423415030308328633895729574987764869545604834146159294547524863254953906485917555831580976386564305228548534446514610865853673320575874387895373855463114651122666882134774589653763032473493997230953596919386290913201800247778327988189097994020583111605711363044604530238931243792968448570015406099275177581254957075940190562233594648617442183444197988213103174415863809688488586745188698076960380628931959103354068423158343608228488690167278897610266702584824521074791303899249306837488844603978689283113993051807082121427888821547775919424061141453570817992473100808170558873935119768614177371430570457078425342660157835365877965038751154920152789417774369591508425130939727064881413231779106657871421828891510999609078187400472261080880050694329413949800366134943916954447690898773209522280969651785380108607590754761135411286428855291730551561607640010851006943012467614216301659214738879951536860300729366662655412776576246437827944616447851815901848294588466980754559191686549721711184132265927732121372065019242632560754844928152927598600812652612194029961260415295533684049851144988929904626405366721761282821380778566479380979567762985681531847325204257415026762080202398663843999982528319160471845577292700914173342704122580165382303196335022488705013964209579101968262969539832915547166629205555751722225471223142203401958942330340645140777918394377556205216652185310493017859665922078388227693109384255302906782274624117477031716448682051769572656949571176276914693345421797441340971714336355689424134615410385491718455981932222595925174956869674638149726301450895479913117329360024195120221138050004645319422593288143669407236383461007130113757533054915035790892400546202606450937955306415510904824651093197935522488243129987736668959782503121470270732797366630305572395716907424308766408931387614612931143472708470581148467478581586508313877146045638858411538413736345850740585405378000237069037105317428510056765520416438942468711158844193917072789939277535109330948206687315967349193963993647868682370864532605066537523365670270481157876492269046640641183750285611365078246131865273541943827625225773203909125837644858700215447073455106245267334083271900974579467679224258840671450497085034391090139604605880262619282823381340618196178190596044271781608278252688784943026370106074127251767808372057030919522719039344811995866380467046971201219153564410018294290719363343854147639188786449781277433808102268290061606353177209584249991899196036243515259979489183514307382681920555856337331451894939151786575194771189326365421247498610890492488659962935287241171765549765337019744451082337576241360528133020536523147479417087967457241875377711049223282954605984526836805870102911473862265638953312077339782460295649238630556365380406917055917119958545231189550743341709280637960523370476313495447826745864773220320875089532954128133695872536782955233936703457146963391177928797928833420807828750796213520922244266353264803501693275440337052953477501868346927595438491114288319128868785928459488765384483778812837493066575085277779172901627566984473523980546085476768697246915328125688852692983920418318414861373965329604914392784811796967651128348029122665876502259246977290796072324366622088731832639828566866191290660202567175788805670554785067395683448484103233526102347855915688728151513879824190330390725481151285190121164837822398421676529684750241031080686640620072570977442839115222602943710880799286783905737791853340417402620899259974311075636823533017731038132845214650881050878525610384309943567435064499398948421909840186189855243192935712741792039645485876889038047125359064096189554470045053453883425355358127749579191381892796144969861096633365032389946342918179206135592493843800164891422140544112750991214206751793230119134738187012505438082074576951203721526568313889201206052178842050326576182043138909282187432878578898279188408886450334257279309444493362723349720708912691635070377312775408493398432703344152622733454221087988419572083985978698073293199188923915412714639644047495381597646381431673873790213416733095459106290602341333036282131924906738696608845077838366455794228233909072250543841422867738799337843921379022118738801692595960323957410671589267891084026320316086020867103701296486796108158292321579372691993305157135305849709708598254878069753895310164712377143313533582705854032203130705744940145906386810534022341581231132264507130735616504539630440576470126022946849327400126035290081523241309948221317250134830560240584840020505744697154505329064259647049341356603902652933731119688003833794026122241666444084731297926624706440478564623017947028619981204908630996312974003296761483520770240794545593718509138185639165686020317745816340246641201568162879836327090855985460813775328190522211603067562116717482632421483270446325808400518978476409341311827597643864271383547313002926594458638612061219856384860255034908732796981887123431822161571983855288018810165470679609306180378929091540290847956822217678092178334114867803917404528549710023519408945790563439131374098319638447350876485766068118611918177098763585116859094458632879107563387308849786993027191671825104286392682513288330541191495393317645654120991983756506308188264982489971556838460570394927629918813925301286086397867212930043505027911917070012335309597820080662689887979472923451773989694130581890576894422207257116538634252140006572544889360399684274181347520188943016397521053211851356485804861934594528503660754026658185623565941040165859702086903488011151729967117876998121152001504844793501188081314676290599651146885983940223135619501796892260817598530133225731421982828081831395935689411629653027122976897889879174730470008343496515777698871718192756118894764998728887734071444627847256321805148473758450320071783650969035816692397212631644429690506680886940290341943767983147670267143302689812889075852087600933675229809206141264665574147758566827831001564563386814980834503063809000826625988518695372084721102848982273209211793787553556471901381384937524092524699644076151029195002852399437712448087261715024644274470990530235090388908272298111598023102879819909798983938438025715333103444798657948160038194165515014604766988413720533079838685832939153806595692539701467353518242415539913582706328511310379259182550962610629845503919658803690820224997921418038093219783111857768099404511974589874884136596666533226532698908880450082599107761205596673093074933674043642494149683766578080576902558539960657774336604242543646214901925795625495282723616464341340384709798565106121690521381826882151405495058343849238213407659599864968024166130698553065079635883644632703786020143222916017704438071980572513410322409809385776343477204421154978571600973530955951301666068636148170412091412009337042923224346938003528558782394587991376009802780049560248286795939596048093290144523353366885774088406244794034108649466047258213551667802625899343147858600601098431836227236600419977559104664851421989968282279090351552486243711338874500578903803180009105676710446507649893563859794072035109912252313181106582104363309714966678523223757953216789571896499868743945970216558295799275536206399559097791764994059120932724292012639633954203930638358215111288531521611784448116670513957669128710839370976446288886970552357580731451281826728061848242204984361391140443641834900553937510344904785817681304385936803456681491589454428804309964315035493565516338154078811159206270023667656559179077931569360225865843439502270569678484408875247326589057083912058044901096241808512391100916280271165589766181716392791344915477265721851275777256757864006937721048489494978402296245215793492137680016058220383983320224178201150402799469750139805274573497361972274255077484217054510841543947691365790509985791825543995684946033076935819664553294316539770701793859679140550763023357720888915011279974846731540097660893449014553797642625469994154729082556141269609529360703954025173557296892381011545203351136713633949269537616334425587430815703470915161589234815970927712066987025581331031029921720720308998589031898895395820269937166804164248720109928058379999073634190732601250428392312137601857673972974300950053595912112676608811275583944319826464324673152969919598306564201069325986261159041913137180583336876224010832518578198960736628697345821593681340199813306729399732514295540856941640138567554224596165094696783925127194959151261495132961189623361032918189759542951970479671044520997321979858949654820790494082913196269324310687127296624272292145011207215388244483895985238148247898683358475933201603525886635104364241399569015948291038346103018651589747650459562724274592791680471166936981903009584782025182675725175824898997260177715508631803921901238432269003228235761547992559149439649495979656271427018526993137288087998833428595440286773100205738653180716696644140142602979477638504337381759348277403980386319537726128471115399931796710432603655827608369855006360170733353042528085204355781816044872453233831758312065674450178784300361467704130224567203006724940731882982316729688758688589860129604672686158330035604357205290819327119909273369833817719266075140162475060887336181178471989036140690990947711716839697444271827179181927316757633121463254650164943162657975972320888447498651266596781900811460052712289039566242901123048317452890303073069040801500247867940800521315165591127139065416991192864107029013719385698826016355748169583173944356293425975739394598100328683307572835230789564045709427228567543925467214929515265636370989189945807748561426750734327239048975047612813508855092764618833687356272490631567602378773304510312266799971302981833439720723381705844708441102252109353369295473970049868757511052219875528942569917190617647593737228015797946543958510537465567574423921884886061654724172664845566050079577894743431693902365037107726964125216958786000733759903293218113442535422916515476951685298047242153472162479610779157432610260341734295365855373585038541126028057448318904382608703105395405624296300770464602787888413822216192194198859637007784669064096392369306783449652181754931227285676090901307168651662833947729084223329827525771567911142463444766605171043836937616851275531511131504921618004501633722872277666493898177101971002343198126937668652433571246539579246043913074824436401334752767581541385432774480643755333828440553935565287499033407378442422019004075598380296000775038278154175929910926144423392368375389404153316815666754590579645896629217722582170214032338343564710935325626504400356637897965232319832328465595012433137077081657334207351874199780270762060963884192427268195828994552632910538133147990645874797167516796031648617948250510617439586289958778006222942329972845802558041505473295476436523283417736728622756090277509908281078971834622430124571267901707194520190023279005619371832807325258641407382515879655625746664978029218907654409038399661515557700027682070507274773196748551983311624135042223347480128477643169650740038815504729304097008529389795270070110437865861929312940865840877665492852480046815061607263077234230498386110469184088396755469164380087854318243300722776776644311012473673816181987962911660292373004600253843275654493873243714472097372151380609419702470050421094422778989992120281539593794183653366817951303962662492877749303738270025832027846042992241428631354785807511980514114001745149722992666039349504761743688535654254648440457687565851762656102398107659716186721825443066044130657243119427906538386738797731882476463898438945987532679958221246948275267697014032907508194307432759684503926426536977001195949583790845070939231151722369035438591823185617455226759652866664678204706561278595073644677011591512314861076915963247086484574342798069053222967712593437464672911882370144079686416081023142095453073773533277986734276930101017176729504443709260473311579303068310162011451875997297567596936005510432175930378372887549409412126040399178673038719580500571937364052441280964441483587247285828804189834626816657850702757315702512735942080509995107546796640169281850187412733492787873258832642910127435576721275244666755587550138132079049041778639859833829490756747898488058377266925307615488498500651999610138647424012139763805658461611305489017928628507894903034610651608445755902203106181302177476471268686667524096152840474073603888828032937158320789672579430313226351849621747410058684752261041024414839848548402318513717237648546528125907374274496571220886294227948337522750142610812471831550971452657672208085732534781907435108815837339623049768371175105495855906682130960567858742786749398381421788783079920783413649845197502955485052884711271277723559593964417160600261113765105446661977589975593735910211037908977124110931722471665203128307320901688859456896910188773600813998365369957460977620869589382276466485487695888594006065420312013307704648080190959997022197684302986787068709154146901703174608401360736549306460857828918398159454524497479056017426298654464191707608574690947923554011658723152633326077754121596351208941898518918833007716530410731410702801952266953423691061223483924699261479417224193496742006665886635813818399543443901638366997113866374511050531911460659335508142610013322844640097874074206630242440105778931745007770172775300680089504764370103223295705199213584544451179966924998684107771613483954124131380528558376390469519170979657083342447430045580333374480116185267173843749421370409008634050291733164958590346487397757157110825002652071645588393990104169635964425323903152306280258083183895312076509558607664309943850640368305736698168892047821653795728131326495382183251141701626856700832977005896730115081812912694793367189499642743492095194858360742124737876294111617493139729141362399481515449452533605455778118241892812065173089912289916399035331209347380486094592524039992579542789655346771969532199134232645357260632745968461323644125523252389742754694054011456713981784525815081843503952798763441608771680333274768481418568788724259717509638217185636588968860829791252555098799009773256380812590455484572039036381784398666705354457269584728231872091571212895730148003938749004494784094635231293125893757132947706919085319856488460268921313247693891107194474397257503001570452159625320638766766805933382418135118561014932539627031408254796380244876673924827238063661425472291889108774703073800426720266922668794329682416414709735942915275064058317636865341880377069364347479402030095128395685699434167601207011986352085828841693607078705632806771524897136239727806677346960659101286346621041992517772327985523267427795948142800439049150258654705476607717344588666239768229701827735676913294053743563118963423375998827322471423050414100656250269879496775506486350306619577759300764012066685171766045197788038384425026941985253220994350172780810194078549251562107532150668747349334364729492474231077945322332434908695490968959851683772159087041500386688371102146105287170069986635916952218591579986114558547727381675211319331131611230036337404458254219527780015032897542012973399017099496491944415377385344128998682520278129305109022963625972897849391617129831978992310368272619334887580121730210584522693798985087845422752963350495722500416760441581382839715298817468216853376513821208287950332429784277812665506035007302244299633627305481236668658908687118198174205858779007113311326622319168202531133966648590604991665021346008289091937623429917852787518550438909051206783793394092131023472291896241536089095979949026882058351139149145331507226385803433641304697411644070862469269687448119236299051553820070791840868953635594044200011257648483088488687623070871565979713030480562150696586676598185261895740289004246455435410562501748401635447344091122116548938894888202535037956682535285110517689264315847410690049612887529649184806956797981079442139317359400418495025749671383710744777488009817104242444624497866656647451112474928622497519998651708591726383138562197337395154959733048725885394736581680033400192246843075773067849774113831517156701373511095142979102730291952051826168256225238345589740873401251698780285663954389695819996901064492321048215515343725738037861088624935026317914170628864404188641293419067594265820350385466529672394212703931772804763575475019863831934403339852383430362945289636606343400061268484857247287937128076124692537076615161590490436955124582843187019972968950263332281667734292592257248512551495666407810879381024384582727555651473658029876004321496425921004847122550656171478325543590501591354322038127116893138439181366885560570161445866097033958603492882117825393949377488732170324222878184202916765209973265629786018152142150348160057198134461643919497072909391487354630117158003869652627627349947415587629025921946519368108945129974016385106437754983129849814932663730761325676800540979388348082989527624781132459821688737960245794723676888355065268061508852594132518290122819931798263985360001267589956364143193912381756173789229395749363368796061595855703816516517299235991237129642690357897396928149452322056535210982360287474409788885799950527122737280404738766900573934123912914227149814104121304203342512489174709151785358291894959582577175994044451101806919827144170416257340028929875032650718704128880276249357432815892226190301123166293334468709916798031120150448125173936167794422170913585038280604075583420675627042870054110209152624434313245507942197281168955776711560383180385786549920453953802091990097312701542788027546520795642928395163315759485159719412595087109397185654654937027419787985109583724411888020183771081596612821313493338550645526501192352499846189140795755751888157828697102795280032916247465282166140084883966932833499414092596341011665323868122146852677058258946700619768979984167328182695396863203956619691452260358744865826447018799690660908904965607940429442060381118880689755480730596266533142364207238571069047218036239021144918865601939961946054890924956881326071978355680539813200376936884905235638511481841178810987028917205876275136211348383368867360101025247689183053813438070431168495985727336807127094086241647998625171213073997168625034385785293190342288670855058171040211467502577328940326289973910532432702794897223977383375562328672558731953186972060875934811157881900740456246677587350571384676233208383142141477066589433753292219698627647778002195050687950767011447147464403157326812949660965863128794805497518683463350762355124484703666525291595873475257910760251070176510677277015605137978730395134213137984811280849423330760338976395670597306690080652991669830260466488794129770555675714783014100629671592975445169538169111852189401401470464552371364029512403774147040538475972958563207797703501192483388076115201198792378369358308780891302266022646090242939173433798481153668405381772685893396872102908600922873859752650628993907692171297966569957419305942067626021042510775684570285462928661161263802275577138276613668375019742111434751627975066340372445550604264090005163011888086857114402357649546810847484780089655549288483801874577246050336514311116492985866564160239085459880768511342645106130223980266324968905361385624502211455537228335446836680013559957716082276856919394123653880648418163205931290294733471309037218135356813900604456439799429661692837589167483956872838421602181870530904240503588902465605458495405701537388277085722180501144256659012425246172810786298185219828823998043067005882459366306132676421952851255132071732542503444968692774556039260241812871346971129921567965445632281125604027183560575495226760076671234816684454159886771983512200662955877539958700817097649702907458729013295768114212785438471297736800671359633859682411339592629970716316789528273359622634156585700571384207577469678957764708363624803585485923221491924144164157995239453715900337352085720321217093451279367457982925314751654346429793448191356682595636329069751707156996744110960492563504984129108077742043059874648649342396396370728793803308408881172784177997324483080486851072268199784252659933405457677122803511932707859741801490949098506753404727399854175152611502396804972083380908669393903634214057908260576016932032332536323379911375996369044397277948816726648727299544540791427227391806514650877951240298153752197572234480387623449284210630689677806524876031664929645319102225995325751882563735259509136081054464570822192092679529275017062412514514107300423280343601353645240012691509918772242013378342179125137259099843589018049751493226394383722742797640653695780615618887441907409493307972335279858521703183447908203010516128940560547843249014519586518865153059293637180204734538398314270311146306537792161594871923195776416721633340394612040075729051379170163240409952198203017945711267129134916221418023843589752064661768058355320965937765148713470692403675813698211031945981159400149816241348853978630302904154805141616203895064838651243173333453560935870383654558349282442756129681925054463209536005792269056449171421682198719307779671602261032887706053432800853764574430493120202173919699119614507131012688465099995417489586282550858394371335784344752554990695664548690960715956015410532674242231165743210429031961143296613848077910280005301633559600644966307352441090991495399686073148562713485559412416897003402530692545043155567623712724060606854131489901914094431923387907918716610591511552741760051161035471416819357016611228907722649617003708835635370894534302088309991671134589358062971879215969280627497462030023544705863282657539487749878776826864679352741626248051749028267689815298280706415615706594885914104655685497123400986526976813225360713608038483622623515106751073093356600750646936427085215350728544833979123352268142006539116770570205891425843879383626119740361821070032326529733368897837686610957073761127432646679027127428609647223344074458068645082443757084437690897921643127749840539049474050105534329674908150988675400414936854593167078940873778184846618167385285481726507845179063412712810018830154700593035453295688652767696909417197367393118298183660411443143720196555479689700270215125995242446191895771289916924966209698708738350302921581880147893799908554953663874165956022838089844851779863290543261449483458201028929347453356397264170506228595829886289378406613304918488730327390617493224739734421406119739458712021432778695219983001077333586550793011864488179116332016323652626979560302704511108052500393302829178107173111114891810027733956806289795498052411383995409567594821631408023168082304381275404410471472925209454355064646913334989864626476063400436780090012499940453544958289201798951400336526191334822046247482075850845965479150934606116222586307274400998320209468313619425774720517139486774292611833491665926032956315461556650851716212943640096256483155919611637640292341482477045044421066185063612465229915760958628440595075829515723972678414245784532321507644436459796815640370069570735140046436623749795055532267272118641552431526697816947282311500748973216302116505304246889715313781516334800723112033695791238668366807358616261241559343927171647510580021980493663517672683435553473242922698067555747578644365965309119063399012553330194730789717175715883803732808384309992077553780214728167952560502739429368502431945003391719375094366023564266469930646530886241950842709262808306997829899218372650064115334883719018993038382592310576356295156197327065888172192085329043679644263823587501392340729357604256354668400610138948863802693804198624647804229213394268936573883994229677578598330939304649505780464735805128495097880146504990490879158510828525035051728329914890629634856603126592714092659659223480626369867897563356772679722820227748364154625071534443099584496494587970198074687616050837846269394621669139329960849589120278048646386426644196300161915644284498193669397544457775824034191639022830954254685015338427581563083869947557391007992926636211427559215144696502431332654670152364245578227296836794189043324763729057055355577817223494759133563794201976032677532550171921737362414149889047177682195250721033847963079205663190143440141552401454954554672334464677909666803491686565229872927833077674065312877429730079507224930884408452381277533707199038286316607141386132159987469429192799222082343961523482950699222822689529777758910132805966391806922889537488730624418602035061220500953083775867039747398392199195015758375624934074523583883218093077398973224087786272179418940264970403255496711788246936356438160299742245575571677811265746769009737167998359464162821094737513743044576819132210669201830567615173624322008740625030095736191502639053438538085615014414861656328976510109305562276048700717524002521917238525462174355688393683478684525232062186099144590506341723057524948771536918873905070324282369277346073465195911166994369983004296011476942036610201107580105167216806856757697133595926186921567593121667431506282637626688774945678227386984977545029924295439661236052879989893616577743905458605423872288716725982547185227243581580479435072143740254389007230309812024478042701647571303644823767947758233290268801419609569810545515567155885102232905372591758768102159654804066304423673842201234907070659082492944923377892259513530455234333173348135515937665249687476524576560522537650293642935373002272099209102090677107807308408358121893585583466994296114255548295874126137931662784987544269135797548649490851860159298637498310735364140066104925300130914770334463130606152050787638186480896658647817892023557452873703795534908793527026853723359059209099631880485756543231397400670514703988801221632854529848139884210471375319017835777297059594083387516775371057400020720956147613958889465028546189005540253338715472658928049273116304884967200107973897096398724623353754403226205161448489498423263823825802727958065250336326342351282844962765732978581230266560438634740647700352205148961411514144091672013858191351189303626265305905579121153740758198901478874972031490082769576355820034056638529125797783500190114227712218638275347485613244501309919656209722751633611149062416871098974855249734644603694394598946967150010660671766743031933067812354727430566816514777319261046973016015485932790369359360879286427214001173926589161100443548744394685568558534629462682545955406812009710442071458131108953786038198750472550778664552828969208872394868213189106863084330734058294972724414199415175938313083795416284046707132473167474604515030937720891638553179843357351858063107962491946371236106595958565924345103626829711591455182498860283137289787422654740548743672904376916062996112939897249053613381305324881228180316734180854119757918635256636974530540676490078402640969140804723821463041262468938854622092417662345296610684452204051728033840606842528303639385234050406100875192629506812553008010513467479614112850987034667599947692334456700701579941320023695868236563527765491318610250579166575615846145786407242659531595918898395310963801712849472369860736467439551876006373325959159704495343134447957934907527047406263594616736270111209426355377451770209293894063201980470235382247157633488645532744388503166209910666887427124441239094952505357585261324788098957690419461668798864825433129565495758436261766602144038978644873650703460378258393555171182113194730084078077815186957361111242214917808342086439165680968530524483298054536398601274173882027537743566326993273463324625967956299904582932092328354965048422888041495764651245076828372681264638821117172132637504036274600801340921347595141426431833767050366299385445037221433130766722302696855532353784984787447158992813426142288440450423690494069738741012563560745379501088451998539941918293734313898610486432900375878365492407620194544434211223214612064592990677042130757678525828025086055777521495915892620571702325251998432915018631792404367657405572717930301474733328319906192530764671826542132542730537324771423712670598636401100273497112806031901819195107024710688131509977929746018814562817834958723775607030648155172774628963257531843643184373382863717833425320696092121361780288228642390148240578472826595606057640957953099026044355886683276831452500460071032922909447779368938712844966690179599764727554305764792678718001517568538289730364901136836098436247168290105475926963165435901987353012968651806429537850867350200026317731190510190863961970185063739178853722944395338476033285943603461628397433762622776525105823308487137629978116313393172382863668101178740007503500094723490670020525764820561358572931773508328262099324258839831484711224703763629991090833872572850624578784351475280884667853305341147575476680524069877836308406458570407102562564333366889249572724839281365623978323178225620909160966860740857802987799921965399180220008929906391379929595351791977590207934571535554997238562987127313281668275688061555528101368185538922059990735740961540246925877330949773848763660971866736894555782507887533884106793460613317134522326466746860839808020225436526100354953008593747446343046112453017309820707228250228520798003553762013809646929894463311367165693418411530318078660872817752473186990016638232997306144978075999316176533624104327842325945592369541232227322042932762560894642366011587143585020435350100456879891113959621767857084846793060928370946996916182266677916650420660273982531622277394104393552307377434380877108208597143565654288143090404438133765955209625023555587475771105990033401166400191366099119022355783955234651634992128333962073213586015204518960532271672928680159359795710608045500314054892676963112328823838120889303164903982073013321056207109925764633888983010751555452986173174183760948859764045392186671539684834242117011798751258644540454888669627275386313128861516052898539129294643754349868281694753065157492482411241014272676742130704320156610438284288084809657294415003905166537116602122611676838284427429135345519378271552185275023621959827767173830593636311913289207540494956579335668912254497353909714031778035326928481180194909296646641386519494768509420862789966350987043407438490282392152532129673044612824742289263843243745706591931918325964589957677296853285728889968254279554572848640423910905175337543458248614354194954791047409619817750979725193580979478398341626474974242611089834305440935548847025685132912859108414234271247638343604417514855259302737133636371020541043146648665783338472238737941603096779004123187412655588236822892200271721515590573764607156542515239132698008886278334623082987835671179326810646844604902899416708842392878851020610436195915403194916464703196157787282589435173092579815595514340979170206840490417500657966148423658709741510383025582353036703749040248205235066235167702477618924370671348118230670103994477650518638905885105128785333980756977817900214999181069381712433965965835426393299301322193855858029495187051231057332476331308517051219021486573441746810633552332605242431169158577888213651818963209015688996303367256416643937012410583711282409333355225266222992676540710142527483936885007757198573683673179934239157021576403825193736193174512856944592886623923228466384872781165570055994515720908847075168010793835556246418396102070162687364055700040872944474274522042780627823941542041205131692410114440356173325030142483985636993845551456922885392688976089041050638266086346724064081707314835514223950033512036495938586617902235665748572120597254255481067630566312341157720822620123058029439556138527197428809889035090826279996553061362299318853237317405858511480299575380981107494693026772849252290332763342751025973149875523485352391766950060148056715117953340292882947280475611715548382139136225677709590809511379420077396900247665728232718652443979913078353461131761232568295193090178613843017338751287542534814448594168208184511787599206341603264302830941733820320081434431990157993592915801178274637376360145574873144399491005336124149424955047436117435428761944397398658974287815813087677424007480752175300098852678652163782453188373527751721094230370239491741964440407600635467913561450595516186254833233503191605485007531214042426354864207897061863235223810879988336131397675492343244022915403265028514182817980072076631922708076900856026749923406319164083972227211246448955005568727697101844711557894346724311944526382071103157160982999667962979126447853507002534589594470789260641446799884753260755574974061118650252122280963408215439017652780690253724316906441340508358832233898328215758385606831146654760912870184733572839713818844028227700256925572222945517742658053186872743310502714065410901755736881589302722173130125638748828478500193497747247796734011300507307163089020747270719426049297757175682063743094134979823276624381753798776556258275200872005916805005994341155505815712840607235683492292563503610038715850340664136235245256823534174393744511381937570385801874547026115279785815947741749886724128060786836060107619593251392679289656541768164228921985513935800660884191832975086684721443730896483574498210343413568704100109255790209958322441848640696799916745418976797409505085689572086093658813402972072141447846550503065816043504469806425801681195089187288952921666273710710598258962488767270270306837463186680616422946457038933323314915568063372907134842090332385064343185140397544288078498301380255681670862822191394157778228868380271725818082200419649031958323073748978722117466035916605616270598134862590688245509410053438629484805281016671696565677079344449250372822981647024752100719683484598190228301251585932284500612068566378772114921495538341110445291339041686671221273728745146930670965417480095028201157649017070752388779726655645096012813662038090601243700292042736323938173795100183684053854394293956397081573370757768197201448048167359657689684722737553715347229408957055715713237275434166221410581013978890346042460431975347571544974391048441500372228312757575235295803988608719265531526237377269954266562000901433616566941410748443932942522164625914135207566771898630400612284849417453198749361417937688363864368471185041745170176707706054896511045554011883008257186594891515754422788447899502343029147189339973662978008210367882622307639554517184363884074620667732593747875517404896260134409491917533319560760345901621006453208397277501604560792399905453126708555208657446632427986418526308830961723222735298617797132792816324261726164724962196883445544807910301487832398532290415994420419235744919768844705238414140934373638885828080316255021744028586843945479193930858647718473880497219666710983607423670258949553344666449057030958328657633269883398457673399107589049060926022563380575901941924957585622027405083963168326894293311515064698030863505318857748682756930817933797310127821184453302634875222340387588379857485124853005706231690640599488960453415748051194085546075131524519970470043129124727329103591332585296496869249168215881895949976020541574392246893801825560161031742535583870134977777655394573755242433157879237036180274660320370630968480723633289339146994991618297375785645188707227800336475310024476299421434545650051624530893256488746978881897789561038017186420229504503223536937161237669167838396655429157924687003695396960572341543985113605241993174996924079770183389191295567115481730840751474871323049352376048480908024265969727223155403485699668528008308656160311191891707499464728173697172734234974055322806781351217146852831172041393344005774457855119463671702448461621796969636516448647525053839223234476113469119921466322721039481493194300534497532910250731590070761386802443458757870026366578657777055384862820103397813490753215580105432761058626383455229998214085608560653009823084974024190038423453265284899465673324346574288156079896381111296111975441233293556201356057655036946785207195065333792418868618268583129115949599142185131648561725818866345871669802457423690373389200103439576361131120704989308076366277475410010000520463844043298566929197546188463271654577541989872979648959784572729512712641975280165733440828166013424457238843578373089311000264535463103728929579323613568762111796774067479959900594139733109068034776705674617971668598161551922278768178051432942367763173786268269922823206391134342364080848519187813000029635850141295050654973237932102738224477335895653620361007376853900859945898419446163457131790712981852618632325484688218016509391417876280369911480090859731754992577024860893352197190803874425202136871164162829184018597104093811166605372380343508869586343017848332642397065035136379276634202205265036478813807662173755759775611372969633457982496558045689124493037919851471550013776460574597483331646857065717767343108856435689744982876955808654875252701027473446672654090589753843611359306574793377370114115785042909859773464498191469986962377988364606355403936814273473659703804387749926103451992274409406138386055749205059270938107262996376058504653487476575211326116156740562033383554377127765428860513154259964645707464071173875562393277461623285851356808221131742390875051398105104786420367297815739378170385103392062253861324117169935202205903146023085074550385787253272894088733609506266386191773827666097409090348599824615246912953230716251440084005651907773976837215100584713064330290526366498135805811225956842114320779937136648296691559574594028764158681110010014260210907334069747229957380187969829158500709880393355205527755717266970217495483032085151335813817274652345061534728153334795657151727696232628503464689355640129746569557401871627751114233236801085393829278361716957757416148570449957331912408097412079333577094709782694603238412634232424756801907732057937127243108027965690428897672009257650841079886778916610015689615794526633770804983743423926388291707693158865078748768127937721134581917987303289681575806586024116575644142258582664761278446179298925417524545787368584963732237464154070341521268068803851302578903952710207120072313698014533595633980754729192478344936525777775627398025715561870337415954439966457073469751457487613481976062964270382582555894675339822244024200038931563506745701131820506142516210336340070337897956772573447593919155775595464738290513754539306979040442753831557974639505820670032888484599918086810875121406368225197689645236536431799736272054514102045877290587068824617899061759775998580495743565143853888970675232658052680424367038000926159317012904660019209670554863225125054282509024584786378760953403338800025690332162215858857352900388672260813193545484152648088751223297373948037989868095854999027486298471898077861937383801798182244101473676608091922179781286090442148936165115626999493552301416688239550199072550784947990929739680418612433005766640724083711517944322281795312751908957386261349298540811694734731400007750063494574979299767255329970646879910000095195387772809027617530883353393660637034716385331092415956482087672205864260040464455488588492209498348667957413948802326384275276734664652969873666985860681748395965128328549299096009005032688202227100586605006546706187433072239004561615815474504946850173431551399215813397730317723931089127705202357428322667571574794463816314978947077002020745937966284638200791925910253246962070197757344524159579447981582923366008336495525093018499589731717128283969365759678517444723942015309230586071279086654436460971368892259223810388626606158410698767349376622087663293816192973130250887698837359929603650843895848600326675822615136190433538192093913337808384303649661790952210305008712034412264437059479042772172215358417347989209357135652774914485792566394498217923806976466647012294277084461281955358105459128693658715022717854704834127010822572139039439120592779346259474571319906582606691776226156555003779183176096601255940966517630455563114088486107282933608306852397665115893637224751259167735117136321996470899802891424536330533683226603849905456099759549092574339862756844124763557547130456745248736430491211206243273469716721041995800717058736208902087959728559565691564392187111131519177254180004874929190330644807571859314124072221133006675907941301114340642291958998580135022973702055875600230295780095081892174055294118222233320768393915679284024689576387427989548460446108997007597134435612291760842686172263928787465051369209829120941046875411975207837183917141416786841785295355287666611497640767592721954845191301387819579525188603434722837652210570754061647073677106475887185754100629153870482652293114443838201058936539064106696653789229224555402728707111722182451289434644837530164065886874028171436235512693463187727349472398694762952640892514231875843953455394246612919932684872805644760341590931471585985858114586680883775601617200888736954161459498693066960665417164094415593107173949005831628386773819378367128364014489378694667656986954093733725327008950486448812472515430638102618235097440603589747059444877450307775282217819579399492963602638508799956924877614286402431076507966452499056629830039194435035322760265753801704438657243728544253600308224813388289277847106235527676098856517085342815975151189286899200957137644093881719570553671481077983291384091554365292820459765465582355590172804178692196025015073991993662378442329546603960532726335611479282953196694375279888821232964607664298048867913944676073786606138513164957962699165862329365383813385756616418669239570874865687397432911837100077909365881677673910221578740092639910566516566389843555696329747873601541777323882701302048395442044813106997515957230342639219736804637680077772919981009376865116068013278293223260019521583170969750847065096664539234492811120481509873156770890510804423554134369451431949424677850028712578353747973713353049983010882039979218643885741240535641955492658471154759361613067135793910500697118544821252879404880448279524251384136120926890120069474775785658313476140663681482938801469920833122501670672412923679803655079763399700059139392620800467160979912640728275297043690751730534796523227700814631229302088095219110234195340404854266292802522728210380020786826813930214258201510343532820156303980556856764526807122635835920045235513819966015407078053570479210743026803777141948923067133840748970995939225792836354957047928726943697944950600108281258464264995006797858183067551944407976502786948075565379627338800856261004919076711440931039109326130331802756107404880805595430785330311681230551984810422661668364520624417106562622056014295778768871123532218271368367527689563601768160094371584342860162106733741401824304702092187147016030570306793905101356248497578230062025737132915619584241272029946016123083442396900171039598828581070091765256442729800645295707275008255305845344223681709494772344175756281674600022569229687112699517577570734384292934509234076114491620743921334961932721714284881974390437171037216933938305370736577101426918371631564939304081213162718464573060093267434540414163951890994783143192188344309144718267072934047352468570657970131834954835400241850599943585451693713750616623027095884895713605367298077669198150976305084362949286945075658619301092551826524459266184444698084770413309694795285113213912359286211388764080678591179949240414786185147551844248256032052338199786897106525083071532065514205643861813088867382463853372171185829114704802953879907841763148196074413988727428240174035375881130443022397724980755040178066386931486154657773845508281095411169615494961251524722718052189883802075159400325737376990811521193394851467004209314084244388997410998905311049212987706268116509230259308539111763331946560181693204703399451014313534373141975677047411061930361865489636763198381535567406574054290358920965277135066116913365273321133506714230812143520958531258782722157571457720411085510913450976222385596498787338328646611069619234011747710972301576182139901644467354272382833493744921261298228120706540022437162078991960019271652751331209599765591017182104934934965332532726651088589513518958603350691782410029304813913225509518364601602738034996383206415930443262192697020719468928782838536821900447839471342637096561709086916857971252661892699876158748571360194242022393646592928020922940324271853757520085070777506416773230680293780942114375843592351839381773923928580953620265803161430342639924500194781751703796051510439217790877994112760602385471025831197724085202777284188334191555610387494139434484109157751263674848277712431744394735618542225133793102518843875204994609345050306595828626716044322220517924027071535851079917309820459910378666902046868664982913231375036095577372992289572724407118587851968283149606216412555850586792539592751279498403350063492458997424784466266267440745636256489836092995903859204056698045302922944158674364983967103734685812137563884497534584309257338843619625398126926993113578372127102107120047978187201822099700312846202534897228660117905123398453074150144328177611638434737312506752365327835335751224869678065035863145077072991584058152821896942909705202552065647036866637107314434306248996898633711095215594055341976513665385410456683364352289853493475190113680808637697875321689969487757781259196702031368796033510562667824585834454697094022045503122553724902961881058588058877579091303374190803585672758898854175655920043019122979416248810844616744073806440752675515694118616297363922705341018953268808610515542279134796910920056478681738026432443098137075584558591871871304472350090879094487845915485877300408386550396878977063867565971778668702043208509755742959041230318457855129738757418180423597622718863053986927380222709162836745511503593595944712142733222244310923881533587751660188321718357344642310883471929442699806633647590856832179190741963396684810179534245133142674286223069791747594121183043603606035867242840087586804185150222361204460319311954476557736833481469682022566528419486600301320987534887615494478370604271124665399361083730110857869462800693756017337899402021557429286252734348238171795782409432590809846362392514549272008235561590936689227353684106413735272728546423189284195604101926592792457726508380386388547460644826851276627274903887197273852944566083468823667444735043345671887234152826006089194899803336083261469877987333864916502095853034794836441389582831820750536268283669581171869114351083082670900721489645651854341091006835132071526204079312566772408121735586515087452743304224118929713281607593074015324515395078208800617771512562329967709650304087674920434763128841396626182353306325969207673800208877687278226163282666511610273993840619347071006134095882771200909982649011759517634242774842681159210157894509121135972234145771449203042661594272413584483907931085098137327224424022161511798520890400173308840030147427043874105198132130419931025983827328987000464019697602802722979735219589590727133874226073637116446683574404792099930499209334259504276763751976955526910194031413995970013877663352627082678989119972712847520523127982445017538161095073159334456558983611805720849294607957303723589054843489374349814046758656808859241585411488309525168373641242727638071478900819217332748917508086955517308856019943660901531386310968178361980161729227553231910781181930429141402474497141798278729810379732555580849872219866661784863527153492666399017849310964642806118094348923812592149987191580037166948551599259298651269262981199072989394541901948635615453706528858279718124261198259512663776218070480023942507315707435807961627402911686629369158097510503062742215787325498254736196661074522122809577509182316762358875740935417371941652989122999681162761675248429189268946434097684951434188766723883850829390943663171262846389541860311456983135570483549063942998026334938277668920595523240884215214288992601955225310060752970841389627629115495481915955088045303882989889654990040752306000393268893695296343506221484082645382819156887301298998781322615821897389342662287838439938260040133766485495555793087074715510390527071538706250006744118530580598464247963563671145223288293908028596572606845414836264839341700338715519047522084786679731315640909958741946779423325850543824191239115221047048061797700727683891667103344558290401940600436880007669778501650617438052515579920633054676816611115616737865056479202634918951169531511726973609766844939655102683638714726754811827680858685589339715803103348038554235335714306570839405791720252706924403305006929370507306321030571544248393612982919112900134975826817831124577358834017128657127758975195319414954533545055935959134723470258622870312374386490189657019865998050272101167447766332080721775653456800828988671040062257443999969070173911325704829456645124726647245519828154452674481446686688532260215691772336582219933598851368472988945996922168219596151059359631680649835056205912636322584237275215829063981739482152097941988070887729304531085785110025012781607221120778342394998313292375448318115697717726790751953699052488568959791393155586402083931235850967895605926202735093235837566515602835496804010510410832988285814082875777287828661561883077396981525951754273464863488530859200623789251625422348606566064307707737002691682398537817889559833236874526585251696733001588072911015757457027342474848419824713599490252918131165841879313333141497142354761772605234874705277956472812622792802459210309277558299774447373903857737786714080701933141751393462819985842001222224447479516084394580644329360474671662906717417065465531273485523768488272086534654136405267062207560243957621539846696862874199180936158466353820591583018547976353035517952170141245702337059365375253343538877364070502034242983862488950862998924691226130203161223854055732389261408349817620609585989883883763637175836473247317227422342532461455228795359415876965205762331809475736328080451470629172489039542819247385585246764680245609854721096539238819734669878980968796428306395302870722112816674211151289388169361110313410215620425730737277388216821773172377097528291742679123157871489874684057052705646387986551309150962727681585460153020078163216453547925583571009367024905174817538291715643132235593403941952018101135373587043038796545323765424626436664399224493413679210698640028380600796014753882743143894283657484208120928365900241956983176185585045174940800500838644866792730817154522773497928710807293171844925774398471683178115636412426672386231532957356002781577494915714521380190923146533112442620959203469617197787854983912840140107233977396953878906364927483466828479526591458843945234154878381702282738705665648765205291711781626149306939407241117254543554428550743784103398580293141857250177920470657794481293409118749587727154876934957784847710668814517831918231651544137356884921065615020841253957614861748686349072076995869618017124226779709512844575195558262186030247856468133747373979119748786301227566613081783025590613421693106444400809429485894568554675690370462811238547308804587284766902404800468630050156950650742959886339370306971202888122182257927640081795145867901382662327673564754525961279615440900540692414486688710347356968795768369130930605239384695059891663940984373661638821820236493484145523598207768699300057790186237303849818442014025741749299244135188724883896153620333223361118541087828368970525141996784590669605902479249815551456821157041851164141046439656669738473335922380448525702477458757978796337278950615871558054572209216550517362006848845883708904715073784081714373013031181133882817577826907141484945936739402945522865385367013388977664179783601377640936022875239337336772218669691996477018099183622068621659293527931550906735850441373951961606392970317803705746555528970505796632048804252552288601877997856254161765443334848614593976039157929012995939426293910748225645955988194598783667201654262368644887474838414878698698232353496801605493450806225505671325675818521242691085956324740955522732959055907730385357494795863138586305954062926046418652260275314872842965423192227364563765971639551393850651453176610930017445296814818321238181649958294282638809397794142062150082041421937005550806977232487944799494280664225684125434689711597900635930226568940679300240545323206272222135378880919737997727159834159799613150500563270729703988820284902788784862733487096889105600912780067952353023520470074432796367753204540663166928820617795274597224670803952980276874654822056117973256995478479562484204285722065863533502267852707297890973143702513692191538681098555172876678779386994425683374308713454405744005280039693968722869657804756891337620600749897131918045717156339737834654589237806544393538203220133584238772246708092483798059121612116525335651809068275503959572254442539843418540360110052557895197874157524053896076031490607884393972081116612198012085617521202234814980076271291052064614279861534387902731240963667259567083438839971665309934783360119151779926817345921274320179995201882795274028872567214348070270109945081731335596486775753232737474481691119684992243740880133020296387446073572755699005655751350482066570149210728067236415162934202655912341868768270388111551730616377684607722492990980910068559430705615530063538316744829327104262386092092315087289552189356067866082154164027041291058544880383944826395724234020448152516542944166842544055975123386813206001630650087248015112958413542982759642574011515725219063872511727297456334230704721485339994477764390052823660092434277879907486867434254022270687176327903374891364261515846461680444054134288662172316166950496948846518308319510288307771992864118919476874196152151468212472990090894659705192179924380355817251505673178328301990395983704273921018685164706874281519204167899446018627537121033548182158314656049439812575707073740250996990562081984187676415366235445013399479334043095801575369435951119068384881236623067755521384669853338890210817026110944743614944384103668510401061270659713909554372919732777345525136016312348495201750617777104832050919430074151654249898041845804426354972936665101490189784598261841432560096555733658928291774537955757982066128490920826995816417651510824986374566865781179916315600833860304640634058791872877273354257345720169346977640349327452896016284309065438053340976768468976339863490883996813479615781888364254138695634074725717991575770203851401865604982089535268215295420676931396011115739442943476534101475865891195237870144576348057980444153281873738508595833091031549971096468878371672798171667512007019647539907724182302336832067416397085496450699358573886762014573647115288081408286033970416247232485727646307628049106785908573685119216443190334836398763285362366710411068818271541254917140816178680833880570068551822944159240510663195598195612530534112570496223536003156462312874116767740717566961805216150895085391914414203720146784784958848890410558739227971629387799678062257310208057723593950823358697066643507606964847839312054802946126807844251157824713094350172972985810607380448970751980943603922409809110105403437877928393148531014971734520108388954870577504008383023415058534589009357597542363316585670461746480202871947934703968727890451791718547461649315519148809571625029311620519623536656421489101347460079409028137140903655772581901923803562683690738689322176840235007869738997052109217146074935198153976802986445597718674429380297315494492161110637204492956559312385459638498892892557076447007258933803871686478830250103786793343951297731638977402730192026270990450701601436791016121467321089964093831590420507308588318626144333725134337572140140728674818806344032897471704930230588956184769132216690464745064999501919702574192067962556402013693524135165934083668136033487702466045033136438671460212403369592764495689389602476703488657386996013458137145814525499814110709842590307762162736083940209509712775351009575567657517980028356637234448978732895869129030178475509184887522792316139286263430692646795990286439052776478870860235391720353592151407677032156804486401593632745539195648847002729857380448517979054514077558239193378010114017206431635868222814991722268773086892461940224620745656298983646678063538353985797189800093201856592608481048691354208186108701886384785865797627937217080638407014741573331706821790134408081882727382085645045063665560921424250440126616832432615650756538820934518942544063847125120890566467658337877586103194830837191791354418422673859359872521813720172495492927758154897741555236842186403855380518791629912588462989579450814073417558520874708299089067704745659940271074840070654067046115163452933573388536720254905083149685457396071676872141345171072427579598921008649713740743557323802472877874619441411352606549549860135176517778954370973139034177530806779566129062816654934836936300121277548379822559478034037789179640564052873280472106832010981430201176672424538683115583021625366729592613795256729114997517470221025480448629257569834866025870956179816356862415123030099335257120012208311453143373131303917794753129944376053308986976019665989702750181723875013115421637337410534652035836934062681812862926425550868227476407305199412992662844219070341932531991898107939460977078102487000046413990326611993040645025868489603953384544031267032772873168895202230318192774081972709680069873600857983608401589440966694686426901416559299390678959912573012235943308806733584003967887435339416835962694237101135648015150359334956064243115713454125919268709529038109216206079321280525116824294787885844012464705403266207693428781382617821180793381413576242337034283877960049016459774755722250063686659147702773528167094648108279118205862262707102207820118844805572820459066558472726411071602271037962188135366275440289849132175151115453551025401988061098906167104542431776154375846621492220912032205968831809046701386655091147697955636746362482402754268867966877230164291311027435628863121590660314611142268627033052443096664137383297533307572280132840703310164428450760188073751173502671794596340491365586237664964434380145394886521421322153094285174931558392537828609528810082860131883516718305199298929463204954788230385140472360545221600726002042893158207610200323419950086735066573632503196566250767482937219087251381355354549084238456049425503130088290431073978491542636910923117383722903545696337230984657071459506439415054848410770608081255119879779030564308719786830344002126988773887853267918489434913525281160896787194419756521245490917116177276264329125759977264293006639235849558116883275439463088074600839414733903619987038790466300621617832587154215196763416702037032420112896088202807675310265707675709029363257452247845295910225449194678275802916326776854575946503740378831972934576259908059847167591752061303354125046007149423793681515951866252457442043650805966976320586007795584762161859363941520512641489692970256544833337852984363266127755491651887919862090346972722133520012442859244172289855064605654787313665147114543742511975796760033283838104651777064049520226535269095302439961208356844892914688798302006222502276277031564978538087753384295948372981769254250750556399288491957357440103231883581218365145955977415177806339707566430660686493051788354649789175582177266443537490214435307249289503507347340688097814604701803821268512059684756521164520730282671199233399443663823878971772571408387291790729912855971140308789615377644126800310432100377897038106460673983021745346126231206890123843316657100629941732218182616615154604884377876212763796280922797058877345403555289841917104173217801220325682019114279143473190606656964697525938537262781395724153885854061778099228525924328333114855580599140390827454049460967320054046355682635376868404667010209533231356096408449990726242012553188258155214042852987025532011780507292919877925756216987028672083564037225936538097222853839897877594446314236734952915026402431745129488936630670526821821389793125674977113122669487164531375601975270537574839265103725999232517562726097254301279410723367395111235658853947988551686518105105723375479496244287585979751303610871439870997522380840134006007924307216630913389220742935227365052353568856445084056816792980207712836432201411411195369060906092270074968516613837004747064720105842571203873794343573588276677469371259847210512017773592070411509288979916686298318855783162354096279928812246883042547587347449876626243193210390234231673569536667541441305143958858652508510821788924452469435066471064319388308502483237084434274533866568191386683857693141424800876911509560613301134949539952979035516374208739310078908537408329738737060593564865959723492156399586755918834413019155299339912045791484986836138561022582398879072934855568136837175199633248340201500795007679350789012921898480405344465382819055545208844840002875720795234056501946367889620809060836307866839007797816079991401796496574897887266372170669312958702669591357426980803800382942882662391543329949434277900116808745707710571466406272566532549124715067622531741212789663133193484445618006107796930063805699825085375263572907474365646829687876770372981655388220516183717232556381974341485224096452216671240854019952627879339392696492397731759526184659121448572645196846533400760359220097411383840054640136313923972167229374080573827241304532026750217621977741717349150167471760955637646187606628938488669791565847479798088535462899685575453355917179106871492175541125603311310682243627646415156252604502947884207383199725721183266540235011998001247162878862561175446100801992923481999220934719195768070394944262814838436367458907956238541452983919415394182715350689744547689500147569886166469533133899954515148667976677353460902827046822737869749337436365470822105645369273969626232063541393733476634401704971015648522796208764074865162371525427596561507531739561099427355420416659707515483635755639888610675416388264229093749737456086104366279796852284603505943726638189500268937036429399268073308191620102491045930889507609590507934041059549665748916239617070665192439308725040554949095515405588260397539221212225176362770448156389104145751770446173911438894934772681740145053763440933494545310905514515242677029318490736601271769377035508380047201819836864586643818672133077779904001615940728802928048509045159682747120135214672659519284579480551191820149662317030951475657535119312000232440104719377406380694065465500509510486190246707759471173020660588953639172638653821313365205998705789055865714211127714276532970250371578931301962588783919642087040031396651026877264403263145408274784908096323447460567399557180110047504740738865621073303456085673715552594597304454693832048732877500715114583499114208894607114537246686645652827821399254944776889723838709853843956939031854736935532125432337043629961514879676959982320931386455174396457734728208173008075283030386685199419898210002162644096540507509542777740286740598038859693374909620715709811937947001210189404371124142089818956032472150729836622489255707338390415462877005064755420002676086799996120798918595657090259182175519831094905517930302867918297287890559867120481478674143065878787898553276597303971099273395130147882495994655406552923713277063847645201996551799399171047012246430999517317624003657029386549509433979862367753657874455625251908151915938731302035622137493685933056924488584575916483200153498764019147911217367248502564937963125290755181714565650636296943964375986630683362519961543707668593189527971723624560038862230586445591327896705884299963499723625995080206107397195756824581534665300990584321517476043920490231586556415343065811893093442560705172599269092328050123155827718725851098116420529524378547478662624533109103706933155264198302031801612860987268833110296471005413559456862201229644069545988558090522699380633207466575468468841148601049595799977259210950710539365415128701832431213556259615882316371823011165400673163829898494894957479378801349151229984996014214864603815783116293856944074214022917823204830454157915212657957792674238563087620293352360911841776672054969979803099202700214595180524254313123800755779819503525999885694199802917654761509762405800038068283015533544489226649551485180476220720743854201209739324016407989922529849521934531472078588111926429905821406788018778148878540744221717136458828646798490870622477180049272715564703708061640777224706066856680518684493241993900769157310969237790785825577297716801619960594195537410835046709570663364163651396993111786962876561356883098009324096894882545450141004201983451206688056905319637544775618211609040626919153440798237153856527661798018370176314682511743658344446643636934250214501935366677149375264519156790865259817882775389623837989636907397905082575667150112006797561340424201774697868319777205397652334234493582898819218260884186636557950747906053474751300394252421443610343863919840819249586033352234476346127937171223494939295183980397726028900995078471662003561429591856887517919150444522303778645254942252775371705860659815419740821961613144584901165678412557769177187002155534118925627804607512418450866335633354644191182104709363850490875101541315349642185983630903202020928331998962005234726524995956723946041630397616701802185212940938574973371281847986743361088633115251328983212857200330098877363991660616734172374715648628468216846940886051435145459892040021276942138519239912471700188075429265403216987481571066560312651954695094625487983809494360858096406487528068100697662096578723991649010209041509799730857479265158201836552979215988039097322691431770095176407078628475971896317794150228511419203369434901765024604675770689723636205503867983060160671534763497973632295137579015535995868677198926033557288229714390435915737054618966816136654129254541287581578269646699850153889362473255104923635213195987528244373266717194743652685664232451763425866240596824563086223697810163549264794124133786058584386732116570297117407511788316801701581644234746321187301201754638575813264130218313539827089950903421575008731278480147910166319274318985027525271731075907981896990399847088813177387596376566412910964787464487389196018419958931061738722012798135792953650651043614711816788530107553250684103261283285849460983149453663678163574722798128011382557382441849687341424188388847013953713136703405082842310133787087438863803579757447104299339693958559177412853918418749569747022184742987659637662682690130180642201861670538440446345128452773477643038785926919918242446028195795232046795342084497124529830685551526118170087573162924127242739603410803296539740809049260602635106641548455210625161422797415445470123109772397429894113308604268252005577742476570182468098878096514500835971287601886323021093455548626226798838298064104733669803642244930026821445802836743184074379130299500117496818572936341222499151401644943912043155812569882778359317213653848156814606690571422324855752254424895065181293131917956743334230712224210214451336859816046952296397603015084529327180365069028583654878640585922515879259344060578540568923310309658166439392577631071333560056464629531112308535002677487560751798501813926639156374263127632262452617207000536706860262802833932454512732462436108702249362798085777460245712768662764804046466182000573034494707227342372290428483314885517397052143967332680759452206740255800204446826794516467216211689645352992867337597833193065259480912461734367707759656778143444087105330892677281505182012198115642917194495878377725468110537366762281763787309762186461994735754902557172699598623985209862105074589461704327596461759629111398990046181186448187339134904511858676733840887578418279631962643859515311180870055011507884459734896876178469845979532316252525887806809742651312643145285495324848187558672812566784915453788239285228659912588586753765354380249078149241660861049353802434634417779467073155832566281335936013147736405574547026894766259347128205249269057325231121561649341113006896136169975510882368717516236237486382215672960032602987904107263973567058368719638565092020745592802684134328411817273968637404335048006136187482499249736373020739102461542846617235145121861916036173402896220941544367349392910928345531605374203698430137401468821975562404441514347540383396291542632466792598072379655512061347909453899338276495600653952465455242170426635405515069531308442437462318311396888669109295569173353858605154911149013472028444960215488604223902172060005077207279889700578695266992056699446066345793488420551760652948051146096687075291888302462074142177118726994998069177972875322088139667649165612741985637154064295259357653432698092261042241156186027302648576918514337014878386477056017987480265965003930482977565950886536125292334605555603589163266037576875644605070586271624162829023162386348684006007722326595194249245306084484941779636029164184763434402003347605563259123635141180423757356644524833877340712005397659990221219668706413024892411517952699854030354079067259223341301717029820660793289484665775903197693714382988467300200215299096467735646083636310147306351013719039493707452700315175703204529353416177317979160482116316041774160493213046986464547086837595863165897019455425580259234462214455659312553058452297787382807844150631665160025525070533535293138135677613973356154476093078837329216665148827140079310533236976560811615463699475062997656161580495262950692174737018092984042546442699864423516599028862381521518895366495935097954589094234386655366991224608287961523635202994365502522911607433150970265750824142649849683534884821138108418897201665526102056999754746243641417261566320456161679147638295976020698246343821572689181521042339141816304522732867026317815611441786857508011061862876329219656797892719502897154102597938035180076571729942054892091273086220192723211287342293279723646299326739434735410685360148870237377155373554812953489696745350713142207083561214192972349781616039445846164032331383781189549501814870497748546909690928694199230716399929681295755401165145452905284653424767035678748678071187320113635523085203621293745493146167583478743671794358262434519059879785709585262783866091876971995848122014930993483814361540105091671013349219857403469283822977521725698970709388777653856807054786275170856781135530541327403105462674663398207654238827373280294486640744013646232255829901334168921118404513122494261070420724551495912678546591936187429198488472172180540475894986583519275234384433145537510004895321187414972612689453298308048749032185876814057806788383179310482563345677362067637195844851506306935927267152903030768447555604682355098745484290285759127270486838053116430251322187700947191876224109930706314977941948552640090808743677335991696647792072270170959868048774584151124636819453231036271547166778394159802734151633276388285553176903360019239358996054170762914280716426464432746193651204727531840090628506279108263621995213610878062732800585751646183430263384643154089740301169136757785576908360560670642462412575765850972263253012291544531676172528479207046491230647087439663959425099021805665138327161792905671334368194186607484732083104550028345817839067656458838469202502651501549431223164029594746926628814507276596713285962098171232518156062341610519971775447314330832474357640267453694900310930084083496917062797094511263730352053116037181675034811133274223498081153041472576427853599862404740304146138147239029116234979256084445889008898044358416462932022139408587730860160850432105353685298826407217553767736438671722855477599256714022990697732663390994346762201581818690098321435839145717700358314340471684393303563836523751596293159400410466890601038411796284992759687122532716709119190418138586400120674164949875199424307738931515012278383298820714286798985052896161198872650925257784779659627027567748852010516700547090064988271441428715642554614976341345506002037592797023736631855187720293659690196130692775092454592691332838075440748036702021461312960242529535197471463085316072662496199413070778481577879121011709343227783683022088632710240473055497091528880949742482971885942184558685838299462739398005710743239303388471701315273172596240222106433920293820552911675685454685321793076013900128904409227653252680908640129755467113016297358748930836915927725381951898558888856272397352868776080241339474177426808844886414165663100012509514952945057091238964650435655823163187319839502859095880771825613691048436734504237672203644479358559251966345309937965553549751740816082263889832956489942039240359248164732731501796013462044866788873668163615213311575240547286424712271471259446690288818166918035057713861399760776758840559354063553947037380840730914719910626532649048723303613631159115912851774834462528714408373940219118738601077051448744044108015585309854662442735586501556314221374158460542687190733059063083882477406748317918776985375722908778727242906089196089381573247123688625367171885997396115137951835175045299722693810341223008471832534729449135386321717148945979074306578357421314808133229580392296303526969070896454191007493798246867929794484019865245612031264175392243196952543203243234440228901069995913487845147274062912050640627034719734349842802810441873775896147573110734770625143289648446339823421096002891808016227720296751057701288055517635706665901766428414062488442563543888719315407122940861258610799766459840474244805628038179618830510856724707478317140257939411797196381070792557698178072637202249576648826540324909279686263226903373856181420134860528083698368861125656044898383779452031159365258019927719006793209187554029977630444111533304792185213014860969708298807558658719427501088964789242846937171506639217479504141769309252636534080887398271484863577665362272242783244717614385965703350474892672100784868138464389167607266966724330930532653397253401150465415080055713921295244283622262842905825130244658767877703173170269059501656416249148344188424409235820834420355306190597557824457618816906379206630705095039522660454017451270071407228700828317408076803806198465275707669150642836052790947117618520504025674959527078149470803691030898189381948057415971292865185555234483162152505536849152086884528217468620426728746536493584362530738521992564096798712889538663644676014613517298612515561346043104577198691983707305160163173135989694707810128910210027643018518248438803501580471353526832867145144821454167998928365507978041445552402722334221531766560526324593838942053437606845530825398791021397538722539454922716041594917206482741742982962265631287570401848283980266773670316205286480675926807845500634169276108845241311586717124240240445959699740718710818438319793078561539865294010112951791476654473756576361286227442804467673792468529133754210179221285002971070032015664680448282911213680725397926228803563293376572670198181896661001782488008675540237121138744033963517991378721683652977311195714220553947473392122939732038639338996770438626897698354977127889920227101129171136398326804536820981361482028851662711619666595152961441784363007793632072758941170705747928427880148007173060863443232525694835182078163527884192724170799699891831692828581790746567942956864551710379569401474355114846053791442500392815132500552292269759774265678528401896226146366695836757298131809578216450376698243024349662955677596711178659168120247343637502474226704449833301731931845958388708961573472133310263213739877994414453143484748822152373780819486922586464915164107977114544027357279565303100981321216156792043158586867554315952287685219910645797005609482349782359838287712680102922207860170407400308018241624198903477545053303158494587840032940519129834580513903613026294858668557132252975018766918847373542784519248509276703404213372130397196779628572091493033007343324058595027000639412877950349263805397966419216205621040172242948348602550381402721868103383568271328831267370158962552153264244726197361343329084990105079955508247406781008841506212290080772446394584859529115353252782714640526518458564033454683594971613007430542391095529963485440320897443815987385037851647401095446516050903703593761070129453873256121786461036301829181709069462980177462384606594877841916596137883965240005590708096573632683082107919829510044925853120764795243981423031451990709335297311813285115990266746910573537336201016952550099209370187709981953634314662073727033052953842991512794954067942789566477330337296397912851582635079117723143544711684775299092235230360955650549504619990465747226023795180058142937501943384448157585628701683157131268667191586148882181531024007520433459069850429832180696290827460532472723338520420170827571625621529614904349423573418173176192384459484401669946662515255695173136513918034747208211056183505218122687647712744048417166407671621907548062088082212155688587522274001485754399627434787970145104651391158453311705382224928310520804649362499073214001775397230671360844247385207243988381503312550984146964587240678296023638202886928070013720373340746027103098900048874336982877239460919700755520695179935442501728527996955683715114554330990524498425454705923930806222403867853728021593975922609229397883181155636774917872272360528498514839345449125925014657274716070350611494176930072095144192127917813522803625860847977300938154131586784488369778555448391943670886624076880354913558265405183838864003420042057361141108176822596973458552576494103456489053677721991172929538927992200310477130002145824592340457098558204057001268059201224688338390436353515421308091929091353060256500744355649529563962026703961531919628223063193784695650647268747529388399108912969504325294266717513019515878688448092260717281973196402875526010802325804745724339623094251937521633216132204916414531395368714767351699742097147880769793602607019845195716793204640843888297885702762204950202679084162571887725217232207601053662369563032053588858052373952587970272912589944993189794780853048815990479923473594686758143602983834111853747192672452954980238361750775881621696881132496136000742813090443978913410997839534484803800845202361068062504250237946642015578791694187881867945307248246034212016575547642297761458767871655835386915241308456421075421154073138557650779352079770453711996574844300275521744244756292824327989126044082581844517104565536659201368165951007031029214462233310045295521197451759233823963015721450963329832047686800282280412263540204488138464106416945128188122752133103970378085432017029338125928735723511925675025878935825921520548507835848541582659445359588153679059965430090026788249565592866561055388832763287569522035625416627504078961133054571156407315261949466075338895759010593901049496694233941260694130677550200063305716574674676469779512340774635848677341893866025035558214088629445196253197185609720519869342709052099332259943979527182562260776577455851789401171609893441088266968887865088633123249499219463156504609166011551149331955225264651475957026856994837743151880298384960291278718609856809222887486006503132860783308284900956692300768369967458341319198135446631893408593456925134955755091782030348729442110308245085346487233579199057814200477802994827535561700412934628925584416898025822385671199008286277525588790072049083435769497478127491070249370390967421898147560239414980832471342408242729257701405166037701447694442189430229734743059111777986707129790784891125381013849449073166419205716654706889298910479430427762889329042408766197947391967509317565490630543744249873295945480882960818828687214380674382387312601749410722216767642511451844905988829043581255680442752690088879431673218290583136151482126617447950059116131104992032508765656652653388488857416661364257456435346925773066865870461922021435314373523649583953201621792478960552844151954035531995564374116792725451556113442314083409865313847299329863115528723733481791902187105142657601173916378993726395410217336875133267259801056306278084160957178983969381240377174227350032204123508760889298902456550935597976981052194745689342944656015620663632898796197678885370610577689013862931689602631375706502840302907820817413366052226585537676006975415641173965006829004193282222431327459198231979428085963767831649365654255022501535087315390168633706048700083912465062711073885696129330439343339659002911211409462606833022575924733426133945545461800222650708067099938104631290128365369306361293964509288376621660707181542969884525248495341623513901139170755723233692740404906684033924498023281922617371450384473991807814901374255080914653642081480233466194066817220787411035614784439839276970829382318496441844459798820114179103645932252462892746624830517219729113127701971557525589712909144039265982607208116077823587027314762489295418698477249624194776833659053790421310548384404707424287907849717477181151529646853138099829435663785065345681722288927966042912644521512712265382961536695652904815508853249737741955563608452428111486517783595044936866543459681360238203030036865301080919645012506949647425527499653167417981054731251430430360875639156042568741666555554416262204506445283699013739594715191017103558564684393435033221422074242482076923562270011345661102222645983074309725205143999776517308160034077463367846931644017665427930451566977193601224642990287519240685675093055594420666653310517275818117878703470708398615216810462662721378991383843492347160827479554749834733766320849950035393718419247993194001226561066055557450052912453005265727315638189746217685567893689796851743577403333761005530960559499887797285468541118417546871920733461630972644353314995024909295633562870729272650985298895745430615538105528601282182852376989606129118856961564280890788540360208499041029706598854778895641289602853379290857340646469475594829416446861185157652091482929672970883531095953794396607749448699398534040402370550616902012527921132775345030130518406534604703203022562459584973836635625906484229323788508119444696373722158059818077071021125951899645340151835940563347989473146125992020510004645554399546879479178732457595383914530509851874151331859002592469483283845744017497597683961362694449506181472879014645190966357582250807097650576352726564712499998331122150690514639399934627748974770495815478725622160928856104543956601661155355076676000926073719599932108344963584499607595496723717026384665477485834980227816793920381460427624827571145625637892154228547126529603156930457495921562385990135602379509223207833556962517227559439509545656370116923457593365391970591311713543373013584550661780902047848831831096278842682395784983482563793899799192315035827947890484606797068617794004358671763651596896169969891613451619774150006270460504570913425056694689183822737787316525026800785400487554736794774754096950566112155544361168928347638809378982364088391085432555507384960648689981029953410964896660337656869738538493659588022311809451395081588685259869026508674425380277486332112440946239589687438861951786014753325015356766512570509823623656219776881870311630353877243349870953466574613827536495873449273234171242487913058828058971115196330478861538175624577609569003240034429612627317198961636411673056451075896977360321080687175623597558760612767336723595123915931651626779615109650450460921020830612290541617706858761190416156903158096168374506616937922037651198298684375712549896488999738226203768365070699276543849972261960453709922213938007233373828148091900676075922157966176475055923188265164403034814042121894838844917321119797852763604445519508728930511588046863316367272106899167625303196345107522887760426573893223526307257587650061446566136420701289828881664809585284346743619137781654333975426016176908447964918840355974465456710635893809557579438871166020817947374974902806385625098007805148045808535291411211976372580248430374228027800003791673682962979170744960899120405808458623539872511144353520318341370217897843831968817505211334300073292805245392973708542036508396156202203394522943316662056568740386128976381760785880979228509527245958683450202209524111241954398212865247007441748430401351297560821725029282392067346826811549896729141555630273436963446753515848507646724451723940889590019809266347994430215983495448954601521536999471654608219158862641570326191975377875533834462566221604018613815200745367233141722083408839873394687215060207958989282566119694246534778054627220252559236139104345118079305321098713314995994012512047020812808852560522964610604634084919084953739446452614015448545167752297452892781363730042993779525480482596701554860984090575722225262035762089358811898554697358289945933799103965204286105749322188697925766648293871039158755297431047889016656360188419765625481272520700179331229102971231699918668175489939988688484268667117184218546458025113024165582008170460273256227773680879541411599620605373642811102373106237955962439192037612422845977208741332727916898750935899971819257526865172357306085032865663295495293081607956702005734571384391280281237237343796579379841128663445759489908024215076395911470729321512998266394081328459479315810476202348828218245269481501638774305787251599744725202798707638350357079695861491621517501002644642391036248101005202770971462065223503741944014463687291701159976980168682946708127259987881900477876969351490725922189680218741915791085066993164990582923791559176173885957283982979538972605923542153913389006070118976183362064546536320587439357897777136181727884433554098788637327589560688556374767305630649074666432128072234714295776194347503650331803221739107867141307344432024639437232434066470552690583430302377272585030124453162225399499069562261126310334417369427672757086791165090496571756035826481774605813241282126565048351263472975683914392360583285539972620816728015950026893915628941016632369436645169961264048384681492904082782565530809171503398241056451627169861011121425466776886078590275249602837685828229463252731000581000548844288816623700205119742853618556951692509638608451186526292324888378668667182609983918124455032737431874273298775012915385487704605420647844016703391882575528281637628742891913602806185063650887186424822294031477194522326720757791191730372121289725573059144594757254647363933122486981530208553581168806595456825984624740022800907720528533936888303015131696235241017059457544803342698003764019909703832442077032511121082341392984188962699306440792225824282330981254060277041116963297174892835378658944406228611085648337579690057791203334792291190802622795248881935286064099159791853783985047957047540122812292871874059082844641691102673651862587801362448501194799175284914508165964817953814380137758935833940319312644673751594247112740013133489008305442607763535576640806310020742591266382863819756050932333428015358842117717916797715955523970904129192124818451030081888658181396101906026831354756656574274365834050130545376036425671872548369102914078454918367669445711423820164663851464274961020460783606651044611875032643332022152192287007969937911695168622461504585059339164027384765892054692971766902096087122211302962521292518066188326457224116608661273624996176113856872599625411968683641798903916938013746463467641494141355789091192783471205550780058437204507000879491388882544145985451417154724524087527398660594975716038434795690462783287072020752531983533511073370517421365481795111489958187266142375568338509175834421945481569348581468519852178587960965665061231480502432354932489563188556712603205002518352560977290193142956812922391701529239989565984616404165308748939338663487763106333610432639914139247376927333582433327561143414292910930397171473497079367881323179798684779220595595223959543931493566227856596065149109709718703496504368550532372019749639806312588091670102423385384446083475621514812073426920673846139315301753520137802563725734982633555871905365594170868712612449513975177384828888508621138076078564477955691372926590774889027418891774609379465684911220463518363749501980679791479039160873871234628557838871606197232998835012137672841796277742421529207901336024169566106227396981710503868569126472550275309646988996642564336930399657062045390513950600126142777601054338710622673948422537826948118275122104176546414594447924485425058983546060858207159144418085767039621558323515533837541294495508544779401153781199904009487492151656055665921631510480212227689878179636440849055945070016538803829941604195127265812588022439043340278146965958217572993776006949752130906730541611270029728758450160382436784563676486329530578941858547406474212432898586926139138358414216021658662827949438468944855789991597955319049114648419595762120579498864692000662900993159557280837775165939113709791059352800361790174701714631272760144207049262304728051997364929662123222654114870119473524811607084683099161027169645183103981803847377585309573522734149611838967821106755696655954678632187845957978377814932166599082860293189788576684233200199455625170416594727326015949118215916637645817507191284604258794919707807639025826209102982870248818520139268981677533297934753749218545724126258953771552355035325453960339959205455372330811812282745915426553969660494200753236603055174973391807544494760758755119988585113400316419109961085352506408757609107645306207736384945965516706221795500776626840860352091432935110120029575494358356295293148932217726491029061691343987903808073025465460861298993489990875878992919998931646118944583007915862280188995467410435605244342142274388686634176010232582584615288044241898019453708878459957262477623855775521906508603888968802143388929959777284732875522386124349187706171931394782654975452940337690813603437565844142597702052983743098442143920809149366185751311532148698070294048389023652246353092163896968789965908177664657556580499018292567967731553205446399890051461305525192717359463265337654066058032262076332968830391604582588114709391199703633101190457168103345398620469895954233470930728137985639666543297648116777588036238142903374648132042420505916480632055482014097479100610563555485696009120795547205281150772267638504135131669737190723170502451660826362832587661563277176034234960781304960975429851539531968419279140673012283523168658939579783383107622136127677039779842701697990657542136158948182574492010575331043813411655091920464027445310385878702080107856964162434682613849122289296835121867593471454090251953776660586073778370650930659847728974525952718463857716790165483675985096535327914835609751789844774503679054288716164777013105816395987878080428061647953320318256671310627387072515003882853328415361331385999516247560629338814659739586021506928422484813279501625897443290615162905144571281630787192274382207388717773451169174661864862259331189875643929470735147660453887578260150406851431694890571389425908168043131592547890556444412537967476783002649145296817775515686396184547648859833203844655114304237875977441342567378209166097302813008282840400328484851513126719604617077765046800348195332539108626290528972188330367690849546994528692905086567681466489445469903710020188188563292271056295357063615943507616625366173558327708824964533680871103584571535472113475478132184327673961284159677336594399210341901140573360406820361351385568436702394598359821692117182652580935186114424612450830918649595625763062264910345277078561910170709944814175163678037129582518013691279560155405648678364513802904978980840662073524880970138244363038896958677231594606663831489678138390218579274927916356380377380180420302933761345893789571158422521855054732590592978363524767484413781990027879881502938778327400712048079773922816957894835386449521573233346127965975372106443757618820163226505013035694779164249516774491413953685093317883439014342979581841966142378714214120804179292779496074286765953452426965610620508550404966218269303912792945258845622241239350595220623354756056880354112989599357109459760945845194252187773791327299858223527132827825527146739568287664260031937689577700442955799513972712403588050340906462701901400944179624812638490942113692448648788616699262544334108885515749544429019910774394732929605227960812149065156649526588398513582230818193967234355780691289409249755898813263132542516503470011891129018403794122016196695230037387493878440629182745426696824428625304152753010367740754842204025513002338958545236905664186917290703080400218357954338821967418613148559614167012662934320323123402764229457551340128977782584502851756802659428411488609552075823355954322775615559713887381921499258575956220351047933239032787818838013911405682003456210395242091338068555440863822931691909812332866293425243160068731242600162167366879372742539593943621242407371164509132962968128190418868437972003884892330888234181515885223676719207489818594076869658123563129198142288798263363101899037904035605951112661850882285530294728024231745055274518207025397498288581833992834645591857398396202064857183037104928969216181309995226087717598748997499317617382642998820457717213682326044104073475652700854544833689662543312075981113749208143658632509546507145737868139343217647579008261840620685103033714666327506027868600512854632878941545763505069296981766759627740090652724022060000593569385092704140646232588665340257889385279014907769123107827119046098851182465566057720523473147595417575736046361103388814568513230296012475062632483081648669556904141839762326600648536019080138211698785385833289946868060247148402170202792077775558243131148651466538041929088744213376824795497897222843579613582995320865153569412209268707338128372202564081195536261476521691793785368542774988018207400286755358962521029286413006280190886398944189010343385756764894666155481175344809827987464763851759421326515229996317092714263958231743770483717712316009236837857307200883730573020205151994858285170495111874396474698554249101884534464422305038743558514099237311856033835866004858414500543897687896767385502098276729748540879834153519714000031380406248215357385397192787102270898217680157949036007758242340053213930037700049640948364534568103982286159868093833823636923009886715170576810692364022640987520355726024217170513375964759124734119144464881095617050391660566791258318498472625789818717341886126809783277169749157305707968400689524968500085479322968442009994812632865586044847197711790113166567037579482118134734232951632475546658877168405824207258488221348781868758812615830745530598615068387825377412060105348970347480380619857581713773847948791745522245797403711876594617730623963462866169513350751427634360028005090162800686156720696664727321787975875603911050990034807429825768559947693577304920390126661548908107608290704837760481592077601184831806548655133985722830705633522414099007020643317647335796542009862348752590876431690985057325420611662376749455784117047091431412696245755021933327933698936447465987738296140802595949699791091645867320173466110878422754902972609310185490435713530611381732258247830923184457210996856580281159741810717267739599265871831160682418155625986723507151142275802655220347804548682596904807182682913433507619726272129093412463139795100260566283887543002185723531092307443707142867442744612831889501608667463115487622799224330123139427285969929131161319430855620371606095655743803039207466034157590870938252797124057846594377541761537899688619829638878701937610838998105279196353517493113078144633943182297766495223952079388107736173472011468187954844814127324174113405780131638179271615099032379096875106402812469193773833433461764297365059126461284480453011762757125112456996568493590408197265283983495883898262017948575529972844278328237541412583687909444759709181710423986579525597700418676050014952431214789760838653252234440137548615083024111873885995830441745398329449275642352465900089090912954146398690781487193020732687049035786999648233496424814705179038023499666033237596363092178893704711695467702335035738744649773239767944494299005600468260582926407748110799901798937207044620703756275226305548291128501510970632833638150078249535454906672403377865643440145089885586258308521557191210497880305539195143981279592292604566300070390400747340388707300461835683109604066923246173808230965512898662985418137207537815306707763440962432901624349651419840047194619228300843679620918759715643989249277355689115535975851997125510565972748930036851237505544794605144191481553144329212786624010773315805622379760428182116053125785563287204772504909506277155616357529046791999769230290127652873225675680174439395330273082444923060317267639107407188897707901836142591428235292363630202272517261744080703453145796319003547890549205411227049635107792093195016867474535860030441718260155297664845076346962181307046565268902181539609716531683351530327000758760443382069743777406137927912727677247315912679316908898110420176313350988398581496451157128301829799205351869114732088156012757134066916945841454978762935752939752742450971128486759360431957504523340583214341153684857470971234800552760727949718969736990651937806798363498255979273445806757016647041291770580808443170756354449298208034975329949288723314746516299368501288952153693640656228247152236044883031274395924057645328319892547841341112113639219644948941718402572580467622894821252326927392957408456895861383277976768531817897859036708752221488816911590869552653206265041563587012875542591049696667940266517267896042649337560685621842471399801639616217530750327313693795028948635748451757153760085665191654839811693198053904465962581257617514902836426404613366089933340169847615986359701349119420052925323793941761306746692122356631314316593738966650937421213151893050658785157232473738627360919256543086705232485663301475249064503602419437241192863569457224431175991503114547889323726224423490451341218598879984851797102700653886175457092555391349582144947064135616108851514746676567567469892738054292658922423526767342012403826226143401015189605666262049899168622507414723627289444577277386814491151939913393418551649391305290938644007390456724231212518972056999815113386512755835524786564240417950830208488672825764899581048625905426025848411853754220168887784978199387188268327838890470679814317134312940288899948867176949267799593437489155380709947798081630110271189361884845277302988455870785797821015872658308181755912595165417746653270568771572232059753060393054314397620045250762781219465339755972892003481537060933447456271552943025607158707720443295374778029904096785739405275153740984411402573056323264425479993783973541822655200327467361057602296435739223571342549016445649642525522733368046962309839602683642125562493631373653713577415052129171252942030938014022397809344232675971353790870095406392956248537877294825365060268933064811153997012194441174601074849116480535721913090942069007988518731789770441084713595485153598268928420919689855778703215575530731731700656589121947311436153066096344784126364877909637034058993419181808222934658688199635620501344476235265806636579442081690856783810950321341338540545358071076640947521660333963988582648563532882754253096461409679646423065253046112339355060460999755651493099724801988733249159188381645077173801928962118683474785350602055838231660230211712240154827564107906333597858263795347773947286195789353087983917413304768130521765748733461295177402554790362573520561952738266497472091106364217894474571775773499872181375938542188976321537405807919965423415578130736459584266490427657531746225126443655976615981059283986596835293834651757383640104021596839339087367865066735226440914003039595710146731118311327192909952687923695326390944163717291907122094342772490648711053970039764786664668055164625803416473543516668716104551820885190990602351908422937936789393657853851277703592685754893257709297895980779464442627482878216140531096619603914990591412185600952306604130319766498192317732364321555282132833471720290370935352035981589099517611558762219935532069200021816588451301500210663772743371941806185944371359201640264845115518699258184725206216317185254232442956797868625817003997912237915915510887503709449574962366151133584655634368764911291595244352063681103727915955788867237965323658525196480145255324824734527966035933171114105858474874753261947342394573770637542214531844829222540628790570913418562659330734596490920289551195285188940312671103586102243203180771000746704048721649840110468288053029397270905983438991655444682521065970169555718044876651882795138499202424086618286527281587819960003783887885702550495056275594413196351301105823771973842877632096922591490708094087351188660604887991387124639446486202541481228754932587804239194427987052013828476709397509061571250730292242872580455634632877405202602983781026796070060836139789750095123827551518054753964180440072839261799256328019166871625619228615224176976983829352051213235021976502781685865517926907442726208598229000358261868705416766751217575724166662261481227845633086042940545253955982602356937694966705179809931460759329653506492344016116133184616734606898778333928819922895025893204467213720528853629464380243914333276544302285975424635916446077528866488826676454243428088353857913747684243072882917215573685090263706262908811459185475598222620859339918713823540883310851873917996234059592446402346649105766128760691053566587964724807557265598331951302764367275988692102727948667615897710146889561658795598775381219753676123594041090219819669530317329453513701433148086958098604006719378771789073211272992653576626327850343363511207813873652739507087082466752825811965133350893394004572732929944876189990226563594435680168193291343056588568710732175827855340997922250090104595467402926285756762482396522285485075786753290521890430576185798905298331233461036494608988310628092576679946150019039252888580907437704381922756956549218743093187302267934590028721720066533106385397588705602224630562283907379125349547304547354379554226886017441933250690019930890549577290061893397745475388315379078781730064975617655827907407010155776326619337421231343657650547716205575597086695124995289056325733248851107385436830668378470051272827657952083962609928722840345738717526064041516899441947103351865824556007875457196463061617623133721343846833344815575226130385966967321934536315767153688749094633592574070611741323092886431675819324919663199920304974854535346478069331501488738807762353766309674539097032170984616582845275773713160125966548178323754719122431145749511481369420908429398834329282519504599051781437112955680950818074803985714407065253322453763399876885617645795081846980094394369072245839897256586062451740934080252137717453536861978422830275281252879270306797639311209604258192934627828643558578132952512296511227270303376502854243449295653730759412745502117141031079663828301697632744975959293474359927203515430690951038196830870811362918068837345895501783373070177132976786887993439425081672884854879210936902817864637769202656730400075299439555024884434492573384898588096798663107889330080391500808012143304291887662907702589753277538970985048772412069253283649495492183363931588761225082922293283142109776404784774778504039255789374616575168366893415906158517167614825332473788317609100154403919487001837727419410864592418667245225787186742730486938353004131994569264824129060340092603366343681521539279180884430191270252195053466450936435027449156927343652151471303991961445491144929547908956020901561618309189667619799969066623335314221975140567548385954930928365822574178436912264314851419576559194676389861382890315562718566070034089086085908422486239420210506377789800862419726689875363510617534521482095282088070517014621153231873566030332067938334481159437055989536184039433895592268703639214317965277812769104669134541201728618910577610060406712232388548600362412272810790091843512144563552072070830228275342892125201960138055983869063134670493459582794003023429694452153469273657649147085971944568553575193310842617856896152470088513998197092949246858453694813449998242028873236464007609593848165314689942076622510273677613103539166677175076849072382200437441839369963564608125464333935700731564182934173643851361912788360739744731043807589098097623598083487575431081892902033566099062814210008210497846619980011914829686073500679484010142260685049279563749965938914961120209809483510314072289358865691965320115800804129548252070772979202260078853877802392736173134704616752769434904695550424717566317505728505417951000322737186269641493527816296482111633060009531350733645428195947502608923184188316616511317443964960476558672398501145394909552322948800845122254254512763120703424912546492889466563868480996124075951256499124567682719675645963902027782302595180827774616406509290416200693997685016770788202974897821191528689164617845069994086053909154163714148345001868443188287415615055643365167217017502038208127646267208730547136489193457256134954680931874217757053274578901856752185487111648951462661963987723506857822717291762473151411996779319442342498679425275849184972032191456577501761771953443909127603967224595839844478084870863391116815409862392027249093014485644940129084596500664456365997111253805857006244954750762788555874134046279149929347892118857439683723169219473168813985025859773180132471417077057992754588914980543668277997598929701873936338930796704897821200755512224723474386562799859461153056505418570428368200401316232910952525275596992823585462726074100458718624018277320561308433880120095094829311935087604036605586518508655496216107824093474660623252975374128082495400322332517229067261846479191944291803538721678675630324266847412089069291705584144353285618972230879392810169380659867382949657989964674373275072923249801995780735572235891421209727292613076149862253026528433217250800227093416518083272954939523008843860796417602701015617134353187265416135573395855328412476659239521644201627311868044224938237468986560647189971934974435995680371088676617179728565950835818154535051994092818646572435932198301073067462795282716930565405631673808425833066928177524527243016272882314767690611975056356340256244590345378029570534970855835834846049120413983849785620767100597226329186518030246138772088805427061079082448137900157731965308831876122483430641940322515717270786931837216663368018766280211719508601202480499734224846034343318838713734413585181706625612174816055164315966103900223729746047639892890088729531186806274981985933545065638423970817414225206244114960424486325075060061318177715035267923295200764437375960627911617537926812345967156006585358958433842864985220903465595996290169024087327250914059707157472248724232839091761706344198852637274277606447038253867522271792423968747123289142667013846334375005305214001335878979572604157912100402982953656662502578187061629718054435738247506090398696817034589682562136055387417723765883971558407632309259697653637005181345848817610091049718069132323233451764615540883488957840118787605466281313104442122030329220616683980137388765811216280857429955867791267972027657401694649041184074358456837438046979133209127261719846841548195304380899702704081442439126829394720883473100988618022653871109160784934406482307493150807254635801726564596758184614654683037608878464261980179340859847288391549324420482458596902168715536822073830958927395631133583858654809894752127956080934492504095043455780019665895072926373545845447405213229186857116414083730275132467282465289024586413922494176920541584409554077174104403994041874936460296460288474887833968865132689426847735850807289168926283326601723608246632154852825081851836527082996641215655905098732261681829174945519894307806301746658577982215056701992524685790591644804076336157597877069429330926101731625079720195023504476864821946676195358380555688003990338093667987967977843049791712487459242326409051819289475188267977846875424813451002407456232213053600897084933699287476710671253389304152339644804183247453658245702325415194499156903412723633373333963583975253871939340482280946890668253755457188318234223392552775118545314989761861720365680976863880034281697107197878231569004721486382567189330145871875624604921437439771759284830951084320939070769889651812972342437055242422012086306166029216225089709120876841306736351344912604913149713273750411752993032828367258556668482094174831878672156189044025474857431511128748897013451727581450952418144175280866822724105246888561386696617760107812585013247042851811520280158373618348740501672151206208024148392143480469605850208819597957547518033316278250386395773166764457810127727535116696337090950297539011435908140544843916184444666919332894474474978124614882256476250710154786483513199729363437344582921077343964629403922449993530273666153531298369975011205917144586354286722781000192926176905876375583513567802017719082402756942599266865170196456388399047055789924910486561298145445618233535415314393738598973443708727214984706753674846856134130112126595254408323030934734421181041691174503706675936806025917722099864776168506661298385026269731842253224866720704775978944516243418880186155543083930930649184067666787563674033994178845769818480496968175347002430328601395295954713429641794394143980215635644790941605972295161583165264783893031658469002714869487288723149640333324044236525743347122727870361734312122680679321900395496114207146410513726092617445661709754608425092465582519353935299622386313434626308269669058883626454630668309527872261105330969649627556762663745508401249544074012052808091546251226827519688742333911887099038702995379083556955533320116738662875173388028517739677387111356299925333161228917085211273622552443082077680856326164010804679619830261640239899721368101279705390710994678371917324128973125249736784188318066105821129579824028982352346744365121321156990951137080105054106858562950436597611657022259193623416211329169623257721148351839420610692605629497065343533678725233198065049929495827289755350402501285926693553436538663596443650289726526616244003170150029734908659765516520526810625547024537465657630193658393798888164977769412365890506449893514869856538929349765735951765639176967409534526646546511094178208817253030366127972951561264099765547959174819794251010426112412052358033738446007748636720230380081276498382870027841974902402495902905777741750066707510238690565594393083694175914367265887038154904332096166140555953773692765802968007070448508893227498389960259169352060429434671376085264058417567383345438291641580887321490820298533798823303140059703699780735171754819920199728627854238741387941379903770238428091582496095716544748333273214291103276354986300111531076875778795805493189164652168215864186460465427578224465901450493350198425168910202831775025457960367184686182806380587882186718340273342893421644829450123179187360598148617800237345566423822109010424329571668787524831131251953531432420747029704319910829691214595293384427282788679947424232899481241084665862713865533804313257451627023272131184949308755861412222456552217252079998755811929122122693556660712986556301549064099010790178841216249562457392805561194752762149367318619899106068477527636591380790021422956553256155016427609962198687186859753022846904456723657828824987816550698119362626107507416408003723390661867736600592474414819695829105574205915309024452486489421366201434073647189207139239996932360741235714664704679548848828440164113341409138703763838490050033743045588195636683945336686784466000755079455343531960552413040836661472778697216628922644539338285087075103878283785644820131631088194179057347658688861914004109576114229239813358189082293930778925190690148695853115180918552548660429215181126893885016104718590704440793554613879871834433349955139840616970339497880847170882876565788487259877204968963470825525337559512421604378719516107634287900910420337299551186150805829233557059492036789847672400498824266818734040936820030969739144667486845080214926174315498486908405446121042495186899695645476524530991367750794538006357690997958078767459344633262649075944646987219862621673716211309668165316911441467042573429425349120934465983125969522166483235089191451686291372294142300347468692898373155982442132141435001537442417718059207311995015100386081120243822511876333739035558196613189085309955896513107760109661074629707975295285977289052615409220104378771323180557807743428418277428767957435422643981304195317317968750186895997428043782837657045996722358110426974660176547971266912522187798073164102385551032236555161358948735463968314480253185155279197410432805117735973550575247842924240174180139469143141214439857769359977842852970369548110459054571548590570162812798200805631679270245432960644135914077472028331995620689313689039598502380897844389322751319080308200900195568075613503093843084227175980981750339425554874261751830433426206299420497847073967673554187138646345898919856924928918339643770545964893999923740094390082912861336128668836860932425615146408058556334126583705515013872429985059019165432506856667391832684631929132875515110247915308778204053865872794147362947878196542170006873142649829043243997098263416677252493522532616659737895008977151264176173803564242938109939847065505271042002277140573583381506818196132079601795068748226230262008383320410304852338523359330450554305150161024707000240391541919406742310438322373191403914958614144482190114428938225841496530684948831932586489668461692803636590373190086233739826834198957233429881631847108444375733340169075811299095603502863178249274829345569559920898337669426228057032577116804358759813134240307290337219229373591742473742000926975765084905586107956537197640324815437724962154411969177318025383019289048761760452493359128636079239470005276848703181392717948907683486457888504866406529865260870938602364250568133396318142244000076097818839788131048088063593556886753600652323509725647819546857340039398584490212761399165458847861130509807685319720340109031398245724030017428340352275776081104808596606229616064785273736588320246801058918276084241073174423112197384303822432913005977600028412636325229443339162193917020673016365079203675931648519154643187549211808215358114606592526355426726642120328062465219672667580368029462805237690295587133319228964689859001982804626019785476552103697894800912267980843019806713491895693944754585515988178501888059134399352702647729674469405131259798597022043222230061828669847936413355305063656740597244208646845891946932617865929832545304978513750577374580134815783860478330685929645417269938495739428230043402209638703664273693091248745444075072638647931627532646638143139613988200709326337056216766935169745541670739320007134902872124311519177312680275936585177723079238958922909088563430124965850809791986272763295308200758550839813110404589973371598099473446420381737551049335345726699330470537226669035107225167289639991309793571879059663393520286008562534009845652744486058135160870800573993118886676708387285469865746754518877672663477002417834976809997661260487786207572811407127653944197786022570397548022205193687803212560236181840279269092425962701025666759662568756382393071164447270818230119286313262416492963985032314123299512968088680324114322426046915356008437389021723224718692975362435076987334032582608929357375579777725454214133686630237261962524712863214011528810530844573570519280763778369971706938005439748919488337887053760050594713787020202110979435175291951859387932189542781299377721404714692268767011879136527746017211774056251936246800809277784195874608572329081595438627428708905067201877310121006067863548664503783721821155436781938402476433564962169382861286466211821988029489662225261343381634644906828807923241209747644184921258609057443846813666154987329264548584363394733823817307075702297927449230103592957750049381029539766013017328476574432853983139466341559757304426872970039547247891474086296052051622693151220281686751113675329164525762233105791259240243939981123496547502914161145940371345613891448592453850993278396814401886711060929452247913634569267474354897195840460675361135525780384750295843797583409547599011333505641614977595810521467873656619936439200673994194338615198741824300343390643572970486094441911973497516930666583360953805797453121653368093588048718248126451759692972029375939762796824110256554880931339112826999399604470125327476940155017089948294199969890643983645442594956405078140961118666997634952991525649370883310650702544211612112600421506031889561652564663985784778643985814120392339937389113608908656187351479567034901946609315863943032325959668529612205045588950279193433672852013896648514821879472042033114219611742552362478142722276891225033726201445763715314316199366353531938728330936578220819541637657595741719551230353852613225506147688222929030398970615997072983659985998492083337674455066172481359068783578164368254299039033256073806376172884607857658055100028894424893496432146161737724506633004166650574613222751293155104610876171459438118148824217976918549336349089546995095852450224760801696988826549109147496644719251444217219530692291588711947532112477619612681691992670622831233019218815347580970084131849509200729986552065252447149089664207355239460782653525789881816117916348636967778696101287764367841268345995629382955470856634049575314569789439451028894534349667023218314703540800729547220952825747114808217664284583835698615745484418111321412623126947888066706895805112382122783681432986185061973046715136372983593993767141239337770274306354033905871433196264058401056913892602388563381111930900102478533315436425754165826855604913854676511219899300820461016515977205011832894565719715923377195926838844660962302931499879317733689832184822271934901333827255094235795839154910330868189209282885462238082652514638899178906613861018901421746036000251365646744383301816860446768798904550293024311972075683126772204784961514537985325926929447040475296280639913698335893355257040064480571311994296642996382412280508051761606778237949921865931465805024182985911787932364553086772693466505766659528616562612611833185201906730920358409685338392600290550990756189292539614338071580359480265115763633968875636633850017204968494880566150272450861467802959353877675588983368324845241755260801936966511804457949146574161470679932024887215317157209196991614334186398904721675568385700496833985979854095338019689413184685848338682790807227210587598822106716377608076781887786070275769994078955816233111891040533073455922637119106594062548432903823902002018412869964734600712136733669269980783712092190768084651805541234892368827682746466309027580378110597860893916382316060896297388807173596730052914010956670896242847421507244668568806139283108598690420549253754507341269752469063263328417610893762617409820293786880048362309266537750414995295285969007919834657340997418047827470997029191288080131946343035328506264494448868866963959724739224485267437312185186118124467913381314461936739937025595519656141628243516091824209094305696743740037798121841032281664735462728072410133360178702451818291368359012191948674718435908443152350735438297822706479778496735466535657917648421817784435090608939787398018104294646393448427966637692116402174989042833345347528474128952087000911252981083947558045345748169735824486171680678372640214544939679251106518605816248700515693577681006873082830640546701744446460784850962277299005985273601290209823840385565742558863788287245167986316762054372639463399271745845840376573279540994151693152149461676937602412379860470778490931312898182517320540554096549649337230395525008899682316473519868219210417401239444307942562474408440443255252403178760430610680679310653445425476228155131212590291585824285170153181365358696132115316507332809776944718857454241202588524957353264642390530495429579542215297180043388102067937220692937439236905229963466372813799397373107324258077664086204197681372211689039250928765858501388644648195165051152762384358552812070719244367780053755576783686187167564834410993955598590736009783916237484410084975966680850252578718336795267947110644542822628228250716623282066113805002313039168185541410738145976125968596400056916212322089297115781927624234645838611199206606382090732986406571006201026298886006120634634839179027092395864908493369487308728844096243267295541923620269422884886427763377869037819626688109771016165164657252990064063108319218233780869658903665739697634387543310011930420140093842303168084473130975146218071561572291163268770589800728794331375306125459829252205430179420999017787610256406263002991495162714132704878069300896417591430765539511212701968623379631816237443663467943875092450399166634039274113881762789796500906507342033684067490722381521733543617757816616664380750507196326810525084282834437735227587422980641161813509853089539898417331326978425834334130052451748814187155105277730321809913657016506686703429543385043798402645696193671164043644918797817977723194753350154251461485695307200767563215788870177010707412760446203376859760693179339976575662005849300663869043225856059517248095836181833551726594969530477859028869965972823283191552103982944609830825444430096810720340534630055072532848266008154398005785770416894360895591018400480373095919900692604181439015181342489065323469263036611035212215269746106274533915534995040028604725432749517095088108080084743888832904798882635120009861939104435913199085210295263156686789832766912180895034753939053600431314733079881067974188673376952784663186962084659605454502206421143526450439931424910996047826711784315537627360179904853741712391111256752250297956060535418213714336834970498968428137390997358515037860276031470375403563006136738969923613395598324523154254798984114998764720527345471850569471935461105739967949616462910149257984572006913206605502268468635388430730989015306481727345998993609406848066518891021572319939143038863190328376526241222644767987751797017834629668088806057279928677662386471698465896629577878901332703997658961248720986744301353662781811764267658898845155110056543634052932382701281521168816430643412346451417398741604730513182978330867458038466792772564579917557003191505062769252803359116730311747478954775845587510145043583027268247705573876641189461618616734414687067439432639350787110669765032964000304293169924441694031302995123276981792156004244427134794302553866960401678116095298618688009404534845846058269497887316903706745280428279412959864758315638395240055005486136922886723019321033167402056554446054483299847105791771143518998361840813989601039187473096571915066852311649373028524741549432414194738706193390045417506617048311349139254393733535094471673011149418518821522777847532638478085832083425754545507187286023302576204514685134546042946481681272219616378437164135148167766201719000243511710123253316767146477753485200935624130016151459303966496716085769985006443150621468445401386824906210286184609718308312589557898826816013110218466510725880087776497533844283807628591649169036344096613142507756318250233365068116605633835825905536105765111479387885414005801121565860100749861730532130606021744899108289235449777947467298550434115893902979732090299008453551066050459160190872564249270246956098544851949908552046898967847229588652859015103457514283820501142073958186948835073852017287238750885967748367699290547323368955445809463476987447268084311259237005617702777737371455031594028965698690477032998886234758748377478970280835179502015509284655476112154355784564381783283818729752788796613780347545556841999290951257144282795958936306701686958180128606124022371778131665660260759574979685361760873836749257259672434479979237460531367355682462354426220640304472015013288854515808841596914771679569251147061986803986325981122175816180385340681159814199421186530681135055719180715601643908508082142186228938148707885893211889089219587114099030521526901640053291549360493348247915348728765887109902712560306420877949003264434292884654134903806576401402725603723641847998446476198750217782210429063166350067417975440291482840536868735264874550380145388584235164346597216067960802480835081846787682306452583364918497603606362810018296329040450043441286831796106932526869045469061925031070201789006011937929153232825099577605083822500515694573895778660338379520669137463622682022347323717668074796497574164434589756521781572938555067251385399212340032571473778569141674969318202889725018533394754194674326330571833292262481415460543274840516818236285155921963226720027476247306297711885424377166676124694597232085988147454794771861901643823713508617602653594510236037962547029735701526485487819688315746039123492894053557005053158804805971541558041014093189092320489855507169216232580819155146271086159397284839382545232280379897634879860688869489434172037217493525040982166276927322583073860655017341496421442357444142495108082454236654569569005722835671770781644872263721206971927326427726108290935968250973700697148178996949817668302989348818259307490226176104251150071638268467182208129045666507253327206897806261565556994638449535451212043975793482303996044100352512419675206091816810762766881904310391986205223287694064081230556992821193383116166305434161691573743609870838722429076179409163212423497778202737146929503773762660914720515235531498686957223076998256630578245384908011101716312918032992621966523794453690497883566398616668410616389649476569711010862707776923335017293635041960390991229652461963494664725115603655850721769111319894809982432384737678586186503524770454058032559046671935952675004502324491528691403123459518301783818230603374336162670895425626451198004741108098269026812689154910966864536256229761425544596834132013894405028194182001964020442297071603590375742468037007001145224326538178026401238525589807431105365390821575959335102268502149113069911362095214971350822050658328931922365380903075053100445511965969425327660423293425189342873142531175944778463887969679915946798887187766316265681427735345134856085431955221267023207016751173544886262546902480804796327900681636566990517597976227698356375691615117043454146205163313530124876013926870384442579617872155343578670701333909569162319385805143942216445340935110670543736717272607538174364545073838890870718329948472566582179866118761764865810256362088419225780290447485911440834855433942988514968076799206440655033457136321084350568119803791697956223355818102554353376185502842098086812958059173606170561588955419426702095106048168560325756843278553704845594679333578928494126449219303374364836424608516939828214048682632045787029430010841886521187603586718495118400163110827856886100202781981775710265201782739188085767906471471692182422095688202632539325257053206829864896064193176883447482448479054247206863084193005164603605088654757477028658602218639694602344632268940411361026202894653672366785186235601383782750753847897128788641267468787682933347069841732387559670388206145722673060855397981646154065983313415327609767476734461208729233466262009872217711073534124162382821298069521025067332472175602983574080283227090528497536693442114050758692194196611314870268683928728812056134861043615196507939902795539313666370140670352061413412461298747241612792863198833352764330257938729377060537937322119212269051271073345150581265570979468879256442441314563948107896590206124630276421035620048015636291942249995400549736935389557274758141603589273179681555870985148102653415660816899901645256090620978433593780951309828051770818775763424827032313473538214584014108742751452566268291678062956767420381392398015681578098962403423579563821686195274288590860500742078146569433659251276327690621743333217045358750181131571460681056338065111469604338333172826564230129444321404474347066910089437395529548916041195654406150149454491659496213989102770203665801014651618011089475465903317281001408959650749974504695878535267549771796042855205596529998412686513072922113509501800553524636268300797125483651790203892866403415438971991577318994240885514819345781416556224954569192026484610171182922285628355443756629804059247659774857853043689393076095966982939518970322148156433990653079904459756642845148517686430066285505422499068506338839224310277920385803713504928800850078122692210709111805470715641041057433968835585638882314756348249360137242703657211984456842823548848951689566116155377687541407637354967930128764174496611967193687544554201195184571784100374772402762463829437316601031456995985363248643529839289067255309056179946089777278572436300198978087224751622923073987734738529477529928408900028608536888371075012517656847762804401796038193754232979921846323304719605048987300508062165505677144875810029881795771004359874856501910641990972013702013465043881054139548152047741929123041043651902462561731934940074680758870959050338326850268358875585273617754163823199425978777881253286711893444201816972511798452252141042482144254597071766043915323014043897343686605547210536311588940341215289117842229847332790797823164235251142774057824408810790660291986890713410884565002153623341852638201432423123461075554649714251891754057631665913670451427926974456047798660616311598336354178787550279531929653727627066327338202399400660385466475607665287421303454967681816901732081597378454172607565388356048088005803144701363221339534519954454001269584691599123041299378950270070154665045805076663062563953343786407613014795342831922602583707483991904581121507430769982618133941664395236826166397270819886416944736154566520757586613272683070022951127889249436348969439494827328527606122623445710132875308750793697454108536035568755388713805907962798636582682067338681610663933533493482913033366564822989514556712318896037227765918435038073134436032958962014130736655749544806290549986475185272666152963715571956159317598342402951528970254128168239440936088858861785954418278426336413957032862163203556684405673434703527020991120304239731496505058332767995328631662050247267499662955489785760788980275146687378751460251998215868845225812199718760942570291941296438415761719609123542216232717440295483747543460062126278574675785637553829425000975776994849736624333670943486561637810639000359202460434320930827001586528617479672589053223326719466018430338027035945388606931538871074523855942441036535484540609230825769124531700708574552536302863247579925362032499237087866944433466536742755229985011331888479633503556229404000005011770426965826872563136424369114459682596329847239166633910974487764312111039172135075395066934755902358673760580381097152636536146955350004622335463575554502959350463011336660044242885581564442271402204750596348383038556973314325975903832791453153472901296706865083841156399054915133870879966800219384955810222430619917457858302389673812543818693659638642764804192753079251059650388070639449985540761290306026525875574338950694571514439213585709451336513654784919530167118803177210506890068721660732943505309705385701206241462141161297161578360049900793866787707110057778503142616043207217043243079982748191512694103387439974451402902819235927430211957754423781419457350591492301023596141496439426555316639611647403514590598313262242848306507974674852650142305930810238136522563439381744714954816588562031036304875270051168427007659391199262882106122407709120770097457563686328123622489001935283949403200327008783595455721243881411336806020968640286084097913999833122239322708467060975960113899106129624671339019568023328859794589152125473978557509198854680291718479297521810690505241098211292403995027052136115356587486309269604804874656233227503507609998592483572808091737940682423051336030727762891150211761531908546154161824963833219902290486338082215383819731762870670773761383456015457294696959199771901367251375011360539091554870650841667022632926083642473337119143582880702863715108108904048055837862038719493339146591695137825682485402622262988633478549271376124872035235583011487111985016431103182703169272628540788050184416222508753216540732243408873007647071459034748366236091310043667614644321447447389489355499889394409558221985213431116410819404037040554787866839123858557574080831196440938244927786578288048035311547576075661852288509990779611683353698746854937941024845762142167495781767531477024746188655387553101953152320337983971524536127225316963146752713786729474694020056251052789590338692976537572536859967999985693075262791566074747489542127852765685077646474400497482740695309959925922178515395731150893658951103816369019992736092052956508358851636824489998045129486705847388184942711521617421343707247347407256243200780370251956511441499878109807249941400838702446295702615600252264400845872618656816098758306385443630272890295984017175917620575352913886813440065978299466944765718335423766160557039679586973093926199066690799412539289750730647680281937138108783174943679468346651023324102224697646657784199511206789070808406267013207131282470809003283978015444781127248036827968257058629405104952654506631297655108151573133444263460887220809538620261937372760319460345129596827675053780899563530901787891989949133744586281377219934880137645638914408468692063478615491849105944641782138128095476833664930599849183770814906222928044578230791028158847861933258606582397241759965403468926667917197763246744447167455839410370888610723274329177110292730855523212779968142739057362753557218792147679895483848127549251893775523249655277506543456523043459111279508502891493100396754921834115533004005209220445275610190897490034722347946189079789747280531204320311720332328213666904074306671126292511251626819350826544118547798379097186149230893520913668092358678498377948246472535836517598276216296163745839342975889907367931051223123991387867383246733000392174532303303251775438292762451282351405436713068630790801054936917593779860631046929335793156875876776299038363315747835990765115686224619906403967821442990802005824504036279011014176992624733252149825727482616409156386307702035969406741445502755025087661976678878205078986825211204487162004819993620725836241580241289328133105662142538041872179611155143148329443009387446571619644793154474600127324040553852375483899203963799699058823120534961875307234472804256698436828565050043636200070800338625948044932010730984703936778505976998418589711708483050103840564553031813556393570364445654688683392607334436066944374420828226716170383028346923966875428913840646228594378748341979581975289619260474518705068987617709246847833448438464243952419844817028359659961800647754534867835208762712242972461255998911898623201626386863110234142700666483058643564252813493194543597241455294069095136900313952264425430700320402973658023484847272780246877140228263033126716836792743382476861469883703082023418189228613356459482419802584693425256863700927897664512391113223354428917845174734543874648682547113940876581541315046290829704923420429876189300152722135292479085486528897588296645758653658752741124258601736759352719239380713199379825097759649626437381647030161703505715694803181112616155982963115266091106305774312563422179191822698415473124020370104986651150856550999830207428656115432933537423539041635514559535100929227920631908605437773724269720892975869098311038122256358194033839668826841984341150770198106981673300693723622387938645335318749768977049564890765295122209738510367855493193994901840073662415496494562943263674890981363576112800667040107826876005327519737855713828772027719183937629936908382596495885396437246978839772066965079985926686511077735175689190150937627017237843789504400402851728547575624742047511213718060382044514962252366580334830504973415850314821590671902441829796461154225988323844910753376044772804398936997966996395925397760477246773505100225214956101972073648534720115964150285082934464308964362600373015657970462275583645251249802885484082481573711784239486303826945504658603015377851799160782580034806606218934609654572972205140614914549898482916771445996998093711042705198604694203317309521852352457275729638561778541530953846036387839415760607710532368240467754059649591220275290454415375131178178462287216602371213503717065772566632861853057405203316802690585531017204543511242997745211018559336738257507491125295168839503590941529299872072748024427790504955004190646882161080497805170438027732995652710398920423614633392602453633537385942736802999650637159144228145815115274801128326666408402406740180497245917128556992261739452371112428259078325814158457175849590691131687377544640671210286854816205042880671453456232059461771369217876633345619848196231632020982895044210351062650928984316733099236495808364396354431218573785860568462654726765050057120207247634725438473983332369617557735321962594585840186994914544888579815368177430700326973700857315359836560328301534148722198337090375404086354459980014352959281461343371436468492852342550378366574165100096422654724400165914175632823511351135752877148739637327470603650483378606673069782405063066887655137874211600874035605993915515156636956543263237544750045926799499410234786880887743246947226377430947258530569549462886811899163541265546910623034492699271816917235907349088820903438566192079357936441501597941620106035210220417384243361823564468945334301968220379298441675173231632696141627549626874561211179009508049192056415578198084890973547969501433707396584780600926327099018721952307863087781889696482098317659308973408897372419530953801638713347590288069151924297352269532091124478651907995480957811711630624764914007165078647747315769629190490420208935300037242190418430761089727753510357655787117742664562220777659909332582151415584223450810144306362601188958579411149756371966214275455234622204091915307530872080988601141700460200763285053176388288170110365051380652929777195252412072368113024290971740233663958519782248009386498699841303505852578525540086678058179171968486933956684108761893103923072289565121948617647597877828674334280235460485306707222636669433522830259871827899719841847319327562154465172990512079255104324955124150625667107978141927425187248676146823225204153741766699896083399253508864232387060008821264959102218844126223820611368586094780166074031572273957620615232850523684460868284223333973078613219423319935123798509516148247491240363627594882576060325587607617542949744797762700388175321234392619082180373701519857833162653977407844012355779950141356335942750806523514219788773824588259376288031461887470241494828993325258544481583358320405596713354419296809401603349621481620186168979766001621438034998825309220234469436230546774569882002150251665288261007550666485895291137925986165296002876393973557619248798973981408998201493779072116418211753358034933039207478065187913951244446747201439588301635590914042274973331938532665190724758502160265965830052205487002515679309227275900492789839327046913532231809334913541845758502191459247292701229266182717228702713070391395552982602265956621067045917312057868599200944564426786291232871144440223874764827253363603988833262250209700925531915827959973990320917161992075179507593508144491671567388757474277553850945593710322581169335318246444444471645699258483984342320265127244669718608614470209906066432183034424426856861769688027194232560518696878002803207497613042151454972217372115439922618657695230294556159842271906755624361475760486307460011447104112554625970635551539426017993243717937460609625056995985136576906360811524777542712316269299766596796825791779526075742533716783332010894825688848823402709821073790084899072098169941342756269347443664834231668142886947099999263952626297314077702005207675908892433467316806657580231642736665878483461201200472315861986015648778440602647873724394000738605665168419812128157680893701754446710452424072855018647621065881002924833623029626377943406815268816751509455047405595022769046604251286515373563121638508487470135559766866444366079879715785028170128221673817999052806207547258143467368907834792359767299928458940878502509010609053552438708039470880035119889487789678941363478836240925317926202258093532704232461411800063405709835006478871200739196609771442333618313394194472732856701971253843027060211802224571254172828036113805780367658214418877267158404368284534717655312072051202983754281681408860306161039372587339742867169004069856924623434909597744199806373797451685902597938863105864477634286213986451498121350132623584804356095597634293763741766844481217477948470175260253946950656395384650834640185264083541634707003975387374756354540822609501387714549767505055459995619505105824828751116670304711890287167680041530795806430140763071145437164733220596858218686274947801956300838161765712451651410441564611071301732704287699276233916141890903776178609565084776135270532818331257466058023978122835673427364129867553448952657836427818546752839543135550098903038114510985911283713588664728151663612577489764613246600741989908608821146132105575785302532840773511797071907055941708728354860156908330398131431038305627925731558260233251676477166637420894642031954968372416027037171629534411922433923463894541979699444725313466158454653470889795860850622033970502132374826727197943157551781550543006783226384210248446988074327225710585046975523173009401660946828945399041063091075275926402003006598041961132716212200936591315753023301075407068156706750519140234323561222810302366305923531948484758159973842162457297102520136559737311577074464837397295734197889778673426065842489803469337220624896483207793011317829466199956794782488263540685664095117838551858926344987929030390748062498909090371627951985476255457863967822577801610842778883816664707880943448925596581402838317429041433827853584359316518725228510453927798016408728768013489269206159623762597757526253008789192329709764479703761804983649411455107141035652286065706601962329284005526991907593935285318400901914900166834983615939522157080624559618842307419280007353708515061815938301565928719740765481575404092822761357534650734310717216337766173977839719096458255312506440393688006674580250859345456560418700905446080240705442407798860732745608170946431083381262615977362360753173179067014407304286638184797052507314920893357304684172513326380954882222011152183780439530414391413950230756845925961426282981156487317297945190738095001915112982621029021061070247592353165885905845136795482904508109891486534676539475217648738181006921229784048884794575364347631433736097837462331846916472924558484550072680655067276255939204745253833287573221282763498512117516403561221865821441865988676990563704512352525752284631966184225003387072395767197316277451624602879938747523844625308160883603011324367548050174732206730067083422696019415874492502948019220540848785351863209253835636306991253641186154505940506077990200895275385797311644141289886042990901096089274541169366301888438372036654213171287422888609436868473640029038906054265715338107928448845225524249257737025812961030125733937620771852148759846074588799502903028259386076192908343632821848415524812870495674044783373337887283921521366882054510018101464782404990082919386752500629340910543412403642424036764375334493468895084815267685142722206012315785646830988942918316277163032965177210520037229029916311311161356254828547059020085044706255392143183535884591797104431291125124779485097787402014550500727786568853710713629525505157811351632768572370584487933674853307964305606794967831623854803333304450508474111069900806903066047536378324586827664948307810427370409958230247022746436799185747983869512700614367142883407414245261740261480530112740616403039011849312796789112871658634949634929436797062203071253064817690774853918770645507669200272378212449892929257017761066359783510571432901044214144127474131350342239012868740120537337334568663752824742175124188334519160163844115575801304344239668310417028592350738974958433600762228489226655564491143467380432982275244789565562462547720818426665626047628369501640410414874160005385242303179474328342758200237378899156615905052216408159652130940091781476468991011638272763970879447122935960902663222073968614403845245154756523838777741913208941124038114742499162574155026481861911750705912840706510181619459200519902626147304982217985088718328564780178290190632347672414403563858082184780781303224270368713348940750393382482037373390116685143096588464265729810738312587084884192649517721655862962335494793783792498167054682951673045689595377460953750143381797843677632004827180780031991415454791095741288944918701481116074960974719778649969033096737795779221950280140509837235135229182106657997554303192335765474845080450527453985658942094094999717080946973780548481324189457252809651346356885734726004534715151633851796120949818476997739891233059654989696684389630698761775567946102067641549951264114639409061444529742806902082219454785294351971236458620271592636043857564465474335156470802875696364521720518561064455348831569250308710109650414643407831943097044960926705151657736058786536133660417989711924355763167332702919201508275752457083803871388817033213682646042096686261504283929530579661049718254831152578405435007479893767320233750505528959105621408498816197617017401795942024135991102466845182259642416921365962112061453778658731668076794645881661528135433082155553326375430457558441963358639856864582737718609841901797521992936939458181945477757971323490343654234964885745044198577860088268575877694156310242009075399320305983145707751601378818578480880387079247327955924379967174200151520479986382537120600102626257151243370940057899650493472283791832810934768946657574217787998714347254906300318505549424682650767384249502125278286345538840965313375397659878438652499011597464623562433964031833925469982707665200961386412520898063231405414197281565859313072144970429067223604394264741423691222714167719542960750888809974562426798918316280494872380398270263350642836631018617118197309208878078224417813252379749644460761674139272920022012145419973905051655293156777630700981729625272902851255703271373899522637004932468933480689739678044033322459136005728099705919500718011215534441507679464467960995998122890347923003940429372870660258884284681011542145074488645873691275756300708078893805174697380295273367290560756691400490739576545864878651390001059900209772394103911772088952134249570504981844489308981585585632700136036073365185104802579850589222798418661519517859128597327865385949078733490248052537825702796505171825627867539989900937038878002027636157252060468654157337117277807054600208350100131462448482679604899919403119541736068050497715375835292767403421430209277987870714678105767517456140357979084013168381671272339356530359019786992637736839283121921643061664681676634048441876930026423448460882439902506163462358743662263260363854805408860530932652851037062828997582240092340244915420362174421464756094112351666456057333614610440318720005911986478429330873053127652176609292033734642135640922996571321903507601647075400358299411113142210530484397923711289809234135640645808229073982720339444301355389522743029758250201895495396187017220004399113967491791507958842561179375707896693380156175298273967594668559242385540052212638334136793307978153728990944106649262757375657665101308926783134755031169787398747953413622467168954238216151573632417750124716813419928510258267449243205462106523505906920756244796311970168812595145412684828852758504666591424705430071882160240606724354783570543966030776236801654532775792170150538513921764966219707533602105788250853832419818437146368094636044246870679926879929841942222454206642816918361011021392838645679315407833377221557055197243986368308345411097617922059945503331394554479396965524747379038986133523662279039132194390286663660637254502580053938560982446650666386817814016650961081249574321848237380776200702619894356937524918388650097956314049847182463860438841189172145978670844018568458250801355587597931763087533804213322009083899964441167769704370992967369632871484573573696553058159489190698290438973523371168431921769388783266591851934134654672983482841223498046806439476699624380835993211804708331849375774080433705330995864267570471305590211339610584994320818043017166170001050195141062580224503223538906859982999225211288863795805962522192138673929833378737238727861404211212780048867880111573390408690607169012778904144348320803795952045103140337042547702216199564508301025422372604018750505154716340602140740072800351708049722853981537748275023966932843307278303067202343221025270545030039720130197335322754258777676610841116197618961794298264777510089390276831780949963526186962023336283821918474937701244390584871518908069147109031687276533915996700714477901817448139042563888539478951810472214164583521110079603281943270995737998219515111427111236666024918439519460073332492925282057981118405830593344797801905715363063753285506838220327707457190259092179850759070158303003895699124330597855014049900461558780906288848641121887663832140189721550692558704833649505523276501258141882547278046791874706481787561445891555743423638401097364769000919681866069244357083198818296127433004841763947683945591067497030646103808129139684127440677243751417482121651952378926190864624379801070469740024290003641535700004529444403044146844669656360688127989771117792184462464694021118817256371066600659507963018398186464683877364597564038679901190719372490150608265561354709100445461195360160699618178132370304259445859494745163278194409614334458366958204193487368313014777268513689565811686127233582875743716558140473311736695558520138896070779583359587650348538998488185182090010727063706643714192744028748425547571103905094077085741426620015354847395668611002396597816965029632171417037942063828588677476992252509807526228306127173682716859647160436407736088435996876816449416494259688323917299291862027789893582216834263537216428587197132162466634625284794914802800306704003014965853830370506035920148979449495224358808105731204032510242867476206795655207020750509253471131439482187696343196947417664765062028155805377390946031395987421455716759677307064329058495849108331602975475053591030941359345933978460851940796692314584396692684644060431247182922259907015128379105929841475346657125877192595319455333605329217411451077180720996701081507008309648123052777192068421288424582022494426528873277076687006623463159734511834039715832436447806424199172436747935518423370453501325157829252345651346742667017757718029396071367686774520096788758721339775934568418611226891760835262260161897873313729595693392892030029893261778446416833610013162052397437937811859412758919581860818770621154414926147933259563425953103306037522363120479216837627343946749825719345101616303083519695595503781914416338289914702870260496980911405735748855256375141167640376487585808289858643894232640916047439707981504435623229812548863943337875631527800049485585511439937051067795980400386586808189858956272540651915114593864229415919985949033184359712306460929816121836519041526945701936564864948178533613499352153502207805288085234996179860019711917139736140867998751656305713351357120283055389663658948107147491251630306267467927336177915960590478281274555476345330114555135718930577039641692444945409948851624314882434209092799849781925041725109386097084972526391218664889508437047355441229465009708596311749318567959750007051340599225238315180284098114128199988147240153327736268180776876210400100569060542381008744382299858586623160871754893828115040986362741609143488102055334292621651425912506604904118997625891251963214530151312195122534820861558331778691804086412760074542791538242415073874366899376051966053119424920990307375353059862755550023289674747424006891432991525176298025257771987568369105387203394126891347890986288627830854678924048389632378788556647882985688050863029190011388087790881113411282344294174181644307107403957302534632143743843142113633067810309813048966712445505278176867147610934202061011394398982926240032859099654817543557087914926814529370019892220854837827331987482316833073530374801628668949214978007368032720554806535596803052448534490262029429232116341036378036744194399051331840897788590370538750351910968034644028684035859648043724424598791804437907754044728069927152956686320410561858511977329765617801214343276456920157004058301426198252582496052398827798152608763641763977753592742796649350302227851463253989550195437234969578700581177680942527080863794760879702813575280580330283284281216628725197161871369166442896463488257782333296643231090011779503898323169478480633534551680733718819959885474583211796710771530878225350097020577068184713701596622140367424514205374988686129223685511418034623266530870783821096070241417601974897984012329372471178951618683769817678816375038474149611436211805290321463364419608707437766622504012496367546631691654198951197844634071170397545416135643387160901078478437693981265909076297570320270779033211648132304259430919820947447566762610998999766105402028702130136357107671866170405853143229761827288563913525393492789767007157862898007501028466138354985635344591102968108627223210736816208773871367984582350892798475690633070649109321068561366202776205326729221505945147312605165657615940525323807423856045656103690848343115650628679173013607420037386895914279163323848754957763102199216923405447893398149344752022482578217794186394892791481945251694254518772471336330900450306692100092642076612290575302595258388427866813746196801577624686701724320710101228556419687731070702125977551924373051893446275950094732444576743318960554233701575178918575297074203641879466929397739287880634773886133210038420738293302296319007676313667098833037854378616134377048448546414613545928420431881129569794221866077011396753093468763550213184664168429890341498937824001171386348243024830078569971101030292520427320603386241690825060974636411377113725347984055491542466312493674341312847019860473534376233008278326712017371296158195056571702261210057668316703317280109272705041029439351550293471628923460460113516298569225001091595252633786793364956959502688722030865300975635500719170500075183075219262366558987744137505978239752577052647393774626567329284463855901982027666039785252447835085584871412178105924843203161242760658502027951172580519257556444493798537875545621960272869665557575344687227152319669092124740290927505569831009367247214522445076735992991200749968235844318095366392195797569405392924534094142690898632917867612526372028896842009755406852457753371312581860718205662012437996452458443271360360729521577421836130591788325913906764038415626182867303631300956445337982192575493903979059575352886445190099618397304543909980646503657961951000056972240668978835097634993015259017948160694518401907175218425051647198375751635393749565806580628132796216141206866478923785360614179186572524063293825933294096426877778966480391037314279967592900590805818546133491328407168800817578365081980592046905562532071124589309051599959742564516323353252295554360871997808776104908879813480962478388834536747878334989854469448009186208525039683746040155454586410185852991291161287643443457573682407129194739946275823666644730511185711060103962884949276667783738698058641910303138546566251271968196614366000724481991165231742902392291603895423452965545539926968621469986044911427781682536510595566280099542177391312808360478697142083306834820558165196497924004143059661522696819568793617792658979384525869915019415361182948327653540932326171339436733167732349736704131482229563197579472803482932870561199997764808023076805023753482215328852503214513954574859761270841112060153716606639965206888026019782309467582596484005215365073120096579264861679161107645833238247347810448197085747251289979278693137699383599550527751339909358182405432858482148596695723105161495694312007543813268570463845878149176049497038365437122697045125924137910492196640793888487966010891124112841110334905620914124126328715324667681012032600907242390754009904690256767279092939224321859926635324624305483796225562881256423536222818731910640603435970119682981117723362741037854517158965156511153248515547178496758512570255783484227406903384373945219190693948540016078211906843814670727354028895812562934511278936435623443249606201896756314135402748698956875751040212502862894952468442166048711364907736648650953766017601524206863325985436039240470360903244915421882617910332249116536567509798795990485529439304911924826296179910750974794403577737872010026325629717878686903252458326505032956672241451339372382280888574848283702637116667480404776635894020354086680393832115880213419176370312600426787104749116857144128945189924181941859115530637268182074726326453820605135601755052336344334772705316893437291260703797449848792324601920577203552203398224848366718701520061828933547947827751511290429432800409744664610669471036563422706837516265023067187494488516696226312102461531655302822213990867320907261179339284270443625926730986240706401695485451587618417267982987025001198556882587954475583049829662425076955314678840922573004646896299762108753553226248582902990012924202538044321314493333383376962965243412782996381176345599592610975300017775856655040760912794583230537151635529895741826823700732111874398185091317007798326156537624640738055527883564574407865319977610415189115486681102120682091183359416309813352520906669959405941273267275716564327209587004308933728801640542571716857084339488718174087924682875954236302172508789346496600170811687652186766576704849879642652092574698936812546281083234204708834029291449251726750506210978003401852438986921440181456829487402555057397212281560391662632673656973768979542367293262960667501989370580738865847476975731504349109305479982979657625110543386965092648096039996141158164403795130155883514833715212700527581222242277505065320143178413476496041400734613460917150717775209663481002630837332501477462070463969519848600970342305616211726011542442339784485401012082470965474106947581653034542732434188179822112522925207541667328250946014566675775783401231541752057974201459440808294589907119269003248393477350512891908667931044583406867666112600768912213495898878585662989565405677387541076569445785919077885181976042028416326916789855603501091136709428120290147018751998626656981763837165416838300555454078958668475978356799012559830559701520404656422264284237533000772709149804939212603605654506898273193304054038620166065986337212118157557038347611440061932800065755896796264227918302954763353415259697021419217424671921888828303867839496275401679022308061611361544822450547068142859192909873085737330855254962894041353976814730959774973464466582995669719118666226725480814954928164805848350893214101808377977444919279559248604463250997530141539720123225604651635693576904264451668875946570423773816151568505968678200257704526694978153594926190579971731672712674585216742901787720173517643253098206846277558787774659799458531339057268815208994099266638987733024501729464133580166369449838397614396639166295707502150845908513429751882804925911891774395064053259201753541737705179322481724349167445241928495548535228914726539782496468426054237949336122963474898478506630848034062439753483593992593709349953341416040622852266209342625480255392326156407798459656406104730967215797420369403710466710114295890014517858206455326463483011122808119738944231079033258566805349415027659331191479795778609636153422912427025783745351037139626117736426155075183094431527481913126063867271137790765921992624534393599675432050517862563454399459608219414112711991121062270498658624999449860867346022451146947476926940056352923370161104946543905105196614205531965759915781122561740206803595859953158603200371054246128489931932530929375283059257902493102153930196500869082808104202956465684105335129566083915895741110744914089190258519997767991542672989141016230560198042206060210043388065494325213645645921534475653550172461079972848101967846987248423788566636089189645336732110006535627233743661510362609543579818327196637451164963250538999767220318492665527388711561425155230809109028232350319596337256287292097628933704348604232160103296276708108261110072129002433152884014036105775261161718476373480206671653759393163493839975988982338734700196283727281377686209927403472771841543804844730075096692157873802196057069458199651115389904371768183727830043739630175308989500348602420523690624137871240074701531257342803715267355947366695457272680221144217630328441832466271636680962777397875865978082111439224109761921568759528422154158422370219407908493276375320198231137541783783400697436778895100308069631337844711325543657606821455489861322586563369250724810025753839271051647205012143265337245535680565169755114870419482672744796330787786905081752751662185969219829241069796364547231150911223382969017304540642262642227137581945662446191741292855155689185260631419798295357130728245522411266703241606146241135943307604534544338516569569969803127419260068119129266778347199386950620190288373674459327038739972624711149879622943421456412909673573219288366667418212156234774822392206235427429287738213889696016278058929818114026523591218525263008789771179102573982612579269191607134304189649497649723514172396329812583142579798083273218465246963412994693403081266321287834855891839802091464514307974126906186745816382669022549813325613947990264566124467480184031796788029349587709895355464080007608317514198161409098805196311153552789830245091113217914367035908529648618329774447105044057577921147463496362807426953047439985467768831330960944522104578138716927705734711180569979544324139784829750029355638735550854331958808787893906935545323871808355948550200998655974149216436314587614778539059477523850487664832049452302120986425802052173042790505473640310054174301952968887306371379903927698038287388115965020449602810390132526266231664193097183819917040703640617467280696406615896082200696037563663899721473475796291217778648513739042351297174417755180239755347968373646008691579561772476607684071798667728983847633619882421340077418616031417768744523634172829737216319496906779673580044336545474709230432705977970122537952686777110844424338726021804609757160598493375045213840470009206885311985919588498982622213771788305918790859570427456892677267658873591164883935907798881077840392952720328425628422342194525562748853365729392805376411635274382898513624470433012936177449708059240006431373243429977364802557478346376578491369961144125040403285820112522391618921827405248361936466410185948745490636172172346795746585201496988909880892265215389427699323718846417807520809056347612707273420225587553145752028434205774653498523249088479134050403838249293654429200245807067798498986252987208501176360246980403579220951166224634902488453853347560897903776498701153417538950747766013973376880010941240198673088237595778566074957312278274075949208150503641701074247092391331820055359428616362969501882609570064227459574947193162313644767339924859133558658734857655328837501953747533816858374190879949538893827566193771932149250057693609453937084719557604032332948336730253053557911047847313763406602471953466355961545958101117289078397013748692469581101096145640002181301883254128656310119792604365564303428425618531172301516502585965201882659604049757452231818570745461725688581238984021594261698470860481920449697308297886749024165393262460608325185182281703961335991605691516211489612484445477742891280887103338514858238996254836168562073347449337205992158945714708316005186794413746092899381614616002933452462149168088069688653098507528337627840464644579354279347915293746122123274211002849129361261694572576617278916927529980043131649127273352275177122026106594661631539010912725989538377309697797495663425770924590575229250215618360346396042788654023238647279882329808325874279031751496408231523247158024504999241732873511552997756869048222506263169117257141549306815479645290726673799466711824198510174467369760073683235095617924716489337397163401995245261766617203198592083341426995230286539088631348386925375958832620159058885577146778831329644089259377978018923435417750876097813575198701691778250036702670920439654721337077236808581002844037141978300559794168833616348118662796432840319172761284456825274544093801590175670477523274758465475495953661624194604674014026760269689817570837979373802916331278541755924973485147174947940480720529854191373003551532969228195685384181012213087662257628861190556437313985233108269234506543890919649624454163352095137770049442861554855276752025982475789609380035877146967947957086213318466455493950122470523633331487205945391791459478719141005014943982462536085332383759787208467595217301734924014950945984165245277092112873380953700669221054661994820489750877144478425051662159107244056766245902238854785321469371648610806498287772115153344171796329848564822702014480483606262747169874857484647612380100983412820249962653960951366944477440250514449288803244162620931033575248348221457519759829797118806528939349481524694667119414781649246169224498090382463962520428754384252690588804720137430869194435652448550877692826877890295352741100975807533744493465166514413492409556789556191759026542355093777707242996462128332696975882517164629198371171762143012214635117300613740938440278885816382275587979740786910797495604772847857758635478133058851641849891528087841908619986971815142667286020313465111795811472876082498249901939439824490209874582791003564865857613324172117715881059449420877781994366666643413426714436415811580752942911637633068758810337264006493439337113258230218499972203266935776895695853642688090196135693891383451073886269627391607062427760929461590901256870489182108330383622865522817333513099171290709424536537740406258538729678138445241201103626975234669790986023425041218722165945276754680751573413901476948907485287904147084736277211385728396790492985391035428184004557676395605997964779678702667164801461057778215000205389359408895235391635790211776733910216335716118101075373672561238048409486933127529942657022294937262435535479487836055970600859356582661328103302790139559219551471655205469818226763290127267059786710766400796975731575082381975881724140886652787562641848254720145993206035270185072047517785069362933466695228620541158173470030004596305784884341985283901488284781077493422517640044438339966456097144933876714370035550142836803394327774865712223217327110600893152492421692569883596568986758037413255093160387370734408737149159075409807282509221221785325391872923306129491398732495522165985224635443830992734652667290747497655684510896641757664007945714962945825869698160709773386686256704833094097538419795777953672948283746267041283018013818394891881399259097140279959443959402668672184015456133533350583740985583399009353698944470220438304663055265557497824485055852566724372505707916701791591166238837217016418915363356956121904258976273802685556988984092629499702645339802934359982752959105883322020208090625258057682058674969938962937537802046801612353627720852615104583604656506819006675667333971717179414998997735489089264356217052171038260249804892938725162309065506971393733957020993548541467123586967333244145562402554183664500416339376155001617928739556124174070048436222180693514537718672951632128821745352930871405938774269478407597392108432308305690458556234748825598591815209682771308116467979539027384467569826976884167329321154110027685318455722254720682253177313281511474979503040878766408764295706888887052313387526602378245985494865232826075620126399882743068806060816012421534627954794654750834719592561654196730937543906393853671089477610597676265494584700147102461320162595271108159763337019171310359700305994881190915805727357786079115517102830013608742307185048154569472408748708714091824498534261290161958514243698747683825706016993401798940901878065820211887935532659847411501861223368843124161172580609651576648484652061245418091666189432975590448634303810359904244888699447733246051428747159413057808702684656078797697438602464405326309110381166447894754422016416027096805066858529774239097623861485390618020973633613226424636405704838996676329134764937068563657410806176707752294952840948321549355900700193995861443605360484990770134111810822286334470298396964577855607562645773214609464297819001062563419647700679191713201255078400098155792770134633042497664990655855015347850424522114608053446432411718475594680621820518886269263769044676478180649540054397349294184162182431571464060272676042255124025894005720904518294114609356345564309823434392902534598336678859503271113085414375354635992878429650959847178155023599004223836876850928032217789312484078671614393739523665828756997485598256491272696109987363442529945705408335659643574197809662689478932424772373820604093488755206745855409199382713029219088902135986448377016408998028486776213461816502158096979487874793416291202871220080532784012808241117733595498673263082508902492370788226553771906286210768400999754061969446354771634429000163013265573621174088745221694381852291226032153601103835213355976690217849744171183846882948499629450589591742361486130964180233407799064317554599696863323804619424522142662035961939864543059645144452969996755575295100318707989221044934781684674961734371255711915924999326971005322524462497844416476180796030481540038551431284911096577480133861901785529467975799337206649373925444472918619749615487330184014680012023580475281123378281350828454553379477604156473216980917923137291833921170858195069252371250560210634018069911992151381496436645493967788193101845556183898930481593807734253067076715625581135953730704219053532539226849551419547167192044126504733221768045138204327203837563502139193103881360501559960450454287673811416530239233523713431259851792835513687451799895634653053858765963369030564792479021802890072944648298181918937089504674350020096592346885303198804364223867855698026326674324680533729254511998793086486742663927465658527474761494943394958569206040956134406784087945872901109371880324924115627493266366267417846767629487710795162781374380137527895102920990456107367302739481051230554926110574274617366186830474345448673380157991496019758937201513354790513540973394374823586477980379876587598881818671852270094239395221650941294196736554636896798460074566229468587084318488538594600219943955198885230943805525226312728829635202493810385765331024766234137741478445025203249734982240853774136208821447129231480786991489772334033419358122216854487067126168970051537769582218606624930044376563253436757616363995375808124986541870400876462080580843638321654921414959334479326493171748513785523667375945210738024831203572895296499100246831029243027135097683620736406991101996365563395579172718854405920309975845001825194279778259746922677689006780394247634478326156592913876586925721563413800901830226346821331720444956055025123622959873830389992932232498847990842279029289529476316046509865483658084020978974686433079135889083723847440479547830955230431365343985787489182339082642825375191092007595411800242603992739373869161142387029403350436573141065314278502463553242828200076860480549223920846844420656756768608334870273882886075668952001567528259735163816612228609527830707514138140794804119874873418400057279050938331356320721542594779548685832221867525430351456307862818090750296366616127868109346669092959720182972492099276903402922264524409692454088092649594588990044125804275550439945594885196714334843711673207690967922007638865078639805247450863979456973327614477782184186477634489030852405234088141723599131097534996254007454549012703231168336944951932941403763990390637913399388195878789400740606623306800897967741099842610558392046928036978300072722129515678762135755355965150574561527747505405315114311849388120319996832339029032679677427272491158346525009371049014004227411606556878132242897124710351111455378043279337851569741829586377234604106130522433672563887772231319951859640627739758296733336991002799926684902016588283746849332977442706628673317642941104380360353797186210145289837587085689173213082477486756109419684121647542708676517137247794958472594628782490398501863387514197310538187982886508908321711080600875189428570318257971630450023998929534509603978155146684537099683177925022234399826276903607137183927044620320227247500706930795211886788349026096763580373727709354819689683044053291131226981239371412728644715021861571034604518139494353184890839674071659488149835753433550815240567119397742598447770710990196173327722063446182701955915658328876292011062331336677942185714605621643335283234721924591421690604857304154217374210006969655171412508111765304296744377361023501528187312213017471151077342417276425985356849311537665564814486882506085900235488672027755761474659766075514679328875494168297892933086466029760212237636458229694702910083931546784509752702088157275214102459648823664166468124873000168780751775287765381926041552587181547501394584911411274615698889724605192784124748250011014045060792257970522842082668526695148183640486696559940098389165063305089771665960207459281250172100479896673267694308333214485740345174540057032038663806641825039603015554362230615059479400728718112533425664377491250996961141810377928462737229742920077830221457126427556625622575079978237572302799517918958916253965978738665561033141411358256578374924288471401334690666761558248806683335888804622660614259883112573160360170280692164551377978899524516156261401341951657907305665202160540706593642520218999116549049776401385393242290777729043595680708326189824811678283136730896464561797356861199365428561942305248826096651213548109885845570495176590626968964407498932593211157373859835762448339198461457597154316617940518482810147321711253995234315230047304032949865604606788695352908662628055920283362150620866845152472982691746357578316894289265056783384000510378022318165321794006222876507189782200696096951130817609657961606281583735832465396107891751308217221634955038886761637178156305884150502961377518973409881924507850278576942404587955581642902299857666324533605448090779303461575123982271166762858414255161079232309809917008483760314038041364927051867127498908793115426327608432259244692374269016656141746769346016045805467413026828162790723297389976011685896855684572238756488488028314359407719878175241515376008185247506803937040443142896333358239032846106871265261343087242941200527086376092308198172597072199097946839232158673536817470146217900662587624732310388409676289840691204705222017436255134448918350492820774092186106491721985406428526377833235459171820313050044312677587785503925036782227858210944955627190153721128640039056498890255958124107861386844340711615379169589565891012594845420034080520361810271601293126095422573028253948904157871340684098061428579922085203270948422602686845136779274316960717151216428114313548295753425267804121391971886611218985813505134930649622077926193304104538198553863639409937274720838492491724397233403817475249983290425069909602252354642207969658757378152382284645878109937719329095238020150247246718305714480747800235257743634758489799770388424712212805803851532992057423660986511600322991828986643605636105416885094635572591455346619677991621153107591762006218811541194257564013945446822714269680301979633816242129985967759110038905445788793981225797600625107958179520502846179604588215049906952219997945899021499871884400242952736381799993465708124274746120943214661501421088144913978887042824607951949727950257180255416596102707937222246011198971093881977003516095522540654793014408970688206843670578786858935688172643793055833511404818243784790472093340771319587943219031325518006904641312506604057551078452933057014535082975039984898362079620103623498081757336358932787998939046429194819158462727082320557360190675898780624979892966364378762791701876139704547355570585100814083569543580421950822649984630424689847985950744461902030921875835160305179353682863726339164389330854577488057854326917208334014723804200656166212194865007755618904059565078386146387924979229460929570954101338354942480703298741952864081394207768681459696657258701472624622682603642530127546672523470400861313494219442203463697610529934480168151525797394634890044532796638079380178741409150758648001641870431982303241122213713203594486140560936300228060518297907973787509379995821134034811648286235168832958978350342409450306255149279923968894443750767052638499897403200204741899780426704349323877840569005319692873264779516385289184346059058142997293586476764901004847357639053828010066599291176339232483720741414274698315406967726570981679477743380816645967660466422234798009873174291922695573528768707771692772703592788356123852417127084403089111014027147546935095426360193128273751136654179010107476652526155298564521419132904371830311245373589574415191734603717491443314706401285478670096049957348566375554781216931212533209757563609251641984689914719117897946891507350878451269163057645629759234374306400569401202686736370871411229066983434980548663365217425610032983321013550711393375470779411431594804522371805919593651191173325203518289578588280675395870708228155596910601040530761405346906664595004298183519668918177426851577183793545879649394335513004828273575660983130748755331616943496178867494688289045458830248683688440175366006488880839930992714046844683319071839441276691206423465722811030679470895781973930999030924726774743469083814184187950520939345565506346714630805907718044863559150795378372897168424192576920292076916675798513183424085065973635898995281012051705042446504566238676929844434444030485941069437479736938283829279709273137733953715464852023361329706074294861058268608529293401110972999465832378661941252343308042938872801419732546707918003887283091584712686510808209953987826349572699891718292101691817736767294889161067931217926611690182530376356703836101121035386195388854263151603583510130328348070923887732637012739286231703454423202154635347077018188547591350896091355932400779182390992144872993525382500724638475739257763914234945323930708790037566139259808473486979704137805111711073971486196258925961330894439008087724201556048689239137605948507862310399306831325595635363602637987226221682887418212768857885691219797478963412863632602896700112099468941355010121299814003631369755913948268218257318309496886438704943839732864132537353842265378125649439834693659177394284808623927358764110001368210827679015816695623632354931404038086138115241710072041849261430762821638184865259673071542239856972414298709745725491068367117423621079663382520166525203835500146632671456124899742087645183024248872800374795282418398100309340579603257753562484122708008656192800183498413364005616857848159132608763924992337470158562374239299442525807398909802006222462966354435281095853770240585622128435305306502832240569618848329270547604646197956093802947107815646142062755858216343139792746263180424477520103001897969473312536072142436069856673928859149829128795936438813113703715312233211399739998662717095561497280772512784846500511268471389233691316471300921089028360937903561413011818446376061495941932194614546059175378854155259533351907622615993169241520434627150588434203846462346889849652321623025260348366229081772325488037484415429973790522395975356528682471897302702874447971505159764004356398242440963494216529700466939797090465154415435821215752680662676315386671707230614542192132923509196086177990870136404172492576513447863117115170585952568202457856211528104753271048438617035668195758418721027730835290589758919851423075707041501335413713808505668404439178465905560749437807886086644286942694496513378708031387271134603928303183040398132398731070192261882701157413913162551286143088434337958355815294042539359385825266736518922022075451325657370337039116834037880301559035980331233746079542045984679252157611276944354766111784042531731512344400776869886139983789153228039964654553304384503056495460165896491653210977232659895402563741928300467450888206296378885711100609129434077564559202442200360682092501652813146776794634327659930258429713640356259328224029163424362363798698044253462074935910449307327210631361256687259291742380312674567087561649397627719215746056994663368767283517921024929383479672986547206599746646758733138544392477364668939329546263633557250927217019631750118117084752423731655037379387099283465159556823554158060008066429647228882917546684093917766099394171362410618310951983983833649238841421342109534309073892389324084757915275839475606514529525998201908728990040635292472255809520537825464627739689155607589482594583357206761794892519760691608397285686934517253144177578589687127334624589926419364458130464935290698260785715081577030390069317476409501134708502899475937499679020998825227281419054630503672779949685523438327949019116954093014888872274504866697297034438103347159165732872933431226171794880955692529479184586492811783044679207117404720602449595736408588355865498309434004171632380954503961028592010469649544559988422504233844508410968298563058860997754559635566217150076499222294275968012718918013842385399366477352858521551067873141225571021228828524208038614656426785290458583202715149555721857484391961842011163600928818006255985742344461369906001509314727231881610855074949983538254499899452172924096055697704175526364264187700658225117955183037275982139361609551761619960109564749934362852310008180635669336007347082067997041460014455965210916025912678791585864322351382669947658759845673800109727773049360203353415450772648538952432769613755911714555816197698742669840018235026366950730011517003850125274789353709546794085586031768759533246214341600458733918259067413689854423980716880215743197634537613126370875500283412536655265773619742426407170003547629910104227699084221228372350132509117463978405017767319136104159545838097375411462321363896914074278046771637580145964840223239170806583222700589980746157600533640334123217649562459143557920179160701218325732332990344840906697495733389421410719983672621701486078638877971429587461785195248698818633418915090285686296947381042825186841279685224468233686250916602646760513143235464690888049611592060867797720305970267687672443906864118174525010284216070838178146031383667630485379281383901997931153350914149279691850736327529504544380127385284471216472101040472237525778564842449050256364036638740175209031509967344428880383320870160790171563258212663191071977338691500203218185036837928347806916433652845708647688602656761800349430523338022122863776048966102509359930919655509610811120119105058354619543550180319474329468732521540494189699483594350888409966101670995193522692023106520693812924316225738642181690346341892658798124033657614528586043748655734173037784793239866778322918014304907948930337087367443294428669245204978457502244668640806023040633968938919119402929175601420273713296280475620850855513970854788234741550200655062468414438079315471003292276786354395348803396742184551495228115792454719957811142445814742375562564457567274895623012525936949463838605743039426688825450243447825250231202857238198519590522754172621899711909046115954508894642768968298792385004023660362810282237210679540494160664904896789116586201822488804690371804759479637752198474531698295230473374511724299509877368928917474315752100374982706181378595868363767492379892414183488271030741294590123439525650484439651157887629606190910154689951451925368424944836272497375700843100347344183351283953879332775973508352994378510759417504839503053409315846924727967258076153664974966495820165055999678638830602724576453455712412243708702918669137276897281450653162415478262337354405181885449612670100806641987999044223269063144206977243784388333162513586285283536615728355953951199902538119169695103644899402684562128614795641156627376516685119376196348769301565207338617343531004297332560142748999643830122421054468751147115141424509865843874643281900654553432835727211539445876374734615091194849611761567304159987271322647695460115795860226143704108534610343225469717562582609144458988834257340789542389930626758169174410390324787506604691597828273619769549176305422089679109026803810253914902834862179413092167416731298055440613625196794788816507982215740480863226350097670906201842391073336669857253696971059881343593806483351492908203742627621834513583850543664870709936596411584057679133010615780724105299440415095198688014590111320245257766240050039900774391710969051350382305493181690605239988578876203743206238191782800782027948013059397680541914288218493301897242119269669299421818077994649690554090074328517518935272876910874923891576220347676113558471598727834492588735970520397119112159485401844372984838535240687557934450470936563303547066494389810211029423542674264073174149283566570645280611868199296584267463130428158712624675960897557774671534673385236104820981662495508162224824316954599108263418611048815151197292995622027910033548975223013984769314923590344355545804722028293813456308345473809673166642721423380232014824104887134948051017290802370411835384365549430137652255094402714214406293899232457392101343364994864875391911912910506365548562971435821759433931135205852377376666155562808711398166456191485346694209833963153012335575575114356857192076109341485090066469583018688038615127595347539703517636364505870443279501905164686072569241491610427594522052575277159577507360664999085750725923636890855238622061859270347103846298910237911349514291448925129426766617819451140665011297006368602610652449779695670869884192518060727956928838983258683374046107792844175244984005315244452233596737283622430809055343271537289023936219262983903857547720055880703799659400184690626461717340646369765296255241200571041958586786791748689924606994362820629115634640083541411333101547518744152541732109937645933384784623779141502593019054892195354332002636310358076473005508349269390691536318712462914920665014018729763417375473043389015737302197791795237326406113700236450489098608241813260166249650045074741376751371310447037489402345056735040071487137006319973231975814935029817772781218794868661526547916806733669394986169878448153699925334169629277214331072341288964102298399813014967178195277282087695021877591180550476993388799719590173664820566971304937388936755166797099745147894528401878456449229224142985696217233847808885870860147213409807595840492975264712178790155390194496868637025734943261035032317720893579734308888993395229304909700038184342275150480312568878304612028630863054229624849328349715100085687864751816176349758995711565309278899295508645618983134337224522883736445650533881046860725166626025437746294731271721659507473139771966421765117427458504992084890225088239269412550182030832497704803426257013467882150560817622669453218928059222508899686944497741534680901666632674743208102152351671674785566325417719414763005084955535744222333145155082137221360472433411920405118670836785481719491943586651099041661757711745047434765572938092903734792913277940192005954224079972072616832974157526472895843876239244418558483764627702875768642390941389648203303090681312214702598141078847638661720577794844490447072815979926579083765086898944515363104989756523013687535350757700655988444055228032932432364139953303594728031489219797562020273114689846952116760990958883856642975668412404676189596542279560008644935915867839017791053780505129864284774904433018132232187123125374324921704433669277583320266377539721139339323392484993621374390843200045156284956098896396197028877620600748799253835356626345748658288688204847055578596090095643106987523768491306546081337861559560598298586937440437445200131829151591943040279870213678185620631637008790645653747878950586559306932484910114536149089085345120760561874884767062834260206499698036623539948552439503487132076594624683428691538341673058217721054607831741243917423611960445359295493246246903824712833505326945094023007564010948399489083007598808993996341065841402819071547448468793643892501740428014831750042161842680120940864101168120900974677209601112530201961067723776091673593514998147087527436833770639839350730170855923490919718551316580228632214959879575516258306367845606688095995337805402432398828654575119293558004560156961153693303118586633351201329633421751152855818524948113169808202316712061811185181196461498199939143711563992058219964871317673221109177012385894249019089676642002532901864471731445225834554477786689141252331129366999956224835069618378853692320317572168369527263643916216854359289431807239060831620505024030922603401210485738373103848822510557032367262259885896433826431796768547580064133455604035840030534856326528530523177471178704607305738506670180297077024668183797788481912966229047415264845682681283699898021000250690794918391601279189960010636269430421200916786806323912613172519668769026340180477227909307344184965641649678932571892287166153040039509475151021499201509867318227618925914238450468295465893293693149670141259418186552257368833221310342219246640387812894205938731512047128291973239978336663834126166975691863284929065632623517399230001760300488082515711357206022049577550584630508415153471757592147887686463257702722140964255673796037472360321585005696885082051575203797556119676741312993835765457696183227458825152720859751464413728832287631764979989088558502347346049076911215774412393916545281332238257925289827033436643202507469390826784109552968327473765541424968138635274783695858406286547924438062625566883891766935147377130627284371424325333725450671118300117703055017188918578512598266897399293452440039317919487772442639017401785617129271945525378539676755206596598343061834023153837429647747913077313148713580311167184037398539798308636484174867227304663622264025222279431534827873730831424906366835635063909673302282100473161944760541287197742527201311765984139820477783718145275495242711565274381589547460032202598142769317473592898449023398725910825773372413339827152416180872731272897805533401607548906868101104820388015914718198078940355887166065246478932428565025441404282678185125968780219579494283372875694079140178065248621784039156091026307020495115520577770872802140571230927776173215925663884974034555637817960559643295539900011508736523981054056663451558941137911477702352510952469230401708586305629154100349672784538241088793198312088189360912203861228005275606575994395231878411468261448022595501389103804098206947844206270127202375375366152449339169969175522222084103589109981228259649100981301589678806127515088881604211070340818388414898495001354859446399487535575734069225133833887158176281998376160344562726667085154951377337724902330441579342084061508942779333783221362550011313367464384554380704708089306567166948115459539883803474254479162108170015004503785275156945701691835754701593892181614326339975720662366584950986431626111356308170197872799746725957979455860299396265333535263092877440614742836630961281556678321867999865508193809339133484754865134820689684927583273201238254488734192821842297834189864393009617538963965084712453628306519222675480126607023033676282906913891922525049618974955105104235806812409882844234441778126465473489526656042328163589349367580666609607173086325261202111630658992900055578548006903783082591897540280756736030750715202814073581617921113415373887717640301190122879685475008568302661352385797219471460632967902464989498541411299058888474812314201060890460155486366188809890097677491703585394987874759964837214568753826198218165572996899208075551018209390538283804395110012941834027548094367118120343637047002504913280721544930360665174369254588884114152117191410969087181484523230164575818677402186653730283466847137928592473126266466235189879865799165991771007442585463265553023684311638848634375650436720736568473020052912766259349022005287276210140235608963651037998804537059457609318305186913209265618798707422575149429911605693023776106928972219918769523590812917635218096187105587872546156285835140252040211402560369038405411323693435922685412289210469681430481280390994757313920224728054316417013437809111053774889767268141607831656727658845795950196422992904389702026537960378987206950936459253008949311796061476747411686540396120101439292896543440879537462216193798786080465987596855093340217006933270429318259323144168221401518337929480523777098387874844957961064481796570028025056401000977305100783821060607912940089394236990515962255518200122152924817758397025869154408664892749405336265071216969031301238996535074623372174822690226366987828310455414956869655242068437843623392909366539976485094637766331203340710019978671089874983415029936387917567534543208232900655874278951380782395722700990824022063656296241855096515012626622482110345735616720159805064625919648572143593729827312913305873690608367128230549262357681425821252098856069899165648717511304922092845521979950124465198720194342892185993370512612678886597279415187663495373764369158953606851950584798869792359818835272513776204615573159301566367777899295294208796530632738689718856452644384837348832855528691104907155885680698779277904305666780028654879135470980486356264544920156941896279424172684064782728743266866642124491185258407363047182887113232119359808221923738109907429119517229477095422637715133199969815596605443937113892128572978802238240240025277629311763837348808733672663712103075815174242110295068706464607734981927906429019438371661865414668597528827073260044211569460263950823675720888158907929374395941227121661707557662818687184055039337175804636329791703053077202432311721322481075497462179116444492692636733408396070282553920009944443703696032622506518578759205658665716943102742866691077753181775299378326355380715016746175572406111525074021222483981630607446545055878277871883140114610030193226022880055866391516249014900157305537656126883769448804277101634245616859009069060036082656536158124790911450266739539031952102803442728626446034248133142319040327219416293772404827362795152790250937962006853430323770285482938135546589854938988938292065137659890253259094102763012695818399036423376947683149069695928853754416933304247699677159110582727743448316154842247284224554429771026333742250323778114605027526233764379280839108847671615153138917569531104737732589391840399306678612248673510348754357820032466517946750550030269668831450409348074236303058888789334720437138632462119820682276674072959131021274012167697488122913918339887312520681183577413540035529407975360853808960788080128097455170484869511172127866253059419008280168838034911072128964380418309935866296883886123632412904086454684125452049457557954890069900426146128241073081810956910134375507637347018561620814353437714223155872133296621682289863676388352261232018897448456940400521324164964425241534155582683133911543025482691482104256366326230626643605610678140375414417560806362555354333110749979521799560516225983200501301764796628721507960290844520404986985586549740731813438837619184279198522942586180761820583738443590994006182521725686225267949334183760343499961378286735132246292196118559537908186376076297634248989983352535046741072277506509984544210632299734604282072145704981152009812623342011533657127637497852125708928867239801500002023246074638670843691883194339798912960170975260705442869416905938956871515298135929105381255467598177072046828103482737352953555562857633251539048967161132661945410319387043746775163057573180649006615515611111317258725256512259421103017961850671075050804248986673082486292971473603718975088462063651424123935708402232363422158631787614969623523603667920867075442789016574240556588903772518441843881014215493823305836671889273125979903978381987068446858986522542942795736168813338923985164893141873234000077467340560717260425672635565527490543701758528112112245550854898779566407489055050317801680773012530162276793325542357229361841954108028181922393259956589359097335459047994849746433827683253640174877730848532510504144990025449244283317685737279326797545259480556495098516878744305418276006011457794955746517689223627033227790598478490805037411066386429841823276997696971024739197739992126092433482671367901061000691456548223910862849980336833999546333903594045337800626885927059602136097295199872288582218858713963450634911875307713101351032715313680547594651216138742463908318982236633128419322912796639369826300936871341343618885998456720803245009139396769050267889660845153462845728511638874600999434639182106223553256887423310125014945555770389661137170966394021333147320448698342321198656283350258443073430744452163029611514490418117574418146197142574322329934907177316473020319328924462584226859203837271299733248889491577046777652274707940460826409374102474640020935341515290237294393172422995489692446226183894854025328920382723559671302565391585541833960411336148615398860014951552353291604554631500528243193659756257909695812611333817619785501665881664140152694753143906585222302012483155902110179386030668340498296453636895192992171866514767116422854924904991043737525967817787764403054814449728137493106442363842004188989929883772518371745419585875770040958320054619569208714478203774621880138943029999164564637459738800927825341668382143342698734457912648917688737976417604395651315600233827279426929214036781651684387804808923138553104840249772225986956721695961852006086653709245092044822885780720378641990531547578528383169311077462258702524669363783483134520305618687985951062294563586940066767457908116054446042879360253211306586237545483071022372656175210280957412704889621814838228702882409640145316744368153080768854086056033759118150662407714085105834060146946002299373496132167040900695612725430272561894968584228708239001867225330111685548168782154933875136429176569077615099411613548680023240525173695816288215759544954087173724341918982956516948605746165942844605038566563038958986438703428522975506372789833669533162783390623839390526851310628428875601727224831069363699471534474388657325457278392996487033241978578748810834967370885340254086312730033088664462170683729609367109202189743442372673955234689896428110021880018185938556342308793910768886755734000076166470398588104034642306771034960063455087230517728018435318675022889391910622116237165681839612012810001613467065587073583814708306490524567880631845314785603163143415543698580289513176738967621489932127409746044670282729199328566890563113701863522222144820536849814441594624166035340137544240524613629869572943991885799587055468247901640810088591420104749368980535519487465060787224264480686335614364532420185206516196821423817141001243895453749256112431085666036896944680491417929702120006909539101557646871166037778475471112825631033536984149581911309983827662174646933731230524232836871024693276131120468641810581338723836934787986568047230346998147201718015596130627035249740352754193372817475241561767046153181752856287701611977637956583104075892203441043988140988102715127982536071418144950999623689668083115840826565416694400468480992450290089841026255203607500279277902793599012602442662644468977154780941992790340250333862801469506736683143700266538093851055913007782846135174215148015220695678928572446931590690462934509799062687598089796167022513363611573448715799744520493241759630229859972470422790225985350610996310711241205281641924573737446178919386563475581545290769712993835360801237228245479998167238997056036590669021967508213404084754923067750837680603290029242193533069333003776830858366842089120134125106096351835269661113386054965875721249009799481411977925490044942195917452412701170513233324261750642910622539820920020228049891545517549618816258262571569425347469943469275107431868095201936270295938950892515551518019806798964498190646239239189107890317983343180273644123682540882564428331883385518717874494889959934093356046529429904873943015195224894724466211142193181209074006357995931618927230942089083578540708254255491416827567151333708468913985384003772347081215498686212654596464358451320110682633714706086084302926077665652990081902450422857480493016361616068302538671464754178832935305852901761020184935708336456208165450859124468072226372673570495622793632991945543526775206550431088214332143172352033993430633874990040051097944701403944609239889229981614278665160148923238751743506032638562878825708171617803992317766472375068905274709561871781646139093028963143991574887843469131179568596319583139695917732703671987009523193736036421794091138202748579868824227496385687013150311528034415443373459465415268010751336237996538050713508164761013607037196314711002252124473827523749861313397588315815705788830233054147000549130315491462307831756145924178302145809185972502691364509524363737143885105059940131195888866626866301062216329290953224536578497950810045778762517794080712027581679365495040035852406233454965433169826808753604245320384977457138473841642412869333977238488912221244979577213652859621354620029871782413755962853746097488857625702159232553129173987155051497016598259915234154516594648847453443382523720807060452111087099257728466405699835080836758966965601270234408603606267249808506779533096228047541506965484697512986013844380480077184015026870486269804345349225210959190159715064802217413383201564367256717667138859439885083643106546863560369743618665274095059440445881108589277404562335723917468853554310627503642801302307016152384661760982658621002708651490091673156864222369626413722406900094916924774470321233227477374977765965973363020468149753835141400514626185383076433989479318980761157127806583095653899352411020486342580743704831809389785062154270794359409394913384156511644866900419861228149046546889961314348582611745696471913065178817125429956616238627857629076367869175070565440002779112735321738683209664568974245731435195677967653271757769100987578603465423499391277456770184114939449543009053288653726338448333771367567869768848263207865128160605797360394098021051654165117054458806188985527035997654300581500817995987046760623479983477032771268985480722682048111586156617948249834125028559841490141786307285131142123482798254634403979859501524382871934819988223193669457813484154960541671140327730384948094837822379241029451041494450741321411315223253386478344568114413554887249617389510021815788426420212735474335355869479338153304638841299284743481655956688327066993234332258159630157359458217478041781313724890855657205198282283205174731994942085684263270431014388768650336018142730142282239704073579382581260619700519085597005078883933003305124419647035438451393543859130690860963113763067620350703909398039781918356499354700632401371958414857297420393082850361396270259606406391691816313805693154145299812661853314702649828659486110915105980322138997855381202124653247988936394695973039767463781979052823456102214565750677128546070839506327338015974562727119572564639472081061752185815562328980296018346554916892535731102049588502401294264966707303466481768991057449298093986670318662860355654765752056560125147356168972612146122268429405638237123807476173022958204768994495532207149551038771491477581479578584941789951305850681044724864857374765458620070341431541564471052316655350100265132868632887724659581814933330133828654967247843663950056994485089517071209706504039533477175661145063865908009779693381238640375123419121006205951534797601562336726949906681432434353771120862911760390236827050586772347302927643934361411929688403552776425685700279214143044165381701603966189651991582210895946378536726538777550143814126078362283999330788211189564552849518825844442734611086156819206442820722606544223002495854641459044931363337779701202975370348616482265730787704454246331162096660714531707190309624988621735775062119185782655131333260903182979812168428092370870999522005636119338822964900395512693557381828224607118341267970580812384284306216219248368553604512148179569837450891252664257352976240164765531921509382776186997795733744021459892814494711970710799337895256068864434946513668380016987384921352414071581299364573455745580214476697748082913779921805012171483360323542652063532190454658336326882463271399994259457587560027617077159514460401774897329997194317074884995409840141070345968647167767518153488866864271139777678581225974024214738800782491426704072208161918025575297650334891439271654797833697687630907524910536895718985282900621038806417924126574923310695060221803571213526996859443016860282060896379613487621731830089848168501980160000777872079467934474249726674867953049343209689471465129479463869347261447191331596834606352429109568037636521724038222106903196382459037912941540231365643633647743366905437994025470817562988086718232962126579636811787192824649253765952734141859248507057829444253032606914224619792402866937398337707075780635255639722112222899502785432404317588866225214813094264701746336573587497904530778887534392721614741633683382245041697933606134856345851782195491852066973620043183645863467320982117980395084095672515899342134512847500343403516862608531144940293480925259667769107452278297191329087422169626395282168192705278777188595492679844459353815669004033539297341705687018646614054206116734337932097359140803005281643764732442418425024906940636247644836871386875545656326695666449633617600545694440682046926708943306952602067965783039549799779633067695025615115950169160957327319129472194183718221542219318658654551588732197320482014442310584573742914580285354403437277994876120007917516109193557890876459635243421402036106103927990850630565309089394411430769326777686856892255423064181246257124016320766739652712809348011244260244479116338526536460688106557694075188388441422313613435102391321548052909651317767179314491345159786513429239431389655725723164547498914627594456552772974756487544431074969295045091252383555652908517762489644631781391252669124232596871302895064493512709023421200646808283817717063406935717511866844767819070758488042466559856097961842223052722153291285588061656783120244808589177294849362840199826654906558024328539175128420474434031353708288009145774360885342978610463136278343621804891977248451124385908157746418699438899940326863885629982390114845560163454106007765327485260384548779022561848807032320823884602139873423018941040318278725842252569027591635521499719385970132637776631878064694027089645449122595219114478431253597956556203708300583003773509473106352499996035711043515170928694578857136313049965192133084335835477187426360479577261789525197818510635107245328951929206335046149621863679321290945493340602563872827441272904011272930520830733313732354892216915492106454715452861360240918777013309174386930230650158314592241652690911092615036091569442717845377308428387620485935666749136636805613229794242006082640649560089389280608311641789951772209935633511955894720185952686923264236866926251637673602022946905736141410708342979467290873125091280633328063994018728533197640535748978147842620019827515372971794643712683249725327188742567311754132203200278572204800328777267383572083326966993722861331113569390040121331128989058289576905814661929270116498646777765719223318432378578627441868385797118589243483764602992963170054688382640179353469503006136875041082799397449164714902639710174523153950574304409558877136597527273723815286043450743791939597519716342956609069876171890780599092551384323475192231327220161795576009511497641719309662509889997462523256356896858950766036923775162198291560466075806457575159542561817814935587149349582340348717716026883404711302651722128814356804776805637953241213949650284619398351251546608741070893281602367648052187366165418254325701507259950730072012589893169949603946213339744980453789290823924425390716973562954335819982091051739795140850662898361122995250675042227664183007542787747490613703443894210764561554006271053834465431314761029386020831029049816880582049026872830523890925008270039243306687112489824674529365784762729400818601647241130044434449847479254191791664202444640385761413906711130778987170328243503926578408133968402601090963261058795287877382087655328835940787712460235208894000259180847844593067839083874814163022958696175295242790083592006561831779587460539596417410713734698296549631251017479395907452787455055284498828696607533743038858493410167234562761600495076485334477121616798731309368607953625400256838935589682958106096616610128352916108666007276699579527471438582871840796731508771515098068241280647078489794615235827684897103937703504229770776164779707900361856669103544690986659792541063738037073608440931469046913295886641596394131941763424008806175067613041727392938046434066924265725153770415155244877048248434015944360197195554710911212563959878220218303966982146210391403194409510163457435336694219089466824658105527831854660953339742100481645678041279623625156748508125243575487262610659608568440738551734535641891060832515063393613756213044938893853387936753463886961291218230587509606107323432192654693271432899195000683785542191600426852307927546004841028881596691967303819099499848747950866152984951008277659500098348584973886155181312287516961661346955398797612642952203884522242863159254875469568826947513537091398020453493711255358851567779585220901175278896347584186618990390040632129438074078789560130804033777291257010358877435056312028347260949071313613557213086814040221839331857937094090634712334951465879114357298023763129091412419280481016238472908804398399971071652146257234000979976920811445069428443820043593310747084681002668159388749102562242279170747715966621472932459779257343439915059862420407496750774800674587539353074351342526357219511691197679362810338351419622208470209092971805030537102110105462349321398276289179063816963820409586856120102420880110447994854605574744662481464299510561688426463596122230168222397739795810076224042036026136218516716080820894633441982651369618689087894146979636122343989003464624119633520908959853172230823376866181488540326540123904191086656099126251008436901811401421720720982088652383716597010080183041964160296120482154687398595129516571286319267345327555473187419503062093798101686217858440409801546207433095676055090147395177336887305752822005449427875779404225711426115654125951292401713907593265704207084411610745464323425776576096366403313613809986348919268094851740781058725559027638369075886397734732204405581030421346749490457437060285332677949343982693299410257313367114323449294867887931404640089665032291458112925621381709619665666066232769452227541909645301694628592107622457437190748130019207361636070606998891137431524819405783977781287553928100107104296051210290913447611474944868647904919017330265426946862421872996041096408097343819297423844532301764149350351075330999344060665074607988965604841283460578946775185231342865863312901836336933816656597617421153636094781475464969704695742608679134550239748177926363739987195548730714306166093306724300705580534905578165888653608621259862470362306119408710340313493142504151923110737013659242933354904346282785001120442902946071005857606343083552369226196805336780788843338638101282908123690517448894804601868426593376237145156537540476222050022241983760265178344655231228612580090427020918024972388952418608481271264752162815880465113822698844939693084574120271921612205349961284244844583590085351425977560175894010188976365851079817652848771056373653666413495666599403667146844184126868111499696882221042686759434124787747588306151603152139921060433547546444559088505375842813412209260867506980156606514714175739818763312537876306184765891178710767034638778942370323170346885804019567984820796568936208237877169672527298107098011242358596083528541118413765266600938779112142590939023113695524449568208772773782907821037515905712651629662287285303269697867653001230587674178784572784969835031928554008874600438589811191371512134502889183577645337382559633714338629319260996216506530003631133602981599221653332550382135724220322131663489849531837044523783279383646480187094641457410784147264195307041294565277615004417442028833829375646424460471159476703101011768551882478658421903199774144474846256108499691259206928213915991719347311350992757120505508605839277256566977654219628039148734941351028088345799385097627835498776801103185711989973808693504529500716306919289813749595048805007416401593268752119138565895728026235269501205627727189471695724752174006977543355972599377660523143444065090738228696670465997654602958970799014923677903073267698793075913880599147730170747987742333638600345008181429288258521670820401538600515237106411734813715399209037077023513115484446825209745240816039692391980841525510713416199379373953196926420665140718475152980321940149895357697782205664854859601788822594865975731421946268317485179798783814756356380118216213939480961053290486503436724894164221448730501513423517863280765470364709908729170809276651329600602061579164286100241739860894775760521717782609866041417906192830380070700771363074910403770293958144182333523128336122803511101827264344583043461053023603927003482826044710892571251039351208534970757732281840998681212532728384847108791210657483334052412465563210333423548443446378456828774251259962050098954937793649145817235103455622983586733332932611304170218706038996212474592091658003166956331351192013220594752633273759455755386718432172515814158464711144332798130729334587116406843732473397249706270270457994762409569177734152982417489944752605828061037474661199779230931757080050016222087430758813996732924555353992484344951527577541974154497023480138326415031995123686939131615548759459406584208796869071453911080173357319807125536275876080693872175202945363848094320116671466188349034266927395324092856840891434920041665952585060784451706811934888026218820498872869881169847958804921578804818431467907119752654732849870375445811878162409256979914733516125896210543004203946037364202340598192591884698042163555660504197462764520723315049099716645380861008755666488648937420010083939179679115274700853855241968549793654392796738722111119797276977034573888313542094471155863575277770404186540743506028524773348740236777209576358078423806182883284455186591527409846454116621970911422857051641044080651686270885821908185353941967357971901371231535046498128527398914923624305543369377218231845861371350612994991015782311997952626679164658404998011676582544869686880685607818641442352073182510205494197873283740678011949984730410629354619215689859720503597562803191541377688751258609441790526382337719779550399693525674510853287123486808580695208507121755085699727950227371904150114562108917429584333363222061376205971051297918799518275411721156841112439677032203121567803170837497444872697772882608696927315391950417048326937061200356850358091205645274750837055067593723950224685503164797339755948202945682590336310333833111774182000130944149233207393409562676644943926531539007552964103723254104236472163973054110527403668948050339003786664975321537331689337840967080518259519737757299358874247809170840106519311101703584567064583993990830713552867878582924838345180660457040499701875302441629991201343433078006590055278048526980254200070915950196184397736113232116002792502681152654710555005012362257000153641416437986357938958641307305370701807725019493257845219662011818584520185629211897874050794257774093349475532168643147797785169813360105894607246524136202564156280173969402897761605362093924740560634135486051642909848654537093911570074922348277890337881260843144103635726552486207549604577966776168473327383484333941363368786316133766217298957537033910671640760944822977804725105725832891680573392121813529462128512107080763192644381511333218452492410613943479025200484301282851119605261022360922973251518632472324819896903553272198746572495218363948823471675777444306592182922735676981053043482449668943925606105604310191276522165853183571870034512311953656618991768716809384902486373881591018614597156490068737542263934105847451079119165557749280391528767720732652070909954756174615000582580467139232328839356343791088576294198937474245107695115980752410619777271543920623279179655972157619401532157251947647828656762593293146960750432386934238482755488816865335288156116051192097770258232929088106677049343064311521694569558477464985182369850753026163891541167201383078560135657758411614025383682680517099887152641911521684870445640931577370262522420202455469436356595085037223201298038509681466261364666139567581010274001266480123274402269652456019403120435636160959096002370318811306363818834412884849902260141001616011678542860540893232922487023578534797291284644681168487892378059995323810444625225433067671177901493115240751657692097522596997566721403836306565642689504010072866927312075637478249930151010250640607981186845841915641055851216164058448875115613787645630954616907564485944087852451519710710096911073631137355182705466510765124536504573620211776055474195692559952712814995420851097718495253546879256264309098200029466018333599926402520783583427481719543822530620719220117269498051796751997558889586375646025377027473214552135799649177708119638539957039569376843685333450695610539603077441740456237742797958373347986802455320506872505015464444491332798509168770173117164404356380521689288998477312107490834811696912437686496146285753856865455570628302644370228595364460076554777049359845145789298258733621823640606120489486749218670963584105984768985627122691002136634864590304532877250113856799866933394638851476532403283970093747680743120201901887583152568054385103173181694543255660228494135238749393399896902124995439262304582187229041550003971677923545642218221671803496931489252846722313757482301792530137611197625402704244748196528073516848090359281362698194549697060433340590159376187470307647836587270314817408777620321305345511867865210999827478237698990613007205771379443408986918729347806725833419879018260556961471337713465018590697054798442338363829980954969845267470146519855191032380047461368044439303623245424817113389299376100553847044888285677572498751855772047746660398306360040888392031271431058228348201313365180168226945687992187406985453493376177809007227383008244074566407509358650897571754400476668783238639629893692907536330845052471448496639660453959739175112795016113707161106911135183048758519971042298091495230038883734593007479673155328735628273365266127609164336390769881427839602112588336153025967478297178844407469624890090259350006057880082011778112231789366540548074107935750981004843805553306162846796147898516441390959685289338165071114687019611771578240686597949537299204454466699642967509263476854841982686275155970743253946849770653829735701760045063499262076068585542814183528149842476088841896605856256068505811499060431647038809131992751015950969757915071560429947795205601159875861580870373481647204881787225467554630509623277284508610383923268503787779540748410250479440647368076436996118744090855511530372368639652406767016457136521059830045267500237596270007778224712475066544813197045866826520021813311309174206788000425535451387879173377164056711184608071385988094794243858862545497092851157815215144381041914394539764785398057053162193340697519436538037526083582817106691259504795090151113367451835905593765335111171057121410803954322385073125279857600815533774738563265461385449059155953709067789961475690437686975945210476506442391166959693211392844030846596645718579224472974415748043814705770277496048860571624613072085802793940607466204667261028797043413347180702522291662660996549978309737633854541671751071000235178913782298589664855791517549082465632591312954111529617412178658302404020092637757999020951390881555264120247240029122656614324121388134406585562166093770933238637444664780148210178313170133727019584984377617087452780344747183831243934172794332342310740695900710593524753493099405028345277940839560197380695844910330455247182480246000804709769127000111917331236991906652702769241694599965180972071081810879560121823272047172962626164500569357711333201280171276543325026140542338502529708503854459995569785752313020021834060243432564067461074466160549882844929855331012956830658165896023330759209607408319163932783724814656818980312244260771899193291108994981893762408683587750462631564244163536230238779703268632468741180015618520330557137174857792729156794131720066390056939742265260421977693235486152296212545932458681404532895951829830621022650098782439434289795739876028375860362403231692611999841543238195625779868561192081819200897198532732247554431280049299754002633344601221194947057201561507329328664464005404513129680832742203139835575189577209977826830472464038505816141646246114428727478254966534906920947936608513301219406931279810999361269469394257532875695782039412336435945798285403950080839254994002185475188800687143362715824167714454539983663213746053815922727473247805266620275812077022582124268147900462663344787463024864601059680860445686863692001333639703004973194965545661978933322291256773765524932271392633541862322448062184917151275073350430902709000073071989162238686311966140377162256537802684387709695957870047531290492566670886244084108269733261315527209788778344026678474356517500343165375807174040607943698308715132713128454154315908751684157142708438717374120824108365164576669502323102816158488623134603176737754609256496271916801762018089734680870764568324303104502169619795076345599670734124919664953461464491203004027519460319125398668299402613724368363712261145027684085471908331172383711397619657347831389998104788880308641837291533500034762610956134787443925955520406070184544956704071138731393437422602480703813173819170831440393479308718010998434548722944162773036137160972263033309182977829232791433992134027302492954124318650054650831154062288737129818209875634986686939174617747808981426847188971978065583798232416431233594538233518333893826850492020302433636988514910475541236161428452722387517754739143824657486885379512530087711213995880242328794463175278038169650058674540647951052343142359123998643728427783944607440392508307886499424986247302679530447887820251255438596073693196966820663381537887705046288750832365870864050989063555498874839753416775875670840562429579108327387117033838292437019718739189995322869814760775723845997365507468752350815414531453938263105174592221964615075038047132293318079560370682600877055782061509601273322971786586934323666821928864828218809330980665851644033494021917591354183000841719177163423313722414335809156274689719712640867202966215827240275268069657257226457777448840789747202809335979570406905662195909495949925932043730752798802010316549484640468870725011690096535004553629291395191692096963896801642737837712117014726524914731579911168653887561046170902101047724243267205162980115566327632523854930540756904667597603894420697071892398131937378839296238087109755622654844898165891665431697392347952609865242182009240716052090745213316587969582961621912956074752422917366472098552851192476141061793195106372419774334864317679478526489769607064497947796631350963270858300858982246038931565777412386118101404913798496057893242255289638081862722783350333830385629518677281242172002722142302064555416881862409291618437661712845728831230730754304973019101971766975770072528466593466319188446647108397939312579089472977217585567285622370506735729254357777764885773650197541584571635372031116486460172463847556677162798229841935023484372526645057968625680660961881672699321849373507932666453986623983542070911411034874853418093867082203433021240925334412897746935953055674307291964305895688792795088008286576136775211277395446162347823703086316831177996899455450280508134891893848140030886115215982986248524096464855037943759249888893451402353660408459706896773604366745703680216579285324346839608328871899390562618818167495103225531674512991505408823243192075855954750363609357368539853698058281944359185531967791168869535232376958670454110618954938143021415884372593558190219368182712717554293923297651568612238493103141888275463649113302716013778549863401562220894339951044526116842049751713337316073463206833720299766461055814555668745323811508981151923455320276581039497124371427574575537060440123181300266211793929460979135828665034871244459910167124733371717633234876803509571068793494466676399145443779538051660306374689278638178196346695841251519739798942630719107099490648322368219866293717112362924785811573816276289921086566944041957225134392392684372500731819839712711530909457952702197940786654617999103807603425346915158104189882694933952385665569249009484218942858293805567695871279684846639486511225174353490998080923890302594814675565581001435159005375977748277963094316699120262066129837600910811412932577943736706202178442339497204358128819841909814386999050573884772790563745706510397170803733069916249974777331427010845646079570337955400697573812747561225415508462299246084330782016443354347065977207446936248171269272783632039702343255262198579791781091818915635702884298463764236867593172025516511917105028202180068313272123552711880470884910059200979774232724801457090879900500962814327363431644622607339009329077832527364434116423814808067745896452202489966065973767888858688661294546091957516440708335947112854369367175950349601692267497309933517758160016215561616300625158506896627212252081350151192736567920502081439427225229544052720469405470966479609039067460511403813244858620355210534941188712896535740699252811365686842362588727209282269694885557487732406202772677043895373591941704148814605632958411070938679967413633867724539914157806308510921106881741661967013169099202137352979655839934770851230926448044996048152664975967803733057664470245764355647271143454411264405925603852551988721066689146497735299190768424610730211494960318387620535775371130785084318316804266531752109177661085516866861729038221298292962860102636794924790277625327912658595233827934955356278506631546337163499505014760037172710336299615809496864823792442456949757465512832912656496293825143306723663359955796843726405712218879431899281402139924999381780283268788962513860379685895886395949401734082227892416558737242336071630406780895546906070875127166059103026176837583733252268300009904027786077348953906342877214870732890194644905586627599351659535486007076690981576557096851379960535471885905031481453831342299263824825836318782502960150604863893939558365929975739003142941683230838460789906704799825031297372518443208561201544738320321988927502356671420268096221686773143530704645763708573601564767118768211848560767456201911240294830871604549765575601723281646246876367020410674113539966813731581456065292943378659001720584322328278414702394014346495648920900722213684959413039253388841780998623119549333167673147419616981900672140444441363239686545556575655837540822447189016894905408402245329080219723272636373318904770707872053300961395597073773964019317136055658174657221258332553782909382880494229437911644350351328916110810382742770821130551729129501993325514060638530612654320803057005086195566272945195548174313709500627959793982181837541999513448975092834844730123037538423162027072558238582621800039013406349590514606357497519195294082849739535045513548508304676920065314917934482772869258599579311003209978769986792924435820977749345212982915418197612198711580387950636908725014817921472873827023022704343983027187072767110116079793966583213594218727617749199220604811992283987652507750518492074605311305671031719416762136104212093283817659170293881256610436319153151225829242418723305067444419695265513743054973200969783359395958664425376091328495997392021775009409609608933646583083021141784080454284988661081929658409057194905765597875708508326712191881280536144113715722203782631083872795083574911616847587347140270573492664407388423614216367526824203687920288413022758812008357209429989804174913277473599942712043803995872484408429195734099010119469687232843817902277870322948296946427307020951757506466701321941648669423902373616061435931274322701190378731931880497083651140879901109717678471797972457533752746567454873032338960871921390708820535123755766911216352381205888945290308927733920144923775984619194413761612209482662869292558969369286380742515588760376410139671153767821801200891144263364709806746672991359591651809366360158874963070296317020286949006810923854478942621644447869118120782791298540119888313468357041547344844118829587212432153449385259230581425665091013698617891918176268658712641472244101013504965672758920407481969294209025822514954617835181391120050068304865727115167684025924276296500340934620967224076706962980346365936637800407938622606118271149480840999184141370270961337356090665866135090447637442356557014801735557269914007275705144701633280430090053723982779116177495419718009321821257338037349616947927425580045929415658652613237148222126135892167914589577240045516845756483459032434745149924540410676607154567478134173623634567873850469562344379910706429210458006441440631625360560764490013757376404629563523599453395947273353077300098941223313788661940794024602413753506759372592307572488443424348934579673639370588920752022691474127386903314449183241615397637687837386020706063103296810472117393766310489658203710132324974292351871347308196339371780119850984159983726345081579904025187875475283213644517424176547489373469530896012317607919856996917417554654328355282641445077062816910759368697516650752881400498052864934700057953655913947491762222225508525208971046197754479110754886511838378216667080656212315015092765771883233136594461013487657809770966878443301652647374030459663661905057001451029261692680257912077665555773918925868569797609983570171327535656596374964666722782733382205681211971811285659001117516041907227882827883798254863772699141335713586875819542371308053722734563104467834583861137875172540050670679014492360022736589831753894029574566912142299130544111815201340652151102550708892590737479381952332459603396411431258260518968357181005154156555724705894715713360109737927939224835023328251438130935136594841627693720099387317205500102437317767568322328388333085446926598768334670379432480211436607106081094925671990247876778241947361396915168282838302804905635128177319435440979651138078819848516725884931650396502676615197123408474647413371366467686304441325817488085189077608781735693518957619605718102506805035825645380348902154749581981493767788116319080446964690267086698156443795189090006010570705330003897253181501359986798304035937483818291371044592538434556638985738720965240439551178477483582959106807212809071600156468758973274830357480957379261740884773699063146508266538514629353746868208547155855998354501064935724161908634689026917816506067552285078670242180249449671702781751883561194358050713262714523027103852084094676483226732162629435413219285450050329480875791797096364962767842230807469683225293895695301537514437118731891656478565421396910195909800941390449240914862258878238029231041070313649874419965252103775226214390075242943806892698365161988336022693638416566808342537377077947661545182140109070467718468789168366509036126425946086082544371556782477429728122292851264235370030729561522489107069017748235765321702472811599536544057839096794285891510831773773845835668415546213746380347728551502030273301979245158661405603194251081514047286027661351465230268978789297819867854470726954055152312672215192795440776745527514592021894974770641844699173478946478558978472496912769146517305677840929114236627601745504391397547544203212129929272059987239507181309225299354800677410312376647947055109026192768988744148031326754727123147471645932283695236856876094685462276701939177350598427724557891469778168356453576808896008366740245462862669744461529326876937489199435985831726745418144241108837435225793110589489204081536151793986274798657245729207061673628500775234099087390475822833508703421193623137185039328255047213680196533866317924218545688107655614300774479982551961203186692396956588988770310101755392627741825954271638609984798371166625676136867330252936681607586948109087523914796108838498020926806219842240465386682767180737632702050226467637326468704822101892306406332033535667272546906531334569799738705488534829547599540641986475569371482330434366706429435676333792921533512848474348448521443929240075469417152159241698697656347288561933370309521692302485701022424055837916954078909672956432968662662616283768081659797962805786592912689045797734542017757325547700961958559937906139514182436598330692229693615671262955890664494583371616998858340724322166164957639616784881359454291990901301743697514994897047149171149691789151411665007752819078043691661314152010934446171840382233159656938624400725468826597556290632638404818565384909087289351428955400741941736066870916212508442106062990555001184243969827377558184209801845613406031015496838410891227769046504013073740674144852656363719818403674194739009220292863689545097069471841335202040028315695286633109726166575158619577638490096209290449557793102030791670623090106321634536970647841751367715198452279995906987638160789646928434017805723914829517719627868341764509056729485751069732487516022716095125194179902072179752415058034945773630201362020749217048701183292528453128349482837128546719368714915962168792904736025239419224666758284288654424003043325484754117603054271055860800056717909344444722369223737896996990909948554698378408995813717475055680227349075004006073862067261842484611617912444152306676863322805423046959974779191190414647297750218689180940888075984696507165814294765229540054533850774298337453600291761513821984186130043465036096705081408877485093206829238183222267847026401410217694548538921664326791491019384565785398308699283157982735653871699059418072298224719035540417686497711694329022521835007644463143353522688556333744171333155397749509241357077197048310539766485828127318210024742014602472042069369705941212161688050670522126811378684368390332552187981480264174986736891867022243263604178300398164973151828328458157732444626949648734458022747573581806494085877050101923713073346319398856039574352022376715246770332924426744046348341590543971698678638464276463855998185217047349936969467972100155990871498960227886942513323201827521891769024273106777270958099838586946003851925504374349538965936914960524452795613655049838777944577387556269222284677550563649272789511274242826275693153304007450525988545685125575885574546791399063324835257440403583526077042324683751956827723992547876578068019554715250082415458544969171043551539363138957429187704111660577950257564195474384446528897629460052112363428810238438129425257783392070770890915830428746532491723010927009780700437812232597447447471446345050176047018940990911913506925586551199203444843628957159887611778168919017870784794347223995497093032851459604923966455494786281905552144505104990808626707598920163149093295152512215597225527478760750643473396470863492951099256130090347466854305499999892659535270878886599281490027293091280079610064507069344151336995379735822967319606449597296245669112956362767540111722148079211897485282405865913505893902297173620428741812847380206550180478602685481582477316624501344844220747113497529603242083292322547071350125859285662263703106777714657740529637523829381336582791113762445372223726475227083223597813722937445519276612673370326195052928318654908573994916955311947232354014475485515287241438283735668944126843164636540115040244592803230755971286265490195167847914807612847781875974708021757177280976269190800380085597925796332737258784946407264784922992296455279320139750178528055217697744895527885224224864721606193174579100114941922743266199574573286349994563327444695392432317292571025915033394990372764985208236478581051420803568623009008653878600786069472028197712966769657653931776529219142354161105350014614992030825115172360431933374031467770876497129274753396822296708611452786338715826294441999732475117468844220477132274099138037710779592353192123985711557927965029771123315757456069790561330029346007770768072225980437990486966566881580053582295078478327137728306566200116897430531953998715058038010854475627464833699903780491699265579639649857358189693862791546402335551060883312324229497206048668563769062578997202806168030036050195288520275839076153790037597946992082799751391762681153741308309646027565272073756624147473486055695305813489817290858586779997057666446634951703577692804743400810810828886980129505331082745332141402699988906796459400956446941129450202906758025380108779296010276531580415921196327348695081888114496465402273548928798661202090590659490761395965420408112845552113861779826424817783872154921782853266023276165832528308580835549253526523811497364678263259854903417883073756458664559584807805378624644556357533616372349235907312473649486725151629867112008695245685374396397902046569127662473312654593552426010754007356392043759472514022754066005050553575701677808932586639400842591105466962929177565094583288814021319017137444343313283141813832352581597526404566745137554151769885744084302028921201316694810879414858456714002576715318999956219657966996294788112077181489678892892845526901946809866144320664681846899198940603067401510801876100385324019994270898874600583019131094817442087995072382723833667465245904756356817990616841275952043672438201945835423753010759651829679871796447557707119774096612355420520503778494341973074991550547885869840726051747601789742179302886951619021867861259960786806096335022397383464064527416231686018347733464202791779480526468043152151207807364855115111250865278638815845385225770935597790703132180580362203075328939724391782711926672733609267997793641179966412898035769534220674719366569973117563148704502471553935710574169765564063820367032388375118618856516145716131341348292524824998079667415687485281221912272161181025839481059573775824226047274563737289749551269606892914590347867629906908203932662767077170707912689491105013217775790396775324768734821268432514604131657366785258107033982175682258015249913355238444141546215564193475103841231558469994718615587591937629125503070855793498548683751535977580695505285293165202260249670781356015161552037203909607457849239181951185504419125093865229113370128139917571247156540097207856850961466738349823943895663425578986116617743564664762366559144235829102289000156960895051533105019258868911837171340593358890873612245135053907689766690892293732022177031827579970508796386985342243953476070874262828466198758300579752145688766941523240425395951926131708490141727075158427680934406529799779343543663147884892235001568754812026982987644800663542377180848521781273374135893625610034933140203361489593756574545751010146658556223141387071295859271456243857439901095096945237326338808200323691697689334354218561653982515893099316838273204597311083013492377704515450093930376138586023768137866435329146215328279535850775454101185281082818768636930633488027237894110802661830051305268708492589853143881512047401513961008804425583812337891692554558019018569534501365973593824974650476485267858318988303992848798784851344637147803693196488749158079831205736780653250840640907759973224642711133870619510636473106493655880356329081274592182207964301986593706342250382467787911843072758944045913704671405855221242748495348195895263775104257869506445142486100111841291830743846625436033336128862987373656323082866112262718636103198852731014310324957440841366573102767535743425244750527310452559782450255841714851368900750970657239189301183917210989485574740794808625209431585422051148934355515984515572704898566373644972359850786352454238287101677369519068338798333024925711061429010477062531742125462650168965939334436341932945622025242584241560151113170859008670702997347851439571775340332383419574594154790272068829007534466441295203928861735926055126284894850056997471887669584643460583309606839562666015387870771664279204217642672192523318837070549148259727257013971619972270017229322342647813074103516133624101683533275315547614339771104207995795386388888058434848029606569167248304459630521835110866900573873306011573258392248365450444347826833409726324571053802324504753074687643736692364806627281686076718272798763438658906950934822283270907387338982099635685990151808132016892765791145397034287689045663299321709995750883442978991369184490658793686924168368192916568972808035585215367481726127191312430615453117164524772044087636232226661448077804925059194816802387635050238294378549687412715272899594441448792548454525164288910646198007100112187292476247495842542551077902366384037060854923144392105233411888947457436435385395339054114737807654249480263611054495448931313239258013716668475415641024224954920650697858502764943376014575665668022102472594453403266514561030917219676904699498280203830584055506346234443771473717376871168013343017225598671881181936536559871461788567596362960765028952654433194502571469925965917643500219609351086168045683305586203769432782335703782847977238028146394100276447446675761415655998810265960131324354577311445045719523860482218661283976771301992482748148088914126845754888869782922201435328892874918003615546811907423639817408713509784847438532450520752984376207012596823614446668072546939328029378825552173917044812087853006822435346821866065956950545098696383651689452975332276616203439158165364810965005840493055064794308059458144495497018200781872998237375890803407314804600503259888349912686246846941106798180339505845860692387383654822258329494463492732433606238089457343689855326104122995902464147762906782556609731271826457848662817504493872071394634134337169607203561651266015109858490582773885685019295333986821803550271724500915629098950905708349615067624233918287864146633040881962755375496707875101995946812429499646435011963228917946847922813705632195926144578235240205115153235934577511366046547364403676740082489653316781796287010165904526563752257652742744264918888330740727328572211624174354790322217434207350776697093064879695538730108605468017613256889073695555401315340916930807778596929481988742445562494068551584903965878036732964088960410287777938180653174525802019885025170274484138305171796305508025977935059128837345406143198050849511762555138462632933245320298751294798214664470357360289643491059793193385805982089609050646274688198627011394238653179853270562893861198249494313166361513814154941262151528822390534004133397033584257995045590103184556651383735213577929192687444159675430245727399544658085412117744312676016874083679534057096859666627619068733150227525157971096995680416395983993731194268078390193825364837834330024835702718162382818571435940829282825066928914069919419650417814829527669180689867347234010411507529168367889759485387291569862447004286155161806616555673551239417928778294111907736435222217661285628084726962298252051143790746731006923699903739702722221323314167029143832581992968355309575121450904439151231173254659388334127517015131127510558923398316618853871747183722457016229630401311555385303218208068759052426693781135150980678517686552383819333696864171004624983409711516640903359867010137814823705107645797800765349928315253165340605050219820459029739505799278511669082957769416020967646318050055194530028761271415110723603030514564702992783807680086348394040927078382255323759681249950831140751752151789233816131943298412134442496639077401182090808275562129538187806804046671467262189412568188353512293785634163310063677511058958355993457614732081930726855476825660936628173118355293735649789271691521734607531191104076936671885729569146971844573225985232109150821144781865980107598085402447523211725654233801935169555934981871106718533274828824234448237138307958755537949129363238926655027662203388965953129594385360601873181937721269799379754506826603675055355601636936777761345719749336940845166668305295133954088260745284544206380564492713670256900426592091089545850894898237172983458337881847510029518290068704035659137252400191247313763802068464711381386402320355829544454678183499644074984012207186611425387262955732048576936066966226303609651507338529426594225280125259279859267622043662612825833289150747584397098786626743858944697439021842071215202130101968332576834149384977580233306793886327222003363485961108046043883564339609414649297887868768741586029597161467247429049281190180412610881488403233449765057371913006660078213665142166475516989596082013361775266702203430739243559056130473726408068038512089338424689170484008427076000043944041371649700546778865835598220011838443646124983663140232147870464819744526325690383786914195273841639009664862411203043495002997074018226268445081530993609386844467843661732254342306375956946084522979007080637260351023061708810492198044442322893656606686410939858005585417228890795275231874391551863716256346948409737791721581235940941093607407033369895142632728779177219695450377382330379164965023693910575778992827529707207248014363783102240066368318474060107615546111606659505967776049634830566428454525457259670654639894584653886240004190736538688476008627635513841576511907901167546419606947063775712342545785562455945679029475992371608131661853988948056717680012592695470180098662508267849536170798431481510206226195649003105496566806157059404243360649693383370892423659324162698463474063879425803987379883540223060234042511064393171918431370432302216345255770101389911540948614144629323022101815782363432979974666294037996075215142365156111652355119731321515461061120852767587754170999884208430036646507604785316725557688676387606500339722937829134120672871974938451492568948865301163952663826315843427469353821961448291724480605182582260945489213581781411787082322274798953644397473427980306177867334994354702048496758196107863627994596101166478911064708391302138773167510662253633974412416623293953576916076083864773700577893018746377098203123053050988233251646148366004779037574451915542612454294907155932430506685937012841304685082153412526204692241454221839721354356321005696520489411841325916401326274862670888515080668496734909790893824573843619220953346691320625497907252473410109981541399778891490050772600475489657910853416188890355610181267517558992002889301846937090230156873331084195881822251408465156031521204715113584690730670300881856353466409727604404599014158957829698719666087458362505600329476970643256322684569222121031137509828135737463024063333574257448090419373219310699966489283232632955524390792850999645661548449042301285870188212278197659489347341216783038491996370122527429071318214735403905131711439412604351287061578367503110548470643625622162767577147907162122514066376386020734901193031232211394656942633524289613212784721169970427604403722689783463420026038669019543767550555161148748960867218676762734141427139205329308572636905243660276884921881440420059246248683355022267908413896404530587960457286927735031293017636931252253032622809165197826615955392173897555580923342249359836560946108346676747031338129339143856190539476052361272896410597147208340567488500772435321469782679866624424075723276460672819938711055656092119882340632871914917841855280693642660242698456797119680599117428224044288005110889076901594926565971914285722053741565233717420699244789197520243503252307366733565562994958537175151237034453058363021580851213718037211110035502034875939729350138070447651093253022719341085745783064888000547678453064875034912732045449299767999255309921820194726839847183215285309194160458759626222438842791945773361343508933223410912497774382981456034973500283533755915380066150762162270755318907710960195359785995866493860666008312870432922798825841523030696195959214109228322347240265340494008097185242928198736007954275051574741270075471555571806022319386032841892064670454207735868072442436905717213243009756367517362021634029221490943329699161510137513291465975381026882301617537283284283818947873583184972244138050002325711531266131144665248658427074370303774346242360869775313453534068681185777197709537136422331105282983393146938566779479636741727196710883179096712011216799152752971481926877559538786654106245255313843394626855582925971066520236675506408755259880107245981843463680748142702206662596921012807458988633048194281263124892148597269524839127492506257550916335277390973703195205596567365574147950758105962047425261358267510288970596326512831997738412067463188171041499001061812648002621448208016164667291252898408383673851209975704885657494187610260541930620040335200743266893744102927016713319937900189838563747256257919157242450426445428661874822296024937830886307952124475469509557970346468987053240729570490740126396591467539120072755808713038757712076087697931342548468244641743873366421772248523496902362987432416500167345570295220780248200613447620775967152183405616798700021346742700154952251039078300642609427494440628578623505806281733187814964479187664345540409890378662502758809592866710030131713719169887399827191735909062189481236287335901415355618092165699593834235804044887022833645569836234452350389695315174827482451931202567746254889818450243241412569894221411530094658748460444867970546555367669745355475956762506664346244405107849825613923524431282821253746237185147778953716580638874028573989364472087388026851870185311081296884423564174718421696022587005927590577853681142620308161821747936683527087721400953158630888484383525596063105325119556424208790326835753684299549156566415417099065534346184722006202244689604086516060800801607657001723499990749964918887952001081787382128755639643685567170961220398056711419612479300228179859099073839761351468978117165497688864351059847535725215696155045649442192803248051236421274055526915082508922535291784384995664742523755364014655167845691828557344976922757529391582543345481106053005687807850148202844958323949771745311214462653415759537964729353810630563220218986506096182339557270791429156962653816609238442811211877242205446745366722438118701757761374919824642031228450199112250845190312239206602853493800506280986145700130917744819102284624288412332339057269963565480127419972348635493421775563312673850242952304334674215739454204801034246059682655909964879103147487765747716529377237285012613723612168650266409853759745823183831251151380454405577714560837964591114101711634221007545726682820209053777892862074199564421870550111085917854322058827285063118417233873682328918870811992641168019312241959944483180861915124797768805078820447691203682637698476376820294544399298270865793179447774370294532703960219190203607368954412348517736179173757796879280357871010284448652782563161069361998258679356992012018493210059411931313149005918123078438010242096580703921342767060953796823915507482205693176454488938350227597238274632103899870087619286160544003135559347739363262690984195494800336847336984456992233652001415644281986871366965673195751675205415365783888935268973303554534303976586010856327284339758909287949335818998043724471509080471060583997417117372547077835312392841388622609100717720040184082662754978244765180650194856856798607245451956361961443987442166573295704367122164636268204504779644953933665783144589103558426452808092187367499486797246637512981592206586020411629121751685472617255027733208977989037228082774533260782668624089816093206851433223050539230906534033014389090096339245925210554813254460069670857650145109982364871750238832287156097101080623011139606388552718258774970854607541709658344597901429138184872642113238903159205654386475918997217996247801880489100312365277931808459138851515072154162899175190446613133970832208033056287834373542114509885095202340989871238492540074266615052461722991243491400265251332749623728137062514741112011538229542939902843159810628866967470809588475508604593777774839555979195933244623519309297742557829596036003658770077007222715823576002086209535215316653154086814255714750788791714497266259877698367883116832517586625869316523989347620726794499056424843356080853494243843810511014627182819073144086152747123130218566436334008396560069136603387515502407949897624040763032110694746970338894073366349929584702100940913248521439529385082210557880765087969581588719126682602187711112931790375583481418654122712228014078732960977664136947107408875024757205984972784521876624664761752982355345859717600195059209198495692689673734285307923650203012286324260658373898128740355648540040125149050775596396255453575297966805425616545617288198140790269650254031034492830469262494700520246991600362542631153823989611781803162073715483127360735155103560831489713000739932096064144188077285833107335060550642363354744918807492777572808194044433754605646785127805822283959832042906899142055519965812016502654027899079465452669991671261584391483285520214076782312180106932787244745042145260813144745726249393814185031187242542094942801008391970218467251610117554003648313241038550849881682180425096080661277543450958747337710626704438087628090627318226689114462519063974861967741709950431215711301729653116182481941289290224268205264796112972704465569825031110009016627896194157424029096878546463826650084170024450629462608334243503032444891225523252426004162917327896922813000998569224623399636738651022825296434559579725137004846404262203695521524692681214213915423127983269211394268364811102939685522654518781592722816054656858545930708152350911573226845387098417659928029280353820574277652833637645420081996086877912124217692210399946236839704281419979548737103940279493221543859602054143671677059108196404465109997630799336242754743506292592461197015230810542865190349451412525934967801737747580032401963159205388039990630908395975731912718670521549956655781142233334256924046281866891393551037957592519407621982629428156083510456783494235178098157506861488724453582061097705975749220994994373462074421210929750226488844622750496858779589459103318512548731454453205121488561232722478038282708774018104552680501694668996578395340607930140169593457783388148052978886314983753527685893617877985118350028793914871123314357548775808861100672243610426383658004055880217417363136858507288799101363003061012912680776649796492161199884221917662523110505894151295514260121412669083017653159452272257773011747809264430431124384944277145257635991710212035569217850977387644262154440601516485202779228783239648120938455586196635690291188158999894053647631556467917679570148554495232047059404283588983619362164016464372924748517025898925378551863408595433800667966099025530841982966182092600979495959176380613557541385874668205778139805934119162037755885245605890305104467149008032606819005165687338300162844885290777080607781846298231641320091759969956472610341927734766317199906030716785022553460823390330779446662966191586931242821597303087028205062124814849796520593374720635714734257563245302796803477444146247536218612717986619577834642065630781758927892694424928564304087776720308803515272107168177795994846706773526580281971628501309699456919709109497041668356618728349518774498839677236403820944211865173090997800204853961424045437988641295634697190829062952271871155431145812972087876574043050101003680825172823505192109314014735030017583648130446691607894294798385643074807985797552088391562882429051281490964042008928706723596696554805204044476508314342849042323710660998015601451412864129773506449965828202795257428255068996156538623558652688667963822276774353535942958649525658592855598825293872191729356897995778385004847581105951550033767165763241512659537575177118556608360732477741407616458712632280819084590140903053528798995515007423229050356410767604372593929831447280768691820562482842974893489815186666587928982105370887481594265388690963713301633873530726608965334638165213193724766844486309760392186356736029980083395782942457360222017544642325249307939190359727224377961918591085966747627490009115855821820427157746553305995549982603092567858893448922640206299062107014568779596864637108483364168442975935339205389194429810530986058914722311824244540895434094184363264828111232025693135154186155117552262564134490095658815295486851976602638086755519689208425131607694693151753373339611035534089452565462804978928602292168152249918868314172717612633526352465185004175330117403714808818227805568196191759736602305825777079603788290410914190353742074111525641717755538013982160174309630692066171133335147445339090394751331052020875497294591939728649506104533932620674159374197185772080341606121074270484228256262982354268742064782502235919441023060770796708758808743827844003043201407410811884639936435666519911569741425808600702744348021111841613600317836029198347545084223100080221300089584213258484012207759389713972847123003840871675221777189073894209544581248648549334133208720504602879420368633169093870581113186644638730350191550666304151994323717280876258566983623382394724966618303988284996882041276727650718068950926918761142484480933090034311469416721642986501997200489872967139160816925568165593064329386517437981214306166100649770018497279488613738566891709393779049688188889658034133230391714333729818709401799329649114414530514494715051728254120549470905280784564011621269732041792757287578571670309205850974732216684792811964129299782095300274824797005598931108175079299965076979205218367919916727729112353045280042529887380290680156834493547058277387560735024417240945589783416603513490441244597018482055042099491767668137804551307222187701797344425525094825082739701043769879343409578314793545932758479323146080914494530539108059122999897796034331691775082630039259469411099746861559063243006436798832154876818698241065819408497135251576130240448931913637990196083802081290898029076484776086623445966241347311815867334114209898955263947288127891558708746903932336075299122713691386536454833701007654740197193444739121577307612114674843795117347554419414567138810843860068966792955534766958843560069309895461431938493947653055953323473020477636129922575591556545646760388173882841916466607427318979742705296531266949447233300053079031235653056584947118247009992686812151663502840388835369306373967723214922281874959237473466913494232122714161861704441071451740966761447945613321385442643165403021582404853220678978231500511892331429924351814164226088016540060021057935104281799196586022693827421842152506988676111978789142941138698832480509160757404567582591398165973350928442900463804628989966899376871027094623053717469007146892469605216138410444645676930022466539027652742554847603610467042137518196008695328214265858987994461149751008252886771515719597415254975238554218736414871823020936776105465335223985620197865967321676392434242776801130437394685013892915058260194302148990774600432243693024778033345975009034631020816404986179204664781997560075839418220374182649200575179249040388743549080858415292333975736424414406118030122713311380949891380389143478446583239494375971406966314544558978420974995712895676900592638485253369211326075241211611145512328308813798703914483519123176999887842015193349578345579764544604071405570670619116771357956899073283994607514430488959297360458048167521953165864147733610005264392369450272348014385134756970004476175838796013419466628696063869461990478106077736953209579189804593331225950891687033099987346597989125947911794588742241917789642921365331072506887221338493006656142487878345650132584004030562263263210034512206131423826163075664702609576972119098751663423544967101130499691455897156792279504339313303533409209005915092897130699932687158209618308085824859062910658530542229877278533678563525241976608850993671690628609804383877368325575808669566753807748966167615067637705513640083837548671926879695949578742767927255409858489369874414567142490220874278249630339577004215559283138402534525007850297598609325859771046774892379221481792352345352872678374420210802250342633926264357828986394366271641174975898311057432635263997941394548444467663288427838812348722391058683971223716994613205282625101937107898675846145991558676100549085913869946573604440085013217586249528733950926337132296862574570013461863346021998988838841509222896371411320052021563843069940440008116949877930991654040178538236374000698261976642715368273705610386586032896563560831482407163136068393513520525520091048524821207428561906436938670849740082067538691790781778508947622316051084981306338421053870954168001341152448396610000745203960046489338837272516957195734792696721780081736409109673546594415334237461207634451907948209255146787220542875456620187495659250897867530129759750909835083541307610231135190868061900753133346442016986538241577321142218564904089089688630436434154795675421739012956125849009152439651153964900611547821000281206964160636182133677855171177576064351344329756590158613580949486249554538159275087453490407920327426039893865545297743354705499224490236067600197189656744432640368395677152850719774870028774990011306640756705376255391199415568484943059795483785935796876649045417790031201387794192097886317577860726026572852811460767799133449890771491333697801544697875528984186006163633319720828222100061330930114457765181094213857923171961495555282730249267773915569189465110004091064700469069309322624235448743114525561553039268425310299827499797952829732769279219540027543601916074398621910217199594048382806541284060074337859584912177608147727845809587621241363189043778221792187298716327047241395445681823290525652551986230866974519364043342372345108163696646483825504608058693739530568864883139473458805491105438846238558485858268593941829104788188652195300179489376363639340793452407040885297429547786435188297210291148847978179918653688293302398890105144554958071373400053605696476264419481176913044106266012412536077112152667138301780416270986403894535289084390524463597710363584542132393117056944048627316819401573567742260442954295941308021089334877195279230680451892051507699682129765110962321256996354131236515632121661750820459495210059208989696283234231420470958966534473070809846599308119756762851969187891158003585574345000452191111176781316141217236721359062901100652182221845896121277689519360234894352365118029792589965425117932023827403197654458472396897260218187789171246572096219354822770266017207999811289607195763765597519422768056891131462225353404987978435259467110339493223049882878006734499028209119049414816754847625510792140270481053004639753911162560850997337918655177614739326576041961279216686966163972420151935291721541843003171130047261143620151103061032319029522598160910603127216328964068799357807649524564917104133855484073202844250133290467681282117645728930268290587918806792206411332634210493716805784538463804786898584416922820731669019812082059379543402027361844056835333611534491706972915766769554654974169882828786753585292715608878916498032016856245775017839778447483064495142756400108997761300256672846533453750810234800151564306692108756676851807259161174864421217861571313816497305368748067409130301228384926429240753603567994710601303578261597373538814524557794828829042492049651375337263615859490681725875694466486814776300838749200268294344788586271366257470574572101679336760679676270491965632383840293169883987756711802423414894897423881826828780470665755658083509900320187711554181578583645229558815174643231787491243520385526560670626297577476352193335778208453444123565966946928696076878904106663892945495798836824793475626763974999089153702372692986922194756643989681703178340277831845891893042313203154453895313866144753532457515387586921395822671544696768981019011427836994524558461464652768194951306543534040140309016672352369609842506904644283848502334356027830079941642937550758381633066100967214951084343063654029075688324782710475587024543121778728040111423812116621999270659506199028715157962625505354096246375243303424873923734686963085368110469182527355153951565084865921606236653927256419050151039990882793831572030599404952916356769921139527993479696408342418717276636116376920096446793853016592599435077649256452766629679438545103879283248694192032675626547287331057744525017653556812511068728619376843401682858254494924792778017723950033563911476573317718095004161347897944185078430811048133364939763101167373852603363318800724123470298534700836138404767714449884892321952056739394149571193166666376098329397869759821147443904391111283750754408112864305986201590073851851009040421013646026724038211792432610498401142708781426950281486031320451346676000614965704204648875801048741708299876502951142257051751416807042080817546502135608363438266295002324397387171599215109276681938895557269040308923901334033602029808647077257591972512923254494759706786272744066879875721814235664134252799935793705458209883532986641690539387599117158066281397827003033889813849203874219868693980539937930347326193656474253228581102337084985872310814709566415040782314961610371210954514099783797108082314858982292578599659927769957949661673855883110417207155733992271899417515355340701507523585003246076053194535794828182659935114076955734810217965032685641106661117655725782717098452674947149469888231695871485991884744916089638359087918185316326736063247849454913926650549444574689328702298822059942318742492898032446931579439064404243231043976100475455995366258327941665379359575787646243497326239008731251659162965513880124463679888773070294429697303967291445234023122198596768607329899927387801913798420249948663581533906622697564542920297015648812969122105375869724484262413530893402456242008396413772757552055950973722674224415444693635512271344683247030911042594593103222764348837296710156383766030644822351561838065854034228537996589587458673040893396875325737062085721456680346568101613679229348802512920085324913496066475351745025909361281679976770844693728710352458780266070371918206672444999051819915948423916248356502128514762854413541355450208214177477700887159261943147959857904878284429906864660407695286986960200596799173698462146892919550938655706433917135244991795965648042802003764971563409964113663572323273822508626518627085970677101714093242310657698708014218014383940239922547764136613549772951334704834396236920436627432838520793015855503410347959629386326602779442534113619654629489472918853871915563224447404774371730148120493984953755222439495314337649754620399541424994967614834016293750343906249587680824652213556367904441810284620463622479060228606625911043618460433024890927463807625412968584111563999275775886735130385022085127872564388120193278236995308130919936349890463619417813113258377974727117865393088710293768048295749834840842983385323977431750342608326296683741248557001387511384250599029651470495871576356366629572799186311810704390830571601155773043574230346092108973598409614565122083457673822482463657751527260526864290437438084071388717512571605012952810268441734781297003992296696070448015639472027992186121231394977959540363557009438899125019517207377425055422035831166241410439351062768533264343969707016039634769631296949228838439227423723652414163254083705789664506107731904478886239023160731552134058076591218920001728510065286995598433570953386415411339947736269261613495612643273183288514142942988733277247359239272854611228781749163824731388971790740892309577652175374178597639272019203896105614780740089959197038574313514377038941619364537918796224193239442454279684344558106473411853035674246568298680513739638696293745987845752656788073704849403923325153392059369328735403003365362641833376261640405332044086801828489440733083150646619490181667304277249684700710904441369521914617829252218585723917499173649669134287428155875435799252700970335487172174934564724215895290083720735489795813245580712475600190322096781393914876069915612831433793418693653789959606129933859032672522515479876274072740144132323025674733140329382252312046713647775487755212037761993088840164621872451908718462819651659479589800055263417520355273353862330972302643596078083645284528480588736055929693557397903064743140023522354970569535010656767826681045608585032906725575761091447272058060505386831810524175773396832731777325631586607929736319404165614859391514045259777090361221270369605624721541599297087403022164074225220463255949947760777468020305709383355868692040076918617394026063238990480355254783571399610851061284964137737420684041592105610532508110578385299017225014641242110740707797551642667385573852834497845061806918803908551741160019228184607648914403432840323961674479456701218407998894020878587039169309320541972405688544848483238980997324364720302507100821186295285188070264662482362618487084332431565822957524430523811266780400201276496374386948728493792409883906122611126625549846867775373355347817592052650704254189265890584739103924014356899267629883578394644949387308774332122118423721715689389528730245893561871197005074568750336923510920083780238553428453814018220826468812706577962064318647374969259937130310127428946301951659887938438097974151806865859951179919628177946780009711197573421093920623196275169711087521301309609199958756304791111221491435845159585035554400761175115985824479435536171020523035714609164178476721442774874835842582364693234311140134471926818520027870425820501294424157653600716909237186538208081897724824339155491024265349107993478291157250268406782213263954379296070533227736828629945422890237687111196776859076527103084748016171016357277763310381327055086761991191103135418182755163214580530901839209118157143496661480921057919764330300732918953031577852496405824694466411574420980706443718807235091904231989250417247888656013988118656295497906462303980786375839693100936888591277107864634990799819315769118478696503275540798820351316151727836359680186512275653089851140725818868755364078559578110484503347646985390766284387985589841000689008657114963389307329917103848949865753925783760438138665126382734004319649603174312732754205156329990307596491663218926823847934698332429402002890911487133468794235506390408635625706522564885493527198513632260787825425316495249079065853206984966059318646794427352760584758038939377147600470956330207465401046164710617618112433150575628660064508279486366392697303154495829222908463639194787342604261156765125277701032412058185286330128357711784580748273756822805115679762661082755391103708020916524312092651090709002141165763631214223136189995301086889992193693388365884237131501139150432200250708747266875766697905876329257046724035860149462228694824829512447022227170053783398609569217934710102541805241844980820043662827043749253091696404258446610180716245575121876914656127180551544594087132698014002658003788878720636609414481197675701167914235089751424115207383178857745178071269123690796014070071284095485703012973655344732473201743160472820728456511543392416341644710454852356483618600031563262286557142201786071257663148490282235408336121868476253405849376377786264229588727633289699220827962302217582883226442491941720293583479628948115446234650133091203635289632944185511013486001165854905737008824313866907499205079884585100847021116342707784753125698802230976245635724473496663610710186985127853587850016343738236894790023712301520407799935621116922162350668435491597582834466212696963572336507348758249558323730646695817594379319585051714362296711020817295951680554900410484524422836541880479957411741396442354766407038143697244302830402036472705755364681568243241935128157106593085685454964607675851345416323380892834020369342549032354415423396072282852640245406598941868198054400664539698181870053639025309858632858907761914147075014352543115196116406868421850715802792669826267556789727105812806680555299565047805728383567458690498629307069125841382212263551874518523009354210392194671316526133466729522936937583869835824963989353838968183355904634127916998149574390917094743295021079280114200243783217508391423546936657402098548703341034856822367847895754875302856547385926282370156203722836257534896284011047635375365164679328343824496526907122003609443419007316916885085298427620456725205503825187430048968666998715989116421219242708997851523265937162754174191591281072146054237861105017481139244845810879829203504942886015527540304341820657168493180054274091430074183113179315445455637803867626045302293303811188958163441863599078665405482780469130280100809675858502628267974628235680553803605692875689263497087253555987246009422313241729582827421562593355416448118340884289984517125887578096683613168814437843022583619215625835171484554713231409304097528596317268459300956576865952023534680984735236651650511810166300434622810699445931446786344334384235747441264139190674256381314726321551707453600864692362866935258727547862584417270578186075569439732059444989376186361366704200954120630771013263196480725982939259338348166644160468301015081039451561502121442621291645876162956584864730162728509713942945492977370778498799414780647922919910595381404330002604828852602703453858647093757767828630155272177661237395297697333037534081095250323985206409046248326117442217074613707058803485054984953858833086722650021990153046388228438757314946848788930225253864507918820684147936366660839681028265728580822948727636339083505079089079326197528810420091158074534377488435595916649311566747780773973050678763898749605546841708138918331500922828922079424685048970870645028679967959425941717168359991403768908591046190459750245235520211380193508496055449835855743903383914338856684307792680242227610532365634102763060614697449648481471906964404813530428637617039320882533511531649857528001243441793474160484540489955654607954429405038239283723735694668097633678034598141871288808164340467963323787252522051330408453638407781314091748386155872639842958995527218587649305044564424204337090297151964042776930010423326417488923709271895956686069723000702623174588618414540408651423238728547048445472553503680895202553405395644345297197108725041212163550165106455482646215460100384240302464297026611508101348860705972993579602791683593075562911635122822632413967961381603465633445267975540212196506545941682468474251909240236516291312979607733549872285190792972648274652220443996486903753492414719756388012269583627687634087686195646237327159763873657154926395039770913812996108450461739729689657338952983264484235776661455275608122463390216506634478119458858784441710999225517935495688774522154241427823605081788127973882764701250394221851008159681824772795089453604855907374275771859185726602604187706219400743593971758229183750955777955979113111187542958755425731699156813268332670815315510040550150383865862586897710796991018760041625479815480864116375910962267488279060752262665162015431686689746035923038255967837923509007195935815001642492411460965423825906854566432477466540831547932080963513831301347314413365943585677421889123573760328882889530803050338095673658529759444279313931585137878556384127530298497192310499811886250144125208814012051664702219332353205958027318316434866700407768749144858043386423767718578027491991081030512061780076639938491109105326931898142995502037988372495554343246116477509030887167975955758040628354699924078416021850031504847265281953442712990009950043261718417697873849534803799435590573061113528024923976044690528390058497902120459365038063923947886654898848610901354784142571140556604486884915616879159286999023783112620951375118610223288405202173072124223254482631474127914764408285766619042170271384808795420601401854835844885724475331128506012026662488521980129165623591284435686725450764527584407362319853952364525638522122426048125276849479158186564764505947231696525404151700975243912713941000417635560025850608682043810016117026270624288064361144432991499087985938302341786472021391808461913299298477013655179018970893896973935678730816298094407564704381322855898106626978439239208351048598519291799758804983001933187683622855110475410775941235029464930831589336157854668612362711277605018253414469342607825262996628244021893527220895872513042954815707562419179568759917674382604455871110189569747124345268851240446611944671315360079419197148793328631743376767366451209171945189279161737912148443599094738786256727653905181425347621630000196829001016112965987977069005703443240604047511795777460476460766533518267453141796840441099273759188558213485609272954870457354297956950179614595184811909810638483607630360278388229104503583846177464529484453427002640182550770108934475042652621506047627409603601856540569229940428823011637202642185942673841112210534671672316404005778604279394003740253904040324537922475333640004782277037903865049445286226150771063987332226458334836618362901762371640868206699472590354416156075412813979166996029617585929866778437777274986338799659872204109549702370866271529868352590018523502294821456759544124611103838507070749475790761440903217334395711049631777077867700362149041810797161112279745510532717649882325880687276704993637970594683156472660846939315664817227599071978484357901981247799542974214336024858043301000121836563356722162209837866585262882375511016133815945732475290266836060426630905405665606747623457186132945532165124904979596040087505582413294187320447826079188322717265698428070199556861909548117521717357710661450613026251138492146992052643721911138349593283233860258550839376871771116575069732635723865084267551854442520026600586834702087349499996711830409728821434447108377953880531046829072142943183907466371247116533114951094126614656055859239849941371993372686738361413582892385917183672738068100073374252207569857585297561645380867503355759180124419120218631982061687477605336951098203736455049711657700303822280529240136730777514577391135393057337540432712691990480260034413236911044579499881076011166275136683703267215982214442381565816212108534870608985528940260312811120881586801414448867708474489032039693654439417379206462023290506127328314940445379916833541961435808838105997486190199723779947665135617112601111106932507763099725766431977106761066536461162854362566047101441322819049458159758965489735654524782744568022759637813396250147578872690685688047699648294989319996695474985511715426757192750787833076034783953668592337021237596231019022584438467295833842955160826758059468798600350816222941878948999025873128277196149397265024880994586746026622464609516416977884714803612298658884555924030979523421979147519191733956218938463888569912302047957458413437957696125860385697378038564874331310398578453174911600291543788106834710154244426268625329034412411149051570190096818983215440642314437731893645178437580818905741041200483148129705930295712957357873101391434404223242580190486488667041687034225955173972768468074735092565217446946101119187497255899235698516831381443687800003821511218840321326593483827187577487509410644641978520669731849583695825253013766465314041730526780955957901405097395713411962274671100289975814640934651658165989561937315064248027629879123573527290988946230852771233781861226007050337772531014567943134769692666303211747234547603482636619689078329572538589018637737813467027341984771806371884675612883552652263140630648743701176479292815370260324972735021161356210222261238503420934845165274523379507087423304610771371199312580723572023906932521283892002533650597366435699983285544524990210707566953263291275032165216688897915377855121627561432891488086156235822207712816686229296445933141436718027746659186388602885512880778567185260336799724736222880811077687024561733027770653228138084566217147347455310856337513945068761107664799058931312425514945933826053210792675907641307710738933607471842739265077051817593911650024059846818902516468445593984160119514762257825541847665254991696511753105845838205552389674597629890623215183170817022962341260517018190732584337413142994442739103920845648535970478035100847010988111071344958280294943434105215693661468334890580176430353136511661242726002527096893554889997791697084789382459040234354354207335283043152142063642890084957803407143037448989320655431062417045257369913079068154051677359048926898619768430425625904549972638320827573841515969051897203006776839056162953969373073266573299016829945412757708357437383381450924166881248417914460878059017361347467026947279486429846554478384880349697022890226002453474898404872934317710100945575102279351574974843115935962206823124398058746553067528932658223396839516494594652426838700163744559142233943214542444740096110275522202046246033342823207415838976192198533313813829823794002574591314195609184161960396717827762396749052026000913758215598751242539538075008139804688182997820218119150556229039672400217479842423846129704005773588455909775697114507106428530226527498049154024279692679069195776722991420298806107987832704929551959546617940648363341440185960434019147585054635427951082266925495436327279739794182388581034632545696177041529118450365443138377672286017929532776784320796074826150328286842350513299024955787787609235883868350402640276087489174312824667892073333984397304598659656141130845956999176309482097259291779052693188251338451125822159487854678496785063634413995215856894480273702615411962026501661636805816091740447355885160632173380545106454371051020056189799174405712783764345959283570093610857233631681319736633716596740476709224441886650976205725923402383589284101688479484156233013700760263181522078911851676204284524076166415839057397266492623167704942254434145093863056967554144020562899517473451953654512194302183050508598409083910157007150926973158323787515461687517009832933666487038221458761015477336740296764861784220736966728912149956651619951034115585059739646612631528292931400917438190752353983045674359257267115092310307561726807114163532573795364448726060836583305158187415863724544831919221583151412860365166351162911544196599437051804374032344327675081521972181555175415445629392157863579392120434037895433272966273296677165834826302492053446155909639278058990932744113332690172312017234665818995420384193019458722069981723536527018840449697330810165100604930059685429524696931622336109772803204219363886755922228635789694367216530039724664202549792096395460540168127745207946711922772031497209941632796610418380037613163489435409411076538309985487707394956133480046224849150264812926178164789865508850687786764945249491925732665821072964746665851782282309033821571438300790345127305188670374646990719175988867733074361457758312457305241012864572776734521363372355320454315665071780630920411560026706280448038399838185984815748913661904405263178710927989371314751401508431055358815524449548382135918999000208484014944091292133035565837898219992607552970606151195604464194412917535502021355108396706294834434441797718739759231294689471094636684823355479124861948067914758996962818538963127770659315747004163068482819293407712387019997549621949349762751128350745662306759955109261991333016867947206267710162987339175756532249546386697541532840883813441987324133960644790016627787337068813067738433075954997469338118610290709007942524078360107101508960132356850935178975068645477349736189134299438857065564172404937052882698837915941611448696663080362658523269188936933236270111323244643357461433475479171207572523139328739872008239987391697695867101824822438156359413082074625329449562264644236546988548900490512183597309052175449025579892215955776823906724474637737954306905879149586548754518172681493674828846344737029912411404782559379659698580271368989896198723525298601810731430509703271941558954985402385645548341171712945010237821415520530593849421515591389379237566187914116039259690136590862497326382354603588250523394332359364881701197084989735920246819854750713190182266933086037698627915392034106144410240984123408881407883887591666810872146375958465080851946315875572003005654661121182865414692268479218168828960811234626255829055114052246953842421361700552097627313636427232920976465867209126291459338899552362254364538655786506438034653468346090420510495163295086994376118613643126463935175468013790328427873322554380261820355193732987466391444511135118694834132538534186089233871012130206444799701742090882159876858963569233227888491537332397635481793349940716951358303247186667923251689960999572026073047944565955881663240163921602803368918372480582012949715681160427288022719078467639471598496137048310273718624477838731785875471612483027990098159652635060013266582200449549624784740653782590032294163541947650031275270896607875674682238816778703617373632580155562243191551073222336753526269489377691263020769583537770088322896616283391160353904564983289634134549525969330663259257767240772756408301058448575679758322230947787973112215324016491174491217991979813318042622943244079877061492684095308175339465302403997128175098833535543845204353129372722702567753453877328302118769252208662600076551330943635437737851782573115781950563164079331936002588654371293908075044925154155000465679553229782581419603551853885200070860037050215674294401522531964362580298669429553779772130164360184289466973816122048971962360552613400124253981545137149544941346870031209093053972871198505210552849402176136573391886730845952747698479419537511637162646248978287686876316559335221919742482725679232233580490651782020902867878467402627113644518315306291942310214378450050966120407600390302717147246391796917711858093596552443466511177972894574304900571378849324518875822337641116817609024148910035878332535293394716290268891018019217252067003989648141463379087370147842290270653777225184270410934240366378166626418440990316819294891132955556936425159406410747933880407373256908883032344846907177202570501161432414875909623553324910331350549446928376502566776438265554418946026150246323208731045258210209790196237975647332719155600255803965838777766752184589866995893439495080630938905788622083370484681112426684868449016975136297792092313682997668625554854223098454265422036476635419518801421986030586548176900806116720124029505882976735259888342337296884708845497240825651951137831794510477592122376637756745904724717365790965085310088606053245325140786110560425513355472694948714767726371504965111627410340924066700646356706071937536863161730914123258484797752250057292128212679567293480090571971170896859606458683613503145035887375119440311623486255124766797103288916780060614035559901603538842980599745563759268308707267067926563792408972592240738348388240801513429925094290366914306221617595862410560928872342013359597713720332235432527246686228409805643346805813746717428828024439728425042697172845195908940581861056162604840924259845792996546436279842157546063468913618064524052442043501881362033738539209500197937570278848090014663697219149462809840070241156614277892530791725112942989647040150801012056017081294183519976003575234682854661225805442058890455346123640278144547036013503177718594070163662295631314104862564227544095701552718626326798142643591132698167181758131561542669520189270656561366284081580564868198962001391055180355052926396001065795004287631661205309730250266171504902860552287489392950386074993834543880741299176700923709025499500548506603813369781421772116318623485261688116665613813983453592065656712272967298872746357158713701534619843486205408617410994888826175848410375119149025656208424560989690786058883939687665520307065285765901763627549260272755361445785222065871661694992044753008913316835927056870522377344578197462286384737616025607328379116644416298593980006147277163415734372168413942337525033860488326371734015461114944364102132173477535405135209685498256315314397707923696901938572445498572631545849336966514342591432874934938368468897822583223258537316390271508281188176900102501220080825281284968303917616098888693097410094004233870851490848016662834446085529849974950856278929596987415700777837898338896391521764744356719876157914041468951071312711295242486610167582185780791758014723118391241770713256534266391883798426832935104493457346202124712674158555372135782085139003304967327217449744523600401368849918259348138683097012453641628682650872173665891305404984832306431185198284011124477682099258150556393966206559199412139576111687831146347065195129032024227664763901523192755979339729691086736332205432641957365935433398673805303905893078137513002209112191581305068117436478349198527552983236711173004696790727583165173177648195038786723414061248640389036758783373837697245570587990842614662604846431305573343209918740257401542909562640739592387440748134084974972049876351503083967474379024152123157417339051496721321171661854396847124511667133655703206686288557044568752809525974451417323816600495134501376495646124391460790694902890391916217108085037664950922016032557695270048760017377833354927146888533527110003296847925627578316769292563728152353037157144951324033364048809144024546206949374753215164696800824309672585685386633511306038411622634604226564682756750642323067294691941122665503439444242533617410991685930268905377946226198555888805133008063471532634941107890472494667438715075959681028491019998193370433334215247860736605346119598301262856306717676424604486816796009671039108269956404539879496896611715678587964864556279008355741326157203544052941801861721369363928279492267128997372333094936228866151932155381921368132929954125733544884297963429018115805638732920404513284715864680675752742063738549556222872850801339289494590888797652498322637216960204886347828089120059688990441869863962489561188986266375851550219067597488099920598671843060974442044397375501123295206236997574491764417834746711305193533080074807958346733935700952199816559546431846191485438657788162556394562478837416687467083104353895738350936669885546870165380836525471091634224860058107260148164400403326059226157193599484879733114306975164897798884859801644988837797465889314462199380580806592701629632989093533890314045143569552446305839248470385416307649579346363261202925301262636030764299444977428351874655391992391175397369543270967778950309526151017220288251136183709275891457361800100875502289793960977929777370045167414821753641735369378219723938069523948956099119825242667520069404825724871703130468535985731815867118168415959509241499618669188222749425594442982732888543774928958750114890398685971864882133730652990244766691068007915506561505585825568484263660929101739633299892520414000086231357467260333739867308660622651783499458787306595560517875386089521709465957406881437618764338735136820197680372667803680714181165245290186942236220750592344529108230544531949141537011494407019188413764072062768219268848453858170798286403538118372068345533664164411272899697252825901518987730894520946615758622434518309206174147717249594699221821807421684767921318827140375999942124039415231034784332166637691695385132707900078558434670956644719974724848213628552114828922983964633701618034697533234841158394917001762181217432466375789678095090453928368291076747051336408842836083498545599801408643310218189430365378393130272556486192267783303120812394950156399259137276767543530808394675824687237925591417700991008518987550339961855882919985192163257707263175270770545073399992195293995251305429311707521795636804328197658497496902269650306577202592729242495373618818493835813609184018275552813392678100643190756280386209301027627963028521918973361379786453343721387071691849392594295549178006126644323086690138799494645501556447975215360808635099288149739877271481333224416010093639148969181873670600662646128660291524921236519254621931171366036795830800930413392868577892311919091217416875302879754395628501996008820241582174987367983986886068255709872425521926916251106089759748831601965489977932636596132230266589459448557446299322014773795772198117244061642467483606318106551268536146737678391674041486403618493067855871009436217053337128942738752871241470643161279166663864496885892296189134166506090425568609014184727008948635152650538399503379930853262108213090623406859498239431965549289546853455699912066498141390525019934490655800277081216048564413966162795750876916000118024086420395483247908594114489915675283385777073778101756201243768206046191170935965469762131408497223925496180306720819308271714984454168200020651455131040421256011796775017304287614298305462412839571920004606843928098709429944203332443020064216482316742740177663223435055238538108058133229207121126485266761469033560776964188522304027214054097440950156580477741707863058321898057317773593547919228693539945067805485114642027612378168879004917303623811182552164348931951137939875969139896487658952683714531887259391163350495556724341851779438902300491961597530930186522805184498095318949995087416777016015188338366545114519423275440995674724688064215046947016894696572728225757211555640308103235137081040432733178495995572930386929919852888635008576750950295689197246544974307147789529804759276249185482646994592112391660735987987501504538398097896129252553377521357507121990375842398509550564041143832644981815344786354646570171433357077275508709914567124142343311885438601727567798842606067600220841860943160004398168123175434254488514120031690236374231816731036498708614019444005966565794554598682180917221732767899096230922635413952348282313459047131495837828398180104739853540388002239698073643268314782213481212605030012117232782309781320948757734745542910034687515288004962861612208201271551341091574943919119212470080142231314166966221935137741561176514638116751098869481083027045069064123959088013810678531819044775243398504358985366390566800144659063812561283231631045491892218454928339190492665411319433468927313845288850951341650526564054856343526202727432470842575882135163718095872412257773668971733120647751882964404826040156292643408442231481337412054147023854797600434032951741926792957345408586932447718283961371414983652594819719310248177545461938855272083632748998703515073966897463874823871175478958491549530956099199045601881129039434575324215137490944423439900315269662812148205086529990866101299915797694648147993063992388859621627007193769784965886428405694029127244197001634775742494995318340320360686126302896106437541841215378755111083156124898458365863177489861667357904214931100440438113727330281426436158170567397685237975940865282634786881229720040809191415945134135498329467847847782095467699427374696308776638123900553603988403657888785599076723950816011564279112420746457611097099670487780371850750615425070434230749654284118442886831937855256543517501925590795376522431257542234301472655784097133687224188110099658774699267538583153609939733009629527777377399756896860317052579125645597743073747865110284443160120376304969618920137228817080919060162004907643717201767222506204441336915512298486329257702710927662610601674096170918653451250211036599194820781768124503775122803722399032964088949062056730429107984037971851692829300642638602219922095945579457466436108389781289394784590111073047213261180834041044190990564016888437811697789619555049166815102292173371126824101291925807789175445036981259985508344865601235894536790303570085643399706570404815885901928285969304776615643046222647689632886435406998427655021423936633038409520445655067579392179184909414126166362057227085810420784101317767376447924032766761477683711110286204084809258894103715444343859391971557245681209938473280386878199566604354676315740471451720493588878657315910781809117115276632498849023927378471716160062325420994515405117228182827379356472339194143601638372664286510026057329315503909641216799753592951059484184227413966400378207844418232255777500500933706913465635475251745468623226449843010128127671715934971726281525387068923905145460918175513381494425812985934713566714507922401487129122543221813243212941784651630210170290911883997134121573975320577779433604532859272806446812023892549774631189056685682197383016425703386278433340735068369143924712049758310869155746627808164109145090921993950457152704461261389733678950925664932164767380980255369230877216341597908696850632350579569172939012695704634459371454267717505845089726701635222379939645665491093531270189464296872302270667825534693582203225266810659456456193291567890716772130290489770191884957720179979836130839414731810148520150245198814393693859555663794556433226140182319756907072718122946067786667846936083451174562302089803940894809772364577532421755052086637947624731016958481707753884352570078088186438309550286058688089242170186389084481870514932069173150309543030272821318980694235964250245821626417739653126217925735024022520376526936458043543322685361107177869150002698197481079072095834799666534130576165696873663949214158176848933762123642262447758270031448207286646250080833094005544028463116978430363541592462770285186729499993580214590371496881048471641843669564258760839681653885065811669000443177777984335127858173896629965274485805996786234738853413193044293389217729577522039621811296845513377698116034999205491736910891559091745594837421300923036438077916838476379607422708364339739339948663188629376908416651456533772470290176078535557475829305868047005388632857723589589969717068862549721572306429798076686782361228918401020647352904032458190281874460507338881495354104012669378715113935180654681441560150321282073879889380278735947735082799480026051970189660823380237501988286349398515035306405520106753321293627102175344899530642457431285655921449836290485372833046168008913168374535649608217031124693418656454370514338218817490904262905244575146429383535812954599244567884459654854325470650657588237042154421851678756489173481070801578706755951638720801156723107409761627971165269437446850858335933247192347194242489657805505775582576181431412123594797304079188699999193224711861710529162040714928754163495825269078113025781519702701951690526673558945891365845192035418509009424419079858687098423799339387990189397842908372516162893235462947425173954131303000948617217087458558747907532673258053100550499290797047401622157231618301854321351741473640523516640507821927961194897814082495128351631075581952345606073282426759646017830342062124008346311873609285646268340237280841782948467803764462396331288055734883254995431305272349860818495158681974640345138923736006108956667656952929580709712395411402297849254651186743468046610518693837093858567213800558130483870713652638132812325821890723295481371464083493231802381103166146072008020972042383251788934729632852174354870449791721530555215722474328940260445187822752497959859477448898085512773363182937628060752346954076359044701730165713363676520321925262049496376897460027545241686975592363632209929324235161258535922394923014246458726297560647541839079842282917742494935093259134643429758251569331394757662831415331409788781084397218597794549582363148852129621207637400032359366949837832113266596099136549690944365968849326508628020018543695548016669514361218527438919072467111633619185790117082342730382434072984842182476496551694955700940354956581914426004651135661844870610386619890804051025448233773498532697337159800849000611713189028920808755132970433007157870739270486357514003790072614384070221660270741845141345235646955950056361248225920464390432247543758424057093982936955734083452356572571933811957067621750409575184580416728351454750843432787079082905706652930410834966704374020126802299009610002837615818702036175983306637222255027625612072170934155276939984570086125329574616944967677057704772484002845417824435784097098019602295832732267970306880166984042426342141750334540264649926868743173716860368111253135975085830745946630755936673301929666135481364434184580597158183537710780291557369372466185746411011369119497328234773517779126461564663471488944353113822357415954805302376550015898849213178406003135605421214864816309406056137968647439161363601091266038309649394439825064554356016553363306449680735715051393130664883111586762309021250086615345469982131160112603485152154943457875049455626377373794606885214986752431794235412275569555982614844241879514620433479588797525981886115250668737777107674880175473559929408910267432688801031071124985406862833074269085188308249503981124592283381452051143960322113718116874047866066148061146316484576952762470898968399892716952638218052469900392256231110993535642479311952766591902034127770834723373245017049026092289127209041093813830094854553961257679252414404388706406656999021105405475272670242015220572242102905415489447057349233517925523185830062986437370632119154768910012748284775840734156563641748880101999287341081624692751411780294931745320284210523424053834214831968043921902208477501284864416694997678531904811526144343113953722529618564844023983939258980902478568500701443588818840834694438458289335306668850611030085148762810302941613785185336473381447817959029345387497664165469490823327363884668042965362728306005331068975118713022632754043163457194707746686129910616347454051673548614206567374332242944882414131724253058429182401600387768787783828026133794158674717284366232305104297542679259045446284079659477945151583041809623506726650594921198630871625050962207376063666113344745738151719191061685879516892972876225569567497958126226303074423435150223619441000927594572165231621959674011241995168499743492171972528335617343589128568011614454322582764706315046055833908676152306448480223546080385887960849000350743580338013187248172656416668268511692006542024436686198331524330369232733020534254027139689859866116987497266768384261187069492498506837179204814416206380930757661778942022214075334604583698161872033739467846208494185421884519216686362554276438803177664211307096073571007226870479025144207893525132475659716272876662248391985433202342792667329582907243898332698304055057775288108722684874843158398991776627696868161018810681854819182615747192555814577057184264190921186408543842867266359409087392371419020257839630650221723624023182533395640893193384854536753851887860268359930049113523620844459681821645545547201041965184628295432572197188249188340057236973073530268239069554809974669838049087574900005867356168410326455686417778757460681764032789773579044965913057088588113572762481102114622327002929599417696978089844130888289638377046984814063693262124141585989624438403418341505655750980150262258386857296986073868605760046019724336823073812942823295287109432959985672745777391770671568750869432727322907828224267310702510729266615147391459881360410794821